From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Anatole Dahan Newsgroups: gmane.emacs.bugs Subject: bug#48116: Headers presents but unusable Date: Fri, 30 Apr 2021 12:30:41 +0200 Message-ID: Mime-Version: 1.0 (1.0) Content-Type: multipart/mixed; boundary=Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9324"; mail-complaints-to="usenet@ciao.gmane.io" To: 48116@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Apr 30 14:25:52 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lcSDP-0002JO-2s for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 30 Apr 2021 14:25:51 +0200 Original-Received: from localhost ([::1]:41036 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lcSDO-0003sY-2b for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 30 Apr 2021 08:25:50 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44038) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcRQE-0007vS-IR for bug-gnu-emacs@gnu.org; Fri, 30 Apr 2021 07:35:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46068) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lcRQE-0000jx-67 for bug-gnu-emacs@gnu.org; Fri, 30 Apr 2021 07:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lcRQE-0006At-3b for bug-gnu-emacs@gnu.org; Fri, 30 Apr 2021 07:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Anatole Dahan Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 30 Apr 2021 11:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 48116 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.161978245723664 (code B ref -1); Fri, 30 Apr 2021 11:35:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 30 Apr 2021 11:34:17 +0000 Original-Received: from localhost ([127.0.0.1]:57612 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lcRPU-00069c-T8 for submit@debbugs.gnu.org; Fri, 30 Apr 2021 07:34:16 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:48814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lcQQH-00009J-60 for submit@debbugs.gnu.org; Fri, 30 Apr 2021 06:31:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:32778) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcQQF-0004vf-O3 for bug-gnu-emacs@gnu.org; Fri, 30 Apr 2021 06:31:00 -0400 Original-Received: from korolev.univ-paris7.fr ([2001:660:3301:8000::1:2]:46498) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcQQA-0007AN-Kf for bug-gnu-emacs@gnu.org; Fri, 30 Apr 2021 06:30:59 -0400 Original-Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 13UAUoSa002553 for ; Fri, 30 Apr 2021 12:30:51 +0200 Original-Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id DD2631164DC for ; Fri, 30 Apr 2021 12:30:50 +0200 (CEST) X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Original-Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id z-ljjZyd3keY for ; Fri, 30 Apr 2021 12:30:44 +0200 (CEST) Original-Received: from [172.20.10.13] (unknown [37.164.16.213]) (Authenticated sender: dahan) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 914591164D3 for ; Fri, 30 Apr 2021 12:30:42 +0200 (CEST) X-Mailer: iPad Mail (18D52) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Fri, 30 Apr 2021 12:30:51 +0200 (CEST) X-Miltered: at korolev with ID 608BDC5A.002 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 608BDC5A.002 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/ Received-SPF: pass client-ip=2001:660:3301:8000::1:2; envelope-from=dahan@imj-prg.fr; helo=korolev.univ-paris7.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 30 Apr 2021 07:34:15 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:205239 Archived-At: --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, I have encountered errors while configuring emacs, and I was told to send a b= ug report here. You will find my config.log attached, together with my envir= onment variables. For context, I am trying to cross-compile native-compilation. I guess this m= ight not be supported, as libgccjit makes it quite complicated (I didn=E2=80= =99t yet find a way to bypass the smoke test). I have built the NATIVE libgc= cjit for i586-linux-musl (maybe I am wrong about that ?) Anyway, both sys/inotify.h and libgccjit.h are present, but they are marked a= s missing because they can=E2=80=99t be used (which seems legit, at least fo= r libgccjit, since it is built for native i586-linux-musl). =46rom what I un= derstood, this is considered a bug.=20 Best, =E2=80=94Anatole Dahan --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Type: application/octet-stream; name=bug_report.tar; x-apple-part-url=D959FF3A-6AF3-473C-A777-0E64B25612D1 Content-Disposition: attachment; filename=bug_report.tar Content-Transfer-Encoding: base64 YnVnX3JlcG9ydC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMDc2 NQAwMDAwNzY1ADAwMDAwMDAwMDAwADE0MDQyNzU1NjcxADAxMDY0NwAgNQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgADUwMQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAANTAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABi dWdfcmVwb3J0L2NvbmZpZy5sb2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwNzY1 ADAwMDA3NjUAMDAwMDEwMDExMjQAMTQwNDI3NTQ2NjEAMDEyNjE0ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAANTAxAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAA1MDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRo aXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxl CnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBh IG1pc3Rha2UuCgpJdCB3YXMgY3JlYXRlZCBieSBHTlUgRW1hY3MgY29uZmlndXJlIDI4LjAuNTAs IHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjkuICBJbnZvY2F0aW9uIGNv bW1hbmQgbGluZSB3YXMKCiAgJCAuLi9lbWFjcy9jb25maWd1cmUgLS13aXRoLW5hdGl2ZS1jb21w aWxhdGlvbiAtLXdpdGhvdXQteCAtLWJ1aWxkPWk1ODYtbGludXgtbXVzbCAtLWhvc3Q9eDg2LWdu dS1saW51eAoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3JtLiAjIwojIyAtLS0tLS0tLS0gIyMK Cmhvc3RuYW1lID0gemV0YQp1bmFtZSAtbSA9IHg4Nl82NAp1bmFtZSAtciA9IDQuOS4wLTEyLWFt ZDY0CnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgRGViaWFuIDQuOS4yMTAtMSAo MjAyMC0wMS0yMCkKCi91c3IvYmluL3VuYW1lIC1wID0gdW5rbm93bgovYmluL3VuYW1lIC1YICAg ICA9IHVua25vd24KCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSB1bmtub3duCi91c3IvYmluL2Fy Y2ggLWsgICAgICAgPSB1bmtub3duCi91c3IvY29udmV4L2dldHN5c2luZm8gPSB1bmtub3duCi91 c3IvYmluL2hvc3RpbmZvICAgICAgPSB1bmtub3duCi9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1 bmtub3duCi91c3IvYmluL29zbGV2ZWwgICAgICAgPSB1bmtub3duCi9iaW4vdW5pdmVyc2UgICAg ICAgICAgPSB1bmtub3duCgpQQVRIOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2JpbgpQQVRIOiAv aG9tZS9kYWhhbi8ubG9jYWwvYmluClBBVEg6IC9ob21lL2RhaGFuL2xvY2FsL2JpbgpQQVRIOiAv aG9tZS9kYWhhbi8ubG9jYWwvYmluClBBVEg6IC91c3IvbG9jYWwvYmluClBBVEg6IC91c3IvYmlu ClBBVEg6IC9iaW4KUEFUSDogL3Vzci9sb2NhbC9nYW1lcwpQQVRIOiAvdXNyL2dhbWVzCgoKIyMg LS0tLS0tLS0tLS0gIyMKIyMgQ29yZSB0ZXN0cy4gIyMKIyMgLS0tLS0tLS0tLS0gIyMKCmNvbmZp Z3VyZTo0MDI4OiBjaGVja2luZyBmb3IgeGNydW4KY29uZmlndXJlOjQwNTg6IHJlc3VsdDogbm8K Y29uZmlndXJlOjQxMjI6IGNoZWNraW5nIGZvciBHTlUgTWFrZQpjb25maWd1cmU6NDE3MjogcmVz dWx0OiBtYWtlCmNvbmZpZ3VyZTo0MTg2OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQpjb25m aWd1cmU6NDIwMDogcmVzdWx0OiBpNTg2LXBjLWxpbnV4LW11c2wKY29uZmlndXJlOjQyMjA6IGNo ZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjQyMzM6IHJlc3VsdDogeDg2LWdudS1s aW51eC1nbnUKY29uZmlndXJlOjUyMzQ6IGNoZWNraW5nIGZvciB4ODYtZ251LWxpbnV4LWdjYwpj b25maWd1cmU6NTI2MTogcmVzdWx0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MKY29uZmlndXJlOjUzMzY6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNp b24KY29uZmlndXJlOjUzNDU6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtLXZlcnNpb24gPiY1Cmk1ODYtbGludXgtbXVzbC1jYyAoR0NDKSA5LjIuMApDb3B5 cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMgZnJl ZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJl IGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjUzNTY6ICQ/ID0gMApjb25maWd1 cmU6NTM0NTogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC12 ID4mNQpVc2luZyBidWlsdC1pbiBzcGVjcy4KQ09MTEVDVF9HQ0M9L2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjCkNPTExFQ1RfTFRPX1dSQVBQRVI9L2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vLi4vbGliZXhlYy9nY2MvaTU4Ni1saW51eC1tdXNsLzkuMi4wL2x0 by13cmFwcGVyClRhcmdldDogaTU4Ni1saW51eC1tdXNsCkNvbmZpZ3VyZWQgd2l0aDogLi4vc3Jj X2djYy9jb25maWd1cmUgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrIC0tZGlzYWJsZS1ib290c3Ry YXAgLS1kaXNhYmxlLWFzc2VtYmx5IC0tZGlzYWJsZS13ZXJyb3IgLS10YXJnZXQ9aTU4Ni1saW51 eC1tdXNsIC0tcHJlZml4PSAtLWxpYmRpcj0vbGliIC0tZGlzYWJsZS1tdWx0aWxpYiAtLXdpdGgt c3lzcm9vdD0vaTU4Ni1saW51eC1tdXNsIC0tZW5hYmxlLXRscyAtLWRpc2FibGUtbGlibXVkZmxh cCAtLWRpc2FibGUtbGlic2FuaXRpemVyIC0tZGlzYWJsZS1nbnUtaW5kaXJlY3QtZnVuY3Rpb24g LS1kaXNhYmxlLWxpYm1weCAtLWVuYWJsZS1saWJzdGRjeHgtdGltZT1ydCAtLXdpdGgtYnVpbGQt c3lzcm9vdD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9jYWwvaTU4Ni1saW51 eC1tdXNsL29ial9zeXNyb290IEFSX0ZPUl9UQVJHRVQ9L2hvbWUvZGFoYW4vbXVzbC1jcm9zcy1t YWtlL2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmludXRpbHMvYmludXRpbHMvYXIg QVNfRk9SX1RBUkdFVD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9jYWwvaTU4 Ni1saW51eC1tdXNsL29ial9iaW51dGlscy9nYXMvYXMtbmV3IExEX0ZPUl9UQVJHRVQ9L2hvbWUv ZGFoYW4vbXVzbC1jcm9zcy1tYWtlL2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmlu dXRpbHMvbGQvbGQtbmV3IE5NX0ZPUl9UQVJHRVQ9L2hvbWUvZGFoYW4vbXVzbC1jcm9zcy1tYWtl L2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmludXRpbHMvYmludXRpbHMvbm0tbmV3 IE9CSkNPUFlfRk9SX1RBUkdFVD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9j YWwvaTU4Ni1saW51eC1tdXNsL29ial9iaW51dGlscy9iaW51dGlscy9vYmpjb3B5IE9CSkRVTVBf Rk9SX1RBUkdFVD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9jYWwvaTU4Ni1s aW51eC1tdXNsL29ial9iaW51dGlscy9iaW51dGlscy9vYmpkdW1wIFJBTkxJQl9GT1JfVEFSR0VU PS9ob21lL2RhaGFuL211c2wtY3Jvc3MtbWFrZS9idWlsZC9sb2NhbC9pNTg2LWxpbnV4LW11c2wv b2JqX2JpbnV0aWxzL2JpbnV0aWxzL3JhbmxpYiBSRUFERUxGX0ZPUl9UQVJHRVQ9L2hvbWUvZGFo YW4vbXVzbC1jcm9zcy1tYWtlL2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmludXRp bHMvYmludXRpbHMvcmVhZGVsZiBTVFJJUF9GT1JfVEFSR0VUPS9ob21lL2RhaGFuL211c2wtY3Jv c3MtbWFrZS9idWlsZC9sb2NhbC9pNTg2LWxpbnV4LW11c2wvb2JqX2JpbnV0aWxzL2JpbnV0aWxz L3N0cmlwLW5ldyAtLWJ1aWxkPXg4Nl82NC1wYy1saW51eC1nbnUgLS1ob3N0PXg4Nl82NC1wYy1s aW51eC1nbnUKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2MgdmVyc2lvbiA5LjIuMCAoR0NDKSAKY29u ZmlndXJlOjUzNTY6ICQ/ID0gMApjb25maWd1cmU6NTM0NTogL2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1WID4mNQppNTg2LWxpbnV4LW11c2wtY2M6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLVYnCmk1ODYtbGludXgtbXVzbC1j YzogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNv bmZpZ3VyZTo1MzU2OiAkPyA9IDEKY29uZmlndXJlOjUzNDU6IC9ob21lL2RhaGFuL211c2xfY3Jv c3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtcXZlcnNpb24gPiY1Cmk1ODYtbGludXgtbXVzbC1j YzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctcXZlcnNpb24nOyBk aWQgeW91IG1lYW4gJy0tdmVyc2lvbic/Cmk1ODYtbGludXgtbXVzbC1jYzogZmF0YWwgZXJyb3I6 IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo1MzU2OiAk PyA9IDEKY29uZmlndXJlOjUzNDU6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtdmVyc2lvbiA+JjUKaTU4Ni1saW51eC1tdXNsLWNjOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy12ZXJzaW9uJwppNTg2LWxpbnV4LW11c2wtY2M6 IGZhdGFsIGVycm9yOiBubyBpbnB1dCBmaWxlcwpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25m aWd1cmU6NTM1NjogJD8gPSAxCmNvbmZpZ3VyZTo1Mzc2OiBjaGVja2luZyB3aGV0aGVyIHRoZSBD IGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZTo1Mzk4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jp bi9pNTg2LWxpbnV4LW11c2wtY2MgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vz ci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6NTQwMjogJD8gPSAwCmNvbmZp Z3VyZTo1NDUwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQ1MzogY2hlY2tpbmcgZm9yIEMgY29t cGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTo1NDU1OiByZXN1bHQ6IGEu b3V0CmNvbmZpZ3VyZTo1NDYxOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzCmNv bmZpZ3VyZTo1NDY4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLW8gY29uZnRlc3QgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6NTQ3MjogJD8gPSAwCmNvbmZpZ3VyZTo1 NDk0OiByZXN1bHQ6IApjb25maWd1cmU6NTUxNjogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jv c3MgY29tcGlsaW5nCmNvbmZpZ3VyZTo1NTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU1OTog Y2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjU1ODE6IC9ob21l L2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZTo1NTg1OiAkPyA9IDAKY29uZmlndXJlOjU2MDY6IHJlc3VsdDogbwpjb25m aWd1cmU6NTYxMDogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBp bGVyCmNvbmZpZ3VyZTo1NjI5OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTYyOTogJD8gPSAwCmNvbmZp Z3VyZTo1NjM4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTY0NzogY2hlY2tpbmcgd2hldGhlciAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgYWNjZXB0cyAtZwpj b25maWd1cmU6NTY2NzogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNs LWNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTY2NzogJD8gPSAwCmNvbmZpZ3Vy ZTo1NzA4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTcyNTogY2hlY2tpbmcgZm9yIC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyBvcHRpb24gdG8gZW5hYmxlIEMx MSBmZWF0dXJlcwpjb25maWd1cmU6NTkyODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjICAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSBjb25mdGVzdC5jOjEzOgovdXNyL2luY2x1ZGUvc3RkbGliLmg6MjU6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjUgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo1OTI4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRhcmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAj aW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFtcGxlcyBhcmUgdGFr ZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZwcmludGYgKHN0ZGVy ciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMgKCNfX1ZBX0FSR1Nf XykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMgKCN0ZXN0KSA6IHBy aW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJhcmdzX21hY3JvcyAo dm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7CnwgICBkZWJ1ZyAo IkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3dsaXN0IChUaGUgZmly c3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+eSwgInggaXMgJWQg YnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBsb25nIHR5cGVzLgp8 ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVmaW5lIEJJRzMyIDQy OTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09IDQyOTQ5NjcyOTd1 bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5b3VyIHByZXByb2Nl c3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNlCnwgICB5b3VyIHBy ZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcgbG9uZyBpbnQgYmln bnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25n IGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVfYXJyYXkKfCB7Cnwg ICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwgc3RydWN0IG5hbWVk X2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5hbWU7CnwgICBkb3Vi bGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2NwOwp8IAp8IHN0YXRp YyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRleHQpCnwgewp8ICAg Ly8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRlcmF0ZSB0aHJvdWdo IGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxzbyBjaGVjayBmb3Ig ZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyAq KHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJldHVybiAwOwp8IH0K fCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyBib29sCnwgdGVzdF92 YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9saXN0IGFyZ3M7Cnwg ICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19jb3B5Owp8ICAgdmFf Y29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0ciA9ICIiOwp8ICAg aW50IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVtYmVyID0gMDsKfCAKfCAgIHdoaWxlICgqZm9y bWF0KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgqZm9ybWF0KyspCnwgCXsKfCAJY2FzZSAncyc6 IC8vIHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBjb25zdCBjaGFyICopOwp8 IAkgIGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50CnwgCSAgbnVtYmVyID0gdmFfYXJnIChhcmdz X2NvcHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2YnOiAvLyBmbG9hdAp8IAkgIGZudW1i ZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgZG91YmxlKTsKfCAJICBicmVhazsKfCAJZGVmYXVsdDoK fCAJICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2YV9lbmQgKGFyZ3NfY29weSk7CnwgICB2YV9l bmQgKGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIgJiYgbnVtYmVyICYmIGZudW1iZXI7CnwgfQp8 IC8vIENoZWNrIF9BbGlnbmFzLgp8IGNoYXIgX0FsaWduYXMgKGRvdWJsZSkgYWxpZ25lZF9hc19k b3VibGU7CnwgY2hhciBfQWxpZ25hcyAoMCkgbm9fc3BlY2lhbF9hbGlnbm1lbnQ7CnwgZXh0ZXJu IGNoYXIgYWxpZ25lZF9hc19pbnQ7CnwgY2hhciBfQWxpZ25hcyAoMCkgX0FsaWduYXMgKGludCkg YWxpZ25lZF9hc19pbnQ7CnwgCnwgLy8gQ2hlY2sgX0FsaWdub2YuCnwgZW51bQp8IHsKfCAgIGlu dF9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoaW50KSwKfCAgIGludF9hcnJheV9hbGlnbm1lbnQgPSBf QWxpZ25vZiAoaW50WzEwMF0pLAp8ICAgY2hhcl9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoY2hhcikK fCB9Owp8IF9TdGF0aWNfYXNzZXJ0ICgwIDwgLV9BbGlnbm9mIChpbnQpLCAiX0FsaWdub2YgaXMg c2lnbmVkIik7CnwgCnwgLy8gQ2hlY2sgX05vcmV0dXJuLgp8IGludCBfTm9yZXR1cm4gZG9lc19u b3RfcmV0dXJuICh2b2lkKSB7IGZvciAoOzspIGNvbnRpbnVlOyB9CnwgCnwgLy8gQ2hlY2sgX1N0 YXRpY19hc3NlcnQuCnwgc3RydWN0IHRlc3Rfc3RhdGljX2Fzc2VydAp8IHsKfCAgIGludCB4Owp8 ICAgX1N0YXRpY19hc3NlcnQgKHNpemVvZiAoaW50KSA8PSBzaXplb2YgKGxvbmcgaW50KSwKfCAg ICAgICAgICAgICAgICAgICAiX1N0YXRpY19hc3NlcnQgZG9lcyBub3Qgd29yayBpbiBzdHJ1Y3Qi KTsKfCAgIGxvbmcgaW50IHk7CnwgfTsKfCAKfCAvLyBDaGVjayBVVEYtOCBsaXRlcmFscy4KfCAj ZGVmaW5lIHU4IHN5bnRheCBlcnJvciEKfCBjaGFyIGNvbnN0IHV0ZjhfbGl0ZXJhbFtdID0gdTgi aGFwcGVucyB0byBiZSBBU0NJSSIgImFub3RoZXIgc3RyaW5nIjsKfCAKfCAvLyBDaGVjayBkdXBs aWNhdGUgdHlwZWRlZnMuCnwgdHlwZWRlZiBsb25nICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmcg aW50ICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmdfcHRyIGxvbmdfcHRyOwp8IAp8IC8vIEFub255 bW91cyBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMgLS0gdGFrZW4gZnJvbSBDMTEgNi43LjIuMSBFeGFt cGxlIDEuCnwgc3RydWN0IGFub255bW91cwp8IHsKfCAgIHVuaW9uIHsKfCAgICAgc3RydWN0IHsg aW50IGk7IGludCBqOyB9Owp8ICAgICBzdHJ1Y3QgeyBpbnQgazsgbG9uZyBpbnQgbDsgfSB3Owp8 ICAgfTsKfCAgIGludCBtOwp8IH0gdjE7CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8v IENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayBy ZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8 ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVy IHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3Zh cmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFy Z3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAg IHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1 Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAgIGlhLT5k YXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkK fCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0 aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0 LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQz LjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNf YXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7 CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVy biAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFy WzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsK fCAKfCAgIHYxLmkgPSAyOwp8ICAgdjEudy5rID0gNTsKfCAgIF9TdGF0aWNfYXNzZXJ0ICgob2Zm c2V0b2YgKHN0cnVjdCBhbm9ueW1vdXMsIGkpCnwgCQkgICA9PSBvZmZzZXRvZiAoc3RydWN0IGFu b255bW91cywgdy5rKSksCnwgCQkgICJBbm9ueW1vdXMgdW5pb24gYWxpZ25tZW50IGJvdGNoIik7 CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo1OTI4OiAvaG9tZS9kYWhhbi9t dXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEzOgovdXNyL2lu Y2x1ZGUvc3RkbGliLmg6MjU6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjUgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo1OTI4OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRhcmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5o Pgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUg PHdjaGFyLmg+CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNy b3MuICBUaGVzZSBleGFtcGxlcyBhcmUgdGFrZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmlu ZSBkZWJ1ZyguLi4pIGZwcmludGYgKHN0ZGVyciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93 bGlzdCguLi4pIHB1dHMgKCNfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikg KCh0ZXN0KSA/IHB1dHMgKCN0ZXN0KSA6IHByaW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2 b2lkCnwgdGVzdF92YXJhcmdzX21hY3JvcyAodm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7Cnwg ICBpbnQgeSA9IDU2Nzg7CnwgICBkZWJ1ZyAoIkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4i LCB4KTsKfCAgIHNob3dsaXN0IChUaGUgZmlyc3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7 CnwgICByZXBvcnQgKHg+eSwgInggaXMgJWQgYnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwg Ly8gQ2hlY2sgbG9uZyBsb25nIHR5cGVzLgp8ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1 NTE2MTV1bGwKfCAjZGVmaW5lIEJJRzMyIDQyOTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChC SUc2NCAvIEJJRzMyID09IDQyOTQ5NjcyOTd1bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNp ZiAhQklHX09LCnwgICB5b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lm IEJJR19PSwp8ICNlbHNlCnwgICB5b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlm Cnwgc3RhdGljIGxvbmcgbG9uZyBpbnQgYmlnbnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsK fCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3Ry dWN0IGluY29tcGxldGVfYXJyYXkKfCB7CnwgICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0 YVtdOwp8IH07CnwgCnwgc3RydWN0IG5hbWVkX2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNv bnN0IHdjaGFyX3QgKm5hbWU7CnwgICBkb3VibGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYg Y29uc3QgY2hhciAqY2NwOwp8IAp8IHN0YXRpYyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAo Y2NwIHJlc3RyaWN0IHRleHQpCnwgewp8ICAgLy8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3 b3JrLgp8ICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2lu dGVyLgp8ICAgLy8gQWxzbyBjaGVjayBmb3IgZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAg IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyAqKHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBj b250aW51ZTsKfCAgIHJldHVybiAwOwp8IH0KfCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9j b3B5Lgp8IHN0YXRpYyBib29sCnwgdGVzdF92YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4u LikKfCB7CnwgICB2YV9saXN0IGFyZ3M7CnwgICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAg IHZhX2xpc3QgYXJnc19jb3B5Owp8ICAgdmFfY29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAg IGNvbnN0IGNoYXIgKnN0ciA9ICIiOwp8ICAgaW50IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVt YmVyID0gMDsKfCAKfCAgIHdoaWxlICgqZm9ybWF0KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgq Zm9ybWF0KyspCnwgCXsKfCAJY2FzZSAncyc6IC8vIHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAo YXJnc19jb3B5LCBjb25zdCBjaGFyICopOwp8IAkgIGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50 CnwgCSAgbnVtYmVyID0gdmFfYXJnIChhcmdzX2NvcHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNh c2UgJ2YnOiAvLyBmbG9hdAp8IAkgIGZudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgZG91Ymxl KTsKfCAJICBicmVhazsKfCAJZGVmYXVsdDoKfCAJICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2 YV9lbmQgKGFyZ3NfY29weSk7CnwgICB2YV9lbmQgKGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIg JiYgbnVtYmVyICYmIGZudW1iZXI7CnwgfQp8IC8vIENoZWNrIF9BbGlnbmFzLgp8IGNoYXIgX0Fs aWduYXMgKGRvdWJsZSkgYWxpZ25lZF9hc19kb3VibGU7CnwgY2hhciBfQWxpZ25hcyAoMCkgbm9f c3BlY2lhbF9hbGlnbm1lbnQ7CnwgZXh0ZXJuIGNoYXIgYWxpZ25lZF9hc19pbnQ7CnwgY2hhciBf QWxpZ25hcyAoMCkgX0FsaWduYXMgKGludCkgYWxpZ25lZF9hc19pbnQ7CnwgCnwgLy8gQ2hlY2sg X0FsaWdub2YuCnwgZW51bQp8IHsKfCAgIGludF9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoaW50KSwK fCAgIGludF9hcnJheV9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoaW50WzEwMF0pLAp8ICAgY2hhcl9h bGlnbm1lbnQgPSBfQWxpZ25vZiAoY2hhcikKfCB9Owp8IF9TdGF0aWNfYXNzZXJ0ICgwIDwgLV9B bGlnbm9mIChpbnQpLCAiX0FsaWdub2YgaXMgc2lnbmVkIik7CnwgCnwgLy8gQ2hlY2sgX05vcmV0 dXJuLgp8IGludCBfTm9yZXR1cm4gZG9lc19ub3RfcmV0dXJuICh2b2lkKSB7IGZvciAoOzspIGNv bnRpbnVlOyB9CnwgCnwgLy8gQ2hlY2sgX1N0YXRpY19hc3NlcnQuCnwgc3RydWN0IHRlc3Rfc3Rh dGljX2Fzc2VydAp8IHsKfCAgIGludCB4Owp8ICAgX1N0YXRpY19hc3NlcnQgKHNpemVvZiAoaW50 KSA8PSBzaXplb2YgKGxvbmcgaW50KSwKfCAgICAgICAgICAgICAgICAgICAiX1N0YXRpY19hc3Nl cnQgZG9lcyBub3Qgd29yayBpbiBzdHJ1Y3QiKTsKfCAgIGxvbmcgaW50IHk7CnwgfTsKfCAKfCAv LyBDaGVjayBVVEYtOCBsaXRlcmFscy4KfCAjZGVmaW5lIHU4IHN5bnRheCBlcnJvciEKfCBjaGFy IGNvbnN0IHV0ZjhfbGl0ZXJhbFtdID0gdTgiaGFwcGVucyB0byBiZSBBU0NJSSIgImFub3RoZXIg c3RyaW5nIjsKfCAKfCAvLyBDaGVjayBkdXBsaWNhdGUgdHlwZWRlZnMuCnwgdHlwZWRlZiBsb25n ICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmcgaW50ICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmdf cHRyIGxvbmdfcHRyOwp8IAp8IC8vIEFub255bW91cyBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMgLS0g dGFrZW4gZnJvbSBDMTEgNi43LjIuMSBFeGFtcGxlIDEuCnwgc3RydWN0IGFub255bW91cwp8IHsK fCAgIHVuaW9uIHsKfCAgICAgc3RydWN0IHsgaW50IGk7IGludCBqOyB9Owp8ICAgICBzdHJ1Y3Qg eyBpbnQgazsgbG9uZyBpbnQgbDsgfSB3Owp8ICAgfTsKfCAgIGludCBtOwp8IH0gdjE7CnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNz ID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0 ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIg KnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJh cmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwg NjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sg ZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9 CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9m IChkb3VibGUpICogMTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7 CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5p dCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0 cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJl ciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNf YXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQg dmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8 fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJy YXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsKfCAKfCAgIHYxLmkgPSAyOwp8ICAgdjEudy5rID0g NTsKfCAgIF9TdGF0aWNfYXNzZXJ0ICgob2Zmc2V0b2YgKHN0cnVjdCBhbm9ueW1vdXMsIGkpCnwg CQkgICA9PSBvZmZzZXRvZiAoc3RydWN0IGFub255bW91cywgdy5rKSksCnwgCQkgICJBbm9ueW1v dXMgdW5pb24gYWxpZ25tZW50IGJvdGNoIik7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZTo1OTQ1OiByZXN1bHQ6IHVuc3VwcG9ydGVkCmNvbmZpZ3VyZTo1OTU3OiBjaGVja2lu ZyBmb3IgL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIG9wdGlv biB0byBlbmFibGUgQzk5IGZlYXR1cmVzCmNvbmZpZ3VyZTo2MTA4OiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK SW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTM6Ci91c3IvaW5jbHVkZS9zdGRsaWIu aDoyNToxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQogICAyNSB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjYxMDg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxzdGRib29sLmg+CnwgI2luY2x1ZGUg PHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBDaGVjayB2YXJhcmdzIG1hY3Jvcy4gIFRoZXNlIGV4 YW1wbGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2LjEwLjMuNS4KfCAjZGVmaW5lIGRlYnVnKC4uLikg ZnByaW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHNob3dsaXN0KC4uLikgcHV0 cyAoI19fVkFfQVJHU19fKQp8ICNkZWZpbmUgcmVwb3J0KHRlc3QsLi4uKSAoKHRlc3QpID8gcHV0 cyAoI3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FSR1NfXykpCnwgc3RhdGljIHZvaWQKfCB0ZXN0X3Zh cmFyZ3NfbWFjcm9zICh2b2lkKQp8IHsKfCAgIGludCB4ID0gMTIzNDsKfCAgIGludCB5ID0gNTY3 ODsKfCAgIGRlYnVnICgiRmxhZyIpOwp8ICAgZGVidWcgKCJYID0gJWRcbiIsIHgpOwp8ICAgc2hv d2xpc3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBhbmQgdGhpcmQgaXRlbXMuKTsKfCAgIHJlcG9ydCAo eD55LCAieCBpcyAlZCBidXQgeSBpcyAlZCIsIHgsIHkpOwp8IH0KfCAKfCAvLyBDaGVjayBsb25n IGxvbmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2NCAxODQ0Njc0NDA3MzcwOTU1MTYxNXVsbAp8ICNk ZWZpbmUgQklHMzIgNDI5NDk2NzI5NXVsCnwgI2RlZmluZSBCSUdfT0sgKEJJRzY0IC8gQklHMzIg PT0gNDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAlIEJJRzMyID09IDApCnwgI2lmICFCSUdfT0sKfCAg IHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCAjaWYgQklHX09LCnwgI2Vs c2UKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCBzdGF0aWMgbG9u ZyBsb25nIGludCBiaWdudW0gPSAtOTIyMzM3MjAzNjg1NDc3NTgwN0xMOwp8IHN0YXRpYyB1bnNp Z25lZCBsb25nIGxvbmcgaW50IHViaWdudW0gPSBCSUc2NDsKfCAKfCBzdHJ1Y3QgaW5jb21wbGV0 ZV9hcnJheQp8IHsKfCAgIGludCBkYXRhc2l6ZTsKfCAgIGRvdWJsZSBkYXRhW107CnwgfTsKfCAK fCBzdHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBpbnQgbnVtYmVyOwp8ICAgY29uc3Qgd2NoYXJfdCAq bmFtZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8IH07CnwgCnwgdHlwZWRlZiBjb25zdCBjaGFyICpj Y3A7CnwgCnwgc3RhdGljIGlubGluZSBpbnQKfCB0ZXN0X3Jlc3RyaWN0IChjY3AgcmVzdHJpY3Qg dGV4dCkKfCB7CnwgICAvLyBTZWUgaWYgQysrLXN0eWxlIGNvbW1lbnRzIHdvcmsuCnwgICAvLyBJ dGVyYXRlIHRocm91Z2ggaXRlbXMgdmlhIHRoZSByZXN0cmljdGVkIHBvaW50ZXIuCnwgICAvLyBB bHNvIGNoZWNrIGZvciBkZWNsYXJhdGlvbnMgaW4gZm9yIGxvb3BzLgp8ICAgZm9yICh1bnNpZ25l ZCBpbnQgaSA9IDA7ICoodGV4dCtpKSAhPSAnXDAnOyArK2kpCnwgICAgIGNvbnRpbnVlOwp8ICAg cmV0dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNrIHZhcmFyZ3MgYW5kIHZhX2NvcHkuCnwgc3RhdGlj IGJvb2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZh X2xpc3QgYXJnczsKfCAgIHZhX3N0YXJ0IChhcmdzLCBmb3JtYXQpOwp8ICAgdmFfbGlzdCBhcmdz X2NvcHk7CnwgICB2YV9jb3B5IChhcmdzX2NvcHksIGFyZ3MpOwp8IAp8ICAgY29uc3QgY2hhciAq c3RyID0gIiI7CnwgICBpbnQgbnVtYmVyID0gMDsKfCAgIGZsb2F0IGZudW1iZXIgPSAwOwp8IAp8 ICAgd2hpbGUgKCpmb3JtYXQpCnwgICAgIHsKfCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJ ewp8IAljYXNlICdzJzogLy8gc3RyaW5nCnwgCSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNv bnN0IGNoYXIgKik7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIg PSB2YV9hcmcgKGFyZ3NfY29weSwgaW50KTsKfCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZs b2F0CnwgCSAgZm51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFr Owp8IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19j b3B5KTsKfCAgIHZhX2VuZCAoYXJncyk7CnwgCnwgICByZXR1cm4gKnN0ciAmJiBudW1iZXIgJiYg Zm51bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwg ICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlm ICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0g dHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwg ICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBm IC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8 IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBs ZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9h cnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8 ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFb aV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBz dHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9 IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsK fCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVy XTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3Jr IGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwg YmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkg IHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsKfCAKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjYxMDg6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtc3RkPWdudTk5IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTM6Ci91c3IvaW5jbHVkZS9zdGRsaWIuaDoy NToxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNSB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjYxMDg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxzdGRib29sLmg+CnwgI2luY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAjaW5j bHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBDaGVjayB2YXJhcmdzIG1hY3Jvcy4gIFRoZXNlIGV4YW1w bGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2LjEwLjMuNS4KfCAjZGVmaW5lIGRlYnVnKC4uLikgZnBy aW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHNob3dsaXN0KC4uLikgcHV0cyAo I19fVkFfQVJHU19fKQp8ICNkZWZpbmUgcmVwb3J0KHRlc3QsLi4uKSAoKHRlc3QpID8gcHV0cyAo I3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FSR1NfXykpCnwgc3RhdGljIHZvaWQKfCB0ZXN0X3ZhcmFy Z3NfbWFjcm9zICh2b2lkKQp8IHsKfCAgIGludCB4ID0gMTIzNDsKfCAgIGludCB5ID0gNTY3ODsK fCAgIGRlYnVnICgiRmxhZyIpOwp8ICAgZGVidWcgKCJYID0gJWRcbiIsIHgpOwp8ICAgc2hvd2xp c3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBhbmQgdGhpcmQgaXRlbXMuKTsKfCAgIHJlcG9ydCAoeD55 LCAieCBpcyAlZCBidXQgeSBpcyAlZCIsIHgsIHkpOwp8IH0KfCAKfCAvLyBDaGVjayBsb25nIGxv bmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2NCAxODQ0Njc0NDA3MzcwOTU1MTYxNXVsbAp8ICNkZWZp bmUgQklHMzIgNDI5NDk2NzI5NXVsCnwgI2RlZmluZSBCSUdfT0sgKEJJRzY0IC8gQklHMzIgPT0g NDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAlIEJJRzMyID09IDApCnwgI2lmICFCSUdfT0sKfCAgIHlv dXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCAjaWYgQklHX09LCnwgI2Vsc2UK fCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCBzdGF0aWMgbG9uZyBs b25nIGludCBiaWdudW0gPSAtOTIyMzM3MjAzNjg1NDc3NTgwN0xMOwp8IHN0YXRpYyB1bnNpZ25l ZCBsb25nIGxvbmcgaW50IHViaWdudW0gPSBCSUc2NDsKfCAKfCBzdHJ1Y3QgaW5jb21wbGV0ZV9h cnJheQp8IHsKfCAgIGludCBkYXRhc2l6ZTsKfCAgIGRvdWJsZSBkYXRhW107CnwgfTsKfCAKfCBz dHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBpbnQgbnVtYmVyOwp8ICAgY29uc3Qgd2NoYXJfdCAqbmFt ZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8IH07CnwgCnwgdHlwZWRlZiBjb25zdCBjaGFyICpjY3A7 CnwgCnwgc3RhdGljIGlubGluZSBpbnQKfCB0ZXN0X3Jlc3RyaWN0IChjY3AgcmVzdHJpY3QgdGV4 dCkKfCB7CnwgICAvLyBTZWUgaWYgQysrLXN0eWxlIGNvbW1lbnRzIHdvcmsuCnwgICAvLyBJdGVy YXRlIHRocm91Z2ggaXRlbXMgdmlhIHRoZSByZXN0cmljdGVkIHBvaW50ZXIuCnwgICAvLyBBbHNv IGNoZWNrIGZvciBkZWNsYXJhdGlvbnMgaW4gZm9yIGxvb3BzLgp8ICAgZm9yICh1bnNpZ25lZCBp bnQgaSA9IDA7ICoodGV4dCtpKSAhPSAnXDAnOyArK2kpCnwgICAgIGNvbnRpbnVlOwp8ICAgcmV0 dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNrIHZhcmFyZ3MgYW5kIHZhX2NvcHkuCnwgc3RhdGljIGJv b2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xp c3QgYXJnczsKfCAgIHZhX3N0YXJ0IChhcmdzLCBmb3JtYXQpOwp8ICAgdmFfbGlzdCBhcmdzX2Nv cHk7CnwgICB2YV9jb3B5IChhcmdzX2NvcHksIGFyZ3MpOwp8IAp8ICAgY29uc3QgY2hhciAqc3Ry ID0gIiI7CnwgICBpbnQgbnVtYmVyID0gMDsKfCAgIGZsb2F0IGZudW1iZXIgPSAwOwp8IAp8ICAg d2hpbGUgKCpmb3JtYXQpCnwgICAgIHsKfCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8 IAljYXNlICdzJzogLy8gc3RyaW5nCnwgCSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNvbnN0 IGNoYXIgKik7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIgPSB2 YV9hcmcgKGFyZ3NfY29weSwgaW50KTsKfCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZsb2F0 CnwgCSAgZm51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8 IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5 KTsKfCAgIHZhX2VuZCAoYXJncyk7CnwgCnwgICByZXR1cm4gKnN0ciAmJiBudW1iZXIgJiYgZm51 bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwgICBf Qm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlmICh0 ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1 ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwgICAv LyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4i LCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8 ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRl X2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJh eSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFbaV0g PSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1 Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9IEwi VGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAK fCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsK fCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3JrIGFy b3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwgYmln bnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8 IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsKfCAKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjYxMDg6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtc3RkPWM5OSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEzOgovdXNyL2luY2x1ZGUvc3RkbGliLmg6MjU6MTA6 IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICAgMjUgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAg ICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZTo2MTA4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRhcmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYu aD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2luY2x1ZGUg PHN0ZGlvLmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFtcGxlcyBh cmUgdGFrZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZwcmludGYg KHN0ZGVyciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMgKCNfX1ZB X0FSR1NfXykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMgKCN0ZXN0 KSA6IHByaW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJhcmdzX21h Y3JvcyAodm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7CnwgICBk ZWJ1ZyAoIkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3dsaXN0IChU aGUgZmlyc3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+eSwgIngg aXMgJWQgYnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBsb25nIHR5 cGVzLgp8ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVmaW5lIEJJ RzMyIDQyOTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09IDQyOTQ5 NjcyOTd1bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5b3VyIHBy ZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNlCnwgICB5 b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcgbG9uZyBp bnQgYmlnbnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBsb25nIGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVfYXJyYXkK fCB7CnwgICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwgc3RydWN0 IG5hbWVkX2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5hbWU7Cnwg ICBkb3VibGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2NwOwp8IAp8 IHN0YXRpYyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRleHQpCnwg ewp8ICAgLy8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRlcmF0ZSB0 aHJvdWdoIGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxzbyBjaGVj ayBmb3IgZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQgaW50IGkg PSAwOyAqKHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJldHVybiAw Owp8IH0KfCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyBib29sCnwg dGVzdF92YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9saXN0IGFy Z3M7CnwgICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19jb3B5Owp8 ICAgdmFfY29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0ciA9ICIi Owp8ICAgaW50IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVtYmVyID0gMDsKfCAKfCAgIHdoaWxl ICgqZm9ybWF0KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgqZm9ybWF0KyspCnwgCXsKfCAJY2Fz ZSAncyc6IC8vIHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBjb25zdCBjaGFy ICopOwp8IAkgIGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50CnwgCSAgbnVtYmVyID0gdmFfYXJn IChhcmdzX2NvcHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2YnOiAvLyBmbG9hdAp8IAkg IGZudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgZG91YmxlKTsKfCAJICBicmVhazsKfCAJZGVm YXVsdDoKfCAJICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2YV9lbmQgKGFyZ3NfY29weSk7Cnwg ICB2YV9lbmQgKGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIgJiYgbnVtYmVyICYmIGZudW1iZXI7 CnwgfQp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICAvLyBDaGVjayBib29sLgp8ICAgX0Jvb2wg c3VjY2VzcyA9IGZhbHNlOwp8IAp8ICAgLy8gQ2hlY2sgcmVzdHJpY3QuCnwgICBpZiAodGVzdF9y ZXN0cmljdCAoIlN0cmluZyBsaXRlcmFsIikgPT0gMCkKfCAgICAgc3VjY2VzcyA9IHRydWU7Cnwg ICBjaGFyICpyZXN0cmljdCBuZXd2YXIgPSAiQW5vdGhlciBzdHJpbmciOwp8IAp8ICAgLy8gQ2hl Y2sgdmFyYXJncy4KfCAgIHN1Y2Nlc3MgJj0gdGVzdF92YXJhcmdzICgicywgZCcgZiAuIiwgInN0 cmluZyIsIDY1LCAzNC4yMzQpOwp8ICAgdGVzdF92YXJhcmdzX21hY3JvcyAoKTsKfCAKfCAgIC8v IENoZWNrIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMuCnwgICBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJh eSAqaWEgPQp8ICAgICBtYWxsb2MgKHNpemVvZiAoc3RydWN0IGluY29tcGxldGVfYXJyYXkpICsg KHNpemVvZiAoZG91YmxlKSAqIDEwKSk7CnwgICBpYS0+ZGF0YXNpemUgPSAxMDsKfCAgIGZvciAo aW50IGkgPSAwOyBpIDwgaWEtPmRhdGFzaXplOyArK2kpCnwgICAgIGlhLT5kYXRhW2ldID0gaSAq IDEuMjM0Owp8IAp8ICAgLy8gQ2hlY2sgbmFtZWQgaW5pdGlhbGl6ZXJzLgp8ICAgc3RydWN0IG5h bWVkX2luaXQgbmkgPSB7CnwgICAgIC5udW1iZXIgPSAzNCwKfCAgICAgLm5hbWUgPSBMIlRlc3Qg d2lkZSBzdHJpbmciLAp8ICAgICAuYXZlcmFnZSA9IDU0My4zNDM0MywKfCAgIH07CnwgCnwgICBu aS5udW1iZXIgPSA1ODsKfCAKfCAgIGludCBkeW5hbWljX2FycmF5W25pLm51bWJlcl07CnwgICBk eW5hbWljX2FycmF5W25pLm51bWJlciAtIDFdID0gNTQzOwp8IAp8ICAgLy8gd29yayBhcm91bmQg dW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzCnwgICByZXR1cm4gKCFzdWNjZXNzIHx8IGJpZ251bSA9 PSAwTEwgfHwgdWJpZ251bSA9PSAwdUxMIHx8IG5ld3ZhclswXSA9PSAneCcKfCAJICB8fCBkeW5h bWljX2FycmF5W25pLm51bWJlciAtIDFdICE9IDU0Myk7CnwgCnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZTo2MTA4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLWM5OSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cmk1ODYtbGludXgtbXVzbC1j YzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctYzk5Jwpjb25maWd1 cmU6NjEwODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZF X1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+ CnwgI2luY2x1ZGUgPHN0ZGJvb2wuaD4KfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2luY2x1ZGUg PHN0ZGxpYi5oPgp8ICNpbmNsdWRlIDx3Y2hhci5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8IAp8 IC8vIENoZWNrIHZhcmFyZ3MgbWFjcm9zLiAgVGhlc2UgZXhhbXBsZXMgYXJlIHRha2VuIGZyb20g Qzk5IDYuMTAuMy41Lgp8ICNkZWZpbmUgZGVidWcoLi4uKSBmcHJpbnRmIChzdGRlcnIsIF9fVkFf QVJHU19fKQp8ICNkZWZpbmUgc2hvd2xpc3QoLi4uKSBwdXRzICgjX19WQV9BUkdTX18pCnwgI2Rl ZmluZSByZXBvcnQodGVzdCwuLi4pICgodGVzdCkgPyBwdXRzICgjdGVzdCkgOiBwcmludGYgKF9f VkFfQVJHU19fKSkKfCBzdGF0aWMgdm9pZAp8IHRlc3RfdmFyYXJnc19tYWNyb3MgKHZvaWQpCnwg ewp8ICAgaW50IHggPSAxMjM0Owp8ICAgaW50IHkgPSA1Njc4Owp8ICAgZGVidWcgKCJGbGFnIik7 CnwgICBkZWJ1ZyAoIlggPSAlZFxuIiwgeCk7CnwgICBzaG93bGlzdCAoVGhlIGZpcnN0LCBzZWNv bmQsIGFuZCB0aGlyZCBpdGVtcy4pOwp8ICAgcmVwb3J0ICh4PnksICJ4IGlzICVkIGJ1dCB5IGlz ICVkIiwgeCwgeSk7CnwgfQp8IAp8IC8vIENoZWNrIGxvbmcgbG9uZyB0eXBlcy4KfCAjZGVmaW5l IEJJRzY0IDE4NDQ2NzQ0MDczNzA5NTUxNjE1dWxsCnwgI2RlZmluZSBCSUczMiA0Mjk0OTY3Mjk1 dWwKfCAjZGVmaW5lIEJJR19PSyAoQklHNjQgLyBCSUczMiA9PSA0Mjk0OTY3Mjk3dWxsICYmIEJJ RzY0ICUgQklHMzIgPT0gMCkKfCAjaWYgIUJJR19PSwp8ICAgeW91ciBwcmVwcm9jZXNzb3IgaXMg YnJva2VuOwp8ICNlbmRpZgp8ICNpZiBCSUdfT0sKfCAjZWxzZQp8ICAgeW91ciBwcmVwcm9jZXNz b3IgaXMgYnJva2VuOwp8ICNlbmRpZgp8IHN0YXRpYyBsb25nIGxvbmcgaW50IGJpZ251bSA9IC05 MjIzMzcyMDM2ODU0Nzc1ODA3TEw7Cnwgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWJp Z251bSA9IEJJRzY0Owp8IAp8IHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5Cnwgewp8ICAgaW50IGRh dGFzaXplOwp8ICAgZG91YmxlIGRhdGFbXTsKfCB9Owp8IAp8IHN0cnVjdCBuYW1lZF9pbml0IHsK fCAgIGludCBudW1iZXI7CnwgICBjb25zdCB3Y2hhcl90ICpuYW1lOwp8ICAgZG91YmxlIGF2ZXJh Z2U7CnwgfTsKfCAKfCB0eXBlZGVmIGNvbnN0IGNoYXIgKmNjcDsKfCAKfCBzdGF0aWMgaW5saW5l IGludAp8IHRlc3RfcmVzdHJpY3QgKGNjcCByZXN0cmljdCB0ZXh0KQp8IHsKfCAgIC8vIFNlZSBp ZiBDKystc3R5bGUgY29tbWVudHMgd29yay4KfCAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBpdGVtcyB2 aWEgdGhlIHJlc3RyaWN0ZWQgcG9pbnRlci4KfCAgIC8vIEFsc28gY2hlY2sgZm9yIGRlY2xhcmF0 aW9ucyBpbiBmb3IgbG9vcHMuCnwgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgKih0ZXh0K2kp ICE9ICdcMCc7ICsraSkKfCAgICAgY29udGludWU7CnwgICByZXR1cm4gMDsKfCB9CnwgCnwgLy8g Q2hlY2sgdmFyYXJncyBhbmQgdmFfY29weS4KfCBzdGF0aWMgYm9vbAp8IHRlc3RfdmFyYXJncyAo Y29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCnwgewp8ICAgdmFfbGlzdCBhcmdzOwp8ICAgdmFfc3Rh cnQgKGFyZ3MsIGZvcm1hdCk7CnwgICB2YV9saXN0IGFyZ3NfY29weTsKfCAgIHZhX2NvcHkgKGFy Z3NfY29weSwgYXJncyk7CnwgCnwgICBjb25zdCBjaGFyICpzdHIgPSAiIjsKfCAgIGludCBudW1i ZXIgPSAwOwp8ICAgZmxvYXQgZm51bWJlciA9IDA7CnwgCnwgICB3aGlsZSAoKmZvcm1hdCkKfCAg ICAgewp8ICAgICAgIHN3aXRjaCAoKmZvcm1hdCsrKQp8IAl7CnwgCWNhc2UgJ3MnOiAvLyBzdHJp bmcKfCAJICBzdHIgPSB2YV9hcmcgKGFyZ3NfY29weSwgY29uc3QgY2hhciAqKTsKfCAJICBicmVh azsKfCAJY2FzZSAnZCc6IC8vIGludAp8IAkgIG51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBp bnQpOwp8IAkgIGJyZWFrOwp8IAljYXNlICdmJzogLy8gZmxvYXQKfCAJICBmbnVtYmVyID0gdmFf YXJnIChhcmdzX2NvcHksIGRvdWJsZSk7CnwgCSAgYnJlYWs7CnwgCWRlZmF1bHQ6CnwgCSAgYnJl YWs7CnwgCX0KfCAgICAgfQp8ICAgdmFfZW5kIChhcmdzX2NvcHkpOwp8ICAgdmFfZW5kIChhcmdz KTsKfCAKfCAgIHJldHVybiAqc3RyICYmIG51bWJlciAmJiBmbnVtYmVyOwp8IH0KfCBpbnQKfCBt YWluICgpCnwgewp8IAp8ICAgLy8gQ2hlY2sgYm9vbC4KfCAgIF9Cb29sIHN1Y2Nlc3MgPSBmYWxz ZTsKfCAKfCAgIC8vIENoZWNrIHJlc3RyaWN0Lgp8ICAgaWYgKHRlc3RfcmVzdHJpY3QgKCJTdHJp bmcgbGl0ZXJhbCIpID09IDApCnwgICAgIHN1Y2Nlc3MgPSB0cnVlOwp8ICAgY2hhciAqcmVzdHJp Y3QgbmV3dmFyID0gIkFub3RoZXIgc3RyaW5nIjsKfCAKfCAgIC8vIENoZWNrIHZhcmFyZ3MuCnwg ICBzdWNjZXNzICY9IHRlc3RfdmFyYXJncyAoInMsIGQnIGYgLiIsICJzdHJpbmciLCA2NSwgMzQu MjM0KTsKfCAgIHRlc3RfdmFyYXJnc19tYWNyb3MgKCk7CnwgCnwgICAvLyBDaGVjayBmbGV4aWJs ZSBhcnJheSBtZW1iZXJzLgp8ICAgc3RydWN0IGluY29tcGxldGVfYXJyYXkgKmlhID0KfCAgICAg bWFsbG9jIChzaXplb2YgKHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5KSArIChzaXplb2YgKGRvdWJs ZSkgKiAxMCkpOwp8ICAgaWEtPmRhdGFzaXplID0gMTA7CnwgICBmb3IgKGludCBpID0gMDsgaSA8 IGlhLT5kYXRhc2l6ZTsgKytpKQp8ICAgICBpYS0+ZGF0YVtpXSA9IGkgKiAxLjIzNDsKfCAKfCAg IC8vIENoZWNrIG5hbWVkIGluaXRpYWxpemVycy4KfCAgIHN0cnVjdCBuYW1lZF9pbml0IG5pID0g ewp8ICAgICAubnVtYmVyID0gMzQsCnwgICAgIC5uYW1lID0gTCJUZXN0IHdpZGUgc3RyaW5nIiwK fCAgICAgLmF2ZXJhZ2UgPSA1NDMuMzQzNDMsCnwgICB9Owp8IAp8ICAgbmkubnVtYmVyID0gNTg7 CnwgCnwgICBpbnQgZHluYW1pY19hcnJheVtuaS5udW1iZXJdOwp8ICAgZHluYW1pY19hcnJheVtu aS5udW1iZXIgLSAxXSA9IDU0MzsKfCAKfCAgIC8vIHdvcmsgYXJvdW5kIHVudXNlZCB2YXJpYWJs ZSB3YXJuaW5ncwp8ICAgcmV0dXJuICghc3VjY2VzcyB8fCBiaWdudW0gPT0gMExMIHx8IHViaWdu dW0gPT0gMHVMTCB8fCBuZXd2YXJbMF0gPT0gJ3gnCnwgCSAgfHwgZHluYW1pY19hcnJheVtuaS5u dW1iZXIgLSAxXSAhPSA1NDMpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 NjEwODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1BQzk5 IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPGNvbW1hbmQtbGluZT46IGVycm9yOiBtaXNzaW5n ICcoJyBhZnRlciBwcmVkaWNhdGUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTM6 Ci91c3IvaW5jbHVkZS9zdGRsaWIuaDoyNToxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFk ZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNSB8ICNpbmNsdWRlIDxi aXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYxMDg6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxz dGRib29sLmg+CnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAj aW5jbHVkZSA8d2NoYXIuaD4KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBDaGVjayB2YXJh cmdzIG1hY3Jvcy4gIFRoZXNlIGV4YW1wbGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2LjEwLjMuNS4K fCAjZGVmaW5lIGRlYnVnKC4uLikgZnByaW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1NfXykKfCAjZGVm aW5lIHNob3dsaXN0KC4uLikgcHV0cyAoI19fVkFfQVJHU19fKQp8ICNkZWZpbmUgcmVwb3J0KHRl c3QsLi4uKSAoKHRlc3QpID8gcHV0cyAoI3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FSR1NfXykpCnwg c3RhdGljIHZvaWQKfCB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICh2b2lkKQp8IHsKfCAgIGludCB4ID0g MTIzNDsKfCAgIGludCB5ID0gNTY3ODsKfCAgIGRlYnVnICgiRmxhZyIpOwp8ICAgZGVidWcgKCJY ID0gJWRcbiIsIHgpOwp8ICAgc2hvd2xpc3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBhbmQgdGhpcmQg aXRlbXMuKTsKfCAgIHJlcG9ydCAoeD55LCAieCBpcyAlZCBidXQgeSBpcyAlZCIsIHgsIHkpOwp8 IH0KfCAKfCAvLyBDaGVjayBsb25nIGxvbmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2NCAxODQ0Njc0 NDA3MzcwOTU1MTYxNXVsbAp8ICNkZWZpbmUgQklHMzIgNDI5NDk2NzI5NXVsCnwgI2RlZmluZSBC SUdfT0sgKEJJRzY0IC8gQklHMzIgPT0gNDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAlIEJJRzMyID09 IDApCnwgI2lmICFCSUdfT0sKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5k aWYKfCAjaWYgQklHX09LCnwgI2Vsc2UKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsK fCAjZW5kaWYKfCBzdGF0aWMgbG9uZyBsb25nIGludCBiaWdudW0gPSAtOTIyMzM3MjAzNjg1NDc3 NTgwN0xMOwp8IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHViaWdudW0gPSBCSUc2NDsK fCAKfCBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheQp8IHsKfCAgIGludCBkYXRhc2l6ZTsKfCAgIGRv dWJsZSBkYXRhW107CnwgfTsKfCAKfCBzdHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBpbnQgbnVtYmVy Owp8ICAgY29uc3Qgd2NoYXJfdCAqbmFtZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8IH07CnwgCnwg dHlwZWRlZiBjb25zdCBjaGFyICpjY3A7CnwgCnwgc3RhdGljIGlubGluZSBpbnQKfCB0ZXN0X3Jl c3RyaWN0IChjY3AgcmVzdHJpY3QgdGV4dCkKfCB7CnwgICAvLyBTZWUgaWYgQysrLXN0eWxlIGNv bW1lbnRzIHdvcmsuCnwgICAvLyBJdGVyYXRlIHRocm91Z2ggaXRlbXMgdmlhIHRoZSByZXN0cmlj dGVkIHBvaW50ZXIuCnwgICAvLyBBbHNvIGNoZWNrIGZvciBkZWNsYXJhdGlvbnMgaW4gZm9yIGxv b3BzLgp8ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7ICoodGV4dCtpKSAhPSAnXDAnOyArK2kp CnwgICAgIGNvbnRpbnVlOwp8ICAgcmV0dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNrIHZhcmFyZ3Mg YW5kIHZhX2NvcHkuCnwgc3RhdGljIGJvb2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0IGNoYXIgKmZv cm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xpc3QgYXJnczsKfCAgIHZhX3N0YXJ0IChhcmdzLCBmb3Jt YXQpOwp8ICAgdmFfbGlzdCBhcmdzX2NvcHk7CnwgICB2YV9jb3B5IChhcmdzX2NvcHksIGFyZ3Mp Owp8IAp8ICAgY29uc3QgY2hhciAqc3RyID0gIiI7CnwgICBpbnQgbnVtYmVyID0gMDsKfCAgIGZs b2F0IGZudW1iZXIgPSAwOwp8IAp8ICAgd2hpbGUgKCpmb3JtYXQpCnwgICAgIHsKfCAgICAgICBz d2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8IAljYXNlICdzJzogLy8gc3RyaW5nCnwgCSAgc3RyID0g dmFfYXJnIChhcmdzX2NvcHksIGNvbnN0IGNoYXIgKik7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2Qn OiAvLyBpbnQKfCAJICBudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgaW50KTsKfCAJICBicmVh azsKfCAJY2FzZSAnZic6IC8vIGZsb2F0CnwgCSAgZm51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5 LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8IAl9CnwgICAg IH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5KTsKfCAgIHZhX2VuZCAoYXJncyk7CnwgCnwgICByZXR1 cm4gKnN0ciAmJiBudW1iZXIgJiYgZm51bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAK fCAgIC8vIENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBD aGVjayByZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9 PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJB bm90aGVyIHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0 ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0 X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVy cy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9m IChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAg IGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7 ICsraSkKfCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1l ZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJl ciA9IDM0LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdl ID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5 bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0g PSA1NDM7CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAg IHJldHVybiAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwg bmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0g NTQzKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYxMDg6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtRF9TVERDX0M5OT0gLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMzoK L3Vzci9pbmNsdWRlL3N0ZGxpYi5oOjI1OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRl ci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI1IHwgI2luY2x1ZGUgPGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjEwODogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJl bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgp8ICNp bmNsdWRlIDx3Y2hhci5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8IAp8IC8vIENoZWNrIHZhcmFy Z3MgbWFjcm9zLiAgVGhlc2UgZXhhbXBsZXMgYXJlIHRha2VuIGZyb20gQzk5IDYuMTAuMy41Lgp8 ICNkZWZpbmUgZGVidWcoLi4uKSBmcHJpbnRmIChzdGRlcnIsIF9fVkFfQVJHU19fKQp8ICNkZWZp bmUgc2hvd2xpc3QoLi4uKSBwdXRzICgjX19WQV9BUkdTX18pCnwgI2RlZmluZSByZXBvcnQodGVz dCwuLi4pICgodGVzdCkgPyBwdXRzICgjdGVzdCkgOiBwcmludGYgKF9fVkFfQVJHU19fKSkKfCBz dGF0aWMgdm9pZAp8IHRlc3RfdmFyYXJnc19tYWNyb3MgKHZvaWQpCnwgewp8ICAgaW50IHggPSAx MjM0Owp8ICAgaW50IHkgPSA1Njc4Owp8ICAgZGVidWcgKCJGbGFnIik7CnwgICBkZWJ1ZyAoIlgg PSAlZFxuIiwgeCk7CnwgICBzaG93bGlzdCAoVGhlIGZpcnN0LCBzZWNvbmQsIGFuZCB0aGlyZCBp dGVtcy4pOwp8ICAgcmVwb3J0ICh4PnksICJ4IGlzICVkIGJ1dCB5IGlzICVkIiwgeCwgeSk7Cnwg fQp8IAp8IC8vIENoZWNrIGxvbmcgbG9uZyB0eXBlcy4KfCAjZGVmaW5lIEJJRzY0IDE4NDQ2NzQ0 MDczNzA5NTUxNjE1dWxsCnwgI2RlZmluZSBCSUczMiA0Mjk0OTY3Mjk1dWwKfCAjZGVmaW5lIEJJ R19PSyAoQklHNjQgLyBCSUczMiA9PSA0Mjk0OTY3Mjk3dWxsICYmIEJJRzY0ICUgQklHMzIgPT0g MCkKfCAjaWYgIUJJR19PSwp8ICAgeW91ciBwcmVwcm9jZXNzb3IgaXMgYnJva2VuOwp8ICNlbmRp Zgp8ICNpZiBCSUdfT0sKfCAjZWxzZQp8ICAgeW91ciBwcmVwcm9jZXNzb3IgaXMgYnJva2VuOwp8 ICNlbmRpZgp8IHN0YXRpYyBsb25nIGxvbmcgaW50IGJpZ251bSA9IC05MjIzMzcyMDM2ODU0Nzc1 ODA3TEw7Cnwgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWJpZ251bSA9IEJJRzY0Owp8 IAp8IHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5Cnwgewp8ICAgaW50IGRhdGFzaXplOwp8ICAgZG91 YmxlIGRhdGFbXTsKfCB9Owp8IAp8IHN0cnVjdCBuYW1lZF9pbml0IHsKfCAgIGludCBudW1iZXI7 CnwgICBjb25zdCB3Y2hhcl90ICpuYW1lOwp8ICAgZG91YmxlIGF2ZXJhZ2U7CnwgfTsKfCAKfCB0 eXBlZGVmIGNvbnN0IGNoYXIgKmNjcDsKfCAKfCBzdGF0aWMgaW5saW5lIGludAp8IHRlc3RfcmVz dHJpY3QgKGNjcCByZXN0cmljdCB0ZXh0KQp8IHsKfCAgIC8vIFNlZSBpZiBDKystc3R5bGUgY29t bWVudHMgd29yay4KfCAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBpdGVtcyB2aWEgdGhlIHJlc3RyaWN0 ZWQgcG9pbnRlci4KfCAgIC8vIEFsc28gY2hlY2sgZm9yIGRlY2xhcmF0aW9ucyBpbiBmb3IgbG9v cHMuCnwgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgKih0ZXh0K2kpICE9ICdcMCc7ICsraSkK fCAgICAgY29udGludWU7CnwgICByZXR1cm4gMDsKfCB9CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBh bmQgdmFfY29weS4KfCBzdGF0aWMgYm9vbAp8IHRlc3RfdmFyYXJncyAoY29uc3QgY2hhciAqZm9y bWF0LCAuLi4pCnwgewp8ICAgdmFfbGlzdCBhcmdzOwp8ICAgdmFfc3RhcnQgKGFyZ3MsIGZvcm1h dCk7CnwgICB2YV9saXN0IGFyZ3NfY29weTsKfCAgIHZhX2NvcHkgKGFyZ3NfY29weSwgYXJncyk7 CnwgCnwgICBjb25zdCBjaGFyICpzdHIgPSAiIjsKfCAgIGludCBudW1iZXIgPSAwOwp8ICAgZmxv YXQgZm51bWJlciA9IDA7CnwgCnwgICB3aGlsZSAoKmZvcm1hdCkKfCAgICAgewp8ICAgICAgIHN3 aXRjaCAoKmZvcm1hdCsrKQp8IAl7CnwgCWNhc2UgJ3MnOiAvLyBzdHJpbmcKfCAJICBzdHIgPSB2 YV9hcmcgKGFyZ3NfY29weSwgY29uc3QgY2hhciAqKTsKfCAJICBicmVhazsKfCAJY2FzZSAnZCc6 IC8vIGludAp8IAkgIG51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBpbnQpOwp8IAkgIGJyZWFr Owp8IAljYXNlICdmJzogLy8gZmxvYXQKfCAJICBmbnVtYmVyID0gdmFfYXJnIChhcmdzX2NvcHks IGRvdWJsZSk7CnwgCSAgYnJlYWs7CnwgCWRlZmF1bHQ6CnwgCSAgYnJlYWs7CnwgCX0KfCAgICAg fQp8ICAgdmFfZW5kIChhcmdzX2NvcHkpOwp8ICAgdmFfZW5kIChhcmdzKTsKfCAKfCAgIHJldHVy biAqc3RyICYmIG51bWJlciAmJiBmbnVtYmVyOwp8IH0KfCBpbnQKfCBtYWluICgpCnwgewp8IAp8 ICAgLy8gQ2hlY2sgYm9vbC4KfCAgIF9Cb29sIHN1Y2Nlc3MgPSBmYWxzZTsKfCAKfCAgIC8vIENo ZWNrIHJlc3RyaWN0Lgp8ICAgaWYgKHRlc3RfcmVzdHJpY3QgKCJTdHJpbmcgbGl0ZXJhbCIpID09 IDApCnwgICAgIHN1Y2Nlc3MgPSB0cnVlOwp8ICAgY2hhciAqcmVzdHJpY3QgbmV3dmFyID0gIkFu b3RoZXIgc3RyaW5nIjsKfCAKfCAgIC8vIENoZWNrIHZhcmFyZ3MuCnwgICBzdWNjZXNzICY9IHRl c3RfdmFyYXJncyAoInMsIGQnIGYgLiIsICJzdHJpbmciLCA2NSwgMzQuMjM0KTsKfCAgIHRlc3Rf dmFyYXJnc19tYWNyb3MgKCk7CnwgCnwgICAvLyBDaGVjayBmbGV4aWJsZSBhcnJheSBtZW1iZXJz Lgp8ICAgc3RydWN0IGluY29tcGxldGVfYXJyYXkgKmlhID0KfCAgICAgbWFsbG9jIChzaXplb2Yg KHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5KSArIChzaXplb2YgKGRvdWJsZSkgKiAxMCkpOwp8ICAg aWEtPmRhdGFzaXplID0gMTA7CnwgICBmb3IgKGludCBpID0gMDsgaSA8IGlhLT5kYXRhc2l6ZTsg KytpKQp8ICAgICBpYS0+ZGF0YVtpXSA9IGkgKiAxLjIzNDsKfCAKfCAgIC8vIENoZWNrIG5hbWVk IGluaXRpYWxpemVycy4KfCAgIHN0cnVjdCBuYW1lZF9pbml0IG5pID0gewp8ICAgICAubnVtYmVy ID0gMzQsCnwgICAgIC5uYW1lID0gTCJUZXN0IHdpZGUgc3RyaW5nIiwKfCAgICAgLmF2ZXJhZ2Ug PSA1NDMuMzQzNDMsCnwgICB9Owp8IAp8ICAgbmkubnVtYmVyID0gNTg7CnwgCnwgICBpbnQgZHlu YW1pY19hcnJheVtuaS5udW1iZXJdOwp8ICAgZHluYW1pY19hcnJheVtuaS5udW1iZXIgLSAxXSA9 IDU0MzsKfCAKfCAgIC8vIHdvcmsgYXJvdW5kIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncwp8ICAg cmV0dXJuICghc3VjY2VzcyB8fCBiaWdudW0gPT0gMExMIHx8IHViaWdudW0gPT0gMHVMTCB8fCBu ZXd2YXJbMF0gPT0gJ3gnCnwgCSAgfHwgZHluYW1pY19hcnJheVtuaS5udW1iZXIgLSAxXSAhPSA1 NDMpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NjEwODogL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1xbGFuZ2x2bD1leHRjMXggLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQppNTg2LWxpbnV4LW11c2wtY2M6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLXFsYW5nbHZsPWV4dGMxeCcKY29uZmlndXJlOjYx MDg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNp bmNsdWRlIDxzdGRib29sLmg+CnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRs aWIuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBD aGVjayB2YXJhcmdzIG1hY3Jvcy4gIFRoZXNlIGV4YW1wbGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2 LjEwLjMuNS4KfCAjZGVmaW5lIGRlYnVnKC4uLikgZnByaW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1Nf XykKfCAjZGVmaW5lIHNob3dsaXN0KC4uLikgcHV0cyAoI19fVkFfQVJHU19fKQp8ICNkZWZpbmUg cmVwb3J0KHRlc3QsLi4uKSAoKHRlc3QpID8gcHV0cyAoI3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FS R1NfXykpCnwgc3RhdGljIHZvaWQKfCB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICh2b2lkKQp8IHsKfCAg IGludCB4ID0gMTIzNDsKfCAgIGludCB5ID0gNTY3ODsKfCAgIGRlYnVnICgiRmxhZyIpOwp8ICAg ZGVidWcgKCJYID0gJWRcbiIsIHgpOwp8ICAgc2hvd2xpc3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBh bmQgdGhpcmQgaXRlbXMuKTsKfCAgIHJlcG9ydCAoeD55LCAieCBpcyAlZCBidXQgeSBpcyAlZCIs IHgsIHkpOwp8IH0KfCAKfCAvLyBDaGVjayBsb25nIGxvbmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2 NCAxODQ0Njc0NDA3MzcwOTU1MTYxNXVsbAp8ICNkZWZpbmUgQklHMzIgNDI5NDk2NzI5NXVsCnwg I2RlZmluZSBCSUdfT0sgKEJJRzY0IC8gQklHMzIgPT0gNDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAl IEJJRzMyID09IDApCnwgI2lmICFCSUdfT0sKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tl bjsKfCAjZW5kaWYKfCAjaWYgQklHX09LCnwgI2Vsc2UKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlz IGJyb2tlbjsKfCAjZW5kaWYKfCBzdGF0aWMgbG9uZyBsb25nIGludCBiaWdudW0gPSAtOTIyMzM3 MjAzNjg1NDc3NTgwN0xMOwp8IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHViaWdudW0g PSBCSUc2NDsKfCAKfCBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheQp8IHsKfCAgIGludCBkYXRhc2l6 ZTsKfCAgIGRvdWJsZSBkYXRhW107CnwgfTsKfCAKfCBzdHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBp bnQgbnVtYmVyOwp8ICAgY29uc3Qgd2NoYXJfdCAqbmFtZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8 IH07CnwgCnwgdHlwZWRlZiBjb25zdCBjaGFyICpjY3A7CnwgCnwgc3RhdGljIGlubGluZSBpbnQK fCB0ZXN0X3Jlc3RyaWN0IChjY3AgcmVzdHJpY3QgdGV4dCkKfCB7CnwgICAvLyBTZWUgaWYgQysr LXN0eWxlIGNvbW1lbnRzIHdvcmsuCnwgICAvLyBJdGVyYXRlIHRocm91Z2ggaXRlbXMgdmlhIHRo ZSByZXN0cmljdGVkIHBvaW50ZXIuCnwgICAvLyBBbHNvIGNoZWNrIGZvciBkZWNsYXJhdGlvbnMg aW4gZm9yIGxvb3BzLgp8ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7ICoodGV4dCtpKSAhPSAn XDAnOyArK2kpCnwgICAgIGNvbnRpbnVlOwp8ICAgcmV0dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNr IHZhcmFyZ3MgYW5kIHZhX2NvcHkuCnwgc3RhdGljIGJvb2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0 IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xpc3QgYXJnczsKfCAgIHZhX3N0YXJ0IChh cmdzLCBmb3JtYXQpOwp8ICAgdmFfbGlzdCBhcmdzX2NvcHk7CnwgICB2YV9jb3B5IChhcmdzX2Nv cHksIGFyZ3MpOwp8IAp8ICAgY29uc3QgY2hhciAqc3RyID0gIiI7CnwgICBpbnQgbnVtYmVyID0g MDsKfCAgIGZsb2F0IGZudW1iZXIgPSAwOwp8IAp8ICAgd2hpbGUgKCpmb3JtYXQpCnwgICAgIHsK fCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8IAljYXNlICdzJzogLy8gc3RyaW5nCnwg CSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNvbnN0IGNoYXIgKik7CnwgCSAgYnJlYWs7Cnwg CWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgaW50KTsK fCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZsb2F0CnwgCSAgZm51bWJlciA9IHZhX2FyZyAo YXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8 IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5KTsKfCAgIHZhX2VuZCAoYXJncyk7Cnwg CnwgICByZXR1cm4gKnN0ciAmJiBudW1iZXIgJiYgZm51bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7Cnwg CnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxp dGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5l d3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3Vj Y2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7 CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJy YXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxv YyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICog MTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBD aGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAg ICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAg IC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8 ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVt YmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2Fy bmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09 IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVy IC0gMV0gIT0gNTQzKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYxMDg6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtcWxhbmdsdmw9 ZXh0Yzk5IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKaTU4Ni1saW51eC1tdXNsLWNjOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy1xbGFuZ2x2bD1leHRjOTknCmNv bmZpZ3VyZTo2MTA4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRh cmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5j bHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFtcGxlcyBhcmUgdGFrZW4g ZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZwcmludGYgKHN0ZGVyciwg X19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMgKCNfX1ZBX0FSR1NfXykK fCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMgKCN0ZXN0KSA6IHByaW50 ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJhcmdzX21hY3JvcyAodm9p ZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7CnwgICBkZWJ1ZyAoIkZs YWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3dsaXN0IChUaGUgZmlyc3Qs IHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+eSwgInggaXMgJWQgYnV0 IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBsb25nIHR5cGVzLgp8ICNk ZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVmaW5lIEJJRzMyIDQyOTQ5 NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09IDQyOTQ5NjcyOTd1bGwg JiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5b3VyIHByZXByb2Nlc3Nv ciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNlCnwgICB5b3VyIHByZXBy b2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcgbG9uZyBpbnQgYmlnbnVt ID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGlu dCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVfYXJyYXkKfCB7CnwgICBp bnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwgc3RydWN0IG5hbWVkX2lu aXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5hbWU7CnwgICBkb3VibGUg YXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2NwOwp8IAp8IHN0YXRpYyBp bmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRleHQpCnwgewp8ICAgLy8g U2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGl0 ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxzbyBjaGVjayBmb3IgZGVj bGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyAqKHRl eHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJldHVybiAwOwp8IH0KfCAK fCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyBib29sCnwgdGVzdF92YXJh cmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9saXN0IGFyZ3M7CnwgICB2 YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19jb3B5Owp8ICAgdmFfY29w eSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0ciA9ICIiOwp8ICAgaW50 IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVtYmVyID0gMDsKfCAKfCAgIHdoaWxlICgqZm9ybWF0 KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgqZm9ybWF0KyspCnwgCXsKfCAJY2FzZSAncyc6IC8v IHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBjb25zdCBjaGFyICopOwp8IAkg IGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50CnwgCSAgbnVtYmVyID0gdmFfYXJnIChhcmdzX2Nv cHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2YnOiAvLyBmbG9hdAp8IAkgIGZudW1iZXIg PSB2YV9hcmcgKGFyZ3NfY29weSwgZG91YmxlKTsKfCAJICBicmVhazsKfCAJZGVmYXVsdDoKfCAJ ICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2YV9lbmQgKGFyZ3NfY29weSk7CnwgICB2YV9lbmQg KGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIgJiYgbnVtYmVyICYmIGZudW1iZXI7CnwgfQp8IGlu dAp8IG1haW4gKCkKfCB7CnwgCnwgICAvLyBDaGVjayBib29sLgp8ICAgX0Jvb2wgc3VjY2VzcyA9 IGZhbHNlOwp8IAp8ICAgLy8gQ2hlY2sgcmVzdHJpY3QuCnwgICBpZiAodGVzdF9yZXN0cmljdCAo IlN0cmluZyBsaXRlcmFsIikgPT0gMCkKfCAgICAgc3VjY2VzcyA9IHRydWU7CnwgICBjaGFyICpy ZXN0cmljdCBuZXd2YXIgPSAiQW5vdGhlciBzdHJpbmciOwp8IAp8ICAgLy8gQ2hlY2sgdmFyYXJn cy4KfCAgIHN1Y2Nlc3MgJj0gdGVzdF92YXJhcmdzICgicywgZCcgZiAuIiwgInN0cmluZyIsIDY1 LCAzNC4yMzQpOwp8ICAgdGVzdF92YXJhcmdzX21hY3JvcyAoKTsKfCAKfCAgIC8vIENoZWNrIGZs ZXhpYmxlIGFycmF5IG1lbWJlcnMuCnwgICBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSAqaWEgPQp8 ICAgICBtYWxsb2MgKHNpemVvZiAoc3RydWN0IGluY29tcGxldGVfYXJyYXkpICsgKHNpemVvZiAo ZG91YmxlKSAqIDEwKSk7CnwgICBpYS0+ZGF0YXNpemUgPSAxMDsKfCAgIGZvciAoaW50IGkgPSAw OyBpIDwgaWEtPmRhdGFzaXplOyArK2kpCnwgICAgIGlhLT5kYXRhW2ldID0gaSAqIDEuMjM0Owp8 IAp8ICAgLy8gQ2hlY2sgbmFtZWQgaW5pdGlhbGl6ZXJzLgp8ICAgc3RydWN0IG5hbWVkX2luaXQg bmkgPSB7CnwgICAgIC5udW1iZXIgPSAzNCwKfCAgICAgLm5hbWUgPSBMIlRlc3Qgd2lkZSBzdHJp bmciLAp8ICAgICAuYXZlcmFnZSA9IDU0My4zNDM0MywKfCAgIH07CnwgCnwgICBuaS5udW1iZXIg PSA1ODsKfCAKfCAgIGludCBkeW5hbWljX2FycmF5W25pLm51bWJlcl07CnwgICBkeW5hbWljX2Fy cmF5W25pLm51bWJlciAtIDFdID0gNTQzOwp8IAp8ICAgLy8gd29yayBhcm91bmQgdW51c2VkIHZh cmlhYmxlIHdhcm5pbmdzCnwgICByZXR1cm4gKCFzdWNjZXNzIHx8IGJpZ251bSA9PSAwTEwgfHwg dWJpZ251bSA9PSAwdUxMIHx8IG5ld3ZhclswXSA9PSAneCcKfCAJICB8fCBkeW5hbWljX2FycmF5 W25pLm51bWJlciAtIDFdICE9IDU0Myk7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZTo2MTI1OiByZXN1bHQ6IHVuc3VwcG9ydGVkCmNvbmZpZ3VyZTo2MTUwOiBjaGVja2luZyB3 aGV0aGVyIHRoZSBjb21waWxlciBpcyBjbGFuZwpjb25maWd1cmU6NjE3MTogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjYxNzE6ICQ/ID0gMApjb25maWd1cmU6NjE3OTogcmVzdWx0OiBubwpjb25m aWd1cmU6NjE4MzogY2hlY2tpbmcgZm9yIGNvbXBpbGVyIG9wdGlvbiBuZWVkZWQgd2hlbiBjaGVj a2luZyBmb3IgZGVjbGFyYXRpb25zCmNvbmZpZ3VyZTo2MjE0OiByZXN1bHQ6IG5vbmUKY29uZmln dXJlOjYyNzU6IGNoZWNraW5nIHdoZXRoZXIgL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIGFuZCBjYyB1bmRlcnN0YW5kIC1jIGFuZCAtbyB0b2dldGhlcgpjb25m aWd1cmU6NjMwNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNj IC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3VyZTo2MzEwOiAkPyA9IDAK Y29uZmlndXJlOjYzMTY6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVz bC1jYyAtYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0Mi5vID4mNQpjb25maWd1cmU6NjMyMDogJD8g PSAwCmNvbmZpZ3VyZTo2MzMxOiBjYyAtYyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjMzNTog JD8gPSAwCmNvbmZpZ3VyZTo2MzQzOiBjYyAtYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0Mi5vID4m NQpjb25maWd1cmU6NjM0NzogJD8gPSAwCmNvbmZpZ3VyZTo2MzUzOiBjYyAtYyBjb25mdGVzdC5j IC1vIGNvbmZ0ZXN0Mi5vID4mNQpjb25maWd1cmU6NjM1NzogJD8gPSAwCmNvbmZpZ3VyZTo2Mzc1 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjQxMjogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBw cmVwcm9jZXNzb3IKY29uZmlndXJlOjY0NDM6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtRSAgY29uZnRlc3QuYwpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMToKL3Vzci9pbmNsdWRlL2xpbWl0cy5oOjI2OjEwOiBmYXRhbCBlcnJvcjogYml0 cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI2IHwg I2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6 NjQ0MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZkZWYgX19TVERDX18KfCAjIGlu Y2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYK fCAJCSAgICAgU3ludGF4IGVycm9yCmNvbmZpZ3VyZTo2NDQzOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLUUgIGNvbmZ0ZXN0LmMKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIGNvbmZ0ZXN0LmM6MTE6Ci91c3IvaW5jbHVkZS9saW1pdHMuaDoyNjoxMDogZmF0YWwg ZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQogICAyNiB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4K Y29uZmlndXJlOjY0NDM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lmZGVmIF9fU1RE Q19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBlcnJvcgpjb25maWd1cmU6NjQ0MzogL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1FIC10cmFkaXRpb25hbC1jcHAg IGNvbmZ0ZXN0LmMKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9hc3NlcnQuaDoz NiwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MTQ6Ci91c3IvaW5jbHVkZS9mZWF0 dXJlcy5oOjQyNToyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICA0MjUgfCAjIGVuZGlmCiAgICAgIHwgIF5+fn5+fiAgICAgICAKY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjY0NDM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5j bHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBlcnJvcgpjb25maWd1cmU6 NjQ0MzogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1FIC10 cmFkaXRpb25hbC1jcHAgIGNvbmZ0ZXN0LmMKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5j bHVkZS9hc3NlcnQuaDozNiwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MTQ6Ci91 c3IvaW5jbHVkZS9mZWF0dXJlcy5oOjQyNToyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjUgfCAjIGVuZGlmCiAgICAgIHwgIF5+fn5+fiAg ICAgICAKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY0NDM6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4K fCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBl cnJvcgpjb25maWd1cmU6NjQ0MzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjY0NDM6 ICQ/ID0gMApjb25maWd1cmU6NjQ1NzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzox MDoxMDogZmF0YWwgZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgogICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NDU3OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1cmU6 NjQ4MjogcmVzdWx0OiAvbGliL2NwcApjb25maWd1cmU6NjUwMjogL2xpYi9jcHAgIGNvbmZ0ZXN0 LmMKY29uZmlndXJlOjY1MDI6ICQ/ID0gMApjb25maWd1cmU6NjUxNjogL2xpYi9jcHAgIGNvbmZ0 ZXN0LmMKY29uZnRlc3QuYzoxMDoxMDogZmF0YWwgZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgogICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3Vy ZTo2NTE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVf UERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlz dGVudC5oPgpjb25maWd1cmU6NjU0NTogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxv bmcgbGluZXMgYW5kIC1lCmNvbmZpZ3VyZTo2NjAzOiByZXN1bHQ6IC9iaW4vZ3JlcApjb25maWd1 cmU6NjYwODogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZTo2NjcwOiByZXN1bHQ6IC9iaW4v Z3JlcCAtRQpjb25maWd1cmU6NjY3NTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMK Y29uZmlndXJlOjY2OTU6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVz bC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25m dGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkbGliLmg6MjU6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjUgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 Njk1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAj aW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8ICNpbmNsdWRlIDxmbG9h dC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZTo2Nzc5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2NzkyOiBjaGVja2luZyBmb3Igc3lz L3R5cGVzLmgKY29uZmlndXJlOjY3OTI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJy b3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog ICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29u ZmlndXJlOjY3OTI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cnwg IyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMg IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllf SAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4K fCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CmNvbmZpZ3VyZTo2NzkyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2NzkyOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6 Njc5MjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6 Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRl ci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Njc5MjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJl bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg U1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5l ZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVt b3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNs dWRlIDxzeXMvc3RhdC5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5 MjogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgpjb25maWd1 cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5MjogY2hlY2tpbmcgZm9yIHN0cmluZy5o CmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVk ZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlm CnwgCnwgI2luY2x1ZGUgPHN0cmluZy5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25m aWd1cmU6Njc5MjogY2hlY2tpbmcgZm9yIG1lbW9yeS5oCmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRl L3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRl ci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NzkyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwg IyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9I CnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMK fCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAj IGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVS UyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVu ZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdT X0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBF U19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElO VF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERf SAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPG1lbW9yeS5o Pgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5MjogY2hlY2tpbmcgZm9y IHN0cmluZ3MuaApjb25maWd1cmU6Njc5MjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBl cnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpj b25maWd1cmU6Njc5MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzdHJpbmdzLmg+CmNvbmZpZ3VyZTo2NzkyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2NzkyOiBjaGVja2luZyBmb3IgaW50dHlwZXMuaApjb25maWd1cmU6 Njc5MjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6 Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRl ci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Njc5MjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJl bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg U1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5l ZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVt b3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNs dWRlIDxpbnR0eXBlcy5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5 MjogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN0ZGludC5oPgpjb25maWd1 cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5MjogY2hlY2tpbmcgZm9yIHVuaXN0ZC5o CmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVk ZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlm CnwgCnwgI2luY2x1ZGUgPHVuaXN0ZC5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25m aWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHdjaGFyLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUv c3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVy LXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gK fCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8 ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMg aWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJT ICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5k aWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1Nf SAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVT X0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5U X0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9I CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8d2NoYXIuaD4K Y29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBt aW5peC9jb25maWcuaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4v aTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxtaW5peC9jb25maWcuaD4KY29uZmlndXJlOjY4 MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBsaW51eC9mcy5oCmNv bmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRl c3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xp YmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5j bHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEw OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBF UiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRl ZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8 c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxz dGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlm ICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNs dWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwg CnwgI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo2ODEwOiBjaGVja2luZyBmb3IgbWFsbG9jLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUv c3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVy LXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gK fCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8 ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMg aWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJT ICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5k aWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1Nf SAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVT X0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5U X0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9I CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWFsbG9jLmg+ CmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Ig c3lzL3N5c3RlbWluZm8uaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9i aW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBm YXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAg fCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5h dGVkLgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk ZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lz L3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJ Ql9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF X01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8 c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxz dHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8 aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8 c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVu aXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzeXMvc3lzdGVtaW5mby5oPgpjb25maWd1 cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9zeXNp bmZvLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJv bSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6 IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAy NyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KY29uZmlndXJlOjY4MTA6IHJlc3Vs dDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBjb2ZmLmgKY29uZmlndXJlOjY4MTA6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNy L2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3Rh cnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xp YmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZ UEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZ U19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENf SEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1RE Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5o Pgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8 Y29mZi5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIHB0eS5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9p NTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3Rh dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5o Pgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gK fCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVN T1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJp bmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmlu Z3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRp bnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3Rk Lmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHB0eS5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0 OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9yZXNvdXJjZS5oCmNvbmZpZ3Vy ZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzox MDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVh ZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8 Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZF X1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVm Lmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZp bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2lu Y2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1 cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy91dHNuYW1lLmgKY29uZmlndXJlOjY4MTA6IC9ob21l L2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1 ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVh ZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3V0 c25hbWUuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNr aW5nIGZvciBwd2QuaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4v aTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxwd2QuaD4KY29uZmlndXJlOjY4MTA6IHJlc3Vs dDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciB1dG1wLmgKY29uZmlndXJlOjY4MTA6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNy L2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3Rh cnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xp YmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZ UEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZ U19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENf SEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1RE Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5o Pgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8 dXRtcC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIHV0aWwuaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4v aTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDx1dGlsLmg+CmNvbmZpZ3VyZTo2ODEwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc2FuaXRpemVyL2xzYW5faW50ZXJm YWNlLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJv bSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6 IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAy NyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAKfCAjaW5jbHVkZSA8c2FuaXRpemVyL2xzYW5faW50ZXJmYWNlLmg+CmNvbmZpZ3Vy ZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc3lzL3NvY2tl dC5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Y29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBi aXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcg fCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3Vy ZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVf UERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8 ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5j bHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gK fCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAj ICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2Vu ZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDog bm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6NjgxMDog cmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3Vy ZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc3lzL3BhcmFt LmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBj b25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8 ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJl OjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+Cnwg I2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNs dWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8 ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMg IGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5k aWYKfCAKfCAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3IgcHRocmVhZC5oCmNvbmZpZ3VyZTo2ODEwOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9p bmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHB0 aHJlYWQuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNr aW5nIGZvciBtYWxsb2MvbWFsbG9jLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoy NzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWFsbG9jL21hbGxvYy5oPgpj b25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5 cy91bi5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZy b20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9y OiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAg MjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZp Z3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhB VkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy91bi5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBu bwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIGRpcmVudC5oCmNvbmZpZ3VyZTo2ODEwOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9p bmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPGRp cmVudC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIGV4ZWNpbmZvLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDog ZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAg IHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KY29uZmlndXJlOjY4 MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBzdGRpb19leHQuaApj b25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNs LWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0 ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9s aWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2lu Y2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Njgx MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1Q RVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 IAp8ICNpbmNsdWRlIDxzdGRpb19leHQuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29u ZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBzeXMvdmZzLmgKY29uZmlndXJlOjY4MTA6IC9ob21l L2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1 ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVh ZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3Zm cy5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcg Zm9yIHN5cy9mc190eXBlcy5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3Nz L2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxl IGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6 IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAg ICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9mc190eXBlcy5oPgpjb25maWd1 cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIGdldG9wdC5o CmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVk ZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlm CnwgCnwgI2luY2x1ZGUgPGdldG9wdC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25m aWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9jZGVmcy5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9t ZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNs dWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhl YWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19I CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RB VF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURF UlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UK fCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlm CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVB REVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAj IGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU RElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklT VERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9j ZGVmcy5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIHN5cy90aW1lLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDog ZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAg IHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KY29uZmlndXJlOjY4 MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBpZWVlNzU0LmgKY29u ZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1j YyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVz dC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGli Yy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNs dWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAK fCAjaW5jbHVkZSA8aWVlZTc1NC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1 cmU6NjgxMDogY2hlY2tpbmcgZm9yIGxpbWl0cy5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhh bi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5j ID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0 ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1z dGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBF bWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPGxpbWl0cy5oPgpj b25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIGlu dHR5cGVzLmgKY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNr aW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6 NjgxMDogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc3lzL3NlbGVjdC5oCmNvbmZpZ3VyZTo2ODEwOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9p bmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5 cy9zZWxlY3QuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNo ZWNraW5nIGZvciBzeXMvcmFuZG9tLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoy NzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3JhbmRvbS5oPgpjb25m aWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9z dGF0LmgKY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4Mjk6IGNoZWNraW5n IHdoZXRoZXIgaXQgaXMgc2FmZSB0byBkZWZpbmUgX19FWFRFTlNJT05TX18KY29uZmlndXJlOjY4 NDc6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEyOgov dXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXIt c3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4NDc6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgIyAgICAgICAgIGRlZmluZSBfX0VYVEVOU0lPTlNfXyAx CnwgICAgICAgICAgICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19I CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RB VF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURF UlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UK fCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlm CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVB REVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAj IGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU RElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklT VERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsK fCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjY4NTQ6IHJlc3VsdDogbm8KY29u ZmlndXJlOjY4NTc6IGNoZWNraW5nIHdoZXRoZXIgX1hPUEVOX1NPVVJDRSBzaG91bGQgYmUgZGVm aW5lZApjb25maWd1cmU6NjkwMjogcmVzdWx0OiBubwpjb25maWd1cmU6Njk3MDogY2hlY2tpbmcg Zm9yIE1pbml4IEFtc3RlcmRhbSBjb21waWxlcgpjb25maWd1cmU6Njk5NDogcmVzdWx0OiBubwpj b25maWd1cmU6NzAxMTogY2hlY2tpbmcgZm9yIHg4Ni1nbnUtbGludXgtYXIKY29uZmlndXJlOjcw NDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjcwNTE6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6 NzA2NzogZm91bmQgL3Vzci9iaW4vYXIKY29uZmlndXJlOjcwNzg6IHJlc3VsdDogYXIKY29uZmln dXJlOjcwOTA6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldApjb25maWd1cmU6NzExMzogY2hlY2tpbmcgZm9yIHg4Ni1nbnUtbGludXgtcmFu bGliCmNvbmZpZ3VyZTo3MTQzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3MTUzOiBjaGVja2luZyBm b3IgcmFubGliCmNvbmZpZ3VyZTo3MTY5OiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKY29uZmlndXJl OjcxODA6IHJlc3VsdDogcmFubGliCmNvbmZpZ3VyZTo3MjQyOiBjaGVja2luZyBmb3Igc3BlY2lh bCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxlcwpjb25maWd1cmU6NzI4 NzogcmVzdWx0OiBubwpjb25maWd1cmU6NzI5MzogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9C SVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29uZmlndXJlOjczMTg6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2k1ODYt bGludXgtbXVzbC9pbmNsdWRlL3N5cy90eXBlcy5oOjcsCiAgICAgICAgICAgICAgICAgZnJvbSBj b25mdGVzdC5jOjI1OgovdXNyL2luY2x1ZGUvZmVhdHVyZXMuaDo0MjQ6MTI6IGZhdGFsIGVycm9y OiBzeXMvY2RlZnMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogIDQyNCB8ICMgIGluY2x1 ZGUgPHN5cy9jZGVmcy5oPgogICAgICB8ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgpjb21waWxh dGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NzMxODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg IC8qIENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8 ICAgICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4 NTQ3NzU4MDcsCnwgICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMg QyBjb21waWxlcnMKfCAgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcu ICAqLwp8ICNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpIC0gMSAr ICgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpKQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9P RkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxCnwgICAgICAgICAgICAgICAgICAgICAgICAmJiBMQVJH RV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKfCAgICAgICAgICAgICAgICAgICAgICAgPyAxIDog LTFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZTo3MzQyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9pNTg2LWxpbnV4LW11c2wvaW5jbHVkZS9zeXMvdHlwZXMuaDo3LAogICAg ICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzoyNjoKL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6 NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjczNDI6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2RlZmlu ZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgLyogQ2hl Y2sgdGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCnwgICAgIFdl IGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgw NywKfCAgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBp bGVycwp8ICAgICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCnwg I2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCAzMSA8PCAzMSkgLSAxICsgKChvZmZf dCkgMSA8PCAzMSA8PCAzMSkpCnwgICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUg MjE0NzQ4MzYyOSA9PSA3MjEKfCAgICAgICAgICAgICAgICAgICAgICAgICYmIExBUkdFX09GRl9U ICUgMjE0NzQ4MzY0NyA9PSAxKQp8ICAgICAgICAgICAgICAgICAgICAgICA/IDEgOiAtMV07Cnwg aW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjcz NTA6IHJlc3VsdDogdW5rbm93bgpjb25maWd1cmU6NzM2MjogY2hlY2tpbmcgZm9yIF9MQVJHRV9G SUxFUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3VyZTo3Mzg3OiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pNTg2 LWxpbnV4LW11c2wvaW5jbHVkZS9zeXMvdHlwZXMuaDo3LAogICAgICAgICAgICAgICAgIGZyb20g Y29uZnRlc3QuYzoyNToKL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJv cjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNs dWRlIDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGls YXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjczODc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVt YWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0Bn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICAvKiBDaGVjayB0aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4K fCAgICAgV2UgY2FuJ3Qgc2ltcGx5IGRlZmluZSBMQVJHRV9PRkZfVCB0byBiZSA5MjIzMzcyMDM2 ODU0Nzc1ODA3LAp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFz IEMgY29tcGlsZXJzCnwgICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1ODA3 LiAgKi8KfCAjZGVmaW5lIExBUkdFX09GRl9UICgoKG9mZl90KSAxIDw8IDMxIDw8IDMxKSAtIDEg KyAoKG9mZl90KSAxIDw8IDMxIDw8IDMxKSkKfCAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0Vf T0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQp8ICAgICAgICAgICAgICAgICAgICAgICAgJiYgTEFS R0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09IDEpCnwgICAgICAgICAgICAgICAgICAgICAgID8gMSA6 IC0xXTsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6NzQxMTogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNj IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvaTU4Ni1saW51eC1tdXNsL2luY2x1ZGUvc3lzL3R5cGVzLmg6NywKICAg ICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MjY6Ci91c3IvaW5jbHVkZS9mZWF0dXJlcy5o OjQyNDoxMjogZmF0YWwgZXJyb3I6IHN5cy9jZGVmcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgNDI0IHwgIyAgaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiAgICAgIHwgICAgICAgICAgICBe fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo3NDExOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNkZWZp bmUgX0xBUkdFX0ZJTEVTIDEKfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIC8qIENoZWNrIHRo YXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8ICAgICBXZSBjYW4n dCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCnwg ICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMK fCAgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwp8ICNkZWZp bmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpIC0gMSArICgob2ZmX3QpIDEg PDwgMzEgPDwgMzEpKQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0 ODM2MjkgPT0gNzIxCnwgICAgICAgICAgICAgICAgICAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIx NDc0ODM2NDcgPT0gMSkKfCAgICAgICAgICAgICAgICAgICAgICAgPyAxIDogLTFdOwp8IGludAp8 IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3NDE5OiBy ZXN1bHQ6IHVua25vd24KY29uZmlndXJlOjc2MTA6IGNoZWNraW5nIHdoZXRoZXIgL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIGFjY2VwdHMgLWczIC1PMgpjb25m aWd1cmU6NzYyNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNj IC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNy L2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo3NjI2OiAkPyA9IDAKY29uZmln dXJlOjc2MzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3NzIzOiAvbGliL2NwcCAgY29uZnRlc3Qu Ywpjb25maWd1cmU6NzcyMzogJD8gPSAwCmNvbmZpZ3VyZTo3NzQ1OiBjaGVja2luZyB3aGV0aGVy IHRoZSBjb21waWxlciBpcyBjbGFuZwpjb25maWd1cmU6Nzc2NTogL2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZ0ZXN0LmM6Mjc6MTI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAn X19hdHRyaWJ1dGVfXycgYmVmb3JlIHN0cmluZyBjb25zdGFudAogICAyNyB8ICAgICAgZXJyb3Ig Im5vdCBjbGFuZyI7CiAgICAgIHwgICAgICAgICAgICBefn5+fn5+fn5+fgpjb25maWd1cmU6Nzc2 NTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1Q RVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VU X0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAKfCAJICAjaWZuZGVmIF9fY2xhbmdfXwp8IAkgICAgZXJyb3IgIm5vdCBjbGFuZyI7CnwgCSAg I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjc3NzI6IHJlc3VsdDogbm8KY29uZmlndXJlOjc3ODY6IGNoZWNraW5nIHdoZXRo ZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZXJyb3IgLVd1bmtub3duLXdhcm5pbmctb3B0aW9uCmNv bmZpZ3VyZTo3ODA1OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdlcnJvciAtV3Vua25vd24td2FybmluZy1vcHRpb24g IC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3Qu YyAgPiY1Cmk1ODYtbGludXgtbXVzbC1jYzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICctV3Vua25vd24td2FybmluZy1vcHRpb24nCmNvbmZpZ3VyZTo3ODA1OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGlu dAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3ODE1 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDY4OiBjaGVja2luZyB3aGV0aGVyIC1Xbm8tbWlzc2lu Zy1maWVsZC1pbml0aWFsaXplcnMgaXMgc3VwcG9ydGVkCmNvbmZpZ3VyZTo4MDg2OiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAtV2V4dHJh IC1XZXJyb3IgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjgwODY6ICQ/ID0gMApjb25maWd1cmU6ODA5NTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgwOTk6IGNoZWNraW5nIHdoZXRoZXIgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVy cyBpcyBuZWVkZWQKY29uZmlndXJlOjgxMjM6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yIC1XZXh0cmEgLVdlcnJvciAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjgxMjM6ICQ/ID0gMApjb25maWd1cmU6ODEzMjogcmVzdWx0OiBubwpjb25m aWd1cmU6ODEzNjogY2hlY2tpbmcgd2hldGhlciAtV3VuaW5pdGlhbGl6ZWQgaXMgc3VwcG9ydGVk CmNvbmZpZ3VyZTo4MTU0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWczIC1PMiAtV2Vycm9yIC1XdW5pbml0aWFsaXplZCAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjgxNTQ6ICQ/ID0gMApjb25maWd1cmU6ODE2MzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1mbm8tY29tbW9u CmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLWZuby1jb21tb24gIC1ML2hvbWUvZGFoYW4vbXVz bF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4 MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBj aGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2FsbApjb25maWd1cmU6ODMyMjog L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0 IC1nMyAtTzIgIC1XYWxsICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4 MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBp bGVyIGhhbmRsZXMgLVdhcml0aC1jb252ZXJzaW9uCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhh bi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAg LVdhcml0aC1jb252ZXJzaW9uICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9s aWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQppNTg2LWxpbnV4LW11c2wtY2M6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLVdhcml0aC1jb252ZXJzaW9uJzsgZGlkIHlv dSBtZWFuICctV2ludC1jb252ZXJzaW9uJz8KY29uZmlndXJlOjgzMjI6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdu dS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjgzMzM6IHJlc3VsdDog bm8KY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1X ZGF0ZS10aW1lCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdkYXRlLXRpbWUgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2Rpc2FibGVkLW9w dGltaXphdGlvbgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XZGlzYWJsZWQtb3B0aW1pemF0 aW9uICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0 ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMg LVdkb3VibGUtcHJvbW90aW9uCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3Nz L2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdkb3VibGUtcHJv bW90aW9uICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNv bmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRs ZXMgLVdkdXBsaWNhdGVkLWNvbmQKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jv c3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV2R1cGxpY2F0 ZWQtY29uZCAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBj b25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5k bGVzIC1XZXh0cmEKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV2V4dHJhICAtTC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25m aWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmb3JtYXQtc2lnbmVk bmVzcwpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XZm9ybWF0LXNpZ25lZG5lc3MgIC1ML2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1 CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2luaXQtc2Vs Zgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XaW5pdC1zZWxmICAtTC9ob21lL2RhaGFuL211 c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6 ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzog Y2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdpbnZhbGlkLXBjaApjb25maWd1 cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1v IGNvbmZ0ZXN0IC1nMyAtTzIgIC1XaW52YWxpZC1wY2ggIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAk PyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2xvZ2ljYWwtb3AKY29uZmlndXJlOjgzMjI6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVz dCAtZzMgLU8yICAtV2xvZ2ljYWwtb3AgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwv dXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29u ZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zCmNvbmZpZ3VyZTo4MzIy OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRl c3QgLWczIC1PMiAgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAgLUwvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6 ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNr aW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMKY29u ZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1j YyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV21pc3NpbmctaW5jbHVkZS1kaXJzICAtTC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25m aWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5nLXByb3Rv dHlwZXMKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV21pc3NpbmctcHJvdG90eXBlcyAgLUwv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICA+ JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbmVzdGVk LWV4dGVybnMKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV25lc3RlZC1leHRlcm5zICAtTC9o b21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdudWxsLWRl cmVmZXJlbmNlCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdudWxsLWRlcmVmZXJlbmNlICAt TC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMg ID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpj b25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvbGQt c3R5bGUtZGVmaW5pdGlvbgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9i aW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1Xb2xkLXN0eWxlLWRl ZmluaXRpb24gIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIg Y29uZnRlc3QuYyAgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3Qu YzoyNzoxOiB3YXJuaW5nOiBvbGQtc3R5bGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBbLVdvbGQtc3R5 bGUtZGVmaW5pdGlvbl0KICAgMjcgfCBtYWluICgpCiAgICAgIHwgXn5+fgpjb25maWd1cmU6ODMy MjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hl Y2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvcGVubXAtc2ltZApjb25maWd1cmU6 ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNv bmZ0ZXN0IC1nMyAtTzIgIC1Xb3Blbm1wLXNpbWQgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9s aWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9 IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3 aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3BhY2tlZApjb25maWd1cmU6ODMyMjogL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAt TzIgIC1XcGFja2VkICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwv bGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMz OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVdwb2ludGVyLWFyaXRoCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdwb2lu dGVyLWFyaXRoICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGli IGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVdzdHJpY3QtcHJvdG90eXBlcwpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVz bF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1Xc3Ry aWN0LXByb3RvdHlwZXMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAt TC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZ0ZXN0LmM6Mjc6MTogd2FybmluZzogZnVuY3Rpb24g ZGVjbGFyYXRpb24gaXNuJ3QgYSBwcm90b3R5cGUgWy1Xc3RyaWN0LXByb3RvdHlwZXNdCiAgIDI3 IHwgbWFpbiAoKQogICAgICB8IF5+fn4KY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6 ODMzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21w aWxlciBoYW5kbGVzIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9Zm9ybWF0CmNvbmZpZ3VyZTo4MzIyOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3Qg LWczIC1PMiAgLVdzdWdnZXN0LWF0dHJpYnV0ZT1mb3JtYXQgIC1ML2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIy OiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVj a2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0 dXJuCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdzdWdnZXN0LWF0dHJpYnV0ZT1ub3JldHVy biAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVz dC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1X c3VnZ2VzdC1maW5hbC1tZXRob2RzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdzdWdnZXN0 LWZpbmFsLW1ldGhvZHMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAt TC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgz MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV3N1Z2dlc3QtZmluYWwtdHlwZXMKY29uZmlndXJlOjgzMjI6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8y ICAtV3N1Z2dlc3QtZmluYWwtdHlwZXMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwv dXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29u ZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3RyYW1wb2xpbmVzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1P MiAgLVd0cmFtcG9saW5lcyAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGli IC1ML2xpYiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6 ODMzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21w aWxlciBoYW5kbGVzIC1XdW5pbml0aWFsaXplZApjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1X dW5pbml0aWFsaXplZCAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1M L2xpYiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMz MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxl ciBoYW5kbGVzIC1XdW5rbm93bi1wcmFnbWFzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9t dXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVd1 bmtub3duLXByYWdtYXMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAt TC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgz MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV3VudXNlZC1tYWNyb3MKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211 c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV3Vu dXNlZC1tYWNyb3MgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9s aWIgY29uZnRlc3QuYyAgPiY1CmNvbmZ0ZXN0LmM6MjA6IHdhcm5pbmc6IG1hY3JvICJfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18iIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3Nd CiAgIDIwIHwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQogICAg ICB8IApjb25mdGVzdC5jOjIzOiB3YXJuaW5nOiBtYWNybyAiX1RBTkRFTV9TT1VSQ0UiIGlzIG5v dCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDIzIHwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CiAgICAgIHwgCmNvbmZ0ZXN0LmM6MTg6IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxOCB8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0 LmM6NTogd2FybmluZzogbWFjcm8gIlBBQ0tBR0VfU1RSSU5HIiBpcyBub3QgdXNlZCBbLVd1bnVz ZWQtbWFjcm9zXQogICAgNSB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgogICAgICB8IApjb25mdGVzdC5jOjM6IHdhcm5pbmc6IG1hY3JvICJQQUNLQUdFX1RBUk5B TUUiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgICAzIHwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgogICAgICB8IApjb25mdGVzdC5jOjI6IHdhcm5pbmc6IG1hY3JvICJQ QUNLQUdFX05BTUUiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgICAyIHwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKICAgICAgfCAKY29uZnRlc3QuYzoxNDogd2Fybmlu ZzogbWFjcm8gIl9PUEVOQlNEX1NPVVJDRSIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10K ICAgMTQgfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6Njog d2FybmluZzogbWFjcm8gIlBBQ0tBR0VfQlVHUkVQT1JUIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQt bWFjcm9zXQogICAgNiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NA Z251Lm9yZyIKICAgICAgfCAKY29uZnRlc3QuYzoxNTogd2FybmluZzogbWFjcm8gIl9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTUgfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MjE6 IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FOVF9MSUJfRVhUMl9fIiBpcyBub3QgdXNlZCBbLVd1 bnVzZWQtbWFjcm9zXQogICAyMSB8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCiAg ICAgIHwgCmNvbmZ0ZXN0LmM6MTA6IHdhcm5pbmc6IG1hY3JvICJfREFSV0lOX0NfU09VUkNFIiBp cyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxMCB8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MTY6IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10K ICAgMTYgfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKICAg ICAgfCAKY29uZnRlc3QuYzoxOTogd2FybmluZzogbWFjcm8gIl9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTkgfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0 LmM6NDogd2FybmluZzogbWFjcm8gIlBBQ0tBR0VfVkVSU0lPTiIgaXMgbm90IHVzZWQgWy1XdW51 c2VkLW1hY3Jvc10KICAgIDQgfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKICAg ICAgfCAKY29uZnRlc3QuYzoyMjogd2FybmluZzogbWFjcm8gIl9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAyMiB8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQogICAgICB8IApjb25mdGVzdC5jOjE3OiB3 YXJuaW5nOiBtYWNybyAiX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyIgaXMgbm90IHVz ZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTcgfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQogICAgICB8IApjb25mdGVzdC5jOjEyOiB3YXJuaW5nOiBtYWNybyAiX0hQ VVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAg IDEyIHwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCiAgICAgIHwgCmNvbmZ0 ZXN0LmM6ODogd2FybmluZzogbWFjcm8gIkhBVkVfUERVTVBFUiIgaXMgbm90IHVzZWQgWy1XdW51 c2VkLW1hY3Jvc10KICAgIDggfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCiAgICAgIHwgCmNvbmZ0 ZXN0LmM6MTM6IHdhcm5pbmc6IG1hY3JvICJfTkVUQlNEX1NPVVJDRSIgaXMgbm90IHVzZWQgWy1X dW51c2VkLW1hY3Jvc10KICAgMTMgfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKICAgICAgfCAK Y29uZnRlc3QuYzo3OiB3YXJuaW5nOiBtYWNybyAiUEFDS0FHRV9VUkwiIGlzIG5vdCB1c2VkIFst V3VudXNlZC1tYWNyb3NdCiAgICA3IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCiAgICAgIHwgCmNvbmZ0ZXN0LmM6OTogd2FybmluZzog bWFjcm8gIl9BTExfU09VUkNFIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAgOSB8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQogICAgICB8IApjb25mdGVzdC5jOjExOiB3YXJuaW5nOiBt YWNybyAiX0dOVV9TT1VSQ0UiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDExIHwg I2RlZmluZSBfR05VX1NPVVJDRSAxCiAgICAgIHwgCmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29u ZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3ZhcmlhZGljLW1hY3Jvcwpjb25maWd1cmU6ODMyMjogL2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1n MyAtTzIgIC1XdmFyaWFkaWMtbWFjcm9zICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1M L3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNv bmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhl ciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlCmNvbmZp Z3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2Mg LW8gY29uZnRlc3QgLWczIC1PMiAgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlICAtTC9o b21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd3cml0ZS1z dHJpbmdzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVd3cml0ZS1zdHJpbmdzICAtTC9ob21l L2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdhcnJheS1ib3Vu ZHM9Mgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XYXJyYXktYm91bmRzPTIgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2F0dHJpYnV0ZS1h bGlhcz0yCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdhdHRyaWJ1dGUtYWxpYXM9MiAgLUwv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICA+ JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZm9ybWF0 PTIKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV2Zvcm1hdD0yICAtTC9ob21lL2RhaGFuL211 c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6 ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzog Y2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmb3JtYXQtdHJ1bmNhdGlvbj0y CmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdmb3JtYXQtdHJ1bmNhdGlvbj0yICAtTC9ob21l L2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdpbXBsaWNpdC1m YWxsdGhyb3VnaD01CmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9p NTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdpbXBsaWNpdC1mYWxsdGhy b3VnaD01ICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNv bmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRs ZXMgLVdzaGlmdC1vdmVyZmxvdz0yCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdzaGlmdC1v dmVyZmxvdz0yICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGli IGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVd2bGEtbGFyZ2VyLXRoYW49NDAzMQpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1X dmxhLWxhcmdlci10aGFuPTQwMzEgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNy L2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmln dXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzQzOiBjaGVja2luZyB3aGV0aGVyIEMg Y29tcGlsZXIgaGFuZGxlcyAtV3JlZHVuZGFudC1kZWNscwpjb25maWd1cmU6ODM2MjogL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAt TzIgIC1XcmVkdW5kYW50LWRlY2xzICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vz ci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODM2MjogJD8gPSAwCmNvbmZp Z3VyZTo4MzcyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODM4MTogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwpjb25maWd1 cmU6ODQwMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1v IGNvbmZ0ZXN0IC1nMyAtTzIgIC1XbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4NDAwOiAkPyA9IDAKY29uZmlndXJlOjg0MTA6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4NDE5OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLW92ZXJyaWRl LWluaXQKY29uZmlndXJlOjg0Mzg6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV292ZXJyaWRlLWluaXQgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4NDM4OiAkPyA9IDAKY29uZmlndXJlOjg0NDg6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4NDU3OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXNpZ24tY29t cGFyZQpjb25maWd1cmU6ODQ3NjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1Xc2lnbi1jb21wYXJlICAtTC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25m aWd1cmU6ODQ3NjogJD8gPSAwCmNvbmZpZ3VyZTo4NDg2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODQ5NTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby10eXBlLWxpbWl0 cwpjb25maWd1cmU6ODUxNDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XdHlwZS1saW1pdHMgIC1ML2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3Vy ZTo4NTE0OiAkPyA9IDAKY29uZmlndXJlOjg1MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4NTMz OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXVudXNlZC1wYXJhbWV0 ZXIKY29uZmlndXJlOjg1NTI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV3VudXNlZC1wYXJhbWV0ZXIgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4NTUyOiAkPyA9IDAKY29uZmlndXJlOjg1NjI6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4NTcxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLWZvcm1hdC1u b25saXRlcmFsCmNvbmZpZ3VyZTo4NTkwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdmb3JtYXQtbm9ubGl0ZXJhbCAg LUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5j ICA+JjUKY2MxOiB3YXJuaW5nOiAnLVdmb3JtYXQtbm9ubGl0ZXJhbCcgaWdub3JlZCB3aXRob3V0 ICctV2Zvcm1hdCcgWy1XZm9ybWF0LW5vbmxpdGVyYWxdCmNvbmZpZ3VyZTo4NTkwOiAkPyA9IDAK Y29uZmlndXJlOjg2MDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MDIyOiBjaGVja2luZyBmb3Ig YSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZTo5MDkwOiByZXN1bHQ6IC91c3IvYmlu L2luc3RhbGwgLWMKY29uZmlndXJlOjkxMDQ6IGNoZWNraW5nIGNvbW1hbmQgdG8gc3ltbGluayBm aWxlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKY29uZmlndXJlOjkxMjU6IHJlc3VsdDogbG4gLXMK Y29uZmlndXJlOjkxMzk6IGNoZWNraW5nIGZvciBpbnN0YWxsLWluZm8KY29uZmlndXJlOjkxNTc6 IGZvdW5kIC91c3IvYmluL2luc3RhbGwtaW5mbwpjb25maWd1cmU6OTE3MDogcmVzdWx0OiAvdXNy L2Jpbi9pbnN0YWxsLWluZm8KY29uZmlndXJlOjkxODA6IGNoZWNraW5nIGZvciBnemlwCmNvbmZp Z3VyZTo5MTk4OiBmb3VuZCAvYmluL2d6aXAKY29uZmlndXJlOjkyMTA6IHJlc3VsdDogL2Jpbi9n emlwCmNvbmZpZ3VyZTo5MjI2OiBjaGVja2luZyBmb3IgJ2ZpbmQnIGFyZ3MgdG8gZGVsZXRlIGEg ZmlsZQpjb25maWd1cmU6OTIzNzogcmVzdWx0OiAtZGVsZXRlCmNvbmZpZ3VyZTo5MzU3OiBjaGVj a2luZyBmb3IgYnJldwpjb25maWd1cmU6OTM4NzogcmVzdWx0OiBubwpjb25maWd1cmU6OTQ5NTog Y2hlY2tpbmcgZm9yIC16bm9jb21icmVsb2MKY29uZmlndXJlOjk1MjY6IHJlc3VsdDogbm90IG5l ZWRlZApjb25maWd1cmU6OTUzNTogY2hlY2tpbmcgd2hldGhlciBhZGRyZXNzZXMgYXJlIHNhbml0 aXplZApjb25maWd1cmU6OTU1ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1jIC1nMyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MzE6MTE6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVm b3JlIHN0cmluZyBjb25zdGFudAogICAzMSB8ICAgICBlcnJvciAiQWRkcmVzc2VzIGFyZSBub3Qg c2FuaXRpemVkLiI7CiAgICAgIHwgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpjb25maWd1cmU6OTU1ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBV WF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgR0NDX0xJTlQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9faGFzX2Zl YXR1cmUKfCAJICAjZGVmaW5lIF9faGFzX2ZlYXR1cmUoZikgMAp8IAkgICNlbmRpZgp8IAkgICNp ZiBkZWZpbmVkIF9fU0FOSVRJWkVfQUREUkVTU19fIHx8IF9faGFzX2ZlYXR1cmUgKGFkZHJlc3Nf c2FuaXRpemVyKQp8IAkgICNlbHNlCnwgCSAgIGVycm9yICJBZGRyZXNzZXMgYXJlIG5vdCBzYW5p dGl6ZWQuIjsKfCAJICAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6OTU2NTogcmVzdWx0OiBubwpjb25maWd1cmU6OTcyOTog Y2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzcXJ0CmNvbmZpZ3VyZTo5NzYwOiAvaG9t ZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWcz IC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNv bmZ0ZXN0LmMgID4mNSAKY29uZnRlc3QuYzozMzo2OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBl cyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3NxcnQnOyBleHBlY3RlZCAnZG91YmxlKGRvdWJsZSkn IFstV2J1aWx0aW4tZGVjbGFyYXRpb24tbWlzbWF0Y2hdCiAgIDMzIHwgY2hhciBzcXJ0ICgpOwog ICAgICB8ICAgICAgXn5+fgpjb25mdGVzdC5jOjE6MTogbm90ZTogJ3NxcnQnIGlzIGRlY2xhcmVk IGluIGhlYWRlciAnPG1hdGguaD4nCiAgICAxIHwgLyogY29uZmRlZnMuaCAqLwpjb25maWd1cmU6 OTc2MDogJD8gPSAwCmNvbmZpZ3VyZTo5Nzc3OiByZXN1bHQ6IG5vbmUgcmVxdWlyZWQKY29uZmln dXJlOjk4NDY6IGNoZWNraW5nIGZvciB4ODYtZ251LWxpbnV4LXBrZy1jb25maWcKY29uZmlndXJl Ojk4Nzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjk4ODk6IGNoZWNraW5nIGZvciBwa2ctY29uZmln CmNvbmZpZ3VyZTo5OTA3OiBmb3VuZCAvdXNyL2Jpbi9wa2ctY29uZmlnCmNvbmZpZ3VyZTo5OTE5 OiByZXN1bHQ6IC91c3IvYmluL3BrZy1jb25maWcKY29uZmlndXJlOjk5NDQ6IGNoZWNraW5nIHBr Zy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAwLjkuMApjb25maWd1cmU6OTk0NzogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjk5NjQ6IGNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oCmNv bmZpZ3VyZTo5OTY0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjM0OjEwOiBmYXRhbCBl cnJvcjogbWFjaGluZS9zb3VuZGNhcmQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAz NCB8ICNpbmNsdWRlIDxtYWNoaW5lL3NvdW5kY2FyZC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6OTk2NDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQ SSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18g MQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZp bmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg ICAgICNpZmRlZiBfX01JTkdXMzJfXwp8ICAgICAjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4K fCAgICAgI2luY2x1ZGUgPHdpbmRvd3MuaD4KfCAgICAgI2VuZGlmCnwgCnwgCnwgI2luY2x1ZGUg PG1hY2hpbmUvc291bmRjYXJkLmg+CmNvbmZpZ3VyZTo5OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo5OTY0OiBjaGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oCmNvbmZpZ3VyZTo5OTY0OiAvaG9t ZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci9pbmNsdWRlL2VuZGlhbi5o OjIxLAogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL2xpbnV4L3NvdW5kY2FyZC5o OjQzLAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pNTg2LWxp bnV4LW11c2wvaW5jbHVkZS9iaXRzL3NvdW5kY2FyZC5oOjEsCiAgICAgICAgICAgICAgICAgZnJv bSAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2k1ODYtbGludXgtbXVzbC9pbmNsdWRlL3N5cy9zb3Vu ZGNhcmQuaDoxLAogICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzozNDoKL3Vzci9pbmNs dWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAgICAg fCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjk5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IAp8ICAgICAjaWZkZWYgX19NSU5HVzMyX18KfCAgICAgI2RlZmluZSBXSU4zMl9MRUFO X0FORF9NRUFOCnwgICAgICNpbmNsdWRlIDx3aW5kb3dzLmg+CnwgICAgICNlbmRpZgp8IAp8IAp8 ICNpbmNsdWRlIDxzeXMvc291bmRjYXJkLmg+CmNvbmZpZ3VyZTo5OTY0OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo5OTY0OiBjaGVja2luZyBmb3Igc291bmRjYXJkLmgKY29uZmlndXJlOjk5NjQ6IC9o b21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yICAg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MzQ6MTA6IGZhdGFsIGVycm9yOiBzb3VuZGNhcmQu aDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAzNCB8ICNpbmNsdWRlIDxzb3VuZGNhcmQu aD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo5OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FM VF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAKfCAgICAgI2lmZGVmIF9fTUlOR1czMl9fCnwgICAgICNkZWZpbmUgV0lO MzJfTEVBTl9BTkRfTUVBTgp8ICAgICAjaW5jbHVkZSA8d2luZG93cy5oPgp8ICAgICAjZW5kaWYK fCAKfCAKfCAjaW5jbHVkZSA8c291bmRjYXJkLmg+CmNvbmZpZ3VyZTo5OTY0OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo5OTY0OiBjaGVja2luZyBmb3IgbW1zeXN0ZW0uaApjb25maWd1cmU6OTk2NDog L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIg ICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzozNDoxMDogZmF0YWwgZXJyb3I6IG1tc3lzdGVt Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMzQgfCAjaW5jbHVkZSA8bW1zeXN0ZW0u aD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4K Y29uZmlndXJlOjk5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8ICAgICAjaWZkZWYgX19NSU5HVzMyX18KfCAgICAgI2RlZmluZSBXSU4z Ml9MRUFOX0FORF9NRUFOCnwgICAgICNpbmNsdWRlIDx3aW5kb3dzLmg+CnwgICAgICNlbmRpZgp8 IAp8IAp8ICNpbmNsdWRlIDxtbXN5c3RlbS5oPgpjb25maWd1cmU6OTk2NDogcmVzdWx0OiBubwpj b25maWd1cmU6OTk4NTogY2hlY2tpbmcgZm9yIF9vc3NfaW9jdGwgaW4gLWxvc3NhdWRpbwpjb25m aWd1cmU6MTAwMTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1j YyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwv dXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAtbG9zc2F1ZGlvICAgPiY1IAovaG9tZS9kYWhhbi9t dXNsX2Nyb3NzL2Jpbi8uLi9saWIvZ2NjL2k1ODYtbGludXgtbXVzbC85LjIuMC8uLi8uLi8uLi8u Li9pNTg2LWxpbnV4LW11c2wvYmluL2xkOiBjYW5ub3QgZmluZCAtbG9zc2F1ZGlvCmNvbGxlY3Qy OiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTAwMTA6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJnbnUvbGludXgiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8 IGNoYXIgX29zc19pb2N0bCAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBfb3NzX2lv Y3RsICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTAwMTk6IHJlc3VsdDog bm8KY29uZmlndXJlOjEwMDM3OiBjaGVja2luZyBmb3IgYWxzYSA+PSAxLjAuMApjb25maWd1cmU6 MTAwNDQ6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkQUxTQV9NT0RVTEVT IgpQYWNrYWdlIGFsc2Egd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0 aC4KUGVyaGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGFsc2Eu cGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKTm8gcGFja2Fn ZSAnYWxzYScgZm91bmQKY29uZmlndXJlOjEwMDQ3OiAkPyA9IDEKY29uZmlndXJlOjEwMDYxOiAk UEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiJEFMU0FfTU9EVUxFUyIKUGFja2Fn ZSBhbHNhIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhh cHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBhbHNhLnBjJwp0byB0 aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2Fsc2En IGZvdW5kCmNvbmZpZ3VyZToxMDA2NDogJD8gPSAxCmNvbmZpZ3VyZToxMDA3ODogcmVzdWx0OiBu bwpObyBwYWNrYWdlICdhbHNhJyBmb3VuZApjb25maWd1cmU6MTAxNTc6IGNoZWNraW5nIGZvciBB RERSX05PX1JBTkRPTUlaRQpjb25maWd1cmU6MTAxNzQ6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp Z3VyZToxMDE3NDogJD8gPSAwCmNvbmZpZ3VyZToxMDE4MTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEwMjU2OiAvbGliL2NwcCAgICBjb25mdGVzdC5jCmNvbmZpZ3VyZToxMDI1NjogJD8gPSAwCmNv bmZpZ3VyZToxMDI2MjogY2hlY2tpbmcgZm9yIHN5cy93YWl0LmggdGhhdCBpcyBQT1NJWC4xIGNv bXBhdGlibGUKY29uZmlndXJlOjEwMjg4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pNTg2LWxpbnV4LW11c2wvaW5jbHVkZS9z eXMvdHlwZXMuaDo3LAogICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9p bmNsdWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAg ICAgfCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29u ZmlndXJlOjEwMjg4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9Q RVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVk ZSA8c3lzL3dhaXQuaD4KfCAjaWZuZGVmIFdFWElUU1RBVFVTCnwgIyBkZWZpbmUgV0VYSVRTVEFU VVMoc3RhdF92YWwpICgodW5zaWduZWQgaW50KSAoc3RhdF92YWwpID4+IDgpCnwgI2VuZGlmCnwg I2lmbmRlZiBXSUZFWElURUQKfCAjIGRlZmluZSBXSUZFWElURUQoc3RhdF92YWwpICgoKHN0YXRf dmFsKSAmIDI1NSkgPT0gMCkKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICAgaW50 IHM7CnwgICB3YWl0ICgmcyk7CnwgICBzID0gV0lGRVhJVEVEIChzKSA/IFdFWElUU1RBVFVTIChz KSA6IDE7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDI5NTogcmVzdWx0OiBu bwpjb25maWd1cmU6MTAzMDk6IGNoZWNraW5nIGZvciBuZXQvaWYuaApjb25maWd1cmU6MTAzMDk6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8y ICAgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjI5Ogov dXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXIt c3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMzA5OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAj ZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERSX05PX1JB TkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNs dWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBp bmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVm IEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBk ZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwg IyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAj IGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwg IyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwg IyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMg aW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2lu Y2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CmNv bmZpZ3VyZToxMDMwOTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAzMjU6IGNoZWNraW5nIGZvciBp ZmFkZHJzLmgKY29uZmlndXJlOjEwMzI1OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZToxMDMyNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhB VkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0gg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAh ZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVk ZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNp ZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwg CnwgI2luY2x1ZGUgPGlmYWRkcnMuaD4KY29uZmlndXJlOjEwMzI1OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMDM0MTogY2hlY2tpbmcgZm9yIG5ldC9pZl9kbC5oCmNvbmZpZ3VyZToxMDM0MTogL2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAg Y29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3Iv aW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFy dC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGli Yy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAzNDE6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9N SVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxuZXQvaWZfZGwuaD4KY29u ZmlndXJlOjEwMzQxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDM1NjogY2hlY2tpbmcgZm9yIHN0 cnVjdCBpZnJlcS5pZnJfZmxhZ3MKY29uZmlndXJlOjEwMzU2OiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDM1NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIK fCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUg SEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8u aD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I CnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8 ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2Vu ZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7 CnwgaWYgKGFjX2FnZ3IuaWZyX2ZsYWdzKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTAzNTY6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtYyAtZzMgLU8yICAgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSBjb25mdGVzdC5jOjI5OgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJy b3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog ICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29u ZmlndXJlOjEwMzU2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9Q RVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZF X1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVm Lmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZp bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhB VkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWYg SEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQvaWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFj X2FnZ3IuaWZyX2ZsYWdzKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTAzNTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMzcyOiBjaGVja2luZyBmb3Igc3Ry dWN0IGlmcmVxLmlmcl9od2FkZHIKY29uZmlndXJlOjEwMzcyOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDM3MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIK fCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUg SEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8u aD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I CnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8 ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2Vu ZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7 CnwgaWYgKGFjX2FnZ3IuaWZyX2h3YWRkcikKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjEwMzcyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVk IGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVy cm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK ICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNv bmZpZ3VyZToxMDM3MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRf WE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf T1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhBVkVf UEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFW RV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRl Zi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVm aW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8 bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBI QVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lm IEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2VuZGlmCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBh Y19hZ2dyLmlmcl9od2FkZHIpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxMDM3MjogcmVzdWx0OiBubwpjb25maWd1cmU6MTAzODg6IGNoZWNraW5nIGZvciBz dHJ1Y3QgaWZyZXEuaWZyX25ldG1hc2sKY29uZmlndXJlOjEwMzg4OiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4m NQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlv Lmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFy dC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0 aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDM4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51 eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZp bmUgSEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0 Lmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+Cnwg I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2Fn Z3I7CnwgaWYgKGFjX2FnZ3IuaWZyX25ldG1hc2spCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDM4ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6MTAzODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNk ZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhf QUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBI QVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9I IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAj aWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8 ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGlu dAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJlcSBhY19hZ2dyOwp8IGlmIChzaXpl b2YgYWNfYWdnci5pZnJfbmV0bWFzaykKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjEwMzg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDQwNDogY2hlY2tpbmcg Zm9yIHN0cnVjdCBpZnJlcS5pZnJfYnJvYWRhZGRyCmNvbmZpZ3VyZToxMDQwNDogL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRl c3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3IvaW5jbHVk ZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFk ZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpj b21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MDQ6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJn bnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEK fCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lz L3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9p Zi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJl cSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9icm9hZGFkZHIpCnwgcmV0dXJuIDA7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDQwNDogL2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3QuYyA+JjUKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3 OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4K ICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0 ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MDQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwg I2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhB VkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8 ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9pZi5oPgp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJlcSBhY19hZ2dyOwp8 IGlmIChzaXplb2YgYWNfYWdnci5pZnJfYnJvYWRhZGRyKQp8IHJldHVybiAwOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTA0MDQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwNDIw OiBjaGVja2luZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9hZGRyCmNvbmZpZ3VyZToxMDQyMDogL2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAg Y29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3Iv aW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFy dC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGli Yy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MjA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9N SVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUg PG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVj dCBpZnJlcSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9hZGRyKQp8IHJldHVybiAwOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTA0MjA6IC9ob21lL2RhaGFuL211c2xfY3Jv c3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yICAgIGNvbmZ0ZXN0LmMgPiY1Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjI5OgovdXNyL2luY2x1ZGUvc3RkaW8uaDoy NzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjEwNDIwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8 ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBI QVZFX1RFUk1fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4K fCAjZW5kaWYKfCAjaWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQvaWYuaD4KfCAjZW5k aWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsK fCBpZiAoc2l6ZW9mIGFjX2FnZ3IuaWZyX2FkZHIpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDQyMDogcmVzdWx0OiBubwpjb25maWd1cmU6MTA0MzY6IGNo ZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2FkZHIuc2FfbGVuCmNvbmZpZ3VyZToxMDQzNjog L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIg ICAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91 c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1z dGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMv bGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MzY6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFO RE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5j bHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYg SEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRl ZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBp bmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5j bHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1 ZGUgPG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0 cnVjdCBpZnJlcSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9hZGRyLnNhX2xlbikKfCByZXR1 cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNDM2OiAvaG9tZS9kYWhh bi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVz dC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRl L3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRl ci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDQzNjogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdu dS9saW51eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8 ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk ZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lz L3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJ Ql9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF X01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8 c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxz dHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8 aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8 c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVu aXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMv c29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lm Lmg+CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVx IGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBhY19hZ2dyLmlmcl9hZGRyLnNhX2xlbikKfCByZXR1cm4g MDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNDM2OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxMDQ1OTogY2hlY2tpbmcgd2hldGhlciBnY2MgdW5kZXJzdGFuZHMgLU1NRCAtTUYK Y29uZmlndXJlOjEwNDc3OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWczIC1PMiAtTU1EIC1NRiBkZXBzLmQgLU1QICAgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZToxMDQ3NzogJD8gPSAwCmNvbmZpZ3VyZToxMDQ4NzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjEwNTAzOiBjaGVja2luZyBmb3IgWApjb25maWd1cmU6MTA2ODE6IHJlc3VsdDogZGlzYWJs ZWQKY29uZmlndXJlOjExNjIxOiBjaGVja2luZyB3aGV0aGVyIG1hbGxvYyBpcyBEb3VnIExlYSBz dHlsZQpjb25maWd1cmU6MTE2NDI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1IApJbiBmaWxlIGluY2x1ZGVk IGZyb20gL3Vzci9pbmNsdWRlL21hbGxvYy5oOjIyLAogICAgICAgICAgICAgICAgIGZyb20gY29u ZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJvcjog c3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNsdWRl IDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjExNjQyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4 Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmlu ZSBIQVZFX1RFUk1fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYWxs b2MuaD4KfCAJICAgIHN0YXRpYyB2b2lkIGhvb2sgKHZvaWQpIHt9CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCBtYWxsb2Nfc2V0X3N0YXRlIChtYWxsb2NfZ2V0X3N0YXRlICgpKTsKfCAJICAgIF9fYWZ0 ZXJfbW9yZWNvcmVfaG9vayA9IGhvb2s7CnwgCSAgICBfX21hbGxvY19pbml0aWFsaXplX2hvb2sg PSBob29rOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE2NDk6IHJlc3VsdDog bm8KY29uZmlndXJlOjExNzc4OiBjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUKY29uZmlndXJlOjEx Nzc4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29u ZnRlc3QgLWczIC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgID4mNSAKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6 NDA6Ci91c3IvaW5jbHVkZS9saW1pdHMuaDoyNjoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1o ZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNiB8ICNpbmNsdWRl IDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjExNzc4OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJ IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERS X05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldHBhZ2VzaXpl IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0 cGFnZXNpemUuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBnZXRwYWdlc2l6ZSBpbm5vY3VvdXNfZ2V0cGFn ZXNpemUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo YXIgZ2V0cGFnZXNpemUgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNz ZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhp c3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1RE Q19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGdldHBhZ2VzaXplCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRwYWdl c2l6ZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9nZXRwYWdlc2l6ZSB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dldHBhZ2VzaXplCnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRwYWdl c2l6ZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExNzc4OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMTc4NzogY2hlY2tpbmcgZm9yIHdvcmtpbmcgbW1hcApjb25maWd1cmU6 MTE5NDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjExOTY0OiBjaGVja2luZyBmb3IgbWFpbiBpbiAt bFhic2QKY29uZmlndXJlOjExOTgzOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jv c3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgLWxYYnNkICAgID4mNSAKL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9iaW4vLi4vbGliL2djYy9pNTg2LWxpbnV4LW11c2wvOS4yLjAvLi4v Li4vLi4vLi4vaTU4Ni1saW51eC1tdXNsL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxYYnNkCmNvbGxl Y3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTE5ODM6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBz Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkg MQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5l IFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJf Tk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9N QUxMT0MgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8IHJldHVybiBtYWluICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE5 OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyMDA0OiBjaGVja2luZyBmb3IgcHRocmVhZCBsaWJy YXJ5CmNvbmZpZ3VyZToxMjA0MDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3Nz L2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICAgPiY1IApJbiBmaWxlIGluY2x1ZGVk IGZyb20gL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyMSwKICAgICAgICAgICAgICAgICBmcm9tIGNv bmZ0ZXN0LmM6MzA6Ci91c3IvaW5jbHVkZS9mZWF0dXJlcy5oOjQyNDoxMjogZmF0YWwgZXJyb3I6 IHN5cy9jZGVmcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgNDI0IHwgIyAgaW5jbHVk ZSA8c3lzL2NkZWZzLmg+CiAgICAgIHwgICAgICAgICAgICBefn5+fn5+fn5+fn5+CmNvbXBpbGF0 aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMjA0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51 eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZp bmUgSEFWRV9URVJNX0ggMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxwdGhyZWFkLmg+CnwgCSAgICAgICNpbmNsdWRlIDxzaWdu YWwuaD4KfCAJICAgICAgc2lnc2V0X3Qgb2xkX21hc2ssIG5ld19tYXNrOwp8IAkgICAgICB2b2lk IG5vb3AgKHZvaWQpIHt9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBwdGhyZWFkX3QgdGggPSBwdGhy ZWFkX3NlbGYgKCk7CnwgCSAgICAgIGludCBzdGF0dXMgPSAwOwp8IAkgICAgICBzdGF0dXMgKz0g cHRocmVhZF9jcmVhdGUgKCZ0aCwgMCwgMCwgMCk7CnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFk X3NpZ21hc2sgKFNJR19CTE9DSywgJm5ld19tYXNrLCAmb2xkX21hc2spOwp8IAkgICAgICBzdGF0 dXMgKz0gcHRocmVhZF9raWxsICh0aCwgMCk7CnwgCSAgICAgICNpZiAhIChkZWZpbmVkIFNZU1RF TV9NQUxMT0MgfHwgZGVmaW5lZCBIWUJSSURfTUFMTE9DIAkJICAgICB8fCBkZWZpbmVkIERPVUdf TEVBX01BTExPQykKfCAJICAgICAgLyogVGVzdCBmb3IgcHRocmVhZF9hdGZvcmsgb25seSBpZiBn bWFsbG9jIHVzZXMgaXQsCnwgCQkgYXMgb2xkZXItc3R5bGUgaG9zdHMgbGlrZSBNaXJCU0QgMTAg bGFjayBpdC4gICovCnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFkX2F0Zm9yayAobm9vcCwgbm9v cCwgbm9vcCk7CnwgCSAgICAgICNlbmRpZgp8IAkgICAgICByZXR1cm4gc3RhdHVzOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTIwNDA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgIC1scHRocmVh ZCA+JjUgCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjIxLAog ICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzozMDoKL3Vzci9pbmNsdWRlL2ZlYXR1cmVz Lmg6NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAg IF5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEyMDQwOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJ IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERS X05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4K fCAJICAgICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8IAkgICAgICBzaWdzZXRfdCBvbGRfbWFzaywg bmV3X21hc2s7CnwgCSAgICAgIHZvaWQgbm9vcCAodm9pZCkge30KfCBpbnQKfCBtYWluICgpCnwg ewp8IHB0aHJlYWRfdCB0aCA9IHB0aHJlYWRfc2VsZiAoKTsKfCAJICAgICAgaW50IHN0YXR1cyA9 IDA7CnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFkX2NyZWF0ZSAoJnRoLCAwLCAwLCAwKTsKfCAJ ICAgICAgc3RhdHVzICs9IHB0aHJlYWRfc2lnbWFzayAoU0lHX0JMT0NLLCAmbmV3X21hc2ssICZv bGRfbWFzayk7CnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFkX2tpbGwgKHRoLCAwKTsKfCAJICAg ICAgI2lmICEgKGRlZmluZWQgU1lTVEVNX01BTExPQyB8fCBkZWZpbmVkIEhZQlJJRF9NQUxMT0Mg CQkgICAgIHx8IGRlZmluZWQgRE9VR19MRUFfTUFMTE9DKQp8IAkgICAgICAvKiBUZXN0IGZvciBw dGhyZWFkX2F0Zm9yayBvbmx5IGlmIGdtYWxsb2MgdXNlcyBpdCwKfCAJCSBhcyBvbGRlci1zdHls ZSBob3N0cyBsaWtlIE1pckJTRCAxMCBsYWNrIGl0LiAgKi8KfCAJICAgICAgc3RhdHVzICs9IHB0 aHJlYWRfYXRmb3JrIChub29wLCBub29wLCBub29wKTsKfCAJICAgICAgI2VuZGlmCnwgCSAgICAg IHJldHVybiBzdGF0dXM7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjA1MTog cmVzdWx0OiBubwpjb25maWd1cmU6MTIwNzg6IGNoZWNraW5nIGZvciB0aHJlYWQgc3VwcG9ydApj b25maWd1cmU6MTIwOTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjMyOiBjaGVja2luZyBmb3Ig Z2V0YWRkcmluZm9fYSBpbiAtbGFubApjb25maWd1cmU6MTI2NTc6IC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAtbGFu bCAgICA+JjUgCi9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluLy4uL2xpYi9nY2MvaTU4Ni1saW51 eC1tdXNsLzkuMi4wLy4uLy4uLy4uLy4uL2k1ODYtbGludXgtbXVzbC9iaW4vbGQ6IGNhbm5vdCBm aW5kIC1sYW5sCmNvbGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25m aWd1cmU6MTI2NTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hP UEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09Q RU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19M SU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BF UlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAj ZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAg ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH Q0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp bGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYK fCBjaGFyIGdldGFkZHJpbmZvX2EgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0 YWRkcmluZm9fYSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEyNjY2OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMzEwOTogY2hlY2tpbmcgZm9yIGRidXMtMSA+PSAxLjAKY29u ZmlndXJlOjEzMTE2OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiZGJ1cy0x ID49IDEuMCIKUGFja2FnZSBkYnVzLTEgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBz ZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5p bmcgYGRidXMtMS5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJs ZQpObyBwYWNrYWdlICdkYnVzLTEnIGZvdW5kCmNvbmZpZ3VyZToxMzExOTogJD8gPSAxCmNvbmZp Z3VyZToxMzEzMzogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImRidXMtMSA+ PSAxLjAiClBhY2thZ2UgZGJ1cy0xIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2Vh cmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5n IGBkYnVzLTEucGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUK Tm8gcGFja2FnZSAnZGJ1cy0xJyBmb3VuZApjb25maWd1cmU6MTMxMzY6ICQ/ID0gMQpjb25maWd1 cmU6MTMxNTA6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnZGJ1cy0xJyBmb3VuZApjb25maWd1cmU6 MTM1MDk6IGNoZWNraW5nIGZvciBsZ2V0ZmlsZWNvbiBpbiAtbHNlbGludXgKY29uZmlndXJlOjEz NTM0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29u ZnRlc3QgLWczIC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgLWxzZWxpbnV4ICAgID4mNSAKL2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9iaW4vLi4vbGliL2djYy9pNTg2LWxpbnV4LW11c2wvOS4yLjAvLi4vLi4vLi4vLi4vaTU4Ni1s aW51eC1tdXNsL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxzZWxpbnV4CmNvbGxlY3QyOiBlcnJvcjog bGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTM1MzQ6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdu dS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBF ICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpF IDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGxnZXRmaWxlY29uICgpOwp8IGlu dAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGxnZXRmaWxlY29uICgpOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTM1NDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzNTY0OiBjaGVj a2luZyBmb3IgZ251dGxzID49IDIuMTIuMgpjb25maWd1cmU6MTM1NzE6ICRQS0dfQ09ORklHIC0t ZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnbnV0bHMgPj0gMi4xMi4yIgpQYWNrYWdlIGdudXRscyB3 YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBz aG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgZ251dGxzLnBjJwp0byB0aGUgUEtH X0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2dudXRscycgZm91 bmQKY29uZmlndXJlOjEzNTc0OiAkPyA9IDEKY29uZmlndXJlOjEzNTg4OiAkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyAiZ251dGxzID49IDIuMTIuMiIKUGFja2FnZSBnbnV0bHMg d2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ug c2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGdudXRscy5wYycKdG8gdGhlIFBL R19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpObyBwYWNrYWdlICdnbnV0bHMnIGZv dW5kCmNvbmZpZ3VyZToxMzU5MTogJD8gPSAxCmNvbmZpZ3VyZToxMzYwNTogcmVzdWx0OiBubwpO byBwYWNrYWdlICdnbnV0bHMnIGZvdW5kCmNvbmZpZ3VyZToxMzY1MzogY2hlY2tpbmcgZm9yIGxp YnN5c3RlbWQgPj0gMjIyCmNvbmZpZ3VyZToxMzY2MDogJFBLR19DT05GSUcgLS1leGlzdHMgLS1w cmludC1lcnJvcnMgImxpYnN5c3RlbWQgPj0gMjIyIgpQYWNrYWdlIGxpYnN5c3RlbWQgd2FzIG5v dCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxk IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGxpYnN5c3RlbWQucGMnCnRvIHRoZSBQS0df Q09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKTm8gcGFja2FnZSAnbGlic3lzdGVtZCcg Zm91bmQKY29uZmlndXJlOjEzNjYzOiAkPyA9IDEKY29uZmlndXJlOjEzNjc3OiAkUEtHX0NPTkZJ RyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlic3lzdGVtZCA+PSAyMjIiClBhY2thZ2UgbGli c3lzdGVtZCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJo YXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgbGlic3lzdGVtZC5w YycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpObyBwYWNrYWdl ICdsaWJzeXN0ZW1kJyBmb3VuZApjb25maWd1cmU6MTM2ODA6ICQ/ID0gMQpjb25maWd1cmU6MTM2 OTQ6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnbGlic3lzdGVtZCcgZm91bmQKY29uZmlndXJlOjEz NzM5OiBjaGVja2luZyBmb3IgamFuc3NvbiA+PSAyLjcKY29uZmlndXJlOjEzNzQ2OiAkUEtHX0NP TkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiamFuc3NvbiA+PSAyLjciClBhY2thZ2UgamFu c3NvbiB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBz IHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgamFuc3Nvbi5wYycKdG8g dGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpObyBwYWNrYWdlICdqYW5z c29uJyBmb3VuZApjb25maWd1cmU6MTM3NDk6ICQ/ID0gMQpjb25maWd1cmU6MTM3NjM6ICRQS0df Q09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJqYW5zc29uID49IDIuNyIKUGFja2FnZSBq YW5zc29uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhh cHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBqYW5zc29uLnBjJwp0 byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2ph bnNzb24nIGZvdW5kCmNvbmZpZ3VyZToxMzc2NjogJD8gPSAxCmNvbmZpZ3VyZToxMzc4MDogcmVz dWx0OiBubwpObyBwYWNrYWdlICdqYW5zc29uJyBmb3VuZApjb25maWd1cmU6MTM4NTM6IGNoZWNr aW5nIHN5cy9pbm90aWZ5LmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxMzg1MzogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3Qu YyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MzA6Ci91c3IvaW5jbHVkZS9z dGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXIt c3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21w aWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTM4NTM6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUv bGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAj ZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+ CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzeXMv aW5vdGlmeS5oPgpjb25maWd1cmU6MTM4NTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzODUzOiBj aGVja2luZyBzeXMvaW5vdGlmeS5oIHByZXNlbmNlCmNvbmZpZ3VyZToxMzg1MzogL2xpYi9jcHAg ICAgY29uZnRlc3QuYwpjb25maWd1cmU6MTM4NTM6ICQ/ID0gMApjb25maWd1cmU6MTM4NTM6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMzg1MzogV0FSTklORzogc3lzL2lub3RpZnkuaDogcHJlc2Vu dCBidXQgY2Fubm90IGJlIGNvbXBpbGVkCmNvbmZpZ3VyZToxMzg1MzogV0FSTklORzogc3lzL2lu b3RpZnkuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPwpjb25m aWd1cmU6MTM4NTM6IFdBUk5JTkc6IHN5cy9pbm90aWZ5Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9j dW1lbnRhdGlvbgpjb25maWd1cmU6MTM4NTM6IFdBUk5JTkc6IHN5cy9pbm90aWZ5Lmg6ICAgICBz ZWN0aW9uICJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWQiCmNvbmZpZ3VyZToxMzg1Mzog V0FSTklORzogc3lzL2lub3RpZnkuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJl c3VsdApjb25maWd1cmU6MTM4NTM6IGNoZWNraW5nIGZvciBzeXMvaW5vdGlmeS5oCmNvbmZpZ3Vy ZToxMzg1MzogcmVzdWx0OiBubwpjb25maWd1cmU6MTM4Nzk6IGNoZWNraW5nIGZvciBsaWJrcXVl dWUKY29uZmlndXJlOjEzODg2OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAi bGlia3F1ZXVlIgpQYWNrYWdlIGxpYmtxdWV1ZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29u ZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29u dGFpbmluZyBgbGlia3F1ZXVlLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50 IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2xpYmtxdWV1ZScgZm91bmQKY29uZmlndXJlOjEzODg5OiAk PyA9IDEKY29uZmlndXJlOjEzOTAzOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9y cyAibGlia3F1ZXVlIgpQYWNrYWdlIGxpYmtxdWV1ZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ct Y29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3Rvcnkg Y29udGFpbmluZyBgbGlia3F1ZXVlLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25t ZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2xpYmtxdWV1ZScgZm91bmQKY29uZmlndXJlOjEzOTA2 OiAkPyA9IDEKY29uZmlndXJlOjEzOTIwOiByZXN1bHQ6IG5vCk5vIHBhY2thZ2UgJ2xpYmtxdWV1 ZScgZm91bmQKY29uZmlndXJlOjEzOTU5OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5n IGtxdWV1ZQpjb25maWd1cmU6MTM5OTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgID4mNSAKL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vLi4vbGliL2djYy9pNTg2LWxpbnV4LW11c2wvOS4yLjAvLi4vLi4vLi4v Li4vaTU4Ni1saW51eC1tdXNsL2Jpbi9sZDogL3RtcC9jY1R6QXMzUy5vOiBpbiBmdW5jdGlvbiBg bWFpbic6Ci9ob21lL2RhaGFuL2J1aWxkL2NvbmZ0ZXN0LmM6NDE6IHVuZGVmaW5lZCByZWZlcmVu Y2UgdG8gYGtxdWV1ZScKY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZToxMzk5MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhB VkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0gg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8 IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y Lgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNl bmRpZgp8IGNoYXIga3F1ZXVlICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGtxdWV1 ZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE0MDA3OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxNDAzMzogY2hlY2tpbmcgZm9yIGdpby0yLjAgPj0gMi4yNApjb25maWd1cmU6 MTQwNDA6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnaW8tMi4wID49IDIu MjQiClBhY2thZ2UgZ2lvLTIuMCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJj aCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBg Z2lvLTIuMC5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpO byBwYWNrYWdlICdnaW8tMi4wJyBmb3VuZApjb25maWd1cmU6MTQwNDM6ICQ/ID0gMQpjb25maWd1 cmU6MTQwNTc6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnaW8tMi4wID49 IDIuMjQiClBhY2thZ2UgZ2lvLTIuMCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNl YXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmlu ZyBgZ2lvLTIuMC5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJs ZQpObyBwYWNrYWdlICdnaW8tMi4wJyBmb3VuZApjb25maWd1cmU6MTQwNjA6ICQ/ID0gMQpjb25m aWd1cmU6MTQwNzQ6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnZ2lvLTIuMCcgZm91bmQKY29uZmln dXJlOjE0NTY5OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2Mg LWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9pNTg2LWxpbnV4LW11c2wvaW5jbHVkZS9zeXMvdHlwZXMuaDo3LAog ICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL1gxMS9YbGliLmg6MzgsCiAgICAgICAg ICAgICAgICAgZnJvbSBjb25mdGVzdC5jOjMxOgovdXNyL2luY2x1ZGUvZmVhdHVyZXMuaDo0MjQ6 MTI6IGZhdGFsIGVycm9yOiBzeXMvY2RlZnMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog IDQyNCB8ICMgIGluY2x1ZGUgPHN5cy9jZGVmcy5oPgogICAgICB8ICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTQ1Njk6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFO RE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0Mg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAJICAjaW5jbHVkZSA8WDExL1hsaWIuaD4K fCAJICAjaW5jbHVkZSA8WDExL1hyZXNvdXJjZS5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgWElN UHJvYyAgY2FsbGJhY2s7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNTk5ODog Y2hlY2tpbmcgZm9yIGxjbXMyCmNvbmZpZ3VyZToxNjAwNTogJFBLR19DT05GSUcgLS1leGlzdHMg LS1wcmludC1lcnJvcnMgImxjbXMyIgpQYWNrYWdlIGxjbXMyIHdhcyBub3QgZm91bmQgaW4gdGhl IHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVj dG9yeSBjb250YWluaW5nIGBsY21zMi5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9u bWVudCB2YXJpYWJsZQpObyBwYWNrYWdlICdsY21zMicgZm91bmQKY29uZmlndXJlOjE2MDA4OiAk PyA9IDEKY29uZmlndXJlOjE2MDIyOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9y cyAibGNtczIiClBhY2thZ2UgbGNtczIgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBz ZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5p bmcgYGxjbXMyLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxl Ck5vIHBhY2thZ2UgJ2xjbXMyJyBmb3VuZApjb25maWd1cmU6MTYwMjU6ICQ/ID0gMQpjb25maWd1 cmU6MTYwMzk6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnbGNtczInIGZvdW5kCmNvbmZpZ3VyZTox NjA4NTogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmZsYXRlRW5kCmNvbmZpZ3Vy ZToxNjExNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1v IGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3Iv bGliIC1ML2xpYiBjb25mdGVzdC5jICAgPiY1IAovaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi8u Li9saWIvZ2NjL2k1ODYtbGludXgtbXVzbC85LjIuMC8uLi8uLi8uLi8uLi9pNTg2LWxpbnV4LW11 c2wvYmluL2xkOiAvdG1wL2NjeWgyc2gwLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUvZGFo YW4vYnVpbGQvY29uZnRlc3QuYzo0MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgaW5mbGF0ZUVu ZCcKY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTox NjExNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09D S0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8 ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJ VFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8ICNkZWZpbmUg U1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4g IkMiCnwgI2VuZGlmCnwgY2hhciBpbmZsYXRlRW5kICgpOwp8IGludAp8IG1haW4gKCkKfCB7Cnwg cmV0dXJuIGluZmxhdGVFbmQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTox NjExNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNv bmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGli IC1ML2xpYiBjb25mdGVzdC5jIC1seiAgICA+JjUgCmNvbmZpZ3VyZToxNjExNjogJD8gPSAwCmNv bmZpZ3VyZToxNjEzMzogcmVzdWx0OiAtbHoKY29uZmlndXJlOjE2MTk4OiBjaGVja2luZyBmb3Ig ZGxhZGRyCmNvbmZpZ3VyZToxNjE5ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1s aW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICAgLWxkbCA+JjUgCkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjQyOgovdXNyL2luY2x1ZGUvbGltaXRzLmg6MjY6MTA6 IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICAgMjYgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAg ICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZToxNjE5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf SFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVm aW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9U RVJNX0ggMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAj ZGVmaW5lIEhBVkVfWkxJQiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBk bGFkZHIgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJl cyBkbGFkZHIuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBkbGFkZHIgaW5ub2N1b3VzX2RsYWRkcgp8IAp8 IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBkbGFkZHIg KCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1RE Q19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRl IDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwg I3VuZGVmIGRsYWRkcgp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZGxhZGRyICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAg ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg bmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2RsYWRkciB8fCBkZWZp bmVkIF9fc3R1Yl9fX2RsYWRkcgp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCByZXR1cm4gZGxhZGRyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTYxOTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MTk4OiBjaGVja2luZyBmb3IgZGxmdW5j CmNvbmZpZ3VyZToxNjE5ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xp YiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICAgLWxkbCA+JjUgCkluIGZpbGUgaW5jbHVk ZWQgZnJvbSBjb25mdGVzdC5jOjQyOgovdXNyL2luY2x1ZGUvbGltaXRzLmg6MjY6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjYgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZToxNjE5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhB VkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0gg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5l IEhBVkVfWkxJQiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBkbGZ1bmMg dG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBkbGZ1 bmMuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRp bWVvZmRheS4gICovCnwgI2RlZmluZSBkbGZ1bmMgaW5ub2N1b3VzX2RsZnVuYwp8IAp8IC8qIFN5 c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJv dG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBkbGZ1bmMgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IGRsZnVuYwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0 ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZGxmdW5jICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5 IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2RsZnVuYyB8fCBkZWZpbmVkIF9f c3R1Yl9fX2RsZnVuYwp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gZGxmdW5jICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTYx OTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MjgxOiBjaGVja2luZyBmb3IgZ2NjX2ppdF9jb250 ZXh0X2FjcXVpcmUgaW4gLWxnY2NqaXQKY29uZmlndXJlOjE2MzA2OiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgICAtTC9o b21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgLWxn Y2NqaXQgICAgPiY1IApjb25maWd1cmU6MTYzMDY6ICQ/ID0gMApjb25maWd1cmU6MTYzMTU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxNjMzNTogY2hlY2tpbmcgbGliZ2Njaml0LmggdXNhYmlsaXR5 CmNvbmZpZ3VyZToxNjMzNTogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9t IGNvbmZ0ZXN0LmM6MzU6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjog Yml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3 IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1 cmU6MTYzMzU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNP TkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVm aW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX1pM SUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIu c28iCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPGxpYmdjY2ppdC5oPgpjb25maWd1 cmU6MTYzMzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MzM1OiBjaGVja2luZyBsaWJnY2NqaXQu aCBwcmVzZW5jZQpjb25maWd1cmU6MTYzMzU6IC9saWIvY3BwICAgIGNvbmZ0ZXN0LmMKY29uZmln dXJlOjE2MzM1OiAkPyA9IDAKY29uZmlndXJlOjE2MzM1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MTYzMzU6IFdBUk5JTkc6IGxpYmdjY2ppdC5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGls ZWQKY29uZmlndXJlOjE2MzM1OiBXQVJOSU5HOiBsaWJnY2NqaXQuaDogICAgIGNoZWNrIGZvciBt aXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPwpjb25maWd1cmU6MTYzMzU6IFdBUk5JTkc6IGxp YmdjY2ppdC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24KY29uZmlndXJlOjE2MzM1 OiBXQVJOSU5HOiBsaWJnY2NqaXQuaDogICAgIHNlY3Rpb24gIlByZXNlbnQgQnV0IENhbm5vdCBC ZSBDb21waWxlZCIKY29uZmlndXJlOjE2MzM1OiBXQVJOSU5HOiBsaWJnY2NqaXQuaDogcHJvY2Vl ZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdApjb25maWd1cmU6MTYzMzU6IGNoZWNraW5n IGZvciBsaWJnY2NqaXQuaApjb25maWd1cmU6MTYzMzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2 MzQzOiBlcnJvcjogZWxpc3AgbmF0aXZlIGNvbXBpbGVyIHJlcXVlc3RlZCBidXQgbGliZ2Njaml0 IGhlYWRlciBmaWxlcyB3ZXJlCm5vdCBmb3VuZC4KUGxlYXNlIHRyeSBpbnN0YWxsaW5nIGxpYmdj Y2ppdC1kZXYgb3Igc2ltaWxhciBwYWNrYWdlLgpJZiB5b3UgYXJlIHN1cmUgeW91IHdhbnQgRW1h Y3MgY29tcGlsZWQgd2l0aG91dCBlbGlzcCBuYXRpdmUgY29tcGlsZXIsIHBhc3MKLS13aXRob3V0 LW5hdGl2ZWNvbXAKdG8gY29uZmlndXJlLgoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNo ZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxkPWk1ODYt cGMtbGludXgtbXVzbAphY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKYWNfY3ZfZW52X0FMU0FfQ0ZM QUdTX3NldD0KYWNfY3ZfZW52X0FMU0FfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQUxTQV9MSUJT X3NldD0KYWNfY3ZfZW52X0FMU0FfTElCU192YWx1ZT0KYWNfY3ZfZW52X0NBSVJPX0NGTEFHU19z ZXQ9CmFjX2N2X2Vudl9DQUlST19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DQUlST19MSUJTX3Nl dD0KYWNfY3ZfZW52X0NBSVJPX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9DQ19zZXQ9c2V0CmFjX2N2 X2Vudl9DQ192YWx1ZT0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MKYWNfY3ZfZW52X0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9DUFBGTEFHU19zZXQ9CmFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUF9z ZXQ9CmFjX2N2X2Vudl9DUFBfdmFsdWU9CmFjX2N2X2Vudl9EQlVTX0NGTEFHU19zZXQ9CmFjX2N2 X2Vudl9EQlVTX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0RCVVNfTElCU19zZXQ9CmFjX2N2X2Vu dl9EQlVTX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9GT05UQ09ORklHX0NGTEFHU19zZXQ9CmFjX2N2 X2Vudl9GT05UQ09ORklHX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0ZPTlRDT05GSUdfTElCU19z ZXQ9CmFjX2N2X2Vudl9GT05UQ09ORklHX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9GUkVFVFlQRV9D RkxBR1Nfc2V0PQphY19jdl9lbnZfRlJFRVRZUEVfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfRlJF RVRZUEVfTElCU19zZXQ9CmFjX2N2X2Vudl9GUkVFVFlQRV9MSUJTX3ZhbHVlPQphY19jdl9lbnZf R0NPTkZfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0dDT05GX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52 X0dDT05GX0xJQlNfc2V0PQphY19jdl9lbnZfR0NPTkZfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dG SUxFTk9USUZZX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9HRklMRU5PVElGWV9DRkxBR1NfdmFsdWU9 CmFjX2N2X2Vudl9HRklMRU5PVElGWV9MSUJTX3NldD0KYWNfY3ZfZW52X0dGSUxFTk9USUZZX0xJ QlNfdmFsdWU9CmFjX2N2X2Vudl9HT0JKRUNUX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9HT0JKRUNU X0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dPQkpFQ1RfTElCU19zZXQ9CmFjX2N2X2Vudl9HT0JK RUNUX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9HU0VUVElOR1NfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52 X0dTRVRUSU5HU19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9HU0VUVElOR1NfTElCU19zZXQ9CmFj X2N2X2Vudl9HU0VUVElOR1NfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dUS19DRkxBR1Nfc2V0PQph Y19jdl9lbnZfR1RLX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dUS19MSUJTX3NldD0KYWNfY3Zf ZW52X0dUS19MSUJTX3ZhbHVlPQphY19jdl9lbnZfSEFSRkJVWlpfQ0ZMQUdTX3NldD0KYWNfY3Zf ZW52X0hBUkZCVVpaX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0hBUkZCVVpaX0xJQlNfc2V0PQph Y19jdl9lbnZfSEFSRkJVWlpfTElCU192YWx1ZT0KYWNfY3ZfZW52X0lNQUdFTUFHSUNLX0NGTEFH U19zZXQ9CmFjX2N2X2Vudl9JTUFHRU1BR0lDS19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9JTUFH RU1BR0lDS19MSUJTX3NldD0KYWNfY3ZfZW52X0lNQUdFTUFHSUNLX0xJQlNfdmFsdWU9CmFjX2N2 X2Vudl9KU09OX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9KU09OX0NGTEFHU192YWx1ZT0KYWNfY3Zf ZW52X0pTT05fTElCU19zZXQ9CmFjX2N2X2Vudl9KU09OX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9L UVVFVUVfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0tRVUVVRV9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9LUVVFVUVfTElCU19zZXQ9CmFjX2N2X2Vudl9LUVVFVUVfTElCU192YWx1ZT0KYWNfY3ZfZW52 X0xDTVMyX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9MQ01TMl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9MQ01TMl9MSUJTX3NldD0KYWNfY3ZfZW52X0xDTVMyX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9M REZMQUdTX3NldD1zZXQKYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9Jy1ML2hvbWUvZGFoYW4vbXVz bF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWInCmFjX2N2X2Vudl9MSUJHTlVUTFNfQ0ZMQUdT X3NldD0KYWNfY3ZfZW52X0xJQkdOVVRMU19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJHTlVU TFNfTElCU19zZXQ9CmFjX2N2X2Vudl9MSUJHTlVUTFNfTElCU192YWx1ZT0KYWNfY3ZfZW52X0xJ Qk9URl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCT1RGX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52 X0xJQk9URl9MSUJTX3NldD0KYWNfY3ZfZW52X0xJQk9URl9MSUJTX3ZhbHVlPQphY19jdl9lbnZf TElCU0VDQ09NUF9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCU0VDQ09NUF9DRkxBR1NfdmFsdWU9 CmFjX2N2X2Vudl9MSUJTRUNDT01QX0xJQlNfc2V0PQphY19jdl9lbnZfTElCU0VDQ09NUF9MSUJT X3ZhbHVlPQphY19jdl9lbnZfTElCU1lTVEVNRF9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCU1lT VEVNRF9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJTWVNURU1EX0xJQlNfc2V0PQphY19jdl9l bnZfTElCU1lTVEVNRF9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTElCU19zZXQ9CmFjX2N2X2Vudl9M SUJTX3ZhbHVlPQphY19jdl9lbnZfTElCWE1MMl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCWE1M Ml9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJYTUwyX0xJQlNfc2V0PQphY19jdl9lbnZfTElC WE1MMl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTTE3Tl9GTFRfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52 X00xN05fRkxUX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X00xN05fRkxUX0xJQlNfc2V0PQphY19j dl9lbnZfTTE3Tl9GTFRfTElCU192YWx1ZT0KYWNfY3ZfZW52X09CSkNGTEFHU19zZXQ9CmFjX2N2 X2Vudl9PQkpDRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9PQkpDX3NldD0KYWNfY3ZfZW52X09CSkNf dmFsdWU9CmFjX2N2X2Vudl9QS0dfQ09ORklHX0xJQkRJUl9zZXQ9CmFjX2N2X2Vudl9QS0dfQ09O RklHX0xJQkRJUl92YWx1ZT0KYWNfY3ZfZW52X1BLR19DT05GSUdfUEFUSF9zZXQ9CmFjX2N2X2Vu dl9QS0dfQ09ORklHX1BBVEhfdmFsdWU9CmFjX2N2X2Vudl9QS0dfQ09ORklHX3NldD0KYWNfY3Zf ZW52X1BLR19DT05GSUdfdmFsdWU9CmFjX2N2X2Vudl9QTkdfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52 X1BOR19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9QTkdfTElCU19zZXQ9CmFjX2N2X2Vudl9QTkdf TElCU192YWx1ZT0KYWNfY3ZfZW52X1JTVkdfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X1JTVkdfQ0ZM QUdTX3ZhbHVlPQphY19jdl9lbnZfUlNWR19MSUJTX3NldD0KYWNfY3ZfZW52X1JTVkdfTElCU192 YWx1ZT0KYWNfY3ZfZW52X1dFQktJVF9DRkxBR1Nfc2V0PQphY19jdl9lbnZfV0VCS0lUX0NGTEFH U192YWx1ZT0KYWNfY3ZfZW52X1dFQktJVF9MSUJTX3NldD0KYWNfY3ZfZW52X1dFQktJVF9MSUJT X3ZhbHVlPQphY19jdl9lbnZfWEZJWEVTX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9YRklYRVNfQ0ZM QUdTX3ZhbHVlPQphY19jdl9lbnZfWEZJWEVTX0xJQlNfc2V0PQphY19jdl9lbnZfWEZJWEVTX0xJ QlNfdmFsdWU9CmFjX2N2X2Vudl9YRlRfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X1hGVF9DRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9YRlRfTElCU19zZXQ9CmFjX2N2X2Vudl9YRlRfTElCU192YWx1ZT0K YWNfY3ZfZW52X1hJTkVSQU1BX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9YSU5FUkFNQV9DRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9YSU5FUkFNQV9MSUJTX3NldD0KYWNfY3ZfZW52X1hJTkVSQU1BX0xJ QlNfdmFsdWU9CmFjX2N2X2Vudl9YTUtNRl9zZXQ9CmFjX2N2X2Vudl9YTUtNRl92YWx1ZT0KYWNf Y3ZfZW52X1hSQU5EUl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfWFJBTkRSX0NGTEFHU192YWx1ZT0K YWNfY3ZfZW52X1hSQU5EUl9MSUJTX3NldD0KYWNfY3ZfZW52X1hSQU5EUl9MSUJTX3ZhbHVlPQph Y19jdl9lbnZfYnVpbGRfYWxpYXNfc2V0PXNldAphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9 aTU4Ni1saW51eC1tdXNsCmFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD1zZXQKYWNfY3ZfZW52X2hv c3RfYWxpYXNfdmFsdWU9eDg2LWdudS1saW51eAphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0K YWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KYWNfY3ZfZnVuY19kbGFkZHI9bm8KYWNfY3Zf ZnVuY19kbGZ1bmM9bm8KYWNfY3ZfZnVuY19nZXRwYWdlc2l6ZT1ubwphY19jdl9mdW5jX21tYXBf Zml4ZWRfbWFwcGVkPW5vCmFjX2N2X2hlYWRlcl9jb2ZmX2g9bm8KYWNfY3ZfaGVhZGVyX2RpcmVu dF9oPW5vCmFjX2N2X2hlYWRlcl9leGVjaW5mb19oPW5vCmFjX2N2X2hlYWRlcl9nZXRvcHRfaD1u bwphY19jdl9oZWFkZXJfaWVlZTc1NF9oPW5vCmFjX2N2X2hlYWRlcl9pZmFkZHJzX2g9bm8KYWNf Y3ZfaGVhZGVyX2ludHR5cGVzX2g9bm8KYWNfY3ZfaGVhZGVyX2xpYmdjY2ppdF9oPW5vCmFjX2N2 X2hlYWRlcl9saW1pdHNfaD1ubwphY19jdl9oZWFkZXJfbGludXhfZnNfaD1ubwphY19jdl9oZWFk ZXJfbWFjaGluZV9zb3VuZGNhcmRfaD1ubwphY19jdl9oZWFkZXJfbWFsbG9jX2g9bm8KYWNfY3Zf aGVhZGVyX21hbGxvY19tYWxsb2NfaD1ubwphY19jdl9oZWFkZXJfbWVtb3J5X2g9bm8KYWNfY3Zf aGVhZGVyX21pbml4X2NvbmZpZ19oPW5vCmFjX2N2X2hlYWRlcl9tbXN5c3RlbV9oPW5vCmFjX2N2 X2hlYWRlcl9uZXRfaWZfZGxfaD1ubwphY19jdl9oZWFkZXJfbmV0X2lmX2g9bm8KYWNfY3ZfaGVh ZGVyX3B0aHJlYWRfaD1ubwphY19jdl9oZWFkZXJfcHR5X2g9bm8KYWNfY3ZfaGVhZGVyX3B3ZF9o PW5vCmFjX2N2X2hlYWRlcl9zYW5pdGl6ZXJfbHNhbl9pbnRlcmZhY2VfaD1ubwphY19jdl9oZWFk ZXJfc291bmRjYXJkX2g9bm8KYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KYWNfY3ZfaGVhZGVyX3N0ZGlu dF9oPW5vCmFjX2N2X2hlYWRlcl9zdGRpb19leHRfaD1ubwphY19jdl9oZWFkZXJfc3RkbGliX2g9 bm8KYWNfY3ZfaGVhZGVyX3N0cmluZ19oPW5vCmFjX2N2X2hlYWRlcl9zdHJpbmdzX2g9bm8KYWNf Y3ZfaGVhZGVyX3N5c19jZGVmc19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfZnNfdHlwZXNfaD1ubwph Y19jdl9oZWFkZXJfc3lzX2lub3RpZnlfaD1ubwphY19jdl9oZWFkZXJfc3lzX3BhcmFtX2g9bm8K YWNfY3ZfaGVhZGVyX3N5c19yYW5kb21faD1ubwphY19jdl9oZWFkZXJfc3lzX3Jlc291cmNlX2g9 bm8KYWNfY3ZfaGVhZGVyX3N5c19zZWxlY3RfaD1ubwphY19jdl9oZWFkZXJfc3lzX3NvY2tldF9o PW5vCmFjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zdGF0 X2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXNpbmZvX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXN0 ZW1pbmZvX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c190aW1lX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c190 eXBlc19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfdW5faD1ubwphY19jdl9oZWFkZXJfc3lzX3V0c25h bWVfaD1ubwphY19jdl9oZWFkZXJfc3lzX3Zmc19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfd2FpdF9o PW5vCmFjX2N2X2hlYWRlcl91bmlzdGRfaD1ubwphY19jdl9oZWFkZXJfdXRpbF9oPW5vCmFjX2N2 X2hlYWRlcl91dG1wX2g9bm8KYWNfY3ZfaGVhZGVyX3djaGFyX2g9bm8KYWNfY3ZfaG9zdD14ODYt Z251LWxpbnV4LWdudQphY19jdl9saWJfWGJzZF9tYWluPW5vCmFjX2N2X2xpYl9hbmxfZ2V0YWRk cmluZm9fYT1ubwphY19jdl9saWJfZ2Njaml0X2djY19qaXRfY29udGV4dF9hY3F1aXJlPXllcwph Y19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD1ubwphY19jdl9saWJfc2VsaW51eF9sZ2V0Zmls ZWNvbj1ubwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9hZGRyPW5vCmFjX2N2X21lbWJl cl9zdHJ1Y3RfaWZyZXFfaWZyX2FkZHJfc2FfbGVuPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfaWZy ZXFfaWZyX2Jyb2FkYWRkcj1ubwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9mbGFncz1u bwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9od2FkZHI9bm8KYWNfY3ZfbWVtYmVyX3N0 cnVjdF9pZnJlcV9pZnJfbmV0bWFzaz1ubwphY19jdl9vYmpleHQ9bwphY19jdl9wYXRoX0VHUkVQ PScvYmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfR1JFUD0vYmluL2dyZXAKYWNfY3ZfcGF0aF9HWklQ X1BST0c9L2Jpbi9nemlwCmFjX2N2X3BhdGhfSU5TVEFMTF9JTkZPPS91c3IvYmluL2luc3RhbGwt aW5mbwphY19jdl9wYXRoX01BS0U9bWFrZQphY19jdl9wYXRoX2FjX3B0X1BLR19DT05GSUc9L3Vz ci9iaW4vcGtnLWNvbmZpZwphY19jdl9wYXRoX2luc3RhbGw9Jy91c3IvYmluL2luc3RhbGwgLWMn CmFjX2N2X3Byb2dfQ0M9L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNs LWNjCmFjX2N2X3Byb2dfQ1BQPS9saWIvY3BwCmFjX2N2X3Byb2dfYWNfY3RfQVI9YXIKYWNfY3Zf cHJvZ19hY19jdF9SQU5MSUI9cmFubGliCmFjX2N2X3Byb2dfY2NfX2hvbWVfZGFoYW5fbXVzbF9j cm9zc19iaW5faTU4Nl9saW51eF9tdXNsX2NjX2Nfbz15ZXMKYWNfY3ZfcHJvZ19jY19jMTE9bm8K YWNfY3ZfcHJvZ19jY19jOTk9bm8KYWNfY3ZfcHJvZ19jY19nPXllcwphY19jdl9wcm9nX2NjX3N0 ZGM9bm8KYWNfY3Zfc2FmZV90b19kZWZpbmVfX19leHRlbnNpb25zX189bm8KYWNfY3Zfc2VhcmNo X2luZmxhdGVFbmQ9LWx6CmFjX2N2X3NlYXJjaF9rcXVldWU9bm8KYWNfY3Zfc2VhcmNoX3NxcnQ9 J25vbmUgcmVxdWlyZWQnCmFjX2N2X3Nob3VsZF9kZWZpbmVfX3hvcGVuX3NvdXJjZT1ubwphY19j dl9zeXNfZmlsZV9vZmZzZXRfYml0cz11bmtub3duCmFjX2N2X3N5c19sYXJnZV9maWxlcz11bmtu b3duCmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8KZW1hY3NfY3ZfYXV0b2RlcGVuZD15ZXMKZW1h Y3NfY3ZfY2xhbmc9bm8KZW1hY3NfY3ZfZmluZF9kZWxldGU9LWRlbGV0ZQplbWFjc19jdl9sbl9z X2ZpbGVvbmx5PSdsbiAtcycKZW1hY3NfY3ZfcGVyc29uYWxpdHlfYWRkcl9ub19yYW5kb21pemU9 eWVzCmVtYWNzX2N2X3Byb2dfY2NfZzM9eWVzCmVtYWNzX2N2X3B0aHJlYWRfbGliPW5vCmVtYWNz X2N2X3Nhbml0aXplX2FkZHJlc3M9bm8KZW1hY3NfY3ZfdmFyX2RvdWdfbGVhX21hbGxvYz1ubwpl bWFjc19jdl96bm9jb21icmVsb2M9J25vdCBuZWVkZWQnCmdsX2N2X2NfYW1zdGVyZGFtX2NvbXBp bGVyPW5vCmdsX2N2X2NjX25vbWZpX25lZWRlZD1ubwpnbF9jdl9jY19ub21maV9zdXBwb3J0ZWQ9 eWVzCmdsX2N2X2NjX3VuaW5pdGlhbGl6ZWRfc3VwcG9ydGVkPXllcwpnbF9jdl9jb21waWxlcl9j aGVja19kZWNsX29wdGlvbj1ub25lCmdsX2N2X2NvbXBpbGVyX2NsYW5nPW5vCmdsX2N2X3dhcm5f Y19fV2FsbD15ZXMKZ2xfY3Zfd2Fybl9jX19XYXJpdGhfY29udmVyc2lvbj1ubwpnbF9jdl93YXJu X2NfX1dhcnJheV9ib3VuZHNfMj15ZXMKZ2xfY3Zfd2Fybl9jX19XYXR0cmlidXRlX2FsaWFzXzI9 eWVzCmdsX2N2X3dhcm5fY19fV2RhdGVfdGltZT15ZXMKZ2xfY3Zfd2Fybl9jX19XZGlzYWJsZWRf b3B0aW1pemF0aW9uPXllcwpnbF9jdl93YXJuX2NfX1dkb3VibGVfcHJvbW90aW9uPXllcwpnbF9j dl93YXJuX2NfX1dkdXBsaWNhdGVkX2NvbmQ9eWVzCmdsX2N2X3dhcm5fY19fV2Vycm9yX19XdW5r bm93bl93YXJuaW5nX29wdGlvbj1ubwpnbF9jdl93YXJuX2NfX1dleHRyYT15ZXMKZ2xfY3Zfd2Fy bl9jX19XZm9ybWF0XzI9eWVzCmdsX2N2X3dhcm5fY19fV2Zvcm1hdF9zaWduZWRuZXNzPXllcwpn bF9jdl93YXJuX2NfX1dmb3JtYXRfdHJ1bmNhdGlvbl8yPXllcwpnbF9jdl93YXJuX2NfX1dpbXBs aWNpdF9mYWxsdGhyb3VnaF81PXllcwpnbF9jdl93YXJuX2NfX1dpbml0X3NlbGY9eWVzCmdsX2N2 X3dhcm5fY19fV2ludmFsaWRfcGNoPXllcwpnbF9jdl93YXJuX2NfX1dsb2dpY2FsX29wPXllcwpn bF9jdl93YXJuX2NfX1dtaXNzaW5nX2RlY2xhcmF0aW9ucz15ZXMKZ2xfY3Zfd2Fybl9jX19XbWlz c2luZ19pbmNsdWRlX2RpcnM9eWVzCmdsX2N2X3dhcm5fY19fV21pc3NpbmdfcHJvdG90eXBlcz15 ZXMKZ2xfY3Zfd2Fybl9jX19XbmVzdGVkX2V4dGVybnM9eWVzCmdsX2N2X3dhcm5fY19fV25vX2Zv cm1hdF9ub25saXRlcmFsPXllcwpnbF9jdl93YXJuX2NfX1dub19taXNzaW5nX2ZpZWxkX2luaXRp YWxpemVycz15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fb3ZlcnJpZGVfaW5pdD15ZXMKZ2xfY3Zfd2Fy bl9jX19Xbm9fc2lnbl9jb21wYXJlPXllcwpnbF9jdl93YXJuX2NfX1dub190eXBlX2xpbWl0cz15 ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fdW51c2VkX3BhcmFtZXRlcj15ZXMKZ2xfY3Zfd2Fybl9jX19X bnVsbF9kZXJlZmVyZW5jZT15ZXMKZ2xfY3Zfd2Fybl9jX19Xb2xkX3N0eWxlX2RlZmluaXRpb249 eWVzCmdsX2N2X3dhcm5fY19fV29wZW5tcF9zaW1kPXllcwpnbF9jdl93YXJuX2NfX1dwYWNrZWQ9 eWVzCmdsX2N2X3dhcm5fY19fV3BvaW50ZXJfYXJpdGg9eWVzCmdsX2N2X3dhcm5fY19fV3JlZHVu ZGFudF9kZWNscz15ZXMKZ2xfY3Zfd2Fybl9jX19Xc2hpZnRfb3ZlcmZsb3dfMj15ZXMKZ2xfY3Zf d2Fybl9jX19Xc3RyaWN0X3Byb3RvdHlwZXM9eWVzCmdsX2N2X3dhcm5fY19fV3N1Z2dlc3RfYXR0 cmlidXRlX2Zvcm1hdD15ZXMKZ2xfY3Zfd2Fybl9jX19Xc3VnZ2VzdF9hdHRyaWJ1dGVfbm9yZXR1 cm49eWVzCmdsX2N2X3dhcm5fY19fV3N1Z2dlc3RfZmluYWxfbWV0aG9kcz15ZXMKZ2xfY3Zfd2Fy bl9jX19Xc3VnZ2VzdF9maW5hbF90eXBlcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdHJhbXBvbGluZXM9 eWVzCmdsX2N2X3dhcm5fY19fV3VuaW5pdGlhbGl6ZWQ9eWVzCmdsX2N2X3dhcm5fY19fV3Vua25v d25fcHJhZ21hcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdW51c2VkX21hY3Jvcz15ZXMKZ2xfY3Zfd2Fy bl9jX19XdmFyaWFkaWNfbWFjcm9zPXllcwpnbF9jdl93YXJuX2NfX1d2ZWN0b3Jfb3BlcmF0aW9u X3BlcmZvcm1hbmNlPXllcwpnbF9jdl93YXJuX2NfX1d2bGFfbGFyZ2VyX3RoYW5fNDAzMT15ZXMK Z2xfY3Zfd2Fybl9jX19Xd3JpdGVfc3RyaW5ncz15ZXMKZ2xfY3Zfd2Fybl9jX19mbm9fY29tbW9u PXllcwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMg LS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFMTE9DQT0nJwpBTExPQ0FfSD0nJwpBTFNBX0NGTEFHUz0n JwpBTFNBX0xJQlM9JycKQU1fREVGQVVMVF9WRVJCT1NJVFk9JzAnCkFQUExFX1VOSVZFUlNBTF9C VUlMRD0nJwpBUj0nYXInCkFSRkxBR1M9J2NyJwpBVVRPX0RFUEVORD0neWVzJwpBV0s9JycKQklU U0laRU9GX1BUUkRJRkZfVD0nJwpCSVRTSVpFT0ZfU0lHX0FUT01JQ19UPScnCkJJVFNJWkVPRl9T SVpFX1Q9JycKQklUU0laRU9GX1dDSEFSX1Q9JycKQklUU0laRU9GX1dJTlRfVD0nJwpCTEVTU01B SUxfVEFSR0VUPScnCkJSRVc9JycKQlVJTERfREVUQUlMUz0nJwpCWVRFU1dBUF9IPScnCkNBSVJP X0NGTEFHUz0nJwpDQUlST19MSUJTPScnCkNDPScvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9p NTg2LWxpbnV4LW11c2wtY2MnCkNGTEFHUz0nLWczIC1PMicKQ0ZMQUdTX1NPVU5EPScnCkNIRUNL X1NUUlVDVFM9J2ZhbHNlJwpDTElFTlRSRVM9JycKQ0xJRU5UVz0nJwpDTV9PQko9J2NtLm8nCkNP TV9FUlJMSUI9JycKQ1BQPScvbGliL2NwcCcKQ1BQRkxBR1M9JyAgJwpDUllQVE9MSUI9JycKQ1lH V0lOX09CSj0nJwpDX1NXSVRDSF9NQUNISU5FPScnCkNfU1dJVENIX1NZU1RFTT0nJwpDX1NXSVRD SF9YX1NJVEU9JycKREJVU19DRkxBR1M9JycKREJVU19MSUJTPScnCkRCVVNfT0JKPScnCkRFRlM9 JycKREVTTElCPScnCkRPQ01JU0NfVzMyPScnCkRVTVBJTkc9J3BkdW1wZXInCkRZTkxJQl9PQko9 JycKRUNIT19DPScnCkVDSE9fTj0nLW4nCkVDSE9fVD0nJwpFR1JFUD0nL2Jpbi9ncmVwIC1FJwpF TUFDU1JFUz0nJwpFTUFDU19NQU5JRkVTVD0nJwpFTVVMVElIT1BfSElEREVOPScnCkVNVUxUSUhP UF9WQUxVRT0nJwpFTk9MSU5LX0hJRERFTj0nJwpFTk9MSU5LX1ZBTFVFPScnCkVPVkVSRkxPV19I SURERU49JycKRU9WRVJGTE9XX1ZBTFVFPScnCkVSUk5PX0g9JycKRVhFQ0lORk9fSD0nJwpFWEVF WFQ9JycKRklORF9ERUxFVEU9Jy1kZWxldGUnCkZJUlNURklMRV9PQko9JycKRk9OVENPTkZJR19D RkxBR1M9JycKRk9OVENPTkZJR19MSUJTPScnCkZPTlRfT0JKPScnCkZSRUVUWVBFX0NGTEFHUz0n JwpGUkVFVFlQRV9MSUJTPScnCkdDT05GX0NGTEFHUz0nJwpHQ09ORl9MSUJTPScnCkdFVEFERFJJ TkZPX0FfTElCUz0nJwpHRVRMT0FEQVZHX0xJQlM9JycKR0VUT1BUX0NERUZTX0g9JycKR0VUT1BU X0g9JycKR0ZJTEVOT1RJRllfQ0ZMQUdTPScnCkdGSUxFTk9USUZZX0xJQlM9JycKR0xfQ09ORF9M SUJUT09MPScnCkdMX0dFTkVSQVRFX0FMTE9DQV9IPScnCkdMX0dFTkVSQVRFX0JZVEVTV0FQX0g9 JycKR0xfR0VORVJBVEVfRVJSTk9fSD0nJwpHTF9HRU5FUkFURV9FWEVDSU5GT19IPScnCkdMX0dF TkVSQVRFX0dNUF9HTVBfSD0nJwpHTF9HRU5FUkFURV9JRUVFNzU0X0g9JycKR0xfR0VORVJBVEVf TElNSVRTX0g9JycKR0xfR0VORVJBVEVfTUlOSV9HTVBfSD0nJwpHTF9HRU5FUkFURV9TVERBTElH Tl9IPScnCkdMX0dFTkVSQVRFX1NURERFRl9IPScnCkdMX0dFTkVSQVRFX1NURElOVF9IPScnCkdN QUxMT0NfT0JKPScnCkdNUF9IPScnCkdOVUxJQl9BQ0NFU1M9JycKR05VTElCX0FMSUdORURfQUxM T0M9JycKR05VTElCX0FMUEhBU09SVD0nJwpHTlVMSUJfQVRPTEw9JycKR05VTElCX0NBTExPQ19Q T1NJWD0nJwpHTlVMSUJfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRT0nJwpHTlVMSUJfQ0hESVI9JycK R05VTElCX0NIT1dOPScnCkdOVUxJQl9DTE9TRT0nJwpHTlVMSUJfQ0xPU0VESVI9JycKR05VTElC X0NPUFlfRklMRV9SQU5HRT0nJwpHTlVMSUJfQ1JFQVQ9JycKR05VTElCX0NUSU1FPScnCkdOVUxJ Ql9ESVJGRD0nJwpHTlVMSUJfRFBSSU5URj0nJwpHTlVMSUJfRFVQMj0nJwpHTlVMSUJfRFVQMz0n JwpHTlVMSUJfRFVQPScnCkdOVUxJQl9FTlZJUk9OPScnCkdOVUxJQl9FVUlEQUNDRVNTPScnCkdO VUxJQl9FWEVDTD0nJwpHTlVMSUJfRVhFQ0xFPScnCkdOVUxJQl9FWEVDTFA9JycKR05VTElCX0VY RUNWPScnCkdOVUxJQl9FWEVDVkU9JycKR05VTElCX0VYRUNWUD0nJwpHTlVMSUJfRVhFQ1ZQRT0n JwpHTlVMSUJfRVhQTElDSVRfQlpFUk89JycKR05VTElCX0ZBQ0NFU1NBVD0nJwpHTlVMSUJfRkNI RElSPScnCkdOVUxJQl9GQ0hNT0RBVD0nJwpHTlVMSUJfRkNIT1dOQVQ9JycKR05VTElCX0ZDTE9T RT0nJwpHTlVMSUJfRkNOVEw9JycKR05VTElCX0ZEQVRBU1lOQz0nJwpHTlVMSUJfRkRPUEVOPScn CkdOVUxJQl9GRE9QRU5ESVI9JycKR05VTElCX0ZGTFVTSD0nJwpHTlVMSUJfRkZTTD0nJwpHTlVM SUJfRkZTTEw9JycKR05VTElCX0ZHRVRDPScnCkdOVUxJQl9GR0VUUz0nJwpHTlVMSUJfRk9QRU49 JycKR05VTElCX0ZQUklOVEY9JycKR05VTElCX0ZQUklOVEZfUE9TSVg9JycKR05VTElCX0ZQVVJH RT0nJwpHTlVMSUJfRlBVVEM9JycKR05VTElCX0ZQVVRTPScnCkdOVUxJQl9GUkVBRD0nJwpHTlVM SUJfRlJFRV9QT1NJWD0nJwpHTlVMSUJfRlJFT1BFTj0nJwpHTlVMSUJfRlNDQU5GPScnCkdOVUxJ Ql9GU0VFSz0nJwpHTlVMSUJfRlNFRUtPPScnCkdOVUxJQl9GU1RBVD0nJwpHTlVMSUJfRlNUQVRB VD0nJwpHTlVMSUJfRlNZTkM9JycKR05VTElCX0ZURUxMPScnCkdOVUxJQl9GVEVMTE89JycKR05V TElCX0ZUUlVOQ0FURT0nJwpHTlVMSUJfRlVUSU1FTlM9JycKR05VTElCX0ZXUklURT0nJwpHTlVM SUJfR0VUQz0nJwpHTlVMSUJfR0VUQ0hBUj0nJwpHTlVMSUJfR0VUQ1dEPScnCkdOVUxJQl9HRVRE RUxJTT0nJwpHTlVMSUJfR0VURE9NQUlOTkFNRT0nJwpHTlVMSUJfR0VURFRBQkxFU0laRT0nJwpH TlVMSUJfR0VURU5UUk9QWT0nJwpHTlVMSUJfR0VUR1JPVVBTPScnCkdOVUxJQl9HRVRIT1NUTkFN RT0nJwpHTlVMSUJfR0VUTElORT0nJwpHTlVMSUJfR0VUTE9BREFWRz0nJwpHTlVMSUJfR0VUTE9H SU49JycKR05VTElCX0dFVExPR0lOX1I9JycKR05VTElCX0dFVE9QVF9QT1NJWD0nJwpHTlVMSUJf R0VUUEFHRVNJWkU9JycKR05VTElCX0dFVFBBU1M9JycKR05VTElCX0dFVFJBTkRPTT0nJwpHTlVM SUJfR0VUU1VCT1BUPScnCkdOVUxJQl9HRVRUSU1FT0ZEQVk9JycKR05VTElCX0dFVFVNQVNLPScn CkdOVUxJQl9HRVRVU0VSU0hFTEw9JycKR05VTElCX0dMX1VOSVNURF9IX0dFVE9QVD0nJwpHTlVM SUJfR1JBTlRQVD0nJwpHTlVMSUJfR1JPVVBfTUVNQkVSPScnCkdOVUxJQl9JTUFYQUJTPScnCkdO VUxJQl9JTUFYRElWPScnCkdOVUxJQl9JU0FUVFk9JycKR05VTElCX0xDSE1PRD0nJwpHTlVMSUJf TENIT1dOPScnCkdOVUxJQl9MSU5LPScnCkdOVUxJQl9MSU5LQVQ9JycKR05VTElCX0xPQ0FMVElN RT0nJwpHTlVMSUJfTFNFRUs9JycKR05VTElCX0xTVEFUPScnCkdOVUxJQl9NQUxMT0NfUE9TSVg9 JycKR05VTElCX01CU0NBU0VDTVA9JycKR05VTElCX01CU0NBU0VTVFI9JycKR05VTElCX01CU0NI Uj0nJwpHTlVMSUJfTUJTQ1NQTj0nJwpHTlVMSUJfTUJTTEVOPScnCkdOVUxJQl9NQlNOQ0FTRUNN UD0nJwpHTlVMSUJfTUJTTkxFTj0nJwpHTlVMSUJfTUJTUEJSSz0nJwpHTlVMSUJfTUJTUENBU0VD TVA9JycKR05VTElCX01CU1JDSFI9JycKR05VTElCX01CU1NFUD0nJwpHTlVMSUJfTUJTU1BOPScn CkdOVUxJQl9NQlNTVFI9JycKR05VTElCX01CU1RPS19SPScnCkdOVUxJQl9NQlRPV0M9JycKR05V TElCX01EQV9BQ0NFU1M9JycKR05VTElCX01EQV9DSERJUj0nJwpHTlVMSUJfTURBX0NITU9EPScn CkdOVUxJQl9NREFfQ0xPU0U9JycKR05VTElCX01EQV9DUkVBVD0nJwpHTlVMSUJfTURBX0RVUDI9 JycKR05VTElCX01EQV9EVVA9JycKR05VTElCX01EQV9FQ1ZUPScnCkdOVUxJQl9NREFfRVhFQ0w9 JycKR05VTElCX01EQV9FWEVDTEU9JycKR05VTElCX01EQV9FWEVDTFA9JycKR05VTElCX01EQV9F WEVDVj0nJwpHTlVMSUJfTURBX0VYRUNWRT0nJwpHTlVMSUJfTURBX0VYRUNWUD0nJwpHTlVMSUJf TURBX0VYRUNWUEU9JycKR05VTElCX01EQV9GQ0xPU0VBTEw9JycKR05VTElCX01EQV9GQ1ZUPScn CkdOVUxJQl9NREFfRkRPUEVOPScnCkdOVUxJQl9NREFfRklMRU5PPScnCkdOVUxJQl9NREFfR0NW VD0nJwpHTlVMSUJfTURBX0dFVENXRD0nJwpHTlVMSUJfTURBX0dFVFBJRD0nJwpHTlVMSUJfTURB X0dFVFc9JycKR05VTElCX01EQV9JU0FUVFk9JycKR05VTElCX01EQV9MU0VFSz0nJwpHTlVMSUJf TURBX01FTUNDUFk9JycKR05VTElCX01EQV9NS0RJUj0nJwpHTlVMSUJfTURBX01LVEVNUD0nJwpH TlVMSUJfTURBX09QRU49JycKR05VTElCX01EQV9QVVRFTlY9JycKR05VTElCX01EQV9QVVRXPScn CkdOVUxJQl9NREFfUkVBRD0nJwpHTlVMSUJfTURBX1JNRElSPScnCkdOVUxJQl9NREFfU1RSRFVQ PScnCkdOVUxJQl9NREFfU1dBQj0nJwpHTlVMSUJfTURBX1RFTVBOQU09JycKR05VTElCX01EQV9U WlNFVD0nJwpHTlVMSUJfTURBX1VNQVNLPScnCkdOVUxJQl9NREFfVU5MSU5LPScnCkdOVUxJQl9N REFfV1JJVEU9JycKR05VTElCX01FTUNIUj0nJwpHTlVMSUJfTUVNTUVNPScnCkdOVUxJQl9NRU1Q Q1BZPScnCkdOVUxJQl9NRU1SQ0hSPScnCkdOVUxJQl9NS0RJUj0nJwpHTlVMSUJfTUtESVJBVD0n JwpHTlVMSUJfTUtEVEVNUD0nJwpHTlVMSUJfTUtGSUZPPScnCkdOVUxJQl9NS0ZJRk9BVD0nJwpH TlVMSUJfTUtOT0Q9JycKR05VTElCX01LTk9EQVQ9JycKR05VTElCX01LT1NURU1QPScnCkdOVUxJ Ql9NS09TVEVNUFM9JycKR05VTElCX01LU1RFTVA9JycKR05VTElCX01LU1RFTVBTPScnCkdOVUxJ Ql9NS1RJTUU9JycKR05VTElCX05BTk9TTEVFUD0nJwpHTlVMSUJfTk9OQkxPQ0tJTkc9JycKR05V TElCX09CU1RBQ0tfUFJJTlRGPScnCkdOVUxJQl9PQlNUQUNLX1BSSU5URl9QT1NJWD0nJwpHTlVM SUJfT1BFTj0nJwpHTlVMSUJfT1BFTkFUPScnCkdOVUxJQl9PUEVORElSPScnCkdOVUxJQl9PVkVS UklERVNfU1RSVUNUX1NUQVQ9JycKR05VTElCX09WRVJSSURFU19XSU5UX1Q9JycKR05VTElCX1BD TE9TRT0nJwpHTlVMSUJfUEVSUk9SPScnCkdOVUxJQl9QSVBFMj0nJwpHTlVMSUJfUElQRT0nJwpH TlVMSUJfUE9QRU49JycKR05VTElCX1BPU0lYX01FTUFMSUdOPScnCkdOVUxJQl9QT1NJWF9PUEVO UFQ9JycKR05VTElCX1BSRUFEPScnCkdOVUxJQl9QUklOVEY9JycKR05VTElCX1BSSU5URl9QT1NJ WD0nJwpHTlVMSUJfUFNFTEVDVD0nJwpHTlVMSUJfUFRIUkVBRF9TSUdNQVNLPScnCkdOVUxJQl9Q VFNOQU1FPScnCkdOVUxJQl9QVFNOQU1FX1I9JycKR05VTElCX1BVVEM9JycKR05VTElCX1BVVENI QVI9JycKR05VTElCX1BVVEVOVj0nJwpHTlVMSUJfUFVUUz0nJwpHTlVMSUJfUFdSSVRFPScnCkdO VUxJQl9RU09SVF9SPScnCkdOVUxJQl9SQUlTRT0nJwpHTlVMSUJfUkFORE9NPScnCkdOVUxJQl9S QU5ET01fUj0nJwpHTlVMSUJfUkFXTUVNQ0hSPScnCkdOVUxJQl9SRUFEPScnCkdOVUxJQl9SRUFE RElSPScnCkdOVUxJQl9SRUFETElOSz0nJwpHTlVMSUJfUkVBRExJTktBVD0nJwpHTlVMSUJfUkVB TExPQ0FSUkFZPScnCkdOVUxJQl9SRUFMTE9DX1BPU0lYPScnCkdOVUxJQl9SRUFMUEFUSD0nJwpH TlVMSUJfUkVNT1ZFPScnCkdOVUxJQl9SRU5BTUU9JycKR05VTElCX1JFTkFNRUFUPScnCkdOVUxJ Ql9SRVdJTkRESVI9JycKR05VTElCX1JNRElSPScnCkdOVUxJQl9SUE1BVENIPScnCkdOVUxJQl9T Q0FORElSPScnCkdOVUxJQl9TQ0FORj0nJwpHTlVMSUJfU0VDVVJFX0dFVEVOVj0nJwpHTlVMSUJf U0VMRUNUPScnCkdOVUxJQl9TRVRFTlY9JycKR05VTElCX1NFVEhPU1ROQU1FPScnCkdOVUxJQl9T SUdBQkJSRVZfTlA9JycKR05VTElCX1NJR0FDVElPTj0nJwpHTlVMSUJfU0lHREVTQ1JfTlA9JycK R05VTElCX1NJR05BTF9IX1NJR1BJUEU9JycKR05VTElCX1NJR1BST0NNQVNLPScnCkdOVUxJQl9T TEVFUD0nJwpHTlVMSUJfU05QUklOVEY9JycKR05VTElCX1NQUklOVEZfUE9TSVg9JycKR05VTElC X1NUQVQ9JycKR05VTElCX1NURElPX0hfTk9OQkxPQ0tJTkc9JycKR05VTElCX1NURElPX0hfU0lH UElQRT0nJwpHTlVMSUJfU1RQQ1BZPScnCkdOVUxJQl9TVFBOQ1BZPScnCkdOVUxJQl9TVFJDQVNF U1RSPScnCkdOVUxJQl9TVFJDSFJOVUw9JycKR05VTElCX1NUUkRVUD0nJwpHTlVMSUJfU1RSRVJS T1I9JycKR05VTElCX1NUUkVSUk9STkFNRV9OUD0nJwpHTlVMSUJfU1RSRVJST1JfUj0nJwpHTlVM SUJfU1RSRlRJTUU9JycKR05VTElCX1NUUk5DQVQ9JycKR05VTElCX1NUUk5EVVA9JycKR05VTElC X1NUUk5MRU49JycKR05VTElCX1NUUlBCUks9JycKR05VTElCX1NUUlBUSU1FPScnCkdOVUxJQl9T VFJTRVA9JycKR05VTElCX1NUUlNJR05BTD0nJwpHTlVMSUJfU1RSU1RSPScnCkdOVUxJQl9TVFJU T0Q9JycKR05VTElCX1NUUlRPSU1BWD0nJwpHTlVMSUJfU1RSVE9LX1I9JycKR05VTElCX1NUUlRP TEQ9JycKR05VTElCX1NUUlRPTEw9JycKR05VTElCX1NUUlRPVUxMPScnCkdOVUxJQl9TVFJUT1VN QVg9JycKR05VTElCX1NUUlZFUlNDTVA9JycKR05VTElCX1NZTUxJTks9JycKR05VTElCX1NZTUxJ TktBVD0nJwpHTlVMSUJfU1lTVEVNX1BPU0lYPScnCkdOVUxJQl9USU1FR009JycKR05VTElCX1RJ TUVTUEVDX0dFVD0nJwpHTlVMSUJfVElNRV9SPScnCkdOVUxJQl9USU1FX1JaPScnCkdOVUxJQl9U TVBGSUxFPScnCkdOVUxJQl9UUlVOQ0FURT0nJwpHTlVMSUJfVFRZTkFNRV9SPScnCkdOVUxJQl9U WlNFVD0nJwpHTlVMSUJfVU5JU1REX0hfTk9OQkxPQ0tJTkc9JycKR05VTElCX1VOSVNURF9IX1NJ R1BJUEU9JycKR05VTElCX1VOTElOSz0nJwpHTlVMSUJfVU5MSU5LQVQ9JycKR05VTElCX1VOTE9D S1BUPScnCkdOVUxJQl9VTlNFVEVOVj0nJwpHTlVMSUJfVVNMRUVQPScnCkdOVUxJQl9VVElNRU5T QVQ9JycKR05VTElCX1ZBU1BSSU5URj0nJwpHTlVMSUJfVkRQUklOVEY9JycKR05VTElCX1ZGUFJJ TlRGPScnCkdOVUxJQl9WRlBSSU5URl9QT1NJWD0nJwpHTlVMSUJfVkZTQ0FORj0nJwpHTlVMSUJf VlBSSU5URj0nJwpHTlVMSUJfVlBSSU5URl9QT1NJWD0nJwpHTlVMSUJfVlNDQU5GPScnCkdOVUxJ Ql9WU05QUklOVEY9JycKR05VTElCX1ZTUFJJTlRGX1BPU0lYPScnCkdOVUxJQl9XQVJOX0NGTEFH Uz0nIC1mbm8tY29tbW9uIC1XYWxsIC1XZGF0ZS10aW1lIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9u IC1XZG91YmxlLXByb21vdGlvbiAtV2R1cGxpY2F0ZWQtY29uZCAtV2V4dHJhIC1XZm9ybWF0LXNp Z25lZG5lc3MgLVdpbml0LXNlbGYgLVdpbnZhbGlkLXBjaCAtV2xvZ2ljYWwtb3AgLVdtaXNzaW5n LWRlY2xhcmF0aW9ucyAtV21pc3NpbmctaW5jbHVkZS1kaXJzIC1XbWlzc2luZy1wcm90b3R5cGVz IC1XbmVzdGVkLWV4dGVybnMgLVdudWxsLWRlcmVmZXJlbmNlIC1Xb2xkLXN0eWxlLWRlZmluaXRp b24gLVdvcGVubXAtc2ltZCAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdzdHJpY3QtcHJvdG90 eXBlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0 dXJuIC1Xc3VnZ2VzdC1maW5hbC1tZXRob2RzIC1Xc3VnZ2VzdC1maW5hbC10eXBlcyAtV3RyYW1w b2xpbmVzIC1XdW5pbml0aWFsaXplZCAtV3Vua25vd24tcHJhZ21hcyAtV3ZhcmlhZGljLW1hY3Jv cyAtV3ZlY3Rvci1vcGVyYXRpb24tcGVyZm9ybWFuY2UgLVd3cml0ZS1zdHJpbmdzIC1XYXJyYXkt Ym91bmRzPTIgLVdhdHRyaWJ1dGUtYWxpYXM9MiAtV2Zvcm1hdD0yIC1XZm9ybWF0LXRydW5jYXRp b249MiAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoPTUgLVdzaGlmdC1vdmVyZmxvdz0yIC1XdmxhLWxh cmdlci10aGFuPTQwMzEgLVdyZWR1bmRhbnQtZGVjbHMgLVduby1taXNzaW5nLWZpZWxkLWluaXRp YWxpemVycyAtV25vLW92ZXJyaWRlLWluaXQgLVduby1zaWduLWNvbXBhcmUgLVduby10eXBlLWxp bWl0cyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCcKR05VTElC X1dDVE9NQj0nJwpHTlVMSUJfV1JJVEU9JycKR05VTElCX19FWElUPScnCkdOVVNURVBfQ0ZMQUdT PScnCkdOVV9PQkpDX0NGTEFHUz0nJwpHT0JKRUNUX0NGTEFHUz0nJwpHT0JKRUNUX0xJQlM9JycK R1JFUD0nL2Jpbi9ncmVwJwpHU0VUVElOR1NfQ0ZMQUdTPScnCkdTRVRUSU5HU19MSUJTPScnCkdU S19DRkxBR1M9JycKR1RLX0xJQlM9JycKR1RLX09CSj0nJwpHWklQX1BST0c9Jy9iaW4vZ3ppcCcK SEFSRkJVWlpfQ0ZMQUdTPScnCkhBUkZCVVpaX0xJQlM9JycKSEFWRV9BTElHTkVEX0FMTE9DPScn CkhBVkVfQUxMT0NBX0g9JycKSEFWRV9BTFBIQVNPUlQ9JycKSEFWRV9BVE9MTD0nJwpIQVZFX0M5 OV9TVERJTlRfSD0nJwpIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUU9JycKSEFWRV9DSE9XTj0n JwpIQVZFX0NMT1NFRElSPScnCkhBVkVfQ09QWV9GSUxFX1JBTkdFPScnCkhBVkVfREVDTF9ESVJG RD0nJwpIQVZFX0RFQ0xfRUNWVD0nJwpIQVZFX0RFQ0xfRU5WSVJPTj0nJwpIQVZFX0RFQ0xfRVhF Q1ZQRT0nJwpIQVZFX0RFQ0xfRkNIRElSPScnCkhBVkVfREVDTF9GQ0xPU0VBTEw9JycKSEFWRV9E RUNMX0ZDVlQ9JycKSEFWRV9ERUNMX0ZEQVRBU1lOQz0nJwpIQVZFX0RFQ0xfRkRPUEVORElSPScn CkhBVkVfREVDTF9GUFVSR0U9JycKSEFWRV9ERUNMX0ZTRUVLTz0nJwpIQVZFX0RFQ0xfRlRFTExP PScnCkhBVkVfREVDTF9HQ1ZUPScnCkhBVkVfREVDTF9HRVRERUxJTT0nJwpIQVZFX0RFQ0xfR0VU RE9NQUlOTkFNRT0nJwpIQVZFX0RFQ0xfR0VUTElORT0nJwpIQVZFX0RFQ0xfR0VUTE9BREFWRz0n JwpIQVZFX0RFQ0xfR0VUTE9HSU49JycKSEFWRV9ERUNMX0dFVExPR0lOX1I9JycKSEFWRV9ERUNM X0dFVFBBR0VTSVpFPScnCkhBVkVfREVDTF9HRVRVU0VSU0hFTEw9JycKSEFWRV9ERUNMX0lNQVhB QlM9JycKSEFWRV9ERUNMX0lNQVhESVY9JycKSEFWRV9ERUNMX0lOSVRTVEFURT0nJwpIQVZFX0RF Q0xfTE9DQUxUSU1FX1I9JycKSEFWRV9ERUNMX01FTU1FTT0nJwpIQVZFX0RFQ0xfTUVNUkNIUj0n JwpIQVZFX0RFQ0xfT0JTVEFDS19QUklOVEY9JycKSEFWRV9ERUNMX1NFVEVOVj0nJwpIQVZFX0RF Q0xfU0VUSE9TVE5BTUU9JycKSEFWRV9ERUNMX1NFVFNUQVRFPScnCkhBVkVfREVDTF9TTlBSSU5U Rj0nJwpIQVZFX0RFQ0xfU1RSRFVQPScnCkhBVkVfREVDTF9TVFJFUlJPUl9SPScnCkhBVkVfREVD TF9TVFJORFVQPScnCkhBVkVfREVDTF9TVFJOTEVOPScnCkhBVkVfREVDTF9TVFJTSUdOQUw9JycK SEFWRV9ERUNMX1NUUlRPSU1BWD0nJwpIQVZFX0RFQ0xfU1RSVE9LX1I9JycKSEFWRV9ERUNMX1NU UlRPVU1BWD0nJwpIQVZFX0RFQ0xfVFJVTkNBVEU9JycKSEFWRV9ERUNMX1RUWU5BTUVfUj0nJwpI QVZFX0RFQ0xfVU5TRVRFTlY9JycKSEFWRV9ERUNMX1ZTTlBSSU5URj0nJwpIQVZFX0RJUkVOVF9I PScnCkhBVkVfRFBSSU5URj0nJwpIQVZFX0RVUDM9JycKSEFWRV9FVUlEQUNDRVNTPScnCkhBVkVf RVhFQ1ZQRT0nJwpIQVZFX0VYUExJQ0lUX0JaRVJPPScnCkhBVkVfRkFDQ0VTU0FUPScnCkhBVkVf RkNIRElSPScnCkhBVkVfRkNITU9EQVQ9JycKSEFWRV9GQ0hPV05BVD0nJwpIQVZFX0ZDTlRMPScn CkhBVkVfRkRBVEFTWU5DPScnCkhBVkVfRkRPUEVORElSPScnCkhBVkVfRkZTTD0nJwpIQVZFX0ZG U0xMPScnCkhBVkVfRlNFRUtPPScnCkhBVkVfRlNUQVRBVD0nJwpIQVZFX0ZTWU5DPScnCkhBVkVf RlRFTExPPScnCkhBVkVfRlRSVU5DQVRFPScnCkhBVkVfRlVUSU1FTlM9JycKSEFWRV9HRVREVEFC TEVTSVpFPScnCkhBVkVfR0VURU5UUk9QWT0nJwpIQVZFX0dFVEdST1VQUz0nJwpIQVZFX0dFVEhP U1ROQU1FPScnCkhBVkVfR0VUTE9HSU49JycKSEFWRV9HRVRPUFRfSD0nJwpIQVZFX0dFVFBBR0VT SVpFPScnCkhBVkVfR0VUUEFTUz0nJwpIQVZFX0dFVFJBTkRPTT0nJwpIQVZFX0dFVFNVQk9QVD0n JwpIQVZFX0dFVFRJTUVPRkRBWT0nJwpIQVZFX0dFVFVNQVNLPScnCkhBVkVfR1JBTlRQVD0nJwpI QVZFX0dST1VQX01FTUJFUj0nJwpIQVZFX0lNQVhESVZfVD0nJwpIQVZFX0lOSVRTVEFURT0nJwpI QVZFX0lOVFRZUEVTX0g9JycKSEFWRV9MQ0hNT0Q9JycKSEFWRV9MQ0hPV049JycKSEFWRV9MSUJH TVA9JycKSEFWRV9MSUJTRUNDT01QPScnCkhBVkVfTElOSz0nJwpIQVZFX0xJTktBVD0nJwpIQVZF X0xTVEFUPScnCkhBVkVfTUFYX0FMSUdOX1Q9JycKSEFWRV9NQlNMRU49JycKSEFWRV9NQlRPV0M9 JycKSEFWRV9NRU1QQ1BZPScnCkhBVkVfTUtESVJBVD0nJwpIQVZFX01LRFRFTVA9JycKSEFWRV9N S0ZJRk89JycKSEFWRV9NS0ZJRk9BVD0nJwpIQVZFX01LTk9EPScnCkhBVkVfTUtOT0RBVD0nJwpI QVZFX01LT1NURU1QPScnCkhBVkVfTUtPU1RFTVBTPScnCkhBVkVfTUtTVEVNUD0nJwpIQVZFX01L U1RFTVBTPScnCkhBVkVfTU9EVUxFUz0neWVzJwpIQVZFX05BTk9TTEVFUD0nJwpIQVZFX05BVElW RV9DT01QPSdubycKSEFWRV9PUEVOQVQ9JycKSEFWRV9PUEVORElSPScnCkhBVkVfT1NfSD0nJwpI QVZFX1BDTE9TRT0nJwpIQVZFX1BEVU1QRVI9J3llcycKSEFWRV9QSVBFMj0nJwpIQVZFX1BJUEU9 JycKSEFWRV9QT1BFTj0nJwpIQVZFX1BPU0lYX01FTUFMSUdOPScnCkhBVkVfUE9TSVhfT1BFTlBU PScnCkhBVkVfUE9TSVhfU0lHTkFMQkxPQ0tJTkc9JycKSEFWRV9QUkVBRD0nJwpIQVZFX1BTRUxF Q1Q9JycKSEFWRV9QVEhSRUFEX1NJR01BU0s9JycKSEFWRV9QVFNOQU1FPScnCkhBVkVfUFRTTkFN RV9SPScnCkhBVkVfUFdSSVRFPScnCkhBVkVfUVNPUlRfUj0nJwpIQVZFX1JBSVNFPScnCkhBVkVf UkFORE9NPScnCkhBVkVfUkFORE9NX0g9JycKSEFWRV9SQU5ET01fUj0nJwpIQVZFX1JBV01FTUNI Uj0nJwpIQVZFX1JFQURESVI9JycKSEFWRV9SRUFETElOSz0nJwpIQVZFX1JFQURMSU5LQVQ9JycK SEFWRV9SRUFMTE9DQVJSQVk9JycKSEFWRV9SRUFMUEFUSD0nJwpIQVZFX1JFTkFNRUFUPScnCkhB VkVfUkVXSU5ERElSPScnCkhBVkVfUlBNQVRDSD0nJwpIQVZFX1NDQU5ESVI9JycKSEFWRV9TRUND T01QPScnCkhBVkVfU0VDVVJFX0dFVEVOVj0nJwpIQVZFX1NFVEVOVj0nJwpIQVZFX1NFVEhPU1RO QU1FPScnCkhBVkVfU0VUU1RBVEU9JycKSEFWRV9TSUdBQkJSRVZfTlA9JycKSEFWRV9TSUdBQ1RJ T049JycKSEFWRV9TSUdERVNDUl9OUD0nJwpIQVZFX1NJR0hBTkRMRVJfVD0nJwpIQVZFX1NJR0lO Rk9fVD0nJwpIQVZFX1NJR05FRF9TSUdfQVRPTUlDX1Q9JycKSEFWRV9TSUdORURfV0NIQVJfVD0n JwpIQVZFX1NJR05FRF9XSU5UX1Q9JycKSEFWRV9TSUdTRVRfVD0nJwpIQVZFX1NMRUVQPScnCkhB VkVfU1RESU5UX0g9JycKSEFWRV9TVFBDUFk9JycKSEFWRV9TVFBOQ1BZPScnCkhBVkVfU1RSQ0FT RVNUUj0nJwpIQVZFX1NUUkNIUk5VTD0nJwpIQVZFX1NUUkVSUk9STkFNRV9OUD0nJwpIQVZFX1NU UlBCUks9JycKSEFWRV9TVFJQVElNRT0nJwpIQVZFX1NUUlNFUD0nJwpIQVZFX1NUUlRPRD0nJwpI QVZFX1NUUlRPTEQ9JycKSEFWRV9TVFJUT0xMPScnCkhBVkVfU1RSVE9VTEw9JycKSEFWRV9TVFJV Q1RfUkFORE9NX0RBVEE9JycKSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTj0nJwpI QVZFX1NUUlVDVF9USU1FVkFMPScnCkhBVkVfU1RSVkVSU0NNUD0nJwpIQVZFX1NZTUxJTks9JycK SEFWRV9TWU1MSU5LQVQ9JycKSEFWRV9TWVNfQklUWVBFU19IPScnCkhBVkVfU1lTX0NERUZTX0g9 JycKSEFWRV9TWVNfSU5UVFlQRVNfSD0nJwpIQVZFX1NZU19MT0FEQVZHX0g9JycKSEFWRV9TWVNf UEFSQU1fSD0nJwpIQVZFX1NZU19SQU5ET01fSD0nJwpIQVZFX1NZU19TRUxFQ1RfSD0nJwpIQVZF X1NZU19USU1FX0g9JycKSEFWRV9TWVNfVFlQRVNfSD0nJwpIQVZFX1RJTUVHTT0nJwpIQVZFX1RJ TUVTUEVDX0dFVD0nJwpIQVZFX1RJTUVaT05FX1Q9JycKSEFWRV9UWVBFX1ZPTEFUSUxFX1NJR19B VE9NSUNfVD0nJwpIQVZFX1VOSVNURF9IPScnCkhBVkVfVU5MSU5LQVQ9JycKSEFWRV9VTkxPQ0tQ VD0nJwpIQVZFX1VTTEVFUD0nJwpIQVZFX1VUSU1FTlNBVD0nJwpIQVZFX1ZBU1BSSU5URj0nJwpI QVZFX1ZEUFJJTlRGPScnCkhBVkVfV0NIQVJfSD0nJwpIQVZFX1dDSEFSX1Q9JycKSEFWRV9XSU5T T0NLMl9IPScnCkhBVkVfWFNFUlZFUj0nJwpIQVZFX19FWElUPScnCkhZQlJJRF9NQUxMT0M9JycK SUVFRTc1NF9IPScnCklNQUdFTUFHSUNLX0NGTEFHUz0nJwpJTUFHRU1BR0lDS19MSUJTPScnCklO Q0xVREVfTkVYVD0nJwpJTkNMVURFX05FWFRfQVNfRklSU1RfRElSRUNUSVZFPScnCklOU1RBTExf QVJDSF9JTkRFUF9FWFRSQT0naW5zdGFsbC1ldGMnCklOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAt bSA2NDQnCklOU1RBTExfSU5GTz0nL3Vzci9iaW4vaW5zdGFsbC1pbmZvJwpJTlNUQUxMX1BST0dS QU09JyR7SU5TVEFMTH0nCklOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwpJTlQzMl9NQVhfTFRf SU5UTUFYX01BWD0nJwpJTlQ2NF9NQVhfRVFfTE9OR19NQVg9JycKSlNPTl9DRkxBR1M9JycKSlNP Tl9MSUJTPScnCkpTT05fT0JKPScnCktRVUVVRV9DRkxBR1M9JycKS1FVRVVFX0xJQlM9JycKS1JC NExJQj0nJwpLUkI1TElCPScnCkxDTVMyX0NGTEFHUz0nJwpMQ01TMl9MSUJTPScnCkxERkxBR1M9 Jy1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWInCkxEX1NXSVRD SF9TWVNURU09JycKTERfU1dJVENIX1NZU1RFTV9URU1BQ1M9JycKTERfU1dJVENIX1hfU0lURT0n JwpMRF9TV0lUQ0hfWF9TSVRFX1JQQVRIPScnCkxJQkdDQ0pJVF9MSUI9JycKTElCR0lGPScnCkxJ QkdNUD0nJwpMSUJHTlVUTFNfQ0ZMQUdTPScnCkxJQkdOVVRMU19MSUJTPScnCkxJQkdOVV9MSUJE RVBTPScnCkxJQkdOVV9MVExJQkRFUFM9JycKTElCR1BNPScnCkxJQkhFU0lPRD0nJwpMSUJJTlRM PScnCkxJQkpQRUc9JycKTElCTU9EVUxFUz0nLWxkbCcKTElCT0JKUz0nJwpMSUJPVEZfQ0ZMQUdT PScnCkxJQk9URl9MSUJTPScnCkxJQlBORz0nJwpMSUJSRVNPTFY9JycKTElCUz0nLWxnY2NqaXQg ICcKTElCU0VDQ09NUF9DRkxBR1M9JycKTElCU0VDQ09NUF9MSUJTPScnCkxJQlNFTElOVVhfTElC Uz0nJwpMSUJTT1VORD0nJwpMSUJTWVNURU1EX0NGTEFHUz0nJwpMSUJTWVNURU1EX0xJQlM9JycK TElCU19FQ0xJRU5UPScnCkxJQlNfR05VU1RFUD0nJwpMSUJTX01BSUw9JycKTElCU19TWVNURU09 JycKTElCU19URVJNQ0FQPScnCkxJQlRJRkY9JycKTElCWE1FTlU9JycKTElCWE1MMl9DRkxBR1M9 JycKTElCWE1MMl9MSUJTPScnCkxJQlhNVT0nJwpMSUJYUE09JycKTElCWFNNPScnCkxJQlhUUjY9 JycKTElCWFRfT1RIRVI9JycKTElCWF9PVEhFUj0nJwpMSUJaPSctbHonCkxJQl9BQ0w9JycKTElC X0NMT0NLX0dFVFRJTUU9JycKTElCX0VBQ0NFU1M9JycKTElCX0VYRUNJTkZPPScnCkxJQl9HRVRS QU5ET009JycKTElCX01BVEg9JycKTElCX1BUSFJFQUQ9JycKTElCX1BUSFJFQURfU0lHTUFTSz0n JwpMSUJfVElNRVJfVElNRT0nJwpMSUJfV1NPQ0szMj0nJwpMSU1JVFNfSD0nJwpMTl9TX0ZJTEVP TkxZPSdsbiAtcycKTFRMSUJHTVA9JycKTFRMSUJJTlRMPScnCkxUTElCT0JKUz0nJwpNMTdOX0ZM VF9DRkxBR1M9JycKTTE3Tl9GTFRfTElCUz0nJwpNQUtFSU5GTz0nbWFrZWluZm8nCk1BS0VfUFJP Rz0nJwpNS0RJUl9QPScnCk1PRFVMRVNfT0JKPSdlbWFjcy1tb2R1bGUubycKTU9EVUxFU19TRUNP TkRBUllfU1VGRklYPScnCk1PRFVMRVNfU1VGRklYPScuc28nCk5FWFRfQVNfRklSU1RfRElSRUNU SVZFX0RJUkVOVF9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0VSUk5PX0g9JycKTkVYVF9B U19GSVJTVF9ESVJFQ1RJVkVfRkNOVExfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9HRVRP UFRfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9JTlRUWVBFU19IPScnCk5FWFRfQVNfRklS U1RfRElSRUNUSVZFX0xJTUlUU19IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NJR05BTF9I PScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NURERFRl9IPScnCk5FWFRfQVNfRklSU1RfRElS RUNUSVZFX1NURElOVF9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NURElPX0g9JycKTkVY VF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RETElCX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVf U1RSSU5HX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU1lTX1JBTkRPTV9IPScnCk5FWFRf QVNfRklSU1RfRElSRUNUSVZFX1NZU19TRUxFQ1RfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElW RV9TWVNfU1RBVF9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NZU19USU1FX0g9JycKTkVY VF9BU19GSVJTVF9ESVJFQ1RJVkVfU1lTX1RZUEVTX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJ VkVfVElNRV9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1VOSVNURF9IPScnCk5FWFRfRElS RU5UX0g9JycKTkVYVF9FUlJOT19IPScnCk5FWFRfRkNOVExfSD0nJwpORVhUX0dFVE9QVF9IPScn Ck5FWFRfSU5UVFlQRVNfSD0nJwpORVhUX0xJTUlUU19IPScnCk5FWFRfU0lHTkFMX0g9JycKTkVY VF9TVERERUZfSD0nJwpORVhUX1NURElOVF9IPScnCk5FWFRfU1RESU9fSD0nJwpORVhUX1NURExJ Ql9IPScnCk5FWFRfU1RSSU5HX0g9JycKTkVYVF9TWVNfUkFORE9NX0g9JycKTkVYVF9TWVNfU0VM RUNUX0g9JycKTkVYVF9TWVNfU1RBVF9IPScnCk5FWFRfU1lTX1RJTUVfSD0nJwpORVhUX1NZU19U WVBFU19IPScnCk5FWFRfVElNRV9IPScnCk5FWFRfVU5JU1REX0g9JycKTk9USUZZX0NGTEFHUz0n JwpOT1RJRllfTElCUz0nJwpOT1RJRllfT0JKPScnCk5TX09CSj0nJwpOU19PQkpDX09CSj0nJwpO VERJUj0nJwpOVExJQj0nJwpPQkpDPScnCk9CSkNGTEFHUz0nJwpPQkpFWFQ9J28nCk9USEVSX0ZJ TEVTPScnClBBQ0tBR0VfQlVHUkVQT1JUPSdidWctZ251LWVtYWNzQGdudS5vcmcnClBBQ0tBR0Vf TkFNRT0nR05VIEVtYWNzJwpQQUNLQUdFX1NUUklORz0nR05VIEVtYWNzIDI4LjAuNTAnClBBQ0tB R0VfVEFSTkFNRT0nZW1hY3MnClBBQ0tBR0VfVVJMPSdodHRwczovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2VtYWNzLycKUEFDS0FHRV9WRVJTSU9OPScyOC4wLjUwJwpQQVRIX1NFUEFSQVRPUj0nOicK UEFYQ1RMPScnClBBWENUTF9kdW1wZWQ9JycKUEFYQ1RMX25vdGR1bXBlZD0nJwpQS0dfQ09ORklH PScvdXNyL2Jpbi9wa2ctY29uZmlnJwpQS0dfQ09ORklHX0xJQkRJUj0nJwpQS0dfQ09ORklHX1BB VEg9JycKUE5HX0NGTEFHUz0nJwpQTkdfTElCUz0nJwpQT1NUX0FMTE9DX09CSj0nJwpQUkFHTUFf Q09MVU1OUz0nJwpQUkFHTUFfU1lTVEVNX0hFQURFUj0nJwpQUkVfQUxMT0NfT0JKPScnClBSSVBU Ul9QUkVGSVg9JycKUFJPRklMSU5HX0NGTEFHUz0nJwpQVEhSRUFEX0hfREVGSU5FU19TVFJVQ1Rf VElNRVNQRUM9JycKUFRSRElGRl9UX1NVRkZJWD0nJwpSQUxMT0NfT0JKPScnClJBTkxJQj0ncmFu bGliJwpSRVBMQUNFX0FDQ0VTUz0nJwpSRVBMQUNFX0FMSUdORURfQUxMT0M9JycKUkVQTEFDRV9D QUxMT0M9JycKUkVQTEFDRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FPScnClJFUExBQ0VfQ0hPV049 JycKUkVQTEFDRV9DTE9TRT0nJwpSRVBMQUNFX0NMT1NFRElSPScnClJFUExBQ0VfQ1JFQVQ9JycK UkVQTEFDRV9DVElNRT0nJwpSRVBMQUNFX0RJUkZEPScnClJFUExBQ0VfRFBSSU5URj0nJwpSRVBM QUNFX0RVUDI9JycKUkVQTEFDRV9EVVA9JycKUkVQTEFDRV9FWEVDTD0nJwpSRVBMQUNFX0VYRUNM RT0nJwpSRVBMQUNFX0VYRUNMUD0nJwpSRVBMQUNFX0VYRUNWPScnClJFUExBQ0VfRVhFQ1ZFPScn ClJFUExBQ0VfRVhFQ1ZQPScnClJFUExBQ0VfRVhFQ1ZQRT0nJwpSRVBMQUNFX0ZBQ0NFU1NBVD0n JwpSRVBMQUNFX0ZDSE1PREFUPScnClJFUExBQ0VfRkNIT1dOQVQ9JycKUkVQTEFDRV9GQ0xPU0U9 JycKUkVQTEFDRV9GQ05UTD0nJwpSRVBMQUNFX0ZET1BFTj0nJwpSRVBMQUNFX0ZET1BFTkRJUj0n JwpSRVBMQUNFX0ZGTFVTSD0nJwpSRVBMQUNFX0ZGU0xMPScnClJFUExBQ0VfRk9QRU49JycKUkVQ TEFDRV9GUFJJTlRGPScnClJFUExBQ0VfRlBVUkdFPScnClJFUExBQ0VfRlJFRT0nJwpSRVBMQUNF X0ZSRU9QRU49JycKUkVQTEFDRV9GU0VFSz0nJwpSRVBMQUNFX0ZTRUVLTz0nJwpSRVBMQUNFX0ZT VEFUPScnClJFUExBQ0VfRlNUQVRBVD0nJwpSRVBMQUNFX0ZURUxMPScnClJFUExBQ0VfRlRFTExP PScnClJFUExBQ0VfRlRSVU5DQVRFPScnClJFUExBQ0VfRlVUSU1FTlM9JycKUkVQTEFDRV9HRVRD V0Q9JycKUkVQTEFDRV9HRVRERUxJTT0nJwpSRVBMQUNFX0dFVERPTUFJTk5BTUU9JycKUkVQTEFD RV9HRVREVEFCTEVTSVpFPScnClJFUExBQ0VfR0VUR1JPVVBTPScnClJFUExBQ0VfR0VUTElORT0n JwpSRVBMQUNFX0dFVExPR0lOX1I9JycKUkVQTEFDRV9HRVRQQUdFU0laRT0nJwpSRVBMQUNFX0dF VFBBU1M9JycKUkVQTEFDRV9HRVRSQU5ET009JycKUkVQTEFDRV9HRVRUSU1FT0ZEQVk9JycKUkVQ TEFDRV9HTVRJTUU9JycKUkVQTEFDRV9JTklUU1RBVEU9JycKUkVQTEFDRV9JU0FUVFk9JycKUkVQ TEFDRV9MQ0hPV049JycKUkVQTEFDRV9MSU5LPScnClJFUExBQ0VfTElOS0FUPScnClJFUExBQ0Vf TE9DQUxUSU1FPScnClJFUExBQ0VfTE9DQUxUSU1FX1I9JycKUkVQTEFDRV9MU0VFSz0nJwpSRVBM QUNFX0xTVEFUPScnClJFUExBQ0VfTUFMTE9DPScnClJFUExBQ0VfTUJUT1dDPScnClJFUExBQ0Vf TUVNQ0hSPScnClJFUExBQ0VfTUVNTUVNPScnClJFUExBQ0VfTUtESVI9JycKUkVQTEFDRV9NS0ZJ Rk89JycKUkVQTEFDRV9NS0ZJRk9BVD0nJwpSRVBMQUNFX01LTk9EPScnClJFUExBQ0VfTUtOT0RB VD0nJwpSRVBMQUNFX01LU1RFTVA9JycKUkVQTEFDRV9NS1RJTUU9JycKUkVQTEFDRV9OQU5PU0xF RVA9JycKUkVQTEFDRV9OVUxMPScnClJFUExBQ0VfT0JTVEFDS19QUklOVEY9JycKUkVQTEFDRV9P UEVOPScnClJFUExBQ0VfT1BFTkFUPScnClJFUExBQ0VfT1BFTkRJUj0nJwpSRVBMQUNFX1BFUlJP Uj0nJwpSRVBMQUNFX1BPUEVOPScnClJFUExBQ0VfUE9TSVhfTUVNQUxJR049JycKUkVQTEFDRV9Q UkVBRD0nJwpSRVBMQUNFX1BSSU5URj0nJwpSRVBMQUNFX1BTRUxFQ1Q9JycKUkVQTEFDRV9QVEhS RUFEX1NJR01BU0s9JycKUkVQTEFDRV9QVFNOQU1FPScnClJFUExBQ0VfUFRTTkFNRV9SPScnClJF UExBQ0VfUFVURU5WPScnClJFUExBQ0VfUFdSSVRFPScnClJFUExBQ0VfUVNPUlRfUj0nJwpSRVBM QUNFX1JBSVNFPScnClJFUExBQ0VfUkFORE9NPScnClJFUExBQ0VfUkFORE9NX1I9JycKUkVQTEFD RV9SRUFEPScnClJFUExBQ0VfUkVBRExJTks9JycKUkVQTEFDRV9SRUFETElOS0FUPScnClJFUExB Q0VfUkVBTExPQz0nJwpSRVBMQUNFX1JFQUxQQVRIPScnClJFUExBQ0VfUkVNT1ZFPScnClJFUExB Q0VfUkVOQU1FPScnClJFUExBQ0VfUkVOQU1FQVQ9JycKUkVQTEFDRV9STURJUj0nJwpSRVBMQUNF X1NFTEVDVD0nJwpSRVBMQUNFX1NFVEVOVj0nJwpSRVBMQUNFX1NFVFNUQVRFPScnClJFUExBQ0Vf U0xFRVA9JycKUkVQTEFDRV9TTlBSSU5URj0nJwpSRVBMQUNFX1NQUklOVEY9JycKUkVQTEFDRV9T VEFUPScnClJFUExBQ0VfU1RESU9fUkVBRF9GVU5DUz0nJwpSRVBMQUNFX1NURElPX1dSSVRFX0ZV TkNTPScnClJFUExBQ0VfU1RQTkNQWT0nJwpSRVBMQUNFX1NUUkNBU0VTVFI9JycKUkVQTEFDRV9T VFJDSFJOVUw9JycKUkVQTEFDRV9TVFJEVVA9JycKUkVQTEFDRV9TVFJFUlJPUj0nJwpSRVBMQUNF X1NUUkVSUk9STkFNRV9OUD0nJwpSRVBMQUNFX1NUUkVSUk9SX1I9JycKUkVQTEFDRV9TVFJGVElN RT0nJwpSRVBMQUNFX1NUUk5DQVQ9JycKUkVQTEFDRV9TVFJORFVQPScnClJFUExBQ0VfU1RSTkxF Tj0nJwpSRVBMQUNFX1NUUlNJR05BTD0nJwpSRVBMQUNFX1NUUlNUUj0nJwpSRVBMQUNFX1NUUlRP RD0nJwpSRVBMQUNFX1NUUlRPSU1BWD0nJwpSRVBMQUNFX1NUUlRPS19SPScnClJFUExBQ0VfU1RS VE9MRD0nJwpSRVBMQUNFX1NUUlRPVU1BWD0nJwpSRVBMQUNFX1NUUlVDVF9USU1FVkFMPScnClJF UExBQ0VfU1lNTElOSz0nJwpSRVBMQUNFX1NZTUxJTktBVD0nJwpSRVBMQUNFX1RJTUVHTT0nJwpS RVBMQUNFX1RNUEZJTEU9JycKUkVQTEFDRV9UUlVOQ0FURT0nJwpSRVBMQUNFX1RUWU5BTUVfUj0n JwpSRVBMQUNFX1RaU0VUPScnClJFUExBQ0VfVU5MSU5LPScnClJFUExBQ0VfVU5MSU5LQVQ9JycK UkVQTEFDRV9VTlNFVEVOVj0nJwpSRVBMQUNFX1VTTEVFUD0nJwpSRVBMQUNFX1VUSU1FTlNBVD0n JwpSRVBMQUNFX1ZBU1BSSU5URj0nJwpSRVBMQUNFX1ZEUFJJTlRGPScnClJFUExBQ0VfVkZQUklO VEY9JycKUkVQTEFDRV9WUFJJTlRGPScnClJFUExBQ0VfVlNOUFJJTlRGPScnClJFUExBQ0VfVlNQ UklOVEY9JycKUkVQTEFDRV9XQ1RPTUI9JycKUkVQTEFDRV9XUklURT0nJwpSU1ZHX0NGTEFHUz0n JwpSU1ZHX0xJQlM9JycKU0VQQ0hBUj0nJwpTRVRGQVRUUj0nJwpTRVRUSU5HU19DRkxBR1M9JycK U0VUVElOR1NfTElCUz0nJwpTSEVMTD0nL2Jpbi9iYXNoJwpTSUdfQVRPTUlDX1RfU1VGRklYPScn ClNJWkVfVF9TVUZGSVg9JycKU1REQUxJR05fSD0nJwpTVERERUZfSD0nJwpTVERJTlRfSD0nJwpT VUJESVJfTUFLRUZJTEVTX0lOPScnClNZU1RFTV9UWVBFPSdnbnUvbGludXgnClNZU19USU1FX0hf REVGSU5FU19TVFJVQ1RfVElNRVNQRUM9JycKVEVSTUNBUF9PQko9JycKVElNRV9IX0RFRklORVNf U1RSVUNUX1RJTUVTUEVDPScnClRJTUVfSF9ERUZJTkVTX1RJTUVfVVRDPScnClRPT0xLSVRfTElC Vz0nJwpVSU5UMzJfTUFYX0xUX1VJTlRNQVhfTUFYPScnClVJTlQ2NF9NQVhfRVFfVUxPTkdfTUFY PScnClVOREVGSU5FX1NUUlRPS19SPScnClVORVhFQ19PQko9JycKVU5JU1REX0hfREVGSU5FU19T VFJVQ1RfVElNRVNQRUM9JycKVU5JU1REX0hfSEFWRV9TWVNfUkFORE9NX0g9JycKVU5JU1REX0hf SEFWRV9XSU5TT0NLMl9IPScnClVOSVNURF9IX0hBVkVfV0lOU09DSzJfSF9BTkRfVVNFX1NPQ0tF VFM9JycKVVNFX0FDTD0nJwpWTUxJTUlUX09CSj0nJwpXMzJfTElCUz0nJwpXMzJfT0JKPScnClcz Ml9SRVNfTElOSz0nJwpXQVJOX0NGTEFHUz0nIC1mbm8tY29tbW9uIC1XYWxsIC1XZGF0ZS10aW1l IC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uIC1XZG91YmxlLXByb21vdGlvbiAtV2R1cGxpY2F0ZWQt Y29uZCAtV2V4dHJhIC1XZm9ybWF0LXNpZ25lZG5lc3MgLVdpbml0LXNlbGYgLVdpbnZhbGlkLXBj aCAtV2xvZ2ljYWwtb3AgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctaW5jbHVkZS1k aXJzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbmVzdGVkLWV4dGVybnMgLVdudWxsLWRlcmVmZXJl bmNlIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24gLVdvcGVubXAtc2ltZCAtV3BhY2tlZCAtV3BvaW50 ZXItYXJpdGggLVdzdHJpY3QtcHJvdG90eXBlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCAt V3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuIC1Xc3VnZ2VzdC1maW5hbC1tZXRob2RzIC1Xc3Vn Z2VzdC1maW5hbC10eXBlcyAtV3RyYW1wb2xpbmVzIC1XdW5pbml0aWFsaXplZCAtV3Vua25vd24t cHJhZ21hcyAtV3VudXNlZC1tYWNyb3MgLVd2YXJpYWRpYy1tYWNyb3MgLVd2ZWN0b3Itb3BlcmF0 aW9uLXBlcmZvcm1hbmNlIC1Xd3JpdGUtc3RyaW5ncyAtV2FycmF5LWJvdW5kcz0yIC1XYXR0cmli dXRlLWFsaWFzPTIgLVdmb3JtYXQ9MiAtV2Zvcm1hdC10cnVuY2F0aW9uPTIgLVdpbXBsaWNpdC1m YWxsdGhyb3VnaD01IC1Xc2hpZnQtb3ZlcmZsb3c9MiAtV3ZsYS1sYXJnZXItdGhhbj00MDMxIC1X cmVkdW5kYW50LWRlY2xzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1vdmVy cmlkZS1pbml0IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdHlwZS1saW1pdHMgLVduby11bnVzZWQt cGFyYW1ldGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwnCldDSEFSX1RfU1VGRklYPScnCldFQktJ VF9DRkxBR1M9JycKV0VCS0lUX0xJQlM9JycKV0VSUk9SX0NGTEFHUz0nJwpXSURHRVRfT0JKPScn CldJTkRPV1NfNjRfQklUX09GRl9UPScnCldJTkRPV1NfNjRfQklUX1NUX1NJWkU9JycKV0lORE9X U19TVEFUX0lOT0RFUz0nJwpXSU5ET1dTX1NUQVRfVElNRVNQRUM9JycKV0lORE9XX1NZU1RFTV9P Qko9JycKV0lORFJFUz0nJwpXSU5UX1RfU1VGRklYPScnClhBUkdTX0xJTUlUPScnClhDQl9MSUJT PScnClhDUlVOPScnClhEQkVfQ0ZMQUdTPScnClhEQkVfTElCUz0nJwpYRklYRVNfQ0ZMQUdTPScn ClhGSVhFU19MSUJTPScnClhGVF9DRkxBR1M9JycKWEZUX0xJQlM9JycKWEdTRUxPQko9JycKWElO RVJBTUFfQ0ZMQUdTPScnClhJTkVSQU1BX0xJQlM9JycKWE1FTlVfT0JKPScnClhNS01GPScnClhP Qko9JycKWFJBTkRSX0NGTEFHUz0nJwpYUkFORFJfTElCUz0nJwpYUkVOREVSX0xJQlM9JycKWFdJ REdFVFNfT0JKPScnClhfVE9PTEtJVF9UWVBFPSdub25lJwphY19jdF9DQz0nJwphY19jdF9PQkpD PScnCmFyY2hsaWJkaXI9JyR7bGliZXhlY2Rpcn0vZW1hY3MvJHt2ZXJzaW9ufS8ke2NvbmZpZ3Vy YXRpb259JwpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYml0bWFwZGlyPScnCmJ1aWxkPSdp NTg2LXBjLWxpbnV4LW11c2wnCmJ1aWxkX2FsaWFzPSdpNTg2LWxpbnV4LW11c2wnCmJ1aWxkX2Nw dT0naTU4NicKYnVpbGRfb3M9J2xpbnV4LW11c2wnCmJ1aWxkX3ZlbmRvcj0ncGMnCmNhY2hlX2Zp bGU9Jy9kZXYvbnVsbCcKY2Fub25pY2FsPSd4ODYtZ251LWxpbnV4LWdudScKY29tbWFfc3BhY2Vf dmVyc2lvbj0nJwpjb21tYV92ZXJzaW9uPScnCmNvbmZpZ3VyYXRpb249J3g4Ni1nbnUtbGludXgn CmNvcHlyaWdodD0nJwpkYXRhZGlyPScke2RhdGFyb290ZGlyfScKZGF0YXJvb3RkaXI9JyR7cHJl Zml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9 JwpkdmlkaXI9JyR7ZG9jZGlyfScKZW1hY3NfbWFqb3JfdmVyc2lvbj0nMjgnCmV0Y2Rpcj0nJHtk YXRhZGlyfS9lbWFjcy8ke3ZlcnNpb259L2V0YycKZXRjZG9jZGlyPScke2RhdGFkaXJ9L2VtYWNz LyR7dmVyc2lvbn0vZXRjJwpleGVjX3ByZWZpeD0nTk9ORScKZ2FtZWRpcj0nJHtsb2NhbHN0YXRl ZGlyfS9nYW1lcy9lbWFjcycKZ2FtZWdyb3VwPScnCmdhbWV1c2VyPScnCmdsX0dOVUxJQl9FTkFC TEVEXzAzZTBhYWFkNGNiODljYTc1NzY1M2JkMzY3YTZjY2I3PScnCmdsX0dOVUxJQl9FTkFCTEVE XzI2MDk0MWMwZTVkYzY3ZWM5ZTg3ZDFmYjMyMWMzMDBiPScnCmdsX0dOVUxJQl9FTkFCTEVEXzUy NjQyOTRhYTBhNTU1NzU0MWI1M2M4Yzc0MWY3ZjMxPScnCmdsX0dOVUxJQl9FTkFCTEVEXzYwOTll OTczN2Y3NTdkYjM2YzQ3ZmE5ZDlmMDJlODhjPScnCmdsX0dOVUxJQl9FTkFCTEVEXzY4MmU2MDk2 MDRjY2FhYzZiZTM4MmU0ZWUzYTRlYWVjPScnCmdsX0dOVUxJQl9FTkFCTEVEXzkyNTY3N2YwMzQz ZGU2NGI4OWE5ZjBjNzkwYjQxMDRjPScnCmdsX0dOVUxJQl9FTkFCTEVEX2E5Nzg2ODUwZTk5OWFl NjVhODM2YTYwNDFlOGU1ZWQxPScnCmdsX0dOVUxJQl9FTkFCTEVEX2JlNDUzY2VjNWVlY2Y1NzMx YTI3NGYyZGU3ZjJkYjM2PScnCmdsX0dOVUxJQl9FTkFCTEVEX2Nsb2V4ZWM9JycKZ2xfR05VTElC X0VOQUJMRURfZGlyZmQ9JycKZ2xfR05VTElCX0VOQUJMRURfZHluYXJyYXk9JycKZ2xfR05VTElC X0VOQUJMRURfZXVpZGFjY2Vzcz0nJwpnbF9HTlVMSUJfRU5BQkxFRF9nZXRkdGFibGVzaXplPScn CmdsX0dOVUxJQl9FTkFCTEVEX2dldGdyb3Vwcz0nJwpnbF9HTlVMSUJfRU5BQkxFRF9pZHg9JycK Z2xfR05VTElCX0VOQUJMRURfbGNobW9kPScnCmdsX0dOVUxJQl9FTkFCTEVEX29wZW49JycKZ2xf R05VTElCX0VOQUJMRURfcmF3bWVtY2hyPScnCmdsX0dOVUxJQl9FTkFCTEVEX3NjcmF0Y2hfYnVm ZmVyPScnCmdsX0dOVUxJQl9FTkFCTEVEX3N0cnRvbGw9JycKZ2xfR05VTElCX0VOQUJMRURfdXRp bWVucz0nJwpnbF9MSUJPQkpTPScnCmdsX0xUTElCT0JKUz0nJwpnbHRlc3RzX0xJQk9CSlM9JycK Z2x0ZXN0c19MVExJQk9CSlM9JycKZ2x0ZXN0c19XSVRORVNTPScnCmhvc3Q9J3g4Ni1nbnUtbGlu dXgtZ251Jwpob3N0X2FsaWFzPSd4ODYtZ251LWxpbnV4Jwpob3N0X2NwdT0neDg2Jwpob3N0X29z PSdsaW51eC1nbnUnCmhvc3RfdmVuZG9yPSdnbnUnCmh0bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVk ZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCmxp YmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwpsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJl eGVjJwpsaWJsb2NrZmlsZT0nJwpsaXNwZGlyPScke2RhdGFkaXJ9L2VtYWNzLyR7dmVyc2lvbn0v bGlzcCcKbGlzcGRpcnJlbD0nJHt2ZXJzaW9ufS9saXNwJwpsaXNwcGF0aD0nJHtsb2NhbGxpc3Bw YXRofToke3N0YW5kYXJkbGlzcHBhdGh9Jwpsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xvY2Fs ZScKbG9jYWxsaXNwcGF0aD0nJHtkYXRhZGlyfS9lbWFjcy8ke3ZlcnNpb259L3NpdGUtbGlzcDok e2RhdGFkaXJ9L2VtYWNzL3NpdGUtbGlzcCcKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicK bWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCm5zX2FwcGJpbmRpcj0nJwpuc19hcHBkaXI9JycK bnNfYXBwcmVzZGlyPScnCm5zX2FwcHNyYz0nJwpuc19jaGVja19maWxlPScnCm5zX3NlbGZfY29u dGFpbmVkPSdubycKb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwpwZGZkaXI9JyR7ZG9jZGly fScKcHJlZml4PSdOT05FJwpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSdzLHgseCwnCnBzZGlyPSck e2RvY2Rpcn0nCnJ1bnN0YXRlZGlyPScke2xvY2Fsc3RhdGVkaXJ9L3J1bicKc2JpbmRpcj0nJHtl eGVjX3ByZWZpeH0vc2JpbicKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCnNyY2Rpcj0n Li4vZW1hY3MnCnN0YW5kYXJkbGlzcHBhdGg9JyR7bGlzcGRpcn0nCnN5c2NvbmZkaXI9JyR7cHJl Zml4fS9ldGMnCnRhcmdldF9hbGlhcz0nJwp2ZXJzaW9uPScnCndpdGhfbWFpbHV0aWxzPSd5ZXMn CnhfZGVmYXVsdF9zZWFyY2hfcGF0aD0nJwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBG aWxlIHN1YnN0aXR1dGlvbnMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCm1vZHVsZV9l bnZfc25pcHBldF8yNT0nLi4vZW1hY3Mvc3JjL21vZHVsZS1lbnYtMjUuaCcKbW9kdWxlX2Vudl9z bmlwcGV0XzI2PScuLi9lbWFjcy9zcmMvbW9kdWxlLWVudi0yNi5oJwptb2R1bGVfZW52X3NuaXBw ZXRfMjc9Jy4uL2VtYWNzL3NyYy9tb2R1bGUtZW52LTI3LmgnCm1vZHVsZV9lbnZfc25pcHBldF8y OD0nLi4vZW1hY3Mvc3JjL21vZHVsZS1lbnYtMjguaCcKCiMjIC0tLS0tLS0tLS0tICMjCiMjIGNv bmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgovKiBjb25mZGVmcy5oICovCiNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCiNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCiNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgojZGVmaW5lIEhBVkVfUERVTVBFUiAxCiNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQojZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQojZGVmaW5lIF9HTlVfU09VUkNFIDEKI2RlZmlu ZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCiNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQoj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCiNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCiNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQojZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQojZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCiNkZWZpbmUgR0NDX0xJTlQgMQojZGVm aW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCiNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERS X05PX1JBTkRPTUlaRSAxCiNkZWZpbmUgSEFWRV9URVJNX0ggMQojZGVmaW5lIFNZU1RFTV9NQUxM T0MgMQojZGVmaW5lIFVTRV9YSU0gMQojZGVmaW5lIEhBVkVfWkxJQiAxCiNkZWZpbmUgSEFWRV9N T0RVTEVTIDEKI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLnNvIgojZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKCmNvbmZpZ3VyZTogZXhpdCAxCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYnVn X3JlcG9ydC9teWVudi50eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDc2NQAw MDAwNzY1ADAwMDAwMDA0MjQ3ADE0MDQyNzU1NTMzADAxMjU1MgAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgADUwMQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANTAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTSEVM TD0vYmluL2Jhc2gKTUFUSEVNQVRJQ0FfSE9NRT0vb3B0L01hdGhlbWF0aWNhLTExLjEKUFdEPS9o b21lL2RhaGFuL2J1aWxkCkxPR05BTUU9ZGFoYW4KTERGTEFHUz0tTC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliCkhPTUU9L2hvbWUvZGFoYW4KTEFORz1mcl9GUi5V VEYtOApMU19DT0xPUlM9cnM9MDpkaT0wMTszNDpsbj0wMTszNjptaD0wMDpwaT00MDszMzpzbz0w MTszNTpkbz0wMTszNTpiZD00MDszMzswMTpjZD00MDszMzswMTpvcj00MDszMTswMTptaT0wMDpz dT0zNzs0MTpzZz0zMDs0MzpjYT0zMDs0MTp0dz0zMDs0Mjpvdz0zNDs0MjpzdD0zNzs0NDpleD0w MTszMjoqLnRhcj0wMTszMToqLnRnej0wMTszMToqLmFyYz0wMTszMToqLmFyaj0wMTszMToqLnRh ej0wMTszMToqLmxoYT0wMTszMToqLmx6ND0wMTszMToqLmx6aD0wMTszMToqLmx6bWE9MDE7MzE6 Ki50bHo9MDE7MzE6Ki50eHo9MDE7MzE6Ki50em89MDE7MzE6Ki50N3o9MDE7MzE6Ki56aXA9MDE7 MzE6Ki56PTAxOzMxOiouZHo9MDE7MzE6Ki5nej0wMTszMToqLmxyej0wMTszMToqLmx6PTAxOzMx OioubHpvPTAxOzMxOioueHo9MDE7MzE6Ki56c3Q9MDE7MzE6Ki50enN0PTAxOzMxOiouYnoyPTAx OzMxOiouYno9MDE7MzE6Ki50Yno9MDE7MzE6Ki50YnoyPTAxOzMxOioudHo9MDE7MzE6Ki5kZWI9 MDE7MzE6Ki5ycG09MDE7MzE6Ki5qYXI9MDE7MzE6Ki53YXI9MDE7MzE6Ki5lYXI9MDE7MzE6Ki5z YXI9MDE7MzE6Ki5yYXI9MDE7MzE6Ki5hbHo9MDE7MzE6Ki5hY2U9MDE7MzE6Ki56b289MDE7MzE6 Ki5jcGlvPTAxOzMxOiouN3o9MDE7MzE6Ki5yej0wMTszMToqLmNhYj0wMTszMToqLndpbT0wMTsz MToqLnN3bT0wMTszMToqLmR3bT0wMTszMToqLmVzZD0wMTszMToqLmpwZz0wMTszNToqLmpwZWc9 MDE7MzU6Ki5tanBnPTAxOzM1OioubWpwZWc9MDE7MzU6Ki5naWY9MDE7MzU6Ki5ibXA9MDE7MzU6 Ki5wYm09MDE7MzU6Ki5wZ209MDE7MzU6Ki5wcG09MDE7MzU6Ki50Z2E9MDE7MzU6Ki54Ym09MDE7 MzU6Ki54cG09MDE7MzU6Ki50aWY9MDE7MzU6Ki50aWZmPTAxOzM1OioucG5nPTAxOzM1Oiouc3Zn PTAxOzM1Oiouc3Znej0wMTszNToqLm1uZz0wMTszNToqLnBjeD0wMTszNToqLm1vdj0wMTszNToq Lm1wZz0wMTszNToqLm1wZWc9MDE7MzU6Ki5tMnY9MDE7MzU6Ki5ta3Y9MDE7MzU6Ki53ZWJtPTAx OzM1Oioub2dtPTAxOzM1OioubXA0PTAxOzM1OioubTR2PTAxOzM1OioubXA0dj0wMTszNToqLnZv Yj0wMTszNToqLnF0PTAxOzM1OioubnV2PTAxOzM1Oioud212PTAxOzM1OiouYXNmPTAxOzM1Oiou cm09MDE7MzU6Ki5ybXZiPTAxOzM1OiouZmxjPTAxOzM1OiouYXZpPTAxOzM1OiouZmxpPTAxOzM1 OiouZmx2PTAxOzM1OiouZ2w9MDE7MzU6Ki5kbD0wMTszNToqLnhjZj0wMTszNToqLnh3ZD0wMTsz NToqLnl1dj0wMTszNToqLmNnbT0wMTszNToqLmVtZj0wMTszNToqLm9ndj0wMTszNToqLm9neD0w MTszNToqLmFhYz0wMDszNjoqLmF1PTAwOzM2OiouZmxhYz0wMDszNjoqLm00YT0wMDszNjoqLm1p ZD0wMDszNjoqLm1pZGk9MDA7MzY6Ki5ta2E9MDA7MzY6Ki5tcDM9MDA7MzY6Ki5tcGM9MDA7MzY6 Ki5vZ2c9MDA7MzY6Ki5yYT0wMDszNjoqLndhdj0wMDszNjoqLm9nYT0wMDszNjoqLm9wdXM9MDA7 MzY6Ki5zcHg9MDA7MzY6Ki54c3BmPTAwOzM2OgpMRD0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jp bi9pNTg2LWxpbnV4LW11c2wtbGQKVEVSTT14dGVybS0yNTZjb2xvcgpVU0VSPWRhaGFuCkxJQlJB UllfUEFUSD0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYjovbGliOi91c3IvbGliClNITFZMPTEK TERfTElCUkFSWV9QQVRIPS9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliOi9saWI6L3Vzci9saWIK UEFUSD0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2JpbjovaG9tZS9kYWhhbi8ubG9jYWwvYmluOi9o b21lL2RhaGFuL2xvY2FsL2JpbjovaG9tZS9kYWhhbi8ubG9jYWwvYmluOi91c3IvbG9jYWwvYmlu Oi91c3IvYmluOi9iaW46L3Vzci9sb2NhbC9nYW1lczovdXNyL2dhbWVzCkNDPS9ob21lL2RhaGFu L211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYwpNQUlMPS92YXIvbWFpbC9kYWhhbgpT U0hfVFRZPS9kZXYvcHRzLzAKQ1BBVEg9L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pbmNsdWRlOi91 c3IvaW5jbHVkZQpPTERQV0Q9L2hvbWUvZGFoYW4KXz0vdXNyL2Jpbi9lbnYKAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39--