From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 11095 invoked from network); 26 Aug 2023 14:36:13 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 26 Aug 2023 14:36:13 -0000 Content-Type: multipart/mixed; boundary="===============3106396978358431573==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_riscv64-musl_port?= To: ml@inbox.vuxu.org From: leahneukirchen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 26 Aug 2023 16:36:13 +0200 List-Id: Message-ID: <20230826143613.G-R3bNG8l7KdUkWmwUsfxNWqEvn--wTqgWcvIZE2fhY@z> GitHub notification mails are now in MIME to allow UTF8. --===============3106396978358431573== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbGVhaG5ldWtpcmNoZW4gYWdhaW5z dCBtYXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIu Y29tL2xlYWhuZXVraXJjaGVuL3ZvaWQtcGFja2FnZXMgcmlzY3Y2NC1tdXNsCmh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8xMzIwNwoKW1dJUF0gcmlzY3Y2 NC1tdXNsIHBvcnQKVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIGEgcG9ydCBvZiBWb2lkIHRvIHJp c2N2NjQtbXVzbC4NCm11c2wgc3VwcG9ydHMgUklTQy1WIGFzIG9mIDEuMS4yMy4NCg0KLSBbeF0g YmFzZS1kZXZlbA0KLSBbeF0gYmFzZS1zeXN0ZW0NCi0gW3hdIGNocm9vdCB0ZXN0ZWQgb24gRmVk b3JhIGluIFFFTVUNCi0gWyBdIGxpbnV4NS4yDQotIFsgXSBydW5uaW5nIGRpcmVjdGx5IG9uIFFF TVUNCi0gWyBdIHJ1bm5pbmcgb24gaGFyZHdhcmUgKEkgZG9uJ3QgaGF2ZSBhbnkuLi4pDQoNCkZl ZWwgZnJlZSB0byBjb250cmlidXRlISBIYXZpbmcgYWNjZXNzIHRvIGEgYnVsayBidWlsZCB3b3Vs ZCBiZSB2ZXJ5IGhlbHBmdWwgKERlYmlhbiBoYXMgfjEwJSBmYWxsb3V0KS4KCkEgcGF0Y2ggZmls ZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8x MzIwNy5wYXRjaCBpcyBhdHRhY2hlZA== --===============3106396978358431573== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-riscv64-musl-13207.patch" RnJvbSBiNWExNDUwNzI0ZWRhNjA2MTYzZTA1ODM3YjllYzAyOGU5YTgzM2EzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwg MTcgSmFuIDIwMjMgMDA6MTA6MjIgKzAxMDAKU3ViamVjdDogW1BBVENIIDAwMS8xODldIGdvOiBh ZGQgcmlzY3Y2NAoKLS0tCiBjb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvZ28uc2ggfCA1 ICsrKy0tCiBzcmNwa2dzL2dvL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAxICsKIDIgZmls ZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS9nby5zaCBiL2NvbW1vbi9lbnZpcm9ubWVu dC9idWlsZC1zdHlsZS9nby5zaAppbmRleCA3NGRiODJiMmExY2U1Li4yMjNiYmE4M2ZmMTFiIDEw MDY0NAotLS0gYS9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvZ28uc2gKKysrIGIvY29t bW9uL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlL2dvLnNoCkBAIC0xLDcgKzEsNyBAQAogaWYgWyAt eiAiJGhvc3RtYWtlZGVwZW5kcyIgLW8gIiR7aG9zdG1ha2VkZXBlbmRzIyMqZ2NjLWdvLXRvb2xz Kn0iIF07IHRoZW4KIAkjIGdjIGNvbXBpbGVyCiAJaWYgWyAteiAiJGFyY2hzIiBdOyB0aGVuCi0J CWFyY2hzPSJhYXJjaDY0KiBhcm12WzU2N10qIGk2ODYqIHg4Nl82NCogcHBjNjRsZSoiCisJCWFy Y2hzPSJhYXJjaDY0KiBhcm12WzU2N10qIGk2ODYqIHg4Nl82NCogcHBjNjRsZSogcmlzY3Y2NCoi CiAJZmkKIAlob3N0bWFrZWRlcGVuZHMrPSIgZ28iCiAJbm9waWU9eWVzCkBAIC05LDcgKzksNyBA QCBlbHNlCiAJIyBnY2NnbyBjb21waWxlcgogCWlmIFsgLXogIiRhcmNocyIgXTsgdGhlbgogCQkj IHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhlc2UgaW4gb3VyIGdjYwotCQlhcmNocz0iYWFyY2g2NCog YXJtdls1NjddKiBpNjg2KiB4ODZfNjQqIHBwYzY0KiIKKwkJYXJjaHM9ImFhcmNoNjQqIGFybXZb NTY3XSogaTY4NiogeDg2XzY0KiBwcGM2NCogcmlzY3Y2NCoiCiAJZmkKIAlpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KIAkJIyB0YXJnZXQgY29tcGlsZXIgdG8gdXNlOyBvdGhlcndpc2UgaXQn bGwganVzdCBjYWxsIGdjY2dvCkBAIC0yOSw2ICsyOSw3IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgogCXBwYyopIGV4cG9ydCBHT0FSQ0g9cHBjOzsKIAltaXBzZWwqKSBleHBvcnQg R09BUkNIPW1pcHNsZTs7CiAJbWlwcyopIGV4cG9ydCBHT0FSQ0g9bWlwczs7CisJcmlzY3Y2NCop IGV4cG9ydCBHT0FSQ0g9cmlzY3Y2NDs7CiBlc2FjCiAKIGV4cG9ydCBHT1BBVEg9IiR7d3Jrc3Jj fS9fYnVpbGQtJHtwa2duYW1lfS14YnBzIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nby90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ28vdGVtcGxhdGUKaW5kZXggZGVhMDk2OWNkYjA1MS4uZDA3NzE2MWZmNDQx ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nby90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dvL3RlbXBs YXRlCkBAIC0yNSw2ICsyNSw3IEBAIGNhc2UgIiR7WEJQU19UQVJHRVRfTUFDSElORX0iIGluCiAJ eDg2XzY0KikgX2dvYXJjaD1hbWQ2NCA7OwogCXBwYzY0bGUqKSBfZ29hcmNoPXBwYzY0bGUgOzsK IAltaXBzKikgX2dvYXJjaD1taXBzIDs7CisJcmlzY3Y2NCopIF9nb2FyY2g9cmlzY3Y2NCA7Owog CSopIGJyb2tlbj0iVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlICR7WEJQU19UQVJHRVRfTUFDSElO RX0iIDs7CiBlc2FjCiAKCkZyb20gMmI4NGUyOWY4ZWUyODU4N2YzOTdmN2JkMzcyMmU3ZDE3ZTli MjU1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBNb24sIDE2IEphbiAyMDIzIDIyOjE1OjAyICswMTAwClN1YmplY3Q6IFtQQVRD SCAwMDIvMTg5XSBidWlsZC1zdHlsZS9jbWFrZS5zaDogYWRkIHJpc2N2NjQgYXJjaAoKLS0tCiBj b21tb24vYnVpbGQtc3R5bGUvY21ha2Uuc2ggfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9idWlsZC1zdHlsZS9jbWFrZS5zaCBiL2NvbW1v bi9idWlsZC1zdHlsZS9jbWFrZS5zaAppbmRleCBhMzhjMzQxM2Y2MmNhLi4zNjMzMTYzNWRkZDYy IDEwMDY0NAotLS0gYS9jb21tb24vYnVpbGQtc3R5bGUvY21ha2Uuc2gKKysrIGIvY29tbW9uL2J1 aWxkLXN0eWxlL2NtYWtlLnNoCkBAIC0zMSw2ICszMSw3IEBAIF9FT0YKIAkJCXBwYzY0KikgX0NN QUtFX1NZU1RFTV9QUk9DRVNTT1I9cHBjNjQgOzsKIAkJCXBwY2xlKikgX0NNQUtFX1NZU1RFTV9Q Uk9DRVNTT1I9cHBjbGUgOzsKIAkJCXBwYyopIF9DTUFLRV9TWVNURU1fUFJPQ0VTU09SPXBwYyA7 OworCQkJcmlzY3Y2NCopIF9DTUFLRV9TWVNURU1fUFJPQ0VTU09SPXJpc2N2NjQgOzsKIAkJCSop IF9DTUFLRV9TWVNURU1fUFJPQ0VTU09SPWdlbmVyaWMgOzsKIAkJZXNhYwogCQljYXQgPiBjcm9z c18ke1hCUFNfQ1JPU1NfVFJJUExFVH0uY21ha2UgPDxfRU9GCgpGcm9tIDYxMjE0MzQ0YTYzNTA5 ZmNlZjc3NTkyYjE3ZWFjMDNiYmE2NmY2ZDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IExlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4KRGF0ZTogVGh1LCAxOCBKdWwgMjAxOSAx MTowNzowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAzLzE4OV0gYWRkIGNvbmZpZ3VyZS9hdXRv Y29uZl9jYWNoZS9yaXNjdjY0LWxpbnV4CgotLS0KIC4uLi9jb25maWd1cmUvYXV0b2NvbmZfY2Fj aGUvcmlzY3Y2NC1saW51eCAgICB8IDE0OCArKysrKysrKysrKysrKysrKysKIC4uLi9jb25maWd1 cmUvZ251LWNvbmZpZ3VyZS1hcmdzLnNoICAgICAgICAgICB8ICAgNCArCiAyIGZpbGVzIGNoYW5n ZWQsIDE1MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29tbW9uL2Vudmlyb25t ZW50L2NvbmZpZ3VyZS9hdXRvY29uZl9jYWNoZS9yaXNjdjY0LWxpbnV4CgpkaWZmIC0tZ2l0IGEv Y29tbW9uL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9hdXRvY29uZl9jYWNoZS9yaXNjdjY0LWxpbnV4 IGIvY29tbW9uL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9hdXRvY29uZl9jYWNoZS9yaXNjdjY0LWxp bnV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjJiMGQ1MThkMTBi NDYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vZW52aXJvbm1lbnQvY29uZmlndXJlL2F1dG9j b25mX2NhY2hlL3Jpc2N2NjQtbGludXgKQEAgLTAsMCArMSwxNDggQEAKKworIyMgIyBnZW5lcmFs CisjYWNfY3ZfdmFfdmFsX2NvcHk9JHthY19jdl92YV92YWxfY29weT15ZXN9CisjYWNfY3ZfZnVu Y19sc3RhdF9kZXJlZmVyZW5jZXNfc2xhc2hlZF9zeW1saW5rPSR7YWNfY3ZfZnVuY19sc3RhdF9k ZXJlZmVyZW5jZXNfc2xhc2hlZF9zeW1saW5rPXllc30KKyMjIGFjX2N2X2Z1bmNfbHN0YXRfZW1w dHlfc3RyaW5nX2J1Zz0ke2FjX2N2X2Z1bmNfbHN0YXRfZW1wdHlfc3RyaW5nX2J1Zz1ub30KKyMj IGFjX2N2X2Z1bmNfcG9zaXhfZ2V0cHduYW1fcj0ke2FjX2N2X2Z1bmNfcG9zaXhfZ2V0cHduYW1f cj15ZXN9CisjIyBhY19jdl9mdW5jX3NldHZidWZfcmV2ZXJzZWQ9JHthY19jdl9mdW5jX3NldHZi dWZfcmV2ZXJzZWQ9bm99CisjIyBhY19jdl9mdW5jX3N0YXRfZW1wdHlfc3RyaW5nX2J1Zz0ke2Fj X2N2X2Z1bmNfc3RhdF9lbXB0eV9zdHJpbmdfYnVnPW5vfQorIyMgYWNfY3ZfZnVuY19zdGF0X2ln bm9yZXNfdHJhaWxpbmdfc2xhc2g9JHthY19jdl9mdW5jX3N0YXRfaWdub3Jlc190cmFpbGluZ19z bGFzaD1ub30KKyMjIGFjX2xpYm5ldF9oYXZlX3BhY2tldF9zb2NrZXQ9JHthY19saWJuZXRfaGF2 ZV9wYWNrZXRfc29ja2V0PXllc30KKyMjIGFjX2N2X2xpbnV4X3ZlcnM9JHthY19jdl9saW51eF92 ZXJzPTJ9CisjIyBhY19jdl9uZWVkX3RyaW89JHthY19jdl9uZWVkX3RyaW89bm99CisjYWNfY3Zf c2l6ZW9mX19faW50NjQ9MAorI2FjX2N2X3NpemVvZl9jaGFyPTEKK2NfY3Zfc2l6ZW9mX2ludD0k e2FjX2N2X3NpemVvZl9pbnQ9NH0KK2FjX2N2X3NpemVvZl9sb25nPSR7YWNfY3Zfc2l6ZW9mX2xv bmc9OH0KK2FjX2N2X3NpemVvZl9vZmZfdD0ke2FjX2N2X3NpemVvZl9vZmZfdD04fQorYWNfY3Zf c2l6ZW9mX2xvbmdfaW50PSR7YWNfY3Zfc2l6ZW9mX2xvbmdfaW50PTh9CisjYWNfY3Zfc2l6ZW9m X2xvbmdfbG9uZz04CisjYWNfY3Zfc2l6ZW9mX3Nob3J0PTIKKyNhY19jdl9zaXplb2Zfc2l6ZV90 PTgKKyNhY19jdl9zaXplb2Zfc3NpemVfdD04CisjYWNfY3Zfc2l6ZW9mX3ZvaWRfcD04CisjYWNf Y3Zfc2l6ZW9mX3Vuc2lnbmVkX2ludD00CisjYWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX2xvbmc9OAor YWNfY3Zfc2l6ZW9mX2Jvb2w9MQorIyMgYWNfY3Zfc2l6ZW9mX2xvbmdfZG91YmxlPSR7YWNfY3Zf c2l6ZW9mX2xvbmdfZG91YmxlPTE2fQorIyMgYWNfY3Zfc2l6ZW9mX2xvbmdfbG9uZz0ke2FjX2N2 X3NpemVvZl9sb25nX2xvbmc9OH0KKyNhY19jdl9zaXplb2ZfdW5zaWduZWRfc2hvcnQ9MgorIyMg YWNfY3Zfc2l6ZW9mX3Nob3J0X2ludD0ke2FjX2N2X3NpemVvZl9zaG9ydF9pbnQ9Mn0KKyMjIGFj X2N2X3NpemVvZl9zaXplX3Q9JHthY19jdl9zaXplb2Zfc2l6ZV90PTh9CisjIyBhY19jdl9zaXpl b2ZfdWlkX3Q9JHthY19jdl9zaXplb2ZfdWlkX3Q9NH0KKyMjIGFjX2N2X3NpemVvZl9naWRfdD0k e2FjX2N2X3NpemVvZl9naWRfdD00fQorIyMgYWNfY3Zfc2l6ZW9mX2lub190PSR7YWNfY3Zfc2l6 ZW9mX2lub190PTh9CisjIyBhY19jdl9zaXplb2ZfZGV2X3Q9JHthY19jdl9zaXplb2ZfZGV2X3Q9 OH0KKyMjIGFjX2N2X3NpemVvZl92b2lkX3A9JHthY19jdl9zaXplb2Zfdm9pZF9wPTh9CisjIyBh Y19jdl9zdHJlcnJvcl9yX1NVU3YzPSR7YWNfY3Zfc3RyZXJyb3Jfcl9TVVN2Mz1ub30KKyMjIGRi X2N2X2FsaWducF90PSR7ZGJfY3ZfYWxpZ25wX3Q9J3Vuc2lnbmVkIGxvbmcgbG9uZyd9CisjIyBk Yl9jdl9hbGlnbl90PSR7ZGJfY3ZfYWxpZ25fdD0ndW5zaWduZWQgbG9uZyBsb25nJ30KKyMjIGRi X2N2X2ZjbnRsX2Zfc2V0ZmQ9JHtkYl9jdl9mY250bF9mX3NldGZkPXllc30KKyMjIGRiX2N2X3Nw cmludGZfY291bnQ9JHtkYl9jdl9zcHJpbnRmX2NvdW50PXllc30KKyMjIGFjX2N2X3NpemVvZl9z dHJ1Y3RfaW92ZWM9MTYKKworIyBnbGliCisjZ2xpYl9jdl9oYXNpbmxpbmU9JHtnbGliX2N2X2hh c2lubGluZT15ZXN9CisjZ2xpYl9jdl9oYXNfX2lubGluZT0ke2dsaWJfY3ZfaGFzX19pbmxpbmU9 eWVzfQorI2dsaWJfY3ZfaGFzX19pbmxpbmVfXz0ke2dsaWJfY3ZfaGFzX19pbmxpbmVfXz15ZXN9 CisjZ2xpYl9jdl9sb25nX2xvbmdfZm9ybWF0PSR7Z2xpYl9jdl9sb25nX2xvbmdfZm9ybWF0PWxs fQorI2dsaWJfY3ZfcnRsZGdsb2JhbF9icm9rZW49JHtnbGliX2N2X3J0bGRnbG9iYWxfYnJva2Vu PW5vfQorZ2xpYl9jdl9zdGFja19ncm93cz0ke2dsaWJfY3Zfc3RhY2tfZ3Jvd3M9bm99CitnbGli X2N2X3VzY29yZT0ke2dsaWJfY3ZfdXNjb3JlPW5vfQorI2dsaWJfY3ZfdmFfdmFsX2NvcHk9JHtn bGliX2N2X3ZhX3ZhbF9jb3B5PXllc30KKyNhY19jdl9hbGlnbm9mX2d1aW50MzI9NAorI2FjX2N2 X2FsaWdub2ZfZ3VpbnQ2ND04CisjYWNfY3ZfYWxpZ25vZl91bnNpZ25lZF9sb25nPTgKKyNhY19j dl9hbGlnbm9mX2NoYXI9MQorI2FjX2N2X2FsaWdub2ZfZG91YmxlPTgKKworIyMgbmFub19jdl9m dW5jX3JlZ2V4ZWNfc2Vndl9lbXB0eXN0cj0ke25hbm9fY3ZfZnVuY19yZWdleGVjX3NlZ3ZfZW1w dHlzdHI9bm99CisjIyBzYW1iYV9jdl9IQVZFX1ZBX0NPUFk9JHtzYW1iYV9jdl9IQVZFX1ZBX0NP UFk9eWVzfQorIyMgdXRpbHNfY3Zfc3lzX29wZW5fbWF4PSR7dXRpbHNfY3Zfc3lzX29wZW5fbWF4 PTEwMTV9CisKKyMgZ2V0dGV4dAorYW1fY3ZfZnVuY193b3JraW5nX2dldGxpbmU9JHthbV9jdl9m dW5jX3dvcmtpbmdfZ2V0bGluZT15ZXN9CisKKyNnY2MKKyNhY19jdl9saWJfbV9zaW49JHthY19j dl9saWJfbV9zaW49eWVzfQorCisjb3JiaXQKKyNsaWJJRExfY3ZfbG9uZ19sb25nX2Zvcm1hdD1s bAorCisjIyAjIE9SQml0MgorIyMgYWNfY3ZfYWxpZ25vZl9DT1JCQV9ib29sZWFuPTEKKyMjIGFj X2N2X2FsaWdub2ZfQ09SQkFfY2hhcj0xCisjIyBhY19jdl9hbGlnbm9mX0NPUkJBX2RvdWJsZT04 CisjIyBhY19jdl9hbGlnbm9mX0NPUkJBX2Zsb2F0PTQKKyMjIGFjX2N2X2FsaWdub2ZfQ09SQkFf bG9uZz00CisjIyBhY19jdl9hbGlnbm9mX0NPUkJBX2xvbmdfZG91YmxlPTgKKyMjIGFjX2N2X2Fs aWdub2ZfQ09SQkFfbG9uZ19sb25nPTgKKyMjIGFjX2N2X2FsaWdub2ZfQ09SQkFfb2N0ZXQ9MQor IyMgYWNfY3ZfYWxpZ25vZl9DT1JCQV9wb2ludGVyPTgKKyMjIGFjX2N2X2FsaWdub2ZfQ09SQkFf c2hvcnQ9MgorIyMgYWNfY3ZfYWxpZ25vZl9DT1JCQV9zdHJ1Y3Q9MQorIyMgYWNfY3ZfYWxpZ25v Zl9DT1JCQV93Y2hhcj0yCisjIworIyMgbGZfY3Zfc2FuZV9yZWFsbG9jPXllcworYXNfY3ZfdW5h bGlnbmVkX2FjY2Vzcz0ke2FzX2N2X3VuYWxpZ25lZF9hY2Nlc3M9bm99CisjIworIyMgI3VuZnMz CisjIyBuZnNkX2N2X2Jyb2tlbl9zZXRmc3VpZD0ke25mc2RfY3ZfYnJva2VuX3NldGZzdWlkPTB9 CisjIyBuZnNkX2N2X2Z1bmNfc3RhdGZzPSR7bmZzZF9jdl9mdW5jX3N0YXRmcz1zdGF0ZnMyX2Jz aXplfQorIyMgbmZzZF9jdl9ic2Rfc2lnbmFscz0ke25mc2RfY3ZfYnNkX3NpZ25hbHM9eWVzfQor CisjYXByCithcHJfY3ZfdGNwX25vZGVsYXlfd2l0aF9jb3JrPSR7YXByX2N2X3RjcF9ub2RlbGF5 X3dpdGhfY29yaz15ZXN9CisKKyMgbGZ0cAorbGZ0cF9jdl92YV92YWxfY29weT0ke2xmdHBfY3Zf dmFfdmFsX2NvcHk9eWVzfQorCisjIHNscm4KK3Nscm5fY3ZfdmFfdmFsX2NvcHk9JHtzbHJuX2N2 X3ZhX3ZhbF9jb3B5PXllc30KKworIyBjdnMKK2N2c19jdl9mdW5jX3ByaW50Zl9wdHI9JHtjdnNf Y3ZfZnVuY19wcmludGZfcHRyPXllc30KKworIyMgIyBhdC1zcGkyLWNvcmUKKyNhY19jdl9hbGln bm9mX2RiaW5kX3BvaW50ZXI9OAorI2FjX2N2X2FsaWdub2ZfZGJpbmRfc3RydWN0PTEKKyNhY19j dl9hbGlnbm9mX2RidXNfYm9vbF90PTQKKyNhY19jdl9hbGlnbm9mX2RidXNfaW50MTZfdD0yCisj YWNfY3ZfYWxpZ25vZl9kYnVzX2ludDMyX3Q9NAorI2FjX2N2X2FsaWdub2ZfZGJ1c19pbnQ2NF90 PTgKKworIyMgIyBzb2NhdAorI3NjX2N2X3R5cGVfZGV2X2Jhc2ljPSc2IC8qIHVuc2lnbmVkIGxv bmcgKi8nCisjc2NfY3ZfdHlwZV9naWR0X2Jhc2ljPSc0IC8qIHVuc2lnbmVkIGludCAqLycKKyNz Y19jdl90eXBlX2xvbmdsb25nPXllcworI3NjX2N2X3R5cGVfbW9kZXRfYmFzaWM9JzQgLyogdW5z aWduZWQgaW50ICovJworI3NjX2N2X3R5cGVfb2ZmNjQ9eWVzCisjc2NfY3ZfdHlwZV9vZmY2NF9i YXNpYz0nNSAvKiBsb25nICovJworI3NjX2N2X3R5cGVfb2ZmX2Jhc2ljPSc1IC8qIGxvbmcgKi8n Cisjc2NfY3ZfdHlwZV9waWR0X2Jhc2ljPSczIC8qIGludCAqLycKKyNzY19jdl90eXBlX3JsaW1p dF9ybGltbWF4X2Jhc2ljPSc2IC8qIHVuc2lnbmVkIGxvbmcgKi8nCisjc2NfY3ZfdHlwZV9zYV9m YW1pbHlfdD15ZXMKKyNzY19jdl90eXBlX3NpZ2hhbmRsZXI9eWVzCisjc2NfY3ZfdHlwZV9zaXpl dF9iYXNpYz0nNiAvKiB1bnNpZ25lZCBsb25nICovJworI3NjX2N2X3R5cGVfc29ja2xlbj15ZXMK KyNzY19jdl90eXBlX3NvY2tsZW50X2Jhc2ljPSc0IC8qIHVuc2lnbmVkIGludCAqLycKKyNzY19j dl90eXBlX3N0YXQ2ND15ZXMKKyNzY19jdl90eXBlX3N0YXQ2NF9zdGJsa3NpemVfYmFzaWM9JzMg LyogaW50ICovJworI3NjX2N2X3R5cGVfc3RhdDY0X3N0YmxvY2tzX2Jhc2ljPSc1IC8qIGxvbmcg Ki8nCisjc2NfY3ZfdHlwZV9zdGF0NjRfc3RkZXZfYmFzaWM9JzYgLyogdW5zaWduZWQgbG9uZyAq LycKKyNzY19jdl90eXBlX3N0YXQ2NF9zdGlub19iYXNpYz0nNiAvKiB1bnNpZ25lZCBsb25nICov JworI3NjX2N2X3R5cGVfc3RhdDY0X3N0bmxpbmtfYmFzaWM9JzQgLyogdW5zaWduZWQgaW50ICov JworI3NjX2N2X3R5cGVfc3RhdDY0X3N0c2l6ZV9iYXNpYz0nNSAvKiBsb25nICovJworI3NjX2N2 X3R5cGVfc3RhdF9zdGJsa3NpemVfYmFzaWM9JzMgLyogaW50ICovJworI3NjX2N2X3R5cGVfc3Rh dF9zdGJsb2Nrc19iYXNpYz0nNSAvKiBsb25nICovJworI3NjX2N2X3R5cGVfc3RhdF9zdGlub19i YXNpYz0nNiAvKiB1bnNpZ25lZCBsb25nICovJworI3NjX2N2X3R5cGVfc3RhdF9zdG5saW5rX2Jh c2ljPSc0IC8qIHVuc2lnbmVkIGludCAqLycKKyNzY19jdl90eXBlX3N0YXRfc3RzaXplX2Jhc2lj PSc1IC8qIGxvbmcgKi8nCisjc2NfY3ZfdHlwZV9zdHJ1Y3RfdGltZXZhbF90dl91c2VjPSc1IC8q IGxvbmcgKi8nCisjc2NfY3ZfdHlwZV90aW1ldF9iYXNpYz0nNSAvKiBsb25nICovJworI3NjX2N2 X3R5cGVfdWlkdF9iYXNpYz0nNCAvKiB1bnNpZ25lZCBpbnQgKi8nCisjc2NfY3ZfdHlwZV91aW50 MTY9eWVzCisjc2NfY3ZfdHlwZV91aW50MzI9eWVzCisjc2NfY3ZfdHlwZV91aW50NjQ9eWVzCisj c2NfY3ZfdHlwZV91aW50OD15ZXMKKyNzY19jdl90eXBlb2Zfc3RydWN0X2Ntc2doZHJfY21zZ19s ZW49JzYgLyogdW5zaWduZWQgbG9uZyAqLycKZGlmZiAtLWdpdCBhL2NvbW1vbi9lbnZpcm9ubWVu dC9jb25maWd1cmUvZ251LWNvbmZpZ3VyZS1hcmdzLnNoIGIvY29tbW9uL2Vudmlyb25tZW50L2Nv bmZpZ3VyZS9nbnUtY29uZmlndXJlLWFyZ3Muc2gKaW5kZXggZGFmYmY1ZGMxMTBjOC4uMWE1NTJi NTA3NGEwNyAxMDA2NDQKLS0tIGEvY29tbW9uL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9nbnUtY29u ZmlndXJlLWFyZ3Muc2gKKysrIGIvY29tbW9uL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9nbnUtY29u ZmlndXJlLWFyZ3Muc2gKQEAgLTEyMyw2ICsxMjMsMTAgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCiAJCS4gJHtfQVVUT0NPTkZDQUNIRURJUn0vcG93ZXJwYy1saW51eAogCQkuICR7 X0FVVE9DT05GQ0FDSEVESVJ9L3Bvd2VycGMzMi1saW51eAogCQk7OworCXJpc2N2KikKKwkJLiAk e19BVVRPQ09ORkNBQ0hFRElSfS9lbmRpYW4tbGl0dGxlCisJCS4gJHtfQVVUT0NPTkZDQUNIRURJ Un0vcmlzY3Y2NC1saW51eAorCQk7OwogCiAJKikgOzsKIGVzYWMKCkZyb20gOGNhZTYzOGVhNzEy ZjU5ODY2ZWQ5NTE3YmNjOTExYzE4ZTFiZGQ4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogTGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPgpEYXRlOiBXZWQsIDE3IEp1bCAyMDE5 IDE2OjU1OjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDQvMTg5XSBhZGQgcmlzY3Y2NCBwcm9m aWxlcwoKLS0tCiBjb21tb24vYnVpbGQtcHJvZmlsZXMvcmlzY3Y2NC1tdXNsLnNoIHwgIDcgKysr KysrKwogY29tbW9uL2Nyb3NzLXByb2ZpbGVzL3Jpc2N2NjQtbXVzbC5zaCB8IDEyICsrKysrKysr KysrKwogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoICAgICB8ICAyICsrCiAzIGZp bGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tb24v YnVpbGQtcHJvZmlsZXMvcmlzY3Y2NC1tdXNsLnNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29tbW9u L2Nyb3NzLXByb2ZpbGVzL3Jpc2N2NjQtbXVzbC5zaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9idWls ZC1wcm9maWxlcy9yaXNjdjY0LW11c2wuc2ggYi9jb21tb24vYnVpbGQtcHJvZmlsZXMvcmlzY3Y2 NC1tdXNsLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjRkMzFh NjY3ZDg0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vYnVpbGQtcHJvZmlsZXMvcmlzY3Y2 NC1tdXNsLnNoCkBAIC0wLDAgKzEsNyBAQAorWEJQU19UQVJHRVRfQ0ZMQUdTPSItbWFyY2g9cnY2 NGltYWZkYyIKK1hCUFNfVEFSR0VUX0NYWEZMQUdTPSIkWEJQU19UQVJHRVRfQ0ZMQUdTIgorWEJQ U19UQVJHRVRfRkZMQUdTPSIkWEJQU19UQVJHRVRfQ0ZMQUdTIgorWEJQU19UUklQTEVUPSJyaXNj djY0LXVua25vd24tbGludXgtbXVzbCIKK1hCUFNfUlVTVF9UQVJHRVQ9InJpc2N2NjRnYy11bmtu b3duLWxpbnV4LW11c2wiCitYQlBTX1pJR19UQVJHRVQ9InJpc2N2NjQtbGludXgtbXVzbCIKK1hC UFNfWklHX0NQVT0iYmFzZWxpbmUiCmRpZmYgLS1naXQgYS9jb21tb24vY3Jvc3MtcHJvZmlsZXMv cmlzY3Y2NC1tdXNsLnNoIGIvY29tbW9uL2Nyb3NzLXByb2ZpbGVzL3Jpc2N2NjQtbXVzbC5zaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lM2YzMGNkY2EwYTRiCi0t LSAvZGV2L251bGwKKysrIGIvY29tbW9uL2Nyb3NzLXByb2ZpbGVzL3Jpc2N2NjQtbXVzbC5zaApA QCAtMCwwICsxLDEyIEBACisjIENyb3NzIGJ1aWxkIHByb2ZpbGUgZm9yIHJpc2N2NjQgYW5kIE11 c2wgbGliYy4KKworWEJQU19UQVJHRVRfTUFDSElORT0icmlzY3Y2NC1tdXNsIgorWEJQU19UQVJH RVRfUUVNVV9NQUNISU5FPSJyaXNjdjY0IgorWEJQU19DUk9TU19UUklQTEVUPSJyaXNjdjY0LWxp bnV4LW11c2wiCitYQlBTX0NST1NTX0NGTEFHUz0iLW1hcmNoPXJ2NjRpbWFmZGMiCitYQlBTX0NS T1NTX0NYWEZMQUdTPSIkWEJQU19DUk9TU19DRkxBR1MiCitYQlBTX0NST1NTX0ZGTEFHUz0iJFhC UFNfQ1JPU1NfQ0ZMQUdTIgorWEJQU19DUk9TU19SVVNURkxBR1M9Ii0tc3lzcm9vdD0ke1hCUFNf Q1JPU1NfQkFTRX0vdXNyIgorWEJQU19DUk9TU19SVVNUX1RBUkdFVD0icmlzY3Y2NGdjLXVua25v d24tbGludXgtbXVzbCIKK1hCUFNfQ1JPU1NfWklHX1RBUkdFVD0icmlzY3Y2NC1saW51eC1tdXNs IgorWEJQU19DUk9TU19aSUdfQ1BVPSJiYXNlbGluZSIKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5z aAppbmRleCAyMjE4ZDM0Y2UzMGI1Li5mZWM4NGM4Zjg1ZTBkIDEwMDY0NAotLS0gYS9jb21tb24v eGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMv Y29tbW9uLnNoCkBAIC0yODksNiArMjg5LDcgQEAgZ2V0X2VuZGlhbigpIHsKICAgICAgICAgcHBj KmxlKSAgIGVjaG8gImxlIjs7CiAgICAgICAgIHBwYyopICAgICBlY2hvICJiZSI7OwogICAgICAg ICB4ODZfNjQpICAgZWNobyAibGUiOzsKKyAgICAgICAgcmlzY3Y2NCkgICBlY2hvICJsZSI7Owog ICAgIGVzYWMKIH0KIApAQCAtMzE2LDYgKzMxNyw3IEBAIGdldF93b3Jkc2l6ZSgpIHsKICAgICAg ICAgcHBjNjQqKSAgIGVjaG8gIjY0Ijs7CiAgICAgICAgIHBwYyopICAgICBlY2hvICIzMiI7Owog ICAgICAgICB4ODZfNjQpICAgZWNobyAiNjQiOzsKKyAgICAgICAgcmlzY3Y2NCkgICBlY2hvICI2 NCI7OwogICAgIGVzYWMKIH0KIAoKRnJvbSBiYzIxZTBjMjZjZjViZTMzNmEzOGVjNTUyODZiNjY3 ODc1NGNiZjA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnlu YXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NTowOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDA1LzE4OV0gYmx1ZWRldmlsOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dz L2JsdWVkZXZpbC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JsdWVkZXZpbC90ZW1w bGF0ZSBiL3NyY3BrZ3MvYmx1ZWRldmlsL3RlbXBsYXRlCmluZGV4IDkxYWY5MmM1NzNmNzguLjFi YzNmY2Q5NGQ4YzIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmx1ZWRldmlsL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvYmx1ZWRldmlsL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnYmx1ZWRldmlsJwogcGtnbmFtZT1ibHVlZGV2aWwKLXZlcnNpb249NS4yNy42Cit2 ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9h cmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIC1ES0Y1X0hPU1RfVE9PTElORz0vdXNyL2xpYi9jbWFr ZSIKQEAgLTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL2JsdWVkZXZpbCIKIGRpc3RmaWxlcz0i JHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTdjZWZmODc3MjAwZWRkNzA0M2E1N2FlYmEzYmY1NDgyOGIyZDk2NTAxYjRl NTg0OTdiNmYwZWMwMWI3M2RmNzQKK2NoZWNrc3VtPWNiYzFhZWE4Y2NlZWZkNjhhMDE1MDk4MTAx ZGU2NjlkZjlhNGQ2MTlhN2E3YmFlYjgyM2IxYjYwYjM2MmJmMzUKCkZyb20gZTZlNzFhNTI1NmYx YmRmNDkyY2MxMzAzNjNmYjQ0NjNkY2I2YTE0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6 MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAwNi8xODldIGJyZWV6ZS1ndGs6IHVwZGF0ZSB0byA1 LjI3LjcuCgotLS0KIHNyY3BrZ3MvYnJlZXplLWd0ay90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2JyZWV6ZS1ndGsvdGVtcGxhdGUgYi9zcmNwa2dzL2JyZWV6ZS1ndGsvdGVtcGxhdGUK aW5kZXggZjViNjZlZmE3NjMzNi4uNGY4NjIxMTkzMDBiMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9i cmVlemUtZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnJlZXplLWd0ay90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JyZWV6ZS1ndGsnCiBwa2duYW1lPWJy ZWV6ZS1ndGsKLXZlcnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBzYXNz YyBweXRob24zIHB5dGhvbjMtY2Fpcm8gcXQ1LWRldmVsIgpAQCAtMTAsNCArMTAsNCBAQCBtYWlu dGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEvYnJlZXplLWd0 ayIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWFjMmFhYjEzYjkyMjRkZGVhNjU2MGZkYmFjOWZl OWQ5M2EwOGE4Njc4N2Y5NWI5NWM0M2E5NWIxMzQ4MzZiZGEKK2NoZWNrc3VtPTI5MzI5NGVkMGI1 MWMwNzQ5NmZlOGMyZWRlODQxZWI2ZTJlZjQxOTI2NzI1ZTExNjU4YzcyMDg1NDNkOTU4ZTgKCkZy b20gMTU4NDM4MGMwODczOGJkNzMwMWU2MmE1Mjg4ZDUxMTg3MTVkMzAwMSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEg QXVnIDIwMjMgMTQ6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAwNy8xODldIGJyZWV6ZTog dXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9icmVlemUvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9icmVlemUvdGVtcGxhdGUgYi9zcmNwa2dzL2JyZWV6ZS90ZW1wbGF0ZQpp bmRleCA1OTg0NjlmMmIxMjAyLi5mZThlNzg1NGFkYTEwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jy ZWV6ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JyZWV6ZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JyZWV6ZScKIHBrZ25hbWU9YnJlZXplCi12ZXJzaW9u PTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBj b25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAgLTE0LDcgKzE0LDcgQEAgbWFp bnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEvYnJlZXplIgog ZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09NWQ5YThkN2U1YjA2MWNlNDE4M2M0Zjg0MmIwZTgyZTYx MzJiNmM4ZTdlYmMyYzFkNTc5YmFhMDY2ZmZhNmM2YworY2hlY2tzdW09YmZmZGNmMzE0MDA5YjZm Y2IwMjAyYTU4ZTQ4YjNlNjJhNGNiZjc0MWY1ZjI5OWMyNTc5OThmNDZkZWE0Y2NmMQogCiBpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAljb25maWd1cmVfYXJncys9IiAtREtGNV9IT1NUX1RP T0xJTkc9L3Vzci9saWIvY21ha2UiCgpGcm9tIGYzYjZjYTliMDhiOTlkMjI3OTYwMDMzNDdkZGVk NjRlN2QzMjUxMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5u eW5hdG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjI1ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMDgvMTg5XSBmbGF0cGFrLWtjbTogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3Jj cGtncy9mbGF0cGFrLWtjbS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsYXRwYWst a2NtL3RlbXBsYXRlIGIvc3JjcGtncy9mbGF0cGFrLWtjbS90ZW1wbGF0ZQppbmRleCBjZjVmYmEw NWUxMjdiLi5jYjZjMTgxOGI0YTNmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZsYXRwYWsta2NtL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZmxhdHBhay1rY20vdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdmbGF0cGFrLWtjbScKIHBrZ25hbWU9ZmxhdHBhay1rY20K LXZlcnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIC1ES0Y1X0hPU1RfVE9P TElORz0vdXNyL2xpYi9jbWFrZSIKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4x LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL2ZsYXRw YWsta2NtIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmNlZTk0YmI5ZWViNThkYjViMzA0ZTE2 YjVkYjA2MGQ4ZjU1OWUxYjEwYjIwMmU4M2FiOGUzNDJiZTkyN2Y3YQorY2hlY2tzdW09YTJlYzM1 ZTMxNTI0YzIxZjM3N2EzNjg3YmQ4YzQxOTc2NTU3MGUzNTI5OWVjYjNmNTM1MWEyNmVkZGVlMzJi MwoKRnJvbSAwODhiMGE0YmE5YTkxOTYwMDRlYWI4MTlhODdmNTgxNWRhMTA1Yjk0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1 ZSwgMSBBdWcgMjAyMyAxNDo1NToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDA5LzE4OV0ga2Fj dGl2aXR5bWFuYWdlcmQ6IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3Mva2FjdGl2aXR5 bWFuYWdlcmQvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rYWN0aXZpdHltYW5hZ2Vy ZC90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2FjdGl2aXR5bWFuYWdlcmQvdGVtcGxhdGUKaW5kZXggMmM5 OGNhODQwMzJhOS4uYWJkNGUxODQ5YzQ0YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9rYWN0aXZpdHlt YW5hZ2VyZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2thY3Rpdml0eW1hbmFnZXJkL3RlbXBsYXRl CkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2FjdGl2aXR5bWFuYWdlcmQn CiBwa2duYW1lPWthY3Rpdml0eW1hbmFnZXJkCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3 LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9InFlbXUiCkBA IC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5v cmcvcGxhc21hL2thY3Rpdml0eW1hbmFnZXJkIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFz bWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MDYx ODBiMzJhZDY0Zjg4ZTJmM2VhNTk4ZTg4N2M0MmNmNjgxODlkYmExNGIyMjBkY2VhZmNiMDQ5MGM1 YjAyZAorY2hlY2tzdW09MmRmMjQ1MzMwNjEyZDc5MDkwOTgwMjY5YWQ3YzRlNzc2MTUwNTk4ZTU4 Mzc2MWFjODNmNjI4Y2MxZmZhZmJiNAoKRnJvbSAzOWE3NDdhYjMzZTlhYWVlMDRmM2UyOTcwMDY5 NTJkM2I5YzI4YjNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hu bnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NToyNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDEwLzE4OV0ga2RlLWNsaS10b29sczogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQog c3JjcGtncy9rZGUtY2xpLXRvb2xzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva2Rl LWNsaS10b29scy90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2RlLWNsaS10b29scy90ZW1wbGF0ZQppbmRl eCBmOGIxZDdmN2ZjOTFhLi5lYjZmYzdhY2RiNjBjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2tkZS1j bGktdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9rZGUtY2xpLXRvb2xzL3RlbXBsYXRlCkBA IC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2RlLWNsaS10b29scycKIHBrZ25h bWU9a2RlLWNsaS10b29scwotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1P RkYgLURLRjVfSE9TVF9UT09MSU5HPS91c3IvbGliL2NtYWtlIgpAQCAtMTQsNyArMTQsNyBAQCBt YWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iTEdQTC0yLjEt b3ItbGF0ZXIsIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2Rl Lm9yZy9wbGFzbWEva2RlLWNsaS10b29scyIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21h LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI1ZTJi MWMzYmY4MmMxMTJjODQ4OGFlYTczZGNhMTFhNDk5NjNlYTY2ZTY2ZGI4ZjM1OGY4ZTAzOTRiYTBm YWEKK2NoZWNrc3VtPWFhZGIyNGU2MTUzNDUxMTExYzIyNTc0ZWUyN2IxZTU2MmJhNWU5MjNmMGEy NjBhODE3ZWQ1OGEyMTY4YTIxYWYKIAogcG9zdF9pbnN0YWxsKCkgewogCWxuIC1zZiAuLi9saWJl eGVjL2tmNS9rZGVzdSAke0RFU1RESVJ9L3Vzci9iaW4KCkZyb20gZjQ2NzQ4Yjc3MjFjNDYxMjIy NjcwM2I3MjhiMTJjNzY5ODlkZDM3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9o biA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6MjcgKzAy MDAKU3ViamVjdDogW1BBVENIIDAxMS8xODldIGtkZS1ndGstY29uZmlnNTogdXBkYXRlIHRvIDUu MjcuNy4KCi0tLQogc3JjcGtncy9rZGUtZ3RrLWNvbmZpZzUvdGVtcGxhdGUgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9rZGUtZ3RrLWNvbmZpZzUvdGVtcGxhdGUgYi9zcmNwa2dzL2tkZS1ndGstY29u ZmlnNS90ZW1wbGF0ZQppbmRleCA0YTQ3Nzc2ZDBjODcyLi5kNzEwN2RhMTBjOTVlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2tkZS1ndGstY29uZmlnNS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2tkZS1n dGstY29uZmlnNS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2tkZS1ndGstY29uZmlnNScKIHBrZ25hbWU9a2RlLWd0ay1jb25maWc1Ci12ZXJzaW9uPTUuMjcu NgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1 cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5l cj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxh c21hL2tkZS1ndGstY29uZmlnIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJz aW9ufS8ke3BrZ25hbWUlNX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iM2YyM2E1NjAy NTMwYjc3ZDU1ZmYwOGUxMDg2OTI1NzY3NDBkZTA1NmVkYjAxZjdiMWJjMzg0M2Q4OTBmODIwCitj aGVja3N1bT1hZTJhMWU0NjhmNDEzMmE4ZWZjZjYxODE4ODQ3ZDQ1M2U3M2Y4YjcwMTBkOTAwYTZh MTQwNmZkN2RlOTAxYzhmCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtl ZGVwZW5kcys9IiBrY29yZWFkZG9ucyIKCkZyb20gMmIzNTFjMDYyNmI0NGRiMjVjZGU5ODA1MTJh ZWMyOWU3NjQxMWEzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6MjggKzAyMDAKU3ViamVj dDogW1BBVENIIDAxMi8xODldIGtkZWNvcmF0aW9uOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBz cmNwa2dzL2tkZWNvcmF0aW9uL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva2RlY29y YXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2tkZWNvcmF0aW9uL3RlbXBsYXRlCmluZGV4IDFlYzM0 OTczMjZmZjIuLmQzYTU2OTA1YmYzNjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2RlY29yYXRpb24v dGVtcGxhdGUKKysrIGIvc3JjcGtncy9rZGVjb3JhdGlvbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tkZWNvcmF0aW9uJwogcGtnbmFtZT1rZGVjb3JhdGlv bgotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYiCkBAIC0xMiw3ICsx Miw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJM R1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3BsYXNt YS9rZGVjb3JhdGlvbiIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTlkYjY5YjQzOWE5YTZjODYz YzViZTc0YmEzODA5NjQwODdjODNiMGY0MzhhZWFmNmQwYTk3ZjVmZDA1Mjk0ZTYKK2NoZWNrc3Vt PWVmMjZhNDk5ZDUxZjRkYTllNmMyNWEwMjA5ZDA4YjVlOGRjZWRkZGM4NmUwNjY1MzdmNDZmMjBm MDAxZjcyOTQKIAoga2RlY29yYXRpb24tZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQiCgpGcm9tIDE1MTlmOTRmNjFlMzZkMjYzODZhNDFlNzM0YjcxYTMyMzE1 M2Q3YmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjI5ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMTMvMTg5XSBrZGVwbGFzbWEtYWRkb25zNTogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3Jj cGtncy9rZGVwbGFzbWEtYWRkb25zNS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv a2RlcGxhc21hLWFkZG9uczUvdGVtcGxhdGUgYi9zcmNwa2dzL2tkZXBsYXNtYS1hZGRvbnM1L3Rl bXBsYXRlCmluZGV4IGIzY2U5MjNkZjQzOWEuLjE3ZWNmMzQ3NGQ4YWQgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mva2RlcGxhc21hLWFkZG9uczUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9rZGVwbGFzbWEt YWRkb25zNS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tk ZXBsYXNtYS1hZGRvbnM1JwogcGtnbmFtZT1rZGVwbGFzbWEtYWRkb25zNQotdmVyc2lvbj01LjI3 LjYKLXJldmlzaW9uPTIKK3ZlcnNpb249NS4yNy43CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1j bWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYgLURLRjVfSE9TVF9UT09M SU5HPS91c3IvbGliL2NtYWtlIgogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVz IHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyBwa2ctY29uZmlnCkBAIC0xMyw0ICsxMyw0IEBAIG1h aW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUu b3JnL3BsYXNtYS9rZGVwbGFzbWEtYWRkb25zIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFz bWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWUlNX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0z NDNiMGQ0MGE4MWJmNDk4NjMzYzcxYTEzODkwMmI0M2U2MTQ2MWZjYWUyMjA5YjZmMDllN2NmNmM4 YmFmMDg3CitjaGVja3N1bT01MWM3M2Q4ODcyZmNlN2YzYmM1NGE4ZmJmNDgwYTQwYzAxNzhkNjNm NzAzZmU2OTY3MjFkMDQ2ZjNhMjVlZjUwCgpGcm9tIGU0MDhmOWNlZmY3NmE3OTAyMmI5M2QyNWUw M2JmODIxMGIxNzE0NDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjI5ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwMTQvMTg5XSBrZ2FtbWE1OiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNw a2dzL2tnYW1tYTUvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZ2FtbWE1L3RlbXBs YXRlIGIvc3JjcGtncy9rZ2FtbWE1L3RlbXBsYXRlCmluZGV4IDhmZjhjZGYzOTg4OWUuLmUyOWNm NmY3MjQ1OWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2dhbW1hNS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2tnYW1tYTUvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdrZ2FtbWE1JwogcGtnbmFtZT1rZ2FtbWE1Ci12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3 LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlM RF9URVNUSU5HPU9GRiIKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEva2dhbW1hNSIKIGRpc3RmaWxlcz0iJHtLREVfU0lU RX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTYxZjExMWVjY2NkMmZhZTdmNDZhMWM3ZWY4MGQ0OWEyMWJkODBkOGFhZGI2NTU0MTQ1M2Rm MTM0MzUxZmQ2OTIKK2NoZWNrc3VtPWQ0NWU4OGQ0ZWUxYzZjZmZhMGI1ZWYwODVjNGE3ZDAyOGFk ZTM3ZTJkYWE3MjI1M2U3NDk0MWQ5YmNmNWFlNmMKCkZyb20gZjc3ZGQwNjczODc1ZWZmYjcyNTc4 ZGIyZDY4NDc1NjZhN2JmMDJmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6MzAgKzAyMDAK U3ViamVjdDogW1BBVENIIDAxNS8xODldIGtob3RrZXlzOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0t CiBzcmNwa2dzL2tob3RrZXlzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva2hvdGtl eXMvdGVtcGxhdGUgYi9zcmNwa2dzL2tob3RrZXlzL3RlbXBsYXRlCmluZGV4IDk3OWJmMTMxZDgy NTYuLjNhMWQzYjllZjA5NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2hvdGtleXMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9raG90a2V5cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2tob3RrZXlzJwogcGtnbmFtZT1raG90a2V5cwotdmVyc2lvbj01LjI3LjYK K3ZlcnNpb249NS4yNy43CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJl X2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9 IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMi4wLW9ubHksIExHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL2to b3RrZXlzIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGJjN2VjNjAwZTA0NTA5MDE2NDhlNjUx M2YyNWY3YzFjY2FkNjc5OGNlMzhiNzA0MzcyNThkYWE2ZDgzM2Q3ZQorY2hlY2tzdW09NmQ4NTA0 MWRjNTlhNGUwYzY3MjZjOTdjM2YzMGNhZjZkMjJiOGY5NjBiY2ZjMzlmY2RkMjk0ZjE2NTM4ZWZj NgogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAljb25maWd1cmVfYXJncys9IiAtRERF U0tUT1BUT0pTT05fRVhFQ1VUQUJMRT0vdXNyL2Jpbi9kZXNrdG9wdG9qc29uIgoKRnJvbSBkZWEy MjllYzBiZmNlYWNjMGE0ZWMzMGM5ODU4OTJlNzQ0NTk3NDRlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAy MyAxNDo1NTozMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDE2LzE4OV0ga2luZm9jZW50ZXI6IHVw ZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3Mva2luZm9jZW50ZXIvdGVtcGxhdGUgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9raW5mb2NlbnRlci90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2luZm9jZW50 ZXIvdGVtcGxhdGUKaW5kZXggOTM3ZDc4MzA5YzUwNi4uNGExMjcxNGM1MGI4NCAxMDA2NDQKLS0t IGEvc3JjcGtncy9raW5mb2NlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2tpbmZvY2VudGVy L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2luZm9jZW50 ZXInCiBwa2duYW1lPWtpbmZvY2VudGVyCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcK IHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9U RVNUSU5HPU9GRiAtREtGNV9IT1NUX1RPT0xJTkc9L3Vzci9saWIvY21ha2UiCkBAIC0xNiw0ICsx Niw0IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciwgR0ZETC0xLjItb25seSIKIGhvbWVw YWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3BsYXNtYS9raW5mb2NlbnRlciIKIGRpc3RmaWxl cz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWNkOTZlOTk1MmNjOGM3MzMzN2RkYTA3ODZkNDVmM2YzODFjYTUxMzdm OGVjYTVmZWVlMjIwOWY2Mzk4MTkwMWIKK2NoZWNrc3VtPTcyZWU4ODcyMjEzZjA4YzJkOTEwZTgy NzEyZGIyZDI0NzczYzI4NzAxY2RiYjllN2QyM2Y2NzE3OTE0MDE1OTYKCkZyb20gMmQ0ZTkzZjhm Y2UxYTM4YTFkYjU0MmQwMzQ4NGI2MTgzMmYyMjEyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6 NTU6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxNy8xODldIGttZW51ZWRpdDogdXBkYXRlIHRv IDUuMjcuNy4KCi0tLQogc3JjcGtncy9rbWVudWVkaXQvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9rbWVudWVkaXQvdGVtcGxhdGUgYi9zcmNwa2dzL2ttZW51ZWRpdC90ZW1wbGF0ZQpp bmRleCAxNTA4MGNmMzU4YTM0Li41MTA1MzE5Nzg3OGQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2tt ZW51ZWRpdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ttZW51ZWRpdC90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ttZW51ZWRpdCcKIHBrZ25hbWU9a21lbnVl ZGl0Ci12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAgLTEzLDQg KzEzLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFz bWEva21lbnVlZGl0IgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODkxNDRmZmE4Mzg1NTYyNzUw NmNhZTJjMTBlNWU2NDZmM2YxZWZkODM5MTIxYjFkN2ViNTk1YjdjNTFhNDY5NgorY2hlY2tzdW09 NjdhYmYyYmY5MTY2YzBjNzc5NzQ0MmVkY2ZjNWQ2ZjdlYmE0YTU3NWFjNjg5ODU5YjY1MWVhYzUw OWY5YzA1OAoKRnJvbSBhNGQ3ODRhMmRmMDM1OWZhZDFmZDYzN2JmM2E4MzRhZTcyNjVhYmY4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRh dGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NTozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDE4LzE4 OV0ga3BpcGV3aXJlOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dzL2twaXBld2lyZS90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2twaXBld2lyZS90ZW1wbGF0ZSBiL3NyY3Br Z3Mva3BpcGV3aXJlL3RlbXBsYXRlCmluZGV4IGRiNGU0MmYwZDQ1NmEuLmM5MTMyZTU2MWFlNDkg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva3BpcGV3aXJlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva3Bp cGV3aXJlL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna3Bp cGV3aXJlJwogcGtnbmFtZT1rcGlwZXdpcmUKLXZlcnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcu NwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZXh0cmEt Y21ha2UtbW9kdWxlcyBwbGFzbWEtd2F5bGFuZC1wcm90b2NvbHMgZ2V0dGV4dApAQCAtMTMsNyAr MTMsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0i R1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3BsYXNt YS9rcGlwZXdpcmUiCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03ZWQ2NTNiZmMwZTgyYWEzMmUw NTc2NmRlZjM0NjY5MzdhNWIyZTMxYWJiZjNkNTBjOTI5OGIyM2U2ZTQzMjhiCitjaGVja3N1bT0w YWQyNzNiODg3NWMwNDcyZTBiNGY0MzMyYzlmMWE1ZDkzZGNhNjUzM2Y5NzhmZDA2MDYwOTRiZDkx ZDI0NzgyCiAKIGtwaXBld2lyZS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gODY4YjAyZDk2MmMyNTJhOWNiYTc1 YjVjZjE5YjA1YWNlMGFkMDNmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6MzQgKzAyMDAK U3ViamVjdDogW1BBVENIIDAxOS8xODldIGtzY3JlZW46IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0K IHNyY3BrZ3Mva3NjcmVlbi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2tzY3JlZW4v dGVtcGxhdGUgYi9zcmNwa2dzL2tzY3JlZW4vdGVtcGxhdGUKaW5kZXggNGZjMDdkMDMzYjIzZi4u NDdhZjI3ZWQ0YTZlNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9rc2NyZWVuL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3Mva3NjcmVlbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2tzY3JlZW4nCiBwa2duYW1lPWtzY3JlZW4KLXZlcnNpb249NS4yNy42Cit2ZXJzaW9u PTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIt REJVSUxEX1RFU1RJTkc9T0ZGIC1ES0Y1X0hPU1RfVE9PTElORz0vdXNyL2xpYi9jbWFrZSIKQEAg LTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL2tzY3JlZW4iCiBkaXN0ZmlsZXM9IiR7S0RFX1NJ VEV9L3BsYXNtYS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1kZWQwNjUxZWVjNjdlMjJmMjJmYTNkNmIwZGJiMDNlODFiZmIyZDRlNWE3NDY4ZTllZmM1 ZjVhNDU5OGJmMjU0CitjaGVja3N1bT0zOGQ3NTVlMWIwMTU4NGUxYzIxYTkyNWIyYWIwNDZjMGY4 Zjk3N2JiMWM0ZTc1ZDQzNmViYzljNjMzMTYwYTBmCgpGcm9tIGRiY2U0OGJhMDc4ZTQyZDc0MzRk ZDg0MmMyYTlmMTc2MmQyMjEzNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4g PG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjM1ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwMjAvMTg5XSBrc2NyZWVubG9ja2VyOiB1cGRhdGUgdG8gNS4yNy43 LgoKLS0tCiBzcmNwa2dzL2tzY3JlZW5sb2NrZXIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9rc2NyZWVubG9ja2VyL3RlbXBsYXRlIGIvc3JjcGtncy9rc2NyZWVubG9ja2VyL3RlbXBs YXRlCmluZGV4IGM0YzEzNDEyM2Q5MTEuLjc2MmZkNjQ4MGJiN2IgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3Mva3NjcmVlbmxvY2tlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2tzY3JlZW5sb2NrZXIvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdrc2NyZWVubG9ja2Vy JwogcGtnbmFtZT1rc2NyZWVubG9ja2VyCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcK IHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9U RVNUSU5HPU9GRiAtREtGNV9IT1NUX1RPT0xJTkc9L3Vzci9saWIvY21ha2UiCkBAIC0xNCw3ICsx NCw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21h L2tzY3JlZW5sb2NrZXIiCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01ZDA0OTYwZjgyODk1YTE1 ZTUxYWQwNzIzOGEzOTRlMzQ3ZjI4ODE1YWI5M2U5ZjVhOTcxMDZjMjFiZjFmNTVkCitjaGVja3N1 bT1jMjAxM2I1MTBlZDcxNGIwZjI1NDRiMzczOTNiODJjYjFkNjY5OWRlYzgyOWM4OTA2ZDEwZGQy NDlhOWVjMzg3CiAKIGtzY3JlZW5sb2NrZXItZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNj Kz0iIC0gZGV2ZWxvcG1lbnQiCgpGcm9tIGQ4ZTJhNzk5ZjZkMWYxYTk4YWJkOTYwMGUxNGVjZGM2 ZDA1ZGE4Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5h dG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjM1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMjEvMTg5XSBrc3NoYXNrcGFzczogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtn cy9rc3NoYXNrcGFzcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2tzc2hhc2twYXNz L3RlbXBsYXRlIGIvc3JjcGtncy9rc3NoYXNrcGFzcy90ZW1wbGF0ZQppbmRleCAxMTdlZTA1OGVm YTk3Li5mZjVhZjI4ZjRhNzBiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2tzc2hhc2twYXNzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mva3NzaGFza3Bhc3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdrc3NoYXNrcGFzcycKIHBrZ25hbWU9a3NzaGFza3Bhc3MKLXZl cnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIgpAQCAtMTIsNSArMTIsNSBA QCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3BsYXNtYS9rc3No YXNrcGFzcyIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg1NGNhZDc5ZWI4YjI3Njg1ZTk3YzRm NjJmZDk2ZTk3NzQ0ZmM2YTM4NDkxZjE1NmMwNDdkMGJjZTVjNmU4YzUKK2NoZWNrc3VtPWUxMzE3 NWFjZjFhYzFlYjk1YTI0NTRhYjMwYjU3ZTFlODI5YTMyMTQ1YTdhY2Y5MzFmODkyNTQ2ZTQ2ZWJl NmUKIGFsdGVybmF0aXZlcz0ic3NoLWFza3Bhc3M6L3Vzci9saWJleGVjL3NzaC1hc2twYXNzOi91 c3IvYmluL2tzc2hhc2twYXNzIgoKRnJvbSBmNjQ3NjRmMjNiNGFmNjI0YWMwZGU1MWE1NDU5NTRi YjZmMTA5MjgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnlu YXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NTozNiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDIyLzE4OV0ga3N5c3RlbXN0YXRzOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNw a2dzL2tzeXN0ZW1zdGF0cy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2tzeXN0ZW1z dGF0cy90ZW1wbGF0ZSBiL3NyY3BrZ3Mva3N5c3RlbXN0YXRzL3RlbXBsYXRlCmluZGV4IGQ1MDM0 NzFiZGM1NzAuLjRkNzYyZGU4ZmE4ZTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva3N5c3RlbXN0YXRz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva3N5c3RlbXN0YXRzL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna3N5c3RlbXN0YXRzJwogcGtnbmFtZT1rc3lzdGVt c3RhdHMKLXZlcnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBxdDUtcW1h a2UgZ2V0dGV4dApAQCAtMTIsNCArMTIsNCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnlu YXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSwgTEdQTC0y LjEtb25seSBPUiBMR1BMLTMtb25seSIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3Jn L3BsYXNtYS9rc3lzdGVtc3RhdHMiCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3Zl cnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mMTgxMGFjNjY0 MWJiMTdjNDJhOTBmNjQzZWYwZmI0NTIyNmU5YjE1NTYwMWRkMTgyN2NjYWYzMDJmZmEyMzc2Citj aGVja3N1bT03YzNmODk5OGU2ZjVhYmQxYWRmZDIyZmU2MjcyYjlmMTc4YmI0ZGI3MTZhM2Q4ZGZj MTYyZjQ2ZTRjNTlhNWJiCgpGcm9tIDYxZDAwNmIyYzQwOWJjMjM1OGUwZTYxYTU2MDYzMDVmZGMz NjdkN2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjM3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMjMvMTg5XSBrd2FsbGV0LXBhbTogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9r d2FsbGV0LXBhbS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2t3YWxsZXQtcGFtL3Rl bXBsYXRlIGIvc3JjcGtncy9rd2FsbGV0LXBhbS90ZW1wbGF0ZQppbmRleCA2Yjg4MzRlN2QzODhi Li43MTdjNmZlNjY0MWE0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2t3YWxsZXQtcGFtL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3Mva3dhbGxldC1wYW0vdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdrd2FsbGV0LXBhbScKIHBrZ25hbWU9a3dhbGxldC1wYW0KLXZlcnNp b249NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UK IGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIGV4dHJhLWNtYWtlLW1v ZHVsZXMiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2lu dmVudC5rZGUub3JnL3BsYXNtYS9rd2FsbGV0LXBhbSIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0v cGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PWI3YWRmMDA2NWYyMDg1NWVkYzE4OTU5ZjVmYTY2MWY3OWZlNTMwODFjYzM1ZDRjNGRmMjQyOTg4 ZTNkMTY4MzAKK2NoZWNrc3VtPTJiM2JmNTdkNGQxMTA4YzY0ZmRhZWU3YjNiMTQwMDg2MzZmZjgz MTZkOWRkODMyNTIwNmY0N2ZjMmY4NjgwYTkKCkZyb20gZTI2MzE0N2U5YjJmZDY3NjRjNmUxMjE4 NjVlNDk2ZjhjMDM2NjBiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVA am9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6MzggKzAyMDAKU3Vi amVjdDogW1BBVENIIDAyNC8xODldIGt3YXlsYW5kLWludGVncmF0aW9uOiB1cGRhdGUgdG8gNS4y Ny43LgoKLS0tCiBzcmNwa2dzL2t3YXlsYW5kLWludGVncmF0aW9uL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mva3dheWxhbmQtaW50ZWdyYXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2t3 YXlsYW5kLWludGVncmF0aW9uL3RlbXBsYXRlCmluZGV4IGUyMzk1YmIzOTJkOTQuLmQ4ZWJhZjZi ODRiNmEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva3dheWxhbmQtaW50ZWdyYXRpb24vdGVtcGxhdGUK KysrIGIvc3JjcGtncy9rd2F5bGFuZC1pbnRlZ3JhdGlvbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2t3YXlsYW5kLWludGVncmF0aW9uJwogcGtnbmFtZT1r d2F5bGFuZC1pbnRlZ3JhdGlvbgotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElO Rz1PRkYiCkBAIC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2lu dmVudC5rZGUub3JnL3BsYXNtYS9rd2F5bGFuZC1pbnRlZ3JhdGlvbiIKIGRpc3RmaWxlcz0iJHtL REVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPTEwYjdkYjRkZmEyNzZmZTRlMjM5OGY3NDJmNjA0NTkzNjdjNWRiMWM5MWY4YTkw MTVlMDZlOWY1MWUwOTJjODMKK2NoZWNrc3VtPTFlNzk5NzY4OGEzMjk1NjNmNjJjZTc1MzRlODIz MjZhNDMxN2Q5ZWNmMTI0MDNkMTJlNzBkNGQyMzczMTZlYmIKCkZyb20gMWE5Y2ZjZjY5YmZhMjA5 NjIyODc2NjA2ZjdkOTRmZWM2YWI3MWM1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6NDAg KzAyMDAKU3ViamVjdDogW1BBVENIIDAyNS8xODldIGt3aW46IHVwZGF0ZSB0byA1LjI3LjcuCgot LS0KIHNyY3BrZ3Mva3dpbi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2t3aW4vdGVt cGxhdGUgYi9zcmNwa2dzL2t3aW4vdGVtcGxhdGUKaW5kZXggOTFhMTE3Njk5NTcyMC4uOGZiMjA1 ZThhZGNiZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9rd2luL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv a3dpbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2t3aW4n CiBwa2duYW1lPWt3aW4KLXZlcnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1xZW11CkBAIC0yMSw3ICsyMSw3IEBA IG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL2t3aW4i CiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02MmQ1YmQ1ZTkxZTk1MWM5YWQ4YzJmYzQ5YzI5NDg1 ZmVjYTc4ZGI5ODU3MzFmMDc3OWNkYWFmNTA1MjQ5OWVjCitjaGVja3N1bT1jYmZmNTViYTAxODQ2 M2JjMDViYTI4NjY2M2FlYTFkN2IwZjQ4OTkzZGMzYzc3OGI1NTE0ZTM0ZmNkYjk1YTJmCiByZXBs YWNlcz0ia3dheWxhbmQtc2VydmVyPj0wIgogCiBrd2luLWRldmVsX3BhY2thZ2UoKSB7CgpGcm9t IDhjMjg4NDgxZmRhNzUzMzQwZWFkZmRjNWQyODAxYTY5YTBkNWU4ZTYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1 ZyAyMDIzIDE0OjU1OjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjYvMTg5XSBrd3JpdGVkOiB1 cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dzL2t3cml0ZWQvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9rd3JpdGVkL3RlbXBsYXRlIGIvc3JjcGtncy9rd3JpdGVkL3RlbXBsYXRl CmluZGV4IDEwNmJmYWJjMWI1MjkuLmZiZGZjZjdjNTJlZjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv a3dyaXRlZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2t3cml0ZWQvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdrd3JpdGVkJwogcGtnbmFtZT1rd3JpdGVkCi12 ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNt YWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAgLTExLDQgKzExLDQg QEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEva3dy aXRlZCIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTA2NjUyNDA4MTI1OTRiOWM1ZWMyMGIyNGRk ZTE3MzRiZWRjMzNmMTQ0MGViODU5MWU3MjQyOWFiMmIxYTc4OTQKK2NoZWNrc3VtPTE2ZWM0MTc0 NWNiYmU1YzE2MmQ1ODA4YWIyNDY2M2RjNzQyNDhjNzE5ZDMyNGM4MTA0N2ZkMTY1N2QwMThmYTgK CkZyb20gZjJjODg1YzIzYThhOTMzN2E0OGFiNDI3MTAxZDhlNDU4M2U0N2FkYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUs IDEgQXVnIDIwMjMgMTQ6NTU6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyNy8xODldIGxheWVy LXNoZWxsLXF0OiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dzL2xheWVyLXNoZWxsLXF0 L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGF5ZXItc2hlbGwtcXQvdGVtcGxhdGUg Yi9zcmNwa2dzL2xheWVyLXNoZWxsLXF0L3RlbXBsYXRlCmluZGV4IDZmNmUxNzM1Y2E2ZGMuLjBl OGVhMzIyZDg4ODQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGF5ZXItc2hlbGwtcXQvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9sYXllci1zaGVsbC1xdC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2xheWVyLXNoZWxsLXF0JwogcGtnbmFtZT1sYXllci1zaGVsbC1x dAotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1jbWFrZQogY29uZml1Z3JlX2FyZ3M9Ii1EV2F5bGFuZFNjYW5uZXJfRVhFQ1VUQUJMRT0vdXNy L2Jpbi93YXlsYW5kLXNjYW5uZXIiCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWluZXI9IkpvaG4g PG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL2xheWVyLXNoZWxsLXF0IgogZGlzdGZp bGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZTY1YzI5Y2E2NWJmOTQ1ZGE0ZjUzYmNlOWViMzYxNGViMTEwNWU1 NzY1MmUzZmIxNzgyZWU5ZDI0YTllODc5MworY2hlY2tzdW09MjdjNDRlN2RiNzNiZjJhYTY3Mjg3 MTllOGJiODQ4YzFiMGMxYzdhNzA0Yzg2MzQ5YTQxOTU3NzkyMGM2ZjQyMQogCiBsYXllci1zaGVs bC1xdC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKCkZyb20gOTBmNzc4NzYwMzU0ZWJjNWNiNjBlZmQ0ZGZhYjE3NjM4YWJh NmI3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6NDIgKzAyMDAKU3ViamVjdDogW1BBVENI IDAyOC8xODldIGxpYmtzY3JlZW46IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3MvbGli a3NjcmVlbi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmtzY3JlZW4vdGVtcGxh dGUgYi9zcmNwa2dzL2xpYmtzY3JlZW4vdGVtcGxhdGUKaW5kZXggZDE1MDM3YTI4YTdiNi4uMjdj M2MxNDU5M2I0MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJrc2NyZWVuL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvbGlia3NjcmVlbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2xpYmtzY3JlZW4nCiBwa2duYW1lPWxpYmtzY3JlZW4KLXZlcnNpb249NS4yNy42 Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3Vy ZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVy PSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEvbGlia3NjcmVlbiIKIGRp c3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWMxYTkzNzNmYWFiNWE3ZWM3Nzk4MGE2OTZhNzU5OTU4M2I0 ZmRhOGUxZjEyZGEyYzU3MTZiYzk1NjI3ODllZmIKK2NoZWNrc3VtPTg2YjUxYmYzNDA2YzM1M2Fm ZDdhMmUxZjQ3ZTI1MTFkMDYwMzEzZDhiZDhhMmVmN2ZhNzNhM2JmMTUzZTNlYWIKIAogbGlia3Nj cmVlbi1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCIKCkZy b20gZTUyOWU2OWI2NjA5NGQ4NTU4Yjc4NThmY2NiZDU3ODIzOThhY2MyOSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEg QXVnIDIwMjMgMTQ6NTU6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyOS8xODldIGxpYmtzeXNn dWFyZDogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9saWJrc3lzZ3VhcmQvdGVtcGxh dGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJrc3lzZ3VhcmQvdGVtcGxhdGUgYi9zcmNwa2dz L2xpYmtzeXNndWFyZC90ZW1wbGF0ZQppbmRleCA5Y2ExYWMxZGQyNTZkLi5hZDE4M2UyOGJkZmVi IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmtzeXNndWFyZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2xpYmtzeXNndWFyZC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2xpYmtzeXNndWFyZCcKIHBrZ25hbWU9bGlia3N5c2d1YXJkCi12ZXJzaW9uPTUuMjcuNgor dmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRl cGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgZ2V0dGV4dCBrYXV0aCBxdDUtaG9zdC10b29scyBx dDUtcW1ha2UKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v aW52ZW50LmtkZS5vcmcvcGxhc21hL2xpYmtzeXNndWFyZCIKIGRpc3RmaWxlcz0iJHtLREVfU0lU RX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTllY2IyY2I0YWFiNmJhOGYwYjc5MDI2N2YyMmFhYjQ4MjQ0YTc4YzYzNzBiODZlYjY2MmEw NDgwZmIwMzFiZGIKK2NoZWNrc3VtPTY4MmE5MzkyNTJlMzVhNTJiN2Y5NWE2ZjViZmNjN2NiOTgz ZmEzYjUyNzVhZTNiMzc3YWI4MDQwYjI5MmNiMTgKIAogYnVpbGRfb3B0aW9ucz0id2ViZW5naW5l IgogCgpGcm9tIDUzNjM1ZGU4YzgwMDUwZGIzMzE4ODU4YWM2MTI1ZjBiZmNhZWI4NTggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTog VHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzAvMTg5XSBt aWxvdTogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9taWxvdS90ZW1wbGF0ZSB8IDQg KystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL21pbG91L3RlbXBsYXRlIGIvc3JjcGtncy9taWxvdS90ZW1wbGF0 ZQppbmRleCBlYThlMTZiODVlZjk3Li5mZDJlNmRiMGM4MmY2IDEwMDY0NAotLS0gYS9zcmNwa2dz L21pbG91L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbWlsb3UvdGVtcGxhdGUKQEAgLTEsNiArMSw2 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtaWxvdScKIHBrZ25hbWU9bWlsb3UKLXZlcnNpb249 NS4yNy42Cit2ZXJzaW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNv bmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIgpAQCAtMTIsNyArMTIsNyBAQCBtYWlu dGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgTFBHTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9y Zy9wbGFzbWEvbWlsb3UiCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZWFlYTczOWJjMTAwZjMx M2QwOThhMTM2MTRiMTZjMDFiZGFmYzdkYmUwZTllYmVkNWU3YTZkOGNmZDM4MWM2CitjaGVja3N1 bT04MTY5MGJmZmM5ZDU4NDQ1YzA5YWY2NDY3MGQ4MGNkNTM3MzVkYjJmMGRhMzZhNDg0N2QzNDY2 ZWM1YTkwODUzCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5k cys9IiBrcGFja2FnZS1kZXZlbCBrY29uZmlnLWRldmVsIGtjb3JlYWRkb25zLWRldmVsIHBsYXNt YS1mcmFtZXdvcmsiCgpGcm9tIDgyY2VlMGNlMGFhMDk3MmZjOGIyMjY4MTEyZjkxNmUzZWVhNjNj ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MzEvMTg5XSBveHlnZW4tc291bmRzOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dzL294 eWdlbi1zb3VuZHMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9veHlnZW4tc291bmRz L3RlbXBsYXRlIGIvc3JjcGtncy9veHlnZW4tc291bmRzL3RlbXBsYXRlCmluZGV4IGQ2MzFmNDEy NzUxM2QuLmI2MDI2ODdkZGJlZjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3h5Z2VuLXNvdW5kcy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL294eWdlbi1zb3VuZHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdveHlnZW4tc291bmRzJwogcGtnbmFtZT1veHlnZW4t c291bmRzCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMiCkBAIC05 LDQgKzksNCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5z ZT0iTEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9w bGFzbWEvb3h5Z2VuLXNvdW5kcyIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVy c2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWFmZWFmMzBjNDFk MTkxZTQzNTgyZDQxNjAxMTAyYjE3ZWZmYTJiOWMyZTY1YzYxY2E2YTNlMzZlZjJmYzMyN2UKK2No ZWNrc3VtPWY4ODk3Y2ZkODVmZTFlN2M2YTBkOGI5Y2U5ZmRhZmUxY2I4NzgxMTJlMzA0Njc2NjM3 MTNjOWViOTY1MjUyOGMKCkZyb20gZWNjNTAxNzhiZWNlNWE0NjIzMjg4OGM3ZmI0NTFlMDJlMGEy YTY4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6NDUgKzAyMDAKU3ViamVjdDogW1BBVENI IDAzMi8xODldIG94eWdlbjogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9veHlnZW4v dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9veHlnZW4vdGVtcGxhdGUgYi9zcmNwa2dz L294eWdlbi90ZW1wbGF0ZQppbmRleCBhMWYyYjg1MGMyNDdiLi5kYjk1NWIyOTk3Yzg3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL294eWdlbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL294eWdlbi90ZW1w bGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ294eWdlbicKIHBrZ25h bWU9b3h5Z2VuCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAg LTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxp Y2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL294eWdlbiIKIGRpc3RmaWxlcz0iJHtLREVfU0lU RX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWE5MDYzOTEyZTIzOGZjZDExM2Y3MTljMDFkMTAwMDI4NTQ1MzczZDFiNzg4MWIxNDdmY2M5 MmY5MTBkYzA5MDYKK2NoZWNrc3VtPWEyMThmYzJmMmY3YjI5N2RlNTZiNzVmNDEzYzVhY2FiMDM5 OGY4YzRhN2EwNDNhMWI5OWI5OWQxNTI1NjM5OGQKCkZyb20gOWYzZDU2NDE1Mjk3YjY2YjM3OTM0 NDY1MTc5YWExOGYzYzM4M2VkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6NDYgKzAyMDAK U3ViamVjdDogW1BBVENIIDAzMy8xODldIHBsYXNtYS1icm93c2VyLWludGVncmF0aW9uOiB1cGRh dGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dzL3BsYXNtYS1icm93c2VyLWludGVncmF0aW9uL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGxhc21hLWJyb3dzZXItaW50ZWdyYXRpb24v dGVtcGxhdGUgYi9zcmNwa2dzL3BsYXNtYS1icm93c2VyLWludGVncmF0aW9uL3RlbXBsYXRlCmlu ZGV4IGM2NDI3NDE4NzUxZWIuLmM3ZDU4MzkwN2JlMWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGxh c21hLWJyb3dzZXItaW50ZWdyYXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wbGFzbWEtYnJv d3Nlci1pbnRlZ3JhdGlvbi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3BsYXNtYS1icm93c2VyLWludGVncmF0aW9uJwogcGtnbmFtZT1wbGFzbWEtYnJvd3Nl ci1pbnRlZ3JhdGlvbgotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYK QEAgLTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIK IGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2Rl Lm9yZy9wbGFzbWEvcGxhc21hLWJyb3dzZXItaW50ZWdyYXRpb24iCiBkaXN0ZmlsZXM9IiR7S0RF X1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT03MmY4NmQxZWUxYjY0NzQ5MjFlZDEwMjQzOWRhYmY0YzM4MTNjMmFlMzczMTQ5NmMy MjI2NTZiOGFiNjkxOThhCitjaGVja3N1bT0zZWU1Yjg5M2EyMTBmODQ4NDk2MTJjNDhjMDNjNTQ0 YjYxMTgwMGVkYmMxZWQ2YWU1Y2EyMTAwYTY5YmI2MDMwCgpGcm9tIGQwODg0ZjFjNjQyNWExOGYz OWM4Nzc3ZDY0ZDZkZjg4NDZjNDZlMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpv aG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjQ5ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwMzQvMTg5XSBwbGFzbWEtZGVza3RvcDogdXBkYXRlIHRvIDUu MjcuNy4KCi0tLQogc3JjcGtncy9wbGFzbWEtZGVza3RvcC90ZW1wbGF0ZSB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3BsYXNtYS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9wbGFzbWEtZGVza3Rv cC90ZW1wbGF0ZQppbmRleCBjNzc0MGUzMDViNmI3Li5iMDM3NzgyYzI0NjhmIDEwMDY0NAotLS0g YS9zcmNwa2dzL3BsYXNtYS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcGxhc21hLWRl c2t0b3AvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwbGFz bWEtZGVza3RvcCcKIHBrZ25hbWU9cGxhc21hLWRlc2t0b3AKLXZlcnNpb249NS4yNy42Cit2ZXJz aW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdz PSItREJVSUxEX1RFU1RJTkc9T0ZGCkBAIC0yMCw2ICsyMCw2IEBAIG1haW50YWluZXI9IkpvaG4g PG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIu MC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIEdGREwtMS4yLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL3BsYXNtYS1kZXNrdG9wIgogZGlzdGZp bGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZTI0ODVlYTI1ZDY5NWJhMjJjMWYxNDk1N2FiZTE0YWY2NTg3NDFh NWU3ODgyNjk1NDNhYjdmZjMzMDQ1YTY4MworY2hlY2tzdW09MjI5YWE4Mzg4NjlhMDVlMzUxZGI1 ZjJkODE2MDhjOWRjZTIxNmNmZWI4NWYxZmI3ZTdkNTc1ZTg4NjkzNTNkYQogcmVwbGFjZXM9InVz ZXItbWFuYWdlcj49MCIKIHB5dGhvbl92ZXJzaW9uPTMKCkZyb20gOWNmZjE4N2Q1MTIzNGU0NmM3 MGM1MmZiODFiYzM4MWQ5N2Y4NmJkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9o biA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6NTAgKzAy MDAKU3ViamVjdDogW1BBVENIIDAzNS8xODldIHBsYXNtYS1kaXNrczogdXBkYXRlIHRvIDUuMjcu Ny4KCi0tLQogc3JjcGtncy9wbGFzbWEtZGlza3MvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9wbGFzbWEtZGlza3MvdGVtcGxhdGUgYi9zcmNwa2dzL3BsYXNtYS1kaXNrcy90ZW1wbGF0 ZQppbmRleCA0ZGZmZTgwMDhlZjc4Li5jNWZkNWM3ZGQ0MjgyIDEwMDY0NAotLS0gYS9zcmNwa2dz L3BsYXNtYS1kaXNrcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BsYXNtYS1kaXNrcy90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BsYXNtYS1kaXNrcycKIHBr Z25hbWU9cGxhc21hLWRpc2tzCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5H PU9GRiIKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZl bnQua2RlLm9yZy9wbGFzbWEvcGxhc21hLWRpc2tzIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9w bGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 M2NjMDQ0NTZiN2MxNmM1YmI3OGMwZTg5ZjlhODY0Y2M0OGVjNmQ1NzFkNGQ4NWM5MDI1ZjIzMmMz YTg3NjQyNworY2hlY2tzdW09M2JhOWI2OWUyNjk0MjBmNzNmZWNmODk0ZTY1MDYxYjM2YTc1ZDE5 N2EyOWZjYTA0ZTViMDA2OTU4MWQ4OTI0YgoKRnJvbSAxNTc3YWJmZTIyZDljNjYwMGIyNjM4NDFj MzQxODg2ODY4OWQ0MzA4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBq b2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NTo1MSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDM2LzE4OV0gcGxhc21hLWZpcmV3YWxsOiB1cGRhdGUgdG8gNS4yNy43LgoK LS0tCiBzcmNwa2dzL3BsYXNtYS1maXJld2FsbC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3BsYXNtYS1maXJld2FsbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGxhc21hLWZpcmV3YWxsL3Rl bXBsYXRlCmluZGV4IGFiMTc2MzJiNzRkNGUuLjdhZmIwNmM4YzQ4ZjMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcGxhc21hLWZpcmV3YWxsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcGxhc21hLWZpcmV3 YWxsL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncGxhc21h LWZpcmV3YWxsJwogcGtnbmFtZT1wbGFzbWEtZmlyZXdhbGwKLXZlcnNpb249NS4yNy42Cit2ZXJz aW9uPTUuMjcuNwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdz PSItREtGNV9IT1NUX1RPT0xJTkc9L3Vzci9saWIvY21ha2UiCkBAIC0xMiw0ICsxMiw0IEBAIG1h aW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMi4wLW9u bHkgT1IgR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvbmV0 d29yay9wbGFzbWEtZmlyZXdhbGwiCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3Zl cnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jODYyM2NkZmVk MzhjZDg4NjE1M2M1MWExZjZiZGE0YWY2NzA5ZDIzN2FlNzA5NjM4MDZmMTgyY2QyZjc2Y2M5Citj aGVja3N1bT1jZGM2YzNiNDIyZGVmMTNkZTJkZjVmNWNhZDlmMDA0ZWZkMzIxMGE2MWFlYWNjYWZj MmE2MzNkOGZjOTRiNGQ4CgpGcm9tIGZlMzQ0NTk5MTIzM2M5OTZlZmZjNGZiNGEzNDdkMmUwMjBh NjhkNTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjUxICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMzcvMTg5XSBwbGFzbWEtaW50ZWdyYXRpb246IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNy Y3BrZ3MvcGxhc21hLWludGVncmF0aW9uL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cGxhc21hLWludGVncmF0aW9uL3RlbXBsYXRlIGIvc3JjcGtncy9wbGFzbWEtaW50ZWdyYXRpb24v dGVtcGxhdGUKaW5kZXggN2ZkYTE2NmQyMmFhMS4uOTg1YzEwZGVjZGM0NSAxMDA2NDQKLS0tIGEv c3JjcGtncy9wbGFzbWEtaW50ZWdyYXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wbGFzbWEt aW50ZWdyYXRpb24vdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdwbGFzbWEtaW50ZWdyYXRpb24nCiBwa2duYW1lPXBsYXNtYS1pbnRlZ3JhdGlvbgotdmVyc2lv bj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQog Y29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYiCkBAIC0xNCw0ICsxNCw0IEBAIG1h aW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJMR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3BsYXNtYS9wbGFzbWEt aW50ZWdyYXRpb24iCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNWZkNWRmMjE4Nzg4YjQ0YzBi YjJhNDM3ZGIxY2FkMTE5MTdkNGViZTZhY2VmZDg5YWJkM2Y3MjEwNGQ4ZGFiCitjaGVja3N1bT1l M2YyNjZjNjBlZmIzZDk2ZjNhMjI3ODJiYTgxYjdjNzA3MWIwMTA0ODRlYTcxN2ExNjkzMjdjM2Y2 NjQxZmFhCgpGcm9tIGVhOTJkZjU3NTJkYTllMzdmZmI5MTkyMTY4ZTdlOTQ2ZDU4YWM1NTIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0 ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU1OjUyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzgvMTg5 XSBwbGFzbWEtbm06IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3MvcGxhc21hLW5tL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGxhc21hLW5tL3RlbXBsYXRlIGIvc3JjcGtn cy9wbGFzbWEtbm0vdGVtcGxhdGUKaW5kZXggNzVlODVhOTRhOWVjYi4uYWI3YTAwMDY4YWEyYyAx MDA2NDQKLS0tIGEvc3JjcGtncy9wbGFzbWEtbm0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wbGFz bWEtbm0vdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwbGFz bWEtbm0nCiBwa2duYW1lPXBsYXNtYS1ubQotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43 CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERf VEVTVElORz1PRkYgLURLRjVfSE9TVF9UT09MSU5HPS91c3IvbGliL2NtYWtlIgpAQCAtMTYsNCAr MTYsNCBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0i TEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFz bWEvcGxhc21hLW5tIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGE2NDllZTgxNDMzMzQwZWIx MDY4ODlkMDZhM2I2NTkyYjk5ZGM0MWRhYjg5OGY5ZGNkMTQzMTJmYjY4ZDljOQorY2hlY2tzdW09 NDg4YTM0MTE4ZTYwNzBmYWI1MDA1Y2YwOTJkOTMzMmJiYzZjNDE1ZGFiNmFhODM4N2UwODU2MDEy MzY1M2ZmMQoKRnJvbSBkNTNmOTRhNTEwMGQ3ODcxMzQzMjNmNjY3NmYxN2VmMTRlZjY3MTVmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRh dGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NTo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM5LzE4 OV0gcGxhc21hLXBhOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0tCiBzcmNwa2dzL3BsYXNtYS1wYS90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BsYXNtYS1wYS90ZW1wbGF0ZSBiL3NyY3Br Z3MvcGxhc21hLXBhL3RlbXBsYXRlCmluZGV4IDI5NGY1NjA1YzAxMzUuLmY0ODAzZWFkNjAzMDgg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGxhc21hLXBhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcGxh c21hLXBhL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncGxh c21hLXBhJwogcGtnbmFtZT1wbGFzbWEtcGEKLXZlcnNpb249NS4yNy42Cit2ZXJzaW9uPTUuMjcu NwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxE X1RFU1RJTkc9T0ZGIC1ES0Y1X0hPU1RfVE9PTElORz0vdXNyL2xpYi9jbWFrZSIKQEAgLTE1LDQg KzE1LDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxh c21hL3BsYXNtYS1wYSIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRlNzYwOGJhMzJhNDdhZmZl NjRiYjc3ZWMzMGJjM2VkOTc3YTRjYTc1NzczOTkyMzhkZDM4MjFkZjU4NTZlNGYKK2NoZWNrc3Vt PTRjNzNmYjcyYWY3M2E1MjU4ZmI3ZDM4NGVlYTY1MDg0Yjc2MzQxYWU5YzU1NjUyYTQ5MWUxMTYz Y2I0NmUyZWQKCkZyb20gYjc3NDY1Zjc4Y2QyZmM2MTlmZGUzNTljZTk1NDJiZDJhYzYwMTE3YyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpE YXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6NTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0MC8x ODldIHBsYXNtYS1zZGs6IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3MvcGxhc21hLXNk ay90ZW1wbGF0ZSB8IDE1ICsrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wbGFzbWEtc2Rr L3RlbXBsYXRlIGIvc3JjcGtncy9wbGFzbWEtc2RrL3RlbXBsYXRlCmluZGV4IGM5YzBhNTg0NGYy YjQuLmVhMGE2NjRiMmM4ZmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGxhc21hLXNkay90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3BsYXNtYS1zZGsvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3BsYXNtYS1zZGsnCiBwa2duYW1lPXBsYXNtYS1zZGsKLXZlcnNp b249NS4yNy42LjEKK3ZlcnNpb249NS4yNy43LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNt YWtlCi1jb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKLWhvc3RtYWtlZGVwZW5k cz0iZXh0cmEtY21ha2UtbW9kdWxlcyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMga2NvcmVhZGRv bnMKLSBnZXR0ZXh0IgorY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYgLURLRjVf SE9TVF9UT09MSU5HPS91c3IvbGliL2NtYWtlIgoraG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFr ZS1tb2R1bGVzIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scworIGdldHRleHQga3BhY2thZ2UtZGV2 ZWwga2NvbmZpZy1kZXZlbCBrY29yZWFkZG9ucy1kZXZlbCBwbGFzbWEtZnJhbWV3b3JrIgogbWFr ZWRlcGVuZHM9InBsYXNtYS1mcmFtZXdvcmstZGV2ZWwga2RlbGliczRzdXBwb3J0LWRldmVsIGtk ZXNpZ25lcnBsdWdpbi1kZXZlbAogIGtpdGVtbW9kZWxzLWRldmVsIGtuZXdzdHVmZi1kZXZlbCBr dGV4dGVkaXRvci1kZXZlbCBrZG9jdG9vbHMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJQbGFzbWEgZGV2 ZWxvcG1lbnQgYXBwbGljYXRpb25zIgpAQCAtMTMsOSArMTMsNCBAQCBtYWludGFpbmVyPSJKb2hu IDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEvcGxh c21hLXNkayIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTJlNGIwZTQ2NmZjZWQ0MzQ1ZWNi ZDljM2IyMDhiZDMzNDc5Mzc2MmIwMmFlMThiYzU0OTA0ODYwYTY5ZGNlYWYKLQotaWYgWyAiJENS T1NTX0JVSUxEIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzKz0iIGtwYWNrYWdlLWRldmVsIGtj b25maWctZGV2ZWwga2NvcmVhZGRvbnMtZGV2ZWwgcGxhc21hLWZyYW1ld29yayIKLQljb25maWd1 cmVfYXJncys9IiAtREtGNV9IT1NUX1RPT0xJTkc9L3Vzci9saWIvY21ha2UiCi1maQorY2hlY2tz dW09ZDMxMGE4MWVlZDY4MzM0ODg2YTdlNzc2N2JjZTkwNjZjNmNjYjA3MDg3YWE3N2QwNGI3M2Fj ZjQxYTU0MjZhNAoKRnJvbSA4YmY5ZDkzZTU2ZjY1ZmQyYWU0NGFjNTkyY2EyM2I0N2UyZDViNDA2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ CkRhdGU6IFR1ZSwgMSBBdWcgMjAyMyAxNDo1NTo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQx LzE4OV0gcGxhc21hLXN5c3RlbW1vbml0b3I6IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3Br Z3MvcGxhc21hLXN5c3RlbW1vbml0b3IvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9w bGFzbWEtc3lzdGVtbW9uaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGxhc21hLXN5c3RlbW1vbml0 b3IvdGVtcGxhdGUKaW5kZXggYmNmYTdlOWFkMDcwNy4uYjRmMWZjNTA4MjhmZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9wbGFzbWEtc3lzdGVtbW9uaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Bs YXNtYS1zeXN0ZW1tb25pdG9yL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAncGxhc21hLXN5c3RlbW1vbml0b3InCiBwa2duYW1lPXBsYXNtYS1zeXN0ZW1tb25p dG9yCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgZ2V0dGV4dCBx dDUtaG9zdC10b29scyBxdDUtcW1ha2UKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iSm9o biA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb25seSBPUiBHUEwtMy4w LW9ubHksIExHUEwtMi4xLW9ubHkgT1IgTEdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczov L2ludmVudC5rZGUub3JnL3BsYXNtYS9wbGFzbWEtc3lzdGVtbW9uaXRvciIKIGRpc3RmaWxlcz0i JHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTc5NmViMjVmMDYxZjA1Y2Q0ZTU5MDE5Y2ZlOTAyY2I2MWQ1M2JlNjA5MDRi ZWM2OTM2NmIzNDdjM2NmYjljMWQKK2NoZWNrc3VtPTE0NjExYjQyNWIxODE3NzQzYWNhZjU5NDAw NWYxNmE2YWUzNDdiMDYzMTgyZmVjMGVlMWY4Njc2NTg5ZTI4ZTMKCkZyb20gMWM3Njg1N2MyOTc0 MGFhZmRlZjVhZjA2YzBkYWJmYTViNzA3OTI4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTU6 NTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0Mi8xODldIHBsYXNtYS10aHVuZGVyYm9sdDogdXBk YXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9wbGFzbWEtdGh1bmRlcmJvbHQvdGVtcGxhdGUg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wbGFzbWEtdGh1bmRlcmJvbHQvdGVtcGxhdGUgYi9zcmNw a2dzL3BsYXNtYS10aHVuZGVyYm9sdC90ZW1wbGF0ZQppbmRleCAwN2Q4ZmY2YTkwZTY0Li5iOTI1 NWNiNjEzMzdhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BsYXNtYS10aHVuZGVyYm9sdC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3BsYXNtYS10aHVuZGVyYm9sdC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BsYXNtYS10aHVuZGVyYm9sdCcKIHBrZ25hbWU9cGxh c21hLXRodW5kZXJib2x0Ci12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURLRjVfSE9TVF9UT09MSU5H PS91c3IvbGliL2NtYWtlIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBq b2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL2ludmVudC5rZGUub3JnL3BsYXNtYS9wbGFzbWEtdGh1bmRlcmJvbHQiCiBkaXN0Zmls ZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT02NjlmZWUyNmY1OWJiMmM5MTIyYjlhOTI4NmE0NWYwODA4ZGU0MmQ0 N2VkNGI2NjM4MmJmNDBhZTkyNWQ2Y2M2CitjaGVja3N1bT1kNjBhYzc4ODhmNWIxMWU1MzU3M2M0 MTYxNzU4OGJiYzUxMjBiYzIzYWM0Mzc3MjY1YzIwYTZlYmQ0MmRmMDY5CiAKIGRvX2NoZWNrKCkg ewogCTogIyBSZXF1aXJlcyBydW5uaW5nIGRidXMgYW5kIGJvbHQgc2VydmljZXMKCkZyb20gOGE0 NjE5OWEzNmFmMzQ1ZmY2NDQ3MTkyODdlNjkyNDdjMmZkMDc4NSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIw MjMgMTQ6NTU6NTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0My8xODldIHBsYXNtYS12YXVsdDog dXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9wbGFzbWEtdmF1bHQvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9wbGFzbWEtdmF1bHQvdGVtcGxhdGUgYi9zcmNwa2dzL3BsYXNt YS12YXVsdC90ZW1wbGF0ZQppbmRleCAzNDAxMTdmNGVkMTE1Li5mZmI5ODlkMzBmYTU4IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3BsYXNtYS12YXVsdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BsYXNt YS12YXVsdC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Bs YXNtYS12YXVsdCcKIHBrZ25hbWU9cGxhc21hLXZhdWx0Ci12ZXJzaW9uPTUuMjcuNgordmVyc2lv bj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0i IC1ES0Y1X0hPU1RfVE9PTElORz0vdXNyL2xpYi9jbWFrZQpAQCAtMTQsNCArMTQsNCBAQCBtYWlu dGFpbmVyPSJHaXVzZXBwZSBGaWVycm8gPGdzcGVAYWUtZGVzaWduLndzPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vS0RFL3BsYXNtYS12YXVsdCIKIGRpc3RmaWxlcz0i JHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTI0NWY1ZjRkYWM5OTM0YzI0OTFmYzkzNjlmZWFjYjQwMDJkMTZiZGU4YzQz NjYxMTQ1NTdkZTJiMmE0MGFhNzMKK2NoZWNrc3VtPTE4MWFiYTZiMzdlZTA2NWY3MzU0YzVkZjI5 NjNkYjY4ZWIwMTQwMGRhODUzMWNkYTYyYTBhY2FhNjgyZWI1ZGMKCkZyb20gYzRhZGY2ZjkxNGE2 YjI5NWJlYTIxYWM1ZjIwM2YyZDY5ZjU5ZDM0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDEgQXVnIDIwMjMgMTQ6NTY6 MTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0NC8xODldIHBsYXNtYS13b3Jrc3BhY2Utd2FsbHBh cGVyczogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9wbGFzbWEtd29ya3NwYWNlLXdh bGxwYXBlcnMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wbGFzbWEtd29ya3NwYWNl LXdhbGxwYXBlcnMvdGVtcGxhdGUgYi9zcmNwa2dzL3BsYXNtYS13b3Jrc3BhY2Utd2FsbHBhcGVy cy90ZW1wbGF0ZQppbmRleCAxZmVkZDE0ZDEwOTM0Li5lZjFhMWVhMzQ3NzFlIDEwMDY0NAotLS0g YS9zcmNwa2dzL3BsYXNtYS13b3Jrc3BhY2Utd2FsbHBhcGVycy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3BsYXNtYS13b3Jrc3BhY2Utd2FsbHBhcGVycy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BsYXNtYS13b3Jrc3BhY2Utd2FsbHBhcGVycycKIHBrZ25h bWU9cGxhc21hLXdvcmtzcGFjZS13YWxscGFwZXJzCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01 LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURC VUlMRF9URVNUSU5HPU9GRiIKQEAgLTEwLDQgKzEwLDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVA am9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9wbGFzbWEvcGxhc21hLXdvcmtzcGFjZS13YWxscGFwZXJz IgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTMwMzU1NzUxNjM3NmVhYzc3NTljN2FmZjc5NmYy ODE1YTY1ZTY4NzRlY2RkMjYwMTE4YzY2YTA2MWRmMWIwNQorY2hlY2tzdW09ZGVjNTcxY2UzNzBl YTM0NGE3MGQ4MmYxNmFmODJlODE5N2M4YWZjMDk4YzBlN2Q0N2ZiZThkNWI2YjA1MzhhMAoKRnJv bSA1MGM0MTRlMjI0MjI4MzU2Yjc5MjdlOGMyMGFmZTg0NmY2NWU2NTY3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBB dWcgMjAyMyAxNDo1NjoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ1LzE4OV0gcGxhc21hLXdv cmtzcGFjZTogdXBkYXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9wbGFzbWEtd29ya3NwYWNl L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wbGFzbWEtd29ya3NwYWNlL3RlbXBs YXRlIGIvc3JjcGtncy9wbGFzbWEtd29ya3NwYWNlL3RlbXBsYXRlCmluZGV4IDkwMzNhZDU1YWMx N2UuLjRiN2JjMjE3ZjdiODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGxhc21hLXdvcmtzcGFjZS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BsYXNtYS13b3Jrc3BhY2UvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwbGFzbWEtd29ya3NwYWNlJwogcGtnbmFtZT1w bGFzbWEtd29ya3NwYWNlCi12ZXJzaW9uPTUuMjcuNgotcmV2aXNpb249MgordmVyc2lvbj01LjI3 LjcKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlM RF9URVNUSU5HPU9GRgogIC1EV2F5bGFuZFNjYW5uZXJfRVhFQ1VUQUJMRT0vdXNyL2Jpbi93YXls YW5kLXNjYW5uZXIKQEAgLTIzLDcgKzIzLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4yLW9yLWxhdGVy LCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3Bs YXNtYS9wbGFzbWEtd29ya3NwYWNlIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2 ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MWNlNmY3MGY3 YmI5MDliOWVkOWMyMTNiYzU1MjhhNGU3YzI2NGY1NzBhOWM5NGYyZjRmYjI1YzE1MjhmODg4Mwor Y2hlY2tzdW09MDY0Mjk0MWRjZGY1MTNhYzIwMTQ5NDg5N2UyYzUwOTdhMmYyZGI4YmU2ZGNkYjU5 N2NhZTFhNDNkODJlY2U1ZgogCiBidWlsZF9vcHRpb25zPSJwaXBld2lyZSIKIGJ1aWxkX29wdGlv bnNfZGVmYXVsdD0icGlwZXdpcmUiCgpGcm9tIDcwN2Q1Yjc1MWZhOTIyOTEwMGQ4NzE5MmM4MmNm NmEwY2RlMmU1YWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5u eW5hdG9yLmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU2OjE0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNDYvMTg5XSBwb2xraXQta2RlLWFnZW50OiB1cGRhdGUgdG8gNS4yNy43LgoKLS0t CiBzcmNwa2dzL3BvbGtpdC1rZGUtYWdlbnQvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wb2xraXQta2RlLWFnZW50L3RlbXBsYXRlIGIvc3JjcGtncy9wb2xraXQta2RlLWFnZW50L3Rl bXBsYXRlCmluZGV4IDZkMDY0MWRlOWRiZTMuLjU4OTE3ZTUwMDM0MzMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcG9sa2l0LWtkZS1hZ2VudC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BvbGtpdC1rZGUt YWdlbnQvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb2xr aXQta2RlLWFnZW50JwogcGtnbmFtZT1wb2xraXQta2RlLWFnZW50Ci12ZXJzaW9uPTUuMjcuNgor dmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVf YXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAgLTEyLDQgKzEyLDQgQEAgbWFpbnRhaW5lcj0i Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly9jb21taXRzLmtkZS5vcmcvcG9sa2l0LWtkZS1hZ2VudCIKIGRpc3Rm aWxlcz0iJHtLREVfU0lURX0vcGxhc21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0xLSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09ZGY3MzdhZTI2N2ZmYWI1YWJlNDYwNjI0YzMyNWRhYWQxNzY4 ODJhYzFhNGZkNWRmODFlNGJhNDRiZTRjZWQ0YworY2hlY2tzdW09OGM0OTA2ZjEzZjBhOGIzMTQy M2Y2ZTJlYjQyMTYzZmVhM2E5NTE3YWRlYzUxOGIzZjE2NWQ5OWFjYWI2Y2Y1YwoKRnJvbSA1ZTNi NDUzMWZmNjE2YzZjNjA5OTZkNTU4NzZlZDI0YWVhZWQ5Y2U3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAy MyAxNDo1NjoxNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ3LzE4OV0gcG93ZXJkZXZpbDogdXBk YXRlIHRvIDUuMjcuNy4KCi0tLQogc3JjcGtncy9wb3dlcmRldmlsL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcG93ZXJkZXZpbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG93ZXJkZXZpbC90 ZW1wbGF0ZQppbmRleCBlMWM2YWQ0ZjNkZTlmLi44YjIyNzEwNjUyZmYwIDEwMDY0NAotLS0gYS9z cmNwa2dzL3Bvd2VyZGV2aWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb3dlcmRldmlsL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG93ZXJkZXZpbCcKIHBr Z25hbWU9cG93ZXJkZXZpbAotdmVyc2lvbj01LjI3LjYKK3ZlcnNpb249NS4yNy43CiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1P RkYgLURLRjVfSE9TVF9UT09MSU5HPS91c3IvbGliL2NtYWtlIgpAQCAtMTMsNCArMTMsNCBAQCBt YWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2ludmVudC5rZGUub3JnL3BsYXNtYS9wb3dlcmRl dmlsIgogZGlzdGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NmIyMzBmYWJmMjczODQ1NWUzZGZjM2FiMTVl NzBiOTQyZWM4MjdkYzMwODA0MzQ3NzRjNmNiMTlkMzIxN2ZiNQorY2hlY2tzdW09YzA4MDg0MjM4 YjhlMjIyNWRjYWYzNjIyNmU2OTQ3NmU3Y2UwZDQyNzU5NzcwOGU1OTg3MjBjNTlkYzg1Mzg5NAoK RnJvbSAxYzE2ZDMzNmJiMjE5ZjIwNjJmZWVhZDZhNzk5ZWJhNzVhYmM3NGNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwg MSBBdWcgMjAyMyAxNDo1NjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ4LzE4OV0gc2RkbS1r Y206IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3Mvc2RkbS1rY20vdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9zZGRtLWtjbS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2RkbS1rY20v dGVtcGxhdGUKaW5kZXggYjA5YmM3OTRiMjFmMS4uODY1ZGFkYTlhNDQxMSAxMDA2NDQKLS0tIGEv c3JjcGtncy9zZGRtLWtjbS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NkZG0ta2NtL3RlbXBsYXRl CkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc2RkbS1rY20nCiBwa2duYW1l PXNkZG0ta2NtCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiAtREtG NV9IT1NUX1RPT0xJTkc9L3Vzci9saWIvY21ha2UiCkBAIC0xNCw0ICsxNCw0IEBAIG1haW50YWlu ZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcGxhc21hL3NkZG0ta2NtIgogZGlz dGZpbGVzPSIke0tERV9TSVRFfS9wbGFzbWEvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09ZGM3MGFiMTc4ZjY5NTRhNmFhZjc4NjI0NDBhNjQ3NDJjMGM2 MDBjNDhmNDU0NDYyZTk3ZTA5YTFkZGQ2YjVlMgorY2hlY2tzdW09MDY0NWY1NTExYzk5Y2QyZjAx OTYzY2YwZTAxY2NmZTI0OGJiY2EzM2RhZjM0OWM3MjlmMGZlMGNhMzEwM2M0MwoKRnJvbSBkMjlm YzMwNTFlYmNmMjdiNGE1Y2Y0OWFjNjIyM2Y4NmU5NDExMjBmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMSBBdWcgMjAy MyAxNDo1NjoxNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ5LzE4OV0gc3lzdGVtc2V0dGluZ3M6 IHVwZGF0ZSB0byA1LjI3LjcuCgotLS0KIHNyY3BrZ3Mvc3lzdGVtc2V0dGluZ3MvdGVtcGxhdGUg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXN0ZW1zZXR0aW5ncy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv c3lzdGVtc2V0dGluZ3MvdGVtcGxhdGUKaW5kZXggYzRkOWRjMjA5ZTI2Yi4uYTRjMTc0ZTJiYmE4 YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9zeXN0ZW1zZXR0aW5ncy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3N5c3RlbXNldHRpbmdzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnc3lzdGVtc2V0dGluZ3MnCiBwa2duYW1lPXN5c3RlbXNldHRpbmdzCi12ZXJzaW9u PTUuMjcuNgordmVyc2lvbj01LjI3LjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBj b25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKQEAgLTE0LDQgKzE0LDQgQEAgbWFp bnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIsIEdGREwtMS4yLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9w bGFzbWEvc3lzdGVtc2V0dGluZ3MiCiBkaXN0ZmlsZXM9IiR7S0RFX1NJVEV9L3BsYXNtYS8ke3Zl cnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYzJjNDcxZjFl MTNlOWQwNjNiNjE2NTUyYmRjMGQ4MzFjNDMwMzM4ZjNlM2IzMmJiYjNjMDQxODk1NmU3ODlkCitj aGVja3N1bT03YzFkZGExNDRjN2JjZDY0NjgzMzE4OTVhMzdkZjE5ZDM1MmNjODQ3MzJhM2Q2MGJk NjI3NDFhNmM5YWE2YzZlCgpGcm9tIDdkZmIzMzkzMDc0MjI5MDEzOTlhMDEzYTE2OWFmNzdiOTVj YTBiMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4KRGF0ZTogVHVlLCAxIEF1ZyAyMDIzIDE0OjU2OjE3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwNTAvMTg5XSB4ZGctZGVza3RvcC1wb3J0YWwta2RlOiB1cGRhdGUgdG8gNS4yNy43LgoKLS0t CiBzcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1rZGUvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwta2RlL3RlbXBsYXRlIGIvc3JjcGtncy94ZGctZGVz a3RvcC1wb3J0YWwta2RlL3RlbXBsYXRlCmluZGV4IDk0Y2M3NWY1NmUxM2UuLjljNjQwYzk1Mjhk ZTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWtkZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1rZGUvdGVtcGxhdGUKQEAgLTEsNiArMSw2 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd4ZGctZGVza3RvcC1wb3J0YWwta2RlJwogcGtnbmFt ZT14ZGctZGVza3RvcC1wb3J0YWwta2RlCi12ZXJzaW9uPTUuMjcuNgordmVyc2lvbj01LjI3LjcK IHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURXYXlsYW5k U2Nhbm5lcl9FWEVDVVRBQkxFPS91c3IvYmluL3dheWxhbmQtc2Nhbm5lciIKQEAgLTEzLDQgKzEz LDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQ TC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9waGFicmljYXRvci5rZGUub3JnL3Nv dXJjZS94ZGctZGVza3RvcC1wb3J0YWwta2RlLyIKIGRpc3RmaWxlcz0iJHtLREVfU0lURX0vcGxh c21hLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWFl ZDVlNDk2NjBhNDdjODZmMjZkZjY3YmY4MGFjM2U1NWQyY2U5YmYyYTNlNjc2YmZhYTkwNTUxNjgx MGY3NzMKK2NoZWNrc3VtPWNjZGJmOWJhZDY0NjVkZTkzNGM0ZGMzMGE2ZmI0ZDQzNzY4NzJjYWYw MDE0YjkxYzM3NDllMjcxNDBmZTA4Y2QKCkZyb20gOGYwMDRlNjBmOGE4ZmI5M2U1NTY0MDcwMDY2 YmY5MmYzNGM0YmQwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDI3IEp1biAyMDIzIDEyOjAyOjU5ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNTEvMTg5XSBhc3Ryb2lkOiByZWJ1aWxkIGFnYWluc3QgcHJvdG9idWYtMjMu M18xCgotLS0KIHNyY3BrZ3MvYXN0cm9pZC9wYXRjaGVzL3Byb3RvYnVmLTIzLnBhdGNoIHwgMTQg KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9hc3Ryb2lkL3BhdGNoZXMvcHJvdG9idWYtMjMucGF0Y2gKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2FzdHJvaWQvcGF0Y2hlcy9wcm90b2J1Zi0yMy5wYXRjaCBiL3Ny Y3BrZ3MvYXN0cm9pZC9wYXRjaGVzL3Byb3RvYnVmLTIzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjAwYThlNzQ0MmZkYjMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2FzdHJvaWQvcGF0Y2hlcy9wcm90b2J1Zi0yMy5wYXRjaApAQCAtMCwwICsxLDE0 IEBACitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXgg NmViMDBjZi4uMTAyOTZlOCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFr ZUxpc3RzLnR4dAorQEAgLTExNyw3ICsxMTcsOSBAQCBmaW5kX3BhY2thZ2UgKCBCb29zdCBSRVFV SVJFRAorICAgc3lzdGVtCisgICApCisgCisrZmluZF9wYWNrYWdlIChQcm90b2J1ZiBDT05GSUcg UkVRVUlSRUQpCisgZmluZF9wYWNrYWdlIChQcm90b2J1ZiAzLjAgUkVRVUlSRUQpCisrc2V0IChQ Uk9UT0JVRl9MSUJSQVJJRVMgcHJvdG9idWY6OmxpYnByb3RvYnVmKQorIHNldCAoUFJPVE9fRklM RVMKKyAgIHNyYy9tb2Rlcy90aHJlYWRfdmlldy93ZWJleHRlbnNpb24vbWVzc2FnZXMucHJvdG8K KyAgICkKCkZyb20gNWZlNzY5M2Y2OWQ2OGMxMWVlZmRjM2U0YjlmOTY4YTY0MjVjYjJlNiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRl OiBNb24sIDMgQXByIDIwMjMgMTk6Mzc6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1My8xODld IHF0Ni13ZWJlbmdpbmU6IHVwZGF0ZSB0byA2LjUuMC4KCi0tLQogLi4uLzAxMDgtY2hyb21pdW0t Y3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaCAgICB8IDE4IC0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hy b21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMDgtY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZGQzMWRhOTc5MGFkYy4uMDAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVk X2ZpbGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0gcXQ2LXdlYmVu Z2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL3Njb3BlZF9m aWxlX2xpbnV4LmNjCi0rKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS9maWxlcy9zY29wZWRfZmlsZV9saW51eC5jYwotQEAgLTc3LDE1ICs3NywzIEBAIGJv b2wgSXNGRE93bmVkKGludCBmZCkgewotIH0KLSAKLSB9ICAvLyBuYW1lc3BhY2UgYmFzZQotLQot LWV4dGVybiAiQyIgewotLQotLWludCBfX2Nsb3NlKGludCk7Ci0tCi0tX19hdHRyaWJ1dGVfXygo dmlzaWJpbGl0eSgiZGVmYXVsdCIpLCBub2lubGluZSkpIGludCBjbG9zZShpbnQgZmQpIHsKLS0g IGlmIChiYXNlOjpJc0ZET3duZWQoZmQpICYmIGdfaXNfb3duZXJzaGlwX2VuZm9yY2VkKQotLSAg ICBDcmFzaE9uRmRPd25lcnNoaXBWaW9sYXRpb24oKTsKLS0gIHJldHVybiBfX2Nsb3NlKGZkKTsK LS19Ci0tCi0tfSAgLy8gZXh0ZXJuICJDIgoKRnJvbSAxYzVlNzAxMjliNmMwMDY0OWM3MzNhY2Qw MWYxYjY0YzhhNmVkZGIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVj IDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAx NToxMTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDU0LzE4OV0gU1BJUlYtTExWTS1UcmFuc2xh dG9yOiB1cGRhdGUgdG8gMTUuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21t b24vc2hsaWJzCmluZGV4IDE0NGVhYzk1YmFlNTguLmVjNDA4ZDM1N2U1YjEgMTAwNjQ0Ci0tLSBh L2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtOTk3LDYgKzk5Nyw3IEBAIGxp YmNsYW5nLnNvLjE1IGxpYmNsYW5nLTE1LjAuN18xCiBsaWJjbGFuZy1jcHAuc28uMTUgbGliY2xh bmctY3BwLTE1LjAuN18xCiBsaWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExW TS0xMi5zbyBsaWJsbHZtMTItMTIuMC4wXzEKK2xpYkxMVk1TUElSVkxpYi5zby4xNSBTUElSVi1M TFZNLVRyYW5zbGF0b3ItMTUuMC4wXzEKIGxpYkxMVk0tMTUuc28gbGlibGx2bTE1LTE1LjAuN18x CiBsaWJMTFZNU1BJUlZMaWIuc28uMTUgU1BJUlYtTExWTS1UcmFuc2xhdG9yLTE1LjAuMF8xCiBs aWJvbXAuc28uNSBsaWJvbXAtMTUuMC43XzEKCkZyb20gNjVhOWFkYWIyMTQxNzAyZGUwZWQ2NWI4 MjI2YmIzYTZmMzcyNmYwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVuY2FlbiA8 ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBXZWQsIDE1IEZlYiAyMDIzIDE2OjQ5OjExICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwNTUvMTg5XSBpY3U6IHVwZGF0ZSB0byA3Mi4xLgoKLS0tCiBz cmNwa2dzL2ljdS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaWN1L3RlbXBsYXRlIGIvc3Jj cGtncy9pY3UvdGVtcGxhdGUKaW5kZXggMjcxZjdlYTRmYzk0NC4uNGIyZTc4NTY0NDhlNiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9pY3UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pY3UvdGVtcGxhdGUK QEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1kYXRhLXBhY2thZ2luZz1h cmNoaXZlIC0tZW5hYmxlLXN0YXRpYyIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKIGNo ZWNrZGVwZW5kcz0iZGlmZnV0aWxzIHB5dGhvbjMiCiBzaG9ydF9kZXNjPSJSb2J1c3QgYW5kIGZ1 bGx5LWZlYXR1cmVkIFVuaWNvZGUgbGlicmFyaWVzIgotbWFpbnRhaW5lcj0iUmFuZHkgTWNDYXNr aWxsIDxyYW5keUBtY2Nhc2tpbGwudXM+IgorbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IklDVSIKIGhvbWVwYWdlPSJodHRwczovL2hvbWUudW5p Y29kZS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vdW5pY29kZS1vcmcvaWN1 L3JlbGVhc2VzL2Rvd25sb2FkL3JlbGVhc2UtJHt2ZXJzaW9uLy8uLy19L2ljdTRjLSR7dmVyc2lv bi8vLi9ffS1zcmMudGd6IgoKRnJvbSBlMGU0YTQ1YmMwM2NjYTA0ZDc4ZjA0Y2MzYTg0ZDMzNjdh ODkzYzc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZv aWRsaW51eC5vcmc+CkRhdGU6IFdlZCwgMTUgRmViIDIwMjMgMTU6MjQ6MjUgKzAxMDAKU3ViamVj dDogW1BBVENIIDA1Ni8xODldIGZpcmVmb3g6IGFkZCByaXNjdjY0IHBhdGNoZXMKCi0tLQogc3Jj cGtncy9maXJlZm94L3BhdGNoZXMvcHBjMzItZml4LWJ1aWxkLnBhdGNoIHwgMzYgLS0tLS0tLS0t LS0tCiAuLi4vcGF0Y2hlcy9yaXNjdjY0LXJlZHVjZS1kZWJ1Zy5wYXRjaCAgICAgICAgfCAyMyAr KysrKysrKwogc3JjcGtncy9maXJlZm94L3BhdGNoZXMvc3FsaXRlLXBwYy5wYXRjaCAgICAgIHwg NTUgLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9maXJlZm94L3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgICAgIHwgIDkgKystCiA0IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyks IDkyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmlyZWZveC9wYXRj aGVzL3BwYzMyLWZpeC1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmly ZWZveC9wYXRjaGVzL3Jpc2N2NjQtcmVkdWNlLWRlYnVnLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9maXJlZm94L3BhdGNoZXMvc3FsaXRlLXBwYy5wYXRjaAoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmlyZWZveC9wYXRjaGVzL3BwYzMyLWZpeC1idWlsZC5wYXRjaCBiL3NyY3BrZ3Mv ZmlyZWZveC9wYXRjaGVzL3BwYzMyLWZpeC1idWlsZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYjI2YTQ2Y2ZlODM1YS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Zp cmVmb3gvcGF0Y2hlcy9wcGMzMi1maXgtYnVpbGQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz NiArMCwwIEBACi1UaGlzIGlzIG5vdCBhIGNvbXBsZXRlL2NvcnJlY3QgcGF0Y2gsIGJ1dCBpdCBt YWtlcyBmaXJlZm94IGJ1aWxkLiBGb3Igbm93Ci1tb3N0bHkgZm9yIHRyYWNraW5nLCBzbyBhIHJl YWwgZml4IGNhbiBiZSBtYWRlLCBidXQgcmlnaHQgbm93IGl0IHN0aWxsCi1zZWdmYXVsdHMgb24g c3RhcnQuCi0KLVJlZjogaHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwvcmV2 LzA4MzM5YTU2ZjNhZQotUmVmOiBodHRwczovL2hnLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJh bC9yZXYvZDE2ZmNhZDZhYTYwCi1SZWY6IGh0dHBzOi8vaGcubW96aWxsYS5vcmcvbW96aWxsYS1j ZW50cmFsL3Jldi9hYjg3NjExZDAxMmUKLVJlZjogaHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9tb3pp bGxhLWNlbnRyYWwvZmlsZS90aXAveHBjb20vcmVmbGVjdC94cHRjYWxsL21kL3VuaXgveHB0Y2lu dm9rZV9wcGNfbGludXguY3BwCi0KLS0tLSBhL3hwY29tL3JlZmxlY3QveHB0Y2FsbC94cHRjYWxs LmgKLSsrKyBiL3hwY29tL3JlZmxlY3QveHB0Y2FsbC94cHRjYWxsLmgKLUBAIC03MSw2ICs3MSwx MSBAQCBzdHJ1Y3QgbnNYUFRDVmFyaWFudCB7Ci0gICAgIEV4dGVuZGVkVmFsIGV4dDsKLSAgIH07 Ci0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICAvLyB0aGlzIGZpZWxkIGlzIHN0aWxsIG5lY2Vzc2FyeSBvbiBwcGMzMiwgYXMgYW4gYWRk cmVzcwotKyAgLy8gdG8gaXQgaXMgdGFrZW4gY2VydGFpbiBwbGFjZXMgaW4geHB0Y2FsbAotKyAg dm9pZCAqcHRyOwotKyNlbmRpZgotICAgbnNYUFRUeXBlIHR5cGU7Ci0gICB1aW50OF90IGZsYWdz OwotIAotQEAgLTkxLDcgKzk2LDEyIEBAIHN0cnVjdCBuc1hQVENWYXJpYW50IHsKLSAgIH07Ci0g Ci0gICB2b2lkIENsZWFyRmxhZ3MoKSB7IGZsYWdzID0gMDsgfQotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwY19fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgdm9pZCBTZXRJbmRpcmVjdCgp IHsgcHRyID0gJnZhbDsgZmxhZ3MgfD0gSVNfSU5ESVJFQ1Q7IH0KLSsgIGJvb2wgSXNQdHJEYXRh KCkgY29uc3QgeyByZXR1cm4gSXNJbmRpcmVjdCgpOyB9Ci0rI2Vsc2UKLSAgIHZvaWQgU2V0SW5k aXJlY3QoKSB7IGZsYWdzIHw9IElTX0lORElSRUNUOyB9Ci0rI2VuZGlmCi0gCi0gICBib29sIElz SW5kaXJlY3QoKSBjb25zdCB7IHJldHVybiAwICE9IChmbGFncyAmIElTX0lORElSRUNUKTsgfQot IApkaWZmIC0tZ2l0IGEvc3JjcGtncy9maXJlZm94L3BhdGNoZXMvcmlzY3Y2NC1yZWR1Y2UtZGVi dWcucGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gvcGF0Y2hlcy9yaXNjdjY0LXJlZHVjZS1kZWJ1Zy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lMWY3ODBkNzNh NGY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9maXJlZm94L3BhdGNoZXMvcmlzY3Y2NC1y ZWR1Y2UtZGVidWcucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorY29tbWl0IDI5ZmY4NDJkZmUzM2Qx NzJkMTE1YTkwYWI2OWNjMjQwNDI2ZGFkMDQKK0F1dGhvcjogcTY2IDxxNjZAY2hpbWVyYS1saW51 eC5vcmc+CitEYXRlOiAgIFR1ZSBPY3QgNCAxMDo0NToyOCAyMDIyICswMjAwCisKKyAgICByZWR1 Y2UgZGVidWdfaW5mbyBvbiByaXNjdgorCitkaWZmIC0tZ2l0IGEvYnVpbGQvbW96LmNvbmZpZ3Vy ZS9ydXN0LmNvbmZpZ3VyZSBiL2J1aWxkL21vei5jb25maWd1cmUvcnVzdC5jb25maWd1cmUKK2lu ZGV4IGU2NGRjNWQuLmUzZTFmYmQgMTAwNjQ0CistLS0gYS9idWlsZC9tb3ouY29uZmlndXJlL3J1 c3QuY29uZmlndXJlCisrKysgYi9idWlsZC9tb3ouY29uZmlndXJlL3J1c3QuY29uZmlndXJlCitA QCAtNjUzLDcgKzY1MywxMSBAQCBkZWYgcnVzdF9jb21waWxlX2ZsYWdzKAorICAgICAgICAgZGVi dWdfYXNzZXJ0aW9ucyA9IEZhbHNlCisgCisgICAgIGlmIGRlYnVnX3N5bWJvbHM6CistICAgICAg ICBkZWJ1Z19pbmZvID0gIjIiCisrICAgICAgICAjIGxpbmtpbmcgZmFpbHMgd2l0aCBmdWxsIGRl YnVnIGluZm8gb24gcmlzY3YKKysgICAgICAgIGlmIHRhcmdldC5jcHUgPT0gInJpc2N2NjQiOgor KyAgICAgICAgICAgIGRlYnVnX2luZm8gPSAiMSIKKysgICAgICAgIGVsc2U6CisrICAgICAgICAg ICAgZGVidWdfaW5mbyA9ICIyIgorIAorICAgICBvcHRzID0gW10KKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZmlyZWZveC9wYXRjaGVzL3NxbGl0ZS1wcGMucGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gv cGF0Y2hlcy9zcWxpdGUtcHBjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1 MWY3ZmFhNjE4ZGRhLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmlyZWZveC9wYXRjaGVz L3NxbGl0ZS1wcGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1Gcm9tIDY3 MTU3YjFhYTdkYTBhMTQ2YjdkMmQ1YWJiOTIzN2VlYTFmNDM0ZWMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6 IEZyaSwgMjMgU2VwIDIwMjIgMDI6Mzg6MjkgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4IHNx bGl0ZTMgb24gcHBjIHdpdGggY2xhbmcKLQotVGhlIF9fcHBjX18gbWFjcm8gaXMgYWx3YXlzIGRl ZmluZWQgb24gY2xhbmcgYnV0IG5vdCBnY2MsIHdoaWNoCi1yZXN1bHRzIGluIHNxbGl0ZSBtaXN0 YWtlbmx5IHRoaW5raW5nIHRoYXQgcHBjNjRsZSB3aXRoIGNsYW5nCi1pcyBiaWcgZW5kaWFuLgot Ci1BbHNvIGRpc2FibGUgc29tZSBpbmxpbmUgYXNzZW1ibHkgc3R1ZmYgb24gcHBjIHRoYXQgaXMg bmV2ZXIgdXNlZAotd2l0aCBnY2MgYW5kIHByb2JhYmx5IHdhcyBuZXZlciB0ZXN0ZWQgd2l0aCBt b2Rlcm4gbWFjaGluZXMuCi0tLS0KLSB0aGlyZF9wYXJ0eS9zcWxpdGUzL3NyYy9zcWxpdGUzLmMg fCAxMCArKysrKy0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0ZTMvc3JjL3NxbGl0ZTMu YyBiL3RoaXJkX3BhcnR5L3NxbGl0ZTMvc3JjL3NxbGl0ZTMuYwotaW5kZXggNGYzZGM2OC4uOTAx NzA2MiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3NxbGl0ZTMvc3JjL3NxbGl0ZTMuYwotKysr IGIvdGhpcmRfcGFydHkvc3FsaXRlMy9zcmMvc3FsaXRlMy5jCi1AQCAtMTQzMTcsOSArMTQzMTcs OSBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAg IHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0g ICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZp bmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVk KF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5l ZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02 NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8 IGRlZmluZWQoX01fQVJNNjQpIHx8IGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRl ZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLS0jIGVsaWYgZGVmaW5lZChzcGFyYykgICAg IHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotKyMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwg ZGVmaW5lZChfX0JJR19FTkRJQU5fXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykg fHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAg ICA0MzIxCi0gIyBlbHNlCi1AQCAtMjA3MTMsNyArMjA3MTMsNyBAQCBTUUxJVEVfUFJJVkFURSBj b25zdCBjaGFyICoqc3FsaXRlM0NvbXBpbGVPcHRpb25zKGludCAqcG5PcHQpOwotICAgICAgIHJl dHVybiB2YWw7Ci0gICB9Ci0gCi0tI2VsaWYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSAmJiAo ZGVmaW5lZChfX0dOVUNfXykgJiYgZGVmaW5lZChfX3BwY19fKSkKLSsjZWxpZiAwCi0gCi0gICBf X2lubGluZV9fIHNxbGl0ZV91aW50NjQgc3FsaXRlM0h3dGltZSh2b2lkKXsKLSAgICAgICB1bnNp Z25lZCBsb25nIGxvbmcgcmV0dmFsOwotQEAgLTE5NjM4NSw5ICsxOTYzODUsOSBAQCBzdHJ1Y3Qg UnRyZWVNYXRjaEFyZyB7Ci0gI2lmIGRlZmluZWQoaTM4NikgICAgIHx8IGRlZmluZWQoX19pMzg2 X18pICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgIGRlZmluZWQoX194ODZfNjQp IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAg IGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQoX01fQVJNKSAgICAgfHwgZGVmaW5lZChfX3g4 NikgICB8fCAgICBcCi0tICAgIGRlZmluZWQoX19hcm1fXykKLSsgICAgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKQotICMgZGVmaW5lIFNRTElURV9CWVRFT1JE RVIgICAgMTIzNAotLSNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8IGRlZmluZWQoX19wcGNfXykK LSsjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVkKF9fQklHX0VORElBTl9fKQotICMg ZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgNDMyMQotICNlbHNlCi0gIyBkZWZpbmUgU1FMSVRF X0JZVEVPUkRFUiAgICAwICAgICAvKiAwIG1lYW5zICJ1bmtub3duIGF0IGNvbXBpbGUtdGltZSIg Ki8KLS0tIAotMi4zNy4zCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZveC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZmlyZWZveC90ZW1wbGF0ZQppbmRleCAyYjZmMjc2YjlhZGRjLi5jNjIyMTRkMmVj NDdkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9m aXJlZm94L3RlbXBsYXRlCkBAIC02MSw2ICs2MSw4IEBAIHBvc3RfZXh0cmFjdCgpIHsKIAogcG9z dF9wYXRjaCgpIHsKIAk6ICMgX2NsZWFyX3ZlbmRvcl9jaGVja3N1bXMgbnVtLXRyYWl0cworCV9j bGVhcl92ZW5kb3JfY2hlY2tzdW1zIG5peAorCV9jbGVhcl92ZW5kb3JfY2hlY2tzdW1zIGJpbmRn ZW4KIH0KIAogZG9fYnVpbGQoKSB7CkBAIC0xNTYsMTIgKzE1OCwxNyBAQCBkb19idWlsZCgpIHsK IAkJZmkKIAl9CiAKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcmlzY3Y2NCop IF9saW5rZXI9YmZkOzsKKwkJKikgX2xpbmtlcj0kKHZvcHRfaWYgY2xhbmcgbGxkIGJmZCk7Owor CWVzYWMKKwogCWNhdCA8PC0hID4ubW96Y29uZmlnCiAJYWNfYWRkX29wdGlvbnMgLS1wcmVmaXg9 L3VzcgogCWFjX2FkZF9vcHRpb25zIC0tbGliZGlyPS91c3IvbGliCiAJYWNfYWRkX29wdGlvbnMg LS1ob3N0PSR7WEJQU19UUklQTEVUfQogCWFjX2FkZF9vcHRpb25zIC0tdGFyZ2V0PSR7WEJQU19D Uk9TU19UUklQTEVUOi0ke1hCUFNfVFJJUExFVH19Ci0JYWNfYWRkX29wdGlvbnMgLS1lbmFibGUt bGlua2VyPSQodm9wdF9pZiBjbGFuZyBsbGQgYmZkKQorCWFjX2FkZF9vcHRpb25zIC0tZW5hYmxl LWxpbmtlcj0kX2xpbmtlcgogCSQodm9wdF9pZiBsdG8gJ2FjX2FkZF9vcHRpb25zIC0tZW5hYmxl LWx0bz1jcm9zcycpCiAJJCh2b3B0X2lmIGNsYW5nICdhY19hZGRfb3B0aW9ucyAtLXdpdGgtbGli Y2xhbmctcGF0aD0vdXNyL2xpYicpCiAKCkZyb20gNzZjMGFmMWZkOWQ0YjQ3NThiYzk0ZDk1YWJi OWJiNTU1MzU5YzQ4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8 dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBTdW4sIDE4IERlYyAyMDIyIDEy OjIwOjA4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNTcvMTg5XSBsbHZtMTI6IHJlbW92ZSBidW1w ZWQgc3VicGFja2FnZXMKCi0tLQogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgfCAzIC0tLQogMSBm aWxlIGNoYW5nZWQsIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv dGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQppbmRleCA4NmU4NmJiOTZjNjNmLi4x Zjk5OGY1YjljNGFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtMTA4LDEwICsxMDgsNyBAQCBwcmVfY29uZmlndXJl KCkgewogCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0iJEJVSUxEX0xERkxB R1MiIFwKIAkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlCiAJCW1ha2Ug JHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4KLQkJbWFrZSAke21ha2Vqb2JzfSAtQyB0b29s cy9jbGFuZy91dGlscy9UYWJsZUdlbgotCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYg bWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxzL1RhYmxlR2VuCiAJCWNvbmZpZ3Vy ZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9s bHZtLXRibGdlbiIKLQkJY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3Ny Y30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10YmxnZW4iCiAJCWNkIC4uLy4uCiAJZmkKIAoK RnJvbSBiZGI3ZTRkYmZjYTkwZTk4MjRlODczZmM2ODRmNDE1NTZlZDAxN2VmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFp bC5jb20+CkRhdGU6IFN1biwgMTggRGVjIDIwMjIgMDA6NDA6MTggKzAxMDAKU3ViamVjdDogW1BB VENIIDA1OC8xODldIGxsdm06IHVwZGF0ZSB0byAxNQoKLS0tCiBjb21tb24vc2hsaWJzIHwgMyAr KysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9jb21tb24v c2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBlYzQwOGQzNTdlNWIxLi4zMzhlNWYxMzI1MDNj IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk5NSw2 ICs5OTUsOSBAQCBsaWJjb25mdXNlLnNvLjIgY29uZnVzZS0zLjIuMV8xCiBsaWJsbGRiLnNvLjE1 IGxsZGItMTUuMC43XzEKIGxpYmNsYW5nLnNvLjE1IGxpYmNsYW5nLTE1LjAuN18xCiBsaWJjbGFu Zy1jcHAuc28uMTUgbGliY2xhbmctY3BwLTE1LjAuN18xCitsaWJsbGRiLnNvLjE1IGxsZGItMTUu MC42XzEKK2xpYmNsYW5nLnNvLjE1IGxpYmNsYW5nLTE1LjAuNl8xCitsaWJjbGFuZy1jcHAuc28u MTUgbGliY2xhbmctY3BwLTE1LjAuNl8xCiBsaWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBf MQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTItMTIuMC4wXzEKIGxpYkxMVk1TUElSVkxpYi5zby4x NSBTUElSVi1MTFZNLVRyYW5zbGF0b3ItMTUuMC4wXzEKCkZyb20gM2QyZjE5OTE2NTlkMjczMzg2 ODY2ZWQxNjc3OGYzZWI5N2MxZWJkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGVh aCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPgpEYXRlOiBUaHUsIDE4IEp1bCAyMDE5IDEyOjIz OjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTkvMTg5XSBrZXJuZWwtbGliYy1oZWFkZXJzOiBh ZGQgcmlzY3YuCgotLS0KIHNyY3BrZ3Mva2VybmVsLWxpYmMtaGVhZGVycy90ZW1wbGF0ZSB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9r ZXJuZWwtbGliYy1oZWFkZXJzL3RlbXBsYXRlIGIvc3JjcGtncy9rZXJuZWwtbGliYy1oZWFkZXJz L3RlbXBsYXRlCmluZGV4IDYxZDExOGEyY2ZkZjEuLjllMmZjNTBlZDMyOTQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3Mva2VybmVsLWxpYmMtaGVhZGVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2tlcm5l bC1saWJjLWhlYWRlcnMvdGVtcGxhdGUKQEAgLTIwLDYgKzIwLDcgQEAgY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJYWFyY2g2NCopIF9hcmNoPSJhcm02NCI7OwogCW1pcHMqKSBfYXJj aD0ibWlwcyI7OwogCXBwYyopIF9hcmNoPSJwb3dlcnBjIjs7CisJcmlzY3YqKSBfYXJjaD0icmlz Y3YiOzsKIAkqKSBtc2dfZXJyb3IgIiRwa2duYW1lOiB1bmtub3duIGFyY2hpdGVjdHVyZS5cbiI7 OwogZXNhYwogCgpGcm9tIGJiNDY2ZWQ0M2YwNDVmYzk0ODVhYzM3NmNjOGI2MTRjYmRmMmZlNGQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1 Lm9yZz4KRGF0ZTogV2VkLCAxNyBKdWwgMjAxOSAxNzowNjowMCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDYwLzE4OV0gcGNyZTogZGlzYWJsZSBKSVQgb24gcmlzY3YKCi0tLQogc3JjcGtncy9wY3Jl L3RlbXBsYXRlIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3BjcmUvdGVtcGxhdGUgYi9zcmNwa2dzL3BjcmUvdGVtcGxhdGUKaW5kZXgg M2YyOTc5M2Q5ZGMzNy4uNjgzNGFhNzc3YmY2NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9wY3JlL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvcGNyZS90ZW1wbGF0ZQpAQCAtMTYsNiArMTYsNyBAQCBjaGVj a3N1bT00ZGFlNmZkY2QyYmIwYmI2YzM3YjVmOTdjMzNjMmJlOTU0ZGE3NDM5ODUzNjljZGRhYzM1 NDZlMzIxOGJmZmI4CiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCW1pcHMqKSA7 OyAjIFdpdGhvdXQgc3RhY2sgZm9yIHJlY3Vyc2lvbiB0aGUgbWlwcyBidWlsZHMgZmFpbAorCXJp c2N2KikgY29uZmlndXJlX2FyZ3MrPSIgLS1kaXNhYmxlLWppdCIgOzsKIAkqKSBjb25maWd1cmVf YXJncys9IiAtLWRpc2FibGUtc3RhY2stZm9yLXJlY3Vyc2lvbiIgOzsKIGVzYWMKIAoKRnJvbSBk NTI1MTY0OGNjNjMzMjBlZDhjOGViNThkMTBhMWE5N2YwYmE4OGJjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBMZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+CkRhdGU6IFRodSwg MTggSnVsIDIwMTkgMTE6MzA6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2MS8xODldIGdkYjog ZGlzYWJsZSBnZGJzZXJ2ZXIgb24gcmlzY3YgKG55aSkKCi0tLQogc3JjcGtncy9nZGIvdGVtcGxh dGUgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkYi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RiL3RlbXBs YXRlCmluZGV4IDA3MTIwNjJhODJkYzYuLjNiZjliNTllYzNjY2QgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ2RiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2RiL3RlbXBsYXRlCkBAIC00Myw3ICs0Myw5 IEBAIGJ1aWxkX29wdGlvbnM9ImRlYnVnaW5mb2QgZ2Ric2VydmVyIGd1aWxlIG11bHRpYXJjaCBw eXRob24gc3RhdGljIgogZGVzY19vcHRpb25fZ2Ric2VydmVyPSJFbmFibGUgc3VwcG9ydCBmb3Ig YnVpbGRpbmcgR0RCIHNlcnZlciIKIGRlc2Nfb3B0aW9uX2RlYnVnaW5mb2Q9IkVuYWJsZSBzdXBw b3J0IGZvciBsaWJkZWJ1Z2luZm9kIgogZGVzY19vcHRpb25fbXVsdGlhcmNoPSJFbmFibGUgc3Vw cG9ydCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImRlYnVn aW5mb2QgZ2Ric2VydmVyIHB5dGhvbiIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CSopIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZGVidWdpbmZvZCBnZGJzZXJ2ZXIgcHl0aG9uIjs7 Citlc2FjCiB2b3B0X2NvbmZsaWN0IGdkYnNlcnZlciBzdGF0aWMKIHZvcHRfY29uZmxpY3QgZGVi dWdpbmZvZCBzdGF0aWMKIAoKRnJvbSA1MjUxYzMwOTIwMDcxZGFmNDkzNzNiYjAyYzJiOWZiNzYy ZjU1OGM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMZWFoIE5ldWtpcmNoZW4gPGxl YWhAdnV4dS5vcmc+CkRhdGU6IFRodSwgMTggSnVsIDIwMTkgMTQ6Mjg6NDggKzAyMDAKU3ViamVj dDogW1BBVENIIDA2Mi8xODldIHBjcmUyOiBkaXNhYmxlIEpJVCBvbiByaXNjdgoKLS0tCiBzcmNw a2dzL3BjcmUyL3RlbXBsYXRlIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wY3JlMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGNyZTIv dGVtcGxhdGUKaW5kZXggMjQ2Nzc2NDhlYjYwMi4uYmRlYTcwNDhlOWVhMSAxMDA2NDQKLS0tIGEv c3JjcGtncy9wY3JlMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BjcmUyL3RlbXBsYXRlCkBAIC0x NSw2ICsxNSwxMCBAQCBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNv bS9QQ1JFMlByb2plY3QvcGNyZTIvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0 aHViLmNvbS9QaGlsaXBIYXplbC9wY3JlMi9yZWxlYXNlcy9kb3dubG9hZC9wY3JlMi0ke3ZlcnNp b259L3BjcmUyLSR7dmVyc2lvbn0udGFyLmJ6MiIKIGNoZWNrc3VtPThkMzZjZDhjYjZlYTJhNGMy YmIzNThmZjY0MTFiMGM3ODg2MzNhMmE0NWRhYmJmMWFlYjRiNzAxZDFiNWU4NDAKIAorY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisgICAgICAgIHJpc2N2KikgY29uZmlndXJlX2FyZ3Mr PSIgLS1kaXNhYmxlLWppdCIgOzsKK2VzYWMKKwogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNl IExJQ0VOQ0UKIH0KCkZyb20gOGEzYzZjNGE1OGU2YjE2ZjRkYjNjY2YzNDlmZmRiZTQ4OTA3ZTRl MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PgpEYXRlOiBUaHUsIDEyIEphbiAyMDIzIDIxOjU0OjQ5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAw NjMvMTg5XSBvcGVuc3NsOiBhZGQgcmlzY3Y2NCBhcmNoCgotLS0KIHNyY3BrZ3Mvb3BlbnNzbC90 ZW1wbGF0ZSB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9vcGVuc3NsL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuc3NsL3RlbXBsYXRlCmlu ZGV4IGZlNmFjOTA2YzY0OTUuLjJiY2VkZTUwYmUxNjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3Bl bnNzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5zc2wvdGVtcGxhdGUKQEAgLTQzLDYgKzQz LDcgQEAgY2FzZSAkWEJQU19UQVJHRVRfTUFDSElORSBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdz Kz0iIGxpbnV4LXBwYyI7OwogCWFybSopIGNvbmZpZ3VyZV9hcmdzKz0iIGxpbnV4LWFybXY0Ijs7 CiAJbWlwcyopIGNvbmZpZ3VyZV9hcmdzKz0iIGxpbnV4LW1pcHMzMiAtbWlwczMyIjs7CisJcmlz Y3Y2NCopIGNvbmZpZ3VyZV9hcmdzKz0iIGxpbnV4NjQtcmlzY3Y2NCI7OwogCSopIGJyb2tlbj0i JFhCUFNfVEFSR0VUX01BQ0hJTkUiOzsKIGVzYWMKIAoKRnJvbSA4MDM4ZWI5ZmIyMWQ1ZTkzM2Ix YjRlMGQ2YTUxZDFjYWUxNzljNjgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2hu IDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwgMTIgSmFuIDIwMjMgMjI6MDk6MTUgKzAx MDAKU3ViamVjdDogW1BBVENIIDA2NC8xODldIG11c2w6IHVwZGF0ZSB0byAxLjIuMy4KCi0tLQog Li4uaXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoIHwgIDU2IC0tLS0t CiAuLi5ocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3IucGF0Y2ggfCAgNzggLS0t LS0tLQogLi4ub3duX3NpemVfb2Zfc29tZV9saWJjX3N0cnVjdF9tZW1iZXJzLnBhdGNoIHwgIDMw IC0tLQogLi4ucHBpbmdfZm9yX3Byb2Nlc3Nlc190aGF0X3JldHVybl90b19zLnBhdGNoIHwgMTAy IC0tLS0tLS0tCiAuLi44OGE5ZGE1ZTdiMjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcucGF0Y2gg fCAxMzkgLS0tLS0tLS0tLS0KIC4uLjA5OGE4ODVmZWFlM2FlOGMzMmI0MDczNTBkOGNhODVkZDE3 OC5wYXRjaCB8IDExMyAtLS0tLS0tLS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL0NWRS0yMDIwLTI4 OTI4LnBhdGNoICAgICB8ICA2NCAtLS0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvYWFyY2g2NC1m cmVncy5wYXRjaCAgICAgIHwgIDM3IC0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXFzb3J0 X3IucGF0Y2ggICAgICAgIHwgMjAxIC0tLS0tLS0tLS0tLS0tLS0KIC4uLmQtc3VwcG9ydC1mb3It U0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaCB8ICA3NCAtLS0tLS0KIC4uLnJsaW1pdC1taXNi ZWhhdmlvci1hbmQtaGFuZy1pbi12Zm9yay5wYXRjaCB8ICA0OSAtLS0tCiBzcmNwa2dzL211c2wv cGF0Y2hlcy9lcG9sbF9jcC5wYXRjaCAgICAgICAgICAgfCAgMjggLS0tCiAuLi4vbXVzbC9wYXRj aGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2ggICAgfCAgNTYgLS0tLS0KIC4uLi9tdXNsL3Bh dGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMi5wYXRjaCAgICB8ICA0OCAtLS0tCiAuLi4vbXVzbC9w YXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTMucGF0Y2ggICAgfCAgMjggLS0tCiBzcmNwa2dzL211 c2wvcGF0Y2hlcy9nZXR0aWQucGF0Y2ggICAgICAgICAgICAgfCAgNDkgLS0tLQogLi4udGx5X2lu c3RlYWRfb2ZfdXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoIHwgMjE5IC0tLS0tLS0tLS0tLS0t LS0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvaXNhc2NpaS5wYXRjaCAgICAgICAgICAgIHwgIDIx IC0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9tb19sb29rdXAucGF0Y2ggICAgICAgICAgfCAgMTkg LS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNoICAgICAgICB8ICAzOCAt LS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYzY0LWZwcmVnc2V0X3QucGF0Y2ggICB8ICAzMSAt LS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xlLnBhdGNoICAgICAgICAgICAgICB8ICAyNCAt LQogLi4uaW5fcmVhZGxpbmtfc3lzY2FsbF93aXRoX3plcm9fYnVmZmVyLnBhdGNoIHwgIDU5IC0t LS0tCiBzcmNwa2dzL211c2wvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEg Ky0KIDI0IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMTU2OSBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxX3Jlb3JkZXJfdGhy ZWFkX2xpc3RfdW5saW5rX2luX3B0aHJlYWRfZXhpdF9hZnRlcl9hbGwucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3VzZV9saWJjX3RocmVh ZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3IucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAzX2N1dF9kb3duX3NpemVfb2Zfc29tZV9saWJjX3N0 cnVjdF9tZW1iZXJzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNo ZXMvMDAwNF9yZXN0b3JlX2xvY2tfc2tpcHBpbmdfZm9yX3Byb2Nlc3Nlc190aGF0X3JldHVybl90 b19zLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvOThlNjg4 YTlkYTVlN2IyOTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4Ny5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhj YTg1ZGQxNzgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9D VkUtMjAyMC0yODkyOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRj aGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wv cGF0Y2hlcy9hZGQtcXNvcnRfci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVz bC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvYXZvaWQtc2V0LWlkLXNldHJs aW1pdC1taXNiZWhhdmlvci1hbmQtaGFuZy1pbi12Zm9yay5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xsX2NwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMS5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTIucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgt Y29uZC0zLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0 dGlkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvaW1wbGVt ZW50X3JlYWxwYXRoX2RpcmVjdGx5X2luc3RlYWRfb2ZfdXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvaXNhc2NpaS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL21vX2xvb2t1cC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjNjQtZnByZWdz ZXRfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xl LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvd29ya19hcm91 bmRfbGludXhfYnVnX2luX3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDFfcmVvcmRlcl90aHJlYWRfbGlz dF91bmxpbmtfaW5fcHRocmVhZF9leGl0X2FmdGVyX2FsbC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9w YXRjaGVzLzAwMDFfcmVvcmRlcl90aHJlYWRfbGlzdF91bmxpbmtfaW5fcHRocmVhZF9leGl0X2Fm dGVyX2FsbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2MxYTU1YmM4NWUz MC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxX3Jlb3JkZXJf dGhyZWFkX2xpc3RfdW5saW5rX2luX3B0aHJlYWRfZXhpdF9hZnRlcl9hbGwucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0+RnJvbSA0ZDVhYTIwYTk0YTJkM2ZhZTNlNjkyODlk YzIzZWNhZmJkMGMxNmM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxr ZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogRnJpLCAyMiBNYXkgMjAyMCAxNzozNToxNCAt MDQwMAotU3ViamVjdDogW1BBVENIIDEvNF0gcmVvcmRlciB0aHJlYWQgbGlzdCB1bmxpbmsgaW4g cHRocmVhZF9leGl0IGFmdGVyIGFsbAotIGxvY2tzCi0KLXNpbmNlIHRoZSBiYWNrZW5kIGZvciBM T0NLKCkgc2tpcHMgbG9ja2luZyBpZiBzaW5nbGUtdGhyZWFkZWQsIGl0J3MKLXVuc2FmZSB0byBt YWtlIHRoZSBwcm9jZXNzIGFwcGVhciBzaW5nbGUtdGhyZWFkZWQgYmVmb3JlIHRoZSBsYXN0IHVz ZQotb2YgbG9jay4KLQotdGhpcyBmaXhlcyBwb3RlbnRpYWwgdW5zeW5jaHJvbml6ZWQgYWNjZXNz IHRvIGEgbGlua2VkIGxpc3QgdmlhCi1fX2RsX3RocmVhZF9jbGVhbnVwLgotLS0tCi0gc3JjL3Ro cmVhZC9wdGhyZWFkX2NyZWF0ZS5jIHwgMTkgKysrKysrKysrKystLS0tLS0tLQotIDEgZmlsZSBj aGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv c3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5j Ci1pbmRleCA1ZjQ5MTA5Mi4uNmEzYjBjMjEgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0aHJl YWRfY3JlYXRlLmMKLSsrKyBiL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwotQEAgLTkwLDE0 ICs5MCw3IEBAIF9Ob3JldHVybiB2b2lkIF9fcHRocmVhZF9leGl0KHZvaWQgKnJlc3VsdCkKLSAJ CWV4aXQoMCk7Ci0gCX0KLSAKLS0JLyogQXQgdGhpcyBwb2ludCB3ZSBhcmUgY29tbWl0dGVkIHRv IHRocmVhZCB0ZXJtaW5hdGlvbi4gVW5saW5rCi0tCSAqIHRoZSB0aHJlYWQgZnJvbSB0aGUgbGlz dC4gVGhpcyBjaGFuZ2Ugd2lsbCBub3QgYmUgdmlzaWJsZQotLQkgKiB1bnRpbCB0aGUgbG9jayBp cyByZWxlYXNlZCwgd2hpY2ggb25seSBoYXBwZW5zIGFmdGVyIFNZU19leGl0Ci0tCSAqIGhhcyBi ZWVuIGNhbGxlZCwgdmlhIHRoZSBleGl0IGZ1dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxv Y2suICovCi0tCWxpYmMudGhyZWFkc19taW51c18xLS07Ci0tCXNlbGYtPm5leHQtPnByZXYgPSBz ZWxmLT5wcmV2OwotLQlzZWxmLT5wcmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLS0Jc2VsZi0+cHJl diA9IHNlbGYtPm5leHQgPSBzZWxmOwotKwkvKiBBdCB0aGlzIHBvaW50IHdlIGFyZSBjb21taXR0 ZWQgdG8gdGhyZWFkIHRlcm1pbmF0aW9uLiAqLwotIAotIAkvKiBQcm9jZXNzIHJvYnVzdCBsaXN0 IGluIHVzZXJzcGFjZSB0byBoYW5kbGUgbm9uLXBzaGFyZWQgbXV0ZXhlcwotIAkgKiBhbmQgdGhl IGRldGFjaGVkIHRocmVhZCBjYXNlIHdoZXJlIHRoZSByb2J1c3QgbGlzdCBoZWFkIHdpbGwKLUBA IC0xMjEsNiArMTE0LDE2IEBAIF9Ob3JldHVybiB2b2lkIF9fcHRocmVhZF9leGl0KHZvaWQgKnJl c3VsdCkKLSAJX19kb19vcnBoYW5lZF9zdGRpb19sb2NrcygpOwotIAlfX2RsX3RocmVhZF9jbGVh bnVwKCk7Ci0gCi0rCS8qIExhc3QsIHVubGluayB0aHJlYWQgZnJvbSB0aGUgbGlzdC4gVGhpcyBj aGFuZ2Ugd2lsbCBub3QgYmUgdmlzaWJsZQotKwkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNl ZCwgd2hpY2ggb25seSBoYXBwZW5zIGFmdGVyIFNZU19leGl0Ci0rCSAqIGhhcyBiZWVuIGNhbGxl ZCwgdmlhIHRoZSBleGl0IGZ1dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suCi0rCSAq IFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIGFueSBwb3NzaWJsZSBjYWxscyB0byBMT0NLKCkg dGhhdCBtaWdodAotKwkgKiBza2lwIGxvY2tpbmcgaWYgbGliYy50aHJlYWRzX21pbnVzXzEgaXMg emVyby4gKi8KLSsJbGliYy50aHJlYWRzX21pbnVzXzEtLTsKLSsJc2VsZi0+bmV4dC0+cHJldiA9 IHNlbGYtPnByZXY7Ci0rCXNlbGYtPnByZXYtPm5leHQgPSBzZWxmLT5uZXh0OwotKwlzZWxmLT5w cmV2ID0gc2VsZi0+bmV4dCA9IHNlbGY7Ci0rCi0gCS8qIFRoaXMgYXRvbWljIHBvdGVudGlhbGx5 IGNvbXBldGVzIHdpdGggYSBjb25jdXJyZW50IHB0aHJlYWRfZGV0YWNoCi0gCSAqIGNhbGw7IHRo ZSBsb3NlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aHJlYWQgcmVzb3VyY2VzLiAqLwot IAlpbnQgc3RhdGUgPSBhX2Nhcygmc2VsZi0+ZGV0YWNoX3N0YXRlLCBEVF9KT0lOQUJMRSwgRFRf RVhJVElORyk7Ci0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hl cy8wMDAyX2Rvbl90X3VzZV9saWJjX3RocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19m b3IucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3VzZV9saWJjX3RocmVh ZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGUwNjA3NjJlOTlhNjIuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9t dXNsL3BhdGNoZXMvMDAwMl9kb25fdF91c2VfbGliY190aHJlYWRzX21pbnVzXzFfYXNfcmVsYXhl ZF9hdG9taWNfZm9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotPkZyb20g ZTAxYjU5MzliMzhhZWE1ZWNiZTQxNjcwNjQzMTk5ODI1ODc0YjI2YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IFRo dSwgMjEgTWF5IDIwMjAgMjM6MzI6NDUgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzRdIGRvbid0 IHVzZSBsaWJjLnRocmVhZHNfbWludXNfMSBhcyByZWxheGVkIGF0b21pYyBmb3IKLSBza2lwcGlu ZyBsb2NrcwotCi1hZnRlciBhbGwgYnV0IHRoZSBsYXN0IHRocmVhZCBleGl0cywgdGhlIG5leHQg dGhyZWFkIHRvIG9ic2VydmUKLWxpYmMudGhyZWFkc19taW51c18xPT0wIGFuZCBjb25jbHVkZSB0 aGF0IGl0IGNhbiBza2lwIGxvY2tpbmcgZmFpbHMgdG8KLXN5bmNocm9uaXplIHdpdGggYW55IGNo YW5nZXMgdG8gbWVtb3J5IHRoYXQgd2VyZSBtYWRlIGJ5IHRoZQotbGFzdC1leGl0aW5nIHRocmVh ZC4gdGhpcyBjYW4gcHJvZHVjZSBkYXRhIHJhY2VzLgotCi1vbiBzb21lIGFyY2hzLCBhdCBsZWFz dCB4ODYsIG1lbW9yeSBzeW5jaHJvbml6YXRpb24gaXMgdW5saWtlbHkgdG8gYmUKLWEgcHJvYmxl bTsgaG93ZXZlciwgd2l0aCB0aGUgaW5saW5lIGxvY2tzIGluIG1hbGxvYywgc2tpcHBpbmcgdGhl IGxvY2sKLWFsc28gZWxpbWluYXRlZCB0aGUgY29tcGlsZXIgYmFycmllciwgYW5kIGNhdXNlZCBj b2RlIHRoYXQgbmVlZGVkIHRvCi1yZS1jaGVjayBjaHVuayBpbi11c2UgYml0cyBhZnRlciBvYnRh aW5pbmcgdGhlIGxvY2sgdG8gcmV1c2UgYSBzdGFsZQotdmFsdWUsIHBvc3NpYmx5IGZyb20gYmVm b3JlIHRoZSBwcm9jZXNzIGJlY2FtZSBzaW5nbGUtdGhyZWFkZWQuIHRoaXMKLWluIHR1cm4gcHJv ZHVjZWQgY29ycnVwdGlvbiBvZiB0aGUgaGVhcCBzdGF0ZS4KLQotc29tZSB1c2VzIG9mIGxpYmMu dGhyZWFkc19taW51c18xIHJlbWFpbiwgZXNwZWNpYWxseSBmb3IgYWxsb2NhdGlvbiBvZgotbmV3 IFRMUyBpbiB0aGUgZHluYW1pYyBsaW5rZXI7IG90aGVyd2lzZSwgaXQgY291bGQgYmUgcmVtb3Zl ZAotZW50aXJlbHkuIGl0J3MgbWFkZSBub24tdm9sYXRpbGUgdG8gcmVmbGVjdCB0aGF0IHRoZSBy ZW1haW5pbmcKLWFjY2Vzc2VzIGFyZSBvbmx5IG1hZGUgdW5kZXIgbG9jayBvbiB0aGUgdGhyZWFk IGxpc3QuCi0KLWluc3RlYWQgb2YgbGliYy50aHJlYWRzX21pbnVzXzEsIGxpYmMudGhyZWFkZWQg aXMgbm93IHVzZWQgZm9yCi1za2lwcGluZyBsb2Nrcy4gdGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBs aWJjLnRocmVhZGVkIGlzIHBlcm1hbmVudGx5Ci10cnVlIG9uY2UgYW4gYWRkaXRpb25hbCB0aHJl YWQgaGFzIGJlZW4gY3JlYXRlZC4gdGhpcyB3aWxsIHByb2R1Y2UKLXNvbWUgcGVyZm9ybWFuY2Ug cmVncmVzc2lvbiBpbiBwcm9jZXNzZXMgdGhhdCBhcmUgbW9zdGx5Ci1zaW5nbGUtdGhyZWFkZWQg YnV0IG9jY2FzaW9uYWxseSBjcmVhdGluZyB0aHJlYWRzLiBpbiB0aGUgZnV0dXJlIGl0Ci1tYXkg YmUgcG9zc2libGUgdG8gYnJpbmcgYmFjayB0aGUgZnVsbCBsb2NrLXNraXBwaW5nLCBidXQgbW9y ZSBjYXJlCi1uZWVkcyB0byBiZSB0YWtlbiB0byBwcm9kdWNlIGEgc2FmZSBkZXNpZ24uCi0tLS0K LSBzcmMvaW50ZXJuYWwvbGliYy5oIHwgMiArLQotIHNyYy9tYWxsb2MvbWFsbG9jLmMgfCAyICst Ci0gc3JjL3RocmVhZC9fX2xvY2suYyB8IDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pbnRlcm5hbC9saWJj LmggYi9zcmMvaW50ZXJuYWwvbGliYy5oCi1pbmRleCBhYzk3ZGM3ZS4uYzA2MTQ4NTIgMTAwNjQ0 Ci0tLS0gYS9zcmMvaW50ZXJuYWwvbGliYy5oCi0rKysgYi9zcmMvaW50ZXJuYWwvbGliYy5oCi1A QCAtMjEsNyArMjEsNyBAQCBzdHJ1Y3QgX19saWJjIHsKLSAJaW50IGNhbl9kb190aHJlYWRzOwot IAlpbnQgdGhyZWFkZWQ7Ci0gCWludCBzZWN1cmU7Ci0tCXZvbGF0aWxlIGludCB0aHJlYWRzX21p bnVzXzE7Ci0rCWludCB0aHJlYWRzX21pbnVzXzE7Ci0gCXNpemVfdCAqYXV4djsKLSAJc3RydWN0 IHRsc19tb2R1bGUgKnRsc19oZWFkOwotIAlzaXplX3QgdGxzX3NpemUsIHRsc19hbGlnbiwgdGxz X2NudDsKLWRpZmYgLS1naXQgYS9zcmMvbWFsbG9jL21hbGxvYy5jIGIvc3JjL21hbGxvYy9tYWxs b2MuYwotaW5kZXggOTY5ODI1OTYuLjI1NTNhNjJlIDEwMDY0NAotLS0tIGEvc3JjL21hbGxvYy9t YWxsb2MuYwotKysrIGIvc3JjL21hbGxvYy9tYWxsb2MuYwotQEAgLTI2LDcgKzI2LDcgQEAgaW50 IF9fbWFsbG9jX3JlcGxhY2VkOwotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2NrKHZvbGF0aWxl IGludCAqbGspCi0gewotLQlpZiAobGliYy50aHJlYWRzX21pbnVzXzEpCi0rCWlmIChsaWJjLnRo cmVhZGVkKQotIAkJd2hpbGUoYV9zd2FwKGxrLCAxKSkgX193YWl0KGxrLCBsaysxLCAxLCAxKTsK LSB9Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9fX2xvY2suYyBiL3NyYy90aHJlYWQvX19s b2NrLmMKLWluZGV4IDQ1NTU3Yzg4Li41YjliMTQ0ZSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQv X19sb2NrLmMKLSsrKyBiL3NyYy90aHJlYWQvX19sb2NrLmMKLUBAIC0xOCw3ICsxOCw3IEBACi0g Ci0gdm9pZCBfX2xvY2sodm9sYXRpbGUgaW50ICpsKQotIHsKLS0JaWYgKCFsaWJjLnRocmVhZHNf bWludXNfMSkgcmV0dXJuOwotKwlpZiAoIWxpYmMudGhyZWFkZWQpIHJldHVybjsKLSAJLyogZmFz dCBwYXRoOiBJTlRfTUlOIGZvciB0aGUgbG9jaywgKzEgZm9yIHRoZSBjb25nZXN0aW9uICovCi0g CWludCBjdXJyZW50ID0gYV9jYXMobCwgMCwgSU5UX01JTiArIDEpOwotIAlpZiAoIWN1cnJlbnQp IHJldHVybjsKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVz LzAwMDNfY3V0X2Rvd25fc2l6ZV9vZl9zb21lX2xpYmNfc3RydWN0X21lbWJlcnMucGF0Y2ggYi9z cmNwa2dzL211c2wvcGF0Y2hlcy8wMDAzX2N1dF9kb3duX3NpemVfb2Zfc29tZV9saWJjX3N0cnVj dF9tZW1iZXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDBjNWQ5NTAx OTU3Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDNfY3V0X2Rv d25fc2l6ZV9vZl9zb21lX2xpYmNfc3RydWN0X21lbWJlcnMucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwzMCArMCwwIEBACi0+RnJvbSBmMTI4ODhlOWViOWVlZDYwY2MyNjZiODk5ZGNhZmVjYjQ3 NTI5NjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlh c0BhZXJpZmFsLmN4PgotRGF0ZTogRnJpLCAyMiBNYXkgMjAyMCAxNzoyNTozOCAtMDQwMAotU3Vi amVjdDogW1BBVENIIDMvNF0gY3V0IGRvd24gc2l6ZSBvZiBzb21lIGxpYmMgc3RydWN0IG1lbWJl cnMKLQotdGhlc2UgYXJlIGFsbCBmbGFncyB0aGF0IGNhbiBiZSBzaW5nbGUtYnl0ZSB2YWx1ZXMu Ci0tLS0KLSBzcmMvaW50ZXJuYWwvbGliYy5oIHwgNiArKystLS0KLSAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ludGVy bmFsL2xpYmMuaCBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLWluZGV4IGMwNjE0ODUyLi5kNDdmNThl MCAxMDA2NDQKLS0tLSBhL3NyYy9pbnRlcm5hbC9saWJjLmgKLSsrKyBiL3NyYy9pbnRlcm5hbC9s aWJjLmgKLUBAIC0xOCw5ICsxOCw5IEBAIHN0cnVjdCB0bHNfbW9kdWxlIHsKLSB9OwotIAotIHN0 cnVjdCBfX2xpYmMgewotLQlpbnQgY2FuX2RvX3RocmVhZHM7Ci0tCWludCB0aHJlYWRlZDsKLS0J aW50IHNlY3VyZTsKLSsJY2hhciBjYW5fZG9fdGhyZWFkczsKLSsJY2hhciB0aHJlYWRlZDsKLSsJ Y2hhciBzZWN1cmU7Ci0gCWludCB0aHJlYWRzX21pbnVzXzE7Ci0gCXNpemVfdCAqYXV4djsKLSAJ c3RydWN0IHRsc19tb2R1bGUgKnRsc19oZWFkOwotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwNF9yZXN0b3JlX2xvY2tfc2tpcHBpbmdfZm9yX3Byb2Nl c3Nlc190aGF0X3JldHVybl90b19zLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwNF9y ZXN0b3JlX2xvY2tfc2tpcHBpbmdfZm9yX3Byb2Nlc3Nlc190aGF0X3JldHVybl90b19zLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzAzYzFmNDAzYzU5Li4wMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDRfcmVzdG9yZV9sb2NrX3NraXBwaW5n X2Zvcl9wcm9jZXNzZXNfdGhhdF9yZXR1cm5fdG9fcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEwMiArMCwwIEBACi0+RnJvbSA4ZDgxYmE4YzBiYzZmZTMxMTM2Y2IxNWM5YzgyZWY0YzI0OTY1 MDQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0Bh ZXJpZmFsLmN4PgotRGF0ZTogRnJpLCAyMiBNYXkgMjAyMCAxNzo0NTo0NyAtMDQwMAotU3ViamVj dDogW1BBVENIIDQvNF0gcmVzdG9yZSBsb2NrLXNraXBwaW5nIGZvciBwcm9jZXNzZXMgdGhhdCBy ZXR1cm4gdG8KLSBzaW5nbGUtdGhyZWFkZWQgc3RhdGUKLQotdGhlIGRlc2lnbiB1c2VkIGhlcmUg cmVsaWVzIG9uIHRoZSBiYXJyaWVyIHByb3ZpZGVkIGJ5IHRoZSBmaXJzdCBsb2NrCi1vcGVyYXRp b24gYWZ0ZXIgdGhlIHByb2Nlc3MgcmV0dXJucyB0byBzaW5nbGUtdGhyZWFkZWQgc3RhdGUgdG8K LXN5bmNocm9uaXplIHdpdGggYWN0aW9ucyBieSB0aGUgbGFzdCB0aHJlYWQgdGhhdCBleGl0ZWQu IGJ5IHN0b3JpbmcKLXRoZSBpbnRlbnQgdG8gY2hhbmdlIG1vZGVzIGluIHRoZSBzYW1lIG9iamVj dCB1c2VkIHRvIGRldGVjdCB3aGV0aGVyCi1sb2NraW5nIGlzIG5lZWRlZCwgaXQncyBwb3NzaWJs ZSB0byBhdm9pZCBhbiBleHRyYSAocG9zc2libHkgY29zdGx5KQotbWVtb3J5IGxvYWQgYWZ0ZXIg dGhlIGxvY2sgaXMgdGFrZW4uCi0tLS0KLSBzcmMvaW50ZXJuYWwvbGliYy5oICAgICAgICAgfCAx ICsKLSBzcmMvbWFsbG9jL21hbGxvYy5jICAgICAgICAgfCA1ICsrKystCi0gc3JjL3RocmVhZC9f X2xvY2suYyAgICAgICAgIHwgNCArKystCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jIHwg OCArKysrLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pbnRlcm5hbC9saWJjLmggYi9zcmMvaW50ZXJuYWwv bGliYy5oCi1pbmRleCBkNDdmNThlMC4uNjE5YmJhODYgMTAwNjQ0Ci0tLS0gYS9zcmMvaW50ZXJu YWwvbGliYy5oCi0rKysgYi9zcmMvaW50ZXJuYWwvbGliYy5oCi1AQCAtMjEsNiArMjEsNyBAQCBz dHJ1Y3QgX19saWJjIHsKLSAJY2hhciBjYW5fZG9fdGhyZWFkczsKLSAJY2hhciB0aHJlYWRlZDsK LSAJY2hhciBzZWN1cmU7Ci0rCXZvbGF0aWxlIHNpZ25lZCBjaGFyIG5lZWRfbG9ja3M7Ci0gCWlu dCB0aHJlYWRzX21pbnVzXzE7Ci0gCXNpemVfdCAqYXV4djsKLSAJc3RydWN0IHRsc19tb2R1bGUg KnRsc19oZWFkOwotZGlmZiAtLWdpdCBhL3NyYy9tYWxsb2MvbWFsbG9jLmMgYi9zcmMvbWFsbG9j L21hbGxvYy5jCi1pbmRleCAyNTUzYTYyZS4uYTgwM2Q0YzkgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFs bG9jL21hbGxvYy5jCi0rKysgYi9zcmMvbWFsbG9jL21hbGxvYy5jCi1AQCAtMjYsOCArMjYsMTEg QEAgaW50IF9fbWFsbG9jX3JlcGxhY2VkOwotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2NrKHZv bGF0aWxlIGludCAqbGspCi0gewotLQlpZiAobGliYy50aHJlYWRlZCkKLSsJaW50IG5lZWRfbG9j a3MgPSBsaWJjLm5lZWRfbG9ja3M7Ci0rCWlmIChuZWVkX2xvY2tzKSB7Ci0gCQl3aGlsZShhX3N3 YXAobGssIDEpKSBfX3dhaXQobGssIGxrKzEsIDEsIDEpOwotKwkJaWYgKG5lZWRfbG9ja3MgPCAw KSBsaWJjLm5lZWRfbG9ja3MgPSAwOwotKwl9Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCB1 bmxvY2sodm9sYXRpbGUgaW50ICpsaykKLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL19fbG9jay5j IGIvc3JjL3RocmVhZC9fX2xvY2suYwotaW5kZXggNWI5YjE0NGUuLjYwZWVjZTQ5IDEwMDY0NAot LS0tIGEvc3JjL3RocmVhZC9fX2xvY2suYwotKysrIGIvc3JjL3RocmVhZC9fX2xvY2suYwotQEAg LTE4LDkgKzE4LDExIEBACi0gCi0gdm9pZCBfX2xvY2sodm9sYXRpbGUgaW50ICpsKQotIHsKLS0J aWYgKCFsaWJjLnRocmVhZGVkKSByZXR1cm47Ci0rCWludCBuZWVkX2xvY2tzID0gbGliYy5uZWVk X2xvY2tzOwotKwlpZiAoIW5lZWRfbG9ja3MpIHJldHVybjsKLSAJLyogZmFzdCBwYXRoOiBJTlRf TUlOIGZvciB0aGUgbG9jaywgKzEgZm9yIHRoZSBjb25nZXN0aW9uICovCi0gCWludCBjdXJyZW50 ID0gYV9jYXMobCwgMCwgSU5UX01JTiArIDEpOwotKwlpZiAobmVlZF9sb2NrcyA8IDApIGxpYmMu bmVlZF9sb2NrcyA9IDA7Ci0gCWlmICghY3VycmVudCkgcmV0dXJuOwotIAkvKiBBIGZpcnN0IHNw aW4gbG9vcCwgZm9yIG1lZGl1bSBjb25nZXN0aW9uLiAqLwotIAlmb3IgKHVuc2lnbmVkIGkgPSAw OyBpIDwgMTA7ICsraSkgewotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUu YyBiL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwotaW5kZXggNmEzYjBjMjEuLjZiZGZiNDRm IDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jCi0rKysgYi9zcmMvdGhy ZWFkL3B0aHJlYWRfY3JlYXRlLmMKLUBAIC0xMTgsOCArMTE4LDggQEAgX05vcmV0dXJuIHZvaWQg X19wdGhyZWFkX2V4aXQodm9pZCAqcmVzdWx0KQotIAkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxl YXNlZCwgd2hpY2ggb25seSBoYXBwZW5zIGFmdGVyIFNZU19leGl0Ci0gCSAqIGhhcyBiZWVuIGNh bGxlZCwgdmlhIHRoZSBleGl0IGZ1dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suCi0g CSAqIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIGFueSBwb3NzaWJsZSBjYWxscyB0byBMT0NL KCkgdGhhdCBtaWdodAotLQkgKiBza2lwIGxvY2tpbmcgaWYgbGliYy50aHJlYWRzX21pbnVzXzEg aXMgemVyby4gKi8KLS0JbGliYy50aHJlYWRzX21pbnVzXzEtLTsKLSsJICogc2tpcCBsb2NraW5n IGlmIHByb2Nlc3MgYXBwZWFycyBzaW5nbGUtdGhyZWFkZWQuICovCi0rCWlmICghLS1saWJjLnRo cmVhZHNfbWludXNfMSkgbGliYy5uZWVkX2xvY2tzID0gLTE7Ci0gCXNlbGYtPm5leHQtPnByZXYg PSBzZWxmLT5wcmV2OwotIAlzZWxmLT5wcmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLSAJc2VsZi0+ cHJldiA9IHNlbGYtPm5leHQgPSBzZWxmOwotQEAgLTMzOSw3ICszMzksNyBAQCBpbnQgX19wdGhy ZWFkX2NyZWF0ZShwdGhyZWFkX3QgKnJlc3RyaWN0IHJlcywgY29uc3QgcHRocmVhZF9hdHRyX3Qg KnJlc3RyaWN0IGF0dAotIAkJfigxVUw8PCgoU0lHQ0FOQ0VMLTEpJSg4KnNpemVvZihsb25nKSkp KTsKLSAKLSAJX190bF9sb2NrKCk7Ci0tCWxpYmMudGhyZWFkc19taW51c18xKys7Ci0rCWlmICgh bGliYy50aHJlYWRzX21pbnVzXzErKykgbGliYy5uZWVkX2xvY2tzID0gMTsKLSAJcmV0ID0gX19j bG9uZSgoYzExID8gc3RhcnRfYzExIDogc3RhcnQpLCBzdGFjaywgZmxhZ3MsIGFyZ3MsICZuZXct PnRpZCwgVFBfQURKKG5ldyksICZfX3RocmVhZF9saXN0X2xvY2spOwotIAotIAkvKiBBbGwgY2xv bmUgZmFpbHVyZXMgdHJhbnNsYXRlIHRvIEVBR0FJTi4gSWYgZXhwbGljaXQgc2NoZWR1bGluZwot QEAgLTM2Myw3ICszNjMsNyBAQCBpbnQgX19wdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3QgKnJlc3Ry aWN0IHJlcywgY29uc3QgcHRocmVhZF9hdHRyX3QgKnJlc3RyaWN0IGF0dAotIAkJbmV3LT5uZXh0 LT5wcmV2ID0gbmV3OwotIAkJbmV3LT5wcmV2LT5uZXh0ID0gbmV3OwotIAl9IGVsc2UgewotLQkJ bGliYy50aHJlYWRzX21pbnVzXzEtLTsKLSsJCWlmICghLS1saWJjLnRocmVhZHNfbWludXNfMSkg bGliYy5uZWVkX2xvY2tzID0gMDsKLSAJfQotIAlfX3RsX3VubG9jaygpOwotIAlfX3Jlc3RvcmVf c2lncygmc2V0KTsKLS0tIAotMi4yMS4wCi0KLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3Bh dGNoZXMvOThlNjg4YTlkYTVlN2IyOTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4Ny5wYXRjaCBiL3Ny Y3BrZ3MvbXVzbC9wYXRjaGVzLzk4ZTY4OGE5ZGE1ZTdiMjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIy ODcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4YmZhNjZkNmM0N2QuLjAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvOThlNjg4YTlkYTVlN2IyOTI1 ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4Ny5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCww IEBACi1Gcm9tIDk4ZTY4OGE5ZGE1ZTdiMjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJc21hZWwgTHVjZW5vIDxpc21hZWxAaW9kZXYuY28u dWs+Ci1EYXRlOiBTdW4sIDE1IEF1ZyAyMDIxIDE3OjUxOjU3ICswMjAwCi1TdWJqZWN0OiBbUEFU Q0hdIGRlZmluZSBOVUxMIGFzIG51bGxwdHIgd2hlbiB1c2VkIGluIEMrKzExIG9yIGxhdGVyCi0K LVRoaXMgc2hvdWxkIGJlIHNhZmVyIGZvciBjYXN0aW5nIGFuZCBtb3JlIGNvbXBhdGlibGUgd2l0 aCBleGlzdGluZyBjb2RlCi1iYXNlcyB0aGF0IHdyb25nbHkgYXNzdW1lIGl0IG11c3QgYmUgZGVm aW5lZCBhcyBhIHBvaW50ZXIuCi0tLS0KLSBpbmNsdWRlL2xvY2FsZS5oIHwgNCArKystCi0gaW5j bHVkZS9zdGRkZWYuaCB8IDQgKysrLQotIGluY2x1ZGUvc3RkaW8uaCAgfCA0ICsrKy0KLSBpbmNs dWRlL3N0ZGxpYi5oIHwgNCArKystCi0gaW5jbHVkZS9zdHJpbmcuaCB8IDQgKysrLQotIGluY2x1 ZGUvdGltZS5oICAgfCA0ICsrKy0KLSBpbmNsdWRlL3VuaXN0ZC5oIHwgNCArKystCi0gaW5jbHVk ZS93Y2hhci5oICB8IDQgKysrLQotIDggZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvbG9jYWxlLmggYi9pbmNsdWRl L2xvY2FsZS5oCi1pbmRleCBjZTM4NDM4MWMuLjExMTA2ZmVhOCAxMDA2NDQKLS0tLSBhL2luY2x1 ZGUvbG9jYWxlLmgKLSsrKyBiL2luY2x1ZGUvbG9jYWxlLmgKLUBAIC03LDcgKzcsOSBAQCBleHRl cm4gIkMiIHsKLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSAKLS0jaWZkZWYgX19jcGx1c3Bs dXMKLSsjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0r I2VsaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNk ZWZpbmUgTlVMTCAoKHZvaWQqKTApCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRkZWYuaCBiL2lu Y2x1ZGUvc3RkZGVmLmgKLWluZGV4IGJkNzUzODUzNS4uZjI1Yjg2Mzk2IDEwMDY0NAotLS0tIGEv aW5jbHVkZS9zdGRkZWYuaAotKysrIGIvaW5jbHVkZS9zdGRkZWYuaAotQEAgLTEsNyArMSw5IEBA Ci0gI2lmbmRlZiBfU1REREVGX0gKLSAjZGVmaW5lIF9TVERERUZfSAotIAotLSNpZmRlZiBfX2Nw bHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxw dHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNl Ci0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0ZGlvLmgg Yi9pbmNsdWRlL3N0ZGlvLmgKLWluZGV4IDM2MDQxOThjMy4uZDFlZDAxZjAzIDEwMDY0NAotLS0t IGEvaW5jbHVkZS9zdGRpby5oCi0rKysgYi9pbmNsdWRlL3N0ZGlvLmgKLUBAIC0yNSw3ICsyNSw5 IEBAIGV4dGVybiAiQyIgewotIAotICNpbmNsdWRlIDxiaXRzL2FsbHR5cGVzLmg+Ci0gCi0tI2lm ZGVmIF9fY3BsdXNwbHVzCi0rI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5V TEwgbnVsbHB0cgotKyNlbGlmIGRlZmluZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBM Ci0gI2Vsc2UKLSAjZGVmaW5lIE5VTEwgKCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUv c3RkbGliLmggYi9pbmNsdWRlL3N0ZGxpYi5oCi1pbmRleCA3YWY4NmUzYmMuLmI1MDdjYTMzYiAx MDA2NDQKLS0tLSBhL2luY2x1ZGUvc3RkbGliLmgKLSsrKyBiL2luY2x1ZGUvc3RkbGliLmgKLUBA IC03LDcgKzcsOSBAQCBleHRlcm4gIkMiIHsKLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSAK LS0jaWZkZWYgX19jcGx1c3BsdXMKLSsjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZp bmUgTlVMTCBudWxscHRyCi0rI2VsaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5lIE5V TEwgMEwKLSAjZWxzZQotICNkZWZpbmUgTlVMTCAoKHZvaWQqKTApCi1kaWZmIC0tZ2l0IGEvaW5j bHVkZS9zdHJpbmcuaCBiL2luY2x1ZGUvc3RyaW5nLmgKLWluZGV4IDc5NWEyYWJjZC4uNDNhZDA5 NDJlIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdHJpbmcuaAotKysrIGIvaW5jbHVkZS9zdHJpbmcu aAotQEAgLTcsNyArNyw5IEBAIGV4dGVybiAiQyIgewotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5o PgotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0r I2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZp bmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQg YS9pbmNsdWRlL3RpbWUuaCBiL2luY2x1ZGUvdGltZS5oCi1pbmRleCA1NDk0ZGYxODMuLjNkOTQ4 MzcyMCAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvdGltZS5oCi0rKysgYi9pbmNsdWRlL3RpbWUuaAot QEAgLTcsNyArNyw5IEBAIGV4dGVybiAiQyIgewotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5oPgot IAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2Rl ZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUg TlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQgYS9p bmNsdWRlL3VuaXN0ZC5oIGIvaW5jbHVkZS91bmlzdGQuaAotaW5kZXggMTMwNjQwMjYwLi5lZTJk YmU4YWYgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3VuaXN0ZC5oCi0rKysgYi9pbmNsdWRlL3VuaXN0 ZC5oCi1AQCAtMTUsNyArMTUsOSBAQCBleHRlcm4gIkMiIHsKLSAjZGVmaW5lIFNFRUtfQ1VSIDEK LSAjZGVmaW5lIFNFRUtfRU5EIDIKLSAKLS0jaWZkZWYgX19jcGx1c3BsdXMKLSsjaWYgX19jcGx1 c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0rI2VsaWYgZGVmaW5lZChf X2NwbHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNkZWZpbmUgTlVMTCAoKHZv aWQqKTApCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS93Y2hhci5oIGIvaW5jbHVkZS93Y2hhci5oCi1p bmRleCA4OGViNTViMTguLmVkNWQ3NzRkZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvd2NoYXIuaAot KysrIGIvaW5jbHVkZS93Y2hhci5oCi1AQCAtMzgsNyArMzgsOSBAQCBleHRlcm4gIkMiIHsKLSAj ZGVmaW5lIFdDSEFSX01JTiAoLTEtMHg3ZmZmZmZmZitMJ1wwJykKLSAjZW5kaWYKLSAKLS0jaWZk ZWYgX19jcGx1c3BsdXMKLSsjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVM TCBudWxscHRyCi0rI2VsaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwK LSAjZWxzZQotICNkZWZpbmUgTlVMTCAoKHZvaWQqKTApCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzLzk5ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0 Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy85OWQ1MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4 Y2E4NWRkMTc4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTAzYWQxNjA3 Y2U5Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5ZDUwOThhODg1 ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MTMgKzAsMCBAQAotRnJvbSA5OWQ1MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRkMTc4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSnVsaWVuIFJhbXNlaWVyIDxqLnJhbXNl aWVyQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMTggT2N0IDIwMjAgMTI6MTU6MDYgLTA0MDAKLVN1 YmplY3Q6IHVwZGF0ZSBjcnlwdF9ibG93ZmlzaCB0byBzdXBwb3J0ICQyYiQgcHJlZml4Ci0KLU1l cmdlIGNoYW5nZXMgZnJvbSBTb2xhciBEZXNpZ25lcidzIGNyeXB0X2Jsb3dmaXNoIHYxLjMuIFRo aXMgbWFrZXMKLWNyeXB0X2Jsb3dmaXNoIGZ1bGx5IGNvbXBhdGlibGUgd2l0aCBPcGVuQlNEJ3Mg YmNyeXB0IGJ5IGFkZGluZwotc3VwcG9ydCBmb3IgdGhlICQyYiQgcHJlZml4ICh3aGljaCBiZWhh dmVzIHRoZSBzYW1lIGFzCi1jcnlwdF9ibG93ZmlzaCdzICQyeSQpLgotLS0tCi0gc3JjL2NyeXB0 L2NyeXB0X2Jsb3dmaXNoLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK LQotKGxpbWl0ZWQgdG8gJ3NyYy9jcnlwdC9jcnlwdF9ibG93ZmlzaC5jJykKLQotZGlmZiAtLWdp dCBhL3NyYy9jcnlwdC9jcnlwdF9ibG93ZmlzaC5jIGIvc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNo LmMKLWluZGV4IGQzZjc5ODUxLi5kNzIyNjA3YiAxMDA2NDQKLS0tLSBhL3NyYy9jcnlwdC9jcnlw dF9ibG93ZmlzaC5jCi0rKysgYi9zcmMvY3J5cHQvY3J5cHRfYmxvd2Zpc2guYwotQEAgLTE1LDcg KzE1LDcgQEAKLSAgKiBObyBjb3B5cmlnaHQgaXMgY2xhaW1lZCwgYW5kIHRoZSBzb2Z0d2FyZSBp cyBoZXJlYnkgcGxhY2VkIGluIHRoZSBwdWJsaWMKLSAgKiBkb21haW4uICBJbiBjYXNlIHRoaXMg YXR0ZW1wdCB0byBkaXNjbGFpbSBjb3B5cmlnaHQgYW5kIHBsYWNlIHRoZSBzb2Z0d2FyZQotICAq IGluIHRoZSBwdWJsaWMgZG9tYWluIGlzIGRlZW1lZCBudWxsIGFuZCB2b2lkLCB0aGVuIHRoZSBz b2Z0d2FyZSBpcwotLSAqIENvcHlyaWdodCAoYykgMTk5OC0yMDEyIFNvbGFyIERlc2lnbmVyIGFu ZCBpdCBpcyBoZXJlYnkgcmVsZWFzZWQgdG8gdGhlCi0rICogQ29weXJpZ2h0IChjKSAxOTk4LTIw MTQgU29sYXIgRGVzaWduZXIgYW5kIGl0IGlzIGhlcmVieSByZWxlYXNlZCB0byB0aGUKLSAgKiBn ZW5lcmFsIHB1YmxpYyB1bmRlciB0aGUgZm9sbG93aW5nIHRlcm1zOgotICAqCi0gICogUmVkaXN0 cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo b3V0Ci1AQCAtMzEsMTIgKzMxLDEyIEBACi0gICogeW91IHBsYWNlIHRoaXMgY29kZSBhbmQgYW55 IG1vZGlmaWNhdGlvbnMgeW91IG1ha2UgdW5kZXIgYSBsaWNlbnNlCi0gICogb2YgeW91ciBjaG9p Y2UuCi0gICoKLS0gKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG1vc3RseSBjb21wYXRpYmxlIHdp dGggT3BlbkJTRCdzIGJjcnlwdC5jIChwcmVmaXgKLS0gKiAiJDJhJCIpIGJ5IE5pZWxzIFByb3Zv cyA8cHJvdm9zIGF0IGNpdGkudW1pY2guZWR1PiwgYW5kIHVzZXMgc29tZSBvZiBoaXMKLS0gKiBp ZGVhcy4gIFRoZSBwYXNzd29yZCBoYXNoaW5nIGFsZ29yaXRobSB3YXMgZGVzaWduZWQgYnkgRGF2 aWQgTWF6aWVyZXMKLS0gKiA8ZG0gYXQgbGNzLm1pdC5lZHU+LiAgRm9yIG1vcmUgaW5mb3JtYXRp b24gb24gdGhlIGxldmVsIG9mIGNvbXBhdGliaWxpdHksCi0tICogcGxlYXNlIHJlZmVyIHRvIHRo ZSBjb21tZW50cyBpbiBCRl9zZXRfa2V5KCkgYmVsb3cgYW5kIHRvIHRoZSBpbmNsdWRlZAotLSAq IGNyeXB0KDMpIG1hbiBwYWdlLgotKyAqIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgZnVsbHkgY29t cGF0aWJsZSB3aXRoIE9wZW5CU0QncyBiY3J5cHQuYyBmb3IgcHJlZml4Ci0rICogIiQyYiQiLCBv cmlnaW5hbGx5IGJ5IE5pZWxzIFByb3ZvcyA8cHJvdm9zIGF0IGNpdGkudW1pY2guZWR1PiwgYW5k IGl0IHVzZXMKLSsgKiBzb21lIG9mIGhpcyBpZGVhcy4gIFRoZSBwYXNzd29yZCBoYXNoaW5nIGFs Z29yaXRobSB3YXMgZGVzaWduZWQgYnkgRGF2aWQKLSsgKiBNYXppZXJlcyA8ZG0gYXQgbGNzLm1p dC5lZHU+LiAgRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBsZXZlbCBvZgotKyAqIGNvbXBhdGliaWxp dHkgZm9yIGJjcnlwdCBoYXNoIHByZWZpeGVzIG90aGVyIHRoYW4gIiQyYiQiLCBwbGVhc2UgcmVm ZXIgdG8KLSsgKiB0aGUgY29tbWVudHMgaW4gQkZfc2V0X2tleSgpIGJlbG93IGFuZCB0byB0aGUg aW5jbHVkZWQgY3J5cHQoMykgbWFuIHBhZ2UuCi0gICoKLSAgKiBUaGVyZSdzIGEgcGFwZXIgb24g dGhlIGFsZ29yaXRobSB0aGF0IGV4cGxhaW5zIGl0cyBkZXNpZ24gZGVjaXNpb25zOgotICAqCi1A QCAtNTMzLDYgKzUzMyw3IEBAIHN0YXRpYyB2b2lkIEJGX3NldF9rZXkoY29uc3QgY2hhciAqa2V5 LCBCRl9rZXkgZXhwYW5kZWQsIEJGX2tleSBpbml0aWFsLAotICAqIFZhbGlkIGNvbWJpbmF0aW9u cyBvZiBzZXR0aW5ncyBhcmU6Ci0gICoKLSAgKiBQcmVmaXggIiQyYSQiOiBidWcgPSAwLCBzYWZl dHkgPSAweDEwMDAwCi0rICogUHJlZml4ICIkMmIkIjogYnVnID0gMCwgc2FmZXR5ID0gMAotICAq IFByZWZpeCAiJDJ4JCI6IGJ1ZyA9IDEsIHNhZmV0eSA9IDAKLSAgKiBQcmVmaXggIiQyeSQiOiBi dWcgPSAwLCBzYWZldHkgPSAwCi0gICovCi1AQCAtNTk2LDEyICs1OTcsMTQgQEAgc3RhdGljIHZv aWQgQkZfc2V0X2tleShjb25zdCBjaGFyICprZXksIEJGX2tleSBleHBhbmRlZCwgQkZfa2V5IGlu aXRpYWwsCi0gCWluaXRpYWxbMF0gXj0gc2lnbjsKLSB9Ci0gCi0rc3RhdGljIGNvbnN0IHVuc2ln bmVkIGNoYXIgZmxhZ3NfYnlfc3VidHlwZVsyNl0gPSB7Ci0rCTIsIDQsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsCi0rCTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDQs IDAKLSt9OwotKwotIHN0YXRpYyBjaGFyICpCRl9jcnlwdChjb25zdCBjaGFyICprZXksIGNvbnN0 IGNoYXIgKnNldHRpbmcsCi0gCWNoYXIgKm91dHB1dCwgQkZfd29yZCBtaW4pCi0gewotLQlzdGF0 aWMgY29uc3QgdW5zaWduZWQgY2hhciBmbGFnc19ieV9zdWJ0eXBlWzI2XSA9Ci0tCQl7MiwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLS0JCTAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDEsIDQsIDB9OwotIAlzdHJ1Y3QgewotIAkJQkZfY3R4IGN0eDsKLSAJCUJGX2tl eSBleHBhbmRlZF9rZXk7Ci1AQCAtNzQ2LDkgKzc0OSwxMSBAQCBjaGFyICpfX2NyeXB0X2Jsb3dm aXNoKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqc2V0dGluZywgY2hhciAqb3V0cHV0KQot IHsKLSAJY29uc3QgY2hhciAqdGVzdF9rZXkgPSAiOGIgXHhkMFx4YzFceGQyXHhjZlx4Y2NceGQ4 IjsKLSAJY29uc3QgY2hhciAqdGVzdF9zZXR0aW5nID0gIiQyYSQwMCRhYmNkZWZnaGlqa2xtbm9w cXJzdHV1IjsKLS0Jc3RhdGljIGNvbnN0IGNoYXIgdGVzdF9oYXNoWzJdWzM0XSA9Ci0tCQl7IlZV clBtWEQ2cS9uVlNTcDdwTkRoQ1I5MDcxSWZJUmVcMFx4NTUiLCAvKiAkMngkICovCi0tCQkiaTFE NzA5dmZhbXVsaW1sR2NxMHFxM1V2dVVhc3ZFYVwwXHg1NSJ9OyAvKiAkMmEkLCAkMnkkICovCi0r CXN0YXRpYyBjb25zdCBjaGFyIHRlc3RfaGFzaGVzWzJdWzM0XSA9IHsKLSsJCSJpMUQ3MDl2ZmFt dWxpbWxHY3EwcXEzVXZ1VWFzdkVhXDBceDU1IiwgLyogJ2EnLCAnYicsICd5JyAqLwotKwkJIlZV clBtWEQ2cS9uVlNTcDdwTkRoQ1I5MDcxSWZJUmVcMFx4NTUiLCAvKiAneCcgKi8KLSsJfTsKLSsJ Y29uc3QgY2hhciAqdGVzdF9oYXNoID0gdGVzdF9oYXNoZXNbMF07Ci0gCWNoYXIgKnJldHZhbDsK LSAJY29uc3QgY2hhciAqcDsKLSAJaW50IG9rOwotQEAgLTc2OCw4ICs3NzMsMTEgQEAgY2hhciAq X19jcnlwdF9ibG93ZmlzaChjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsIGNo YXIgKm91dHB1dCkKLSAgKiBkZXRlY3RlZCBieSB0aGUgc2VsZi10ZXN0LgotICAqLwotIAltZW1j cHkoYnVmLnMsIHRlc3Rfc2V0dGluZywgc2l6ZW9mKGJ1Zi5zKSk7Ci0tCWlmIChyZXR2YWwpCi0r CWlmIChyZXR2YWwpIHsKLSsJCXVuc2lnbmVkIGludCBmbGFncyA9IGZsYWdzX2J5X3N1YnR5cGVb c2V0dGluZ1syXSAtICdhJ107Ci0rCQl0ZXN0X2hhc2ggPSB0ZXN0X2hhc2hlc1tmbGFncyAmIDFd OwotIAkJYnVmLnNbMl0gPSBzZXR0aW5nWzJdOwotKwl9Ci0gCW1lbXNldChidWYubywgMHg1NSwg c2l6ZW9mKGJ1Zi5vKSk7Ci0gCWJ1Zi5vW3NpemVvZihidWYubykgLSAxXSA9IDA7Ci0gCXAgPSBC Rl9jcnlwdCh0ZXN0X2tleSwgYnVmLnMsIGJ1Zi5vLCAxKTsKLUBAIC03NzcsNyArNzg1LDcgQEAg Y2hhciAqX19jcnlwdF9ibG93ZmlzaChjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRp bmcsIGNoYXIgKm91dHB1dCkKLSAJb2sgPSAocCA9PSBidWYubyAmJgotIAkgICAgIW1lbWNtcChw LCBidWYucywgNyArIDIyKSAmJgotIAkgICAgIW1lbWNtcChwICsgKDcgKyAyMiksCi0tCSAgICB0 ZXN0X2hhc2hbYnVmLnNbMl0gJiAxXSwKLSsJICAgIHRlc3RfaGFzaCwKLSAJICAgIDMxICsgMSAr IDEgKyAxKSk7Ci0gCi0gCXsKLS0tIAotY2dpdCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9tdXNsL3BhdGNoZXMvQ1ZFLTIwMjAtMjg5MjgucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hl cy9DVkUtMjAyMC0yODkyOC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNm ZjNiNGVlMDhmMC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9DVkUt MjAyMC0yODkyOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS0tLSBhL3Ny Yy9tdWx0aWJ5dGUvd2NzbnJ0b21icy5jCi0rKysgYi9zcmMvbXVsdGlieXRlL3djc25ydG9tYnMu YwotQEAgLTEsNDEgKzEsMzMgQEAKLSAjaW5jbHVkZSA8d2NoYXIuaD4KLSsjaW5jbHVkZSA8bGlt aXRzLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotIAotIHNpemVfdCB3Y3NucnRvbWJzKGNoYXIg KnJlc3RyaWN0IGRzdCwgY29uc3Qgd2NoYXJfdCAqKnJlc3RyaWN0IHdjcywgc2l6ZV90IHduLCBz aXplX3QgbiwgbWJzdGF0ZV90ICpyZXN0cmljdCBzdCkKLSB7Ci0tCXNpemVfdCBsLCBjbnQ9MCwg bjI7Ci0tCWNoYXIgKnMsIGJ1ZlsyNTZdOwotIAljb25zdCB3Y2hhcl90ICp3cyA9ICp3Y3M7Ci0t CWNvbnN0IHdjaGFyX3QgKnRtcF93czsKLS0KLS0JaWYgKCFkc3QpIHMgPSBidWYsIG4gPSBzaXpl b2YgYnVmOwotLQllbHNlIHMgPSBkc3Q7Ci0tCi0tCXdoaWxlICggd3MgJiYgbiAmJiAoIChuMj13 bik+PW4gfHwgbjI+MzIgKSApIHsKLS0JCWlmIChuMj49bikgbjI9bjsKLS0JCXRtcF93cyA9IHdz OwotLQkJbCA9IHdjc3J0b21icyhzLCAmd3MsIG4yLCAwKTsKLS0JCWlmICghKGwrMSkpIHsKLS0J CQljbnQgPSBsOwotLQkJCW4gPSAwOwotKwlzaXplX3QgY250ID0gMDsKLSsJaWYgKCFkc3QpIG49 MDsKLSsJd2hpbGUgKHdzICYmIHduKSB7Ci0rCQljaGFyIHRtcFtNQl9MRU5fTUFYXTsKLSsJCXNp emVfdCBsID0gd2NydG9tYihuPE1CX0xFTl9NQVggPyB0bXAgOiBkc3QsICp3cywgMCk7Ci0rCQlp ZiAobD09LTEpIHsKLSsJCQljbnQgPSAtMTsKLSAJCQlicmVhazsKLSAJCX0KLS0JCWlmIChzICE9 IGJ1ZikgewotLQkJCXMgKz0gbDsKLSsJCWlmIChkc3QpIHsKLSsJCQlpZiAobjxNQl9MRU5fTUFY KSB7Ci0rCQkJCWlmIChsPm4pIGJyZWFrOwotKwkJCQltZW1jcHkoZHN0LCB0bXAsIGwpOwotKwkJ CX0KLSsJCQlkc3QgKz0gbDsKLSAJCQluIC09IGw7Ci0gCQl9Ci0tCQl3biA9IHdzID8gd24gLSAo d3MgLSB0bXBfd3MpIDogMDsKLS0JCWNudCArPSBsOwotLQl9Ci0tCWlmICh3cykgd2hpbGUgKG4g JiYgd24pIHsKLS0JCWwgPSB3Y3J0b21iKHMsICp3cywgMCk7Ci0tCQlpZiAoKGwrMSk8PTEpIHsK LS0JCQlpZiAoIWwpIHdzID0gMDsKLS0JCQllbHNlIGNudCA9IGw7Ci0rCQlpZiAoISp3cykgewot KwkJCXdzID0gMDsKLSAJCQlicmVhazsKLSAJCX0KLS0JCXdzKys7IHduLS07Ci0tCQkvKiBzYWZl IC0gdGhpcyBsb29wIHJ1bnMgZmV3ZXIgdGhhbiBzaXplb2YoYnVmKSB0aW1lcyAqLwotLQkJcys9 bDsgbi09bDsKLSsJCXdzKys7Ci0rCQl3bi0tOwotIAkJY250ICs9IGw7Ci0gCX0KLSAJaWYgKGRz dCkgKndjcyA9IHdzOwotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hYXJjaDY0 LWZyZWdzLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWFyY2g2NC1mcmVncy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI0ZWVkMTFhOGU1My4uMDAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hYXJjaDY0LWZyZWdzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzcgKzAsMCBAQAotVXNlIHR5cGVzIGNvbXBhdGlibGUgd2l0aCBnbGliYy9r ZXJuZWwgaGVhZGVycy4KLQotZGlmZiAtLWdpdCBhL2FyY2gvYWFyY2g2NC9iaXRzL3NpZ25hbC5o IGIvYXJjaC9hYXJjaDY0L2JpdHMvc2lnbmFsLmgKLWluZGV4IGI3MTI2MWY1Li41MDk4YzczNCAx MDA2NDQKLS0tLSBhL2FyY2gvYWFyY2g2NC9iaXRzL3NpZ25hbC5oCi0rKysgYi9hcmNoL2FhcmNo NjQvYml0cy9zaWduYWwuaAotQEAgLTExLDcgKzExLDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25n IGdyZWdfdDsKLSB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZ3JlZ3NldF90WzM0XTsKLSAKLSB0eXBl ZGVmIHN0cnVjdCB7Ci0tCWxvbmcgZG91YmxlIHZyZWdzWzMyXTsKLSsJX191aW50MTI4X3QgdnJl Z3NbMzJdOwotIAl1bnNpZ25lZCBpbnQgZnBzcjsKLSAJdW5zaWduZWQgaW50IGZwY3I7Ci0gfSBm cHJlZ3NldF90OwotQEAgLTM0LDcgKzM0LDcgQEAgc3RydWN0IGZwc2ltZF9jb250ZXh0IHsKLSAJ c3RydWN0IF9hYXJjaDY0X2N0eCBoZWFkOwotIAl1bnNpZ25lZCBpbnQgZnBzcjsKLSAJdW5zaWdu ZWQgaW50IGZwY3I7Ci0tCWxvbmcgZG91YmxlIHZyZWdzWzMyXTsKLSsJX191aW50MTI4X3QgdnJl Z3NbMzJdOwotIH07Ci0gc3RydWN0IGVzcl9jb250ZXh0IHsKLSAJc3RydWN0IF9hYXJjaDY0X2N0 eCBoZWFkOwotZGlmZiAtLWdpdCBhL2FyY2gvYWFyY2g2NC9iaXRzL3VzZXIuaCBiL2FyY2gvYWFy Y2g2NC9iaXRzL3VzZXIuaAotaW5kZXggZDEyY2RmN2YuLjhhMTAwMmFhIDEwMDY0NAotLS0tIGEv YXJjaC9hYXJjaDY0L2JpdHMvdXNlci5oCi0rKysgYi9hcmNoL2FhcmNoNjQvYml0cy91c2VyLmgK LUBAIC02LDcgKzYsNyBAQCBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCB7Ci0gfTsKLSAKLSBzdHJ1 Y3QgdXNlcl9mcHNpbWRfc3RydWN0IHsKLS0JbG9uZyBkb3VibGUgdnJlZ3NbMzJdOwotKwlfX3Vp bnQxMjhfdCB2cmVnc1szMl07Ci0gCXVuc2lnbmVkIGludCBmcHNyOwotIAl1bnNpZ25lZCBpbnQg ZnBjcjsKLSB9OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXFzb3J0X3Iu cGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtcXNvcnRfci5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q4NTQ5NmFmYjY5Zi4uMDAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtcXNvcnRfci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIwMSArMCwwIEBACi1Gcm9tIGI3NmYzN2ZkNTYyNWQwMzgxNDFiNTIxODQ5NTZmYjRiNzgzOGU5 YTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/PUMzPTg5cmljbz0y ME5vZ3VlaXJhPz0gPGVyaWNvbnJAZGlzcm9vdC5vcmc+Ci1EYXRlOiBUdWUsIDkgTWFyIDIwMjEg MTg6MDI6MTMgLTAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gYWRkIHFzb3J0X3IgYW5kIG1ha2UgcXNv cnQgYSB3cmFwcGVyIGFyb3VuZCBpdAotCi13ZSBtYWtlIHFzb3J0IGEgd3JhcHBlciBieSBwcm92 aWRpbmcgYSB3cmFwcGVyX2NtcCBmdW5jdGlvbiB0aGF0IHVzZXMKLXRoZSBleHRyYSBhcmd1bWVu dCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIuIHNob3VsZCBiZSBvcHRpbWl6ZWQgdG8gYSB0YWlsCi1j YWxsIG9uIG1vc3QgYXJjaGl0ZWN0dXJlcywgYXMgbG9uZyBhcyBpdCdzIGJ1aWx0IHdpdGgKLS1m b21pdC1mcmFtZS1wb2ludGVyLCBzbyB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0IHNob3VsZCBiZSBt aW5pbWFsLgotCi10byBrZWVwIHRoZSBnaXQgaGlzdG9yeSBjbGVhbiwgZm9yIG5vdyBxc29ydF9y IGlzIGltcGxlbWVudGVkIGluIHFzb3J0LmMKLWFuZCBxc29ydCBpcyBpbXBsZW1lbnRlZCBpbiBx c29ydF9uci5jLiAgcXNvcnQuYyBhbHNvIHJlY2VpdmVkIGEgZmV3Ci10cml2aWFsIGNsZWFudXBz LCBpbmNsdWRpbmcgcmVwbGFjaW5nICgqY21wKSgpIGNhbGxzIHdpdGggY21wKCkuCi1xc29ydF9u ci5jIGNvbnRhaW5zIG9ubHkgd3JhcHBlcl9jbXAgYW5kIHFzb3J0IGFzIGEgcXNvcnRfciB3cmFw cGVyCi1pdHNlbGYuCi0tLS0KLSBpbmNsdWRlL3N0ZGxpYi5oICAgICAgfCAgMSArCi0gc3JjL2lu Y2x1ZGUvc3RkbGliLmggIHwgIDEgKwotIHNyYy9zdGRsaWIvcXNvcnQuYyAgICB8IDM3ICsrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KLSBzcmMvc3RkbGliL3Fzb3J0X25yLmMg fCAxNCArKysrKysrKysrKysrKwotIDQgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwg MTcgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9zdGRsaWIvcXNvcnRfbnIu YwotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKLWlu ZGV4IGI1NGEwNTFmZS4uN2FmODZlM2JjIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdGRsaWIuaAot KysrIGIvaW5jbHVkZS9zdGRsaWIuaAotQEAgLTE0Niw2ICsxNDYsNyBAQCBpbnQgY2xlYXJlbnYo dm9pZCk7Ci0gI2RlZmluZSBXQ09SRURVTVAocykgKChzKSAmIDB4ODApCi0gI2RlZmluZSBXSUZD T05USU5VRUQocykgKChzKSA9PSAweGZmZmYpCi0gdm9pZCAqcmVhbGxvY2FycmF5ICh2b2lkICos IHNpemVfdCwgc2l6ZV90KTsKLSt2b2lkIHFzb3J0X3IgKHZvaWQgKiwgc2l6ZV90LCBzaXplX3Qs IGludCAoKikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICosIHZvaWQgKiksIHZvaWQgKik7Ci0g I2VuZGlmCi0gCi0gI2lmZGVmIF9HTlVfU09VUkNFCi1kaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv c3RkbGliLmggYi9zcmMvaW5jbHVkZS9zdGRsaWIuaAotaW5kZXggZTlkYTIwMTU4Li44MTJiMDRk ZTIgMTAwNjQ0Ci0tLS0gYS9zcmMvaW5jbHVkZS9zdGRsaWIuaAotKysrIGIvc3JjL2luY2x1ZGUv c3RkbGliLmgKLUBAIC04LDYgKzgsNyBAQCBoaWRkZW4gdm9pZCBfX2Vudl9ybV9hZGQoY2hhciAq LCBjaGFyICopOwotIGhpZGRlbiBpbnQgX19ta29zdGVtcHMoY2hhciAqLCBpbnQsIGludCk7Ci0g aGlkZGVuIGludCBfX3B0c25hbWVfcihpbnQsIGNoYXIgKiwgc2l6ZV90KTsKLSBoaWRkZW4gY2hh ciAqX19yYW5kbmFtZShjaGFyICopOwotK2hpZGRlbiB2b2lkIF9fcXNvcnRfciAodm9pZCAqLCBz aXplX3QsIHNpemVfdCwgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgdm9pZCAq KSwgdm9pZCAqKTsKLSAKLSBoaWRkZW4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3QpOwotIGhp ZGRlbiB2b2lkICpfX2xpYmNfbWFsbG9jX2ltcGwoc2l6ZV90KTsKLWRpZmYgLS1naXQgYS9zcmMv c3RkbGliL3Fzb3J0LmMgYi9zcmMvc3RkbGliL3Fzb3J0LmMKLWluZGV4IGRhNThmZDMxNy4uMzE0 ZGRjMjlkIDEwMDY0NAotLS0tIGEvc3JjL3N0ZGxpYi9xc29ydC5jCi0rKysgYi9zcmMvc3RkbGli L3Fzb3J0LmMKLUBAIC0yNCw2ICsyNCw3IEBACi0gLyogU21vb3Roc29ydCwgYW4gYWRhcHRpdmUg dmFyaWFudCBvZiBIZWFwc29ydC4gIE1lbW9yeSB1c2FnZTogTygxKS4KLSAgICBSdW4gdGltZTog V29yc3QgY2FzZSBPKG4gbG9nIG4pLCBjbG9zZSB0byBPKG4pIGluIHRoZSBtb3N0bHktc29ydGVk IGNhc2UuICovCi0gCi0rI2RlZmluZSBfQlNEX1NPVVJDRQotICNpbmNsdWRlIDxzdGRpbnQuaD4K LSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotQEAgLTMxLDcgKzMy LDcgQEAKLSAjaW5jbHVkZSAiYXRvbWljLmgiCi0gI2RlZmluZSBudHooeCkgYV9jdHpfbCgoeCkp Ci0gCi0tdHlwZWRlZiBpbnQgKCpjbXBmdW4pKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsK LSt0eXBlZGVmIGludCAoKmNtcGZ1bikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICosIHZvaWQg Kik7Ci0gCi0gc3RhdGljIGlubGluZSBpbnQgcG50eihzaXplX3QgcFsyXSkgewotIAlpbnQgciA9 IG50eihwWzBdIC0gMSk7Ci1AQCAtODgsNyArODksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2hy KHNpemVfdCBwWzJdLCBpbnQgbikKLSAJcFsxXSA+Pj0gbjsKLSB9Ci0gCi0tc3RhdGljIHZvaWQg c2lmdCh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIGludCBw c2hpZnQsIHNpemVfdCBscFtdKQotK3N0YXRpYyB2b2lkIHNpZnQodW5zaWduZWQgY2hhciAqaGVh ZCwgc2l6ZV90IHdpZHRoLCBjbXBmdW4gY21wLCB2b2lkICphcmcsIGludCBwc2hpZnQsIHNpemVf dCBscFtdKQotIHsKLSAJdW5zaWduZWQgY2hhciAqcnQsICpsZjsKLSAJdW5zaWduZWQgY2hhciAq YXJbMTQgKiBzaXplb2Yoc2l6ZV90KSArIDFdOwotQEAgLTk5LDEwICsxMDAsMTAgQEAgc3RhdGlj IHZvaWQgc2lmdCh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAs IGludCBwc2hpZnQsIHNpemUKLSAJCXJ0ID0gaGVhZCAtIHdpZHRoOwotIAkJbGYgPSBoZWFkIC0g d2lkdGggLSBscFtwc2hpZnQgLSAyXTsKLSAKLS0JCWlmKCgqY21wKShhclswXSwgbGYpID49IDAg JiYgKCpjbXApKGFyWzBdLCBydCkgPj0gMCkgewotKwkJaWYoY21wKGFyWzBdLCBsZiwgYXJnKSA+ PSAwICYmIGNtcChhclswXSwgcnQsIGFyZykgPj0gMCkgewotIAkJCWJyZWFrOwotIAkJfQotLQkJ aWYoKCpjbXApKGxmLCBydCkgPj0gMCkgewotKwkJaWYoY21wKGxmLCBydCwgYXJnKSA+PSAwKSB7 Ci0gCQkJYXJbaSsrXSA9IGxmOwotIAkJCWhlYWQgPSBsZjsKLSAJCQlwc2hpZnQgLT0gMTsKLUBA IC0xMTUsNyArMTE2LDcgQEAgc3RhdGljIHZvaWQgc2lmdCh1bnNpZ25lZCBjaGFyICpoZWFkLCBz aXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIGludCBwc2hpZnQsIHNpemUKLSAJY3ljbGUod2lkdGgs IGFyLCBpKTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQgdHJpbmtsZSh1bnNpZ25lZCBjaGFyICpoZWFk LCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHNpemVfdCBwcFsyXSwgaW50IHBzaGlmdCwgaW50 IHRydXN0eSwgc2l6ZV90IGxwW10pCi0rc3RhdGljIHZvaWQgdHJpbmtsZSh1bnNpZ25lZCBjaGFy ICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHZvaWQgKmFyZywgc2l6ZV90IHBwWzJd LCBpbnQgcHNoaWZ0LCBpbnQgdHJ1c3R5LCBzaXplX3QgbHBbXSkKLSB7Ci0gCXVuc2lnbmVkIGNo YXIgKnN0ZXBzb24sCi0gCSAgICAgICAgICAgICAgKnJ0LCAqbGY7Ci1AQCAtMTMwLDEzICsxMzEs MTMgQEAgc3RhdGljIHZvaWQgdHJpbmtsZSh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lk dGgsIGNtcGZ1biBjbXAsIHNpemVfdCBwcFsyXSwKLSAJYXJbMF0gPSBoZWFkOwotIAl3aGlsZShw WzBdICE9IDEgfHwgcFsxXSAhPSAwKSB7Ci0gCQlzdGVwc29uID0gaGVhZCAtIGxwW3BzaGlmdF07 Ci0tCQlpZigoKmNtcCkoc3RlcHNvbiwgYXJbMF0pIDw9IDApIHsKLSsJCWlmKGNtcChzdGVwc29u LCBhclswXSwgYXJnKSA8PSAwKSB7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlpZighdHJ1c3R5ICYm IHBzaGlmdCA+IDEpIHsKLSAJCQlydCA9IGhlYWQgLSB3aWR0aDsKLSAJCQlsZiA9IGhlYWQgLSB3 aWR0aCAtIGxwW3BzaGlmdCAtIDJdOwotLQkJCWlmKCgqY21wKShydCwgc3RlcHNvbikgPj0gMCB8 fCAoKmNtcCkobGYsIHN0ZXBzb24pID49IDApIHsKLSsJCQlpZihjbXAocnQsIHN0ZXBzb24sIGFy ZykgPj0gMCB8fCBjbXAobGYsIHN0ZXBzb24sIGFyZykgPj0gMCkgewotIAkJCQlicmVhazsKLSAJ CQl9Ci0gCQl9Ci1AQCAtMTUwLDExICsxNTEsMTEgQEAgc3RhdGljIHZvaWQgdHJpbmtsZSh1bnNp Z25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHNpemVfdCBwcFsyXSwK LSAJfQotIAlpZighdHJ1c3R5KSB7Ci0gCQljeWNsZSh3aWR0aCwgYXIsIGkpOwotLQkJc2lmdCho ZWFkLCB3aWR0aCwgY21wLCBwc2hpZnQsIGxwKTsKLSsJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwg YXJnLCBwc2hpZnQsIGxwKTsKLSAJfQotIH0KLSAKLS12b2lkIHFzb3J0KHZvaWQgKmJhc2UsIHNp emVfdCBuZWwsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCkKLSt2b2lkIF9fcXNvcnRfcih2b2lk ICpiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHZvaWQgKmFyZykK LSB7Ci0gCXNpemVfdCBscFsxMipzaXplb2Yoc2l6ZV90KV07Ci0gCXNpemVfdCBpLCBzaXplID0g d2lkdGggKiBuZWw7Ci1AQCAtMTczLDE2ICsxNzQsMTYgQEAgdm9pZCBxc29ydCh2b2lkICpiYXNl LCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXApCi0gCi0gCXdoaWxlKGhlYWQg PCBoaWdoKSB7Ci0gCQlpZigocFswXSAmIDMpID09IDMpIHsKLS0JCQlzaWZ0KGhlYWQsIHdpZHRo LCBjbXAsIHBzaGlmdCwgbHApOwotKwkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgYXJnLCBwc2hp ZnQsIGxwKTsKLSAJCQlzaHIocCwgMik7Ci0gCQkJcHNoaWZ0ICs9IDI7Ci0gCQl9IGVsc2Ugewot IAkJCWlmKGxwW3BzaGlmdCAtIDFdID49IGhpZ2ggLSBoZWFkKSB7Ci0tCQkJCXRyaW5rbGUoaGVh ZCwgd2lkdGgsIGNtcCwgcCwgcHNoaWZ0LCAwLCBscCk7Ci0rCQkJCXRyaW5rbGUoaGVhZCwgd2lk dGgsIGNtcCwgYXJnLCBwLCBwc2hpZnQsIDAsIGxwKTsKLSAJCQl9IGVsc2UgewotLQkJCQlzaWZ0 KGhlYWQsIHdpZHRoLCBjbXAsIHBzaGlmdCwgbHApOwotKwkJCQlzaWZ0KGhlYWQsIHdpZHRoLCBj bXAsIGFyZywgcHNoaWZ0LCBscCk7Ci0gCQkJfQotLQkJCQotKwotIAkJCWlmKHBzaGlmdCA9PSAx KSB7Ci0gCQkJCXNobChwLCAxKTsKLSAJCQkJcHNoaWZ0ID0gMDsKLUBAIC0xOTEsMTIgKzE5Miwx MiBAQCB2b2lkIHFzb3J0KHZvaWQgKmJhc2UsIHNpemVfdCBuZWwsIHNpemVfdCB3aWR0aCwgY21w ZnVuIGNtcCkKLSAJCQkJcHNoaWZ0ID0gMTsKLSAJCQl9Ci0gCQl9Ci0tCQkKLSsKLSAJCXBbMF0g fD0gMTsKLSAJCWhlYWQgKz0gd2lkdGg7Ci0gCX0KLSAKLS0JdHJpbmtsZShoZWFkLCB3aWR0aCwg Y21wLCBwLCBwc2hpZnQsIDAsIGxwKTsKLSsJdHJpbmtsZShoZWFkLCB3aWR0aCwgY21wLCBhcmcs IHAsIHBzaGlmdCwgMCwgbHApOwotIAotIAl3aGlsZShwc2hpZnQgIT0gMSB8fCBwWzBdICE9IDEg fHwgcFsxXSAhPSAwKSB7Ci0gCQlpZihwc2hpZnQgPD0gMSkgewotQEAgLTIwOCwxMSArMjA5LDEz IEBAIHZvaWQgcXNvcnQodm9pZCAqYmFzZSwgc2l6ZV90IG5lbCwgc2l6ZV90IHdpZHRoLCBjbXBm dW4gY21wKQotIAkJCXBzaGlmdCAtPSAyOwotIAkJCXBbMF0gXj0gNzsKLSAJCQlzaHIocCwgMSk7 Ci0tCQkJdHJpbmtsZShoZWFkIC0gbHBbcHNoaWZ0XSAtIHdpZHRoLCB3aWR0aCwgY21wLCBwLCBw c2hpZnQgKyAxLCAxLCBscCk7Ci0rCQkJdHJpbmtsZShoZWFkIC0gbHBbcHNoaWZ0XSAtIHdpZHRo LCB3aWR0aCwgY21wLCBhcmcsIHAsIHBzaGlmdCArIDEsIDEsIGxwKTsKLSAJCQlzaGwocCwgMSk7 Ci0gCQkJcFswXSB8PSAxOwotLQkJCXRyaW5rbGUoaGVhZCAtIHdpZHRoLCB3aWR0aCwgY21wLCBw LCBwc2hpZnQsIDEsIGxwKTsKLSsJCQl0cmlua2xlKGhlYWQgLSB3aWR0aCwgd2lkdGgsIGNtcCwg YXJnLCBwLCBwc2hpZnQsIDEsIGxwKTsKLSAJCX0KLSAJCWhlYWQgLT0gd2lkdGg7Ci0gCX0KLSB9 Ci0rCi0rd2Vha19hbGlhcyhfX3Fzb3J0X3IsIHFzb3J0X3IpOwotZGlmZiAtLWdpdCBhL3NyYy9z dGRsaWIvcXNvcnRfbnIuYyBiL3NyYy9zdGRsaWIvcXNvcnRfbnIuYwotbmV3IGZpbGUgbW9kZSAx MDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uZWZlN2NjZWNkCi0tLS0gL2Rldi9udWxsCi0rKysgYi9z cmMvc3RkbGliL3Fzb3J0X25yLmMKLUBAIC0wLDAgKzEsMTQgQEAKLSsjZGVmaW5lIF9CU0RfU09V UkNFCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotK3R5cGVkZWYgaW50ICgqY21wZnVuKShjb25z dCB2b2lkICosIGNvbnN0IHZvaWQgKik7Ci0rCi0rc3RhdGljIGludCB3cmFwcGVyX2NtcChjb25z dCB2b2lkICp2MSwgY29uc3Qgdm9pZCAqdjIsIHZvaWQgKmNtcCkKLSt7Ci0rCXJldHVybiAoKGNt cGZ1biljbXApKHYxLCB2Mik7Ci0rfQotKwotK3ZvaWQgcXNvcnQodm9pZCAqYmFzZSwgc2l6ZV90 IG5lbCwgc2l6ZV90IHdpZHRoLCBjbXBmdW4gY21wKQotK3sKLSsJX19xc29ydF9yKGJhc2UsIG5l bCwgd2lkdGgsIHdyYXBwZXJfY21wLCBjbXApOwotK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoIGIv c3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1l cnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMGRmZjViYTBkNDUuLjAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXN1cHBvcnQtZm9yLVNJ R0VWX1RIUkVBRF9JRC10aW1lcnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBA Ci1Gcm9tIDdjNzE3OTJlODc2OTE0NTFmMmE2Yjc2MzQ4ZTgzYWQxODg5ZjFkY2IgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW1lcyBZIEtuaWdodCA8anlrbmlnaHRAZ29vZ2xlLmNv bT4KLURhdGU6IFN1biwgMzAgSnVuIDIwMTkgMjE6NTU6MjAgLTA0MDAKLVN1YmplY3Q6IFtQQVRD SF0gYWRkIHN1cHBvcnQgZm9yIFNJR0VWX1RIUkVBRF9JRCB0aW1lcnMKLQotVGhpcyBpcyBsaWtl IFNJR0VWX1NJR05BTCwgYnV0IHRhcmdldGVkIHRvIGEgcGFydGljdWxhciB0aHJlYWQncwotdGlk LCByYXRoZXIgdGhhbiB0aGUgcHJvY2Vzcy4KLS0tLQotIGluY2x1ZGUvc2lnbmFsLmggICAgICAg IHwgMTYgKysrKysrKysrKysrKy0tLQotIHNyYy90aW1lL3RpbWVyX2NyZWF0ZS5jIHwgIDggKysr KysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9pbmNsdWRlL3NpZ25hbC5oIGIvaW5jbHVkZS9zaWduYWwuaAotaW5k ZXggZmJkZjY2N2IyLi45ZWQ5MjllNGYgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3NpZ25hbC5oCi0r KysgYi9pbmNsdWRlL3NpZ25hbC5oCi1AQCAtMTgwLDE0ICsxODAsMjQgQEAgc3RydWN0IHNpZ2V2 ZW50IHsKLSAJdW5pb24gc2lndmFsIHNpZ2V2X3ZhbHVlOwotIAlpbnQgc2lnZXZfc2lnbm87Ci0g CWludCBzaWdldl9ub3RpZnk7Ci0tCXZvaWQgKCpzaWdldl9ub3RpZnlfZnVuY3Rpb24pKHVuaW9u IHNpZ3ZhbCk7Ci0tCXB0aHJlYWRfYXR0cl90ICpzaWdldl9ub3RpZnlfYXR0cmlidXRlczsKLS0J Y2hhciBfX3BhZFs1Ni0zKnNpemVvZihsb25nKV07Ci0rCXVuaW9uIHsKLSsJCWNoYXIgX19wYWRb NjQgLSAyKnNpemVvZihpbnQpIC0gc2l6ZW9mKHVuaW9uIHNpZ3ZhbCldOwotKwkJcGlkX3Qgc2ln ZXZfbm90aWZ5X3RocmVhZF9pZDsKLSsJCXN0cnVjdCB7Ci0rCQkJdm9pZCAoKnNpZ2V2X25vdGlm eV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsKLSsJCQlwdGhyZWFkX2F0dHJfdCAqc2lnZXZfbm90 aWZ5X2F0dHJpYnV0ZXM7Ci0rCQl9IF9fc2V2X3RocmVhZDsKLSsJfSBfX3Nldl9maWVsZHM7Ci0g fTsKLSAKLSsjZGVmaW5lIHNpZ2V2X25vdGlmeV90aHJlYWRfaWQgX19zZXZfZmllbGRzLnNpZ2V2 X25vdGlmeV90aHJlYWRfaWQKLSsjZGVmaW5lIHNpZ2V2X25vdGlmeV9mdW5jdGlvbiBfX3Nldl9m aWVsZHMuX19zZXZfdGhyZWFkLnNpZ2V2X25vdGlmeV9mdW5jdGlvbgotKyNkZWZpbmUgc2lnZXZf bm90aWZ5X2F0dHJpYnV0ZXMgX19zZXZfZmllbGRzLl9fc2V2X3RocmVhZC5zaWdldl9ub3RpZnlf YXR0cmlidXRlcwotKwotICNkZWZpbmUgU0lHRVZfU0lHTkFMIDAKLSAjZGVmaW5lIFNJR0VWX05P TkUgMQotICNkZWZpbmUgU0lHRVZfVEhSRUFEIDIKLSsjZGVmaW5lIFNJR0VWX1RIUkVBRF9JRCA0 Ci0gCi0gaW50IF9fbGliY19jdXJyZW50X3NpZ3J0bWluKHZvaWQpOwotIGludCBfX2xpYmNfY3Vy cmVudF9zaWdydG1heCh2b2lkKTsKLWRpZmYgLS1naXQgYS9zcmMvdGltZS90aW1lcl9jcmVhdGUu YyBiL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jCi1pbmRleCA1ZGRmZGEyNzguLjRiZWYyMzkwNSAx MDA2NDQKLS0tLSBhL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jCi0rKysgYi9zcmMvdGltZS90aW1l cl9jcmVhdGUuYwotQEAgLTcxLDExICs3MSwxNSBAQCBpbnQgdGltZXJfY3JlYXRlKGNsb2NraWRf dCBjbGssIHN0cnVjdCBzaWdldmVudCAqcmVzdHJpY3QgZXZwLCB0aW1lcl90ICpyZXN0cmljdAot IAlzd2l0Y2ggKGV2cCA/IGV2cC0+c2lnZXZfbm90aWZ5IDogU0lHRVZfU0lHTkFMKSB7Ci0gCWNh c2UgU0lHRVZfTk9ORToKLSAJY2FzZSBTSUdFVl9TSUdOQUw6Ci0rCWNhc2UgU0lHRVZfVEhSRUFE X0lEOgotIAkJaWYgKGV2cCkgewotIAkJCWtzZXYuc2lnZXZfdmFsdWUgPSBldnAtPnNpZ2V2X3Zh bHVlOwotIAkJCWtzZXYuc2lnZXZfc2lnbm8gPSBldnAtPnNpZ2V2X3NpZ25vOwotIAkJCWtzZXYu c2lnZXZfbm90aWZ5ID0gZXZwLT5zaWdldl9ub3RpZnk7Ci0tCQkJa3Nldi5zaWdldl90aWQgPSAw OwotKwkJCWlmIChldnAtPnNpZ2V2X25vdGlmeSA9PSBTSUdFVl9USFJFQURfSUQpCi0rCQkJCWtz ZXYuc2lnZXZfdGlkID0gZXZwLT5zaWdldl9ub3RpZnlfdGhyZWFkX2lkOwotKwkJCWVsc2UKLSsJ CQkJa3Nldi5zaWdldl90aWQgPSAwOwotIAkJCWtzZXZwID0gJmtzZXY7Ci0gCQl9Ci0gCQlpZiAo c3lzY2FsbChTWVNfdGltZXJfY3JlYXRlLCBjbGssIGtzZXZwLCAmdGltZXJpZCkgPCAwKQotQEAg LTEwNyw3ICsxMTEsNyBAQCBpbnQgdGltZXJfY3JlYXRlKGNsb2NraWRfdCBjbGssIHN0cnVjdCBz aWdldmVudCAqcmVzdHJpY3QgZXZwLCB0aW1lcl90ICpyZXN0cmljdAotIAotIAkJa3Nldi5zaWdl dl92YWx1ZS5zaXZhbF9wdHIgPSAwOwotIAkJa3Nldi5zaWdldl9zaWdubyA9IFNJR1RJTUVSOwot LQkJa3Nldi5zaWdldl9ub3RpZnkgPSA0OyAvKiBTSUdFVl9USFJFQURfSUQgKi8KLSsJCWtzZXYu c2lnZXZfbm90aWZ5ID0gU0lHRVZfVEhSRUFEX0lEOwotIAkJa3Nldi5zaWdldl90aWQgPSB0ZC0+ dGlkOwotIAkJaWYgKHN5c2NhbGwoU1lTX3RpbWVyX2NyZWF0ZSwgY2xrLCAma3NldiwgJnRpbWVy aWQpIDwgMCkKLSAJCQl0aW1lcmlkID0gLTE7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0 Y2hlcy9hdm9pZC1zZXQtaWQtc2V0cmxpbWl0LW1pc2JlaGF2aW9yLWFuZC1oYW5nLWluLXZmb3Jr LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvYXZvaWQtc2V0LWlkLXNldHJsaW1pdC1taXNi ZWhhdmlvci1hbmQtaGFuZy1pbi12Zm9yay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMjFmMjM2YjNhNmNkMS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0 Y2hlcy9hdm9pZC1zZXQtaWQtc2V0cmxpbWl0LW1pc2JlaGF2aW9yLWFuZC1oYW5nLWluLXZmb3Jr LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotRnJvbSBhNWFmZjE5NzJjOWUz OTgxNTY2NDE0YjA5YTI4ZTMzMWNjZDJiZTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAxNTowOTo0NiAtMDQwMAotU3ViamVjdDogW1BBVENIIDIzNy81MTNdIGF2b2lkIHNldCppZC9z ZXRybGltaXQgbWlzYmVoYXZpb3IgYW5kIGhhbmcgaW4KLSB2Zm9ya2VkL2Nsb25lZCBjaGlsZAot Ci10YWtpbmcgdGhlIGRlcHJlY2F0ZWQvZHJvcHBlZCB2Zm9yayBzcGVjIHN0cmljdGx5LCBkb2lu ZyBwcmV0dHkgbXVjaAotYW55dGhpbmcgYnV0IGV4ZWN2ZSBpbiB0aGUgY2hpbGQgaXMgd3Jvbmcg YW5kIHVuZGVmaW5lZC4gaG93ZXZlciwKLXRoZXNlIGFyZSBjb21tb25seSBuZWVkZWQgb3BlcmF0 aW9ucyB0byBzZXR1cCB0aGUgY2hpbGQgc3RhdGUgYmVmb3JlCi1leGVjLCBhbmQgaGlzdG9yaWNh bCBpbXBsZW1lbnRhdGlvbnMgdG9sZXJhdGVkIHRoZW0uCi0KLWZvciBzaW5nbGUtdGhyZWFkZWQg cGFyZW50cywgdGhlc2Ugb3BlcmF0aW9ucyBhbHJlYWR5IHdvcmtlZCBhcwotZXhwZWN0ZWQgaW4g dGhlIHZmb3JrZWQgY2hpbGQuIGhvd2V2ZXIsIGR1ZSB0byB0aGUgbmVlZCBmb3IgX19zeW5jY2Fs bAotdG8gc3luY2hyb25pemUgaWQvcmVzb3VyY2UgbGltaXQgY2hhbmdlcyBhbW9uZyBhbGwgdGhy ZWFkcywgY2FsbGluZwotdGhlc2UgZnVuY3Rpb25zIGluIHRoZSB2Zm9ya2VkIGNoaWxkIG9mIGEg bXVsdGl0aHJlYWRlZCBwYXJlbnQgY2F1c2VkCi1hIG1pc2RpcmVjdGVkIGJyb2FkY2FzdCBzaWdu YWxpbmcgb2YgYWxsIHRocmVhZHMgaW4gdGhlIHBhcmVudC4gdGhlc2UKLXNpZ25hbHMgY291bGQg a2lsbCB0aGUgcGFyZW50IGVudGlyZWx5IGlmIHRoZSBzeW5jY2FsbCBzaWduYWwgaGFuZGxlcgot aGFkIG5ldmVyIGJlZW4gaW5zdGFsbGVkIGluIHRoZSBwYXJlbnQsIG9yIGNvdWxkIGJlIGlnbm9y ZWQgaWYgaXQgaGFkLAotb3IgY291bGQgc2lnbmFsL2tpbGwgb25lIG9yIG1vcmUgdXR0ZXJseSB3 cm9uZyBwcm9jZXNzZXMgaWYgdGhlIHBhcmVudAotYWxyZWFkeSB0ZXJtaW5hdGVkIChkdWUgdG8g dmZvcmsgc2VtYW50aWNzLCBvbmx5IHBvc3NpYmxlIHZpYSBmYXRhbAotc2lnbmFsKSBhbmQgdGhl IHBhcmVudCB0aWRzIHdlcmUgcmVjeWNsZWQuIGluIGFueSBjYXNlLCB0aGUgZXhwZWN0ZWQKLW51 bWJlciBvZiBzZW1hcGhvcmUgcG9zdHMgd291bGQgbmV2ZXIgaGFwcGVuLCBzbyB0aGUgY2hpbGQg d291bGQKLXBlcm1hbmVudGx5IGhhbmcgKHdpdGggYWxsIHNpZ25hbHMgYmxvY2tlZCkgd2FpdGlu ZyBmb3IgdGhlbS4KLQotdG8gbWl0aWdhdGUgdGhpcywgYW5kIGFsc28gbWFrZSB0aGUgbm9ybWFs IHVzYWdlIGNhc2Ugd29yayBhcwotaW50ZW5kZWQsIHRyZWF0IHRoZSBjb25kaXRpb24gd2hlcmUg dGhlIGNhbGxlcidzIGFjdHVhbCB0aWQgZG9lcyBub3QKLW1hdGNoIHRoZSB0aWQgaW4gaXRzIHRo cmVhZCBzdHJ1Y3R1cmUgYXMgc2luZ2xlLXRocmVhZGVkLCBhbmQgYnlwYXNzCi10aGUgZW50aXJl IHN5bmNjYWxsIGJyb2FkY2FzdCBvcGVyYXRpb24uCi0tLS0KLSBzcmMvdGhyZWFkL3N5bmNjYWxs LmMgfCAzICsrLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKLQotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvc3luY2NhbGwuYyBiL3NyYy90aHJlYWQvc3lu Y2NhbGwuYwotaW5kZXggNjQ4YTZhZDQuLmQ1OGM4NTFmIDEwMDY0NAotLS0tIGEvc3JjL3RocmVh ZC9zeW5jY2FsbC5jCi0rKysgYi9zcmMvdGhyZWFkL3N5bmNjYWxsLmMKLUBAIC02Myw3ICs2Myw4 IEBAIHZvaWQgX19zeW5jY2FsbCh2b2lkICgqZnVuYykodm9pZCAqKSwgdm9pZCAqY3R4KQotIAlz ZW1faW5pdCgmdGFyZ2V0X3NlbSwgMCwgMCk7Ci0gCXNlbV9pbml0KCZjYWxsZXJfc2VtLCAwLCAw KTsKLSAKLS0JaWYgKCFsaWJjLnRocmVhZHNfbWludXNfMSkgZ290byBzaW5nbGVfdGhyZWFkZWQ7 Ci0rCWlmICghbGliYy50aHJlYWRzX21pbnVzXzEgfHwgX19zeXNjYWxsKFNZU19nZXR0aWQpICE9 IHNlbGYtPnRpZCkKLSsJCWdvdG8gc2luZ2xlX3RocmVhZGVkOwotIAotIAljYWxsYmFjayA9IGZ1 bmM7Ci0gCWNvbnRleHQgPSBjdHg7Ci0tLSAKLTIuNDEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dz L211c2wvcGF0Y2hlcy9lcG9sbF9jcC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xs X2NwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmY0NzU1MWFkOGViLi4w MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xsX2NwLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSAyYzAwZjk1YzFhYzdkZDUwZjUzZDll MzYxODQ3ZWJkMjUxM2M4ZGEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBG ZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogU2F0LCAzIEFwciAyMDIxIDIxOjE2OjQx IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIG1ha2UgZXBvbGxfW3Bdd2FpdCBhIGNhbmNlbGxhdGlv biBwb2ludAotCi10aGlzIGlzIGEgTGludXgtc3BlY2lmaWMgZnVuY3Rpb24gYW5kIG5vdCBjb3Zl cmVkIGJ5IFBPU0lYJ3MKLXJlcXVpcmVtZW50cyBmb3Igd2hpY2ggaW50ZXJmYWNlcyBhcmUgY2Fu Y2VsbGF0aW9uIHBvaW50cywgYnV0IGdsaWJjCi1tYWtlcyBpdCBvbmUgYW5kIGV4aXN0aW5nIHNv ZnR3YXJlIHJlbGllcyBvbiBpdCBiZWluZyBvbmUuCi0KLWF0IHNvbWUgcG9pbnQgYSByZXZpZXcg Zm9yIHNpbWlsYXIgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIG1hZGUKLWNhbmNlbGxhdGlvbiBw b2ludHMgc2hvdWxkIGJlIGRvbmUuCi0KLWRpZmYgLS1naXQgc3JjL2xpbnV4L2Vwb2xsLmMgc3Jj L2xpbnV4L2Vwb2xsLmMKLWluZGV4IGRlZmY1YjEwLi45M2JhYTgxNCAxMDA2NDQKLS0tLSBhL3Ny Yy9saW51eC9lcG9sbC5jCi0rKysgYi9zcmMvbGludXgvZXBvbGwuYwotQEAgLTI0LDkgKzI0LDkg QEAgaW50IGVwb2xsX2N0bChpbnQgZmQsIGludCBvcCwgaW50IGZkMiwgc3RydWN0IGVwb2xsX2V2 ZW50ICpldikKLSAKLSBpbnQgZXBvbGxfcHdhaXQoaW50IGZkLCBzdHJ1Y3QgZXBvbGxfZXZlbnQg KmV2LCBpbnQgY250LCBpbnQgdG8sIGNvbnN0IHNpZ3NldF90ICpzaWdzKQotIHsKLS0JaW50IHIg PSBfX3N5c2NhbGwoU1lTX2Vwb2xsX3B3YWl0LCBmZCwgZXYsIGNudCwgdG8sIHNpZ3MsIF9OU0lH LzgpOwotKwlpbnQgciA9IF9fc3lzY2FsbF9jcChTWVNfZXBvbGxfcHdhaXQsIGZkLCBldiwgY250 LCB0bywgc2lncywgX05TSUcvOCk7Ci0gI2lmZGVmIFNZU19lcG9sbF93YWl0Ci0tCWlmIChyPT0t RU5PU1lTICYmICFzaWdzKSByID0gX19zeXNjYWxsKFNZU19lcG9sbF93YWl0LCBmZCwgZXYsIGNu dCwgdG8pOwotKwlpZiAocj09LUVOT1NZUyAmJiAhc2lncykgciA9IF9fc3lzY2FsbF9jcChTWVNf ZXBvbGxfd2FpdCwgZmQsIGV2LCBjbnQsIHRvKTsKLSAjZW5kaWYKLSAJcmV0dXJuIF9fc3lzY2Fs bF9yZXQocik7Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11 dGV4LWNvbmQtMS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25k LTEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YWY3MmIwYzVmOTEuLjAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQt MS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLUZyb20gMmQwYmJlNmM3ODg5 MzhkMTMzMjYwOWMwMTRlZWViYzFkZmY5NjZhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IE1vbiwgMjYgT2N0IDIw MjAgMTU6NTY6MjUgLTA0MDAKLVN1YmplY3Q6IGZpeCBwdGhyZWFkX2NvbmRfd2FpdCBwYWlyZWQg d2l0aCB3aXRoIHByaW9yaXR5LWluaGVyaXRhbmNlIG11dGV4Ci0KLXB0aHJlYWRfY29uZF93YWl0 IGFycmFuZ2VkIGZvciByZXF1ZXVlZCB3YWl0ZXJzIHRvIHdha2Ugd2hlbiB0aGUgbXV0ZXgKLWlz IHVubG9ja2VkIGJ5IHRlbXBvcmFyaWx5IGFkanVzdGluZyB0aGUgbXV0ZXgncyB3YWl0ZXIgY291 bnQuIGNvbW1pdAotNTRjYTY3Nzk4M2Q0NzUyOWJhYjg3NTIzMTVhYzFhMmI0OTg4ODg3MCBicm9r ZSB0aGlzIHdoZW4gaW50cm9kdWNpbmcKLVBJIG11dGV4ZXMgYnkgcmVwdXJwb3NpbmcgdGhlIHdh aXRlciBjb3VudCBmaWVsZCBvZiB0aGUgbXV0ZXgKLXN0cnVjdHVyZS4gc2luY2UgdGhlbiwgZm9y IFBJIG11dGV4ZXMsIHRoZSB3YWl0ZXIgY291bnQgYWRqdXN0bWVudCB3YXMKLW1pc2ludGVycHJl dGVkIGJ5IHRoZSBtdXRleCBsb2NraW5nIGNvZGUgYXMgaW5kaWNhdGluZyB0aGF0IHRoZSBtdXRl eAotaXMgbm9uIGEgbm9uLXJlY292ZXJhYmxlIHN0YXRlLgotCi1pdCB3b3VsZCBiZSBwb3NzaWJs ZSB0byBzcGVjaWFsLWNhc2UgUEkgbXV0ZXhlcyBoZXJlLCBidXQgaW5zdGVhZCBqdXN0Ci1kcm9w IGFsbCBhZGp1c3RtZW50IG9mIHRoZSB3YWl0ZXJzIGNvdW50LCBhbmQgaW5zdGVhZCB1c2UgdGhl IGxvY2sKLXdvcmQgd2FpdGVycyBiaXQgZm9yIGFsbCBtdXRleCB0eXBlcy4gc2luY2UgdGhlIG11 dGV4IGlzIGVpdGhlciBoZWxkCi1ieSB0aGUgY2FsbGVyIG9yIGluIHVucmVjb3ZlcmFibGUgc3Rh dGUgYXQgdGhlIHRpbWUgdGhlIGJpdCBpcyBzZXQsIGl0Ci13aWxsIG5lY2Vzc2FyaWx5IHN0aWxs IGJlIHNldCBhdCB0aGUgdGltZSBvZiBhbnkgc3Vic2VxdWVudCB2YWxpZAotdW5sb2NrIG9wZXJh dGlvbiwgYW5kIHRoaXMgd2lsbCBwcm9kdWNlIHRoZSBkZXNpcmVkIGVmZmVjdCBvZiB3YWtpbmcK LXRoZSBuZXh0IHdhaXRlci4KLQotaWYgd2FpdGVyIGNvdW50cyBhcmUgZW50aXJlbHkgZHJvcHBl ZCBhdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUgdGhpcwotY29kZSBzaG91bGQgc3RpbGwgd29y ayB3aXRob3V0IG1vZGlmaWNhdGlvbi4KLS0tLQotIHNyYy90aHJlYWQvcHRocmVhZF9jb25kX3Rp bWVkd2FpdC5jIHwgMTEgKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQotCi0obGltaXRlZCB0byAnc3JjL3RocmVhZC9wdGhyZWFkX2Nv bmRfdGltZWR3YWl0LmMnKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRf dGltZWR3YWl0LmMgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotaW5kZXgg ZDE1MDEyNDAuLmY1ZjM3YWYxIDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRf dGltZWR3YWl0LmMKLSsrKyBiL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi1A QCAtMTQ2LDE0ICsxNDYsMTMgQEAgcmVsb2NrOgotIAotIAlpZiAob2xkc3RhdGUgPT0gV0FJVElO RykgZ290byBkb25lOwotIAotLQlpZiAoIW5vZGUubmV4dCkgYV9pbmMoJm0tPl9tX3dhaXRlcnMp OwotLQotIAkvKiBVbmxvY2sgdGhlIGJhcnJpZXIgdGhhdCdzIGhvbGRpbmcgYmFjayB0aGUgbmV4 dCB3YWl0ZXIsIGFuZAotIAkgKiBlaXRoZXIgd2FrZSBpdCBvciByZXF1ZXVlIGl0IHRvIHRoZSBt dXRleC4gKi8KLS0JaWYgKG5vZGUucHJldikKLS0JCXVubG9ja19yZXF1ZXVlKCZub2RlLnByZXYt PmJhcnJpZXIsICZtLT5fbV9sb2NrLCBtLT5fbV90eXBlICYgMTI4KTsKLS0JZWxzZQotLQkJYV9k ZWMoJm0tPl9tX3dhaXRlcnMpOwotKwlpZiAobm9kZS5wcmV2KSB7Ci0rCQlpbnQgdmFsID0gbS0+ X21fbG9jazsKLSsJCWlmICh2YWw+MCkgYV9jYXMoJm0tPl9tX2xvY2ssIHZhbCwgdmFsfDB4ODAw MDAwMDApOwotKwkJdW5sb2NrX3JlcXVldWUoJm5vZGUucHJldi0+YmFycmllciwgJm0tPl9tX2xv Y2ssIG0tPl9tX3R5cGUgJiAoOHwxMjgpKTsKLSsJfQotIAotIAkvKiBTaW5jZSBhIHNpZ25hbCB3 YXMgY29uc3VtZWQsIGNhbmNlbGxhdGlvbiBpcyBub3QgcGVybWl0dGVkLiAqLwotIAlpZiAoZSA9 PSBFQ0FOQ0VMRUQpIGUgPSAwOwotLS0gCi1jZ2l0IHYxLjIuMQotCmRpZmYgLS1naXQgYS9zcmNw a2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0yLnBhdGNoIGIvc3JjcGtncy9tdXNs L3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYjM1NmUzOGI2MWY4My4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wv cGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDgg KzAsMCBAQAotRnJvbSAyN2IyZmM5ZDZkYjk1NjM1OTcyN2E2NmMyNjJmMWU2OTk5NTY2MGFhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFs LmN4PgotRGF0ZTogRnJpLCAzMCBPY3QgMjAyMCAxMToyMTowNiAtMDQwMAotU3ViamVjdDogZml4 IG1pc3Npbmctd2FrZSByZWdyZXNzaW9uIGluIHB0aHJlYWRfY29uZF93YWl0Ci0KLXRoZSByZWFz b25pbmcgaW4gY29tbWl0IDJkMGJiZTZjNzg4OTM4ZDEzMzI2MDljMDE0ZWVlYmMxZGZmOTY2YWMg d2FzCi1ub3QgZW50aXJlbHkgY29ycmVjdC4gd2hpbGUgaXQncyB0cnVlIHRoYXQgc2V0dGluZyB0 aGUgd2FpdGVycyBmbGFnCi1lbnN1cmVzIHRoYXQgdGhlIG5leHQgdW5sb2NrIHdpbGwgcGVyZm9y bSBhIHdha2UsIGl0J3MgcG9zc2libGUgdGhhdAotdGhlIHdha2UgaXMgY29uc3VtZWQgYnkgYSBt dXRleCB3YWl0ZXIgdGhhdCBoYXMgbm8gcmVsYXRpb25zaGlwIHdpdGgKLXRoZSBjb25kdmFyIHdh aXQgcXVldWUgYmVpbmcgcHJvY2Vzc2VkLCB3aGljaCB0aGVuIHRha2VzIHRoZSBtdXRleC4KLXdo ZW4gdGhhdCB0aHJlYWQgc3Vic2VxdWVudGx5IHVubG9ja3MsIGl0IHNlZXMgbm8gd2FpdGVycywg YW5kIGxlYXZlcwotdGhlIHJlc3Qgb2YgdGhlIGNvbmR2YXIgcXVldWUgc3R1Y2suCi0KLWJyaW5n IGJhY2sgdGhlIHdhaXRlciBjb3VudCBhZGp1c3RtZW50LCBidXQgc2tpcCBpdCBmb3IgUEkgbXV0 ZXhlcywKLWZvciB3aGljaCBhIHN1Y2Nlc3NmdWwgbG9jay1hZnRlci13YWl0aW5nIGFsd2F5cyBz ZXRzIHRoZSB3YWl0ZXJzIGJpdC4KLWlmIGZ1dHVyZSBjaGFuZ2VzIGFyZSBtYWRlIHRvIGJyaW5n IHRoaXMgc2FtZSB3YWl0ZXJzLWJpdCBjb250cmFjdCB0bwotYWxsIGxvY2sgdHlwZXMsIHRoaXMg Y2FuIGJlIHJldmVydGVkLgotLS0tCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0 LmMgfCA1ICsrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQotCi0obGltaXRl ZCB0byAnc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMnKQotCi1kaWZmIC0tZ2l0 IGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMgYi9zcmMvdGhyZWFkL3B0aHJl YWRfY29uZF90aW1lZHdhaXQuYwotaW5kZXggZjVmMzdhZjEuLmEwY2Q0OTA0IDEwMDY0NAotLS0t IGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLSsrKyBiL3NyYy90aHJlYWQv cHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi1AQCAtMTQ2LDEyICsxNDYsMTcgQEAgcmVsb2NrOgot IAotIAlpZiAob2xkc3RhdGUgPT0gV0FJVElORykgZ290byBkb25lOwotIAotKwlpZiAoIW5vZGUu bmV4dCAmJiAhKG0tPl9tX3R5cGUgJiA4KSkKLSsJCWFfaW5jKCZtLT5fbV93YWl0ZXJzKTsKLSsK LSAJLyogVW5sb2NrIHRoZSBiYXJyaWVyIHRoYXQncyBob2xkaW5nIGJhY2sgdGhlIG5leHQgd2Fp dGVyLCBhbmQKLSAJICogZWl0aGVyIHdha2UgaXQgb3IgcmVxdWV1ZSBpdCB0byB0aGUgbXV0ZXgu ICovCi0gCWlmIChub2RlLnByZXYpIHsKLSAJCWludCB2YWwgPSBtLT5fbV9sb2NrOwotIAkJaWYg KHZhbD4wKSBhX2NhcygmbS0+X21fbG9jaywgdmFsLCB2YWx8MHg4MDAwMDAwMCk7Ci0gCQl1bmxv Y2tfcmVxdWV1ZSgmbm9kZS5wcmV2LT5iYXJyaWVyLCAmbS0+X21fbG9jaywgbS0+X21fdHlwZSAm ICg4fDEyOCkpOwotKwl9IGVsc2UgaWYgKCEhKG0tPl9tX3R5cGUgJiA4KSkgewotKwkJYV9kZWMo Jm0tPl9tX3dhaXRlcnMpOwkJCi0gCX0KLSAKLSAJLyogU2luY2UgYSBzaWduYWwgd2FzIGNvbnN1 bWVkLCBjYW5jZWxsYXRpb24gaXMgbm90IHBlcm1pdHRlZC4gKi8KLS0tIAotY2dpdCB2MS4yLjEK LQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5w YXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjYzk0M2YyNmY2YTYuLjAwMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gZDkxYTZjZjZlMzY5YTc5NTg3YzU2NjVm Y2U5NjM1ZTU2MzRjYTIwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVs a2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IEZyaSwgMzAgT2N0IDIwMjAgMTY6NTA6MDgg LTA0MDAKLVN1YmplY3Q6IGZpeCBlcnJvbmVvdXMgcHRocmVhZF9jb25kX3dhaXQgbXV0ZXggd2Fp dGVyIGNvdW50IGxvZ2ljIGR1ZSB0byB0eXBvCi0KLWludHJvZHVjZWQgaW4gY29tbWl0IDI3YjJm YzlkNmRiOTU2MzU5NzI3YTY2YzI2MmYxZTY5OTk1NjYwYWEuCi0tLS0KLSBzcmMvdGhyZWFkL3B0 aHJlYWRfY29uZF90aW1lZHdhaXQuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKLQotKGxpbWl0ZWQgdG8gJ3NyYy90aHJlYWQvcHRocmVhZF9j b25kX3RpbWVkd2FpdC5jJykKLQotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25k X3RpbWVkd2FpdC5jIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLWluZGV4 IGEwY2Q0OTA0Li42Yjc2MTQ1NSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25k X3RpbWVkd2FpdC5jCi0rKysgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwot QEAgLTE1NSw3ICsxNTUsNyBAQCByZWxvY2s6Ci0gCQlpbnQgdmFsID0gbS0+X21fbG9jazsKLSAJ CWlmICh2YWw+MCkgYV9jYXMoJm0tPl9tX2xvY2ssIHZhbCwgdmFsfDB4ODAwMDAwMDApOwotIAkJ dW5sb2NrX3JlcXVldWUoJm5vZGUucHJldi0+YmFycmllciwgJm0tPl9tX2xvY2ssIG0tPl9tX3R5 cGUgJiAoOHwxMjgpKTsKLS0JfSBlbHNlIGlmICghIShtLT5fbV90eXBlICYgOCkpIHsKLSsJfSBl bHNlIGlmICghKG0tPl9tX3R5cGUgJiA4KSkgewotIAkJYV9kZWMoJm0tPl9tX3dhaXRlcnMpOwkJ Ci0gCX0KLSAKLS0tIAotY2dpdCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3Bh dGNoZXMvZ2V0dGlkLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjhiZjU5MDViODgwLi4wMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2dldHRpZC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDQ5ICswLDAgQEAKLUZyb20gZDQ5Y2YwNzU0MWJiNTRhNWFjN2FlYzFmZWVjODUxNGRiMzNk YjhlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNA YWVyaWZhbC5jeD4KLURhdGU6IE1vbiwgMTcgQXVnIDIwMjAgMjA6MTI6NTMgLTA0MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gYWRkIGdldHRpZCBmdW5jdGlvbgotCi10aGlzIGlzIGEgcHJlcmVxdWlzaXRl IGZvciBhZGRpdGlvbiBvZiBvdGhlciBpbnRlcmZhY2VzIHRoYXQgdXNlCi1rZXJuZWwgdGlkcywg aW5jbHVkaW5nIGZ1dGV4IGFuZCBTSUdFVl9USFJFQURfSUQuCi0KLXRoZXJlIGlzIHNvbWUgYW1i aWd1aXR5IGFzIHRvIHdoZXRoZXIgdGhlIHNlbWFudGljIHJldHVybiB0eXBlIHNob3VsZAotYmUg aW50IG9yIHBpZF90LiBlaXRoZXIgd2F5LCBmdXRleCBBUEkgaW1wb3NlcyBhIGNvbnRyYWN0IHRo YXQgdGhlCi12YWx1ZXMgZml0IGluIGludCAoZXhjbHVkaW5nIHNvbWUgdXBwZXIgcmVzZXJ2ZWQg Yml0cykuIGdsaWJjIHVzZWQKLXBpZF90LCBzbyBpbiB0aGUgaW50ZXJlc3Qgb2Ygbm90IGhhdmlu ZyBncmF0dWl0b3VzIG1pc21hdGNoICh0aGUKLXVuZGVybHlpbmcgdHlwZXMgYXJlIHRoZSBzYW1l IGFueXdheSksIHBpZF90IGlzIHVzZWQgaGVyZSBhcyB3ZWxsLgotCi13aGlsZSBjb25jZXB0dWFs bHkgdGhpcyBpcyBhIHN5c2NhbGwsIHRoZSBjb3B5IHN0b3JlZCBpbiB0aGUgdGhyZWFkCi1zdHJ1 Y3R1cmUgaXMgYWx3YXlzIHZhbGlkIGluIGFsbCBjb250ZXh0cyB3aGVyZSBpdCdzIHZhbGlkIHRv IGNhbGwKLWxpYmMgZnVuY3Rpb25zLCBzbyBpdCdzIHVzZWQgdG8gYXZvaWQgdGhlIHN5c2NhbGwu Ci0tLS0KLSBpbmNsdWRlL3VuaXN0ZC5oICAgfCAxICsKLSBzcmMvbGludXgvZ2V0dGlkLmMgfCA4 ICsrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKLSBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL2xpbnV4L2dldHRpZC5jCi0KLWRpZmYgLS1naXQgYS9pbmNsdWRlL3VuaXN0 ZC5oIGIvaW5jbHVkZS91bmlzdGQuaAotaW5kZXggN2JjYmZmOTQzLi4wNzU4NGEyM2UgMTAwNjQ0 Ci0tLS0gYS9pbmNsdWRlL3VuaXN0ZC5oCi0rKysgYi9pbmNsdWRlL3VuaXN0ZC5oCi1AQCAtMTkw LDYgKzE5MCw3IEBAIGludCBzeW5jZnMoaW50KTsKLSBpbnQgZXVpZGFjY2Vzcyhjb25zdCBjaGFy ICosIGludCk7Ci0gaW50IGVhY2Nlc3MoY29uc3QgY2hhciAqLCBpbnQpOwotIHNzaXplX3QgY29w eV9maWxlX3JhbmdlKGludCwgb2ZmX3QgKiwgaW50LCBvZmZfdCAqLCBzaXplX3QsIHVuc2lnbmVk KTsKLStwaWRfdCBnZXR0aWQodm9pZCk7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX0xBUkdF RklMRTY0X1NPVVJDRSkgfHwgZGVmaW5lZChfR05VX1NPVVJDRSkKLWRpZmYgLS1naXQgYS9zcmMv bGludXgvZ2V0dGlkLmMgYi9zcmMvbGludXgvZ2V0dGlkLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAuLjcwNzY3MTM3ZQotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL2xp bnV4L2dldHRpZC5jCi1AQCAtMCwwICsxLDggQEAKLSsjZGVmaW5lIF9HTlVfU09VUkNFCi0rI2lu Y2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlICJwdGhyZWFkX2ltcGwuaCIKLSsKLStwaWRfdCBn ZXR0aWQodm9pZCkKLSt7Ci0rCXJldHVybiBfX3B0aHJlYWRfc2VsZigpLT50aWQ7Ci0rfQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVjdGx5 X2luc3RlYWRfb2ZfdXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoIGIvc3JjcGtncy9tdXNsL3Bh dGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVjdGx5X2luc3RlYWRfb2ZfdXNpbmdfcHJvY2Zz X3JlYWRsaW5rLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjlhMWY1MmM3 Y2Q5Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ltcGxlbWVudF9y ZWFscGF0aF9kaXJlY3RseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGluay5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIxOSArMCwwIEBACi1Gcm9tIDI5ZmY3NTk5YTQ0ODIzMmYyNTI3 ODQxYzIzNjI2NDNkMjQ2Y2VlMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNo IEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24sIDMwIE5vdiAyMDIwIDEyOjE0 OjQ3IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGltcGxlbWVudCByZWFscGF0aCBkaXJlY3RseSBp bnN0ZWFkIG9mIHVzaW5nIHByb2NmcyByZWFkbGluawotCi1pbmFiaWxpdHkgdG8gdXNlIHJlYWxw YXRoIGluIGNocm9vdC9jb250YWluZXIgd2l0aG91dCBwcm9jZnMgYWNjZXNzCi1hbmQgYXQgZWFy bHkgYm9vdCBwcmlvciB0byBtb3VudCBvZiAvcHJvYyBoYXMgYmVlbiBhbiBvbmdvaW5nIGlzc3Vl LAotYW5kIGl0IHR1cm5zIG91dCByZWFscGF0aCB3YXMgb25lIG9mIHRoZSBsYXN0IHJlbWFpbmlu ZyBpbnRlcmZhY2VzCi10aGF0IG5lZWRlZCBwcm9jZnMgZm9yIGl0cyBjb3JlIGZ1bmN0aW9uYWxp dHkuIGR1cmluZyBpbnZlc3RpZ2F0aW9uCi13aGlsZSByZWltcGxlbWVudGluZywgaXQgd2FzIGRl dGVybWluZWQgdGhhdCB0aGVyZSB3ZXJlIGFsc28gc2VyaW91cwotcHJvYmxlbXMgd2l0aCB0aGUg cHJvY2ZzLWJhc2VkIGltcGxlbWVudGF0aW9uLiBtb3N0IHNlcmlvdXNseSBpdCB3YXMKLXVuc2Fm ZSBvbiBwcmUtT19QQVRIIGtlcm5lbHMsIGFuZCB1bmxpa2Ugb3RoZXIgcGxhY2VzIHdoZXJlIE9f UEFUSCB3YXMKLXVzZWQsIHRoZSB1bnNhZmV0eSB3YXMgaGFyZCBvciBpbXBvc3NpYmxlIHRvIGZp eCBiZWNhdXNlIE9fTk9GT0xMT1cKLWNhbid0IGJlIHVzZWQgKHNpbmNlIHRoZSB3aG9sZSBwdXJw b3NlIHdhcyB0byBmb2xsb3cgc3ltbGlua3MpLgotCi10aGUgbmV3IGltcGxlbWVudGF0aW9uIGlz IGEgZGlyZWN0IG9uZSwgcGVyZm9ybWluZyByZWFkbGluayBvbiBlYWNoCi1wYXRoIGNvbXBvbmVu dCB0byByZXNvbHZlIGl0LiBhbiBleHBsaWNpdCBzdGFjaywgYXMgb3Bwb3NlZCB0bwotcmVjdXJz aW9uLCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGUgcmVtYWluaW5nIGNvbXBvbmVudHMgdG8gYmUK LXByb2Nlc3NlZC4gdGhlIHN0YWNrIHN0YXJ0cyBvdXQgaG9sZGluZyBqdXN0IHRoZSBpbnB1dCBz dHJpbmcsIGFuZAotcmVhZGluZyBhIGxpbmsgcHVzaGVzIHRoZSBsaW5rIGNvbnRlbnRzIG9udG8g dGhlIHN0YWNrLgotCi11bmxpa2UgbWFueSBvdGhlciBpbXBsZW1lbnRhdGlvbnMsIHRoaXMgb25l IGRvZXMgbm90IGNhbGwgZ2V0Y3dkCi1pbml0aWFsbHkgZm9yIHJlbGF0aXZlIHBhdGhuYW1lcy4g aW5zdGVhZCBpdCBhY2N1bXVsYXRlcyBpbml0aWFsIC4uCi1jb21wb25lbnRzIHRvIGJlIGFwcGxp ZWQgdG8gdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGlmIHRoZSByZXN1bHQgaXMKLXN0aWxsIGEgcmVs YXRpdmUgcGF0aC4gdGhpcyBhdm9pZHMgY2FsbGluZyBnZXRjd2QgKHdoaWNoIG1heSBmYWlsKSBh dAotYWxsIHdoZW4gc3ltbGluayB0cmF2ZXJzYWwgd2lsbCBldmVudHVhbGx5IHlpZWxkIGFuIGFi c29sdXRlIHBhdGguIGl0Ci1hbHNvIGRvZXNuJ3QgdXNlIGFueSBmb3JtIG9mIHN0YXQgb3BlcmF0 aW9uOyBpbnN0ZWFkIGl0IGFycmFuZ2VzIGZvcgotcmVhZGxpbmsgdG8gdGVsbCBpdCB3aGVuIGEg bm9uLWRpcmVjdG9yeSBpcyB1c2VkIGluIGEgY29udGV4dCB3aGVyZSBhCi1kaXJlY3RvcnkgaXMg bmVlZGVkLiB0aGlzIG1pbmltaXplcyB0aGUgbnVtYmVyIG9mIHN5c2NhbGxzIG5lZWRlZCwKLWF2 b2lkcyBhY2Nlc3NpbmcgaW5vZGVzIHdoZW4gdGhlIGRpcmVjdG9yeSB0YWJsZSBzdWZmaWNlcywg YW5kIHJlZHVjZXMKLXRoZSBhbW91bnQgb2YgY29kZSBwdWxsZWQgaW4gZm9yIHN0YXRpYyBsaW5r aW5nLgotLS0tCi0gc3JjL21pc2MvcmVhbHBhdGguYyB8IDE1OSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMzYgaW5zZXJ0aW9u cygrKSwgMjMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbWlzYy9yZWFscGF0aC5j IGIvc3JjL21pc2MvcmVhbHBhdGguYwotaW5kZXggZDI3MDhlNTlkLi5kYjhiNzRkYzggMTAwNjQ0 Ci0tLS0gYS9zcmMvbWlzYy9yZWFscGF0aC5jCi0rKysgYi9zcmMvbWlzYy9yZWFscGF0aC5jCi1A QCAtMSw0MyArMSwxNTYgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPGxpbWl0 cy5oPgotLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotLSNpbmNsdWRlIDxmY250bC5oPgotICNpbmNs dWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDx1bmlzdGQuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+ Ci0tI2luY2x1ZGUgInN5c2NhbGwuaCIKLSsKLStzdGF0aWMgc2l6ZV90IHNsYXNoX2xlbihjb25z dCBjaGFyICpzKQotK3sKLSsJY29uc3QgY2hhciAqczAgPSBzOwotKwl3aGlsZSAoKnMgPT0gJy8n KSBzKys7Ci0rCXJldHVybiBzLXMwOwotK30KLSAKLSBjaGFyICpyZWFscGF0aChjb25zdCBjaGFy ICpyZXN0cmljdCBmaWxlbmFtZSwgY2hhciAqcmVzdHJpY3QgcmVzb2x2ZWQpCi0gewotLQlpbnQg ZmQ7Ci0tCXNzaXplX3QgcjsKLS0Jc3RydWN0IHN0YXQgc3QxLCBzdDI7Ci0tCWNoYXIgYnVmWzE1 KzMqc2l6ZW9mKGludCldOwotLQljaGFyIHRtcFtQQVRIX01BWF07Ci0rCWNoYXIgc3RhY2tbUEFU SF9NQVgrMV07Ci0rCWNoYXIgb3V0cHV0W1BBVEhfTUFYXTsKLSsJc2l6ZV90IHAsIHEsIGwsIGww LCBjbnQ9MCwgbnVwPTA7Ci0rCWludCBjaGVja19kaXI9MDsKLSAKLSAJaWYgKCFmaWxlbmFtZSkg ewotIAkJZXJybm8gPSBFSU5WQUw7Ci0gCQlyZXR1cm4gMDsKLSAJfQotKwlsID0gc3Rybmxlbihm aWxlbmFtZSwgc2l6ZW9mIHN0YWNrKTsKLSsJaWYgKCFsKSB7Ci0rCQllcnJubyA9IEVOT0VOVDsK LSsJCXJldHVybiAwOwotKwl9Ci0rCWlmIChsID49IFBBVEhfTUFYKSBnb3RvIHRvb2xvbmc7Ci0r CXAgPSBzaXplb2Ygc3RhY2sgLSBsIC0gMTsKLSsJcSA9IDA7Ci0rCW1lbWNweShzdGFjaytwLCBm aWxlbmFtZSwgbCsxKTsKLSsKLSsJLyogTWFpbiBsb29wLiBFYWNoIGl0ZXJhdGlvbiBwb3BzIHRo ZSBuZXh0IHBhcnQgZnJvbSBzdGFjayBvZgotKwkgKiByZW1haW5pbmcgcGF0aCBjb21wb25lbnRz IGFuZCBjb25zdW1lcyBhbnkgc2xhc2hlcyB0aGF0IGZvbGxvdy4KLSsJICogSWYgbm90IGEgbGlu aywgaXQncyBtb3ZlZCB0byBvdXRwdXQ7IGlmIGEgbGluaywgY29udGVudHMgYXJlCi0rCSAqIHB1 c2hlZCB0byB0aGUgc3RhY2suICovCi0rcmVzdGFydDoKLSsJZm9yICg7IDsgcCs9c2xhc2hfbGVu KHN0YWNrK3ApKSB7Ci0rCQkvKiBJZiBzdGFjayBzdGFydHMgd2l0aCAvLCB0aGUgd2hvbGUgY29t cG9uZW50IGlzIC8gb3IgLy8KLSsJCSAqIGFuZCB0aGUgb3V0cHV0IHN0YXRlIG11c3QgYmUgcmVz ZXQuICovCi0rCQlpZiAoc3RhY2tbcF0gPT0gJy8nKSB7Ci0rCQkJY2hlY2tfZGlyPTA7Ci0rCQkJ bnVwPTA7Ci0rCQkJcT0wOwotKwkJCW91dHB1dFtxKytdID0gJy8nOwotKwkJCXArKzsKLSsJCQkv KiBJbml0aWFsIC8vIGlzIHNwZWNpYWwuICovCi0rCQkJaWYgKHN0YWNrW3BdID09ICcvJyAmJiBz dGFja1twKzFdICE9ICcvJykKLSsJCQkJb3V0cHV0W3ErK10gPSAnLyc7Ci0rCQkJY29udGludWU7 Ci0rCQl9Ci0rCi0rCQljaGFyICp6ID0gX19zdHJjaHJudWwoc3RhY2srcCwgJy8nKTsKLSsJCWww ID0gbCA9IHotKHN0YWNrK3ApOwotIAotLQlmZCA9IHN5c19vcGVuKGZpbGVuYW1lLCBPX1BBVEh8 T19OT05CTE9DS3xPX0NMT0VYRUMpOwotLQlpZiAoZmQgPCAwKSByZXR1cm4gMDsKLS0JX19wcm9j ZmRuYW1lKGJ1ZiwgZmQpOwotKwkJaWYgKCFsICYmICFjaGVja19kaXIpIGJyZWFrOwotIAotLQly ID0gcmVhZGxpbmsoYnVmLCB0bXAsIHNpemVvZiB0bXAgLSAxKTsKLS0JaWYgKHIgPCAwKSBnb3Rv IGVycjsKLS0JdG1wW3JdID0gMDsKLSsJCS8qIFNraXAgYW55IC4gY29tcG9uZW50IGJ1dCBwcmVz ZXJ2ZSBjaGVja19kaXIgc3RhdHVzLiAqLwotKwkJaWYgKGw9PTEgJiYgc3RhY2tbcF09PScuJykg ewotKwkJCXAgKz0gbDsKLSsJCQljb250aW51ZTsKLSsJCX0KLSAKLS0JZnN0YXQoZmQsICZzdDEp OwotLQlyID0gc3RhdCh0bXAsICZzdDIpOwotLQlpZiAocjwwIHx8IHN0MS5zdF9kZXYgIT0gc3Qy LnN0X2RldiB8fCBzdDEuc3RfaW5vICE9IHN0Mi5zdF9pbm8pIHsKLS0JCWlmICghcikgZXJybm8g PSBFTE9PUDsKLS0JCWdvdG8gZXJyOwotKwkJLyogQ29weSBuZXh0IGNvbXBvbmVudCBvbnRvIG91 dHB1dCBhdCBsZWFzdCB0ZW1wb3JhcmlseSwgdG8KLSsJCSAqIGNhbGwgcmVhZGxpbmssIGJ1dCB3 YWl0IHRvIGFkdmFuY2Ugb3V0cHV0IHBvc2l0aW9uIHVudGlsCi0rCQkgKiBkZXRlcm1pbmluZyBp dCdzIG5vdCBhIGxpbmsuICovCi0rCQlpZiAocSAmJiBvdXRwdXRbcS0xXSAhPSAnLycpIHsKLSsJ CQlpZiAoIXApIGdvdG8gdG9vbG9uZzsKLSsJCQlzdGFja1stLXBdID0gJy8nOwotKwkJCWwrKzsK LSsJCX0KLSsJCWlmIChxK2wgPj0gUEFUSF9NQVgpIGdvdG8gdG9vbG9uZzsKLSsJCW1lbWNweShv dXRwdXQrcSwgc3RhY2srcCwgbCk7Ci0rCQlvdXRwdXRbcStsXSA9IDA7Ci0rCQlwICs9IGw7Ci0r Ci0rCQlpbnQgdXAgPSAwOwotKwkJaWYgKGwwPT0yICYmIHN0YWNrW3AtMl09PScuJyAmJiBzdGFj a1twLTFdPT0nLicpIHsKLSsJCQl1cCA9IDE7Ci0rCQkJLyogQW55IG5vbi0uLiBwYXRoIGNvbXBv bmVudHMgd2UgY291bGQgY2FuY2VsIHN0YXJ0Ci0rCQkJICogYWZ0ZXIgbnVwIHJlcGV0aXRpb25z IG9mIHRoZSAzLWJ5dGUgc3RyaW5nICIuLi8iOwotKwkJCSAqIGlmIHRoZXJlIGFyZSBub25lLCBh Y2N1bXVsYXRlIC4uIGNvbXBvbmVudHMgdG8KLSsJCQkgKiBsYXRlciBhcHBseSB0byBjd2QsIGlm IG5lZWRlZC4gKi8KLSsJCQlpZiAocSA8PSAzKm51cCkgewotKwkJCQludXArKzsKLSsJCQkJcSAr PSBsOwotKwkJCQljb250aW51ZTsKLSsJCQl9Ci0rCQkJLyogV2hlbiBwcmV2aW91cyBjb21wb25l bnRzIGFyZSBhbHJlYWR5IGtub3duIHRvIGJlCi0rCQkJICogZGlyZWN0b3JpZXMsIHByb2Nlc3Np bmcgLi4gY2FuIHNraXAgcmVhZGxpbmsuICovCi0rCQkJaWYgKCFjaGVja19kaXIpIGdvdG8gc2tp cF9yZWFkbGluazsKLSsJCX0KLSsJCXNzaXplX3QgayA9IHJlYWRsaW5rKG91dHB1dCwgc3RhY2ss IHApOwotKwkJaWYgKGs9PXApIGdvdG8gdG9vbG9uZzsKLSsJCWlmICghaykgewotKwkJCWVycm5v ID0gRU5PRU5UOwotKwkJCXJldHVybiAwOwotKwkJfQotKwkJaWYgKGs8MCkgewotKwkJCWlmIChl cnJubyAhPSBFSU5WQUwpIHJldHVybiAwOwotK3NraXBfcmVhZGxpbms6Ci0rCQkJY2hlY2tfZGly ID0gMDsKLSsJCQlpZiAodXApIHsKLSsJCQkJd2hpbGUocSAmJiBvdXRwdXRbcS0xXSE9Jy8nKSBx LS07Ci0rCQkJCWlmIChxPjEgJiYgKHE+MiB8fCBvdXRwdXRbMF0hPScvJykpIHEtLTsKLSsJCQkJ Y29udGludWU7Ci0rCQkJfQotKwkJCWlmIChsMCkgcSArPSBsOwotKwkJCWNoZWNrX2RpciA9IHN0 YWNrW3BdOwotKwkJCWNvbnRpbnVlOwotKwkJfQotKwkJaWYgKCsrY250ID09IFNZTUxPT1BfTUFY KSB7Ci0rCQkJZXJybm8gPSBFTE9PUDsKLSsJCQlyZXR1cm4gMDsKLSsJCX0KLSsKLSsJCS8qIElm IGxpbmsgY29udGVudHMgZW5kIGluIC8sIHN0cmlwIGFueSBzbGFzaGVzIGFscmVhZHkgb24KLSsJ CSAqIHN0YWNrIHRvIGF2b2lkIC8tPi8vIG9yIC8vLT4vLy8gb3Igc3B1cmlvdXMgdG9vbG9uZy4g Ki8KLSsJCWlmIChzdGFja1trLTFdPT0nLycpIHdoaWxlIChzdGFja1twXT09Jy8nKSBwKys7Ci0r CQlwIC09IGs7Ci0rCQltZW1tb3ZlKHN0YWNrK3AsIHN0YWNrLCBrKTsKLSsKLSsJCS8qIFNraXAg dGhlIHN0YWNrIGFkdmFuY2VtZW50IGluIGNhc2Ugd2UgaGF2ZSBhIG5ldwotKwkJICogYWJzb2x1 dGUgYmFzZSBwYXRoLiAqLwotKwkJZ290byByZXN0YXJ0OwotIAl9Ci0gCi0tCV9fc3lzY2FsbChT WVNfY2xvc2UsIGZkKTsKLS0JcmV0dXJuIHJlc29sdmVkID8gc3RyY3B5KHJlc29sdmVkLCB0bXAp IDogc3RyZHVwKHRtcCk7Ci0tZXJyOgotLQlfX3N5c2NhbGwoU1lTX2Nsb3NlLCBmZCk7Ci0rIAlv dXRwdXRbcV0gPSAwOwotKwotKwlpZiAob3V0cHV0WzBdICE9ICcvJykgewotKwkJaWYgKCFnZXRj d2Qoc3RhY2ssIHNpemVvZiBzdGFjaykpIHJldHVybiAwOwotKwkJbCA9IHN0cmxlbihzdGFjayk7 Ci0rCQkvKiBDYW5jZWwgYW55IGluaXRpYWwgLi4gY29tcG9uZW50cy4gKi8KLSsJCXAgPSAwOwot KwkJd2hpbGUgKG51cC0tKSB7Ci0rCQkJd2hpbGUobD4xICYmIHN0YWNrW2wtMV0hPScvJykgbC0t OwotKwkJCWlmIChsPjEpIGwtLTsKLSsJCQlwICs9IDI7Ci0rCQkJaWYgKHA8cSkgcCsrOwotKwkJ fQotKwkJaWYgKHEtcCAmJiBzdGFja1tsLTFdIT0nLycpIHN0YWNrW2wrK10gPSAnLyc7Ci0rCQlp ZiAobCArIChxLXApICsgMSA+PSBQQVRIX01BWCkgZ290byB0b29sb25nOwotKwkJbWVtbW92ZShv dXRwdXQgKyBsLCBvdXRwdXQgKyBwLCBxIC0gcCArIDEpOwotKwkJbWVtY3B5KG91dHB1dCwgc3Rh Y2ssIGwpOwotKwkJcSA9IGwgKyBxLXA7Ci0rCX0KLSsKLSsJaWYgKHJlc29sdmVkKSByZXR1cm4g bWVtY3B5KHJlc29sdmVkLCBvdXRwdXQsIHErMSk7Ci0rCWVsc2UgcmV0dXJuIHN0cmR1cChvdXRw dXQpOwotKwotK3Rvb2xvbmc6Ci0rCWVycm5vID0gRU5BTUVUT09MT05HOwotIAlyZXR1cm4gMDsK LSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9pc2FzY2lpLnBhdGNoIGIvc3Jj cGtncy9tdXNsL3BhdGNoZXMvaXNhc2NpaS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNjcxOWQyZWUxODhmYS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0 Y2hlcy9pc2FzY2lpLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotRnJvbSBl NDhlOTljMTEyMjQ2ZmI1ODA1OTY0MDQwNzQ0NDVjYjI1ZDc4NThkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xPz1DMz04OXJpY289MjBSb2xpbT89IDxlcmljb25yQGRp c3Jvb3Qub3JnPgotRGF0ZTogTW9uLCA0IEphbiAyMDIxIDIyOjQ4OjM0IC0wMzAwCi1TdWJqZWN0 OiBbUEFUQ0hdIHN1cHByZXNzIGlzYXNjaWkoKSBtYWNybyBmb3IgQysrCi0KLWFuYWxvZ291cyB0 byBjb21taXQgYTYwNDU3Yzg0YTRiNTlhYjU2NGQ3ZjRhYmI2NjBhNzAyODNiYTk4ZC4KLQotZGlm ZiAtLWdpdCBpbmNsdWRlL2N0eXBlLmggaW5jbHVkZS9jdHlwZS5oCi1pbmRleCA3OTM2NTM2Zi4u MzJiY2VmNGQgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2N0eXBlLmgKLSsrKyBiL2luY2x1ZGUvY3R5 cGUuaAotQEAgLTY0LDcgKzY0LDkgQEAgaW50ICAgaXNhc2NpaShpbnQpOwotIGludCAgIHRvYXNj aWkoaW50KTsKLSAjZGVmaW5lIF90b2xvd2VyKGEpICgoYSl8MHgyMCkKLSAjZGVmaW5lIF90b3Vw cGVyKGEpICgoYSkmMHg1ZikKLSsjaWZuZGVmIF9fY3BsdXNwbHVzCi0gI2RlZmluZSBpc2FzY2lp KGEpICgwID8gaXNhc2NpaShhKSA6ICh1bnNpZ25lZCkoYSkgPCAxMjgpCi0rI2VuZGlmCi0gCi0g I2VuZGlmCi0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9tb19sb29rdXAucGF0 Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9tb19sb29rdXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGFlODZlMzNjOWM3MDAuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9tdXNsL3BhdGNoZXMvbW9fbG9va3VwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAs MCBAQAotRG8gbm90IGNyYXNoIHdpdGggYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBk Y25nZXR0ZXh0KCkKLWlzIGNhbGxlZCB3aXRoIE5VTEwgbXNnaWRbMTJdIGFyZ3VtZW50cy4KLQot Rml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3Vl cy8xMjA0MgotYW5kIHByb2JhYmx5IG90aGVycy4KLQotCS0teHRyYWVtZQotCi0tLS0gYS9zcmMv bG9jYWxlL19fbW9fbG9va3VwLmMub3JpZwkyMDE5LTA2LTI2IDA5OjU1OjM2Ljg0MzAxMjY3NCAr MDIwMAotKysrIGIvc3JjL2xvY2FsZS9fX21vX2xvb2t1cC5jCTIwMTktMDYtMjYgMDk6NTY6MTEu NTI5NDQzOTU1ICswMjAwCi1AQCAtMTMsNyArMTMsNyBAQCBjb25zdCBjaGFyICpfX21vX2xvb2t1 cChjb25zdCB2b2lkICpwLCBzCi0gCXVpbnQzMl90IGIgPSAwLCBuID0gc3dhcGMobW9bMl0sIHN3 KTsKLSAJdWludDMyX3QgbyA9IHN3YXBjKG1vWzNdLCBzdyk7Ci0gCXVpbnQzMl90IHQgPSBzd2Fw Yyhtb1s0XSwgc3cpOwotLQlpZiAobj49c2l6ZS80IHx8IG8+PXNpemUtNCpuIHx8IHQ+PXNpemUt NCpuIHx8ICgob3x0KSU0KSkKLSsJaWYgKCFzIHx8IG4+PXNpemUvNCB8fCBvPj1zaXplLTQqbiB8 fCB0Pj1zaXplLTQqbiB8fCAoKG98dCklNCkpCi0gCQlyZXR1cm4gMDsKLSAJby89NDsKLSAJdC89 NDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNoIGIv c3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjLXB0X3JlZ3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDQ1ODE1MzIxYmYwZjEuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9t dXNsL3BhdGNoZXMvcHBjLXB0X3JlZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww IEBACi1jb21taXQgYzI1MThhOGVmYjY1MDdmMWI0MWMzYjEyZTAzYjA2ZjhmMjMxN2ExZgotQXV0 aG9yOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiAgIFNhdCBPY3QgMTkg MTU6NTM6NDMgMjAxOSAtMDQwMAotCi0gICAgdXNlIHN0cnVjdCBwdF9yZWdzICogcmF0aGVyIHRo YW4gdm9pZCAqIGZvciBwb3dlcnBjWzY0XSBzaWdjb250ZXh0IHJlZ3MKLSAgICAKLSAgICB0aGlz IGlzIHRvIG1hdGNoIHRoZSBrZXJuZWwgYW5kIGdsaWJjIGludGVyZmFjZXMuIGhlcmUsIHN0cnVj dCBwdF9yZWdzCi0gICAgaXMgYW4gaW5jb21wbGV0ZSB0eXBlLCBidXQgdGhhdCdzIGhhcm1sZXNz LCBhbmQgaWYgaXQncyBjb21wbGV0ZWQgYnkKLSAgICBpbmNsdXNpb24gb2YgYW5vdGhlciBoZWFk ZXIgdGhlbiBtZW1iZXJzIG9mIHRoZSBzdHJ1Y3QgcG9pbnRlZCB0byBieQotICAgIHRoZSByZWdz IG1lbWJlciBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgd2l0aG91dCBnb2luZyB0aHJvdWdoIGEg Y2FzdAotICAgIG9yIGludGVybWVkaWF0ZSBwb2ludGVyIG9iamVjdC4KLQotZGlmZiAtLWdpdCBh L2FyY2gvcG93ZXJwYy9iaXRzL3NpZ25hbC5oIGIvYXJjaC9wb3dlcnBjL2JpdHMvc2lnbmFsLmgK LWluZGV4IDA2ZWZiMTFjLi5jMWJmM2NhZiAxMDA2NDQKLS0tLSBhL2FyY2gvcG93ZXJwYy9iaXRz L3NpZ25hbC5oCi0rKysgYi9hcmNoL3Bvd2VycGMvYml0cy9zaWduYWwuaAotQEAgLTI4LDcgKzI4 LDcgQEAgc3RydWN0IHNpZ2NvbnRleHQgewotIAlpbnQgc2lnbmFsOwotIAl1bnNpZ25lZCBsb25n IGhhbmRsZXI7Ci0gCXVuc2lnbmVkIGxvbmcgb2xkbWFzazsKLS0Jdm9pZCAqcmVnczsKLSsJc3Ry dWN0IHB0X3JlZ3MgKnJlZ3M7Ci0gfTsKLSAKLSB0eXBlZGVmIHN0cnVjdCB7Ci1kaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaCBiL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2ln bmFsLmgKLWluZGV4IDRkZWMyMmE1Li5kNTQ5M2IxOCAxMDA2NDQKLS0tLSBhL2FyY2gvcG93ZXJw YzY0L2JpdHMvc2lnbmFsLmgKLSsrKyBiL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2lnbmFsLmgKLUBA IC0zMiw3ICszMiw3IEBAIHR5cGVkZWYgc3RydWN0IHNpZ2NvbnRleHQgewotIAlpbnQgX3BhZDA7 Ci0gCXVuc2lnbmVkIGxvbmcgaGFuZGxlcjsKLSAJdW5zaWduZWQgbG9uZyBvbGRtYXNrOwotLQl2 b2lkICpyZWdzOwotKwlzdHJ1Y3QgcHRfcmVncyAqcmVnczsKLSAJZ3JlZ3NldF90IGdwX3JlZ3M7 Ci0gCWZwcmVnc2V0X3QgZnBfcmVnczsKLSAJdnJyZWdzZXRfdCAqdl9yZWdzOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjNjQtZnByZWdzZXRfdC5wYXRjaCBiL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzL3BwYzY0LWZwcmVnc2V0X3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDEyNjE3YmEwZWY3ZDUuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNs L3BhdGNoZXMvcHBjNjQtZnByZWdzZXRfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICsw LDAgQEAKLWNvbW1pdCBjOWY0OGNkZTBhMjI2NDFjZTNkYWY1NDU5NmE5ZWNlYmRhYjkxNDM1Ci1B dXRob3I6IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6ICAgU2F0IE9jdCAx OSAxNTozOTo0NSAyMDE5IC0wNDAwCi0KLSAgICBmaXggZnByZWdzZXRfdCB0eXBlIG9uIHBvd2Vy cGM2NAotICAgIAotICAgIHRoZSB1c2Vyc3BhY2UgdWNvbnRleHQgQVBJIGhhcyB0aGlzIGFzIGFu IGFycmF5IHJhdGhlciB0aGFuIGEKLSAgICBzdHJ1Y3R1cmUuCi0gICAgCi0gICAgY29tbWl0IDNj NTlhODY4OTU2NjM2YmM4YWRhZmIxYjE2OGQwOTA4OTc2OTI1MzIgZml4ZWQgdGhlCi0gICAgY29y cmVzcG9uZGluZyBtaXN0YWtlIGZvciB2cnJlZ3NldF90LCBuYW1lbHkgdGhhdCB0aGUgb3JpZ2lu YWwKLSAgICBwb3dlcnBjNjQgcG9ydCB1c2VkIGEgbWl4IG9mIHR5cGVzIGZyb20gMzItYml0IHBv d2VycGMgYW5kIHBvd2VycGM2NAotICAgIHJhdGhlciB0aGFuIG1hdGNoaW5nIHRoZSA2NC1iaXQg dHlwZXMuCi0KLWRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oIGIvYXJj aC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotaW5kZXggMmNjMDYwNGMuLjRkZWMyMmE1IDEwMDY0 NAotLS0tIGEvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotKysrIGIvYXJjaC9wb3dlcnBj NjQvYml0cy9zaWduYWwuaAotQEAgLTksMTEgKzksNyBAQAotICNpZiBkZWZpbmVkKF9HTlVfU09V UkNFKSB8fCBkZWZpbmVkKF9CU0RfU09VUkNFKQotIAotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBn cmVnX3QsIGdyZWdzZXRfdFs0OF07Ci0tCi0tdHlwZWRlZiBzdHJ1Y3QgewotLQlkb3VibGUgZnBy ZWdzWzMyXTsKLS0JZG91YmxlIGZwc2NyOwotLX0gZnByZWdzZXRfdDsKLSt0eXBlZGVmIGRvdWJs ZSBmcHJlZ3NldF90WzMzXTsKLSAKLSB0eXBlZGVmIHN0cnVjdCB7Ci0gI2lmZGVmIF9fR05VQ19f CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGNsZS5wYXRjaCBiL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzL3BwY2xlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3 ZDQ5MzM4YTVhMGYxLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3Bw Y2xlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotRnJvbSAyMGRmYzIwMDI0 ODJhMjFiOTU1YjcxMGFmMTE5YTAxYWVjZWU3ODRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiBUdWUsIDE1 IERlYyAyMDIwIDIwOjQyOjE3ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkZCBwcGMzMiBsZSBz dWJhcmNoCi0KLS0tLQotIGNvbmZpZ3VyZSB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQotCi1kaWZmIC0tZ2l0IGNvbmZpZ3VyZSBjb25maWd1cmUKLWluZGV4IDg2ODAxMjgu LmYxY2E1OGUgMTAwNzU1Ci0tLS0gYS9jb25maWd1cmUKLSsrKyBiL2NvbmZpZ3VyZQotQEAgLTY0 NSw2ICs2NDUsNyBAQCBmaQotIGlmIHRlc3QgIiRBUkNIIiA9ICJwb3dlcnBjIiA7IHRoZW4KLSB0 cnljcHBpZiAiX19OT19GUFJTX18gJiYgIV9TT0ZUX0ZMT0FUIiAiJHQiICYmIGZhaWwgXAotICAg IiQwOiBlcnJvcjogY29tcGlsZXIncyBmbG9hdGluZyBwb2ludCBjb25maWd1cmF0aW9uIGlzIHVu c3VwcG9ydGVkIgotK3RyeWNwcGlmIF9fTElUVExFX0VORElBTl9fICIkdCIgJiYgU1VCQVJDSD0k e1NVQkFSQ0h9bGUKLSB0cnljcHBpZiBfU09GVF9GTE9BVCAiJHQiICYmIFNVQkFSQ0g9JHtTVUJB UkNIfS1zZgotIGZpCi0gCi0tLSAKLTIuMjkuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wv cGF0Y2hlcy93b3JrX2Fyb3VuZF9saW51eF9idWdfaW5fcmVhZGxpbmtfc3lzY2FsbF93aXRoX3pl cm9fYnVmZmVyLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvd29ya19hcm91bmRfbGludXhf YnVnX2luX3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMzI4NjQzMmViZWEyMy4uMDAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL211c2wvcGF0Y2hlcy93b3JrX2Fyb3VuZF9saW51eF9idWdfaW5fcmVhZGxpbmtfc3lz Y2FsbF93aXRoX3plcm9fYnVmZmVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBA QAotRnJvbSBlMmZhNzIwYmU3MDI0Y2NlNGZjNDg5ZjM4Nzc0NzZkMzVkYTQ4ZWUyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4Pgot RGF0ZTogTW9uLCAyMyBOb3YgMjAyMCAxOTo0NDoxOSAtMDUwMAotU3ViamVjdDogW1BBVENIXSB3 b3JrIGFyb3VuZCBsaW51eCBidWcgaW4gcmVhZGxpbmsgc3lzY2FsbCB3aXRoIHplcm8gYnVmZmVy Ci0gc2l6ZQotCi1saW51eCBmYWlscyB3aXRoIEVJTlZBTCB3aGVuIGEgemVybyBidWZmZXIgc2l6 ZSBpcyBwYXNzZWQgdG8gdGhlCi1zeXNjYWxsLiB0aGlzIGlzIG5vbi1jb25mb3JtaW5nIGJlY2F1 c2UgUE9TSVggYWxyZWFkeSBkZWZpbmVzIEVJTlZBTAotd2l0aCBhIHNpZ25pZmljYW50bHkgZGlm ZmVyZW50IG1lYW5pbmc6IHRoZSB0YXJnZXQgaXMgbm90IGEgc3ltbGluay4KLQotc2luY2UgdGhl IHJlcXVlc3QgaXMgc2VtYW50aWNhbGx5IHZhbGlkLCBwYXRjaCBpdCB1cCBieSB1c2luZyBhIGR1 bW15Ci1idWZmZXIgb2YgbGVuZ3RoIG9uZSwgYW5kIHRydW5jYXRpbmcgdGhlIHJldHVybiB2YWx1 ZSB0byB6ZXJvIGlmIGl0Ci1zdWNjZWVkcy4KLS0tLQotIHNyYy91bmlzdGQvcmVhZGxpbmsuYyAg IHwgMTEgKysrKysrKysrLS0KLSBzcmMvdW5pc3RkL3JlYWRsaW5rYXQuYyB8ICA5ICsrKysrKysr LQotIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3NyYy91bmlzdGQvcmVhZGxpbmsuYyBiL3NyYy91bmlzdGQvcmVhZGxpbmsu YwotaW5kZXggYTE1MmQ1MjQ5Li4zMmY0NTM3ZjkgMTAwNjQ0Ci0tLS0gYS9zcmMvdW5pc3RkL3Jl YWRsaW5rLmMKLSsrKyBiL3NyYy91bmlzdGQvcmVhZGxpbmsuYwotQEAgLTQsOSArNCwxNiBAQAot IAotIHNzaXplX3QgcmVhZGxpbmsoY29uc3QgY2hhciAqcmVzdHJpY3QgcGF0aCwgY2hhciAqcmVz dHJpY3QgYnVmLCBzaXplX3QgYnVmc2l6ZSkKLSB7Ci0rCWNoYXIgZHVtbXlbMV07Ci0rCWlmICgh YnVmc2l6ZSkgewotKwkJYnVmID0gZHVtbXk7Ci0rCQlidWZzaXplID0gMTsKLSsJfQotICNpZmRl ZiBTWVNfcmVhZGxpbmsKLS0JcmV0dXJuIHN5c2NhbGwoU1lTX3JlYWRsaW5rLCBwYXRoLCBidWYs IGJ1ZnNpemUpOwotKwlpbnQgciA9IF9fc3lzY2FsbChTWVNfcmVhZGxpbmssIHBhdGgsIGJ1Ziwg YnVmc2l6ZSk7Ci0gI2Vsc2UKLS0JcmV0dXJuIHN5c2NhbGwoU1lTX3JlYWRsaW5rYXQsIEFUX0ZE Q1dELCBwYXRoLCBidWYsIGJ1ZnNpemUpOwotKwlpbnQgciA9IF9fc3lzY2FsbChTWVNfcmVhZGxp bmthdCwgQVRfRkRDV0QsIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7Ci0gI2VuZGlmCi0rCWlmIChidWYg PT0gZHVtbXkgJiYgciA+IDApIHIgPSAwOwotKwlyZXR1cm4gX19zeXNjYWxsX3JldChyKTsKLSB9 Ci1kaWZmIC0tZ2l0IGEvc3JjL3VuaXN0ZC9yZWFkbGlua2F0LmMgYi9zcmMvdW5pc3RkL3JlYWRs aW5rYXQuYwotaW5kZXggOWFmNDVjZDVhLi5mNzlkM2QxNDIgMTAwNjQ0Ci0tLS0gYS9zcmMvdW5p c3RkL3JlYWRsaW5rYXQuYwotKysrIGIvc3JjL3VuaXN0ZC9yZWFkbGlua2F0LmMKLUBAIC0zLDUg KzMsMTIgQEAKLSAKLSBzc2l6ZV90IHJlYWRsaW5rYXQoaW50IGZkLCBjb25zdCBjaGFyICpyZXN0 cmljdCBwYXRoLCBjaGFyICpyZXN0cmljdCBidWYsIHNpemVfdCBidWZzaXplKQotIHsKLS0JcmV0 dXJuIHN5c2NhbGwoU1lTX3JlYWRsaW5rYXQsIGZkLCBwYXRoLCBidWYsIGJ1ZnNpemUpOwotKwlj aGFyIGR1bW15WzFdOwotKwlpZiAoIWJ1ZnNpemUpIHsKLSsJCWJ1ZiA9IGR1bW15OwotKwkJYnVm c2l6ZSA9IDE7Ci0rCX0KLSsJaW50IHIgPSBfX3N5c2NhbGwoU1lTX3JlYWRsaW5rYXQsIGZkLCBw YXRoLCBidWYsIGJ1ZnNpemUpOwotKwlpZiAoYnVmID09IGR1bW15ICYmIHIgPiAwKSByID0gMDsK LSsJcmV0dXJuIF9fc3lzY2FsbF9yZXQocik7Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNs L3RlbXBsYXRlIGIvc3JjcGtncy9tdXNsL3RlbXBsYXRlCmluZGV4IGUwZTA1YzJkZjA5OTUuLmEw MjVlODc0NjIzZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL211c2wvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdt dXNsJwogcGtnbmFtZT1tdXNsCi1yZXZlcnRzPSIxLjIuMF8xIgotdmVyc2lvbj0xLjEuMjQKLXJl dmlzaW9uPTE3Cit2ZXJzaW9uPTEuMi40CityZXZpc2lvbj0xCiBhcmNocz0iKi1tdXNsIgogYm9v dHN0cmFwPXllcwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTAsOSArOSw5IEBAIGNv bmZpZ3VyZV9hcmdzPSItLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1nY2Mtd3JhcHBlciIKIHNob3J0 X2Rlc2M9Ik11c2wgQyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKLWhvbWVwYWdlPSJodHRwczovL211c2wubGli Yy5vcmcvIgotZGlzdGZpbGVzPSJodHRwczovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0k e3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2Nh MDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKK2hvbWVwYWdlPSJodHRwczovL3d3 dy5tdXNsLWxpYmMub3JnLyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly93d3cubXVzbC1saWJjLm9yZy9y ZWxlYXNlcy9tdXNsLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09N2EzNWVhZTMzZDUzNzJh N2MwZGExMTg4ZGU3OTg3MjZmNjg4MjU1MTNiN2FlM2ViZTk3YWFhYTUyMTE0ZjAzOQogCiBub3N0 cmlwX2ZpbGVzPSJsaWJjLnNvIgogc2hsaWJfcHJvdmlkZXM9ImxpYmMuc28iCgpGcm9tIGUyZTM2 MGE3YmFlYWU1ZTQ3ZjFiYzlmZjVhODhhOGU0MWExZjBkOWYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAxNSBKYW4gMjAy MyAxMzoxMToxMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDY1LzE4OV0gbmdpbng6IGFkZCByaXNj djY0IGNyb3NzIHByb2ZpbGUKCi0tLQogc3JjcGtncy9uZ2lueC9maWxlcy9uZ3hfYXV0b19jb25m aWcuaC5yaXNjdjY0IHwgNjI5ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9uZ2lueC9maWxl cy9uanNfYXV0b19jb25maWcuaC5yaXNjdjY0IHwgMTYzICsrKysrCiBzcmNwa2dzL25naW54L3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogMyBmaWxlcyBjaGFuZ2VkLCA3 OTYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbmdpbngvZmlsZXMv bmd4X2F1dG9fY29uZmlnLmgucmlzY3Y2NAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvbmdp bngvZmlsZXMvbmpzX2F1dG9fY29uZmlnLmgucmlzY3Y2NAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bmdpbngvZmlsZXMvbmd4X2F1dG9fY29uZmlnLmgucmlzY3Y2NCBiL3NyY3BrZ3MvbmdpbngvZmls ZXMvbmd4X2F1dG9fY29uZmlnLmgucmlzY3Y2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5mYjQ5YzhkMDEyYWZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9u Z2lueC9maWxlcy9uZ3hfYXV0b19jb25maWcuaC5yaXNjdjY0CkBAIC0wLDAgKzEsNjI5IEBACisj ZGVmaW5lIE5HWF9DT05GSUdVUkUgIiAtLXByZWZpeD0vZXRjL25naW54IC0tY29uZi1wYXRoPS9l dGMvbmdpbngvbmdpbnguY29uZiAtLXNiaW4tcGF0aD0vdXNyL2Jpbi9uZ2lueCAtLW1vZHVsZXMt cGF0aD0vdXNyL2xpYi9uZ2lueC9tb2R1bGVzIC0tcGlkLXBhdGg9L3J1bi9uZ2lueC5waWQgLS1s b2NrLXBhdGg9L3Zhci9sb2NrL25naW54LmxvY2sgLS11c2VyPW5naW54IC0tZ3JvdXA9bmdpbngg LS1odHRwLWxvZy1wYXRoPS92YXIvbG9nL25naW54L2FjY2Vzcy5sb2cgLS1lcnJvci1sb2ctcGF0 aD0vdmFyL2xvZy9uZ2lueC9lcnJvci5sb2cgLS1odHRwLWNsaWVudC1ib2R5LXRlbXAtcGF0aD0v dmFyL2xpYi9uZ2lueC90bXAvY2xpZW50LWJvZHkgLS1odHRwLXByb3h5LXRlbXAtcGF0aD0vdmFy L2xpYi9uZ2lueC90bXAvcHJveHkgLS1odHRwLWZhc3RjZ2ktdGVtcC1wYXRoPS92YXIvbGliL25n aW54L3RtcC9mYXN0Y2dpIC0taHR0cC1zY2dpLXRlbXAtcGF0aD0vdmFyL2xpYi9uZ2lueC90bXAv c2NnaSAtLWh0dHAtdXdzZ2ktdGVtcC1wYXRoPS92YXIvbGliL25naW54L3RtcC91d3NnaSAtLXdp dGgtY29tcGF0IC0td2l0aC1maWxlLWFpbyAtLXdpdGgtaHR0cF9kYXZfbW9kdWxlIC0td2l0aC1o dHRwX2d1bnppcF9tb2R1bGUgLS13aXRoLWh0dHBfZ3ppcF9zdGF0aWNfbW9kdWxlIC0td2l0aC1o dHRwX3JlYWxpcF9tb2R1bGUgLS13aXRoLWh0dHBfc3NsX21vZHVsZSAtLXdpdGgtaHR0cF9zbGlj ZV9tb2R1bGUgLS13aXRoLWh0dHBfc3R1Yl9zdGF0dXNfbW9kdWxlIC0td2l0aC1odHRwX3N1Yl9t b2R1bGUgLS13aXRoLWh0dHBfdjJfbW9kdWxlIC0td2l0aC1odHRwX3hzbHRfbW9kdWxlPWR5bmFt aWMgLS13aXRoLWh0dHBfZ2VvaXBfbW9kdWxlPWR5bmFtaWMgLS13aXRoLWh0dHBfcGVybF9tb2R1 bGU9ZHluYW1pYyAtLXdpdGgtc3RyZWFtPWR5bmFtaWMgLS13aXRoLXN0cmVhbV9nZW9pcF9tb2R1 bGU9ZHluYW1pYyAtLXdpdGgtc3RyZWFtX3JlYWxpcF9tb2R1bGUgLS13aXRoLXN0cmVhbV9zc2xf bW9kdWxlIC0td2l0aC1zdHJlYW1fc3NsX3ByZXJlYWRfbW9kdWxlIC0td2l0aC1tYWlsIC0td2l0 aC1tYWlsX3NzbF9tb2R1bGUgLS13aXRoLXBjcmUtaml0IC0td2l0aC10aHJlYWRzIC0tYWRkLWR5 bmFtaWMtbW9kdWxlPS4uL25qcy0wLjcuNy9uZ2lueCIKKworI2lmbmRlZiBOR1hfSEFWRV9HQ0Nf QVRPTUlDCisjZGVmaW5lIE5HWF9IQVZFX0dDQ19BVE9NSUMgIDEKKyNlbmRpZgorCisKKyNpZm5k ZWYgTkdYX0hBVkVfQzk5X1ZBUklBRElDX01BQ1JPUworI2RlZmluZSBOR1hfSEFWRV9DOTlfVkFS SUFESUNfTUFDUk9TICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX0dDQ19WQVJJQURJ Q19NQUNST1MKKyNkZWZpbmUgTkdYX0hBVkVfR0NDX1ZBUklBRElDX01BQ1JPUyAgMQorI2VuZGlm CisKKworI2lmbmRlZiBOR1hfSEFWRV9HQ0NfQlNXQVA2NAorI2RlZmluZSBOR1hfSEFWRV9HQ0Nf QlNXQVA2NCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9FUE9MTAorI2RlZmluZSBO R1hfSEFWRV9FUE9MTCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9DTEVBUl9FVkVO VAorI2RlZmluZSBOR1hfSEFWRV9DTEVBUl9FVkVOVCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBO R1hfSEFWRV9FUE9MTFJESFVQCisjZGVmaW5lIE5HWF9IQVZFX0VQT0xMUkRIVVAgIDEKKyNlbmRp ZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfRVBPTExFWENMVVNJVkUKKyNkZWZpbmUgTkdYX0hBVkVf RVBPTExFWENMVVNJVkUgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfRVZFTlRGRAor I2RlZmluZSBOR1hfSEFWRV9FVkVOVEZEICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZF X1NZU19FVkVOVEZEX0gKKyNkZWZpbmUgTkdYX0hBVkVfU1lTX0VWRU5URkRfSCAgMQorI2VuZGlm CisKKworI2lmbmRlZiBOR1hfSEFWRV9PX1BBVEgKKyNkZWZpbmUgTkdYX0hBVkVfT19QQVRIICAx CisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX1NFTkRGSUxFCisjZGVmaW5lIE5HWF9IQVZF X1NFTkRGSUxFICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX1NFTkRGSUxFNjQKKyNk ZWZpbmUgTkdYX0hBVkVfU0VOREZJTEU2NCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFW RV9QUl9TRVRfRFVNUEFCTEUKKyNkZWZpbmUgTkdYX0hBVkVfUFJfU0VUX0RVTVBBQkxFICAxCisj ZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX1BSX1NFVF9LRUVQQ0FQUworI2RlZmluZSBOR1hf SEFWRV9QUl9TRVRfS0VFUENBUFMgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfQ0FQ QUJJTElUSUVTCisjZGVmaW5lIE5HWF9IQVZFX0NBUEFCSUxJVElFUyAgMQorI2VuZGlmCisKKwor I2lmbmRlZiBOR1hfSEFWRV9HTlVfQ1JZUFRfUgorI2RlZmluZSBOR1hfSEFWRV9HTlVfQ1JZUFRf UiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfQUxJR05NRU5UCisjZGVmaW5lIE5HWF9BTElH Tk1FTlQgIDE2CisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9DUFVfQ0FDSEVfTElORQorI2RlZmlu ZSBOR1hfQ1BVX0NBQ0hFX0xJTkUgIDMyCisjZW5kaWYKKworCisjZGVmaW5lIE5HWF9LUVVFVUVf VURBVEFfVCAgKHZvaWQgKikKKworCisjaWZuZGVmIE5HWF9IQVZFX1BPU0lYX0ZBRFZJU0UKKyNk ZWZpbmUgTkdYX0hBVkVfUE9TSVhfRkFEVklTRSAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hf SEFWRV9PX0RJUkVDVAorI2RlZmluZSBOR1hfSEFWRV9PX0RJUkVDVCAgMQorI2VuZGlmCisKKwor I2lmbmRlZiBOR1hfSEFWRV9BTElHTkVEX0RJUkVDVElPCisjZGVmaW5lIE5HWF9IQVZFX0FMSUdO RURfRElSRUNUSU8gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfU1RBVEZTCisjZGVm aW5lIE5HWF9IQVZFX1NUQVRGUyAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9TVEFU VkZTCisjZGVmaW5lIE5HWF9IQVZFX1NUQVRWRlMgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdY X0hBVkVfRExPUEVOCisjZGVmaW5lIE5HWF9IQVZFX0RMT1BFTiAgMQorI2VuZGlmCisKKworI2lm bmRlZiBOR1hfSEFWRV9TQ0hFRF9ZSUVMRAorI2RlZmluZSBOR1hfSEFWRV9TQ0hFRF9ZSUVMRCAg MQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9TQ0hFRF9TRVRBRkZJTklUWQorI2RlZmlu ZSBOR1hfSEFWRV9TQ0hFRF9TRVRBRkZJTklUWSAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hf SEFWRV9SRVVTRVBPUlQKKyNkZWZpbmUgTkdYX0hBVkVfUkVVU0VQT1JUICAxCisjZW5kaWYKKwor CisjaWZuZGVmIE5HWF9IQVZFX1RSQU5TUEFSRU5UX1BST1hZCisjZGVmaW5lIE5HWF9IQVZFX1RS QU5TUEFSRU5UX1BST1hZICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX0lQX0JJTkRf QUREUkVTU19OT19QT1JUCisjZGVmaW5lIE5HWF9IQVZFX0lQX0JJTkRfQUREUkVTU19OT19QT1JU ICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX0lQX1BLVElORk8KKyNkZWZpbmUgTkdY X0hBVkVfSVBfUEtUSU5GTyAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9JUFY2X1JF Q1ZQS1RJTkZPCisjZGVmaW5lIE5HWF9IQVZFX0lQVjZfUkVDVlBLVElORk8gIDEKKyNlbmRpZgor CisKKyNpZm5kZWYgTkdYX0hBVkVfREVGRVJSRURfQUNDRVBUCisjZGVmaW5lIE5HWF9IQVZFX0RF RkVSUkVEX0FDQ0VQVCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9LRUVQQUxJVkVf VFVOQUJMRQorI2RlZmluZSBOR1hfSEFWRV9LRUVQQUxJVkVfVFVOQUJMRSAgMQorI2VuZGlmCisK KworI2lmbmRlZiBOR1hfSEFWRV9UQ1BfRkFTVE9QRU4KKyNkZWZpbmUgTkdYX0hBVkVfVENQX0ZB U1RPUEVOICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX1RDUF9JTkZPCisjZGVmaW5l IE5HWF9IQVZFX1RDUF9JTkZPICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX0FDQ0VQ VDQKKyNkZWZpbmUgTkdYX0hBVkVfQUNDRVBUNCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hf SEFWRV9GSUxFX0FJTworI2RlZmluZSBOR1hfSEFWRV9GSUxFX0FJTyAgMQorI2VuZGlmCisKKwor I2lmbmRlZiBOR1hfSEFWRV9FVkVOVEZECisjZGVmaW5lIE5HWF9IQVZFX0VWRU5URkQgIDEKKyNl bmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfU1lTX0VWRU5URkRfSAorI2RlZmluZSBOR1hfSEFW RV9TWVNfRVZFTlRGRF9IICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX1VOSVhfRE9N QUlOCisjZGVmaW5lIE5HWF9IQVZFX1VOSVhfRE9NQUlOICAxCisjZW5kaWYKKworCisjaWZuZGVm IE5HWF9QVFJfU0laRQorI2RlZmluZSBOR1hfUFRSX1NJWkUgIDgKKyNlbmRpZgorCisKKyNpZm5k ZWYgTkdYX1NJR19BVE9NSUNfVF9TSVpFCisjZGVmaW5lIE5HWF9TSUdfQVRPTUlDX1RfU0laRSAg NAorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9MSVRUTEVfRU5ESUFOCisjZGVmaW5lIE5H WF9IQVZFX0xJVFRMRV9FTkRJQU4gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX01BWF9TSVpF X1RfVkFMVUUKKyNkZWZpbmUgTkdYX01BWF9TSVpFX1RfVkFMVUUgIDkyMjMzNzIwMzY4NTQ3NzU4 MDdMTAorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfU0laRV9UX0xFTgorI2RlZmluZSBOR1hfU0la RV9UX0xFTiAgKHNpemVvZigiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiKSAtIDEpCisjZW5kaWYKKwor CisjaWZuZGVmIE5HWF9NQVhfT0ZGX1RfVkFMVUUKKyNkZWZpbmUgTkdYX01BWF9PRkZfVF9WQUxV RSAgOTIyMzM3MjAzNjg1NDc3NTgwN0xMCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9PRkZfVF9M RU4KKyNkZWZpbmUgTkdYX09GRl9UX0xFTiAgKHNpemVvZigiLTkyMjMzNzIwMzY4NTQ3NzU4MDgi KSAtIDEpCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9USU1FX1RfU0laRQorI2RlZmluZSBOR1hf VElNRV9UX1NJWkUgIDgKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX1RJTUVfVF9MRU4KKyNkZWZp bmUgTkdYX1RJTUVfVF9MRU4gIChzaXplb2YoIi05MjIzMzcyMDM2ODU0Nzc1ODA4IikgLSAxKQor I2VuZGlmCisKKworI2lmbmRlZiBOR1hfTUFYX1RJTUVfVF9WQUxVRQorI2RlZmluZSBOR1hfTUFY X1RJTUVfVF9WQUxVRSAgOTIyMzM3MjAzNjg1NDc3NTgwN0xMCisjZW5kaWYKKworCisjaWZuZGVm IE5HWF9IQVZFX0lORVQ2CisjZGVmaW5lIE5HWF9IQVZFX0lORVQ2ICAxCisjZW5kaWYKKworCisj aWZuZGVmIE5HWF9IQVZFX1BSRUFECisjZGVmaW5lIE5HWF9IQVZFX1BSRUFEICAxCisjZW5kaWYK KworCisjaWZuZGVmIE5HWF9IQVZFX1BXUklURQorI2RlZmluZSBOR1hfSEFWRV9QV1JJVEUgIDEK KyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfUFdSSVRFVgorI2RlZmluZSBOR1hfSEFWRV9Q V1JJVEVWICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX0xPQ0FMVElNRV9SCisjZGVm aW5lIE5HWF9IQVZFX0xPQ0FMVElNRV9SICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZF X0NMT0NLX01PTk9UT05JQworI2RlZmluZSBOR1hfSEFWRV9DTE9DS19NT05PVE9OSUMgIDEKKyNl bmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfUE9TSVhfTUVNQUxJR04KKyNkZWZpbmUgTkdYX0hB VkVfUE9TSVhfTUVNQUxJR04gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfTUVNQUxJ R04KKyNkZWZpbmUgTkdYX0hBVkVfTUVNQUxJR04gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdY X0hBVkVfTUFQX0FOT04KKyNkZWZpbmUgTkdYX0hBVkVfTUFQX0FOT04gIDEKKyNlbmRpZgorCisK KyNpZm5kZWYgTkdYX0hBVkVfTUFQX0RFVlpFUk8KKyNkZWZpbmUgTkdYX0hBVkVfTUFQX0RFVlpF Uk8gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfU1lTVlNITQorI2RlZmluZSBOR1hf SEFWRV9TWVNWU0hNICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZFX1BPU0lYX1NFTQor I2RlZmluZSBOR1hfSEFWRV9QT1NJWF9TRU0gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hB VkVfTVNHSERSX01TR19DT05UUk9MCisjZGVmaW5lIE5HWF9IQVZFX01TR0hEUl9NU0dfQ09OVFJP TCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9GSU9OQklPCisjZGVmaW5lIE5HWF9I QVZFX0ZJT05CSU8gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVfRklPTlJFQUQKKyNk ZWZpbmUgTkdYX0hBVkVfRklPTlJFQUQgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hBVkVf R01UT0ZGCisjZGVmaW5lIE5HWF9IQVZFX0dNVE9GRiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBO R1hfSEFWRV9EX1RZUEUKKyNkZWZpbmUgTkdYX0hBVkVfRF9UWVBFICAxCisjZW5kaWYKKworCisj aWZuZGVmIE5HWF9IQVZFX1NDX05QUk9DRVNTT1JTX09OTE4KKyNkZWZpbmUgTkdYX0hBVkVfU0Nf TlBST0NFU1NPUlNfT05MTiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9PUEVOQVQK KyNkZWZpbmUgTkdYX0hBVkVfT1BFTkFUICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IQVZF X0dFVEFERFJJTkZPCisjZGVmaW5lIE5HWF9IQVZFX0dFVEFERFJJTkZPICAxCisjZW5kaWYKKwor CisjaWZuZGVmIE5HWF9USFJFQURTCisjZGVmaW5lIE5HWF9USFJFQURTICAxCisjZW5kaWYKKwor CisjaWZuZGVmIE5HWF9IVFRQX0NBQ0hFCisjZGVmaW5lIE5HWF9IVFRQX0NBQ0hFICAxCisjZW5k aWYKKworCisjaWZuZGVmIE5HWF9IVFRQX0daSVAKKyNkZWZpbmUgTkdYX0hUVFBfR1pJUCAgMQor I2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9TU0kKKyNkZWZpbmUgTkdYX0hUVFBfU1NJICAx CisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IVFRQX0daSVAKKyNkZWZpbmUgTkdYX0hUVFBfR1pJ UCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9WMgorI2RlZmluZSBOR1hfSFRUUF9W MiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9IRUFERVJTCisjZGVmaW5lIE5HWF9I VFRQX0hFQURFUlMgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hUVFBfR1pJUAorI2RlZmlu ZSBOR1hfSFRUUF9HWklQICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IVFRQX0RBVgorI2Rl ZmluZSBOR1hfSFRUUF9EQVYgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0NSWVBUCisjZGVm aW5lIE5HWF9DUllQVCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9SRUFMSVAKKyNk ZWZpbmUgTkdYX0hUVFBfUkVBTElQICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IVFRQX1hf Rk9SV0FSREVEX0ZPUgorI2RlZmluZSBOR1hfSFRUUF9YX0ZPUldBUkRFRF9GT1IgIDEKKyNlbmRp ZgorCisKKyNpZm5kZWYgTkdYX0hUVFBfWF9GT1JXQVJERURfRk9SCisjZGVmaW5lIE5HWF9IVFRQ X1hfRk9SV0FSREVEX0ZPUiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9YX0ZPUldB UkRFRF9GT1IKKyNkZWZpbmUgTkdYX0hUVFBfWF9GT1JXQVJERURfRk9SICAxCisjZW5kaWYKKwor CisjaWZuZGVmIE5HWF9IVFRQX1NTTAorI2RlZmluZSBOR1hfSFRUUF9TU0wgIDEKKyNlbmRpZgor CisKKyNpZm5kZWYgTkdYX0hUVFBfWF9GT1JXQVJERURfRk9SCisjZGVmaW5lIE5HWF9IVFRQX1hf Rk9SV0FSREVEX0ZPUiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9VUFNUUkVBTV9a T05FCisjZGVmaW5lIE5HWF9IVFRQX1VQU1RSRUFNX1pPTkUgIDEKKyNlbmRpZgorCisKKyNpZm5k ZWYgTkdYX1NUQVRfU1RVQgorI2RlZmluZSBOR1hfU1RBVF9TVFVCICAxCisjZW5kaWYKKworCisj aWZuZGVmIE5HWF9NQUlMX1NTTAorI2RlZmluZSBOR1hfTUFJTF9TU0wgIDEKKyNlbmRpZgorCisK KyNpZm5kZWYgTkdYX1NUUkVBTV9TU0wKKyNkZWZpbmUgTkdYX1NUUkVBTV9TU0wgIDEKKyNlbmRp ZgorCisKKyNpZm5kZWYgTkdYX1NUUkVBTV9VUFNUUkVBTV9aT05FCisjZGVmaW5lIE5HWF9TVFJF QU1fVVBTVFJFQU1fWk9ORSAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfQ09NUEFUCisjZGVm aW5lIE5HWF9DT01QQVQgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hUVFBfR1pJUAorI2Rl ZmluZSBOR1hfSFRUUF9HWklQICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IVFRQX0RBVgor I2RlZmluZSBOR1hfSFRUUF9EQVYgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0hUVFBfUkVB TElQCisjZGVmaW5lIE5HWF9IVFRQX1JFQUxJUCAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hf SFRUUF9YX0ZPUldBUkRFRF9GT1IKKyNkZWZpbmUgTkdYX0hUVFBfWF9GT1JXQVJERURfRk9SICAx CisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9IVFRQX0hFQURFUlMKKyNkZWZpbmUgTkdYX0hUVFBf SEVBREVSUyAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9VUFNUUkVBTV9aT05FCisj ZGVmaW5lIE5HWF9IVFRQX1VQU1RSRUFNX1pPTkUgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdY X1NUUkVBTV9VUFNUUkVBTV9aT05FCisjZGVmaW5lIE5HWF9TVFJFQU1fVVBTVFJFQU1fWk9ORSAg MQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfUENSRTIKKyNkZWZpbmUgTkdYX1BDUkUyICAxCisj ZW5kaWYKKworCisjaWZuZGVmIE5HWF9QQ1JFCisjZGVmaW5lIE5HWF9QQ1JFICAxCisjZW5kaWYK KworCisjaWZuZGVmIE5HWF9PUEVOU1NMCisjZGVmaW5lIE5HWF9PUEVOU1NMICAxCisjZW5kaWYK KworCisjaWZuZGVmIE5HWF9TU0wKKyNkZWZpbmUgTkdYX1NTTCAgMQorI2VuZGlmCisKKworI2lm bmRlZiBOR1hfWkxJQgorI2RlZmluZSBOR1hfWkxJQiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBO R1hfSEFWRV9FWFNMVAorI2RlZmluZSBOR1hfSEFWRV9FWFNMVCAgMQorI2VuZGlmCisKKworI2lm bmRlZiBOR1hfSEFWRV9QRVJMX01VTFRJUExJQ0lUWQorI2RlZmluZSBOR1hfSEFWRV9QRVJMX01V TFRJUExJQ0lUWSAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSEFWRV9HRU9JUF9WNgorI2Rl ZmluZSBOR1hfSEFWRV9HRU9JUF9WNiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfUFJFRklY CisjZGVmaW5lIE5HWF9QUkVGSVggICIvZXRjL25naW54LyIKKyNlbmRpZgorCisKKyNpZm5kZWYg TkdYX0NPTkZfUFJFRklYCisjZGVmaW5lIE5HWF9DT05GX1BSRUZJWCAgIi9ldGMvbmdpbngvIgor I2VuZGlmCisKKworI2lmbmRlZiBOR1hfU0JJTl9QQVRICisjZGVmaW5lIE5HWF9TQklOX1BBVEgg ICIvdXNyL2Jpbi9uZ2lueCIKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX0NPTkZfUEFUSAorI2Rl ZmluZSBOR1hfQ09ORl9QQVRIICAiL2V0Yy9uZ2lueC9uZ2lueC5jb25mIgorI2VuZGlmCisKKwor I2lmbmRlZiBOR1hfUElEX1BBVEgKKyNkZWZpbmUgTkdYX1BJRF9QQVRIICAiL3J1bi9uZ2lueC5w aWQiCisjZW5kaWYKKworCisjaWZuZGVmIE5HWF9MT0NLX1BBVEgKKyNkZWZpbmUgTkdYX0xPQ0tf UEFUSCAgIi92YXIvbG9jay9uZ2lueC5sb2NrIgorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfRVJS T1JfTE9HX1BBVEgKKyNkZWZpbmUgTkdYX0VSUk9SX0xPR19QQVRIICAiL3Zhci9sb2cvbmdpbngv ZXJyb3IubG9nIgorI2VuZGlmCisKKworI2lmbmRlZiBOR1hfSFRUUF9MT0dfUEFUSAorI2RlZmlu ZSBOR1hfSFRUUF9MT0dfUEFUSCAgIi92YXIvbG9nL25naW54L2FjY2Vzcy5sb2ciCisjZW5kaWYK KworCisjaWZuZGVmIE5HWF9IVFRQX0NMSUVOVF9URU1QX1BBVEgKKyNkZWZpbmUgTkdYX0hUVFBf Q0xJRU5UX1RFTVBfUEFUSCAgIi92YXIvbGliL25naW54L3RtcC9jbGllbnQtYm9keSIKKyNlbmRp ZgorCisKKyNpZm5kZWYgTkdYX0hUVFBfUFJPWFlfVEVNUF9QQVRICisjZGVmaW5lIE5HWF9IVFRQ X1BST1hZX1RFTVBfUEFUSCAgIi92YXIvbGliL25naW54L3RtcC9wcm94eSIKKyNlbmRpZgorCisK KyNpZm5kZWYgTkdYX0hUVFBfRkFTVENHSV9URU1QX1BBVEgKKyNkZWZpbmUgTkdYX0hUVFBfRkFT VENHSV9URU1QX1BBVEggICIvdmFyL2xpYi9uZ2lueC90bXAvZmFzdGNnaSIKKyNlbmRpZgorCisK KyNpZm5kZWYgTkdYX0hUVFBfVVdTR0lfVEVNUF9QQVRICisjZGVmaW5lIE5HWF9IVFRQX1VXU0dJ X1RFTVBfUEFUSCAgIi92YXIvbGliL25naW54L3RtcC91d3NnaSIKKyNlbmRpZgorCisKKyNpZm5k ZWYgTkdYX0hUVFBfU0NHSV9URU1QX1BBVEgKKyNkZWZpbmUgTkdYX0hUVFBfU0NHSV9URU1QX1BB VEggICIvdmFyL2xpYi9uZ2lueC90bXAvc2NnaSIKKyNlbmRpZgorCisKKyNpZm5kZWYgTkdYX1NV UFBSRVNTX1dBUk4KKyNkZWZpbmUgTkdYX1NVUFBSRVNTX1dBUk4gIDEKKyNlbmRpZgorCisKKyNp Zm5kZWYgTkdYX1NNUAorI2RlZmluZSBOR1hfU01QICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5H WF9VU0VSCisjZGVmaW5lIE5HWF9VU0VSICAibmdpbngiCisjZW5kaWYKKworCisjaWZuZGVmIE5H WF9HUk9VUAorI2RlZmluZSBOR1hfR1JPVVAgICJuZ2lueCIKKyNlbmRpZgorCmRpZmYgLS1naXQg YS9zcmNwa2dzL25naW54L2ZpbGVzL25qc19hdXRvX2NvbmZpZy5oLnJpc2N2NjQgYi9zcmNwa2dz L25naW54L2ZpbGVzL25qc19hdXRvX2NvbmZpZy5oLnJpc2N2NjQKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNjQ2MGQwMGJlM2IyMgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbmdpbngvZmlsZXMvbmpzX2F1dG9fY29uZmlnLmgucmlzY3Y2NApAQCAtMCwwICsx LDE2MyBAQAorCisvKiBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgY29uZmlndXJlICov CisKKworI2lmbmRlZiBOSlNfTElOVVgKKyNkZWZpbmUgTkpTX0xJTlVYICAxCisjZW5kaWYKKwor CisjaWZuZGVmIE5KU19HQ0MKKyNkZWZpbmUgTkpTX0dDQyAgMQorI2VuZGlmCisKKworI2lmbmRl ZiBOSlNfVEVTVDI2MgorI2RlZmluZSBOSlNfVEVTVDI2MiAgMQorI2VuZGlmCisKKworI2lmbmRl ZiBOSlNfSU5UX1NJWkUKKyNkZWZpbmUgTkpTX0lOVF9TSVpFICA0CisjZW5kaWYKKworCisjaWZu ZGVmIE5KU19VSU5UX1NJWkUKKyNkZWZpbmUgTkpTX1VJTlRfU0laRSAgNAorI2VuZGlmCisKKwor I2lmbmRlZiBOSlNfUFRSX1NJWkUKKyNkZWZpbmUgTkpTX1BUUl9TSVpFICA4CisjZW5kaWYKKwor CisjaWZuZGVmIE5KU19VSU5UUFRSX1RfU0laRQorI2RlZmluZSBOSlNfVUlOVFBUUl9UX1NJWkUg IDgKKyNlbmRpZgorCisKKyNpZm5kZWYgTkpTX1NJWkVfVF9TSVpFCisjZGVmaW5lIE5KU19TSVpF X1RfU0laRSAgOAorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfT0ZGX1RfU0laRQorI2RlZmluZSBO SlNfT0ZGX1RfU0laRSAgOAorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfVElNRV9UX1NJWkUKKyNk ZWZpbmUgTkpTX1RJTUVfVF9TSVpFICA4CisjZW5kaWYKKworCisjaWZuZGVmIE5KU19CWVRFX09S REVSCisjZGVmaW5lIE5KU19CWVRFX09SREVSICBsaXR0bGUKKyNlbmRpZgorCisKKyNpZm5kZWYg TkpTX0hBVkVfTElUVExFX0VORElBTgorI2RlZmluZSBOSlNfSEFWRV9MSVRUTEVfRU5ESUFOICAx CisjZW5kaWYKKworCisjaWZuZGVmIE5KU19IQVZFX1VOU0lHTkVEX0lOVDEyOAorI2RlZmluZSBO SlNfSEFWRV9VTlNJR05FRF9JTlQxMjggIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkpTX0hBVkVf QlVJTFRJTl9FWFBFQ1QKKyNkZWZpbmUgTkpTX0hBVkVfQlVJTFRJTl9FWFBFQ1QgIDEKKyNlbmRp ZgorCisKKyNpZm5kZWYgTkpTX0hBVkVfQlVJTFRJTl9VTlJFQUNIQUJMRQorI2RlZmluZSBOSlNf SEFWRV9CVUlMVElOX1VOUkVBQ0hBQkxFICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5KU19IQVZF X0JVSUxUSU5fUFJFRkVUQ0gKKyNkZWZpbmUgTkpTX0hBVkVfQlVJTFRJTl9QUkVGRVRDSCAgMQor I2VuZGlmCisKKworI2lmbmRlZiBOSlNfSEFWRV9CVUlMVElOX0NMWgorI2RlZmluZSBOSlNfSEFW RV9CVUlMVElOX0NMWiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfSEFWRV9CVUlMVElOX0NM WkxMCisjZGVmaW5lIE5KU19IQVZFX0JVSUxUSU5fQ0xaTEwgIDEKKyNlbmRpZgorCisKKyNpZm5k ZWYgTkpTX0hBVkVfR0NDX0FUVFJJQlVURV9WSVNJQklMSVRZCisjZGVmaW5lIE5KU19IQVZFX0dD Q19BVFRSSUJVVEVfVklTSUJJTElUWSAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfSEFWRV9H Q0NfQVRUUklCVVRFX01BTExPQworI2RlZmluZSBOSlNfSEFWRV9HQ0NfQVRUUklCVVRFX01BTExP QyAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfSEFWRV9HQ0NfQVRUUklCVVRFX0FMSUdORUQK KyNkZWZpbmUgTkpTX0hBVkVfR0NDX0FUVFJJQlVURV9BTElHTkVEICAxCisjZW5kaWYKKworCisj aWZuZGVmIE5KU19IQVZFX0dDQ19BVFRSSUJVVEVfUEFDS0VECisjZGVmaW5lIE5KU19IQVZFX0dD Q19BVFRSSUJVVEVfUEFDS0VEICAxCisjZW5kaWYKKworCisjaWZuZGVmIE5KU19IQVZFX0NMT0NL X01PTk9UT05JQworI2RlZmluZSBOSlNfSEFWRV9DTE9DS19NT05PVE9OSUMgIDEKKyNlbmRpZgor CisKKyNpZm5kZWYgTkpTX0hBVkVfVE1fR01UT0ZGCisjZGVmaW5lIE5KU19IQVZFX1RNX0dNVE9G RiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfSEFWRV9QT1NJWF9NRU1BTElHTgorI2RlZmlu ZSBOSlNfSEFWRV9QT1NJWF9NRU1BTElHTiAgMQorI2VuZGlmCisKKworI2lmbmRlZiBOSlNfSEFW RV9HRVRSQU5ET00KKyNkZWZpbmUgTkpTX0hBVkVfR0VUUkFORE9NICAxCisjZW5kaWYKKworCisj aWZuZGVmIE5KU19IQVZFX1NUQVRfQVRJTQorI2RlZmluZSBOSlNfSEFWRV9TVEFUX0FUSU0gIDEK KyNlbmRpZgorCisKKyNpZm5kZWYgTkpTX0hBVkVfRVhQTElDSVRfQlpFUk8KKyNkZWZpbmUgTkpT X0hBVkVfRVhQTElDSVRfQlpFUk8gIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkpTX0hBVkVfUENS RTIKKyNkZWZpbmUgTkpTX0hBVkVfUENSRTIgIDEKKyNlbmRpZgorCisKKyNpZm5kZWYgTkpTX1BD UkUyX1ZFUlNJT04KKyNkZWZpbmUgTkpTX1BDUkUyX1ZFUlNJT04gIDEwLjM5CisjZW5kaWYKKwor CisjaWZuZGVmIE5KU19IQVZFX09QRU5TU0wKKyNkZWZpbmUgTkpTX0hBVkVfT1BFTlNTTCAgMQor I2VuZGlmCisKKworI2lmbmRlZiBOSlNfT1BFTlNTTF9WRVJTSU9OCisjZGVmaW5lIE5KU19PUEVO U1NMX1ZFUlNJT04gICJPcGVuU1NMIDEuMS4xcyAgMSBOb3YgMjAyMiIKKyNlbmRpZgorCmRpZmYg LS1naXQgYS9zcmNwa2dzL25naW54L3RlbXBsYXRlIGIvc3JjcGtncy9uZ2lueC90ZW1wbGF0ZQpp bmRleCAxNzRiNTc2MjM2MDNmLi5iYTFhMjM3YTM0YjRiIDEwMDY0NAotLS0gYS9zcmNwa2dzL25n aW54L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbmdpbngvdGVtcGxhdGUKQEAgLTEyNiw2ICsxMjYs MTAgQEAgcHJlX2J1aWxkKCkgewogCQkJY3AgIiR7RklMRVNESVJ9L25neF9hdXRvX2NvbmZpZy5o LmFhcmNoNjQiIG9ianMvbmd4X2F1dG9fY29uZmlnLmgKIAkJCWNwICIke0ZJTEVTRElSfS9uanNf YXV0b19jb25maWcuaC5hYXJjaDY0IiAuLi9uanMtJHtfbmpzX3ZlcnNpb259L2J1aWxkL25qc19h dXRvX2NvbmZpZy5oCiAJCQk7OworCQlyaXNjdjY0KikKKwkJCWNwICIke0ZJTEVTRElSfS9uZ3hf YXV0b19jb25maWcuaC5yaXNjdjY0IiBvYmpzL25neF9hdXRvX2NvbmZpZy5oCisJCQljcCAiJHtG SUxFU0RJUn0vbmpzX2F1dG9fY29uZmlnLmgucmlzY3Y2NCIgLi4vbmpzLSR7X25qc192ZXJzaW9u fS9idWlsZC9uanNfYXV0b19jb25maWcuaAorCQkJOzsKIAkJZXNhYwogCiAJCXNlZCAtaSAiczot SS91c3I6LUkke1hCUFNfQ1JPU1NfQkFTRX0vdXNyOiIgb2Jqcy9NYWtlZmlsZQoKRnJvbSA3ZDNl ZjVmYmQxMzliMzVkMTkyNGI0NGFlNDIxNGY5YTFiMzhmMzBkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMTUgSmFuIDIw MjMgMTM6NTY6NDkgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2Ni8xODldIGJvb3N0OiBhZGQgcmlz Y3Y2NCBzdXBwb3J0CgotLS0KIHNyY3BrZ3MvYm9vc3QvdGVtcGxhdGUgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYm9vc3QvdGVtcGxh dGUgYi9zcmNwa2dzL2Jvb3N0L3RlbXBsYXRlCmluZGV4IDFmNmFiZDRmY2FiMTkuLmI4NmNlOTUx NTYwNzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYm9vc3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9i b29zdC90ZW1wbGF0ZQpAQCAtODYsNiArODYsNyBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KIAlhYXJjaDY0KikgX2FyY2g9YXJtOyAgICAgIF9hYmk9YWFwY3MgOzsKIAltaXBzKikg ICAgX2FyY2g9bWlwczMycjI7IF9hYmk9bzMyICAgOzsKIAlwcGMqKSAgICAgX2FyY2g9cG93ZXI7 ICAgIF9hYmk9c3lzdiAgOzsKKwlyaXNjdjY0KikgX2FyY2g9cmlzY3Y7ICAgIF9hYmk9c3lzdiAg OzsKIGVzYWMKIAogZG9fYnVpbGQoKSB7CgpGcm9tIDNmOWIwMTk5YjliMTU3ZDdjYjJlMTA3NjVh MjkzNzM3YjE4ZThiNGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAxNSBKYW4gMjAyMyAxNDowMToxMSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDY3LzE4OV0gTHVhSklUOiBtYXJrIGFzIHVuc3VwcG9ydGVkIG9uIHJpc2N2 NjQKCi0tLQogc3JjcGtncy9MdWFKSVQvdGVtcGxhdGUgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvTHVhSklUL3RlbXBsYXRlIGIvc3Jj cGtncy9MdWFKSVQvdGVtcGxhdGUKaW5kZXggODU0NDlhYzNkNmY3My4uMTU2NDRkZGZhNmZmMCAx MDA2NDQKLS0tIGEvc3JjcGtncy9MdWFKSVQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9MdWFKSVQv dGVtcGxhdGUKQEAgLTQsNiArNCw3IEBAIHZlcnNpb249Mi4xLjBiZXRhMwogcmV2aXNpb249Mgog X3NvX3ZlcnNpb249Mi4xLjAKIF9kaXN0X3ZlcnNpb249JHtfc29fdmVyc2lvbn0tYmV0YTMKK2Fy Y2hzPSJ+cmlzY3Y2NCoiCiBob3N0bWFrZWRlcGVuZHM9Imx1YTUyLUJpdE9wIgogc2hvcnRfZGVz Yz0iSnVzdC1Jbi1UaW1lIENvbXBpbGVyIGZvciBMdWEiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8 b3JwaGFuQHZvaWRsaW51eC5vcmc+IgoKRnJvbSA4MmFjYWI4YzdjNjNiNTViZjExYTdkNWEyNDNk MGY5MTBhNDNkZTAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hu bnluYXRvci5kZXY+CkRhdGU6IFN1biwgMTUgSmFuIDIwMjMgMTY6MjA6MzkgKzAxMDAKU3ViamVj dDogW1BBVENIIDA2OC8xODldIGxpYmNlYzogYWRkIHBhdGNoIHRvIHNraXAgcHRyIC0+IGJvb2wg Y29udmVyc2lvbgoKLS0tCiBzcmNwa2dzL2xpYmNlYy9wYXRjaGVzL2Jvb2wucGF0Y2ggfCAyMCAr KysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYmNlYy9wYXRjaGVzL2Jvb2wucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYmNlYy9wYXRjaGVzL2Jvb2wucGF0Y2ggYi9zcmNwa2dzL2xpYmNl Yy9wYXRjaGVzL2Jvb2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uZDU3NzE0YTE1OTRlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGliY2VjL3Bh dGNoZXMvYm9vbC5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9pbmNsdWRlL2NlY2xvYWRl ci5oCTIwMjAtMDctMTMgMTI6MTg6MzMuMDAwMDAwMDAwICswMjAwCisrKysgLQkyMDIzLTAxLTE1 IDE2OjE5OjQzLjc1ODM5MTU2NSArMDEwMAorQEAgLTE3Miw3ICsxNzIsNyBAQAorICAgICBpZiAo IWdfbGliQ0VDKQorICAgICB7CisgICAgICAgc3RkOjpjb3V0IDw8IGRsZXJyb3IoKSA8PCBzdGQ6 OmVuZGw7CistICAgICAgcmV0dXJuIE5VTEw7CisrICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9 CisgICB9CisgCitAQCAtMTgxLDcgKzE4MSw3IEBACisgICBpZiAoIUxpYkNlY0Jvb3Rsb2FkZXIp CisgICB7CisgICAgIHN0ZDo6Y291dCA8PCAiY2Fubm90IGZpbmQgQ0VDU3RhcnRCb290bG9hZGVy IiA8PCBzdGQ6OmVuZGw7CistICAgIHJldHVybiBOVUxMOworKyAgICByZXR1cm4gZmFsc2U7Cisg ICB9CisgCisgICBib29sIGJSZXR1cm4gPSBMaWJDZWNCb290bG9hZGVyKCk7CgpGcm9tIDZlOWEw MjIxZTJjNWYxNGJiZTZmZjI1MzU1YzJkZDc1NzI3N2Q5OTcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAxNSBKYW4gMjAy MyAxNjoyMjowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDY5LzE4OV0ga29kaTogZW5hYmxlIG9u IHJpc2N2NjQKCi0tLQogc3JjcGtncy9rb2RpL3RlbXBsYXRlIHwgMyArLS0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2tvZGkvdGVtcGxhdGUgYi9zcmNwa2dzL2tvZGkvdGVtcGxhdGUKaW5kZXggYmQ1NDMzOTY5ZGI2 NC4uN2VmYjM1YzVhZTFiMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9rb2RpL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3Mva29kaS90ZW1wbGF0ZQpAQCAtMzksOCArMzksNyBAQCBpZiBbICIkWEJQU19XT1JE U0laRSIgPSAzMiBdOyB0aGVuCiBmaQogCiBsaWIzMmRpc2FibGVkPXllcwotYXJjaHM9Imk2ODYq IHg4Nl82NCogYWFyY2g2NCoKLSBwcGM2NCogYXJtdjZsKiBhcm12N2wqIgorYXJjaHM9Imk2ODYq IHg4Nl82NCogYWFyY2g2NCogcHBjNjQqIGFybXY2bCogYXJtdjdsKiByaXNjdjY0KiIKIAogaG9z dG1ha2VkZXBlbmRzPSIKICBhdXRvbWFrZSBsaWJ0b29sIHBrZy1jb25maWcgZ3BlcmYgY21ha2Ug Z2V0dGV4dCB6aXAgdW56aXAgbmFzbSB5YXNtIHB5dGhvbjMtZGV2ZWwKCkZyb20gZTJlMGE5MjU3 MTllOGExOGU3MGIxZDFlNGNmNzgxZWQ1OTEyYTU2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBNb24sIDE2IEphbiAyMDIzIDIy OjA1OjUxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzAvMTg5XSBuc3M6IGFkZCByaXNjdjY0IGFy Y2gKCi0tLQogc3JjcGtncy9uc3MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25zcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvbnNzL3RlbXBsYXRlCmluZGV4IDdmNWVhZThmZDNkOTYuLjQyYzlkOWM4 MjkwOGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbnNzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbnNz L3RlbXBsYXRlCkBAIC00OSw3ICs0OSw3IEBAIGRvX2J1aWxkKCkgewogCWZpCiAKIAljYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJYWFyY2g2NCp8cHBjKnx4ODZfNjQqfGk/ODYqKQor CQlhYXJjaDY0KnxwcGMqfHg4Nl82NCp8aT84Nip8cmlzY3Y2NCopCiAJCQlfQVJDSD0iJHtYQlBT X1RBUkdFVF9NQUNISU5FJS0qfSIKIAkJCTs7CiAJCWFybSopIF9BUkNIPSJhcm0iOzsKCkZyb20g NjM4ZmI4OWZiY2Q0NDRmNThjM2NjMTljNmEwYzBkNGQwYmU0MmM2YiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBNb24sIDE2IEph biAyMDIzIDIyOjA1OjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzEvMTg5XSBsaWJ1bndpbmQ6 IHVwZGF0ZSB0byAxLjYuMi4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgfCAxICsK IHNyY3BrZ3MvbGlidW53aW5kL3RlbXBsYXRlIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDMzOGU1ZjEzMjUwM2MuLjhjOGU0YzU4ZTc1YTQgMTAw NjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMTM1OCw2ICsx MzU4LDcgQEAgbGlidW53aW5kLWFhcmNoNjQuc28uOCBsaWJ1bndpbmQtMS41LjBfMwogbGlidW53 aW5kLXBwYzMyLnNvLjggbGlidW53aW5kLTEuNS4wXzMKIGxpYnVud2luZC1wcGM2NC5zby44IGxp YnVud2luZC0xLjUuMF8zCiBsaWJ1bndpbmQtc2V0am1wLnNvLjAgbGlidW53aW5kLTEuNS4wXzMK K2xpYnVud2luZC1yaXNjdi5zby44IGxpYnVud2luZC0xLjYuMl8xCiBsaWJtaWNyb2h0dHBkLnNv LjEyIGxpYm1pY3JvaHR0cGQtMC45LjczXzEKIGxpYm1pY3JvZG5zLnNvLjEgbGlibWljcm9kbnMt MC4yLjBfMQogbGliZ2l0Mi5zby4xLjYgbGliZ2l0Mi0xLjYuNF8xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpYnVud2luZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlidW53aW5kL3RlbXBsYXRlCmluZGV4 IGQ0ODE5Y2U1NGFjZDAuLmQ2YzNiNzM5ZjdjNjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlidW53 aW5kL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlidW53aW5kL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlidW53aW5kJwogcGtnbmFtZT1saWJ1bndpbmQK LXZlcnNpb249MS41LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249MS42LjIKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0ibGlidG9vbCBhdXRvbWFr ZSIKIG1ha2VkZXBlbmRzPSJsaWJsem1hLWRldmVsIgpAQCAtMTAsNyArMTAsNyBAQCBtYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3Lm5vbmdudS5vcmcvbGlidW53aW5kLyIKIGRpc3RmaWxlcz0iJHtO T05HTlVfU0lURX0vJHtwa2duYW1lfS8ke3BrZ25hbWV9LSR7dmVyc2lvbi9yYy8tcmN9LnRhci5n eiIKLWNoZWNrc3VtPTkwMzM3NjUzZDkyZDRhMTNkZTU5MDc4MTM3MWM2MDRmOTAzMWNkYjUwNTIw MzY2YWExZTNhOTFlMWVmYjEwMTcKK2NoZWNrc3VtPTRhNmFlYzY2Njk5MWZiNDVkMDg4OWM0NGFl ZGU4YWQ2ZWIxMDgwNzFjMzU1NGZjZGZmNjcxZjljOTQ3OTQ5NzYKIAogQ0ZMQUdTPSItZmNvbW1v biIKIAoKRnJvbSBlNzk2ZmUzNDUxNzg3NTc5MDZjNTEyNTZkMTc2MWZiZmNmMWYyMDVlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6 IFR1ZSwgMTcgSmFuIDIwMjMgMDA6MDM6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3Mi8xODld IGNocm9taXVtOiBwcmVwYXJlIHNvbWUgcmlzY3Y2NCB0aGluZ3MKCi0tLQogc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL3Jpc2N2LWFuZ2xlLnBhdGNoICAgIHwgICAyNyArCiAuLi4vY2hyb21pdW0v cGF0Y2hlcy9yaXNjdi1icmVha3BhZC5wYXRjaC5vbGQgfCAgNTY5ICsrKysrCiBzcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvcmlzY3YtY3Jhc2hwYWQucGF0Y2ggfCAgNzc3ICsrKysrKysKIHNyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNjdi1kYXYxZC5wYXRjaCAgICB8ICAgNDMgKwogLi4uL2No cm9taXVtL3BhdGNoZXMvcmlzY3Ytc2FuZGJveC5wYXRjaC5vbGQgIHwgMTk0MiArKysrKysrKysr KysrKysrKwogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LXY4LnBhdGNoLm9sZCAgIHwg IDE3NiArKwogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LnBhdGNoLm9sZCAgICAgIHwg IDExOCArCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAg ICA0ICstCiA4IGZpbGVzIGNoYW5nZWQsIDM2NTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNjdi1hbmds ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNj di1icmVha3BhZC5wYXRjaC5vbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvcmlzY3YtY3Jhc2hwYWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvcmlzY3YtZGF2MWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmlzY3Ytc2FuZGJveC5wYXRjaC5vbGQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmlzY3YtdjgucGF0Y2gub2xkCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LnBhdGNoLm9s ZAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNjdi1hbmdsZS5wYXRj aCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNjdi1hbmdsZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5hMjViZjBkM2YzMjYyCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LWFuZ2xlLnBhdGNoCkBAIC0w LDAgKzEsMjcgQEAKK0luZGV4OiBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5L2Fu Z2xlL2duaS9hbmdsZS5nbmkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMuMC41MDYwLjUz Lm9yaWcvdGhpcmRfcGFydHkvYW5nbGUvZ25pL2FuZ2xlLmduaQorKysrIGNocm9taXVtLTEwMy4w LjUwNjAuNTMvdGhpcmRfcGFydHkvYW5nbGUvZ25pL2FuZ2xlLmduaQorQEAgLTc3LDcgKzc3LDgg QEAgZGVjbGFyZV9hcmdzKCkgeworIAorICAgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIgfHwg Y3VycmVudF9jcHUgPT0gIng2NCIgfHwKKyAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwi IHx8IGN1cnJlbnRfY3B1ID09ICJzMzkweCIgfHwKKy0gICAgICBjdXJyZW50X2NwdSA9PSAicHBj NjQiIHx8IGN1cnJlbnRfY3B1ID09ICJsb29uZzY0IikgeworKyAgICAgIGN1cnJlbnRfY3B1ID09 ICJwcGM2NCIgfHwgY3VycmVudF9jcHUgPT0gImxvb25nNjQiIHx8CisrICAgICAgY3VycmVudF9j cHUgPT0gInJpc2N2NjQiKSB7CisgICAgIGFuZ2xlXzY0Yml0X2N1cnJlbnRfY3B1ID0gdHJ1ZQor ICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAieDg2 IiB8fAorICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2Nw dSA9PSAiczM5MCIgfHwKK0luZGV4OiBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5 L2FuZ2xlL3NyYy9jb21tb24vcGxhdGZvcm0uaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEw My4wLjUwNjAuNTMub3JpZy90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tbW9uL3BsYXRmb3JtLmgK KysrKyBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21tb24v cGxhdGZvcm0uaAorQEAgLTEwMiw3ICsxMDIsNyBAQAorICNlbmRpZgorIAorIC8vIE1pcHMgYW5k IGFybSBkZXZpY2VzIG5lZWQgdG8gaW5jbHVkZSBzdGRkZWYgZm9yIHNpemVfdC4KKy0jaWYgZGVm aW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9f KQorKyNpZiBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAjICAgIGluY2x1ZGUgPHN0ZGRlZi5o PgorICNlbmRpZgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2 LWJyZWFrcGFkLnBhdGNoLm9sZCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNjdi1icmVh a3BhZC5wYXRjaC5vbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u Njc0OGJjMWQ1NjFlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9yaXNjdi1icmVha3BhZC5wYXRjaC5vbGQKQEAgLTAsMCArMSw1NjkgQEAKK0luZGV4OiBjaHJv bWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2Nw dS5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUu aAorQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk0gUmF3Q29udGV4dENQ VTsKKyB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBSYXdDb250ZXh0Q1BVOworICNlbGlm IGRlZmluZWQoX19taXBzX18pCisgdHlwZWRlZiBNRFJhd0NvbnRleHRNSVBTIFJhd0NvbnRleHRD UFU7CisrI2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorK3R5cGVkZWYgTURSYXdDb250ZXh0UklTQ1Y2 NCBSYXdDb250ZXh0Q1BVOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVu IHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitJbmRleDogY2hyb21pdW0t MTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNo cm9taXVtLTEwMi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYworKysrIGNo cm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKK0BAIC0yNzAsNyAr MjcwLDIzIEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGUKKyAgIG91 dC0+ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4dC5mcGNfZWlyOworICNlbmRpZgorIH0KKy0jZW5k aWYgIC8vIF9fbWlwc19fCisrI2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorKworK3VpbnRwdHJfdCBU aHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7CisrICByZXR1cm4gbWNv bnRleHQuX19ncmVnc1tSRUdfUENdOworK30KKysKKyt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgeworKyAgb3V0LT5jb250ZXh0X2ZsYWdz ID0gTURfQ09OVEVYVF9SSVNDVjY0X0ZVTEw7CisrCisrICBteV9tZW1jcHkgKG91dC0+aXJlZ3Ms IG1jb250ZXh0Ll9fZ3JlZ3MsIE1EX0NPTlRFWFRfUklTQ1Y2NF9HUFJfQ09VTlQgKiA4KTsKKysK KysgIG91dC0+ZmxvYXRfc2F2ZS5mY3NyID0gbWNvbnRleHQuX19mcHJlZ3MuX19kLl9fZmNzcjsK KysgIG15X21lbWNweSgmb3V0LT5mbG9hdF9zYXZlLnJlZ3MsICZtY29udGV4dC5fX2ZwcmVncy5f X2QuX19mLAorKyAgICAgIE1EX0ZMT0FUSU5HU0FWRUFSRUFfUklTQ1Y2NF9GUFJfQ09VTlQgKiA4 KTsKKyt9CisrCisrI2VuZGlmICAvLyBfX3Jpc2N2CisgCisgdm9pZCBUaHJlYWRJbmZvOjpHZXRH ZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7Cisg ICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKK0BAIC0yNzksNiArMjk1LDExIEBAIHZvaWQgVGhy ZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3QKKyAgICAgKmdwX3JlZ3MgPSBtY29udGV4 dC5ncmVnczsKKyAgIGlmIChzaXplKQorICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncmVn cyk7CisrI2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorKyAgaWYgKGdwX3JlZ3MpCisrICAgICpncF9y ZWdzID0gbWNvbnRleHQuX19ncmVnczsKKysgIGlmIChzaXplKQorKyAgICAqc2l6ZSA9IHNpemVv ZihtY29udGV4dC5fX2dyZWdzKTsKKyAjZWxzZQorICAgaWYgKGdwX3JlZ3MpCisgICAgICpncF9y ZWdzID0gJnJlZ3M7CitAQCAtMjk0LDYgKzMxNSwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEZs b2F0aW5nUG9pbnRSZWdpc3RlCisgICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwcmVnczsKKyAg IGlmIChzaXplKQorICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcHJlZ3MpOworKyNlbGlm IGRlZmluZWQoX19yaXNjdikKKysgIGlmIChmcF9yZWdzKQorKyAgICAqZnBfcmVncyA9ICZtY29u dGV4dC5fX2ZwcmVnczsKKysgIGlmIChzaXplKQorKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4 dC5fX2ZwcmVncyk7CisgI2Vsc2UKKyAgIGlmIChmcF9yZWdzKQorICAgICAqZnBfcmVncyA9ICZm cHJlZ3M7CitJbmRleDogY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5m by5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3RocmVhZF9pbmZvLmgKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVh ZF9pbmZvLmgKK0BAIC02OCw3ICs2OCw3IEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAgIC8vIFVz ZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNlci5oPgorICAgc3RydWN0IHVzZXJf cmVnc19zdHJ1Y3QgcmVnczsKKyAgIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwor LSNlbGlmIGRlZmluZWQoX19taXBzX18pCisrI2VsaWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVm aW5lZChfX3Jpc2N2KQorICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vj b250ZXh0Lmg+LgorICAgbWNvbnRleHRfdCBtY29udGV4dDsKKyAjZW5kaWYKK0luZGV4OiBjaHJv bWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGNocm9taXVtLTEwMi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFk ZXIuY2MKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRl ci5jYworQEAgLTI1NCw2ICsyNTQsMjcgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNv bnRleHQoUmF3QworICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19tY29udGV4dC5mcGNf ZWlyOyAgLy8gVW51c2VkLgorICNlbmRpZgorIH0KKysKKysjZWxpZiBkZWZpbmVkKF9fcmlzY3Yp CisrCisrdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNv bnRleHRfdCogdWMpIHsKKysgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuX19ncmVnc1tSRUdfU1Bd OworK30KKysKKyt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3RydWN0aW9uUG9pbnRl cihjb25zdCB1Y29udGV4dF90KiB1YykgeworKyAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5fX2dy ZWdzW1JFR19QQ107CisrfQorKworK3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0 KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMpIHsKKysgIG91dC0+Y29u dGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUklTQ1Y2NF9GVUxMOworKworKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBNRF9DT05URVhUX1JJU0NWNjRfR1BSX0NPVU5UOyArK2kpCisrICAgIG91dC0+aXJl Z3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuX19ncmVnc1tpXTsKKysKKysgIG91dC0+ZmxvYXRfc2F2 ZS5mY3NyID0gdWMtPnVjX21jb250ZXh0Ll9fZnByZWdzLl9fZC5fX2Zjc3I7CisrICBmb3IgKGlu dCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUklTQ1Y2NF9GUFJfQ09VTlQ7ICsraSkK KysgICAgb3V0LT5mbG9hdF9zYXZlLnJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuX19mcHJlZ3Mu X19kLl9fZltpXTsKKyt9CisgI2VuZGlmCisgCisgfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVh a3BhZAorSW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxl ci5jYworKysrIGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAt NDYxLDcgKzQ2MSw3IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6SGFuZGxlU2lnbmFsKGludAor ICAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKKyAgICAg ICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7CisgICB9CistI2Vs aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjZWxpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChf X3Jpc2N2KQorICAgLy8gRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkgb24gQVJNIExp bnV4LgorICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkgcGFy dCBvZiB1Y29udGV4dF90CisgICAvLyBhbmQgJ2Zsb2F0X3N0YXRlJyBpcyBub3QgYSBtZW1iZXIg b2YgQ3Jhc2hDb250ZXh0LgorQEAgLTcwMSw3ICs3MDEsNyBAQCBib29sIEV4Y2VwdGlvbkhhbmRs ZXI6OldyaXRlTWluaWR1bXAoKSB7CisgICB9CisgI2VuZGlmCisgCistI2lmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19f KQorKyNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgIC8vIEZQVSBzdGF0 ZSBpcyBub3QgcGFydCBvZiBBUk0gRUFCSSB1Y29udGV4dF90LgorICAgbWVtY3B5KCZjb250ZXh0 LmZsb2F0X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZnByZWdzLAorICAgICAg ICAgIHNpemVvZihjb250ZXh0LmZsb2F0X3N0YXRlKSk7CitAQCAtNzI2LDYgKzcyNiw5IEBAIGJv b2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAjZWxpZiBkZWZpbmVkKF9f bWlwc19fKQorICAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQorICAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7CisrI2VsaWYgZGVm aW5lZChfX3Jpc2N2KQorKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQorKyAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5fX2dyZWdzW1JF R19QQ10pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitJbmRleDogY2hyb21pdW0tMTAyLjAuNTAw NS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEwMi4wLjUw MDUuNjEub3JpZy90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAorKysrIGNocm9taXVtLTEwMi4wLjUwMDUuNjEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmgKK0BAIC0xOTIsNyArMTkyLDcgQEAgY2xhc3MgRXhjZXB0aW9uSGFu ZGxlciB7CisgICAgIHNpZ2luZm9fdCBzaWdpbmZvOworICAgICBwaWRfdCB0aWQ7ICAvLyB0aGUg Y3Jhc2hpbmcgdGhyZWFkLgorICAgICB1Y29udGV4dF90IGNvbnRleHQ7CistI2lmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAg IC8vICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIg QUJJIGZvciBMaW51eCBBUk0uCisgICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0 ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbworICAgICAvLyAnZmxvYXRfc3RhdGUn IGlzIG5vdCByZXF1aXJlZC4KK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9t aWNyb2R1bXBfd3JpdGVyLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42 MS5vcmlnL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlj cm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCisrKysgY2hyb21pdW0tMTAyLjAuNTAw NS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3Jv ZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYworQEAgLTEzOCw3ICsxMzgsNyBAQCBjbGFz cyBNaWNyb2R1bXBXcml0ZXIgeworICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pY3JvZHVtcEV4 dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8sCisgICAgICAgICAgICAgICAgICAgTGludXhE dW1wZXIqIGR1bXBlcikKKyAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNv bnRleHQgOiBOVUxMKSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKKysjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8g JmNvbnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCksCisgI2VuZGlmCisgICAgICAgICBkdW1wZXJf KGR1bXBlciksCitAQCAtMzM3LDYgKzMzNywxMiBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewor ICMgZWxzZQorICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9y dGVkIChuMzIpIgorICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19yaXNjdikKKysjIGlmIF9fcmlz Y3ZfeGxlbiA9PSA2NAorKyAgICBjb25zdCBjaGFyIGtBcmNoW10gPSAicmlzY3Y2NCI7CisrIyBl bHNlCisrIyAgZXJyb3IgIlRoaXMgUklTQy1WIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCIKKysjZW5kaWYKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0 ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCitAQCAtNDA5LDcgKzQxNSw3IEBAIGNs YXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKKyAgICAgUmF3 Q29udGV4dENQVSBjcHU7CisgICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4 dENQVSkpOworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19f KQorKyNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAh ZGVmaW5lZChfX3Jpc2N2KQorICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNw dSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisgICAgIFVDb250ZXh0UmVhZGVy OjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8pOworQEAgLTYwNSw3ICs2MTEsNyBAQCBj bGFzcyBNaWNyb2R1bXBXcml0ZXIgeworICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0ZXMpIHsg cmV0dXJuIGR1bXBlcl8tPmFsbG9jYXRvcigpLT5BbGxvYyhieXRlcyk7IH0KKyAKKyAgIGNvbnN0 IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgIGNvbnN0IGdvb2dsZV9i cmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9zdGF0ZV87CisgI2VuZGlmCisgICBMaW51 eER1bXBlciogZHVtcGVyXzsKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X2NvcmVfZHVtcGVyLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42 MS5vcmlnL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCisrKysgY2hyb21pdW0tMTAyLjAuNTAw NS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYworQEAgLTExMiw2ICsxMTIsOSBAQCBib29s IExpbnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kCisgI2VsaWYgZGVmaW5lZChfX21p cHNfXykKKyAgIHN0YWNrX3BvaW50ZXIgPQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf dCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKKysjZWxp ZiBkZWZpbmVkKF9fcmlzY3YpCisrICBzdGFja19wb2ludGVyID0KKysgICAgICByZWludGVycHJl dF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5fX2dyZWdzW01EX0NPTlRFWFRfUklTQ1Y2 NF9SRUdfU1BdKTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRl ZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitAQCAtMjE4LDYgKzIyMSw4IEBAIGJv b2wgTGludXhDb3JlRHVtcGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkKKyAgICAgICAgIGluZm8ubWNv bnRleHQubWRsbyA9IHN0YXR1cy0+cHJfcmVnW0VGX0xPXTsKKyAgICAgICAgIGluZm8ubWNvbnRl eHQubWRoaSA9IHN0YXR1cy0+cHJfcmVnW0VGX0hJXTsKKyAgICAgICAgIGluZm8ubWNvbnRleHQu cGMgPSBzdGF0dXMtPnByX3JlZ1tFRl9DUDBfRVBDXTsKKysjZWxpZiBkZWZpbmVkKF9fcmlzY3Yp CisrICAgICAgICBtZW1jcHkoaW5mby5tY29udGV4dC5fX2dyZWdzLCBzdGF0dXMtPnByX3JlZywg c2l6ZW9mKGluZm8ubWNvbnRleHQuX19ncmVncykpOworICNlbHNlICAvLyBfX21pcHNfXworICAg ICAgICAgbWVtY3B5KCZpbmZvLnJlZ3MsIHN0YXR1cy0+cHJfcmVnLCBzaXplb2YoaW5mby5yZWdz KSk7CisgI2VuZGlmICAvLyBfX21pcHNfXworSW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDIuMC41MDA1 LjYxLm9yaWcvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYx L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL2xpbnV4X2R1bXBlci5oCitAQCAtNjMsNyArNjMsOCBAQCBuYW1lc3BhY2UgZ29vZ2xl X2JyZWFrcGFkIHsKKyAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJTzMy KQorIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7CisgI2VsaWYgZGVmaW5lZChf X3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgICAgKGRlZmluZWQoX19t aXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQorKyAgICAgKGRlZmluZWQoX19taXBzX18p ICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCisrICAgICAoZGVmaW5lZChfX3Jpc2N2KSAm JiBfX3Jpc2N2X3hsZW4gPT0gNjQpCisgdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRy eTsKKyAjZW5kaWYKKyAKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X3B0cmFjZV9kdW1wZXIuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDIuMC41MDA1LjYx Lm9yaWcvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworKysrIGNocm9taXVtLTEwMi4wLjUw MDUuNjEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworQEAgLTI5OCw2ICsyOTgsOSBAQCBi b29sIExpbnV4UHRyYWNlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJCisgI2VsaWYgZGVmaW5lZChf X21pcHNfXykKKyAgIHN0YWNrX3BvaW50ZXIgPQorICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu dDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKKysj ZWxpZiBkZWZpbmVkKF9fcmlzY3YpCisrICBzdGFja19wb2ludGVyID0KKysgICAgICByZWludGVy cHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5fX2dyZWdzW01EX0NPTlRFWFRfUklT Q1Y2NF9SRUdfU1BdKTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhc24ndCBiZWVuIHBv cnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCisgI2VuZGlmCitJbmRleDogY2hyb21pdW0tMTAy LjAuNTAwNS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJv bWl1bS0xMDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCisrKysgY2hy b21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKK0BAIC0xMzYsNyAr MTM2LDcgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICAgIDogZmRfKG1pbmlkdW1wX2Zk KSwKKyAgICAgICAgIHBhdGhfKG1pbmlkdW1wX3BhdGgpLAorICAgICAgICAgdWNvbnRleHRfKGNv bnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICAgICAgZmxv YXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKKyAjZW5k aWYKKyAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BAIC00NjgsNyArNDY4LDcgQEAgY2xhc3Mg TWluaWR1bXBXcml0ZXIgeworICAgICAgICAgaWYgKCFjcHUuQWxsb2NhdGUoKSkKKyAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgbXlfbWVtc2V0KGNwdS5nZXQoKSwgMCwgc2l6ZW9m KFJhd0NvbnRleHRDUFUpKTsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykKKysjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21p cHNfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxs Q1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKKyAjZWxzZQor ICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRl eHRfKTsKK0BAIC04OTcsNyArODk3LDcgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgICBk aXJlbnQtPmxvY2F0aW9uLnJ2YSA9IDA7CisgICB9CisgCistI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBkZWZpbmVkKF9fcmlzY3YpCisgICBib29sIFdyaXRlQ1BVSW5mb3JtYXRpb24oTURSYXdTeXN0 ZW1JbmZvKiBzeXNfaW5mbykgeworICAgICBjaGFyIHZlbmRvcl9pZFtzaXplb2Yoc3lzX2luZm8t PmNwdS54ODZfY3B1X2luZm8udmVuZG9yX2lkKSArIDFdID0gezB9OworICAgICBzdGF0aWMgY29u c3QgY2hhciB2ZW5kb3JfaWRfbmFtZVtdID0gInZlbmRvcl9pZCI7CitAQCAtOTI1LDYgKzkyNSwx MiBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgIyBlbHNlCisgIyAgZXJyb3IgIlRoaXMgbWlw cyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCisgI2VuZGlmCisrI2VsaWYg ZGVmaW5lZChfX3Jpc2N2KQorKyMgaWYgX19yaXNjdl94bGVuID09IDY0CisrCU1EX0NQVV9BUkNI SVRFQ1RVUkVfUklTQ1Y2NDsKKysjIGVsc2UKKysjICBlcnJvciAiVGhpcyBSSVNDLVYgQUJJIGlz IGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIgorKyMgZW5kaWYKKyAjZWxpZiBkZWZpbmVkKF9faTM4 Nl9fKQorICAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9YODY7CisgI2Vsc2UKK0BAIC0xMzMz LDcgKzEzMzksNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICBjb25zdCBjaGFyKiBwYXRo XzsgIC8vIFBhdGggdG8gdGhlIGZpbGUgd2hlcmUgdGhlIG1pbmlkdW0gc2hvdWxkIGJlIHdyaXR0 ZW4uCisgCisgICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87ICAvLyBhbHNvIGZy b20gdGhlIHNpZ25hbCBoYW5kbGVyCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRl ZmluZWQoX19taXBzX18pCisrI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19taXBzX18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6 OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOyAgLy8gZGl0dG8KKyAjZW5kaWYKKyAgIExp bnV4RHVtcGVyKiBkdW1wZXJfOworSW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bWluaWR1bXBfd3JpdGVyLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDIuMC41MDA1LjYx Lm9yaWcvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYx L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBFeGNlcHRp b25IYW5kbGVyOworIAorICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIHR5cGVkZWYgc3RydWN0 IGZwc2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKKy0jZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18p ICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgdHlwZWRlZiBzdGQ6OnJl bW92ZV9wb2ludGVyPGZwcmVnc2V0X3Q+Ojp0eXBlIGZwc3RhdGVfdDsKKyAjZW5kaWYKKyAKK0lu ZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Y2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4dC5TCisrKysgY2hyb21pdW0tMTAy LjAuNTAwNS42MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4 L2JyZWFrcGFkX2dldGNvbnRleHQuUworQEAgLTUyNyw2ICs1MjcsNjggQEAgYnJlYWtwYWRfZ2V0 Y29udGV4dDoKKyAgIC5jZmlfZW5kcHJvYworICAgLnNpemUgYnJlYWtwYWRfZ2V0Y29udGV4dCwg LiAtIGJyZWFrcGFkX2dldGNvbnRleHQKKyAKKysjZWxpZiBkZWZpbmVkKF9fcmlzY3YpICYmIF9f cmlzY3ZfeGxlbiA9PSA2NAorKworKyNkZWZpbmUgX19OUl9ydF9zaWdwcm9jbWFzayAxMzUKKysj ZGVmaW5lIF9OU0lHOCA2NCAvIDgKKysjZGVmaW5lIFNJR19CTE9DSyAwCisrCisrICAudGV4dAor KyAgLmdsb2JhbCBicmVha3BhZF9nZXRjb250ZXh0CisrICAuaGlkZGVuIGJyZWFrcGFkX2dldGNv bnRleHQKKysgIC50eXBlIGJyZWFrcGFkX2dldGNvbnRleHQsIEBmdW5jdGlvbgorKyAgLmFsaWdu IDIKKyticmVha3BhZF9nZXRjb250ZXh0OgorKyAgc2QgcmEsIE1DT05URVhUX0dSRUdTX09GRlNF VCArIDAqOChhMCkKKysgIHNkIHJhLCBNQ09OVEVYVF9HUkVHU19PRkZTRVQgKyAxKjgoYTApCisr ICBzZCBzcCwgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsgMio4KGEwKQorKyAgc2QgczAsIE1DT05U RVhUX0dSRUdTX09GRlNFVCArIDgqOChhMCkKKysgIHNkIHMxLCBNQ09OVEVYVF9HUkVHU19PRkZT RVQgKyA5KjgoYTApCisrICBzZCB4MCwgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsgMTAqOChhMCkJ LyogcmV0dXJuIDAgYnkgb3ZlcndyaXRpbmcgYTAuICAqLworKyAgc2QgczIsIE1DT05URVhUX0dS RUdTX09GRlNFVCArIDE4KjgoYTApCisrICBzZCBzMywgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsg MTkqOChhMCkKKysgIHNkIHM0LCBNQ09OVEVYVF9HUkVHU19PRkZTRVQgKyAyMCo4KGEwKQorKyAg c2QgczUsIE1DT05URVhUX0dSRUdTX09GRlNFVCArIDIxKjgoYTApCisrICBzZCBzNiwgTUNPTlRF WFRfR1JFR1NfT0ZGU0VUICsgMjIqOChhMCkKKysgIHNkIHM3LCBNQ09OVEVYVF9HUkVHU19PRkZT RVQgKyAyMyo4KGEwKQorKyAgc2QgczgsIE1DT05URVhUX0dSRUdTX09GRlNFVCArIDI0KjgoYTAp CisrICBzZCBzOSwgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsgMjUqOChhMCkKKysgIHNkIHMxMCwg TUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsgMjYqOChhMCkKKysgIHNkIHMxMSwgTUNPTlRFWFRfR1JF R1NfT0ZGU0VUICsgMjcqOChhMCkKKysKKysjaWZuZGVmIF9fcmlzY3ZfZmxvYXRfYWJpX3NvZnQK KysgIGZyc3IJYTEKKysKKysgIGZzZCBmczAsIE1DT05URVhUX0ZQUkVHU19PRkZTRVQgKyA4Kjgo YTApCisrICBmc2QgZnMxLCBNQ09OVEVYVF9GUFJFR1NfT0ZGU0VUICsgOSo4KGEwKQorKyAgZnNk IGZzMiwgTUNPTlRFWFRfRlBSRUdTX09GRlNFVCArIDE4KjgoYTApCisrICBmc2QgZnMzLCBNQ09O VEVYVF9GUFJFR1NfT0ZGU0VUICsgMTkqOChhMCkKKysgIGZzZCBmczQsIE1DT05URVhUX0ZQUkVH U19PRkZTRVQgKyAyMCo4KGEwKQorKyAgZnNkIGZzNSwgTUNPTlRFWFRfRlBSRUdTX09GRlNFVCAr IDIxKjgoYTApCisrICBmc2QgZnM2LCBNQ09OVEVYVF9GUFJFR1NfT0ZGU0VUICsgMjIqOChhMCkK KysgIGZzZCBmczcsIE1DT05URVhUX0ZQUkVHU19PRkZTRVQgKyAyMyo4KGEwKQorKyAgZnNkIGZz OCwgTUNPTlRFWFRfRlBSRUdTX09GRlNFVCArIDI0KjgoYTApCisrICBmc2QgZnM5LCBNQ09OVEVY VF9GUFJFR1NfT0ZGU0VUICsgMjUqOChhMCkKKysgIGZzZCBmczEwLCBNQ09OVEVYVF9GUFJFR1Nf T0ZGU0VUICsgMjYqOChhMCkKKysgIGZzZCBmczExLCBNQ09OVEVYVF9GUFJFR1NfT0ZGU0VUICsg MjcqOChhMCkKKysKKysgIHN3CWExLCBNQ09OVEVYVF9GU1JfT0ZGU0VUKGEwKQorKyNlbmRpZiAv KiBfX3Jpc2N2X2Zsb2F0X2FiaV9zb2Z0ICovCisrCisrLyogcnRfc2lncHJvY21hc2sgKFNJR19C TE9DSywgTlVMTCwgJnVjcC0+dWNfc2lnbWFzaywgX05TSUcgLyA4KSAqLworKyAgbGkJYTMsIF9O U0lHOAorKyAgYWRkCWEyLCBhMCwgVUNPTlRFWFRfU0lHTUFTS19PRkZTRVQKKysgIG12CWExLCB6 ZXJvCisrICBsaQlhMCwgU0lHX0JMT0NLCisrCisrICBsaQlhNywgX19OUl9ydF9zaWdwcm9jbWFz aworKyAgc2NhbGwKKysKKysgIC8qIEFsd2F5cyByZXR1cm4gMCBmb3Igc3VjY2VzcywgZXZlbiBp ZiBzaWdwcm9jbWFzayBmYWlsZWQuICovCisrICBtdglhMCwgemVybworKyAgcmV0CisrICAuc2l6 ZSBicmVha3BhZF9nZXRjb250ZXh0LCAuIC0gYnJlYWtwYWRfZ2V0Y29udGV4dAorKworICNlbHNl CisgI2Vycm9yICJUaGlzIGZpbGUgaGFzIG5vdCBiZWVuIHBvcnRlZCBmb3IgeW91ciBDUFUhIgor ICNlbmRpZgorSW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBjaHJvbWl1bS0xMDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKKysrKyBj aHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j b21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCitAQCAtNjUsNyArNjUsOCBAQCBib29s IE1lbW9yeU1hcHBlZEZpbGU6Ok1hcChjb25zdCBjaGFyKiBwCisgICB9CisgCisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgIChkZWZpbmVk KF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KQorKyAgIChkZWZpbmVkKF9fbWlwc19f KSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KSB8fCBcCisrICAgKGRlZmluZWQoX19yaXNjdikgJiYg X19yaXNjdl94bGVuID09IDY0KQorIAorICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0OworICAgaWYg KHN5c19mc3RhdChmZCwgJnN0KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgeworSW5kZXg6IGNo cm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9saW51eC91Y29udGV4dF9jb25zdGFudHMuaAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVt LTEwMi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L3Vjb250ZXh0X2NvbnN0YW50cy5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42 MS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L3Vjb250ZXh0 X2NvbnN0YW50cy5oCitAQCAtMTQ2LDYgKzE0NiwxNCBAQAorICNlbmRpZgorICNkZWZpbmUgRlBS RUdTX09GRlNFVF9NWENTUiAgMjQKKyAKKysjZWxpZiBkZWZpbmVkKF9fcmlzY3YpCisrCisrI2Rl ZmluZSBVQ09OVEVYVF9TSUdNQVNLX09GRlNFVCAgIDQwCisrCisrI2RlZmluZSBNQ09OVEVYVF9H UkVHU19PRkZTRVQgICAgIDE3NgorKyNkZWZpbmUgTUNPTlRFWFRfRlBSRUdTX09GRlNFVCAgICA0 MzIKKysjZGVmaW5lIE1DT05URVhUX0ZTUl9PRkZTRVQgICAgICAgKE1DT05URVhUX0ZQUkVHU19P RkZTRVQgKyAzMio4KQorKworICNlbHNlCisgI2Vycm9yICJUaGlzIGhlYWRlciBoYXMgbm90IGJl ZW4gcG9ydGVkIGZvciB5b3VyIENQVSIKKyAjZW5kaWYKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41 MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9nb29nbGVfYnJlYWtwYWQv Y29tbW9uL21pbmlkdW1wX2NwdV9yaXNjdjY0LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwK KysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9nb29nbGVfYnJlYWtwYWQvY29tbW9uL21pbmlkdW1wX2NwdV9yaXNjdjY0LmgKK0BAIC0w LDAgKzEsMTIxIEBACisrLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4KKysgKiBBbGwgcmln aHRzIHJlc2VydmVkLgorKyAqCisrICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorKyAq IG1ldDoKKysgKgorKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0 IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKyAqICAgICAqIFJlZGlzdHJp YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKysgKiBjb3B5 cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk aXNjbGFpbWVyCisrICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs cyBwcm92aWRlZCB3aXRoIHRoZQorKyAqIGRpc3RyaWJ1dGlvbi4KKysgKiAgICAgKiBOZWl0aGVy IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisrICogY29udHJp YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk IGZyb20KKysgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw ZXJtaXNzaW9uLgorKyAqCisrICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisrICogTElNSVRF RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F U1MgRk9SCisrICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKysgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKysgKiBTUEVDSUFMLCBF WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisr ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF UzsgTE9TUyBPRiBVU0UsCisrICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisrICogVEhFT1JZIE9GIExJQUJJTElU WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKyAqIChJ TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg T0YgVEhFIFVTRQorKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCisrCisrLyogbWluaWR1bXBfZm9ybWF0Lmg6 IEEgY3Jvc3MtcGxhdGZvcm0gcmVpbXBsZW1lbnRhdGlvbiBvZiBtaW5pZHVtcC1yZWxhdGVkCisr ICogcG9ydGlvbnMgb2YgRGJnSGVscC5oIGZyb20gdGhlIFdpbmRvd3MgUGxhdGZvcm0gU0RLLgor KyAqCisrICogKFRoaXMgaXMgQzk5IHNvdXJjZSwgcGxlYXNlIGRvbid0IGNvcnJ1cHQgaXQgd2l0 aCBDKysuKQorKyAqCisrICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBuZWNlc3NhcnkgZGVmaW5p dGlvbnMgdG8gcmVhZCBtaW5pZHVtcCBmaWxlcworKyAqIHByb2R1Y2VkIG9uIEFSTS4gIFRoZXNl IGZpbGVzIG1heSBiZSByZWFkIG9uIGFueSBwbGF0Zm9ybSBwcm92aWRlZAorKyAqIHRoYXQgdGhl IGFsaWdubWVudHMgb2YgdGhlc2Ugc3RydWN0dXJlcyBvbiB0aGUgcHJvY2Vzc2luZyBzeXN0ZW0g YXJlCisrICogaWRlbnRpY2FsIHRvIHRoZSBhbGlnbm1lbnRzIG9mIHRoZXNlIHN0cnVjdHVyZXMg b24gdGhlIHByb2R1Y2luZyBzeXN0ZW0uCisrICogRm9yIHRoaXMgcmVhc29uLCBwcmVjaXNlLXNp emVkIHR5cGVzIGFyZSB1c2VkLiAgVGhlIHN0cnVjdHVyZXMgZGVmaW5lZAorKyAqIGJ5IHRoaXMg ZmlsZSBoYXZlIGJlZW4gbGFpZCBvdXQgdG8gbWluaW1pemUgYWxpZ25tZW50IHByb2JsZW1zIGJ5 CisrICogZW5zdXJpbmcgdGhhdCBhbGwgbWVtYmVycyBhcmUgYWxpZ25lZCBvbiB0aGVpciBuYXR1 cmFsIGJvdW5kYXJpZXMuCisrICogSW4gc29tZSBjYXNlcywgdGFpbC1wYWRkaW5nIG1heSBiZSBz aWduaWZpY2FudCB3aGVuIGRpZmZlcmVudCBBQklzIHNwZWNpZnkKKysgKiBkaWZmZXJlbnQgdGFp bC1wYWRkaW5nIGJlaGF2aW9ycy4gIFRvIGF2b2lkIHByb2JsZW1zIHdoZW4gcmVhZGluZyBvcgor KyAqIHdyaXRpbmcgYWZmZWN0ZWQgc3RydWN0dXJlcywgTURfKl9TSVpFIG1hY3JvcyBhcmUgcHJv dmlkZWQgd2hlcmUgbmVlZGVkLAorKyAqIGNvbnRhaW5pbmcgdGhlIHVzZWZ1bCBzaXplIG9mIHRo ZSBzdHJ1Y3R1cmVzIHdpdGhvdXQgcGFkZGluZy4KKysgKgorKyAqIFN0cnVjdHVyZXMgdGhhdCBh cmUgZGVmaW5lZCBieSBNaWNyb3NvZnQgdG8gY29udGFpbiBhIHplcm8tbGVuZ3RoIGFycmF5Cisr ICogYXJlIGluc3RlYWQgZGVmaW5lZCBoZXJlIHRvIGNvbnRhaW4gYW4gYXJyYXkgd2l0aCBvbmUg ZWxlbWVudCwgYXMKKysgKiB6ZXJvLWxlbmd0aCBhcnJheXMgYXJlIGZvcmJpZGRlbiBieSBzdGFu ZGFyZCBDIGFuZCBDKysuICBJbiB0aGVzZSBjYXNlcywKKysgKiAqX21pbnNpemUgY29uc3RhbnRz IGFyZSBwcm92aWRlZCB0byBiZSB1c2VkIGluIHBsYWNlIG9mIHNpemVvZi4gIEZvciBhCisrICog Y2xlYW5lciBpbnRlcmZhY2UgdG8gdGhlc2Ugc2l6ZXMgd2hlbiB1c2luZyBDKyssIHNlZSBtaW5p ZHVtcF9zaXplLmguCisrICoKKysgKiBUaGVzZSBzdHJ1Y3R1cmVzIGFyZSBhbHNvIHN1ZmZpY2ll bnQgdG8gcG9wdWxhdGUgbWluaWR1bXAgZmlsZXMuCisrICoKKysgKiBCZWNhdXNlIHByZWNpc2Ug ZGF0YSB0eXBlIHNpemVzIGFyZSBjcnVjaWFsIGZvciB0aGlzIGltcGxlbWVudGF0aW9uIHRvCisr ICogZnVuY3Rpb24gcHJvcGVybHkgYW5kIHBvcnRhYmx5LCBhIHNldCBvZiBwcmltaXRpdmUgdHlw ZXMgd2l0aCBrbm93biBzaXplcworKyAqIGFyZSB1c2VkIGFzIHRoZSBiYXNpcyBvZiBlYWNoIHN0 cnVjdHVyZSBkZWZpbmVkIGJ5IHRoaXMgZmlsZS4KKysgKgorKyAqIEF1dGhvcjogQ29saW4gQmx1 bmRlbGwKKysgKi8KKysKKysvKgorKyAqIFJJU0NWNjQgc3VwcG9ydAorKyAqLworKworKyNpZm5k ZWYgR09PR0xFX0JSRUFLUEFEX0NPTU1PTl9NSU5JRFVNUF9DUFVfUklTQ1Y2NF9IX18KKysjZGVm aW5lIEdPT0dMRV9CUkVBS1BBRF9DT01NT05fTUlOSURVTVBfQ1BVX1JJU0NWNjRfSF9fCisrCisr I2luY2x1ZGUgImdvb2dsZV9icmVha3BhZC9jb21tb24vYnJlYWtwYWRfdHlwZXMuaCIKKysKKysj ZGVmaW5lIE1EX0ZMT0FUSU5HU0FWRUFSRUFfUklTQ1Y2NF9GUFJfQ09VTlQgMzIKKysjZGVmaW5l IE1EX0NPTlRFWFRfUklTQ1Y2NF9HUFJfQ09VTlQgMzIKKysKKyt0eXBlZGVmIHN0cnVjdCB7Cisr ICAvKiAzMiA2NC1iaXQgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLCBmMCAuLiBmMzEuICovCisr ICB1aW50NjRfdCByZWdzW01EX0ZMT0FUSU5HU0FWRUFSRUFfUklTQ1Y2NF9GUFJfQ09VTlRdOwor KworKyAgdWludDMyX3QgZmNzcjsgICAgICAgLyogRlBVIGNvbnRyb2wgYW5kIHN0YXR1cyByZWdp c3RlciAqLworK30gTURGbG9hdGluZ1NhdmVBcmVhUklTQ1Y2NDsKKysKKysvKiBGb3IgKE1EUmF3 Q29udGV4dFJJU0NWNjQpLmNvbnRleHRfZmxhZ3MuICBUaGVzZSB2YWx1ZXMgaW5kaWNhdGUgdGhl IHR5cGUgb2YKKysgKiBjb250ZXh0IHN0b3JlZCBpbiB0aGUgc3RydWN0dXJlLiAqLworKyNkZWZp bmUgTURfQ09OVEVYVF9SSVNDVjY0IDB4MDA0MDAwMDAKKysjZGVmaW5lIE1EX0NPTlRFWFRfUklT Q1Y2NF9DT05UUk9MIChNRF9DT05URVhUX1JJU0NWNjQgfCAweDAwMDAwMDAxKQorKyNkZWZpbmUg TURfQ09OVEVYVF9SSVNDVjY0X0lOVEVHRVIgKE1EX0NPTlRFWFRfUklTQ1Y2NCB8IDB4MDAwMDAw MDIpCisrI2RlZmluZSBNRF9DT05URVhUX1JJU0NWNjRfRkxPQVRJTkdfUE9JTlQgKE1EX0NPTlRF WFRfUklTQ1Y2NCB8IDB4MDAwMDAwMDQpCisrI2RlZmluZSBNRF9DT05URVhUX1JJU0NWNjRfREVC VUcgKE1EX0NPTlRFWFRfUklTQ1Y2NCB8IDB4MDAwMDAwMDgpCisrI2RlZmluZSBNRF9DT05URVhU X1JJU0NWNjRfRlVMTCAoTURfQ09OVEVYVF9SSVNDVjY0X0NPTlRST0wgfCBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1EX0NPTlRFWFRfUklTQ1Y2NF9JTlRFR0VSIHwgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRF9DT05URVhUX1JJU0NWNjRfRkxPQVRJTkdf UE9JTlQpCisrI2RlZmluZSBNRF9DT05URVhUX1JJU0NWNjRfQUxMIChNRF9DT05URVhUX1JJU0NW NjRfRlVMTCB8IE1EX0NPTlRFWFRfUklTQ1Y2NF9ERUJVRykKKysKKyt0eXBlZGVmIHN0cnVjdCB7 CisrICAvKiBEZXRlcm1pbmVzIHdoaWNoIGZpZWxkcyBvZiB0aGlzIHN0cnVjdCBhcmUgcG9wdWxh dGVkICovCisrICB1aW50MzJfdCBjb250ZXh0X2ZsYWdzOworKworKyAgLyogMzIgNjQtYml0IGlu dGVnZXIgcmVnaXN0ZXJzLCB4MSAuLiB4MzEgKyB0aGUgUEMKKysgICAqIE5vdGUgdGhlIGZvbGxv d2luZyBmaXhlZCB1c2VzOgorKyAgICogICB4OCBpcyB0aGUgZnJhbWUgcG9pbnRlcgorKyAgICog ICB4MSBpcyB0aGUgbGluayByZWdpc3RlcgorKyAgICogICB4MiBpcyB0aGUgc3RhY2sgcG9pbnRl cgorKyAgICogICBUaGUgUEMgaXMgZWZmZWN0aXZlbHkgeDAuCisrICAgKi8KKysgIHVpbnQ2NF90 IGlyZWdzW01EX0NPTlRFWFRfUklTQ1Y2NF9HUFJfQ09VTlRdOworKworKyAgLyogVGhlIG5leHQg ZmllbGQgaXMgaW5jbHVkZWQgd2l0aCBNRF9DT05URVhUNjRfQVJNX0ZMT0FUSU5HX1BPSU5UICov CisrICBNREZsb2F0aW5nU2F2ZUFyZWFSSVNDVjY0IGZsb2F0X3NhdmU7CisrCisrfSBNRFJhd0Nv bnRleHRSSVNDVjY0OworKworKy8qIEluZGljZXMgaW50byBpcmVncyBmb3IgcmVnaXN0ZXJzIHdp dGggYSBkZWRpY2F0ZWQgb3IgY29udmVudGlvbmFsCisrICogcHVycG9zZS4KKysgKi8KKytlbnVt IE1EUklTQ1Y2NFJlZ2lzdGVyTnVtYmVycyB7CisrICBNRF9DT05URVhUX1JJU0NWNjRfUkVHX0ZQ ICAgICA9IDgsCisrICBNRF9DT05URVhUX1JJU0NWNjRfUkVHX1JBICAgICA9IDEsCisrICBNRF9D T05URVhUX1JJU0NWNjRfUkVHX1NQICAgICA9IDIsCisrICBNRF9DT05URVhUX1JJU0NWNjRfUkVH X1BDICAgICA9IDAKKyt9OworKworKyNlbmRpZiAgLyogR09PR0xFX0JSRUFLUEFEX0NPTU1PTl9N SU5JRFVNUF9DUFVfUklTQ1Y2NF9IX18gKi8KK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYx L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9nb29nbGVfYnJlYWtwYWQvY29tbW9u L21pbmlkdW1wX2Zvcm1hdC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42 MS5vcmlnL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9nb29nbGVfYnJlYWtwYWQv Y29tbW9uL21pbmlkdW1wX2Zvcm1hdC5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvZ29vZ2xlX2JyZWFrcGFkL2NvbW1vbi9taW5p ZHVtcF9mb3JtYXQuaAorQEAgLTExOCw2ICsxMTgsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CisgI2lu Y2x1ZGUgIm1pbmlkdW1wX2NwdV9taXBzLmgiCisgI2luY2x1ZGUgIm1pbmlkdW1wX2NwdV9wcGMu aCIKKyAjaW5jbHVkZSAibWluaWR1bXBfY3B1X3BwYzY0LmgiCisrI2luY2x1ZGUgIm1pbmlkdW1w X2NwdV9yaXNjdjY0LmgiCisgI2luY2x1ZGUgIm1pbmlkdW1wX2NwdV9zcGFyYy5oIgorICNpbmNs dWRlICJtaW5pZHVtcF9jcHVfeDg2LmgiCisgCitAQCAtNjYwLDYgKzY2MSw3IEBAIHR5cGVkZWYg ZW51bSB7CisgICBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0ICAgICA9IDB4ODAwMiwgLyogQnJl YWtwYWQtZGVmaW5lZCB2YWx1ZSBmb3IgUFBDNjQgKi8KKyAgIE1EX0NQVV9BUkNISVRFQ1RVUkVf QVJNNjRfT0xEID0gMHg4MDAzLCAvKiBCcmVha3BhZC1kZWZpbmVkIHZhbHVlIGZvciBBUk02NCAq LworICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9NSVBTNjQgICAgPSAweDgwMDQsIC8qIEJyZWFrcGFk LWRlZmluZWQgdmFsdWUgZm9yIE1JUFM2NCAqLworKyAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9SSVND VjY0ICAgPSAweDgwMDUsIC8qIEJyZWFrcGFkLWRlZmluZWQgdmFsdWUgZm9yIFJJU0NWNjQgKi8K KyAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfVU5LTk9XTiAgID0gMHhmZmZmICAvKiBQUk9DRVNTT1Jf QVJDSElURUNUVVJFX1VOS05PV04gKi8KKyB9IE1EQ1BVQXJjaGl0ZWN0dXJlOworIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LWNyYXNocGFkLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LWNyYXNocGFkLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmNjMmMzNzc5MWFjZTUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmlzY3YtY3Jhc2hwYWQucGF0Y2gKQEAgLTAs MCArMSw3NzcgQEAKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGNocm9taXVtLTEwMi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1 LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHQuaAorQEAgLTU5Miw2ICs1OTIsNDEgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7 CisgICB1aW50NjRfdCBmaXI7CisgfTsKKyAKKysvLyEgXGJyaWVmIDY0Yml0IFJJU0MtVi1zcGVj aWZjIGZsYWdzIGZvciBNaW5pZHVtcENvbnRleHRSSVNDVjY0Ojpjb250ZXh0X2ZsYWdzLgorKy8v ISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcmlzY3Y2NC5oIGZyb20gYnJlYWtwYWQKKytlbnVtIE1p bmlkdW1wQ29udGV4dFJJU0NWNjRGbGFncyA6IHVpbnQzMl90IHsKKysgIC8vISBcYnJpZWYgSWRl bnRpZmllcyB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgYXMgUklTQ1Y2NC4KKysgIGtNaW5pZHVtcENv bnRleHRSSVNDVjY0ID0gMHgwMDA4MDAwMCwKKysKKysgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRo ZSB2YWxpZGl0eSBvZiBpbnRlZ2VyIHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lzdGVy cyBgeDFgLWB4MzFgIGFuZCBwYyBhcmUgdmFsaWQuCisrICBrTWluaWR1bXBDb250ZXh0UklTQ1Y2 NEludGVnZXIgPSBrTWluaWR1bXBDb250ZXh0UklTQ1Y2NCB8IDB4MDAwMDAwMDIsCisrCisrICAv LyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRpbmcgcG9pbnQgcmVnaXN0 ZXJzLgorKyAgLy8hCisrICAvLyEgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGBmMGAtYGYzMWAs IGFuZCBgZmNzcmAgYXJlIHZhbGlkCisrICBrTWluaWR1bXBDb250ZXh0UklTQ1Y2NEZsb2F0aW5n UG9pbnQgPSBrTWluaWR1bXBDb250ZXh0UklTQ1Y2NCB8IDB4MDAwMDAwMDQsCisrCisrICAvLyEg XGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgYWxsIHJlZ2lzdGVycy4KKysgIGtNaW5p ZHVtcENvbnRleHRSSVNDVjY0QWxsID0ga01pbmlkdW1wQ29udGV4dFJJU0NWNjRJbnRlZ2VyIHwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UklTQ1Y2NEZs b2F0aW5nUG9pbnQsCisrfTsKKysKKysvLyEgXGJyaWVmIEEgNjRiaXQgUklTQ1YgQ1BVIGNvbnRl eHQgKHJlZ2lzdGVyIHN0YXRlKSBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KKytzdHJ1Y3Qg TWluaWR1bXBDb250ZXh0UklTQ1Y2NCB7CisrICB1aW50NjRfdCBjb250ZXh0X2ZsYWdzOworKwor KyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzLgorKyAgdWludDY0X3QgcmVn c1szMl07CisrCisrICAvLyEgXGJyaWVmIEZQVSByZWdpc3RlcnMuCisrICB1aW50NjRfdCBmcHJl Z3NbMzJdOworKworKyAgLy8hIFxicmllZiBGUFUgc3RhdHVzIHJlZ2lzdGVyLgorKyAgdWludDY0 X3QgZmNzcjsKKyt9OworKworIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorIAorICNlbmRpZiAg Ly8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXworSW5kZXg6IGNocm9taXVt LTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXIuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDIuMC41 MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXIuY2MKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNj CitAQCAtMTAyLDYgKzEwMiwxMyBAQCBNaW5pZHVtcENvbnRleHRXcml0ZXI6OkNyZWF0ZUZyb21T bmFwc2hvCisgICAgICAgYnJlYWs7CisgICAgIH0KKyAKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0 dXJlUklTQ1Y2NDogeworKyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE1pbmlkdW1w Q29udGV4dFJJU0NWNjRXcml0ZXI+KCk7CisrICAgICAgcmVpbnRlcnByZXRfY2FzdDxNaW5pZHVt cENvbnRleHRSSVNDVjY0V3JpdGVyKj4oY29udGV4dC5nZXQoKSkKKysgICAgICAgICAgLT5Jbml0 aWFsaXplRnJvbVNuYXBzaG90KGNvbnRleHRfc25hcHNob3QtPnJpc2N2NjQpOworKyAgICAgIGJy ZWFrOworKyAgICB9CisrCisgICAgIGRlZmF1bHQ6IHsKKyAgICAgICBMT0coRVJST1IpIDw8ICJ1 bmtub3duIGNvbnRleHQgYXJjaGl0ZWN0dXJlICIKKyAgICAgICAgICAgICAgICAgIDw8IGNvbnRl eHRfc25hcHNob3QtPmFyY2hpdGVjdHVyZTsKK0BAIC00NTMsNSArNDYwLDQyIEBAIHNpemVfdCBN aW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXI6OkNvbnQKKyAgIERDSEVDS19HRShzdGF0ZSgpLCBr U3RhdGVGcm96ZW4pOworICAgcmV0dXJuIHNpemVvZihjb250ZXh0Xyk7CisgfQorKworK01pbmlk dW1wQ29udGV4dFJJU0NWNjRXcml0ZXI6Ok1pbmlkdW1wQ29udGV4dFJJU0NWNjRXcml0ZXIoKQor KyAgICA6IE1pbmlkdW1wQ29udGV4dFdyaXRlcigpLCBjb250ZXh0XygpIHsKKysgIGNvbnRleHRf LmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UklTQ1Y2NDsKKyt9CisrCisrTWluaWR1 bXBDb250ZXh0UklTQ1Y2NFdyaXRlcjo6fk1pbmlkdW1wQ29udGV4dFJJU0NWNjRXcml0ZXIoKSA9 IGRlZmF1bHQ7CisrCisrdm9pZCBNaW5pZHVtcENvbnRleHRSSVNDVjY0V3JpdGVyOjpJbml0aWFs aXplRnJvbVNuYXBzaG90KAorKyAgICBjb25zdCBDUFVDb250ZXh0UklTQ1Y2NCogY29udGV4dF9z bmFwc2hvdCkgeworKyAgRENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZU11dGFibGUpOworKyAgRENI RUNLX0VRKGNvbnRleHRfLmNvbnRleHRfZmxhZ3MsIGtNaW5pZHVtcENvbnRleHRSSVNDVjY0KTsK KysKKysgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UklTQ1Y2NEFs bDsKKysKKysgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNvbnRleHRfLnJlZ3MpID09IHNpemVvZihj b250ZXh0X3NuYXBzaG90LT5yZWdzKSwKKysgICAgICAgICAgICAgICAgIkdQUnMgc2l6ZSBtaXNt YXRjaCIpOworKyAgbWVtY3B5KGNvbnRleHRfLnJlZ3MsIGNvbnRleHRfc25hcHNob3QtPnJlZ3Ms IHNpemVvZihjb250ZXh0Xy5yZWdzKSk7CisrCisrICBzdGF0aWNfYXNzZXJ0KHNpemVvZihjb250 ZXh0Xy5mcHJlZ3MpID09IHNpemVvZihjb250ZXh0X3NuYXBzaG90LT5mcHJlZ3MpLAorKyAgICAg ICAgICAgICAgICAiRlBScyBzaXplIG1pc21hdGNoIik7CisrICBtZW1jcHkoY29udGV4dF8uZnBy ZWdzLAorKyAgICAgICAgIGNvbnRleHRfc25hcHNob3QtPmZwcmVncywKKysgICAgICAgICBzaXpl b2YoY29udGV4dF8uZnByZWdzKSk7CisrICBjb250ZXh0Xy5mY3NyID0gY29udGV4dF9zbmFwc2hv dC0+ZmNzcjsKKyt9CisrCisrYm9vbCBNaW5pZHVtcENvbnRleHRSSVNDVjY0V3JpdGVyOjpXcml0 ZU9iamVjdCgKKysgICAgRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIHsKKysgIERD SEVDS19FUShzdGF0ZSgpLCBrU3RhdGVXcml0YWJsZSk7CisrICByZXR1cm4gZmlsZV93cml0ZXIt PldyaXRlKCZjb250ZXh0Xywgc2l6ZW9mKGNvbnRleHRfKSk7CisrfQorKworK3NpemVfdCBNaW5p ZHVtcENvbnRleHRSSVNDVjY0V3JpdGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0IHsKKysgIERDSEVD S19HRShzdGF0ZSgpLCBrU3RhdGVGcm96ZW4pOworKyAgcmV0dXJuIHNpemVvZihjb250ZXh0Xyk7 CisrfQorIAorIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorSW5kZXg6IGNocm9taXVtLTEwMi4w LjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBf Y29udGV4dF93cml0ZXIuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEwMi4wLjUwMDUuNjEu b3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0X3dyaXRlci5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCitAQCAtMzMw LDYgKzMzMCw0OSBAQCBjbGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIgZmluYWwKKyAg IE1pbmlkdW1wQ29udGV4dE1JUFM2NCBjb250ZXh0XzsKKyB9OworIAorKy8vISBcYnJpZWYgVGhl IHdyaXRlciBmb3IgYSBNaW5pZHVtcENvbnRleHRSSVNDVjY0IHN0cnVjdHVyZSBpbiBhIG1pbmlk dW1wIGZpbGUuCisrY2xhc3MgTWluaWR1bXBDb250ZXh0UklTQ1Y2NFdyaXRlciBmaW5hbCA6IHB1 YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgeworKyBwdWJsaWM6CisrICBNaW5pZHVtcENvbnRl eHRSSVNDVjY0V3JpdGVyKCk7CisrCisrICBNaW5pZHVtcENvbnRleHRSSVNDVjY0V3JpdGVyKGNv bnN0IE1pbmlkdW1wQ29udGV4dFJJU0NWNjRXcml0ZXImKSA9IGRlbGV0ZTsKKysgIE1pbmlkdW1w Q29udGV4dFJJU0NWNjRXcml0ZXImIG9wZXJhdG9yPShjb25zdCBNaW5pZHVtcENvbnRleHRSSVND VjY0V3JpdGVyJikgPQorKyAgICAgIGRlbGV0ZTsKKysKKysgIH5NaW5pZHVtcENvbnRleHRSSVND VjY0V3JpdGVyKCkgb3ZlcnJpZGU7CisrCisrICAvLyEgXGJyaWVmIEluaXRpYWxpemVzIHRoZSBN aW5pZHVtcENvbnRleHRSSVNDViBiYXNlZCBvbiBcYSBjb250ZXh0X3NuYXBzaG90LgorKyAgLy8h CisrICAvLyEgXHBhcmFtW2luXSBjb250ZXh0X3NuYXBzaG90IFRoZSBjb250ZXh0IHNuYXBzaG90 IHRvIHVzZSBhcyBzb3VyY2UgZGF0YS4KKysgIC8vIQorKyAgLy8hIFxub3RlIFZhbGlkIGluICNr U3RhdGVNdXRhYmxlLiBObyBtdXRhdGlvbiBvZiBjb250ZXh0KCkgbWF5IGJlIGRvbmUgYmVmb3Jl CisrICAvLyEgICAgIGNhbGxpbmcgdGhpcyBtZXRob2QsIGFuZCBpdCBpcyBub3Qgbm9ybWFsbHkg bmVjZXNzYXJ5IHRvIGFsdGVyCisrICAvLyEgICAgIGNvbnRleHQoKSBhZnRlciBjYWxsaW5nIHRo aXMgbWV0aG9kLgorKyAgdm9pZCBJbml0aWFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRl eHRSSVNDVjY0KiBjb250ZXh0X3NuYXBzaG90KTsKKysKKysgIC8vISBcYnJpZWYgUmV0dXJucyBh IHBvaW50ZXIgdG8gdGhlIGNvbnRleHQgc3RydWN0dXJlIHRoYXQgdGhpcyBvYmplY3Qgd2lsbAor KyAgLy8hICAgICB3cml0ZS4KKysgIC8vIQorKyAgLy8hIFxhdHRlbnRpb24gVGhpcyByZXR1cm5z IGEgbm9uLWBjb25zdGAgcG9pbnRlciB0byB0aGlzIG9iamVjdOKAmXMgcHJpdmF0ZQorKyAgLy8h ICAgICBkYXRhIHNvIHRoYXQgYSBjYWxsZXIgY2FuIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVj dHVyZSBkaXJlY3RseS4KKysgIC8vISAgICAgVGhpcyBpcyBkb25lIGJlY2F1c2UgcHJvdmlkaW5n IHNldHRlciBpbnRlcmZhY2VzIHRvIGVhY2ggZmllbGQgaW4gdGhlCisrICAvLyEgICAgIGNvbnRl eHQgc3RydWN0dXJlIHdvdWxkIGJlIHVud2llbGR5IGFuZCBjdW1iZXJzb21lLiBDYXJlIG11c3Qg YmUgdGFrZW4KKysgIC8vISAgICAgdG8gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGNv cnJlY3RseS4gVGhlIGNvbnRleHQgc3RydWN0dXJlCisrICAvLyEgICAgIG11c3Qgb25seSBiZSBt b2RpZmllZCB3aGlsZSB0aGlzIG9iamVjdCBpcyBpbiB0aGUgI2tTdGF0ZU11dGFibGUKKysgIC8v ISAgICAgc3RhdGUuCisrICBNaW5pZHVtcENvbnRleHRSSVNDVjY0KiBjb250ZXh0KCkgeyByZXR1 cm4gJmNvbnRleHRfOyB9CisrCisrIHByb3RlY3RlZDoKKysgIC8vIE1pbmlkdW1wV3JpdGFibGU6 CisrICBib29sIFdyaXRlT2JqZWN0KEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBv dmVycmlkZTsKKysKKysgIC8vIE1pbmlkdW1wQ29udGV4dFdyaXRlcjoKKysgIHNpemVfdCBDb250 ZXh0U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworKworKyBwcml2YXRlOgorKyAgTWluaWR1bXBDb250 ZXh0UklTQ1Y2NCBjb250ZXh0XzsKKyt9OworKworIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAor IAorICNlbmRpZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9XUklURVJf SF8KK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBjaHJvbWl1bS0xMDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworKysrIGNocm9taXVt LTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYworQEAgLTEzNSw2ICsxMzUsMTAgQEAgc3RkOjpzdHJp bmcgTWluaWR1bXBNaXNjSW5mb0RlYnVnQnVpbGRTdAorICAgc3RhdGljIGNvbnN0ZXhwciBjaGFy IGtDUFVbXSA9ICJtaXBzIjsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQorICAg c3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzNjQiOworKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUklTQ1YzMikKKysgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAicmlz Y3YzMiI7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVjY0KQorKyAgc3RhdGljIGNvbnN0 ZXhwciBjaGFyIGtDUFVbXSA9ICJyaXNjdjY0IjsKKyAjZWxzZQorICNlcnJvciBkZWZpbmUga0NQ VSBmb3IgdGhpcyBDUFUKKyAjZW5kaWYKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCisrKysgY2hyb21pdW0t MTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0 dXJlX21lbW9yeS5jYworQEAgLTExMiw2ICsxMTIsMTYgQEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQ b2ludGVkVG9CeUNvbnRleHQoYworICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGQ6OnNpemUo Y29udGV4dC5taXBzZWwtPnJlZ3MpOyArK2kpIHsKKyAgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJv dW5kKGRlbGVnYXRlLCBjb250ZXh0Lm1pcHNlbC0+cmVnc1tpXSk7CisgICB9CisrI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICBpZiAoY29udGV4dC5hcmNoaXRlY3R1cmUg PT0ga0NQVUFyY2hpdGVjdHVyZVJJU0NWNjQpIHsKKysgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg PCBzdGQ6OnNpemUoY29udGV4dC5yaXNjdjY0LT5yZWdzKTsgKytpKSB7CisrICAgICAgTWF5YmVD YXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnJpc2N2NjQtPnJlZ3NbaV0pOwor KyAgICB9CisrICB9IGVsc2UgeworKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6c2l6 ZShjb250ZXh0LnJpc2N2MzItPnJlZ3MpOyArK2kpIHsKKysgICAgICBNYXliZUNhcHR1cmVNZW1v cnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQucmlzY3YzMi0+cmVnc1tpXSk7CisrICAgIH0KKysg IH0KKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZgorSW5kZXg6IGNocm9taXVtLTEwMi4w LjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hp dGVjdHVyZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAor KysrIGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCitAQCAtNDMsNyArNDMsMTMgQEAgZW51bSBDUFVB cmNoaXRlY3R1cmUgeworICAga0NQVUFyY2hpdGVjdHVyZU1JUFNFTCwKKyAKKyAgIC8vISBcYnJp ZWYgNjQtYml0IE1JUFNFTC4KKy0gIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAorKyAga0NQVUFy Y2hpdGVjdHVyZU1JUFM2NEVMLAorKworKyAgLy8hIFxicmllZiAzMi1iaXQgUklTQ1YuCisrICBr Q1BVQXJjaGl0ZWN0dXJlUklTQ1YzMiwKKysKKysgIC8vISBcYnJpZWYgNjQtYml0IFJJU0NWLgor KyAga0NQVUFyY2hpdGVjdHVyZVJJU0NWNjQKKyB9OworIAorIH0gIC8vIG5hbWVzcGFjZSBjcmFz aHBhZAorSW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1 bS0xMDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2NvbnRleHQuY2MKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCitAQCAtMTk3LDEwICsx OTcsMTIgQEAgYm9vbCBDUFVDb250ZXh0OjpJczY0Qml0KCkgY29uc3QgeworICAgICBjYXNlIGtD UFVBcmNoaXRlY3R1cmVYODZfNjQ6CisgICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0Ogor ICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTDoKKysgICAgY2FzZSBrQ1BVQXJjaGl0 ZWN0dXJlUklTQ1Y2NDoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0 ZWN0dXJlWDg2OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk06CisgICAgIGNhc2Uga0NQ VUFyY2hpdGVjdHVyZU1JUFNFTDoKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUklTQ1YzMjoK KyAgICAgICByZXR1cm4gZmFsc2U7CisgICAgIGRlZmF1bHQ6CisgICAgICAgTk9UUkVBQ0hFRCgp OworSW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEw Mi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j cHVfY29udGV4dC5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCitAQCAtMzUyLDYgKzM1MiwyMCBA QCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2NCB7CisgICB1aW50NjRfdCBmaXI7CisgfTsKKyAKKysv LyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FycnlpbmcgUklTQ1YzMiBDUFUgc3RhdGUu Cisrc3RydWN0IENQVUNvbnRleHRSSVNDVjMyIHsKKysgIHVpbnQzMl90IHJlZ3NbMzJdOworKyAg dWludDY0X3QgZnByZWdzWzMyXTsKKysgIHVpbnQzMl90IGZjc3I7CisrfTsKKysKKysvLyEgXGJy aWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FycnlpbmcgUklTQ1Y2NCBDUFUgc3RhdGUuCisrc3Ry dWN0IENQVUNvbnRleHRSSVNDVjY0IHsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0 X3QgZnByZWdzWzMyXTsKKysgIHVpbnQzMl90IGZjc3I7CisrfTsKKysKKyAvLyEgXGJyaWVmIEEg Y29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJsZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkg c3VwcG9ydGVkCisgLy8hICAgICBDUFUgYXJjaGl0ZWN0dXJlLgorIHN0cnVjdCBDUFVDb250ZXh0 IHsKK0BAIC0zODIsNiArMzk2LDggQEAgc3RydWN0IENQVUNvbnRleHQgeworICAgICBDUFVDb250 ZXh0QVJNNjQqIGFybTY0OworICAgICBDUFVDb250ZXh0TUlQUyogbWlwc2VsOworICAgICBDUFVD b250ZXh0TUlQUzY0KiBtaXBzNjQ7CisrICAgIENQVUNvbnRleHRSSVNDVjMyKiByaXNjdjMyOwor KyAgICBDUFVDb250ZXh0UklTQ1Y2NCogcmlzY3Y2NDsKKyAgIH07CisgfTsKKyAKK0luZGV4OiBj aHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0t MTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmNjCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9s aW51eC5jYworQEAgLTI2Niw2ICsyNjYsMzAgQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dEFS TTY0X09ubHlGUFNJTQorICAgY29udGV4dC0+ZnBjciA9IGZsb2F0X2NvbnRleHQuZnBjcjsKKyB9 CisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrCisrdGVtcGxhdGUg PHR5cGVuYW1lIFRyYWl0cz4KKyt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UklTQ1YoCisrICAg IGNvbnN0IHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCYgdGhyZWFkX2NvbnRl eHQsCisrICAgIGNvbnN0IHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsRmxvYXRDb250ZXh0JiBmbG9h dF9jb250ZXh0LAorKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsK KysgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGNvbnRleHQtPnJlZ3MpID09IHNpemVvZih0aHJlYWRf Y29udGV4dCksCisrICAgICAgICAgICAgICAgICJyZWdpc3RlcnMgc2l6ZSBtaXNtYXRjaCIpOwor KyAgc3RhdGljX2Fzc2VydChzaXplb2YoY29udGV4dC0+ZnByZWdzKSA9PSBzaXplb2YoZmxvYXRf Y29udGV4dC5mKSwKKysgICAgICAgICAgICAgICAgImZwIHJlZ2lzdGVycyBzaXplIG1pc21hdGNo Iik7CisrICBtZW1jcHkoJmNvbnRleHQtPnJlZ3MsICZ0aHJlYWRfY29udGV4dCwgc2l6ZW9mKGNv bnRleHQtPnJlZ3MpKTsKKysgIG1lbWNweSgmY29udGV4dC0+ZnByZWdzLCAmZmxvYXRfY29udGV4 dC5mLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7CisrICBjb250ZXh0LT5mY3NyID0gZmxvYXRf Y29udGV4dC5mY3NyOworK30KKyt0ZW1wbGF0ZSB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UklT Q1Y8Q29udGV4dFRyYWl0czMyPigKKysgICAgY29uc3QgQ29udGV4dFRyYWl0czMyOjpTaWduYWxU aHJlYWRDb250ZXh0JiB0aHJlYWRfY29udGV4dCwKKysgICAgY29uc3QgQ29udGV4dFRyYWl0czMy OjpTaWduYWxGbG9hdENvbnRleHQmIGZsb2F0X2NvbnRleHQsCisrICAgIENvbnRleHRUcmFpdHMz Mjo6Q1BVQ29udGV4dCogY29udGV4dCk7CisrdGVtcGxhdGUgdm9pZCBJbml0aWFsaXplQ1BVQ29u dGV4dFJJU0NWPENvbnRleHRUcmFpdHM2ND4oCisrICAgIGNvbnN0IENvbnRleHRUcmFpdHM2NDo6 U2lnbmFsVGhyZWFkQ29udGV4dCYgdGhyZWFkX2NvbnRleHQsCisrICAgIGNvbnN0IENvbnRleHRU cmFpdHM2NDo6U2lnbmFsRmxvYXRDb250ZXh0JiBmbG9hdF9jb250ZXh0LAorKyAgICBDb250ZXh0 VHJhaXRzNjQ6OkNQVUNvbnRleHQqIGNvbnRleHQpOworKworICNlbmRpZiAgLy8gQVJDSF9DUFVf WDg2X0ZBTUlMWQorIAorIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorSW5kZXg6IGNocm9taXVt LTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvY3B1X2NvbnRleHRfbGludXguaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEwMi4wLjUw MDUuNjEub3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9j cHVfY29udGV4dF9saW51eC5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCitA QCAtMTc0LDYgKzE3NCwyMiBAQCB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKKyAKKyAj ZW5kaWYgIC8vIEFSQ0hfQ1BVX01JUFNfRkFNSUxZIHx8IERPWFlHRU4KKyAKKysjaWYgZGVmaW5l ZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpIHx8IERPWFlHRU4KKysKKysvLyEgXGJyaWVmIEluaXRp YWxpemVzIGEgQ1BVQ29udGV4dFJJU0NWIHN0cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0Cisr Ly8hICAgICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgorKy8vIQorKy8vISBccGFyYW1baW5dIHRocmVh ZF9jb250ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCisrLy8hIFxwYXJhbVtpbl0gZmxv YXRfY29udGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCisrLy8hIFxwYXJhbVtvdXRdIGNv bnRleHQgVGhlIENQVUNvbnRleHRSSVNDViBzdHJ1Y3R1cmUgdG8gaW5pdGlhbGl6ZS4KKyt0ZW1w bGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRSSVNDVigK KysgICAgY29uc3QgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxUaHJlYWRDb250ZXh0JiB0aHJlYWRf Y29udGV4dCwKKysgICAgY29uc3QgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxGbG9hdENvbnRleHQm IGZsb2F0X2NvbnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4 dCk7CisrCisrI2VuZGlmICAvLyBBUkNIX0NQVV9SSVNDVl9GQU1JTFkgfHwgRE9YWUdFTgorKwor IH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAorIAor SW5kZXg6IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYworKysrIGNo cm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCitAQCAtMzI1LDYgKzMyNSw2MSBA QCBib29sIEV4Y2VwdGlvblNuYXBzaG90TGludXg6OlJlYWRDb250ZXh0CisgICAgICAgcmVhZGVy LCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLm1pcHM2NCk7CisgfQorIAorKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+ Cisrc3RhdGljIGJvb2wgUmVhZENvbnRleHQoUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzLAor KyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogZGVz dF9jb250ZXh0KSB7CisrICBjb25zdCBQcm9jZXNzTWVtb3J5KiBtZW1vcnkgPSByZWFkZXItPk1l bW9yeSgpOworKworKyAgTGludXhWTUFkZHJlc3MgZ3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRk cmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRl eHQ8VHJhaXRzPiwgbWNvbnRleHQpICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBncmVncyk7CisrCisrICB0eXBl bmFtZSBUcmFpdHM6OlNpZ25hbFRocmVhZENvbnRleHQgdGhyZWFkX2NvbnRleHQ7CisrICBpZiAo IW1lbW9yeS0+UmVhZChncmVnc19hZGRyZXNzLCBzaXplb2YodGhyZWFkX2NvbnRleHQpLCAmdGhy ZWFkX2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZ3JlZ3Mi OworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBMaW51eFZNQWRkcmVzcyBmcHJlZ3Nf YWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKFVDb250ZXh0PFRyYWl0cz4sIG1jb250ZXh0KSArCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRl eHQsIGZwcmVncyk7CisrCisrICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBm cF9jb250ZXh0OworKyAgaWYgKCFtZW1vcnktPlJlYWQoZnByZWdzX2FkZHJlc3MsIHNpemVvZihm cF9jb250ZXh0KSwgJmZwX2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0 IHJlYWQgZnByZWdzIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgSW5pdGlhbGl6 ZUNQVUNvbnRleHRSSVNDVjxUcmFpdHM+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LCBkZXN0 X2NvbnRleHQpOworKworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3RlbXBsYXRlIDw+CisrYm9v bCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzMzI+KAor KyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKKysgICAgTGludXhWTUFkZHJlc3MgY29u dGV4dF9hZGRyZXNzKSB7CisrICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0 dXJlUklTQ1YzMjsKKysgIGNvbnRleHRfLnJpc2N2MzIgPSAmY29udGV4dF91bmlvbl8ucmlzY3Yz MjsKKysKKysgIHJldHVybiBpbnRlcm5hbDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigK KysgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ucmlzY3YzMik7CisrfQor KworK3RlbXBsYXRlIDw+CisrYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4 dDxDb250ZXh0VHJhaXRzNjQ+KAorKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKKysg ICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7CisrICBjb250ZXh0Xy5hcmNoaXRl Y3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUklTQ1Y2NDsKKysgIGNvbnRleHRfLnJpc2N2NjQgPSAm Y29udGV4dF91bmlvbl8ucmlzY3Y2NDsKKysKKysgIHJldHVybiBpbnRlcm5hbDo6UmVhZENvbnRl eHQ8Q29udGV4dFRyYWl0czY0PigKKysgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29u dGV4dF8ucmlzY3Y2NCk7CisrfQorKworICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQor IAorIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZSgKK0luZGV4OiBjaHJv bWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hyb21p dW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCisrKysgY2hyb21pdW0tMTAyLjAu NTAwNS42MS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXguaAorQEAgLTg5LDYgKzg5LDkgQEAgY2xhc3MgRXhjZXB0aW9u U25hcHNob3RMaW51eCBmaW5hbCA6IHB1YgorICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpCisgICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4dE1JUFM2 NCBtaXBzNjQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICAgIENQ VUNvbnRleHRSSVNDVjMyIHJpc2N2MzI7CisrICAgIENQVUNvbnRleHRSSVNDVjY0IHJpc2N2NjQ7 CisgI2VuZGlmCisgICB9IGNvbnRleHRfdW5pb25fOworICAgQ1BVQ29udGV4dCBjb250ZXh0XzsK K0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCisrKysgY2hyb21pdW0t MTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYworQEAgLTEwOCw2ICsxMDgsOSBAQCB2b2lkIFByb2Nl c3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0aWFsCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKKyAgIHN0YWNrX3BvaW50ZXIgPSByZWFkZXItPklzNjRCaXQoKSA/IHRocmVh ZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NC5yZWdzWzI5XQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDMyLnJlZ3NbMjld OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorKyAgc3RhY2tfcG9pbnRl ciA9IHJlYWRlci0+SXM2NEJpdCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LnNw CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50aHJl YWRfY29udGV4dC50MzIuc3A7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKK0luZGV4 OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0x MDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc2lnbmFsX2NvbnRleHQuaAorKysrIGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAor QEAgLTQyMiw2ICs0MjIsNjcgQEAgc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dDxDb250 ZXh0VAorICAgICAgICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7CisgI2VuZGlm CisgCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrCisrc3RydWN0IE1D b250ZXh0MzIgeworKyAgdWludDMyX3QgZ3JlZ3NbMzJdOworKyAgdWludDY0X3QgZnByZWdzWzMy XTsKKysgIHVuc2lnbmVkIGludCBmY3NyOworK307CisrCisrc3RydWN0IE1Db250ZXh0NjQgewor KyAgdWludDY0X3QgZ3JlZ3NbMzJdOworKyAgdWludDY0X3QgZnByZWdzWzMyXTsKKysgIHVuc2ln bmVkIGludCBmY3NyOworK307CisrCisrc3RydWN0IENvbnRleHRUcmFpdHMzMiA6IHB1YmxpYyBU cmFpdHMzMiB7CisrICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0MzI7CisrICB1c2luZyBTaWdu YWxUaHJlYWRDb250ZXh0ID0gVGhyZWFkQ29udGV4dDo6dDMyX3Q7CisrICB1c2luZyBTaWduYWxG bG9hdENvbnRleHQgPSBGbG9hdENvbnRleHQ6OmYzMl90OworKyAgdXNpbmcgQ1BVQ29udGV4dCA9 IENQVUNvbnRleHRSSVNDVjMyOworK307CisrCisrc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1 YmxpYyBUcmFpdHM2NCB7CisrICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0NjQ7CisrICB1c2lu ZyBTaWduYWxUaHJlYWRDb250ZXh0ID0gVGhyZWFkQ29udGV4dDo6dDY0X3Q7CisrICB1c2luZyBT aWduYWxGbG9hdENvbnRleHQgPSBGbG9hdENvbnRleHQ6OmY2NF90OworKyAgdXNpbmcgQ1BVQ29u dGV4dCA9IENQVUNvbnRleHRSSVNDVjY0OworK307CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFRy YWl0cz4KKytzdHJ1Y3QgVUNvbnRleHQgeworKyAgdHlwZW5hbWUgVHJhaXRzOjpVTG9uZyBmbGFn czsKKysgIHR5cGVuYW1lIFRyYWl0czo6QWRkcmVzcyBsaW5rOworKyAgU2lnbmFsU3RhY2s8VHJh aXRzPiBzdGFjazsKKysgIFNpZ3NldDxUcmFpdHM+IHNpZ21hc2s7CisrICBjaGFyIHBhZGRpbmdb MTI4IC0gc2l6ZW9mKHNpZ21hc2spXTsKKysgIHR5cGVuYW1lIFRyYWl0czo6Q2hhcl82NE9ubHkg cGFkZGluZzJbOF07CisrICB0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0IG1jb250ZXh0OworK307 CisrCisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1YzMikKKytzdGF0aWNfYXNzZXJ0KG9mZnNl dG9mKFVDb250ZXh0PENvbnRleHRUcmFpdHMzMj4sIG1jb250ZXh0KSA9PQorKyAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0KSwKKysgICAgICAgICAgICAg ICJjb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNv bnRleHQ8Q29udGV4dFRyYWl0czMyPiwgbWNvbnRleHQuZ3JlZ3MpID09CisrICAgICAgICAgICAg ICAgICAgb2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQuX19ncmVncyksCisrICAgICAg ICAgICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KG9mZnNl dG9mKFVDb250ZXh0PENvbnRleHRUcmFpdHMzMj4sIG1jb250ZXh0LmZwcmVncykgPT0KKysgICAg ICAgICAgICAgICAgICBvZmZzZXRvZih1Y29udGV4dF90LCB1Y19tY29udGV4dC5fX2ZwcmVncyks CisrICAgICAgICAgICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKKysjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1JJU0NWNjQpCisrc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dDxD b250ZXh0VHJhaXRzNjQ+LCBtY29udGV4dCkgPT0KKysgICAgICAgICAgICAgICAgICBvZmZzZXRv Zih1Y29udGV4dF90LCB1Y19tY29udGV4dCksCisrICAgICAgICAgICAgICAiY29udGV4dCBvZmZz ZXQgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0PENvbnRleHRU cmFpdHM2ND4sIG1jb250ZXh0LmdyZWdzKSA9PQorKyAgICAgICAgICAgICAgICAgIG9mZnNldG9m KHVjb250ZXh0X3QsIHVjX21jb250ZXh0Ll9fZ3JlZ3MpLAorKyAgICAgICAgICAgICAgImNvbnRl eHQgb2Zmc2V0IG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dDxD b250ZXh0VHJhaXRzNjQ+LCBtY29udGV4dC5mcHJlZ3MpID09CisrICAgICAgICAgICAgICAgICAg b2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQuX19mcHJlZ3MpLAorKyAgICAgICAgICAg ICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7CisrI2VuZGlmCisrCisgI2Vsc2UKKyAjZXJy b3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0luZGV4OiBjaHJvbWl1 bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEw Mi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2MKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYx L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFw c2hvdF9saW51eC5jYworQEAgLTIwNSw2ICsyMDUsOSBAQCBDUFVBcmNoaXRlY3R1cmUgU3lzdGVt U25hcHNob3RMaW51eDo6R2V0CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK KyAgIHJldHVybiBwcm9jZXNzX3JlYWRlcl8tPklzNjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVN SVBTNjRFTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoga0NQVUFyY2hp dGVjdHVyZU1JUFNFTDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSkKKysg IHJldHVybiBwcm9jZXNzX3JlYWRlcl8tPklzNjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVSSVND VjY0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBrQ1BVQXJjaGl0ZWN0 dXJlUklTQ1YzMjsKKyAjZWxzZQorICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCisg I2VuZGlmCitAQCAtMjIwLDYgKzIyMyw5IEBAIHVpbnQzMl90IFN5c3RlbVNuYXBzaG90TGludXg6 OkNQVVJldmlzaW8KKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgLy8g Tm90IGltcGxlbWVudGFibGUgb24gTUlQUworICAgcmV0dXJuIDA7CisrI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBSSVNDVgor KyAgcmV0dXJuIDA7CisgI2Vsc2UKKyAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQor ICNlbmRpZgorQEAgLTI0MCw2ICsyNDYsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExp bnV4OjpDUFVWZW5kCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgIC8v IE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKKyAgIHJldHVybiBzdGQ6OnN0cmluZygpOworKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorKyAgLy8gTm90IGltcGxlbWVudGFi bGUgb24gUklTQ1YKKysgIHJldHVybiBzdGQ6OnN0cmluZygpOworICNlbHNlCisgI2Vycm9yIHBv cnQgdG8geW91ciBhcmNoaXRlY3R1cmUKKyAjZW5kaWYKK0BAIC0zNzMsNiArMzgyLDkgQEAgYm9v bCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpOWEVuYWJsZWQoKSBjbworICNlbGlmIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpCisgICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCisgICBy ZXR1cm4gZmFsc2U7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICAv LyBOb3QgaW1wbGVtZW50YWJsZSBvbiBSSVNDVgorKyAgcmV0dXJuIGZhbHNlOworICNlbHNlCisg I2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCitJbmRleDogY2hy b21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1 bS0xMDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCisrKysgY2hyb21pdW0tMTAyLjAuNTAw NS42MS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRf c25hcHNob3RfbGludXguY2MKK0BAIC0xODksNiArMTg5LDIyIEBAIGJvb2wgVGhyZWFkU25hcHNo b3RMaW51eDo6SW5pdGlhbGl6ZSgKKyAgICAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9j b250ZXh0LmYzMiwKKyAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7CisgICB9CisrI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICBpZiAocHJvY2Vzc19yZWFkZXItPklzNjRC aXQoKSkgeworKyAgICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUklT Q1Y2NDsKKysgICAgY29udGV4dF8ucmlzY3Y2NCA9ICZjb250ZXh0X3VuaW9uXy5yaXNjdjY0Owor KyAgICBJbml0aWFsaXplQ1BVQ29udGV4dFJJU0NWPENvbnRleHRUcmFpdHM2ND4oCisrCXRocmVh ZC50aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQsCisrCXRocmVhZC50aHJlYWRfaW5mby5m bG9hdF9jb250ZXh0LmY2NCwKKysJY29udGV4dF8ucmlzY3Y2NCk7CisrICB9IGVsc2UgeworKyAg ICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUklTQ1YzMjsKKysgICAg Y29udGV4dF8ucmlzY3YzMiA9ICZjb250ZXh0X3VuaW9uXy5yaXNjdjMyOworKyAgICBJbml0aWFs aXplQ1BVQ29udGV4dFJJU0NWPENvbnRleHRUcmFpdHMzMj4oCisrCXRocmVhZC50aHJlYWRfaW5m by50aHJlYWRfY29udGV4dC50MzIsCisrCXRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0 LmYzMiwKKysJY29udGV4dF8ucmlzY3YzMik7CisrICB9CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4K KyAjZW5kaWYKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gY2hyb21pdW0tMTAyLjAuNTAwNS42MS5vcmlnL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCisrKysg Y2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAorQEAgLTczLDYgKzczLDkgQEAgY2xh c3MgVGhyZWFkU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYworICNlbGlmIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpCisgICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKKyAgICAgQ1BV Q29udGV4dE1JUFM2NCBtaXBzNjQ7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1J TFkpCisrICAgIENQVUNvbnRleHRSSVNDVjMyIHJpc2N2MzI7CisrICAgIENQVUNvbnRleHRSSVND VjY0IHJpc2N2NjQ7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BV X1g4Nl9GQU1JTFkKK0luZGV4OiBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNo cm9taXVtLTEwMi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL2xpbnV4L3B0cmFjZXIuY2MKKysrKyBjaHJvbWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYworQEAgLTM5OCw2ICsz OTgsNTEgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAorICAgcmV0dXJuIHRydWU7 CisgfQorIAorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorKworK3RlbXBs YXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KKytib29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRp ZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3QsIGJvb2wgY2FuX2xvZykgeworKyAgaW92ZWMg aW92OworKyAgaW92Lmlvdl9iYXNlID0gZGVzdDsKKysgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mKCpk ZXN0KTsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCByZWludGVycHJldF9j YXN0PHZvaWQqPihzZXQpLCAmaW92KSAhPSAwKSB7CisrICAgIFBMT0dfSUYoRVJST1IsIGNhbl9s b2cpIDw8ICJwdHJhY2UiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICBpZiAoaW92Lmlv dl9sZW4gIT0gc2l6ZW9mKCpkZXN0KSkgeworKyAgICBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8 ICJVbmV4cGVjdGVkIHJlZ2lzdGVycyBzaXplIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQor KyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczMy KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRl eHQqIGNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5f bG9nKSB7CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJl Z2lzdGVyczY0KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG bG9hdENvbnRleHQqIGNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBjYW5fbG9nKSB7CisrICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUkZQUkVH LCAmY29udGV4dC0+ZjY0LmYsIGNhbl9sb2cpOworK30KKysKKytib29sIEdldFRocmVhZEFyZWEz MihwaWRfdCB0aWQsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCYg Y29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyogYWRkcmVzcywK KysgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKKysgIHJldHVybiBmYWxzZTsK Kyt9CisrCisrYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQmIGNvbnRleHQsCisrICAgICAgICAgICAgICAgICAg ICAgTGludXhWTUFkZHJlc3MqIGFkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAgYm9vbCBj YW5fbG9nKSB7CisrICAqYWRkcmVzcyA9IGNvbnRleHQudDY0LnRwOworKyAgcmV0dXJuIHRydWU7 CisrfQorKworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZf RkFNSUxZCitJbmRleDogY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJv bWl1bS0xMDIuMC41MDA1LjYxLm9yaWcvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9saW51eC90aHJlYWRfaW5mby5oCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKK0BAIC03OSw2 ICs3OSw0MCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKKyAgICAgdWludDMyX3QgY3AwX3N0YXR1 czsKKyAgICAgdWludDMyX3QgY3AwX2NhdXNlOworICAgICB1aW50MzJfdCBwYWRkaW5nMV87Cisr I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIHVz ZXJfcmVnc19zdHJ1Y3QgaW4gYXNtL3B0cmFjZS5oLgorKyAgICB1aW50MzJfdCBwYzsKKysgICAg dWludDMyX3QgcmE7CisrICAgIHVpbnQzMl90IHNwOworKyAgICB1aW50MzJfdCBncDsKKysgICAg dWludDMyX3QgdHA7CisrICAgIHVpbnQzMl90IHQwOworKyAgICB1aW50MzJfdCB0MTsKKysgICAg dWludDMyX3QgdDI7CisrICAgIHVpbnQzMl90IHMwOworKyAgICB1aW50MzJfdCBzMTsKKysgICAg dWludDMyX3QgYTA7CisrICAgIHVpbnQzMl90IGExOworKyAgICB1aW50MzJfdCBhMjsKKysgICAg dWludDMyX3QgYTM7CisrICAgIHVpbnQzMl90IGE0OworKyAgICB1aW50MzJfdCBhNTsKKysgICAg dWludDMyX3QgYTY7CisrICAgIHVpbnQzMl90IGE3OworKyAgICB1aW50MzJfdCBzMjsKKysgICAg dWludDMyX3QgczM7CisrICAgIHVpbnQzMl90IHM0OworKyAgICB1aW50MzJfdCBzNTsKKysgICAg dWludDMyX3QgczY7CisrICAgIHVpbnQzMl90IHM3OworKyAgICB1aW50MzJfdCBzODsKKysgICAg dWludDMyX3Qgczk7CisrICAgIHVpbnQzMl90IHMxMDsKKysgICAgdWludDMyX3QgczExOworKyAg ICB1aW50MzJfdCB0MzsKKysgICAgdWludDMyX3QgdDQ7CisrICAgIHVpbnQzMl90IHQ1OworKyAg ICB1aW50MzJfdCB0NjsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9D UFVfWDg2X0ZBTUlMWQorQEAgLTEzMiw2ICsxNjYsNDAgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7 CisgICAgIHVpbnQ2NF90IGNwMF9iYWR2YWRkcjsKKyAgICAgdWludDY0X3QgY3AwX3N0YXR1czsK KyAgICAgdWludDY0X3QgY3AwX2NhdXNlOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1Zf RkFNSUxZKQorKyAgICAvLyBSZWZsZWN0cyB1c2VyX3JlZ3Nfc3RydWN0IGluIGFzbS9wdHJhY2Uu aC4KKysgICAgdWludDY0X3QgcGM7CisrICAgIHVpbnQ2NF90IHJhOworKyAgICB1aW50NjRfdCBz cDsKKysgICAgdWludDY0X3QgZ3A7CisrICAgIHVpbnQ2NF90IHRwOworKyAgICB1aW50NjRfdCB0 MDsKKysgICAgdWludDY0X3QgdDE7CisrICAgIHVpbnQ2NF90IHQyOworKyAgICB1aW50NjRfdCBz MDsKKysgICAgdWludDY0X3QgczE7CisrICAgIHVpbnQ2NF90IGEwOworKyAgICB1aW50NjRfdCBh MTsKKysgICAgdWludDY0X3QgYTI7CisrICAgIHVpbnQ2NF90IGEzOworKyAgICB1aW50NjRfdCBh NDsKKysgICAgdWludDY0X3QgYTU7CisrICAgIHVpbnQ2NF90IGE2OworKyAgICB1aW50NjRfdCBh NzsKKysgICAgdWludDY0X3QgczI7CisrICAgIHVpbnQ2NF90IHMzOworKyAgICB1aW50NjRfdCBz NDsKKysgICAgdWludDY0X3QgczU7CisrICAgIHVpbnQ2NF90IHM2OworKyAgICB1aW50NjRfdCBz NzsKKysgICAgdWludDY0X3Qgczg7CisrICAgIHVpbnQ2NF90IHM5OworKyAgICB1aW50NjRfdCBz MTA7CisrICAgIHVpbnQ2NF90IHMxMTsKKysgICAgdWludDY0X3QgdDM7CisrICAgIHVpbnQ2NF90 IHQ0OworKyAgICB1aW50NjRfdCB0NTsKKysgICAgdWludDY0X3QgdDY7CisgI2Vsc2UKKyAjZXJy b3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0xNDMsMTEgKzIx MSwxMiBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKKyAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRl eHQgPSB1c2VyX3JlZ3M7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAv LyBObyBhcHByb3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3Ig TUlQUworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorICNlbHNlCisgI2Vy cm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FS TTY0CisgCistI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorKyNpZiAhZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZ KQorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpCisgICBzdGF0aWNfYXNzZXJ0KHNpemVv Zih0MzJfdCkgPT0gc2l6ZW9mKE5hdGl2ZVRocmVhZENvbnRleHQpLCAiU2l6ZSBtaXNtYXRjaCIp OworICNlbHNlICAvLyBBUkNIX0NQVV82NF9CSVRTCitAQCAtMjE4LDYgKzI4Nyw5IEBAIHVuaW9u IEZsb2F0Q29udGV4dCB7CisgICAgIH0gZnByZWdzWzMyXTsKKyAgICAgdWludDMyX3QgZnBjc3I7 CisgICAgIHVpbnQzMl90IGZwdV9pZDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1JJU0NWX0ZB TUlMWSkKKysgICAgdWludDY0X3QgZlszMl07CisrICAgIHVpbnQzMl90IGZjc3I7CisgI2Vsc2UK KyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0yNTIs NiArMzI0LDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAgICAgZG91YmxlIGZwcmVnc1szMl07 CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJfdCBmcHVfaWQ7CisrI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICAgIHVpbnQ2NF90IGZbMzJdOworKyAgICB1 aW50MzJfdCBmY3NyOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQ VV9YODZfRkFNSUxZCitAQCAtMjgxLDYgKzM1Niw3IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Cisg ICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2ltZF9zdHJ1Y3Qp LCAiU2l6ZSBtaXNtYXRjaCIpOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp CisgLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRpdmUgdHlwZSBm b3IgYXZhaWxhYmxlIE1JUFMuCisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkp CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4NgorSW5kZXg6 IGNocm9taXVtLTEwMi4wLjUwMDUuNjEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRp bC9uZXQvaHR0cF90cmFuc3BvcnRfbGliY3VybC5jYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVt LTEwMi4wLjUwMDUuNjEub3JpZy90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25l dC9odHRwX3RyYW5zcG9ydF9saWJjdXJsLmNjCisrKysgY2hyb21pdW0tMTAyLjAuNTAwNS42MS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL25ldC9odHRwX3RyYW5zcG9ydF9saWJj dXJsLmNjCitAQCAtMjM3LDYgKzIzNyw4IEBAIHN0ZDo6c3RyaW5nIFVzZXJBZ2VudCgpIHsKKyAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX0JJR19FTkRJQU4pCisgICAgIHN0YXRpYyBjb25zdGV4cHIg Y2hhciBhcmNoW10gPSAiYWFyY2g2NF9iZSI7CisgI2VuZGlmCisrI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9SSVNDVjY0KQorKyAgICBzdGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gInJpc2N2 NjQiOworICNlbHNlCisgI2Vycm9yIFBvcnQKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9yaXNjdi1kYXYxZC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9yaXNjdi1kYXYxZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi5kNWM4MDU4YjQxZTI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL3Jpc2N2LWRhdjFkLnBhdGNoCkBAIC0wLDAgKzEsNDMgQEAKK0luZGV4OiBjaHJv bWl1bS0xMDIuMC41MDA1LjYxL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9yaXNjdjY0 L2NvbmZpZy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgY2hyb21pdW0tMTAyLjAu NTAwNS42MS90aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcmlzY3Y2NC9jb25maWcuaAor QEAgLTAsMCArMSwzOCBAQAorKy8qCisrICogQXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVp bGQgc3lzdGVtLgorKyAqIERvIG5vdCBlZGl0LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0Lgor KyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKKysKKysj ZGVmaW5lIEFSQ0hfQVJNIDAKKysKKysjZGVmaW5lIEFSQ0hfUFBDNjRMRSAwCisrCisrI2RlZmlu ZSBBUkNIX1g4NiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl8zMiAwCisrCisrI2RlZmluZSBBUkNI X1g4Nl82NCAwCisrCisrI2RlZmluZSBDT05GSUdfMTZCUEMgMQorKworKyNkZWZpbmUgQ09ORklH XzhCUEMgMQorKworKy8vICNkZWZpbmUgQ09ORklHX0xPRyAxIC0tIExvZ2dpbmcgaXMgY29udHJv bGxlZCBieSBDaHJvbWl1bQorKworKyNkZWZpbmUgRU5ESUFOTkVTU19CSUcgMAorKworKyNkZWZp bmUgSEFWRV9BU00gMAorKworKyNkZWZpbmUgSEFWRV9BU19GVU5DIDAKKysKKysjZGVmaW5lIEhB VkVfQ0xPQ0tfR0VUVElNRSAxCisrCisrI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCisrCisrI2Rl ZmluZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKKysKKysjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LXNhbmRib3gucGF0Y2gu b2xkIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LXNhbmRib3gucGF0Y2gub2xkCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjE4ZTA4MGZkMjViZGEKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmlzY3Ytc2FuZGJveC5w YXRjaC5vbGQKQEAgLTAsMCArMSwxOTQyIEBACitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4x MzQvc2FuZGJveC9mZWF0dXJlcy5nbmkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMuMC41 MDYwLjEzNC5vcmlnL3NhbmRib3gvZmVhdHVyZXMuZ25pCisrKysgY2hyb21pdW0tMTAzLjAuNTA2 MC4xMzQvc2FuZGJveC9mZWF0dXJlcy5nbmkKK0BAIC05LDcgKzksOCBAQAorIHVzZV9zZWNjb21w X2JwZiA9IChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSAmJgorICAgICAg ICAgICAgICAgICAgIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0 IiB8fAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50 X2NwdSA9PSAiYXJtNjQiIHx8CistICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJt aXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCisrICAgICAgICAgICAgICAgICAg IGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwK KysgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gInJpc2N2NjQiKQorIAorICMgU1NC RCAoU3BlY3VsYXRpdmUgU3RvcmUgQnlwYXNzIERpc2FibGUpIGlzIGEgbWl0aWdhdGlvbiBvZiBT cGVjdHJlIFZhcmlhbnQgNC4KKyAjIEFzIFNwZWN0cmUgVmFyaWFudCA0IGNhbiBiZSBtaXRpZ2F0 ZWQgYnkgc2l0ZSBpc29sYXRpb24sIG9wdC1vdXQgU1NCRCBvbiBzaXRlCitJbmRleDogY2hyb21p dW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFu Z2VzLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC5vcmlnL3NhbmRi b3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCisrKysgY2hyb21pdW0tMTAz LjAuNTA2MC4xMzQvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgK K0BAIC01Niw2ICs1NiwxMiBAQAorICNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIF9fTlJfc3lz Y2FsbHMKKyAjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAorIAorKyNlbGlm IGRlZmluZWQoX19yaXNjdikKKysKKysjZGVmaW5lIE1JTl9TWVNDQUxMIDB1CisrI2RlZmluZSBN QVhfUFVCTElDX1NZU0NBTEwgMTAyNHUKKysjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNf U1lTQ0FMTAorKworICNlbHNlCisgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiCisg I2VuZGlmCitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9saW51eC9icGZf ZHNsL3NlY2NvbXBfbWFjcm9zLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMuMC41MDYw LjEzNC5vcmlnL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCisrKysgY2hy b21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9z LmgKK0BAIC0zNDMsNiArMzQzLDQ2IEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7CisgI2RlZmluZSBT RUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10KKyAjZGVmaW5lIFNFQ0NPTVBf UFRfUEFSTTUoX3JlZ3MpIChfcmVncykucmVnc1s0XQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN NihfcmVncykgKF9yZWdzKS5yZWdzWzVdCisrCisrI2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorK3N0 cnVjdCByZWdzX3N0cnVjdCB7CisrICB1bnNpZ25lZCBsb25nIHJlZ3NbMzJdOworK307CisrCisr I2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9SSVNDVjY0CisrCisrI2RlZmluZSBTRUND T01QX1JFRyhfY3R4LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5fX2dyZWdzW19yZWddKQor KworKyNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgUkVHX0Ew KQorKyNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIFJFR19B MCs3KQorKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0Ll9fZ3Jl Z3NbUkVHX1BDXQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCBSRUdfQTApCisrI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgs IFJFR19BMCsxKQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCBSRUdfQTArMikKKysjZGVmaW5lIFNFQ0NPTVBfUEFSTTQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0 eCwgUkVHX0EwKzMpCisrI2RlZmluZSBTRUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBfUkVHKF9j dHgsIFJFR19BMCs0KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhf Y3R4LCBSRUdfQTArNSkKKysKKysjZGVmaW5lIFNFQ0NPTVBfTlJfSURYIChvZmZzZXRvZihzdHJ1 Y3QgYXJjaF9zZWNjb21wX2RhdGEsIG5yKSkKKysjZGVmaW5lIFNFQ0NPTVBfQVJDSF9JRFggKG9m ZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJjaCkpCisrI2RlZmluZSBTRUNDT01Q X0lQX01TQl9JRFggXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5z dHJ1Y3Rpb25fcG9pbnRlcikgKyA0KQorKyNkZWZpbmUgU0VDQ09NUF9JUF9MU0JfSURYIFwKKysg IChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIp ICsgMCkKKysjZGVmaW5lIFNFQ0NPTVBfQVJHX01TQl9JRFgobnIpIFwKKysgIChvZmZzZXRvZihz dHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyA0KQorKyNkZWZpbmUg U0VDQ09NUF9BUkdfTFNCX0lEWChucikgXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2Nv bXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDApCisrCisrI2RlZmluZSBTRUNDT01QX1BUX1JF U1VMVChfcmVncykgKF9yZWdzKS5yZWdzW1JFR19BMF0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfU1lT Q0FMTChfcmVncykgKF9yZWdzKS5yZWdzW1JFR19BMCs3XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9J UChfcmVncykgKF9yZWdzKS5yZWdzW1JFR19QQ10KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEo X3JlZ3MpIChfcmVncykucmVnc1tSRUdfQTBdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9y ZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0EwKzFdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0zKF9y ZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0EwKzJdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9y ZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0EwKzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9y ZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0EwKzRdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9y ZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0EwKzVdCisgI2Vsc2UKKyAjZXJyb3IgVW5zdXBwb3J0ZWQg dGFyZ2V0IHBsYXRmb3JtCisgCitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0Lm9yaWcvc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYworKysrIGNocm9taXVtLTEwMy4wLjUwNjAu MTM0L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MK K0BAIC02MSw2ICs2MSw5IEBAIGJvb2wgSXNCYXNlbGluZVBvbGljeUFsbG93ZWQoaW50IHN5c25v KQorICNpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc01pcHNQ cml2YXRlKHN5c25vKSB8fAorICNlbmRpZgorKyNpZiBkZWZpbmVkKF9fcmlzY3YpCisrICAgICAg ICAgU3lzY2FsbFNldHM6OklzUmlzY3ZQcml2YXRlKHN5c25vKSB8fAorKyNlbmRpZgorICAgICAg ICAgIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRPcGVyYXRpb25PbkZkKHN5c25vKTsKKyAgIC8vIGNs YW5nLWZvcm1hdCBvbgorIH0KK0BAIC0xOTgsNyArMjAxLDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0 ZVN5c2NhbGxJbXBsKGludCBmc19kZQorICAgICByZXR1cm4gUmVzdHJpY3RGY250bENvbW1hbmRz KCk7CisgI2VuZGlmCisgCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5l ZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgIC8vIGZvcmsoKSBpcyBuZXZl ciB1c2VkIGFzIGEgc3lzdGVtIGNhbGwgKGNsb25lKCkgaXMgdXNlZCBpbnN0ZWFkKSwgYnV0IHdl CisgICAvLyBoYXZlIHNlZW4gaXQgaW4gZmFsbGJhY2sgY29kZSBvbiBBbmRyb2lkLgorICAgaWYg KHN5c25vID09IF9fTlJfZm9yaykgeworQEAgLTI1Myw3ICsyNTYsNyBAQCBSZXN1bHRFeHByIEV2 YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICB9CisgCisgI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fcmlzY3YpCisgICBpZiAoc3lzbm8gPT0gX19OUl9tbWFwKQorICAgICByZXR1cm4gUmVz dHJpY3RNbWFwRmxhZ3MoKTsKKyAjZW5kaWYKK0BAIC0yNzQsNyArMjc3LDcgQEAgUmVzdWx0RXhw ciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQorICAgICByZXR1cm4gUmVzdHJpY3RQcmN0 bCgpOworIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICBpZiAoc3lzbm8gPT0g X19OUl9zb2NrZXRwYWlyKSB7CisgICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwgUEZfVU5JWC4g Q3Jhc2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgorICAgICBzdGF0aWNfYXNzZXJ0KEFGX1VO SVggPT0gUEZfVU5JWCwKK0luZGV4OiBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5j YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0Lm9yaWcvc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMu Y2MKKysrKyBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworQEAgLTM3LDYgKzM3 LDcgQEAKKyAKKyAjaWYgKEJVSUxERkxBRyhJU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9N RU9TX0xBQ1JPUykpICYmIFwKKyAgICAgIWRlZmluZWQoX19hcm1fXykgJiYgIWRlZmluZWQoX19h YXJjaDY0X18pICYmICAgICAgICAgICAgIFwKKysgICAgIWRlZmluZWQoX19yaXNjdikgJiYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIWRlZmluZWQoUFRSQUNF X0dFVF9USFJFQURfQVJFQSkKKyAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBzaW5j ZSBwdHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKKyAvLyB0aGUgb25lIGluIFVi dW50dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4KK0BAIC00 NDMsNyArNDQ0LDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdFB0cmFjZSgpIHsKKyAjZW5kaWYKKyAg IHJldHVybiBTd2l0Y2gocmVxdWVzdCkKKyAgICAgICAuQ0FTRVMoKAorLSNpZiAhZGVmaW5lZChf X2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlz Y3YpCisgICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQUkVHUywg UFRSQUNFX0dFVF9USFJFQURfQVJFQSwKKyAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdT RVQsCisgI2VuZGlmCitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNo cm9taXVtLTEwMy4wLjUwNjAuMTM0Lm9yaWcvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0L3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC0xMDMsNyArMTAz LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNVbWFzayhpbnQgc3lzbm8pIHsKKyAvLyBCb3RoIEVQ RVJNIGFuZCBFTk9FTlQgYXJlIHZhbGlkIGVycm5vIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQgaW4g Y29tbWVudC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Cisg ICBzd2l0Y2ggKHN5c25vKSB7CistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVm aW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX2Fj Y2VzczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfY2htb2Q6 CisgICAgIGNhc2UgX19OUl9jaG93bjoKK0BAIC0xMzYsNyArMTM2LDcgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubworICAgICBjYXNlIF9fTlJfZmFjY2Vzc2F0MjoK KyAgICAgY2FzZSBfX05SX2ZjaG1vZGF0OgorICAgICBjYXNlIF9fTlJfZmNob3duYXQ6ICAvLyBT aG91bGQgYmUgY2FsbGVkIGNob3duYXQgPworLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pCisrI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRh dDogIC8vIGZzdGF0YXQoKS4gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VsaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorQEAgLTIyNiw3 ICsyMjYsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjCisgICAg IGNhc2UgX19OUl9vbGRmc3RhdDoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19y aXNjdikKKyAgICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTogIC8vIEVQRVJNIG5vdCBhIHZh bGlkIGVycm5vLgorICNlbGlmIGRlZmluZWQoX19hcm1fXykKKyAgICAgY2FzZSBfX05SX2FybV9z eW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KK0BAIC0yNDUsNyAr MjQ1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRGaWxlU3lzdGVtQWNjZQorICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pCisgICAgIGNhc2UgX19OUl9mY2hv d24zMjoKKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfZ2V0ZGVu dHM6ICAgIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNlbmRpZgorICAgICBjYXNlIF9f TlJfZ2V0ZGVudHM2NDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorQEAgLTMyNCw3ICsz MjQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuCisgYm9vbCBT eXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oaW50IHN5c25vKSB7CisgICBzd2l0 Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zZXRwZ2lkOgorLSNpZiAhZGVmaW5lZChfX2Fh cmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3Yp CisgICAgIGNhc2UgX19OUl9nZXRwZ3JwOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0c2lk OgorQEAgLTM1OCw3ICszNTgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxI YW5kbGluCisgICAgIGNhc2UgX19OUl9ydF9zaWdxdWV1ZWluZm86CisgICAgIGNhc2UgX19OUl9y dF9zaWdzdXNwZW5kOgorICAgICBjYXNlIF9fTlJfcnRfdGdzaWdxdWV1ZWluZm86CistI2lmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX3NpZ25hbGZkOgorICNlbmRpZgorICAgICBjYXNl IF9fTlJfc2lnbmFsZmQ0OgorQEAgLTM4MiwxMiArMzgyLDEyIEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZE9wZXJhdGlvbk9uRmQKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBf X05SX2Nsb3NlOgorICAgICBjYXNlIF9fTlJfZHVwOgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRf XykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAg IGNhc2UgX19OUl9kdXAyOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZHVwMzoKKyAjaWYgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18p IHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfc2h1dGRvd246CisgI2VuZGlm CisgICAgICAgcmV0dXJuIHRydWU7CitAQCAtNDI2LDcgKzQyNiw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2Fz ZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgorICAgICBj YXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRf XykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAg IGNhc2UgX19OUl9mb3JrOgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pCitAQCAtNDM3LDcgKzQzNyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NldF90aWRfYWRk cmVzczoKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CistI2lmICFkZWZpbmVkKF9fbWlwc19fKSAm JiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZp bmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfdmZv cms6CisgI2VuZGlmCisgICAgIGRlZmF1bHQ6CitAQCAtNDYyLDcgKzQ2Miw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEZ1dGV4KGludCBzeXMKKyAKKyBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRFcG9sbChpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5l ZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfZXBvbGxfY3JlYXRlOgorICAgICBjYXNlIF9fTlJf ZXBvbGxfd2FpdDoKKyAjZW5kaWYKK0BAIC00ODMsMTQgKzQ4MywxNCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRFcG9sbChpbnQgc3lzCisgCisgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7Cist I2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYg IWRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX3BpcGU6CisgI2VuZGlmCisgICAgIGNh c2UgX19OUl9waXBlMjoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgZGVmYXVsdDoKKyAjaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfc29ja2V0cGFpcjogIC8v IFdlIHdpbGwgd2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KKyAjZW5kaWYKKyAgICAgICBy ZXR1cm4gZmFsc2U7CitAQCAtNTAwLDcgKzUwMCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZEdldE9yTW9kaWZ5U28KKyBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5 U29ja2V0KGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAor LSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9hY2NlcHQ6CisgICAgIGNhc2UgX19OUl9h Y2NlcHQ0OgorICAgICBjYXNlIF9fTlJfYmluZDoKK0BAIC01NTQsNyArNTU0LDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorICAgICBjYXNlIF9fTlJfbWluY29y ZToKKyAgICAgY2FzZSBfX05SX21sb2NrYWxsOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5l ZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Jp c2N2KQorICAgICBjYXNlIF9fTlJfbW1hcDoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCitAQCAtNTg3LDcgKzU4Nyw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19O Ul9fbGxzZWVrOgorICNlbmRpZgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9w b2xsOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfcHBvbGw6CitAQCAtNjA4LDcgKzYwOCw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQKKyAgICAgY2FzZSBfX05S X3JlY3Y6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18p CisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgICAgY2Fz ZSBfX05SX3JlY3Zmcm9tOiAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCisgICAgIGNhc2UgX19O Ul9yZWN2bXNnOiAgIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgorICNlbmRpZgorQEAgLTYyMyw3 ICs2MjMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50CisgICAg IGNhc2UgX19OUl9zZW5kOgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3Yp CisgICAgIGNhc2UgX19OUl9zZW5kbXNnOiAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4K KyAgICAgY2FzZSBfX05SX3NlbmR0bzogICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgor ICNlbmRpZgorQEAgLTY3Miw3ICs2NzIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1NlY2NvbXAo aW50IHN5c25vKSB7CisgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIo aW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zY2hlZF95 aWVsZDoKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfcGF1c2U6CisgI2VuZGlm CisgICAgIGNhc2UgX19OUl9uYW5vc2xlZXA6CitAQCAtNzU2LDcgKzc1Niw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzTnVtYShpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2dldGNwdToKKyAg ICAgY2FzZSBfX05SX21iaW5kOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICAg ICBjYXNlIF9fTlJfbWlncmF0ZV9wYWdlczoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX21vdmVf cGFnZXM6CitAQCAtNzkxLDcgKzc5MSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsUHJv Y2Vzc0Vudmlyb24KKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2FjY3Q6ICAv LyBQcml2aWxlZ2VkLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykK KysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNl IF9fTlJfZ2V0cmxpbWl0OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pCitAQCAtODI2LDcgKzgyNiw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVi dWcoaW50IHN5c25vKSB7CisgCisgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0 dXMoaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CistI2lmICFkZWZpbmVkKF9fYWFy Y2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikK KyAgICAgY2FzZSBfX05SX19zeXNjdGw6CisgICAgIGNhc2UgX19OUl9zeXNmczoKKyAjZW5kaWYK K0BAIC04NDQsNyArODQ0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0 dXMoaQorIAorIGJvb2wgU3lzY2FsbFNldHM6OklzRXZlbnRGZChpbnQgc3lzbm8pIHsKKyAgIHN3 aXRjaCAoc3lzbm8pIHsKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfZXZlbnRm ZDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX2V2ZW50ZmQyOgorQEAgLTg5Niw3ICs4OTYsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0tleU1hbmFnZW1lbnQoaW50IHN5CisgfQorIAorICNpZiBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV82NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2 KQorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNlbWFwaG9yZXMoaW50IHN5c25vKSB7Cisg ICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9zZW1jdGw6CitAQCAtOTE2LDcgKzkx Nyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNlbWFwaG9yZXMoaW4KKyAKKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKKyAgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19yaXNjdikKKyAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5 IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lz dGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKK0BAIC05 MzIsNyArOTM0LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2hhcmVkTWVtb3J5KAor ICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysg ICAgZGVmaW5lZChfX3Jpc2N2KQorIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VR dWV1ZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21z Z2N0bDoKK0BAIC05NjMsNyArOTY2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBj KGludCBzeXNubworIAorIGJvb2wgU3lzY2FsbFNldHM6OklzQW55U3lzdGVtVihpbnQgc3lzbm8p IHsKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKSB8fCBcCisrICAgIGRlZmlu ZWQoX19yaXNjdikKKyAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUoc3lzbm8pIHx8IElz U3lzdGVtVlNlbWFwaG9yZXMoc3lzbm8pIHx8CisgICAgICAgICAgSXNTeXN0ZW1WU2hhcmVkTWVt b3J5KHN5c25vKTsKKyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCitAQCAtMTAwMCw3ICsx MDA0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBZHZhbmNlZFNjaGVkdWxlcihpbgorIGJvb2wg U3lzY2FsbFNldHM6OklzSW5vdGlmeShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsK KyAgICAgY2FzZSBfX05SX2lub3RpZnlfYWRkX3dhdGNoOgorLSNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisg ICAgIGNhc2UgX19OUl9pbm90aWZ5X2luaXQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9pbm90 aWZ5X2luaXQxOgorQEAgLTExMzgsNyArMTE0Miw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlz YyhpbnQgc3lzbm8pIHsKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgICBjYXNlIF9fTlJf dHV4Y2FsbDoKKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZp bmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfdnNl cnZlcjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BAIC0xMTczLDYgKzExNzcsMTcg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBcm1Qcml2YXRlKGludCBzeXNubworIH0KKyAjZW5kaWYg IC8vIGRlZmluZWQoX19hcm1fXykKKyAKKysjaWYgZGVmaW5lZChfX3Jpc2N2KQorK2Jvb2wgU3lz Y2FsbFNldHM6OklzUmlzY3ZQcml2YXRlKGludCBzeXNubykgeworKyAgc3dpdGNoIChzeXNubykg eworKyAgICBjYXNlIF9fTlJfcmlzY3ZfZmx1c2hfaWNhY2hlOgorKyAgICAgIHJldHVybiB0cnVl OworKyAgICBkZWZhdWx0OgorKyAgICAgIHJldHVybiBmYWxzZTsKKysgIH0KKyt9CisrI2VuZGlm ICAvLyBkZWZpbmVkKF9fcmlzY3YpCisrCisgI2lmIGRlZmluZWQoX19taXBzX18pCisgYm9vbCBT eXNjYWxsU2V0czo6SXNNaXBzUHJpdmF0ZShpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8p IHsKK0luZGV4OiBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMu MC41MDYwLjEzNC5vcmlnL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuaAorKysrIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0L3NhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAorQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgU0FO REJPWF9FWFBPUlQgU3lzY2FsbFNldHMgeworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fcmlzY3YpCisgICBzdGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihp bnQgc3lzbm8pOworICNlbmRpZgorIAorQEAgLTc5LDE4ICs3OSwyMSBAQCBjbGFzcyBTQU5EQk9Y X0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgICBzdGF0aWMgYm9vbCBJc0FzeW5jSW8oaW50IHN5c25v KTsKKyAgIHN0YXRpYyBib29sIElzS2V5TWFuYWdlbWVudChpbnQgc3lzbm8pOworICNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV82NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2KQor ICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pOworICNlbmRpZgor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgXAorICAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysg ICAgZGVmaW5lZChfX3Jpc2N2KQorICAgLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1 dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KKyAgIHN0YXRpYyBib29sIElz U3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pOworICNlbmRpZgorIAorICNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV82NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2KQorICAg c3RhdGljIGJvb2wgSXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubyk7CisgI2VuZGlmCisg CitAQCAtMTE3LDYgKzEyMCw5IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsK KyAgIHN0YXRpYyBib29sIElzTWlwc1ByaXZhdGUoaW50IHN5c25vKTsKKyAgIHN0YXRpYyBib29s IElzTWlwc01pc2MoaW50IHN5c25vKTsKKyAjZW5kaWYgIC8vIGRlZmluZWQoX19taXBzX18pCisr I2lmIGRlZmluZWQoX19yaXNjdikKKysgIHN0YXRpYyBib29sIElzUmlzY3ZQcml2YXRlKGludCBz eXNubyk7CisrI2VuZGlmCisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2Ugc2FuZGJveC4KK0luZGV4 OiBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2Nh bGwuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC5vcmlnL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworKysrIGNocm9taXVtLTEwMy4wLjUwNjAu MTM0L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYworQEAgLTE4LDcgKzE4LDcg QEAgbmFtZXNwYWNlIHNhbmRib3ggeworIG5hbWVzcGFjZSB7CisgCisgI2lmIGRlZmluZWQoQVJD SF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCist ICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisrICAgIGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorIC8vIE51bWJl ciB0aGF0J3Mgbm90IGN1cnJlbnRseSB1c2VkIGJ5IGFueSBMaW51eCBrZXJuZWwgQUJJcy4KKyBj b25zdCBpbnQga0ludmFsaWRTeXNjYWxsTnVtYmVyID0gMHgzNTFkMzsKKyAjZWxzZQorQEAgLTMw OCw2ICszMDgsMjggQEAgYXNtKC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSBrZQor ICAgICAiMjpyZXRcbiIKKyAgICAgIi5jZmlfZW5kcHJvY1xuIgorICAgICAiLnNpemUgU3lzY2Fs bEFzbSwgLi1TeXNjYWxsQXNtXG4iCisrI2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorKyAgICAiLnRl eHRcbiIKKysgICAgIi5hbGlnbiAyXG4iCisrICAgICIudHlwZSBTeXNjYWxsQXNtLCAlZnVuY3Rp b25cbiIKKysgICAgIlN5c2NhbGxBc206XG4iCisrICAgICIuY2ZpX3N0YXJ0cHJvY1xuIgorKyAg ICAiYmdleiBhMCwxZlxuIgorKyAgICAibGEgYTAsMmZcbiIKKysgICAgImogMmZcbiIKKysgICAg IjE6bXYgYTcsIGEwXG4iCisrICAgICJsZCBhMCwgKHQwKVxuIgorKyAgICAibGQgYTEsIDgodDAp XG4iCisrICAgICJsZCBhMiwgMTYodDApXG4iCisrICAgICJsZCBhMywgMjQodDApXG4iCisrICAg ICJsZCBhNCwgMzIodDApXG4iCisrICAgICJsZCBhNSwgNDAodDApXG4iCisrICAgICJsZCBhNiwg NDgodDApXG4iCisrICAgIC8vIEVudGVyIHRoZSBrZXJuZWwKKysgICAgInNjYWxsXG4iCisrICAg ICIyOnJldFxuIgorKyAgICAiLmNmaV9lbmRwcm9jXG4iCisrICAgICIuc2l6ZSBTeXNjYWxsQXNt LCAuLVN5c2NhbGxBc21cbiIKKyAjZW5kaWYKKyAgICAgKTsgIC8vIGFzbQorIAorQEAgLTQyNSw2 ICs0NDcsMTggQEAgaW50cHRyX3QgU3lzY2FsbDo6Q2FsbChpbnQgbnIsCisgICAgIHJldCA9IGlu b3V0OworICAgfQorIAorKyNlbGlmIGRlZmluZWQoX19yaXNjdikKKysgIGludHB0cl90IHJldDsK KysgIHsKKysgICAgcmVnaXN0ZXIgaW50cHRyX3QgaW5vdXQgX19hc21fXygiYTAiKSA9IG5yOwor KyAgICByZWdpc3RlciBjb25zdCBpbnRwdHJfdCogZGF0YSBfX2FzbV9fKCJ0MCIpID0gYXJnczsK KysgICAgYXNtIHZvbGF0aWxlKCJqYWwgU3lzY2FsbEFzbVxuIgorKyAgICAgICAgICAgICAgICAg OiAiK3IiKGlub3V0KQorKyAgICAgICAgICAgICAgICAgOiAiciIoZGF0YSkKKysgICAgICAgICAg ICAgICAgIDogIm1lbW9yeSIsICJhMSIsICJhMiIsICJhMyIsICJhNCIsICJhNSIsICJhNiIpOwor KyAgICByZXQgPSBpbm91dDsKKysgIH0KKysKKyAjZWxzZQorICNlcnJvciAiVW5pbXBsZW1lbnRl ZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQv c2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNo cm9taXVtLTEwMy4wLjUwNjAuMTM0Lm9yaWcvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50 aWFscy5jYworKysrIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0L3NhbmRib3gvbGludXgvc2Vydmlj ZXMvY3JlZGVudGlhbHMuY2MKK0BAIC04MCw3ICs4MCw3IEBAIGJvb2wgQ2hyb290VG9TYWZlRW1w dHlEaXIoKSB7CisgICBwaWRfdCBwaWQgPSAtMTsKKyAgIGFsaWduYXMoMTYpIGNoYXIgc3RhY2tf YnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZ KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKKy0gICAgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkKKysgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwg ZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisgICAvLyBUaGUgc3RhY2sgZ3Jvd3MgZG93 bndhcmQuCisgICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFja19idWYpOwor ICNlbHNlCitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9saW51eC9zeXNj YWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9taXVtLTEw My4wLjUwNjAuMTM0Lm9yaWcvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJv Y2Vzcy5jYworKysrIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0L3NhbmRib3gvbGludXgvc3lzY2Fs bF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKK0BAIC0xMTcsNDQgKzExNyw0NiBAQCBib29sIEJy b2tlclByb2Nlc3M6OklzU3lzY2FsbEJyb2tlcmFibGUoCisgICAvLyBhbmQgYXJlIGRlZmF1bHQg ZGlzYWJsZWQgaW4gQW5kcm9pZC4gU28sIHdlIHNob3VsZCByZWZ1c2UgdG8gYnJva2VyIHRoZW0K KyAgIC8vIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgcGxhdGZvcm0ncyByZXN0cmljdGlvbnMu CisgICBzd2l0Y2ggKHN5c25vKSB7CistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhQlVJ TERGTEFHKElTX0FORFJPSUQpCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhQlVJTERG TEFHKElTX0FORFJPSUQpICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9hY2Nl c3M6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9mYWNjZXNzYXQ6CisgICAgIGNhc2UgX19OUl9m YWNjZXNzYXQyOgorICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBwb2xpY3lfLT5hbGxvd2Vk X2NvbW1hbmRfc2V0LnRlc3QoQ09NTUFORF9BQ0NFU1MpOworIAorLSNpZiAhZGVmaW5lZChfX2Fh cmNoNjRfXykgJiYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorKyNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykgJiYgIUJVSUxERkxBRyhJU19BTkRST0lEKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAg ICBjYXNlIF9fTlJfbWtkaXI6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9ta2RpcmF0OgorICAg ICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBwb2xpY3lfLT5hbGxvd2VkX2NvbW1hbmRfc2V0LnRl c3QoQ09NTUFORF9NS0RJUik7CisgCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhQlVJ TERGTEFHKElTX0FORFJPSUQpCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhQlVJTERG TEFHKElTX0FORFJPSUQpICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9vcGVu OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfb3BlbmF0OgorICAgICAgIHJldHVybiAhZmFzdF9j aGVjayB8fCBwb2xpY3lfLT5hbGxvd2VkX2NvbW1hbmRfc2V0LnRlc3QoQ09NTUFORF9PUEVOKTsK KyAKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkK KysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkgJiYg IWRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX3JlYWRsaW5rOgorICNlbmRpZgorICAg ICBjYXNlIF9fTlJfcmVhZGxpbmthdDoKKyAgICAgICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgcG9s aWN5Xy0+YWxsb3dlZF9jb21tYW5kX3NldC50ZXN0KENPTU1BTkRfUkVBRExJTkspOworIAorLSNp ZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorKyNpZiAh ZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIUJVSUxERkxBRyhJU19BTkRST0lEKSAmJiAhZGVmaW5l ZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfcmVuYW1lOgorICNlbmRpZgorKyNpZmRlZiBfX05S X3JlbmFtZWF0CisgICAgIGNhc2UgX19OUl9yZW5hbWVhdDoKKysjZW5kaWYKKyAgICAgY2FzZSBf X05SX3JlbmFtZWF0MjoKKyAgICAgICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgcG9saWN5Xy0+YWxs b3dlZF9jb21tYW5kX3NldC50ZXN0KENPTU1BTkRfUkVOQU1FKTsKKyAKKy0jaWYgIWRlZmluZWQo X19hYXJjaDY0X18pICYmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKysjaWYgIWRlZmluZWQoX19h YXJjaDY0X18pICYmICFCVUlMREZMQUcoSVNfQU5EUk9JRCkgJiYgIWRlZmluZWQoX19yaXNjdikK KyAgICAgY2FzZSBfX05SX3JtZGlyOgorICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBwb2xp Y3lfLT5hbGxvd2VkX2NvbW1hbmRfc2V0LnRlc3QoQ09NTUFORF9STURJUik7CisgI2VuZGlmCisg CistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhQlVJTERGTEFHKElTX0FORFJPSUQpCisr I2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhQlVJTERGTEFHKElTX0FORFJPSUQpICYmICFk ZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9zdGF0OgorICAgICBjYXNlIF9fTlJfbHN0 YXQ6CisgI2VuZGlmCitAQCAtMTY0LDcgKzE2Niw3IEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6SXNT eXNjYWxsQnJva2VyYWJsZSgKKyAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKKyAgICAgY2Fz ZSBfX05SX2ZzdGF0YXQ2NDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX25ld2ZzdGF0 YXQ6CisgI2VuZGlmCisgICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IHBvbGljeV8tPmFsbG93 ZWRfY29tbWFuZF9zZXQudGVzdChDT01NQU5EX1NUQVQpOworQEAgLTE3OSw3ICsxODEsNyBAQCBi b29sIEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEJyb2tlcmFibGUoCisgICAgICAgcmV0dXJuICFm YXN0X2NoZWNrIHx8IHBvbGljeV8tPmFsbG93ZWRfY29tbWFuZF9zZXQudGVzdChDT01NQU5EX1NU QVQpOworICNlbmRpZgorIAorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIUJVSUxERkxB RyhJU19BTkRST0lEKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIUJVSUxERkxBRyhJ U19BTkRST0lEKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfdW5saW5rOgor ICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBwb2xpY3lfLT5hbGxvd2VkX2NvbW1hbmRfc2V0 LnRlc3QoQ09NTUFORF9VTkxJTkspOworICNlbmRpZgorSW5kZXg6IGNocm9taXVtLTEwMy4wLjUw NjAuMTM0L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQub3JpZy9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAorKysrIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0 L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCitAQCAtMzgsNiAr MzgsOSBAQAorICNpZm5kZWYgRU1fQUFSQ0g2NAorICNkZWZpbmUgRU1fQUFSQ0g2NCAxODMKKyAj ZW5kaWYKKysjaWZuZGVmIEVNX1JJU0NWCisrI2RlZmluZSBFTV9SSVNDViAyNDMKKysjZW5kaWYK KyAKKyAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJVAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0 QklUIDB4ODAwMDAwMDAKK0BAIC03MCw2ICs3Myw5IEBACisgI2lmbmRlZiBBVURJVF9BUkNIX0FB UkNINjQKKyAjZGVmaW5lIEFVRElUX0FSQ0hfQUFSQ0g2NCAoRU1fQUFSQ0g2NCB8IF9fQVVESVRf QVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKKyAjZW5kaWYKKysjaWZuZGVmIEFVRElUX0FS Q0hfUklTQ1Y2NAorKyNkZWZpbmUgQVVESVRfQVJDSF9SSVNDVjY0IChFTV9SSVNDVnxfX0FVRElU X0FSQ0hfNjRCSVR8X19BVURJVF9BUkNIX0xFKQorKyNlbmRpZgorIAorIC8vIEZvciBwcmN0bC5o CisgI2lmbmRlZiBQUl9TRVRfU0VDQ09NUAorSW5kZXg6IGNocm9taXVtLTEwMy4wLjUwNjAuMTM0 L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC5vcmlnL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvbGludXhfc2lnbmFsLmgKKysrKyBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCitAQCAtMTMsNyArMTMsNyBAQAor IC8vIChub3QgdW5kZWZpbmVkLCBidXQgZGVmaW5lZCBkaWZmZXJlbnQgdmFsdWVzIGFuZCBpbiBk aWZmZXJlbnQgbWVtb3J5CisgLy8gbGF5b3V0cykuIFNvLCBmaWxsIHRoZSBnYXAgaGVyZS4KKyAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2Fh cmNoNjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorIAorICNkZWZpbmUgTElOVVhfU0lHSFVQIDEK KyAjZGVmaW5lIExJTlVYX1NJR0lOVCAyCitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC5vcmlnL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvbGludXhfc3RhdC5oCisrKysgY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKK0BAIC0xNTAsNyArMTUwLDcgQEAgc3RydWN0 IGtlcm5lbF9zdGF0IHsKKyAgIGludCBzdF9ibG9ja3M7CisgICBpbnQgc3RfcGFkNFsxNF07Cisg fTsKKy0jZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNlbGlmIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyBzdHJ1Y3Qga2VybmVsX3N0YXQgeworICAgdW5zaWdu ZWQgbG9uZyBzdF9kZXY7CisgICB1bnNpZ25lZCBsb25nIHN0X2lubzsKK0luZGV4OiBjaHJvbWl1 bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2Nh bGxzLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC5vcmlnL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorKysrIGNocm9taXVtLTEw My4wLjUwNjAuMTM0L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMu aAorQEAgLTM1LDUgKzM1LDkgQEAKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIgorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKF9f cmlzY3YpICYmIF9fcmlzY3ZfeGxlbiA9PSA2NAorKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL3Jpc2N2NjRfbGludXhfc3lzY2FsbHMuaCIKKysjZW5kaWYKKysKKyAjZW5k aWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KKyAK K0luZGV4OiBjaHJvbWl1bS0xMDMuMC41MDYwLjEzNC9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL3Jpc2N2NjRfbGludXhfc3lzY2FsbHMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAor KysrIGNocm9taXVtLTEwMy4wLjUwNjAuMTM0L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv cmlzY3Y2NF9saW51eF9zeXNjYWxscy5oCitAQCAtMCwwICsxLDEyMjIgQEAKKysvLyBDb3B5cmln aHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVm IFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUklTQ1Y2NF9MSU5VWF9TWVNDQUxMU19IXwor KyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19SSVNDVjY0X0xJTlVYX1NZU0NB TExTX0hfCisrCisrI2luY2x1ZGUgPGFzbS1nZW5lcmljL3VuaXN0ZC5oPgorKworKyNpZiAhZGVm aW5lZChfX05SX2lvX3NldHVwKQorKyNkZWZpbmUgX19OUl9pb19zZXR1cCAwCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfaW9fZGVzdHJveSkKKysjZGVmaW5lIF9fTlJfaW9fZGVzdHJv eSAxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfaW9fc3VibWl0KQorKyNkZWZpbmUg X19OUl9pb19zdWJtaXQgMgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2lvX2NhbmNl bCkKKysjZGVmaW5lIF9fTlJfaW9fY2FuY2VsIDMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9pb19nZXRldmVudHMpCisrI2RlZmluZSBfX05SX2lvX2dldGV2ZW50cyA0CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0eGF0dHIpCisrI2RlZmluZSBfX05SX3NldHhhdHRy IDUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9sc2V0eGF0dHIpCisrI2RlZmluZSBf X05SX2xzZXR4YXR0ciA2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZnNldHhhdHRy KQorKyNkZWZpbmUgX19OUl9mc2V0eGF0dHIgNworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX2dldHhhdHRyKQorKyNkZWZpbmUgX19OUl9nZXR4YXR0ciA4CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfbGdldHhhdHRyKQorKyNkZWZpbmUgX19OUl9sZ2V0eGF0dHIgOQorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZnZXR4YXR0cikKKysjZGVmaW5lIF9fTlJfZmdl dHhhdHRyIDEwCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbGlzdHhhdHRyKQorKyNk ZWZpbmUgX19OUl9saXN0eGF0dHIgMTEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9s bGlzdHhhdHRyKQorKyNkZWZpbmUgX19OUl9sbGlzdHhhdHRyIDEyCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfZmxpc3R4YXR0cikKKysjZGVmaW5lIF9fTlJfZmxpc3R4YXR0ciAxMwor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlbW92ZXhhdHRyKQorKyNkZWZpbmUgX19O Ul9yZW1vdmV4YXR0ciAxNAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2xyZW1vdmV4 YXR0cikKKysjZGVmaW5lIF9fTlJfbHJlbW92ZXhhdHRyIDE1CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfZnJlbW92ZXhhdHRyKQorKyNkZWZpbmUgX19OUl9mcmVtb3ZleGF0dHIgMTYK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRjd2QpCisrI2RlZmluZSBfX05SX2dl dGN3ZCAxNworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2xvb2t1cF9kY29va2llKQor KyNkZWZpbmUgX19OUl9sb29rdXBfZGNvb2tpZSAxOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX2V2ZW50ZmQyKQorKyNkZWZpbmUgX19OUl9ldmVudGZkMiAxOQorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX2Vwb2xsX2NyZWF0ZTEpCisrI2RlZmluZSBfX05SX2Vwb2xsX2Ny ZWF0ZTEgMjAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9lcG9sbF9jdGwpCisrI2Rl ZmluZSBfX05SX2Vwb2xsX2N0bCAyMQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Vw b2xsX3B3YWl0KQorKyNkZWZpbmUgX19OUl9lcG9sbF9wd2FpdCAyMgorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX2R1cCkKKysjZGVmaW5lIF9fTlJfZHVwIDIzCisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfZHVwMykKKysjZGVmaW5lIF9fTlJfZHVwMyAyNAorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX2ZjbnRsKQorKyNkZWZpbmUgX19OUl9mY250bCAyNQorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2lub3RpZnlfaW5pdDEpCisrI2RlZmluZSBfX05S X2lub3RpZnlfaW5pdDEgMjYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9pbm90aWZ5 X2FkZF93YXRjaCkKKysjZGVmaW5lIF9fTlJfaW5vdGlmeV9hZGRfd2F0Y2ggMjcKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9pbm90aWZ5X3JtX3dhdGNoKQorKyNkZWZpbmUgX19OUl9p bm90aWZ5X3JtX3dhdGNoIDI4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfaW9jdGwp CisrI2RlZmluZSBfX05SX2lvY3RsIDI5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf aW9wcmlvX3NldCkKKysjZGVmaW5lIF9fTlJfaW9wcmlvX3NldCAzMAorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX2lvcHJpb19nZXQpCisrI2RlZmluZSBfX05SX2lvcHJpb19nZXQgMzEK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mbG9jaykKKysjZGVmaW5lIF9fTlJfZmxv Y2sgMzIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9ta25vZGF0KQorKyNkZWZpbmUg X19OUl9ta25vZGF0IDMzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbWtkaXJhdCkK KysjZGVmaW5lIF9fTlJfbWtkaXJhdCAzNAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X3VubGlua2F0KQorKyNkZWZpbmUgX19OUl91bmxpbmthdCAzNQorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX3N5bWxpbmthdCkKKysjZGVmaW5lIF9fTlJfc3ltbGlua2F0IDM2CisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbGlua2F0KQorKyNkZWZpbmUgX19OUl9saW5rYXQg MzcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9yZW5hbWVhdCkKKysjZGVmaW5lIF9f TlJfcmVuYW1lYXQgMzgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl91bW91bnQyKQor KyNkZWZpbmUgX19OUl91bW91bnQyIDM5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf bW91bnQpCisrI2RlZmluZSBfX05SX21vdW50IDQwCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfcGl2b3Rfcm9vdCkKKysjZGVmaW5lIF9fTlJfcGl2b3Rfcm9vdCA0MQorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX25mc3NlcnZjdGwpCisrI2RlZmluZSBfX05SX25mc3NlcnZj dGwgNDIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zdGF0ZnMpCisrI2RlZmluZSBf X05SX3N0YXRmcyA0MworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZzdGF0ZnMpCisr I2RlZmluZSBfX05SX2ZzdGF0ZnMgNDQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl90 cnVuY2F0ZSkKKysjZGVmaW5lIF9fTlJfdHJ1bmNhdGUgNDUKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl9mdHJ1bmNhdGUpCisrI2RlZmluZSBfX05SX2Z0cnVuY2F0ZSA0NgorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZhbGxvY2F0ZSkKKysjZGVmaW5lIF9fTlJfZmFsbG9j YXRlIDQ3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZmFjY2Vzc2F0KQorKyNkZWZp bmUgX19OUl9mYWNjZXNzYXQgNDgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9jaGRp cikKKysjZGVmaW5lIF9fTlJfY2hkaXIgNDkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9mY2hkaXIpCisrI2RlZmluZSBfX05SX2ZjaGRpciA1MAorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX2Nocm9vdCkKKysjZGVmaW5lIF9fTlJfY2hyb290IDUxCisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfZmNobW9kKQorKyNkZWZpbmUgX19OUl9mY2htb2QgNTIKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mY2htb2RhdCkKKysjZGVmaW5lIF9fTlJfZmNobW9k YXQgNTMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mY2hvd25hdCkKKysjZGVmaW5l IF9fTlJfZmNob3duYXQgNTQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mY2hvd24p CisrI2RlZmluZSBfX05SX2ZjaG93biA1NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X29wZW5hdCkKKysjZGVmaW5lIF9fTlJfb3BlbmF0IDU2CisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfY2xvc2UpCisrI2RlZmluZSBfX05SX2Nsb3NlIDU3CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfdmhhbmd1cCkKKysjZGVmaW5lIF9fTlJfdmhhbmd1cCA1OAorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX3BpcGUyKQorKyNkZWZpbmUgX19OUl9waXBlMiA1OQor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3F1b3RhY3RsKQorKyNkZWZpbmUgX19OUl9x dW90YWN0bCA2MAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldGRlbnRzNjQpCisr I2RlZmluZSBfX05SX2dldGRlbnRzNjQgNjEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9sc2VlaykKKysjZGVmaW5lIF9fTlJfbHNlZWsgNjIKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9yZWFkKQorKyNkZWZpbmUgX19OUl9yZWFkIDYzCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfd3JpdGUpCisrI2RlZmluZSBfX05SX3dyaXRlIDY0CisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfcmVhZHYpCisrI2RlZmluZSBfX05SX3JlYWR2IDY1CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfd3JpdGV2KQorKyNkZWZpbmUgX19OUl93cml0ZXYgNjYK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9wcmVhZDY0KQorKyNkZWZpbmUgX19OUl9w cmVhZDY0IDY3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcHdyaXRlNjQpCisrI2Rl ZmluZSBfX05SX3B3cml0ZTY0IDY4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcHJl YWR2KQorKyNkZWZpbmUgX19OUl9wcmVhZHYgNjkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9wd3JpdGV2KQorKyNkZWZpbmUgX19OUl9wd3JpdGV2IDcwCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfc2VuZGZpbGUpCisrI2RlZmluZSBfX05SX3NlbmRmaWxlIDcxCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcHNlbGVjdDYpCisrI2RlZmluZSBfX05SX3BzZWxl Y3Q2IDcyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcHBvbGwpCisrI2RlZmluZSBf X05SX3Bwb2xsIDczCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2lnbmFsZmQ0KQor KyNkZWZpbmUgX19OUl9zaWduYWxmZDQgNzQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul92bXNwbGljZSkKKysjZGVmaW5lIF9fTlJfdm1zcGxpY2UgNzUKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9zcGxpY2UpCisrI2RlZmluZSBfX05SX3NwbGljZSA3NgorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX3RlZSkKKysjZGVmaW5lIF9fTlJfdGVlIDc3CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfcmVhZGxpbmthdCkKKysjZGVmaW5lIF9fTlJfcmVhZGxp bmthdCA3OAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX25ld2ZzdGF0YXQpCisrI2Rl ZmluZSBfX05SX25ld2ZzdGF0YXQgNzkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9m c3RhdCkKKysjZGVmaW5lIF9fTlJfZnN0YXQgODAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9zeW5jKQorKyNkZWZpbmUgX19OUl9zeW5jIDgxCisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfZnN5bmMpCisrI2RlZmluZSBfX05SX2ZzeW5jIDgyCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfZmRhdGFzeW5jKQorKyNkZWZpbmUgX19OUl9mZGF0YXN5bmMgODMKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zeW5jX2ZpbGVfcmFuZ2UpCisrI2RlZmluZSBf X05SX3N5bmNfZmlsZV9yYW5nZSA4NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Rp bWVyZmRfY3JlYXRlKQorKyNkZWZpbmUgX19OUl90aW1lcmZkX2NyZWF0ZSA4NQorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX3RpbWVyZmRfc2V0dGltZSkKKysjZGVmaW5lIF9fTlJfdGlt ZXJmZF9zZXR0aW1lIDg2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdGltZXJmZF9n ZXR0aW1lKQorKyNkZWZpbmUgX19OUl90aW1lcmZkX2dldHRpbWUgODcKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl91dGltZW5zYXQpCisrI2RlZmluZSBfX05SX3V0aW1lbnNhdCA4OAor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2FjY3QpCisrI2RlZmluZSBfX05SX2FjY3Qg ODkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9jYXBnZXQpCisrI2RlZmluZSBfX05S X2NhcGdldCA5MAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2NhcHNldCkKKysjZGVm aW5lIF9fTlJfY2Fwc2V0IDkxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcGVyc29u YWxpdHkpCisrI2RlZmluZSBfX05SX3BlcnNvbmFsaXR5IDkyCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfZXhpdCkKKysjZGVmaW5lIF9fTlJfZXhpdCA5MworKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX2V4aXRfZ3JvdXApCisrI2RlZmluZSBfX05SX2V4aXRfZ3JvdXAgOTQK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl93YWl0aWQpCisrI2RlZmluZSBfX05SX3dh aXRpZCA5NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldF90aWRfYWRkcmVzcykK KysjZGVmaW5lIF9fTlJfc2V0X3RpZF9hZGRyZXNzIDk2CisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfdW5zaGFyZSkKKysjZGVmaW5lIF9fTlJfdW5zaGFyZSA5NworKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX2Z1dGV4KQorKyNkZWZpbmUgX19OUl9mdXRleCA5OAorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldF9yb2J1c3RfbGlzdCkKKysjZGVmaW5lIF9fTlJf c2V0X3JvYnVzdF9saXN0IDk5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0X3Jv YnVzdF9saXN0KQorKyNkZWZpbmUgX19OUl9nZXRfcm9idXN0X2xpc3QgMTAwCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfbmFub3NsZWVwKQorKyNkZWZpbmUgX19OUl9uYW5vc2xlZXAg MTAxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0aXRpbWVyKQorKyNkZWZpbmUg X19OUl9nZXRpdGltZXIgMTAyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0aXRp bWVyKQorKyNkZWZpbmUgX19OUl9zZXRpdGltZXIgMTAzCisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfa2V4ZWNfbG9hZCkKKysjZGVmaW5lIF9fTlJfa2V4ZWNfbG9hZCAxMDQKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9pbml0X21vZHVsZSkKKysjZGVmaW5lIF9fTlJfaW5p dF9tb2R1bGUgMTA1CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZGVsZXRlX21vZHVs ZSkKKysjZGVmaW5lIF9fTlJfZGVsZXRlX21vZHVsZSAxMDYKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl90aW1lcl9jcmVhdGUpCisrI2RlZmluZSBfX05SX3RpbWVyX2NyZWF0ZSAxMDcK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl90aW1lcl9nZXR0aW1lKQorKyNkZWZpbmUg X19OUl90aW1lcl9nZXR0aW1lIDEwOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Rp bWVyX2dldG92ZXJydW4pCisrI2RlZmluZSBfX05SX3RpbWVyX2dldG92ZXJydW4gMTA5CisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdGltZXJfc2V0dGltZSkKKysjZGVmaW5lIF9fTlJf dGltZXJfc2V0dGltZSAxMTAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl90aW1lcl9k ZWxldGUpCisrI2RlZmluZSBfX05SX3RpbWVyX2RlbGV0ZSAxMTEKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9jbG9ja19zZXR0aW1lKQorKyNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1l IDExMgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Nsb2NrX2dldHRpbWUpCisrI2Rl ZmluZSBfX05SX2Nsb2NrX2dldHRpbWUgMTEzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfY2xvY2tfZ2V0cmVzKQorKyNkZWZpbmUgX19OUl9jbG9ja19nZXRyZXMgMTE0CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfY2xvY2tfbmFub3NsZWVwKQorKyNkZWZpbmUgX19OUl9j bG9ja19uYW5vc2xlZXAgMTE1CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc3lzbG9n KQorKyNkZWZpbmUgX19OUl9zeXNsb2cgMTE2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfcHRyYWNlKQorKyNkZWZpbmUgX19OUl9wdHJhY2UgMTE3CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfc2NoZWRfc2V0cGFyYW0pCisrI2RlZmluZSBfX05SX3NjaGVkX3NldHBhcmFt IDExOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NjaGVkX3NldHNjaGVkdWxlcikK KysjZGVmaW5lIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyIDExOQorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX3NjaGVkX2dldHNjaGVkdWxlcikKKysjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0 c2NoZWR1bGVyIDEyMAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NjaGVkX2dldHBh cmFtKQorKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRwYXJhbSAxMjEKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9zY2hlZF9zZXRhZmZpbml0eSkKKysjZGVmaW5lIF9fTlJfc2NoZWRfc2V0 YWZmaW5pdHkgMTIyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2NoZWRfZ2V0YWZm aW5pdHkpCisrI2RlZmluZSBfX05SX3NjaGVkX2dldGFmZmluaXR5IDEyMworKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX3NjaGVkX3lpZWxkKQorKyNkZWZpbmUgX19OUl9zY2hlZF95aWVs ZCAxMjQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlf bWF4KQorKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4IDEyNQorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX3NjaGVkX2dldF9wcmlvcml0eV9taW4pCisrI2RlZmluZSBf X05SX3NjaGVkX2dldF9wcmlvcml0eV9taW4gMTI2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfc2NoZWRfcnJfZ2V0X2ludGVydmFsKQorKyNkZWZpbmUgX19OUl9zY2hlZF9ycl9nZXRf aW50ZXJ2YWwgMTI3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcmVzdGFydF9zeXNj YWxsKQorKyNkZWZpbmUgX19OUl9yZXN0YXJ0X3N5c2NhbGwgMTI4CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfa2lsbCkKKysjZGVmaW5lIF9fTlJfa2lsbCAxMjkKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl90a2lsbCkKKysjZGVmaW5lIF9fTlJfdGtpbGwgMTMwCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdGdraWxsKQorKyNkZWZpbmUgX19OUl90Z2tpbGwg MTMxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2lnYWx0c3RhY2spCisrI2RlZmlu ZSBfX05SX3NpZ2FsdHN0YWNrIDEzMgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3J0 X3NpZ3N1c3BlbmQpCisrI2RlZmluZSBfX05SX3J0X3NpZ3N1c3BlbmQgMTMzCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfcnRfc2lnYWN0aW9uKQorKyNkZWZpbmUgX19OUl9ydF9zaWdh Y3Rpb24gMTM0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcnRfc2lncHJvY21hc2sp CisrI2RlZmluZSBfX05SX3J0X3NpZ3Byb2NtYXNrIDEzNQorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX3J0X3NpZ3BlbmRpbmcpCisrI2RlZmluZSBfX05SX3J0X3NpZ3BlbmRpbmcgMTM2 CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcnRfc2lndGltZWR3YWl0KQorKyNkZWZp bmUgX19OUl9ydF9zaWd0aW1lZHdhaXQgMTM3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfcnRfc2lncXVldWVpbmZvKQorKyNkZWZpbmUgX19OUl9ydF9zaWdxdWV1ZWluZm8gMTM4Cisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcnRfc2lncmV0dXJuKQorKyNkZWZpbmUgX19O Ul9ydF9zaWdyZXR1cm4gMTM5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0cHJp b3JpdHkpCisrI2RlZmluZSBfX05SX3NldHByaW9yaXR5IDE0MAorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX2dldHByaW9yaXR5KQorKyNkZWZpbmUgX19OUl9nZXRwcmlvcml0eSAxNDEK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9yZWJvb3QpCisrI2RlZmluZSBfX05SX3Jl Ym9vdCAxNDIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRyZWdpZCkKKysjZGVm aW5lIF9fTlJfc2V0cmVnaWQgMTQzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0 Z2lkKQorKyNkZWZpbmUgX19OUl9zZXRnaWQgMTQ0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfc2V0cmV1aWQpCisrI2RlZmluZSBfX05SX3NldHJldWlkIDE0NQorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX3NldHVpZCkKKysjZGVmaW5lIF9fTlJfc2V0dWlkIDE0NgorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldHJlc3VpZCkKKysjZGVmaW5lIF9fTlJfc2V0 cmVzdWlkIDE0NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldHJlc3VpZCkKKysj ZGVmaW5lIF9fTlJfZ2V0cmVzdWlkIDE0OAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X3NldHJlc2dpZCkKKysjZGVmaW5lIF9fTlJfc2V0cmVzZ2lkIDE0OQorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX2dldHJlc2dpZCkKKysjZGVmaW5lIF9fTlJfZ2V0cmVzZ2lkIDE1MAor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldGZzdWlkKQorKyNkZWZpbmUgX19OUl9z ZXRmc3VpZCAxNTEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRmc2dpZCkKKysj ZGVmaW5lIF9fTlJfc2V0ZnNnaWQgMTUyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf dGltZXMpCisrI2RlZmluZSBfX05SX3RpbWVzIDE1MworKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3NldHBnaWQpCisrI2RlZmluZSBfX05SX3NldHBnaWQgMTU0CisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfZ2V0cGdpZCkKKysjZGVmaW5lIF9fTlJfZ2V0cGdpZCAxNTUKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRzaWQpCisrI2RlZmluZSBfX05SX2dldHNp ZCAxNTYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRzaWQpCisrI2RlZmluZSBf X05SX3NldHNpZCAxNTcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRncm91cHMp CisrI2RlZmluZSBfX05SX2dldGdyb3VwcyAxNTgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9zZXRncm91cHMpCisrI2RlZmluZSBfX05SX3NldGdyb3VwcyAxNTkKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl91bmFtZSkKKysjZGVmaW5lIF9fTlJfdW5hbWUgMTYwCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0aG9zdG5hbWUpCisrI2RlZmluZSBfX05SX3Nl dGhvc3RuYW1lIDE2MQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldGRvbWFpbm5h bWUpCisrI2RlZmluZSBfX05SX3NldGRvbWFpbm5hbWUgMTYyCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfZ2V0cmxpbWl0KQorKyNkZWZpbmUgX19OUl9nZXRybGltaXQgMTYzCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0cmxpbWl0KQorKyNkZWZpbmUgX19OUl9zZXRy bGltaXQgMTY0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0cnVzYWdlKQorKyNk ZWZpbmUgX19OUl9nZXRydXNhZ2UgMTY1CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf dW1hc2spCisrI2RlZmluZSBfX05SX3VtYXNrIDE2NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3ByY3RsKQorKyNkZWZpbmUgX19OUl9wcmN0bCAxNjcKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9nZXRjcHUpCisrI2RlZmluZSBfX05SX2dldGNwdSAxNjgKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9nZXR0aW1lb2ZkYXkpCisrI2RlZmluZSBfX05SX2dldHRp bWVvZmRheSAxNjkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXR0aW1lb2ZkYXkp CisrI2RlZmluZSBfX05SX3NldHRpbWVvZmRheSAxNzAKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9hZGp0aW1leCkKKysjZGVmaW5lIF9fTlJfYWRqdGltZXggMTcxCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0cGlkKQorKyNkZWZpbmUgX19OUl9nZXRwaWQgMTcyCisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0cHBpZCkKKysjZGVmaW5lIF9fTlJfZ2V0 cHBpZCAxNzMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXR1aWQpCisrI2RlZmlu ZSBfX05SX2dldHVpZCAxNzQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRldWlk KQorKyNkZWZpbmUgX19OUl9nZXRldWlkIDE3NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX2dldGdpZCkKKysjZGVmaW5lIF9fTlJfZ2V0Z2lkIDE3NgorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX2dldGVnaWQpCisrI2RlZmluZSBfX05SX2dldGVnaWQgMTc3CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0dGlkKQorKyNkZWZpbmUgX19OUl9nZXR0aWQgMTc4 CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc3lzaW5mbykKKysjZGVmaW5lIF9fTlJf c3lzaW5mbyAxNzkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tcV9vcGVuKQorKyNk ZWZpbmUgX19OUl9tcV9vcGVuIDE4MAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21x X3VubGluaykKKysjZGVmaW5lIF9fTlJfbXFfdW5saW5rIDE4MQorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX21xX3RpbWVkc2VuZCkKKysjZGVmaW5lIF9fTlJfbXFfdGltZWRzZW5kIDE4 MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21xX3RpbWVkcmVjZWl2ZSkKKysjZGVm aW5lIF9fTlJfbXFfdGltZWRyZWNlaXZlIDE4MworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX21xX25vdGlmeSkKKysjZGVmaW5lIF9fTlJfbXFfbm90aWZ5IDE4NAorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX21xX2dldHNldGF0dHIpCisrI2RlZmluZSBfX05SX21xX2dldHNl dGF0dHIgMTg1CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbXNnZ2V0KQorKyNkZWZp bmUgX19OUl9tc2dnZXQgMTg2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbXNnY3Rs KQorKyNkZWZpbmUgX19OUl9tc2djdGwgMTg3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfbXNncmN2KQorKyNkZWZpbmUgX19OUl9tc2dyY3YgMTg4CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfbXNnc25kKQorKyNkZWZpbmUgX19OUl9tc2dzbmQgMTg5CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfc2VtZ2V0KQorKyNkZWZpbmUgX19OUl9zZW1nZXQgMTkwCisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2VtY3RsKQorKyNkZWZpbmUgX19OUl9zZW1j dGwgMTkxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2VtdGltZWRvcCkKKysjZGVm aW5lIF9fTlJfc2VtdGltZWRvcCAxOTIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9z ZW1vcCkKKysjZGVmaW5lIF9fTlJfc2Vtb3AgMTkzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfc2htZ2V0KQorKyNkZWZpbmUgX19OUl9zaG1nZXQgMTk0CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfc2htY3RsKQorKyNkZWZpbmUgX19OUl9zaG1jdGwgMTk1CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2htYXQpCisrI2RlZmluZSBfX05SX3NobWF0IDE5Ngor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NobWR0KQorKyNkZWZpbmUgX19OUl9zaG1k dCAxOTcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zb2NrZXQpCisrI2RlZmluZSBf X05SX3NvY2tldCAxOTgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zb2NrZXRwYWly KQorKyNkZWZpbmUgX19OUl9zb2NrZXRwYWlyIDE5OQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX2JpbmQpCisrI2RlZmluZSBfX05SX2JpbmQgMjAwCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfbGlzdGVuKQorKyNkZWZpbmUgX19OUl9saXN0ZW4gMjAxCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfYWNjZXB0KQorKyNkZWZpbmUgX19OUl9hY2NlcHQgMjAyCisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfY29ubmVjdCkKKysjZGVmaW5lIF9fTlJfY29u bmVjdCAyMDMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRzb2NrbmFtZSkKKysj ZGVmaW5lIF9fTlJfZ2V0c29ja25hbWUgMjA0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfZ2V0cGVlcm5hbWUpCisrI2RlZmluZSBfX05SX2dldHBlZXJuYW1lIDIwNQorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX3NlbmR0bykKKysjZGVmaW5lIF9fTlJfc2VuZHRvIDIwNgor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlY3Zmcm9tKQorKyNkZWZpbmUgX19OUl9y ZWN2ZnJvbSAyMDcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRzb2Nrb3B0KQor KyNkZWZpbmUgX19OUl9zZXRzb2Nrb3B0IDIwOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX2dldHNvY2tvcHQpCisrI2RlZmluZSBfX05SX2dldHNvY2tvcHQgMjA5CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfc2h1dGRvd24pCisrI2RlZmluZSBfX05SX3NodXRkb3duIDIx MAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NlbmRtc2cpCisrI2RlZmluZSBfX05S X3NlbmRtc2cgMjExCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcmVjdm1zZykKKysj ZGVmaW5lIF9fTlJfcmVjdm1zZyAyMTIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9y ZWFkYWhlYWQpCisrI2RlZmluZSBfX05SX3JlYWRhaGVhZCAyMTMKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9icmspCisrI2RlZmluZSBfX05SX2JyayAyMTQKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl9tdW5tYXApCisrI2RlZmluZSBfX05SX211bm1hcCAyMTUKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tcmVtYXApCisrI2RlZmluZSBfX05SX21yZW1hcCAy MTYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9hZGRfa2V5KQorKyNkZWZpbmUgX19O Ul9hZGRfa2V5IDIxNworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlcXVlc3Rfa2V5 KQorKyNkZWZpbmUgX19OUl9yZXF1ZXN0X2tleSAyMTgKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9rZXljdGwpCisrI2RlZmluZSBfX05SX2tleWN0bCAyMTkKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl9jbG9uZSkKKysjZGVmaW5lIF9fTlJfY2xvbmUgMjIwCisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfZXhlY3ZlKQorKyNkZWZpbmUgX19OUl9leGVjdmUgMjIx CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbW1hcCkKKysjZGVmaW5lIF9fTlJfbW1h cCAyMjIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mYWR2aXNlNjQpCisrI2RlZmlu ZSBfX05SX2ZhZHZpc2U2NCAyMjMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zd2Fw b24pCisrI2RlZmluZSBfX05SX3N3YXBvbiAyMjQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9zd2Fwb2ZmKQorKyNkZWZpbmUgX19OUl9zd2Fwb2ZmIDIyNQorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX21wcm90ZWN0KQorKyNkZWZpbmUgX19OUl9tcHJvdGVjdCAyMjYKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tc3luYykKKysjZGVmaW5lIF9fTlJfbXN5bmMg MjI3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbWxvY2spCisrI2RlZmluZSBfX05S X21sb2NrIDIyOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX211bmxvY2spCisrI2Rl ZmluZSBfX05SX211bmxvY2sgMjI5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbWxv Y2thbGwpCisrI2RlZmluZSBfX05SX21sb2NrYWxsIDIzMAorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX211bmxvY2thbGwpCisrI2RlZmluZSBfX05SX211bmxvY2thbGwgMjMxCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbWluY29yZSkKKysjZGVmaW5lIF9fTlJfbWluY29y ZSAyMzIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tYWR2aXNlKQorKyNkZWZpbmUg X19OUl9tYWR2aXNlIDIzMworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlbWFwX2Zp bGVfcGFnZXMpCisrI2RlZmluZSBfX05SX3JlbWFwX2ZpbGVfcGFnZXMgMjM0CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfbWJpbmQpCisrI2RlZmluZSBfX05SX21iaW5kIDIzNQorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldF9tZW1wb2xpY3kpCisrI2RlZmluZSBfX05S X2dldF9tZW1wb2xpY3kgMjM2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0X21l bXBvbGljeSkKKysjZGVmaW5lIF9fTlJfc2V0X21lbXBvbGljeSAyMzcKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl9taWdyYXRlX3BhZ2VzKQorKyNkZWZpbmUgX19OUl9taWdyYXRlX3Bh Z2VzIDIzOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21vdmVfcGFnZXMpCisrI2Rl ZmluZSBfX05SX21vdmVfcGFnZXMgMjM5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf cnRfdGdzaWdxdWV1ZWluZm8pCisrI2RlZmluZSBfX05SX3J0X3Rnc2lncXVldWVpbmZvIDI0MAor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3BlcmZfZXZlbnRfb3BlbikKKysjZGVmaW5l IF9fTlJfcGVyZl9ldmVudF9vcGVuIDI0MQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X2FjY2VwdDQpCisrI2RlZmluZSBfX05SX2FjY2VwdDQgMjQyCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfcmVjdm1tc2cpCisrI2RlZmluZSBfX05SX3JlY3ZtbXNnIDI0MworKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Jpc2N2X2ZsdXNoX2ljYWNoZSkKKysjZGVmaW5lIF9f TlJfcmlzY3ZfZmx1c2hfaWNhY2hlIDI1OQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X3dhaXQ0KQorKyNkZWZpbmUgX19OUl93YWl0NCAyNjAKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9wcmxpbWl0NjQpCisrI2RlZmluZSBfX05SX3BybGltaXQ2NCAyNjEKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9mYW5vdGlmeV9pbml0KQorKyNkZWZpbmUgX19OUl9mYW5v dGlmeV9pbml0IDI2MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Zhbm90aWZ5X21h cmspCisrI2RlZmluZSBfX05SX2Zhbm90aWZ5X21hcmsgMjYzCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfbmFtZV90b19oYW5kbGVfYXQpCisrI2RlZmluZSBfX05SX25hbWVfdG9faGFu ZGxlX2F0IDI2NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX29wZW5fYnlfaGFuZGxl X2F0KQorKyNkZWZpbmUgX19OUl9vcGVuX2J5X2hhbmRsZV9hdCAyNjUKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl9jbG9ja19hZGp0aW1lKQorKyNkZWZpbmUgX19OUl9jbG9ja19hZGp0 aW1lIDI2NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3N5bmNmcykKKysjZGVmaW5l IF9fTlJfc3luY2ZzIDI2NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldG5zKQor KyNkZWZpbmUgX19OUl9zZXRucyAyNjgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9z ZW5kbW1zZykKKysjZGVmaW5lIF9fTlJfc2VuZG1tc2cgMjY5CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfcHJvY2Vzc192bV9yZWFkdikKKysjZGVmaW5lIF9fTlJfcHJvY2Vzc192bV9y ZWFkdiAyNzAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9wcm9jZXNzX3ZtX3dyaXRl dikKKysjZGVmaW5lIF9fTlJfcHJvY2Vzc192bV93cml0ZXYgMjcxCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfa2NtcCkKKysjZGVmaW5lIF9fTlJfa2NtcCAyNzIKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl9maW5pdF9tb2R1bGUpCisrI2RlZmluZSBfX05SX2Zpbml0X21v ZHVsZSAyNzMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zY2hlZF9zZXRhdHRyKQor KyNkZWZpbmUgX19OUl9zY2hlZF9zZXRhdHRyIDI3NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3NjaGVkX2dldGF0dHIpCisrI2RlZmluZSBfX05SX3NjaGVkX2dldGF0dHIgMjc1Cisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcmVuYW1lYXQyKQorKyNkZWZpbmUgX19OUl9y ZW5hbWVhdDIgMjc2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2VjY29tcCkKKysj ZGVmaW5lIF9fTlJfc2VjY29tcCAyNzcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9n ZXRyYW5kb20pCisrI2RlZmluZSBfX05SX2dldHJhbmRvbSAyNzgKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9tZW1mZF9jcmVhdGUpCisrI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAy NzkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9icGYpCisrI2RlZmluZSBfX05SX2Jw ZiAyODAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9leGVjdmVhdCkKKysjZGVmaW5l IF9fTlJfZXhlY3ZlYXQgMjgxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdXNlcmZh dWx0ZmQpCisrI2RlZmluZSBfX05SX3VzZXJmYXVsdGZkIDI4MgorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMjgzCisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbWxvY2syKQorKyNkZWZpbmUgX19OUl9tbG9j azIgMjg0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfY29weV9maWxlX3JhbmdlKQor KyNkZWZpbmUgX19OUl9jb3B5X2ZpbGVfcmFuZ2UgMjg1CisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfcHJlYWR2MikKKysjZGVmaW5lIF9fTlJfcHJlYWR2MiAyODYKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl9wd3JpdGV2MikKKysjZGVmaW5lIF9fTlJfcHdyaXRldjIgMjg3 CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcGtleV9tcHJvdGVjdCkKKysjZGVmaW5l IF9fTlJfcGtleV9tcHJvdGVjdCAyODgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9w a2V5X2FsbG9jKQorKyNkZWZpbmUgX19OUl9wa2V5X2FsbG9jIDI4OQorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX3BrZXlfZnJlZSkKKysjZGVmaW5lIF9fTlJfcGtleV9mcmVlIDI5MAor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3N0YXR4KQorKyNkZWZpbmUgX19OUl9zdGF0 eCAyOTEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9pb19wZ2V0ZXZlbnRzKQorKyNk ZWZpbmUgX19OUl9pb19wZ2V0ZXZlbnRzIDI5MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX3JzZXEpCisrI2RlZmluZSBfX05SX3JzZXEgMjkzCisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfa2V4ZWNfZmlsZV9sb2FkKQorKyNkZWZpbmUgX19OUl9rZXhlY19maWxlX2xvYWQg Mjk0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcGlkZmRfc2VuZF9zaWduYWwpCisr I2RlZmluZSBfX05SX3BpZGZkX3NlbmRfc2lnbmFsIDQyNAorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX2lvX3VyaW5nX3NldHVwKQorKyNkZWZpbmUgX19OUl9pb191cmluZ19zZXR1cCA0 MjUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9pb191cmluZ19lbnRlcikKKysjZGVm aW5lIF9fTlJfaW9fdXJpbmdfZW50ZXIgNDI2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfaW9fdXJpbmdfcmVnaXN0ZXIpCisrI2RlZmluZSBfX05SX2lvX3VyaW5nX3JlZ2lzdGVyIDQy NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX29wZW5fdHJlZSkKKysjZGVmaW5lIF9f TlJfb3Blbl90cmVlIDQyOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21vdmVfbW91 bnQpCisrI2RlZmluZSBfX05SX21vdmVfbW91bnQgNDI5CisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfZnNvcGVuKQorKyNkZWZpbmUgX19OUl9mc29wZW4gNDMwCisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfZnNjb25maWcpCisrI2RlZmluZSBfX05SX2ZzY29uZmlnIDQzMQor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZzbW91bnQpCisrI2RlZmluZSBfX05SX2Zz bW91bnQgNDMyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZnNwaWNrKQorKyNkZWZp bmUgX19OUl9mc3BpY2sgNDMzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcGlkZmRf b3BlbikKKysjZGVmaW5lIF9fTlJfcGlkZmRfb3BlbiA0MzQKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl9jbG9uZTMpCisrI2RlZmluZSBfX05SX2Nsb25lMyA0MzUKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl9jbG9zZV9yYW5nZSkKKysjZGVmaW5lIF9fTlJfY2xvc2VfcmFu Z2UgNDM2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfb3BlbmF0MikKKysjZGVmaW5l IF9fTlJfb3BlbmF0MiA0MzcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9waWRmZF9n ZXRmZCkKKysjZGVmaW5lIF9fTlJfcGlkZmRfZ2V0ZmQgNDM4CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfZmFjY2Vzc2F0MikKKysjZGVmaW5lIF9fTlJfZmFjY2Vzc2F0MiA0MzkKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9wcm9jZXNzX21hZHZpc2UpCisrI2RlZmluZSBf X05SX3Byb2Nlc3NfbWFkdmlzZSA0NDAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9l cG9sbF9wd2FpdDIpCisrI2RlZmluZSBfX05SX2Vwb2xsX3B3YWl0MiA0NDEKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl9tb3VudF9zZXRhdHRyKQorKyNkZWZpbmUgX19OUl9tb3VudF9z ZXRhdHRyIDQ0MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3F1b3RhY3RsX3BhdGgp CisrI2RlZmluZSBfX05SX3F1b3RhY3RsX3BhdGggNDQzCisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfbGFuZGxvY2tfY3JlYXRlX3J1bGVzZXQpCisrI2RlZmluZSBfX05SX2xhbmRsb2Nr X2NyZWF0ZV9ydWxlc2V0IDQ0NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2xhbmRs b2NrX2FkZF9ydWxlKQorKyNkZWZpbmUgX19OUl9sYW5kbG9ja19hZGRfcnVsZSA0NDUKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9sYW5kbG9ja19yZXN0cmljdF9zZWxmKQorKyNkZWZp bmUgX19OUl9sYW5kbG9ja19yZXN0cmljdF9zZWxmIDQ0NgorKyNlbmRpZgorKworKyNlbmRpZiAg Ly8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19SSVNDVjY0X0xJTlVYX1NZU0NBTExTX0hf CitJbmRleDogY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9wb2xpY3kvbGludXgvYnBm X2Nyb3NfYW1kX2dwdV9wb2xpY3lfbGludXguY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0x MDMuMC41MDYwLjEzNC5vcmlnL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9jcm9zX2FtZF9ncHVf cG9saWN5X2xpbnV4LmNjCisrKysgY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQvc2FuZGJveC9wb2xp Y3kvbGludXgvYnBmX2Nyb3NfYW1kX2dwdV9wb2xpY3lfbGludXguY2MKK0BAIC0zOCw3ICszOCw3 IEBAIFJlc3VsdEV4cHIgQ3Jvc0FtZEdwdVByb2Nlc3NQb2xpY3k6OkV2YWwKKyAgICAgY2FzZSBf X05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKyAgICAgY2FzZSBfX05SX3N5c2luZm86CisgICAgIGNh c2UgX19OUl91bmFtZToKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfcmVhZGxp bms6CisgICAgIGNhc2UgX19OUl9zdGF0OgorICNlbmRpZgorSW5kZXg6IGNocm9taXVtLTEwMy4w LjUwNjAuMTM0L3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9ncHVfcG9saWN5X2xpbnV4LmNjCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gY2hyb21pdW0tMTAzLjAuNTA2MC4xMzQub3JpZy9zYW5kYm94L3BvbGlj eS9saW51eC9icGZfZ3B1X3BvbGljeV9saW51eC5jYworKysrIGNocm9taXVtLTEwMy4wLjUwNjAu MTM0L3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9ncHVfcG9saWN5X2xpbnV4LmNjCitAQCAtNzMs NyArNzMsNyBAQCBSZXN1bHRFeHByIEdwdVByb2Nlc3NQb2xpY3k6OkV2YWx1YXRlU3lzCisgICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQorICAgICBjYXNlIF9fTlJfZnRydW5jYXRlNjQ6CisgI2VuZGlmCistI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19y aXNjdikKKyAgICAgY2FzZSBfX05SX2dldGRlbnRzOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJf Z2V0ZGVudHM2NDoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9yaXNjdi12 OC5wYXRjaC5vbGQgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmlzY3YtdjgucGF0Y2gub2xk Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjAxYzdlYjBjYjY5NWEK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmlzY3YtdjgucGF0 Y2gub2xkCkBAIC0wLDAgKzEsMTc2IEBACitJbmRleDogY2hyb21pdW0tMTA0LjAuNTExMi43OS92 OC9zcmMvYnVpbHRpbnMvcmlzY3Y2NC9idWlsdGlucy1yaXNjdjY0LmNjCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gY2hyb21pdW0tMTA0LjAuNTExMi43OS5vcmlnL3Y4L3NyYy9idWlsdGlucy9yaXNjdjY0L2J1 aWx0aW5zLXJpc2N2NjQuY2MKKysrKyBjaHJvbWl1bS0xMDQuMC41MTEyLjc5L3Y4L3NyYy9idWls dGlucy9yaXNjdjY0L2J1aWx0aW5zLXJpc2N2NjQuY2MKK0BAIC04NTgsNyArODU4LDcgQEAgc3Rh dGljIHZvaWQgUmVwbGFjZUNsb3N1cmVDb2RlV2l0aE9wdGltaQorICAgX18gTW92ZShzY3JhdGNo MSwgb3B0aW1pemVkX2NvZGUpOyAgLy8gV3JpdGUgYmFycmllciBjbG9iYmVycyBzY3JhdGNoMSBi ZWxvdy4KKyAgIF9fIFJlY29yZFdyaXRlRmllbGQoY2xvc3VyZSwgSlNGdW5jdGlvbjo6a0NvZGVP ZmZzZXQsIHNjcmF0Y2gxLAorICAgICAgICAgICAgICAgICAgICAgICBrUkFIYXNOb3RCZWVuU2F2 ZWQsIFNhdmVGUFJlZ3NNb2RlOjprSWdub3JlLAorLSAgICAgICAgICAgICAgICAgICAgICBSZW1l bWJlcmVkU2V0QWN0aW9uOjprT21pdCwgU21pQ2hlY2s6OmtPbWl0KTsKKysgICAgICAgICAgICAg ICAgICAgICAgU21pQ2hlY2s6OmtPbWl0KTsKKyB9CisgCisgc3RhdGljIHZvaWQgTGVhdmVJbnRl cnByZXRlckZyYW1lKE1hY3JvQXNzZW1ibGVyKiBtYXNtLCBSZWdpc3RlciBzY3JhdGNoMSwKK0lu ZGV4OiBjaHJvbWl1bS0xMDQuMC41MTEyLjc5L3Y4L3NyYy9jb2RlZ2VuL3Jpc2N2NjQvbWFjcm8t YXNzZW1ibGVyLXJpc2N2NjQuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDQuMC41MTEy Ljc5Lm9yaWcvdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9tYWNyby1hc3NlbWJsZXItcmlzY3Y2NC5j YworKysrIGNocm9taXVtLTEwNC4wLjUxMTIuNzkvdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9tYWNy by1hc3NlbWJsZXItcmlzY3Y2NC5jYworQEAgLTE0Miw3ICsxNDIsNiBAQCBpbnQgTWFjcm9Bc3Nl bWJsZXI6OlNhZmVwb2ludFJlZ2lzdGVyU3RhCisgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6UmVjb3Jk V3JpdGVGaWVsZChSZWdpc3RlciBvYmplY3QsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB2YWx1ZSwgUkFTdGF0dXMgcmFfc3RhdHVz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZUZQUmVnc01vZGUg c2F2ZV9mcCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbWVtYmVy ZWRTZXRBY3Rpb24gcmVtZW1iZXJlZF9zZXRfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU21pQ2hlY2sgc21pX2NoZWNrKSB7CisgICBEQ0hFQ0soIUFyZUFs aWFzZWQob2JqZWN0LCB2YWx1ZSkpOworICAgLy8gRmlyc3QsIGNoZWNrIGlmIGEgd3JpdGUgYmFy cmllciBpcyBldmVuIG5lZWRlZC4gVGhlIHRlc3RzIGJlbG93CitAQCAtMTcxLDcgKzE3MCw3IEBA IHZvaWQgTWFjcm9Bc3NlbWJsZXI6OlJlY29yZFdyaXRlRmllbGQoUmUKKyAgIH0KKyAKKyAgIFJl Y29yZFdyaXRlKG9iamVjdCwgT3BlcmFuZChvZmZzZXQgLSBrSGVhcE9iamVjdFRhZyksIHZhbHVl LCByYV9zdGF0dXMsCistICAgICAgICAgICAgICBzYXZlX2ZwLCByZW1lbWJlcmVkX3NldF9hY3Rp b24sIFNtaUNoZWNrOjprT21pdCk7CisrICAgICAgICAgICAgICBzYXZlX2ZwLCBTbWlDaGVjazo6 a09taXQpOworIAorICAgYmluZCgmZG9uZSk7CisgfQorQEAgLTIxMSw3ICsyMTAsNyBAQCB2b2lk IFR1cmJvQXNzZW1ibGVyOjpDYWxsRXBoZW1lcm9uS2V5QmFyCisgCisgdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6Q2FsbFJlY29yZFdyaXRlU3R1YlNhdmVSZWdpc3RlcnMoCisgICAgIFJlZ2lzdGVyIG9i amVjdCwgUmVnaXN0ZXIgc2xvdF9hZGRyZXNzLAorLSAgICBSZW1lbWJlcmVkU2V0QWN0aW9uIHJl bWVtYmVyZWRfc2V0X2FjdGlvbiwgU2F2ZUZQUmVnc01vZGUgZnBfbW9kZSwKKysgICAgU2F2ZUZQ UmVnc01vZGUgZnBfbW9kZSwKKyAgICAgU3R1YkNhbGxNb2RlIG1vZGUpIHsKKyAgIERDSEVDSygh QXJlQWxpYXNlZChvYmplY3QsIHNsb3RfYWRkcmVzcykpOworICAgUmVnTGlzdCByZWdpc3RlcnMg PQorQEAgLTIyOCwxNCArMjI3LDE0IEBAIHZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGxSZWNvcmRX cml0ZVN0dWIKKyAgIFBvcChvYmplY3RfcGFyYW1ldGVyKTsKKyAKKyAgIENhbGxSZWNvcmRXcml0 ZVN0dWIob2JqZWN0X3BhcmFtZXRlciwgc2xvdF9hZGRyZXNzX3BhcmFtZXRlciwKKy0gICAgICAg ICAgICAgICAgICAgICAgcmVtZW1iZXJlZF9zZXRfYWN0aW9uLCBmcF9tb2RlLCBtb2RlKTsKKysg ICAgICAgICAgICAgICAgICAgICAgZnBfbW9kZSwgbW9kZSk7CisgCisgICBNYXliZVJlc3RvcmVS ZWdpc3RlcnMocmVnaXN0ZXJzKTsKKyB9CisgCisgdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q2FsbFJl Y29yZFdyaXRlU3R1YigKKyAgICAgUmVnaXN0ZXIgb2JqZWN0LCBSZWdpc3RlciBzbG90X2FkZHJl c3MsCistICAgIFJlbWVtYmVyZWRTZXRBY3Rpb24gcmVtZW1iZXJlZF9zZXRfYWN0aW9uLCBTYXZl RlBSZWdzTW9kZSBmcF9tb2RlLAorKyAgICBTYXZlRlBSZWdzTW9kZSBmcF9tb2RlLAorICAgICBT dHViQ2FsbE1vZGUgbW9kZSkgeworICAgLy8gVXNlIENhbGxSZWNvcmRXcml0ZVN0dWJTYXZlUmVn aXN0ZXJzIGlmIHRoZSBvYmplY3QgYW5kIHNsb3QgcmVnaXN0ZXJzCisgICAvLyBuZWVkIHRvIGJl IGNhbGxlciBzYXZlZC4KK0BAIC0yNDMsMTAgKzI0MiwxMCBAQCB2b2lkIFR1cmJvQXNzZW1ibGVy OjpDYWxsUmVjb3JkV3JpdGVTdHViCisgICBEQ0hFQ0tfRVEoV3JpdGVCYXJyaWVyRGVzY3JpcHRv cjo6U2xvdEFkZHJlc3NSZWdpc3RlcigpLCBzbG90X2FkZHJlc3MpOworICAgaWYgKG1vZGUgPT0g U3R1YkNhbGxNb2RlOjprQ2FsbFdhc21SdW50aW1lU3R1YikgeworICAgICBhdXRvIHdhc21fdGFy Z2V0ID0KKy0gICAgICAgIHdhc206Oldhc21Db2RlOjpHZXRSZWNvcmRXcml0ZVN0dWIocmVtZW1i ZXJlZF9zZXRfYWN0aW9uLCBmcF9tb2RlKTsKKysgICAgICAgIHdhc206Oldhc21Db2RlOjpHZXRS ZWNvcmRXcml0ZVN0dWIoZnBfbW9kZSk7CisgICAgIENhbGwod2FzbV90YXJnZXQsIFJlbG9jSW5m bzo6V0FTTV9TVFVCX0NBTEwpOworICAgfSBlbHNlIHsKKy0gICAgYXV0byBidWlsdGluID0gQnVp bHRpbnM6OkdldFJlY29yZFdyaXRlU3R1YihyZW1lbWJlcmVkX3NldF9hY3Rpb24sIGZwX21vZGUp OworKyAgICBhdXRvIGJ1aWx0aW4gPSBCdWlsdGluczo6R2V0UmVjb3JkV3JpdGVTdHViKGZwX21v ZGUpOworICAgICBpZiAob3B0aW9ucygpLmlubGluZV9vZmZoZWFwX3RyYW1wb2xpbmVzKSB7Cisg ICAgICAgLy8gSW5saW5lIHRoZSB0cmFtcG9saW5lLiAvL3FqCisgICAgICAgUmVjb3JkQ29tbWVu dEZvck9mZkhlYXBUcmFtcG9saW5lKGJ1aWx0aW4pOworQEAgLTI3MCw3ICsyNjksNiBAQCB2b2lk IFR1cmJvQXNzZW1ibGVyOjpDYWxsUmVjb3JkV3JpdGVTdHViCisgdm9pZCBNYWNyb0Fzc2VtYmxl cjo6UmVjb3JkV3JpdGUoUmVnaXN0ZXIgb2JqZWN0LCBPcGVyYW5kIG9mZnNldCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB2YWx1ZSwgUkFTdGF0dXMgcmFfc3Rh dHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhdmVGUFJlZ3NNb2RlIGZw X21vZGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtZW1iZXJlZFNldEFj dGlvbiByZW1lbWJlcmVkX3NldF9hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU21pQ2hlY2sgc21pX2NoZWNrKSB7CisgICBEQ0hFQ0soIUFyZUFsaWFzZWQob2JqZWN0 LCB2YWx1ZSkpOworIAorQEAgLTI4NCw5ICsyODIsNyBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyOjpS ZWNvcmRXcml0ZShSZWdpc3RlCisgICAgICAgICAgICBPcGVyYW5kKHZhbHVlKSk7CisgICB9Cisg CistICBpZiAoKHJlbWVtYmVyZWRfc2V0X2FjdGlvbiA9PSBSZW1lbWJlcmVkU2V0QWN0aW9uOjpr T21pdCAmJgorLSAgICAgICAhRkxBR19pbmNyZW1lbnRhbF9tYXJraW5nKSB8fAorLSAgICAgIEZM QUdfZGlzYWJsZV93cml0ZV9iYXJyaWVycykgeworKyAgaWYgKEZMQUdfZGlzYWJsZV93cml0ZV9i YXJyaWVycykgeworICAgICByZXR1cm47CisgICB9CisgCitAQCAtMzI1LDcgKzMyMSw3IEBAIHZv aWQgTWFjcm9Bc3NlbWJsZXI6OlJlY29yZFdyaXRlKFJlZ2lzdGUKKyAgIC8vIFRPRE8oY2JydW5p KTogVHVybiBvZmZzZXQgaW50byBpbnQuCisgICBEQ0hFQ0sob2Zmc2V0LklzSW1tZWRpYXRlKCkp OworICAgQWRkNjQoc2xvdF9hZGRyZXNzLCBvYmplY3QsIG9mZnNldCk7CistICBDYWxsUmVjb3Jk V3JpdGVTdHViKG9iamVjdCwgc2xvdF9hZGRyZXNzLCByZW1lbWJlcmVkX3NldF9hY3Rpb24sIGZw X21vZGUpOworKyAgQ2FsbFJlY29yZFdyaXRlU3R1YihvYmplY3QsIHNsb3RfYWRkcmVzcywgZnBf bW9kZSk7CisgICBpZiAocmFfc3RhdHVzID09IGtSQUhhc05vdEJlZW5TYXZlZCkgeworICAgICBw b3AocmEpOworICAgfQorSW5kZXg6IGNocm9taXVtLTEwNC4wLjUxMTIuNzkvdjgvc3JjL2NvZGVn ZW4vcmlzY3Y2NC9tYWNyby1hc3NlbWJsZXItcmlzY3Y2NC5oCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gY2hy b21pdW0tMTA0LjAuNTExMi43OS5vcmlnL3Y4L3NyYy9jb2RlZ2VuL3Jpc2N2NjQvbWFjcm8tYXNz ZW1ibGVyLXJpc2N2NjQuaAorKysrIGNocm9taXVtLTEwNC4wLjUxMTIuNzkvdjgvc3JjL2NvZGVn ZW4vcmlzY3Y2NC9tYWNyby1hc3NlbWJsZXItcmlzY3Y2NC5oCitAQCAtMzQ3LDExICszNDcsMTEg QEAgY2xhc3MgVjhfRVhQT1JUX1BSSVZBVEUgVHVyYm9Bc3NlbWJsZXIgOgorIAorICAgdm9pZCBD YWxsUmVjb3JkV3JpdGVTdHViU2F2ZVJlZ2lzdGVycygKKyAgICAgICBSZWdpc3RlciBvYmplY3Qs IFJlZ2lzdGVyIHNsb3RfYWRkcmVzcywKKy0gICAgICBSZW1lbWJlcmVkU2V0QWN0aW9uIHJlbWVt YmVyZWRfc2V0X2FjdGlvbiwgU2F2ZUZQUmVnc01vZGUgZnBfbW9kZSwKKysgICAgICBTYXZlRlBS ZWdzTW9kZSBmcF9tb2RlLAorICAgICAgIFN0dWJDYWxsTW9kZSBtb2RlID0gU3R1YkNhbGxNb2Rl OjprQ2FsbEJ1aWx0aW5Qb2ludGVyKTsKKyAgIHZvaWQgQ2FsbFJlY29yZFdyaXRlU3R1YigKKyAg ICAgICBSZWdpc3RlciBvYmplY3QsIFJlZ2lzdGVyIHNsb3RfYWRkcmVzcywKKy0gICAgICBSZW1l bWJlcmVkU2V0QWN0aW9uIHJlbWVtYmVyZWRfc2V0X2FjdGlvbiwgU2F2ZUZQUmVnc01vZGUgZnBf bW9kZSwKKysgICAgICBTYXZlRlBSZWdzTW9kZSBmcF9tb2RlLAorICAgICAgIFN0dWJDYWxsTW9k ZSBtb2RlID0gU3R1YkNhbGxNb2RlOjprQ2FsbEJ1aWx0aW5Qb2ludGVyKTsKKyAKKyAgIC8vIFB1 c2ggbXVsdGlwbGUgcmVnaXN0ZXJzIG9uIHRoZSBzdGFjay4KK0BAIC0xMDk4LDcgKzEwOTgsNiBA QCBjbGFzcyBWOF9FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2VtYmxlciA6CisgICB2b2lkIFJlY29y ZFdyaXRlRmllbGQoCisgICAgICAgUmVnaXN0ZXIgb2JqZWN0LCBpbnQgb2Zmc2V0LCBSZWdpc3Rl ciB2YWx1ZSwgUkFTdGF0dXMgcmFfc3RhdHVzLAorICAgICAgIFNhdmVGUFJlZ3NNb2RlIHNhdmVf ZnAsCistICAgICAgUmVtZW1iZXJlZFNldEFjdGlvbiByZW1lbWJlcmVkX3NldF9hY3Rpb24gPSBS ZW1lbWJlcmVkU2V0QWN0aW9uOjprRW1pdCwKKyAgICAgICBTbWlDaGVjayBzbWlfY2hlY2sgPSBT bWlDaGVjazo6a0lubGluZSk7CisgCisgICAvLyBGb3IgYSBnaXZlbiB8b2JqZWN0fCBub3RpZnkg dGhlIGdhcmJhZ2UgY29sbGVjdG9yIHRoYXQgdGhlIHNsb3QgfGFkZHJlc3N8CitAQCAtMTEwNyw3 ICsxMTA2LDYgQEAgY2xhc3MgVjhfRVhQT1JUX1BSSVZBVEUgTWFjcm9Bc3NlbWJsZXIgOgorICAg dm9pZCBSZWNvcmRXcml0ZSgKKyAgICAgICBSZWdpc3RlciBvYmplY3QsIE9wZXJhbmQgb2Zmc2V0 LCBSZWdpc3RlciB2YWx1ZSwgUkFTdGF0dXMgcmFfc3RhdHVzLAorICAgICAgIFNhdmVGUFJlZ3NN b2RlIHNhdmVfZnAsCistICAgICAgUmVtZW1iZXJlZFNldEFjdGlvbiByZW1lbWJlcmVkX3NldF9h Y3Rpb24gPSBSZW1lbWJlcmVkU2V0QWN0aW9uOjprRW1pdCwKKyAgICAgICBTbWlDaGVjayBzbWlf Y2hlY2sgPSBTbWlDaGVjazo6a0lubGluZSk7CisgCisgICAvLyB2b2lkIFByZWYoaW50MzJfdCBo aW50LCBjb25zdCBNZW1PcGVyYW5kJiBycyk7CitJbmRleDogY2hyb21pdW0tMTA0LjAuNTExMi43 OS92OC9zcmMvY29tcGlsZXIvYmFja2VuZC9yaXNjdjY0L2NvZGUtZ2VuZXJhdG9yLXJpc2N2NjQu Y2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDQuMC41MTEyLjc5Lm9yaWcvdjgvc3JjL2Nv bXBpbGVyL2JhY2tlbmQvcmlzY3Y2NC9jb2RlLWdlbmVyYXRvci1yaXNjdjY0LmNjCisrKysgY2hy b21pdW0tMTA0LjAuNTExMi43OS92OC9zcmMvY29tcGlsZXIvYmFja2VuZC9yaXNjdjY0L2NvZGUt Z2VuZXJhdG9yLXJpc2N2NjQuY2MKK0BAIC0xODEsOSArMTgxLDYgQEAgY2xhc3MgT3V0T2ZMaW5l UmVjb3JkV3JpdGUgZmluYWwgOiBwdWJsaQorICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeUNo dW5rOjprUG9pbnRlcnNUb0hlcmVBcmVJbnRlcmVzdGluZ01hc2ssIGVxLAorICAgICAgICAgICAg ICAgICAgICAgIGV4aXQoKSk7CisgICAgIF9fIEFkZDY0KHNjcmF0Y2gxXywgb2JqZWN0XywgaW5k ZXhfKTsKKy0gICAgUmVtZW1iZXJlZFNldEFjdGlvbiBjb25zdCByZW1lbWJlcmVkX3NldF9hY3Rp b24gPQorLSAgICAgICAgbW9kZV8gPiBSZWNvcmRXcml0ZU1vZGU6OmtWYWx1ZUlzTWFwID8gUmVt ZW1iZXJlZFNldEFjdGlvbjo6a0VtaXQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IFJlbWVtYmVyZWRTZXRBY3Rpb246OmtPbWl0OworICAgICBTYXZlRlBS ZWdzTW9kZSBjb25zdCBzYXZlX2ZwX21vZGUgPSBmcmFtZSgpLT5EaWRBbGxvY2F0ZURvdWJsZVJl Z2lzdGVycygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ IFNhdmVGUFJlZ3NNb2RlOjprU2F2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBTYXZlRlBSZWdzTW9kZTo6a0lnbm9yZTsKK0BAIC0xOTgsMTEgKzE5NSwx MSBAQCBjbGFzcyBPdXRPZkxpbmVSZWNvcmRXcml0ZSBmaW5hbCA6IHB1YmxpCisgICAgICAgLy8g SnVzdCBlbmNvZGUgdGhlIHN0dWIgaW5kZXguIFRoaXMgd2lsbCBiZSBwYXRjaGVkIHdoZW4gdGhl IGNvZGUKKyAgICAgICAvLyBpcyBhZGRlZCB0byB0aGUgbmF0aXZlIG1vZHVsZSBhbmQgY29waWVk IGludG8gd2FzbSBjb2RlIHNwYWNlLgorICAgICAgIF9fIENhbGxSZWNvcmRXcml0ZVN0dWJTYXZl UmVnaXN0ZXJzKG9iamVjdF8sIHNjcmF0Y2gxXywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZW1lbWJlcmVkX3NldF9hY3Rpb24sIHNhdmVfZnBfbW9kZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlX2ZwX21vZGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R1YkNhbGxNb2RlOjpr Q2FsbFdhc21SdW50aW1lU3R1Yik7CisgICAgIH0gZWxzZSB7CisgICAgICAgX18gQ2FsbFJlY29y ZFdyaXRlU3R1YlNhdmVSZWdpc3RlcnMob2JqZWN0Xywgc2NyYXRjaDFfLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWVtYmVyZWRfc2V0X2FjdGlvbiwgc2F2 ZV9mcF9tb2RlKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz YXZlX2ZwX21vZGUpOworICAgICB9CisgICAgIGlmIChtdXN0X3NhdmVfbHJfKSB7CisgICAgICAg X18gUG9wKHJhKTsKK0luZGV4OiBjaHJvbWl1bS0xMDQuMC41MTEyLjc5L3Y4L3NyYy93YXNtL2Jh c2VsaW5lL3Jpc2N2NjQvbGlmdG9mZi1hc3NlbWJsZXItcmlzY3Y2NC5oCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gY2hyb21pdW0tMTA0LjAuNTExMi43OS5vcmlnL3Y4L3NyYy93YXNtL2Jhc2VsaW5lL3Jpc2N2 NjQvbGlmdG9mZi1hc3NlbWJsZXItcmlzY3Y2NC5oCisrKysgY2hyb21pdW0tMTA0LjAuNTExMi43 OS92OC9zcmMvd2FzbS9iYXNlbGluZS9yaXNjdjY0L2xpZnRvZmYtYXNzZW1ibGVyLXJpc2N2NjQu aAorQEAgLTUxMSw3ICs1MTEsNyBAQCB2b2lkIExpZnRvZmZBc3NlbWJsZXI6OlN0b3JlVGFnZ2Vk UG9pbnRlCisgICAgICAgICAgICAgICAgIE1lbW9yeUNodW5rOjprUG9pbnRlcnNUb0hlcmVBcmVJ bnRlcmVzdGluZ01hc2ssIGVxLCAmZXhpdCk7CisgICBBZGQ2NChzY3JhdGNoLCBkc3Rfb3Aucm0o KSwgZHN0X29wLm9mZnNldCgpKTsKKyAgIENhbGxSZWNvcmRXcml0ZVN0dWJTYXZlUmVnaXN0ZXJz KAorLSAgICAgIGRzdF9hZGRyLCBzY3JhdGNoLCBSZW1lbWJlcmVkU2V0QWN0aW9uOjprRW1pdCwg U2F2ZUZQUmVnc01vZGU6OmtTYXZlLAorKyAgICAgIGRzdF9hZGRyLCBzY3JhdGNoLCBTYXZlRlBS ZWdzTW9kZTo6a1NhdmUsCisgICAgICAgU3R1YkNhbGxNb2RlOjprQ2FsbFdhc21SdW50aW1lU3R1 Yik7CisgICBiaW5kKCZleGl0KTsKKyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvcmlzY3YucGF0Y2gub2xkIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2LnBh dGNoLm9sZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi42NzdjNjRk MTZkYjNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jpc2N2 LnBhdGNoLm9sZApAQCAtMCwwICsxLDExOCBAQAorSW5kZXg6IGNocm9taXVtLTEwNC4wLjUxMTIu NzkvY29tcG9uZW50cy91cGRhdGVfY2xpZW50L3VwZGF0ZV9xdWVyeV9wYXJhbXMuY2MKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBjaHJvbWl1bS0xMDQuMC41MTEyLjc5Lm9yaWcvY29tcG9uZW50cy91cGRhdGVf Y2xpZW50L3VwZGF0ZV9xdWVyeV9wYXJhbXMuY2MKKysrKyBjaHJvbWl1bS0xMDQuMC41MTEyLjc5 L2NvbXBvbmVudHMvdXBkYXRlX2NsaWVudC91cGRhdGVfcXVlcnlfcGFyYW1zLmNjCitAQCAtNjMs NiArNjMsOCBAQCBjb25zdCBjaGFyIGtBcmNoW10gPQorICAgICAibG9vbmczMiI7CisgI2VsaWYg ZGVmaW5lZChfX2xvb25nYXJjaDY0KQorICAgICAibG9vbmc2NCI7CisrI2VsaWYgZGVmaW5lZChf X3Jpc2N2KSAmJiBfX3Jpc2N2X3hsZW4gPT0gNjQKKysgICAgInJpc2N2NjQiOworICNlbHNlCisg I2Vycm9yICJ1bmtub3duIGFyY2giCisgI2VuZGlmCitAQCAtMTM2LDYgKzEzOCw4IEBAIGNvbnN0 IGNoYXIqIFVwZGF0ZVF1ZXJ5UGFyYW1zOjpHZXROYWNsQXIKKyAgIHJldHVybiAibG9vbmczMiI7 CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9MT09ORzY0KQorICAgcmV0dXJuICJsb29uZzY0IjsK KysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1JJU0NWNjQpCisrICByZXR1cm4gInJpc2N2NjQiOwor ICNlbHNlCisgLy8gTk9URTogd2hlbiBhZGRpbmcgbmV3IHZhbHVlcyBoZXJlLCBwbGVhc2UgcmVt ZW1iZXIgdG8gdXBkYXRlIHRoZQorIC8vIGNvbW1lbnQgaW4gdGhlIC5oIGZpbGUgYWJvdXQgcG9z c2libGUgcmV0dXJuIHZhbHVlcyBmcm9tIHRoaXMgZnVuY3Rpb24uCitJbmRleDogY2hyb21pdW0t MTA0LjAuNTExMi43OS9jb21wb25lbnRzL3VwZGF0ZV9jbGllbnQvdXBkYXRlX3F1ZXJ5X3BhcmFt cy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gY2hyb21pdW0tMTA0LjAuNTExMi43OS5vcmlnL2NvbXBvbmVu dHMvdXBkYXRlX2NsaWVudC91cGRhdGVfcXVlcnlfcGFyYW1zLmgKKysrKyBjaHJvbWl1bS0xMDQu MC41MTEyLjc5L2NvbXBvbmVudHMvdXBkYXRlX2NsaWVudC91cGRhdGVfcXVlcnlfcGFyYW1zLmgK K0BAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFVwZGF0ZVF1ZXJ5UGFyYW1zIHsKKyAgIC8vIFJldHVy bnMgdGhlIHZhbHVlIHdlIHVzZSBmb3IgdGhlICJuYWNsX2FyY2giIHBhcmFtZXRlci4gTm90ZSB0 aGF0IHRoaXMgbWF5CisgICAvLyBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgImFyY2giIHBhcmFtZXRl ciBhYm92ZSAoZS5nLiBvbmUgbWF5IGJlIDMyLWJpdCBhbmQKKyAgIC8vIHRoZSBvdGhlciA2NC1i aXQpLiBQb3NzaWJsZSByZXR1cm4gdmFsdWVzIGluY2x1ZGU6ICJ4ODYtMzIiLCAieDg2LTY0IiwK Ky0gIC8vICJhcm0iLCAibWlwczMyIiwgYW5kICJwcGM2NCIuCisrICAvLyAiYXJtIiwgIm1pcHMz MiIsICJwcGM2NCIsIGFuZCAicmlzY3Y2NCIuCisgICBzdGF0aWMgY29uc3QgY2hhciogR2V0TmFj bEFyY2goKTsKKyAKKyAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBDaHJvbWUv Q2hyb21pdW0uCitJbmRleDogY2hyb21pdW0tMTA0LjAuNTExMi43OS9za2lhL0JVSUxELmduCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gY2hyb21pdW0tMTA0LjAuNTExMi43OS5vcmlnL3NraWEvQlVJTEQuZ24K KysrKyBjaHJvbWl1bS0xMDQuMC41MTEyLjc5L3NraWEvQlVJTEQuZ24KK0BAIC04MDksNiArODA5 LDggQEAgc2tpYV9zb3VyY2Vfc2V0KCJza2lhX29wdHMiKSB7CisgICAgIHNvdXJjZXMgPSBza2lh X29wdHMubm9uZV9zb3VyY2VzCisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJzMzkweCIp IHsKKyAgICAgc291cmNlcyA9IHNraWFfb3B0cy5ub25lX3NvdXJjZXMKKysgIH0gZWxzZSBpZiAo Y3VycmVudF9jcHUgPT0gInJpc2N2NjQiKSB7CisrICAgIHNvdXJjZXMgPSBza2lhX29wdHMubm9u ZV9zb3VyY2VzCisgICB9IGVsc2UgeworICAgICBhc3NlcnQoZmFsc2UsICJOZWVkIHRvIHBvcnQg Y3B1IHNwZWNpZmljIHN0dWZmIGZyb20gc2tpYV9saWJyYXJ5X29wdHMuZ3lwIikKKyAgIH0KK0lu ZGV4OiBjaHJvbWl1bS0xMDQuMC41MTEyLjc5L3RoaXJkX3BhcnR5L2Rhd24vc3JjL2Rhd24vY29t bW9uL1BsYXRmb3JtLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDQuMC41MTEyLjc5Lm9y aWcvdGhpcmRfcGFydHkvZGF3bi9zcmMvZGF3bi9jb21tb24vUGxhdGZvcm0uaAorKysrIGNocm9t aXVtLTEwNC4wLjUxMTIuNzkvdGhpcmRfcGFydHkvZGF3bi9zcmMvZGF3bi9jb21tb24vUGxhdGZv cm0uaAorQEAgLTY4LDcgKzY4LDcgQEAKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfV0lONjQp IHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHM2NF9fKSB8fCBcCistICAgIGRlZmluZWQoX19zMzkweF9fKSB8fCBkZWZpbmVkKF9f UFBDNjRfXykKKysgICAgZGVmaW5lZChfX3MzOTB4X18pIHx8IGRlZmluZWQoX19QUEM2NF9fKSB8 fCAoZGVmaW5lZChfX3Jpc2N2KSAmJiBfX3Jpc2N2X3hsZW4gPT0gNjQpCisgI2RlZmluZSBEQVdO X1BMQVRGT1JNX0lTXzY0X0JJVCAxCisgc3RhdGljX2Fzc2VydChzaXplb2Yoc2l6ZW9mKGNoYXIp KSA9PSA4LCAiRXhwZWN0IHNpemVvZihzaXplX3QpID09IDgiKTsKKyAjZWxpZiBkZWZpbmVkKF9X SU4zMikgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fbWlwczMyX18pIHx8IFwKK0luZGV4OiBjaHJvbWl1bS0xMDQuMC41MTEyLjc5L3RoaXJkX3Bh cnR5L2hpZ2h3YXkvc3JjL2h3eS9iYXNlLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJvbWl1bS0xMDQu MC41MTEyLjc5Lm9yaWcvdGhpcmRfcGFydHkvaGlnaHdheS9zcmMvaHd5L2Jhc2UuaAorKysrIGNo cm9taXVtLTEwNC4wLjUxMTIuNzkvdGhpcmRfcGFydHkvaGlnaHdheS9zcmMvaHd5L2Jhc2UuaAor QEAgLTMxNiw3ICszMTYsNyBAQCBuYW1lc3BhY2UgaHd5IHsKKyAjaWYgSFdZX0FSQ0hfWDg2Cisg c3RhdGljIGNvbnN0ZXhwciBIV1lfTUFZQkVfVU5VU0VEIHNpemVfdCBrTWF4VmVjdG9yU2l6ZSA9 IDY0OyAgLy8gQVZYLTUxMgorICNkZWZpbmUgSFdZX0FMSUdOX01BWCBhbGlnbmFzKDY0KQorLSNl bGlmIEhXWV9BUkNIX1JWVgorKyNlbGlmIEhXWV9BUkNIX1JWViAmJiBkZWZpbmVkKF9fcmlzY3Zf dmVjdG9yKQorIC8vIE5vdCBhY3R1YWxseSBhbiB1cHBlciBib3VuZCBvbiB0aGUgc2l6ZSwgYnV0 IHRoaXMgdmFsdWUgcHJldmVudHMgY3Jvc3NpbmcgYQorIC8vIDRLIGJvdW5kYXJ5IChyZWxldmFu dCBvbiBBbmRlcykuCisgc3RhdGljIGNvbnN0ZXhwciBIV1lfTUFZQkVfVU5VU0VEIHNpemVfdCBr TWF4VmVjdG9yU2l6ZSA9IDQwOTY7CitAQCAtMzMzLDcgKzMzMyw3IEBAIHN0YXRpYyBjb25zdGV4 cHIgSFdZX01BWUJFX1VOVVNFRCBzaXplX3QKKyAvLyBieSBjb25jYXRlbmF0aW5nIGJhc2UgdHlw ZSBhbmQgYml0cy4KKyAKKyAvLyBSVlYgYWxyZWFkeSBoYXMgYSBidWlsdGluIHR5cGUgYW5kIHRo ZSBHQ0MgaW50cmluc2ljcyByZXF1aXJlIGl0LgorLSNpZiBIV1lfQVJDSF9SVlYgJiYgSFdZX0NP TVBJTEVSX0dDQworKyNpZiBIV1lfQVJDSF9SVlYgJiYgSFdZX0NPTVBJTEVSX0dDQyAmJiBkZWZp bmVkKF9fcmlzY3ZfdmVjdG9yKQorICNkZWZpbmUgSFdZX05BVElWRV9GTE9BVDE2IDEKKyAjZWxz ZQorICNkZWZpbmUgSFdZX05BVElWRV9GTE9BVDE2IDAKK0luZGV4OiBjaHJvbWl1bS0xMDQuMC41 MTEyLjc5L3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNocm9t aXVtLTEwNC4wLjUxMTIuNzkub3JpZy90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KKysrKyBj aHJvbWl1bS0xMDQuMC41MTEyLjc5L3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgorQEAgLTM2 LDYgKzM2LDggQEAgaWYgKGN1cnJlbnRfY3B1ID09ICJ4ODYiKSB7CisgICB9IGVsc2UgeworICAg ICBjcHVfYXJjaF9mdWxsID0gImFybSIKKyAgIH0KKyt9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09 ICJyaXNjdjY0IikgeworKyAgY3B1X2FyY2hfZnVsbCA9ICJnZW5lcmljIgorIH0gZWxzZSB7Cisg ICBjcHVfYXJjaF9mdWxsID0gY3VycmVudF9jcHUKKyB9CitJbmRleDogY2hyb21pdW0tMTA0LjAu NTExMi43OS90aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjaHJv bWl1bS0xMDQuMC41MTEyLjc5Lm9yaWcvdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCisrKysg Y2hyb21pdW0tMTA0LjAuNTExMi43OS90aGlyZF9wYXJ0eS9saWJ2cHgvQlVJTEQuZ24KK0BAIC0z NSw2ICszNSw4IEBAIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IikgeworICAgfSBlbHNlIHsKKyAg ICAgY3B1X2FyY2hfZnVsbCA9IGN1cnJlbnRfY3B1CisgICB9CisrfSBlbHNlIGlmIChjdXJyZW50 X2NwdSA9PSAicmlzY3Y2NCIpIHsKKysgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKKyB9IGVs c2UgeworICAgY3B1X2FyY2hfZnVsbCA9IGN1cnJlbnRfY3B1CisgfQorQEAgLTM2MCw3ICszNjIs NyBAQCBzdGF0aWNfbGlicmFyeSgibGlidnB4IikgeworICAgICBjb25maWdzICs9IFsgIi8vYnVp bGQvY29uZmlnL2NvbXBpbGVyOm9wdGltaXplX21heCIgXQorICAgfQorIAorLSAgaWYgKGlzX25h Y2wpIHsKKysgIGlmIChpc19uYWNsIHx8IGN1cnJlbnRfY3B1ID09ICJyaXNjdjY0IikgeworICAg ICBzb3VyY2VzID0gbGlidnB4X3NyY3NfZ2VuZXJpYworICAgICBwdWJsaWNfZGVwcyA9IFsgIjps aWJ2cHhfZ2VuZXJpY19oZWFkZXJzIiBdCisgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJ4 ODYiKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIGIvc3JjcGtncy9j aHJvbWl1bS90ZW1wbGF0ZQppbmRleCA3ZmQwZjk0ZmE3YjVlLi4xYTNiNDNiNWQ3NDM5IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0v dGVtcGxhdGUKQEAgLTYxLDcgKzYxLDcgQEAgZmkKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCiAJY2FzZSAiJHtYQlBTX1RBUkdFVF9NQUNISU5FfSIgaW4KLQkJYWFyY2g2NCopIDs7CisJ CWFhcmNoNjQqfHJpc2N2NjQqKSA7OwogCQkqKSBub2Nyb3NzPSJjaHJvbWl1bSBjYW4gbm90IGJl IGNyb3NzIGNvbXBpbGVkIGZvciB0aGlzIGFyY2hpdGVjdHVyZSIgOzsKIAllc2FjCiBmaQpAQCAt MjY5LDYgKzI2OSw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJaTY4NiopIGNvbmYrPSggJ3Rhcmdl dF9jcHU9Ing4NiInICkgOzsKIAkJYXJtKikgY29uZis9KCAndGFyZ2V0X2NwdT0iYXJtIicgKSA7 OwogCQlhYXJjaDY0KikgY29uZis9KCAndGFyZ2V0X2NwdT0iYXJtNjQiJyApIDs7CisJCXJpc2N2 NjQqKSBjb25mKz0oICd0YXJnZXRfY3B1PSJyaXNjdjY0IicgKSA7OwogCWVzYWMKIAogCWlmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgpAQCAtMjc3LDYgKzI3OCw3IEBAIGRvX2NvbmZpZ3VyZSgp IHsKIAkJCWk2ODYqKSBjb25mKz0oICdob3N0X2NwdT0ieDg2IicgKSA7OwogCQkJYXJtKikgY29u Zis9KCAnaG9zdF9jcHU9ImFybSInICkgOzsKIAkJCWFhcmNoNjQqKSBjb25mKz0oICdob3N0X2Nw dT0iYXJtNjQiJyApIDs7CisJCQlyaXNjdjY0KikgY29uZis9KCAnaG9zdF9jcHU9InJpc2N2NjQi JyApIDs7CiAJCWVzYWMKIAlmaQogCV9zZXR1cF90b29sY2hhaW4KCkZyb20gYjg3NjRiZTI1MjZm OTdjMTBhYTY0YjZmNjU0NWYwYjZiMDI5ZTE4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDE3IEphbiAyMDIzIDAwOjE1 OjQxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzMvMTg5XSBxdDUtd2Via2l0OiBtYXJrIHJpc2N2 NjQgYXMgdW5zdXBwb3J0ZWQKCi0tLQogc3JjcGtncy9xdDUtd2Via2l0L3BhdGNoZXMvcmlzY3Y2 NC5wYXRjaCB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYy IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0NS13ZWJraXQvcGF0 Y2hlcy9yaXNjdjY0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDUtd2Via2l0L3BhdGNo ZXMvcmlzY3Y2NC5wYXRjaCBiL3NyY3BrZ3MvcXQ1LXdlYmtpdC9wYXRjaGVzL3Jpc2N2NjQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNDJjMTc1ODZlZGU0 NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ1LXdlYmtpdC9wYXRjaGVzL3Jpc2N2NjQu cGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorRGVzY3JpcHRpb246IGFkZCBzdXBwb3J0IGZvciByaXNj djY0IGFyY2hpdGVjdHVyZQorQXV0aG9yOiBXaWxsaWFtIEdyYW50IDx3Z3JhbnRAdWJ1bnR1LmNv bT4KK0ZvcndhcmRlZDogaHR0cHM6Ly9naXRodWIuY29tL3F0d2Via2l0L3F0d2Via2l0L3B1bGwv OTgyCitMYXN0LVVwZGF0ZTogMjAyMC0wNC0yOAorCistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysr IGIvQ01ha2VMaXN0cy50eHQKK0BAIC04Myw2ICs4Myw4IEBAIGVsc2VpZiAoTE9XRVJDQVNFX0NN QUtFX1NZU1RFTV9QUk9DRVNTT1IKKyAgICAgc2V0KFdURl9DUFVfUzM5MCAxKQorIGVsc2VpZiAo TE9XRVJDQVNFX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1IgTUFUQ0hFUyAiczM5MHgiKQorICAgICBz ZXQoV1RGX0NQVV9TMzkwWCAxKQorK2Vsc2VpZiAoTE9XRVJDQVNFX0NNQUtFX1NZU1RFTV9QUk9D RVNTT1IgTUFUQ0hFUyAicmlzY3Y2NCIpCisrICAgIHNldChXVEZfQ1BVX1JJU0NWNjQgMSkKKyBl bHNlICgpCisgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIlVua25vd24gQ1BVICcke0xPV0VSQ0FT RV9DTUFLRV9TWVNURU1fUFJPQ0VTU09SfSciKQorIGVuZGlmICgpCistLS0gYS9Tb3VyY2UvSmF2 YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D TWFrZUxpc3RzLnR4dAorQEAgLTEyODcsNiArMTI4Nyw3IEBAIGVsc2VpZiAoV1RGX0NQVV9TMzkw KQorIGVsc2VpZiAoV1RGX0NQVV9TMzkwWCkKKyBlbHNlaWYgKFdURl9DUFVfTUlQUykKKyBlbHNl aWYgKFdURl9DUFVfU0g0KQorK2Vsc2VpZiAoV1RGX0NQVV9SSVNDVjY0KQorIGVsc2VpZiAoV1RG X0NQVV9YODYpCisgZWxzZWlmIChXVEZfQ1BVX1g4Nl82NCkKKyAgICAgaWYgKE1TVkMgQU5EIEVO QUJMRV9KSVQpCistLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKysgYi9Tb3VyY2Uv V1RGL3d0Zi9QbGF0Zm9ybS5oCitAQCAtMTc2LDYgKzE3NiwxMSBAQAorICNkZWZpbmUgV1RGX0NQ VV9YODZfU1NFMiAxCisgI2VuZGlmCisgCisrLyogQ1BVKFJJU0NWNjQpIC0gUklTQ1Y2NCAqLwor KyNpZiBkZWZpbmVkKF9fcmlzY3YpICYmIGRlZmluZWQoX19yaXNjdl94bGVuKSAmJiBfX3Jpc2N2 X3hsZW4gPT0gNjQKKysjZGVmaW5lIFdURl9DUFVfUklTQ1Y2NCAxCisrI2VuZGlmCisrCisgLyog Q1BVKEFSTTY0KSAtIEFwcGxlICovCisgI2lmIChkZWZpbmVkKF9fYXJtNjRfXykgJiYgZGVmaW5l ZChfX0FQUExFX18pKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICNkZWZpbmUgV1RGX0NQVV9B Uk02NCAxCitAQCAtNzA3LDcgKzcxMiw4IEBACisgICAgIHx8IENQVShTMzkwWCkgXAorICAgICB8 fCBDUFUoTUlQUzY0KSBcCisgICAgIHx8IENQVShQUEM2NCkgXAorLSAgICB8fCBDUFUoUFBDNjRM RSkKKysgICAgfHwgQ1BVKFBQQzY0TEUpIFwKKysgICAgfHwgQ1BVKFJJU0NWNjQpCisgI2RlZmlu ZSBVU0VfSlNWQUxVRTY0IDEKKyAjZWxzZQorICNkZWZpbmUgVVNFX0pTVkFMVUUzMl82NCAxCist LS0gYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hL3V0aWxzLmgKKysrKyBiL1NvdXJjZS9XVEYvd3RmL2R0 b2EvdXRpbHMuaAorQEAgLTQ5LDcgKzQ5LDcgQEAKKyBkZWZpbmVkKF9fQVJNRUxfXykgfHwgXAor IGRlZmluZWQoX01JUFNfQVJDSF9NSVBTMzJSMikKKyAjZGVmaW5lIERPVUJMRV9DT05WRVJTSU9O X0NPUlJFQ1RfRE9VQkxFX09QRVJBVElPTlMgMQorLSNlbGlmIENQVShNSVBTKSB8fCBDUFUoTUlQ UzY0KSB8fCBDUFUoUFBDKSB8fCBDUFUoUFBDNjQpIHx8IENQVShQUEM2NExFKSB8fCBDUFUoU0g0 KSB8fCBDUFUoUzM5MCkgfHwgQ1BVKFMzOTBYKSB8fCBDUFUoSUE2NCkgfHwgQ1BVKEFMUEhBKSB8 fCBDUFUoQVJNNjQpIHx8IENQVShIUFBBKQorKyNlbGlmIENQVShNSVBTKSB8fCBDUFUoTUlQUzY0 KSB8fCBDUFUoUFBDKSB8fCBDUFUoUFBDNjQpIHx8IENQVShQUEM2NExFKSB8fCBDUFUoU0g0KSB8 fCBDUFUoUzM5MCkgfHwgQ1BVKFMzOTBYKSB8fCBDUFUoSUE2NCkgfHwgQ1BVKEFMUEhBKSB8fCBD UFUoQVJNNjQpIHx8IENQVShIUFBBKSB8fCBDUFUoUklTQ1Y2NCkKKyAjZGVmaW5lIERPVUJMRV9D T05WRVJTSU9OX0NPUlJFQ1RfRE9VQkxFX09QRVJBVElPTlMgMQorICNlbGlmIGRlZmluZWQoX01f SVg4NikgfHwgZGVmaW5lZChfX2kzODZfXykKKyAjaWYgZGVmaW5lZChfV0lOMzIpCisKCkZyb20g MjIxMWQxMjNmODU5NDlmMDE5MTVmOTYxODg4ODQ0OWQxZWU5M2U1ZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDE3IEph biAyMDIzIDAwOjM2OjE2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzQvMTg5XSBsaWJrc3lzZ3Vh cmQ6IGRpc2FibGUgd2ViZW5naW5lIG9uIHJpc2N2NjQgZm9yIG5vdwoKLS0tCiBzcmNwa2dzL2xp YmtzeXNndWFyZC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlia3N5c2d1YXJkL3RlbXBs YXRlIGIvc3JjcGtncy9saWJrc3lzZ3VhcmQvdGVtcGxhdGUKaW5kZXggYWQxODNlMjhiZGZlYi4u ODhjMTIxM2U0ZjEyZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJrc3lzZ3VhcmQvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9saWJrc3lzZ3VhcmQvdGVtcGxhdGUKQEAgLTIwLDcgKzIwLDcgQEAgYnVp bGRfb3B0aW9ucz0id2ViZW5naW5lIgogaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgPSAibGUi IF0gJiYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiA9ICIkWEJQU19XT1JEU0laRSIgXTsgdGhl bgogCSMgcXQ1LXdlYmVuZ2luZSBjYW5ub3QgYmUgYnVpbHQgZm9yIGFybXY1dGVsCiAJY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCWFybXY1dGVsKikgOzsKKwkJYXJtdjV0ZWwqfHJp c2N2NjQqKSA7OwogCQkqKSBidWlsZF9vcHRpb25zX2RlZmF1bHQ9d2ViZW5naW5lIDs7CiAJZXNh YwogZmkKCkZyb20gY2VkMmVhMjcxNmMzNTcxNzFmNTk0ZmUzMDU5Y2Q1ODQwNmZiYTAwYSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRl OiBUdWUsIDE3IEphbiAyMDIzIDAwOjU5OjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNzUvMTg5 XSBkZWJvb3RzdHJhcDogYWRkIHJpc2N2NjQgYXJjaAoKLS0tCiBzcmNwa2dzL2RlYm9vdHN0cmFw L3RlbXBsYXRlIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2RlYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9kZWJvb3RzdHJhcC90 ZW1wbGF0ZQppbmRleCA2ZTVjMTdkYzQ1M2RiLi5mZTU4ZDIyYzQyMDgxIDEwMDY0NAotLS0gYS9z cmNwa2dzL2RlYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGVib290c3RyYXAvdGVt cGxhdGUKQEAgLTIxLDYgKzIxLDcgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJ cHBjNjRsZSopIF9kZWJhcmNoPXBwYzY0ZWw7OwogCXBwYzY0KikgX2RlYmFyY2g9cHBjNjQ7Owog CXBwYyopIF9kZWJhcmNoPXBvd2VycGM7OworCXJpc2N2NjQqKSBfZGViYXJjaD1yaXNjdjY0OzsK IAkqKSBicm9rZW49InBsZWFzZSBhZGQgeW91ciBhcmNoaXRlY3R1cmUiOzsKIGVzYWMKIAoKRnJv bSBhNjUwYzJlNGY3MTdiMjY3YzQ2YTU2YjM0MWI0NDZlMDJiMGZjNjc0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMTcg SmFuIDIwMjMgMDE6MTk6NTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3Ni8xODldIGFuZHJvaWQt dG9vbHM6IHdoaXRlbGlzdCByaXNjdjY0CgotLS0KIHNyY3BrZ3MvYW5kcm9pZC10b29scy90ZW1w bGF0ZSB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbmRyb2lkLXRvb2xzL3RlbXBsYXRlIGIvc3JjcGtn cy9hbmRyb2lkLXRvb2xzL3RlbXBsYXRlCmluZGV4IDM1MWJkZmVmODhkZjYuLjllM2U4MTYyNTQ4 MWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYW5kcm9pZC10b29scy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2FuZHJvaWQtdG9vbHMvdGVtcGxhdGUKQEAgLTIsNyArMiw4IEBACiBwa2duYW1lPWFuZHJv aWQtdG9vbHMKIHZlcnNpb249MzQuMC4xCiByZXZpc2lvbj0zCi1hcmNocz0iYXJtdiogYWFyY2g2 NCogeDg2XzY0KiBpNjg2KiBwcGM2NGxlKiIKK3JldmlzaW9uPTIKK2FyY2hzPSJhcm12KiBhYXJj aDY0KiB4ODZfNjQqIGk2ODYqIHBwYzY0bGUqIHJpc2N2NjQqIgogYnVpbGRfc3R5bGU9Y21ha2UK IGNvbmZpZ3VyZV9hcmdzPSItREdPX0VYRUNVVEFCTEU9L3Vzci9iaW4vZ28xLjIwIgogaG9zdG1h a2VkZXBlbmRzPSJwZXJsIGdvMS4yMCBwcm90b2J1ZiBwa2ctY29uZmlnIgoKRnJvbSBiNTQyNTAx YWZjYjYxZGYwZTUxNWQyMDVhNjQ3MTkwN2Y4MzI4NTBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgMTcgSmFuIDIwMjMg MjE6MzM6MTAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3Ny8xODldIGthY2NvdW50cy1wcm92aWRl cnM6IGRpc2FibGUgbmV4dGNsb3VkIG9uIHJpc2N2NjQKCi0tLQogc3JjcGtncy9rYWNjb3VudHMt cHJvdmlkZXJzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rYWNjb3VudHMtcHJvdmlkZXJz L3RlbXBsYXRlIGIvc3JjcGtncy9rYWNjb3VudHMtcHJvdmlkZXJzL3RlbXBsYXRlCmluZGV4IDM2 ZTk0ZmRmYmEzMTUuLjEzOWU3MzVkYTI3ZTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2FjY291bnRz LXByb3ZpZGVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2thY2NvdW50cy1wcm92aWRlcnMvdGVt cGxhdGUKQEAgLTE4LDcgKzE4LDcgQEAgY2hlY2tzdW09YzBhMTZhMjI1YTkzMGYzMjQzODIzMGZi NGUzMTMwNjc0YzM3NWEyNmQxYTBhMjA1YmRmNmZhMDRiMjkxMzVkMwogYnVpbGRfb3B0aW9ucz0i bmV4dGNsb3VkIgogZGVzY19vcHRpb25fbmV4dGNsb3VkPSJCdWlsZCBuZXh0Y2xvdWQgc3VwcG9y dCAobmVlZHMgUXQ1IFdlYkVuZ2luZSkiCiAKLWlmIFsgIiRYQlBTX1RBUkdFVF9FTkRJQU4iID0g ImxlIiBdOyB0aGVuCitpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJsZSIgXSAmJiAhIFsg IiR7WEJQU19UQVJHRVRfTUFDSElORS8tbXVzbC99IiA9ICJyaXNjdjY0IiBdOyB0aGVuCiAJaWYg WyAiJFhCUFNfV09SRFNJWkUiID0gIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgogCQli dWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgbmV4dGNsb3VkIgogCWZpCgpGcm9tIGU1NjFhY2EzNDY2 YmFlNjVkZTU0YWNiYTg4MjYwYzBkMDc0ZmY0MDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogV2VkLCAxOCBKYW4gMjAyMyAyMjoy NDo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDc4LzE4OV0gbW96anM3ODogbWFyayByaXNjdjY0 IGFzIGJyb2tlbgoKLS0tCiBzcmNwa2dzL21vempzNzgvdGVtcGxhdGUgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC90ZW1w bGF0ZSBiL3NyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQppbmRleCBiMTMwOWRhMGYzNDM5Li43YWY2 MjkyNWE5YjAxIDEwMDY0NAotLS0gYS9zcmNwa2dzL21vempzNzgvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9tb3pqczc4L3RlbXBsYXRlCkBAIC0yNiw2ICsyNiw3IEBAIGZpCiAKIGNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgogCW1pcHMqKSBicm9rZW49Im5vIG1hdGNoaW5nIGZ1bmN0aW9u IGZvciBjYWxsIHRvICdqczo6aml0OjpNYWNyb0Fzc2VtYmxlcjo6dW5ib3hJbnQzMihjb25zdCBq czo6aml0OjpCYXNlT2JqZWN0RWxlbWVudEluZGV4JiwganM6OmppdDo6UmVnaXN0ZXImKSciOzsK KwlyaXNjdjY0KikgYnJva2VuPSJWYWx1ZUVycm9yOiBVbmtub3duIENQVSB0eXBlOiByaXNjdjY0 Ijs7CiBlc2FjCiAKIGRvX2NvbmZpZ3VyZSgpIHsKCkZyb20gNDU3MzMwNDE5OWQ3ODQ1YjYzNTA1 M2IzYzhiYzRlZDMwNTY3ZTliZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBXZWQsIDI1IEphbiAyMDIzIDE0OjM3OjI5ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAwNzkvMTg5XSBub2RlanM6IGFkZCByaXNjdjY0CgotLS0KIHNyY3Br Z3Mvbm9kZWpzL3RlbXBsYXRlIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9zcmNwa2dzL25vZGVqcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvbm9kZWpzL3Rl bXBsYXRlCmluZGV4IDMxMjY4YjU1OGY4MWIuLmZlMDU1ZThiOGE4MmEgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvbm9kZWpzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRlCkBAIC02 MSw2ICs2MSw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJCW1pcHMqKSBfYXJncz0iLS1kZXN0LWNw dT1taXBzIiA7OwogCQkJaTY4NiopIF9hcmdzPSItLWRlc3QtY3B1PXg4NiIgOzsKIAkJCXg4Nl82 NCopIF9hcmdzPSItLWRlc3QtY3B1PXg4Nl82NCIgOzsKKwkJCXJpc2N2NjQqKSBfYXJncz0iLS1k ZXN0LWNwdT1yaXNjdjY0IiA7OwogCQkJKikgbXNnX2Vycm9yICIkcGtndmVyOiBjYW5ub3QgYmUg Y3Jvc3MgY29tcGlsZWQgZm9yICR7WEJQU19UQVJHRVRfTUFDSElORX0uXG4iIDs7CiAJCWVzYWMK IAkJIyB0aGlzIGlzIG5lY2Vzc2FyeSAtIGZvciBleGFtcGxlLCBub3JtYWxseSBjb21waWxpbmcg ZnJvbSBwcGM2NGxlCgpGcm9tIDgxMWVkYWI5ZGEwMDJkMmQ0OWIxOWE2YmYwZGEwNmM1N2RmYmIy ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4KRGF0ZTogU2F0LCAyOCBKYW4gMjAyMyAxNzowOToyMSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDgwLzE4OV0gcnVieTogYWRkIHBhdGNoIGZvciByaXNjdjY0CgotLS0KIHNyY3BrZ3MvcnVieS9w YXRjaGVzL2ZpeC1yaXNjdjY0LWJ1aWxkLnBhdGNoIHwgMzggKysrKysrKysrKysrKysrKysrKysK IDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9ydWJ5L3BhdGNoZXMvZml4LXJpc2N2NjQtYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3J1YnkvcGF0Y2hlcy9maXgtcmlzY3Y2NC1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvcnVi eS9wYXRjaGVzL2ZpeC1yaXNjdjY0LWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLmU4MWU4YjYyYzc4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3J1YnkvcGF0Y2hlcy9maXgtcmlzY3Y2NC1idWlsZC5wYXRjaApAQCAtMCwwICsxLDM4IEBA CitQYXRjaC1Tb3VyY2U6IGh0dHBzOi8vbGlzdHMub3BlbmVtYmVkZGVkLm9yZy9nL29wZW5lbWJl ZGRlZC1jb3JlL21lc3NhZ2UvMTYxMTY4CitwYXJ0aWFsbHkgZXh0cmFjdGVkIHRvIGFjdHVhbGx5 IGFwcGx5IG9udG8gYSByZWxlYXNlIHRhcmJhbGwKKworLS0tCitGcm9tIGRmYjIyZTRkNjY2MmJm NzI4NzllZGE4MDZlYWE3OGM3YjUyYjUxOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogVHVlLCAyNSBKYW4gMjAyMiAy MDoyOToxNCAtMDgwMAorU3ViamVjdDogW1BBVENIXSB2bV9kdW1wLmM6IERlZmluZSBSRUdfUzEg YW5kIFJFR19TMiBmb3IgbXVzbC9yaXNjdgorCitUaGVzZSBkZWZpbmVzIGFyZSBtaXNzaW5nIGlu IG11c2wsIHRoZXJlIGlzIGEgcG9zc2libGUKK3BhdGNoIHRvIGFkZCB0aGVtIHRvIG11c2wsIGJ1 dCB3ZSBuZWVkIGEgZnVsbCBsaXN0IG9mCit0aGVzZSBuYW1lcyBmb3IgbWNvbnRleHQgdGhhdCBj YW4gYmUgYWRkZWQgb25jZSBmb3IgYWxsCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0 ZSBbbXVzbCBidWddCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29t PgorLS0tCisgdm1fZHVtcC5jIHwgNSArKysrKworIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKykKKworZGlmZiAtLWdpdCBhL3ZtX2R1bXAuYyBiL3ZtX2R1bXAuYworaW5kZXggYTk4ZjVh YS4uOTU3Yjc4NSAxMDA2NDQKKy0tLSBhL3ZtX2R1bXAuYworKysrIGIvdm1fZHVtcC5jCitAQCAt MzksNiArMzksMTEgQEAKKyAKKyAjZGVmaW5lIE1BWF9QT1NCVUYgMTI4CisgCisrI2lmIGRlZmlu ZWQoX19yaXNjdikgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyMgZGVmaW5lIFJFR19TMSA5Cisr IyBkZWZpbmUgUkVHX1MyIDE4CisrI2VuZGlmCisrCisgI2RlZmluZSBWTV9DRlBfQ05UKGVjLCBj ZnApIFwKKyAgICgocmJfY29udHJvbF9mcmFtZV90ICopKChlYyktPnZtX3N0YWNrICsgKGVjKS0+ dm1fc3RhY2tfc2l6ZSkgLSBcCisgICAgKHJiX2NvbnRyb2xfZnJhbWVfdCAqKShjZnApKQorLS0g CisyLjM1LjAKKwoKRnJvbSA2ZTc1YzBlNWRkNDY3MGY0ZGRiNTk2NTk0Y2VjYmY5YTJjODVkZTc3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+ CkRhdGU6IFNhdCwgMjggSmFuIDIwMjMgMjE6MTQ6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 MS8xODldIGx0cmFjZTogc2V0IGJyb2tlbiBvbiByaXNjdgoKLS0tCiBzcmNwa2dzL2x0cmFjZS90 ZW1wbGF0ZSB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbHRyYWNlL3RlbXBsYXRlIGIvc3JjcGtncy9sdHJhY2UvdGVtcGxhdGUK aW5kZXggMjA4MDk4NjRjMWY3Ni4uNDBhMzM3NzAxZjIwMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9s dHJhY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sdHJhY2UvdGVtcGxhdGUKQEAgLTE1LDYgKzE1 LDEwIEBAIGNoZWNrc3VtPTRhZWNmNjllNGEzMzMzMWFlZDFlNTBjZTQ5MDdlNzNhOThjYmNjYzQ4 MzVmZWJjMzQ3Mzg2MzQ3NDMwNGQ1NDcKIAogQ0ZMQUdTPSItV25vLWVycm9yIC1EX0dOVV9TT1VS Q0UiCiAKK2lmIFsgIiR7WEJQU19UQVJHRVRfTUFDSElORS8tbXVzbC99IiA9ICJyaXNjdjY0IiBd OyBkbworCWJyb2tlbj0iJFhCUFNfVEFSR0VUX01BQ0hJTkUgbm90IHN1cHBvcnRlZCIKK2RvbmUK KwogcHJlX2NvbmZpZ3VyZSgpIHsKIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIg XTsgdGhlbgogCQlzZWQgLWkgJy9IT1NUX09TL3MvbGludXgtdWNsaWJjL2xpbnV4LW11c2wvZycg Y29uZmlndXJlLmFjCgpGcm9tIDViYWE2NGZjZDYwMjdlNWNjODNhZGQ4NGU0MjU2MDJmOWEwM2Nl NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4KRGF0ZTogU2F0LCAyOCBKYW4gMjAyMyAyMjoyMzozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDgyLzE4OV0gc2Vhd2VlZGZzOiBtYXJrIGJyb2tlbiBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3Mv c2Vhd2VlZGZzL3RlbXBsYXRlIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3NlYXdlZWRmcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2Vhd2Vl ZGZzL3RlbXBsYXRlCmluZGV4IGE5NTgwZTc2YWQyOTkuLmVlMWZkNTBmMjY0YjUgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3Mvc2Vhd2VlZGZzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2Vhd2VlZGZzL3Rl bXBsYXRlCkBAIC0xNCw0ICsxNCw1IEBAIGNoZWNrc3VtPTljNDRiNjVjZGM3YmEwZTJhNTQ0YzMx YWVlZDBhY2RlMGMwMDgwNDM5OTcxMjEyMjQyNTg4Y2FkOTRjZDYwMGYKIAogY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjNjQqKSBicm9rZW49ImJ1aWxkIGNvbnN0cmFpbnRzIGV4 Y2x1ZGUgYWxsIEdvIGZpbGVzIGluIC4uLiI7OworCXJpc2N2NjQqKSBicm9rZW49Imh0dHBzOi8v Z2l0aHViLmNvbS9oYXNoaWNvcnAvcmFmdC1ib2x0ZGIvaXNzdWVzLzI3IgogZXNhYwoKRnJvbSAx OTk2YTg2NTRjNDFlNDNmOWEyOWYwYjBjY2Y2ZTBjOTBhZmUwZTQxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgMjggSmFu IDIwMjMgMjI6NTU6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4My8xODldIG5lYnVsYTogYWRk IHBhdGNoIGZvciByaXNjdjY0CgotLS0KIHNyY3BrZ3MvbmVidWxhL3BhdGNoZXMvcmlzY3Y2NC5w YXRjaCB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9uZWJ1bGEvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9uZWJ1bGEvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoIGIvc3JjcGtncy9u ZWJ1bGEvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAuLjQ2YWQzMmYzOTc5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL25l YnVsYS9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKQEAgLTAsMCArMSw5IEBACistLS0gYS91ZHBfbGlu dXhfNjQuZ28JMjAyMS0wNS0xMSAwMzoyMzo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjMt MDEtMjggMjI6NTQ6MDIuNDgyNzExMTY4ICswMTAwCitAQCAtMSw1ICsxLDUgQEAKKyAvLyArYnVp bGQgbGludXgKKy0vLyArYnVpbGQgYW1kNjQgYXJtNjQgcHBjNjQgcHBjNjRsZSBtaXBzNjQgbWlw czY0bGUgczM5MHgKKysvLyArYnVpbGQgYW1kNjQgYXJtNjQgcHBjNjQgcHBjNjRsZSBtaXBzNjQg bWlwczY0bGUgczM5MHggcmlzY3Y2NAorIC8vICtidWlsZCAhYW5kcm9pZAorIC8vICtidWlsZCAh ZTJlX3Rlc3RpbmcKKyAKCkZyb20gM2M5Mzc0MmQwNDcwNWI0NTRjOTI4MjAyYTM2MTk1MzU3ZjMx NWFiYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBTYXQsIDI4IEphbiAyMDIzIDIyOjU4OjI4ICswMTAwClN1YmplY3Q6IFtQQVRD SCAwODQvMTg5XSBxdDUtd2VidmlldzogZGlzYWJsZSB3ZWJlbmdpbmUgb24gcmlzY3Y2NAoKLS0t CiBzcmNwa2dzL3F0NS13ZWJ2aWV3L3RlbXBsYXRlIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1 LXdlYnZpZXcvdGVtcGxhdGUgYi9zcmNwa2dzL3F0NS13ZWJ2aWV3L3RlbXBsYXRlCmluZGV4IDY0 NjRmMTA2NjA0MDYuLjNhNDA3YTYxM2I3MWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1LXdlYnZp ZXcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDUtd2Vidmlldy90ZW1wbGF0ZQpAQCAtMTYsNyAr MTYsMTAgQEAgY2hlY2tzdW09NDlmN2MwODdlOGUzNjYyYWRmM2MyNzFjNDFjNjI5ZTU0N2YwMmI4 MmIzMDU2NDExNDhmMDcxNzBkNGVhMWE2NwogCiBidWlsZF9vcHRpb25zPSJ3ZWJlbmdpbmUiCiBp ZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJsZSIgXSAmJiBbICIkWEJQU19XT1JEU0laRSIg PSAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiBdOyB0aGVuCi0JYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJ3ZWJlbmdpbmUiCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWFybXY1dGVs KnxyaXNjdiopOzsKKwkJKikgYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJ3ZWJlbmdpbmUiOzsKKwll c2FjCiBmaQogCiBwb3N0X2V4dHJhY3QoKSB7CgpGcm9tIGZmNmZjNDJkNjQzZGMyMjQ0MGNmZGFl YTEzMDAxZmQyMGFjYmQwZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU2F0LCAyOCBKYW4gMjAyMyAyMjo1ODo0MiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMDg1LzE4OV0gcXRjcmVhdG9yOiBkaXNhYmxlIHdlYmVuZ2luZSBvbiBy aXNjdjY0CgotLS0KIHNyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdGNyZWF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Y3JlYXRvci90ZW1wbGF0ZQppbmRleCAw ZWRiYjdlYzdkMGI5Li41OGJmYmEzYzMzMDM5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Y3JlYXRv ci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Y3JlYXRvci90ZW1wbGF0ZQpAQCAtNjQsNyArNjQs NyBAQCBxdGNyZWF0b3ItcXQ1X3BhY2thZ2UoKSB7CiAJaWYgWyAiJFhCUFNfVEFSR0VUX0VORElB TiIgPSAibGUiIC1hICIkWEJQU19UQVJHRVRfV09SRFNJWkUiID0gIiRYQlBTX1dPUkRTSVpFIiBd OyB0aGVuCiAJCSMgcXQ1LXdlYmVuZ2luZSBjYW5ub3QgYmUgYnVpbHQgZm9yIGFybXY1dGVsCiAJ CWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQkJYXJtdjV0ZWwqKSA7OworCQkJYXJt djV0ZWwqfHJpc2N2KikgOzsKIAkJCSopIGRlcGVuZHMrPSIgcXQ1LXdlYmVuZ2luZS1kZXZlbCIg OzsKIAkJZXNhYwogCWZpCgpGcm9tIGQ3YmRiZjYyYzFiMWEzZjc2MDFmMjg2MThmMDA5ZDgzOGM0 MTE2NDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4KRGF0ZTogU2F0LCAyOCBKYW4gMjAyMyAyMzoxNjo1OCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDg2LzE4OV0gZnMtcmVwby1taWdyYXRpb25zOiBkb24ndCBidWlsZCBmb3IgcmlzY3Y2NAoK LS0tCiBzcmNwa2dzL2ZzLXJlcG8tbWlncmF0aW9ucy90ZW1wbGF0ZSB8IDIgKysKIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZzLXJlcG8tbWln cmF0aW9ucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZnMtcmVwby1taWdyYXRpb25zL3RlbXBsYXRlCmlu ZGV4IDAwYjkwNzJiZWVjNWEuLjFmYWYwZDBiN2YxMDUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZnMt cmVwby1taWdyYXRpb25zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZnMtcmVwby1taWdyYXRpb25z L3RlbXBsYXRlCkBAIC0yLDYgKzIsOCBAQAogcGtnbmFtZT1mcy1yZXBvLW1pZ3JhdGlvbnMKIHZl cnNpb249MS43LjEKIHJldmlzaW9uPTMKKyMgTWFueSB0aGluZ3MgZG9uJ3Qgc2VlbSB0byBiZSBw b3J0ZWQgdG8gcmlzY3YgKHlldCkKK2FyY2hzPSJ+cmlzY3Y2NCoiCiBidWlsZF9zdHlsZT1nbwog Z29faW1wb3J0X3BhdGg9ImdpdGh1Yi5jb20vaXBmcy9mcy1yZXBvLW1pZ3JhdGlvbnMiCiBzaG9y dF9kZXNjPSJUb29sIHRvIHVwZ3JhZGUgdGhlIElQRlMgZmlsZXN5c3RlbSByZXBvc2l0b3J5IgoK RnJvbSAxNDgxZWVkZGNkMjkwZTRlZWJiY2JlYzQzNGZmY2EwYjZiMDhkYzkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwg MjggSmFuIDIwMjMgMjM6NTQ6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4Ny8xODldIG1pbmlv OiBkb24ndCBidWlsZCBmb3IgcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL21pbmlvL3RlbXBsYXRlIHwg MSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9zcmNwa2dz L21pbmlvL3RlbXBsYXRlIGIvc3JjcGtncy9taW5pby90ZW1wbGF0ZQppbmRleCAxY2RlNjdlZTIx MGRkLi42ODE5NjE3NjIzNGRmIDEwMDY0NAotLS0gYS9zcmNwa2dzL21pbmlvL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvbWluaW8vdGVtcGxhdGUKQEAgLTMsNiArMyw3IEBAIHBrZ25hbWU9bWluaW8K IHZlcnNpb249MjAyMS4wNC4wNgogcmV2aXNpb249MwogX3ZlcnNpb249IiR7dmVyc2lvbi8vLi8t fVQyMy0xMS0wMFoiCithcmNocz0ifnJpc2N2NjQqIiAjIHByb2Nmc0B2MC4yLjAgZG9lc24ndCBm dWxseSBzdXBwb3J0IHJpc2N2CiBidWlsZF9zdHlsZT1nbwogZ29faW1wb3J0X3BhdGg9ImdpdGh1 Yi5jb20vbWluaW8vbWluaW8iCiBjb25mX2ZpbGVzPSIvZXRjL2RlZmF1bHQvbWluaW8gL2V0Yy9t aW5pby9jb25maWcuanNvbiIKCkZyb20gZDVmZjE5NDY1MmI0NTUzNzllNDU1ODgzOWEwY2UzZTdi NWI3MTcyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PgpEYXRlOiBTYXQsIDI4IEphbiAyMDIzIDIzOjU5OjQxICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwODgvMTg5XSB0aHVuZGVyYmlyZDogbWFyayBicm9rZW4gZm9yIHJpc2N2NjQgZm9yIG5v dwoKLS0tCiBzcmNwa2dzL3RodW5kZXJiaXJkL3RlbXBsYXRlIHwgMSArCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RodW5kZXJiaXJkL3RlbXBs YXRlIGIvc3JjcGtncy90aHVuZGVyYmlyZC90ZW1wbGF0ZQppbmRleCBlMjc4YWY2MzNjZDY3Li41 Y2Y4ZmVkODIwZGY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RodW5kZXJiaXJkL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvdGh1bmRlcmJpcmQvdGVtcGxhdGUKQEAgLTMzLDYgKzMzLDcgQEAgY2FzZSAk WEJQU19UQVJHRVRfTUFDSElORSBpbgogCWFybXZbNTZdKikgYnJva2VuPSJyZXF1aXJlZCBORU9O IGV4dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gYXJtdjYiIDs7CiAJcHBjNjQqKSA7Owog CXBwYyopIGJyb2tlbj0ieHB0Y2FsbCBiaXRyb3QiIDs7CisJcmlzY3Y2NCopIGJyb2tlbj0iU29t ZSBydXN0IGNyYXRlcyBuZWVkIHVwZGF0aW5nIiA7OwogZXNhYwogCiAjIHRyeSB0byBtaW5pbWl6 ZSBtZW1vcnkgdXNhZ2UgdmlhIGRlYnVnIHN5bWJvbHMKCkZyb20gYjU1MTliOTgzNWY2YmVjZmFm YjFmZWI4ODkyMzAyZjM0ZDIyNDM0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9o biA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDI5IEphbiAyMDIzIDAwOjAyOjQ2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwODkvMTg5XSBhMmptaWRpZDogYWRkIHJpc2N2NjQgcGF0Y2gK Ci0tLQogc3JjcGtncy9hMmptaWRpZC9wYXRjaGVzL3Jpc2N2NjQucGF0Y2ggfCA0NCArKysrKysr KysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Eyam1pZGlkL3BhdGNoZXMvcmlzY3Y2NC5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYTJqbWlkaWQvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoIGIvc3Jj cGtncy9hMmptaWRpZC9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMC4uMmI5ZTJlZDFjNWExZAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvYTJqbWlkaWQvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zy b20gMmMzZmJlZjY4NTQ3NDM0MTZkOTVkODViMTU2NWRkZTUxNjY4NDg4YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IEhlaW5yaWNoIFNjaHVjaGFyZHQgPGhlaW5yaWNoLnNjaHVjaGFy ZHRAY2Fub25pY2FsLmNvbT4KK0RhdGU6IEZyaSwgMSBPY3QgMjAyMSAxNjoxNToyOSArMDIwMAor U3ViamVjdDogW1BBVENIXSBzaWdzZWd2OiBlbmFibGUgUklTQy1WIGJ1aWxkCitNSU1FLVZlcnNp b246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0F2b2lkIGJ1aWxkIGVycm9yCisKKy4uL3NpZ3Nl Z3YuYzoxMDQ6Mzk6IGVycm9yOiDigJhtY29udGV4dF904oCZIGhhcyBubyBtZW1iZXIgbmFtZWQg 4oCYZ3JlZ3PigJk7CitkaWQgeW91IG1lYW4g4oCYX19ncmVnc+KAmT8KKyAgMTA0IHwgICAgICAg ICAgICAgICAgIHVjb250ZXh0LT51Y19tY29udGV4dC5ncmVnc1tpXQorICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CisKK1NpZ25lZC1vZmYtYnk6IEhl aW5yaWNoIFNjaHVjaGFyZHQgPGhlaW5yaWNoLnNjaHVjaGFyZHRAY2Fub25pY2FsLmNvbT4KKy0t LQorIHNpZ3NlZ3YuYyB8IDYgKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NpZ3NlZ3YuYyBiL3NpZ3NlZ3YuYwor aW5kZXggZmI0NDU2ZS4uNjkzMDE4NSAxMDA2NDQKKy0tLSBhL3NpZ3NlZ3YuYworKysrIGIvc2ln c2Vndi5jCitAQCAtOTEsNyArOTEsOSBAQCBzdGF0aWMgdm9pZCBzaWduYWxfc2VndihpbnQgc2ln bnVtLCBzaWdpbmZvX3QqIGluZm8sIHZvaWQqcHRyKSB7CisgICAgIGEyal9lcnJvcigiaW5mby5z aV9lcnJubyA9ICVkIiwgaW5mby0+c2lfZXJybm8pOworICAgICBhMmpfZXJyb3IoImluZm8uc2lf Y29kZSAgPSAlZCAoJXMpIiwgaW5mby0+c2lfY29kZSwgc2lfY29kZXNbaW5mby0+c2lfY29kZV0p OworICAgICBhMmpfZXJyb3IoImluZm8uc2lfYWRkciAgPSAlcCIsIGluZm8tPnNpX2FkZHIpOwor LSNpZiAhZGVmaW5lZChfX2FscGhhX18pICYmICFkZWZpbmVkKF9faWE2NF9fKSAmJiAhZGVmaW5l ZChfX0ZyZWVCU0Rfa2VybmVsX18pICYmICFkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9f aHBwYV9fKSAmJiAhZGVmaW5lZChfX3NoX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNp ZiAhZGVmaW5lZChfX2FscGhhX18pICYmICFkZWZpbmVkKF9faWE2NF9fKSAmJiBcCisrICAgICFk ZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykgJiYgIWRlZmluZWQoX19hcm1fXykgJiYgIWRlZmlu ZWQoX19ocHBhX18pICYmIFwKKysgICAgIWRlZmluZWQoX19zaF9fKSAmJiAhZGVmaW5lZChfX2Fh cmNoNjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgZm9yKGkgPSAwOyBpIDwgTkdSRUc7 IGkrKykKKyAgICAgICAgIGEyal9lcnJvcigicmVnWyUwMmRdICAgICAgID0gMHgiIFJFR0ZPUk1B VCwgaSwKKyAjaWYgZGVmaW5lZChfX3Bvd2VycGNfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRf XykKK0BAIC0xMDgsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgc2lnbmFsX3NlZ3YoaW50IHNpZ251 bSwgc2lnaW5mb190KiBpbmZvLCB2b2lkKnB0cikgeworICAgICAgICAgICAgICAgICB1Y29udGV4 dC0+dWNfbWNvbnRleHQuZ3JlZ3NbaV0KKyAjZW5kaWYKKyAgICAgICAgICAgICAgICAgKTsKKy0j ZW5kaWYgLyogYWxwaGEsIGlhNjQsIGtGcmVlQlNELCBhcm0sIGhwcGEsIGFhcmNoNjQgKi8KKysj ZW5kaWYgLyogYWxwaGEsIGlhNjQsIGtGcmVlQlNELCBhcm0sIGhwcGEsIGFhcmNoNjQsIHJpc2N2 ICovCisgCisgI2lmIGRlZmluZWQoU0lHU0VHVl9TVEFDS19YODYpIHx8IGRlZmluZWQoU0lHU0VH Vl9TVEFDS19JQTY0KQorICMgaWYgZGVmaW5lZChTSUdTRUdWX1NUQUNLX0lBNjQpCgpGcm9tIDFj ZjJlNDczYjQ2YmExZjAxNWJkYjEyY2E2Zjk1YTM2ODEyODgxNWUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAyOSBKYW4g MjAyMyAwMDowOTo0NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDkwLzE4OV0gbGFkaXNoOiBhZGQg cmlzY3Y2NCBwYXRjaAoKLS0tCiBzcmNwa2dzL2xhZGlzaC9wYXRjaGVzL2FhcmNoNjQucGF0Y2gg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xhZGlzaC9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dz L2xhZGlzaC9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKaW5kZXggMzM4NWY0MTg3MWVmMC4uOTdhNjk5 MjNlODFjNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9sYWRpc2gvcGF0Y2hlcy9hYXJjaDY0LnBhdGNo CisrKyBiL3NyY3BrZ3MvbGFkaXNoL3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtNSw3ICs1LDcg QEAKICAjZW5kaWYKICAKIC0jaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw Y19fKSB8fCBkZWZpbmVkIChfX2lhNjRfXykgfHwgZGVmaW5lZCAoX19hbHBoYV9fKSB8fCBkZWZp bmVkIChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQgKF9fc2hfXykKLSsjaWYgZGVmaW5l ZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19f KSB8fCBkZWZpbmVkIChfX2lhNjRfXykgfHwgZGVmaW5lZCAoX19hbHBoYV9fKSB8fCBkZWZpbmVk IChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQgKF9fc2hfXykKKysjaWYgZGVmaW5lZChf X2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8 fCBkZWZpbmVkIChfX2lhNjRfXykgfHwgZGVmaW5lZCAoX19hbHBoYV9fKSB8fCBkZWZpbmVkIChf X0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQgKF9fc2hfXykgfHwgZGVmaW5lZChfX3Jpc2N2 KQogICMgZGVmaW5lIERJU0FCTEVfU1RBQ0tUUkFDRQogICNlbmRpZgogIAoKRnJvbSA1ODA3YTEx OTE5ZDdlNWFiYzQxODc3ZTRmNjNiN2EwYzNkODcxMzBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjkgSmFuIDIwMjMg MDA6MzE6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5MS8xODldIGV4YTogdXBkYXRlIGxpYmMg Y3JhdGUgZm9yIHJpc2N2NjQgY29tcGF0CgotLS0KIHNyY3BrZ3MvZXhhL3RlbXBsYXRlIHwgNSAr KysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZXhhL3RlbXBsYXRlIGIvc3JjcGtncy9leGEvdGVtcGxhdGUKaW5kZXggODliZjY2MTFkOWZi Yy4uMTFlNWVhNzg5ZDM5NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9leGEvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9leGEvdGVtcGxhdGUKQEAgLTIyLDYgKzIyLDExIEBAIHBvc3RfZXh0cmFjdCgpIHsK IAltdiBtYW4gIiR7YnVpbGRfd3Jrc3JjfS9hY2NvdXRyZW1lbnRzLyIKIH0KIAorcHJlX2J1aWxk KCkgeworCSMgTmV3ZXIgbGliYyBuZWVkZWQgZm9yIHJpc2N2NjQKKwljYXJnbyB1cGRhdGUgLS1w YWNrYWdlIGxpYmMgLS1wcmVjaXNlIDAuMi4xMzkKK30KKwogcG9zdF9pbnN0YWxsKCkgewogCXZj b21wbGV0aW9uIGNvbXBsZXRpb25zL2NvbXBsZXRpb25zLmJhc2ggYmFzaAogCXZjb21wbGV0aW9u IGNvbXBsZXRpb25zL2NvbXBsZXRpb25zLmZpc2ggZmlzaAoKRnJvbSAyN2YyNjYxNzA3Y2IwNGI1 ZDU5ZjE1MzBkNDc2NzQ0OTdiNzc5MWYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK b2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjkgSmFuIDIwMjMgMDA6MzY6MjQg KzAxMDAKU3ViamVjdDogW1BBVENIIDA5Mi8xODldIGFjYnVpbGQ6IGFkZCByaXNjdjY0IHBhdGNo CgotLS0KIHNyY3BrZ3MvYWNidWlsZC9wYXRjaGVzL3Jpc2N2NjQucGF0Y2ggfCAyNiArKysrKysr KysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2FjYnVpbGQvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hY2J1aWxkL3BhdGNoZXMvcmlzY3Y2NC5wYXRjaCBiL3NyY3Br Z3MvYWNidWlsZC9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMC4uZmVmZTE4YmI1MDY2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvYWNidWlsZC9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorLS0tIC9k ZXYvbnVsbAkyMDIzLTAxLTI4IDEyOjA5OjEyLjE2NDE2NTAxOSArMDEwMAorKysrIGFjYnVpbGQt MC40LjAvdmVuZG9yL2dpdGh1Yi5jb20vY29yZW9zL3JrdC9wa2cvc3lzL3N5c19saW51eF9yaXNj djY0LmdvCTIwMjMtMDEtMjkgMDA6MzU6MTkuNTA0ODkxNTQ2ICswMTAwCitAQCAtMCwwICsxLDIz IEBACisrLy8gQ29weXJpZ2h0IDIwMTUgVGhlIHJrdCBBdXRob3JzCisrLy8KKysvLyBMaWNlbnNl ZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsK KysvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgg dGhlIExpY2Vuc2UuCisrLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0 CisrLy8KKysvLyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w CisrLy8KKysvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRv IGluIHdyaXRpbmcsIHNvZnR3YXJlCisrLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2Ug aXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKysvLyBXSVRIT1VUIFdBUlJBTlRJ RVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4K KysvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg cGVybWlzc2lvbnMgYW5kCisrLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisrCisr Ly8gK2J1aWxkIGxpbnV4LHJpc2N2NjQKKysKKytwYWNrYWdlIHN5cworKworK2ltcG9ydCAic3lz Y2FsbCIKKysKKytjb25zdCAoCisrCVNZU19TWU5DRlMgPSBzeXNjYWxsLlNZU19TWU5DRlMKKysp CgpGcm9tIGFmZjdiNmZkMWRjMTk0NmQ2OWQyMDE2MGU5NTRiM2Y2NGI5YTlhMzUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3Vu LCAyOSBKYW4gMjAyMyAwMDo0Mzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDkzLzE4OV0geHEt YXBpOiBtYXJrIGJyb2tlbiBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3MveHEtYXBpL3RlbXBsYXRl IHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy94cS1hcGkvdGVtcGxhdGUgYi9zcmNwa2dzL3hxLWFwaS90ZW1wbGF0ZQppbmRleCBi MTU5NjUzZWE0YmIwLi5kYWFiZjNkZmUzYTRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3hxLWFwaS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3hxLWFwaS90ZW1wbGF0ZQpAQCAtMTUsNiArMTUsMTAgQEAg Y2hlY2tzdW09MDg3OTQwYTE2ODMwZWFmODIxYWJmY2I4YzZlMGRhYWQ0NzA3OGI0ODU5YjlhY2Yy MzY0NjRiZmNhODA5ZWQ0Mwogc3lzdGVtX2FjY291bnRzPSJfeHFhcGkiCiBfeHFhcGlfaG9tZWRp cj0iL3Zhci9saWIveHEtYXBpIgogCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwly aXNjdjY0KikgYnJva2VuPSJVc2VzIG9sZCB2ZW5kb3JlZCBicm9rZW4gc3lzL3VuaXggZGVwIjs7 Citlc2FjCisKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bWFuIHhxLWFwaS44CiAJdmxpY2Vuc2UgQ09Q WUlORyBOT1RJQ0UKCkZyb20gNTVlNzdhNWYxYzIwYTlkY2I3ZDRhZjA1OTA1YjBlNjRiMGMwNTA3 NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PgpEYXRlOiBTdW4sIDI5IEphbiAyMDIzIDAwOjQ1OjA4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAw OTQvMTg5XSBmb29sOiB1cGRhdGUgbGliYyBjcmF0ZSBmb3IgcmlzY3Y2NCBjb21wYXQKCi0tLQog c3JjcGtncy9mb29sL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZm9vbC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZm9vbC90ZW1wbGF0ZQppbmRleCAxMDA4Yjc4NjYwNDg2Li43YzBlNmMxMzQy YjNjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Zvb2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mb29s L3RlbXBsYXRlCkBAIC0xMiw4ICsxMiw4IEBAIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29t L3NwYWNla29va2llL2Zvb2wvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT00 MWZhMWExMGEzYjNjYWRiYTQ3MDBiODA5ZGYxM2RmOWVkMTA5ZWNjNWM1NGJhOGI2NDUyNjlhYmZm ODRhNDFhCiAKIHByZV9idWlsZCgpIHsKLQkjIGRlZmF1bHQgdmVyc2lvbiB0b28gb2xkIGZvciBw cGMgbXVzbCBzeXN0ZW1zCi0JY2FyZ28gdXBkYXRlIC0tcGFja2FnZSBsaWJjQDAuMi4zNCAtLXBy ZWNpc2UgMC4yLjY2CisJIyBkZWZhdWx0IHZlcnNpb24gdG9vIG9sZCBmb3IgcHBjIG11c2wgYW5k IHJpc2N2NjQgc3lzdGVtcworCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliY0AwLjIuMzQgLS1w cmVjaXNlIDAuMi4xMzkKIH0KIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSBhYjM5NmE1YTExZDYw MjE3Yzk1ZjIwNDI2ZDQ3Nzc4N2ZlY2NlYWQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjkgSmFuIDIwMjMgMTM6MDk6 NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5NS8xODldIG5tb246IG1hcmsgYnJva2VuIG9uIHVu c3VwcG9ydGVkIGFyY2hzCgotLS0KIHNyY3BrZ3Mvbm1vbi90ZW1wbGF0ZSB8IDEyICsrKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL25tb24vdGVtcGxhdGUgYi9zcmNwa2dzL25tb24vdGVtcGxhdGUK aW5kZXggNzkwZWQ2ZDhkNWM5ZC4uODYyNjgwNjg2ZDA2YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9u bW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvbm1vbi90ZW1wbGF0ZQpAQCAtMTIsMTIgKzEyLDE0 IEBAIGhvbWVwYWdlPSJodHRwOi8vbm1vbi5zb3VyY2Vmb3JnZS5uZXQvcG13aWtpLnBocD9uPU1h aW4uSG9tZVBhZ2UiCiBkaXN0ZmlsZXM9IiR7U09VUkNFRk9SR0VfU0lURX0vbm1vbi9maWxlcy9s bW9uJHt2ZXJzaW9ufS5jIgogY2hlY2tzdW09YzAwMTJjYzJkOTI1ZGVlOTQwYzM3Y2VhZTI5N2Fi YWM2NGJhNWE1YzMwZTU3NWU3NDE4YjA0MDI4NjEzZjVmMgogCitjYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KKwlwcGMqKSBfQVJDSD0iUE9XRVIiIDs7CisJYXJtKnxhYXJjaDY0KikgX0FS Q0g9IkFSTSIgOzsKKwlpNjg2Knx4ODZfNjQqKSBfQVJDSD0iWDg2IiA7OworCSopIGJyb2tlbj0i JFhCUFNfVEFSR0VUX01BQ0hJTkUgaXMgdW5zdXBwcnRlZCIKK2VzYWMKKwogZG9fYnVpbGQoKSB7 Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXBwYyopIF9BUkNIPSJQT1dFUiIg OzsKLQkJYXJtKnxhYXJjaDY0KikgX0FSQ0g9IkFSTSIgOzsKLQkJaTY4Nip8eDg2XzY0KikgX0FS Q0g9Ilg4NiIgOzsKLQllc2FjCiAJJENDICR7Q0ZMQUdTfSAke0xERkxBR1N9IC1EICRfQVJDSCBc CiAJCWxtb24ke3ZlcnNpb259LmMgLWxuY3Vyc2VzIC1sbSAtbyBubW9uCiB9CgpGcm9tIGNjMzZl ODRhNDU2NGQ3Y2Q1OTVhZTA2NWFjYmEyYWJlYjQzYWQ5NmMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAyOSBKYW4gMjAy MyAxMzoxMDo0NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDk2LzE4OV0gdmFsZ3JpbmQ6IG1hcmsg YnJva2VuIG9uIHJpc2N2NjQKCi0tLQogc3JjcGtncy92YWxncmluZC90ZW1wbGF0ZSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvdmFsZ3JpbmQvdGVtcGxhdGUgYi9zcmNwa2dzL3ZhbGdyaW5kL3RlbXBsYXRl CmluZGV4IDY1NzJhNTQ4M2U1MmIuLjlhYmQyZTJiNDBkMjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv dmFsZ3JpbmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YWxncmluZC90ZW1wbGF0ZQpAQCAtMzUs NyArMzUsNyBAQCBsaWIzMnN5bWxpbmtzPSIKICB2YWxncmluZC9ub25lLXg4Ni1saW51eCIKIAog Y2FzZSAkWEJQU19UQVJHRVRfTUFDSElORSBpbgotCWFybXY2KikgYnJva2VuPSJVbnN1cHBvcnRl ZCBhcmNoaXRlY3R1cmUiOzsKKwlhcm12Nip8cmlzY3Y2NCopIGJyb2tlbj0iVW5zdXBwb3J0ZWQg YXJjaGl0ZWN0dXJlIjs7CiBlc2FjCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJh cm12N2wiIF07IHRoZW4KCkZyb20gNDkyNWU0ODI2ODI1ZjQ4MmMzZGExM2I2MGQ1NDE1Y2Q3ZTE5 MTVkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBTdW4sIDI5IEphbiAyMDIzIDEzOjEyOjAyICswMTAwClN1YmplY3Q6IFtQQVRD SCAwOTcvMTg5XSB4c3Y6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0IGNvbXBhdAoKLS0t CiBzcmNwa2dzL3hzdi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hzdi90ZW1wbGF0 ZSBiL3NyY3BrZ3MveHN2L3RlbXBsYXRlCmluZGV4IDg3MjRkMjJkYWI2ZTYuLmRlYmM4MWU2NzFi YzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveHN2L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveHN2L3Rl bXBsYXRlCkBAIC0xMSw4ICsxMSw4IEBAIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0J1 cm50U3VzaGkvJHtwa2duYW1lfS9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6IgogY2hlY2tzdW09 MmI3NTMwOWI3NjRjOWYyZjNmZGMxZGQzMWVlZWE1YTc0NDk4ZjdkYTIxYWU3NTdiM2ZmZDZmZDUz N2VjNTM0NQogCiBwcmVfYnVpbGQoKSB7Ci0JIyBkZWZhdWx0IHZlcnNpb24gdG9vIG9sZCBmb3Ig cHBjIG11c2wgc3lzdGVtcwotCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliY0AwLjIuNDAgLS1w cmVjaXNlIDAuMi42NgorCSMgZGVmYXVsdCB2ZXJzaW9uIHRvbyBvbGQgZm9yIHBwYyBtdXNsIGFu ZCByaXNjdjY0IHN5c3RlbXMKKwljYXJnbyB1cGRhdGUgLS1wYWNrYWdlIGxpYmNAMC4yLjQwIC0t cHJlY2lzZSAwLjIuMTM5CiB9CiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20gNTFiYzFhZjZhNzU5 NDU2ODE1NjY5ZGVjMzAyMjkzNTRjZTc0NGU5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDI5IEphbiAyMDIzIDEzOjE2 OjQyICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOTgvMTg5XSB0ZXhsaXZlOiBkaXNhYmxlIEx1YUpJ VCBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZSB8IDQgKysrLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZQppbmRl eCBjZDdhYjQ3YTA2MWFiLi5iNzFmYzU5MzMzZDkwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RleGxp dmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90ZXhsaXZlL3RlbXBsYXRlCkBAIC0xMDYsNyArMTA2 LDkgQEAgaWYgWyAiJFhCUFNfV09SRFNJWkUiICE9ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiIF0g OyB0aGVuCiAJZXNhYwogZmkKIAotaWYgWyAiJHtfbHVhaml0X2hvc3RfY2N9IiAhPSAiYnJva2Vu IiBdIDsgdGhlbgoraWYgWyAiJHtfbHVhaml0X2hvc3RfY2N9IiAhPSAiYnJva2VuIiBdICYmIFwK KwkhIFsgIiR7WEJQU19UQVJHRVRfTUFDSElORS8tbXVzbC99IiA9ICJyaXNjdjY0IiBdICYmIFwK KwkhIFsgIiR7WEJQU19NQUNISU5FLy1tdXNsL30iID0gInJpc2N2NjQiIF07IHRoZW4KIAlidWls ZF9vcHRpb25zX2RlZmF1bHQrPSIgbHVhaml0IgogZmkKIAoKRnJvbSA4YTE4OWQ5ODY0YjUwMjZk OGQxMTJjOWJlYmU3ZTk1NDU5Yzc4OGRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK b2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjkgSmFuIDIwMjMgMTM6MzM6Mjcg KzAxMDAKU3ViamVjdDogW1BBVENIIDA5OS8xODldIG90ZmNjOiBhZGQgcmlzY3Y2NCBzdXBwb3J0 CgotLS0KIHNyY3BrZ3Mvb3RmY2MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL290ZmNjL3Rl bXBsYXRlIGIvc3JjcGtncy9vdGZjYy90ZW1wbGF0ZQppbmRleCBhMGE4MjY3NGY3ZjczLi43MzZi NzRhNDdlOWVkIDEwMDY0NAotLS0gYS9zcmNwa2dzL290ZmNjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvb3RmY2MvdGVtcGxhdGUKQEAgLTE0LDcgKzE0LDcgQEAgY2hlY2tzdW09ZDljNzQ4MjVkZGFj NzAwZWI0MjlkZTMxZGU3Y2IwYTI0OTYzNmY0N2M2YTRjYzY0ZWFhMTAyYTQwOTY2Y2YwMAogCiAj IFllcywgdGhlcmUgYXJlIGFyY2hpdGVjdHVyZXMgYmVzaWRlcyB4ODYgYW5kIHg2NCA6LVAKIGNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCWFhcmNoNjQqfHg4Nl82NCp8cHBjNjQqKSBf cGxhdGZvcm09Ing2NCIgOzsKKwlhYXJjaDY0Knx4ODZfNjQqfHBwYzY0KnxyaXNjdjY0KikgX3Bs YXRmb3JtPSJ4NjQiIDs7CiAJYXJtKnxpNjg2KnxtaXBzKnxwcGMqKSBfcGxhdGZvcm09Ing4NiI7 OwogZXNhYwogCgpGcm9tIDkyNTY5MzU2YjhhMzY1NWVlNzg4MDc3MGI2OTkyYjExNjNhNzE2MWYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4K RGF0ZTogU3VuLCAyOSBKYW4gMjAyMyAxMzozODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAw LzE4OV0gbWFrZWR1bXBmaWxlOiBkaXNhYmxlIG9uIHJpc2N2NjQKCi0tLQogc3JjcGtncy9tYWtl ZHVtcGZpbGUvdGVtcGxhdGUgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWFrZWR1bXBmaWxlL3RlbXBsYXRlIGIvc3JjcGtncy9tYWtl ZHVtcGZpbGUvdGVtcGxhdGUKaW5kZXggMTc0NGI5NGE3ODI3Ny4uOTM2Mjc0Njc1MDFiZCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9tYWtlZHVtcGZpbGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tYWtl ZHVtcGZpbGUvdGVtcGxhdGUKQEAgLTIsNiArMiw3IEBACiBwa2duYW1lPW1ha2VkdW1wZmlsZQog dmVyc2lvbj0xLjcuMwogcmV2aXNpb249MQorYXJjaHM9In5yaXNjdjY0KiIKIG1ha2VkZXBlbmRz PSJlbGZ1dGlscy1kZXZlbCB6bGliLWRldmVsIGJ6aXAyLWRldmVsIGxpYmx6bWEtZGV2ZWwgbHpv LWRldmVsIgogZGVwZW5kcz0icGVybCIKIHNob3J0X2Rlc2M9Ik1ha2UgYSBzbWFsbCBkdW1wZmls ZSBvZiBrZHVtcCIKCkZyb20gNTNkNzFkODQ2NzQyMWEwMmFiY2Y2NjA0ZWJhOWVhNGQ3MTdiOTEz ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PgpEYXRlOiBTdW4sIDI5IEphbiAyMDIzIDEzOjQwOjUzICswMTAwClN1YmplY3Q6IFtQQVRDSCAx MDEvMTg5XSBweXRob24zLW1pdG1wcm94eV93aXJlZ3VhcmQ6IG1hcmsgYnJva2VuIG9uIHJpc2N2 NjQKCi0tLQogc3JjcGtncy9weXRob24zLW1pdG1wcm94eV93aXJlZ3VhcmQvdGVtcGxhdGUgfCA0 ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3B5dGhvbjMtbWl0bXByb3h5X3dpcmVndWFyZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9u My1taXRtcHJveHlfd2lyZWd1YXJkL3RlbXBsYXRlCmluZGV4IGJmYTM0YTM4OWEyOTQuLmZkNDkw MTVmYjRkMDcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1taXRtcHJveHlfd2lyZWd1YXJk L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1taXRtcHJveHlfd2lyZWd1YXJkL3RlbXBs YXRlCkBAIC0xNSw2ICsxNSwxMCBAQCBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJj b250ZW50LmNvbS9kZWNhdGhvcnBlL21pdG1wcm94eV93aXJlZ3VhcmQvbWFpbgogZGlzdGZpbGVz PSJodHRwczovL2dpdGh1Yi5jb20vZGVjYXRob3JwZS9taXRtcHJveHlfd2lyZWd1YXJkL2FyY2hp dmUvJHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT03NDliNWI0NTIyMmI2MjlmNGNjZWQxNTRj YzRiZjcwYmE3YWUzMDYxZGIwMmUyZWEwYWU0NWE0YWU2MjQ2NDYzCiAKK2Nhc2UgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiBpbgorCXJpc2N2NjQqKSBicm9rZW49InJpbmcgdjAuMTYuMjAgZG9lc24n dCBzdXBwb3J0ICRYQlBTX1RBUkdFVF9NQUNISU5FIgorZXNhYworCiBkb19idWlsZCgpIHsKIAlp ZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAkJZXhwb3J0IFBZTzNfQ1JPU1NfTElCX0RJUj0i JHtYQlBTX0NST1NTX0JBU0V9L3Vzci9saWIiCgpGcm9tIDAxY2IzY2Q2MGFlNmIxMGNkNTFiYjc1 OWMwYjQzMWRmOTFlYTk2MDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAyOSBKYW4gMjAyMyAxMzo0NDowNCArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTAyLzE4OV0gZ290dHk6IG1hcmsgYnJva2VuIG9uIHJpc2N2NjQKCi0t LQogc3JjcGtncy9nb3R0eS90ZW1wbGF0ZSB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ290dHkvdGVtcGxhdGUgYi9zcmNwa2dz L2dvdHR5L3RlbXBsYXRlCmluZGV4IDY1NTgwOWU5ZDY2YjkuLjE0YTFlY2Q2NjJlMTcgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ290dHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nb3R0eS90ZW1wbGF0 ZQpAQCAtMTEsNiArMTEsMTAgQEAgaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS95dWRhaS9n b3R0eS8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS95dWRhaS9nb3R0eS9hcmNoaXZl L3Yke3ZlcnNpb259LnRhci5neiIKIGNoZWNrc3VtPTMyNjk1ZDcwYTc5ZjU1ZWZkZjRmYmE2ZjA2 ZjgzMDUxNWEyMDU1YWJjNThmYzE1ZTIxMjRkZmY1YmU3NTY5NWIKIAorY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCisJcmlzY3Y2NCopIGJyb2tlbj0iX2J1aWxkLWdvdHR5LXhicHMvc3Jj L2dpdGh1Yi5jb20veXVkYWkvZ290dHkvdmVuZG9yL2dpdGh1Yi5jb20va3IvcHR5L3B0eV9saW51 eC5nbzozNDo4OiB1bmRlZmluZWQ6IF9DX3VpbnQiCitlc2FjCisKIHBvc3RfaW5zdGFsbCgpIHsK IAl2bGljZW5zZSBMSUNFTlNFCiB9CgpGcm9tIDg3YzA5YzQ0ZDc4MmNhOGU3M2FlNGY1MWM2YWIx M2E1MzllOTk1M2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5u eW5hdG9yLmRldj4KRGF0ZTogU3VuLCAyOSBKYW4gMjAyMyAxMzo0NToxMiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTAzLzE4OV0gbGljZW5zb3I6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0 IGNvbXBhdAoKLS0tCiBzcmNwa2dzL2xpY2Vuc29yL3RlbXBsYXRlIHwgNSArKysrKwogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGljZW5zb3Iv dGVtcGxhdGUgYi9zcmNwa2dzL2xpY2Vuc29yL3RlbXBsYXRlCmluZGV4IDVlOTkwOTFkNWVhNTEu LmM5MDcwNjA1MDZiZTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGljZW5zb3IvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9saWNlbnNvci90ZW1wbGF0ZQpAQCAtMTAsNiArMTAsMTEgQEAgaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0aHViLmNvbS9yYWZ0YXJpby9saWNlbnNvciIKIGRpc3RmaWxlcz0iaHR0cHM6 Ly9naXRodWIuY29tL3JhZnRhcmlvL2xpY2Vuc29yL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6 IgogY2hlY2tzdW09ZDA2MWNlOWZkMjZkNThiMGM2YWJhYmE3YWNkYWYzNTIyMmE0NDA3ZjBiNWVh OWM0Yjc4ZjY4MzU1Mjc2MTFmZAogCitwcmVfYnVpbGQoKSB7CisJIyBOZXdlciBsaWJjIG5lZWRl ZCBmb3IgcmlzY3Y2NAorCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAtLXByZWNpc2UgMC4y LjEzOQorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSBl MTI3ZDY2NGM1NmZhZjdmODkxY2JhYTJjNTIzMmM1NGI2MjhmNmVmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjkgSmFu IDIwMjMgMTM6NDg6MzMgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwNC8xODldIGtjb3Y6IGFkZCBy aXNjdjY0IHBhdGNoCgotLS0KIHNyY3BrZ3Mva2Nvdi9wYXRjaGVzL3Jpc2N2NjQucGF0Y2ggfCA2 NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2NyBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9rY292L3BhdGNoZXMvcmlzY3Y2 NC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva2Nvdi9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gg Yi9zcmNwa2dzL2tjb3YvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLjljNWZlOTk3MWRkMDYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2tjb3YvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCkBAIC0wLDAgKzEsNjcgQEAKK0Zyb20g M2M0MzU4YWU2M2UxM2JiY2ViZjAwZTVhOTMzYmMyMTRlNDMxNjU0YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IHJ2YWx1ZSA8aUBydmFsdWUubW9lPgorRGF0ZTogVHVlLCAyNyBTZXAg MjAyMiAxMTozMjoxNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBBZGQgYmFzaWMgc3VwcG9ydCBm b3IgUklTQy1WIGFyY2hpdGVjdHVyZQorCistLS0KKyBzcmMvZW5naW5lcy9wdHJhY2UuY2MgICAg ICAgfCAyICsrCisgc3JjL2VuZ2luZXMvcHRyYWNlX2xpbnV4LmNjIHwgNSArKysrLQorIHNyYy9z b2xpYi1wYXJzZXIvbGliLmMgICAgICB8IDIgKysKKyAzIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2VuZ2luZXMvcHRyYWNl LmNjIGIvc3JjL2VuZ2luZXMvcHRyYWNlLmNjCitpbmRleCBkZGNiZTQyMi4uNzY3Njc1MTEgMTAw NjQ0CistLS0gYS9zcmMvZW5naW5lcy9wdHJhY2UuY2MKKysrKyBiL3NyYy9lbmdpbmVzL3B0cmFj ZS5jYworQEAgLTUwLDYgKzUwLDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgYXJjaF9zZXR1cEJy ZWFrcG9pbnQodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG9sZF8KKyAJdW5zaWdu ZWQgbG9uZyBzaGlmdCA9IDggKiBvZmZzOworIAorIAl2YWwgPSAob2xkX2RhdGEgJiB+KDB4ZmZm ZmZmZmZVTCA8PCBzaGlmdCkpIHwgKDB4ZDQyMDAwMDBVTCA8PCBzaGlmdCk7CisrI2VsaWYgZGVm aW5lZChfX3Jpc2N2KQorKwl2YWwgPSAweDAwMTAwMDczOyAvKiBlYnJlYWsgKi8gLy8gTm8gd2lk dGggcHJvYmxlbSwgcHJlZmVyIGVicmVhayB0aGFuIGMuZWJyZWFrIGZvciBJU0Egdy9vIEMgZXh0 ZW5zaW9uLgorICNlbHNlCisgIyBlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUKKyAjZW5k aWYKK2RpZmYgLS1naXQgYS9zcmMvZW5naW5lcy9wdHJhY2VfbGludXguY2MgYi9zcmMvZW5naW5l cy9wdHJhY2VfbGludXguY2MKK2luZGV4IGJkMjVkMGVmLi40MDYyYTA2ZiAxMDA2NDQKKy0tLSBh L3NyYy9lbmdpbmVzL3B0cmFjZV9saW51eC5jYworKysrIGIvc3JjL2VuZ2luZXMvcHRyYWNlX2xp bnV4LmNjCitAQCAtMjAsNiArMjAsNyBAQAorIGVudW0KKyB7CisgCWkzODZfRUlQID0gMTIsIHg4 Nl82NF9SSVAgPSAxNiwgcHBjX05JUCA9IDMyLCBhcm1fUEMgPSAxNSwgYWFyY2g2NF9QQyA9IDMy LCAvLyBTZWUgTGludXggYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wdHJhY2UuaAorKwlyaXNjdl9F UEMgPSAwCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBhcmNoX2FkanVzdFBjQWZ0ZXJCcmVha3BvaW50 KHVuc2lnbmVkIGxvbmcgKnJlZ3MpOworQEAgLTQwLDcgKzQxLDcgQEAgc3RhdGljIHZvaWQgYXJj aF9hZGp1c3RQY0FmdGVyQnJlYWtwb2ludCh1bnNpZ25lZCBsb25nICpyZWdzKQorIAlyZWdzW2kz ODZfRUlQXS0tOworICNlbGlmIGRlZmluZWQoX194ODZfNjRfXykKKyAJcmVnc1t4ODZfNjRfUklQ XS0tOworLSNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX2FhcmNoNjRfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikK KyAJLy8gRG8gbm90aGluZworICNlbHNlCisgIyBlcnJvciBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1 cmUKK0BAIC02MSw2ICs2Miw4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGFyY2hfZ2V0UGNGcm9t UmVncyh1bnNpZ25lZCBsb25nICpyZWdzKQorIAlvdXQgPSByZWdzW2FhcmNoNjRfUENdOworICNl bGlmIGRlZmluZWQoX19wb3dlcnBjX18pCisgCW91dCA9IHJlZ3NbcHBjX05JUF07CisrI2VsaWYg ZGVmaW5lZChfX3Jpc2N2KQorKwlvdXQgPSByZWdzW3Jpc2N2X0VQQ107CisgI2Vsc2UKKyAjIGVy cm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZQorICNlbmRpZgorZGlmZiAtLWdpdCBhL3NyYy9z b2xpYi1wYXJzZXIvbGliLmMgYi9zcmMvc29saWItcGFyc2VyL2xpYi5jCitpbmRleCAxYWE4NzMw ZC4uODdhMjM0NDcgMTAwNjQ0CistLS0gYS9zcmMvc29saWItcGFyc2VyL2xpYi5jCisrKysgYi9z cmMvc29saWItcGFyc2VyL2xpYi5jCitAQCAtOTUsNiArOTUsOCBAQCBzdGF0aWMgdm9pZCBmb3Jj ZV9icmVha3BvaW50KHZvaWQpCisgCQkJIi5sb25nIDB4ZmVkZWZmZTdcbiIgLyogdW5kZWZpbmVk IGluc24gKi8KKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIAkJCSIubG9uZyAweGQ0MjAw MDAwXG4iIC8qIEZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Njb3R0dC9kZWJ1Z2JyZWFrICovCisr I2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorKwkJCSJlYnJlYWtcbiIKKyAjZWxzZQorICMgZXJyb3Ig VW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlCisgI2VuZGlmCgpGcm9tIDI2Y2E0YWIzOTM2ZjFiNmNi NDBlZjA5YzJkYzBlNGYwOTI3OTdlNjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpv aG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAyOSBKYW4gMjAyMyAxNDowNDo0MiAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMTA1LzE4OV0gaGV4OiB1cGRhdGUgbGliYyBjcmF0ZSBmb3Ig cmlzY3Y2NCBjb21wYXQKCi0tLQogc3JjcGtncy9oZXgvdGVtcGxhdGUgfCA1ICsrKysrCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9oZXgvdGVt cGxhdGUgYi9zcmNwa2dzL2hleC90ZW1wbGF0ZQppbmRleCA0NDFhYWQ0ZDNjMTQwLi4zOGQ0YjBj YmVhNTFmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2hleC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2hl eC90ZW1wbGF0ZQpAQCAtMTAsNiArMTAsMTEgQEAgaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNv bS9zaXRrZXZpai9oZXgiCiBkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2FyY2hpdmUvdiR7dmVyc2lv bn0udGFyLmd6IgogY2hlY2tzdW09YTdjYzFlY2UzMzdmYzE5ZTc3ZmJiYmNhMTQ1MDAxYmM1ZDQ0 N2JkZTQxMThlYjZkZTJjOTk0MDdlYjFhM2I3NAogCitwcmVfYnVpbGQoKSB7CisJIyBOZXdlciBs aWJjIG5lZWRlZCBmb3IgcmlzY3Y2NAorCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAtLXBy ZWNpc2UgMC4yLjEzOQorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJIyBhdm9pZCBjb25mbGljdCB3 aXRoIGhlbGl4CiAJbXYgJHtERVNURElSfS91c3IvYmluL2h4ICR7REVTVERJUn0vdXNyL2Jpbi9o ZXgKCkZyb20gOGNlYzRjNzM4NmIxNjI3NTg3MzcxMzMzOTMyNDE4YTliNGNjYzJkNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBT dW4sIDI5IEphbiAyMDIzIDE0OjA1OjI3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMDYvMTg5XSBn bGlkZXI6IGRpc2FibGUgb24gcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL2dsaWRlci90ZW1wbGF0ZSB8 IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbGlkZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWRlci90ZW1wbGF0ZQppbmRleCBjMTAzN2Uy NDQ0YTgyLi45MzI1YThmMTZkY2VkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dsaWRlci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2dsaWRlci90ZW1wbGF0ZQpAQCAtMiw2ICsyLDcgQEAKIHBrZ25hbWU9 Z2xpZGVyCiB2ZXJzaW9uPTAuMTMuMAogcmV2aXNpb249MworYXJjaHM9In5yaXNjdjY0KiIKIGJ1 aWxkX3N0eWxlPWdvCiBnb19pbXBvcnRfcGF0aD1naXRodWIuY29tL25hZG9vL2dsaWRlcgogc2hv cnRfZGVzYz0iRm9yd2FyZCBwcm94eSB3aXRoIG11bHRpcGxlIHByb3RvY29scyBzdXBwb3J0IgoK RnJvbSA5YWYwN2ZhOGU1YWM1NGU2MTg3M2QxMGE0NjQ1NTQwMDQ2ODRhY2YzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwg MjkgSmFuIDIwMjMgMTQ6MDk6MzYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwNy8xODldIGdpdC1z ZXJpZXM6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0IGNvbXBhdAoKLS0tCiBzcmNwa2dz L2dpdC1zZXJpZXMvdGVtcGxhdGUgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2l0LXNlcmllcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ2l0LXNlcmllcy90ZW1wbGF0ZQppbmRleCAzNjVkYzUzYWIwMmQ5Li40 MmU2MmI0ZjgzY2FiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dpdC1zZXJpZXMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9naXQtc2VyaWVzL3RlbXBsYXRlCkBAIC0xNCw3ICsxNCw4IEBAIGRpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2dpdC1zZXJpZXMvZ2l0LXNlcmllcy9hcmNoaXZlL3JlZnMv dGFncy8ke3ZlcnNpb259CiBjaGVja3N1bT1jMDM2MmUxOWQzZmExNjhhN2NiMGUyNjBmY2RlY2Zl MDcwODUzYjE2M2M5ZjJkZmQyYWQ4MjEzMjg5YmM3ZTVmCiAKIHBvc3RfZXh0cmFjdCgpIHsKLQlj YXJnbyB1cGRhdGUgLS1wYWNrYWdlIGxpYmNAMC4yLjE3IC0tcHJlY2lzZSAwLjIuNTUKKwkjIE5l d2VyIGxpYmMgbmVlZGVkIGZvciByaXNjdjY0CisJY2FyZ28gdXBkYXRlIC0tcGFja2FnZSBsaWJj QDAuMi4xNyAtLXByZWNpc2UgMC4yLjEzOQogCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgdXJsQDEu Mi4zIC0tcHJlY2lzZSAxLjcuMgogCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2Ugb3BlbnNzbC1zeXNA MC45LjEgLS1wcmVjaXNlIDAuOS42MAogfQoKRnJvbSBmZDZjZWZjNzg4YTk2ZmVjMmI3NzA4YzM4 MmY5OTc1OGQ5OGZjZGE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBq b2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMjkgSmFuIDIwMjMgMTQ6MTM6MTMgKzAxMDAKU3Vi amVjdDogW1BBVENIIDEwOC8xODldIGRyaXZlOiBtYXJrIGJyb2tlbiBvbiByaXNjdjY0CgotLS0K IHNyY3BrZ3MvZHJpdmUvdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RyaXZlL3RlbXBsYXRlIGIvc3JjcGtncy9k cml2ZS90ZW1wbGF0ZQppbmRleCBmNzdmOTA2Njk1MWFhLi4zMTI4OWY3ZDVjMmUwIDEwMDY0NAot LS0gYS9zcmNwa2dzL2RyaXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZHJpdmUvdGVtcGxhdGUK QEAgLTEzLDYgKzEzLDEwIEBAIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vb2Rla2UtZW0v ZHJpdmUiCiBkaXN0ZmlsZXM9IiRob21lcGFnZS9hcmNoaXZlL3YkdmVyc2lvbi50YXIuZ3oiCiBj aGVja3N1bT03YTY0NDViNTRjNmMxM2QwZGRkODg5M2NhMDIyNjQyMTFlZWVhNjhjN2EwYzdlOWNj YzY0NzNmNjhhZjQwYTAwCiAKK2Nhc2UgJFhCUFNfVEFSR0VUX01BQ0hJTkUgaW4KKwlyaXNjdjY0 KikgYnJva2VuPSJVc2VzIGJvbHRkYiI7OworZXNhYworCiBwb3N0X2luc3RhbGwoKSB7CiAJdmRv YyBSRUFETUUubWQKIH0KCkZyb20gNjIzZGUwMTY1M2IwN2Q0YzcyNDIyZjdmMWEyYmJiZmMwZTFj YjY4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBTdW4sIDI5IEphbiAyMDIzIDE0OjIyOjI3ICswMTAwClN1YmplY3Q6IFtQQVRD SCAxMDkvMTg5XSByaXBncmVwOiB1cGRhdGUgbGliYyBjcmF0ZSBmb3IgcmlzY3Y2NCBjb21wYXQK Ci0tLQogc3JjcGtncy9yaXBncmVwL3RlbXBsYXRlIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmlwZ3JlcC90ZW1wbGF0ZSBi L3NyY3BrZ3MvcmlwZ3JlcC90ZW1wbGF0ZQppbmRleCBiYTRhNDhhNDJmYjYxLi44ODNjZDEwNTg3 MmZjIDEwMDY0NAotLS0gYS9zcmNwa2dzL3JpcGdyZXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9y aXBncmVwL3RlbXBsYXRlCkBAIC0xMyw2ICsxMywxMSBAQCBob21lcGFnZT0iaHR0cHM6Ly9naXRo dWIuY29tL0J1cm50U3VzaGkvcmlwZ3JlcC8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9CdXJudFN1c2hpLyR7cGtnbmFtZX0vYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKIGNoZWNr c3VtPTBmYjE3YWFmMjg1YjNlZWU4ZGRhYjE3YjgzM2FmMWUxOTBkNzNkZTMxN2ZmOTY0ODc1MWFi MDY2MGQ3NjNlZDIKIAorcHJlX2J1aWxkKCkgeworCSMgTmV3ZXIgbGliYyBuZWVkZWQgZm9yIHJp c2N2NjQKKwljYXJnbyB1cGRhdGUgLS1wYWNrYWdlIGxpYmMgLS1wcmVjaXNlIDAuMi4xMzkKK30K KwogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIExJQ0VOU0UtTUlUCiAJdmxpY2Vuc2UgVU5M SUNFTlNFCgpGcm9tIDZjOTFlYzdhMTFkOTZmZThkN2YxMDc3NDhmZDA4MDc5M2U0YzE3ZDAgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0 ZTogU3VuLCAyOSBKYW4gMjAyMyAxNDoyNTozMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEwLzE4 OV0gYW5nbGUtZ3JpbmRlcjogdXBkYXRlIGxpYmMgY3JhdGUgZm9yIHJpc2N2NjQgY29tcGF0Cgot LS0KIHNyY3BrZ3MvYW5nbGUtZ3JpbmRlci90ZW1wbGF0ZSB8IDUgKysrKysKIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2FuZ2xlLWdyaW5kZXIv dGVtcGxhdGUgYi9zcmNwa2dzL2FuZ2xlLWdyaW5kZXIvdGVtcGxhdGUKaW5kZXggYjk5ZDY1Mjcw ZDE3MC4uODcxNzQ5MDI4NTY2OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9hbmdsZS1ncmluZGVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvYW5nbGUtZ3JpbmRlci90ZW1wbGF0ZQpAQCAtMTUsNiArMTUs MTEgQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAljYXJnbyB1cGRhdGUgLXAgaDIgLXAgY3Jvc3NiZWFt LWNoYW5uZWwKIH0KIAorcHJlX2J1aWxkKCkgeworCSMgTmV3ZXIgbGliYyBuZWVkZWQgZm9yIHJp c2N2NjQKKwljYXJnbyB1cGRhdGUgLS1wYWNrYWdlIGxpYmMgLS1wcmVjaXNlIDAuMi4xMzkKK30K KwogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIExJQ0VOU0UKIH0KCkZyb20gMzdiZjQ3NWNl OTQwZjZkYTI4NWVkZWZhYmJlMDQ2YmRkMzZhZGFkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDMxIEphbiAyMDIzIDIz OjE5OjEwICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMTEvMTg5XSBwYXBpOiBtYXJrIGJyb2tlbiBp biByaXNjdjY0CgotLS0KIHNyY3BrZ3MvcGFwaS90ZW1wbGF0ZSB8IDEgKwogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wYXBpL3RlbXBsYXRlIGIv c3JjcGtncy9wYXBpL3RlbXBsYXRlCmluZGV4IGIzNDNhNmUzNjM3MzkuLjgzYzViMWI0YTg4MjQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGFwaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BhcGkvdGVt cGxhdGUKQEAgLTIwLDYgKzIwLDcgQEAgZmkKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCiAJcHBjKi1tdXNsKSBicm9rZW49InJlcXVpcmVzIG5vbi1zdGFuZGFyZCBfX3BwY19nZXRf dGltZWJhc2VfZnJlcSI7OworCXJpc2N2KikgYnJva2VuPSJ1bnN1cHBvcnRlZCBieSBwYXBpIgog ZXNhYwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIGY4ODUzZmIwYTRiYzZmZDRiZmEwMWVmNTM2 YWY1M2U0YjQ0MWY3ZTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAzMSBKYW4gMjAyMyAyMzozNDowNSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTEyLzE4OV0gdGJiOiBhZGQgcmlzY3Y2NCB0byB0ZW1wbGF0ZQoKLS0tCiBz cmNwa2dzL3RiYi90ZW1wbGF0ZSB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIvdGVtcGxhdGUgYi9zcmNwa2dzL3RiYi90ZW1w bGF0ZQppbmRleCAyNTA1NjFjZGU4ZTcwLi4zM2E2MWI4NDBmNTgwIDEwMDY0NAotLS0gYS9zcmNw a2dzL3RiYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RiYi90ZW1wbGF0ZQpAQCAtMzMsNiArMzMs OSBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAlwcGMqKQogCQltYWtlX2J1aWxk X2FyZ3M9ImFyY2g9cHBjMzIiCiAJCTs7CisJcmlzY3Y2NCopCisJCW1ha2VfYnVpbGRfYXJncz0i YXJjaD1yaXNjdjY0IgorCQk7OwogCSopCiAJCSMgbWFrZSBzdXJlIHRvIGZhbGwgYmFjayBpbnN0 ZWFkIG9mIGxldHRpbmcgaG9zdCB1bmFtZSBjb250cm9sIGl0CiAJCW1ha2VfYnVpbGRfYXJncz0i YXJjaD1nZW5lcmljIgoKRnJvbSA3MDNiNGRlNGVlNWMxZmRmMjY4YzdjODlhM2MwMTY1NTU2M2Q1 MTNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+CkRhdGU6IFR1ZSwgMzEgSmFuIDIwMjMgMjM6Mzk6NTMgKzAxMDAKU3ViamVjdDogW1BBVENI IDExMy8xODldIGRpc2t1czogdXBkYXRlIGxpYmMgY3JhdGUgZm9yIHJpc2N2NjQgY29tcGF0Cgot LS0KIHNyY3BrZ3MvZGlza3VzL3RlbXBsYXRlIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGlza3VzL3RlbXBsYXRlIGIvc3Jj cGtncy9kaXNrdXMvdGVtcGxhdGUKaW5kZXggYmRjMDI4NzMxOTI1ZS4uMDg5YjFmNTcxN2IzOSAx MDA2NDQKLS0tIGEvc3JjcGtncy9kaXNrdXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kaXNrdXMv dGVtcGxhdGUKQEAgLTEwLDYgKzEwLDExIEBAIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20v c2hhcmtkcC9kaXNrdXMiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9zaGFya2RwL2Rp c2t1cy9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKIGNoZWNrc3VtPTY0YjFiMmUzOTdlZjRk ZTgxZWEyMDI3NGY5OGVjNDE4YjBmZTE5YjAyNTg2MGUzM2JlYWJhNTQ5NGQzYjhiZDEKIAorcHJl X2J1aWxkKCkgeworCSMgTmV3ZXIgbGliYyBuZWVkZWQgZm9yIHJpc2N2NjQKKwljYXJnbyB1cGRh dGUgLS1wYWNrYWdlIGxpYmMgLS1wcmVjaXNlIDAuMi4xMzkKK30KKwogcG9zdF9pbnN0YWxsKCkg ewogCXZsaWNlbnNlIExJQ0VOU0UtTUlUCiB9CgpGcm9tIGMxMWNjNmNjZjk0ODM3ZmU5YjE0YzNj NTQxY2I4ZGU5ZjlmMjNmYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAzMSBKYW4gMjAyMyAyMzo1MDozMiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTE0LzE4OV0gaGVsdnVtOiBtYXJrIGJyb2tlbiBvbiByaXNjdjY0LW11 c2wKCi0tLQogc3JjcGtncy9oZWx2dW0vdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2hlbHZ1bS90ZW1wbGF0ZSBi L3NyY3BrZ3MvaGVsdnVtL3RlbXBsYXRlCmluZGV4IDFmM2M4OWE2NjcxN2MuLmJlMjhlZDUzM2Qz OTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaGVsdnVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaGVs dnVtL3RlbXBsYXRlCkBAIC0xMyw2ICsxMywxMCBAQCBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIu ZnJlZWRlc2t0b3Aub3JnL3BpcGV3aXJlL2hlbHZ1bSIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRs YWIuZnJlZWRlc2t0b3Aub3JnL3BpcGV3aXJlL2hlbHZ1bS8tL2FyY2hpdmUvJHt2ZXJzaW9ufS9o ZWx2dW0tJHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT1lOTNhZmE3ODhkM2U1MGJhZTQ4OWRi ODg4ZWNmMGQ3OWU1NzM1YjhmNGY4YjI5ZmU0MTc0NTQwYjA4NzJiNjIyCiAKK2Nhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCXJpc2N2NjQtbXVzbCkgYnJva2VuPSJPbGQgbml4IGNyYXRl IiA7OworZXNhYworCiBwb3N0X2luc3RhbGwoKSB7CiAJIyBOb3JtYWxseSwgbWVzb24gd291bGQg ZG8gdGhpcywgYnV0IGl0J3Mgc2ltcGxlciB0byB1c2UgdGhlIGNhcmdvIGJ1aWxkIHN0eWxlIGFu ZCBkbyB0aGlzIG1hbnVhbGx5CiAJIyBUaGlzIGFsc28gYXZvaWRzIHRoZSBuZWVkIGZvciBtYWtl ZGVwcy9idWlsZCBzdGVwcyB0aGF0IGFyZSBtYWRlIHVubmVjZXNzYXJ5IGJ5IHhicHMnIGhvb2tz CgpGcm9tIDNiNzU4ZjNlMzA0Y2MzYWEwYjgxOTRjNzg5MTc3YWQ4OWEzNWIwMjMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVl LCAzMSBKYW4gMjAyMyAyMzo1OTowMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTE1LzE4OV0gbGli dGljYWJsZXMyOiBhZGQgcmlzY3Y2NCBwYXRjaAoKLS0tCiAuLi4vcGF0Y2hlcy97cHBjNjRsZS5w YXRjaCA9PiBwcGM2NGxlLXJpc2N2NjQucGF0Y2h9ICAgICAgICAgICB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiByZW5hbWUgc3JjcGtncy9s aWJ0aWNhYmxlczIvcGF0Y2hlcy97cHBjNjRsZS5wYXRjaCA9PiBwcGM2NGxlLXJpc2N2NjQucGF0 Y2h9ICg4NCUpCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJ0aWNhYmxlczIvcGF0Y2hlcy9wcGM2 NGxlLnBhdGNoIGIvc3JjcGtncy9saWJ0aWNhYmxlczIvcGF0Y2hlcy9wcGM2NGxlLXJpc2N2NjQu cGF0Y2gKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gc3JjcGtncy9saWJ0aWNhYmxl czIvcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2xpYnRpY2FibGVzMi9w YXRjaGVzL3BwYzY0bGUtcmlzY3Y2NC5wYXRjaAppbmRleCAwMDlmYjlhNjFmZWJiLi5jNDRkMTQx NzA1NWRjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYnRpY2FibGVzMi9wYXRjaGVzL3BwYzY0bGUu cGF0Y2gKKysrIGIvc3JjcGtncy9saWJ0aWNhYmxlczIvcGF0Y2hlcy9wcGM2NGxlLXJpc2N2NjQu cGF0Y2gKQEAgLTEsMTEgKzEsMTIgQEAKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmln dXJlLmFjCi1AQCAtMTU5LDcgKzE1OSw3IEBAIGNhc2UgIiRob3N0IiBpbgorQEAgLTE1OSw3ICsx NTksOCBAQCBjYXNlICIkaG9zdCIgaW4KICAgIG1pcHMtKi1saW51eC0qKSAgICAgICAgQVJDSD0i LURfX01JUFNfXyAtRF9fTElOVVhfXyIgOzsKICAgIG1pcHNlbC0qLWxpbnV4LSopICAgICAgQVJD SD0iLURfX01JUFNfXyAtRF9fTElOVVhfXyIgOzsKICAgIHBvd2VycGMtKi1saW51eC0qKSAgICAg QVJDSD0iLURfX1BQQ19fICAtRF9fTElOVVhfXyIgOzsKIC0gIHBvd2VycGM2NC0qLWxpbnV4LSop ICAgQVJDSD0iLURfX1BQQ19fICAtRF9fTElOVVhfXyIgOzsKICsgIHBvd2VycGM2NCotKi1saW51 eC0qKSAgIEFSQ0g9Ii1EX19QUENfXyAgLURfX0xJTlVYX18iIDs7CisrICByaXNjdjY0Ki0qLWxp bnV4LSopICAgQVJDSD0iLURfX3Jpc2N2X18gIC1EX19MSU5VWF9fIiA7OwogICAgcG93ZXJwYy1h cHBsZS1kYXJ3aW4qKSBBUkNIPSItRF9fUFBDX18gIC1EX19NQUNPU1hfXyIgOzsKICAgIHBvd2Vy cGM2NC1hcHBsZS1kYXJ3aW4qKSBBUkNIPSItRF9fUFBDX18gIC1EX19NQUNPU1hfXyIgOzsKICAg IHMzOTAqLSotbGludXgtKikgICAgICAgQVJDSD0iLURfX0xJTlVYX18iIDs7CgpGcm9tIDJhZmI5 OWFhNTFiMTM3YTU3ODhiZWYwZDAzMWYwNWY3MTQ0OWJmNWYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogRnJpLCAzIEZlYiAyMDIz IDAwOjEzOjIyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMTYvMTg5XSBSZXZlcnQgInF0NS13ZWJ2 aWV3OiBkaXNhYmxlIHdlYmVuZ2luZSBvbiByaXNjdjY0IgoKVGhpcyByZXZlcnRzIGNvbW1pdCAy YzllMTRkODA4M2ZkYTk0MTZkZDUxNTYwMmM1YmNmMzc5NTgyMTMwLgotLS0KIHNyY3BrZ3MvcXQ1 LXdlYnZpZXcvdGVtcGxhdGUgfCA1ICstLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDUtd2Vidmlldy90ZW1w bGF0ZSBiL3NyY3BrZ3MvcXQ1LXdlYnZpZXcvdGVtcGxhdGUKaW5kZXggM2E0MDdhNjEzYjcxYS4u NjQ2NGYxMDY2MDQwNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDUtd2Vidmlldy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3F0NS13ZWJ2aWV3L3RlbXBsYXRlCkBAIC0xNiwxMCArMTYsNyBAQCBjaGVj a3N1bT00OWY3YzA4N2U4ZTM2NjJhZGYzYzI3MWM0MWM2MjllNTQ3ZjAyYjgyYjMwNTY0MTE0OGYw NzE3MGQ0ZWExYTY3CiAKIGJ1aWxkX29wdGlvbnM9IndlYmVuZ2luZSIKIGlmIFsgIiRYQlBTX1RB UkdFVF9FTkRJQU4iID0gImxlIiBdICYmIFsgIiRYQlBTX1dPUkRTSVpFIiA9ICIkWEJQU19UQVJH RVRfV09SRFNJWkUiIF07IHRoZW4KLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJ YXJtdjV0ZWwqfHJpc2N2Kik7OwotCQkqKSBidWlsZF9vcHRpb25zX2RlZmF1bHQ9IndlYmVuZ2lu ZSI7OwotCWVzYWMKKwlidWlsZF9vcHRpb25zX2RlZmF1bHQ9IndlYmVuZ2luZSIKIGZpCiAKIHBv c3RfZXh0cmFjdCgpIHsKCkZyb20gOTI2YmViNTJiOWYyYmM4MDhjZjhmOThmZjQwYmRmNzI3MzRm ZDgwNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBGcmksIDMgRmViIDIwMjMgMDA6MTM6MzcgKzAxMDAKU3ViamVjdDogW1BBVENI IDExNy8xODldIFJldmVydCAibGlia3N5c2d1YXJkOiBkaXNhYmxlIHdlYmVuZ2luZSBvbiByaXNj djY0CiBmb3Igbm93IgoKVGhpcyByZXZlcnRzIGNvbW1pdCA5MTkxOWY5NjQ2NTlmOTFmNjNiZDQz ZDg2MTIxYzlkNDYwZjhiODUwLgotLS0KIHNyY3BrZ3MvbGlia3N5c2d1YXJkL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJrc3lzZ3VhcmQvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmtzeXNn dWFyZC90ZW1wbGF0ZQppbmRleCA4OGMxMjEzZTRmMTJlLi5hZDE4M2UyOGJkZmViIDEwMDY0NAot LS0gYS9zcmNwa2dzL2xpYmtzeXNndWFyZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmtzeXNn dWFyZC90ZW1wbGF0ZQpAQCAtMjAsNyArMjAsNyBAQCBidWlsZF9vcHRpb25zPSJ3ZWJlbmdpbmUi CiBpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJsZSIgXSAmJiBbICIkWEJQU19UQVJHRVRf V09SRFNJWkUiID0gIiRYQlBTX1dPUkRTSVpFIiBdOyB0aGVuCiAJIyBxdDUtd2ViZW5naW5lIGNh bm5vdCBiZSBidWlsdCBmb3IgYXJtdjV0ZWwKIAljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQkJYXJtdjV0ZWwqfHJpc2N2NjQqKSA7OworCQlhcm12NXRlbCopIDs7CiAJCSopIGJ1aWxk X29wdGlvbnNfZGVmYXVsdD13ZWJlbmdpbmUgOzsKIAllc2FjCiBmaQoKRnJvbSA1NGIxNmNlODFk MDMyMjNjMzAzMjdhY2E5NDQ0ZGM5ZmU5NzlhNWNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgNCBGZWIgMjAyMyAxNjo1 ODo0NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTE4LzE4OV0gbGludXg2LjE6IGFkZCByaXNjdiBk b3Rjb25maWcKCi0tLQogc3JjcGtncy9saW51eDYuMS9maWxlcy9yaXNjdi1kb3Rjb25maWcgfCAx MDE4MiArKysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9saW51eDYuMS90ZW1wbGF0ZSAg ICAgICAgICAgICAgfCAgICAxMSArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMDE5MiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMS9m aWxlcy9yaXNjdi1kb3Rjb25maWcKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4xL2ZpbGVz L3Jpc2N2LWRvdGNvbmZpZyBiL3NyY3BrZ3MvbGludXg2LjEvZmlsZXMvcmlzY3YtZG90Y29uZmln Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmQxZjY4MTVhNmZjZmMK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4xL2ZpbGVzL3Jpc2N2LWRvdGNvbmZp ZwpAQCAtMCwwICsxLDEwMTgyIEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7 IERPIE5PVCBFRElULgorIyBMaW51eC9yaXNjdiA2LjEuMTIgS2VybmVsIENvbmZpZ3VyYXRpb24K KyMKK0NPTkZJR19DQ19WRVJTSU9OX1RFWFQ9InJpc2N2NjQtbGludXgtZ251LWdjYyAoR0NDKSAx Mi4yLjAiCitDT05GSUdfQ0NfSVNfR0NDPXkKK0NPTkZJR19HQ0NfVkVSU0lPTj0xMjAyMDAKK0NP TkZJR19DTEFOR19WRVJTSU9OPTAKK0NPTkZJR19BU19JU19HTlU9eQorQ09ORklHX0FTX1ZFUlNJ T049MjM5MDAKK0NPTkZJR19MRF9JU19CRkQ9eQorQ09ORklHX0xEX1ZFUlNJT049MjM5MDAKK0NP TkZJR19MTERfVkVSU0lPTj0wCitDT05GSUdfQ0NfQ0FOX0xJTks9eQorQ09ORklHX0NDX0NBTl9M SU5LX1NUQVRJQz15CitDT05GSUdfQ0NfSEFTX0FTTV9HT1RPX09VVFBVVD15CitDT05GSUdfQ0Nf SEFTX0FTTV9HT1RPX1RJRURfT1VUUFVUPXkKK0NPTkZJR19DQ19IQVNfQVNNX0lOTElORT15CitD T05GSUdfQ0NfSEFTX05PX1BST0ZJTEVfRk5fQVRUUj15CitDT05GSUdfUEFIT0xFX1ZFUlNJT049 MTIzCitDT05GSUdfSVJRX1dPUks9eQorQ09ORklHX0JVSUxEVElNRV9UQUJMRV9TT1JUPXkKK0NP TkZJR19USFJFQURfSU5GT19JTl9UQVNLPXkKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05G SUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCisjIENPTkZJR19DT01QSUxFX1RFU1QgaXMgbm90IHNl dAorIyBDT05GSUdfV0VSUk9SIGlzIG5vdCBzZXQKK0NPTkZJR19MT0NBTFZFUlNJT049Il8xIgor IyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorQ09ORklHX0JVSUxEX1NBTFQ9 IiIKK0NPTkZJR19ERUZBVUxUX0lOSVQ9IiIKK0NPTkZJR19ERUZBVUxUX0hPU1ROQU1FPSIobm9u ZSkiCitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorQ09ORklHX1NZ U1ZJUENfQ09NUEFUPXkKK0NPTkZJR19QT1NJWF9NUVVFVUU9eQorQ09ORklHX1BPU0lYX01RVUVV RV9TWVNDVEw9eQorQ09ORklHX1dBVENIX1FVRVVFPXkKK0NPTkZJR19DUk9TU19NRU1PUllfQVRU QUNIPXkKKyMgQ09ORklHX1VTRUxJQiBpcyBub3Qgc2V0CitDT05GSUdfQVVESVQ9eQorQ09ORklH X0hBVkVfQVJDSF9BVURJVFNZU0NBTEw9eQorQ09ORklHX0FVRElUU1lTQ0FMTD15CisKKyMKKyMg SVJRIHN1YnN5c3RlbQorIworQ09ORklHX0dFTkVSSUNfSVJRX1NIT1c9eQorQ09ORklHX0dFTkVS SUNfSVJRX1NIT1dfTEVWRUw9eQorQ09ORklHX0dFTkVSSUNfSVJRX0VGRkVDVElWRV9BRkZfTUFT Sz15CitDT05GSUdfR0VORVJJQ19JUlFfTUlHUkFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0lSUV9J TkpFQ1RJT049eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19J UlFfQ0hJUD15CitDT05GSUdfSVJRX0RPTUFJTj15CitDT05GSUdfSVJRX1NJTT15CitDT05GSUdf SVJRX0RPTUFJTl9ISUVSQVJDSFk9eQorQ09ORklHX0dFTkVSSUNfTVNJX0lSUT15CitDT05GSUdf R0VORVJJQ19NU0lfSVJRX0RPTUFJTj15CitDT05GSUdfSVJRX0ZPUkNFRF9USFJFQURJTkc9eQor Q09ORklHX1NQQVJTRV9JUlE9eQorIyBDT05GSUdfR0VORVJJQ19JUlFfREVCVUdGUyBpcyBub3Qg c2V0CisjIGVuZCBvZiBJUlEgc3Vic3lzdGVtCisKK0NPTkZJR19HRU5FUklDX0lSUV9NVUxUSV9I QU5ETEVSPXkKK0NPTkZJR19BUkNIX0NMT0NLU09VUkNFX0lOSVQ9eQorQ09ORklHX0dFTkVSSUNf VElNRV9WU1lTQ0FMTD15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfQVJD SF9IQVNfVElDS19CUk9BRENBU1Q9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURD QVNUPXkKK0NPTkZJR19IQVZFX1BPU0lYX0NQVV9USU1FUlNfVEFTS19XT1JLPXkKK0NPTkZJR19Q T1NJWF9DUFVfVElNRVJTX1RBU0tfV09SSz15CitDT05GSUdfQ09OVEVYVF9UUkFDS0lORz15CitD T05GSUdfQ09OVEVYVF9UUkFDS0lOR19JRExFPXkKKworIworIyBUaW1lcnMgc3Vic3lzdGVtCisj CitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWl9DT01NT049eQorIyBDT05GSUdf SFpfUEVSSU9ESUMgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFpfSURMRSBpcyBub3Qgc2V0CitD T05GSUdfTk9fSFpfRlVMTD15CitDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19VU0VSPXkKK0NPTkZJ R19DT05URVhUX1RSQUNLSU5HX1VTRVJfRk9SQ0U9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19I SUdIX1JFU19USU1FUlM9eQorIyBlbmQgb2YgVGltZXJzIHN1YnN5c3RlbQorCitDT05GSUdfQlBG PXkKK0NPTkZJR19IQVZFX0VCUEZfSklUPXkKKworIworIyBCUEYgc3Vic3lzdGVtCisjCitDT05G SUdfQlBGX1NZU0NBTEw9eQorQ09ORklHX0JQRl9KSVQ9eQorQ09ORklHX0JQRl9KSVRfQUxXQVlT X09OPXkKK0NPTkZJR19CUEZfSklUX0RFRkFVTFRfT049eQorQ09ORklHX0JQRl9VTlBSSVZfREVG QVVMVF9PRkY9eQorQ09ORklHX1VTRVJNT0RFX0RSSVZFUj15CisjIENPTkZJR19CUEZfUFJFTE9B RCBpcyBub3Qgc2V0CitDT05GSUdfQlBGX0xTTT15CisjIGVuZCBvZiBCUEYgc3Vic3lzdGVtCisK K0NPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWV9CVUlMRD15CisjIENPTkZJR19QUkVFTVBUX05PTkUg aXMgbm90IHNldAorQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXkKKyMgQ09ORklHX1BSRUVNUFQg aXMgbm90IHNldAorCisjCisjIENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKKyMK K0NPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HPXkKK0NPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5H X0dFTj15CisjIENPTkZJR19JUlFfVElNRV9BQ0NPVU5USU5HIGlzIG5vdCBzZXQKK0NPTkZJR19C U0RfUFJPQ0VTU19BQ0NUPXkKK0NPTkZJR19CU0RfUFJPQ0VTU19BQ0NUX1YzPXkKK0NPTkZJR19U QVNLU1RBVFM9eQorQ09ORklHX1RBU0tfREVMQVlfQUNDVD15CitDT05GSUdfVEFTS19YQUNDVD15 CitDT05GSUdfVEFTS19JT19BQ0NPVU5USU5HPXkKK0NPTkZJR19QU0k9eQorQ09ORklHX1BTSV9E RUZBVUxUX0RJU0FCTEVEPXkKKyMgZW5kIG9mIENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291 bnRpbmcKKworQ09ORklHX0NQVV9JU09MQVRJT049eQorCisjCisjIFJDVSBTdWJzeXN0ZW0KKyMK K0NPTkZJR19UUkVFX1JDVT15CisjIENPTkZJR19SQ1VfRVhQRVJUIGlzIG5vdCBzZXQKK0NPTkZJ R19TUkNVPXkKK0NPTkZJR19UUkVFX1NSQ1U9eQorQ09ORklHX1RBU0tTX1JDVV9HRU5FUklDPXkK K0NPTkZJR19UQVNLU19SVURFX1JDVT15CitDT05GSUdfVEFTS1NfVFJBQ0VfUkNVPXkKK0NPTkZJ R19SQ1VfU1RBTExfQ09NTU9OPXkKK0NPTkZJR19SQ1VfTkVFRF9TRUdDQkxJU1Q9eQorQ09ORklH X1JDVV9OT0NCX0NQVT15CisjIENPTkZJR19SQ1VfTk9DQl9DUFVfREVGQVVMVF9BTEwgaXMgbm90 IHNldAorIyBlbmQgb2YgUkNVIFN1YnN5c3RlbQorCitDT05GSUdfSUtDT05GSUc9eQorQ09ORklH X0lLQ09ORklHX1BST0M9eQorQ09ORklHX0lLSEVBREVSUz1tCitDT05GSUdfTE9HX0JVRl9TSElG VD0xOAorQ09ORklHX0xPR19DUFVfTUFYX0JVRl9TSElGVD0xMgorQ09ORklHX1BSSU5US19TQUZF X0xPR19CVUZfU0hJRlQ9MTMKKyMgQ09ORklHX1BSSU5US19JTkRFWCBpcyBub3Qgc2V0CitDT05G SUdfR0VORVJJQ19TQ0hFRF9DTE9DSz15CisKKyMKKyMgU2NoZWR1bGVyIGZlYXR1cmVzCisjCisj IGVuZCBvZiBTY2hlZHVsZXIgZmVhdHVyZXMKKworQ09ORklHX0FSQ0hfU1VQUE9SVFNfTlVNQV9C QUxBTkNJTkc9eQorQ09ORklHX0NDX0hBU19JTlQxMjg9eQorQ09ORklHX0NDX0lNUExJQ0lUX0ZB TExUSFJPVUdIPSItV2ltcGxpY2l0LWZhbGx0aHJvdWdoPTUiCitDT05GSUdfR0NDMTFfTk9fQVJS QVlfQk9VTkRTPXkKK0NPTkZJR19HQ0MxMl9OT19BUlJBWV9CT1VORFM9eQorQ09ORklHX0NDX05P X0FSUkFZX0JPVU5EUz15CitDT05GSUdfQVJDSF9TVVBQT1JUU19JTlQxMjg9eQorQ09ORklHX05V TUFfQkFMQU5DSU5HPXkKK0NPTkZJR19OVU1BX0JBTEFOQ0lOR19ERUZBVUxUX0VOQUJMRUQ9eQor Q09ORklHX0NHUk9VUFM9eQorQ09ORklHX1BBR0VfQ09VTlRFUj15CisjIENPTkZJR19DR1JPVVBf RkFWT1JfRFlOTU9EUyBpcyBub3Qgc2V0CitDT05GSUdfTUVNQ0c9eQorQ09ORklHX01FTUNHX0tN RU09eQorQ09ORklHX0JMS19DR1JPVVA9eQorQ09ORklHX0NHUk9VUF9XUklURUJBQ0s9eQorQ09O RklHX0NHUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CitDT05GSUdfQ0ZT X0JBTkRXSURUSD15CitDT05GSUdfUlRfR1JPVVBfU0NIRUQ9eQorQ09ORklHX0NHUk9VUF9QSURT PXkKK0NPTkZJR19DR1JPVVBfUkRNQT15CitDT05GSUdfQ0dST1VQX0ZSRUVaRVI9eQorQ09ORklH X0NHUk9VUF9IVUdFVExCPXkKK0NPTkZJR19DUFVTRVRTPXkKK0NPTkZJR19QUk9DX1BJRF9DUFVT RVQ9eQorQ09ORklHX0NHUk9VUF9ERVZJQ0U9eQorQ09ORklHX0NHUk9VUF9DUFVBQ0NUPXkKK0NP TkZJR19DR1JPVVBfUEVSRj15CitDT05GSUdfQ0dST1VQX0JQRj15CitDT05GSUdfQ0dST1VQX01J U0M9eQorIyBDT05GSUdfQ0dST1VQX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TT0NLX0NHUk9V UF9EQVRBPXkKK0NPTkZJR19OQU1FU1BBQ0VTPXkKK0NPTkZJR19VVFNfTlM9eQorQ09ORklHX1RJ TUVfTlM9eQorQ09ORklHX0lQQ19OUz15CitDT05GSUdfVVNFUl9OUz15CitDT05GSUdfUElEX05T PXkKK0NPTkZJR19ORVRfTlM9eQorQ09ORklHX0NIRUNLUE9JTlRfUkVTVE9SRT15CisjIENPTkZJ R19TQ0hFRF9BVVRPR1JPVVAgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRCBp cyBub3Qgc2V0CitDT05GSUdfUkVMQVk9eQorQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKK0NPTkZJ R19JTklUUkFNRlNfU09VUkNFPSIiCitDT05GSUdfUkRfR1pJUD15CitDT05GSUdfUkRfQlpJUDI9 eQorQ09ORklHX1JEX0xaTUE9eQorQ09ORklHX1JEX1haPXkKK0NPTkZJR19SRF9MWk89eQorQ09O RklHX1JEX0xaND15CitDT05GSUdfUkRfWlNURD15CitDT05GSUdfQk9PVF9DT05GSUc9eQorIyBD T05GSUdfQk9PVF9DT05GSUdfRU1CRUQgaXMgbm90IHNldAorQ09ORklHX0lOSVRSQU1GU19QUkVT RVJWRV9NVElNRT15CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFPXkKKyMgQ09O RklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNDVEw9eQorQ09O RklHX1NZU0NUTF9FWENFUFRJT05fVFJBQ0U9eQorQ09ORklHX0VYUEVSVD15CitDT05GSUdfTVVM VElVU0VSPXkKKyMgQ09ORklHX1NHRVRNQVNLX1NZU0NBTEwgaXMgbm90IHNldAorQ09ORklHX1NZ U0ZTX1NZU0NBTEw9eQorQ09ORklHX0ZIQU5ETEU9eQorQ09ORklHX1BPU0lYX1RJTUVSUz15CitD T05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19C QVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19GVVRFWF9QST15CitDT05GSUdfRVBP TEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZE PXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfQUlPPXkKK0NPTkZJR19JT19VUklORz15CitDT05G SUdfQURWSVNFX1NZU0NBTExTPXkKK0NPTkZJR19NRU1CQVJSSUVSPXkKK0NPTkZJR19LQUxMU1lN Uz15CitDT05GSUdfS0FMTFNZTVNfQUxMPXkKK0NPTkZJR19LQUxMU1lNU19CQVNFX1JFTEFUSVZF PXkKK0NPTkZJR19LQ01QPXkKK0NPTkZJR19SU0VRPXkKKyMgQ09ORklHX0RFQlVHX1JTRVEgaXMg bm90IHNldAorIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAorQ09ORklHX0hBVkVfUEVSRl9F VkVOVFM9eQorIyBDT05GSUdfUEMxMDQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBQZXJmb3Jt YW5jZSBFdmVudHMgQW5kIENvdW50ZXJzCisjCitDT05GSUdfUEVSRl9FVkVOVFM9eQorIyBDT05G SUdfREVCVUdfUEVSRl9VU0VfVk1BTExPQyBpcyBub3Qgc2V0CisjIGVuZCBvZiBLZXJuZWwgUGVy Zm9ybWFuY2UgRXZlbnRzIEFuZCBDb3VudGVycworCitDT05GSUdfU1lTVEVNX0RBVEFfVkVSSUZJ Q0FUSU9OPXkKK0NPTkZJR19QUk9GSUxJTkc9eQorQ09ORklHX1RSQUNFUE9JTlRTPXkKKyMgZW5k IG9mIEdlbmVyYWwgc2V0dXAKKworQ09ORklHXzY0QklUPXkKK0NPTkZJR19SSVNDVj15CitDT05G SUdfQVJDSF9NTUFQX1JORF9CSVRTX01JTj0xOAorQ09ORklHX0FSQ0hfTU1BUF9STkRfQ09NUEFU X0JJVFNfTUlOPTgKK0NPTkZJR19BUkNIX01NQVBfUk5EX0JJVFNfTUFYPTI0CitDT05GSUdfQVJD SF9NTUFQX1JORF9DT01QQVRfQklUU19NQVg9MTcKK0NPTkZJR19SSVNDVl9TQkk9eQorQ09ORklH X01NVT15CitDT05GSUdfUEFHRV9PRkZTRVQ9MHhmZjYwMDAwMDAwMDAwMDAwCitDT05GSUdfQVJD SF9TUEFSU0VNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1NFTEVDVF9NRU1PUllfTU9ERUw9eQor Q09ORklHX0FSQ0hfU1VQUE9SVFNfVVBST0JFUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JU PXkKK0NPTkZJR19HRU5FUklDX0JVRz15CitDT05GSUdfR0VORVJJQ19CVUdfUkVMQVRJVkVfUE9J TlRFUlM9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19HRU5FUklD X0NTVU09eQorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfRklYX0VBUkxZQ09OX01F TT15CitDT05GSUdfUEdUQUJMRV9MRVZFTFM9NQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitD T05GSUdfUklTQ1ZfRE1BX05PTkNPSEVSRU5UPXkKK0NPTkZJR19BU19IQVNfSU5TTj15CisKKyMK KyMgU29DIHNlbGVjdGlvbgorIworQ09ORklHX1NPQ19NSUNST0NISVBfUE9MQVJGSVJFPXkKK0NP TkZJR19TT0NfU0lGSVZFPXkKK0NPTkZJR19TT0NfU1RBUkZJVkU9eQorQ09ORklHX1NPQ19WSVJU PXkKKyMgZW5kIG9mIFNvQyBzZWxlY3Rpb24KKworIworIyBDUFUgZXJyYXRhIHNlbGVjdGlvbgor IworQ09ORklHX0VSUkFUQV9TSUZJVkU9eQorQ09ORklHX0VSUkFUQV9TSUZJVkVfQ0lQXzQ1Mz15 CitDT05GSUdfRVJSQVRBX1NJRklWRV9DSVBfMTIwMD15CisjIENPTkZJR19FUlJBVEFfVEhFQUQg aXMgbm90IHNldAorIyBlbmQgb2YgQ1BVIGVycmF0YSBzZWxlY3Rpb24KKworIworIyBQbGF0Zm9y bSB0eXBlCisjCisjIENPTkZJR19OT05QT1JUQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9S VjY0ST15CisjIENPTkZJR19DTU9ERUxfTUVETE9XIGlzIG5vdCBzZXQKK0NPTkZJR19DTU9ERUxf TUVEQU5ZPXkKK0NPTkZJR19NT0RVTEVfU0VDVElPTlM9eQorQ09ORklHX1NNUD15CitDT05GSUdf TlJfQ1BVUz00ODAKK0NPTkZJR19IT1RQTFVHX0NQVT15CitDT05GSUdfVFVORV9HRU5FUklDPXkK K0NPTkZJR19OVU1BPXkKK0NPTkZJR19OT0RFU19TSElGVD02CitDT05GSUdfUklTQ1ZfQUxURVJO QVRJVkU9eQorQ09ORklHX1JJU0NWX0lTQV9DPXkKK0NPTkZJR19SSVNDVl9JU0FfU1ZQQk1UPXkK K0NPTkZJR19UT09MQ0hBSU5fSEFTX1pJQ0JPTT15CitDT05GSUdfUklTQ1ZfSVNBX1pJQ0JPTT15 CitDT05GSUdfVE9PTENIQUlOX0hBU19aSUhJTlRQQVVTRT15CitDT05GSUdfRlBVPXkKKyMgZW5k IG9mIFBsYXRmb3JtIHR5cGUKKworIworIyBLZXJuZWwgZmVhdHVyZXMKKyMKKyMgQ09ORklHX0ha XzEwMCBpcyBub3Qgc2V0CitDT05GSUdfSFpfMjUwPXkKKyMgQ09ORklHX0haXzMwMCBpcyBub3Qg c2V0CisjIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0yNTAKK0NPTkZJR19T Q0hFRF9IUlRJQ0s9eQorIyBDT05GSUdfUklTQ1ZfU0JJX1YwMSBpcyBub3Qgc2V0CisjIENPTkZJ R19SSVNDVl9CT09UX1NQSU5XQUlUIGlzIG5vdCBzZXQKK0NPTkZJR19LRVhFQz15CisjIENPTkZJ R19LRVhFQ19GSUxFIGlzIG5vdCBzZXQKK0NPTkZJR19DUkFTSF9EVU1QPXkKK0NPTkZJR19DT01Q QVQ9eQorIyBlbmQgb2YgS2VybmVsIGZlYXR1cmVzCisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitD T05GSUdfQ01ETElORT0iIgorQ09ORklHX0VGSV9TVFVCPXkKK0NPTkZJR19FRkk9eQorQ09ORklH X0NDX0hBVkVfU1RBQ0tQUk9URUNUT1JfVExTPXkKK0NPTkZJR19TVEFDS1BST1RFQ1RPUl9QRVJf VEFTSz15CisjIGVuZCBvZiBCb290IG9wdGlvbnMKKworQ09ORklHX1BPUlRBQkxFPXkKKworIwor IyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CitDT05GSUdfUE1fREVC VUc9eQorQ09ORklHX1BNX0FEVkFOQ0VEX0RFQlVHPXkKK0NPTkZJR19EUE1fV0FUQ0hET0c9eQor Q09ORklHX0RQTV9XQVRDSERPR19USU1FT1VUPTYwCitDT05GSUdfUE1fQ0xLPXkKK0NPTkZJR19Q TV9HRU5FUklDX0RPTUFJTlM9eQorIyBDT05GSUdfV1FfUE9XRVJfRUZGSUNJRU5UX0RFRkFVTFQg aXMgbm90IHNldAorQ09ORklHX1BNX0dFTkVSSUNfRE9NQUlOU19PRj15CitDT05GSUdfQ1BVX1BN PXkKKyMgZW5kIG9mIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworCisjCisjIENQVSBQb3dlciBN YW5hZ2VtZW50CisjCisKKyMKKyMgQ1BVIElkbGUKKyMKK0NPTkZJR19DUFVfSURMRT15CitDT05G SUdfQ1BVX0lETEVfTVVMVElQTEVfRFJJVkVSUz15CitDT05GSUdfQ1BVX0lETEVfR09WX0xBRERF Uj15CitDT05GSUdfQ1BVX0lETEVfR09WX01FTlU9eQorQ09ORklHX0NQVV9JRExFX0dPVl9URU89 eQorQ09ORklHX0RUX0lETEVfU1RBVEVTPXkKK0NPTkZJR19EVF9JRExFX0dFTlBEPXkKKworIwor IyBSSVNDLVYgQ1BVIElkbGUgRHJpdmVycworIworQ09ORklHX1JJU0NWX1NCSV9DUFVJRExFPXkK KyMgZW5kIG9mIFJJU0MtViBDUFUgSWRsZSBEcml2ZXJzCisjIGVuZCBvZiBDUFUgSWRsZQorIyBl bmQgb2YgQ1BVIFBvd2VyIE1hbmFnZW1lbnQKKworQ09ORklHX0hBVkVfS1ZNX0VWRU5URkQ9eQor Q09ORklHX0tWTV9NTUlPPXkKK0NPTkZJR19LVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RF Q1Q9eQorQ09ORklHX0hBVkVfS1ZNX1ZDUFVfQVNZTkNfSU9DVEw9eQorQ09ORklHX0tWTV9YRkVS X1RPX0dVRVNUX1dPUks9eQorQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKK0NPTkZJR19LVk09eQor CisjCisjIEdlbmVyYWwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCisjCitDT05GSUdf Q1JBU0hfQ09SRT15CitDT05GSUdfS0VYRUNfQ09SRT15CitDT05GSUdfS1BST0JFUz15CitDT05G SUdfSlVNUF9MQUJFTD15CisjIENPTkZJR19TVEFUSUNfS0VZU19TRUxGVEVTVCBpcyBub3Qgc2V0 CitDT05GSUdfS1BST0JFU19PTl9GVFJBQ0U9eQorQ09ORklHX1VQUk9CRVM9eQorQ09ORklHX0hB VkVfNjRCSVRfQUxJR05FRF9BQ0NFU1M9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hB VkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9C RVNfT05fRlRSQUNFPXkKK0NPTkZJR19IQVZFX0ZVTkNUSU9OX0VSUk9SX0lOSkVDVElPTj15CitD T05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFWRV9BUkNIX1RSQUNFSE9P Sz15CitDT05GSUdfSEFWRV9ETUFfQ09OVElHVU9VUz15CitDT05GSUdfR0VORVJJQ19TTVBfSURM RV9USFJFQUQ9eQorQ09ORklHX0dFTkVSSUNfSURMRV9QT0xMX1NFVFVQPXkKK0NPTkZJR19BUkNI X0hBU19GT1JUSUZZX1NPVVJDRT15CitDT05GSUdfQVJDSF9IQVNfU0VUX01FTU9SWT15CitDT05G SUdfQVJDSF9IQVNfU0VUX0RJUkVDVF9NQVA9eQorQ09ORklHX0hBVkVfQVJDSF9USFJFQURfU1RS VUNUX1dISVRFTElTVD15CitDT05GSUdfSEFWRV9BU01fTU9EVkVSU0lPTlM9eQorQ09ORklHX0hB VkVfUkVHU19BTkRfU1RBQ0tfQUNDRVNTX0FQST15CitDT05GSUdfSEFWRV9SU0VRPXkKK0NPTkZJ R19IQVZFX0ZVTkNUSU9OX0FSR19BQ0NFU1NfQVBJPXkKK0NPTkZJR19IQVZFX1BFUkZfUkVHUz15 CitDT05GSUdfSEFWRV9QRVJGX1VTRVJfU1RBQ0tfRFVNUD15CitDT05GSUdfSEFWRV9BUkNIX0pV TVBfTEFCRUw9eQorQ09ORklHX0hBVkVfQVJDSF9KVU1QX0xBQkVMX1JFTEFUSVZFPXkKK0NPTkZJ R19IQVZFX0FSQ0hfU0VDQ09NUD15CitDT05GSUdfSEFWRV9BUkNIX1NFQ0NPTVBfRklMVEVSPXkK K0NPTkZJR19TRUNDT01QPXkKK0NPTkZJR19TRUNDT01QX0ZJTFRFUj15CisjIENPTkZJR19TRUND T01QX0NBQ0hFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX1NUQUNLUFJPVEVDVE9SPXkK K0NPTkZJR19TVEFDS1BST1RFQ1RPUj15CitDT05GSUdfU1RBQ0tQUk9URUNUT1JfU1RST05HPXkK K0NPTkZJR19MVE9fTk9ORT15CitDT05GSUdfSEFWRV9DT05URVhUX1RSQUNLSU5HX1VTRVI9eQor Q09ORklHX0hBVkVfVklSVF9DUFVfQUNDT1VOVElOR19HRU49eQorQ09ORklHX0hBVkVfSVJRX1RJ TUVfQUNDT1VOVElORz15CitDT05GSUdfSEFWRV9NT1ZFX1BVRD15CitDT05GSUdfSEFWRV9NT1ZF X1BNRD15CitDT05GSUdfSEFWRV9BUkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFPXkKK0NPTkZJR19B UkNIX1dBTlRfSFVHRV9QTURfU0hBUkU9eQorQ09ORklHX0hBVkVfTU9EX0FSQ0hfU1BFQ0lGSUM9 eQorQ09ORklHX01PRFVMRVNfVVNFX0VMRl9SRUxBPXkKK0NPTkZJR19BUkNIX0hBU19FTEZfUkFO RE9NSVpFPXkKK0NPTkZJR19IQVZFX0FSQ0hfTU1BUF9STkRfQklUUz15CitDT05GSUdfQVJDSF9N TUFQX1JORF9CSVRTPTE4CitDT05GSUdfSEFWRV9BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTPXkK K0NPTkZJR19BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTPTExCitDT05GSUdfUEFHRV9TSVpFX0xF U1NfVEhBTl82NEtCPXkKK0NPTkZJR19QQUdFX1NJWkVfTEVTU19USEFOXzI1NktCPXkKK0NPTkZJ R19BUkNIX1dBTlRfREVGQVVMVF9UT1BET1dOX01NQVBfTEFZT1VUPXkKK0NPTkZJR19DTE9ORV9C QUNLV0FSRFM9eQorQ09ORklHX0NPTVBBVF8zMkJJVF9USU1FPXkKK0NPTkZJR19IQVZFX0FSQ0hf Vk1BUF9TVEFDSz15CitDT05GSUdfVk1BUF9TVEFDSz15CitDT05GSUdfQVJDSF9PUFRJT05BTF9L RVJORUxfUldYPXkKK0NPTkZJR19BUkNIX09QVElPTkFMX0tFUk5FTF9SV1hfREVGQVVMVD15CitD T05GSUdfQVJDSF9IQVNfU1RSSUNUX0tFUk5FTF9SV1g9eQorQ09ORklHX1NUUklDVF9LRVJORUxf UldYPXkKK0NPTkZJR19BUkNIX0hBU19TVFJJQ1RfTU9EVUxFX1JXWD15CitDT05GSUdfU1RSSUNU X01PRFVMRV9SV1g9eQorQ09ORklHX0FSQ0hfVVNFX01FTVJFTUFQX1BST1Q9eQorIyBDT05GSUdf TE9DS19FVkVOVF9DT1VOVFMgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VQUE9SVFNfREVCVUdf UEFHRUFMTE9DPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX1BBR0VfVEFCTEVfQ0hFQ0s9eQorCisj CisjIEdDT1YtYmFzZWQga2VybmVsIHByb2ZpbGluZworIworIyBDT05GSUdfR0NPVl9LRVJORUwg aXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX0dDT1ZfUFJPRklMRV9BTEw9eQorIyBlbmQgb2Yg R0NPVi1iYXNlZCBrZXJuZWwgcHJvZmlsaW5nCisKK0NPTkZJR19IQVZFX0dDQ19QTFVHSU5TPXkK KyMgQ09ORklHX0dDQ19QTFVHSU5TIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEdlbmVyYWwgYXJjaGl0 ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCisKK0NPTkZJR19SVF9NVVRFWEVTPXkKK0NPTkZJR19C QVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRD15 CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlz IG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9VTkxPQURfVEFJTlRfVFJBQ0tJTkcgaXMgbm90IHNl dAorQ09ORklHX01PRFZFUlNJT05TPXkKK0NPTkZJR19BU01fTU9EVkVSU0lPTlM9eQorIyBDT05G SUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TSUcg aXMgbm90IHNldAorQ09ORklHX01PRFVMRV9DT01QUkVTU19OT05FPXkKKyMgQ09ORklHX01PRFVM RV9DT01QUkVTU19HWklQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9DT01QUkVTU19YWiBp cyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1NfWlNURCBpcyBub3Qgc2V0CisjIENP TkZJR19NT0RVTEVfQUxMT1dfTUlTU0lOR19OQU1FU1BBQ0VfSU1QT1JUUyBpcyBub3Qgc2V0CitD T05GSUdfTU9EUFJPQkVfUEFUSD0iL3NiaW4vbW9kcHJvYmUiCisjIENPTkZJR19UUklNX1VOVVNF RF9LU1lNUyBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFU19UUkVFX0xPT0tVUD15CitDT05GSUdf QkxPQ0s9eQorQ09ORklHX0JMT0NLX0xFR0FDWV9BVVRPTE9BRD15CitDT05GSUdfQkxLX1JRX0FM TE9DX1RJTUU9eQorQ09ORklHX0JMS19DR1JPVVBfUldTVEFUPXkKK0NPTkZJR19CTEtfREVWX0JT R19DT01NT049eQorQ09ORklHX0JMS19JQ1E9eQorQ09ORklHX0JMS19ERVZfQlNHTElCPXkKK0NP TkZJR19CTEtfREVWX0lOVEVHUklUWT15CitDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFlfVDEwPXkK K0NPTkZJR19CTEtfREVWX1pPTkVEPXkKK0NPTkZJR19CTEtfREVWX1RIUk9UVExJTkc9eQorIyBD T05GSUdfQkxLX0RFVl9USFJPVFRMSU5HX0xPVyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX1dCVD15 CitDT05GSUdfQkxLX1dCVF9NUT15CitDT05GSUdfQkxLX0NHUk9VUF9JT0xBVEVOQ1k9eQorIyBD T05GSUdfQkxLX0NHUk9VUF9GQ19BUFBJRCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0NHUk9VUF9J T0NPU1Q9eQorQ09ORklHX0JMS19DR1JPVVBfSU9QUklPPXkKK0NPTkZJR19CTEtfREVCVUdfRlM9 eQorQ09ORklHX0JMS19ERUJVR19GU19aT05FRD15CisjIENPTkZJR19CTEtfU0VEX09QQUwgaXMg bm90IHNldAorQ09ORklHX0JMS19JTkxJTkVfRU5DUllQVElPTj15CitDT05GSUdfQkxLX0lOTElO RV9FTkNSWVBUSU9OX0ZBTExCQUNLPXkKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKK0NPTkZJ R19QQVJUSVRJT05fQURWQU5DRUQ9eQorIyBDT05GSUdfQUNPUk5fUEFSVElUSU9OIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0FJWF9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX09TRl9QQVJUSVRJ T049eQorIyBDT05GSUdfQU1JR0FfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BVEFSSV9Q QVJUSVRJT049eQorQ09ORklHX01BQ19QQVJUSVRJT049eQorQ09ORklHX01TRE9TX1BBUlRJVElP Tj15CitDT05GSUdfQlNEX0RJU0tMQUJFTD15CisjIENPTkZJR19NSU5JWF9TVUJQQVJUSVRJT04g aXMgbm90IHNldAorQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTj15CitDT05GSUdfVU5JWFdB UkVfRElTS0xBQkVMPXkKK0NPTkZJR19MRE1fUEFSVElUSU9OPXkKKyMgQ09ORklHX0xETV9ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfU0dJX1BBUlRJVElPTj15CitDT05GSUdfVUxUUklYX1BBUlRJ VElPTj15CitDT05GSUdfU1VOX1BBUlRJVElPTj15CitDT05GSUdfS0FSTUFfUEFSVElUSU9OPXkK K0NPTkZJR19FRklfUEFSVElUSU9OPXkKK0NPTkZJR19TWVNWNjhfUEFSVElUSU9OPXkKKyMgQ09O RklHX0NNRExJTkVfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFBhcnRpdGlvbiBUeXBl cworCitDT05GSUdfQkxPQ0tfQ09NUEFUPXkKK0NPTkZJR19CTEtfTVFfUENJPXkKK0NPTkZJR19C TEtfTVFfVklSVElPPXkKK0NPTkZJR19CTEtfTVFfUkRNQT15CitDT05GSUdfQkxLX1BNPXkKK0NP TkZJR19CTE9DS19IT0xERVJfREVQUkVDQVRFRD15CitDT05GSUdfQkxLX01RX1NUQUNLSU5HPXkK KworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfTVFfSU9TQ0hFRF9ERUFETElORT15CitD T05GSUdfTVFfSU9TQ0hFRF9LWUJFUj15CitDT05GSUdfSU9TQ0hFRF9CRlE9eQorQ09ORklHX0JG UV9HUk9VUF9JT1NDSEVEPXkKKyMgQ09ORklHX0JGUV9DR1JPVVBfREVCVUcgaXMgbm90IHNldAor IyBlbmQgb2YgSU8gU2NoZWR1bGVycworCitDT05GSUdfUFJFRU1QVF9OT1RJRklFUlM9eQorQ09O RklHX1BBREFUQT15CitDT05GSUdfQVNOMT15CitDT05GSUdfSU5MSU5FX1NQSU5fVU5MT0NLX0lS UT15CitDT05GSUdfSU5MSU5FX1JFQURfVU5MT0NLPXkKK0NPTkZJR19JTkxJTkVfUkVBRF9VTkxP Q0tfSVJRPXkKK0NPTkZJR19JTkxJTkVfV1JJVEVfVU5MT0NLPXkKK0NPTkZJR19JTkxJTkVfV1JJ VEVfVU5MT0NLX0lSUT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BVE9NSUNfUk1XPXkKK0NPTkZJ R19NVVRFWF9TUElOX09OX09XTkVSPXkKK0NPTkZJR19SV1NFTV9TUElOX09OX09XTkVSPXkKK0NP TkZJR19MT0NLX1NQSU5fT05fT1dORVI9eQorQ09ORklHX0FSQ0hfVVNFX1FVRVVFRF9SV0xPQ0tT PXkKK0NPTkZJR19RVUVVRURfUldMT0NLUz15CitDT05GSUdfQVJDSF9IQVNfTU1JT1dCPXkKK0NP TkZJR19NTUlPV0I9eQorQ09ORklHX0ZSRUVaRVI9eQorCisjCisjIEV4ZWN1dGFibGUgZmlsZSBm b3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CitDT05GSUdfQ09NUEFUX0JJTkZNVF9FTEY9 eQorQ09ORklHX0VMRkNPUkU9eQorQ09ORklHX0NPUkVfRFVNUF9ERUZBVUxUX0VMRl9IRUFERVJT PXkKK0NPTkZJR19CSU5GTVRfU0NSSVBUPXkKK0NPTkZJR19BUkNIX0hBU19CSU5GTVRfRkxBVD15 CisjIENPTkZJR19CSU5GTVRfRkxBVCBpcyBub3Qgc2V0CitDT05GSUdfQklORk1UX01JU0M9bQor Q09ORklHX0NPUkVEVU1QPXkKKyMgZW5kIG9mIEV4ZWN1dGFibGUgZmlsZSBmb3JtYXRzCisKKyMK KyMgTWVtb3J5IE1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1pQT09MPXkKK0NPTkZJR19T V0FQPXkKK0NPTkZJR19aU1dBUD15CisjIENPTkZJR19aU1dBUF9ERUZBVUxUX09OIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9ERUZMQVRFIGlzIG5vdCBzZXQK K0NPTkZJR19aU1dBUF9DT01QUkVTU09SX0RFRkFVTFRfTFpPPXkKKyMgQ09ORklHX1pTV0FQX0NP TVBSRVNTT1JfREVGQVVMVF84NDIgaXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NP Ul9ERUZBVUxUX0xaNCBpcyBub3Qgc2V0CisjIENPTkZJR19aU1dBUF9DT01QUkVTU09SX0RFRkFV TFRfTFo0SEMgaXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX1pT VEQgaXMgbm90IHNldAorQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVD0ibHpvIgorQ09O RklHX1pTV0FQX1pQT09MX0RFRkFVTFRfWkJVRD15CisjIENPTkZJR19aU1dBUF9aUE9PTF9ERUZB VUxUX1ozRk9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19aU1dBUF9aUE9PTF9ERUZBVUxUX1pTTUFM TE9DIGlzIG5vdCBzZXQKK0NPTkZJR19aU1dBUF9aUE9PTF9ERUZBVUxUPSJ6YnVkIgorQ09ORklH X1pCVUQ9eQorQ09ORklHX1ozRk9MRD1tCitDT05GSUdfWlNNQUxMT0M9eQorIyBDT05GSUdfWlNN QUxMT0NfU1RBVCBpcyBub3Qgc2V0CisKKyMKKyMgU0xBQiBhbGxvY2F0b3Igb3B0aW9ucworIwor IyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CisjIENPTkZJR19TTE9CIGlz IG5vdCBzZXQKK0NPTkZJR19TTEFCX01FUkdFX0RFRkFVTFQ9eQorQ09ORklHX1NMQUJfRlJFRUxJ U1RfUkFORE9NPXkKK0NPTkZJR19TTEFCX0ZSRUVMSVNUX0hBUkRFTkVEPXkKKyMgQ09ORklHX1NM VUJfU1RBVFMgaXMgbm90IHNldAorQ09ORklHX1NMVUJfQ1BVX1BBUlRJQUw9eQorIyBlbmQgb2Yg U0xBQiBhbGxvY2F0b3Igb3B0aW9ucworCitDT05GSUdfU0hVRkZMRV9QQUdFX0FMTE9DQVRPUj15 CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01P REVMPXkKK0NPTkZJR19TUEFSU0VNRU1fTUFOVUFMPXkKK0NPTkZJR19TUEFSU0VNRU09eQorQ09O RklHX1NQQVJTRU1FTV9FWFRSRU1FPXkKK0NPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEU9 eQorQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQPXkKK0NPTkZJR19NRU1PUllfSVNPTEFUSU9OPXkK K0NPTkZJR19FWENMVVNJVkVfU1lTVEVNX1JBTT15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9 NAorQ09ORklHX0FSQ0hfRU5BQkxFX1NQTElUX1BNRF9QVExPQ0s9eQorQ09ORklHX01FTU9SWV9C QUxMT09OPXkKK0NPTkZJR19CQUxMT09OX0NPTVBBQ1RJT049eQorQ09ORklHX0NPTVBBQ1RJT049 eQorQ09ORklHX0NPTVBBQ1RfVU5FVklDVEFCTEVfREVGQVVMVD0xCitDT05GSUdfUEFHRV9SRVBP UlRJTkc9eQorQ09ORklHX01JR1JBVElPTj15CitDT05GSUdfQVJDSF9FTkFCTEVfSFVHRVBBR0Vf TUlHUkFUSU9OPXkKK0NPTkZJR19BUkNIX0VOQUJMRV9USFBfTUlHUkFUSU9OPXkKK0NPTkZJR19D T05USUdfQUxMT0M9eQorQ09ORklHX1BIWVNfQUREUl9UXzY0QklUPXkKK0NPTkZJR19NTVVfTk9U SUZJRVI9eQorQ09ORklHX0tTTT15CitDT05GSUdfREVGQVVMVF9NTUFQX01JTl9BRERSPTY1NTM2 CitDT05GSUdfQVJDSF9XQU5UX0dFTkVSQUxfSFVHRVRMQj15CitDT05GSUdfQVJDSF9XQU5UU19U SFBfU1dBUD15CitDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0U9eQorIyBDT05GSUdfVFJBTlNQ QVJFTlRfSFVHRVBBR0VfQUxXQVlTIGlzIG5vdCBzZXQKK0NPTkZJR19UUkFOU1BBUkVOVF9IVUdF UEFHRV9NQURWSVNFPXkKK0NPTkZJR19USFBfU1dBUD15CitDT05GSUdfUkVBRF9PTkxZX1RIUF9G T1JfRlM9eQorQ09ORklHX05FRURfUEVSX0NQVV9FTUJFRF9GSVJTVF9DSFVOSz15CitDT05GSUdf VVNFX1BFUkNQVV9OVU1BX05PREVfSUQ9eQorQ09ORklHX0ZST05UU1dBUD15CitDT05GSUdfQ01B PXkKKyMgQ09ORklHX0NNQV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19DTUFfREVCVUdGUyBp cyBub3Qgc2V0CitDT05GSUdfQ01BX1NZU0ZTPXkKK0NPTkZJR19DTUFfQVJFQVM9NworQ09ORklH X0dFTkVSSUNfRUFSTFlfSU9SRU1BUD15CitDT05GSUdfREVGRVJSRURfU1RSVUNUX1BBR0VfSU5J VD15CitDT05GSUdfUEFHRV9JRExFX0ZMQUc9eQorIyBDT05GSUdfSURMRV9QQUdFX1RSQUNLSU5H IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19DVVJSRU5UX1NUQUNLX1BPSU5URVI9eQorQ09O RklHX1pPTkVfRE1BMzI9eQorQ09ORklHX0hNTV9NSVJST1I9eQorQ09ORklHX0dFVF9GUkVFX1JF R0lPTj15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorIyBDT05GSUdfUEVSQ1BVX1NUQVRT IGlzIG5vdCBzZXQKKyMgQ09ORklHX0dVUF9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hB U19QVEVfU1BFQ0lBTD15CitDT05GSUdfU0VDUkVUTUVNPXkKK0NPTkZJR19BTk9OX1ZNQV9OQU1F PXkKK0NPTkZJR19VU0VSRkFVTFRGRD15CitDT05GSUdfTFJVX0dFTj15CisjIENPTkZJR19MUlVf R0VOX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfTFJVX0dFTl9TVEFUUyBpcyBub3Qgc2V0 CisKKyMKKyMgRGF0YSBBY2Nlc3MgTW9uaXRvcmluZworIworQ09ORklHX0RBTU9OPXkKK0NPTkZJ R19EQU1PTl9WQUREUj15CitDT05GSUdfREFNT05fUEFERFI9eQorQ09ORklHX0RBTU9OX1NZU0ZT PXkKK0NPTkZJR19EQU1PTl9EQkdGUz15CitDT05GSUdfREFNT05fUkVDTEFJTT15CisjIENPTkZJ R19EQU1PTl9MUlVfU09SVCBpcyBub3Qgc2V0CisjIGVuZCBvZiBEYXRhIEFjY2VzcyBNb25pdG9y aW5nCisjIGVuZCBvZiBNZW1vcnkgTWFuYWdlbWVudCBvcHRpb25zCisKK0NPTkZJR19ORVQ9eQor Q09ORklHX0NPTVBBVF9ORVRMSU5LX01FU1NBR0VTPXkKK0NPTkZJR19ORVRfSU5HUkVTUz15CitD T05GSUdfTkVUX0VHUkVTUz15CitDT05GSUdfTkVUX1JFRElSRUNUPXkKK0NPTkZJR19TS0JfRVhU RU5TSU9OUz15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPW0K K0NPTkZJR19QQUNLRVRfRElBRz1tCitDT05GSUdfVU5JWD15CitDT05GSUdfVU5JWF9TQ009eQor Q09ORklHX0FGX1VOSVhfT09CPXkKK0NPTkZJR19VTklYX0RJQUc9bQorQ09ORklHX1RMUz1tCitD T05GSUdfVExTX0RFVklDRT15CisjIENPTkZJR19UTFNfVE9FIGlzIG5vdCBzZXQKK0NPTkZJR19Y RlJNPXkKK0NPTkZJR19YRlJNX09GRkxPQUQ9eQorQ09ORklHX1hGUk1fQUxHTz1tCitDT05GSUdf WEZSTV9VU0VSPW0KK0NPTkZJR19YRlJNX0lOVEVSRkFDRT1tCitDT05GSUdfWEZSTV9TVUJfUE9M SUNZPXkKK0NPTkZJR19YRlJNX01JR1JBVEU9eQorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlz IG5vdCBzZXQKK0NPTkZJR19YRlJNX0FIPW0KK0NPTkZJR19YRlJNX0VTUD1tCitDT05GSUdfWEZS TV9JUENPTVA9bQorQ09ORklHX05FVF9LRVk9bQorQ09ORklHX05FVF9LRVlfTUlHUkFURT15CitD T05GSUdfWEZSTV9FU1BJTlRDUD15CitDT05GSUdfU01DPW0KK0NPTkZJR19TTUNfRElBRz1tCitD T05GSUdfWERQX1NPQ0tFVFM9eQorQ09ORklHX1hEUF9TT0NLRVRTX0RJQUc9bQorQ09ORklHX0lO RVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkK KyMgQ09ORklHX0lQX0ZJQl9UUklFX1NUQVRTIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NVUxUSVBM RV9UQUJMRVM9eQorQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSD15CitDT05GSUdfSVBfUk9VVEVf VkVSQk9TRT15CitDT05GSUdfSVBfUk9VVEVfQ0xBU1NJRD15CitDT05GSUdfSVBfUE5QPXkKK0NP TkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKK0NPTkZJR19JUF9QTlBf UkFSUD15CitDT05GSUdfTkVUX0lQSVA9bQorQ09ORklHX05FVF9JUEdSRV9ERU1VWD1tCitDT05G SUdfTkVUX0lQX1RVTk5FTD1tCitDT05GSUdfTkVUX0lQR1JFPW0KK0NPTkZJR19ORVRfSVBHUkVf QlJPQURDQVNUPXkKK0NPTkZJR19JUF9NUk9VVEVfQ09NTU9OPXkKK0NPTkZJR19JUF9NUk9VVEU9 eQorQ09ORklHX0lQX01ST1VURV9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQX1BJTVNNX1Yx PXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CitDT05GSUdfU1lOX0NPT0tJRVM9eQorQ09ORklHX05F VF9JUFZUST1tCitDT05GSUdfTkVUX1VEUF9UVU5ORUw9bQorQ09ORklHX05FVF9GT1U9bQorQ09O RklHX05FVF9GT1VfSVBfVFVOTkVMUz15CitDT05GSUdfSU5FVF9BSD1tCitDT05GSUdfSU5FVF9F U1A9bQorQ09ORklHX0lORVRfRVNQX09GRkxPQUQ9bQorQ09ORklHX0lORVRfRVNQSU5UQ1A9eQor Q09ORklHX0lORVRfSVBDT01QPW0KK0NPTkZJR19JTkVUX1RBQkxFX1BFUlRVUkJfT1JERVI9MTYK K0NPTkZJR19JTkVUX1hGUk1fVFVOTkVMPW0KK0NPTkZJR19JTkVUX1RVTk5FTD1tCitDT05GSUdf SU5FVF9ESUFHPW0KK0NPTkZJR19JTkVUX1RDUF9ESUFHPW0KK0NPTkZJR19JTkVUX1VEUF9ESUFH PW0KK0NPTkZJR19JTkVUX1JBV19ESUFHPW0KKyMgQ09ORklHX0lORVRfRElBR19ERVNUUk9ZIGlz IG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19BRFZBTkNFRD15CitDT05GSUdfVENQX0NPTkdfQklD PW0KK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfVENQX0NPTkdfV0VTVFdPT0Q9bQor Q09ORklHX1RDUF9DT05HX0hUQ1A9bQorQ09ORklHX1RDUF9DT05HX0hTVENQPW0KK0NPTkZJR19U Q1BfQ09OR19IWUJMQT1tCitDT05GSUdfVENQX0NPTkdfVkVHQVM9bQorQ09ORklHX1RDUF9DT05H X05WPW0KK0NPTkZJR19UQ1BfQ09OR19TQ0FMQUJMRT1tCitDT05GSUdfVENQX0NPTkdfTFA9bQor Q09ORklHX1RDUF9DT05HX1ZFTk89bQorQ09ORklHX1RDUF9DT05HX1lFQUg9bQorQ09ORklHX1RD UF9DT05HX0lMTElOT0lTPW0KK0NPTkZJR19UQ1BfQ09OR19EQ1RDUD1tCitDT05GSUdfVENQX0NP TkdfQ0RHPW0KK0NPTkZJR19UQ1BfQ09OR19CQlI9bQorQ09ORklHX0RFRkFVTFRfQ1VCSUM9eQor IyBDT05GSUdfREVGQVVMVF9SRU5PIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05H PSJjdWJpYyIKK0NPTkZJR19UQ1BfTUQ1U0lHPXkKK0NPTkZJR19JUFY2PXkKK0NPTkZJR19JUFY2 X1JPVVRFUl9QUkVGPXkKK0NPTkZJR19JUFY2X1JPVVRFX0lORk89eQorIyBDT05GSUdfSVBWNl9P UFRJTUlTVElDX0RBRCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfQUg9bQorQ09ORklHX0lORVQ2 X0VTUD1tCitDT05GSUdfSU5FVDZfRVNQX09GRkxPQUQ9bQorQ09ORklHX0lORVQ2X0VTUElOVENQ PXkKK0NPTkZJR19JTkVUNl9JUENPTVA9bQorQ09ORklHX0lQVjZfTUlQNj1tCitDT05GSUdfSVBW Nl9JTEE9bQorQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMPW0KK0NPTkZJR19JTkVUNl9UVU5ORUw9 bQorQ09ORklHX0lQVjZfVlRJPW0KK0NPTkZJR19JUFY2X1NJVD1tCitDT05GSUdfSVBWNl9TSVRf NlJEPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKK0NPTkZJR19JUFY2X1RVTk5FTD1t CitDT05GSUdfSVBWNl9HUkU9bQorQ09ORklHX0lQVjZfRk9VPW0KK0NPTkZJR19JUFY2X0ZPVV9U VU5ORUw9bQorQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTPXkKK0NPTkZJR19JUFY2X1NVQlRS RUVTPXkKK0NPTkZJR19JUFY2X01ST1VURT15CitDT05GSUdfSVBWNl9NUk9VVEVfTVVMVElQTEVf VEFCTEVTPXkKK0NPTkZJR19JUFY2X1BJTVNNX1YyPXkKK0NPTkZJR19JUFY2X1NFRzZfTFdUVU5O RUw9eQorQ09ORklHX0lQVjZfU0VHNl9ITUFDPXkKK0NPTkZJR19JUFY2X1NFRzZfQlBGPXkKK0NP TkZJR19JUFY2X1JQTF9MV1RVTk5FTD15CitDT05GSUdfSVBWNl9JT0FNNl9MV1RVTk5FTD15CitD T05GSUdfTkVUTEFCRUw9eQorQ09ORklHX01QVENQPXkKK0NPTkZJR19JTkVUX01QVENQX0RJQUc9 bQorQ09ORklHX01QVENQX0lQVjY9eQorQ09ORklHX05FVFdPUktfU0VDTUFSSz15CitDT05GSUdf TkVUX1BUUF9DTEFTU0lGWT15CisjIENPTkZJR19ORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcgaXMg bm90IHNldAorQ09ORklHX05FVEZJTFRFUj15CitDT05GSUdfTkVURklMVEVSX0FEVkFOQ0VEPXkK K0NPTkZJR19CUklER0VfTkVURklMVEVSPW0KKworIworIyBDb3JlIE5ldGZpbHRlciBDb25maWd1 cmF0aW9uCisjCitDT05GSUdfTkVURklMVEVSX0lOR1JFU1M9eQorQ09ORklHX05FVEZJTFRFUl9F R1JFU1M9eQorQ09ORklHX05FVEZJTFRFUl9TS0lQX0VHUkVTUz15CitDT05GSUdfTkVURklMVEVS X05FVExJTks9bQorQ09ORklHX05FVEZJTFRFUl9GQU1JTFlfQlJJREdFPXkKK0NPTkZJR19ORVRG SUxURVJfRkFNSUxZX0FSUD15CitDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PSz1tCitDT05G SUdfTkVURklMVEVSX05FVExJTktfQUNDVD1tCitDT05GSUdfTkVURklMVEVSX05FVExJTktfUVVF VUU9bQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0xPRz1tCitDT05GSUdfTkVURklMVEVSX05F VExJTktfT1NGPW0KK0NPTkZJR19ORl9DT05OVFJBQ0s9bQorQ09ORklHX05GX0xPR19TWVNMT0c9 bQorQ09ORklHX05FVEZJTFRFUl9DT05OQ09VTlQ9bQorQ09ORklHX05GX0NPTk5UUkFDS19NQVJL PXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfU0VDTUFSSz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1pP TkVTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfUFJPQ0ZTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tf RVZFTlRTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfVElNRU9VVD15CitDT05GSUdfTkZfQ09OTlRS QUNLX1RJTUVTVEFNUD15CitDT05GSUdfTkZfQ09OTlRSQUNLX0xBQkVMUz15CitDT05GSUdfTkZf Q1RfUFJPVE9fRENDUD15CitDT05GSUdfTkZfQ1RfUFJPVE9fR1JFPXkKK0NPTkZJR19ORl9DVF9Q Uk9UT19TQ1RQPXkKK0NPTkZJR19ORl9DVF9QUk9UT19VRFBMSVRFPXkKK0NPTkZJR19ORl9DT05O VFJBQ0tfQU1BTkRBPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfRlRQPW0KK0NPTkZJR19ORl9DT05O VFJBQ0tfSDMyMz1tCitDT05GSUdfTkZfQ09OTlRSQUNLX0lSQz1tCitDT05GSUdfTkZfQ09OTlRS QUNLX0JST0FEQ0FTVD1tCitDT05GSUdfTkZfQ09OTlRSQUNLX05FVEJJT1NfTlM9bQorQ09ORklH X05GX0NPTk5UUkFDS19TTk1QPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfUFBUUD1tCitDT05GSUdf TkZfQ09OTlRSQUNLX1NBTkU9bQorQ09ORklHX05GX0NPTk5UUkFDS19TSVA9bQorQ09ORklHX05G X0NPTk5UUkFDS19URlRQPW0KK0NPTkZJR19ORl9DVF9ORVRMSU5LPW0KK0NPTkZJR19ORl9DVF9O RVRMSU5LX1RJTUVPVVQ9bQorQ09ORklHX05GX0NUX05FVExJTktfSEVMUEVSPW0KK0NPTkZJR19O RVRGSUxURVJfTkVUTElOS19HTFVFX0NUPXkKK0NPTkZJR19ORl9OQVQ9bQorQ09ORklHX05GX05B VF9BTUFOREE9bQorQ09ORklHX05GX05BVF9GVFA9bQorQ09ORklHX05GX05BVF9JUkM9bQorQ09O RklHX05GX05BVF9TSVA9bQorQ09ORklHX05GX05BVF9URlRQPW0KK0NPTkZJR19ORl9OQVRfUkVE SVJFQ1Q9eQorQ09ORklHX05GX05BVF9NQVNRVUVSQURFPXkKK0NPTkZJR19ORVRGSUxURVJfU1lO UFJPWFk9bQorQ09ORklHX05GX1RBQkxFUz1tCitDT05GSUdfTkZfVEFCTEVTX0lORVQ9eQorQ09O RklHX05GX1RBQkxFU19ORVRERVY9eQorQ09ORklHX05GVF9OVU1HRU49bQorQ09ORklHX05GVF9D VD1tCitDT05GSUdfTkZUX0ZMT1dfT0ZGTE9BRD1tCitDT05GSUdfTkZUX0NPTk5MSU1JVD1tCitD T05GSUdfTkZUX0xPRz1tCitDT05GSUdfTkZUX0xJTUlUPW0KK0NPTkZJR19ORlRfTUFTUT1tCitD T05GSUdfTkZUX1JFRElSPW0KK0NPTkZJR19ORlRfTkFUPW0KK0NPTkZJR19ORlRfVFVOTkVMPW0K K0NPTkZJR19ORlRfT0JKUkVGPW0KK0NPTkZJR19ORlRfUVVFVUU9bQorQ09ORklHX05GVF9RVU9U QT1tCitDT05GSUdfTkZUX1JFSkVDVD1tCitDT05GSUdfTkZUX1JFSkVDVF9JTkVUPW0KK0NPTkZJ R19ORlRfQ09NUEFUPW0KK0NPTkZJR19ORlRfSEFTSD1tCitDT05GSUdfTkZUX0ZJQj1tCitDT05G SUdfTkZUX0ZJQl9JTkVUPW0KK0NPTkZJR19ORlRfWEZSTT1tCitDT05GSUdfTkZUX1NPQ0tFVD1t CitDT05GSUdfTkZUX09TRj1tCitDT05GSUdfTkZUX1RQUk9YWT1tCitDT05GSUdfTkZUX1NZTlBS T1hZPW0KK0NPTkZJR19ORl9EVVBfTkVUREVWPW0KK0NPTkZJR19ORlRfRFVQX05FVERFVj1tCitD T05GSUdfTkZUX0ZXRF9ORVRERVY9bQorQ09ORklHX05GVF9GSUJfTkVUREVWPW0KK0NPTkZJR19O RlRfUkVKRUNUX05FVERFVj1tCitDT05GSUdfTkZfRkxPV19UQUJMRV9JTkVUPW0KK0NPTkZJR19O Rl9GTE9XX1RBQkxFPW0KKyMgQ09ORklHX05GX0ZMT1dfVEFCTEVfUFJPQ0ZTIGlzIG5vdCBzZXQK K0NPTkZJR19ORVRGSUxURVJfWFRBQkxFUz1tCitDT05GSUdfTkVURklMVEVSX1hUQUJMRVNfQ09N UEFUPXkKKworIworIyBYdGFibGVzIGNvbWJpbmVkIG1vZHVsZXMKKyMKK0NPTkZJR19ORVRGSUxU RVJfWFRfTUFSSz1tCitDT05GSUdfTkVURklMVEVSX1hUX0NPTk5NQVJLPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfU0VUPW0KKworIworIyBYdGFibGVzIHRhcmdldHMKKyMKK0NPTkZJR19ORVRGSUxU RVJfWFRfVEFSR0VUX0FVRElUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NIRUNLU1VN PW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NMQVNTSUZZPW0KK0NPTkZJR19ORVRGSUxU RVJfWFRfVEFSR0VUX0NPTk5NQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NPTk5T RUNNQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NUPW0KK0NPTkZJR19ORVRGSUxU RVJfWFRfVEFSR0VUX0RTQ1A9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfSEw9bQorQ09O RklHX05FVEZJTFRFUl9YVF9UQVJHRVRfSE1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJH RVRfSURMRVRJTUVSPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0xFRD1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9MT0c9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTUFS Sz1tCitDT05GSUdfTkVURklMVEVSX1hUX05BVD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdF VF9ORVRNQVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTkZMT0c9bQorQ09ORklHX05F VEZJTFRFUl9YVF9UQVJHRVRfTkZRVUVVRT1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9O T1RSQUNLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1JBVEVFU1Q9bQorQ09ORklHX05F VEZJTFRFUl9YVF9UQVJHRVRfUkVESVJFQ1Q9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRf TUFTUVVFUkFERT1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9URUU9bQorQ09ORklHX05F VEZJTFRFUl9YVF9UQVJHRVRfVFBST1hZPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RS QUNFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1NFQ01BUks9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfVENQTVNTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RDUE9Q VFNUUklQPW0KKworIworIyBYdGFibGVzIG1hdGNoZXMKKyMKK0NPTkZJR19ORVRGSUxURVJfWFRf TUFUQ0hfQUREUlRZUEU9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9CUEY9bQorQ09ORklH X05FVEZJTFRFUl9YVF9NQVRDSF9DR1JPVVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9D TFVTVEVSPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09NTUVOVD1tCitDT05GSUdfTkVU RklMVEVSX1hUX01BVENIX0NPTk5CWVRFUz1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0NP Tk5MQUJFTD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0NPTk5MSU1JVD1tCitDT05GSUdf TkVURklMVEVSX1hUX01BVENIX0NPTk5NQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf Q09OTlRSQUNLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ1BVPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfTUFUQ0hfRENDUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0RFVkdST1VQ PW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRFNDUD1tCitDT05GSUdfTkVURklMVEVSX1hU X01BVENIX0VDTj1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0VTUD1tCitDT05GSUdfTkVU RklMVEVSX1hUX01BVENIX0hBU0hMSU1JVD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0hF TFBFUj1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0hMPW0KK0NPTkZJR19ORVRGSUxURVJf WFRfTUFUQ0hfSVBDT01QPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSVBSQU5HRT1tCitD T05GSUdfTkVURklMVEVSX1hUX01BVENIX0lQVlM9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9MMlRQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTEVOR1RIPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfTUFUQ0hfTElNSVQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9NQUM9bQor Q09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9NQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFU Q0hfTVVMVElQT1JUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTkZBQ0NUPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfTUFUQ0hfT1NGPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfT1dO RVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9QT0xJQ1k9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9NQVRDSF9QSFlTREVWPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUEtUVFlQRT1t CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1FVT1RBPW0KK0NPTkZJR19ORVRGSUxURVJfWFRf TUFUQ0hfUkFURUVTVD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1JFQUxNPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfTUFUQ0hfUkVDRU5UPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf U0NUUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1NPQ0tFVD1tCitDT05GSUdfTkVURklM VEVSX1hUX01BVENIX1NUQVRFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU1RBVElTVElD PW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU1RSSU5HPW0KK0NPTkZJR19ORVRGSUxURVJf WFRfTUFUQ0hfVENQTVNTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfVElNRT1tCitDT05G SUdfTkVURklMVEVSX1hUX01BVENIX1UzMj1tCisjIGVuZCBvZiBDb3JlIE5ldGZpbHRlciBDb25m aWd1cmF0aW9uCisKK0NPTkZJR19JUF9TRVQ9bQorQ09ORklHX0lQX1NFVF9NQVg9MjU2CitDT05G SUdfSVBfU0VUX0JJVE1BUF9JUD1tCitDT05GSUdfSVBfU0VUX0JJVE1BUF9JUE1BQz1tCitDT05G SUdfSVBfU0VUX0JJVE1BUF9QT1JUPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9JUD1tCitDT05GSUdf SVBfU0VUX0hBU0hfSVBNQVJLPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9JUFBPUlQ9bQorQ09ORklH X0lQX1NFVF9IQVNIX0lQUE9SVElQPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9JUFBPUlRORVQ9bQor Q09ORklHX0lQX1NFVF9IQVNIX0lQTUFDPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9NQUM9bQorQ09O RklHX0lQX1NFVF9IQVNIX05FVFBPUlRORVQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVD1tCitD T05GSUdfSVBfU0VUX0hBU0hfTkVUTkVUPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9ORVRQT1JUPW0K K0NPTkZJR19JUF9TRVRfSEFTSF9ORVRJRkFDRT1tCitDT05GSUdfSVBfU0VUX0xJU1RfU0VUPW0K K0NPTkZJR19JUF9WUz1tCitDT05GSUdfSVBfVlNfSVBWNj15CisjIENPTkZJR19JUF9WU19ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfSVBfVlNfVEFCX0JJVFM9MTIKKworIworIyBJUFZTIHRyYW5z cG9ydCBwcm90b2NvbCBsb2FkIGJhbGFuY2luZyBzdXBwb3J0CisjCitDT05GSUdfSVBfVlNfUFJP VE9fVENQPXkKK0NPTkZJR19JUF9WU19QUk9UT19VRFA9eQorQ09ORklHX0lQX1ZTX1BST1RPX0FI X0VTUD15CitDT05GSUdfSVBfVlNfUFJPVE9fRVNQPXkKK0NPTkZJR19JUF9WU19QUk9UT19BSD15 CitDT05GSUdfSVBfVlNfUFJPVE9fU0NUUD15CisKKyMKKyMgSVBWUyBzY2hlZHVsZXIKKyMKK0NP TkZJR19JUF9WU19SUj1tCitDT05GSUdfSVBfVlNfV1JSPW0KK0NPTkZJR19JUF9WU19MQz1tCitD T05GSUdfSVBfVlNfV0xDPW0KK0NPTkZJR19JUF9WU19GTz1tCitDT05GSUdfSVBfVlNfT1ZGPW0K K0NPTkZJR19JUF9WU19MQkxDPW0KK0NPTkZJR19JUF9WU19MQkxDUj1tCitDT05GSUdfSVBfVlNf REg9bQorQ09ORklHX0lQX1ZTX1NIPW0KK0NPTkZJR19JUF9WU19NSD1tCitDT05GSUdfSVBfVlNf U0VEPW0KK0NPTkZJR19JUF9WU19OUT1tCitDT05GSUdfSVBfVlNfVFdPUz1tCisKKyMKKyMgSVBW UyBTSCBzY2hlZHVsZXIKKyMKK0NPTkZJR19JUF9WU19TSF9UQUJfQklUUz04CisKKyMKKyMgSVBW UyBNSCBzY2hlZHVsZXIKKyMKK0NPTkZJR19JUF9WU19NSF9UQUJfSU5ERVg9MTIKKworIworIyBJ UFZTIGFwcGxpY2F0aW9uIGhlbHBlcgorIworQ09ORklHX0lQX1ZTX0ZUUD1tCitDT05GSUdfSVBf VlNfTkZDVD15CitDT05GSUdfSVBfVlNfUEVfU0lQPW0KKworIworIyBJUDogTmV0ZmlsdGVyIENv bmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORl9ERUZSQUdfSVBWND1tCitDT05GSUdfTkZfU09DS0VU X0lQVjQ9bQorQ09ORklHX05GX1RQUk9YWV9JUFY0PW0KK0NPTkZJR19ORl9UQUJMRVNfSVBWND15 CitDT05GSUdfTkZUX1JFSkVDVF9JUFY0PW0KK0NPTkZJR19ORlRfRFVQX0lQVjQ9bQorQ09ORklH X05GVF9GSUJfSVBWND1tCitDT05GSUdfTkZfVEFCTEVTX0FSUD15CitDT05GSUdfTkZfRFVQX0lQ VjQ9bQorQ09ORklHX05GX0xPR19BUlA9bQorQ09ORklHX05GX0xPR19JUFY0PW0KK0NPTkZJR19O Rl9SRUpFQ1RfSVBWND1tCitDT05GSUdfTkZfTkFUX1NOTVBfQkFTSUM9bQorQ09ORklHX05GX05B VF9QUFRQPW0KK0NPTkZJR19ORl9OQVRfSDMyMz1tCitDT05GSUdfSVBfTkZfSVBUQUJMRVM9bQor Q09ORklHX0lQX05GX01BVENIX0FIPW0KK0NPTkZJR19JUF9ORl9NQVRDSF9FQ049bQorQ09ORklH X0lQX05GX01BVENIX1JQRklMVEVSPW0KK0NPTkZJR19JUF9ORl9NQVRDSF9UVEw9bQorQ09ORklH X0lQX05GX0ZJTFRFUj1tCitDT05GSUdfSVBfTkZfVEFSR0VUX1JFSkVDVD1tCitDT05GSUdfSVBf TkZfVEFSR0VUX1NZTlBST1hZPW0KK0NPTkZJR19JUF9ORl9OQVQ9bQorQ09ORklHX0lQX05GX1RB UkdFVF9NQVNRVUVSQURFPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfTkVUTUFQPW0KK0NPTkZJR19J UF9ORl9UQVJHRVRfUkVESVJFQ1Q9bQorQ09ORklHX0lQX05GX01BTkdMRT1tCitDT05GSUdfSVBf TkZfVEFSR0VUX0NMVVNURVJJUD1tCitDT05GSUdfSVBfTkZfVEFSR0VUX0VDTj1tCitDT05GSUdf SVBfTkZfVEFSR0VUX1RUTD1tCitDT05GSUdfSVBfTkZfUkFXPW0KK0NPTkZJR19JUF9ORl9TRUNV UklUWT1tCitDT05GSUdfSVBfTkZfQVJQVEFCTEVTPW0KK0NPTkZJR19JUF9ORl9BUlBGSUxURVI9 bQorQ09ORklHX0lQX05GX0FSUF9NQU5HTEU9bQorIyBlbmQgb2YgSVA6IE5ldGZpbHRlciBDb25m aWd1cmF0aW9uCisKKyMKKyMgSVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJ R19ORl9TT0NLRVRfSVBWNj1tCitDT05GSUdfTkZfVFBST1hZX0lQVjY9bQorQ09ORklHX05GX1RB QkxFU19JUFY2PXkKK0NPTkZJR19ORlRfUkVKRUNUX0lQVjY9bQorQ09ORklHX05GVF9EVVBfSVBW Nj1tCitDT05GSUdfTkZUX0ZJQl9JUFY2PW0KK0NPTkZJR19ORl9EVVBfSVBWNj1tCitDT05GSUdf TkZfUkVKRUNUX0lQVjY9bQorQ09ORklHX05GX0xPR19JUFY2PW0KK0NPTkZJR19JUDZfTkZfSVBU QUJMRVM9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9BSD1tCitDT05GSUdfSVA2X05GX01BVENIX0VV STY0PW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfRlJBRz1tCitDT05GSUdfSVA2X05GX01BVENIX09Q VFM9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9ITD1tCitDT05GSUdfSVA2X05GX01BVENIX0lQVjZI RUFERVI9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9NSD1tCitDT05GSUdfSVA2X05GX01BVENIX1JQ RklMVEVSPW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfUlQ9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9T Ukg9bQorQ09ORklHX0lQNl9ORl9UQVJHRVRfSEw9bQorQ09ORklHX0lQNl9ORl9GSUxURVI9bQor Q09ORklHX0lQNl9ORl9UQVJHRVRfUkVKRUNUPW0KK0NPTkZJR19JUDZfTkZfVEFSR0VUX1NZTlBS T1hZPW0KK0NPTkZJR19JUDZfTkZfTUFOR0xFPW0KK0NPTkZJR19JUDZfTkZfUkFXPW0KK0NPTkZJ R19JUDZfTkZfU0VDVVJJVFk9bQorQ09ORklHX0lQNl9ORl9OQVQ9bQorQ09ORklHX0lQNl9ORl9U QVJHRVRfTUFTUVVFUkFERT1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9OUFQ9bQorIyBlbmQgb2Yg SVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKworQ09ORklHX05GX0RFRlJBR19JUFY2PW0K K0NPTkZJR19ORl9UQUJMRVNfQlJJREdFPW0KK0NPTkZJR19ORlRfQlJJREdFX01FVEE9bQorQ09O RklHX05GVF9CUklER0VfUkVKRUNUPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfQlJJREdFPW0KK0NP TkZJR19CUklER0VfTkZfRUJUQUJMRVM9bQorQ09ORklHX0JSSURHRV9FQlRfQlJPVVRFPW0KK0NP TkZJR19CUklER0VfRUJUX1RfRklMVEVSPW0KK0NPTkZJR19CUklER0VfRUJUX1RfTkFUPW0KK0NP TkZJR19CUklER0VfRUJUXzgwMl8zPW0KK0NPTkZJR19CUklER0VfRUJUX0FNT05HPW0KK0NPTkZJ R19CUklER0VfRUJUX0FSUD1tCitDT05GSUdfQlJJREdFX0VCVF9JUD1tCitDT05GSUdfQlJJREdF X0VCVF9JUDY9bQorQ09ORklHX0JSSURHRV9FQlRfTElNSVQ9bQorQ09ORklHX0JSSURHRV9FQlRf TUFSSz1tCitDT05GSUdfQlJJREdFX0VCVF9QS1RUWVBFPW0KK0NPTkZJR19CUklER0VfRUJUX1NU UD1tCitDT05GSUdfQlJJREdFX0VCVF9WTEFOPW0KK0NPTkZJR19CUklER0VfRUJUX0FSUFJFUExZ PW0KK0NPTkZJR19CUklER0VfRUJUX0ROQVQ9bQorQ09ORklHX0JSSURHRV9FQlRfTUFSS19UPW0K K0NPTkZJR19CUklER0VfRUJUX1JFRElSRUNUPW0KK0NPTkZJR19CUklER0VfRUJUX1NOQVQ9bQor Q09ORklHX0JSSURHRV9FQlRfTE9HPW0KK0NPTkZJR19CUklER0VfRUJUX05GTE9HPW0KK0NPTkZJ R19CUEZJTFRFUj15CisjIENPTkZJR19CUEZJTFRFUl9VTUggaXMgbm90IHNldAorQ09ORklHX0lQ X0RDQ1A9bQorQ09ORklHX0lORVRfRENDUF9ESUFHPW0KKworIworIyBEQ0NQIENDSURzIENvbmZp Z3VyYXRpb24KKyMKKyMgQ09ORklHX0lQX0RDQ1BfQ0NJRDJfREVCVUcgaXMgbm90IHNldAorQ09O RklHX0lQX0RDQ1BfQ0NJRDM9eQorIyBDT05GSUdfSVBfRENDUF9DQ0lEM19ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfSVBfRENDUF9URlJDX0xJQj15CisjIGVuZCBvZiBEQ0NQIENDSURzIENvbmZp Z3VyYXRpb24KKworIworIyBEQ0NQIEtlcm5lbCBIYWNraW5nCisjCisjIENPTkZJR19JUF9EQ0NQ X0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERDQ1AgS2VybmVsIEhhY2tpbmcKKworQ09ORklH X0lQX1NDVFA9bQorIyBDT05GSUdfU0NUUF9EQkdfT0JKQ05UIGlzIG5vdCBzZXQKK0NPTkZJR19T Q1RQX0RFRkFVTFRfQ09PS0lFX0hNQUNfTUQ1PXkKKyMgQ09ORklHX1NDVFBfREVGQVVMVF9DT09L SUVfSE1BQ19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDVFBfREVGQVVMVF9DT09LSUVfSE1B Q19OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1RQX0NPT0tJRV9ITUFDX01ENT15CisjIENPTkZJ R19TQ1RQX0NPT0tJRV9ITUFDX1NIQTEgaXMgbm90IHNldAorQ09ORklHX0lORVRfU0NUUF9ESUFH PW0KK0NPTkZJR19SRFM9bQorQ09ORklHX1JEU19SRE1BPW0KK0NPTkZJR19SRFNfVENQPW0KKyMg Q09ORklHX1JEU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVElQQz1tCisjIENPTkZJR19USVBD X01FRElBX0lCIGlzIG5vdCBzZXQKK0NPTkZJR19USVBDX01FRElBX1VEUD15CitDT05GSUdfVElQ Q19DUllQVE89eQorQ09ORklHX1RJUENfRElBRz1tCitDT05GSUdfQVRNPW0KK0NPTkZJR19BVE1f Q0xJUD1tCisjIENPTkZJR19BVE1fQ0xJUF9OT19JQ01QIGlzIG5vdCBzZXQKK0NPTkZJR19BVE1f TEFORT1tCitDT05GSUdfQVRNX01QT0E9bQorQ09ORklHX0FUTV9CUjI2ODQ9bQorIyBDT05GSUdf QVRNX0JSMjY4NF9JUEZJTFRFUiBpcyBub3Qgc2V0CitDT05GSUdfTDJUUD1tCitDT05GSUdfTDJU UF9ERUJVR0ZTPW0KK0NPTkZJR19MMlRQX1YzPXkKK0NPTkZJR19MMlRQX0lQPW0KK0NPTkZJR19M MlRQX0VUSD1tCitDT05GSUdfU1RQPW0KK0NPTkZJR19HQVJQPW0KK0NPTkZJR19NUlA9bQorQ09O RklHX0JSSURHRT1tCitDT05GSUdfQlJJREdFX0lHTVBfU05PT1BJTkc9eQorQ09ORklHX0JSSURH RV9WTEFOX0ZJTFRFUklORz15CitDT05GSUdfQlJJREdFX01SUD15CisjIENPTkZJR19CUklER0Vf Q0ZNIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRFNBPW0KK0NPTkZJR19ORVRfRFNBX1RBR19BUjkz MzE9bQorQ09ORklHX05FVF9EU0FfVEFHX0JSQ01fQ09NTU9OPW0KK0NPTkZJR19ORVRfRFNBX1RB R19CUkNNPW0KK0NPTkZJR19ORVRfRFNBX1RBR19CUkNNX0xFR0FDWT1tCitDT05GSUdfTkVUX0RT QV9UQUdfQlJDTV9QUkVQRU5EPW0KK0NPTkZJR19ORVRfRFNBX1RBR19IRUxMQ1JFRUs9bQorQ09O RklHX05FVF9EU0FfVEFHX0dTV0lQPW0KK0NPTkZJR19ORVRfRFNBX1RBR19EU0FfQ09NTU9OPW0K K0NPTkZJR19ORVRfRFNBX1RBR19EU0E9bQorQ09ORklHX05FVF9EU0FfVEFHX0VEU0E9bQorQ09O RklHX05FVF9EU0FfVEFHX01USz1tCitDT05GSUdfTkVUX0RTQV9UQUdfS1NaPW0KK0NPTkZJR19O RVRfRFNBX1RBR19PQ0VMT1Q9bQorQ09ORklHX05FVF9EU0FfVEFHX09DRUxPVF84MDIxUT1tCitD T05GSUdfTkVUX0RTQV9UQUdfUUNBPW0KK0NPTkZJR19ORVRfRFNBX1RBR19SVEw0X0E9bQorQ09O RklHX05FVF9EU0FfVEFHX1JUTDhfND1tCisjIENPTkZJR19ORVRfRFNBX1RBR19SWk4xX0E1UFNX IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRFNBX1RBR19MQU45MzAzPW0KK0NPTkZJR19ORVRfRFNB X1RBR19TSkExMTA1PW0KK0NPTkZJR19ORVRfRFNBX1RBR19UUkFJTEVSPW0KK0NPTkZJR19ORVRf RFNBX1RBR19YUlM3MDBYPW0KK0NPTkZJR19WTEFOXzgwMjFRPW0KK0NPTkZJR19WTEFOXzgwMjFR X0dWUlA9eQorQ09ORklHX1ZMQU5fODAyMVFfTVZSUD15CitDT05GSUdfTExDPW0KK0NPTkZJR19M TEMyPW0KK0NPTkZJR19BVEFMSz1tCitDT05GSUdfREVWX0FQUExFVEFMSz1tCitDT05GSUdfSVBE RFA9bQorQ09ORklHX0lQRERQX0VOQ0FQPXkKK0NPTkZJR19YMjU9bQorQ09ORklHX0xBUEI9bQor Q09ORklHX1BIT05FVD1tCitDT05GSUdfNkxPV1BBTj1tCisjIENPTkZJR182TE9XUEFOX0RFQlVH RlMgaXMgbm90IHNldAorQ09ORklHXzZMT1dQQU5fTkhDPW0KK0NPTkZJR182TE9XUEFOX05IQ19E RVNUPW0KK0NPTkZJR182TE9XUEFOX05IQ19GUkFHTUVOVD1tCitDT05GSUdfNkxPV1BBTl9OSENf SE9QPW0KK0NPTkZJR182TE9XUEFOX05IQ19JUFY2PW0KK0NPTkZJR182TE9XUEFOX05IQ19NT0JJ TElUWT1tCitDT05GSUdfNkxPV1BBTl9OSENfUk9VVElORz1tCitDT05GSUdfNkxPV1BBTl9OSENf VURQPW0KK0NPTkZJR182TE9XUEFOX0dIQ19FWFRfSERSX0hPUD1tCitDT05GSUdfNkxPV1BBTl9H SENfVURQPW0KK0NPTkZJR182TE9XUEFOX0dIQ19JQ01QVjY9bQorQ09ORklHXzZMT1dQQU5fR0hD X0VYVF9IRFJfREVTVD1tCitDT05GSUdfNkxPV1BBTl9HSENfRVhUX0hEUl9GUkFHPW0KK0NPTkZJ R182TE9XUEFOX0dIQ19FWFRfSERSX1JPVVRFPW0KK0NPTkZJR19JRUVFODAyMTU0PW0KK0NPTkZJ R19JRUVFODAyMTU0X05MODAyMTU0X0VYUEVSSU1FTlRBTD15CitDT05GSUdfSUVFRTgwMjE1NF9T T0NLRVQ9bQorQ09ORklHX0lFRUU4MDIxNTRfNkxPV1BBTj1tCitDT05GSUdfTUFDODAyMTU0PW0K K0NPTkZJR19ORVRfU0NIRUQ9eQorCisjCisjIFF1ZXVlaW5nL1NjaGVkdWxpbmcKKyMKK0NPTkZJ R19ORVRfU0NIX0NCUT1tCitDT05GSUdfTkVUX1NDSF9IVEI9bQorQ09ORklHX05FVF9TQ0hfSEZT Qz1tCitDT05GSUdfTkVUX1NDSF9BVE09bQorQ09ORklHX05FVF9TQ0hfUFJJTz1tCitDT05GSUdf TkVUX1NDSF9NVUxUSVE9bQorQ09ORklHX05FVF9TQ0hfUkVEPW0KK0NPTkZJR19ORVRfU0NIX1NG Qj1tCitDT05GSUdfTkVUX1NDSF9TRlE9bQorQ09ORklHX05FVF9TQ0hfVEVRTD1tCitDT05GSUdf TkVUX1NDSF9UQkY9bQorQ09ORklHX05FVF9TQ0hfQ0JTPW0KK0NPTkZJR19ORVRfU0NIX0VURj1t CitDT05GSUdfTkVUX1NDSF9UQVBSSU89bQorQ09ORklHX05FVF9TQ0hfR1JFRD1tCitDT05GSUdf TkVUX1NDSF9EU01BUks9bQorQ09ORklHX05FVF9TQ0hfTkVURU09bQorQ09ORklHX05FVF9TQ0hf RFJSPW0KK0NPTkZJR19ORVRfU0NIX01RUFJJTz1tCitDT05GSUdfTkVUX1NDSF9TS0JQUklPPW0K K0NPTkZJR19ORVRfU0NIX0NIT0tFPW0KK0NPTkZJR19ORVRfU0NIX1FGUT1tCitDT05GSUdfTkVU X1NDSF9DT0RFTD1tCitDT05GSUdfTkVUX1NDSF9GUV9DT0RFTD1tCitDT05GSUdfTkVUX1NDSF9D QUtFPW0KK0NPTkZJR19ORVRfU0NIX0ZRPW0KK0NPTkZJR19ORVRfU0NIX0hIRj1tCitDT05GSUdf TkVUX1NDSF9QSUU9bQorQ09ORklHX05FVF9TQ0hfRlFfUElFPW0KK0NPTkZJR19ORVRfU0NIX0lO R1JFU1M9bQorQ09ORklHX05FVF9TQ0hfUExVRz1tCitDT05GSUdfTkVUX1NDSF9FVFM9bQorIyBD T05GSUdfTkVUX1NDSF9ERUZBVUxUIGlzIG5vdCBzZXQKKworIworIyBDbGFzc2lmaWNhdGlvbgor IworQ09ORklHX05FVF9DTFM9eQorQ09ORklHX05FVF9DTFNfQkFTSUM9bQorQ09ORklHX05FVF9D TFNfVENJTkRFWD1tCitDT05GSUdfTkVUX0NMU19ST1VURTQ9bQorQ09ORklHX05FVF9DTFNfRlc9 bQorQ09ORklHX05FVF9DTFNfVTMyPW0KK0NPTkZJR19DTFNfVTMyX1BFUkY9eQorQ09ORklHX0NM U19VMzJfTUFSSz15CitDT05GSUdfTkVUX0NMU19SU1ZQPW0KK0NPTkZJR19ORVRfQ0xTX1JTVlA2 PW0KK0NPTkZJR19ORVRfQ0xTX0ZMT1c9bQorQ09ORklHX05FVF9DTFNfQ0dST1VQPW0KK0NPTkZJ R19ORVRfQ0xTX0JQRj1tCitDT05GSUdfTkVUX0NMU19GTE9XRVI9bQorQ09ORklHX05FVF9DTFNf TUFUQ0hBTEw9bQorQ09ORklHX05FVF9FTUFUQ0g9eQorQ09ORklHX05FVF9FTUFUQ0hfU1RBQ0s9 MzIKK0NPTkZJR19ORVRfRU1BVENIX0NNUD1tCitDT05GSUdfTkVUX0VNQVRDSF9OQllURT1tCitD T05GSUdfTkVUX0VNQVRDSF9VMzI9bQorQ09ORklHX05FVF9FTUFUQ0hfTUVUQT1tCitDT05GSUdf TkVUX0VNQVRDSF9URVhUPW0KK0NPTkZJR19ORVRfRU1BVENIX0NBTklEPW0KK0NPTkZJR19ORVRf RU1BVENIX0lQU0VUPW0KK0NPTkZJR19ORVRfRU1BVENIX0lQVD1tCitDT05GSUdfTkVUX0NMU19B Q1Q9eQorQ09ORklHX05FVF9BQ1RfUE9MSUNFPW0KK0NPTkZJR19ORVRfQUNUX0dBQ1Q9bQorQ09O RklHX0dBQ1RfUFJPQj15CitDT05GSUdfTkVUX0FDVF9NSVJSRUQ9bQorQ09ORklHX05FVF9BQ1Rf U0FNUExFPW0KK0NPTkZJR19ORVRfQUNUX0lQVD1tCitDT05GSUdfTkVUX0FDVF9OQVQ9bQorQ09O RklHX05FVF9BQ1RfUEVESVQ9bQorQ09ORklHX05FVF9BQ1RfU0lNUD1tCitDT05GSUdfTkVUX0FD VF9TS0JFRElUPW0KK0NPTkZJR19ORVRfQUNUX0NTVU09bQorQ09ORklHX05FVF9BQ1RfTVBMUz1t CitDT05GSUdfTkVUX0FDVF9WTEFOPW0KK0NPTkZJR19ORVRfQUNUX0JQRj1tCitDT05GSUdfTkVU X0FDVF9DT05OTUFSSz1tCitDT05GSUdfTkVUX0FDVF9DVElORk89bQorQ09ORklHX05FVF9BQ1Rf U0tCTU9EPW0KK0NPTkZJR19ORVRfQUNUX0lGRT1tCitDT05GSUdfTkVUX0FDVF9UVU5ORUxfS0VZ PW0KK0NPTkZJR19ORVRfQUNUX0NUPW0KK0NPTkZJR19ORVRfQUNUX0dBVEU9bQorQ09ORklHX05F VF9JRkVfU0tCTUFSSz1tCitDT05GSUdfTkVUX0lGRV9TS0JQUklPPW0KK0NPTkZJR19ORVRfSUZF X1NLQlRDSU5ERVg9bQorQ09ORklHX05FVF9UQ19TS0JfRVhUPXkKK0NPTkZJR19ORVRfU0NIX0ZJ Rk89eQorQ09ORklHX0RDQj15CitDT05GSUdfRE5TX1JFU09MVkVSPW0KK0NPTkZJR19CQVRNQU5f QURWPW0KK0NPTkZJR19CQVRNQU5fQURWX0JBVE1BTl9WPXkKK0NPTkZJR19CQVRNQU5fQURWX0JM QT15CitDT05GSUdfQkFUTUFOX0FEVl9EQVQ9eQorQ09ORklHX0JBVE1BTl9BRFZfTkM9eQorQ09O RklHX0JBVE1BTl9BRFZfTUNBU1Q9eQorQ09ORklHX0JBVE1BTl9BRFZfREVCVUc9eQorIyBDT05G SUdfQkFUTUFOX0FEVl9UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19PUEVOVlNXSVRDSD1tCitD T05GSUdfT1BFTlZTV0lUQ0hfR1JFPW0KK0NPTkZJR19PUEVOVlNXSVRDSF9WWExBTj1tCitDT05G SUdfT1BFTlZTV0lUQ0hfR0VORVZFPW0KK0NPTkZJR19WU09DS0VUUz1tCitDT05GSUdfVlNPQ0tF VFNfRElBRz1tCitDT05GSUdfVlNPQ0tFVFNfTE9PUEJBQ0s9bQorQ09ORklHX1ZJUlRJT19WU09D S0VUUz1tCitDT05GSUdfVklSVElPX1ZTT0NLRVRTX0NPTU1PTj1tCitDT05GSUdfTkVUTElOS19E SUFHPW0KK0NPTkZJR19NUExTPXkKK0NPTkZJR19ORVRfTVBMU19HU089bQorQ09ORklHX01QTFNf Uk9VVElORz1tCitDT05GSUdfTVBMU19JUFRVTk5FTD1tCitDT05GSUdfTkVUX05TSD1tCitDT05G SUdfSFNSPW0KK0NPTkZJR19ORVRfU1dJVENIREVWPXkKK0NPTkZJR19ORVRfTDNfTUFTVEVSX0RF Vj15CitDT05GSUdfUVJUUj1tCitDT05GSUdfUVJUUl9TTUQ9bQorQ09ORklHX1FSVFJfVFVOPW0K K0NPTkZJR19RUlRSX01IST1tCitDT05GSUdfTkVUX05DU0k9eQorQ09ORklHX05DU0lfT0VNX0NN RF9HRVRfTUFDPXkKKyMgQ09ORklHX05DU0lfT0VNX0NNRF9LRUVQX1BIWSBpcyBub3Qgc2V0CitD T05GSUdfUENQVV9ERVZfUkVGQ05UPXkKK0NPTkZJR19SUFM9eQorQ09ORklHX1JGU19BQ0NFTD15 CitDT05GSUdfU09DS19SWF9RVUVVRV9NQVBQSU5HPXkKK0NPTkZJR19YUFM9eQorQ09ORklHX0NH Uk9VUF9ORVRfUFJJTz15CitDT05GSUdfQ0dST1VQX05FVF9DTEFTU0lEPXkKK0NPTkZJR19ORVRf UlhfQlVTWV9QT0xMPXkKK0NPTkZJR19CUUw9eQorQ09ORklHX0JQRl9TVFJFQU1fUEFSU0VSPXkK K0NPTkZJR19ORVRfRkxPV19MSU1JVD15CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05G SUdfTkVUX1BLVEdFTj1tCitDT05GSUdfTkVUX0RST1BfTU9OSVRPUj15CisjIGVuZCBvZiBOZXR3 b3JrIHRlc3RpbmcKKyMgZW5kIG9mIE5ldHdvcmtpbmcgb3B0aW9ucworCitDT05GSUdfSEFNUkFE SU89eQorCisjCisjIFBhY2tldCBSYWRpbyBwcm90b2NvbHMKKyMKK0NPTkZJR19BWDI1PW0KK0NP TkZJR19BWDI1X0RBTUFfU0xBVkU9eQorQ09ORklHX05FVFJPTT1tCitDT05GSUdfUk9TRT1tCisK KyMKKyMgQVguMjUgbmV0d29yayBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01LSVNTPW0KK0NP TkZJR182UEFDSz1tCitDT05GSUdfQlBRRVRIRVI9bQorQ09ORklHX0JBWUNPTV9TRVJfRkRYPW0K K0NPTkZJR19CQVlDT01fU0VSX0hEWD1tCitDT05GSUdfQkFZQ09NX1BBUj1tCitDT05GSUdfWUFN PW0KKyMgZW5kIG9mIEFYLjI1IG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX0NBTj1t CitDT05GSUdfQ0FOX1JBVz1tCitDT05GSUdfQ0FOX0JDTT1tCitDT05GSUdfQ0FOX0dXPW0KK0NP TkZJR19DQU5fSjE5Mzk9bQorQ09ORklHX0NBTl9JU09UUD1tCitDT05GSUdfQlQ9bQorQ09ORklH X0JUX0JSRURSPXkKK0NPTkZJR19CVF9SRkNPTU09bQorQ09ORklHX0JUX1JGQ09NTV9UVFk9eQor Q09ORklHX0JUX0JORVA9bQorQ09ORklHX0JUX0JORVBfTUNfRklMVEVSPXkKK0NPTkZJR19CVF9C TkVQX1BST1RPX0ZJTFRFUj15CitDT05GSUdfQlRfSElEUD1tCitDT05GSUdfQlRfSFM9eQorQ09O RklHX0JUX0xFPXkKK0NPTkZJR19CVF82TE9XUEFOPW0KK0NPTkZJR19CVF9MRURTPXkKK0NPTkZJ R19CVF9NU0ZURVhUPXkKK0NPTkZJR19CVF9BT1NQRVhUPXkKKyMgQ09ORklHX0JUX0RFQlVHRlMg aXMgbm90IHNldAorIyBDT05GSUdfQlRfU0VMRlRFU1QgaXMgbm90IHNldAorCisjCisjIEJsdWV0 b290aCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX0JUX0lOVEVMPW0KK0NPTkZJR19CVF9CQ009 bQorQ09ORklHX0JUX1JUTD1tCitDT05GSUdfQlRfUUNBPW0KK0NPTkZJR19CVF9NVEs9bQorQ09O RklHX0JUX0hDSUJUVVNCPW0KK0NPTkZJR19CVF9IQ0lCVFVTQl9BVVRPU1VTUEVORD15CitDT05G SUdfQlRfSENJQlRVU0JfQkNNPXkKK0NPTkZJR19CVF9IQ0lCVFVTQl9NVEs9eQorQ09ORklHX0JU X0hDSUJUVVNCX1JUTD15CitDT05GSUdfQlRfSENJQlRTRElPPW0KK0NPTkZJR19CVF9IQ0lVQVJU PW0KK0NPTkZJR19CVF9IQ0lVQVJUX1NFUkRFVj15CitDT05GSUdfQlRfSENJVUFSVF9IND15CitD T05GSUdfQlRfSENJVUFSVF9OT0tJQT1tCitDT05GSUdfQlRfSENJVUFSVF9CQ1NQPXkKK0NPTkZJ R19CVF9IQ0lVQVJUX0FUSDNLPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0xMPXkKK0NPTkZJR19CVF9I Q0lVQVJUXzNXSVJFPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0lOVEVMPXkKK0NPTkZJR19CVF9IQ0lV QVJUX0JDTT15CitDT05GSUdfQlRfSENJVUFSVF9SVEw9eQorQ09ORklHX0JUX0hDSVVBUlRfUUNB PXkKK0NPTkZJR19CVF9IQ0lVQVJUX0FHNlhYPXkKK0NPTkZJR19CVF9IQ0lVQVJUX01SVkw9eQor Q09ORklHX0JUX0hDSUJDTTIwM1g9bQorQ09ORklHX0JUX0hDSUJQQTEwWD1tCitDT05GSUdfQlRf SENJQkZVU0I9bQorQ09ORklHX0JUX0hDSURUTDE9bQorQ09ORklHX0JUX0hDSUJUM0M9bQorQ09O RklHX0JUX0hDSUJMVUVDQVJEPW0KK0NPTkZJR19CVF9IQ0lWSENJPW0KK0NPTkZJR19CVF9NUlZM PW0KK0NPTkZJR19CVF9NUlZMX1NESU89bQorQ09ORklHX0JUX0FUSDNLPW0KK0NPTkZJR19CVF9N VEtTRElPPW0KK0NPTkZJR19CVF9NVEtVQVJUPW0KK0NPTkZJR19CVF9IQ0lSU0k9bQorQ09ORklH X0JUX1ZJUlRJTz1tCisjIGVuZCBvZiBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKworQ09ORklH X0FGX1JYUlBDPW0KK0NPTkZJR19BRl9SWFJQQ19JUFY2PXkKKyMgQ09ORklHX0FGX1JYUlBDX0lO SkVDVF9MT1NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDX0RFQlVHIGlzIG5vdCBzZXQK K0NPTkZJR19SWEtBRD15CitDT05GSUdfQUZfS0NNPW0KK0NPTkZJR19TVFJFQU1fUEFSU0VSPXkK K0NPTkZJR19NQ1RQPXkKK0NPTkZJR19NQ1RQX0ZMT1dTPXkKK0NPTkZJR19GSUJfUlVMRVM9eQor Q09ORklHX1dJUkVMRVNTPXkKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX1dFWFRfQ09S RT15CitDT05GSUdfV0VYVF9QUk9DPXkKK0NPTkZJR19XRVhUX1NQWT15CitDT05GSUdfV0VYVF9Q UklWPXkKK0NPTkZJR19DRkc4MDIxMT1tCisjIENPTkZJR19OTDgwMjExX1RFU1RNT0RFIGlzIG5v dCBzZXQKKyMgQ09ORklHX0NGRzgwMjExX0RFVkVMT1BFUl9XQVJOSU5HUyBpcyBub3Qgc2V0Cisj IENPTkZJR19DRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVMgaXMgbm90IHNldAorQ09ORklHX0NG RzgwMjExX1JFUVVJUkVfU0lHTkVEX1JFR0RCPXkKK0NPTkZJR19DRkc4MDIxMV9VU0VfS0VSTkVM X1JFR0RCX0tFWVM9eQorQ09ORklHX0NGRzgwMjExX0RFRkFVTFRfUFM9eQorIyBDT05GSUdfQ0ZH ODAyMTFfREVCVUdGUyBpcyBub3Qgc2V0CitDT05GSUdfQ0ZHODAyMTFfQ1JEQV9TVVBQT1JUPXkK K0NPTkZJR19DRkc4MDIxMV9XRVhUPXkKK0NPTkZJR19DRkc4MDIxMV9XRVhUX0VYUE9SVD15CitD T05GSUdfTElCODAyMTE9bQorQ09ORklHX0xJQjgwMjExX0NSWVBUX1dFUD1tCitDT05GSUdfTElC ODAyMTFfQ1JZUFRfQ0NNUD1tCitDT05GSUdfTElCODAyMTFfQ1JZUFRfVEtJUD1tCisjIENPTkZJ R19MSUI4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTUFDODAyMTE9bQorQ09ORklHX01B QzgwMjExX0hBU19SQz15CitDT05GSUdfTUFDODAyMTFfUkNfTUlOU1RSRUw9eQorQ09ORklHX01B QzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUw9eQorQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ9 Im1pbnN0cmVsX2h0IgorQ09ORklHX01BQzgwMjExX01FU0g9eQorQ09ORklHX01BQzgwMjExX0xF RFM9eQorQ09ORklHX01BQzgwMjExX0RFQlVHRlM9eQorIyBDT05GSUdfTUFDODAyMTFfTUVTU0FH RV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHX01FTlUgaXMgbm90 IHNldAorQ09ORklHX01BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFPTAKK0NPTkZJR19SRktJTEw9 bQorQ09ORklHX1JGS0lMTF9MRURTPXkKK0NPTkZJR19SRktJTExfSU5QVVQ9eQorQ09ORklHX1JG S0lMTF9HUElPPW0KK0NPTkZJR19ORVRfOVA9bQorQ09ORklHX05FVF85UF9GRD1tCitDT05GSUdf TkVUXzlQX1ZJUlRJTz1tCitDT05GSUdfTkVUXzlQX1JETUE9bQorIyBDT05GSUdfTkVUXzlQX0RF QlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DQUlGPW0KKyMgQ09ORklHX0NBSUZfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX0NBSUZfTkVUREVWPW0KK0NPTkZJR19DQUlGX1VTQj1tCitDT05GSUdfQ0VQ SF9MSUI9bQorQ09ORklHX0NFUEhfTElCX1BSRVRUWURFQlVHPXkKKyMgQ09ORklHX0NFUEhfTElC X1VTRV9ETlNfUkVTT0xWRVIgaXMgbm90IHNldAorQ09ORklHX05GQz1tCitDT05GSUdfTkZDX0RJ R0lUQUw9bQorQ09ORklHX05GQ19OQ0k9bQorIyBDT05GSUdfTkZDX05DSV9TUEkgaXMgbm90IHNl dAorQ09ORklHX05GQ19OQ0lfVUFSVD1tCitDT05GSUdfTkZDX0hDST1tCitDT05GSUdfTkZDX1NI RExDPXkKKworIworIyBOZWFyIEZpZWxkIENvbW11bmljYXRpb24gKE5GQykgZGV2aWNlcworIwor IyBDT05GSUdfTkZDX1RSRjc5NzBBIGlzIG5vdCBzZXQKK0NPTkZJR19ORkNfU0lNPW0KK0NPTkZJ R19ORkNfUE9SVDEwMD1tCitDT05GSUdfTkZDX1ZJUlRVQUxfTkNJPW0KKyMgQ09ORklHX05GQ19G RFAgaXMgbm90IHNldAorQ09ORklHX05GQ19QTjU0ND1tCitDT05GSUdfTkZDX1BONTQ0X0kyQz1t CitDT05GSUdfTkZDX1BONTMzPW0KK0NPTkZJR19ORkNfUE41MzNfVVNCPW0KK0NPTkZJR19ORkNf UE41MzNfSTJDPW0KK0NPTkZJR19ORkNfUE41MzJfVUFSVD1tCitDT05GSUdfTkZDX01JQ1JPUkVB RD1tCitDT05GSUdfTkZDX01JQ1JPUkVBRF9JMkM9bQorQ09ORklHX05GQ19NUlZMPW0KK0NPTkZJ R19ORkNfTVJWTF9VU0I9bQorQ09ORklHX05GQ19NUlZMX1VBUlQ9bQorQ09ORklHX05GQ19NUlZM X0kyQz1tCitDT05GSUdfTkZDX1NUMjFORkNBPW0KK0NPTkZJR19ORkNfU1QyMU5GQ0FfSTJDPW0K K0NPTkZJR19ORkNfU1RfTkNJPW0KK0NPTkZJR19ORkNfU1RfTkNJX0kyQz1tCitDT05GSUdfTkZD X1NUX05DSV9TUEk9bQorQ09ORklHX05GQ19OWFBfTkNJPW0KK0NPTkZJR19ORkNfTlhQX05DSV9J MkM9bQorQ09ORklHX05GQ19TM0ZXUk41PW0KK0NPTkZJR19ORkNfUzNGV1JONV9JMkM9bQorQ09O RklHX05GQ19TM0ZXUk44Ml9VQVJUPW0KK0NPTkZJR19ORkNfU1Q5NUhGPW0KKyMgZW5kIG9mIE5l YXIgRmllbGQgQ29tbXVuaWNhdGlvbiAoTkZDKSBkZXZpY2VzCisKK0NPTkZJR19QU0FNUExFPW0K K0NPTkZJR19ORVRfSUZFPW0KK0NPTkZJR19MV1RVTk5FTD15CitDT05GSUdfTFdUVU5ORUxfQlBG PXkKK0NPTkZJR19EU1RfQ0FDSEU9eQorQ09ORklHX0dST19DRUxMUz15CitDT05GSUdfU09DS19W QUxJREFURV9YTUlUPXkKK0NPTkZJR19ORVRfU0VMRlRFU1RTPXkKK0NPTkZJR19ORVRfU09DS19N U0c9eQorQ09ORklHX05FVF9ERVZMSU5LPXkKK0NPTkZJR19QQUdFX1BPT0w9eQorQ09ORklHX1BB R0VfUE9PTF9TVEFUUz15CitDT05GSUdfRkFJTE9WRVI9bQorQ09ORklHX0VUSFRPT0xfTkVUTElO Sz15CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19IQVZFX1BDST15CitDT05GSUdf UENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CitDT05GSUdfUENJX0RPTUFJTlNfR0VORVJJQz15 CitDT05GSUdfUENJRVBPUlRCVVM9eQorQ09ORklHX0hPVFBMVUdfUENJX1BDSUU9eQorQ09ORklH X1BDSUVBRVI9eQorQ09ORklHX1BDSUVBRVJfSU5KRUNUPW0KKyMgQ09ORklHX1BDSUVfRUNSQyBp cyBub3Qgc2V0CitDT05GSUdfUENJRUFTUE09eQorQ09ORklHX1BDSUVBU1BNX0RFRkFVTFQ9eQor IyBDT05GSUdfUENJRUFTUE1fUE9XRVJTQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSUVBU1BN X1BPV0VSX1NVUEVSU0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0lFQVNQTV9QRVJGT1JNQU5D RSBpcyBub3Qgc2V0CitDT05GSUdfUENJRV9QTUU9eQorQ09ORklHX1BDSUVfRFBDPXkKK0NPTkZJ R19QQ0lFX1BUTT15CitDT05GSUdfUENJX01TST15CitDT05GSUdfUENJX01TSV9JUlFfRE9NQUlO PXkKK0NPTkZJR19QQ0lfUVVJUktTPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0Cisj IENPTkZJR19QQ0lfUkVBTExPQ19FTkFCTEVfQVVUTyBpcyBub3Qgc2V0CitDT05GSUdfUENJX1NU VUI9eQorQ09ORklHX1BDSV9QRl9TVFVCPW0KK0NPTkZJR19QQ0lfQVRTPXkKK0NPTkZJR19QQ0lf RE9FPXkKK0NPTkZJR19QQ0lfRUNBTT15CitDT05GSUdfUENJX0lPVj15CitDT05GSUdfUENJX1BS ST15CitDT05GSUdfUENJX1BBU0lEPXkKKyMgQ09ORklHX1BDSUVfQlVTX1RVTkVfT0ZGIGlzIG5v dCBzZXQKK0NPTkZJR19QQ0lFX0JVU19ERUZBVUxUPXkKKyMgQ09ORklHX1BDSUVfQlVTX1NBRkUg aXMgbm90IHNldAorIyBDT05GSUdfUENJRV9CVVNfUEVSRk9STUFOQ0UgaXMgbm90IHNldAorIyBD T05GSUdfUENJRV9CVVNfUEVFUjJQRUVSIGlzIG5vdCBzZXQKK0NPTkZJR19WR0FfQVJCPXkKK0NP TkZJR19WR0FfQVJCX01BWF9HUFVTPTE2CitDT05GSUdfSE9UUExVR19QQ0k9eQorQ09ORklHX0hP VFBMVUdfUENJX0NQQ0k9eQorQ09ORklHX0hPVFBMVUdfUENJX1NIUEM9eQorCisjCisjIFBDSSBj b250cm9sbGVyIGRyaXZlcnMKKyMKK0NPTkZJR19QQ0lfRlRQQ0kxMDA9eQorQ09ORklHX1BDSV9I T1NUX0NPTU1PTj15CitDT05GSUdfUENJX0hPU1RfR0VORVJJQz15CitDT05GSUdfUENJRV9YSUxJ Tlg9eQorQ09ORklHX1BDSUVfTUlDUk9DSElQX0hPU1Q9eQorCisjCisjIERlc2lnbldhcmUgUENJ IENvcmUgU3VwcG9ydAorIworQ09ORklHX1BDSUVfRFc9eQorQ09ORklHX1BDSUVfRFdfSE9TVD15 CitDT05GSUdfUENJRV9EV19FUD15CitDT05GSUdfUENJRV9EV19QTEFUPXkKK0NPTkZJR19QQ0lF X0RXX1BMQVRfSE9TVD15CitDT05GSUdfUENJRV9EV19QTEFUX0VQPXkKK0NPTkZJR19QQ0lfTUVT T049eQorQ09ORklHX1BDSUVfRlU3NDA9eQorIyBlbmQgb2YgRGVzaWduV2FyZSBQQ0kgQ29yZSBT dXBwb3J0CisKKyMKKyMgTW9iaXZlaWwgUENJZSBDb3JlIFN1cHBvcnQKKyMKKyMgZW5kIG9mIE1v Yml2ZWlsIFBDSWUgQ29yZSBTdXBwb3J0CisKKyMKKyMgQ2FkZW5jZSBQQ0llIGNvbnRyb2xsZXJz IHN1cHBvcnQKKyMKK0NPTkZJR19QQ0lFX0NBREVOQ0U9eQorQ09ORklHX1BDSUVfQ0FERU5DRV9I T1NUPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfRVA9eQorQ09ORklHX1BDSUVfQ0FERU5DRV9QTEFU PXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfUExBVF9IT1NUPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0Vf UExBVF9FUD15CitDT05GSUdfUENJX0o3MjFFPXkKK0NPTkZJR19QQ0lfSjcyMUVfSE9TVD15CitD T05GSUdfUENJX0o3MjFFX0VQPXkKKyMgZW5kIG9mIENhZGVuY2UgUENJZSBjb250cm9sbGVycyBz dXBwb3J0CisjIGVuZCBvZiBQQ0kgY29udHJvbGxlciBkcml2ZXJzCisKKyMKKyMgUENJIEVuZHBv aW50CisjCitDT05GSUdfUENJX0VORFBPSU5UPXkKK0NPTkZJR19QQ0lfRU5EUE9JTlRfQ09ORklH RlM9eQorQ09ORklHX1BDSV9FUEZfVEVTVD1tCitDT05GSUdfUENJX0VQRl9OVEI9bQorQ09ORklH X1BDSV9FUEZfVk5UQj1tCisjIGVuZCBvZiBQQ0kgRW5kcG9pbnQKKworIworIyBQQ0kgc3dpdGNo IGNvbnRyb2xsZXIgZHJpdmVycworIworQ09ORklHX1BDSV9TV19TV0lUQ0hURUM9bQorIyBlbmQg b2YgUENJIHN3aXRjaCBjb250cm9sbGVyIGRyaXZlcnMKKworQ09ORklHX0NYTF9CVVM9bQorQ09O RklHX0NYTF9QQ0k9bQorIyBDT05GSUdfQ1hMX01FTV9SQVdfQ09NTUFORFMgaXMgbm90IHNldAor Q09ORklHX0NYTF9QTUVNPW0KK0NPTkZJR19DWExfTUVNPW0KK0NPTkZJR19DWExfUE9SVD1tCitD T05GSUdfQ1hMX1JFR0lPTj15CitDT05GSUdfUENDQVJEPW0KK0NPTkZJR19QQ01DSUE9bQorQ09O RklHX1BDTUNJQV9MT0FEX0NJUz15CitDT05GSUdfQ0FSREJVUz15CisKKyMKKyMgUEMtY2FyZCBi cmlkZ2VzCisjCitDT05GSUdfWUVOVEE9bQorQ09ORklHX1lFTlRBX08yPXkKK0NPTkZJR19ZRU5U QV9SSUNPSD15CitDT05GSUdfWUVOVEFfVEk9eQorQ09ORklHX1lFTlRBX0VORV9UVU5FPXkKK0NP TkZJR19ZRU5UQV9UT1NISUJBPXkKK0NPTkZJR19QRDY3Mjk9bQorQ09ORklHX0k4MjA5Mj1tCitD T05GSUdfUENDQVJEX05PTlNUQVRJQz15CitDT05GSUdfUkFQSURJTz1tCitDT05GSUdfUkFQSURJ T19UU0k3MjE9bQorQ09ORklHX1JBUElESU9fRElTQ19USU1FT1VUPTMwCisjIENPTkZJR19SQVBJ RElPX0VOQUJMRV9SWF9UWF9QT1JUUyBpcyBub3Qgc2V0CitDT05GSUdfUkFQSURJT19ETUFfRU5H SU5FPXkKKyMgQ09ORklHX1JBUElESU9fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1JBUElESU9f RU5VTV9CQVNJQz1tCitDT05GSUdfUkFQSURJT19DSE1BTj1tCitDT05GSUdfUkFQSURJT19NUE9S VF9DREVWPW0KKworIworIyBSYXBpZElPIFN3aXRjaCBkcml2ZXJzCisjCitDT05GSUdfUkFQSURJ T19DUFNfWFg9bQorQ09ORklHX1JBUElESU9fQ1BTX0dFTjI9bQorQ09ORklHX1JBUElESU9fUlhT X0dFTjM9bQorIyBlbmQgb2YgUmFwaWRJTyBTd2l0Y2ggZHJpdmVycworCisjCisjIEdlbmVyaWMg RHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19BVVhJTElBUllfQlVTPXkKK0NPTkZJR19VRVZFTlRf SEVMUEVSPXkKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9IiIKK0NPTkZJR19ERVZUTVBGUz15 CitDT05GSUdfREVWVE1QRlNfTU9VTlQ9eQorQ09ORklHX0RFVlRNUEZTX1NBRkU9eQorIyBDT05G SUdfU1RBTkRBTE9ORSBpcyBub3Qgc2V0CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15 CisKKyMKKyMgRmlybXdhcmUgbG9hZGVyCisjCitDT05GSUdfRldfTE9BREVSPXkKK0NPTkZJR19G V19MT0FERVJfUEFHRURfQlVGPXkKK0NPTkZJR19GV19MT0FERVJfU1lTRlM9eQorQ09ORklHX0VY VFJBX0ZJUk1XQVJFPSIiCitDT05GSUdfRldfTE9BREVSX1VTRVJfSEVMUEVSPXkKKyMgQ09ORklH X0ZXX0xPQURFUl9VU0VSX0hFTFBFUl9GQUxMQkFDSyBpcyBub3Qgc2V0CitDT05GSUdfRldfTE9B REVSX0NPTVBSRVNTPXkKK0NPTkZJR19GV19MT0FERVJfQ09NUFJFU1NfWFo9eQorQ09ORklHX0ZX X0xPQURFUl9DT01QUkVTU19aU1REPXkKK0NPTkZJR19GV19VUExPQUQ9eQorIyBlbmQgb2YgRmly bXdhcmUgbG9hZGVyCisKK0NPTkZJR19XQU5UX0RFVl9DT1JFRFVNUD15CitDT05GSUdfQUxMT1df REVWX0NPUkVEVU1QPXkKK0NPTkZJR19ERVZfQ09SRURVTVA9eQorIyBDT05GSUdfREVCVUdfRFJJ VkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJ R19ERUJVR19URVNUX0RSSVZFUl9SRU1PVkUgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9BU1lO Q19EUklWRVJfUFJPQkUgaXMgbm90IHNldAorQ09ORklHX1JFR01BUD15CitDT05GSUdfUkVHTUFQ X0kyQz15CitDT05GSUdfUkVHTUFQX1NQST1tCitDT05GSUdfUkVHTUFQX1NQTUk9bQorQ09ORklH X1JFR01BUF9XMT1tCitDT05GSUdfUkVHTUFQX01NSU89eQorQ09ORklHX1JFR01BUF9JUlE9eQor Q09ORklHX1JFR01BUF9TT1VORFdJUkU9bQorQ09ORklHX1JFR01BUF9TT1VORFdJUkVfTUJRPW0K K0NPTkZJR19SRUdNQVBfU0NDQj1tCitDT05GSUdfUkVHTUFQX0kzQz1tCitDT05GSUdfUkVHTUFQ X1NQSV9BVk1NPW0KK0NPTkZJR19ETUFfU0hBUkVEX0JVRkZFUj15CisjIENPTkZJR19ETUFfRkVO Q0VfVFJBQ0UgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQVJDSF9UT1BPTE9HWT15CitDT05G SUdfR0VORVJJQ19BUkNIX05VTUE9eQorIyBlbmQgb2YgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwor CisjCisjIEJ1cyBkZXZpY2VzCisjCitDT05GSUdfTU9YVEVUPW0KK0NPTkZJR19NSElfQlVTPW0K KyMgQ09ORklHX01ISV9CVVNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX01ISV9CVVNfUENJX0dF TkVSSUM9bQorQ09ORklHX01ISV9CVVNfRVA9bQorIyBlbmQgb2YgQnVzIGRldmljZXMKKworQ09O RklHX0NPTk5FQ1RPUj15CitDT05GSUdfUFJPQ19FVkVOVFM9eQorCisjCisjIEZpcm13YXJlIERy aXZlcnMKKyMKKworIworIyBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJm YWNlIFByb3RvY29sCisjCisjIGVuZCBvZiBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1l bnQgSW50ZXJmYWNlIFByb3RvY29sCisKK0NPTkZJR19GSVJNV0FSRV9NRU1NQVA9eQorQ09ORklH X1NZU0ZCPXkKKyMgQ09ORklHX1NZU0ZCX1NJTVBMRUZCIGlzIG5vdCBzZXQKK0NPTkZJR19DU19E U1A9bQorIyBDT05GSUdfR09PR0xFX0ZJUk1XQVJFIGlzIG5vdCBzZXQKKworIworIyBFRkkgKEV4 dGVuc2libGUgRmlybXdhcmUgSW50ZXJmYWNlKSBTdXBwb3J0CisjCitDT05GSUdfRUZJX0VTUlQ9 eQorQ09ORklHX0VGSV9WQVJTX1BTVE9SRT1tCisjIENPTkZJR19FRklfVkFSU19QU1RPUkVfREVG QVVMVF9ESVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfUEFSQU1TX0ZST01fRkRUPXkKK0NP TkZJR19FRklfUlVOVElNRV9XUkFQUEVSUz15CitDT05GSUdfRUZJX0dFTkVSSUNfU1RVQj15Cisj IENPTkZJR19FRklfWkJPT1QgaXMgbm90IHNldAorQ09ORklHX0VGSV9CT09UTE9BREVSX0NPTlRS T0w9bQorQ09ORklHX0VGSV9DQVBTVUxFX0xPQURFUj1tCisjIENPTkZJR19FRklfVEVTVCBpcyBu b3Qgc2V0CisjIENPTkZJR19SRVNFVF9BVFRBQ0tfTUlUSUdBVElPTiBpcyBub3Qgc2V0CisjIENP TkZJR19FRklfRElTQUJMRV9QQ0lfRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfRUFSTFlDT049 eQorIyBDT05GSUdfRUZJX0RJU0FCTEVfUlVOVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19FRklf Q09DT19TRUNSRVQgaXMgbm90IHNldAorIyBlbmQgb2YgRUZJIChFeHRlbnNpYmxlIEZpcm13YXJl IEludGVyZmFjZSkgU3VwcG9ydAorCisjCisjIFRlZ3JhIGZpcm13YXJlIGRyaXZlcgorIworIyBl bmQgb2YgVGVncmEgZmlybXdhcmUgZHJpdmVyCisjIGVuZCBvZiBGaXJtd2FyZSBEcml2ZXJzCisK K0NPTkZJR19HTlNTPW0KK0NPTkZJR19HTlNTX1NFUklBTD1tCitDT05GSUdfR05TU19NVEtfU0VS SUFMPW0KK0NPTkZJR19HTlNTX1NJUkZfU0VSSUFMPW0KK0NPTkZJR19HTlNTX1VCWF9TRVJJQUw9 bQorQ09ORklHX0dOU1NfVVNCPW0KK0NPTkZJR19NVEQ9bQorQ09ORklHX01URF9URVNUUz1tCisK KyMKKyMgUGFydGl0aW9uIHBhcnNlcnMKKyMKK0NPTkZJR19NVERfQVI3X1BBUlRTPW0KK0NPTkZJ R19NVERfQ01ETElORV9QQVJUUz1tCitDT05GSUdfTVREX09GX1BBUlRTPW0KK0NPTkZJR19NVERf UkVEQk9PVF9QQVJUUz1tCitDT05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0xCisj IENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJ R19NVERfUkVEQk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBQYXJ0aXRp b24gcGFyc2VycworCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisj CitDT05GSUdfTVREX0JMS0RFVlM9bQorQ09ORklHX01URF9CTE9DSz1tCitDT05GSUdfTVREX0JM T0NLX1JPPW0KKworIworIyBOb3RlIHRoYXQgaW4gc29tZSBjYXNlcyBVQkkgYmxvY2sgaXMgcHJl ZmVycmVkLiBTZWUgTVREX1VCSV9CTE9DSy4KKyMKK0NPTkZJR19GVEw9bQorQ09ORklHX05GVEw9 bQorQ09ORklHX05GVExfUlc9eQorQ09ORklHX0lORlRMPW0KK0NPTkZJR19SRkRfRlRMPW0KK0NP TkZJR19TU0ZEQz1tCisjIENPTkZJR19TTV9GVEwgaXMgbm90IHNldAorQ09ORklHX01URF9PT1BT PW0KKyMgQ09ORklHX01URF9QU1RPUkUgaXMgbm90IHNldAorQ09ORklHX01URF9TV0FQPW0KK0NP TkZJR19NVERfUEFSVElUSU9ORURfTUFTVEVSPXkKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAg ZHJpdmVycworIworQ09ORklHX01URF9DRkk9bQorQ09ORklHX01URF9KRURFQ1BST0JFPW0KK0NP TkZJR19NVERfR0VOX1BST0JFPW0KK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJ R19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qg c2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVRE X0NGSV9HRU9NRVRSWT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01U RF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CitDT05G SUdfTVREX01BUF9CQU5LX1dJRFRIXzg9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNj15 CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyPXkKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NP TkZJR19NVERfQ0ZJX0kyPXkKK0NPTkZJR19NVERfQ0ZJX0k0PXkKK0NPTkZJR19NVERfQ0ZJX0k4 PXkKK0NPTkZJR19NVERfT1RQPXkKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPW0KK0NPTkZJR19N VERfQ0ZJX0FNRFNURD1tCitDT05GSUdfTVREX0NGSV9TVEFBPW0KK0NPTkZJR19NVERfQ0ZJX1VU SUw9bQorQ09ORklHX01URF9SQU09bQorQ09ORklHX01URF9ST009bQorQ09ORklHX01URF9BQlNF TlQ9bQorIyBlbmQgb2YgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKworIworIyBNYXBwaW5n IGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCitDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1M9 eQorQ09ORklHX01URF9QSFlTTUFQPW0KKyMgQ09ORklHX01URF9QSFlTTUFQX0NPTVBBVCBpcyBu b3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVBfT0Y9eQorIyBDT05GSUdfTVREX1BIWVNNQVBfVkVS U0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFlTTUFQX0dFTUlOSSBpcyBub3Qgc2V0 CitDT05GSUdfTVREX1BIWVNNQVBfR1BJT19BRERSPXkKK0NPTkZJR19NVERfUENJPW0KK0NPTkZJ R19NVERfUENNQ0lBPW0KKyMgQ09ORklHX01URF9QQ01DSUFfQU5PTllNT1VTIGlzIG5vdCBzZXQK K0NPTkZJR19NVERfSU5URUxfVlJfTk9SPW0KK0NPTkZJR19NVERfUExBVFJBTT1tCisjIGVuZCBv ZiBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisKKyMKKyMgU2VsZi1jb250YWluZWQg TVREIGRldmljZSBkcml2ZXJzCisjCitDT05GSUdfTVREX1BNQzU1MT1tCitDT05GSUdfTVREX1BN QzU1MV9CVUdGSVg9eQorIyBDT05GSUdfTVREX1BNQzU1MV9ERUJVRyBpcyBub3Qgc2V0CisjIENP TkZJR19NVERfREFUQUZMQVNIIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUNIUDIzSzI1Nj1tCitD T05GSUdfTVREX01DSFA0OEw2NDA9bQorIyBDT05GSUdfTVREX1NTVDI1TCBpcyBub3Qgc2V0CitD T05GSUdfTVREX1NMUkFNPW0KK0NPTkZJR19NVERfUEhSQU09bQorQ09ORklHX01URF9NVERSQU09 bQorQ09ORklHX01URFJBTV9UT1RBTF9TSVpFPTQwOTYKK0NPTkZJR19NVERSQU1fRVJBU0VfU0la RT0xMjgKK0NPTkZJR19NVERfQkxPQ0syTVREPW0KKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNl IERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0NHMyBpcyBub3Qgc2V0CisjIGVuZCBvZiBTZWxm LWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKworIworIyBOQU5ECisjCitDT05GSUdfTVRE X05BTkRfQ09SRT1tCitDT05GSUdfTVREX09ORU5BTkQ9bQorQ09ORklHX01URF9PTkVOQU5EX1ZF UklGWV9XUklURT15CitDT05GSUdfTVREX09ORU5BTkRfR0VORVJJQz1tCitDT05GSUdfTVREX09O RU5BTkRfT1RQPXkKK0NPTkZJR19NVERfT05FTkFORF8yWF9QUk9HUkFNPXkKK0NPTkZJR19NVERf UkFXX05BTkQ9bQorCisjCisjIFJhdy9wYXJhbGxlbCBOQU5EIGZsYXNoIGNvbnRyb2xsZXJzCisj CitDT05GSUdfTVREX05BTkRfREVOQUxJPW0KKyMgQ09ORklHX01URF9OQU5EX0RFTkFMSV9QQ0kg aXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0RFTkFMSV9EVD1tCitDT05GSUdfTVREX05BTkRf Q0FGRT1tCitDT05GSUdfTVREX05BTkRfTVhJQz1tCitDT05GSUdfTVREX05BTkRfR1BJTz1tCitD T05GSUdfTVREX05BTkRfUExBVEZPUk09bQorQ09ORklHX01URF9OQU5EX0NBREVOQ0U9bQorQ09O RklHX01URF9OQU5EX0FSQVNBTj1tCitDT05GSUdfTVREX05BTkRfSU5URUxfTEdNPW0KKworIwor IyBNaXNjCisjCitDT05GSUdfTVREX1NNX0NPTU1PTj1tCitDT05GSUdfTVREX05BTkRfTkFORFNJ TT1tCitDT05GSUdfTVREX05BTkRfUklDT0g9bQorQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVA9 bQorQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVBfUFJPQkVfQURWQU5DRUQ9eQorQ09ORklHX01U RF9OQU5EX0RJU0tPTkNISVBfUFJPQkVfQUREUkVTUz0weDAKK0NPTkZJR19NVERfTkFORF9ESVNL T05DSElQX1BST0JFX0hJR0g9eQorQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVBfQkJUV1JJVEU9 eQorQ09ORklHX01URF9TUElfTkFORD1tCisKKyMKKyMgRUNDIGVuZ2luZSBzdXBwb3J0CisjCitD T05GSUdfTVREX05BTkRfRUNDPXkKK0NPTkZJR19NVERfTkFORF9FQ0NfU1dfSEFNTUlORz15Cisj IENPTkZJR19NVERfTkFORF9FQ0NfU1dfSEFNTUlOR19TTUMgaXMgbm90IHNldAorQ09ORklHX01U RF9OQU5EX0VDQ19TV19CQ0g9eQorQ09ORklHX01URF9OQU5EX0VDQ19NWElDPXkKKyMgZW5kIG9m IEVDQyBlbmdpbmUgc3VwcG9ydAorIyBlbmQgb2YgTkFORAorCisjCisjIExQRERSICYgTFBERFIy IFBDTSBtZW1vcnkgZHJpdmVycworIworQ09ORklHX01URF9MUEREUj1tCitDT05GSUdfTVREX1FJ TkZPX1BST0JFPW0KKyMgZW5kIG9mIExQRERSICYgTFBERFIyIFBDTSBtZW1vcnkgZHJpdmVycwor CitDT05GSUdfTVREX1NQSV9OT1I9bQorQ09ORklHX01URF9TUElfTk9SX1VTRV80S19TRUNUT1JT PXkKKyMgQ09ORklHX01URF9TUElfTk9SX1NXUF9ESVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19N VERfU1BJX05PUl9TV1BfRElTQUJMRV9PTl9WT0xBVElMRT15CisjIENPTkZJR19NVERfU1BJX05P Ul9TV1BfS0VFUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1VCST1tCitDT05GSUdfTVREX1VCSV9X TF9USFJFU0hPTEQ9NDA5NgorQ09ORklHX01URF9VQklfQkVCX0xJTUlUPTIwCisjIENPTkZJR19N VERfVUJJX0ZBU1RNQVAgaXMgbm90IHNldAorQ09ORklHX01URF9VQklfR0xVRUJJPW0KK0NPTkZJ R19NVERfVUJJX0JMT0NLPXkKK0NPTkZJR19NVERfSFlQRVJCVVM9bQorQ09ORklHX0RUQz15CitD T05GSUdfT0Y9eQorIyBDT05GSUdfT0ZfVU5JVFRFU1QgaXMgbm90IHNldAorQ09ORklHX09GX0ZM QVRUUkVFPXkKK0NPTkZJR19PRl9FQVJMWV9GTEFUVFJFRT15CitDT05GSUdfT0ZfS09CSj15CitD T05GSUdfT0ZfRFlOQU1JQz15CitDT05GSUdfT0ZfQUREUkVTUz15CitDT05GSUdfT0ZfSVJRPXkK K0NPTkZJR19PRl9SRVNFUlZFRF9NRU09eQorQ09ORklHX09GX1JFU09MVkU9eQorQ09ORklHX09G X09WRVJMQVk9eQorQ09ORklHX09GX05VTUE9eQorQ09ORklHX09GX0RNQV9ERUZBVUxUX0NPSEVS RU5UPXkKK0NPTkZJR19QQVJQT1JUPW0KKyMgQ09ORklHX1BBUlBPUlRfUEMgaXMgbm90IHNldAor Q09ORklHX1BBUlBPUlRfQVg4ODc5Nj1tCitDT05GSUdfUEFSUE9SVF8xMjg0PXkKK0NPTkZJR19Q QVJQT1JUX05PVF9QQz15CitDT05GSUdfQkxLX0RFVj15CitDT05GSUdfQkxLX0RFVl9OVUxMX0JM Sz1tCitDT05GSUdfQ0RST009bQorQ09ORklHX0JMS19ERVZfUENJRVNTRF9NVElQMzJYWD1tCitD T05GSUdfWlJBTT1tCitDT05GSUdfWlJBTV9ERUZfQ09NUF9MWk9STEU9eQorIyBDT05GSUdfWlJB TV9ERUZfQ09NUF9aU1REIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pSQU1fREVGX0NPTVBfTFo0IGlz IG5vdCBzZXQKKyMgQ09ORklHX1pSQU1fREVGX0NPTVBfTFpPIGlzIG5vdCBzZXQKKyMgQ09ORklH X1pSQU1fREVGX0NPTVBfTFo0SEMgaXMgbm90IHNldAorIyBDT05GSUdfWlJBTV9ERUZfQ09NUF84 NDIgaXMgbm90IHNldAorQ09ORklHX1pSQU1fREVGX0NPTVA9Imx6by1ybGUiCitDT05GSUdfWlJB TV9XUklURUJBQ0s9eQorIyBDT05GSUdfWlJBTV9NRU1PUllfVFJBQ0tJTkcgaXMgbm90IHNldAor Q09ORklHX0JMS19ERVZfTE9PUD1tCitDT05GSUdfQkxLX0RFVl9MT09QX01JTl9DT1VOVD04CitD T05GSUdfQkxLX0RFVl9EUkJEPW0KKyMgQ09ORklHX0RSQkRfRkFVTFRfSU5KRUNUSU9OIGlzIG5v dCBzZXQKK0NPTkZJR19CTEtfREVWX05CRD1tCitDT05GSUdfQkxLX0RFVl9SQU09bQorQ09ORklH X0JMS19ERVZfUkFNX0NPVU5UPTE2CitDT05GSUdfQkxLX0RFVl9SQU1fU0laRT0xMzEwNzIKK0NP TkZJR19DRFJPTV9QS1RDRFZEPW0KK0NPTkZJR19DRFJPTV9QS1RDRFZEX0JVRkZFUlM9OAorQ09O RklHX0NEUk9NX1BLVENEVkRfV0NBQ0hFPXkKK0NPTkZJR19BVEFfT1ZFUl9FVEg9bQorQ09ORklH X1ZJUlRJT19CTEs9bQorQ09ORklHX0JMS19ERVZfUkJEPW0KKyMgQ09ORklHX0JMS19ERVZfVUJM SyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9STkJEPXkKK0NPTkZJR19CTEtfREVWX1JOQkRf Q0xJRU5UPW0KK0NPTkZJR19CTEtfREVWX1JOQkRfU0VSVkVSPW0KKworIworIyBOVk1FIFN1cHBv cnQKKyMKK0NPTkZJR19OVk1FX0NPUkU9bQorQ09ORklHX0JMS19ERVZfTlZNRT1tCitDT05GSUdf TlZNRV9NVUxUSVBBVEg9eQorQ09ORklHX05WTUVfVkVSQk9TRV9FUlJPUlM9eQorQ09ORklHX05W TUVfSFdNT049eQorQ09ORklHX05WTUVfRkFCUklDUz1tCitDT05GSUdfTlZNRV9SRE1BPW0KK0NP TkZJR19OVk1FX0ZDPW0KK0NPTkZJR19OVk1FX1RDUD1tCisjIENPTkZJR19OVk1FX0FVVEggaXMg bm90IHNldAorQ09ORklHX05WTUVfVEFSR0VUPW0KK0NPTkZJR19OVk1FX1RBUkdFVF9QQVNTVEhS VT15CitDT05GSUdfTlZNRV9UQVJHRVRfTE9PUD1tCitDT05GSUdfTlZNRV9UQVJHRVRfUkRNQT1t CitDT05GSUdfTlZNRV9UQVJHRVRfRkM9bQorQ09ORklHX05WTUVfVEFSR0VUX0ZDTE9PUD1tCitD T05GSUdfTlZNRV9UQVJHRVRfVENQPW0KKyMgQ09ORklHX05WTUVfVEFSR0VUX0FVVEggaXMgbm90 IHNldAorIyBlbmQgb2YgTlZNRSBTdXBwb3J0CisKKyMKKyMgTWlzYyBkZXZpY2VzCisjCitDT05G SUdfU0VOU09SU19MSVMzTFYwMkQ9eQorQ09ORklHX0FENTI1WF9EUE9UPW0KK0NPTkZJR19BRDUy NVhfRFBPVF9JMkM9bQorIyBDT05GSUdfQUQ1MjVYX0RQT1RfU1BJIGlzIG5vdCBzZXQKK0NPTkZJ R19EVU1NWV9JUlE9bQorQ09ORklHX1BIQU5UT009bQorQ09ORklHX1RJRk1fQ09SRT1tCitDT05G SUdfVElGTV83WFgxPW0KK0NPTkZJR19JQ1M5MzJTNDAxPW0KK0NPTkZJR19FTkNMT1NVUkVfU0VS VklDRVM9bQorQ09ORklHX0hJNjQyMVY2MDBfSVJRPW0KK0NPTkZJR19IUF9JTE89bQorIyBDT05G SUdfQVBEUzk4MDJBTFMgaXMgbm90IHNldAorIyBDT05GSUdfSVNMMjkwMDMgaXMgbm90IHNldAor Q09ORklHX0lTTDI5MDIwPW0KK0NPTkZJR19TRU5TT1JTX1RTTDI1NTA9bQorQ09ORklHX1NFTlNP UlNfQkgxNzcwPW0KK0NPTkZJR19TRU5TT1JTX0FQRFM5OTBYPW0KK0NPTkZJR19ITUM2MzUyPW0K K0NPTkZJR19EUzE2ODI9bQorIyBDT05GSUdfTEFUVElDRV9FQ1AzX0NPTkZJRyBpcyBub3Qgc2V0 CitDT05GSUdfU1JBTT15CitDT05GSUdfRFdfWERBVEFfUENJRT1tCitDT05GSUdfUENJX0VORFBP SU5UX1RFU1Q9bQorQ09ORklHX1hJTElOWF9TREZFQz1tCitDT05GSUdfTUlTQ19SVFNYPW0KK0NP TkZJR19ISVNJX0hJS0VZX1VTQj1tCitDT05GSUdfT1BFTl9ESUNFPW0KK0NPTkZJR19WQ1BVX1NU QUxMX0RFVEVDVE9SPW0KK0NPTkZJR19DMlBPUlQ9bQorCisjCisjIEVFUFJPTSBzdXBwb3J0Cisj CitDT05GSUdfRUVQUk9NX0FUMjQ9bQorIyBDT05GSUdfRUVQUk9NX0FUMjUgaXMgbm90IHNldAor Q09ORklHX0VFUFJPTV9MRUdBQ1k9bQorQ09ORklHX0VFUFJPTV9NQVg2ODc1PW0KK0NPTkZJR19F RVBST01fOTNDWDY9bQorIyBDT05GSUdfRUVQUk9NXzkzWFg0NiBpcyBub3Qgc2V0CitDT05GSUdf RUVQUk9NX0lEVF84OUhQRVNYPW0KK0NPTkZJR19FRVBST01fRUUxMDA0PW0KKyMgZW5kIG9mIEVF UFJPTSBzdXBwb3J0CisKK0NPTkZJR19DQjcxMF9DT1JFPW0KKyMgQ09ORklHX0NCNzEwX0RFQlVH IGlzIG5vdCBzZXQKK0NPTkZJR19DQjcxMF9ERUJVR19BU1NVTVBUSU9OUz15CisKKyMKKyMgVGV4 YXMgSW5zdHJ1bWVudHMgc2hhcmVkIHRyYW5zcG9ydCBsaW5lIGRpc2NpcGxpbmUKKyMKK0NPTkZJ R19USV9TVD1tCisjIGVuZCBvZiBUZXhhcyBJbnN0cnVtZW50cyBzaGFyZWQgdHJhbnNwb3J0IGxp bmUgZGlzY2lwbGluZQorCitDT05GSUdfU0VOU09SU19MSVMzX1NQST15CitDT05GSUdfU0VOU09S U19MSVMzX0kyQz1tCitDT05GSUdfQUxURVJBX1NUQVBMPW0KK0NPTkZJR19HRU5XUUU9bQorQ09O RklHX0dFTldRRV9QTEFURk9STV9FUlJPUl9SRUNPVkVSWT0wCitDT05GSUdfRUNITz1tCitDT05G SUdfQkNNX1ZLPW0KKyMgQ09ORklHX0JDTV9WS19UVFkgaXMgbm90IHNldAorQ09ORklHX01JU0Nf QUxDT1JfUENJPW0KK0NPTkZJR19NSVNDX1JUU1hfUENJPW0KK0NPTkZJR19NSVNDX1JUU1hfVVNC PW0KK0NPTkZJR19IQUJBTkFfQUk9bQorQ09ORklHX1VBQ0NFPW0KK0NPTkZJR19QVlBBTklDPXkK K0NPTkZJR19QVlBBTklDX01NSU89bQorQ09ORklHX1BWUEFOSUNfUENJPW0KK0NPTkZJR19HUF9Q Q0kxWFhYWD1tCisjIGVuZCBvZiBNaXNjIGRldmljZXMKKworIworIyBTQ1NJIGRldmljZSBzdXBw b3J0CisjCitDT05GSUdfU0NTSV9NT0Q9eQorQ09ORklHX1JBSURfQVRUUlM9bQorQ09ORklHX1ND U0lfQ09NTU9OPXkKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CitDT05GSUdfU0NT SV9ORVRMSU5LPXkKK0NPTkZJR19TQ1NJX1BST0NfRlM9eQorCisjCisjIFNDU0kgc3VwcG9ydCB0 eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCisjCitDT05GSUdfQkxLX0RFVl9TRD15CitDT05GSUdf Q0hSX0RFVl9TVD1tCitDT05GSUdfQkxLX0RFVl9TUj1tCitDT05GSUdfQ0hSX0RFVl9TRz1tCitD T05GSUdfQkxLX0RFVl9CU0c9eQorQ09ORklHX0NIUl9ERVZfU0NIPW0KK0NPTkZJR19TQ1NJX0VO Q0xPU1VSRT1tCitDT05GSUdfU0NTSV9DT05TVEFOVFM9eQorQ09ORklHX1NDU0lfTE9HR0lORz15 CitDT05GSUdfU0NTSV9TQ0FOX0FTWU5DPXkKKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKK0NP TkZJR19TQ1NJX1NQSV9BVFRSUz1tCitDT05GSUdfU0NTSV9GQ19BVFRSUz1tCitDT05GSUdfU0NT SV9JU0NTSV9BVFRSUz1tCitDT05GSUdfU0NTSV9TQVNfQVRUUlM9bQorQ09ORklHX1NDU0lfU0FT X0xJQlNBUz1tCitDT05GSUdfU0NTSV9TQVNfQVRBPXkKK0NPTkZJR19TQ1NJX1NBU19IT1NUX1NN UD15CitDT05GSUdfU0NTSV9TUlBfQVRUUlM9bQorIyBlbmQgb2YgU0NTSSBUcmFuc3BvcnRzCisK K0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKK0NPTkZJR19JU0NTSV9UQ1A9bQorQ09ORklHX0lTQ1NJ X0JPT1RfU1lTRlM9bQorQ09ORklHX1NDU0lfQ1hHQjNfSVNDU0k9bQorQ09ORklHX1NDU0lfQ1hH QjRfSVNDU0k9bQorQ09ORklHX1NDU0lfQk5YMl9JU0NTST1tCitDT05GSUdfU0NTSV9CTlgyWF9G Q09FPW0KK0NPTkZJR19CRTJJU0NTST1tCitDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQ9bQor Q09ORklHX1NDU0lfSFBTQT1tCitDT05GSUdfU0NTSV8zV185WFhYPW0KK0NPTkZJR19TQ1NJXzNX X1NBUz1tCitDT05GSUdfU0NTSV9BQ0FSRD1tCitDT05GSUdfU0NTSV9BQUNSQUlEPW0KK0NPTkZJ R19TQ1NJX0FJQzdYWFg9bQorQ09ORklHX0FJQzdYWFhfQ01EU19QRVJfREVWSUNFPTMyCitDT05G SUdfQUlDN1hYWF9SRVNFVF9ERUxBWV9NUz0xNTAwMAorIyBDT05GSUdfQUlDN1hYWF9ERUJVR19F TkFCTEUgaXMgbm90IHNldAorQ09ORklHX0FJQzdYWFhfREVCVUdfTUFTSz0wCitDT05GSUdfQUlD N1hYWF9SRUdfUFJFVFRZX1BSSU5UPXkKK0NPTkZJR19TQ1NJX0FJQzc5WFg9bQorQ09ORklHX0FJ Qzc5WFhfQ01EU19QRVJfREVWSUNFPTMyCitDT05GSUdfQUlDNzlYWF9SRVNFVF9ERUxBWV9NUz01 MDAwCisjIENPTkZJR19BSUM3OVhYX0RFQlVHX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfQUlD NzlYWF9ERUJVR19NQVNLPTAKK0NPTkZJR19BSUM3OVhYX1JFR19QUkVUVFlfUFJJTlQ9eQorQ09O RklHX1NDU0lfQUlDOTRYWD1tCisjIENPTkZJR19BSUM5NFhYX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19TQ1NJX01WU0FTPW0KKyMgQ09ORklHX1NDU0lfTVZTQVNfREVCVUcgaXMgbm90IHNldAor Q09ORklHX1NDU0lfTVZTQVNfVEFTS0xFVD15CitDT05GSUdfU0NTSV9NVlVNST1tCitDT05GSUdf U0NTSV9BRFZBTlNZUz1tCitDT05GSUdfU0NTSV9BUkNNU1I9bQorQ09ORklHX1NDU0lfRVNBUzJS PW0KK0NPTkZJR19NRUdBUkFJRF9ORVdHRU49eQorQ09ORklHX01FR0FSQUlEX01NPW0KK0NPTkZJ R19NRUdBUkFJRF9NQUlMQk9YPW0KK0NPTkZJR19NRUdBUkFJRF9MRUdBQ1k9bQorQ09ORklHX01F R0FSQUlEX1NBUz1tCitDT05GSUdfU0NTSV9NUFQzU0FTPW0KK0NPTkZJR19TQ1NJX01QVDJTQVNf TUFYX1NHRT0xMjgKK0NPTkZJR19TQ1NJX01QVDNTQVNfTUFYX1NHRT0xMjgKK0NPTkZJR19TQ1NJ X01QVDJTQVM9bQorQ09ORklHX1NDU0lfTVBJM01SPW0KK0NPTkZJR19TQ1NJX1NNQVJUUFFJPW0K K0NPTkZJR19TQ1NJX0hQVElPUD1tCitDT05GSUdfU0NTSV9CVVNMT0dJQz1tCisjIENPTkZJR19T Q1NJX0ZMQVNIUE9JTlQgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTVlSQj1tCitDT05GSUdfU0NT SV9NWVJTPW0KK0NPTkZJR19MSUJGQz1tCitDT05GSUdfTElCRkNPRT1tCitDT05GSUdfRkNPRT1t CitDT05GSUdfU0NTSV9TTklDPW0KKyMgQ09ORklHX1NDU0lfU05JQ19ERUJVR19GUyBpcyBub3Qg c2V0CitDT05GSUdfU0NTSV9ETVgzMTkxRD1tCitDT05GSUdfU0NTSV9GRE9NQUlOPW0KK0NPTkZJ R19TQ1NJX0ZET01BSU5fUENJPW0KK0NPTkZJR19TQ1NJX0lQUz1tCitDT05GSUdfU0NTSV9JTklU SU89bQorQ09ORklHX1NDU0lfSU5JQTEwMD1tCitDT05GSUdfU0NTSV9TVEVYPW0KK0NPTkZJR19T Q1NJX1NZTTUzQzhYWF8yPW0KK0NPTkZJR19TQ1NJX1NZTTUzQzhYWF9ETUFfQUREUkVTU0lOR19N T0RFPTEKK0NPTkZJR19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1M9MTYKK0NPTkZJR19TQ1NJ X1NZTTUzQzhYWF9NQVhfVEFHUz02NAorQ09ORklHX1NDU0lfU1lNNTNDOFhYX01NSU89eQorQ09O RklHX1NDU0lfSVBSPW0KK0NPTkZJR19TQ1NJX0lQUl9UUkFDRT15CitDT05GSUdfU0NTSV9JUFJf RFVNUD15CitDT05GSUdfU0NTSV9RTE9HSUNfMTI4MD1tCitDT05GSUdfU0NTSV9RTEFfRkM9bQor Q09ORklHX1RDTV9RTEEyWFhYPW0KKyMgQ09ORklHX1RDTV9RTEEyWFhYX0RFQlVHIGlzIG5vdCBz ZXQKK0NPTkZJR19TQ1NJX1FMQV9JU0NTST1tCitDT05GSUdfUUVEST1tCitDT05GSUdfUUVERj1t CitDT05GSUdfU0NTSV9FRkNUPW0KK0NPTkZJR19TQ1NJX0RDMzk1eD1tCitDT05GSUdfU0NTSV9B TTUzQzk3ND1tCitDT05GSUdfU0NTSV9XRDcxOVg9bQorQ09ORklHX1NDU0lfREVCVUc9bQorQ09O RklHX1NDU0lfUE1DUkFJRD1tCitDT05GSUdfU0NTSV9QTTgwMDE9bQorQ09ORklHX1NDU0lfQkZB X0ZDPW0KK0NPTkZJR19TQ1NJX1ZJUlRJTz1tCitDT05GSUdfU0NTSV9DSEVMU0lPX0ZDT0U9bQor Q09ORklHX1NDU0lfTE9XTEVWRUxfUENNQ0lBPXkKK0NPTkZJR19QQ01DSUFfQUhBMTUyWD1tCitD T05GSUdfUENNQ0lBX0ZET01BSU49bQorQ09ORklHX1BDTUNJQV9RTE9HSUM9bQorQ09ORklHX1BD TUNJQV9TWU01M0M1MDA9bQorQ09ORklHX1NDU0lfREg9eQorQ09ORklHX1NDU0lfREhfUkRBQz1t CitDT05GSUdfU0NTSV9ESF9IUF9TVz1tCitDT05GSUdfU0NTSV9ESF9FTUM9bQorQ09ORklHX1ND U0lfREhfQUxVQT1tCisjIGVuZCBvZiBTQ1NJIGRldmljZSBzdXBwb3J0CisKK0NPTkZJR19BVEE9 eQorQ09ORklHX1NBVEFfSE9TVD15CitDT05GSUdfUEFUQV9USU1JTkdTPXkKK0NPTkZJR19BVEFf VkVSQk9TRV9FUlJPUj15CitDT05GSUdfQVRBX0ZPUkNFPXkKK0NPTkZJR19TQVRBX1BNUD15CisK KyMKKyMgQ29udHJvbGxlcnMgd2l0aCBub24tU0ZGIG5hdGl2ZSBpbnRlcmZhY2UKKyMKK0NPTkZJ R19TQVRBX0FIQ0k9eQorQ09ORklHX1NBVEFfTU9CSUxFX0xQTV9QT0xJQ1k9MAorQ09ORklHX1NB VEFfQUhDSV9QTEFURk9STT1tCitDT05GSUdfQUhDSV9EV0M9bQorQ09ORklHX0FIQ0lfQ0VWQT1t CitDT05GSUdfQUhDSV9RT1JJUT1tCitDT05GSUdfU0FUQV9JTklDMTYyWD1tCitDT05GSUdfU0FU QV9BQ0FSRF9BSENJPW0KK0NPTkZJR19TQVRBX1NJTDI0PW0KK0NPTkZJR19BVEFfU0ZGPXkKKwor IworIyBTRkYgY29udHJvbGxlcnMgd2l0aCBjdXN0b20gRE1BIGludGVyZmFjZQorIworQ09ORklH X1BEQ19BRE1BPW0KK0NPTkZJR19TQVRBX1FTVE9SPW0KK0NPTkZJR19TQVRBX1NYND1tCitDT05G SUdfQVRBX0JNRE1BPXkKKworIworIyBTQVRBIFNGRiBjb250cm9sbGVycyB3aXRoIEJNRE1BCisj CitDT05GSUdfQVRBX1BJSVg9bQorQ09ORklHX1NBVEFfRFdDPW0KK0NPTkZJR19TQVRBX0RXQ19P TERfRE1BPXkKK0NPTkZJR19TQVRBX01WPW0KK0NPTkZJR19TQVRBX05WPW0KK0NPTkZJR19TQVRB X1BST01JU0U9bQorQ09ORklHX1NBVEFfU0lMPW0KK0NPTkZJR19TQVRBX1NJUz1tCitDT05GSUdf U0FUQV9TVlc9bQorQ09ORklHX1NBVEFfVUxJPW0KK0NPTkZJR19TQVRBX1ZJQT1tCitDT05GSUdf U0FUQV9WSVRFU1NFPW0KKworIworIyBQQVRBIFNGRiBjb250cm9sbGVycyB3aXRoIEJNRE1BCisj CitDT05GSUdfUEFUQV9BTEk9bQorQ09ORklHX1BBVEFfQU1EPW0KK0NPTkZJR19QQVRBX0FSVE9Q PW0KK0NPTkZJR19QQVRBX0FUSUlYUD1tCitDT05GSUdfUEFUQV9BVFA4NjdYPW0KK0NPTkZJR19Q QVRBX0NNRDY0WD1tCitDT05GSUdfUEFUQV9DWVBSRVNTPW0KK0NPTkZJR19QQVRBX0VGQVI9bQor Q09ORklHX1BBVEFfSFBUMzY2PW0KK0NPTkZJR19QQVRBX0hQVDM3WD1tCitDT05GSUdfUEFUQV9I UFQzWDJOPW0KK0NPTkZJR19QQVRBX0hQVDNYMz1tCisjIENPTkZJR19QQVRBX0hQVDNYM19ETUEg aXMgbm90IHNldAorQ09ORklHX1BBVEFfSVQ4MjEzPW0KK0NPTkZJR19QQVRBX0lUODIxWD1tCitD T05GSUdfUEFUQV9KTUlDUk9OPW0KK0NPTkZJR19QQVRBX01BUlZFTEw9bQorQ09ORklHX1BBVEFf TkVUQ0VMTD1tCitDT05GSUdfUEFUQV9OSU5KQTMyPW0KK0NPTkZJR19QQVRBX05TODc0MTU9bQor Q09ORklHX1BBVEFfT0xEUElJWD1tCitDT05GSUdfUEFUQV9PUFRJRE1BPW0KK0NPTkZJR19QQVRB X1BEQzIwMjdYPW0KK0NPTkZJR19QQVRBX1BEQ19PTEQ9bQorQ09ORklHX1BBVEFfUkFESVNZUz1t CitDT05GSUdfUEFUQV9SREM9bQorQ09ORklHX1BBVEFfU0NIPW0KK0NPTkZJR19QQVRBX1NFUlZF UldPUktTPW0KK0NPTkZJR19QQVRBX1NJTDY4MD1tCitDT05GSUdfUEFUQV9TSVM9bQorQ09ORklH X1BBVEFfVE9TSElCQT1tCitDT05GSUdfUEFUQV9UUklGTEVYPW0KK0NPTkZJR19QQVRBX1ZJQT1t CitDT05GSUdfUEFUQV9XSU5CT05EPW0KKworIworIyBQSU8tb25seSBTRkYgY29udHJvbGxlcnMK KyMKK0NPTkZJR19QQVRBX0NNRDY0MF9QQ0k9bQorQ09ORklHX1BBVEFfTVBJSVg9bQorQ09ORklH X1BBVEFfTlM4NzQxMD1tCitDT05GSUdfUEFUQV9PUFRJPW0KK0NPTkZJR19QQVRBX1BDTUNJQT1t CisjIENPTkZJR19QQVRBX09GX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX1JaMTAw MD1tCisKKyMKKyMgR2VuZXJpYyBmYWxsYmFjayAvIGxlZ2FjeSBkcml2ZXJzCisjCitDT05GSUdf QVRBX0dFTkVSSUM9bQorIyBDT05GSUdfUEFUQV9MRUdBQ1kgaXMgbm90IHNldAorQ09ORklHX01E PXkKK0NPTkZJR19CTEtfREVWX01EPW0KK0NPTkZJR19NRF9MSU5FQVI9bQorQ09ORklHX01EX1JB SUQwPW0KK0NPTkZJR19NRF9SQUlEMT1tCitDT05GSUdfTURfUkFJRDEwPW0KK0NPTkZJR19NRF9S QUlENDU2PW0KK0NPTkZJR19NRF9NVUxUSVBBVEg9bQorQ09ORklHX01EX0ZBVUxUWT1tCitDT05G SUdfTURfQ0xVU1RFUj1tCitDT05GSUdfQkNBQ0hFPW0KKyMgQ09ORklHX0JDQUNIRV9ERUJVRyBp cyBub3Qgc2V0CisjIENPTkZJR19CQ0FDSEVfQ0xPU1VSRVNfREVCVUcgaXMgbm90IHNldAorIyBD T05GSUdfQkNBQ0hFX0FTWU5DX1JFR0lTVFJBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RF Vl9ETV9CVUlMVElOPXkKK0NPTkZJR19CTEtfREVWX0RNPW0KKyMgQ09ORklHX0RNX0RFQlVHIGlz IG5vdCBzZXQKK0NPTkZJR19ETV9CVUZJTz1tCisjIENPTkZJR19ETV9ERUJVR19CTE9DS19NQU5B R0VSX0xPQ0tJTkcgaXMgbm90IHNldAorQ09ORklHX0RNX0JJT19QUklTT049bQorQ09ORklHX0RN X1BFUlNJU1RFTlRfREFUQT1tCitDT05GSUdfRE1fVU5TVFJJUEVEPW0KK0NPTkZJR19ETV9DUllQ VD1tCitDT05GSUdfRE1fU05BUFNIT1Q9bQorQ09ORklHX0RNX1RISU5fUFJPVklTSU9OSU5HPW0K K0NPTkZJR19ETV9DQUNIRT1tCitDT05GSUdfRE1fQ0FDSEVfU01RPW0KK0NPTkZJR19ETV9XUklU RUNBQ0hFPW0KK0NPTkZJR19ETV9FQlM9bQorQ09ORklHX0RNX0VSQT1tCitDT05GSUdfRE1fQ0xP TkU9bQorQ09ORklHX0RNX01JUlJPUj1tCitDT05GSUdfRE1fTE9HX1VTRVJTUEFDRT1tCitDT05G SUdfRE1fUkFJRD1tCitDT05GSUdfRE1fWkVSTz1tCitDT05GSUdfRE1fTVVMVElQQVRIPW0KK0NP TkZJR19ETV9NVUxUSVBBVEhfUUw9bQorQ09ORklHX0RNX01VTFRJUEFUSF9TVD1tCitDT05GSUdf RE1fTVVMVElQQVRIX0hTVD1tCitDT05GSUdfRE1fTVVMVElQQVRIX0lPQT1tCitDT05GSUdfRE1f REVMQVk9bQorQ09ORklHX0RNX0RVU1Q9bQorQ09ORklHX0RNX1VFVkVOVD15CitDT05GSUdfRE1f RkxBS0VZPW0KK0NPTkZJR19ETV9WRVJJVFk9bQorIyBDT05GSUdfRE1fVkVSSVRZX1ZFUklGWV9S T09USEFTSF9TSUcgaXMgbm90IHNldAorQ09ORklHX0RNX1ZFUklUWV9GRUM9eQorQ09ORklHX0RN X1NXSVRDSD1tCitDT05GSUdfRE1fTE9HX1dSSVRFUz1tCitDT05GSUdfRE1fSU5URUdSSVRZPW0K K0NPTkZJR19ETV9aT05FRD1tCitDT05GSUdfRE1fQVVESVQ9eQorQ09ORklHX1RBUkdFVF9DT1JF PW0KK0NPTkZJR19UQ01fSUJMT0NLPW0KK0NPTkZJR19UQ01fRklMRUlPPW0KK0NPTkZJR19UQ01f UFNDU0k9bQorQ09ORklHX1RDTV9VU0VSMj1tCitDT05GSUdfTE9PUEJBQ0tfVEFSR0VUPW0KK0NP TkZJR19UQ01fRkM9bQorQ09ORklHX0lTQ1NJX1RBUkdFVD1tCitDT05GSUdfSVNDU0lfVEFSR0VU X0NYR0I0PW0KK0NPTkZJR19TQlBfVEFSR0VUPW0KK0NPTkZJR19GVVNJT049eQorQ09ORklHX0ZV U0lPTl9TUEk9bQorQ09ORklHX0ZVU0lPTl9GQz1tCitDT05GSUdfRlVTSU9OX1NBUz1tCitDT05G SUdfRlVTSU9OX01BWF9TR0U9MTI4CitDT05GSUdfRlVTSU9OX0NUTD1tCitDT05GSUdfRlVTSU9O X0xBTj1tCisjIENPTkZJR19GVVNJT05fTE9HR0lORyBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAx Mzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworQ09ORklHX0ZJUkVXSVJFPW0KK0NPTkZJR19GSVJF V0lSRV9PSENJPW0KK0NPTkZJR19GSVJFV0lSRV9TQlAyPW0KK0NPTkZJR19GSVJFV0lSRV9ORVQ9 bQorQ09ORklHX0ZJUkVXSVJFX05PU1k9bQorIyBlbmQgb2YgSUVFRSAxMzk0IChGaXJlV2lyZSkg c3VwcG9ydAorCitDT05GSUdfTkVUREVWSUNFUz15CitDT05GSUdfTUlJPW0KK0NPTkZJR19ORVRf Q09SRT15CitDT05GSUdfQk9ORElORz1tCitDT05GSUdfRFVNTVk9bQorQ09ORklHX1dJUkVHVUFS RD1tCisjIENPTkZJR19XSVJFR1VBUkRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VRVUFMSVpF Uj1tCitDT05GSUdfTkVUX0ZDPXkKK0NPTkZJR19JRkI9bQorQ09ORklHX05FVF9URUFNPW0KK0NP TkZJR19ORVRfVEVBTV9NT0RFX0JST0FEQ0FTVD1tCitDT05GSUdfTkVUX1RFQU1fTU9ERV9ST1VO RFJPQklOPW0KK0NPTkZJR19ORVRfVEVBTV9NT0RFX1JBTkRPTT1tCitDT05GSUdfTkVUX1RFQU1f TU9ERV9BQ1RJVkVCQUNLVVA9bQorQ09ORklHX05FVF9URUFNX01PREVfTE9BREJBTEFOQ0U9bQor Q09ORklHX01BQ1ZMQU49bQorQ09ORklHX01BQ1ZUQVA9bQorQ09ORklHX0lQVkxBTl9MM1M9eQor Q09ORklHX0lQVkxBTj1tCitDT05GSUdfSVBWVEFQPW0KK0NPTkZJR19WWExBTj1tCitDT05GSUdf R0VORVZFPW0KK0NPTkZJR19CQVJFVURQPW0KK0NPTkZJR19HVFA9bQorQ09ORklHX0FNVD1tCitD T05GSUdfTUFDU0VDPW0KK0NPTkZJR19ORVRDT05TT0xFPW0KK0NPTkZJR19ORVRDT05TT0xFX0RZ TkFNSUM9eQorQ09ORklHX05FVFBPTEw9eQorQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVI9eQor Q09ORklHX05UQl9ORVRERVY9bQorQ09ORklHX1JJT05FVD1tCitDT05GSUdfUklPTkVUX1RYX1NJ WkU9MTI4CitDT05GSUdfUklPTkVUX1JYX1NJWkU9MTI4CitDT05GSUdfVFVOPW0KK0NPTkZJR19U QVA9bQorIyBDT05GSUdfVFVOX1ZORVRfQ1JPU1NfTEUgaXMgbm90IHNldAorQ09ORklHX1ZFVEg9 bQorQ09ORklHX1ZJUlRJT19ORVQ9bQorQ09ORklHX05MTU9OPW0KK0NPTkZJR19ORVRfVlJGPW0K K0NPTkZJR19WU09DS01PTj1tCitDT05GSUdfTUhJX05FVD1tCitDT05GSUdfU1VOR0VNX1BIWT1t CisjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAorQ09ORklHX0FUTV9EUklWRVJTPXkKK0NPTkZJ R19BVE1fRFVNTVk9bQorQ09ORklHX0FUTV9UQ1A9bQorQ09ORklHX0FUTV9MQU5BST1tCitDT05G SUdfQVRNX0VOST1tCisjIENPTkZJR19BVE1fRU5JX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19B VE1fRU5JX1RVTkVfQlVSU1Q9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfVFhfMTZXPXkKK0NPTkZJ R19BVE1fRU5JX0JVUlNUX1RYXzhXPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNUX1RYXzRXPXkKK0NP TkZJR19BVE1fRU5JX0JVUlNUX1RYXzJXPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNUX1JYXzE2Vz15 CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF84Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF80 Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF8yVz15CitDT05GSUdfQVRNX05JQ1NUQVI9bQor Q09ORklHX0FUTV9OSUNTVEFSX1VTRV9TVU5JPXkKK0NPTkZJR19BVE1fTklDU1RBUl9VU0VfSURU NzcxMDU9eQorQ09ORklHX0FUTV9JRFQ3NzI1Mj1tCisjIENPTkZJR19BVE1fSURUNzcyNTJfREVC VUcgaXMgbm90IHNldAorIyBDT05GSUdfQVRNX0lEVDc3MjUyX1JDVl9BTEwgaXMgbm90IHNldAor Q09ORklHX0FUTV9JRFQ3NzI1Ml9VU0VfU1VOST15CitDT05GSUdfQVRNX0lBPW0KKyMgQ09ORklH X0FUTV9JQV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQVRNX0ZPUkUyMDBFPW0KK0NPTkZJR19B VE1fRk9SRTIwMEVfVVNFX1RBU0tMRVQ9eQorQ09ORklHX0FUTV9GT1JFMjAwRV9UWF9SRVRSWT0x NgorQ09ORklHX0FUTV9GT1JFMjAwRV9ERUJVRz0wCitDT05GSUdfQVRNX0hFPW0KK0NPTkZJR19B VE1fSEVfVVNFX1NVTkk9eQorQ09ORklHX0FUTV9TT0xPUz1tCisjIENPTkZJR19DQUlGX0RSSVZF UlMgaXMgbm90IHNldAorCisjCisjIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUgZHJp dmVycworIworQ09ORklHX0I1Mz1tCitDT05GSUdfQjUzX1NQSV9EUklWRVI9bQorQ09ORklHX0I1 M19NRElPX0RSSVZFUj1tCitDT05GSUdfQjUzX01NQVBfRFJJVkVSPW0KK0NPTkZJR19CNTNfU1JB Ql9EUklWRVI9bQorQ09ORklHX0I1M19TRVJERVM9bQorQ09ORklHX05FVF9EU0FfQkNNX1NGMj1t CitDT05GSUdfTkVUX0RTQV9MT09QPW0KK0NPTkZJR19ORVRfRFNBX0hJUlNDSE1BTk5fSEVMTENS RUVLPW0KK0NPTkZJR19ORVRfRFNBX0xBTlRJUV9HU1dJUD1tCitDT05GSUdfTkVUX0RTQV9NVDc1 MzA9bQorQ09ORklHX05FVF9EU0FfTVY4OEU2MDYwPW0KK0NPTkZJR19ORVRfRFNBX01JQ1JPQ0hJ UF9LU1pfQ09NTU9OPW0KK0NPTkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9LU1o5NDc3X0kyQz1tCisj IENPTkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9LU1pfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRf RFNBX01JQ1JPQ0hJUF9LU1o4ODYzX1NNST1tCitDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFg9bQor Q09ORklHX05FVF9EU0FfTVY4OEU2WFhYX1BUUD15CitDT05GSUdfTkVUX0RTQV9NU0NDX1NFVklM TEU9bQorIyBDT05GSUdfTkVUX0RTQV9BUjkzMzEgaXMgbm90IHNldAorQ09ORklHX05FVF9EU0Ff UUNBOEs9bQorQ09ORklHX05FVF9EU0FfU0pBMTEwNT1tCitDT05GSUdfTkVUX0RTQV9TSkExMTA1 X1BUUD15CitDT05GSUdfTkVUX0RTQV9TSkExMTA1X1RBUz15CitDT05GSUdfTkVUX0RTQV9TSkEx MTA1X1ZMPXkKK0NPTkZJR19ORVRfRFNBX1hSUzcwMFg9bQorQ09ORklHX05FVF9EU0FfWFJTNzAw WF9JMkM9bQorQ09ORklHX05FVF9EU0FfWFJTNzAwWF9NRElPPW0KK0NPTkZJR19ORVRfRFNBX1JF QUxURUs9bQorQ09ORklHX05FVF9EU0FfUkVBTFRFS19NRElPPW0KK0NPTkZJR19ORVRfRFNBX1JF QUxURUtfU01JPW0KK0NPTkZJR19ORVRfRFNBX1JFQUxURUtfUlRMODM2NU1CPW0KK0NPTkZJR19O RVRfRFNBX1JFQUxURUtfUlRMODM2NlJCPW0KK0NPTkZJR19ORVRfRFNBX1NNU0NfTEFOOTMwMz1t CitDT05GSUdfTkVUX0RTQV9TTVNDX0xBTjkzMDNfSTJDPW0KK0NPTkZJR19ORVRfRFNBX1NNU0Nf TEFOOTMwM19NRElPPW0KK0NPTkZJR19ORVRfRFNBX1ZJVEVTU0VfVlNDNzNYWD1tCitDT05GSUdf TkVUX0RTQV9WSVRFU1NFX1ZTQzczWFhfU1BJPW0KK0NPTkZJR19ORVRfRFNBX1ZJVEVTU0VfVlND NzNYWF9QTEFURk9STT1tCisjIGVuZCBvZiBEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJl IGRyaXZlcnMKKworQ09ORklHX0VUSEVSTkVUPXkKK0NPTkZJR19NRElPPW0KK0NPTkZJR19ORVRf VkVORE9SXzNDT009eQorQ09ORklHX1BDTUNJQV8zQzU3ND1tCitDT05GSUdfUENNQ0lBXzNDNTg5 PW0KK0NPTkZJR19WT1JURVg9bQorQ09ORklHX1RZUEhPT049bQorQ09ORklHX05FVF9WRU5ET1Jf QURBUFRFQz15CitDT05GSUdfQURBUFRFQ19TVEFSRklSRT1tCitDT05GSUdfTkVUX1ZFTkRPUl9B R0VSRT15CitDT05GSUdfRVQxMzFYPW0KK0NPTkZJR19ORVRfVkVORE9SX0FMQUNSSVRFQ0g9eQor Q09ORklHX1NMSUNPU1M9bQorQ09ORklHX05FVF9WRU5ET1JfQUxURU9OPXkKK0NPTkZJR19BQ0VO SUM9bQorIyBDT05GSUdfQUNFTklDX09NSVRfVElHT05fSSBpcyBub3Qgc2V0CisjIENPTkZJR19B TFRFUkFfVFNFIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9SX0FNQVpPTj15CitDT05GSUdf RU5BX0VUSEVSTkVUPW0KK0NPTkZJR19ORVRfVkVORE9SX0FNRD15CitDT05GSUdfQU1EODExMV9F VEg9bQorQ09ORklHX1BDTkVUMzI9bQorQ09ORklHX1BDTUNJQV9OTUNMQU49bQorQ09ORklHX05F VF9WRU5ET1JfQVFVQU5USUE9eQorQ09ORklHX0FRVElPTj1tCitDT05GSUdfTkVUX1ZFTkRPUl9B UkM9eQorQ09ORklHX05FVF9WRU5ET1JfQVNJWD15CitDT05GSUdfU1BJX0FYODg3OTZDPW0KKyMg Q09ORklHX1NQSV9BWDg4Nzk2Q19DT01QUkVTU0lPTiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZF TkRPUl9BVEhFUk9TPXkKK0NPTkZJR19BVEwyPW0KK0NPTkZJR19BVEwxPW0KK0NPTkZJR19BVEwx RT1tCitDT05GSUdfQVRMMUM9bQorQ09ORklHX0FMWD1tCitDT05GSUdfTkVUX1ZFTkRPUl9CUk9B RENPTT15CitDT05GSUdfQjQ0PW0KK0NPTkZJR19CNDRfUENJX0FVVE9TRUxFQ1Q9eQorQ09ORklH X0I0NF9QQ0lDT1JFX0FVVE9TRUxFQ1Q9eQorQ09ORklHX0I0NF9QQ0k9eQorQ09ORklHX0JDTUdF TkVUPW0KK0NPTkZJR19CTlgyPW0KK0NPTkZJR19DTklDPW0KK0NPTkZJR19USUdPTjM9bQorQ09O RklHX1RJR09OM19IV01PTj15CitDT05GSUdfQk5YMlg9bQorQ09ORklHX0JOWDJYX1NSSU9WPXkK K0NPTkZJR19TWVNURU1QT1JUPW0KK0NPTkZJR19CTlhUPW0KK0NPTkZJR19CTlhUX1NSSU9WPXkK K0NPTkZJR19CTlhUX0ZMT1dFUl9PRkZMT0FEPXkKK0NPTkZJR19CTlhUX0RDQj15CitDT05GSUdf Qk5YVF9IV01PTj15CitDT05GSUdfTkVUX1ZFTkRPUl9DQURFTkNFPXkKK0NPTkZJR19NQUNCPW0K K0NPTkZJR19NQUNCX1VTRV9IV1NUQU1QPXkKK0NPTkZJR19NQUNCX1BDST1tCitDT05GSUdfTkVU X1ZFTkRPUl9DQVZJVU09eQorQ09ORklHX1RIVU5ERVJfTklDX1BGPW0KK0NPTkZJR19USFVOREVS X05JQ19WRj1tCitDT05GSUdfVEhVTkRFUl9OSUNfQkdYPW0KK0NPTkZJR19USFVOREVSX05JQ19S R1g9bQorQ09ORklHX0NBVklVTV9QVFA9bQorQ09ORklHX0xJUVVJRElPPW0KK0NPTkZJR19MSVFV SURJT19WRj1tCitDT05GSUdfTkVUX1ZFTkRPUl9DSEVMU0lPPXkKK0NPTkZJR19DSEVMU0lPX1Qx PW0KK0NPTkZJR19DSEVMU0lPX1QxXzFHPXkKK0NPTkZJR19DSEVMU0lPX1QzPW0KK0NPTkZJR19D SEVMU0lPX1Q0PW0KK0NPTkZJR19DSEVMU0lPX1Q0X0RDQj15CitDT05GSUdfQ0hFTFNJT19UNF9G Q09FPXkKK0NPTkZJR19DSEVMU0lPX1Q0VkY9bQorQ09ORklHX0NIRUxTSU9fTElCPW0KK0NPTkZJ R19DSEVMU0lPX0lOTElORV9DUllQVE89eQorQ09ORklHX0NIRUxTSU9fSVBTRUNfSU5MSU5FPW0K K0NPTkZJR19DSEVMU0lPX1RMU19ERVZJQ0U9bQorQ09ORklHX05FVF9WRU5ET1JfQ0lTQ089eQor Q09ORklHX0VOSUM9bQorQ09ORklHX05FVF9WRU5ET1JfQ09SVElOQT15CitDT05GSUdfR0VNSU5J X0VUSEVSTkVUPW0KK0NPTkZJR19ORVRfVkVORE9SX0RBVklDT009eQorQ09ORklHX0RNOTA1MT1t CitDT05GSUdfRE5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl9ERUM9eQorQ09ORklHX05FVF9UVUxJ UD15CitDT05GSUdfREUyMTA0WD1tCitDT05GSUdfREUyMTA0WF9EU0w9MAorQ09ORklHX1RVTElQ PW0KKyMgQ09ORklHX1RVTElQX01XSSBpcyBub3Qgc2V0CisjIENPTkZJR19UVUxJUF9NTUlPIGlz IG5vdCBzZXQKK0NPTkZJR19UVUxJUF9OQVBJPXkKK0NPTkZJR19UVUxJUF9OQVBJX0hXX01JVElH QVRJT049eQorQ09ORklHX1dJTkJPTkRfODQwPW0KK0NPTkZJR19ETTkxMDI9bQorQ09ORklHX1VM STUyNlg9bQorQ09ORklHX1BDTUNJQV9YSVJDT009bQorQ09ORklHX05FVF9WRU5ET1JfRExJTks9 eQorQ09ORklHX0RMMks9bQorQ09ORklHX1NVTkRBTkNFPW0KKyMgQ09ORklHX1NVTkRBTkNFX01N SU8gaXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfRU1VTEVYPXkKK0NPTkZJR19CRTJORVQ9 bQorQ09ORklHX0JFMk5FVF9IV01PTj15CitDT05GSUdfQkUyTkVUX0JFMj15CitDT05GSUdfQkUy TkVUX0JFMz15CitDT05GSUdfQkUyTkVUX0xBTkNFUj15CitDT05GSUdfQkUyTkVUX1NLWUhBV0s9 eQorQ09ORklHX05FVF9WRU5ET1JfRU5HTEVERVI9eQorQ09ORklHX1RTTkVQPW0KKyMgQ09ORklH X1RTTkVQX1NFTEZURVNUUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9FWkNISVA9eQor Q09ORklHX0VaQ0hJUF9OUFNfTUFOQUdFTUVOVF9FTkVUPW0KK0NPTkZJR19ORVRfVkVORE9SX0ZV SklUU1U9eQorQ09ORklHX1BDTUNJQV9GTVZKMThYPW0KK0NPTkZJR19ORVRfVkVORE9SX0ZVTkdJ QkxFPXkKK0NPTkZJR19GVU5fQ09SRT1tCitDT05GSUdfRlVOX0VUSD1tCitDT05GSUdfTkVUX1ZF TkRPUl9HT09HTEU9eQorQ09ORklHX05FVF9WRU5ET1JfSFVBV0VJPXkKK0NPTkZJR19ORVRfVkVO RE9SX0k4MjVYWD15CitDT05GSUdfTkVUX1ZFTkRPUl9JTlRFTD15CitDT05GSUdfRTEwMD1tCitD T05GSUdfRTEwMDA9bQorQ09ORklHX0UxMDAwRT1tCitDT05GSUdfSUdCPW0KK0NPTkZJR19JR0Jf SFdNT049eQorQ09ORklHX0lHQlZGPW0KK0NPTkZJR19JWEdCPW0KK0NPTkZJR19JWEdCRT1tCitD T05GSUdfSVhHQkVfSFdNT049eQorQ09ORklHX0lYR0JFX0RDQj15CitDT05GSUdfSVhHQkVfSVBT RUM9eQorQ09ORklHX0lYR0JFVkY9bQorQ09ORklHX0lYR0JFVkZfSVBTRUM9eQorQ09ORklHX0k0 MEU9bQorQ09ORklHX0k0MEVfRENCPXkKK0NPTkZJR19JQVZGPW0KK0NPTkZJR19JNDBFVkY9bQor Q09ORklHX0lDRT1tCitDT05GSUdfSUNFX1NXSVRDSERFVj15CitDT05GSUdfRk0xMEs9bQorQ09O RklHX0lHQz1tCitDT05GSUdfTkVUX1ZFTkRPUl9XQU5HWFVOPXkKK0NPTkZJR19OR0JFPW0KKyMg Q09ORklHX1RYR0JFIGlzIG5vdCBzZXQKK0NPTkZJR19KTUU9bQorQ09ORklHX05FVF9WRU5ET1Jf QURJPXkKK0NPTkZJR19BRElOMTExMD1tCitDT05GSUdfTkVUX1ZFTkRPUl9MSVRFWD15CitDT05G SUdfTElURVhfTElURUVUSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9NQVJWRUxMPXkKK0NPTkZJR19N Vk1ESU89bQorQ09ORklHX1NLR0U9bQorIyBDT05GSUdfU0tHRV9ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfU0tHRV9HRU5FU0lTPXkKK0NPTkZJR19TS1kyPW0KKyMgQ09ORklHX1NLWTJfREVCVUcg aXMgbm90IHNldAorIyBDT05GSUdfT0NURU9OX0VQIGlzIG5vdCBzZXQKK0NPTkZJR19QUkVTVEVS QT1tCitDT05GSUdfUFJFU1RFUkFfUENJPW0KK0NPTkZJR19ORVRfVkVORE9SX01FTExBTk9YPXkK K0NPTkZJR19NTFg0X0VOPW0KK0NPTkZJR19NTFg0X0VOX0RDQj15CitDT05GSUdfTUxYNF9DT1JF PW0KK0NPTkZJR19NTFg0X0RFQlVHPXkKK0NPTkZJR19NTFg0X0NPUkVfR0VOMj15CitDT05GSUdf TUxYNV9DT1JFPW0KK0NPTkZJR19NTFg1X0ZQR0E9eQorQ09ORklHX01MWDVfQ09SRV9FTj15CitD T05GSUdfTUxYNV9FTl9BUkZTPXkKK0NPTkZJR19NTFg1X0VOX1JYTkZDPXkKK0NPTkZJR19NTFg1 X01QRlM9eQorQ09ORklHX01MWDVfRVNXSVRDSD15CitDT05GSUdfTUxYNV9CUklER0U9eQorQ09O RklHX01MWDVfQ0xTX0FDVD15CitDT05GSUdfTUxYNV9UQ19DVD15CitDT05GSUdfTUxYNV9UQ19T QU1QTEU9eQorQ09ORklHX01MWDVfQ09SRV9FTl9EQ0I9eQorQ09ORklHX01MWDVfQ09SRV9JUE9J Qj15CisjIENPTkZJR19NTFg1X0VOX01BQ1NFQyBpcyBub3Qgc2V0CitDT05GSUdfTUxYNV9FTl9J UFNFQz15CitDT05GSUdfTUxYNV9FTl9UTFM9eQorQ09ORklHX01MWDVfU1dfU1RFRVJJTkc9eQor Q09ORklHX01MWDVfU0Y9eQorQ09ORklHX01MWDVfU0ZfTUFOQUdFUj15CitDT05GSUdfTUxYU1df Q09SRT1tCitDT05GSUdfTUxYU1dfQ09SRV9IV01PTj15CitDT05GSUdfTUxYU1dfQ09SRV9USEVS TUFMPXkKK0NPTkZJR19NTFhTV19QQ0k9bQorQ09ORklHX01MWFNXX0kyQz1tCitDT05GSUdfTUxY U1dfU1BFQ1RSVU09bQorQ09ORklHX01MWFNXX1NQRUNUUlVNX0RDQj15CitDT05GSUdfTUxYU1df TUlOSU1BTD1tCitDT05GSUdfTUxYRlc9bQorQ09ORklHX05FVF9WRU5ET1JfTUlDUkVMPXkKK0NP TkZJR19LUzg4NDI9bQorQ09ORklHX0tTODg1MT1tCitDT05GSUdfS1M4ODUxX01MTD1tCitDT05G SUdfS1NaODg0WF9QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfTUlDUk9DSElQPXkKK0NPTkZJR19F TkMyOEo2MD1tCisjIENPTkZJR19FTkMyOEo2MF9XUklURVZFUklGWSBpcyBub3Qgc2V0CitDT05G SUdfRU5DWDI0SjYwMD1tCitDT05GSUdfTEFONzQzWD1tCitDT05GSUdfTEFOOTY2WF9TV0lUQ0g9 bQorQ09ORklHX05FVF9WRU5ET1JfTUlDUk9TRU1JPXkKK0NPTkZJR19NU0NDX09DRUxPVF9TV0lU Q0hfTElCPW0KK0NPTkZJR19NU0NDX09DRUxPVF9TV0lUQ0g9bQorQ09ORklHX05FVF9WRU5ET1Jf TUlDUk9TT0ZUPXkKK0NPTkZJR19ORVRfVkVORE9SX01ZUkk9eQorQ09ORklHX01ZUkkxMEdFPW0K K0NPTkZJR19GRUFMTlg9bQorQ09ORklHX05FVF9WRU5ET1JfTkk9eQorQ09ORklHX05JX1hHRV9N QU5BR0VNRU5UX0VORVQ9bQorQ09ORklHX05FVF9WRU5ET1JfTkFUU0VNST15CitDT05GSUdfTkFU U0VNST1tCitDT05GSUdfTlM4MzgyMD1tCitDT05GSUdfTkVUX1ZFTkRPUl9ORVRFUklPTj15CitD T05GSUdfUzJJTz1tCitDT05GSUdfTkVUX1ZFTkRPUl9ORVRST05PTUU9eQorQ09ORklHX05GUD1t CitDT05GSUdfTkZQX0FQUF9GTE9XRVI9eQorQ09ORklHX05GUF9BUFBfQUJNX05JQz15CisjIENP TkZJR19ORlBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfODM5MD15CitDT05G SUdfUENNQ0lBX0FYTkVUPW0KK0NPTkZJR19ORTJLX1BDST1tCitDT05GSUdfUENNQ0lBX1BDTkVU PW0KK0NPTkZJR19ORVRfVkVORE9SX05WSURJQT15CitDT05GSUdfRk9SQ0VERVRIPW0KK0NPTkZJ R19ORVRfVkVORE9SX09LST15CitDT05GSUdfRVRIT0M9bQorQ09ORklHX05FVF9WRU5ET1JfUEFD S0VUX0VOR0lORVM9eQorQ09ORklHX0hBTUFDSEk9bQorQ09ORklHX1lFTExPV0ZJTj1tCitDT05G SUdfTkVUX1ZFTkRPUl9QRU5TQU5ETz15CitDT05GSUdfSU9OSUM9bQorQ09ORklHX05FVF9WRU5E T1JfUUxPR0lDPXkKK0NPTkZJR19RTEEzWFhYPW0KK0NPTkZJR19RTENOSUM9bQorQ09ORklHX1FM Q05JQ19TUklPVj15CitDT05GSUdfUUxDTklDX0RDQj15CitDT05GSUdfUUxDTklDX0hXTU9OPXkK K0NPTkZJR19ORVRYRU5fTklDPW0KK0NPTkZJR19RRUQ9bQorQ09ORklHX1FFRF9MTDI9eQorQ09O RklHX1FFRF9TUklPVj15CitDT05GSUdfUUVERT1tCitDT05GSUdfUUVEX1JETUE9eQorQ09ORklH X1FFRF9JU0NTST15CitDT05GSUdfUUVEX0ZDT0U9eQorQ09ORklHX1FFRF9PT089eQorQ09ORklH X05FVF9WRU5ET1JfQlJPQ0FERT15CitDT05GSUdfQk5BPW0KK0NPTkZJR19ORVRfVkVORE9SX1FV QUxDT01NPXkKK0NPTkZJR19RQ0E3MDAwPW0KK0NPTkZJR19RQ0E3MDAwX1NQST1tCitDT05GSUdf UUNBNzAwMF9VQVJUPW0KK0NPTkZJR19RQ09NX0VNQUM9bQorQ09ORklHX1JNTkVUPW0KK0NPTkZJ R19ORVRfVkVORE9SX1JEQz15CitDT05GSUdfUjYwNDA9bQorQ09ORklHX05FVF9WRU5ET1JfUkVB TFRFSz15CitDT05GSUdfODEzOUNQPW0KK0NPTkZJR184MTM5VE9PPW0KKyMgQ09ORklHXzgxMzlU T09fUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBz ZXQKK0NPTkZJR184MTM5VE9PXzgxMjk9eQorIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMg bm90IHNldAorQ09ORklHX1I4MTY5PW0KK0NPTkZJR19ORVRfVkVORE9SX1JFTkVTQVM9eQorQ09O RklHX05FVF9WRU5ET1JfUk9DS0VSPXkKK0NPTkZJR19ST0NLRVI9bQorQ09ORklHX05FVF9WRU5E T1JfU0FNU1VORz15CitDT05GSUdfU1hHQkVfRVRIPW0KK0NPTkZJR19ORVRfVkVORE9SX1NFRVE9 eQorQ09ORklHX05FVF9WRU5ET1JfU0lMQU49eQorQ09ORklHX1NDOTIwMzE9bQorQ09ORklHX05F VF9WRU5ET1JfU0lTPXkKK0NPTkZJR19TSVM5MDA9bQorQ09ORklHX1NJUzE5MD1tCitDT05GSUdf TkVUX1ZFTkRPUl9TT0xBUkZMQVJFPXkKK0NPTkZJR19TRkM9bQorQ09ORklHX1NGQ19NVEQ9eQor Q09ORklHX1NGQ19NQ0RJX01PTj15CitDT05GSUdfU0ZDX1NSSU9WPXkKK0NPTkZJR19TRkNfTUNE SV9MT0dHSU5HPXkKK0NPTkZJR19TRkNfRkFMQ09OPW0KK0NPTkZJR19TRkNfRkFMQ09OX01URD15 CisjIENPTkZJR19TRkNfU0lFTkEgaXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfU01TQz15 CitDT05GSUdfUENNQ0lBX1NNQzkxQzkyPW0KK0NPTkZJR19FUElDMTAwPW0KK0NPTkZJR19TTVND OTExWD1tCitDT05GSUdfU01TQzk0MjA9bQorQ09ORklHX05FVF9WRU5ET1JfU09DSU9ORVhUPXkK K0NPTkZJR19ORVRfVkVORE9SX1NUTUlDUk89eQorQ09ORklHX1NUTU1BQ19FVEg9bQorIyBDT05G SUdfU1RNTUFDX1NFTEZURVNUUyBpcyBub3Qgc2V0CitDT05GSUdfU1RNTUFDX1BMQVRGT1JNPW0K K0NPTkZJR19EV01BQ19EV0NfUU9TX0VUSD1tCitDT05GSUdfRFdNQUNfR0VORVJJQz1tCitDT05G SUdfRFdNQUNfSU5URUxfUExBVD1tCitDT05GSUdfRFdNQUNfTE9PTkdTT049bQorQ09ORklHX1NU TU1BQ19QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfU1VOPXkKK0NPTkZJR19IQVBQWU1FQUw9bQor Q09ORklHX1NVTkdFTT1tCitDT05GSUdfQ0FTU0lOST1tCitDT05GSUdfTklVPW0KK0NPTkZJR19O RVRfVkVORE9SX1NZTk9QU1lTPXkKK0NPTkZJR19EV0NfWExHTUFDPW0KK0NPTkZJR19EV0NfWExH TUFDX1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9URUhVVEk9eQorQ09ORklHX1RFSFVUST1tCitD T05GSUdfTkVUX1ZFTkRPUl9UST15CisjIENPTkZJR19USV9DUFNXX1BIWV9TRUwgaXMgbm90IHNl dAorQ09ORklHX1RMQU49bQorQ09ORklHX05FVF9WRU5ET1JfVkVSVEVYQ09NPXkKK0NPTkZJR19N U0UxMDJYPW0KK0NPTkZJR19ORVRfVkVORE9SX1ZJQT15CitDT05GSUdfVklBX1JISU5FPW0KK0NP TkZJR19WSUFfUkhJTkVfTU1JTz15CitDT05GSUdfVklBX1ZFTE9DSVRZPW0KK0NPTkZJR19ORVRf VkVORE9SX1dJWk5FVD15CitDT05GSUdfV0laTkVUX1c1MTAwPW0KK0NPTkZJR19XSVpORVRfVzUz MDA9bQorIyBDT05GSUdfV0laTkVUX0JVU19ESVJFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfV0la TkVUX0JVU19JTkRJUkVDVCBpcyBub3Qgc2V0CitDT05GSUdfV0laTkVUX0JVU19BTlk9eQorQ09O RklHX1dJWk5FVF9XNTEwMF9TUEk9bQorQ09ORklHX05FVF9WRU5ET1JfWElMSU5YPXkKK0NPTkZJ R19YSUxJTlhfRU1BQ0xJVEU9bQorQ09ORklHX1hJTElOWF9BWElfRU1BQz1tCitDT05GSUdfWElM SU5YX0xMX1RFTUFDPW0KK0NPTkZJR19ORVRfVkVORE9SX1hJUkNPTT15CitDT05GSUdfUENNQ0lB X1hJUkMyUFM9bQorQ09ORklHX0ZEREk9bQorQ09ORklHX0RFRlhYPW0KK0NPTkZJR19TS0ZQPW0K K0NPTkZJR19ISVBQST15CitDT05GSUdfUk9BRFJVTk5FUj1tCisjIENPTkZJR19ST0FEUlVOTkVS X0xBUkdFX1JJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19QSFlMSU5LPW0KK0NPTkZJR19QSFlMSUI9 eQorQ09ORklHX1NXUEhZPXkKK0NPTkZJR19MRURfVFJJR0dFUl9QSFk9eQorQ09ORklHX0ZJWEVE X1BIWT15CitDT05GSUdfU0ZQPW0KKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCitD T05GSUdfQU1EX1BIWT1tCitDT05GSUdfQURJTl9QSFk9bQorIyBDT05GSUdfQURJTjExMDBfUEhZ IGlzIG5vdCBzZXQKK0NPTkZJR19BUVVBTlRJQV9QSFk9bQorQ09ORklHX0FYODg3OTZCX1BIWT1t CitDT05GSUdfQlJPQURDT01fUEhZPW0KK0NPTkZJR19CQ001NDE0MF9QSFk9bQorQ09ORklHX0JD TTdYWFhfUEhZPW0KK0NPTkZJR19CQ004NDg4MV9QSFk9eQorQ09ORklHX0JDTTg3WFhfUEhZPW0K K0NPTkZJR19CQ01fTkVUX1BIWUxJQj1tCitDT05GSUdfQ0lDQURBX1BIWT1tCitDT05GSUdfQ09S VElOQV9QSFk9bQorQ09ORklHX0RBVklDT01fUEhZPW0KK0NPTkZJR19JQ1BMVVNfUEhZPW0KK0NP TkZJR19MWFRfUEhZPW0KK0NPTkZJR19JTlRFTF9YV0FZX1BIWT1tCitDT05GSUdfTFNJX0VUMTAx MUNfUEhZPW0KK0NPTkZJR19NQVJWRUxMX1BIWT1tCitDT05GSUdfTUFSVkVMTF8xMEdfUEhZPW0K K0NPTkZJR19NQVJWRUxMXzg4WDIyMjJfUEhZPW0KK0NPTkZJR19NQVhMSU5FQVJfR1BIWT1tCitD T05GSUdfTUVESUFURUtfR0VfUEhZPW0KK0NPTkZJR19NSUNSRUxfUEhZPW0KK0NPTkZJR19NSUNS T0NISVBfUEhZPW0KK0NPTkZJR19NSUNST0NISVBfVDFfUEhZPW0KK0NPTkZJR19NSUNST1NFTUlf UEhZPW0KK0NPTkZJR19NT1RPUkNPTU1fUEhZPW0KK0NPTkZJR19OQVRJT05BTF9QSFk9bQorQ09O RklHX05YUF9DNDVfVEpBMTFYWF9QSFk9bQorQ09ORklHX05YUF9USkExMVhYX1BIWT1tCitDT05G SUdfQVQ4MDNYX1BIWT1tCitDT05GSUdfUVNFTUlfUEhZPW0KK0NPTkZJR19SRUFMVEVLX1BIWT1t CitDT05GSUdfUkVORVNBU19QSFk9bQorQ09ORklHX1JPQ0tDSElQX1BIWT1tCitDT05GSUdfU01T Q19QSFk9bQorQ09ORklHX1NURTEwWFA9bQorQ09ORklHX1RFUkFORVRJQ1NfUEhZPW0KK0NPTkZJ R19EUDgzODIyX1BIWT1tCitDT05GSUdfRFA4M1RDODExX1BIWT1tCitDT05GSUdfRFA4Mzg0OF9Q SFk9bQorQ09ORklHX0RQODM4NjdfUEhZPW0KK0NPTkZJR19EUDgzODY5X1BIWT1tCisjIENPTkZJ R19EUDgzVEQ1MTBfUEhZIGlzIG5vdCBzZXQKK0NPTkZJR19WSVRFU1NFX1BIWT1tCitDT05GSUdf WElMSU5YX0dNSUkyUkdNSUk9bQorQ09ORklHX01JQ1JFTF9LUzg5OTVNQT1tCisjIENPTkZJR19Q U0VfQ09OVFJPTExFUiBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0RFVj1tCitDT05GSUdfQ0FOX1ZD QU49bQorQ09ORklHX0NBTl9WWENBTj1tCitDT05GSUdfQ0FOX05FVExJTks9eQorQ09ORklHX0NB Tl9DQUxDX0JJVFRJTUlORz15CitDT05GSUdfQ0FOX1JYX09GRkxPQUQ9eQorIyBDT05GSUdfQ0FO X0NBTjMyNyBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0ZMRVhDQU49bQorIyBDT05GSUdfQ0FOX0dS Q0FOIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fS1ZBU0VSX1BDSUVGRD1tCitDT05GSUdfQ0FOX1NM Q0FOPW0KK0NPTkZJR19DQU5fQ19DQU49bQorIyBDT05GSUdfQ0FOX0NfQ0FOX1BMQVRGT1JNIGlz IG5vdCBzZXQKK0NPTkZJR19DQU5fQ19DQU5fUENJPW0KKyMgQ09ORklHX0NBTl9DQzc3MCBpcyBu b3Qgc2V0CisjIENPTkZJR19DQU5fQ1RVQ0FORkRfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NB Tl9DVFVDQU5GRF9QTEFURk9STSBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0lGSV9DQU5GRD1tCitD T05GSUdfQ0FOX01fQ0FOPW0KK0NPTkZJR19DQU5fTV9DQU5fUENJPW0KK0NPTkZJR19DQU5fTV9D QU5fUExBVEZPUk09bQorQ09ORklHX0NBTl9NX0NBTl9UQ0FONFg1WD1tCitDT05GSUdfQ0FOX1BF QUtfUENJRUZEPW0KK0NPTkZJR19DQU5fU0pBMTAwMD1tCitDT05GSUdfQ0FOX0VNU19QQ0k9bQor Q09ORklHX0NBTl9FTVNfUENNQ0lBPW0KK0NPTkZJR19DQU5fRjgxNjAxPW0KK0NPTkZJR19DQU5f S1ZBU0VSX1BDST1tCitDT05GSUdfQ0FOX1BFQUtfUENJPW0KK0NPTkZJR19DQU5fUEVBS19QQ0lF Qz15CitDT05GSUdfQ0FOX1BFQUtfUENNQ0lBPW0KK0NPTkZJR19DQU5fUExYX1BDST1tCisjIENP TkZJR19DQU5fU0pBMTAwMF9JU0EgaXMgbm90IHNldAorIyBDT05GSUdfQ0FOX1NKQTEwMDBfUExB VEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NBTl9TT0ZUSU5HPW0KK0NPTkZJR19DQU5fU09GVElO R19DUz1tCisKKyMKKyMgQ0FOIFNQSSBpbnRlcmZhY2VzCisjCitDT05GSUdfQ0FOX0hJMzExWD1t CisjIENPTkZJR19DQU5fTUNQMjUxWCBpcyBub3Qgc2V0CisjIENPTkZJR19DQU5fTUNQMjUxWEZE IGlzIG5vdCBzZXQKKyMgZW5kIG9mIENBTiBTUEkgaW50ZXJmYWNlcworCisjCisjIENBTiBVU0Ig aW50ZXJmYWNlcworIworQ09ORklHX0NBTl84REVWX1VTQj1tCitDT05GSUdfQ0FOX0VNU19VU0I9 bQorIyBDT05GSUdfQ0FOX0VTRF9VU0IgaXMgbm90IHNldAorQ09ORklHX0NBTl9FVEFTX0VTNThY PW0KK0NPTkZJR19DQU5fR1NfVVNCPW0KK0NPTkZJR19DQU5fS1ZBU0VSX1VTQj1tCitDT05GSUdf Q0FOX01DQkFfVVNCPW0KK0NPTkZJR19DQU5fUEVBS19VU0I9bQorQ09ORklHX0NBTl9VQ0FOPW0K KyMgZW5kIG9mIENBTiBVU0IgaW50ZXJmYWNlcworCisjIENPTkZJR19DQU5fREVCVUdfREVWSUNF UyBpcyBub3Qgc2V0CisKKyMKKyMgTUNUUCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX01DVFBf U0VSSUFMPW0KK0NPTkZJR19NQ1RQX1RSQU5TUE9SVF9JMkM9bQorIyBlbmQgb2YgTUNUUCBEZXZp Y2UgRHJpdmVycworCitDT05GSUdfTURJT19ERVZJQ0U9eQorQ09ORklHX01ESU9fQlVTPXkKK0NP TkZJR19GV05PREVfTURJTz15CitDT05GSUdfT0ZfTURJTz15CitDT05GSUdfTURJT19ERVZSRVM9 eQorQ09ORklHX01ESU9fQklUQkFORz1tCitDT05GSUdfTURJT19CQ01fVU5JTUFDPW0KK0NPTkZJ R19NRElPX0NBVklVTT1tCitDT05GSUdfTURJT19HUElPPW0KK0NPTkZJR19NRElPX0hJU0lfRkVN QUM9bQorQ09ORklHX01ESU9fSTJDPW0KK0NPTkZJR19NRElPX01WVVNCPW0KK0NPTkZJR19NRElP X01TQ0NfTUlJTT1tCitDT05GSUdfTURJT19PQ1RFT049bQorQ09ORklHX01ESU9fSVBRNDAxOT1t CitDT05GSUdfTURJT19JUFE4MDY0PW0KK0NPTkZJR19NRElPX1RIVU5ERVI9bQorCisjCisjIE1E SU8gTXVsdGlwbGV4ZXJzCisjCitDT05GSUdfTURJT19CVVNfTVVYPW0KK0NPTkZJR19NRElPX0JV U19NVVhfR1BJTz1tCitDT05GSUdfTURJT19CVVNfTVVYX01VTFRJUExFWEVSPW0KK0NPTkZJR19N RElPX0JVU19NVVhfTU1JT1JFRz1tCisKKyMKKyMgUENTIGRldmljZSBkcml2ZXJzCisjCitDT05G SUdfUENTX1hQQ1M9bQorQ09ORklHX1BDU19MWU5YPW0KKyMgZW5kIG9mIFBDUyBkZXZpY2UgZHJp dmVycworCitDT05GSUdfUExJUD1tCitDT05GSUdfUFBQPW0KK0NPTkZJR19QUFBfQlNEQ09NUD1t CitDT05GSUdfUFBQX0RFRkxBVEU9bQorQ09ORklHX1BQUF9GSUxURVI9eQorQ09ORklHX1BQUF9N UFBFPW0KK0NPTkZJR19QUFBfTVVMVElMSU5LPXkKK0NPTkZJR19QUFBPQVRNPW0KK0NPTkZJR19Q UFBPRT1tCitDT05GSUdfUFBUUD1tCitDT05GSUdfUFBQT0wyVFA9bQorQ09ORklHX1BQUF9BU1lO Qz1tCitDT05GSUdfUFBQX1NZTkNfVFRZPW0KK0NPTkZJR19TTElQPW0KK0NPTkZJR19TTEhDPW0K K0NPTkZJR19TTElQX0NPTVBSRVNTRUQ9eQorQ09ORklHX1NMSVBfU01BUlQ9eQorQ09ORklHX1NM SVBfTU9ERV9TTElQNj15CisKKyMKKyMgSG9zdC1zaWRlIFVTQiBzdXBwb3J0IGlzIG5lZWRlZCBm b3IgVVNCIE5ldHdvcmsgQWRhcHRlciBzdXBwb3J0CisjCitDT05GSUdfVVNCX05FVF9EUklWRVJT PW0KK0NPTkZJR19VU0JfQ0FUQz1tCitDT05GSUdfVVNCX0tBV0VUSD1tCitDT05GSUdfVVNCX1BF R0FTVVM9bQorQ09ORklHX1VTQl9SVEw4MTUwPW0KK0NPTkZJR19VU0JfUlRMODE1Mj1tCitDT05G SUdfVVNCX0xBTjc4WFg9bQorQ09ORklHX1VTQl9VU0JORVQ9bQorQ09ORklHX1VTQl9ORVRfQVg4 ODE3WD1tCitDT05GSUdfVVNCX05FVF9BWDg4MTc5XzE3OEE9bQorQ09ORklHX1VTQl9ORVRfQ0RD RVRIRVI9bQorQ09ORklHX1VTQl9ORVRfQ0RDX0VFTT1tCitDT05GSUdfVVNCX05FVF9DRENfTkNN PW0KK0NPTkZJR19VU0JfTkVUX0hVQVdFSV9DRENfTkNNPW0KK0NPTkZJR19VU0JfTkVUX0NEQ19N QklNPW0KK0NPTkZJR19VU0JfTkVUX0RNOTYwMT1tCitDT05GSUdfVVNCX05FVF9TUjk3MDA9bQor Q09ORklHX1VTQl9ORVRfU1I5ODAwPW0KK0NPTkZJR19VU0JfTkVUX1NNU0M3NVhYPW0KK0NPTkZJ R19VU0JfTkVUX1NNU0M5NVhYPW0KK0NPTkZJR19VU0JfTkVUX0dMNjIwQT1tCitDT05GSUdfVVNC X05FVF9ORVQxMDgwPW0KK0NPTkZJR19VU0JfTkVUX1BMVVNCPW0KK0NPTkZJR19VU0JfTkVUX01D Uzc4MzA9bQorQ09ORklHX1VTQl9ORVRfUk5ESVNfSE9TVD1tCitDT05GSUdfVVNCX05FVF9DRENf U1VCU0VUX0VOQUJMRT1tCitDT05GSUdfVVNCX05FVF9DRENfU1VCU0VUPW0KK0NPTkZJR19VU0Jf QUxJX001NjMyPXkKK0NPTkZJR19VU0JfQU4yNzIwPXkKK0NPTkZJR19VU0JfQkVMS0lOPXkKK0NP TkZJR19VU0JfQVJNTElOVVg9eQorQ09ORklHX1VTQl9FUFNPTjI4ODg9eQorQ09ORklHX1VTQl9L QzIxOTA9eQorQ09ORklHX1VTQl9ORVRfWkFVUlVTPW0KK0NPTkZJR19VU0JfTkVUX0NYODIzMTBf RVRIPW0KK0NPTkZJR19VU0JfTkVUX0tBTE1JQT1tCitDT05GSUdfVVNCX05FVF9RTUlfV1dBTj1t CitDT05GSUdfVVNCX0hTTz1tCitDT05GSUdfVVNCX05FVF9JTlQ1MVgxPW0KK0NPTkZJR19VU0Jf Q0RDX1BIT05FVD1tCitDT05GSUdfVVNCX0lQSEVUSD1tCitDT05GSUdfVVNCX1NJRVJSQV9ORVQ9 bQorQ09ORklHX1VTQl9WTDYwMD1tCitDT05GSUdfVVNCX05FVF9DSDkyMDA9bQorQ09ORklHX1VT Ql9ORVRfQVFDMTExPW0KK0NPTkZJR19VU0JfUlRMODE1M19FQ009bQorQ09ORklHX1dMQU49eQor Q09ORklHX1dMQU5fVkVORE9SX0FETVRFSz15CitDT05GSUdfQURNODIxMT1tCitDT05GSUdfQVRI X0NPTU1PTj1tCitDT05GSUdfV0xBTl9WRU5ET1JfQVRIPXkKKyMgQ09ORklHX0FUSF9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfQVRINUs9bQorIyBDT05GSUdfQVRINUtfREVCVUcgaXMgbm90IHNl dAorIyBDT05GSUdfQVRINUtfVFJBQ0VSIGlzIG5vdCBzZXQKK0NPTkZJR19BVEg1S19QQ0k9eQor Q09ORklHX0FUSDlLX0hXPW0KK0NPTkZJR19BVEg5S19DT01NT049bQorQ09ORklHX0FUSDlLX0JU Q09FWF9TVVBQT1JUPXkKK0NPTkZJR19BVEg5Sz1tCitDT05GSUdfQVRIOUtfUENJPXkKKyMgQ09O RklHX0FUSDlLX0FIQiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEg5S19ERUJVR0ZTIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0FUSDlLX0RZTkFDSyBpcyBub3Qgc2V0CitDT05GSUdfQVRIOUtfV09XPXkK K0NPTkZJR19BVEg5S19SRktJTEw9eQorQ09ORklHX0FUSDlLX0NIQU5ORUxfQ09OVEVYVD15CitD T05GSUdfQVRIOUtfUENPRU09eQorQ09ORklHX0FUSDlLX1BDSV9OT19FRVBST009bQorQ09ORklH X0FUSDlLX0hUQz1tCisjIENPTkZJR19BVEg5S19IVENfREVCVUdGUyBpcyBub3Qgc2V0CitDT05G SUdfQVRIOUtfSFdSTkc9eQorQ09ORklHX0NBUkw5MTcwPW0KK0NPTkZJR19DQVJMOTE3MF9MRURT PXkKKyMgQ09ORklHX0NBUkw5MTcwX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0NBUkw5MTcw X1dQQz15CitDT05GSUdfQ0FSTDkxNzBfSFdSTkc9eQorQ09ORklHX0FUSDZLTD1tCitDT05GSUdf QVRINktMX1NESU89bQorQ09ORklHX0FUSDZLTF9VU0I9bQorIyBDT05GSUdfQVRINktMX0RFQlVH IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUSDZLTF9UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19B UjU1MjM9bQorQ09ORklHX1dJTDYyMTA9bQorQ09ORklHX1dJTDYyMTBfSVNSX0NPUj15CitDT05G SUdfV0lMNjIxMF9UUkFDSU5HPXkKKyMgQ09ORklHX1dJTDYyMTBfREVCVUdGUyBpcyBub3Qgc2V0 CitDT05GSUdfQVRIMTBLPW0KK0NPTkZJR19BVEgxMEtfQ0U9eQorQ09ORklHX0FUSDEwS19QQ0k9 bQorQ09ORklHX0FUSDEwS19BSEI9eQorQ09ORklHX0FUSDEwS19TRElPPW0KK0NPTkZJR19BVEgx MEtfVVNCPW0KKyMgQ09ORklHX0FUSDEwS19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEgx MEtfREVCVUdGUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEgxMEtfVFJBQ0lORyBpcyBub3Qgc2V0 CitDT05GSUdfV0NOMzZYWD1tCisjIENPTkZJR19XQ04zNlhYX0RFQlVHRlMgaXMgbm90IHNldAor Q09ORklHX0FUSDExSz1tCitDT05GSUdfQVRIMTFLX0FIQj1tCitDT05GSUdfQVRIMTFLX1BDST1t CisjIENPTkZJR19BVEgxMUtfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0FUSDExS19ERUJVR0ZT PXkKKyMgQ09ORklHX0FUSDExS19UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19BVEgxMUtfU1BF Q1RSQUw9eQorQ09ORklHX1dMQU5fVkVORE9SX0FUTUVMPXkKK0NPTkZJR19BVE1FTD1tCitDT05G SUdfUENJX0FUTUVMPW0KK0NPTkZJR19QQ01DSUFfQVRNRUw9bQorQ09ORklHX0FUNzZDNTBYX1VT Qj1tCitDT05GSUdfV0xBTl9WRU5ET1JfQlJPQURDT009eQorQ09ORklHX0I0Mz1tCitDT05GSUdf QjQzX0JDTUE9eQorQ09ORklHX0I0M19TU0I9eQorQ09ORklHX0I0M19CVVNFU19CQ01BX0FORF9T U0I9eQorIyBDT05GSUdfQjQzX0JVU0VTX0JDTUEgaXMgbm90IHNldAorIyBDT05GSUdfQjQzX0JV U0VTX1NTQiBpcyBub3Qgc2V0CitDT05GSUdfQjQzX1BDSV9BVVRPU0VMRUNUPXkKK0NPTkZJR19C NDNfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNfU0RJTz15CitDT05GSUdfQjQzX0JD TUFfUElPPXkKK0NPTkZJR19CNDNfUElPPXkKK0NPTkZJR19CNDNfUEhZX0c9eQorQ09ORklHX0I0 M19QSFlfTj15CitDT05GSUdfQjQzX1BIWV9MUD15CitDT05GSUdfQjQzX1BIWV9IVD15CitDT05G SUdfQjQzX0xFRFM9eQorQ09ORklHX0I0M19IV1JORz15CisjIENPTkZJR19CNDNfREVCVUcgaXMg bm90IHNldAorQ09ORklHX0I0M0xFR0FDWT1tCitDT05GSUdfQjQzTEVHQUNZX1BDSV9BVVRPU0VM RUNUPXkKK0NPTkZJR19CNDNMRUdBQ1lfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNM RUdBQ1lfTEVEUz15CitDT05GSUdfQjQzTEVHQUNZX0hXUk5HPXkKKyMgQ09ORklHX0I0M0xFR0FD WV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQjQzTEVHQUNZX0RNQT15CitDT05GSUdfQjQzTEVH QUNZX1BJTz15CitDT05GSUdfQjQzTEVHQUNZX0RNQV9BTkRfUElPX01PREU9eQorIyBDT05GSUdf QjQzTEVHQUNZX0RNQV9NT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M0xFR0FDWV9QSU9fTU9E RSBpcyBub3Qgc2V0CitDT05GSUdfQlJDTVVUSUw9bQorQ09ORklHX0JSQ01TTUFDPW0KK0NPTkZJ R19CUkNNU01BQ19MRURTPXkKK0NPTkZJR19CUkNNRk1BQz1tCitDT05GSUdfQlJDTUZNQUNfUFJP VE9fQkNEQz15CitDT05GSUdfQlJDTUZNQUNfUFJPVE9fTVNHQlVGPXkKK0NPTkZJR19CUkNNRk1B Q19TRElPPXkKK0NPTkZJR19CUkNNRk1BQ19VU0I9eQorQ09ORklHX0JSQ01GTUFDX1BDSUU9eQor IyBDT05GSUdfQlJDTV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSQ01EQkcgaXMgbm90 IHNldAorQ09ORklHX1dMQU5fVkVORE9SX0NJU0NPPXkKK0NPTkZJR19BSVJPX0NTPW0KK0NPTkZJ R19XTEFOX1ZFTkRPUl9JTlRFTD15CitDT05GSUdfSVBXMjEwMD1tCitDT05GSUdfSVBXMjEwMF9N T05JVE9SPXkKK0NPTkZJR19JUFcyMTAwX0RFQlVHPXkKK0NPTkZJR19JUFcyMjAwPW0KK0NPTkZJ R19JUFcyMjAwX01PTklUT1I9eQorQ09ORklHX0lQVzIyMDBfUkFESU9UQVA9eQorQ09ORklHX0lQ VzIyMDBfUFJPTUlTQ1VPVVM9eQorQ09ORklHX0lQVzIyMDBfUU9TPXkKK0NPTkZJR19JUFcyMjAw X0RFQlVHPXkKK0NPTkZJR19MSUJJUFc9bQorQ09ORklHX0xJQklQV19ERUJVRz15CitDT05GSUdf SVdMRUdBQ1k9bQorQ09ORklHX0lXTDQ5NjU9bQorQ09ORklHX0lXTDM5NDU9bQorCisjCisjIGl3 bDM5NDUgLyBpd2w0OTY1IERlYnVnZ2luZyBPcHRpb25zCisjCisjIENPTkZJR19JV0xFR0FDWV9E RUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xFR0FDWV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIGl3bDM5NDUgLyBpd2w0OTY1IERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJR19JV0xX SUZJPW0KK0NPTkZJR19JV0xXSUZJX0xFRFM9eQorQ09ORklHX0lXTERWTT1tCitDT05GSUdfSVdM TVZNPW0KK0NPTkZJR19JV0xXSUZJX09QTU9ERV9NT0RVTEFSPXkKKworIworIyBEZWJ1Z2dpbmcg T3B0aW9ucworIworQ09ORklHX0lXTFdJRklfREVCVUc9eQorQ09ORklHX0lXTFdJRklfREVCVUdG Uz15CisjIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMgZW5kIG9m IERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJR19XTEFOX1ZFTkRPUl9JTlRFUlNJTD15CitDT05G SUdfSE9TVEFQPW0KK0NPTkZJR19IT1NUQVBfRklSTVdBUkU9eQorQ09ORklHX0hPU1RBUF9GSVJN V0FSRV9OVlJBTT15CitDT05GSUdfSE9TVEFQX1BMWD1tCitDT05GSUdfSE9TVEFQX1BDST1tCitD T05GSUdfSE9TVEFQX0NTPW0KK0NPTkZJR19IRVJNRVM9bQorQ09ORklHX0hFUk1FU19QUklTTT15 CitDT05GSUdfSEVSTUVTX0NBQ0hFX0ZXX09OX0lOSVQ9eQorQ09ORklHX1BMWF9IRVJNRVM9bQor Q09ORklHX1RNRF9IRVJNRVM9bQorQ09ORklHX05PUlRFTF9IRVJNRVM9bQorQ09ORklHX1BDSV9I RVJNRVM9bQorQ09ORklHX1BDTUNJQV9IRVJNRVM9bQorQ09ORklHX1BDTUNJQV9TUEVDVFJVTT1t CitDT05GSUdfT1JJTk9DT19VU0I9bQorQ09ORklHX1A1NF9DT01NT049bQorQ09ORklHX1A1NF9V U0I9bQorQ09ORklHX1A1NF9QQ0k9bQorIyBDT05GSUdfUDU0X1NQSSBpcyBub3Qgc2V0CitDT05G SUdfUDU0X0xFRFM9eQorQ09ORklHX1dMQU5fVkVORE9SX01BUlZFTEw9eQorQ09ORklHX0xJQkVS VEFTPW0KK0NPTkZJR19MSUJFUlRBU19VU0I9bQorQ09ORklHX0xJQkVSVEFTX0NTPW0KK0NPTkZJ R19MSUJFUlRBU19TRElPPW0KKyMgQ09ORklHX0xJQkVSVEFTX1NQSSBpcyBub3Qgc2V0CisjIENP TkZJR19MSUJFUlRBU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTElCRVJUQVNfTUVTSD15CitD T05GSUdfTElCRVJUQVNfVEhJTkZJUk09bQorIyBDT05GSUdfTElCRVJUQVNfVEhJTkZJUk1fREVC VUcgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTX1RISU5GSVJNX1VTQj1tCitDT05GSUdfTVdJ RklFWD1tCitDT05GSUdfTVdJRklFWF9TRElPPW0KK0NPTkZJR19NV0lGSUVYX1BDSUU9bQorQ09O RklHX01XSUZJRVhfVVNCPW0KK0NPTkZJR19NV0w4Sz1tCitDT05GSUdfV0xBTl9WRU5ET1JfTUVE SUFURUs9eQorQ09ORklHX01UNzYwMVU9bQorQ09ORklHX01UNzZfQ09SRT1tCitDT05GSUdfTVQ3 Nl9MRURTPXkKK0NPTkZJR19NVDc2X1VTQj1tCitDT05GSUdfTVQ3Nl9TRElPPW0KK0NPTkZJR19N VDc2eDAyX0xJQj1tCitDT05GSUdfTVQ3NngwMl9VU0I9bQorQ09ORklHX01UNzZfQ09OTkFDX0xJ Qj1tCitDT05GSUdfTVQ3NngwX0NPTU1PTj1tCitDT05GSUdfTVQ3NngwVT1tCitDT05GSUdfTVQ3 NngwRT1tCitDT05GSUdfTVQ3NngyX0NPTU1PTj1tCitDT05GSUdfTVQ3NngyRT1tCitDT05GSUdf TVQ3NngyVT1tCitDT05GSUdfTVQ3NjAzRT1tCitDT05GSUdfTVQ3NjE1X0NPTU1PTj1tCitDT05G SUdfTVQ3NjE1RT1tCitDT05GSUdfTVQ3NjYzX1VTQl9TRElPX0NPTU1PTj1tCitDT05GSUdfTVQ3 NjYzVT1tCitDT05GSUdfTVQ3NjYzUz1tCitDT05GSUdfTVQ3OTE1RT1tCitDT05GSUdfTVQ3OTIx X0NPTU1PTj1tCitDT05GSUdfTVQ3OTIxRT1tCitDT05GSUdfTVQ3OTIxUz1tCitDT05GSUdfTVQ3 OTIxVT1tCitDT05GSUdfV0xBTl9WRU5ET1JfTUlDUk9DSElQPXkKKyMgQ09ORklHX1dJTEMxMDAw X1NESU8gaXMgbm90IHNldAorIyBDT05GSUdfV0lMQzEwMDBfU1BJIGlzIG5vdCBzZXQKK0NPTkZJ R19XTEFOX1ZFTkRPUl9QVVJFTElGST15CisjIENPTkZJR19QTEZYTEMgaXMgbm90IHNldAorQ09O RklHX1dMQU5fVkVORE9SX1JBTElOSz15CitDT05GSUdfUlQyWDAwPW0KK0NPTkZJR19SVDI0MDBQ Q0k9bQorQ09ORklHX1JUMjUwMFBDST1tCitDT05GSUdfUlQ2MVBDST1tCitDT05GSUdfUlQyODAw UENJPW0KK0NPTkZJR19SVDI4MDBQQ0lfUlQzM1hYPXkKK0NPTkZJR19SVDI4MDBQQ0lfUlQzNVhY PXkKK0NPTkZJR19SVDI4MDBQQ0lfUlQ1M1hYPXkKK0NPTkZJR19SVDI4MDBQQ0lfUlQzMjkwPXkK K0NPTkZJR19SVDI1MDBVU0I9bQorQ09ORklHX1JUNzNVU0I9bQorQ09ORklHX1JUMjgwMFVTQj1t CitDT05GSUdfUlQyODAwVVNCX1JUMzNYWD15CitDT05GSUdfUlQyODAwVVNCX1JUMzVYWD15CitD T05GSUdfUlQyODAwVVNCX1JUMzU3Mz15CitDT05GSUdfUlQyODAwVVNCX1JUNTNYWD15CitDT05G SUdfUlQyODAwVVNCX1JUNTVYWD15CitDT05GSUdfUlQyODAwVVNCX1VOS05PV049eQorQ09ORklH X1JUMjgwMF9MSUI9bQorQ09ORklHX1JUMjgwMF9MSUJfTU1JTz1tCitDT05GSUdfUlQyWDAwX0xJ Ql9NTUlPPW0KK0NPTkZJR19SVDJYMDBfTElCX1BDST1tCitDT05GSUdfUlQyWDAwX0xJQl9VU0I9 bQorQ09ORklHX1JUMlgwMF9MSUI9bQorQ09ORklHX1JUMlgwMF9MSUJfRklSTVdBUkU9eQorQ09O RklHX1JUMlgwMF9MSUJfQ1JZUFRPPXkKK0NPTkZJR19SVDJYMDBfTElCX0xFRFM9eQorIyBDT05G SUdfUlQyWDAwX0xJQl9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUMlgwMF9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfV0xBTl9WRU5ET1JfUkVBTFRFSz15CitDT05GSUdfUlRMODE4MD1t CitDT05GSUdfUlRMODE4Nz1tCitDT05GSUdfUlRMODE4N19MRURTPXkKK0NPTkZJR19SVExfQ0FS RFM9bQorQ09ORklHX1JUTDgxOTJDRT1tCitDT05GSUdfUlRMODE5MlNFPW0KK0NPTkZJR19SVEw4 MTkyREU9bQorQ09ORklHX1JUTDg3MjNBRT1tCitDT05GSUdfUlRMODcyM0JFPW0KK0NPTkZJR19S VEw4MTg4RUU9bQorQ09ORklHX1JUTDgxOTJFRT1tCitDT05GSUdfUlRMODgyMUFFPW0KK0NPTkZJ R19SVEw4MTkyQ1U9bQorQ09ORklHX1JUTFdJRkk9bQorQ09ORklHX1JUTFdJRklfUENJPW0KK0NP TkZJR19SVExXSUZJX1VTQj1tCitDT05GSUdfUlRMV0lGSV9ERUJVRz15CitDT05GSUdfUlRMODE5 MkNfQ09NTU9OPW0KK0NPTkZJR19SVEw4NzIzX0NPTU1PTj1tCitDT05GSUdfUlRMQlRDT0VYSVNU PW0KK0NPTkZJR19SVEw4WFhYVT1tCitDT05GSUdfUlRMOFhYWFVfVU5URVNURUQ9eQorQ09ORklH X1JUVzg4PW0KK0NPTkZJR19SVFc4OF9DT1JFPW0KK0NPTkZJR19SVFc4OF9QQ0k9bQorQ09ORklH X1JUVzg4Xzg4MjJCPW0KK0NPTkZJR19SVFc4OF84ODIyQz1tCitDT05GSUdfUlRXODhfODcyM0Q9 bQorQ09ORklHX1JUVzg4Xzg4MjFDPW0KK0NPTkZJR19SVFc4OF84ODIyQkU9bQorQ09ORklHX1JU Vzg4Xzg4MjJDRT1tCitDT05GSUdfUlRXODhfODcyM0RFPW0KK0NPTkZJR19SVFc4OF84ODIxQ0U9 bQorIyBDT05GSUdfUlRXODhfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUlRXODhfREVCVUdG UyBpcyBub3Qgc2V0CitDT05GSUdfUlRXODk9bQorQ09ORklHX1JUVzg5X0NPUkU9bQorQ09ORklH X1JUVzg5X1BDST1tCitDT05GSUdfUlRXODlfODg1MkE9bQorQ09ORklHX1JUVzg5Xzg4NTJDPW0K K0NPTkZJR19SVFc4OV84ODUyQUU9bQorQ09ORklHX1JUVzg5Xzg4NTJDRT1tCisjIENPTkZJR19S VFc4OV9ERUJVR01TRyBpcyBub3Qgc2V0CisjIENPTkZJR19SVFc4OV9ERUJVR0ZTIGlzIG5vdCBz ZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9SU0k9eQorQ09ORklHX1JTSV85MVg9bQorIyBDT05GSUdf UlNJX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX1JTSV9TRElPPW0KK0NPTkZJR19SU0lfVVNC PW0KK0NPTkZJR19SU0lfQ09FWD15CitDT05GSUdfV0xBTl9WRU5ET1JfU0lMQUJTPXkKK0NPTkZJ R19XRlg9bQorQ09ORklHX1dMQU5fVkVORE9SX1NUPXkKK0NPTkZJR19DVzEyMDA9bQorQ09ORklH X0NXMTIwMF9XTEFOX1NESU89bQorIyBDT05GSUdfQ1cxMjAwX1dMQU5fU1BJIGlzIG5vdCBzZXQK K0NPTkZJR19XTEFOX1ZFTkRPUl9UST15CitDT05GSUdfV0wxMjUxPW0KKyMgQ09ORklHX1dMMTI1 MV9TUEkgaXMgbm90IHNldAorQ09ORklHX1dMMTI1MV9TRElPPW0KK0NPTkZJR19XTDEyWFg9bQor Q09ORklHX1dMMThYWD1tCitDT05GSUdfV0xDT1JFPW0KKyMgQ09ORklHX1dMQ09SRV9TUEkgaXMg bm90IHNldAorQ09ORklHX1dMQ09SRV9TRElPPW0KKyMgQ09ORklHX1dJTElOS19QTEFURk9STV9E QVRBIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9aWURBUz15CitDT05GSUdfVVNCX1pE MTIwMT1tCitDT05GSUdfWkQxMjExUlc9bQorIyBDT05GSUdfWkQxMjExUldfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX1dMQU5fVkVORE9SX1FVQU5URU5OQT15CitDT05GSUdfUVRORk1BQz1tCitD T05GSUdfUVRORk1BQ19QQ0lFPW0KK0NPTkZJR19QQ01DSUFfUkFZQ1M9bQorQ09ORklHX1BDTUNJ QV9XTDM1MDE9bQorQ09ORklHX01BQzgwMjExX0hXU0lNPW0KK0NPTkZJR19VU0JfTkVUX1JORElT X1dMQU49bQorQ09ORklHX1ZJUlRfV0lGST1tCisjIENPTkZJR19XQU4gaXMgbm90IHNldAorQ09O RklHX0lFRUU4MDIxNTRfRFJJVkVSUz1tCitDT05GSUdfSUVFRTgwMjE1NF9GQUtFTEI9bQorIyBD T05GSUdfSUVFRTgwMjE1NF9BVDg2UkYyMzAgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjE1 NF9NUkYyNEo0MCBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTU0X0NDMjUyMCBpcyBub3Qg c2V0CisjIENPTkZJR19JRUVFODAyMTU0X0FUVVNCIGlzIG5vdCBzZXQKK0NPTkZJR19JRUVFODAy MTU0X0FERjcyNDI9bQorQ09ORklHX0lFRUU4MDIxNTRfQ0E4MjEwPW0KK0NPTkZJR19JRUVFODAy MTU0X0NBODIxMF9ERUJVR0ZTPXkKK0NPTkZJR19JRUVFODAyMTU0X01DUjIwQT1tCitDT05GSUdf SUVFRTgwMjE1NF9IV1NJTT1tCisKKyMKKyMgV2lyZWxlc3MgV0FOCisjCitDT05GSUdfV1dBTj15 CitDT05GSUdfV1dBTl9ERUJVR0ZTPXkKK0NPTkZJR19XV0FOX0hXU0lNPW0KK0NPTkZJR19NSElf V1dBTl9DVFJMPW0KK0NPTkZJR19NSElfV1dBTl9NQklNPW0KK0NPTkZJR19SUE1TR19XV0FOX0NU Ukw9bQorIyBDT05GSUdfSU9TTSBpcyBub3Qgc2V0CitDT05GSUdfTVRLX1Q3WFg9bQorIyBlbmQg b2YgV2lyZWxlc3MgV0FOCisKK0NPTkZJR19WTVhORVQzPW0KK0NPTkZJR19VU0I0X05FVD1tCitD T05GSUdfTkVUREVWU0lNPW0KK0NPTkZJR19ORVRfRkFJTE9WRVI9bQorIyBDT05GSUdfSVNETiBp cyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15 CitDT05GSUdfSU5QVVRfTEVEUz15CitDT05GSUdfSU5QVVRfRkZfTUVNTEVTUz1tCitDT05GSUdf SU5QVVRfU1BBUlNFS01BUD1tCitDT05GSUdfSU5QVVRfTUFUUklYS01BUD1tCitDT05GSUdfSU5Q VVRfVklWQUxESUZNQVA9eQorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKK0NPTkZJR19J TlBVVF9NT1VTRURFVj15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQorQ09ORklHX0lO UFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5f WT03NjgKK0NPTkZJR19JTlBVVF9KT1lERVY9bQorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09O RklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycwor IworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FEQyBpcyBub3Qg c2V0CitDT05GSUdfS0VZQk9BUkRfQURQNTU4OD1tCitDT05GSUdfS0VZQk9BUkRfQURQNTU4OT1t CitDT05GSUdfS0VZQk9BUkRfQVRLQkQ9eQorQ09ORklHX0tFWUJPQVJEX1FUMTA1MD1tCitDT05G SUdfS0VZQk9BUkRfUVQxMDcwPW0KK0NPTkZJR19LRVlCT0FSRF9RVDIxNjA9bQorQ09ORklHX0tF WUJPQVJEX0RMSU5LX0RJUjY4NT1tCisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0 CitDT05GSUdfS0VZQk9BUkRfR1BJTz1tCitDT05GSUdfS0VZQk9BUkRfR1BJT19QT0xMRUQ9bQor Q09ORklHX0tFWUJPQVJEX1RDQTY0MTY9bQorQ09ORklHX0tFWUJPQVJEX1RDQTg0MTg9bQorQ09O RklHX0tFWUJPQVJEX01BVFJJWD1tCitDT05GSUdfS0VZQk9BUkRfTE04MzIzPW0KK0NPTkZJR19L RVlCT0FSRF9MTTgzMzM9bQorQ09ORklHX0tFWUJPQVJEX01BWDczNTk9bQorQ09ORklHX0tFWUJP QVJEX01DUz1tCitDT05GSUdfS0VZQk9BUkRfTVBSMTIxPW0KK0NPTkZJR19LRVlCT0FSRF9ORVdU T049bQorQ09ORklHX0tFWUJPQVJEX09QRU5DT1JFUz1tCitDT05GSUdfS0VZQk9BUkRfUElORVBI T05FPW0KKyMgQ09ORklHX0tFWUJPQVJEX1NBTVNVTkcgaXMgbm90IHNldAorQ09ORklHX0tFWUJP QVJEX0dPTERGSVNIX0VWRU5UUz15CisjIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qg c2V0CitDT05GSUdfS0VZQk9BUkRfU1VOS0JEPW0KK0NPTkZJR19LRVlCT0FSRF9JUVM2Mlg9bQor IyBDT05GSUdfS0VZQk9BUkRfT01BUDQgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX1RNMl9U T1VDSEtFWT1tCitDT05GSUdfS0VZQk9BUkRfWFRLQkQ9bQorQ09ORklHX0tFWUJPQVJEX0NBUDEx WFg9bQorIyBDT05GSUdfS0VZQk9BUkRfQkNNIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9D WVBSRVNTX1NGPW0KK0NPTkZJR19JTlBVVF9NT1VTRT15CitDT05GSUdfTU9VU0VfUFMyPXkKK0NP TkZJR19NT1VTRV9QUzJfQUxQUz15CitDT05GSUdfTU9VU0VfUFMyX0JZRD15CitDT05GSUdfTU9V U0VfUFMyX0xPR0lQUzJQUD15CitDT05GSUdfTU9VU0VfUFMyX1NZTkFQVElDUz15CitDT05GSUdf TU9VU0VfUFMyX1NZTkFQVElDU19TTUJVUz15CitDT05GSUdfTU9VU0VfUFMyX0NZUFJFU1M9eQor Q09ORklHX01PVVNFX1BTMl9UUkFDS1BPSU5UPXkKK0NPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0g9 eQorQ09ORklHX01PVVNFX1BTMl9FTEFOVEVDSF9TTUJVUz15CitDT05GSUdfTU9VU0VfUFMyX1NF TlRFTElDPXkKK0NPTkZJR19NT1VTRV9QUzJfVE9VQ0hLSVQ9eQorQ09ORklHX01PVVNFX1BTMl9G T0NBTFRFQ0g9eQorQ09ORklHX01PVVNFX1BTMl9TTUJVUz15CitDT05GSUdfTU9VU0VfU0VSSUFM PW0KK0NPTkZJR19NT1VTRV9BUFBMRVRPVUNIPW0KK0NPTkZJR19NT1VTRV9CQ001OTc0PW0KK0NP TkZJR19NT1VTRV9DWUFQQT1tCitDT05GSUdfTU9VU0VfRUxBTl9JMkM9bQorQ09ORklHX01PVVNF X0VMQU5fSTJDX0kyQz15CitDT05GSUdfTU9VU0VfRUxBTl9JMkNfU01CVVM9eQorQ09ORklHX01P VVNFX1ZTWFhYQUE9bQorQ09ORklHX01PVVNFX0dQSU89bQorQ09ORklHX01PVVNFX1NZTkFQVElD U19JMkM9bQorQ09ORklHX01PVVNFX1NZTkFQVElDU19VU0I9bQorQ09ORklHX0lOUFVUX0pPWVNU SUNLPXkKK0NPTkZJR19KT1lTVElDS19BTkFMT0c9bQorQ09ORklHX0pPWVNUSUNLX0EzRD1tCitD T05GSUdfSk9ZU1RJQ0tfQURDPW0KK0NPTkZJR19KT1lTVElDS19BREk9bQorQ09ORklHX0pPWVNU SUNLX0NPQlJBPW0KK0NPTkZJR19KT1lTVElDS19HRjJLPW0KK0NPTkZJR19KT1lTVElDS19HUklQ PW0KK0NPTkZJR19KT1lTVElDS19HUklQX01QPW0KK0NPTkZJR19KT1lTVElDS19HVUlMTEVNT1Q9 bQorQ09ORklHX0pPWVNUSUNLX0lOVEVSQUNUPW0KK0NPTkZJR19KT1lTVElDS19TSURFV0lOREVS PW0KK0NPTkZJR19KT1lTVElDS19UTURDPW0KK0NPTkZJR19KT1lTVElDS19JRk9SQ0U9bQorQ09O RklHX0pPWVNUSUNLX0lGT1JDRV9VU0I9bQorQ09ORklHX0pPWVNUSUNLX0lGT1JDRV8yMzI9bQor Q09ORklHX0pPWVNUSUNLX1dBUlJJT1I9bQorQ09ORklHX0pPWVNUSUNLX01BR0VMTEFOPW0KK0NP TkZJR19KT1lTVElDS19TUEFDRU9SQj1tCitDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VCQUxMPW0KK0NP TkZJR19KT1lTVElDS19TVElOR0VSPW0KK0NPTkZJR19KT1lTVElDS19UV0lESk9ZPW0KK0NPTkZJ R19KT1lTVElDS19aSEVOSFVBPW0KK0NPTkZJR19KT1lTVElDS19EQjk9bQorQ09ORklHX0pPWVNU SUNLX0dBTUVDT049bQorQ09ORklHX0pPWVNUSUNLX1RVUkJPR1JBRlg9bQorQ09ORklHX0pPWVNU SUNLX0FTNTAxMT1tCitDT05GSUdfSk9ZU1RJQ0tfSk9ZRFVNUD1tCitDT05GSUdfSk9ZU1RJQ0tf WFBBRD1tCitDT05GSUdfSk9ZU1RJQ0tfWFBBRF9GRj15CitDT05GSUdfSk9ZU1RJQ0tfWFBBRF9M RURTPXkKK0NPTkZJR19KT1lTVElDS19XQUxLRVJBMDcwMT1tCitDT05GSUdfSk9ZU1RJQ0tfUFNY UEFEX1NQST1tCitDT05GSUdfSk9ZU1RJQ0tfUFNYUEFEX1NQSV9GRj15CitDT05GSUdfSk9ZU1RJ Q0tfUFhSQz1tCitDT05GSUdfSk9ZU1RJQ0tfUVdJSUM9bQorQ09ORklHX0pPWVNUSUNLX0ZTSUE2 Qj1tCisjIENPTkZJR19KT1lTVElDS19TRU5TRUhBVCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRf VEFCTEVUPXkKK0NPTkZJR19UQUJMRVRfVVNCX0FDRUNBRD1tCitDT05GSUdfVEFCTEVUX1VTQl9B SVBURUs9bQorQ09ORklHX1RBQkxFVF9VU0JfSEFOV0FORz1tCitDT05GSUdfVEFCTEVUX1VTQl9L QlRBQj1tCitDT05GSUdfVEFCTEVUX1VTQl9QRUdBU1VTPW0KK0NPTkZJR19UQUJMRVRfU0VSSUFM X1dBQ09NND1tCitDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQorQ09ORklHX1RPVUNIU0NSRUVO X0FEUzc4NDY9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fQUQ3ODc3IGlzIG5vdCBzZXQKK0NPTkZJ R19UT1VDSFNDUkVFTl9BRDc4Nzk9bQorQ09ORklHX1RPVUNIU0NSRUVOX0FENzg3OV9JMkM9bQor IyBDT05GSUdfVE9VQ0hTQ1JFRU5fQUQ3ODc5X1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hT Q1JFRU5fQURDPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9BUjEwMjFfSTJDPW0KK0NPTkZJR19UT1VD SFNDUkVFTl9BVE1FTF9NWFQ9bQorQ09ORklHX1RPVUNIU0NSRUVOX0FUTUVMX01YVF9UMzc9eQor Q09ORklHX1RPVUNIU0NSRUVOX0FVT19QSVhDSVI9bQorQ09ORklHX1RPVUNIU0NSRUVOX0JVMjEw MTM9bQorQ09ORklHX1RPVUNIU0NSRUVOX0JVMjEwMjk9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NI SVBPTkVfSUNOODMxOD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1k4Q1RNQTE0MD1tCitDT05GSUdf VE9VQ0hTQ1JFRU5fQ1k4Q1RNRzExMD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQX0NPUkU9 bQorQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRTUF9JMkM9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5f Q1lUVFNQX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQNF9DT1JFPW0K K0NPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1A0X0kyQz1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9D WVRUU1A0X1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fRFlOQVBSTz1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fSEFNUFNISVJFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9FRVRJPW0KKyMg Q09ORklHX1RPVUNIU0NSRUVOX0VHQUxBWCBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5f RUdBTEFYX1NFUklBTD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRVhDMzAwMD1tCitDT05GSUdfVE9V Q0hTQ1JFRU5fRlVKSVRTVT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fR09PRElYPW0KK0NPTkZJR19U T1VDSFNDUkVFTl9ISURFRVA9bQorQ09ORklHX1RPVUNIU0NSRUVOX0hZQ09OX0hZNDZYWD1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fSUxJMjEwWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSUxJVEVLPW0K K0NPTkZJR19UT1VDSFNDUkVFTl9TNlNZNzYxPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9HVU5aRT1t CitDT05GSUdfVE9VQ0hTQ1JFRU5fRUtURjIxMjc9bQorQ09ORklHX1RPVUNIU0NSRUVOX0VMQU49 bQorQ09ORklHX1RPVUNIU0NSRUVOX0VMTz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV0FDT01fVzgw MDE9bQorQ09ORklHX1RPVUNIU0NSRUVOX1dBQ09NX0kyQz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f TUFYMTE4MDE9bQorQ09ORklHX1RPVUNIU0NSRUVOX01DUzUwMDA9bQorQ09ORklHX1RPVUNIU0NS RUVOX01NUzExND1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTUVMRkFTX01JUDQ9bQorQ09ORklHX1RP VUNIU0NSRUVOX01TRzI2Mzg9bQorQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSD1tCitDT05GSUdf VE9VQ0hTQ1JFRU5fSU1BR0lTPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX0lNWDZVTF9UU0MgaXMg bm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX0lORVhJTz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f TUs3MTI9bQorQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UPW0KK0NPTkZJR19UT1VDSFNDUkVF Tl9FRFRfRlQ1WDA2PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUPW0KK0NPTkZJR19U T1VDSFNDUkVFTl9UT1VDSFdJTj1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9USV9BTTMzNVhfVFND IGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9QSVhDSVI9bQorQ09ORklHX1RPVUNIU0NS RUVOX1dEVDg3WFhfSTJDPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3WFg9bQorQ09ORklHX1RP VUNIU0NSRUVOX1dNOTcwNT15CitDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzEyPXkKK0NPTkZJR19U T1VDSFNDUkVFTl9XTTk3MTM9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEU9bQor Q09ORklHX1RPVUNIU0NSRUVOX1VTQl9FR0FMQVg9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9Q QU5KSVQ9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl8zTT15CitDT05GSUdfVE9VQ0hTQ1JFRU5f VVNCX0lUTT15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VUVVJCTz15CitDT05GSUdfVE9VQ0hT Q1JFRU5fVVNCX0dVTlpFPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfRE1DX1RTQzEwPXkKK0NP TkZJR19UT1VDSFNDUkVFTl9VU0JfSVJUT1VDSD15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0lE RUFMVEVLPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfR0VORVJBTF9UT1VDSD15CitDT05GSUdf VE9VQ0hTQ1JFRU5fVVNCX0dPVE9QPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfSkFTVEVDPXkK K0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfRUxPPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfRTJJ PXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfWllUUk9OSUM9eQorQ09ORklHX1RPVUNIU0NSRUVO X1VTQl9FVFRfVEM0NVVTQj15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX05FWElPPXkKK0NPTkZJ R19UT1VDSFNDUkVFTl9VU0JfRUFTWVRPVUNIPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9UT1VDSElU MjEzPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9UU0NfU0VSSU89bQorQ09ORklHX1RPVUNIU0NSRUVO X1RTQzIwMFhfQ09SRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwND1tCisjIENPTkZJR19U T1VDSFNDUkVFTl9UU0MyMDA1IGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9UU0MyMDA3 PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9UU0MyMDA3X0lJTz15CitDT05GSUdfVE9VQ0hTQ1JFRU5f Uk1fVFM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NJTEVBRD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f U0lTX0kyQz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fU1QxMjMyPW0KK0NPTkZJR19UT1VDSFNDUkVF Tl9TVE1GVFM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NVUjQwPW0KKyMgQ09ORklHX1RPVUNIU0NS RUVOX1NVUkZBQ0UzX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fU1g4NjU0PW0K K0NPTkZJR19UT1VDSFNDUkVFTl9UUFM2NTA3WD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWkVUNjIy Mz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWkZPUkNFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9DT0xJ QlJJX1ZGNTA9bQorQ09ORklHX1RPVUNIU0NSRUVOX1JPSE1fQlUyMTAyMz1tCitDT05GSUdfVE9V Q0hTQ1JFRU5fSVFTNVhYPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9aSU5JVElYPW0KK0NPTkZJR19J TlBVVF9NSVNDPXkKK0NPTkZJR19JTlBVVF9BRDcxNFg9bQorQ09ORklHX0lOUFVUX0FENzE0WF9J MkM9bQorIyBDT05GSUdfSU5QVVRfQUQ3MTRYX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRf QVRDMjYwWF9PTktFWT1tCitDT05GSUdfSU5QVVRfQVRNRUxfQ0FQVE9VQ0g9bQorQ09ORklHX0lO UFVUX0JNQTE1MD1tCisjIENPTkZJR19JTlBVVF9FM1gwX0JVVFRPTiBpcyBub3Qgc2V0CitDT05G SUdfSU5QVVRfTUFYNzc2NTBfT05LRVk9bQorQ09ORklHX0lOUFVUX01NQTg0NTA9bQorIyBDT05G SUdfSU5QVVRfR1BJT19CRUVQRVIgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0dQSU9fREVDT0RF Uj1tCitDT05GSUdfSU5QVVRfR1BJT19WSUJSQT1tCitDT05GSUdfSU5QVVRfQ1BDQVBfUFdSQlVU VE9OPW0KK0NPTkZJR19JTlBVVF9BVElfUkVNT1RFMj1tCitDT05GSUdfSU5QVVRfS0VZU1BBTl9S RU1PVEU9bQorQ09ORklHX0lOUFVUX0tYVEo5PW0KK0NPTkZJR19JTlBVVF9QT1dFUk1BVEU9bQor Q09ORklHX0lOUFVUX1lFQUxJTks9bQorQ09ORklHX0lOUFVUX0NNMTA5PW0KK0NPTkZJR19JTlBV VF9SRUdVTEFUT1JfSEFQVElDPW0KK0NPTkZJR19JTlBVVF9BWFAyMFhfUEVLPW0KK0NPTkZJR19J TlBVVF9VSU5QVVQ9bQorQ09ORklHX0lOUFVUX1BDRjg1NzQ9bQorQ09ORklHX0lOUFVUX1BXTV9C RUVQRVI9bQorQ09ORklHX0lOUFVUX1BXTV9WSUJSQT1tCitDT05GSUdfSU5QVVRfUks4MDVfUFdS S0VZPW0KK0NPTkZJR19JTlBVVF9HUElPX1JPVEFSWV9FTkNPREVSPW0KK0NPTkZJR19JTlBVVF9E QTcyODBfSEFQVElDUz1tCitDT05GSUdfSU5QVVRfQURYTDM0WD1tCitDT05GSUdfSU5QVVRfQURY TDM0WF9JMkM9bQorQ09ORklHX0lOUFVUX0FEWEwzNFhfU1BJPW0KK0NPTkZJR19JTlBVVF9JQk1f UEFORUw9bQorQ09ORklHX0lOUFVUX0lNU19QQ1U9bQorQ09ORklHX0lOUFVUX0lRUzI2OUE9bQor Q09ORklHX0lOUFVUX0lRUzYyNkE9bQorIyBDT05GSUdfSU5QVVRfSVFTNzIyMiBpcyBub3Qgc2V0 CitDT05GSUdfSU5QVVRfQ01BMzAwMD1tCitDT05GSUdfSU5QVVRfQ01BMzAwMF9JMkM9bQorQ09O RklHX0lOUFVUX0RSVjI2MFhfSEFQVElDUz1tCitDT05GSUdfSU5QVVRfRFJWMjY2NV9IQVBUSUNT PW0KK0NPTkZJR19JTlBVVF9EUlYyNjY3X0hBUFRJQ1M9bQorQ09ORklHX0lOUFVUX1JUNTEyMF9Q V1JLRVk9bQorQ09ORklHX0lOUFVUX1NUUE1JQzFfT05LRVk9bQorQ09ORklHX1JNSTRfQ09SRT1t CitDT05GSUdfUk1JNF9JMkM9bQorQ09ORklHX1JNSTRfU1BJPW0KK0NPTkZJR19STUk0X1NNQj1t CitDT05GSUdfUk1JNF9GMDM9eQorQ09ORklHX1JNSTRfRjAzX1NFUklPPW0KK0NPTkZJR19STUk0 XzJEX1NFTlNPUj15CitDT05GSUdfUk1JNF9GMTE9eQorQ09ORklHX1JNSTRfRjEyPXkKK0NPTkZJ R19STUk0X0YzMD15CitDT05GSUdfUk1JNF9GMzQ9eQorQ09ORklHX1JNSTRfRjNBPXkKK0NPTkZJ R19STUk0X0Y1ND15CitDT05GSUdfUk1JNF9GNTU9eQorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0 cworIworQ09ORklHX1NFUklPPXkKK0NPTkZJR19TRVJJT19TRVJQT1JUPW0KK0NPTkZJR19TRVJJ T19QQVJLQkQ9bQorQ09ORklHX1NFUklPX1BDSVBTMj1tCitDT05GSUdfU0VSSU9fTElCUFMyPXkK K0NPTkZJR19TRVJJT19SQVc9bQorQ09ORklHX1NFUklPX0FMVEVSQV9QUzI9bQorQ09ORklHX1NF UklPX1BTMk1VTFQ9bQorIyBDT05GSUdfU0VSSU9fQVJDX1BTMiBpcyBub3Qgc2V0CitDT05GSUdf U0VSSU9fQVBCUFMyPW0KK0NPTkZJR19TRVJJT19HUElPX1BTMj1tCitDT05GSUdfVVNFUklPPW0K K0NPTkZJR19HQU1FUE9SVD1tCitDT05GSUdfR0FNRVBPUlRfTlM1NTg9bQorQ09ORklHX0dBTUVQ T1JUX0w0PW0KK0NPTkZJR19HQU1FUE9SVF9FTVUxMEsxPW0KK0NPTkZJR19HQU1FUE9SVF9GTTgw MT1tCisjIGVuZCBvZiBIYXJkd2FyZSBJL08gcG9ydHMKKyMgZW5kIG9mIElucHV0IGRldmljZSBz dXBwb3J0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19UVFk9eQorQ09ORklH X1ZUPXkKK0NPTkZJR19DT05TT0xFX1RSQU5TTEFUSU9OUz15CitDT05GSUdfVlRfQ09OU09MRT15 CitDT05GSUdfSFdfQ09OU09MRT15CitDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKK0NP TkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9Q VFlfQ09VTlQ9MAorQ09ORklHX0xESVNDX0FVVE9MT0FEPXkKKworIworIyBTZXJpYWwgZHJpdmVy cworIworQ09ORklHX1NFUklBTF9FQVJMWUNPTj15CitDT05GSUdfU0VSSUFMXzgyNTA9eQorIyBD T05GSUdfU0VSSUFMXzgyNTBfREVQUkVDQVRFRF9PUFRJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NFUklBTF84MjUwXzE2NTUwQV9WQVJJQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxf ODI1MF9GSU5URUsgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorQ09O RklHX1NFUklBTF84MjUwX0RNQT15CitDT05GSUdfU0VSSUFMXzgyNTBfUENJPXkKK0NPTkZJR19T RVJJQUxfODI1MF9FWEFSPXkKK0NPTkZJR19TRVJJQUxfODI1MF9DUz1tCitDT05GSUdfU0VSSUFM XzgyNTBfTlJfVUFSVFM9MzIKK0NPTkZJR19TRVJJQUxfODI1MF9SVU5USU1FX1VBUlRTPTMyCitD T05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQ9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfTUFOWV9Q T1JUUyBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJRPXkKKyMgQ09ORklH X1NFUklBTF84MjUwX0RFVEVDVF9JUlEgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMXzgyNTBf UlNBIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9EV0xJQj15CitDT05GSUdfU0VSSUFM XzgyNTBfRFc9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfUlQyODhYIGlzIG5vdCBzZXQKK0NPTkZJ R19TRVJJQUxfODI1MF9QRVJJQ09NPW0KK0NPTkZJR19TRVJJQUxfT0ZfUExBVEZPUk09eQorCisj CisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKKyMgQ09ORklHX1NFUklBTF9LR0RC X05NSSBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTUFYMzEwMCBpcyBub3Qgc2V0CisjIENP TkZJR19TRVJJQUxfTUFYMzEwWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfVUFSVExJVEUg aXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05T T0xFPXkKK0NPTkZJR19DT05TT0xFX1BPTEw9eQorQ09ORklHX1NFUklBTF9KU009bQorQ09ORklH X1NFUklBTF9TSUZJVkU9eQorQ09ORklHX1NFUklBTF9TSUZJVkVfQ09OU09MRT15CisjIENPTkZJ R19TRVJJQUxfU0NDTlhQIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU0MxNklTN1hYX0NPUkU9 bQorQ09ORklHX1NFUklBTF9TQzE2SVM3WFg9bQorQ09ORklHX1NFUklBTF9TQzE2SVM3WFhfSTJD PXkKK0NPTkZJR19TRVJJQUxfU0MxNklTN1hYX1NQST15CisjIENPTkZJR19TRVJJQUxfQUxURVJB X0pUQUdVQVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9BTFRFUkFfVUFSVCBpcyBub3Qg c2V0CitDT05GSUdfU0VSSUFMX1hJTElOWF9QU19VQVJUPXkKK0NPTkZJR19TRVJJQUxfWElMSU5Y X1BTX1VBUlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVJDIGlzIG5vdCBzZXQKK0NPTkZJ R19TRVJJQUxfUlAyPW0KK0NPTkZJR19TRVJJQUxfUlAyX05SX1VBUlRTPTMyCitDT05GSUdfU0VS SUFMX0ZTTF9MUFVBUlQ9bQorQ09ORklHX1NFUklBTF9GU0xfTFBVQVJUX0NPTlNPTEU9eQorQ09O RklHX1NFUklBTF9GU0xfTElORkxFWFVBUlQ9eQorQ09ORklHX1NFUklBTF9GU0xfTElORkxFWFVB UlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQ09ORVhBTlRfRElHSUNPTE9SIGlzIG5vdCBz ZXQKK0NPTkZJR19TRVJJQUxfU1BSRD15CitDT05GSUdfU0VSSUFMX1NQUkRfQ09OU09MRT15Cisj IGVuZCBvZiBTZXJpYWwgZHJpdmVycworCitDT05GSUdfU0VSSUFMX01DVFJMX0dQSU89eQorQ09O RklHX1NFUklBTF9OT05TVEFOREFSRD15CitDT05GSUdfTU9YQV9JTlRFTExJTz1tCitDT05GSUdf TU9YQV9TTUFSVElPPW0KK0NPTkZJR19TWU5DTElOS19HVD1tCitDT05GSUdfTl9IRExDPW0KK0NP TkZJR19HT0xERklTSF9UVFk9eQorQ09ORklHX0dPTERGSVNIX1RUWV9FQVJMWV9DT05TT0xFPXkK K0NPTkZJR19OX0dTTT1tCitDT05GSUdfTk9aT01JPW0KK0NPTkZJR19OVUxMX1RUWT1tCitDT05G SUdfSFZDX0RSSVZFUj15CitDT05GSUdfUlBNU0dfVFRZPW0KK0NPTkZJR19TRVJJQUxfREVWX0JV Uz15CitDT05GSUdfU0VSSUFMX0RFVl9DVFJMX1RUWVBPUlQ9eQorIyBDT05GSUdfVFRZX1BSSU5U SyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRFUj1tCisjIENPTkZJR19MUF9DT05TT0xFIGlzIG5v dCBzZXQKK0NPTkZJR19QUERFVj1tCitDT05GSUdfVklSVElPX0NPTlNPTEU9eQorQ09ORklHX0lQ TUlfSEFORExFUj1tCitDT05GSUdfSVBNSV9QTEFUX0RBVEE9eQorQ09ORklHX0lQTUlfUEFOSUNf RVZFTlQ9eQorIyBDT05GSUdfSVBNSV9QQU5JQ19TVFJJTkcgaXMgbm90IHNldAorQ09ORklHX0lQ TUlfREVWSUNFX0lOVEVSRkFDRT1tCitDT05GSUdfSVBNSV9TST1tCitDT05GSUdfSVBNSV9TU0lG PW0KK0NPTkZJR19JUE1JX0lQTUI9bQorQ09ORklHX0lQTUlfV0FUQ0hET0c9bQorQ09ORklHX0lQ TUlfUE9XRVJPRkY9bQorQ09ORklHX0lQTUJfREVWSUNFX0lOVEVSRkFDRT1tCitDT05GSUdfSFdf UkFORE9NPXkKK0NPTkZJR19IV19SQU5ET01fVElNRVJJT01FTT1tCitDT05GSUdfSFdfUkFORE9N X0JBNDMxPW0KK0NPTkZJR19IV19SQU5ET01fVklSVElPPW0KK0NPTkZJR19IV19SQU5ET01fUE9M QVJGSVJFX1NPQz1tCitDT05GSUdfSFdfUkFORE9NX0NDVFJORz1tCitDT05GSUdfSFdfUkFORE9N X1hJUEhFUkE9bQorQ09ORklHX0FQUExJQ09NPW0KKworIworIyBQQ01DSUEgY2hhcmFjdGVyIGRl dmljZXMKKyMKK0NPTkZJR19TWU5DTElOS19DUz1tCitDT05GSUdfQ0FSRE1BTl80MDAwPW0KK0NP TkZJR19DQVJETUFOXzQwNDA9bQorQ09ORklHX1NDUjI0WD1tCitDT05GSUdfSVBXSVJFTEVTUz1t CisjIGVuZCBvZiBQQ01DSUEgY2hhcmFjdGVyIGRldmljZXMKKworQ09ORklHX0RFVk1FTT15CitD T05GSUdfREVWUE9SVD15CitDT05GSUdfVENHX1RQTT15CitDT05GSUdfSFdfUkFORE9NX1RQTT15 CitDT05GSUdfVENHX1RJU19DT1JFPXkKK0NPTkZJR19UQ0dfVElTPXkKK0NPTkZJR19UQ0dfVElT X1NQST1tCitDT05GSUdfVENHX1RJU19TUElfQ1I1MD15CitDT05GSUdfVENHX1RJU19JMkM9bQor Q09ORklHX1RDR19USVNfSTJDX0NSNTA9bQorQ09ORklHX1RDR19USVNfSTJDX0FUTUVMPW0KK0NP TkZJR19UQ0dfVElTX0kyQ19JTkZJTkVPTj1tCitDT05GSUdfVENHX1RJU19JMkNfTlVWT1RPTj1t CitDT05GSUdfVENHX0FUTUVMPW0KK0NPTkZJR19UQ0dfVlRQTV9QUk9YWT1tCitDT05GSUdfVENH X1RJU19TVDMzWlAyND1tCitDT05GSUdfVENHX1RJU19TVDMzWlAyNF9JMkM9bQorQ09ORklHX1RD R19USVNfU1QzM1pQMjRfU1BJPW0KK0NPTkZJR19YSUxMWUJVU19DTEFTUz1tCitDT05GSUdfWElM TFlCVVM9bQorQ09ORklHX1hJTExZQlVTX1BDSUU9bQorQ09ORklHX1hJTExZQlVTX09GPW0KK0NP TkZJR19YSUxMWVVTQj1tCitDT05GSUdfUkFORE9NX1RSVVNUX0NQVT15CitDT05GSUdfUkFORE9N X1RSVVNUX0JPT1RMT0FERVI9eQorIyBlbmQgb2YgQ2hhcmFjdGVyIGRldmljZXMKKworIworIyBJ MkMgc3VwcG9ydAorIworQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CisjIENP TkZJR19JMkNfQ09NUEFUIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfQ0hBUkRFVj1tCitDT05GSUdf STJDX01VWD1tCisKKyMKKyMgTXVsdGlwbGV4ZXIgSTJDIENoaXAgc3VwcG9ydAorIworIyBDT05G SUdfSTJDX0FSQl9HUElPX0NIQUxMRU5HRSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX01VWF9HUElP PW0KK0NPTkZJR19JMkNfTVVYX0dQTVVYPW0KK0NPTkZJR19JMkNfTVVYX0xUQzQzMDY9bQorQ09O RklHX0kyQ19NVVhfUENBOTU0MT1tCitDT05GSUdfSTJDX01VWF9QQ0E5NTR4PW0KKyMgQ09ORklH X0kyQ19NVVhfUElOQ1RSTCBpcyBub3Qgc2V0CitDT05GSUdfSTJDX01VWF9SRUc9bQorQ09ORklH X0kyQ19ERU1VWF9QSU5DVFJMPW0KK0NPTkZJR19JMkNfTVVYX01MWENQTEQ9bQorIyBlbmQgb2Yg TXVsdGlwbGV4ZXIgSTJDIENoaXAgc3VwcG9ydAorCitDT05GSUdfSTJDX0hFTFBFUl9BVVRPPXkK K0NPTkZJR19JMkNfU01CVVM9bQorQ09ORklHX0kyQ19BTEdPQklUPW0KK0NPTkZJR19JMkNfQUxH T1BDQT1tCisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisKKyMKKyMgUEMgU01C dXMgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMKKyMKK0NPTkZJR19JMkNfQ0NHWF9VQ1NJPW0KK0NP TkZJR19JMkNfQUxJMTUzNT1tCitDT05GSUdfSTJDX0FMSTE1NjM9bQorQ09ORklHX0kyQ19BTEkx NVgzPW0KK0NPTkZJR19JMkNfQU1ENzU2PW0KK0NPTkZJR19JMkNfQU1EODExMT1tCitDT05GSUdf STJDX0k4MDE9bQorQ09ORklHX0kyQ19JU0NIPW0KK0NPTkZJR19JMkNfUElJWDQ9bQorQ09ORklH X0kyQ19ORk9SQ0UyPW0KK0NPTkZJR19JMkNfTlZJRElBX0dQVT1tCitDT05GSUdfSTJDX1NJUzU1 OTU9bQorQ09ORklHX0kyQ19TSVM2MzA9bQorQ09ORklHX0kyQ19TSVM5Nlg9bQorIyBDT05GSUdf STJDX1ZJQSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1ZJQVBSTz1tCisKKyMKKyMgSTJDIHN5c3Rl bSBidXMgZHJpdmVycyAobW9zdGx5IGVtYmVkZGVkIC8gc3lzdGVtLW9uLWNoaXApCisjCitDT05G SUdfSTJDX0NCVVNfR1BJTz1tCitDT05GSUdfSTJDX0RFU0lHTldBUkVfQ09SRT15CitDT05GSUdf STJDX0RFU0lHTldBUkVfU0xBVkU9eQorQ09ORklHX0kyQ19ERVNJR05XQVJFX1BMQVRGT1JNPXkK K0NPTkZJR19JMkNfREVTSUdOV0FSRV9QQ0k9bQorIyBDT05GSUdfSTJDX0VNRVYyIGlzIG5vdCBz ZXQKK0NPTkZJR19JMkNfR1BJTz1tCisjIENPTkZJR19JMkNfR1BJT19GQVVMVF9JTkpFQ1RPUiBp cyBub3Qgc2V0CitDT05GSUdfSTJDX0tFTVBMRD1tCitDT05GSUdfSTJDX01JQ1JPQ0hJUF9DT1JF PXkKK0NPTkZJR19JMkNfT0NPUkVTPW0KK0NPTkZJR19JMkNfUENBX1BMQVRGT1JNPW0KK0NPTkZJ R19JMkNfUkszWD1tCisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNf WElMSU5YPW0KKworIworIyBFeHRlcm5hbCBJMkMvU01CdXMgYWRhcHRlciBkcml2ZXJzCisjCitD T05GSUdfSTJDX0RJT0xBTl9VMkM9bQorQ09ORklHX0kyQ19ETE4yPW0KK0NPTkZJR19JMkNfQ1Ay NjE1PW0KK0NPTkZJR19JMkNfUEFSUE9SVD1tCitDT05GSUdfSTJDX1BDSTFYWFhYPW0KK0NPTkZJ R19JMkNfUk9CT1RGVVpaX09TSUY9bQorQ09ORklHX0kyQ19UQU9TX0VWTT1tCitDT05GSUdfSTJD X1RJTllfVVNCPW0KK0NPTkZJR19JMkNfVklQRVJCT0FSRD1tCisKKyMKKyMgT3RoZXIgSTJDL1NN QnVzIGJ1cyBkcml2ZXJzCisjCitDT05GSUdfSTJDX1ZJUlRJTz1tCisjIGVuZCBvZiBJMkMgSGFy ZHdhcmUgQnVzIHN1cHBvcnQKKworQ09ORklHX0kyQ19TVFVCPW0KK0NPTkZJR19JMkNfU0xBVkU9 eQorQ09ORklHX0kyQ19TTEFWRV9FRVBST009bQorQ09ORklHX0kyQ19TTEFWRV9URVNUVU5JVD1t CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdf QUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgZW5k IG9mIEkyQyBzdXBwb3J0CisKK0NPTkZJR19JM0M9bQorQ09ORklHX0NETlNfSTNDX01BU1RFUj1t CitDT05GSUdfRFdfSTNDX01BU1RFUj1tCitDT05GSUdfU1ZDX0kzQ19NQVNURVI9bQorQ09ORklH X01JUElfSTNDX0hDST1tCitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfU1BJX01BU1RFUj15CitDT05GSUdfU1BJX01FTT15CisKKyMKKyMgU1BJIE1h c3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1NQSV9BTFRFUkEgaXMgbm90IHNl dAorQ09ORklHX1NQSV9BTFRFUkFfQ09SRT1tCitDT05GSUdfU1BJX0FMVEVSQV9ERkw9bQorIyBD T05GSUdfU1BJX0FYSV9TUElfRU5HSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfQklUQkFORz1t CisjIENPTkZJR19TUElfQlVUVEVSRkxZIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfQ0FERU5DRT1t CitDT05GSUdfU1BJX0NBREVOQ0VfWFNQST1tCitDT05GSUdfU1BJX0RFU0lHTldBUkU9bQorQ09O RklHX1NQSV9EV19ETUE9eQorQ09ORklHX1NQSV9EV19QQ0k9bQorQ09ORklHX1NQSV9EV19NTUlP PW0KK0NPTkZJR19TUElfRExOMj1tCitDT05GSUdfU1BJX05YUF9GTEVYU1BJPW0KK0NPTkZJR19T UElfR1BJTz1tCisjIENPTkZJR19TUElfTE03MF9MTFAgaXMgbm90IHNldAorQ09ORklHX1NQSV9G U0xfTElCPXkKK0NPTkZJR19TUElfRlNMX1NQST15CitDT05GSUdfU1BJX01JQ1JPQ0hJUF9DT1JF PW0KK0NPTkZJR19TUElfTUlDUk9DSElQX0NPUkVfUVNQST1tCitDT05GSUdfU1BJX09DX1RJTlk9 bQorIyBDT05GSUdfU1BJX1BYQTJYWCBpcyBub3Qgc2V0CitDT05GSUdfU1BJX1JPQ0tDSElQPW0K K0NPTkZJR19TUElfU0MxOElTNjAyPW0KK0NPTkZJR19TUElfU0lGSVZFPW0KK0NPTkZJR19TUElf TVhJQz1tCitDT05GSUdfU1BJX1hDT01NPW0KK0NPTkZJR19TUElfWElMSU5YPW0KK0NPTkZJR19T UElfWllOUU1QX0dRU1BJPW0KK0NPTkZJR19TUElfQU1EPW0KKworIworIyBTUEkgTXVsdGlwbGV4 ZXIgc3VwcG9ydAorIworQ09ORklHX1NQSV9NVVg9bQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0 ZXJzCisjCitDT05GSUdfU1BJX1NQSURFVj1tCitDT05GSUdfU1BJX0xPT1BCQUNLX1RFU1Q9bQor IyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorQ09ORklHX1NQSV9TTEFWRT15CitDT05G SUdfU1BJX1NMQVZFX1RJTUU9bQorQ09ORklHX1NQSV9TTEFWRV9TWVNURU1fQ09OVFJPTD1tCitD T05GSUdfU1BJX0RZTkFNSUM9eQorQ09ORklHX1NQTUk9bQorQ09ORklHX1NQTUlfSElTSTM2NzA9 bQorQ09ORklHX0hTST1tCitDT05GSUdfSFNJX0JPQVJESU5GTz15CisKKyMKKyMgSFNJIGNvbnRy b2xsZXJzCisjCisKKyMKKyMgSFNJIGNsaWVudHMKKyMKK0NPTkZJR19IU0lfQ0hBUj1tCitDT05G SUdfUFBTPXkKKyMgQ09ORklHX1BQU19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUFBTIGNsaWVu dHMgc3VwcG9ydAorIworIyBDT05GSUdfUFBTX0NMSUVOVF9LVElNRVIgaXMgbm90IHNldAorQ09O RklHX1BQU19DTElFTlRfTERJU0M9bQorQ09ORklHX1BQU19DTElFTlRfUEFSUE9SVD1tCitDT05G SUdfUFBTX0NMSUVOVF9HUElPPW0KKworIworIyBQUFMgZ2VuZXJhdG9ycyBzdXBwb3J0CisjCisK KyMKKyMgUFRQIGNsb2NrIHN1cHBvcnQKKyMKK0NPTkZJR19QVFBfMTU4OF9DTE9DSz15CitDT05G SUdfUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUw9eQorCisjCisjIEVuYWJsZSBQSFlMSUIgYW5kIE5F VFdPUktfUEhZX1RJTUVTVEFNUElORyB0byBzZWUgdGhlIGFkZGl0aW9uYWwgY2xvY2tzLgorIwor Q09ORklHX1BUUF8xNTg4X0NMT0NLX0lEVDgyUDMzPW0KK0NPTkZJR19QVFBfMTU4OF9DTE9DS19J RFRDTT1tCitDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQPW0KKyMgZW5kIG9mIFBUUCBjbG9jayBz dXBwb3J0CisKK0NPTkZJR19QSU5DVFJMPXkKK0NPTkZJR19HRU5FUklDX1BJTkNUUkxfR1JPVVBT PXkKK0NPTkZJR19QSU5NVVg9eQorQ09ORklHX0dFTkVSSUNfUElOTVVYX0ZVTkNUSU9OUz15CitD T05GSUdfUElOQ09ORj15CitDT05GSUdfR0VORVJJQ19QSU5DT05GPXkKKyMgQ09ORklHX0RFQlVH X1BJTkNUUkwgaXMgbm90IHNldAorQ09ORklHX1BJTkNUUkxfQVhQMjA5PW0KK0NPTkZJR19QSU5D VFJMX0NZOEM5NVgwPW0KK0NPTkZJR19QSU5DVFJMX01BWDc3NjIwPW0KK0NPTkZJR19QSU5DVFJM X01DUDIzUzA4X0kyQz1tCitDT05GSUdfUElOQ1RSTF9NQ1AyM1MwOF9TUEk9bQorQ09ORklHX1BJ TkNUUkxfTUNQMjNTMDg9bQorQ09ORklHX1BJTkNUUkxfTUlDUk9DSElQX1NHUElPPXkKKyMgQ09O RklHX1BJTkNUUkxfT0NFTE9UIGlzIG5vdCBzZXQKK0NPTkZJR19QSU5DVFJMX1JLODA1PW0KK0NP TkZJR19QSU5DVFJMX1NJTkdMRT15CitDT05GSUdfUElOQ1RSTF9TVE1GWD1tCitDT05GSUdfUElO Q1RSTF9TWDE1MFg9eQorQ09ORklHX1BJTkNUUkxfTE9DSE5BR0FSPW0KK0NPTkZJR19QSU5DVFJM X01BREVSQT1tCitDT05GSUdfUElOQ1RSTF9DUzQ3TDE1PXkKK0NPTkZJR19QSU5DVFJMX0NTNDdM MzU9eQorQ09ORklHX1BJTkNUUkxfQ1M0N0w4NT15CitDT05GSUdfUElOQ1RSTF9DUzQ3TDkwPXkK K0NPTkZJR19QSU5DVFJMX0NTNDdMOTI9eQorCisjCisjIFJlbmVzYXMgcGluY3RybCBkcml2ZXJz CisjCisjIGVuZCBvZiBSZW5lc2FzIHBpbmN0cmwgZHJpdmVycworCitDT05GSUdfUElOQ1RSTF9T VEFSRklWRV9KSDcxMDA9eQorQ09ORklHX1BJTkNUUkxfU1RBUkZJVkVfSkg3MTEwPXkKK0NPTkZJ R19QSU5DVFJMX1NUQVJGSVZFX0pINzExMF9TWVM9eQorQ09ORklHX1BJTkNUUkxfU1RBUkZJVkVf Skg3MTEwX0FPTj15CitDT05GSUdfR1BJT0xJQj15CitDT05GSUdfR1BJT0xJQl9GQVNUUEFUSF9M SU1JVD01MTIKK0NPTkZJR19PRl9HUElPPXkKK0NPTkZJR19HUElPTElCX0lSUUNISVA9eQorIyBD T05GSUdfREVCVUdfR1BJTyBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19TWVNGUz15CitDT05GSUdf R1BJT19DREVWPXkKK0NPTkZJR19HUElPX0NERVZfVjE9eQorQ09ORklHX0dQSU9fR0VORVJJQz15 CitDT05GSUdfR1BJT19NQVg3MzBYPW0KKworIworIyBNZW1vcnkgbWFwcGVkIEdQSU8gZHJpdmVy cworIworQ09ORklHX0dQSU9fNzRYWF9NTUlPPW0KKyMgQ09ORklHX0dQSU9fQUxURVJBIGlzIG5v dCBzZXQKK0NPTkZJR19HUElPX0NBREVOQ0U9bQorQ09ORklHX0dQSU9fRFdBUEI9bQorIyBDT05G SUdfR1BJT19FWEFSIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX0ZUR1BJTzAxMD15CitDT05GSUdf R1BJT19HRU5FUklDX1BMQVRGT1JNPXkKK0NPTkZJR19HUElPX0dSR1BJTz1tCisjIENPTkZJR19H UElPX0hMV0QgaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19MT0dJQ1ZDIGlzIG5vdCBzZXQKK0NP TkZJR19HUElPX01CODZTN1g9bQorIyBDT05GSUdfR1BJT19TSUZJVkUgaXMgbm90IHNldAorQ09O RklHX0dQSU9fU1lTQ09OPW0KK0NPTkZJR19HUElPX1hJTElOWD1tCisjIENPTkZJR19HUElPX0FN RF9GQ0ggaXMgbm90IHNldAorIyBlbmQgb2YgTWVtb3J5IG1hcHBlZCBHUElPIGRyaXZlcnMKKwor IworIyBJMkMgR1BJTyBleHBhbmRlcnMKKyMKKyMgQ09ORklHX0dQSU9fQUROUCBpcyBub3Qgc2V0 CitDT05GSUdfR1BJT19HV19QTEQ9bQorQ09ORklHX0dQSU9fTUFYNzMwMD1tCitDT05GSUdfR1BJ T19NQVg3MzJYPW0KK0NPTkZJR19HUElPX1BDQTk1M1g9bQorQ09ORklHX0dQSU9fUENBOTUzWF9J UlE9eQorQ09ORklHX0dQSU9fUENBOTU3MD1tCitDT05GSUdfR1BJT19QQ0Y4NTdYPW0KK0NPTkZJ R19HUElPX1RQSUMyODEwPW0KKyMgZW5kIG9mIEkyQyBHUElPIGV4cGFuZGVycworCisjCisjIE1G RCBHUElPIGV4cGFuZGVycworIworQ09ORklHX0dQSU9fQkQ3MTgxNT1tCitDT05GSUdfR1BJT19C RDcxODI4PW0KK0NPTkZJR19HUElPX0JEOTU3MU1XVj1tCitDT05GSUdfR1BJT19ETE4yPW0KK0NP TkZJR19HUElPX0tFTVBMRD1tCitDT05GSUdfR1BJT19MUDM5NDM9bQorQ09ORklHX0dQSU9fTFA4 NzNYPW0KK0NPTkZJR19HUElPX0xQODc1NjU9bQorQ09ORklHX0dQSU9fTUFERVJBPW0KK0NPTkZJ R19HUElPX01BWDc3NjIwPW0KK0NPTkZJR19HUElPX01BWDc3NjUwPW0KK0NPTkZJR19HUElPX1RR TVg4Nj1tCisjIENPTkZJR19HUElPX1dNODk5NCBpcyBub3Qgc2V0CisjIGVuZCBvZiBNRkQgR1BJ TyBleHBhbmRlcnMKKworIworIyBQQ0kgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1BD SV9JRElPXzE2PW0KK0NPTkZJR19HUElPX1BDSUVfSURJT18yND1tCisjIENPTkZJR19HUElPX1JE QzMyMVggaXMgbm90IHNldAorIyBlbmQgb2YgUENJIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgU1BJ IEdQSU8gZXhwYW5kZXJzCisjCisjIENPTkZJR19HUElPXzc0WDE2NCBpcyBub3Qgc2V0CitDT05G SUdfR1BJT19NQVgzMTkxWD1tCisjIENPTkZJR19HUElPX01BWDczMDEgaXMgbm90IHNldAorIyBD T05GSUdfR1BJT19NQzMzODgwIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1BJU09TUj1tCitDT05G SUdfR1BJT19YUkExNDAzPW0KK0NPTkZJR19HUElPX01PWFRFVD1tCisjIGVuZCBvZiBTUEkgR1BJ TyBleHBhbmRlcnMKKworIworIyBVU0IgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1ZJ UEVSQk9BUkQ9bQorIyBlbmQgb2YgVVNCIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgVmlydHVhbCBH UElPIGRyaXZlcnMKKyMKK0NPTkZJR19HUElPX0FHR1JFR0FUT1I9bQorQ09ORklHX0dQSU9fTU9D S1VQPW0KK0NPTkZJR19HUElPX1ZJUlRJTz1tCitDT05GSUdfR1BJT19TSU09bQorIyBlbmQgb2Yg VmlydHVhbCBHUElPIGRyaXZlcnMKKworQ09ORklHX1cxPW0KK0NPTkZJR19XMV9DT049eQorCisj CisjIDEtd2lyZSBCdXMgTWFzdGVycworIworQ09ORklHX1cxX01BU1RFUl9NQVRST1g9bQorQ09O RklHX1cxX01BU1RFUl9EUzI0OTA9bQorQ09ORklHX1cxX01BU1RFUl9EUzI0ODI9bQorQ09ORklH X1cxX01BU1RFUl9EUzFXTT1tCitDT05GSUdfVzFfTUFTVEVSX0dQSU89bQorIyBDT05GSUdfVzFf TUFTVEVSX1NHSSBpcyBub3Qgc2V0CisjIGVuZCBvZiAxLXdpcmUgQnVzIE1hc3RlcnMKKworIwor IyAxLXdpcmUgU2xhdmVzCisjCitDT05GSUdfVzFfU0xBVkVfVEhFUk09bQorQ09ORklHX1cxX1NM QVZFX1NNRU09bQorQ09ORklHX1cxX1NMQVZFX0RTMjQwNT1tCitDT05GSUdfVzFfU0xBVkVfRFMy NDA4PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MDhfUkVBREJBQ0s9eQorQ09ORklHX1cxX1NMQVZF X0RTMjQxMz1tCitDT05GSUdfVzFfU0xBVkVfRFMyNDA2PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0 MjM9bQorQ09ORklHX1cxX1NMQVZFX0RTMjgwNT1tCitDT05GSUdfVzFfU0xBVkVfRFMyNDMwPW0K K0NPTkZJR19XMV9TTEFWRV9EUzI0MzE9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQzMz1tCitDT05G SUdfVzFfU0xBVkVfRFMyNDMzX0NSQz15CitDT05GSUdfVzFfU0xBVkVfRFMyNDM4PW0KK0NPTkZJ R19XMV9TTEFWRV9EUzI1MFg9bQorQ09ORklHX1cxX1NMQVZFX0RTMjc4MD1tCitDT05GSUdfVzFf U0xBVkVfRFMyNzgxPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI4RTA0PW0KK0NPTkZJR19XMV9TTEFW RV9EUzI4RTE3PW0KKyMgZW5kIG9mIDEtd2lyZSBTbGF2ZXMKKworQ09ORklHX1BPV0VSX1JFU0VU PXkKK0NPTkZJR19QT1dFUl9SRVNFVF9BVEMyNjBYPW0KK0NPTkZJR19QT1dFUl9SRVNFVF9HUElP PXkKK0NPTkZJR19QT1dFUl9SRVNFVF9HUElPX1JFU1RBUlQ9eQorQ09ORklHX1BPV0VSX1JFU0VU X0xUQzI5NTI9eQorQ09ORklHX1BPV0VSX1JFU0VUX1JFR1VMQVRPUj15CitDT05GSUdfUE9XRVJf UkVTRVRfUkVTVEFSVD15CitDT05GSUdfUE9XRVJfUkVTRVRfU1lTQ09OPXkKK0NPTkZJR19QT1dF Ul9SRVNFVF9TWVNDT05fUE9XRVJPRkY9eQorQ09ORklHX1JFQk9PVF9NT0RFPW0KK0NPTkZJR19T WVNDT05fUkVCT09UX01PREU9bQorQ09ORklHX05WTUVNX1JFQk9PVF9NT0RFPW0KK0NPTkZJR19Q T1dFUl9TVVBQTFk9eQorIyBDT05GSUdfUE9XRVJfU1VQUExZX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19QT1dFUl9TVVBQTFlfSFdNT049eQorQ09ORklHX1BEQV9QT1dFUj1tCisjIENPTkZJR19H RU5FUklDX0FEQ19CQVRURVJZIGlzIG5vdCBzZXQKK0NPTkZJR19JUDVYWFhfUE9XRVI9bQorIyBD T05GSUdfVEVTVF9QT1dFUiBpcyBub3Qgc2V0CitDT05GSUdfQ0hBUkdFUl9BRFA1MDYxPW0KK0NP TkZJR19CQVRURVJZX0NQQ0FQPW0KK0NPTkZJR19CQVRURVJZX0NXMjAxNT1tCitDT05GSUdfQkFU VEVSWV9EUzI3NjA9bQorQ09ORklHX0JBVFRFUllfRFMyNzgwPW0KK0NPTkZJR19CQVRURVJZX0RT Mjc4MT1tCitDT05GSUdfQkFUVEVSWV9EUzI3ODI9bQorIyBDT05GSUdfQkFUVEVSWV9TQU1TVU5H X1NESSBpcyBub3Qgc2V0CitDT05GSUdfQkFUVEVSWV9TQlM9bQorQ09ORklHX0NIQVJHRVJfU0JT PW0KK0NPTkZJR19NQU5BR0VSX1NCUz1tCitDT05GSUdfQkFUVEVSWV9CUTI3WFhYPW0KK0NPTkZJ R19CQVRURVJZX0JRMjdYWFhfSTJDPW0KK0NPTkZJR19CQVRURVJZX0JRMjdYWFhfSERRPW0KKyMg Q09ORklHX0JBVFRFUllfQlEyN1hYWF9EVF9VUERBVEVTX05WTSBpcyBub3Qgc2V0CitDT05GSUdf Q0hBUkdFUl9BWFAyMFg9bQorQ09ORklHX0JBVFRFUllfQVhQMjBYPW0KK0NPTkZJR19BWFAyMFhf UE9XRVI9bQorQ09ORklHX0JBVFRFUllfTUFYMTcwNDA9bQorQ09ORklHX0JBVFRFUllfTUFYMTcw NDI9bQorQ09ORklHX0JBVFRFUllfTUFYMTcyMVg9bQorQ09ORklHX0NIQVJHRVJfSVNQMTcwND1t CitDT05GSUdfQ0hBUkdFUl9NQVg4OTAzPW0KK0NPTkZJR19DSEFSR0VSX0xQODcyNz1tCitDT05G SUdfQ0hBUkdFUl9HUElPPW0KKyMgQ09ORklHX0NIQVJHRVJfTUFOQUdFUiBpcyBub3Qgc2V0CitD T05GSUdfQ0hBUkdFUl9MVDM2NTE9bQorQ09ORklHX0NIQVJHRVJfTFRDNDE2Mkw9bQorQ09ORklH X0NIQVJHRVJfREVURUNUT1JfTUFYMTQ2NTY9bQorQ09ORklHX0NIQVJHRVJfTUFYNzc2NTA9bQor Q09ORklHX0NIQVJHRVJfTUFYNzc5NzY9bQorQ09ORklHX0NIQVJHRVJfTVAyNjI5PW0KK0NPTkZJ R19DSEFSR0VSX01UNjM3MD1tCisjIENPTkZJR19DSEFSR0VSX0JRMjQxNVggaXMgbm90IHNldAor Q09ORklHX0NIQVJHRVJfQlEyNDE5MD1tCitDT05GSUdfQ0hBUkdFUl9CUTI0MjU3PW0KK0NPTkZJ R19DSEFSR0VSX0JRMjQ3MzU9bQorQ09ORklHX0NIQVJHRVJfQlEyNTE1WD1tCitDT05GSUdfQ0hB UkdFUl9CUTI1ODkwPW0KK0NPTkZJR19DSEFSR0VSX0JRMjU5ODA9bQorQ09ORklHX0NIQVJHRVJf QlEyNTZYWD1tCitDT05GSUdfQ0hBUkdFUl9SSzgxNz1tCitDT05GSUdfQ0hBUkdFUl9TTUIzNDc9 bQorIyBDT05GSUdfQkFUVEVSWV9HQVVHRV9MVEMyOTQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JB VFRFUllfR09MREZJU0ggaXMgbm90IHNldAorQ09ORklHX0JBVFRFUllfUlQ1MDMzPW0KK0NPTkZJ R19DSEFSR0VSX1JUOTQ1NT1tCitDT05GSUdfQ0hBUkdFUl9VQ1MxMDAyPW0KK0NPTkZJR19DSEFS R0VSX0JEOTk5NTQ9bQorQ09ORklHX0JBVFRFUllfVUczMTA1PW0KK0NPTkZJR19IV01PTj15CitD T05GSUdfSFdNT05fVklEPW0KKyMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAor CisjCisjIE5hdGl2ZSBkcml2ZXJzCisjCisjIENPTkZJR19TRU5TT1JTX0FENzMxNCBpcyBub3Qg c2V0CitDT05GSUdfU0VOU09SU19BRDc0MTQ9bQorQ09ORklHX1NFTlNPUlNfQUQ3NDE4PW0KK0NP TkZJR19TRU5TT1JTX0FETTEwMjU9bQorQ09ORklHX1NFTlNPUlNfQURNMTAyNj1tCitDT05GSUdf U0VOU09SU19BRE0xMDI5PW0KK0NPTkZJR19TRU5TT1JTX0FETTEwMzE9bQorQ09ORklHX1NFTlNP UlNfQURNMTE3Nz1tCitDT05GSUdfU0VOU09SU19BRE05MjQwPW0KK0NPTkZJR19TRU5TT1JTX0FE VDdYMTA9bQorIyBDT05GSUdfU0VOU09SU19BRFQ3MzEwIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5T T1JTX0FEVDc0MTA9bQorQ09ORklHX1NFTlNPUlNfQURUNzQxMT1tCitDT05GSUdfU0VOU09SU19B RFQ3NDYyPW0KK0NPTkZJR19TRU5TT1JTX0FEVDc0NzA9bQorQ09ORklHX1NFTlNPUlNfQURUNzQ3 NT1tCitDT05GSUdfU0VOU09SU19BSFQxMD1tCitDT05GSUdfU0VOU09SU19BUVVBQ09NUFVURVJf RDVORVhUPW0KK0NPTkZJR19TRU5TT1JTX0FTMzcwPW0KK0NPTkZJR19TRU5TT1JTX0FTQzc2MjE9 bQorQ09ORklHX1NFTlNPUlNfQVhJX0ZBTl9DT05UUk9MPW0KK0NPTkZJR19TRU5TT1JTX0FUWFAx PW0KK0NPTkZJR19TRU5TT1JTX0NPUlNBSVJfQ1BSTz1tCitDT05GSUdfU0VOU09SU19DT1JTQUlS X1BTVT1tCitDT05GSUdfU0VOU09SU19EUklWRVRFTVA9bQorQ09ORklHX1NFTlNPUlNfRFM2MjA9 bQorQ09ORklHX1NFTlNPUlNfRFMxNjIxPW0KK0NPTkZJR19TRU5TT1JTX0k1S19BTUI9bQorQ09O RklHX1NFTlNPUlNfRjcxODA1Rj1tCitDT05GSUdfU0VOU09SU19GNzE4ODJGRz1tCitDT05GSUdf U0VOU09SU19GNzUzNzVTPW0KK0NPTkZJR19TRU5TT1JTX0dTQz1tCitDT05GSUdfU0VOU09SU19G VFNURVVUQVRFUz1tCitDT05GSUdfU0VOU09SU19HTDUxOFNNPW0KK0NPTkZJR19TRU5TT1JTX0dM NTIwU009bQorQ09ORklHX1NFTlNPUlNfRzc2MEE9bQorQ09ORklHX1NFTlNPUlNfRzc2Mj1tCitD T05GSUdfU0VOU09SU19HUElPX0ZBTj1tCitDT05GSUdfU0VOU09SU19ISUg2MTMwPW0KK0NPTkZJ R19TRU5TT1JTX0lCTUFFTT1tCitDT05GSUdfU0VOU09SU19JQk1QRVg9bQorIyBDT05GSUdfU0VO U09SU19JSU9fSFdNT04gaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfSVQ4Nz1tCitDT05GSUdf U0VOU09SU19KQzQyPW0KK0NPTkZJR19TRU5TT1JTX1BPV1IxMjIwPW0KK0NPTkZJR19TRU5TT1JT X0xJTkVBR0U9bQorQ09ORklHX1NFTlNPUlNfTE9DSE5BR0FSPW0KK0NPTkZJR19TRU5TT1JTX0xU QzI5NDU9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk0Nz1tCitDT05GSUdfU0VOU09SU19MVEMyOTQ3 X0kyQz1tCitDT05GSUdfU0VOU09SU19MVEMyOTQ3X1NQST1tCitDT05GSUdfU0VOU09SU19MVEMy OTkwPW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5OTI9bQorQ09ORklHX1NFTlNPUlNfTFRDNDE1MT1t CitDT05GSUdfU0VOU09SU19MVEM0MjE1PW0KK0NPTkZJR19TRU5TT1JTX0xUQzQyMjI9bQorQ09O RklHX1NFTlNPUlNfTFRDNDI0NT1tCitDT05GSUdfU0VOU09SU19MVEM0MjYwPW0KK0NPTkZJR19T RU5TT1JTX0xUQzQyNjE9bQorIyBDT05GSUdfU0VOU09SU19NQVgxMTExIGlzIG5vdCBzZXQKK0NP TkZJR19TRU5TT1JTX01BWDEyNz1tCitDT05GSUdfU0VOU09SU19NQVgxNjA2NT1tCitDT05GSUdf U0VOU09SU19NQVgxNjE5PW0KK0NPTkZJR19TRU5TT1JTX01BWDE2Njg9bQorIyBDT05GSUdfU0VO U09SU19NQVgxOTcgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTUFYMzE3MjI9bQorQ09ORklH X1NFTlNPUlNfTUFYMzE3MzA9bQorQ09ORklHX1NFTlNPUlNfTUFYMzE3NjA9bQorQ09ORklHX1NF TlNPUlNfTUFYNjYyMD1tCitDT05GSUdfU0VOU09SU19NQVg2NjIxPW0KK0NPTkZJR19TRU5TT1JT X01BWDY2Mzk9bQorQ09ORklHX1NFTlNPUlNfTUFYNjY1MD1tCitDT05GSUdfU0VOU09SU19NQVg2 Njk3PW0KK0NPTkZJR19TRU5TT1JTX01BWDMxNzkwPW0KK0NPTkZJR19TRU5TT1JTX01DUDMwMjE9 bQorQ09ORklHX1NFTlNPUlNfVEM2NTQ9bQorQ09ORklHX1NFTlNPUlNfVFBTMjM4NjE9bQorIyBD T05GSUdfU0VOU09SU19NRU5GMjFCTUNfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNf TVI3NTIwMz1tCisjIENPTkZJR19TRU5TT1JTX0FEQ1hYIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5T T1JTX0xNNjM9bQorIyBDT05GSUdfU0VOU09SU19MTTcwIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5T T1JTX0xNNzM9bQorQ09ORklHX1NFTlNPUlNfTE03NT1tCitDT05GSUdfU0VOU09SU19MTTc3PW0K K0NPTkZJR19TRU5TT1JTX0xNNzg9bQorQ09ORklHX1NFTlNPUlNfTE04MD1tCitDT05GSUdfU0VO U09SU19MTTgzPW0KK0NPTkZJR19TRU5TT1JTX0xNODU9bQorQ09ORklHX1NFTlNPUlNfTE04Nz1t CitDT05GSUdfU0VOU09SU19MTTkwPW0KK0NPTkZJR19TRU5TT1JTX0xNOTI9bQorQ09ORklHX1NF TlNPUlNfTE05Mz1tCitDT05GSUdfU0VOU09SU19MTTk1MjM0PW0KK0NPTkZJR19TRU5TT1JTX0xN OTUyNDE9bQorQ09ORklHX1NFTlNPUlNfTE05NTI0NT1tCitDT05GSUdfU0VOU09SU19QQzg3MzYw PW0KK0NPTkZJR19TRU5TT1JTX1BDODc0Mjc9bQorIyBDT05GSUdfU0VOU09SU19OVENfVEhFUk1J U1RPUiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19OQ1Q2NjgzPW0KK0NPTkZJR19TRU5TT1JT X05DVDY3NzVfQ09SRT1tCitDT05GSUdfU0VOU09SU19OQ1Q2Nzc1PW0KKyMgQ09ORklHX1NFTlNP UlNfTkNUNjc3NV9JMkMgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTkNUNzgwMj1tCitDT05G SUdfU0VOU09SU19OQ1Q3OTA0PW0KK0NPTkZJR19TRU5TT1JTX05QQ003WFg9bQorQ09ORklHX1NF TlNPUlNfTlpYVF9LUkFLRU4yPW0KK0NPTkZJR19TRU5TT1JTX05aWFRfU01BUlQyPW0KK0NPTkZJ R19TRU5TT1JTX1BDRjg1OTE9bQorQ09ORklHX1NFTlNPUlNfUEVDSV9DUFVURU1QPW0KK0NPTkZJ R19TRU5TT1JTX1BFQ0lfRElNTVRFTVA9bQorQ09ORklHX1NFTlNPUlNfUEVDST1tCitDT05GSUdf UE1CVVM9bQorQ09ORklHX1NFTlNPUlNfUE1CVVM9bQorQ09ORklHX1NFTlNPUlNfQURNMTI2Nj1t CitDT05GSUdfU0VOU09SU19BRE0xMjc1PW0KK0NPTkZJR19TRU5TT1JTX0JFTF9QRkU9bQorQ09O RklHX1NFTlNPUlNfQlBBX1JTNjAwPW0KK0NPTkZJR19TRU5TT1JTX0RFTFRBX0FIRTUwRENfRkFO PW0KK0NPTkZJR19TRU5TT1JTX0ZTUF8zWT1tCisjIENPTkZJR19TRU5TT1JTX0lCTV9DRkZQUyBp cyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19EUFM5MjBBQj1tCitDT05GSUdfU0VOU09SU19JTlNQ VVJfSVBTUFM9bQorQ09ORklHX1NFTlNPUlNfSVIzNTIyMT1tCitDT05GSUdfU0VOU09SU19JUjM2 MDIxPW0KK0NPTkZJR19TRU5TT1JTX0lSMzgwNjQ9bQorIyBDT05GSUdfU0VOU09SU19JUjM4MDY0 X1JFR1VMQVRPUiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19JUlBTNTQwMT1tCitDT05GSUdf U0VOU09SU19JU0w2ODEzNz1tCitDT05GSUdfU0VOU09SU19MTTI1MDY2PW0KK0NPTkZJR19TRU5T T1JTX0xNMjUwNjZfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX0xUNzE4MlM9bQorQ09ORklH X1NFTlNPUlNfTFRDMjk3OD1tCisjIENPTkZJR19TRU5TT1JTX0xUQzI5NzhfUkVHVUxBVE9SIGlz IG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0xUQzM4MTU9bQorQ09ORklHX1NFTlNPUlNfTUFYMTUz MDE9bQorQ09ORklHX1NFTlNPUlNfTUFYMTYwNjQ9bQorQ09ORklHX1NFTlNPUlNfTUFYMTY2MDE9 bQorQ09ORklHX1NFTlNPUlNfTUFYMjA3MzA9bQorQ09ORklHX1NFTlNPUlNfTUFYMjA3NTE9bQor Q09ORklHX1NFTlNPUlNfTUFYMzE3ODU9bQorQ09ORklHX1NFTlNPUlNfTUFYMzQ0NDA9bQorQ09O RklHX1NFTlNPUlNfTUFYODY4OD1tCitDT05GSUdfU0VOU09SU19NUDI4ODg9bQorQ09ORklHX1NF TlNPUlNfTVAyOTc1PW0KK0NPTkZJR19TRU5TT1JTX01QNTAyMz1tCitDT05GSUdfU0VOU09SU19Q SU00MzI4PW0KK0NPTkZJR19TRU5TT1JTX1BMSTEyMDlCQz1tCitDT05GSUdfU0VOU09SU19QTEkx MjA5QkNfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX1BNNjc2NFRSPW0KK0NPTkZJR19TRU5T T1JTX1BYRTE2MTA9bQorQ09ORklHX1NFTlNPUlNfUTU0U0oxMDhBMj1tCitDT05GSUdfU0VOU09S U19TVFBEREM2MD1tCitDT05GSUdfU0VOU09SU19UUFM0MDQyMj1tCitDT05GSUdfU0VOU09SU19U UFM1MzY3OT1tCitDT05GSUdfU0VOU09SU19UUFM1NDZEMjQ9bQorQ09ORklHX1NFTlNPUlNfVUNE OTAwMD1tCitDT05GSUdfU0VOU09SU19VQ0Q5MjAwPW0KKyMgQ09ORklHX1NFTlNPUlNfWERQRTE1 MiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19YRFBFMTIyPW0KK0NPTkZJR19TRU5TT1JTX1hE UEUxMjJfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX1pMNjEwMD1tCitDT05GSUdfU0VOU09S U19QV01fRkFOPW0KK0NPTkZJR19TRU5TT1JTX1NCVFNJPW0KK0NPTkZJR19TRU5TT1JTX1NCUk1J PW0KK0NPTkZJR19TRU5TT1JTX1NIVDE1PW0KK0NPTkZJR19TRU5TT1JTX1NIVDIxPW0KK0NPTkZJ R19TRU5TT1JTX1NIVDN4PW0KK0NPTkZJR19TRU5TT1JTX1NIVDR4PW0KK0NPTkZJR19TRU5TT1JT X1NIVEMxPW0KK0NPTkZJR19TRU5TT1JTX1NJUzU1OTU9bQorQ09ORklHX1NFTlNPUlNfU1k3NjM2 QT1tCitDT05GSUdfU0VOU09SU19ETUUxNzM3PW0KK0NPTkZJR19TRU5TT1JTX0VNQzE0MDM9bQor Q09ORklHX1NFTlNPUlNfRU1DMjEwMz1tCitDT05GSUdfU0VOU09SU19FTUMyMzA1PW0KK0NPTkZJ R19TRU5TT1JTX0VNQzZXMjAxPW0KK0NPTkZJR19TRU5TT1JTX1NNU0M0N00xPW0KK0NPTkZJR19T RU5TT1JTX1NNU0M0N00xOTI9bQorQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5Nz1tCitDT05GSUdf U0VOU09SU19TQ0g1NlhYX0NPTU1PTj1tCitDT05GSUdfU0VOU09SU19TQ0g1NjI3PW0KK0NPTkZJ R19TRU5TT1JTX1NDSDU2MzY9bQorQ09ORklHX1NFTlNPUlNfU1RUUzc1MT1tCitDT05GSUdfU0VO U09SU19TTU02NjU9bQorQ09ORklHX1NFTlNPUlNfQURDMTI4RDgxOD1tCitDT05GSUdfU0VOU09S U19BRFM3ODI4PW0KKyMgQ09ORklHX1NFTlNPUlNfQURTNzg3MSBpcyBub3Qgc2V0CitDT05GSUdf U0VOU09SU19BTUM2ODIxPW0KK0NPTkZJR19TRU5TT1JTX0lOQTIwOT1tCitDT05GSUdfU0VOU09S U19JTkEyWFg9bQorQ09ORklHX1NFTlNPUlNfSU5BMjM4PW0KK0NPTkZJR19TRU5TT1JTX0lOQTMy MjE9bQorQ09ORklHX1NFTlNPUlNfVEM3ND1tCitDT05GSUdfU0VOU09SU19USE1DNTA9bQorQ09O RklHX1NFTlNPUlNfVE1QMTAyPW0KK0NPTkZJR19TRU5TT1JTX1RNUDEwMz1tCitDT05GSUdfU0VO U09SU19UTVAxMDg9bQorQ09ORklHX1NFTlNPUlNfVE1QNDAxPW0KK0NPTkZJR19TRU5TT1JTX1RN UDQyMT1tCitDT05GSUdfU0VOU09SU19UTVA0NjQ9bQorQ09ORklHX1NFTlNPUlNfVE1QNTEzPW0K K0NPTkZJR19TRU5TT1JTX1ZJQTY4NkE9bQorQ09ORklHX1NFTlNPUlNfVlQxMjExPW0KK0NPTkZJ R19TRU5TT1JTX1ZUODIzMT1tCitDT05GSUdfU0VOU09SU19XODM3NzNHPW0KK0NPTkZJR19TRU5T T1JTX1c4Mzc4MUQ9bQorQ09ORklHX1NFTlNPUlNfVzgzNzkxRD1tCitDT05GSUdfU0VOU09SU19X ODM3OTJEPW0KK0NPTkZJR19TRU5TT1JTX1c4Mzc5Mz1tCitDT05GSUdfU0VOU09SU19XODM3OTU9 bQorIyBDT05GSUdfU0VOU09SU19XODM3OTVfRkFOQ1RSTCBpcyBub3Qgc2V0CitDT05GSUdfU0VO U09SU19XODNMNzg1VFM9bQorQ09ORklHX1NFTlNPUlNfVzgzTDc4Nk5HPW0KK0NPTkZJR19TRU5T T1JTX1c4MzYyN0hGPW0KK0NPTkZJR19TRU5TT1JTX1c4MzYyN0VIRj1tCitDT05GSUdfU0VOU09S U19JTlRFTF9NMTBfQk1DX0hXTU9OPW0KK0NPTkZJR19USEVSTUFMPXkKK0NPTkZJR19USEVSTUFM X05FVExJTks9eQorQ09ORklHX1RIRVJNQUxfU1RBVElTVElDUz15CitDT05GSUdfVEhFUk1BTF9F TUVSR0VOQ1lfUE9XRVJPRkZfREVMQVlfTVM9MAorQ09ORklHX1RIRVJNQUxfSFdNT049eQorQ09O RklHX1RIRVJNQUxfT0Y9eQorIyBDT05GSUdfVEhFUk1BTF9XUklUQUJMRV9UUklQUyBpcyBub3Qg c2V0CitDT05GSUdfVEhFUk1BTF9ERUZBVUxUX0dPVl9TVEVQX1dJU0U9eQorIyBDT05GSUdfVEhF Uk1BTF9ERUZBVUxUX0dPVl9GQUlSX1NIQVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUxf REVGQVVMVF9HT1ZfVVNFUl9TUEFDRSBpcyBub3Qgc2V0CitDT05GSUdfVEhFUk1BTF9HT1ZfRkFJ Ul9TSEFSRT15CitDT05GSUdfVEhFUk1BTF9HT1ZfU1RFUF9XSVNFPXkKK0NPTkZJR19USEVSTUFM X0dPVl9CQU5HX0JBTkc9eQorQ09ORklHX1RIRVJNQUxfR09WX1VTRVJfU1BBQ0U9eQorQ09ORklH X0NQVV9USEVSTUFMPXkKKyMgQ09ORklHX0NQVV9JRExFX1RIRVJNQUwgaXMgbm90IHNldAorQ09O RklHX0RFVkZSRVFfVEhFUk1BTD15CisjIENPTkZJR19USEVSTUFMX0VNVUxBVElPTiBpcyBub3Qg c2V0CitDT05GSUdfVEhFUk1BTF9NTUlPPW0KK0NPTkZJR19NQVg3NzYyMF9USEVSTUFMPW0KK0NP TkZJR19HRU5FUklDX0FEQ19USEVSTUFMPW0KK0NPTkZJR19XQVRDSERPRz15CitDT05GSUdfV0FU Q0hET0dfQ09SRT15CisjIENPTkZJR19XQVRDSERPR19OT1dBWU9VVCBpcyBub3Qgc2V0CitDT05G SUdfV0FUQ0hET0dfSEFORExFX0JPT1RfRU5BQkxFRD15CitDT05GSUdfV0FUQ0hET0dfT1BFTl9U SU1FT1VUPTAKKyMgQ09ORklHX1dBVENIRE9HX1NZU0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dB VENIRE9HX0hSVElNRVJfUFJFVElNRU9VVCBpcyBub3Qgc2V0CisKKyMKKyMgV2F0Y2hkb2cgUHJl dGltZW91dCBHb3Zlcm5vcnMKKyMKK0NPTkZJR19XQVRDSERPR19QUkVUSU1FT1VUX0dPVj15CitD T05GSUdfV0FUQ0hET0dfUFJFVElNRU9VVF9HT1ZfU0VMPW0KK0NPTkZJR19XQVRDSERPR19QUkVU SU1FT1VUX0dPVl9OT09QPXkKK0NPTkZJR19XQVRDSERPR19QUkVUSU1FT1VUX0dPVl9QQU5JQz1t CitDT05GSUdfV0FUQ0hET0dfUFJFVElNRU9VVF9ERUZBVUxUX0dPVl9OT09QPXkKKyMgQ09ORklH X1dBVENIRE9HX1BSRVRJTUVPVVRfREVGQVVMVF9HT1ZfUEFOSUMgaXMgbm90IHNldAorCisjCisj IFdhdGNoZG9nIERldmljZSBEcml2ZXJzCisjCitDT05GSUdfU09GVF9XQVRDSERPRz1tCitDT05G SUdfU09GVF9XQVRDSERPR19QUkVUSU1FT1VUPXkKK0NPTkZJR19CRDk1N1hNVUZfV0FUQ0hET0c9 bQorIyBDT05GSUdfR1BJT19XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19NRU5GMjFCTUNf V0FUQ0hET0cgaXMgbm90IHNldAorQ09ORklHX1hJTElOWF9XQVRDSERPRz1tCitDT05GSUdfWklJ UkFWRV9XQVRDSERPRz1tCitDT05GSUdfQ0FERU5DRV9XQVRDSERPRz1tCitDT05GSUdfRFdfV0FU Q0hET0c9bQorIyBDT05GSUdfTUFYNjNYWF9XQVRDSERPRyBpcyBub3Qgc2V0CitDT05GSUdfTUFY Nzc2MjBfV0FUQ0hET0c9bQorQ09ORklHX1NUUE1JQzFfV0FUQ0hET0c9bQorQ09ORklHX0FMSU03 MTAxX1dEVD1tCitDT05GSUdfSTYzMDBFU0JfV0RUPW0KK0NPTkZJR19LRU1QTERfV0RUPW0KK0NP TkZJR19NRU5fQTIxX1dEVD1tCisKKyMKKyMgUENJLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCitD T05GSUdfUENJUENXQVRDSERPRz1tCitDT05GSUdfV0RUUENJPW0KKworIworIyBVU0ItYmFzZWQg V2F0Y2hkb2cgQ2FyZHMKKyMKK0NPTkZJR19VU0JQQ1dBVENIRE9HPW0KK0NPTkZJR19TU0JfUE9T U0lCTEU9eQorQ09ORklHX1NTQj1tCitDT05GSUdfU1NCX1NQUk9NPXkKK0NPTkZJR19TU0JfQkxP Q0tJTz15CitDT05GSUdfU1NCX1BDSUhPU1RfUE9TU0lCTEU9eQorQ09ORklHX1NTQl9QQ0lIT1NU PXkKK0NPTkZJR19TU0JfQjQzX1BDSV9CUklER0U9eQorQ09ORklHX1NTQl9QQ01DSUFIT1NUX1BP U1NJQkxFPXkKK0NPTkZJR19TU0JfUENNQ0lBSE9TVD15CitDT05GSUdfU1NCX1NESU9IT1NUX1BP U1NJQkxFPXkKK0NPTkZJR19TU0JfU0RJT0hPU1Q9eQorQ09ORklHX1NTQl9EUklWRVJfUENJQ09S RV9QT1NTSUJMRT15CitDT05GSUdfU1NCX0RSSVZFUl9QQ0lDT1JFPXkKK0NPTkZJR19TU0JfRFJJ VkVSX0dQSU89eQorQ09ORklHX0JDTUFfUE9TU0lCTEU9eQorQ09ORklHX0JDTUE9bQorQ09ORklH X0JDTUFfQkxPQ0tJTz15CitDT05GSUdfQkNNQV9IT1NUX1BDSV9QT1NTSUJMRT15CitDT05GSUdf QkNNQV9IT1NUX1BDST15CitDT05GSUdfQkNNQV9IT1NUX1NPQz15CitDT05GSUdfQkNNQV9EUklW RVJfUENJPXkKK0NPTkZJR19CQ01BX1NGTEFTSD15CitDT05GSUdfQkNNQV9EUklWRVJfR01BQ19D TU49eQorQ09ORklHX0JDTUFfRFJJVkVSX0dQSU89eQorIyBDT05GSUdfQkNNQV9ERUJVRyBpcyBu b3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01G RF9DT1JFPXkKKyMgQ09ORklHX01GRF9BQ1Q4OTQ1QSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRf QVMzNzExIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BUzM3MjIgaXMgbm90IHNldAorIyBDT05G SUdfUE1JQ19BRFA1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BQVQyODcwX0NPUkUgaXMg bm90IHNldAorIyBDT05GSUdfTUZEX0FUTUVMX0ZMRVhDT00gaXMgbm90IHNldAorQ09ORklHX01G RF9BVE1FTF9ITENEQz1tCisjIENPTkZJR19NRkRfQkNNNTkwWFggaXMgbm90IHNldAorQ09ORklH X01GRF9CRDk1NzFNV1Y9bQorQ09ORklHX01GRF9BWFAyMFg9bQorQ09ORklHX01GRF9BWFAyMFhf STJDPW0KK0NPTkZJR19NRkRfTUFERVJBPW0KK0NPTkZJR19NRkRfTUFERVJBX0kyQz1tCitDT05G SUdfTUZEX01BREVSQV9TUEk9bQorQ09ORklHX01GRF9DUzQ3TDE1PXkKK0NPTkZJR19NRkRfQ1M0 N0wzNT15CitDT05GSUdfTUZEX0NTNDdMODU9eQorQ09ORklHX01GRF9DUzQ3TDkwPXkKK0NPTkZJ R19NRkRfQ1M0N0w5Mj15CisjIENPTkZJR19QTUlDX0RBOTAzWCBpcyBub3Qgc2V0CisjIENPTkZJ R19NRkRfREE5MDUyX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDUyX0kyQyBpcyBu b3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9EQTkw NjIgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0RBOTA2MyBpcyBub3Qgc2V0CisjIENPTkZJR19N RkRfREE5MTUwIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfRExOMj1tCitDT05GSUdfTUZEX0dBVEVX T1JLU19HU0M9bQorIyBDT05GSUdfTUZEX01DMTNYWFhfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklH X01GRF9NQzEzWFhYX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX01QMjYyOT1tCitDT05GSUdf TUZEX0hJNjQyMV9QTUlDPW0KK0NPTkZJR19NRkRfSEk2NDIxX1NQTUk9bQorQ09ORklHX0hUQ19Q QVNJQzM9bQorIyBDT05GSUdfSFRDX0kyQ1BMRCBpcyBub3Qgc2V0CitDT05GSUdfTFBDX0lDSD1t CitDT05GSUdfTFBDX1NDSD1tCitDT05GSUdfTUZEX0lRUzYyWD1tCisjIENPTkZJR19NRkRfSkFO Wl9DTU9ESU8gaXMgbm90IHNldAorQ09ORklHX01GRF9LRU1QTEQ9bQorIyBDT05GSUdfTUZEXzg4 UE04MDAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEXzg4UE04MDUgaXMgbm90IHNldAorIyBDT05G SUdfTUZEXzg4UE04NjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVgxNDU3NyBpcyBub3Qg c2V0CitDT05GSUdfTUZEX01BWDc3NjIwPXkKK0NPTkZJR19NRkRfTUFYNzc2NTA9bQorIyBDT05G SUdfTUZEX01BWDc3Njg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg3NzY5MyBpcyBub3Qg c2V0CisjIENPTkZJR19NRkRfTUFYNzc3MTQgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01BWDc3 ODQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTA3IGlzIG5vdCBzZXQKKyMgQ09ORklH X01GRF9NQVg4OTI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTk3IGlzIG5vdCBzZXQK KyMgQ09ORklHX01GRF9NQVg4OTk4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NVDYzNjAgaXMg bm90IHNldAorQ09ORklHX01GRF9NVDYzNzA9bQorIyBDT05GSUdfTUZEX01UNjM5NyBpcyBub3Qg c2V0CitDT05GSUdfTUZEX01FTkYyMUJNQz1tCitDT05GSUdfTUZEX09DRUxPVD1tCisjIENPTkZJ R19FWlhfUENBUCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX0NQQ0FQPW0KK0NPTkZJR19NRkRfVklQ RVJCT0FSRD1tCitDT05GSUdfTUZEX05UWEVDPW0KKyMgQ09ORklHX01GRF9SRVRVIGlzIG5vdCBz ZXQKKyMgQ09ORklHX01GRF9QQ0Y1MDYzMyBpcyBub3Qgc2V0CisjIENPTkZJR19VQ0IxNDAwX0NP UkUgaXMgbm90IHNldAorQ09ORklHX01GRF9TWTc2MzZBPW0KKyMgQ09ORklHX01GRF9SREMzMjFY IGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfUlQ0ODMxPW0KKyMgQ09ORklHX01GRF9SVDUwMzMgaXMg bm90IHNldAorQ09ORklHX01GRF9SVDUxMjA9bQorIyBDT05GSUdfTUZEX1JDNVQ1ODMgaXMgbm90 IHNldAorQ09ORklHX01GRF9SSzgwOD1tCisjIENPTkZJR19NRkRfUk41VDYxOCBpcyBub3Qgc2V0 CisjIENPTkZJR19NRkRfU0VDX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1NJNDc2WF9D T1JFIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfU0lNUExFX01GRF9JMkM9bQorIyBDT05GSUdfTUZE X1NNNTAxIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfU0tZODE0NTI9bQorIyBDT05GSUdfTUZEX1NU TVBFIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfU1lTQ09OPXkKK0NPTkZJR19NRkRfVElfQU0zMzVY X1RTQ0FEQz1tCitDT05GSUdfTUZEX0xQMzk0Mz1tCisjIENPTkZJR19NRkRfTFA4Nzg4IGlzIG5v dCBzZXQKK0NPTkZJR19NRkRfVElfTE1VPW0KKyMgQ09ORklHX01GRF9QQUxNQVMgaXMgbm90IHNl dAorIyBDT05GSUdfVFBTNjEwNVggaXMgbm90IHNldAorQ09ORklHX1RQUzY1MDEwPW0KK0NPTkZJ R19UUFM2NTA3WD1tCisjIENPTkZJR19NRkRfVFBTNjUwODYgaXMgbm90IHNldAorIyBDT05GSUdf TUZEX1RQUzY1MDkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTIxNyBpcyBub3Qgc2V0 CitDT05GSUdfTUZEX1RJX0xQODczWD1tCitDT05GSUdfTUZEX1RJX0xQODc1NjU9bQorIyBDT05G SUdfTUZEX1RQUzY1MjE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTg2WCBpcyBub3Qg c2V0CisjIENPTkZJR19NRkRfVFBTNjU5MTAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1 OTEyX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfVFBTNjU5MTJfU1BJIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RXTDQwMzBfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19UV0w2MDQwX0NPUkUg aXMgbm90IHNldAorQ09ORklHX01GRF9XTDEyNzNfQ09SRT1tCitDT05GSUdfTUZEX0xNMzUzMz1t CisjIENPTkZJR19NRkRfVEMzNTg5WCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1RRTVg4Nj1tCitD T05GSUdfTUZEX1ZYODU1PW0KK0NPTkZJR19NRkRfTE9DSE5BR0FSPXkKKyMgQ09ORklHX01GRF9B UklaT05BX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVJJWk9OQV9TUEkgaXMgbm90IHNl dAorIyBDT05GSUdfTUZEX1dNODQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfV004MzFYX0ky QyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfV004MzFYX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJ R19NRkRfV004MzUwX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1dNODk5ND1tCitDT05GSUdf TUZEX1JPSE1fQkQ3MThYWD1tCitDT05GSUdfTUZEX1JPSE1fQkQ3MTgyOD1tCitDT05GSUdfTUZE X1JPSE1fQkQ5NTdYTVVGPW0KK0NPTkZJR19NRkRfU1RQTUlDMT1tCitDT05GSUdfTUZEX1NUTUZY PW0KK0NPTkZJR19NRkRfQVRDMjYwWD1tCitDT05GSUdfTUZEX0FUQzI2MFhfSTJDPW0KK0NPTkZJ R19NRkRfUUNPTV9QTTgwMDg9bQorIyBDT05GSUdfUkFWRV9TUF9DT1JFIGlzIG5vdCBzZXQKK0NP TkZJR19NRkRfSU5URUxfTTEwX0JNQz1tCitDT05GSUdfTUZEX1JTTVVfSTJDPW0KK0NPTkZJR19N RkRfUlNNVV9TUEk9bQorIyBlbmQgb2YgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworCitD T05GSUdfUkVHVUxBVE9SPXkKKyMgQ09ORklHX1JFR1VMQVRPUl9ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfUkVHVUxBVE9SX0ZJWEVEX1ZPTFRBR0U9bQorIyBDT05GSUdfUkVHVUxBVE9SX1ZJUlRV QUxfQ09OU1VNRVIgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1VTRVJTUEFDRV9DT05T VU1FUiBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SXzg4UEc4Nlg9bQorIyBDT05GSUdfUkVH VUxBVE9SX0FDVDg4NjUgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX0FENTM5OCBpcyBu b3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0FSSVpPTkFfTERPMT1tCitDT05GSUdfUkVHVUxBVE9S X0FSSVpPTkFfTUlDU1VQUD1tCitDT05GSUdfUkVHVUxBVE9SX0FUQzI2MFg9bQorQ09ORklHX1JF R1VMQVRPUl9BWFAyMFg9bQorQ09ORklHX1JFR1VMQVRPUl9CRDcxODE1PW0KK0NPTkZJR19SRUdV TEFUT1JfQkQ3MTgyOD1tCitDT05GSUdfUkVHVUxBVE9SX0JENzE4WFg9bQorQ09ORklHX1JFR1VM QVRPUl9CRDk1NzFNV1Y9bQorQ09ORklHX1JFR1VMQVRPUl9CRDk1N1hNVUY9bQorQ09ORklHX1JF R1VMQVRPUl9DUENBUD1tCitDT05GSUdfUkVHVUxBVE9SX0RBOTEyMT1tCisjIENPTkZJR19SRUdV TEFUT1JfREE5MjEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9EQTkyMTEgaXMgbm90 IHNldAorQ09ORklHX1JFR1VMQVRPUl9GQU41MzU1NT1tCitDT05GSUdfUkVHVUxBVE9SX0ZBTjUz ODgwPW0KK0NPTkZJR19SRUdVTEFUT1JfR1BJTz1tCitDT05GSUdfUkVHVUxBVE9SX0hJNjQyMT1t CitDT05GSUdfUkVHVUxBVE9SX0hJNjQyMVY1MzA9bQorQ09ORklHX1JFR1VMQVRPUl9ISTY0MjFW NjAwPW0KK0NPTkZJR19SRUdVTEFUT1JfSVNMOTMwNT1tCisjIENPTkZJR19SRUdVTEFUT1JfSVNM NjI3MUEgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9MTTM2M1g9bQorQ09ORklHX1JFR1VM QVRPUl9MT0NITkFHQVI9bQorIyBDT05GSUdfUkVHVUxBVE9SX0xQMzk3MSBpcyBub3Qgc2V0Cisj IENPTkZJR19SRUdVTEFUT1JfTFAzOTcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9M UDg3MlggaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9MUDg3M1g9bQorIyBDT05GSUdfUkVH VUxBVE9SX0xQODc1NSBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0xQODc1NjU9bQorQ09O RklHX1JFR1VMQVRPUl9MVEMzNTg5PW0KK0NPTkZJR19SRUdVTEFUT1JfTFRDMzY3Nj1tCisjIENP TkZJR19SRUdVTEFUT1JfTUFYMTU4NiBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX01BWDc3 NjIwPW0KK0NPTkZJR19SRUdVTEFUT1JfTUFYNzc2NTA9bQorIyBDT05GSUdfUkVHVUxBVE9SX01B WDg2NDkgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX01BWDg2NjAgaXMgbm90IHNldAor Q09ORklHX1JFR1VMQVRPUl9NQVg4ODkzPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9NQVg4OTUyIGlz IG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9NQVg4OTczIGlzIG5vdCBzZXQKKyMgQ09ORklH X1JFR1VMQVRPUl9NQVgyMDA4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfTUFYNzc4 MjYgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9NQ1AxNjUwMj1tCitDT05GSUdfUkVHVUxB VE9SX01QNTQxNj1tCitDT05GSUdfUkVHVUxBVE9SX01QODg1OT1tCitDT05GSUdfUkVHVUxBVE9S X01QODg2WD1tCitDT05GSUdfUkVHVUxBVE9SX01QUTc5MjA9bQorIyBDT05GSUdfUkVHVUxBVE9S X01UNjMxMSBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX01UNjMxNT1tCitDT05GSUdfUkVH VUxBVE9SX01UNjM3MD1tCitDT05GSUdfUkVHVUxBVE9SX1BDQTk0NTA9bQorQ09ORklHX1JFR1VM QVRPUl9QRjhYMDA9bQorIyBDT05GSUdfUkVHVUxBVE9SX1BGVVpFMTAwIGlzIG5vdCBzZXQKKyMg Q09ORklHX1JFR1VMQVRPUl9QVjg4MDYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9Q Vjg4MDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9QVjg4MDkwIGlzIG5vdCBzZXQK K0NPTkZJR19SRUdVTEFUT1JfUFdNPW0KK0NPTkZJR19SRUdVTEFUT1JfUUNPTV9TUE1JPW0KK0NP TkZJR19SRUdVTEFUT1JfUUNPTV9VU0JfVkJVUz1tCitDT05GSUdfUkVHVUxBVE9SX1JBU1BCRVJS WVBJX1RPVUNIU0NSRUVOX0FUVElOWT1tCitDT05GSUdfUkVHVUxBVE9SX1JLODA4PW0KK0NPTkZJ R19SRUdVTEFUT1JfUk9ITT1tCitDT05GSUdfUkVHVUxBVE9SX1JUNDgwMT1tCitDT05GSUdfUkVH VUxBVE9SX1JUNDgzMT1tCitDT05GSUdfUkVHVUxBVE9SX1JUNTEyMD1tCitDT05GSUdfUkVHVUxB VE9SX1JUNTE5MEE9bQorQ09ORklHX1JFR1VMQVRPUl9SVDU3NTk9bQorQ09ORklHX1JFR1VMQVRP Ul9SVDYxNjA9bQorQ09ORklHX1JFR1VMQVRPUl9SVDYyNDU9bQorQ09ORklHX1JFR1VMQVRPUl9S VFEyMTM0PW0KK0NPTkZJR19SRUdVTEFUT1JfUlRNVjIwPW0KK0NPTkZJR19SRUdVTEFUT1JfUlRR Njc1Mj1tCitDT05GSUdfUkVHVUxBVE9SX1NLWTgxNDUyPW0KK0NPTkZJR19SRUdVTEFUT1JfU0xH NTEwMDA9bQorQ09ORklHX1JFR1VMQVRPUl9TVFBNSUMxPW0KK0NPTkZJR19SRUdVTEFUT1JfU1k3 NjM2QT1tCitDT05GSUdfUkVHVUxBVE9SX1NZODEwNkE9bQorQ09ORklHX1JFR1VMQVRPUl9TWTg4 MjRYPW0KK0NPTkZJR19SRUdVTEFUT1JfU1k4ODI3Tj1tCisjIENPTkZJR19SRUdVTEFUT1JfVFBT NTE2MzIgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzYyMzYwIGlzIG5vdCBzZXQK KyMgQ09ORklHX1JFR1VMQVRPUl9UUFM2Mjg2WCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFU T1JfVFBTNjUwMjMgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDdYIGlzIG5v dCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfVFBTNjUxMzI9bQorIyBDT05GSUdfUkVHVUxBVE9SX1RQ UzY1MjRYIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfVkNUUkw9bQorQ09ORklHX1JFR1VM QVRPUl9XTTg5OTQ9bQorQ09ORklHX1JFR1VMQVRPUl9RQ09NX0xBQklCQj1tCitDT05GSUdfUkNf Q09SRT1tCitDT05GSUdfTElSQz15CitDT05GSUdfUkNfTUFQPW0KK0NPTkZJR19SQ19ERUNPREVS Uz15CitDT05GSUdfSVJfSU1PTl9ERUNPREVSPW0KK0NPTkZJR19JUl9KVkNfREVDT0RFUj1tCitD T05GSUdfSVJfTUNFX0tCRF9ERUNPREVSPW0KK0NPTkZJR19JUl9ORUNfREVDT0RFUj1tCitDT05G SUdfSVJfUkM1X0RFQ09ERVI9bQorQ09ORklHX0lSX1JDNl9ERUNPREVSPW0KK0NPTkZJR19JUl9S Q01NX0RFQ09ERVI9bQorQ09ORklHX0lSX1NBTllPX0RFQ09ERVI9bQorQ09ORklHX0lSX1NIQVJQ X0RFQ09ERVI9bQorQ09ORklHX0lSX1NPTllfREVDT0RFUj1tCitDT05GSUdfSVJfWE1QX0RFQ09E RVI9bQorQ09ORklHX1JDX0RFVklDRVM9eQorQ09ORklHX0lSX0dQSU9fQ0lSPW0KK0NPTkZJR19J Ul9HUElPX1RYPW0KK0NPTkZJR19JUl9ISVg1SEQyPW0KK0NPTkZJR19JUl9JR09SUExVR1VTQj1t CitDT05GSUdfSVJfSUdVQU5BPW0KK0NPTkZJR19JUl9JTU9OPW0KK0NPTkZJR19JUl9JTU9OX1JB Vz1tCitDT05GSUdfSVJfTUNFVVNCPW0KK0NPTkZJR19JUl9QV01fVFg9bQorQ09ORklHX0lSX1JF RFJBVDM9bQorQ09ORklHX0lSX1NFUklBTD1tCitDT05GSUdfSVJfU0VSSUFMX1RSQU5TTUlUVEVS PXkKK0NPTkZJR19JUl9TUEk9bQorQ09ORklHX0lSX1NUUkVBTVpBUD1tCitDT05GSUdfSVJfVE9Z PW0KK0NPTkZJR19JUl9UVFVTQklSPW0KK0NPTkZJR19SQ19BVElfUkVNT1RFPW0KK0NPTkZJR19S Q19MT09QQkFDSz1tCitDT05GSUdfUkNfWEJPWF9EVkQ9bQorQ09ORklHX0NFQ19DT1JFPW0KK0NP TkZJR19DRUNfTk9USUZJRVI9eQorCisjCisjIENFQyBzdXBwb3J0CisjCitDT05GSUdfTUVESUFf Q0VDX1JDPXkKK0NPTkZJR19NRURJQV9DRUNfU1VQUE9SVD15CitDT05GSUdfQ0VDX0NINzMyMj1t CitDT05GSUdfVVNCX1BVTFNFOF9DRUM9bQorQ09ORklHX1VTQl9SQUlOU0hBRE9XX0NFQz1tCisj IGVuZCBvZiBDRUMgc3VwcG9ydAorCitDT05GSUdfTUVESUFfU1VQUE9SVD1tCisjIENPTkZJR19N RURJQV9TVVBQT1JUX0ZJTFRFUiBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfU1VCRFJWX0FVVE9T RUxFQ1Q9eQorCisjCisjIE1lZGlhIGRldmljZSB0eXBlcworIworQ09ORklHX01FRElBX0NBTUVS QV9TVVBQT1JUPXkKK0NPTkZJR19NRURJQV9BTkFMT0dfVFZfU1VQUE9SVD15CitDT05GSUdfTUVE SUFfRElHSVRBTF9UVl9TVVBQT1JUPXkKK0NPTkZJR19NRURJQV9SQURJT19TVVBQT1JUPXkKK0NP TkZJR19NRURJQV9TRFJfU1VQUE9SVD15CitDT05GSUdfTUVESUFfUExBVEZPUk1fU1VQUE9SVD15 CitDT05GSUdfTUVESUFfVEVTVF9TVVBQT1JUPXkKKyMgZW5kIG9mIE1lZGlhIGRldmljZSB0eXBl cworCisjCisjIE1lZGlhIGNvcmUgc3VwcG9ydAorIworQ09ORklHX1ZJREVPX0RFVj1tCitDT05G SUdfTUVESUFfQ09OVFJPTExFUj15CitDT05GSUdfRFZCX0NPUkU9bQorIyBlbmQgb2YgTWVkaWEg Y29yZSBzdXBwb3J0CisKKyMKKyMgVmlkZW80TGludXggb3B0aW9ucworIworQ09ORklHX1ZJREVP X1Y0TDJfSTJDPXkKK0NPTkZJR19WSURFT19WNEwyX1NVQkRFVl9BUEk9eQorIyBDT05GSUdfVklE RU9fQURWX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0ZJWEVEX01JTk9SX1JBTkdF UyBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fVFVORVI9bQorQ09ORklHX1Y0TDJfTUVNMk1FTV9E RVY9bQorQ09ORklHX1Y0TDJfRkxBU0hfTEVEX0NMQVNTPW0KK0NPTkZJR19WNEwyX0ZXTk9ERT1t CitDT05GSUdfVjRMMl9BU1lOQz1tCitDT05GSUdfVklERU9CVUZfR0VOPW0KK0NPTkZJR19WSURF T0JVRl9ETUFfU0c9bQorQ09ORklHX1ZJREVPQlVGX1ZNQUxMT0M9bQorIyBlbmQgb2YgVmlkZW80 TGludXggb3B0aW9ucworCisjCisjIE1lZGlhIGNvbnRyb2xsZXIgb3B0aW9ucworIworQ09ORklH X01FRElBX0NPTlRST0xMRVJfRFZCPXkKK0NPTkZJR19NRURJQV9DT05UUk9MTEVSX1JFUVVFU1Rf QVBJPXkKKyMgZW5kIG9mIE1lZGlhIGNvbnRyb2xsZXIgb3B0aW9ucworCisjCisjIERpZ2l0YWwg VFYgb3B0aW9ucworIworIyBDT05GSUdfRFZCX01NQVAgaXMgbm90IHNldAorQ09ORklHX0RWQl9O RVQ9eQorQ09ORklHX0RWQl9NQVhfQURBUFRFUlM9OAorQ09ORklHX0RWQl9EWU5BTUlDX01JTk9S Uz15CisjIENPTkZJR19EVkJfREVNVVhfU0VDVElPTl9MT1NTX0xPRyBpcyBub3Qgc2V0CisjIENP TkZJR19EVkJfVUxFX0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERpZ2l0YWwgVFYgb3B0aW9u cworCisjCisjIE1lZGlhIGRyaXZlcnMKKyMKKworIworIyBNZWRpYSBkcml2ZXJzCisjCitDT05G SUdfTUVESUFfVVNCX1NVUFBPUlQ9eQorCisjCisjIFdlYmNhbSBkZXZpY2VzCisjCitDT05GSUdf VVNCX0dTUENBPW0KK0NPTkZJR19VU0JfR1NQQ0FfQkVOUT1tCitDT05GSUdfVVNCX0dTUENBX0NP TkVYPW0KK0NPTkZJR19VU0JfR1NQQ0FfQ1BJQTE9bQorQ09ORklHX1VTQl9HU1BDQV9EVENTMDMz PW0KK0NPTkZJR19VU0JfR1NQQ0FfRVRPTVM9bQorQ09ORklHX1VTQl9HU1BDQV9GSU5FUElYPW0K K0NPTkZJR19VU0JfR1NQQ0FfSkVJTElOSj1tCitDT05GSUdfVVNCX0dTUENBX0pMMjAwNUJDRD1t CitDT05GSUdfVVNCX0dTUENBX0tJTkVDVD1tCitDT05GSUdfVVNCX0dTUENBX0tPTklDQT1tCitD T05GSUdfVVNCX0dTUENBX01BUlM9bQorQ09ORklHX1VTQl9HU1BDQV9NUjk3MzEwQT1tCitDT05G SUdfVVNCX0dTUENBX05XODBYPW0KK0NPTkZJR19VU0JfR1NQQ0FfT1Y1MTk9bQorQ09ORklHX1VT Ql9HU1BDQV9PVjUzND1tCitDT05GSUdfVVNCX0dTUENBX09WNTM0Xzk9bQorQ09ORklHX1VTQl9H U1BDQV9QQUMyMDc9bQorQ09ORklHX1VTQl9HU1BDQV9QQUM3MzAyPW0KK0NPTkZJR19VU0JfR1NQ Q0FfUEFDNzMxMT1tCitDT05GSUdfVVNCX0dTUENBX1NFNDAxPW0KK0NPTkZJR19VU0JfR1NQQ0Ff U045QzIwMjg9bQorQ09ORklHX1VTQl9HU1BDQV9TTjlDMjBYPW0KK0NPTkZJR19VU0JfR1NQQ0Ff U09OSVhCPW0KK0NPTkZJR19VU0JfR1NQQ0FfU09OSVhKPW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BD QTE1Mjg9bQorQ09ORklHX1VTQl9HU1BDQV9TUENBNTAwPW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BD QTUwMT1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0E1MDU9bQorQ09ORklHX1VTQl9HU1BDQV9TUENB NTA2PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BDQTUwOD1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0E1 NjE9bQorQ09ORklHX1VTQl9HU1BDQV9TUTkwNT1tCitDT05GSUdfVVNCX0dTUENBX1NROTA1Qz1t CitDT05GSUdfVVNCX0dTUENBX1NROTMwWD1tCitDT05GSUdfVVNCX0dTUENBX1NUSzAxND1tCitD T05GSUdfVVNCX0dTUENBX1NUSzExMzU9bQorQ09ORklHX1VTQl9HU1BDQV9TVFYwNjgwPW0KK0NP TkZJR19VU0JfR1NQQ0FfU1VOUExVUz1tCitDT05GSUdfVVNCX0dTUENBX1Q2MTM9bQorQ09ORklH X1VTQl9HU1BDQV9UT1BSTz1tCitDT05GSUdfVVNCX0dTUENBX1RPVVBURUs9bQorQ09ORklHX1VT Ql9HU1BDQV9UVjg1MzI9bQorQ09ORklHX1VTQl9HU1BDQV9WQzAzMlg9bQorQ09ORklHX1VTQl9H U1BDQV9WSUNBTT1tCitDT05GSUdfVVNCX0dTUENBX1hJUkxJTktfQ0lUPW0KK0NPTkZJR19VU0Jf R1NQQ0FfWkMzWFg9bQorQ09ORklHX1VTQl9HTDg2MD1tCitDT05GSUdfVVNCX001NjAyPW0KK0NP TkZJR19VU0JfU1RWMDZYWD1tCitDT05GSUdfVVNCX1BXQz1tCisjIENPTkZJR19VU0JfUFdDX0RF QlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfUFdDX0lOUFVUX0VWREVWPXkKK0NPTkZJR19VU0Jf UzIyNTU9bQorQ09ORklHX1ZJREVPX1VTQlRWPW0KK0NPTkZJR19VU0JfVklERU9fQ0xBU1M9bQor Q09ORklHX1VTQl9WSURFT19DTEFTU19JTlBVVF9FVkRFVj15CisKKyMKKyMgQW5hbG9nIFRWIFVT QiBkZXZpY2VzCisjCitDT05GSUdfVklERU9fR083MDA3PW0KK0NPTkZJR19WSURFT19HTzcwMDdf VVNCPW0KK0NPTkZJR19WSURFT19HTzcwMDdfTE9BREVSPW0KK0NPTkZJR19WSURFT19HTzcwMDdf VVNCX1MyMjUwX0JPQVJEPW0KK0NPTkZJR19WSURFT19IRFBWUj1tCitDT05GSUdfVklERU9fUFZS VVNCMj1tCitDT05GSUdfVklERU9fUFZSVVNCMl9TWVNGUz15CitDT05GSUdfVklERU9fUFZSVVNC Ml9EVkI9eQorIyBDT05GSUdfVklERU9fUFZSVVNCMl9ERUJVR0lGQyBpcyBub3Qgc2V0CitDT05G SUdfVklERU9fU1RLMTE2MF9DT01NT049bQorQ09ORklHX1ZJREVPX1NUSzExNjA9bQorCisjCisj IEFuYWxvZy9kaWdpdGFsIFRWIFVTQiBkZXZpY2VzCisjCitDT05GSUdfVklERU9fQVUwODI4PW0K K0NPTkZJR19WSURFT19BVTA4MjhfVjRMMj15CitDT05GSUdfVklERU9fQVUwODI4X1JDPXkKK0NP TkZJR19WSURFT19DWDIzMVhYPW0KK0NPTkZJR19WSURFT19DWDIzMVhYX1JDPXkKK0NPTkZJR19W SURFT19DWDIzMVhYX0FMU0E9bQorQ09ORklHX1ZJREVPX0NYMjMxWFhfRFZCPW0KKworIworIyBE aWdpdGFsIFRWIFVTQiBkZXZpY2VzCisjCitDT05GSUdfRFZCX0FTMTAyPW0KK0NPTkZJR19EVkJf QjJDMl9GTEVYQ09QX1VTQj1tCisjIENPTkZJR19EVkJfQjJDMl9GTEVYQ09QX1VTQl9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfRFZCX1VTQl9WMj1tCitDT05GSUdfRFZCX1VTQl9BRjkwMTU9bQor Q09ORklHX0RWQl9VU0JfQUY5MDM1PW0KK0NPTkZJR19EVkJfVVNCX0FOWVNFRT1tCitDT05GSUdf RFZCX1VTQl9BVTY2MTA9bQorQ09ORklHX0RWQl9VU0JfQVo2MDA3PW0KK0NPTkZJR19EVkJfVVNC X0NFNjIzMD1tCitDT05GSUdfRFZCX1VTQl9EVkJTS1k9bQorQ09ORklHX0RWQl9VU0JfRUMxNjg9 bQorQ09ORklHX0RWQl9VU0JfR0w4NjE9bQorQ09ORklHX0RWQl9VU0JfTE1FMjUxMD1tCitDT05G SUdfRFZCX1VTQl9NWEwxMTFTRj1tCitDT05GSUdfRFZCX1VTQl9SVEwyOFhYVT1tCitDT05GSUdf RFZCX1VTQl9aRDEzMDE9bQorQ09ORklHX0RWQl9VU0I9bQorIyBDT05GSUdfRFZCX1VTQl9ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfRFZCX1VTQl9BODAwPW0KK0NPTkZJR19EVkJfVVNCX0FGOTAw NT1tCitDT05GSUdfRFZCX1VTQl9BRjkwMDVfUkVNT1RFPW0KK0NPTkZJR19EVkJfVVNCX0FaNjAy Nz1tCitDT05GSUdfRFZCX1VTQl9DSU5FUkdZX1QyPW0KK0NPTkZJR19EVkJfVVNCX0NYVVNCPW0K K0NPTkZJR19EVkJfVVNCX0NYVVNCX0FOQUxPRz15CitDT05GSUdfRFZCX1VTQl9ESUIwNzAwPW0K K0NPTkZJR19EVkJfVVNCX0RJQjMwMDBNQz1tCitDT05GSUdfRFZCX1VTQl9ESUJVU0JfTUI9bQor IyBDT05GSUdfRFZCX1VTQl9ESUJVU0JfTUJfRkFVTFRZIGlzIG5vdCBzZXQKK0NPTkZJR19EVkJf VVNCX0RJQlVTQl9NQz1tCitDT05GSUdfRFZCX1VTQl9ESUdJVFY9bQorQ09ORklHX0RWQl9VU0Jf RFRUMjAwVT1tCitDT05GSUdfRFZCX1VTQl9EVFY1MTAwPW0KK0NPTkZJR19EVkJfVVNCX0RXMjEw Mj1tCitDT05GSUdfRFZCX1VTQl9HUDhQU0s9bQorQ09ORklHX0RWQl9VU0JfTTkyMFg9bQorQ09O RklHX0RWQl9VU0JfTk9WQV9UX1VTQjI9bQorQ09ORklHX0RWQl9VU0JfT1BFUkExPW0KK0NPTkZJ R19EVkJfVVNCX1BDVFY0NTJFPW0KK0NPTkZJR19EVkJfVVNCX1RFQ0hOSVNBVF9VU0IyPW0KK0NP TkZJR19EVkJfVVNCX1RUVVNCMj1tCitDT05GSUdfRFZCX1VTQl9VTVRfMDEwPW0KK0NPTkZJR19E VkJfVVNCX1ZQNzAyWD1tCitDT05GSUdfRFZCX1VTQl9WUDcwNDU9bQorQ09ORklHX1NNU19VU0Jf RFJWPW0KK0NPTkZJR19EVkJfVFRVU0JfQlVER0VUPW0KK0NPTkZJR19EVkJfVFRVU0JfREVDPW0K KworIworIyBXZWJjYW0sIFRWIChhbmFsb2cvZGlnaXRhbCkgVVNCIGRldmljZXMKKyMKK0NPTkZJ R19WSURFT19FTTI4WFg9bQorQ09ORklHX1ZJREVPX0VNMjhYWF9WNEwyPW0KK0NPTkZJR19WSURF T19FTTI4WFhfQUxTQT1tCitDT05GSUdfVklERU9fRU0yOFhYX0RWQj1tCitDT05GSUdfVklERU9f RU0yOFhYX1JDPW0KKworIworIyBTb2Z0d2FyZSBkZWZpbmVkIHJhZGlvIFVTQiBkZXZpY2VzCisj CitDT05GSUdfVVNCX0FJUlNQWT1tCitDT05GSUdfVVNCX0hBQ0tSRj1tCitDT05GSUdfVVNCX01T STI1MDA9bQorQ09ORklHX01FRElBX1BDSV9TVVBQT1JUPXkKKworIworIyBNZWRpYSBjYXB0dXJl IHN1cHBvcnQKKyMKK0NPTkZJR19WSURFT19TT0xPNlgxMD1tCitDT05GSUdfVklERU9fVFc1ODY0 PW0KK0NPTkZJR19WSURFT19UVzY4PW0KK0NPTkZJR19WSURFT19UVzY4Nlg9bQorIyBDT05GSUdf VklERU9fWk9SQU4gaXMgbm90IHNldAorCisjCisjIE1lZGlhIGNhcHR1cmUvYW5hbG9nIFRWIHN1 cHBvcnQKKyMKK0NPTkZJR19WSURFT19EVDMxNTU9bQorQ09ORklHX1ZJREVPX0lWVFY9bQorQ09O RklHX1ZJREVPX0lWVFZfQUxTQT1tCitDT05GSUdfVklERU9fRkJfSVZUVj1tCisKKyMKKyMgTWVk aWEgY2FwdHVyZS9hbmFsb2cvaHlicmlkIFRWIHN1cHBvcnQKKyMKK0NPTkZJR19WSURFT19CVDg0 OD1tCitDT05GSUdfRFZCX0JUOFhYPW0KK0NPTkZJR19WSURFT19DWDE4PW0KK0NPTkZJR19WSURF T19DWDE4X0FMU0E9bQorQ09ORklHX1ZJREVPX0NYMjM4ODU9bQorQ09ORklHX01FRElBX0FMVEVS QV9DST1tCitDT05GSUdfVklERU9fQ1gyNTgyMT1tCitDT05GSUdfVklERU9fQ1gyNTgyMV9BTFNB PW0KK0NPTkZJR19WSURFT19DWDg4PW0KK0NPTkZJR19WSURFT19DWDg4X0FMU0E9bQorQ09ORklH X1ZJREVPX0NYODhfQkxBQ0tCSVJEPW0KK0NPTkZJR19WSURFT19DWDg4X0RWQj1tCitDT05GSUdf VklERU9fQ1g4OF9FTkFCTEVfVlAzMDU0PXkKK0NPTkZJR19WSURFT19DWDg4X1ZQMzA1ND1tCitD T05GSUdfVklERU9fQ1g4OF9NUEVHPW0KK0NPTkZJR19WSURFT19TQUE3MTM0PW0KK0NPTkZJR19W SURFT19TQUE3MTM0X0FMU0E9bQorQ09ORklHX1ZJREVPX1NBQTcxMzRfUkM9eQorQ09ORklHX1ZJ REVPX1NBQTcxMzRfRFZCPW0KK0NPTkZJR19WSURFT19TQUE3MTM0X0dPNzAwNz1tCitDT05GSUdf VklERU9fU0FBNzE2ND1tCisKKyMKKyMgTWVkaWEgZGlnaXRhbCBUViBQQ0kgQWRhcHRlcnMKKyMK K0NPTkZJR19EVkJfQjJDMl9GTEVYQ09QX1BDST1tCisjIENPTkZJR19EVkJfQjJDMl9GTEVYQ09Q X1BDSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRFZCX0REQlJJREdFPW0KKyMgQ09ORklHX0RW Ql9EREJSSURHRV9NU0lFTkFCTEUgaXMgbm90IHNldAorQ09ORklHX0RWQl9ETTExMDU9bQorQ09O RklHX01BTlRJU19DT1JFPW0KK0NPTkZJR19EVkJfTUFOVElTPW0KK0NPTkZJR19EVkJfSE9QUEVS PW0KK0NPTkZJR19EVkJfTkVUVVBfVU5JRFZCPW0KK0NPTkZJR19EVkJfTkdFTkU9bQorQ09ORklH X0RWQl9QTFVUTzI9bQorQ09ORklHX0RWQl9QVDE9bQorQ09ORklHX0RWQl9QVDM9bQorQ09ORklH X0RWQl9TTUlQQ0lFPW0KK0NPTkZJR19SQURJT19BREFQVEVSUz1tCitDT05GSUdfUkFESU9fTUFY SVJBRElPPW0KK0NPTkZJR19SQURJT19TQUE3NzA2SD1tCitDT05GSUdfUkFESU9fU0hBUks9bQor Q09ORklHX1JBRElPX1NIQVJLMj1tCitDT05GSUdfUkFESU9fU0k0NzEzPW0KK0NPTkZJR19SQURJ T19URUE1NzVYPW0KK0NPTkZJR19SQURJT19URUE1NzY0PW0KK0NPTkZJR19SQURJT19URUY2ODYy PW0KK0NPTkZJR19SQURJT19XTDEyNzM9bQorQ09ORklHX1VTQl9EU0JSPW0KK0NPTkZJR19VU0Jf S0VFTkU9bQorQ09ORklHX1VTQl9NQTkwMT1tCitDT05GSUdfVVNCX01SODAwPW0KK0NPTkZJR19V U0JfUkFSRU1PTk89bQorQ09ORklHX1JBRElPX1NJNDcwWD1tCitDT05GSUdfVVNCX1NJNDcwWD1t CisjIENPTkZJR19JMkNfU0k0NzBYIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU0k0NzEzPW0KK0NP TkZJR19QTEFURk9STV9TSTQ3MTM9bQorQ09ORklHX0kyQ19TSTQ3MTM9bQorQ09ORklHX1JBRElP X1dMMTI4WD1tCitDT05GSUdfTUVESUFfUExBVEZPUk1fRFJJVkVSUz15CitDT05GSUdfVjRMX1BM QVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX1NEUl9QTEFURk9STV9EUklWRVJTPXkKK0NPTkZJR19E VkJfUExBVEZPUk1fRFJJVkVSUz15CitDT05GSUdfVjRMX01FTTJNRU1fRFJJVkVSUz15CitDT05G SUdfVklERU9fTUVNMk1FTV9ERUlOVEVSTEFDRT1tCitDT05GSUdfVklERU9fTVVYPW0KKworIwor IyBBbGxlZ3JvIERWVCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgQW1sb2dpYyBt ZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgQW1waGlvbiBkcml2ZXJzCisjCisKKyMK KyMgQXNwZWVkIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19BU1BFRUQ9 bQorCisjCisjIEF0bWVsIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBDYWRlbmNl IG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19DQURFTkNFX0NTSTJSWD1t CitDT05GSUdfVklERU9fQ0FERU5DRV9DU0kyVFg9bQorCisjCisjIENoaXBzJk1lZGlhIG1lZGlh IHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBJbnRlbCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJz CisjCisKKyMKKyMgTWFydmVsbCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCitDT05GSUdfVklE RU9fQ0FGRV9DQ0lDPW0KKworIworIyBNZWRpYXRlayBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisj CisKKyMKKyMgTlZpZGlhIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBOWFAgbWVk aWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIFF1YWxjb21tIG1lZGlhIHBsYXRmb3JtIGRy aXZlcnMKKyMKKworIworIyBSZW5lc2FzIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIwor IyBSb2NrY2hpcCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgU2Ftc3VuZyBtZWRp YSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgU1RNaWNyb2VsZWN0cm9uaWNzIG1lZGlhIHBs YXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBTdW54aSBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisj CisKKyMKKyMgVGV4YXMgSW5zdHJ1bWVudHMgZHJpdmVycworIworCisjCisjIFZlcmlzaWxpY29u IG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBWSUEgbWVkaWEgcGxhdGZvcm0gZHJp dmVycworIworCisjCisjIFhpbGlueCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCitDT05GSUdf VklERU9fWElMSU5YPW0KK0NPTkZJR19WSURFT19YSUxJTlhfQ1NJMlJYU1M9bQorQ09ORklHX1ZJ REVPX1hJTElOWF9UUEc9bQorQ09ORklHX1ZJREVPX1hJTElOWF9WVEM9bQorCisjCisjIE1NQy9T RElPIERWQiBhZGFwdGVycworIworQ09ORklHX1NNU19TRElPX0RSVj1tCitDT05GSUdfVjRMX1RF U1RfRFJJVkVSUz15CitDT05GSUdfVklERU9fVklNMk09bQorQ09ORklHX1ZJREVPX1ZJQ09ERUM9 bQorQ09ORklHX1ZJREVPX1ZJTUM9bQorQ09ORklHX1ZJREVPX1ZJVklEPW0KK0NPTkZJR19WSURF T19WSVZJRF9DRUM9eQorQ09ORklHX1ZJREVPX1ZJVklEX01BWF9ERVZTPTY0CisjIENPTkZJR19E VkJfVEVTVF9EUklWRVJTIGlzIG5vdCBzZXQKKworIworIyBGaXJlV2lyZSAoSUVFRSAxMzk0KSBB ZGFwdGVycworIworQ09ORklHX0RWQl9GSVJFRFRWPW0KK0NPTkZJR19EVkJfRklSRURUVl9JTlBV VD15CitDT05GSUdfTUVESUFfQ09NTU9OX09QVElPTlM9eQorCisjCisjIGNvbW1vbiBkcml2ZXIg b3B0aW9ucworIworQ09ORklHX0NZUFJFU1NfRklSTVdBUkU9bQorQ09ORklHX1RUUENJX0VFUFJP TT1tCitDT05GSUdfVklERU9fQ1gyMzQxWD1tCitDT05GSUdfVklERU9fVFZFRVBST009bQorQ09O RklHX0RWQl9CMkMyX0ZMRVhDT1A9bQorQ09ORklHX1NNU19TSUFOT19NRFRWPW0KK0NPTkZJR19T TVNfU0lBTk9fUkM9eQorIyBDT05GSUdfU01TX1NJQU5PX0RFQlVHRlMgaXMgbm90IHNldAorQ09O RklHX1ZJREVPX1Y0TDJfVFBHPW0KK0NPTkZJR19WSURFT0JVRjJfQ09SRT1tCitDT05GSUdfVklE RU9CVUYyX1Y0TDI9bQorQ09ORklHX1ZJREVPQlVGMl9NRU1PUFM9bQorQ09ORklHX1ZJREVPQlVG Ml9ETUFfQ09OVElHPW0KK0NPTkZJR19WSURFT0JVRjJfVk1BTExPQz1tCitDT05GSUdfVklERU9C VUYyX0RNQV9TRz1tCitDT05GSUdfVklERU9CVUYyX0RWQj1tCisjIGVuZCBvZiBNZWRpYSBkcml2 ZXJzCisKKyMKKyMgTWVkaWEgYW5jaWxsYXJ5IGRyaXZlcnMKKyMKK0NPTkZJR19NRURJQV9BVFRB Q0g9eQorCisjCisjIElSIEkyQyBkcml2ZXIgYXV0by1zZWxlY3RlZCBieSAnQXV0b3NlbGVjdCBh bmNpbGxhcnkgZHJpdmVycycKKyMKK0NPTkZJR19WSURFT19JUl9JMkM9bQorCisjCisjIENhbWVy YSBzZW5zb3IgZGV2aWNlcworIworQ09ORklHX1ZJREVPX0FQVElOQV9QTEw9bQorQ09ORklHX1ZJ REVPX0NDU19QTEw9bQorQ09ORklHX1ZJREVPX0FSMDUyMT1tCitDT05GSUdfVklERU9fSEk1NTY9 bQorQ09ORklHX1ZJREVPX0hJODQ2PW0KK0NPTkZJR19WSURFT19ISTg0Nz1tCitDT05GSUdfVklE RU9fSU1YMjA4PW0KK0NPTkZJR19WSURFT19JTVgyMTQ9bQorQ09ORklHX1ZJREVPX0lNWDIxOT1t CitDT05GSUdfVklERU9fSU1YMjU4PW0KK0NPTkZJR19WSURFT19JTVgyNzQ9bQorQ09ORklHX1ZJ REVPX0lNWDI5MD1tCitDT05GSUdfVklERU9fSU1YMzE5PW0KK0NPTkZJR19WSURFT19JTVgzMzQ9 bQorQ09ORklHX1ZJREVPX0lNWDMzNT1tCitDT05GSUdfVklERU9fSU1YMzU1PW0KK0NPTkZJR19W SURFT19JTVg0MTI9bQorQ09ORklHX1ZJREVPX01BWDkyNzFfTElCPW0KK0NPTkZJR19WSURFT19N VDlNMDAxPW0KK0NPTkZJR19WSURFT19NVDlNMDMyPW0KK0NPTkZJR19WSURFT19NVDlNMTExPW0K K0NPTkZJR19WSURFT19NVDlQMDMxPW0KK0NPTkZJR19WSURFT19NVDlUMDAxPW0KK0NPTkZJR19W SURFT19NVDlUMTEyPW0KK0NPTkZJR19WSURFT19NVDlWMDExPW0KK0NPTkZJR19WSURFT19NVDlW MDMyPW0KK0NPTkZJR19WSURFT19NVDlWMTExPW0KK0NPTkZJR19WSURFT19OT09OMDEwUEMzMD1t CitDT05GSUdfVklERU9fT0cwMUExQj1tCitDT05GSUdfVklERU9fT1YwMkExMD1tCitDT05GSUdf VklERU9fT1YwOEQxMD1tCitDT05GSUdfVklERU9fT1YxMzg1OD1tCitDT05GSUdfVklERU9fT1Yx M0IxMD1tCitDT05GSUdfVklERU9fT1YyNjQwPW0KK0NPTkZJR19WSURFT19PVjI2NTk9bQorQ09O RklHX1ZJREVPX09WMjY4MD1tCitDT05GSUdfVklERU9fT1YyNjg1PW0KK0NPTkZJR19WSURFT19P VjU2NDA9bQorQ09ORklHX1ZJREVPX09WNTY0NT1tCitDT05GSUdfVklERU9fT1Y1NjQ3PW0KK0NP TkZJR19WSURFT19PVjU2NDg9bQorQ09ORklHX1ZJREVPX09WNTY3MD1tCitDT05GSUdfVklERU9f T1Y1Njc1PW0KK0NPTkZJR19WSURFT19PVjU2OTM9bQorQ09ORklHX1ZJREVPX09WNTY5NT1tCitD T05GSUdfVklERU9fT1Y2NjUwPW0KK0NPTkZJR19WSURFT19PVjcyNTE9bQorQ09ORklHX1ZJREVP X09WNzY0MD1tCitDT05GSUdfVklERU9fT1Y3NjcwPW0KK0NPTkZJR19WSURFT19PVjc3Mlg9bQor Q09ORklHX1ZJREVPX09WNzc0MD1tCitDT05GSUdfVklERU9fT1Y4ODU2PW0KK0NPTkZJR19WSURF T19PVjg4NjU9bQorQ09ORklHX1ZJREVPX09WOTI4Mj1tCitDT05GSUdfVklERU9fT1Y5NjQwPW0K K0NPTkZJR19WSURFT19PVjk2NTA9bQorQ09ORklHX1ZJREVPX1JEQUNNMjA9bQorQ09ORklHX1ZJ REVPX1JEQUNNMjE9bQorQ09ORklHX1ZJREVPX1JKNTROMT1tCitDT05GSUdfVklERU9fUzVDNzNN Mz1tCitDT05GSUdfVklERU9fUzVLNEVDR1g9bQorQ09ORklHX1ZJREVPX1M1SzVCQUY9bQorQ09O RklHX1ZJREVPX1M1SzZBMz1tCitDT05GSUdfVklERU9fUzVLNkFBPW0KK0NPTkZJR19WSURFT19T UjAzMFBDMzA9bQorQ09ORklHX1ZJREVPX1ZTNjYyND1tCitDT05GSUdfVklERU9fQ0NTPW0KK0NP TkZJR19WSURFT19FVDhFSzg9bQorQ09ORklHX1ZJREVPX001TU9MUz1tCisjIGVuZCBvZiBDYW1l cmEgc2Vuc29yIGRldmljZXMKKworIworIyBMZW5zIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19B RDU4MjA9bQorQ09ORklHX1ZJREVPX0FLNzM3NT1tCitDT05GSUdfVklERU9fRFc5NzE0PW0KK0NP TkZJR19WSURFT19EVzk3Njg9bQorQ09ORklHX1ZJREVPX0RXOTgwN19WQ009bQorIyBlbmQgb2Yg TGVucyBkcml2ZXJzCisKKyMKKyMgRmxhc2ggZGV2aWNlcworIworQ09ORklHX1ZJREVPX0FEUDE2 NTM9bQorQ09ORklHX1ZJREVPX0xNMzU2MD1tCitDT05GSUdfVklERU9fTE0zNjQ2PW0KKyMgZW5k IG9mIEZsYXNoIGRldmljZXMKKworIworIyBBdWRpbyBkZWNvZGVycywgcHJvY2Vzc29ycyBhbmQg bWl4ZXJzCisjCitDT05GSUdfVklERU9fQ1MzMzA4PW0KK0NPTkZJR19WSURFT19DUzUzNDU9bQor Q09ORklHX1ZJREVPX0NTNTNMMzJBPW0KK0NPTkZJR19WSURFT19NU1AzNDAwPW0KK0NPTkZJR19W SURFT19TT05ZX0JURl9NUFg9bQorQ09ORklHX1ZJREVPX1REQTE5OTdYPW0KK0NPTkZJR19WSURF T19UREE3NDMyPW0KK0NPTkZJR19WSURFT19UREE5ODQwPW0KK0NPTkZJR19WSURFT19URUE2NDE1 Qz1tCitDT05GSUdfVklERU9fVEVBNjQyMD1tCitDT05GSUdfVklERU9fVExWMzIwQUlDMjNCPW0K K0NPTkZJR19WSURFT19UVkFVRElPPW0KK0NPTkZJR19WSURFT19VREExMzQyPW0KK0NPTkZJR19W SURFT19WUDI3U01QWD1tCitDT05GSUdfVklERU9fV004NzM5PW0KK0NPTkZJR19WSURFT19XTTg3 NzU9bQorIyBlbmQgb2YgQXVkaW8gZGVjb2RlcnMsIHByb2Nlc3NvcnMgYW5kIG1peGVycworCisj CisjIFJEUyBkZWNvZGVycworIworQ09ORklHX1ZJREVPX1NBQTY1ODg9bQorIyBlbmQgb2YgUkRT IGRlY29kZXJzCisKKyMKKyMgVmlkZW8gZGVjb2RlcnMKKyMKK0NPTkZJR19WSURFT19BRFY3MTgw PW0KK0NPTkZJR19WSURFT19BRFY3MTgzPW0KK0NPTkZJR19WSURFT19BRFY3NDhYPW0KK0NPTkZJ R19WSURFT19BRFY3NjA0PW0KK0NPTkZJR19WSURFT19BRFY3NjA0X0NFQz15CitDT05GSUdfVklE RU9fQURWNzg0Mj1tCitDT05GSUdfVklERU9fQURWNzg0Ml9DRUM9eQorQ09ORklHX1ZJREVPX0JU ODE5PW0KK0NPTkZJR19WSURFT19CVDg1Nj1tCitDT05GSUdfVklERU9fQlQ4NjY9bQorQ09ORklH X1ZJREVPX0lTTDc5OThYPW0KK0NPTkZJR19WSURFT19LUzAxMjc9bQorQ09ORklHX1ZJREVPX01B WDkyODY9bQorQ09ORklHX1ZJREVPX01MODZWNzY2Nz1tCitDT05GSUdfVklERU9fU0FBNzExMD1t CitDT05GSUdfVklERU9fU0FBNzExWD1tCitDT05GSUdfVklERU9fVEMzNTg3NDM9bQorQ09ORklH X1ZJREVPX1RDMzU4NzQzX0NFQz15CitDT05GSUdfVklERU9fVFZQNTE0WD1tCitDT05GSUdfVklE RU9fVFZQNTE1MD1tCitDT05GSUdfVklERU9fVFZQNzAwMj1tCitDT05GSUdfVklERU9fVFcyODA0 PW0KK0NPTkZJR19WSURFT19UVzk5MDM9bQorQ09ORklHX1ZJREVPX1RXOTkwNj1tCitDT05GSUdf VklERU9fVFc5OTEwPW0KK0NPTkZJR19WSURFT19WUFgzMjIwPW0KKworIworIyBWaWRlbyBhbmQg YXVkaW8gZGVjb2RlcnMKKyMKK0NPTkZJR19WSURFT19TQUE3MTdYPW0KK0NPTkZJR19WSURFT19D WDI1ODQwPW0KKyMgZW5kIG9mIFZpZGVvIGRlY29kZXJzCisKKyMKKyMgVmlkZW8gZW5jb2RlcnMK KyMKK0NPTkZJR19WSURFT19BRDkzODlCPW0KK0NPTkZJR19WSURFT19BRFY3MTcwPW0KK0NPTkZJ R19WSURFT19BRFY3MTc1PW0KK0NPTkZJR19WSURFT19BRFY3MzQzPW0KK0NPTkZJR19WSURFT19B RFY3MzkzPW0KK0NPTkZJR19WSURFT19BSzg4MVg9bQorQ09ORklHX1ZJREVPX1NBQTcxMjc9bQor Q09ORklHX1ZJREVPX1NBQTcxODU9bQorQ09ORklHX1ZJREVPX1RIUzgyMDA9bQorIyBlbmQgb2Yg VmlkZW8gZW5jb2RlcnMKKworIworIyBWaWRlbyBpbXByb3ZlbWVudCBjaGlwcworIworQ09ORklH X1ZJREVPX1VQRDY0MDMxQT1tCitDT05GSUdfVklERU9fVVBENjQwODM9bQorIyBlbmQgb2YgVmlk ZW8gaW1wcm92ZW1lbnQgY2hpcHMKKworIworIyBBdWRpby9WaWRlbyBjb21wcmVzc2lvbiBjaGlw cworIworQ09ORklHX1ZJREVPX1NBQTY3NTJIUz1tCisjIGVuZCBvZiBBdWRpby9WaWRlbyBjb21w cmVzc2lvbiBjaGlwcworCisjCisjIFNEUiB0dW5lciBjaGlwcworIworQ09ORklHX1NEUl9NQVgy MTc1PW0KKyMgZW5kIG9mIFNEUiB0dW5lciBjaGlwcworCisjCisjIE1pc2NlbGxhbmVvdXMgaGVs cGVyIGNoaXBzCisjCitDT05GSUdfVklERU9fSTJDPW0KK0NPTkZJR19WSURFT19NNTI3OTA9bQor Q09ORklHX1ZJREVPX1NUX01JUElEMDI9bQorQ09ORklHX1ZJREVPX1RIUzczMDM9bQorIyBlbmQg b2YgTWlzY2VsbGFuZW91cyBoZWxwZXIgY2hpcHMKKworIworIyBNZWRpYSBTUEkgQWRhcHRlcnMK KyMKK0NPTkZJR19DWEQyODgwX1NQSV9EUlY9bQorQ09ORklHX1ZJREVPX0dTMTY2Mj1tCisjIGVu ZCBvZiBNZWRpYSBTUEkgQWRhcHRlcnMKKworQ09ORklHX01FRElBX1RVTkVSPW0KKworIworIyBD dXN0b21pemUgVFYgdHVuZXJzCisjCitDT05GSUdfTUVESUFfVFVORVJfRTQwMDA9bQorQ09ORklH X01FRElBX1RVTkVSX0ZDMDAxMT1tCitDT05GSUdfTUVESUFfVFVORVJfRkMwMDEyPW0KK0NPTkZJ R19NRURJQV9UVU5FUl9GQzAwMTM9bQorQ09ORklHX01FRElBX1RVTkVSX0ZDMjU4MD1tCitDT05G SUdfTUVESUFfVFVORVJfSVQ5MTNYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NODhSUzYwMDBUPW0K K0NPTkZJR19NRURJQV9UVU5FUl9NQVgyMTY1PW0KK0NPTkZJR19NRURJQV9UVU5FUl9NQzQ0Uzgw Mz1tCitDT05GSUdfTUVESUFfVFVORVJfTVNJMDAxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NVDIw NjA9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjA2Mz1tCitDT05GSUdfTUVESUFfVFVORVJfTVQy MFhYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NVDIxMzE9bQorQ09ORklHX01FRElBX1RVTkVSX01U MjI2Nj1tCitDT05GSUdfTUVESUFfVFVORVJfTVhMMzAxUkY9bQorQ09ORklHX01FRElBX1RVTkVS X01YTDUwMDVTPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NWEw1MDA3VD1tCitDT05GSUdfTUVESUFf VFVORVJfUU0xRDFCMDAwND1tCitDT05GSUdfTUVESUFfVFVORVJfUU0xRDFDMDA0Mj1tCitDT05G SUdfTUVESUFfVFVORVJfUVQxMDEwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9SODIwVD1tCitDT05G SUdfTUVESUFfVFVORVJfU0kyMTU3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9bQorQ09O RklHX01FRElBX1RVTkVSX1REQTE4MjEyPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREExODIxOD1t CitDT05GSUdfTUVESUFfVFVORVJfVERBMTgyNTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTE4 MjcxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE4MjdYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9U REE4MjkwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3PW0KK0NPTkZJR19NRURJQV9UVU5F Ul9URUE1NzYxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9URUE1NzY3PW0KK0NPTkZJR19NRURJQV9U VU5FUl9UVUE5MDAxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9bQorQ09ORklHX01FRElB X1RVTkVSX1hDNDAwMD1tCitDT05GSUdfTUVESUFfVFVORVJfWEM1MDAwPW0KKyMgZW5kIG9mIEN1 c3RvbWl6ZSBUViB0dW5lcnMKKworIworIyBDdXN0b21pc2UgRFZCIEZyb250ZW5kcworIworCisj CisjIE11bHRpc3RhbmRhcmQgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX004 OERTMzEwMz1tCitDT05GSUdfRFZCX01YTDVYWD1tCitDT05GSUdfRFZCX1NUQjA4OTk9bQorQ09O RklHX0RWQl9TVEI2MTAwPW0KK0NPTkZJR19EVkJfU1RWMDkweD1tCitDT05GSUdfRFZCX1NUVjA5 MTA9bQorQ09ORklHX0RWQl9TVFY2MTEweD1tCitDT05GSUdfRFZCX1NUVjYxMTE9bQorCisjCisj IE11bHRpc3RhbmRhcmQgKGNhYmxlICsgdGVycmVzdHJpYWwpIGZyb250ZW5kcworIworQ09ORklH X0RWQl9EUlhLPW0KK0NPTkZJR19EVkJfTU44ODQ3Mj1tCitDT05GSUdfRFZCX01OODg0NzM9bQor Q09ORklHX0RWQl9TSTIxNjU9bQorQ09ORklHX0RWQl9UREExODI3MUMyREQ9bQorCisjCisjIERW Qi1TIChzYXRlbGxpdGUpIGZyb250ZW5kcworIworQ09ORklHX0RWQl9DWDI0MTEwPW0KK0NPTkZJ R19EVkJfQ1gyNDExNj1tCitDT05GSUdfRFZCX0NYMjQxMTc9bQorQ09ORklHX0RWQl9DWDI0MTIw PW0KK0NPTkZJR19EVkJfQ1gyNDEyMz1tCitDT05GSUdfRFZCX0RTMzAwMD1tCitDT05GSUdfRFZC X01CODZBMTY9bQorQ09ORklHX0RWQl9NVDMxMj1tCitDT05GSUdfRFZCX1M1SDE0MjA9bQorQ09O RklHX0RWQl9TSTIxWFg9bQorQ09ORklHX0RWQl9TVEI2MDAwPW0KK0NPTkZJR19EVkJfU1RWMDI4 OD1tCitDT05GSUdfRFZCX1NUVjAyOTk9bQorQ09ORklHX0RWQl9TVFYwOTAwPW0KK0NPTkZJR19E VkJfU1RWNjExMD1tCitDT05GSUdfRFZCX1REQTEwMDcxPW0KK0NPTkZJR19EVkJfVERBMTAwODY9 bQorQ09ORklHX0RWQl9UREE4MDgzPW0KK0NPTkZJR19EVkJfVERBODI2MT1tCitDT05GSUdfRFZC X1REQTgyNlg9bQorQ09ORklHX0RWQl9UUzIwMjA9bQorQ09ORklHX0RWQl9UVUE2MTAwPW0KK0NP TkZJR19EVkJfVFVORVJfQ1gyNDExMz1tCitDT05GSUdfRFZCX1RVTkVSX0lURDEwMDA9bQorQ09O RklHX0RWQl9WRVMxWDkzPW0KK0NPTkZJR19EVkJfWkwxMDAzNj1tCitDT05GSUdfRFZCX1pMMTAw Mzk9bQorCisjCisjIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisjCitDT05GSUdfRFZC X0FGOTAxMz1tCitDT05GSUdfRFZCX0FTMTAyX0ZFPW0KK0NPTkZJR19EVkJfQ1gyMjcwMD1tCitD T05GSUdfRFZCX0NYMjI3MDI9bQorQ09ORklHX0RWQl9DWEQyODIwUj1tCitDT05GSUdfRFZCX0NY RDI4NDFFUj1tCitDT05GSUdfRFZCX0RJQjMwMDBNQj1tCitDT05GSUdfRFZCX0RJQjMwMDBNQz1t CitDT05GSUdfRFZCX0RJQjcwMDBNPW0KK0NPTkZJR19EVkJfRElCNzAwMFA9bQorQ09ORklHX0RW Ql9ESUI5MDAwPW0KK0NPTkZJR19EVkJfRFJYRD1tCitDT05GSUdfRFZCX0VDMTAwPW0KK0NPTkZJ R19EVkJfR1A4UFNLX0ZFPW0KK0NPTkZJR19EVkJfTDY0NzgxPW0KK0NPTkZJR19EVkJfTVQzNTI9 bQorQ09ORklHX0RWQl9OWFQ2MDAwPW0KK0NPTkZJR19EVkJfUlRMMjgzMD1tCitDT05GSUdfRFZC X1JUTDI4MzI9bQorQ09ORklHX0RWQl9SVEwyODMyX1NEUj1tCitDT05GSUdfRFZCX1M1SDE0MzI9 bQorQ09ORklHX0RWQl9TSTIxNjg9bQorQ09ORklHX0RWQl9TUDg4N1g9bQorQ09ORklHX0RWQl9T VFYwMzY3PW0KK0NPTkZJR19EVkJfVERBMTAwNDg9bQorQ09ORklHX0RWQl9UREExMDA0WD1tCitD T05GSUdfRFZCX1pEMTMwMV9ERU1PRD1tCitDT05GSUdfRFZCX1pMMTAzNTM9bQorQ09ORklHX0RW Ql9DWEQyODgwPW0KKworIworIyBEVkItQyAoY2FibGUpIGZyb250ZW5kcworIworQ09ORklHX0RW Ql9TVFYwMjk3PW0KK0NPTkZJR19EVkJfVERBMTAwMjE9bQorQ09ORklHX0RWQl9UREExMDAyMz1t CitDT05GSUdfRFZCX1ZFUzE4MjA9bQorCisjCisjIEFUU0MgKE5vcnRoIEFtZXJpY2FuL0tvcmVh biBUZXJyZXN0cmlhbC9DYWJsZSBEVFYpIGZyb250ZW5kcworIworQ09ORklHX0RWQl9BVTg1MjI9 bQorQ09ORklHX0RWQl9BVTg1MjJfRFRWPW0KK0NPTkZJR19EVkJfQVU4NTIyX1Y0TD1tCitDT05G SUdfRFZCX0JDTTM1MTA9bQorQ09ORklHX0RWQl9MRzIxNjA9bQorQ09ORklHX0RWQl9MR0RUMzMw NT1tCitDT05GSUdfRFZCX0xHRFQzMzA2QT1tCitDT05GSUdfRFZCX0xHRFQzMzBYPW0KK0NPTkZJ R19EVkJfTVhMNjkyPW0KK0NPTkZJR19EVkJfTlhUMjAwWD1tCitDT05GSUdfRFZCX09SNTExMzI9 bQorQ09ORklHX0RWQl9PUjUxMjExPW0KK0NPTkZJR19EVkJfUzVIMTQwOT1tCitDT05GSUdfRFZC X1M1SDE0MTE9bQorCisjCisjIElTREItVCAodGVycmVzdHJpYWwpIGZyb250ZW5kcworIworQ09O RklHX0RWQl9ESUI4MDAwPW0KK0NPTkZJR19EVkJfTUI4NkEyMFM9bQorQ09ORklHX0RWQl9TOTIx PW0KKworIworIyBJU0RCLVMgKHNhdGVsbGl0ZSkgJiBJU0RCLVQgKHRlcnJlc3RyaWFsKSBmcm9u dGVuZHMKKyMKK0NPTkZJR19EVkJfTU44ODQ0M1g9bQorQ09ORklHX0RWQl9UQzkwNTIyPW0KKwor IworIyBEaWdpdGFsIHRlcnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAorIworQ09ORklHX0RWQl9Q TEw9bQorQ09ORklHX0RWQl9UVU5FUl9ESUIwMDcwPW0KK0NPTkZJR19EVkJfVFVORVJfRElCMDA5 MD1tCisKKyMKKyMgU0VDIGNvbnRyb2wgZGV2aWNlcyBmb3IgRFZCLVMKKyMKK0NPTkZJR19EVkJf QTgyOTM9bQorQ09ORklHX0RWQl9BRjkwMzM9bQorQ09ORklHX0RWQl9BU0NPVDJFPW0KK0NPTkZJ R19EVkJfQVRCTTg4MzA9bQorQ09ORklHX0RWQl9IRUxFTkU9bQorQ09ORklHX0RWQl9IT1JVUzNB PW0KK0NPTkZJR19EVkJfSVNMNjQwNT1tCitDT05GSUdfRFZCX0lTTDY0MjE9bQorQ09ORklHX0RW Ql9JU0w2NDIzPW0KK0NPTkZJR19EVkJfSVgyNTA1Vj1tCitDT05GSUdfRFZCX0xHUzhHTDU9bQor Q09ORklHX0RWQl9MR1M4R1hYPW0KK0NPTkZJR19EVkJfTE5CSDI1PW0KK0NPTkZJR19EVkJfTE5C SDI5PW0KK0NPTkZJR19EVkJfTE5CUDIxPW0KK0NPTkZJR19EVkJfTE5CUDIyPW0KK0NPTkZJR19E VkJfTTg4UlMyMDAwPW0KK0NPTkZJR19EVkJfVERBNjY1eD1tCitDT05GSUdfRFZCX0RSWDM5WFlK PW0KKworIworIyBDb21tb24gSW50ZXJmYWNlIChFTjUwMjIxKSBjb250cm9sbGVyIGRyaXZlcnMK KyMKK0NPTkZJR19EVkJfQ1hEMjA5OT1tCitDT05GSUdfRFZCX1NQMj1tCisjIGVuZCBvZiBDdXN0 b21pc2UgRFZCIEZyb250ZW5kcworCisjCisjIFRvb2xzIHRvIGRldmVsb3AgbmV3IGZyb250ZW5k cworIworQ09ORklHX0RWQl9EVU1NWV9GRT1tCisjIGVuZCBvZiBNZWRpYSBhbmNpbGxhcnkgZHJp dmVycworCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKK0NPTkZJR19BUEVSVFVSRV9IRUxQRVJT PXkKK0NPTkZJR19EUk09bQorQ09ORklHX0RSTV9NSVBJX0RCST1tCitDT05GSUdfRFJNX01JUElf RFNJPXkKK0NPTkZJR19EUk1fVVNFX0RZTkFNSUNfREVCVUc9eQorQ09ORklHX0RSTV9LTVNfSEVM UEVSPW0KKyMgQ09ORklHX0RSTV9ERUJVR19EUF9NU1RfVE9QT0xPR1lfUkVGUyBpcyBub3Qgc2V0 CisjIENPTkZJR19EUk1fREVCVUdfTU9ERVNFVF9MT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1f RkJERVZfRU1VTEFUSU9OPXkKK0NPTkZJR19EUk1fRkJERVZfT1ZFUkFMTE9DPTEwMAorIyBDT05G SUdfRFJNX0ZCREVWX0xFQUtfUEhZU19TTUVNIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fTE9BRF9F RElEX0ZJUk1XQVJFPXkKK0NPTkZJR19EUk1fRFBfQVVYX0JVUz1tCitDT05GSUdfRFJNX0RJU1BM QVlfSEVMUEVSPW0KK0NPTkZJR19EUk1fRElTUExBWV9EUF9IRUxQRVI9eQorQ09ORklHX0RSTV9E SVNQTEFZX0hEQ1BfSEVMUEVSPXkKK0NPTkZJR19EUk1fRElTUExBWV9IRE1JX0hFTFBFUj15CitD T05GSUdfRFJNX0RQX0FVWF9DSEFSREVWPXkKK0NPTkZJR19EUk1fRFBfQ0VDPXkKK0NPTkZJR19E Uk1fVFRNPW0KK0NPTkZJR19EUk1fQlVERFk9bQorQ09ORklHX0RSTV9WUkFNX0hFTFBFUj1tCitD T05GSUdfRFJNX1RUTV9IRUxQRVI9bQorQ09ORklHX0RSTV9HRU1fRE1BX0hFTFBFUj1tCitDT05G SUdfRFJNX0dFTV9TSE1FTV9IRUxQRVI9bQorQ09ORklHX0RSTV9TQ0hFRD1tCisKKyMKKyMgSTJD IGVuY29kZXIgb3IgaGVscGVyIGNoaXBzCisjCitDT05GSUdfRFJNX0kyQ19DSDcwMDY9bQorQ09O RklHX0RSTV9JMkNfU0lMMTY0PW0KK0NPTkZJR19EUk1fSTJDX05YUF9UREE5OThYPW0KK0NPTkZJ R19EUk1fSTJDX05YUF9UREE5OTUwPW0KKyMgZW5kIG9mIEkyQyBlbmNvZGVyIG9yIGhlbHBlciBj aGlwcworCisjCisjIEFSTSBkZXZpY2VzCisjCitDT05GSUdfRFJNX0tPTUVEQT1tCisjIGVuZCBv ZiBBUk0gZGV2aWNlcworCitDT05GSUdfRFJNX1JBREVPTj1tCitDT05GSUdfRFJNX1JBREVPTl9V U0VSUFRSPXkKK0NPTkZJR19EUk1fQU1ER1BVPW0KK0NPTkZJR19EUk1fQU1ER1BVX1NJPXkKK0NP TkZJR19EUk1fQU1ER1BVX0NJSz15CitDT05GSUdfRFJNX0FNREdQVV9VU0VSUFRSPXkKKworIwor IyBBQ1AgKEF1ZGlvIENvUHJvY2Vzc29yKSBDb25maWd1cmF0aW9uCisjCitDT05GSUdfRFJNX0FN RF9BQ1A9eQorIyBlbmQgb2YgQUNQIChBdWRpbyBDb1Byb2Nlc3NvcikgQ29uZmlndXJhdGlvbgor CisjCisjIERpc3BsYXkgRW5naW5lIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19EUk1fQU1EX0RD PXkKKyMgQ09ORklHX0RSTV9BTURfRENfSERDUCBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0FNRF9E Q19TST15CisjIENPTkZJR19ERUJVR19LRVJORUxfREMgaXMgbm90IHNldAorIyBlbmQgb2YgRGlz cGxheSBFbmdpbmUgQ29uZmlndXJhdGlvbgorCitDT05GSUdfRFJNX05PVVZFQVU9bQorIyBDT05G SUdfTk9VVkVBVV9MRUdBQ1lfQ1RYX1NVUFBPUlQgaXMgbm90IHNldAorQ09ORklHX05PVVZFQVVf REVCVUc9NQorQ09ORklHX05PVVZFQVVfREVCVUdfREVGQVVMVD0zCisjIENPTkZJR19OT1VWRUFV X0RFQlVHX01NVSBpcyBub3Qgc2V0CisjIENPTkZJR19OT1VWRUFVX0RFQlVHX1BVU0ggaXMgbm90 IHNldAorQ09ORklHX0RSTV9OT1VWRUFVX0JBQ0tMSUdIVD15CisjIENPTkZJR19EUk1fVkdFTSBp cyBub3Qgc2V0CitDT05GSUdfRFJNX1ZLTVM9bQorQ09ORklHX0RSTV9VREw9bQorQ09ORklHX0RS TV9BU1Q9bQorQ09ORklHX0RSTV9NR0FHMjAwPW0KK0NPTkZJR19EUk1fUkNBUl9EV19IRE1JPW0K KyMgQ09ORklHX0RSTV9SQ0FSX1VTRV9MVkRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9SQ0FS X1VTRV9NSVBJX0RTSSBpcyBub3Qgc2V0CitDT05GSUdfRFJNX1FYTD1tCitDT05GSUdfRFJNX1ZJ UlRJT19HUFU9bQorQ09ORklHX0RSTV9QQU5FTD15CisKKyMKKyMgRGlzcGxheSBQYW5lbHMKKyMK K0NPTkZJR19EUk1fUEFORUxfQUJUX1kwMzBYWDA2N0E9bQorQ09ORklHX0RSTV9QQU5FTF9BUk1f VkVSU0FUSUxFPW0KK0NPTkZJR19EUk1fUEFORUxfQVNVU19aMDBUX1RNNVA1X05UMzU1OTY9bQor Q09ORklHX0RSTV9QQU5FTF9CT0VfQkYwNjBZOE1fQUowPW0KK0NPTkZJR19EUk1fUEFORUxfQk9F X0hJTUFYODI3OUQ9bQorQ09ORklHX0RSTV9QQU5FTF9CT0VfVFYxMDFXVU1fTkw2PW0KK0NPTkZJ R19EUk1fUEFORUxfRFNJX0NNPW0KK0NPTkZJR19EUk1fUEFORUxfTFZEUz1tCitDT05GSUdfRFJN X1BBTkVMX1NJTVBMRT1tCitDT05GSUdfRFJNX1BBTkVMX0VEUD1tCitDT05GSUdfRFJNX1BBTkVM X0VCQkdfRlQ4NzE5PW0KK0NPTkZJR19EUk1fUEFORUxfRUxJREFfS0QzNVQxMzM9bQorQ09ORklH X0RSTV9QQU5FTF9GRUlYSU5fSzEwMV9JTTJCQTAyPW0KK0NPTkZJR19EUk1fUEFORUxfRkVJWUFO R19GWTA3MDI0REkyNkEzMEQ9bQorQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUw5MzIyPW0KK0NP TkZJR19EUk1fUEFORUxfSUxJVEVLX0lMSTkzNDE9bQorQ09ORklHX0RSTV9QQU5FTF9JTElURUtf SUxJOTg4MUM9bQorQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX0VKMDMwTkE9bQorQ09ORklHX0RS TV9QQU5FTF9JTk5PTFVYX1AwNzlaQ0E9bQorQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1 MDAwPW0KK0NPTkZJR19EUk1fUEFORUxfSkRJX1I2MzQ1Mj1tCitDT05GSUdfRFJNX1BBTkVMX0tI QURBU19UUzA1MD1tCitDT05GSUdfRFJNX1BBTkVMX0tJTkdESVNQTEFZX0tEMDk3RDA0PW0KK0NP TkZJR19EUk1fUEFORUxfTEVBRFRFS19MVEswNTBIMzE0Nlc9bQorQ09ORklHX0RSTV9QQU5FTF9M RUFEVEVLX0xUSzUwMEhEMTgyOT1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfTEQ5MDQwPW0K K0NPTkZJR19EUk1fUEFORUxfTEdfTEIwMzVRMDI9bQorQ09ORklHX0RSTV9QQU5FTF9MR19MRzQ1 NzM9bQorQ09ORklHX0RSTV9QQU5FTF9ORUNfTkw4MDQ4SEwxMT1tCitDT05GSUdfRFJNX1BBTkVM X05FV1ZJU0lPTl9OVjMwNTJDPW0KK0NPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM1NTEwPW0K K0NPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM1NTYwPW0KK0NPTkZJR19EUk1fUEFORUxfTk9W QVRFS19OVDM1OTUwPW0KK0NPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM2NjcyQT1tCitDT05G SUdfRFJNX1BBTkVMX05PVkFURUtfTlQzOTAxNj1tCitDT05GSUdfRFJNX1BBTkVMX01BTlRJWF9N TEFGMDU3V0U1MT1tCitDT05GSUdfRFJNX1BBTkVMX09MSU1FWF9MQ0RfT0xJTlVYSU5PPW0KK0NP TkZJR19EUk1fUEFORUxfT1JJU0VURUNIX09UTTgwMDlBPW0KK0NPTkZJR19EUk1fUEFORUxfT1NE X09TRDEwMVQyNTg3XzUzVFM9bQorQ09ORklHX0RSTV9QQU5FTF9QQU5BU09OSUNfVlZYMTBGMDM0 TjAwPW0KK0NPTkZJR19EUk1fUEFORUxfUkFTUEJFUlJZUElfVE9VQ0hTQ1JFRU49bQorQ09ORklH X0RSTV9QQU5FTF9SQVlESVVNX1JNNjcxOTE9bQorQ09ORklHX0RSTV9QQU5FTF9SQVlESVVNX1JN NjgyMDA9bQorQ09ORklHX0RSTV9QQU5FTF9ST05CT19SQjA3MEQzMD1tCitDT05GSUdfRFJNX1BB TkVMX1NBTVNVTkdfQVROQTMzWEMyMD1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfREI3NDMw PW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkQxNkQwPW0KK0NPTkZJR19EUk1fUEFORUxf U0FNU1VOR19TNkQyN0ExPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkUzSEEyPW0KK0NP TkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU2M0owWDAzPW0KK0NPTkZJR19EUk1fUEFORUxfU0FN U1VOR19TNkU2M00wPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU2M00wX1NQST1tCitD T05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFNjNNMF9EU0k9bQorQ09ORklHX0RSTV9QQU5FTF9T QU1TVU5HX1M2RTg4QTBfQU1TNDUyRUYwMT1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZF OEFBMD1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfU09GRUYwMD1tCitDT05GSUdfRFJNX1BB TkVMX1NFSUtPXzQzV1ZGMUc9bQorQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUTEwMVIxU1gwMT1t CitDT05GSUdfRFJNX1BBTkVMX1NIQVJQX0xTMDM3VjdEVzAxPW0KK0NPTkZJR19EUk1fUEFORUxf U0hBUlBfTFMwNDNUMUxFMDE9bQorQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUzA2MFQxU1gwMT1t CitDT05GSUdfRFJNX1BBTkVMX1NJVFJPTklYX1NUNzcwMT1tCitDT05GSUdfRFJNX1BBTkVMX1NJ VFJPTklYX1NUNzcwMz1tCitDT05GSUdfRFJNX1BBTkVMX1NJVFJPTklYX1NUNzc4OVY9bQorQ09O RklHX0RSTV9QQU5FTF9TT05ZX0FDWDU2NUFLTT1tCitDT05GSUdfRFJNX1BBTkVMX1NPTllfVFVM SVBfVFJVTFlfTlQzNTUyMT1tCitDT05GSUdfRFJNX1BBTkVMX1RET19UTDA3MFdTSDMwPW0KK0NP TkZJR19EUk1fUEFORUxfVFBPX1REMDI4VFRFQzE9bQorQ09ORklHX0RSTV9QQU5FTF9UUE9fVEQw NDNNVEVBMT1tCitDT05GSUdfRFJNX1BBTkVMX1RQT19UUEcxMTA9bQorQ09ORklHX0RSTV9QQU5F TF9UUlVMWV9OVDM1NTk3X1dRWEdBPW0KK0NPTkZJR19EUk1fUEFORUxfVklTSU9OT1hfUk02OTI5 OT1tCitDT05GSUdfRFJNX1BBTkVMX1dJREVDSElQU19XUzI0MDE9bQorQ09ORklHX0RSTV9QQU5F TF9YSU5QRU5HX1hQUDA1NUMyNzI9bQorIyBlbmQgb2YgRGlzcGxheSBQYW5lbHMKKworQ09ORklH X0RSTV9CUklER0U9eQorQ09ORklHX0RSTV9QQU5FTF9CUklER0U9eQorCisjCisjIERpc3BsYXkg SW50ZXJmYWNlIEJyaWRnZXMKKyMKK0NPTkZJR19EUk1fQ0ROU19EU0k9bQorQ09ORklHX0RSTV9D SElQT05FX0lDTjYyMTE9bQorQ09ORklHX0RSTV9DSFJPTlRFTF9DSDcwMzM9bQorQ09ORklHX0RS TV9ESVNQTEFZX0NPTk5FQ1RPUj1tCitDT05GSUdfRFJNX0lURV9JVDY1MDU9bQorQ09ORklHX0RS TV9MT05USVVNX0xUODkxMkI9bQorIyBDT05GSUdfRFJNX0xPTlRJVU1fTFQ5MjExIGlzIG5vdCBz ZXQKK0NPTkZJR19EUk1fTE9OVElVTV9MVDk2MTE9bQorQ09ORklHX0RSTV9MT05USVVNX0xUOTYx MVVYQz1tCitDT05GSUdfRFJNX0lURV9JVDY2MTIxPW0KK0NPTkZJR19EUk1fTFZEU19DT0RFQz1t CitDT05GSUdfRFJNX01FR0FDSElQU19TVERQWFhYWF9HRV9CODUwVjNfRlc9bQorQ09ORklHX0RS TV9OV0xfTUlQSV9EU0k9bQorQ09ORklHX0RSTV9OWFBfUFROMzQ2MD1tCitDT05GSUdfRFJNX1BB UkFERV9QUzg2MjI9bQorQ09ORklHX0RSTV9QQVJBREVfUFM4NjQwPW0KK0NPTkZJR19EUk1fU0lM X1NJSTg2MjA9bQorQ09ORklHX0RSTV9TSUk5MDJYPW0KK0NPTkZJR19EUk1fU0lJOTIzND1tCitD T05GSUdfRFJNX1NJTVBMRV9CUklER0U9bQorQ09ORklHX0RSTV9USElORV9USEM2M0xWRDEwMjQ9 bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzYyPW0KK0NPTkZJR19EUk1fVE9TSElCQV9UQzM1 ODc2ND1tCitDT05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3Njc9bQorQ09ORklHX0RSTV9UT1NISUJB X1RDMzU4NzY4PW0KK0NPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc3NT1tCitDT05GSUdfRFJNX1RJ X0RMUEMzNDMzPW0KK0NPTkZJR19EUk1fVElfVEZQNDEwPW0KK0NPTkZJR19EUk1fVElfU042NURT STgzPW0KK0NPTkZJR19EUk1fVElfU042NURTSTg2PW0KK0NPTkZJR19EUk1fVElfVFBEMTJTMDE1 PW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNjM0NT1tCitDT05GSUdfRFJNX0FOQUxPR0lYX0FO WDc4WFg9bQorQ09ORklHX0RSTV9BTkFMT0dJWF9EUD1tCitDT05GSUdfRFJNX0FOQUxPR0lYX0FO WDc2MjU9bQorQ09ORklHX0RSTV9JMkNfQURWNzUxMT1tCitDT05GSUdfRFJNX0kyQ19BRFY3NTEx X0FVRElPPXkKK0NPTkZJR19EUk1fSTJDX0FEVjc1MTFfQ0VDPXkKK0NPTkZJR19EUk1fQ0ROU19N SERQODU0Nj1tCitDT05GSUdfRFJNX0RXX0hETUk9bQorQ09ORklHX0RSTV9EV19IRE1JX0FIQl9B VURJTz1tCitDT05GSUdfRFJNX0RXX0hETUlfSTJTX0FVRElPPW0KKyMgQ09ORklHX0RSTV9EV19I RE1JX0dQX0FVRElPIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fRFdfSERNSV9DRUM9bQorIyBlbmQg b2YgRGlzcGxheSBJbnRlcmZhY2UgQnJpZGdlcworCitDT05GSUdfRFJNX0VUTkFWSVY9bQorQ09O RklHX0RSTV9FVE5BVklWX1RIRVJNQUw9eQorQ09ORklHX0RSTV9MT0dJQ1ZDPW0KK0NPTkZJR19E Uk1fTVhTPXkKKyMgQ09ORklHX0RSTV9NWFNGQiBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0lNWF9M Q0RJRj1tCisjIENPTkZJR19EUk1fQVJDUEdVIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fQk9DSFM9 bQorQ09ORklHX0RSTV9DSVJSVVNfUUVNVT1tCitDT05GSUdfRFJNX0dNMTJVMzIwPW0KK0NPTkZJ R19EUk1fUEFORUxfTUlQSV9EQkk9bQorQ09ORklHX0RSTV9TSU1QTEVEUk09bQorQ09ORklHX1RJ TllEUk1fSFg4MzU3RD1tCitDT05GSUdfVElOWURSTV9JTEk5MTYzPW0KK0NPTkZJR19USU5ZRFJN X0lMSTkyMjU9bQorQ09ORklHX1RJTllEUk1fSUxJOTM0MT1tCitDT05GSUdfVElOWURSTV9JTEk5 NDg2PW0KK0NPTkZJR19USU5ZRFJNX01JMDI4M1FUPW0KK0NPTkZJR19USU5ZRFJNX1JFUEFQRVI9 bQorQ09ORklHX1RJTllEUk1fU1Q3NTg2PW0KK0NPTkZJR19USU5ZRFJNX1NUNzczNVI9bQorQ09O RklHX0RSTV9HVUQ9bQorQ09ORklHX0RSTV9TU0QxMzBYPW0KK0NPTkZJR19EUk1fU1NEMTMwWF9J MkM9bQorQ09ORklHX0RSTV9TU0QxMzBYX1NQST1tCisjIENPTkZJR19EUk1fTEVHQUNZIGlzIG5v dCBzZXQKK0NPTkZJR19EUk1fUEFORUxfT1JJRU5UQVRJT05fUVVJUktTPXkKK0NPTkZJR19EUk1f Tk9NT0RFU0VUPXkKKworIworIyBGcmFtZSBidWZmZXIgRGV2aWNlcworIworQ09ORklHX0ZCX0NN RExJTkU9eQorQ09ORklHX0ZCX05PVElGWT15CitDT05GSUdfRkI9eQorQ09ORklHX0ZJUk1XQVJF X0VESUQ9eQorQ09ORklHX0ZCX0REQz1tCitDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKK0NPTkZJ R19GQl9DRkJfQ09QWUFSRUE9eQorQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQorQ09ORklHX0ZC X1NZU19GSUxMUkVDVD1tCitDT05GSUdfRkJfU1lTX0NPUFlBUkVBPW0KK0NPTkZJR19GQl9TWVNf SU1BR0VCTElUPW0KKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKK0NPTkZJ R19GQl9TWVNfRk9QUz1tCitDT05GSUdfRkJfREVGRVJSRURfSU89eQorQ09ORklHX0ZCX0JBQ0tM SUdIVD1tCitDT05GSUdfRkJfTU9ERV9IRUxQRVJTPXkKK0NPTkZJR19GQl9USUxFQkxJVFRJTkc9 eQorCisjCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjCisjIENPTkZJR19GQl9D SVJSVVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZC X0NZQkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0Cisj IENPTkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0CitDT05GSUdfRkJfVVZFU0E9bQorQ09ORklHX0ZC X0VGST15CisjIENPTkZJR19GQl9PUEVOQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFE MTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfTlZJRElBIGlzIG5vdCBzZXQKKyMgQ09ORklH X0ZCX1JJVkEgaXMgbm90IHNldAorQ09ORklHX0ZCX0k3NDA9bQorIyBDT05GSUdfRkJfTUFUUk9Y IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JBREVPTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9B VFkxMjggaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZC X1MzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19G Ql9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTkVPTUFHSUMgaXMgbm90IHNldAorIyBDT05G SUdfRkJfS1lSTyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl8zREZYIGlzIG5vdCBzZXQKKyMgQ09O RklHX0ZCX1ZPT0RPTzEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVlQ4NjIzIGlzIG5vdCBzZXQK KyMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVJLIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0ZCX1BNMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DQVJNSU5FIGlzIG5v dCBzZXQKK0NPTkZJR19GQl9TTVNDVUZYPW0KKyMgQ09ORklHX0ZCX1VETCBpcyBub3Qgc2V0Cisj IENPTkZJR19GQl9JQk1fR1hUNDUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9HT0xERklTSCBp cyBub3Qgc2V0CitDT05GSUdfRkJfVklSVFVBTD1tCitDT05GSUdfRkJfTUVUUk9OT01FPW0KK0NP TkZJR19GQl9NQjg2MlhYPW0KK0NPTkZJR19GQl9NQjg2MlhYX1BDSV9HREM9eQorQ09ORklHX0ZC X01CODYyWFhfSTJDPXkKKyMgQ09ORklHX0ZCX1NJTVBMRSBpcyBub3Qgc2V0CisjIENPTkZJR19G Ql9TU0QxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NNNzEyIGlzIG5vdCBzZXQKKyMgZW5k IG9mIEZyYW1lIGJ1ZmZlciBEZXZpY2VzCisKKyMKKyMgQmFja2xpZ2h0ICYgTENEIGRldmljZSBz dXBwb3J0CisjCitDT05GSUdfTENEX0NMQVNTX0RFVklDRT1tCisjIENPTkZJR19MQ0RfTDRGMDAy NDJUMDMgaXMgbm90IHNldAorIyBDT05GSUdfTENEX0xNUzI4M0dGMDUgaXMgbm90IHNldAorIyBD T05GSUdfTENEX0xUVjM1MFFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9JTEk5MjJYIGlzIG5v dCBzZXQKKyMgQ09ORklHX0xDRF9JTEk5MzIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9URE8y NE0gaXMgbm90IHNldAorIyBDT05GSUdfTENEX1ZHRzI0MzJBNCBpcyBub3Qgc2V0CitDT05GSUdf TENEX1BMQVRGT1JNPW0KKyMgQ09ORklHX0xDRF9BTVMzNjlGRzA2IGlzIG5vdCBzZXQKKyMgQ09O RklHX0xDRF9MTVM1MDFLRjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9IWDgzNTcgaXMgbm90 IHNldAorQ09ORklHX0xDRF9PVE0zMjI1QT1tCitDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklD RT15CitDT05GSUdfQkFDS0xJR0hUX0tURDI1Mz1tCitDT05GSUdfQkFDS0xJR0hUX0xNMzUzMz1t CitDT05GSUdfQkFDS0xJR0hUX1BXTT1tCitDT05GSUdfQkFDS0xJR0hUX01UNjM3MD1tCitDT05G SUdfQkFDS0xJR0hUX1FDT01fV0xFRD1tCitDT05GSUdfQkFDS0xJR0hUX1JUNDgzMT1tCitDT05G SUdfQkFDS0xJR0hUX0FEUDg4NjA9bQorQ09ORklHX0JBQ0tMSUdIVF9BRFA4ODcwPW0KK0NPTkZJ R19CQUNLTElHSFRfTE0zNjMwQT1tCitDT05GSUdfQkFDS0xJR0hUX0xNMzYzOT1tCitDT05GSUdf QkFDS0xJR0hUX0xQODU1WD1tCitDT05GSUdfQkFDS0xJR0hUX1NLWTgxNDUyPW0KK0NPTkZJR19C QUNLTElHSFRfR1BJTz1tCitDT05GSUdfQkFDS0xJR0hUX0xWNTIwN0xQPW0KK0NPTkZJR19CQUNL TElHSFRfQkQ2MTA3PW0KK0NPTkZJR19CQUNLTElHSFRfQVJDWENOTj1tCitDT05GSUdfQkFDS0xJ R0hUX0xFRD1tCisjIGVuZCBvZiBCYWNrbGlnaHQgJiBMQ0QgZGV2aWNlIHN1cHBvcnQKKworQ09O RklHX1ZHQVNUQVRFPW0KK0NPTkZJR19WSURFT01PREVfSEVMUEVSUz15CitDT05GSUdfSERNST15 CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCitDT05GSUdfVkdBX0NP TlNPTEU9eQorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorQ09ORklHX0RVTU1ZX0NPTlNPTEVfQ09M VU1OUz04MAorQ09ORklHX0RVTU1ZX0NPTlNPTEVfUk9XUz0yNQorQ09ORklHX0ZSQU1FQlVGRkVS X0NPTlNPTEU9eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfTEVHQUNZX0FDQ0VMRVJBVElP Tj15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWT15CitDT05GSUdf RlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTj15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05T T0xFX0RFRkVSUkVEX1RBS0VPVkVSIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENvbnNvbGUgZGlzcGxh eSBkcml2ZXIgc3VwcG9ydAorCisjIENPTkZJR19MT0dPIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEdy YXBoaWNzIHN1cHBvcnQKKworQ09ORklHX1NPVU5EPW0KK0NPTkZJR19TT1VORF9PU1NfQ09SRT15 CisjIENPTkZJR19TT1VORF9PU1NfQ09SRV9QUkVDTEFJTSBpcyBub3Qgc2V0CitDT05GSUdfU05E PW0KK0NPTkZJR19TTkRfVElNRVI9bQorQ09ORklHX1NORF9QQ009bQorQ09ORklHX1NORF9QQ01f RUxEPXkKK0NPTkZJR19TTkRfUENNX0lFQzk1OD15CitDT05GSUdfU05EX0RNQUVOR0lORV9QQ009 bQorQ09ORklHX1NORF9IV0RFUD1tCitDT05GSUdfU05EX1NFUV9ERVZJQ0U9bQorQ09ORklHX1NO RF9SQVdNSURJPW0KK0NPTkZJR19TTkRfQ09NUFJFU1NfT0ZGTE9BRD1tCitDT05GSUdfU05EX0pB Q0s9eQorQ09ORklHX1NORF9KQUNLX0lOUFVUX0RFVj15CitDT05GSUdfU05EX09TU0VNVUw9eQor Q09ORklHX1NORF9NSVhFUl9PU1M9bQorQ09ORklHX1NORF9QQ01fT1NTPW0KK0NPTkZJR19TTkRf UENNX09TU19QTFVHSU5TPXkKK0NPTkZJR19TTkRfUENNX1RJTUVSPXkKK0NPTkZJR19TTkRfSFJU SU1FUj1tCitDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTPXkKK0NPTkZJR19TTkRfTUFYX0NBUkRT PTMyCitDT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15CitDT05GSUdfU05EX1BST0NfRlM9eQor Q09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15CitDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLPXkK K0NPTkZJR19TTkRfQ1RMX0ZBU1RfTE9PS1VQPXkKK0NPTkZJR19TTkRfREVCVUc9eQorIyBDT05G SUdfU05EX0RFQlVHX1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX1NORF9QQ01fWFJVTl9ERUJV Rz15CisjIENPTkZJR19TTkRfQ1RMX0lOUFVUX1ZBTElEQVRJT04gaXMgbm90IHNldAorIyBDT05G SUdfU05EX0NUTF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSkFDS19JTkpFQ1RJT05f REVCVUcgaXMgbm90IHNldAorQ09ORklHX1NORF9WTUFTVEVSPXkKK0NPTkZJR19TTkRfQ1RMX0xF RD1tCitDT05GSUdfU05EX1NFUVVFTkNFUj1tCitDT05GSUdfU05EX1NFUV9EVU1NWT1tCitDT05G SUdfU05EX1NFUVVFTkNFUl9PU1M9bQorQ09ORklHX1NORF9TRVFfSFJUSU1FUl9ERUZBVUxUPXkK K0NPTkZJR19TTkRfU0VRX01JRElfRVZFTlQ9bQorQ09ORklHX1NORF9TRVFfTUlEST1tCitDT05G SUdfU05EX1NFUV9NSURJX0VNVUw9bQorQ09ORklHX1NORF9TRVFfVklSTUlEST1tCitDT05GSUdf U05EX01QVTQwMV9VQVJUPW0KK0NPTkZJR19TTkRfT1BMM19MSUI9bQorQ09ORklHX1NORF9PUEwz X0xJQl9TRVE9bQorQ09ORklHX1NORF9WWF9MSUI9bQorQ09ORklHX1NORF9BQzk3X0NPREVDPW0K K0NPTkZJR19TTkRfRFJJVkVSUz15CitDT05GSUdfU05EX0RVTU1ZPW0KK0NPTkZJR19TTkRfQUxP T1A9bQorQ09ORklHX1NORF9WSVJNSURJPW0KK0NPTkZJR19TTkRfTVRQQVY9bQorQ09ORklHX1NO RF9NVFM2ND1tCitDT05GSUdfU05EX1NFUklBTF9VMTY1NTA9bQorQ09ORklHX1NORF9TRVJJQUxf R0VORVJJQz1tCitDT05GSUdfU05EX01QVTQwMT1tCitDT05GSUdfU05EX1BPUlRNQU4yWDQ9bQor Q09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkU9eQorQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkVf REVGQVVMVD0wCitDT05GSUdfU05EX1BDST15CitDT05GSUdfU05EX0FEMTg4OT1tCitDT05GSUdf U05EX0FUSUlYUD1tCitDT05GSUdfU05EX0FUSUlYUF9NT0RFTT1tCitDT05GSUdfU05EX0FVODgx MD1tCitDT05GSUdfU05EX0FVODgyMD1tCitDT05GSUdfU05EX0FVODgzMD1tCitDT05GSUdfU05E X0FXMj1tCitDT05GSUdfU05EX0JUODdYPW0KKyMgQ09ORklHX1NORF9CVDg3WF9PVkVSQ0xPQ0sg aXMgbm90IHNldAorQ09ORklHX1NORF9DQTAxMDY9bQorQ09ORklHX1NORF9DTUlQQ0k9bQorQ09O RklHX1NORF9PWFlHRU5fTElCPW0KK0NPTkZJR19TTkRfT1hZR0VOPW0KK0NPTkZJR19TTkRfQ1M0 MjgxPW0KK0NPTkZJR19TTkRfQ1M0NlhYPW0KK0NPTkZJR19TTkRfQ1M0NlhYX05FV19EU1A9eQor Q09ORklHX1NORF9DVFhGST1tCitDT05GSUdfU05EX0RBUkxBMjA9bQorQ09ORklHX1NORF9HSU5B MjA9bQorQ09ORklHX1NORF9MQVlMQTIwPW0KK0NPTkZJR19TTkRfREFSTEEyND1tCitDT05GSUdf U05EX0dJTkEyND1tCitDT05GSUdfU05EX0xBWUxBMjQ9bQorQ09ORklHX1NORF9NT05BPW0KK0NP TkZJR19TTkRfTUlBPW0KK0NPTkZJR19TTkRfRUNITzNHPW0KK0NPTkZJR19TTkRfSU5ESUdPPW0K K0NPTkZJR19TTkRfSU5ESUdPSU89bQorQ09ORklHX1NORF9JTkRJR09ESj1tCitDT05GSUdfU05E X0lORElHT0lPWD1tCitDT05GSUdfU05EX0lORElHT0RKWD1tCitDT05GSUdfU05EX0VOUzEzNzA9 bQorQ09ORklHX1NORF9FTlMxMzcxPW0KK0NPTkZJR19TTkRfRk04MDE9bQorQ09ORklHX1NORF9G TTgwMV9URUE1NzVYX0JPT0w9eQorQ09ORklHX1NORF9IRFNQPW0KK0NPTkZJR19TTkRfSERTUE09 bQorQ09ORklHX1NORF9JQ0UxNzI0PW0KK0NPTkZJR19TTkRfSU5URUw4WDA9bQorQ09ORklHX1NO RF9JTlRFTDhYME09bQorQ09ORklHX1NORF9LT1JHMTIxMj1tCitDT05GSUdfU05EX0xPTEE9bQor Q09ORklHX1NORF9MWDY0NjRFUz1tCitDT05GSUdfU05EX01JWEFSVD1tCitDT05GSUdfU05EX05N MjU2PW0KK0NPTkZJR19TTkRfUENYSFI9bQorQ09ORklHX1NORF9SSVBUSURFPW0KK0NPTkZJR19T TkRfUk1FMzI9bQorQ09ORklHX1NORF9STUU5Nj1tCitDT05GSUdfU05EX1JNRTk2NTI9bQorQ09O RklHX1NORF9WSUE4MlhYPW0KK0NPTkZJR19TTkRfVklBODJYWF9NT0RFTT1tCitDT05GSUdfU05E X1ZJUlRVT1NPPW0KK0NPTkZJR19TTkRfVlgyMjI9bQorQ09ORklHX1NORF9ZTUZQQ0k9bQorCisj CisjIEhELUF1ZGlvCisjCitDT05GSUdfU05EX0hEQT1tCitDT05GSUdfU05EX0hEQV9HRU5FUklD X0xFRFM9eQorQ09ORklHX1NORF9IREFfSU5URUw9bQorQ09ORklHX1NORF9IREFfSFdERVA9eQor Q09ORklHX1NORF9IREFfUkVDT05GSUc9eQorQ09ORklHX1NORF9IREFfSU5QVVRfQkVFUD15CitD T05GSUdfU05EX0hEQV9JTlBVVF9CRUVQX01PREU9MQorQ09ORklHX1NORF9IREFfUEFUQ0hfTE9B REVSPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1JFQUxURUs9bQorQ09ORklHX1NORF9IREFfQ09E RUNfQU5BTE9HPW0KK0NPTkZJR19TTkRfSERBX0NPREVDX1NJR01BVEVMPW0KK0NPTkZJR19TTkRf SERBX0NPREVDX1ZJQT1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19IRE1JPW0KK0NPTkZJR19TTkRf SERBX0NPREVDX0NJUlJVUz1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DUzg0MDk9bQorQ09ORklH X1NORF9IREFfQ09ERUNfQ09ORVhBTlQ9bQorQ09ORklHX1NORF9IREFfQ09ERUNfQ0EwMTEwPW0K K0NPTkZJR19TTkRfSERBX0NPREVDX0NBMDEzMj1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DQTAx MzJfRFNQPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0NNRURJQT1tCitDT05GSUdfU05EX0hEQV9D T0RFQ19TSTMwNTQ9bQorQ09ORklHX1NORF9IREFfR0VORVJJQz1tCitDT05GSUdfU05EX0hEQV9Q T1dFUl9TQVZFX0RFRkFVTFQ9MQorQ09ORklHX1NORF9IREFfSU5URUxfSERNSV9TSUxFTlRfU1RS RUFNPXkKKyMgZW5kIG9mIEhELUF1ZGlvCisKK0NPTkZJR19TTkRfSERBX0NPUkU9bQorQ09ORklH X1NORF9IREFfRFNQX0xPQURFUj15CitDT05GSUdfU05EX0hEQV9DT01QT05FTlQ9eQorQ09ORklH X1NORF9IREFfRVhUX0NPUkU9bQorQ09ORklHX1NORF9IREFfUFJFQUxMT0NfU0laRT0xMDI0CitD T05GSUdfU05EX0lOVEVMX0RTUF9DT05GSUc9bQorQ09ORklHX1NORF9TUEk9eQorQ09ORklHX1NO RF9VU0I9eQorQ09ORklHX1NORF9VU0JfQVVESU89bQorQ09ORklHX1NORF9VU0JfQVVESU9fVVNF X01FRElBX0NPTlRST0xMRVI9eQorQ09ORklHX1NORF9VU0JfVUExMDE9bQorQ09ORklHX1NORF9V U0JfQ0FJQVE9bQorQ09ORklHX1NORF9VU0JfQ0FJQVFfSU5QVVQ9eQorQ09ORklHX1NORF9VU0Jf NkZJUkU9bQorQ09ORklHX1NORF9VU0JfSElGQUNFPW0KK0NPTkZJR19TTkRfQkNEMjAwMD1tCitD T05GSUdfU05EX1VTQl9MSU5FNj1tCitDT05GSUdfU05EX1VTQl9QT0Q9bQorQ09ORklHX1NORF9V U0JfUE9ESEQ9bQorQ09ORklHX1NORF9VU0JfVE9ORVBPUlQ9bQorQ09ORklHX1NORF9VU0JfVkFS SUFYPW0KK0NPTkZJR19TTkRfRklSRVdJUkU9eQorQ09ORklHX1NORF9GSVJFV0lSRV9MSUI9bQor Q09ORklHX1NORF9ESUNFPW0KK0NPTkZJR19TTkRfT1hGVz1tCitDT05GSUdfU05EX0lTSUdIVD1t CitDT05GSUdfU05EX0ZJUkVXT1JLUz1tCitDT05GSUdfU05EX0JFQk9CPW0KK0NPTkZJR19TTkRf RklSRVdJUkVfRElHSTAwWD1tCitDT05GSUdfU05EX0ZJUkVXSVJFX1RBU0NBTT1tCitDT05GSUdf U05EX0ZJUkVXSVJFX01PVFU9bQorQ09ORklHX1NORF9GSVJFRkFDRT1tCitDT05GSUdfU05EX1BD TUNJQT15CitDT05GSUdfU05EX1ZYUE9DS0VUPW0KK0NPTkZJR19TTkRfUERBVURJT0NGPW0KK0NP TkZJR19TTkRfU09DPW0KK0NPTkZJR19TTkRfU09DX0FDOTdfQlVTPXkKK0NPTkZJR19TTkRfU09D X0dFTkVSSUNfRE1BRU5HSU5FX1BDTT15CitDT05GSUdfU05EX1NPQ19DT01QUkVTUz15CitDT05G SUdfU05EX1NPQ19BREk9bQorQ09ORklHX1NORF9TT0NfQURJX0FYSV9JMlM9bQorQ09ORklHX1NO RF9TT0NfQURJX0FYSV9TUERJRj1tCitDT05GSUdfU05EX1NPQ19BTURfQUNQPW0KK0NPTkZJR19T TkRfU09DX0FNRF9DWl9SVDU2NDVfTUFDSD1tCitDT05GSUdfU05EX0FNRF9BQ1BfQ09ORklHPW0K KyMgQ09ORklHX1NORF9BVE1FTF9TT0MgaXMgbm90IHNldAorQ09ORklHX1NORF9CQ002M1hYX0ky U19XSElTVExFUj1tCitDT05GSUdfU05EX0RFU0lHTldBUkVfSTJTPW0KK0NPTkZJR19TTkRfREVT SUdOV0FSRV9QQ009eQorCisjCisjIFNvQyBBdWRpbyBmb3IgRnJlZXNjYWxlIENQVXMKKyMKKwor IworIyBDb21tb24gU29DIEF1ZGlvIG9wdGlvbnMgZm9yIEZyZWVzY2FsZSBDUFVzOgorIworQ09O RklHX1NORF9TT0NfRlNMX0FTUkM9bQorQ09ORklHX1NORF9TT0NfRlNMX1NBST1tCitDT05GSUdf U05EX1NPQ19GU0xfTVFTPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9BVURNSVg9bQorQ09ORklHX1NO RF9TT0NfRlNMX1NTST1tCitDT05GSUdfU05EX1NPQ19GU0xfU1BESUY9bQorQ09ORklHX1NORF9T T0NfRlNMX0VTQUk9bQorQ09ORklHX1NORF9TT0NfRlNMX01JQ0ZJTD1tCitDT05GSUdfU05EX1NP Q19GU0xfRUFTUkM9bQorQ09ORklHX1NORF9TT0NfRlNMX1hDVlI9bQorQ09ORklHX1NORF9TT0Nf RlNMX1VUSUxTPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9SUE1TRz1tCitDT05GSUdfU05EX1NPQ19J TVhfQVVETVVYPW0KKyMgZW5kIG9mIFNvQyBBdWRpbyBmb3IgRnJlZXNjYWxlIENQVXMKKworQ09O RklHX1NORF9JMlNfSEk2MjEwX0kyUz1tCisjIENPTkZJR19TTkRfU09DX0lNRyBpcyBub3Qgc2V0 CitDT05GSUdfU05EX1NPQ19NVEtfQlRDVlNEPW0KK0NPTkZJR19TTkRfU09DX1NPRl9UT1BMRVZF TD15CitDT05GSUdfU05EX1NPQ19TT0ZfUENJPW0KK0NPTkZJR19TTkRfU09DX1NPRl9PRj1tCisK KyMKKyMgU1RNaWNyb2VsZWN0cm9uaWNzIFNUTTMyIFNPQyBhdWRpbyBzdXBwb3J0CisjCisjIGVu ZCBvZiBTVE1pY3JvZWxlY3Ryb25pY3MgU1RNMzIgU09DIGF1ZGlvIHN1cHBvcnQKKworQ09ORklH X1NORF9TT0NfWElMSU5YX0kyUz1tCitDT05GSUdfU05EX1NPQ19YSUxJTlhfQVVESU9fRk9STUFU VEVSPW0KK0NPTkZJR19TTkRfU09DX1hJTElOWF9TUERJRj1tCitDT05GSUdfU05EX1NPQ19YVEZQ R0FfSTJTPW0KK0NPTkZJR19TTkRfU09DX0kyQ19BTkRfU1BJPW0KKworIworIyBDT0RFQyBkcml2 ZXJzCisjCitDT05GSUdfU05EX1NPQ19XTV9BRFNQPW0KK0NPTkZJR19TTkRfU09DX0FDOTdfQ09E RUM9bQorQ09ORklHX1NORF9TT0NfQURBVV9VVElMUz1tCitDT05GSUdfU05EX1NPQ19BREFVMTM3 Mj1tCitDT05GSUdfU05EX1NPQ19BREFVMTM3Ml9JMkM9bQorQ09ORklHX1NORF9TT0NfQURBVTEz NzJfU1BJPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzAxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUx N1gxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzYxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzYx X0kyQz1tCitDT05GSUdfU05EX1NPQ19BREFVMTc2MV9TUEk9bQorQ09ORklHX1NORF9TT0NfQURB VTcwMDI9bQorQ09ORklHX1NORF9TT0NfQURBVTcxMTg9bQorQ09ORklHX1NORF9TT0NfQURBVTcx MThfSFc9bQorQ09ORklHX1NORF9TT0NfQURBVTcxMThfSTJDPW0KK0NPTkZJR19TTkRfU09DX0FL NDEwND1tCitDT05GSUdfU05EX1NPQ19BSzQxMTg9bQorQ09ORklHX1NORF9TT0NfQUs0Mzc1PW0K K0NPTkZJR19TTkRfU09DX0FLNDQ1OD1tCitDT05GSUdfU05EX1NPQ19BSzQ1NTQ9bQorQ09ORklH X1NORF9TT0NfQUs0NjEzPW0KK0NPTkZJR19TTkRfU09DX0FLNDY0Mj1tCitDT05GSUdfU05EX1NP Q19BSzUzODY9bQorQ09ORklHX1NORF9TT0NfQUs1NTU4PW0KK0NPTkZJR19TTkRfU09DX0FMQzU2 MjM9bQorQ09ORklHX1NORF9TT0NfQVc4NzM4PW0KK0NPTkZJR19TTkRfU09DX0JEMjg2MjM9bQor Q09ORklHX1NORF9TT0NfQlRfU0NPPW0KK0NPTkZJR19TTkRfU09DX0NQQ0FQPW0KK0NPTkZJR19T TkRfU09DX0NTMzVMMzI9bQorQ09ORklHX1NORF9TT0NfQ1MzNUwzMz1tCitDT05GSUdfU05EX1NP Q19DUzM1TDM0PW0KK0NPTkZJR19TTkRfU09DX0NTMzVMMzU9bQorQ09ORklHX1NORF9TT0NfQ1Mz NUwzNj1tCitDT05GSUdfU05EX1NPQ19DUzM1TDQxX0xJQj1tCitDT05GSUdfU05EX1NPQ19DUzM1 TDQxPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNDFfU1BJPW0KK0NPTkZJR19TTkRfU09DX0NTMzVM NDFfSTJDPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNDVfVEFCTEVTPW0KK0NPTkZJR19TTkRfU09D X0NTMzVMNDU9bQorQ09ORklHX1NORF9TT0NfQ1MzNUw0NV9TUEk9bQorQ09ORklHX1NORF9TT0Nf Q1MzNUw0NV9JMkM9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw0Ml9DT1JFPW0KK0NPTkZJR19TTkRf U09DX0NTNDJMNDI9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw1MT1tCitDT05GSUdfU05EX1NPQ19D UzQyTDUxX0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzQyTDUyPW0KK0NPTkZJR19TTkRfU09DX0NT NDJMNTY9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw3Mz1tCitDT05GSUdfU05EX1NPQ19DUzQyTDgz PW0KK0NPTkZJR19TTkRfU09DX0NTNDIzND1tCitDT05GSUdfU05EX1NPQ19DUzQyNjU9bQorQ09O RklHX1NORF9TT0NfQ1M0MjcwPW0KK0NPTkZJR19TTkRfU09DX0NTNDI3MT1tCitDT05GSUdfU05E X1NPQ19DUzQyNzFfSTJDPW0KK0NPTkZJR19TTkRfU09DX0NTNDI3MV9TUEk9bQorQ09ORklHX1NO RF9TT0NfQ1M0MlhYOD1tCitDT05GSUdfU05EX1NPQ19DUzQyWFg4X0kyQz1tCitDT05GSUdfU05E X1NPQ19DUzQzMTMwPW0KK0NPTkZJR19TTkRfU09DX0NTNDM0MT1tCitDT05GSUdfU05EX1NPQ19D UzQzNDk9bQorQ09ORklHX1NORF9TT0NfQ1M1M0wzMD1tCitDT05GSUdfU05EX1NPQ19DWDIwNzJY PW0KK0NPTkZJR19TTkRfU09DX0RBNzIxMz1tCitDT05GSUdfU05EX1NPQ19ETUlDPW0KK0NPTkZJ R19TTkRfU09DX0hETUlfQ09ERUM9bQorQ09ORklHX1NORF9TT0NfRVM3MTM0PW0KK0NPTkZJR19T TkRfU09DX0VTNzI0MT1tCitDT05GSUdfU05EX1NPQ19FUzgzMTY9bQorQ09ORklHX1NORF9TT0Nf RVM4MzI2PW0KK0NPTkZJR19TTkRfU09DX0VTODMyOD1tCitDT05GSUdfU05EX1NPQ19FUzgzMjhf STJDPW0KK0NPTkZJR19TTkRfU09DX0VTODMyOF9TUEk9bQorQ09ORklHX1NORF9TT0NfR1RNNjAx PW0KK0NPTkZJR19TTkRfU09DX0hEQT1tCitDT05GSUdfU05EX1NPQ19JQ1M0MzQzMj1tCisjIENP TkZJR19TTkRfU09DX0lOTk9fUkszMDM2IGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfU09DX0xPQ0hO QUdBUl9TQz1tCitDT05GSUdfU05EX1NPQ19NQVg5ODA4OD1tCitDT05GSUdfU05EX1NPQ19NQVg5 ODM1N0E9bQorQ09ORklHX1NORF9TT0NfTUFYOTg1MDQ9bQorQ09ORklHX1NORF9TT0NfTUFYOTg2 Nz1tCitDT05GSUdfU05EX1NPQ19NQVg5ODkyNz1tCitDT05GSUdfU05EX1NPQ19NQVg5ODUyMD1t CitDT05GSUdfU05EX1NPQ19NQVg5ODM3Mz1tCitDT05GSUdfU05EX1NPQ19NQVg5ODM3M19JMkM9 bQorQ09ORklHX1NORF9TT0NfTUFYOTgzNzNfU0RXPW0KK0NPTkZJR19TTkRfU09DX01BWDk4Mzkw PW0KK0NPTkZJR19TTkRfU09DX01BWDk4Mzk2PW0KK0NPTkZJR19TTkRfU09DX01BWDk4NjA9bQor IyBDT05GSUdfU05EX1NPQ19NU004OTE2X1dDRF9BTkFMT0cgaXMgbm90IHNldAorIyBDT05GSUdf U05EX1NPQ19NU004OTE2X1dDRF9ESUdJVEFMIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfU09DX1BD TTE2ODE9bQorQ09ORklHX1NORF9TT0NfUENNMTc4OT1tCitDT05GSUdfU05EX1NPQ19QQ00xNzg5 X0kyQz1tCitDT05GSUdfU05EX1NPQ19QQ00xNzlYPW0KK0NPTkZJR19TTkRfU09DX1BDTTE3OVhf STJDPW0KK0NPTkZJR19TTkRfU09DX1BDTTE3OVhfU1BJPW0KK0NPTkZJR19TTkRfU09DX1BDTTE4 Nlg9bQorQ09ORklHX1NORF9TT0NfUENNMTg2WF9JMkM9bQorQ09ORklHX1NORF9TT0NfUENNMTg2 WF9TUEk9bQorQ09ORklHX1NORF9TT0NfUENNMzA2MD1tCitDT05GSUdfU05EX1NPQ19QQ00zMDYw X0kyQz1tCitDT05GSUdfU05EX1NPQ19QQ00zMDYwX1NQST1tCisjIENPTkZJR19TTkRfU09DX1BD TTMxNjhBX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1BDTTMxNjhBX1NQSSBpcyBu b3Qgc2V0CitDT05GSUdfU05EX1NPQ19QQ001MTAyQT1tCitDT05GSUdfU05EX1NPQ19QQ001MTJ4 PW0KK0NPTkZJR19TTkRfU09DX1BDTTUxMnhfSTJDPW0KK0NPTkZJR19TTkRfU09DX1BDTTUxMnhf U1BJPW0KK0NPTkZJR19TTkRfU09DX1JLMzMyOD1tCitDT05GSUdfU05EX1NPQ19SSzgxNz1tCitD T05GSUdfU05EX1NPQ19STDYyMzE9bQorQ09ORklHX1NORF9TT0NfUlQxMzA4X1NEVz1tCitDT05G SUdfU05EX1NPQ19SVDEzMTZfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNTYxNj1tCitDT05GSUdf U05EX1NPQ19SVDU2MzE9bQorQ09ORklHX1NORF9TT0NfUlQ1NjQwPW0KK0NPTkZJR19TTkRfU09D X1JUNTY0NT1tCitDT05GSUdfU05EX1NPQ19SVDU2NTk9bQorQ09ORklHX1NORF9TT0NfUlQ1Njgy PW0KK0NPTkZJR19TTkRfU09DX1JUNTY4Ml9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ3MDA9bQor Q09ORklHX1NORF9TT0NfUlQ3MDBfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNzExPW0KK0NPTkZJ R19TTkRfU09DX1JUNzExX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDcxMV9TRENBX1NEVz1tCitD T05GSUdfU05EX1NPQ19SVDcxNT1tCitDT05GSUdfU05EX1NPQ19SVDcxNV9TRFc9bQorQ09ORklH X1NORF9TT0NfUlQ3MTVfU0RDQV9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ5MTIwPW0KK0NPTkZJ R19TTkRfU09DX1NEV19NT0NLVVA9bQorQ09ORklHX1NORF9TT0NfU0dUTDUwMDA9bQorQ09ORklH X1NORF9TT0NfU0lHTUFEU1A9bQorQ09ORklHX1NORF9TT0NfU0lHTUFEU1BfSTJDPW0KK0NPTkZJ R19TTkRfU09DX1NJR01BRFNQX1JFR01BUD1tCitDT05GSUdfU05EX1NPQ19TSU1QTEVfQU1QTElG SUVSPW0KK0NPTkZJR19TTkRfU09DX1NJTVBMRV9NVVg9bQorQ09ORklHX1NORF9TT0NfU1BESUY9 bQorQ09ORklHX1NORF9TT0NfU1JDNFhYWF9JMkM9bQorQ09ORklHX1NORF9TT0NfU1JDNFhYWD1t CitDT05GSUdfU05EX1NPQ19TU00yMzA1PW0KK0NPTkZJR19TTkRfU09DX1NTTTI1MTg9bQorQ09O RklHX1NORF9TT0NfU1NNMjYwMj1tCitDT05GSUdfU05EX1NPQ19TU00yNjAyX1NQST1tCitDT05G SUdfU05EX1NPQ19TU00yNjAyX0kyQz1tCitDT05GSUdfU05EX1NPQ19TU000NTY3PW0KK0NPTkZJ R19TTkRfU09DX1NUQTMyWD1tCitDT05GSUdfU05EX1NPQ19TVEEzNTA9bQorQ09ORklHX1NORF9T T0NfU1RJX1NBUz1tCitDT05GSUdfU05EX1NPQ19UQVMyNTUyPW0KK0NPTkZJR19TTkRfU09DX1RB UzI1NjI9bQorQ09ORklHX1NORF9TT0NfVEFTMjc2ND1tCitDT05GSUdfU05EX1NPQ19UQVMyNzcw PW0KK0NPTkZJR19TTkRfU09DX1RBUzI3ODA9bQorQ09ORklHX1NORF9TT0NfVEFTNTA4Nj1tCitD T05GSUdfU05EX1NPQ19UQVM1NzFYPW0KK0NPTkZJR19TTkRfU09DX1RBUzU3MjA9bQorQ09ORklH X1NORF9TT0NfVEFTNTgwNU09bQorQ09ORklHX1NORF9TT0NfVEFTNjQyND1tCitDT05GSUdfU05E X1NPQ19UREE3NDE5PW0KK0NPTkZJR19TTkRfU09DX1RGQTk4Nzk9bQorQ09ORklHX1NORF9TT0Nf VEZBOTg5WD1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBREMzWFhYPW0KK0NPTkZJR19TTkRfU09D X1RMVjMyMEFJQzIzPW0KK0NPTkZJR19TTkRfU09DX1RMVjMyMEFJQzIzX0kyQz1tCitDT05GSUdf U05EX1NPQ19UTFYzMjBBSUMyM19TUEk9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMzFYWD1t CitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMzMlg0PW0KK0NPTkZJR19TTkRfU09DX1RMVjMyMEFJ QzMyWDRfSTJDPW0KK0NPTkZJR19TTkRfU09DX1RMVjMyMEFJQzMyWDRfU1BJPW0KK0NPTkZJR19T TkRfU09DX1RMVjMyMEFJQzNYPW0KK0NPTkZJR19TTkRfU09DX1RMVjMyMEFJQzNYX0kyQz1tCitD T05GSUdfU05EX1NPQ19UTFYzMjBBSUMzWF9TUEk9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQURD WDE0MD1tCitDT05GSUdfU05EX1NPQ19UUzNBMjI3RT1tCitDT05GSUdfU05EX1NPQ19UU0NTNDJY WD1tCitDT05GSUdfU05EX1NPQ19UU0NTNDU0PW0KK0NPTkZJR19TTkRfU09DX1VEQTEzMzQ9bQor Q09ORklHX1NORF9TT0NfV0NEX01CSEM9bQorQ09ORklHX1NORF9TT0NfV0NEOTM4WD1tCitDT05G SUdfU05EX1NPQ19XQ0Q5MzhYX1NEVz1tCitDT05GSUdfU05EX1NPQ19XTTg1MTA9bQorQ09ORklH X1NORF9TT0NfV004NTIzPW0KK0NPTkZJR19TTkRfU09DX1dNODUyND1tCitDT05GSUdfU05EX1NP Q19XTTg1ODA9bQorQ09ORklHX1NORF9TT0NfV004NzExPW0KK0NPTkZJR19TTkRfU09DX1dNODcy OD1tCitDT05GSUdfU05EX1NPQ19XTTg3MzE9bQorQ09ORklHX1NORF9TT0NfV004NzMxX0kyQz1t CitDT05GSUdfU05EX1NPQ19XTTg3MzFfU1BJPW0KK0NPTkZJR19TTkRfU09DX1dNODczNz1tCitD T05GSUdfU05EX1NPQ19XTTg3NDE9bQorQ09ORklHX1NORF9TT0NfV004NzUwPW0KK0NPTkZJR19T TkRfU09DX1dNODc1Mz1tCitDT05GSUdfU05EX1NPQ19XTTg3NzA9bQorQ09ORklHX1NORF9TT0Nf V004Nzc2PW0KK0NPTkZJR19TTkRfU09DX1dNODc4Mj1tCitDT05GSUdfU05EX1NPQ19XTTg4MDQ9 bQorQ09ORklHX1NORF9TT0NfV004ODA0X0kyQz1tCitDT05GSUdfU05EX1NPQ19XTTg4MDRfU1BJ PW0KK0NPTkZJR19TTkRfU09DX1dNODkwMz1tCitDT05GSUdfU05EX1NPQ19XTTg5MDQ9bQorQ09O RklHX1NORF9TT0NfV004OTQwPW0KK0NPTkZJR19TTkRfU09DX1dNODk2MD1tCitDT05GSUdfU05E X1NPQ19XTTg5NjI9bQorQ09ORklHX1NORF9TT0NfV004OTc0PW0KK0NPTkZJR19TTkRfU09DX1dN ODk3OD1tCitDT05GSUdfU05EX1NPQ19XTTg5ODU9bQorQ09ORklHX1NORF9TT0NfV1NBODgxWD1t CitDT05GSUdfU05EX1NPQ19XU0E4ODNYPW0KK0NPTkZJR19TTkRfU09DX1pMMzgwNjA9bQorQ09O RklHX1NORF9TT0NfTUFYOTc1OT1tCitDT05GSUdfU05EX1NPQ19NVDYzNTE9bQorQ09ORklHX1NO RF9TT0NfTVQ2MzU4PW0KK0NPTkZJR19TTkRfU09DX01UNjY2MD1tCitDT05GSUdfU05EX1NPQ19O QVU4MzE1PW0KK0NPTkZJR19TTkRfU09DX05BVTg1NDA9bQorQ09ORklHX1NORF9TT0NfTkFVODgx MD1tCitDT05GSUdfU05EX1NPQ19OQVU4ODIxPW0KK0NPTkZJR19TTkRfU09DX05BVTg4MjI9bQor Q09ORklHX1NORF9TT0NfTkFVODgyND1tCitDT05GSUdfU05EX1NPQ19UUEE2MTMwQTI9bQorQ09O RklHX1NORF9TT0NfTFBBU1NfTUFDUk9fQ09NTU9OPW0KK0NPTkZJR19TTkRfU09DX0xQQVNTX1dT QV9NQUNSTz1tCitDT05GSUdfU05EX1NPQ19MUEFTU19WQV9NQUNSTz1tCitDT05GSUdfU05EX1NP Q19MUEFTU19SWF9NQUNSTz1tCitDT05GSUdfU05EX1NPQ19MUEFTU19UWF9NQUNSTz1tCisjIGVu ZCBvZiBDT0RFQyBkcml2ZXJzCisKK0NPTkZJR19TTkRfU0lNUExFX0NBUkRfVVRJTFM9bQorQ09O RklHX1NORF9TSU1QTEVfQ0FSRD1tCitDT05GSUdfU05EX0FVRElPX0dSQVBIX0NBUkQ9bQorQ09O RklHX1NORF9BVURJT19HUkFQSF9DQVJEMj1tCitDT05GSUdfU05EX0FVRElPX0dSQVBIX0NBUkQy X0NVU1RPTV9TQU1QTEU9bQorQ09ORklHX1NORF9URVNUX0NPTVBPTkVOVD1tCitDT05GSUdfU05E X1ZJUlRJTz1tCitDT05GSUdfQUM5N19CVVM9bQorCisjCisjIEhJRCBzdXBwb3J0CisjCitDT05G SUdfSElEPXkKK0NPTkZJR19ISURfQkFUVEVSWV9TVFJFTkdUSD15CitDT05GSUdfSElEUkFXPXkK K0NPTkZJR19VSElEPW0KK0NPTkZJR19ISURfR0VORVJJQz1tCisKKyMKKyMgU3BlY2lhbCBISUQg ZHJpdmVycworIworQ09ORklHX0hJRF9BNFRFQ0g9bQorQ09ORklHX0hJRF9BQ0NVVE9VQ0g9bQor Q09ORklHX0hJRF9BQ1JVWD1tCitDT05GSUdfSElEX0FDUlVYX0ZGPXkKK0NPTkZJR19ISURfQVBQ TEU9bQorQ09ORklHX0hJRF9BUFBMRUlSPW0KK0NPTkZJR19ISURfQVNVUz1tCitDT05GSUdfSElE X0FVUkVBTD1tCitDT05GSUdfSElEX0JFTEtJTj1tCitDT05GSUdfSElEX0JFVE9QX0ZGPW0KK0NP TkZJR19ISURfQklHQkVOX0ZGPW0KK0NPTkZJR19ISURfQ0hFUlJZPW0KK0NPTkZJR19ISURfQ0hJ Q09OWT1tCitDT05GSUdfSElEX0NPUlNBSVI9bQorQ09ORklHX0hJRF9DT1VHQVI9bQorQ09ORklH X0hJRF9NQUNBTExZPW0KK0NPTkZJR19ISURfUFJPRElLRVlTPW0KKyMgQ09ORklHX0hJRF9DTUVE SUEgaXMgbm90IHNldAorQ09ORklHX0hJRF9DUDIxMTI9bQorQ09ORklHX0hJRF9DUkVBVElWRV9T QjA1NDA9bQorQ09ORklHX0hJRF9DWVBSRVNTPW0KK0NPTkZJR19ISURfRFJBR09OUklTRT1tCitD T05GSUdfRFJBR09OUklTRV9GRj15CitDT05GSUdfSElEX0VNU19GRj1tCitDT05GSUdfSElEX0VM QU49bQorQ09ORklHX0hJRF9FTEVDT009bQorQ09ORklHX0hJRF9FTE89bQorQ09ORklHX0hJRF9F WktFWT1tCitDT05GSUdfSElEX0ZUMjYwPW0KK0NPTkZJR19ISURfR0VNQklSRD1tCitDT05GSUdf SElEX0dGUk09bQorQ09ORklHX0hJRF9HTE9SSU9VUz1tCitDT05GSUdfSElEX0hPTFRFSz1tCitD T05GSUdfSE9MVEVLX0ZGPXkKK0NPTkZJR19ISURfVklWQUxESV9DT01NT049bQorQ09ORklHX0hJ RF9WSVZBTERJPW0KK0NPTkZJR19ISURfR1Q2ODNSPW0KK0NPTkZJR19ISURfS0VZVE9VQ0g9bQor Q09ORklHX0hJRF9LWUU9bQorQ09ORklHX0hJRF9VQ0xPR0lDPW0KK0NPTkZJR19ISURfV0FMVE9Q PW0KK0NPTkZJR19ISURfVklFV1NPTklDPW0KK0NPTkZJR19ISURfVlJDMj1tCitDT05GSUdfSElE X1hJQU9NST1tCitDT05GSUdfSElEX0dZUkFUSU9OPW0KK0NPTkZJR19ISURfSUNBREU9bQorQ09O RklHX0hJRF9JVEU9bQorQ09ORklHX0hJRF9KQUJSQT1tCitDT05GSUdfSElEX1RXSU5IQU49bQor Q09ORklHX0hJRF9LRU5TSU5HVE9OPW0KK0NPTkZJR19ISURfTENQT1dFUj1tCitDT05GSUdfSElE X0xFRD1tCitDT05GSUdfSElEX0xFTk9WTz1tCitDT05GSUdfSElEX0xFVFNLRVRDSD1tCitDT05G SUdfSElEX0xPR0lURUNIPW0KK0NPTkZJR19ISURfTE9HSVRFQ0hfREo9bQorQ09ORklHX0hJRF9M T0dJVEVDSF9ISURQUD1tCitDT05GSUdfTE9HSVRFQ0hfRkY9eQorQ09ORklHX0xPR0lSVU1CTEVQ QUQyX0ZGPXkKK0NPTkZJR19MT0dJRzk0MF9GRj15CitDT05GSUdfTE9HSVdIRUVMU19GRj15CitD T05GSUdfSElEX01BR0lDTU9VU0U9bQorQ09ORklHX0hJRF9NQUxUUk9OPW0KK0NPTkZJR19ISURf TUFZRkxBU0g9bQorQ09ORklHX0hJRF9NRUdBV09STERfRkY9bQorQ09ORklHX0hJRF9SRURSQUdP Tj1tCitDT05GSUdfSElEX01JQ1JPU09GVD1tCitDT05GSUdfSElEX01PTlRFUkVZPW0KK0NPTkZJ R19ISURfTVVMVElUT1VDSD1tCitDT05GSUdfSElEX05JTlRFTkRPPW0KK0NPTkZJR19OSU5URU5E T19GRj15CitDT05GSUdfSElEX05UST1tCitDT05GSUdfSElEX05UUklHPW0KK0NPTkZJR19ISURf T1JURUs9bQorQ09ORklHX0hJRF9QQU5USEVSTE9SRD1tCitDT05GSUdfUEFOVEhFUkxPUkRfRkY9 eQorQ09ORklHX0hJRF9QRU5NT1VOVD1tCitDT05GSUdfSElEX1BFVEFMWU5YPW0KK0NPTkZJR19I SURfUElDT0xDRD1tCitDT05GSUdfSElEX1BJQ09MQ0RfRkI9eQorQ09ORklHX0hJRF9QSUNPTENE X0JBQ0tMSUdIVD15CitDT05GSUdfSElEX1BJQ09MQ0RfTENEPXkKK0NPTkZJR19ISURfUElDT0xD RF9MRURTPXkKK0NPTkZJR19ISURfUElDT0xDRF9DSVI9eQorQ09ORklHX0hJRF9QTEFOVFJPTklD Uz1tCitDT05GSUdfSElEX1BMQVlTVEFUSU9OPW0KK0NPTkZJR19QTEFZU1RBVElPTl9GRj15CitD T05GSUdfSElEX1BYUkM9bQorQ09ORklHX0hJRF9SQVpFUj1tCitDT05GSUdfSElEX1BSSU1BWD1t CitDT05GSUdfSElEX1JFVFJPREU9bQorQ09ORklHX0hJRF9ST0NDQVQ9bQorQ09ORklHX0hJRF9T QUlURUs9bQorQ09ORklHX0hJRF9TQU1TVU5HPW0KK0NPTkZJR19ISURfU0VNSVRFSz1tCitDT05G SUdfSElEX1NJR01BTUlDUk89bQorQ09ORklHX0hJRF9TT05ZPW0KK0NPTkZJR19TT05ZX0ZGPXkK K0NPTkZJR19ISURfU1BFRURMSU5LPW0KK0NPTkZJR19ISURfU1RFQU09bQorQ09ORklHX0hJRF9T VEVFTFNFUklFUz1tCitDT05GSUdfSElEX1NVTlBMVVM9bQorQ09ORklHX0hJRF9STUk9bQorQ09O RklHX0hJRF9HUkVFTkFTSUE9bQorQ09ORklHX0dSRUVOQVNJQV9GRj15CitDT05GSUdfSElEX1NN QVJUSk9ZUExVUz1tCitDT05GSUdfU01BUlRKT1lQTFVTX0ZGPXkKK0NPTkZJR19ISURfVElWTz1t CitDT05GSUdfSElEX1RPUFNFRUQ9bQorQ09ORklHX0hJRF9UT1BSRT1tCitDT05GSUdfSElEX1RI SU5HTT1tCitDT05GSUdfSElEX1RIUlVTVE1BU1RFUj1tCitDT05GSUdfVEhSVVNUTUFTVEVSX0ZG PXkKK0NPTkZJR19ISURfVURSQVdfUFMzPW0KK0NPTkZJR19ISURfVTJGWkVSTz1tCitDT05GSUdf SElEX1dBQ09NPW0KK0NPTkZJR19ISURfV0lJTU9URT1tCitDT05GSUdfSElEX1hJTk1PPW0KK0NP TkZJR19ISURfWkVST1BMVVM9bQorQ09ORklHX1pFUk9QTFVTX0ZGPXkKK0NPTkZJR19ISURfWllE QUNST049bQorQ09ORklHX0hJRF9TRU5TT1JfSFVCPW0KK0NPTkZJR19ISURfU0VOU09SX0NVU1RP TV9TRU5TT1I9bQorQ09ORklHX0hJRF9BTFBTPW0KK0NPTkZJR19ISURfTUNQMjIyMT1tCisjIGVu ZCBvZiBTcGVjaWFsIEhJRCBkcml2ZXJzCisKKyMKKyMgVVNCIEhJRCBzdXBwb3J0CisjCitDT05G SUdfVVNCX0hJRD1tCitDT05GSUdfSElEX1BJRD15CitDT05GSUdfVVNCX0hJRERFVj15CisKKyMK KyMgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMg bm90IHNldAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFVTQiBISUQg Qm9vdCBQcm90b2NvbCBkcml2ZXJzCisjIGVuZCBvZiBVU0IgSElEIHN1cHBvcnQKKworIworIyBJ MkMgSElEIHN1cHBvcnQKKyMKK0NPTkZJR19JMkNfSElEX09GPW0KK0NPTkZJR19JMkNfSElEX09G X0VMQU49bQorQ09ORklHX0kyQ19ISURfT0ZfR09PRElYPW0KKyMgZW5kIG9mIEkyQyBISUQgc3Vw cG9ydAorCitDT05GSUdfSTJDX0hJRF9DT1JFPW0KKyMgZW5kIG9mIEhJRCBzdXBwb3J0CisKK0NP TkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05G SUdfVVNCX0NPTU1PTj1tCitDT05GSUdfVVNCX0xFRF9UUklHPXkKK0NPTkZJR19VU0JfVUxQSV9C VVM9bQorQ09ORklHX1VTQl9DT05OX0dQSU89bQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQor Q09ORklHX1VTQj1tCitDT05GSUdfVVNCX1BDST15CitDT05GSUdfVVNCX0FOTk9VTkNFX05FV19E RVZJQ0VTPXkKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNC X0RFRkFVTFRfUEVSU0lTVD15CisjIENPTkZJR19VU0JfRkVXX0lOSVRfUkVUUklFUyBpcyBub3Qg c2V0CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorQ09ORklHX1VTQl9P VEc9eQorIyBDT05GSUdfVVNCX09UR19QUk9EVUNUTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19V U0JfT1RHX0RJU0FCTEVfRVhURVJOQUxfSFVCIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT1RHX0ZT TT1tCitDT05GSUdfVVNCX0xFRFNfVFJJR0dFUl9VU0JQT1JUPW0KK0NPTkZJR19VU0JfQVVUT1NV U1BFTkRfREVMQVk9MgorQ09ORklHX1VTQl9NT049bQorCisjCisjIFVTQiBIb3N0IENvbnRyb2xs ZXIgRHJpdmVycworIworQ09ORklHX1VTQl9DNjdYMDBfSENEPW0KK0NPTkZJR19VU0JfWEhDSV9I Q0Q9bQorIyBDT05GSUdfVVNCX1hIQ0lfREJHQ0FQIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfWEhD SV9QQ0k9bQorQ09ORklHX1VTQl9YSENJX1BDSV9SRU5FU0FTPW0KK0NPTkZJR19VU0JfWEhDSV9Q TEFURk9STT1tCitDT05GSUdfVVNCX0VIQ0lfSENEPW0KK0NPTkZJR19VU0JfRUhDSV9ST09UX0hV Ql9UVD15CitDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQ9eQorQ09ORklHX1VTQl9FSENJX1BD ST1tCitDT05GSUdfVVNCX0VIQ0lfRlNMPW0KK0NPTkZJR19VU0JfRUhDSV9IQ0RfUExBVEZPUk09 bQorQ09ORklHX1VTQl9PWFUyMTBIUF9IQ0Q9bQorQ09ORklHX1VTQl9JU1AxMTZYX0hDRD1tCitD T05GSUdfVVNCX0ZPVEcyMTBfSENEPW0KK0NPTkZJR19VU0JfTUFYMzQyMV9IQ0Q9bQorQ09ORklH X1VTQl9PSENJX0hDRD1tCitDT05GSUdfVVNCX09IQ0lfSENEX1BDST1tCitDT05GSUdfVVNCX09I Q0lfSENEX1NTQj15CitDT05GSUdfVVNCX09IQ0lfSENEX1BMQVRGT1JNPW0KK0NPTkZJR19VU0Jf VUhDSV9IQ0Q9bQorQ09ORklHX1VTQl9VMTMyX0hDRD1tCitDT05GSUdfVVNCX1NMODExX0hDRD1t CisjIENPTkZJR19VU0JfU0w4MTFfSENEX0lTTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NMODEx X0NTPW0KK0NPTkZJR19VU0JfUjhBNjY1OTdfSENEPW0KK0NPTkZJR19VU0JfSENEX0JDTUE9bQor Q09ORklHX1VTQl9IQ0RfU1NCPW0KKyMgQ09ORklHX1VTQl9IQ0RfVEVTVF9NT0RFIGlzIG5vdCBz ZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKK0NPTkZJR19VU0JfQUNNPW0K K0NPTkZJR19VU0JfUFJJTlRFUj1tCitDT05GSUdfVVNCX1dETT1tCitDT05GSUdfVVNCX1RNQz1t CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZGVwZW5kcyBvbiBTQ1NJIGJ1dCBCTEtfREVWX1NE IG1heQorIworCisjCisjIGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3Ig bW9yZSBpbmZvCisjCitDT05GSUdfVVNCX1NUT1JBR0U9bQorIyBDT05GSUdfVVNCX1NUT1JBR0Vf REVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX1JFQUxURUs9bQorQ09ORklHX1JF QUxURUtfQVVUT1BNPXkKK0NPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCPW0KK0NPTkZJR19VU0Jf U1RPUkFHRV9GUkVFQ09NPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDA9bQorQ09ORklHX1VT Ql9TVE9SQUdFX1VTQkFUPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSMDk9bQorQ09ORklHX1VT Ql9TVE9SQUdFX1NERFI1NT1tCitDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1Q9bQorQ09ORklH X1VTQl9TVE9SQUdFX0FMQVVEQT1tCitDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0g9bQorQ09O RklHX1VTQl9TVE9SQUdFX0tBUk1BPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNC PW0KK0NPTkZJR19VU0JfU1RPUkFHRV9FTkVfVUI2MjUwPW0KK0NPTkZJR19VU0JfVUFTPW0KKwor IworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCitDT05GSUdfVVNCX01EQzgwMD1tCitDT05GSUdf VVNCX01JQ1JPVEVLPW0KK0NPTkZJR19VU0JJUF9DT1JFPW0KK0NPTkZJR19VU0JJUF9WSENJX0hD RD1tCitDT05GSUdfVVNCSVBfVkhDSV9IQ19QT1JUUz04CitDT05GSUdfVVNCSVBfVkhDSV9OUl9I Q1M9MQorQ09ORklHX1VTQklQX0hPU1Q9bQorQ09ORklHX1VTQklQX1ZVREM9bQorIyBDT05GSUdf VVNCSVBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9DRE5TX1NVUFBPUlQ9bQorQ09ORklH X1VTQl9DRE5TX0hPU1Q9eQorQ09ORklHX1VTQl9DRE5TMz1tCitDT05GSUdfVVNCX0NETlMzX0dB REdFVD15CitDT05GSUdfVVNCX0NETlMzX0hPU1Q9eQorQ09ORklHX1VTQl9NVVNCX0hEUkM9bQor Q09ORklHX1VTQl9NVVNCX0hPU1Q9eQorIyBDT05GSUdfVVNCX01VU0JfR0FER0VUIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1VTQl9NVVNCX0RVQUxfUk9MRSBpcyBub3Qgc2V0CisKKyMKKyMgUGxhdGZv cm0gR2x1ZSBMYXllcgorIworQ09ORklHX1VTQl9NVVNCX1BPTEFSRklSRV9TT0M9bQorCisjCisj IE1VU0IgRE1BIG1vZGUKKyMKK0NPTkZJR19NVVNCX1BJT19PTkxZPXkKK0NPTkZJR19VU0JfRFdD Mz1tCitDT05GSUdfVVNCX0RXQzNfVUxQST15CisjIENPTkZJR19VU0JfRFdDM19IT1NUIGlzIG5v dCBzZXQKKyMgQ09ORklHX1VTQl9EV0MzX0dBREdFVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0RX QzNfRFVBTF9ST0xFPXkKKworIworIyBQbGF0Zm9ybSBHbHVlIERyaXZlciBTdXBwb3J0CisjCitD T05GSUdfVVNCX0RXQzNfSEFQUz1tCitDT05GSUdfVVNCX0RXQzNfT0ZfU0lNUExFPW0KK0NPTkZJ R19VU0JfRFdDMj1tCisjIENPTkZJR19VU0JfRFdDMl9IT1NUIGlzIG5vdCBzZXQKKworIworIyBH YWRnZXQvRHVhbC1yb2xlIG1vZGUgcmVxdWlyZXMgVVNCIEdhZGdldCBzdXBwb3J0IHRvIGJlIGVu YWJsZWQKKyMKKyMgQ09ORklHX1VTQl9EV0MyX1BFUklQSEVSQUwgaXMgbm90IHNldAorQ09ORklH X1VTQl9EV0MyX0RVQUxfUk9MRT15CitDT05GSUdfVVNCX0RXQzJfUENJPW0KKyMgQ09ORklHX1VT Ql9EV0MyX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9EV0MyX1RSQUNLX01JU1NFRF9T T0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfQ0hJUElERUE9bQorIyBDT05GSUdfVVNCX0NISVBJ REVBX1VEQyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0NISVBJREVBX0hPU1Q9eQorQ09ORklHX1VT Ql9DSElQSURFQV9QQ0k9bQorQ09ORklHX1VTQl9DSElQSURFQV9NU009bQorQ09ORklHX1VTQl9D SElQSURFQV9JTVg9bQorQ09ORklHX1VTQl9DSElQSURFQV9HRU5FUklDPW0KK0NPTkZJR19VU0Jf Q0hJUElERUFfVEVHUkE9bQorQ09ORklHX1VTQl9JU1AxNzYwPW0KK0NPTkZJR19VU0JfSVNQMTc2 MF9IQ0Q9eQorQ09ORklHX1VTQl9JU1AxNzYwX0hPU1RfUk9MRT15CisjIENPTkZJR19VU0JfSVNQ MTc2MF9HQURHRVRfUk9MRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9EVUFMX1JP TEUgaXMgbm90IHNldAorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKK0NPTkZJR19VU0JfVVNT NzIwPW0KK0NPTkZJR19VU0JfU0VSSUFMPW0KK0NPTkZJR19VU0JfU0VSSUFMX0dFTkVSSUM9eQor Q09ORklHX1VTQl9TRVJJQUxfU0lNUExFPW0KK0NPTkZJR19VU0JfU0VSSUFMX0FJUkNBQkxFPW0K K0NPTkZJR19VU0JfU0VSSUFMX0FSSzMxMTY9bQorQ09ORklHX1VTQl9TRVJJQUxfQkVMS0lOPW0K K0NPTkZJR19VU0JfU0VSSUFMX0NIMzQxPW0KK0NPTkZJR19VU0JfU0VSSUFMX1dISVRFSEVBVD1t CitDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VMRVBPUlQ9bQorQ09ORklHX1VTQl9TRVJJQUxf Q1AyMTBYPW0KK0NPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1NfTTg9bQorQ09ORklHX1VTQl9TRVJJ QUxfRU1QRUc9bQorQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU89bQorQ09ORklHX1VTQl9TRVJJ QUxfVklTT1I9bQorQ09ORklHX1VTQl9TRVJJQUxfSVBBUT1tCitDT05GSUdfVVNCX1NFUklBTF9J Uj1tCitDT05GSUdfVVNCX1NFUklBTF9FREdFUE9SVD1tCitDT05GSUdfVVNCX1NFUklBTF9FREdF UE9SVF9UST1tCitDT05GSUdfVVNCX1NFUklBTF9GODEyMzI9bQorQ09ORklHX1VTQl9TRVJJQUxf RjgxNTNYPW0KK0NPTkZJR19VU0JfU0VSSUFMX0dBUk1JTj1tCitDT05GSUdfVVNCX1NFUklBTF9J UFc9bQorQ09ORklHX1VTQl9TRVJJQUxfSVVVPW0KK0NPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5f UERBPW0KK0NPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU49bQorQ09ORklHX1VTQl9TRVJJQUxfS0xT ST1tCitDT05GSUdfVVNCX1NFUklBTF9LT0JJTF9TQ1Q9bQorQ09ORklHX1VTQl9TRVJJQUxfTUNU X1UyMzI9bQorQ09ORklHX1VTQl9TRVJJQUxfTUVUUk89bQorQ09ORklHX1VTQl9TRVJJQUxfTU9T NzcyMD1tCitDT05GSUdfVVNCX1NFUklBTF9NT1M3NzE1X1BBUlBPUlQ9eQorQ09ORklHX1VTQl9T RVJJQUxfTU9TNzg0MD1tCitDT05GSUdfVVNCX1NFUklBTF9NWFVQT1JUPW0KK0NPTkZJR19VU0Jf U0VSSUFMX05BVk1BTj1tCitDT05GSUdfVVNCX1NFUklBTF9QTDIzMDM9bQorQ09ORklHX1VTQl9T RVJJQUxfT1RJNjg1OD1tCitDT05GSUdfVVNCX1NFUklBTF9RQ0FVWD1tCitDT05GSUdfVVNCX1NF UklBTF9RVUFMQ09NTT1tCitDT05GSUdfVVNCX1NFUklBTF9TUENQOFg1PW0KK0NPTkZJR19VU0Jf U0VSSUFMX1NBRkU9bQorQ09ORklHX1VTQl9TRVJJQUxfU0FGRV9QQURERUQ9eQorQ09ORklHX1VT Ql9TRVJJQUxfU0lFUlJBV0lSRUxFU1M9bQorQ09ORklHX1VTQl9TRVJJQUxfU1lNQk9MPW0KK0NP TkZJR19VU0JfU0VSSUFMX1RJPW0KK0NPTkZJR19VU0JfU0VSSUFMX0NZQkVSSkFDSz1tCitDT05G SUdfVVNCX1NFUklBTF9XV0FOPW0KK0NPTkZJR19VU0JfU0VSSUFMX09QVElPTj1tCitDT05GSUdf VVNCX1NFUklBTF9PTU5JTkVUPW0KK0NPTkZJR19VU0JfU0VSSUFMX09QVElDT049bQorQ09ORklH X1VTQl9TRVJJQUxfWFNFTlNfTVQ9bQorQ09ORklHX1VTQl9TRVJJQUxfV0lTSEJPTkU9bQorQ09O RklHX1VTQl9TRVJJQUxfU1NVMTAwPW0KK0NPTkZJR19VU0JfU0VSSUFMX1FUMj1tCitDT05GSUdf VVNCX1NFUklBTF9VUEQ3OEYwNzMwPW0KK0NPTkZJR19VU0JfU0VSSUFMX1hSPW0KK0NPTkZJR19V U0JfU0VSSUFMX0RFQlVHPW0KKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCitD T05GSUdfVVNCX0VNSTYyPW0KK0NPTkZJR19VU0JfRU1JMjY9bQorQ09ORklHX1VTQl9BRFVUVVg9 bQorQ09ORklHX1VTQl9TRVZTRUc9bQorQ09ORklHX1VTQl9MRUdPVE9XRVI9bQorQ09ORklHX1VT Ql9MQ0Q9bQorQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2Mz1tCitDT05GSUdfVVNCX0NZVEhFUk09 bQorQ09ORklHX1VTQl9JRE1PVVNFPW0KK0NPTkZJR19VU0JfRlRESV9FTEFOPW0KK0NPTkZJR19V U0JfQVBQTEVESVNQTEFZPW0KK0NPTkZJR19BUFBMRV9NRklfRkFTVENIQVJHRT1tCitDT05GSUdf VVNCX1NJU1VTQlZHQT1tCitDT05GSUdfVVNCX0xEPW0KK0NPTkZJR19VU0JfVFJBTkNFVklCUkFU T1I9bQorQ09ORklHX1VTQl9JT1dBUlJJT1I9bQorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNl dAorQ09ORklHX1VTQl9FSFNFVF9URVNUX0ZJWFRVUkU9bQorQ09ORklHX1VTQl9JU0lHSFRGVz1t CitDT05GSUdfVVNCX1lVUkVYPW0KK0NPTkZJR19VU0JfRVpVU0JfRlgyPW0KK0NPTkZJR19VU0Jf SFVCX1VTQjI1MVhCPW0KK0NPTkZJR19VU0JfSFNJQ19VU0IzNTAzPW0KK0NPTkZJR19VU0JfSFNJ Q19VU0I0NjA0PW0KK0NPTkZJR19VU0JfTElOS19MQVlFUl9URVNUPW0KKyMgQ09ORklHX1VTQl9D SEFPU0tFWSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09OQk9BUkRfSFVCPW0KK0NPTkZJR19VU0Jf QVRNPW0KK0NPTkZJR19VU0JfU1BFRURUT1VDSD1tCitDT05GSUdfVVNCX0NYQUNSVT1tCitDT05G SUdfVVNCX1VFQUdMRUFUTT1tCitDT05GSUdfVVNCX1hVU0JBVE09bQorCisjCisjIFVTQiBQaHlz aWNhbCBMYXllciBkcml2ZXJzCisjCitDT05GSUdfVVNCX1BIWT15CitDT05GSUdfTk9QX1VTQl9Y Q0VJVj1tCisjIENPTkZJR19VU0JfR1BJT19WQlVTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfSVNQ MTMwMT1tCisjIGVuZCBvZiBVU0IgUGh5c2ljYWwgTGF5ZXIgZHJpdmVycworCitDT05GSUdfVVNC X0dBREdFVD1tCisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklH X1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9E RUJVR19GUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9WQlVTX0RSQVc9MgorQ09ORklH X1VTQl9HQURHRVRfU1RPUkFHRV9OVU1fQlVGRkVSUz0yCitDT05GSUdfVV9TRVJJQUxfQ09OU09M RT15CisKKyMKKyMgVVNCIFBlcmlwaGVyYWwgQ29udHJvbGxlcgorIworIyBDT05GSUdfVVNCX0ZP VEcyMTBfVURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HUl9VREMgaXMgbm90IHNldAorIyBD T05GSUdfVVNCX1I4QTY2NTk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QWEEyN1ggaXMgbm90 IHNldAorIyBDT05GSUdfVVNCX01WX1VEQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTVZfVTNE IGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU05QX0NPUkU9bQorQ09ORklHX1VTQl9TTlBfVURDX1BM QVQ9bQorIyBDT05GSUdfVVNCX002NjU5MiBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0JEQ19VREM9 bQorIyBDT05GSUdfVVNCX0FNRDU1MzZVREMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVDIy NzIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVDIyODAgaXMgbm90IHNldAorIyBDT05GSUdf VVNCX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VHMjBUIGlzIG5vdCBzZXQKK0NPTkZJ R19VU0JfR0FER0VUX1hJTElOWD1tCitDT05GSUdfVVNCX01BWDM0MjBfVURDPW0KKyMgQ09ORklH X1VTQl9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBlbmQgb2YgVVNCIFBlcmlwaGVyYWwgQ29udHJv bGxlcgorCitDT05GSUdfVVNCX0xJQkNPTVBPU0lURT1tCitDT05GSUdfVVNCX0ZfQUNNPW0KK0NP TkZJR19VU0JfRl9TU19MQj1tCitDT05GSUdfVVNCX1VfU0VSSUFMPW0KK0NPTkZJR19VU0JfVV9F VEhFUj1tCitDT05GSUdfVVNCX1VfQVVESU89bQorQ09ORklHX1VTQl9GX1NFUklBTD1tCitDT05G SUdfVVNCX0ZfT0JFWD1tCitDT05GSUdfVVNCX0ZfTkNNPW0KK0NPTkZJR19VU0JfRl9FQ009bQor Q09ORklHX1VTQl9GX1BIT05FVD1tCitDT05GSUdfVVNCX0ZfRUVNPW0KK0NPTkZJR19VU0JfRl9T VUJTRVQ9bQorQ09ORklHX1VTQl9GX1JORElTPW0KK0NPTkZJR19VU0JfRl9NQVNTX1NUT1JBR0U9 bQorQ09ORklHX1VTQl9GX0ZTPW0KK0NPTkZJR19VU0JfRl9VQUMxPW0KK0NPTkZJR19VU0JfRl9V QUMyPW0KK0NPTkZJR19VU0JfRl9VVkM9bQorQ09ORklHX1VTQl9GX01JREk9bQorQ09ORklHX1VT Ql9GX0hJRD1tCitDT05GSUdfVVNCX0ZfUFJJTlRFUj1tCitDT05GSUdfVVNCX0ZfVENNPW0KK0NP TkZJR19VU0JfQ09ORklHRlM9bQorQ09ORklHX1VTQl9DT05GSUdGU19TRVJJQUw9eQorQ09ORklH X1VTQl9DT05GSUdGU19BQ009eQorQ09ORklHX1VTQl9DT05GSUdGU19PQkVYPXkKK0NPTkZJR19V U0JfQ09ORklHRlNfTkNNPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRUNNPXkKK0NPTkZJR19VU0Jf Q09ORklHRlNfRUNNX1NVQlNFVD15CitDT05GSUdfVVNCX0NPTkZJR0ZTX1JORElTPXkKK0NPTkZJ R19VU0JfQ09ORklHRlNfRUVNPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfUEhPTkVUPXkKK0NPTkZJ R19VU0JfQ09ORklHRlNfTUFTU19TVE9SQUdFPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9MQl9T Uz15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfRlM9eQorQ09ORklHX1VTQl9DT05GSUdGU19GX1VB QzE9eQorIyBDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfVUFDMV9MRUdBQ1kgaXMgbm90IHNldAorQ09O RklHX1VTQl9DT05GSUdGU19GX1VBQzI9eQorQ09ORklHX1VTQl9DT05GSUdGU19GX01JREk9eQor Q09ORklHX1VTQl9DT05GSUdGU19GX0hJRD15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfVVZDPXkK K0NPTkZJR19VU0JfQ09ORklHRlNfRl9QUklOVEVSPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9U Q009eQorCisjCisjIFVTQiBHYWRnZXQgcHJlY29tcG9zZWQgY29uZmlndXJhdGlvbnMKKyMKKyMg Q09ORklHX1VTQl9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfQVVESU89bQorIyBDT05GSUdf R0FER0VUX1VBQzEgaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9bQorQ09ORklHX1VTQl9FVEhf Uk5ESVM9eQorQ09ORklHX1VTQl9FVEhfRUVNPXkKK0NPTkZJR19VU0JfR19OQ009bQorQ09ORklH X1VTQl9HQURHRVRGUz1tCitDT05GSUdfVVNCX0ZVTkNUSU9ORlM9bQorQ09ORklHX1VTQl9GVU5D VElPTkZTX0VUSD15CitDT05GSUdfVVNCX0ZVTkNUSU9ORlNfUk5ESVM9eQorQ09ORklHX1VTQl9G VU5DVElPTkZTX0dFTkVSSUM9eQorQ09ORklHX1VTQl9NQVNTX1NUT1JBR0U9bQorQ09ORklHX1VT Ql9HQURHRVRfVEFSR0VUPW0KK0NPTkZJR19VU0JfR19TRVJJQUw9bQorQ09ORklHX1VTQl9NSURJ X0dBREdFVD1tCitDT05GSUdfVVNCX0dfUFJJTlRFUj1tCitDT05GSUdfVVNCX0NEQ19DT01QT1NJ VEU9bQorQ09ORklHX1VTQl9HX05PS0lBPW0KK0NPTkZJR19VU0JfR19BQ01fTVM9bQorQ09ORklH X1VTQl9HX01VTFRJPW0KK0NPTkZJR19VU0JfR19NVUxUSV9STkRJUz15CitDT05GSUdfVVNCX0df TVVMVElfQ0RDPXkKK0NPTkZJR19VU0JfR19ISUQ9bQorQ09ORklHX1VTQl9HX0RCR1A9bQorIyBD T05GSUdfVVNCX0dfREJHUF9QUklOVEsgaXMgbm90IHNldAorQ09ORklHX1VTQl9HX0RCR1BfU0VS SUFMPXkKK0NPTkZJR19VU0JfR19XRUJDQU09bQorQ09ORklHX1VTQl9SQVdfR0FER0VUPW0KKyMg ZW5kIG9mIFVTQiBHYWRnZXQgcHJlY29tcG9zZWQgY29uZmlndXJhdGlvbnMKKworQ09ORklHX1RZ UEVDPW0KK0NPTkZJR19UWVBFQ19UQ1BNPW0KK0NPTkZJR19UWVBFQ19UQ1BDST1tCitDT05GSUdf VFlQRUNfUlQxNzExSD1tCitDT05GSUdfVFlQRUNfVENQQ0lfTVQ2MzcwPW0KK0NPTkZJR19UWVBF Q19UQ1BDSV9NQVhJTT1tCitDT05GSUdfVFlQRUNfRlVTQjMwMj1tCitDT05GSUdfVFlQRUNfVUNT ST1tCitDT05GSUdfVUNTSV9DQ0c9bQorQ09ORklHX1VDU0lfU1RNMzJHMD1tCitDT05GSUdfVFlQ RUNfVFBTNjU5OFg9bQorQ09ORklHX1RZUEVDX0FOWDc0MTE9bQorQ09ORklHX1RZUEVDX1JUMTcx OT1tCitDT05GSUdfVFlQRUNfSEQzU1MzMjIwPW0KK0NPTkZJR19UWVBFQ19TVFVTQjE2MFg9bQor Q09ORklHX1RZUEVDX1dVU0IzODAxPW0KKworIworIyBVU0IgVHlwZS1DIE11bHRpcGxleGVyL0Rl TXVsdGlwbGV4ZXIgU3dpdGNoIHN1cHBvcnQKKyMKK0NPTkZJR19UWVBFQ19NVVhfRlNBNDQ4MD1t CitDT05GSUdfVFlQRUNfTVVYX1BJM1VTQjMwNTMyPW0KKyMgZW5kIG9mIFVTQiBUeXBlLUMgTXVs dGlwbGV4ZXIvRGVNdWx0aXBsZXhlciBTd2l0Y2ggc3VwcG9ydAorCisjCisjIFVTQiBUeXBlLUMg QWx0ZXJuYXRlIE1vZGUgZHJpdmVycworIworQ09ORklHX1RZUEVDX0RQX0FMVE1PREU9bQorQ09O RklHX1RZUEVDX05WSURJQV9BTFRNT0RFPW0KKyMgZW5kIG9mIFVTQiBUeXBlLUMgQWx0ZXJuYXRl IE1vZGUgZHJpdmVycworCitDT05GSUdfVVNCX1JPTEVfU1dJVENIPW0KK0NPTkZJR19NTUM9bQor Q09ORklHX1BXUlNFUV9FTU1DPW0KK0NPTkZJR19QV1JTRVFfU0Q4Nzg3PW0KK0NPTkZJR19QV1JT RVFfU0lNUExFPW0KK0NPTkZJR19NTUNfQkxPQ0s9bQorQ09ORklHX01NQ19CTE9DS19NSU5PUlM9 OAorQ09ORklHX1NESU9fVUFSVD1tCisjIENPTkZJR19NTUNfVEVTVCBpcyBub3Qgc2V0CitDT05G SUdfTU1DX0NSWVBUTz15CisKKyMKKyMgTU1DL1NEL1NESU8gSG9zdCBDb250cm9sbGVyIERyaXZl cnMKKyMKKyMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTU1DX1NESENJPW0K K0NPTkZJR19NTUNfU0RIQ0lfSU9fQUNDRVNTT1JTPXkKK0NPTkZJR19NTUNfU0RIQ0lfUENJPW0K K0NPTkZJR19NTUNfUklDT0hfTU1DPXkKK0NPTkZJR19NTUNfU0RIQ0lfUExURk09bQorQ09ORklH X01NQ19TREhDSV9PRl9BUkFTQU49bQorIyBDT05GSUdfTU1DX1NESENJX09GX0FUOTEgaXMgbm90 IHNldAorQ09ORklHX01NQ19TREhDSV9PRl9EV0NNU0hDPW0KK0NPTkZJR19NTUNfU0RIQ0lfQ0FE RU5DRT1tCitDT05GSUdfTU1DX1NESENJX0ZfU0RIMzA9bQorIyBDT05GSUdfTU1DX1NESENJX01J TEJFQVVUIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfQUxDT1I9bQorQ09ORklHX01NQ19USUZNX1NE PW0KKyMgQ09ORklHX01NQ19TUEkgaXMgbm90IHNldAorQ09ORklHX01NQ19TRFJJQ09IX0NTPW0K K0NPTkZJR19NTUNfQ0I3MTA9bQorQ09ORklHX01NQ19WSUFfU0RNTUM9bQorQ09ORklHX01NQ19E Vz1tCitDT05GSUdfTU1DX0RXX1BMVEZNPW0KK0NPTkZJR19NTUNfRFdfQkxVRUZJRUxEPW0KK0NP TkZJR19NTUNfRFdfRVhZTk9TPW0KK0NPTkZJR19NTUNfRFdfSEkzNzk4Q1YyMDA9bQorQ09ORklH X01NQ19EV19LMz1tCitDT05GSUdfTU1DX0RXX1BDST1tCitDT05GSUdfTU1DX1ZVQjMwMD1tCitD T05GSUdfTU1DX1VTSEM9bQorQ09ORklHX01NQ19VU0RISTZST0wwPW0KK0NPTkZJR19NTUNfUkVB TFRFS19QQ0k9bQorQ09ORklHX01NQ19SRUFMVEVLX1VTQj1tCitDT05GSUdfTU1DX0NRSENJPW0K K0NPTkZJR19NTUNfSFNRPW0KK0NPTkZJR19NTUNfVE9TSElCQV9QQ0k9bQorQ09ORklHX01NQ19N VEs9bQorQ09ORklHX01NQ19TREhDSV9YRU5PTj1tCisjIENPTkZJR19NTUNfU0RIQ0lfT01BUCBp cyBub3Qgc2V0CitDT05GSUdfTU1DX1NESENJX0FNNjU0PW0KK0NPTkZJR19TQ1NJX1VGU0hDRD1t CitDT05GSUdfU0NTSV9VRlNfQlNHPXkKK0NPTkZJR19TQ1NJX1VGU19DUllQVE89eQorQ09ORklH X1NDU0lfVUZTX0hQQj15CitDT05GSUdfU0NTSV9VRlNfSFdNT049eQorQ09ORklHX1NDU0lfVUZT SENEX1BDST1tCisjIENPTkZJR19TQ1NJX1VGU19EV0NfVENfUENJIGlzIG5vdCBzZXQKK0NPTkZJ R19TQ1NJX1VGU0hDRF9QTEFURk9STT1tCitDT05GSUdfU0NTSV9VRlNfQ0ROU19QTEFURk9STT1t CisjIENPTkZJR19TQ1NJX1VGU19EV0NfVENfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX01F TVNUSUNLPW0KKyMgQ09ORklHX01FTVNUSUNLX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBNZW1v cnlTdGljayBkcml2ZXJzCisjCisjIENPTkZJR19NRU1TVElDS19VTlNBRkVfUkVTVU1FIGlzIG5v dCBzZXQKK0NPTkZJR19NU1BST19CTE9DSz1tCitDT05GSUdfTVNfQkxPQ0s9bQorCisjCisjIE1l bW9yeVN0aWNrIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfTUVNU1RJQ0tfVElG TV9NUz1tCitDT05GSUdfTUVNU1RJQ0tfSk1JQ1JPTl8zOFg9bQorQ09ORklHX01FTVNUSUNLX1I1 OTI9bQorQ09ORklHX01FTVNUSUNLX1JFQUxURUtfUENJPW0KK0NPTkZJR19NRU1TVElDS19SRUFM VEVLX1VTQj1tCitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorQ09ORklH X0xFRFNfQ0xBU1NfRkxBU0g9bQorQ09ORklHX0xFRFNfQ0xBU1NfTVVMVElDT0xPUj1tCitDT05G SUdfTEVEU19CUklHSFRORVNTX0hXX0NIQU5HRUQ9eQorCisjCisjIExFRCBkcml2ZXJzCisjCitD T05GSUdfTEVEU19BTjMwMjU5QT1tCitDT05GSUdfTEVEU19BVzIwMTM9bQorIyBDT05GSUdfTEVE U19CQ002MzI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xFRFNfQkNNNjM1OCBpcyBub3Qgc2V0CitD T05GSUdfTEVEU19DUENBUD1tCitDT05GSUdfTEVEU19DUjAwMTQxMTQ9bQorQ09ORklHX0xFRFNf RUwxNTIwMzAwMD1tCitDT05GSUdfTEVEU19MTTM1MzA9bQorQ09ORklHX0xFRFNfTE0zNTMyPW0K K0NPTkZJR19MRURTX0xNMzUzMz1tCitDT05GSUdfTEVEU19MTTM2NDI9bQorQ09ORklHX0xFRFNf TE0zNjkyWD1tCitDT05GSUdfTEVEU19QQ0E5NTMyPW0KK0NPTkZJR19MRURTX1BDQTk1MzJfR1BJ Tz15CitDT05GSUdfTEVEU19HUElPPW0KK0NPTkZJR19MRURTX0xQMzk0ND1tCitDT05GSUdfTEVE U19MUDM5NTI9bQorQ09ORklHX0xFRFNfTFA1MFhYPW0KK0NPTkZJR19MRURTX0xQNTVYWF9DT01N T049bQorQ09ORklHX0xFRFNfTFA1NTIxPW0KK0NPTkZJR19MRURTX0xQNTUyMz1tCitDT05GSUdf TEVEU19MUDU1NjI9bQorQ09ORklHX0xFRFNfTFA4NTAxPW0KK0NPTkZJR19MRURTX0xQODg2MD1t CitDT05GSUdfTEVEU19QQ0E5NTVYPW0KK0NPTkZJR19MRURTX1BDQTk1NVhfR1BJTz15CitDT05G SUdfTEVEU19QQ0E5NjNYPW0KKyMgQ09ORklHX0xFRFNfREFDMTI0UzA4NSBpcyBub3Qgc2V0CitD T05GSUdfTEVEU19QV009bQorIyBDT05GSUdfTEVEU19SRUdVTEFUT1IgaXMgbm90IHNldAorQ09O RklHX0xFRFNfQkQyODAyPW0KK0NPTkZJR19MRURTX0xUMzU5Mz1tCitDT05GSUdfTEVEU19UQ0E2 NTA3PW0KKyMgQ09ORklHX0xFRFNfVExDNTkxWFggaXMgbm90IHNldAorQ09ORklHX0xFRFNfTUFY Nzc2NTA9bQorQ09ORklHX0xFRFNfTE0zNTV4PW0KK0NPTkZJR19MRURTX01FTkYyMUJNQz1tCitD T05GSUdfTEVEU19JUzMxRkwzMTlYPW0KK0NPTkZJR19MRURTX0lTMzFGTDMyWFg9bQorCisjCisj IExFRCBkcml2ZXIgZm9yIGJsaW5rKDEpIFVTQiBSR0IgTEVEIGlzIHVuZGVyIFNwZWNpYWwgSElE IGRyaXZlcnMgKEhJRF9USElOR00pCisjCitDT05GSUdfTEVEU19CTElOS009bQorQ09ORklHX0xF RFNfU1lTQ09OPXkKK0NPTkZJR19MRURTX01MWFJFRz1tCitDT05GSUdfTEVEU19VU0VSPW0KK0NP TkZJR19MRURTX1NQSV9CWVRFPW0KK0NPTkZJR19MRURTX1RJX0xNVV9DT01NT049bQorQ09ORklH X0xFRFNfTE0zNjk3PW0KK0NPTkZJR19MRURTX0xNMzYyNzQ9bQorCisjCisjIEZsYXNoIGFuZCBU b3JjaCBMRUQgZHJpdmVycworIworIyBDT05GSUdfTEVEU19BQVQxMjkwIGlzIG5vdCBzZXQKK0NP TkZJR19MRURTX0FTMzY0NUE9bQorIyBDT05GSUdfTEVEU19LVEQyNjkyIGlzIG5vdCBzZXQKK0NP TkZJR19MRURTX0xNMzYwMVg9bQorQ09ORklHX0xFRFNfUlQ0NTA1PW0KK0NPTkZJR19MRURTX1JU ODUxNT1tCitDT05GSUdfTEVEU19TR00zMTQwPW0KKworIworIyBSR0IgTEVEIGRyaXZlcnMKKyMK K0NPTkZJR19MRURTX1BXTV9NVUxUSUNPTE9SPW0KK0NPTkZJR19MRURTX1FDT01fTFBHPW0KKwor IworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKK0NPTkZJR19MRURT X1RSSUdHRVJfVElNRVI9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9PTkVTSE9UPW0KK0NPTkZJR19M RURTX1RSSUdHRVJfRElTSz15CitDT05GSUdfTEVEU19UUklHR0VSX01URD15CitDT05GSUdfTEVE U19UUklHR0VSX0hFQVJUQkVBVD1tCitDT05GSUdfTEVEU19UUklHR0VSX0JBQ0tMSUdIVD1tCitD T05GSUdfTEVEU19UUklHR0VSX0NQVT15CitDT05GSUdfTEVEU19UUklHR0VSX0FDVElWSVRZPW0K K0NPTkZJR19MRURTX1RSSUdHRVJfR1BJTz1tCitDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRf T049bQorCisjCisjIGlwdGFibGVzIHRyaWdnZXIgaXMgdW5kZXIgTmV0ZmlsdGVyIGNvbmZpZyAo TEVEIHRhcmdldCkKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJfVFJBTlNJRU5UPW0KK0NPTkZJR19M RURTX1RSSUdHRVJfQ0FNRVJBPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfUEFOSUM9eQorQ09ORklH X0xFRFNfVFJJR0dFUl9ORVRERVY9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9QQVRURVJOPW0KK0NP TkZJR19MRURTX1RSSUdHRVJfQVVESU89bQorQ09ORklHX0xFRFNfVFJJR0dFUl9UVFk9bQorCisj CisjIFNpbXBsZSBMRUQgZHJpdmVycworIworQ09ORklHX0FDQ0VTU0lCSUxJVFk9eQorQ09ORklH X0ExMVlfQlJBSUxMRV9DT05TT0xFPXkKKworIworIyBTcGVha3VwIGNvbnNvbGUgc3BlZWNoCisj CitDT05GSUdfU1BFQUtVUD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9BQ05UU0E9bQorQ09ORklH X1NQRUFLVVBfU1lOVEhfQVBPTExPPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0FVRFBUUj1tCitD T05GSUdfU1BFQUtVUF9TWU5USF9CTlM9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfREVDVExLPW0K K0NPTkZJR19TUEVBS1VQX1NZTlRIX0RFQ0VYVD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9MVExL PW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX1NPRlQ9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfU1BL T1VUPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX1RYUFJUPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRI X0RVTU1ZPW0KKyMgZW5kIG9mIFNwZWFrdXAgY29uc29sZSBzcGVlY2gKKworQ09ORklHX0lORklO SUJBTkQ9bQorQ09ORklHX0lORklOSUJBTkRfVVNFUl9NQUQ9bQorQ09ORklHX0lORklOSUJBTkRf VVNFUl9BQ0NFU1M9bQorQ09ORklHX0lORklOSUJBTkRfVVNFUl9NRU09eQorQ09ORklHX0lORklO SUJBTkRfT05fREVNQU5EX1BBR0lORz15CitDT05GSUdfSU5GSU5JQkFORF9BRERSX1RSQU5TPXkK K0NPTkZJR19JTkZJTklCQU5EX0FERFJfVFJBTlNfQ09ORklHRlM9eQorQ09ORklHX0lORklOSUJB TkRfVklSVF9ETUE9eQorQ09ORklHX0lORklOSUJBTkRfQk5YVF9SRT1tCitDT05GSUdfSU5GSU5J QkFORF9DWEdCND1tCitDT05GSUdfSU5GSU5JQkFORF9FRkE9bQorQ09ORklHX0lORklOSUJBTkRf RVJETUE9bQorQ09ORklHX0lORklOSUJBTkRfSVJETUE9bQorQ09ORklHX01MWDRfSU5GSU5JQkFO RD1tCitDT05GSUdfTUxYNV9JTkZJTklCQU5EPW0KK0NPTkZJR19JTkZJTklCQU5EX01USENBPW0K K0NPTkZJR19JTkZJTklCQU5EX01USENBX0RFQlVHPXkKK0NPTkZJR19JTkZJTklCQU5EX09DUkRN QT1tCitDT05GSUdfSU5GSU5JQkFORF9RRURSPW0KKyMgQ09ORklHX0lORklOSUJBTkRfVk1XQVJF X1BWUkRNQSBpcyBub3Qgc2V0CitDT05GSUdfUkRNQV9SWEU9bQorQ09ORklHX1JETUFfU0lXPW0K K0NPTkZJR19JTkZJTklCQU5EX0lQT0lCPW0KK0NPTkZJR19JTkZJTklCQU5EX0lQT0lCX0NNPXkK K0NPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHPXkKKyMgQ09ORklHX0lORklOSUJBTkRfSVBP SUJfREVCVUdfREFUQSBpcyBub3Qgc2V0CitDT05GSUdfSU5GSU5JQkFORF9TUlA9bQorQ09ORklH X0lORklOSUJBTkRfU1JQVD1tCitDT05GSUdfSU5GSU5JQkFORF9JU0VSPW0KK0NPTkZJR19JTkZJ TklCQU5EX0lTRVJUPW0KK0NPTkZJR19JTkZJTklCQU5EX1JUUlM9bQorQ09ORklHX0lORklOSUJB TkRfUlRSU19DTElFTlQ9bQorQ09ORklHX0lORklOSUJBTkRfUlRSU19TRVJWRVI9bQorQ09ORklH X0VEQUNfU1VQUE9SVD15CitDT05GSUdfRURBQz15CitDT05GSUdfRURBQ19MRUdBQ1lfU1lTRlM9 eQorQ09ORklHX0VEQUNfREVCVUc9eQorQ09ORklHX0VEQUNfU0lGSVZFPXkKK0NPTkZJR19SVENf TElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19S VENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCitDT05GSUdfUlRDX1NZU1RPSEM9eQorQ09ORklHX1JU Q19TWVNUT0hDX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfUlRDX05WTUVNPXkKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19J TlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9 eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JU Q19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCitDT05GSUdf UlRDX0RSVl9BQkI1WkVTMz1tCitDT05GSUdfUlRDX0RSVl9BQkVPWjk9bQorQ09ORklHX1JUQ19E UlZfQUJYODBYPW0KK0NPTkZJR19SVENfRFJWX0RTMTMwNz1tCitDT05GSUdfUlRDX0RSVl9EUzEz MDdfQ0VOVFVSWT15CitDT05GSUdfUlRDX0RSVl9EUzEzNzQ9bQorQ09ORklHX1JUQ19EUlZfRFMx Mzc0X1dEVD15CitDT05GSUdfUlRDX0RSVl9EUzE2NzI9bQorIyBDT05GSUdfUlRDX0RSVl9IWU04 NTYzIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX01BWDY5MDA9bQorQ09ORklHX1JUQ19EUlZf TUFYNzc2ODY9bQorQ09ORklHX1JUQ19EUlZfTkNUMzAxOFk9bQorQ09ORklHX1JUQ19EUlZfUks4 MDg9bQorQ09ORklHX1JUQ19EUlZfUlM1QzM3Mj1tCitDT05GSUdfUlRDX0RSVl9JU0wxMjA4PW0K KyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwMjIgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfSVNM MTIwMjY9bQorQ09ORklHX1JUQ19EUlZfWDEyMDU9bQorQ09ORklHX1JUQ19EUlZfUENGODUyMz1t CitDT05GSUdfUlRDX0RSVl9QQ0Y4NTA2Mz1tCitDT05GSUdfUlRDX0RSVl9QQ0Y4NTM2Mz1tCitD T05GSUdfUlRDX0RSVl9QQ0Y4NTYzPW0KK0NPTkZJR19SVENfRFJWX1BDRjg1ODM9bQorQ09ORklH X1JUQ19EUlZfTTQxVDgwPW0KK0NPTkZJR19SVENfRFJWX000MVQ4MF9XRFQ9eQorQ09ORklHX1JU Q19EUlZfQkQ3MDUyOD1tCisjIENPTkZJR19SVENfRFJWX0JRMzJLIGlzIG5vdCBzZXQKK0NPTkZJ R19SVENfRFJWX1MzNTM5MEE9bQorQ09ORklHX1JUQ19EUlZfRk0zMTMwPW0KK0NPTkZJR19SVENf RFJWX1JYODAxMD1tCisjIENPTkZJR19SVENfRFJWX1JYODU4MSBpcyBub3Qgc2V0CisjIENPTkZJ R19SVENfRFJWX1JYODAyNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0VNMzAyNyBpcyBu b3Qgc2V0CitDT05GSUdfUlRDX0RSVl9SVjMwMjg9bQorQ09ORklHX1JUQ19EUlZfUlYzMDMyPW0K K0NPTkZJR19SVENfRFJWX1JWODgwMz15CitDT05GSUdfUlRDX0RSVl9TRDMwNzg9bQorCisjCisj IFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9NNDFUOTMgaXMgbm90IHNldAor IyBDT05GSUdfUlRDX0RSVl9NNDFUOTQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEz MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzMDUgaXMgbm90IHNldAorIyBDT05G SUdfUlRDX0RSVl9EUzEzNDMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNDcgaXMg bm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzOTAgaXMgbm90IHNldAorQ09ORklHX1JUQ19E UlZfTUFYNjkxNj1tCisjIENPTkZJR19SVENfRFJWX1I5NzAxIGlzIG5vdCBzZXQKKyMgQ09ORklH X1JUQ19EUlZfUlg0NTgxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBu b3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRD X0RSVl9QQ0YyMTIzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUNQNzk1IGlzIG5vdCBz ZXQKK0NPTkZJR19SVENfSTJDX0FORF9TUEk9eQorCisjCisjIFNQSSBhbmQgSTJDIFJUQyBkcml2 ZXJzCisjCitDT05GSUdfUlRDX0RSVl9EUzMyMzI9bQorQ09ORklHX1JUQ19EUlZfRFMzMjMyX0hX TU9OPXkKK0NPTkZJR19SVENfRFJWX1BDRjIxMjc9bQorIyBDT05GSUdfUlRDX0RSVl9SVjMwMjlD MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JYNjExMCBpcyBub3Qgc2V0CisKKyMKKyMg UGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMjg2IGlzIG5vdCBz ZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZf RFMxNTUzIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX0RTMTY4NV9GQU1JTFk9bQorQ09ORklH X1JUQ19EUlZfRFMxNjg1PXkKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjg5IGlzIG5vdCBzZXQKKyMg Q09ORklHX1JUQ19EUlZfRFMxNzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0 ODUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3ODg1IGlzIG5vdCBzZXQKKyMgQ09O RklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMyNDA0IGlz IG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX0VGST15CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4 IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklH X1JUQ19EUlZfTTQ4VDM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5v dCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTVNNNjI0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENf RFJWX0JRNDgwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JQNUMwMSBpcyBub3Qgc2V0 CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX1pZTlFN UD15CitDT05GSUdfUlRDX0RSVl9OVFhFQz1tCisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisj CitDT05GSUdfUlRDX0RSVl9DQURFTkNFPW0KK0NPTkZJR19SVENfRFJWX0ZUUlRDMDEwPW0KK0NP TkZJR19SVENfRFJWX1I3MzAxPW0KK0NPTkZJR19SVENfRFJWX0NQQ0FQPW0KKworIworIyBISUQg U2Vuc29yIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9ISURfU0VOU09SX1RJTUU9bQor Q09ORklHX1JUQ19EUlZfR09MREZJU0g9eQorQ09ORklHX1JUQ19EUlZfUE9MQVJGSVJFX1NPQz1t CitDT05GSUdfRE1BREVWSUNFUz15CisjIENPTkZJR19ETUFERVZJQ0VTX0RFQlVHIGlzIG5vdCBz ZXQKKworIworIyBETUEgRGV2aWNlcworIworQ09ORklHX0RNQV9FTkdJTkU9eQorQ09ORklHX0RN QV9WSVJUVUFMX0NIQU5ORUxTPW0KK0NPTkZJR19ETUFfT0Y9eQorQ09ORklHX0FMVEVSQV9NU0dE TUE9bQorQ09ORklHX0RXX0FYSV9ETUFDPW0KK0NPTkZJR19GU0xfRURNQT1tCisjIENPTkZJR19J TlRFTF9JRE1BNjQgaXMgbm90IHNldAorQ09ORklHX1BMWF9ETUE9bQorQ09ORklHX1hJTElOWF9a WU5RTVBfRFBETUE9bQorQ09ORklHX1FDT01fSElETUFfTUdNVD1tCitDT05GSUdfUUNPTV9ISURN QT1tCitDT05GSUdfRFdfRE1BQ19DT1JFPW0KKyMgQ09ORklHX0RXX0RNQUMgaXMgbm90IHNldAor Q09ORklHX0RXX0RNQUNfUENJPW0KK0NPTkZJR19EV19FRE1BPW0KK0NPTkZJR19EV19FRE1BX1BD SUU9bQorIyBDT05GSUdfU0ZfUERNQSBpcyBub3Qgc2V0CisKKyMKKyMgRE1BIENsaWVudHMKKyMK K0NPTkZJR19BU1lOQ19UWF9ETUE9eQorIyBDT05GSUdfRE1BVEVTVCBpcyBub3Qgc2V0CisKKyMK KyMgRE1BQlVGIG9wdGlvbnMKKyMKK0NPTkZJR19TWU5DX0ZJTEU9eQorQ09ORklHX1NXX1NZTkM9 eQorQ09ORklHX1VETUFCVUY9eQorIyBDT05GSUdfRE1BQlVGX01PVkVfTk9USUZZIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0RNQUJVRl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ETUFCVUZfU0VM RlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNQUJVRl9IRUFQUyBpcyBub3Qgc2V0CisjIENP TkZJR19ETUFCVUZfU1lTRlNfU1RBVFMgaXMgbm90IHNldAorIyBlbmQgb2YgRE1BQlVGIG9wdGlv bnMKKworQ09ORklHX0FVWERJU1BMQVk9eQorQ09ORklHX0NIQVJMQ0Q9bQorQ09ORklHX0xJTkVE SVNQPW0KK0NPTkZJR19IRDQ0NzgwX0NPTU1PTj1tCitDT05GSUdfSEQ0NDc4MD1tCisjIENPTkZJ R19JTUdfQVNDSUlfTENEIGlzIG5vdCBzZXQKK0NPTkZJR19IVDE2SzMzPW0KK0NPTkZJR19MQ0Qy Uz1tCitDT05GSUdfUEFSUE9SVF9QQU5FTD1tCitDT05GSUdfUEFORUxfUEFSUE9SVD0wCitDT05G SUdfUEFORUxfUFJPRklMRT01CisjIENPTkZJR19QQU5FTF9DSEFOR0VfTUVTU0FHRSBpcyBub3Qg c2V0CisjIENPTkZJR19DSEFSTENEX0JMX09GRiBpcyBub3Qgc2V0CisjIENPTkZJR19DSEFSTENE X0JMX09OIGlzIG5vdCBzZXQKK0NPTkZJR19DSEFSTENEX0JMX0ZMQVNIPXkKK0NPTkZJR19QQU5F TD1tCitDT05GSUdfVUlPPW0KK0NPTkZJR19VSU9fQ0lGPW0KK0NPTkZJR19VSU9fUERSVl9HRU5J UlE9bQorQ09ORklHX1VJT19ETUVNX0dFTklSUT1tCitDT05GSUdfVUlPX0FFQz1tCitDT05GSUdf VUlPX1NFUkNPUzM9bQorQ09ORklHX1VJT19QQ0lfR0VORVJJQz1tCitDT05GSUdfVUlPX05FVFg9 bQorIyBDT05GSUdfVUlPX1BSVVNTIGlzIG5vdCBzZXQKK0NPTkZJR19VSU9fTUY2MjQ9bQorQ09O RklHX1VJT19ERkw9bQorQ09ORklHX1ZGSU89bQorQ09ORklHX1ZGSU9fVklSUUZEPW0KKyMgQ09O RklHX1ZGSU9fTk9JT01NVSBpcyBub3Qgc2V0CitDT05GSUdfVkZJT19QQ0lfQ09SRT1tCitDT05G SUdfVkZJT19QQ0lfTU1BUD15CitDT05GSUdfVkZJT19QQ0lfSU5UWD15CitDT05GSUdfVkZJT19Q Q0k9bQorQ09ORklHX01MWDVfVkZJT19QQ0k9bQorQ09ORklHX1ZGSU9fTURFVj1tCitDT05GSUdf SVJRX0JZUEFTU19NQU5BR0VSPW0KK0NPTkZJR19WSVJUX0RSSVZFUlM9eQorQ09ORklHX1ZJUlRJ T19BTkNIT1I9eQorQ09ORklHX1ZJUlRJTz15CitDT05GSUdfVklSVElPX1BDSV9MSUI9eQorQ09O RklHX1ZJUlRJT19QQ0lfTElCX0xFR0FDWT15CitDT05GSUdfVklSVElPX01FTlU9eQorQ09ORklH X1ZJUlRJT19QQ0k9eQorQ09ORklHX1ZJUlRJT19QQ0lfTEVHQUNZPXkKK0NPTkZJR19WSVJUSU9f VkRQQT1tCitDT05GSUdfVklSVElPX1BNRU09bQorQ09ORklHX1ZJUlRJT19CQUxMT09OPW0KK0NP TkZJR19WSVJUSU9fSU5QVVQ9bQorQ09ORklHX1ZJUlRJT19NTUlPPW0KKyMgQ09ORklHX1ZJUlRJ T19NTUlPX0NNRExJTkVfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfVklSVElPX0RNQV9TSEFS RURfQlVGRkVSPW0KK0NPTkZJR19WRFBBPW0KK0NPTkZJR19WRFBBX1NJTT1tCitDT05GSUdfVkRQ QV9TSU1fTkVUPW0KK0NPTkZJR19WRFBBX1NJTV9CTE9DSz1tCitDT05GSUdfVkRQQV9VU0VSPW0K K0NPTkZJR19JRkNWRj1tCitDT05GSUdfTUxYNV9WRFBBPXkKK0NPTkZJR19NTFg1X1ZEUEFfTkVU PW0KK0NPTkZJR19WUF9WRFBBPW0KK0NPTkZJR19WSE9TVF9JT1RMQj1tCitDT05GSUdfVkhPU1Rf UklORz1tCitDT05GSUdfVkhPU1Q9bQorQ09ORklHX1ZIT1NUX01FTlU9eQorQ09ORklHX1ZIT1NU X05FVD1tCitDT05GSUdfVkhPU1RfU0NTST1tCitDT05GSUdfVkhPU1RfVlNPQ0s9bQorQ09ORklH X1ZIT1NUX1ZEUEE9bQorIyBDT05GSUdfVkhPU1RfQ1JPU1NfRU5ESUFOX0xFR0FDWSBpcyBub3Qg c2V0CisKKyMKKyMgTWljcm9zb2Z0IEh5cGVyLVYgZ3Vlc3Qgc3VwcG9ydAorIworIyBlbmQgb2Yg TWljcm9zb2Z0IEh5cGVyLVYgZ3Vlc3Qgc3VwcG9ydAorCisjIENPTkZJR19HUkVZQlVTIGlzIG5v dCBzZXQKK0NPTkZJR19DT01FREk9bQorIyBDT05GSUdfQ09NRURJX0RFQlVHIGlzIG5vdCBzZXQK K0NPTkZJR19DT01FRElfREVGQVVMVF9CVUZfU0laRV9LQj0yMDQ4CitDT05GSUdfQ09NRURJX0RF RkFVTFRfQlVGX01BWFNJWkVfS0I9MjA0ODAKKyMgQ09ORklHX0NPTUVESV9NSVNDX0RSSVZFUlMg aXMgbm90IHNldAorIyBDT05GSUdfQ09NRURJX0lTQV9EUklWRVJTIGlzIG5vdCBzZXQKKyMgQ09O RklHX0NPTUVESV9QQ0lfRFJJVkVSUyBpcyBub3Qgc2V0CitDT05GSUdfQ09NRURJX1BDTUNJQV9E UklWRVJTPW0KK0NPTkZJR19DT01FRElfQ0JfREFTMTZfQ1M9bQorQ09ORklHX0NPTUVESV9EQVMw OF9DUz1tCitDT05GSUdfQ09NRURJX05JX0RBUV83MDBfQ1M9bQorQ09ORklHX0NPTUVESV9OSV9E QVFfRElPMjRfQ1M9bQorQ09ORklHX0NPTUVESV9OSV9MQUJQQ19DUz1tCitDT05GSUdfQ09NRURJ X05JX01JT19DUz1tCitDT05GSUdfQ09NRURJX1FVQVRFQ0hfREFRUF9DUz1tCitDT05GSUdfQ09N RURJX1VTQl9EUklWRVJTPW0KK0NPTkZJR19DT01FRElfRFQ5ODEyPW0KK0NPTkZJR19DT01FRElf TklfVVNCNjUwMT1tCitDT05GSUdfQ09NRURJX1VTQkRVWD1tCitDT05GSUdfQ09NRURJX1VTQkRV WEZBU1Q9bQorQ09ORklHX0NPTUVESV9VU0JEVVhTSUdNQT1tCitDT05GSUdfQ09NRURJX1ZNSzgw WFg9bQorQ09ORklHX0NPTUVESV84MjU0PW0KK0NPTkZJR19DT01FRElfODI1NT1tCitDT05GSUdf Q09NRURJXzgyNTVfU0E9bQorQ09ORklHX0NPTUVESV9LQ09NRURJTElCPW0KK0NPTkZJR19DT01F RElfREFTMDg9bQorQ09ORklHX0NPTUVESV9OSV9MQUJQQz1tCitDT05GSUdfQ09NRURJX05JX1RJ Tz1tCitDT05GSUdfQ09NRURJX05JX1JPVVRJTkc9bQorIyBDT05GSUdfQ09NRURJX1RFU1RTIGlz IG5vdCBzZXQKK0NPTkZJR19TVEFHSU5HPXkKK0NPTkZJR19QUklTTTJfVVNCPW0KK0NPTkZJR19S VEw4MTkyVT1tCitDT05GSUdfUlRMTElCPW0KK0NPTkZJR19SVExMSUJfQ1JZUFRPX0NDTVA9bQor Q09ORklHX1JUTExJQl9DUllQVE9fVEtJUD1tCitDT05GSUdfUlRMTElCX0NSWVBUT19XRVA9bQor Q09ORklHX1JUTDgxOTJFPW0KK0NPTkZJR19SVEw4NzIzQlM9bQorQ09ORklHX1I4NzEyVT1tCitD T05GSUdfUjgxODhFVT1tCitDT05GSUdfUlRTNTIwOD1tCitDT05GSUdfVlQ2NjU1PW0KK0NPTkZJ R19WVDY2NTY9bQorCisjCisjIElJTyBzdGFnaW5nIGRyaXZlcnMKKyMKKworIworIyBBY2NlbGVy b21ldGVycworIworIyBDT05GSUdfQURJUzE2MjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FESVMx NjI0MCBpcyBub3Qgc2V0CisjIGVuZCBvZiBBY2NlbGVyb21ldGVycworCisjCisjIEFuYWxvZyB0 byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKKyMgQ09ORklHX0FENzgxNiBpcyBub3Qgc2V0CisjIGVu ZCBvZiBBbmFsb2cgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisKKyMKKyMgQW5hbG9nIGRpZ2l0YWwg YmktZGlyZWN0aW9uIGNvbnZlcnRlcnMKKyMKKyMgQ09ORklHX0FEVDczMTYgaXMgbm90IHNldAor IyBlbmQgb2YgQW5hbG9nIGRpZ2l0YWwgYmktZGlyZWN0aW9uIGNvbnZlcnRlcnMKKworIworIyBE aXJlY3QgRGlnaXRhbCBTeW50aGVzaXMKKyMKKyMgQ09ORklHX0FEOTgzMiBpcyBub3Qgc2V0Cisj IENPTkZJR19BRDk4MzQgaXMgbm90IHNldAorIyBlbmQgb2YgRGlyZWN0IERpZ2l0YWwgU3ludGhl c2lzCisKKyMKKyMgTmV0d29yayBBbmFseXplciwgSW1wZWRhbmNlIENvbnZlcnRlcnMKKyMKKyMg Q09ORklHX0FENTkzMyBpcyBub3Qgc2V0CisjIGVuZCBvZiBOZXR3b3JrIEFuYWx5emVyLCBJbXBl ZGFuY2UgQ29udmVydGVycworCisjCisjIEFjdGl2ZSBlbmVyZ3kgbWV0ZXJpbmcgSUMKKyMKKyMg Q09ORklHX0FERTc4NTQgaXMgbm90IHNldAorIyBlbmQgb2YgQWN0aXZlIGVuZXJneSBtZXRlcmlu ZyBJQworCisjCisjIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVycworIworIyBDT05GSUdf QUQyUzEyMTAgaXMgbm90IHNldAorIyBlbmQgb2YgUmVzb2x2ZXIgdG8gZGlnaXRhbCBjb252ZXJ0 ZXJzCisjIGVuZCBvZiBJSU8gc3RhZ2luZyBkcml2ZXJzCisKK0NPTkZJR19GQl9TTTc1MD1tCitD T05GSUdfU1RBR0lOR19NRURJQT15CitDT05GSUdfVklERU9fTUFYOTY3MTI9bQorIyBDT05GSUdf U1RBR0lOR19NRURJQV9ERVBSRUNBVEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NUQUdJTkdfQk9B UkQgaXMgbm90IHNldAorQ09ORklHX0xURV9HRE03MjRYPW0KK0NPTkZJR19GQl9URlQ9bQorQ09O RklHX0ZCX1RGVF9BR00xMjY0S19GTD1tCitDT05GSUdfRkJfVEZUX0JENjYzNDc0PW0KK0NPTkZJ R19GQl9URlRfSFg4MzQwQk49bQorQ09ORklHX0ZCX1RGVF9IWDgzNDdEPW0KK0NPTkZJR19GQl9U RlRfSFg4MzUzRD1tCitDT05GSUdfRkJfVEZUX0hYODM1N0Q9bQorQ09ORklHX0ZCX1RGVF9JTEk5 MTYzPW0KK0NPTkZJR19GQl9URlRfSUxJOTMyMD1tCitDT05GSUdfRkJfVEZUX0lMSTkzMjU9bQor Q09ORklHX0ZCX1RGVF9JTEk5MzQwPW0KK0NPTkZJR19GQl9URlRfSUxJOTM0MT1tCitDT05GSUdf RkJfVEZUX0lMSTk0ODE9bQorQ09ORklHX0ZCX1RGVF9JTEk5NDg2PW0KK0NPTkZJR19GQl9URlRf UENEODU0ND1tCitDT05GSUdfRkJfVEZUX1JBODg3NT1tCitDT05GSUdfRkJfVEZUX1M2RDAyQTE9 bQorQ09ORklHX0ZCX1RGVF9TNkQxMTIxPW0KK0NPTkZJR19GQl9URlRfU0VQUzUyNT1tCitDT05G SUdfRkJfVEZUX1NIMTEwNj1tCitDT05GSUdfRkJfVEZUX1NTRDEyODk9bQorQ09ORklHX0ZCX1RG VF9TU0QxMzA1PW0KK0NPTkZJR19GQl9URlRfU1NEMTMwNj1tCitDT05GSUdfRkJfVEZUX1NTRDEz MzE9bQorQ09ORklHX0ZCX1RGVF9TU0QxMzUxPW0KK0NPTkZJR19GQl9URlRfU1Q3NzM1Uj1tCitD T05GSUdfRkJfVEZUX1NUNzc4OVY9bQorQ09ORklHX0ZCX1RGVF9USU5ZTENEPW0KK0NPTkZJR19G Ql9URlRfVExTODIwND1tCitDT05GSUdfRkJfVEZUX1VDMTYxMT1tCitDT05GSUdfRkJfVEZUX1VD MTcwMT1tCitDT05GSUdfRkJfVEZUX1VQRDE2MTcwND1tCitDT05GSUdfS1M3MDEwPW0KK0NPTkZJ R19QSTQzMz1tCitDT05GSUdfWElMX0FYSVNfRklGTz1tCitDT05GSUdfRklFTERCVVNfREVWPW0K K0NPTkZJR19ITVNfQU5ZQlVTU19CVVM9bQorQ09ORklHX0FSQ1hfQU5ZQlVTX0NPTlRST0xMRVI9 bQorQ09ORklHX0hNU19QUk9GSU5FVD1tCitDT05GSUdfUUxHRT1tCisjIENPTkZJR19WTUVfQlVT IGlzIG5vdCBzZXQKK0NPTkZJR19HT0xERklTSD15CitDT05GSUdfR09MREZJU0hfUElQRT1tCitD T05GSUdfSEFWRV9DTEs9eQorQ09ORklHX0hBVkVfQ0xLX1BSRVBBUkU9eQorQ09ORklHX0NPTU1P Tl9DTEs9eQorQ09ORklHX0xNSzA0ODMyPW0KK0NPTkZJR19DT01NT05fQ0xLX01BWDc3Njg2PW0K K0NPTkZJR19DT01NT05fQ0xLX01BWDk0ODU9bQorQ09ORklHX0NPTU1PTl9DTEtfUks4MDg9bQor Q09ORklHX0NPTU1PTl9DTEtfU0k1MzQxPW0KKyMgQ09ORklHX0NPTU1PTl9DTEtfU0k1MzUxIGlz IG5vdCBzZXQKK0NPTkZJR19DT01NT05fQ0xLX1NJNTE0PW0KK0NPTkZJR19DT01NT05fQ0xLX1NJ NTQ0PW0KKyMgQ09ORklHX0NPTU1PTl9DTEtfU0k1NzAgaXMgbm90IHNldAorQ09ORklHX0NPTU1P Tl9DTEtfQ0RDRTcwNj1tCitDT05GSUdfQ09NTU9OX0NMS19DRENFOTI1PW0KK0NPTkZJR19DT01N T05fQ0xLX0NTMjAwMF9DUD1tCitDT05GSUdfQ09NTU9OX0NMS19BWElfQ0xLR0VOPW0KK0NPTkZJ R19DT01NT05fQ0xLX0xPQ0hOQUdBUj1tCitDT05GSUdfQ09NTU9OX0NMS19QV009bQorQ09ORklH X0NPTU1PTl9DTEtfUlM5X1BDSUU9bQorQ09ORklHX0NPTU1PTl9DTEtfVkM1PW0KK0NPTkZJR19D T01NT05fQ0xLX1ZDNz1tCitDT05GSUdfQ09NTU9OX0NMS19CRDcxOFhYPW0KK0NPTkZJR19DT01N T05fQ0xLX0ZJWEVEX01NSU89eQorQ09ORklHX0NMS19BTkFMT0dCSVRTX1dSUExMX0NMTjI4SFBD PXkKK0NPTkZJR19NQ0hQX0NMS19NUEZTPXkKK0NPTkZJR19DTEtfU0lGSVZFPXkKK0NPTkZJR19D TEtfU0lGSVZFX1BSQ0k9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxWDA9eQorQ09ORklHX0NM S19TVEFSRklWRV9KSDcxMDA9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMDBfQVVESU89eQor Q09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfU1lTPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3 MTEwX0FPTj15CitDT05GSUdfWElMSU5YX1ZDVT1tCisjIENPTkZJR19DT01NT05fQ0xLX1hMTlhf Q0xLV1pSRCBpcyBub3Qgc2V0CitDT05GSUdfSFdTUElOTE9DSz15CisKKyMKKyMgQ2xvY2sgU291 cmNlIGRyaXZlcnMKKyMKK0NPTkZJR19USU1FUl9PRj15CitDT05GSUdfVElNRVJfUFJPQkU9eQor Q09ORklHX1JJU0NWX1RJTUVSPXkKKyMgQ09ORklHX01JQ1JPQ0hJUF9QSVQ2NEIgaXMgbm90IHNl dAorIyBlbmQgb2YgQ2xvY2sgU291cmNlIGRyaXZlcnMKKworQ09ORklHX01BSUxCT1g9eQorQ09O RklHX1BMQVRGT1JNX01IVT1tCisjIENPTkZJR19BTFRFUkFfTUJPWCBpcyBub3Qgc2V0CisjIENP TkZJR19NQUlMQk9YX1RFU1QgaXMgbm90IHNldAorQ09ORklHX1BPTEFSRklSRV9TT0NfTUFJTEJP WD1tCitDT05GSUdfSU9NTVVfSU9WQT1tCitDT05GSUdfSU9NTVVfQVBJPXkKK0NPTkZJR19JT01N VV9TVVBQT1JUPXkKKworIworIyBHZW5lcmljIElPTU1VIFBhZ2V0YWJsZSBTdXBwb3J0CisjCisj IGVuZCBvZiBHZW5lcmljIElPTU1VIFBhZ2V0YWJsZSBTdXBwb3J0CisKKyMgQ09ORklHX0lPTU1V X0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfSU9NTVVfREVGQVVMVF9ETUFfU1RSSUNUIGlz IG5vdCBzZXQKKyMgQ09ORklHX0lPTU1VX0RFRkFVTFRfRE1BX0xBWlkgaXMgbm90IHNldAorQ09O RklHX0lPTU1VX0RFRkFVTFRfUEFTU1RIUk9VR0g9eQorQ09ORklHX09GX0lPTU1VPXkKKworIwor IyBSZW1vdGVwcm9jIGRyaXZlcnMKKyMKK0NPTkZJR19SRU1PVEVQUk9DPXkKK0NPTkZJR19SRU1P VEVQUk9DX0NERVY9eQorIyBlbmQgb2YgUmVtb3RlcHJvYyBkcml2ZXJzCisKKyMKKyMgUnBtc2cg ZHJpdmVycworIworQ09ORklHX1JQTVNHPW0KK0NPTkZJR19SUE1TR19DSEFSPW0KK0NPTkZJR19S UE1TR19DVFJMPW0KK0NPTkZJR19SUE1TR19OUz1tCitDT05GSUdfUlBNU0dfUUNPTV9HTElOSz1t CitDT05GSUdfUlBNU0dfUUNPTV9HTElOS19SUE09bQorQ09ORklHX1JQTVNHX1ZJUlRJTz1tCisj IGVuZCBvZiBScG1zZyBkcml2ZXJzCisKK0NPTkZJR19TT1VORFdJUkU9eQorCisjCisjIFNvdW5k V2lyZSBEZXZpY2VzCisjCitDT05GSUdfU09VTkRXSVJFX1FDT009bQorCisjCisjIFNPQyAoU3lz dGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMKKyMKKworIworIyBBbWxvZ2ljIFNvQyBkcml2 ZXJzCisjCisjIGVuZCBvZiBBbWxvZ2ljIFNvQyBkcml2ZXJzCisKKyMKKyMgQnJvYWRjb20gU29D IGRyaXZlcnMKKyMKKyMgZW5kIG9mIEJyb2FkY29tIFNvQyBkcml2ZXJzCisKKyMKKyMgTlhQL0Zy ZWVzY2FsZSBRb3JJUSBTb0MgZHJpdmVycworIworIyBlbmQgb2YgTlhQL0ZyZWVzY2FsZSBRb3JJ USBTb0MgZHJpdmVycworCisjCisjIGZ1aml0c3UgU29DIGRyaXZlcnMKKyMKKyMgZW5kIG9mIGZ1 aml0c3UgU29DIGRyaXZlcnMKKworIworIyBpLk1YIFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBp Lk1YIFNvQyBkcml2ZXJzCisKKyMKKyMgRW5hYmxlIExpdGVYIFNvQyBCdWlsZGVyIHNwZWNpZmlj IGRyaXZlcnMKKyMKKyMgQ09ORklHX0xJVEVYX1NPQ19DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIEVuYWJsZSBMaXRlWCBTb0MgQnVpbGRlciBzcGVjaWZpYyBkcml2ZXJzCisKK0NPTkZJ R19QT0xBUkZJUkVfU09DX1NZU19DVFJMPW0KKworIworIyBRdWFsY29tbSBTb0MgZHJpdmVycwor IworQ09ORklHX1FDT01fUU1JX0hFTFBFUlM9bQorIyBlbmQgb2YgUXVhbGNvbW0gU29DIGRyaXZl cnMKKworQ09ORklHX1NJRklWRV9DQ0FDSEU9eQorQ09ORklHX1NPQ19UST15CisKKyMKKyMgWGls aW54IFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBYaWxpbnggU29DIGRyaXZlcnMKKyMgZW5kIG9m IFNPQyAoU3lzdGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMKKworQ09ORklHX1BNX0RFVkZS RVE9eQorCisjCisjIERFVkZSRVEgR292ZXJub3JzCisjCitDT05GSUdfREVWRlJFUV9HT1ZfU0lN UExFX09OREVNQU5EPXkKK0NPTkZJR19ERVZGUkVRX0dPVl9QRVJGT1JNQU5DRT1tCitDT05GSUdf REVWRlJFUV9HT1ZfUE9XRVJTQVZFPW0KK0NPTkZJR19ERVZGUkVRX0dPVl9VU0VSU1BBQ0U9bQor Q09ORklHX0RFVkZSRVFfR09WX1BBU1NJVkU9eQorCisjCisjIERFVkZSRVEgRHJpdmVycworIwor Q09ORklHX1BNX0RFVkZSRVFfRVZFTlQ9eQorQ09ORklHX0VYVENPTj15CisKKyMKKyMgRXh0Y29u IERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19FWFRDT05fQURDX0pBQ0sgaXMgbm90IHNldAor Q09ORklHX0VYVENPTl9GU0E5NDgwPW0KK0NPTkZJR19FWFRDT05fR1BJTz1tCitDT05GSUdfRVhU Q09OX01BWDMzNTU9bQorQ09ORklHX0VYVENPTl9QVE41MTUwPW0KKyMgQ09ORklHX0VYVENPTl9S VDg5NzNBIGlzIG5vdCBzZXQKK0NPTkZJR19FWFRDT05fU001NTAyPW0KKyMgQ09ORklHX0VYVENP Tl9VU0JfR1BJTyBpcyBub3Qgc2V0CitDT05GSUdfRVhUQ09OX1VTQkNfVFVTQjMyMD1tCitDT05G SUdfTUVNT1JZPXkKK0NPTkZJR19GUEdBX0RGTF9FTUlGPW0KK0NPTkZJR19JSU89bQorQ09ORklH X0lJT19CVUZGRVI9eQorQ09ORklHX0lJT19CVUZGRVJfQ0I9bQorQ09ORklHX0lJT19CVUZGRVJf RE1BPW0KK0NPTkZJR19JSU9fQlVGRkVSX0RNQUVOR0lORT1tCitDT05GSUdfSUlPX0JVRkZFUl9I V19DT05TVU1FUj1tCitDT05GSUdfSUlPX0tGSUZPX0JVRj1tCitDT05GSUdfSUlPX1RSSUdHRVJF RF9CVUZGRVI9bQorQ09ORklHX0lJT19DT05GSUdGUz1tCitDT05GSUdfSUlPX1RSSUdHRVI9eQor Q09ORklHX0lJT19DT05TVU1FUlNfUEVSX1RSSUdHRVI9MgorQ09ORklHX0lJT19TV19ERVZJQ0U9 bQorQ09ORklHX0lJT19TV19UUklHR0VSPW0KK0NPTkZJR19JSU9fVFJJR0dFUkVEX0VWRU5UPW0K KworIworIyBBY2NlbGVyb21ldGVycworIworIyBDT05GSUdfQURJUzE2MjAxIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FESVMxNjIwOSBpcyBub3Qgc2V0CitDT05GSUdfQURYTDMxMz1tCitDT05GSUdf QURYTDMxM19JMkM9bQorQ09ORklHX0FEWEwzMTNfU1BJPW0KK0NPTkZJR19BRFhMMzU1PW0KK0NP TkZJR19BRFhMMzU1X0kyQz1tCitDT05GSUdfQURYTDM1NV9TUEk9bQorQ09ORklHX0FEWEwzNjc9 bQorQ09ORklHX0FEWEwzNjdfU1BJPW0KK0NPTkZJR19BRFhMMzY3X0kyQz1tCitDT05GSUdfQURY TDM3Mj1tCitDT05GSUdfQURYTDM3Ml9TUEk9bQorQ09ORklHX0FEWEwzNzJfSTJDPW0KK0NPTkZJ R19CTUEyMjA9bQorQ09ORklHX0JNQTQwMD1tCitDT05GSUdfQk1BNDAwX0kyQz1tCitDT05GSUdf Qk1BNDAwX1NQST1tCitDT05GSUdfQk1DMTUwX0FDQ0VMPW0KK0NPTkZJR19CTUMxNTBfQUNDRUxf STJDPW0KK0NPTkZJR19CTUMxNTBfQUNDRUxfU1BJPW0KK0NPTkZJR19CTUkwODhfQUNDRUw9bQor Q09ORklHX0JNSTA4OF9BQ0NFTF9TUEk9bQorQ09ORklHX0RBMjgwPW0KK0NPTkZJR19EQTMxMT1t CitDT05GSUdfRE1BUkQwNj1tCitDT05GSUdfRE1BUkQwOT1tCitDT05GSUdfRE1BUkQxMD1tCitD T05GSUdfRlhMUzg5NjJBRj1tCitDT05GSUdfRlhMUzg5NjJBRl9JMkM9bQorQ09ORklHX0ZYTFM4 OTYyQUZfU1BJPW0KK0NPTkZJR19ISURfU0VOU09SX0FDQ0VMXzNEPW0KKyMgQ09ORklHX0tYU0Q5 IGlzIG5vdCBzZXQKKyMgQ09ORklHX0tYQ0pLMTAxMyBpcyBub3Qgc2V0CitDT05GSUdfTUMzMjMw PW0KK0NPTkZJR19NTUE3NDU1PW0KK0NPTkZJR19NTUE3NDU1X0kyQz1tCitDT05GSUdfTU1BNzQ1 NV9TUEk9bQorQ09ORklHX01NQTc2NjA9bQorIyBDT05GSUdfTU1BODQ1MiBpcyBub3Qgc2V0CitD T05GSUdfTU1BOTU1MV9DT1JFPW0KK0NPTkZJR19NTUE5NTUxPW0KK0NPTkZJR19NTUE5NTUzPW0K K0NPTkZJR19NU0EzMTE9bQorQ09ORklHX01YQzQwMDU9bQorQ09ORklHX01YQzYyNTU9bQorIyBD T05GSUdfU0NBMzAwMCBpcyBub3Qgc2V0CitDT05GSUdfU0NBMzMwMD1tCitDT05GSUdfU1RLODMx Mj1tCitDT05GSUdfU1RLOEJBNTA9bQorIyBlbmQgb2YgQWNjZWxlcm9tZXRlcnMKKworIworIyBB bmFsb2cgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisjCitDT05GSUdfQURfU0lHTUFfREVMVEE9bQor Q09ORklHX0FENzA5MVI1PW0KK0NPTkZJR19BRDcxMjQ9bQorIyBDT05GSUdfQUQ3MTkyIGlzIG5v dCBzZXQKKyMgQ09ORklHX0FENzI2NiBpcyBub3Qgc2V0CisjIENPTkZJR19BRDcyODAgaXMgbm90 IHNldAorIyBDT05GSUdfQUQ3MjkxIGlzIG5vdCBzZXQKK0NPTkZJR19BRDcyOTI9bQorIyBDT05G SUdfQUQ3Mjk4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzQ3NiBpcyBub3Qgc2V0CitDT05GSUdf QUQ3NjA2PW0KK0NPTkZJR19BRDc2MDZfSUZBQ0VfUEFSQUxMRUw9bQorQ09ORklHX0FENzYwNl9J RkFDRV9TUEk9bQorQ09ORklHX0FENzc2Nj1tCitDT05GSUdfQUQ3NzY4XzE9bQorIyBDT05GSUdf QUQ3NzgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzc5MSBpcyBub3Qgc2V0CisjIENPTkZJR19B RDc3OTMgaXMgbm90IHNldAorIyBDT05GSUdfQUQ3ODg3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FE NzkyMyBpcyBub3Qgc2V0CitDT05GSUdfQUQ3OTQ5PW0KKyMgQ09ORklHX0FENzk5WCBpcyBub3Qg c2V0CitDT05GSUdfQUQ5NDY3PW0KK0NPTkZJR19BRElfQVhJX0FEQz1tCitDT05GSUdfQVhQMjBY X0FEQz1tCitDT05GSUdfQVhQMjg4X0FEQz1tCisjIENPTkZJR19DQzEwMDAxX0FEQyBpcyBub3Qg c2V0CitDT05GSUdfQ1BDQVBfQURDPW0KK0NPTkZJR19ETE4yX0FEQz1tCitDT05GSUdfRU5WRUxP UEVfREVURUNUT1I9bQorQ09ORklHX0hJODQzNT1tCitDT05GSUdfSFg3MTE9bQorQ09ORklHX0lO QTJYWF9BREM9bQorQ09ORklHX0xUQzI0NzE9bQorQ09ORklHX0xUQzI0ODU9bQorQ09ORklHX0xU QzI0OTY9bQorQ09ORklHX0xUQzI0OTc9bQorIyBDT05GSUdfTUFYMTAyNyBpcyBub3Qgc2V0CitD T05GSUdfTUFYMTExMDA9bQorQ09ORklHX01BWDExMTg9bQorQ09ORklHX01BWDExMjA1PW0KK0NP TkZJR19NQVgxMjQxPW0KKyMgQ09ORklHX01BWDEzNjMgaXMgbm90IHNldAorQ09ORklHX01BWDk2 MTE9bQorIyBDT05GSUdfTUNQMzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19NQ1AzNDIyIGlzIG5v dCBzZXQKK0NPTkZJR19NQ1AzOTExPW0KK0NPTkZJR19NUDI2MjlfQURDPW0KKyMgQ09ORklHX05B VTc4MDIgaXMgbm90IHNldAorQ09ORklHX1FDT01fVkFEQ19DT01NT049bQorIyBDT05GSUdfUUNP TV9TUE1JX0lBREMgaXMgbm90IHNldAorIyBDT05GSUdfUUNPTV9TUE1JX1ZBREMgaXMgbm90IHNl dAorQ09ORklHX1FDT01fU1BNSV9BREM1PW0KK0NPTkZJR19SSUNIVEVLX1JUUTYwNTY9bQorQ09O RklHX1NEX0FEQ19NT0RVTEFUT1I9bQorIyBDT05GSUdfVElfQURDMDgxQyBpcyBub3Qgc2V0CitD T05GSUdfVElfQURDMDgzMj1tCitDT05GSUdfVElfQURDMDg0UzAyMT1tCitDT05GSUdfVElfQURD MTIxMzg9bQorQ09ORklHX1RJX0FEQzEwOFMxMDI9bQorIyBDT05GSUdfVElfQURDMTI4UzA1MiBp cyBub3Qgc2V0CitDT05GSUdfVElfQURDMTYxUzYyNj1tCitDT05GSUdfVElfQURTMTAxNT1tCitD T05GSUdfVElfQURTNzk1MD1tCitDT05GSUdfVElfQURTODM0ND1tCisjIENPTkZJR19USV9BRFM4 Njg4IGlzIG5vdCBzZXQKK0NPTkZJR19USV9BRFMxMjRTMDg9bQorQ09ORklHX1RJX0FEUzEzMUUw OD1tCisjIENPTkZJR19USV9BTTMzNVhfQURDIGlzIG5vdCBzZXQKK0NPTkZJR19USV9UTEM0NTQx PW0KK0NPTkZJR19USV9UU0MyMDQ2PW0KKyMgQ09ORklHX1ZGNjEwX0FEQyBpcyBub3Qgc2V0Cisj IENPTkZJR19WSVBFUkJPQVJEX0FEQyBpcyBub3Qgc2V0CitDT05GSUdfWElMSU5YX1hBREM9bQor IyBlbmQgb2YgQW5hbG9nIHRvIGRpZ2l0YWwgY29udmVydGVycworCisjCisjIEFuYWxvZyB0byBk aWdpdGFsIGFuZCBkaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCisjCitDT05GSUdfQUQ3NDQx M1I9bQorIyBlbmQgb2YgQW5hbG9nIHRvIGRpZ2l0YWwgYW5kIGRpZ2l0YWwgdG8gYW5hbG9nIGNv bnZlcnRlcnMKKworIworIyBBbmFsb2cgRnJvbnQgRW5kcworIworQ09ORklHX0lJT19SRVNDQUxF PW0KKyMgZW5kIG9mIEFuYWxvZyBGcm9udCBFbmRzCisKKyMKKyMgQW1wbGlmaWVycworIworIyBD T05GSUdfQUQ4MzY2IGlzIG5vdCBzZXQKK0NPTkZJR19BREE0MjUwPW0KK0NPTkZJR19ITUM0MjU9 bQorIyBlbmQgb2YgQW1wbGlmaWVycworCisjCisjIENhcGFjaXRhbmNlIHRvIGRpZ2l0YWwgY29u dmVydGVycworIworIyBDT05GSUdfQUQ3MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzc0NiBp cyBub3Qgc2V0CisjIGVuZCBvZiBDYXBhY2l0YW5jZSB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKwor IworIyBDaGVtaWNhbCBTZW5zb3JzCisjCitDT05GSUdfQVRMQVNfUEhfU0VOU09SPW0KK0NPTkZJ R19BVExBU19FWk9fU0VOU09SPW0KK0NPTkZJR19CTUU2ODA9bQorQ09ORklHX0JNRTY4MF9JMkM9 bQorQ09ORklHX0JNRTY4MF9TUEk9bQorQ09ORklHX0NDUzgxMT1tCitDT05GSUdfSUFRQ09SRT1t CitDT05GSUdfUE1TNzAwMz1tCitDT05GSUdfU0NEMzBfQ09SRT1tCitDT05GSUdfU0NEMzBfSTJD PW0KK0NPTkZJR19TQ0QzMF9TRVJJQUw9bQorQ09ORklHX1NDRDRYPW0KKyMgQ09ORklHX1NFTlNJ UklPTl9TR1AzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TSVJJT05fU0dQNDAgaXMgbm90IHNl dAorQ09ORklHX1NQUzMwPW0KK0NPTkZJR19TUFMzMF9JMkM9bQorQ09ORklHX1NQUzMwX1NFUklB TD1tCitDT05GSUdfU0VOU0VBSVJfU1VOUklTRV9DTzI9bQorQ09ORklHX1ZaODlYPW0KKyMgZW5k IG9mIENoZW1pY2FsIFNlbnNvcnMKKworIworIyBIaWQgU2Vuc29yIElJTyBDb21tb24KKyMKK0NP TkZJR19ISURfU0VOU09SX0lJT19DT01NT049bQorQ09ORklHX0hJRF9TRU5TT1JfSUlPX1RSSUdH RVI9bQorIyBlbmQgb2YgSGlkIFNlbnNvciBJSU8gQ29tbW9uCisKK0NPTkZJR19JSU9fTVNfU0VO U09SU19JMkM9bQorCisjCisjIElJTyBTQ01JIFNlbnNvcnMKKyMKKyMgZW5kIG9mIElJTyBTQ01J IFNlbnNvcnMKKworIworIyBTU1AgU2Vuc29yIENvbW1vbgorIworIyBDT05GSUdfSUlPX1NTUF9T RU5TT1JIVUIgaXMgbm90IHNldAorIyBlbmQgb2YgU1NQIFNlbnNvciBDb21tb24KKworQ09ORklH X0lJT19TVF9TRU5TT1JTX0kyQz1tCitDT05GSUdfSUlPX1NUX1NFTlNPUlNfU1BJPW0KK0NPTkZJ R19JSU9fU1RfU0VOU09SU19DT1JFPW0KKworIworIyBEaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0 ZXJzCisjCitDT05GSUdfQUQzNTUyUj1tCisjIENPTkZJR19BRDUwNjQgaXMgbm90IHNldAorIyBD T05GSUdfQUQ1MzYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTM4MCBpcyBub3Qgc2V0CisjIENP TkZJR19BRDU0MjEgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1NDQ2IGlzIG5vdCBzZXQKKyMgQ09O RklHX0FENTQ0OSBpcyBub3Qgc2V0CitDT05GSUdfQUQ1NTkyUl9CQVNFPW0KK0NPTkZJR19BRDU1 OTJSPW0KKyMgQ09ORklHX0FENTU5M1IgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1NTA0IGlzIG5v dCBzZXQKKyMgQ09ORklHX0FENTYyNFJfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19MVEMyNjg4PW0K K0NPTkZJR19BRDU2ODY9bQorQ09ORklHX0FENTY4Nl9TUEk9bQorQ09ORklHX0FENTY5Nl9JMkM9 bQorIyBDT05GSUdfQUQ1NzU1IGlzIG5vdCBzZXQKK0NPTkZJR19BRDU3NTg9bQorQ09ORklHX0FE NTc2MT1tCisjIENPTkZJR19BRDU3NjQgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1NzY2IGlzIG5v dCBzZXQKK0NPTkZJR19BRDU3NzBSPW0KKyMgQ09ORklHX0FENTc5MSBpcyBub3Qgc2V0CitDT05G SUdfQUQ3MjkzPW0KKyMgQ09ORklHX0FENzMwMyBpcyBub3Qgc2V0CitDT05GSUdfQUQ4ODAxPW0K K0NPTkZJR19EUE9UX0RBQz1tCitDT05GSUdfRFM0NDI0PW0KK0NPTkZJR19MVEMxNjYwPW0KK0NP TkZJR19MVEMyNjMyPW0KK0NPTkZJR19NNjIzMzI9bQorIyBDT05GSUdfTUFYNTE3IGlzIG5vdCBz ZXQKKyMgQ09ORklHX01BWDU4MjEgaXMgbm90IHNldAorIyBDT05GSUdfTUNQNDcyNSBpcyBub3Qg c2V0CisjIENPTkZJR19NQ1A0OTIyIGlzIG5vdCBzZXQKK0NPTkZJR19USV9EQUMwODJTMDg1PW0K K0NPTkZJR19USV9EQUM1NTcxPW0KK0NPTkZJR19USV9EQUM3MzExPW0KK0NPTkZJR19USV9EQUM3 NjEyPW0KKyMgQ09ORklHX1ZGNjEwX0RBQyBpcyBub3Qgc2V0CisjIGVuZCBvZiBEaWdpdGFsIHRv IGFuYWxvZyBjb252ZXJ0ZXJzCisKKyMKKyMgSUlPIGR1bW15IGRyaXZlcgorIworIyBDT05GSUdf SUlPX1NJTVBMRV9EVU1NWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBJSU8gZHVtbXkgZHJpdmVyCisK KyMKKyMgRmlsdGVycworIworQ09ORklHX0FETVY4ODE4PW0KKyMgZW5kIG9mIEZpbHRlcnMKKwor IworIyBGcmVxdWVuY3kgU3ludGhlc2l6ZXJzIEREUy9QTEwKKyMKKworIworIyBDbG9jayBHZW5l cmF0b3IvRGlzdHJpYnV0aW9uCisjCisjIENPTkZJR19BRDk1MjMgaXMgbm90IHNldAorIyBlbmQg b2YgQ2xvY2sgR2VuZXJhdG9yL0Rpc3RyaWJ1dGlvbgorCisjCisjIFBoYXNlLUxvY2tlZCBMb29w IChQTEwpIGZyZXF1ZW5jeSBzeW50aGVzaXplcnMKKyMKKyMgQ09ORklHX0FERjQzNTAgaXMgbm90 IHNldAorQ09ORklHX0FERjQzNzE9bQorQ09ORklHX0FETVYxMDEzPW0KK0NPTkZJR19BRE1WMTAx ND1tCitDT05GSUdfQURNVjQ0MjA9bQorIyBDT05GSUdfQURSRjY3ODAgaXMgbm90IHNldAorIyBl bmQgb2YgUGhhc2UtTG9ja2VkIExvb3AgKFBMTCkgZnJlcXVlbmN5IHN5bnRoZXNpemVycworIyBl bmQgb2YgRnJlcXVlbmN5IFN5bnRoZXNpemVycyBERFMvUExMCisKKyMKKyMgRGlnaXRhbCBneXJv c2NvcGUgc2Vuc29ycworIworIyBDT05GSUdfQURJUzE2MDgwIGlzIG5vdCBzZXQKKyMgQ09ORklH X0FESVMxNjEzMCBpcyBub3Qgc2V0CisjIENPTkZJR19BRElTMTYxMzYgaXMgbm90IHNldAorIyBD T05GSUdfQURJUzE2MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19BRFhSUzI5MD1tCisjIENPTkZJR19B RFhSUzQ1MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTUcxNjAgaXMgbm90IHNldAorQ09ORklHX0ZY QVMyMTAwMkM9bQorQ09ORklHX0ZYQVMyMTAwMkNfSTJDPW0KK0NPTkZJR19GWEFTMjEwMDJDX1NQ ST1tCitDT05GSUdfSElEX1NFTlNPUl9HWVJPXzNEPW0KK0NPTkZJR19NUFUzMDUwPW0KK0NPTkZJ R19NUFUzMDUwX0kyQz1tCisjIENPTkZJR19JSU9fU1RfR1lST18zQVhJUyBpcyBub3Qgc2V0Cisj IENPTkZJR19JVEczMjAwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERpZ2l0YWwgZ3lyb3Njb3BlIHNl bnNvcnMKKworIworIyBIZWFsdGggU2Vuc29ycworIworCisjCisjIEhlYXJ0IFJhdGUgTW9uaXRv cnMKKyMKK0NPTkZJR19BRkU0NDAzPW0KK0NPTkZJR19BRkU0NDA0PW0KK0NPTkZJR19NQVgzMDEw MD1tCitDT05GSUdfTUFYMzAxMDI9bQorIyBlbmQgb2YgSGVhcnQgUmF0ZSBNb25pdG9ycworIyBl bmQgb2YgSGVhbHRoIFNlbnNvcnMKKworIworIyBIdW1pZGl0eSBzZW5zb3JzCisjCitDT05GSUdf QU0yMzE1PW0KKyMgQ09ORklHX0RIVDExIGlzIG5vdCBzZXQKK0NPTkZJR19IREMxMDBYPW0KK0NP TkZJR19IREMyMDEwPW0KK0NPTkZJR19ISURfU0VOU09SX0hVTUlESVRZPW0KK0NPTkZJR19IVFMy MjE9bQorQ09ORklHX0hUUzIyMV9JMkM9bQorQ09ORklHX0hUUzIyMV9TUEk9bQorQ09ORklHX0hU VTIxPW0KKyMgQ09ORklHX1NJNzAwNSBpcyBub3Qgc2V0CisjIENPTkZJR19TSTcwMjAgaXMgbm90 IHNldAorIyBlbmQgb2YgSHVtaWRpdHkgc2Vuc29ycworCisjCisjIEluZXJ0aWFsIG1lYXN1cmVt ZW50IHVuaXRzCisjCisjIENPTkZJR19BRElTMTY0MDAgaXMgbm90IHNldAorQ09ORklHX0FESVMx NjQ2MD1tCitDT05GSUdfQURJUzE2NDc1PW0KKyMgQ09ORklHX0FESVMxNjQ4MCBpcyBub3Qgc2V0 CitDT05GSUdfQk1JMTYwPW0KK0NPTkZJR19CTUkxNjBfSTJDPW0KK0NPTkZJR19CTUkxNjBfU1BJ PW0KK0NPTkZJR19CT1NDSF9CTk8wNTU9bQorQ09ORklHX0JPU0NIX0JOTzA1NV9TRVJJQUw9bQor Q09ORklHX0JPU0NIX0JOTzA1NV9JMkM9bQorQ09ORklHX0ZYT1M4NzAwPW0KK0NPTkZJR19GWE9T ODcwMF9JMkM9bQorQ09ORklHX0ZYT1M4NzAwX1NQST1tCitDT05GSUdfS01YNjE9bQorQ09ORklH X0lOVl9JQ000MjYwMD1tCitDT05GSUdfSU5WX0lDTTQyNjAwX0kyQz1tCitDT05GSUdfSU5WX0lD TTQyNjAwX1NQST1tCitDT05GSUdfSU5WX01QVTYwNTBfSUlPPW0KK0NPTkZJR19JTlZfTVBVNjA1 MF9JMkM9bQorQ09ORklHX0lOVl9NUFU2MDUwX1NQST1tCitDT05GSUdfSUlPX1NUX0xTTTZEU1g9 bQorQ09ORklHX0lJT19TVF9MU002RFNYX0kyQz1tCitDT05GSUdfSUlPX1NUX0xTTTZEU1hfU1BJ PW0KK0NPTkZJR19JSU9fU1RfTFNNNkRTWF9JM0M9bQorIyBlbmQgb2YgSW5lcnRpYWwgbWVhc3Vy ZW1lbnQgdW5pdHMKKworQ09ORklHX0lJT19BRElTX0xJQj1tCitDT05GSUdfSUlPX0FESVNfTElC X0JVRkZFUj15CisKKyMKKyMgTGlnaHQgc2Vuc29ycworIworIyBDT05GSUdfQURKRF9TMzExIGlz IG5vdCBzZXQKK0NPTkZJR19BRFVYMTAyMD1tCitDT05GSUdfQUwzMDEwPW0KKyMgQ09ORklHX0FM MzMyMEEgaXMgbm90IHNldAorIyBDT05GSUdfQVBEUzkzMDAgaXMgbm90IHNldAorQ09ORklHX0FQ RFM5OTYwPW0KK0NPTkZJR19BUzczMjExPW0KKyMgQ09ORklHX0JIMTc1MCBpcyBub3Qgc2V0Cisj IENPTkZJR19CSDE3ODAgaXMgbm90IHNldAorIyBDT05GSUdfQ00zMjE4MSBpcyBub3Qgc2V0CitD T05GSUdfQ00zMjMyPW0KK0NPTkZJR19DTTMzMjM9bQorQ09ORklHX0NNMzYwNT1tCisjIENPTkZJ R19DTTM2NjUxIGlzIG5vdCBzZXQKK0NPTkZJR19HUDJBUDAwMj1tCisjIENPTkZJR19HUDJBUDAy MEEwMEYgaXMgbm90IHNldAorQ09ORklHX0lRUzYyMV9BTFM9bQorIyBDT05GSUdfU0VOU09SU19J U0wyOTAxOCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lTTDI5MDI4IGlzIG5vdCBzZXQK KyMgQ09ORklHX0lTTDI5MTI1IGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU0VOU09SX0FMUz1tCitD T05GSUdfSElEX1NFTlNPUl9QUk9YPW0KK0NPTkZJR19KU0ExMjEyPW0KK0NPTkZJR19SUFIwNTIx PW0KKyMgQ09ORklHX1NFTlNPUlNfTE0zNTMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xUUjUwMSBp cyBub3Qgc2V0CitDT05GSUdfTFRSRjIxNkE9bQorQ09ORklHX0xWMDEwNENTPW0KKyMgQ09ORklH X01BWDQ0MDAwIGlzIG5vdCBzZXQKK0NPTkZJR19NQVg0NDAwOT1tCitDT05GSUdfTk9BMTMwNT1t CitDT05GSUdfT1BUMzAwMT1tCitDT05GSUdfUEExMjIwMzAwMT1tCitDT05GSUdfU0kxMTMzPW0K K0NPTkZJR19TSTExNDU9bQorIyBDT05GSUdfU1RLMzMxMCBpcyBub3Qgc2V0CitDT05GSUdfU1Rf VVZJUzI1PW0KK0NPTkZJR19TVF9VVklTMjVfSTJDPW0KK0NPTkZJR19TVF9VVklTMjVfU1BJPW0K KyMgQ09ORklHX1RDUzM0MTQgaXMgbm90IHNldAorIyBDT05GSUdfVENTMzQ3MiBpcyBub3Qgc2V0 CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NjMgaXMgbm90IHNldAorIyBDT05GSUdfVFNMMjU4MyBp cyBub3Qgc2V0CitDT05GSUdfVFNMMjU5MT1tCitDT05GSUdfVFNMMjc3Mj1tCisjIENPTkZJR19U U0w0NTMxIGlzIG5vdCBzZXQKK0NPTkZJR19VUzUxODJEPW0KKyMgQ09ORklHX1ZDTkw0MDAwIGlz IG5vdCBzZXQKK0NPTkZJR19WQ05MNDAzNT1tCitDT05GSUdfVkVNTDYwMzA9bQorIyBDT05GSUdf VkVNTDYwNzAgaXMgbm90IHNldAorQ09ORklHX1ZMNjE4MD1tCitDT05GSUdfWk9QVDIyMDE9bQor IyBlbmQgb2YgTGlnaHQgc2Vuc29ycworCisjCisjIE1hZ25ldG9tZXRlciBzZW5zb3JzCisjCitD T05GSUdfQUs4OTc0PW0KKyMgQ09ORklHX0FLODk3NSBpcyBub3Qgc2V0CisjIENPTkZJR19BSzA5 OTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JNQzE1MF9NQUdOX0kyQyBpcyBub3Qgc2V0CisjIENP TkZJR19CTUMxNTBfTUFHTl9TUEkgaXMgbm90IHNldAorIyBDT05GSUdfTUFHMzExMCBpcyBub3Qg c2V0CitDT05GSUdfSElEX1NFTlNPUl9NQUdORVRPTUVURVJfM0Q9bQorIyBDT05GSUdfTU1DMzUy NDAgaXMgbm90IHNldAorQ09ORklHX0lJT19TVF9NQUdOXzNBWElTPW0KK0NPTkZJR19JSU9fU1Rf TUFHTl9JMkNfM0FYSVM9bQorQ09ORklHX0lJT19TVF9NQUdOX1NQSV8zQVhJUz1tCisjIENPTkZJ R19TRU5TT1JTX0hNQzU4NDNfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfSE1DNTg0 M19TUEkgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfUk0zMTAwPW0KK0NPTkZJR19TRU5TT1JT X1JNMzEwMF9JMkM9bQorQ09ORklHX1NFTlNPUlNfUk0zMTAwX1NQST1tCisjIENPTkZJR19ZQU1B SEFfWUFTNTMwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIE1hZ25ldG9tZXRlciBzZW5zb3JzCisKKyMK KyMgTXVsdGlwbGV4ZXJzCisjCitDT05GSUdfSUlPX01VWD1tCisjIGVuZCBvZiBNdWx0aXBsZXhl cnMKKworIworIyBJbmNsaW5vbWV0ZXIgc2Vuc29ycworIworQ09ORklHX0hJRF9TRU5TT1JfSU5D TElOT01FVEVSXzNEPW0KK0NPTkZJR19ISURfU0VOU09SX0RFVklDRV9ST1RBVElPTj1tCisjIGVu ZCBvZiBJbmNsaW5vbWV0ZXIgc2Vuc29ycworCisjCisjIFRyaWdnZXJzIC0gc3RhbmRhbG9uZQor IworQ09ORklHX0lJT19IUlRJTUVSX1RSSUdHRVI9bQorIyBDT05GSUdfSUlPX0lOVEVSUlVQVF9U UklHR0VSIGlzIG5vdCBzZXQKK0NPTkZJR19JSU9fVElHSFRMT09QX1RSSUdHRVI9bQorIyBDT05G SUdfSUlPX1NZU0ZTX1RSSUdHRVIgaXMgbm90IHNldAorIyBlbmQgb2YgVHJpZ2dlcnMgLSBzdGFu ZGFsb25lCisKKyMKKyMgTGluZWFyIGFuZCBhbmd1bGFyIHBvc2l0aW9uIHNlbnNvcnMKKyMKK0NP TkZJR19JUVM2MjRfUE9TPW0KKyMgQ09ORklHX0hJRF9TRU5TT1JfQ1VTVE9NX0lOVEVMX0hJTkdF IGlzIG5vdCBzZXQKKyMgZW5kIG9mIExpbmVhciBhbmQgYW5ndWxhciBwb3NpdGlvbiBzZW5zb3Jz CisKKyMKKyMgRGlnaXRhbCBwb3RlbnRpb21ldGVycworIworQ09ORklHX0FENTExMD1tCitDT05G SUdfQUQ1MjcyPW0KKyMgQ09ORklHX0RTMTgwMyBpcyBub3Qgc2V0CitDT05GSUdfTUFYNTQzMj1t CitDT05GSUdfTUFYNTQ4MT1tCitDT05GSUdfTUFYNTQ4Nz1tCitDT05GSUdfTUNQNDAxOD1tCisj IENPTkZJR19NQ1A0MTMxIGlzIG5vdCBzZXQKK0NPTkZJR19NQ1A0NTMxPW0KK0NPTkZJR19NQ1A0 MTAxMD1tCitDT05GSUdfVFBMMDEwMj1tCisjIGVuZCBvZiBEaWdpdGFsIHBvdGVudGlvbWV0ZXJz CisKKyMKKyMgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCisjCitDT05GSUdfTE1QOTEwMDA9bQorIyBl bmQgb2YgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCisKKyMKKyMgUHJlc3N1cmUgc2Vuc29ycworIwor Q09ORklHX0FCUDA2ME1HPW0KK0NPTkZJR19CTVAyODA9bQorQ09ORklHX0JNUDI4MF9JMkM9bQor Q09ORklHX0JNUDI4MF9TUEk9bQorQ09ORklHX0RMSEw2MEQ9bQorQ09ORklHX0RQUzMxMD1tCitD T05GSUdfSElEX1NFTlNPUl9QUkVTUz1tCisjIENPTkZJR19IUDAzIGlzIG5vdCBzZXQKK0NPTkZJ R19JQ1AxMDEwMD1tCitDT05GSUdfTVBMMTE1PW0KK0NPTkZJR19NUEwxMTVfSTJDPW0KK0NPTkZJ R19NUEwxMTVfU1BJPW0KKyMgQ09ORklHX01QTDMxMTUgaXMgbm90IHNldAorIyBDT05GSUdfTVM1 NjExIGlzIG5vdCBzZXQKK0NPTkZJR19NUzU2Mzc9bQorQ09ORklHX0lJT19TVF9QUkVTUz1tCitD T05GSUdfSUlPX1NUX1BSRVNTX0kyQz1tCitDT05GSUdfSUlPX1NUX1BSRVNTX1NQST1tCisjIENP TkZJR19UNTQwMyBpcyBub3Qgc2V0CisjIENPTkZJR19IUDIwNkMgaXMgbm90IHNldAorQ09ORklH X1pQQTIzMjY9bQorQ09ORklHX1pQQTIzMjZfSTJDPW0KK0NPTkZJR19aUEEyMzI2X1NQST1tCisj IGVuZCBvZiBQcmVzc3VyZSBzZW5zb3JzCisKKyMKKyMgTGlnaHRuaW5nIHNlbnNvcnMKKyMKKyMg Q09ORklHX0FTMzkzNSBpcyBub3Qgc2V0CisjIGVuZCBvZiBMaWdodG5pbmcgc2Vuc29ycworCisj CisjIFByb3hpbWl0eSBhbmQgZGlzdGFuY2Ugc2Vuc29ycworIworQ09ORklHX0lTTDI5NTAxPW0K K0NPTkZJR19MSURBUl9MSVRFX1YyPW0KK0NPTkZJR19NQjEyMzI9bQorQ09ORklHX1BJTkc9bQor Q09ORklHX1JGRDc3NDAyPW0KK0NPTkZJR19TUkYwND1tCitDT05GSUdfU1hfQ09NTU9OPW0KK0NP TkZJR19TWDkzMTA9bQorQ09ORklHX1NYOTMyND1tCitDT05GSUdfU1g5MzYwPW0KK0NPTkZJR19T WDk1MDA9bQorQ09ORklHX1NSRjA4PW0KK0NPTkZJR19WQ05MMzAyMD1tCitDT05GSUdfVkw1M0ww WF9JMkM9bQorIyBlbmQgb2YgUHJveGltaXR5IGFuZCBkaXN0YW5jZSBzZW5zb3JzCisKKyMKKyMg UmVzb2x2ZXIgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDJTOTAgaXMgbm90 IHNldAorIyBDT05GSUdfQUQyUzEyMDAgaXMgbm90IHNldAorIyBlbmQgb2YgUmVzb2x2ZXIgdG8g ZGlnaXRhbCBjb252ZXJ0ZXJzCisKKyMKKyMgVGVtcGVyYXR1cmUgc2Vuc29ycworIworQ09ORklH X0lRUzYyMEFUX1RFTVA9bQorQ09ORklHX0xUQzI5ODM9bQorQ09ORklHX01BWElNX1RIRVJNT0NP VVBMRT1tCitDT05GSUdfSElEX1NFTlNPUl9URU1QPW0KKyMgQ09ORklHX01MWDkwNjE0IGlzIG5v dCBzZXQKK0NPTkZJR19NTFg5MDYzMj1tCisjIENPTkZJR19UTVAwMDYgaXMgbm90IHNldAorQ09O RklHX1RNUDAwNz1tCitDT05GSUdfVE1QMTE3PW0KK0NPTkZJR19UU1lTMDE9bQorQ09ORklHX1RT WVMwMkQ9bQorQ09ORklHX01BWDMxODU2PW0KK0NPTkZJR19NQVgzMTg2NT1tCisjIGVuZCBvZiBU ZW1wZXJhdHVyZSBzZW5zb3JzCisKK0NPTkZJR19OVEI9eQorQ09ORklHX05UQl9NU0k9eQorQ09O RklHX05UQl9JRFQ9bQorIyBDT05GSUdfTlRCX0VQRiBpcyBub3Qgc2V0CitDT05GSUdfTlRCX1NX SVRDSFRFQz1tCisjIENPTkZJR19OVEJfUElOR1BPTkcgaXMgbm90IHNldAorIyBDT05GSUdfTlRC X1RPT0wgaXMgbm90IHNldAorQ09ORklHX05UQl9QRVJGPW0KKyMgQ09ORklHX05UQl9NU0lfVEVT VCBpcyBub3Qgc2V0CitDT05GSUdfTlRCX1RSQU5TUE9SVD1tCitDT05GSUdfUFdNPXkKK0NPTkZJ R19QV01fU1lTRlM9eQorIyBDT05GSUdfUFdNX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QV01f QVRNRUxfSExDRENfUFdNPW0KK0NPTkZJR19QV01fQVRNRUxfVENCPW0KK0NPTkZJR19QV01fQ0xL PW0KK0NPTkZJR19QV01fRFdDPW0KKyMgQ09ORklHX1BXTV9GU0xfRlRNIGlzIG5vdCBzZXQKK0NP TkZJR19QV01fSVFTNjIwQT1tCitDT05GSUdfUFdNX0xQMzk0Mz1tCitDT05GSUdfUFdNX05UWEVD PW0KKyMgQ09ORklHX1BXTV9QQ0E5Njg1IGlzIG5vdCBzZXQKK0NPTkZJR19QV01fU0lGSVZFPW0K K0NPTkZJR19QV01fWElMSU5YPW0KKworIworIyBJUlEgY2hpcCBzdXBwb3J0CisjCitDT05GSUdf SVJRQ0hJUD15CitDT05GSUdfQUxfRklDPXkKK0NPTkZJR19NQURFUkFfSVJRPW0KKyMgQ09ORklH X1hJTElOWF9JTlRDIGlzIG5vdCBzZXQKK0NPTkZJR19SSVNDVl9JTlRDPXkKK0NPTkZJR19TSUZJ VkVfUExJQz15CisjIGVuZCBvZiBJUlEgY2hpcCBzdXBwb3J0CisKK0NPTkZJR19JUEFDS19CVVM9 bQorQ09ORklHX0JPQVJEX1RQQ0kyMDA9bQorQ09ORklHX1NFUklBTF9JUE9DVEFMPW0KK0NPTkZJ R19SRVNFVF9DT05UUk9MTEVSPXkKK0NPTkZJR19SRVNFVF9QT0xBUkZJUkVfU09DPXkKK0NPTkZJ R19SRVNFVF9TSU1QTEU9eQorQ09ORklHX1JFU0VUX1RJX1NZU0NPTj1tCitDT05GSUdfUkVTRVRf VElfVFBTMzgwWD1tCitDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MVgwPXkKK0NPTkZJR19SRVNF VF9TVEFSRklWRV9KSDcxMDA9eQorQ09ORklHX1JFU0VUX1NUQVJGSVZFX0pINzExMD15CisKKyMK KyMgUEhZIFN1YnN5c3RlbQorIworQ09ORklHX0dFTkVSSUNfUEhZPXkKK0NPTkZJR19HRU5FUklD X1BIWV9NSVBJX0RQSFk9eQorQ09ORklHX1BIWV9DQU5fVFJBTlNDRUlWRVI9bQorCisjCisjIFBI WSBkcml2ZXJzIGZvciBCcm9hZGNvbSBwbGF0Zm9ybXMKKyMKK0NPTkZJR19CQ01fS09OQV9VU0Iy X1BIWT1tCisjIGVuZCBvZiBQSFkgZHJpdmVycyBmb3IgQnJvYWRjb20gcGxhdGZvcm1zCisKK0NP TkZJR19QSFlfQ0FERU5DRV9UT1JSRU5UPW0KK0NPTkZJR19QSFlfQ0FERU5DRV9EUEhZPW0KK0NP TkZJR19QSFlfQ0FERU5DRV9EUEhZX1JYPW0KK0NPTkZJR19QSFlfQ0FERU5DRV9TSUVSUkE9bQor Q09ORklHX1BIWV9DQURFTkNFX1NBTFZPPW0KK0NPTkZJR19QSFlfUFhBXzI4Tk1fSFNJQz1tCitD T05GSUdfUEhZX1BYQV8yOE5NX1VTQjI9bQorQ09ORklHX1BIWV9MQU45NjZYX1NFUkRFUz1tCitD T05GSUdfUEhZX0NQQ0FQX1VTQj1tCitDT05GSUdfUEhZX01BUFBIT05FX01ETTY2MDA9bQorQ09O RklHX1BIWV9PQ0VMT1RfU0VSREVTPW0KK0NPTkZJR19QSFlfUUNPTV9VU0JfSFM9bQorQ09ORklH X1BIWV9RQ09NX1VTQl9IU0lDPW0KKyMgQ09ORklHX1BIWV9TQU1TVU5HX1VTQjIgaXMgbm90IHNl dAorIyBDT05GSUdfUEhZX1RVU0IxMjEwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFBIWSBTdWJzeXN0 ZW0KKworQ09ORklHX1BPV0VSQ0FQPXkKK0NPTkZJR19JRExFX0lOSkVDVD15CisjIENPTkZJR19E VFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01DQiBpcyBub3Qgc2V0CisKKyMKKyMgUGVyZm9ybWFu Y2UgbW9uaXRvciBzdXBwb3J0CisjCitDT05GSUdfUklTQ1ZfUE1VPXkKK0NPTkZJR19SSVNDVl9Q TVVfTEVHQUNZPXkKK0NPTkZJR19SSVNDVl9QTVVfU0JJPXkKKyMgZW5kIG9mIFBlcmZvcm1hbmNl IG1vbml0b3Igc3VwcG9ydAorCitDT05GSUdfUkFTPXkKK0NPTkZJR19VU0I0PW0KKyMgQ09ORklH X1VTQjRfREVCVUdGU19XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0I0X0RNQV9URVNUIGlz IG5vdCBzZXQKKworIworIyBBbmRyb2lkCisjCitDT05GSUdfQU5EUk9JRF9CSU5ERVJfSVBDPXkK K0NPTkZJR19BTkRST0lEX0JJTkRFUkZTPXkKK0NPTkZJR19BTkRST0lEX0JJTkRFUl9ERVZJQ0VT PSIiCisjIENPTkZJR19BTkRST0lEX0JJTkRFUl9JUENfU0VMRlRFU1QgaXMgbm90IHNldAorIyBl bmQgb2YgQW5kcm9pZAorCitDT05GSUdfTElCTlZESU1NPW0KK0NPTkZJR19CTEtfREVWX1BNRU09 bQorQ09ORklHX05EX0NMQUlNPXkKK0NPTkZJR19ORF9CVFQ9bQorQ09ORklHX0JUVD15CitDT05G SUdfT0ZfUE1FTT1tCitDT05GSUdfTlZESU1NX0tFWVM9eQorQ09ORklHX0RBWD15CitDT05GSUdf REVWX0RBWD1tCitDT05GSUdfTlZNRU09eQorQ09ORklHX05WTUVNX1NZU0ZTPXkKKyMgQ09ORklH X05WTUVNX1JNRU0gaXMgbm90IHNldAorQ09ORklHX05WTUVNX1NQTUlfU0RBTT1tCitDT05GSUdf TlZNRU1fVV9CT09UX0VOVj1tCisKKyMKKyMgSFcgdHJhY2luZyBzdXBwb3J0CisjCitDT05GSUdf U1RNPXkKK0NPTkZJR19TVE1fUFJPVE9fQkFTSUM9bQorQ09ORklHX1NUTV9QUk9UT19TWVNfVD1t CisjIENPTkZJR19TVE1fRFVNTVkgaXMgbm90IHNldAorQ09ORklHX1NUTV9TT1VSQ0VfQ09OU09M RT15CisjIENPTkZJR19TVE1fU09VUkNFX0hFQVJUQkVBVCBpcyBub3Qgc2V0CitDT05GSUdfU1RN X1NPVVJDRV9GVFJBQ0U9bQorIyBDT05GSUdfSU5URUxfVEggaXMgbm90IHNldAorIyBlbmQgb2Yg SFcgdHJhY2luZyBzdXBwb3J0CisKK0NPTkZJR19GUEdBPW0KK0NPTkZJR19BTFRFUkFfUFJfSVBf Q09SRT1tCitDT05GSUdfQUxURVJBX1BSX0lQX0NPUkVfUExBVD1tCitDT05GSUdfRlBHQV9NR1Jf QUxURVJBX1BTX1NQST1tCitDT05GSUdfRlBHQV9NR1JfQUxURVJBX0NWUD1tCitDT05GSUdfRlBH QV9NR1JfWElMSU5YX1NQST1tCitDT05GSUdfRlBHQV9NR1JfSUNFNDBfU1BJPW0KK0NPTkZJR19G UEdBX01HUl9NQUNIWE8yX1NQST1tCitDT05GSUdfRlBHQV9CUklER0U9bQorQ09ORklHX0FMVEVS QV9GUkVFWkVfQlJJREdFPW0KK0NPTkZJR19YSUxJTlhfUFJfREVDT1VQTEVSPW0KK0NPTkZJR19G UEdBX1JFR0lPTj1tCitDT05GSUdfT0ZfRlBHQV9SRUdJT049bQorQ09ORklHX0ZQR0FfREZMPW0K K0NPTkZJR19GUEdBX0RGTF9GTUU9bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9NR1I9bQorQ09ORklH X0ZQR0FfREZMX0ZNRV9CUklER0U9bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9SRUdJT049bQorQ09O RklHX0ZQR0FfREZMX0FGVT1tCisjIENPTkZJR19GUEdBX0RGTF9OSU9TX0lOVEVMX1BBQ19OMzAw MCBpcyBub3Qgc2V0CitDT05GSUdfRlBHQV9ERkxfUENJPW0KK0NPTkZJR19GUEdBX00xMF9CTUNf U0VDX1VQREFURT1tCitDT05GSUdfRlBHQV9NR1JfTUlDUk9DSElQX1NQST1tCisjIENPTkZJR19G U0kgaXMgbm90IHNldAorQ09ORklHX01VTFRJUExFWEVSPW0KKworIworIyBNdWx0aXBsZXhlciBk cml2ZXJzCisjCitDT05GSUdfTVVYX0FERzc5MkE9bQorQ09ORklHX01VWF9BREdTMTQwOD1tCitD T05GSUdfTVVYX0dQSU89bQorQ09ORklHX01VWF9NTUlPPW0KKyMgZW5kIG9mIE11bHRpcGxleGVy IGRyaXZlcnMKKworQ09ORklHX1BNX09QUD15CisjIENPTkZJR19TSU9YIGlzIG5vdCBzZXQKKyMg Q09ORklHX1NMSU1CVVMgaXMgbm90IHNldAorQ09ORklHX0lOVEVSQ09OTkVDVD15CisjIENPTkZJ R19DT1VOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PU1QgaXMgbm90IHNldAorQ09ORklHX1BF Q0k9bQorQ09ORklHX1BFQ0lfQ1BVPW0KK0NPTkZJR19IVEU9eQorIyBlbmQgb2YgRGV2aWNlIERy aXZlcnMKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19WQUxJREFURV9GU19QQVJTRVI9 eQorQ09ORklHX0ZTX0lPTUFQPXkKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05G SUdfRVhUM19GUyBpcyBub3Qgc2V0CitDT05GSUdfRVhUNF9GUz15CitDT05GSUdfRVhUNF9VU0Vf Rk9SX0VYVDI9eQorQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19FWFQ0X0ZTX1NF Q1VSSVRZPXkKKyMgQ09ORklHX0VYVDRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0pCRDI9eQor IyBDT05GSUdfSkJEMl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRlNfTUJDQUNIRT15CitDT05G SUdfUkVJU0VSRlNfRlM9bQorIyBDT05GSUdfUkVJU0VSRlNfQ0hFQ0sgaXMgbm90IHNldAorIyBD T05GSUdfUkVJU0VSRlNfUFJPQ19JTkZPIGlzIG5vdCBzZXQKK0NPTkZJR19SRUlTRVJGU19GU19Y QVRUUj15CitDT05GSUdfUkVJU0VSRlNfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19SRUlTRVJGU19G U19TRUNVUklUWT15CitDT05GSUdfSkZTX0ZTPW0KK0NPTkZJR19KRlNfUE9TSVhfQUNMPXkKK0NP TkZJR19KRlNfU0VDVVJJVFk9eQorIyBDT05GSUdfSkZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09O RklHX0pGU19TVEFUSVNUSUNTIGlzIG5vdCBzZXQKK0NPTkZJR19YRlNfRlM9bQorQ09ORklHX1hG U19TVVBQT1JUX1Y0PXkKK0NPTkZJR19YRlNfUVVPVEE9eQorQ09ORklHX1hGU19QT1NJWF9BQ0w9 eQorIyBDT05GSUdfWEZTX1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19PTkxJTkVfU0NSVUIg aXMgbm90IHNldAorIyBDT05GSUdfWEZTX1dBUk4gaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0RF QlVHIGlzIG5vdCBzZXQKK0NPTkZJR19HRlMyX0ZTPW0KK0NPTkZJR19HRlMyX0ZTX0xPQ0tJTkdf RExNPXkKK0NPTkZJR19PQ0ZTMl9GUz1tCitDT05GSUdfT0NGUzJfRlNfTzJDQj1tCitDT05GSUdf T0NGUzJfRlNfVVNFUlNQQUNFX0NMVVNURVI9bQorQ09ORklHX09DRlMyX0ZTX1NUQVRTPXkKKyMg Q09ORklHX09DRlMyX0RFQlVHX01BU0tMT0cgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfREVC VUdfRlMgaXMgbm90IHNldAorQ09ORklHX0JUUkZTX0ZTPW0KK0NPTkZJR19CVFJGU19GU19QT1NJ WF9BQ0w9eQorIyBDT05GSUdfQlRSRlNfRlNfQ0hFQ0tfSU5URUdSSVRZIGlzIG5vdCBzZXQKKyMg Q09ORklHX0JUUkZTX0ZTX1JVTl9TQU5JVFlfVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfQlRS RlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQlRSRlNfQVNTRVJUIGlzIG5vdCBzZXQKKyMg Q09ORklHX0JUUkZTX0ZTX1JFRl9WRVJJRlkgaXMgbm90IHNldAorQ09ORklHX05JTEZTMl9GUz1t CitDT05GSUdfRjJGU19GUz1tCitDT05GSUdfRjJGU19TVEFUX0ZTPXkKK0NPTkZJR19GMkZTX0ZT X1hBVFRSPXkKK0NPTkZJR19GMkZTX0ZTX1BPU0lYX0FDTD15CitDT05GSUdfRjJGU19GU19TRUNV UklUWT15CisjIENPTkZJR19GMkZTX0NIRUNLX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0YyRlNf RkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0YyRlNfRlNfQ09NUFJFU1NJT04g aXMgbm90IHNldAorQ09ORklHX0YyRlNfSU9TVEFUPXkKK0NPTkZJR19GMkZTX1VORkFJUl9SV1NF TT15CitDT05GSUdfWk9ORUZTX0ZTPW0KK0NPTkZJR19GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VY UE9SVEZTPXkKK0NPTkZJR19FWFBPUlRGU19CTE9DS19PUFM9eQorQ09ORklHX0ZJTEVfTE9DS0lO Rz15CitDT05GSUdfRlNfRU5DUllQVElPTj15CitDT05GSUdfRlNfRU5DUllQVElPTl9BTEdTPXkK K0NPTkZJR19GU19FTkNSWVBUSU9OX0lOTElORV9DUllQVD15CisjIENPTkZJR19GU19WRVJJVFkg aXMgbm90IHNldAorQ09ORklHX0ZTTk9USUZZPXkKK0NPTkZJR19ETk9USUZZPXkKK0NPTkZJR19J Tk9USUZZX1VTRVI9eQorQ09ORklHX0ZBTk9USUZZPXkKK0NPTkZJR19GQU5PVElGWV9BQ0NFU1Nf UEVSTUlTU0lPTlM9eQorQ09ORklHX1FVT1RBPXkKK0NPTkZJR19RVU9UQV9ORVRMSU5LX0lOVEVS RkFDRT15CisjIENPTkZJR19QUklOVF9RVU9UQV9XQVJOSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklH X1FVT1RBX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19RVU9UQV9UUkVFPW0KK0NPTkZJR19RRk1U X1YxPW0KK0NPTkZJR19RRk1UX1YyPW0KK0NPTkZJR19RVU9UQUNUTD15CitDT05GSUdfQVVUT0ZT NF9GUz15CitDT05GSUdfQVVUT0ZTX0ZTPXkKK0NPTkZJR19GVVNFX0ZTPW0KK0NPTkZJR19DVVNF PW0KK0NPTkZJR19WSVJUSU9fRlM9bQorQ09ORklHX09WRVJMQVlfRlM9bQorIyBDT05GSUdfT1ZF UkxBWV9GU19SRURJUkVDVF9ESVIgaXMgbm90IHNldAorQ09ORklHX09WRVJMQVlfRlNfUkVESVJF Q1RfQUxXQVlTX0ZPTExPVz15CisjIENPTkZJR19PVkVSTEFZX0ZTX0lOREVYIGlzIG5vdCBzZXQK KyMgQ09ORklHX09WRVJMQVlfRlNfWElOT19BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX09WRVJM QVlfRlNfTUVUQUNPUFkgaXMgbm90IHNldAorCisjCisjIENhY2hlcworIworQ09ORklHX05FVEZT X1NVUFBPUlQ9bQorQ09ORklHX05FVEZTX1NUQVRTPXkKK0NPTkZJR19GU0NBQ0hFPW0KK0NPTkZJ R19GU0NBQ0hFX1NUQVRTPXkKKyMgQ09ORklHX0ZTQ0FDSEVfREVCVUcgaXMgbm90IHNldAorQ09O RklHX0NBQ0hFRklMRVM9bQorIyBDT05GSUdfQ0FDSEVGSUxFU19ERUJVRyBpcyBub3Qgc2V0Cisj IENPTkZJR19DQUNIRUZJTEVTX0VSUk9SX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19D QUNIRUZJTEVTX09OREVNQU5EIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENhY2hlcworCisjCisjIENE LVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19JU085NjYwX0ZTPW0KK0NPTkZJR19KT0xJ RVQ9eQorQ09ORklHX1pJU09GUz15CitDT05GSUdfVURGX0ZTPW0KKyMgZW5kIG9mIENELVJPTS9E VkQgRmlsZXN5c3RlbXMKKworIworIyBET1MvRkFUL0VYRkFUL05UIEZpbGVzeXN0ZW1zCisjCitD T05GSUdfRkFUX0ZTPW0KK0NPTkZJR19NU0RPU19GUz1tCitDT05GSUdfVkZBVF9GUz1tCitDT05G SUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VU PSJpc284ODU5LTEiCisjIENPTkZJR19GQVRfREVGQVVMVF9VVEY4IGlzIG5vdCBzZXQKK0NPTkZJ R19FWEZBVF9GUz1tCitDT05GSUdfRVhGQVRfREVGQVVMVF9JT0NIQVJTRVQ9InV0ZjgiCitDT05G SUdfTlRGU19GUz1tCisjIENPTkZJR19OVEZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX05U RlNfUlcgaXMgbm90IHNldAorQ09ORklHX05URlMzX0ZTPW0KKyMgQ09ORklHX05URlMzXzY0QklU X0NMVVNURVIgaXMgbm90IHNldAorQ09ORklHX05URlMzX0xaWF9YUFJFU1M9eQorIyBDT05GSUdf TlRGUzNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERPUy9GQVQvRVhGQVQvTlQg RmlsZXN5c3RlbXMKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZT PXkKK0NPTkZJR19QUk9DX0tDT1JFPXkKK0NPTkZJR19QUk9DX1ZNQ09SRT15CisjIENPTkZJR19Q Uk9DX1ZNQ09SRV9ERVZJQ0VfRFVNUCBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19TWVNDVEw9eQor Q09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19QUk9DX0NISUxEUkVOPXkKK0NPTkZJ R19LRVJORlM9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CitDT05GSUdfVE1QRlNf UE9TSVhfQUNMPXkKK0NPTkZJR19UTVBGU19YQVRUUj15CitDT05GSUdfVE1QRlNfSU5PREU2ND15 CitDT05GSUdfQVJDSF9TVVBQT1JUU19IVUdFVExCRlM9eQorQ09ORklHX0hVR0VUTEJGUz15CitD T05GSUdfSFVHRVRMQl9QQUdFPXkKK0NPTkZJR19NRU1GRF9DUkVBVEU9eQorQ09ORklHX0FSQ0hf SEFTX0dJR0FOVElDX1BBR0U9eQorQ09ORklHX0NPTkZJR0ZTX0ZTPXkKK0NPTkZJR19FRklWQVJf RlM9bQorIyBlbmQgb2YgUHNldWRvIGZpbGVzeXN0ZW1zCisKK0NPTkZJR19NSVNDX0ZJTEVTWVNU RU1TPXkKKyMgQ09ORklHX09SQU5HRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FERlNfRlMg aXMgbm90IHNldAorQ09ORklHX0FGRlNfRlM9bQorQ09ORklHX0VDUllQVF9GUz1tCisjIENPTkZJ R19FQ1JZUFRfRlNfTUVTU0FHSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19IRlNfRlM9bQorQ09ORklH X0hGU1BMVVNfRlM9bQorQ09ORklHX0JFRlNfRlM9bQorIyBDT05GSUdfQkVGU19ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5v dCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VCSUZTX0ZTIGlz IG5vdCBzZXQKK0NPTkZJR19DUkFNRlM9bQorQ09ORklHX0NSQU1GU19CTE9DS0RFVj15CitDT05G SUdfQ1JBTUZTX01URD15CitDT05GSUdfU1FVQVNIRlM9bQorQ09ORklHX1NRVUFTSEZTX0ZJTEVf Q0FDSEU9eQorIyBDT05GSUdfU1FVQVNIRlNfRklMRV9ESVJFQ1QgaXMgbm90IHNldAorQ09ORklH X1NRVUFTSEZTX0RFQ09NUF9TSU5HTEU9eQorIyBDT05GSUdfU1FVQVNIRlNfREVDT01QX01VTFRJ IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NRVUFTSEZTX0RFQ09NUF9NVUxUSV9QRVJDUFUgaXMgbm90 IHNldAorQ09ORklHX1NRVUFTSEZTX1hBVFRSPXkKK0NPTkZJR19TUVVBU0hGU19aTElCPXkKK0NP TkZJR19TUVVBU0hGU19MWjQ9eQorQ09ORklHX1NRVUFTSEZTX0xaTz15CitDT05GSUdfU1FVQVNI RlNfWFo9eQorQ09ORklHX1NRVUFTSEZTX1pTVEQ9eQorIyBDT05GSUdfU1FVQVNIRlNfNEtfREVW QkxLX1NJWkUgaXMgbm90IHNldAorIyBDT05GSUdfU1FVQVNIRlNfRU1CRURERUQgaXMgbm90IHNl dAorQ09ORklHX1NRVUFTSEZTX0ZSQUdNRU5UX0NBQ0hFX1NJWkU9MworIyBDT05GSUdfVlhGU19G UyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PTUZT X0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19IUEZTX0ZTPW0KKyMgQ09ORklHX1FOWDRGU19GUyBpcyBu b3Qgc2V0CitDT05GSUdfUU5YNkZTX0ZTPW0KKyMgQ09ORklHX1FOWDZGU19ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfUk9NRlNfRlM9bQorIyBDT05GSUdfUk9NRlNfQkFDS0VEX0JZX0JMT0NLIGlz IG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0JBQ0tFRF9CWV9NVEQgaXMgbm90IHNldAorQ09ORklH X1JPTUZTX0JBQ0tFRF9CWV9CT1RIPXkKK0NPTkZJR19ST01GU19PTl9CTE9DSz15CitDT05GSUdf Uk9NRlNfT05fTVREPXkKK0NPTkZJR19QU1RPUkU9eQorQ09ORklHX1BTVE9SRV9ERUZBVUxUX0tN U0dfQllURVM9MTAyNDAKK0NPTkZJR19QU1RPUkVfREVGTEFURV9DT01QUkVTUz1tCisjIENPTkZJ R19QU1RPUkVfTFpPX0NPTVBSRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BTVE9SRV9MWjRfQ09N UFJFU1MgaXMgbm90IHNldAorQ09ORklHX1BTVE9SRV9MWjRIQ19DT01QUkVTUz1tCisjIENPTkZJ R19QU1RPUkVfODQyX0NPTVBSRVNTIGlzIG5vdCBzZXQKK0NPTkZJR19QU1RPUkVfWlNURF9DT01Q UkVTUz15CitDT05GSUdfUFNUT1JFX0NPTVBSRVNTPXkKK0NPTkZJR19QU1RPUkVfREVGTEFURV9D T01QUkVTU19ERUZBVUxUPXkKKyMgQ09ORklHX1BTVE9SRV9MWjRIQ19DT01QUkVTU19ERUZBVUxU IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BTVE9SRV9aU1REX0NPTVBSRVNTX0RFRkFVTFQgaXMgbm90 IHNldAorQ09ORklHX1BTVE9SRV9DT01QUkVTU19ERUZBVUxUPSJkZWZsYXRlIgorIyBDT05GSUdf UFNUT1JFX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfUFNUT1JFX1BNU0cgaXMgbm90IHNl dAorIyBDT05GSUdfUFNUT1JFX0ZUUkFDRSBpcyBub3Qgc2V0CitDT05GSUdfUFNUT1JFX1JBTT1t CitDT05GSUdfUFNUT1JFX1pPTkU9bQorQ09ORklHX1BTVE9SRV9CTEs9bQorQ09ORklHX1BTVE9S RV9CTEtfQkxLREVWPSIiCitDT05GSUdfUFNUT1JFX0JMS19LTVNHX1NJWkU9NjQKK0NPTkZJR19Q U1RPUkVfQkxLX01BWF9SRUFTT049MgorQ09ORklHX1NZU1ZfRlM9bQorQ09ORklHX1VGU19GUz1t CisjIENPTkZJR19VRlNfRlNfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0RFQlVHIGlz IG5vdCBzZXQKK0NPTkZJR19FUk9GU19GUz1tCisjIENPTkZJR19FUk9GU19GU19ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfRVJPRlNfRlNfWEFUVFI9eQorQ09ORklHX0VST0ZTX0ZTX1BPU0lYX0FD TD15CitDT05GSUdfRVJPRlNfRlNfU0VDVVJJVFk9eQorQ09ORklHX0VST0ZTX0ZTX1pJUD15CitD T05GSUdfRVJPRlNfRlNfWklQX0xaTUE9eQorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQor Q09ORklHX05GU19GUz1tCitDT05GSUdfTkZTX1YyPW0KK0NPTkZJR19ORlNfVjM9bQorQ09ORklH X05GU19WM19BQ0w9eQorQ09ORklHX05GU19WND1tCitDT05GSUdfTkZTX1NXQVA9eQorQ09ORklH X05GU19WNF8xPXkKK0NPTkZJR19ORlNfVjRfMj15CitDT05GSUdfUE5GU19GSUxFX0xBWU9VVD1t CitDT05GSUdfUE5GU19CTE9DSz1tCitDT05GSUdfUE5GU19GTEVYRklMRV9MQVlPVVQ9bQorQ09O RklHX05GU19WNF8xX0lNUExFTUVOVEFUSU9OX0lEX0RPTUFJTj0ia2VybmVsLm9yZyIKKyMgQ09O RklHX05GU19WNF8xX01JR1JBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTkZTX1Y0X1NFQ1VSSVRZ X0xBQkVMPXkKK0NPTkZJR19ORlNfRlNDQUNIRT15CisjIENPTkZJR19ORlNfVVNFX0xFR0FDWV9E TlMgaXMgbm90IHNldAorQ09ORklHX05GU19VU0VfS0VSTkVMX0ROUz15CitDT05GSUdfTkZTX0RF QlVHPXkKK0NPTkZJR19ORlNfRElTQUJMRV9VRFBfU1VQUE9SVD15CisjIENPTkZJR19ORlNfVjRf Ml9SRUFEX1BMVVMgaXMgbm90IHNldAorQ09ORklHX05GU0Q9bQorQ09ORklHX05GU0RfVjJfQUNM PXkKK0NPTkZJR19ORlNEX1YzX0FDTD15CitDT05GSUdfTkZTRF9WND15CitDT05GSUdfTkZTRF9Q TkZTPXkKK0NPTkZJR19ORlNEX0JMT0NLTEFZT1VUPXkKK0NPTkZJR19ORlNEX1NDU0lMQVlPVVQ9 eQorQ09ORklHX05GU0RfRkxFWEZJTEVMQVlPVVQ9eQorQ09ORklHX05GU0RfVjRfMl9JTlRFUl9T U0M9eQorQ09ORklHX05GU0RfVjRfU0VDVVJJVFlfTEFCRUw9eQorQ09ORklHX0dSQUNFX1BFUklP RD1tCitDT05GSUdfTE9DS0Q9bQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQUNMX1NV UFBPUlQ9bQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX05GU19WNF8yX1NTQ19IRUxQRVI9 eQorQ09ORklHX1NVTlJQQz1tCitDT05GSUdfU1VOUlBDX0dTUz1tCitDT05GSUdfU1VOUlBDX0JB Q0tDSEFOTkVMPXkKK0NPTkZJR19TVU5SUENfU1dBUD15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1 PW0KKyMgQ09ORklHX1NVTlJQQ19ESVNBQkxFX0lOU0VDVVJFX0VOQ1RZUEVTIGlzIG5vdCBzZXQK K0NPTkZJR19TVU5SUENfREVCVUc9eQorQ09ORklHX1NVTlJQQ19YUFJUX1JETUE9bQorQ09ORklH X0NFUEhfRlM9bQorQ09ORklHX0NFUEhfRlNDQUNIRT15CitDT05GSUdfQ0VQSF9GU19QT1NJWF9B Q0w9eQorIyBDT05GSUdfQ0VQSF9GU19TRUNVUklUWV9MQUJFTCBpcyBub3Qgc2V0CitDT05GSUdf Q0lGUz1tCisjIENPTkZJR19DSUZTX1NUQVRTMiBpcyBub3Qgc2V0CitDT05GSUdfQ0lGU19BTExP V19JTlNFQ1VSRV9MRUdBQ1k9eQorQ09ORklHX0NJRlNfVVBDQUxMPXkKK0NPTkZJR19DSUZTX1hB VFRSPXkKK0NPTkZJR19DSUZTX1BPU0lYPXkKK0NPTkZJR19DSUZTX0RFQlVHPXkKKyMgQ09ORklH X0NJRlNfREVCVUcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfREVCVUdfRFVNUF9LRVlTIGlz IG5vdCBzZXQKK0NPTkZJR19DSUZTX0RGU19VUENBTEw9eQorQ09ORklHX0NJRlNfU1dOX1VQQ0FM TD15CisjIENPTkZJR19DSUZTX1NNQl9ESVJFQ1QgaXMgbm90IHNldAorQ09ORklHX0NJRlNfRlND QUNIRT15CisjIENPTkZJR19TTUJfU0VSVkVSIGlzIG5vdCBzZXQKK0NPTkZJR19TTUJGU19DT01N T049bQorQ09ORklHX0NPREFfRlM9bQorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJ R185UF9GUz1tCitDT05GSUdfOVBfRlNDQUNIRT15CitDT05GSUdfOVBfRlNfUE9TSVhfQUNMPXkK K0NPTkZJR185UF9GU19TRUNVUklUWT15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVM VD0idXRmOCIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PW0KK0NPTkZJR19OTFNfQ09ERVBBR0Vf NzM3PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfNzc1PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODUw PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODUyPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODU1PW0K K0NPTkZJR19OTFNfQ09ERVBBR0VfODU3PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODYwPW0KK0NP TkZJR19OTFNfQ09ERVBBR0VfODYxPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODYyPW0KK0NPTkZJ R19OTFNfQ09ERVBBR0VfODYzPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODY0PW0KK0NPTkZJR19O TFNfQ09ERVBBR0VfODY1PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODY2PW0KK0NPTkZJR19OTFNf Q09ERVBBR0VfODY5PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfOTM2PW0KK0NPTkZJR19OTFNfQ09E RVBBR0VfOTUwPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfOTMyPW0KK0NPTkZJR19OTFNfQ09ERVBB R0VfOTQ5PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODc0PW0KK0NPTkZJR19OTFNfSVNPODg1OV84 PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfMTI1MD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzEyNTE9 bQorQ09ORklHX05MU19BU0NJST1tCitDT05GSUdfTkxTX0lTTzg4NTlfMT1tCitDT05GSUdfTkxT X0lTTzg4NTlfMj1tCitDT05GSUdfTkxTX0lTTzg4NTlfMz1tCitDT05GSUdfTkxTX0lTTzg4NTlf ND1tCitDT05GSUdfTkxTX0lTTzg4NTlfNT1tCitDT05GSUdfTkxTX0lTTzg4NTlfNj1tCitDT05G SUdfTkxTX0lTTzg4NTlfNz1tCitDT05GSUdfTkxTX0lTTzg4NTlfOT1tCitDT05GSUdfTkxTX0lT Tzg4NTlfMTM9bQorQ09ORklHX05MU19JU084ODU5XzE0PW0KK0NPTkZJR19OTFNfSVNPODg1OV8x NT1tCitDT05GSUdfTkxTX0tPSThfUj1tCitDT05GSUdfTkxTX0tPSThfVT1tCitDT05GSUdfTkxT X01BQ19ST01BTj1tCitDT05GSUdfTkxTX01BQ19DRUxUSUM9bQorQ09ORklHX05MU19NQUNfQ0VO VEVVUk89bQorQ09ORklHX05MU19NQUNfQ1JPQVRJQU49bQorQ09ORklHX05MU19NQUNfQ1lSSUxM SUM9bQorQ09ORklHX05MU19NQUNfR0FFTElDPW0KK0NPTkZJR19OTFNfTUFDX0dSRUVLPW0KK0NP TkZJR19OTFNfTUFDX0lDRUxBTkQ9bQorQ09ORklHX05MU19NQUNfSU5VSVQ9bQorQ09ORklHX05M U19NQUNfUk9NQU5JQU49bQorQ09ORklHX05MU19NQUNfVFVSS0lTSD1tCitDT05GSUdfTkxTX1VU Rjg9bQorQ09ORklHX0RMTT1tCisjIENPTkZJR19ETE1fREVQUkVDQVRFRF9BUEkgaXMgbm90IHNl dAorQ09ORklHX0RMTV9ERUJVRz15CitDT05GSUdfVU5JQ09ERT15CisjIENPTkZJR19VTklDT0RF X05PUk1BTElaQVRJT05fU0VMRlRFU1QgaXMgbm90IHNldAorQ09ORklHX0lPX1dRPXkKKyMgZW5k IG9mIEZpbGUgc3lzdGVtcworCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKK0NPTkZJR19LRVlT PXkKKyMgQ09ORklHX0tFWVNfUkVRVUVTVF9DQUNIRSBpcyBub3Qgc2V0CitDT05GSUdfUEVSU0lT VEVOVF9LRVlSSU5HUz15CitDT05GSUdfVFJVU1RFRF9LRVlTPW0KK0NPTkZJR19UUlVTVEVEX0tF WVNfVFBNPXkKK0NPTkZJR19FTkNSWVBURURfS0VZUz15CisjIENPTkZJR19VU0VSX0RFQ1JZUFRF RF9EQVRBIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlfREhfT1BFUkFUSU9OUz15CitDT05GSUdfS0VZ X05PVElGSUNBVElPTlM9eQorQ09ORklHX1NFQ1VSSVRZX0RNRVNHX1JFU1RSSUNUPXkKK0NPTkZJ R19TRUNVUklUWT15CitDT05GSUdfU0VDVVJJVFlGUz15CitDT05GSUdfU0VDVVJJVFlfTkVUV09S Sz15CisjIENPTkZJR19TRUNVUklUWV9JTkZJTklCQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NF Q1VSSVRZX05FVFdPUktfWEZSTSBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfUEFUSD15CitD T05GSUdfSEFWRV9IQVJERU5FRF9VU0VSQ09QWV9BTExPQ0FUT1I9eQorQ09ORklHX0hBUkRFTkVE X1VTRVJDT1BZPXkKK0NPTkZJR19GT1JUSUZZX1NPVVJDRT15CisjIENPTkZJR19TVEFUSUNfVVNF Uk1PREVIRUxQRVIgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWCBpcyBub3Qg c2V0CisjIENPTkZJR19TRUNVUklUWV9TTUFDSyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklU WV9UT01PWU8gaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0FQUEFSTU9SPXkKKyMgQ09ORklH X1NFQ1VSSVRZX0FQUEFSTU9SX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9BUFBB Uk1PUl9JTlRST1NQRUNUX1BPTElDWT15CitDT05GSUdfU0VDVVJJVFlfQVBQQVJNT1JfSEFTSD15 CitDT05GSUdfU0VDVVJJVFlfQVBQQVJNT1JfSEFTSF9ERUZBVUxUPXkKK0NPTkZJR19TRUNVUklU WV9BUFBBUk1PUl9FWFBPUlRfQklOQVJZPXkKK0NPTkZJR19TRUNVUklUWV9BUFBBUk1PUl9QQVJB Tk9JRF9MT0FEPXkKKyMgQ09ORklHX1NFQ1VSSVRZX0xPQURQSU4gaXMgbm90IHNldAorQ09ORklH X1NFQ1VSSVRZX1lBTUE9eQorIyBDT05GSUdfU0VDVVJJVFlfU0FGRVNFVElEIGlzIG5vdCBzZXQK KyMgQ09ORklHX1NFQ1VSSVRZX0xPQ0tET1dOX0xTTSBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJ VFlfTEFORExPQ0s9eQorQ09ORklHX0lOVEVHUklUWT15CisjIENPTkZJR19JTlRFR1JJVFlfU0lH TkFUVVJFIGlzIG5vdCBzZXQKK0NPTkZJR19JTlRFR1JJVFlfQVVESVQ9eQorIyBDT05GSUdfSU1B IGlzIG5vdCBzZXQKKyMgQ09ORklHX0VWTSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9TRUNV UklUWV9BUFBBUk1PUj15CisjIENPTkZJR19ERUZBVUxUX1NFQ1VSSVRZX0RBQyBpcyBub3Qgc2V0 CitDT05GSUdfTFNNPSJsYW5kbG9jayx5YW1hLGxvYWRwaW4sc2FmZXNldGlkLGludGVncml0eSIK KworIworIyBLZXJuZWwgaGFyZGVuaW5nIG9wdGlvbnMKKyMKKworIworIyBNZW1vcnkgaW5pdGlh bGl6YXRpb24KKyMKK0NPTkZJR19DQ19IQVNfQVVUT19WQVJfSU5JVF9QQVRURVJOPXkKK0NPTkZJ R19DQ19IQVNfQVVUT19WQVJfSU5JVF9aRVJPX0JBUkU9eQorQ09ORklHX0NDX0hBU19BVVRPX1ZB Ul9JTklUX1pFUk89eQorQ09ORklHX0lOSVRfU1RBQ0tfTk9ORT15CisjIENPTkZJR19JTklUX1NU QUNLX0FMTF9QQVRURVJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOSVRfU1RBQ0tfQUxMX1pFUk8g aXMgbm90IHNldAorQ09ORklHX0lOSVRfT05fQUxMT0NfREVGQVVMVF9PTj15CisjIENPTkZJR19J TklUX09OX0ZSRUVfREVGQVVMVF9PTiBpcyBub3Qgc2V0CitDT05GSUdfQ0NfSEFTX1pFUk9fQ0FM TF9VU0VEX1JFR1M9eQorIyBDT05GSUdfWkVST19DQUxMX1VTRURfUkVHUyBpcyBub3Qgc2V0Cisj IGVuZCBvZiBNZW1vcnkgaW5pdGlhbGl6YXRpb24KKworQ09ORklHX1JBTkRTVFJVQ1RfTk9ORT15 CisjIGVuZCBvZiBLZXJuZWwgaGFyZGVuaW5nIG9wdGlvbnMKKyMgZW5kIG9mIFNlY3VyaXR5IG9w dGlvbnMKKworQ09ORklHX1hPUl9CTE9DS1M9bQorQ09ORklHX0FTWU5DX0NPUkU9bQorQ09ORklH X0FTWU5DX01FTUNQWT1tCitDT05GSUdfQVNZTkNfWE9SPW0KK0NPTkZJR19BU1lOQ19QUT1tCitD T05GSUdfQVNZTkNfUkFJRDZfUkVDT1Y9bQorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRv IGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRP X0FMR0FQSTI9eQorQ09ORklHX0NSWVBUT19BRUFEPXkKK0NPTkZJR19DUllQVE9fQUVBRDI9eQor Q09ORklHX0NSWVBUT19TS0NJUEhFUj15CitDT05GSUdfQ1JZUFRPX1NLQ0lQSEVSMj15CitDT05G SUdfQ1JZUFRPX0hBU0g9eQorQ09ORklHX0NSWVBUT19IQVNIMj15CitDT05GSUdfQ1JZUFRPX1JO Rz15CitDT05GSUdfQ1JZUFRPX1JORzI9eQorQ09ORklHX0NSWVBUT19STkdfREVGQVVMVD15CitD T05GSUdfQ1JZUFRPX0FLQ0lQSEVSMj15CitDT05GSUdfQ1JZUFRPX0FLQ0lQSEVSPXkKK0NPTkZJ R19DUllQVE9fS1BQMj15CitDT05GSUdfQ1JZUFRPX0tQUD15CitDT05GSUdfQ1JZUFRPX0FDT01Q Mj15CitDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSMj15CitD T05GSUdfQ1JZUFRPX1VTRVI9bQorQ09ORklHX0NSWVBUT19NQU5BR0VSX0RJU0FCTEVfVEVTVFM9 eQorQ09ORklHX0NSWVBUT19HRjEyOE1VTD15CitDT05GSUdfQ1JZUFRPX05VTEw9eQorQ09ORklH X0NSWVBUT19OVUxMMj15CitDT05GSUdfQ1JZUFRPX1BDUllQVD1tCitDT05GSUdfQ1JZUFRPX0NS WVBURD1tCitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQorQ09ORklHX0NSWVBUT19URVNUPW0KK0NP TkZJR19DUllQVE9fRU5HSU5FPW0KKyMgZW5kIG9mIENyeXB0byBjb3JlIG9yIGhlbHBlcgorCisj CisjIFB1YmxpYy1rZXkgY3J5cHRvZ3JhcGh5CisjCitDT05GSUdfQ1JZUFRPX1JTQT15CitDT05G SUdfQ1JZUFRPX0RIPXkKK0NPTkZJR19DUllQVE9fREhfUkZDNzkxOV9HUk9VUFM9eQorQ09ORklH X0NSWVBUT19FQ0M9bQorQ09ORklHX0NSWVBUT19FQ0RIPW0KK0NPTkZJR19DUllQVE9fRUNEU0E9 bQorQ09ORklHX0NSWVBUT19FQ1JEU0E9bQorQ09ORklHX0NSWVBUT19TTTI9bQorQ09ORklHX0NS WVBUT19DVVJWRTI1NTE5PW0KKyMgZW5kIG9mIFB1YmxpYy1rZXkgY3J5cHRvZ3JhcGh5CisKKyMK KyMgQmxvY2sgY2lwaGVycworIworQ09ORklHX0NSWVBUT19BRVM9eQorQ09ORklHX0NSWVBUT19B RVNfVEk9bQorQ09ORklHX0NSWVBUT19BTlVCSVM9bQorQ09ORklHX0NSWVBUT19BUklBPW0KK0NP TkZJR19DUllQVE9fQkxPV0ZJU0g9bQorQ09ORklHX0NSWVBUT19CTE9XRklTSF9DT01NT049bQor Q09ORklHX0NSWVBUT19DQU1FTExJQT1tCitDT05GSUdfQ1JZUFRPX0NBU1RfQ09NTU9OPW0KK0NP TkZJR19DUllQVE9fQ0FTVDU9bQorQ09ORklHX0NSWVBUT19DQVNUNj1tCitDT05GSUdfQ1JZUFRP X0RFUz1tCitDT05GSUdfQ1JZUFRPX0ZDUllQVD1tCitDT05GSUdfQ1JZUFRPX0tIQVpBRD1tCitD T05GSUdfQ1JZUFRPX1NFRUQ9bQorQ09ORklHX0NSWVBUT19TRVJQRU5UPW0KK0NPTkZJR19DUllQ VE9fU000PW0KK0NPTkZJR19DUllQVE9fU000X0dFTkVSSUM9bQorQ09ORklHX0NSWVBUT19URUE9 bQorQ09ORklHX0NSWVBUT19UV09GSVNIPW0KK0NPTkZJR19DUllQVE9fVFdPRklTSF9DT01NT049 bQorIyBlbmQgb2YgQmxvY2sgY2lwaGVycworCisjCisjIExlbmd0aC1wcmVzZXJ2aW5nIGNpcGhl cnMgYW5kIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0FESUFOVFVNPW0KK0NPTkZJR19DUllQVE9f QVJDND1tCitDT05GSUdfQ1JZUFRPX0NIQUNIQTIwPW0KK0NPTkZJR19DUllQVE9fQ0JDPXkKK0NP TkZJR19DUllQVE9fQ0ZCPW0KK0NPTkZJR19DUllQVE9fQ1RSPXkKK0NPTkZJR19DUllQVE9fQ1RT PXkKK0NPTkZJR19DUllQVE9fRUNCPXkKK0NPTkZJR19DUllQVE9fSENUUjI9bQorQ09ORklHX0NS WVBUT19LRVlXUkFQPW0KK0NPTkZJR19DUllQVE9fTFJXPW0KK0NPTkZJR19DUllQVE9fT0ZCPW0K K0NPTkZJR19DUllQVE9fUENCQz1tCitDT05GSUdfQ1JZUFRPX1hDVFI9bQorQ09ORklHX0NSWVBU T19YVFM9eQorQ09ORklHX0NSWVBUT19OSFBPTFkxMzA1PW0KKyMgZW5kIG9mIExlbmd0aC1wcmVz ZXJ2aW5nIGNpcGhlcnMgYW5kIG1vZGVzCisKKyMKKyMgQUVBRCAoYXV0aGVudGljYXRlZCBlbmNy eXB0aW9uIHdpdGggYXNzb2NpYXRlZCBkYXRhKSBjaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9f QUVHSVMxMjggaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19DSEFDSEEyMFBPTFkxMzA1PW0KK0NP TkZJR19DUllQVE9fQ0NNPW0KK0NPTkZJR19DUllQVE9fR0NNPXkKK0NPTkZJR19DUllQVE9fU0VR SVY9eQorQ09ORklHX0NSWVBUT19FQ0hBSU5JVj1tCitDT05GSUdfQ1JZUFRPX0VTU0lWPW0KKyMg ZW5kIG9mIEFFQUQgKGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiB3aXRoIGFzc29jaWF0ZWQgZGF0 YSkgY2lwaGVycworCisjCisjIEhhc2hlcywgZGlnZXN0cywgYW5kIE1BQ3MKKyMKK0NPTkZJR19D UllQVE9fQkxBS0UyQj1tCitDT05GSUdfQ1JZUFRPX0NNQUM9bQorQ09ORklHX0NSWVBUT19HSEFT SD15CitDT05GSUdfQ1JZUFRPX0hNQUM9eQorQ09ORklHX0NSWVBUT19NRDQ9bQorQ09ORklHX0NS WVBUT19NRDU9eQorQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz1tCitDT05GSUdfQ1JZUFRPX1BP TFlWQUw9bQorQ09ORklHX0NSWVBUT19QT0xZMTMwNT1tCitDT05GSUdfQ1JZUFRPX1JNRDE2MD1t CitDT05GSUdfQ1JZUFRPX1NIQTE9eQorQ09ORklHX0NSWVBUT19TSEEyNTY9eQorQ09ORklHX0NS WVBUT19TSEE1MTI9eQorQ09ORklHX0NSWVBUT19TSEEzPW0KK0NPTkZJR19DUllQVE9fU00zPW0K K0NPTkZJR19DUllQVE9fU00zX0dFTkVSSUM9bQorQ09ORklHX0NSWVBUT19TVFJFRUJPRz1tCitD T05GSUdfQ1JZUFRPX1ZNQUM9bQorQ09ORklHX0NSWVBUT19XUDUxMj1tCitDT05GSUdfQ1JZUFRP X1hDQkM9bQorQ09ORklHX0NSWVBUT19YWEhBU0g9bQorIyBlbmQgb2YgSGFzaGVzLCBkaWdlc3Rz LCBhbmQgTUFDcworCisjCisjIENSQ3MgKGN5Y2xpYyByZWR1bmRhbmN5IGNoZWNrcykKKyMKK0NP TkZJR19DUllQVE9fQ1JDMzJDPXkKK0NPTkZJR19DUllQVE9fQ1JDMzI9bQorQ09ORklHX0NSWVBU T19DUkNUMTBESUY9eQorQ09ORklHX0NSWVBUT19DUkM2NF9ST0NLU09GVD15CisjIGVuZCBvZiBD UkNzIChjeWNsaWMgcmVkdW5kYW5jeSBjaGVja3MpCisKKyMKKyMgQ29tcHJlc3Npb24KKyMKK0NP TkZJR19DUllQVE9fREVGTEFURT1tCitDT05GSUdfQ1JZUFRPX0xaTz15CitDT05GSUdfQ1JZUFRP Xzg0Mj15CitDT05GSUdfQ1JZUFRPX0xaND1tCitDT05GSUdfQ1JZUFRPX0xaNEhDPW0KK0NPTkZJ R19DUllQVE9fWlNURD15CisjIGVuZCBvZiBDb21wcmVzc2lvbgorCisjCisjIFJhbmRvbSBudW1i ZXIgZ2VuZXJhdGlvbgorIworQ09ORklHX0NSWVBUT19BTlNJX0NQUk5HPW0KK0NPTkZJR19DUllQ VE9fRFJCR19NRU5VPXkKK0NPTkZJR19DUllQVE9fRFJCR19ITUFDPXkKK0NPTkZJR19DUllQVE9f RFJCR19IQVNIPXkKK0NPTkZJR19DUllQVE9fRFJCR19DVFI9eQorQ09ORklHX0NSWVBUT19EUkJH PXkKK0NPTkZJR19DUllQVE9fSklUVEVSRU5UUk9QWT15CitDT05GSUdfQ1JZUFRPX0tERjgwMDEw OF9DVFI9eQorIyBlbmQgb2YgUmFuZG9tIG51bWJlciBnZW5lcmF0aW9uCisKKyMKKyMgVXNlcnNw YWNlIGludGVyZmFjZQorIworQ09ORklHX0NSWVBUT19VU0VSX0FQST1tCitDT05GSUdfQ1JZUFRP X1VTRVJfQVBJX0hBU0g9bQorQ09ORklHX0NSWVBUT19VU0VSX0FQSV9TS0NJUEhFUj1tCitDT05G SUdfQ1JZUFRPX1VTRVJfQVBJX1JORz1tCisjIENPTkZJR19DUllQVE9fVVNFUl9BUElfUk5HX0NB VlAgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19VU0VSX0FQSV9BRUFEPW0KK0NPTkZJR19DUllQ VE9fVVNFUl9BUElfRU5BQkxFX09CU09MRVRFPXkKKyMgQ09ORklHX0NSWVBUT19TVEFUUyBpcyBu b3Qgc2V0CisjIGVuZCBvZiBVc2Vyc3BhY2UgaW50ZXJmYWNlCisKK0NPTkZJR19DUllQVE9fSEFT SF9JTkZPPXkKK0NPTkZJR19DUllQVE9fSFc9eQorQ09ORklHX0NSWVBUT19ERVZfQVRNRUxfSTJD PW0KK0NPTkZJR19DUllQVE9fREVWX0FUTUVMX0VDQz1tCitDT05GSUdfQ1JZUFRPX0RFVl9BVE1F TF9TSEEyMDRBPW0KK0NPTkZJR19DUllQVE9fREVWX1FBVD1tCitDT05GSUdfQ1JZUFRPX0RFVl9R QVRfREg4OTV4Q0M9bQorQ09ORklHX0NSWVBUT19ERVZfUUFUX0MzWFhYPW0KK0NPTkZJR19DUllQ VE9fREVWX1FBVF9DNjJYPW0KK0NPTkZJR19DUllQVE9fREVWX1FBVF80WFhYPW0KK0NPTkZJR19D UllQVE9fREVWX1FBVF9ESDg5NXhDQ1ZGPW0KK0NPTkZJR19DUllQVE9fREVWX1FBVF9DM1hYWFZG PW0KK0NPTkZJR19DUllQVE9fREVWX1FBVF9DNjJYVkY9bQorQ09ORklHX0NSWVBUT19ERVZfTklU Uk9YPW0KK0NPTkZJR19DUllQVE9fREVWX05JVFJPWF9DTk41NVhYPW0KK0NPTkZJR19DUllQVE9f REVWX0NIRUxTSU89bQorQ09ORklHX0NSWVBUT19ERVZfVklSVElPPW0KK0NPTkZJR19DUllQVE9f REVWX1NBRkVYQ0VMPW0KK0NPTkZJR19DUllQVE9fREVWX0NDUkVFPW0KK0NPTkZJR19DUllQVE9f REVWX0FNTE9HSUNfR1hMPW0KKyMgQ09ORklHX0NSWVBUT19ERVZfQU1MT0dJQ19HWExfREVCVUcg aXMgbm90IHNldAorQ09ORklHX0FTWU1NRVRSSUNfS0VZX1RZUEU9eQorQ09ORklHX0FTWU1NRVRS SUNfUFVCTElDX0tFWV9TVUJUWVBFPXkKK0NPTkZJR19YNTA5X0NFUlRJRklDQVRFX1BBUlNFUj15 CitDT05GSUdfUEtDUzhfUFJJVkFURV9LRVlfUEFSU0VSPW0KK0NPTkZJR19QS0NTN19NRVNTQUdF X1BBUlNFUj15CisjIENPTkZJR19QS0NTN19URVNUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfU0lH TkVEX1BFX0ZJTEVfVkVSSUZJQ0FUSU9OPXkKKyMgQ09ORklHX0ZJUFNfU0lHTkFUVVJFX1NFTEZU RVNUIGlzIG5vdCBzZXQKKworIworIyBDZXJ0aWZpY2F0ZXMgZm9yIHNpZ25hdHVyZSBjaGVja2lu ZworIworQ09ORklHX1NZU1RFTV9UUlVTVEVEX0tFWVJJTkc9eQorQ09ORklHX1NZU1RFTV9UUlVT VEVEX0tFWVM9IiIKKyMgQ09ORklHX1NZU1RFTV9FWFRSQV9DRVJUSUZJQ0FURSBpcyBub3Qgc2V0 CisjIENPTkZJR19TRUNPTkRBUllfVFJVU1RFRF9LRVlSSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NZU1RFTV9CTEFDS0xJU1RfS0VZUklORyBpcyBub3Qgc2V0CisjIGVuZCBvZiBDZXJ0aWZpY2F0 ZXMgZm9yIHNpZ25hdHVyZSBjaGVja2luZworCitDT05GSUdfQklOQVJZX1BSSU5URj15CisKKyMK KyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX1JBSUQ2X1BRPW0KK0NPTkZJR19SQUlENl9Q UV9CRU5DSE1BUks9eQorQ09ORklHX0xJTkVBUl9SQU5HRVM9eQorQ09ORklHX1BBQ0tJTkc9eQor Q09ORklHX0JJVFJFVkVSU0U9eQorQ09ORklHX0dFTkVSSUNfU1RSTkNQWV9GUk9NX1VTRVI9eQor Q09ORklHX0dFTkVSSUNfU1RSTkxFTl9VU0VSPXkKK0NPTkZJR19HRU5FUklDX05FVF9VVElMUz15 CitDT05GSUdfQ09SRElDPW0KKyMgQ09ORklHX1BSSU1FX05VTUJFUlMgaXMgbm90IHNldAorQ09O RklHX1JBVElPTkFMPXkKK0NPTkZJR19HRU5FUklDX1BDSV9JT01BUD15CisKKyMKKyMgQ3J5cHRv IGxpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19DUllQVE9fTElCX1VUSUxTPXkKK0NPTkZJR19D UllQVE9fTElCX0FFUz15CitDT05GSUdfQ1JZUFRPX0xJQl9BUkM0PW0KK0NPTkZJR19DUllQVE9f TElCX0JMQUtFMlNfR0VORVJJQz15CitDT05GSUdfQ1JZUFRPX0xJQl9DSEFDSEFfR0VORVJJQz1t CitDT05GSUdfQ1JZUFRPX0xJQl9DSEFDSEE9bQorQ09ORklHX0NSWVBUT19MSUJfQ1VSVkUyNTUx OV9HRU5FUklDPW0KK0NPTkZJR19DUllQVE9fTElCX0NVUlZFMjU1MTk9bQorQ09ORklHX0NSWVBU T19MSUJfREVTPW0KK0NPTkZJR19DUllQVE9fTElCX1BPTFkxMzA1X1JTSVpFPTEKK0NPTkZJR19D UllQVE9fTElCX1BPTFkxMzA1X0dFTkVSSUM9bQorQ09ORklHX0NSWVBUT19MSUJfUE9MWTEzMDU9 bQorQ09ORklHX0NSWVBUT19MSUJfQ0hBQ0hBMjBQT0xZMTMwNT1tCitDT05GSUdfQ1JZUFRPX0xJ Ql9TSEExPXkKK0NPTkZJR19DUllQVE9fTElCX1NIQTI1Nj15CisjIGVuZCBvZiBDcnlwdG8gbGli cmFyeSByb3V0aW5lcworCitDT05GSUdfQ1JDX0NDSVRUPXkKK0NPTkZJR19DUkMxNj15CitDT05G SUdfQ1JDX1QxMERJRj15CitDT05GSUdfQ1JDNjRfUk9DS1NPRlQ9eQorQ09ORklHX0NSQ19JVFVf VD1tCitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDMzJfU0VMRlRFU1QgaXMgbm90IHNldAor Q09ORklHX0NSQzMyX1NMSUNFQlk4PXkKKyMgQ09ORklHX0NSQzMyX1NMSUNFQlk0IGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NSQzMyX1NBUldBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMzJfQklU IGlzIG5vdCBzZXQKK0NPTkZJR19DUkM2ND15CitDT05GSUdfQ1JDND1tCitDT05GSUdfQ1JDNz1t CitDT05GSUdfTElCQ1JDMzJDPW0KK0NPTkZJR19DUkM4PXkKK0NPTkZJR19YWEhBU0g9eQorQ09O RklHX0FVRElUX0dFTkVSSUM9eQorIyBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1QgaXMgbm90IHNl dAorQ09ORklHXzg0Ml9DT01QUkVTUz15CitDT05GSUdfODQyX0RFQ09NUFJFU1M9eQorQ09ORklH X1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19MWk9fQ09NUFJF U1M9eQorQ09ORklHX0xaT19ERUNPTVBSRVNTPXkKK0NPTkZJR19MWjRfQ09NUFJFU1M9bQorQ09O RklHX0xaNEhDX0NPTVBSRVNTPW0KK0NPTkZJR19MWjRfREVDT01QUkVTUz15CitDT05GSUdfWlNU RF9DT01NT049eQorQ09ORklHX1pTVERfQ09NUFJFU1M9eQorQ09ORklHX1pTVERfREVDT01QUkVT Uz15CitDT05GSUdfWFpfREVDPXkKK0NPTkZJR19YWl9ERUNfWDg2PXkKK0NPTkZJR19YWl9ERUNf UE9XRVJQQz15CitDT05GSUdfWFpfREVDX0lBNjQ9eQorQ09ORklHX1haX0RFQ19BUk09eQorQ09O RklHX1haX0RFQ19BUk1USFVNQj15CitDT05GSUdfWFpfREVDX1NQQVJDPXkKK0NPTkZJR19YWl9E RUNfTUlDUk9MWk1BPXkKK0NPTkZJR19YWl9ERUNfQkNKPXkKKyMgQ09ORklHX1haX0RFQ19URVNU IGlzIG5vdCBzZXQKK0NPTkZJR19ERUNPTVBSRVNTX0daSVA9eQorQ09ORklHX0RFQ09NUFJFU1Nf QlpJUDI9eQorQ09ORklHX0RFQ09NUFJFU1NfTFpNQT15CitDT05GSUdfREVDT01QUkVTU19YWj15 CitDT05GSUdfREVDT01QUkVTU19MWk89eQorQ09ORklHX0RFQ09NUFJFU1NfTFo0PXkKK0NPTkZJ R19ERUNPTVBSRVNTX1pTVEQ9eQorQ09ORklHX0dFTkVSSUNfQUxMT0NBVE9SPXkKK0NPTkZJR19S RUVEX1NPTE9NT049bQorQ09ORklHX1JFRURfU09MT01PTl9FTkM4PXkKK0NPTkZJR19SRUVEX1NP TE9NT05fREVDOD15CitDT05GSUdfUkVFRF9TT0xPTU9OX0RFQzE2PXkKK0NPTkZJR19CQ0g9bQor Q09ORklHX1RFWFRTRUFSQ0g9eQorQ09ORklHX1RFWFRTRUFSQ0hfS01QPW0KK0NPTkZJR19URVhU U0VBUkNIX0JNPW0KK0NPTkZJR19URVhUU0VBUkNIX0ZTTT1tCitDT05GSUdfQlRSRUU9eQorQ09O RklHX0lOVEVSVkFMX1RSRUU9eQorQ09ORklHX1hBUlJBWV9NVUxUST15CitDT05GSUdfQVNTT0NJ QVRJVkVfQVJSQVk9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVF9NQVA9 eQorQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0RNQV9PUFM9eQorQ09ORklHX05FRURfRE1BX01B UF9TVEFURT15CitDT05GSUdfQVJDSF9ETUFfQUREUl9UXzY0QklUPXkKK0NPTkZJR19ETUFfREVD TEFSRV9DT0hFUkVOVD15CitDT05GSUdfQVJDSF9IQVNfU0VUVVBfRE1BX09QUz15CitDT05GSUdf QVJDSF9IQVNfU1lOQ19ETUFfRk9SX0RFVklDRT15CitDT05GSUdfQVJDSF9IQVNfU1lOQ19ETUFf Rk9SX0NQVT15CitDT05GSUdfQVJDSF9IQVNfRE1BX1BSRVBfQ09IRVJFTlQ9eQorQ09ORklHX1NX SU9UTEI9eQorIyBDT05GSUdfRE1BX1JFU1RSSUNURURfUE9PTCBpcyBub3Qgc2V0CitDT05GSUdf RE1BX05PTkNPSEVSRU5UX01NQVA9eQorQ09ORklHX0RNQV9DT0hFUkVOVF9QT09MPXkKK0NPTkZJ R19ETUFfRElSRUNUX1JFTUFQPXkKK0NPTkZJR19ETUFfQ01BPXkKK0NPTkZJR19ETUFfUEVSTlVN QV9DTUE9eQorCisjCisjIERlZmF1bHQgY29udGlndW91cyBtZW1vcnkgYXJlYSBzaXplOgorIwor Q09ORklHX0NNQV9TSVpFX01CWVRFUz0wCitDT05GSUdfQ01BX1NJWkVfU0VMX01CWVRFUz15Cisj IENPTkZJR19DTUFfU0laRV9TRUxfUEVSQ0VOVEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DTUFf U0laRV9TRUxfTUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NNQV9TSVpFX1NFTF9NQVggaXMgbm90 IHNldAorQ09ORklHX0NNQV9BTElHTk1FTlQ9OAorIyBDT05GSUdfRE1BX0FQSV9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19ETUFfTUFQX0JFTkNITUFSSyBpcyBub3Qgc2V0CitDT05GSUdfU0dM X0FMTE9DPXkKK0NPTkZJR19DSEVDS19TSUdOQVRVUkU9eQorIyBDT05GSUdfRk9SQ0VfTlJfQ1BV UyBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX1JNQVA9eQorQ09ORklHX0RRTD15CitDT05GSUdfR0xP Qj15CisjIENPTkZJR19HTE9CX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19OTEFUVFI9eQor Q09ORklHX0xSVV9DQUNIRT1tCitDT05GSUdfQ0xaX1RBQj15CitDT05GSUdfSVJRX1BPTEw9eQor Q09ORklHX01QSUxJQj15CitDT05GSUdfRElNTElCPXkKK0NPTkZJR19MSUJGRFQ9eQorQ09ORklH X09JRF9SRUdJU1RSWT15CitDT05GSUdfVUNTMl9TVFJJTkc9eQorQ09ORklHX0hBVkVfR0VORVJJ Q19WRFNPPXkKK0NPTkZJR19HRU5FUklDX0dFVFRJTUVPRkRBWT15CitDT05GSUdfR0VORVJJQ19W RFNPX1RJTUVfTlM9eQorQ09ORklHX0ZPTlRfU1VQUE9SVD15CitDT05GSUdfRk9OVFM9eQorQ09O RklHX0ZPTlRfOHg4PXkKK0NPTkZJR19GT05UXzh4MTY9eQorIyBDT05GSUdfRk9OVF82eDExIGlz IG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfN3gxNCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1BF QVJMXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX0FDT1JOXzh4OCBpcyBub3Qgc2V0Cisj IENPTkZJR19GT05UX01JTklfNHg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfNngxMCBpcyBu b3Qgc2V0CisjIENPTkZJR19GT05UXzEweDE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfU1VO OHgxNiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1NVTjEyeDIyIGlzIG5vdCBzZXQKK0NPTkZJ R19GT05UX1RFUjE2eDMyPXkKKyMgQ09ORklHX0ZPTlRfNng4IGlzIG5vdCBzZXQKK0NPTkZJR19T R19QT09MPXkKK0NPTkZJR19NRU1SRUdJT049eQorQ09ORklHX0FSQ0hfU1RBQ0tXQUxLPXkKK0NP TkZJR19TVEFDS0RFUE9UPXkKK0NPTkZJR19TQklUTUFQPXkKK0NPTkZJR19QQVJNQU49bQorQ09O RklHX09CSkFHRz1tCisjIGVuZCBvZiBMaWJyYXJ5IHJvdXRpbmVzCisKK0NPTkZJR19HRU5FUklD X0lPUkVNQVA9eQorQ09ORklHX0dFTkVSSUNfTElCX0RFVk1FTV9JU19BTExPV0VEPXkKK0NPTkZJ R19QTERNRlc9eQorQ09ORklHX0FTTjFfRU5DT0RFUj1tCitDT05GSUdfUE9MWU5PTUlBTD1tCisK KyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKworIworIyBwcmludGsgYW5kIGRtZXNnIG9wdGlvbnMK KyMKK0NPTkZJR19QUklOVEtfVElNRT15CisjIENPTkZJR19QUklOVEtfQ0FMTEVSIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NUQUNLVFJBQ0VfQlVJTERfSUQgaXMgbm90IHNldAorQ09ORklHX0NPTlNP TEVfTE9HTEVWRUxfREVGQVVMVD03CitDT05GSUdfQ09OU09MRV9MT0dMRVZFTF9RVUlFVD00CitD T05GSUdfTUVTU0FHRV9MT0dMRVZFTF9ERUZBVUxUPTQKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RF TEFZIGlzIG5vdCBzZXQKK0NPTkZJR19EWU5BTUlDX0RFQlVHPXkKK0NPTkZJR19EWU5BTUlDX0RF QlVHX0NPUkU9eQorQ09ORklHX1NZTUJPTElDX0VSUk5BTUU9eQorQ09ORklHX0RFQlVHX0JVR1ZF UkJPU0U9eQorIyBlbmQgb2YgcHJpbnRrIGFuZCBkbWVzZyBvcHRpb25zCisKK0NPTkZJR19ERUJV R19LRVJORUw9eQorQ09ORklHX0RFQlVHX01JU0M9eQorCisjCisjIENvbXBpbGUtdGltZSBjaGVj a3MgYW5kIGNvbXBpbGVyIG9wdGlvbnMKKyMKK0NPTkZJR19ERUJVR19JTkZPPXkKKyMgQ09ORklH X0RFQlVHX0lORk9fTk9ORSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfSU5GT19EV0FSRl9UT09M Q0hBSU5fREVGQVVMVD15CisjIENPTkZJR19ERUJVR19JTkZPX0RXQVJGNCBpcyBub3Qgc2V0Cisj IENPTkZJR19ERUJVR19JTkZPX0RXQVJGNSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19JTkZP X1JFRFVDRUQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfSU5GT19DT01QUkVTU0VEIGlzIG5v dCBzZXQKKyMgQ09ORklHX0RFQlVHX0lORk9fU1BMSVQgaXMgbm90IHNldAorQ09ORklHX0RFQlVH X0lORk9fQlRGPXkKK0NPTkZJR19QQUhPTEVfSEFTX1NQTElUX0JURj15CitDT05GSUdfREVCVUdf SU5GT19CVEZfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfQUxMT1dfQlRGX01JU01BVENIIGlz IG5vdCBzZXQKKyMgQ09ORklHX0dEQl9TQ1JJUFRTIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9X QVJOPTIwNDgKK0NPTkZJR19TVFJJUF9BU01fU1lNUz15CisjIENPTkZJR19SRUFEQUJMRV9BU00g aXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19JTlNUQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19E RUJVR19TRUNUSU9OX01JU01BVENIPXkKK0NPTkZJR19TRUNUSU9OX01JU01BVENIX1dBUk5fT05M WT15CitDT05GSUdfQVJDSF9XQU5UX0ZSQU1FX1BPSU5URVJTPXkKK0NPTkZJR19GUkFNRV9QT0lO VEVSPXkKKyMgQ09ORklHX1ZNTElOVVhfTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19GT1JD RV9XRUFLX1BFUl9DUFU9eQorIyBlbmQgb2YgQ29tcGlsZS10aW1lIGNoZWNrcyBhbmQgY29tcGls ZXIgb3B0aW9ucworCisjCisjIEdlbmVyaWMgS2VybmVsIERlYnVnZ2luZyBJbnN0cnVtZW50cwor IworQ09ORklHX01BR0lDX1NZU1JRPXkKK0NPTkZJR19NQUdJQ19TWVNSUV9ERUZBVUxUX0VOQUJM RT0weDEKK0NPTkZJR19NQUdJQ19TWVNSUV9TRVJJQUw9eQorQ09ORklHX01BR0lDX1NZU1JRX1NF UklBTF9TRVFVRU5DRT0iIgorQ09ORklHX0RFQlVHX0ZTPXkKK0NPTkZJR19ERUJVR19GU19BTExP V19BTEw9eQorIyBDT05GSUdfREVCVUdfRlNfRElTQUxMT1dfTU9VTlQgaXMgbm90IHNldAorIyBD T05GSUdfREVCVUdfRlNfQUxMT1dfTk9ORSBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9BUkNIX0tH REI9eQorQ09ORklHX0hBVkVfQVJDSF9LR0RCX1FYRkVSX1BLVD15CitDT05GSUdfS0dEQj15CitD T05GSUdfS0dEQl9IT05PVVJfQkxPQ0tMSVNUPXkKK0NPTkZJR19LR0RCX1NFUklBTF9DT05TT0xF PXkKKyMgQ09ORklHX0tHREJfVEVTVFMgaXMgbm90IHNldAorQ09ORklHX0tHREJfS0RCPXkKK0NP TkZJR19LREJfREVGQVVMVF9FTkFCTEU9MHgxCitDT05GSUdfS0RCX0tFWUJPQVJEPXkKK0NPTkZJ R19LREJfQ09OVElOVUVfQ0FUQVNUUk9QSElDPTAKK0NPTkZJR19BUkNIX0hBU19VQlNBTl9TQU5J VElaRV9BTEw9eQorIyBDT05GSUdfVUJTQU4gaXMgbm90IHNldAorQ09ORklHX0hBVkVfS0NTQU5f Q09NUElMRVI9eQorIyBlbmQgb2YgR2VuZXJpYyBLZXJuZWwgRGVidWdnaW5nIEluc3RydW1lbnRz CisKKyMKKyMgTmV0d29ya2luZyBEZWJ1Z2dpbmcKKyMKKyMgQ09ORklHX05FVF9ERVZfUkVGQ05U X1RSQUNLRVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX05TX1JFRkNOVF9UUkFDS0VSIGlzIG5v dCBzZXQKKyMgQ09ORklHX0RFQlVHX05FVCBpcyBub3Qgc2V0CisjIGVuZCBvZiBOZXR3b3JraW5n IERlYnVnZ2luZworCisjCisjIE1lbW9yeSBEZWJ1Z2dpbmcKKyMKK0NPTkZJR19QQUdFX0VYVEVO U0lPTj15CisjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAorQ09ORklHX1NMVUJf REVCVUc9eQorIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CitDT05GSUdfUEFHRV9P V05FUj15CisjIENPTkZJR19QQUdFX1RBQkxFX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdF X1BPSVNPTklORz15CisjIENPTkZJR19ERUJVR19QQUdFX1JFRiBpcyBub3Qgc2V0CisjIENPTkZJ R19ERUJVR19ST0RBVEFfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfREVCVUdfV1g9 eQorQ09ORklHX0RFQlVHX1dYPXkKK0NPTkZJR19HRU5FUklDX1BURFVNUD15CitDT05GSUdfUFRE VU1QX0NPUkU9eQorIyBDT05GSUdfUFREVU1QX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdf REVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19TSFJJTktFUl9ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfSEFWRV9ERUJVR19LTUVNTEVBSz15CisjIENPTkZJR19ERUJVR19LTUVNTEVB SyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05G SUdfU0NIRURfU1RBQ0tfRU5EX0NIRUNLPXkKK0NPTkZJR19BUkNIX0hBU19ERUJVR19WTV9QR1RB QkxFPXkKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1ZNX1BH VEFCTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX0RFQlVHX1ZJUlRVQUw9eQorIyBDT05G SUdfREVCVUdfVklSVFVBTCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTUVNT1JZX0lOSVQ9eQor IyBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0FSQ0hf S0FTQU49eQorQ09ORklHX0hBVkVfQVJDSF9LQVNBTl9WTUFMTE9DPXkKK0NPTkZJR19DQ19IQVNf S0FTQU5fR0VORVJJQz15CitDT05GSUdfQ0NfSEFTX1dPUktJTkdfTk9TQU5JVElaRV9BRERSRVNT PXkKKyMgQ09ORklHX0tBU0FOIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0FSQ0hfS0ZFTkNFPXkK KyMgQ09ORklHX0tGRU5DRSBpcyBub3Qgc2V0CisjIGVuZCBvZiBNZW1vcnkgRGVidWdnaW5nCisK KyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKKworIworIyBEZWJ1ZyBPb3BzLCBMb2Nr dXBzIGFuZCBIYW5ncworIworIyBDT05GSUdfUEFOSUNfT05fT09QUyBpcyBub3Qgc2V0CitDT05G SUdfUEFOSUNfT05fT09QU19WQUxVRT0wCitDT05GSUdfUEFOSUNfVElNRU9VVD0wCitDT05GSUdf TE9DS1VQX0RFVEVDVE9SPXkKK0NPTkZJR19TT0ZUTE9DS1VQX0RFVEVDVE9SPXkKKyMgQ09ORklH X0JPT1RQQVJBTV9TT0ZUTE9DS1VQX1BBTklDIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfSFVO R19UQVNLPXkKK0NPTkZJR19ERUZBVUxUX0hVTkdfVEFTS19USU1FT1VUPTEyMAorIyBDT05GSUdf Qk9PVFBBUkFNX0hVTkdfVEFTS19QQU5JQyBpcyBub3Qgc2V0CisjIENPTkZJR19XUV9XQVRDSERP RyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0xPQ0tVUCBpcyBub3Qgc2V0CisjIGVuZCBvZiBE ZWJ1ZyBPb3BzLCBMb2NrdXBzIGFuZCBIYW5ncworCisjCisjIFNjaGVkdWxlciBEZWJ1Z2dpbmcK KyMKK0NPTkZJR19TQ0hFRF9ERUJVRz15CitDT05GSUdfU0NIRURfSU5GTz15CitDT05GSUdfU0NI RURTVEFUUz15CisjIGVuZCBvZiBTY2hlZHVsZXIgRGVidWdnaW5nCisKKyMgQ09ORklHX0RFQlVH X1RJTUVLRUVQSU5HIGlzIG5vdCBzZXQKKworIworIyBMb2NrIERlYnVnZ2luZyAoc3BpbmxvY2tz LCBtdXRleGVzLCBldGMuLi4pCisjCitDT05GSUdfTE9DS19ERUJVR0dJTkdfU1VQUE9SVD15Cisj IENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBu b3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RF QlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNl dAorIyBDT05GSUdfREVCVUdfV1dfTVVURVhfU0xPV1BBVEggaXMgbm90IHNldAorIyBDT05GSUdf REVCVUdfUldTRU1TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90 IHNldAorIyBDT05GSUdfREVCVUdfQVRPTUlDX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RF QlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1RPUlRV UkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19XV19NVVRFWF9TRUxGVEVTVCBpcyBub3Qgc2V0 CisjIENPTkZJR19TQ0ZfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NTRF9MT0NL X1dBSVRfREVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgTG9jayBEZWJ1Z2dpbmcgKHNwaW5sb2Nr cywgbXV0ZXhlcywgZXRjLi4uKQorCisjIENPTkZJR19ERUJVR19JUlFGTEFHUyBpcyBub3Qgc2V0 CitDT05GSUdfU1RBQ0tUUkFDRT15CisjIENPTkZJR19XQVJOX0FMTF9VTlNFRURFRF9SQU5ET00g aXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CisKKyMKKyMgRGVi dWcga2VybmVsIGRhdGEgc3RydWN0dXJlcworIworIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qg c2V0CisjIENPTkZJR19ERUJVR19QTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBp cyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19OT1RJRklFUlMgaXMgbm90IHNldAorIyBDT05GSUdf QlVHX09OX0RBVEFfQ09SUlVQVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NQVBMRV9U UkVFIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERlYnVnIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMKKwor IyBDT05GSUdfREVCVUdfQ1JFREVOVElBTFMgaXMgbm90IHNldAorCisjCisjIFJDVSBEZWJ1Z2dp bmcKKyMKK0NPTkZJR19UT1JUVVJFX1RFU1Q9bQorIyBDT05GSUdfUkNVX1NDQUxFX1RFU1QgaXMg bm90IHNldAorQ09ORklHX1JDVV9UT1JUVVJFX1RFU1Q9bQorQ09ORklHX1JDVV9SRUZfU0NBTEVf VEVTVD1tCitDT05GSUdfUkNVX0NQVV9TVEFMTF9USU1FT1VUPTYwCitDT05GSUdfUkNVX0VYUF9D UFVfU1RBTExfVElNRU9VVD0wCitDT05GSUdfUkNVX1RSQUNFPXkKKyMgQ09ORklHX1JDVV9FUVNf REVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgUkNVIERlYnVnZ2luZworCisjIENPTkZJR19ERUJV R19XUV9GT1JDRV9SUl9DUFUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0hPVFBMVUdfU1RBVEVf Q09OVFJPTCBpcyBub3Qgc2V0CitDT05GSUdfTEFURU5DWVRPUD15CitDT05GSUdfTk9QX1RSQUNF Uj15CitDT05GSUdfSEFWRV9GVU5DVElPTl9UUkFDRVI9eQorQ09ORklHX0hBVkVfRlVOQ1RJT05f R1JBUEhfVFJBQ0VSPXkKK0NPTkZJR19IQVZFX0RZTkFNSUNfRlRSQUNFPXkKK0NPTkZJR19IQVZF X0RZTkFNSUNfRlRSQUNFX1dJVEhfUkVHUz15CitDT05GSUdfSEFWRV9GVFJBQ0VfTUNPVU5UX1JF Q09SRD15CitDT05GSUdfSEFWRV9TWVNDQUxMX1RSQUNFUE9JTlRTPXkKK0NPTkZJR19UUkFDRVJf TUFYX1RSQUNFPXkKK0NPTkZJR19UUkFDRV9DTE9DSz15CitDT05GSUdfUklOR19CVUZGRVI9eQor Q09ORklHX0VWRU5UX1RSQUNJTkc9eQorQ09ORklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUj15CitD T05GSUdfUklOR19CVUZGRVJfQUxMT1dfU1dBUD15CitDT05GSUdfVFJBQ0lORz15CitDT05GSUdf R0VORVJJQ19UUkFDRVI9eQorQ09ORklHX1RSQUNJTkdfU1VQUE9SVD15CitDT05GSUdfRlRSQUNF PXkKK0NPTkZJR19CT09UVElNRV9UUkFDSU5HPXkKK0NPTkZJR19GVU5DVElPTl9UUkFDRVI9eQor Q09ORklHX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15CitDT05GSUdfRFlOQU1JQ19GVFJBQ0U9eQor Q09ORklHX0RZTkFNSUNfRlRSQUNFX1dJVEhfUkVHUz15CitDT05GSUdfRlVOQ1RJT05fUFJPRklM RVI9eQorQ09ORklHX1NUQUNLX1RSQUNFUj15CisjIENPTkZJR19JUlFTT0ZGX1RSQUNFUiBpcyBu b3Qgc2V0CitDT05GSUdfU0NIRURfVFJBQ0VSPXkKK0NPTkZJR19IV0xBVF9UUkFDRVI9eQorQ09O RklHX09TTk9JU0VfVFJBQ0VSPXkKK0NPTkZJR19USU1FUkxBVF9UUkFDRVI9eQorQ09ORklHX0ZU UkFDRV9TWVNDQUxMUz15CitDT05GSUdfVFJBQ0VSX1NOQVBTSE9UPXkKK0NPTkZJR19UUkFDRVJf U05BUFNIT1RfUEVSX0NQVV9TV0FQPXkKK0NPTkZJR19CUkFOQ0hfUFJPRklMRV9OT05FPXkKKyMg Q09ORklHX1BST0ZJTEVfQU5OT1RBVEVEX0JSQU5DSEVTIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtf REVWX0lPX1RSQUNFPXkKK0NPTkZJR19LUFJPQkVfRVZFTlRTPXkKKyMgQ09ORklHX0tQUk9CRV9F VkVOVFNfT05fTk9UUkFDRSBpcyBub3Qgc2V0CitDT05GSUdfVVBST0JFX0VWRU5UUz15CitDT05G SUdfQlBGX0VWRU5UUz15CitDT05GSUdfRFlOQU1JQ19FVkVOVFM9eQorQ09ORklHX1BST0JFX0VW RU5UUz15CitDT05GSUdfQlBGX0tQUk9CRV9PVkVSUklERT15CitDT05GSUdfRlRSQUNFX01DT1VO VF9SRUNPUkQ9eQorQ09ORklHX0ZUUkFDRV9NQ09VTlRfVVNFX1JFQ09SRE1DT1VOVD15CitDT05G SUdfU1lOVEhfRVZFTlRTPXkKKyMgQ09ORklHX1RSQUNFX0VWRU5UX0lOSkVDVCBpcyBub3Qgc2V0 CisjIENPTkZJR19UUkFDRVBPSU5UX0JFTkNITUFSSyBpcyBub3Qgc2V0CitDT05GSUdfUklOR19C VUZGRVJfQkVOQ0hNQVJLPW0KKyMgQ09ORklHX1RSQUNFX0VWQUxfTUFQX0ZJTEUgaXMgbm90IHNl dAorIyBDT05GSUdfRlRSQUNFX1JFQ09SRF9SRUNVUlNJT04gaXMgbm90IHNldAorIyBDT05GSUdf RlRSQUNFX1NUQVJUVVBfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19SSU5HX0JVRkZFUl9TVEFS VFVQX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfUklOR19CVUZGRVJfVkFMSURBVEVfVElNRV9E RUxUQVMgaXMgbm90IHNldAorIyBDT05GSUdfUFJFRU1QVElSUV9ERUxBWV9URVNUIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NZTlRIX0VWRU5UX0dFTl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQ Uk9CRV9FVkVOVF9HRU5fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19SViBpcyBub3Qgc2V0Cisj IENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19TVFJJQ1RfREVWTUVNPXkKK0NPTkZJ R19JT19TVFJJQ1RfREVWTUVNPXkKKworIworIyByaXNjdiBEZWJ1Z2dpbmcKKyMKKyMgZW5kIG9m IHJpc2N2IERlYnVnZ2luZworCisjCisjIEtlcm5lbCBUZXN0aW5nIGFuZCBDb3ZlcmFnZQorIwor IyBDT05GSUdfS1VOSVQgaXMgbm90IHNldAorIyBDT05GSUdfTk9USUZJRVJfRVJST1JfSU5KRUNU SU9OIGlzIG5vdCBzZXQKK0NPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT049eQorIyBDT05G SUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19LQ09WPXkKK0NP TkZJR19DQ19IQVNfU0FOQ09WX1RSQUNFX1BDPXkKKyMgQ09ORklHX0tDT1YgaXMgbm90IHNldAor Q09ORklHX1JVTlRJTUVfVEVTVElOR19NRU5VPXkKKyMgQ09ORklHX0xLRFRNIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RFU1RfTUlOX0hFQVAgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9ESVY2NCBp cyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKKyMgQ09O RklHX1RFU1RfUkVGX1RSQUNLRVIgaXMgbm90IHNldAorIyBDT05GSUdfUkJUUkVFX1RFU1QgaXMg bm90IHNldAorIyBDT05GSUdfUkVFRF9TT0xPTU9OX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdf SU5URVJWQUxfVFJFRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BFUkNQVV9URVNUIGlzIG5v dCBzZXQKKyMgQ09ORklHX0FUT01JQzY0X1NFTEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19BU1lO Q19SQUlENl9URVNUPW0KKyMgQ09ORklHX1RFU1RfSEVYRFVNUCBpcyBub3Qgc2V0CisjIENPTkZJ R19TVFJJTkdfU0VMRlRFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9TVFJJTkdfSEVMUEVS UyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1NUUlNDUFkgaXMgbm90IHNldAorIyBDT05GSUdf VEVTVF9LU1RSVE9YIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfUFJJTlRGIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RFU1RfU0NBTkYgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9CSVRNQVAgaXMg bm90IHNldAorIyBDT05GSUdfVEVTVF9VVUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfWEFS UkFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTUFQTEVfVFJFRSBpcyBub3Qgc2V0CisjIENP TkZJR19URVNUX1JIQVNIVEFCTEUgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9TSVBIQVNIIGlz IG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfSURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfUEFS TUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTEtNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RF U1RfQklUT1BTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfVk1BTExPQyBpcyBub3Qgc2V0Cisj IENPTkZJR19URVNUX1VTRVJfQ09QWSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0JQRiBpcyBu b3Qgc2V0CisjIENPTkZJR19URVNUX0JMQUNLSE9MRV9ERVYgaXMgbm90IHNldAorIyBDT05GSUdf RklORF9CSVRfQkVOQ0hNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfRklSTVdBUkUgaXMg bm90IHNldAorIyBDT05GSUdfVEVTVF9TWVNDVEwgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9V REVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9TVEFUSUNfS0VZUyBpcyBub3Qgc2V0Cisj IENPTkZJR19URVNUX0RZTkFNSUNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9LTU9E IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTUVNQ0FUX1AgaXMgbm90IHNldAorIyBDT05GSUdf VEVTVF9PQkpBR0cgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9NRU1JTklUIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RFU1RfRlJFRV9QQUdFUyBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9VU0VfTUVN VEVTVD15CitDT05GSUdfTUVNVEVTVD15CisjIGVuZCBvZiBLZXJuZWwgVGVzdGluZyBhbmQgQ292 ZXJhZ2UKKworIworIyBSdXN0IGhhY2tpbmcKKyMKKyMgZW5kIG9mIFJ1c3QgaGFja2luZworIyBl bmQgb2YgS2VybmVsIGhhY2tpbmcKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjEvdGVtcGxh dGUgYi9zcmNwa2dzL2xpbnV4Ni4xL3RlbXBsYXRlCmluZGV4IDQzMjc2NmFkOWViM2MuLjA1OTQ4 Y2I2ZWU4ZTUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGludXg2LjEvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9saW51eDYuMS90ZW1wbGF0ZQpAQCAtMTgsNyArMTgsNyBAQCBjaGVja3N1bT0iMmNhMWYx NzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2IyNWRl YgogcHl0aG9uX3ZlcnNpb249MwogCiAjIFhYWCBSZXN0cmljdCBhcmNocyB1bnRpbCBhIHByb3Bl ciA8YXJjaD4tZG90Y29uZmlnIGlzIGF2YWlsYWJsZSBpbiBGSUxFU0RJUi4KLWFyY2hzPSJ4ODZf NjQqIGk2ODYqIGFhcmNoNjQqIHBwYyoiCithcmNocz0ieDg2XzY0KiBpNjg2KiBhYXJjaDY0KiBw cGMqIHJpc2N2NjQqIgogCiBub2RlYnVnPXllcyAgIyAtZGJnIHBhY2thZ2UgaXMgZ2VuZXJhdGVk IGJlbG93IG1hbnVhbGx5CiBub3N0cmlwPXllcwpAQCAtNzksNiArNzksNyBAQCBkb19jb25maWd1 cmUoKSB7CiAJCXBwYzY0KikgYXJjaD1wb3dlcnBjOyBzdWJhcmNoPXBwYzY0OzsKIAkJcHBjKikg YXJjaD1wb3dlcnBjOyBzdWJhcmNoPXBwYzs7CiAJCW1pcHMqKSBhcmNoPW1pcHM7OworCQlyaXNj djY0KikgYXJjaD1yaXNjdjs7CiAJZXNhYwogCiAJaWYgWyAtZiAke0ZJTEVTRElSfS8ke3N1YmFy Y2g6LSRhcmNofS1kb3Rjb25maWctY3VzdG9tIF07IHRoZW4KQEAgLTkwLDYgKzkxLDcgQEAgZG9f Y29uZmlndXJlKCkgewogCQljcCAtZiAke0ZJTEVTRElSfS8ke3N1YmFyY2g6LSRhcmNofS1kb3Rj b25maWcgLmNvbmZpZwogCQltYWtlICR7bWFrZWpvYnN9IEFSQ0g9JGFyY2ggJHtfY3Jvc3N9IG9s ZGNvbmZpZwogCWZpCisKIAkjIEFsd2F5cyB1c2Ugb3VyIHJldmlzaW9uIHRvIENPTkZJR19MT0NB TFZFUlNJT04gdG8gbWF0Y2ggb3VyIHBrZyB2ZXJzaW9uLgogCXNlZCAtaSAtZSAic3xeXChDT05G SUdfTE9DQUxWRVJTSU9OPVwpLip8XDFcIl8ke3JldmlzaW9ufVwifCIgLmNvbmZpZwogfQpAQCAt MTA0LDYgKzEwNiw3IEBAIGRvX2J1aWxkKCkgewogCQlhYXJjaDY0KikgX2FyZ3M9IkltYWdlIG1v ZHVsZXMgZHRicyI7IGFyY2g9YXJtNjQ7OwogCQlwcGMqKSBfYXJncz0iekltYWdlIG1vZHVsZXMi OyBhcmNoPXBvd2VycGM7OwogCQltaXBzKikgX2FyZ3M9InVJbWFnZSBtb2R1bGVzIGR0YnMiOyBh cmNoPW1pcHM7OworCQlyaXNjdjY0KikgX2FyZ3M9IkltYWdlIG1vZHVsZXMgZHRicyI7IGFyY2g9 cmlzY3Y7OwogCWVzYWMKIAlleHBvcnQgTERGTEFHUz0KIAltYWtlIEFSQ0g9JGFyY2ggJHtfY3Jv c3N9ICR7bWFrZWpvYnN9IHByZXBhcmUKQEAgLTEyMCw2ICsxMjMsNyBAQCBkb19pbnN0YWxsKCkg ewogCQlhYXJjaDY0KikgYXJjaD1hcm02NDs7CiAJCXBwYyopIGFyY2g9cG93ZXJwYzs7CiAJCW1p cHMqKSBhcmNoPW1pcHM7OworCQlyaXNjdiopIGFyY2g9cmlzY3Y7OwogCWVzYWMKIAogCSMgUnVu IGRlcG1vZCBhZnRlciBjb21wcmVzc2luZyBtb2R1bGVzIC0gbWFrZXMgZGVwbW9kLnNoIGEgbm9v cApAQCAtMTU3LDYgKzE2MSwxMCBAQCBkb19pbnN0YWxsKCkgewogCQkJdmluc3RhbGwgYXJjaC9t aXBzL2Jvb3QvdUltYWdlLmJpbiA2NDQgYm9vdCB1SW1hZ2UtJHtfa2VybnZlcn0KIAkJCW1ha2Ug JHttYWtlam9ic30gQVJDSD0ke3N1YmFyY2g6LSRhcmNofSBJTlNUQUxMX0RUQlNfUEFUSD0ke0RF U1RESVJ9L2Jvb3QvZHRicy9kdGJzLSR7X2tlcm52ZXJ9ICR7X2Nyb3NzfSBkdGJzX2luc3RhbGwK IAkJCTs7CisJCXJpc2N2KQorCQkJdmluc3RhbGwgYXJjaC9yaXNjdi9ib290L0ltYWdlIDY0NCBi b290IHZtbGludXgtJHtfa2VybnZlcn0KKwkJCW1ha2UgJHttYWtlam9ic30gQVJDSD0ke3N1YmFy Y2g6LSRhcmNofSBJTlNUQUxMX0RUQlNfUEFUSD0ke0RFU1RESVJ9L2Jvb3QvZHRicy9kdGJzLSR7 X2tlcm52ZXJ9ICR7X2Nyb3NzfSBkdGJzX2luc3RhbGwKKwkJCTs7CiAJZXNhYwogCiAJIyBTd2l0 Y2ggdG8gL3Vzci4KQEAgLTI4OSw2ICsyOTcsNyBAQCBkb19pbnN0YWxsKCkgewogCQlhcm18YXJt NjQpIF9hcmdzPSJ4ODYqIG0qIHAqIjs7CiAJCXBvd2VycGMpIF9hcmdzPSJhcm0qIG0qIHg4Niog cGFyaXNjIjs7CiAJCW1pcHMpIF9hcmdzPSJhcm0qIHg4NiogcCoiOzsKKwkJcmlzY3YpIF9hcmdz PSJhcm0qIG0qIHg4NiogcCoiOzsKIAllc2FjCiAJZm9yIGFyY2ggaW4gYWxwaGEgYXZyMzIgYmxh Y2tmaW4gY3JpcyBmcnYgaDgzMDAgXAogCQlpYTY0IHMqIHVtIHY4NTAgeHRlbnNhICR7X2FyZ3N9 OyBkbwoKRnJvbSA4NWI1ODE3N2VjYjJiZGNhY2NkOTQ0Yzc5YjBjZmY4NGVmMDM1YTYxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6 IFNhdCwgNCBGZWIgMjAyMyAxNzoxMzoxMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTE5LzE4OV0g dGh1bmRlcmJpcmQ6IGFkZCByaXNjdjY0IHBhdGNoZXMKCi0tLQogc3JjcGtncy90aHVuZGVyYmly ZC90ZW1wbGF0ZSB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90aHVuZGVyYmlyZC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvdGh1bmRlcmJpcmQvdGVtcGxhdGUKaW5kZXggNWNmOGZlZDgyMGRmOS4uNzhlYjMxODE2 ZTg4NSAxMDA2NDQKLS0tIGEvc3JjcGtncy90aHVuZGVyYmlyZC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3RodW5kZXJiaXJkL3RlbXBsYXRlCkBAIC0zMyw3ICszMyw2IEBAIGNhc2UgJFhCUFNfVEFS R0VUX01BQ0hJTkUgaW4KIAlhcm12WzU2XSopIGJyb2tlbj0icmVxdWlyZWQgTkVPTiBleHRlbnNp b25zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIGFybXY2IiA7OwogCXBwYzY0KikgOzsKIAlwcGMqKSBi cm9rZW49InhwdGNhbGwgYml0cm90IiA7OwotCXJpc2N2NjQqKSBicm9rZW49IlNvbWUgcnVzdCBj cmF0ZXMgbmVlZCB1cGRhdGluZyIgOzsKIGVzYWMKIAogIyB0cnkgdG8gbWluaW1pemUgbWVtb3J5 IHVzYWdlIHZpYSBkZWJ1ZyBzeW1ib2xzCkBAIC03MCw2ICs2OSw4IEBAIHBvc3RfcGF0Y2goKSB7 CiAJX2NsZWFyX3ZlbmRvcl9jaGVja3N1bXMgbnVtLXRyYWl0cwogCV9jbGVhcl92ZW5kb3JfY2hl Y2tzdW1zIGdsc2xvcHQKIAlfY2xlYXJfdmVuZG9yX2NoZWNrc3VtcyBtcDRwYXJzZQorCV9jbGVh cl92ZW5kb3JfY2hlY2tzdW1zIG5peAorCV9jbGVhcl92ZW5kb3JfY2hlY2tzdW1zIGF1dGhlbnRp Y2F0b3IKIH0KIAogZG9fYnVpbGQoKSB7CgpGcm9tIDU1N2U2ZmM1OTc0ZWU2MzAxMzhhMWQ0Y2My MTJhY2NhYjFlMWJmNjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCA3IEZlYiAyMDIzIDEyOjQ2OjIyICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAxMjAvMTg5XSBuaW06IGFkZCByaXNjdjY0IHN1cHBvcnQgdG8gdGVtcGxhdGUK Ci0tLQogc3JjcGtncy9uaW0vdGVtcGxhdGUgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbmltL3RlbXBs YXRlIGIvc3JjcGtncy9uaW0vdGVtcGxhdGUKaW5kZXggMTc1ZGNiYWVhODQzOS4uMWUwYTVmNTIy MGI4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9uaW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9uaW0v dGVtcGxhdGUKQEAgLTQ1LDEwICs0NSwxMSBAQCBkb19idWlsZCgpIHsKIAkJcHBjNjRsZSopIF9h cmNoPXBvd2VycGM2NGVsOzsKIAkJcHBjNjQqKSBfYXJjaD1wb3dlcnBjNjQ7OwogCQlwcGMqKSBf YXJjaD1wb3dlcnBjOzsKKwkJcmlzY3Y2NCopIF9hcmNoPXJpc2N2NjQ7OwogCWVzYWMKIAogCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIgotCWluIGFybSp8YWFyY2g2NCp8cHBjKikKKwlpbiBh cm0qfGFhcmNoNjQqfHBwYyp8cmlzY3Y2NCopCiAJCXZzZWQgLWkgY29uZmlnL25pbS5jZmcgLWUg J3MvXmFybVwubGludXhcLmdjY1wuXChsaW5rZXJcKVw/ZXhlIC8jJi8nCiAJCWNhdCA+PmNvbmZp Zy9uaW0uY2ZnIDw8LUVESVQKIAkJIyBWT0lETElOVVggVEVNUAoKRnJvbSAyZTZhMmQ4NmQ5YmFi MTdiYWY5M2Y4MzNjZTIyNmYwYTQ1NDM3ZjNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgNyBGZWIgMjAyMyAxMzoyNDo1 OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIxLzE4OV0gcmVzdmc6IHVwZGF0ZSB0byAwLjI5LjAu Cgp0aGUgdXN2ZyB0b29sIHdhcyByZW1vdmVkIHVwc3RlYW0gYW5kIG1pZ2h0IGJlIGEgc2VwZXJh dGUgcHJvamVjdCBpbiB0aGUgZnV0dXJlCmh0dHBzOi8vZ2l0aHViLmNvbS9SYXpyRmFsY29uL3Jl c3ZnL2lzc3Vlcy81NjgKLS0tCiBzcmNwa2dzL3Jlc3ZnL3BhdGNoZXMvUVBhaW50ZXJQYXRoLnBh dGNoIHwgMjAgLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3Jlc3ZnL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgIHwgMzEgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDEzIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcmVzdmcvcGF0Y2hlcy9RUGFpbnRlclBhdGgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3Jlc3ZnL3BhdGNoZXMvUVBhaW50ZXJQYXRoLnBhdGNoIGIvc3JjcGtncy9yZXN2Zy9wYXRj aGVzL1FQYWludGVyUGF0aC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODcw YTFiZTMwODBlNy4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3Jlc3ZnL3BhdGNoZXMvUVBh aW50ZXJQYXRoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tIGEvY2Fw aS9pbmNsdWRlL1Jlc3ZnUXQuaAkyMDE5LTAzLTIxIDIxOjUwOjA5LjcxOTI5NjgwNSArMDEwMAot KysrIGIvY2FwaS9pbmNsdWRlL1Jlc3ZnUXQuaAkyMDIwLTA5LTAxIDAxOjIwOjQzLjkwMzU3MDY5 NSArMDIwMAotQEAgLTIzLDYgKzIzLDcgQEAKLSAjaW5jbHVkZSA8UUZpbGU+Ci0gI2luY2x1ZGUg PFFHdWlBcHBsaWNhdGlvbj4KLSAjaW5jbHVkZSA8UVBhaW50ZXI+Ci0rI2luY2x1ZGUgPFFQYWlu dGVyUGF0aD4KLSAjaW5jbHVkZSA8UVJlY3RGPgotICNpbmNsdWRlIDxRU2NvcGVkUG9pbnRlcj4K LSAjaW5jbHVkZSA8UVNjcmVlbj4KLS0tLSBhL3Jlc3ZnLXF0L2NwcC9xdF9jYXBpLmNwcAkyMDE5 LTAzLTIxIDIxOjUwOjA5LjcxOTI5NjgwNSArMDEwMAotKysrIGIvcmVzdmctcXQvY3BwL3F0X2Nh cGkuY3BwCTIwMjAtMDktMDEgMDE6MjM6MTkuNTk0NTc4NzI3ICswMjAwCi1AQCAtMSw2ICsxLDcg QEAKLSAjaW5jbHVkZSA8UUd1aUFwcGxpY2F0aW9uPgotICNpbmNsdWRlIDxRSW1hZ2U+Ci0gI2lu Y2x1ZGUgPFFQYWludGVyPgotKyNpbmNsdWRlIDxRUGFpbnRlclBhdGg+Ci0gI2luY2x1ZGUgPFFE ZWJ1Zz4KLSAKLSAjaW5jbHVkZSAicXRfY2FwaS5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Jl c3ZnL3RlbXBsYXRlIGIvc3JjcGtncy9yZXN2Zy90ZW1wbGF0ZQppbmRleCBjNDhlNTJhZTJmMmU2 Li45NDg3Yzk4MjU4YzlmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Jlc3ZnL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcmVzdmcvdGVtcGxhdGUKQEAgLTEsNDEgKzEsMzYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3Jlc3ZnJwogcGtnbmFtZT1yZXN2ZwotdmVyc2lvbj0wLjYuMQordmVyc2lvbj0wLjI5 LjAKIHJldmlzaW9uPTEKK2J1aWxkX3N0eWxlPWNhcmdvCiBidWlsZF9oZWxwZXI9InJ1c3QiCi1o b3N0bWFrZWRlcGVuZHM9ImNhcmdvIHF0NS1ob3N0LXRvb2xzIHBrZy1jb25maWciCi1tYWtlZGVw ZW5kcz0icGFuZ28tZGV2ZWwgY2Fpcm8tZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbCBydXN0LXN0ZCBx dDUtZGV2ZWwiCitob3N0bWFrZWRlcGVuZHM9ImNhcmdvIgorbWFrZWRlcGVuZHM9InJ1c3Qtc3Rk Igogc2hvcnRfZGVzYz0iU1ZHIHJlbmRlcmluZyBsaWJyYXJ5IHdyaXR0ZW4gaW4gUnVzdCIKIG1h aW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNUEwt Mi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9SYXpyRmFsY29uL3Jlc3ZnIgogZGlz dGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vUmF6ckZhbGNvbi9yZXN2Zy9yZWxlYXNlcy9kb3du bG9hZC92JHt2ZXJzaW9ufS9yZXN2Zy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTcyMDZm NzlmNjdiNGM4NjEwMzUzMTM0YzM3NWVkM2ZmOWM1ZWI2M2IxNmZhZTI2N2I5NDczMGMyM2ViZTRl ZTEKK2NoZWNrc3VtPWJhODJmNTM0ODg5OWU0ZGM4NjljNTdkYzBhNjE2YWI4YmQxNTM3NDZhYmVk ZTc5ODMwZDc4Y2E5YzE4NGRkNjAKIAotZG9fYnVpbGQoKSB7Ci0JZm9yIGRpciBpbiBjYXBpIHRv b2xzL3tyZW5kZXIsdX1zdmc7IGRvCi0JKAorcG9zdF9idWlsZCgpIHsKKwlmb3IgZGlyIGluIGMt YXBpOyBkbworCQkoCiAJCWNkICRkaXIKLQkJaWYgZ3JlcCAtcSBjYWlyby1iYWNrZW5kIENhcmdv LnRvbWw7IHRoZW4KLQkJCWNhcmdvIGJ1aWxkIC0tcmVsZWFzZSAtLXRhcmdldCAke1JVU1RfVEFS R0VUfSAtLWZlYXR1cmVzPSJxdC1iYWNrZW5kIGNhaXJvLWJhY2tlbmQiCi0JCWVsc2UKLQkJCWNh cmdvIGJ1aWxkIC0tcmVsZWFzZSAtLXRhcmdldCAke1JVU1RfVEFSR0VUfQotCQlmaQotCSkKKwkJ Y2FyZ28gYXVkaXRhYmxlIGJ1aWxkIC0tcmVsZWFzZSAtLXRhcmdldCAke1JVU1RfVEFSR0VUfQor CQkpCiAJZG9uZQogfQogCiBkb19pbnN0YWxsKCkgewotCWZvciB0IGluIHtyZW5kZXIsdX1zdmc7 IGRvCi0JCXZiaW4gdGFyZ2V0LyR7UlVTVF9UQVJHRVR9L3JlbGVhc2UvJHQKLQlkb25lCisJdmJp biB0YXJnZXQvJHtSVVNUX1RBUkdFVH0vcmVsZWFzZS9yZXN2ZwogCiAJIyBJbnN0YWxsIGxpYnJh cnkgYXMgbGlicmVzdmcuc28uMCBhbmQgbWFrZSB0aGUgc29saW5rCiAJdmluc3RhbGwgdGFyZ2V0 LyR7UlVTVF9UQVJHRVR9L3JlbGVhc2UvbGlicmVzdmcuc28gNzU1IHVzci9saWIgbGlicmVzdmcu c28uMAogCWxuIC1ycyAiJHtERVNURElSfSIvdXNyL2xpYi9saWJyZXN2Zy5zby4wICIke0RFU1RE SVJ9Ii91c3IvbGliL2xpYnJlc3ZnLnNvCiAKLQl2aW5zdGFsbCBjYXBpL2luY2x1ZGUvcmVzdmcu aCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCBjYXBpL2luY2x1ZGUvUmVzdmdRdC5oIDY0NCB1 c3IvaW5jbHVkZQorCXZpbnN0YWxsIGMtYXBpL3Jlc3ZnLmggNjQ0IHVzci9pbmNsdWRlCisJdmlu c3RhbGwgYy1hcGkvUmVzdmdRdC5oIDY0NCB1c3IvaW5jbHVkZQogfQogCiBsaWJyZXN2ZzBfcGFj a2FnZSgpIHsKCkZyb20gMmQzYmNmZTAwN2Q1YjU4ZGEzMmQxNGNjOTU5MzNjNzYzMGNmOTVkOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpE YXRlOiBUdWUsIDcgRmViIDIwMjMgMTM6Mjg6MDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDEyMi8x ODldIGtsaWJjOiBhZGQgcmlzY3Ygc3VwcG9ydCB0byB0ZW1wbGF0ZQoKLS0tCiBzcmNwa2dzL2ts aWJjL3RlbXBsYXRlIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2tsaWJjL3RlbXBsYXRlIGIvc3JjcGtncy9rbGliYy90ZW1wbGF0ZQpp bmRleCA1MGM3M2RlYjQ1NGU4Li4xODlmODNmNDJkM2EwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ts aWJjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva2xpYmMvdGVtcGxhdGUKQEAgLTMyLDYgKzMyLDcg QEAgX21ha2UoKSB7CiAJCXBwYyopIF9hcmNoPXBwYyA7OwogCQltaXBzKjY0KikgX2FyY2g9bWlw czY0IDs7CiAJCW1pcHMqKSBfYXJjaD1taXBzIDs7CisJCXJpc2N2NjQqKSBfYXJjaD1yaXNjdjY0 IDs7CiAJCSopIG1zZ19lcnJvciAibm90IHN1cHBvcnRlZCIgOzsKIAllc2FjCiAJUEFUSD0vdXNy L2JpbgoKRnJvbSA2NjFiMWE4ODZiNTAxMGFiNjg3ODk5MGZiZjRiMTI5MThjODhkZDgzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6 IFR1ZSwgNyBGZWIgMjAyMyAxMzo1Njo1NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTIzLzE4OV0g cGF6aTogdXBkYXRlIGxpYmMgY3JhdGUgZm9yIHJpc2N2NjQgY29tcGF0CgotLS0KIHNyY3BrZ3Mv cGF6aS90ZW1wbGF0ZSB8IDUgKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3BhemkvdGVtcGxhdGUgYi9zcmNwa2dzL3BhemkvdGVtcGxh dGUKaW5kZXggOTRkNTQxOWVkMjZkYi4uNDFhZmEwNDhiNzNmMSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9wYXppL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcGF6aS90ZW1wbGF0ZQpAQCAtOSwzICs5LDgg QEAgbGljZW5zZT0iR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9l dWFuay9wYXppIgogZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9hcmNoaXZlL3Yke3ZlcnNpb259LnRh ci5neiIKIGNoZWNrc3VtPWY1MTM1NjE0NTFiMjlmZWQ2ZDRlYjMzODc1MjRkZjU5N2I1ODExY2Q3 NzQ0ZWFjNzdkOTZlMzY4MDIyYjZhZGMKKworcHJlX2J1aWxkKCkgeworCSMgTmV3ZXIgbGliYyBu ZWVkZWQgZm9yIHJpc2N2NjQKKwljYXJnbyB1cGRhdGUgLS1wYWNrYWdlIGxpYmMgLS1wcmVjaXNl IDAuMi4xMzkKK30KCkZyb20gOWZkZDQ4ZjI3YmY3MDc4YjU1OGMzNjUzMDM3NGEzNmM3Y2ViMzIz NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PgpEYXRlOiBUdWUsIDcgRmViIDIwMjMgMTQ6MTY6MTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEy NC8xODldIHVnZGI6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0IGNvbXBhdAoKLS0tCiBz cmNwa2dzL3VnZGIvdGVtcGxhdGUgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy91Z2RiL3RlbXBsYXRlIGIvc3JjcGtncy91Z2Ri L3RlbXBsYXRlCmluZGV4IDQzMzNkZDJiNTNmYTAuLjE1MmQzMjRlN2RiYmYgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvdWdkYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3VnZGIvdGVtcGxhdGUKQEAgLTEz LDYgKzEzLDExIEBAIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZnRpbGRlL3VnZGIiCiBk aXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1 bT1kMDkyMzU2NTM0Nzc0NTA1YjZiMDgxYjgyZGI3MWQxZmFiMWZiY2NkYjgxNGE0NGQ0YzQzNWJh ZmU1ZWZkMzEyCiAKK3ByZV9idWlsZCgpIHsKKwkjIE5ld2VyIGxpYmMgbmVlZGVkIGZvciByaXNj djY0CisJY2FyZ28gdXBkYXRlIC0tcGFja2FnZSBsaWJjIC0tcHJlY2lzZSAwLjIuMTM5Cit9CisK IHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBMSUNFTlNFCiB9CgpGcm9tIDlmMGE2YWY4MTll ZjAwNTYzMjU5ZTE5NjRkMjljMzZmMmQyMGRjMTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCA3IEZlYiAyMDIzIDE0OjE3 OjIwICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMjUvMTg5XSByb3Q4OiB1cGRhdGUgbGliYyBjcmF0 ZSBmb3IgcmlzY3Y2NCBjb21wYXQKCi0tLQogc3JjcGtncy9yb3Q4L3RlbXBsYXRlIHwgNSArKysr KwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cm90OC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvcm90OC90ZW1wbGF0ZQppbmRleCBiNmUyNGE3ZmIyMjhh Li4yZTg5MGYyZDQ4OTQxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3JvdDgvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9yb3Q4L3RlbXBsYXRlCkBAIC0xMCw2ICsxMCwxMSBAQCBob21lcGFnZT0iaHR0cHM6 Ly9naXRodWIuY29tL2VmZXJuYXUvcm90OCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29t L2VmZXJuYXUvcm90OC9hcmNoaXZlL3JlZnMvdGFncy92JHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVj a3N1bT1kOGRhZTUwNWEwZjczNmU2NDYyZDQ3NDVkOWFkYzMzMGFmZDkxNzdmY2JhMjVhMDJlNzM2 NTBiZGZlMjk1NDk1CiAKK3ByZV9idWlsZCgpIHsKKwkjIE5ld2VyIGxpYmMgbmVlZGVkIGZvciBy aXNjdjY0CisJY2FyZ28gdXBkYXRlIC0tcGFja2FnZSBsaWJjIC0tcHJlY2lzZSAwLjIuMTM5Cit9 CisKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBMSUNFTlNFCiB9CgpGcm9tIDZlYWNmY2Zh ZjAzYmY3N2I5ODQ1OTIxYzc5YTIyYjMxMmUzYWMyMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCA3IEZlYiAyMDIzIDE1 OjMwOjAyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMjYvMTg5XSBsaWJmaXJtOiBtYXJrIGJyb2tl biBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3MvbGliZmlybS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGliZmlybS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZmlybS90ZW1wbGF0ZQppbmRleCAz NjkwYWU0OTNjMWEwLi4xNjE4MWQ3NmEwY2UwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmZpcm0v dGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJmaXJtL3RlbXBsYXRlCkBAIC0xMiw3ICsxMiw3IEBA IGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL01hdHplQi8ke3BrZ25hbWV9L2FyY2hpdmUv JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhCiBjaGVja3N1bT0yZTY4MWRiNjI2MTBhNDEzOTRmMWFh M2E2MjU4M2FjZmY4YTY3Y2VhMTM4MzU0YmU2YjNkMmQ4ZDM5MDY2NWMzCiAKIGNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgotCWFhcmNoNjQqfHBwYyopIGJyb2tlbj0iVW5zdXBwb3J0ZWQg bG9uZyBkb3VibGUgZm9ybWF0IiA7OworCWFhcmNoNjQqfHBwYyp8cmlzY3Y2NCopIGJyb2tlbj0i VW5zdXBwb3J0ZWQgbG9uZyBkb3VibGUgZm9ybWF0IiA7OwogZXNhYwogCiBkb19jb25maWd1cmUo KSB7CgpGcm9tIGJmNTNjMWQwMzMzNTI5MTJmMmQ0ODI1YWE0NDgwOTYyMWUyYjA5MzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTog VHVlLCA3IEZlYiAyMDIzIDE1OjQ0OjM1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMjcvMTg5XSBz bHVybS13bG06IGFkZCBweXRob24zIHRvIGhvc3RkZXBzIHRvIGZpeCBidWlsZAoKLS0tCiBzcmNw a2dzL3NsdXJtLXdsbS90ZW1wbGF0ZSB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2x1cm0td2xtL3Rl bXBsYXRlIGIvc3JjcGtncy9zbHVybS13bG0vdGVtcGxhdGUKaW5kZXggNDQwNWVkNDZmYzFiMS4u ZDhhZDMwNDc2YjUxOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9zbHVybS13bG0vdGVtcGxhdGUKKysr IGIvc3JjcGtncy9zbHVybS13bG0vdGVtcGxhdGUKQEAgLTUsNyArNSw3IEBAIHJldmlzaW9uPTQK IF9kaXN0dmVyPSIke3ZlcnNpb24vLy4vLX0iCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXN0YXRpYyIKLWhvc3RtYWtlZGVwZW5kcz0icGVybCBj Z2l0IHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9InBlcmwgY2dpdCBwa2ctY29uZmlnIHB5 dGhvbjMiCiAjIFhYWDogb2ZlZCwgRGF0YVdhcnAsIG5ldGxvYywgYmxjcgogbWFrZWRlcGVuZHM9 Im11bmdlLWRldmVsIGx1YTUzLWRldmVsIHBhbS1kZXZlbCBvcGVuc3NsLWRldmVsIGd0aystZGV2 ZWwKICBuY3Vyc2VzLWRldmVsIHJlYWRsaW5lLWRldmVsIGxpYm1hcmlhZGJjbGllbnQtZGV2ZWwg anNvbi1jLWRldmVsIGxpYmh3bG9jLWRldmVsCkBAIC0yMyw2ICsyMyw4IEBAIENGTEFHUz0iLWZj b21tb24iCiAjIGh0dHBzOi8vYnVncy5zY2hlZG1kLmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MjQ0Mwog TERGTEFHUz0iLVdsLC16LGxhenkiCiAKKyNicm9rZW49Ii91c3IvYmluL2Vudjog4oCYcHl0aG9u 4oCZOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IgorCiBpZiBbICIkWEJQU19UQVJHRVRfV09S RFNJWkUiID0gIjMyIiBdOyB0aGVuCiAJIyBjb25maWd1cmU6IGVycm9yOiAzMi1iaXQgc3VwcG9y dCBpcyBkZXByZWNhdGVkLCBhbmQgbm90IHRlc3RlZAogCSMgcmVndWxhcmx5LiBVc2UgYXQgeW91 ciBvd24gcmlzay4KCkZyb20gNmE3MTUzOGE1ODc0MWRkNzhkZDk0NTY5NjM1ZmUyODMyYzc5Mzk0 ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PgpEYXRlOiBUdWUsIDcgRmViIDIwMjMgMTY6MTA6MzMgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy OC8xODldIGdzbC11Y2c6IGFkZCBwYXRjaCBmb3IgcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL2dzbC11 Y2cvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ3NsLXVjZy9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dz bC11Y2cvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoIGIvc3JjcGtncy9nc2wtdWNnL3BhdGNoZXMvcmlz Y3Y2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi45NTYy MTRiNTU1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nc2wtdWNnL3BhdGNoZXMvcmlz Y3Y2NC5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0gYS9zcmMvc2ZsLmgJMjAxNy0wOS0xMyAx NTozNTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjMtMDItMDcgMTY6MDk6MjYuOTcxMDU5 ODQ5ICswMTAwCitAQCAtMTMwLDcgKzEzMCw4IEBACisgCisgI2lmIChkZWZpbmVkIChfXzY0QklU X18pIHx8IGRlZmluZWQgKF9feDg2XzY0X18pIHx8IGRlZmluZWQgKF9fQUFSQ0g2NEVMX18pIFwK KyAgICAgfHwgZGVmaW5lZCAoX19QUEM2NF9fKSB8fCBkZWZpbmVkIChfX3Bvd2VycGM2NF9fKSB8 fCBkZWZpbmVkIChfX3BwYzY0X18pIFwKKy0gICAgfHwgZGVmaW5lZCAoX19zMzkweF9fKSkKKysg ICAgfHwgZGVmaW5lZCAoX19zMzkweF9fKSkgXAorKyAgICB8fCBkZWZpbmVkIChfX3Jpc2N2NjQp IHx8IChkZWZpbmVkIChfX3Jpc2N2X3hsZW4pICYmIF9fcmlzY3ZfeGxlbiA9PSA2NCkKKyAjICAg IGRlZmluZSBfX0lTXzY0QklUX18gICAgICAgICAgICAgICAgLyogIE1heSBoYXZlIDY0LWJpdCBP Uy9jb21waWxlciAgICAgICovCisgI2Vsc2UKKyAjICAgIGRlZmluZSBfX0lTXzMyQklUX18gICAg ICAgICAgICAgICAgLyogIEVsc2UgYXNzdW1lIDMyLWJpdCBPUy9jb21waWxlciAgICovCistLS0g YS9zcmMvcHJlbHVkZS5oCTIwMTctMDktMTMgMTU6MzU6NDkuMDAwMDAwMDAwICswMjAwCisrKysg LQkyMDIzLTAyLTA3IDE2OjA5OjUwLjM4NzcyMjMzMSArMDEwMAorQEAgLTkxLDcgKzkxLDggQEAK KyAKKyAjaWYgKGRlZmluZWQgKF9fNjRCSVRfXykgfHwgZGVmaW5lZCAoX194ODZfNjRfXykgfHwg ZGVmaW5lZCAoX19BQVJDSDY0RUxfXykgXAorICAgICB8fCBkZWZpbmVkIChfX1BQQzY0X18pIHx8 IGRlZmluZWQgKF9fcG93ZXJwYzY0X18pIHx8IGRlZmluZWQgKF9fcHBjNjRfXykgXAorLSAgICB8 fCBkZWZpbmVkIChfX3MzOTB4X18pKQorKyAgICB8fCBkZWZpbmVkIChfX3MzOTB4X18pKSBcCisr ICAgIHx8IGRlZmluZWQgKF9fcmlzY3Y2NCkgfHwgKGRlZmluZWQgKF9fcmlzY3ZfeGxlbikgJiYg X19yaXNjdl94bGVuID09IDY0KQorICMgICAgZGVmaW5lIF9fSVNfNjRCSVRfXyAgICAgICAgICAg ICAgICAvKiAgTWF5IGhhdmUgNjQtYml0IE9TL2NvbXBpbGVyICAgICAgKi8KKyAjZWxzZQorICMg ICAgZGVmaW5lIF9fSVNfMzJCSVRfXyAgICAgICAgICAgICAgICAvKiAgRWxzZSBhc3N1bWUgMzIt Yml0IE9TL2NvbXBpbGVyICAgKi8KCkZyb20gOGRmZDkwYjM1ODljYjM1YmJjMTJmMzRkZWFkYzIy MWZmYTI3MGU1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDcgRmViIDIwMjMgMTY6NDk6MDQgKzAxMDAKU3ViamVjdDog W1BBVENIIDEyOS8xODldIG5yZzJpc286IGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL25yZzJpc28v dGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25yZzJpc28vdGVtcGxhdGUgYi9zcmNwa2dzL25y ZzJpc28vdGVtcGxhdGUKaW5kZXggYTRiY2Y0MGU1NTdiNi4uN2JlOTE2YTRmNTMzZSAxMDA2NDQK LS0tIGEvc3JjcGtncy9ucmcyaXNvL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbnJnMmlzby90ZW1w bGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9bnJnMmlzbwogdmVyc2lvbj0wLjQuMQogcmV2 aXNpb249MQotYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCitidWlsZF93cmtzcmM9IiRwa2duYW1l LSR7dmVyc2lvbn0iCiBzaG9ydF9kZXNjPSJTaW1wbGUgdG9vbCB0byBjb252ZXJ0IGZyb20gTmVy byBCdXJuaW5nIFJvbSAoTlJHKSB0byBJU08iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFu QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vbmx5IgoKRnJvbSA5NWNiNTc0Yjlk YjgwNjIzZDEyODM1NGNhODBmYzJkMDZjM2Q4OWM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgNyBGZWIgMjAyMyAxNjo1 Nzo1MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMwLzE4OV0gb3BlbmJsYXM6IGFkZCByaXNjdjY0 IHN1cHBvcnQgdG8gdGVtcGxhdGUKCi0tLQogc3JjcGtncy9vcGVuYmxhcy90ZW1wbGF0ZSB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuYmxhcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmJsYXMvdGVtcGxhdGUKaW5kZXggNjFhODkx YTg2YTMwZC4uZDM5NzMwMzk2ODdkYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuYmxhcy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL29wZW5ibGFzL3RlbXBsYXRlCkBAIC0zMCw2ICszMCw3IEBAIGNh c2UgIiR7WEJQU19UQVJHRVRfTUFDSElORX0iIGluCiAJcHBjNjRsZSopIG1ha2VfYnVpbGRfYXJn cys9IiBUQVJHRVQ9UE9XRVI4IERZTkFNSUNfQVJDSD0xIiA7OwogCXBwYzY0KikgbWFrZV9idWls ZF9hcmdzKz0iIFRBUkdFVD1QUEM5NzBNUCIgOzsgIyBkeW5hbWljIGFyY2ggYnJva2VuIGZvciA8 cG93ZXI2CiAJcHBjKikgbWFrZV9idWlsZF9hcmdzKz0iIFRBUkdFVD1QUENHNCIgOzsKKwlyaXNj djY0KikgbWFrZV9idWlsZF9hcmdzKz0iIFRBUkdFVD1SSVNDVjY0X0dFTkVSSUMgRFlOQU1JQ19B UkNIPTEiIDs7CiAJbWlwcyopIGJyb2tlbj0iTm90IHN1cHBvcnRlZCIgOzsKIAkqKSBicm9rZW49 IkFkZCB5b3VyIENQVSIgOzsKIGVzYWMKCkZyb20gMThlNDBlN2U4ZDA5NzJmOTBjNzY3YjVjZDll ODBjYjU0OWY1Nzg2MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDcgRmViIDIwMjMgMTc6MDk6MzYgKzAxMDAKU3ViamVj dDogW1BBVENIIDEzMS8xODldIGljZS1zc2I6IGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2ljZS1z c2IvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ljZS1zc2IvdGVtcGxhdGUgYi9zcmNwa2dz L2ljZS1zc2IvdGVtcGxhdGUKaW5kZXggZDg2OWRlZmViMTYwZC4uNWI3OTBkYzkxYzBkOCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9pY2Utc3NiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaWNlLXNzYi90 ZW1wbGF0ZQpAQCAtNCw3ICs0LDcgQEAgdmVyc2lvbj02LjAuOAogcmV2aXNpb249MgogZGVwZW5k cz0iZ3RrKzMgcHl0aG9uMy1CZWF1dGlmdWxTb3VwNCBweXRob24zLWdvYmplY3QgcHl0aG9uMy1y ZXF1ZXN0cyIKIHNob3J0X2Rlc2M9IlNpdGUgU3BlY2lmaWMgQnJvd3NlcnMgKFNTQnMpIG1hbmFn ZXIiCi1tYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbWFpbnRhaW5lcj0i T3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL3BlcHBlcm1pbnRvcy9pY2UvIgogY2hh bmdlbG9nPSJodHRwczovL2dpdGh1Yi5jb20vcGVwcGVybWludG9zL2ljZS9ibG9iLyR7dmVyc2lv bn0vZGViaWFuL2NoYW5nZWxvZyIKCkZyb20gM2MxODg3Y2RiMWZkNGYzMTBjODg0Yjk3ZGExMGIz ZTk2Mjk5NDc4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PgpEYXRlOiBUdWUsIDcgRmViIDIwMjMgMTc6Mjc6MDAgKzAxMDAKU3ViamVjdDog W1BBVENIIDEzMi8xODldIGkzbG9ja3I6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0IGNv bXBhdAoKLS0tCiBzcmNwa2dzL2kzbG9ja3IvdGVtcGxhdGUgfCA1ICsrKysrCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pM2xvY2tyL3RlbXBs YXRlIGIvc3JjcGtncy9pM2xvY2tyL3RlbXBsYXRlCmluZGV4IDlkNWYzZWMyNDc2MTguLjVmMThl MTVkMjljM2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaTNsb2Nrci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2kzbG9ja3IvdGVtcGxhdGUKQEAgLTEyLDYgKzEyLDExIEBAIGhvbWVwYWdlPSJodHRwczov L2dpdGh1Yi5jb20vb3dlbnRoZXdpemFyZC9pM2xvY2tyIgogZGlzdGZpbGVzPSIke2hvbWVwYWdl fS9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKIGNoZWNrc3VtPWQ0YjMxZmI2N2NiYjRkMjMx NDM3ZTAyNTg5MTQ2YTFjZmVhN2Q0OWFmYmFmMTIzMTA5ZjZiMGVlYzM1OWQ3MWMKIAorcHJlX2J1 aWxkKCkgeworCSMgTmV3ZXIgbGliYyBuZWVkZWQgZm9yIHJpc2N2NjQKKwljYXJnbyB1cGRhdGUg LS1wYWNrYWdlIGxpYmMgLS1wcmVjaXNlIDAuMi4xMzkKK30KKwogcG9zdF9pbnN0YWxsKCkgewog CXZsaWNlbnNlIExJQ0VOU0UtTUlULm1kCiB9CgpGcm9tIDg0OGFkYmUyNTJmMDhiMTZhZjY5N2Rl ZTA4ZTMwNjZiZWFhMzRmZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCA3IEZlYiAyMDIzIDIxOjU3OjUwICswMTAwClN1 YmplY3Q6IFtQQVRDSCAxMzMvMTg5XSBkaWpvOiB1cGRhdGUgbGliYyBjcmF0ZSBmb3IgcmlzY3Y2 NCBjb21wYXQKCi0tLQogc3JjcGtncy9kaWpvL3RlbXBsYXRlIHwgNSArKysrKwogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGlqby90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZGlqby90ZW1wbGF0ZQppbmRleCBmMWJmNGRkNWE5YTE0Li43OTdhMzk1Y2Mx YjUyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Rpam8vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kaWpv L3RlbXBsYXRlCkBAIC0xMSw2ICsxMSwxMSBAQCBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29t L05lcmR5UGVwcGVyL2Rpam8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9OZXJkeVBl cHBlci9kaWpvL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgogY2hlY2tzdW09ZDgyY2U3YWRi MTllNTIwNmUwMTRmMGE4OTVmZTNlZDM2MWYzMjA4ODA0ODExNmU5ZDMzYWVhMzdmM2NjY2IwMAog CitwcmVfYnVpbGQoKSB7CisJIyBOZXdlciBsaWJjIG5lZWRlZCBmb3IgcmlzY3Y2NAorCWNhcmdv IHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAtLXByZWNpc2UgMC4yLjEzOQorfQorCiBwb3N0X2luc3Rh bGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSAyZjAxNWE4ZGY1MmRiYTFiNGMyY2Iw NWE3ZmU4NDgxYTBkNjJkMDBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgNyBGZWIgMjAyMyAyMjoxOTozMyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTM0LzE4OV0gbXVtYmxlOiBmaXggYnVpbGQgd2l0aCBuZXdlciBtdXNs CgotLS0KIHNyY3BrZ3MvaGFyZGluZm8vdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2hhcmRpbmZvL3RlbXBsYXRl IGIvc3JjcGtncy9oYXJkaW5mby90ZW1wbGF0ZQppbmRleCAwODc2ODdiZmEwNmNlLi5hZTZkYTcw ZTU2NGZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2hhcmRpbmZvL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvaGFyZGluZm8vdGVtcGxhdGUKQEAgLTE0LDYgKzE0LDEwIEBAIGRpc3RmaWxlcz0iJHtTT1VS Q0VGT1JHRV9TSVRFfS8ke3BrZ25hbWV9LmJlcmxpb3MvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci5iejIiCiBjaGVja3N1bT1hMGRmNmMwZDdjOTJhN2QyMDcxMGI4ZWI1NTExOTczOThhOTY1YWFh ZTA1Mzc4MmI4OWEzMmExNjBiNzMxYjdhCiBsaWIzMmRpc2FibGVkPXllcwogCitjYXNlICIkWEJQ U19UQVJHRVRfTUFDSElORSIgaW4KKwlyaXNjdjY0KikgYnJva2VuPSJZb3VyIGFyY2hpdGVjdHVy ZSBpcyBub3Qgc3VwcG9ydGVkIHlldC4gUGxlYXNlIHNlbmQgdGhlIjs7Citlc2FjCisKIHBvc3Rf cGF0Y2goKSB7CiAJbG9jYWwgX2FyY2gKIAlfYXJjaD0iJHtYQlBTX1RBUkdFVF9NQUNISU5FJS0q fSIKCkZyb20gYThmOWE5MzBmYTNkOWQxNTk0NWU1Njk2YjUxYTJmZGVmZDRhMDhmOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBU dWUsIDcgRmViIDIwMjMgMjI6MjY6MTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDEzNS8xODldIGdl dGRuczogbWFyayBicm9rZW4KCi0tLQogc3JjcGtncy9nZXRkbnMvdGVtcGxhdGUgfCA1ICsrKyst CiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nZXRkbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dldGRucy90ZW1wbGF0ZQpp bmRleCA2NzY3MmUxOWZmMzBmLi4wNGY2NjgxYzhlOTIzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dl dGRucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dldGRucy90ZW1wbGF0ZQpAQCAtMyw3ICszLDgg QEAgcGtnbmFtZT1nZXRkbnMKIHZlcnNpb249MS43LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PWNtYWtlCi1tYWtlZGVwZW5kcz0ibGliZXYtZGV2ZWwgbGliaWRuLWRldmVsIGxpYnV2LWRldmVs IHVuYm91bmQtZGV2ZWwKK2NvbmZpZ3VyZV9hcmdzPSItLXRyYWNlLWV4cGFuZCIKK21ha2VkZXBl bmRzPSJsaWJldi1kZXZlbCBsaWJ1di1kZXZlbCB1bmJvdW5kLWRldmVsCiAgY2hlY2stZGV2ZWwg bGliaWRuMi1kZXZlbCIKIHNob3J0X2Rlc2M9Ik1vZGVybiBhc3luY2hyb25vdXMgRE5TIEFQSSIK IG1haW50YWluZXI9IkZyYW5rIFN0ZWluYm9ybiA8c3RlaW5leEBub2dudS5kZT4iCkBAIC0xNCw2 ICsxNSw4IEBAIGNoZWNrc3VtPWVhODcxM2NlNWUwNzdhYzc2YjE0MThjZWI2YWZkMjVlNmQ0ZTM5 ZTk2MDBmNmY1ZTgxZDNhM2ExM2E2MGY2NTIKICMgR2l0SHViIEFjdGlvbnMgZmFpbCBkdWUgdG8g bm8gSVB2NgogbWFrZV9jaGVjaz1jaS1za2lwCiAKK2Jyb2tlbj0iRnVuIHJlZ2V4IGluIGNtYWtl IHRvIGdldCBsaWJpZG4yIHZlcnNpb24iCisKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBM SUNFTlNFCiB9CgpGcm9tIGY1MmU1NDVlYTdmNWRiMjRhODM2ZWUyYzExODlkOTRiNDZlZTEzYzEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4K RGF0ZTogVHVlLCA3IEZlYiAyMDIzIDIyOjQxOjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMzYv MTg5XSB3YWl0Zm9yZmlsZTogdXBkYXRlIGxpYmMgY3JhdGUgZm9yIHJpc2N2NjQgY29tcGF0Cgot LS0KIHNyY3BrZ3Mvd2FpdGZvcmZpbGUvdGVtcGxhdGUgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93YWl0Zm9yZmlsZS90ZW1w bGF0ZSBiL3NyY3BrZ3Mvd2FpdGZvcmZpbGUvdGVtcGxhdGUKaW5kZXggYjZmNGIzYzI0OWYzMC4u YTk3ZWUzMWU5Y2U3NSAxMDA2NDQKLS0tIGEvc3JjcGtncy93YWl0Zm9yZmlsZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3dhaXRmb3JmaWxlL3RlbXBsYXRlCkBAIC0xMCw2ICsxMCwxMSBAQCBob21l cGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL25yb2kvd2FpdGZvcmZpbGUiCiBkaXN0ZmlsZXM9IiR7 aG9tZXBhZ2V9L2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgogY2hlY2tzdW09ZTYzYzdiOTY0 ZDRiNDc1ZjRkODRmYmE2MmE4YjJlNDM1OTNjYmU3M2M3Y2U0ODQwNDc0ODM2YTk3OGNhMDFhMwog CitwcmVfYnVpbGQoKSB7CisJIyBOZXdlciBsaWJjIG5lZWRlZCBmb3IgcmlzY3Y2NAorCWNhcmdv IHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAtLXByZWNpc2UgMC4yLjEzOQorfQorCiBwb3N0X2luc3Rh bGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSAxZjMzNjI4MzVjMzFhZDU0MTg3YmQ3 MzQxN2VlM2I0ZmY0ZjA4MmQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwgNyBGZWIgMjAyMyAyMjo1NDoxNyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTM3LzE4OV0gdG9rZWk6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNj djY0IGNvbXBhdAoKLS0tCiBzcmNwa2dzL3Rva2VpL3RlbXBsYXRlIHwgNSArKysrKwogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdG9rZWkvdGVt cGxhdGUgYi9zcmNwa2dzL3Rva2VpL3RlbXBsYXRlCmluZGV4IGVmOTlkNzY3NzdlNzQuLjY3MDZk ZTBiZDBiZTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdG9rZWkvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy90b2tlaS90ZW1wbGF0ZQpAQCAtMTcsNiArMTcsMTEgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCiAJKikgOzsKIGVzYWMKIAorcHJlX2J1aWxkKCkgeworCSMgTmV3ZXIgbGliYyBu ZWVkZWQgZm9yIHJpc2N2NjQKKwljYXJnbyB1cGRhdGUgLS1wYWNrYWdlIGxpYmMgLS1wcmVjaXNl IDAuMi4xMzkKK30KKwogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIExJQ0VOQ0UtTUlUCiB9 CgpGcm9tIDFiMDRkOTkxYWM3ODdhZjZmODAwMjJjMDEzMzE4YzNhYjZkNTNiM2QgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU2F0 LCAxMSBGZWIgMjAyMyAxOTowOTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTM4LzE4OV0gTmV3 IHBhY2thZ2U6IFZpc2lvbmZpdmUyLWtlcm5lbC01LjE1LjAKCi0tLQogc3JjcGtncy9WaXNpb25m aXZlMi1rZXJuZWwtZGJnICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmNwa2dzL1Zpc2lvbmZp dmUyLWtlcm5lbC1oZWFkZXJzICAgICAgICAgICAgfCAgICAxICsKIHNyY3BrZ3MvVmlzaW9uZml2 ZTIta2VybmVsL2ZpbGVzL2RvdGNvbmZpZyAgICB8IDkzMjIgKysrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvVmlzaW9uZml2ZTIta2VybmVsL2ZpbGVzL212LWRlYnVnICAgICB8ICAgIDcgKwogLi4u L3BhdGNoZXMvMDAwMS1nY2MxMi5wYXRjaCAgICAgICAgICAgICAgICAgIHwgICA1NSArCiAuLi4v cGF0Y2hlcy8wMDAyLWdjYzEyLnBhdGNoICAgICAgICAgICAgICAgICAgfCAgIDU1ICsKIC4uLi9w bHMtZG9udC1waWNrLW9ubHktaGFsZi1hLXBhdGNoLnBhdGNoICAgICB8ICAgMTMgKwogc3JjcGtn cy9WaXNpb25maXZlMi1rZXJuZWwvdGVtcGxhdGUgICAgICAgICAgIHwgIDI0NCArCiA4IGZpbGVz IGNoYW5nZWQsIDk2OTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mv VmlzaW9uZml2ZTIta2VybmVsLWRiZwogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvVmlzaW9u Zml2ZTIta2VybmVsLWhlYWRlcnMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL1Zpc2lvbmZp dmUyLWtlcm5lbC9maWxlcy9kb3Rjb25maWcKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmNwa2dzL1Zp c2lvbmZpdmUyLWtlcm5lbC9maWxlcy9tdi1kZWJ1ZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvVmlzaW9uZml2ZTIta2VybmVsL3BhdGNoZXMvMDAwMS1nY2MxMi5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvVmlzaW9uZml2ZTIta2VybmVsL3BhdGNoZXMvMDAwMi1nY2MxMi5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvVmlzaW9uZml2ZTIta2VybmVsL3BhdGNo ZXMvcGxzLWRvbnQtcGljay1vbmx5LWhhbGYtYS1wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvVmlzaW9uZml2ZTIta2VybmVsL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9WaXNpb25maXZlMi1rZXJuZWwtZGJnIGIvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwt ZGJnCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMDAuLmYwOWFhOTJhYzQ4 ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1Zpc2lvbmZpdmUyLWtlcm5lbC1kYmcKQEAg LTAsMCArMSBAQAorVmlzaW9uZml2ZTIta2VybmVsClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwtaGVhZGVycyBiL3NyY3Br Z3MvVmlzaW9uZml2ZTIta2VybmVsLWhlYWRlcnMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg MDAwMDAwMDAwMDAwMC4uZjA5YWE5MmFjNDhlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv VmlzaW9uZml2ZTIta2VybmVsLWhlYWRlcnMKQEAgLTAsMCArMSBAQAorVmlzaW9uZml2ZTIta2Vy bmVsClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9WaXNp b25maXZlMi1rZXJuZWwvZmlsZXMvZG90Y29uZmlnIGIvc3JjcGtncy9WaXNpb25maXZlMi1rZXJu ZWwvZmlsZXMvZG90Y29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAuLjA2ZTQ1ZDZlYjAyYjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1Zpc2lvbmZpdmUy LWtlcm5lbC9maWxlcy9kb3Rjb25maWcKQEAgLTAsMCArMSw5MzIyIEBACisjCisjIEF1dG9tYXRp Y2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgorIyBMaW51eC9yaXNjdiA1LjE1LjAg S2VybmVsIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19DQ19WRVJTSU9OX1RFWFQ9InJpc2N2NjQt bGludXgtZ251LWdjYyAoR0NDKSAxMi4yLjAiCitDT05GSUdfQ0NfSVNfR0NDPXkKK0NPTkZJR19H Q0NfVkVSU0lPTj0xMjAyMDAKK0NPTkZJR19DTEFOR19WRVJTSU9OPTAKK0NPTkZJR19BU19JU19H TlU9eQorQ09ORklHX0FTX1ZFUlNJT049MjM5MDAKK0NPTkZJR19MRF9JU19CRkQ9eQorQ09ORklH X0xEX1ZFUlNJT049MjM5MDAKK0NPTkZJR19MTERfVkVSU0lPTj0wCitDT05GSUdfQ0NfQ0FOX0xJ Tks9eQorQ09ORklHX0NDX0NBTl9MSU5LX1NUQVRJQz15CitDT05GSUdfQ0NfSEFTX0FTTV9HT1RP PXkKK0NPTkZJR19DQ19IQVNfQVNNX0dPVE9fT1VUUFVUPXkKK0NPTkZJR19DQ19IQVNfQVNNX0lO TElORT15CitDT05GSUdfQ0NfSEFTX05PX1BST0ZJTEVfRk5fQVRUUj15CitDT05GSUdfSVJRX1dP Uks9eQorQ09ORklHX0JVSUxEVElNRV9UQUJMRV9TT1JUPXkKK0NPTkZJR19USFJFQURfSU5GT19J Tl9UQVNLPXkKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfSU5JVF9FTlZfQVJHX0xJ TUlUPTMyCisjIENPTkZJR19DT01QSUxFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfV0VSUk9S IGlzIG5vdCBzZXQKK0NPTkZJR19MT0NBTFZFUlNJT049Il8xIgorIyBDT05GSUdfTE9DQUxWRVJT SU9OX0FVVE8gaXMgbm90IHNldAorQ09ORklHX0JVSUxEX1NBTFQ9IiIKK0NPTkZJR19ERUZBVUxU X0lOSVQ9IiIKK0NPTkZJR19ERUZBVUxUX0hPU1ROQU1FPSIobm9uZSkiCitDT05GSUdfU1dBUD15 CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorQ09ORklHX1BPU0lY X01RVUVVRT15CitDT05GSUdfUE9TSVhfTVFVRVVFX1NZU0NUTD15CitDT05GSUdfV0FUQ0hfUVVF VUU9eQorQ09ORklHX0NST1NTX01FTU9SWV9BVFRBQ0g9eQorIyBDT05GSUdfVVNFTElCIGlzIG5v dCBzZXQKK0NPTkZJR19BVURJVD15CitDT05GSUdfSEFWRV9BUkNIX0FVRElUU1lTQ0FMTD15CitD T05GSUdfQVVESVRTWVNDQUxMPXkKKworIworIyBJUlEgc3Vic3lzdGVtCisjCitDT05GSUdfR0VO RVJJQ19JUlFfU0hPVz15CitDT05GSUdfR0VORVJJQ19JUlFfU0hPV19MRVZFTD15CitDT05GSUdf R0VORVJJQ19JUlFfTUlHUkFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0lSUV9JTkpFQ1RJT049eQor Q09ORklHX0dFTkVSSUNfSVJRX0NISVA9eQorQ09ORklHX0lSUV9ET01BSU49eQorQ09ORklHX0lS UV9TSU09eQorQ09ORklHX0lSUV9ET01BSU5fSElFUkFSQ0hZPXkKK0NPTkZJR19HRU5FUklDX01T SV9JUlE9eQorQ09ORklHX0dFTkVSSUNfTVNJX0lSUV9ET01BSU49eQorQ09ORklHX0hBTkRMRV9E T01BSU5fSVJRPXkKK0NPTkZJR19JUlFfRk9SQ0VEX1RIUkVBRElORz15CitDT05GSUdfU1BBUlNF X0lSUT15CisjIENPTkZJR19HRU5FUklDX0lSUV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgZW5kIG9m IElSUSBzdWJzeXN0ZW0KKworQ09ORklHX0dFTkVSSUNfSVJRX01VTFRJX0hBTkRMRVI9eQorQ09O RklHX0FSQ0hfQ0xPQ0tTT1VSQ0VfSU5JVD15CitDT05GSUdfR0VORVJJQ19USU1FX1ZTWVNDQUxM PXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19BUkNIX0hBU19USUNLX0JS T0FEQ0FTVD15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1Q9eQorCisjCisj IFRpbWVycyBzdWJzeXN0ZW0KKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0ha X0NPTU1PTj15CisjIENPTkZJR19IWl9QRVJJT0RJQyBpcyBub3Qgc2V0CitDT05GSUdfTk9fSFpf SURMRT15CisjIENPTkZJR19OT19IWl9GVUxMIGlzIG5vdCBzZXQKK0NPTkZJR19OT19IWj15CitD T05GSUdfSElHSF9SRVNfVElNRVJTPXkKKyMgZW5kIG9mIFRpbWVycyBzdWJzeXN0ZW0KKworQ09O RklHX0JQRj15CitDT05GSUdfSEFWRV9FQlBGX0pJVD15CisKKyMKKyMgQlBGIHN1YnN5c3RlbQor IworQ09ORklHX0JQRl9TWVNDQUxMPXkKK0NPTkZJR19CUEZfSklUPXkKK0NPTkZJR19CUEZfSklU X0FMV0FZU19PTj15CitDT05GSUdfQlBGX0pJVF9ERUZBVUxUX09OPXkKK0NPTkZJR19CUEZfVU5Q UklWX0RFRkFVTFRfT0ZGPXkKK0NPTkZJR19VU0VSTU9ERV9EUklWRVI9eQorIyBDT05GSUdfQlBG X1BSRUxPQUQgaXMgbm90IHNldAorQ09ORklHX0JQRl9MU009eQorIyBlbmQgb2YgQlBGIHN1YnN5 c3RlbQorCisjIENPTkZJR19QUkVFTVBUX05PTkUgaXMgbm90IHNldAorQ09ORklHX1BSRUVNUFRf Vk9MVU5UQVJZPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorCisjCisjIENQVS9UYXNr IHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKKyMKK0NPTkZJR19USUNLX0NQVV9BQ0NPVU5USU5H PXkKKyMgQ09ORklHX1ZJUlRfQ1BVX0FDQ09VTlRJTkdfR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklH X0lSUV9USU1FX0FDQ09VTlRJTkcgaXMgbm90IHNldAorQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1Q9 eQorQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1RfVjM9eQorQ09ORklHX1RBU0tTVEFUUz15CitDT05G SUdfVEFTS19ERUxBWV9BQ0NUPXkKK0NPTkZJR19UQVNLX1hBQ0NUPXkKK0NPTkZJR19UQVNLX0lP X0FDQ09VTlRJTkc9eQorQ09ORklHX1BTST15CitDT05GSUdfUFNJX0RFRkFVTFRfRElTQUJMRUQ9 eQorIyBlbmQgb2YgQ1BVL1Rhc2sgdGltZSBhbmQgc3RhdHMgYWNjb3VudGluZworCitDT05GSUdf Q1BVX0lTT0xBVElPTj15CisKKyMKKyMgUkNVIFN1YnN5c3RlbQorIworQ09ORklHX1RSRUVfUkNV PXkKKyMgQ09ORklHX1JDVV9FWFBFUlQgaXMgbm90IHNldAorQ09ORklHX1NSQ1U9eQorQ09ORklH X1RSRUVfU1JDVT15CitDT05GSUdfVEFTS1NfUkNVX0dFTkVSSUM9eQorQ09ORklHX1RBU0tTX1JD VT15CitDT05GSUdfVEFTS1NfUlVERV9SQ1U9eQorQ09ORklHX1RBU0tTX1RSQUNFX1JDVT15CitD T05GSUdfUkNVX1NUQUxMX0NPTU1PTj15CitDT05GSUdfUkNVX05FRURfU0VHQ0JMSVNUPXkKKyMg ZW5kIG9mIFJDVSBTdWJzeXN0ZW0KKworQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJ R19QUk9DPXkKK0NPTkZJR19JS0hFQURFUlM9bQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTgKK0NP TkZJR19MT0dfQ1BVX01BWF9CVUZfU0hJRlQ9MTIKK0NPTkZJR19QUklOVEtfU0FGRV9MT0dfQlVG X1NISUZUPTEzCisjIENPTkZJR19QUklOVEtfSU5ERVggaXMgbm90IHNldAorQ09ORklHX0dFTkVS SUNfU0NIRURfQ0xPQ0s9eQorCisjCisjIFNjaGVkdWxlciBmZWF0dXJlcworIworIyBDT05GSUdf VUNMQU1QX1RBU0sgaXMgbm90IHNldAorIyBlbmQgb2YgU2NoZWR1bGVyIGZlYXR1cmVzCisKK0NP TkZJR19BUkNIX1NVUFBPUlRTX05VTUFfQkFMQU5DSU5HPXkKK0NPTkZJR19DQ19IQVNfSU5UMTI4 PXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0lOVDEyOD15CitDT05GSUdfTlVNQV9CQUxBTkNJTkc9 eQorQ09ORklHX05VTUFfQkFMQU5DSU5HX0RFRkFVTFRfRU5BQkxFRD15CitDT05GSUdfQ0dST1VQ Uz15CitDT05GSUdfUEFHRV9DT1VOVEVSPXkKK0NPTkZJR19NRU1DRz15CitDT05GSUdfTUVNQ0df U1dBUD15CitDT05GSUdfTUVNQ0dfS01FTT15CitDT05GSUdfQkxLX0NHUk9VUD15CitDT05GSUdf Q0dST1VQX1dSSVRFQkFDSz15CitDT05GSUdfQ0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dS T1VQX1NDSEVEPXkKK0NPTkZJR19DRlNfQkFORFdJRFRIPXkKK0NPTkZJR19SVF9HUk9VUF9TQ0hF RD15CitDT05GSUdfQ0dST1VQX1BJRFM9eQorQ09ORklHX0NHUk9VUF9SRE1BPXkKK0NPTkZJR19D R1JPVVBfRlJFRVpFUj15CitDT05GSUdfQ0dST1VQX0hVR0VUTEI9eQorQ09ORklHX0NQVVNFVFM9 eQorQ09ORklHX1BST0NfUElEX0NQVVNFVD15CitDT05GSUdfQ0dST1VQX0RFVklDRT15CitDT05G SUdfQ0dST1VQX0NQVUFDQ1Q9eQorQ09ORklHX0NHUk9VUF9QRVJGPXkKK0NPTkZJR19DR1JPVVBf QlBGPXkKK0NPTkZJR19DR1JPVVBfTUlTQz15CisjIENPTkZJR19DR1JPVVBfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX1NPQ0tfQ0dST1VQX0RBVEE9eQorQ09ORklHX05BTUVTUEFDRVM9eQorQ09O RklHX1VUU19OUz15CitDT05GSUdfSVBDX05TPXkKK0NPTkZJR19VU0VSX05TPXkKK0NPTkZJR19Q SURfTlM9eQorQ09ORklHX05FVF9OUz15CitDT05GSUdfQ0hFQ0tQT0lOVF9SRVNUT1JFPXkKKyMg Q09ORklHX1NDSEVEX0FVVE9HUk9VUCBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNB VEVEIGlzIG5vdCBzZXQKK0NPTkZJR19SRUxBWT15CitDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQor Q09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKK0NPTkZJR19SRF9HWklQPXkKK0NPTkZJR19SRF9C WklQMj15CitDT05GSUdfUkRfTFpNQT15CitDT05GSUdfUkRfWFo9eQorQ09ORklHX1JEX0xaTz15 CitDT05GSUdfUkRfTFo0PXkKK0NPTkZJR19SRF9aU1REPXkKK0NPTkZJR19CT09UX0NPTkZJRz15 CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFPXkKKyMgQ09ORklHX0NDX09QVElN SVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX1NZU0NUTF9F WENFUFRJT05fVFJBQ0U9eQorQ09ORklHX0VYUEVSVD15CitDT05GSUdfTVVMVElVU0VSPXkKKyMg Q09ORklHX1NHRVRNQVNLX1NZU0NBTEwgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX1NZU0NBTEw9 eQorQ09ORklHX0ZIQU5ETEU9eQorQ09ORklHX1BPU0lYX1RJTUVSUz15CitDT05GSUdfUFJJTlRL PXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQor Q09ORklHX0ZVVEVYPXkKK0NPTkZJR19GVVRFWF9QST15CitDT05GSUdfSEFWRV9GVVRFWF9DTVBY Q0hHPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9 eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19BSU89eQorQ09ORklH X0lPX1VSSU5HPXkKK0NPTkZJR19BRFZJU0VfU1lTQ0FMTFM9eQorQ09ORklHX01FTUJBUlJJRVI9 eQorQ09ORklHX0tBTExTWU1TPXkKK0NPTkZJR19LQUxMU1lNU19BTEw9eQorQ09ORklHX0tBTExT WU1TX0JBU0VfUkVMQVRJVkU9eQorQ09ORklHX1VTRVJGQVVMVEZEPXkKK0NPTkZJR19LQ01QPXkK KyMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX1BFUkZfRVZFTlRTPXkK KyMgQ09ORklHX1BDMTA0IGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgUGVyZm9ybWFuY2UgRXZl bnRzIEFuZCBDb3VudGVycworIworQ09ORklHX1BFUkZfRVZFTlRTPXkKKyMgQ09ORklHX0RFQlVH X1BFUkZfVVNFX1ZNQUxMT0MgaXMgbm90IHNldAorIyBlbmQgb2YgS2VybmVsIFBlcmZvcm1hbmNl IEV2ZW50cyBBbmQgQ291bnRlcnMKKworQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJ R19TTFVCX0RFQlVHPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorIyBDT05GSUdf U0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQK K0NPTkZJR19TTEFCX01FUkdFX0RFRkFVTFQ9eQorQ09ORklHX1NMQUJfRlJFRUxJU1RfUkFORE9N PXkKK0NPTkZJR19TTEFCX0ZSRUVMSVNUX0hBUkRFTkVEPXkKK0NPTkZJR19TSFVGRkxFX1BBR0Vf QUxMT0NBVE9SPXkKK0NPTkZJR19TTFVCX0NQVV9QQVJUSUFMPXkKK0NPTkZJR19TWVNURU1fREFU QV9WRVJJRklDQVRJT049eQorQ09ORklHX1BST0ZJTElORz15CitDT05GSUdfVFJBQ0VQT0lOVFM9 eQorIyBlbmQgb2YgR2VuZXJhbCBzZXR1cAorCitDT05GSUdfNjRCSVQ9eQorQ09ORklHX1JJU0NW PXkKK0NPTkZJR19BUkNIX01NQVBfUk5EX0JJVFNfTUlOPTE4CitDT05GSUdfQVJDSF9NTUFQX1JO RF9CSVRTX01BWD0yNAorQ09ORklHX1JJU0NWX1NCST15CitDT05GSUdfTU1VPXkKK0NPTkZJR19W QV9CSVRTPTM5CitDT05GSUdfUEFfQklUUz01NgorQ09ORklHX1BBR0VfT0ZGU0VUPTB4ZmZmZmZm ZTAwMDAwMDAwMAorQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9T RUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19BUkNIX1dBTlRfR0VORVJBTF9IVUdFVExCPXkK K0NPTkZJR19BUkNIX1NVUFBPUlRTX1VQUk9CRVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9S VD15CitDT05GSUdfR0VORVJJQ19CVUc9eQorQ09ORklHX0dFTkVSSUNfQlVHX1JFTEFUSVZFX1BP SU5URVJTPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfR0VORVJJ Q19DU1VNPXkKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0ZJWF9FQVJMWUNPTl9N RU09eQorQ09ORklHX1BHVEFCTEVfTEVWRUxTPTMKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQor CisjCisjIFNvQyBzZWxlY3Rpb24KKyMKKyMgQ09ORklHX1NPQ19NSUNST0NISVBfUE9MQVJGSVJF IGlzIG5vdCBzZXQKK0NPTkZJR19TT0NfU0lGSVZFPXkKK0NPTkZJR19TT0NfU1RBUkZJVkU9eQor IyBDT05GSUdfU09DX1NUQVJGSVZFX1ZJQzcxMDAgaXMgbm90IHNldAorQ09ORklHX1NPQ19TVEFS RklWRV9KSDcxMTA9eQorCisjCisjIFN0YXJGaXZlIEpIIFNvQyBEZWJ1ZyBPcHRpb24KKyMKKyMg Q09ORklHX0ZQR0FfR01BQ19TUEVFRDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQR0FfR01BQ19T UEVFRDEwMCBpcyBub3Qgc2V0CitDT05GSUdfRlBHQV9HTUFDX1NQRUVEX0FVVE89eQorIyBlbmQg b2YgU3RhckZpdmUgSkggU29DIERlYnVnIE9wdGlvbgorCitDT05GSUdfU09DX1ZJUlQ9eQorIyBl bmQgb2YgU29DIHNlbGVjdGlvbgorCisjCisjIENQVSBlcnJhdGEgc2VsZWN0aW9uCisjCitDT05G SUdfUklTQ1ZfRVJSQVRBX0FMVEVSTkFUSVZFPXkKK0NPTkZJR19FUlJBVEFfU0lGSVZFPXkKK0NP TkZJR19FUlJBVEFfU0lGSVZFX0NJUF80NTM9eQorQ09ORklHX0VSUkFUQV9TSUZJVkVfQ0lQXzEy MDA9eQorIyBlbmQgb2YgQ1BVIGVycmF0YSBzZWxlY3Rpb24KKworIworIyBQbGF0Zm9ybSB0eXBl CisjCisjIENPTkZJR19BUkNIX1JWMzJJIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1JWNjRJPXkK KyMgQ09ORklHX0NNT0RFTF9NRURMT1cgaXMgbm90IHNldAorQ09ORklHX0NNT0RFTF9NRURBTlk9 eQorQ09ORklHX01PRFVMRV9TRUNUSU9OUz15CitDT05GSUdfTUFYUEhZU01FTV8xMjhHQj15CitD T05GSUdfU01QPXkKK0NPTkZJR19OUl9DUFVTPTgKK0NPTkZJR19IT1RQTFVHX0NQVT15CitDT05G SUdfVFVORV9HRU5FUklDPXkKK0NPTkZJR19OVU1BPXkKK0NPTkZJR19OT0RFU19TSElGVD02CitD T05GSUdfVVNFX1BFUkNQVV9OVU1BX05PREVfSUQ9eQorQ09ORklHX05FRURfUEVSX0NQVV9FTUJF RF9GSVJTVF9DSFVOSz15CitDT05GSUdfUklTQ1ZfSVNBX0M9eQorQ09ORklHX0ZQVT15CisjIGVu ZCBvZiBQbGF0Zm9ybSB0eXBlCisKKyMKKyMgS2VybmVsIGZlYXR1cmVzCisjCitDT05GSUdfSFpf MTAwPXkKKyMgQ09ORklHX0haXzI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19IWl8zMDAgaXMgbm90 IHNldAorIyBDT05GSUdfSFpfMTAwMCBpcyBub3Qgc2V0CitDT05GSUdfSFo9MTAwCitDT05GSUdf U0NIRURfSFJUSUNLPXkKK0NPTkZJR19SSVNDVl9TQklfVjAxPXkKK0NPTkZJR19LRVhFQz15CitD T05GSUdfQ1JBU0hfRFVNUD15CisjIGVuZCBvZiBLZXJuZWwgZmVhdHVyZXMKKworIworIyBCb290 IG9wdGlvbnMKKyMKK0NPTkZJR19DTURMSU5FPSIiCitDT05GSUdfRUZJX1NUVUI9eQorQ09ORklH X0VGST15CitDT05GSUdfQ0NfSEFWRV9TVEFDS1BST1RFQ1RPUl9UTFM9eQorQ09ORklHX1NUQUNL UFJPVEVDVE9SX1BFUl9UQVNLPXkKKyMgQ09ORklHX1BIWVNfUkFNX0JBU0VfRklYRUQgaXMgbm90 IHNldAorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5E X1BPU1NJQkxFPXkKK0NPTkZJR19BUkNIX0hJQkVSTkFUSU9OX1BPU1NJQkxFPXkKK0NPTkZJR19B UkNIX0hJQkVSTkFUSU9OX0hFQURFUj15CisjIGVuZCBvZiBCb290IG9wdGlvbnMKKworIworIyBQ b3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19TVVNQRU5EPXkKK0NPTkZJR19TVVNQ RU5EX0ZSRUVaRVI9eQorIyBDT05GSUdfU1VTUEVORF9TS0lQX1NZTkMgaXMgbm90IHNldAorQ09O RklHX0hJQkVSTkFURV9DQUxMQkFDS1M9eQorQ09ORklHX0hJQkVSTkFUSU9OPXkKK0NPTkZJR19I SUJFUk5BVElPTl9TTkFQU0hPVF9ERVY9eQorQ09ORklHX1BNX1NURF9QQVJUSVRJT049IiIKK0NP TkZJR19QTV9TTEVFUD15CitDT05GSUdfUE1fU0xFRVBfU01QPXkKK0NPTkZJR19QTV9BVVRPU0xF RVA9eQorQ09ORklHX1BNX1dBS0VMT0NLUz15CitDT05GSUdfUE1fV0FLRUxPQ0tTX0xJTUlUPTEw MAorQ09ORklHX1BNX1dBS0VMT0NLU19HQz15CitDT05GSUdfUE09eQorQ09ORklHX1BNX0RFQlVH PXkKK0NPTkZJR19QTV9BRFZBTkNFRF9ERUJVRz15CisjIENPTkZJR19QTV9URVNUX1NVU1BFTkQg aXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQX0RFQlVHPXkKK0NPTkZJR19EUE1fV0FUQ0hET0c9 eQorQ09ORklHX0RQTV9XQVRDSERPR19USU1FT1VUPTYwCitDT05GSUdfUE1fQ0xLPXkKK0NPTkZJ R19QTV9HRU5FUklDX0RPTUFJTlM9eQorIyBDT05GSUdfV1FfUE9XRVJfRUZGSUNJRU5UX0RFRkFV TFQgaXMgbm90IHNldAorQ09ORklHX1BNX0dFTkVSSUNfRE9NQUlOU19TTEVFUD15CitDT05GSUdf UE1fR0VORVJJQ19ET01BSU5TX09GPXkKK0NPTkZJR19DUFVfUE09eQorQ09ORklHX0VORVJHWV9N T0RFTD15CisjIGVuZCBvZiBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKworIworIyBDUFUgUG93 ZXIgTWFuYWdlbWVudAorIworCisjCisjIENQVSBJZGxlCisjCitDT05GSUdfQ1BVX0lETEU9eQor Q09ORklHX0NQVV9JRExFX01VTFRJUExFX0RSSVZFUlM9eQorQ09ORklHX0NQVV9JRExFX0dPVl9M QURERVI9eQorQ09ORklHX0NQVV9JRExFX0dPVl9NRU5VPXkKK0NPTkZJR19DUFVfSURMRV9HT1Zf VEVPPXkKK0NPTkZJR19EVF9JRExFX1NUQVRFUz15CitDT05GSUdfRFRfSURMRV9HRU5QRD15CisK KyMKKyMgUklTQy1WIENQVSBJZGxlIERyaXZlcnMKKyMKK0NPTkZJR19SSVNDVl9TQklfQ1BVSURM RT15CisjIGVuZCBvZiBSSVNDLVYgQ1BVIElkbGUgRHJpdmVycworIyBlbmQgb2YgQ1BVIElkbGUK KyMgZW5kIG9mIENQVSBQb3dlciBNYW5hZ2VtZW50CisKKyMKKyMgR2VuZXJhbCBhcmNoaXRlY3R1 cmUtZGVwZW5kZW50IG9wdGlvbnMKKyMKK0NPTkZJR19DUkFTSF9DT1JFPXkKK0NPTkZJR19LRVhF Q19DT1JFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19KVU1QX0xBQkVMPXkKKyMgQ09ORklH X1NUQVRJQ19LRVlTX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19LUFJPQkVTX09OX0ZUUkFD RT15CitDT05GSUdfVVBST0JFUz15CitDT05GSUdfSEFWRV82NEJJVF9BTElHTkVEX0FDQ0VTUz15 CitDT05GSUdfS1JFVFBST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZF X0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFU19PTl9GVFJBQ0U9eQorQ09ORklHX0hB VkVfRlVOQ1RJT05fRVJST1JfSU5KRUNUSU9OPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQ T1JUPXkKK0NPTkZJR19IQVZFX0FSQ0hfVFJBQ0VIT09LPXkKK0NPTkZJR19IQVZFX0RNQV9DT05U SUdVT1VTPXkKK0NPTkZJR19HRU5FUklDX1NNUF9JRExFX1RIUkVBRD15CitDT05GSUdfR0VORVJJ Q19JRExFX1BPTExfU0VUVVA9eQorQ09ORklHX0FSQ0hfSEFTX0ZPUlRJRllfU09VUkNFPXkKK0NP TkZJR19BUkNIX0hBU19TRVRfTUVNT1JZPXkKK0NPTkZJR19BUkNIX0hBU19TRVRfRElSRUNUX01B UD15CitDT05GSUdfSEFWRV9BUkNIX1RIUkVBRF9TVFJVQ1RfV0hJVEVMSVNUPXkKK0NPTkZJR19I QVZFX0FTTV9NT0RWRVJTSU9OUz15CitDT05GSUdfSEFWRV9SRUdTX0FORF9TVEFDS19BQ0NFU1Nf QVBJPXkKK0NPTkZJR19IQVZFX0ZVTkNUSU9OX0FSR19BQ0NFU1NfQVBJPXkKK0NPTkZJR19IQVZF X1BFUkZfUkVHUz15CitDT05GSUdfSEFWRV9QRVJGX1VTRVJfU1RBQ0tfRFVNUD15CitDT05GSUdf SEFWRV9BUkNIX0pVTVBfTEFCRUw9eQorQ09ORklHX0hBVkVfQVJDSF9KVU1QX0xBQkVMX1JFTEFU SVZFPXkKK0NPTkZJR19IQVZFX0FSQ0hfU0VDQ09NUD15CitDT05GSUdfSEFWRV9BUkNIX1NFQ0NP TVBfRklMVEVSPXkKK0NPTkZJR19TRUNDT01QPXkKK0NPTkZJR19TRUNDT01QX0ZJTFRFUj15Cisj IENPTkZJR19TRUNDT01QX0NBQ0hFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX1NUQUNL UFJPVEVDVE9SPXkKK0NPTkZJR19TVEFDS1BST1RFQ1RPUj15CitDT05GSUdfU1RBQ0tQUk9URUNU T1JfU1RST05HPXkKK0NPTkZJR19MVE9fTk9ORT15CitDT05GSUdfSEFWRV9DT05URVhUX1RSQUNL SU5HPXkKK0NPTkZJR19IQVZFX1ZJUlRfQ1BVX0FDQ09VTlRJTkdfR0VOPXkKK0NPTkZJR19IQVZF X0lSUV9USU1FX0FDQ09VTlRJTkc9eQorQ09ORklHX0hBVkVfTU9WRV9QVUQ9eQorQ09ORklHX0hB VkVfTU9WRV9QTUQ9eQorQ09ORklHX0hBVkVfQVJDSF9UUkFOU1BBUkVOVF9IVUdFUEFHRT15CitD T05GSUdfQVJDSF9XQU5UX0hVR0VfUE1EX1NIQVJFPXkKK0NPTkZJR19IQVZFX01PRF9BUkNIX1NQ RUNJRklDPXkKK0NPTkZJR19NT0RVTEVTX1VTRV9FTEZfUkVMQT15CitDT05GSUdfQVJDSF9IQVNf RUxGX1JBTkRPTUlaRT15CitDT05GSUdfSEFWRV9BUkNIX01NQVBfUk5EX0JJVFM9eQorQ09ORklH X0FSQ0hfTU1BUF9STkRfQklUUz0xOAorQ09ORklHX0FSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05f TU1BUF9MQVlPVVQ9eQorQ09ORklHX0NMT05FX0JBQ0tXQVJEUz15CitDT05GSUdfQ09NUEFUXzMy QklUX1RJTUU9eQorQ09ORklHX0hBVkVfQVJDSF9WTUFQX1NUQUNLPXkKK0NPTkZJR19WTUFQX1NU QUNLPXkKK0NPTkZJR19BUkNIX09QVElPTkFMX0tFUk5FTF9SV1g9eQorQ09ORklHX0FSQ0hfT1BU SU9OQUxfS0VSTkVMX1JXWF9ERUZBVUxUPXkKK0NPTkZJR19BUkNIX0hBU19TVFJJQ1RfS0VSTkVM X1JXWD15CitDT05GSUdfU1RSSUNUX0tFUk5FTF9SV1g9eQorQ09ORklHX0FSQ0hfSEFTX1NUUklD VF9NT0RVTEVfUldYPXkKK0NPTkZJR19TVFJJQ1RfTU9EVUxFX1JXWD15CitDT05GSUdfQVJDSF9V U0VfTUVNUkVNQVBfUFJPVD15CisjIENPTkZJR19MT0NLX0VWRU5UX0NPVU5UUyBpcyBub3Qgc2V0 CitDT05GSUdfQVJDSF9TVVBQT1JUU19ERUJVR19QQUdFQUxMT0M9eQorCisjCisjIEdDT1YtYmFz ZWQga2VybmVsIHByb2ZpbGluZworIworIyBDT05GSUdfR0NPVl9LRVJORUwgaXMgbm90IHNldAor Q09ORklHX0FSQ0hfSEFTX0dDT1ZfUFJPRklMRV9BTEw9eQorIyBlbmQgb2YgR0NPVi1iYXNlZCBr ZXJuZWwgcHJvZmlsaW5nCisKK0NPTkZJR19IQVZFX0dDQ19QTFVHSU5TPXkKKyMgQ09ORklHX0dD Q19QTFVHSU5TIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEdlbmVyYWwgYXJjaGl0ZWN0dXJlLWRlcGVu ZGVudCBvcHRpb25zCisKK0NPTkZJR19SVF9NVVRFWEVTPXkKK0NPTkZJR19CQVNFX1NNQUxMPTAK K0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRD15CitDT05GSUdfTU9E VUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKK0NP TkZJR19NT0RWRVJTSU9OUz15CitDT05GSUdfQVNNX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01P RFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU0lHIGlzIG5v dCBzZXQKK0NPTkZJR19NT0RVTEVfQ09NUFJFU1NfTk9ORT15CisjIENPTkZJR19NT0RVTEVfQ09N UFJFU1NfR1pJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1NfWFogaXMgbm90 IHNldAorIyBDT05GSUdfTU9EVUxFX0NPTVBSRVNTX1pTVEQgaXMgbm90IHNldAorIyBDT05GSUdf TU9EVUxFX0FMTE9XX01JU1NJTkdfTkFNRVNQQUNFX0lNUE9SVFMgaXMgbm90IHNldAorQ09ORklH X01PRFBST0JFX1BBVEg9Ii9zYmluL21vZHByb2JlIgorIyBDT05GSUdfVFJJTV9VTlVTRURfS1NZ TVMgaXMgbm90IHNldAorQ09ORklHX01PRFVMRVNfVFJFRV9MT09LVVA9eQorQ09ORklHX0JMT0NL PXkKK0NPTkZJR19CTEtfUlFfQUxMT0NfVElNRT15CitDT05GSUdfQkxLX0NHUk9VUF9SV1NUQVQ9 eQorQ09ORklHX0JMS19ERVZfQlNHX0NPTU1PTj15CitDT05GSUdfQkxLX0RFVl9CU0dMSUI9eQor Q09ORklHX0JMS19ERVZfSU5URUdSSVRZPXkKK0NPTkZJR19CTEtfREVWX0lOVEVHUklUWV9UMTA9 eQorQ09ORklHX0JMS19ERVZfWk9ORUQ9eQorQ09ORklHX0JMS19ERVZfVEhST1RUTElORz15Cisj IENPTkZJR19CTEtfREVWX1RIUk9UVExJTkdfTE9XIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfV0JU PXkKK0NPTkZJR19CTEtfV0JUX01RPXkKK0NPTkZJR19CTEtfQ0dST1VQX0lPTEFURU5DWT15Cisj IENPTkZJR19CTEtfQ0dST1VQX0ZDX0FQUElEIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfQ0dST1VQ X0lPQ09TVD15CitDT05GSUdfQkxLX0NHUk9VUF9JT1BSSU89eQorQ09ORklHX0JMS19ERUJVR19G Uz15CitDT05GSUdfQkxLX0RFQlVHX0ZTX1pPTkVEPXkKKyMgQ09ORklHX0JMS19TRURfT1BBTCBp cyBub3Qgc2V0CitDT05GSUdfQkxLX0lOTElORV9FTkNSWVBUSU9OPXkKK0NPTkZJR19CTEtfSU5M SU5FX0VOQ1JZUFRJT05fRkFMTEJBQ0s9eQorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworQ09O RklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90 IHNldAorIyBDT05GSUdfQUlYX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfT1NGX1BBUlRJ VElPTj15CisjIENPTkZJR19BTUlHQV9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX0FUQVJJ X1BBUlRJVElPTj15CitDT05GSUdfTUFDX1BBUlRJVElPTj15CitDT05GSUdfTVNET1NfUEFSVElU SU9OPXkKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElP TiBpcyBub3Qgc2V0CitDT05GSUdfU09MQVJJU19YODZfUEFSVElUSU9OPXkKK0NPTkZJR19VTklY V0FSRV9ESVNLTEFCRUw9eQorQ09ORklHX0xETV9QQVJUSVRJT049eQorIyBDT05GSUdfTERNX0RF QlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TR0lfUEFSVElUSU9OPXkKK0NPTkZJR19VTFRSSVhfUEFS VElUSU9OPXkKK0NPTkZJR19TVU5fUEFSVElUSU9OPXkKK0NPTkZJR19LQVJNQV9QQVJUSVRJT049 eQorQ09ORklHX0VGSV9QQVJUSVRJT049eQorQ09ORklHX1NZU1Y2OF9QQVJUSVRJT049eQorIyBD T05GSUdfQ01ETElORV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBlbmQgb2YgUGFydGl0aW9uIFR5 cGVzCisKK0NPTkZJR19CTEtfTVFfUENJPXkKK0NPTkZJR19CTEtfTVFfVklSVElPPXkKK0NPTkZJ R19CTEtfTVFfUkRNQT15CitDT05GSUdfQkxLX1BNPXkKKworIworIyBJTyBTY2hlZHVsZXJzCisj CitDT05GSUdfTVFfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfTVFfSU9TQ0hFRF9LWUJFUj15 CitDT05GSUdfSU9TQ0hFRF9CRlE9eQorQ09ORklHX0JGUV9HUk9VUF9JT1NDSEVEPXkKKyMgQ09O RklHX0JGUV9DR1JPVVBfREVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgSU8gU2NoZWR1bGVycwor CitDT05GSUdfUEFEQVRBPXkKK0NPTkZJR19BU04xPXkKK0NPTkZJR19JTkxJTkVfU1BJTl9VTkxP Q0tfSVJRPXkKK0NPTkZJR19JTkxJTkVfUkVBRF9VTkxPQ0s9eQorQ09ORklHX0lOTElORV9SRUFE X1VOTE9DS19JUlE9eQorQ09ORklHX0lOTElORV9XUklURV9VTkxPQ0s9eQorQ09ORklHX0lOTElO RV9XUklURV9VTkxPQ0tfSVJRPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FUT01JQ19STVc9eQor Q09ORklHX01VVEVYX1NQSU5fT05fT1dORVI9eQorQ09ORklHX1JXU0VNX1NQSU5fT05fT1dORVI9 eQorQ09ORklHX0xPQ0tfU1BJTl9PTl9PV05FUj15CitDT05GSUdfQVJDSF9IQVNfTU1JT1dCPXkK K0NPTkZJR19NTUlPV0I9eQorQ09ORklHX0ZSRUVaRVI9eQorCisjCisjIEV4ZWN1dGFibGUgZmls ZSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CitDT05GSUdfRUxGQ09SRT15CitDT05G SUdfQ09SRV9EVU1QX0RFRkFVTFRfRUxGX0hFQURFUlM9eQorQ09ORklHX0JJTkZNVF9TQ1JJUFQ9 eQorQ09ORklHX0FSQ0hfSEFTX0JJTkZNVF9GTEFUPXkKKyMgQ09ORklHX0JJTkZNVF9GTEFUIGlz IG5vdCBzZXQKK0NPTkZJR19CSU5GTVRfTUlTQz1tCitDT05GSUdfQ09SRURVTVA9eQorIyBlbmQg b2YgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMKKworIworIyBNZW1vcnkgTWFuYWdlbWVudCBvcHRp b25zCisjCitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfU1BBUlNFTUVNX01B TlVBTD15CitDT05GSUdfU1BBUlNFTUVNPXkKK0NPTkZJR19TUEFSU0VNRU1fRVhUUkVNRT15CitD T05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFPXkKK0NPTkZJR19TUEFSU0VNRU1fVk1FTU1B UD15CitDT05GSUdfTUVNT1JZX0lTT0xBVElPTj15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9 NAorQ09ORklHX01FTU9SWV9CQUxMT09OPXkKK0NPTkZJR19CQUxMT09OX0NPTVBBQ1RJT049eQor Q09ORklHX0NPTVBBQ1RJT049eQorQ09ORklHX1BBR0VfUkVQT1JUSU5HPXkKK0NPTkZJR19NSUdS QVRJT049eQorQ09ORklHX0FSQ0hfRU5BQkxFX0hVR0VQQUdFX01JR1JBVElPTj15CitDT05GSUdf Q09OVElHX0FMTE9DPXkKK0NPTkZJR19QSFlTX0FERFJfVF82NEJJVD15CitDT05GSUdfTU1VX05P VElGSUVSPXkKK0NPTkZJR19LU009eQorQ09ORklHX0RFRkFVTFRfTU1BUF9NSU5fQUREUj02NTUz NgorQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFPXkKKyMgQ09ORklHX1RSQU5TUEFSRU5UX0hV R0VQQUdFX0FMV0FZUyBpcyBub3Qgc2V0CitDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFE VklTRT15CitDT05GSUdfQ0xFQU5DQUNIRT15CitDT05GSUdfRlJPTlRTV0FQPXkKK0NPTkZJR19D TUE9eQorIyBDT05GSUdfQ01BX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NNQV9ERUJVR0ZT IGlzIG5vdCBzZXQKK0NPTkZJR19DTUFfU1lTRlM9eQorQ09ORklHX0NNQV9BUkVBUz03CitDT05G SUdfWlNXQVA9eQorIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX0RFRkxBVEUgaXMg bm90IHNldAorQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9MWk89eQorIyBDT05GSUdf WlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUXzg0MiBpcyBub3Qgc2V0CisjIENPTkZJR19aU1dBUF9D T01QUkVTU09SX0RFRkFVTFRfTFo0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX0NPTVBSRVNT T1JfREVGQVVMVF9MWjRIQyBpcyBub3Qgc2V0CisjIENPTkZJR19aU1dBUF9DT01QUkVTU09SX0RF RkFVTFRfWlNURCBpcyBub3Qgc2V0CitDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUPSJs em8iCitDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9aQlVEPXkKKyMgQ09ORklHX1pTV0FQX1pQ T09MX0RFRkFVTFRfWjNGT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX1pQT09MX0RFRkFV TFRfWlNNQUxMT0MgaXMgbm90IHNldAorQ09ORklHX1pTV0FQX1pQT09MX0RFRkFVTFQ9InpidWQi CisjIENPTkZJR19aU1dBUF9ERUZBVUxUX09OIGlzIG5vdCBzZXQKK0NPTkZJR19aUE9PTD15CitD T05GSUdfWkJVRD15CitDT05GSUdfWjNGT0xEPW0KK0NPTkZJR19aU01BTExPQz15CisjIENPTkZJ R19aU01BTExPQ19TVEFUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0VBUkxZX0lPUkVNQVA9 eQorQ09ORklHX0RFRkVSUkVEX1NUUlVDVF9QQUdFX0lOSVQ9eQorQ09ORklHX1BBR0VfSURMRV9G TEFHPXkKKyMgQ09ORklHX0lETEVfUEFHRV9UUkFDS0lORyBpcyBub3Qgc2V0CitDT05GSUdfWk9O RV9ETUEzMj15CitDT05GSUdfSE1NX01JUlJPUj15CisjIENPTkZJR19QRVJDUFVfU1RBVFMgaXMg bm90IHNldAorIyBDT05GSUdfR1VQX1RFU1QgaXMgbm90IHNldAorQ09ORklHX1JFQURfT05MWV9U SFBfRk9SX0ZTPXkKK0NPTkZJR19BUkNIX0hBU19QVEVfU1BFQ0lBTD15CitDT05GSUdfU0VDUkVU TUVNPXkKKworIworIyBEYXRhIEFjY2VzcyBNb25pdG9yaW5nCisjCitDT05GSUdfREFNT049eQor Q09ORklHX0RBTU9OX1ZBRERSPXkKK0NPTkZJR19EQU1PTl9EQkdGUz15CisjIGVuZCBvZiBEYXRh IEFjY2VzcyBNb25pdG9yaW5nCisjIGVuZCBvZiBNZW1vcnkgTWFuYWdlbWVudCBvcHRpb25zCisK K0NPTkZJR19ORVQ9eQorQ09ORklHX05FVF9JTkdSRVNTPXkKK0NPTkZJR19ORVRfRUdSRVNTPXkK K0NPTkZJR19ORVRfUkVESVJFQ1Q9eQorQ09ORklHX1NLQl9FWFRFTlNJT05TPXkKKworIworIyBO ZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9bQorQ09ORklHX1BBQ0tFVF9ESUFH PW0KK0NPTkZJR19VTklYPXkKK0NPTkZJR19VTklYX1NDTT15CitDT05GSUdfQUZfVU5JWF9PT0I9 eQorQ09ORklHX1VOSVhfRElBRz1tCitDT05GSUdfVExTPW0KK0NPTkZJR19UTFNfREVWSUNFPXkK KyMgQ09ORklHX1RMU19UT0UgaXMgbm90IHNldAorQ09ORklHX1hGUk09eQorQ09ORklHX1hGUk1f T0ZGTE9BRD15CitDT05GSUdfWEZSTV9BTEdPPW0KK0NPTkZJR19YRlJNX1VTRVI9bQorQ09ORklH X1hGUk1fSU5URVJGQUNFPW0KK0NPTkZJR19YRlJNX1NVQl9QT0xJQ1k9eQorQ09ORklHX1hGUk1f TUlHUkFURT15CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorQ09ORklHX1hG Uk1fQUg9bQorQ09ORklHX1hGUk1fRVNQPW0KK0NPTkZJR19YRlJNX0lQQ09NUD1tCitDT05GSUdf TkVUX0tFWT1tCitDT05GSUdfTkVUX0tFWV9NSUdSQVRFPXkKK0NPTkZJR19YRlJNX0VTUElOVENQ PXkKK0NPTkZJR19TTUM9bQorQ09ORklHX1NNQ19ESUFHPW0KK0NPTkZJR19YRFBfU09DS0VUUz15 CitDT05GSUdfWERQX1NPQ0tFVFNfRElBRz1tCitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVM VElDQVNUPXkKK0NPTkZJR19JUF9BRFZBTkNFRF9ST1VURVI9eQorIyBDT05GSUdfSVBfRklCX1RS SUVfU1RBVFMgaXMgbm90IHNldAorQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15CitDT05GSUdf SVBfUk9VVEVfTVVMVElQQVRIPXkKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19J UF9ST1VURV9DTEFTU0lEPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkK K0NPTkZJR19JUF9QTlBfQk9PVFA9eQorQ09ORklHX0lQX1BOUF9SQVJQPXkKK0NPTkZJR19ORVRf SVBJUD1tCitDT05GSUdfTkVUX0lQR1JFX0RFTVVYPW0KK0NPTkZJR19ORVRfSVBfVFVOTkVMPW0K K0NPTkZJR19ORVRfSVBHUkU9bQorQ09ORklHX05FVF9JUEdSRV9CUk9BRENBU1Q9eQorQ09ORklH X0lQX01ST1VURV9DT01NT049eQorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfTVJPVVRF X01VTFRJUExFX1RBQkxFUz15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNN X1YyPXkKK0NPTkZJR19TWU5fQ09PS0lFUz15CitDT05GSUdfTkVUX0lQVlRJPW0KK0NPTkZJR19O RVRfVURQX1RVTk5FTD1tCitDT05GSUdfTkVUX0ZPVT1tCitDT05GSUdfTkVUX0ZPVV9JUF9UVU5O RUxTPXkKK0NPTkZJR19JTkVUX0FIPW0KK0NPTkZJR19JTkVUX0VTUD1tCitDT05GSUdfSU5FVF9F U1BfT0ZGTE9BRD1tCitDT05GSUdfSU5FVF9FU1BJTlRDUD15CitDT05GSUdfSU5FVF9JUENPTVA9 bQorQ09ORklHX0lORVRfWEZSTV9UVU5ORUw9bQorQ09ORklHX0lORVRfVFVOTkVMPW0KK0NPTkZJ R19JTkVUX0RJQUc9bQorQ09ORklHX0lORVRfVENQX0RJQUc9bQorQ09ORklHX0lORVRfVURQX0RJ QUc9bQorQ09ORklHX0lORVRfUkFXX0RJQUc9bQorIyBDT05GSUdfSU5FVF9ESUFHX0RFU1RST1kg aXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEPXkKK0NPTkZJR19UQ1BfQ09OR19C SUM9bQorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19UQ1BfQ09OR19XRVNUV09PRD1t CitDT05GSUdfVENQX0NPTkdfSFRDUD1tCitDT05GSUdfVENQX0NPTkdfSFNUQ1A9bQorQ09ORklH X1RDUF9DT05HX0hZQkxBPW0KK0NPTkZJR19UQ1BfQ09OR19WRUdBUz1tCitDT05GSUdfVENQX0NP TkdfTlY9bQorQ09ORklHX1RDUF9DT05HX1NDQUxBQkxFPW0KK0NPTkZJR19UQ1BfQ09OR19MUD1t CitDT05GSUdfVENQX0NPTkdfVkVOTz1tCitDT05GSUdfVENQX0NPTkdfWUVBSD1tCitDT05GSUdf VENQX0NPTkdfSUxMSU5PSVM9bQorQ09ORklHX1RDUF9DT05HX0RDVENQPW0KK0NPTkZJR19UQ1Bf Q09OR19DREc9bQorQ09ORklHX1RDUF9DT05HX0JCUj1tCitDT05GSUdfREVGQVVMVF9DVUJJQz15 CisjIENPTkZJR19ERUZBVUxUX1JFTk8gaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfVENQX0NP Tkc9ImN1YmljIgorQ09ORklHX1RDUF9NRDVTSUc9eQorQ09ORklHX0lQVjY9eQorQ09ORklHX0lQ VjZfUk9VVEVSX1BSRUY9eQorQ09ORklHX0lQVjZfUk9VVEVfSU5GTz15CisjIENPTkZJR19JUFY2 X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9BSD1tCitDT05GSUdfSU5F VDZfRVNQPW0KK0NPTkZJR19JTkVUNl9FU1BfT0ZGTE9BRD1tCitDT05GSUdfSU5FVDZfRVNQSU5U Q1A9eQorQ09ORklHX0lORVQ2X0lQQ09NUD1tCitDT05GSUdfSVBWNl9NSVA2PW0KK0NPTkZJR19J UFY2X0lMQT1tCitDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUw9bQorQ09ORklHX0lORVQ2X1RVTk5F TD1tCitDT05GSUdfSVBWNl9WVEk9bQorQ09ORklHX0lQVjZfU0lUPW0KK0NPTkZJR19JUFY2X1NJ VF82UkQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQorQ09ORklHX0lQVjZfVFVOTkVM PW0KK0NPTkZJR19JUFY2X0dSRT1tCitDT05GSUdfSVBWNl9GT1U9bQorQ09ORklHX0lQVjZfRk9V X1RVTk5FTD1tCitDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQVjZfU1VC VFJFRVM9eQorQ09ORklHX0lQVjZfTVJPVVRFPXkKK0NPTkZJR19JUFY2X01ST1VURV9NVUxUSVBM RV9UQUJMRVM9eQorQ09ORklHX0lQVjZfUElNU01fVjI9eQorQ09ORklHX0lQVjZfU0VHNl9MV1RV Tk5FTD15CitDT05GSUdfSVBWNl9TRUc2X0hNQUM9eQorQ09ORklHX0lQVjZfU0VHNl9CUEY9eQor Q09ORklHX0lQVjZfUlBMX0xXVFVOTkVMPXkKK0NPTkZJR19JUFY2X0lPQU02X0xXVFVOTkVMPXkK K0NPTkZJR19ORVRMQUJFTD15CitDT05GSUdfTVBUQ1A9eQorQ09ORklHX0lORVRfTVBUQ1BfRElB Rz1tCitDT05GSUdfTVBUQ1BfSVBWNj15CitDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKK0NPTkZJ R19ORVRfUFRQX0NMQVNTSUZZPXkKKyMgQ09ORklHX05FVFdPUktfUEhZX1RJTUVTVEFNUElORyBp cyBub3Qgc2V0CitDT05GSUdfTkVURklMVEVSPXkKK0NPTkZJR19ORVRGSUxURVJfQURWQU5DRUQ9 eQorQ09ORklHX0JSSURHRV9ORVRGSUxURVI9bQorCisjCisjIENvcmUgTmV0ZmlsdGVyIENvbmZp Z3VyYXRpb24KKyMKK0NPTkZJR19ORVRGSUxURVJfSU5HUkVTUz15CitDT05GSUdfTkVURklMVEVS X05FVExJTks9bQorQ09ORklHX05FVEZJTFRFUl9GQU1JTFlfQlJJREdFPXkKK0NPTkZJR19ORVRG SUxURVJfRkFNSUxZX0FSUD15CitDT05GSUdfTkVURklMVEVSX05FVExJTktfSE9PSz1tCitDT05G SUdfTkVURklMVEVSX05FVExJTktfQUNDVD1tCitDT05GSUdfTkVURklMVEVSX05FVExJTktfUVVF VUU9bQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0xPRz1tCitDT05GSUdfTkVURklMVEVSX05F VExJTktfT1NGPW0KK0NPTkZJR19ORl9DT05OVFJBQ0s9bQorQ09ORklHX05GX0xPR19TWVNMT0c9 bQorQ09ORklHX05FVEZJTFRFUl9DT05OQ09VTlQ9bQorQ09ORklHX05GX0NPTk5UUkFDS19NQVJL PXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfU0VDTUFSSz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1pP TkVTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfUFJPQ0ZTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tf RVZFTlRTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfVElNRU9VVD15CitDT05GSUdfTkZfQ09OTlRS QUNLX1RJTUVTVEFNUD15CitDT05GSUdfTkZfQ09OTlRSQUNLX0xBQkVMUz15CitDT05GSUdfTkZf Q1RfUFJPVE9fRENDUD15CitDT05GSUdfTkZfQ1RfUFJPVE9fR1JFPXkKK0NPTkZJR19ORl9DVF9Q Uk9UT19TQ1RQPXkKK0NPTkZJR19ORl9DVF9QUk9UT19VRFBMSVRFPXkKK0NPTkZJR19ORl9DT05O VFJBQ0tfQU1BTkRBPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfRlRQPW0KK0NPTkZJR19ORl9DT05O VFJBQ0tfSDMyMz1tCitDT05GSUdfTkZfQ09OTlRSQUNLX0lSQz1tCitDT05GSUdfTkZfQ09OTlRS QUNLX0JST0FEQ0FTVD1tCitDT05GSUdfTkZfQ09OTlRSQUNLX05FVEJJT1NfTlM9bQorQ09ORklH X05GX0NPTk5UUkFDS19TTk1QPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfUFBUUD1tCitDT05GSUdf TkZfQ09OTlRSQUNLX1NBTkU9bQorQ09ORklHX05GX0NPTk5UUkFDS19TSVA9bQorQ09ORklHX05G X0NPTk5UUkFDS19URlRQPW0KK0NPTkZJR19ORl9DVF9ORVRMSU5LPW0KK0NPTkZJR19ORl9DVF9O RVRMSU5LX1RJTUVPVVQ9bQorQ09ORklHX05GX0NUX05FVExJTktfSEVMUEVSPW0KK0NPTkZJR19O RVRGSUxURVJfTkVUTElOS19HTFVFX0NUPXkKK0NPTkZJR19ORl9OQVQ9bQorQ09ORklHX05GX05B VF9BTUFOREE9bQorQ09ORklHX05GX05BVF9GVFA9bQorQ09ORklHX05GX05BVF9JUkM9bQorQ09O RklHX05GX05BVF9TSVA9bQorQ09ORklHX05GX05BVF9URlRQPW0KK0NPTkZJR19ORl9OQVRfUkVE SVJFQ1Q9eQorQ09ORklHX05GX05BVF9NQVNRVUVSQURFPXkKK0NPTkZJR19ORVRGSUxURVJfU1lO UFJPWFk9bQorQ09ORklHX05GX1RBQkxFUz1tCitDT05GSUdfTkZfVEFCTEVTX0lORVQ9eQorQ09O RklHX05GX1RBQkxFU19ORVRERVY9eQorQ09ORklHX05GVF9OVU1HRU49bQorQ09ORklHX05GVF9D VD1tCitDT05GSUdfTkZUX0ZMT1dfT0ZGTE9BRD1tCitDT05GSUdfTkZUX0NPVU5URVI9bQorQ09O RklHX05GVF9DT05OTElNSVQ9bQorQ09ORklHX05GVF9MT0c9bQorQ09ORklHX05GVF9MSU1JVD1t CitDT05GSUdfTkZUX01BU1E9bQorQ09ORklHX05GVF9SRURJUj1tCitDT05GSUdfTkZUX05BVD1t CitDT05GSUdfTkZUX1RVTk5FTD1tCitDT05GSUdfTkZUX09CSlJFRj1tCitDT05GSUdfTkZUX1FV RVVFPW0KK0NPTkZJR19ORlRfUVVPVEE9bQorQ09ORklHX05GVF9SRUpFQ1Q9bQorQ09ORklHX05G VF9SRUpFQ1RfSU5FVD1tCitDT05GSUdfTkZUX0NPTVBBVD1tCitDT05GSUdfTkZUX0hBU0g9bQor Q09ORklHX05GVF9GSUI9bQorQ09ORklHX05GVF9GSUJfSU5FVD1tCitDT05GSUdfTkZUX1hGUk09 bQorQ09ORklHX05GVF9TT0NLRVQ9bQorQ09ORklHX05GVF9PU0Y9bQorQ09ORklHX05GVF9UUFJP WFk9bQorQ09ORklHX05GVF9TWU5QUk9YWT1tCitDT05GSUdfTkZfRFVQX05FVERFVj1tCitDT05G SUdfTkZUX0RVUF9ORVRERVY9bQorQ09ORklHX05GVF9GV0RfTkVUREVWPW0KK0NPTkZJR19ORlRf RklCX05FVERFVj1tCitDT05GSUdfTkZUX1JFSkVDVF9ORVRERVY9bQorQ09ORklHX05GX0ZMT1df VEFCTEVfSU5FVD1tCitDT05GSUdfTkZfRkxPV19UQUJMRT1tCitDT05GSUdfTkVURklMVEVSX1hU QUJMRVM9bQorCisjCisjIFh0YWJsZXMgY29tYmluZWQgbW9kdWxlcworIworQ09ORklHX05FVEZJ TFRFUl9YVF9NQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfQ09OTk1BUks9bQorQ09ORklHX05F VEZJTFRFUl9YVF9TRVQ9bQorCisjCisjIFh0YWJsZXMgdGFyZ2V0cworIworQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfQVVESVQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ0hFQ0tT VU09bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ0xBU1NJRlk9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfQ09OTk1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ09O TlNFQ01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ1Q9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfRFNDUD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ITD1tCitD T05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ITUFSSz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RB UkdFVF9JRExFVElNRVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTEVEPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfVEFSR0VUX0xPRz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9N QVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTkFUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFS R0VUX05FVE1BUD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORkxPRz1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9ORlFVRVVFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VU X05PVFJBQ0s9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfUkFURUVTVD1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9SRURJUkVDVD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdF VF9NQVNRVUVSQURFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RFRT1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9UUFJPWFk9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRf VFJBQ0U9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfU0VDTUFSSz1tCitDT05GSUdfTkVU RklMVEVSX1hUX1RBUkdFVF9UQ1BNU1M9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVENQ T1BUU1RSSVA9bQorCisjCisjIFh0YWJsZXMgbWF0Y2hlcworIworQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9BRERSVFlQRT1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0JQRj1tCitDT05G SUdfTkVURklMVEVSX1hUX01BVENIX0NHUk9VUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENI X0NMVVNURVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT01NRU5UPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfTUFUQ0hfQ09OTkJZVEVTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf Q09OTkxBQkVMPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTkxJTUlUPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTk1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9DT05OVFJBQ0s9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DUFU9bQorQ09ORklHX05F VEZJTFRFUl9YVF9NQVRDSF9EQ0NQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfREVWR1JP VVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9EU0NQPW0KK0NPTkZJR19ORVRGSUxURVJf WFRfTUFUQ0hfRUNOPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRVNQPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfTUFUQ0hfSEFTSExJTUlUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf SEVMUEVSPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSEw9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9NQVRDSF9JUENPTVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9JUFJBTkdFPW0K K0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSVBWUz1tCitDT05GSUdfTkVURklMVEVSX1hUX01B VENIX0wyVFA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9MRU5HVEg9bQorQ09ORklHX05F VEZJTFRFUl9YVF9NQVRDSF9MSU1JVD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BQz1t CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9N QVRDSF9NVUxUSVBPUlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9ORkFDQ1Q9bQorQ09O RklHX05FVEZJTFRFUl9YVF9NQVRDSF9PU0Y9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9P V05FUj1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BPTElDWT1tCitDT05GSUdfTkVURklM VEVSX1hUX01BVENIX1BIWVNERVY9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9QS1RUWVBF PW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUVVPVEE9bQorQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9SQVRFRVNUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUkVBTE09bQorQ09O RklHX05FVEZJTFRFUl9YVF9NQVRDSF9SRUNFTlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9TQ1RQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU09DS0VUPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfTUFUQ0hfU1RBVEU9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFUSVNU SUM9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVFJJTkc9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9NQVRDSF9UQ1BNU1M9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9USU1FPW0KK0NP TkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfVTMyPW0KKyMgZW5kIG9mIENvcmUgTmV0ZmlsdGVyIENv bmZpZ3VyYXRpb24KKworQ09ORklHX0lQX1NFVD1tCitDT05GSUdfSVBfU0VUX01BWD0yNTYKK0NP TkZJR19JUF9TRVRfQklUTUFQX0lQPW0KK0NPTkZJR19JUF9TRVRfQklUTUFQX0lQTUFDPW0KK0NP TkZJR19JUF9TRVRfQklUTUFQX1BPUlQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQPW0KK0NPTkZJ R19JUF9TRVRfSEFTSF9JUE1BUks9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQUE9SVD1tCitDT05G SUdfSVBfU0VUX0hBU0hfSVBQT1JUSVA9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQUE9SVE5FVD1t CitDT05GSUdfSVBfU0VUX0hBU0hfSVBNQUM9bQorQ09ORklHX0lQX1NFVF9IQVNIX01BQz1tCitD T05GSUdfSVBfU0VUX0hBU0hfTkVUUE9SVE5FVD1tCitDT05GSUdfSVBfU0VUX0hBU0hfTkVUPW0K K0NPTkZJR19JUF9TRVRfSEFTSF9ORVRORVQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVFBPUlQ9 bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVElGQUNFPW0KK0NPTkZJR19JUF9TRVRfTElTVF9TRVQ9 bQorQ09ORklHX0lQX1ZTPW0KK0NPTkZJR19JUF9WU19JUFY2PXkKKyMgQ09ORklHX0lQX1ZTX0RF QlVHIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9WU19UQUJfQklUUz0xMgorCisjCisjIElQVlMgdHJh bnNwb3J0IHByb3RvY29sIGxvYWQgYmFsYW5jaW5nIHN1cHBvcnQKKyMKK0NPTkZJR19JUF9WU19Q Uk9UT19UQ1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX1VEUD15CitDT05GSUdfSVBfVlNfUFJPVE9f QUhfRVNQPXkKK0NPTkZJR19JUF9WU19QUk9UT19FU1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX0FI PXkKK0NPTkZJR19JUF9WU19QUk9UT19TQ1RQPXkKKworIworIyBJUFZTIHNjaGVkdWxlcgorIwor Q09ORklHX0lQX1ZTX1JSPW0KK0NPTkZJR19JUF9WU19XUlI9bQorQ09ORklHX0lQX1ZTX0xDPW0K K0NPTkZJR19JUF9WU19XTEM9bQorQ09ORklHX0lQX1ZTX0ZPPW0KK0NPTkZJR19JUF9WU19PVkY9 bQorQ09ORklHX0lQX1ZTX0xCTEM9bQorQ09ORklHX0lQX1ZTX0xCTENSPW0KK0NPTkZJR19JUF9W U19ESD1tCitDT05GSUdfSVBfVlNfU0g9bQorQ09ORklHX0lQX1ZTX01IPW0KK0NPTkZJR19JUF9W U19TRUQ9bQorQ09ORklHX0lQX1ZTX05RPW0KK0NPTkZJR19JUF9WU19UV09TPW0KKworIworIyBJ UFZTIFNIIHNjaGVkdWxlcgorIworQ09ORklHX0lQX1ZTX1NIX1RBQl9CSVRTPTgKKworIworIyBJ UFZTIE1IIHNjaGVkdWxlcgorIworQ09ORklHX0lQX1ZTX01IX1RBQl9JTkRFWD0xMgorCisjCisj IElQVlMgYXBwbGljYXRpb24gaGVscGVyCisjCitDT05GSUdfSVBfVlNfRlRQPW0KK0NPTkZJR19J UF9WU19ORkNUPXkKK0NPTkZJR19JUF9WU19QRV9TSVA9bQorCisjCisjIElQOiBOZXRmaWx0ZXIg Q29uZmlndXJhdGlvbgorIworQ09ORklHX05GX0RFRlJBR19JUFY0PW0KK0NPTkZJR19ORl9TT0NL RVRfSVBWND1tCitDT05GSUdfTkZfVFBST1hZX0lQVjQ9bQorQ09ORklHX05GX1RBQkxFU19JUFY0 PXkKK0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bQorQ09ORklHX05GVF9EVVBfSVBWND1tCitDT05G SUdfTkZUX0ZJQl9JUFY0PW0KK0NPTkZJR19ORl9UQUJMRVNfQVJQPXkKK0NPTkZJR19ORl9GTE9X X1RBQkxFX0lQVjQ9bQorQ09ORklHX05GX0RVUF9JUFY0PW0KK0NPTkZJR19ORl9MT0dfQVJQPW0K K0NPTkZJR19ORl9MT0dfSVBWND1tCitDT05GSUdfTkZfUkVKRUNUX0lQVjQ9bQorQ09ORklHX05G X05BVF9TTk1QX0JBU0lDPW0KK0NPTkZJR19ORl9OQVRfUFBUUD1tCitDT05GSUdfTkZfTkFUX0gz MjM9bQorQ09ORklHX0lQX05GX0lQVEFCTEVTPW0KK0NPTkZJR19JUF9ORl9NQVRDSF9BSD1tCitD T05GSUdfSVBfTkZfTUFUQ0hfRUNOPW0KK0NPTkZJR19JUF9ORl9NQVRDSF9SUEZJTFRFUj1tCitD T05GSUdfSVBfTkZfTUFUQ0hfVFRMPW0KK0NPTkZJR19JUF9ORl9GSUxURVI9bQorQ09ORklHX0lQ X05GX1RBUkdFVF9SRUpFQ1Q9bQorQ09ORklHX0lQX05GX1RBUkdFVF9TWU5QUk9YWT1tCitDT05G SUdfSVBfTkZfTkFUPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVFUkFERT1tCitDT05GSUdf SVBfTkZfVEFSR0VUX05FVE1BUD1tCitDT05GSUdfSVBfTkZfVEFSR0VUX1JFRElSRUNUPW0KK0NP TkZJR19JUF9ORl9NQU5HTEU9bQorQ09ORklHX0lQX05GX1RBUkdFVF9DTFVTVEVSSVA9bQorQ09O RklHX0lQX05GX1RBUkdFVF9FQ049bQorQ09ORklHX0lQX05GX1RBUkdFVF9UVEw9bQorQ09ORklH X0lQX05GX1JBVz1tCitDT05GSUdfSVBfTkZfU0VDVVJJVFk9bQorQ09ORklHX0lQX05GX0FSUFRB QkxFUz1tCitDT05GSUdfSVBfTkZfQVJQRklMVEVSPW0KK0NPTkZJR19JUF9ORl9BUlBfTUFOR0xF PW0KKyMgZW5kIG9mIElQOiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorCisjCisjIElQdjY6IE5l dGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfU09DS0VUX0lQVjY9bQorQ09ORklH X05GX1RQUk9YWV9JUFY2PW0KK0NPTkZJR19ORl9UQUJMRVNfSVBWNj15CitDT05GSUdfTkZUX1JF SkVDVF9JUFY2PW0KK0NPTkZJR19ORlRfRFVQX0lQVjY9bQorQ09ORklHX05GVF9GSUJfSVBWNj1t CitDT05GSUdfTkZfRkxPV19UQUJMRV9JUFY2PW0KK0NPTkZJR19ORl9EVVBfSVBWNj1tCitDT05G SUdfTkZfUkVKRUNUX0lQVjY9bQorQ09ORklHX05GX0xPR19JUFY2PW0KK0NPTkZJR19JUDZfTkZf SVBUQUJMRVM9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9BSD1tCitDT05GSUdfSVA2X05GX01BVENI X0VVSTY0PW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfRlJBRz1tCitDT05GSUdfSVA2X05GX01BVENI X09QVFM9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9ITD1tCitDT05GSUdfSVA2X05GX01BVENIX0lQ VjZIRUFERVI9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9NSD1tCitDT05GSUdfSVA2X05GX01BVENI X1JQRklMVEVSPW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfUlQ9bQorQ09ORklHX0lQNl9ORl9NQVRD SF9TUkg9bQorQ09ORklHX0lQNl9ORl9UQVJHRVRfSEw9bQorQ09ORklHX0lQNl9ORl9GSUxURVI9 bQorQ09ORklHX0lQNl9ORl9UQVJHRVRfUkVKRUNUPW0KK0NPTkZJR19JUDZfTkZfVEFSR0VUX1NZ TlBST1hZPW0KK0NPTkZJR19JUDZfTkZfTUFOR0xFPW0KK0NPTkZJR19JUDZfTkZfUkFXPW0KK0NP TkZJR19JUDZfTkZfU0VDVVJJVFk9bQorQ09ORklHX0lQNl9ORl9OQVQ9bQorQ09ORklHX0lQNl9O Rl9UQVJHRVRfTUFTUVVFUkFERT1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9OUFQ9bQorIyBlbmQg b2YgSVB2NjogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKworQ09ORklHX05GX0RFRlJBR19JUFY2 PW0KK0NPTkZJR19ORl9UQUJMRVNfQlJJREdFPW0KK0NPTkZJR19ORlRfQlJJREdFX01FVEE9bQor Q09ORklHX05GVF9CUklER0VfUkVKRUNUPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfQlJJREdFPW0K K0NPTkZJR19CUklER0VfTkZfRUJUQUJMRVM9bQorQ09ORklHX0JSSURHRV9FQlRfQlJPVVRFPW0K K0NPTkZJR19CUklER0VfRUJUX1RfRklMVEVSPW0KK0NPTkZJR19CUklER0VfRUJUX1RfTkFUPW0K K0NPTkZJR19CUklER0VfRUJUXzgwMl8zPW0KK0NPTkZJR19CUklER0VfRUJUX0FNT05HPW0KK0NP TkZJR19CUklER0VfRUJUX0FSUD1tCitDT05GSUdfQlJJREdFX0VCVF9JUD1tCitDT05GSUdfQlJJ REdFX0VCVF9JUDY9bQorQ09ORklHX0JSSURHRV9FQlRfTElNSVQ9bQorQ09ORklHX0JSSURHRV9F QlRfTUFSSz1tCitDT05GSUdfQlJJREdFX0VCVF9QS1RUWVBFPW0KK0NPTkZJR19CUklER0VfRUJU X1NUUD1tCitDT05GSUdfQlJJREdFX0VCVF9WTEFOPW0KK0NPTkZJR19CUklER0VfRUJUX0FSUFJF UExZPW0KK0NPTkZJR19CUklER0VfRUJUX0ROQVQ9bQorQ09ORklHX0JSSURHRV9FQlRfTUFSS19U PW0KK0NPTkZJR19CUklER0VfRUJUX1JFRElSRUNUPW0KK0NPTkZJR19CUklER0VfRUJUX1NOQVQ9 bQorQ09ORklHX0JSSURHRV9FQlRfTE9HPW0KK0NPTkZJR19CUklER0VfRUJUX05GTE9HPW0KK0NP TkZJR19CUEZJTFRFUj15CisjIENPTkZJR19CUEZJTFRFUl9VTUggaXMgbm90IHNldAorQ09ORklH X0lQX0RDQ1A9bQorQ09ORklHX0lORVRfRENDUF9ESUFHPW0KKworIworIyBEQ0NQIENDSURzIENv bmZpZ3VyYXRpb24KKyMKKyMgQ09ORklHX0lQX0RDQ1BfQ0NJRDJfREVCVUcgaXMgbm90IHNldAor Q09ORklHX0lQX0RDQ1BfQ0NJRDM9eQorIyBDT05GSUdfSVBfRENDUF9DQ0lEM19ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfSVBfRENDUF9URlJDX0xJQj15CisjIGVuZCBvZiBEQ0NQIENDSURzIENv bmZpZ3VyYXRpb24KKworIworIyBEQ0NQIEtlcm5lbCBIYWNraW5nCisjCisjIENPTkZJR19JUF9E Q0NQX0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERDQ1AgS2VybmVsIEhhY2tpbmcKKworQ09O RklHX0lQX1NDVFA9bQorIyBDT05GSUdfU0NUUF9EQkdfT0JKQ05UIGlzIG5vdCBzZXQKK0NPTkZJ R19TQ1RQX0RFRkFVTFRfQ09PS0lFX0hNQUNfTUQ1PXkKKyMgQ09ORklHX1NDVFBfREVGQVVMVF9D T09LSUVfSE1BQ19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDVFBfREVGQVVMVF9DT09LSUVf SE1BQ19OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1RQX0NPT0tJRV9ITUFDX01ENT15CisjIENP TkZJR19TQ1RQX0NPT0tJRV9ITUFDX1NIQTEgaXMgbm90IHNldAorQ09ORklHX0lORVRfU0NUUF9E SUFHPW0KK0NPTkZJR19SRFM9bQorQ09ORklHX1JEU19SRE1BPW0KK0NPTkZJR19SRFNfVENQPW0K KyMgQ09ORklHX1JEU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVElQQz1tCisjIENPTkZJR19U SVBDX01FRElBX0lCIGlzIG5vdCBzZXQKK0NPTkZJR19USVBDX01FRElBX1VEUD15CitDT05GSUdf VElQQ19DUllQVE89eQorQ09ORklHX1RJUENfRElBRz1tCitDT05GSUdfQVRNPW0KK0NPTkZJR19B VE1fQ0xJUD1tCisjIENPTkZJR19BVE1fQ0xJUF9OT19JQ01QIGlzIG5vdCBzZXQKK0NPTkZJR19B VE1fTEFORT1tCitDT05GSUdfQVRNX01QT0E9bQorQ09ORklHX0FUTV9CUjI2ODQ9bQorIyBDT05G SUdfQVRNX0JSMjY4NF9JUEZJTFRFUiBpcyBub3Qgc2V0CitDT05GSUdfTDJUUD1tCitDT05GSUdf TDJUUF9ERUJVR0ZTPW0KK0NPTkZJR19MMlRQX1YzPXkKK0NPTkZJR19MMlRQX0lQPW0KK0NPTkZJ R19MMlRQX0VUSD1tCitDT05GSUdfU1RQPW0KK0NPTkZJR19HQVJQPW0KK0NPTkZJR19NUlA9bQor Q09ORklHX0JSSURHRT1tCitDT05GSUdfQlJJREdFX0lHTVBfU05PT1BJTkc9eQorQ09ORklHX0JS SURHRV9WTEFOX0ZJTFRFUklORz15CitDT05GSUdfQlJJREdFX01SUD15CisjIENPTkZJR19CUklE R0VfQ0ZNIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRFNBPW0KK0NPTkZJR19ORVRfRFNBX1RBR19B UjkzMzE9bQorQ09ORklHX05FVF9EU0FfVEFHX0JSQ01fQ09NTU9OPW0KK0NPTkZJR19ORVRfRFNB X1RBR19CUkNNPW0KK0NPTkZJR19ORVRfRFNBX1RBR19CUkNNX0xFR0FDWT1tCitDT05GSUdfTkVU X0RTQV9UQUdfQlJDTV9QUkVQRU5EPW0KK0NPTkZJR19ORVRfRFNBX1RBR19IRUxMQ1JFRUs9bQor Q09ORklHX05FVF9EU0FfVEFHX0dTV0lQPW0KK0NPTkZJR19ORVRfRFNBX1RBR19EU0FfQ09NTU9O PW0KK0NPTkZJR19ORVRfRFNBX1RBR19EU0E9bQorQ09ORklHX05FVF9EU0FfVEFHX0VEU0E9bQor Q09ORklHX05FVF9EU0FfVEFHX01USz1tCitDT05GSUdfTkVUX0RTQV9UQUdfS1NaPW0KK0NPTkZJ R19ORVRfRFNBX1RBR19SVEw0X0E9bQorQ09ORklHX05FVF9EU0FfVEFHX09DRUxPVD1tCitDT05G SUdfTkVUX0RTQV9UQUdfT0NFTE9UXzgwMjFRPW0KK0NPTkZJR19ORVRfRFNBX1RBR19RQ0E9bQor Q09ORklHX05FVF9EU0FfVEFHX0xBTjkzMDM9bQorQ09ORklHX05FVF9EU0FfVEFHX1NKQTExMDU9 bQorQ09ORklHX05FVF9EU0FfVEFHX1RSQUlMRVI9bQorQ09ORklHX05FVF9EU0FfVEFHX1hSUzcw MFg9bQorQ09ORklHX1ZMQU5fODAyMVE9bQorQ09ORklHX1ZMQU5fODAyMVFfR1ZSUD15CitDT05G SUdfVkxBTl84MDIxUV9NVlJQPXkKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CitDT05GSUdf TExDPW0KK0NPTkZJR19MTEMyPW0KK0NPTkZJR19BVEFMSz1tCitDT05GSUdfREVWX0FQUExFVEFM Sz1tCitDT05GSUdfSVBERFA9bQorQ09ORklHX0lQRERQX0VOQ0FQPXkKK0NPTkZJR19YMjU9bQor Q09ORklHX0xBUEI9bQorQ09ORklHX1BIT05FVD1tCitDT05GSUdfNkxPV1BBTj1tCisjIENPTkZJ R182TE9XUEFOX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHXzZMT1dQQU5fTkhDPW0KK0NPTkZJ R182TE9XUEFOX05IQ19ERVNUPW0KK0NPTkZJR182TE9XUEFOX05IQ19GUkFHTUVOVD1tCitDT05G SUdfNkxPV1BBTl9OSENfSE9QPW0KK0NPTkZJR182TE9XUEFOX05IQ19JUFY2PW0KK0NPTkZJR182 TE9XUEFOX05IQ19NT0JJTElUWT1tCitDT05GSUdfNkxPV1BBTl9OSENfUk9VVElORz1tCitDT05G SUdfNkxPV1BBTl9OSENfVURQPW0KK0NPTkZJR182TE9XUEFOX0dIQ19FWFRfSERSX0hPUD1tCitD T05GSUdfNkxPV1BBTl9HSENfVURQPW0KK0NPTkZJR182TE9XUEFOX0dIQ19JQ01QVjY9bQorQ09O RklHXzZMT1dQQU5fR0hDX0VYVF9IRFJfREVTVD1tCitDT05GSUdfNkxPV1BBTl9HSENfRVhUX0hE Ul9GUkFHPW0KK0NPTkZJR182TE9XUEFOX0dIQ19FWFRfSERSX1JPVVRFPW0KK0NPTkZJR19JRUVF ODAyMTU0PW0KK0NPTkZJR19JRUVFODAyMTU0X05MODAyMTU0X0VYUEVSSU1FTlRBTD15CitDT05G SUdfSUVFRTgwMjE1NF9TT0NLRVQ9bQorQ09ORklHX0lFRUU4MDIxNTRfNkxPV1BBTj1tCitDT05G SUdfTUFDODAyMTU0PW0KK0NPTkZJR19ORVRfU0NIRUQ9eQorCisjCisjIFF1ZXVlaW5nL1NjaGVk dWxpbmcKKyMKK0NPTkZJR19ORVRfU0NIX0NCUT1tCitDT05GSUdfTkVUX1NDSF9IVEI9bQorQ09O RklHX05FVF9TQ0hfSEZTQz1tCitDT05GSUdfTkVUX1NDSF9BVE09bQorQ09ORklHX05FVF9TQ0hf UFJJTz1tCitDT05GSUdfTkVUX1NDSF9NVUxUSVE9bQorQ09ORklHX05FVF9TQ0hfUkVEPW0KK0NP TkZJR19ORVRfU0NIX1NGQj1tCitDT05GSUdfTkVUX1NDSF9TRlE9bQorQ09ORklHX05FVF9TQ0hf VEVRTD1tCitDT05GSUdfTkVUX1NDSF9UQkY9bQorQ09ORklHX05FVF9TQ0hfQ0JTPW0KK0NPTkZJ R19ORVRfU0NIX0VURj1tCitDT05GSUdfTkVUX1NDSF9UQVBSSU89bQorQ09ORklHX05FVF9TQ0hf R1JFRD1tCitDT05GSUdfTkVUX1NDSF9EU01BUks9bQorQ09ORklHX05FVF9TQ0hfTkVURU09bQor Q09ORklHX05FVF9TQ0hfRFJSPW0KK0NPTkZJR19ORVRfU0NIX01RUFJJTz1tCitDT05GSUdfTkVU X1NDSF9TS0JQUklPPW0KK0NPTkZJR19ORVRfU0NIX0NIT0tFPW0KK0NPTkZJR19ORVRfU0NIX1FG UT1tCitDT05GSUdfTkVUX1NDSF9DT0RFTD1tCitDT05GSUdfTkVUX1NDSF9GUV9DT0RFTD1tCitD T05GSUdfTkVUX1NDSF9DQUtFPW0KK0NPTkZJR19ORVRfU0NIX0ZRPW0KK0NPTkZJR19ORVRfU0NI X0hIRj1tCitDT05GSUdfTkVUX1NDSF9QSUU9bQorQ09ORklHX05FVF9TQ0hfRlFfUElFPW0KK0NP TkZJR19ORVRfU0NIX0lOR1JFU1M9bQorQ09ORklHX05FVF9TQ0hfUExVRz1tCitDT05GSUdfTkVU X1NDSF9FVFM9bQorIyBDT05GSUdfTkVUX1NDSF9ERUZBVUxUIGlzIG5vdCBzZXQKKworIworIyBD bGFzc2lmaWNhdGlvbgorIworQ09ORklHX05FVF9DTFM9eQorQ09ORklHX05FVF9DTFNfQkFTSUM9 bQorQ09ORklHX05FVF9DTFNfVENJTkRFWD1tCitDT05GSUdfTkVUX0NMU19ST1VURTQ9bQorQ09O RklHX05FVF9DTFNfRlc9bQorQ09ORklHX05FVF9DTFNfVTMyPW0KK0NPTkZJR19DTFNfVTMyX1BF UkY9eQorQ09ORklHX0NMU19VMzJfTUFSSz15CitDT05GSUdfTkVUX0NMU19SU1ZQPW0KK0NPTkZJ R19ORVRfQ0xTX1JTVlA2PW0KK0NPTkZJR19ORVRfQ0xTX0ZMT1c9bQorQ09ORklHX05FVF9DTFNf Q0dST1VQPW0KK0NPTkZJR19ORVRfQ0xTX0JQRj1tCitDT05GSUdfTkVUX0NMU19GTE9XRVI9bQor Q09ORklHX05FVF9DTFNfTUFUQ0hBTEw9bQorQ09ORklHX05FVF9FTUFUQ0g9eQorQ09ORklHX05F VF9FTUFUQ0hfU1RBQ0s9MzIKK0NPTkZJR19ORVRfRU1BVENIX0NNUD1tCitDT05GSUdfTkVUX0VN QVRDSF9OQllURT1tCitDT05GSUdfTkVUX0VNQVRDSF9VMzI9bQorQ09ORklHX05FVF9FTUFUQ0hf TUVUQT1tCitDT05GSUdfTkVUX0VNQVRDSF9URVhUPW0KK0NPTkZJR19ORVRfRU1BVENIX0NBTklE PW0KK0NPTkZJR19ORVRfRU1BVENIX0lQU0VUPW0KK0NPTkZJR19ORVRfRU1BVENIX0lQVD1tCitD T05GSUdfTkVUX0NMU19BQ1Q9eQorQ09ORklHX05FVF9BQ1RfUE9MSUNFPW0KK0NPTkZJR19ORVRf QUNUX0dBQ1Q9bQorQ09ORklHX0dBQ1RfUFJPQj15CitDT05GSUdfTkVUX0FDVF9NSVJSRUQ9bQor Q09ORklHX05FVF9BQ1RfU0FNUExFPW0KK0NPTkZJR19ORVRfQUNUX0lQVD1tCitDT05GSUdfTkVU X0FDVF9OQVQ9bQorQ09ORklHX05FVF9BQ1RfUEVESVQ9bQorQ09ORklHX05FVF9BQ1RfU0lNUD1t CitDT05GSUdfTkVUX0FDVF9TS0JFRElUPW0KK0NPTkZJR19ORVRfQUNUX0NTVU09bQorQ09ORklH X05FVF9BQ1RfTVBMUz1tCitDT05GSUdfTkVUX0FDVF9WTEFOPW0KK0NPTkZJR19ORVRfQUNUX0JQ Rj1tCitDT05GSUdfTkVUX0FDVF9DT05OTUFSSz1tCitDT05GSUdfTkVUX0FDVF9DVElORk89bQor Q09ORklHX05FVF9BQ1RfU0tCTU9EPW0KK0NPTkZJR19ORVRfQUNUX0lGRT1tCitDT05GSUdfTkVU X0FDVF9UVU5ORUxfS0VZPW0KK0NPTkZJR19ORVRfQUNUX0NUPW0KK0NPTkZJR19ORVRfQUNUX0dB VEU9bQorQ09ORklHX05FVF9JRkVfU0tCTUFSSz1tCitDT05GSUdfTkVUX0lGRV9TS0JQUklPPW0K K0NPTkZJR19ORVRfSUZFX1NLQlRDSU5ERVg9bQorQ09ORklHX05FVF9UQ19TS0JfRVhUPXkKK0NP TkZJR19ORVRfU0NIX0ZJRk89eQorQ09ORklHX0RDQj15CitDT05GSUdfRE5TX1JFU09MVkVSPW0K K0NPTkZJR19CQVRNQU5fQURWPW0KK0NPTkZJR19CQVRNQU5fQURWX0JBVE1BTl9WPXkKK0NPTkZJ R19CQVRNQU5fQURWX0JMQT15CitDT05GSUdfQkFUTUFOX0FEVl9EQVQ9eQorQ09ORklHX0JBVE1B Tl9BRFZfTkM9eQorQ09ORklHX0JBVE1BTl9BRFZfTUNBU1Q9eQorQ09ORklHX0JBVE1BTl9BRFZf REVCVUc9eQorIyBDT05GSUdfQkFUTUFOX0FEVl9UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19P UEVOVlNXSVRDSD1tCitDT05GSUdfT1BFTlZTV0lUQ0hfR1JFPW0KK0NPTkZJR19PUEVOVlNXSVRD SF9WWExBTj1tCitDT05GSUdfT1BFTlZTV0lUQ0hfR0VORVZFPW0KK0NPTkZJR19WU09DS0VUUz1t CitDT05GSUdfVlNPQ0tFVFNfRElBRz1tCitDT05GSUdfVlNPQ0tFVFNfTE9PUEJBQ0s9bQorQ09O RklHX1ZJUlRJT19WU09DS0VUUz1tCitDT05GSUdfVklSVElPX1ZTT0NLRVRTX0NPTU1PTj1tCitD T05GSUdfTkVUTElOS19ESUFHPW0KK0NPTkZJR19NUExTPXkKK0NPTkZJR19ORVRfTVBMU19HU089 bQorQ09ORklHX01QTFNfUk9VVElORz1tCitDT05GSUdfTVBMU19JUFRVTk5FTD1tCitDT05GSUdf TkVUX05TSD1tCitDT05GSUdfSFNSPW0KK0NPTkZJR19ORVRfU1dJVENIREVWPXkKK0NPTkZJR19O RVRfTDNfTUFTVEVSX0RFVj15CitDT05GSUdfUVJUUj1tCitDT05GSUdfUVJUUl9TTUQ9bQorQ09O RklHX1FSVFJfVFVOPW0KK0NPTkZJR19RUlRSX01IST1tCitDT05GSUdfTkVUX05DU0k9eQorQ09O RklHX05DU0lfT0VNX0NNRF9HRVRfTUFDPXkKKyMgQ09ORklHX05DU0lfT0VNX0NNRF9LRUVQX1BI WSBpcyBub3Qgc2V0CitDT05GSUdfUENQVV9ERVZfUkVGQ05UPXkKK0NPTkZJR19SUFM9eQorQ09O RklHX1JGU19BQ0NFTD15CitDT05GSUdfU09DS19SWF9RVUVVRV9NQVBQSU5HPXkKK0NPTkZJR19Y UFM9eQorQ09ORklHX0NHUk9VUF9ORVRfUFJJTz15CitDT05GSUdfQ0dST1VQX05FVF9DTEFTU0lE PXkKK0NPTkZJR19ORVRfUlhfQlVTWV9QT0xMPXkKK0NPTkZJR19CUUw9eQorQ09ORklHX0JQRl9T VFJFQU1fUEFSU0VSPXkKK0NPTkZJR19ORVRfRkxPV19MSU1JVD15CisKKyMKKyMgTmV0d29yayB0 ZXN0aW5nCisjCitDT05GSUdfTkVUX1BLVEdFTj1tCitDT05GSUdfTkVUX0RST1BfTU9OSVRPUj15 CisjIGVuZCBvZiBOZXR3b3JrIHRlc3RpbmcKKyMgZW5kIG9mIE5ldHdvcmtpbmcgb3B0aW9ucwor CitDT05GSUdfSEFNUkFESU89eQorCisjCisjIFBhY2tldCBSYWRpbyBwcm90b2NvbHMKKyMKK0NP TkZJR19BWDI1PW0KK0NPTkZJR19BWDI1X0RBTUFfU0xBVkU9eQorQ09ORklHX05FVFJPTT1tCitD T05GSUdfUk9TRT1tCisKKyMKKyMgQVguMjUgbmV0d29yayBkZXZpY2UgZHJpdmVycworIworQ09O RklHX01LSVNTPW0KK0NPTkZJR182UEFDSz1tCitDT05GSUdfQlBRRVRIRVI9bQorQ09ORklHX0JB WUNPTV9TRVJfRkRYPW0KK0NPTkZJR19CQVlDT01fU0VSX0hEWD1tCitDT05GSUdfQkFZQ09NX1BB Uj1tCitDT05GSUdfWUFNPW0KKyMgZW5kIG9mIEFYLjI1IG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMK KworQ09ORklHX0NBTj1tCitDT05GSUdfQ0FOX1JBVz1tCitDT05GSUdfQ0FOX0JDTT1tCitDT05G SUdfQ0FOX0dXPW0KK0NPTkZJR19DQU5fSjE5Mzk9bQorQ09ORklHX0NBTl9JU09UUD1tCisKKyMK KyMgQ0FOIERldmljZSBEcml2ZXJzCisjCitDT05GSUdfQ0FOX1ZDQU49bQorQ09ORklHX0NBTl9W WENBTj1tCitDT05GSUdfQ0FOX1NMQ0FOPW0KK0NPTkZJR19DQU5fREVWPW0KK0NPTkZJR19DQU5f Q0FMQ19CSVRUSU1JTkc9eQorQ09ORklHX0NBTl9GTEVYQ0FOPW0KKyMgQ09ORklHX0NBTl9HUkNB TiBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0tWQVNFUl9QQ0lFRkQ9bQorQ09ORklHX0lQTVNfQ0FO PW0KK0NPTkZJR19DQU5fQ19DQU49bQorIyBDT05GSUdfQ0FOX0NfQ0FOX1BMQVRGT1JNIGlzIG5v dCBzZXQKK0NPTkZJR19DQU5fQ19DQU5fUENJPW0KKyMgQ09ORklHX0NBTl9DQzc3MCBpcyBub3Qg c2V0CitDT05GSUdfQ0FOX0lGSV9DQU5GRD1tCitDT05GSUdfQ0FOX01fQ0FOPW0KK0NPTkZJR19D QU5fTV9DQU5fUENJPW0KK0NPTkZJR19DQU5fTV9DQU5fUExBVEZPUk09bQorQ09ORklHX0NBTl9N X0NBTl9UQ0FONFg1WD1tCitDT05GSUdfQ0FOX1BFQUtfUENJRUZEPW0KK0NPTkZJR19DQU5fU0pB MTAwMD1tCitDT05GSUdfQ0FOX0VNU19QQ0k9bQorQ09ORklHX0NBTl9FTVNfUENNQ0lBPW0KK0NP TkZJR19DQU5fRjgxNjAxPW0KK0NPTkZJR19DQU5fS1ZBU0VSX1BDST1tCitDT05GSUdfQ0FOX1BF QUtfUENJPW0KK0NPTkZJR19DQU5fUEVBS19QQ0lFQz15CitDT05GSUdfQ0FOX1BFQUtfUENNQ0lB PW0KK0NPTkZJR19DQU5fUExYX1BDST1tCisjIENPTkZJR19DQU5fU0pBMTAwMF9JU0EgaXMgbm90 IHNldAorIyBDT05GSUdfQ0FOX1NKQTEwMDBfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NB Tl9TT0ZUSU5HPW0KK0NPTkZJR19DQU5fU09GVElOR19DUz1tCisKKyMKKyMgQ0FOIFNQSSBpbnRl cmZhY2VzCisjCitDT05GSUdfQ0FOX0hJMzExWD1tCisjIENPTkZJR19DQU5fTUNQMjUxWCBpcyBu b3Qgc2V0CisjIENPTkZJR19DQU5fTUNQMjUxWEZEIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENBTiBT UEkgaW50ZXJmYWNlcworCisjCisjIENBTiBVU0IgaW50ZXJmYWNlcworIworQ09ORklHX0NBTl84 REVWX1VTQj1tCitDT05GSUdfQ0FOX0VNU19VU0I9bQorQ09ORklHX0NBTl9FU0RfVVNCMj1tCitD T05GSUdfQ0FOX0VUQVNfRVM1OFg9bQorQ09ORklHX0NBTl9HU19VU0I9bQorQ09ORklHX0NBTl9L VkFTRVJfVVNCPW0KK0NPTkZJR19DQU5fTUNCQV9VU0I9bQorQ09ORklHX0NBTl9QRUFLX1VTQj1t CitDT05GSUdfQ0FOX1VDQU49bQorIyBlbmQgb2YgQ0FOIFVTQiBpbnRlcmZhY2VzCisKKyMgQ09O RklHX0NBTl9ERUJVR19ERVZJQ0VTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENBTiBEZXZpY2UgRHJp dmVycworCitDT05GSUdfQlQ9bQorQ09ORklHX0JUX0JSRURSPXkKK0NPTkZJR19CVF9SRkNPTU09 bQorQ09ORklHX0JUX1JGQ09NTV9UVFk9eQorQ09ORklHX0JUX0JORVA9bQorQ09ORklHX0JUX0JO RVBfTUNfRklMVEVSPXkKK0NPTkZJR19CVF9CTkVQX1BST1RPX0ZJTFRFUj15CitDT05GSUdfQlRf SElEUD1tCitDT05GSUdfQlRfSFM9eQorQ09ORklHX0JUX0xFPXkKK0NPTkZJR19CVF82TE9XUEFO PW0KK0NPTkZJR19CVF9MRURTPXkKK0NPTkZJR19CVF9NU0ZURVhUPXkKK0NPTkZJR19CVF9BT1NQ RVhUPXkKKyMgQ09ORklHX0JUX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfQlRfU0VMRlRF U1QgaXMgbm90IHNldAorCisjCisjIEJsdWV0b290aCBkZXZpY2UgZHJpdmVycworIworQ09ORklH X0JUX0lOVEVMPW0KK0NPTkZJR19CVF9CQ009bQorQ09ORklHX0JUX1JUTD1tCitDT05GSUdfQlRf UUNBPW0KK0NPTkZJR19CVF9IQ0lCVFVTQj1tCitDT05GSUdfQlRfSENJQlRVU0JfQVVUT1NVU1BF TkQ9eQorQ09ORklHX0JUX0hDSUJUVVNCX0JDTT15CitDT05GSUdfQlRfSENJQlRVU0JfTVRLPXkK K0NPTkZJR19CVF9IQ0lCVFVTQl9SVEw9eQorQ09ORklHX0JUX0hDSUJUU0RJTz1tCitDT05GSUdf QlRfSENJVUFSVD1tCitDT05GSUdfQlRfSENJVUFSVF9TRVJERVY9eQorQ09ORklHX0JUX0hDSVVB UlRfSDQ9eQorQ09ORklHX0JUX0hDSVVBUlRfTk9LSUE9bQorQ09ORklHX0JUX0hDSVVBUlRfQkNT UD15CitDT05GSUdfQlRfSENJVUFSVF9BVEgzSz15CitDT05GSUdfQlRfSENJVUFSVF9MTD15CitD T05GSUdfQlRfSENJVUFSVF8zV0lSRT15CitDT05GSUdfQlRfSENJVUFSVF9JTlRFTD15CitDT05G SUdfQlRfSENJVUFSVF9CQ009eQorQ09ORklHX0JUX0hDSVVBUlRfUlRMPXkKK0NPTkZJR19CVF9I Q0lVQVJUX1FDQT15CitDT05GSUdfQlRfSENJVUFSVF9BRzZYWD15CitDT05GSUdfQlRfSENJVUFS VF9NUlZMPXkKK0NPTkZJR19CVF9IQ0lCQ00yMDNYPW0KK0NPTkZJR19CVF9IQ0lCUEExMFg9bQor Q09ORklHX0JUX0hDSUJGVVNCPW0KK0NPTkZJR19CVF9IQ0lEVEwxPW0KK0NPTkZJR19CVF9IQ0lC VDNDPW0KK0NPTkZJR19CVF9IQ0lCTFVFQ0FSRD1tCitDT05GSUdfQlRfSENJVkhDST1tCitDT05G SUdfQlRfTVJWTD1tCitDT05GSUdfQlRfTVJWTF9TRElPPW0KK0NPTkZJR19CVF9BVEgzSz1tCitD T05GSUdfQlRfTVRLU0RJTz1tCitDT05GSUdfQlRfTVRLVUFSVD1tCitDT05GSUdfQlRfSENJUlNJ PW0KK0NPTkZJR19CVF9WSVJUSU89bQorIyBlbmQgb2YgQmx1ZXRvb3RoIGRldmljZSBkcml2ZXJz CisKK0NPTkZJR19BRl9SWFJQQz1tCitDT05GSUdfQUZfUlhSUENfSVBWNj15CisjIENPTkZJR19B Rl9SWFJQQ19JTkpFQ1RfTE9TUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQ19ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfUlhLQUQ9eQorQ09ORklHX0FGX0tDTT1tCitDT05GSUdfU1RSRUFN X1BBUlNFUj15CitDT05GSUdfTUNUUD1tCitDT05GSUdfRklCX1JVTEVTPXkKK0NPTkZJR19XSVJF TEVTUz15CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKK0NPTkZJR19XRVhUX0NPUkU9eQorQ09ORklH X1dFWFRfUFJPQz15CitDT05GSUdfV0VYVF9TUFk9eQorQ09ORklHX1dFWFRfUFJJVj15CitDT05G SUdfQ0ZHODAyMTE9bQorIyBDT05GSUdfTkw4MDIxMV9URVNUTU9ERSBpcyBub3Qgc2V0CisjIENP TkZJR19DRkc4MDIxMV9ERVZFTE9QRVJfV0FSTklOR1MgaXMgbm90IHNldAorIyBDT05GSUdfQ0ZH ODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTIGlzIG5vdCBzZXQKK0NPTkZJR19DRkc4MDIxMV9SRVFV SVJFX1NJR05FRF9SRUdEQj15CitDT05GSUdfQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlT PXkKK0NPTkZJR19DRkc4MDIxMV9ERUZBVUxUX1BTPXkKKyMgQ09ORklHX0NGRzgwMjExX0RFQlVH RlMgaXMgbm90IHNldAorQ09ORklHX0NGRzgwMjExX0NSREFfU1VQUE9SVD15CitDT05GSUdfQ0ZH ODAyMTFfV0VYVD15CitDT05GSUdfQ0ZHODAyMTFfV0VYVF9FWFBPUlQ9eQorQ09ORklHX0xJQjgw MjExPW0KK0NPTkZJR19MSUI4MDIxMV9DUllQVF9XRVA9bQorQ09ORklHX0xJQjgwMjExX0NSWVBU X0NDTVA9bQorQ09ORklHX0xJQjgwMjExX0NSWVBUX1RLSVA9bQorIyBDT05GSUdfTElCODAyMTFf REVCVUcgaXMgbm90IHNldAorQ09ORklHX01BQzgwMjExPW0KK0NPTkZJR19NQUM4MDIxMV9IQVNf UkM9eQorQ09ORklHX01BQzgwMjExX1JDX01JTlNUUkVMPXkKK0NPTkZJR19NQUM4MDIxMV9SQ19E RUZBVUxUX01JTlNUUkVMPXkKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUPSJtaW5zdHJlbF9o dCIKK0NPTkZJR19NQUM4MDIxMV9NRVNIPXkKK0NPTkZJR19NQUM4MDIxMV9MRURTPXkKK0NPTkZJ R19NQUM4MDIxMV9ERUJVR0ZTPXkKKyMgQ09ORklHX01BQzgwMjExX01FU1NBR0VfVFJBQ0lORyBp cyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR19NRU5VIGlzIG5vdCBzZXQKK0NPTkZJ R19NQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRT0wCitDT05GSUdfUkZLSUxMPW0KK0NPTkZJR19S RktJTExfTEVEUz15CitDT05GSUdfUkZLSUxMX0lOUFVUPXkKK0NPTkZJR19SRktJTExfR1BJTz1t CitDT05GSUdfTkVUXzlQPW0KK0NPTkZJR19ORVRfOVBfVklSVElPPW0KK0NPTkZJR19ORVRfOVBf UkRNQT1tCisjIENPTkZJR19ORVRfOVBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NBSUY9bQor IyBDT05GSUdfQ0FJRl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ0FJRl9ORVRERVY9bQorQ09O RklHX0NBSUZfVVNCPW0KK0NPTkZJR19DRVBIX0xJQj1tCitDT05GSUdfQ0VQSF9MSUJfUFJFVFRZ REVCVUc9eQorIyBDT05GSUdfQ0VQSF9MSUJfVVNFX0ROU19SRVNPTFZFUiBpcyBub3Qgc2V0CitD T05GSUdfTkZDPW0KK0NPTkZJR19ORkNfRElHSVRBTD1tCitDT05GSUdfTkZDX05DST1tCisjIENP TkZJR19ORkNfTkNJX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTkZDX05DSV9VQVJUPW0KK0NPTkZJ R19ORkNfSENJPW0KK0NPTkZJR19ORkNfU0hETEM9eQorCisjCisjIE5lYXIgRmllbGQgQ29tbXVu aWNhdGlvbiAoTkZDKSBkZXZpY2VzCisjCisjIENPTkZJR19ORkNfVFJGNzk3MEEgaXMgbm90IHNl dAorQ09ORklHX05GQ19TSU09bQorQ09ORklHX05GQ19QT1JUMTAwPW0KK0NPTkZJR19ORkNfVklS VFVBTF9OQ0k9bQorIyBDT05GSUdfTkZDX0ZEUCBpcyBub3Qgc2V0CitDT05GSUdfTkZDX1BONTQ0 PW0KK0NPTkZJR19ORkNfUE41NDRfSTJDPW0KK0NPTkZJR19ORkNfUE41MzM9bQorQ09ORklHX05G Q19QTjUzM19VU0I9bQorQ09ORklHX05GQ19QTjUzM19JMkM9bQorQ09ORklHX05GQ19QTjUzMl9V QVJUPW0KK0NPTkZJR19ORkNfTUlDUk9SRUFEPW0KK0NPTkZJR19ORkNfTUlDUk9SRUFEX0kyQz1t CitDT05GSUdfTkZDX01SVkw9bQorQ09ORklHX05GQ19NUlZMX1VTQj1tCitDT05GSUdfTkZDX01S VkxfVUFSVD1tCitDT05GSUdfTkZDX01SVkxfSTJDPW0KK0NPTkZJR19ORkNfU1QyMU5GQ0E9bQor Q09ORklHX05GQ19TVDIxTkZDQV9JMkM9bQorQ09ORklHX05GQ19TVF9OQ0k9bQorQ09ORklHX05G Q19TVF9OQ0lfSTJDPW0KK0NPTkZJR19ORkNfU1RfTkNJX1NQST1tCitDT05GSUdfTkZDX05YUF9O Q0k9bQorQ09ORklHX05GQ19OWFBfTkNJX0kyQz1tCitDT05GSUdfTkZDX1MzRldSTjU9bQorQ09O RklHX05GQ19TM0ZXUk41X0kyQz1tCitDT05GSUdfTkZDX1MzRldSTjgyX1VBUlQ9bQorQ09ORklH X05GQ19TVDk1SEY9bQorIyBlbmQgb2YgTmVhciBGaWVsZCBDb21tdW5pY2F0aW9uIChORkMpIGRl dmljZXMKKworQ09ORklHX1BTQU1QTEU9bQorQ09ORklHX05FVF9JRkU9bQorQ09ORklHX0xXVFVO TkVMPXkKK0NPTkZJR19MV1RVTk5FTF9CUEY9eQorQ09ORklHX0RTVF9DQUNIRT15CitDT05GSUdf R1JPX0NFTExTPXkKK0NPTkZJR19TT0NLX1ZBTElEQVRFX1hNSVQ9eQorQ09ORklHX05FVF9TRUxG VEVTVFM9eQorQ09ORklHX05FVF9TT0NLX01TRz15CitDT05GSUdfTkVUX0RFVkxJTks9eQorQ09O RklHX1BBR0VfUE9PTD15CitDT05GSUdfRkFJTE9WRVI9bQorQ09ORklHX0VUSFRPT0xfTkVUTElO Sz15CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19BUk1fQU1CQT15CitDT05GSUdf SEFWRV9QQ0k9eQorQ09ORklHX1BDST15CitDT05GSUdfUENJX0RPTUFJTlM9eQorQ09ORklHX1BD SV9ET01BSU5TX0dFTkVSSUM9eQorQ09ORklHX1BDSUVQT1JUQlVTPXkKK0NPTkZJR19IT1RQTFVH X1BDSV9QQ0lFPXkKK0NPTkZJR19QQ0lFQUVSPXkKK0NPTkZJR19QQ0lFQUVSX0lOSkVDVD1tCisj IENPTkZJR19QQ0lFX0VDUkMgaXMgbm90IHNldAorQ09ORklHX1BDSUVBU1BNPXkKK0NPTkZJR19Q Q0lFQVNQTV9ERUZBVUxUPXkKKyMgQ09ORklHX1BDSUVBU1BNX1BPV0VSU0FWRSBpcyBub3Qgc2V0 CisjIENPTkZJR19QQ0lFQVNQTV9QT1dFUl9TVVBFUlNBVkUgaXMgbm90IHNldAorIyBDT05GSUdf UENJRUFTUE1fUEVSRk9STUFOQ0UgaXMgbm90IHNldAorQ09ORklHX1BDSUVfUE1FPXkKK0NPTkZJ R19QQ0lFX0RQQz15CitDT05GSUdfUENJRV9QVE09eQorQ09ORklHX1BDSV9NU0k9eQorQ09ORklH X1BDSV9NU0lfSVJRX0RPTUFJTj15CitDT05GSUdfUENJX1FVSVJLUz15CisjIENPTkZJR19QQ0lf REVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENJX1JFQUxMT0NfRU5BQkxFX0FVVE8gaXMgbm90 IHNldAorQ09ORklHX1BDSV9TVFVCPXkKK0NPTkZJR19QQ0lfUEZfU1RVQj1tCitDT05GSUdfUENJ X0FUUz15CitDT05GSUdfUENJX0VDQU09eQorQ09ORklHX1BDSV9JT1Y9eQorQ09ORklHX1BDSV9Q Ukk9eQorQ09ORklHX1BDSV9QQVNJRD15CisjIENPTkZJR19QQ0lFX0JVU19UVU5FX09GRiBpcyBu b3Qgc2V0CitDT05GSUdfUENJRV9CVVNfREVGQVVMVD15CisjIENPTkZJR19QQ0lFX0JVU19TQUZF IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSUVfQlVTX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKKyMg Q09ORklHX1BDSUVfQlVTX1BFRVIyUEVFUiBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVR19QQ0k9 eQorQ09ORklHX0hPVFBMVUdfUENJX0NQQ0k9eQorQ09ORklHX0hPVFBMVUdfUENJX1NIUEM9eQor CisjCisjIFBDSSBjb250cm9sbGVyIGRyaXZlcnMKKyMKK0NPTkZJR19QQ0lfRlRQQ0kxMDA9eQor Q09ORklHX1BDSV9IT1NUX0NPTU1PTj15CitDT05GSUdfUENJX0hPU1RfR0VORVJJQz15CitDT05G SUdfUENJRV9YSUxJTlg9eQorQ09ORklHX1BDSUVfTUlDUk9DSElQX0hPU1Q9eQorQ09ORklHX1BD SUVfUExEQT1tCisKKyMKKyMgRGVzaWduV2FyZSBQQ0kgQ29yZSBTdXBwb3J0CisjCitDT05GSUdf UENJRV9EVz15CitDT05GSUdfUENJRV9EV19IT1NUPXkKK0NPTkZJR19QQ0lFX0RXX0VQPXkKK0NP TkZJR19QQ0lFX0RXX1BMQVQ9eQorQ09ORklHX1BDSUVfRFdfUExBVF9IT1NUPXkKK0NPTkZJR19Q Q0lFX0RXX1BMQVRfRVA9eQorQ09ORklHX1BDSV9NRVNPTj15CitDT05GSUdfUENJRV9GVTc0MD15 CisjIGVuZCBvZiBEZXNpZ25XYXJlIFBDSSBDb3JlIFN1cHBvcnQKKworIworIyBNb2JpdmVpbCBQ Q0llIENvcmUgU3VwcG9ydAorIworIyBlbmQgb2YgTW9iaXZlaWwgUENJZSBDb3JlIFN1cHBvcnQK KworIworIyBDYWRlbmNlIFBDSWUgY29udHJvbGxlcnMgc3VwcG9ydAorIworQ09ORklHX1BDSUVf Q0FERU5DRT15CitDT05GSUdfUENJRV9DQURFTkNFX0hPU1Q9eQorQ09ORklHX1BDSUVfQ0FERU5D RV9FUD15CitDT05GSUdfUENJRV9DQURFTkNFX1BMQVQ9eQorQ09ORklHX1BDSUVfQ0FERU5DRV9Q TEFUX0hPU1Q9eQorQ09ORklHX1BDSUVfQ0FERU5DRV9QTEFUX0VQPXkKK0NPTkZJR19QQ0lfSjcy MUU9eQorQ09ORklHX1BDSV9KNzIxRV9IT1NUPXkKK0NPTkZJR19QQ0lfSjcyMUVfRVA9eQorIyBl bmQgb2YgQ2FkZW5jZSBQQ0llIGNvbnRyb2xsZXJzIHN1cHBvcnQKKyMgZW5kIG9mIFBDSSBjb250 cm9sbGVyIGRyaXZlcnMKKworIworIyBQQ0kgRW5kcG9pbnQKKyMKK0NPTkZJR19QQ0lfRU5EUE9J TlQ9eQorQ09ORklHX1BDSV9FTkRQT0lOVF9DT05GSUdGUz15CitDT05GSUdfUENJX0VQRl9URVNU PW0KK0NPTkZJR19QQ0lfRVBGX05UQj1tCisjIGVuZCBvZiBQQ0kgRW5kcG9pbnQKKworIworIyBQ Q0kgc3dpdGNoIGNvbnRyb2xsZXIgZHJpdmVycworIworQ09ORklHX1BDSV9TV19TV0lUQ0hURUM9 bQorIyBlbmQgb2YgUENJIHN3aXRjaCBjb250cm9sbGVyIGRyaXZlcnMKKworQ09ORklHX0NYTF9C VVM9bQorQ09ORklHX0NYTF9NRU09bQorIyBDT05GSUdfQ1hMX01FTV9SQVdfQ09NTUFORFMgaXMg bm90IHNldAorQ09ORklHX0NYTF9QTUVNPW0KK0NPTkZJR19QQ0NBUkQ9bQorQ09ORklHX1BDTUNJ QT1tCitDT05GSUdfUENNQ0lBX0xPQURfQ0lTPXkKK0NPTkZJR19DQVJEQlVTPXkKKworIworIyBQ Qy1jYXJkIGJyaWRnZXMKKyMKK0NPTkZJR19ZRU5UQT1tCitDT05GSUdfWUVOVEFfTzI9eQorQ09O RklHX1lFTlRBX1JJQ09IPXkKK0NPTkZJR19ZRU5UQV9UST15CitDT05GSUdfWUVOVEFfRU5FX1RV TkU9eQorQ09ORklHX1lFTlRBX1RPU0hJQkE9eQorQ09ORklHX1BENjcyOT1tCitDT05GSUdfSTgy MDkyPW0KK0NPTkZJR19QQ0NBUkRfTk9OU1RBVElDPXkKK0NPTkZJR19SQVBJRElPPW0KK0NPTkZJ R19SQVBJRElPX1RTSTcyMT1tCitDT05GSUdfUkFQSURJT19ESVNDX1RJTUVPVVQ9MzAKKyMgQ09O RklHX1JBUElESU9fRU5BQkxFX1JYX1RYX1BPUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19SQVBJRElP X0RNQV9FTkdJTkU9eQorIyBDT05GSUdfUkFQSURJT19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdf UkFQSURJT19FTlVNX0JBU0lDPW0KK0NPTkZJR19SQVBJRElPX0NITUFOPW0KK0NPTkZJR19SQVBJ RElPX01QT1JUX0NERVY9bQorCisjCisjIFJhcGlkSU8gU3dpdGNoIGRyaXZlcnMKKyMKK0NPTkZJ R19SQVBJRElPX1RTSTU3WD1tCitDT05GSUdfUkFQSURJT19DUFNfWFg9bQorQ09ORklHX1JBUElE SU9fVFNJNTY4PW0KK0NPTkZJR19SQVBJRElPX0NQU19HRU4yPW0KK0NPTkZJR19SQVBJRElPX1JY U19HRU4zPW0KKyMgZW5kIG9mIFJhcGlkSU8gU3dpdGNoIGRyaXZlcnMKKworIworIyBHZW5lcmlj IERyaXZlciBPcHRpb25zCisjCitDT05GSUdfQVVYSUxJQVJZX0JVUz15CitDT05GSUdfVUVWRU5U X0hFTFBFUj15CitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIiCitDT05GSUdfREVWVE1QRlM9 eQorQ09ORklHX0RFVlRNUEZTX01PVU5UPXkKKyMgQ09ORklHX1NUQU5EQUxPTkUgaXMgbm90IHNl dAorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorCisjCisjIEZpcm13YXJlIGxvYWRl cgorIworQ09ORklHX0ZXX0xPQURFUj15CitDT05GSUdfRldfTE9BREVSX1BBR0VEX0JVRj15CitD T05GSUdfRVhUUkFfRklSTVdBUkU9IiIKK0NPTkZJR19GV19MT0FERVJfVVNFUl9IRUxQRVI9eQor IyBDT05GSUdfRldfTE9BREVSX1VTRVJfSEVMUEVSX0ZBTExCQUNLIGlzIG5vdCBzZXQKK0NPTkZJ R19GV19MT0FERVJfQ09NUFJFU1M9eQorQ09ORklHX0ZXX0NBQ0hFPXkKKyMgZW5kIG9mIEZpcm13 YXJlIGxvYWRlcgorCitDT05GSUdfV0FOVF9ERVZfQ09SRURVTVA9eQorQ09ORklHX0FMTE9XX0RF Vl9DT1JFRFVNUD15CitDT05GSUdfREVWX0NPUkVEVU1QPXkKKyMgQ09ORklHX0RFQlVHX0RSSVZF UiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdf REVCVUdfVEVTVF9EUklWRVJfUkVNT1ZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfQVNZTkNf RFJJVkVSX1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdNQVA9eQorQ09ORklHX1JFR01BUF9J MkM9eQorQ09ORklHX1JFR01BUF9TUEk9eQorQ09ORklHX1JFR01BUF9TUE1JPW0KK0NPTkZJR19S RUdNQVBfVzE9bQorQ09ORklHX1JFR01BUF9NTUlPPXkKK0NPTkZJR19SRUdNQVBfSVJRPXkKK0NP TkZJR19SRUdNQVBfSTNDPW0KK0NPTkZJR19SRUdNQVBfU1BJX0FWTU09bQorQ09ORklHX0RNQV9T SEFSRURfQlVGRkVSPXkKKyMgQ09ORklHX0RNQV9GRU5DRV9UUkFDRSBpcyBub3Qgc2V0CitDT05G SUdfR0VORVJJQ19BUkNIX1RPUE9MT0dZPXkKK0NPTkZJR19HRU5FUklDX0FSQ0hfTlVNQT15Cisj IGVuZCBvZiBHZW5lcmljIERyaXZlciBPcHRpb25zCisKKyMKKyMgQnVzIGRldmljZXMKKyMKK0NP TkZJR19NT1hURVQ9bQorQ09ORklHX01ISV9CVVM9bQorIyBDT05GSUdfTUhJX0JVU19ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfTUhJX0JVU19QQ0lfR0VORVJJQz1tCisjIGVuZCBvZiBCdXMgZGV2 aWNlcworCitDT05GSUdfQ09OTkVDVE9SPXkKK0NPTkZJR19QUk9DX0VWRU5UUz15CisKKyMKKyMg RmlybXdhcmUgRHJpdmVycworIworCisjCisjIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgTWFuYWdl bWVudCBJbnRlcmZhY2UgUHJvdG9jb2wKKyMKKyMgZW5kIG9mIEFSTSBTeXN0ZW0gQ29udHJvbCBh bmQgTWFuYWdlbWVudCBJbnRlcmZhY2UgUHJvdG9jb2wKKworQ09ORklHX0ZJUk1XQVJFX01FTU1B UD15CitDT05GSUdfU1lTRkI9eQorIyBDT05GSUdfU1lTRkJfU0lNUExFRkIgaXMgbm90IHNldAor IyBDT05GSUdfR09PR0xFX0ZJUk1XQVJFIGlzIG5vdCBzZXQKKworIworIyBFRkkgKEV4dGVuc2li bGUgRmlybXdhcmUgSW50ZXJmYWNlKSBTdXBwb3J0CisjCitDT05GSUdfRUZJX0VTUlQ9eQorQ09O RklHX0VGSV9WQVJTX1BTVE9SRT1tCisjIENPTkZJR19FRklfVkFSU19QU1RPUkVfREVGQVVMVF9E SVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfUEFSQU1TX0ZST01fRkRUPXkKK0NPTkZJR19F RklfUlVOVElNRV9XUkFQUEVSUz15CitDT05GSUdfRUZJX0dFTkVSSUNfU1RVQj15CitDT05GSUdf RUZJX0JPT1RMT0FERVJfQ09OVFJPTD1tCitDT05GSUdfRUZJX0NBUFNVTEVfTE9BREVSPW0KKyMg Q09ORklHX0VGSV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFU0VUX0FUVEFDS19NSVRJR0FU SU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGSV9ESVNBQkxFX1BDSV9ETUEgaXMgbm90IHNldAor IyBlbmQgb2YgRUZJIChFeHRlbnNpYmxlIEZpcm13YXJlIEludGVyZmFjZSkgU3VwcG9ydAorCitD T05GSUdfRUZJX0VBUkxZQ09OPXkKKworIworIyBUZWdyYSBmaXJtd2FyZSBkcml2ZXIKKyMKKyMg ZW5kIG9mIFRlZ3JhIGZpcm13YXJlIGRyaXZlcgorIyBlbmQgb2YgRmlybXdhcmUgRHJpdmVycwor CitDT05GSUdfR05TUz1tCitDT05GSUdfR05TU19TRVJJQUw9bQorQ09ORklHX0dOU1NfTVRLX1NF UklBTD1tCitDT05GSUdfR05TU19TSVJGX1NFUklBTD1tCitDT05GSUdfR05TU19VQlhfU0VSSUFM PW0KK0NPTkZJR19NVEQ9bQorQ09ORklHX01URF9URVNUUz1tCisKKyMKKyMgUGFydGl0aW9uIHBh cnNlcnMKKyMKK0NPTkZJR19NVERfQVI3X1BBUlRTPW0KK0NPTkZJR19NVERfQ01ETElORV9QQVJU Uz1tCitDT05GSUdfTVREX09GX1BBUlRTPW0KK0NPTkZJR19NVERfUkVEQk9PVF9QQVJUUz1tCitD T05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0xCisjIENPTkZJR19NVERfUkVEQk9P VF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJU U19SRUFET05MWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBQYXJ0aXRpb24gcGFyc2VycworCisjCisj IFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0JMS0RF VlM9bQorQ09ORklHX01URF9CTE9DSz1tCitDT05GSUdfTVREX0JMT0NLX1JPPW0KKworIworIyBO b3RlIHRoYXQgaW4gc29tZSBjYXNlcyBVQkkgYmxvY2sgaXMgcHJlZmVycmVkLiBTZWUgTVREX1VC SV9CTE9DSy4KKyMKK0NPTkZJR19GVEw9bQorQ09ORklHX05GVEw9bQorQ09ORklHX05GVExfUlc9 eQorQ09ORklHX0lORlRMPW0KK0NPTkZJR19SRkRfRlRMPW0KK0NPTkZJR19TU0ZEQz1tCisjIENP TkZJR19TTV9GVEwgaXMgbm90IHNldAorQ09ORklHX01URF9PT1BTPW0KK0NPTkZJR19NVERfU1dB UD1tCitDT05GSUdfTVREX1BBUlRJVElPTkVEX01BU1RFUj15CisKKyMKKyMgUkFNL1JPTS9GbGFz aCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPW0KK0NPTkZJR19NVERfSkVERUNQUk9C RT1tCitDT05GSUdfTVREX0dFTl9QUk9CRT1tCitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15 CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAg aXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09O RklHX01URF9DRklfR0VPTUVUUlk9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NP TkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9 eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84PXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lE VEhfMTY9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMj15CitDT05GSUdfTVREX0NGSV9J MT15CitDT05GSUdfTVREX0NGSV9JMj15CitDT05GSUdfTVREX0NGSV9JND15CitDT05GSUdfTVRE X0NGSV9JOD15CitDT05GSUdfTVREX09UUD15CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD1tCitD T05GSUdfTVREX0NGSV9BTURTVEQ9bQorQ09ORklHX01URF9DRklfU1RBQT1tCitDT05GSUdfTVRE X0NGSV9VVElMPW0KK0NPTkZJR19NVERfUkFNPW0KK0NPTkZJR19NVERfUk9NPW0KK0NPTkZJR19N VERfQUJTRU5UPW0KKyMgZW5kIG9mIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisKKyMKKyMg TWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworQ09ORklHX01URF9DT01QTEVYX01B UFBJTkdTPXkKK0NPTkZJR19NVERfUEhZU01BUD1tCisjIENPTkZJR19NVERfUEhZU01BUF9DT01Q QVQgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQX09GPXkKKyMgQ09ORklHX01URF9QSFlT TUFQX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhZU01BUF9HRU1JTkkgaXMg bm90IHNldAorQ09ORklHX01URF9QSFlTTUFQX0dQSU9fQUREUj15CitDT05GSUdfTVREX1BDST1t CitDT05GSUdfTVREX1BDTUNJQT1tCisjIENPTkZJR19NVERfUENNQ0lBX0FOT05ZTU9VUyBpcyBu b3Qgc2V0CitDT05GSUdfTVREX0lOVEVMX1ZSX05PUj1tCitDT05GSUdfTVREX1BMQVRSQU09bQor IyBlbmQgb2YgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworCisjCisjIFNlbGYtY29u dGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01URF9QTUM1NTE9bQorQ09ORklH X01URF9QTUM1NTFfQlVHRklYPXkKKyMgQ09ORklHX01URF9QTUM1NTFfREVCVUcgaXMgbm90IHNl dAorIyBDT05GSUdfTVREX0RBVEFGTEFTSCBpcyBub3Qgc2V0CitDT05GSUdfTVREX01DSFAyM0sy NTY9bQorQ09ORklHX01URF9NQ0hQNDhMNjQwPW0KKyMgQ09ORklHX01URF9TU1QyNUwgaXMgbm90 IHNldAorQ09ORklHX01URF9TTFJBTT1tCitDT05GSUdfTVREX1BIUkFNPW0KK0NPTkZJR19NVERf TVREUkFNPW0KK0NPTkZJR19NVERSQU1fVE9UQUxfU0laRT00MDk2CitDT05GSUdfTVREUkFNX0VS QVNFX1NJWkU9MTI4CitDT05GSUdfTVREX0JMT0NLMk1URD1tCisKKyMKKyMgRGlzay1Pbi1DaGlw IERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DRzMgaXMgbm90IHNldAorIyBlbmQg b2YgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisKKyMKKyMgTkFORAorIworQ09O RklHX01URF9OQU5EX0NPUkU9bQorQ09ORklHX01URF9PTkVOQU5EPW0KK0NPTkZJR19NVERfT05F TkFORF9WRVJJRllfV1JJVEU9eQorQ09ORklHX01URF9PTkVOQU5EX0dFTkVSSUM9bQorQ09ORklH X01URF9PTkVOQU5EX09UUD15CitDT05GSUdfTVREX09ORU5BTkRfMlhfUFJPR1JBTT15CitDT05G SUdfTVREX1JBV19OQU5EPW0KKworIworIyBSYXcvcGFyYWxsZWwgTkFORCBmbGFzaCBjb250cm9s bGVycworIworQ09ORklHX01URF9OQU5EX0RFTkFMST1tCisjIENPTkZJR19NVERfTkFORF9ERU5B TElfUENJIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9ERU5BTElfRFQ9bQorQ09ORklHX01U RF9OQU5EX0NBRkU9bQorQ09ORklHX01URF9OQU5EX01YSUM9bQorQ09ORklHX01URF9OQU5EX0dQ SU89bQorQ09ORklHX01URF9OQU5EX1BMQVRGT1JNPW0KK0NPTkZJR19NVERfTkFORF9DQURFTkNF PW0KK0NPTkZJR19NVERfTkFORF9BUkFTQU49bQorQ09ORklHX01URF9OQU5EX0lOVEVMX0xHTT1t CisKKyMKKyMgTWlzYworIworQ09ORklHX01URF9TTV9DT01NT049bQorQ09ORklHX01URF9OQU5E X05BTkRTSU09bQorQ09ORklHX01URF9OQU5EX1JJQ09IPW0KK0NPTkZJR19NVERfTkFORF9ESVNL T05DSElQPW0KK0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQX1BST0JFX0FEVkFOQ0VEPXkKK0NP TkZJR19NVERfTkFORF9ESVNLT05DSElQX1BST0JFX0FERFJFU1M9MHgwCitDT05GSUdfTVREX05B TkRfRElTS09OQ0hJUF9QUk9CRV9ISUdIPXkKK0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQX0JC VFdSSVRFPXkKK0NPTkZJR19NVERfU1BJX05BTkQ9bQorCisjCisjIEVDQyBlbmdpbmUgc3VwcG9y dAorIworQ09ORklHX01URF9OQU5EX0VDQz15CitDT05GSUdfTVREX05BTkRfRUNDX1NXX0hBTU1J Tkc9eQorIyBDT05GSUdfTVREX05BTkRfRUNDX1NXX0hBTU1JTkdfU01DIGlzIG5vdCBzZXQKK0NP TkZJR19NVERfTkFORF9FQ0NfU1dfQkNIPXkKKyMgZW5kIG9mIEVDQyBlbmdpbmUgc3VwcG9ydAor IyBlbmQgb2YgTkFORAorCisjCisjIExQRERSICYgTFBERFIyIFBDTSBtZW1vcnkgZHJpdmVycwor IworQ09ORklHX01URF9MUEREUj1tCitDT05GSUdfTVREX1FJTkZPX1BST0JFPW0KKyMgZW5kIG9m IExQRERSICYgTFBERFIyIFBDTSBtZW1vcnkgZHJpdmVycworCitDT05GSUdfTVREX1NQSV9OT1I9 bQorQ09ORklHX01URF9TUElfTk9SX1VTRV80S19TRUNUT1JTPXkKKyMgQ09ORklHX01URF9TUElf Tk9SX1NXUF9ESVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfU1BJX05PUl9TV1BfRElTQUJM RV9PTl9WT0xBVElMRT15CisjIENPTkZJR19NVERfU1BJX05PUl9TV1BfS0VFUCBpcyBub3Qgc2V0 CitDT05GSUdfTVREX1VCST1tCitDT05GSUdfTVREX1VCSV9XTF9USFJFU0hPTEQ9NDA5NgorQ09O RklHX01URF9VQklfQkVCX0xJTUlUPTIwCisjIENPTkZJR19NVERfVUJJX0ZBU1RNQVAgaXMgbm90 IHNldAorQ09ORklHX01URF9VQklfR0xVRUJJPW0KK0NPTkZJR19NVERfVUJJX0JMT0NLPXkKK0NP TkZJR19NVERfSFlQRVJCVVM9bQorQ09ORklHX0RUQz15CitDT05GSUdfT0Y9eQorIyBDT05GSUdf T0ZfVU5JVFRFU1QgaXMgbm90IHNldAorQ09ORklHX09GX0ZMQVRUUkVFPXkKK0NPTkZJR19PRl9F QVJMWV9GTEFUVFJFRT15CitDT05GSUdfT0ZfS09CSj15CitDT05GSUdfT0ZfRFlOQU1JQz15CitD T05GSUdfT0ZfQUREUkVTUz15CitDT05GSUdfT0ZfSVJRPXkKK0NPTkZJR19PRl9ORVQ9eQorQ09O RklHX09GX1JFU0VSVkVEX01FTT15CitDT05GSUdfT0ZfUkVTT0xWRT15CitDT05GSUdfT0ZfT1ZF UkxBWT15CitDT05GSUdfT0ZfTlVNQT15CitDT05GSUdfT0ZfQ09ORklHRlM9eQorQ09ORklHX1BB UlBPUlQ9bQorQ09ORklHX1BBUlBPUlRfQVg4ODc5Nj1tCitDT05GSUdfUEFSUE9SVF8xMjg0PXkK K0NPTkZJR19QQVJQT1JUX05PVF9QQz15CitDT05GSUdfQkxLX0RFVj15CitDT05GSUdfQkxLX0RF Vl9OVUxMX0JMSz1tCitDT05GSUdfQ0RST009bQorQ09ORklHX0JMS19ERVZfUENJRVNTRF9NVElQ MzJYWD1tCitDT05GSUdfWlJBTT1tCitDT05GSUdfWlJBTV9ERUZfQ09NUF9MWk9STEU9eQorIyBD T05GSUdfWlJBTV9ERUZfQ09NUF9aU1REIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pSQU1fREVGX0NP TVBfTFo0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1pSQU1fREVGX0NPTVBfTFpPIGlzIG5vdCBzZXQK KyMgQ09ORklHX1pSQU1fREVGX0NPTVBfTFo0SEMgaXMgbm90IHNldAorIyBDT05GSUdfWlJBTV9E RUZfQ09NUF84NDIgaXMgbm90IHNldAorQ09ORklHX1pSQU1fREVGX0NPTVA9Imx6by1ybGUiCitD T05GSUdfWlJBTV9XUklURUJBQ0s9eQorIyBDT05GSUdfWlJBTV9NRU1PUllfVFJBQ0tJTkcgaXMg bm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD1tCitDT05GSUdfQkxLX0RFVl9MT09QX01JTl9D T1VOVD04CitDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QPW0KK0NPTkZJR19CTEtfREVWX0RSQkQ9 bQorIyBDT05GSUdfRFJCRF9GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorQ09ORklHX0JMS19E RVZfTkJEPW0KK0NPTkZJR19CTEtfREVWX1NYOD1tCitDT05GSUdfQkxLX0RFVl9SQU09bQorQ09O RklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CitDT05GSUdfQkxLX0RFVl9SQU1fU0laRT0xMzEwNzIK K0NPTkZJR19DRFJPTV9QS1RDRFZEPW0KK0NPTkZJR19DRFJPTV9QS1RDRFZEX0JVRkZFUlM9OAor Q09ORklHX0NEUk9NX1BLVENEVkRfV0NBQ0hFPXkKK0NPTkZJR19BVEFfT1ZFUl9FVEg9bQorQ09O RklHX1ZJUlRJT19CTEs9bQorQ09ORklHX0JMS19ERVZfUkJEPW0KK0NPTkZJR19CTEtfREVWX1JT WFg9bQorQ09ORklHX0JMS19ERVZfUk5CRD15CitDT05GSUdfQkxLX0RFVl9STkJEX0NMSUVOVD1t CitDT05GSUdfQkxLX0RFVl9STkJEX1NFUlZFUj1tCisKKyMKKyMgTlZNRSBTdXBwb3J0CisjCitD T05GSUdfTlZNRV9DT1JFPW0KK0NPTkZJR19CTEtfREVWX05WTUU9bQorQ09ORklHX05WTUVfTVVM VElQQVRIPXkKK0NPTkZJR19OVk1FX0hXTU9OPXkKK0NPTkZJR19OVk1FX0ZBQlJJQ1M9bQorQ09O RklHX05WTUVfUkRNQT1tCitDT05GSUdfTlZNRV9GQz1tCitDT05GSUdfTlZNRV9UQ1A9bQorQ09O RklHX05WTUVfVEFSR0VUPW0KK0NPTkZJR19OVk1FX1RBUkdFVF9QQVNTVEhSVT15CitDT05GSUdf TlZNRV9UQVJHRVRfTE9PUD1tCitDT05GSUdfTlZNRV9UQVJHRVRfUkRNQT1tCitDT05GSUdfTlZN RV9UQVJHRVRfRkM9bQorQ09ORklHX05WTUVfVEFSR0VUX0ZDTE9PUD1tCitDT05GSUdfTlZNRV9U QVJHRVRfVENQPW0KKyMgZW5kIG9mIE5WTUUgU3VwcG9ydAorCisjCisjIE1pc2MgZGV2aWNlcwor IworQ09ORklHX1NFTlNPUlNfTElTM0xWMDJEPW0KK0NPTkZJR19BRDUyNVhfRFBPVD1tCitDT05G SUdfQUQ1MjVYX0RQT1RfSTJDPW0KKyMgQ09ORklHX0FENTI1WF9EUE9UX1NQSSBpcyBub3Qgc2V0 CitDT05GSUdfRFVNTVlfSVJRPW0KK0NPTkZJR19QSEFOVE9NPW0KK0NPTkZJR19USUZNX0NPUkU9 bQorQ09ORklHX1RJRk1fN1hYMT1tCitDT05GSUdfSUNTOTMyUzQwMT1tCitDT05GSUdfRU5DTE9T VVJFX1NFUlZJQ0VTPW0KK0NPTkZJR19ISTY0MjFWNjAwX0lSUT1tCitDT05GSUdfSFBfSUxPPW0K KyMgQ09ORklHX0FQRFM5ODAyQUxTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTTDI5MDAzIGlzIG5v dCBzZXQKK0NPTkZJR19JU0wyOTAyMD1tCitDT05GSUdfU0VOU09SU19UU0wyNTUwPW0KK0NPTkZJ R19TRU5TT1JTX0JIMTc3MD1tCitDT05GSUdfU0VOU09SU19BUERTOTkwWD1tCitDT05GSUdfSE1D NjM1Mj1tCitDT05GSUdfRFMxNjgyPW0KKyMgQ09ORklHX0xBVFRJQ0VfRUNQM19DT05GSUcgaXMg bm90IHNldAorQ09ORklHX1NSQU09eQorQ09ORklHX0RXX1hEQVRBX1BDSUU9bQorQ09ORklHX1BD SV9FTkRQT0lOVF9URVNUPW0KK0NPTkZJR19YSUxJTlhfU0RGRUM9bQorQ09ORklHX01JU0NfUlRT WD1tCitDT05GSUdfSElTSV9ISUtFWV9VU0I9bQorQ09ORklHX0MyUE9SVD1tCisKKyMKKyMgRUVQ Uk9NIHN1cHBvcnQKKyMKK0NPTkZJR19FRVBST01fQVQyND1tCisjIENPTkZJR19FRVBST01fQVQy NSBpcyBub3Qgc2V0CitDT05GSUdfRUVQUk9NX0xFR0FDWT1tCitDT05GSUdfRUVQUk9NX01BWDY4 NzU9bQorQ09ORklHX0VFUFJPTV85M0NYNj1tCisjIENPTkZJR19FRVBST01fOTNYWDQ2IGlzIG5v dCBzZXQKK0NPTkZJR19FRVBST01fSURUXzg5SFBFU1g9bQorQ09ORklHX0VFUFJPTV9FRTEwMDQ9 bQorIyBlbmQgb2YgRUVQUk9NIHN1cHBvcnQKKworQ09ORklHX0NCNzEwX0NPUkU9bQorIyBDT05G SUdfQ0I3MTBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NCNzEwX0RFQlVHX0FTU1VNUFRJT05T PXkKKworIworIyBUZXhhcyBJbnN0cnVtZW50cyBzaGFyZWQgdHJhbnNwb3J0IGxpbmUgZGlzY2lw bGluZQorIworQ09ORklHX1RJX1NUPW0KKyMgZW5kIG9mIFRleGFzIEluc3RydW1lbnRzIHNoYXJl ZCB0cmFuc3BvcnQgbGluZSBkaXNjaXBsaW5lCisKK0NPTkZJR19TRU5TT1JTX0xJUzNfU1BJPW0K K0NPTkZJR19TRU5TT1JTX0xJUzNfSTJDPW0KK0NPTkZJR19BTFRFUkFfU1RBUEw9bQorQ09ORklH X0dFTldRRT1tCitDT05GSUdfR0VOV1FFX1BMQVRGT1JNX0VSUk9SX1JFQ09WRVJZPTAKK0NPTkZJ R19FQ0hPPW0KK0NPTkZJR19CQ01fVks9bQorIyBDT05GSUdfQkNNX1ZLX1RUWSBpcyBub3Qgc2V0 CitDT05GSUdfTUlTQ19BTENPUl9QQ0k9bQorQ09ORklHX01JU0NfUlRTWF9QQ0k9bQorQ09ORklH X01JU0NfUlRTWF9VU0I9bQorQ09ORklHX0hBQkFOQV9BST1tCitDT05GSUdfVUFDQ0U9bQorQ09O RklHX1BWUEFOSUM9eQorQ09ORklHX1BWUEFOSUNfTU1JTz1tCitDT05GSUdfUFZQQU5JQ19QQ0k9 bQorIyBlbmQgb2YgTWlzYyBkZXZpY2VzCisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIwor Q09ORklHX1NDU0lfTU9EPXkKK0NPTkZJR19SQUlEX0FUVFJTPW0KK0NPTkZJR19TQ1NJX0NPTU1P Tj15CitDT05GSUdfU0NTST15CitDT05GSUdfU0NTSV9ETUE9eQorQ09ORklHX1NDU0lfTkVUTElO Sz15CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlz aywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorQ09ORklHX0NIUl9ERVZf U1Q9bQorQ09ORklHX0JMS19ERVZfU1I9bQorQ09ORklHX0NIUl9ERVZfU0c9bQorQ09ORklHX0JM S19ERVZfQlNHPXkKK0NPTkZJR19DSFJfREVWX1NDSD1tCitDT05GSUdfU0NTSV9FTkNMT1NVUkU9 bQorQ09ORklHX1NDU0lfQ09OU1RBTlRTPXkKK0NPTkZJR19TQ1NJX0xPR0dJTkc9eQorQ09ORklH X1NDU0lfU0NBTl9BU1lOQz15CisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCitDT05GSUdfU0NT SV9TUElfQVRUUlM9bQorQ09ORklHX1NDU0lfRkNfQVRUUlM9bQorQ09ORklHX1NDU0lfSVNDU0lf QVRUUlM9bQorQ09ORklHX1NDU0lfU0FTX0FUVFJTPW0KK0NPTkZJR19TQ1NJX1NBU19MSUJTQVM9 bQorQ09ORklHX1NDU0lfU0FTX0FUQT15CitDT05GSUdfU0NTSV9TQVNfSE9TVF9TTVA9eQorQ09O RklHX1NDU0lfU1JQX0FUVFJTPW0KKyMgZW5kIG9mIFNDU0kgVHJhbnNwb3J0cworCitDT05GSUdf U0NTSV9MT1dMRVZFTD15CitDT05GSUdfSVNDU0lfVENQPW0KK0NPTkZJR19JU0NTSV9CT09UX1NZ U0ZTPW0KK0NPTkZJR19TQ1NJX0NYR0IzX0lTQ1NJPW0KK0NPTkZJR19TQ1NJX0NYR0I0X0lTQ1NJ PW0KK0NPTkZJR19TQ1NJX0JOWDJfSVNDU0k9bQorQ09ORklHX1NDU0lfQk5YMlhfRkNPRT1tCitD T05GSUdfQkUySVNDU0k9bQorQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEPW0KK0NPTkZJR19T Q1NJX0hQU0E9bQorQ09ORklHX1NDU0lfM1dfOVhYWD1tCitDT05GSUdfU0NTSV8zV19TQVM9bQor Q09ORklHX1NDU0lfQUNBUkQ9bQorQ09ORklHX1NDU0lfQUFDUkFJRD1tCitDT05GSUdfU0NTSV9B SUM3WFhYPW0KK0NPTkZJR19BSUM3WFhYX0NNRFNfUEVSX0RFVklDRT0zMgorQ09ORklHX0FJQzdY WFhfUkVTRVRfREVMQVlfTVM9MTUwMDAKKyMgQ09ORklHX0FJQzdYWFhfREVCVUdfRU5BQkxFIGlz IG5vdCBzZXQKK0NPTkZJR19BSUM3WFhYX0RFQlVHX01BU0s9MAorQ09ORklHX0FJQzdYWFhfUkVH X1BSRVRUWV9QUklOVD15CitDT05GSUdfU0NTSV9BSUM3OVhYPW0KK0NPTkZJR19BSUM3OVhYX0NN RFNfUEVSX0RFVklDRT0zMgorQ09ORklHX0FJQzc5WFhfUkVTRVRfREVMQVlfTVM9NTAwMAorIyBD T05GSUdfQUlDNzlYWF9ERUJVR19FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX0FJQzc5WFhfREVC VUdfTUFTSz0wCitDT05GSUdfQUlDNzlYWF9SRUdfUFJFVFRZX1BSSU5UPXkKK0NPTkZJR19TQ1NJ X0FJQzk0WFg9bQorIyBDT05GSUdfQUlDOTRYWF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU0NT SV9NVlNBUz1tCisjIENPTkZJR19TQ1NJX01WU0FTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19T Q1NJX01WU0FTX1RBU0tMRVQ9eQorQ09ORklHX1NDU0lfTVZVTUk9bQorQ09ORklHX1NDU0lfQURW QU5TWVM9bQorQ09ORklHX1NDU0lfQVJDTVNSPW0KK0NPTkZJR19TQ1NJX0VTQVMyUj1tCitDT05G SUdfTUVHQVJBSURfTkVXR0VOPXkKK0NPTkZJR19NRUdBUkFJRF9NTT1tCitDT05GSUdfTUVHQVJB SURfTUFJTEJPWD1tCitDT05GSUdfTUVHQVJBSURfTEVHQUNZPW0KK0NPTkZJR19NRUdBUkFJRF9T QVM9bQorQ09ORklHX1NDU0lfTVBUM1NBUz1tCitDT05GSUdfU0NTSV9NUFQyU0FTX01BWF9TR0U9 MTI4CitDT05GSUdfU0NTSV9NUFQzU0FTX01BWF9TR0U9MTI4CitDT05GSUdfU0NTSV9NUFQyU0FT PW0KK0NPTkZJR19TQ1NJX01QSTNNUj1tCitDT05GSUdfU0NTSV9TTUFSVFBRST1tCitDT05GSUdf U0NTSV9VRlNIQ0Q9bQorQ09ORklHX1NDU0lfVUZTSENEX1BDST1tCisjIENPTkZJR19TQ1NJX1VG U19EV0NfVENfUENJIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1VGU0hDRF9QTEFURk9STT1tCitD T05GSUdfU0NTSV9VRlNfQ0ROU19QTEFURk9STT1tCisjIENPTkZJR19TQ1NJX1VGU19EV0NfVENf UExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX1NDU0lfVUZTX0JTRz15CitDT05GSUdfU0NTSV9V RlNfQ1JZUFRPPXkKK0NPTkZJR19TQ1NJX1VGU19IUEI9eQorQ09ORklHX1NDU0lfSFBUSU9QPW0K K0NPTkZJR19TQ1NJX01ZUkI9bQorQ09ORklHX1NDU0lfTVlSUz1tCitDT05GSUdfTElCRkM9bQor Q09ORklHX0xJQkZDT0U9bQorQ09ORklHX0ZDT0U9bQorQ09ORklHX1NDU0lfU05JQz1tCisjIENP TkZJR19TQ1NJX1NOSUNfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfRE1YMzE5MUQ9 bQorQ09ORklHX1NDU0lfRkRPTUFJTj1tCitDT05GSUdfU0NTSV9GRE9NQUlOX1BDST1tCitDT05G SUdfU0NTSV9JUFM9bQorQ09ORklHX1NDU0lfSU5JVElPPW0KK0NPTkZJR19TQ1NJX0lOSUExMDA9 bQorQ09ORklHX1NDU0lfU1RFWD1tCitDT05GSUdfU0NTSV9TWU01M0M4WFhfMj1tCitDT05GSUdf U0NTSV9TWU01M0M4WFhfRE1BX0FERFJFU1NJTkdfTU9ERT0xCitDT05GSUdfU0NTSV9TWU01M0M4 WFhfREVGQVVMVF9UQUdTPTE2CitDT05GSUdfU0NTSV9TWU01M0M4WFhfTUFYX1RBR1M9NjQKK0NP TkZJR19TQ1NJX1NZTTUzQzhYWF9NTUlPPXkKK0NPTkZJR19TQ1NJX0lQUj1tCitDT05GSUdfU0NT SV9JUFJfVFJBQ0U9eQorQ09ORklHX1NDU0lfSVBSX0RVTVA9eQorQ09ORklHX1NDU0lfUUxPR0lD XzEyODA9bQorQ09ORklHX1NDU0lfUUxBX0ZDPW0KK0NPTkZJR19UQ01fUUxBMlhYWD1tCisjIENP TkZJR19UQ01fUUxBMlhYWF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9RTEFfSVNDU0k9 bQorQ09ORklHX1FFREk9bQorQ09ORklHX1FFREY9bQorQ09ORklHX1NDU0lfTFBGQz1tCisjIENP TkZJR19TQ1NJX0xQRkNfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfRUZDVD1tCitD T05GSUdfU0NTSV9EQzM5NXg9bQorQ09ORklHX1NDU0lfQU01M0M5NzQ9bQorQ09ORklHX1NDU0lf V0Q3MTlYPW0KK0NPTkZJR19TQ1NJX0RFQlVHPW0KK0NPTkZJR19TQ1NJX1BNQ1JBSUQ9bQorQ09O RklHX1NDU0lfUE04MDAxPW0KK0NPTkZJR19TQ1NJX0JGQV9GQz1tCitDT05GSUdfU0NTSV9WSVJU SU89bQorQ09ORklHX1NDU0lfQ0hFTFNJT19GQ09FPW0KK0NPTkZJR19TQ1NJX0xPV0xFVkVMX1BD TUNJQT15CitDT05GSUdfUENNQ0lBX0FIQTE1Mlg9bQorQ09ORklHX1BDTUNJQV9GRE9NQUlOPW0K K0NPTkZJR19QQ01DSUFfUUxPR0lDPW0KK0NPTkZJR19QQ01DSUFfU1lNNTNDNTAwPW0KK0NPTkZJ R19TQ1NJX0RIPXkKK0NPTkZJR19TQ1NJX0RIX1JEQUM9bQorQ09ORklHX1NDU0lfREhfSFBfU1c9 bQorQ09ORklHX1NDU0lfREhfRU1DPW0KK0NPTkZJR19TQ1NJX0RIX0FMVUE9bQorIyBlbmQgb2Yg U0NTSSBkZXZpY2Ugc3VwcG9ydAorCitDT05GSUdfQVRBPXkKK0NPTkZJR19TQVRBX0hPU1Q9eQor Q09ORklHX1BBVEFfVElNSU5HUz15CitDT05GSUdfQVRBX1ZFUkJPU0VfRVJST1I9eQorQ09ORklH X0FUQV9GT1JDRT15CitDT05GSUdfU0FUQV9QTVA9eQorCisjCisjIENvbnRyb2xsZXJzIHdpdGgg bm9uLVNGRiBuYXRpdmUgaW50ZXJmYWNlCisjCitDT05GSUdfU0FUQV9BSENJPXkKK0NPTkZJR19T QVRBX01PQklMRV9MUE1fUE9MSUNZPTAKK0NPTkZJR19TQVRBX0FIQ0lfUExBVEZPUk09bQorQ09O RklHX0FIQ0lfQ0VWQT1tCitDT05GSUdfQUhDSV9RT1JJUT1tCitDT05GSUdfU0FUQV9JTklDMTYy WD1tCitDT05GSUdfU0FUQV9BQ0FSRF9BSENJPW0KK0NPTkZJR19TQVRBX1NJTDI0PW0KK0NPTkZJ R19BVEFfU0ZGPXkKKworIworIyBTRkYgY29udHJvbGxlcnMgd2l0aCBjdXN0b20gRE1BIGludGVy ZmFjZQorIworQ09ORklHX1BEQ19BRE1BPW0KK0NPTkZJR19TQVRBX1FTVE9SPW0KK0NPTkZJR19T QVRBX1NYND1tCitDT05GSUdfQVRBX0JNRE1BPXkKKworIworIyBTQVRBIFNGRiBjb250cm9sbGVy cyB3aXRoIEJNRE1BCisjCitDT05GSUdfQVRBX1BJSVg9bQorQ09ORklHX1NBVEFfRFdDPW0KK0NP TkZJR19TQVRBX0RXQ19PTERfRE1BPXkKKyMgQ09ORklHX1NBVEFfRFdDX0RFQlVHIGlzIG5vdCBz ZXQKK0NPTkZJR19TQVRBX01WPW0KK0NPTkZJR19TQVRBX05WPW0KK0NPTkZJR19TQVRBX1BST01J U0U9bQorQ09ORklHX1NBVEFfU0lMPW0KK0NPTkZJR19TQVRBX1NJUz1tCitDT05GSUdfU0FUQV9T Vlc9bQorQ09ORklHX1NBVEFfVUxJPW0KK0NPTkZJR19TQVRBX1ZJQT1tCitDT05GSUdfU0FUQV9W SVRFU1NFPW0KKworIworIyBQQVRBIFNGRiBjb250cm9sbGVycyB3aXRoIEJNRE1BCisjCitDT05G SUdfUEFUQV9BTEk9bQorQ09ORklHX1BBVEFfQU1EPW0KK0NPTkZJR19QQVRBX0FSVE9QPW0KK0NP TkZJR19QQVRBX0FUSUlYUD1tCitDT05GSUdfUEFUQV9BVFA4NjdYPW0KK0NPTkZJR19QQVRBX0NN RDY0WD1tCitDT05GSUdfUEFUQV9DWVBSRVNTPW0KK0NPTkZJR19QQVRBX0VGQVI9bQorQ09ORklH X1BBVEFfSFBUMzY2PW0KK0NPTkZJR19QQVRBX0hQVDM3WD1tCitDT05GSUdfUEFUQV9IUFQzWDJO PW0KK0NPTkZJR19QQVRBX0hQVDNYMz1tCisjIENPTkZJR19QQVRBX0hQVDNYM19ETUEgaXMgbm90 IHNldAorQ09ORklHX1BBVEFfSVQ4MjEzPW0KK0NPTkZJR19QQVRBX0lUODIxWD1tCitDT05GSUdf UEFUQV9KTUlDUk9OPW0KK0NPTkZJR19QQVRBX01BUlZFTEw9bQorQ09ORklHX1BBVEFfTkVUQ0VM TD1tCitDT05GSUdfUEFUQV9OSU5KQTMyPW0KK0NPTkZJR19QQVRBX05TODc0MTU9bQorQ09ORklH X1BBVEFfT0xEUElJWD1tCitDT05GSUdfUEFUQV9PUFRJRE1BPW0KK0NPTkZJR19QQVRBX1BEQzIw MjdYPW0KK0NPTkZJR19QQVRBX1BEQ19PTEQ9bQorQ09ORklHX1BBVEFfUkFESVNZUz1tCitDT05G SUdfUEFUQV9SREM9bQorQ09ORklHX1BBVEFfU0NIPW0KK0NPTkZJR19QQVRBX1NFUlZFUldPUktT PW0KK0NPTkZJR19QQVRBX1NJTDY4MD1tCitDT05GSUdfUEFUQV9TSVM9bQorQ09ORklHX1BBVEFf VE9TSElCQT1tCitDT05GSUdfUEFUQV9UUklGTEVYPW0KK0NPTkZJR19QQVRBX1ZJQT1tCitDT05G SUdfUEFUQV9XSU5CT05EPW0KKworIworIyBQSU8tb25seSBTRkYgY29udHJvbGxlcnMKKyMKK0NP TkZJR19QQVRBX0NNRDY0MF9QQ0k9bQorQ09ORklHX1BBVEFfTVBJSVg9bQorQ09ORklHX1BBVEFf TlM4NzQxMD1tCitDT05GSUdfUEFUQV9PUFRJPW0KK0NPTkZJR19QQVRBX1BDTUNJQT1tCitDT05G SUdfUEFUQV9QTEFURk9STT1tCisjIENPTkZJR19QQVRBX09GX1BMQVRGT1JNIGlzIG5vdCBzZXQK K0NPTkZJR19QQVRBX1JaMTAwMD1tCisKKyMKKyMgR2VuZXJpYyBmYWxsYmFjayAvIGxlZ2FjeSBk cml2ZXJzCisjCitDT05GSUdfQVRBX0dFTkVSSUM9bQorIyBDT05GSUdfUEFUQV9MRUdBQ1kgaXMg bm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX1RBUkdFVF9DT1JFPW0KK0NP TkZJR19UQ01fSUJMT0NLPW0KK0NPTkZJR19UQ01fRklMRUlPPW0KK0NPTkZJR19UQ01fUFNDU0k9 bQorQ09ORklHX1RDTV9VU0VSMj1tCitDT05GSUdfTE9PUEJBQ0tfVEFSR0VUPW0KK0NPTkZJR19U Q01fRkM9bQorQ09ORklHX0lTQ1NJX1RBUkdFVD1tCitDT05GSUdfSVNDU0lfVEFSR0VUX0NYR0I0 PW0KK0NPTkZJR19TQlBfVEFSR0VUPW0KK0NPTkZJR19GVVNJT049eQorQ09ORklHX0ZVU0lPTl9T UEk9bQorQ09ORklHX0ZVU0lPTl9GQz1tCitDT05GSUdfRlVTSU9OX1NBUz1tCitDT05GSUdfRlVT SU9OX01BWF9TR0U9MTI4CitDT05GSUdfRlVTSU9OX0NUTD1tCitDT05GSUdfRlVTSU9OX0xBTj1t CisjIENPTkZJR19GVVNJT05fTE9HR0lORyBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChG aXJlV2lyZSkgc3VwcG9ydAorIworQ09ORklHX0ZJUkVXSVJFPW0KK0NPTkZJR19GSVJFV0lSRV9P SENJPW0KK0NPTkZJR19GSVJFV0lSRV9TQlAyPW0KK0NPTkZJR19GSVJFV0lSRV9ORVQ9bQorQ09O RklHX0ZJUkVXSVJFX05PU1k9bQorIyBlbmQgb2YgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9y dAorCitDT05GSUdfTkVUREVWSUNFUz15CitDT05GSUdfTUlJPW0KK0NPTkZJR19ORVRfQ09SRT15 CitDT05GSUdfQk9ORElORz1tCitDT05GSUdfRFVNTVk9bQorQ09ORklHX1dJUkVHVUFSRD1tCisj IENPTkZJR19XSVJFR1VBUkRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VRVUFMSVpFUj1tCitD T05GSUdfTkVUX0ZDPXkKK0NPTkZJR19JRkI9bQorQ09ORklHX05FVF9URUFNPW0KK0NPTkZJR19O RVRfVEVBTV9NT0RFX0JST0FEQ0FTVD1tCitDT05GSUdfTkVUX1RFQU1fTU9ERV9ST1VORFJPQklO PW0KK0NPTkZJR19ORVRfVEVBTV9NT0RFX1JBTkRPTT1tCitDT05GSUdfTkVUX1RFQU1fTU9ERV9B Q1RJVkVCQUNLVVA9bQorQ09ORklHX05FVF9URUFNX01PREVfTE9BREJBTEFOQ0U9bQorQ09ORklH X01BQ1ZMQU49bQorQ09ORklHX01BQ1ZUQVA9bQorQ09ORklHX0lQVkxBTl9MM1M9eQorQ09ORklH X0lQVkxBTj1tCitDT05GSUdfSVBWVEFQPW0KK0NPTkZJR19WWExBTj1tCitDT05GSUdfR0VORVZF PW0KK0NPTkZJR19CQVJFVURQPW0KK0NPTkZJR19HVFA9bQorQ09ORklHX01BQ1NFQz1tCitDT05G SUdfTkVUQ09OU09MRT1tCitDT05GSUdfTkVUQ09OU09MRV9EWU5BTUlDPXkKK0NPTkZJR19ORVRQ T0xMPXkKK0NPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSPXkKK0NPTkZJR19OVEJfTkVUREVWPW0K K0NPTkZJR19SSU9ORVQ9bQorQ09ORklHX1JJT05FVF9UWF9TSVpFPTEyOAorQ09ORklHX1JJT05F VF9SWF9TSVpFPTEyOAorQ09ORklHX1RVTj1tCitDT05GSUdfVEFQPW0KKyMgQ09ORklHX1RVTl9W TkVUX0NST1NTX0xFIGlzIG5vdCBzZXQKK0NPTkZJR19WRVRIPW0KK0NPTkZJR19WSVJUSU9fTkVU PW0KK0NPTkZJR19OTE1PTj1tCitDT05GSUdfTkVUX1ZSRj1tCitDT05GSUdfVlNPQ0tNT049bQor Q09ORklHX01ISV9ORVQ9bQorQ09ORklHX1NVTkdFTV9QSFk9bQorIyBDT05GSUdfQVJDTkVUIGlz IG5vdCBzZXQKK0NPTkZJR19BVE1fRFJJVkVSUz15CitDT05GSUdfQVRNX0RVTU1ZPW0KK0NPTkZJ R19BVE1fVENQPW0KK0NPTkZJR19BVE1fTEFOQUk9bQorQ09ORklHX0FUTV9FTkk9bQorIyBDT05G SUdfQVRNX0VOSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQVRNX0VOSV9UVU5FX0JVUlNUPXkK K0NPTkZJR19BVE1fRU5JX0JVUlNUX1RYXzE2Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9UWF84 Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9UWF80Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9U WF8yVz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF8xNlc9eQorQ09ORklHX0FUTV9FTklfQlVS U1RfUlhfOFc9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfUlhfNFc9eQorQ09ORklHX0FUTV9FTklf QlVSU1RfUlhfMlc9eQorQ09ORklHX0FUTV9OSUNTVEFSPW0KK0NPTkZJR19BVE1fTklDU1RBUl9V U0VfU1VOST15CitDT05GSUdfQVRNX05JQ1NUQVJfVVNFX0lEVDc3MTA1PXkKK0NPTkZJR19BVE1f SURUNzcyNTI9bQorIyBDT05GSUdfQVRNX0lEVDc3MjUyX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09O RklHX0FUTV9JRFQ3NzI1Ml9SQ1ZfQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19BVE1fSURUNzcyNTJf VVNFX1NVTkk9eQorQ09ORklHX0FUTV9JQT1tCisjIENPTkZJR19BVE1fSUFfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX0FUTV9GT1JFMjAwRT1tCitDT05GSUdfQVRNX0ZPUkUyMDBFX1VTRV9UQVNL TEVUPXkKK0NPTkZJR19BVE1fRk9SRTIwMEVfVFhfUkVUUlk9MTYKK0NPTkZJR19BVE1fRk9SRTIw MEVfREVCVUc9MAorQ09ORklHX0FUTV9IRT1tCitDT05GSUdfQVRNX0hFX1VTRV9TVU5JPXkKK0NP TkZJR19BVE1fU09MT1M9bQorIyBDT05GSUdfQ0FJRl9EUklWRVJTIGlzIG5vdCBzZXQKKworIwor IyBEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlIGRyaXZlcnMKKyMKK0NPTkZJR19CNTM9 bQorQ09ORklHX0I1M19TUElfRFJJVkVSPW0KK0NPTkZJR19CNTNfTURJT19EUklWRVI9bQorQ09O RklHX0I1M19NTUFQX0RSSVZFUj1tCitDT05GSUdfQjUzX1NSQUJfRFJJVkVSPW0KK0NPTkZJR19C NTNfU0VSREVTPW0KK0NPTkZJR19ORVRfRFNBX0JDTV9TRjI9bQorQ09ORklHX05FVF9EU0FfTE9P UD1tCitDT05GSUdfTkVUX0RTQV9ISVJTQ0hNQU5OX0hFTExDUkVFSz1tCitDT05GSUdfTkVUX0RT QV9MQU5USVFfR1NXSVA9bQorQ09ORklHX05FVF9EU0FfTVQ3NTMwPW0KK0NPTkZJR19ORVRfRFNB X01WODhFNjA2MD1tCitDT05GSUdfTkVUX0RTQV9NSUNST0NISVBfS1NaX0NPTU1PTj1tCitDT05G SUdfTkVUX0RTQV9NSUNST0NISVBfS1NaOTQ3Nz1tCitDT05GSUdfTkVUX0RTQV9NSUNST0NISVBf S1NaOTQ3N19JMkM9bQorQ09ORklHX05FVF9EU0FfTUlDUk9DSElQX0tTWjk0NzdfU1BJPW0KK0NP TkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9LU1o4Nzk1PW0KK0NPTkZJR19ORVRfRFNBX01JQ1JPQ0hJ UF9LU1o4Nzk1X1NQST1tCitDT05GSUdfTkVUX0RTQV9NSUNST0NISVBfS1NaODg2M19TTUk9bQor Q09ORklHX05FVF9EU0FfTVY4OEU2WFhYPW0KK0NPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFA9 eQorQ09ORklHX05FVF9EU0FfTVNDQ19TRVZJTExFPW0KKyMgQ09ORklHX05FVF9EU0FfQVI5MzMx IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRFNBX1NKQTExMDU9bQorQ09ORklHX05FVF9EU0FfU0pB MTEwNV9QVFA9eQorQ09ORklHX05FVF9EU0FfU0pBMTEwNV9UQVM9eQorQ09ORklHX05FVF9EU0Ff U0pBMTEwNV9WTD15CitDT05GSUdfTkVUX0RTQV9YUlM3MDBYPW0KK0NPTkZJR19ORVRfRFNBX1hS UzcwMFhfSTJDPW0KK0NPTkZJR19ORVRfRFNBX1hSUzcwMFhfTURJTz1tCitDT05GSUdfTkVUX0RT QV9RQ0E4Sz1tCitDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1NNST1tCitDT05GSUdfTkVUX0RTQV9T TVNDX0xBTjkzMDM9bQorQ09ORklHX05FVF9EU0FfU01TQ19MQU45MzAzX0kyQz1tCitDT05GSUdf TkVUX0RTQV9TTVNDX0xBTjkzMDNfTURJTz1tCitDT05GSUdfTkVUX0RTQV9WSVRFU1NFX1ZTQzcz WFg9bQorQ09ORklHX05FVF9EU0FfVklURVNTRV9WU0M3M1hYX1NQST1tCitDT05GSUdfTkVUX0RT QV9WSVRFU1NFX1ZTQzczWFhfUExBVEZPUk09bQorIyBlbmQgb2YgRGlzdHJpYnV0ZWQgU3dpdGNo IEFyY2hpdGVjdHVyZSBkcml2ZXJzCisKK0NPTkZJR19FVEhFUk5FVD15CitDT05GSUdfTURJTz1t CitDT05GSUdfTkVUX1ZFTkRPUl8zQ09NPXkKK0NPTkZJR19QQ01DSUFfM0M1NzQ9bQorQ09ORklH X1BDTUNJQV8zQzU4OT1tCitDT05GSUdfVk9SVEVYPW0KK0NPTkZJR19UWVBIT09OPW0KK0NPTkZJ R19ORVRfVkVORE9SX0FEQVBURUM9eQorQ09ORklHX0FEQVBURUNfU1RBUkZJUkU9bQorQ09ORklH X05FVF9WRU5ET1JfQUdFUkU9eQorQ09ORklHX0VUMTMxWD1tCitDT05GSUdfTkVUX1ZFTkRPUl9B TEFDUklURUNIPXkKK0NPTkZJR19TTElDT1NTPW0KK0NPTkZJR19ORVRfVkVORE9SX0FMVEVPTj15 CitDT05GSUdfQUNFTklDPW0KKyMgQ09ORklHX0FDRU5JQ19PTUlUX1RJR09OX0kgaXMgbm90IHNl dAorIyBDT05GSUdfQUxURVJBX1RTRSBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9BTUFa T049eQorQ09ORklHX0VOQV9FVEhFUk5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl9BTUQ9eQorQ09O RklHX0FNRDgxMTFfRVRIPW0KK0NPTkZJR19QQ05FVDMyPW0KK0NPTkZJR19QQ01DSUFfTk1DTEFO PW0KK0NPTkZJR19ORVRfVkVORE9SX0FRVUFOVElBPXkKK0NPTkZJR19BUVRJT049bQorQ09ORklH X05FVF9WRU5ET1JfQVJDPXkKK0NPTkZJR19ORVRfVkVORE9SX0FUSEVST1M9eQorQ09ORklHX0FU TDI9bQorQ09ORklHX0FUTDE9bQorQ09ORklHX0FUTDFFPW0KK0NPTkZJR19BVEwxQz1tCitDT05G SUdfQUxYPW0KK0NPTkZJR19ORVRfVkVORE9SX0JST0FEQ09NPXkKK0NPTkZJR19CNDQ9bQorQ09O RklHX0I0NF9QQ0lfQVVUT1NFTEVDVD15CitDT05GSUdfQjQ0X1BDSUNPUkVfQVVUT1NFTEVDVD15 CitDT05GSUdfQjQ0X1BDST15CitDT05GSUdfQkNNR0VORVQ9bQorQ09ORklHX0JOWDI9bQorQ09O RklHX0NOSUM9bQorQ09ORklHX1RJR09OMz1tCitDT05GSUdfVElHT04zX0hXTU9OPXkKK0NPTkZJ R19CTlgyWD1tCitDT05GSUdfQk5YMlhfU1JJT1Y9eQorQ09ORklHX1NZU1RFTVBPUlQ9bQorQ09O RklHX0JOWFQ9bQorQ09ORklHX0JOWFRfU1JJT1Y9eQorQ09ORklHX0JOWFRfRkxPV0VSX09GRkxP QUQ9eQorQ09ORklHX0JOWFRfRENCPXkKK0NPTkZJR19CTlhUX0hXTU9OPXkKK0NPTkZJR19ORVRf VkVORE9SX0JST0NBREU9eQorQ09ORklHX0JOQT1tCitDT05GSUdfTkVUX1ZFTkRPUl9DQURFTkNF PXkKK0NPTkZJR19NQUNCPW0KK0NPTkZJR19NQUNCX1VTRV9IV1NUQU1QPXkKK0NPTkZJR19NQUNC X1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9DQVZJVU09eQorQ09ORklHX1RIVU5ERVJfTklDX1BG PW0KK0NPTkZJR19USFVOREVSX05JQ19WRj1tCitDT05GSUdfVEhVTkRFUl9OSUNfQkdYPW0KK0NP TkZJR19USFVOREVSX05JQ19SR1g9bQorQ09ORklHX0NBVklVTV9QVFA9bQorQ09ORklHX0xJUVVJ RElPPW0KK0NPTkZJR19MSVFVSURJT19WRj1tCitDT05GSUdfTkVUX1ZFTkRPUl9DSEVMU0lPPXkK K0NPTkZJR19DSEVMU0lPX1QxPW0KK0NPTkZJR19DSEVMU0lPX1QxXzFHPXkKK0NPTkZJR19DSEVM U0lPX1QzPW0KK0NPTkZJR19DSEVMU0lPX1Q0PW0KK0NPTkZJR19DSEVMU0lPX1Q0X0RDQj15CitD T05GSUdfQ0hFTFNJT19UNF9GQ09FPXkKK0NPTkZJR19DSEVMU0lPX1Q0VkY9bQorQ09ORklHX0NI RUxTSU9fTElCPW0KK0NPTkZJR19DSEVMU0lPX0lOTElORV9DUllQVE89eQorQ09ORklHX0NIRUxT SU9fSVBTRUNfSU5MSU5FPW0KK0NPTkZJR19DSEVMU0lPX1RMU19ERVZJQ0U9bQorQ09ORklHX05F VF9WRU5ET1JfQ0lTQ089eQorQ09ORklHX0VOSUM9bQorQ09ORklHX05FVF9WRU5ET1JfQ09SVElO QT15CitDT05GSUdfR0VNSU5JX0VUSEVSTkVUPW0KK0NPTkZJR19ETkVUPW0KK0NPTkZJR19ORVRf VkVORE9SX0RFQz15CitDT05GSUdfTkVUX1RVTElQPXkKK0NPTkZJR19ERTIxMDRYPW0KK0NPTkZJ R19ERTIxMDRYX0RTTD0wCitDT05GSUdfVFVMSVA9bQorIyBDT05GSUdfVFVMSVBfTVdJIGlzIG5v dCBzZXQKKyMgQ09ORklHX1RVTElQX01NSU8gaXMgbm90IHNldAorQ09ORklHX1RVTElQX05BUEk9 eQorQ09ORklHX1RVTElQX05BUElfSFdfTUlUSUdBVElPTj15CitDT05GSUdfV0lOQk9ORF84NDA9 bQorQ09ORklHX0RNOTEwMj1tCitDT05GSUdfVUxJNTI2WD1tCitDT05GSUdfUENNQ0lBX1hJUkNP TT1tCitDT05GSUdfTkVUX1ZFTkRPUl9ETElOSz15CitDT05GSUdfREwySz1tCitDT05GSUdfU1VO REFOQ0U9bQorIyBDT05GSUdfU1VOREFOQ0VfTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZF TkRPUl9FTVVMRVg9eQorQ09ORklHX0JFMk5FVD1tCitDT05GSUdfQkUyTkVUX0hXTU9OPXkKK0NP TkZJR19CRTJORVRfQkUyPXkKK0NPTkZJR19CRTJORVRfQkUzPXkKK0NPTkZJR19CRTJORVRfTEFO Q0VSPXkKK0NPTkZJR19CRTJORVRfU0tZSEFXSz15CitDT05GSUdfTkVUX1ZFTkRPUl9FWkNISVA9 eQorQ09ORklHX0VaQ0hJUF9OUFNfTUFOQUdFTUVOVF9FTkVUPW0KK0NPTkZJR19ORVRfVkVORE9S X0ZVSklUU1U9eQorQ09ORklHX1BDTUNJQV9GTVZKMThYPW0KK0NPTkZJR19ORVRfVkVORE9SX0dP T0dMRT15CitDT05GSUdfTkVUX1ZFTkRPUl9IVUFXRUk9eQorQ09ORklHX05FVF9WRU5ET1JfSTgy NVhYPXkKK0NPTkZJR19ORVRfVkVORE9SX0lOVEVMPXkKK0NPTkZJR19FMTAwPW0KK0NPTkZJR19F MTAwMD1tCitDT05GSUdfRTEwMDBFPW0KK0NPTkZJR19JR0I9bQorQ09ORklHX0lHQl9IV01PTj15 CitDT05GSUdfSUdCVkY9bQorQ09ORklHX0lYR0I9bQorQ09ORklHX0lYR0JFPW0KK0NPTkZJR19J WEdCRV9IV01PTj15CitDT05GSUdfSVhHQkVfRENCPXkKK0NPTkZJR19JWEdCRV9JUFNFQz15CitD T05GSUdfSVhHQkVWRj1tCitDT05GSUdfSVhHQkVWRl9JUFNFQz15CitDT05GSUdfSTQwRT1tCitD T05GSUdfSTQwRV9EQ0I9eQorQ09ORklHX0lBVkY9bQorQ09ORklHX0k0MEVWRj1tCitDT05GSUdf SUNFPW0KK0NPTkZJR19GTTEwSz1tCitDT05GSUdfSUdDPW0KK0NPTkZJR19ORVRfVkVORE9SX01J Q1JPU09GVD15CitDT05GSUdfSk1FPW0KK0NPTkZJR19ORVRfVkVORE9SX0xJVEVYPXkKK0NPTkZJ R19MSVRFWF9MSVRFRVRIPW0KK0NPTkZJR19ORVRfVkVORE9SX01BUlZFTEw9eQorQ09ORklHX01W TURJTz1tCitDT05GSUdfU0tHRT1tCisjIENPTkZJR19TS0dFX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19TS0dFX0dFTkVTSVM9eQorQ09ORklHX1NLWTI9bQorIyBDT05GSUdfU0tZMl9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfUFJFU1RFUkE9bQorQ09ORklHX1BSRVNURVJBX1BDST1tCitDT05G SUdfTkVUX1ZFTkRPUl9NRUxMQU5PWD15CitDT05GSUdfTUxYNF9FTj1tCitDT05GSUdfTUxYNF9F Tl9EQ0I9eQorQ09ORklHX01MWDRfQ09SRT1tCitDT05GSUdfTUxYNF9ERUJVRz15CitDT05GSUdf TUxYNF9DT1JFX0dFTjI9eQorQ09ORklHX01MWDVfQ09SRT1tCitDT05GSUdfTUxYNV9BQ0NFTD15 CitDT05GSUdfTUxYNV9GUEdBPXkKK0NPTkZJR19NTFg1X0NPUkVfRU49eQorQ09ORklHX01MWDVf RU5fQVJGUz15CitDT05GSUdfTUxYNV9FTl9SWE5GQz15CitDT05GSUdfTUxYNV9NUEZTPXkKK0NP TkZJR19NTFg1X0VTV0lUQ0g9eQorQ09ORklHX01MWDVfQlJJREdFPXkKK0NPTkZJR19NTFg1X0NM U19BQ1Q9eQorQ09ORklHX01MWDVfVENfQ1Q9eQorQ09ORklHX01MWDVfVENfU0FNUExFPXkKK0NP TkZJR19NTFg1X0NPUkVfRU5fRENCPXkKK0NPTkZJR19NTFg1X0NPUkVfSVBPSUI9eQorQ09ORklH X01MWDVfRlBHQV9JUFNFQz15CitDT05GSUdfTUxYNV9JUFNFQz15CitDT05GSUdfTUxYNV9FTl9J UFNFQz15CitDT05GSUdfTUxYNV9GUEdBX1RMUz15CitDT05GSUdfTUxYNV9UTFM9eQorQ09ORklH X01MWDVfRU5fVExTPXkKK0NPTkZJR19NTFg1X1NXX1NURUVSSU5HPXkKK0NPTkZJR19NTFg1X1NG PXkKK0NPTkZJR19NTFg1X1NGX01BTkFHRVI9eQorQ09ORklHX01MWFNXX0NPUkU9bQorQ09ORklH X01MWFNXX0NPUkVfSFdNT049eQorQ09ORklHX01MWFNXX0NPUkVfVEhFUk1BTD15CitDT05GSUdf TUxYU1dfUENJPW0KK0NPTkZJR19NTFhTV19JMkM9bQorQ09ORklHX01MWFNXX1NQRUNUUlVNPW0K K0NPTkZJR19NTFhTV19TUEVDVFJVTV9EQ0I9eQorQ09ORklHX01MWFNXX01JTklNQUw9bQorQ09O RklHX01MWEZXPW0KK0NPTkZJR19ORVRfVkVORE9SX01JQ1JFTD15CitDT05GSUdfS1M4ODQyPW0K K0NPTkZJR19LUzg4NTE9bQorQ09ORklHX0tTODg1MV9NTEw9bQorQ09ORklHX0tTWjg4NFhfUENJ PW0KK0NPTkZJR19ORVRfVkVORE9SX01JQ1JPQ0hJUD15CitDT05GSUdfRU5DMjhKNjA9bQorIyBD T05GSUdfRU5DMjhKNjBfV1JJVEVWRVJJRlkgaXMgbm90IHNldAorQ09ORklHX0VOQ1gyNEo2MDA9 bQorQ09ORklHX0xBTjc0M1g9bQorQ09ORklHX05FVF9WRU5ET1JfTUlDUk9TRU1JPXkKK0NPTkZJ R19NU0NDX09DRUxPVF9TV0lUQ0hfTElCPW0KK0NPTkZJR19NU0NDX09DRUxPVF9TV0lUQ0g9bQor Q09ORklHX05FVF9WRU5ET1JfTVlSST15CitDT05GSUdfTVlSSTEwR0U9bQorQ09ORklHX0ZFQUxO WD1tCitDT05GSUdfTkVUX1ZFTkRPUl9OQVRTRU1JPXkKK0NPTkZJR19OQVRTRU1JPW0KK0NPTkZJ R19OUzgzODIwPW0KK0NPTkZJR19ORVRfVkVORE9SX05FVEVSSU9OPXkKK0NPTkZJR19TMklPPW0K K0NPTkZJR19WWEdFPW0KKyMgQ09ORklHX1ZYR0VfREVCVUdfVFJBQ0VfQUxMIGlzIG5vdCBzZXQK K0NPTkZJR19ORVRfVkVORE9SX05FVFJPTk9NRT15CitDT05GSUdfTkZQPW0KK0NPTkZJR19ORlBf QVBQX0ZMT1dFUj15CitDT05GSUdfTkZQX0FQUF9BQk1fTklDPXkKKyMgQ09ORklHX05GUF9ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9OST15CitDT05GSUdfTklfWEdFX01BTkFH RU1FTlRfRU5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl84MzkwPXkKK0NPTkZJR19QQ01DSUFfQVhO RVQ9bQorQ09ORklHX05FMktfUENJPW0KK0NPTkZJR19QQ01DSUFfUENORVQ9bQorQ09ORklHX05F VF9WRU5ET1JfTlZJRElBPXkKK0NPTkZJR19GT1JDRURFVEg9bQorQ09ORklHX05FVF9WRU5ET1Jf T0tJPXkKK0NPTkZJR19FVEhPQz1tCitDT05GSUdfTkVUX1ZFTkRPUl9QQUNLRVRfRU5HSU5FUz15 CitDT05GSUdfSEFNQUNIST1tCitDT05GSUdfWUVMTE9XRklOPW0KK0NPTkZJR19ORVRfVkVORE9S X1BFTlNBTkRPPXkKK0NPTkZJR19JT05JQz1tCitDT05GSUdfTkVUX1ZFTkRPUl9RTE9HSUM9eQor Q09ORklHX1FMQTNYWFg9bQorQ09ORklHX1FMQ05JQz1tCitDT05GSUdfUUxDTklDX1NSSU9WPXkK K0NPTkZJR19RTENOSUNfRENCPXkKK0NPTkZJR19RTENOSUNfSFdNT049eQorQ09ORklHX05FVFhF Tl9OSUM9bQorQ09ORklHX1FFRD1tCitDT05GSUdfUUVEX0xMMj15CitDT05GSUdfUUVEX1NSSU9W PXkKK0NPTkZJR19RRURFPW0KK0NPTkZJR19RRURfUkRNQT15CitDT05GSUdfUUVEX0lTQ1NJPXkK K0NPTkZJR19RRURfRkNPRT15CitDT05GSUdfUUVEX09PTz15CitDT05GSUdfTkVUX1ZFTkRPUl9R VUFMQ09NTT15CitDT05GSUdfUUNBNzAwMD1tCitDT05GSUdfUUNBNzAwMF9TUEk9bQorQ09ORklH X1FDQTcwMDBfVUFSVD1tCitDT05GSUdfUUNPTV9FTUFDPW0KK0NPTkZJR19STU5FVD1tCitDT05G SUdfTkVUX1ZFTkRPUl9SREM9eQorQ09ORklHX1I2MDQwPW0KK0NPTkZJR19ORVRfVkVORE9SX1JF QUxURUs9eQorQ09ORklHXzgxMzlDUD1tCitDT05GSUdfODEzOVRPTz1tCisjIENPTkZJR184MTM5 VE9PX1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qg c2V0CitDT05GSUdfODEzOVRPT184MTI5PXkKKyMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlz IG5vdCBzZXQKK0NPTkZJR19SODE2OT1tCitDT05GSUdfTkVUX1ZFTkRPUl9SRU5FU0FTPXkKK0NP TkZJR19ORVRfVkVORE9SX1JPQ0tFUj15CitDT05GSUdfUk9DS0VSPW0KK0NPTkZJR19ORVRfVkVO RE9SX1NBTVNVTkc9eQorQ09ORklHX1NYR0JFX0VUSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9TRUVR PXkKK0NPTkZJR19ORVRfVkVORE9SX1NPTEFSRkxBUkU9eQorQ09ORklHX1NGQz1tCitDT05GSUdf U0ZDX01URD15CitDT05GSUdfU0ZDX01DRElfTU9OPXkKK0NPTkZJR19TRkNfU1JJT1Y9eQorQ09O RklHX1NGQ19NQ0RJX0xPR0dJTkc9eQorQ09ORklHX1NGQ19GQUxDT049bQorQ09ORklHX1NGQ19G QUxDT05fTVREPXkKK0NPTkZJR19ORVRfVkVORE9SX1NJTEFOPXkKK0NPTkZJR19TQzkyMDMxPW0K K0NPTkZJR19ORVRfVkVORE9SX1NJUz15CitDT05GSUdfU0lTOTAwPW0KK0NPTkZJR19TSVMxOTA9 bQorQ09ORklHX05FVF9WRU5ET1JfU01TQz15CitDT05GSUdfUENNQ0lBX1NNQzkxQzkyPW0KK0NP TkZJR19FUElDMTAwPW0KK0NPTkZJR19TTVNDOTExWD1tCitDT05GSUdfU01TQzk0MjA9bQorQ09O RklHX05FVF9WRU5ET1JfU09DSU9ORVhUPXkKK0NPTkZJR19ORVRfVkVORE9SX1NUTUlDUk89eQor Q09ORklHX1NUTU1BQ19FVEg9bQorIyBDT05GSUdfU1RNTUFDX1NFTEZURVNUUyBpcyBub3Qgc2V0 CitDT05GSUdfU1RNTUFDX1BMQVRGT1JNPW0KK0NPTkZJR19EV01BQ19EV0NfUU9TX0VUSD1tCitD T05GSUdfRFdNQUNfR0VORVJJQz1tCitDT05GSUdfRFdNQUNfSU5URUxfUExBVD1tCitDT05GSUdf RFdNQUNfU1RBUkZJVkVfUExBVD15CitDT05GSUdfRFdNQUNfTE9PTkdTT049bQorQ09ORklHX1NU TU1BQ19QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfU1VOPXkKK0NPTkZJR19IQVBQWU1FQUw9bQor Q09ORklHX1NVTkdFTT1tCitDT05GSUdfQ0FTU0lOST1tCitDT05GSUdfTklVPW0KK0NPTkZJR19O RVRfVkVORE9SX1NZTk9QU1lTPXkKK0NPTkZJR19EV0NfWExHTUFDPW0KK0NPTkZJR19EV0NfWExH TUFDX1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9URUhVVEk9eQorQ09ORklHX1RFSFVUST1tCitD T05GSUdfTkVUX1ZFTkRPUl9UST15CisjIENPTkZJR19USV9DUFNXX1BIWV9TRUwgaXMgbm90IHNl dAorQ09ORklHX1RMQU49bQorQ09ORklHX05FVF9WRU5ET1JfVklBPXkKK0NPTkZJR19WSUFfUkhJ TkU9bQorQ09ORklHX1ZJQV9SSElORV9NTUlPPXkKK0NPTkZJR19WSUFfVkVMT0NJVFk9bQorQ09O RklHX05FVF9WRU5ET1JfV0laTkVUPXkKK0NPTkZJR19XSVpORVRfVzUxMDA9bQorQ09ORklHX1dJ Wk5FVF9XNTMwMD1tCisjIENPTkZJR19XSVpORVRfQlVTX0RJUkVDVCBpcyBub3Qgc2V0CisjIENP TkZJR19XSVpORVRfQlVTX0lORElSRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19XSVpORVRfQlVTX0FO WT15CitDT05GSUdfV0laTkVUX1c1MTAwX1NQST1tCitDT05GSUdfTkVUX1ZFTkRPUl9YSUxJTlg9 eQorQ09ORklHX1hJTElOWF9FTUFDTElURT1tCitDT05GSUdfWElMSU5YX0FYSV9FTUFDPW0KK0NP TkZJR19YSUxJTlhfTExfVEVNQUM9bQorQ09ORklHX05FVF9WRU5ET1JfWElSQ09NPXkKK0NPTkZJ R19QQ01DSUFfWElSQzJQUz1tCitDT05GSUdfRkREST1tCitDT05GSUdfREVGWFg9bQorQ09ORklH X1NLRlA9bQorQ09ORklHX0hJUFBJPXkKK0NPTkZJR19ST0FEUlVOTkVSPW0KKyMgQ09ORklHX1JP QURSVU5ORVJfTEFSR0VfUklOR1MgaXMgbm90IHNldAorQ09ORklHX1BIWUxJTks9bQorQ09ORklH X1BIWUxJQj15CitDT05GSUdfU1dQSFk9eQorQ09ORklHX0xFRF9UUklHR0VSX1BIWT15CitDT05G SUdfRklYRURfUEhZPXkKK0NPTkZJR19TRlA9bQorCisjCisjIE1JSSBQSFkgZGV2aWNlIGRyaXZl cnMKKyMKK0NPTkZJR19BTURfUEhZPW0KK0NPTkZJR19BRElOX1BIWT1tCitDT05GSUdfQVFVQU5U SUFfUEhZPW0KK0NPTkZJR19BWDg4Nzk2Ql9QSFk9bQorQ09ORklHX0JST0FEQ09NX1BIWT1tCitD T05GSUdfQkNNNTQxNDBfUEhZPW0KK0NPTkZJR19CQ003WFhYX1BIWT1tCitDT05GSUdfQkNNODQ4 ODFfUEhZPXkKK0NPTkZJR19CQ004N1hYX1BIWT1tCitDT05GSUdfQkNNX05FVF9QSFlMSUI9bQor Q09ORklHX0NJQ0FEQV9QSFk9bQorQ09ORklHX0NPUlRJTkFfUEhZPW0KK0NPTkZJR19EQVZJQ09N X1BIWT1tCitDT05GSUdfSUNQTFVTX1BIWT1tCitDT05GSUdfTFhUX1BIWT1tCitDT05GSUdfSU5U RUxfWFdBWV9QSFk9bQorQ09ORklHX0xTSV9FVDEwMTFDX1BIWT1tCitDT05GSUdfTUFSVkVMTF9Q SFk9bQorQ09ORklHX01BUlZFTExfMTBHX1BIWT1tCitDT05GSUdfTUFSVkVMTF84OFgyMjIyX1BI WT1tCitDT05GSUdfTUFYTElORUFSX0dQSFk9bQorQ09ORklHX01FRElBVEVLX0dFX1BIWT1tCitD T05GSUdfTUlDUkVMX1BIWT1tCitDT05GSUdfTUlDUk9DSElQX1BIWT1tCitDT05GSUdfTUlDUk9D SElQX1QxX1BIWT1tCitDT05GSUdfTUlDUk9TRU1JX1BIWT1tCitDT05GSUdfTU9UT1JDT01NX1BI WT1tCitDT05GSUdfTkFUSU9OQUxfUEhZPW0KK0NPTkZJR19OWFBfQzQ1X1RKQTExWFhfUEhZPW0K K0NPTkZJR19OWFBfVEpBMTFYWF9QSFk9bQorQ09ORklHX0FUODAzWF9QSFk9bQorQ09ORklHX1FT RU1JX1BIWT1tCitDT05GSUdfUkVBTFRFS19QSFk9bQorQ09ORklHX1JFTkVTQVNfUEhZPW0KK0NP TkZJR19ST0NLQ0hJUF9QSFk9bQorQ09ORklHX1NNU0NfUEhZPW0KK0NPTkZJR19TVEUxMFhQPW0K K0NPTkZJR19URVJBTkVUSUNTX1BIWT1tCitDT05GSUdfRFA4MzgyMl9QSFk9bQorQ09ORklHX0RQ ODNUQzgxMV9QSFk9bQorQ09ORklHX0RQODM4NDhfUEhZPW0KK0NPTkZJR19EUDgzODY3X1BIWT1t CitDT05GSUdfRFA4Mzg2OV9QSFk9bQorQ09ORklHX1ZJVEVTU0VfUEhZPW0KK0NPTkZJR19YSUxJ TlhfR01JSTJSR01JST1tCitDT05GSUdfTUlDUkVMX0tTODk5NU1BPW0KKworIworIyBNQ1RQIERl dmljZSBEcml2ZXJzCisjCitDT05GSUdfTURJT19ERVZJQ0U9eQorQ09ORklHX01ESU9fQlVTPXkK K0NPTkZJR19GV05PREVfTURJTz15CitDT05GSUdfT0ZfTURJTz15CitDT05GSUdfTURJT19ERVZS RVM9eQorQ09ORklHX01ESU9fQklUQkFORz1tCitDT05GSUdfTURJT19CQ01fVU5JTUFDPW0KK0NP TkZJR19NRElPX0NBVklVTT1tCitDT05GSUdfTURJT19HUElPPW0KK0NPTkZJR19NRElPX0hJU0lf RkVNQUM9bQorQ09ORklHX01ESU9fSTJDPW0KK0NPTkZJR19NRElPX01WVVNCPW0KK0NPTkZJR19N RElPX01TQ0NfTUlJTT1tCitDT05GSUdfTURJT19PQ1RFT049bQorQ09ORklHX01ESU9fSVBRNDAx OT1tCitDT05GSUdfTURJT19JUFE4MDY0PW0KK0NPTkZJR19NRElPX1RIVU5ERVI9bQorCisjCisj IE1ESU8gTXVsdGlwbGV4ZXJzCisjCitDT05GSUdfTURJT19CVVNfTVVYPW0KK0NPTkZJR19NRElP X0JVU19NVVhfR1BJTz1tCitDT05GSUdfTURJT19CVVNfTVVYX01VTFRJUExFWEVSPW0KK0NPTkZJ R19NRElPX0JVU19NVVhfTU1JT1JFRz1tCisKKyMKKyMgUENTIGRldmljZSBkcml2ZXJzCisjCitD T05GSUdfUENTX1hQQ1M9bQorQ09ORklHX1BDU19MWU5YPW0KKyMgZW5kIG9mIFBDUyBkZXZpY2Ug ZHJpdmVycworCitDT05GSUdfUExJUD1tCitDT05GSUdfUFBQPW0KK0NPTkZJR19QUFBfQlNEQ09N UD1tCitDT05GSUdfUFBQX0RFRkxBVEU9bQorQ09ORklHX1BQUF9GSUxURVI9eQorQ09ORklHX1BQ UF9NUFBFPW0KK0NPTkZJR19QUFBfTVVMVElMSU5LPXkKK0NPTkZJR19QUFBPQVRNPW0KK0NPTkZJ R19QUFBPRT1tCitDT05GSUdfUFBUUD1tCitDT05GSUdfUFBQT0wyVFA9bQorQ09ORklHX1BQUF9B U1lOQz1tCitDT05GSUdfUFBQX1NZTkNfVFRZPW0KK0NPTkZJR19TTElQPW0KK0NPTkZJR19TTEhD PW0KK0NPTkZJR19TTElQX0NPTVBSRVNTRUQ9eQorQ09ORklHX1NMSVBfU01BUlQ9eQorQ09ORklH X1NMSVBfTU9ERV9TTElQNj15CisKKyMKKyMgSG9zdC1zaWRlIFVTQiBzdXBwb3J0IGlzIG5lZWRl ZCBmb3IgVVNCIE5ldHdvcmsgQWRhcHRlciBzdXBwb3J0CisjCitDT05GSUdfVVNCX05FVF9EUklW RVJTPW0KK0NPTkZJR19VU0JfQ0FUQz1tCitDT05GSUdfVVNCX0tBV0VUSD1tCitDT05GSUdfVVNC X1BFR0FTVVM9bQorQ09ORklHX1VTQl9SVEw4MTUwPW0KK0NPTkZJR19VU0JfUlRMODE1Mj1tCitD T05GSUdfVVNCX0xBTjc4WFg9bQorQ09ORklHX1VTQl9VU0JORVQ9bQorQ09ORklHX1VTQl9ORVRf QVg4ODE3WD1tCitDT05GSUdfVVNCX05FVF9BWDg4MTc5XzE3OEE9bQorQ09ORklHX1VTQl9ORVRf Q0RDRVRIRVI9bQorQ09ORklHX1VTQl9ORVRfQ0RDX0VFTT1tCitDT05GSUdfVVNCX05FVF9DRENf TkNNPW0KK0NPTkZJR19VU0JfTkVUX0hVQVdFSV9DRENfTkNNPW0KK0NPTkZJR19VU0JfTkVUX0NE Q19NQklNPW0KK0NPTkZJR19VU0JfTkVUX0RNOTYwMT1tCitDT05GSUdfVVNCX05FVF9TUjk3MDA9 bQorQ09ORklHX1VTQl9ORVRfU1I5ODAwPW0KK0NPTkZJR19VU0JfTkVUX1NNU0M3NVhYPW0KK0NP TkZJR19VU0JfTkVUX1NNU0M5NVhYPW0KK0NPTkZJR19VU0JfTkVUX0dMNjIwQT1tCitDT05GSUdf VVNCX05FVF9ORVQxMDgwPW0KK0NPTkZJR19VU0JfTkVUX1BMVVNCPW0KK0NPTkZJR19VU0JfTkVU X01DUzc4MzA9bQorQ09ORklHX1VTQl9ORVRfUk5ESVNfSE9TVD1tCitDT05GSUdfVVNCX05FVF9D RENfU1VCU0VUX0VOQUJMRT1tCitDT05GSUdfVVNCX05FVF9DRENfU1VCU0VUPW0KK0NPTkZJR19V U0JfQUxJX001NjMyPXkKK0NPTkZJR19VU0JfQU4yNzIwPXkKK0NPTkZJR19VU0JfQkVMS0lOPXkK K0NPTkZJR19VU0JfQVJNTElOVVg9eQorQ09ORklHX1VTQl9FUFNPTjI4ODg9eQorQ09ORklHX1VT Ql9LQzIxOTA9eQorQ09ORklHX1VTQl9ORVRfWkFVUlVTPW0KK0NPTkZJR19VU0JfTkVUX0NYODIz MTBfRVRIPW0KK0NPTkZJR19VU0JfTkVUX0tBTE1JQT1tCitDT05GSUdfVVNCX05FVF9RTUlfV1dB Tj1tCitDT05GSUdfVVNCX0hTTz1tCitDT05GSUdfVVNCX05FVF9JTlQ1MVgxPW0KK0NPTkZJR19V U0JfQ0RDX1BIT05FVD1tCitDT05GSUdfVVNCX0lQSEVUSD1tCitDT05GSUdfVVNCX1NJRVJSQV9O RVQ9bQorQ09ORklHX1VTQl9WTDYwMD1tCitDT05GSUdfVVNCX05FVF9DSDkyMDA9bQorQ09ORklH X1VTQl9ORVRfQVFDMTExPW0KK0NPTkZJR19VU0JfUlRMODE1M19FQ009bQorQ09ORklHX1dMQU49 eQorQ09ORklHX1dMQU5fVkVORE9SX0FETVRFSz15CitDT05GSUdfQURNODIxMT1tCitDT05GSUdf QVRIX0NPTU1PTj1tCitDT05GSUdfV0xBTl9WRU5ET1JfQVRIPXkKKyMgQ09ORklHX0FUSF9ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfQVRINUs9bQorIyBDT05GSUdfQVRINUtfREVCVUcgaXMgbm90 IHNldAorIyBDT05GSUdfQVRINUtfVFJBQ0VSIGlzIG5vdCBzZXQKK0NPTkZJR19BVEg1S19QQ0k9 eQorQ09ORklHX0FUSDlLX0hXPW0KK0NPTkZJR19BVEg5S19DT01NT049bQorQ09ORklHX0FUSDlL X0JUQ09FWF9TVVBQT1JUPXkKK0NPTkZJR19BVEg5Sz1tCitDT05GSUdfQVRIOUtfUENJPXkKKyMg Q09ORklHX0FUSDlLX0FIQiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEg5S19ERUJVR0ZTIGlzIG5v dCBzZXQKKyMgQ09ORklHX0FUSDlLX0RZTkFDSyBpcyBub3Qgc2V0CitDT05GSUdfQVRIOUtfV09X PXkKK0NPTkZJR19BVEg5S19SRktJTEw9eQorQ09ORklHX0FUSDlLX0NIQU5ORUxfQ09OVEVYVD15 CitDT05GSUdfQVRIOUtfUENPRU09eQorQ09ORklHX0FUSDlLX1BDSV9OT19FRVBST009bQorQ09O RklHX0FUSDlLX0hUQz1tCisjIENPTkZJR19BVEg5S19IVENfREVCVUdGUyBpcyBub3Qgc2V0CitD T05GSUdfQVRIOUtfSFdSTkc9eQorQ09ORklHX0NBUkw5MTcwPW0KK0NPTkZJR19DQVJMOTE3MF9M RURTPXkKKyMgQ09ORklHX0NBUkw5MTcwX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0NBUkw5 MTcwX1dQQz15CitDT05GSUdfQ0FSTDkxNzBfSFdSTkc9eQorQ09ORklHX0FUSDZLTD1tCitDT05G SUdfQVRINktMX1NESU89bQorQ09ORklHX0FUSDZLTF9VU0I9bQorIyBDT05GSUdfQVRINktMX0RF QlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUSDZLTF9UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJ R19BUjU1MjM9bQorQ09ORklHX1dJTDYyMTA9bQorQ09ORklHX1dJTDYyMTBfSVNSX0NPUj15CitD T05GSUdfV0lMNjIxMF9UUkFDSU5HPXkKKyMgQ09ORklHX1dJTDYyMTBfREVCVUdGUyBpcyBub3Qg c2V0CitDT05GSUdfQVRIMTBLPW0KK0NPTkZJR19BVEgxMEtfQ0U9eQorQ09ORklHX0FUSDEwS19Q Q0k9bQorQ09ORklHX0FUSDEwS19BSEI9eQorQ09ORklHX0FUSDEwS19TRElPPW0KK0NPTkZJR19B VEgxMEtfVVNCPW0KKyMgQ09ORklHX0FUSDEwS19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19B VEgxMEtfREVCVUdGUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEgxMEtfVFJBQ0lORyBpcyBub3Qg c2V0CitDT05GSUdfV0NOMzZYWD1tCisjIENPTkZJR19XQ04zNlhYX0RFQlVHRlMgaXMgbm90IHNl dAorQ09ORklHX0FUSDExSz1tCitDT05GSUdfQVRIMTFLX0FIQj1tCitDT05GSUdfQVRIMTFLX1BD ST1tCisjIENPTkZJR19BVEgxMUtfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0FUSDExS19ERUJV R0ZTPXkKKyMgQ09ORklHX0FUSDExS19UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19BVEgxMUtf U1BFQ1RSQUw9eQorQ09ORklHX1dMQU5fVkVORE9SX0FUTUVMPXkKK0NPTkZJR19BVE1FTD1tCitD T05GSUdfUENJX0FUTUVMPW0KK0NPTkZJR19QQ01DSUFfQVRNRUw9bQorQ09ORklHX0FUNzZDNTBY X1VTQj1tCitDT05GSUdfV0xBTl9WRU5ET1JfQlJPQURDT009eQorQ09ORklHX0I0Mz1tCitDT05G SUdfQjQzX0JDTUE9eQorQ09ORklHX0I0M19TU0I9eQorQ09ORklHX0I0M19CVVNFU19CQ01BX0FO RF9TU0I9eQorIyBDT05GSUdfQjQzX0JVU0VTX0JDTUEgaXMgbm90IHNldAorIyBDT05GSUdfQjQz X0JVU0VTX1NTQiBpcyBub3Qgc2V0CitDT05GSUdfQjQzX1BDSV9BVVRPU0VMRUNUPXkKK0NPTkZJ R19CNDNfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNfU0RJTz15CitDT05GSUdfQjQz X0JDTUFfUElPPXkKK0NPTkZJR19CNDNfUElPPXkKK0NPTkZJR19CNDNfUEhZX0c9eQorQ09ORklH X0I0M19QSFlfTj15CitDT05GSUdfQjQzX1BIWV9MUD15CitDT05GSUdfQjQzX1BIWV9IVD15CitD T05GSUdfQjQzX0xFRFM9eQorQ09ORklHX0I0M19IV1JORz15CisjIENPTkZJR19CNDNfREVCVUcg aXMgbm90IHNldAorQ09ORklHX0I0M0xFR0FDWT1tCitDT05GSUdfQjQzTEVHQUNZX1BDSV9BVVRP U0VMRUNUPXkKK0NPTkZJR19CNDNMRUdBQ1lfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19C NDNMRUdBQ1lfTEVEUz15CitDT05GSUdfQjQzTEVHQUNZX0hXUk5HPXkKKyMgQ09ORklHX0I0M0xF R0FDWV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQjQzTEVHQUNZX0RNQT15CitDT05GSUdfQjQz TEVHQUNZX1BJTz15CitDT05GSUdfQjQzTEVHQUNZX0RNQV9BTkRfUElPX01PREU9eQorIyBDT05G SUdfQjQzTEVHQUNZX0RNQV9NT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M0xFR0FDWV9QSU9f TU9ERSBpcyBub3Qgc2V0CitDT05GSUdfQlJDTVVUSUw9bQorQ09ORklHX0JSQ01TTUFDPW0KK0NP TkZJR19CUkNNRk1BQz1tCitDT05GSUdfQlJDTUZNQUNfUFJPVE9fQkNEQz15CitDT05GSUdfQlJD TUZNQUNfUFJPVE9fTVNHQlVGPXkKK0NPTkZJR19CUkNNRk1BQ19TRElPPXkKK0NPTkZJR19CUkNN Rk1BQ19VU0I9eQorQ09ORklHX0JSQ01GTUFDX1BDSUU9eQorIyBDT05GSUdfQlJDTV9UUkFDSU5H IGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSQ01EQkcgaXMgbm90IHNldAorQ09ORklHX1dMQU5fVkVO RE9SX0NJU0NPPXkKK0NPTkZJR19BSVJPX0NTPW0KK0NPTkZJR19XTEFOX1ZFTkRPUl9JTlRFTD15 CitDT05GSUdfSVBXMjEwMD1tCitDT05GSUdfSVBXMjEwMF9NT05JVE9SPXkKK0NPTkZJR19JUFcy MTAwX0RFQlVHPXkKK0NPTkZJR19JUFcyMjAwPW0KK0NPTkZJR19JUFcyMjAwX01PTklUT1I9eQor Q09ORklHX0lQVzIyMDBfUkFESU9UQVA9eQorQ09ORklHX0lQVzIyMDBfUFJPTUlTQ1VPVVM9eQor Q09ORklHX0lQVzIyMDBfUU9TPXkKK0NPTkZJR19JUFcyMjAwX0RFQlVHPXkKK0NPTkZJR19MSUJJ UFc9bQorQ09ORklHX0xJQklQV19ERUJVRz15CitDT05GSUdfSVdMRUdBQ1k9bQorQ09ORklHX0lX TDQ5NjU9bQorQ09ORklHX0lXTDM5NDU9bQorCisjCisjIGl3bDM5NDUgLyBpd2w0OTY1IERlYnVn Z2luZyBPcHRpb25zCisjCisjIENPTkZJR19JV0xFR0FDWV9ERUJVRyBpcyBub3Qgc2V0CisjIENP TkZJR19JV0xFR0FDWV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIGl3bDM5NDUgLyBpd2w0 OTY1IERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJR19JV0xXSUZJPW0KK0NPTkZJR19JV0xXSUZJ X0xFRFM9eQorQ09ORklHX0lXTERWTT1tCitDT05GSUdfSVdMTVZNPW0KK0NPTkZJR19JV0xXSUZJ X09QTU9ERV9NT0RVTEFSPXkKKyMgQ09ORklHX0lXTFdJRklfQkNBU1RfRklMVEVSSU5HIGlzIG5v dCBzZXQKKworIworIyBEZWJ1Z2dpbmcgT3B0aW9ucworIworQ09ORklHX0lXTFdJRklfREVCVUc9 eQorQ09ORklHX0lXTFdJRklfREVCVUdGUz15CisjIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFD SU5HIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJR19XTEFO X1ZFTkRPUl9JTlRFUlNJTD15CitDT05GSUdfSE9TVEFQPW0KK0NPTkZJR19IT1NUQVBfRklSTVdB UkU9eQorQ09ORklHX0hPU1RBUF9GSVJNV0FSRV9OVlJBTT15CitDT05GSUdfSE9TVEFQX1BMWD1t CitDT05GSUdfSE9TVEFQX1BDST1tCitDT05GSUdfSE9TVEFQX0NTPW0KK0NPTkZJR19IRVJNRVM9 bQorQ09ORklHX0hFUk1FU19QUklTTT15CitDT05GSUdfSEVSTUVTX0NBQ0hFX0ZXX09OX0lOSVQ9 eQorQ09ORklHX1BMWF9IRVJNRVM9bQorQ09ORklHX1RNRF9IRVJNRVM9bQorQ09ORklHX05PUlRF TF9IRVJNRVM9bQorQ09ORklHX1BDSV9IRVJNRVM9bQorQ09ORklHX1BDTUNJQV9IRVJNRVM9bQor Q09ORklHX1BDTUNJQV9TUEVDVFJVTT1tCitDT05GSUdfT1JJTk9DT19VU0I9bQorQ09ORklHX1A1 NF9DT01NT049bQorQ09ORklHX1A1NF9VU0I9bQorQ09ORklHX1A1NF9QQ0k9bQorIyBDT05GSUdf UDU0X1NQSSBpcyBub3Qgc2V0CitDT05GSUdfUDU0X0xFRFM9eQorQ09ORklHX1dMQU5fVkVORE9S X01BUlZFTEw9eQorQ09ORklHX0xJQkVSVEFTPW0KK0NPTkZJR19MSUJFUlRBU19VU0I9bQorQ09O RklHX0xJQkVSVEFTX0NTPW0KK0NPTkZJR19MSUJFUlRBU19TRElPPW0KKyMgQ09ORklHX0xJQkVS VEFTX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJFUlRBU19ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfTElCRVJUQVNfTUVTSD15CitDT05GSUdfTElCRVJUQVNfVEhJTkZJUk09bQorIyBDT05G SUdfTElCRVJUQVNfVEhJTkZJUk1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTX1RI SU5GSVJNX1VTQj1tCitDT05GSUdfTVdJRklFWD1tCitDT05GSUdfTVdJRklFWF9TRElPPW0KK0NP TkZJR19NV0lGSUVYX1BDSUU9bQorQ09ORklHX01XSUZJRVhfVVNCPW0KK0NPTkZJR19NV0w4Sz1t CitDT05GSUdfV0xBTl9WRU5ET1JfTUVESUFURUs9eQorQ09ORklHX01UNzYwMVU9bQorQ09ORklH X01UNzZfQ09SRT1tCitDT05GSUdfTVQ3Nl9MRURTPXkKK0NPTkZJR19NVDc2X1VTQj1tCitDT05G SUdfTVQ3Nl9TRElPPW0KK0NPTkZJR19NVDc2eDAyX0xJQj1tCitDT05GSUdfTVQ3NngwMl9VU0I9 bQorQ09ORklHX01UNzZfQ09OTkFDX0xJQj1tCitDT05GSUdfTVQ3NngwX0NPTU1PTj1tCitDT05G SUdfTVQ3NngwVT1tCitDT05GSUdfTVQ3NngwRT1tCitDT05GSUdfTVQ3NngyX0NPTU1PTj1tCitD T05GSUdfTVQ3NngyRT1tCitDT05GSUdfTVQ3NngyVT1tCitDT05GSUdfTVQ3NjAzRT1tCitDT05G SUdfTVQ3NjE1X0NPTU1PTj1tCitDT05GSUdfTVQ3NjE1RT1tCitDT05GSUdfTVQ3NjYzX1VTQl9T RElPX0NPTU1PTj1tCitDT05GSUdfTVQ3NjYzVT1tCitDT05GSUdfTVQ3NjYzUz1tCitDT05GSUdf TVQ3OTE1RT1tCitDT05GSUdfTVQ3OTIxRT1tCitDT05GSUdfV0xBTl9WRU5ET1JfTUlDUk9DSElQ PXkKKyMgQ09ORklHX1dJTEMxMDAwX1NESU8gaXMgbm90IHNldAorIyBDT05GSUdfV0lMQzEwMDBf U1BJIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9SQUxJTks9eQorQ09ORklHX1JUMlgw MD1tCitDT05GSUdfUlQyNDAwUENJPW0KK0NPTkZJR19SVDI1MDBQQ0k9bQorQ09ORklHX1JUNjFQ Q0k9bQorQ09ORklHX1JUMjgwMFBDST1tCitDT05GSUdfUlQyODAwUENJX1JUMzNYWD15CitDT05G SUdfUlQyODAwUENJX1JUMzVYWD15CitDT05GSUdfUlQyODAwUENJX1JUNTNYWD15CitDT05GSUdf UlQyODAwUENJX1JUMzI5MD15CitDT05GSUdfUlQyNTAwVVNCPW0KK0NPTkZJR19SVDczVVNCPW0K K0NPTkZJR19SVDI4MDBVU0I9bQorQ09ORklHX1JUMjgwMFVTQl9SVDMzWFg9eQorQ09ORklHX1JU MjgwMFVTQl9SVDM1WFg9eQorQ09ORklHX1JUMjgwMFVTQl9SVDM1NzM9eQorQ09ORklHX1JUMjgw MFVTQl9SVDUzWFg9eQorQ09ORklHX1JUMjgwMFVTQl9SVDU1WFg9eQorQ09ORklHX1JUMjgwMFVT Ql9VTktOT1dOPXkKK0NPTkZJR19SVDI4MDBfTElCPW0KK0NPTkZJR19SVDI4MDBfTElCX01NSU89 bQorQ09ORklHX1JUMlgwMF9MSUJfTU1JTz1tCitDT05GSUdfUlQyWDAwX0xJQl9QQ0k9bQorQ09O RklHX1JUMlgwMF9MSUJfVVNCPW0KK0NPTkZJR19SVDJYMDBfTElCPW0KK0NPTkZJR19SVDJYMDBf TElCX0ZJUk1XQVJFPXkKK0NPTkZJR19SVDJYMDBfTElCX0NSWVBUTz15CitDT05GSUdfUlQyWDAw X0xJQl9MRURTPXkKKyMgQ09ORklHX1JUMlgwMF9MSUJfREVCVUdGUyBpcyBub3Qgc2V0CisjIENP TkZJR19SVDJYMDBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1dMQU5fVkVORE9SX1JFQUxURUs9 eQorQ09ORklHX1JUTDgxODA9bQorQ09ORklHX1JUTDgxODc9bQorQ09ORklHX1JUTDgxODdfTEVE Uz15CitDT05GSUdfUlRMX0NBUkRTPW0KK0NPTkZJR19SVEw4MTkyQ0U9bQorQ09ORklHX1JUTDgx OTJTRT1tCitDT05GSUdfUlRMODE5MkRFPW0KK0NPTkZJR19SVEw4NzIzQUU9bQorQ09ORklHX1JU TDg3MjNCRT1tCitDT05GSUdfUlRMODE4OEVFPW0KK0NPTkZJR19SVEw4MTkyRUU9bQorQ09ORklH X1JUTDg4MjFBRT1tCitDT05GSUdfUlRMODE5MkNVPW0KK0NPTkZJR19SVExXSUZJPW0KK0NPTkZJ R19SVExXSUZJX1BDST1tCitDT05GSUdfUlRMV0lGSV9VU0I9bQorQ09ORklHX1JUTFdJRklfREVC VUc9eQorQ09ORklHX1JUTDgxOTJDX0NPTU1PTj1tCitDT05GSUdfUlRMODcyM19DT01NT049bQor Q09ORklHX1JUTEJUQ09FWElTVD1tCitDT05GSUdfUlRMOFhYWFU9bQorQ09ORklHX1JUTDhYWFhV X1VOVEVTVEVEPXkKK0NPTkZJR19SVFc4OD1tCitDT05GSUdfUlRXODhfQ09SRT1tCitDT05GSUdf UlRXODhfUENJPW0KK0NPTkZJR19SVFc4OF84ODIyQj1tCitDT05GSUdfUlRXODhfODgyMkM9bQor Q09ORklHX1JUVzg4Xzg3MjNEPW0KK0NPTkZJR19SVFc4OF84ODIxQz1tCitDT05GSUdfUlRXODhf ODgyMkJFPW0KK0NPTkZJR19SVFc4OF84ODIyQ0U9bQorQ09ORklHX1JUVzg4Xzg3MjNERT1tCitD T05GSUdfUlRXODhfODgyMUNFPW0KKyMgQ09ORklHX1JUVzg4X0RFQlVHIGlzIG5vdCBzZXQKKyMg Q09ORklHX1JUVzg4X0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX1dMQU5fVkVORE9SX1JTST15 CitDT05GSUdfUlNJXzkxWD1tCisjIENPTkZJR19SU0lfREVCVUdGUyBpcyBub3Qgc2V0CitDT05G SUdfUlNJX1NESU89bQorQ09ORklHX1JTSV9VU0I9bQorQ09ORklHX1JTSV9DT0VYPXkKK0NPTkZJ R19XTEFOX1ZFTkRPUl9TVD15CitDT05GSUdfQ1cxMjAwPW0KK0NPTkZJR19DVzEyMDBfV0xBTl9T RElPPW0KKyMgQ09ORklHX0NXMTIwMF9XTEFOX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfV0xBTl9W RU5ET1JfVEk9eQorQ09ORklHX1dMMTI1MT1tCisjIENPTkZJR19XTDEyNTFfU1BJIGlzIG5vdCBz ZXQKK0NPTkZJR19XTDEyNTFfU0RJTz1tCitDT05GSUdfV0wxMlhYPW0KK0NPTkZJR19XTDE4WFg9 bQorQ09ORklHX1dMQ09SRT1tCisjIENPTkZJR19XTENPUkVfU1BJIGlzIG5vdCBzZXQKK0NPTkZJ R19XTENPUkVfU0RJTz1tCisjIENPTkZJR19XSUxJTktfUExBVEZPUk1fREFUQSBpcyBub3Qgc2V0 CitDT05GSUdfV0xBTl9WRU5ET1JfWllEQVM9eQorQ09ORklHX1VTQl9aRDEyMDE9bQorQ09ORklH X1pEMTIxMVJXPW0KKyMgQ09ORklHX1pEMTIxMVJXX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19X TEFOX1ZFTkRPUl9RVUFOVEVOTkE9eQorQ09ORklHX1FUTkZNQUM9bQorQ09ORklHX1FUTkZNQUNf UENJRT1tCisjIENPTkZJR19VU0JfV0lGSV9FQ1I2NjAwVSBpcyBub3Qgc2V0CitDT05GSUdfUENN Q0lBX1JBWUNTPW0KK0NPTkZJR19QQ01DSUFfV0wzNTAxPW0KK0NPTkZJR19NQUM4MDIxMV9IV1NJ TT1tCitDT05GSUdfVVNCX05FVF9STkRJU19XTEFOPW0KK0NPTkZJR19WSVJUX1dJRkk9bQorIyBD T05GSUdfV0FOIGlzIG5vdCBzZXQKK0NPTkZJR19JRUVFODAyMTU0X0RSSVZFUlM9bQorQ09ORklH X0lFRUU4MDIxNTRfRkFLRUxCPW0KKyMgQ09ORklHX0lFRUU4MDIxNTRfQVQ4NlJGMjMwIGlzIG5v dCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxNTRfTVJGMjRKNDAgaXMgbm90IHNldAorIyBDT05GSUdf SUVFRTgwMjE1NF9DQzI1MjAgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjE1NF9BVFVTQiBp cyBub3Qgc2V0CitDT05GSUdfSUVFRTgwMjE1NF9BREY3MjQyPW0KK0NPTkZJR19JRUVFODAyMTU0 X0NBODIxMD1tCitDT05GSUdfSUVFRTgwMjE1NF9DQTgyMTBfREVCVUdGUz15CitDT05GSUdfSUVF RTgwMjE1NF9NQ1IyMEE9bQorQ09ORklHX0lFRUU4MDIxNTRfSFdTSU09bQorCisjCisjIFdpcmVs ZXNzIFdBTgorIworQ09ORklHX1dXQU49eQorQ09ORklHX1dXQU5fSFdTSU09bQorQ09ORklHX01I SV9XV0FOX0NUUkw9bQorQ09ORklHX01ISV9XV0FOX01CSU09bQorQ09ORklHX1JQTVNHX1dXQU5f Q1RSTD1tCisjIGVuZCBvZiBXaXJlbGVzcyBXQU4KKworQ09ORklHX1ZNWE5FVDM9bQorQ09ORklH X1VTQjRfTkVUPW0KK0NPTkZJR19ORVRERVZTSU09bQorQ09ORklHX05FVF9GQUlMT1ZFUj1tCisj IENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIwor Q09ORklHX0lOUFVUPXkKK0NPTkZJR19JTlBVVF9MRURTPXkKK0NPTkZJR19JTlBVVF9GRl9NRU1M RVNTPW0KK0NPTkZJR19JTlBVVF9TUEFSU0VLTUFQPW0KK0NPTkZJR19JTlBVVF9NQVRSSVhLTUFQ PW0KKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9 eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9T Q1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CitDT05GSUdf SU5QVVRfSk9ZREVWPW0KK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJV RyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBV VF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BREMgaXMgbm90IHNldAorQ09ORklHX0tF WUJPQVJEX0FEUDU1ODg9bQorQ09ORklHX0tFWUJPQVJEX0FEUDU1ODk9bQorQ09ORklHX0tFWUJP QVJEX0FUS0JEPXkKK0NPTkZJR19LRVlCT0FSRF9RVDEwNTA9bQorQ09ORklHX0tFWUJPQVJEX1FU MTA3MD1tCitDT05GSUdfS0VZQk9BUkRfUVQyMTYwPW0KK0NPTkZJR19LRVlCT0FSRF9ETElOS19E SVI2ODU9bQorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorQ09ORklHX0tFWUJP QVJEX0dQSU89bQorQ09ORklHX0tFWUJPQVJEX0dQSU9fUE9MTEVEPW0KK0NPTkZJR19LRVlCT0FS RF9UQ0E2NDE2PW0KK0NPTkZJR19LRVlCT0FSRF9UQ0E4NDE4PW0KK0NPTkZJR19LRVlCT0FSRF9N QVRSSVg9bQorQ09ORklHX0tFWUJPQVJEX0xNODMyMz1tCitDT05GSUdfS0VZQk9BUkRfTE04MzMz PW0KK0NPTkZJR19LRVlCT0FSRF9NQVg3MzU5PW0KK0NPTkZJR19LRVlCT0FSRF9NQ1M9bQorQ09O RklHX0tFWUJPQVJEX01QUjEyMT1tCitDT05GSUdfS0VZQk9BUkRfTkVXVE9OPW0KK0NPTkZJR19L RVlCT0FSRF9PUEVOQ09SRVM9bQorIyBDT05GSUdfS0VZQk9BUkRfU0FNU1VORyBpcyBub3Qgc2V0 CitDT05GSUdfS0VZQk9BUkRfR09MREZJU0hfRVZFTlRTPW0KKyMgQ09ORklHX0tFWUJPQVJEX1NU T1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9TVU5LQkQ9bQorQ09ORklHX0tFWUJP QVJEX0lRUzYyWD1tCisjIENPTkZJR19LRVlCT0FSRF9PTUFQNCBpcyBub3Qgc2V0CitDT05GSUdf S0VZQk9BUkRfVE0yX1RPVUNIS0VZPW0KK0NPTkZJR19LRVlCT0FSRF9YVEtCRD1tCitDT05GSUdf S0VZQk9BUkRfQ0FQMTFYWD1tCisjIENPTkZJR19LRVlCT0FSRF9CQ00gaXMgbm90IHNldAorQ09O RklHX0lOUFVUX01PVVNFPXkKK0NPTkZJR19NT1VTRV9QUzI9eQorQ09ORklHX01PVVNFX1BTMl9B TFBTPXkKK0NPTkZJR19NT1VTRV9QUzJfQllEPXkKK0NPTkZJR19NT1VTRV9QUzJfTE9HSVBTMlBQ PXkKK0NPTkZJR19NT1VTRV9QUzJfU1lOQVBUSUNTPXkKK0NPTkZJR19NT1VTRV9QUzJfU1lOQVBU SUNTX1NNQlVTPXkKK0NPTkZJR19NT1VTRV9QUzJfQ1lQUkVTUz15CitDT05GSUdfTU9VU0VfUFMy X1RSQUNLUE9JTlQ9eQorQ09ORklHX01PVVNFX1BTMl9FTEFOVEVDSD15CitDT05GSUdfTU9VU0Vf UFMyX0VMQU5URUNIX1NNQlVTPXkKK0NPTkZJR19NT1VTRV9QUzJfU0VOVEVMSUM9eQorQ09ORklH X01PVVNFX1BTMl9UT1VDSEtJVD15CitDT05GSUdfTU9VU0VfUFMyX0ZPQ0FMVEVDSD15CitDT05G SUdfTU9VU0VfUFMyX1NNQlVTPXkKK0NPTkZJR19NT1VTRV9TRVJJQUw9bQorQ09ORklHX01PVVNF X0FQUExFVE9VQ0g9bQorQ09ORklHX01PVVNFX0JDTTU5NzQ9bQorQ09ORklHX01PVVNFX0NZQVBB PW0KK0NPTkZJR19NT1VTRV9FTEFOX0kyQz1tCitDT05GSUdfTU9VU0VfRUxBTl9JMkNfSTJDPXkK K0NPTkZJR19NT1VTRV9FTEFOX0kyQ19TTUJVUz15CitDT05GSUdfTU9VU0VfVlNYWFhBQT1tCitD T05GSUdfTU9VU0VfR1BJTz1tCitDT05GSUdfTU9VU0VfU1lOQVBUSUNTX0kyQz1tCitDT05GSUdf TU9VU0VfU1lOQVBUSUNTX1VTQj1tCitDT05GSUdfSU5QVVRfSk9ZU1RJQ0s9eQorQ09ORklHX0pP WVNUSUNLX0FOQUxPRz1tCitDT05GSUdfSk9ZU1RJQ0tfQTNEPW0KK0NPTkZJR19KT1lTVElDS19B REM9bQorQ09ORklHX0pPWVNUSUNLX0FEST1tCitDT05GSUdfSk9ZU1RJQ0tfQ09CUkE9bQorQ09O RklHX0pPWVNUSUNLX0dGMks9bQorQ09ORklHX0pPWVNUSUNLX0dSSVA9bQorQ09ORklHX0pPWVNU SUNLX0dSSVBfTVA9bQorQ09ORklHX0pPWVNUSUNLX0dVSUxMRU1PVD1tCitDT05GSUdfSk9ZU1RJ Q0tfSU5URVJBQ1Q9bQorQ09ORklHX0pPWVNUSUNLX1NJREVXSU5ERVI9bQorQ09ORklHX0pPWVNU SUNLX1RNREM9bQorQ09ORklHX0pPWVNUSUNLX0lGT1JDRT1tCitDT05GSUdfSk9ZU1RJQ0tfSUZP UkNFX1VTQj1tCitDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFXzIzMj1tCitDT05GSUdfSk9ZU1RJQ0tf V0FSUklPUj1tCitDT05GSUdfSk9ZU1RJQ0tfTUFHRUxMQU49bQorQ09ORklHX0pPWVNUSUNLX1NQ QUNFT1JCPW0KK0NPTkZJR19KT1lTVElDS19TUEFDRUJBTEw9bQorQ09ORklHX0pPWVNUSUNLX1NU SU5HRVI9bQorQ09ORklHX0pPWVNUSUNLX1RXSURKT1k9bQorQ09ORklHX0pPWVNUSUNLX1pIRU5I VUE9bQorQ09ORklHX0pPWVNUSUNLX0RCOT1tCitDT05GSUdfSk9ZU1RJQ0tfR0FNRUNPTj1tCitD T05GSUdfSk9ZU1RJQ0tfVFVSQk9HUkFGWD1tCitDT05GSUdfSk9ZU1RJQ0tfQVM1MDExPW0KK0NP TkZJR19KT1lTVElDS19KT1lEVU1QPW0KK0NPTkZJR19KT1lTVElDS19YUEFEPW0KK0NPTkZJR19K T1lTVElDS19YUEFEX0ZGPXkKK0NPTkZJR19KT1lTVElDS19YUEFEX0xFRFM9eQorQ09ORklHX0pP WVNUSUNLX1dBTEtFUkEwNzAxPW0KK0NPTkZJR19KT1lTVElDS19QU1hQQURfU1BJPW0KK0NPTkZJ R19KT1lTVElDS19QU1hQQURfU1BJX0ZGPXkKK0NPTkZJR19KT1lTVElDS19QWFJDPW0KK0NPTkZJ R19KT1lTVElDS19RV0lJQz1tCitDT05GSUdfSk9ZU1RJQ0tfRlNJQTZCPW0KK0NPTkZJR19JTlBV VF9UQUJMRVQ9eQorQ09ORklHX1RBQkxFVF9VU0JfQUNFQ0FEPW0KK0NPTkZJR19UQUJMRVRfVVNC X0FJUFRFSz1tCitDT05GSUdfVEFCTEVUX1VTQl9IQU5XQU5HPW0KK0NPTkZJR19UQUJMRVRfVVNC X0tCVEFCPW0KK0NPTkZJR19UQUJMRVRfVVNCX1BFR0FTVVM9bQorQ09ORklHX1RBQkxFVF9TRVJJ QUxfV0FDT000PW0KK0NPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15CitDT05GSUdfVE9VQ0hTQ1JF RU5fQURTNzg0Nj1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9BRDc4NzcgaXMgbm90IHNldAorQ09O RklHX1RPVUNIU0NSRUVOX0FENzg3OT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQUQ3ODc5X0kyQz1t CisjIENPTkZJR19UT1VDSFNDUkVFTl9BRDc4NzlfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VD SFNDUkVFTl9BREM9bQorQ09ORklHX1RPVUNIU0NSRUVOX0FSMTAyMV9JMkM9bQorQ09ORklHX1RP VUNIU0NSRUVOX0FUTUVMX01YVD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQVVPX1BJWENJUj1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fQlUyMTAxMz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQlUyMTAyOT1t CitDT05GSUdfVE9VQ0hTQ1JFRU5fQ0hJUE9ORV9JQ044MzE4PW0KK0NPTkZJR19UT1VDSFNDUkVF Tl9DWThDVE1BMTQwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9DWThDVE1HMTEwPW0KK0NPTkZJR19U T1VDSFNDUkVFTl9DWVRUU1BfQ09SRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQX0kyQz1t CisjIENPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1BfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VD SFNDUkVFTl9DWVRUU1A0X0NPUkU9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRTUDRfSTJDPW0K KyMgQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRTUDRfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VD SFNDUkVFTl9EWU5BUFJPPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9IQU1QU0hJUkU9bQorQ09ORklH X1RPVUNIU0NSRUVOX0VFVEk9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUdBTEFYIGlzIG5vdCBz ZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9FR0FMQVhfU0VSSUFMPW0KK0NPTkZJR19UT1VDSFNDUkVF Tl9FWEMzMDAwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9GVUpJVFNVPW0KK0NPTkZJR19UT1VDSFND UkVFTl9HT09ESVg9bQorQ09ORklHX1RPVUNIU0NSRUVOX0dUOVhYPW0KK0NPTkZJR19UT1VDSFND UkVFTl9ISURFRVA9bQorQ09ORklHX1RPVUNIU0NSRUVOX0hZQ09OX0hZNDZYWD1tCitDT05GSUdf VE9VQ0hTQ1JFRU5fSUxJMjEwWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSUxJVEVLPW0KK0NPTkZJ R19UT1VDSFNDUkVFTl9TNlNZNzYxPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9HVU5aRT1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fRUtURjIxMjc9bQorQ09ORklHX1RPVUNIU0NSRUVOX0VMQU49bQorQ09O RklHX1RPVUNIU0NSRUVOX0VMTz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV0FDT01fVzgwMDE9bQor Q09ORklHX1RPVUNIU0NSRUVOX1dBQ09NX0kyQz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTUFYMTE4 MDE9bQorQ09ORklHX1RPVUNIU0NSRUVOX01DUzUwMDA9bQorQ09ORklHX1RPVUNIU0NSRUVOX01N UzExND1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTUVMRkFTX01JUDQ9bQorQ09ORklHX1RPVUNIU0NS RUVOX01TRzI2Mzg9bQorQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSD1tCisjIENPTkZJR19UT1VD SFNDUkVFTl9JTVg2VUxfVFNDIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9JTkVYSU89 bQorQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VO VD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRURUX0ZUNVgwNj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f VE9VQ0hSSUdIVD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU49bQorIyBDT05GSUdfVE9V Q0hTQ1JFRU5fVElfQU0zMzVYX1RTQyBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fUElY Q0lSPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9XRFQ4N1hYX0kyQz1tCitDT05GSUdfVE9VQ0hTQ1JF RU5fV005N1hYPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3MDU9eQorQ09ORklHX1RPVUNIU0NS RUVOX1dNOTcxMj15CitDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzEzPXkKK0NPTkZJR19UT1VDSFND UkVFTl9VU0JfQ09NUE9TSVRFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfRUdBTEFYPXkKK0NP TkZJR19UT1VDSFNDUkVFTl9VU0JfUEFOSklUPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfM009 eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9JVE09eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9F VFVSQk89eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9HVU5aRT15CitDT05GSUdfVE9VQ0hTQ1JF RU5fVVNCX0RNQ19UU0MxMD15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0lSVE9VQ0g9eQorQ09O RklHX1RPVUNIU0NSRUVOX1VTQl9JREVBTFRFSz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0dF TkVSQUxfVE9VQ0g9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9HT1RPUD15CitDT05GSUdfVE9V Q0hTQ1JFRU5fVVNCX0pBU1RFQz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VMTz15CitDT05G SUdfVE9VQ0hTQ1JFRU5fVVNCX0UyST15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX1pZVFJPTklD PXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfRVRUX1RDNDVVU0I9eQorQ09ORklHX1RPVUNIU0NS RUVOX1VTQl9ORVhJTz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VBU1lUT1VDSD15CitDT05G SUdfVE9VQ0hTQ1JFRU5fVE9VQ0hJVDIxMz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDX1NFUklP PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9UU0MyMDBYX0NPUkU9bQorQ09ORklHX1RPVUNIU0NSRUVO X1RTQzIwMDQ9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwNSBpcyBub3Qgc2V0CitDT05G SUdfVE9VQ0hTQ1JFRU5fVFNDMjAwNz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwN19JSU89 eQorQ09ORklHX1RPVUNIU0NSRUVOX1JNX1RTPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TSUxFQUQ9 bQorQ09ORklHX1RPVUNIU0NSRUVOX1NJU19JMkM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NUMTIz Mj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fU1RNRlRTPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX1NV UkZBQ0UzX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fU1g4NjU0PW0KK0NPTkZJ R19UT1VDSFNDUkVFTl9UUFM2NTA3WD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWkVUNjIyMz1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fWkZPUkNFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9ST0hNX0JVMjEw MjM9bQorQ09ORklHX1RPVUNIU0NSRUVOX0lRUzVYWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWklO SVRJWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVElOS0VSX0ZUNTQwNj1tCitDT05GSUdfSU5QVVRf TUlTQz15CitDT05GSUdfSU5QVVRfQUQ3MTRYPW0KK0NPTkZJR19JTlBVVF9BRDcxNFhfSTJDPW0K KyMgQ09ORklHX0lOUFVUX0FENzE0WF9TUEkgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0FUQzI2 MFhfT05LRVk9bQorQ09ORklHX0lOUFVUX0FUTUVMX0NBUFRPVUNIPW0KK0NPTkZJR19JTlBVVF9C TUExNTA9bQorIyBDT05GSUdfSU5QVVRfRTNYMF9CVVRUT04gaXMgbm90IHNldAorQ09ORklHX0lO UFVUX01BWDc3NjUwX09OS0VZPW0KK0NPTkZJR19JTlBVVF9NTUE4NDUwPW0KKyMgQ09ORklHX0lO UFVUX0dQSU9fQkVFUEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9HUElPX0RFQ09ERVI9bQor Q09ORklHX0lOUFVUX0dQSU9fVklCUkE9bQorQ09ORklHX0lOUFVUX0NQQ0FQX1BXUkJVVFRPTj1t CitDT05GSUdfSU5QVVRfQVRJX1JFTU9URTI9bQorQ09ORklHX0lOUFVUX0tFWVNQQU5fUkVNT1RF PW0KK0NPTkZJR19JTlBVVF9LWFRKOT1tCitDT05GSUdfSU5QVVRfUE9XRVJNQVRFPW0KK0NPTkZJ R19JTlBVVF9ZRUFMSU5LPW0KK0NPTkZJR19JTlBVVF9DTTEwOT1tCitDT05GSUdfSU5QVVRfUkVH VUxBVE9SX0hBUFRJQz1tCitDT05GSUdfSU5QVVRfQVhQMjBYX1BFSz1tCitDT05GSUdfSU5QVVRf VUlOUFVUPW0KK0NPTkZJR19JTlBVVF9QQ0Y4NTc0PW0KK0NPTkZJR19JTlBVVF9QV01fQkVFUEVS PW0KK0NPTkZJR19JTlBVVF9QV01fVklCUkE9bQorQ09ORklHX0lOUFVUX1JLODA1X1BXUktFWT1t CitDT05GSUdfSU5QVVRfR1BJT19ST1RBUllfRU5DT0RFUj1tCitDT05GSUdfSU5QVVRfREE3Mjgw X0hBUFRJQ1M9bQorQ09ORklHX0lOUFVUX0FEWEwzNFg9bQorQ09ORklHX0lOUFVUX0FEWEwzNFhf STJDPW0KK0NPTkZJR19JTlBVVF9BRFhMMzRYX1NQST1tCitDT05GSUdfSU5QVVRfSU1TX1BDVT1t CitDT05GSUdfSU5QVVRfSVFTMjY5QT1tCitDT05GSUdfSU5QVVRfSVFTNjI2QT1tCitDT05GSUdf SU5QVVRfQ01BMzAwMD1tCitDT05GSUdfSU5QVVRfQ01BMzAwMF9JMkM9bQorQ09ORklHX0lOUFVU X0RSVjI2MFhfSEFQVElDUz1tCitDT05GSUdfSU5QVVRfRFJWMjY2NV9IQVBUSUNTPW0KK0NPTkZJ R19JTlBVVF9EUlYyNjY3X0hBUFRJQ1M9bQorQ09ORklHX0lOUFVUX1NUUE1JQzFfT05LRVk9bQor Q09ORklHX1JNSTRfQ09SRT1tCitDT05GSUdfUk1JNF9JMkM9bQorQ09ORklHX1JNSTRfU1BJPW0K K0NPTkZJR19STUk0X1NNQj1tCitDT05GSUdfUk1JNF9GMDM9eQorQ09ORklHX1JNSTRfRjAzX1NF UklPPW0KK0NPTkZJR19STUk0XzJEX1NFTlNPUj15CitDT05GSUdfUk1JNF9GMTE9eQorQ09ORklH X1JNSTRfRjEyPXkKK0NPTkZJR19STUk0X0YzMD15CitDT05GSUdfUk1JNF9GMzQ9eQorQ09ORklH X1JNSTRfRjNBPXkKK0NPTkZJR19STUk0X0Y1NT15CisKKyMKKyMgSGFyZHdhcmUgSS9PIHBvcnRz CisjCitDT05GSUdfU0VSSU89eQorQ09ORklHX1NFUklPX1NFUlBPUlQ9bQorQ09ORklHX1NFUklP X1BBUktCRD1tCisjIENPTkZJR19TRVJJT19BTUJBS01JIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJ T19QQ0lQUzI9bQorQ09ORklHX1NFUklPX0xJQlBTMj15CitDT05GSUdfU0VSSU9fUkFXPW0KK0NP TkZJR19TRVJJT19BTFRFUkFfUFMyPW0KK0NPTkZJR19TRVJJT19QUzJNVUxUPW0KKyMgQ09ORklH X1NFUklPX0FSQ19QUzIgaXMgbm90IHNldAorQ09ORklHX1NFUklPX0FQQlBTMj1tCitDT05GSUdf U0VSSU9fR1BJT19QUzI9bQorQ09ORklHX1VTRVJJTz1tCitDT05GSUdfR0FNRVBPUlQ9bQorQ09O RklHX0dBTUVQT1JUX05TNTU4PW0KK0NPTkZJR19HQU1FUE9SVF9MND1tCitDT05GSUdfR0FNRVBP UlRfRU1VMTBLMT1tCitDT05GSUdfR0FNRVBPUlRfRk04MDE9bQorIyBlbmQgb2YgSGFyZHdhcmUg SS9PIHBvcnRzCisjIGVuZCBvZiBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorCisjCisjIENoYXJhY3Rl ciBkZXZpY2VzCisjCitDT05GSUdfVFRZPXkKK0NPTkZJR19WVD15CitDT05GSUdfQ09OU09MRV9U UkFOU0xBVElPTlM9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX1ZUX0NPTlNPTEVfU0xF RVA9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORz15 CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdB Q1lfUFRZX0NPVU5UPTAKK0NPTkZJR19MRElTQ19BVVRPTE9BRD15CisKKyMKKyMgU2VyaWFsIGRy aXZlcnMKKyMKK0NPTkZJR19TRVJJQUxfRUFSTFlDT049eQorQ09ORklHX1NFUklBTF84MjUwPXkK KyMgQ09ORklHX1NFUklBTF84MjUwX0RFUFJFQ0FURURfT1BUSU9OUyBpcyBub3Qgc2V0CisjIENP TkZJR19TRVJJQUxfODI1MF8xNjU1MEFfVkFSSUFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0VS SUFMXzgyNTBfRklOVEVLIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkK K0NPTkZJR19TRVJJQUxfODI1MF9ETUE9eQorQ09ORklHX1NFUklBTF84MjUwX1BDST15CitDT05G SUdfU0VSSUFMXzgyNTBfRVhBUj15CitDT05GSUdfU0VSSUFMXzgyNTBfQ1M9bQorQ09ORklHX1NF UklBTF84MjUwX05SX1VBUlRTPTMyCitDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0z MgorQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEPXkKKyMgQ09ORklHX1NFUklBTF84MjUwX01B TllfUE9SVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMXzgyNTBfQVNQRUVEX1ZVQVJUIGlz IG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9TSEFSRV9JUlE9eQorIyBDT05GSUdfU0VSSUFM XzgyNTBfREVURUNUX0lSUSBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfODI1MF9SU0EgaXMg bm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0RXTElCPXkKK0NPTkZJR19TRVJJQUxfODI1MF9E Vz15CisjIENPTkZJR19TRVJJQUxfODI1MF9SVDI4OFggaXMgbm90IHNldAorQ09ORklHX1NFUklB TF9PRl9QTEFURk9STT15CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIwor Q09ORklHX1NFUklBTF9BTUJBX1BMMDEwPXkKK0NPTkZJR19TRVJJQUxfQU1CQV9QTDAxMF9DT05T T0xFPXkKK0NPTkZJR19TRVJJQUxfQU1CQV9QTDAxMT15CitDT05GSUdfU0VSSUFMX0FNQkFfUEww MTFfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0VBUkxZQ09OX1JJU0NWX1NCST15CisjIENPTkZJ R19TRVJJQUxfS0dEQl9OTUkgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX01BWDMxMDAgaXMg bm90IHNldAorIyBDT05GSUdfU0VSSUFMX01BWDMxMFggaXMgbm90IHNldAorIyBDT05GSUdfU0VS SUFMX1VBUlRMSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VS SUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfQ09OU09MRV9QT0xMPXkKK0NPTkZJR19TRVJJQUxf SlNNPW0KK0NPTkZJR19TRVJJQUxfU0lGSVZFPXkKK0NPTkZJR19TRVJJQUxfU0lGSVZFX0NPTlNP TEU9eQorIyBDT05GSUdfU0VSSUFMX1NDQ05YUCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMX1ND MTZJUzdYWF9DT1JFPW0KK0NPTkZJR19TRVJJQUxfU0MxNklTN1hYPW0KK0NPTkZJR19TRVJJQUxf U0MxNklTN1hYX0kyQz15CitDT05GSUdfU0VSSUFMX1NDMTZJUzdYWF9TUEk9eQorQ09ORklHX1NF UklBTF9CQ002M1hYPXkKK0NPTkZJR19TRVJJQUxfQkNNNjNYWF9DT05TT0xFPXkKKyMgQ09ORklH X1NFUklBTF9BTFRFUkFfSlRBR1VBUlQgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX0FMVEVS QV9VQVJUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfWElMSU5YX1BTX1VBUlQ9eQorQ09ORklH X1NFUklBTF9YSUxJTlhfUFNfVUFSVF9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF9BUkMgaXMg bm90IHNldAorQ09ORklHX1NFUklBTF9SUDI9bQorQ09ORklHX1NFUklBTF9SUDJfTlJfVUFSVFM9 MzIKK0NPTkZJR19TRVJJQUxfRlNMX0xQVUFSVD1tCitDT05GSUdfU0VSSUFMX0ZTTF9MSU5GTEVY VUFSVD15CitDT05GSUdfU0VSSUFMX0ZTTF9MSU5GTEVYVUFSVF9DT05TT0xFPXkKKyMgQ09ORklH X1NFUklBTF9DT05FWEFOVF9ESUdJQ09MT1IgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9TUFJE PXkKK0NPTkZJR19TRVJJQUxfU1BSRF9DT05TT0xFPXkKKyMgZW5kIG9mIFNlcmlhbCBkcml2ZXJz CisKK0NPTkZJR19TRVJJQUxfTUNUUkxfR1BJTz15CitDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJE PXkKK0NPTkZJR19NT1hBX0lOVEVMTElPPW0KK0NPTkZJR19NT1hBX1NNQVJUSU89bQorQ09ORklH X1NZTkNMSU5LX0dUPW0KK0NPTkZJR19OX0hETEM9bQorQ09ORklHX0dPTERGSVNIX1RUWT1tCitD T05GSUdfTl9HU009bQorQ09ORklHX05PWk9NST1tCitDT05GSUdfTlVMTF9UVFk9bQorQ09ORklH X0hWQ19EUklWRVI9eQorQ09ORklHX0hWQ19SSVNDVl9TQkk9eQorQ09ORklHX1NFUklBTF9ERVZf QlVTPXkKK0NPTkZJR19TRVJJQUxfREVWX0NUUkxfVFRZUE9SVD15CisjIENPTkZJR19UVFlfUFJJ TlRLIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEVSPW0KKyMgQ09ORklHX0xQX0NPTlNPTEUgaXMg bm90IHNldAorQ09ORklHX1BQREVWPW0KK0NPTkZJR19WSVJUSU9fQ09OU09MRT15CitDT05GSUdf SVBNSV9IQU5ETEVSPW0KK0NPTkZJR19JUE1JX1BMQVRfREFUQT15CitDT05GSUdfSVBNSV9QQU5J Q19FVkVOVD15CisjIENPTkZJR19JUE1JX1BBTklDX1NUUklORyBpcyBub3Qgc2V0CitDT05GSUdf SVBNSV9ERVZJQ0VfSU5URVJGQUNFPW0KK0NPTkZJR19JUE1JX1NJPW0KK0NPTkZJR19JUE1JX1NT SUY9bQorQ09ORklHX0lQTUlfV0FUQ0hET0c9bQorQ09ORklHX0lQTUlfUE9XRVJPRkY9bQorQ09O RklHX0lQTUJfREVWSUNFX0lOVEVSRkFDRT1tCitDT05GSUdfSFdfUkFORE9NPXkKK0NPTkZJR19I V19SQU5ET01fVElNRVJJT01FTT1tCitDT05GSUdfSFdfUkFORE9NX0JBNDMxPW0KK0NPTkZJR19I V19SQU5ET01fVklSVElPPW0KK0NPTkZJR19IV19SQU5ET01fQ0NUUk5HPW0KK0NPTkZJR19IV19S QU5ET01fWElQSEVSQT1tCitDT05GSUdfSFdfUkFORE9NX1NUQVJGSVZFPXkKK0NPTkZJR19BUFBM SUNPTT1tCisKKyMKKyMgUENNQ0lBIGNoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfU1lOQ0xJ TktfQ1M9bQorQ09ORklHX0NBUkRNQU5fNDAwMD1tCitDT05GSUdfQ0FSRE1BTl80MDQwPW0KK0NP TkZJR19TQ1IyNFg9bQorQ09ORklHX0lQV0lSRUxFU1M9bQorIyBlbmQgb2YgUENNQ0lBIGNoYXJh Y3RlciBkZXZpY2VzCisKK0NPTkZJR19ERVZNRU09eQorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklH X1RDR19UUE09eQorQ09ORklHX0hXX1JBTkRPTV9UUE09eQorQ09ORklHX1RDR19USVNfQ09SRT15 CitDT05GSUdfVENHX1RJUz15CitDT05GSUdfVENHX1RJU19TUEk9bQorQ09ORklHX1RDR19USVNf U1BJX0NSNTA9eQorQ09ORklHX1RDR19USVNfSTJDX0NSNTA9bQorQ09ORklHX1RDR19USVNfSTJD X0FUTUVMPW0KK0NPTkZJR19UQ0dfVElTX0kyQ19JTkZJTkVPTj1tCitDT05GSUdfVENHX1RJU19J MkNfTlVWT1RPTj1tCitDT05GSUdfVENHX0FUTUVMPW0KK0NPTkZJR19UQ0dfVlRQTV9QUk9YWT1t CitDT05GSUdfVENHX1RJU19TVDMzWlAyND1tCitDT05GSUdfVENHX1RJU19TVDMzWlAyNF9JMkM9 bQorQ09ORklHX1RDR19USVNfU1QzM1pQMjRfU1BJPW0KK0NPTkZJR19YSUxMWUJVU19DTEFTUz1t CitDT05GSUdfWElMTFlCVVM9bQorQ09ORklHX1hJTExZQlVTX1BDSUU9bQorQ09ORklHX1hJTExZ QlVTX09GPW0KK0NPTkZJR19YSUxMWVVTQj1tCitDT05GSUdfUkFORE9NX1RSVVNUX0JPT1RMT0FE RVI9eQorIyBlbmQgb2YgQ2hhcmFjdGVyIGRldmljZXMKKworIworIyBJMkMgc3VwcG9ydAorIwor Q09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CisjIENPTkZJR19JMkNfQ09NUEFU IGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfQ0hBUkRFVj1tCitDT05GSUdfSTJDX01VWD1tCisKKyMK KyMgTXVsdGlwbGV4ZXIgSTJDIENoaXAgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0FSQl9HUElP X0NIQUxMRU5HRSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX01VWF9HUElPPW0KK0NPTkZJR19JMkNf TVVYX0dQTVVYPW0KK0NPTkZJR19JMkNfTVVYX0xUQzQzMDY9bQorQ09ORklHX0kyQ19NVVhfUENB OTU0MT1tCitDT05GSUdfSTJDX01VWF9QQ0E5NTR4PW0KKyMgQ09ORklHX0kyQ19NVVhfUElOQ1RS TCBpcyBub3Qgc2V0CitDT05GSUdfSTJDX01VWF9SRUc9bQorQ09ORklHX0kyQ19ERU1VWF9QSU5D VFJMPW0KK0NPTkZJR19JMkNfTVVYX01MWENQTEQ9bQorIyBlbmQgb2YgTXVsdGlwbGV4ZXIgSTJD IENoaXAgc3VwcG9ydAorCitDT05GSUdfSTJDX0hFTFBFUl9BVVRPPXkKK0NPTkZJR19JMkNfU01C VVM9bQorQ09ORklHX0kyQ19BTEdPQklUPXkKK0NPTkZJR19JMkNfQUxHT1BDQT1tCisKKyMKKyMg STJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisKKyMKKyMgUEMgU01CdXMgaG9zdCBjb250cm9s bGVyIGRyaXZlcnMKKyMKK0NPTkZJR19JMkNfQUxJMTUzNT1tCitDT05GSUdfSTJDX0FMSTE1NjM9 bQorQ09ORklHX0kyQ19BTEkxNVgzPW0KK0NPTkZJR19JMkNfQU1ENzU2PW0KK0NPTkZJR19JMkNf QU1EODExMT1tCitDT05GSUdfSTJDX0k4MDE9bQorQ09ORklHX0kyQ19JU0NIPW0KK0NPTkZJR19J MkNfUElJWDQ9bQorQ09ORklHX0kyQ19ORk9SQ0UyPW0KK0NPTkZJR19JMkNfTlZJRElBX0dQVT1t CitDT05GSUdfSTJDX1NJUzU1OTU9bQorQ09ORklHX0kyQ19TSVM2MzA9bQorQ09ORklHX0kyQ19T SVM5Nlg9bQorIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1ZJQVBSTz1t CisKKyMKKyMgSTJDIHN5c3RlbSBidXMgZHJpdmVycyAobW9zdGx5IGVtYmVkZGVkIC8gc3lzdGVt LW9uLWNoaXApCisjCitDT05GSUdfSTJDX0NCVVNfR1BJTz1tCitDT05GSUdfSTJDX0RFU0lHTldB UkVfQ09SRT15CitDT05GSUdfSTJDX0RFU0lHTldBUkVfU0xBVkU9eQorQ09ORklHX0kyQ19ERVNJ R05XQVJFX1BMQVRGT1JNPXkKK0NPTkZJR19JMkNfREVTSUdOV0FSRV9QQ0k9bQorIyBDT05GSUdf STJDX0VNRVYyIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfR1BJTz1tCisjIENPTkZJR19JMkNfR1BJ T19GQVVMVF9JTkpFQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfSTJDX0tFTVBMRD1tCisjIENPTkZJ R19JMkNfTk9NQURJSyBpcyBub3Qgc2V0CitDT05GSUdfSTJDX09DT1JFUz1tCitDT05GSUdfSTJD X1BDQV9QTEFURk9STT1tCitDT05GSUdfSTJDX1JLM1g9bQorIyBDT05GSUdfSTJDX1NJTVRFQyBp cyBub3Qgc2V0CitDT05GSUdfSTJDX1hJTElOWD1tCisKKyMKKyMgRXh0ZXJuYWwgSTJDL1NNQnVz IGFkYXB0ZXIgZHJpdmVycworIworQ09ORklHX0kyQ19ESU9MQU5fVTJDPW0KK0NPTkZJR19JMkNf RExOMj1tCitDT05GSUdfSTJDX0NQMjYxNT1tCitDT05GSUdfSTJDX1BBUlBPUlQ9bQorQ09ORklH X0kyQ19ST0JPVEZVWlpfT1NJRj1tCitDT05GSUdfSTJDX1RBT1NfRVZNPW0KK0NPTkZJR19JMkNf VElOWV9VU0I9bQorQ09ORklHX0kyQ19WSVBFUkJPQVJEPW0KKworIworIyBPdGhlciBJMkMvU01C dXMgYnVzIGRyaXZlcnMKKyMKK0NPTkZJR19JMkNfVklSVElPPW0KKyMgZW5kIG9mIEkyQyBIYXJk d2FyZSBCdXMgc3VwcG9ydAorCitDT05GSUdfSTJDX1NUVUI9bQorQ09ORklHX0kyQ19TTEFWRT15 CitDT05GSUdfSTJDX1NMQVZFX0VFUFJPTT1tCitDT05GSUdfSTJDX1NMQVZFX1RFU1RVTklUPW0K KyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19B TEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBlbmQg b2YgSTJDIHN1cHBvcnQKKworQ09ORklHX0kzQz1tCitDT05GSUdfQ0ROU19JM0NfTUFTVEVSPW0K K0NPTkZJR19EV19JM0NfTUFTVEVSPW0KK0NPTkZJR19TVkNfSTNDX01BU1RFUj1tCitDT05GSUdf TUlQSV9JM0NfSENJPW0KK0NPTkZJR19TUEk9eQorIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBz ZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKK0NPTkZJR19TUElfTUVNPXkKKworIworIyBTUEkgTWFz dGVyIENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfU1BJX0FMVEVSQSBpcyBub3Qgc2V0 CitDT05GSUdfU1BJX0FMVEVSQV9DT1JFPW0KK0NPTkZJR19TUElfQUxURVJBX0RGTD1tCisjIENP TkZJR19TUElfQVhJX1NQSV9FTkdJTkUgaXMgbm90IHNldAorQ09ORklHX1NQSV9CSVRCQU5HPW0K KyMgQ09ORklHX1NQSV9CVVRURVJGTFkgaXMgbm90IHNldAorQ09ORklHX1NQSV9DQURFTkNFPW0K K0NPTkZJR19TUElfQ0FERU5DRV9RVUFEU1BJPW0KK0NPTkZJR19TUElfREVTSUdOV0FSRT1tCitD T05GSUdfU1BJX0RXX0RNQT15CitDT05GSUdfU1BJX0RXX1BDST1tCitDT05GSUdfU1BJX0RXX01N SU89bQorQ09ORklHX1NQSV9ETE4yPW0KK0NPTkZJR19TUElfTlhQX0ZMRVhTUEk9bQorQ09ORklH X1NQSV9HUElPPW0KKyMgQ09ORklHX1NQSV9MTTcwX0xMUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJ X0ZTTF9MSUI9eQorQ09ORklHX1NQSV9GU0xfU1BJPXkKK0NPTkZJR19TUElfT0NfVElOWT1tCitD T05GSUdfU1BJX1BMMDIyPW0KK0NPTkZJR19TUElfUEwwMjJfU1RBUkZJVkU9eQorIyBDT05GSUdf U1BJX1BYQTJYWCBpcyBub3Qgc2V0CitDT05GSUdfU1BJX1JPQ0tDSElQPW0KK0NPTkZJR19TUElf U0MxOElTNjAyPW0KK0NPTkZJR19TUElfU0lGSVZFPW0KK0NPTkZJR19TUElfTVhJQz1tCitDT05G SUdfU1BJX1hDT01NPW0KK0NPTkZJR19TUElfWElMSU5YPW0KK0NPTkZJR19TUElfWllOUU1QX0dR U1BJPW0KK0NPTkZJR19TUElfQU1EPW0KKworIworIyBTUEkgTXVsdGlwbGV4ZXIgc3VwcG9ydAor IworQ09ORklHX1NQSV9NVVg9bQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCitDT05G SUdfU1BJX1NQSURFVj1tCitDT05GSUdfU1BJX0xPT1BCQUNLX1RFU1Q9bQorIyBDT05GSUdfU1BJ X1RMRTYyWDAgaXMgbm90IHNldAorQ09ORklHX1NQSV9TTEFWRT15CitDT05GSUdfU1BJX1NMQVZF X1RJTUU9bQorQ09ORklHX1NQSV9TTEFWRV9TWVNURU1fQ09OVFJPTD1tCitDT05GSUdfU1BJX0RZ TkFNSUM9eQorQ09ORklHX1NQTUk9bQorQ09ORklHX1NQTUlfSElTSTM2NzA9bQorQ09ORklHX0hT ST1tCitDT05GSUdfSFNJX0JPQVJESU5GTz15CisKKyMKKyMgSFNJIGNvbnRyb2xsZXJzCisjCisK KyMKKyMgSFNJIGNsaWVudHMKKyMKK0NPTkZJR19IU0lfQ0hBUj1tCitDT05GSUdfUFBTPXkKKyMg Q09ORklHX1BQU19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUFBTIGNsaWVudHMgc3VwcG9ydAor IworIyBDT05GSUdfUFBTX0NMSUVOVF9LVElNRVIgaXMgbm90IHNldAorQ09ORklHX1BQU19DTElF TlRfTERJU0M9bQorQ09ORklHX1BQU19DTElFTlRfUEFSUE9SVD1tCitDT05GSUdfUFBTX0NMSUVO VF9HUElPPW0KKworIworIyBQUFMgZ2VuZXJhdG9ycyBzdXBwb3J0CisjCisKKyMKKyMgUFRQIGNs b2NrIHN1cHBvcnQKKyMKK0NPTkZJR19QVFBfMTU4OF9DTE9DSz15CitDT05GSUdfUFRQXzE1ODhf Q0xPQ0tfT1BUSU9OQUw9eQorCisjCisjIEVuYWJsZSBQSFlMSUIgYW5kIE5FVFdPUktfUEhZX1RJ TUVTVEFNUElORyB0byBzZWUgdGhlIGFkZGl0aW9uYWwgY2xvY2tzLgorIworQ09ORklHX1BUUF8x NTg4X0NMT0NLX0lEVDgyUDMzPW0KK0NPTkZJR19QVFBfMTU4OF9DTE9DS19JRFRDTT1tCitDT05G SUdfUFRQXzE1ODhfQ0xPQ0tfT0NQPW0KKyMgZW5kIG9mIFBUUCBjbG9jayBzdXBwb3J0CisKK0NP TkZJR19QSU5DVFJMPXkKK0NPTkZJR19HRU5FUklDX1BJTkNUUkxfR1JPVVBTPXkKK0NPTkZJR19Q SU5NVVg9eQorQ09ORklHX0dFTkVSSUNfUElOTVVYX0ZVTkNUSU9OUz15CitDT05GSUdfUElOQ09O Rj15CitDT05GSUdfR0VORVJJQ19QSU5DT05GPXkKKyMgQ09ORklHX0RFQlVHX1BJTkNUUkwgaXMg bm90IHNldAorQ09ORklHX1BJTkNUUkxfQVhQMjA5PW0KK0NPTkZJR19QSU5DVFJMX01DUDIzUzA4 X0kyQz1tCitDT05GSUdfUElOQ1RSTF9NQ1AyM1MwOF9TUEk9bQorQ09ORklHX1BJTkNUUkxfTUNQ MjNTMDg9bQorQ09ORklHX1BJTkNUUkxfU0lOR0xFPXkKK0NPTkZJR19QSU5DVFJMX1NYMTUwWD15 CitDT05GSUdfUElOQ1RSTF9TVE1GWD1tCitDT05GSUdfUElOQ1RSTF9NQVg3NzYyMD1tCitDT05G SUdfUElOQ1RSTF9SSzgwNT1tCisjIENPTkZJR19QSU5DVFJMX09DRUxPVCBpcyBub3Qgc2V0CitD T05GSUdfUElOQ1RSTF9NSUNST0NISVBfU0dQSU89eQorCisjCisjIFJlbmVzYXMgcGluY3RybCBk cml2ZXJzCisjCisjIGVuZCBvZiBSZW5lc2FzIHBpbmN0cmwgZHJpdmVycworCitDT05GSUdfUElO Q1RSTF9MT0NITkFHQVI9bQorQ09ORklHX1BJTkNUUkxfTUFERVJBPW0KK0NPTkZJR19QSU5DVFJM X0NTNDdMMTU9eQorQ09ORklHX1BJTkNUUkxfQ1M0N0wzNT15CitDT05GSUdfUElOQ1RSTF9DUzQ3 TDg1PXkKK0NPTkZJR19QSU5DVFJMX0NTNDdMOTA9eQorQ09ORklHX1BJTkNUUkxfQ1M0N0w5Mj15 CitDT05GSUdfUElOQ1RSTF9TVEFSRklWRT15CitDT05GSUdfUElOQ1RSTF9TVEFSRklWRV9KSDcx MTA9eQorQ09ORklHX0dQSU9MSUI9eQorQ09ORklHX0dQSU9MSUJfRkFTVFBBVEhfTElNSVQ9NTEy CitDT05GSUdfT0ZfR1BJTz15CitDT05GSUdfR1BJT0xJQl9JUlFDSElQPXkKKyMgQ09ORklHX0RF QlVHX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0dQSU9fU1lTRlM9eQorQ09ORklHX0dQSU9fQ0RF Vj15CitDT05GSUdfR1BJT19DREVWX1YxPXkKK0NPTkZJR19HUElPX0dFTkVSSUM9eQorQ09ORklH X0dQSU9fTUFYNzMwWD1tCisKKyMKKyMgTWVtb3J5IG1hcHBlZCBHUElPIGRyaXZlcnMKKyMKK0NP TkZJR19HUElPXzc0WFhfTU1JTz1tCisjIENPTkZJR19HUElPX0FMVEVSQSBpcyBub3Qgc2V0CitD T05GSUdfR1BJT19DQURFTkNFPW0KK0NPTkZJR19HUElPX0RXQVBCPW0KKyMgQ09ORklHX0dQSU9f RVhBUiBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19GVEdQSU8wMTA9eQorQ09ORklHX0dQSU9fR0VO RVJJQ19QTEFURk9STT15CitDT05GSUdfR1BJT19HUkdQSU89bQorIyBDT05GSUdfR1BJT19ITFdE IGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9fTE9HSUNWQyBpcyBub3Qgc2V0CitDT05GSUdfR1BJ T19NQjg2UzdYPW0KK0NPTkZJR19HUElPX1BMMDYxPXkKKyMgQ09ORklHX0dQSU9fU0FNQTVEMl9Q SU9CVSBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPX1NJRklWRSBpcyBub3Qgc2V0CitDT05GSUdf R1BJT19TVEFSRklWRV9KSDcxMTA9eQorQ09ORklHX0dQSU9fU1lTQ09OPW0KK0NPTkZJR19HUElP X1hJTElOWD1tCisjIENPTkZJR19HUElPX0FNRF9GQ0ggaXMgbm90IHNldAorIyBlbmQgb2YgTWVt b3J5IG1hcHBlZCBHUElPIGRyaXZlcnMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnMKKyMKK0NP TkZJR19HUElPX0FEUDU1ODg9bQorIyBDT05GSUdfR1BJT19BRE5QIGlzIG5vdCBzZXQKK0NPTkZJ R19HUElPX0dXX1BMRD1tCitDT05GSUdfR1BJT19NQVg3MzAwPW0KK0NPTkZJR19HUElPX01BWDcz Mlg9bQorQ09ORklHX0dQSU9fUENBOTUzWD1tCitDT05GSUdfR1BJT19QQ0E5NTNYX0lSUT15CitD T05GSUdfR1BJT19QQ0E5NTcwPW0KK0NPTkZJR19HUElPX1BDRjg1N1g9bQorQ09ORklHX0dQSU9f VFBJQzI4MTA9bQorIyBlbmQgb2YgSTJDIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgTUZEIEdQSU8g ZXhwYW5kZXJzCisjCitDT05GSUdfR1BJT19CRDcwNTI4PW0KK0NPTkZJR19HUElPX0JENzE4MTU9 bQorQ09ORklHX0dQSU9fQkQ3MTgyOD1tCitDT05GSUdfR1BJT19CRDk1NzFNV1Y9bQorQ09ORklH X0dQSU9fRExOMj1tCitDT05GSUdfR1BJT19LRU1QTEQ9bQorQ09ORklHX0dQSU9fTFAzOTQzPW0K K0NPTkZJR19HUElPX0xQODczWD1tCitDT05GSUdfR1BJT19MUDg3NTY1PW0KK0NPTkZJR19HUElP X01BREVSQT1tCitDT05GSUdfR1BJT19NQVg3NzYyMD1tCitDT05GSUdfR1BJT19NQVg3NzY1MD1t CitDT05GSUdfR1BJT19UUU1YODY9bQorIyBDT05GSUdfR1BJT19XTTg5OTQgaXMgbm90IHNldAor IyBlbmQgb2YgTUZEIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgUENJIEdQSU8gZXhwYW5kZXJzCisj CisjIENPTkZJR19HUElPX0JUOFhYIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1BDSV9JRElPXzE2 PW0KK0NPTkZJR19HUElPX1BDSUVfSURJT18yND1tCisjIENPTkZJR19HUElPX1JEQzMyMVggaXMg bm90IHNldAorIyBlbmQgb2YgUENJIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgU1BJIEdQSU8gZXhw YW5kZXJzCisjCisjIENPTkZJR19HUElPXzc0WDE2NCBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19N QVgzMTkxWD1tCisjIENPTkZJR19HUElPX01BWDczMDEgaXMgbm90IHNldAorIyBDT05GSUdfR1BJ T19NQzMzODgwIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1BJU09TUj1tCitDT05GSUdfR1BJT19Y UkExNDAzPW0KK0NPTkZJR19HUElPX01PWFRFVD1tCisjIGVuZCBvZiBTUEkgR1BJTyBleHBhbmRl cnMKKworIworIyBVU0IgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1ZJUEVSQk9BUkQ9 bQorIyBlbmQgb2YgVVNCIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgVmlydHVhbCBHUElPIGRyaXZl cnMKKyMKK0NPTkZJR19HUElPX0FHR1JFR0FUT1I9bQorQ09ORklHX0dQSU9fTU9DS1VQPW0KK0NP TkZJR19HUElPX1ZJUlRJTz1tCisjIGVuZCBvZiBWaXJ0dWFsIEdQSU8gZHJpdmVycworCitDT05G SUdfVzE9bQorQ09ORklHX1cxX0NPTj15CisKKyMKKyMgMS13aXJlIEJ1cyBNYXN0ZXJzCisjCitD T05GSUdfVzFfTUFTVEVSX01BVFJPWD1tCitDT05GSUdfVzFfTUFTVEVSX0RTMjQ5MD1tCitDT05G SUdfVzFfTUFTVEVSX0RTMjQ4Mj1tCitDT05GSUdfVzFfTUFTVEVSX0RTMVdNPW0KK0NPTkZJR19X MV9NQVNURVJfR1BJTz1tCisjIENPTkZJR19XMV9NQVNURVJfU0dJIGlzIG5vdCBzZXQKKyMgZW5k IG9mIDEtd2lyZSBCdXMgTWFzdGVycworCisjCisjIDEtd2lyZSBTbGF2ZXMKKyMKK0NPTkZJR19X MV9TTEFWRV9USEVSTT1tCitDT05GSUdfVzFfU0xBVkVfU01FTT1tCitDT05GSUdfVzFfU0xBVkVf RFMyNDA1PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MDg9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQw OF9SRUFEQkFDSz15CitDT05GSUdfVzFfU0xBVkVfRFMyNDEzPW0KK0NPTkZJR19XMV9TTEFWRV9E UzI0MDY9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQyMz1tCitDT05GSUdfVzFfU0xBVkVfRFMyODA1 PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MzA9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQzMT1tCitD T05GSUdfVzFfU0xBVkVfRFMyNDMzPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MzNfQ1JDPXkKK0NP TkZJR19XMV9TTEFWRV9EUzI0Mzg9bQorQ09ORklHX1cxX1NMQVZFX0RTMjUwWD1tCitDT05GSUdf VzFfU0xBVkVfRFMyNzgwPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI3ODE9bQorQ09ORklHX1cxX1NM QVZFX0RTMjhFMDQ9bQorQ09ORklHX1cxX1NMQVZFX0RTMjhFMTc9bQorIyBlbmQgb2YgMS13aXJl IFNsYXZlcworCitDT05GSUdfUE9XRVJfUkVTRVQ9eQorQ09ORklHX1BPV0VSX1JFU0VUX0FUQzI2 MFg9bQorQ09ORklHX1BPV0VSX1JFU0VUX0dQSU89eQorQ09ORklHX1BPV0VSX1JFU0VUX0dQSU9f UkVTVEFSVD15CitDT05GSUdfUE9XRVJfUkVTRVRfTFRDMjk1Mj15CitDT05GSUdfUE9XRVJfUkVT RVRfUkVHVUxBVE9SPXkKK0NPTkZJR19QT1dFUl9SRVNFVF9SRVNUQVJUPXkKK0NPTkZJR19QT1dF Ul9SRVNFVF9TWVNDT049eQorQ09ORklHX1BPV0VSX1JFU0VUX1NZU0NPTl9QT1dFUk9GRj15CitD T05GSUdfUkVCT09UX01PREU9bQorQ09ORklHX1NZU0NPTl9SRUJPT1RfTU9ERT1tCitDT05GSUdf TlZNRU1fUkVCT09UX01PREU9bQorQ09ORklHX1BPV0VSX1NVUFBMWT15CisjIENPTkZJR19QT1dF Ul9TVVBQTFlfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BPV0VSX1NVUFBMWV9IV01PTj15CitD T05GSUdfUERBX1BPV0VSPW0KKyMgQ09ORklHX0dFTkVSSUNfQURDX0JBVFRFUlkgaXMgbm90IHNl dAorIyBDT05GSUdfVEVTVF9QT1dFUiBpcyBub3Qgc2V0CitDT05GSUdfQ0hBUkdFUl9BRFA1MDYx PW0KK0NPTkZJR19CQVRURVJZX0NQQ0FQPW0KK0NPTkZJR19CQVRURVJZX0NXMjAxNT1tCitDT05G SUdfQkFUVEVSWV9EUzI3NjA9bQorQ09ORklHX0JBVFRFUllfRFMyNzgwPW0KK0NPTkZJR19CQVRU RVJZX0RTMjc4MT1tCitDT05GSUdfQkFUVEVSWV9EUzI3ODI9bQorQ09ORklHX0JBVFRFUllfU0JT PW0KK0NPTkZJR19DSEFSR0VSX1NCUz1tCitDT05GSUdfTUFOQUdFUl9TQlM9bQorQ09ORklHX0JB VFRFUllfQlEyN1hYWD1tCitDT05GSUdfQkFUVEVSWV9CUTI3WFhYX0kyQz1tCitDT05GSUdfQkFU VEVSWV9CUTI3WFhYX0hEUT1tCisjIENPTkZJR19CQVRURVJZX0JRMjdYWFhfRFRfVVBEQVRFU19O Vk0gaXMgbm90IHNldAorQ09ORklHX0NIQVJHRVJfQVhQMjBYPW0KK0NPTkZJR19CQVRURVJZX0FY UDIwWD1tCitDT05GSUdfQVhQMjBYX1BPV0VSPW0KK0NPTkZJR19CQVRURVJZX01BWDE3MDQwPW0K K0NPTkZJR19CQVRURVJZX01BWDE3MDQyPW0KK0NPTkZJR19CQVRURVJZX01BWDE3MjFYPW0KK0NP TkZJR19DSEFSR0VSX0lTUDE3MDQ9bQorQ09ORklHX0NIQVJHRVJfTUFYODkwMz1tCitDT05GSUdf Q0hBUkdFUl9MUDg3Mjc9bQorQ09ORklHX0NIQVJHRVJfR1BJTz1tCisjIENPTkZJR19DSEFSR0VS X01BTkFHRVIgaXMgbm90IHNldAorQ09ORklHX0NIQVJHRVJfTFQzNjUxPW0KK0NPTkZJR19DSEFS R0VSX0xUQzQxNjJMPW0KK0NPTkZJR19DSEFSR0VSX0RFVEVDVE9SX01BWDE0NjU2PW0KK0NPTkZJ R19DSEFSR0VSX01BWDc3NjUwPW0KK0NPTkZJR19DSEFSR0VSX01QMjYyOT1tCisjIENPTkZJR19D SEFSR0VSX0JRMjQxNVggaXMgbm90IHNldAorQ09ORklHX0NIQVJHRVJfQlEyNDE5MD1tCitDT05G SUdfQ0hBUkdFUl9CUTI0MjU3PW0KK0NPTkZJR19DSEFSR0VSX0JRMjQ3MzU9bQorQ09ORklHX0NI QVJHRVJfQlEyNTE1WD1tCitDT05GSUdfQ0hBUkdFUl9CUTI1ODkwPW0KK0NPTkZJR19DSEFSR0VS X0JRMjU5ODA9bQorQ09ORklHX0NIQVJHRVJfQlEyNTZYWD1tCitDT05GSUdfQ0hBUkdFUl9TTUIz NDc9bQorIyBDT05GSUdfQkFUVEVSWV9HQVVHRV9MVEMyOTQxIGlzIG5vdCBzZXQKKyMgQ09ORklH X0JBVFRFUllfR09MREZJU0ggaXMgbm90IHNldAorQ09ORklHX0JBVFRFUllfUlQ1MDMzPW0KK0NP TkZJR19DSEFSR0VSX1JUOTQ1NT1tCitDT05GSUdfQ0hBUkdFUl9VQ1MxMDAyPW0KK0NPTkZJR19D SEFSR0VSX0JEOTk5NTQ9bQorQ09ORklHX0hXTU9OPXkKK0NPTkZJR19IV01PTl9WSUQ9bQorIyBD T05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisKKyMKKyMgTmF0aXZlIGRyaXZlcnMK KyMKKyMgQ09ORklHX1NFTlNPUlNfQUQ3MzE0IGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0FE NzQxND1tCitDT05GSUdfU0VOU09SU19BRDc0MTg9bQorQ09ORklHX1NFTlNPUlNfQURNMTAyMT1t CitDT05GSUdfU0VOU09SU19BRE0xMDI1PW0KK0NPTkZJR19TRU5TT1JTX0FETTEwMjY9bQorQ09O RklHX1NFTlNPUlNfQURNMTAyOT1tCitDT05GSUdfU0VOU09SU19BRE0xMDMxPW0KK0NPTkZJR19T RU5TT1JTX0FETTExNzc9bQorQ09ORklHX1NFTlNPUlNfQURNOTI0MD1tCitDT05GSUdfU0VOU09S U19BRFQ3WDEwPW0KKyMgQ09ORklHX1NFTlNPUlNfQURUNzMxMCBpcyBub3Qgc2V0CitDT05GSUdf U0VOU09SU19BRFQ3NDEwPW0KK0NPTkZJR19TRU5TT1JTX0FEVDc0MTE9bQorQ09ORklHX1NFTlNP UlNfQURUNzQ2Mj1tCitDT05GSUdfU0VOU09SU19BRFQ3NDcwPW0KK0NPTkZJR19TRU5TT1JTX0FE VDc0NzU9bQorQ09ORklHX1NFTlNPUlNfQUhUMTA9bQorQ09ORklHX1NFTlNPUlNfQVFVQUNPTVBV VEVSX0Q1TkVYVD1tCitDT05GSUdfU0VOU09SU19BUzM3MD1tCitDT05GSUdfU0VOU09SU19BU0M3 NjIxPW0KK0NPTkZJR19TRU5TT1JTX0FYSV9GQU5fQ09OVFJPTD1tCitDT05GSUdfU0VOU09SU19B U1BFRUQ9bQorQ09ORklHX1NFTlNPUlNfQVRYUDE9bQorQ09ORklHX1NFTlNPUlNfQ09SU0FJUl9D UFJPPW0KK0NPTkZJR19TRU5TT1JTX0NPUlNBSVJfUFNVPW0KK0NPTkZJR19TRU5TT1JTX0RSSVZF VEVNUD1tCitDT05GSUdfU0VOU09SU19EUzYyMD1tCitDT05GSUdfU0VOU09SU19EUzE2MjE9bQor Q09ORklHX1NFTlNPUlNfSTVLX0FNQj1tCitDT05GSUdfU0VOU09SU19GNzE4MDVGPW0KK0NPTkZJ R19TRU5TT1JTX0Y3MTg4MkZHPW0KK0NPTkZJR19TRU5TT1JTX0Y3NTM3NVM9bQorQ09ORklHX1NF TlNPUlNfR1NDPW0KK0NPTkZJR19TRU5TT1JTX0ZUU1RFVVRBVEVTPW0KK0NPTkZJR19TRU5TT1JT X0dMNTE4U009bQorQ09ORklHX1NFTlNPUlNfR0w1MjBTTT1tCitDT05GSUdfU0VOU09SU19HNzYw QT1tCitDT05GSUdfU0VOU09SU19HNzYyPW0KK0NPTkZJR19TRU5TT1JTX0dQSU9fRkFOPW0KK0NP TkZJR19TRU5TT1JTX0hJSDYxMzA9bQorQ09ORklHX1NFTlNPUlNfSUJNQUVNPW0KK0NPTkZJR19T RU5TT1JTX0lCTVBFWD1tCisjIENPTkZJR19TRU5TT1JTX0lJT19IV01PTiBpcyBub3Qgc2V0CitD T05GSUdfU0VOU09SU19JVDg3PW0KK0NPTkZJR19TRU5TT1JTX0pDNDI9bQorQ09ORklHX1NFTlNP UlNfUE9XUjEyMjA9bQorQ09ORklHX1NFTlNPUlNfTElORUFHRT1tCitDT05GSUdfU0VOU09SU19M T0NITkFHQVI9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk0NT1tCitDT05GSUdfU0VOU09SU19MVEMy OTQ3PW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5NDdfSTJDPW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5 NDdfU1BJPW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5OTA9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk5 Mj1tCitDT05GSUdfU0VOU09SU19MVEM0MTUxPW0KK0NPTkZJR19TRU5TT1JTX0xUQzQyMTU9bQor Q09ORklHX1NFTlNPUlNfTFRDNDIyMj1tCitDT05GSUdfU0VOU09SU19MVEM0MjQ1PW0KK0NPTkZJ R19TRU5TT1JTX0xUQzQyNjA9bQorQ09ORklHX1NFTlNPUlNfTFRDNDI2MT1tCisjIENPTkZJR19T RU5TT1JTX01BWDExMTEgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTUFYMTI3PW0KK0NPTkZJ R19TRU5TT1JTX01BWDE2MDY1PW0KK0NPTkZJR19TRU5TT1JTX01BWDE2MTk9bQorQ09ORklHX1NF TlNPUlNfTUFYMTY2OD1tCisjIENPTkZJR19TRU5TT1JTX01BWDE5NyBpcyBub3Qgc2V0CitDT05G SUdfU0VOU09SU19NQVgzMTcyMj1tCitDT05GSUdfU0VOU09SU19NQVgzMTczMD1tCitDT05GSUdf U0VOU09SU19NQVg2NjIxPW0KK0NPTkZJR19TRU5TT1JTX01BWDY2Mzk9bQorQ09ORklHX1NFTlNP UlNfTUFYNjY0Mj1tCitDT05GSUdfU0VOU09SU19NQVg2NjUwPW0KK0NPTkZJR19TRU5TT1JTX01B WDY2OTc9bQorQ09ORklHX1NFTlNPUlNfTUFYMzE3OTA9bQorQ09ORklHX1NFTlNPUlNfTUNQMzAy MT1tCitDT05GSUdfU0VOU09SU19UQzY1ND1tCitDT05GSUdfU0VOU09SU19UUFMyMzg2MT1tCisj IENPTkZJR19TRU5TT1JTX01FTkYyMUJNQ19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09S U19NUjc1MjAzPW0KKyMgQ09ORklHX1NFTlNPUlNfQURDWFggaXMgbm90IHNldAorQ09ORklHX1NF TlNPUlNfTE02Mz1tCisjIENPTkZJR19TRU5TT1JTX0xNNzAgaXMgbm90IHNldAorQ09ORklHX1NF TlNPUlNfTE03Mz1tCitDT05GSUdfU0VOU09SU19MTTc1PW0KK0NPTkZJR19TRU5TT1JTX0xNNzc9 bQorQ09ORklHX1NFTlNPUlNfTE03OD1tCitDT05GSUdfU0VOU09SU19MTTgwPW0KK0NPTkZJR19T RU5TT1JTX0xNODM9bQorQ09ORklHX1NFTlNPUlNfTE04NT1tCitDT05GSUdfU0VOU09SU19MTTg3 PW0KK0NPTkZJR19TRU5TT1JTX0xNOTA9bQorQ09ORklHX1NFTlNPUlNfTE05Mj1tCitDT05GSUdf U0VOU09SU19MTTkzPW0KK0NPTkZJR19TRU5TT1JTX0xNOTUyMzQ9bQorQ09ORklHX1NFTlNPUlNf TE05NTI0MT1tCitDT05GSUdfU0VOU09SU19MTTk1MjQ1PW0KK0NPTkZJR19TRU5TT1JTX1BDODcz NjA9bQorQ09ORklHX1NFTlNPUlNfUEM4NzQyNz1tCisjIENPTkZJR19TRU5TT1JTX05UQ19USEVS TUlTVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX05DVDY2ODM9bQorQ09ORklHX1NFTlNP UlNfTkNUNjc3NT1tCitDT05GSUdfU0VOU09SU19OQ1Q3ODAyPW0KK0NPTkZJR19TRU5TT1JTX05D VDc5MDQ9bQorQ09ORklHX1NFTlNPUlNfTlBDTTdYWD1tCitDT05GSUdfU0VOU09SU19OWlhUX0tS QUtFTjI9bQorQ09ORklHX1NFTlNPUlNfUENGODU5MT1tCitDT05GSUdfUE1CVVM9bQorQ09ORklH X1NFTlNPUlNfUE1CVVM9bQorQ09ORklHX1NFTlNPUlNfQURNMTI2Nj1tCitDT05GSUdfU0VOU09S U19BRE0xMjc1PW0KK0NPTkZJR19TRU5TT1JTX0JFTF9QRkU9bQorQ09ORklHX1NFTlNPUlNfQlBB X1JTNjAwPW0KK0NPTkZJR19TRU5TT1JTX0ZTUF8zWT1tCisjIENPTkZJR19TRU5TT1JTX0lCTV9D RkZQUyBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19EUFM5MjBBQj1tCitDT05GSUdfU0VOU09S U19JTlNQVVJfSVBTUFM9bQorQ09ORklHX1NFTlNPUlNfSVIzNTIyMT1tCitDT05GSUdfU0VOU09S U19JUjM2MDIxPW0KK0NPTkZJR19TRU5TT1JTX0lSMzgwNjQ9bQorQ09ORklHX1NFTlNPUlNfSVJQ UzU0MDE9bQorQ09ORklHX1NFTlNPUlNfSVNMNjgxMzc9bQorQ09ORklHX1NFTlNPUlNfTE0yNTA2 Nj1tCitDT05GSUdfU0VOU09SU19MVEMyOTc4PW0KKyMgQ09ORklHX1NFTlNPUlNfTFRDMjk3OF9S RUdVTEFUT1IgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTFRDMzgxNT1tCitDT05GSUdfU0VO U09SU19NQVgxNTMwMT1tCitDT05GSUdfU0VOU09SU19NQVgxNjA2ND1tCitDT05GSUdfU0VOU09S U19NQVgxNjYwMT1tCitDT05GSUdfU0VOU09SU19NQVgyMDczMD1tCitDT05GSUdfU0VOU09SU19N QVgyMDc1MT1tCitDT05GSUdfU0VOU09SU19NQVgzMTc4NT1tCitDT05GSUdfU0VOU09SU19NQVgz NDQ0MD1tCitDT05GSUdfU0VOU09SU19NQVg4Njg4PW0KK0NPTkZJR19TRU5TT1JTX01QMjg4OD1t CitDT05GSUdfU0VOU09SU19NUDI5NzU9bQorQ09ORklHX1NFTlNPUlNfUElNNDMyOD1tCitDT05G SUdfU0VOU09SU19QTTY3NjRUUj1tCitDT05GSUdfU0VOU09SU19QWEUxNjEwPW0KK0NPTkZJR19T RU5TT1JTX1E1NFNKMTA4QTI9bQorQ09ORklHX1NFTlNPUlNfU1RQRERDNjA9bQorQ09ORklHX1NF TlNPUlNfVFBTNDA0MjI9bQorQ09ORklHX1NFTlNPUlNfVFBTNTM2Nzk9bQorQ09ORklHX1NFTlNP UlNfVUNEOTAwMD1tCitDT05GSUdfU0VOU09SU19VQ0Q5MjAwPW0KK0NPTkZJR19TRU5TT1JTX1hE UEUxMjI9bQorQ09ORklHX1NFTlNPUlNfWkw2MTAwPW0KK0NPTkZJR19TRU5TT1JTX1BXTV9GQU49 bQorQ09ORklHX1NFTlNPUlNfU0JUU0k9bQorQ09ORklHX1NFTlNPUlNfU0JSTUk9bQorQ09ORklH X1NFTlNPUlNfU0hUMTU9bQorQ09ORklHX1NFTlNPUlNfU0hUMjE9bQorQ09ORklHX1NFTlNPUlNf U0hUM3g9bQorQ09ORklHX1NFTlNPUlNfU0hUNHg9bQorQ09ORklHX1NFTlNPUlNfU0hUQzE9bQor Q09ORklHX1NFTlNPUlNfU0lTNTU5NT1tCitDT05GSUdfU0VOU09SU19ETUUxNzM3PW0KK0NPTkZJ R19TRU5TT1JTX0VNQzE0MDM9bQorQ09ORklHX1NFTlNPUlNfRU1DMjEwMz1tCitDT05GSUdfU0VO U09SU19FTUM2VzIwMT1tCitDT05GSUdfU0VOU09SU19TTVNDNDdNMT1tCitDT05GSUdfU0VOU09S U19TTVNDNDdNMTkyPW0KK0NPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTc9bQorQ09ORklHX1NFTlNP UlNfU0NINTZYWF9DT01NT049bQorQ09ORklHX1NFTlNPUlNfU0NINTYyNz1tCitDT05GSUdfU0VO U09SU19TQ0g1NjM2PW0KK0NPTkZJR19TRU5TT1JTX1NUVFM3NTE9bQorQ09ORklHX1NFTlNPUlNf U0ZDVEVNUD1tCitDT05GSUdfU0VOU09SU19TTU02NjU9bQorQ09ORklHX1NFTlNPUlNfQURDMTI4 RDgxOD1tCitDT05GSUdfU0VOU09SU19BRFM3ODI4PW0KKyMgQ09ORklHX1NFTlNPUlNfQURTNzg3 MSBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19BTUM2ODIxPW0KK0NPTkZJR19TRU5TT1JTX0lO QTIwOT1tCitDT05GSUdfU0VOU09SU19JTkEyWFg9bQorQ09ORklHX1NFTlNPUlNfSU5BMzIyMT1t CitDT05GSUdfU0VOU09SU19UQzc0PW0KK0NPTkZJR19TRU5TT1JTX1RITUM1MD1tCitDT05GSUdf U0VOU09SU19UTVAxMDI9bQorQ09ORklHX1NFTlNPUlNfVE1QMTAzPW0KK0NPTkZJR19TRU5TT1JT X1RNUDEwOD1tCitDT05GSUdfU0VOU09SU19UTVA0MDE9bQorQ09ORklHX1NFTlNPUlNfVE1QNDIx PW0KK0NPTkZJR19TRU5TT1JTX1RNUDUxMz1tCitDT05GSUdfU0VOU09SU19WSUE2ODZBPW0KK0NP TkZJR19TRU5TT1JTX1ZUMTIxMT1tCitDT05GSUdfU0VOU09SU19WVDgyMzE9bQorQ09ORklHX1NF TlNPUlNfVzgzNzczRz1tCitDT05GSUdfU0VOU09SU19XODM3ODFEPW0KK0NPTkZJR19TRU5TT1JT X1c4Mzc5MUQ9bQorQ09ORklHX1NFTlNPUlNfVzgzNzkyRD1tCitDT05GSUdfU0VOU09SU19XODM3 OTM9bQorQ09ORklHX1NFTlNPUlNfVzgzNzk1PW0KKyMgQ09ORklHX1NFTlNPUlNfVzgzNzk1X0ZB TkNUUkwgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTPW0KK0NPTkZJR19TRU5T T1JTX1c4M0w3ODZORz1tCitDT05GSUdfU0VOU09SU19XODM2MjdIRj1tCitDT05GSUdfU0VOU09S U19XODM2MjdFSEY9bQorQ09ORklHX1NFTlNPUlNfSU5URUxfTTEwX0JNQ19IV01PTj1tCitDT05G SUdfVEhFUk1BTD15CitDT05GSUdfVEhFUk1BTF9ORVRMSU5LPXkKK0NPTkZJR19USEVSTUFMX1NU QVRJU1RJQ1M9eQorQ09ORklHX1RIRVJNQUxfRU1FUkdFTkNZX1BPV0VST0ZGX0RFTEFZX01TPTAK K0NPTkZJR19USEVSTUFMX0hXTU9OPXkKK0NPTkZJR19USEVSTUFMX09GPXkKKyMgQ09ORklHX1RI RVJNQUxfV1JJVEFCTEVfVFJJUFMgaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUxfREVGQVVMVF9H T1ZfU1RFUF9XSVNFPXkKKyMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfRkFJUl9TSEFSRSBp cyBub3Qgc2V0CisjIENPTkZJR19USEVSTUFMX0RFRkFVTFRfR09WX1VTRVJfU1BBQ0UgaXMgbm90 IHNldAorQ09ORklHX1RIRVJNQUxfR09WX0ZBSVJfU0hBUkU9eQorQ09ORklHX1RIRVJNQUxfR09W X1NURVBfV0lTRT15CitDT05GSUdfVEhFUk1BTF9HT1ZfQkFOR19CQU5HPXkKK0NPTkZJR19USEVS TUFMX0dPVl9VU0VSX1NQQUNFPXkKKyMgQ09ORklHX1RIRVJNQUxfR09WX1BPV0VSX0FMTE9DQVRP UiBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX1RIRVJNQUw9eQorQ09ORklHX0NQVV9GUkVRX1RIRVJN QUw9eQorIyBDT05GSUdfQ1BVX0lETEVfVEhFUk1BTCBpcyBub3Qgc2V0CitDT05GSUdfREVWRlJF UV9USEVSTUFMPXkKKyMgQ09ORklHX1RIRVJNQUxfRU1VTEFUSU9OIGlzIG5vdCBzZXQKK0NPTkZJ R19USEVSTUFMX01NSU89bQorQ09ORklHX01BWDc3NjIwX1RIRVJNQUw9bQorQ09ORklHX0dFTkVS SUNfQURDX1RIRVJNQUw9bQorQ09ORklHX1dBVENIRE9HPXkKK0NPTkZJR19XQVRDSERPR19DT1JF PXkKKyMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKK0NPTkZJR19XQVRDSERP R19IQU5ETEVfQk9PVF9FTkFCTEVEPXkKK0NPTkZJR19XQVRDSERPR19PUEVOX1RJTUVPVVQ9MAor IyBDT05GSUdfV0FUQ0hET0dfU1lTRlMgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0dfSFJU SU1FUl9QUkVUSU1FT1VUIGlzIG5vdCBzZXQKKworIworIyBXYXRjaGRvZyBQcmV0aW1lb3V0IEdv dmVybm9ycworIworQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfR09WPXkKK0NPTkZJR19XQVRD SERPR19QUkVUSU1FT1VUX0dPVl9TRUw9bQorQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfR09W X05PT1A9eQorQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfR09WX1BBTklDPW0KK0NPTkZJR19X QVRDSERPR19QUkVUSU1FT1VUX0RFRkFVTFRfR09WX05PT1A9eQorIyBDT05GSUdfV0FUQ0hET0df UFJFVElNRU9VVF9ERUZBVUxUX0dPVl9QQU5JQyBpcyBub3Qgc2V0CisKKyMKKyMgV2F0Y2hkb2cg RGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19TT0ZUX1dBVENIRE9HPW0KK0NPTkZJR19TT0ZUX1dB VENIRE9HX1BSRVRJTUVPVVQ9eQorQ09ORklHX0JEOTU3WE1VRl9XQVRDSERPRz1tCisjIENPTkZJ R19HUElPX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTkYyMUJNQ19XQVRDSERPRyBp cyBub3Qgc2V0CitDT05GSUdfWElMSU5YX1dBVENIRE9HPW0KK0NPTkZJR19aSUlSQVZFX1dBVENI RE9HPW0KK0NPTkZJR19DQURFTkNFX1dBVENIRE9HPW0KK0NPTkZJR19EV19XQVRDSERPRz1tCisj IENPTkZJR19NQVg2M1hYX1dBVENIRE9HIGlzIG5vdCBzZXQKK0NPTkZJR19NQVg3NzYyMF9XQVRD SERPRz1tCitDT05GSUdfU1RQTUlDMV9XQVRDSERPRz1tCitDT05GSUdfQUxJTTcxMDFfV0RUPW0K K0NPTkZJR19JNjMwMEVTQl9XRFQ9bQorQ09ORklHX0tFTVBMRF9XRFQ9bQorQ09ORklHX01FTl9B MjFfV0RUPW0KK0NPTkZJR19TVEFSRklWRV9XQVRDSERPRz15CisKKyMKKyMgUENJLWJhc2VkIFdh dGNoZG9nIENhcmRzCisjCitDT05GSUdfUENJUENXQVRDSERPRz1tCitDT05GSUdfV0RUUENJPW0K KworIworIyBVU0ItYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKK0NPTkZJR19VU0JQQ1dBVENIRE9H PW0KK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorQ09ORklHX1NTQj1tCitDT05GSUdfU1NCX1NQUk9N PXkKK0NPTkZJR19TU0JfQkxPQ0tJTz15CitDT05GSUdfU1NCX1BDSUhPU1RfUE9TU0lCTEU9eQor Q09ORklHX1NTQl9QQ0lIT1NUPXkKK0NPTkZJR19TU0JfQjQzX1BDSV9CUklER0U9eQorQ09ORklH X1NTQl9QQ01DSUFIT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfUENNQ0lBSE9TVD15CitDT05G SUdfU1NCX1NESU9IT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfU0RJT0hPU1Q9eQorQ09ORklH X1NTQl9EUklWRVJfUENJQ09SRV9QT1NTSUJMRT15CitDT05GSUdfU1NCX0RSSVZFUl9QQ0lDT1JF PXkKK0NPTkZJR19TU0JfRFJJVkVSX0dQSU89eQorQ09ORklHX0JDTUFfUE9TU0lCTEU9eQorQ09O RklHX0JDTUE9bQorQ09ORklHX0JDTUFfQkxPQ0tJTz15CitDT05GSUdfQkNNQV9IT1NUX1BDSV9Q T1NTSUJMRT15CitDT05GSUdfQkNNQV9IT1NUX1BDST15CitDT05GSUdfQkNNQV9IT1NUX1NPQz15 CitDT05GSUdfQkNNQV9EUklWRVJfUENJPXkKK0NPTkZJR19CQ01BX1NGTEFTSD15CitDT05GSUdf QkNNQV9EUklWRVJfR01BQ19DTU49eQorQ09ORklHX0JDTUFfRFJJVkVSX0dQSU89eQorIyBDT05G SUdfQkNNQV9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJp dmVycworIworQ09ORklHX01GRF9DT1JFPXkKKyMgQ09ORklHX01GRF9BQ1Q4OTQ1QSBpcyBub3Qg c2V0CisjIENPTkZJR19NRkRfQVMzNzExIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BUzM3MjIg aXMgbm90IHNldAorIyBDT05GSUdfUE1JQ19BRFA1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01G RF9BQVQyODcwX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FUTUVMX0ZMRVhDT00gaXMg bm90IHNldAorQ09ORklHX01GRF9BVE1FTF9ITENEQz1tCisjIENPTkZJR19NRkRfQkNNNTkwWFgg aXMgbm90IHNldAorQ09ORklHX01GRF9CRDk1NzFNV1Y9bQorQ09ORklHX01GRF9BWFAyMFg9bQor Q09ORklHX01GRF9BWFAyMFhfSTJDPW0KK0NPTkZJR19NRkRfTUFERVJBPW0KK0NPTkZJR19NRkRf TUFERVJBX0kyQz1tCitDT05GSUdfTUZEX01BREVSQV9TUEk9bQorQ09ORklHX01GRF9DUzQ3TDE1 PXkKK0NPTkZJR19NRkRfQ1M0N0wzNT15CitDT05GSUdfTUZEX0NTNDdMODU9eQorQ09ORklHX01G RF9DUzQ3TDkwPXkKK0NPTkZJR19NRkRfQ1M0N0w5Mj15CisjIENPTkZJR19QTUlDX0RBOTAzWCBp cyBub3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDUyX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19N RkRfREE5MDUyX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDU1IGlzIG5vdCBzZXQK KyMgQ09ORklHX01GRF9EQTkwNjIgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0RBOTA2MyBpcyBu b3Qgc2V0CisjIENPTkZJR19NRkRfREE5MTUwIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfRExOMj1t CitDT05GSUdfTUZEX0dBVEVXT1JLU19HU0M9bQorIyBDT05GSUdfTUZEX01DMTNYWFhfU1BJIGlz IG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQzEzWFhYX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfTUZE X01QMjYyOT1tCitDT05GSUdfTUZEX0hJNjQyMV9QTUlDPW0KK0NPTkZJR19NRkRfSEk2NDIxX1NQ TUk9bQorQ09ORklHX0hUQ19QQVNJQzM9bQorIyBDT05GSUdfSFRDX0kyQ1BMRCBpcyBub3Qgc2V0 CitDT05GSUdfTFBDX0lDSD1tCitDT05GSUdfTFBDX1NDSD1tCitDT05GSUdfTUZEX0lOVEVMX1BN VD1tCitDT05GSUdfTUZEX0lRUzYyWD1tCisjIENPTkZJR19NRkRfSkFOWl9DTU9ESU8gaXMgbm90 IHNldAorQ09ORklHX01GRF9LRU1QTEQ9bQorIyBDT05GSUdfTUZEXzg4UE04MDAgaXMgbm90IHNl dAorIyBDT05GSUdfTUZEXzg4UE04MDUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEXzg4UE04NjBY IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVgxNDU3NyBpcyBub3Qgc2V0CitDT05GSUdfTUZE X01BWDc3NjIwPXkKK0NPTkZJR19NRkRfTUFYNzc2NTA9bQorIyBDT05GSUdfTUZEX01BWDc3Njg2 IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg3NzY5MyBpcyBub3Qgc2V0CisjIENPTkZJR19N RkRfTUFYNzc4NDMgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01BWDg5MDcgaXMgbm90IHNldAor IyBDT05GSUdfTUZEX01BWDg5MjUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01BWDg5OTcgaXMg bm90IHNldAorIyBDT05GSUdfTUZEX01BWDg5OTggaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01U NjM2MCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTVQ2Mzk3IGlzIG5vdCBzZXQKK0NPTkZJR19N RkRfTUVORjIxQk1DPW0KKyMgQ09ORklHX0VaWF9QQ0FQIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRf Q1BDQVA9bQorQ09ORklHX01GRF9WSVBFUkJPQVJEPW0KK0NPTkZJR19NRkRfTlRYRUM9bQorIyBD T05GSUdfTUZEX1JFVFUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1BDRjUwNjMzIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1VDQjE0MDBfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfUkRDMzIx WCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1JUNDgzMT1tCisjIENPTkZJR19NRkRfUlQ1MDMzIGlz IG5vdCBzZXQKKyMgQ09ORklHX01GRF9SQzVUNTgzIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfUks4 MDg9bQorIyBDT05GSUdfTUZEX1JONVQ2MTggaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1NFQ19D T1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9TSTQ3NlhfQ09SRSBpcyBub3Qgc2V0CisjIENP TkZJR19NRkRfU001MDEgaXMgbm90IHNldAorQ09ORklHX01GRF9TS1k4MTQ1Mj1tCisjIENPTkZJ R19NRkRfU1RNUEUgaXMgbm90IHNldAorQ09ORklHX01GRF9TWVNDT049eQorQ09ORklHX01GRF9U SV9BTTMzNVhfVFNDQURDPW0KK0NPTkZJR19NRkRfTFAzOTQzPW0KKyMgQ09ORklHX01GRF9MUDg3 ODggaXMgbm90IHNldAorQ09ORklHX01GRF9USV9MTVU9bQorIyBDT05GSUdfTUZEX1BBTE1BUyBp cyBub3Qgc2V0CisjIENPTkZJR19UUFM2MTA1WCBpcyBub3Qgc2V0CitDT05GSUdfVFBTNjUwMTA9 bQorQ09ORklHX1RQUzY1MDdYPW0KKyMgQ09ORklHX01GRF9UUFM2NTA4NiBpcyBub3Qgc2V0Cisj IENPTkZJR19NRkRfVFBTNjUwOTAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1MjE3IGlz IG5vdCBzZXQKK0NPTkZJR19NRkRfVElfTFA4NzNYPW0KK0NPTkZJR19NRkRfVElfTFA4NzU2NT1t CisjIENPTkZJR19NRkRfVFBTNjUyMTggaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1ODZY IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTkxMCBpcyBub3Qgc2V0CisjIENPTkZJR19N RkRfVFBTNjU5MTJfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTkxMl9TUEkgaXMg bm90IHNldAorIyBDT05GSUdfTUZEX1RQUzgwMDMxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RXTDQw MzBfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19UV0w2MDQwX0NPUkUgaXMgbm90IHNldAorQ09O RklHX01GRF9XTDEyNzNfQ09SRT1tCitDT05GSUdfTUZEX0xNMzUzMz1tCisjIENPTkZJR19NRkRf VEMzNTg5WCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1RRTVg4Nj1tCitDT05GSUdfTUZEX1ZYODU1 PW0KK0NPTkZJR19NRkRfTE9DSE5BR0FSPXkKKyMgQ09ORklHX01GRF9BUklaT05BX0kyQyBpcyBu b3Qgc2V0CisjIENPTkZJR19NRkRfQVJJWk9OQV9TUEkgaXMgbm90IHNldAorIyBDT05GSUdfTUZE X1dNODQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfV004MzFYX0kyQyBpcyBub3Qgc2V0Cisj IENPTkZJR19NRkRfV004MzFYX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfV004MzUwX0ky QyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1dNODk5ND1tCitDT05GSUdfTUZEX1JPSE1fQkQ3MThY WD1tCitDT05GSUdfTUZEX1JPSE1fQkQ3MDUyOD1tCitDT05GSUdfTUZEX1JPSE1fQkQ3MTgyOD1t CitDT05GSUdfTUZEX1JPSE1fQkQ5NTdYTVVGPW0KK0NPTkZJR19NRkRfU1RQTUlDMT1tCitDT05G SUdfTUZEX1NUTUZYPW0KK0NPTkZJR19NRkRfQVRDMjYwWD1tCitDT05GSUdfTUZEX0FUQzI2MFhf STJDPW0KK0NPTkZJR19NRkRfUUNPTV9QTTgwMDg9bQorIyBDT05GSUdfUkFWRV9TUF9DT1JFIGlz IG5vdCBzZXQKK0NPTkZJR19NRkRfSU5URUxfTTEwX0JNQz1tCitDT05GSUdfTUZEX1JTTVVfSTJD PW0KK0NPTkZJR19NRkRfUlNNVV9TUEk9bQorIyBlbmQgb2YgTXVsdGlmdW5jdGlvbiBkZXZpY2Ug ZHJpdmVycworCitDT05GSUdfUkVHVUxBVE9SPXkKKyMgQ09ORklHX1JFR1VMQVRPUl9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0ZJWEVEX1ZPTFRBR0U9bQorIyBDT05GSUdfUkVH VUxBVE9SX1ZJUlRVQUxfQ09OU1VNRVIgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1VT RVJTUEFDRV9DT05TVU1FUiBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SXzg4UEc4Nlg9bQor IyBDT05GSUdfUkVHVUxBVE9SX0FDVDg4NjUgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9S X0FENTM5OCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0FSSVpPTkFfTERPMT1tCitDT05G SUdfUkVHVUxBVE9SX0FSSVpPTkFfTUlDU1VQUD1tCitDT05GSUdfUkVHVUxBVE9SX0FUQzI2MFg9 bQorQ09ORklHX1JFR1VMQVRPUl9BWFAxNTA2MD1tCitDT05GSUdfUkVHVUxBVE9SX0FYUDIwWD1t CitDT05GSUdfUkVHVUxBVE9SX0JENzE4MTU9bQorQ09ORklHX1JFR1VMQVRPUl9CRDcxODI4PW0K K0NPTkZJR19SRUdVTEFUT1JfQkQ3MThYWD1tCitDT05GSUdfUkVHVUxBVE9SX0JEOTU3MU1XVj1t CitDT05GSUdfUkVHVUxBVE9SX0JEOTU3WE1VRj1tCitDT05GSUdfUkVHVUxBVE9SX0NQQ0FQPW0K K0NPTkZJR19SRUdVTEFUT1JfREE5MTIxPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9EQTkyMTAgaXMg bm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX0RBOTIxMSBpcyBub3Qgc2V0CitDT05GSUdfUkVH VUxBVE9SX0ZBTjUzNTU1PW0KK0NPTkZJR19SRUdVTEFUT1JfRkFONTM4ODA9bQorQ09ORklHX1JF R1VMQVRPUl9HUElPPW0KK0NPTkZJR19SRUdVTEFUT1JfSEk2NDIxPW0KK0NPTkZJR19SRUdVTEFU T1JfSEk2NDIxVjUzMD1tCitDT05GSUdfUkVHVUxBVE9SX0hJNjQyMVY2MDA9bQorQ09ORklHX1JF R1VMQVRPUl9JU0w5MzA1PW0KKyMgQ09ORklHX1JFR1VMQVRPUl9JU0w2MjcxQSBpcyBub3Qgc2V0 CitDT05GSUdfUkVHVUxBVE9SX0xNMzYzWD1tCitDT05GSUdfUkVHVUxBVE9SX0xPQ0hOQUdBUj1t CisjIENPTkZJR19SRUdVTEFUT1JfTFAzOTcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRP Ul9MUDM5NzIgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX0xQODcyWCBpcyBub3Qgc2V0 CitDT05GSUdfUkVHVUxBVE9SX0xQODczWD1tCisjIENPTkZJR19SRUdVTEFUT1JfTFA4NzU1IGlz IG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfTFA4NzU2NT1tCitDT05GSUdfUkVHVUxBVE9SX0xU QzM1ODk9bQorQ09ORklHX1JFR1VMQVRPUl9MVEMzNjc2PW0KKyMgQ09ORklHX1JFR1VMQVRPUl9N QVgxNTg2IGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfTUFYNzc2MjA9bQorQ09ORklHX1JF R1VMQVRPUl9NQVg3NzY1MD1tCisjIENPTkZJR19SRUdVTEFUT1JfTUFYODY0OSBpcyBub3Qgc2V0 CisjIENPTkZJR19SRUdVTEFUT1JfTUFYODY2MCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9S X01BWDg4OTM9bQorIyBDT05GSUdfUkVHVUxBVE9SX01BWDg5NTIgaXMgbm90IHNldAorIyBDT05G SUdfUkVHVUxBVE9SX01BWDg5NzMgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX01BWDc3 ODI2IGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfTUNQMTY1MDI9bQorQ09ORklHX1JFR1VM QVRPUl9NUDU0MTY9bQorQ09ORklHX1JFR1VMQVRPUl9NUDg4NTk9bQorQ09ORklHX1JFR1VMQVRP Ul9NUDg4Nlg9bQorQ09ORklHX1JFR1VMQVRPUl9NUFE3OTIwPW0KKyMgQ09ORklHX1JFR1VMQVRP Ul9NVDYzMTEgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9NVDYzMTU9bQorQ09ORklHX1JF R1VMQVRPUl9QQ0E5NDUwPW0KK0NPTkZJR19SRUdVTEFUT1JfUEY4WDAwPW0KKyMgQ09ORklHX1JF R1VMQVRPUl9QRlVaRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfUFY4ODA2MCBp cyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfUFY4ODA4MCBpcyBub3Qgc2V0CisjIENPTkZJ R19SRUdVTEFUT1JfUFY4ODA5MCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX1BXTT1tCitD T05GSUdfUkVHVUxBVE9SX1FDT01fU1BNST1tCitDT05GSUdfUkVHVUxBVE9SX1FDT01fVVNCX1ZC VVM9bQorQ09ORklHX1JFR1VMQVRPUl9SQVNQQkVSUllQSV9UT1VDSFNDUkVFTl9BVFRJTlk9bQor Q09ORklHX1JFR1VMQVRPUl9SSzgwOD1tCitDT05GSUdfUkVHVUxBVE9SX1JPSE09bQorQ09ORklH X1JFR1VMQVRPUl9SVDQ4MDE9bQorQ09ORklHX1JFR1VMQVRPUl9SVDQ4MzE9bQorQ09ORklHX1JF R1VMQVRPUl9SVDYxNjA9bQorQ09ORklHX1JFR1VMQVRPUl9SVDYyNDU9bQorQ09ORklHX1JFR1VM QVRPUl9SVFEyMTM0PW0KK0NPTkZJR19SRUdVTEFUT1JfUlRNVjIwPW0KK0NPTkZJR19SRUdVTEFU T1JfUlRRNjc1Mj1tCitDT05GSUdfUkVHVUxBVE9SX1NLWTgxNDUyPW0KK0NPTkZJR19SRUdVTEFU T1JfU0xHNTEwMDA9bQorQ09ORklHX1JFR1VMQVRPUl9TVEFSRklWRV9KSDcxMTA9eQorQ09ORklH X1JFR1VMQVRPUl9TVFBNSUMxPW0KK0NPTkZJR19SRUdVTEFUT1JfU1k4MTA2QT1tCitDT05GSUdf UkVHVUxBVE9SX1NZODgyNFg9bQorQ09ORklHX1JFR1VMQVRPUl9TWTg4MjdOPW0KKyMgQ09ORklH X1JFR1VMQVRPUl9UUFM1MTYzMiBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfVFBTNjIz NjAgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDIzIGlzIG5vdCBzZXQKKyMg Q09ORklHX1JFR1VMQVRPUl9UUFM2NTA3WCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX1RQ UzY1MTMyPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9UUFM2NTI0WCBpcyBub3Qgc2V0CitDT05GSUdf UkVHVUxBVE9SX1ZDVFJMPW0KK0NPTkZJR19SRUdVTEFUT1JfV004OTk0PW0KK0NPTkZJR19SRUdV TEFUT1JfUUNPTV9MQUJJQkI9bQorQ09ORklHX1JDX0NPUkU9bQorQ09ORklHX1JDX01BUD1tCitD T05GSUdfTElSQz15CitDT05GSUdfUkNfREVDT0RFUlM9eQorQ09ORklHX0lSX05FQ19ERUNPREVS PW0KK0NPTkZJR19JUl9SQzVfREVDT0RFUj1tCitDT05GSUdfSVJfUkM2X0RFQ09ERVI9bQorQ09O RklHX0lSX0pWQ19ERUNPREVSPW0KK0NPTkZJR19JUl9TT05ZX0RFQ09ERVI9bQorQ09ORklHX0lS X1NBTllPX0RFQ09ERVI9bQorQ09ORklHX0lSX1NIQVJQX0RFQ09ERVI9bQorQ09ORklHX0lSX01D RV9LQkRfREVDT0RFUj1tCitDT05GSUdfSVJfWE1QX0RFQ09ERVI9bQorQ09ORklHX0lSX0lNT05f REVDT0RFUj1tCitDT05GSUdfSVJfUkNNTV9ERUNPREVSPW0KK0NPTkZJR19SQ19ERVZJQ0VTPXkK K0NPTkZJR19SQ19BVElfUkVNT1RFPW0KK0NPTkZJR19JUl9ISVg1SEQyPW0KK0NPTkZJR19JUl9J TU9OPW0KK0NPTkZJR19JUl9JTU9OX1JBVz1tCitDT05GSUdfSVJfTUNFVVNCPW0KK0NPTkZJR19J Ul9SRURSQVQzPW0KK0NPTkZJR19JUl9TUEk9bQorQ09ORklHX0lSX1NUUkVBTVpBUD1tCitDT05G SUdfSVJfSUdPUlBMVUdVU0I9bQorQ09ORklHX0lSX0lHVUFOQT1tCitDT05GSUdfSVJfVFRVU0JJ Uj1tCitDT05GSUdfUkNfTE9PUEJBQ0s9bQorQ09ORklHX0lSX0dQSU9fQ0lSPW0KK0NPTkZJR19J Ul9HUElPX1RYPW0KK0NPTkZJR19JUl9QV01fVFg9bQorQ09ORklHX0lSX1NFUklBTD1tCitDT05G SUdfSVJfU0VSSUFMX1RSQU5TTUlUVEVSPXkKK0NPTkZJR19JUl9TSVI9bQorQ09ORklHX1JDX1hC T1hfRFZEPW0KK0NPTkZJR19JUl9UT1k9bQorQ09ORklHX0NFQ19DT1JFPXkKK0NPTkZJR19DRUNf Tk9USUZJRVI9eQorQ09ORklHX01FRElBX0NFQ19TVVBQT1JUPXkKK0NPTkZJR19DRUNfQ0g3MzIy PW0KK0NPTkZJR19VU0JfUFVMU0U4X0NFQz1tCitDT05GSUdfVVNCX1JBSU5TSEFET1dfQ0VDPW0K K0NPTkZJR19NRURJQV9TVVBQT1JUPW0KKyMgQ09ORklHX01FRElBX1NVUFBPUlRfRklMVEVSIGlz IG5vdCBzZXQKK0NPTkZJR19NRURJQV9TVUJEUlZfQVVUT1NFTEVDVD15CisKKyMKKyMgTWVkaWEg ZGV2aWNlIHR5cGVzCisjCitDT05GSUdfTUVESUFfQ0FNRVJBX1NVUFBPUlQ9eQorQ09ORklHX01F RElBX0FOQUxPR19UVl9TVVBQT1JUPXkKK0NPTkZJR19NRURJQV9ESUdJVEFMX1RWX1NVUFBPUlQ9 eQorQ09ORklHX01FRElBX1JBRElPX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX1NEUl9TVVBQT1JU PXkKK0NPTkZJR19NRURJQV9QTEFURk9STV9TVVBQT1JUPXkKK0NPTkZJR19NRURJQV9URVNUX1NV UFBPUlQ9eQorIyBlbmQgb2YgTWVkaWEgZGV2aWNlIHR5cGVzCisKKyMKKyMgTWVkaWEgY29yZSBz dXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorQ09ORklHX01FRElBX0NP TlRST0xMRVI9eQorQ09ORklHX0RWQl9DT1JFPW0KKyMgZW5kIG9mIE1lZGlhIGNvcmUgc3VwcG9y dAorCisjCisjIE1lZGlhIGNvbnRyb2xsZXIgb3B0aW9ucworIworQ09ORklHX01FRElBX0NPTlRS T0xMRVJfRFZCPXkKKyMgZW5kIG9mIE1lZGlhIGNvbnRyb2xsZXIgb3B0aW9ucworCisjCisjIERp Z2l0YWwgVFYgb3B0aW9ucworIworQ09ORklHX0RWQl9ORVQ9eQorQ09ORklHX0RWQl9NQVhfQURB UFRFUlM9OAorQ09ORklHX0RWQl9EWU5BTUlDX01JTk9SUz15CisjIENPTkZJR19EVkJfREVNVVhf U0VDVElPTl9MT1NTX0xPRyBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVUxFX0RFQlVHIGlzIG5v dCBzZXQKKyMgZW5kIG9mIERpZ2l0YWwgVFYgb3B0aW9ucworCisjCisjIE1lZGlhIGRyaXZlcnMK KyMKK0NPTkZJR19NRURJQV9VU0JfU1VQUE9SVD15CisKKyMKKyMgV2ViY2FtIGRldmljZXMKKyMK KworIworIyBBbmFsb2cgVFYgVVNCIGRldmljZXMKKyMKKworIworIyBBbmFsb2cvZGlnaXRhbCBU ViBVU0IgZGV2aWNlcworIworCisjCisjIERpZ2l0YWwgVFYgVVNCIGRldmljZXMKKyMKK0NPTkZJ R19EVkJfVVNCPW0KKyMgQ09ORklHX0RWQl9VU0JfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0RW Ql9VU0JfRElCMzAwME1DPW0KK0NPTkZJR19EVkJfVVNCX0E4MDA9bQorQ09ORklHX0RWQl9VU0Jf RElCVVNCX01CPW0KKyMgQ09ORklHX0RWQl9VU0JfRElCVVNCX01CX0ZBVUxUWSBpcyBub3Qgc2V0 CitDT05GSUdfRFZCX1VTQl9ESUJVU0JfTUM9bQorQ09ORklHX0RWQl9VU0JfRElCMDcwMD1tCitD T05GSUdfRFZCX1VTQl9VTVRfMDEwPW0KK0NPTkZJR19EVkJfVVNCX0NYVVNCPW0KK0NPTkZJR19E VkJfVVNCX005MjBYPW0KK0NPTkZJR19EVkJfVVNCX0RJR0lUVj1tCitDT05GSUdfRFZCX1VTQl9W UDcwNDU9bQorQ09ORklHX0RWQl9VU0JfVlA3MDJYPW0KK0NPTkZJR19EVkJfVVNCX0dQOFBTSz1t CitDT05GSUdfRFZCX1VTQl9OT1ZBX1RfVVNCMj1tCitDT05GSUdfRFZCX1VTQl9UVFVTQjI9bQor Q09ORklHX0RWQl9VU0JfRFRUMjAwVT1tCitDT05GSUdfRFZCX1VTQl9PUEVSQTE9bQorQ09ORklH X0RWQl9VU0JfQUY5MDA1PW0KK0NPTkZJR19EVkJfVVNCX0FGOTAwNV9SRU1PVEU9bQorQ09ORklH X0RWQl9VU0JfUENUVjQ1MkU9bQorQ09ORklHX0RWQl9VU0JfRFcyMTAyPW0KK0NPTkZJR19EVkJf VVNCX0NJTkVSR1lfVDI9bQorQ09ORklHX0RWQl9VU0JfRFRWNTEwMD1tCitDT05GSUdfRFZCX1VT Ql9BWjYwMjc9bQorQ09ORklHX0RWQl9VU0JfVEVDSE5JU0FUX1VTQjI9bQorQ09ORklHX0RWQl9V U0JfVjI9bQorQ09ORklHX0RWQl9VU0JfQUY5MDE1PW0KK0NPTkZJR19EVkJfVVNCX0FGOTAzNT1t CitDT05GSUdfRFZCX1VTQl9BTllTRUU9bQorQ09ORklHX0RWQl9VU0JfQVU2NjEwPW0KK0NPTkZJ R19EVkJfVVNCX0FaNjAwNz1tCitDT05GSUdfRFZCX1VTQl9DRTYyMzA9bQorQ09ORklHX0RWQl9V U0JfRUMxNjg9bQorQ09ORklHX0RWQl9VU0JfR0w4NjE9bQorQ09ORklHX0RWQl9VU0JfTE1FMjUx MD1tCitDT05GSUdfRFZCX1VTQl9NWEwxMTFTRj1tCitDT05GSUdfRFZCX1VTQl9SVEwyOFhYVT1t CitDT05GSUdfRFZCX1VTQl9EVkJTS1k9bQorQ09ORklHX0RWQl9VU0JfWkQxMzAxPW0KK0NPTkZJ R19EVkJfVFRVU0JfQlVER0VUPW0KK0NPTkZJR19EVkJfVFRVU0JfREVDPW0KK0NPTkZJR19TTVNf VVNCX0RSVj1tCitDT05GSUdfRFZCX0IyQzJfRkxFWENPUF9VU0I9bQorIyBDT05GSUdfRFZCX0Iy QzJfRkxFWENPUF9VU0JfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0RWQl9BUzEwMj1tCisKKyMK KyMgV2ViY2FtLCBUViAoYW5hbG9nL2RpZ2l0YWwpIFVTQiBkZXZpY2VzCisjCisKKyMKKyMgU29m dHdhcmUgZGVmaW5lZCByYWRpbyBVU0IgZGV2aWNlcworIworQ09ORklHX01FRElBX1BDSV9TVVBQ T1JUPXkKKworIworIyBNZWRpYSBjYXB0dXJlIHN1cHBvcnQKKyMKKworIworIyBNZWRpYSBjYXB0 dXJlL2FuYWxvZyBUViBzdXBwb3J0CisjCisKKyMKKyMgTWVkaWEgY2FwdHVyZS9hbmFsb2cvaHli cmlkIFRWIHN1cHBvcnQKKyMKKworIworIyBNZWRpYSBkaWdpdGFsIFRWIFBDSSBBZGFwdGVycwor IworQ09ORklHX0RWQl9CVURHRVRfQ09SRT1tCitDT05GSUdfRFZCX0JVREdFVD1tCitDT05GSUdf RFZCX0JVREdFVF9DST1tCitDT05GSUdfRFZCX0IyQzJfRkxFWENPUF9QQ0k9bQorIyBDT05GSUdf RFZCX0IyQzJfRkxFWENPUF9QQ0lfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0RWQl9QTFVUTzI9 bQorQ09ORklHX0RWQl9ETTExMDU9bQorQ09ORklHX0RWQl9QVDE9bQorQ09ORklHX0RWQl9QVDM9 bQorQ09ORklHX01BTlRJU19DT1JFPW0KK0NPTkZJR19EVkJfTUFOVElTPW0KK0NPTkZJR19EVkJf SE9QUEVSPW0KK0NPTkZJR19EVkJfTkdFTkU9bQorQ09ORklHX0RWQl9EREJSSURHRT1tCisjIENP TkZJR19EVkJfRERCUklER0VfTVNJRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19EVkJfU01JUENJ RT1tCitDT05GSUdfTUVESUFfQ09NTU9OX09QVElPTlM9eQorCisjCisjIGNvbW1vbiBkcml2ZXIg b3B0aW9ucworIworQ09ORklHX1ZJREVPX1RWRUVQUk9NPW0KK0NPTkZJR19UVFBDSV9FRVBST009 bQorQ09ORklHX0NZUFJFU1NfRklSTVdBUkU9bQorQ09ORklHX0RWQl9CMkMyX0ZMRVhDT1A9bQor Q09ORklHX1ZJREVPX1NBQTcxNDY9bQorQ09ORklHX1NNU19TSUFOT19NRFRWPW0KK0NPTkZJR19T TVNfU0lBTk9fUkM9eQorIyBDT05GSUdfU01TX1NJQU5PX0RFQlVHRlMgaXMgbm90IHNldAorQ09O RklHX1Y0TF9QTEFURk9STV9EUklWRVJTPXkKK0NPTkZJR19WSURFT19DQURFTkNFPXkKK0NPTkZJ R19EVkJfUExBVEZPUk1fRFJJVkVSUz15CitDT05GSUdfU0RSX1BMQVRGT1JNX0RSSVZFUlM9eQor CisjCisjIE1NQy9TRElPIERWQiBhZGFwdGVycworIworQ09ORklHX1NNU19TRElPX0RSVj1tCisj IENPTkZJR19EVkJfVEVTVF9EUklWRVJTIGlzIG5vdCBzZXQKKworIworIyBGaXJlV2lyZSAoSUVF RSAxMzk0KSBBZGFwdGVycworIworQ09ORklHX0RWQl9GSVJFRFRWPW0KK0NPTkZJR19EVkJfRklS RURUVl9JTlBVVD15CisjIGVuZCBvZiBNZWRpYSBkcml2ZXJzCisKKyMKKyMgTWVkaWEgYW5jaWxs YXJ5IGRyaXZlcnMKKyMKK0NPTkZJR19NRURJQV9BVFRBQ0g9eQorCisjCisjIE1lZGlhIFNQSSBB ZGFwdGVycworIworQ09ORklHX0NYRDI4ODBfU1BJX0RSVj1tCisjIGVuZCBvZiBNZWRpYSBTUEkg QWRhcHRlcnMKKworQ09ORklHX01FRElBX1RVTkVSPW0KKworIworIyBDdXN0b21pemUgVFYgdHVu ZXJzCisjCitDT05GSUdfTUVESUFfVFVORVJfU0lNUExFPW0KK0NPTkZJR19NRURJQV9UVU5FUl9U REExODI1MD1tCitDT05GSUdfTUVESUFfVFVORVJfVERBODI5MD1tCitDT05GSUdfTUVESUFfVFVO RVJfVERBODI3WD1tCitDT05GSUdfTUVESUFfVFVORVJfVERBMTgyNzE9bQorQ09ORklHX01FRElB X1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3NjE9bQorQ09ORklHX01F RElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD1tCitDT05GSUdf TUVESUFfVFVORVJfTVQyMDYwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NVDIwNjM9bQorQ09ORklH X01FRElBX1RVTkVSX01UMjI2Nj1tCitDT05GSUdfTUVESUFfVFVORVJfTVQyMTMxPW0KK0NPTkZJ R19NRURJQV9UVU5FUl9RVDEwMTA9bQorQ09ORklHX01FRElBX1RVTkVSX1hDMjAyOD1tCitDT05G SUdfTUVESUFfVFVORVJfWEM1MDAwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzQwMDA9bQorQ09O RklHX01FRElBX1RVTkVSX01YTDUwMDVTPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NWEw1MDA3VD1t CitDT05GSUdfTUVESUFfVFVORVJfTUM0NFM4MDM9bQorQ09ORklHX01FRElBX1RVTkVSX01BWDIx NjU9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjE4PW0KK0NPTkZJR19NRURJQV9UVU5FUl9G QzAwMTE9bQorQ09ORklHX01FRElBX1RVTkVSX0ZDMDAxMj1tCitDT05GSUdfTUVESUFfVFVORVJf RkMwMDEzPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREExODIxMj1tCitDT05GSUdfTUVESUFfVFVO RVJfTTg4UlM2MDAwVD1tCitDT05GSUdfTUVESUFfVFVORVJfVFVBOTAwMT1tCitDT05GSUdfTUVE SUFfVFVORVJfU0kyMTU3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9JVDkxM1g9bQorQ09ORklHX01F RElBX1RVTkVSX1I4MjBUPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NWEwzMDFSRj1tCitDT05GSUdf TUVESUFfVFVORVJfUU0xRDFDMDA0Mj1tCitDT05GSUdfTUVESUFfVFVORVJfUU0xRDFCMDAwND1t CisjIGVuZCBvZiBDdXN0b21pemUgVFYgdHVuZXJzCisKKyMKKyMgQ3VzdG9taXNlIERWQiBGcm9u dGVuZHMKKyMKKworIworIyBNdWx0aXN0YW5kYXJkIChzYXRlbGxpdGUpIGZyb250ZW5kcworIwor Q09ORklHX0RWQl9TVEIwODk5PW0KK0NPTkZJR19EVkJfU1RCNjEwMD1tCitDT05GSUdfRFZCX1NU VjA5MHg9bQorQ09ORklHX0RWQl9TVFYwOTEwPW0KK0NPTkZJR19EVkJfU1RWNjExMHg9bQorQ09O RklHX0RWQl9TVFY2MTExPW0KK0NPTkZJR19EVkJfTVhMNVhYPW0KK0NPTkZJR19EVkJfTTg4RFMz MTAzPW0KKworIworIyBNdWx0aXN0YW5kYXJkIChjYWJsZSArIHRlcnJlc3RyaWFsKSBmcm9udGVu ZHMKKyMKK0NPTkZJR19EVkJfRFJYSz1tCitDT05GSUdfRFZCX1REQTE4MjcxQzJERD1tCitDT05G SUdfRFZCX1NJMjE2NT1tCitDT05GSUdfRFZCX01OODg0NzI9bQorQ09ORklHX0RWQl9NTjg4NDcz PW0KKworIworIyBEVkItUyAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKKyMKK0NPTkZJR19EVkJfQ1gy NDExMD1tCitDT05GSUdfRFZCX0NYMjQxMjM9bQorQ09ORklHX0RWQl9NVDMxMj1tCitDT05GSUdf RFZCX1pMMTAwMzY9bQorQ09ORklHX0RWQl9aTDEwMDM5PW0KK0NPTkZJR19EVkJfUzVIMTQyMD1t CitDT05GSUdfRFZCX1NUVjAyODg9bQorQ09ORklHX0RWQl9TVEI2MDAwPW0KK0NPTkZJR19EVkJf U1RWMDI5OT1tCitDT05GSUdfRFZCX1NUVjYxMTA9bQorQ09ORklHX0RWQl9TVFYwOTAwPW0KK0NP TkZJR19EVkJfVERBODA4Mz1tCitDT05GSUdfRFZCX1REQTEwMDg2PW0KK0NPTkZJR19EVkJfVERB ODI2MT1tCitDT05GSUdfRFZCX1ZFUzFYOTM9bQorQ09ORklHX0RWQl9UVU5FUl9JVEQxMDAwPW0K K0NPTkZJR19EVkJfVFVORVJfQ1gyNDExMz1tCitDT05GSUdfRFZCX1REQTgyNlg9bQorQ09ORklH X0RWQl9UVUE2MTAwPW0KK0NPTkZJR19EVkJfQ1gyNDExNj1tCitDT05GSUdfRFZCX0NYMjQxMTc9 bQorQ09ORklHX0RWQl9DWDI0MTIwPW0KK0NPTkZJR19EVkJfU0kyMVhYPW0KK0NPTkZJR19EVkJf VFMyMDIwPW0KK0NPTkZJR19EVkJfRFMzMDAwPW0KK0NPTkZJR19EVkJfTUI4NkExNj1tCitDT05G SUdfRFZCX1REQTEwMDcxPW0KKworIworIyBEVkItVCAodGVycmVzdHJpYWwpIGZyb250ZW5kcwor IworQ09ORklHX0RWQl9TUDg4N1g9bQorQ09ORklHX0RWQl9DWDIyNzAwPW0KK0NPTkZJR19EVkJf Q1gyMjcwMj1tCitDT05GSUdfRFZCX1M1SDE0MzI9bQorQ09ORklHX0RWQl9EUlhEPW0KK0NPTkZJ R19EVkJfTDY0NzgxPW0KK0NPTkZJR19EVkJfVERBMTAwNFg9bQorQ09ORklHX0RWQl9OWFQ2MDAw PW0KK0NPTkZJR19EVkJfTVQzNTI9bQorQ09ORklHX0RWQl9aTDEwMzUzPW0KK0NPTkZJR19EVkJf RElCMzAwME1CPW0KK0NPTkZJR19EVkJfRElCMzAwME1DPW0KK0NPTkZJR19EVkJfRElCNzAwME09 bQorQ09ORklHX0RWQl9ESUI3MDAwUD1tCitDT05GSUdfRFZCX0RJQjkwMDA9bQorQ09ORklHX0RW Ql9UREExMDA0OD1tCitDT05GSUdfRFZCX0FGOTAxMz1tCitDT05GSUdfRFZCX0VDMTAwPW0KK0NP TkZJR19EVkJfU1RWMDM2Nz1tCitDT05GSUdfRFZCX0NYRDI4MjBSPW0KK0NPTkZJR19EVkJfQ1hE Mjg0MUVSPW0KK0NPTkZJR19EVkJfUlRMMjgzMD1tCitDT05GSUdfRFZCX1JUTDI4MzI9bQorQ09O RklHX0RWQl9TSTIxNjg9bQorQ09ORklHX0RWQl9BUzEwMl9GRT1tCitDT05GSUdfRFZCX1pEMTMw MV9ERU1PRD1tCitDT05GSUdfRFZCX0dQOFBTS19GRT1tCitDT05GSUdfRFZCX0NYRDI4ODA9bQor CisjCisjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX1ZFUzE4MjA9bQor Q09ORklHX0RWQl9UREExMDAyMT1tCitDT05GSUdfRFZCX1REQTEwMDIzPW0KK0NPTkZJR19EVkJf U1RWMDI5Nz1tCisKKyMKKyMgQVRTQyAoTm9ydGggQW1lcmljYW4vS29yZWFuIFRlcnJlc3RyaWFs L0NhYmxlIERUVikgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX05YVDIwMFg9bQorQ09ORklHX0RW Ql9PUjUxMjExPW0KK0NPTkZJR19EVkJfT1I1MTEzMj1tCitDT05GSUdfRFZCX0JDTTM1MTA9bQor Q09ORklHX0RWQl9MR0RUMzMwWD1tCitDT05GSUdfRFZCX0xHRFQzMzA1PW0KK0NPTkZJR19EVkJf TEdEVDMzMDZBPW0KK0NPTkZJR19EVkJfTEcyMTYwPW0KK0NPTkZJR19EVkJfUzVIMTQwOT1tCitD T05GSUdfRFZCX0FVODUyMj1tCitDT05GSUdfRFZCX0FVODUyMl9EVFY9bQorQ09ORklHX0RWQl9T NUgxNDExPW0KK0NPTkZJR19EVkJfTVhMNjkyPW0KKworIworIyBJU0RCLVQgKHRlcnJlc3RyaWFs KSBmcm9udGVuZHMKKyMKK0NPTkZJR19EVkJfUzkyMT1tCitDT05GSUdfRFZCX0RJQjgwMDA9bQor Q09ORklHX0RWQl9NQjg2QTIwUz1tCisKKyMKKyMgSVNEQi1TIChzYXRlbGxpdGUpICYgSVNEQi1U ICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX1RDOTA1MjI9bQorQ09ORklH X0RWQl9NTjg4NDQzWD1tCisKKyMKKyMgRGlnaXRhbCB0ZXJyZXN0cmlhbCBvbmx5IHR1bmVycy9Q TEwKKyMKK0NPTkZJR19EVkJfUExMPW0KK0NPTkZJR19EVkJfVFVORVJfRElCMDA3MD1tCitDT05G SUdfRFZCX1RVTkVSX0RJQjAwOTA9bQorCisjCisjIFNFQyBjb250cm9sIGRldmljZXMgZm9yIERW Qi1TCisjCitDT05GSUdfRFZCX0RSWDM5WFlKPW0KK0NPTkZJR19EVkJfTE5CSDI1PW0KK0NPTkZJ R19EVkJfTE5CSDI5PW0KK0NPTkZJR19EVkJfTE5CUDIxPW0KK0NPTkZJR19EVkJfTE5CUDIyPW0K K0NPTkZJR19EVkJfSVNMNjQwNT1tCitDT05GSUdfRFZCX0lTTDY0MjE9bQorQ09ORklHX0RWQl9J U0w2NDIzPW0KK0NPTkZJR19EVkJfQTgyOTM9bQorQ09ORklHX0RWQl9MR1M4R0w1PW0KK0NPTkZJ R19EVkJfTEdTOEdYWD1tCitDT05GSUdfRFZCX0FUQk04ODMwPW0KK0NPTkZJR19EVkJfVERBNjY1 eD1tCitDT05GSUdfRFZCX0lYMjUwNVY9bQorQ09ORklHX0RWQl9NODhSUzIwMDA9bQorQ09ORklH X0RWQl9BRjkwMzM9bQorQ09ORklHX0RWQl9IT1JVUzNBPW0KK0NPTkZJR19EVkJfQVNDT1QyRT1t CitDT05GSUdfRFZCX0hFTEVORT1tCisKKyMKKyMgQ29tbW9uIEludGVyZmFjZSAoRU41MDIyMSkg Y29udHJvbGxlciBkcml2ZXJzCisjCitDT05GSUdfRFZCX0NYRDIwOTk9bQorQ09ORklHX0RWQl9T UDI9bQorIyBlbmQgb2YgQ3VzdG9taXNlIERWQiBGcm9udGVuZHMKKworIworIyBUb29scyB0byBk ZXZlbG9wIG5ldyBmcm9udGVuZHMKKyMKK0NPTkZJR19EVkJfRFVNTVlfRkU9bQorIyBlbmQgb2Yg TWVkaWEgYW5jaWxsYXJ5IGRyaXZlcnMKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCitDT05G SUdfVkdBX0FSQj15CitDT05GSUdfVkdBX0FSQl9NQVhfR1BVUz0xNgorQ09ORklHX0RSTT15CitD T05GSUdfRFJNX01JUElfREJJPW0KK0NPTkZJR19EUk1fTUlQSV9EU0k9eQorQ09ORklHX0RSTV9E UF9BVVhfQlVTPW0KK0NPTkZJR19EUk1fRFBfQVVYX0NIQVJERVY9eQorIyBDT05GSUdfRFJNX0RF QlVHX01NIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9ERUJVR19TRUxGVEVTVCBpcyBub3Qgc2V0 CitDT05GSUdfRFJNX0tNU19IRUxQRVI9eQorIyBDT05GSUdfRFJNX0RFQlVHX0RQX01TVF9UT1BP TE9HWV9SRUZTIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OPXkKK0NPTkZJ R19EUk1fRkJERVZfT1ZFUkFMTE9DPTEwMAorIyBDT05GSUdfRFJNX0ZCREVWX0xFQUtfUEhZU19T TUVNIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fTE9BRF9FRElEX0ZJUk1XQVJFPXkKK0NPTkZJR19E Uk1fRFBfQ0VDPXkKK0NPTkZJR19EUk1fVFRNPW0KK0NPTkZJR19EUk1fVlJBTV9IRUxQRVI9bQor Q09ORklHX0RSTV9UVE1fSEVMUEVSPW0KK0NPTkZJR19EUk1fR0VNX0NNQV9IRUxQRVI9eQorQ09O RklHX0RSTV9LTVNfQ01BX0hFTFBFUj15CitDT05GSUdfRFJNX0dFTV9TSE1FTV9IRUxQRVI9eQor Q09ORklHX0RSTV9TQ0hFRD1tCisKKyMKKyMgSTJDIGVuY29kZXIgb3IgaGVscGVyIGNoaXBzCisj CitDT05GSUdfRFJNX0kyQ19DSDcwMDY9bQorQ09ORklHX0RSTV9JMkNfU0lMMTY0PW0KK0NPTkZJ R19EUk1fSTJDX05YUF9UREE5OThYPXkKK0NPTkZJR19EUk1fSTJDX05YUF9UREE5OTUwPW0KKyMg ZW5kIG9mIEkyQyBlbmNvZGVyIG9yIGhlbHBlciBjaGlwcworCisjCisjIEFSTSBkZXZpY2VzCisj CitDT05GSUdfRFJNX0tPTUVEQT1tCisjIGVuZCBvZiBBUk0gZGV2aWNlcworCitDT05GSUdfRFJN X1JBREVPTj1tCitDT05GSUdfRFJNX1JBREVPTl9VU0VSUFRSPXkKK0NPTkZJR19EUk1fQU1ER1BV PW0KK0NPTkZJR19EUk1fQU1ER1BVX1NJPXkKK0NPTkZJR19EUk1fQU1ER1BVX0NJSz15CitDT05G SUdfRFJNX0FNREdQVV9VU0VSUFRSPXkKKworIworIyBBQ1AgKEF1ZGlvIENvUHJvY2Vzc29yKSBD b25maWd1cmF0aW9uCisjCitDT05GSUdfRFJNX0FNRF9BQ1A9eQorIyBlbmQgb2YgQUNQIChBdWRp byBDb1Byb2Nlc3NvcikgQ29uZmlndXJhdGlvbgorCisjCisjIERpc3BsYXkgRW5naW5lIENvbmZp Z3VyYXRpb24KKyMKK0NPTkZJR19EUk1fQU1EX0RDPXkKKyMgQ09ORklHX0RSTV9BTURfRENfSERD UCBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0FNRF9EQ19TST15CisjIENPTkZJR19ERUJVR19LRVJO RUxfREMgaXMgbm90IHNldAorIyBlbmQgb2YgRGlzcGxheSBFbmdpbmUgQ29uZmlndXJhdGlvbgor CitDT05GSUdfRFJNX05PVVZFQVU9bQorIyBDT05GSUdfTk9VVkVBVV9MRUdBQ1lfQ1RYX1NVUFBP UlQgaXMgbm90IHNldAorQ09ORklHX05PVVZFQVVfREVCVUc9NQorQ09ORklHX05PVVZFQVVfREVC VUdfREVGQVVMVD0zCisjIENPTkZJR19OT1VWRUFVX0RFQlVHX01NVSBpcyBub3Qgc2V0CisjIENP TkZJR19OT1VWRUFVX0RFQlVHX1BVU0ggaXMgbm90IHNldAorQ09ORklHX0RSTV9OT1VWRUFVX0JB Q0tMSUdIVD15CisjIENPTkZJR19EUk1fVkdFTSBpcyBub3Qgc2V0CitDT05GSUdfRFJNX1ZLTVM9 bQorQ09ORklHX0RSTV9VREw9bQorQ09ORklHX0RSTV9BU1Q9bQorQ09ORklHX0RSTV9NR0FHMjAw PW0KK0NPTkZJR19EUk1fUkNBUl9EV19IRE1JPW0KK0NPTkZJR19EUk1fUkNBUl9MVkRTPW0KK0NP TkZJR19EUk1fUVhMPW0KK0NPTkZJR19EUk1fVklSVElPX0dQVT1tCitDT05GSUdfRFJNX1BBTkVM PXkKKworIworIyBEaXNwbGF5IFBhbmVscworIworQ09ORklHX0RSTV9QQU5FTF9BQlRfWTAzMFhY MDY3QT1tCitDT05GSUdfRFJNX1BBTkVMX0FSTV9WRVJTQVRJTEU9bQorQ09ORklHX0RSTV9QQU5F TF9BU1VTX1owMFRfVE01UDVfTlQzNTU5Nj1tCitDT05GSUdfRFJNX1BBTkVMX0JPRV9ISU1BWDgy NzlEPW0KK0NPTkZJR19EUk1fUEFORUxfQk9FX1RWMTAxV1VNX05MNj1tCitDT05GSUdfRFJNX1BB TkVMX0RTSV9DTT1tCitDT05GSUdfRFJNX1BBTkVMX0xWRFM9bQorQ09ORklHX0RSTV9QQU5FTF9T SU1QTEU9bQorQ09ORklHX0RSTV9QQU5FTF9FTElEQV9LRDM1VDEzMz1tCitDT05GSUdfRFJNX1BB TkVMX0ZFSVhJTl9LMTAxX0lNMkJBMDI9bQorQ09ORklHX0RSTV9QQU5FTF9GRUlZQU5HX0ZZMDcw MjRESTI2QTMwRD1tCitDT05GSUdfRFJNX1BBTkVMX0lMSVRFS19JTDkzMjI9bQorQ09ORklHX0RS TV9QQU5FTF9JTElURUtfSUxJOTM0MT1tCitDT05GSUdfRFJNX1BBTkVMX0lMSVRFS19JTEk5ODgx Qz1tCitDT05GSUdfRFJNX1BBTkVMX0lOTk9MVVhfRUowMzBOQT1tCitDT05GSUdfRFJNX1BBTkVM X0lOTk9MVVhfUDA3OVpDQT1tCitDT05GSUdfRFJNX1BBTkVMX0pBREFSRF9KRDkzNjVEQV9IMz1t CitDT05GSUdfRFJNX1BBTkVMX0pESV9MVDA3ME1FMDUwMDA9bQorQ09ORklHX0RSTV9QQU5FTF9L SEFEQVNfVFMwNTA9bQorQ09ORklHX0RSTV9QQU5FTF9LSU5HRElTUExBWV9LRDA5N0QwND1tCitD T05GSUdfRFJNX1BBTkVMX0xFQURURUtfTFRLMDUwSDMxNDZXPW0KK0NPTkZJR19EUk1fUEFORUxf TEVBRFRFS19MVEs1MDBIRDE4Mjk9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX0xEOTA0MD1t CitDT05GSUdfRFJNX1BBTkVMX0xHX0xCMDM1UTAyPW0KK0NPTkZJR19EUk1fUEFORUxfTEdfTEc0 NTczPW0KK0NPTkZJR19EUk1fUEFORUxfTkVDX05MODA0OEhMMTE9bQorQ09ORklHX0RSTV9QQU5F TF9OT1ZBVEVLX05UMzU1MTA9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzY2NzJBPW0K K0NPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM5MDE2PW0KK0NPTkZJR19EUk1fUEFORUxfTUFO VElYX01MQUYwNTdXRTUxPW0KK0NPTkZJR19EUk1fUEFORUxfT0xJTUVYX0xDRF9PTElOVVhJTk89 bQorQ09ORklHX0RSTV9QQU5FTF9PUklTRVRFQ0hfT1RNODAwOUE9bQorQ09ORklHX0RSTV9QQU5F TF9PU0RfT1NEMTAxVDI1ODdfNTNUUz1tCitDT05GSUdfRFJNX1BBTkVMX1BBTkFTT05JQ19WVlgx MEYwMzROMDA9bQorQ09ORklHX0RSTV9QQU5FTF9SQVNQQkVSUllQSV9UT1VDSFNDUkVFTj1tCitD T05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02NzE5MT1tCitDT05GSUdfRFJNX1BBTkVMX1JBWURJ VU1fUk02ODIwMD1tCitDT05GSUdfRFJNX1BBTkVMX1JPTkJPX1JCMDcwRDMwPW0KK0NPTkZJR19E Uk1fUEFORUxfU0FNU1VOR19BVE5BMzNYQzIwPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19E Qjc0MzA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RDE2RDA9bQorQ09ORklHX0RSTV9Q QU5FTF9TQU1TVU5HX1M2RTNIQTI9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzSjBY MDM9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzTTA9bQorQ09ORklHX0RSTV9QQU5F TF9TQU1TVU5HX1M2RTYzTTBfU1BJPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU2M00w X0RTST1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFODhBMF9BTVM0NTJFRjAxPW0KK0NP TkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4QUEwPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VO R19TT0ZFRjAwPW0KK0NPTkZJR19EUk1fUEFORUxfU0VJS09fNDNXVkYxRz1tCitDT05GSUdfRFJN X1BBTkVMX1NIQVJQX0xRMTAxUjFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwMzdW N0RXMDE9bQorQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUzA0M1QxTEUwMT1tCitDT05GSUdfRFJN X1BBTkVMX1NJVFJPTklYX1NUNzcwMT1tCitDT05GSUdfRFJNX1BBTkVMX1NJVFJPTklYX1NUNzcw Mz1tCitDT05GSUdfRFJNX1BBTkVMX1NJVFJPTklYX1NUNzc4OVY9bQorQ09ORklHX0RSTV9QQU5F TF9TT05ZX0FDWDQyNEFLUD1tCitDT05GSUdfRFJNX1BBTkVMX1NPTllfQUNYNTY1QUtNPW0KK0NP TkZJR19EUk1fUEFORUxfVERPX1RMMDcwV1NIMzA9bQorQ09ORklHX0RSTV9QQU5FTF9UUE9fVEQw MjhUVEVDMT1tCitDT05GSUdfRFJNX1BBTkVMX1RQT19URDA0M01URUExPW0KK0NPTkZJR19EUk1f UEFORUxfVFBPX1RQRzExMD1tCitDT05GSUdfRFJNX1BBTkVMX1RSVUxZX05UMzU1OTdfV1FYR0E9 bQorQ09ORklHX0RSTV9QQU5FTF9WSVNJT05PWF9STTY5Mjk5PW0KK0NPTkZJR19EUk1fUEFORUxf V0lERUNISVBTX1dTMjQwMT1tCitDT05GSUdfRFJNX1BBTkVMX1hJTlBFTkdfWFBQMDU1QzI3Mj1t CisjIGVuZCBvZiBEaXNwbGF5IFBhbmVscworCitDT05GSUdfRFJNX0JSSURHRT15CitDT05GSUdf RFJNX1BBTkVMX0JSSURHRT15CisKKyMKKyMgRGlzcGxheSBJbnRlcmZhY2UgQnJpZGdlcworIwor Q09ORklHX0RSTV9DRE5TX0RTST1tCitDT05GSUdfRFJNX0NISVBPTkVfSUNONjIxMT1tCitDT05G SUdfRFJNX0NIUk9OVEVMX0NINzAzMz1tCitDT05GSUdfRFJNX0RJU1BMQVlfQ09OTkVDVE9SPW0K K0NPTkZJR19EUk1fTE9OVElVTV9MVDg5MTJCPW0KK0NPTkZJR19EUk1fTE9OVElVTV9MVDk2MTE9 bQorQ09ORklHX0RSTV9MT05USVVNX0xUOTYxMVVYQz1tCitDT05GSUdfRFJNX0lURV9JVDY2MTIx PW0KK0NPTkZJR19EUk1fTFZEU19DT0RFQz1tCitDT05GSUdfRFJNX01FR0FDSElQU19TVERQWFhY WF9HRV9CODUwVjNfRlc9bQorQ09ORklHX0RSTV9OV0xfTUlQSV9EU0k9bQorQ09ORklHX0RSTV9O WFBfUFROMzQ2MD1tCitDT05GSUdfRFJNX1BBUkFERV9QUzg2MjI9bQorQ09ORklHX0RSTV9QQVJB REVfUFM4NjQwPW0KK0NPTkZJR19EUk1fU0lMX1NJSTg2MjA9bQorQ09ORklHX0RSTV9TSUk5MDJY PW0KK0NPTkZJR19EUk1fU0lJOTIzND1tCitDT05GSUdfRFJNX1NJTVBMRV9CUklER0U9bQorQ09O RklHX0RSTV9USElORV9USEM2M0xWRDEwMjQ9bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzYy PW0KK0NPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2ND1tCitDT05GSUdfRFJNX1RPU0hJQkFfVEMz NTg3Njc9bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzY4PW0KK0NPTkZJR19EUk1fVE9TSElC QV9UQzM1ODc3NT1tCitDT05GSUdfRFJNX1RJX1RGUDQxMD1tCitDT05GSUdfRFJNX1RJX1NONjVE U0k4Mz1tCitDT05GSUdfRFJNX1RJX1NONjVEU0k4Nj1tCitDT05GSUdfRFJNX1RJX1RQRDEyUzAx NT1tCitDT05GSUdfRFJNX0FOQUxPR0lYX0FOWDYzNDU9bQorQ09ORklHX0RSTV9BTkFMT0dJWF9B Tlg3OFhYPW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfRFA9bQorQ09ORklHX0RSTV9BTkFMT0dJWF9B Tlg3NjI1PW0KK0NPTkZJR19EUk1fSTJDX0FEVjc1MTE9bQorQ09ORklHX0RSTV9JMkNfQURWNzUx MV9BVURJTz15CitDT05GSUdfRFJNX0kyQ19BRFY3NTExX0NFQz15CitDT05GSUdfRFJNX0NETlNf TUhEUDg1NDY9bQorQ09ORklHX0RSTV9EV19IRE1JPW0KK0NPTkZJR19EUk1fRFdfSERNSV9BSEJf QVVESU89bQorQ09ORklHX0RSTV9EV19IRE1JX0kyU19BVURJTz1tCitDT05GSUdfRFJNX0RXX0hE TUlfQ0VDPW0KKyMgZW5kIG9mIERpc3BsYXkgSW50ZXJmYWNlIEJyaWRnZXMKKworQ09ORklHX0RS TV9FVE5BVklWPW0KK0NPTkZJR19EUk1fRVROQVZJVl9USEVSTUFMPXkKKyMgQ09ORklHX0RSTV9N WFNGQiBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fQVJDUEdVIGlzIG5vdCBzZXQKK0NPTkZJR19E Uk1fQk9DSFM9bQorQ09ORklHX0RSTV9DSVJSVVNfUUVNVT1tCitDT05GSUdfRFJNX0dNMTJVMzIw PW0KK0NPTkZJR19EUk1fU0lNUExFRFJNPW0KK0NPTkZJR19USU5ZRFJNX0hYODM1N0Q9bQorQ09O RklHX1RJTllEUk1fSUxJOTIyNT1tCitDT05GSUdfVElOWURSTV9JTEk5MzQxPW0KK0NPTkZJR19U SU5ZRFJNX0lMSTk0ODY9bQorQ09ORklHX1RJTllEUk1fTUkwMjgzUVQ9bQorQ09ORklHX1RJTllE Uk1fUkVQQVBFUj1tCitDT05GSUdfVElOWURSTV9TVDc1ODY9bQorQ09ORklHX1RJTllEUk1fU1Q3 NzM1Uj1tCitDT05GSUdfRFJNX0dVRD1tCitDT05GSUdfRFJNX1ZFUklTSUxJQ09OPXkKK0NPTkZJ R19WRVJJU0lMSUNPTl9WSVJUVUFMX0RJU1BMQVk9eQorQ09ORklHX1ZFUklTSUxJQ09OX0RXX01J UElfRFNJPXkKK0NPTkZJR19WRVJJU0lMSUNPTl9NTVU9eQorQ09ORklHX1ZFUklTSUxJQ09OX0RF Qz15CitDT05GSUdfU1RBUkZJVkVfSU5OT19IRE1JPXkKK0NPTkZJR19TVEFSRklWRV9EU0k9eQor Q09ORklHX0RSTV9JMkNfQURWNzUxMz1tCitDT05GSUdfRFJNX0lNRz15CitDT05GSUdfRFJNX0lN R19ST0dVRT15CitDT05GSUdfRFJNX0xFR0FDWT15CisjIENPTkZJR19EUk1fVERGWCBpcyBub3Qg c2V0CisjIENPTkZJR19EUk1fUjEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fTUdBIGlzIG5v dCBzZXQKKyMgQ09ORklHX0RSTV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1NBVkFHRSBp cyBub3Qgc2V0CitDT05GSUdfRFJNX1BBTkVMX09SSUVOVEFUSU9OX1FVSVJLUz15CisKKyMKKyMg RnJhbWUgYnVmZmVyIERldmljZXMKKyMKK0NPTkZJR19GQl9DTURMSU5FPXkKK0NPTkZJR19GQl9O T1RJRlk9eQorQ09ORklHX0ZCPXkKK0NPTkZJR19GSVJNV0FSRV9FRElEPXkKK0NPTkZJR19GQl9E REM9bQorQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CitDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkK K0NPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKK0NPTkZJR19GQl9TWVNfRklMTFJFQ1Q9eQorQ09O RklHX0ZCX1NZU19DT1BZQVJFQT15CitDT05GSUdfRkJfU1lTX0lNQUdFQkxJVD15CisjIENPTkZJ R19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CitDT05GSUdfRkJfU1lTX0ZPUFM9eQorQ09O RklHX0ZCX0RFRkVSUkVEX0lPPXkKK0NPTkZJR19GQl9CQUNLTElHSFQ9bQorQ09ORklHX0ZCX01P REVfSEVMUEVSUz15CitDT05GSUdfRkJfVElMRUJMSVRUSU5HPXkKKworIworIyBGcmFtZSBidWZm ZXIgaGFyZHdhcmUgZHJpdmVycworIworIyBDT05GSUdfRkJfQ0lSUlVTIGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCX1BNMiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DWUJFUjIwMDAgaXMgbm90IHNl dAorIyBDT05GSUdfRkJfQVNJTElBTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSU1TVFQgaXMg bm90IHNldAorQ09ORklHX0ZCX1VWRVNBPW0KK0NPTkZJR19GQl9FRkk9eQorIyBDT05GSUdfRkJf T1BFTkNPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQK K0NPTkZJR19GQl9JNzQwPW0KKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJ R19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENP TkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNl dAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5v dCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5U IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMg aXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0FSTUlORSBpcyBub3Qgc2V0CitDT05GSUdfRkJfU01T Q1VGWD1tCisjIENPTkZJR19GQl9VREwgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSUJNX0dYVDQ1 MDAgaXMgbm90IHNldAorQ09ORklHX0ZCX0dPTERGSVNIPW0KK0NPTkZJR19GQl9WSVJUVUFMPW0K K0NPTkZJR19GQl9NRVRST05PTUU9bQorQ09ORklHX0ZCX01CODYyWFg9bQorQ09ORklHX0ZCX01C ODYyWFhfUENJX0dEQz15CitDT05GSUdfRkJfTUI4NjJYWF9JMkM9eQorIyBDT05GSUdfRkJfU0lN UExFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NTRDEzMDcgaXMgbm90IHNldAorIyBDT05GSUdf RkJfU003MTIgaXMgbm90IHNldAorIyBlbmQgb2YgRnJhbWUgYnVmZmVyIERldmljZXMKKworIwor IyBCYWNrbGlnaHQgJiBMQ0QgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19MQ0RfQ0xBU1NfREVW SUNFPW0KKyMgQ09ORklHX0xDRF9MNEYwMDI0MlQwMyBpcyBub3Qgc2V0CisjIENPTkZJR19MQ0Rf TE1TMjgzR0YwNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQ0RfTFRWMzUwUVYgaXMgbm90IHNldAor IyBDT05GSUdfTENEX0lMSTkyMlggaXMgbm90IHNldAorIyBDT05GSUdfTENEX0lMSTkzMjAgaXMg bm90IHNldAorIyBDT05GSUdfTENEX1RETzI0TSBpcyBub3Qgc2V0CisjIENPTkZJR19MQ0RfVkdH MjQzMkE0IGlzIG5vdCBzZXQKK0NPTkZJR19MQ0RfUExBVEZPUk09bQorIyBDT05GSUdfTENEX0FN UzM2OUZHMDYgaXMgbm90IHNldAorIyBDT05GSUdfTENEX0xNUzUwMUtGMDMgaXMgbm90IHNldAor IyBDT05GSUdfTENEX0hYODM1NyBpcyBub3Qgc2V0CitDT05GSUdfTENEX09UTTMyMjVBPW0KK0NP TkZJR19CQUNLTElHSFRfQ0xBU1NfREVWSUNFPXkKK0NPTkZJR19CQUNLTElHSFRfS1REMjUzPW0K K0NPTkZJR19CQUNLTElHSFRfTE0zNTMzPW0KK0NPTkZJR19CQUNLTElHSFRfUFdNPW0KK0NPTkZJ R19CQUNLTElHSFRfUUNPTV9XTEVEPW0KK0NPTkZJR19CQUNLTElHSFRfUlQ0ODMxPW0KK0NPTkZJ R19CQUNLTElHSFRfQURQODg2MD1tCitDT05GSUdfQkFDS0xJR0hUX0FEUDg4NzA9bQorQ09ORklH X0JBQ0tMSUdIVF9MTTM2MzBBPW0KK0NPTkZJR19CQUNLTElHSFRfTE0zNjM5PW0KK0NPTkZJR19C QUNLTElHSFRfTFA4NTVYPW0KK0NPTkZJR19CQUNLTElHSFRfU0tZODE0NTI9bQorQ09ORklHX0JB Q0tMSUdIVF9HUElPPW0KK0NPTkZJR19CQUNLTElHSFRfTFY1MjA3TFA9bQorQ09ORklHX0JBQ0tM SUdIVF9CRDYxMDc9bQorQ09ORklHX0JBQ0tMSUdIVF9BUkNYQ05OPW0KK0NPTkZJR19CQUNLTElH SFRfTEVEPW0KKyMgZW5kIG9mIEJhY2tsaWdodCAmIExDRCBkZXZpY2Ugc3VwcG9ydAorCitDT05G SUdfVkdBU1RBVEU9bQorQ09ORklHX1ZJREVPTU9ERV9IRUxQRVJTPXkKK0NPTkZJR19IRE1JPXkK KworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKK0NPTkZJR19WR0FfQ09O U09MRT15CitDT05GSUdfRFVNTVlfQ09OU09MRT15CitDT05GSUdfRFVNTVlfQ09OU09MRV9DT0xV TU5TPTgwCitDT05GSUdfRFVNTVlfQ09OU09MRV9ST1dTPTI1CitDT05GSUdfRlJBTUVCVUZGRVJf Q09OU09MRT15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWT15CitD T05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTj15CisjIENPTkZJR19GUkFNRUJVRkZF Ul9DT05TT0xFX0RFRkVSUkVEX1RBS0VPVkVSIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENvbnNvbGUg ZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorCisjIENPTkZJR19MT0dPIGlzIG5vdCBzZXQKKyMgZW5k IG9mIEdyYXBoaWNzIHN1cHBvcnQKKworQ09ORklHX1NPVU5EPXkKK0NPTkZJR19TT1VORF9PU1Nf Q09SRT15CisjIENPTkZJR19TT1VORF9PU1NfQ09SRV9QUkVDTEFJTSBpcyBub3Qgc2V0CitDT05G SUdfU05EPXkKK0NPTkZJR19TTkRfVElNRVI9eQorQ09ORklHX1NORF9QQ009eQorQ09ORklHX1NO RF9QQ01fRUxEPXkKK0NPTkZJR19TTkRfUENNX0lFQzk1OD15CitDT05GSUdfU05EX0RNQUVOR0lO RV9QQ009eQorQ09ORklHX1NORF9IV0RFUD1tCitDT05GSUdfU05EX1NFUV9ERVZJQ0U9bQorQ09O RklHX1NORF9SQVdNSURJPW0KK0NPTkZJR19TTkRfSkFDSz15CitDT05GSUdfU05EX0pBQ0tfSU5Q VVRfREVWPXkKK0NPTkZJR19TTkRfT1NTRU1VTD15CitDT05GSUdfU05EX01JWEVSX09TUz1tCitD T05GSUdfU05EX1BDTV9PU1M9bQorQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQorQ09ORklH X1NORF9QQ01fVElNRVI9eQorQ09ORklHX1NORF9IUlRJTUVSPW0KK0NPTkZJR19TTkRfRFlOQU1J Q19NSU5PUlM9eQorQ09ORklHX1NORF9NQVhfQ0FSRFM9MzIKK0NPTkZJR19TTkRfU1VQUE9SVF9P TERfQVBJPXkKK0NPTkZJR19TTkRfUFJPQ19GUz15CitDT05GSUdfU05EX1ZFUkJPU0VfUFJPQ0ZT PXkKK0NPTkZJR19TTkRfVkVSQk9TRV9QUklOVEs9eQorQ09ORklHX1NORF9ERUJVRz15CisjIENP TkZJR19TTkRfREVCVUdfVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfU05EX1BDTV9YUlVOX0RF QlVHPXkKKyMgQ09ORklHX1NORF9DVExfVkFMSURBVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19T TkRfSkFDS19JTkpFQ1RJT05fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NORF9WTUFTVEVSPXkK K0NPTkZJR19TTkRfQ1RMX0xFRD1tCitDT05GSUdfU05EX1NFUVVFTkNFUj1tCitDT05GSUdfU05E X1NFUV9EVU1NWT1tCitDT05GSUdfU05EX1NFUVVFTkNFUl9PU1M9bQorQ09ORklHX1NORF9TRVFf SFJUSU1FUl9ERUZBVUxUPXkKK0NPTkZJR19TTkRfU0VRX01JRElfRVZFTlQ9bQorQ09ORklHX1NO RF9TRVFfTUlEST1tCitDT05GSUdfU05EX1NFUV9NSURJX0VNVUw9bQorQ09ORklHX1NORF9TRVFf VklSTUlEST1tCitDT05GSUdfU05EX01QVTQwMV9VQVJUPW0KK0NPTkZJR19TTkRfT1BMM19MSUI9 bQorQ09ORklHX1NORF9PUEwzX0xJQl9TRVE9bQorQ09ORklHX1NORF9WWF9MSUI9bQorQ09ORklH X1NORF9BQzk3X0NPREVDPW0KK0NPTkZJR19TTkRfRFJJVkVSUz15CitDT05GSUdfU05EX0RVTU1Z PW0KK0NPTkZJR19TTkRfQUxPT1A9bQorQ09ORklHX1NORF9WSVJNSURJPW0KK0NPTkZJR19TTkRf TVRQQVY9bQorQ09ORklHX1NORF9NVFM2ND1tCitDT05GSUdfU05EX1NFUklBTF9VMTY1NTA9bQor Q09ORklHX1NORF9NUFU0MDE9bQorQ09ORklHX1NORF9QT1JUTUFOMlg0PW0KK0NPTkZJR19TTkRf QUM5N19QT1dFUl9TQVZFPXkKK0NPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFQ9MAor Q09ORklHX1NORF9QQ0k9eQorQ09ORklHX1NORF9BRDE4ODk9bQorQ09ORklHX1NORF9BVElJWFA9 bQorQ09ORklHX1NORF9BVElJWFBfTU9ERU09bQorQ09ORklHX1NORF9BVTg4MTA9bQorQ09ORklH X1NORF9BVTg4MjA9bQorQ09ORklHX1NORF9BVTg4MzA9bQorQ09ORklHX1NORF9BVzI9bQorQ09O RklHX1NORF9CVDg3WD1tCisjIENPTkZJR19TTkRfQlQ4N1hfT1ZFUkNMT0NLIGlzIG5vdCBzZXQK K0NPTkZJR19TTkRfQ0EwMTA2PW0KK0NPTkZJR19TTkRfQ01JUENJPW0KK0NPTkZJR19TTkRfT1hZ R0VOX0xJQj1tCitDT05GSUdfU05EX09YWUdFTj1tCitDT05GSUdfU05EX0NTNDI4MT1tCitDT05G SUdfU05EX0NTNDZYWD1tCitDT05GSUdfU05EX0NTNDZYWF9ORVdfRFNQPXkKK0NPTkZJR19TTkRf Q1RYRkk9bQorQ09ORklHX1NORF9EQVJMQTIwPW0KK0NPTkZJR19TTkRfR0lOQTIwPW0KK0NPTkZJ R19TTkRfTEFZTEEyMD1tCitDT05GSUdfU05EX0RBUkxBMjQ9bQorQ09ORklHX1NORF9HSU5BMjQ9 bQorQ09ORklHX1NORF9MQVlMQTI0PW0KK0NPTkZJR19TTkRfTU9OQT1tCitDT05GSUdfU05EX01J QT1tCitDT05GSUdfU05EX0VDSE8zRz1tCitDT05GSUdfU05EX0lORElHTz1tCitDT05GSUdfU05E X0lORElHT0lPPW0KK0NPTkZJR19TTkRfSU5ESUdPREo9bQorQ09ORklHX1NORF9JTkRJR09JT1g9 bQorQ09ORklHX1NORF9JTkRJR09ESlg9bQorQ09ORklHX1NORF9FTlMxMzcwPW0KK0NPTkZJR19T TkRfRU5TMTM3MT1tCitDT05GSUdfU05EX0ZNODAxPW0KK0NPTkZJR19TTkRfSERTUD1tCitDT05G SUdfU05EX0hEU1BNPW0KK0NPTkZJR19TTkRfSUNFMTcyND1tCitDT05GSUdfU05EX0lOVEVMOFgw PW0KK0NPTkZJR19TTkRfSU5URUw4WDBNPW0KK0NPTkZJR19TTkRfS09SRzEyMTI9bQorQ09ORklH X1NORF9MT0xBPW0KK0NPTkZJR19TTkRfTFg2NDY0RVM9bQorQ09ORklHX1NORF9NSVhBUlQ9bQor Q09ORklHX1NORF9OTTI1Nj1tCitDT05GSUdfU05EX1BDWEhSPW0KK0NPTkZJR19TTkRfUklQVElE RT1tCitDT05GSUdfU05EX1JNRTMyPW0KK0NPTkZJR19TTkRfUk1FOTY9bQorQ09ORklHX1NORF9S TUU5NjUyPW0KK0NPTkZJR19TTkRfVklBODJYWD1tCitDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU09 bQorQ09ORklHX1NORF9WSVJUVU9TTz1tCitDT05GSUdfU05EX1ZYMjIyPW0KK0NPTkZJR19TTkRf WU1GUENJPW0KKworIworIyBIRC1BdWRpbworIworQ09ORklHX1NORF9IREE9bQorQ09ORklHX1NO RF9IREFfR0VORVJJQ19MRURTPXkKK0NPTkZJR19TTkRfSERBX0lOVEVMPW0KK0NPTkZJR19TTkRf SERBX0hXREVQPXkKK0NPTkZJR19TTkRfSERBX1JFQ09ORklHPXkKK0NPTkZJR19TTkRfSERBX0lO UFVUX0JFRVA9eQorQ09ORklHX1NORF9IREFfSU5QVVRfQkVFUF9NT0RFPTEKK0NPTkZJR19TTkRf SERBX1BBVENIX0xPQURFUj15CitDT05GSUdfU05EX0hEQV9DT0RFQ19SRUFMVEVLPW0KK0NPTkZJ R19TTkRfSERBX0NPREVDX0FOQUxPRz1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19TSUdNQVRFTD1t CitDT05GSUdfU05EX0hEQV9DT0RFQ19WSUE9bQorQ09ORklHX1NORF9IREFfQ09ERUNfSERNST1t CitDT05GSUdfU05EX0hEQV9DT0RFQ19DSVJSVVM9bQorQ09ORklHX1NORF9IREFfQ09ERUNfQ1M4 NDA5PW0KK0NPTkZJR19TTkRfSERBX0NPREVDX0NPTkVYQU5UPW0KK0NPTkZJR19TTkRfSERBX0NP REVDX0NBMDExMD1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DQTAxMzI9bQorQ09ORklHX1NORF9I REFfQ09ERUNfQ0EwMTMyX0RTUD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DTUVESUE9bQorQ09O RklHX1NORF9IREFfQ09ERUNfU0kzMDU0PW0KK0NPTkZJR19TTkRfSERBX0dFTkVSSUM9bQorQ09O RklHX1NORF9IREFfUE9XRVJfU0FWRV9ERUZBVUxUPTEKK0NPTkZJR19TTkRfSERBX0lOVEVMX0hE TUlfU0lMRU5UX1NUUkVBTT15CisjIGVuZCBvZiBIRC1BdWRpbworCitDT05GSUdfU05EX0hEQV9D T1JFPW0KK0NPTkZJR19TTkRfSERBX0RTUF9MT0FERVI9eQorQ09ORklHX1NORF9IREFfQ09NUE9O RU5UPXkKK0NPTkZJR19TTkRfSERBX1BSRUFMTE9DX1NJWkU9MTAyNAorQ09ORklHX1NORF9JTlRF TF9EU1BfQ09ORklHPW0KK0NPTkZJR19TTkRfU1BJPXkKK0NPTkZJR19TTkRfVVNCPXkKK0NPTkZJ R19TTkRfVVNCX0FVRElPPW0KK0NPTkZJR19TTkRfVVNCX0FVRElPX1VTRV9NRURJQV9DT05UUk9M TEVSPXkKK0NPTkZJR19TTkRfVVNCX1VBMTAxPW0KK0NPTkZJR19TTkRfVVNCX0NBSUFRPW0KK0NP TkZJR19TTkRfVVNCX0NBSUFRX0lOUFVUPXkKK0NPTkZJR19TTkRfVVNCXzZGSVJFPW0KK0NPTkZJ R19TTkRfVVNCX0hJRkFDRT1tCitDT05GSUdfU05EX0JDRDIwMDA9bQorQ09ORklHX1NORF9VU0Jf TElORTY9bQorQ09ORklHX1NORF9VU0JfUE9EPW0KK0NPTkZJR19TTkRfVVNCX1BPREhEPW0KK0NP TkZJR19TTkRfVVNCX1RPTkVQT1JUPW0KK0NPTkZJR19TTkRfVVNCX1ZBUklBWD1tCitDT05GSUdf U05EX0ZJUkVXSVJFPXkKK0NPTkZJR19TTkRfRklSRVdJUkVfTElCPW0KK0NPTkZJR19TTkRfRElD RT1tCitDT05GSUdfU05EX09YRlc9bQorQ09ORklHX1NORF9JU0lHSFQ9bQorQ09ORklHX1NORF9G SVJFV09SS1M9bQorQ09ORklHX1NORF9CRUJPQj1tCitDT05GSUdfU05EX0ZJUkVXSVJFX0RJR0kw MFg9bQorQ09ORklHX1NORF9GSVJFV0lSRV9UQVNDQU09bQorQ09ORklHX1NORF9GSVJFV0lSRV9N T1RVPW0KK0NPTkZJR19TTkRfRklSRUZBQ0U9bQorQ09ORklHX1NORF9QQ01DSUE9eQorQ09ORklH X1NORF9WWFBPQ0tFVD1tCitDT05GSUdfU05EX1BEQVVESU9DRj1tCitDT05GSUdfU05EX1NPQz15 CitDT05GSUdfU05EX1NPQ19BQzk3X0JVUz15CitDT05GSUdfU05EX1NPQ19HRU5FUklDX0RNQUVO R0lORV9QQ009eQorIyBDT05GSUdfU05EX1NPQ19BREkgaXMgbm90IHNldAorIyBDT05GSUdfU05E X1NPQ19BTURfQUNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVE1FTF9TT0MgaXMgbm90IHNl dAorIyBDT05GSUdfU05EX0JDTTYzWFhfSTJTX1dISVNUTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NORF9ERVNJR05XQVJFX0kyUyBpcyBub3Qgc2V0CisKKyMKKyMgU29DIEF1ZGlvIGZvciBGcmVl c2NhbGUgQ1BVcworIworCisjCisjIENvbW1vbiBTb0MgQXVkaW8gb3B0aW9ucyBmb3IgRnJlZXNj YWxlIENQVXM6CisjCisjIENPTkZJR19TTkRfU09DX0ZTTF9BU1JDIGlzIG5vdCBzZXQKKyMgQ09O RklHX1NORF9TT0NfRlNMX1NBSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0ZTTF9BVURN SVggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19GU0xfU1NJIGlzIG5vdCBzZXQKKyMgQ09O RklHX1NORF9TT0NfRlNMX1NQRElGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfRlNMX0VT QUkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19GU0xfTUlDRklMIGlzIG5vdCBzZXQKKyMg Q09ORklHX1NORF9TT0NfRlNMX1hDVlIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19GU0xf UlBNU0cgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19JTVhfQVVETVVYIGlzIG5vdCBzZXQK KyMgZW5kIG9mIFNvQyBBdWRpbyBmb3IgRnJlZXNjYWxlIENQVXMKKworIyBDT05GSUdfU05EX0ky U19ISTYyMTBfSTJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfSU1HIGlzIG5vdCBzZXQK KyMgQ09ORklHX1NORF9TT0NfTVRLX0JUQ1ZTRCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09D X1NPRl9UT1BMRVZFTCBpcyBub3Qgc2V0CisKKyMKKyMgU1RNaWNyb2VsZWN0cm9uaWNzIFNUTTMy IFNPQyBhdWRpbyBzdXBwb3J0CisjCisjIGVuZCBvZiBTVE1pY3JvZWxlY3Ryb25pY3MgU1RNMzIg U09DIGF1ZGlvIHN1cHBvcnQKKworIyBDT05GSUdfU05EX1NPQ19YSUxJTlhfSTJTIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NORF9TT0NfWElMSU5YX0FVRElPX0ZPUk1BVFRFUiBpcyBub3Qgc2V0Cisj IENPTkZJR19TTkRfU09DX1hJTElOWF9TUERJRiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09D X1hURlBHQV9JMlMgaXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfU1RBUkZJVkU9eQorQ09ORklH X1NORF9TT0NfU1RBUkZJVkVfUFdNREFDPXkKKyMgQ09ORklHX1NORF9TT0NfU1RBUkZJVkVfUFdN REFDX1BDTSBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NPQ19TVEFSRklWRV9JMlM9eQorQ09ORklH X1NORF9TT0NfU1RBUkZJVkVfUERNPXkKK0NPTkZJR19TTkRfU09DX1NUQVJGSVZFX1RETT15CitD T05GSUdfU05EX1NPQ19TVEFSRklWRV9TUERJRj15CisjIENPTkZJR19TTkRfU09DX1NUQVJGSVZF X1NQRElGX1BDTSBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NPQ19JMkNfQU5EX1NQST15CisKKyMK KyMgQ09ERUMgZHJpdmVycworIworQ09ORklHX1NORF9TT0NfQUMxMDg9bQorQ09ORklHX1NORF9T T0NfQUM5N19DT0RFQz1tCitDT05GSUdfU05EX1NPQ19BREFVX1VUSUxTPW0KK0NPTkZJR19TTkRf U09DX0FEQVUxMzcyPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxMzcyX0kyQz1tCitDT05GSUdfU05E X1NPQ19BREFVMTM3Ml9TUEk9bQorQ09ORklHX1NORF9TT0NfQURBVTE3MDE9bQorQ09ORklHX1NO RF9TT0NfQURBVTE3WDE9bQorQ09ORklHX1NORF9TT0NfQURBVTE3NjE9bQorQ09ORklHX1NORF9T T0NfQURBVTE3NjFfSTJDPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzYxX1NQST1tCitDT05GSUdf U05EX1NPQ19BREFVNzAwMj1tCitDT05GSUdfU05EX1NPQ19BREFVNzExOD1tCitDT05GSUdfU05E X1NPQ19BREFVNzExOF9IVz1tCitDT05GSUdfU05EX1NPQ19BREFVNzExOF9JMkM9bQorQ09ORklH X1NORF9TT0NfQUs0MTA0PW0KKyMgQ09ORklHX1NORF9TT0NfQUs0MTE4IGlzIG5vdCBzZXQKKyMg Q09ORklHX1NORF9TT0NfQUs0NDU4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQUs0NTU0 IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQUs0NjEzIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NORF9TT0NfQUs0NjQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQUs1Mzg2IGlzIG5v dCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQUs1NTU4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9T T0NfQUxDNTYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0JEMjg2MjMgaXMgbm90IHNl dAorIyBDT05GSUdfU05EX1NPQ19CVF9TQ08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19D UENBUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0NTMzVMMzIgaXMgbm90IHNldAorIyBD T05GSUdfU05EX1NPQ19DUzM1TDMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQ1MzNUwz NCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0NTMzVMMzUgaXMgbm90IHNldAorIyBDT05G SUdfU05EX1NPQ19DUzM1TDM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQ1M0Mkw0MiBp cyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0NTNDJMNTFfSTJDIGlzIG5vdCBzZXQKKyMgQ09O RklHX1NORF9TT0NfQ1M0Mkw1MiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0NTNDJMNTYg aXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19DUzQyTDczIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NORF9TT0NfQ1M0MjM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQ1M0MjY1IGlzIG5v dCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQ1M0MjcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9T T0NfQ1M0MjcxX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0NTNDI3MV9TUEkgaXMg bm90IHNldAorIyBDT05GSUdfU05EX1NPQ19DUzQyWFg4X0kyQyBpcyBub3Qgc2V0CisjIENPTkZJ R19TTkRfU09DX0NTNDMxMzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19DUzQzNDEgaXMg bm90IHNldAorIyBDT05GSUdfU05EX1NPQ19DUzQzNDkgaXMgbm90IHNldAorIyBDT05GSUdfU05E X1NPQ19DUzUzTDMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfQ1gyMDcyWCBpcyBub3Qg c2V0CisjIENPTkZJR19TTkRfU09DX0RBNzIxMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09D X0RNSUMgaXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfSERNSV9DT0RFQz15CisjIENPTkZJR19T TkRfU09DX0VTNzEzNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0VTNzI0MSBpcyBub3Qg c2V0CisjIENPTkZJR19TTkRfU09DX0VTODMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09D X0VTODMyOF9JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19FUzgzMjhfU1BJIGlzIG5v dCBzZXQKKyMgQ09ORklHX1NORF9TT0NfR1RNNjAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9T T0NfSUNTNDM0MzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19JTk5PX1JLMzAzNiBpcyBu b3Qgc2V0CisjIENPTkZJR19TTkRfU09DX0xPQ0hOQUdBUl9TQyBpcyBub3Qgc2V0CisjIENPTkZJ R19TTkRfU09DX01BWDk4MDg4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfTUFYOTgzNTdB IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfTUFYOTg1MDQgaXMgbm90IHNldAorIyBDT05G SUdfU05EX1NPQ19NQVg5ODY3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfTUFYOTg5Mjcg aXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19NQVg5ODM3M19JMkMgaXMgbm90IHNldAorIyBD T05GSUdfU05EX1NPQ19NQVg5ODM3M19TRFcgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19N QVg5ODM5MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX01BWDk4NjAgaXMgbm90IHNldAor IyBDT05GSUdfU05EX1NPQ19NU004OTE2X1dDRF9BTkFMT0cgaXMgbm90IHNldAorIyBDT05GSUdf U05EX1NPQ19NU004OTE2X1dDRF9ESUdJVEFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0Nf UENNMTY4MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1BDTTE3ODlfSTJDIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NORF9TT0NfUENNMTc5WF9JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU05E X1NPQ19QQ00xNzlYX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1BDTTE4NlhfSTJD IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfUENNMTg2WF9TUEkgaXMgbm90IHNldAorIyBD T05GSUdfU05EX1NPQ19QQ00zMDYwX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1BD TTMwNjBfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfUENNMzE2OEFfSTJDIGlzIG5v dCBzZXQKKyMgQ09ORklHX1NORF9TT0NfUENNMzE2OEFfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NORF9TT0NfUENNNTEwMkEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19QQ001MTJ4X0ky QyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1BDTTUxMnhfU1BJIGlzIG5vdCBzZXQKKyMg Q09ORklHX1NORF9TT0NfUkszMzI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfUks4MTcg aXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19SVDEzMDhfU0RXIGlzIG5vdCBzZXQKKyMgQ09O RklHX1NORF9TT0NfUlQxMzE2X1NEVyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1JUNTYx NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1JUNTYzMSBpcyBub3Qgc2V0CisjIENPTkZJ R19TTkRfU09DX1JUNTY0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1JUNTY1OSBpcyBu b3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1JUNTY4Ml9TRFcgaXMgbm90IHNldAorIyBDT05GSUdf U05EX1NPQ19SVDcwMF9TRFcgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19SVDcxMV9TRFcg aXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19SVDcxMV9TRENBX1NEVyBpcyBub3Qgc2V0Cisj IENPTkZJR19TTkRfU09DX1JUNzE1X1NEVyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1JU NzE1X1NEQ0FfU0RXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfU0RXX01PQ0tVUCBpcyBu b3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1NHVEw1MDAwIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRf U09DX1NJR01BRFNQPW0KK0NPTkZJR19TTkRfU09DX1NJR01BRFNQX0kyQz1tCitDT05GSUdfU05E X1NPQ19TSUdNQURTUF9SRUdNQVA9bQorIyBDT05GSUdfU05EX1NPQ19TSU1QTEVfQU1QTElGSUVS IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfU0lNUExFX01VWCBpcyBub3Qgc2V0CitDT05G SUdfU05EX1NPQ19TUERJRj1tCisjIENPTkZJR19TTkRfU09DX1NTTTIzMDUgaXMgbm90IHNldAor IyBDT05GSUdfU05EX1NPQ19TU00yNTE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfU1NN MjYwMl9TUEkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19TU00yNjAyX0kyQyBpcyBub3Qg c2V0CisjIENPTkZJR19TTkRfU09DX1NTTTQ1NjcgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NP Q19TVEEzMlggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19TVEEzNTAgaXMgbm90IHNldAor IyBDT05GSUdfU05EX1NPQ19TVElfU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfVEFT MjU1MiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1RBUzI1NjIgaXMgbm90IHNldAorIyBD T05GSUdfU05EX1NPQ19UQVMyNzY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfVEFTMjc3 MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1RBUzUwODYgaXMgbm90IHNldAorIyBDT05G SUdfU05EX1NPQ19UQVM1NzFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfVEFTNTcyMCBp cyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1RBUzY0MjQgaXMgbm90IHNldAorIyBDT05GSUdf U05EX1NPQ19UREE3NDE5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfVEZBOTg3OSBpcyBu b3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1RGQTk4OVggaXMgbm90IHNldAorIyBDT05GSUdfU05E X1NPQ19UTFYzMjBBSUMyM19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19UTFYzMjBB SUMyM19TUEkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMzMVhYIGlzIG5v dCBzZXQKKyMgQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMzJYNF9JMkMgaXMgbm90IHNldAorIyBD T05GSUdfU05EX1NPQ19UTFYzMjBBSUMzMlg0X1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRf U09DX1RMVjMyMEFJQzNYX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1RMVjMyMEFJ QzNYX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1RMVjMyMEFEQ1gxNDAgaXMgbm90 IHNldAorIyBDT05GSUdfU05EX1NPQ19UUzNBMjI3RSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRf U09DX1RTQ1M0MlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfVFNDUzQ1NCBpcyBub3Qg c2V0CisjIENPTkZJR19TTkRfU09DX1VEQTEzMzQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NP Q19XQ0Q5MzhYX1NEVyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODUxMCBpcyBub3Qg c2V0CisjIENPTkZJR19TTkRfU09DX1dNODUyMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09D X1dNODUyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODU4MCBpcyBub3Qgc2V0Cisj IENPTkZJR19TTkRfU09DX1dNODcxMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODcy OCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODczMSBpcyBub3Qgc2V0CisjIENPTkZJ R19TTkRfU09DX1dNODczNyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODc0MSBpcyBu b3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODc1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRf U09DX1dNODc1MyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODc3MCBpcyBub3Qgc2V0 CisjIENPTkZJR19TTkRfU09DX1dNODc3NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dN ODc4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODgwNF9JMkMgaXMgbm90IHNldAor IyBDT05GSUdfU05EX1NPQ19XTTg4MDRfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0Nf V004OTAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfV004OTA0IGlzIG5vdCBzZXQKK0NP TkZJR19TTkRfU09DX1dNODk2MD15CisjIENPTkZJR19TTkRfU09DX1dNODk2MiBpcyBub3Qgc2V0 CisjIENPTkZJR19TTkRfU09DX1dNODk3NCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dN ODk3OCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX1dNODk4NSBpcyBub3Qgc2V0CisjIENP TkZJR19TTkRfU09DX1dTQTg4MVggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19aTDM4MDYw IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfTUFYOTc1OSBpcyBub3Qgc2V0CisjIENPTkZJ R19TTkRfU09DX01UNjM1MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX01UNjM1OCBpcyBu b3Qgc2V0CisjIENPTkZJR19TTkRfU09DX01UNjY2MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRf U09DX05BVTgzMTUgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19OQVU4NTQwIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NORF9TT0NfTkFVODgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09D X05BVTg4MjIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19OQVU4ODI0IGlzIG5vdCBzZXQK KyMgQ09ORklHX1NORF9TT0NfVFBBNjEzMEEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0Nf TFBBU1NfV1NBX01BQ1JPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfTFBBU1NfVkFfTUFD Uk8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPQ19MUEFTU19SWF9NQUNSTyBpcyBub3Qgc2V0 CisjIENPTkZJR19TTkRfU09DX0xQQVNTX1RYX01BQ1JPIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENP REVDIGRyaXZlcnMKKworQ09ORklHX1NORF9TSU1QTEVfQ0FSRF9VVElMUz1tCitDT05GSUdfU05E X1NJTVBMRV9DQVJEPW0KK0NPTkZJR19TTkRfQVVESU9fR1JBUEhfQ0FSRD1tCitDT05GSUdfU05E X1ZJUlRJTz1tCitDT05GSUdfQUM5N19CVVM9eQorCisjCisjIEhJRCBzdXBwb3J0CisjCitDT05G SUdfSElEPXkKK0NPTkZJR19ISURfQkFUVEVSWV9TVFJFTkdUSD15CitDT05GSUdfSElEUkFXPXkK K0NPTkZJR19VSElEPW0KK0NPTkZJR19ISURfR0VORVJJQz1tCisKKyMKKyMgU3BlY2lhbCBISUQg ZHJpdmVycworIworQ09ORklHX0hJRF9BNFRFQ0g9bQorQ09ORklHX0hJRF9BQ0NVVE9VQ0g9bQor Q09ORklHX0hJRF9BQ1JVWD1tCitDT05GSUdfSElEX0FDUlVYX0ZGPXkKK0NPTkZJR19ISURfQVBQ TEU9bQorQ09ORklHX0hJRF9BUFBMRUlSPW0KK0NPTkZJR19ISURfQVNVUz1tCitDT05GSUdfSElE X0FVUkVBTD1tCitDT05GSUdfSElEX0JFTEtJTj1tCitDT05GSUdfSElEX0JFVE9QX0ZGPW0KK0NP TkZJR19ISURfQklHQkVOX0ZGPW0KK0NPTkZJR19ISURfQ0hFUlJZPW0KK0NPTkZJR19ISURfQ0hJ Q09OWT1tCitDT05GSUdfSElEX0NPUlNBSVI9bQorQ09ORklHX0hJRF9DT1VHQVI9bQorQ09ORklH X0hJRF9NQUNBTExZPW0KK0NPTkZJR19ISURfUFJPRElLRVlTPW0KKyMgQ09ORklHX0hJRF9DTUVE SUEgaXMgbm90IHNldAorQ09ORklHX0hJRF9DUDIxMTI9bQorQ09ORklHX0hJRF9DUkVBVElWRV9T QjA1NDA9bQorQ09ORklHX0hJRF9DWVBSRVNTPW0KK0NPTkZJR19ISURfRFJBR09OUklTRT1tCitD T05GSUdfRFJBR09OUklTRV9GRj15CitDT05GSUdfSElEX0VNU19GRj1tCitDT05GSUdfSElEX0VM QU49bQorQ09ORklHX0hJRF9FTEVDT009bQorQ09ORklHX0hJRF9FTE89bQorQ09ORklHX0hJRF9F WktFWT1tCitDT05GSUdfSElEX0ZUMjYwPW0KK0NPTkZJR19ISURfR0VNQklSRD1tCitDT05GSUdf SElEX0dGUk09bQorQ09ORklHX0hJRF9HTE9SSU9VUz1tCitDT05GSUdfSElEX0hPTFRFSz1tCitD T05GSUdfSE9MVEVLX0ZGPXkKK0NPTkZJR19ISURfVklWQUxEST1tCitDT05GSUdfSElEX0dUNjgz Uj1tCitDT05GSUdfSElEX0tFWVRPVUNIPW0KK0NPTkZJR19ISURfS1lFPW0KK0NPTkZJR19ISURf VUNMT0dJQz1tCitDT05GSUdfSElEX1dBTFRPUD1tCitDT05GSUdfSElEX1ZJRVdTT05JQz1tCitD T05GSUdfSElEX0dZUkFUSU9OPW0KK0NPTkZJR19ISURfSUNBREU9bQorQ09ORklHX0hJRF9JVEU9 bQorQ09ORklHX0hJRF9KQUJSQT1tCitDT05GSUdfSElEX1RXSU5IQU49bQorQ09ORklHX0hJRF9L RU5TSU5HVE9OPW0KK0NPTkZJR19ISURfTENQT1dFUj1tCitDT05GSUdfSElEX0xFRD1tCitDT05G SUdfSElEX0xFTk9WTz1tCitDT05GSUdfSElEX0xPR0lURUNIPW0KK0NPTkZJR19ISURfTE9HSVRF Q0hfREo9bQorQ09ORklHX0hJRF9MT0dJVEVDSF9ISURQUD1tCitDT05GSUdfTE9HSVRFQ0hfRkY9 eQorQ09ORklHX0xPR0lSVU1CTEVQQUQyX0ZGPXkKK0NPTkZJR19MT0dJRzk0MF9GRj15CitDT05G SUdfTE9HSVdIRUVMU19GRj15CitDT05GSUdfSElEX01BR0lDTU9VU0U9bQorQ09ORklHX0hJRF9N QUxUUk9OPW0KK0NPTkZJR19ISURfTUFZRkxBU0g9bQorQ09ORklHX0hJRF9SRURSQUdPTj1tCitD T05GSUdfSElEX01JQ1JPU09GVD1tCitDT05GSUdfSElEX01PTlRFUkVZPW0KK0NPTkZJR19ISURf TVVMVElUT1VDSD1tCitDT05GSUdfSElEX05UST1tCitDT05GSUdfSElEX05UUklHPW0KK0NPTkZJ R19ISURfT1JURUs9bQorQ09ORklHX0hJRF9QQU5USEVSTE9SRD1tCitDT05GSUdfUEFOVEhFUkxP UkRfRkY9eQorQ09ORklHX0hJRF9QRU5NT1VOVD1tCitDT05GSUdfSElEX1BFVEFMWU5YPW0KK0NP TkZJR19ISURfUElDT0xDRD1tCitDT05GSUdfSElEX1BJQ09MQ0RfRkI9eQorQ09ORklHX0hJRF9Q SUNPTENEX0JBQ0tMSUdIVD15CitDT05GSUdfSElEX1BJQ09MQ0RfTENEPXkKK0NPTkZJR19ISURf UElDT0xDRF9MRURTPXkKK0NPTkZJR19ISURfUElDT0xDRF9DSVI9eQorQ09ORklHX0hJRF9QTEFO VFJPTklDUz1tCitDT05GSUdfSElEX1BMQVlTVEFUSU9OPW0KK0NPTkZJR19QTEFZU1RBVElPTl9G Rj15CitDT05GSUdfSElEX1BSSU1BWD1tCitDT05GSUdfSElEX1JFVFJPREU9bQorQ09ORklHX0hJ RF9ST0NDQVQ9bQorQ09ORklHX0hJRF9TQUlURUs9bQorQ09ORklHX0hJRF9TQU1TVU5HPW0KK0NP TkZJR19ISURfU0VNSVRFSz1tCitDT05GSUdfSElEX1NPTlk9bQorQ09ORklHX1NPTllfRkY9eQor Q09ORklHX0hJRF9TUEVFRExJTks9bQorQ09ORklHX0hJRF9TVEVBTT1tCitDT05GSUdfSElEX1NU RUVMU0VSSUVTPW0KK0NPTkZJR19ISURfU1VOUExVUz1tCitDT05GSUdfSElEX1JNST1tCitDT05G SUdfSElEX0dSRUVOQVNJQT1tCitDT05GSUdfR1JFRU5BU0lBX0ZGPXkKK0NPTkZJR19ISURfU01B UlRKT1lQTFVTPW0KK0NPTkZJR19TTUFSVEpPWVBMVVNfRkY9eQorQ09ORklHX0hJRF9USVZPPW0K K0NPTkZJR19ISURfVE9QU0VFRD1tCitDT05GSUdfSElEX1RISU5HTT1tCitDT05GSUdfSElEX1RI UlVTVE1BU1RFUj1tCitDT05GSUdfVEhSVVNUTUFTVEVSX0ZGPXkKK0NPTkZJR19ISURfVURSQVdf UFMzPW0KK0NPTkZJR19ISURfVTJGWkVSTz1tCitDT05GSUdfSElEX1dBQ09NPW0KK0NPTkZJR19I SURfV0lJTU9URT1tCitDT05GSUdfSElEX1hJTk1PPW0KK0NPTkZJR19ISURfWkVST1BMVVM9bQor Q09ORklHX1pFUk9QTFVTX0ZGPXkKK0NPTkZJR19ISURfWllEQUNST049bQorQ09ORklHX0hJRF9T RU5TT1JfSFVCPW0KK0NPTkZJR19ISURfU0VOU09SX0NVU1RPTV9TRU5TT1I9bQorQ09ORklHX0hJ RF9BTFBTPW0KK0NPTkZJR19ISURfTUNQMjIyMT1tCisjIGVuZCBvZiBTcGVjaWFsIEhJRCBkcml2 ZXJzCisKKyMKKyMgVVNCIEhJRCBzdXBwb3J0CisjCitDT05GSUdfVVNCX0hJRD1tCitDT05GSUdf SElEX1BJRD15CitDT05GSUdfVVNCX0hJRERFVj15CisKKyMKKyMgVVNCIEhJRCBCb290IFByb3Rv Y29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNC X01PVVNFIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFVTQiBISUQgQm9vdCBQcm90b2NvbCBkcml2ZXJz CisjIGVuZCBvZiBVU0IgSElEIHN1cHBvcnQKKworIworIyBJMkMgSElEIHN1cHBvcnQKKyMKK0NP TkZJR19JMkNfSElEX09GPW0KK0NPTkZJR19JMkNfSElEX09GX0dPT0RJWD1tCisjIGVuZCBvZiBJ MkMgSElEIHN1cHBvcnQKKworQ09ORklHX0kyQ19ISURfQ09SRT1tCisjIGVuZCBvZiBISUQgc3Vw cG9ydAorCitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CitDT05GSUdfVVNCX1NVUFBP UlQ9eQorQ09ORklHX1VTQl9DT01NT049bQorQ09ORklHX1VTQl9MRURfVFJJRz15CitDT05GSUdf VVNCX1VMUElfQlVTPW0KK0NPTkZJR19VU0JfQ09OTl9HUElPPW0KK0NPTkZJR19VU0JfQVJDSF9I QVNfSENEPXkKK0NPTkZJR19VU0I9bQorQ09ORklHX1VTQl9QQ0k9eQorQ09ORklHX1VTQl9BTk5P VU5DRV9ORVdfREVWSUNFUz15CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIwor Q09ORklHX1VTQl9ERUZBVUxUX1BFUlNJU1Q9eQorIyBDT05GSUdfVVNCX0ZFV19JTklUX1JFVFJJ RVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKK0NP TkZJR19VU0JfT1RHPXkKKyMgQ09ORklHX1VTQl9PVEdfUFJPRFVDVExJU1QgaXMgbm90IHNldAor IyBDT05GSUdfVVNCX09UR19ESVNBQkxFX0VYVEVSTkFMX0hVQiBpcyBub3Qgc2V0CitDT05GSUdf VVNCX09UR19GU009bQorQ09ORklHX1VTQl9MRURTX1RSSUdHRVJfVVNCUE9SVD1tCitDT05GSUdf VVNCX0FVVE9TVVNQRU5EX0RFTEFZPTIKK0NPTkZJR19VU0JfTU9OPW0KKworIworIyBVU0IgSG9z dCBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19VU0JfQzY3WDAwX0hDRD1tCitDT05GSUdf VVNCX1hIQ0lfSENEPW0KKyMgQ09ORklHX1VTQl9YSENJX0RCR0NBUCBpcyBub3Qgc2V0CitDT05G SUdfVVNCX1hIQ0lfUENJPW0KK0NPTkZJR19VU0JfWEhDSV9QQ0lfUkVORVNBUz1tCitDT05GSUdf VVNCX1hIQ0lfUExBVEZPUk09bQorQ09ORklHX1VTQl9FSENJX0hDRD1tCitDT05GSUdfVVNCX0VI Q0lfUk9PVF9IVUJfVFQ9eQorQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEPXkKK0NPTkZJR19V U0JfRUhDSV9QQ0k9bQorQ09ORklHX1VTQl9FSENJX0ZTTD1tCitDT05GSUdfVVNCX0VIQ0lfSENE X1BMQVRGT1JNPW0KK0NPTkZJR19VU0JfT1hVMjEwSFBfSENEPW0KK0NPTkZJR19VU0JfSVNQMTE2 WF9IQ0Q9bQorQ09ORklHX1VTQl9GT1RHMjEwX0hDRD1tCitDT05GSUdfVVNCX01BWDM0MjFfSENE PW0KK0NPTkZJR19VU0JfT0hDSV9IQ0Q9bQorQ09ORklHX1VTQl9PSENJX0hDRF9QQ0k9bQorQ09O RklHX1VTQl9PSENJX0hDRF9TU0I9eQorQ09ORklHX1VTQl9PSENJX0hDRF9QTEFURk9STT1tCitD T05GSUdfVVNCX1VIQ0lfSENEPW0KK0NPTkZJR19VU0JfVTEzMl9IQ0Q9bQorQ09ORklHX1VTQl9T TDgxMV9IQ0Q9bQorIyBDT05GSUdfVVNCX1NMODExX0hDRF9JU08gaXMgbm90IHNldAorQ09ORklH X1VTQl9TTDgxMV9DUz1tCitDT05GSUdfVVNCX1I4QTY2NTk3X0hDRD1tCitDT05GSUdfVVNCX0hD RF9CQ01BPW0KK0NPTkZJR19VU0JfSENEX1NTQj1tCisjIENPTkZJR19VU0JfSENEX1RFU1RfTU9E RSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCitDT05GSUdf VVNCX0FDTT1tCitDT05GSUdfVVNCX1BSSU5URVI9bQorQ09ORklHX1VTQl9XRE09bQorQ09ORklH X1VTQl9UTUM9bQorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGRlcGVuZHMgb24gU0NTSSBidXQg QkxLX0RFVl9TRCBtYXkKKyMKKworIworIyBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdF IEhlbHAgZm9yIG1vcmUgaW5mbworIworQ09ORklHX1VTQl9TVE9SQUdFPW0KKyMgQ09ORklHX1VT Ql9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9SRUFMVEVLPW0K K0NPTkZJR19SRUFMVEVLX0FVVE9QTT15CitDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQj1tCitD T05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTT1tCitDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwPW0K K0NPTkZJR19VU0JfU1RPUkFHRV9VU0JBVD1tCitDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5PW0K K0NPTkZJR19VU0JfU1RPUkFHRV9TRERSNTU9bQorQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9U PW0KK0NPTkZJR19VU0JfU1RPUkFHRV9BTEFVREE9bQorQ09ORklHX1VTQl9TVE9SQUdFX09ORVRP VUNIPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9LQVJNQT1tCitDT05GSUdfVVNCX1NUT1JBR0VfQ1lQ UkVTU19BVEFDQj1tCitDT05GSUdfVVNCX1NUT1JBR0VfRU5FX1VCNjI1MD1tCitDT05GSUdfVVNC X1VBUz1tCisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworQ09ORklHX1VTQl9NREM4MDA9 bQorQ09ORklHX1VTQl9NSUNST1RFSz1tCitDT05GSUdfVVNCSVBfQ09SRT1tCitDT05GSUdfVVNC SVBfVkhDSV9IQ0Q9bQorQ09ORklHX1VTQklQX1ZIQ0lfSENfUE9SVFM9OAorQ09ORklHX1VTQklQ X1ZIQ0lfTlJfSENTPTEKK0NPTkZJR19VU0JJUF9IT1NUPW0KK0NPTkZJR19VU0JJUF9WVURDPW0K KyMgQ09ORklHX1VTQklQX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfQ0ROU19TVVBQT1JU PW0KK0NPTkZJR19VU0JfQ0ROU19IT1NUPXkKK0NPTkZJR19VU0JfQ0ROUzM9bQorQ09ORklHX1VT Ql9DRE5TM19HQURHRVQ9eQorQ09ORklHX1VTQl9DRE5TM19IT1NUPXkKK0NPTkZJR19VU0JfQ0RO UzNfU1RBUkZJVkU9bQorQ09ORklHX1VTQl9NVVNCX0hEUkM9bQorQ09ORklHX1VTQl9NVVNCX0hP U1Q9eQorIyBDT05GSUdfVVNCX01VU0JfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9N VVNCX0RVQUxfUk9MRSBpcyBub3Qgc2V0CisKKyMKKyMgUGxhdGZvcm0gR2x1ZSBMYXllcgorIwor CisjCisjIE1VU0IgRE1BIG1vZGUKKyMKK0NPTkZJR19NVVNCX1BJT19PTkxZPXkKK0NPTkZJR19V U0JfRFdDMz1tCitDT05GSUdfVVNCX0RXQzNfVUxQST15CisjIENPTkZJR19VU0JfRFdDM19IT1NU IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9EV0MzX0dBREdFVCBpcyBub3Qgc2V0CitDT05GSUdf VVNCX0RXQzNfRFVBTF9ST0xFPXkKKworIworIyBQbGF0Zm9ybSBHbHVlIERyaXZlciBTdXBwb3J0 CisjCitDT05GSUdfVVNCX0RXQzNfSEFQUz1tCitDT05GSUdfVVNCX0RXQzNfT0ZfU0lNUExFPW0K K0NPTkZJR19VU0JfRFdDMj1tCisjIENPTkZJR19VU0JfRFdDMl9IT1NUIGlzIG5vdCBzZXQKKwor IworIyBHYWRnZXQvRHVhbC1yb2xlIG1vZGUgcmVxdWlyZXMgVVNCIEdhZGdldCBzdXBwb3J0IHRv IGJlIGVuYWJsZWQKKyMKKyMgQ09ORklHX1VTQl9EV0MyX1BFUklQSEVSQUwgaXMgbm90IHNldAor Q09ORklHX1VTQl9EV0MyX0RVQUxfUk9MRT15CitDT05GSUdfVVNCX0RXQzJfUENJPW0KKyMgQ09O RklHX1VTQl9EV0MyX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9EV0MyX1RSQUNLX01J U1NFRF9TT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfQ0hJUElERUE9bQorIyBDT05GSUdfVVNC X0NISVBJREVBX1VEQyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0NISVBJREVBX0hPU1Q9eQorQ09O RklHX1VTQl9DSElQSURFQV9QQ0k9bQorQ09ORklHX1VTQl9DSElQSURFQV9NU009bQorQ09ORklH X1VTQl9DSElQSURFQV9JTVg9bQorQ09ORklHX1VTQl9DSElQSURFQV9HRU5FUklDPW0KK0NPTkZJ R19VU0JfQ0hJUElERUFfVEVHUkE9bQorQ09ORklHX1VTQl9JU1AxNzYwPW0KK0NPTkZJR19VU0Jf SVNQMTc2MF9IQ0Q9eQorQ09ORklHX1VTQl9JU1AxNzYwX0hPU1RfUk9MRT15CisjIENPTkZJR19V U0JfSVNQMTc2MF9HQURHRVRfUk9MRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9E VUFMX1JPTEUgaXMgbm90IHNldAorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKK0NPTkZJR19V U0JfVVNTNzIwPW0KK0NPTkZJR19VU0JfU0VSSUFMPW0KK0NPTkZJR19VU0JfU0VSSUFMX0dFTkVS SUM9eQorQ09ORklHX1VTQl9TRVJJQUxfU0lNUExFPW0KK0NPTkZJR19VU0JfU0VSSUFMX0FJUkNB QkxFPW0KK0NPTkZJR19VU0JfU0VSSUFMX0FSSzMxMTY9bQorQ09ORklHX1VTQl9TRVJJQUxfQkVM S0lOPW0KK0NPTkZJR19VU0JfU0VSSUFMX0NIMzQxPW0KK0NPTkZJR19VU0JfU0VSSUFMX1dISVRF SEVBVD1tCitDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VMRVBPUlQ9bQorQ09ORklHX1VTQl9T RVJJQUxfQ1AyMTBYPW0KK0NPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1NfTTg9bQorQ09ORklHX1VT Ql9TRVJJQUxfRU1QRUc9bQorQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU89bQorQ09ORklHX1VT Ql9TRVJJQUxfVklTT1I9bQorQ09ORklHX1VTQl9TRVJJQUxfSVBBUT1tCitDT05GSUdfVVNCX1NF UklBTF9JUj1tCitDT05GSUdfVVNCX1NFUklBTF9FREdFUE9SVD1tCitDT05GSUdfVVNCX1NFUklB TF9FREdFUE9SVF9UST1tCitDT05GSUdfVVNCX1NFUklBTF9GODEyMzI9bQorQ09ORklHX1VTQl9T RVJJQUxfRjgxNTNYPW0KK0NPTkZJR19VU0JfU0VSSUFMX0dBUk1JTj1tCitDT05GSUdfVVNCX1NF UklBTF9JUFc9bQorQ09ORklHX1VTQl9TRVJJQUxfSVVVPW0KK0NPTkZJR19VU0JfU0VSSUFMX0tF WVNQQU5fUERBPW0KK0NPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU49bQorQ09ORklHX1VTQl9TRVJJ QUxfS0xTST1tCitDT05GSUdfVVNCX1NFUklBTF9LT0JJTF9TQ1Q9bQorQ09ORklHX1VTQl9TRVJJ QUxfTUNUX1UyMzI9bQorQ09ORklHX1VTQl9TRVJJQUxfTUVUUk89bQorQ09ORklHX1VTQl9TRVJJ QUxfTU9TNzcyMD1tCitDT05GSUdfVVNCX1NFUklBTF9NT1M3NzE1X1BBUlBPUlQ9eQorQ09ORklH X1VTQl9TRVJJQUxfTU9TNzg0MD1tCitDT05GSUdfVVNCX1NFUklBTF9NWFVQT1JUPW0KK0NPTkZJ R19VU0JfU0VSSUFMX05BVk1BTj1tCitDT05GSUdfVVNCX1NFUklBTF9QTDIzMDM9bQorQ09ORklH X1VTQl9TRVJJQUxfT1RJNjg1OD1tCitDT05GSUdfVVNCX1NFUklBTF9RQ0FVWD1tCitDT05GSUdf VVNCX1NFUklBTF9RVUFMQ09NTT1tCitDT05GSUdfVVNCX1NFUklBTF9TUENQOFg1PW0KK0NPTkZJ R19VU0JfU0VSSUFMX1NBRkU9bQorQ09ORklHX1VTQl9TRVJJQUxfU0FGRV9QQURERUQ9eQorQ09O RklHX1VTQl9TRVJJQUxfU0lFUlJBV0lSRUxFU1M9bQorQ09ORklHX1VTQl9TRVJJQUxfU1lNQk9M PW0KK0NPTkZJR19VU0JfU0VSSUFMX1RJPW0KK0NPTkZJR19VU0JfU0VSSUFMX0NZQkVSSkFDSz1t CitDT05GSUdfVVNCX1NFUklBTF9XV0FOPW0KK0NPTkZJR19VU0JfU0VSSUFMX09QVElPTj1tCitD T05GSUdfVVNCX1NFUklBTF9PTU5JTkVUPW0KK0NPTkZJR19VU0JfU0VSSUFMX09QVElDT049bQor Q09ORklHX1VTQl9TRVJJQUxfWFNFTlNfTVQ9bQorQ09ORklHX1VTQl9TRVJJQUxfV0lTSEJPTkU9 bQorQ09ORklHX1VTQl9TRVJJQUxfU1NVMTAwPW0KK0NPTkZJR19VU0JfU0VSSUFMX1FUMj1tCitD T05GSUdfVVNCX1NFUklBTF9VUEQ3OEYwNzMwPW0KK0NPTkZJR19VU0JfU0VSSUFMX1hSPW0KK0NP TkZJR19VU0JfU0VSSUFMX0RFQlVHPW0KKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJz CisjCitDT05GSUdfVVNCX0VNSTYyPW0KK0NPTkZJR19VU0JfRU1JMjY9bQorQ09ORklHX1VTQl9B RFVUVVg9bQorQ09ORklHX1VTQl9TRVZTRUc9bQorQ09ORklHX1VTQl9MRUdPVE9XRVI9bQorQ09O RklHX1VTQl9MQ0Q9bQorQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2Mz1tCitDT05GSUdfVVNCX0NZ VEhFUk09bQorQ09ORklHX1VTQl9JRE1PVVNFPW0KK0NPTkZJR19VU0JfRlRESV9FTEFOPW0KK0NP TkZJR19VU0JfQVBQTEVESVNQTEFZPW0KK0NPTkZJR19BUFBMRV9NRklfRkFTVENIQVJHRT1tCitD T05GSUdfVVNCX1NJU1VTQlZHQT1tCitDT05GSUdfVVNCX0xEPW0KK0NPTkZJR19VU0JfVFJBTkNF VklCUkFUT1I9bQorQ09ORklHX1VTQl9JT1dBUlJJT1I9bQorIyBDT05GSUdfVVNCX1RFU1QgaXMg bm90IHNldAorQ09ORklHX1VTQl9FSFNFVF9URVNUX0ZJWFRVUkU9bQorQ09ORklHX1VTQl9JU0lH SFRGVz1tCitDT05GSUdfVVNCX1lVUkVYPW0KK0NPTkZJR19VU0JfRVpVU0JfRlgyPW0KK0NPTkZJ R19VU0JfSFVCX1VTQjI1MVhCPW0KK0NPTkZJR19VU0JfSFNJQ19VU0IzNTAzPW0KK0NPTkZJR19V U0JfSFNJQ19VU0I0NjA0PW0KK0NPTkZJR19VU0JfTElOS19MQVlFUl9URVNUPW0KKyMgQ09ORklH X1VTQl9DSEFPU0tFWSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0FUTT1tCitDT05GSUdfVVNCX1NQ RUVEVE9VQ0g9bQorQ09ORklHX1VTQl9DWEFDUlU9bQorQ09ORklHX1VTQl9VRUFHTEVBVE09bQor Q09ORklHX1VTQl9YVVNCQVRNPW0KKworIworIyBVU0IgUGh5c2ljYWwgTGF5ZXIgZHJpdmVycwor IworQ09ORklHX1VTQl9QSFk9eQorQ09ORklHX05PUF9VU0JfWENFSVY9bQorIyBDT05GSUdfVVNC X0dQSU9fVkJVUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0lTUDEzMDE9bQorIyBlbmQgb2YgVVNC IFBoeXNpY2FsIExheWVyIGRyaXZlcnMKKworQ09ORklHX1VTQl9HQURHRVQ9bQorIyBDT05GSUdf VVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJ TEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRlMgaXMgbm90IHNldAor Q09ORklHX1VTQl9HQURHRVRfVkJVU19EUkFXPTIKK0NPTkZJR19VU0JfR0FER0VUX1NUT1JBR0Vf TlVNX0JVRkZFUlM9MgorQ09ORklHX1VfU0VSSUFMX0NPTlNPTEU9eQorCisjCisjIFVTQiBQZXJp cGhlcmFsIENvbnRyb2xsZXIKKyMKKyMgQ09ORklHX1VTQl9GT1RHMjEwX1VEQyBpcyBub3Qgc2V0 CisjIENPTkZJR19VU0JfR1JfVURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5NyBp cyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFhBMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9N Vl9VREMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01WX1UzRCBpcyBub3Qgc2V0CitDT05GSUdf VVNCX1NOUF9DT1JFPW0KK0NPTkZJR19VU0JfU05QX1VEQ19QTEFUPW0KKyMgQ09ORklHX1VTQl9N NjY1OTIgaXMgbm90IHNldAorQ09ORklHX1VTQl9CRENfVURDPW0KKyMgQ09ORklHX1VTQl9BTUQ1 NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9ORVQyMjcyIGlzIG5vdCBzZXQKKyMgQ09O RklHX1VTQl9ORVQyMjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HT0tVIGlzIG5vdCBzZXQK KyMgQ09ORklHX1VTQl9FRzIwVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9YSUxJTlg9 bQorQ09ORklHX1VTQl9NQVgzNDIwX1VEQz1tCisjIENPTkZJR19VU0JfRFVNTVlfSENEIGlzIG5v dCBzZXQKKyMgZW5kIG9mIFVTQiBQZXJpcGhlcmFsIENvbnRyb2xsZXIKKworQ09ORklHX1VTQl9M SUJDT01QT1NJVEU9bQorQ09ORklHX1VTQl9GX0FDTT1tCitDT05GSUdfVVNCX0ZfU1NfTEI9bQor Q09ORklHX1VTQl9VX1NFUklBTD1tCitDT05GSUdfVVNCX1VfRVRIRVI9bQorQ09ORklHX1VTQl9V X0FVRElPPW0KK0NPTkZJR19VU0JfRl9TRVJJQUw9bQorQ09ORklHX1VTQl9GX09CRVg9bQorQ09O RklHX1VTQl9GX05DTT1tCitDT05GSUdfVVNCX0ZfRUNNPW0KK0NPTkZJR19VU0JfRl9QSE9ORVQ9 bQorQ09ORklHX1VTQl9GX0VFTT1tCitDT05GSUdfVVNCX0ZfU1VCU0VUPW0KK0NPTkZJR19VU0Jf Rl9STkRJUz1tCitDT05GSUdfVVNCX0ZfTUFTU19TVE9SQUdFPW0KK0NPTkZJR19VU0JfRl9GUz1t CitDT05GSUdfVVNCX0ZfVUFDMT1tCitDT05GSUdfVVNCX0ZfVUFDMj1tCitDT05GSUdfVVNCX0Zf TUlEST1tCitDT05GSUdfVVNCX0ZfSElEPW0KK0NPTkZJR19VU0JfRl9QUklOVEVSPW0KK0NPTkZJ R19VU0JfRl9UQ009bQorQ09ORklHX1VTQl9DT05GSUdGUz1tCitDT05GSUdfVVNCX0NPTkZJR0ZT X1NFUklBTD15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0FDTT15CitDT05GSUdfVVNCX0NPTkZJR0ZT X09CRVg9eQorQ09ORklHX1VTQl9DT05GSUdGU19OQ009eQorQ09ORklHX1VTQl9DT05GSUdGU19F Q009eQorQ09ORklHX1VTQl9DT05GSUdGU19FQ01fU1VCU0VUPXkKK0NPTkZJR19VU0JfQ09ORklH RlNfUk5ESVM9eQorQ09ORklHX1VTQl9DT05GSUdGU19FRU09eQorQ09ORklHX1VTQl9DT05GSUdG U19QSE9ORVQ9eQorQ09ORklHX1VTQl9DT05GSUdGU19NQVNTX1NUT1JBR0U9eQorQ09ORklHX1VT Ql9DT05GSUdGU19GX0xCX1NTPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9GUz15CitDT05GSUdf VVNCX0NPTkZJR0ZTX0ZfVUFDMT15CisjIENPTkZJR19VU0JfQ09ORklHRlNfRl9VQUMxX0xFR0FD WSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfVUFDMj15CitDT05GSUdfVVNCX0NP TkZJR0ZTX0ZfTUlEST15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfSElEPXkKK0NPTkZJR19VU0Jf Q09ORklHRlNfRl9QUklOVEVSPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9UQ009eQorCisjCisj IFVTQiBHYWRnZXQgcHJlY29tcG9zZWQgY29uZmlndXJhdGlvbnMKKyMKKyMgQ09ORklHX1VTQl9a RVJPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfQVVESU89bQorIyBDT05GSUdfR0FER0VUX1VBQzEg aXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9bQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorQ09O RklHX1VTQl9FVEhfRUVNPXkKK0NPTkZJR19VU0JfR19OQ009bQorQ09ORklHX1VTQl9HQURHRVRG Uz1tCitDT05GSUdfVVNCX0ZVTkNUSU9ORlM9bQorQ09ORklHX1VTQl9GVU5DVElPTkZTX0VUSD15 CitDT05GSUdfVVNCX0ZVTkNUSU9ORlNfUk5ESVM9eQorQ09ORklHX1VTQl9GVU5DVElPTkZTX0dF TkVSSUM9eQorQ09ORklHX1VTQl9NQVNTX1NUT1JBR0U9bQorQ09ORklHX1VTQl9HQURHRVRfVEFS R0VUPW0KK0NPTkZJR19VU0JfR19TRVJJQUw9bQorQ09ORklHX1VTQl9NSURJX0dBREdFVD1tCitD T05GSUdfVVNCX0dfUFJJTlRFUj1tCitDT05GSUdfVVNCX0NEQ19DT01QT1NJVEU9bQorQ09ORklH X1VTQl9HX05PS0lBPW0KK0NPTkZJR19VU0JfR19BQ01fTVM9bQorQ09ORklHX1VTQl9HX01VTFRJ PW0KK0NPTkZJR19VU0JfR19NVUxUSV9STkRJUz15CitDT05GSUdfVVNCX0dfTVVMVElfQ0RDPXkK K0NPTkZJR19VU0JfR19ISUQ9bQorQ09ORklHX1VTQl9HX0RCR1A9bQorIyBDT05GSUdfVVNCX0df REJHUF9QUklOVEsgaXMgbm90IHNldAorQ09ORklHX1VTQl9HX0RCR1BfU0VSSUFMPXkKK0NPTkZJ R19VU0JfUkFXX0dBREdFVD1tCisjIGVuZCBvZiBVU0IgR2FkZ2V0IHByZWNvbXBvc2VkIGNvbmZp Z3VyYXRpb25zCisKK0NPTkZJR19UWVBFQz1tCitDT05GSUdfVFlQRUNfVENQTT1tCitDT05GSUdf VFlQRUNfVENQQ0k9bQorQ09ORklHX1RZUEVDX1JUMTcxMUg9bQorQ09ORklHX1RZUEVDX1RDUENJ X01BWElNPW0KK0NPTkZJR19UWVBFQ19GVVNCMzAyPW0KK0NPTkZJR19UWVBFQ19VQ1NJPW0KK0NP TkZJR19VQ1NJX0NDRz1tCitDT05GSUdfVFlQRUNfVFBTNjU5OFg9bQorQ09ORklHX1RZUEVDX0hE M1NTMzIyMD1tCitDT05GSUdfVFlQRUNfU1RVU0IxNjBYPW0KKworIworIyBVU0IgVHlwZS1DIE11 bHRpcGxleGVyL0RlTXVsdGlwbGV4ZXIgU3dpdGNoIHN1cHBvcnQKKyMKK0NPTkZJR19UWVBFQ19N VVhfUEkzVVNCMzA1MzI9bQorIyBlbmQgb2YgVVNCIFR5cGUtQyBNdWx0aXBsZXhlci9EZU11bHRp cGxleGVyIFN3aXRjaCBzdXBwb3J0CisKKyMKKyMgVVNCIFR5cGUtQyBBbHRlcm5hdGUgTW9kZSBk cml2ZXJzCisjCitDT05GSUdfVFlQRUNfRFBfQUxUTU9ERT1tCitDT05GSUdfVFlQRUNfTlZJRElB X0FMVE1PREU9bQorIyBlbmQgb2YgVVNCIFR5cGUtQyBBbHRlcm5hdGUgTW9kZSBkcml2ZXJzCisK K0NPTkZJR19VU0JfUk9MRV9TV0lUQ0g9bQorQ09ORklHX01NQz1tCitDT05GSUdfUFdSU0VRX0VN TUM9bQorQ09ORklHX1BXUlNFUV9TRDg3ODc9bQorQ09ORklHX1BXUlNFUV9TSU1QTEU9bQorQ09O RklHX01NQ19CTE9DSz1tCitDT05GSUdfTU1DX0JMT0NLX01JTk9SUz04CitDT05GSUdfU0RJT19V QVJUPW0KKyMgQ09ORklHX01NQ19URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfQ1JZUFRPPXkK KworIworIyBNTUMvU0QvU0RJTyBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdf TU1DX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfQVJNTU1DST1tCitDT05GSUdfTU1DX1NU TTMyX1NETU1DPXkKK0NPTkZJR19NTUNfU0RIQ0k9bQorQ09ORklHX01NQ19TREhDSV9JT19BQ0NF U1NPUlM9eQorQ09ORklHX01NQ19TREhDSV9QQ0k9bQorQ09ORklHX01NQ19SSUNPSF9NTUM9eQor Q09ORklHX01NQ19TREhDSV9QTFRGTT1tCitDT05GSUdfTU1DX1NESENJX09GX0FSQVNBTj1tCisj IENPTkZJR19NTUNfU0RIQ0lfT0ZfQVNQRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQ19TREhD SV9PRl9BVDkxIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfU0RIQ0lfT0ZfRFdDTVNIQz1tCitDT05G SUdfTU1DX1NESENJX0NBREVOQ0U9bQorQ09ORklHX01NQ19TREhDSV9GX1NESDMwPW0KKyMgQ09O RklHX01NQ19TREhDSV9NSUxCRUFVVCBpcyBub3Qgc2V0CitDT05GSUdfTU1DX0FMQ09SPW0KK0NP TkZJR19NTUNfVElGTV9TRD1tCisjIENPTkZJR19NTUNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19N TUNfU0RSSUNPSF9DUz1tCitDT05GSUdfTU1DX0NCNzEwPW0KK0NPTkZJR19NTUNfVklBX1NETU1D PW0KK0NPTkZJR19NTUNfRFc9bQorQ09ORklHX01NQ19EV19QTFRGTT1tCitDT05GSUdfTU1DX0RX X0JMVUVGSUVMRD1tCitDT05GSUdfTU1DX0RXX0VYWU5PUz1tCitDT05GSUdfTU1DX0RXX0hJMzc5 OENWMjAwPW0KK0NPTkZJR19NTUNfRFdfU1RBUkZJVkU9bQorQ09ORklHX01NQ19EV19LMz1tCitD T05GSUdfTU1DX0RXX1BDST1tCitDT05GSUdfTU1DX1ZVQjMwMD1tCitDT05GSUdfTU1DX1VTSEM9 bQorQ09ORklHX01NQ19VU0RISTZST0wwPW0KK0NPTkZJR19NTUNfUkVBTFRFS19QQ0k9bQorQ09O RklHX01NQ19SRUFMVEVLX1VTQj1tCitDT05GSUdfTU1DX0NRSENJPW0KK0NPTkZJR19NTUNfSFNR PW0KK0NPTkZJR19NTUNfVE9TSElCQV9QQ0k9bQorQ09ORklHX01NQ19NVEs9bQorQ09ORklHX01N Q19TREhDSV9YRU5PTj1tCisjIENPTkZJR19NTUNfU0RIQ0lfT01BUCBpcyBub3Qgc2V0CitDT05G SUdfTU1DX1NESENJX0FNNjU0PW0KK0NPTkZJR19NRU1TVElDSz1tCisjIENPTkZJR19NRU1TVElD S19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTWVtb3J5U3RpY2sgZHJpdmVycworIworIyBDT05G SUdfTUVNU1RJQ0tfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CitDT05GSUdfTVNQUk9fQkxPQ0s9 bQorQ09ORklHX01TX0JMT0NLPW0KKworIworIyBNZW1vcnlTdGljayBIb3N0IENvbnRyb2xsZXIg RHJpdmVycworIworQ09ORklHX01FTVNUSUNLX1RJRk1fTVM9bQorQ09ORklHX01FTVNUSUNLX0pN SUNST05fMzhYPW0KK0NPTkZJR19NRU1TVElDS19SNTkyPW0KK0NPTkZJR19NRU1TVElDS19SRUFM VEVLX1BDST1tCitDT05GSUdfTUVNU1RJQ0tfUkVBTFRFS19VU0I9bQorQ09ORklHX05FV19MRURT PXkKK0NPTkZJR19MRURTX0NMQVNTPXkKK0NPTkZJR19MRURTX0NMQVNTX0ZMQVNIPW0KK0NPTkZJ R19MRURTX0NMQVNTX01VTFRJQ09MT1I9bQorQ09ORklHX0xFRFNfQlJJR0hUTkVTU19IV19DSEFO R0VEPXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfQU4zMDI1OUE9bQorQ09O RklHX0xFRFNfQVcyMDEzPW0KKyMgQ09ORklHX0xFRFNfQkNNNjMyOCBpcyBub3Qgc2V0CisjIENP TkZJR19MRURTX0JDTTYzNTggaXMgbm90IHNldAorQ09ORklHX0xFRFNfQ1BDQVA9bQorQ09ORklH X0xFRFNfQ1IwMDE0MTE0PW0KK0NPTkZJR19MRURTX0VMMTUyMDMwMDA9bQorQ09ORklHX0xFRFNf TE0zNTMwPW0KK0NPTkZJR19MRURTX0xNMzUzMj1tCitDT05GSUdfTEVEU19MTTM1MzM9bQorQ09O RklHX0xFRFNfTE0zNjQyPW0KK0NPTkZJR19MRURTX0xNMzY5Mlg9bQorQ09ORklHX0xFRFNfUENB OTUzMj1tCitDT05GSUdfTEVEU19QQ0E5NTMyX0dQSU89eQorQ09ORklHX0xFRFNfR1BJTz1tCitD T05GSUdfTEVEU19MUDM5NDQ9bQorQ09ORklHX0xFRFNfTFAzOTUyPW0KK0NPTkZJR19MRURTX0xQ NTBYWD1tCitDT05GSUdfTEVEU19MUDU1WFhfQ09NTU9OPW0KK0NPTkZJR19MRURTX0xQNTUyMT1t CitDT05GSUdfTEVEU19MUDU1MjM9bQorQ09ORklHX0xFRFNfTFA1NTYyPW0KK0NPTkZJR19MRURT X0xQODUwMT1tCitDT05GSUdfTEVEU19MUDg4NjA9bQorQ09ORklHX0xFRFNfUENBOTU1WD1tCitD T05GSUdfTEVEU19QQ0E5NTVYX0dQSU89eQorQ09ORklHX0xFRFNfUENBOTYzWD1tCisjIENPTkZJ R19MRURTX0RBQzEyNFMwODUgaXMgbm90IHNldAorQ09ORklHX0xFRFNfUFdNPW0KKyMgQ09ORklH X0xFRFNfUkVHVUxBVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0JEMjgwMj1tCitDT05GSUdf TEVEU19MVDM1OTM9bQorQ09ORklHX0xFRFNfVENBNjUwNz1tCisjIENPTkZJR19MRURTX1RMQzU5 MVhYIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX01BWDc3NjUwPW0KK0NPTkZJR19MRURTX0xNMzU1 eD1tCitDT05GSUdfTEVEU19NRU5GMjFCTUM9bQorQ09ORklHX0xFRFNfSVMzMUZMMzE5WD1tCitD T05GSUdfTEVEU19JUzMxRkwzMlhYPW0KKworIworIyBMRUQgZHJpdmVyIGZvciBibGluaygxKSBV U0IgUkdCIExFRCBpcyB1bmRlciBTcGVjaWFsIEhJRCBkcml2ZXJzIChISURfVEhJTkdNKQorIwor Q09ORklHX0xFRFNfQkxJTktNPW0KK0NPTkZJR19MRURTX1NZU0NPTj15CitDT05GSUdfTEVEU19N TFhSRUc9bQorQ09ORklHX0xFRFNfVVNFUj1tCitDT05GSUdfTEVEU19TUElfQllURT1tCitDT05G SUdfTEVEU19USV9MTVVfQ09NTU9OPW0KK0NPTkZJR19MRURTX0xNMzY5Nz1tCitDT05GSUdfTEVE U19MTTM2Mjc0PW0KKworIworIyBGbGFzaCBhbmQgVG9yY2ggTEVEIGRyaXZlcnMKKyMKKyMgQ09O RklHX0xFRFNfQUFUMTI5MCBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19BUzM2NDVBPW0KKyMgQ09O RklHX0xFRFNfS1REMjY5MiBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19MTTM2MDFYPW0KK0NPTkZJ R19MRURTX1JUNDUwNT1tCitDT05GSUdfTEVEU19SVDg1MTU9bQorQ09ORklHX0xFRFNfU0dNMzE0 MD1tCisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CitDT05G SUdfTEVEU19UUklHR0VSX1RJTUVSPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfT05FU0hPVD1tCitD T05GSUdfTEVEU19UUklHR0VSX0RJU0s9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9NVEQ9eQorQ09O RklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9CQUNLTElH SFQ9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9DUFU9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9BQ1RJ VklUWT1tCitDT05GSUdfTEVEU19UUklHR0VSX0dQSU89bQorQ09ORklHX0xFRFNfVFJJR0dFUl9E RUZBVUxUX09OPW0KKworIworIyBpcHRhYmxlcyB0cmlnZ2VyIGlzIHVuZGVyIE5ldGZpbHRlciBj b25maWcgKExFRCB0YXJnZXQpCisjCitDT05GSUdfTEVEU19UUklHR0VSX1RSQU5TSUVOVD1tCitD T05GSUdfTEVEU19UUklHR0VSX0NBTUVSQT1tCitDT05GSUdfTEVEU19UUklHR0VSX1BBTklDPXkK K0NPTkZJR19MRURTX1RSSUdHRVJfTkVUREVWPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfUEFUVEVS Tj1tCitDT05GSUdfTEVEU19UUklHR0VSX0FVRElPPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfVFRZ PW0KK0NPTkZJR19BQ0NFU1NJQklMSVRZPXkKK0NPTkZJR19BMTFZX0JSQUlMTEVfQ09OU09MRT15 CisKKyMKKyMgU3BlYWt1cCBjb25zb2xlIHNwZWVjaAorIworQ09ORklHX1NQRUFLVVA9bQorQ09O RklHX1NQRUFLVVBfU1lOVEhfQUNOVFNBPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0FQT0xMTz1t CitDT05GSUdfU1BFQUtVUF9TWU5USF9BVURQVFI9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfQk5T PW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0RFQ1RMSz1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9E RUNFWFQ9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfTFRMSz1tCitDT05GSUdfU1BFQUtVUF9TWU5U SF9TT0ZUPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX1NQS09VVD1tCitDT05GSUdfU1BFQUtVUF9T WU5USF9UWFBSVD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9EVU1NWT1tCisjIGVuZCBvZiBTcGVh a3VwIGNvbnNvbGUgc3BlZWNoCisKK0NPTkZJR19JTkZJTklCQU5EPW0KK0NPTkZJR19JTkZJTklC QU5EX1VTRVJfTUFEPW0KK0NPTkZJR19JTkZJTklCQU5EX1VTRVJfQUNDRVNTPW0KK0NPTkZJR19J TkZJTklCQU5EX1VTRVJfTUVNPXkKK0NPTkZJR19JTkZJTklCQU5EX09OX0RFTUFORF9QQUdJTkc9 eQorQ09ORklHX0lORklOSUJBTkRfQUREUl9UUkFOUz15CitDT05GSUdfSU5GSU5JQkFORF9BRERS X1RSQU5TX0NPTkZJR0ZTPXkKK0NPTkZJR19JTkZJTklCQU5EX1ZJUlRfRE1BPXkKK0NPTkZJR19J TkZJTklCQU5EX01USENBPW0KK0NPTkZJR19JTkZJTklCQU5EX01USENBX0RFQlVHPXkKK0NPTkZJ R19JTkZJTklCQU5EX0NYR0I0PW0KK0NPTkZJR19JTkZJTklCQU5EX0VGQT1tCitDT05GSUdfSU5G SU5JQkFORF9JUkRNQT1tCitDT05GSUdfTUxYNF9JTkZJTklCQU5EPW0KK0NPTkZJR19NTFg1X0lO RklOSUJBTkQ9bQorQ09ORklHX0lORklOSUJBTkRfT0NSRE1BPW0KKyMgQ09ORklHX0lORklOSUJB TkRfVk1XQVJFX1BWUkRNQSBpcyBub3Qgc2V0CitDT05GSUdfSU5GSU5JQkFORF9CTlhUX1JFPW0K K0NPTkZJR19JTkZJTklCQU5EX1FFRFI9bQorQ09ORklHX1JETUFfUlhFPW0KK0NPTkZJR19SRE1B X1NJVz1tCitDT05GSUdfSU5GSU5JQkFORF9JUE9JQj1tCitDT05GSUdfSU5GSU5JQkFORF9JUE9J Ql9DTT15CitDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVRz15CisjIENPTkZJR19JTkZJTklC QU5EX0lQT0lCX0RFQlVHX0RBVEEgaXMgbm90IHNldAorQ09ORklHX0lORklOSUJBTkRfU1JQPW0K K0NPTkZJR19JTkZJTklCQU5EX1NSUFQ9bQorQ09ORklHX0lORklOSUJBTkRfSVNFUj1tCitDT05G SUdfSU5GSU5JQkFORF9JU0VSVD1tCitDT05GSUdfSU5GSU5JQkFORF9SVFJTPW0KK0NPTkZJR19J TkZJTklCQU5EX1JUUlNfQ0xJRU5UPW0KK0NPTkZJR19JTkZJTklCQU5EX1JUUlNfU0VSVkVSPW0K K0NPTkZJR19FREFDX1NVUFBPUlQ9eQorQ09ORklHX0VEQUM9eQorQ09ORklHX0VEQUNfTEVHQUNZ X1NZU0ZTPXkKK0NPTkZJR19FREFDX0RFQlVHPXkKK0NPTkZJR19FREFDX1NJRklWRT15CitDT05G SUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19SVENfSENUT1NZUz15CitD T05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorQ09ORklHX1JUQ19TWVNUT0hDPXkKK0NP TkZJR19SVENfU1lTVE9IQ19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX1JUQ19OVk1FTT15CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJ R19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lO VEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENP TkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIEkyQyBSVEMgZHJpdmVycworIwor Q09ORklHX1JUQ19EUlZfQUJCNVpFUzM9bQorQ09ORklHX1JUQ19EUlZfQUJFT1o5PW0KK0NPTkZJ R19SVENfRFJWX0FCWDgwWD1tCitDT05GSUdfUlRDX0RSVl9EUzEzMDc9bQorQ09ORklHX1JUQ19E UlZfRFMxMzA3X0NFTlRVUlk9eQorQ09ORklHX1JUQ19EUlZfRFMxMzc0PW0KK0NPTkZJR19SVENf RFJWX0RTMTM3NF9XRFQ9eQorQ09ORklHX1JUQ19EUlZfRFMxNjcyPW0KKyMgQ09ORklHX1JUQ19E UlZfSFlNODU2MyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9NQVg2OTAwPW0KK0NPTkZJR19S VENfRFJWX01BWDc3Njg2PW0KK0NPTkZJR19SVENfRFJWX1JLODA4PW0KK0NPTkZJR19SVENfRFJW X1JTNUMzNzI9bQorQ09ORklHX1JUQ19EUlZfSVNMMTIwOD1tCisjIENPTkZJR19SVENfRFJWX0lT TDEyMDIyIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX0lTTDEyMDI2PW0KK0NPTkZJR19SVENf RFJWX1gxMjA1PW0KK0NPTkZJR19SVENfRFJWX1BDRjg1MjM9bQorQ09ORklHX1JUQ19EUlZfUENG ODUwNjM9bQorQ09ORklHX1JUQ19EUlZfUENGODUzNjM9bQorQ09ORklHX1JUQ19EUlZfUENGODU2 Mz1tCitDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzPW0KK0NPTkZJR19SVENfRFJWX000MVQ4MD1tCitD T05GSUdfUlRDX0RSVl9NNDFUODBfV0RUPXkKK0NPTkZJR19SVENfRFJWX0JENzA1Mjg9bQorIyBD T05GSUdfUlRDX0RSVl9CUTMySyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9TMzUzOTBBPW0K K0NPTkZJR19SVENfRFJWX0ZNMzEzMD1tCitDT05GSUdfUlRDX0RSVl9SWDgwMTA9bQorIyBDT05G SUdfUlRDX0RSVl9SWDg1ODEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SWDgwMjUgaXMg bm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9FTTMwMjcgaXMgbm90IHNldAorQ09ORklHX1JUQ19E UlZfUlYzMDI4PW0KK0NPTkZJR19SVENfRFJWX1JWMzAzMj1tCitDT05GSUdfUlRDX0RSVl9SVjg4 MDM9eQorQ09ORklHX1JUQ19EUlZfU0QzMDc4PW0KKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMK KyMgQ09ORklHX1JUQ19EUlZfTTQxVDkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQx VDk0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzAyIGlzIG5vdCBzZXQKKyMgQ09O RklHX1JUQ19EUlZfRFMxMzA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzQzIGlz IG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzQ3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JU Q19EUlZfRFMxMzkwIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX01BWDY5MTY9bQorIyBDT05G SUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JYNDU4MSBpcyBu b3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorIyBDT05GSUdfUlRD X0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGMjEyMyBpcyBub3Qg c2V0CisjIENPTkZJR19SVENfRFJWX01DUDc5NSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0kyQ19B TkRfU1BJPXkKKworIworIyBTUEkgYW5kIEkyQyBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19E UlZfRFMzMjMyPW0KK0NPTkZJR19SVENfRFJWX0RTMzIzMl9IV01PTj15CitDT05GSUdfUlRDX0RS Vl9QQ0YyMTI3PW0KKyMgQ09ORklHX1JUQ19EUlZfUlYzMDI5QzIgaXMgbm90IHNldAorIyBDT05G SUdfUlRDX0RSVl9SWDYxMTAgaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJz CisjCisjIENPTkZJR19SVENfRFJWX0RTMTI4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJW X0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CitD T05GSUdfUlRDX0RSVl9EUzE2ODVfRkFNSUxZPW0KK0NPTkZJR19SVENfRFJWX0RTMTY4NT15Cisj IENPTkZJR19SVENfRFJWX0RTMTY4OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTcy ODUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDg1IGlzIG5vdCBzZXQKKyMgQ09O RklHX1JUQ19EUlZfRFMxNzg4NSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBp cyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMjQwNCBpcyBub3Qgc2V0CitDT05GSUdfUlRD X0RSVl9FRkk9eQorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJ R19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQzNSBpcyBu b3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENf RFJWX01TTTYyNDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9CUTQ4MDIgaXMgbm90IHNl dAorIyBDT05GSUdfUlRDX0RSVl9SUDVDMDEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9W MzAyMCBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9aWU5RTVA9eQorQ09ORklHX1JUQ19EUlZf TlRYRUM9bQorQ09ORklHX1JUQ19EUlZfU1RBUkZJVkU9eQorCisjCisjIG9uLUNQVSBSVEMgZHJp dmVycworIworQ09ORklHX1JUQ19EUlZfUEwwMzA9eQorQ09ORklHX1JUQ19EUlZfUEwwMzE9eQor Q09ORklHX1JUQ19EUlZfQ0FERU5DRT1tCitDT05GSUdfUlRDX0RSVl9GVFJUQzAxMD1tCitDT05G SUdfUlRDX0RSVl9SNzMwMT1tCitDT05GSUdfUlRDX0RSVl9DUENBUD1tCisKKyMKKyMgSElEIFNl bnNvciBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfSElEX1NFTlNPUl9USU1FPW0KK0NP TkZJR19SVENfRFJWX0dPTERGSVNIPXkKK0NPTkZJR19ETUFERVZJQ0VTPXkKKyMgQ09ORklHX0RN QURFVklDRVNfREVCVUcgaXMgbm90IHNldAorCisjCisjIERNQSBEZXZpY2VzCisjCitDT05GSUdf RE1BX0VOR0lORT15CitDT05GSUdfRE1BX1ZJUlRVQUxfQ0hBTk5FTFM9eQorQ09ORklHX0RNQV9P Rj15CitDT05GSUdfQUxURVJBX01TR0RNQT1tCitDT05GSUdfQU1CQV9QTDA4WD15CitDT05GSUdf RFdfQVhJX0RNQUM9eQorQ09ORklHX0RXX0FYSV9ETUFDX1NUQVJGSVZFPXkKK0NPTkZJR19GU0xf RURNQT1tCisjIENPTkZJR19JTlRFTF9JRE1BNjQgaXMgbm90IHNldAorIyBDT05GSUdfUEwzMzBf RE1BIGlzIG5vdCBzZXQKK0NPTkZJR19QTFhfRE1BPW0KK0NPTkZJR19YSUxJTlhfWllOUU1QX0RQ RE1BPW0KK0NPTkZJR19RQ09NX0hJRE1BX01HTVQ9bQorQ09ORklHX1FDT01fSElETUE9bQorQ09O RklHX0RXX0RNQUNfQ09SRT1tCisjIENPTkZJR19EV19ETUFDIGlzIG5vdCBzZXQKK0NPTkZJR19E V19ETUFDX1BDST1tCitDT05GSUdfRFdfRURNQT1tCitDT05GSUdfRFdfRURNQV9QQ0lFPW0KKyMg Q09ORklHX1NGX1BETUEgaXMgbm90IHNldAorCisjCisjIERNQSBDbGllbnRzCisjCitDT05GSUdf QVNZTkNfVFhfRE1BPXkKKyMgQ09ORklHX0RNQVRFU1QgaXMgbm90IHNldAorCisjCisjIERNQUJV RiBvcHRpb25zCisjCitDT05GSUdfU1lOQ19GSUxFPXkKK0NPTkZJR19TV19TWU5DPXkKK0NPTkZJ R19VRE1BQlVGPXkKKyMgQ09ORklHX0RNQUJVRl9NT1ZFX05PVElGWSBpcyBub3Qgc2V0CisjIENP TkZJR19ETUFCVUZfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfRE1BQlVGX1NFTEZURVNUUyBp cyBub3Qgc2V0CisjIENPTkZJR19ETUFCVUZfSEVBUFMgaXMgbm90IHNldAorIyBDT05GSUdfRE1B QlVGX1NZU0ZTX1NUQVRTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERNQUJVRiBvcHRpb25zCisKK0NP TkZJR19BVVhESVNQTEFZPXkKK0NPTkZJR19DSEFSTENEPW0KK0NPTkZJR19IRDQ0NzgwX0NPTU1P Tj1tCitDT05GSUdfSEQ0NDc4MD1tCisjIENPTkZJR19JTUdfQVNDSUlfTENEIGlzIG5vdCBzZXQK K0NPTkZJR19IVDE2SzMzPW0KK0NPTkZJR19MQ0QyUz1tCitDT05GSUdfUEFSUE9SVF9QQU5FTD1t CitDT05GSUdfUEFORUxfUEFSUE9SVD0wCitDT05GSUdfUEFORUxfUFJPRklMRT01CisjIENPTkZJ R19QQU5FTF9DSEFOR0VfTUVTU0FHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DSEFSTENEX0JMX09G RiBpcyBub3Qgc2V0CisjIENPTkZJR19DSEFSTENEX0JMX09OIGlzIG5vdCBzZXQKK0NPTkZJR19D SEFSTENEX0JMX0ZMQVNIPXkKK0NPTkZJR19QQU5FTD1tCitDT05GSUdfVUlPPW0KK0NPTkZJR19V SU9fQ0lGPW0KK0NPTkZJR19VSU9fUERSVl9HRU5JUlE9bQorQ09ORklHX1VJT19ETUVNX0dFTklS UT1tCitDT05GSUdfVUlPX0FFQz1tCitDT05GSUdfVUlPX1NFUkNPUzM9bQorQ09ORklHX1VJT19Q Q0lfR0VORVJJQz1tCitDT05GSUdfVUlPX05FVFg9bQorIyBDT05GSUdfVUlPX1BSVVNTIGlzIG5v dCBzZXQKK0NPTkZJR19VSU9fTUY2MjQ9bQorQ09ORklHX1VJT19ERkw9bQorQ09ORklHX1ZGSU89 bQorQ09ORklHX1ZGSU9fVklSUUZEPW0KKyMgQ09ORklHX1ZGSU9fTk9JT01NVSBpcyBub3Qgc2V0 CitDT05GSUdfVkZJT19QQ0lfQ09SRT1tCitDT05GSUdfVkZJT19QQ0lfTU1BUD15CitDT05GSUdf VkZJT19QQ0lfSU5UWD15CitDT05GSUdfVkZJT19QQ0k9bQorQ09ORklHX1ZGSU9fTURFVj1tCitD T05GSUdfSVJRX0JZUEFTU19NQU5BR0VSPW0KK0NPTkZJR19WSVJUX0RSSVZFUlM9eQorQ09ORklH X1ZJUlRJTz15CitDT05GSUdfVklSVElPX1BDSV9MSUI9eQorQ09ORklHX1ZJUlRJT19NRU5VPXkK K0NPTkZJR19WSVJUSU9fUENJPXkKK0NPTkZJR19WSVJUSU9fUENJX0xFR0FDWT15CitDT05GSUdf VklSVElPX1ZEUEE9bQorQ09ORklHX1ZJUlRJT19QTUVNPW0KK0NPTkZJR19WSVJUSU9fQkFMTE9P Tj1tCitDT05GSUdfVklSVElPX0lOUFVUPW0KK0NPTkZJR19WSVJUSU9fTU1JTz1tCisjIENPTkZJ R19WSVJUSU9fTU1JT19DTURMSU5FX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX1ZJUlRJT19E TUFfU0hBUkVEX0JVRkZFUj1tCitDT05GSUdfVkRQQT1tCitDT05GSUdfVkRQQV9TSU09bQorQ09O RklHX1ZEUEFfU0lNX05FVD1tCitDT05GSUdfVkRQQV9TSU1fQkxPQ0s9bQorQ09ORklHX1ZEUEFf VVNFUj1tCitDT05GSUdfSUZDVkY9bQorQ09ORklHX01MWDVfVkRQQT15CitDT05GSUdfTUxYNV9W RFBBX05FVD1tCitDT05GSUdfVlBfVkRQQT1tCitDT05GSUdfVkhPU1RfSU9UTEI9bQorQ09ORklH X1ZIT1NUX1JJTkc9bQorQ09ORklHX1ZIT1NUPW0KK0NPTkZJR19WSE9TVF9NRU5VPXkKK0NPTkZJ R19WSE9TVF9ORVQ9bQorQ09ORklHX1ZIT1NUX1NDU0k9bQorQ09ORklHX1ZIT1NUX1ZTT0NLPW0K K0NPTkZJR19WSE9TVF9WRFBBPW0KKyMgQ09ORklHX1ZIT1NUX0NST1NTX0VORElBTl9MRUdBQ1kg aXMgbm90IHNldAorCisjCisjIE1pY3Jvc29mdCBIeXBlci1WIGd1ZXN0IHN1cHBvcnQKKyMKKyMg ZW5kIG9mIE1pY3Jvc29mdCBIeXBlci1WIGd1ZXN0IHN1cHBvcnQKKworIyBDT05GSUdfR1JFWUJV UyBpcyBub3Qgc2V0CitDT05GSUdfQ09NRURJPW0KKyMgQ09ORklHX0NPTUVESV9ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfQ09NRURJX0RFRkFVTFRfQlVGX1NJWkVfS0I9MjA0OAorQ09ORklHX0NP TUVESV9ERUZBVUxUX0JVRl9NQVhTSVpFX0tCPTIwNDgwCisjIENPTkZJR19DT01FRElfTUlTQ19E UklWRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTUVESV9JU0FfRFJJVkVSUyBpcyBub3Qgc2V0 CisjIENPTkZJR19DT01FRElfUENJX0RSSVZFUlMgaXMgbm90IHNldAorQ09ORklHX0NPTUVESV9Q Q01DSUFfRFJJVkVSUz1tCitDT05GSUdfQ09NRURJX0NCX0RBUzE2X0NTPW0KK0NPTkZJR19DT01F RElfREFTMDhfQ1M9bQorQ09ORklHX0NPTUVESV9OSV9EQVFfNzAwX0NTPW0KK0NPTkZJR19DT01F RElfTklfREFRX0RJTzI0X0NTPW0KK0NPTkZJR19DT01FRElfTklfTEFCUENfQ1M9bQorQ09ORklH X0NPTUVESV9OSV9NSU9fQ1M9bQorQ09ORklHX0NPTUVESV9RVUFURUNIX0RBUVBfQ1M9bQorQ09O RklHX0NPTUVESV9VU0JfRFJJVkVSUz1tCitDT05GSUdfQ09NRURJX0RUOTgxMj1tCitDT05GSUdf Q09NRURJX05JX1VTQjY1MDE9bQorQ09ORklHX0NPTUVESV9VU0JEVVg9bQorQ09ORklHX0NPTUVE SV9VU0JEVVhGQVNUPW0KK0NPTkZJR19DT01FRElfVVNCRFVYU0lHTUE9bQorQ09ORklHX0NPTUVE SV9WTUs4MFhYPW0KK0NPTkZJR19DT01FRElfODI1ND1tCitDT05GSUdfQ09NRURJXzgyNTU9bQor Q09ORklHX0NPTUVESV84MjU1X1NBPW0KK0NPTkZJR19DT01FRElfS0NPTUVESUxJQj1tCitDT05G SUdfQ09NRURJX0RBUzA4PW0KK0NPTkZJR19DT01FRElfTklfTEFCUEM9bQorQ09ORklHX0NPTUVE SV9OSV9USU89bQorQ09ORklHX0NPTUVESV9OSV9ST1VUSU5HPW0KKyMgQ09ORklHX0NPTUVESV9U RVNUUyBpcyBub3Qgc2V0CitDT05GSUdfU1RBR0lORz15CitDT05GSUdfUFJJU00yX1VTQj1tCitD T05GSUdfUlRMODE5MlU9bQorQ09ORklHX1JUTExJQj1tCitDT05GSUdfUlRMTElCX0NSWVBUT19D Q01QPW0KK0NPTkZJR19SVExMSUJfQ1JZUFRPX1RLSVA9bQorQ09ORklHX1JUTExJQl9DUllQVE9f V0VQPW0KK0NPTkZJR19SVEw4MTkyRT1tCitDT05GSUdfUlRMODcyM0JTPW0KK0NPTkZJR19SODcx MlU9bQorQ09ORklHX1I4MTg4RVU9bQorQ09ORklHXzg4RVVfQVBfTU9ERT15CitDT05GSUdfUlRT NTIwOD1tCitDT05GSUdfVlQ2NjU1PW0KK0NPTkZJR19WVDY2NTY9bQorCisjCisjIElJTyBzdGFn aW5nIGRyaXZlcnMKKyMKKworIworIyBBY2NlbGVyb21ldGVycworIworIyBDT05GSUdfQURJUzE2 MjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FESVMxNjI0MCBpcyBub3Qgc2V0CisjIGVuZCBvZiBB Y2NlbGVyb21ldGVycworCisjCisjIEFuYWxvZyB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKKyMg Q09ORklHX0FENzgxNiBpcyBub3Qgc2V0CisjIENPTkZJR19BRDcyODAgaXMgbm90IHNldAorIyBl bmQgb2YgQW5hbG9nIHRvIGRpZ2l0YWwgY29udmVydGVycworCisjCisjIEFuYWxvZyBkaWdpdGFs IGJpLWRpcmVjdGlvbiBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRFQ3MzE2IGlzIG5vdCBzZXQK KyMgZW5kIG9mIEFuYWxvZyBkaWdpdGFsIGJpLWRpcmVjdGlvbiBjb252ZXJ0ZXJzCisKKyMKKyMg Q2FwYWNpdGFuY2UgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDc3NDYgaXMg bm90IHNldAorIyBlbmQgb2YgQ2FwYWNpdGFuY2UgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisKKyMK KyMgRGlyZWN0IERpZ2l0YWwgU3ludGhlc2lzCisjCisjIENPTkZJR19BRDk4MzIgaXMgbm90IHNl dAorIyBDT05GSUdfQUQ5ODM0IGlzIG5vdCBzZXQKKyMgZW5kIG9mIERpcmVjdCBEaWdpdGFsIFN5 bnRoZXNpcworCisjCisjIE5ldHdvcmsgQW5hbHl6ZXIsIEltcGVkYW5jZSBDb252ZXJ0ZXJzCisj CisjIENPTkZJR19BRDU5MzMgaXMgbm90IHNldAorIyBlbmQgb2YgTmV0d29yayBBbmFseXplciwg SW1wZWRhbmNlIENvbnZlcnRlcnMKKworIworIyBBY3RpdmUgZW5lcmd5IG1ldGVyaW5nIElDCisj CisjIENPTkZJR19BREU3ODU0IGlzIG5vdCBzZXQKKyMgZW5kIG9mIEFjdGl2ZSBlbmVyZ3kgbWV0 ZXJpbmcgSUMKKworIworIyBSZXNvbHZlciB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKKyMgQ09O RklHX0FEMlMxMjEwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29u dmVydGVycworIyBlbmQgb2YgSUlPIHN0YWdpbmcgZHJpdmVycworCitDT05GSUdfRkJfU003NTA9 bQorQ09ORklHX1NUQUdJTkdfTUVESUE9eQorCisjCisjIEFuZHJvaWQKKyMKK0NPTkZJR19BU0hN RU09eQorIyBlbmQgb2YgQW5kcm9pZAorCisjIENPTkZJR19TVEFHSU5HX0JPQVJEIGlzIG5vdCBz ZXQKK0NPTkZJR19MVEVfR0RNNzI0WD1tCitDT05GSUdfRklSRVdJUkVfU0VSSUFMPW0KK0NPTkZJ R19GV1RUWV9NQVhfVE9UQUxfUE9SVFM9NjQKK0NPTkZJR19GV1RUWV9NQVhfQ0FSRF9QT1JUUz0z MgorIyBDT05GSUdfR1NfRlBHQUJPT1QgaXMgbm90IHNldAorIyBDT05GSUdfVU5JU1lTU1BBUiBp cyBub3Qgc2V0CisjIENPTkZJR19DT01NT05fQ0xLX1hMTlhfQ0xLV1pSRCBpcyBub3Qgc2V0CitD T05GSUdfRkJfVEZUPW0KK0NPTkZJR19GQl9URlRfQUdNMTI2NEtfRkw9bQorQ09ORklHX0ZCX1RG VF9CRDY2MzQ3ND1tCitDT05GSUdfRkJfVEZUX0hYODM0MEJOPW0KK0NPTkZJR19GQl9URlRfSFg4 MzQ3RD1tCitDT05GSUdfRkJfVEZUX0hYODM1M0Q9bQorQ09ORklHX0ZCX1RGVF9IWDgzNTdEPW0K K0NPTkZJR19GQl9URlRfSUxJOTE2Mz1tCitDT05GSUdfRkJfVEZUX0lMSTkzMjA9bQorQ09ORklH X0ZCX1RGVF9JTEk5MzI1PW0KK0NPTkZJR19GQl9URlRfSUxJOTM0MD1tCitDT05GSUdfRkJfVEZU X0lMSTkzNDE9bQorQ09ORklHX0ZCX1RGVF9JTEk5NDgxPW0KK0NPTkZJR19GQl9URlRfSUxJOTQ4 Nj1tCitDT05GSUdfRkJfVEZUX1BDRDg1NDQ9bQorQ09ORklHX0ZCX1RGVF9SQTg4NzU9bQorQ09O RklHX0ZCX1RGVF9TNkQwMkExPW0KK0NPTkZJR19GQl9URlRfUzZEMTEyMT1tCitDT05GSUdfRkJf VEZUX1NFUFM1MjU9bQorQ09ORklHX0ZCX1RGVF9TSDExMDY9bQorQ09ORklHX0ZCX1RGVF9TU0Qx Mjg5PW0KK0NPTkZJR19GQl9URlRfU1NEMTMwNT1tCitDT05GSUdfRkJfVEZUX1NTRDEzMDY9bQor Q09ORklHX0ZCX1RGVF9TU0QxMzMxPW0KK0NPTkZJR19GQl9URlRfU1NEMTM1MT1tCitDT05GSUdf RkJfVEZUX1NUNzczNVI9bQorQ09ORklHX0ZCX1RGVF9TVDc3ODlWPW0KK0NPTkZJR19GQl9URlRf VElOWUxDRD1tCitDT05GSUdfRkJfVEZUX1RMUzgyMDQ9bQorQ09ORklHX0ZCX1RGVF9VQzE2MTE9 bQorQ09ORklHX0ZCX1RGVF9VQzE3MDE9bQorQ09ORklHX0ZCX1RGVF9VUEQxNjE3MDQ9bQorQ09O RklHX0ZCX1RGVF9XQVRURVJPVFQ9bQorQ09ORklHX0tTNzAxMD1tCitDT05GSUdfUEk0MzM9bQor Q09ORklHX1hJTF9BWElTX0ZJRk89bQorQ09ORklHX0ZJRUxEQlVTX0RFVj1tCitDT05GSUdfSE1T X0FOWUJVU1NfQlVTPW0KK0NPTkZJR19BUkNYX0FOWUJVU19DT05UUk9MTEVSPW0KK0NPTkZJR19I TVNfUFJPRklORVQ9bQorQ09ORklHX1FMR0U9bQorQ09ORklHX1dGWD1tCitDT05GSUdfR09MREZJ U0g9eQorQ09ORklHX0dPTERGSVNIX1BJUEU9bQorQ09ORklHX0hBVkVfQ0xLPXkKK0NPTkZJR19I QVZFX0NMS19QUkVQQVJFPXkKK0NPTkZJR19DT01NT05fQ0xLPXkKKworIworIyBDbG9jayBkcml2 ZXIgZm9yIEFSTSBSZWZlcmVuY2UgZGVzaWducworIworQ09ORklHX0lDU1Q9eQorQ09ORklHX0NM S19TUDgxMD15CisjIGVuZCBvZiBDbG9jayBkcml2ZXIgZm9yIEFSTSBSZWZlcmVuY2UgZGVzaWdu cworCitDT05GSUdfTE1LMDQ4MzI9bQorQ09ORklHX0NPTU1PTl9DTEtfTUFYNzc2ODY9bQorQ09O RklHX0NPTU1PTl9DTEtfTUFYOTQ4NT1tCitDT05GSUdfQ09NTU9OX0NMS19SSzgwOD1tCitDT05G SUdfQ09NTU9OX0NMS19TSTUzNDE9bQorIyBDT05GSUdfQ09NTU9OX0NMS19TSTUzNTEgaXMgbm90 IHNldAorQ09ORklHX0NPTU1PTl9DTEtfU0k1MTQ9bQorQ09ORklHX0NPTU1PTl9DTEtfU0k1NDQ9 bQorIyBDT05GSUdfQ09NTU9OX0NMS19TSTU3MCBpcyBub3Qgc2V0CitDT05GSUdfQ09NTU9OX0NM S19DRENFNzA2PW0KK0NPTkZJR19DT01NT05fQ0xLX0NEQ0U5MjU9bQorQ09ORklHX0NPTU1PTl9D TEtfQ1MyMDAwX0NQPW0KK0NPTkZJR19DT01NT05fQ0xLX0FYSV9DTEtHRU49bQorQ09ORklHX0NP TU1PTl9DTEtfTE9DSE5BR0FSPW0KK0NPTkZJR19DT01NT05fQ0xLX1BXTT1tCitDT05GSUdfQ09N TU9OX0NMS19WQzU9bQorQ09ORklHX0NPTU1PTl9DTEtfQkQ3MThYWD1tCitDT05GSUdfQ09NTU9O X0NMS19GSVhFRF9NTUlPPXkKK0NPTkZJR19DTEtfQU5BTE9HQklUU19XUlBMTF9DTE4yOEhQQz15 CitDT05GSUdfQ0xLX1NJRklWRT15CitDT05GSUdfQ0xLX1NJRklWRV9QUkNJPXkKK0NPTkZJR19D TEtfU1RBUkZJVkVfSkg3MTEwPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1ZPVVQ9eQor Q09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfSVNQPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3 MTEwX1BMTD15CitDT05GSUdfWElMSU5YX1ZDVT1tCitDT05GSUdfSFdTUElOTE9DSz15CisKKyMK KyMgQ2xvY2sgU291cmNlIGRyaXZlcnMKKyMKK0NPTkZJR19USU1FUl9PRj15CitDT05GSUdfVElN RVJfUFJPQkU9eQorQ09ORklHX0NMS1NSQ19NTUlPPXkKK0NPTkZJR19SSVNDVl9USU1FUj15CitD T05GSUdfU1RBUkZJVkVfVElNRVI9eQorIyBDT05GSUdfTUlDUk9DSElQX1BJVDY0QiBpcyBub3Qg c2V0CisjIGVuZCBvZiBDbG9jayBTb3VyY2UgZHJpdmVycworCitDT05GSUdfTUFJTEJPWD15Cisj IENPTkZJR19BUk1fTUhVIGlzIG5vdCBzZXQKK0NPTkZJR19BUk1fTUhVX1YyPW0KK0NPTkZJR19Q TEFURk9STV9NSFU9bQorIyBDT05GSUdfUEwzMjBfTUJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19B TFRFUkFfTUJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUlMQk9YX1RFU1QgaXMgbm90IHNldAor Q09ORklHX1NUQVJGSVZFX01CT1g9bQorQ09ORklHX1NUQVJGSVZFX01CT1hfVEVTVD1tCitDT05G SUdfSU9NTVVfSU9WQT1tCitDT05GSUdfSU9NTVVfQVBJPXkKK0NPTkZJR19JT01NVV9TVVBQT1JU PXkKKworIworIyBHZW5lcmljIElPTU1VIFBhZ2V0YWJsZSBTdXBwb3J0CisjCisjIGVuZCBvZiBH ZW5lcmljIElPTU1VIFBhZ2V0YWJsZSBTdXBwb3J0CisKKyMgQ09ORklHX0lPTU1VX0RFQlVHRlMg aXMgbm90IHNldAorIyBDT05GSUdfSU9NTVVfREVGQVVMVF9ETUFfU1RSSUNUIGlzIG5vdCBzZXQK KyMgQ09ORklHX0lPTU1VX0RFRkFVTFRfRE1BX0xBWlkgaXMgbm90IHNldAorQ09ORklHX0lPTU1V X0RFRkFVTFRfUEFTU1RIUk9VR0g9eQorQ09ORklHX09GX0lPTU1VPXkKKworIworIyBSZW1vdGVw cm9jIGRyaXZlcnMKKyMKK0NPTkZJR19SRU1PVEVQUk9DPXkKK0NPTkZJR19SRU1PVEVQUk9DX0NE RVY9eQorIyBlbmQgb2YgUmVtb3RlcHJvYyBkcml2ZXJzCisKKyMKKyMgUnBtc2cgZHJpdmVycwor IworQ09ORklHX1JQTVNHPW0KK0NPTkZJR19SUE1TR19DSEFSPW0KK0NPTkZJR19SUE1TR19OUz1t CitDT05GSUdfUlBNU0dfUUNPTV9HTElOSz1tCitDT05GSUdfUlBNU0dfUUNPTV9HTElOS19SUE09 bQorQ09ORklHX1JQTVNHX1ZJUlRJTz1tCisjIGVuZCBvZiBScG1zZyBkcml2ZXJzCisKK0NPTkZJ R19TT1VORFdJUkU9eQorCisjCisjIFNvdW5kV2lyZSBEZXZpY2VzCisjCitDT05GSUdfU09VTkRX SVJFX1FDT009bQorCisjCisjIFNPQyAoU3lzdGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMK KyMKKworIworIyBBbWxvZ2ljIFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBBbWxvZ2ljIFNvQyBk cml2ZXJzCisKKyMKKyMgQnJvYWRjb20gU29DIGRyaXZlcnMKKyMKKyMgZW5kIG9mIEJyb2FkY29t IFNvQyBkcml2ZXJzCisKKyMKKyMgTlhQL0ZyZWVzY2FsZSBRb3JJUSBTb0MgZHJpdmVycworIwor IyBlbmQgb2YgTlhQL0ZyZWVzY2FsZSBRb3JJUSBTb0MgZHJpdmVycworCisjCisjIGkuTVggU29D IGRyaXZlcnMKKyMKKyMgZW5kIG9mIGkuTVggU29DIGRyaXZlcnMKKworIworIyBFbmFibGUgTGl0 ZVggU29DIEJ1aWxkZXIgc3BlY2lmaWMgZHJpdmVycworIworIyBDT05GSUdfTElURVhfU09DX0NP TlRST0xMRVIgaXMgbm90IHNldAorIyBlbmQgb2YgRW5hYmxlIExpdGVYIFNvQyBCdWlsZGVyIHNw ZWNpZmljIGRyaXZlcnMKKworIworIyBRdWFsY29tbSBTb0MgZHJpdmVycworIworQ09ORklHX1FD T01fUU1JX0hFTFBFUlM9bQorIyBlbmQgb2YgUXVhbGNvbW0gU29DIGRyaXZlcnMKKworQ09ORklH X1NJRklWRV9MMj15CitDT05GSUdfU0lGSVZFX0wyX0ZMVVNIPXkKK0NPTkZJR19TSUZJVkVfTDJf RkxVU0hfU1RBUlQ9MHg0MDAwMDAwMAorQ09ORklHX1NJRklWRV9MMl9GTFVTSF9TSVpFPTB4NDAw MDAwMDAwCitDT05GSUdfU1RBUkZJVkVfUE1VPXkKK0NPTkZJR19TT0NfVEk9eQorCisjCisjIFhp bGlueCBTb0MgZHJpdmVycworIworIyBlbmQgb2YgWGlsaW54IFNvQyBkcml2ZXJzCisjIGVuZCBv ZiBTT0MgKFN5c3RlbSBPbiBDaGlwKSBzcGVjaWZpYyBEcml2ZXJzCisKK0NPTkZJR19QTV9ERVZG UkVRPXkKKworIworIyBERVZGUkVRIEdvdmVybm9ycworIworQ09ORklHX0RFVkZSRVFfR09WX1NJ TVBMRV9PTkRFTUFORD15CitDT05GSUdfREVWRlJFUV9HT1ZfUEVSRk9STUFOQ0U9bQorQ09ORklH X0RFVkZSRVFfR09WX1BPV0VSU0FWRT1tCitDT05GSUdfREVWRlJFUV9HT1ZfVVNFUlNQQUNFPW0K K0NPTkZJR19ERVZGUkVRX0dPVl9QQVNTSVZFPXkKKworIworIyBERVZGUkVRIERyaXZlcnMKKyMK K0NPTkZJR19QTV9ERVZGUkVRX0VWRU5UPXkKK0NPTkZJR19FWFRDT049eQorCisjCisjIEV4dGNv biBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfRVhUQ09OX0FEQ19KQUNLIGlzIG5vdCBzZXQK K0NPTkZJR19FWFRDT05fRlNBOTQ4MD1tCitDT05GSUdfRVhUQ09OX0dQSU89bQorQ09ORklHX0VY VENPTl9NQVgzMzU1PW0KK0NPTkZJR19FWFRDT05fUFRONTE1MD1tCisjIENPTkZJR19FWFRDT05f UlQ4OTczQSBpcyBub3Qgc2V0CitDT05GSUdfRVhUQ09OX1NNNTUwMj1tCisjIENPTkZJR19FWFRD T05fVVNCX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0VYVENPTl9VU0JDX1RVU0IzMjA9bQorQ09O RklHX01FTU9SWT15CitDT05GSUdfQVJNX1BMMTcyX01QTUM9bQorQ09ORklHX0ZQR0FfREZMX0VN SUY9bQorQ09ORklHX0lJTz1tCitDT05GSUdfSUlPX0JVRkZFUj15CitDT05GSUdfSUlPX0JVRkZF Ul9DQj1tCitDT05GSUdfSUlPX0JVRkZFUl9ETUE9bQorQ09ORklHX0lJT19CVUZGRVJfRE1BRU5H SU5FPW0KK0NPTkZJR19JSU9fQlVGRkVSX0hXX0NPTlNVTUVSPW0KK0NPTkZJR19JSU9fS0ZJRk9f QlVGPW0KK0NPTkZJR19JSU9fVFJJR0dFUkVEX0JVRkZFUj1tCitDT05GSUdfSUlPX0NPTkZJR0ZT PW0KK0NPTkZJR19JSU9fVFJJR0dFUj15CitDT05GSUdfSUlPX0NPTlNVTUVSU19QRVJfVFJJR0dF Uj0yCitDT05GSUdfSUlPX1NXX0RFVklDRT1tCitDT05GSUdfSUlPX1NXX1RSSUdHRVI9bQorQ09O RklHX0lJT19UUklHR0VSRURfRVZFTlQ9bQorCisjCisjIEFjY2VsZXJvbWV0ZXJzCisjCisjIENP TkZJR19BRElTMTYyMDEgaXMgbm90IHNldAorIyBDT05GSUdfQURJUzE2MjA5IGlzIG5vdCBzZXQK K0NPTkZJR19BRFhMMzcyPW0KK0NPTkZJR19BRFhMMzcyX1NQST1tCitDT05GSUdfQURYTDM3Ml9J MkM9bQorQ09ORklHX0JNQTIyMD1tCitDT05GSUdfQk1BNDAwPW0KK0NPTkZJR19CTUE0MDBfSTJD PW0KK0NPTkZJR19CTUE0MDBfU1BJPW0KK0NPTkZJR19CTUMxNTBfQUNDRUw9bQorQ09ORklHX0JN QzE1MF9BQ0NFTF9JMkM9bQorQ09ORklHX0JNQzE1MF9BQ0NFTF9TUEk9bQorQ09ORklHX0JNSTA4 OF9BQ0NFTD1tCitDT05GSUdfQk1JMDg4X0FDQ0VMX1NQST1tCitDT05GSUdfREEyODA9bQorQ09O RklHX0RBMzExPW0KK0NPTkZJR19ETUFSRDA2PW0KK0NPTkZJR19ETUFSRDA5PW0KK0NPTkZJR19E TUFSRDEwPW0KK0NPTkZJR19GWExTODk2MkFGPW0KK0NPTkZJR19GWExTODk2MkFGX0kyQz1tCitD T05GSUdfRlhMUzg5NjJBRl9TUEk9bQorQ09ORklHX0hJRF9TRU5TT1JfQUNDRUxfM0Q9bQorQ09O RklHX0lJT19TVF9BQ0NFTF8zQVhJUz1tCitDT05GSUdfSUlPX1NUX0FDQ0VMX0kyQ18zQVhJUz1t CitDT05GSUdfSUlPX1NUX0FDQ0VMX1NQSV8zQVhJUz1tCisjIENPTkZJR19LWFNEOSBpcyBub3Qg c2V0CisjIENPTkZJR19LWENKSzEwMTMgaXMgbm90IHNldAorQ09ORklHX01DMzIzMD1tCitDT05G SUdfTU1BNzQ1NT1tCitDT05GSUdfTU1BNzQ1NV9JMkM9bQorQ09ORklHX01NQTc0NTVfU1BJPW0K K0NPTkZJR19NTUE3NjYwPW0KKyMgQ09ORklHX01NQTg0NTIgaXMgbm90IHNldAorQ09ORklHX01N QTk1NTFfQ09SRT1tCitDT05GSUdfTU1BOTU1MT1tCitDT05GSUdfTU1BOTU1Mz1tCitDT05GSUdf TVhDNDAwNT1tCitDT05GSUdfTVhDNjI1NT1tCisjIENPTkZJR19TQ0EzMDAwIGlzIG5vdCBzZXQK K0NPTkZJR19TQ0EzMzAwPW0KK0NPTkZJR19TVEs4MzEyPW0KK0NPTkZJR19TVEs4QkE1MD1tCisj IGVuZCBvZiBBY2NlbGVyb21ldGVycworCisjCisjIEFuYWxvZyB0byBkaWdpdGFsIGNvbnZlcnRl cnMKKyMKK0NPTkZJR19BRF9TSUdNQV9ERUxUQT1tCitDT05GSUdfQUQ3MDkxUjU9bQorQ09ORklH X0FENzEyND1tCisjIENPTkZJR19BRDcxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQUQ3MjY2IGlz IG5vdCBzZXQKKyMgQ09ORklHX0FENzI5MSBpcyBub3Qgc2V0CitDT05GSUdfQUQ3MjkyPW0KKyMg Q09ORklHX0FENzI5OCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc0NzYgaXMgbm90IHNldAorQ09O RklHX0FENzYwNj1tCitDT05GSUdfQUQ3NjA2X0lGQUNFX1BBUkFMTEVMPW0KK0NPTkZJR19BRDc2 MDZfSUZBQ0VfU1BJPW0KK0NPTkZJR19BRDc3NjY9bQorQ09ORklHX0FENzc2OF8xPW0KKyMgQ09O RklHX0FENzc4MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc3OTEgaXMgbm90IHNldAorIyBDT05G SUdfQUQ3NzkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzg4NyBpcyBub3Qgc2V0CisjIENPTkZJ R19BRDc5MjMgaXMgbm90IHNldAorQ09ORklHX0FENzk0OT1tCisjIENPTkZJR19BRDc5OVggaXMg bm90IHNldAorQ09ORklHX0FEOTQ2Nz1tCitDT05GSUdfQURJX0FYSV9BREM9bQorQ09ORklHX0FY UDIwWF9BREM9bQorQ09ORklHX0FYUDI4OF9BREM9bQorIyBDT05GSUdfQ0MxMDAwMV9BREMgaXMg bm90IHNldAorQ09ORklHX0NQQ0FQX0FEQz1tCitDT05GSUdfRExOMl9BREM9bQorQ09ORklHX0VO VkVMT1BFX0RFVEVDVE9SPW0KK0NPTkZJR19ISTg0MzU9bQorQ09ORklHX0hYNzExPW0KK0NPTkZJ R19JTkEyWFhfQURDPW0KK0NPTkZJR19MVEMyNDcxPW0KK0NPTkZJR19MVEMyNDg1PW0KK0NPTkZJ R19MVEMyNDk2PW0KK0NPTkZJR19MVEMyNDk3PW0KKyMgQ09ORklHX01BWDEwMjcgaXMgbm90IHNl dAorQ09ORklHX01BWDExMTAwPW0KK0NPTkZJR19NQVgxMTE4PW0KK0NPTkZJR19NQVgxMjQxPW0K KyMgQ09ORklHX01BWDEzNjMgaXMgbm90IHNldAorQ09ORklHX01BWDk2MTE9bQorIyBDT05GSUdf TUNQMzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19NQ1AzNDIyIGlzIG5vdCBzZXQKK0NPTkZJR19N Q1AzOTExPW0KK0NPTkZJR19NUDI2MjlfQURDPW0KKyMgQ09ORklHX05BVTc4MDIgaXMgbm90IHNl dAorQ09ORklHX1FDT01fVkFEQ19DT01NT049bQorIyBDT05GSUdfUUNPTV9TUE1JX0lBREMgaXMg bm90IHNldAorIyBDT05GSUdfUUNPTV9TUE1JX1ZBREMgaXMgbm90IHNldAorQ09ORklHX1FDT01f U1BNSV9BREM1PW0KK0NPTkZJR19TRF9BRENfTU9EVUxBVE9SPW0KKyMgQ09ORklHX1RJX0FEQzA4 MUMgaXMgbm90IHNldAorQ09ORklHX1RJX0FEQzA4MzI9bQorQ09ORklHX1RJX0FEQzA4NFMwMjE9 bQorQ09ORklHX1RJX0FEQzEyMTM4PW0KK0NPTkZJR19USV9BREMxMDhTMTAyPW0KKyMgQ09ORklH X1RJX0FEQzEyOFMwNTIgaXMgbm90IHNldAorQ09ORklHX1RJX0FEQzE2MVM2MjY9bQorQ09ORklH X1RJX0FEUzEwMTU9bQorQ09ORklHX1RJX0FEUzc5NTA9bQorQ09ORklHX1RJX0FEUzgzNDQ9bQor IyBDT05GSUdfVElfQURTODY4OCBpcyBub3Qgc2V0CitDT05GSUdfVElfQURTMTI0UzA4PW0KK0NP TkZJR19USV9BRFMxMzFFMDg9bQorIyBDT05GSUdfVElfQU0zMzVYX0FEQyBpcyBub3Qgc2V0CitD T05GSUdfVElfVExDNDU0MT1tCitDT05GSUdfVElfVFNDMjA0Nj1tCisjIENPTkZJR19WRjYxMF9B REMgaXMgbm90IHNldAorIyBDT05GSUdfVklQRVJCT0FSRF9BREMgaXMgbm90IHNldAorQ09ORklH X1hJTElOWF9YQURDPW0KKyMgZW5kIG9mIEFuYWxvZyB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKwor IworIyBBbmFsb2cgRnJvbnQgRW5kcworIworQ09ORklHX0lJT19SRVNDQUxFPW0KKyMgZW5kIG9m IEFuYWxvZyBGcm9udCBFbmRzCisKKyMKKyMgQW1wbGlmaWVycworIworIyBDT05GSUdfQUQ4MzY2 IGlzIG5vdCBzZXQKK0NPTkZJR19ITUM0MjU9bQorIyBlbmQgb2YgQW1wbGlmaWVycworCisjCisj IENhcGFjaXRhbmNlIHRvIGRpZ2l0YWwgY29udmVydGVycworIworIyBDT05GSUdfQUQ3MTUwIGlz IG5vdCBzZXQKKyMgZW5kIG9mIENhcGFjaXRhbmNlIHRvIGRpZ2l0YWwgY29udmVydGVycworCisj CisjIENoZW1pY2FsIFNlbnNvcnMKKyMKK0NPTkZJR19BVExBU19QSF9TRU5TT1I9bQorQ09ORklH X0FUTEFTX0VaT19TRU5TT1I9bQorQ09ORklHX0JNRTY4MD1tCitDT05GSUdfQk1FNjgwX0kyQz1t CitDT05GSUdfQk1FNjgwX1NQST1tCitDT05GSUdfQ0NTODExPW0KK0NPTkZJR19JQVFDT1JFPW0K K0NPTkZJR19QTVM3MDAzPW0KK0NPTkZJR19TQ0QzMF9DT1JFPW0KK0NPTkZJR19TQ0QzMF9JMkM9 bQorQ09ORklHX1NDRDMwX1NFUklBTD1tCisjIENPTkZJR19TRU5TSVJJT05fU0dQMzAgaXMgbm90 IHNldAorIyBDT05GSUdfU0VOU0lSSU9OX1NHUDQwIGlzIG5vdCBzZXQKK0NPTkZJR19TUFMzMD1t CitDT05GSUdfU1BTMzBfSTJDPW0KK0NPTkZJR19TUFMzMF9TRVJJQUw9bQorQ09ORklHX1ZaODlY PW0KKyMgZW5kIG9mIENoZW1pY2FsIFNlbnNvcnMKKworIworIyBIaWQgU2Vuc29yIElJTyBDb21t b24KKyMKK0NPTkZJR19ISURfU0VOU09SX0lJT19DT01NT049bQorQ09ORklHX0hJRF9TRU5TT1Jf SUlPX1RSSUdHRVI9bQorIyBlbmQgb2YgSGlkIFNlbnNvciBJSU8gQ29tbW9uCisKK0NPTkZJR19J SU9fTVNfU0VOU09SU19JMkM9bQorCisjCisjIElJTyBTQ01JIFNlbnNvcnMKKyMKKyMgZW5kIG9m IElJTyBTQ01JIFNlbnNvcnMKKworIworIyBTU1AgU2Vuc29yIENvbW1vbgorIworIyBDT05GSUdf SUlPX1NTUF9TRU5TT1JIVUIgaXMgbm90IHNldAorIyBlbmQgb2YgU1NQIFNlbnNvciBDb21tb24K KworQ09ORklHX0lJT19TVF9TRU5TT1JTX0kyQz1tCitDT05GSUdfSUlPX1NUX1NFTlNPUlNfU1BJ PW0KK0NPTkZJR19JSU9fU1RfU0VOU09SU19DT1JFPW0KKworIworIyBEaWdpdGFsIHRvIGFuYWxv ZyBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDUwNjQgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1 MzYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTM4MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDU0 MjEgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1NDQ2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTQ0 OSBpcyBub3Qgc2V0CitDT05GSUdfQUQ1NTkyUl9CQVNFPW0KK0NPTkZJR19BRDU1OTJSPW0KKyMg Q09ORklHX0FENTU5M1IgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1NTA0IGlzIG5vdCBzZXQKKyMg Q09ORklHX0FENTYyNFJfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19BRDU2ODY9bQorQ09ORklHX0FE NTY4Nl9TUEk9bQorQ09ORklHX0FENTY5Nl9JMkM9bQorIyBDT05GSUdfQUQ1NzU1IGlzIG5vdCBz ZXQKK0NPTkZJR19BRDU3NTg9bQorQ09ORklHX0FENTc2MT1tCisjIENPTkZJR19BRDU3NjQgaXMg bm90IHNldAorIyBDT05GSUdfQUQ1NzY2IGlzIG5vdCBzZXQKK0NPTkZJR19BRDU3NzBSPW0KKyMg Q09ORklHX0FENTc5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BRDczMDMgaXMgbm90IHNldAorQ09O RklHX0FEODgwMT1tCitDT05GSUdfRFBPVF9EQUM9bQorQ09ORklHX0RTNDQyND1tCitDT05GSUdf TFRDMTY2MD1tCitDT05GSUdfTFRDMjYzMj1tCitDT05GSUdfTTYyMzMyPW0KKyMgQ09ORklHX01B WDUxNyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVg1ODIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01D UDQ3MjUgaXMgbm90IHNldAorIyBDT05GSUdfTUNQNDkyMiBpcyBub3Qgc2V0CitDT05GSUdfVElf REFDMDgyUzA4NT1tCitDT05GSUdfVElfREFDNTU3MT1tCitDT05GSUdfVElfREFDNzMxMT1tCitD T05GSUdfVElfREFDNzYxMj1tCisjIENPTkZJR19WRjYxMF9EQUMgaXMgbm90IHNldAorIyBlbmQg b2YgRGlnaXRhbCB0byBhbmFsb2cgY29udmVydGVycworCisjCisjIElJTyBkdW1teSBkcml2ZXIK KyMKKyMgQ09ORklHX0lJT19TSU1QTEVfRFVNTVkgaXMgbm90IHNldAorIyBlbmQgb2YgSUlPIGR1 bW15IGRyaXZlcgorCisjCisjIEZyZXF1ZW5jeSBTeW50aGVzaXplcnMgRERTL1BMTAorIworCisj CisjIENsb2NrIEdlbmVyYXRvci9EaXN0cmlidXRpb24KKyMKKyMgQ09ORklHX0FEOTUyMyBpcyBu b3Qgc2V0CisjIGVuZCBvZiBDbG9jayBHZW5lcmF0b3IvRGlzdHJpYnV0aW9uCisKKyMKKyMgUGhh c2UtTG9ja2VkIExvb3AgKFBMTCkgZnJlcXVlbmN5IHN5bnRoZXNpemVycworIworIyBDT05GSUdf QURGNDM1MCBpcyBub3Qgc2V0CitDT05GSUdfQURGNDM3MT1tCisjIGVuZCBvZiBQaGFzZS1Mb2Nr ZWQgTG9vcCAoUExMKSBmcmVxdWVuY3kgc3ludGhlc2l6ZXJzCisjIGVuZCBvZiBGcmVxdWVuY3kg U3ludGhlc2l6ZXJzIEREUy9QTEwKKworIworIyBEaWdpdGFsIGd5cm9zY29wZSBzZW5zb3JzCisj CisjIENPTkZJR19BRElTMTYwODAgaXMgbm90IHNldAorIyBDT05GSUdfQURJUzE2MTMwIGlzIG5v dCBzZXQKKyMgQ09ORklHX0FESVMxNjEzNiBpcyBub3Qgc2V0CisjIENPTkZJR19BRElTMTYyNjAg aXMgbm90IHNldAorQ09ORklHX0FEWFJTMjkwPW0KKyMgQ09ORklHX0FEWFJTNDUwIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0JNRzE2MCBpcyBub3Qgc2V0CitDT05GSUdfRlhBUzIxMDAyQz1tCitDT05G SUdfRlhBUzIxMDAyQ19JMkM9bQorQ09ORklHX0ZYQVMyMTAwMkNfU1BJPW0KK0NPTkZJR19ISURf U0VOU09SX0dZUk9fM0Q9bQorQ09ORklHX01QVTMwNTA9bQorQ09ORklHX01QVTMwNTBfSTJDPW0K KyMgQ09ORklHX0lJT19TVF9HWVJPXzNBWElTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lURzMyMDAg aXMgbm90IHNldAorIyBlbmQgb2YgRGlnaXRhbCBneXJvc2NvcGUgc2Vuc29ycworCisjCisjIEhl YWx0aCBTZW5zb3JzCisjCisKKyMKKyMgSGVhcnQgUmF0ZSBNb25pdG9ycworIworQ09ORklHX0FG RTQ0MDM9bQorQ09ORklHX0FGRTQ0MDQ9bQorQ09ORklHX01BWDMwMTAwPW0KK0NPTkZJR19NQVgz MDEwMj1tCisjIGVuZCBvZiBIZWFydCBSYXRlIE1vbml0b3JzCisjIGVuZCBvZiBIZWFsdGggU2Vu c29ycworCisjCisjIEh1bWlkaXR5IHNlbnNvcnMKKyMKK0NPTkZJR19BTTIzMTU9bQorIyBDT05G SUdfREhUMTEgaXMgbm90IHNldAorQ09ORklHX0hEQzEwMFg9bQorQ09ORklHX0hEQzIwMTA9bQor Q09ORklHX0hJRF9TRU5TT1JfSFVNSURJVFk9bQorQ09ORklHX0hUUzIyMT1tCitDT05GSUdfSFRT MjIxX0kyQz1tCitDT05GSUdfSFRTMjIxX1NQST1tCitDT05GSUdfSFRVMjE9bQorIyBDT05GSUdf U0k3MDA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJNzAyMCBpcyBub3Qgc2V0CisjIGVuZCBvZiBI dW1pZGl0eSBzZW5zb3JzCisKKyMKKyMgSW5lcnRpYWwgbWVhc3VyZW1lbnQgdW5pdHMKKyMKKyMg Q09ORklHX0FESVMxNjQwMCBpcyBub3Qgc2V0CitDT05GSUdfQURJUzE2NDYwPW0KK0NPTkZJR19B RElTMTY0NzU9bQorIyBDT05GSUdfQURJUzE2NDgwIGlzIG5vdCBzZXQKK0NPTkZJR19CTUkxNjA9 bQorQ09ORklHX0JNSTE2MF9JMkM9bQorQ09ORklHX0JNSTE2MF9TUEk9bQorQ09ORklHX0ZYT1M4 NzAwPW0KK0NPTkZJR19GWE9TODcwMF9JMkM9bQorQ09ORklHX0ZYT1M4NzAwX1NQST1tCitDT05G SUdfS01YNjE9bQorQ09ORklHX0lOVl9JQ000MjYwMD1tCitDT05GSUdfSU5WX0lDTTQyNjAwX0ky Qz1tCitDT05GSUdfSU5WX0lDTTQyNjAwX1NQST1tCitDT05GSUdfSU5WX01QVTYwNTBfSUlPPW0K K0NPTkZJR19JTlZfTVBVNjA1MF9JMkM9bQorQ09ORklHX0lOVl9NUFU2MDUwX1NQST1tCitDT05G SUdfSUlPX1NUX0xTTTZEU1g9bQorQ09ORklHX0lJT19TVF9MU002RFNYX0kyQz1tCitDT05GSUdf SUlPX1NUX0xTTTZEU1hfU1BJPW0KK0NPTkZJR19JSU9fU1RfTFNNNkRTWF9JM0M9bQorQ09ORklH X0lJT19TVF9MU005RFMwPW0KK0NPTkZJR19JSU9fU1RfTFNNOURTMF9JMkM9bQorQ09ORklHX0lJ T19TVF9MU005RFMwX1NQST1tCisjIGVuZCBvZiBJbmVydGlhbCBtZWFzdXJlbWVudCB1bml0cwor CitDT05GSUdfSUlPX0FESVNfTElCPW0KK0NPTkZJR19JSU9fQURJU19MSUJfQlVGRkVSPXkKKwor IworIyBMaWdodCBzZW5zb3JzCisjCisjIENPTkZJR19BREpEX1MzMTEgaXMgbm90IHNldAorQ09O RklHX0FEVVgxMDIwPW0KK0NPTkZJR19BTDMwMTA9bQorIyBDT05GSUdfQUwzMzIwQSBpcyBub3Qg c2V0CisjIENPTkZJR19BUERTOTMwMCBpcyBub3Qgc2V0CitDT05GSUdfQVBEUzk5NjA9bQorQ09O RklHX0FTNzMyMTE9bQorIyBDT05GSUdfQkgxNzUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JIMTc4 MCBpcyBub3Qgc2V0CisjIENPTkZJR19DTTMyMTgxIGlzIG5vdCBzZXQKK0NPTkZJR19DTTMyMzI9 bQorQ09ORklHX0NNMzMyMz1tCitDT05GSUdfQ00zNjA1PW0KKyMgQ09ORklHX0NNMzY2NTEgaXMg bm90IHNldAorQ09ORklHX0dQMkFQMDAyPW0KKyMgQ09ORklHX0dQMkFQMDIwQTAwRiBpcyBub3Qg c2V0CitDT05GSUdfSVFTNjIxX0FMUz1tCisjIENPTkZJR19TRU5TT1JTX0lTTDI5MDE4IGlzIG5v dCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfSVNMMjkwMjggaXMgbm90IHNldAorIyBDT05GSUdfSVNM MjkxMjUgaXMgbm90IHNldAorQ09ORklHX0hJRF9TRU5TT1JfQUxTPW0KK0NPTkZJR19ISURfU0VO U09SX1BST1g9bQorQ09ORklHX0pTQTEyMTI9bQorQ09ORklHX1JQUjA1MjE9bQorIyBDT05GSUdf U0VOU09SU19MTTM1MzMgaXMgbm90IHNldAorIyBDT05GSUdfTFRSNTAxIGlzIG5vdCBzZXQKK0NP TkZJR19MVjAxMDRDUz1tCisjIENPTkZJR19NQVg0NDAwMCBpcyBub3Qgc2V0CitDT05GSUdfTUFY NDQwMDk9bQorQ09ORklHX05PQTEzMDU9bQorQ09ORklHX09QVDMwMDE9bQorQ09ORklHX1BBMTIy MDMwMDE9bQorQ09ORklHX1NJMTEzMz1tCitDT05GSUdfU0kxMTQ1PW0KKyMgQ09ORklHX1NUSzMz MTAgaXMgbm90IHNldAorQ09ORklHX1NUX1VWSVMyNT1tCitDT05GSUdfU1RfVVZJUzI1X0kyQz1t CitDT05GSUdfU1RfVVZJUzI1X1NQST1tCisjIENPTkZJR19UQ1MzNDE0IGlzIG5vdCBzZXQKKyMg Q09ORklHX1RDUzM0NzIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTYzIGlzIG5v dCBzZXQKKyMgQ09ORklHX1RTTDI1ODMgaXMgbm90IHNldAorQ09ORklHX1RTTDI1OTE9bQorQ09O RklHX1RTTDI3NzI9bQorIyBDT05GSUdfVFNMNDUzMSBpcyBub3Qgc2V0CitDT05GSUdfVVM1MTgy RD1tCisjIENPTkZJR19WQ05MNDAwMCBpcyBub3Qgc2V0CitDT05GSUdfVkNOTDQwMzU9bQorQ09O RklHX1ZFTUw2MDMwPW0KKyMgQ09ORklHX1ZFTUw2MDcwIGlzIG5vdCBzZXQKK0NPTkZJR19WTDYx ODA9bQorQ09ORklHX1pPUFQyMjAxPW0KKyMgZW5kIG9mIExpZ2h0IHNlbnNvcnMKKworIworIyBN YWduZXRvbWV0ZXIgc2Vuc29ycworIworQ09ORklHX0FLODk3ND1tCisjIENPTkZJR19BSzg5NzUg aXMgbm90IHNldAorIyBDT05GSUdfQUswOTkxMSBpcyBub3Qgc2V0CisjIENPTkZJR19CTUMxNTBf TUFHTl9JMkMgaXMgbm90IHNldAorIyBDT05GSUdfQk1DMTUwX01BR05fU1BJIGlzIG5vdCBzZXQK KyMgQ09ORklHX01BRzMxMTAgaXMgbm90IHNldAorQ09ORklHX0hJRF9TRU5TT1JfTUFHTkVUT01F VEVSXzNEPW0KKyMgQ09ORklHX01NQzM1MjQwIGlzIG5vdCBzZXQKK0NPTkZJR19JSU9fU1RfTUFH Tl8zQVhJUz1tCitDT05GSUdfSUlPX1NUX01BR05fSTJDXzNBWElTPW0KK0NPTkZJR19JSU9fU1Rf TUFHTl9TUElfM0FYSVM9bQorIyBDT05GSUdfU0VOU09SU19ITUM1ODQzX0kyQyBpcyBub3Qgc2V0 CisjIENPTkZJR19TRU5TT1JTX0hNQzU4NDNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JT X1JNMzEwMD1tCitDT05GSUdfU0VOU09SU19STTMxMDBfSTJDPW0KK0NPTkZJR19TRU5TT1JTX1JN MzEwMF9TUEk9bQorIyBDT05GSUdfWUFNQUhBX1lBUzUzMCBpcyBub3Qgc2V0CisjIGVuZCBvZiBN YWduZXRvbWV0ZXIgc2Vuc29ycworCisjCisjIE11bHRpcGxleGVycworIworQ09ORklHX0lJT19N VVg9bQorIyBlbmQgb2YgTXVsdGlwbGV4ZXJzCisKKyMKKyMgSW5jbGlub21ldGVyIHNlbnNvcnMK KyMKK0NPTkZJR19ISURfU0VOU09SX0lOQ0xJTk9NRVRFUl8zRD1tCitDT05GSUdfSElEX1NFTlNP Ul9ERVZJQ0VfUk9UQVRJT049bQorIyBlbmQgb2YgSW5jbGlub21ldGVyIHNlbnNvcnMKKworIwor IyBUcmlnZ2VycyAtIHN0YW5kYWxvbmUKKyMKK0NPTkZJR19JSU9fSFJUSU1FUl9UUklHR0VSPW0K KyMgQ09ORklHX0lJT19JTlRFUlJVUFRfVFJJR0dFUiBpcyBub3Qgc2V0CitDT05GSUdfSUlPX1RJ R0hUTE9PUF9UUklHR0VSPW0KKyMgQ09ORklHX0lJT19TWVNGU19UUklHR0VSIGlzIG5vdCBzZXQK KyMgZW5kIG9mIFRyaWdnZXJzIC0gc3RhbmRhbG9uZQorCisjCisjIExpbmVhciBhbmQgYW5ndWxh ciBwb3NpdGlvbiBzZW5zb3JzCisjCitDT05GSUdfSVFTNjI0X1BPUz1tCisjIENPTkZJR19ISURf U0VOU09SX0NVU1RPTV9JTlRFTF9ISU5HRSBpcyBub3Qgc2V0CisjIGVuZCBvZiBMaW5lYXIgYW5k IGFuZ3VsYXIgcG9zaXRpb24gc2Vuc29ycworCisjCisjIERpZ2l0YWwgcG90ZW50aW9tZXRlcnMK KyMKK0NPTkZJR19BRDUxMTA9bQorQ09ORklHX0FENTI3Mj1tCisjIENPTkZJR19EUzE4MDMgaXMg bm90IHNldAorQ09ORklHX01BWDU0MzI9bQorQ09ORklHX01BWDU0ODE9bQorQ09ORklHX01BWDU0 ODc9bQorQ09ORklHX01DUDQwMTg9bQorIyBDT05GSUdfTUNQNDEzMSBpcyBub3Qgc2V0CitDT05G SUdfTUNQNDUzMT1tCitDT05GSUdfTUNQNDEwMTA9bQorQ09ORklHX1RQTDAxMDI9bQorIyBlbmQg b2YgRGlnaXRhbCBwb3RlbnRpb21ldGVycworCisjCisjIERpZ2l0YWwgcG90ZW50aW9zdGF0cwor IworQ09ORklHX0xNUDkxMDAwPW0KKyMgZW5kIG9mIERpZ2l0YWwgcG90ZW50aW9zdGF0cworCisj CisjIFByZXNzdXJlIHNlbnNvcnMKKyMKK0NPTkZJR19BQlAwNjBNRz1tCitDT05GSUdfQk1QMjgw PW0KK0NPTkZJR19CTVAyODBfSTJDPW0KK0NPTkZJR19CTVAyODBfU1BJPW0KK0NPTkZJR19ETEhM NjBEPW0KK0NPTkZJR19EUFMzMTA9bQorQ09ORklHX0hJRF9TRU5TT1JfUFJFU1M9bQorIyBDT05G SUdfSFAwMyBpcyBub3Qgc2V0CitDT05GSUdfSUNQMTAxMDA9bQorQ09ORklHX01QTDExNT1tCitD T05GSUdfTVBMMTE1X0kyQz1tCitDT05GSUdfTVBMMTE1X1NQST1tCisjIENPTkZJR19NUEwzMTE1 IGlzIG5vdCBzZXQKKyMgQ09ORklHX01TNTYxMSBpcyBub3Qgc2V0CitDT05GSUdfTVM1NjM3PW0K K0NPTkZJR19JSU9fU1RfUFJFU1M9bQorQ09ORklHX0lJT19TVF9QUkVTU19JMkM9bQorQ09ORklH X0lJT19TVF9QUkVTU19TUEk9bQorIyBDT05GSUdfVDU0MDMgaXMgbm90IHNldAorIyBDT05GSUdf SFAyMDZDIGlzIG5vdCBzZXQKK0NPTkZJR19aUEEyMzI2PW0KK0NPTkZJR19aUEEyMzI2X0kyQz1t CitDT05GSUdfWlBBMjMyNl9TUEk9bQorIyBlbmQgb2YgUHJlc3N1cmUgc2Vuc29ycworCisjCisj IExpZ2h0bmluZyBzZW5zb3JzCisjCisjIENPTkZJR19BUzM5MzUgaXMgbm90IHNldAorIyBlbmQg b2YgTGlnaHRuaW5nIHNlbnNvcnMKKworIworIyBQcm94aW1pdHkgYW5kIGRpc3RhbmNlIHNlbnNv cnMKKyMKK0NPTkZJR19JU0wyOTUwMT1tCitDT05GSUdfTElEQVJfTElURV9WMj1tCitDT05GSUdf TUIxMjMyPW0KK0NPTkZJR19QSU5HPW0KK0NPTkZJR19SRkQ3NzQwMj1tCitDT05GSUdfU1JGMDQ9 bQorQ09ORklHX1NYOTMxMD1tCitDT05GSUdfU1g5NTAwPW0KK0NPTkZJR19TUkYwOD1tCitDT05G SUdfVkNOTDMwMjA9bQorQ09ORklHX1ZMNTNMMFhfSTJDPW0KKyMgZW5kIG9mIFByb3hpbWl0eSBh bmQgZGlzdGFuY2Ugc2Vuc29ycworCisjCisjIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVy cworIworIyBDT05GSUdfQUQyUzkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FEMlMxMjAwIGlzIG5v dCBzZXQKKyMgZW5kIG9mIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVycworCisjCisjIFRl bXBlcmF0dXJlIHNlbnNvcnMKKyMKK0NPTkZJR19JUVM2MjBBVF9URU1QPW0KK0NPTkZJR19MVEMy OTgzPW0KK0NPTkZJR19NQVhJTV9USEVSTU9DT1VQTEU9bQorQ09ORklHX0hJRF9TRU5TT1JfVEVN UD1tCisjIENPTkZJR19NTFg5MDYxNCBpcyBub3Qgc2V0CitDT05GSUdfTUxYOTA2MzI9bQorIyBD T05GSUdfVE1QMDA2IGlzIG5vdCBzZXQKK0NPTkZJR19UTVAwMDc9bQorQ09ORklHX1RNUDExNz1t CitDT05GSUdfVFNZUzAxPW0KK0NPTkZJR19UU1lTMDJEPW0KK0NPTkZJR19NQVgzMTg1Nj1tCisj IGVuZCBvZiBUZW1wZXJhdHVyZSBzZW5zb3JzCisKK0NPTkZJR19OVEI9eQorQ09ORklHX05UQl9N U0k9eQorQ09ORklHX05UQl9JRFQ9bQorIyBDT05GSUdfTlRCX0VQRiBpcyBub3Qgc2V0CitDT05G SUdfTlRCX1NXSVRDSFRFQz1tCisjIENPTkZJR19OVEJfUElOR1BPTkcgaXMgbm90IHNldAorIyBD T05GSUdfTlRCX1RPT0wgaXMgbm90IHNldAorQ09ORklHX05UQl9QRVJGPW0KKyMgQ09ORklHX05U Ql9NU0lfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfTlRCX1RSQU5TUE9SVD1tCisjIENPTkZJR19W TUVfQlVTIGlzIG5vdCBzZXQKK0NPTkZJR19QV009eQorQ09ORklHX1BXTV9TWVNGUz15CisjIENP TkZJR19QV01fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BXTV9BVE1FTF9ITENEQ19QV009bQor Q09ORklHX1BXTV9BVE1FTF9UQ0I9bQorQ09ORklHX1BXTV9EV0M9bQorIyBDT05GSUdfUFdNX0ZT TF9GVE0gaXMgbm90IHNldAorQ09ORklHX1BXTV9JUVM2MjBBPW0KK0NPTkZJR19QV01fTFAzOTQz PW0KK0NPTkZJR19QV01fTlRYRUM9bQorIyBDT05GSUdfUFdNX1BDQTk2ODUgaXMgbm90IHNldAor Q09ORklHX1BXTV9TSUZJVkU9bQorQ09ORklHX1BXTV9TVEFSRklWRV9QVEM9bQorCisjCisjIElS USBjaGlwIHN1cHBvcnQKKyMKK0NPTkZJR19JUlFDSElQPXkKK0NPTkZJR19BTF9GSUM9eQorQ09O RklHX01BREVSQV9JUlE9bQorQ09ORklHX1JJU0NWX0lOVEM9eQorQ09ORklHX1NJRklWRV9QTElD PXkKKyMgZW5kIG9mIElSUSBjaGlwIHN1cHBvcnQKKworQ09ORklHX0lQQUNLX0JVUz1tCitDT05G SUdfQk9BUkRfVFBDSTIwMD1tCitDT05GSUdfU0VSSUFMX0lQT0NUQUw9bQorQ09ORklHX1JFU0VU X0NPTlRST0xMRVI9eQorQ09ORklHX1JFU0VUX1NJTVBMRT15CitDT05GSUdfUkVTRVRfVElfU1lT Q09OPW0KK0NPTkZJR19SRVNFVF9TVEFSRklWRV9KSDcxMTA9eQorCisjCisjIFBIWSBTdWJzeXN0 ZW0KKyMKK0NPTkZJR19HRU5FUklDX1BIWT15CitDT05GSUdfR0VORVJJQ19QSFlfTUlQSV9EUEhZ PXkKK0NPTkZJR19QSFlfQ0FOX1RSQU5TQ0VJVkVSPW0KK0NPTkZJR19CQ01fS09OQV9VU0IyX1BI WT1tCitDT05GSUdfUEhZX0NBREVOQ0VfVE9SUkVOVD1tCitDT05GSUdfUEhZX0NBREVOQ0VfRFBI WT1tCitDT05GSUdfUEhZX0NBREVOQ0VfU0lFUlJBPW0KK0NPTkZJR19QSFlfQ0FERU5DRV9TQUxW Tz1tCitDT05GSUdfUEhZX0ZTTF9JTVg4TVFfVVNCPW0KK0NPTkZJR19QSFlfTUlYRUxfTUlQSV9E UEhZPW0KK0NPTkZJR19QSFlfUFhBXzI4Tk1fSFNJQz1tCitDT05GSUdfUEhZX1BYQV8yOE5NX1VT QjI9bQorQ09ORklHX1BIWV9DUENBUF9VU0I9bQorQ09ORklHX1BIWV9NQVBQSE9ORV9NRE02NjAw PW0KK0NPTkZJR19QSFlfT0NFTE9UX1NFUkRFUz1tCitDT05GSUdfUEhZX1FDT01fVVNCX0hTPW0K K0NPTkZJR19QSFlfUUNPTV9VU0JfSFNJQz1tCisjIENPTkZJR19QSFlfU0FNU1VOR19VU0IyIGlz IG5vdCBzZXQKKyMgQ09ORklHX1BIWV9UVVNCMTIxMCBpcyBub3Qgc2V0CitDT05GSUdfUEhZX00z MV9EUEhZX1JYMD1tCisjIGVuZCBvZiBQSFkgU3Vic3lzdGVtCisKK0NPTkZJR19QT1dFUkNBUD15 CitDT05GSUdfSURMRV9JTkpFQ1Q9eQorIyBDT05GSUdfRFRQTSBpcyBub3Qgc2V0CisjIENPTkZJ R19NQ0IgaXMgbm90IHNldAorCisjCisjIFBlcmZvcm1hbmNlIG1vbml0b3Igc3VwcG9ydAorIwor Q09ORklHX1JJU0NWX1BNVT15CitDT05GSUdfUklTQ1ZfUE1VX0xFR0FDWT15CitDT05GSUdfUklT Q1ZfUE1VX1NCST15CisjIGVuZCBvZiBQZXJmb3JtYW5jZSBtb25pdG9yIHN1cHBvcnQKKworQ09O RklHX1JBUz15CitDT05GSUdfVVNCND1tCisjIENPTkZJR19VU0I0X0RFQlVHRlNfV1JJVEUgaXMg bm90IHNldAorIyBDT05GSUdfVVNCNF9ETUFfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQW5kcm9p ZAorIworQ09ORklHX0FORFJPSUQ9eQorQ09ORklHX0FORFJPSURfQklOREVSX0lQQz15CitDT05G SUdfQU5EUk9JRF9CSU5ERVJGUz15CitDT05GSUdfQU5EUk9JRF9CSU5ERVJfREVWSUNFUz0iIgor IyBDT05GSUdfQU5EUk9JRF9CSU5ERVJfSVBDX1NFTEZURVNUIGlzIG5vdCBzZXQKKyMgZW5kIG9m IEFuZHJvaWQKKworQ09ORklHX0xJQk5WRElNTT1tCitDT05GSUdfQkxLX0RFVl9QTUVNPW0KK0NP TkZJR19ORF9CTEs9bQorQ09ORklHX05EX0NMQUlNPXkKK0NPTkZJR19ORF9CVFQ9bQorQ09ORklH X0JUVD15CitDT05GSUdfT0ZfUE1FTT1tCitDT05GSUdfTlZESU1NX0tFWVM9eQorQ09ORklHX0RB WF9EUklWRVI9eQorQ09ORklHX0RBWD15CitDT05GSUdfREVWX0RBWD1tCitDT05GSUdfTlZNRU09 eQorQ09ORklHX05WTUVNX1NZU0ZTPXkKK0NPTkZJR19OVk1FTV9TUE1JX1NEQU09bQorIyBDT05G SUdfTlZNRU1fUk1FTSBpcyBub3Qgc2V0CisKKyMKKyMgSFcgdHJhY2luZyBzdXBwb3J0CisjCitD T05GSUdfU1RNPXkKK0NPTkZJR19TVE1fUFJPVE9fQkFTSUM9bQorQ09ORklHX1NUTV9QUk9UT19T WVNfVD1tCisjIENPTkZJR19TVE1fRFVNTVkgaXMgbm90IHNldAorQ09ORklHX1NUTV9TT1VSQ0Vf Q09OU09MRT15CisjIENPTkZJR19TVE1fU09VUkNFX0hFQVJUQkVBVCBpcyBub3Qgc2V0CitDT05G SUdfU1RNX1NPVVJDRV9GVFJBQ0U9bQorIyBDT05GSUdfSU5URUxfVEggaXMgbm90IHNldAorIyBl bmQgb2YgSFcgdHJhY2luZyBzdXBwb3J0CisKK0NPTkZJR19GUEdBPW0KK0NPTkZJR19BTFRFUkFf UFJfSVBfQ09SRT1tCitDT05GSUdfQUxURVJBX1BSX0lQX0NPUkVfUExBVD1tCitDT05GSUdfRlBH QV9NR1JfQUxURVJBX1BTX1NQST1tCitDT05GSUdfRlBHQV9NR1JfQUxURVJBX0NWUD1tCitDT05G SUdfRlBHQV9NR1JfWElMSU5YX1NQST1tCitDT05GSUdfRlBHQV9NR1JfSUNFNDBfU1BJPW0KK0NP TkZJR19GUEdBX01HUl9NQUNIWE8yX1NQST1tCitDT05GSUdfRlBHQV9CUklER0U9bQorQ09ORklH X0FMVEVSQV9GUkVFWkVfQlJJREdFPW0KK0NPTkZJR19YSUxJTlhfUFJfREVDT1VQTEVSPW0KK0NP TkZJR19GUEdBX1JFR0lPTj1tCitDT05GSUdfT0ZfRlBHQV9SRUdJT049bQorQ09ORklHX0ZQR0Ff REZMPW0KK0NPTkZJR19GUEdBX0RGTF9GTUU9bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9NR1I9bQor Q09ORklHX0ZQR0FfREZMX0ZNRV9CUklER0U9bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9SRUdJT049 bQorQ09ORklHX0ZQR0FfREZMX0FGVT1tCisjIENPTkZJR19GUEdBX0RGTF9OSU9TX0lOVEVMX1BB Q19OMzAwMCBpcyBub3Qgc2V0CitDT05GSUdfRlBHQV9ERkxfUENJPW0KKyMgQ09ORklHX0ZTSSBp cyBub3Qgc2V0CitDT05GSUdfTVVMVElQTEVYRVI9bQorCisjCisjIE11bHRpcGxleGVyIGRyaXZl cnMKKyMKK0NPTkZJR19NVVhfQURHNzkyQT1tCitDT05GSUdfTVVYX0FER1MxNDA4PW0KK0NPTkZJ R19NVVhfR1BJTz1tCitDT05GSUdfTVVYX01NSU89bQorIyBlbmQgb2YgTXVsdGlwbGV4ZXIgZHJp dmVycworCitDT05GSUdfUE1fT1BQPXkKKyMgQ09ORklHX1NJT1ggaXMgbm90IHNldAorIyBDT05G SUdfU0xJTUJVUyBpcyBub3Qgc2V0CitDT05GSUdfSU5URVJDT05ORUNUPXkKKyMgQ09ORklHX0NP VU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfTU9TVCBpcyBub3Qgc2V0CisKKyMKKyMgQ1BVIEZy ZXF1ZW5jeSBzY2FsaW5nCisjCitDT05GSUdfQ1BVX0ZSRVE9eQorQ09ORklHX0NQVV9GUkVRX0dP Vl9BVFRSX1NFVD15CitDT05GSUdfQ1BVX0ZSRVFfR09WX0NPTU1PTj15CitDT05GSUdfQ1BVX0ZS RVFfU1RBVD15CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRSBpcyBu b3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNl dAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKK0NP TkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORD15CisjIENPTkZJR19DUFVfRlJFUV9E RUZBVUxUX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVG QVVMVF9HT1ZfU0NIRURVVElMIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9HT1ZfUEVSRk9S TUFOQ0U9eQorQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkU9bQorQ09ORklHX0NQVV9GUkVR X0dPVl9VU0VSU1BBQ0U9bQorQ09ORklHX0NQVV9GUkVRX0dPVl9PTkRFTUFORD15CitDT05GSUdf Q1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRT1tCitDT05GSUdfQ1BVX0ZSRVFfR09WX1NDSEVEVVRJ TD15CisKKyMKKyMgQ1BVIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlcnMKKyMKK0NPTkZJR19DUFVG UkVRX0RUPW0KK0NPTkZJR19DUFVGUkVRX0RUX1BMQVRERVY9eQorQ09ORklHX1JJU0NWX1NUQVJG SVZFX0NQVUZSRVE9eQorIyBlbmQgb2YgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCisjIGVuZCBvZiBE ZXZpY2UgRHJpdmVycworCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX1ZBTElEQVRFX0ZT X1BBUlNFUj15CitDT05GSUdfRlNfSU9NQVA9eQorIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0 CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQ0X0ZTPXkKK0NPTkZJR19F WFQ0X1VTRV9GT1JfRVhUMj15CitDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VY VDRfRlNfU0VDVVJJVFk9eQorIyBDT05GSUdfRVhUNF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdf SkJEMj15CisjIENPTkZJR19KQkQyX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19GU19NQkNBQ0hF PXkKK0NPTkZJR19SRUlTRVJGU19GUz1tCisjIENPTkZJR19SRUlTRVJGU19DSEVDSyBpcyBub3Qg c2V0CisjIENPTkZJR19SRUlTRVJGU19QUk9DX0lORk8gaXMgbm90IHNldAorQ09ORklHX1JFSVNF UkZTX0ZTX1hBVFRSPXkKK0NPTkZJR19SRUlTRVJGU19GU19QT1NJWF9BQ0w9eQorQ09ORklHX1JF SVNFUkZTX0ZTX1NFQ1VSSVRZPXkKK0NPTkZJR19KRlNfRlM9bQorQ09ORklHX0pGU19QT1NJWF9B Q0w9eQorQ09ORklHX0pGU19TRUNVUklUWT15CisjIENPTkZJR19KRlNfREVCVUcgaXMgbm90IHNl dAorIyBDT05GSUdfSkZTX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorQ09ORklHX1hGU19GUz1tCitD T05GSUdfWEZTX1NVUFBPUlRfVjQ9eQorQ09ORklHX1hGU19RVU9UQT15CitDT05GSUdfWEZTX1BP U0lYX0FDTD15CisjIENPTkZJR19YRlNfUlQgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX09OTElO RV9TQ1JVQiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfV0FSTiBpcyBub3Qgc2V0CisjIENPTkZJ R19YRlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0dGUzJfRlM9bQorQ09ORklHX0dGUzJfRlNf TE9DS0lOR19ETE09eQorQ09ORklHX09DRlMyX0ZTPW0KK0NPTkZJR19PQ0ZTMl9GU19PMkNCPW0K K0NPTkZJR19PQ0ZTMl9GU19VU0VSU1BBQ0VfQ0xVU1RFUj1tCitDT05GSUdfT0NGUzJfRlNfU1RB VFM9eQorIyBDT05GSUdfT0NGUzJfREVCVUdfTUFTS0xPRyBpcyBub3Qgc2V0CisjIENPTkZJR19P Q0ZTMl9ERUJVR19GUyBpcyBub3Qgc2V0CitDT05GSUdfQlRSRlNfRlM9bQorQ09ORklHX0JUUkZT X0ZTX1BPU0lYX0FDTD15CisjIENPTkZJR19CVFJGU19GU19DSEVDS19JTlRFR1JJVFkgaXMgbm90 IHNldAorIyBDT05GSUdfQlRSRlNfRlNfUlVOX1NBTklUWV9URVNUUyBpcyBub3Qgc2V0CisjIENP TkZJR19CVFJGU19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19CVFJGU19BU1NFUlQgaXMgbm90 IHNldAorIyBDT05GSUdfQlRSRlNfRlNfUkVGX1ZFUklGWSBpcyBub3Qgc2V0CitDT05GSUdfTklM RlMyX0ZTPW0KK0NPTkZJR19GMkZTX0ZTPW0KK0NPTkZJR19GMkZTX1NUQVRfRlM9eQorQ09ORklH X0YyRlNfRlNfWEFUVFI9eQorQ09ORklHX0YyRlNfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19GMkZT X0ZTX1NFQ1VSSVRZPXkKKyMgQ09ORklHX0YyRlNfQ0hFQ0tfRlMgaXMgbm90IHNldAorIyBDT05G SUdfRjJGU19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfRjJGU19GU19DT01Q UkVTU0lPTiBpcyBub3Qgc2V0CitDT05GSUdfRjJGU19JT1NUQVQ9eQorQ09ORklHX1pPTkVGU19G Uz1tCitDT05GSUdfRlNfREFYPXkKK0NPTkZJR19GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VYUE9S VEZTPXkKK0NPTkZJR19FWFBPUlRGU19CTE9DS19PUFM9eQorQ09ORklHX0ZJTEVfTE9DS0lORz15 CitDT05GSUdfRlNfRU5DUllQVElPTj15CitDT05GSUdfRlNfRU5DUllQVElPTl9BTEdTPXkKK0NP TkZJR19GU19FTkNSWVBUSU9OX0lOTElORV9DUllQVD15CisjIENPTkZJR19GU19WRVJJVFkgaXMg bm90IHNldAorQ09ORklHX0ZTTk9USUZZPXkKK0NPTkZJR19ETk9USUZZPXkKK0NPTkZJR19JTk9U SUZZX1VTRVI9eQorQ09ORklHX0ZBTk9USUZZPXkKK0NPTkZJR19GQU5PVElGWV9BQ0NFU1NfUEVS TUlTU0lPTlM9eQorQ09ORklHX1FVT1RBPXkKK0NPTkZJR19RVU9UQV9ORVRMSU5LX0lOVEVSRkFD RT15CisjIENPTkZJR19QUklOVF9RVU9UQV9XQVJOSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FV T1RBX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19RVU9UQV9UUkVFPW0KK0NPTkZJR19RRk1UX1Yx PW0KK0NPTkZJR19RRk1UX1YyPW0KK0NPTkZJR19RVU9UQUNUTD15CitDT05GSUdfQVVUT0ZTNF9G Uz15CitDT05GSUdfQVVUT0ZTX0ZTPXkKK0NPTkZJR19GVVNFX0ZTPW0KK0NPTkZJR19DVVNFPW0K K0NPTkZJR19WSVJUSU9fRlM9bQorQ09ORklHX0ZVU0VfREFYPXkKK0NPTkZJR19PVkVSTEFZX0ZT PW0KKyMgQ09ORklHX09WRVJMQVlfRlNfUkVESVJFQ1RfRElSIGlzIG5vdCBzZXQKK0NPTkZJR19P VkVSTEFZX0ZTX1JFRElSRUNUX0FMV0FZU19GT0xMT1c9eQorIyBDT05GSUdfT1ZFUkxBWV9GU19J TkRFWCBpcyBub3Qgc2V0CisjIENPTkZJR19PVkVSTEFZX0ZTX1hJTk9fQVVUTyBpcyBub3Qgc2V0 CisjIENPTkZJR19PVkVSTEFZX0ZTX01FVEFDT1BZIGlzIG5vdCBzZXQKKworIworIyBDYWNoZXMK KyMKK0NPTkZJR19ORVRGU19TVVBQT1JUPW0KK0NPTkZJR19ORVRGU19TVEFUUz15CitDT05GSUdf RlNDQUNIRT1tCitDT05GSUdfRlNDQUNIRV9TVEFUUz15CisjIENPTkZJR19GU0NBQ0hFX0RFQlVH IGlzIG5vdCBzZXQKK0NPTkZJR19DQUNIRUZJTEVTPW0KKyMgQ09ORklHX0NBQ0hFRklMRVNfREVC VUcgaXMgbm90IHNldAorIyBlbmQgb2YgQ2FjaGVzCisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lz dGVtcworIworQ09ORklHX0lTTzk2NjBfRlM9bQorQ09ORklHX0pPTElFVD15CitDT05GSUdfWklT T0ZTPXkKK0NPTkZJR19VREZfRlM9bQorIyBlbmQgb2YgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwor CisjCisjIERPUy9GQVQvRVhGQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9bQor Q09ORklHX01TRE9TX0ZTPW0KK0NPTkZJR19WRkFUX0ZTPW0KK0NPTkZJR19GQVRfREVGQVVMVF9D T0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMg Q09ORklHX0ZBVF9ERUZBVUxUX1VURjggaXMgbm90IHNldAorQ09ORklHX0VYRkFUX0ZTPW0KK0NP TkZJR19FWEZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0idXRmOCIKK0NPTkZJR19OVEZTX0ZTPW0KKyMg Q09ORklHX05URlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19SVyBpcyBub3Qgc2V0 CitDT05GSUdfTlRGUzNfRlM9bQorIyBDT05GSUdfTlRGUzNfNjRCSVRfQ0xVU1RFUiBpcyBub3Qg c2V0CitDT05GSUdfTlRGUzNfTFpYX1hQUkVTUz15CisjIENPTkZJR19OVEZTM19GU19QT1NJWF9B Q0wgaXMgbm90IHNldAorIyBlbmQgb2YgRE9TL0ZBVC9FWEZBVC9OVCBGaWxlc3lzdGVtcworCisj CisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0Nf S0NPUkU9eQorQ09ORklHX1BST0NfVk1DT1JFPXkKKyMgQ09ORklHX1BST0NfVk1DT1JFX0RFVklD RV9EVU1QIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfUFJPQ19QQUdF X01PTklUT1I9eQorQ09ORklHX1BST0NfQ0hJTERSRU49eQorQ09ORklHX0tFUk5GUz15CitDT05G SUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKK0NPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQorQ09O RklHX1RNUEZTX1hBVFRSPXkKK0NPTkZJR19UTVBGU19JTk9ERTY0PXkKK0NPTkZJR19BUkNIX1NV UFBPUlRTX0hVR0VUTEJGUz15CitDT05GSUdfSFVHRVRMQkZTPXkKK0NPTkZJR19IVUdFVExCX1BB R0U9eQorQ09ORklHX01FTUZEX0NSRUFURT15CitDT05GSUdfQVJDSF9IQVNfR0lHQU5USUNfUEFH RT15CitDT05GSUdfQ09ORklHRlNfRlM9eQorQ09ORklHX0VGSVZBUl9GUz1tCisjIGVuZCBvZiBQ c2V1ZG8gZmlsZXN5c3RlbXMKKworQ09ORklHX01JU0NfRklMRVNZU1RFTVM9eQorIyBDT05GSUdf T1JBTkdFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CitDT05G SUdfQUZGU19GUz1tCitDT05GSUdfRUNSWVBUX0ZTPW0KKyMgQ09ORklHX0VDUllQVF9GU19NRVNT QUdJTkcgaXMgbm90IHNldAorQ09ORklHX0hGU19GUz1tCitDT05GSUdfSEZTUExVU19GUz1tCitD T05GSUdfQkVGU19GUz1tCisjIENPTkZJR19CRUZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklH X0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdf SkZGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUJJRlNfRlMgaXMgbm90IHNldAorQ09ORklH X0NSQU1GUz1tCitDT05GSUdfQ1JBTUZTX0JMT0NLREVWPXkKK0NPTkZJR19DUkFNRlNfTVREPXkK K0NPTkZJR19TUVVBU0hGUz1tCitDT05GSUdfU1FVQVNIRlNfRklMRV9DQUNIRT15CisjIENPTkZJ R19TUVVBU0hGU19GSUxFX0RJUkVDVCBpcyBub3Qgc2V0CitDT05GSUdfU1FVQVNIRlNfREVDT01Q X1NJTkdMRT15CisjIENPTkZJR19TUVVBU0hGU19ERUNPTVBfTVVMVEkgaXMgbm90IHNldAorIyBD T05GSUdfU1FVQVNIRlNfREVDT01QX01VTFRJX1BFUkNQVSBpcyBub3Qgc2V0CitDT05GSUdfU1FV QVNIRlNfWEFUVFI9eQorQ09ORklHX1NRVUFTSEZTX1pMSUI9eQorQ09ORklHX1NRVUFTSEZTX0xa ND15CitDT05GSUdfU1FVQVNIRlNfTFpPPXkKK0NPTkZJR19TUVVBU0hGU19YWj15CitDT05GSUdf U1FVQVNIRlNfWlNURD15CisjIENPTkZJR19TUVVBU0hGU180S19ERVZCTEtfU0laRSBpcyBub3Qg c2V0CisjIENPTkZJR19TUVVBU0hGU19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfU1FVQVNI RlNfRlJBR01FTlRfQ0FDSEVfU0laRT0zCisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMg Q09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09NRlNfRlMgaXMgbm90IHNldAor Q09ORklHX0hQRlNfRlM9bQorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19R Tlg2RlNfRlM9bQorIyBDT05GSUdfUU5YNkZTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19ST01G U19GUz1tCisjIENPTkZJR19ST01GU19CQUNLRURfQllfQkxPQ0sgaXMgbm90IHNldAorIyBDT05G SUdfUk9NRlNfQkFDS0VEX0JZX01URCBpcyBub3Qgc2V0CitDT05GSUdfUk9NRlNfQkFDS0VEX0JZ X0JPVEg9eQorQ09ORklHX1JPTUZTX09OX0JMT0NLPXkKK0NPTkZJR19ST01GU19PTl9NVEQ9eQor Q09ORklHX1BTVE9SRT15CitDT05GSUdfUFNUT1JFX0RFRkFVTFRfS01TR19CWVRFUz0xMDI0MAor Q09ORklHX1BTVE9SRV9ERUZMQVRFX0NPTVBSRVNTPW0KKyMgQ09ORklHX1BTVE9SRV9MWk9fQ09N UFJFU1MgaXMgbm90IHNldAorIyBDT05GSUdfUFNUT1JFX0xaNF9DT01QUkVTUyBpcyBub3Qgc2V0 CitDT05GSUdfUFNUT1JFX0xaNEhDX0NPTVBSRVNTPW0KKyMgQ09ORklHX1BTVE9SRV84NDJfQ09N UFJFU1MgaXMgbm90IHNldAorQ09ORklHX1BTVE9SRV9aU1REX0NPTVBSRVNTPXkKK0NPTkZJR19Q U1RPUkVfQ09NUFJFU1M9eQorQ09ORklHX1BTVE9SRV9ERUZMQVRFX0NPTVBSRVNTX0RFRkFVTFQ9 eQorIyBDT05GSUdfUFNUT1JFX0xaNEhDX0NPTVBSRVNTX0RFRkFVTFQgaXMgbm90IHNldAorIyBD T05GSUdfUFNUT1JFX1pTVERfQ09NUFJFU1NfREVGQVVMVCBpcyBub3Qgc2V0CitDT05GSUdfUFNU T1JFX0NPTVBSRVNTX0RFRkFVTFQ9ImRlZmxhdGUiCisjIENPTkZJR19QU1RPUkVfQ09OU09MRSBp cyBub3Qgc2V0CisjIENPTkZJR19QU1RPUkVfUE1TRyBpcyBub3Qgc2V0CisjIENPTkZJR19QU1RP UkVfRlRSQUNFIGlzIG5vdCBzZXQKK0NPTkZJR19QU1RPUkVfUkFNPW0KK0NPTkZJR19TWVNWX0ZT PW0KK0NPTkZJR19VRlNfRlM9bQorIyBDT05GSUdfVUZTX0ZTX1dSSVRFIGlzIG5vdCBzZXQKKyMg Q09ORklHX1VGU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRVJPRlNfRlM9bQorIyBDT05GSUdf RVJPRlNfRlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VST0ZTX0ZTX1hBVFRSPXkKK0NPTkZJ R19FUk9GU19GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VST0ZTX0ZTX1NFQ1VSSVRZPXkKK0NPTkZJ R19FUk9GU19GU19aSVA9eQorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05G U19GUz1tCitDT05GSUdfTkZTX1YyPW0KK0NPTkZJR19ORlNfVjM9bQorQ09ORklHX05GU19WM19B Q0w9eQorQ09ORklHX05GU19WND1tCitDT05GSUdfTkZTX1NXQVA9eQorQ09ORklHX05GU19WNF8x PXkKK0NPTkZJR19ORlNfVjRfMj15CitDT05GSUdfUE5GU19GSUxFX0xBWU9VVD1tCitDT05GSUdf UE5GU19GTEVYRklMRV9MQVlPVVQ9bQorQ09ORklHX05GU19WNF8xX0lNUExFTUVOVEFUSU9OX0lE X0RPTUFJTj0ia2VybmVsLm9yZyIKKyMgQ09ORklHX05GU19WNF8xX01JR1JBVElPTiBpcyBub3Qg c2V0CitDT05GSUdfTkZTX1Y0X1NFQ1VSSVRZX0xBQkVMPXkKK0NPTkZJR19ORlNfRlNDQUNIRT15 CisjIENPTkZJR19ORlNfVVNFX0xFR0FDWV9ETlMgaXMgbm90IHNldAorQ09ORklHX05GU19VU0Vf S0VSTkVMX0ROUz15CitDT05GSUdfTkZTX0RFQlVHPXkKK0NPTkZJR19ORlNfRElTQUJMRV9VRFBf U1VQUE9SVD15CisjIENPTkZJR19ORlNfVjRfMl9SRUFEX1BMVVMgaXMgbm90IHNldAorQ09ORklH X05GU0Q9bQorQ09ORklHX05GU0RfVjJfQUNMPXkKK0NPTkZJR19ORlNEX1YzPXkKK0NPTkZJR19O RlNEX1YzX0FDTD15CitDT05GSUdfTkZTRF9WND15CitDT05GSUdfTkZTRF9QTkZTPXkKK0NPTkZJ R19ORlNEX0JMT0NLTEFZT1VUPXkKK0NPTkZJR19ORlNEX1NDU0lMQVlPVVQ9eQorQ09ORklHX05G U0RfRkxFWEZJTEVMQVlPVVQ9eQorQ09ORklHX05GU0RfVjRfMl9JTlRFUl9TU0M9eQorQ09ORklH X05GU0RfVjRfU0VDVVJJVFlfTEFCRUw9eQorQ09ORklHX0dSQUNFX1BFUklPRD1tCitDT05GSUdf TE9DS0Q9bQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQUNMX1NVUFBPUlQ9bQorQ09O RklHX05GU19DT01NT049eQorQ09ORklHX05GU19WNF8yX1NTQ19IRUxQRVI9eQorQ09ORklHX1NV TlJQQz1tCitDT05GSUdfU1VOUlBDX0dTUz1tCitDT05GSUdfU1VOUlBDX0JBQ0tDSEFOTkVMPXkK K0NPTkZJR19TVU5SUENfU1dBUD15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PW0KKyMgQ09ORklH X1NVTlJQQ19ESVNBQkxFX0lOU0VDVVJFX0VOQ1RZUEVTIGlzIG5vdCBzZXQKK0NPTkZJR19TVU5S UENfREVCVUc9eQorQ09ORklHX1NVTlJQQ19YUFJUX1JETUE9bQorQ09ORklHX0NFUEhfRlM9bQor Q09ORklHX0NFUEhfRlNDQUNIRT15CitDT05GSUdfQ0VQSF9GU19QT1NJWF9BQ0w9eQorIyBDT05G SUdfQ0VQSF9GU19TRUNVUklUWV9MQUJFTCBpcyBub3Qgc2V0CitDT05GSUdfQ0lGUz1tCisjIENP TkZJR19DSUZTX1NUQVRTMiBpcyBub3Qgc2V0CitDT05GSUdfQ0lGU19BTExPV19JTlNFQ1VSRV9M RUdBQ1k9eQorQ09ORklHX0NJRlNfVVBDQUxMPXkKK0NPTkZJR19DSUZTX1hBVFRSPXkKK0NPTkZJ R19DSUZTX1BPU0lYPXkKK0NPTkZJR19DSUZTX0RFQlVHPXkKKyMgQ09ORklHX0NJRlNfREVCVUcy IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfREVCVUdfRFVNUF9LRVlTIGlzIG5vdCBzZXQKK0NP TkZJR19DSUZTX0RGU19VUENBTEw9eQorQ09ORklHX0NJRlNfU1dOX1VQQ0FMTD15CisjIENPTkZJ R19DSUZTX1NNQl9ESVJFQ1QgaXMgbm90IHNldAorQ09ORklHX0NJRlNfRlNDQUNIRT15CisjIENP TkZJR19TTUJfU0VSVkVSIGlzIG5vdCBzZXQKK0NPTkZJR19TTUJGU19DT01NT049bQorQ09ORklH X0NPREFfRlM9bQorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR185UF9GUz1tCitD T05GSUdfOVBfRlNDQUNIRT15CitDT05GSUdfOVBfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR185UF9G U19TRUNVUklUWT15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0idXRmOCIKK0NP TkZJR19OTFNfQ09ERVBBR0VfNDM3PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfNzM3PW0KK0NPTkZJ R19OTFNfQ09ERVBBR0VfNzc1PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPW0KK0NPTkZJR19O TFNfQ09ERVBBR0VfODUyPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODU1PW0KK0NPTkZJR19OTFNf Q09ERVBBR0VfODU3PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODYwPW0KK0NPTkZJR19OTFNfQ09E RVBBR0VfODYxPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODYyPW0KK0NPTkZJR19OTFNfQ09ERVBB R0VfODYzPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODY0PW0KK0NPTkZJR19OTFNfQ09ERVBBR0Vf ODY1PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODY2PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfODY5 PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfOTM2PW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfOTUwPW0K K0NPTkZJR19OTFNfQ09ERVBBR0VfOTMyPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfOTQ5PW0KK0NP TkZJR19OTFNfQ09ERVBBR0VfODc0PW0KK0NPTkZJR19OTFNfSVNPODg1OV84PW0KK0NPTkZJR19O TFNfQ09ERVBBR0VfMTI1MD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzEyNTE9bQorQ09ORklHX05M U19BU0NJST1tCitDT05GSUdfTkxTX0lTTzg4NTlfMT1tCitDT05GSUdfTkxTX0lTTzg4NTlfMj1t CitDT05GSUdfTkxTX0lTTzg4NTlfMz1tCitDT05GSUdfTkxTX0lTTzg4NTlfND1tCitDT05GSUdf TkxTX0lTTzg4NTlfNT1tCitDT05GSUdfTkxTX0lTTzg4NTlfNj1tCitDT05GSUdfTkxTX0lTTzg4 NTlfNz1tCitDT05GSUdfTkxTX0lTTzg4NTlfOT1tCitDT05GSUdfTkxTX0lTTzg4NTlfMTM9bQor Q09ORklHX05MU19JU084ODU5XzE0PW0KK0NPTkZJR19OTFNfSVNPODg1OV8xNT1tCitDT05GSUdf TkxTX0tPSThfUj1tCitDT05GSUdfTkxTX0tPSThfVT1tCitDT05GSUdfTkxTX01BQ19ST01BTj1t CitDT05GSUdfTkxTX01BQ19DRUxUSUM9bQorQ09ORklHX05MU19NQUNfQ0VOVEVVUk89bQorQ09O RklHX05MU19NQUNfQ1JPQVRJQU49bQorQ09ORklHX05MU19NQUNfQ1lSSUxMSUM9bQorQ09ORklH X05MU19NQUNfR0FFTElDPW0KK0NPTkZJR19OTFNfTUFDX0dSRUVLPW0KK0NPTkZJR19OTFNfTUFD X0lDRUxBTkQ9bQorQ09ORklHX05MU19NQUNfSU5VSVQ9bQorQ09ORklHX05MU19NQUNfUk9NQU5J QU49bQorQ09ORklHX05MU19NQUNfVFVSS0lTSD1tCitDT05GSUdfTkxTX1VURjg9bQorQ09ORklH X0RMTT1tCitDT05GSUdfRExNX0RFQlVHPXkKK0NPTkZJR19VTklDT0RFPXkKKyMgQ09ORklHX1VO SUNPREVfTk9STUFMSVpBVElPTl9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfSU9fV1E9eQor IyBlbmQgb2YgRmlsZSBzeXN0ZW1zCisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworQ09ORklH X0tFWVM9eQorIyBDT05GSUdfS0VZU19SRVFVRVNUX0NBQ0hFIGlzIG5vdCBzZXQKK0NPTkZJR19Q RVJTSVNURU5UX0tFWVJJTkdTPXkKK0NPTkZJR19UUlVTVEVEX0tFWVM9bQorQ09ORklHX0VOQ1JZ UFRFRF9LRVlTPXkKK0NPTkZJR19LRVlfREhfT1BFUkFUSU9OUz15CitDT05GSUdfS0VZX05PVElG SUNBVElPTlM9eQorQ09ORklHX1NFQ1VSSVRZX0RNRVNHX1JFU1RSSUNUPXkKK0NPTkZJR19TRUNV UklUWT15CitDT05GSUdfU0VDVVJJVFlGUz15CitDT05GSUdfU0VDVVJJVFlfTkVUV09SSz15Cisj IENPTkZJR19TRUNVUklUWV9JTkZJTklCQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZ X05FVFdPUktfWEZSTSBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfUEFUSD15CitDT05GSUdf SEFWRV9IQVJERU5FRF9VU0VSQ09QWV9BTExPQ0FUT1I9eQorQ09ORklHX0hBUkRFTkVEX1VTRVJD T1BZPXkKKyMgQ09ORklHX0hBUkRFTkVEX1VTRVJDT1BZX0ZBTExCQUNLIGlzIG5vdCBzZXQKKyMg Q09ORklHX0hBUkRFTkVEX1VTRVJDT1BZX1BBR0VTUEFOIGlzIG5vdCBzZXQKK0NPTkZJR19GT1JU SUZZX1NPVVJDRT15CisjIENPTkZJR19TVEFUSUNfVVNFUk1PREVIRUxQRVIgaXMgbm90IHNldAor IyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9T TUFDSyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9UT01PWU8gaXMgbm90IHNldAorQ09O RklHX1NFQ1VSSVRZX0FQUEFSTU9SPXkKK0NPTkZJR19TRUNVUklUWV9BUFBBUk1PUl9IQVNIPXkK K0NPTkZJR19TRUNVUklUWV9BUFBBUk1PUl9IQVNIX0RFRkFVTFQ9eQorIyBDT05GSUdfU0VDVVJJ VFlfQVBQQVJNT1JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfTE9BRFBJTiBp cyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfWUFNQT15CisjIENPTkZJR19TRUNVUklUWV9TQUZF U0VUSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfTE9DS0RPV05fTFNNIGlzIG5vdCBz ZXQKK0NPTkZJR19TRUNVUklUWV9MQU5ETE9DSz15CitDT05GSUdfSU5URUdSSVRZPXkKKyMgQ09O RklHX0lOVEVHUklUWV9TSUdOQVRVUkUgaXMgbm90IHNldAorQ09ORklHX0lOVEVHUklUWV9BVURJ VD15CisjIENPTkZJR19JTUEgaXMgbm90IHNldAorIyBDT05GSUdfRVZNIGlzIG5vdCBzZXQKK0NP TkZJR19ERUZBVUxUX1NFQ1VSSVRZX0FQUEFSTU9SPXkKKyMgQ09ORklHX0RFRkFVTFRfU0VDVVJJ VFlfREFDIGlzIG5vdCBzZXQKK0NPTkZJR19MU009ImxhbmRsb2NrLHlhbWEsbG9hZHBpbixzYWZl c2V0aWQsaW50ZWdyaXR5IgorCisjCisjIEtlcm5lbCBoYXJkZW5pbmcgb3B0aW9ucworIworCisj CisjIE1lbW9yeSBpbml0aWFsaXphdGlvbgorIworQ09ORklHX0NDX0hBU19BVVRPX1ZBUl9JTklU X1BBVFRFUk49eQorQ09ORklHX0NDX0hBU19BVVRPX1ZBUl9JTklUX1pFUk89eQorQ09ORklHX0lO SVRfU1RBQ0tfTk9ORT15CisjIENPTkZJR19JTklUX1NUQUNLX0FMTF9QQVRURVJOIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0lOSVRfU1RBQ0tfQUxMX1pFUk8gaXMgbm90IHNldAorQ09ORklHX0lOSVRf T05fQUxMT0NfREVGQVVMVF9PTj15CisjIENPTkZJR19JTklUX09OX0ZSRUVfREVGQVVMVF9PTiBp cyBub3Qgc2V0CitDT05GSUdfQ0NfSEFTX1pFUk9fQ0FMTF9VU0VEX1JFR1M9eQorIyBDT05GSUdf WkVST19DQUxMX1VTRURfUkVHUyBpcyBub3Qgc2V0CisjIGVuZCBvZiBNZW1vcnkgaW5pdGlhbGl6 YXRpb24KKyMgZW5kIG9mIEtlcm5lbCBoYXJkZW5pbmcgb3B0aW9ucworIyBlbmQgb2YgU2VjdXJp dHkgb3B0aW9ucworCitDT05GSUdfWE9SX0JMT0NLUz1tCitDT05GSUdfQ1JZUFRPPXkKKworIwor IyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJ R19DUllQVE9fQUxHQVBJMj15CitDT05GSUdfQ1JZUFRPX0FFQUQ9eQorQ09ORklHX0NSWVBUT19B RUFEMj15CitDT05GSUdfQ1JZUFRPX1NLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fU0tDSVBIRVIy PXkKK0NPTkZJR19DUllQVE9fSEFTSD15CitDT05GSUdfQ1JZUFRPX0hBU0gyPXkKK0NPTkZJR19D UllQVE9fUk5HPXkKK0NPTkZJR19DUllQVE9fUk5HMj15CitDT05GSUdfQ1JZUFRPX1JOR19ERUZB VUxUPXkKK0NPTkZJR19DUllQVE9fQUtDSVBIRVIyPXkKK0NPTkZJR19DUllQVE9fQUtDSVBIRVI9 eQorQ09ORklHX0NSWVBUT19LUFAyPXkKK0NPTkZJR19DUllQVE9fS1BQPXkKK0NPTkZJR19DUllQ VE9fQUNPTVAyPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CitDT05GSUdfQ1JZUFRPX01BTkFH RVIyPXkKK0NPTkZJR19DUllQVE9fVVNFUj1tCitDT05GSUdfQ1JZUFRPX01BTkFHRVJfRElTQUJM RV9URVNUUz15CitDT05GSUdfQ1JZUFRPX0dGMTI4TVVMPXkKK0NPTkZJR19DUllQVE9fTlVMTD15 CitDT05GSUdfQ1JZUFRPX05VTEwyPXkKK0NPTkZJR19DUllQVE9fUENSWVBUPW0KK0NPTkZJR19D UllQVE9fQ1JZUFREPW0KK0NPTkZJR19DUllQVE9fQVVUSEVOQz1tCitDT05GSUdfQ1JZUFRPX1RF U1Q9bQorQ09ORklHX0NSWVBUT19FTkdJTkU9eQorCisjCisjIFB1YmxpYy1rZXkgY3J5cHRvZ3Jh cGh5CisjCitDT05GSUdfQ1JZUFRPX1JTQT15CitDT05GSUdfQ1JZUFRPX0RIPXkKK0NPTkZJR19D UllQVE9fRUNDPW0KK0NPTkZJR19DUllQVE9fRUNESD1tCitDT05GSUdfQ1JZUFRPX0VDUkRTQT1t CitDT05GSUdfQ1JZUFRPX1NNMj1tCitDT05GSUdfQ1JZUFRPX0NVUlZFMjU1MTk9bQorCisjCisj IEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworQ09ORklH X0NSWVBUT19DQ009bQorQ09ORklHX0NSWVBUT19HQ009eQorQ09ORklHX0NSWVBUT19DSEFDSEEy MFBPTFkxMzA1PW0KKyMgQ09ORklHX0NSWVBUT19BRUdJUzEyOCBpcyBub3Qgc2V0CitDT05GSUdf Q1JZUFRPX1NFUUlWPXkKK0NPTkZJR19DUllQVE9fRUNIQUlOSVY9bQorCisjCisjIEJsb2NrIG1v ZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CitDT05GSUdfQ1JZUFRPX0NGQj1tCitDT05GSUdf Q1JZUFRPX0NUUj15CitDT05GSUdfQ1JZUFRPX0NUUz15CitDT05GSUdfQ1JZUFRPX0VDQj15CitD T05GSUdfQ1JZUFRPX0xSVz1tCitDT05GSUdfQ1JZUFRPX09GQj1tCitDT05GSUdfQ1JZUFRPX1BD QkM9bQorQ09ORklHX0NSWVBUT19YVFM9eQorQ09ORklHX0NSWVBUT19LRVlXUkFQPW0KK0NPTkZJ R19DUllQVE9fTkhQT0xZMTMwNT1tCitDT05GSUdfQ1JZUFRPX0FESUFOVFVNPW0KK0NPTkZJR19D UllQVE9fRVNTSVY9bQorCisjCisjIEhhc2ggbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ01BQz1t CitDT05GSUdfQ1JZUFRPX0hNQUM9eQorQ09ORklHX0NSWVBUT19YQ0JDPW0KK0NPTkZJR19DUllQ VE9fVk1BQz1tCisKKyMKKyMgRGlnZXN0CisjCitDT05GSUdfQ1JZUFRPX0NSQzMyQz15CitDT05G SUdfQ1JZUFRPX0NSQzMyPW0KK0NPTkZJR19DUllQVE9fWFhIQVNIPW0KK0NPTkZJR19DUllQVE9f QkxBS0UyQj1tCitDT05GSUdfQ1JZUFRPX0JMQUtFMlM9bQorQ09ORklHX0NSWVBUT19DUkNUMTBE SUY9eQorQ09ORklHX0NSWVBUT19HSEFTSD15CitDT05GSUdfQ1JZUFRPX1BPTFkxMzA1PW0KK0NP TkZJR19DUllQVE9fTUQ0PW0KK0NPTkZJR19DUllQVE9fTUQ1PXkKK0NPTkZJR19DUllQVE9fTUlD SEFFTF9NSUM9bQorIyBDT05GSUdfQ1JZUFRPX1JNRDEyOCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZ UFRPX1JNRDE2MD1tCisjIENPTkZJR19DUllQVE9fUk1EMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklH X0NSWVBUT19STUQzMjAgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19TSEExPXkKK0NPTkZJR19D UllQVE9fU0hBMjU2PXkKK0NPTkZJR19DUllQVE9fU0hBNTEyPXkKK0NPTkZJR19DUllQVE9fU0hB Mz1tCitDT05GSUdfQ1JZUFRPX1NNMz1tCitDT05GSUdfQ1JZUFRPX1NUUkVFQk9HPW0KKyMgQ09O RklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19XUDUxMj1tCisKKyMK KyMgQ2lwaGVycworIworQ09ORklHX0NSWVBUT19BRVM9eQorQ09ORklHX0NSWVBUT19BRVNfVEk9 bQorQ09ORklHX0NSWVBUT19BTlVCSVM9bQorQ09ORklHX0NSWVBUT19BUkM0PW0KK0NPTkZJR19D UllQVE9fQkxPV0ZJU0g9bQorQ09ORklHX0NSWVBUT19CTE9XRklTSF9DT01NT049bQorQ09ORklH X0NSWVBUT19DQU1FTExJQT1tCitDT05GSUdfQ1JZUFRPX0NBU1RfQ09NTU9OPW0KK0NPTkZJR19D UllQVE9fQ0FTVDU9bQorQ09ORklHX0NSWVBUT19DQVNUNj1tCitDT05GSUdfQ1JZUFRPX0RFUz1t CitDT05GSUdfQ1JZUFRPX0ZDUllQVD1tCitDT05GSUdfQ1JZUFRPX0tIQVpBRD1tCisjIENPTkZJ R19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0NIQUNIQTIwPW0KK0NP TkZJR19DUllQVE9fU0VFRD1tCitDT05GSUdfQ1JZUFRPX1NFUlBFTlQ9bQorIyBDT05GSUdfQ1JZ UFRPX1NNNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1RFQT1tCitDT05GSUdfQ1JZUFRPX1RX T0ZJU0g9bQorQ09ORklHX0NSWVBUT19UV09GSVNIX0NPTU1PTj1tCisKKyMKKyMgQ29tcHJlc3Np b24KKyMKK0NPTkZJR19DUllQVE9fREVGTEFURT1tCitDT05GSUdfQ1JZUFRPX0xaTz15CitDT05G SUdfQ1JZUFRPXzg0Mj15CitDT05GSUdfQ1JZUFRPX0xaND1tCitDT05GSUdfQ1JZUFRPX0xaNEhD PW0KK0NPTkZJR19DUllQVE9fWlNURD15CisKKyMKKyMgUmFuZG9tIE51bWJlciBHZW5lcmF0aW9u CisjCitDT05GSUdfQ1JZUFRPX0FOU0lfQ1BSTkc9bQorQ09ORklHX0NSWVBUT19EUkJHX01FTlU9 eQorQ09ORklHX0NSWVBUT19EUkJHX0hNQUM9eQorQ09ORklHX0NSWVBUT19EUkJHX0hBU0g9eQor Q09ORklHX0NSWVBUT19EUkJHX0NUUj15CitDT05GSUdfQ1JZUFRPX0RSQkc9eQorQ09ORklHX0NS WVBUT19KSVRURVJFTlRST1BZPXkKK0NPTkZJR19DUllQVE9fVVNFUl9BUEk9bQorQ09ORklHX0NS WVBUT19VU0VSX0FQSV9IQVNIPW0KK0NPTkZJR19DUllQVE9fVVNFUl9BUElfU0tDSVBIRVI9bQor Q09ORklHX0NSWVBUT19VU0VSX0FQSV9STkc9bQorIyBDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX1JO R19DQVZQIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fVVNFUl9BUElfQUVBRD1tCitDT05GSUdf Q1JZUFRPX1VTRVJfQVBJX0VOQUJMRV9PQlNPTEVURT15CisjIENPTkZJR19DUllQVE9fU1RBVFMg aXMgbm90IHNldAorQ09ORklHX0NSWVBUT19VU0VSX0FQSV9BS0NJUEhFUj1tCitDT05GSUdfQ1JZ UFRPX1VTRVJfQVBJX0tQUD1tCitDT05GSUdfQ1JZUFRPX0hBU0hfSU5GTz15CisKKyMKKyMgQ3J5 cHRvIGxpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19DUllQVE9fTElCX0FFUz15CitDT05GSUdf Q1JZUFRPX0xJQl9BUkM0PW0KK0NPTkZJR19DUllQVE9fTElCX0JMQUtFMlNfR0VORVJJQz1tCitD T05GSUdfQ1JZUFRPX0xJQl9CTEFLRTJTPW0KK0NPTkZJR19DUllQVE9fTElCX0NIQUNIQV9HRU5F UklDPW0KK0NPTkZJR19DUllQVE9fTElCX0NIQUNIQT1tCitDT05GSUdfQ1JZUFRPX0xJQl9DVVJW RTI1NTE5X0dFTkVSSUM9bQorQ09ORklHX0NSWVBUT19MSUJfQ1VSVkUyNTUxOT1tCitDT05GSUdf Q1JZUFRPX0xJQl9ERVM9eQorQ09ORklHX0NSWVBUT19MSUJfUE9MWTEzMDVfUlNJWkU9MQorQ09O RklHX0NSWVBUT19MSUJfUE9MWTEzMDVfR0VORVJJQz1tCitDT05GSUdfQ1JZUFRPX0xJQl9QT0xZ MTMwNT1tCitDT05GSUdfQ1JZUFRPX0xJQl9DSEFDSEEyMFBPTFkxMzA1PW0KK0NPTkZJR19DUllQ VE9fTElCX1NIQTI1Nj15CitDT05GSUdfQ1JZUFRPX0hXPXkKK0NPTkZJR19DUllQVE9fREVWX0FU TUVMX0kyQz1tCitDT05GSUdfQ1JZUFRPX0RFVl9BVE1FTF9FQ0M9bQorQ09ORklHX0NSWVBUT19E RVZfQVRNRUxfU0hBMjA0QT1tCitDT05GSUdfQ1JZUFRPX0RFVl9OSVRST1g9bQorQ09ORklHX0NS WVBUT19ERVZfTklUUk9YX0NOTjU1WFg9bQorQ09ORklHX0NSWVBUT19ERVZfQ0hFTFNJTz1tCitD T05GSUdfQ1JZUFRPX0RFVl9WSVJUSU89bQorQ09ORklHX0NSWVBUT19ERVZfU0FGRVhDRUw9bQor IyBDT05GSUdfQ1JZUFRPX0RFVl9DQ1JFRSBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFVl9K SDcxMTBfRU5DUllQVD15CitDT05GSUdfQ1JZUFRPX0RFVl9BTUxPR0lDX0dYTD1tCisjIENPTkZJ R19DUllQVE9fREVWX0FNTE9HSUNfR1hMX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BU1lNTUVU UklDX0tFWV9UWVBFPXkKK0NPTkZJR19BU1lNTUVUUklDX1BVQkxJQ19LRVlfU1VCVFlQRT15CitD T05GSUdfQVNZTU1FVFJJQ19UUE1fS0VZX1NVQlRZUEU9bQorQ09ORklHX1g1MDlfQ0VSVElGSUNB VEVfUEFSU0VSPXkKK0NPTkZJR19QS0NTOF9QUklWQVRFX0tFWV9QQVJTRVI9bQorQ09ORklHX1RQ TV9LRVlfUEFSU0VSPW0KK0NPTkZJR19QS0NTN19NRVNTQUdFX1BBUlNFUj15CisjIENPTkZJR19Q S0NTN19URVNUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfU0lHTkVEX1BFX0ZJTEVfVkVSSUZJQ0FU SU9OPXkKKworIworIyBDZXJ0aWZpY2F0ZXMgZm9yIHNpZ25hdHVyZSBjaGVja2luZworIworQ09O RklHX1NZU1RFTV9UUlVTVEVEX0tFWVJJTkc9eQorQ09ORklHX1NZU1RFTV9UUlVTVEVEX0tFWVM9 IiIKKyMgQ09ORklHX1NZU1RFTV9FWFRSQV9DRVJUSUZJQ0FURSBpcyBub3Qgc2V0CisjIENPTkZJ R19TRUNPTkRBUllfVFJVU1RFRF9LRVlSSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1RFTV9C TEFDS0xJU1RfS0VZUklORyBpcyBub3Qgc2V0CisjIGVuZCBvZiBDZXJ0aWZpY2F0ZXMgZm9yIHNp Z25hdHVyZSBjaGVja2luZworCitDT05GSUdfQklOQVJZX1BSSU5URj15CisKKyMKKyMgTGlicmFy eSByb3V0aW5lcworIworQ09ORklHX1JBSUQ2X1BRPW0KK0NPTkZJR19SQUlENl9QUV9CRU5DSE1B Uks9eQorQ09ORklHX0xJTkVBUl9SQU5HRVM9eQorQ09ORklHX1BBQ0tJTkc9eQorQ09ORklHX0JJ VFJFVkVSU0U9eQorQ09ORklHX0dFTkVSSUNfU1RSTkNQWV9GUk9NX1VTRVI9eQorQ09ORklHX0dF TkVSSUNfU1RSTkxFTl9VU0VSPXkKK0NPTkZJR19HRU5FUklDX05FVF9VVElMUz15CitDT05GSUdf Q09SRElDPW0KKyMgQ09ORklHX1BSSU1FX05VTUJFUlMgaXMgbm90IHNldAorQ09ORklHX1JBVElP TkFMPXkKK0NPTkZJR19HRU5FUklDX1BDSV9JT01BUD15CitDT05GSUdfQ1JDX0NDSVRUPXkKK0NP TkZJR19DUkMxNj15CitDT05GSUdfQ1JDX1QxMERJRj15CitDT05GSUdfQ1JDX0lUVV9UPW0KK0NP TkZJR19DUkMzMj15CisjIENPTkZJR19DUkMzMl9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdf Q1JDMzJfU0xJQ0VCWTg9eQorIyBDT05GSUdfQ1JDMzJfU0xJQ0VCWTQgaXMgbm90IHNldAorIyBD T05GSUdfQ1JDMzJfU0FSV0FURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMzMl9CSVQgaXMgbm90 IHNldAorQ09ORklHX0NSQzY0PW0KK0NPTkZJR19DUkM0PW0KK0NPTkZJR19DUkM3PW0KK0NPTkZJ R19MSUJDUkMzMkM9bQorQ09ORklHX0NSQzg9eQorQ09ORklHX1hYSEFTSD15CitDT05GSUdfQVVE SVRfR0VORVJJQz15CisjIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05G SUdfODQyX0NPTVBSRVNTPXkKK0NPTkZJR184NDJfREVDT01QUkVTUz15CitDT05GSUdfWkxJQl9J TkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX0xaT19DT01QUkVTUz15CitD T05GSUdfTFpPX0RFQ09NUFJFU1M9eQorQ09ORklHX0xaNF9DT01QUkVTUz1tCitDT05GSUdfTFo0 SENfQ09NUFJFU1M9bQorQ09ORklHX0xaNF9ERUNPTVBSRVNTPXkKK0NPTkZJR19aU1REX0NPTVBS RVNTPXkKK0NPTkZJR19aU1REX0RFQ09NUFJFU1M9eQorQ09ORklHX1haX0RFQz15CitDT05GSUdf WFpfREVDX1g4Nj15CitDT05GSUdfWFpfREVDX1BPV0VSUEM9eQorQ09ORklHX1haX0RFQ19JQTY0 PXkKK0NPTkZJR19YWl9ERUNfQVJNPXkKK0NPTkZJR19YWl9ERUNfQVJNVEhVTUI9eQorQ09ORklH X1haX0RFQ19TUEFSQz15CitDT05GSUdfWFpfREVDX0JDSj15CisjIENPTkZJR19YWl9ERUNfVEVT VCBpcyBub3Qgc2V0CitDT05GSUdfREVDT01QUkVTU19HWklQPXkKK0NPTkZJR19ERUNPTVBSRVNT X0JaSVAyPXkKK0NPTkZJR19ERUNPTVBSRVNTX0xaTUE9eQorQ09ORklHX0RFQ09NUFJFU1NfWFo9 eQorQ09ORklHX0RFQ09NUFJFU1NfTFpPPXkKK0NPTkZJR19ERUNPTVBSRVNTX0xaND15CitDT05G SUdfREVDT01QUkVTU19aU1REPXkKK0NPTkZJR19HRU5FUklDX0FMTE9DQVRPUj15CitDT05GSUdf UkVFRF9TT0xPTU9OPW0KK0NPTkZJR19SRUVEX1NPTE9NT05fRU5DOD15CitDT05GSUdfUkVFRF9T T0xPTU9OX0RFQzg9eQorQ09ORklHX1JFRURfU09MT01PTl9ERUMxNj15CitDT05GSUdfQkNIPW0K K0NPTkZJR19URVhUU0VBUkNIPXkKK0NPTkZJR19URVhUU0VBUkNIX0tNUD1tCitDT05GSUdfVEVY VFNFQVJDSF9CTT1tCitDT05GSUdfVEVYVFNFQVJDSF9GU009bQorQ09ORklHX0JUUkVFPXkKK0NP TkZJR19JTlRFUlZBTF9UUkVFPXkKK0NPTkZJR19YQVJSQVlfTVVMVEk9eQorQ09ORklHX0FTU09D SUFUSVZFX0FSUkFZPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlRfTUFQ PXkKK0NPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19ETUFfT1BTPXkKK0NPTkZJR19ORUVEX0RNQV9N QVBfU1RBVEU9eQorQ09ORklHX0FSQ0hfRE1BX0FERFJfVF82NEJJVD15CitDT05GSUdfRE1BX0RF Q0xBUkVfQ09IRVJFTlQ9eQorQ09ORklHX1NXSU9UTEI9eQorIyBDT05GSUdfRE1BX1JFU1RSSUNU RURfUE9PTCBpcyBub3Qgc2V0CitDT05GSUdfRE1BX0NNQT15CitDT05GSUdfRE1BX1BFUk5VTUFf Q01BPXkKKworIworIyBEZWZhdWx0IGNvbnRpZ3VvdXMgbWVtb3J5IGFyZWEgc2l6ZToKKyMKK0NP TkZJR19DTUFfU0laRV9NQllURVM9MAorQ09ORklHX0NNQV9TSVpFX1NFTF9NQllURVM9eQorIyBD T05GSUdfQ01BX1NJWkVfU0VMX1BFUkNFTlRBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ01BX1NJ WkVfU0VMX01JTiBpcyBub3Qgc2V0CisjIENPTkZJR19DTUFfU0laRV9TRUxfTUFYIGlzIG5vdCBz ZXQKK0NPTkZJR19DTUFfQUxJR05NRU5UPTgKKyMgQ09ORklHX0RNQV9BUElfREVCVUcgaXMgbm90 IHNldAorIyBDT05GSUdfRE1BX01BUF9CRU5DSE1BUksgaXMgbm90IHNldAorQ09ORklHX1NHTF9B TExPQz15CitDT05GSUdfQ0hFQ0tfU0lHTkFUVVJFPXkKK0NPTkZJR19DUFVfUk1BUD15CitDT05G SUdfRFFMPXkKK0NPTkZJR19HTE9CPXkKKyMgQ09ORklHX0dMT0JfU0VMRlRFU1QgaXMgbm90IHNl dAorQ09ORklHX05MQVRUUj15CitDT05GSUdfTFJVX0NBQ0hFPW0KK0NPTkZJR19DTFpfVEFCPXkK K0NPTkZJR19JUlFfUE9MTD15CitDT05GSUdfTVBJTElCPXkKK0NPTkZJR19ESU1MSUI9eQorQ09O RklHX0xJQkZEVD15CitDT05GSUdfT0lEX1JFR0lTVFJZPXkKK0NPTkZJR19VQ1MyX1NUUklORz15 CitDT05GSUdfSEFWRV9HRU5FUklDX1ZEU089eQorQ09ORklHX0dFTkVSSUNfR0VUVElNRU9GREFZ PXkKK0NPTkZJR19GT05UX1NVUFBPUlQ9eQorQ09ORklHX0ZPTlRTPXkKK0NPTkZJR19GT05UXzh4 OD15CitDT05GSUdfRk9OVF84eDE2PXkKKyMgQ09ORklHX0ZPTlRfNngxMSBpcyBub3Qgc2V0Cisj IENPTkZJR19GT05UXzd4MTQgaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF9QRUFSTF84eDggaXMg bm90IHNldAorIyBDT05GSUdfRk9OVF9BQ09STl84eDggaXMgbm90IHNldAorIyBDT05GSUdfRk9O VF9NSU5JXzR4NiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UXzZ4MTAgaXMgbm90IHNldAorIyBD T05GSUdfRk9OVF8xMHgxOCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1NVTjh4MTYgaXMgbm90 IHNldAorIyBDT05GSUdfRk9OVF9TVU4xMngyMiBpcyBub3Qgc2V0CitDT05GSUdfRk9OVF9URVIx NngzMj15CisjIENPTkZJR19GT05UXzZ4OCBpcyBub3Qgc2V0CitDT05GSUdfU0dfUE9PTD15CitD T05GSUdfTUVNUkVHSU9OPXkKK0NPTkZJR19BUkNIX1NUQUNLV0FMSz15CitDT05GSUdfU1RBQ0tE RVBPVD15CitDT05GSUdfU1RBQ0tfSEFTSF9PUkRFUj0yMAorQ09ORklHX1NCSVRNQVA9eQorQ09O RklHX1BBUk1BTj1tCitDT05GSUdfT0JKQUdHPW0KKyMgZW5kIG9mIExpYnJhcnkgcm91dGluZXMK KworQ09ORklHX0dFTkVSSUNfSU9SRU1BUD15CitDT05GSUdfR0VORVJJQ19MSUJfREVWTUVNX0lT X0FMTE9XRUQ9eQorQ09ORklHX1BMRE1GVz15CitDT05GSUdfQVNOMV9FTkNPREVSPW0KKworIwor IyBLZXJuZWwgaGFja2luZworIworCisjCisjIHByaW50ayBhbmQgZG1lc2cgb3B0aW9ucworIwor Q09ORklHX1BSSU5US19USU1FPXkKKyMgQ09ORklHX1BSSU5US19DQUxMRVIgaXMgbm90IHNldAor IyBDT05GSUdfU1RBQ0tUUkFDRV9CVUlMRF9JRCBpcyBub3Qgc2V0CitDT05GSUdfQ09OU09MRV9M T0dMRVZFTF9ERUZBVUxUPTcKK0NPTkZJR19DT05TT0xFX0xPR0xFVkVMX1FVSUVUPTQKK0NPTkZJ R19NRVNTQUdFX0xPR0xFVkVMX0RFRkFVTFQ9NAorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkg aXMgbm90IHNldAorQ09ORklHX0RZTkFNSUNfREVCVUc9eQorQ09ORklHX0RZTkFNSUNfREVCVUdf Q09SRT15CitDT05GSUdfU1lNQk9MSUNfRVJSTkFNRT15CitDT05GSUdfREVCVUdfQlVHVkVSQk9T RT15CisjIGVuZCBvZiBwcmludGsgYW5kIGRtZXNnIG9wdGlvbnMKKworIworIyBDb21waWxlLXRp bWUgY2hlY2tzIGFuZCBjb21waWxlciBvcHRpb25zCisjCitDT05GSUdfREVCVUdfSU5GTz15Cisj IENPTkZJR19ERUJVR19JTkZPX1JFRFVDRUQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfSU5G T19DT01QUkVTU0VEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0lORk9fU1BMSVQgaXMgbm90 IHNldAorQ09ORklHX0RFQlVHX0lORk9fRFdBUkZfVE9PTENIQUlOX0RFRkFVTFQ9eQorIyBDT05G SUdfREVCVUdfSU5GT19EV0FSRjQgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0lORk9fQlRGPXkK K0NPTkZJR19QQUhPTEVfSEFTX1NQTElUX0JURj15CitDT05GSUdfREVCVUdfSU5GT19CVEZfTU9E VUxFUz15CisjIENPTkZJR19HREJfU0NSSVBUUyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FS Tj0yMDQ4CitDT05GSUdfU1RSSVBfQVNNX1NZTVM9eQorIyBDT05GSUdfUkVBREFCTEVfQVNNIGlz IG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfSU5TVEFMTCBpcyBub3Qgc2V0CitDT05GSUdfREVC VUdfU0VDVElPTl9NSVNNQVRDSD15CitDT05GSUdfU0VDVElPTl9NSVNNQVRDSF9XQVJOX09OTFk9 eQorIyBDT05GSUdfREVCVUdfRk9SQ0VfRlVOQ1RJT05fQUxJR05fNjRCIGlzIG5vdCBzZXQKK0NP TkZJR19BUkNIX1dBTlRfRlJBTUVfUE9JTlRFUlM9eQorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQor IyBDT05GSUdfVk1MSU5VWF9NQVAgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0ZPUkNFX1dFQUtf UEVSX0NQVT15CisjIGVuZCBvZiBDb21waWxlLXRpbWUgY2hlY2tzIGFuZCBjb21waWxlciBvcHRp b25zCisKKyMKKyMgR2VuZXJpYyBLZXJuZWwgRGVidWdnaW5nIEluc3RydW1lbnRzCisjCitDT05G SUdfTUFHSUNfU1lTUlE9eQorQ09ORklHX01BR0lDX1NZU1JRX0RFRkFVTFRfRU5BQkxFPTB4MQor Q09ORklHX01BR0lDX1NZU1JRX1NFUklBTD15CitDT05GSUdfTUFHSUNfU1lTUlFfU0VSSUFMX1NF UVVFTkNFPSIiCitDT05GSUdfREVCVUdfRlM9eQorQ09ORklHX0RFQlVHX0ZTX0FMTE9XX0FMTD15 CisjIENPTkZJR19ERUJVR19GU19ESVNBTExPV19NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19E RUJVR19GU19BTExPV19OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0FSQ0hfS0dEQj15CitD T05GSUdfSEFWRV9BUkNIX0tHREJfUVhGRVJfUEtUPXkKK0NPTkZJR19LR0RCPXkKK0NPTkZJR19L R0RCX0hPTk9VUl9CTE9DS0xJU1Q9eQorQ09ORklHX0tHREJfU0VSSUFMX0NPTlNPTEU9eQorIyBD T05GSUdfS0dEQl9URVNUUyBpcyBub3Qgc2V0CitDT05GSUdfS0dEQl9LREI9eQorQ09ORklHX0tE Ql9ERUZBVUxUX0VOQUJMRT0weDEKK0NPTkZJR19LREJfS0VZQk9BUkQ9eQorQ09ORklHX0tEQl9D T05USU5VRV9DQVRBU1RST1BISUM9MAorQ09ORklHX0FSQ0hfSEFTX1VCU0FOX1NBTklUSVpFX0FM TD15CisjIENPTkZJR19VQlNBTiBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LQ1NBTl9DT01QSUxF Uj15CisjIGVuZCBvZiBHZW5lcmljIEtlcm5lbCBEZWJ1Z2dpbmcgSW5zdHJ1bWVudHMKKworQ09O RklHX0RFQlVHX0tFUk5FTD15CitDT05GSUdfREVCVUdfTUlTQz15CisKKyMKKyMgTWVtb3J5IERl YnVnZ2luZworIworQ09ORklHX1BBR0VfRVhURU5TSU9OPXkKKyMgQ09ORklHX0RFQlVHX1BBR0VB TExPQyBpcyBub3Qgc2V0CitDT05GSUdfUEFHRV9PV05FUj15CitDT05GSUdfUEFHRV9QT0lTT05J Tkc9eQorIyBDT05GSUdfREVCVUdfUEFHRV9SRUYgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdf Uk9EQVRBX1RFU1QgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX0RFQlVHX1dYPXkKK0NPTkZJ R19ERUJVR19XWD15CitDT05GSUdfR0VORVJJQ19QVERVTVA9eQorQ09ORklHX1BURFVNUF9DT1JF PXkKKyMgQ09ORklHX1BURFVNUF9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09C SkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CisjIENP TkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0RFQlVHX0tNRU1MRUFLPXkK KyMgQ09ORklHX0RFQlVHX0tNRU1MRUFLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NUQUNL X1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0hFRF9TVEFDS19FTkRfQ0hFQ0s9eQorQ09ORklH X0FSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEU9eQorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNl dAorIyBDT05GSUdfREVCVUdfVk1fUEdUQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNf REVCVUdfVklSVFVBTD15CisjIENPTkZJR19ERUJVR19WSVJUVUFMIGlzIG5vdCBzZXQKK0NPTkZJ R19ERUJVR19NRU1PUllfSU5JVD15CisjIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgaXMgbm90 IHNldAorQ09ORklHX0hBVkVfQVJDSF9LQVNBTj15CitDT05GSUdfSEFWRV9BUkNIX0tBU0FOX1ZN QUxMT0M9eQorQ09ORklHX0NDX0hBU19LQVNBTl9HRU5FUklDPXkKK0NPTkZJR19DQ19IQVNfV09S S0lOR19OT1NBTklUSVpFX0FERFJFU1M9eQorIyBDT05GSUdfS0FTQU4gaXMgbm90IHNldAorQ09O RklHX0hBVkVfQVJDSF9LRkVOQ0U9eQorIyBDT05GSUdfS0ZFTkNFIGlzIG5vdCBzZXQKKyMgZW5k IG9mIE1lbW9yeSBEZWJ1Z2dpbmcKKworIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAor CisjCisjIERlYnVnIE9vcHMsIExvY2t1cHMgYW5kIEhhbmdzCisjCisjIENPTkZJR19QQU5JQ19P Tl9PT1BTIGlzIG5vdCBzZXQKK0NPTkZJR19QQU5JQ19PTl9PT1BTX1ZBTFVFPTAKK0NPTkZJR19Q QU5JQ19USU1FT1VUPTAKK0NPTkZJR19MT0NLVVBfREVURUNUT1I9eQorQ09ORklHX1NPRlRMT0NL VVBfREVURUNUT1I9eQorIyBDT05GSUdfQk9PVFBBUkFNX1NPRlRMT0NLVVBfUEFOSUMgaXMgbm90 IHNldAorQ09ORklHX0JPT1RQQVJBTV9TT0ZUTE9DS1VQX1BBTklDX1ZBTFVFPTAKK0NPTkZJR19E RVRFQ1RfSFVOR19UQVNLPXkKK0NPTkZJR19ERUZBVUxUX0hVTkdfVEFTS19USU1FT1VUPTEyMAor IyBDT05GSUdfQk9PVFBBUkFNX0hVTkdfVEFTS19QQU5JQyBpcyBub3Qgc2V0CitDT05GSUdfQk9P VFBBUkFNX0hVTkdfVEFTS19QQU5JQ19WQUxVRT0wCisjIENPTkZJR19XUV9XQVRDSERPRyBpcyBu b3Qgc2V0CisjIENPTkZJR19URVNUX0xPQ0tVUCBpcyBub3Qgc2V0CisjIGVuZCBvZiBEZWJ1ZyBP b3BzLCBMb2NrdXBzIGFuZCBIYW5ncworCisjCisjIFNjaGVkdWxlciBEZWJ1Z2dpbmcKKyMKK0NP TkZJR19TQ0hFRF9ERUJVRz15CitDT05GSUdfU0NIRURfSU5GTz15CitDT05GSUdfU0NIRURTVEFU Uz15CisjIGVuZCBvZiBTY2hlZHVsZXIgRGVidWdnaW5nCisKKyMgQ09ORklHX0RFQlVHX1RJTUVL RUVQSU5HIGlzIG5vdCBzZXQKKworIworIyBMb2NrIERlYnVnZ2luZyAoc3BpbmxvY2tzLCBtdXRl eGVzLCBldGMuLi4pCisjCitDT05GSUdfTE9DS19ERUJVR0dJTkdfU1VQUE9SVD15CisjIENPTkZJ R19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0 CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQ SU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBD T05GSUdfREVCVUdfV1dfTVVURVhfU0xPV1BBVEggaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdf UldTRU1TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAor IyBDT05GSUdfREVCVUdfQVRPTUlDX1NMRUVQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xP Q0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1RPUlRVUkVfVEVT VCBpcyBub3Qgc2V0CisjIENPTkZJR19XV19NVVRFWF9TRUxGVEVTVCBpcyBub3Qgc2V0CisjIENP TkZJR19TQ0ZfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NTRF9MT0NLX1dBSVRf REVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgTG9jayBEZWJ1Z2dpbmcgKHNwaW5sb2NrcywgbXV0 ZXhlcywgZXRjLi4uKQorCisjIENPTkZJR19ERUJVR19JUlFGTEFHUyBpcyBub3Qgc2V0CitDT05G SUdfU1RBQ0tUUkFDRT15CisjIENPTkZJR19XQVJOX0FMTF9VTlNFRURFRF9SQU5ET00gaXMgbm90 IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CisKKyMKKyMgRGVidWcga2Vy bmVsIGRhdGEgc3RydWN0dXJlcworIworIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Cisj IENPTkZJR19ERUJVR19QTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qg c2V0CisjIENPTkZJR19ERUJVR19OT1RJRklFUlMgaXMgbm90IHNldAorIyBDT05GSUdfQlVHX09O X0RBVEFfQ09SUlVQVElPTiBpcyBub3Qgc2V0CisjIGVuZCBvZiBEZWJ1ZyBrZXJuZWwgZGF0YSBz dHJ1Y3R1cmVzCisKKyMgQ09ORklHX0RFQlVHX0NSRURFTlRJQUxTIGlzIG5vdCBzZXQKKworIwor IyBSQ1UgRGVidWdnaW5nCisjCitDT05GSUdfVE9SVFVSRV9URVNUPW0KKyMgQ09ORklHX1JDVV9T Q0FMRV9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19SQ1VfVE9SVFVSRV9URVNUPW0KK0NPTkZJR19S Q1VfUkVGX1NDQUxFX1RFU1Q9bQorQ09ORklHX1JDVV9DUFVfU1RBTExfVElNRU9VVD02MAorQ09O RklHX1JDVV9UUkFDRT15CisjIENPTkZJR19SQ1VfRVFTX0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5k IG9mIFJDVSBEZWJ1Z2dpbmcKKworIyBDT05GSUdfREVCVUdfV1FfRk9SQ0VfUlJfQ1BVIGlzIG5v dCBzZXQKKyMgQ09ORklHX0NQVV9IT1RQTFVHX1NUQVRFX0NPTlRST0wgaXMgbm90IHNldAorQ09O RklHX0xBVEVOQ1lUT1A9eQorQ09ORklHX05PUF9UUkFDRVI9eQorQ09ORklHX0hBVkVfRlVOQ1RJ T05fVFJBQ0VSPXkKK0NPTkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15CitDT05GSUdf SEFWRV9EWU5BTUlDX0ZUUkFDRT15CitDT05GSUdfSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX1JF R1M9eQorQ09ORklHX0hBVkVfRlRSQUNFX01DT1VOVF9SRUNPUkQ9eQorQ09ORklHX0hBVkVfU1lT Q0FMTF9UUkFDRVBPSU5UUz15CitDT05GSUdfVFJBQ0VSX01BWF9UUkFDRT15CitDT05GSUdfVFJB Q0VfQ0xPQ0s9eQorQ09ORklHX1JJTkdfQlVGRkVSPXkKK0NPTkZJR19FVkVOVF9UUkFDSU5HPXkK K0NPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVI9eQorQ09ORklHX1JJTkdfQlVGRkVSX0FMTE9X X1NXQVA9eQorQ09ORklHX1RSQUNJTkc9eQorQ09ORklHX0dFTkVSSUNfVFJBQ0VSPXkKK0NPTkZJ R19UUkFDSU5HX1NVUFBPUlQ9eQorQ09ORklHX0ZUUkFDRT15CitDT05GSUdfQk9PVFRJTUVfVFJB Q0lORz15CitDT05GSUdfRlVOQ1RJT05fVFJBQ0VSPXkKK0NPTkZJR19GVU5DVElPTl9HUkFQSF9U UkFDRVI9eQorQ09ORklHX0RZTkFNSUNfRlRSQUNFPXkKK0NPTkZJR19EWU5BTUlDX0ZUUkFDRV9X SVRIX1JFR1M9eQorQ09ORklHX0ZVTkNUSU9OX1BST0ZJTEVSPXkKK0NPTkZJR19TVEFDS19UUkFD RVI9eQorIyBDT05GSUdfSVJRU09GRl9UUkFDRVIgaXMgbm90IHNldAorQ09ORklHX1NDSEVEX1RS QUNFUj15CitDT05GSUdfSFdMQVRfVFJBQ0VSPXkKK0NPTkZJR19PU05PSVNFX1RSQUNFUj15CitD T05GSUdfVElNRVJMQVRfVFJBQ0VSPXkKK0NPTkZJR19GVFJBQ0VfU1lTQ0FMTFM9eQorQ09ORklH X1RSQUNFUl9TTkFQU0hPVD15CitDT05GSUdfVFJBQ0VSX1NOQVBTSE9UX1BFUl9DUFVfU1dBUD15 CitDT05GSUdfQlJBTkNIX1BST0ZJTEVfTk9ORT15CisjIENPTkZJR19QUk9GSUxFX0FOTk9UQVRF RF9CUkFOQ0hFUyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9JT19UUkFDRT15CitDT05GSUdf S1BST0JFX0VWRU5UUz15CisjIENPTkZJR19LUFJPQkVfRVZFTlRTX09OX05PVFJBQ0UgaXMgbm90 IHNldAorQ09ORklHX1VQUk9CRV9FVkVOVFM9eQorQ09ORklHX0JQRl9FVkVOVFM9eQorQ09ORklH X0RZTkFNSUNfRVZFTlRTPXkKK0NPTkZJR19QUk9CRV9FVkVOVFM9eQorQ09ORklHX0JQRl9LUFJP QkVfT1ZFUlJJREU9eQorQ09ORklHX0ZUUkFDRV9NQ09VTlRfUkVDT1JEPXkKK0NPTkZJR19GVFJB Q0VfTUNPVU5UX1VTRV9SRUNPUkRNQ09VTlQ9eQorQ09ORklHX1NZTlRIX0VWRU5UUz15CisjIENP TkZJR19UUkFDRV9FVkVOVF9JTkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVFJBQ0VQT0lOVF9C RU5DSE1BUksgaXMgbm90IHNldAorQ09ORklHX1JJTkdfQlVGRkVSX0JFTkNITUFSSz1tCisjIENP TkZJR19UUkFDRV9FVkFMX01BUF9GSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZUUkFDRV9SRUNP UkRfUkVDVVJTSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QgaXMg bm90IHNldAorIyBDT05GSUdfUklOR19CVUZGRVJfU1RBUlRVUF9URVNUIGlzIG5vdCBzZXQKKyMg Q09ORklHX1JJTkdfQlVGRkVSX1ZBTElEQVRFX1RJTUVfREVMVEFTIGlzIG5vdCBzZXQKKyMgQ09O RklHX1BSRUVNUFRJUlFfREVMQVlfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5USF9FVkVO VF9HRU5fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVfRVZFTlRfR0VOX1RFU1QgaXMg bm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfU1RSSUNUX0RFVk1F TT15CitDT05GSUdfSU9fU1RSSUNUX0RFVk1FTT15CisKKyMKKyMgcmlzY3YgRGVidWdnaW5nCisj CisKKyMKKyMgS2VybmVsIFRlc3RpbmcgYW5kIENvdmVyYWdlCisjCisjIENPTkZJR19LVU5JVCBp cyBub3Qgc2V0CisjIENPTkZJR19OT1RJRklFUl9FUlJPUl9JTkpFQ1RJT04gaXMgbm90IHNldAor Q09ORklHX0ZVTkNUSU9OX0VSUk9SX0lOSkVDVElPTj15CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJ T04gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX0tDT1Y9eQorQ09ORklHX0NDX0hBU19TQU5D T1ZfVFJBQ0VfUEM9eQorIyBDT05GSUdfS0NPViBpcyBub3Qgc2V0CitDT05GSUdfUlVOVElNRV9U RVNUSU5HX01FTlU9eQorIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9N SU5fSEVBUCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0RJVjY0IGlzIG5vdCBzZXQKKyMgQ09O RklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NF TEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19SQlRSRUVfVEVTVCBpcyBub3Qgc2V0CisjIENP TkZJR19SRUVEX1NPTE9NT05fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlRFUlZBTF9UUkVF X1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfUEVSQ1BVX1RFU1QgaXMgbm90IHNldAorIyBDT05G SUdfQVRPTUlDNjRfU0VMRlRFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9IRVhEVU1QIGlz IG5vdCBzZXQKKyMgQ09ORklHX1NUUklOR19TRUxGVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19U RVNUX1NUUklOR19IRUxQRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfU1RSU0NQWSBpcyBu b3Qgc2V0CisjIENPTkZJR19URVNUX0tTVFJUT1ggaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9Q UklOVEYgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9TQ0FORiBpcyBub3Qgc2V0CisjIENPTkZJ R19URVNUX0JJVE1BUCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1VVSUQgaXMgbm90IHNldAor IyBDT05GSUdfVEVTVF9YQVJSQVkgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9PVkVSRkxPVyBp cyBub3Qgc2V0CisjIENPTkZJR19URVNUX1JIQVNIVEFCTEUgaXMgbm90IHNldAorIyBDT05GSUdf VEVTVF9IQVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfSURBIGlzIG5vdCBzZXQKKyMgQ09O RklHX1RFU1RfUEFSTUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTEtNIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RFU1RfQklUT1BTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfVk1BTExPQyBp cyBub3Qgc2V0CisjIENPTkZJR19URVNUX1VTRVJfQ09QWSBpcyBub3Qgc2V0CisjIENPTkZJR19U RVNUX0JQRiBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0JMQUNLSE9MRV9ERVYgaXMgbm90IHNl dAorIyBDT05GSUdfRklORF9CSVRfQkVOQ0hNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1Rf RklSTVdBUkUgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9TWVNDVEwgaXMgbm90IHNldAorIyBD T05GSUdfVEVTVF9VREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9TVEFUSUNfS0VZUyBp cyBub3Qgc2V0CisjIENPTkZJR19URVNUX0tNT0QgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9N RU1DQVRfUCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX09CSkFHRyBpcyBub3Qgc2V0CisjIENP TkZJR19URVNUX1NUQUNLSU5JVCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX01FTUlOSVQgaXMg bm90IHNldAorIyBDT05GSUdfVEVTVF9GUkVFX1BBR0VTIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNI X1VTRV9NRU1URVNUPXkKK0NPTkZJR19NRU1URVNUPXkKKyMgZW5kIG9mIEtlcm5lbCBUZXN0aW5n IGFuZCBDb3ZlcmFnZQorIyBlbmQgb2YgS2VybmVsIGhhY2tpbmcKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvVmlzaW9uZml2ZTIta2VybmVsL2ZpbGVzL212LWRlYnVnIGIvc3JjcGtncy9WaXNpb25maXZl Mi1rZXJuZWwvZmlsZXMvbXYtZGVidWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw MDAwMDAwMC4uNGIwZmNhYmUwZTRlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvVmlzaW9u Zml2ZTIta2VybmVsL2ZpbGVzL212LWRlYnVnCkBAIC0wLDAgKzEsNyBAQAorIyEvYmluL3NoCitt b2Q9JDEKK21rZGlyIC1wIHVzci9saWIvZGVidWcvJHttb2QlLyp9CiskT0JKQ09QWSAtLW9ubHkt a2VlcC1kZWJ1ZyAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zICRtb2QgdXNyL2xpYi9kZWJ1Zy8k bW9kCiskT0JKQ09QWSAtLWFkZC1nbnUtZGVidWdsaW5rPSR7REVTVERJUn0vdXNyL2xpYi9kZWJ1 Zy8kbW9kICRtb2QKKy91c3IvYmluLyRTVFJJUCAtLXN0cmlwLWRlYnVnICRtb2QKK3pzdGQgLS1y bSAtMTkgJG1vZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwvcGF0Y2hl cy8wMDAxLWdjYzEyLnBhdGNoIGIvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwvcGF0Y2hlcy8w MDAxLWdjYzEyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LjA5NGRiYTMzNTA4Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1Zpc2lvbmZpdmUyLWtl cm5lbC9wYXRjaGVzLzAwMDEtZ2NjMTIucGF0Y2gKQEAgLTAsMCArMSw1NSBAQAorRnJvbTogQXVy ZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorVG86IGxpbnV4LWtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmcKK0NjOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+LAor CXN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcsIEtpdG8gQ2hlbmcgPGtpdG8uY2hlbmdAZ21haWwuY29t PiwKKwlQYXVsIFdhbG1zbGV5IDxwYXVsLndhbG1zbGV5QHNpZml2ZS5jb20+LAorCVBhbG1lciBE YWJiZWx0IDxwYWxtZXJAZGFiYmVsdC5jb20+LAorCUFsYmVydCBPdSA8YW91QGVlY3MuYmVya2Vs ZXkuZWR1PiwKKwlsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnIChvcGVuIGxpc3Q6UklT Qy1WIEFSQ0hJVEVDVFVSRSkKK1N1YmplY3Q6IFtQQVRDSF0gcmlzY3Y6IGZpeCBidWlsZCB3aXRo IGJpbnV0aWxzIDIuMzgKK0RhdGU6IFdlZCwgMjYgSmFuIDIwMjIgMTg6MTQ6NDIgKzAxMDAJW3Ro cmVhZCBvdmVydmlld10KK01lc3NhZ2UtSUQ6IDwyMDIyMDEyNjE3MTQ0Mi4xMzM4NzQwLTEtYXVy ZWxpZW5AYXVyZWwzMi5uZXQ+IChyYXcpCisKK0Zyb20gdmVyc2lvbiAyLjM4LCBiaW51dGlscyBk ZWZhdWx0IHRvIElTQSBzcGVjIHZlcnNpb24gMjAxOTEyMTMuIFRoaXMKK21lYW5zIHRoYXQgdGhl IGNzciByZWFkL3dyaXRlIChjc3JyKi9jc3J3KikgaW5zdHJ1Y3Rpb25zIGFuZCBmZW5jZS5pCitp bnN0cnVjdGlvbiBoYXMgc2VwYXJhdGVkIGZyb20gdGhlIGBJYCBleHRlbnNpb24sIGJlY29tZSB0 d28gc3RhbmRhbG9uZQorZXh0ZW5zaW9uczogWmljc3IgYW5kIFppZmVuY2VpLiBBcyB0aGUga2Vy bmVsIHVzZXMgdGhvc2UgaW5zdHJ1Y3Rpb24sCit0aGlzIGNhdXNlcyB0aGUgZm9sbG93aW5nIGJ1 aWxkIGZhaWx1cmU6CisKKyAgQ0MgICAgICBhcmNoL3Jpc2N2L2tlcm5lbC92ZHNvL3ZnZXR0aW1l b2ZkYXkubworICA8PEJVSUxERElSPj4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS92ZHNvL2dldHRp bWVvZmRheS5oOiBBc3NlbWJsZXIgbWVzc2FnZXM6CisgIDw8QlVJTERESVI+Pi9hcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL3Zkc28vZ2V0dGltZW9mZGF5Lmg6NzE6IEVycm9yOiB1bnJlY29nbml6ZWQg b3Bjb2RlIGBjc3JyIGE1LDB4YzAxJworICA8PEJVSUxERElSPj4vYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS92ZHNvL2dldHRpbWVvZmRheS5oOjcxOiBFcnJvcjogdW5yZWNvZ25pemVkIG9wY29kZSBg Y3NyciBhNSwweGMwMScKKyAgPDxCVUlMRERJUj4+L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdmRz by9nZXR0aW1lb2ZkYXkuaDo3MTogRXJyb3I6IHVucmVjb2duaXplZCBvcGNvZGUgYGNzcnIgYTUs MHhjMDEnCisgIDw8QlVJTERESVI+Pi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vZ2V0dGlt ZW9mZGF5Lmg6NzE6IEVycm9yOiB1bnJlY29nbml6ZWQgb3Bjb2RlIGBjc3JyIGE1LDB4YzAxJwor CitUaGUgZml4IGlzIHRvIHNwZWNpZnkgdGhvc2UgZXh0ZW5zaW9ucyBleHBsaWNpdGVseSBpbiAt bWFyY2guIEhvd2V2ZXIgYXMKK29sZGVyIGJpbnV0aWxzIHZlcnNpb24gZG8gbm90IHN1cHBvcnQg dGhpcywgd2UgZmlyc3QgbmVlZCB0byBkZXRlY3QKK3RoYXQuCisKK0NjOiBzdGFibGVAdmdlci5r ZXJuZWwub3JnICMgNC4xNSsKK0NjOiBLaXRvIENoZW5nIDxraXRvLmNoZW5nQGdtYWlsLmNvbT4K K1NpZ25lZC1vZmYtYnk6IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KKy0t LQorIGFyY2gvcmlzY3YvTWFrZWZpbGUgfCA2ICsrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvTWFrZWZpbGUgYi9hcmNoL3Jp c2N2L01ha2VmaWxlCitpbmRleCA4YTEwN2VkMThiMGQuLjdkODExMDJjZmZkNCAxMDA2NDQKKy0t LSBhL2FyY2gvcmlzY3YvTWFrZWZpbGUKKysrKyBiL2FyY2gvcmlzY3YvTWFrZWZpbGUKK0BAIC01 MCw2ICs1MCwxMiBAQCByaXNjdi1tYXJjaC0kKENPTkZJR19BUkNIX1JWMzJJKQk6PSBydjMyaW1h CisgcmlzY3YtbWFyY2gtJChDT05GSUdfQVJDSF9SVjY0SSkJOj0gcnY2NGltYQorIHJpc2N2LW1h cmNoLSQoQ09ORklHX0ZQVSkJCTo9ICQocmlzY3YtbWFyY2gteSlmZAorIHJpc2N2LW1hcmNoLSQo Q09ORklHX1JJU0NWX0lTQV9DKQk6PSAkKHJpc2N2LW1hcmNoLXkpYworKworKyMgTmV3ZXIgYmlu dXRpbHMgdmVyc2lvbnMgZGVmYXVsdCB0byBJU0Egc3BlYyB2ZXJzaW9uIDIwMTkxMjEzIHdoaWNo IG1vdmVzIHNvbWUKKysjIGluc3RydWN0aW9ucyBmcm9tIHRoZSBJIGV4dGVuc2lvbiB0byB0aGUg Wmljc3IgYW5kIFppZmVuY2VpIGV4dGVuc2lvbnMuCisrdG9vbGNoYWluLW5lZWQtemljc3Itemlm ZW5jZWkgOj0gJChjYWxsIGNjLW9wdGlvbi15biwgLW1hcmNoPSQocmlzY3YtbWFyY2gteSlfemlj c3JfemlmZW5jZWkpCisrcmlzY3YtbWFyY2gtJCh0b29sY2hhaW4tbmVlZC16aWNzci16aWZlbmNl aSkgOj0gJChyaXNjdi1tYXJjaC15KV96aWNzcl96aWZlbmNlaQorKworIEtCVUlMRF9DRkxBR1Mg Kz0gLW1hcmNoPSQoc3Vic3QgZmQsLCQocmlzY3YtbWFyY2gteSkpCisgS0JVSUxEX0FGTEFHUyAr PSAtbWFyY2g9JChyaXNjdi1tYXJjaC15KQorIAorLS0gCisyLjM0LjEKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvVmlzaW9uZml2ZTIta2VybmVsL3BhdGNoZXMvMDAwMi1nY2MxMi5wYXRjaCBiL3NyY3Br Z3MvVmlzaW9uZml2ZTIta2VybmVsL3BhdGNoZXMvMDAwMi1nY2MxMi5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wYTU5NzgzYzRjMjZiCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwvcGF0Y2hlcy8wMDAyLWdjYzEyLnBh dGNoCkBAIC0wLDAgKzEsNTUgQEAKK1doaWxlIHRoZSBjdXJyZW50IGNvZGUgYnVpbGRzIGZpbmUg d2l0aCBnY2MgMTEsIGl0IGRvZXMgbm90IHdpdGggZ2NjIDEyLAorcmVzdWx0aW5nIGluOgorCitJ biBmaWxlIGluY2x1ZGVkIGZyb20gaGVscC5jOjEyOgorSW4gZnVuY3Rpb24gJ3hyZWFsbG9jJywK KyAgICBpbmxpbmVkIGZyb20gJ2FkZF9jbWRuYW1lJyBhdCBoZWxwLmM6MjQ6MjoKK3N1YmNtZC11 dGlsLmg6NTY6MjM6IGVycm9yOiBwb2ludGVyIG1heSBiZSB1c2VkIGFmdGVyICdyZWFsbG9jJyBb LVdlcnJvcj11c2UtYWZ0ZXItZnJlZV0KKyAgIDU2IHwgICAgICAgICAgICAgICAgIHJldCA9IHJl YWxsb2MocHRyLCBzaXplKTsKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fgorc3ViY21kLXV0aWwuaDo1MjoyMTogbm90ZTogY2FsbCB0byAncmVhbGxvYycg aGVyZQorICAgNTIgfCAgICAgICAgIHZvaWQgKnJldCA9IHJlYWxsb2MocHRyLCBzaXplKTsKKyAg ICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KK3N1YmNtZC11dGls Lmg6NTg6MzE6IGVycm9yOiBwb2ludGVyIG1heSBiZSB1c2VkIGFmdGVyICdyZWFsbG9jJyBbLVdl cnJvcj11c2UtYWZ0ZXItZnJlZV0KKyAgIDU4IHwgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 ID0gcmVhbGxvYyhwdHIsIDEpOworICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn4KK3N1YmNtZC11dGlsLmg6NTI6MjE6IG5vdGU6IGNhbGwgdG8gJ3Jl YWxsb2MnIGhlcmUKKyAgIDUyIHwgICAgICAgICB2b2lkICpyZXQgPSByZWFsbG9jKHB0ciwgc2l6 ZSk7CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CisKK1Ro ZSB3YXMgbWVudGlvbmVkIGluIHVwc3RyZWFtIGdjYyBidWcKKzxhICByZWw9Im5vZm9sbG93IiBo cmVmPSJodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xMDQwNjki Pmh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwNDA2OTwvYT4g d2hlcmUgaXQgd2FzCitkZXRlcm1pbmVkIHRoYXQgZ2NjIHdhcyBjb3JyZWN0IGFuZCB0aGUga2Vy bmVsIG5lZWRlZCB0byBjaGFuZ2UuICBUaGlzCitmaXhlcyB0aGF0IHVzZS1hZnRlci1mcmVlIGFu ZCBtYWtlcyB0aGluZ3MgYnVpbGQgYWdhaW4uCisKK1NpZ25lZC1vZmYtYnk6IEp1c3RpbiBNLiBG b3JiZXMgJmx0O2pmb3JiZXNAeHh4eHh4eHh4eHh4eHh4eHgmZ3Q7CitDYzogSmFrdWIgSmVsaW5l ayAmbHQ7amFrdWJAeHh4eHh4eHh4eCZndDsKKworLS0tCisgdG9vbHMvbGliL3N1YmNtZC9zdWJj bWQtdXRpbC5oIHwgOSArKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvbGliL3N1YmNtZC9zdWJjbWQt dXRpbC5oIGIvdG9vbHMvbGliL3N1YmNtZC9zdWJjbWQtdXRpbC5oCitpbmRleCA3OTRhMzc1ZGFk MzYuLjcwMDlmYzE3NjYzNiAxMDA2NDQKKy0tLSBhL3Rvb2xzL2xpYi9zdWJjbWQvc3ViY21kLXV0 aWwuaAorKysrIGIvdG9vbHMvbGliL3N1YmNtZC9zdWJjbWQtdXRpbC5oCitAQCAtNDksMTMgKzQ5 LDEyIEBAIHN0YXRpYyBOT1JFVFVSTiBpbmxpbmUgdm9pZCBkaWUoY29uc3QgY2hhciAqZXJyLCAu Li4pCisKKyBzdGF0aWMgaW5saW5lIHZvaWQgKnhyZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNp emUpCisgeworLQl2b2lkICpyZXQgPSByZWFsbG9jKHB0ciwgc2l6ZSk7CistCWlmICghcmV0ICYm ICFzaXplKQorLQkJcmV0ID0gcmVhbGxvYyhwdHIsIDEpOworKwl2b2lkICpyZXQ7CisrCWlmICgh c2l6ZSkKKysJCXNpemUgPSAxOworKwlyZXQgPSByZWFsbG9jKHB0ciwgc2l6ZSk7CisgCWlmICgh cmV0KSB7CisgCQlyZXQgPSByZWFsbG9jKHB0ciwgc2l6ZSk7CistCQlpZiAoIXJldCAmJiAhc2l6 ZSkKKy0JCQlyZXQgPSByZWFsbG9jKHB0ciwgMSk7CisgCQlpZiAoIXJldCkKKyAJCQlkaWUoJnF1 b3Q7T3V0IG9mIG1lbW9yeSwgcmVhbGxvYyBmYWlsZWQmcXVvdDspOworIAl9CistLSAKKzIuMzQu MQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwvcGF0Y2hlcy9wbHMtZG9u dC1waWNrLW9ubHktaGFsZi1hLXBhdGNoLnBhdGNoIGIvc3JjcGtncy9WaXNpb25maXZlMi1rZXJu ZWwvcGF0Y2hlcy9wbHMtZG9udC1waWNrLW9ubHktaGFsZi1hLXBhdGNoLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjMwODAxYWJjN2Y5MjIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL1Zpc2lvbmZpdmUyLWtlcm5lbC9wYXRjaGVzL3Bscy1kb250LXBp Y2stb25seS1oYWxmLWEtcGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorU2VvbWVvbmUgcGlj a2VkIGhhbGYgb2YgMjE1YmViYzhjNmFjNDM4YzM4MmE2YTU2YmQyNzY0YTJkNGUxZGE3MiBidXQg ZGlkbid0IHdhbnQgdGhlIG90aGVyIGhhbGYuLi4KKy0tLQorLS0tIFZpc2lvbmZpdmUyLWtlcm5l bC01LjE1LjAvc2VjdXJpdHkva2V5cy9kaC5jCTIwMjMtMDEtMTEgMTY6Mjk6MzUuMDAwMDAwMDAw ICswMTAwCisrKysgLQkyMDIzLTAyLTAxIDIyOjE1OjEwLjI2MjM4NzI5MCArMDEwMAorQEAgLTE0 LDcgKzE0LDcgQEAKKyAjaW5jbHVkZSA8a2V5cy91c2VyLXR5cGUuaD4KKyAjaW5jbHVkZSAiaW50 ZXJuYWwuaCIKKyAKKy1zdGF0aWMgc3NpemVfdCBkaF9kYXRhX2Zyb21fa2V5KGtleV9zZXJpYWxf dCBrZXlpZCwgdm9pZCAqKmRhdGEpCisrc3RhdGljIHNzaXplX3QgZGhfZGF0YV9mcm9tX2tleShr ZXlfc2VyaWFsX3Qga2V5aWQsIGNvbnN0IHZvaWQgKipkYXRhKQorIHsKKyAJc3RydWN0IGtleSAq a2V5OworIAlrZXlfcmVmX3Qga2V5X3JlZjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvVmlzaW9uZml2 ZTIta2VybmVsL3RlbXBsYXRlIGIvc3JjcGtncy9WaXNpb25maXZlMi1rZXJuZWwvdGVtcGxhdGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMDZhNDQ2NTRkZGUxYwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvVmlzaW9uZml2ZTIta2VybmVsL3RlbXBsYXRlCkBA IC0wLDAgKzEsMjQ0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdWaXNpb25maXZlMi1rZXJuZWwn Citwa2duYW1lPVZpc2lvbmZpdmUyLWtlcm5lbAordmVyc2lvbj01LjE1LjAKK190YWc9VkYyX3Yy LjguMAorcmV2aXNpb249MQorYXJjaHM9InJpc2N2NjQqIgord3Jrc3JjPSJsaW51eC0ke190YWd9 IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgeHogYmMgZWxmdXRpbHMtZGV2ZWwgZmxleCBnbXAtZGV2 ZWwga21vZCBsaWJtcGMtZGV2ZWwKKyBvcGVuc3NsLWRldmVsIHBlcmwgdWJvb3QtbWtpbWFnZSBj cGlvIHBhaG9sZSBweXRob24zIHpzdGQiCitzaG9ydF9kZXNjPSJWZW5kb3IgS2VybmVsIGZvciBX b25kZXJzaGFyZSBWaXNpb25maXZlMiIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4iCitsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 aHViLmNvbS9zdGFyZml2ZS10ZWNoL1Zpc2lvbkZpdmUyIgorZGlzdGZpbGVzPSJodHRwczovL2dp dGh1Yi5jb20vc3RhcmZpdmUtdGVjaC9saW51eC9hcmNoaXZlLyR7X3RhZ30udGFyLmd6IgorY2hl Y2tzdW09Yzk3YTE1YzhhMTk1YjNiOTc0YTUxZDBkNTRlZGY0MThhNzk4MmIxZDU2NzA2ZDc0NTZl MmMwMDAzNGY4NzI5YworCitweXRob25fdmVyc2lvbj0zCitvZGVidWc9eWVzICAjIC1kYmcgcGFj a2FnZSBpcyBnZW5lcmF0ZWQgYmVsb3cgbWFudWFsbHkKK25vc3RyaXA9eWVzCitub3ZlcmlmeXJk ZXBzPXllcworbm9zaGxpYnByb3ZpZGVzPXllcworcHJlc2VydmU9eWVzCisKK19rZXJudmVyPSIk e3ZlcnNpb259XyR7cmV2aXNpb259IgordHJpZ2dlcnM9Imtlcm5lbC1ob29rcyIKK2tlcm5lbF9o b29rc192ZXJzaW9uPSIke19rZXJudmVyfSIKKworIyBUaGVzZSBmaWxlcyBjb3VsZCBiZSBtb2Rp ZmllZCB3aGVuIGFuIGV4dGVybmFsIG1vZHVsZSBpcyBidWlsdC4KK211dGFibGVfZmlsZXM9Igor IC91c3IvbGliL21vZHVsZXMvJHtfa2VybnZlcn0vbW9kdWxlcy5idWlsdGluLmJpbgorIC91c3Iv bGliL21vZHVsZXMvJHtfa2VybnZlcn0vbW9kdWxlcy5idWlsdGluLmFsaWFzLmJpbgorIC91c3Iv bGliL21vZHVsZXMvJHtfa2VybnZlcn0vbW9kdWxlcy5zb2Z0ZGVwCisgL3Vzci9saWIvbW9kdWxl cy8ke19rZXJudmVyfS9tb2R1bGVzLmRlcAorIC91c3IvbGliL21vZHVsZXMvJHtfa2VybnZlcn0v bW9kdWxlcy5kZXAuYmluCisgL3Vzci9saWIvbW9kdWxlcy8ke19rZXJudmVyfS9tb2R1bGVzLnN5 bWJvbHMKKyAvdXNyL2xpYi9tb2R1bGVzLyR7X2tlcm52ZXJ9L21vZHVsZXMuc3ltYm9scy5iaW4K KyAvdXNyL2xpYi9tb2R1bGVzLyR7X2tlcm52ZXJ9L21vZHVsZXMuYWxpYXMKKyAvdXNyL2xpYi9t b2R1bGVzLyR7X2tlcm52ZXJ9L21vZHVsZXMuYWxpYXMuYmluCisgL3Vzci9saWIvbW9kdWxlcy8k e19rZXJudmVyfS9tb2R1bGVzLmRldm5hbWUiCisKKyMgcmVwcm9kdWNpYmxlIGJ1aWxkCitleHBv cnQgS0JVSUxEX0JVSUxEX1RJTUVTVEFNUD0kKExDX0FMTD1DIGRhdGUgLXVkIEAke1NPVVJDRV9E QVRFX0VQT0NIOi0wfSkKK2V4cG9ydCBLQlVJTERfQlVJTERfVVNFUj12b2lkbGludXgKK2V4cG9y dCBLQlVJTERfQlVJTERfSE9TVD12b2lkbGludXgKKworaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCisgICAgICAgIF9jcm9zcz0iQ1JPU1NfQ09NUElMRT0ke1hCUFNfQ1JPU1NfVFJJUExFVH0t IgorZmkKKworcHJlX3BhdGNoKCkgeworICAgICAgICB4emNhdCAkWEJQU19TUkNESVNURElSLyRw a2duYW1lLSR2ZXJzaW9uL3BhdGNoLSR7dmVyc2lvbn0ueHogfCBwYXRjaCAtTnAxCit9CisKK2Rv X2NvbmZpZ3VyZSgpIHsKKyAgICAgICAgbG9jYWwgYXJjaAorCisgICAgICAgIGFyY2g9cmlzY3YK KworICAgICAgICBjcCAtZiAke0ZJTEVTRElSfS9kb3Rjb25maWcgLmNvbmZpZworICAgICAgICBt YWtlICR7bWFrZWpvYnN9IEFSQ0g9JGFyY2ggJHtfY3Jvc3N9IG9sZGNvbmZpZworCisgICAgICAg ICMgQWx3YXlzIHVzZSBvdXIgcmV2aXNpb24gdG8gQ09ORklHX0xPQ0FMVkVSU0lPTiB0byBtYXRj aCBvdXIgcGtnIHZlcnNpb24uCisgICAgICAgIHNlZCAtaSAtZSAic3xeXChDT05GSUdfTE9DQUxW RVJTSU9OPVwpLip8XDFcIl8ke3JldmlzaW9ufVwifCIgLmNvbmZpZworfQorCitkb19idWlsZCgp IHsKKyAgICAgICAgbG9jYWwgYXJjaCBfYXJncworCisgICAgICAgIF9hcmdzPSJJbWFnZSBtb2R1 bGVzIGR0YnMiCisgICAgICAgIGFyY2g9cmlzY3YKKworICAgICAgICBleHBvcnQgTERGTEFHUz0K KyAgICAgICAgbWFrZSBBUkNIPSRhcmNoICR7X2Nyb3NzfSAke21ha2Vqb2JzfSBwcmVwYXJlCisg ICAgICAgIG1ha2UgQVJDSD0kYXJjaCAke19jcm9zc30gJHttYWtlam9ic30gJHtfYXJnc30KK30K KworZG9faW5zdGFsbCgpIHsKKyAgICAgICAgbG9jYWwgYXJjaCBzdWJhcmNoIF9hcmdzIGhkcmRl c3QKKworICAgICAgICBhcmNoPXJpc2N2CisKKyAgICAgICAgIyBSdW4gZGVwbW9kIGFmdGVyIGNv bXByZXNzaW5nIG1vZHVsZXMuCisgICAgICAgIHNlZCAtaSAnMmlleGl0IDAnIHNjcmlwdHMvZGVw bW9kLnNoCisKKyAgICAgICAgIyBJbnN0YWxsIGtlcm5lbCwgZmlybXdhcmUgYW5kIG1vZHVsZXMK KyAgICAgICAgbWFrZSAke21ha2Vqb2JzfSBBUkNIPSR7c3ViYXJjaDotJGFyY2h9IElOU1RBTExf TU9EX1BBVEg9JHtERVNURElSfSAke19jcm9zc30gbW9kdWxlc19pbnN0YWxsCisKKyAgICAgICAg aGRyZGVzdD0ke0RFU1RESVJ9L3Vzci9zcmMva2VybmVsLWhlYWRlcnMtJHtfa2VybnZlcn0KKwor ICAgICAgICB2aW5zdGFsbCAuY29uZmlnIDY0NCBib290IGNvbmZpZy0ke19rZXJudmVyfQorICAg ICAgICB2aW5zdGFsbCBTeXN0ZW0ubWFwIDY0NCBib290IFN5c3RlbS5tYXAtJHtfa2VybnZlcn0K KworICAgICAgICB2aW5zdGFsbCBhcmNoL3Jpc2N2L2Jvb3QvSW1hZ2UgNjQ0IGJvb3Qgdm1saW51 eC0ke19rZXJudmVyfQorICAgICAgICBtYWtlICR7bWFrZWpvYnN9IEFSQ0g9JHtzdWJhcmNoOi0k YXJjaH0gSU5TVEFMTF9EVEJTX1BBVEg9JHtERVNURElSfS9ib290L2R0YnMvZHRicy0ke19rZXJu dmVyfSAke19jcm9zc30gZHRic19pbnN0YWxsCisKKyAgICAgICAgIyBTd2l0Y2ggdG8gL3Vzci4K KyAgICAgICAgdm1rZGlyIHVzcgorICAgICAgICBtdiAke0RFU1RESVJ9L2xpYiAke0RFU1RESVJ9 L3VzcgorCisgICAgICAgIGNkICR7REVTVERJUn0vdXNyL2xpYi9tb2R1bGVzLyR7X2tlcm52ZXJ9 CisgICAgICAgIHJtIC1mIHNvdXJjZSBidWlsZAorICAgICAgICBsbiAtc2YgLi4vLi4vLi4vc3Jj L2tlcm5lbC1oZWFkZXJzLSR7X2tlcm52ZXJ9IGJ1aWxkCisKKyAgICAgICAgY2QgJHt3cmtzcmN9 CisgICAgICAgICMgSW5zdGFsbCByZXF1aXJlZCBoZWFkZXJzIHRvIGJ1aWxkIGV4dGVybmFsIG1v ZHVsZXMKKyAgICAgICAgaW5zdGFsbCAtRG02NDQgTWFrZWZpbGUgJHtoZHJkZXN0fS9NYWtlZmls ZQorICAgICAgICBpbnN0YWxsIC1EbTY0NCBrZXJuZWwvTWFrZWZpbGUgJHtoZHJkZXN0fS9rZXJu ZWwvTWFrZWZpbGUKKyAgICAgICAgaW5zdGFsbCAtRG02NDQgLmNvbmZpZyAke2hkcmRlc3R9Ly5j b25maWcKKyAgICAgICAgZm9yIGZpbGUgaW4gJChmaW5kIC4gLW5hbWUgS2NvbmZpZ1wqKTsgZG8K KyAgICAgICAgICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9LyQoZGlybmFtZSAkZmlsZSkKKyAg ICAgICAgICAgICAgICBpbnN0YWxsIC1EbTY0NCAkZmlsZSAke2hkcmRlc3R9LyR7ZmlsZX0KKyAg ICAgICAgZG9uZQorICAgICAgICBmb3IgZmlsZSBpbiAkKGZpbmQgYXJjaC8ke3N1YmFyY2g6LSRh cmNofSBzY3JpcHRzIC1uYW1lIG1vZHVsZS5sZHMgLW8gLW5hbWUgS2J1aWxkLnBsYXRmb3JtcyAt byAtbmFtZSBQbGF0Zm9ybSk7IGRvCisgICAgICAgICAgICAgICAgbWtkaXIgLXAgJHtoZHJkZXN0 fS8kKGRpcm5hbWUgJGZpbGUpCisgICAgICAgICAgICAgICAgaW5zdGFsbCAtRG02NDQgJGZpbGUg JHtoZHJkZXN0fS8ke2ZpbGV9CisgICAgICAgIGRvbmUKKyAgICAgICAgbWtkaXIgLXAgJHtoZHJk ZXN0fS9pbmNsdWRlCisgICAgICAgICMgUmVtb3ZlIGZpcm13YXJlIHN0dWZmIHByb3ZpZGVkIGJ5 IHRoZSAibGludXgtZmlybXdhcmUiIHBrZy4KKyAgICAgICAgcm0gLXJmICR7REVTVERJUn0vdXNy L2xpYi9maXJtd2FyZQorCisgICAgICAgIGZvciBpIGluIGFjcGkgYXNtLWdlbmVyaWMgY2xvY2tz b3VyY2UgY29uZmlnIGNyeXB0byBkcm0gZ2VuZXJhdGVkIGxpbnV4IHZkc28gXAorICAgICAgICAg ICAgICAgIG1hdGgtZW11IG1lZGlhIG5ldCBwY21jaWEgc2NzaSBzb3VuZCB0cmFjZSB1YXBpIHZp ZGVvIHhlbiBkdC1iaW5kaW5nczsgZG8KKyAgICAgICAgICAgICAgICBpZiBbIC1kIGluY2x1ZGUv JGkgXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgY3AgLWEgaW5jbHVkZS8kaSAke2hk cmRlc3R9L2luY2x1ZGUKKyAgICAgICAgICAgICAgICBmaQorICAgICAgICBkb25lCisKKyAgICAg ICAgY2QgJHt3cmtzcmN9CisgICAgICAgIG1rZGlyIC1wICR7aGRyZGVzdH0vYXJjaC8ke2FyY2h9 CisgICAgICAgIGNwIC1hIGFyY2gvJHthcmNofS9pbmNsdWRlICR7aGRyZGVzdH0vYXJjaC8ke2Fy Y2h9CisKKyAgICAgICAgIyBSZW1vdmUgaGVscGVyIGJpbmFyaWVzIGJ1aWx0IGZvciBob3N0LAor ICAgICAgICAjIGlmIGdlbmVyYXRlZCBmaWxlcyBmcm9tIHRoZSBzY3JpcHRzLyBkaXJlY3Rvcnkg bmVlZCB0byBiZSBpbmNsdWRlZCwKKyAgICAgICAgIyB0aGV5IG5lZWQgdG8gYmUgY29waWVkIHRv ICR7aGRyZGVzdH0gYmVmb3JlIHRoaXMgc3RlcAorICAgICAgICBpZiBbICIkQ1JPU1NfQlVJTEQi IF07IHRoZW4KKyAgICAgICAgICAgICAgICBtYWtlICR7bWFrZWpvYnN9IEFSQ0g9JHtzdWJhcmNo Oi0kYXJjaH0gJHtfY3Jvc3N9IF9tcnByb3Blcl9zY3JpcHRzCisgICAgICAgICAgICAgICAgIyBy ZW1vdmUgaG9zdCBzcGVjaWZpYyBvYmplY3RzIGFzIHdlbGwKKyAgICAgICAgICAgICAgICBmaW5k IHNjcmlwdHMgLW5hbWUgJyoubycgLWRlbGV0ZQorICAgICAgICBmaQorCisgICAgICAgICMgQ29w eSBmaWxlcyBuZWNlc3NhcnkgZm9yIGxhdGVyIGJ1aWxkcywgbGlrZSBudmlkaWEgYW5kIHZtd2Fy ZQorICAgICAgICBjcCBNb2R1bGUuc3ltdmVycyAke2hkcmRlc3R9CisgICAgICAgIGNwIC1hIHNj cmlwdHMgJHtoZHJkZXN0fQorICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L3NlY3VyaXR5L3Nl bGludXgKKyAgICAgICAgY3AgLWEgc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlICR7aGRyZGVzdH0v c2VjdXJpdHkvc2VsaW51eAorICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L3Rvb2xzL2luY2x1 ZGUKKyAgICAgICAgY3AgLWEgdG9vbHMvaW5jbHVkZS90b29scyAke2hkcmRlc3R9L3Rvb2xzL2lu Y2x1ZGUKKworICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L2FyY2gvJHthcmNofS9rZXJuZWwK KyAgICAgICAgY3AgYXJjaC8ke2FyY2h9L01ha2VmaWxlICR7aGRyZGVzdH0vYXJjaC8ke2FyY2h9 CisKKyAgICAgICAgbWtkaXIgLXAgJHtoZHJkZXN0fS9hcmNoL3Jpc2N2L2tlcm5lbAorICAgICAg ICBjcCAtYSBhcmNoL3Jpc2N2L2tlcm5lbC92ZHNvICR7aGRyZGVzdH0vYXJjaC9yaXNjdi9rZXJu ZWwvCisKKyAgICAgICAgIyBhZGQgaGVhZGVycyBmb3IgbGlyYyBwYWNrYWdlCisgICAgICAgICMg cGNpCisgICAgICAgIGZvciBpIGluIGJ0OHh4IGN4ODggc2FhNzEzNDsgZG8KKyAgICAgICAgICAg ICAgICBta2RpciAtcCAke2hkcmRlc3R9L2RyaXZlcnMvbWVkaWEvcGNpLyR7aX0KKyAgICAgICAg ICAgICAgICBjcCAtYSBkcml2ZXJzL21lZGlhL3BjaS8ke2l9LyouaCAke2hkcmRlc3R9L2RyaXZl cnMvbWVkaWEvcGNpLyR7aX0KKyAgICAgICAgZG9uZQorICAgICAgICAjIHVzYgorICAgICAgICBm b3IgaSBpbiBjcGlhMiBlbTI4eHggcHdjOyBkbworICAgICAgICAgICAgICAgIG1rZGlyIC1wICR7 aGRyZGVzdH0vZHJpdmVycy9tZWRpYS91c2IvJHtpfQorICAgICAgICAgICAgICAgIGNwIC1hIGRy aXZlcnMvbWVkaWEvdXNiLyR7aX0vKi5oICR7aGRyZGVzdH0vZHJpdmVycy9tZWRpYS91c2IvJHtp fQorICAgICAgICBkb25lCisgICAgICAgICMgaTJjCisgICAgICAgIG1rZGlyIC1wICR7aGRyZGVz dH0vZHJpdmVycy9tZWRpYS9pMmMKKyAgICAgICAgY3AgZHJpdmVycy9tZWRpYS9pMmMvKi5oICR7 aGRyZGVzdH0vZHJpdmVycy9tZWRpYS9pMmMKKyAgICAgICAgZm9yIGkgaW4gY3gyNTg0MDsgZG8K KyAgICAgICAgICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L2RyaXZlcnMvbWVkaWEvaTJjLyR7 aX0KKyAgICAgICAgICAgICAgICBjcCAtYSBkcml2ZXJzL21lZGlhL2kyYy8ke2l9LyouaCAke2hk cmRlc3R9L2RyaXZlcnMvbWVkaWEvaTJjLyR7aX0KKyAgICAgICAgZG9uZQorCisgICAgICAgICMg QWRkIG1kIGhlYWRlcnMKKyAgICAgICAgbWtkaXIgLXAgJHtoZHJkZXN0fS9kcml2ZXJzL21kCisg ICAgICAgIGNwIGRyaXZlcnMvbWQvKi5oICR7aGRyZGVzdH0vZHJpdmVycy9tZAorCisgICAgICAg ICMgQWRkIGlub3RpZnkuaAorICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L2luY2x1ZGUvbGlu dXgKKyAgICAgICAgY3AgaW5jbHVkZS9saW51eC9pbm90aWZ5LmggJHtoZHJkZXN0fS9pbmNsdWRl L2xpbnV4CisKKyAgICAgICAgIyBBZGQgd2lyZWxlc3MgaGVhZGVycworICAgICAgICBta2RpciAt cCAke2hkcmRlc3R9L25ldC9tYWM4MDIxMS8KKyAgICAgICAgY3AgbmV0L21hYzgwMjExLyouaCAk e2hkcmRlc3R9L25ldC9tYWM4MDIxMQorCisgICAgICAgICMgYWRkIGR2YiBoZWFkZXJzIGZvciBo dHRwOi8vbWNlbnRyYWwuZGUvaGcvfm1yZWMvZW0yOHh4LW5ldworICAgICAgICBjcCBkcml2ZXJz L21lZGlhL2kyYy9tc3AzNDAwLWRyaXZlci5oICR7aGRyZGVzdH0vZHJpdmVycy9tZWRpYS9pMmMv CisKKyAgICAgICAgIyBhZGQgZHZiIGhlYWRlcnMKKyAgICAgICAgbWtkaXIgLXAgJHtoZHJkZXN0 fS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiCisgICAgICAgIGNwIGRyaXZlcnMvbWVkaWEvdXNi L2R2Yi11c2IvKi5oICR7aGRyZGVzdH0vZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi8KKyAgICAg ICAgbWtkaXIgLXAgJHtoZHJkZXN0fS9kcml2ZXJzL21lZGlhL2R2Yi1mcm9udGVuZHMKKyAgICAg ICAgY3AgZHJpdmVycy9tZWRpYS9kdmItZnJvbnRlbmRzLyouaCAke2hkcmRlc3R9L2RyaXZlcnMv bWVkaWEvZHZiLWZyb250ZW5kcy8KKyAgICAgICAgbWtkaXIgLXAgJHtoZHJkZXN0fS9kcml2ZXJz L21lZGlhL3R1bmVycworICAgICAgICBjcCBkcml2ZXJzL21lZGlhL3R1bmVycy8qLmggJHtoZHJk ZXN0fS9kcml2ZXJzL21lZGlhL3R1bmVycy8KKworICAgICAgICAjIEFkZCB4ZnMgYW5kIHNobWVt IGZvciBhdWZzIGJ1aWxkaW5nCisgICAgICAgIG1rZGlyIC1wICR7aGRyZGVzdH0vZnMveGZzL2xp YnhmcworICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L21tCisgICAgICAgIGNwIGZzL3hmcy9s aWJ4ZnMveGZzX3NiLmggJHtoZHJkZXN0fS9mcy94ZnMvbGlieGZzL3hmc19zYi5oCisKKyAgICAg ICAgIyBSZW1vdmUgdW5uZWVkZWQgYXJjaGl0ZWN0dXJlcworICAgICAgICBmb3IgYXJjaCBpbiBh bHBoYSBhdnIzMiBibGFja2ZpbiBjcmlzIGZydiBoODMwMCBcCisgICAgICAgICAgICAgICAgaWE2 NCBtKiBzKiB1bSB2ODUwIHh0ZW5zYSB4ODYqIHAqOyBkbworICAgICAgICAgICAgICAgIHJtIC1y ZiAke2hkcmRlc3R9L2FyY2gvJHthcmNofQorICAgICAgICBkb25lCisgICAgICAgICMgS2VlcCBh cmNoL3g4Ni9yYXMvS2NvbmZpZyBhcyBpdCBpcyBuZWVkZWQgYnkgZHJpdmVycy9yYXMvS2NvbmZp ZworICAgICAgICBta2RpciAtcCAke2hkcmRlc3R9L2FyY2gveDg2L3JhcworICAgICAgICBjcCAt YSBhcmNoL3g4Ni9yYXMvS2NvbmZpZyAke2hkcmRlc3R9L2FyY2gveDg2L3Jhcy9LY29uZmlnCisK KyAgICAgICAgIyBFeHRyYWN0IGRlYnVnZ2luZyBzeW1ib2xzIGFuZCBjb21wcmVzcyBtb2R1bGVz CisgICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2ZXI6IGV4dHJhY3RpbmcgZGVidWcgaW5mbyBhbmQg Y29tcHJlc3NpbmcgbW9kdWxlcywgcGxlYXNlIHdhaXQuLi5cbiIKKyAgICAgICAgaW5zdGFsbCAt RG02NDQgdm1saW51eCAke0RFU1RESVJ9L3Vzci9saWIvZGVidWcvYm9vdC92bWxpbnV4LSR7X2tl cm52ZXJ9CisgICAgICAgICgKKyAgICAgICAgY2QgJHtERVNURElSfQorICAgICAgICBleHBvcnQg REVTVERJUgorICAgICAgICBmaW5kIC4vIC1uYW1lICcqLmtvJyAtcHJpbnQwIHwgXAorICAgICAg ICAgICAgICAgIHhhcmdzIC0wciAtbjEgLVAgJHtYQlBTX01BS0VKT0JTfSAke0ZJTEVTRElSfS9t di1kZWJ1ZworICAgICAgICApCisgICAgICAgICMgLi4uIGFuZCBydW4gZGVwbW9kIGFnYWluLgor ICAgICAgICBkZXBtb2QgLWIgJHtERVNURElSfS91c3IgLUYgU3lzdGVtLm1hcCAke19rZXJudmVy fQorfQorVmlzaW9uZml2ZTIta2VybmVsLWhlYWRlcnNfcGFja2FnZSgpIHsKKyAgICAgICAgcHJl c2VydmU9eWVzCisgICAgICAgIG5vc3RyaXA9eWVzCisgICAgICAgIG5vc2hsaWJwcm92aWRlcz15 ZXMKKyAgICAgICAgc2hvcnRfZGVzYys9IiAtIHNvdXJjZSBoZWFkZXJzIGZvciAzcmQgcGFydHkg bW9kdWxlcyIKKyAgICAgICAgcGtnX2luc3RhbGwoKSB7CisgICAgICAgICAgICAgICAgdm1vdmUg dXNyL3NyYworICAgICAgICAgICAgICAgIHZtb3ZlIHVzci9saWIvbW9kdWxlcy8ke19rZXJudmVy fS9idWlsZAorICAgICAgICB9Cit9CitWaXNpb25maXZlMi1rZXJuZWwtZGJnX3BhY2thZ2UoKSB7 CisgICAgICAgIHByZXNlcnZlPXllcworICAgICAgICBub3N0cmlwPXllcworICAgICAgICBub3Zl cmlmeXJkZXBzPXllcworICAgICAgICBub3NobGlicHJvdmlkZXM9eWVzCisgICAgICAgIHJlcG9z aXRvcnk9ZGVidWcKKyAgICAgICAgc2hvcnRfZGVzYys9IiAtIGRlYnVnZ2luZyBzeW1ib2xzIgor ICAgICAgICBwa2dfaW5zdGFsbCgpIHsKKyAgICAgICAgICAgICAgICB2bW92ZSB1c3IvbGliL2Rl YnVnCisgICAgICAgICAgICAgICAgdm1vdmUgImJvb3QvU3lzdGVtLm1hcC0ke19rZXJudmVyfSIK KyAgICAgICAgfQorfQoKRnJvbSA2NjdhMzM5Y2I3MGZlNTFmNjI5Y2VlNTk3MGJkMGMzMzZmNDA1 NzA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+CkRhdGU6IFR1ZSwgMjEgRmViIDIwMjMgMTM6MTE6MzAgKzAxMDAKU3ViamVjdDogW1BBVENI IDEzOS8xODldIGZpcmViaXJkMzogdXBkYXRlIHRvIDMuMC4xMC4KCi0tLQogc3JjcGtncy9maXJl YmlyZDMvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoIHwgMTMyICsrKysrKysrKysrKysrKysrKysrKysr Kwogc3JjcGtncy9maXJlYmlyZDMvdGVtcGxhdGUgICAgICAgICAgICAgIHwgIDE1ICstLQogMiBm aWxlcyBjaGFuZ2VkLCAxNDAgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2ZpcmViaXJkMy9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2ZpcmViaXJkMy9wYXRjaGVzL3Jpc2N2NjQucGF0Y2ggYi9zcmNwa2dz L2ZpcmViaXJkMy9wYXRjaGVzL3Jpc2N2NjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMC4uOWJlODNlNDJiN2I4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZmlyZWJpcmQzL3BhdGNoZXMvcmlzY3Y2NC5wYXRjaApAQCAtMCwwICsxLDEzMiBAQAorLS0t IGEvc3JjL2NvbW1vbi9jbGFzc2VzL0RiSW1wbGVtZW50YXRpb24uY3BwCTIwMjMtMDItMDEgMTk6 MzA6NTcuMDc2ODU4MzI2ICswMTAwCisrKysgLQkyMDIzLTAyLTAxIDE5OjMzOjE1LjEyNzUzODYy OCArMDEwMAorQEAgLTQ5LDYgKzQ5LDcgQEAKKyBzdGF0aWMgY29uc3QgVUNIQVIgQ3B1QXJtNjQg PSAxNTsKKyBzdGF0aWMgY29uc3QgVUNIQVIgQ3B1UG93ZXJQYzY0ZWwgPSAxNjsKKyBzdGF0aWMg Y29uc3QgVUNIQVIgQ3B1TTY4ayA9IDE3OworK3N0YXRpYyBjb25zdCBVQ0hBUiBDcHVSaXNjVjY0 ID0gMTg7CisgCisgc3RhdGljIGNvbnN0IFVDSEFSIE9zV2luZG93cyA9IDA7Cisgc3RhdGljIGNv bnN0IFVDSEFSIE9zTGludXggPSAxOworQEAgLTg5LDcgKzkwLDggQEAKKyAJIkFscGhhIiwKKyAJ IkFSTTY0IiwKKyAJIlBvd2VyUEM2NGVsIiwKKy0JIk02OGsiCisrCSJNNjhrIiwKKysJIlJpc2NW NjQiCisgfTsKKyAKKyBjb25zdCBjaGFyKiBvcGVyYXRpbmdTeXN0ZW1bXSA9IHsKK0BAIC0xMTYs MjIgKzExOCwyMiBAQAorIC8vIFRoaXMgdGFibGUgbGlzdHMgcHJlLWZiMyBpbXBsZW1lbnRhdGlv biBjb2RlcworIGNvbnN0IFVDSEFSIGJhY2t3YXJkVGFibGVbRkJfTkVMRU0oaGFyZHdhcmUpICog RkJfTkVMRU0ob3BlcmF0aW5nU3lzdGVtKV0gPQorIHsKKy0vLwkJCQlJbnRlbAlBTUQJCVNwYXJj CVBQQwkJUFBDNjQJTUlQU0VMCU1JUFMJQVJNCQlJQTY0CXMzOTAJczM5MHgJU0gJCVNIRUIJSFBQ QQlBbHBoYQlBUk02NAlQb3dlclBDNjRlbAorLS8qIFdpbmRvd3MgKi8JNTAsCQk2OCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwKKy0v KiBMaW51eCAqLwkJNjAsCQk2NiwJCTY1LAkJNjksCQk4NiwJCTcxLAkJNzIsCQk3NSwgCTc2LAkJ NzksIAk3OCwJCTgwLAkJODEsCQk4MiwJCTgzLAkJODQsCQk4NSwKKy0vKiBEYXJ3aW4gKi8JNzAs CQk3MywJCTAsCQk2MywJCTc3LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAorLS8qIFNvbGFyaXMgKi8JMCwJCTAsCQkzMCwJCTAsCQkwLAkJMCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAorLS8qIEhQVVggKi8JCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkzMSwJCTAsCQkw LAkJMCwKKy0vKiBBSVggKi8JCQkwLAkJMCwJCTAsCQkzNSwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCistLyogTVZTICovCQkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCist LyogRnJlZUJTRCAqLwk2MSwJCTY3LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAorLS8qIE5ldEJTRCAqLwk2MiwJCTAsCQkwLAkJMCwJ CTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAKKysvLwkJ CQlJbnRlbAlBTUQJCVNwYXJjCVBQQwkJUFBDNjQJTUlQU0VMCU1JUFMJQVJNCQlJQTY0CXMzOTAJ czM5MHgJU0gJCVNIRUIJSFBQQQlBbHBoYQlBUk02NAlQb3dlclBDNjRlbAlNNjhrCVJpc2NWNjQK KysvKiBXaW5kb3dzICovCTUwLAkJNjgsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJ CTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkJMCwJCTAsCisrLyogTGludXggKi8JCTYwLAkJ NjYsCQk2NSwJCTY5LAkJODYsCQk3MSwJCTcyLAkJNzUsIAk3NiwJCTc5LCAJNzgsCQk4MCwJCTgx LAkJODIsCQk4MywJCTg0LAkJODUsCQkJODcsCQk4OCwKKysvKiBEYXJ3aW4gKi8JNzAsCQk3MywJ CTAsCQk2MywJCTc3LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJCTAsCQkwLAorKy8qIFNvbGFyaXMgKi8JMCwJCTAsCQkzMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJCTAsCQkwLAorKy8qIEhQ VVggKi8JCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAs CQkzMSwJCTAsCQkwLAkJMCwJCQkwLAkJMCwKKysvKiBBSVggKi8JCQkwLAkJMCwJCTAsCQkzNSwJ CTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJ MCwKKysvKiBNVlMgKi8JCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAorKy8qIEZyZWVCU0QgKi8JNjEsCQk2 NywJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkw LAkJMCwJCQkwLAkJMCwKKysvKiBOZXRCU0QgKi8JNjIsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJCTAsCQkwCisgfTsKKyAK KyBjb25zdCBVQ0hBUiBiYWNrRW5kaWFuZXNzW0ZCX05FTEVNKGhhcmR3YXJlKV0gPQorIHsKKy0v LwlJbnRlbAlBTUQJCVNwYXJjCVBQQwkJUFBDNjQJTUlQU0VMCU1JUFMJQVJNCQlJQTY0CXMzOTAJ czM5MHgJU0gJCVNIRUIJSFBQQQlBbHBoYQlBUk02NAlQb3dlclBDNjRlbAlNNjhrCistCTAsCQkw LAkJMSwJCTEsCQkxLAkJMCwJCTEsCQkwLAkJMCwJCTEsCQkxLAkJMCwJCTEsCQkxLAkJMCwJCTAs CQkwLAkJMQorKy8vCUludGVsCUFNRAkJU3BhcmMJUFBDCQlQUEM2NAlNSVBTRUwJTUlQUwlBUk0J CUlBNjQJczM5MAlzMzkweAlTSAkJU0hFQglIUFBBCUFscGhhCUFSTTY0CVBvd2VyUEM2NGVsCU02 OGsJUmlzY3Y2NAorKwkwLAkJMCwJCTEsCQkxLAkJMSwJCTAsCQkxLAkJMCwJCTAsCQkxLAkJMSwJ CTAsCQkxLAkJMSwJCTAsCQkwLAkJMCwJCQkxLAkJMAorIH07CisgCisgfSAvLyBhbm9ueW1vdXMg bmFtZXNwYWNlCistLS0gYS9zcmMvY29tbW9uL2NvbW1vbi5oCTIwMjMtMDItMDEgMTk6MzM6NTQu MTQzNzQwOTIzICswMTAwCisrKysgLQkyMDIzLTAyLTAxIDE5OjM0OjAxLjI0MDc5Mzg0MyArMDEw MAorQEAgLTEzNSw2ICsxMzUsMTAgQEAKKyAjZGVmaW5lIEZCX0NQVSBDcHVBcm02NAorICNlbmRp ZiAvKiBBUk02NCAqLworIAorKyNpZmRlZiBSSVNDVjY0CisrI2RlZmluZSBGQl9DUFUgQ3B1Umlz Y1Y2NAorKyNlbmRpZiAvKiBSSVNDVjY0ICovCisrCisgI2lmZGVmIHNwYXJjCisgI2RlZmluZSBG Ql9DUFUgQ3B1VWx0cmFTcGFyYworICNkZWZpbmUgUklTQ19BTElHTk1FTlQKKy0tLSBhL3NyYy9q cmQvaW5mX3B1Yi5oCTIwMjMtMDItMDEgMTk6MzU6MDYuMjIzNTA3MjgxICswMTAwCisrKysgLQky MDIzLTAyLTAxIDE5OjM1OjA5LjQ1NzYzOTc3NCArMDEwMAorQEAgLTI0NSw3ICsyNDUsNyBAQAor IAlpc2NfaW5mb19kYl9pbXBsX2xpbnV4X3BwYzY0ZWwgPSA4NSwKKyAJaXNjX2luZm9fZGJfaW1w bF9saW51eF9wcGM2NCA9IDg2LAorIAlpc2NfaW5mb19kYl9pbXBsX2xpbnV4X202OGsgPSA4NywK Ky0KKysJaXNjX2luZm9fZGJfaW1wbF9saW51eF9yaXNjdjY0ID0gODgsCisgCisgCWlzY19pbmZv X2RiX2ltcGxfbGFzdF92YWx1ZSAgIC8vIExlYXZlIHRoaXMgTEFTVCEKKyB9OworLS0tIGEvY29u ZmlndXJlLmFjCTIwMjItMDYtMDcgMTA6MTg6NTIuMDAwMDAwMDAwICswMjAwCisrKysgLQkyMDIz LTAyLTAxIDE5OjQxOjAyLjUyODg4MDkwNiArMDEwMAorQEAgLTI1MSw2ICsyNTEsMTggQEAKKyAg ICAgbGliZGlyPS91c3IvbGliNjQKKyAgICAgOzsKKyAKKysgIHJpc2N2NjQqLSotbGludXgqKQor KyAgICBNQUtFRklMRV9QUkVGSVg9bGludXhfcmlzY3Y2NAorKyAgICBJTlNUQUxMX1BSRUZJWD1s aW51eAorKyAgICBQTEFURk9STT1MSU5VWAorKyAgICBBQ19ERUZJTkUoTElOVVgsIDEsIFtEZWZp bmUgdGhpcyBpZiBPUyBpcyBMaW51eF0pCisrICAgIEVESVRMSU5FX0ZMRz1ZCisrICAgIFNIUkxJ Ql9FWFQ9c28KKysgICAgU1REX0VESVRMSU5FPXRydWUKKysgICAgU1REX0lDVT10cnVlCisrICAg IGxpYmRpcj0vdXNyL2xpYjY0CisrICAgIDs7CisrCisgICBwb3dlcnBjNjRsZS0qLWxpbnV4KikK KyAgICAgTUFLRUZJTEVfUFJFRklYPWxpbnV4X3Bvd2VycGM2NGVsCisgICAgIElOU1RBTExfUFJF RklYPWxpbnV4CistLS0gL2Rldi9udWxsCTIwMjMtMDEtMzEgMTc6MDA6NDEuMjI0ODU5ODg1ICsw MTAwCisrKysgZmlyZWJpcmQzLTMuMC4xMC9idWlsZHMvcG9zaXgvcHJlZml4LmxpbnV4X3Jpc2N2 NjQJMjAyMy0wMi0wMSAyMDowNzo0MS43ODEyMTY3NDggKzAxMDAKK0BAIC0wLDAgKzEsMjkgQEAK KysKKysjIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIEludGVy YmFzZSBQdWJsaWMKKysjIExpY2Vuc2UgVmVyc2lvbiAxLjAgKHRoZSAiTGljZW5zZSIpOyB5b3Ug bWF5IG5vdCB1c2UgdGhpcyBmaWxlCisrIyBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM aWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKKysjIG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6 Ly93d3cuSW5wcmlzZS5jb20vSVBMLmh0bWwKKysjCisrIyBTb2Z0d2FyZSBkaXN0cmlidXRlZCB1 bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorKyMgIkFTIElTIiBiYXNpcywg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3MKKysjIG9yIGltcGxp ZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZwor KyMgcmlnaHRzIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKysjCisrIyBUaGUg T3JpZ2luYWwgQ29kZSB3YXMgY3JlYXRlZCBieSBJbnByaXNlIENvcnBvcmF0aW9uCisrIyBhbmQg aXRzIHByZWRlY2Vzc29ycy4gUG9ydGlvbnMgY3JlYXRlZCBieSBJbnByaXNlIENvcnBvcmF0aW9u IGFyZQorKyMgQ29weXJpZ2h0IChDKSBJbnByaXNlIENvcnBvcmF0aW9uLgorKyMKKysjIEFsbCBS aWdodHMgUmVzZXJ2ZWQuCisrIyBDb250cmlidXRvcihzKTogX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18uCisrIyBTdGFydCBvZiBmaWxlIHByZWZpeC5saW51eDogICQoVkVS U0lPTikgICQoUExBVEZPUk0pCisrIyAgICAgIDE0IEFwciAyMDA4ICAgICBBbGFuIEJhcmNsYXkg ICAgYWxhbiBBVCBlc2NyaWJlLmNvLnVrCisrIyAgICAgIDIwMTgsICJNYW51ZWwgQS4gRmVybmFu ZGV6IE1vbnRlY2VsbyIgPG1hbnVlbC5tb250ZXplbG9AZ21haWwuY29tPgorKworKworKyNMRD1A Q1hYQAorKworKyNQUk9EX0ZMQUdTPS1nZ2RiIC1PMyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAt RExJTlVYIC1waXBlIC1NTUQgLWZQSUMKKysjREVWX0ZMQUdTPS1nZ2RiIC1ETElOVVggLURERUJV R19HRFNfQUxMT0MgLXBpcGUgLU1NRCAtcCAtZlBJQyAtV2Vycm9yPWRlbGV0ZS1pbmNvbXBsZXRl IC1XYWxsIC1Xbm8tc3dpdGNoCisrCisrUFJPRF9GTEFHUz0tTzMgLURMSU5VWCAtRFJJU0NWNjQg LXBpcGUgLXAgLU1NRCAtZlBJQyAtZnNpZ25lZC1jaGFyIC1mbWVzc2FnZS1sZW5ndGg9MCAtc3Rk PWdudSsrMDMgLWZuby1kZWxldGUtbnVsbC1wb2ludGVyLWNoZWNrcworK0RFVl9GTEFHUz0tZ2dk YiAtRExJTlVYIC1EUklTQ1Y2NCAtcGlwZSAtcCAtTU1EIC1mUElDIC1XZXJyb3I9ZGVsZXRlLWlu Y29tcGxldGUgLVdhbGwgLWZzaWduZWQtY2hhciAtZm1lc3NhZ2UtbGVuZ3RoPTAgLVduby1ub24t dmlydHVhbC1kdG9yCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmViaXJkMy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZmlyZWJpcmQzL3RlbXBsYXRlCmluZGV4IDU3NTQxNWQyMTI4ZjEuLjQyM2M3OTEzOGU1 ZDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlyZWJpcmQzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv ZmlyZWJpcmQzL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn ZmlyZWJpcmQzJwogcGtnbmFtZT1maXJlYmlyZDMKLXZlcnNpb249My4wLjYuMzMzMjgKK3ZlcnNp b249My4wLjEwCitfdGFnPTMzNjAxCiByZXZpc2lvbj0yCiBfYnVpbGQ9MAotX3V2ZXI9JHt2ZXJz aW9uLy8uL199CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9InFlbXUi CiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzcgpAQCAtMzIsMTAgKzMyLDEwIEBAIHNob3J0 X2Rlc2M9IlJlbGF0aW9uYWwgZGF0YWJhc2Ugb2ZmZXJpbmcgbWFueSBBTlNJIFNRTCBzdGFuZGFy ZCBmZWF0dXJlcyAoVjMpIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9ImN1c3RvbTpJRFBMLTEuMCwgSW50ZXJiYXNlLTEuMCIKIGhvbWVwYWdl PSJodHRwczovL3d3dy5maXJlYmlyZHNxbC5vcmcvZW4vc3RhcnQvIgotZGlzdGZpbGVzPSJodHRw czovL2dpdGh1Yi5jb20vRmlyZWJpcmRTUUwvZmlyZWJpcmQvcmVsZWFzZXMvZG93bmxvYWQvUiR7 X3V2ZXIlXyp9L0ZpcmViaXJkLSR7dmVyc2lvbn0tJHtfYnVpbGR9LnRhci5iejIiCi1jaGVja3N1 bT0zNGMxZDJhMjliYmFmMjg4ZTY4MmNkMWI1ZjgwODNmMmJhZjczZjM1MTA2MjI0NWFjZTBiZWUz NWEzZjdkMzVmCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9GaXJlYmlyZFNRTC9maXJl YmlyZC9yZWxlYXNlcy9kb3dubG9hZC92JHt2ZXJzaW9ufS9GaXJlYmlyZC0ke3ZlcnNpb259LiR7 X3RhZ30tJHtfYnVpbGR9LnRhci5iejIiCitjaGVja3N1bT05MTM4YmI2MGQyN2VhYmIxNTk0N2M4 YmQwMTg0ZGQ3Yjc5NWNjMTljYTYzMjRiNzZkYjhmZjcxOTY0MWYwMzQwCiByZXBsYWNlcz0iZmly ZWJpcmQ+PTAiCi1ub2Nyb3NzPSJGYWlscyB0byBidWlsZCBncHJlX2Jvb3QgZm9yIGhvc3QgYnV0 IGJ1aWxkcyBmb3IgdGFyZ2V0IgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD0iVHJ1ZSIKIAogQ0ZM QUdTPSItZm5vLXN0cmljdC1hbGlhc2luZyIKIENYWEZMQUdTPSItZm5vLWRlbGV0ZS1udWxsLXBv aW50ZXItY2hlY2tzIC1Xbm8tZGVwcmVjYXRlZCAtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25z IgpAQCAtNTEsNyArNTEsNyBAQCBmaQogCiBwcmVfY29uZmlndXJlKCkgewogCWxvY2FsIF9hcmNo Ci0JaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJaWYgZmFsc2U7IHRoZW4KIAkJIyBYWFg6 IFRoaXMgaXMgbm90IHlldCB3b3JraW5nIHJpZ2h0IGFuZCBuZWVkcyBtb3JlIHdvcmsuCiAJCSMg VGhlIGdlbmVyYXRlZCBncHJlX2Jvb3QgaXMgYnVpbHQgd2l0aCB0aGUgdGFyZ2V0IEMrKyBhbmQg Y2FuCiAJCSMgbm90IGJlIGV4ZWN1dGVkLiBUcnlpbmcgdG8gcnVuIGl0IHdpdGggcWVtdS08dGFy Z2V0Pi1zdGF0aWMKQEAgLTY3LDE0ICs2NywxNSBAQCBwcmVfY29uZmlndXJlKCkgewogCQlwcGM2 NCopIF9hcmNoPSJsaW51eF9wb3dlcnBjNjQiOzsKIAkJcHBjKikgX2FyY2g9ImxpbnV4X3Bvd2Vy cGMiOzsKIAkJeDg2XzY0KikgX2FyY2g9ImxpbnV4X2FtZDY0Ijs7CisJCSopIG1zZ19lcnJvciAi JFhCUFNfVEFSR0VUX01BQ0hJTkUgaGFzIG5vdCBjcm9zcyBhcmNoIHNldCB5ZXQiOzsKIAkJZXNh YwotCQljb25maWd1cmVfYXJncys9IiAtLXdpdGgtY3Jvc3MtYnVpbGQ9JF9hcmNoIgogCQkjIFJl bW92ZSAtbXNzZTQgZm9yIG5vbi14ODZfNjQgYXJjaCBiZWNhdXNlIGl0IGxlYWtzCiAJCSMgaW50 byB0aGUgdGFyZ2V0IENYWEZMQUdTLgogCQlpZiBbICIkX2FyY2giICE9ICJsaW51eF9hbWQ2NCIg XTsgdGhlbgogCQkJdnNlZCAtaSBidWlsZHMvcG9zaXgvcHJlZml4LmxpbnV4eyxfYW1kNjR9IC1l ICJzOy1tc3NlNDs7IgogCQlmaQogCWZpCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWNyb3Nz LWJ1aWxkPSRfYXJjaCIKIAogCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9IG11c2wgXTsgdGhl bgogCQl2c2VkIC1pIC1lICcvRkxBR1M9L3MvIFwtcCAvIC9nJyBcCgpGcm9tIGQzYjMyYjFlNmIx MmE5ODllZTNlM2IxYzkyNDUwNDgyMmQ1YTE3NzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVHVlLCAyMSBGZWIgMjAyMyAxMzox MTozOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQwLzE4OV0gUmV2ZXJ0ICJmaXJlYmlyZDM6IHVw ZGF0ZSB0byAzLjAuMTAuIgoKVGhpcyByZXZlcnRzIGNvbW1pdCA2YmQxYjZlZmVjODQ0Y2E0N2M4 ZDYzMDEzYTQ1YWY1MTIzMzQ5MjhmLgotLS0KIHNyY3BrZ3MvZmlyZWJpcmQzL3BhdGNoZXMvcmlz Y3Y2NC5wYXRjaCB8IDEzMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZmlyZWJp cmQzL3RlbXBsYXRlICAgICAgICAgICAgICB8ICAxNiArLS0KIDIgZmlsZXMgY2hhbmdlZCwgOCBp bnNlcnRpb25zKCspLCAxNDAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9maXJlYmlyZDMvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m aXJlYmlyZDMvcGF0Y2hlcy9yaXNjdjY0LnBhdGNoIGIvc3JjcGtncy9maXJlYmlyZDMvcGF0Y2hl cy9yaXNjdjY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YmU4M2U0MmI3 YjgwLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmlyZWJpcmQzL3BhdGNoZXMvcmlzY3Y2 NC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0tLS0gYS9zcmMvY29tbW9u L2NsYXNzZXMvRGJJbXBsZW1lbnRhdGlvbi5jcHAJMjAyMy0wMi0wMSAxOTozMDo1Ny4wNzY4NTgz MjYgKzAxMDAKLSsrKyAtCTIwMjMtMDItMDEgMTk6MzM6MTUuMTI3NTM4NjI4ICswMTAwCi1AQCAt NDksNiArNDksNyBAQAotIHN0YXRpYyBjb25zdCBVQ0hBUiBDcHVBcm02NCA9IDE1OwotIHN0YXRp YyBjb25zdCBVQ0hBUiBDcHVQb3dlclBjNjRlbCA9IDE2OwotIHN0YXRpYyBjb25zdCBVQ0hBUiBD cHVNNjhrID0gMTc7Ci0rc3RhdGljIGNvbnN0IFVDSEFSIENwdVJpc2NWNjQgPSAxODsKLSAKLSBz dGF0aWMgY29uc3QgVUNIQVIgT3NXaW5kb3dzID0gMDsKLSBzdGF0aWMgY29uc3QgVUNIQVIgT3NM aW51eCA9IDE7Ci1AQCAtODksNyArOTAsOCBAQAotIAkiQWxwaGEiLAotIAkiQVJNNjQiLAotIAki UG93ZXJQQzY0ZWwiLAotLQkiTTY4ayIKLSsJIk02OGsiLAotKwkiUmlzY1Y2NCIKLSB9OwotIAot IGNvbnN0IGNoYXIqIG9wZXJhdGluZ1N5c3RlbVtdID0gewotQEAgLTExNiwyMiArMTE4LDIyIEBA Ci0gLy8gVGhpcyB0YWJsZSBsaXN0cyBwcmUtZmIzIGltcGxlbWVudGF0aW9uIGNvZGVzCi0gY29u c3QgVUNIQVIgYmFja3dhcmRUYWJsZVtGQl9ORUxFTShoYXJkd2FyZSkgKiBGQl9ORUxFTShvcGVy YXRpbmdTeXN0ZW0pXSA9Ci0gewotLS8vCQkJCUludGVsCUFNRAkJU3BhcmMJUFBDCQlQUEM2NAlN SVBTRUwJTUlQUwlBUk0JCUlBNjQJczM5MAlzMzkweAlTSAkJU0hFQglIUFBBCUFscGhhCUFSTTY0 CVBvd2VyUEM2NGVsCi0tLyogV2luZG93cyAqLwk1MCwJCTY4LAkJMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAotLS8qIExpbnV4ICovCQk2 MCwJCTY2LAkJNjUsCQk2OSwJCTg2LAkJNzEsCQk3MiwJCTc1LCAJNzYsCQk3OSwgCTc4LAkJODAs CQk4MSwJCTgyLAkJODMsCQk4NCwJCTg1LAotLS8qIERhcndpbiAqLwk3MCwJCTczLAkJMCwJCTYz LAkJNzcsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCi0t LyogU29sYXJpcyAqLwkwLAkJMCwJCTMwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCi0tLyogSFBVWCAqLwkJMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTMxLAkJMCwJCTAsCQkwLAotLS8qIEFJ WCAqLwkJCTAsCQkwLAkJMCwJCTM1LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwKLS0vKiBNVlMgKi8JCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwKLS0vKiBGcmVlQlNEICov CTYxLAkJNjcsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAs CQkwLAkJMCwJCTAsCi0tLyogTmV0QlNEICovCTYyLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMAotKy8vCQkJCUludGVsCUFNRAkJ U3BhcmMJUFBDCQlQUEM2NAlNSVBTRUwJTUlQUwlBUk0JCUlBNjQJczM5MAlzMzkweAlTSAkJU0hF QglIUFBBCUFscGhhCUFSTTY0CVBvd2VyUEM2NGVsCU02OGsJUmlzY1Y2NAotKy8qIFdpbmRvd3Mg Ki8JNTAsCQk2OCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAkJMCwJCQkwLAkJMCwKLSsvKiBMaW51eCAqLwkJNjAsCQk2NiwJCTY1LAkJNjks CQk4NiwJCTcxLAkJNzIsCQk3NSwgCTc2LAkJNzksIAk3OCwJCTgwLAkJODEsCQk4MiwJCTgzLAkJ ODQsCQk4NSwJCQk4NywJCTg4LAotKy8qIERhcndpbiAqLwk3MCwJCTczLAkJMCwJCTYzLAkJNzcs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkJMCwJCTAs Ci0rLyogU29sYXJpcyAqLwkwLAkJMCwJCTMwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJ CTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkJMCwJCTAsCi0rLyogSFBVWCAqLwkJMCwJCTAs CQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTMxLAkJMCwJCTAs CQkwLAkJCTAsCQkwLAotKy8qIEFJWCAqLwkJCTAsCQkwLAkJMCwJCTM1LAkJMCwJCTAsCQkwLAkJ MCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAotKy8qIE1WUyAq LwkJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCi0rLyogRnJlZUJTRCAqLwk2MSwJCTY3LAkJMCwJCTAsCQkw LAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJCTAsCQkw LAotKy8qIE5ldEJTRCAqLwk2MiwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJ CTAsCQkwLAkJMCwJCTAsCQkwLAkJMCwJCTAsCQkJMCwJCTAKLSB9OwotIAotIGNvbnN0IFVDSEFS IGJhY2tFbmRpYW5lc3NbRkJfTkVMRU0oaGFyZHdhcmUpXSA9Ci0gewotLS8vCUludGVsCUFNRAkJ U3BhcmMJUFBDCQlQUEM2NAlNSVBTRUwJTUlQUwlBUk0JCUlBNjQJczM5MAlzMzkweAlTSAkJU0hF QglIUFBBCUFscGhhCUFSTTY0CVBvd2VyUEM2NGVsCU02OGsKLS0JMCwJCTAsCQkxLAkJMSwJCTEs CQkwLAkJMSwJCTAsCQkwLAkJMSwJCTEsCQkwLAkJMSwJCTEsCQkwLAkJMCwJCTAsCQkxCi0rLy8J SW50ZWwJQU1ECQlTcGFyYwlQUEMJCVBQQzY0CU1JUFNFTAlNSVBTCUFSTQkJSUE2NAlzMzkwCXMz OTB4CVNICQlTSEVCCUhQUEEJQWxwaGEJQVJNNjQJUG93ZXJQQzY0ZWwJTTY4awlSaXNjdjY0Ci0r CTAsCQkwLAkJMSwJCTEsCQkxLAkJMCwJCTEsCQkwLAkJMCwJCTEsCQkxLAkJMCwJCTEsCQkxLAkJ MCwJCTAsCQkwLAkJCTEsCQkwCi0gfTsKLSAKLSB9IC8vIGFub255bW91cyBuYW1lc3BhY2UKLS0t LSBhL3NyYy9jb21tb24vY29tbW9uLmgJMjAyMy0wMi0wMSAxOTozMzo1NC4xNDM3NDA5MjMgKzAx MDAKLSsrKyAtCTIwMjMtMDItMDEgMTk6MzQ6MDEuMjQwNzkzODQzICswMTAwCi1AQCAtMTM1LDYg KzEzNSwxMCBAQAotICNkZWZpbmUgRkJfQ1BVIENwdUFybTY0Ci0gI2VuZGlmIC8qIEFSTTY0ICov Ci0gCi0rI2lmZGVmIFJJU0NWNjQKLSsjZGVmaW5lIEZCX0NQVSBDcHVSaXNjVjY0Ci0rI2VuZGlm IC8qIFJJU0NWNjQgKi8KLSsKLSAjaWZkZWYgc3BhcmMKLSAjZGVmaW5lIEZCX0NQVSBDcHVVbHRy YVNwYXJjCi0gI2RlZmluZSBSSVNDX0FMSUdOTUVOVAotLS0tIGEvc3JjL2pyZC9pbmZfcHViLmgJ MjAyMy0wMi0wMSAxOTozNTowNi4yMjM1MDcyODEgKzAxMDAKLSsrKyAtCTIwMjMtMDItMDEgMTk6 MzU6MDkuNDU3NjM5Nzc0ICswMTAwCi1AQCAtMjQ1LDcgKzI0NSw3IEBACi0gCWlzY19pbmZvX2Ri X2ltcGxfbGludXhfcHBjNjRlbCA9IDg1LAotIAlpc2NfaW5mb19kYl9pbXBsX2xpbnV4X3BwYzY0 ID0gODYsCi0gCWlzY19pbmZvX2RiX2ltcGxfbGludXhfbTY4ayA9IDg3LAotLQotKwlpc2NfaW5m b19kYl9pbXBsX2xpbnV4X3Jpc2N2NjQgPSA4OCwKLSAKLSAJaXNjX2luZm9fZGJfaW1wbF9sYXN0 X3ZhbHVlICAgLy8gTGVhdmUgdGhpcyBMQVNUIQotIH07Ci0tLS0gYS9jb25maWd1cmUuYWMJMjAy Mi0wNi0wNyAxMDoxODo1Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyAtCTIwMjMtMDItMDEgMTk6NDE6 MDIuNTI4ODgwOTA2ICswMTAwCi1AQCAtMjUxLDYgKzI1MSwxOCBAQAotICAgICBsaWJkaXI9L3Vz ci9saWI2NAotICAgICA7OwotIAotKyAgcmlzY3Y2NCotKi1saW51eCopCi0rICAgIE1BS0VGSUxF X1BSRUZJWD1saW51eF9yaXNjdjY0Ci0rICAgIElOU1RBTExfUFJFRklYPWxpbnV4Ci0rICAgIFBM QVRGT1JNPUxJTlVYCi0rICAgIEFDX0RFRklORShMSU5VWCwgMSwgW0RlZmluZSB0aGlzIGlmIE9T IGlzIExpbnV4XSkKLSsgICAgRURJVExJTkVfRkxHPVkKLSsgICAgU0hSTElCX0VYVD1zbwotKyAg ICBTVERfRURJVExJTkU9dHJ1ZQotKyAgICBTVERfSUNVPXRydWUKLSsgICAgbGliZGlyPS91c3Iv bGliNjQKLSsgICAgOzsKLSsKLSAgIHBvd2VycGM2NGxlLSotbGludXgqKQotICAgICBNQUtFRklM RV9QUkVGSVg9bGludXhfcG93ZXJwYzY0ZWwKLSAgICAgSU5TVEFMTF9QUkVGSVg9bGludXgKLS0t LSAvZGV2L251bGwJMjAyMy0wMS0zMSAxNzowMDo0MS4yMjQ4NTk4ODUgKzAxMDAKLSsrKyBmaXJl YmlyZDMtMy4wLjEwL2J1aWxkcy9wb3NpeC9wcmVmaXgubGludXhfcmlzY3Y2NAkyMDIzLTAyLTAx IDIwOjA3OjQxLjc4MTIxNjc0OCArMDEwMAotQEAgLTAsMCArMSwyOSBAQAotKwotKyMgVGhlIGNv bnRlbnRzIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgSW50ZXJiYXNlIFB1YmxpYwot KyMgTGljZW5zZSBWZXJzaW9uIDEuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0 aGlzIGZpbGUKLSsjIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBt YXkgb2J0YWluIGEgY29weQotKyMgb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5JbnByaXNl LmNvbS9JUEwuaHRtbAotKyMKLSsjIFNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNl bnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0rIyAiQVMgSVMiIGJhc2lzLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcwotKyMgb3IgaW1wbGllZC4gU2VlIHRoZSBM aWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCi0rIyByaWdodHMgYW5k IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotKyMKLSsjIFRoZSBPcmlnaW5hbCBDb2Rl IHdhcyBjcmVhdGVkIGJ5IElucHJpc2UgQ29ycG9yYXRpb24KLSsjIGFuZCBpdHMgcHJlZGVjZXNz b3JzLiBQb3J0aW9ucyBjcmVhdGVkIGJ5IElucHJpc2UgQ29ycG9yYXRpb24gYXJlCi0rIyBDb3B5 cmlnaHQgKEMpIElucHJpc2UgQ29ycG9yYXRpb24uCi0rIwotKyMgQWxsIFJpZ2h0cyBSZXNlcnZl ZC4KLSsjIENvbnRyaWJ1dG9yKHMpOiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXy4KLSsjIFN0YXJ0IG9mIGZpbGUgcHJlZml4LmxpbnV4OiAgJChWRVJTSU9OKSAgJChQTEFU Rk9STSkKLSsjICAgICAgMTQgQXByIDIwMDggICAgIEFsYW4gQmFyY2xheSAgICBhbGFuIEFUIGVz Y3JpYmUuY28udWsKLSsjICAgICAgMjAxOCwgIk1hbnVlbCBBLiBGZXJuYW5kZXogTW9udGVjZWxv IiA8bWFudWVsLm1vbnRlemVsb0BnbWFpbC5jb20+Ci0rCi0rCi0rI0xEPUBDWFhACi0rCi0rI1BS T0RfRkxBR1M9LWdnZGIgLU8zIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1ETElOVVggLXBpcGUg LU1NRCAtZlBJQwotKyNERVZfRkxBR1M9LWdnZGIgLURMSU5VWCAtRERFQlVHX0dEU19BTExPQyAt cGlwZSAtTU1EIC1wIC1mUElDIC1XZXJyb3I9ZGVsZXRlLWluY29tcGxldGUgLVdhbGwgLVduby1z d2l0Y2gKLSsKLStQUk9EX0ZMQUdTPS1PMyAtRExJTlVYIC1EUklTQ1Y2NCAtcGlwZSAtcCAtTU1E IC1mUElDIC1mc2lnbmVkLWNoYXIgLWZtZXNzYWdlLWxlbmd0aD0wIC1zdGQ9Z251KyswMyAtZm5v LWRlbGV0ZS1udWxsLXBvaW50ZXItY2hlY2tzCi0rREVWX0ZMQUdTPS1nZ2RiIC1ETElOVVggLURS SVNDVjY0IC1waXBlIC1wIC1NTUQgLWZQSUMgLVdlcnJvcj1kZWxldGUtaW5jb21wbGV0ZSAtV2Fs bCAtZnNpZ25lZC1jaGFyIC1mbWVzc2FnZS1sZW5ndGg9MCAtV25vLW5vbi12aXJ0dWFsLWR0b3IK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWJpcmQzL3RlbXBsYXRlIGIvc3JjcGtncy9maXJlYmly ZDMvdGVtcGxhdGUKaW5kZXggNDIzYzc5MTM4ZTVkMy4uOTAwYjY5NTcwZjBjNiAxMDA2NDQKLS0t IGEvc3JjcGtncy9maXJlYmlyZDMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9maXJlYmlyZDMvdGVt cGxhdGUKQEAgLTEsOSArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZmlyZWJpcmQzJwog cGtnbmFtZT1maXJlYmlyZDMKLXZlcnNpb249My4wLjEwCi1fdGFnPTMzNjAxCit2ZXJzaW9uPTMu MC42LjMzMzI4CityZXZpc2lvbj0yCiByZXZpc2lvbj0yCiBfYnVpbGQ9MAorX3V2ZXI9JHt2ZXJz aW9uLy8uL199CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9InFlbXUi CiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzcgpAQCAtMzIsMTAgKzMzLDEwIEBAIHNob3J0 X2Rlc2M9IlJlbGF0aW9uYWwgZGF0YWJhc2Ugb2ZmZXJpbmcgbWFueSBBTlNJIFNRTCBzdGFuZGFy ZCBmZWF0dXJlcyAoVjMpIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9ImN1c3RvbTpJRFBMLTEuMCwgSW50ZXJiYXNlLTEuMCIKIGhvbWVwYWdl PSJodHRwczovL3d3dy5maXJlYmlyZHNxbC5vcmcvZW4vc3RhcnQvIgotZGlzdGZpbGVzPSJodHRw czovL2dpdGh1Yi5jb20vRmlyZWJpcmRTUUwvZmlyZWJpcmQvcmVsZWFzZXMvZG93bmxvYWQvdiR7 dmVyc2lvbn0vRmlyZWJpcmQtJHt2ZXJzaW9ufS4ke190YWd9LSR7X2J1aWxkfS50YXIuYnoyIgot Y2hlY2tzdW09OTEzOGJiNjBkMjdlYWJiMTU5NDdjOGJkMDE4NGRkN2I3OTVjYzE5Y2E2MzI0Yjc2 ZGI4ZmY3MTk2NDFmMDM0MAorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vRmlyZWJpcmRT UUwvZmlyZWJpcmQvcmVsZWFzZXMvZG93bmxvYWQvUiR7X3V2ZXIlXyp9L0ZpcmViaXJkLSR7dmVy c2lvbn0tJHtfYnVpbGR9LnRhci5iejIiCitjaGVja3N1bT0zNGMxZDJhMjliYmFmMjg4ZTY4MmNk MWI1ZjgwODNmMmJhZjczZjM1MTA2MjI0NWFjZTBiZWUzNWEzZjdkMzVmCiByZXBsYWNlcz0iZmly ZWJpcmQ+PTAiCi1kaXNhYmxlX3BhcmFsbGVsX2J1aWxkPSJUcnVlIgorbm9jcm9zcz0iRmFpbHMg dG8gYnVpbGQgZ3ByZV9ib290IGZvciBob3N0IGJ1dCBidWlsZHMgZm9yIHRhcmdldCIKIAogQ0ZM QUdTPSItZm5vLXN0cmljdC1hbGlhc2luZyIKIENYWEZMQUdTPSItZm5vLWRlbGV0ZS1udWxsLXBv aW50ZXItY2hlY2tzIC1Xbm8tZGVwcmVjYXRlZCAtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25z IgpAQCAtNTEsNyArNTIsNyBAQCBmaQogCiBwcmVfY29uZmlndXJlKCkgewogCWxvY2FsIF9hcmNo Ci0JaWYgZmFsc2U7IHRoZW4KKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAkJIyBYWFg6 IFRoaXMgaXMgbm90IHlldCB3b3JraW5nIHJpZ2h0IGFuZCBuZWVkcyBtb3JlIHdvcmsuCiAJCSMg VGhlIGdlbmVyYXRlZCBncHJlX2Jvb3QgaXMgYnVpbHQgd2l0aCB0aGUgdGFyZ2V0IEMrKyBhbmQg Y2FuCiAJCSMgbm90IGJlIGV4ZWN1dGVkLiBUcnlpbmcgdG8gcnVuIGl0IHdpdGggcWVtdS08dGFy Z2V0Pi1zdGF0aWMKQEAgLTY3LDE1ICs2OCwxNCBAQCBwcmVfY29uZmlndXJlKCkgewogCQlwcGM2 NCopIF9hcmNoPSJsaW51eF9wb3dlcnBjNjQiOzsKIAkJcHBjKikgX2FyY2g9ImxpbnV4X3Bvd2Vy cGMiOzsKIAkJeDg2XzY0KikgX2FyY2g9ImxpbnV4X2FtZDY0Ijs7Ci0JCSopIG1zZ19lcnJvciAi JFhCUFNfVEFSR0VUX01BQ0hJTkUgaGFzIG5vdCBjcm9zcyBhcmNoIHNldCB5ZXQiOzsKIAkJZXNh YworCQljb25maWd1cmVfYXJncys9IiAtLXdpdGgtY3Jvc3MtYnVpbGQ9JF9hcmNoIgogCQkjIFJl bW92ZSAtbXNzZTQgZm9yIG5vbi14ODZfNjQgYXJjaCBiZWNhdXNlIGl0IGxlYWtzCiAJCSMgaW50 byB0aGUgdGFyZ2V0IENYWEZMQUdTLgogCQlpZiBbICIkX2FyY2giICE9ICJsaW51eF9hbWQ2NCIg XTsgdGhlbgogCQkJdnNlZCAtaSBidWlsZHMvcG9zaXgvcHJlZml4LmxpbnV4eyxfYW1kNjR9IC1l ICJzOy1tc3NlNDs7IgogCQlmaQogCWZpCi0JY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWNyb3Nz LWJ1aWxkPSRfYXJjaCIKIAogCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9IG11c2wgXTsgdGhl bgogCQl2c2VkIC1pIC1lICcvRkxBR1M9L3MvIFwtcCAvIC9nJyBcCgpGcm9tIDRhZTExMzE5NzE3 YWY4Yjk0M2JkNzdjNTVlMjBiYjFhNWVmMGRlNGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCAyMyBGZWIgMjAyMyAxMzoy MjowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQxLzE4OV0gYWJpd29yZDogYWRkIHBhdGNoIGZv ciBtdXNsIDEuMi4zKwoKLS0tCiBzcmNwa2dzL2FiaXdvcmQvcGF0Y2hlcy9tdXNsLTEuMi4zLnBh dGNoIHwgMTEgKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9hYml3b3JkL3BhdGNoZXMvbXVzbC0xLjIuMy5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYWJpd29yZC9wYXRjaGVzL211c2wtMS4yLjMucGF0Y2gg Yi9zcmNwa2dzL2FiaXdvcmQvcGF0Y2hlcy9tdXNsLTEuMi4zLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmM1ZTNiNTY5MzlkOTMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2FiaXdvcmQvcGF0Y2hlcy9tdXNsLTEuMi4zLnBhdGNoCkBAIC0wLDAgKzEs MTEgQEAKKy0tLSBzcmMvYWYveGFwL3hwL3hhcF9EaWFsb2cuY3BwCTIwMjEtMDctMDMgMTc6NDY6 MDcuMDAwMDAwMDAwICswMjAwCisrKysgLQkyMDIzLTAyLTIzIDEzOjIxOjAzLjU1NzI1NTUwNiAr MDEwMAorQEAgLTI2Nyw3ICsyNjcsNyBAQAorIC8vIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBh bmQgcmV0dXJucyB0aGUgd2luZG93IG5hbWUgb2YgYSBtb2RlbGVzcyBkaWFsb2cgYnkKKyAvLyBj b25jYXRlbmF0aW5nIHRoZSBhY3RpdmUgZnJhbWUgd2l0aCB0aGUgZGlhbG9nIG5hbWUKKyAKKy0J KnBXaW5kb3dOYW1lID0gKGNoYXIpIE5VTEw7CisrCSpwV2luZG93TmFtZSA9IChjaGFyKSAwOwor IAlVVF9VVEY4U3RyaW5nIHduID0gVVRfVVRGOFN0cmluZyhwRGlhbG9nTmFtZSk7CisgCisgCVhB UF9GcmFtZSogcEZyYW1lID0gZ2V0QWN0aXZlRnJhbWUoKTsKCkZyb20gYjJhMWFhZDgyZjYyNTM5 NGU3YWEyMmNjZDk1MjcwODUwMWU0YTlhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDIzIEZlYiAyMDIzIDE0OjA4OjQ4 ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNDIvMTg5XSBvcGVuY29sbGFkYTogYWRkIHBhdGNoIGZv ciBtdXNsIDEuMi4zKwoKLS0tCiBzcmNwa2dzL29wZW5jb2xsYWRhL3BhdGNoZXMvbXVzbC0xLjIu My5wYXRjaCB8IDExICsrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmNvbGxhZGEvcGF0Y2hlcy9tdXNsLTEu Mi4zLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuY29sbGFkYS9wYXRjaGVzL211c2wt MS4yLjMucGF0Y2ggYi9zcmNwa2dzL29wZW5jb2xsYWRhL3BhdGNoZXMvbXVzbC0xLjIuMy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wMGIyYjNlMmVmOThl Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuY29sbGFkYS9wYXRjaGVzL211c2wtMS4y LjMucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvQ09MTEFEQVN0cmVhbVdyaXRlci9zcmMv Q09MTEFEQVNXTGlicmFyeUFuaW1hdGlvbnMuY3BwCTIwMTgtMTEtMjYgMjM6NDM6MTAuMDAwMDAw MDAwICswMTAwCisrKysgLQkyMDIzLTAyLTIzIDEzOjQ3OjQyLjgxOTgxMjc1MyArMDEwMAorQEAg LTYyLDcgKzYyLDcgQEAKKyAKKyAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgTGlicmFyeUFuaW1hdGlvbnM6 OkxpYnJhcnlBbmltYXRpb25zICggQ09MTEFEQVNXOjpTdHJlYW1Xcml0ZXIgKiBzdHJlYW1Xcml0 ZXIgKQorLSAgICAgICAgICAgIDogTGlicmFyeSAoIHN0cmVhbVdyaXRlciwgQ1NXQzo6Q1NXX0VM RU1FTlRfTElCUkFSWV9BTklNQVRJT05TICksIG1PcGVuQW5pbWF0aW9ucyAoIE5VTEwgKQorKyAg ICAgICAgICAgIDogTGlicmFyeSAoIHN0cmVhbVdyaXRlciwgQ1NXQzo6Q1NXX0VMRU1FTlRfTElC UkFSWV9BTklNQVRJT05TICksIG1PcGVuQW5pbWF0aW9ucyAoIHN0ZDo6dmVjdG9yPEFuaW1hdGlv bio+IHt9ICkKKyAgICAge30KKyAKKyAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkZyb20gY2MzMGM5MDRhZjY0YjFm OTVmYWFiZGFmMDY2MTIzNDYxYTllYTg0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBUaHUsIDIzIEZlYiAyMDIzIDE0OjE2OjU1 ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNDMvMTg5XSBjaG9vc2VuaW06IGFkZCByaXNjdjY0IHRv IHRlbXBsYXRlCgotLS0KIHNyY3BrZ3MvY2hvb3NlbmltL3RlbXBsYXRlIHwgMiArKwogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hvb3Nlbmlt L3RlbXBsYXRlIGIvc3JjcGtncy9jaG9vc2VuaW0vdGVtcGxhdGUKaW5kZXggMDY0ZGJiYmRmNGQ1 Mi4uZWRjOTFiOTdhMzYxNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaG9vc2VuaW0vdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jaG9vc2VuaW0vdGVtcGxhdGUKQEAgLTMzLDYgKzMzLDggQEAgZG9fYnVp bGQoKSB7CiAJCXBwYzY0bGUqKSBhcmNoPXBvd2VycGM2NGVsOzsKIAkJcHBjNjQqKSAgIGFyY2g9 cG93ZXJwYzY0OzsKIAkJcHBjKikgICAgIGFyY2g9cG93ZXJwYzs7CisJCXJpc2N2NjQqKSBhcmNo PXJpc2N2NjQ7OworCQkqKSAgICAgICAgbXNnX2Vycm9yICJjaG9vc2VuaW06ICRYQlBTX1RBUkdF VF9NQUNISU5FIHVua25vd24gdG8gdGVtcGxhdGUiOzsKIAllc2FjCiAJTERGTEFHUys9IiAkKCRQ S0dfQ09ORklHIC0tbGlicy1vbmx5LWwgLS1zdGF0aWMgb3BlbnNzbCkiCiAJTERGTEFHUys9IiAk KCRQS0dfQ09ORklHIC0tbGlicy1vbmx5LWwgLS1zdGF0aWMgbGliYXJjaGl2ZSkiCgpGcm9tIGVm YTNhODYxYmExZGViNjMwYTQ3M2IxYzExM2UxNDFhN2Y1MTFkYWUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCAyMyBGZWIg MjAyMyAxNDoyNToyNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQ0LzE4OV0gcnVwbGFjZXI6IHVw ZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0IGNvbXBhdAoKLS0tCiBzcmNwa2dzL3J1cGxhY2Vy L3RlbXBsYXRlIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcnVwbGFjZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3J1cGxhY2VyL3Rl bXBsYXRlCmluZGV4IDc1YzI5ZjZkMzU3ZTUuLmM3ZmViNWRiZTk3NjkgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcnVwbGFjZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ydXBsYWNlci90ZW1wbGF0ZQpA QCAtMTEsNiArMTEsMTEgQEAgY2hhbmdlbG9nPSJodHRwczovL2dpdGh1Yi5jb20veW91ci10b29s cy9ydXBsYWNlci9yYXcvbWFpbi9DSEFOR0VMT0cubWQiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0 aHViLmNvbS9kbWVyZWprb3dza3kvcnVwbGFjZXIvYXJjaGl2ZS9yZWZzL3RhZ3MvdiR7dmVyc2lv bn0udGFyLmd6IgogY2hlY2tzdW09YWVkMjRmYzJiZDY4ODczM2MwMTc2YTc5Yzg3MDlhZGVlMjI1 MWY3MjFhMzQwNTk3MjkwNmI4YWM4MmIxYmE3NAogCitwcmVfYnVpbGQoKSB7CisJIyBOZXdlciBs aWJjIG5lZWRlZCBmb3IgcmlzY3Y2NAorCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAtLXBy ZWNpc2UgMC4yLjEzOQorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQog fQoKRnJvbSBmZTNhMWM0YWRkYjFkNjFlMTY3OWU3YzE4MDhjYzExN2MzYzE5ZTQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRo dSwgMjMgRmViIDIwMjMgMTQ6MjY6MTggKzAxMDAKU3ViamVjdDogW1BBVENIIDE0NS8xODldIGZh c3Rtb2Q6IHVwZGF0ZSBsaWJjIGNyYXRlIGZvciByaXNjdjY0IGNvbXBhdAoKLS0tCiBzcmNwa2dz L2Zhc3Rtb2QvdGVtcGxhdGUgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mYXN0bW9kL3RlbXBsYXRlIGIvc3JjcGtncy9mYXN0 bW9kL3RlbXBsYXRlCmluZGV4IDRjZTEyZDUwOWM4ZDQuLmFkMTZkMDRlOGU2YzQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZmFzdG1vZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Zhc3Rtb2QvdGVtcGxh dGUKQEAgLTksMyArOSw4IEBAIGxpY2Vuc2U9IkFwYWNoZS0yLjAiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRodWIuY29tL2ZhY2Vib29raW5jdWJhdG9yL2Zhc3Rtb2QiCiBkaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9mYWNlYm9va2luY3ViYXRvci9mYXN0bW9kL2FyY2hpdmUvdiR7dmVyc2lv bn0udGFyLmd6IgogY2hlY2tzdW09MGUwYzJkNTA0ODljOTBjYjhjODkwNDc3MmJlMmU5ZDMxMzUz ZmJlZDgxNGQ5MDg4ZWU2MDEzYzI3YzJkMTExYgorCitwcmVfYnVpbGQoKSB7CisJIyBOZXdlciBs aWJjIG5lZWRlZCBmb3IgcmlzY3Y2NAorCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAtLXBy ZWNpc2UgMC4yLjEzOQorfQoKRnJvbSAzODU3OGI0YTY0YWE4NzFiNjNmMTFlNTY1OGVmMGYzMjZl YmZkYTYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRv ci5kZXY+CkRhdGU6IEZyaSwgMjQgRmViIDIwMjMgMTM6NDY6MzEgKzAxMDAKU3ViamVjdDogW1BB VENIIDE0Ni8xODldIG9iczogYWRkIGx1YWppdCBidWlsZG9wdGlvbgoKLS0tCiBzcmNwa2dzL29i cy90ZW1wbGF0ZSB8IDEzICsrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb2JzL3RlbXBsYXRl IGIvc3JjcGtncy9vYnMvdGVtcGxhdGUKaW5kZXggN2I2OWM2MzBkMzBkNC4uN2FjNzIxMWZkYmFk YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9vYnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vYnMvdGVt cGxhdGUKQEAgLTIsMTIgKzIsMTMgQEAKIHBrZ25hbWU9b2JzCiB2ZXJzaW9uPTI5LjEuMgogcmV2 aXNpb249MQotYXJjaHM9Imk2ODYqIHg4Nl82NCogcHBjNjRsZSogYWFyY2g2NCoiCithcmNocz0i aTY4NiogeDg2XzY0KiBwcGM2NGxlKiBhYXJjaDY0KiByaXNjdjY0KiIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBjb25maWd1cmVfYXJncz0iLURPQlNfVkVSU0lPTl9PVkVSUklERT0ke3ZlcnNpb259IC1E RU5BQkxFX0pBQ0s9T04KLSAtREVOQUJMRV9WU1Q9T0ZGIC1ERU5BQkxFX0FKQT1PRkYgLURDQUxN X0RFUFJFQ0FUSU9OPU9OIgorIC1ERU5BQkxFX1ZTVD1PRkYgLURFTkFCTEVfQUpBPU9GRiAtRENB TE1fREVQUkVDQVRJT049T04KKyAtREVOQUJMRV9TQ1JJUFRJTkdfTFVBPSQodm9wdF9pZiBsdWFq aXQgJ09OJyAnT0ZGJykiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgc3dpZyBweXRob24z LWRldmVsIHF0Ni1iYXNlIgotbWFrZWRlcGVuZHM9Ikx1YUpJVC1kZXZlbCBmZGstYWFjLWRldmVs IGZmbXBlZy1kZXZlbCBnbHUtZGV2ZWwKK21ha2VkZXBlbmRzPSIkKHZvcHRfaWYgbHVhaml0IEx1 YUpJVC1kZXZlbCkgZmRrLWFhYy1kZXZlbCBmZm1wZWctZGV2ZWwgZ2x1LWRldmVsCiAgamFjay1k ZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYmN1cmwtZGV2ZWwgbGlidmEtZGV2ZWwKICBwdWxz ZWF1ZGlvLWRldmVsIHB5dGhvbjMtZGV2ZWwgc3BlZXhkc3AtZGV2ZWwgdjRsLXV0aWxzLWRldmVs CiAgdmxjLWRldmVsIHF0Ni1zdmctZGV2ZWwgeDI2NC1kZXZlbCBtYmVkdGxzLWRldmVsIGphbnNz b24tZGV2ZWwKQEAgLTIyLDYgKzIzLDEyIEBAIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRodWIuY29t L29ic3Byb2plY3Qvb2JzLXN0dWRpby9yZWxlYXNlcyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL29ic3Byb2plY3Qvb2JzLXN0dWRpby9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6Igog Y2hlY2tzdW09MjE1ZjFmYTU3NzJjNWRkOWYzZDZlMzViMGNiNTczOTEyYjAwMzIwMTQ5NjY2YTc3 ODY0ZjlkMzA1NTI1NTA0YgogCitidWlsZF9vcHRpb25zPSJsdWFqaXQiCitjYXNlICRYQlBTX1RB UkdFVF9NQUNISU5FIGluCisJcmlzY3Y2NCopOzsKKwkqKSBidWlsZF9vcHRpb25zX2RlZmF1bHQ9 Imx1YWppdCI7OworZXNhYworCiBwcmVfY29uZmlndXJlKCkgewogCSMgaXQncyBub3QgZW5vdWdo IHRvIHVzZSAtREVOQUJMRV9CUk9XU0VSIC4uLgogCXRvdWNoIHBsdWdpbnMvb2JzLWJyb3dzZXIv Q01ha2VMaXN0cy50eHQKCkZyb20gNmVlMzQzMzhlOWJhM2FiMTUxNWQ3MTg1YzIxZjQ1MzIwOWU2 MzU4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBTdW4sIDEyIE1hciAyMDIzIDIyOjAwOjAwICswMTAwClN1YmplY3Q6IFtQQVRD SCAxNDcvMTg5XSBsaW51eDYuMjogdXBkYXRlIHRvIDYuMi4yLgoKLS0tCiAuLi5vcm0tQWRkLXNu cHMtZHdtYWMtNS4yMC1JUC1jb21wYXRpYmwucGF0Y2ggfCAgMzIgKysKIC4uLnNucHMtZHdtYWMt QWRkLWFuLW9wdGlvbmFsLXJlc2V0cy1zaS5wYXRjaCB8ICA0OCArKwogLi4uaXZlLWpoNzExMC1B ZGQtZXRoZXJuZXQtZGV2aWNlLW5vZGVzLnBhdGNoIHwgMTI1ICsrKysrCiAuLi5kLWdsdWUtbGF5 ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0Y2ggfCAxOTkgKysrKysrKysKIC4uLnN0YXJm aXZlLWpoNzExMC1kd21hYy1BZGQtc3RhcmZpdmUtcy5wYXRjaCB8ICA0NyArKwogLi4uZml2ZV9k bWFjLUFkZC1waHktaW50ZXJmYWNlLXNldHRpbmdzLnBhdGNoIHwgIDk3ICsrKysKIC4uLnZlLWpo NzExMC1BZGQtc3lzY29uLXRvLXN1cHBvcnQtcGh5LS5wYXRjaCB8ICAzNyArKwogLi4udmUtdmlz aW9uZml2ZS0yLXYxLjNiLUFkZC1nbWFjLXBoeS1zLnBhdGNoIHwgIDU1ICsrKwogLi4udmUtdmlz aW9uZml2ZS0yLXYxLjJhLUFkZC1nbWFjLXBoeS1zLnBhdGNoIHwgIDQxICsrCiAuLi52ZS12aXNp b25maXZlLTItRW5hYmxlLWdtYWMtZGV2aWNlLXQucGF0Y2ggfCAgNDUgKysKIC4uLmRpbmdzLW5l dC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1kd21hYy5wYXRjaCB8ICAzMSArKwogLi4uLWdsdWUtbGF5 ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0NzLnBhdGNoIHwgMTkyICsrKysrKysKIC4uLmV0LUFk ZC1Nb3RvcmNvbW0teXQ4eHh4LWV0aGVybmV0LXBoeS5wYXRjaCB8IDE2NyArKysrKysrCiAuLi5t YWNyby1mb3ItTW90b3Jjb21tLXl0ODUyMS15dDg1MzEtZ2kucGF0Y2ggfCAxMTEgKysrKysKIC4u LnN1cHBvcnQtZm9yLU1vdG9yY29tbS15dDg1MjEtZ2lnYWJpdC5wYXRjaCB8IDM0NyArKysrKysr KysrKysrCiAuLi5zdXBwb3J0LWZvci1Nb3RvcmNvbW0teXQ4NTMxcy1naWdhYmkucGF0Y2ggfCAx MDQgKysrKwogLi4uZXItZm9yLU1vdG9yY29tbS15dDg1MzEtZ2lnYWJpdC1ldGhlLnBhdGNoIHwg MzA4ICsrKysrKysrKysrKwogLi4uZGluZ3MtaHdtb24tQWRkLXN0YXJmaXZlLWpoNzF4MC10ZW1w LnBhdGNoIHwgIDk1ICsrKysKIC4uLmQtU3RhckZpdmUtSkg3MXgwLXRlbXBlcmF0dXJlLXNlbnNv ci5wYXRjaCB8IDQ2NyArKysrKysrKysrKysrKysrKysKIDE5IGZpbGVzIGNoYW5nZWQsIDI1NDgg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hl cy8wMDUxLW5ldC1zdG1tYWMtcGxhdGZvcm0tQWRkLXNucHMtZHdtYWMtNS4yMC1JUC1jb21wYXRp YmwucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1 Mi1kdC1iaW5kaW5ncy1uZXQtc25wcy1kd21hYy1BZGQtYW4tb3B0aW9uYWwtcmVzZXRzLXNpLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTQtcmlz Y3YtZHRzLXN0YXJmaXZlLWpoNzExMC1BZGQtZXRoZXJuZXQtZGV2aWNlLW5vZGVzLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTUtbmV0LXN0bW1h Yy1BZGQtZ2x1ZS1sYXllci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU2LWR0LWJpbmRpbmdzLW5ldC1z dGFyZml2ZS1qaDcxMTAtZHdtYWMtQWRkLXN0YXJmaXZlLXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1Ny1uZXQtc3RtbWFjLXN0YXJmaXZlX2Rt YWMtQWRkLXBoeS1pbnRlcmZhY2Utc2V0dGluZ3MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1OC1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFk ZC1zeXNjb24tdG8tc3VwcG9ydC1waHktLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saW51eDYuMi9wYXRjaGVzLzAwNTktcmlzY3YtZHRzLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12 MS4zYi1BZGQtZ21hYy1waHktcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlu dXg2LjIvcGF0Y2hlcy8wMDYwLXJpc2N2LWR0cy1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuMmEt QWRkLWdtYWMtcGh5LXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4y L3BhdGNoZXMvMDA2MS1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLUVuYWJsZS1nbWFj LWRldmljZS10LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRj aGVzLzAwNjItZHQtYmluZGluZ3MtbmV0LUFkZC1zdXBwb3J0LVN0YXJGaXZlLWR3bWFjLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjMtbmV0LXN0 bW1hYy1BZGQtZ2x1ZS1sYXllci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQ3MucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2NC1kdC1iaW5kaW5ncy1u ZXQtQWRkLU1vdG9yY29tbS15dDh4eHgtZXRoZXJuZXQtcGh5LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjUtbmV0LXBoeS1BZGQtQklULW1hY3Jv LWZvci1Nb3RvcmNvbW0teXQ4NTIxLXl0ODUzMS1naS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY2LW5ldC1waHktQWRkLWR0cy1zdXBwb3J0LWZv ci1Nb3RvcmNvbW0teXQ4NTIxLWdpZ2FiaXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2Ny1uZXQtcGh5LUFkZC1kdHMtc3VwcG9ydC1mb3ItTW90 b3Jjb21tLXl0ODUzMXMtZ2lnYWJpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s aW51eDYuMi9wYXRjaGVzLzAwNjgtbmV0LXBoeS1BZGQtZHJpdmVyLWZvci1Nb3RvcmNvbW0teXQ4 NTMxLWdpZ2FiaXQtZXRoZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2 LjIvcGF0Y2hlcy8wMDY5LWR0LWJpbmRpbmdzLWh3bW9uLUFkZC1zdGFyZml2ZS1qaDcxeDAtdGVt cC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDcw LWh3bW9uLXNmY3RlbXAtQWRkLVN0YXJGaXZlLUpINzF4MC10ZW1wZXJhdHVyZS1zZW5zb3IucGF0 Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1MS1uZXQtc3RtbWFj LXBsYXRmb3JtLUFkZC1zbnBzLWR3bWFjLTUuMjAtSVAtY29tcGF0aWJsLnBhdGNoIGIvc3JjcGtn cy9saW51eDYuMi9wYXRjaGVzLzAwNTEtbmV0LXN0bW1hYy1wbGF0Zm9ybS1BZGQtc25wcy1kd21h Yy01LjIwLUlQLWNvbXBhdGlibC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi45ODRmMGZlNWE1ODY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51 eDYuMi9wYXRjaGVzLzAwNTEtbmV0LXN0bW1hYy1wbGF0Zm9ybS1BZGQtc25wcy1kd21hYy01LjIw LUlQLWNvbXBhdGlibC5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIDIzOGYzMTViYmNlYmU5 ZDQxNjhiNWQ3NWNmZjRhOWFmN2IzOGJjN2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorRGF0ZTogRnJpLCAzIE1h ciAyMDIzIDE2OjU5OjE4ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNTEvNzBdIG5ldDogc3RtbWFj OiBwbGF0Zm9ybTogQWRkIHNucHMsZHdtYWMtNS4yMCBJUAorIGNvbXBhdGlibGUgc3RyaW5nCisK K0FkZCAic25wcyxkd21hYy01LjIwIiBjb21wYXRpYmxlIHN0cmluZyBmb3IgNS4yMCB2ZXJzaW9u IHRoYXQgY2FuIGF2b2lkCit0byBkZWZpbmUgc29tZSBwbGF0Zm9ybSBkYXRhIGluIHRoZSBnbHVl IGxheWVyLgorCitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVz bWlsLmRrPgorU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNo LmNvbT4KKy0tLQorIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19w bGF0Zm9ybS5jIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfcGxhdGZvcm0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3Rt bWFjL3N0bW1hY19wbGF0Zm9ybS5jCitpbmRleCAwMDQ2YTRlZTZlNjQuLjgwN2VjYTdlZGY1MyAx MDA2NDQKKy0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19w bGF0Zm9ybS5jCisrKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1t YWNfcGxhdGZvcm0uYworQEAgLTUxOSw3ICs1MTksOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0 KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpCisgCWlmIChvZl9kZXZpY2Vf aXNfY29tcGF0aWJsZShucCwgInNucHMsZHdtYWMtNC4wMCIpIHx8CisgCSAgICBvZl9kZXZpY2Vf aXNfY29tcGF0aWJsZShucCwgInNucHMsZHdtYWMtNC4xMGEiKSB8fAorIAkgICAgb2ZfZGV2aWNl X2lzX2NvbXBhdGlibGUobnAsICJzbnBzLGR3bWFjLTQuMjBhIikgfHwKKy0JICAgIG9mX2Rldmlj ZV9pc19jb21wYXRpYmxlKG5wLCAic25wcyxkd21hYy01LjEwYSIpKSB7CisrCSAgICBvZl9kZXZp Y2VfaXNfY29tcGF0aWJsZShucCwgInNucHMsZHdtYWMtNS4xMGEiKSB8fAorKwkgICAgb2ZfZGV2 aWNlX2lzX2NvbXBhdGlibGUobnAsICJzbnBzLGR3bWFjLTUuMjAiKSkgeworIAkJcGxhdC0+aGFz X2dtYWM0ID0gMTsKKyAJCXBsYXQtPmhhc19nbWFjID0gMDsKKyAJCXBsYXQtPnBtdCA9IDE7Cist LSAKKzIuMzkuMgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1Mi1k dC1iaW5kaW5ncy1uZXQtc25wcy1kd21hYy1BZGQtYW4tb3B0aW9uYWwtcmVzZXRzLXNpLnBhdGNo IGIvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTItZHQtYmluZGluZ3MtbmV0LXNucHMtZHdt YWMtQWRkLWFuLW9wdGlvbmFsLXJlc2V0cy1zaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwLi44YTQzMmMyMTk3MmJjCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTItZHQtYmluZGluZ3MtbmV0LXNucHMtZHdtYWMtQWRk LWFuLW9wdGlvbmFsLXJlc2V0cy1zaS5wYXRjaApAQCAtMCwwICsxLDQ4IEBACitGcm9tIDRmNmE5 YThhY2I5YjlkYTBmM2JlZTgwYzQ2ODAwZDc1OTNkYjg1MWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTog RnJpLCAzIE1hciAyMDIzIDE2OjU5OjE5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNTIvNzBdIGR0 LWJpbmRpbmdzOiBuZXQ6IHNucHMsZHdtYWM6IEFkZCBhbiBvcHRpb25hbCByZXNldHMKKyBzaW5n bGUgJ2FoYicKKworQWNjb3JkaW5nIHRvOgorc3RtbWFjX3BsYXRmb3JtLmM6IHN0bW1hY19wcm9i ZV9jb25maWdfZHQKK3N0bW1hY19tYWluLmM6IHN0bW1hY19kdnJfcHJvYmUKKworZHdtYWMgY29u dHJvbGxlciBtYXkgcmVxdWlyZSBvbmUgKHN0bW1hY2V0aCkgb3IgdHdvIChzdG1tYWNldGgrYWhi KQorcmVzZXQgc2lnbmFscywgYW5kIHRoZSBtYXhJdGVtcyBvZiByZXNldHMvcmVzZXQtbmFtZXMg aXMgZ29pbmcgdG8gYmUgMi4KKworU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9A c3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBz LGR3bWFjLnlhbWwgICAgICAgIHwgMTQgKysrKysrKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKK2luZGV4IGI0MTM1 ZDUyOTdiNC4uODkwOTlhODg4ZjBiIDEwMDY0NAorLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sCitAQCAtMTMzLDEyICsxMzMsMTgg QEAgcHJvcGVydGllczoKKyAgICAgICAgIC0gcHRwX3JlZgorIAorICAgcmVzZXRzOgorLSAgICBt YXhJdGVtczogMQorLSAgICBkZXNjcmlwdGlvbjoKKy0gICAgICBNQUMgUmVzZXQgc2lnbmFsLgor KyAgICBtaW5JdGVtczogMQorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBHTUFD IHN0bW1hY2V0aCByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IEFIQiByZXNldAorIAorICAg cmVzZXQtbmFtZXM6CistICAgIGNvbnN0OiBzdG1tYWNldGgKKysgICAgbWluSXRlbXM6IDEKKysg ICAgbWF4SXRlbXM6IDIKKysgICAgY29udGFpbnM6CisrICAgICAgZW51bToKKysgICAgICAgIC0g c3RtbWFjZXRoCisrICAgICAgICAtIGFoYgorIAorICAgcG93ZXItZG9tYWluczoKKyAgICAgbWF4 SXRlbXM6IDEKKy0tIAorMi4zOS4yCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0 Y2hlcy8wMDU0LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLWV0aGVybmV0LWRldmljZS1u b2Rlcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU0LXJpc2N2LWR0cy1zdGFy Zml2ZS1qaDcxMTAtQWRkLWV0aGVybmV0LWRldmljZS1ub2Rlcy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wZTliMjU3NThhZDExCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTQtcmlzY3YtZHRzLXN0YXJmaXZlLWpo NzExMC1BZGQtZXRoZXJuZXQtZGV2aWNlLW5vZGVzLnBhdGNoCkBAIC0wLDAgKzEsMTI1IEBACitG cm9tIDQ2MzU1ODMwYTAxMGUzMGIxMWQwMmRhOTM5ZDFiNzIxNGRkMGU0ZTAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29t PgorRGF0ZTogRnJpLCAzIE1hciAyMDIzIDE2OjU5OjIxICswODAwCitTdWJqZWN0OiBbUEFUQ0gg NTQvNzBdIHJpc2N2OiBkdHM6IHN0YXJmaXZlOiBqaDcxMTA6IEFkZCBldGhlcm5ldCBkZXZpY2Ug bm9kZXMKKworQWRkIEpINzExMCBldGhlcm5ldCBkZXZpY2Ugbm9kZSB0byBzdXBwb3J0IGdtYWMg ZHJpdmVyIGZvciB0aGUgSkg3MTEwCitSSVNDLVYgU29DLgorCitTaWduZWQtb2ZmLWJ5OiBZYW5o b25nIFdhbmcgPHlhbmhvbmcud2FuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTog U2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGFyY2gvcmlzY3Yv Ym9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgfCA5MSArKysrKysrKysrKysrKysrKysrKysr KysKKyAxIGZpbGUgY2hhbmdlZCwgOTEgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXJj aC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9k dHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK2luZGV4IDM3MjRjMmM5MDM1YS4uYjBlODcxOTg4MDhh IDEwMDY0NAorLS0tIGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQor KysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorQEAgLTIzNCw2 ICsyMzQsMTMgQEAgaTJzcnhfbHJja19leHQ6IGkyc3J4LWxyY2stZXh0LWNsb2NrIHsKKyAJCSNj bG9jay1jZWxscyA9IDwwPjsKKyAJfTsKKyAKKysJc3RtbWFjX2F4aV9zZXR1cDogc3RtbWFjLWF4 aS1jb25maWcgeworKwkJc25wcyxscGlfZW47CisrCQlzbnBzLHdyX29zcl9sbXQgPSA8ND47Cisr CQlzbnBzLHJkX29zcl9sbXQgPSA8ND47CisrCQlzbnBzLGJsZW4gPSA8MjU2IDEyOCA2NCAzMiAw IDAgMD47CisrCX07CisrCisgCXRkbV9leHQ6IHRkbS1leHQtY2xvY2sgeworIAkJY29tcGF0aWJs ZSA9ICJmaXhlZC1jbG9jayI7CisgCQljbG9jay1vdXRwdXQtbmFtZXMgPSAidGRtX2V4dCI7CitA QCAtNjU4LDUgKzY2NSw4OSBAQCBtbWMxOiBtbWNAMTYwMjAwMDAgeworIAkJCXN0YXJmaXZlLHN5 c3JlZyA9IDwmc3lzX3N5c2NvbiAweDljIDB4MSAweDNlPjsKKyAJCQlzdGF0dXMgPSAiZGlzYWJs ZWQiOworIAkJfTsKKysKKysgICAgICAgICAgICAgICBnbWFjMDogZXRoZXJuZXRAMTYwMzAwMDAg eworKyAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAt ZHdtYWMiLCAic25wcyxkd21hYy01LjIwIjsKKysgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9 IDwweDAgMHgxNjAzMDAwMCAweDAgMHgxMDAwMD47CisrICAgICAgICAgICAgICAgICAgICAgICBj bG9ja3MgPSA8JmFvbmNyZyBKSDcxMTBfQU9OQ0xLX0dNQUMwX0FYST4sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8JmFvbmNyZyBKSDcxMTBfQU9OQ0xLX0dNQUMwX0FIQj4sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dN QUMwX1BUUD4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JmFvbmNyZyBKSDcx MTBfQU9OQ0xLX0dNQUMwX1RYX0lOVj4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMwX0dUWEM+OworKyAgICAgICAgICAgICAgICAg ICAgICAgY2xvY2stbmFtZXMgPSAic3RtbWFjZXRoIiwgInBjbGsiLCAicHRwX3JlZiIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eCIsICJndHgiOworKyAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXRzID0gPCZhb25jcmcgSkg3MTEwX0FPTlJTVF9HTUFDMF9BWEk+ LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZhb25jcmcgSkg3MTEwX0FPTlJT VF9HTUFDMF9BSEI+OworKyAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQtbmFtZXMgPSAic3Rt bWFjZXRoIiwgImFoYiI7CisrICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPDc+ LCA8Nj4sIDw1PjsKKysgICAgICAgICAgICAgICAgICAgICAgIGludGVycnVwdC1uYW1lcyA9ICJt YWNpcnEiLCAiZXRoX3dha2VfaXJxIiwgImV0aF9scGkiOworKyAgICAgICAgICAgICAgICAgICAg ICAgcGh5LW1vZGUgPSAicmdtaWktaWQiOworKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyxt dWx0aWNhc3QtZmlsdGVyLWJpbnMgPSA8NjQ+OworKyAgICAgICAgICAgICAgICAgICAgICAgc25w cyxwZXJmZWN0LWZpbHRlci1lbnRyaWVzID0gPDg+OworKyAgICAgICAgICAgICAgICAgICAgICAg cngtZmlmby1kZXB0aCA9IDwyMDQ4PjsKKysgICAgICAgICAgICAgICAgICAgICAgIHR4LWZpZm8t ZGVwdGggPSA8MjA0OD47CisrICAgICAgICAgICAgICAgICAgICAgICBzbnBzLGZpeGVkLWJ1cnN0 OworKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyxuby1wYmwteDg7CisrICAgICAgICAgICAg ICAgICAgICAgICBzbnBzLGZvcmNlX3RocmVzaF9kbWFfbW9kZTsKKysgICAgICAgICAgICAgICAg ICAgICAgIHNucHMsYXhpLWNvbmZpZyA9IDwmc3RtbWFjX2F4aV9zZXR1cD47CisrICAgICAgICAg ICAgICAgICAgICAgICBzbnBzLHRzbzsKKysgICAgICAgICAgICAgICAgICAgICAgIHNucHMsZW4t dHgtbHBpLWNsb2NrZ2F0aW5nOworKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyx0eHBibCA9 IDwxNj47CisrICAgICAgICAgICAgICAgICAgICAgICBzbnBzLHJ4cGJsID0gPDE2PjsKKysgICAg ICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICJkaXNhYmxlZCI7CisrICAgICAgICAgICAgICAg ICAgICAgICBwaHktaGFuZGxlID0gPCZwaHkwPjsKKysKKysgICAgICAgICAgICAgICAgICAgICAg IG1kaW8geworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9 IDwxPjsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAic25wcyxkd21h Yy1tZGlvIjsKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGh5MDogZXRoZXJu ZXQtcGh5QDAgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyA9 IDwwPjsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKysgICAgICAgICAgICAg ICAgICAgICAgIH07CisrICAgICAgICAgICAgICAgfTsKKysKKysgICAgICAgICAgICAgICBnbWFj MTogZXRoZXJuZXRAMTYwNDAwMDAgeworKyAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMTAtZHdtYWMiLCAic25wcyxkd21hYy01LjIwIjsKKysgICAgICAg ICAgICAgICAgICAgICAgIHJlZyA9IDwweDAgMHgxNjA0MDAwMCAweDAgMHgxMDAwMD47CisrICAg ICAgICAgICAgICAgICAgICAgICBjbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMx X0FYST4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBf U1lTQ0xLX0dNQUMxX0FIQj4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JnN5 c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1BUUD4sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1RYX0lOVj4sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX0dUWEM+ OworKyAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stbmFtZXMgPSAic3RtbWFjZXRoIiwgInBj bGsiLCAicHRwX3JlZiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0 eCIsICJndHgiOworKyAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRzID0gPCZzeXNjcmcgSkg3 MTEwX1NZU1JTVF9HTUFDMV9BWEk+LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9HTUFDMV9BSEI+OworKyAgICAgICAgICAgICAgICAgICAg ICAgcmVzZXQtbmFtZXMgPSAic3RtbWFjZXRoIiwgImFoYiI7CisrICAgICAgICAgICAgICAgICAg ICAgICBpbnRlcnJ1cHRzID0gPDc4PiwgPDc3PiwgPDc2PjsKKysgICAgICAgICAgICAgICAgICAg ICAgIGludGVycnVwdC1uYW1lcyA9ICJtYWNpcnEiLCAiZXRoX3dha2VfaXJxIiwgImV0aF9scGki OworKyAgICAgICAgICAgICAgICAgICAgICAgcGh5LW1vZGUgPSAicmdtaWktaWQiOworKyAgICAg ICAgICAgICAgICAgICAgICAgc25wcyxtdWx0aWNhc3QtZmlsdGVyLWJpbnMgPSA8NjQ+OworKyAg ICAgICAgICAgICAgICAgICAgICAgc25wcyxwZXJmZWN0LWZpbHRlci1lbnRyaWVzID0gPDg+Owor KyAgICAgICAgICAgICAgICAgICAgICAgcngtZmlmby1kZXB0aCA9IDwyMDQ4PjsKKysgICAgICAg ICAgICAgICAgICAgICAgIHR4LWZpZm8tZGVwdGggPSA8MjA0OD47CisrICAgICAgICAgICAgICAg ICAgICAgICBzbnBzLGZpeGVkLWJ1cnN0OworKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyxu by1wYmwteDg7CisrICAgICAgICAgICAgICAgICAgICAgICBzbnBzLGZvcmNlX3RocmVzaF9kbWFf bW9kZTsKKysgICAgICAgICAgICAgICAgICAgICAgIHNucHMsYXhpLWNvbmZpZyA9IDwmc3RtbWFj X2F4aV9zZXR1cD47CisrICAgICAgICAgICAgICAgICAgICAgICBzbnBzLHRzbzsKKysgICAgICAg ICAgICAgICAgICAgICAgIHNucHMsZW4tdHgtbHBpLWNsb2NrZ2F0aW5nOworKyAgICAgICAgICAg ICAgICAgICAgICAgc25wcyx0eHBibCA9IDwxNj47CisrICAgICAgICAgICAgICAgICAgICAgICBz bnBzLHJ4cGJsID0gPDE2PjsKKysgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICJkaXNh YmxlZCI7CisrICAgICAgICAgICAgICAgICAgICAgICBwaHktaGFuZGxlID0gPCZwaHkxPjsKKysK KysgICAgICAgICAgICAgICAgICAgICAgIG1kaW8geworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwxPjsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgI3NpemUtY2VsbHMgPSA8MD47CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXBhdGlibGUgPSAic25wcyxkd21hYy1tZGlvIjsKKysKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGh5MTogZXRoZXJuZXQtcGh5QDEgeworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlZyA9IDwwPjsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfTsKKysgICAgICAgICAgICAgICAgICAgICAgIH07CisrICAgICAgICAgICAgICAgfTsK KyAJfTsKKyB9OworLS0gCisyLjM5LjIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9w YXRjaGVzLzAwNTUtbmV0LXN0bW1hYy1BZGQtZ2x1ZS1sYXllci1mb3ItU3RhckZpdmUtSkg3MTEw LVNvQy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU1LW5ldC1zdG1tYWMtQWRk LWdsdWUtbGF5ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOTdmMTUyN2IyN2UxYwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU1LW5ldC1zdG1tYWMtQWRkLWdsdWUtbGF5 ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0Y2gKQEAgLTAsMCArMSwxOTkgQEAKK0Zyb20g YmQxMDZkYzkyMzQ4MmU5YzZiOGZjOTZlMDRlZjAzYWIzZjM3ZjQ3ZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CitE YXRlOiBGcmksIDMgTWFyIDIwMjMgMTY6NTk6MjIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1NS83 MF0gbmV0OiBzdG1tYWM6IEFkZCBnbHVlIGxheWVyIGZvciBTdGFyRml2ZSBKSDcxMTAgU29DCisK K1RoaXMgYWRkcyBTdGFyRml2ZSBkd21hYyBkcml2ZXIgc3VwcG9ydCBvbiB0aGUgU3RhckZpdmUg Skg3MTEwIFNvQy4KKworQ28tZGV2ZWxvcGVkLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2Vy bmVsQGVzbWlsLmRrPgorU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5l bEBlc21pbC5kaz4KK1NpZ25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZl dGVjaC5jb20+CistLS0KKyBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKworIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25m aWcgICB8ICAxMiArKworIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2Vm aWxlICB8ICAgMSArCisgLi4uL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZl LmMgIHwgMTI1ICsrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2Vy dGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYworCitkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9N QUlOVEFJTkVSUworaW5kZXggMzE1NjBkMTNhZmVkLi44ZmYxMTIxNTZlMWYgMTAwNjQ0CistLS0g YS9NQUlOVEFJTkVSUworKysrIGIvTUFJTlRBSU5FUlMKK0BAIC0xOTkxNSw2ICsxOTkxNSw3IEBA IFNUQVJGSVZFIERXTUFDIEdMVUUgTEFZRVIKKyBNOglFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2Vy bmVsQGVzbWlsLmRrPgorIE06CVNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+ CisgUzoJTWFpbnRhaW5lZAorK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9u ZXQvZHdtYWMtc3RhcmZpdmUuYworIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwKKyAKKyBTVEFSRklWRSBKSDcxWDAgQ0xP Q0sgRFJJVkVSUworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3Rt bWFjL0tjb25maWcgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmln CitpbmRleCBmNzc1MTFmZTRlODcuLjQ3ZmJjY2VmOWQwNCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcKKysrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcKK0BAIC0xNjUsNiArMTY1LDE4IEBAIGNvbmZp ZyBEV01BQ19TT0NGUEdBCisgCSAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBk cml2ZXIgaXMgdXNlZCBmb3IKKyAJICBhcnJpYTUgYW5kIGN5Y2xvbmU1IEZQR0EgU29Dcy4KKyAK Kytjb25maWcgRFdNQUNfU1RBUkZJVkUKKysJdHJpc3RhdGUgIlN0YXJGaXZlIGR3bWFjIHN1cHBv cnQiCisrCWRlcGVuZHMgb24gT0YgICYmIChBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVCkK KysJZGVwZW5kcyBvbiBTVE1NQUNfRVRICisrCWRlZmF1bHQgQVJDSF9TVEFSRklWRQorKwloZWxw CisrCSAgU3VwcG9ydCBmb3IgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gU3RhckZpdmUgUklTQy1W IFNvQ3MKKysKKysJICBUaGlzIHNlbGVjdHMgdGhlIFN0YXJGaXZlIHBsYXRmb3JtIHNwZWNpZmlj IGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IKKysJICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRo aXMgZHJpdmVyIGlzIHVzZWQgZm9yIFN0YXJGaXZlIEpINzExMAorKwkgIGV0aGVybmV0IGNvbnRy b2xsZXIuCisrCisgY29uZmlnIERXTUFDX1NUSQorIAl0cmlzdGF0ZSAiU1RpIEdNQUMgc3VwcG9y dCIKKyAJZGVmYXVsdCBBUkNIX1NUSQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvTWFrZWZpbGUKK2luZGV4IDA1N2U0YmFiNWMwOC4uODczOGZkYmI0YjJkIDEwMDY0NAor LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUKKysrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlCitAQCAtMjMsNiAr MjMsNyBAQCBvYmotJChDT05GSUdfRFdNQUNfT1hOQVMpCSs9IGR3bWFjLW94bmFzLm8KKyBvYmot JChDT05GSUdfRFdNQUNfUUNPTV9FVEhRT1MpCSs9IGR3bWFjLXFjb20tZXRocW9zLm8KKyBvYmot JChDT05GSUdfRFdNQUNfUk9DS0NISVApCSs9IGR3bWFjLXJrLm8KKyBvYmotJChDT05GSUdfRFdN QUNfU09DRlBHQSkJKz0gZHdtYWMtYWx0ci1zb2NmcGdhLm8KKytvYmotJChDT05GSUdfRFdNQUNf U1RBUkZJVkUpCSs9IGR3bWFjLXN0YXJmaXZlLm8KKyBvYmotJChDT05GSUdfRFdNQUNfU1RJKQkJ Kz0gZHdtYWMtc3RpLm8KKyBvYmotJChDT05GSUdfRFdNQUNfU1RNMzIpCSs9IGR3bWFjLXN0bTMy Lm8KKyBvYmotJChDT05GSUdfRFdNQUNfU1VOWEkpCSs9IGR3bWFjLXN1bnhpLm8KK2RpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNTY2Mzc4MzA2ZjY3Cist LS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9k d21hYy1zdGFyZml2ZS5jCitAQCAtMCwwICsxLDEyNSBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wKworKy8qCisrICogU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVy CisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0 ZC4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBl c21pbC5kaz4KKysgKgorKyAqLworKworKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKysK KysjaW5jbHVkZSAic3RtbWFjX3BsYXRmb3JtLmgiCisrCisrc3RydWN0IHN0YXJmaXZlX2R3bWFj IHsKKysJc3RydWN0IGRldmljZSAqZGV2OworKwlzdHJ1Y3QgY2xrICpjbGtfdHg7CisrCXN0cnVj dCBjbGsgKmNsa19ndHg7CisrCWJvb2wgdHhfdXNlX3JnbWlpX3J4aW5fY2xrOworK307CisrCisr c3RhdGljIHZvaWQgc3RhcmZpdmVfZXRoX2ZpeF9tYWNfc3BlZWQodm9pZCAqcHJpdiwgdW5zaWdu ZWQgaW50IHNwZWVkKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2R3bWFjICpkd21hYyA9IHByaXY7 CisrCXVuc2lnbmVkIGxvbmcgcmF0ZTsKKysJaW50IGVycjsKKysKKysJLyogR2VuZXJhbGx5LCB0 aGUgcmdtaWlfdHggY2xvY2sgaXMgcHJvdmlkZWQgYnkgdGhlIGludGVybmFsIGNsb2NrLAorKwkg KiB3aGljaCBuZWVkcyB0byBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBjbG9jayBmcmVxdWVuY3kg YWNjb3JkaW5nCisrCSAqIHRvIGRpZmZlcmVudCBzcGVlZHMuIElmIHRoZSByZ21paV90eCBjbG9j ayBpcyBwcm92aWRlZCBieSB0aGUKKysJICogZXh0ZXJuYWwgcmdtaWlfcnhpbiwgdGhlcmUgaXMg bm8gbmVlZCB0byBjb25maWd1cmUgdGhlIGNsb2NrCisrCSAqIGludGVybmFsbHksIGJlY2F1c2Ug cmdtaWlfcnhpbiB3aWxsIGJlIGFkYXB0aXZlbHkgYWRqdXN0ZWQuCisrCSAqLworKwlpZiAoZHdt YWMtPnR4X3VzZV9yZ21paV9yeGluX2NsaykKKysJCXJldHVybjsKKysKKysJc3dpdGNoIChzcGVl ZCkgeworKwljYXNlIFNQRUVEXzEwMDA6CisrCQlyYXRlID0gMTI1MDAwMDAwOworKwkJYnJlYWs7 CisrCWNhc2UgU1BFRURfMTAwOgorKwkJcmF0ZSA9IDI1MDAwMDAwOworKwkJYnJlYWs7CisrCWNh c2UgU1BFRURfMTA6CisrCQlyYXRlID0gMjUwMDAwMDsKKysJCWJyZWFrOworKwlkZWZhdWx0Ogor KwkJZGV2X2Vycihkd21hYy0+ZGV2LCAiaW52YWxpZCBzcGVlZCAldVxuIiwgc3BlZWQpOworKwkJ YnJlYWs7CisrCX0KKysKKysJZXJyID0gY2xrX3NldF9yYXRlKGR3bWFjLT5jbGtfdHgsIHJhdGUp OworKwlpZiAoZXJyKQorKwkJZGV2X2Vycihkd21hYy0+ZGV2LCAiZmFpbGVkIHRvIHNldCB0eCBy YXRlICVsdVxuIiwgcmF0ZSk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfZHdtYWNfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBwbGF0X3N0bW1h Y2VuZXRfZGF0YSAqcGxhdF9kYXQ7CisrCXN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19y ZXM7CisrCXN0cnVjdCBzdGFyZml2ZV9kd21hYyAqZHdtYWM7CisrCWludCBlcnI7CisrCisrCWVy ciA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsICZzdG1tYWNfcmVzKTsKKysJ aWYgKGVycikKKysJCXJldHVybiBlcnI7CisrCisrCXBsYXRfZGF0ID0gc3RtbWFjX3Byb2JlX2Nv bmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7CisrCWlmIChJU19FUlIocGxhdF9kYXQpKSB7 CisrCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJkdCBjb25maWd1cmF0aW9uIGZhaWxlZFxuIik7Cisr CQlyZXR1cm4gUFRSX0VSUihwbGF0X2RhdCk7CisrCX0KKysKKysJZHdtYWMgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkd21hYyksIEdGUF9LRVJORUwpOworKwlpZiAoIWR3bWFj KQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCWR3bWFjLT5jbGtfdHggPSBkZXZtX2Nsa19nZXRf ZW5hYmxlZCgmcGRldi0+ZGV2LCAidHgiKTsKKysJaWYgKElTX0VSUihkd21hYy0+Y2xrX3R4KSkK KysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoZHdtYWMtPmNsa190 eCksCisrCQkJCSAgICAiZXJyb3IgZ2V0dGluZyB0eCBjbG9ja1xuIik7CisrCisrCWR3bWFjLT5j bGtfZ3R4ID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoJnBkZXYtPmRldiwgImd0eCIpOworKwlpZiAo SVNfRVJSKGR3bWFjLT5jbGtfZ3R4KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5k ZXYsIFBUUl9FUlIoZHdtYWMtPmNsa19ndHgpLAorKwkJCQkgICAgImVycm9yIGdldHRpbmcgZ3R4 IGNsb2NrXG4iKTsKKysKKysJaWYgKGRldmljZV9wcm9wZXJ0eV9yZWFkX2Jvb2woJnBkZXYtPmRl diwgInN0YXJmaXZlLHR4LXVzZS1yZ21paS1jbGsiKSkKKysJCWR3bWFjLT50eF91c2VfcmdtaWlf cnhpbl9jbGsgPSB0cnVlOworKworKwlkd21hYy0+ZGV2ID0gJnBkZXYtPmRldjsKKysJcGxhdF9k YXQtPmZpeF9tYWNfc3BlZWQgPSBzdGFyZml2ZV9ldGhfZml4X21hY19zcGVlZDsKKysJcGxhdF9k YXQtPmluaXQgPSBOVUxMOworKwlwbGF0X2RhdC0+YnNwX3ByaXYgPSBkd21hYzsKKysJcGxhdF9k YXQtPmRtYV9jZmctPmRjaGUgPSB0cnVlOworKworKwllcnIgPSBzdG1tYWNfZHZyX3Byb2JlKCZw ZGV2LT5kZXYsIHBsYXRfZGF0LCAmc3RtbWFjX3Jlcyk7CisrCWlmIChlcnIpIHsKKysJCXN0bW1h Y19yZW1vdmVfY29uZmlnX2R0KHBkZXYsIHBsYXRfZGF0KTsKKysJCXJldHVybiBlcnI7CisrCX0K KysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IHN0YXJmaXZlX2R3bWFjX21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUs amg3MTEwLWR3bWFjIgl9LAorKwl7IC8qIHNlbnRpbmVsICovIH0KKyt9OworK01PRFVMRV9ERVZJ Q0VfVEFCTEUob2YsIHN0YXJmaXZlX2R3bWFjX21hdGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBs YXRmb3JtX2RyaXZlciBzdGFyZml2ZV9kd21hY19kcml2ZXIgPSB7CisrCS5wcm9iZSAgPSBzdGFy Zml2ZV9kd21hY19wcm9iZSwKKysJLnJlbW92ZSA9IHN0bW1hY19wbHRmcl9yZW1vdmUsCisrCS5k cml2ZXIgPSB7CisrCQkubmFtZSA9ICJzdGFyZml2ZS1kd21hYyIsCisrCQkucG0gPSAmc3RtbWFj X3BsdGZyX3BtX29wcywKKysJCS5vZl9tYXRjaF90YWJsZSA9IHN0YXJmaXZlX2R3bWFjX21hdGNo LAorKwl9LAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzdGFyZml2ZV9kd21hY19kcml2 ZXIpOworKworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIlN0 YXJGaXZlIERXTUFDIHBsYXRmb3JtIGRyaXZlciIpOworK01PRFVMRV9BVVRIT1IoIkVtaWwgUmVu bmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Iik7CisrTU9EVUxFX0FVVEhPUigiU2FtaW4g R3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4iKTsKKy0tIAorMi4zOS4yCisKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU2LWR0LWJpbmRpbmdzLW5ldC1zdGFy Zml2ZS1qaDcxMTAtZHdtYWMtQWRkLXN0YXJmaXZlLXMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4y L3BhdGNoZXMvMDA1Ni1kdC1iaW5kaW5ncy1uZXQtc3RhcmZpdmUtamg3MTEwLWR3bWFjLUFkZC1z dGFyZml2ZS1zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LjJkNzZhNDc1NjBhZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNo ZXMvMDA1Ni1kdC1iaW5kaW5ncy1uZXQtc3RhcmZpdmUtamg3MTEwLWR3bWFjLUFkZC1zdGFyZml2 ZS1zLnBhdGNoCkBAIC0wLDAgKzEsNDcgQEAKK0Zyb20gOGQ1MzAwNDU3MWRhYTMwMDQ0YWE4M2Iw ZmE4MDY3NjJlYTYyOGIxYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbWluIEd1 byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDMgTWFyIDIwMjMgMTY6 NTk6MjMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ni83MF0gZHQtYmluZGluZ3M6IG5ldDogc3Rh cmZpdmUsamg3MTEwLWR3bWFjOiBBZGQKKyBzdGFyZml2ZSxzeXNjb24KKworQSBwaGFuZGxlIHRv IHN5c2NvbiB3aXRoIHR3byBhcmd1bWVudHMgdGhhdCBjb25maWd1cmUgcGh5IG1vZGUuCisKK1Np Z25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CistLS0K KyAuLi4vYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sICAgICAgICAgfCAx MyArKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKykKKworZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUs amg3MTEwLWR3bWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0 L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sCitpbmRleCBlYjA3NjdkYTgzNGEuLmNkMzEzY2E4 YjhjZiAxMDA2NDQKKy0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQv c3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwKK0BAIC01NCw2ICs1NCwx OCBAQCBwcm9wZXJ0aWVzOgorICAgICAgIC0gY29uc3Q6IHN0bW1hY2V0aAorICAgICAgIC0gY29u c3Q6IGFoYgorIAorKyAgc3RhcmZpdmUsc3lzY29uOgorKyAgICAkcmVmOiAvc2NoZW1hcy90eXBl cy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlLWFycmF5CisrICAgIGl0ZW1zOgorKyAgICAgIC0g aXRlbXM6CisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IHBoYW5kbGUgdG8gc3lzY29uIHRoYXQg Y29uZmlndXJlcyBwaHkgbW9kZQorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBPZmZzZXQgb2Yg cGh5IG1vZGUgc2VsZWN0aW9uCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1hc2sgb2YgcGh5 IG1vZGUgc2VsZWN0aW9uCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIEEgcGhhbmRsZSB0byBz eXNjb24gd2l0aCB0d28gYXJndW1lbnRzIHRoYXQgY29uZmlndXJlIHBoeSBtb2RlLgorKyAgICAg IFRoZSBhcmd1bWVudCBvbmUgaXMgdGhlIG9mZnNldCBvZiBwaHkgbW9kZSBzZWxlY3Rpb24sIHRo ZQorKyAgICAgIGFyZ3VtZW50IHR3byBpcyB0aGUgbWFzayBvZiBwaHkgbW9kZSBzZWxlY3Rpb24u CisrCisgYWxsT2Y6CisgICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCMKKyAKK0BAIC05Miw2ICsx MDQsNyBAQCBleGFtcGxlczoKKyAgICAgICAgIHNucHMsZW4tdHgtbHBpLWNsb2NrZ2F0aW5nOwor ICAgICAgICAgc25wcyx0eHBibCA9IDwxNj47CisgICAgICAgICBzbnBzLHJ4cGJsID0gPDE2PjsK KysgICAgICAgIHN0YXJmaXZlLHN5c2NvbiA9IDwmYW9uX3N5c2NvbiAweGMgMHgxYzAwMDA+Owor ICAgICAgICAgcGh5LWhhbmRsZSA9IDwmcGh5MD47CisgCisgICAgICAgICBtZGlvIHsKKy0tIAor Mi4zOS4yCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU3LW5ldC1z dG1tYWMtc3RhcmZpdmVfZG1hYy1BZGQtcGh5LWludGVyZmFjZS1zZXR0aW5ncy5wYXRjaCBiL3Ny Y3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU3LW5ldC1zdG1tYWMtc3RhcmZpdmVfZG1hYy1BZGQt cGh5LWludGVyZmFjZS1zZXR0aW5ncy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi4zZDYwNDU2MDY1NjY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuMi9wYXRjaGVzLzAwNTctbmV0LXN0bW1hYy1zdGFyZml2ZV9kbWFjLUFkZC1waHktaW50 ZXJmYWNlLXNldHRpbmdzLnBhdGNoCkBAIC0wLDAgKzEsOTcgQEAKK0Zyb20gN2ZlMDdlM2EwZDgx YmFiZjY3NjcyZWY0Mjg3NTZjMzA5OGYxMmEyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDMg TWFyIDIwMjMgMTY6NTk6MjQgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ny83MF0gbmV0OiBzdG1t YWM6IHN0YXJmaXZlX2RtYWM6IEFkZCBwaHkgaW50ZXJmYWNlIHNldHRpbmdzCisKK2R3bWFjIHN1 cHBvcnRzIG11bHRpcGxlIG1vZGVzcy4gV2hlbiB3b3JraW5nIHVuZGVyIHJtaWkgYW5kIHJnbWlp LAoreW91IG5lZWQgdG8gc2V0IGRpZmZlcmVudCBwaHkgaW50ZXJmYWNlcy4KKworQWNjb3JkaW5n IHRvIHRoZSBkd21hYyBkb2N1bWVudCwgd2hlbiB3b3JraW5nIGluIHJtaWksIGl0IG5lZWRzIHRv IGJlCitzZXQgdG8gMHg0LCBhbmQgcmdtaWkgbmVlZHMgdG8gYmUgc2V0IHRvIDB4MS4KKworVGhl IHBoeSBpbnRlcmZhY2UgbmVlZHMgdG8gYmUgc2V0IGluIHN5c2NvbiwgdGhlIGZvcm1hdCBpcyBh cyBmb2xsb3dzOgorc3RhcmZpdmUsc3lzY29uOiA8JnN5c2Nvbiwgb2Zmc2V0LCBtYXNrPgorCitT aWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorLS0t CisgLi4uL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMgIHwgNDYgKysr KysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspCisKK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFy Zml2ZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZp dmUuYworaW5kZXggNTY2Mzc4MzA2ZjY3Li40MGZkZDcwMzYxMjcgMTAwNjQ0CistLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jCisrKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jCitAQCAt NywxMCArNywxNSBAQAorICAqCisgICovCisgCisrI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24u aD4KKyAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3JlZ21h cC5oPgorIAorICNpbmNsdWRlICJzdG1tYWNfcGxhdGZvcm0uaCIKKyAKKysjZGVmaW5lIE1BQ1BI WUNfUEhZX0lORlRfUk1JSQkweDQKKysjZGVmaW5lIE1BQ1BIWUNfUEhZX0lORlRfUkdNSUkJMHgx CisrCisgc3RydWN0IHN0YXJmaXZlX2R3bWFjIHsKKyAJc3RydWN0IGRldmljZSAqZGV2OworIAlz dHJ1Y3QgY2xrICpjbGtfdHg7CitAQCAtNTMsNiArNTgsNDYgQEAgc3RhdGljIHZvaWQgc3RhcmZp dmVfZXRoX2ZpeF9tYWNfc3BlZWQodm9pZCAqcHJpdiwgdW5zaWduZWQgaW50IHNwZWVkKQorIAkJ ZGV2X2Vycihkd21hYy0+ZGV2LCAiZmFpbGVkIHRvIHNldCB0eCByYXRlICVsdVxuIiwgcmF0ZSk7 CisgfQorIAorK3N0YXRpYyBpbnQgc3RhcmZpdmVfZHdtYWNfc2V0X21vZGUoc3RydWN0IHBsYXRf c3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9kd21hYyAq ZHdtYWMgPSBwbGF0X2RhdC0+YnNwX3ByaXY7CisrCXN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgYXJn czsKKysJc3RydWN0IHJlZ21hcCAqcmVnbWFwOworKwl1bnNpZ25lZCBpbnQgcmVnLCBtYXNrLCBt b2RlOworKwlpbnQgZXJyOworKworKwlzd2l0Y2ggKHBsYXRfZGF0LT5pbnRlcmZhY2UpIHsKKysJ Y2FzZSBQSFlfSU5URVJGQUNFX01PREVfUk1JSToKKysJCW1vZGUgPSBNQUNQSFlDX1BIWV9JTkZU X1JNSUk7CisrCQlicmVhazsKKysKKysJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk6Cisr CWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX0lEOgorKwkJbW9kZSA9IE1BQ1BIWUNfUEhZ X0lORlRfUkdNSUk7CisrCQlicmVhazsKKysKKysJZGVmYXVsdDoKKysJCWRldl9lcnIoZHdtYWMt PmRldiwgIlVuc3VwcG9ydGVkIGludGVyZmFjZSAlZFxuIiwKKysJCQlwbGF0X2RhdC0+aW50ZXJm YWNlKTsKKysJfQorKworKwllcnIgPSBvZl9wYXJzZV9waGFuZGxlX3dpdGhfZml4ZWRfYXJncyhk d21hYy0+ZGV2LT5vZl9ub2RlLAorKwkJCQkJICAgICAgICJzdGFyZml2ZSxzeXNjb24iLCAyLCAw LCAmYXJncyk7CisrCWlmIChlcnIpIHsKKysJCWRldl9kYmcoZHdtYWMtPmRldiwgInN5c2NvbiBy ZWcgbm90IGZvdW5kXG4iKTsKKysJCXJldHVybiAtRUlOVkFMOworKwl9CisrCisrCXJlZyA9IGFy Z3MuYXJnc1swXTsKKysJbWFzayA9IGFyZ3MuYXJnc1sxXTsKKysJcmVnbWFwID0gc3lzY29uX25v ZGVfdG9fcmVnbWFwKGFyZ3MubnApOworKwlvZl9ub2RlX3B1dChhcmdzLm5wKTsKKysJaWYgKElT X0VSUihyZWdtYXApKQorKwkJcmV0dXJuIFBUUl9FUlIocmVnbWFwKTsKKysKKysJcmV0dXJuIHJl Z21hcF91cGRhdGVfYml0cyhyZWdtYXAsIHJlZywgbWFzaywgbW9kZSA8PCBfX2ZmcyhtYXNrKSk7 CisrfQorKworIHN0YXRpYyBpbnQgc3RhcmZpdmVfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKKyB7CisgCXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9k YXQ7CitAQCAtOTMsNiArMTM4LDcgQEAgc3RhdGljIGludCBzdGFyZml2ZV9kd21hY19wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAlwbGF0X2RhdC0+YnNwX3ByaXYgPSBkd21h YzsKKyAJcGxhdF9kYXQtPmRtYV9jZmctPmRjaGUgPSB0cnVlOworIAorKwlzdGFyZml2ZV9kd21h Y19zZXRfbW9kZShwbGF0X2RhdCk7CisgCWVyciA9IHN0bW1hY19kdnJfcHJvYmUoJnBkZXYtPmRl diwgcGxhdF9kYXQsICZzdG1tYWNfcmVzKTsKKyAJaWYgKGVycikgeworIAkJc3RtbWFjX3JlbW92 ZV9jb25maWdfZHQocGRldiwgcGxhdF9kYXQpOworLS0gCisyLjM5LjIKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTgtcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzExMC1B ZGQtc3lzY29uLXRvLXN1cHBvcnQtcGh5LS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hl cy8wMDU4LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi10by1zdXBwb3J0LXBo eS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNTRmZjAx YTJiNWM4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU4 LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi10by1zdXBwb3J0LXBoeS0ucGF0 Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA3YTBiYWM5NDM2ZTY5YjMwZjViM2FhYWRmOGQyYWQ4 N2Q4ZDA0NTU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtaW4gR3VvIDxzYW1p bi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IEZyaSwgMyBNYXIgMjAyMyAxNjo1OToyNSAr MDgwMAorU3ViamVjdDogW1BBVENIIDU4LzcwXSByaXNjdjogZHRzOiBzdGFyZml2ZTogamg3MTEw OiBBZGQgc3lzY29uIHRvIHN1cHBvcnQgcGh5CisgaW50ZXJmYWNlIHNldHRpbmdzCisKK1RoZSBw aHkgaW50ZXJmYWNlIG5lZWRzIHRvIGJlIHNldCBpbiBzeXNjb24sIHRoZSBmb3JtYXQgaXMgYXMg Zm9sbG93czoKK3N0YXJmaXZlLHN5c2NvbjogPCZzeXNjb24sIG9mZnNldCwgbWFzaz4KKworU2ln bmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQor IGFyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgfCAyICsrCisgMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290 L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUv amg3MTEwLmR0c2kKK2luZGV4IGIwZTg3MTk4ODA4YS4uOGI3M2QwMWMyMjZjIDEwMDY0NAorLS0t IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorKysrIGIvYXJjaC9y aXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorQEAgLTY5NCw2ICs2OTQsNyBAQCBn bWFjMDogZXRoZXJuZXRAMTYwMzAwMDAgeworICAgICAgICAgICAgICAgICAgICAgICAgc25wcyxl bi10eC1scGktY2xvY2tnYXRpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICBzbnBzLHR4cGJs ID0gPDE2PjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNucHMscnhwYmwgPSA8MTY+OworKwkJ ICAgICAgIHN0YXJmaXZlLHN5c2NvbiA9IDwmYW9uX3N5c2NvbiAweGMgMHgxYzAwMDA+OworICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gImRpc2FibGVkIjsKKyAgICAgICAgICAgICAg ICAgICAgICAgIHBoeS1oYW5kbGUgPSA8JnBoeTA+OworIAorQEAgLTczNiw2ICs3MzcsNyBAQCBn bWFjMTogZXRoZXJuZXRAMTYwNDAwMDAgeworICAgICAgICAgICAgICAgICAgICAgICAgc25wcyxl bi10eC1scGktY2xvY2tnYXRpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICBzbnBzLHR4cGJs ID0gPDE2PjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNucHMscnhwYmwgPSA8MTY+OworKwkJ ICAgICAgIHN0YXJmaXZlLHN5c2NvbiA9IDwmc3lzX3N5c2NvbiAweDkwIDB4MWM+OworICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzID0gImRpc2FibGVkIjsKKyAgICAgICAgICAgICAgICAg ICAgICAgIHBoeS1oYW5kbGUgPSA8JnBoeTE+OworIAorLS0gCisyLjM5LjIKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTktcmlzY3YtZHRzLXN0YXJmaXZlLXZpc2lv bmZpdmUtMi12MS4zYi1BZGQtZ21hYy1waHktcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0 Y2hlcy8wMDU5LXJpc2N2LWR0cy1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuM2ItQWRkLWdtYWMt cGh5LXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYmI4 N2M2ZjE3YmRmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8w MDU5LXJpc2N2LWR0cy1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuM2ItQWRkLWdtYWMtcGh5LXMu cGF0Y2gKQEAgLTAsMCArMSw1NSBAQAorRnJvbSAxMWY5NTEzYjA0NzVmYzdjODQxYTRmNTBlYTE1 MjA3YTkwZTQ1OTQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtaW4gR3VvIDxz YW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IEZyaSwgMyBNYXIgMjAyMyAxNjo1OToy NiArMDgwMAorU3ViamVjdDogW1BBVENIIDU5LzcwXSByaXNjdjogZHRzOiBzdGFyZml2ZTogdmlz aW9uZml2ZS0yLXYxLjNiOiBBZGQKKyBnbWFjK3BoeSdzIGRlbGF5IGNvbmZpZ3VyYXRpb24KKwor djEuM0IgdXNlcyBtb3RvcmNvbW0gWVQ4NTMxKHJnbWlpLWlkIHBoeSkgeDIsIG5lZWQgZGVsYXkg YW5kCitpbnZlcnNlIGNvbmZpZ3VyYXRpb25zLgorCitUaGUgdHhfY2xrIG9mIHYxLjNCIHVzZXMg YW4gZXh0ZXJuYWwgY2xvY2sgYW5kIG5lZWRzIHRvIGJlCitzd2l0Y2hlZCB0byBhbiBleHRlcm5h bCBjbG9jayBzb3VyY2UuCisKK1NpZ25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0 YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12 MS4zYi5kdHMgICAgfCAyNyArKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDI3 IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZp dmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMgYi9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuM2IuZHRzCitp bmRleCA5MjMwY2MzZDg5NDYuLjMyZmFlMGRlOWE0NCAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3Yv Ym9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMK KysrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lv bmZpdmUtMi12MS4zYi5kdHMKK0BAIC0xMSwzICsxMSwzMCBAQCAvIHsKKyAJbW9kZWwgPSAiU3Rh ckZpdmUgVmlzaW9uRml2ZSAyIHYxLjNCIjsKKyAJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSx2aXNp b25maXZlLTItdjEuM2IiLCAic3RhcmZpdmUsamg3MTEwIjsKKyB9OworKworKyZnbWFjMCB7Cisr CXN0YXJmaXZlLHR4LXVzZS1yZ21paS1jbGs7CisrCWFzc2lnbmVkLWNsb2NrcyA9IDwmYW9uY3Jn IEpINzExMF9BT05DTEtfR01BQzBfVFg+OworKwlhc3NpZ25lZC1jbG9jay1wYXJlbnRzID0gPCZh b25jcmcgSkg3MTEwX0FPTkNMS19HTUFDMF9STUlJX1JUWD47CisrfTsKKysKKysmZ21hYzEgewor KwlzdGFyZml2ZSx0eC11c2UtcmdtaWktY2xrOworKwlhc3NpZ25lZC1jbG9ja3MgPSA8JnN5c2Ny ZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1RYPjsKKysJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwm c3lzY3JnIEpINzExMF9TWVNDTEtfR01BQzFfUk1JSV9SVFg+OworK307CisrCisrJnBoeTAgewor Kwltb3RvcmNvbW0sdHgtY2xrLWFkai1lbmFibGVkOworKwltb3RvcmNvbW0sdHgtY2xrLTEwMC1p bnZlcnRlZDsKKysJbW90b3Jjb21tLHR4LWNsay0xMDAwLWludmVydGVkOworKwlyeC1pbnRlcm5h bC1kZWxheS1wcyA9IDwxOTAwPjsKKysJdHgtaW50ZXJuYWwtZGVsYXktcHMgPSA8MTUwMD47Cisr fTsKKysKKysmcGh5MSB7CisrCW1vdG9yY29tbSx0eC1jbGstYWRqLWVuYWJsZWQ7CisrCW1vdG9y Y29tbSx0eC1jbGstMTAwLWludmVydGVkOworKwlyeC1pbnRlcm5hbC1kZWxheS1wcyA9IDwwPjsK KysJdHgtaW50ZXJuYWwtZGVsYXktcHMgPSA8MD47CisrfTsKKy0tIAorMi4zOS4yCisKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYwLXJpc2N2LWR0cy1zdGFyZml2ZS12 aXNpb25maXZlLTItdjEuMmEtQWRkLWdtYWMtcGh5LXMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4y L3BhdGNoZXMvMDA2MC1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJhLUFkZC1n bWFjLXBoeS1zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LmQyNDM0MWY4YTQ3NmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNo ZXMvMDA2MC1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJhLUFkZC1nbWFjLXBo eS1zLnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK0Zyb20gZGU5NDYyNWQwYjc3YzcxN2NlNzk0YTgw YzQxNTQxYmI5NWIwZDIxYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbWluIEd1 byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDMgTWFyIDIwMjMgMTY6 NTk6MjcgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2MC83MF0gcmlzY3Y6IGR0czogc3RhcmZpdmU6 IHZpc2lvbmZpdmUtMi12MS4yYTogQWRkCisgZ21hYytwaHkncyBkZWxheSBjb25maWd1cmF0aW9u CisKK3YxLjJBIGdtYWMwIHVzZXMgbW90b3Jjb21tIFlUODUzMShyZ21paS1pZCkgUEhZLCBhbmQg bmVlZHMgZGVsYXkKK2NvbmZpZ3VyYXRpb25zLgorCit2MS4yQSBnbWFjMSB1c2VzIG1vdG9yY29t bSBZVDg1MTIocm1paSkgUEhZLCBhbmQgbmVlZHMgdG8KK3N3aXRjaCByeCBhbmQgcnggdG8gZXh0 ZXJuYWwgY2xvY2sgc291cmNlcy4KKworU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5n dW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUt dmlzaW9uZml2ZS0yLXYxLjJhLmR0cyB8IDEzICsrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdl ZCwgMTMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0cy9z dGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJhLmR0cyBiL2FyY2gvcmlz Y3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4yYS5k dHMKK2luZGV4IDRhZjMzMDBmM2NmMy4uMjA1YTEzZDhjOGIxIDEwMDY0NAorLS0tIGEvYXJjaC9y aXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJh LmR0cworKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUt dmlzaW9uZml2ZS0yLXYxLjJhLmR0cworQEAgLTExLDMgKzExLDE2IEBAIC8geworIAltb2RlbCA9 ICJTdGFyRml2ZSBWaXNpb25GaXZlIDIgdjEuMkEiOworIAljb21wYXRpYmxlID0gInN0YXJmaXZl LHZpc2lvbmZpdmUtMi12MS4yYSIsICJzdGFyZml2ZSxqaDcxMTAiOworIH07CisrCisrJmdtYWMx IHsKKysJcGh5LW1vZGUgPSAicm1paSI7CisrCWFzc2lnbmVkLWNsb2NrcyA9IDwmc3lzY3JnIEpI NzExMF9TWVNDTEtfR01BQzFfVFg+LAorKwkJCSAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFD MV9SWD47CisrCWFzc2lnbmVkLWNsb2NrLXBhcmVudHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xL X0dNQUMxX1JNSUlfUlRYPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfR01BQzFfUk1J SV9SVFg+OworK307CisrCisrJnBoeTAgeworKwlyeC1pbnRlcm5hbC1kZWxheS1wcyA9IDwxOTAw PjsKKysJdHgtaW50ZXJuYWwtZGVsYXktcHMgPSA8MTM1MD47CisrfTsKKy0tIAorMi4zOS4yCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYxLXJpc2N2LWR0cy1zdGFy Zml2ZS12aXNpb25maXZlLTItRW5hYmxlLWdtYWMtZGV2aWNlLXQucGF0Y2ggYi9zcmNwa2dzL2xp bnV4Ni4yL3BhdGNoZXMvMDA2MS1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLUVuYWJs ZS1nbWFjLWRldmljZS10LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAuLjk1OTFkMDUyYzkyNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4y L3BhdGNoZXMvMDA2MS1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLUVuYWJsZS1nbWFj LWRldmljZS10LnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gODY4YzkzZTYwMzViMWE1MTFm ZTFkMTA1ZDg4Yjg2ZDY2YmQ1YTJiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFlh bmhvbmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDMg TWFyIDIwMjMgMTY6NTk6MjggKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2MS83MF0gcmlzY3Y6IGR0 czogc3RhcmZpdmU6IHZpc2lvbmZpdmUgMjogRW5hYmxlIGdtYWMgZGV2aWNlCisgdHJlZSBub2Rl CisKK1VwZGF0ZSBnbWFjIGRldmljZSB0cmVlIG5vZGUgc3RhdHVzIHRvIG9rYXkuCisKK1NpZ25l ZC1vZmYtYnk6IFlhbmhvbmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+CitT aWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorLS0t CisgLi4uL2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kgICAg IHwgMTAgKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCisKK2Rp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12 aXNpb25maXZlLTIuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0 YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpCitpbmRleCAyOTVhZjczYjBkMDguLjNjM2RjMmE5NGZm NiAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJm aXZlLXZpc2lvbmZpdmUtMi5kdHNpCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZl L2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorQEAgLTEyLDYgKzEyLDggQEAKKyAv IHsKKyAJYWxpYXNlcyB7CisgCQlzZXJpYWwwID0gJnVhcnQwOworKwkJZXRoZXJuZXQwID0gJmdt YWMwOworKwkJZXRoZXJuZXQxID0gJmdtYWMxOworIAkJaTJjMCA9ICZpMmMwOworIAkJaTJjMiA9 ICZpMmMyOworIAkJaTJjNSA9ICZpMmM1OworQEAgLTEyMyw2ICsxMjUsMTQgQEAgJnVhcnQwIHsK KyAJc3RhdHVzID0gIm9rYXkiOworIH07CisgCisrJmdtYWMwIHsKKysJc3RhdHVzID0gIm9rYXki OworK307CisrCisrJmdtYWMxIHsKKysJc3RhdHVzID0gIm9rYXkiOworK307CisrCisgJmkyYzAg eworIAljbG9jay1mcmVxdWVuY3kgPSA8MTAwMDAwPjsKKyAJaTJjLXNkYS1ob2xkLXRpbWUtbnMg PSA8MzAwPjsKKy0tIAorMi4zOS4yCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0 Y2hlcy8wMDYyLWR0LWJpbmRpbmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1kd21hYy5wYXRj aCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYyLWR0LWJpbmRpbmdzLW5ldC1BZGQtc3Vw cG9ydC1TdGFyRml2ZS1kd21hYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi4wMGMwODc3ZDVmZTAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51 eDYuMi9wYXRjaGVzLzAwNjItZHQtYmluZGluZ3MtbmV0LUFkZC1zdXBwb3J0LVN0YXJGaXZlLWR3 bWFjLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gOTM0NTc1OGI4ZWMzMTAwN2JkMmNlNmYx MTZjMDE1NGIzZjBjMWM1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFlhbmhvbmcg V2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBXZWQsIDE4IEphbiAy MDIzIDE0OjE2OjU4ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNjIvNzBdIGR0LWJpbmRpbmdzOiBu ZXQ6IEFkZCBzdXBwb3J0IFN0YXJGaXZlIGR3bWFjCisKK0FkZCBkb2N1bWVudGF0aW9uIHRvIGRl c2NyaWJlIFN0YXJGaXZlIGR3bWFjIGRyaXZlcihHTUFDKS4KKworU2lnbmVkLW9mZi1ieTogWWFu aG9uZyBXYW5nIDx5YW5ob25nLndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIE1BSU5UQUlO RVJTIHwgNSArKysrKworIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKKworZGlmZiAt LWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKK2luZGV4IDhmZjExMjE1NmUxZi4uYjI3 NDUxZmY5NWViIDEwMDY0NAorLS0tIGEvTUFJTlRBSU5FUlMKKysrKyBiL01BSU5UQUlORVJTCitA QCAtMTk5NzcsNiArMTk5NzcsMTEgQEAgRjogICAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9wb3dlci9zdGFyZml2ZSoKKyBGOiAgICAgZHJpdmVycy9zb2Mvc3RhcmZpdmUvamg3 MXh4X3BtdS5jCisgRjogICAgIGluY2x1ZGUvZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZpdmUsamg3 MTEwLXBtdS5oCisgCisrU1RBUkZJVkUgRFdNQUMgR0xVRSBMQVlFUgorK006ICAgICBZYW5ob25n IFdhbmcgPHlhbmhvbmcud2FuZ0BzdGFyZml2ZXRlY2guY29tPgorK1M6ICAgICBNYWludGFpbmVk CisrRjogICAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUs amg3MTEwLWR3bWFjLnlhbWwKKysKKyBTVEFUSUMgQlJBTkNIL0NBTEwKKyBNOglQZXRlciBaaWps c3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CisgTToJSm9zaCBQb2ltYm9ldWYgPGpwb2ltYm9l QGtlcm5lbC5vcmc+CistLSAKKzIuMzkuMgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4y L3BhdGNoZXMvMDA2My1uZXQtc3RtbWFjLUFkZC1nbHVlLWxheWVyLWZvci1TdGFyRml2ZS1KSDcx MTAtU29Dcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYzLW5ldC1zdG1tYWMt QWRkLWdsdWUtbGF5ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0NzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjYwMGI5YzgxNjUyNWEKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2My1uZXQtc3RtbWFjLUFkZC1nbHVl LWxheWVyLWZvci1TdGFyRml2ZS1KSDcxMTAtU29Dcy5wYXRjaApAQCAtMCwwICsxLDE5MiBAQAor RnJvbSAxYjViMDQwYTVlYWVjMDkxZmQ0NmI2NDQ1OWQ0ODI4OTcxYjE3YjY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogWWFuaG9uZyBXYW5nIDx5YW5ob25nLndhbmdAc3RhcmZpdmV0 ZWNoLmNvbT4KK0RhdGU6IFdlZCwgMTggSmFuIDIwMjMgMTQ6MTY6NTkgKzA4MDAKK1N1YmplY3Q6 IFtQQVRDSCA2My83MF0gbmV0OiBzdG1tYWM6IEFkZCBnbHVlIGxheWVyIGZvciBTdGFyRml2ZSBK SDcxMTAgU29DcworCitUaGlzIGFkZHMgU3RhckZpdmUgZHdtYWMgZHJpdmVyIHN1cHBvcnQgb24g dGhlIFN0YXJGaXZlIEpINzExMCBTb0NzLgorCitTaWduZWQtb2ZmLWJ5OiBZYW5ob25nIFdhbmcg PHlhbmhvbmcud2FuZ0BzdGFyZml2ZXRlY2guY29tPgorQ28tZGV2ZWxvcGVkLWJ5OiBFbWlsIFJl bm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5u ZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKy0tLQorIE1BSU5UQUlORVJTICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCisgZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvS2NvbmZpZyAgIHwgIDEyICsrCisgZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvTWFrZWZpbGUgIHwgICAxICsKKyAuLi4vc3RtaWNyby9zdG1tYWMvZHdt YWMtc3RhcmZpdmUtcGxhdC5jICAgICAgfCAxMTggKysrKysrKysrKysrKysrKysrCisgNCBmaWxl cyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS1wbGF0LmMKKworZGlm ZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKK2luZGV4IGIyNzQ1MWZmOTVlYi4u YmVkMmMzM2JlNTE3IDEwMDY0NAorLS0tIGEvTUFJTlRBSU5FUlMKKysrKyBiL01BSU5UQUlORVJT CitAQCAtMTk5ODAsNiArMTk5ODAsNyBAQCBGOiAgICAgaW5jbHVkZS9kdC1iaW5kaW5ncy9wb3dl ci9zdGFyZml2ZSxqaDcxMTAtcG11LmgKKyBTVEFSRklWRSBEV01BQyBHTFVFIExBWUVSCisgTTog ICAgIFlhbmhvbmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+CisgUzogICAg IE1haW50YWluZWQKKytGOiAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25l dC9kd21hYy1zdGFyZml2ZS1wbGF0LmMKKyBGOiAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbAorIAorIFNUQVRJQyBCUkFO Q0gvQ0FMTAorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L0tjb25maWcgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnCitp bmRleCA0N2ZiY2NlZjlkMDQuLjk5ZjY3MTZkNmRjOSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcKKysrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcKK0BAIC0yNTYsNiArMjU2LDE4IEBAIGNvbmZpZyBE V01BQ19URUdSQQorIAkgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJl ZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQworIAkgIGRldmljZXMuCisgCisrY29uZmlnIERX TUFDX1NUQVJGSVZFX1BMQVQKKysJdHJpc3RhdGUgIlN0YXJGaXZlIGR3bWFjIHN1cHBvcnQiCisr CWRlcGVuZHMgb24gT0YgJiYgQ09NTU9OX0NMSworKwlkZXBlbmRzIG9uIFNUTU1BQ19FVEgKKysJ ZGVmYXVsdCBTT0NfU1RBUkZJVkUKKysJaGVscAorKwkgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNv bnRyb2xsZXJzIG9uIFN0YXJGaXZlIFJJU0MtViBTb0NzCisrCisrCSAgVGhpcyBzZWxlY3RzIHRo ZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yCisrCSAg dGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBTdGFyRml2 ZSBKSDcxMTAKKysJICBldGhlcm5ldCBjb250cm9sbGVyLgorKworIGNvbmZpZyBEV01BQ19WSVND T05USQorIAl0cmlzdGF0ZSAiVG9zaGliYSBWaXNjb250aSBEV01BQyBzdXBwb3J0IgorIAlkZWZh dWx0IEFSQ0hfVklTQ09OVEkKK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L01ha2VmaWxlCitpbmRleCA4NzM4ZmRiYjRiMmQuLjU3NmQ5YzVmNzk1NCAxMDA2NDQKKy0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlCisrKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQorQEAgLTMyLDYgKzMyLDcg QEAgb2JqLSQoQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIKQkrPSBkd21hYy1kd2MtcW9zLWV0aC5v Cisgb2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMX1BMQVQpCSs9IGR3bWFjLWludGVsLXBsYXQubwor IG9iai0kKENPTkZJR19EV01BQ19HRU5FUklDKQkrPSBkd21hYy1nZW5lcmljLm8KKyBvYmotJChD T05GSUdfRFdNQUNfSU1YOCkJKz0gZHdtYWMtaW14Lm8KKytvYmotJChDT05GSUdfRFdNQUNfU1RB UkZJVkVfUExBVCkJKz0gZHdtYWMtc3RhcmZpdmUtcGxhdC5vCisgb2JqLSQoQ09ORklHX0RXTUFD X1RFR1JBKQkrPSBkd21hYy10ZWdyYS5vCisgb2JqLSQoQ09ORklHX0RXTUFDX1ZJU0NPTlRJKQkr PSBkd21hYy12aXNjb250aS5vCisgc3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZv cm0ubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3 bWFjLXN0YXJmaXZlLXBsYXQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L2R3bWFjLXN0YXJmaXZlLXBsYXQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAwMC4uZTQ0MWQ5MjA5MzNhCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS1wbGF0LmMKK0BAIC0wLDAgKzEs MTE4IEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisrLyoKKysgKiBT dGFyRml2ZSBEV01BQyBwbGF0Zm9ybSBkcml2ZXIKKysgKgorKyAqIENvcHlyaWdodChDKSAyMDIy IFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICoKKysgKi8KKysKKysjaW5jbHVkZSA8 bGludXgvb2ZfZGV2aWNlLmg+CisrCisrI2luY2x1ZGUgInN0bW1hY19wbGF0Zm9ybS5oIgorKwor K3N0cnVjdCBzdGFyZml2ZV9kd21hYyB7CisrCXN0cnVjdCBkZXZpY2UgKmRldjsKKysJc3RydWN0 IGNsayAqY2xrX3R4OworKwlzdHJ1Y3QgY2xrICpjbGtfZ3R4OworKwlzdHJ1Y3QgY2xrICpjbGtf Z3R4YzsKKyt9OworKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX2V0aF9wbGF0X2ZpeF9tYWNfc3Bl ZWQodm9pZCAqcHJpdiwgdW5zaWduZWQgaW50IHNwZWVkKQorK3sKKysJc3RydWN0IHN0YXJmaXZl X2R3bWFjICpkd21hYyA9IHByaXY7CisrCXVuc2lnbmVkIGxvbmcgcmF0ZTsKKysJaW50IGVycjsK KysKKysJcmF0ZSA9IGNsa19nZXRfcmF0ZShkd21hYy0+Y2xrX2d0eCk7CisrCisrCXN3aXRjaCAo c3BlZWQpIHsKKysJY2FzZSBTUEVFRF8xMDAwOgorKwkJcmF0ZSA9IDEyNTAwMDAwMDsKKysJCWJy ZWFrOworKwljYXNlIFNQRUVEXzEwMDoKKysJCXJhdGUgPSAyNTAwMDAwMDsKKysJCWJyZWFrOwor KwljYXNlIFNQRUVEXzEwOgorKwkJcmF0ZSA9IDI1MDAwMDA7CisrCQlicmVhazsKKysJZGVmYXVs dDoKKysJCWRldl9lcnIoZHdtYWMtPmRldiwgImludmFsaWQgc3BlZWQgJXVcbiIsIHNwZWVkKTsK KysJCWJyZWFrOworKwl9CisrCisrCWVyciA9IGNsa19zZXRfcmF0ZShkd21hYy0+Y2xrX2d0eCwg cmF0ZSk7CisrCWlmIChlcnIpCisrCQlkZXZfZXJyKGR3bWFjLT5kZXYsICJmYWlsZWQgdG8gc2V0 IHR4IHJhdGUgJWx1XG4iLCByYXRlKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9ldGhf cGxhdF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IHBs YXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDsKKysJc3RydWN0IHN0bW1hY19yZXNvdXJjZXMg c3RtbWFjX3JlczsKKysJc3RydWN0IHN0YXJmaXZlX2R3bWFjICpkd21hYzsKKysJaW50IGVycjsK KysKKysJZXJyID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgJnN0bW1hY19y ZXMpOworKwlpZiAoZXJyKQorKwkJcmV0dXJuIGVycjsKKysKKysJcGxhdF9kYXQgPSBzdG1tYWNf cHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTsKKysJaWYgKElTX0VSUihwbGF0 X2RhdCkpIHsKKysJCWRldl9lcnIoJnBkZXYtPmRldiwgImR0IGNvbmZpZ3VyYXRpb24gZmFpbGVk XG4iKTsKKysJCXJldHVybiBQVFJfRVJSKHBsYXRfZGF0KTsKKysJfQorKworKwlkd21hYyA9IGRl dm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmR3bWFjKSwgR0ZQX0tFUk5FTCk7CisrCWlm ICghZHdtYWMpCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJZHdtYWMtPmNsa190eCA9IGRldm1f Y2xrX2dldF9lbmFibGVkKCZwZGV2LT5kZXYsICJ0eCIpOworKwlpZiAoSVNfRVJSKGR3bWFjLT5j bGtfdHgpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihkd21h Yy0+Y2xrX3R4KSwKKysJCQkJCQkiZXJyb3IgZ2V0dGluZyB0eCBjbG9ja1xuIik7CisrCisrCWR3 bWFjLT5jbGtfZ3R4ID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoJnBkZXYtPmRldiwgImd0eCIpOwor KwlpZiAoSVNfRVJSKGR3bWFjLT5jbGtfZ3R4KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZw ZGV2LT5kZXYsIFBUUl9FUlIoZHdtYWMtPmNsa19ndHgpLAorKwkJCQkJCSJlcnJvciBnZXR0aW5n IGd0eCBjbG9ja1xuIik7CisrCisrCWR3bWFjLT5jbGtfZ3R4YyA9IGRldm1fY2xrX2dldF9lbmFi bGVkKCZwZGV2LT5kZXYsICJndHhjIik7CisrCWlmIChJU19FUlIoZHdtYWMtPmNsa19ndHhjKSkK KysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoZHdtYWMtPmNsa19n dHhjKSwKKysJCQkJCQkiZXJyb3IgZ2V0dGluZyBndHhjIGNsb2NrXG4iKTsKKysKKysJZHdtYWMt PmRldiA9ICZwZGV2LT5kZXY7CisrCXBsYXRfZGF0LT5maXhfbWFjX3NwZWVkID0gc3RhcmZpdmVf ZXRoX3BsYXRfZml4X21hY19zcGVlZDsKKysJcGxhdF9kYXQtPmluaXQgPSBOVUxMOworKwlwbGF0 X2RhdC0+YnNwX3ByaXYgPSBkd21hYzsKKysJcGxhdF9kYXQtPmRtYV9jZmctPmRjaGUgPSB0cnVl OworKworKwllcnIgPSBzdG1tYWNfZHZyX3Byb2JlKCZwZGV2LT5kZXYsIHBsYXRfZGF0LCAmc3Rt bWFjX3Jlcyk7CisrCWlmIChlcnIpIHsKKysJCXN0bW1hY19yZW1vdmVfY29uZmlnX2R0KHBkZXYs IHBsYXRfZGF0KTsKKysJCXJldHVybiBlcnI7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKwor K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJmaXZlX2V0aF9wbGF0X21hdGNo W10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWR3bWFjIgl9LAorKwl7 IH0KKyt9OworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN0YXJmaXZlX2V0aF9w bGF0X2RyaXZlciA9IHsKKysJLnByb2JlICA9IHN0YXJmaXZlX2V0aF9wbGF0X3Byb2JlLAorKwku cmVtb3ZlID0gc3RtbWFjX3BsdGZyX3JlbW92ZSwKKysJLmRyaXZlciA9IHsKKysJCS5uYW1lID0g InN0YXJmaXZlLWV0aC1wbGF0IiwKKysJCS5wbSA9ICZzdG1tYWNfcGx0ZnJfcG1fb3BzLAorKwkJ Lm9mX21hdGNoX3RhYmxlID0gc3RhcmZpdmVfZXRoX3BsYXRfbWF0Y2gsCisrCX0sCisrfTsKKysK Kyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0YXJmaXZlX2V0aF9wbGF0X2RyaXZlcik7CisrCisr TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworK01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgRFdN QUMgcGxhdGZvcm0gZHJpdmVyIik7CisrTU9EVUxFX0FVVEhPUigiWWFuaG9uZyBXYW5nIDx5YW5o b25nLndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4iKTsKKy0tIAorMi4zOS4yCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY0LWR0LWJpbmRpbmdzLW5ldC1BZGQtTW90b3Jj b21tLXl0OHh4eC1ldGhlcm5ldC1waHkucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMv MDA2NC1kdC1iaW5kaW5ncy1uZXQtQWRkLU1vdG9yY29tbS15dDh4eHgtZXRoZXJuZXQtcGh5LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjc4MTc0N2E5YzUy ODQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2NC1kdC1i aW5kaW5ncy1uZXQtQWRkLU1vdG9yY29tbS15dDh4eHgtZXRoZXJuZXQtcGh5LnBhdGNoCkBAIC0w LDAgKzEsMTY3IEBACitGcm9tIDMzNjViNTk5NWM2YjI0Y2U2ZmUyNWNjNzA1Yjg2NDkzNmExOWIz YmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGcmFuayBTYWUgPEZyYW5rLlNhZUBt b3Rvci1jb21tLmNvbT4KK0RhdGU6IFRodSwgMiBGZWIgMjAyMyAxMTowMDozMyArMDgwMAorU3Vi amVjdDogW1BBVENIIDY0LzcwXSBkdC1iaW5kaW5nczogbmV0OiBBZGQgTW90b3Jjb21tIHl0OHh4 eCBldGhlcm5ldCBwaHkKKworQWRkIGEgWUFNTCBiaW5kaW5nIGRvY3VtZW50IGZvciB0aGUgTW90 b3Jjb21tIHl0OHh4eCBFdGhlcm5ldCBwaHkuCisKK1NpZ25lZC1vZmYtYnk6IEZyYW5rIFNhZSA8 RnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tPgorUmV2aWV3ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2Jo QGtlcm5lbC5vcmc+CistLS0KKyAuLi4vYmluZGluZ3MvbmV0L21vdG9yY29tbSx5dDh4eHgueWFt bCAgICAgICAgfCAxMTcgKysrKysrKysrKysrKysrKysrCisgLi4uL2RldmljZXRyZWUvYmluZGlu Z3MvdmVuZG9yLXByZWZpeGVzLnlhbWwgIHwgICAyICsKKyBNQUlOVEFJTkVSUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKworIDMgZmlsZXMgY2hhbmdlZCwgMTIwIGlu c2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL25ldC9tb3RvcmNvbW0seXQ4eHh4LnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbW90b3Jjb21tLHl0OHh4eC55YW1sIGIv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tb3RvcmNvbW0seXQ4eHh4Lnlh bWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjE1N2UzYmJjYWY2 ZgorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L25ldC9tb3RvcmNvbW0seXQ4eHh4LnlhbWwKK0BAIC0wLDAgKzEsMTE3IEBACisrIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwg MS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvbW90b3Jj b21tLHl0OHh4eC55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNj aGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBNb3RvckNvbW0geXQ4eHh4IEV0aGVybmV0IFBI WQorKworK21haW50YWluZXJzOgorKyAgLSBGcmFuayBTYWUgPGZyYW5rLnNhZUBtb3Rvci1jb21t LmNvbT4KKysKKythbGxPZjoKKysgIC0gJHJlZjogZXRoZXJuZXQtcGh5LnlhbWwjCisrCisrcHJv cGVydGllczoKKysgIGNvbXBhdGlibGU6CisrICAgIGVudW06CisrICAgICAgLSBldGhlcm5ldC1w aHktaWQ0ZjUxLmU5MWEKKysgICAgICAtIGV0aGVybmV0LXBoeS1pZDRmNTEuZTkxYgorKworKyAg cngtaW50ZXJuYWwtZGVsYXktcHM6CisrICAgIGRlc2NyaXB0aW9uOiB8CisrICAgICAgUkdNSUkg UlggQ2xvY2sgRGVsYXkgdXNlZCBvbmx5IHdoZW4gUEhZIG9wZXJhdGVzIGluIFJHTUlJIG1vZGUg d2l0aAorKyAgICAgIGludGVybmFsIGRlbGF5IChwaHktbW9kZSBpcyAncmdtaWktaWQnIG9yICdy Z21paS1yeGlkJykgaW4gcGljby1zZWNvbmRzLgorKyAgICBlbnVtOiBbIDAsIDE1MCwgMzAwLCA0 NTAsIDYwMCwgNzUwLCA5MDAsIDEwNTAsIDEyMDAsIDEzNTAsIDE1MDAsIDE2NTAsCisrICAgICAg ICAgICAgMTgwMCwgMTkwMCwgMTk1MCwgMjA1MCwgMjEwMCwgMjIwMCwgMjI1MCwgMjM1MCwgMjUw MCwgMjY1MCwgMjgwMCwKKysgICAgICAgICAgICAyOTUwLCAzMTAwLCAzMjUwLCAzNDAwLCAzNTUw LCAzNzAwLCAzODUwLCA0MDAwLCA0MTUwIF0KKysgICAgZGVmYXVsdDogMTk1MAorKworKyAgdHgt aW50ZXJuYWwtZGVsYXktcHM6CisrICAgIGRlc2NyaXB0aW9uOiB8CisrICAgICAgUkdNSUkgVFgg Q2xvY2sgRGVsYXkgdXNlZCBvbmx5IHdoZW4gUEhZIG9wZXJhdGVzIGluIFJHTUlJIG1vZGUgd2l0 aAorKyAgICAgIGludGVybmFsIGRlbGF5IChwaHktbW9kZSBpcyAncmdtaWktaWQnIG9yICdyZ21p aS10eGlkJykgaW4gcGljby1zZWNvbmRzLgorKyAgICBlbnVtOiBbIDAsIDE1MCwgMzAwLCA0NTAs IDYwMCwgNzUwLCA5MDAsIDEwNTAsIDEyMDAsIDEzNTAsIDE1MDAsIDE2NTAsIDE4MDAsCisrICAg ICAgICAgICAgMTk1MCwgMjEwMCwgMjI1MCBdCisrICAgIGRlZmF1bHQ6IDE5NTAKKysKKysgIG1v dG9yY29tbSxjbGstb3V0LWZyZXF1ZW5jeS1oejoKKysgICAgZGVzY3JpcHRpb246IGNsb2NrIG91 dHB1dCBvbiBjbG9jayBvdXRwdXQgcGluLgorKyAgICBlbnVtOiBbMCwgMjUwMDAwMDAsIDEyNTAw MDAwMF0KKysgICAgZGVmYXVsdDogMAorKworKyAgbW90b3Jjb21tLGtlZXAtcGxsLWVuYWJsZWQ6 CisrICAgIGRlc2NyaXB0aW9uOiB8CisrICAgICAgSWYgc2V0LCBrZWVwIHRoZSBQTEwgZW5hYmxl ZCBldmVuIGlmIHRoZXJlIGlzIG5vIGxpbmsuIFVzZWZ1bCBpZiB5b3UKKysgICAgICB3YW50IHRv IHVzZSB0aGUgY2xvY2sgb3V0cHV0IHdpdGhvdXQgYW4gZXRoZXJuZXQgbGluay4KKysgICAgdHlw ZTogYm9vbGVhbgorKworKyAgbW90b3Jjb21tLGF1dG8tc2xlZXAtZGlzYWJsZWQ6CisrICAgIGRl c2NyaXB0aW9uOiB8CisrICAgICAgSWYgc2V0LCBQSFkgd2lsbCBub3QgZW50ZXIgc2xlZXAgbW9k ZSBhbmQgY2xvc2UgQUZFIGFmdGVyIHVucGx1ZyBjYWJsZQorKyAgICAgIGZvciBhIHRpbWVyLgor KyAgICB0eXBlOiBib29sZWFuCisrCisrICBtb3RvcmNvbW0sdHgtY2xrLWFkai1lbmFibGVkOgor KyAgICBkZXNjcmlwdGlvbjogfAorKyAgICAgIFRoaXMgY29uZmlndXJhdGlvbiBpcyBtYWlubHkg dG8gYWRhcHQgdG8gVkYyIHdpdGggSkg3MTEwIFNvQy4KKysgICAgICBVc2VmdWwgaWYgeW91IHdh bnQgdG8gdXNlIHR4LWNsay14eHh4LWludmVydGVkIHRvIGFkaiB0aGUgZGVsYXkgb2YgdHggY2xr LgorKyAgICB0eXBlOiBib29sZWFuCisrCisrICBtb3RvcmNvbW0sdHgtY2xrLTEwLWludmVydGVk OgorKyAgICBkZXNjcmlwdGlvbjogfAorKyAgICAgIFVzZSBvcmlnaW5hbCBvciBpbnZlcnRlZCBS R01JSSBUcmFuc21pdCBQSFkgQ2xvY2sgdG8gZHJpdmUgdGhlIFJHTUlJCisrICAgICAgVHJhbnNt aXQgUEhZIENsb2NrIGRlbGF5IHRyYWluIGNvbmZpZ3VyYXRpb24gd2hlbiBzcGVlZCBpcyAxME1i cHMuCisrICAgIHR5cGU6IGJvb2xlYW4KKysKKysgIG1vdG9yY29tbSx0eC1jbGstMTAwLWludmVy dGVkOgorKyAgICBkZXNjcmlwdGlvbjogfAorKyAgICAgIFVzZSBvcmlnaW5hbCBvciBpbnZlcnRl ZCBSR01JSSBUcmFuc21pdCBQSFkgQ2xvY2sgdG8gZHJpdmUgdGhlIFJHTUlJCisrICAgICAgVHJh bnNtaXQgUEhZIENsb2NrIGRlbGF5IHRyYWluIGNvbmZpZ3VyYXRpb24gd2hlbiBzcGVlZCBpcyAx MDBNYnBzLgorKyAgICB0eXBlOiBib29sZWFuCisrCisrICBtb3RvcmNvbW0sdHgtY2xrLTEwMDAt aW52ZXJ0ZWQ6CisrICAgIGRlc2NyaXB0aW9uOiB8CisrICAgICAgVXNlIG9yaWdpbmFsIG9yIGlu dmVydGVkIFJHTUlJIFRyYW5zbWl0IFBIWSBDbG9jayB0byBkcml2ZSB0aGUgUkdNSUkKKysgICAg ICBUcmFuc21pdCBQSFkgQ2xvY2sgZGVsYXkgdHJhaW4gY29uZmlndXJhdGlvbiB3aGVuIHNwZWVk IGlzIDEwMDBNYnBzLgorKyAgICB0eXBlOiBib29sZWFuCisrCisrdW5ldmFsdWF0ZWRQcm9wZXJ0 aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIG1kaW8geworKyAgICAgICAg I2FkZHJlc3MtY2VsbHMgPSA8MT47CisrICAgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsKKysgICAg ICAgIHBoeS1tb2RlID0gInJnbWlpLWlkIjsKKysgICAgICAgIGV0aGVybmV0LXBoeUA0IHsKKysg ICAgICAgICAgICAvKiAgT25seSBuZWVkZWQgdG8gbWFrZSBEVCBsaW50IHRvb2xzIHdvcmsuIERv IG5vdCBjb3B5L3Bhc3RlCisrICAgICAgICAgICAgICogIGludG8gcmVhbCBEVFMgZmlsZXMuCisr ICAgICAgICAgICAgICovCisrICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJldGhlcm5ldC1waHkt aWQ0ZjUxLmU5MWEiOworKworKyAgICAgICAgICAgIHJlZyA9IDw0PjsKKysgICAgICAgICAgICBy eC1pbnRlcm5hbC1kZWxheS1wcyA9IDwyMTAwPjsKKysgICAgICAgICAgICB0eC1pbnRlcm5hbC1k ZWxheS1wcyA9IDwxNTA+OworKyAgICAgICAgICAgIG1vdG9yY29tbSxjbGstb3V0LWZyZXF1ZW5j eS1oeiA9IDwwPjsKKysgICAgICAgICAgICBtb3RvcmNvbW0sa2VlcC1wbGwtZW5hYmxlZDsKKysg ICAgICAgICAgICBtb3RvcmNvbW0sYXV0by1zbGVlcC1kaXNhYmxlZDsKKysgICAgICAgIH07Cisr ICAgIH07CisrICAtIHwKKysgICAgbWRpbyB7CisrICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwx PjsKKysgICAgICAgICNzaXplLWNlbGxzID0gPDA+OworKyAgICAgICAgcGh5LW1vZGUgPSAicmdt aWkiOworKyAgICAgICAgZXRoZXJuZXQtcGh5QDUgeworKyAgICAgICAgICAgIC8qICBPbmx5IG5l ZWRlZCB0byBtYWtlIERUIGxpbnQgdG9vbHMgd29yay4gRG8gbm90IGNvcHkvcGFzdGUKKysgICAg ICAgICAgICAgKiAgaW50byByZWFsIERUUyBmaWxlcy4KKysgICAgICAgICAgICAgKi8KKysgICAg ICAgICAgICBjb21wYXRpYmxlID0gImV0aGVybmV0LXBoeS1pZDRmNTEuZTkxYSI7CisrCisrICAg ICAgICAgICAgcmVnID0gPDU+OworKyAgICAgICAgICAgIG1vdG9yY29tbSxjbGstb3V0LWZyZXF1 ZW5jeS1oeiA9IDwxMjUwMDAwMDA+OworKyAgICAgICAgICAgIG1vdG9yY29tbSxrZWVwLXBsbC1l bmFibGVkOworKyAgICAgICAgICAgIG1vdG9yY29tbSxhdXRvLXNsZWVwLWRpc2FibGVkOworKyAg ICAgICAgfTsKKysgICAgfTsKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwKK2luZGV4IDcwZmZiMzc4MDYyMS4uOGQxOTE1 N2U4NWI3IDEwMDY0NAorLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Zl bmRvci1wcmVmaXhlcy55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvdmVuZG9yLXByZWZpeGVzLnlhbWwKK0BAIC04NDUsNiArODQ1LDggQEAgcGF0dGVyblByb3Bl cnRpZXM6CisgICAgIGRlc2NyaXB0aW9uOiBNb29ydGVjIFNlbWljb25kdWN0b3IgTHRkLgorICAg Il5tb3NhaXh0ZWNoLC4qIjoKKyAgICAgZGVzY3JpcHRpb246IE1vc2FpeCBUZWNobm9sb2dpZXMs IEluYy4KKysgICJebW90b3Jjb21tLC4qIjoKKysgICAgZGVzY3JpcHRpb246IE1vdG9yQ29tbSwg SW5jLgorICAgIl5tb3Rvcm9sYSwuKiI6CisgICAgIGRlc2NyaXB0aW9uOiBNb3Rvcm9sYSwgSW5j LgorICAgIl5tb3hhLC4qIjoKK2RpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJT CitpbmRleCBiZWQyYzMzYmU1MTcuLjdjNzNjZGJlMTI1OSAxMDA2NDQKKy0tLSBhL01BSU5UQUlO RVJTCisrKysgYi9NQUlOVEFJTkVSUworQEAgLTE0MTY5LDYgKzE0MTY5LDcgQEAgTToJUGV0ZXIg R2VpcyA8cGd3aXBlb3V0QGdtYWlsLmNvbT4KKyBNOglGcmFuayA8RnJhbmsuU2FlQG1vdG9yLWNv bW0uY29tPgorIEw6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKKyBTOglNYWludGFpbmVkCisrRjoJ RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tb3RvcmNvbW0seXQ4eHh4Lnlh bWwKKyBGOglkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKKyAKKyBNT1hBIFNNQVJUSU8vSU5E VVNUSU8vSU5URUxMSU8gU0VSSUFMIENBUkQKKy0tIAorMi4zOS4yCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY1LW5ldC1waHktQWRkLUJJVC1tYWNyby1mb3ItTW90 b3Jjb21tLXl0ODUyMS15dDg1MzEtZ2kucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMv MDA2NS1uZXQtcGh5LUFkZC1CSVQtbWFjcm8tZm9yLU1vdG9yY29tbS15dDg1MjEteXQ4NTMxLWdp LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmFmZDI5NmY5 ZjJmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2NS1u ZXQtcGh5LUFkZC1CSVQtbWFjcm8tZm9yLU1vdG9yY29tbS15dDg1MjEteXQ4NTMxLWdpLnBhdGNo CkBAIC0wLDAgKzEsMTExIEBACitGcm9tIDVlNDE2MjA1YTg0NmZlZjMxNzRlYmUwNTA5ZjZhNDky NmU5NDc1ODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGcmFuayBTYWUgPEZyYW5r LlNhZUBtb3Rvci1jb21tLmNvbT4KK0RhdGU6IFRodSwgMiBGZWIgMjAyMyAxMTowMDozNCArMDgw MAorU3ViamVjdDogW1BBVENIIDY1LzcwXSBuZXQ6IHBoeTogQWRkIEJJVCBtYWNybyBmb3IgTW90 b3Jjb21tIHl0ODUyMS95dDg1MzEKKyBnaWdhYml0IGV0aGVybmV0IHBoeQorCitBZGQgQklUIG1h Y3JvIGZvciBNb3RvcmNvbW0geXQ4NTIxL3l0ODUzMSBnaWdhYml0IGV0aGVybmV0IHBoeS4KKyBU aGlzIGlzIGEgcHJlcGFyYXRvcnkgcGF0Y2guIEFkZCBCSVQgbWFjcm8gZm9yIDB4QTAxMiByZWcs IGFuZAorIHN1cHBsZW1lbnQgZm9yIDB4QTAwMSBhbmQgMHhBMDAzIHJlZy4gVGhlc2Ugd2lsbCBi ZSB1c2VkIHRvIHN1cHBvcnQgZHRzLgorCitTaWduZWQtb2ZmLWJ5OiBGcmFuayBTYWUgPEZyYW5r LlNhZUBtb3Rvci1jb21tLmNvbT4KK1Jldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1 bm4uY2g+CistLS0KKyBkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgfCA1NSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUxIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90 b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKK2luZGV4IDY4NTE5MGRiNzJk ZS4uZDg1MjNlMzM0MjRkIDEwMDY0NAorLS0tIGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5j CisrKysgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKK0BAIC0xNjEsNiArMTYxLDExIEBA CisgCisgI2RlZmluZSBZVDg1MjFfQ0hJUF9DT05GSUdfUkVHCQkJMHhBMDAxCisgI2RlZmluZSBZ VDg1MjFfQ0NSX1NXX1JTVAkJCUJJVCgxNSkKKysvKiAxYjAgZGlzYWJsZSAxLjlucyByeGMgY2xv Y2sgZGVsYXkgICpkZWZhdWx0KgorKyAqIDFiMSBlbmFibGUgMS45bnMgcnhjIGNsb2NrIGRlbGF5 CisrICovCisrI2RlZmluZSBZVDg1MjFfQ0NSX1JYQ19ETFlfRU4JCQlCSVQoOCkKKysjZGVmaW5l IFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUwkJMTkwMAorIAorICNkZWZpbmUgWVQ4NTIxX0ND Ul9NT0RFX1NFTF9NQVNLCQkoQklUKDIpIHwgQklUKDEpIHwgQklUKDApKQorICNkZWZpbmUgWVQ4 NTIxX0NDUl9NT0RFX1VUUF9UT19SR01JSQkJMAorQEAgLTE3OCwyMiArMTgzLDQxIEBACisgI2Rl ZmluZSBZVDg1MjFfTU9ERV9QT0xMCQkJMHgzCisgCisgI2RlZmluZSBZVDg1MjFfUkdNSUlfQ09O RklHMV9SRUcJCTB4QTAwMworLQorKy8qIDFiMCB1c2Ugb3JpZ2luYWwgdHhfY2xrX3JnbWlpICAq ZGVmYXVsdCoKKysgKiAxYjEgdXNlIGludmVydGVkIHR4X2Nsa19yZ21paS4KKysgKi8KKysjZGVm aW5lIFlUODUyMV9SQzFSX1RYX0NMS19TRUxfSU5WRVJURUQJCUJJVCgxNCkKKyAvKiBUWCBHaWct RSBEZWxheSBpcyBiaXRzIDM6MCwgZGVmYXVsdCAweDEKKyAgKiBUWCBGYXN0LUUgRGVsYXkgaXMg Yml0cyA3OjQsIGRlZmF1bHQgMHhmCisgICogUlggRGVsYXkgaXMgYml0cyAxMzoxMCwgZGVmYXVs dCAweDAKKyAgKiBEZWxheSA9IDE1MHBzICogTgorICAqIE9uID0gMjI1MHBzLCBvZmYgPSAwcHMK KyAgKi8KKy0jZGVmaW5lIFlUODUyMV9SQzFSX1JYX0RFTEFZX01BU0sJCSgweEYgPDwgMTApCisr I2RlZmluZSBZVDg1MjFfUkMxUl9SWF9ERUxBWV9NQVNLCQlHRU5NQVNLKDEzLCAxMCkKKyAjZGVm aW5lIFlUODUyMV9SQzFSX1JYX0RFTEFZX0VOCQkJKDB4RiA8PCAxMCkKKyAjZGVmaW5lIFlUODUy MV9SQzFSX1JYX0RFTEFZX0RJUwkJKDB4MCA8PCAxMCkKKy0jZGVmaW5lIFlUODUyMV9SQzFSX0ZF X1RYX0RFTEFZX01BU0sJCSgweEYgPDwgNCkKKysjZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RF TEFZX01BU0sJCUdFTk1BU0soNywgNCkKKyAjZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZ X0VOCQkoMHhGIDw8IDQpCisgI2RlZmluZSBZVDg1MjFfUkMxUl9GRV9UWF9ERUxBWV9ESVMJCSgw eDAgPDwgNCkKKy0jZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01BU0sJCSgweEYgPDwg MCkKKysjZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01BU0sJCUdFTk1BU0soMywgMCkK KyAjZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX0VOCQkoMHhGIDw8IDApCisgI2RlZmlu ZSBZVDg1MjFfUkMxUl9HRV9UWF9ERUxBWV9ESVMJCSgweDAgPDwgMCkKKysjZGVmaW5lIFlUODUy MV9SQzFSX1JHTUlJXzBfMDAwX05TCQkwCisrI2RlZmluZSBZVDg1MjFfUkMxUl9SR01JSV8wXzE1 MF9OUwkJMQorKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMF8zMDBfTlMJCTIKKysjZGVmaW5l IFlUODUyMV9SQzFSX1JHTUlJXzBfNDUwX05TCQkzCisrI2RlZmluZSBZVDg1MjFfUkMxUl9SR01J SV8wXzYwMF9OUwkJNAorKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMF83NTBfTlMJCTUKKysj ZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzBfOTAwX05TCQk2CisrI2RlZmluZSBZVDg1MjFfUkMx Ul9SR01JSV8xXzA1MF9OUwkJNworKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMV8yMDBfTlMJ CTgKKysjZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzFfMzUwX05TCQk5CisrI2RlZmluZSBZVDg1 MjFfUkMxUl9SR01JSV8xXzUwMF9OUwkJMTAKKysjZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzFf NjUwX05TCQkxMQorKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMV84MDBfTlMJCTEyCisrI2Rl ZmluZSBZVDg1MjFfUkMxUl9SR01JSV8xXzk1MF9OUwkJMTMKKysjZGVmaW5lIFlUODUyMV9SQzFS X1JHTUlJXzJfMTAwX05TCQkxNAorKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMl8yNTBfTlMJ CTE1CisgCisgI2RlZmluZSBZVFBIWV9NSVNDX0NPTkZJR19SRUcJCQkweEEwMDYKKyAjZGVmaW5l IFlUUEhZX01DUl9GSUJFUl9TUEVFRF9NQVNLCQlCSVQoMCkKK0BAIC0yMjIsNiArMjQ2LDI5IEBA CisgICovCisgI2RlZmluZSBZVFBIWV9XQ1JfVFlQRV9QVUxTRQkJCUJJVCgwKQorIAorKyNkZWZp bmUgWVRQSFlfU1lOQ0VfQ0ZHX1JFRwkJCTB4QTAxMgorKyNkZWZpbmUgWVQ4NTIxX1NDUl9TWU5D RV9FTkFCTEUJCQlCSVQoNSkKKysvKiAxYjAgb3V0cHV0IDI1bSBjbG9jaworKyAqIDFiMSBvdXRw dXQgMTI1bSBjbG9jayAgKmRlZmF1bHQqCisrICovCisrI2RlZmluZSBZVDg1MjFfU0NSX0NMS19G UkVfU0VMXzEyNU0JCUJJVCgzKQorKyNkZWZpbmUgWVQ4NTIxX1NDUl9DTEtfU1JDX01BU0sJCQlH RU5NQVNLKDIsIDEpCisrI2RlZmluZSBZVDg1MjFfU0NSX0NMS19TUkNfUExMXzEyNU0JCTAKKysj ZGVmaW5lIFlUODUyMV9TQ1JfQ0xLX1NSQ19VVFBfUlgJCTEKKysjZGVmaW5lIFlUODUyMV9TQ1Jf Q0xLX1NSQ19TRFNfUlgJCTIKKysjZGVmaW5lIFlUODUyMV9TQ1JfQ0xLX1NSQ19SRUZfMjVNCQkz CisrI2RlZmluZSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRQkJCUJJVCg2KQorKy8qIDFiMCBvdXRw dXQgMjVtIGNsb2NrICAgKmRlZmF1bHQqCisrICogMWIxIG91dHB1dCAxMjVtIGNsb2NrCisrICov CisrI2RlZmluZSBZVDg1MzFfU0NSX0NMS19GUkVfU0VMXzEyNU0JCUJJVCg0KQorKyNkZWZpbmUg WVQ4NTMxX1NDUl9DTEtfU1JDX01BU0sJCQlHRU5NQVNLKDMsIDEpCisrI2RlZmluZSBZVDg1MzFf U0NSX0NMS19TUkNfUExMXzEyNU0JCTAKKysjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19VVFBf UlgJCTEKKysjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19TRFNfUlgJCTIKKysjZGVmaW5lIFlU ODUzMV9TQ1JfQ0xLX1NSQ19DTE9DS19GUk9NX0RJR0lUQUwJMworKyNkZWZpbmUgWVQ4NTMxX1ND Ul9DTEtfU1JDX1JFRl8yNU0JCTQKKysjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19TU0NfMjVN CQk1CisgI2RlZmluZSBZVDg1MzFTX1NZTkNFX0NGR19SRUcJCQkweEEwMTIKKyAjZGVmaW5lIFlU ODUzMVNfU0NSX1NZTkNFX0VOQUJMRQkJQklUKDYpCisgCistLSAKKzIuMzkuMgorCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2Ni1uZXQtcGh5LUFkZC1kdHMtc3VwcG9y dC1mb3ItTW90b3Jjb21tLXl0ODUyMS1naWdhYml0LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMi9w YXRjaGVzLzAwNjYtbmV0LXBoeS1BZGQtZHRzLXN1cHBvcnQtZm9yLU1vdG9yY29tbS15dDg1MjEt Z2lnYWJpdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4y MDZjZWRiY2JkMjNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMi9wYXRjaGVz LzAwNjYtbmV0LXBoeS1BZGQtZHRzLXN1cHBvcnQtZm9yLU1vdG9yY29tbS15dDg1MjEtZ2lnYWJp dC5wYXRjaApAQCAtMCwwICsxLDM0NyBAQAorRnJvbSAxZGQ1OGRiN2YxY2U2MGMxMzc3MWEzMmQ1 NTNiZTgwMTEyOTYyNjAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRnJhbmsgU2Fl IDxGcmFuay5TYWVAbW90b3ItY29tbS5jb20+CitEYXRlOiBUaHUsIDIgRmViIDIwMjMgMTE6MDA6 MzUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2Ni83MF0gbmV0OiBwaHk6IEFkZCBkdHMgc3VwcG9y dCBmb3IgTW90b3Jjb21tIHl0ODUyMSBnaWdhYml0CisgZXRoZXJuZXQgcGh5CisKK0FkZCBkdHMg c3VwcG9ydCBmb3IgTW90b3Jjb21tIHl0ODUyMSBnaWdhYml0IGV0aGVybmV0IHBoeS4KKyBBZGQg eXRwaHlfcmdtaWlfY2xrX2RlbGF5X2NvbmZpZyBmdW5jdGlvbiB0byBzdXBwb3J0IGRzdCBjb25m aWcgZm9yCisgdGhlIGRlbGF5IG9mIHJnbWlpIGNsay4gVGhpcyBmdW5jaW9udCBpcyBjb21tb24g Zm9yIHl0ODUyMSwgeXQ4NTMxcworIGFuZCB5dDg1MzEuCisgVGhpcyBwYXRjaCBoYXMgYmVlbiB2 ZXJpZmllZCBvbiBBTTMzNXggcGxhdGZvcm0uCisKK1NpZ25lZC1vZmYtYnk6IEZyYW5rIFNhZSA8 RnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tPgorUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRy ZXdAbHVubi5jaD4KKy0tLQorIGRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyB8IDI1MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTk5IGlu c2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv cGh5L21vdG9yY29tbS5jIGIvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jCitpbmRleCBkODUy M2UzMzQyNGQuLmZjMDZmZTZlZjliYSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tb3Rv cmNvbW0uYworKysrIGIvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jCitAQCAtMTAsNiArMTAs NyBAQAorICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyAjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+CisgI2luY2x1ZGUgPGxpbnV4L3BoeS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorIAor ICNkZWZpbmUgUEhZX0lEX1lUODUxMQkJMHgwMDAwMDEwYQorICNkZWZpbmUgUEhZX0lEX1lUODUy MQkJMHgwMDAwMDExQQorQEAgLTE4NywyMSArMTg4LDkgQEAKKyAgKiAxYjEgdXNlIGludmVydGVk IHR4X2Nsa19yZ21paS4KKyAgKi8KKyAjZGVmaW5lIFlUODUyMV9SQzFSX1RYX0NMS19TRUxfSU5W RVJURUQJCUJJVCgxNCkKKy0vKiBUWCBHaWctRSBEZWxheSBpcyBiaXRzIDM6MCwgZGVmYXVsdCAw eDEKKy0gKiBUWCBGYXN0LUUgRGVsYXkgaXMgYml0cyA3OjQsIGRlZmF1bHQgMHhmCistICogUlgg RGVsYXkgaXMgYml0cyAxMzoxMCwgZGVmYXVsdCAweDAKKy0gKiBEZWxheSA9IDE1MHBzICogTgor LSAqIE9uID0gMjI1MHBzLCBvZmYgPSAwcHMKKy0gKi8KKyAjZGVmaW5lIFlUODUyMV9SQzFSX1JY X0RFTEFZX01BU0sJCUdFTk1BU0soMTMsIDEwKQorLSNkZWZpbmUgWVQ4NTIxX1JDMVJfUlhfREVM QVlfRU4JCQkoMHhGIDw8IDEwKQorLSNkZWZpbmUgWVQ4NTIxX1JDMVJfUlhfREVMQVlfRElTCQko MHgwIDw8IDEwKQorICNkZWZpbmUgWVQ4NTIxX1JDMVJfRkVfVFhfREVMQVlfTUFTSwkJR0VOTUFT Syg3LCA0KQorLSNkZWZpbmUgWVQ4NTIxX1JDMVJfRkVfVFhfREVMQVlfRU4JCSgweEYgPDwgNCkK Ky0jZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZX0RJUwkJKDB4MCA8PCA0KQorICNkZWZp bmUgWVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfTUFTSwkJR0VOTUFTSygzLCAwKQorLSNkZWZpbmUg WVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfRU4JCSgweEYgPDwgMCkKKy0jZGVmaW5lIFlUODUyMV9S QzFSX0dFX1RYX0RFTEFZX0RJUwkJKDB4MCA8PCAwKQorICNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdN SUlfMF8wMDBfTlMJCTAKKyAjZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzBfMTUwX05TCQkxCisg I2RlZmluZSBZVDg1MjFfUkMxUl9SR01JSV8wXzMwMF9OUwkJMgorQEAgLTI3NCw2ICsyNjMsMTAg QEAKKyAKKyAvKiBFeHRlbmRlZCBSZWdpc3RlciAgZW5kICovCisgCisrI2RlZmluZSBZVFBIWV9E VFNfT1VUUFVUX0NMS19ESVMJCTAKKysjZGVmaW5lIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzI1TQkJ MjUwMDAwMDAKKysjZGVmaW5lIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzEyNU0JCTEyNTAwMDAwMAor KworIHN0cnVjdCB5dDg1MjFfcHJpdiB7CisgCS8qIGNvbWJvX2FkdmVydGlzaW5nIGlzIHVzZWQg Zm9yIGNhc2Ugb2YgWVQ4NTIxIGluIGNvbWJvIG1vZGUsCisgCSAqIHRoaXMgbWVhbnMgdGhhdCB5 dDg1MjEgbWF5IHdvcmsgaW4gdXRwIG9yIGZpYmVyIG1vZGUgd2hpY2ggZGVwZW5kcworQEAgLTY0 MCw2ICs2MzMsMTQyIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3dyaXRlX3BhZ2Uoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldiwgaW50IHBhZ2UpCisgCXJldHVybiB5dHBoeV9tb2RpZnlfZXh0KHBoeWRl diwgWVQ4NTIxX1JFR19TUEFDRV9TRUxFQ1RfUkVHLCBtYXNrLCBzZXQpOworIH07CisgCisrLyoq CisrICogc3RydWN0IHl0cGh5X2NmZ19yZWdfbWFwIC0gbWFwIGEgY29uZmlnIHZhbHVlIHRvIGEg cmVnaXN0ZXIgdmFsdWUKKysgKiBAY2ZnOiB2YWx1ZSBpbiBkZXZpY2UgY29uZmlndXJhdGlvbgor KyAqIEByZWc6IHZhbHVlIGluIHRoZSByZWdpc3RlcgorKyAqLworK3N0cnVjdCB5dHBoeV9jZmdf cmVnX21hcCB7CisrCXUzMiBjZmc7CisrCXUzMiByZWc7CisrfTsKKysKKytzdGF0aWMgY29uc3Qg c3RydWN0IHl0cGh5X2NmZ19yZWdfbWFwIHl0cGh5X3JnbWlpX2RlbGF5c1tdID0geworKwkvKiBm b3IgdHggZGVsYXkgLyByeCBkZWxheSB3aXRoIFlUODUyMV9DQ1JfUlhDX0RMWV9FTiBpcyBub3Qg c2V0LiAqLworKwl7IDAsCVlUODUyMV9SQzFSX1JHTUlJXzBfMDAwX05TIH0sCisrCXsgMTUwLAlZ VDg1MjFfUkMxUl9SR01JSV8wXzE1MF9OUyB9LAorKwl7IDMwMCwJWVQ4NTIxX1JDMVJfUkdNSUlf MF8zMDBfTlMgfSwKKysJeyA0NTAsCVlUODUyMV9SQzFSX1JHTUlJXzBfNDUwX05TIH0sCisrCXsg NjAwLAlZVDg1MjFfUkMxUl9SR01JSV8wXzYwMF9OUyB9LAorKwl7IDc1MCwJWVQ4NTIxX1JDMVJf UkdNSUlfMF83NTBfTlMgfSwKKysJeyA5MDAsCVlUODUyMV9SQzFSX1JHTUlJXzBfOTAwX05TIH0s CisrCXsgMTA1MCwJWVQ4NTIxX1JDMVJfUkdNSUlfMV8wNTBfTlMgfSwKKysJeyAxMjAwLAlZVDg1 MjFfUkMxUl9SR01JSV8xXzIwMF9OUyB9LAorKwl7IDEzNTAsCVlUODUyMV9SQzFSX1JHTUlJXzFf MzUwX05TIH0sCisrCXsgMTUwMCwJWVQ4NTIxX1JDMVJfUkdNSUlfMV81MDBfTlMgfSwKKysJeyAx NjUwLAlZVDg1MjFfUkMxUl9SR01JSV8xXzY1MF9OUyB9LAorKwl7IDE4MDAsCVlUODUyMV9SQzFS X1JHTUlJXzFfODAwX05TIH0sCisrCXsgMTk1MCwJWVQ4NTIxX1JDMVJfUkdNSUlfMV85NTBfTlMg fSwJLyogZGVmYXVsdCB0eC9yeCBkZWxheSAqLworKwl7IDIxMDAsCVlUODUyMV9SQzFSX1JHTUlJ XzJfMTAwX05TIH0sCisrCXsgMjI1MCwJWVQ4NTIxX1JDMVJfUkdNSUlfMl8yNTBfTlMgfSwKKysK KysJLyogb25seSBmb3IgcnggZGVsYXkgd2l0aCBZVDg1MjFfQ0NSX1JYQ19ETFlfRU4gaXMgc2V0 LiAqLworKwl7IDAgICAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFS X1JHTUlJXzBfMDAwX05TIH0sCisrCXsgMTUwICArIFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9O UywJWVQ4NTIxX1JDMVJfUkdNSUlfMF8xNTBfTlMgfSwKKysJeyAzMDAgICsgWVQ4NTIxX0NDUl9S WENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9SR01JSV8wXzMwMF9OUyB9LAorKwl7IDQ1MCAg KyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFSX1JHTUlJXzBfNDUwX05T IH0sCisrCXsgNjAwICArIFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JDMVJf UkdNSUlfMF82MDBfTlMgfSwKKysJeyA3NTAgICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05T LAlZVDg1MjFfUkMxUl9SR01JSV8wXzc1MF9OUyB9LAorKwl7IDkwMCAgKyBZVDg1MjFfQ0NSX1JY Q19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFSX1JHTUlJXzBfOTAwX05TIH0sCisrCXsgMTA1MCAr IFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JDMVJfUkdNSUlfMV8wNTBfTlMg fSwKKysJeyAxMjAwICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9S R01JSV8xXzIwMF9OUyB9LAorKwl7IDEzNTAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMs CVlUODUyMV9SQzFSX1JHTUlJXzFfMzUwX05TIH0sCisrCXsgMTUwMCArIFlUODUyMV9DQ1JfUlhD X0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JDMVJfUkdNSUlfMV81MDBfTlMgfSwKKysJeyAxNjUwICsg WVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9SR01JSV8xXzY1MF9OUyB9 LAorKwl7IDE4MDAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFSX1JH TUlJXzFfODAwX05TIH0sCisrCXsgMTk1MCArIFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUywJ WVQ4NTIxX1JDMVJfUkdNSUlfMV85NTBfTlMgfSwKKysJeyAyMTAwICsgWVQ4NTIxX0NDUl9SWENf RExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9SR01JSV8yXzEwMF9OUyB9LAorKwl7IDIyNTAgKyBZ VDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFSX1JHTUlJXzJfMjUwX05TIH0K Kyt9OworKworK3N0YXRpYyB1MzIgeXRwaHlfZ2V0X2RlbGF5X3JlZ192YWx1ZShzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LAorKwkJCQkgICAgIGNvbnN0IGNoYXIgKnByb3BfbmFtZSwKKysJCQkJ ICAgICBjb25zdCBzdHJ1Y3QgeXRwaHlfY2ZnX3JlZ19tYXAgKnRibCwKKysJCQkJICAgICBpbnQg dGJfc2l6ZSwKKysJCQkJICAgICB1MTYgKnJ4Y19kbHlfZW4sCisrCQkJCSAgICAgdTMyIGRmbHQp CisreworKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwaHlkZXYtPm1kaW8uZGV2Lm9mX25v ZGU7CisrCWludCB0Yl9zaXplX2hhbGYgPSB0Yl9zaXplIC8gMjsKKysJdTMyIHZhbDsKKysJaW50 IGk7CisrCisrCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCBwcm9wX25hbWUsICZ2YWwp KQorKwkJZ290byBlcnJfZHRzX3ZhbDsKKysKKysJLyogd2hlbiByeGNfZGx5X2VuIGlzIE5VTEws IGl0IGlzIGdldCB0aGUgZGVsYXkgZm9yIHR4LCBvbmx5IGhhbGYgb2YKKysJICogdGJfc2l6ZSBp cyB2YWxpZC4KKysJICovCisrCWlmICghcnhjX2RseV9lbikKKysJCXRiX3NpemUgPSB0Yl9zaXpl X2hhbGY7CisrCisrCWZvciAoaSA9IDA7IGkgPCB0Yl9zaXplOyBpKyspIHsKKysJCWlmICh0Ymxb aV0uY2ZnID09IHZhbCkgeworKwkJCWlmIChyeGNfZGx5X2VuICYmIGkgPCB0Yl9zaXplX2hhbGYp CisrCQkJCSpyeGNfZGx5X2VuID0gMDsKKysJCQlyZXR1cm4gdGJsW2ldLnJlZzsKKysJCX0KKysJ fQorKworKwlwaHlkZXZfd2FybihwaHlkZXYsICJVbnN1cHBvcnRlZCB2YWx1ZSAlZCBmb3IgJXMg dXNpbmcgZGVmYXVsdCAoJXUpXG4iLAorKwkJICAgIHZhbCwgcHJvcF9uYW1lLCBkZmx0KTsKKysK KytlcnJfZHRzX3ZhbDoKKysJLyogd2hlbiByeGNfZGx5X2VuIGlzIG5vdCBOVUxMLCBpdCBpcyBn ZXQgdGhlIGRlbGF5IGZvciByeC4KKysJICogVGhlIHJ4IGRlZmF1bHQgaW4gZHRzIGFuZCB5dHBo eV9yZ21paV9jbGtfZGVsYXlfY29uZmlnIGlzIDE5NTAgcHMsCisrCSAqIHNvIFlUODUyMV9DQ1Jf UlhDX0RMWV9FTiBzaG91bGQgbm90IGJlIHNldC4KKysJICovCisrCWlmIChyeGNfZGx5X2VuKQor KwkJKnJ4Y19kbHlfZW4gPSAwOworKworKwlyZXR1cm4gZGZsdDsKKyt9CisrCisrc3RhdGljIGlu dCB5dHBoeV9yZ21paV9jbGtfZGVsYXlfY29uZmlnKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYp CisreworKwlpbnQgdGJfc2l6ZSA9IEFSUkFZX1NJWkUoeXRwaHlfcmdtaWlfZGVsYXlzKTsKKysJ dTE2IHJ4Y19kbHlfZW4gPSBZVDg1MjFfQ0NSX1JYQ19ETFlfRU47CisrCXUzMiByeF9yZWcsIHR4 X3JlZzsKKysJdTE2IG1hc2ssIHZhbCA9IDA7CisrCWludCByZXQ7CisrCisrCXJ4X3JlZyA9IHl0 cGh5X2dldF9kZWxheV9yZWdfdmFsdWUocGh5ZGV2LCAicngtaW50ZXJuYWwtZGVsYXktcHMiLAor KwkJCQkJICAgeXRwaHlfcmdtaWlfZGVsYXlzLCB0Yl9zaXplLAorKwkJCQkJICAgJnJ4Y19kbHlf ZW4sCisrCQkJCQkgICBZVDg1MjFfUkMxUl9SR01JSV8xXzk1MF9OUyk7CisrCXR4X3JlZyA9IHl0 cGh5X2dldF9kZWxheV9yZWdfdmFsdWUocGh5ZGV2LCAidHgtaW50ZXJuYWwtZGVsYXktcHMiLAor KwkJCQkJICAgeXRwaHlfcmdtaWlfZGVsYXlzLCB0Yl9zaXplLCBOVUxMLAorKwkJCQkJICAgWVQ4 NTIxX1JDMVJfUkdNSUlfMV85NTBfTlMpOworKworKwlzd2l0Y2ggKHBoeWRldi0+aW50ZXJmYWNl KSB7CisrCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOgorKwkJcnhjX2RseV9lbiA9IDA7 CisrCQlicmVhazsKKysJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfUlhJRDoKKysJCXZh bCB8PSBGSUVMRF9QUkVQKFlUODUyMV9SQzFSX1JYX0RFTEFZX01BU0ssIHJ4X3JlZyk7CisrCQli cmVhazsKKysJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfVFhJRDoKKysJCXJ4Y19kbHlf ZW4gPSAwOworKwkJdmFsIHw9IEZJRUxEX1BSRVAoWVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfTUFT SywgdHhfcmVnKTsKKysJCWJyZWFrOworKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9J RDoKKysJCXZhbCB8PSBGSUVMRF9QUkVQKFlUODUyMV9SQzFSX1JYX0RFTEFZX01BU0ssIHJ4X3Jl ZykgfAorKwkJICAgICAgIEZJRUxEX1BSRVAoWVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfTUFTSywg dHhfcmVnKTsKKysJCWJyZWFrOworKwlkZWZhdWx0OiAvKiBkbyBub3Qgc3VwcG9ydCBvdGhlciBt b2RlcyAqLworKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworKwl9CisrCisrCXJldCA9IHl0cGh5X21v ZGlmeV9leHQocGh5ZGV2LCBZVDg1MjFfQ0hJUF9DT05GSUdfUkVHLAorKwkJCSAgICAgICBZVDg1 MjFfQ0NSX1JYQ19ETFlfRU4sIHJ4Y19kbHlfZW4pOworKwlpZiAocmV0IDwgMCkKKysJCXJldHVy biByZXQ7CisrCisrCS8qIEdlbmVyYWxseSwgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBhZGp1c3Qg WVQ4NTIxX1JDMVJfRkVfVFhfREVMQVkgKi8KKysJbWFzayA9IFlUODUyMV9SQzFSX1JYX0RFTEFZ X01BU0sgfCBZVDg1MjFfUkMxUl9HRV9UWF9ERUxBWV9NQVNLOworKwlyZXR1cm4geXRwaHlfbW9k aWZ5X2V4dChwaHlkZXYsIFlUODUyMV9SR01JSV9DT05GSUcxX1JFRywgbWFzaywgdmFsKTsKKyt9 CisrCisgLyoqCisgICogeXQ4NTIxX3Byb2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0 IHN1aXRhYmxlIHBvbGxpbmdfbW9kZQorICAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhICZzdHJ1 Y3QgcGh5X2RldmljZQorQEAgLTY0OCw5ICs3NzcsMTIgQEAgc3RhdGljIGludCB5dDg1MjFfd3Jp dGVfcGFnZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBpbnQgcGFnZSkKKyAgKi8KKyBzdGF0 aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQorIHsKKysJc3Ry dWN0IGRldmljZV9ub2RlICpub2RlID0gcGh5ZGV2LT5tZGlvLmRldi5vZl9ub2RlOworIAlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSAmcGh5ZGV2LT5tZGlvLmRldjsKKyAJc3RydWN0IHl0ODUyMV9wcml2 ICpwcml2OworIAlpbnQgY2hpcF9jb25maWc7CisrCXUxNiBtYXNrLCB2YWw7CisrCXUzMiBmcmVx OworIAlpbnQgcmV0OworIAorIAlwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2 KSwgR0ZQX0tFUk5FTCk7CitAQCAtNjk1LDcgKzgyNyw0NSBAQCBzdGF0aWMgaW50IHl0ODUyMV9w cm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQorIAkJCXJldHVybiByZXQ7CisgCX0KKyAK Ky0JcmV0dXJuIDA7CisrCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAibW90b3Jjb21t LGNsay1vdXQtZnJlcXVlbmN5LWh6IiwgJmZyZXEpKQorKwkJZnJlcSA9IFlUUEhZX0RUU19PVVRQ VVRfQ0xLX0RJUzsKKysKKysJaWYgKHBoeWRldi0+ZHJ2LT5waHlfaWQgPT0gUEhZX0lEX1lUODUy MSkgeworKwkJc3dpdGNoIChmcmVxKSB7CisrCQljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLX0RJ UzoKKysJCQltYXNrID0gWVQ4NTIxX1NDUl9TWU5DRV9FTkFCTEU7CisrCQkJdmFsID0gMDsKKysJ CQlicmVhazsKKysJCWNhc2UgWVRQSFlfRFRTX09VVFBVVF9DTEtfMjVNOgorKwkJCW1hc2sgPSBZ VDg1MjFfU0NSX1NZTkNFX0VOQUJMRSB8CisrCQkJICAgICAgIFlUODUyMV9TQ1JfQ0xLX1NSQ19N QVNLIHwKKysJCQkgICAgICAgWVQ4NTIxX1NDUl9DTEtfRlJFX1NFTF8xMjVNOworKwkJCXZhbCA9 IFlUODUyMV9TQ1JfU1lOQ0VfRU5BQkxFIHwKKysJCQkgICAgICBGSUVMRF9QUkVQKFlUODUyMV9T Q1JfQ0xLX1NSQ19NQVNLLAorKwkJCQkJIFlUODUyMV9TQ1JfQ0xLX1NSQ19SRUZfMjVNKTsKKysJ CQlicmVhazsKKysJCWNhc2UgWVRQSFlfRFRTX09VVFBVVF9DTEtfMTI1TToKKysJCQltYXNrID0g WVQ4NTIxX1NDUl9TWU5DRV9FTkFCTEUgfAorKwkJCSAgICAgICBZVDg1MjFfU0NSX0NMS19TUkNf TUFTSyB8CisrCQkJICAgICAgIFlUODUyMV9TQ1JfQ0xLX0ZSRV9TRUxfMTI1TTsKKysJCQl2YWwg PSBZVDg1MjFfU0NSX1NZTkNFX0VOQUJMRSB8CisrCQkJICAgICAgWVQ4NTIxX1NDUl9DTEtfRlJF X1NFTF8xMjVNIHwKKysJCQkgICAgICBGSUVMRF9QUkVQKFlUODUyMV9TQ1JfQ0xLX1NSQ19NQVNL LAorKwkJCQkJIFlUODUyMV9TQ1JfQ0xLX1NSQ19QTExfMTI1TSk7CisrCQkJYnJlYWs7CisrCQlk ZWZhdWx0OgorKwkJCXBoeWRldl93YXJuKHBoeWRldiwgIkZyZXEgZXJyOiV1XG4iLCBmcmVxKTsK KysJCQlyZXR1cm4gLUVJTlZBTDsKKysJCX0KKysJfSBlbHNlIGlmIChwaHlkZXYtPmRydi0+cGh5 X2lkID09IFBIWV9JRF9ZVDg1MzFTKSB7CisrCQlyZXR1cm4gMDsKKysJfSBlbHNlIHsKKysJCXBo eWRldl93YXJuKHBoeWRldiwgIlBIWSBpZCBlcnJcbiIpOworKwkJcmV0dXJuIC1FSU5WQUw7Cisr CX0KKysKKysJcmV0dXJuIHl0cGh5X21vZGlmeV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVRQSFlf U1lOQ0VfQ0ZHX1JFRywgbWFzaywKKysJCQkJCSAgdmFsKTsKKyB9CisgCisgLyoqCitAQCAtMTE4 MCw2MSArMTM1MCwzNiBAQCBzdGF0aWMgaW50IHl0ODUyMV9yZXN1bWUoc3RydWN0IHBoeV9kZXZp Y2UgKnBoeWRldikKKyAgKi8KKyBzdGF0aWMgaW50IHl0ODUyMV9jb25maWdfaW5pdChzdHJ1Y3Qg cGh5X2RldmljZSAqcGh5ZGV2KQorIHsKKysJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGh5 ZGV2LT5tZGlvLmRldi5vZl9ub2RlOworIAlpbnQgb2xkX3BhZ2U7CisgCWludCByZXQgPSAwOwor LQl1MTYgdmFsOworIAorIAlvbGRfcGFnZSA9IHBoeV9zZWxlY3RfcGFnZShwaHlkZXYsIFlUODUy MV9SU1NSX1VUUF9TUEFDRSk7CisgCWlmIChvbGRfcGFnZSA8IDApCisgCQlnb3RvIGVycl9yZXN0 b3JlX3BhZ2U7CisgCistCXN3aXRjaCAocGh5ZGV2LT5pbnRlcmZhY2UpIHsKKy0JY2FzZSBQSFlf SU5URVJGQUNFX01PREVfUkdNSUk6CistCQl2YWwgPSBZVDg1MjFfUkMxUl9HRV9UWF9ERUxBWV9E SVMgfCBZVDg1MjFfUkMxUl9GRV9UWF9ERUxBWV9ESVM7CistCQl2YWwgfD0gWVQ4NTIxX1JDMVJf UlhfREVMQVlfRElTOworLQkJYnJlYWs7CistCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJ X1JYSUQ6CistCQl2YWwgPSBZVDg1MjFfUkMxUl9HRV9UWF9ERUxBWV9ESVMgfCBZVDg1MjFfUkMx Ul9GRV9UWF9ERUxBWV9ESVM7CistCQl2YWwgfD0gWVQ4NTIxX1JDMVJfUlhfREVMQVlfRU47Cist CQlicmVhazsKKy0JY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfVFhJRDoKKy0JCXZhbCA9 IFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX0VOIHwgWVQ4NTIxX1JDMVJfRkVfVFhfREVMQVlfRU47 CistCQl2YWwgfD0gWVQ4NTIxX1JDMVJfUlhfREVMQVlfRElTOworLQkJYnJlYWs7CistCWNhc2Ug UEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX0lEOgorLQkJdmFsID0gWVQ4NTIxX1JDMVJfR0VfVFhf REVMQVlfRU4gfCBZVDg1MjFfUkMxUl9GRV9UWF9ERUxBWV9FTjsKKy0JCXZhbCB8PSBZVDg1MjFf UkMxUl9SWF9ERUxBWV9FTjsKKy0JCWJyZWFrOworLQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9T R01JSToKKy0JCWJyZWFrOworLQlkZWZhdWx0OiAvKiBkbyBub3Qgc3VwcG9ydCBvdGhlciBtb2Rl cyAqLworLQkJcmV0ID0gLUVPUE5PVFNVUFA7CistCQlnb3RvIGVycl9yZXN0b3JlX3BhZ2U7Cist CX0KKy0KKyAJLyogc2V0IHJnbWlpIGRlbGF5IG1vZGUgKi8KKyAJaWYgKHBoeWRldi0+aW50ZXJm YWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9TR01JSSkgeworLQkJcmV0ID0geXRwaHlfbW9kaWZ5 X2V4dChwaHlkZXYsIFlUODUyMV9SR01JSV9DT05GSUcxX1JFRywKKy0JCQkJICAgICAgIChZVDg1 MjFfUkMxUl9SWF9ERUxBWV9NQVNLIHwKKy0JCQkJICAgICAgIFlUODUyMV9SQzFSX0ZFX1RYX0RF TEFZX01BU0sgfAorLQkJCQkgICAgICAgWVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfTUFTSyksCist CQkJCSAgICAgICB2YWwpOworKwkJcmV0ID0geXRwaHlfcmdtaWlfY2xrX2RlbGF5X2NvbmZpZyhw aHlkZXYpOworIAkJaWYgKHJldCA8IDApCisgCQkJZ290byBlcnJfcmVzdG9yZV9wYWdlOworIAl9 CisgCistCS8qIGRpc2FibGUgYXV0byBzbGVlcCAqLworLQlyZXQgPSB5dHBoeV9tb2RpZnlfZXh0 KHBoeWRldiwgWVQ4NTIxX0VYVFJFR19TTEVFUF9DT05UUk9MMV9SRUcsCistCQkJICAgICAgIFlU ODUyMV9FU0MxUl9TTEVFUF9TVywgMCk7CistCWlmIChyZXQgPCAwKQorLQkJZ290byBlcnJfcmVz dG9yZV9wYWdlOworLQorLQkvKiBlbmFibGUgUlhDIGNsb2NrIHdoZW4gbm8gd2lyZSBwbHVnICov CistCXJldCA9IHl0cGh5X21vZGlmeV9leHQocGh5ZGV2LCBZVDg1MjFfQ0xPQ0tfR0FUSU5HX1JF RywKKy0JCQkgICAgICAgWVQ4NTIxX0NHUl9SWF9DTEtfRU4sIDApOworLQlpZiAocmV0IDwgMCkK Ky0JCWdvdG8gZXJyX3Jlc3RvcmVfcGFnZTsKKysJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChu b2RlLCAibW90b3Jjb21tLGF1dG8tc2xlZXAtZGlzYWJsZWQiKSkgeworKwkJLyogZGlzYWJsZSBh dXRvIHNsZWVwICovCisrCQlyZXQgPSB5dHBoeV9tb2RpZnlfZXh0KHBoeWRldiwgWVQ4NTIxX0VY VFJFR19TTEVFUF9DT05UUk9MMV9SRUcsCisrCQkJCSAgICAgICBZVDg1MjFfRVNDMVJfU0xFRVBf U1csIDApOworKwkJaWYgKHJldCA8IDApCisrCQkJZ290byBlcnJfcmVzdG9yZV9wYWdlOworKwl9 CisgCisrCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwgIm1vdG9yY29tbSxrZWVwLXBs bC1lbmFibGVkIikpIHsKKysJCS8qIGVuYWJsZSBSWEMgY2xvY2sgd2hlbiBubyB3aXJlIHBsdWcg Ki8KKysJCXJldCA9IHl0cGh5X21vZGlmeV9leHQocGh5ZGV2LCBZVDg1MjFfQ0xPQ0tfR0FUSU5H X1JFRywKKysJCQkJICAgICAgIFlUODUyMV9DR1JfUlhfQ0xLX0VOLCAwKTsKKysJCWlmIChyZXQg PCAwKQorKwkJCWdvdG8gZXJyX3Jlc3RvcmVfcGFnZTsKKysJfQorIGVycl9yZXN0b3JlX3BhZ2U6 CisgCXJldHVybiBwaHlfcmVzdG9yZV9wYWdlKHBoeWRldiwgb2xkX3BhZ2UsIHJldCk7CisgfQor LS0gCisyLjM5LjIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjct bmV0LXBoeS1BZGQtZHRzLXN1cHBvcnQtZm9yLU1vdG9yY29tbS15dDg1MzFzLWdpZ2FiaS5wYXRj aCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY3LW5ldC1waHktQWRkLWR0cy1zdXBwb3J0 LWZvci1Nb3RvcmNvbW0teXQ4NTMxcy1naWdhYmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMC4uMmFhYzlhZWIyNWZhMwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY3LW5ldC1waHktQWRkLWR0cy1zdXBwb3J0LWZvci1N b3RvcmNvbW0teXQ4NTMxcy1naWdhYmkucGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK0Zyb20gNWQ5 NDJlZmUwMDZjOGQyMmNmMDNiZTdjMTQyM2UzNzY2NzU2MDcyOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEZyYW5rIFNhZSA8RnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tPgorRGF0ZTog VGh1LCAyIEZlYiAyMDIzIDExOjAwOjM2ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNjcvNzBdIG5l dDogcGh5OiBBZGQgZHRzIHN1cHBvcnQgZm9yIE1vdG9yY29tbSB5dDg1MzFzIGdpZ2FiaXQKKyBl dGhlcm5ldCBwaHkKKworQWRkIGR0cyBzdXBwb3J0IGZvciBNb3RvcmNvbW0geXQ4NTMxcyBnaWdh Yml0IGV0aGVybmV0IHBoeS4KKyBDaGFuZ2UgeXQ4NTIxX3Byb2JlIHRvIHN1cHBvcnQgY2xrIGNv bmZpZyBvZiB5dDg1MzFzLiBCZWNhc2UKKyB5dDg1MjFfcHJvYmUgZG9lcyB0aGUgdGhpbmdzIHdo aWNoIHl0ODUzMXMgaXMgbmVlZGVkLCBzbworIHJlbW92ZWQgeXQ4NTMxcyBmdW5jdGlvbi4KKyBU aGlzIHBhdGNoIGhhcyBiZWVuIHZlcmlmaWVkIG9uIEFNMzM1eCBwbGF0Zm9ybSB3aXRoIHl0ODUz MXMgYm9hcmQuCisKK1NpZ25lZC1vZmYtYnk6IEZyYW5rIFNhZSA8RnJhbmsuU2FlQG1vdG9yLWNv bW0uY29tPgorUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KKy0tLQor IGRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyB8IDUxICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjQgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9k cml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKK2luZGV4IGZjMDZmZTZlZjliYS4uNzgzOTIxNzQ1 MzZiIDEwMDY0NAorLS0tIGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jCisrKysgYi9kcml2 ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKK0BAIC0yNTgsOCArMjU4LDYgQEAKKyAjZGVmaW5lIFlU ODUzMV9TQ1JfQ0xLX1NSQ19DTE9DS19GUk9NX0RJR0lUQUwJMworICNkZWZpbmUgWVQ4NTMxX1ND Ul9DTEtfU1JDX1JFRl8yNU0JCTQKKyAjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19TU0NfMjVN CQk1CistI2RlZmluZSBZVDg1MzFTX1NZTkNFX0NGR19SRUcJCQkweEEwMTIKKy0jZGVmaW5lIFlU ODUzMVNfU0NSX1NZTkNFX0VOQUJMRQkJQklUKDYpCisgCisgLyogRXh0ZW5kZWQgUmVnaXN0ZXIg IGVuZCAqLworIAorQEAgLTg1OCw3ICs4NTYsMzIgQEAgc3RhdGljIGludCB5dDg1MjFfcHJvYmUo c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKKyAJCQlyZXR1cm4gLUVJTlZBTDsKKyAJCX0KKyAJ fSBlbHNlIGlmIChwaHlkZXYtPmRydi0+cGh5X2lkID09IFBIWV9JRF9ZVDg1MzFTKSB7CistCQly ZXR1cm4gMDsKKysJCXN3aXRjaCAoZnJlcSkgeworKwkJY2FzZSBZVFBIWV9EVFNfT1VUUFVUX0NM S19ESVM6CisrCQkJbWFzayA9IFlUODUzMV9TQ1JfU1lOQ0VfRU5BQkxFOworKwkJCXZhbCA9IDA7 CisrCQkJYnJlYWs7CisrCQljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzI1TToKKysJCQltYXNr ID0gWVQ4NTMxX1NDUl9TWU5DRV9FTkFCTEUgfAorKwkJCSAgICAgICBZVDg1MzFfU0NSX0NMS19T UkNfTUFTSyB8CisrCQkJICAgICAgIFlUODUzMV9TQ1JfQ0xLX0ZSRV9TRUxfMTI1TTsKKysJCQl2 YWwgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8CisrCQkJICAgICAgRklFTERfUFJFUChZVDg1 MzFfU0NSX0NMS19TUkNfTUFTSywKKysJCQkJCSBZVDg1MzFfU0NSX0NMS19TUkNfUkVGXzI1TSk7 CisrCQkJYnJlYWs7CisrCQljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzEyNU06CisrCQkJbWFz ayA9IFlUODUzMV9TQ1JfU1lOQ0VfRU5BQkxFIHwKKysJCQkgICAgICAgWVQ4NTMxX1NDUl9DTEtf U1JDX01BU0sgfAorKwkJCSAgICAgICBZVDg1MzFfU0NSX0NMS19GUkVfU0VMXzEyNU07CisrCQkJ dmFsID0gWVQ4NTMxX1NDUl9TWU5DRV9FTkFCTEUgfAorKwkJCSAgICAgIFlUODUzMV9TQ1JfQ0xL X0ZSRV9TRUxfMTI1TSB8CisrCQkJICAgICAgRklFTERfUFJFUChZVDg1MzFfU0NSX0NMS19TUkNf TUFTSywKKysJCQkJCSBZVDg1MzFfU0NSX0NMS19TUkNfUExMXzEyNU0pOworKwkJCWJyZWFrOwor KwkJZGVmYXVsdDoKKysJCQlwaHlkZXZfd2FybihwaHlkZXYsICJGcmVxIGVycjoldVxuIiwgZnJl cSk7CisrCQkJcmV0dXJuIC1FSU5WQUw7CisrCQl9CisgCX0gZWxzZSB7CisgCQlwaHlkZXZfd2Fy bihwaHlkZXYsICJQSFkgaWQgZXJyXG4iKTsKKyAJCXJldHVybiAtRUlOVkFMOworQEAgLTg2OCwy NiArODkxLDYgQEAgc3RhdGljIGludCB5dDg1MjFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBo eWRldikKKyAJCQkJCSAgdmFsKTsKKyB9CisgCistLyoqCistICogeXQ4NTMxc19wcm9iZSgpIC0g cmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGUKKy0gKiBAcGh5 ZGV2OiBhIHBvaW50ZXIgdG8gYSAmc3RydWN0IHBoeV9kZXZpY2UKKy0gKgorLSAqIHJldHVybnMg MCBvciBuZWdhdGl2ZSBlcnJubyBjb2RlCistICovCistc3RhdGljIGludCB5dDg1MzFzX3Byb2Jl KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCisteworLQlpbnQgcmV0OworLQorLQkvKiBEaXNh YmxlIFN5bmNFIGNsb2NrIG91dHB1dCBieSBkZWZhdWx0ICovCistCXJldCA9IHl0cGh5X21vZGlm eV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVQ4NTMxU19TWU5DRV9DRkdfUkVHLAorLQkJCQkJIFlU ODUzMVNfU0NSX1NZTkNFX0VOQUJMRSwgMCk7CistCWlmIChyZXQgPCAwKQorLQkJcmV0dXJuIHJl dDsKKy0KKy0JLyogc2FtZSBhcyB5dDg1MjFfcHJvYmUgKi8KKy0JcmV0dXJuIHl0ODUyMV9wcm9i ZShwaHlkZXYpOworLX0KKy0KKyAvKioKKyAgKiB5dHBoeV91dHBfcmVhZF9scGEoKSAtIHJlYWQg TFBBIHRoZW4gc2V0dXAgbHBfYWR2ZXJ0aXNpbmcgZm9yIHV0cAorICAqIEBwaHlkZXY6IGEgcG9p bnRlciB0byBhICZzdHJ1Y3QgcGh5X2RldmljZQorQEAgLTE5NzAsNyArMTk3Myw3IEBAIHN0YXRp YyBzdHJ1Y3QgcGh5X2RyaXZlciBtb3RvcmNvbW1fcGh5X2RydnNbXSA9IHsKKyAJCVBIWV9JRF9N QVRDSF9FWEFDVChQSFlfSURfWVQ4NTMxUyksCisgCQkubmFtZQkJPSAiWVQ4NTMxUyBHaWdhYml0 IEV0aGVybmV0IiwKKyAJCS5nZXRfZmVhdHVyZXMJPSB5dDg1MjFfZ2V0X2ZlYXR1cmVzLAorLQkJ LnByb2JlCQk9IHl0ODUzMXNfcHJvYmUsCisrCQkucHJvYmUJCT0geXQ4NTIxX3Byb2JlLAorIAkJ LnJlYWRfcGFnZQk9IHl0ODUyMV9yZWFkX3BhZ2UsCisgCQkud3JpdGVfcGFnZQk9IHl0ODUyMV93 cml0ZV9wYWdlLAorIAkJLmdldF93b2wJPSB5dHBoeV9nZXRfd29sLAorLS0gCisyLjM5LjIKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjgtbmV0LXBoeS1BZGQtZHJp dmVyLWZvci1Nb3RvcmNvbW0teXQ4NTMxLWdpZ2FiaXQtZXRoZS5wYXRjaCBiL3NyY3BrZ3MvbGlu dXg2LjIvcGF0Y2hlcy8wMDY4LW5ldC1waHktQWRkLWRyaXZlci1mb3ItTW90b3Jjb21tLXl0ODUz MS1naWdhYml0LWV0aGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uY2Q2M2U0OTY0NDhhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjIv cGF0Y2hlcy8wMDY4LW5ldC1waHktQWRkLWRyaXZlci1mb3ItTW90b3Jjb21tLXl0ODUzMS1naWdh Yml0LWV0aGUucGF0Y2gKQEAgLTAsMCArMSwzMDggQEAKK0Zyb20gNDA2N2M1MzFkOWVkNGNjYWIw ZDEzNGZiNjQ4NTZhNjJhYzkwNDRjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZy YW5rIFNhZSA8RnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tPgorRGF0ZTogVGh1LCAyIEZlYiAyMDIz IDExOjAwOjM3ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNjgvNzBdIG5ldDogcGh5OiBBZGQgZHJp dmVyIGZvciBNb3RvcmNvbW0geXQ4NTMxIGdpZ2FiaXQKKyBldGhlcm5ldCBwaHkKKworQWRkIGEg ZHJpdmVyIGZvciB0aGUgbW90b3Jjb21tIHl0ODUzMSBnaWdhYml0IGV0aGVybmV0IHBoeS4gV2Ug aGF2ZQorIHZlcmlmaWVkIHRoZSBkcml2ZXIgb24gQU0zMzV4IHBsYXRmb3JtIHdpdGggeXQ4NTMx IGJvYXJkLiBPbiB0aGUKKyBib2FyZCwgeXQ4NTMxIGdpZ2FiaXQgZXRoZXJuZXQgcGh5IHdvcmtz IGluIHV0cCBtb2RlLCBSR01JSQorIGludGVyZmFjZSwgc3VwcG9ydHMgMTAwME0vMTAwTS8xME0g c3BlZWRzLCBhbmQgd29sKG1hZ2ljIHBhY2thZ2UpLgorCitTaWduZWQtb2ZmLWJ5OiBGcmFuayBT YWUgPEZyYW5rLlNhZUBtb3Rvci1jb21tLmNvbT4KK1Jldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8 YW5kcmV3QGx1bm4uY2g+CistLS0KKyBkcml2ZXJzL25ldC9waHkvS2NvbmZpZyAgICAgfCAgIDIg Ky0KKyBkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgfCAyMDggKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCisgMiBmaWxlcyBjaGFuZ2VkLCAyMDcgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnIGIv ZHJpdmVycy9uZXQvcGh5L0tjb25maWcKK2luZGV4IDEzMjcyOTBkZWNhYi4uNmJmNTU3ZWQwYzhl IDEwMDY0NAorLS0tIGEvZHJpdmVycy9uZXQvcGh5L0tjb25maWcKKysrKyBiL2RyaXZlcnMvbmV0 L3BoeS9LY29uZmlnCitAQCAtMjU3LDcgKzI1Nyw3IEBAIGNvbmZpZyBNT1RPUkNPTU1fUEhZCisg CXRyaXN0YXRlICJNb3RvcmNvbW0gUEhZcyIKKyAJaGVscAorIAkgIEVuYWJsZXMgc3VwcG9ydCBm b3IgTW90b3Jjb21tIG5ldHdvcmsgUEhZcy4KKy0JICBDdXJyZW50bHkgc3VwcG9ydHMgdGhlIFlU ODUxMSwgWVQ4NTIxLCBZVDg1MzFTIEdpZ2FiaXQgRXRoZXJuZXQgUEhZcy4KKysJICBDdXJyZW50 bHkgc3VwcG9ydHMgWVQ4NXh4IEdpZ2FiaXQgRXRoZXJuZXQgUEhZcy4KKyAKKyBjb25maWcgTkFU SU9OQUxfUEhZCisgCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIFBIWXMiCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jIGIvZHJpdmVycy9uZXQvcGh5L21v dG9yY29tbS5jCitpbmRleCA3ODM5MjE3NDUzNmIuLjNmOTY2NTljYWI4YyAxMDA2NDQKKy0tLSBh L2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYworKysrIGIvZHJpdmVycy9uZXQvcGh5L21vdG9y Y29tbS5jCitAQCAtMSw2ICsxLDYgQEAKKyAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCsKKyAvKgorLSAqIE1vdG9yY29tbSA4NTExLzg1MjEvODUzMVMgUEhZIGRyaXZlci4KKysg KiBNb3RvcmNvbW0gODUxMS84NTIxLzg1MzEvODUzMVMgUEhZIGRyaXZlci4KKyAgKgorICAqIEF1 dGhvcjogUGV0ZXIgR2VpcyA8cGd3aXBlb3V0QGdtYWlsLmNvbT4KKyAgKiBBdXRob3I6IEZyYW5r IDxGcmFuay5TYWVAbW90b3ItY29tbS5jb20+CitAQCAtMTQsNiArMTQsNyBAQAorIAorICNkZWZp bmUgUEhZX0lEX1lUODUxMQkJMHgwMDAwMDEwYQorICNkZWZpbmUgUEhZX0lEX1lUODUyMQkJMHgw MDAwMDExQQorKyNkZWZpbmUgUEhZX0lEX1lUODUzMQkJMHg0RjUxRTkxQgorICNkZWZpbmUgUEhZ X0lEX1lUODUzMVMJCTB4NEY1MUU5MUEKKyAKKyAvKiBZVDg1MjEvWVQ4NTMxUyBSZWdpc3RlciBP dmVydmlldworQEAgLTUxNyw2ICs1MTgsNjEgQEAgc3RhdGljIGludCB5dHBoeV9zZXRfd29sKHN0 cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHN0cnVjdCBldGh0b29sX3dvbGluZm8gKndvbCkKKyAJ cmV0dXJuIHBoeV9yZXN0b3JlX3BhZ2UocGh5ZGV2LCBvbGRfcGFnZSwgcmV0KTsKKyB9CisgCisr c3RhdGljIGludCB5dDg1MzFfc2V0X3dvbChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LAorKwkJ CSAgc3RydWN0IGV0aHRvb2xfd29saW5mbyAqd29sKQorK3sKKysJY29uc3QgdTE2IG1hY19hZGRy X3JlZ1tdID0geworKwkJWVRQSFlfV09MX01BQ0FERFIyX1JFRywKKysJCVlUUEhZX1dPTF9NQUNB RERSMV9SRUcsCisrCQlZVFBIWV9XT0xfTUFDQUREUjBfUkVHLAorKwl9OworKwljb25zdCB1OCAq bWFjX2FkZHI7CisrCXUxNiBtYXNrLCB2YWw7CisrCWludCByZXQ7CisrCXU4IGk7CisrCisrCWlm ICh3b2wtPndvbG9wdHMgJiBXQUtFX01BR0lDKSB7CisrCQltYWNfYWRkciA9IHBoeWRldi0+YXR0 YWNoZWRfZGV2LT5kZXZfYWRkcjsKKysKKysJCS8qIFN0b3JlIHRoZSBkZXZpY2UgYWRkcmVzcyBm b3IgdGhlIG1hZ2ljIHBhY2tldCAqLworKwkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworKwkJ CXJldCA9IHl0cGh5X3dyaXRlX2V4dF93aXRoX2xvY2socGh5ZGV2LCBtYWNfYWRkcl9yZWdbaV0s CisrCQkJCQkJCSgobWFjX2FkZHJbaSAqIDJdIDw8IDgpKSB8CisrCQkJCQkJCShtYWNfYWRkcltp ICogMiArIDFdKSk7CisrCQkJaWYgKHJldCA8IDApCisrCQkJCXJldHVybiByZXQ7CisrCQl9Cisr CisrCQkvKiBFbmFibGUgV09MIGZlYXR1cmUgKi8KKysJCW1hc2sgPSBZVFBIWV9XQ1JfUFVMU0Vf V0lEVEhfTUFTSyB8IFlUUEhZX1dDUl9JTlRSX1NFTDsKKysJCXZhbCA9IFlUUEhZX1dDUl9FTkFC TEUgfCBZVFBIWV9XQ1JfSU5UUl9TRUw7CisrCQl2YWwgfD0gWVRQSFlfV0NSX1RZUEVfUFVMU0Ug fCBZVFBIWV9XQ1JfUFVMU0VfV0lEVEhfNjcyTVM7CisrCQlyZXQgPSB5dHBoeV9tb2RpZnlfZXh0 X3dpdGhfbG9jayhwaHlkZXYsIFlUUEhZX1dPTF9DT05GSUdfUkVHLAorKwkJCQkJCSBtYXNrLCB2 YWwpOworKwkJaWYgKHJldCA8IDApCisrCQkJcmV0dXJuIHJldDsKKysKKysJCS8qIEVuYWJsZSBX T0wgaW50ZXJydXB0ICovCisrCQlyZXQgPSBwaHlfbW9kaWZ5KHBoeWRldiwgWVRQSFlfSU5URVJS VVBUX0VOQUJMRV9SRUcsIDAsCisrCQkJCSBZVFBIWV9JRVJfV09MKTsKKysJCWlmIChyZXQgPCAw KQorKwkJCXJldHVybiByZXQ7CisrCX0gZWxzZSB7CisrCQkvKiBEaXNhYmxlIFdPTCBmZWF0dXJl ICovCisrCQltYXNrID0gWVRQSFlfV0NSX0VOQUJMRSB8IFlUUEhZX1dDUl9JTlRSX1NFTDsKKysJ CXJldCA9IHl0cGh5X21vZGlmeV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVRQSFlfV09MX0NPTkZJ R19SRUcsCisrCQkJCQkJIG1hc2ssIDApOworKworKwkJLyogRGlzYWJsZSBXT0wgaW50ZXJydXB0 ICovCisrCQlyZXQgPSBwaHlfbW9kaWZ5KHBoeWRldiwgWVRQSFlfSU5URVJSVVBUX0VOQUJMRV9S RUcsCisrCQkJCSBZVFBIWV9JRVJfV09MLCAwKTsKKysJCWlmIChyZXQgPCAwKQorKwkJCXJldHVy biByZXQ7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworIHN0YXRpYyBpbnQgeXQ4NTExX3Jl YWRfcGFnZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQorIHsKKyAJcmV0dXJuIF9fcGh5X3Jl YWQocGh5ZGV2LCBZVDg1MTFfUEFHRV9TRUxFQ1QpOworQEAgLTc2Nyw2ICs4MjMsMTcgQEAgc3Rh dGljIGludCB5dHBoeV9yZ21paV9jbGtfZGVsYXlfY29uZmlnKHN0cnVjdCBwaHlfZGV2aWNlICpw aHlkZXYpCisgCXJldHVybiB5dHBoeV9tb2RpZnlfZXh0KHBoeWRldiwgWVQ4NTIxX1JHTUlJX0NP TkZJRzFfUkVHLCBtYXNrLCB2YWwpOworIH0KKyAKKytzdGF0aWMgaW50IHl0cGh5X3JnbWlpX2Ns a19kZWxheV9jb25maWdfd2l0aF9sb2NrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCisrewor KwlpbnQgcmV0OworKworKwlwaHlfbG9ja19tZGlvX2J1cyhwaHlkZXYpOworKwlyZXQgPSB5dHBo eV9yZ21paV9jbGtfZGVsYXlfY29uZmlnKHBoeWRldik7CisrCXBoeV91bmxvY2tfbWRpb19idXMo cGh5ZGV2KTsKKysKKysJcmV0dXJuIHJldDsKKyt9CisrCisgLyoqCisgICogeXQ4NTIxX3Byb2Jl KCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxpbmdfbW9kZQorICAq IEBwaHlkZXY6IGEgcG9pbnRlciB0byBhICZzdHJ1Y3QgcGh5X2RldmljZQorQEAgLTg5MSw2ICs5 NTgsNDMgQEAgc3RhdGljIGludCB5dDg1MjFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl dikKKyAJCQkJCSAgdmFsKTsKKyB9CisgCisrc3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldikKKyt7CisrCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBo eWRldi0+bWRpby5kZXYub2Zfbm9kZTsKKysJdTE2IG1hc2ssIHZhbDsKKysJdTMyIGZyZXE7Cisr CisrCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAibW90b3Jjb21tLGNsay1vdXQtZnJl cXVlbmN5LWh6IiwgJmZyZXEpKQorKwkJZnJlcSA9IFlUUEhZX0RUU19PVVRQVVRfQ0xLX0RJUzsK KysKKysJc3dpdGNoIChmcmVxKSB7CisrCWNhc2UgWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTOgor KwkJbWFzayA9IFlUODUzMV9TQ1JfU1lOQ0VfRU5BQkxFOworKwkJdmFsID0gMDsKKysJCWJyZWFr OworKwljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzI1TToKKysJCW1hc2sgPSBZVDg1MzFfU0NS X1NZTkNFX0VOQUJMRSB8IFlUODUzMV9TQ1JfQ0xLX1NSQ19NQVNLIHwKKysJCSAgICAgICBZVDg1 MzFfU0NSX0NMS19GUkVfU0VMXzEyNU07CisrCQl2YWwgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJM RSB8CisrCQkgICAgICBGSUVMRF9QUkVQKFlUODUzMV9TQ1JfQ0xLX1NSQ19NQVNLLAorKwkJCQkg WVQ4NTMxX1NDUl9DTEtfU1JDX1JFRl8yNU0pOworKwkJYnJlYWs7CisrCWNhc2UgWVRQSFlfRFRT X09VVFBVVF9DTEtfMTI1TToKKysJCW1hc2sgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8IFlU ODUzMV9TQ1JfQ0xLX1NSQ19NQVNLIHwKKysJCSAgICAgICBZVDg1MzFfU0NSX0NMS19GUkVfU0VM XzEyNU07CisrCQl2YWwgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8IFlUODUzMV9TQ1JfQ0xL X0ZSRV9TRUxfMTI1TSB8CisrCQkgICAgICBGSUVMRF9QUkVQKFlUODUzMV9TQ1JfQ0xLX1NSQ19N QVNLLAorKwkJCQkgWVQ4NTMxX1NDUl9DTEtfU1JDX1BMTF8xMjVNKTsKKysJCWJyZWFrOworKwlk ZWZhdWx0OgorKwkJcGh5ZGV2X3dhcm4ocGh5ZGV2LCAiRnJlcSBlcnI6JXVcbiIsIGZyZXEpOwor KwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKysKKysJcmV0dXJuIHl0cGh5X21vZGlmeV9leHRfd2l0 aF9sb2NrKHBoeWRldiwgWVRQSFlfU1lOQ0VfQ0ZHX1JFRywgbWFzaywKKysJCQkJCSAgdmFsKTsK Kyt9CisrCisgLyoqCisgICogeXRwaHlfdXRwX3JlYWRfbHBhKCkgLSByZWFkIExQQSB0aGVuIHNl dHVwIGxwX2FkdmVydGlzaW5nIGZvciB1dHAKKyAgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSAm c3RydWN0IHBoeV9kZXZpY2UKK0BAIC0xMzg3LDYgKzE0OTEsOTQgQEAgc3RhdGljIGludCB5dDg1 MjFfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKKyAJcmV0dXJuIHBoeV9y ZXN0b3JlX3BhZ2UocGh5ZGV2LCBvbGRfcGFnZSwgcmV0KTsKKyB9CisgCisrc3RhdGljIGludCB5 dDg1MzFfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKKyt7CisrCXN0cnVj dCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9kZTsKKysJaW50IHJl dDsKKysKKysJcmV0ID0geXRwaHlfcmdtaWlfY2xrX2RlbGF5X2NvbmZpZ193aXRoX2xvY2socGh5 ZGV2KTsKKysJaWYgKHJldCA8IDApCisrCQlyZXR1cm4gcmV0OworKworKwlpZiAob2ZfcHJvcGVy dHlfcmVhZF9ib29sKG5vZGUsICJtb3RvcmNvbW0sYXV0by1zbGVlcC1kaXNhYmxlZCIpKSB7Cisr CQkvKiBkaXNhYmxlIGF1dG8gc2xlZXAgKi8KKysJCXJldCA9IHl0cGh5X21vZGlmeV9leHRfd2l0 aF9sb2NrKHBoeWRldiwKKysJCQkJCQkgWVQ4NTIxX0VYVFJFR19TTEVFUF9DT05UUk9MMV9SRUcs CisrCQkJCQkJIFlUODUyMV9FU0MxUl9TTEVFUF9TVywgMCk7CisrCQlpZiAocmV0IDwgMCkKKysJ CQlyZXR1cm4gcmV0OworKwl9CisrCisrCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwg Im1vdG9yY29tbSxrZWVwLXBsbC1lbmFibGVkIikpIHsKKysJCS8qIGVuYWJsZSBSWEMgY2xvY2sg d2hlbiBubyB3aXJlIHBsdWcgKi8KKysJCXJldCA9IHl0cGh5X21vZGlmeV9leHRfd2l0aF9sb2Nr KHBoeWRldiwKKysJCQkJCQkgWVQ4NTIxX0NMT0NLX0dBVElOR19SRUcsCisrCQkJCQkJIFlUODUy MV9DR1JfUlhfQ0xLX0VOLCAwKTsKKysJCWlmIChyZXQgPCAwKQorKwkJCXJldHVybiByZXQ7Cisr CX0KKysKKysJcmV0dXJuIDA7CisrfQorKworKy8qKgorKyAqIHl0ODUzMV9saW5rX2NoYW5nZV9u b3RpZnkoKSAtIEFkanVzdCB0aGUgdHggY2xvY2sgZGlyZWN0aW9uIGFjY29yZGluZyB0bworKyAq IHRoZSBjdXJyZW50IHNwZWVkIGFuZCBkdHMgY29uZmlnLgorKyAqIEBwaHlkZXY6IGEgcG9pbnRl ciB0byBhICZzdHJ1Y3QgcGh5X2RldmljZQorKyAqCisrICogTk9URTogVGhpcyBmdW5jdGlvbiBp cyBvbmx5IHVzZWQgdG8gYWRhcHQgdG8gVkYyIHdpdGggSkg3MTEwIFNvQy4gUGxlYXNlCisrICog a2VlcCAibW90b3Jjb21tLHR4LWNsay1hZGotZW5hYmxlZCIgbm90IGV4aXN0IGluIGR0cyB3aGVu IHRoZSBzb2MgaXMgbm90CisrICogSkg3MTEwLgorKyAqLworK3N0YXRpYyB2b2lkIHl0ODUzMV9s aW5rX2NoYW5nZV9ub3RpZnkoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKKyt7CisrCXN0cnVj dCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9kZTsKKysJYm9vbCB0 eF9jbGtfYWRqX2VuYWJsZWQgPSBmYWxzZTsKKysJYm9vbCB0eF9jbGtfMTAwMF9pbnZlcnRlZDsK KysJYm9vbCB0eF9jbGtfMTAwX2ludmVydGVkOworKwlib29sIHR4X2Nsa18xMF9pbnZlcnRlZDsK KysJdTE2IHZhbCA9IDA7CisrCWludCByZXQ7CisrCisrCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jv b2wobm9kZSwgIm1vdG9yY29tbSx0eC1jbGstYWRqLWVuYWJsZWQiKSkKKysJCXR4X2Nsa19hZGpf ZW5hYmxlZCA9IHRydWU7CisrCisrCWlmICghdHhfY2xrX2Fkal9lbmFibGVkKQorKwkJcmV0dXJu OworKworKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJtb3RvcmNvbW0sdHgtY2xr LTEwLWludmVydGVkIikpCisrCQl0eF9jbGtfMTBfaW52ZXJ0ZWQgPSB0cnVlOworKwlpZiAob2Zf cHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJtb3RvcmNvbW0sdHgtY2xrLTEwMC1pbnZlcnRlZCIp KQorKwkJdHhfY2xrXzEwMF9pbnZlcnRlZCA9IHRydWU7CisrCWlmIChvZl9wcm9wZXJ0eV9yZWFk X2Jvb2wobm9kZSwgIm1vdG9yY29tbSx0eC1jbGstMTAwMC1pbnZlcnRlZCIpKQorKwkJdHhfY2xr XzEwMDBfaW52ZXJ0ZWQgPSB0cnVlOworKworKwlpZiAocGh5ZGV2LT5zcGVlZCA8IDApCisrCQly ZXR1cm47CisrCisrCXN3aXRjaCAocGh5ZGV2LT5zcGVlZCkgeworKwljYXNlIFNQRUVEXzEwMDA6 CisrCQlpZiAodHhfY2xrXzEwMDBfaW52ZXJ0ZWQpCisrCQkJdmFsID0gWVQ4NTIxX1JDMVJfVFhf Q0xLX1NFTF9JTlZFUlRFRDsKKysJCWJyZWFrOworKwljYXNlIFNQRUVEXzEwMDoKKysJCWlmICh0 eF9jbGtfMTAwX2ludmVydGVkKQorKwkJCXZhbCA9IFlUODUyMV9SQzFSX1RYX0NMS19TRUxfSU5W RVJURUQ7CisrCQlicmVhazsKKysJY2FzZSBTUEVFRF8xMDoKKysJCWlmICh0eF9jbGtfMTBfaW52 ZXJ0ZWQpCisrCQkJdmFsID0gWVQ4NTIxX1JDMVJfVFhfQ0xLX1NFTF9JTlZFUlRFRDsKKysJCWJy ZWFrOworKwlkZWZhdWx0OgorKwkJcmV0dXJuOworKwl9CisrCisrCXJldCA9IHl0cGh5X21vZGlm eV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVQ4NTIxX1JHTUlJX0NPTkZJRzFfUkVHLAorKwkJCQkJ IFlUODUyMV9SQzFSX1RYX0NMS19TRUxfSU5WRVJURUQsIHZhbCk7CisrCWlmIChyZXQgPCAwKQor KwkJcGh5ZGV2X3dhcm4ocGh5ZGV2LCAiTW9kaWZ5IFRYX0NMS19TRUwgZXJyOiVkXG4iLCByZXQp OworK30KKysKKyAvKioKKyAgKiB5dDg1MjFfcHJlcGFyZV9maWJlcl9mZWF0dXJlcygpIC0gIEEg c21hbGwgaGVscGVyIGZ1bmN0aW9uIHRoYXQgc2V0dXAKKyAgKiBmaWJlcidzIGZlYXR1cmVzLgor QEAgLTE5NjksNiArMjE2MSwxNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21t X3BoeV9kcnZzW10gPSB7CisgCQkuc3VzcGVuZAk9IHl0ODUyMV9zdXNwZW5kLAorIAkJLnJlc3Vt ZQkJPSB5dDg1MjFfcmVzdW1lLAorIAl9LAorKwl7CisrCQlQSFlfSURfTUFUQ0hfRVhBQ1QoUEhZ X0lEX1lUODUzMSksCisrCQkubmFtZQkJPSAiWVQ4NTMxIEdpZ2FiaXQgRXRoZXJuZXQiLAorKwkJ LnByb2JlCQk9IHl0ODUzMV9wcm9iZSwKKysJCS5jb25maWdfaW5pdAk9IHl0ODUzMV9jb25maWdf aW5pdCwKKysJCS5zdXNwZW5kCT0gZ2VucGh5X3N1c3BlbmQsCisrCQkucmVzdW1lCQk9IGdlbnBo eV9yZXN1bWUsCisrCQkuZ2V0X3dvbAk9IHl0cGh5X2dldF93b2wsCisrCQkuc2V0X3dvbAk9IHl0 ODUzMV9zZXRfd29sLAorKwkJLmxpbmtfY2hhbmdlX25vdGlmeSA9IHl0ODUzMV9saW5rX2NoYW5n ZV9ub3RpZnksCisrCX0sCisgCXsKKyAJCVBIWV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4NTMx UyksCisgCQkubmFtZQkJPSAiWVQ4NTMxUyBHaWdhYml0IEV0aGVybmV0IiwKK0BAIC0xOTkwLDcg KzIxOTMsNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21tX3BoeV9kcnZzW10g PSB7CisgCisgbW9kdWxlX3BoeV9kcml2ZXIobW90b3Jjb21tX3BoeV9kcnZzKTsKKyAKKy1NT0RV TEVfREVTQ1JJUFRJT04oIk1vdG9yY29tbSA4NTExLzg1MjEvODUzMVMgUEhZIGRyaXZlciIpOwor K01PRFVMRV9ERVNDUklQVElPTigiTW90b3Jjb21tIDg1MTEvODUyMS84NTMxLzg1MzFTIFBIWSBk cml2ZXIiKTsKKyBNT0RVTEVfQVVUSE9SKCJQZXRlciBHZWlzIik7CisgTU9EVUxFX0FVVEhPUigi RnJhbmsiKTsKKyBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitAQCAtMTk5OCw2ICsyMjAxLDcgQEAg TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWRpb19kZXZpY2Vf aWQgX19tYXliZV91bnVzZWQgbW90b3Jjb21tX3RibFtdID0geworIAl7IFBIWV9JRF9NQVRDSF9F WEFDVChQSFlfSURfWVQ4NTExKSB9LAorIAl7IFBIWV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4 NTIxKSB9LAorKwl7IFBIWV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4NTMxKSB9LAorIAl7IFBI WV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4NTMxUykgfSwKKyAJeyAvKiBzZW50aW5hbCAqLyB9 CisgfTsKKy0tIAorMi4zOS4yCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hl cy8wMDY5LWR0LWJpbmRpbmdzLWh3bW9uLUFkZC1zdGFyZml2ZS1qaDcxeDAtdGVtcC5wYXRjaCBi L3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY5LWR0LWJpbmRpbmdzLWh3bW9uLUFkZC1zdGFy Zml2ZS1qaDcxeDAtdGVtcC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi4xZjkyNDliZGEyMjI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYu Mi9wYXRjaGVzLzAwNjktZHQtYmluZGluZ3MtaHdtb24tQWRkLXN0YXJmaXZlLWpoNzF4MC10ZW1w LnBhdGNoCkBAIC0wLDAgKzEsOTUgQEAKK0Zyb20gMjQwYjE3MWVhMGRjMzMyNTViZjUzZGExYmEw N2MwMjQ5OGFjYjlhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVy IEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBNb24sIDI3IEZlYiAyMDIzIDIxOjQx OjI0ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNjkvNzBdIGR0LWJpbmRpbmdzOiBod21vbjogQWRk IHN0YXJmaXZlLGpoNzF4MC10ZW1wCisKK0FkZCBiaW5kaW5ncyBmb3IgdGhlIHRlbXBlcmF0dXJl IHNlbnNvciBvbiB0aGUgU3RhckZpdmUgSkg3MTAwIGFuZAorSkg3MTEwIFNvQ3MuCisKK1NpZ25l ZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitTaWduZWQt b2ZmLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1Jldmlld2VkLWJ5 OiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgorLS0tCisgLi4uL2JpbmRpbmdzL2h3bW9u L3N0YXJmaXZlLGpoNzF4MC10ZW1wLnlhbWwgIHwgNzAgKysrKysrKysrKysrKysrKysrKworIDEg ZmlsZSBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55 YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaHdt b24vc3RhcmZpdmUsamg3MXgwLXRlbXAueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55YW1sCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5mNWIzNDUyODkyOGQKKy0tLSAvZGV2L251bGwKKysr KyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9od21vbi9zdGFyZml2ZSxqaDcx eDAtdGVtcC55YW1sCitAQCAtMCwwICsxLDcwIEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlk OiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVt cC55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29y ZS55YW1sIworKworK3RpdGxlOiBTdGFyRml2ZSBKSDcxeDAgVGVtcGVyYXR1cmUgU2Vuc29yCisr CisrbWFpbnRhaW5lcnM6CisrICAtIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwu ZGs+CisrCisrZGVzY3JpcHRpb246IHwKKysgIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uIEpINzF4 MCBlbWJlZGRlZCB0ZW1wZXJhdHVyZSBzZW5zb3IKKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0 aWJsZToKKysgICAgZW51bToKKysgICAgICAtIHN0YXJmaXZlLGpoNzEwMC10ZW1wCisrICAgICAg LSBzdGFyZml2ZSxqaDcxMTAtdGVtcAorKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKwor KyAgY2xvY2tzOgorKyAgICBtaW5JdGVtczogMgorKyAgICBtYXhJdGVtczogMgorKworKyAgY2xv Y2stbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6ICJzZW5zZSIKKysgICAgICAt IGNvbnN0OiAiYnVzIgorKworKyAgJyN0aGVybWFsLXNlbnNvci1jZWxscyc6CisrICAgIGNvbnN0 OiAwCisrCisrICByZXNldHM6CisrICAgIG1pbkl0ZW1zOiAyCisrICAgIG1heEl0ZW1zOiAyCisr CisrICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogInNlbnNlIgor KyAgICAgIC0gY29uc3Q6ICJidXMiCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysg IC0gcmVnCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSByZXNldHMKKysgIC0g cmVzZXQtbmFtZXMKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxl czoKKysgIC0gfAorKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUtamg3 MTAwLmg+CisrICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZS1qaDcxMDAu aD4KKysKKysgICAgdGVtcGVyYXR1cmUtc2Vuc29yQDEyNGEwMDAwIHsKKysgICAgICAgIGNvbXBh dGlibGUgPSAic3RhcmZpdmUsamg3MTAwLXRlbXAiOworKyAgICAgICAgcmVnID0gPDB4MTI0YTAw MDAgMHgxMDAwMD47CisrICAgICAgICBjbG9ja3MgPSA8JmNsa2dlbiBKSDcxMDBfQ0xLX1RFTVBf U0VOU0U+LAorKyAgICAgICAgICAgICAgICAgPCZjbGtnZW4gSkg3MTAwX0NMS19URU1QX0FQQj47 CisrICAgICAgICBjbG9jay1uYW1lcyA9ICJzZW5zZSIsICJidXMiOworKyAgICAgICAgI3RoZXJt YWwtc2Vuc29yLWNlbGxzID0gPDA+OworKyAgICAgICAgcmVzZXRzID0gPCZyc3RnZW4gSkg3MTAw X1JTVE5fVEVNUF9TRU5TRT4sCisrICAgICAgICAgICAgICAgICA8JnJzdGdlbiBKSDcxMDBfUlNU Tl9URU1QX0FQQj47CisrICAgICAgICByZXNldC1uYW1lcyA9ICJzZW5zZSIsICJidXMiOworKyAg ICB9OworLS0gCisyLjM5LjIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVz LzAwNzAtaHdtb24tc2ZjdGVtcC1BZGQtU3RhckZpdmUtSkg3MXgwLXRlbXBlcmF0dXJlLXNlbnNv ci5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDcwLWh3bW9uLXNmY3RlbXAtQWRk LVN0YXJGaXZlLUpINzF4MC10ZW1wZXJhdHVyZS1zZW5zb3IucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNTFhMDA1ZDg3MjY5MQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDcwLWh3bW9uLXNmY3RlbXAtQWRkLVN0YXJG aXZlLUpINzF4MC10ZW1wZXJhdHVyZS1zZW5zb3IucGF0Y2gKQEAgLTAsMCArMSw0NjcgQEAKK0Zy b20gYmUyOTE3Y2ZhNGY3YmVkOTJlYmZhOGQ0MzlhNGYwZmIzNjFmMjhhMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+ CitEYXRlOiBNb24sIDI3IEZlYiAyMDIzIDIxOjQxOjI1ICswODAwCitTdWJqZWN0OiBbUEFUQ0gg NzAvNzBdIGh3bW9uOiAoc2ZjdGVtcCkgQWRkIFN0YXJGaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBz ZW5zb3IKKworQWRkIGRyaXZlciBmb3IgdGhlIFN0YXJGaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBz ZW5zb3IuIFlvdQorY2FuIGVuYWJsZS9kaXNhYmxlIGl0IGFuZCByZWFkIHRlbXBlcmF0dXJlIGlu IG1pbGxpIENlbGNpdXMKK3Rocm91Z2ggc3lzZnMuCisKK1NpZ25lZC1vZmYtYnk6IEVtaWwgUmVu bmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitDby1kZXZlbG9wZWQtYnk6IFNhbWluIEd1 byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8g PHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhh bC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBEb2N1bWVudGF0aW9uL2h3bW9uL2luZGV4 LnJzdCAgIHwgICAxICsKKyBEb2N1bWVudGF0aW9uL2h3bW9uL3NmY3RlbXAucnN0IHwgIDMzICsr KysKKyBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKKyBkcml2ZXJzL2h3 bW9uL0tjb25maWcgICAgICAgICAgIHwgIDEwICsKKyBkcml2ZXJzL2h3bW9uL01ha2VmaWxlICAg ICAgICAgIHwgICAxICsKKyBkcml2ZXJzL2h3bW9uL3NmY3RlbXAuYyAgICAgICAgIHwgMzMxICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgNiBmaWxlcyBjaGFuZ2VkLCAzODQgaW5z ZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2h3bW9uL3NmY3Rl bXAucnN0CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHdtb24vc2ZjdGVtcC5jCisKK2Rp ZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2h3bW9uL2luZGV4LnJzdCBiL0RvY3VtZW50YXRpb24v aHdtb24vaW5kZXgucnN0CitpbmRleCBmZTJjYzZiNzM2MzQuLmE2NjZlMzcwNmVhMiAxMDA2NDQK Ky0tLSBhL0RvY3VtZW50YXRpb24vaHdtb24vaW5kZXgucnN0CisrKysgYi9Eb2N1bWVudGF0aW9u L2h3bW9uL2luZGV4LnJzdAorQEAgLTE4MCw2ICsxODAsNyBAQCBIYXJkd2FyZSBNb25pdG9yaW5n IEtlcm5lbCBEcml2ZXJzCisgICAgc2NoNTYyNworICAgIHNjaDU2MzYKKyAgICBzY3BpLWh3bW9u CisrICAgc2ZjdGVtcAorICAgIHNodDE1CisgICAgc2h0MjEKKyAgICBzaHQzeAorZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vaHdtb24vc2ZjdGVtcC5yc3QgYi9Eb2N1bWVudGF0aW9uL2h3bW9u L3NmY3RlbXAucnN0CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi45 ZmJkNWJiMWYzNTYKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vaHdtb24vc2Zj dGVtcC5yc3QKK0BAIC0wLDAgKzEsMzMgQEAKKysuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAorKworK0tlcm5lbCBkcml2ZXIgc2ZjdGVtcAorKz09PT09PT09PT09PT09PT09PT09 PQorKworK1N1cHBvcnRlZCBjaGlwczoKKysgLSBTdGFyRml2ZSBKSDcxMDAKKysgLSBTdGFyRml2 ZSBKSDcxMTAKKysKKytBdXRob3JzOgorKyAtIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxA ZXNtaWwuZGs+CisrCisrRGVzY3JpcHRpb24KKystLS0tLS0tLS0tLQorKworK1RoaXMgZHJpdmVy IGFkZHMgc3VwcG9ydCBmb3IgcmVhZGluZyB0aGUgYnVpbHQtaW4gdGVtcGVyYXR1cmUgc2Vuc29y IG9uIHRoZQorK0pINzEwMCBhbmQgSkg3MTEwIFJJU0MtViBTb0NzIGJ5IFN0YXJGaXZlIFRlY2hu b2xvZ3kgQ28uIEx0ZC4KKysKKytgYHN5c2ZzYGAgaW50ZXJmYWNlCisrLS0tLS0tLS0tLS0tLS0t LS0tLQorKworK1RoZSB0ZW1wZXJhdHVyZSBzZW5zb3IgY2FuIGJlIGVuYWJsZWQsIGRpc2FibGVk IGFuZCBxdWVyaWVkIHZpYSB0aGUgc3RhbmRhcmQKKytod21vbiBpbnRlcmZhY2UgaW4gc3lzZnMg dW5kZXIgYGAvc3lzL2NsYXNzL2h3bW9uL2h3bW9uWGBgIGZvciBzb21lIHZhbHVlIG9mCisrYGBY YGA6CisrCisrPT09PT09PT09PT09PT09PSA9PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorK05hbWUgICAgICAgICAgICAgUGVybSBEZXNjcmlwdGlvbgor Kz09PT09PT09PT09PT09PT0gPT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKyt0ZW1wMV9lbmFibGUgICAgIFJXICAgRW5hYmxlIG9yIGRpc2FibGUgdGVt cGVyYXR1cmUgc2Vuc29yLgorKyAgICAgICAgICAgICAgICAgICAgICBBdXRvbWF0aWNhbGx5IGVu YWJsZWQgYnkgdGhlIGRyaXZlciwKKysgICAgICAgICAgICAgICAgICAgICAgYnV0IG1heSBiZSBk aXNhYmxlZCB0byBzYXZlIHBvd2VyLgorK3RlbXAxX2lucHV0ICAgICAgUk8gICBUZW1wZXJhdHVy ZSByZWFkaW5nIGluIG1pbGxpLWRlZ3JlZXMgQ2Vsc2l1cy4KKys9PT09PT09PT09PT09PT09ID09 PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitkaWZmIC0t Z2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUworaW5kZXggN2M3M2NkYmUxMjU5Li5kYmM1 NzBkZGE0OTYgMTAwNjQ0CistLS0gYS9NQUlOVEFJTkVSUworKysrIGIvTUFJTlRBSU5FUlMKK0BA IC0xODkxOCw2ICsxODkxOCwxNCBAQCBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCisgUzoJU3Vw cG9ydGVkCisgRjoJZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjLworIAorK1NGQ1RFTVAgSFdNT04g RFJJVkVSCisrTToJRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKytMOgls aW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKKytTOglNYWludGFpbmVkCisrRjoJRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2h3bW9uL3N0YXJmaXZlLGpoNzF4MC10ZW1wLnlhbWwK KytGOglEb2N1bWVudGF0aW9uL2h3bW9uL3NmY3RlbXAucnN0CisrRjoJZHJpdmVycy9od21vbi9z ZmN0ZW1wLmMKKysKKyBTRkYvU0ZQL1NGUCsgTU9EVUxFIFNVUFBPUlQKKyBNOglSdXNzZWxsIEtp bmcgPGxpbnV4QGFybWxpbnV4Lm9yZy51az4KKyBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9LY29uZmlnIGIvZHJpdmVycy9od21vbi9LY29uZmln CitpbmRleCAzMTc2YzMzYWY2YzYuLjU3MmUxYjI1NDFiYiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv aHdtb24vS2NvbmZpZworKysrIGIvZHJpdmVycy9od21vbi9LY29uZmlnCitAQCAtMTkzMCw2ICsx OTMwLDE2IEBAIGNvbmZpZyBTRU5TT1JTX1NUVFM3NTEKKyAJICBUaGlzIGRyaXZlciBjYW4gYWxz byBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUKKyAJICB3aWxsIGJlIGNh bGxlZCBzdHRzNzUxLgorIAorK2NvbmZpZyBTRU5TT1JTX1NGQ1RFTVAKKysJdHJpc3RhdGUgIlN0 YXJmaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBzZW5zb3IiCisrCWRlcGVuZHMgb24gU09DX1NUQVJG SVZFIHx8IENPTVBJTEVfVEVTVAorKwloZWxwCisrCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3Ug Z2V0IHN1cHBvcnQgZm9yIHRlbXBlcmF0dXJlIHNlbnNvcgorKwkgIG9uIHRoZSBTdGFyZml2ZSBK SDcxeDAgU29Dcy4KKysKKysJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1v ZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisrCSAgd2lsbCBiZSBjYWxsZWQgc2ZjdGVtcC4KKysK KyBjb25maWcgU0VOU09SU19TTU02NjUKKyAJdHJpc3RhdGUgIlN1bW1pdCBNaWNyb2VsZWN0cm9u aWNzIFNNTTY2NSIKKyAJZGVwZW5kcyBvbiBJMkMKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9u L01ha2VmaWxlIGIvZHJpdmVycy9od21vbi9NYWtlZmlsZQoraW5kZXggZTJlNGU4N2IyODJmLi4z MzdlMWIxOTY3OGEgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCisrKysgYi9k cml2ZXJzL2h3bW9uL01ha2VmaWxlCitAQCAtMTgwLDYgKzE4MCw3IEBAIG9iai0kKENPTkZJR19T RU5TT1JTX1NCUk1JKQkrPSBzYnJtaS5vCisgb2JqLSQoQ09ORklHX1NFTlNPUlNfU0NINTZYWF9D T01NT04pKz0gc2NoNTZ4eC1jb21tb24ubworIG9iai0kKENPTkZJR19TRU5TT1JTX1NDSDU2Mjcp CSs9IHNjaDU2MjcubworIG9iai0kKENPTkZJR19TRU5TT1JTX1NDSDU2MzYpCSs9IHNjaDU2MzYu bworK29iai0kKENPTkZJR19TRU5TT1JTX1NGQ1RFTVApCSs9IHNmY3RlbXAubworIG9iai0kKENP TkZJR19TRU5TT1JTX1NMMjhDUExEKQkrPSBzbDI4Y3BsZC1od21vbi5vCisgb2JqLSQoQ09ORklH X1NFTlNPUlNfU0hUMTUpCSs9IHNodDE1Lm8KKyBvYmotJChDT05GSUdfU0VOU09SU19TSFQyMSkJ Kz0gc2h0MjEubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vc2ZjdGVtcC5jIGIvZHJpdmVy cy9od21vbi9zZmN0ZW1wLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAw MDAuLmQ3NDg0ZTJiODEwMAorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9od21vbi9zZmN0 ZW1wLmMKK0BAIC0wLDAgKzEsMzMxIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAKKysvKgorKyAqIENvcHlyaWdodCAoQykgMjAyMSBFbWlsIFJlbm5lciBCZXJ0aGluZyA8 a2VybmVsQGVzbWlsLmRrPgorKyAqIENvcHlyaWdodCAoQykgMjAyMSBTYW1pbiBHdW8gPHNhbWlu Lmd1b0BzdGFyZml2ZXRlY2guY29tPgorKyAqLworKworKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+ CisrI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorKyNp bmNsdWRlIDxsaW51eC9od21vbi5oPgorKyNpbmNsdWRlIDxsaW51eC9pby5oPgorKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKysjaW5jbHVkZSA8 bGludXgvb2YuaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1 ZGUgPGxpbnV4L3Jlc2V0Lmg+CisrCisrLyoKKysgKiBUZW1wU2Vuc29yIHJlc2V0LiBUaGUgUlNU TiBjYW4gYmUgZGUtYXNzZXJ0ZWQgb25jZSB0aGUgYW5hbG9nIGNvcmUgaGFzCisrICogcG93ZXJl ZCB1cC4gVHJzdChtaW4gMTAwbnMpCisrICogMDpyZXNldCAgMTpkZS1hc3NlcnQKKysgKi8KKysj ZGVmaW5lIFNGQ1RFTVBfUlNUTglCSVQoMCkKKysKKysvKgorKyAqIFRlbXBTZW5zb3IgYW5hbG9n IGNvcmUgcG93ZXIgZG93bi4gVGhlIGFuYWxvZyBjb3JlIHdpbGwgYmUgcG93ZXJlZCB1cAorKyAq IFRwdShtaW4gNTB1cykgYWZ0ZXIgUEQgaXMgZGUtYXNzZXJ0ZWQuIFJTVE4gc2hvdWxkIGJlIGhl bGQgbG93IHVudGlsIHRoZQorKyAqIGFuYWxvZyBjb3JlIGlzIHBvd2VyZWQgdXAuCisrICogMDpw b3dlciB1cCAgMTpwb3dlciBkb3duCisrICovCisrI2RlZmluZSBTRkNURU1QX1BECUJJVCgxKQor KworKy8qCisrICogVGVtcFNlbnNvciBzdGFydCBjb252ZXJzaW9uIGVuYWJsZS4KKysgKiAwOmRp c2FibGUgIDE6ZW5hYmxlCisrICovCisrI2RlZmluZSBTRkNURU1QX1JVTglCSVQoMikKKysKKysv KgorKyAqIFRlbXBTZW5zb3IgY29udmVyc2lvbiB2YWx1ZSBvdXRwdXQuCisrICogVGVtcChDKT1E T1VUKlkvNDA5NCAtIEsKKysgKi8KKysjZGVmaW5lIFNGQ1RFTVBfRE9VVF9QT1MJMTYKKysjZGVm aW5lIFNGQ1RFTVBfRE9VVF9NU0sJR0VOTUFTSygyNywgMTYpCisrCisrLyogRE9VVCB0byBDZWxj aXVzIGNvbnZlcnNpb24gY29uc3RhbnRzICovCisrI2RlZmluZSBTRkNURU1QX1kxMDAwCTIzNzUw MEwKKysjZGVmaW5lIFNGQ1RFTVBfWgk0MDk0TAorKyNkZWZpbmUgU0ZDVEVNUF9LMTAwMAk4MTEw MEwKKysKKytzdHJ1Y3Qgc2ZjdGVtcCB7CisrCS8qIHNlcmlhbGl6ZSBhY2Nlc3MgdG8gaGFyZHdh cmUgcmVnaXN0ZXIgYW5kIGVuYWJsZWQgYmVsb3cgKi8KKysJc3RydWN0IG11dGV4IGxvY2s7Cisr CXZvaWQgX19pb21lbSAqcmVnczsKKysJc3RydWN0IGNsayAqY2xrX3NlbnNlOworKwlzdHJ1Y3Qg Y2xrICpjbGtfYnVzOworKwlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqcnN0X3NlbnNlOworKwlzdHJ1 Y3QgcmVzZXRfY29udHJvbCAqcnN0X2J1czsKKysJYm9vbCBlbmFibGVkOworK307CisrCisrc3Rh dGljIHZvaWQgc2ZjdGVtcF9wb3dlcl91cChzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCkKKyt7Cisr CS8qIG1ha2Ugc3VyZSB3ZSdyZSBwb3dlcmVkIGRvd24gZmlyc3QgKi8KKysJd3JpdGVsKFNGQ1RF TVBfUEQsIHNmY3RlbXAtPnJlZ3MpOworKwl1ZGVsYXkoMSk7CisrCisrCXdyaXRlbCgwLCBzZmN0 ZW1wLT5yZWdzKTsKKysJLyogd2FpdCB0X3B1KDUwdXMpICsgdF9yc3QoMTAwbnMpICovCisrCXVz bGVlcF9yYW5nZSg2MCwgMjAwKTsKKysKKysJLyogZGUtYXNzZXJ0IHJlc2V0ICovCisrCXdyaXRl bChTRkNURU1QX1JTVE4sIHNmY3RlbXAtPnJlZ3MpOworKwl1ZGVsYXkoMSk7IC8qIHdhaXQgdF9z dSg1MDBwcykgKi8KKyt9CisrCisrc3RhdGljIHZvaWQgc2ZjdGVtcF9wb3dlcl9kb3duKHN0cnVj dCBzZmN0ZW1wICpzZmN0ZW1wKQorK3sKKysJd3JpdGVsKFNGQ1RFTVBfUEQsIHNmY3RlbXAtPnJl Z3MpOworK30KKysKKytzdGF0aWMgdm9pZCBzZmN0ZW1wX3J1bihzdHJ1Y3Qgc2ZjdGVtcCAqc2Zj dGVtcCkKKyt7CisrCXdyaXRlbChTRkNURU1QX1JTVE4gfCBTRkNURU1QX1JVTiwgc2ZjdGVtcC0+ cmVncyk7CisrCXVkZWxheSgxKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc2ZjdGVtcF9zdG9wKHN0 cnVjdCBzZmN0ZW1wICpzZmN0ZW1wKQorK3sKKysJd3JpdGVsKFNGQ1RFTVBfUlNUTiwgc2ZjdGVt cC0+cmVncyk7CisrfQorKworK3N0YXRpYyBpbnQgc2ZjdGVtcF9lbmFibGUoc3RydWN0IHNmY3Rl bXAgKnNmY3RlbXApCisreworKwlpbnQgcmV0ID0gMDsKKysKKysJbXV0ZXhfbG9jaygmc2ZjdGVt cC0+bG9jayk7CisrCWlmIChzZmN0ZW1wLT5lbmFibGVkKQorKwkJZ290byBkb25lOworKworKwly ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoc2ZjdGVtcC0+Y2xrX2J1cyk7CisrCWlmIChyZXQpCisr CQlnb3RvIGVycjsKKysJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChzZmN0ZW1wLT5yc3Rf YnVzKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2Rpc2FibGVfYnVzOworKworKwlyZXQgPSBj bGtfcHJlcGFyZV9lbmFibGUoc2ZjdGVtcC0+Y2xrX3NlbnNlKTsKKysJaWYgKHJldCkKKysJCWdv dG8gZXJyX2Fzc2VydF9idXM7CisrCXJldCA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoc2ZjdGVt cC0+cnN0X3NlbnNlKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2Rpc2FibGVfc2Vuc2U7Cisr CisrCXNmY3RlbXBfcG93ZXJfdXAoc2ZjdGVtcCk7CisrCXNmY3RlbXBfcnVuKHNmY3RlbXApOwor KwlzZmN0ZW1wLT5lbmFibGVkID0gdHJ1ZTsKKytkb25lOgorKwltdXRleF91bmxvY2soJnNmY3Rl bXAtPmxvY2spOworKwlyZXR1cm4gcmV0OworKworK2Vycl9kaXNhYmxlX3NlbnNlOgorKwljbGtf ZGlzYWJsZV91bnByZXBhcmUoc2ZjdGVtcC0+Y2xrX3NlbnNlKTsKKytlcnJfYXNzZXJ0X2J1czoK KysJcmVzZXRfY29udHJvbF9hc3NlcnQoc2ZjdGVtcC0+cnN0X2J1cyk7CisrZXJyX2Rpc2FibGVf YnVzOgorKwljbGtfZGlzYWJsZV91bnByZXBhcmUoc2ZjdGVtcC0+Y2xrX2J1cyk7CisrZXJyOgor KwltdXRleF91bmxvY2soJnNmY3RlbXAtPmxvY2spOworKwlyZXR1cm4gcmV0OworK30KKysKKytz dGF0aWMgaW50IHNmY3RlbXBfZGlzYWJsZShzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCkKKyt7Cisr CW11dGV4X2xvY2soJnNmY3RlbXAtPmxvY2spOworKwlpZiAoIXNmY3RlbXAtPmVuYWJsZWQpCisr CQlnb3RvIGRvbmU7CisrCisrCXNmY3RlbXBfc3RvcChzZmN0ZW1wKTsKKysJc2ZjdGVtcF9wb3dl cl9kb3duKHNmY3RlbXApOworKwlyZXNldF9jb250cm9sX2Fzc2VydChzZmN0ZW1wLT5yc3Rfc2Vu c2UpOworKwljbGtfZGlzYWJsZV91bnByZXBhcmUoc2ZjdGVtcC0+Y2xrX3NlbnNlKTsKKysJcmVz ZXRfY29udHJvbF9hc3NlcnQoc2ZjdGVtcC0+cnN0X2J1cyk7CisrCWNsa19kaXNhYmxlX3VucHJl cGFyZShzZmN0ZW1wLT5jbGtfYnVzKTsKKysJc2ZjdGVtcC0+ZW5hYmxlZCA9IGZhbHNlOworK2Rv bmU6CisrCW11dGV4X3VubG9jaygmc2ZjdGVtcC0+bG9jayk7CisrCXJldHVybiAwOworK30KKysK KytzdGF0aWMgdm9pZCBzZmN0ZW1wX2Rpc2FibGVfYWN0aW9uKHZvaWQgKmRhdGEpCisreworKwlz ZmN0ZW1wX2Rpc2FibGUoZGF0YSk7CisrfQorKworK3N0YXRpYyBpbnQgc2ZjdGVtcF9jb252ZXJ0 KHN0cnVjdCBzZmN0ZW1wICpzZmN0ZW1wLCBsb25nICp2YWwpCisreworKwlpbnQgcmV0OworKwor KwltdXRleF9sb2NrKCZzZmN0ZW1wLT5sb2NrKTsKKysJaWYgKCFzZmN0ZW1wLT5lbmFibGVkKSB7 CisrCQlyZXQgPSAtRU5PREFUQTsKKysJCWdvdG8gb3V0OworKwl9CisrCisrCS8qIGNhbGN1bGF0 ZSB0ZW1wZXJhdHVyZSBpbiBtaWxsaSBDZWxjaXVzICovCisrCSp2YWwgPSAobG9uZykoKHJlYWRs KHNmY3RlbXAtPnJlZ3MpICYgU0ZDVEVNUF9ET1VUX01TSykgPj4gU0ZDVEVNUF9ET1VUX1BPUykK KysJCSogU0ZDVEVNUF9ZMTAwMCAvIFNGQ1RFTVBfWiAtIFNGQ1RFTVBfSzEwMDA7CisrCisrCXJl dCA9IDA7Cisrb3V0OgorKwltdXRleF91bmxvY2soJnNmY3RlbXAtPmxvY2spOworKwlyZXR1cm4g cmV0OworK30KKysKKytzdGF0aWMgdW1vZGVfdCBzZmN0ZW1wX2lzX3Zpc2libGUoY29uc3Qgdm9p ZCAqZGF0YSwgZW51bSBod21vbl9zZW5zb3JfdHlwZXMgdHlwZSwKKysJCQkJICB1MzIgYXR0ciwg aW50IGNoYW5uZWwpCisreworKwlzd2l0Y2ggKHR5cGUpIHsKKysJY2FzZSBod21vbl90ZW1wOgor KwkJc3dpdGNoIChhdHRyKSB7CisrCQljYXNlIGh3bW9uX3RlbXBfZW5hYmxlOgorKwkJCXJldHVy biAwNjQ0OworKwkJY2FzZSBod21vbl90ZW1wX2lucHV0OgorKwkJCXJldHVybiAwNDQ0OworKwkJ ZGVmYXVsdDoKKysJCQlyZXR1cm4gMDsKKysJCX0KKysJZGVmYXVsdDoKKysJCXJldHVybiAwOwor Kwl9CisrfQorKworK3N0YXRpYyBpbnQgc2ZjdGVtcF9yZWFkKHN0cnVjdCBkZXZpY2UgKmRldiwg ZW51bSBod21vbl9zZW5zb3JfdHlwZXMgdHlwZSwKKysJCQl1MzIgYXR0ciwgaW50IGNoYW5uZWws IGxvbmcgKnZhbCkKKyt7CisrCXN0cnVjdCBzZmN0ZW1wICpzZmN0ZW1wID0gZGV2X2dldF9kcnZk YXRhKGRldik7CisrCisrCXN3aXRjaCAodHlwZSkgeworKwljYXNlIGh3bW9uX3RlbXA6CisrCQlz d2l0Y2ggKGF0dHIpIHsKKysJCWNhc2UgaHdtb25fdGVtcF9lbmFibGU6CisrCQkJKnZhbCA9IHNm Y3RlbXAtPmVuYWJsZWQ7CisrCQkJcmV0dXJuIDA7CisrCQljYXNlIGh3bW9uX3RlbXBfaW5wdXQ6 CisrCQkJcmV0dXJuIHNmY3RlbXBfY29udmVydChzZmN0ZW1wLCB2YWwpOworKwkJZGVmYXVsdDoK KysJCQlyZXR1cm4gLUVJTlZBTDsKKysJCX0KKysJZGVmYXVsdDoKKysJCXJldHVybiAtRUlOVkFM OworKwl9CisrfQorKworK3N0YXRpYyBpbnQgc2ZjdGVtcF93cml0ZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIGVudW0gaHdtb25fc2Vuc29yX3R5cGVzIHR5cGUsCisrCQkJIHUzMiBhdHRyLCBpbnQgY2hh bm5lbCwgbG9uZyB2YWwpCisreworKwlzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOworKworKwlzd2l0Y2ggKHR5cGUpIHsKKysJY2FzZSBod21vbl90ZW1wOgor KwkJc3dpdGNoIChhdHRyKSB7CisrCQljYXNlIGh3bW9uX3RlbXBfZW5hYmxlOgorKwkJCWlmICh2 YWwgPT0gMCkKKysJCQkJcmV0dXJuIHNmY3RlbXBfZGlzYWJsZShzZmN0ZW1wKTsKKysJCQlpZiAo dmFsID09IDEpCisrCQkJCXJldHVybiBzZmN0ZW1wX2VuYWJsZShzZmN0ZW1wKTsKKysJCQlyZXR1 cm4gLUVJTlZBTDsKKysJCWRlZmF1bHQ6CisrCQkJcmV0dXJuIC1FSU5WQUw7CisrCQl9CisrCWRl ZmF1bHQ6CisrCQlyZXR1cm4gLUVJTlZBTDsKKysJfQorK30KKysKKytzdGF0aWMgY29uc3Qgc3Ry dWN0IGh3bW9uX2NoYW5uZWxfaW5mbyAqc2ZjdGVtcF9pbmZvW10gPSB7CisrCUhXTU9OX0NIQU5O RUxfSU5GTyhjaGlwLCBIV01PTl9DX1JFR0lTVEVSX1RaKSwKKysJSFdNT05fQ0hBTk5FTF9JTkZP KHRlbXAsIEhXTU9OX1RfRU5BQkxFIHwgSFdNT05fVF9JTlBVVCksCisrCU5VTEwKKyt9OworKwor K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fb3BzIHNmY3RlbXBfaHdtb25fb3BzID0geworKwku aXNfdmlzaWJsZSA9IHNmY3RlbXBfaXNfdmlzaWJsZSwKKysJLnJlYWQgPSBzZmN0ZW1wX3JlYWQs CisrCS53cml0ZSA9IHNmY3RlbXBfd3JpdGUsCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0 IGh3bW9uX2NoaXBfaW5mbyBzZmN0ZW1wX2NoaXBfaW5mbyA9IHsKKysJLm9wcyA9ICZzZmN0ZW1w X2h3bW9uX29wcywKKysJLmluZm8gPSBzZmN0ZW1wX2luZm8sCisrfTsKKysKKytzdGF0aWMgaW50 IHNmY3RlbXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVj dCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisrCXN0cnVjdCBkZXZpY2UgKmh3bW9uX2RldjsK KysJc3RydWN0IHNmY3RlbXAgKnNmY3RlbXA7CisrCWludCByZXQ7CisrCisrCXNmY3RlbXAgPSBk ZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnNmY3RlbXApLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFz ZmN0ZW1wKQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCWRldl9zZXRfZHJ2ZGF0YShkZXYsIHNm Y3RlbXApOworKwltdXRleF9pbml0KCZzZmN0ZW1wLT5sb2NrKTsKKysKKysJc2ZjdGVtcC0+cmVn cyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKysJaWYgKElTX0VS UihzZmN0ZW1wLT5yZWdzKSkKKysJCXJldHVybiBQVFJfRVJSKHNmY3RlbXAtPnJlZ3MpOworKwor KwlzZmN0ZW1wLT5jbGtfc2Vuc2UgPSBkZXZtX2Nsa19nZXQoZGV2LCAic2Vuc2UiKTsKKysJaWYg KElTX0VSUihzZmN0ZW1wLT5jbGtfc2Vuc2UpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2 LCBQVFJfRVJSKHNmY3RlbXAtPmNsa19zZW5zZSksCisrCQkJCSAgICAgImVycm9yIGdldHRpbmcg c2Vuc2UgY2xvY2tcbiIpOworKworKwlzZmN0ZW1wLT5jbGtfYnVzID0gZGV2bV9jbGtfZ2V0KGRl diwgImJ1cyIpOworKwlpZiAoSVNfRVJSKHNmY3RlbXAtPmNsa19idXMpKQorKwkJcmV0dXJuIGRl dl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHNmY3RlbXAtPmNsa19idXMpLAorKwkJCQkgICAgICJl cnJvciBnZXR0aW5nIGJ1cyBjbG9ja1xuIik7CisrCisrCXNmY3RlbXAtPnJzdF9zZW5zZSA9IGRl dm1fcmVzZXRfY29udHJvbF9nZXRfZXhjbHVzaXZlKGRldiwgInNlbnNlIik7CisrCWlmIChJU19F UlIoc2ZjdGVtcC0+cnN0X3NlbnNlKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRS X0VSUihzZmN0ZW1wLT5yc3Rfc2Vuc2UpLAorKwkJCQkgICAgICJlcnJvciBnZXR0aW5nIHNlbnNl IHJlc2V0XG4iKTsKKysKKysJc2ZjdGVtcC0+cnN0X2J1cyA9IGRldm1fcmVzZXRfY29udHJvbF9n ZXRfZXhjbHVzaXZlKGRldiwgImJ1cyIpOworKwlpZiAoSVNfRVJSKHNmY3RlbXAtPnJzdF9idXMp KQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHNmY3RlbXAtPnJzdF9idXMp LAorKwkJCQkgICAgICJlcnJvciBnZXR0aW5nIGJ1c3Jlc2V0XG4iKTsKKysKKysJcmV0ID0gcmVz ZXRfY29udHJvbF9hc3NlcnQoc2ZjdGVtcC0+cnN0X3NlbnNlKTsKKysJaWYgKHJldCkKKysJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZXJyb3IgYXNzZXJ0aW5nIHNlbnNlIHJlc2V0 XG4iKTsKKysKKysJcmV0ID0gcmVzZXRfY29udHJvbF9hc3NlcnQoc2ZjdGVtcC0+cnN0X2J1cyk7 CisrCWlmIChyZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9yIGFz c2VydGluZyBidXMgcmVzZXRcbiIpOworKworKwlyZXQgPSBkZXZtX2FkZF9hY3Rpb24oZGV2LCBz ZmN0ZW1wX2Rpc2FibGVfYWN0aW9uLCBzZmN0ZW1wKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBy ZXQ7CisrCisrCXJldCA9IHNmY3RlbXBfZW5hYmxlKHNmY3RlbXApOworKwlpZiAocmV0KQorKwkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJlcnJvciBlbmFibGluZyB0ZW1wZXJhdHVy ZSBzZW5zb3I6ICVkXG4iLCByZXQpOworKworKwlod21vbl9kZXYgPSBkZXZtX2h3bW9uX2Rldmlj ZV9yZWdpc3Rlcl93aXRoX2luZm8oZGV2LCAic2ZjdGVtcCIsIHNmY3RlbXAsCisrCQkJCQkJCSAm c2ZjdGVtcF9jaGlwX2luZm8sIE5VTEwpOworKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKGh3bW9u X2Rldik7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNmY3RlbXBf b2ZfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMDAtdGVtcCIg fSwKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtdGVtcCIgfSwKKysJeyAvKiBz ZW50aW5lbCAqLyB9CisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzZmN0ZW1wX29mX21h dGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzZmN0ZW1wX2RyaXZlciA9 IHsKKysJLnByb2JlICA9IHNmY3RlbXBfcHJvYmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9 ICJzZmN0ZW1wIiwKKysJCS5vZl9tYXRjaF90YWJsZSA9IHNmY3RlbXBfb2ZfbWF0Y2gsCisrCX0s CisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNmY3RlbXBfZHJpdmVyKTsKKysKKytNT0RV TEVfQVVUSE9SKCJFbWlsIFJlbm5lciBCZXJ0aGluZyIpOworK01PRFVMRV9ERVNDUklQVElPTigi U3RhckZpdmUgSkg3MXgwIHRlbXBlcmF0dXJlIHNlbnNvciBkcml2ZXIiKTsKKytNT0RVTEVfTElD RU5TRSgiR1BMIik7CistLSAKKzIuMzkuMgorCgpGcm9tIDE5MGY5N2FjMTMzY2JhNGI5OTIyOGYy MWJlZDc1MDAzMzliOTgxZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCAxMiBNYXIgMjAyMyAyMjowMDo0NSArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTQ4LzE4OV0gcXQ1LXdlYmVuZ2luZTogYWRkIHJpc2N2IHBhdGNoCgot LS0KIC4uLi9wYXRjaGVzLzAwODktZW5hYmxlLXBwYzY0LnBhdGNoICAgICAgICAgICB8ICAgIDM3 IC0KIC4uLi9wYXRjaGVzLzAwOTAtcXR3ZWJlbmdpbmUtcHBjNjQucGF0Y2ggICAgICB8ICAzNjAz IC0tCiAuLi4vcGF0Y2hlcy8wMDkxLWNocm9taXVtLXBwYzY0bGUtbXVzbC5wYXRjaCAgfCAgIDE2 OSAtCiAuLi4vMDA5Mi1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaCAgICAgfCAgICAz MSAtCiAuLi4vcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTQtcmlzY3Y2NC5wYXRjaCAgfCAgMjk5 OSArKwogLi4uL3BhdGNoZXMvMDExNS1yaXNjdjY0LXY4LnBhdGNoICAgICAgICAgICAgIHwgMzMy NTQgKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAzNjI1MyBpbnNlcnRpb25zKCsp LCAzODQwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ1LXdlYmVu Z2luZS9wYXRjaGVzLzAwODktZW5hYmxlLXBwYzY0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDUtd2ViZW5naW5lL3BhdGNoZXMvMDA5MC1xdHdlYmVuZ2luZS1wcGM2NC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTEt Y2hyb21pdW0tcHBjNjRsZS1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDUtd2ViZW5naW5lL3BhdGNoZXMvMDA5Mi1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTQt cmlzY3Y2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9w YXRjaGVzLzAxMTUtcmlzY3Y2NC12OC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1LXdl YmVuZ2luZS9wYXRjaGVzLzAwODktZW5hYmxlLXBwYzY0LnBhdGNoIGIvc3JjcGtncy9xdDUtd2Vi ZW5naW5lL3BhdGNoZXMvMDA4OS1lbmFibGUtcHBjNjQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDRmYjE5Y2NkZDJlNTQuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9x dDUtd2ViZW5naW5lL3BhdGNoZXMvMDA4OS1lbmFibGUtcHBjNjQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIDQ2M2YxMjM0YzU3YTM2ZTc4ZmY2NjZiZDU1MDk0YTlk NGU2OGYyOTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBxNjYgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgotRGF0ZTogU2F0LCAxOCBKYW4gMjAyMCAyMzo1Mjo1NSArMDEwMAotU3ViamVj dDogW1BBVENIIDEvM10gRW5hYmxlIHBwYzY0IGJ1aWxkcwotCi0tLS0KLSBjb25maWd1cmUucHJp ICAgICAgICAgICAgICAgICAgfCAxICsKLSBta3NwZWNzL2ZlYXR1cmVzL2Z1bmN0aW9ucy5wcmYg fCAxICsKLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEv Y29uZmlndXJlLnByaSBiL2NvbmZpZ3VyZS5wcmkKLWluZGV4IDNhMTQ0ZTNmOC4uY2FiZThiMjRh IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLnByaQkyMDIxLTAyLTI0IDEwOjQ1OjU4LjAwMDAwMDAw MCArMDEwMAotKysrIC0JMjAyMS0wMy0wNyAyMToxODo0My4xMjQ3NTQ3OTYgKzAxMDAKLUBAIC0x NDQsNiArMTQ0LDcgQEAKLSAgICAgY29udGFpbnMoUVRfQVJDSCwgImFybSIpfGNvbnRhaW5zKFFU X0FSQ0gsICJhcm02NCIpOiByZXR1cm4odHJ1ZSkKLSAgICAgY29udGFpbnMoUVRfQVJDSCwgIm1p cHMiKTogcmV0dXJuKHRydWUpCi0gICAgIGNvbnRhaW5zKFFUX0FSQ0gsICJtaXBzNjQiKTogcmV0 dXJuKHRydWUpCi0rICAgIGNvbnRhaW5zKFFUX0FSQ0gsICJwb3dlcjY0Iik6IHJldHVybih0cnVl KQotICAgICBxdExvZygiQXJjaGl0ZWN0dXJlIG5vdCBzdXBwb3J0ZWQuIikKLSAgICAgcmV0dXJu KGZhbHNlKQotIH0KLWRpZmYgLS1naXQgYS9ta3NwZWNzL2ZlYXR1cmVzL2Z1bmN0aW9ucy5wcmYg Yi9ta3NwZWNzL2ZlYXR1cmVzL2Z1bmN0aW9ucy5wcmYKLWluZGV4IDUxMmUyNTIzYi4uZTMxMTIz NjU0IDEwMDY0NAotLS0tIGEvbWtzcGVjcy9mZWF0dXJlcy9mdW5jdGlvbnMucHJmCTIwMjEtMDIt MjQgMTA6NDU6NTguMDAwMDAwMDAwICswMTAwCi0rKysgLQkyMDIxLTAzLTA3IDIxOjE5OjIxLjM0 NTAzNjI5MyArMDEwMAotQEAgLTEwNyw2ICsxMDcsNyBAQAotICAgICBjb250YWlucyhxdEFyY2gs ICJtaXBzIik6IHJldHVybihtaXBzZWwpCi0gICAgIGNvbnRhaW5zKHF0QXJjaCwgIm1pcHM2NCIp OiByZXR1cm4obWlwczY0ZWwpCi0gICAgIGNvbnRhaW5zKHF0QXJjaCwgIm1pcHM2NGVsIik6IHJl dHVybihtaXBzNjRlbCkKLSsgICAgY29udGFpbnMocXRBcmNoLCAicG93ZXI2NCIpOiByZXR1cm4o cHBjNjQpCi0gICAgIHJldHVybih1bmtub3duKQotIH0KLSAKLS0tIAotMi4yNi4wCi0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTAtcXR3ZWJlbmdpbmUtcHBj NjQucGF0Y2ggYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy8wMDkwLXF0d2ViZW5naW5l LXBwYzY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzIyMmNhODllZTFk Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTAt cXR3ZWJlbmdpbmUtcHBjNjQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNjAzICswLDAgQEAK LWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxlci9saW51 eC9CVUlMRC5nbiBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4 L0JVSUxELmduCi1pbmRleCA5YzkyMDEyY2UuLmE0YTVjZDg2ZCAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi0rKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgotQEAg LTY1LDggKzY1LDYgQEAgcGFja2FnaW5nX2ZpbGVzID0gcGFja2FnaW5nX2ZpbGVzX2JpbmFyaWVz ICsgWwotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1pbWUiLAotICAg ICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwKLSAgICAgICAg ICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwKLS0gICAgICAg ICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3QuanNvbiIsCi0t ICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3ByZWxvYWRlZF9k YXRhLnBiIiwKLSAgICAgICAgICAgICAgICAgICBdCi0gCi0gYWN0aW9uX2ZvcmVhY2goImNhbGN1 bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikgewotQEAgLTMzMSw3ICszMjksNiBAQCBncm91cCgiaW5z dGFsbGVyX2RlcHMiKSB7Ci0gICAgICI6dGhlbWVfZmlsZXMiLAotICAgICAiLy9jaHJvbWUiLAot ICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCi0tICAgICIvL2Nocm9tZS9icm93c2Vy L3Jlc291cmNlcy9tZWRpYS9tZWlfcHJlbG9hZDpjb21wb25lbnQiLAotICAgICAiLy9zYW5kYm94 L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKLSAgICAgIi8vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvaGFuZGxlcjpjcmFzaHBhZF9oYW5kbGVyIiwKLSAgIF0KLWRpZmYgLS1naXQgYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKLWluZGV4IDA5MjgwZDM1Zi4uNDI1MTQxNTdmIDEw MDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pCi0r KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKLUBAIC0xMSw2 ICsxMSw3IEBAIGltcG9ydCgiLy9idWlsZC9jb25maWcvbmFjbC9jb25maWcuZ25pIikKLSB1c2Vf c2VjY29tcF9icGYgPSAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgJiYKLSAgICAgICAgICAgICAg ICAgICAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwgY3VycmVudF9jcHUgPT0gIng2NCIgfHwKLSAg ICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0g ImFybTY0IiB8fAotLSAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8 fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKQotKyAgICAgICAgICAgICAgICAgICBjdXJyZW50 X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiIHx8Ci0rICAgICAg ICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpCi0gCi0gdXNlX3NlY2NvbXBfYnBm ID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xfbm9uc2ZpCi1kaWZmIC0tZ2l0IGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvQlVJTEQuZ24gYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9CVUlMRC5nbgotaW5kZXggYzI3MzUxZjlhLi45MTQxZTEyMzkg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9CVUlMRC5n bgotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvQlVJTEQuZ24KLUBA IC00MDcsNiArNDA3LDggQEAgY29tcG9uZW50KCJzYW5kYm94X3NlcnZpY2VzIikgewotIAotIHNv dXJjZV9zZXQoInNhbmRib3hfc2VydmljZXNfaGVhZGVycyIpIHsKLSAgIHNvdXJjZXMgPSBbCi0r ICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIiwKLSsgICAgInN5c3Rl bV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgiLAotICAgICAic3lzdGVtX2hlYWRlcnMv YXJtNjRfbGludXhfc3lzY2FsbHMuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhf c3lzY2FsbHMuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIs Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvYnBmX2Rz bC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1pbmRleCAzMTM1MTFmMjIuLjBj YTNhMzI2ZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1AQCAtNTYs NiArNTYsMTMgQEAKLSAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxzCi0g I2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSAKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rCi0rI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KLSsjZGVmaW5lIE1J Tl9TWVNDQUxMIDB1Ci0rI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgMzg2dQotKyNkZWZpbmUg TUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0rCi0gI2Vsc2UKLSAjZXJyb3IgIlVuc3Vw cG9ydGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWlu ZGV4IDFhNDA3Yjk1Mi4uYTZhZWM1NDRlIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLUBA IC0xNiw2ICsxNiw5IEBACi0gI2lmIGRlZmluZWQoX19taXBzX18pCi0gLy8gc3lzL3VzZXIuaCBp biBlZ2xpYmMgbWlzc2VzIHNpemVfdCBkZWZpbml0aW9uCi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgot KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsvLyBNYW51YWxseSBkZWZpbmUgZ3JlZ190 IG9uIHBwYzY0Ci0rdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgZ3JlZ190OwotICNlbmRpZgot ICNlbmRpZgotIAotQEAgLTM0Niw2ICszNDksNTEgQEAgc3RydWN0IHJlZ3Nfc3RydWN0IHsKLSAj ZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykucmVnc1szXQotICNkZWZpbmUg U0VDQ09NUF9QVF9QQVJNNShfcmVncykgKF9yZWdzKS5yZWdzWzRdCi0gI2RlZmluZSBTRUNDT01Q X1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNV0KLSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsKLSt0eXBlZGVmIHN0cnVjdCBw dF9yZWdzIHJlZ3Nfc3RydWN0OwotKwotKyNpZmRlZiBBUkNIX0NQVV9MSVRUTEVfRU5ESUFOCi0r I2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NExFCi0rI2Vsc2UKLSsjZGVmaW5l IFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0Ci0rI2VuZGlmCi0rCi0rI2RlZmluZSBTRUND T01QX1JFRyhfY3R4LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5ncHJbX3JlZ10p Ci0rCi0rI2RlZmluZSBTRUNDT01QX1JFU1VMVChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQot KyNkZWZpbmUgU0VDQ09NUF9TWVNDQUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDApCi0rI2Rl ZmluZSBTRUNDT01QX0lQKF9jdHgpIChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+bmlwCi0rI2Rl ZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0rI2RlZmluZSBT RUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCi0rI2RlZmluZSBTRUNDT01Q X1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCi0rI2RlZmluZSBTRUNDT01QX1BBUk00 KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDYpCi0rI2RlZmluZSBTRUNDT01QX1BBUk01KF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDcpCi0rI2RlZmluZSBTRUNDT01QX1BBUk02KF9jdHgpIFNFQ0NP TVBfUkVHKF9jdHgsIDgpCi0rCi0rI2RlZmluZSBTRUNDT01QX05SX0lEWCAob2Zmc2V0b2Yoc3Ry dWN0IGFyY2hfc2VjY29tcF9kYXRhLCBucikpCi0rI2RlZmluZSBTRUNDT01QX0FSQ0hfSURYIChv ZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGFyY2gpKQotKyNkZWZpbmUgU0VDQ09N UF9JUF9NU0JfSURYIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIGlu c3RydWN0aW9uX3BvaW50ZXIpICsgNCkKLSsjZGVmaW5lIFNFQ0NPTVBfSVBfTFNCX0lEWCBcCi0r ICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVy KSArIDApCi0rI2RlZmluZSBTRUNDT01QX0FSR19NU0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yo c3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgNCkKLSsjZGVmaW5l IFNFQ0NPTVBfQVJHX0xTQl9JRFgobnIpIFwKLSsgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNj b21wX2RhdGEsIGFyZ3MpICsgOCAqIChucikgKyAwKQotKwotKyNkZWZpbmUgU0VDQ09NUF9QVF9S RVNVTFQoX3JlZ3MpIChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01QX1BUX1NZU0NBTEwo X3JlZ3MpIChfcmVncykuZ3ByWzBdCi0rI2RlZmluZSBTRUNDT01QX1BUX0lQKF9yZWdzKSAoX3Jl Z3MpLm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMShfcmVncykgKF9yZWdzKS5ncHJbM10K LSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTIoX3JlZ3MpIChfcmVncykuZ3ByWzRdCi0rI2RlZmlu ZSBTRUNDT01QX1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3MpLmdwcls1XQotKyNkZWZpbmUgU0VDQ09N UF9QVF9QQVJNNChfcmVncykgKF9yZWdzKS5ncHJbNl0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFS TTUoX3JlZ3MpIChfcmVncykuZ3ByWzddCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdz KSAoX3JlZ3MpLmdwcls4XQotKwotICNlbHNlCi0gI2Vycm9yIFVuc3VwcG9ydGVkIHRhcmdldCBw bGF0Zm9ybQotIAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xp Y3kuY2MKLWluZGV4IDcxMmY5Njk5YS4uNTVmMDYyODE3IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9w b2xpY3kuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1AQCAtODgsNyArODgsOCBAQCBib29s IElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGludCBzeXNubykgewotICAgICAgICAgIFN5c2NhbGxT ZXRzOjpJc1ByY3RsKHN5c25vKSB8fAotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NH cm91cE9yU2Vzc2lvbihzeXNubykgfHwKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICAg ICAgIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pIHx8Ci0gI2VuZGlmCi0gI2lmIGRl ZmluZWQoX19hcm1fXykKLUBAIC0yMTAsNyArMjExLDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5 c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAot LSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19OUl9tbWFwKQotICAgICBy ZXR1cm4gUmVzdHJpY3RNbWFwRmxhZ3MoKTsKLSAjZW5kaWYKLUBAIC0yMjgsNyArMjI5LDcgQEAg UmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICAg IHJldHVybiBSZXN0cmljdFByY3RsKCk7Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQo X19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgIGlmIChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKLSAgICAgLy8gT25s eSBhbGxvdyBBRl9VTklYLCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlzIHNlZW4u Ci0gICAgIHN0YXRpY19hc3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAotQEAgLTI2OCw3ICsyNjks OCBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywK LSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp IHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKFN5c2NhbGxTZXRzOjpJ c1NvY2tldENhbGwoc3lzbm8pKQotICAgICByZXR1cm4gUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFu ZCgpOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9i YXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MKLWluZGV4IGZjMzYxODdjOS4uMWFmZmM5MTg5IDEw MDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9s aWN5X3VuaXR0ZXN0LmNjCi1AQCAtMjkxLDggKzI5MSwxMCBAQCBURVNUX0JBU0VMSU5FX1NJR1NZ UyhfX05SX3RpbWVyX2NyZWF0ZSkKLSAjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0gVEVTVF9C QVNFTElORV9TSUdTWVMoX19OUl9ldmVudGZkKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJf aW5vdGlmeV9pbml0KQotKyNpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFRFU1RfQkFTRUxJ TkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKLSAjZW5kaWYKLSsjZW5kaWYKLSAKLSAjaWYgZGVmaW5l ZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKLSBCUEZfVEVTVF9DKEJhc2Vs aW5lUG9saWN5LCBGdXRleEVJTlZBTCwgQmFzZWxpbmVQb2xpY3kpIHsKLWRpZmYgLS1naXQgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0 cmljdGlvbnMuY2MKLWluZGV4IDAwMmIwN2EyNS4uZjM5MGYxMDZhIDEwMDY0NAotLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19y ZXN0cmljdGlvbnMuY2MKLUBAIC0zNiw3ICszNiw4IEBACi0gI2luY2x1ZGUgPHN5cy9pb2N0bC5o PgotICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0gI2lmIGRlZmluZWQoT1NfTElOVVgpICYmICFk ZWZpbmVkKE9TX0NIUk9NRU9TKSAmJiAhZGVmaW5lZChfX2FybV9fKSAmJiBcCi0tICAgICFkZWZp bmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQotKyAg ICAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJF QSkgJiYgXAotKyAgICAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEFsc28gaW5jbHVkZSBh c20vcHRyYWNlLWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9sZGVyIGxpYmMgKGZvciBpbnN0YW5j ZQotIC8vIHRoZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykgaXMgbWlzc2luZyBQVFJBQ0VfR0VU X1RIUkVBRF9BUkVBLgotIC8vIGFzbS9wdHJhY2UtYWJpLmggZG9lc24ndCBleGlzdCBvbiBhcm0z MiBhbmQgUFRSQUNFX0dFVF9USFJFQURfQVJFQSBpc24ndAotQEAgLTQ1LDYgKzQ2LDExIEBACi0g I2VuZGlmCi0gI2VuZGlmICAvLyAhT1NfTkFDTF9OT05TRkkKLSAKLSsvLyBPbiBQUEM2NCwgVENH RVRTIGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5j bHVkZSB0ZXJtaW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRfXwotKyNpbmNsdWRlIDx0ZXJtaW9z Lmg+Ci0rI2VuZGlmCi0rCi0gI2lmIGRlZmluZWQoT1NfQU5EUk9JRCkKLSAKLSAjaWYgIWRlZmlu ZWQoRl9EVVBGRF9DTE9FWEVDKQotQEAgLTEwNyw2ICsxMTMsMTUgQEAgaW5saW5lIGJvb2wgSXNB cmNoaXRlY3R1cmVNaXBzKCkgewotICNlbmRpZgotIH0KLSAKLStpbmxpbmUgYm9vbCBJc0FyY2hp dGVjdHVyZVBQQzY0KCkgewotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICByZXR1cm4g dHJ1ZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotKyNlbmRpZgotK30KLSsKLSsKLSAvLyBV YnVudHUncyB2ZXJzaW9uIG9mIGdsaWJjIGhhcyBhIHJhY2UgY29uZGl0aW9uIGluIHNlbV9wb3N0 IHRoYXQgY2FuIGNhdXNlCi0gLy8gaXQgdG8gY2FsbCBmdXRleCgyKSB3aXRoIGJvZ3VzIG9wIGFy Z3VtZW50cy4gVG8gd29ya2Fyb3VuZCB0aGlzLCB3ZSBuZWVkCi0gLy8gdG8gYWxsb3cgdGhvc2Ug ZnV0ZXgoMikgY2FsbHMgdG8gZmFpbCB3aXRoIEVJTlZBTCwgaW5zdGVhZCBvZiBjcmFzaGluZyB0 aGUKLUBAIC0yNTksNiArMjc0LDggQEAgUmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMo KSB7Ci0gICB1aW50NjRfdCBrT0xhcmdlRmlsZUZsYWcgPSBPX0xBUkdFRklMRTsKLSAgIGlmIChJ c0FyY2hpdGVjdHVyZVg4Nl82NCgpIHx8IElzQXJjaGl0ZWN0dXJlSTM4NigpIHx8IElzQXJjaGl0 ZWN0dXJlTWlwcygpKQotICAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMTAwMDAwOwotKyAgZWxzZSBp ZiAoSXNBcmNoaXRlY3R1cmVQUEM2NCgpKQotKyAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMjAwMDAw OwotIAotICAgY29uc3QgQXJnPGludD4gY21kKDEpOwotICAgY29uc3QgQXJnPGxvbmc+IGxvbmdf YXJnKDIpOwotQEAgLTI3MywxNCArMjkwLDIzIEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENv bW1hbmRzKCkgewotICAgICAgICAgICAgICAgRl9TRVRMS1csCi0gICAgICAgICAgICAgICBGX0dF VExLLAotICAgICAgICAgICAgICAgRl9EVVBGRCwKLS0gICAgICAgICAgICAgIEZfRFVQRkRfQ0xP RVhFQyksCi0tICAgICAgICAgICAgIEFsbG93KCkpCi0rICAgICAgICAgICAgICBGX0RVUEZEX0NM T0VYRUMKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKy8vIE9uIFBQQzY0LCBGX1NFVExL LCBGX0dFVExLLCBGX1NFVExLVyBhcmUgZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCi0r Ly8gYnV0IGdsaWJjIHdpbGwgc29tZXRpbWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25z LiBBbGxvdyBib3RoLgotKyAgICAgICAgICAgICAgLAotKyAgICAgICAgICAgICAgNSwgLyogRl9H RVRMSyAoMzIpICovCi0rICAgICAgICAgICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KLSsgICAg ICAgICAgICAgIDcgIC8qIEZfU0VUTEtXICgzMikgKi8KLSsjZW5kaWYKLSsgICAgICAgICAgICAg ICksCi0rICAgICAgICAgICAgQWxsb3coKSkKLSAgICAgICAuQ2FzZShGX1NFVEZMLAotICAgICAg ICAgICAgIElmKChsb25nX2FyZyAmIH5rQWxsb3dlZE1hc2spID09IDAsIEFsbG93KCkpLkVsc2Uo Q3Jhc2hTSUdTWVMoKSkpCi0gICAgICAgLkRlZmF1bHQoQ3Jhc2hTSUdTWVMoKSk7Ci0gfQotIAot LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gUmVzdWx0RXhwciBSZXN0cmljdFNvY2tldGNhbGxDb21tYW5kKCkgewotICAgLy8gVW5mb3J0 dW5hdGVseSwgd2UgYXJlIHVuYWJsZSB0byByZXN0cmljdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRv Ci0gICAvLyBzb2NrZXRwYWlyKDIpLiBXaGlsc3QgaW5pdGlhbGx5IHNvdW5kaW5nIGJhZCwgaXQn cyBub3Rld29ydGh5IHRoYXQgdmVyeQotQEAgLTQyOSw3ICs0NTUsNyBAQCBSZXN1bHRFeHByIFJl c3RyaWN0UHJsaW1pdFRvR2V0cmxpbWl0KHBpZF90IHRhcmdldF9waWQpIHsKLSBSZXN1bHRFeHBy IFJlc3RyaWN0UHRyYWNlKCkgewotICAgY29uc3QgQXJnPGludD4gcmVxdWVzdCgwKTsKLSAgIHJl dHVybiBTd2l0Y2gocmVxdWVzdCkuQ0FTRVMoKAotLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykK LSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgICAgICBQVFJBQ0VfR0VUUkVHUywKLSAgICAgICAgIFBUUkFDRV9HRVRGUFJFR1MsCi0gI2lm IGRlZmluZWQoVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgK LWluZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJkIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRl cnNfcmVzdHJpY3Rpb25zLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5o Ci1AQCAtNDgsNyArNDgsNyBAQCBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJl c3RyaWN0TXByb3RlY3RGbGFncygpOwotIC8vIE9fTk9OQkxPQ0sgfCBPX1NZTkMgfCBPX0xBUkdF RklMRSB8IE9fQ0xPRVhFQyB8IE9fTk9BVElNRS4KLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpS ZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpOwotIAotLSNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gUmVzdHJpY3Qgc29j a2V0Y2FsbCgyKSB0byBvbmx5IGFsbG93IHNvY2tldHBhaXIoMiksIHNlbmQoMiksIHJlY3YoMiks Ci0gLy8gc2VuZHRvKDIpLCByZWN2ZnJvbSgyKSwgc2h1dGRvd24oMiksIHNlbmRtc2coMikgYW5k IHJlY3Ztc2coMikuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmlj dFNvY2tldGNhbGxDb21tYW5kKCk7Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5jYwotaW5kZXggZTE2MjIzYTVlLi44ZjM3ZGQ3ZGMgMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC0yOSw3ICsyOSw4IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXR0aW1lb2ZkYXk6Ci0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdGltZToKLSAjZW5k aWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC00MSwxMiArNDIsMTQgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Nsb2Nr X25hbm9zbGVlcDogIC8vIFBhcmFtZXRlcnMgZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCku Ci0gICAgIGNhc2UgX19OUl9jbG9ja19zZXR0aW1lOiAgICAvLyBQcml2aWxlZ2VkLgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgot ICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2VuZGlmCi0g ICAgIGRlZmF1bHQ6Ci1AQCAtMTEyLDcgKzExNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmls ZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJN IG5vdCBhIHZhbGlkIGVycm5vLgotICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAgIGNhc2Ug X19OUl9mY2hvd25hdDogIC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2 YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCi1AQCAtMTMxLDcgKzEzNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz RmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKLSAg ICAgY2FzZSBfX05SX21rZGlyYXQ6Ci0gICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNpZiBkZWZp bmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29sZHN0YXQ6 Ci0gI2VuZGlmCi1AQCAtMTQ1LDcgKzE0OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5 c3RlbShpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQ RVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNl IF9fTlJfc3ltbGlua2F0OgotQEAgLTE1NSw3ICsxNTksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgotICNl bmRpZgotICAgICBjYXNlIF9fTlJfdW5saW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1lOgotICNl bmRpZgotICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgotQEAgLTE3NCw3ICsxNzks OCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50 IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhqbG4pOiB0 aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgot LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAj ZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykKLUBAIC0xODcsMTEgKzE5MywxMiBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9mbG9jazogICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4K LSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhl IHdob2xlIGZpbGVzeXN0ZW0uCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfZnN0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9f TlJfZnN5bmM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5lZChfX2kz ODZfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotQEAgLTE5 OSw2ICsyMDYsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNz VmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBF UEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0gICAgIGNh c2UgX19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8u Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3luY19maWxl X3JhbmdlMjogLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAgIGRlZmF1 bHQ6Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTIyNCw3ICsyMzMsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJu by4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKLSAj ZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0yNjUsNyArMjc1LDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNHZXRTaW1wbGVJZChpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJ c1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2UoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9jYXBzZXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Blcm06ICAv LyBJbnRlbCBwcml2aWxlZ2UuCi0gICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2 aWxlZ2UuCi0gI2VuZGlmCi1AQCAtMzE2LDcgKzMyNiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcnRfc2ln cmV0dXJuOgotICAgICBjYXNlIF9fTlJfcnRfc2lndGltZWR3YWl0OgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ2FjdGlvbjoK LSAgICAgY2FzZSBfX05SX3NpZ3Byb2NtYXNrOgotICAgICBjYXNlIF9fTlJfc2lncmV0dXJuOgot QEAgLTMzMiw3ICszNDMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5k bGluZyhpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9zaWdwZW5kaW5nOgotICAgICBjYXNlIF9fTlJfc2lnc3VzcGVuZDoKLSAjZW5kaWYKLUBAIC0z NTYsNyArMzY4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZChp bnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2R1cDM6Ci0gI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NodXRkb3duOgotICNlbmRp ZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTM5MCw3ICs0MDIsNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewotICAgICBjYXNl IF9fTlJfbWVtYmFycmllcjoKLSAgICAgY2FzZSBfX05SX3dhaXQ0OgotICAgICBjYXNlIF9fTlJf d2FpdGlkOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl93YWl0cGlkOgotICNlbmRp ZgotICNpZiAhZGVmaW5lZChfX0dMSUJDX18pCi1AQCAtNDEyLDcgKzQyNCw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gICAg IGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91bnNo YXJlOgotLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0r I2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdmZvcms6Ci0gI2VuZGlmCi0gICAgIGRl ZmF1bHQ6Ci1AQCAtNDYxLDcgKzQ3Myw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdl dE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVlOwotICAgICBk ZWZhdWx0OgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRvIGluc3BlY3QgaXRzIGFyZ3VtZW50 LgotICNlbmRpZgotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC00NzEsNyArNDgzLDcgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0g Ym9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsK LSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNo NjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfYWNjZXB0OgotICAgICBjYXNlIF9fTlJfYWNjZXB0NDoKLSAgICAg Y2FzZSBfX05SX2JpbmQ6Ci1AQCAtNDg2LDcgKzQ5OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz RGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gfQotIAotICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0 cy4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7Ci0gICBzd2l0 Y2ggKHN5c25vKSB7Ci1AQCAtNTAwLDcgKzUxMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU29j a2V0Q2FsbChpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0tI2lmIGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNO ZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKLUBAIC01MjgsNyArNTQyLDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgewotICAg ICBjYXNlIF9fTlJfbWluY29yZToKLSAgICAgY2FzZSBfX05SX21sb2NrYWxsOgotICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18p IHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbW1hcDoKLSAjZW5k aWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi1AQCAt NTYwLDcgKzU3NCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQg c3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2xzZWVrOgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0r ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X19sbHNlZWs6Ci0gI2VuZGlmCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotQEAgLTU3Miwy NiArNTg3LDI4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lz bm8pIHsKLSAgICAgY2FzZSBfX05SX3JlYWR2OgotICAgICBjYXNlIF9fTlJfcHJlYWQ2NDoKLSAj aWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2OgotICNlbmRpZgotICNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2ZnJv bTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICAgICBjYXNlIF9fTlJfcmVjdm1zZzogICAv LyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Nl bGVjdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1f XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZG1zZzogIC8vIENvdWxkIHNwZWNp ZnkgZGVzdGluYXRpb24uCi0gICAgIGNhc2UgX19OUl9zZW5kdG86ICAgLy8gQ291bGQgc3BlY2lm eSBkZXN0aW5hdGlvbi4KLSAjZW5kaWYKLUBAIC02NDgsNyArNjY1LDggQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5c25vKSB7Ci0gICAgICAgcmV0dXJu IHRydWU7Ci0gICAgIGNhc2UgX19OUl9nZXRwcmlvcml0eToKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uaWNlOgotICNlbmRpZgot ICAgICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6Ci1AQCAtNjYwLDcgKzY3OCw4IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgewotIGJvb2wgU3lz Y2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25v KSB7Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfYmRmbHVzaDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2tleGVjX2xvYWQ6Ci1A QCAtNjc2LDcgKzY5NSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50 IHN5c25vKSB7Ci0gCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNLZXJuZWxNb2R1bGUoaW50IHN5c25v KSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2NyZWF0ZV9tb2R1bGU6Ci0g ICAgIGNhc2UgX19OUl9nZXRfa2VybmVsX3N5bXM6ICAvLyBTaG91bGQgRU5PU1lTLgotICAgICBj YXNlIF9fTlJfcXVlcnlfbW9kdWxlOgotQEAgLTcwOSw3ICs3MjksOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0ZzQ29udHJvbChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N3YXBvZmY6Ci0g ICAgIGNhc2UgX19OUl9zd2Fwb246Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3Vtb3VudDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3Vtb3VudDI6Ci1AQCAtNzI1 LDcgKzc0Niw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTnVtYShpbnQgc3lzbm8pIHsKLSAgICAg Y2FzZSBfX05SX2dldGNwdToKLSAgICAgY2FzZSBfX05SX21iaW5kOgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwK LS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbWlncmF0ZV9wYWdlczoKLSAj ZW5kaWYKLSAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6Ci1AQCAtNzU0LDE0ICs3NzUsMTUgQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52aXJvbm1lbnQoaW50IHN5c25vKSB7 Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9hY2N0OiAgLy8gUHJpdmlsZWdl ZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X2dldHJsaW1pdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X2FybV9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VnZXRybGltaXQ6Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VsaW1pdDoKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX2dldHJ1c2FnZToKLUBAIC03OTUsNyArODE3LDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0g ICAgIGNhc2UgX19OUl9zeXNpbmZvOgotICAgICBjYXNlIF9fTlJfdW5hbWU6Ci0tI2lmIGRlZmlu ZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX29sZHVuYW1lOgotICAgICBjYXNlIF9fTlJfb2xkb2xkdW5h bWU6Ci0gI2VuZGlmCi1AQCAtODkwLDcgKzkxMiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU3lz dGVtVk1lc3NhZ2VRdWV1ZShpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCi0g Ym9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBzeXNubykgewotICAgc3dpdGNoIChz eXNubykgewotQEAgLTkxMCw3ICs5MzMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FueVN5c3Rl bVYoaW50IHN5c25vKSB7Ci0gICByZXR1cm4gSXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKHN5c25vKSB8 fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAotICAgICAgICAgIElzU3lzdGVtVlNoYXJl ZE1lbW9yeShzeXNubyk7Ci0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgcmV0dXJuIElz U3lzdGVtVklwYyhzeXNubyk7Ci0gI2VuZGlmCi0gfQotQEAgLTk2Myw3ICs5ODcsOCBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6 OklzVGltZXIoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19O Ul9nZXRpdGltZXI6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2FsYXJtOgotICNlbmRpZgotICAgICBjYXNlIF9f TlJfc2V0aXRpbWVyOgotQEAgLTEwMjIsMTggKzEwNDcsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfc3luY2ZzOgotICAgICBjYXNlIF9f TlJfdmhhbmd1cDoKLSAvLyBUaGUgc3lzdGVtIGNhbGxzIGJlbG93IGFyZSBub3QgaW1wbGVtZW50 ZWQuCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9icmVhazoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf Z2V0cG1zZzoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfZ3R0eToKLSAgICAgY2FzZSBfX05SX2lkbGU6Ci0gICAgIGNhc2UgX19OUl9sb2NrOgotQEAg LTEwNDEsMjAgKzEwNzAsMjIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykg ewotICAgICBjYXNlIF9fTlJfcHJvZjoKLSAgICAgY2FzZSBfX05SX3Byb2ZpbDoKLSAjZW5kaWYK LS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KQotICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX3N0dHk6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX194ODZf NjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl90dXhjYWxsOgotICNlbmRpZgotLSNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgIGNhc2UgX19OUl92c2VydmVyOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVl OwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1pbmRleCA5MjM1 MzNlYzkuLmUyYmIxZGI5OCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLSsrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9zZXRzLmgKLUBAIC00MywxMyArNDMsMTQgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2Fs bFNldHMgewotICAgc3RhdGljIGJvb2wgSXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lz bm8pOwotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBCaWcgbXVsdGlwbGV4aW5n IHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgotICAgc3RhdGljIGJvb2wgSXNTb2NrZXRDYWxsKGlu dCBzeXNubyk7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJj aDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBzeXNubyk7 Ci0gI2VuZGlmCi0gCi1AQCAtODgsNyArODksOCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNj YWxsU2V0cyB7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIC8vIEJp ZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCi0gICBzdGF0aWMgYm9vbCBJc1N5 c3RlbVZJcGMoaW50IHN5c25vKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5kZXgg MzRlZGFiZDJiLi4xMGZhNWZkMDcgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0rKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1AQCAtMTYsNyAr MTYsNyBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7Ci0gbmFtZXNwYWNlIHsKLSAKLSAjaWYgZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8 IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZCAoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotIC8v IE51bWJlciB0aGF0J3Mgbm90IGN1cnJlbnRseSB1c2VkIGJ5IGFueSBMaW51eCBrZXJuZWwgQUJJ cy4KLSBjb25zdCBpbnQga0ludmFsaWRTeXNjYWxsTnVtYmVyID0gMHgzNTFkMzsKLSAjZWxzZQot QEAgLTMwOCwxMiArMzA4LDU2IEBAIGFzbSgvLyBXZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVsbCB0 aGUga2VybmVsIGV4YWN0bHkgd2hlcmUgd2UgbWFkZSBhCi0gICAgIC8vIEVudGVyIHRoZSBrZXJu ZWwKLSAgICAgInN2YyAwXG4iCi0gICAgICIyOnJldFxuIgotKyAgICAiLmNmaV9lbmRwcm9jXG4i Ci0rICAgICIuc2l6ZSBTeXNjYWxsQXNtLCAuLVN5c2NhbGxBc21cbiIKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICAgICIudGV4dFxuIgotKyAgICAiLmFsaWduIDRcbiIKLSsgICAg Ii50eXBlIFN5c2NhbGxBc20gQGZ1bmN0aW9uXG4iCi0rICAgICJTeXNjYWxsQXNtOlxuIgotKyAg ICAiLmNmaV9zdGFydHByb2NcbiIKLSsKLSsgICAgLy8gQ2hlY2sgaWYgcjMgaXMgbmVnYXRpdmUK LSsgICAgImNtcGRpIDMsIDBcbiIKLSsgICAgImJndCAyZlxuIgotKwotKyAgICAvLyBMb2FkIGFk ZHJlc3Mgb2YgM2YgaW50byByMyBhbmQgcmV0dXJuCi0rICAgICJtZmxyIDEwXG4iCi0rICAgICJi bCAxZlxuIgotKyAgICAiMTogbWZsciAzXG4iCi0rICAgICJtdGxyIDEwXG4iCi0rICAgICJhZGRp IDMsIDMsIDQqMTNcbiIKLSsgICAgImJsclxuIgotKwotKyAgICAvLyBMb2FkIGFyZ3VtZW50cyBm cm9tIGFycmF5IGludG8gcjMtOAotKyAgICAvLyBzYXZlIHBhcmFtIDMgaW4gcjEwCi0rICAgICIy OlxuIgotKyAgICAibXIgMCwgM1xuIgotKyAgICAibGQgMywgMCg0KVxuIgotKyAgICAibGQgNSwg MTYoNClcbiIKLSsgICAgImxkIDYsIDI0KDQpXG4iCi0rICAgICJsZCA3LCAzMig0KVxuIgotKyAg ICAibGQgOCwgNDAoNClcbiIKLSsgICAgImxkIDQsIDgoNClcbiIKLSsgICAgImxpIDksIDBcbiIK LSsKLSsgICAgLy8gRW50ZXIga2VybmVsCi0rICAgICJzY1xuIgotKwotKyAgICAvLyBNYWdpYyBy ZXR1cm4gYWRkcmVzcwotKyAgICAiMzpcbiIKLSsgICAgLy8gTGlrZSBNSVBTLCBwcGM2NCByZXR1 cm4gdmFsdWVzIGFyZSBhbHdheXMgcG9zaXRpdmUuCi0rICAgIC8vIENoZWNrIGZvciBlcnJvciBp biBjcjAuU08gYW5kIG5lZ2F0ZSB1cG9uIGVycm9yCi0rICAgICJiYyA0LCAzLCA0ZlxuIgotKyAg ICAibmVnIDMsIDNcbiIKLSsgICAgIjQ6IGJsclxuIgotKwotICAgICAiLmNmaV9lbmRwcm9jXG4i Ci0gICAgICIuc2l6ZSBTeXNjYWxsQXNtLCAuLVN5c2NhbGxBc21cbiIKLSAjZW5kaWYKLSAgICAg KTsgIC8vIGFzbQotIAotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIGV4dGVybiAiQyIgewotIGludHB0 cl90IFN5c2NhbGxBc20oaW50cHRyX3QgbnIsIGNvbnN0IGludHB0cl90IGFyZ3NbNl0pOwotIH0K LUBAIC00MjcsNiArNDcxLDggQEAgaW50cHRyX3QgU3lzY2FsbDo6Q2FsbChpbnQgbnIsCi0gICAg IHJldCA9IGlub3V0OwotICAgfQotIAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg IGludHB0cl90IHJldCA9IFN5c2NhbGxBc20obnIsIGFyZ3MpOwotICNlbHNlCi0gI2Vycm9yICJV bmltcGxlbWVudGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5kaWYKLUBAIC00NDMsOCArNDg5LDE4IEBA IHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJblVjb250ZXh0KGludHB0cl90IHJldF92YWwsIHVjb250 ZXh0X3QqIGN0eCkgewotICAgICAvLyBuZWVkcyB0byBiZSBjaGFuZ2VkIGJhY2suCi0gICAgIHJl dF92YWwgPSAtcmV0X3ZhbDsKLSAgICAgU0VDQ09NUF9QQVJNNChjdHgpID0gMTsKLS0gIH0gZWxz ZQotKyAgfSBlbHNlIHsKLSAgICAgU0VDQ09NUF9QQVJNNChjdHgpID0gMDsKLSsgIH0KLSsjZW5k aWYKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gU2FtZSBhcyBNSVBTLCBuZWVk IHRvIGludmVydCByZXQgYW5kIHNldCBlcnJvciByZWdpc3RlciAoY3IwLlNPKQotKyAgaWYgKHJl dF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgewotKyAgICByZXRfdmFsID0gLXJldF92 YWw7Ci0rICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKLSsgIH0g ZWxzZSB7Ci0rICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyICY9IH4oMSA8PCAyOCk7Ci0r ICB9Ci0gI2VuZGlmCi0gICBTRUNDT01QX1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190 PihyZXRfdmFsKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLWluZGV4IDY2M2Q5ZTg5Ni4uZjU1ZTAzZWQ1 IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29t cC1icGYvdHJhcC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYvdHJhcC5jYwotQEAgLTIzNyw2ICsyMzcsMjAgQEAgdm9pZCBUcmFwOjpTaWdT eXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250ZXh0X3QqIGN0eCkgewotICAgICAg IFNldElzSW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lk ZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMg Y2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAgLy8gbmVn YXRlIHRoZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdh dGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4 KTsKLSsgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8fCBu ciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3JlYWRsaW5rYXQgfHwKLSsgICAgICAg IG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9yZW5hbWVhdDIgfHwgbnIgPT0gX19O Ul9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQpIHsKLSsgICAgICAgIGlmIChzdGF0 aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7Ci0rICAgICAgICAgICAgU0VD Q09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsKLSsgICAgICAgIH0KLSsgICAg fQotKyNlbmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBzZWNjb21wLXNwZWNpZmljIGRhdGEgaW50 byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhpcwotICAgICAvLyBpcyB3aGF0IHdl IGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxsCi0g ICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhlIHNhbmRib3guCi1kaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlh bHMuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVk ZW50aWFscy5jYwotaW5kZXggZDdiNWQ4YzQ0Li40YWRjNmQwZDQgMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwot KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVu dGlhbHMuY2MKLUBAIC04MSw3ICs4MSw3IEBAIGJvb2wgQ2hyb290VG9TYWZlRW1wdHlEaXIoKSB7 Ci0gICBwaWRfdCBwaWQgPSAtMTsKLSAgIGFsaWduYXMoMTYpIGNoYXIgc3RhY2tfYnVmW1BUSFJF QURfU1RBQ0tfTUlOXTsKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZp bmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBUaGUgc3RhY2sgZ3Jvd3MgZG93bndhcmQuCi0g ICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFja19idWYpOwotICNlbHNlCi1k aWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMv c3lzY2FsbF93cmFwcGVycy5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLWluZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3 IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2Vydmlj ZXMvc3lzY2FsbF93cmFwcGVycy5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYwotQEAgLTU4LDcgKzU4LDcgQEAg bG9uZyBzeXNfY2xvbmUodW5zaWduZWQgbG9uZyBmbGFncywKLSAjaWYgZGVmaW5lZChBUkNIX0NQ VV9YODZfNjQpCi0gICByZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3Rh Y2ssIHB0aWQsIGN0aWQsIHRscyk7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9YODYpIHx8IGRl ZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAgIC8vIENPTkZJR19DTE9ORV9CQUNLV0FSRFMgZGVm aW5lZC4KLSAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywg cHRpZCwgdGxzLCBjdGlkKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9w cm9jZXNzLmNjCi1pbmRleCA4MzIxZDIzNzkuLjdlNWFkMWRlMyAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9j ZXNzLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXNjYWxs X2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIEJyb2tl clByb2Nlc3M6OklzU3lzY2FsbEFsbG93ZWQoaW50IHN5c25vKSBjb25zdCB7Ci0gI2lmIGRlZmlu ZWQoX19OUl9mc3RhdGF0KQotICAgICBjYXNlIF9fTlJfZnN0YXRhdDoKLSAjZW5kaWYKLS0jaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJu ICFmYXN0X2NoZWNrX2luX2NsaWVudF8gfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChDT01N QU5EX1NUQVQpOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotaW5kZXggYTYw ZmUyYWQzLi45ZGNjZGI1MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgKLSsrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAu aAotQEAgLTI5LDYgKzI5LDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNINjQKLSAjZGVmaW5lIEVNX0FB UkNINjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAotKyNkZWZpbmUgRU1fUFBDNjQg MjEKLSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJVAotICNkZWZpbmUgX19B VURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC01NCw2ICs1NywxMiBAQAotICNpZm5kZWYg QVVESVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNI NjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0gI2VuZGlmCi0rI2lm bmRlZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2 NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZuZGVmIEFVRElUX0FSQ0hfUFBD NjRMRQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJD SF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAKLSAvLyBGb3IgcHJjdGwuaAot ICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaCBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5o Ci1pbmRleCBmNWE3MzY3NjEuLjUxNWIyMWE1ZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi0rKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zaWduYWwuaAotQEAgLTEzLDcgKzEzLDcgQEAKLSAvLyAobm90IHVuZGVmaW5lZCwgYnV0IGRl ZmluZWQgZGlmZmVyZW50IHZhbHVlcyBhbmQgaW4gZGlmZmVyZW50IG1lbW9yeQotIC8vIGxheW91 dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhlcmUuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQo X19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAKLSAjZGVmaW5lIExJTlVYX1NJR0hVUCAxCi0gI2RlZmluZSBMSU5VWF9TSUdJ TlQgMgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi1pbmRleCAyYjc4YTBj YzMuLjBhNzBmNWVhNSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLSsrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgK LUBAIC0zNSw1ICszNSw5IEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIKLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0 X2xpbnV4X3N5c2NhbGxzLmgiCi0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVY X1NZU1RFTV9IRUFERVJTX0xJTlVYX1NZU0NBTExTX0hfCi0gCi1kaWZmIC0tZ2l0IGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRl eHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3Vjb250ZXh0LmgKLWluZGV4IDIyY2U3ODAyNy4uYTY5YjAyNGMyIDEwMDY0NAotLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfdWNvbnRleHQuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotQEAgLTExLDYgKzExLDggQEAKLSAjaW5j bHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQuaCIK LSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGlu dXhfdWNvbnRleHQuaCIKLSAjZWxzZQotICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgeW91ciBhcmNo aXRlY3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5 c2NhbGxzLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMDAwLi5jY2FjZmZlMjIKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxz LmgKLUBAIC0wLDAgKzEsMTIgQEAKLSsvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0 aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hF QURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsKLSsjaW5jbHVkZSA8YXNtL3Vu aXN0ZC5oPgotKwotKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwg bnVtYmVycyBmb3IgUFBDNjQ/Ci0rCi0rI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9I RUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRl eHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMDAuLjA3NzI4ZTA4NwotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAot QEAgLTAsMCArMSwxMiBAQAotKy8vIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3Jz LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv dmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0 aGUgTElDRU5TRSBmaWxlLgotKwotKyNpZm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVS U19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXwotKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1f SEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXwotKwotKyNpbmNsdWRlIDxzeXMvdWNvbnRl eHQuaD4KLSsKLSsvL1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0byByZWRlZmluZSB1Y29udGV4dCBv biBQUEM2ND8KLSsKLSsjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBD NjRfTElOVVhfVUNPTlRFWFRfSF8KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCi1pbmRleCA0NDNlOTExNGIuLjZkZjU2NzhkNiAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGlu dXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotQEAgLTE1LDYgKzE1LDExIEBACi0gI2lu Y2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKLSAj aW5jbHVkZSAic2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvc2FuZGJveF9s aW51eC5oIgotIAotKy8vIE9uIFBQQzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBz dHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBpbmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bv d2VycGM2NF9fCi0rI2luY2x1ZGUgPHRlcm1pb3MuaD4KLSsjZW5kaWYKLSsKLSAvLyBUT0RPKHZp Z25hdHRpKTogcmVwbGFjZSB0aGUgbG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVk ZQotIC8vIDxsaW51eC9kbWEtYnVmLmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMg d2lkZWx5IHVzZWQuCi0gI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci1kaWZmIC0tZ2l0IGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xh dG9yL0luZm9TaW5rLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUv c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotaW5kZXggM2E4MDdlMWUzLi41MjU4 NjE3YTcgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5n bGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9T aW5rLmgKLUBAIC05Miw3ICs5MiwxNiBAQCBjbGFzcyBUSW5mb1NpbmtCYXNlCi0gICAgICAgICAg ICAgc3RyZWFtLnByZWNpc2lvbig4KTsKLSAgICAgICAgICAgICBzdHJlYW0gPDwgZjsKLSAgICAg ICAgIH0KLS0gICAgICAgIHNpbmsuYXBwZW5kKHN0cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAgICAv LyBIYWNrIHRvIHdvcmsgYXJvdW5kIGEgYnVnIHdoZXJlIG5lZ2F0aXZlIGZsb2F0aW5nIHBvaW50 IHZhbHVlcwotKyAgICAgICAgLy8gYXJlIHJlbmRlcmVkIGxpa2UgJy4wLjUnIGluc3RlYWQgb2Yg Jy0wLjUnCi0rICAgICAgICBzdGQ6OnN0cmluZyByZXMoc3RyZWFtLnN0cigpKTsKLSsKLSsgICAg ICAgIGlmIChzaWduYml0KGYpKSB7IC8vIHRlc3QgaWYgZiBpcyBuZWdhdGl2ZQotKyAgICAgICAg ICAgIHJlc1swXSA9ICctJzsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIHNpbmsuYXBwZW5kKHJl cyk7Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgIH0KLSAgICAgLy8gV3JpdGUgYm9vbGVh biB2YWx1ZXMgYXMgdGhlaXIgbmFtZXMgaW5zdGVhZCBvZiBpbnRlZ3JhbCB2YWx1ZS4KLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFO R0xFL0NvbnN0YW50cy5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xl L3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotaW5kZXggNzQ2Nzg5OTEzLi45MTMyYjNmYzAgMTAw NjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xp YkFOR0xFL0NvbnN0YW50cy5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi1AQCAtOSw2ICs5LDcgQEAKLSAjaWZu ZGVmIExJQkFOR0xFX0NPTlNUQU5UU19IXwotICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hf Ci0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgot IAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotaW5kZXggYjQzNTQ5OWY0Li5hYzhhODRi NmQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5n c3NsL0JVSUxELmduCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9y aW5nc3NsL0JVSUxELmduCi1AQCAtMTAxLDYgKzEwMSwxMyBAQCBpZiAoaXNfd2luICYmICFpc19t c2FuICYmIGN1cnJlbnRfY3B1ICE9ICJhcm02NCIpIHsKLSAgICAgICB9IGVsc2UgewotICAgICAg ICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQotICAgICAgIH0KLSsgICAg fSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAgaWYgKGlzX2xpbnV4 KSB7Ci0rICAgICAgICAjIFRPRE86IHBwYzY0IChiZSkgY2hlY2sKLSsgICAgICAgIHNvdXJjZXMg Kz0gY3J5cHRvX3NvdXJjZXNfbGludXhfcHBjNjRsZQotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAg ICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCi0rICAgICAgfQotICAgICB9 IGVsc2UgewotICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KLSAg ICAgfQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9CVUlMRC5nbiBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9CVUlMRC5nbgotaW5kZXggNTYxN2RlODguLmRjOGJjMTc2IDEwMDY0NAotLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC01OTgs NyArNTk4LDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJlYWtw YWQvc3JjL2NsaWVudC9taW5pZHVtcF9maWxlX3dyaXRlci5oIiwKLSAgICAgICAiYnJlYWtwYWQv c3JjL2NvbW1vbi9jb252ZXJ0X1VURi5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24v Y29udmVydF9VVEYuaCIsCi0tICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtw YWRfZ2V0Y29udGV4dC5TIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZf Y29yZV9kdW1wLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29y ZV9kdW1wLmgiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZnV0aWxzLmNj IiwKLUBAIC02MzYsNiArNjM1LDE1IEBAIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0g Ci0gICAgIGxpYnMgPSBbICJkbCIgXQotIAotKyAgICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0 IikgewotKyAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQotKyAgICAgICAg I2xpYnMgKz0gWyAidWNvbnRleHQiIF0KLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIHNvdXJjZXMg Kz0gWwotKyAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dl dGNvbnRleHQuUyIKLSsgICAgICAgIF0KLSsgICAgfQotKwotICAgICBpbmNsdWRlX2RpcnMgPSBb Ci0gICAgICAgIi4iLAotICAgICAgICJicmVha3BhZC9zcmMiLAotQEAgLTY4Niw3ICs2OTMsNiBA QCBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MiLAot ICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVt cF93cml0ZXJfdW5pdHRlc3RfdXRpbHMuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9wcm9jX2NwdWluZm9fcmVhZGVyX3VuaXR0ZXN0LmNjIiwK LS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0X3Vu aXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9k dW1wX3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9maWxl X2lkX3VuaXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9saW51 eF9saWJjX3N1cHBvcnRfdW5pdHRlc3QuY2MiLAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotaW5kZXggMDdkOTE3MWEwLi45YWVkNGNiMzYg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRf Y3B1LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9j cHUuaAotQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk0gUmF3Q29udGV4 dENQVTsKLSB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBSYXdDb250ZXh0Q1BVOwotICNl bGlmIGRlZmluZWQoX19taXBzX18pCi0gdHlwZWRlZiBNRFJhd0NvbnRleHRNSVBTIFJhd0NvbnRl eHRDUFU7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYgTURSYXdDb250 ZXh0UFBDNjQgUmF3Q29udGV4dENQVTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBu b3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdp dCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotaW5kZXggYWFlMWRjMTNi Li4wM2FmZWM3YTUgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dGhyZWFkX2luZm8uY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJl YWRfaW5mby5jYwotQEAgLTI3MCw3ICsyNzAsNDIgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BV Q29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgIG91dC0+ZmxvYXRfc2F2ZS5m aXIgPSBtY29udGV4dC5mcGNfZWlyOwotICNlbmRpZgotIH0KLS0jZW5kaWYgIC8vIF9fbWlwc19f Ci0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotK3VpbnRwdHJfdCBUaHJlYWRJ bmZvOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0rICAgIHJldHVybiBtY29udGV4 dC5ncF9yZWdzW1BUX05JUF07Ci0rfQotKwotK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRl eHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0rICAgIG91dC0+Y29udGV4dF9mbGFncyA9 IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05U RVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4 dC5ncF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktd OwotKyAgICBvdXQtPnNycjAgPSBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+ c3JyMSA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKLSsgICAgb3V0LT5jciA9IG1jb250ZXh0 LmdwX3JlZ3NbUFRfQ0NSXTsKLSsgICAgb3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hF Ul07Ci0rICAgIG91dC0+Y3RyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7 IGkrKykKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9y ZWdzW2ldOwotKwotKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdz W05GUFJFRy0xXTsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJF QV9QUENfVlJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltp XSA9IFwKLSsgICAgICAgICAgICB7KCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzBdKSA8PCAz MikgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwgCi0r ICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8PCAzMikKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bM119OwotKwotKyAgICBvdXQt PnZyc2F2ZSA9IHZyZWdzLnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3Ig PSB7MCwgdnJlZ3MudnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVf dnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAotK30KLSsjZW5kaWYgIC8vIF9fcG93ZXJwYzY0X18KLSAK LSB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9y ZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgIGFzc2VydChncF9yZWdzIHx8IHNpemUpOwotQEAgLTI3 OSw2ICszMTQsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVy cyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICAgICpncF9yZWdzID0gbWNvbnRl eHQuZ3JlZ3M7Ci0gICBpZiAoc2l6ZSkKLSAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3Jl Z3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChncF9yZWdzKQotKyAg ICAqZ3BfcmVncyA9IG1jb250ZXh0LmdwX3JlZ3M7Ci0rICBpZiAoc2l6ZSkKLSsgICAgKnNpemUg PSBzaXplb2YobWNvbnRleHQuZ3BfcmVncyk7Ci0gI2Vsc2UKLSAgIGlmIChncF9yZWdzKQotICAg ICAqZ3BfcmVncyA9ICZyZWdzOwotQEAgLTI5NCw2ICszMzQsMTEgQEAgdm9pZCBUaHJlYWRJbmZv OjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUp IHsKLSAgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnByZWdzOwotICAgaWYgKHNpemUpCi0gICAg ICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwcmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgaWYgKGZwX3JlZ3MpCi0rICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwX3Jl Z3M7Ci0rICBpZiAoc2l6ZSkKLSsgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZnBfcmVncyk7 Ci0gI2Vsc2UKLSAgIGlmIChmcF9yZWdzKQotICAgICAqZnBfcmVncyA9ICZmcHJlZ3M7Ci1AQCAt MzAyLDQgKzM0NywxMyBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3Rl cnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICNlbmRpZgotIH0KLSAKLSsjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9yUmVnaXN0 ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSkgewotKyAgICBpZiAodl9yZWdzKQotKyAg ICAgICAgKnZfcmVncyA9ICZ2cmVnczsKLSsgICAgaWYgKHNpemUpCi0rICAgICAgICAqc2l6ZSA9 IHNpemVvZih2cmVncyk7Ci0rfQotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVf YnJlYWtwYWQKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5o Ci1pbmRleCBmYjIxNmZhNmQuLjU5M2FhYzgyMiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVjdCBUaHJl YWRJbmZvIHsKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdXNlci5o PgotICAgc3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIHN0cnVjdCB1c2VyX2Zwc2lt ZF9zdHJ1Y3QgZnByZWdzOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFVz ZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCi0rICBtY29udGV4 dF90IG1jb250ZXh0OwotKyAgdnJyZWdzZXRfdCB2cmVnczsKLSAjZWxpZiBkZWZpbmVkKF9fbWlw c19fKQotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+ LgotICAgbWNvbnRleHRfdCBtY29udGV4dDsKLUBAIC04NCw2ICs4OCwxMSBAQCBzdHJ1Y3QgVGhy ZWFkSW5mbyB7Ci0gCi0gICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIGZsb2F0 IHBvaW50IHJlZ2lzdGVyIGFyZWEuCi0gICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMo dm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZlY3RvciBy ZWdpc3RlciBhcmVhLiAoUFBDNjQgb25seSkKLSsgIHZvaWQgR2V0VmVjdG9yUmVnaXN0ZXJzKHZv aWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rI2VuZGlmCi0gfTsKLSAKLSB9ICAvLyBuYW1l c3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLWluZGV4IGE4ZjljY2M3Mi4uNzYyMGNmNmY3IDEwMDY0 NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5j YwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5j YwotQEAgLTI1NCw2ICsyNTQsNDggQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRl eHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YykgewotICAgb3V0LT5m bG9hdF9zYXZlLmZpciA9IHVjLT51Y19tY29udGV4dC5mcGNfZWlyOyAgLy8gVW51c2VkLgotICNl bmRpZgotIH0KLSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90 IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsK LSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVH X1NQXTsKLSt9Ci0rCi0rdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBv aW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX05JUF07Ci0rfQotKwotK3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpIHsK LSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOwotKwotKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCi0r ICAgICAgICBvdXQtPmdwcltpXSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW2ldOwotKwotKyAg ICBvdXQtPmxyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsgICAgCi0rICAgIG91 dC0+c3JyMCA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+c3Jy MSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0rICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJ TkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUu ZnByZWdzW2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+Zmxv YXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsKLSsg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkr KykKLSsgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9Ci0rICAgICAgICAgICAg eygoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzFdLCAKLSsgICAgICAgICAgICAgKCgodWlu dDY0X3QpdnJlZ3MtPnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAgICAgICAgICAgICAg ICAgIHwgdnJlZ3MtPnZycmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJzYXZlID0gdnJlZ3Mt PnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MtPnZz Y3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZG RkZGRkZGOyAKLSt9Ci0rCi0gI2VuZGlmCi0gCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVh a3BhZAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4 dF9yZWFkZXIuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFk ZXIuaAotaW5kZXggZjNkZGUxZjRkLi45NjA3OTE2OWQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLSsrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotQEAgLTU0LDYgKzU0LDkgQEAg c3RydWN0IFVDb250ZXh0UmVhZGVyIHsKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAg c3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29u dGV4dF90ICp1YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBm cHNpbWRfY29udGV4dCogZnByZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVj b250ZXh0X3QgKnVjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdz ZXRfdCogdnJlZ3MpOwotICNlbHNlCi0gICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdD b250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjKTsKLSAjZW5kaWYKLWRpZmYgLS1n aXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotaW5kZXggYjg5NWY2ZDdhLi45MDFjZDY4 ZmIgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNj Ci0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAtNDYx LDkgKzQ2MSwxNiBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNpZ25hbChpbnQgLypz aWcqLywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1YykgewotICAgICBtZW1jcHkoJmdfY3Jhc2hf Y29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKLSAgICAgICAgICAgIHNpemVvZihnX2NyYXNo X2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgLy8gT24gUFBDNjQsIHdlIG11c3QgY29weSBWUiBzdGF0ZQotKyAgdWNvbnRleHRf dCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwotKyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQu dl9yZWdzKSB7Ci0rICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUsIHVj X3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29u dGV4dF8udmVjdG9yX3N0YXRlKSk7Ci0rICB9Ci0gI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVz ZXIgQUJJIG9uIEFSTSBMaW51eC4KLS0gIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0 ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotKyAgLy8gSW4gY2FzZSBvZiBNSVBTLCBM aW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotICAgLy8gYW5kICdm bG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9mIENyYXNoQ29udGV4dC4KLSAgIHVjb250ZXh0 X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKLSAgIGlmICh1Y19wdHItPnVjX21jb250ZXh0 LmZwcmVncykgewotQEAgLTcwMSwxMSArNzA4LDE5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6 V3JpdGVNaW5pZHVtcCgpIHsKLSAgIH0KLSAjZW5kaWYKLSAKLS0jaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0r I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFk ZWZpbmVkKF9fbWlwc19fKSBcCi0rICAgICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAv LyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJNIEVBQkkgdWNvbnRleHRfdC4KLSAgIG1lbWNw eSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmZwcmVn cywKLSAgICAgICAgICBzaXplb2YoY29udGV4dC5mbG9hdF9zdGF0ZSkpOwotICNlbmRpZgotKwot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11c3Qg YmUgY29waWVkIG9uIFBQQzY0Ci0rICBtZW1jcHkoJmNvbnRleHQudmVjdG9yX3N0YXRlLCBjb250 ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0 LnZlY3Rvcl9zdGF0ZSkpOwotKyNlbmRpZgotKwotICAgY29udGV4dC50aWQgPSBzeXNfZ2V0dGlk KCk7Ci0gCi0gICAvLyBBZGQgYW4gZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUgbWluaWR1bXAgZm9y IGJldHRlciByZXBvcnRpbmcuCi1AQCAtNzI2LDYgKzc0MSw5IEBAIGJvb2wgRXhjZXB0aW9uSGFu ZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgY29u dGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv bnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0pOwot ICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBs YXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxl ci5oCi1pbmRleCBmNDQ0ODNmZjAuLjM2Y2U2ZDZjZSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5oCi1AQCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNlcHRpb25I YW5kbGVyIHsKLSAgICAgc2lnaW5mb190IHNpZ2luZm87Ci0gICAgIHBpZF90IHRpZDsgIC8vIHRo ZSBjcmFzaGluZyB0aHJlYWQuCi0gICAgIHVjb250ZXh0X3QgY29udGV4dDsKLS0jaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICAvLyBQUEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1Y29udGV4 dF90IGxpa2UgTUlQUyBidXQgdGhlIHZlY3RvcgotKyAgICAvLyBzdGF0ZSBpcyBub3QsIHNvIGEg c3RydWN0IGlzIG5lZWRlZC4KLSsgICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRlOwotKyNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIC8vICNpZmRl ZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIGZvciBM aW51eCBBUk0uCi0gICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJl YWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbwotICAgICAvLyAnZmxvYXRfc3RhdGUnIGlzIG5vdCBy ZXF1aXJlZC4KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5k bGVyX3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91 bml0dGVzdC5jYwotaW5kZXggYmNiZjljMjZmLi4yYzM2ZWQ0MWYgMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi1AQCAtMzA3LDcg KzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIFBhcmFsbGVsQ2hpbGRDcmFzaGVz RG9udEhhbmcpIHsKLSAgIH0KLSAKLSAgIC8vIFdhaXQgYSB3aGlsZSB1bnRpbCB0aGUgY2hpbGQg c2hvdWxkIGhhdmUgY3Jhc2hlZC4KLS0gIHVzbGVlcCgxMDAwMDAwKTsKLSsgIHVzbGVlcCgyMDAw MDAwKTsKLSAgIC8vIEtpbGwgdGhlIGNoaWxkIGlmIGl0IGlzIHN0aWxsIHJ1bm5pbmcuCi0gICBr aWxsKGNoaWxkLCBTSUdLSUxMKTsKLSAKLUBAIC01NTksNiArNTU5LDggQEAgY29uc3QgdW5zaWdu ZWQgY2hhciBrSWxsZWdhbEluc3RydWN0aW9uW10gPSB7Ci0gI2lmIGRlZmluZWQoX19taXBzX18p Ci0gICAvLyBtZmMyIHplcm8sSW1wbCAtIHVzdWFsbHkgaWxsZWdhbCBpbiB1c2Vyc3BhY2UuCi0g ICAweDQ4LCAweDAwLCAweDAwLCAweDQ4Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAvLyBDcmFzaGVzIG9uIGEgdGVzdGVkIFBPV0VSOSBj cHUKLSAjZWxzZQotICAgLy8gVGhpcyBjcmFzaGVzIHdpdGggU0lHSUxMIG9uIHg4Ni94ODYtNjQv YXJtLgotICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZgotQEAgLTc1NCwxMCArNzU2LDEwIEBAIFRF U1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIEluc3RydWN0aW9uUG9pbnRlck1lbW9yeU1heEJvdW5k KSB7Ci0gCi0gICAvLyBUaGVzZSBhcmUgZGVmaW5lZCBoZXJlIHNvIHRoZSBwYXJlbnQgY2FuIHVz ZSB0aGVtIHRvIGNoZWNrIHRoZQotICAgLy8gZGF0YSBmcm9tIHRoZSBtaW5pZHVtcCBhZnRlcndh cmRzLgotLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNp bmdsZSBwYWdlIGV2ZW4KLSsgIC8vIFVzZSB0aGUgcGFnZSBzaXplIGhlcmUgYmVjYXVzZSB0aGUg T1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KLSAgIC8vIGlmIGEgc21hbGxlciBz aXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVzdCB3YW50cyB0bwotICAgLy8gdGVzdCB0aGUg dXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5nZS4KLS0gIGNvbnN0IHVpbnQzMl90IGtNZW1v cnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCi0rICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9 IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcwotICAgY29uc3QgaW50IGtPZmZzZXQgPSBrTWVtb3J5 U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0aW9uKTsKLSAKLSAgIGNvbnN0IHBpZF90IGNo aWxkID0gZm9yaygpOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIv bWljcm9kdW1wX3dyaXRlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9k dW1wX3dyaXRlci5jYwotaW5kZXggZmEzYzE3MTNhLi42Y2U3MDllMmYgMTAwNjQ0Ci0tLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKLSsrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotQEAgLTEzOCw3 ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgICAgICAgICAgICAgICAgIGNv bnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8sCi0gICAgICAgICAg ICAgICAgICAgTGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0 ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg ICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5V TEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p Ci0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6 IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAotQEAgLTMzNyw2ICsz MzksOCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMgZWxzZQotICMgIGVycm9yICJUaGlz IG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgotICNlbmRpZgotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBw YzY0IjsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8g eW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1p Y3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKLSAgICAgUmF3Q29udGV4 dENQVSBjcHU7Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkp OwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29u dGV4dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIFVDb250ZXh0UmVhZGVyOjpG aWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UKLSAg ICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7Ci1AQCAt NjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkKiBBbGxvYyh1 bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVz KTsgfQotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOwotLSNpZiAhZGVm aW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2 ZWN0b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19taXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxv YXRfc3RhdGVfOwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87Ci1kaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0 LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0 ZXN0LmNjCi1pbmRleCBjMmZlYTAyMjUuLjhjNjJjNTI0YSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNj Ci1AQCAtMjc4LDEwICsyNzgsMTkgQEAgVEVTVChNaWNyb2R1bXBXcml0ZXJUZXN0LCBCYXNpY1dp dGhNYXBwaW5ncykgewotICAgQ3Jhc2hBbmRHZXRNaWNyb2R1bXAobWFwcGluZ3MsIE1pY3JvZHVt cEV4dHJhSW5mbygpLCAmYnVmKTsKLSAgIEFTU0VSVF9UUlVFKENvbnRhaW5zTWljcm9kdW1wKGJ1 ZikpOwotIAotKyAgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0gI2lmZGVmIF9fTFA2 NF9fCi0tICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0tICAgICAgICAgICAgYnVmLmZp bmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAg IgotLSAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVG RjAgbGliZm9vLnNvIikpOwotKyAgLy8gVGhpcyB0ZXN0IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0 aGUgZm9sbG93aW5nIHBhZ2Ugc2l6ZXMKLSsgIEFTU0VSVF9UUlVFKChwYWdlX3NpemUgPT0gNDA5 NikgfHwgKHBhZ2Vfc2l6ZSA9PSA2NTUzNikpOwotKyAgaWYgKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB7 IAotKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAgICAgICAgICBidWYu ZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAw MCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NE REVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIH0gZWxzZSB7Ci0rICAgIEFTU0VSVF9ORShzdGQ6OnN0 cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAg MDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDEwMDAwICIKLSsgICAgICAgICAgICAgICAgICAg ICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAg fQotICNlbHNlCi0gICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0gICAgICAgICAgICAg YnVmLmZpbmQoIk0gMDAwMDEwMDAgMDAwMDAwMkEgMDAwMDEwMDAgIgotZGlmZiAtLWdpdCBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotaW5kZXggNDc1NmE1NDE2 Li40ODA1ZmI2OTQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGlu dXhfY29yZV9kdW1wZXIuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9jb3JlX2R1bXBlci5jYwotQEAgLTExNyw2ICsxMTcsOSBAQCBib29sIExpbnV4Q29yZUR1bXBl cjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7 Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIgPQotICAgICAgIHJl aW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRf TUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBzdGFja19w b2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4 dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRo aXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRp ZgotQEAgLTIwMiw3ICsyMDUsMTAgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkVudW1lcmF0ZVRo cmVhZHMoKSB7Ci0gICAgICAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihUaHJlYWRJbmZvKSk7 Ci0gICAgICAgICBpbmZvLnRnaWQgPSBzdGF0dXMtPnByX3BncnA7Ci0gICAgICAgICBpbmZvLnBw aWQgPSBzdGF0dXMtPnByX3BwaWQ7Ci0tI2lmIGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzE7IGkrKykK LSsgICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBzdGF0dXMtPnByX3JlZ1tp XTsKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICNpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQot ICAgICAgICAgZm9yIChpbnQgaSA9IEVGX1IwOyBpIDw9IEVGX1IzMTsgaSsrKQotICAgICAgICAg ICBpbmZvLm1jb250ZXh0LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0dXMtPnByX3JlZ1tpXTsKLWRp ZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotaW5kZXggMTExMjAz NWJjLi44NTIzZGFkNjMgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfZHVtcGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf ZHVtcGVyLmNjCi1AQCAtNzY1LDcgKzc2NSw5IEBAIGJvb2wgTGludXhEdW1wZXI6OkdldFN0YWNr SW5mbyhjb25zdCB2b2lkKiogc3RhY2ssIHNpemVfdCogc3RhY2tfbGVuLAotICAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9zdGFja19wb2ludGVyICYgfihwYWdlX3NpemUgLSAx KSk7Ci0gCi0gICAvLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0YWNrIHdoaWNoIHdlIHRyeSB0 byBjYXB0dXJlLgotLSAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tUb0NhcHR1cmUgPSAz MiAqIDEwMjQ7Ci0rICAvLyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBhZ2Vfc2l6ZSB0byBhdm9pZCBt aXNzaW5nIGRhdGEKLSsgIC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFnZSBzaXplcy4KLSsg IHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gOCAqIHBhZ2Vfc2l6ZTsK LSAKLSAgIGNvbnN0IE1hcHBpbmdJbmZvKiBtYXBwaW5nID0gRmluZE1hcHBpbmcoc3RhY2tfcG9p bnRlcik7Ci0gICBpZiAoIW1hcHBpbmcpCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X2R1bXBlci5oCi1pbmRleCBmNGE3NWQ5MDYuLjAyMDk4MWY1NyAxMDA2NDQKLS0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi1AQCAtNjMsNyArNjMsOCBAQCBuYW1l c3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKLSAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJ TSA9PSBfQUJJTzMyKQotIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7Ci0gI2Vs aWYgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgICAg KGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQotKyAgICAgKGRlZmlu ZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCi0rICAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAj ZW5kaWYKLSAKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf ZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9s aW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzYWQ0OGU1MDEuLjE2ODhjMzY1 ZSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJf dW5pdHRlc3RfaGVscGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGlu dXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotQEAgLTUxLDYgKzUxLDggQEAKLSAjZGVmaW5l IFRJRF9QVFJfUkVHSVNURVIgInJjeCIKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICNkZWZp bmUgVElEX1BUUl9SRUdJU1RFUiAiJDEiCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCi0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0 IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYKLWRpZmYgLS1n aXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi1pbmRl eCA4YTNmMDRlMjkuLmU2MDdiMjhkNSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwotQEAgLTE1NCwxOSArMTU0LDI3IEBAIGJv b2wgTGludXhQdHJhY2VEdW1wZXI6OkNvcHlGcm9tUHJvY2Vzcyh2b2lkKiBkZXN0LCBwaWRfdCBj aGlsZCwKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpS ZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQotLXsKLStib29sIExp bnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3Qg dGlkKSB7Ci0gI2lmZGVmIFBUUkFDRV9HRVRSRUdTRVQKLSAgIHN0cnVjdCBpb3ZlYyBpbzsKLSAg IGluZm8tPkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9s ZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRf UFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRS RUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewotICAg ICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0gCi0gICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0 ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNF X0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7 Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VU LCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0rCi0rI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMg b24gUFBDNjQgdG9vCi0rICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAm aW8uaW92X2xlbik7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQq KU5UX1BQQ19WTVgsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsg IH0KLSsjZW5kaWYgLy8gZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotICAgcmV0dXJuIHRydWU7 Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxzZTsKLUBAIC0zMDMsNiArMzExLDkgQEAgYm9vbCBMaW51 eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJ bmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIg PQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdz W01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UK LSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5 ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9s aW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLWluZGV4IGE0MWRhZmNlMC4uMzE3 NDM5NDBkIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0 cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1AQCAtNDYyLDYgKzQ2Miw5IEBAIFRF U1QoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBWZXJpZnlTdGFja1JlYWRXaXRoTXVsdGlwbGVUaHJl YWRzKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgICAgcGlkX3QqIHByb2Nlc3NfdGlk X2xvY2F0aW9uID0KLSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFk Lm1jb250ZXh0LmdyZWdzWzFdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAg IHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9Ci0rICAgICAgICByZWludGVycHJldF9jYXN0 PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKLSAjZWxzZQotICNlcnJv ciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRp ZgotQEAgLTU1OSw2ICs1NjIsOCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBTYW5p dGl6ZVN0YWNrQ29weSkgewotICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLnJl Z3MucmN4OwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICB1aW50cHRyX3QgaGVhcF9hZGRy ID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3JlZ3NbMV07Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0Lmdw X3JlZ3NbOF07Ci0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQg dG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL21pbmlkdW1wX3dyaXRlci5jYwotaW5kZXggZjhjZGYyYTFjLi5jYjgwOGMxNTEgMTAwNjQ0 Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCi0r KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCi1AQCAt MTM2LDcgKzEzNiw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAgICA6IGZkXyhtaW5p ZHVtcF9mZCksCi0gICAgICAgICBwYXRoXyhtaW5pZHVtcF9wYXRoKSwKLSAgICAgICAgIHVjb250 ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rv cl9zdGF0ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5m bG9hdF9zdGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAot QEAgLTQ2OCw3ICs0NzAsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAgICBpZiAo IWNwdS5BbGxvY2F0ZSgpKQotICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICBteV9t ZW1zZXQoY3B1LmdldCgpLCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwotLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1Lmdl dCgpLCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VB QklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBVQ29udGV4dFJlYWRlcjo6Rmls bENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UK LSAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250 ZXh0Xyk7Ci1AQCAtODk3LDcgKzkwMSw3IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAg ZGlyZW50LT5sb2NhdGlvbi5ydmEgPSAwOwotICAgfQotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgYm9vbCBXcml0ZUNQVUluZm9ybWF0aW9uKE1E UmF3U3lzdGVtSW5mbyogc3lzX2luZm8pIHsKLSAgICAgY2hhciB2ZW5kb3JfaWRbc2l6ZW9mKHN5 c19pbmZvLT5jcHUueDg2X2NwdV9pbmZvLnZlbmRvcl9pZCkgKyAxXSA9IHswfTsKLSAgICAgc3Rh dGljIGNvbnN0IGNoYXIgdmVuZG9yX2lkX25hbWVbXSA9ICJ2ZW5kb3JfaWQiOwotQEAgLTkxNyw3 ICs5MjEsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gCi0gICAgIC8vIHByb2Nlc3Nvcl9h cmNoaXRlY3R1cmUgc2hvdWxkIGFsd2F5cyBiZSBzZXQsIGRvIHRoaXMgZmlyc3QKLSAgICAgc3lz X2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgPQotLSNpZiBkZWZpbmVkKF9fbWlwc19fKQot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJF X1BQQzY0OwotKyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gIyBpZiBfTUlQU19TSU0gPT0gX0FC SU8zMgotICAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9NSVBTOwotICMgZWxpZiBfTUlQU19T SU0gPT0gX0FCSTY0Ci1AQCAtMTMzMyw3ICsxMzM5LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIg ewotICAgY29uc3QgY2hhciogcGF0aF87ICAvLyBQYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBt aW5pZHVtIHNob3VsZCBiZSB3cml0dGVuLgotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3Qg dWNvbnRleHRfOyAgLy8gYWxzbyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgotLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0 b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRf c3RhdGVfOyAgLy8gZGl0dG8KLSAjZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOwotZGlm ZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaCBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotaW5kZXggZDFj YzU2MjRjLi4zMjA4NDc2NDMgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbWluaWR1bXBfd3JpdGVyLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9t aW5pZHVtcF93cml0ZXIuaAotQEAgLTQ3LDYgKzQ3LDggQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxl cjsKLSAKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSB0eXBlZGVmIHN0cnVjdCBmcHNpbWRf Y29udGV4dCBmcHN0YXRlX3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVk ZWYgdnJyZWdzZXRfdCB2c3RhdGVfdDsKLSAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYgc3RydWN0IF9mcHN0YXRlIGZwc3RhdGVfdDsK LSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1 bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlcl91bml0dGVzdC5jYwotaW5kZXggYzk1MWU2OWQ4Li5lMWQ2ZTQwZDYgMTAwNjQ0 Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0 ZXN0LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCi1AQCAtNzE0LDYgKzcxNCw5IEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0 LCBJbnZhbGlkU3RhY2tQb2ludGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNv bnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSA9 Ci0gICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRf UFBDNjRfUkVHX1NQXSA9Ci0rICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotICNlbHNlCi0g IyBlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5 ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmls ZS5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotaW5kZXggNGU5MzgyNjlm Li5mMGZmMTVkOTYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUu Y2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotQEAgLTY1LDggKzY1 LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRGaWxlOjpNYXAoY29uc3QgY2hhciogcGF0aCwgc2l6ZV90 IG9mZnNldCkgewotICAgfQotIAotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IFwKLS0gICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09 IF9BQkk2NCkKLS0KLSsgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2 NCkgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0Owot ICAgaWYgKHN5c19mc3RhdChmZCwgJnN0KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgewotICNl bHNlCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0 LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBm YWQ1OWY0MGMuLjYxNjQ5NmQ2NyAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBw ZWRfZmlsZV91bml0dGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxl X3VuaXR0ZXN0LmNjCi1AQCAtMTc2LDkgKzE3NiwxMCBAQCBURVNUX0YoTWVtb3J5TWFwcGVkRmls ZVRlc3QsIFJlbWFwQWZ0ZXJNYXApIHsKLSBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIE1h cFdpdGhPZmZzZXQpIHsKLSAgIC8vIFB1dCBtb3JlIGRhdGEgaW4gdGhlIHRlc3QgZmlsZSB0aGlz IHRpbWUuIE9mZnNldHMgY2FuIG9ubHkgYmUKLSAgIC8vIGRvbmUgb24gcGFnZSBib3VuZGFyaWVz LCBzbyB3ZSBuZWVkIGEgdHdvIHBhZ2UgZmlsZSB0byB0ZXN0IHRoaXMuCi0tICBjb25zdCBpbnQg cGFnZV9zaXplID0gNDA5NjsKLS0gIGNoYXIgZGF0YTFbMiAqIHBhZ2Vfc2l6ZV07Ci0tICBzaXpl X3QgZGF0YTFfc2l6ZSA9IHNpemVvZihkYXRhMSk7Ci0rICBjb25zdCBpbnQgcGFnZV9zaXplID0g Z2V0cGFnZXNpemUoKTsKLSsgIGNoYXIgKmRhdGExID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1hbGxv YygyICogcGFnZV9zaXplKSk7Ci0rICBFWFBFQ1RfVFJVRShkYXRhMSAhPSBOVUxMKTsKLSsgIHNp emVfdCBkYXRhMV9zaXplID0gKDIgKiBwYWdlX3NpemUpOwotICAgZm9yIChzaXplX3QgaSA9IDA7 IGkgPCBkYXRhMV9zaXplOyArK2kpIHsKLSAgICAgZGF0YTFbaV0gPSBpICYgMHg3ZjsKLSAgIH0K LWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotaW5kZXggNDNjODYzMTRjLi4yNzMyNWI4MTMg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi0rKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1AQCAtNTcsOCArNTcsOSBAQAotIAot ICAgRVhQRUNUX0VRKDBVLCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgdWludDhf dCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRvci5BbGxvYygxMDAwMCkp OwotKyAgdWludDY0X3QgZXhwZWN0ZWRfcGFnZXMgPSAxICsgKCgxMDAwMCAtIDEpIC8gZ2V0cGFn ZXNpemUoKSk7Ci0gICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLS0gIEVYUEVDVF9FUSgzVSwg YWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSsgIEVYUEVDVF9FUShleHBlY3RlZF9wYWdl cywgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIGZvciAodW5zaWduZWQgaSA9IDE7 IGkgPCAxMDsgKytpKSB7Ci0gICAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihhbGxvY2F0b3IuQWxsb2MoaSkpOwotICAgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsK LWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29y L2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi1pbmRleCBjY2M5ZjE0NTkuLmRlYmFlZDRkNiAxMDA2 NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nv ci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotQEAgLTIwMiwxMiArMjAyLDE0IEBAIGJvb2wgRXhw bG9pdGFiaWxpdHlMaW51eDo6RW5kZWRPbklsbGVnYWxXcml0ZSh1aW50NjRfdCBpbnN0cnVjdGlv bl9wdHIpIHsKLSAgIC8vIENoZWNrIGFyY2hpdGVjdHVyZSBhbmQgc2V0IGFyY2hpdGVjdHVyZSB2 YXJpYWJsZSB0byBjb3JyZXNwb25kaW5nIGZsYWcKLSAgIC8vIGluIG9iamR1bXAuCi0gICBzd2l0 Y2ggKGNvbnRleHQtPkdldENvbnRleHRDUFUoKSkgewotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwg ZGVmaW5lZChfX3g4Nl82NCkKLSAgICAgY2FzZSBNRF9DT05URVhUX1g4NjoKLSAgICAgICBhcmNo aXRlY3R1cmUgPSAiaTM4NiI7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgTURfQ09OVEVYVF9B TUQ2NDoKLSAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4Njp4ODYtNjQiOwotICAgICAgIGJyZWFr OwotKyNlbmRpZgotICAgICBkZWZhdWx0OgotICAgICAgIC8vIFVuc3VwcG9ydGVkIGFyY2hpdGVj dHVyZS4gTm90ZSB0aGF0IEFSTSBhcmNoaXRlY3R1cmVzIGFyZSBub3QKLSAgICAgICAvLyBzdXBw b3J0ZWQgYmVjYXVzZSBvYmpkdW1wIGRvZXMgbm90IHN1cHBvcnQgQVJNLgotZGlmZiAtLWdpdCBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv cHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFi aWxpdHlfdW5pdHRlc3QuY2MKLWluZGV4IDUyOGVlNWYyMS4uNzI3NjRkNmMxIDEwMDY0NAotLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCi1AQCAtMTA0LDYgKzEwNCw4IEBAIEV4cGxvaXRhYmls aXR5Rm9yKGNvbnN0IHN0cmluZyYgZmlsZW5hbWUpIHsKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJp bGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7Ci0rLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBh cmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgotKyNpZiAh ZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkp Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJhc2NpaV9yZWFkX2F2LmRtcCIpKTsKLSAgIEFT U0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTM2LDkg KzEzOCwxMiBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsK LSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jbG9iYmVyX3dyaXRlLmRt cCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0xPVywK LSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigicmVhZF9hdl9jb25kaXRpb25hbC5kbXAi KSk7Ci0rI2VuZGlmCi0gfQotIAotIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhF bmdpbmUpIHsKLSsvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24g YW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCi0rI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZp bmVkKF9feDg2XzY0KQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSU5URVJFU1RJTkcsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X251 bGxfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9ISUdILAotQEAgLTE3MSw3ICsxNzYsOCBAQCBURVNUKEV4cGxvaXRhYmlsaXR5VGVz dCwgVGVzdExpbnV4RW5naW5lKSB7Ci0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxp bnV4X2V4ZWN1dGFibGVfaGVhcC5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9ISUdILAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJs aW51eF9qbXBfdG9fbW9kdWxlX25vdF9leGVfcmVnaW9uLmRtcCIpKTsKLS0jaWZuZGVmIF9XSU4z MgotKyNlbmRpZgotKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwg ZGVmaW5lZChfX3g4Nl82NCkpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9ISUdILAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0 ZV90b19ub253cml0YWJsZV9tb2R1bGUuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVh a3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xODIsMTAgKzE4OCwxMCBAQCBURVNUKEV4 cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0gICAgICAgICAgICAgRXhwbG9p dGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX291dHNpZGVfbW9kdWxlX3ZpYV9tYXRoLmRtcCIp KTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNU SU5HLAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b191bmRl cl80ay5kbXAiKSk7Ci0tI2VuZGlmICAvLyBfV0lOMzIKLSsjZW5kaWYgIC8vICFkZWZpbmVkKF9X SU4zMikgJiYgKCFkZWZpbmVkKF9faTM4NikgJiYgIWRlZmluZWQoX194ODZfNjQpKQotIH0KLSAK LS0jaWZuZGVmIF9XSU4zMgotKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4 NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0gVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNU ZXN0LCBEaXNhc3NlbWJsZUJ5dGVzVGVzdCkgewotICAgQVNTRVJUX0ZBTFNFKEV4cGxvaXRhYmls aXR5TGludXhUZXN0OjpEaXNhc3NlbWJsZUJ5dGVzKCIiLCBOVUxMLCA1LCBOVUxMKSk7Ci0gICB1 aW50OF90IGJ5dGVzWzZdID0gezB4YzcsIDB4MCwgMHg1LCAweDAsIDB4MCwgMHgwfTsKLUBAIC0z MDEsNiArMzA3LDcgQEAgVEVTVChFeHBsb2l0YWJpbGl0eUxpbnV4VXRpbHNUZXN0LCBDYWxjdWxh dGVBZGRyZXNzVGVzdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndyaXRlX2FkZHJlc3MpKTsKLSB9Ci0tI2Vu ZGlmICAvLyBfV0lOMzIKLSsjZW5kaWYgIC8vICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQo X19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSsKLSAKLSB9ICAvLyBuYW1lc3BhY2UKLWRp ZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9s aW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotaW5kZXggOTQxNTg2ZTlmLi40OWNkYzNm YzIgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi0r KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1AQCAtNzYsNiArNzYs OCBAQAotICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fTUlQUwotICNlbGlmIGRlZmluZWQoX19hYXJj aDY0X18pCi0gICAjZGVmaW5lIEVMRl9BUkNIICBFTV9BQVJDSDY0Ci0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgI2RlZmluZSBFTEZfQVJDSCAgRU1fUFBDNjQKLSAjZW5kaWYKLSAK LSAjaWYgZGVmaW5lZChfX2FybV9fKQotQEAgLTg2LDYgKzg4LDggQEAgdHlwZWRlZiB1c2VyX3Jl Z3MgdXNlcl9yZWdzX3N0cnVjdDsKLSAjZWxpZiBkZWZpbmVkIChfX21pcHNfXykKLSAvLyBUaGlz IGZpbGUtbG9jYWwgdHlwZWRlZiBzaW1wbGlmaWVzIHRoZSBzb3VyY2UgY29kZS4KLSB0eXBlZGVm IGdyZWdzZXRfdCB1c2VyX3JlZ3Nfc3RydWN0OwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VuZGlmCi0g Ci0gdXNpbmcgZ29vZ2xlX2JyZWFrcGFkOjpNRFR5cGVIZWxwZXI7Ci1AQCAtMzIwLDYgKzMyNCw5 IEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hYXJj aDY0X18pCi0gICAgIHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7Ci0rI2VuZGlmCi0rI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgbWNvbnRleHRfdCBtY29udGV4dDsKLSAjZW5kaWYK LSAgICAgdWludHB0cl90IHN0YWNrX2FkZHI7Ci0gICAgIGNvbnN0IHVpbnQ4X3QqIHN0YWNrOwot QEAgLTUzNCw2ICs1NDEsMzggQEAgUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6 OlRocmVhZCogdGhyZWFkLAotICAgdGhyZWFkLT5tY29udGV4dC5mcGNfZWlyID0gcmF3cmVncy0+ ZmxvYXRfc2F2ZS5maXI7Ci0gI2VuZGlmCi0gfQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLStzdGF0aWMgdm9pZAotK1BhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpU aHJlYWQqIHRocmVhZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25zdCBNaW5pZHVtcE1lbW9y eVJhbmdlJiByYW5nZSkgewotKyAgY29uc3QgTURSYXdDb250ZXh0UFBDNjQqIHJhd3JlZ3MgPSBy YW5nZS5HZXREYXRhPE1EUmF3Q29udGV4dFBQQzY0PigwKTsKLSsKLSsgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgdGhyZWFkLT5tY29u dGV4dC5ncF9yZWdzW2ldID0gcmF3cmVncy0+Z3ByW2ldOwotKwotKyAgdGhyZWFkLT5tY29udGV4 dC5ncF9yZWdzW1BUX0xOS10gPSByYXdyZWdzLT5scjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3Bf cmVnc1tQVF9OSVBdID0gcmF3cmVncy0+c3JyMDsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVn c1tQVF9NU1JdID0gcmF3cmVncy0+c3JyMTsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQ VF9DQ1JdID0gcmF3cmVncy0+Y3I7Ci0rICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfWEVS XSA9IHJhd3JlZ3MtPnhlcjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdID0g cmF3cmVncy0+Y3RyOwotKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZyc2F2ZSA9IHJhd3Jl Z3MtPnZyc2F2ZTsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJF QV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW2ld ID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV07Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0 LmZwX3JlZ3NbTkZQUkVHLTFdID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHNjcjsKLSsKLSsgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspIHsK LSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzBdID0gcmF3cmVncy0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRl eHQudl9yZWdzLT52cnJlZ3NbaV1bMV0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ld LmhpZ2g7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsyXSA9IHJh d3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93ID4+IDMyOwotKyAgICAgIHRocmVhZC0+ bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bM10gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZl X3ZyW2ldLmxvdzsKLSsgIH0KLSsKLSsgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52c2NyLnZz Y3Jfd29yZCA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjci5sb3cgJiAweEZGRkZGRkZG OwotK30KLSsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQg dG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNjIyLDYgKzY2MSwxMiBAQCBQYXJz ZVN5c3RlbUluZm8oY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgQ3Jhc2hlZFByb2Nlc3MqIGNyYXNo aW5mbywKLSAjIGVsc2UKLSAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90 IHN1cHBvcnRlZCAobjMyKSIKLSAjIGVuZGlmCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyAgaWYgKHN5c2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgIT0gTURfQ1BVX0FSQ0hJ VEVDVFVSRV9QUEM2NCkgewotKyAgICBmcHJpbnRmKHN0ZGVyciwKLSsgICAgICAgICAgICAiVGhp cyB2ZXJzaW9uIG9mIG1pbmlkdW1wLTItY29yZSBvbmx5IHN1cHBvcnRzIFBQQzY0LlxuIik7Ci0r ICAgIGV4aXQoMSk7Ci0rICB9Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJl ZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklC VVRPUlMgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvQ09OVFJJQlVUT1JTCi1pbmRleCA4NzI0YjdmMzIuLjhlMjk0MjRlZiAxMDA2NDQKLS0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05U UklCVVRPUlMKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9DT05UUklCVVRPUlMKLUBAIC0xMywzICsxMyw0IEBAIE1hcmsgTWVudG92YWkg PG1hcmtAY2hyb21pdW0ub3JnPgotIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9taXVtLm9yZz4K LSBTY290dCBHcmFoYW0gPHNjb3R0bWdAY2hyb21pdW0ub3JnPgotIEpvc2h1YSBQZXJhemEgPGpw ZXJhemFAY2hyb21pdW0ub3JnPgotK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5pbz4K LWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLWlu ZGV4IDZlZDc3YTk4ZS4uMWZkODM0NjlhIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5o Ci0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLUBAIC0xNSw2ICsxNSw3IEBACi0gI2lmbmRlZiBD UkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KLSAjZGVmaW5lIENSQVNIUEFEX0NPTVBB VF9MSU5VWF9TWVNfVVNFUl9IXwotIAotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlX25l eHQgPHN5cy91c2VyLmg+Ci0gCi0gI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci1kaWZmIC0tZ2l0IGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlk dW1wL21pbmlkdW1wX2NvbnRleHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKLWluZGV4IDNh M2U2MDNjYi4uMzExOGQ5ZTlmIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAot KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotQEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0 IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEg XGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdzIGZvciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2Zs YWdzCi0rLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKLStl bnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0RmxhZ3MgOiB1aW50MzJfdCB7Ci0rICAvLyEgXGJyaWVm IElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBDNjQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBD NjQgPSAweDAxMDAwMDAwLAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5 IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMg YHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJgLCBldGMuIGFyZSB2YWxpZC4KLSsgIGtNaW5p ZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAx LAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBv aW50IHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBm cHNjcmAgYXJlIHZhbGlkLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWlu aWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDA4LAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0 ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1YIHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8h IFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNjcmAsIGB2cnNhdmVgLgotKyAga01pbmlkdW1wQ29u dGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKLSsK LSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCi0r ICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAg ICB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRG bG9hdGluZyB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0 UFBDNjRWZWN0b3IKLSt9OwotKwotKy8vISBcYnJpZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJy aWVkIGluIGEgbWluaWR1bXAgZmlsZS4KLSsvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0 LmggZnJvbSBicmVha3BhZC4KLStzdHJ1Y3QgTWluaWR1bXBDb250ZXh0UFBDNjQgewotKyAgdWlu dDY0X3QgY29udGV4dF9mbGFnczsKLSsKLSsgIC8vISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJl Z2lzdGVycy4KLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90 IHJlZ3NbMzJdOwotKyAgdWludDY0X3QgY2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0 X3QgbG5rOwotKyAgdWludDY0X3QgY3RyOwotKwotKyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2lu dCByZWdpc3RlcnMuCi0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsKLSsgIC8vISBcYnJpZWYgRlBV IHN0YXR1cyByZWdpc3Rlci4KLSsgIGRvdWJsZSBmcHNjcjsKLSsKLSsgIC8vISBcYnJpZWYgQWx0 aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4KLSsgIHN0cnVjdCB7Ci0rICAgICAgLy8hIFxicmll ZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRzLgotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNh dmVfdnJbMzJdOwotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKLSsKLSsgICAgICAv LyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCi0r ICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRdOwotKwotKyAgICAgIC8vISBcYnJpZWYgVlJTQVZF IHJlZ2lzdGVyLgotKyAgICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKwotKyAgICAgIC8vISBc YnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KLSsgICAg ICB1aW50MzJfdCBzYXZlX3BhZDZbN107Ci0rICB9IHZyZWdzOwotK307Ci0rCi0gfSAgLy8gbmFt ZXNwYWNlIGNyYXNocGFkCi0gCi0gI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVN UF9DT05URVhUX0hfCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNj IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21p bmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi1pbmRleCBkN2U1M2E0OTMuLmQ4OWVi OWUwMSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwotKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlk dW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi1AQCAtMTAxLDYgKzEwMSwxMyBAQCBNaW5p ZHVtcENvbnRleHRXcml0ZXI6OkNyZWF0ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0KiBj b250ZXh0X3NuYXBzaG90KSB7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLSsgICAgY2FzZSBr Q1BVQXJjaGl0ZWN0dXJlUFBDNjQ6IHsKLSsgICAgICBjb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1 ZTxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcj4oKTsKLSsgICAgICByZWludGVycHJldF9jYXN0 PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKj4oY29udGV4dC5nZXQoKSkKLSsgICAgICAgICAg LT5Jbml0YWxpemVGcm9tU25hcHNob3QoY29udGV4dF9zbmFwc2hvdC0+cHBjNjQpOwotKyAgICAg IGJyZWFrOwotKyAgICB9Ci0rCi0gICAgIGRlZmF1bHQ6IHsKLSAgICAgICBMT0coRVJST1IpIDw8 ICJ1bmtub3duIGNvbnRleHQgYXJjaGl0ZWN0dXJlICIKLSAgICAgICAgICAgICAgICAgIDw8IGNv bnRleHRfc25hcHNob3QtPmFyY2hpdGVjdHVyZTsKLUBAIC00NTMsNCArNDYwLDQ3IEBAIHNpemVf dCBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3QgewotICAg cmV0dXJuIHNpemVvZihjb250ZXh0Xyk7Ci0gfQotIAotK01pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyOjpNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpCi0rICA6IE1pbmlkdW1wQ29udGV4dFdy aXRlcigpLCBjb250ZXh0XygpIHsKLSsgICAgY29udGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5p ZHVtcENvbnRleHRQUEM2NDsKLSt9Ci0rCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6On5N aW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcigpID0gZGVmYXVsdDsKLSsKLSt2b2lkIE1pbmlkdW1w Q29udGV4dFBQQzY0V3JpdGVyOjpJbml0YWxpemVGcm9tU25hcHNob3QoCi0rICAgIGNvbnN0IENQ VUNvbnRleHRQUEM2NCogY29udGV4dF9zbmFwc2hvdCkgewotKyAgRENIRUNLX0VRKHN0YXRlKCks IGtTdGF0ZU11dGFibGUpOwotKyAgRENIRUNLX0VRKGNvbnRleHRfLmNvbnRleHRfZmxhZ3MsIGtN aW5pZHVtcENvbnRleHRQUEM2NCk7Ci0rCi0rICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01p bmlkdW1wQ29udGV4dFBQQzY0QWxsOwotKwotKyAgbWVtY3B5KGNvbnRleHRfLnJlZ3MsIGNvbnRl eHRfc25hcHNob3QtPnJlZ3MsIHNpemVvZihjb250ZXh0Xy5yZWdzKSk7Ci0rICBjb250ZXh0Xy5u aXAgPSBjb250ZXh0X3NuYXBzaG90LT5uaXA7Ci0rICBjb250ZXh0Xy5tc3IgPSBjb250ZXh0X3Nu YXBzaG90LT5tc3I7Ci0rICBjb250ZXh0Xy5jY3IgPSBjb250ZXh0X3NuYXBzaG90LT5jY3I7Ci0r ICBjb250ZXh0Xy54ZXIgPSBjb250ZXh0X3NuYXBzaG90LT54ZXI7Ci0rICBjb250ZXh0Xy5sbmsg PSBjb250ZXh0X3NuYXBzaG90LT5sbms7Ci0rICBjb250ZXh0Xy5jdHIgPSBjb250ZXh0X3NuYXBz aG90LT5jdHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8uZnByZWdzLCBjb250ZXh0X3NuYXBzaG90 LT5mcHJlZ3MsIHNpemVvZihjb250ZXh0Xy5mcHJlZ3MpKTsKLSsgIGNvbnRleHRfLmZwc2NyID0g Y29udGV4dF9zbmFwc2hvdC0+ZnBzY3I7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8udnJlZ3Muc2F2 ZV92ciwgY29udGV4dF9zbmFwc2hvdC0+dnJlZ3Muc2F2ZV92ciwKLSsgICAgICAgICBzaXplb2Yo Y29udGV4dF8udnJlZ3Muc2F2ZV92cikpOwotKyAgbWVtY3B5KCZjb250ZXh0Xy52cmVncy5zYXZl X3ZzY3IsICZjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZzY3IsCi0rICAgICAgICAgc2l6 ZW9mKGNvbnRleHRfLnZyZWdzLnNhdmVfdnNjcikpOwotKyAgY29udGV4dF8udnJlZ3Muc2F2ZV92 cnNhdmUgPSBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3Zyc2F2ZTsKLSt9Ci0rCi0rYm9v bCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6V3JpdGVPYmplY3QoCi0rICAgIEZpbGVXcml0 ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0YXRl V3JpdGFibGUpOwotKyAgcmV0dXJuIGZpbGVfd3JpdGVyLT5Xcml0ZSgmY29udGV4dF8sIHNpemVv Zihjb250ZXh0XykpOwotK30KLSsKLStzaXplX3QgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6 OkNvbnRleHRTaXplKCkgY29uc3QgewotKyAgRENIRUNLX0dFKHN0YXRlKCksIGtTdGF0ZUZyb3pl bik7Ci0rICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSt9Ci0rCi0gfSAgLy8gbmFtZXNwYWNl IGNyYXNocGFkCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmggYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1 bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotaW5kZXggZDRhYjkzNmVlLi4xZDIyZmM1OWMg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHRfd3JpdGVyLmgKLUBAIC0zMTUsNiArMzE1LDQ1IEBAIGNsYXNzIE1pbmlk dW1wQ29udGV4dE1JUFM2NFdyaXRlciBmaW5hbCA6IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0 ZXIgewotICAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKE1pbmlkdW1wQ29udGV4dE1JUFM2NFdy aXRlcik7Ci0gfTsKLSAKLStjbGFzcyBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciBmaW5hbCA6 IHB1YmxpYyBNaW5pZHVtcENvbnRleHRXcml0ZXIgewotKyBwdWJsaWM6Ci0rICBNaW5pZHVtcENv bnRleHRQUEM2NFdyaXRlcigpOwotKyAgfk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgb3Zl cnJpZGU7Ci0rCi0rICAvLyEgXGJyaWVmIEluaXRhbGl6ZXMgdGhlIE1pbmlkdW1wQ29udGV4dFBQ QzY0IGJhc2VkIG9uIFxhIGNvbnRleHRfc25hcHNob3QuCi0rICAvLyEKLSsgIC8vISBccGFyYW1b aW5dIGNvbnRleHRfc25hcHNob3QgVGhlIGNvbnRleHQgc25hcHNob3QgdG8gdXNlIGFzIHNvdXJj ZSBkYXRhLgotKyAgLy8hCi0rICAvLyEgXG5vdGUgVmFsaWQgaW4gI2tTdGF0ZU11dGFibGUuIE5v IG11dGF0aW9uIG9mIGNvbnRleHQoKSBtYXkgYmUgZG9uZSBiZWZvcmUKLSsgIC8vISAgICAgY2Fs bGluZyB0aGlzIG1ldGhvZCwgYW5kIGl0IGlzIG5vdCBub3JtYWxseSBuZWNlc3NhcnkgdG8gYWx0 ZXIKLSsgIC8vISAgICAgY29udGV4dCgpIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuCi0rICB2 b2lkIEluaXRhbGl6ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRleHRf c25hcHNob3QpOwotKwotKyAgLy8hIFxicmllZiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgY29u dGV4dCBzdHJ1Y3R1cmUgdGhhdCB0aGlzIG9iamVjdCB3aWxsCi0rICAvLyEgICAgIHdyaXRlLgot KyAgLy8hCi0rICAvLyEgXGF0dGVudGlvbiBUaGlzIHJldHVybnMgYSBub24tYGNvbnN0YCBwb2lu dGVyIHRvIHRoaXMgb2JqZWN04oCZcyBwcml2YXRlCi0rICAvLyEgICAgIGRhdGEgc28gdGhhdCBh IGNhbGxlciBjYW4gcG9wdWxhdGUgdGhlIGNvbnRleHQgc3RydWN0dXJlIGRpcmVjdGx5LgotKyAg Ly8hICAgICBUaGlzIGlzIGRvbmUgYmVjYXVzZSBwcm92aWRpbmcgc2V0dGVyIGludGVyZmFjZXMg dG8gZWFjaCBmaWVsZCBpbiB0aGUKLSsgIC8vISAgICAgY29udGV4dCBzdHJ1Y3R1cmUgd291bGQg YmUgdW53aWVsZHkgYW5kIGN1bWJlcnNvbWUuIENhcmUgbXVzdCBiZSB0YWtlbgotKyAgLy8hICAg ICB0byBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgY29ycmVjdGx5LiBUaGUgY29udGV4 dCBzdHJ1Y3R1cmUKLSsgIC8vISAgICAgbXVzdCBvbmx5IGJlIG1vZGlmaWVkIHdoaWxlIHRoaXMg b2JqZWN0IGlzIGluIHRoZSAja1N0YXRlTXV0YWJsZQotKyAgLy8hICAgICBzdGF0ZS4KLSsgIE1p bmlkdW1wQ29udGV4dFBQQzY0KiBjb250ZXh0KCkgeyByZXR1cm4gJmNvbnRleHRfOyB9Ci0rCi0r IHByb3RlY3RlZDoKLSsgIC8vIE1pbmlkdW1wV3JpdGFibGU6Ci0rICBib29sIFdyaXRlT2JqZWN0 KEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZpbGVfd3JpdGVyKSBvdmVycmlkZTsKLSsKLSsgIC8vIE1p bmlkdW1wQ29udGV4dFdyaXRlcjoKLSsgIHNpemVfdCBDb250ZXh0U2l6ZSgpIGNvbnN0IG92ZXJy aWRlOwotKwotKyBwcml2YXRlOgotKyAgTWluaWR1bXBDb250ZXh0UFBDNjQgY29udGV4dF87Ci0r Ci0rICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIp OwotK307Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2VuZGlmICAvLyBDUkFT SFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX1dSSVRFUl9IXwotZGlmZiAtLWdpdCBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyX3Rlc3QuY2MKLWluZGV4IDMyMTZhOTA2Yi4uYTlmY2JlOWQ4IDEwMDY0NAotLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlk dW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlcl90ZXN0LmNjCi1AQCAtMjEzLDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1w Q29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TbmFwc2hvdCkgewotICAgICAgIGNvbnRleHQsIEV4 cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1NlZWQpOwotIH0KLSAKLStURVNUKE1pbmlkdW1w Q29udGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsKLSsgIEVtcHR5Q29udGV4dFRlc3Q8TWluaWR1 bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigKLSsgICAgRXhwZWN0 TWluaWR1bXBDb250ZXh0UFBDNjQpOwotK30KLSsKLStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRl ciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7Ci0rICBjb25zdGV4cHIgdWludDMyX3Qga1NlZWQgPSA2 NDsKLSsgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0X3BwYzY0OwotKyAgQ1BVQ29udGV4dCBjb250 ZXh0OwotKyAgY29udGV4dC5wcGM2NCA9ICZjb250ZXh0X3BwYzY0OwotKyAgSW5pdGlhbGl6ZUNQ VUNvbnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQpOwotKyAgRnJvbVNuYXBzaG90VGVzdDxNaW5p ZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAotKyAgICAgIGNv bnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0LCBrU2VlZCk7Ci0rfQotKwotIH0gIC8v IG5hbWVzcGFjZQotIH0gIC8vIG5hbWVzcGFjZSB0ZXN0Ci0gfSAgLy8gbmFtZXNwYWNlIGNyYXNo cGFkCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotaW5kZXggYTEzNDA3NjA1Li45NWRjOTI1MjQg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1w L21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLUBAIC0xMjYsNiArMTI2LDggQEAgc3RkOjpz dHJpbmcgTWluaWR1bXBNaXNjSW5mb0RlYnVnQnVpbGRTdHJpbmcoKSB7Ci0gICBzdGF0aWMgY29u c3RleHByIGNoYXIga0NQVVtdID0gIm1pcHMiOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ UzY0RUwpCi0gICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2NCI7Ci0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BV W10gPSAicHBjNjQiOwotICNlbHNlCi0gI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0aGlzIENQVQot ICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJl X21lbW9yeS5jYwotaW5kZXggYTUxNjI2Y2NkLi42MWUwYjIwYTEgMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y2FwdHVyZV9tZW1vcnkuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotQEAgLTExMSw2 ICsxMTEsMTEgQEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQb2ludGVkVG9CeUNvbnRleHQoY29uc3Qg Q1BVQ29udGV4dCYgY29udGV4dCwKLSAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmFzZTo6c2l6 ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgewotICAgICBNYXliZUNhcHR1cmVNZW1vcnlB cm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdzW2ldKTsKLSAgIH0KLSsjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3Vu ZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKLSsgIGZvciAoc2l6ZV90IGkgPSAwOyBp IDwgYmFzZTo6c2l6ZShjb250ZXh0LnBwYzY0LT5yZWdzKTsgKytpKSB7Ci0rICAgIE1heWJlQ2Fw dHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+cmVnc1tpXSk7Ci0rICB9 Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2Fy Y2hpdGVjdHVyZS5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotaW5kZXggODExYTcyMDk1Li5m NGY4Mzk4MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2FyY2hpdGVjdHVyZS5oCi1AQCAtNDMsNyArNDMsMTAgQEAgZW51bSBDUFVBcmNoaXRlY3R1 cmUgewotICAga0NQVUFyY2hpdGVjdHVyZU1JUFNFTCwKLSAKLSAgIC8vISBcYnJpZWYgNjQtYml0 IE1JUFNFTC4KLS0gIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAotKyAga0NQVUFyY2hpdGVjdHVy ZU1JUFM2NEVMLAotKwotKyAgLy8hIFxicmllZiA2NC1iaXQgUFBDNjQuCi0rICBrQ1BVQXJjaGl0 ZWN0dXJlUFBDNjQKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlmZiAtLWdp dCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9jcHVfY29udGV4dC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotaW5kZXggNmZiOGQ3 ZTcxLi5iMDFmN2NhZDEgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKLSsrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9jcHVfY29udGV4dC5jYwotQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0 OjpJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFybS0+cGM7Ci0g ICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBhcm02NC0+cGM7 Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVybiBwcGM2NC0+ bmlwOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4g fjB1bGw7Ci1AQCAtMTg1LDYgKzE4Nyw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9p bnRlcigpIGNvbnN0IHsKLSAgICAgICByZXR1cm4gYXJtLT5zcDsKLSAgICAgY2FzZSBrQ1BVQXJj aGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5zcDsKLSsgICAgY2FzZSBrQ1BV QXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOwotICAgICBk ZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAt MTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BVQ29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKLSAgICAg Y2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2XzY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVB Uk02NDoKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUw6Ci0rICAgIGNhc2Uga0NQ VUFyY2hpdGVjdHVyZVBQQzY0OgotICAgICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVYODY6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKLWRpZmYgLS1n aXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2NvbnRleHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1pbmRleCBmYjIzYzQ2 NzkuLmVlYmVkZTYzYyAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2NvbnRleHQuaAotQEAgLTM1Miw2ICszNTIsMjQgQEAgc3RydWN0IENQVUNvbnRleHRNSVBT NjQgewotICAgdWludDY0X3QgZmlyOwotIH07Ci0gCi0rLy8hIFxicmllZiBBIGNvbnRleHQgc3Ry dWN0dXJlIGNhcnJ5aW5nIFBQQzY0IENQVSBzdGF0ZS4KLStzdHJ1Y3QgQ1BVQ29udGV4dFBQQzY0 IHsKLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3Nb MzJdOwotKyAgdWludDY0X3QgY2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5r OwotKyAgdWludDY0X3QgY3RyOwotKyAgZG91YmxlIGZwcmVnc1szMl07Ci0rICBkb3VibGUgZnBz Y3I7Ci0rICBzdHJ1Y3QgewotKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAg dWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOwotKyAgICB1aW50MzJfdCBzYXZlX3Zyc2F2ZTsKLSsg IH0gdnJlZ3M7Ci0rfTsKLSsKLSAvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FwYWJs ZSBvZiBjYXJyeWluZyB0aGUgY29udGV4dCBvZiBhbnkgc3VwcG9ydGVkCi0gLy8hICAgICBDUFUg YXJjaGl0ZWN0dXJlLgotIHN0cnVjdCBDUFVDb250ZXh0IHsKLUBAIC0zODIsNiArNDAwLDcgQEAg c3RydWN0IENQVUNvbnRleHQgewotICAgICBDUFVDb250ZXh0QVJNNjQqIGFybTY0OwotICAgICBD UFVDb250ZXh0TUlQUyogbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0KiBtaXBzNjQ7Ci0r ICAgIENQVUNvbnRleHRQUEM2NCogcHBjNjQ7Ci0gICB9OwotIH07Ci0gCi1kaWZmIC0tZ2l0IGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGlu dXguaAotaW5kZXggOWY0NmE0ODk3Li5hYTY3N2M0ZWIgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv Y3B1X2NvbnRleHRfbGludXguaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgK LUBAIC0xNSw2ICsxNSw3IEBACi0gI2lmbmRlZiBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVf Q09OVEVYVF9MSU5VWF9IXwotICNkZWZpbmUgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NP TlRFWFRfTElOVVhfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSAiYnVpbGQv YnVpbGRfY29uZmlnLmgiCi0gI2luY2x1ZGUgInNuYXBzaG90L2NwdV9jb250ZXh0LmgiCi0gI2lu Y2x1ZGUgInNuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgiCi1AQCAtMTc0LDYgKzE3NSw3 OCBAQCB2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKLSAKLSAjZW5kaWYgIC8vIEFSQ0hf Q1BVX01JUFNfRkFNSUxZIHx8IERPWFlHRU4KLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpIHx8IERPWFlHRU4KLSsKLSsvLyEgXGJyaWVmIEluaXRhbGl6ZXMgYSBDUFVDb250 ZXh0UFBDNjQgc3RydWN0dXJlIGZyb20gbmF0aXZlIGNvbnRleHQKLSsvLyEgICAgIHN0cnVjdHVy ZXMgb24gTGludXguCi0rLy8hCi0rLy8hIFxwYXJhbVtpbl0gdGhyZWFkX2NvbnRleHQgVGhlIG5h dGl2ZSB0aHJlYWQgY29udGV4dC4KLSsvLyEgXHBhcmFtW2luXSBmbG9hdF9jb250ZXh0IFRoZSBu YXRpdmUgZmxvYXQgY29udGV4dC4KLSsvLyEgXHBhcmFtW2luXSB2ZWN0b3JfY29udGV4dCBUaGUg bmF0aXZlIHZlY3RvciBjb250ZXh0LgotKy8vISBccGFyYW1bb3V0XSBjb250ZXh0IFRoZSBDUFVD b250ZXh0UFBDNjQgc3RydWN0dXJlIHRvIGluaXRhbGl6ZS4KLSt0ZW1wbGF0ZSA8dHlwZW5hbWUg VHJhaXRzPgotK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKLSsgICAgY29uc3QgVGhy ZWFkQ29udGV4dDo6dDY0X3QmIHRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBGbG9hdENvbnRl eHQ6OmY2NF90JiBmbG9hdF9jb250ZXh0LAotKyAgICBjb25zdCBWZWN0b3JDb250ZXh0Ojp2NjRf dCYgdmVjdG9yX2NvbnRleHQsCi0rICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29u dGV4dCkgewotKwotKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0Lmdwciwg c2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0 Lm5pcDsKLSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNvbnRleHQt PmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250 ZXh0LnhlcjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsgIGNvbnRl eHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5mcHJl Z3MsIGZsb2F0X2NvbnRleHQuZnByZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7Ci0rICBj b250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7Ci0rCi0rICBmb3IgKHVpbnQ4X3Qg aSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0rICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7 Ci0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikg fAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAotKyAgICAgICgoKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVszXQotKyAgICB9OwotKyAgfQotKyAgY29udGV4dC0+dnJlZ3Mu c2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7Ci0rICBjb250ZXh0LT52cmVncy5z YXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsK LSt9Ci0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVDUFVD b250ZXh0UFBDNjQoCi0rICAgIGNvbnN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCAmdGhyZWFkX2Nv bnRleHQsCi0rICAgIGNvbnN0IFNpZ25hbEZsb2F0Q29udGV4dDY0ICZmbG9hdF9jb250ZXh0LAot KyAgICBjb25zdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgJnZlY3Rvcl9jb250ZXh0LAotKyAgICB0 eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250 ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+cmVncykpOwot KyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOwotKyAgY29udGV4dC0+bXNyID0g dGhyZWFkX2NvbnRleHQubXNyOwotKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2Ny OwotKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOwotKyAgY29udGV4dC0+bG5r ID0gdGhyZWFkX2NvbnRleHQubG5rOwotKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQu Y3RyOwotKwotKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5yZWdzLCBz aXplb2YoY29udGV4dC0+ZnByZWdzKSk7Ci0rICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRl eHQuZnBzY3I7Ci0rCi0rICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0rICAg IGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7Ci0rICAgICAgKCgodWludDY0X3QpdmVjdG9y X2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQu dnJyZWdzW2ldWzFdLAotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tp XVsyXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQotKyAg ICB9OwotKyAgfQotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4 dC52cnNhdmU7Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZl Y3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKLSt9Ci0rCi0rCi0rI2VuZGlmCi0rCi0gfSAg Ly8gbmFtZXNwYWNlIGludGVybmFsCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi1kaWZm IC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9k ZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLWluZGV4IGJlMjJjOTAzMS4uYzVkZjIzZDFiIDEwMDY0 NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotQEAgLTE1OSw5ICsxNTksMTEgQEAgdm9pZCBU ZXN0QWdhaW5zdFRhcmdldChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgICAg ICAgIGNvbnN0IGJvb2wgaXNfdmRzb19tYXBwaW5nID0KLSAgICAgICAgICAgICAgIGRldmljZSA9 PSAwICYmIGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOwotICAgICAgICAg ICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKLSsg ICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXg2NFtdID0gImxpbnV4LXZkc282 NC5zby4iOwotICAgICAgICAgICByZXR1cm4gaXNfdmRzb19tYXBwaW5nID09Ci0gICAgICAgICAg ICAgICAgICAobW9kdWxlX25hbWUuZW1wdHkoKSB8fAotLSAgICAgICAgICAgICAgICAgIG1vZHVs ZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVuKGtQcmVmaXgpLCBrUHJlZml4KSA9PSAwKTsKLSsgICAg ICAgICAgICAgICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4KSwga1By ZWZpeCkgPT0gMCB8fAotKyAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwg c3RybGVuKGtQcmVmaXg2NCksIGtQcmVmaXg2NCkgPT0gMCk7Ci0gICAgICAgICB9LAotICAgICAg ICAgbW9kdWxlX21hcHBpbmctPm5hbWUsCi0gICAgICAgICBtb2R1bGVfbWFwcGluZy0+ZGV2aWNl LAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBjZDQwYjNiMTIuLjZi Y2YyM2I2ZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXgu Y2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLUBAIC0zMjMs NiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29u dGV4dFRyYWl0czY0PigKLSAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8u bWlwczY0KTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0r Ci0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLStzdGF0aWMgYm9vbCBSZWFkQ29udGV4dChQ cm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICBMaW51 eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKLSsgIGNvbnN0IFByb2Nl c3NNZW1vcnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7Ci0rCi0rICBMaW51eFZNQWRkcmVz cyBncF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1D b250ZXh0LCBncF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29u dGV4dCB0aHJlYWRfY29udGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVz cywgc2l6ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgewotKyAgICBMT0co RVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwot KyAgfQotKwotKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRy ZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250 ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7Ci0rCi0rICB0eXBlbmFt ZSBUcmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnkt PlJlYWQoZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0KSkg ewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKLSsgICAgcmV0 dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNz ID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNlcnZl KSArIDg7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9jb250 ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yodl9j b250ZXh0KSwgJnZfY29udGV4dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVh ZCB2X3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgSW5pdGlhbGl6ZUNQ VUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4dCk7 Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9u U25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgUHJvY2Vz c1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVz cykgewotKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0Owot KyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rCi0rICByZXR1cm4g aW50ZXJuYWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgcmVhZGVyLCBj b250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jv b2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigK LSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNv bnRleHRfYWRkcmVzcykgewotKyAgLy8gUFBDNjQgaXMgNjQtYml0Ci0rICByZXR1cm4gZmFsc2U7 Ci0rfQotKwotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotIAotIGJvb2wgRXhjZXB0 aW9uU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3Nf cmVhZGVyLAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXgu aCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotaW5kZXggZWEwY2QyMTA2 Li5lNDJkZjUyMGYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xp bnV4LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotQEAgLTg0 LDYgKzg0LDggQEAgY2xhc3MgRXhjZXB0aW9uU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBF eGNlcHRpb25TbmFwc2hvdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK LSAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2 NDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BVQ29udGV4 dFBQQzY0IHBwYzY0OwotICNlbmRpZgotICAgfSBjb250ZXh0X3VuaW9uXzsKLSAgIENQVUNvbnRl eHQgY29udGV4dF87Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9s aW51eF90ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNj Ci1pbmRleCBlNGZmMWFiNzkuLjI1NTM0ZGQwOCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9z bmFwc2hvdF9saW51eF90ZXN0LmNjCi1AQCAtMjk2LDcgKzI5NiwyOCBAQCB2b2lkIEV4cGVjdENv bnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBl eHBlY3RlZCkgewotICAgICAgICAgICAgIDApOwotICN1bmRlZiBDUFVfQVJDSF9OQU1FCi0gfQot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotK3VzaW5nIE5hdGl2ZUNQVUNv bnRleHQgPSB1Y29udGV4dF90OwotKwotK3ZvaWQgSW5pdGlhbGl6ZUNvbnRleHQoTmF0aXZlQ1BV Q29udGV4dCogY29udGV4dCkgewotKyAgZm9yIChzaXplX3QgcmVnID0gMDsgcmVnIDwgMzI7ICsr cmVnKSB7Ci0rICAgIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSA9IHJlZzsKLSsg IH0KLSsKLSsgIG1lbXNldCgmY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncywgNDQsCi0rICAg ICAgc2l6ZW9mKGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MpKTsKLSt9Ci0gCi0rdm9pZCBF eHBlY3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29u dGV4dCYgZXhwZWN0ZWQpIHsKLSsgIEVYUEVDVF9FUShhY3R1YWwuYXJjaGl0ZWN0dXJlLCBrQ1BV QXJjaGl0ZWN0dXJlUFBDNjQpOwotKwotKyAgZm9yIChzaXplX3QgcmVnID0gMDsgcmVnIDwgMzI7 ICsrcmVnKSB7Ci0rICAgIEVYUEVDVF9FUShhY3R1YWwucHBjNjQtPnJlZ3NbcmVnXSwgZXhwZWN0 ZWQudWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddKTsKLSsgIH0KLSsKLSsgIEVYUEVDVF9FUShtZW1j bXAoYWN0dWFsLnBwYzY0LT5mcHJlZ3MsIGV4cGVjdGVkLnVjX21jb250ZXh0LmZwX3JlZ3MsCi0r ICAgICAgICAgICAgc2l6ZW9mKGFjdHVhbC5wcGM2NC0+ZnByZWdzKSksIDApOwotK30KLSAjZWxz ZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNz X3JlYWRlcl9saW51eC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwotaW5k ZXggYjk2YWJmZTc0Li5kZjEyY2E1NjYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19y ZWFkZXJfbGludXguY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwot QEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0 aWFsaXplU3RhY2soUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIpIHsKLSAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgc3RhY2tfcG9pbnRlciA9IHJlYWRlci0+SXM2NEJp dCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LnJlZ3NbMjldCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50 MzIucmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBz dGFja19wb2ludGVyID0gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LmdwclsxXTsKLSAj ZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9j ZXNzX3JlYWRlcl9saW51eF90ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4 X3Rlc3QuY2MKLWluZGV4IDViNTcyMzYxNi4uMDQ5YzMyODU4IDEwMDY0NAotLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNz X3JlYWRlcl9saW51eF90ZXN0LmNjCi1AQCAtNjEyLDYgKzYxMiw4IEBAIGJvb2wgV3JpdGVUZXN0 TW9kdWxlKGNvbnN0IGJhc2U6OkZpbGVQYXRoJiBtb2R1bGVfcGF0aCkgewotICAgbW9kdWxlLmVo ZHIuZV9tYWNoaW5lID0gRU1fQUFSQ0g2NDsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNF TCkgfHwgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGlu ZSA9IEVNX01JUFM7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgIG1vZHVsZS5l aGRyLmVfbWFjaGluZSA9IEVNX1BQQzY0OwotICNlbmRpZgotIAotICAgbW9kdWxlLmVoZHIuZV92 ZXJzaW9uID0gRVZfQ1VSUkVOVDsKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRl eHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCAxMTAwMjQ2ODAuLmExZjJk YTI1OSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc2lnbmFsX2NvbnRleHQuaAotQEAgLTQyMiw2ICs0MjIsODkgQEAgc3RhdGljX2Fzc2Vy dChvZmZzZXRvZihVQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+LCBtY29udGV4dC5mcHJlZ3MpID09 Ci0gICAgICAgICAgICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZW5kaWYKLSAK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsKLStzdHJ1Y3QgU2lnbmFs VGhyZWFkQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3Qgbmlw OwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3Qgb3JpZ19yMzsKLSsgIHVpbnQ2NF90IGN0 cjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGNjcjsK LSsgIHVpbnQ2NF90IHNvZnRlOwotKyAgdWludDY0X3QgdHJhcDsKLSsgIHVpbnQ2NF90IGRhcjsK LSsgIHVpbnQ2NF90IGRzaXNyOwotKyAgdWludDY0X3QgcmVzdWx0OwotKyAgdWludDY0X3QgZHNj cjsKLSsgIHVpbnQ2NF90IGZwcjBbM107Ci0rfTsKLSsKLStzdHJ1Y3QgU2lnbmFsRmxvYXRDb250 ZXh0NjQgewotKyAgZG91YmxlIHJlZ3NbMzJdOwotKyAgZG91YmxlIGZwc2NyOwotK307Ci0rCi0r c3RydWN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCB7Ci0rICBpbnQzMl90IHZycmVnc1szMl1bNF07 Ci0rICBzdHJ1Y3QgewotKyAgICBpbnQzMl90IF9fcGFkWzNdOwotKyAgICBpbnQzMl90IHZzY3Jf d29yZDsKLSsgIH0gdnNjcjsKLSsgIGludDMyX3QgdnJzYXZlOwotKyAgaW50MzJfdCBfX3BhZFsz XTsKLSt9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpOwotKwotKwotKyNwcmFnbWEg cGFjayhwb3ApCi0rc3RydWN0IE1Db250ZXh0NjQgewotKyAgdWludDY0X3QgcmVzZXJ2ZWRbNF07 Ci0rICBpbnQzMl90IHNpZ25hbDsKLSsgIGludDMyX3QgX19wYWQwOwotKyAgdWludDY0X3QgaGFu ZGxlcjsKLSsgIHVpbnQ2NF90IG9sZG1hc2s7Ci0rICB1aW50NjRfdCBwdF9yZWdzX3B0cjsKLSsg IFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9yZWdzOwotKyAgU2lnbmFsRmxvYXRDb250ZXh0NjQg IGZwX3JlZ3M7Ci0rICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLSsgIGludDY0X3Qg dm14X3Jlc2VydmVbNjldOwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1Ymxp YyBUcmFpdHM2NCB7Ci0rICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0NjQ7Ci0rICB1c2luZyBT aWduYWxUaHJlYWRDb250ZXh0ID0gU2lnbmFsVGhyZWFkQ29udGV4dDY0OwotKyAgdXNpbmcgU2ln bmFsRmxvYXRDb250ZXh0ID0gU2lnbmFsRmxvYXRDb250ZXh0NjQ7Ci0rICB1c2luZyBTaWduYWxW ZWN0b3JDb250ZXh0ID0gU2lnbmFsVmVjdG9yQ29udGV4dDY0OwotKyAgdXNpbmcgQ1BVQ29udGV4 dCA9IENQVUNvbnRleHRQUEM2NDsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRzMzIgOiBw dWJsaWMgVHJhaXRzMzIge307Ci0rCi0rc3RydWN0IFVDb250ZXh0IHsKLSsgIHVpbnQ2NF90IGZs YWdzOwotKyAgdWludDY0X3QgbGluazsKLSsgIFNpZ25hbFN0YWNrPENvbnRleHRUcmFpdHM2ND4g c3RhY2s7Ci0rICBTaWdzZXQ8Q29udGV4dFRyYWl0czY0PiBzaWdtYXNrOwotKyAgTUNvbnRleHQ2 NCBtY29udGV4dDsKLSt9OwotKyNwcmFnbWEgcGFjayhwdXNoLCAxKQotKwotK3N0YXRpY19hc3Nl cnQoc2l6ZW9mKFVDb250ZXh0KSA9PSBzaXplb2YodWNvbnRleHRfdCksCi0rICAgICAgICAgICAg ICAidWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoTUNv bnRleHQ2NCkgPT0gc2l6ZW9mKG1jb250ZXh0X3QpLAotKyAgICAgICAgICAgICAgIm1jb250ZXh0 X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFRocmVhZENv bnRleHQ2NCkgPT0gc2l6ZW9mKGdyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZ3JlZ3NldF90 IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxGbG9hdENvbnRl eHQ2NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImZwcmVnc2V0X3Qg c2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFZlY3RvckNvbnRl eHQ2NCkgPT0gc2l6ZW9mKHZycmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgInZycmVnc2V0X3Qg c2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRleHQsIG1jb250 ZXh0KSA9PQotKyAgICAgICAgICAgICAgb2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQp LCAibWNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihN Q29udGV4dDY0LCBncF9yZWdzKSA9PQotKyAgICAgICAgICAgICAgb2Zmc2V0b2YobWNvbnRleHRf dCwgZ3BfcmVncyksICJncF9yZWdzIG9mZnNldCBtaXNtYXRjaCIpOwotICNlbHNlCi0gI2Vycm9y IFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNo b3RfbGludXguY2MKLWluZGV4IDg1NjRkM2Q0NS4uYjY5MGVjZDQ4IDEwMDY0NAotLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9z bmFwc2hvdF9saW51eC5jYwotQEAgLTIwMyw2ICsyMDMsOCBAQCBDUFVBcmNoaXRlY3R1cmUgU3lz dGVtU25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0dXJlKCkgY29uc3QgewotICNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gcHJvY2Vzc19yZWFkZXJfLT5J czY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBTRUw7Ci0rI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQQzY0 OwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBA IC0yMTgsNiArMjIwLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNob3RMaW51eDo6Q1BVUmV2aXNp b24oKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8v IE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiAwOwotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2 NAotKyAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVy ZQotICNlbmRpZgotQEAgLTIzOCw2ICsyNDMsOSBAQCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hv dExpbnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiBzdGQ6 OnN0cmluZygpOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8g Tm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7Ci0g I2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAgLTM3 MSw2ICszNzksOSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6Ok5YRW5hYmxlZCgpIGNvbnN0 IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxl bWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIGZhbHNlOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAg cmV0dXJuIGZhbHNlOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQ VV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51 eC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKLWluZGV4IGUzZTJiZWJk ZC4uOGVmNDM3NTJlIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51 eC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYwotQEAgLTE4Niw2 ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFByb2Nlc3NS ZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIsCi0gICAgICAgICB0aHJlYWQudGhyZWFkX2luZm8u ZmxvYXRfY29udGV4dC5mMzIsCi0gICAgICAgICBjb250ZXh0Xy5taXBzZWwpOwotICAgfQotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgY29udGV4dF8uYXJjaGl0ZWN0 dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4 dF91bmlvbl8ucHBjNjQ7Ci0rICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFp dHM2ND4oCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NCwKLSsg ICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5mNjQsCi0rICAgICAgdGhyZWFk LnRocmVhZF9pbmZvLnZlY3Rvcl9jb250ZXh0LnY2NCwKLSsgICAgICBjb250ZXh0Xy5wcGM2NCk7 Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv dGhyZWFkX3NuYXBzaG90X2xpbnV4LmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4 LmgKLWluZGV4IDQ0Y2M2ZjZkOS4uZDQxMzY0NjFlIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Ro cmVhZF9zbmFwc2hvdF9saW51eC5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xp bnV4LmgKLUBAIC02OCw2ICs2OCw4IEBAIGNsYXNzIFRocmVhZFNuYXBzaG90TGludXggZmluYWwg OiBwdWJsaWMgVGhyZWFkU25hcHNob3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpCi0gICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1JUFM2 NCBtaXBzNjQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIENQ VUNvbnRleHRQUEM2NCBwcGM2NDsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8g QVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3Iu Y2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi1pbmRleCBkM2Q1ZWJkZmIuLjNmZDczMGNi NSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLSsrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1 eGlsaWFyeV92ZWN0b3IuY2MKLUBAIC01Niw2ICs1NiwxMSBAQCBib29sIEF1eGlsaWFyeVZlY3Rv cjo6UmVhZChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgIGlmICh0eXBlID09 IEFUX0lHTk9SRSkgewotICAgICAgIGNvbnRpbnVlOwotICAgICB9Ci0rI2lmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBpZiAodHlwZSA9PSBBVF9JR05PUkVQUEMpIHsKLSsg ICAgICBjb250aW51ZTsKLSsgICAgfQotKyNlbmRpZgotICAgICBpZiAoIU1hcEluc2VydE9yUmVw bGFjZSgmdmFsdWVzXywgdHlwZSwgdmFsdWUsIG51bGxwdHIpKSB7Ci0gICAgICAgTE9HKEVSUk9S KSA8PCAiZHVwbGljYXRlIGF1eHYgZW50cnkiOwotICAgICAgIHJldHVybiBmYWxzZTsKLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlX2Jyb2tlci5jYwot aW5kZXggMTU1YTFlMGM2Li41ZTUwY2ViNWYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJv a2VyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCi1AQCAtOTQsOCArOTQsOCBAQCBp bnQgUHRyYWNlQnJva2VyOjpSdW4oKSB7Ci0gfQotIAotIGJvb2wgUHRyYWNlQnJva2VyOjpBbGxv Y2F0ZUF0dGFjaG1lbnRzKCkgewotLSAgY29uc3RleHByIHNpemVfdCBwYWdlX3NpemUgPSA0MDk2 OwotLSAgY29uc3RleHByIHNpemVfdCBhbGxvY19zaXplID0KLSsgIHN0YXRpYyBzaXplX3QgcGFn ZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSsgIHNpemVfdCBhbGxvY19zaXplID0KLSAgICAgICAo c2l6ZW9mKFNjb3BlZFB0cmFjZUF0dGFjaCkgKyBwYWdlX3NpemUgLSAxKSAmIH4ocGFnZV9zaXpl IC0gMSk7Ci0gICB2b2lkKiBhbGxvYyA9IHNicmsoYWxsb2Nfc2l6ZSk7Ci0gICBpZiAocmVpbnRl cnByZXRfY2FzdDxpbnRwdHJfdD4oYWxsb2MpID09IC0xKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv cHRyYWNlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLWluZGV4IDU1N2UwZDM2My4uMDhhZTQzNGI4 IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwot QEAgLTM5OCw2ICszOTgsNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAotICAg cmV0dXJuIHRydWU7Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQotKy8vIFBQQzY0IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3 IChldmVuIGJlZm9yZSB4ODYgaGFkIGl0KS4KLSsvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkg dXNlIFBUUkFDRV9HRVRSRUdFU0VULgotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlv bj4KLStib29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24q IGRlc3QsIGJvb2wgY2FuX2xvZykgewotKyAgaW92ZWMgaW92OwotKyAgaW92Lmlvdl9iYXNlID0g cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZGVzdCk7Ci0rICBpb3YuaW92X2xlbiA9IHNpemVvZigq ZGVzdCk7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRf Y2FzdDx2b2lkKj4oc2V0KSwgJmlvdikgIT0gMCkgewotKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5f bG9nKSA8PCAicHRyYWNlIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgaWYgKGlvdi5p b3ZfbGVuICE9IHNpemVvZigqZGVzdCkpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8 PCAiVW5leHBlY3RlZCByZWdpc3RlcnMgc2l6ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0K LSsgIHJldHVybiB0cnVlOwotK30KLSsKLStib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90 IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBH ZXRSZWdpc3RlclNldCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOwot K30KLSsKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgcmV0dXJu IEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7 Ci0rfQotKwotK2Jvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAg ICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAg ICAgIExpbnV4Vk1BZGRyZXNzKiBhZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgIGJvb2wg Y2FuX2xvZykgewotKyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FS RUEgc2luY2UgdGhlIHRocmVhZCBwb2ludGVyCi0rICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgot KyAgVGhyZWFkQ29udGV4dDo6dDY0X3QgdGM7Ci0rICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwg TlRfUFJTVEFUVVMsICZ0YywgY2FuX2xvZykpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9n KSA8PCAiVW5hYmxlIHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOwotKyAgICByZXR1cm4gZmFsc2U7 Ci0rICB9Ci0rCi0rICAqYWRkcmVzcyA9IHRjLmdwclsxM107Ci0rCi0rICByZXR1cm4gdHJ1ZTsK LSt9Ci0rCi0rLy8gU3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24g UFBDNjQKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFs c2U7IH0KLStib29sIEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAg ICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCAmY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAg ICBMaW51eFZNQWRkcmVzcyAqYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNh bl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC00OTQsNiArNTUyLDkgQEAgYm9vbCBQdHJh Y2VyOjpHZXRUaHJlYWRJbmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgewotICAgaWYg KGlzXzY0X2JpdF8pIHsKLSAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQo dGlkLCAmaW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotICAgICAgICAgICAgR2V0 RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQsIGNhbl9s b2dfKSAmJgotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgICAgICAg IEdldFZlY3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9n XykgJiYKLSsjZW5kaWYKLSAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3MsCi1kaWZm IC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLWluZGV4 IDViNTVjMjRhNy4uZGVhMGQxZjM5IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAot KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTI4LDYgKzI4LDEwIEBACi0gI2luY2x1ZGUg PGFuZHJvaWQvYXBpLWxldmVsLmg+Ci0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsjZW5kaWYKLSsKLSBu YW1lc3BhY2UgY3Jhc2hwYWQgewotIAotIC8vISBcYnJpZWYgVGhlIHNldCBvZiBnZW5lcmFsIHB1 cnBvc2UgcmVnaXN0ZXJzIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5LgotQEAgLTc5LDYgKzgz LDggQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICAgIHVpbnQzMl90IGNwMF9zdGF0dXM7Ci0g ICAgIHVpbnQzMl90IGNwMF9jYXVzZTsKLSAgICAgdWludDMyX3QgcGFkZGluZzFfOwotKyNlbGlm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBQUEM2NCBpcyA2NC1iaXQK LSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQot QEAgLTEzMiw2ICsxMzgsMjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Ci0gICAgIHVpbnQ2NF90 IGNwMF9iYWR2YWRkcjsKLSAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKLSAgICAgdWludDY0X3Qg Y3AwX2NhdXNlOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAv LyBSZWZsZWN0cyBzdHJ1Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCi0rICAgIHVpbnQ2NF90 IGdwclszMl07Ci0rICAgIHVpbnQ2NF90IG5pcDsKLSsgICAgdWludDY0X3QgbXNyOwotKyAgICB1 aW50NjRfdCBvcmlnX2dwcjM7Ci0rICAgIHVpbnQ2NF90IGN0cjsKLSsgICAgdWludDY0X3QgbG5r OwotKyAgICB1aW50NjRfdCB4ZXI7Ci0rICAgIHVpbnQ2NF90IGNjcjsKLSsgICAgdWludDY0X3Qg c29mdGU7Ci0rICAgIHVpbnQ2NF90IHRyYXA7Ci0rICAgIHVpbnQ2NF90IGRhcjsKLSsgICAgdWlu dDY0X3QgZHNpc3I7Ci0rICAgIHVpbnQ2NF90IHJlc3VsdDsKLSAjZWxzZQotICNlcnJvciBQb3J0 LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTE0Myw2ICsxNjQsOCBAQCB1 bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSB1c2Vy X3JlZ3M7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAvLyBObyBhcHBy b3ByaWF0ZSBOYXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3IgTUlQUwotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgdXNpbmcgTmF0aXZlVGhyZWFk Q29udGV4dCA9IHN0cnVjdCBwdF9yZWdzOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlm ICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0Ci1AQCAtMjE4LDYgKzI0 MSw5IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gICAgIH0gZnByZWdzWzMyXTsKLSAgICAgdWlu dDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9ydCBpcyA2NC1i aXQgb25seSwgc28gdGhpcwotKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBkZWNsYXJlZCBh cyBlbXB0eS4KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2 X0ZBTUlMWQotQEAgLTI1Miw2ICsyNzgsMTAgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgICAg ZG91YmxlIGZwcmVnc1szMl07Ci0gICAgIHVpbnQzMl90IGZwY3NyOwotICAgICB1aW50MzJfdCBm cHVfaWQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJl ZmxlY3RzIGZwcmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKLSsgICAgZG91YmxlIGZwcmVnc1sz Ml07Ci0rICAgIGRvdWJsZSBmcHNjcjsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAg Ly8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTI4MCw2ICszMTAsOCBAQCB1bmlvbiBGbG9hdENv bnRleHQgewotICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YodXNlcl9mcHNp bWRfc3RydWN0KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50IGNvbnRleHQgbmF0 aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBNSVBTLgotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotKyAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YoZnByZWdz ZXRfdCksICJTaXplIG1pc21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYg IC8vIEFSQ0hfQ1BVX1g4NgotQEAgLTI4Nyw2ICszMTksMjYgQEAgdW5pb24gRmxvYXRDb250ZXh0 IHsKLSBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0Q29udGV4dD46 OnZhbHVlLAotICAgICAgICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQiKTsKLSAKLSsvLyEg XGJyaWVmIFRoZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1p bHkKLSt1bmlvbiBWZWN0b3JDb250ZXh0IHsKLSsgIHN0cnVjdCB2MzJfdCB7fSB2MzI7Ci0rI2lm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgX19hdHRyaWJ1dGVfXygoX19hbGln bmVkX18oMTYpKSkgLy8gVmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3b3JkIGFsaWduZWQu Ci0rI2VuZGlmCi0rICBzdHJ1Y3QgdjY0X3QgewotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAot KyAgICB1aW50MzJfdCB2cnJlZ3NbMzJdWzRdOwotKyAgICBzdHJ1Y3QgewotKyAgICAgIHVpbnQz Ml90IF9fcGFkWzNdOwotKyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKLSsgICAgfSB2c2NyOwot KyAgICB1aW50MzJfdCB2cnNhdmU7Ci0rICAgIHVpbnQzMl90IF9fcGFkWzNdOwotKyNlbmRpZgot KyAgfSB2NjQ7Ci0rfTsKLSsKLSAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBvZiBgcHRyYWNlYC1h YmxlIGluZm9ybWF0aW9uIGFib3V0IGEgdGhyZWFkLgotIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAg IFRocmVhZEluZm8oKTsKLUBAIC0yOTgsNiArMzUwLDkgQEAgc3RydWN0IFRocmVhZEluZm8gewot ICAgLy8hIFxicmllZiBUaGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0aGUgdGhyZWFk LgotICAgRmxvYXRDb250ZXh0IGZsb2F0X2NvbnRleHQ7Ci0gCi0rICAvLyEgXGJyaWVmIChPcHRp b25hbCkgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVhZC4KLSsgIFZlY3Rv ckNvbnRleHQgdmVjdG9yX2NvbnRleHQ7Ci0rCi0gICAvLyEgXGJyaWVmIFRoZSB0aHJlYWQtbG9j YWwgc3RvcmFnZSBhZGRyZXNzIGZvciB0aGUgdGhyZWFkLgotICAgTGludXhWTUFkZHJlc3MgdGhy ZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzczsKLSB9OwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0LmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1pbmRleCBhODhhMTAzMzYuLmIw ZDY1NzhiZCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLSsrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0LmgKLUBAIC03MCw2ICs3MCw3IEBAIHVzaW5nIE5hdGl2ZUNQVUNvbnRl eHQgPSB1Y29udGV4dF90OwotIC8vISAgICAgbWFjT1MvTGludXgvRnVjaHNpYSB8IHg4Nl82NCAg ICAgICB8IGAlJXJkaWAKLSAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBBUk0vQVJNNjQg ICAgfCBgcjBgL2B4MGAKLSAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBNSVBTL01JUFM2 NCAgfCBgJGEwYAotKy8vISAgICAgTGludXggICAgICAgICAgICAgICB8IFBQQzY0ICAgICAgICB8 IGByM2AKLSAvLyEKLSAvLyEgICAgIEFkZGl0aW9uYWxseSwgdGhlIHZhbHVlIGBMUmAgb24gQVJN L0FSTTY0IHdpbGwgYmUgdGhlIHJldHVybiBhZGRyZXNzIG9mCi0gLy8hICAgICB0aGlzIGZ1bmN0 aW9uLgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2Nh cHR1cmVfY29udGV4dF9saW51eC5TCi1pbmRleCA1MjIxNWVlNWQuLmIzZTRhM2VjNyAxMDA2NDQK LS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLSsrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X2xpbnV4LlMKLUBAIC0zMiw3ICszMiw3IEBACi0gICAuYmFsaWduIDQsIDB4MAotICAg LnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rpb24KLSAgIC50eXBlIENBUFRVUkVD T05URVhUX1NZTUJPTDIsICVmdW5jdGlvbgotLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi0rI2Vs aWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLmJhbGln biA0LCAweDAKLSAjZW5kaWYKLSAKLUBAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJFQ09OVEVY VF9TWU1CT0wyOgotICAganIgJHJhCi0gCi0gICAuc2V0IGF0Ci0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgLy8gU3RvcmUgcjAtcjMxCi0rICBzdGQgMCwgMHhlOCgzKSAgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KLSsgIHN0ZCAxLCAweGYwKDMpICAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQotKyAgc3RkIDIsIDB4ZjgoMykgICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCi0rICAvLyBub3RlIHRoYXQgcjMncyBvcmlnaW5h bCB2YWx1ZSB3YXMgbG9zdAotKyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzNdCi0rICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbNF0KLSsgIHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1s1XQotKyAgc3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzWzZdCi0rICBzdGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbN10KLSsgIHN0ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1s4XQotKyAgc3RkIDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzWzldCi0rICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTBdCi0rICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTFdCi0rICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTJdCi0rICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTNdCi0rICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTRdCi0rICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTVdCi0rICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTZdCi0rICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTddCi0rICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMThdCi0rICBzdGQgMTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMTldCi0rICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjBdCi0rICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjFdCi0rICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjJdCi0rICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjNdCi0rICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjRdCi0rICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjVdCi0rICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjZdCi0rICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjddCi0rICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjhdCi0rICBzdGQgMjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMjldCi0rICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMzBdCi0rICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbMzFdCi0rCi0rICAvLyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0aGUg bGluayByZWdpc3RlcgotKyAgbWZsciAwCi0rICBzdGQgMCwgMHgxZTgoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCi0rCi0rICAvLyBDVFIKLSsgIG1mY3RyIDAKLSsg IHN0ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0K LSsKLSsgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVhICgy IHN0YWNrIGZyYW1lcyB1cCkuCi0rICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2ggcmVn aXN0ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZlZC4KLSsgIGxkIDQsIDAoMSkKLSsg IGxkIDQsIDE2KDQpCi0rICBzdGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9MTktdCi0rCi0rICAvLyBYRVIKLSsgIG1meGVyIDAKLSsgIHN0ZCAwLCAweDIx MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KLSsKLSsgIC8vIEND UgotKyAgbWZjciAwCi0rICBzdGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1tQVF9DQ1JdCi0rCi0rICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIsIERT SVNSLCBSRVNVTFQsIERTQ1IsCi0rICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQsICB6ZXJv IHRoZW0gb3V0LgotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXQotKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KLSsgIHN0ZCA0LCAweDIyMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQotKyAgc3RkIDQsIDB4MjI4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KLSsgIHN0ZCA0LCAweDIzMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RBUl0KLSsgIHN0ZCA0LCAweDIz OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQotKyAgc3RkIDQs IDB4MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQotKyAg c3RkIDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFNDUl0K LSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50IHRvIGdw X3JlZ3MKLSsgIGFkZGkgMCwgMywgMHhlOAotKyAgc3RkIDAsIDB4ZTAoMykKLSsKLSsgIC8vIFNh dmUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKLSsgIHN0ZmQgMCwgMHgyNjgoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KLSsgIHN0ZmQgMSwgMHgyNzAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KLSsgIHN0ZmQgMiwgMHgyNzgoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KLSsgIHN0ZmQgMywgMHgyODAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KLSsgIHN0ZmQgNCwgMHgyODgoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KLSsgIHN0ZmQgNSwgMHgyOTAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KLSsgIHN0ZmQgNiwgMHgyOTgoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KLSsgIHN0ZmQgNywgMHgyYTAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KLSsgIHN0ZmQgOCwgMHgyYTgoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KLSsgIHN0ZmQgOSwgMHgyYjAoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KLSsgIHN0ZmQgMTAsIDB4MmI4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCi0rICBzdGZkIDExLCAweDJjMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQotKyAgc3RmZCAxMiwgMHgyYzgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0KLSsgIHN0ZmQgMTMsIDB4MmQwKDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNdCi0rICBzdGZkIDE0LCAweDJkOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0XQotKyAgc3RmZCAxNSwgMHgyZTAo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNV0KLSsgIHN0ZmQgMTYsIDB4MmU4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTZdCi0rICBzdGZkIDE3LCAweDJm MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE3XQotKyAgc3RmZCAxOCwgMHgy ZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KLSsgIHN0ZmQgMTksIDB4 MzAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCi0rICBzdGZkIDIwLCAw eDMwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQotKyAgc3RmZCAyMSwg MHgzMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KLSsgIHN0ZmQgMjIs IDB4MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCi0rICBzdGZkIDIz LCAweDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQotKyAgc3RmZCAy NCwgMHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KLSsgIHN0ZmQg MjUsIDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCi0rICBzdGZk IDI2LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQotKyAgc3Rm ZCAyNywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10KLSsgIHN0 ZmQgMjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhdCi0rICBz dGZkIDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5XQotKyAg c3RmZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMF0KLSsg IHN0ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzFdCi0r Ci0rICAvLyBGUFNDUgotKyAgbWZmcyAwCi0rICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmZwX3JlZ3NbMzJdCi0rCi0rICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVnaXN0 ZXJzCi0rICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9mIHZteF9y ZXNlcnZlCi0rICBhZGRpIDQsIDMsIDB4Mzc4Ci0rICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBxdWFk d29yZCBhbGlnbmVkCi0rICBhbmRpLiA1LCA0LCAweEYKLSsgIGJlcSAxZiAvLyBObyBhbGlnbm1l bnQgaXMgbmVjZXNzYXJ5Ci0rICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBhbmQg bm90IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4Ci0rICBhZGRpIDQsIDQsIDgKLSsKLSsxOgotKyAg Ly8gU3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCi0rICAvLyByNCB3aWxsIGNvbnRhaW4gdGhlIGJh c2UgYWRkcmVzcwotKyAgLy8gcjUgd2lsbCBjb250YWluIHRoZSBpbmRleAotKyAgbGkgNSwgMAot KyAgc3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEsIDQsIDUgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMV0KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzLCA0LCA1ICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDNdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNSwgNCwgNSAgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA1XQotKyAgYWRkaSA1LCA1LCAx NgotKyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDcsIDQsIDUgICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyA4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA5LCA0LCA1ICAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDldCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMTBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDExLCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMTJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEzLCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMTRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE1LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE3LCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTddCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE5 LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTld Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDIxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MjFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMjNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjZdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI4LCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMjldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMwLCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMzFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWU0NSCi0rICBt ZnZzY3IgMAotKyAgc3R2eCAwLCA0LCA1Ci0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWUlNB VkUKLSsgIG1mdnJzYXZlIDAKLSsgIHN0d3ggMCwgNCwgNQotKwotKyAgLy8gVXBkYXRlIGNvbnRl eHQtPnVjX21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdubWVu dC4KLSsgIHN0ZCA0LCAweDM3MCgzKQotKwotKyAgLy8gWmVybyBvdXQgYWxsIHVudXNlZCBmaWVs ZHMKLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnNpZ25hbAotKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuaGFuZGxl cgotKyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFzawotKwot KyAgYmxyCi0gI2VuZGlmICAvLyBfX2kzODZfXwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0LmNjCi1pbmRleCBjZjIz YzJkZWYuLjVmMjY0YmM5MiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3Qu Y2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKLUBAIC01Nyw3ICs1Nyw3IEBA IHZvaWQgVGVzdENhcHR1cmVDb250ZXh0KCkgewotICAgdWludHB0cl90IHBjID0gUHJvZ3JhbUNv dW50ZXJGcm9tQ29udGV4dChjb250ZXh0XzEpOwotIAotICNpZiAhZGVmaW5lZChBRERSRVNTX1NB TklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIFwKLS0gICAgIWRl ZmluZWQoTUVNT1JZX1NBTklUSVpFUikKLSsgICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikg JiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICAgLy8gU2FuaXRpemVycyBjYW4g Y2F1c2UgZW5vdWdoIGNvZGUgYmxvYXQgdGhhdCB0aGUg4oCcbmVhcmJ54oCdIGNoZWNrIHdvdWxk Ci0gICAvLyBsaWtlbHkgZmFpbC4KLSAgIGNvbnN0IHVpbnRwdHJfdCBrUmVmZXJlbmNlUEMgPQot ZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21p c2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotaW5kZXggOWZjNWRiMjhjLi41 ZjY5ZjhkY2UgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGlu dXguY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotQEAg LTM2LDYgKzM2LDggQEAgdm9pZCBTYW5pdHlDaGVja0NvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29u dGV4dCYgY29udGV4dCkgewotICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQucmVnc1sw XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQu Z3JlZ3NbNF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBFWFBFQ1RfRVEoY29udGV4dC51Y19t Y29udGV4dC5ncF9yZWdzWzNdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkp OwotICNlbmRpZgotIH0KLSAKLUBAIC01MCw2ICs1Miw4IEBAIHVpbnRwdHJfdCBQcm9ncmFtQ291 bnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKLSAgIHJl dHVybiBjb250ZXh0LnVjX21jb250ZXh0LnBjOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKLSsjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfTklQXTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtNjQsNiArNjgsOCBAQCB1aW50 cHRyX3QgU3RhY2tQb2ludGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgY29u dGV4dCkgewotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuc3A7Ci0gI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0Lmdy ZWdzWzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVy biBjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbMV07Ci0gI2VuZGlmCi0gfQotIAotZGlmZiAt LWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYwotaW5k ZXggNThiZmE4ZjgzLi44ZmMzN2M0NjQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3Qu Y2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYwotQEAgLTQ2LDEyICs0NiwxMiBAQCBib29s IENhbkNhdXNlU2lnbmFsKGludCBzaWcpIHsKLSAgIHJldHVybiBzaWcgPT0gU0lHQUJSVCB8fAot ICAgICAgICAgIHNpZyA9PSBTSUdBTFJNIHx8Ci0gICAgICAgICAgc2lnID09IFNJR0JVUyB8fAot LSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKLSsjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJN NjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotICAgICAgICAgIHNpZyA9PSBTSUdGUEUg fHwKLS0jZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNlbmRpZiAgLy8gIWRl ZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotICNpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCi0g ICAgICAgICAgc2lnID09IFNJR0lMTCB8fAotICNlbmRpZiAgLy8gZGVmaW5lZChBUkNIX0NQVV9Y ODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQotICAgICAgICAgIHNpZyA9PSBT SUdQSVBFIHx8Ci0gICAgICAgICAgc2lnID09IFNJR1NFR1YgfHwKLSAjaWYgZGVmaW5lZChPU19N QUNPU1gpCi1AQCAtMTE3LDkgKzExNywxMSBAQCB2b2lkIENhdXNlU2lnbmFsKGludCBzaWcpIHsK LSAgICAgICBicmVhazsKLSAgICAgfQotIAotLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkK LSsjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 KQotICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiBpbnN0cnVjdGlv bnMgdGhhdCBkb27igJl0IGdlbmVyYXRlIGEKLSAgICAgLy8gdHJhcCBmb3IgZGl2aWRlLWJ5LXpl cm8sIHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgotKyAgICAvLwotKyAgICAvLyBQ UEM2NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28gZG9lc24ndCBwcm9kdWNlIGEg U0lHRlBFLgotICAgICBjYXNlIFNJR0ZQRTogewotICAgICAgIC8vIE9wdGltaXphdGlvbiBtYWtl cyB0aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3RlbSBjYWxsIGxpa2VseQotICAg ICAgIC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3Vs dC4KLUBAIC0xMzcsNyArMTM5LDcgQEAgdm9pZCBDYXVzZVNpZ25hbChpbnQgc2lnKSB7Ci0gICAg ICAgZnN0YXQocXVvdGllbnQsICZzdGF0X2J1Zik7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLS0j ZW5kaWYgIC8vIEFSQ0hfQ1BVX0FSTTY0Ci0rI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9B Uk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0gCi0gI2lmIGRlZmluZWQoQVJDSF9D UFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKLSAgICAgY2FzZSBTSUdJ TEw6IHsKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2 MWQvQlVJTEQuZ24gYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvQlVJ TEQuZ24KLWluZGV4IDc4OGRjNmNmZi4uNWZkN2U4ZmRhIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi0rKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KLUBAIC0xODIsNiArMTgyLDgg QEAgc3RhdGljX2xpYnJhcnkoImRhdjFkXzhiaXQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3Rl bXBsYXRlX3NvdXJjZXMKLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0Iikgewot ICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0rICB9IGVsc2UgaWYgKGN1cnJl bnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3Vy Y2VzCi0gICB9Ci0gCi0gICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotQEAgLTIxMCw2ICsyMTIsOCBA QCBzdGF0aWNfbGlicmFyeSgiZGF2MWRfMTBiaXQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3Rl bXBsYXRlX3NvdXJjZXMKLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0Iikgewot ICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0rICB9IGVsc2UgaWYgKGN1cnJl bnRfY3B1ID09ICJwcGM2NCIpIHsKLSsgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3Vy Y2VzCi0gICB9Ci0gCi0gICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotQEAgLTI1Niw2ICsyNjAsMjEg QEAgaWYgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiKSB7Ci0g ICAgICAgIjpkYXYxZF9jb25maWciLAotICAgICBdCi0gCi0rICAgIGNmbGFncyA9IGRhdjFkX2Nv cHRzCi0rICB9Ci0rfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICBzdGF0 aWNfbGlicmFyeSgiZGF2MWRfcHBjIikgewotKyAgICBzb3VyY2VzID0gWwotKyAgICAgICJsaWJk YXYxZC9zcmMvcHBjL2NwdS5jIiwKLSsgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuaCIsCi0r ICAgIF0KLSsKLSsgICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJv bWl1bV9jb2RlIiBdCi0rICAgIGNvbmZpZ3MgKz0gWwotKyAgICAgICIvL2J1aWxkL2NvbmZpZy9j b21waWxlcjpub19jaHJvbWl1bV9jb2RlIiwKLSsgICAgICAiOmRhdjFkX2NvbmZpZyIsCi0rICAg IF0KLSsKLSAgICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLSAgIH0KLSB9Ci1AQCAtMjg1LDUgKzMw NCw3IEBAIHN0YXRpY19saWJyYXJ5KCJkYXYxZCIpIHsKLSAgICAgfQotICAgfSBlbHNlIGlmIChj dXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7Ci0gICAgIGRl cHMgKz0gWyAiOmRhdjFkX2FybSIgXQotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBj NjQiKSB7Ci0rICAgIGRlcHMgKz0gWyAiOmRhdjFkX3BwYyIgXQotICAgfQotIH0KLWRpZmYgLS1n aXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4 L3BwYzY0L2NvbmZpZy5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFk L2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwMC4uOWZiYmY3NWNjCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCi1A QCAtMCwwICsxLDM5IEBACi0rLyoKLSsgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWls ZCBzeXN0ZW0uCi0rICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCi0r ICovCi0rCi0rI3ByYWdtYSBvbmNlCi0rCi0rI2RlZmluZSBBUkNIX0FBUkNINjQgMAotKwotKyNk ZWZpbmUgQVJDSF9BUk0gMAotKwotKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKLSsKLSsjZGVmaW5l IEFSQ0hfWDg2IDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKLSsKLSsjZGVmaW5lIEFSQ0hf WDg2XzY0IDAKLSsKLSsjZGVmaW5lIENPTkZJR18xNkJQQyAxCi0rCi0rI2RlZmluZSBDT05GSUdf OEJQQyAxCi0rCi0rLy8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9s bGVkIGJ5IENocm9taXVtCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCi0rCi0rI2RlZmlu ZSBIQVZFX0FTTSAxCi0rCi0rI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQotKwotKyNkZWZp bmUgSEFWRV9ETFNZTSAxCi0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCi0rCi0rI2RlZmlu ZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwot ZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9kYXYx ZF9nZW5lcmF0ZWQuZ25pIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFk L2RhdjFkX2dlbmVyYXRlZC5nbmkKLWluZGV4IDQ1ODkzNWNkOC4uZjBjYmM0YWVkIDEwMDY0NAot LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVy YXRlZC5nbmkKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9k YXYxZF9nZW5lcmF0ZWQuZ25pCi1AQCAtNzAsNiArNzAsMTEgQEAgYXJtX3RlbXBsYXRlX3NvdXJj ZXMgPSBbCi0gICAibGliZGF2MWQvc3JjL2FybS9tY19pbml0X3RtcGwuYyIsCi0gXQotIAotK3Bw YzY0X3RlbXBsYXRlX3NvdXJjZXMgPSBbCi0rICAibGliZGF2MWQvc3JjL3BwYy9jZGVmX2luaXRf dG1wbC5jIiwKLSsgICJsaWJkYXYxZC9zcmMvcHBjL2xvb3ByZXN0b3JhdGlvbl9pbml0X3RtcGwu YyIsCi0rXQotKwotIHRlbXBsYXRlX3NvdXJjZXMgPSBbCi0gICAibGliZGF2MWQvc3JjL2NkZWZf YXBwbHlfdG1wbC5jIiwKLSAgICJsaWJkYXYxZC9zcmMvY2RlZl90bXBsLmMiLAotZGlmZiAtLWdp dCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3Vy Y2UucHkgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVf c291cmNlLnB5Ci1pbmRleCA5YWI1ZTAwYjguLmFkM2ZlZmZlZSAxMDA3NTUKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKLSsr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3Vy Y2UucHkKLUBAIC01MCw3ICs1MCw4IEBAIGRlZiBXcml0ZUduKGZkKToKLSAgIFdyaXRlQXJyYXko ZmQsICJhcm0zMl9hc21fc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS8zMi8q LlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIsIGdsb2IuZ2xvYigi bGliZGF2MWQvc3JjL2FybS82NC8qLlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQsICJhcm1fdGVtcGxh dGVfc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS8qX3RtcGwuYyIpKQotLQot KyAgV3JpdGVBcnJheShmZCwgInBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxp YmRhdjFkL3NyYy9wcGMvKl90bXBsLmMiKSkKLSsgCi0gICB0ZW1wbGF0ZV9zb3VyY2VzID0gZ2xv Yi5nbG9iKCJsaWJkYXYxZC9zcmMvKl90bXBsLmMiKQotICAgV3JpdGVBcnJheShmZCwgInRlbXBs YXRlX3NvdXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2VzKQotIAotZGlmZiAtLWdpdCBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3Bw Yy90eXBlcy5oCi1pbmRleCAwYjRiZDcyZjAuLmEwY2FhNWU3MSAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVz LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYx ZC9zcmMvcHBjL3R5cGVzLmgKLUBAIC01MSw0ICs1MSwxOSBAQAotICNkZWZpbmUgdTE2bF90b19p MzIodikgKChpMzJ4NCkgdmVjX21lcmdlbCgodTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkpKQot ICNkZWZpbmUgaTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYpKQot IAotKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSsjdW5kZWYgdmVjX3NwbGF0cwotKyNkZWZpbmUg dmVjX3NwbGF0cyhOKSAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgX0dlbmVyaWMoKE4pLCAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAgICgo dTh4MTYpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShOKSks IFwKLSsgICAgICAgIHVuc2lnbmVkIHNob3J0OiAgICAgKCh1MTZ4OCkoTikpLCBcCi0rICAgICAg ICBzaWduZWQgc2hvcnQ6ICAgICAgICgoaTE2eDgpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQg aW50OiAgICAgICAoKHUzMng0KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAgICAg KChpMzJ4NCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIpKE4p KSwgXAotKyAgICAgICAgc2lnbmVkIGxvbmcgbG9uZzogICAoKGk2NHgyKShOKSkgIFwKLSsgICAg KQotKyNlbmRpZgotKwotICNlbmRpZiAvKiBEQVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZHJtL3NyYy94Zjg2 ZHJtLmMgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZHJtL3NyYy94Zjg2 ZHJtLmMKLWluZGV4IGI3ZDU4NjU5MS4uY2VhZDA1MDIxIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYmRybS9zcmMveGY4NmRybS5jCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZHJtL3NyYy94Zjg2ZHJtLmMKLUBAIC01 MSwxMCArNTEsMTAgQEAKLSAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0gI2luY2x1ZGUgPHN5cy90 aW1lLmg+Ci0gI2luY2x1ZGUgPHN0ZGFyZy5oPgotLSNpZmRlZiBNQUpPUl9JTl9NS0RFVgotKyNp ZiBfX2hhc19pbmNsdWRlKDxzeXMvbWtkZXYuaD4pCi0gI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgot ICNlbmRpZgotLSNpZmRlZiBNQUpPUl9JTl9TWVNNQUNST1MKLSsjaWYgX19oYXNfaW5jbHVkZSg8 c3lzL3N5c21hY3Jvcy5oPikKLSAjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgotICNlbmRpZgot ICNpbmNsdWRlIDxtYXRoLmg+Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLWluZGV4IDU5N2Q4 YjZlNS4uOTlkMWVjMGM3IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTM5MzEs NyArMzkzMSw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICAgICBMU1NfUkVHKDIsIGJ1 Zik7Ci0gICAgICAgTFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOwotICAgICB9Ci0t I2Vsc2UKLSsjZWxpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhh dmUgbW1hcDIgKi8KLSAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCi0gICAgIExT U19JTkxJTkUgX3N5c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50 LCAgICAgICAgICAgICAgIHAsCi1AQCAtNDA0Miw3ICs0MDQyLDcgQEAgc3RydWN0IGtlcm5lbF9z dGF0ZnMgewotICAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICBkZWZpbmVkKF9fQVJNX0FS Q0hfM19fKSB8fCBkZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkz MikgfHwgICAgICAgICAgICAgICAgICAgXAotLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAg IChkZWZpbmVkKF9fUFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgKGRl ZmluZWQoX19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCi0gICAgIC8qIE9uIHRoZXNl IGFyY2hpdGVjdHVyZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLwotICAgICBM U1NfSU5MSU5FIHZvaWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwg aW50IGYsIGludCBkLAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9wZmZmdC9zcmMvcGZmZnQuYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9wZmZmdC9zcmMvcGZmZnQuYwotaW5kZXggYmRhYzRkNzg0Li41MWUwZjJjYWMgMTAwNjQ0Ci0t LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMK LSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQu YwotQEAgLTEwMCw2ICsxMDAsNyBAQAotICAgIEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3MgCi0gKi8K LSAjaWYgIWRlZmluZWQoUEZGRlRfU0lNRF9ESVNBQkxFKSAmJiAoZGVmaW5lZChfX3BwY19fKSB8 fCBkZWZpbmVkKF9fcHBjNjRfXykpCi0rI2luY2x1ZGUgPGFsdGl2ZWMuaD4KLSB0eXBlZGVmIHZl Y3RvciBmbG9hdCB2NHNmOwotICMgIGRlZmluZSBTSU1EX1NaIDQKLSAjICBkZWZpbmUgVlpFUk8o KSAoKHZlY3RvciBmbG9hdCkgdmVjX3NwbGF0X3U4KDApKQotZGlmZiAtLWdpdCBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmlu Zy5jcHAKLWluZGV4IDg4ZWIxYzdkMy4uNGJlMzNmYTViIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAKLSsr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xT dHJpbmcuY3BwCi1AQCAtMjQwLDcgKzI0MCwxMiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2 YWx1ZSkgewotICAgICBpZiAobmVlZHNEb3RaZXJvKSB7Ci0gICAgICAgICBidWZmZXIgPDwgIi4w IjsKLSAgICAgfQotLSAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKLSsK LSsgICAgc3RkOjpzdHJpbmcgcmV0KGJ1ZmZlci5zdHIoKSk7Ci0rICAgIGlmIChzaWduYml0KHZh bHVlKSAmJiByZXRbMF0gPT0gJy4nKSB7Ci0rICAgICAgICByZXRbMF0gPSAnLSc7Ci0rICAgIH0K LSsgICAgcmV0dXJuIFN0cmluZyhyZXQuY19zdHIoKSk7Ci0gfQotIAotIFNLU0xfSU5UIHN0b2ko Y29uc3QgU3RyaW5nJiBzKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMK LWluZGV4IDFiMmMyZWM3YS4uYmFhMmIyYTVkIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0 aW9uL3NxbGl0ZTMuYwotQEAgLTE0NDAwLDcgKzE0NDAwLDggQEAgdHlwZWRlZiBJTlQxNl9UWVBF IExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAg ICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkg IHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0g ICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZp bmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVk KF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJN RUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAg IFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9f T1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAx MjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwK LSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLUBA IC0xODcxMTgsNyArMTg3MTE5LDcgQEAgc3RydWN0IFJ0cmVlTWF0Y2hBcmcgewotICNpZiBkZWZp bmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4Nikg fHwgICAgXAotICAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZp bmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICBkZWZpbmVk KF9fYXJtX18pCi0rICAgIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyBkZWZp bmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gI2VsaWYgZGVmaW5lZChzcGFyYykgICAgfHwg ZGVmaW5lZChfX3BwY19fKQotICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgNDMyMQotZGlm ZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2Ft YWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLWluZGV4IDczNGFjMzU1 ZC4uNDNmYWJlODA1IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLSsrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3Fs aXRlMy5jCi1AQCAtMTQzMTQsNyArMTQzMTQsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0 OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwg ZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRl ZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194 ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8 fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9M SVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAj IGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAg ICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotQEAgLTE4NjUx NCw3ICsxODY1MTUsNyBAQCBzdHJ1Y3QgUnRyZWVNYXRjaEFyZyB7Ci0gI2lmIGRlZmluZWQoaTM4 NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBc Ci0gICAgIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfTV9YNjQpICB8fCAgICBcCi0gICAgIGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQoX01f QVJNKSAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgIGRlZmluZWQoX19hcm1f XykKLSsgICAgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChf X0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjIGRlZmluZSBTUUxJ VEVfQllURU9SREVSICAgIDEyMzQKLSAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVk KF9fcHBjX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCi1kaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVl L3J0cmVlLmMgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9l eHQvcnRyZWUvcnRyZWUuYwotaW5kZXggMWVlZjFhMWI1Li5iNTMwOTdiN2YgMTAwNjQ0Ci0tLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUv cnRyZWUuYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvZXh0L3J0cmVlL3J0cmVlLmMKLUBAIC00MzIsNyArNDMyLDcgQEAgc3RydWN0IFJ0cmVlTWF0 Y2hBcmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgIHx8 IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICBkZWZpbmVk KF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwg ICAgXAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVf RU5ESUFOX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gI2VsaWYgZGVm aW5lZChzcGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQotICMgZGVmaW5lIFNRTElURV9CWVRF T1JERVIgICAgNDMyMQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotaW5kZXggOWVmMjQzN2IwLi42 YzcwMTQ4YzcgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv c3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotQEAgLTg1Myw3ICs4NTMsOCBA QCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8 IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAg ICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVk KF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9N X0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChf X0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkK LSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRl ZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAo X19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBT UUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRl ZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3Bf Y2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKLWluZGV4IGRkOWFiNDU3ZS4uYzAwNWQ5NTk5IDEwMDY0 NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVz L2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Js b2NrLmNjCi1AQCAtMzAsMTEgKzMwLDcgQEAKLSAgIHN0YXRpYyBib29sICgqZGlmZl9wcm9jKShj b25zdCB1aW50OF90KiwgY29uc3QgdWludDhfdCopID0gbnVsbHB0cjsKLSAKLSAgIGlmICghZGlm Zl9wcm9jKSB7Ci0tI2lmIGRlZmluZWQoV0VCUlRDX0FSQ0hfQVJNX0ZBTUlMWSkgfHwgZGVmaW5l ZChXRUJSVENfQVJDSF9NSVBTX0ZBTUlMWSkKLS0gICAgLy8gRm9yIEFSTSBhbmQgTUlQUyBwcm9j ZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KLS0gICAgLy8gVE9ETyhoY2xhbSk6IEltcGxl bWVudCBhIE5FT04gdmVyc2lvbi4KLS0gICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2Vf QzsKLS0jZWxzZQotKyNpZiBkZWZpbmVkKFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkpCi0gICAgIGJv b2wgaGF2ZV9zc2UyID0gR2V0Q1BVSW5mbyhrU1NFMikgIT0gMDsKLSAgICAgLy8gRm9yIHg4NiBw cm9jZXNzb3JzLCBjaGVjayBpZiBTU0UyIGlzIHN1cHBvcnRlZC4KLSAgICAgaWYgKGhhdmVfc3Nl MiAmJiBrQmxvY2tTaXplID09IDMyKSB7Ci1AQCAtNDQsNiArNDAsMTAgQEAgYm9vbCBWZWN0b3JE aWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYWdlMSwgY29uc3QgdWludDhfdCogaW1hZ2UyKSB7 Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsK LSAgICAgfQotKyNlbHNlCi0rICAgIC8vIEZvciBvdGhlciBwcm9jZXNzb3JzLCBhbHdheXMgdXNl IEMgdmVyc2lvbi4KLSsgICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lv bi4KLSsgICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKLSAjZW5kaWYKLSAgIH0K LSAKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRj L3J0Y19iYXNlL3N5c3RlbS9hcmNoLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLWluZGV4IGVkMjE2ZTY2MC4uMjVkMzZj MDcxIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0 Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLUBAIC01MCw2ICs1MCwxOCBA QAotICNlbGlmIGRlZmluZWQoX19FTVNDUklQVEVOX18pCi0gI2RlZmluZSBXRUJSVENfQVJDSF8z Ml9CSVRTCi0gI2RlZmluZSBXRUJSVENfQVJDSF9MSVRUTEVfRU5ESUFOCi0rI2VsaWYgZGVmaW5l ZChfX1BQQ19fKQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfUFBDX0ZBTUlMWQotKyNpZiBfX0JZVEVf T1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXwotKyNkZWZpbmUgV0VCUlRDX0FSQ0hf TElUVExFX0VORElBTgotKyNlbHNlCi0rI2RlZmluZSBXRUJSVENfQVJDSF9CSUdfRU5ESUFOCi0r I2VuZGlmCi0rI2lmIGRlZmluZWQoX19MUDY0X18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF82NF9C SVRTCi0rI2Vsc2UKLSsjZGVmaW5lIFdFQlJUQ19BUkNIXzMyX0JJVFMKLSsjZW5kaWYKLSAjZWxz ZQotICNlcnJvciBQbGVhc2UgYWRkIHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0 Y19iYXNlL3N5c3RlbS9hcmNoLmgKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvQlVJTEQuZ24gYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvQlVJTEQuZ24K LWluZGV4IGFiMjAxNDJkZS4uMDAxOTIxYzU5IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3Y4L0JVSUxELmduCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvQlVJTEQu Z24KLUBAIC02NzgsNiArNjc4LDEyIEBAIGNvbmZpZygidG9vbGNoYWluIikgewotICAgICB9Ci0g ICAgIGlmIChob3N0X2J5dGVvcmRlciA9PSAibGl0dGxlIikgewotICAgICAgIGRlZmluZXMgKz0g WyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0xFIiBdCi0rICAgICAgICBjZmxhZ3MgKz0gWwotKyAgICAg ICAgIyBFbmFibGUgdXNhZ2Ugb2YgQWx0aVZlYywgVlNYLCBhbmQgb3RoZXIgUE9XRVI4IGFuZCBo aWdoZXIgZmVhdHVyZXMKLSsgICAgICAgICItbWNwdT1wb3dlcjgiLAotKyAgICAgICAgIi1tYWx0 aXZlYyIsCi0rICAgICAgICAiLW12c3giLAotKyAgICAgIF0KLSAgICAgfSBlbHNlIGlmIChob3N0 X2J5dGVvcmRlciA9PSAiYmlnIikgewotICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FS Q0hfUFBDX0JFIiBdCi0gICAgICAgaWYgKGN1cnJlbnRfb3MgPT0gImFpeCIpIHsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTEtY2hyb21pdW0tcHBjNjRsZS1t dXNsLnBhdGNoIGIvc3JjcGtncy9xdDUtd2ViZW5naW5lL3BhdGNoZXMvMDA5MS1jaHJvbWl1bS1w cGM2NGxlLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MWY3ODJl MDRhNjMuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9xdDUtd2ViZW5naW5lL3BhdGNoZXMv MDA5MS1jaHJvbWl1bS1wcGM2NGxlLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjkg KzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotaW5kZXggYTZhZWM1NDRlLi4yYTRhN2Yx YmMgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZf ZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotQEAgLTE2LDcgKzE2LDcgQEAKLSAjaWYg ZGVmaW5lZChfX21pcHNfXykKLSAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90 IGRlZmluaXRpb24KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0tI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX0dMSUJD X18pCi0gLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotIHR5cGVkZWYgdW5zaWdu ZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLUBAIC0zNjEsMTEgKzM2MSwxMSBAQCB0eXBl ZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0OwotICNkZWZpbmUgU0VDQ09NUF9BUkNIIEFV RElUX0FSQ0hfUFBDNjQKLSAjZW5kaWYKLSAKLS0jZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9y ZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPmdwcltfcmVnXSkKLSsjZGVmaW5lIFNFQ0NP TVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4 dC5yZWdzKS0+Z3ByW19yZWddKQotIAotICNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01Q X1JFRyhfY3R4LCAwKQotLSNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250 ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdz ICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+bmlwCi0gI2RlZmluZSBTRUNDT01QX1BBUk0x KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0gI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDQpCi0gI2RlZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NP TVBfUkVHKF9jdHgsIDUpCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLWluZGV4IDEwZmE1ZmQwNy4uMzBi N2IzODUxIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYvc3lzY2FsbC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTQ5Nyw5ICs0OTcsOSBAQCB2b2lk IFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90 KiBjdHgpIHsKLSAgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQg ZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSAgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwg Pj0gLTQwOTUpIHsKLSAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotLSAgICBjdHgtPnVjX21jb250 ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgt PnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgfD0gKDEgPDwgMjgpOwotICAgfSBlbHNlIHsKLS0gICAg Y3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKLSsgICAgKChzdHJ1Y3Qg cHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciAmPSB+KDEgPDwgMjgpOwotICAg fQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4o cmV0X3ZhbCk7Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVy bmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCi1pbmRleCBjZGNlOWJmOGEuLjczZDc3ZGRhNCAxMDA2 NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fi c2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAotKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2Nh bGVkY3ljbGVjbG9jay5oCi1AQCAtNDYsNyArNDYsNyBAQAotIAotIC8vIFRoZSBmb2xsb3dpbmcg cGxhdGZvcm1zIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBoYXJkd2FyZSBjb3VudGVyLgot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IFwKLS0gIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19w cGNfXykgfHwgXAotKyAgKChkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18p KSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IFwKLSAgIGRlZmluZWQoX01fSVg4NikgfHwgZGVm aW5lZChfTV9YNjQpCi0gI2RlZmluZSBBQlNMX0hBVkVfVU5TQ0FMRURfQ1lDTEVDTE9DS19JTVBM RU1FTlRBVElPTiAxCi0gI2Vsc2UKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmln LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fi c2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKLUBAIC02NCw3ICs2NCw3 IEBACi0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotICNk ZWZpbmUgQUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAotICAgImFic2wvZGVidWdnaW5nL2lu dGVybmFsL3N0YWNrdHJhY2VfeDg2LWlubC5pbmMiCi0tI2VsaWYgZGVmaW5lZChfX3BwY19fKSB8 fCBkZWZpbmVkKF9fUFBDX18pCi0rI2VsaWYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChf X1BQQ19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pCi0gI2RlZmluZSBBQlNMX1NUQUNLVFJBQ0Vf SU5MX0hFQURFUiBcCi0gICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9wb3dl cnBjLWlubC5pbmMiCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLWRpZmYgLS1naXQgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLWluZGV4IDAzYWZlYzdhNS4uMDI2 NGVjZjEzIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVh ZF9pbmZvLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uY2MKLUBAIC0yNzMsNiArMjczLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4 dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAKLSAjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gCi0rI2luY2x1ZGUgPGFzbS9lbGYuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgotKwotIHVpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25z dCB7Ci0gICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0gfQotQEAgLTI5MCw5 ICsyOTMsOSBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUq IG91dCkgY29uc3QgewotICAgICBvdXQtPmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsK LSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENf RlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNv bnRleHQuZnBfcmVnc1tpXTsKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAo KHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOwotIAotLSAgICBvdXQtPmZsb2F0X3Nh dmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsgICAgb3V0LT5mbG9hdF9z YXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVHLTFd OwotIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9D T1VOVDsgaSsrKQotICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0gXAotZGlm ZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIu Y2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1p bmRleCA3NjIwY2Y2ZjcuLjU0ZTM3MzYxMSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLUBAIC0yNTcsNiArMjU3LDkgQEAgdm9p ZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25z dCB1Y29udGV4dF90ICp1YykgewotIAotICNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAK LSsjaW5jbHVkZSA8YXNtL2VsZi5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0gdWlu dHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCog dWMpIHsKLSAgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBD NjRfUkVHX1NQXTsKLSB9Ci1AQCAtMjgwLDkgKzI4Myw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6 OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMs Ci0gICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSAgICAg Ci0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NP VU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21j b250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0g KCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbaV07Ci0gCi0tICAgIG91dC0+ ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsg ICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQu ZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9W RUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3Nh dmUuc2F2ZV92cltpXSA9Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRp b25faGFuZGxlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MK LWluZGV4IDkwMWNkNjhmYi4uNTYxOTU4YzQ0IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNl cHRpb25faGFuZGxlci5jYwotQEAgLTEwNSw2ICsxMDUsMTEgQEAKLSAjZGVmaW5lIFBSX1NFVF9Q VFJBQ0VSIDB4NTk2MTZkNjEKLSAjZW5kaWYKLSAKLSsvKiBtdXNsIGhhY2ssIGNhbid0IGluY2x1 ZGUgYXNtL3B0cmFjZS5oIGFzIHRoYXQgY2F1c2VzIGNvbmZsaWN0cyAqLwotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pICYmICFkZWZpbmVkKFBUX05JUCkKLSsjZGVmaW5lIFBUX05JUCAzMgot KyNlbmRpZgotKwotIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgewotIAotIG5hbWVzcGFjZSB7 Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgK LWluZGV4IGRlYTBkMWYzOS4uYjIwM2U1YjJmIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2lu Zm8uaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTMwLDYgKzMwLDcgQEAKLSAKLSAj aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gI2luY2x1ZGUgPHN5cy91Y29udGV4 dC5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gI2VuZGlmCi0gCi0gbmFtZXNwYWNlIGNy YXNocGFkIHsKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv bHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotaW5kZXggOTk1NWNlNDQuLjRjMWNj NDg4IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xzcy9s aW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTQyMTYsOSArNDIxNiwxNyBA QCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAgIH0KLSAgICNlbmRpZgotICAgI2lmIGRlZmlu ZWQoX19OUl9mc3RhdGF0NjQpCi0rICAgIC8vIG11c2wgZG9lcyAjZGVmaW5lIGZzdGF0YXQ2NCBm c3RhdGF0Ci0rICAgICNpZm5kZWYgX19HTElCQ19fCi0rICAgICN1bmRlZiBmc3RhdGF0NjQKLSsg ICAgI2VuZGlmCi0gICAgIExTU19JTkxJTkUgX3N5c2NhbGw0KGludCwgICBmc3RhdGF0NjQsICAg ICAgICBpbnQsICAgZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCAg ICAgIHAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrZXJuZWxfc3RhdDY0ICos ICAgYiwgICAgaW50LCAgIGYpCi0rICAgIC8vIHNldCBpdCBiYWNrIGxpa2UgaXQgd2FzCi0rICAg ICNpZm5kZWYgX19HTElCQ19fCi0rICAgICNkZWZpbmUgZnN0YXRhdDY0IGZzdGF0YXQKLSsgICAg I2VuZGlmCi0gICAjZW5kaWYKLSAgICNpZiBkZWZpbmVkKF9fTlJfd2FpdHBpZCkKLSAgICAgLy8g d2FpdHBpZCBpcyBwb2x5ZmlsbGVkIGJlbG93IHdoZW4gbm90IGF2YWlsYWJsZS4KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTItcHBjNjRsZS1zYW5kYm94LWxp bnV4LXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy8wMDkyLXBwYzY0 bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBiM2E0MzlhMGUxNjJkLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2lu ZS9wYXRjaGVzLzAwOTItcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzMSArMCwwIEBACi0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAotQEAgLTE1 NSw2ICsxNTUsMjggQEAgc3RydWN0IGtlcm5lbF9zdGF0IHsKLSAgIHVuc2lnbmVkIGludCBfX3Vu dXNlZDQ7Ci0gICB1bnNpZ25lZCBpbnQgX191bnVzZWQ1OwotIH07Ci0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotK3N0cnVjdCBrZXJuZWxfc3RhdCB7Ci0rICB1bnNpZ25lZCBsb25nCXN0 X2RldjsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfaW5vOwotKyAgdW5zaWduZWQgbG9uZwlzdF9ubGlu azsKLSsgIHVuc2lnbmVkIGludAlzdF9tb2RlOwotKyAgdW5zaWduZWQgaW50CXN0X3VpZDsKLSsg IHVuc2lnbmVkIGludAlzdF9naWQ7Ci0rICB1bnNpZ25lZCBsb25nCXN0X3JkZXY7Ci0rICBsb25n CQlzdF9zaXplOwotKyAgdW5zaWduZWQgbG9uZwlzdF9ibGtzaXplOwotKyAgdW5zaWduZWQgbG9u ZwlzdF9ibG9ja3M7Ci0rICB1bnNpZ25lZCBsb25nCXN0X2F0aW1lXzsKLSsgIHVuc2lnbmVkIGxv bmcJc3RfYXRpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCXN0X210aW1lXzsKLSsgIHVuc2ln bmVkIGxvbmcJc3RfbXRpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCXN0X2N0aW1lXzsKLSsg IHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfbnNlY187Ci0rICB1bnNpZ25lZCBsb25nCV9fdW51c2Vk NDsKLSsgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ1OwotKyAgdW5zaWduZWQgbG9uZwlfX3VudXNl ZDY7Ci0rfTsKLSAjZW5kaWYKLSAKLSAvLyBPbiAzMi1iaXQgc3lzdGVtcywgd2UgZGVmYXVsdCB0 byB0aGUgNjQtYml0IHN0YXQgc3RydWN0IGxpa2UgbGliYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDUtd2ViZW5naW5lL3BhdGNoZXMvMDExNC1yaXNjdjY0LnBhdGNoIGIvc3JjcGtncy9xdDUtd2Vi ZW5naW5lL3BhdGNoZXMvMDExNC1yaXNjdjY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjU4Yjg1MmExMDc5OGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE0LXJpc2N2NjQucGF0Y2gKQEAgLTAsMCArMSwy OTk5IEBACitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L2NvbmZpZ3Vy ZS5wcmkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcu b3JpZy9jb25maWd1cmUucHJpCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43 L2NvbmZpZ3VyZS5wcmkKK0BAIC0xNDQsNiArMTQ0LDcgQEAgZGVmaW5lVGVzdChxdENvbmZUZXN0 X2RldGVjdEFyY2gpIHsKKyAgICAgY29udGFpbnMoUVRfQVJDSCwgImFybSIpfGNvbnRhaW5zKFFU X0FSQ0gsICJhcm02NCIpOiByZXR1cm4odHJ1ZSkKKyAgICAgY29udGFpbnMoUVRfQVJDSCwgIm1p cHMiKTogcmV0dXJuKHRydWUpCisgICAgIGNvbnRhaW5zKFFUX0FSQ0gsICJtaXBzNjQiKTogcmV0 dXJuKHRydWUpCisrICAgIGNvbnRhaW5zKFFUX0FSQ0gsICJyaXNjdjY0Iik6IHJldHVybih0cnVl KQorICAgICBxdExvZygiQXJjaGl0ZWN0dXJlIG5vdCBzdXBwb3J0ZWQuIikKKyAgICAgcmV0dXJu KGZhbHNlKQorIH0KK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjcvbWtz cGVjcy9mZWF0dXJlcy9mdW5jdGlvbnMucHJmCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvbWtzcGVjcy9mZWF0dXJlcy9mdW5jdGlvbnMucHJm CisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L21rc3BlY3MvZmVhdHVyZXMv ZnVuY3Rpb25zLnByZgorQEAgLTEwNyw2ICsxMDcsNyBAQCBkZWZpbmVSZXBsYWNlKGduQXJjaCkg eworICAgICBjb250YWlucyhxdEFyY2gsICJtaXBzIik6IHJldHVybihtaXBzZWwpCisgICAgIGNv bnRhaW5zKHF0QXJjaCwgIm1pcHM2NCIpOiByZXR1cm4obWlwczY0ZWwpCisgICAgIGNvbnRhaW5z KHF0QXJjaCwgIm1pcHM2NGVsIik6IHJldHVybihtaXBzNjRlbCkKKysgICAgY29udGFpbnMocXRB cmNoLCAicmlzY3Y2NCIpOiByZXR1cm4ocmlzY3Y2NCkKKyAgICAgcmV0dXJuKHVua25vd24pCisg fQorIAorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL2xhdW5jaF9wb3NpeC5jYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9iYXNlL3Byb2Nlc3MvbGF1bmNoX3Bvc2l4LmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3 aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvbGF1bmNo X3Bvc2l4LmNjCitAQCAtNzA0LDcgKzcwNCw3IEBAIE5PSU5MSU5FIHBpZF90IENsb25lQW5kTG9u Z2ptcEluQ2hpbGQodW4KKyAgIGFsaWduYXMoMTYpIGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RB Q0tfTUlOXTsKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFS Q0hfQ1BVX0FSTV9GQU1JTFkpIHx8ICAgXAorICAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1MzOTBfRkFNSUxZKSB8fCBcCistICAgIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkgfHwgZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisgICAvLyBUaGUgc3RhY2sgZ3Jv d3MgZG93bndhcmQuCisgICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFja19i dWYpOworICNlbHNlCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9idWlsZF9jb25maWcuaAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9idWlsZC9idWlsZF9jb25maWcuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3Jj LTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvYnVpbGRfY29uZmlnLmgKK0BAIC0x OTMsNiArMTkzLDExIEBACisgI2RlZmluZSBBUkNIX0NQVV8zMl9CSVRTIDEKKyAjZGVmaW5lIEFS Q0hfQ1BVX0JJR19FTkRJQU4gMQorICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19yaXNjdikgJiYg X19yaXNjdl94bGVuID09IDY0CisrI2RlZmluZSBBUkNIX0NQVV9SSVNDVl9GQU1JTFkgMQorKyNk ZWZpbmUgQVJDSF9DUFVfUklTQ1Y2NCAxCisrI2RlZmluZSBBUkNIX0NQVV82NF9CSVRTIDEKKysj ZGVmaW5lIEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4gMQorICNlbHNlCisgI2Vycm9yIFBsZWFzZSBh ZGQgc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gYnVpbGQvYnVpbGRfY29uZmlnLmgK KyAjZW5kaWYKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9CVUlMRC5nbgorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9idWlsZC9jb25maWcvQlVJTEQuZ24KKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9CVUlMRC5nbgorQEAgLTIz OCw2ICsyMzgsNyBAQCBjb25maWcoImRlZmF1bHRfbGlicyIpIHsKKyAgICAgICAiZGwiLAorICAg ICAgICJwdGhyZWFkIiwKKyAgICAgICAicnQiLAorKyAgICAgICJhdG9taWMiLAorICAgICBdCisg ICB9CisgfQorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xpbnV4L0JVSUxELmduCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2J1aWxkL3Rvb2xjaGFpbi9saW51eC9CVUlMRC5nbgorKysrIHF0d2ViZW5naW5l LWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvdG9vbGNo YWluL2xpbnV4L0JVSUxELmduCitAQCAtMjk4LDMgKzI5OCwyMCBAQCBnY2NfdG9vbGNoYWluKCJt aXBzNjQiKSB7CisgICAgIGlzX2NsYW5nID0gZmFsc2UKKyAgIH0KKyB9CisrCisrZ2NjX3Rvb2xj aGFpbigicmlzY3Y2NCIpIHsKKysgIGNjID0gImdjYyIKKysgIGN4eCA9ICJnKysiCisrCisrICBy ZWFkZWxmID0gInJlYWRlbGYiCisrICBubSA9ICJubSIKKysgIGFyID0gImFyIgorKyAgbGQgPSBj eHgKKysKKysgIHRvb2xjaGFpbl9hcmdzID0geworKyAgICBjdXJyZW50X2NwdSA9ICJyaXNjdjY0 IgorKyAgICBjdXJyZW50X29zID0gImxpbnV4IgorKyAgICBpc19jbGFuZyA9IGZhbHNlCisrICB9 CisrfQorKworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5nbmkKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9mZWF0dXJlcy5nbmkKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1 Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pCitAQCAtMTEsNyAr MTEsOCBAQCBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL25hY2wvY29uZmlnLmduaSIpCisgdXNlX3Nl Y2NvbXBfYnBmID0gKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zIHx8IGlzX2FuZHJvaWQpICYmCisg ICAgICAgICAgICAgICAgICAgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09 ICJ4NjQiIHx8CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1 cnJlbnRfY3B1ID09ICJhcm02NCIgfHwKKy0gICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUg PT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIikKKysgICAgICAgICAgICAg ICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVs IiB8fAorKyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAicmlzY3Y2NCIpCisgCisg dXNlX3NlY2NvbXBfYnBmID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xfbm9uc2ZpCisgCitJ bmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMu aAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKK0BAIC01 Niw2ICs1NiwxMiBAQAorICNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIF9fTlJfc3lzY2FsbHMK KyAjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAorIAorKyNlbGlmIGRlZmlu ZWQoX19yaXNjdikKKysKKysjZGVmaW5lIE1JTl9TWVNDQUxMIDB1CisrI2RlZmluZSBNQVhfUFVC TElDX1NZU0NBTEwgMTAyNHUKKysjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9QVUJMSUNfU1lTQ0FM TAorKworICNlbHNlCisgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiCisgI2VuZGlm CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAorKysrIHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKK0BAIC0zNDYsNiArMzQ2LDQ2IEBA IHN0cnVjdCByZWdzX3N0cnVjdCB7CisgI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAo X3JlZ3MpLnJlZ3NbM10KKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncyku cmVnc1s0XQorICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5yZWdzWzVd CisrCisrI2VsaWYgZGVmaW5lZChfX3Jpc2N2KQorK3N0cnVjdCByZWdzX3N0cnVjdCB7CisrICB1 bnNpZ25lZCBsb25nIHJlZ3NbMzJdOworK307CisrCisrI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVE SVRfQVJDSF9SSVNDVjY0CisrCisrI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKF9j dHgpLT51Y19tY29udGV4dC5fX2dyZWdzW19yZWddKQorKworKyNkZWZpbmUgU0VDQ09NUF9SRVNV TFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgUkVHX0EwKQorKyNkZWZpbmUgU0VDQ09NUF9TWVND QUxMKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIFJFR19BMCs3KQorKyNkZWZpbmUgU0VDQ09NUF9J UChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0Ll9fZ3JlZ3NbUkVHX1BDXQorKyNkZWZpbmUgU0VD Q09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCBSRUdfQTApCisrI2RlZmluZSBTRUND T01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIFJFR19BMCsxKQorKyNkZWZpbmUgU0VD Q09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCBSRUdfQTArMikKKysjZGVmaW5lIFNF Q0NPTVBfUEFSTTQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgUkVHX0EwKzMpCisrI2RlZmluZSBT RUNDT01QX1BBUk01KF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIFJFR19BMCs0KQorKyNkZWZpbmUg U0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCBSRUdfQTArNSkKKysKKysjZGVm aW5lIFNFQ0NPTVBfTlJfSURYIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEsIG5y KSkKKysjZGVmaW5lIFNFQ0NPTVBfQVJDSF9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2Nv bXBfZGF0YSwgYXJjaCkpCisrI2RlZmluZSBTRUNDT01QX0lQX01TQl9JRFggXAorKyAgKG9mZnNl dG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyA0KQor KyNkZWZpbmUgU0VDQ09NUF9JUF9MU0JfSURYIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9z ZWNjb21wX2RhdGEsIGluc3RydWN0aW9uX3BvaW50ZXIpICsgMCkKKysjZGVmaW5lIFNFQ0NPTVBf QVJHX01TQl9JRFgobnIpIFwKKysgIChvZmZzZXRvZihzdHJ1Y3QgYXJjaF9zZWNjb21wX2RhdGEs IGFyZ3MpICsgOCAqIChucikgKyA0KQorKyNkZWZpbmUgU0VDQ09NUF9BUkdfTFNCX0lEWChucikg XAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5y KSArIDApCisrCisrI2RlZmluZSBTRUNDT01QX1BUX1JFU1VMVChfcmVncykgKF9yZWdzKS5yZWdz W1JFR19BMF0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfU1lTQ0FMTChfcmVncykgKF9yZWdzKS5yZWdz W1JFR19BMCs3XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5yZWdzW1JF R19QQ10KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykucmVnc1tSRUdf QTBdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0Ew KzFdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0zKF9yZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0Ew KzJdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0Ew KzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0Ew KzRdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbUkVHX0Ew KzVdCisgI2Vsc2UKKyAjZXJyb3IgVW5zdXBwb3J0ZWQgdGFyZ2V0IHBsYXRmb3JtCisgCitJbmRl eDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNl bGluZV9wb2xpY3kuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNl bGluZV9wb2xpY3kuY2MKK0BAIC0xODEsNyArMTgxLDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5 c2NhbGxJbXBsKGludCBmc19kZQorICAgICByZXR1cm4gUmVzdHJpY3RGY250bENvbW1hbmRzKCk7 CisgI2VuZGlmCisgCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChf X2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgIC8vIGZvcmsoKSBpcyBuZXZlciB1 c2VkIGFzIGEgc3lzdGVtIGNhbGwgKGNsb25lKCkgaXMgdXNlZCBpbnN0ZWFkKSwgYnV0IHdlCisg ICAvLyBoYXZlIHNlZW4gaXQgaW4gZmFsbGJhY2sgY29kZSBvbiBBbmRyb2lkLgorICAgaWYgKHN5 c25vID09IF9fTlJfZm9yaykgeworQEAgLTIzMSw3ICsyMzEsNyBAQCBSZXN1bHRFeHByIEV2YWx1 YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICB9CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVk KF9fcmlzY3YpCisgICBpZiAoc3lzbm8gPT0gX19OUl9tbWFwKQorICAgICByZXR1cm4gUmVzdHJp Y3RNbWFwRmxhZ3MoKTsKKyAjZW5kaWYKK0BAIC0yNDksNyArMjQ5LDcgQEAgUmVzdWx0RXhwciBF dmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQorICAgICByZXR1cm4gUmVzdHJpY3RQcmN0bCgp OworIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICBpZiAoc3lzbm8gPT0gX19O Ul9zb2NrZXRwYWlyKSB7CisgICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwgUEZfVU5JWC4gQ3Jh c2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgorICAgICBzdGF0aWNfYXNzZXJ0KEFGX1VOSVgg PT0gUEZfVU5JWCwKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rp b25zLmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworQEAgLTM3LDcgKzM3LDcgQEAKKyAjaW5jbHVkZSA8c3lz L2lvY3RsLmg+CisgI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyAjaWYgZGVmaW5lZChPU19MSU5V WCkgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpICYmICFkZWZpbmVkKF9fYXJtX18pICYmIFwKKy0g ICAgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FS RUEpCisrICAgICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KSAmJiAh ZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQorIC8vIEFsc28gaW5jbHVkZSBhc20vcHRy YWNlLWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9sZGVyIGxpYmMgKGZvciBpbnN0YW5jZQorIC8v IHRoZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykgaXMgbWlzc2luZyBQVFJBQ0VfR0VUX1RIUkVB RF9BUkVBLgorIC8vIGFzbS9wdHJhY2UtYWJpLmggZG9lc24ndCBleGlzdCBvbiBhcm0zMiBhbmQg UFRSQUNFX0dFVF9USFJFQURfQVJFQSBpc24ndAorQEAgLTQwNiw3ICs0MDYsNyBAQCBSZXN1bHRF eHByIFJlc3RyaWN0UHJsaW1pdFRvR2V0cmxpbWl0KHBpCisgUmVzdWx0RXhwciBSZXN0cmljdFB0 cmFjZSgpIHsKKyAgIGNvbnN0IEFyZzxpbnQ+IHJlcXVlc3QoMCk7CisgICByZXR1cm4gU3dpdGNo KHJlcXVlc3QpLkNBU0VTKCgKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZp bmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICAgICAgUFRSQUNFX0dF VFJFR1MsCisgICAgICAgICBQVFJBQ0VfR0VURlBSRUdTLAorICNpZiBkZWZpbmVkKFRSQUNFX0dF VF9USFJFQURfQVJFQSkKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9z eXNjYWxsX3NldHMuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUt c3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAgLTg2LDcgKzg2LDcgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNVbWFzayhpbnQgc3lzbm8pIHsKKyAvLyBCb3RoIEVQRVJNIGFuZCBFTk9FTlQgYXJl IHZhbGlkIGVycm5vIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQgaW4gY29tbWVudC4KKyBib29sIFN5 c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7 CistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykg JiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX2FjY2VzczogIC8vIEVQRVJNIG5v dCBhIHZhbGlkIGVycm5vLgorICAgICBjYXNlIF9fTlJfY2htb2Q6CisgICAgIGNhc2UgX19OUl9j aG93bjoKK0BAIC0xMTgsNyArMTE4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVt KGludCBzeXNubworICAgICBjYXNlIF9fTlJfZmFjY2Vzc2F0OiAgLy8gRVBFUk0gbm90IGEgdmFs aWQgZXJybm8uCisgICAgIGNhc2UgX19OUl9mY2htb2RhdDoKKyAgICAgY2FzZSBfX05SX2ZjaG93 bmF0OiAgLy8gU2hvdWxkIGJlIGNhbGxlZCBjaG93bmF0ID8KKy0jaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05S X25ld2ZzdGF0YXQ6ICAvLyBmc3RhdGF0KCkuIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNl bGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK K0BAIC0yMDEsNyArMjAxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3Rl bUFjYworICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAor LSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVS TSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCisgICAgIGNhc2Ug X19OUl9hcm1fc3luY19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCitA QCAtMjI1LDcgKzIyNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkRmlsZVN5c3RlbUFj Y2UKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9mdHJ1bmNhdGU2NDoKKyAjZW5kaWYKKy0jaWYg IWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVm aW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM6ICAgIC8vIEVQRVJNIG5vdCBh IHZhbGlkIGVycm5vLgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM2NDogIC8vIEVQ RVJNIG5vdCBhIHZhbGlkIGVycm5vLgorQEAgLTMwNCw3ICszMDQsNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuCisgYm9vbCBTeXNjYWxsU2V0czo6SXNQcm9jZXNz R3JvdXBPclNlc3Npb24oaW50IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNh c2UgX19OUl9zZXRwZ2lkOgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmlu ZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9nZXRw Z3JwOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfc2V0c2lkOgorQEAgLTMzMyw3ICszMzMsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluCisgICAgIGNhc2UgX19O Ul9ydF9zaWdzdXNwZW5kOgorICAgICBjYXNlIF9fTlJfcnRfdGdzaWdxdWV1ZWluZm86CisgICAg IGNhc2UgX19OUl9zaWdhbHRzdGFjazoKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9f TlJfc2lnbmFsZmQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zaWduYWxmZDQ6CitAQCAtMzU3 LDEyICszNTcsMTIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZAor ICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfY2xvc2U6CisgICAgIGNhc2UgX19O Ul9kdXA6CistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX2R1cDI6CisgI2VuZGlm CisgICAgIGNhc2UgX19OUl9kdXAzOgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisg ICAgIGNhc2UgX19OUl9zaHV0ZG93bjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BA IC00MDEsNyArNDAxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0 TworICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQg YmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZp bGVnZWQuCistI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX2Zvcms6CisgI2VuZGlm CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKK0BAIC00MTIs NyArNDEyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICNl bmRpZgorICAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICAgICBjYXNlIF9fTlJfdW5z aGFyZToKKy0jaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQor KyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZp bmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl92Zm9yazoKKyAjZW5kaWYKKyAgICAgZGVmYXVs dDoKK0BAIC00MzMsNyArNDMzLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRnV0ZXgo aW50IHN5cworIAorIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEVwb2xsKGludCBzeXNubykg eworICAgc3dpdGNoIChzeXNubykgeworLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYg IWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19O Ul9lcG9sbF9jcmVhdGU6CisgICAgIGNhc2UgX19OUl9lcG9sbF93YWl0OgorICNlbmRpZgorQEAg LTQ1NCwxNCArNDU0LDE0IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEVwb2xsKGludCBz eXMKKyAKKyBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvY2tldChpbnQg c3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18p CisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBj YXNlIF9fTlJfcGlwZToKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3BpcGUyOgorICAgICAgIHJl dHVybiB0cnVlOworICAgICBkZWZhdWx0OgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3Yp CisgICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRvIGluc3BlY3Qg aXRzIGFyZ3VtZW50LgorICNlbmRpZgorICAgICAgIHJldHVybiBmYWxzZTsKK0BAIC00NzEsNyAr NDcxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTbworIGJvb2wg U3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7CisgICBz d2l0Y2ggKHN5c25vKSB7CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18p CisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgICAgY2Fz ZSBfX05SX2FjY2VwdDoKKyAgICAgY2FzZSBfX05SX2FjY2VwdDQ6CisgICAgIGNhc2UgX19OUl9i aW5kOgorQEAgLTUyNSw3ICs1MjUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRy ZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorICAgICBjYXNlIF9fTlJfbWxvY2th bGw6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9tbWFw OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IFwKK0BAIC01NTgsNyArNTU4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2VuZXJh bElvKGludAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX19sbHNlZWs6CisgI2VuZGlmCistI2lm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRl ZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX3BvbGw6CisgI2VuZGlmCisgICAgIGNhc2Ug X19OUl9wcG9sbDoKK0BAIC01NzEsNyArNTcxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkR2VuZXJhbElvKGludAorICAgICBjYXNlIF9fTlJfcmVjdjoKKyAjZW5kaWYKKyAjaWYgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18p IHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfcmVjdmZyb206ICAvLyBDb3Vs ZCBzcGVjaWZ5IHNvdXJjZS4KKyAgICAgY2FzZSBfX05SX3JlY3Ztc2c6ICAgLy8gQ291bGQgc3Bl Y2lmeSBzb3VyY2UuCisgI2VuZGlmCitAQCAtNTg2LDcgKzU4Niw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQKKyAgICAgY2FzZSBfX05SX3NlbmQ6CisgI2VuZGlm CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgICAgY2FzZSBfX05SX3NlbmRtc2c6 ICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgorICAgICBjYXNlIF9fTlJfc2VuZHRvOiAg IC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCisgI2VuZGlmCitAQCAtNjM2LDcgKzYzNiw3 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU2VjY29tcChpbnQgc3lzbm8pIHsKKyBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlcihpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAo c3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX3NjaGVkX3lpZWxkOgorLSNpZiAhZGVmaW5lZChfX2Fh cmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3Yp CisgICAgIGNhc2UgX19OUl9wYXVzZToKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX25hbm9zbGVl cDoKK0BAIC03MjAsNyArNzIwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNOdW1hKGludCBzeXNu bykgeworICAgICBjYXNlIF9fTlJfZ2V0Y3B1OgorICAgICBjYXNlIF9fTlJfbWJpbmQ6CisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9taWdyYXRlX3BhZ2Vz OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbW92ZV9wYWdlczoKK0BAIC03NDksNyArNzQ5LDcg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52aXJvbgorICAgc3dpdGNoIChz eXNubykgeworICAgICBjYXNlIF9fTlJfYWNjdDogIC8vIFByaXZpbGVnZWQuCisgI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9nZXRybGltaXQ6CisgI2VuZGlm CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykKK0BAIC03ODQsNyAr Nzg0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZWJ1ZyhpbnQgc3lzbm8pIHsKKyAKKyBib29s IFN5c2NhbGxTZXRzOjpJc0dsb2JhbFN5c3RlbVN0YXR1cyhpbnQgc3lzbm8pIHsKKyAgIHN3aXRj aCAoc3lzbm8pIHsKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9f YWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfX3N5c2N0bDoK KyAgICAgY2FzZSBfX05SX3N5c2ZzOgorICNlbmRpZgorQEAgLTgwMiw3ICs4MDIsNyBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0dsb2JhbFN5c3RlbVN0YXR1cyhpCisgCisgYm9vbCBTeXNjYWxsU2V0 czo6SXNFdmVudEZkKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworLSNpZiAhZGVm aW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVk KF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9ldmVudGZkOgorICNlbmRpZgorICAgICBjYXNlIF9f TlJfZXZlbnRmZDI6CitAQCAtODM4LDcgKzgzOCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzS2V5 TWFuYWdlbWVudChpbnQgc3kKKyB9CisgCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKQorKyAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9C SVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcmlzY3YpCisgYm9vbCBTeXNjYWxsU2V0czo6SXNT eXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAg Y2FzZSBfX05SX3NlbWN0bDoKK0BAIC04NTQsNyArODU1LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNTeXN0ZW1WU2VtYXBob3JlcyhpbgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorICAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor LSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82 NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2KQorIC8vIFRoZXNl IGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNh bmRib3guCisgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNu bykgeworICAgc3dpdGNoIChzeXNubykgeworQEAgLTg3MCw3ICs4NzIsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc1N5c3RlbVZTaGFyZWRNZW1vcnkoCisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzY0X0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV82NF9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcmlzY3YpCisgYm9v bCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubykgeworICAgc3dp dGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfbXNnY3RsOgorQEAgLTkwMSw3ICs5MDQsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5c25vCisgCisgYm9vbCBTeXNj YWxsU2V0czo6SXNBbnlTeXN0ZW1WKGludCBzeXNubykgeworICNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9C SVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2KQorICAgcmV0dXJuIElz U3lzdGVtVk1lc3NhZ2VRdWV1ZShzeXNubykgfHwgSXNTeXN0ZW1WU2VtYXBob3JlcyhzeXNubykg fHwKKyAgICAgICAgICBJc1N5c3RlbVZTaGFyZWRNZW1vcnkoc3lzbm8pOworICNlbGlmIGRlZmlu ZWQoX19pMzg2X18pIHx8IFwKK0BAIC05MzQsNyArOTM4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBZHZhbmNlZFNjaGVkdWxlcihpbgorIGJvb2wgU3lzY2FsbFNldHM6OklzSW5vdGlmeShpbnQg c3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2lub3RpZnlfYWRk X3dhdGNoOgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19hYXJj aDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9pbm90aWZ5X2luaXQ6 CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9pbm90aWZ5X2luaXQxOgorQEAgLTEwNjUsNyArMTA2 OSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKKyAjaWYgZGVmaW5l ZChfX3g4Nl82NF9fKQorICAgICBjYXNlIF9fTlJfdHV4Y2FsbDoKKyAjZW5kaWYKKy0jaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5l ZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfdnNlcnZlcjoKKyAjZW5kaWYKKyAgICAgICByZXR1 cm4gdHJ1ZTsKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3NldHMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUu Ny5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1 Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9zeXNjYWxsX3NldHMuaAorQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQg U3lzY2FsbFNldHMgeworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3Yp CisgICBzdGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pOwor ICNlbmRpZgorIAorQEAgLTcyLDE4ICs3MiwyMSBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNj YWxsU2V0cyB7CisgICBzdGF0aWMgYm9vbCBJc0FzeW5jSW8oaW50IHN5c25vKTsKKyAgIHN0YXRp YyBib29sIElzS2V5TWFuYWdlbWVudChpbnQgc3lzbm8pOworICNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9C SVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2KQorICAgc3RhdGljIGJv b2wgSXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pOworICNlbmRpZgorICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg XAorICAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChf X3Jpc2N2KQorICAgLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQg YnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KKyAgIHN0YXRpYyBib29sIElzU3lzdGVtVlNoYXJl ZE1lbW9yeShpbnQgc3lzbm8pOworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRT KSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfNjRfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Jpc2N2KQorICAgc3RhdGljIGJvb2wg SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBzeXNubyk7CisgI2VuZGlmCisgCitJbmRleDogcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVu Z2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3 aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3N5c2NhbGwuY2MKK0BAIC0xOCw3ICsxOCw3IEBAIG5hbWVzcGFjZSBzYW5kYm94IHsK KyBuYW1lc3BhY2UgeworIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRl ZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVk KEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSkKKyAvLyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkg dXNlZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMuCisgY29uc3QgaW50IGtJbnZhbGlkU3lzY2Fs bE51bWJlciA9IDB4MzUxZDM7CisgI2Vsc2UKK0BAIC0zMTIsNiArMzEyLDI4IEBAIGFzbSgvLyBX ZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVsbCB0aGUga2UKKyAgICAgIjI6cmV0XG4iCisgICAgICIu Y2ZpX2VuZHByb2NcbiIKKyAgICAgIi5zaXplIFN5c2NhbGxBc20sIC4tU3lzY2FsbEFzbVxuIgor KyNlbGlmIGRlZmluZWQoX19yaXNjdikKKysgICAgIi50ZXh0XG4iCisrICAgICIuYWxpZ24gMlxu IgorKyAgICAiLnR5cGUgU3lzY2FsbEFzbSwgJWZ1bmN0aW9uXG4iCisrICAgICJTeXNjYWxsQXNt OlxuIgorKyAgICAiLmNmaV9zdGFydHByb2NcbiIKKysgICAgImJnZXogYTAsMWZcbiIKKysgICAg ImxhIGEwLDJmXG4iCisrICAgICJqIDJmXG4iCisrICAgICIxOm12IGE3LCBhMFxuIgorKyAgICAi bGQgYTAsICh0MClcbiIKKysgICAgImxkIGExLCA4KHQwKVxuIgorKyAgICAibGQgYTIsIDE2KHQw KVxuIgorKyAgICAibGQgYTMsIDI0KHQwKVxuIgorKyAgICAibGQgYTQsIDMyKHQwKVxuIgorKyAg ICAibGQgYTUsIDQwKHQwKVxuIgorKyAgICAibGQgYTYsIDQ4KHQwKVxuIgorKyAgICAvLyBFbnRl ciB0aGUga2VybmVsCisrICAgICJzY2FsbFxuIgorKyAgICAiMjpyZXRcbiIKKysgICAgIi5jZmlf ZW5kcHJvY1xuIgorKyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCisgI2Vu ZGlmCisgICAgICk7ICAvLyBhc20KKyAKK0BAIC00MjksNiArNDUxLDE4IEBAIGludHB0cl90IFN5 c2NhbGw6OkNhbGwoaW50IG5yLAorICAgICByZXQgPSBpbm91dDsKKyAgIH0KKyAKKysjZWxpZiBk ZWZpbmVkKF9fcmlzY3YpCisrICBpbnRwdHJfdCByZXQ7CisrICB7CisrICAgIHJlZ2lzdGVyIGlu dHB0cl90IGlub3V0IF9fYXNtX18oImEwIikgPSBucjsKKysgICAgcmVnaXN0ZXIgY29uc3QgaW50 cHRyX3QqIGRhdGEgX19hc21fXygidDAiKSA9IGFyZ3M7CisrICAgIGFzbSB2b2xhdGlsZSgiamFs IFN5c2NhbGxBc21cbiIKKysgICAgICAgICAgICAgICAgIDogIityIihpbm91dCkKKysJCSA6ICJy IihkYXRhKQorKyAgICAgICAgICAgICAgICAgOiAibWVtb3J5IiwgImExIiwgImEyIiwgImEzIiwg ImE0IiwgImE1IiwgImE2Iik7CisrICAgIHJldCA9IGlub3V0OworKyAgfQorKworICNlbHNlCisg I2Vycm9yICJVbmltcGxlbWVudGVkIGFyY2hpdGVjdHVyZSIKKyAjZW5kaWYKK0luZGV4OiBxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRi b3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVu Z2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9jcmVkZW50aWFscy5jYworQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJvb3RUb1NhZmVF bXB0eURpcigpIHsKKyAgIHBpZF90IHBpZCA9IC0xOworICAgYWxpZ25hcygxNikgY2hhciBzdGFj a19idWZbUFRIUkVBRF9TVEFDS19NSU5dOworICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1J TFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8 fCBkZWZpbmVkKEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSkKKyAgIC8vIFRoZSBzdGFjayBncm93cyBk b3dud2FyZC4KKyAgIHZvaWQqIHN0YWNrID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0YWNrX2J1Zik7 CisgI2Vsc2UKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nl c3MuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcu b3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9i cm9rZXJfcHJvY2Vzcy5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJf cHJvY2Vzcy5jYworQEAgLTEyOCw0MyArMTI4LDQzIEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6SXNT eXNjYWxsQnJva2VyYWJsZSgKKyAgIC8vIGFuZCBhcmUgZGVmYXVsdCBkaXNhYmxlZCBpbiBBbmRy b2lkLiBTbywgd2Ugc2hvdWxkIHJlZnVzZSB0byBicm9rZXIgdGhlbQorICAgLy8gdG8gYmUgY29u c2lzdGVudCB3aXRoIHRoZSBwbGF0Zm9ybSdzIHJlc3RyaWN0aW9ucy4KKyAgIHN3aXRjaCAoc3lz bm8pIHsKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKE9TX0FORFJPSUQp CisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAh ZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfYWNjZXNzOgorICNlbmRpZgorICAgICBj YXNlIF9fTlJfZmFjY2Vzc2F0OgorICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBhbGxvd2Vk X2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfQUNDRVNTKTsKKyAKKy0jaWYgIWRlZmluZWQoX19h YXJjaDY0X18pICYmICFkZWZpbmVkKE9TX0FORFJPSUQpCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKSAmJiAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBj YXNlIF9fTlJfbWtkaXI6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9ta2RpcmF0OgorICAgICAg IHJldHVybiAhZmFzdF9jaGVjayB8fCBhbGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRf TUtESVIpOworIAorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoT1NfQU5E Uk9JRCkKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKE9TX0FORFJPSUQp ICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9vcGVuOgorICNlbmRpZgorICAg ICBjYXNlIF9fTlJfb3BlbmF0OgorICAgICAgIHJldHVybiAhZmFzdF9jaGVjayB8fCBhbGxvd2Vk X2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfT1BFTik7CisgCistI2lmICFkZWZpbmVkKF9fYWFy Y2g2NF9fKSAmJiAhZGVmaW5lZChPU19BTkRST0lEKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRf XykgJiYgIWRlZmluZWQoT1NfQU5EUk9JRCkgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgY2Fz ZSBfX05SX3JlYWRsaW5rOgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfcmVhZGxpbmthdDoKKyAg ICAgICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChDT01N QU5EX1JFQURMSU5LKTsKKyAKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVk KE9TX0FORFJPSUQpCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChPU19B TkRST0lEKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfcmVuYW1lOgorICNl bmRpZgorICAgICBjYXNlIF9fTlJfcmVuYW1lYXQ6CisgICAgIGNhc2UgX19OUl9yZW5hbWVhdDI6 CisgICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRlc3Qo Q09NTUFORF9SRU5BTUUpOworIAorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoT1NfQU5EUk9JRCkKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKE9T X0FORFJPSUQpICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl9ybWRpcjoKKyAg ICAgICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChDT01N QU5EX1JNRElSKTsKKyAjZW5kaWYKKyAKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFk ZWZpbmVkKE9TX0FORFJPSUQpCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5l ZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgICBjYXNlIF9fTlJfc3RhdDoK KyAgICAgY2FzZSBfX05SX2xzdGF0OgorICNlbmRpZgorQEAgLTE3NCw3ICsxNzQsNyBAQCBib29s IEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEJyb2tlcmFibGUoCisgI2lmIGRlZmluZWQoX19OUl9m c3RhdGF0NjQpCisgICAgIGNhc2UgX19OUl9mc3RhdGF0NjQ6CisgI2VuZGlmCistI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICAg IGNhc2UgX19OUl9uZXdmc3RhdGF0OgorICNlbmRpZgorICAgICAgIHJldHVybiAhZmFzdF9jaGVj ayB8fCBhbGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfU1RBVCk7CitAQCAtMTg5LDcg KzE4OSw3IEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQnJva2VyYWJsZSgKKyAgICAg ICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChDT01NQU5E X1NUQVQpOworICNlbmRpZgorIAorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmlu ZWQoT1NfQU5EUk9JRCkKKysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKE9T X0FORFJPSUQpICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNhc2UgX19OUl91bmxpbms6Cisg ICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09N TUFORF9VTkxJTkspOworICNlbmRpZgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3Jj LTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9saW51eF9zZWNjb21wLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvbGludXhfc2VjY29tcC5oCitAQCAtNDEsNiArNDEsOSBAQAorICNpZm5kZWYgRU1fQUFSQ0g2 NAorICNkZWZpbmUgRU1fQUFSQ0g2NCAxODMKKyAjZW5kaWYKKysjaWZuZGVmIEVNX1JJU0NWCisr I2RlZmluZSBFTV9SSVNDViAyNDMKKysjZW5kaWYKKyAKKyAjaWZuZGVmIF9fQVVESVRfQVJDSF82 NEJJVAorICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKK0BAIC03Myw2ICs3 Niw5IEBACisgI2lmbmRlZiBBVURJVF9BUkNIX0FBUkNINjQKKyAjZGVmaW5lIEFVRElUX0FSQ0hf QUFSQ0g2NCAoRU1fQUFSQ0g2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9M RSkKKyAjZW5kaWYKKysjaWZuZGVmIEFVRElUX0FSQ0hfUklTQ1Y2NAorKyNkZWZpbmUgQVVESVRf QVJDSF9SSVNDVjY0IChFTV9SSVNDVnxfX0FVRElUX0FSQ0hfNjRCSVR8X19BVURJVF9BUkNIX0xF KQorKyNlbmRpZgorIAorIC8vIEZvciBwcmN0bC5oCisgI2lmbmRlZiBQUl9TRVRfU0VDQ09NUAor SW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5o CisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCitAQCAtMTMs NyArMTMsNyBAQAorIC8vIChub3QgdW5kZWZpbmVkLCBidXQgZGVmaW5lZCBkaWZmZXJlbnQgdmFs dWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVtb3J5CisgLy8gbGF5b3V0cykuIFNvLCBmaWxsIHRoZSBn YXAgaGVyZS4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorIAorICNkZWZpbmUgTElO VVhfU0lHSFVQIDEKKyAjZGVmaW5lIExJTlVYX1NJR0lOVCAyCitJbmRleDogcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5l LWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N0YXQuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9saW51eF9zdGF0LmgKK0BAIC0xMzIsNyArMTMyLDcgQEAgc3RydWN0IGtlcm5l bF9zdGF0IHsKKyAgIGludCBzdF9ibG9ja3M7CisgICBpbnQgc3RfcGFkNFsxNF07CisgfTsKKy0j ZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX19yaXNjdikKKyBzdHJ1Y3Qga2VybmVsX3N0YXQgeworICAgdW5zaWduZWQgbG9u ZyBzdF9kZXY7CisgICB1bnNpZ25lZCBsb25nIHN0X2lubzsKK0luZGV4OiBxdHdlYmVuZ2luZS1l dmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5n aW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKKysrKyBxdHdlYmVuZ2lu ZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAorQEAgLTM1LDUgKzM1LDkgQEAKKyAj aW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxs cy5oIgorICNlbmRpZgorIAorKyNpZiBkZWZpbmVkKF9fcmlzY3YpICYmIF9fcmlzY3ZfeGxlbiA9 PSA2NAorKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3Jpc2N2NjRfbGlu dXhfc3lzY2FsbHMuaCIKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lT VEVNX0hFQURFUlNfTElOVVhfU1lTQ0FMTFNfSF8KKyAKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcmlzY3Y2NF9saW51eF9zeXNjYWxscy5oCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rl di9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3Jpc2N2NjRfbGludXhfc3lz Y2FsbHMuaAorQEAgLTAsMCArMSwxMDY2IEBACisrLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9t aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8v IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1JJU0NWNjRfTElOVVhfU1lTQ0FMTFNfSF8KKysjZGVmaW5lIFNBTkRCT1hf TElOVVhfU1lTVEVNX0hFQURFUlNfUklTQ1Y2NF9MSU5VWF9TWVNDQUxMU19IXworKworKyNpbmNs dWRlIDxhc20tZ2VuZXJpYy91bmlzdGQuaD4KKysKKysjaWYgIWRlZmluZWQoX19OUl9pb19zZXR1 cCkKKysjZGVmaW5lIF9fTlJfaW9fc2V0dXAgMAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX2lvX2Rlc3Ryb3kpCisrI2RlZmluZSBfX05SX2lvX2Rlc3Ryb3kgMQorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX2lvX3N1Ym1pdCkKKysjZGVmaW5lIF9fTlJfaW9fc3VibWl0IDIK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9pb19jYW5jZWwpCisrI2RlZmluZSBfX05S X2lvX2NhbmNlbCAzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfaW9fZ2V0ZXZlbnRz KQorKyNkZWZpbmUgX19OUl9pb19nZXRldmVudHMgNAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3NldHhhdHRyKQorKyNkZWZpbmUgX19OUl9zZXR4YXR0ciA1CisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfbHNldHhhdHRyKQorKyNkZWZpbmUgX19OUl9sc2V0eGF0dHIgNgor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZzZXR4YXR0cikKKysjZGVmaW5lIF9fTlJf ZnNldHhhdHRyIDcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXR4YXR0cikKKysj ZGVmaW5lIF9fTlJfZ2V0eGF0dHIgOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2xn ZXR4YXR0cikKKysjZGVmaW5lIF9fTlJfbGdldHhhdHRyIDkKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl9mZ2V0eGF0dHIpCisrI2RlZmluZSBfX05SX2ZnZXR4YXR0ciAxMAorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX2xpc3R4YXR0cikKKysjZGVmaW5lIF9fTlJfbGlzdHhh dHRyIDExCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbGxpc3R4YXR0cikKKysjZGVm aW5lIF9fTlJfbGxpc3R4YXR0ciAxMgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Zs aXN0eGF0dHIpCisrI2RlZmluZSBfX05SX2ZsaXN0eGF0dHIgMTMKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9yZW1vdmV4YXR0cikKKysjZGVmaW5lIF9fTlJfcmVtb3ZleGF0dHIgMTQK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9scmVtb3ZleGF0dHIpCisrI2RlZmluZSBf X05SX2xyZW1vdmV4YXR0ciAxNQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZyZW1v dmV4YXR0cikKKysjZGVmaW5lIF9fTlJfZnJlbW92ZXhhdHRyIDE2CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfZ2V0Y3dkKQorKyNkZWZpbmUgX19OUl9nZXRjd2QgMTcKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9sb29rdXBfZGNvb2tpZSkKKysjZGVmaW5lIF9fTlJfbG9v a3VwX2Rjb29raWUgMTgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9ldmVudGZkMikK KysjZGVmaW5lIF9fTlJfZXZlbnRmZDIgMTkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9lcG9sbF9jcmVhdGUxKQorKyNkZWZpbmUgX19OUl9lcG9sbF9jcmVhdGUxIDIwCisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfZXBvbGxfY3RsKQorKyNkZWZpbmUgX19OUl9lcG9sbF9j dGwgMjEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9lcG9sbF9wd2FpdCkKKysjZGVm aW5lIF9fTlJfZXBvbGxfcHdhaXQgMjIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9k dXApCisrI2RlZmluZSBfX05SX2R1cCAyMworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X2R1cDMpCisrI2RlZmluZSBfX05SX2R1cDMgMjQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9mY250bCkKKysjZGVmaW5lIF9fTlJfZmNudGwgMjUKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl9pbm90aWZ5X2luaXQxKQorKyNkZWZpbmUgX19OUl9pbm90aWZ5X2luaXQxIDI2 CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfaW5vdGlmeV9hZGRfd2F0Y2gpCisrI2Rl ZmluZSBfX05SX2lub3RpZnlfYWRkX3dhdGNoIDI3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfaW5vdGlmeV9ybV93YXRjaCkKKysjZGVmaW5lIF9fTlJfaW5vdGlmeV9ybV93YXRjaCAy OAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2lvY3RsKQorKyNkZWZpbmUgX19OUl9p b2N0bCAyOQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2lvcHJpb19zZXQpCisrI2Rl ZmluZSBfX05SX2lvcHJpb19zZXQgMzAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9p b3ByaW9fZ2V0KQorKyNkZWZpbmUgX19OUl9pb3ByaW9fZ2V0IDMxCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfZmxvY2spCisrI2RlZmluZSBfX05SX2Zsb2NrIDMyCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfbWtub2RhdCkKKysjZGVmaW5lIF9fTlJfbWtub2RhdCAzMwor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21rZGlyYXQpCisrI2RlZmluZSBfX05SX21r ZGlyYXQgMzQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl91bmxpbmthdCkKKysjZGVm aW5lIF9fTlJfdW5saW5rYXQgMzUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zeW1s aW5rYXQpCisrI2RlZmluZSBfX05SX3N5bWxpbmthdCAzNgorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX2xpbmthdCkKKysjZGVmaW5lIF9fTlJfbGlua2F0IDM3CisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfcmVuYW1lYXQpCisrI2RlZmluZSBfX05SX3JlbmFtZWF0IDM4Cisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdW1vdW50MikKKysjZGVmaW5lIF9fTlJfdW1v dW50MiAzOQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21vdW50KQorKyNkZWZpbmUg X19OUl9tb3VudCA0MAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Bpdm90X3Jvb3Qp CisrI2RlZmluZSBfX05SX3Bpdm90X3Jvb3QgNDEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9uZnNzZXJ2Y3RsKQorKyNkZWZpbmUgX19OUl9uZnNzZXJ2Y3RsIDQyCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfc3RhdGZzKQorKyNkZWZpbmUgX19OUl9zdGF0ZnMgNDMKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mc3RhdGZzKQorKyNkZWZpbmUgX19OUl9mc3Rh dGZzIDQ0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdHJ1bmNhdGUpCisrI2RlZmlu ZSBfX05SX3RydW5jYXRlIDQ1CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZnRydW5j YXRlKQorKyNkZWZpbmUgX19OUl9mdHJ1bmNhdGUgNDYKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9mYWxsb2NhdGUpCisrI2RlZmluZSBfX05SX2ZhbGxvY2F0ZSA0NworKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX2ZhY2Nlc3NhdCkKKysjZGVmaW5lIF9fTlJfZmFjY2Vzc2F0 IDQ4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfY2hkaXIpCisrI2RlZmluZSBfX05S X2NoZGlyIDQ5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZmNoZGlyKQorKyNkZWZp bmUgX19OUl9mY2hkaXIgNTAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9jaHJvb3Qp CisrI2RlZmluZSBfX05SX2Nocm9vdCA1MQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X2ZjaG1vZCkKKysjZGVmaW5lIF9fTlJfZmNobW9kIDUyCisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfZmNobW9kYXQpCisrI2RlZmluZSBfX05SX2ZjaG1vZGF0IDUzCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfZmNob3duYXQpCisrI2RlZmluZSBfX05SX2ZjaG93bmF0IDU0 CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZmNob3duKQorKyNkZWZpbmUgX19OUl9m Y2hvd24gNTUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9vcGVuYXQpCisrI2RlZmlu ZSBfX05SX29wZW5hdCA1NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Nsb3NlKQor KyNkZWZpbmUgX19OUl9jbG9zZSA1NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Zo YW5ndXApCisrI2RlZmluZSBfX05SX3ZoYW5ndXAgNTgKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9waXBlMikKKysjZGVmaW5lIF9fTlJfcGlwZTIgNTkKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9xdW90YWN0bCkKKysjZGVmaW5lIF9fTlJfcXVvdGFjdGwgNjAKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRkZW50czY0KQorKyNkZWZpbmUgX19OUl9nZXRk ZW50czY0IDYxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbHNlZWspCisrI2RlZmlu ZSBfX05SX2xzZWVrIDYyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcmVhZCkKKysj ZGVmaW5lIF9fTlJfcmVhZCA2MworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3dyaXRl KQorKyNkZWZpbmUgX19OUl93cml0ZSA2NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X3JlYWR2KQorKyNkZWZpbmUgX19OUl9yZWFkdiA2NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3dyaXRldikKKysjZGVmaW5lIF9fTlJfd3JpdGV2IDY2CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfcHJlYWQ2NCkKKysjZGVmaW5lIF9fTlJfcHJlYWQ2NCA2NworKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX3B3cml0ZTY0KQorKyNkZWZpbmUgX19OUl9wd3JpdGU2 NCA2OAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3ByZWFkdikKKysjZGVmaW5lIF9f TlJfcHJlYWR2IDY5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcHdyaXRldikKKysj ZGVmaW5lIF9fTlJfcHdyaXRldiA3MAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Nl bmRmaWxlKQorKyNkZWZpbmUgX19OUl9zZW5kZmlsZSA3MQorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX3BzZWxlY3Q2KQorKyNkZWZpbmUgX19OUl9wc2VsZWN0NiA3MgorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX3Bwb2xsKQorKyNkZWZpbmUgX19OUl9wcG9sbCA3MworKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NpZ25hbGZkNCkKKysjZGVmaW5lIF9fTlJfc2ln bmFsZmQ0IDc0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdm1zcGxpY2UpCisrI2Rl ZmluZSBfX05SX3Ztc3BsaWNlIDc1CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc3Bs aWNlKQorKyNkZWZpbmUgX19OUl9zcGxpY2UgNzYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl90ZWUpCisrI2RlZmluZSBfX05SX3RlZSA3NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3JlYWRsaW5rYXQpCisrI2RlZmluZSBfX05SX3JlYWRsaW5rYXQgNzgKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9uZXdmc3RhdGF0KQorKyNkZWZpbmUgX19OUl9uZXdmc3Rh dGF0IDc5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZnN0YXQpCisrI2RlZmluZSBf X05SX2ZzdGF0IDgwCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc3luYykKKysjZGVm aW5lIF9fTlJfc3luYyA4MQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2ZzeW5jKQor KyNkZWZpbmUgX19OUl9mc3luYyA4MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Zk YXRhc3luYykKKysjZGVmaW5lIF9fTlJfZmRhdGFzeW5jIDgzCisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfc3luY19maWxlX3JhbmdlKQorKyNkZWZpbmUgX19OUl9zeW5jX2ZpbGVfcmFu Z2UgODQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl90aW1lcmZkX2NyZWF0ZSkKKysj ZGVmaW5lIF9fTlJfdGltZXJmZF9jcmVhdGUgODUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl90aW1lcmZkX3NldHRpbWUpCisrI2RlZmluZSBfX05SX3RpbWVyZmRfc2V0dGltZSA4Ngor KyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3RpbWVyZmRfZ2V0dGltZSkKKysjZGVmaW5l IF9fTlJfdGltZXJmZF9nZXR0aW1lIDg3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf dXRpbWVuc2F0KQorKyNkZWZpbmUgX19OUl91dGltZW5zYXQgODgKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9hY2N0KQorKyNkZWZpbmUgX19OUl9hY2N0IDg5CisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfY2FwZ2V0KQorKyNkZWZpbmUgX19OUl9jYXBnZXQgOTAKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9jYXBzZXQpCisrI2RlZmluZSBfX05SX2NhcHNldCA5 MQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3BlcnNvbmFsaXR5KQorKyNkZWZpbmUg X19OUl9wZXJzb25hbGl0eSA5MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2V4aXQp CisrI2RlZmluZSBfX05SX2V4aXQgOTMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9l eGl0X2dyb3VwKQorKyNkZWZpbmUgX19OUl9leGl0X2dyb3VwIDk0CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfd2FpdGlkKQorKyNkZWZpbmUgX19OUl93YWl0aWQgOTUKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRfdGlkX2FkZHJlc3MpCisrI2RlZmluZSBfX05SX3Nl dF90aWRfYWRkcmVzcyA5NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Vuc2hhcmUp CisrI2RlZmluZSBfX05SX3Vuc2hhcmUgOTcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9mdXRleCkKKysjZGVmaW5lIF9fTlJfZnV0ZXggOTgKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl9zZXRfcm9idXN0X2xpc3QpCisrI2RlZmluZSBfX05SX3NldF9yb2J1c3RfbGlzdCA5 OQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldF9yb2J1c3RfbGlzdCkKKysjZGVm aW5lIF9fTlJfZ2V0X3JvYnVzdF9saXN0IDEwMAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX25hbm9zbGVlcCkKKysjZGVmaW5lIF9fTlJfbmFub3NsZWVwIDEwMQorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX2dldGl0aW1lcikKKysjZGVmaW5lIF9fTlJfZ2V0aXRpbWVyIDEw MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldGl0aW1lcikKKysjZGVmaW5lIF9f TlJfc2V0aXRpbWVyIDEwMworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2tleGVjX2xv YWQpCisrI2RlZmluZSBfX05SX2tleGVjX2xvYWQgMTA0CisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfaW5pdF9tb2R1bGUpCisrI2RlZmluZSBfX05SX2luaXRfbW9kdWxlIDEwNQorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2RlbGV0ZV9tb2R1bGUpCisrI2RlZmluZSBfX05S X2RlbGV0ZV9tb2R1bGUgMTA2CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdGltZXJf Y3JlYXRlKQorKyNkZWZpbmUgX19OUl90aW1lcl9jcmVhdGUgMTA3CisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfdGltZXJfZ2V0dGltZSkKKysjZGVmaW5lIF9fTlJfdGltZXJfZ2V0dGlt ZSAxMDgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl90aW1lcl9nZXRvdmVycnVuKQor KyNkZWZpbmUgX19OUl90aW1lcl9nZXRvdmVycnVuIDEwOQorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX3RpbWVyX3NldHRpbWUpCisrI2RlZmluZSBfX05SX3RpbWVyX3NldHRpbWUgMTEw CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfdGltZXJfZGVsZXRlKQorKyNkZWZpbmUg X19OUl90aW1lcl9kZWxldGUgMTExCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfY2xv Y2tfc2V0dGltZSkKKysjZGVmaW5lIF9fTlJfY2xvY2tfc2V0dGltZSAxMTIKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl9jbG9ja19nZXR0aW1lKQorKyNkZWZpbmUgX19OUl9jbG9ja19n ZXR0aW1lIDExMworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2Nsb2NrX2dldHJlcykK KysjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzIDExNAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX2Nsb2NrX25hbm9zbGVlcCkKKysjZGVmaW5lIF9fTlJfY2xvY2tfbmFub3NsZWVwIDEx NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3N5c2xvZykKKysjZGVmaW5lIF9fTlJf c3lzbG9nIDExNgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3B0cmFjZSkKKysjZGVm aW5lIF9fTlJfcHRyYWNlIDExNworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NjaGVk X3NldHBhcmFtKQorKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRwYXJhbSAxMTgKKysjZW5kaWYKKysK KysjaWYgIWRlZmluZWQoX19OUl9zY2hlZF9zZXRzY2hlZHVsZXIpCisrI2RlZmluZSBfX05SX3Nj aGVkX3NldHNjaGVkdWxlciAxMTkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zY2hl ZF9nZXRzY2hlZHVsZXIpCisrI2RlZmluZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlciAxMjAKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zY2hlZF9nZXRwYXJhbSkKKysjZGVmaW5lIF9f TlJfc2NoZWRfZ2V0cGFyYW0gMTIxCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2No ZWRfc2V0YWZmaW5pdHkpCisrI2RlZmluZSBfX05SX3NjaGVkX3NldGFmZmluaXR5IDEyMgorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NjaGVkX2dldGFmZmluaXR5KQorKyNkZWZpbmUg X19OUl9zY2hlZF9nZXRhZmZpbml0eSAxMjMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9zY2hlZF95aWVsZCkKKysjZGVmaW5lIF9fTlJfc2NoZWRfeWllbGQgMTI0CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCkKKysjZGVmaW5lIF9f TlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCAxMjUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWluKQorKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJp b3JpdHlfbWluIDEyNgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NjaGVkX3JyX2dl dF9pbnRlcnZhbCkKKysjZGVmaW5lIF9fTlJfc2NoZWRfcnJfZ2V0X2ludGVydmFsIDEyNworKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3Jlc3RhcnRfc3lzY2FsbCkKKysjZGVmaW5lIF9f TlJfcmVzdGFydF9zeXNjYWxsIDEyOAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2tp bGwpCisrI2RlZmluZSBfX05SX2tpbGwgMTI5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfdGtpbGwpCisrI2RlZmluZSBfX05SX3RraWxsIDEzMAorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX3Rna2lsbCkKKysjZGVmaW5lIF9fTlJfdGdraWxsIDEzMQorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX3NpZ2FsdHN0YWNrKQorKyNkZWZpbmUgX19OUl9zaWdhbHRzdGFj ayAxMzIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9ydF9zaWdzdXNwZW5kKQorKyNk ZWZpbmUgX19OUl9ydF9zaWdzdXNwZW5kIDEzMworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX3J0X3NpZ2FjdGlvbikKKysjZGVmaW5lIF9fTlJfcnRfc2lnYWN0aW9uIDEzNAorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX3J0X3NpZ3Byb2NtYXNrKQorKyNkZWZpbmUgX19OUl9y dF9zaWdwcm9jbWFzayAxMzUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9ydF9zaWdw ZW5kaW5nKQorKyNkZWZpbmUgX19OUl9ydF9zaWdwZW5kaW5nIDEzNgorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX3J0X3NpZ3RpbWVkd2FpdCkKKysjZGVmaW5lIF9fTlJfcnRfc2lndGlt ZWR3YWl0IDEzNworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3J0X3NpZ3F1ZXVlaW5m bykKKysjZGVmaW5lIF9fTlJfcnRfc2lncXVldWVpbmZvIDEzOAorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX3J0X3NpZ3JldHVybikKKysjZGVmaW5lIF9fTlJfcnRfc2lncmV0dXJuIDEz OQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldHByaW9yaXR5KQorKyNkZWZpbmUg X19OUl9zZXRwcmlvcml0eSAxNDAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRw cmlvcml0eSkKKysjZGVmaW5lIF9fTlJfZ2V0cHJpb3JpdHkgMTQxCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfcmVib290KQorKyNkZWZpbmUgX19OUl9yZWJvb3QgMTQyCisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0cmVnaWQpCisrI2RlZmluZSBfX05SX3NldHJlZ2lk IDE0MworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldGdpZCkKKysjZGVmaW5lIF9f TlJfc2V0Z2lkIDE0NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldHJldWlkKQor KyNkZWZpbmUgX19OUl9zZXRyZXVpZCAxNDUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9zZXR1aWQpCisrI2RlZmluZSBfX05SX3NldHVpZCAxNDYKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl9zZXRyZXN1aWQpCisrI2RlZmluZSBfX05SX3NldHJlc3VpZCAxNDcKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRyZXN1aWQpCisrI2RlZmluZSBfX05SX2dldHJl c3VpZCAxNDgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRyZXNnaWQpCisrI2Rl ZmluZSBfX05SX3NldHJlc2dpZCAxNDkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9n ZXRyZXNnaWQpCisrI2RlZmluZSBfX05SX2dldHJlc2dpZCAxNTAKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9zZXRmc3VpZCkKKysjZGVmaW5lIF9fTlJfc2V0ZnN1aWQgMTUxCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0ZnNnaWQpCisrI2RlZmluZSBfX05SX3NldGZz Z2lkIDE1MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3RpbWVzKQorKyNkZWZpbmUg X19OUl90aW1lcyAxNTMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRwZ2lkKQor KyNkZWZpbmUgX19OUl9zZXRwZ2lkIDE1NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05S X2dldHBnaWQpCisrI2RlZmluZSBfX05SX2dldHBnaWQgMTU1CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfZ2V0c2lkKQorKyNkZWZpbmUgX19OUl9nZXRzaWQgMTU2CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfc2V0c2lkKQorKyNkZWZpbmUgX19OUl9zZXRzaWQgMTU3Cisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0Z3JvdXBzKQorKyNkZWZpbmUgX19OUl9n ZXRncm91cHMgMTU4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0Z3JvdXBzKQor KyNkZWZpbmUgX19OUl9zZXRncm91cHMgMTU5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9f TlJfdW5hbWUpCisrI2RlZmluZSBfX05SX3VuYW1lIDE2MAorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX3NldGhvc3RuYW1lKQorKyNkZWZpbmUgX19OUl9zZXRob3N0bmFtZSAxNjEKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zZXRkb21haW5uYW1lKQorKyNkZWZpbmUgX19O Ul9zZXRkb21haW5uYW1lIDE2MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldHJs aW1pdCkKKysjZGVmaW5lIF9fTlJfZ2V0cmxpbWl0IDE2MworKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX3NldHJsaW1pdCkKKysjZGVmaW5lIF9fTlJfc2V0cmxpbWl0IDE2NAorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldHJ1c2FnZSkKKysjZGVmaW5lIF9fTlJfZ2V0cnVz YWdlIDE2NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3VtYXNrKQorKyNkZWZpbmUg X19OUl91bWFzayAxNjYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9wcmN0bCkKKysj ZGVmaW5lIF9fTlJfcHJjdGwgMTY3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0 Y3B1KQorKyNkZWZpbmUgX19OUl9nZXRjcHUgMTY4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfZ2V0dGltZW9mZGF5KQorKyNkZWZpbmUgX19OUl9nZXR0aW1lb2ZkYXkgMTY5CisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0dGltZW9mZGF5KQorKyNkZWZpbmUgX19OUl9z ZXR0aW1lb2ZkYXkgMTcwCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfYWRqdGltZXgp CisrI2RlZmluZSBfX05SX2FkanRpbWV4IDE3MQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX2dldHBpZCkKKysjZGVmaW5lIF9fTlJfZ2V0cGlkIDE3MgorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX2dldHBwaWQpCisrI2RlZmluZSBfX05SX2dldHBwaWQgMTczCisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0dWlkKQorKyNkZWZpbmUgX19OUl9nZXR1aWQgMTc0 CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0ZXVpZCkKKysjZGVmaW5lIF9fTlJf Z2V0ZXVpZCAxNzUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRnaWQpCisrI2Rl ZmluZSBfX05SX2dldGdpZCAxNzYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRl Z2lkKQorKyNkZWZpbmUgX19OUl9nZXRlZ2lkIDE3NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX2dldHRpZCkKKysjZGVmaW5lIF9fTlJfZ2V0dGlkIDE3OAorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX3N5c2luZm8pCisrI2RlZmluZSBfX05SX3N5c2luZm8gMTc5CisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfbXFfb3BlbikKKysjZGVmaW5lIF9fTlJfbXFfb3Bl biAxODAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tcV91bmxpbmspCisrI2RlZmlu ZSBfX05SX21xX3VubGluayAxODEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tcV90 aW1lZHNlbmQpCisrI2RlZmluZSBfX05SX21xX3RpbWVkc2VuZCAxODIKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl9tcV90aW1lZHJlY2VpdmUpCisrI2RlZmluZSBfX05SX21xX3RpbWVk cmVjZWl2ZSAxODMKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tcV9ub3RpZnkpCisr I2RlZmluZSBfX05SX21xX25vdGlmeSAxODQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19O Ul9tcV9nZXRzZXRhdHRyKQorKyNkZWZpbmUgX19OUl9tcV9nZXRzZXRhdHRyIDE4NQorKyNlbmRp ZgorKworKyNpZiAhZGVmaW5lZChfX05SX21zZ2dldCkKKysjZGVmaW5lIF9fTlJfbXNnZ2V0IDE4 NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21zZ2N0bCkKKysjZGVmaW5lIF9fTlJf bXNnY3RsIDE4NworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21zZ3JjdikKKysjZGVm aW5lIF9fTlJfbXNncmN2IDE4OAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21zZ3Nu ZCkKKysjZGVmaW5lIF9fTlJfbXNnc25kIDE4OQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX3NlbWdldCkKKysjZGVmaW5lIF9fTlJfc2VtZ2V0IDE5MAorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX3NlbWN0bCkKKysjZGVmaW5lIF9fTlJfc2VtY3RsIDE5MQorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX3NlbXRpbWVkb3ApCisrI2RlZmluZSBfX05SX3NlbXRpbWVk b3AgMTkyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2Vtb3ApCisrI2RlZmluZSBf X05SX3NlbW9wIDE5MworKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NobWdldCkKKysj ZGVmaW5lIF9fTlJfc2htZ2V0IDE5NAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3No bWN0bCkKKysjZGVmaW5lIF9fTlJfc2htY3RsIDE5NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX3NobWF0KQorKyNkZWZpbmUgX19OUl9zaG1hdCAxOTYKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9zaG1kdCkKKysjZGVmaW5lIF9fTlJfc2htZHQgMTk3CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfc29ja2V0KQorKyNkZWZpbmUgX19OUl9zb2NrZXQgMTk4Cisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc29ja2V0cGFpcikKKysjZGVmaW5lIF9fTlJf c29ja2V0cGFpciAxOTkKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9iaW5kKQorKyNk ZWZpbmUgX19OUl9iaW5kIDIwMAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2xpc3Rl bikKKysjZGVmaW5lIF9fTlJfbGlzdGVuIDIwMQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX2FjY2VwdCkKKysjZGVmaW5lIF9fTlJfYWNjZXB0IDIwMgorKyNlbmRpZgorKworKyNpZiAh ZGVmaW5lZChfX05SX2Nvbm5lY3QpCisrI2RlZmluZSBfX05SX2Nvbm5lY3QgMjAzCisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfZ2V0c29ja25hbWUpCisrI2RlZmluZSBfX05SX2dldHNv Y2tuYW1lIDIwNAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX2dldHBlZXJuYW1lKQor KyNkZWZpbmUgX19OUl9nZXRwZWVybmFtZSAyMDUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQo X19OUl9zZW5kdG8pCisrI2RlZmluZSBfX05SX3NlbmR0byAyMDYKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9yZWN2ZnJvbSkKKysjZGVmaW5lIF9fTlJfcmVjdmZyb20gMjA3CisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2V0c29ja29wdCkKKysjZGVmaW5lIF9fTlJfc2V0 c29ja29wdCAyMDgKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9nZXRzb2Nrb3B0KQor KyNkZWZpbmUgX19OUl9nZXRzb2Nrb3B0IDIwOQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX3NodXRkb3duKQorKyNkZWZpbmUgX19OUl9zaHV0ZG93biAyMTAKKysjZW5kaWYKKysKKysj aWYgIWRlZmluZWQoX19OUl9zZW5kbXNnKQorKyNkZWZpbmUgX19OUl9zZW5kbXNnIDIxMQorKyNl bmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlY3Ztc2cpCisrI2RlZmluZSBfX05SX3JlY3Zt c2cgMjEyCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcmVhZGFoZWFkKQorKyNkZWZp bmUgX19OUl9yZWFkYWhlYWQgMjEzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfYnJr KQorKyNkZWZpbmUgX19OUl9icmsgMjE0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf bXVubWFwKQorKyNkZWZpbmUgX19OUl9tdW5tYXAgMjE1CisrI2VuZGlmCisrCisrI2lmICFkZWZp bmVkKF9fTlJfbXJlbWFwKQorKyNkZWZpbmUgX19OUl9tcmVtYXAgMjE2CisrI2VuZGlmCisrCisr I2lmICFkZWZpbmVkKF9fTlJfYWRkX2tleSkKKysjZGVmaW5lIF9fTlJfYWRkX2tleSAyMTcKKysj ZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9yZXF1ZXN0X2tleSkKKysjZGVmaW5lIF9fTlJf cmVxdWVzdF9rZXkgMjE4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfa2V5Y3RsKQor KyNkZWZpbmUgX19OUl9rZXljdGwgMjE5CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf Y2xvbmUpCisrI2RlZmluZSBfX05SX2Nsb25lIDIyMAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5l ZChfX05SX2V4ZWN2ZSkKKysjZGVmaW5lIF9fTlJfZXhlY3ZlIDIyMQorKyNlbmRpZgorKworKyNp ZiAhZGVmaW5lZChfX05SX21tYXApCisrI2RlZmluZSBfX05SX21tYXAgMjIyCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfZmFkdmlzZTY0KQorKyNkZWZpbmUgX19OUl9mYWR2aXNlNjQg MjIzCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc3dhcG9uKQorKyNkZWZpbmUgX19O Ul9zd2Fwb24gMjI0CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc3dhcG9mZikKKysj ZGVmaW5lIF9fTlJfc3dhcG9mZiAyMjUKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9t cHJvdGVjdCkKKysjZGVmaW5lIF9fTlJfbXByb3RlY3QgMjI2CisrI2VuZGlmCisrCisrI2lmICFk ZWZpbmVkKF9fTlJfbXN5bmMpCisrI2RlZmluZSBfX05SX21zeW5jIDIyNworKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX21sb2NrKQorKyNkZWZpbmUgX19OUl9tbG9jayAyMjgKKysjZW5k aWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tdW5sb2NrKQorKyNkZWZpbmUgX19OUl9tdW5sb2Nr IDIyOQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX21sb2NrYWxsKQorKyNkZWZpbmUg X19OUl9tbG9ja2FsbCAyMzAKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9tdW5sb2Nr YWxsKQorKyNkZWZpbmUgX19OUl9tdW5sb2NrYWxsIDIzMQorKyNlbmRpZgorKworKyNpZiAhZGVm aW5lZChfX05SX21pbmNvcmUpCisrI2RlZmluZSBfX05SX21pbmNvcmUgMjMyCisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfbWFkdmlzZSkKKysjZGVmaW5lIF9fTlJfbWFkdmlzZSAyMzMK KysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9yZW1hcF9maWxlX3BhZ2VzKQorKyNkZWZp bmUgX19OUl9yZW1hcF9maWxlX3BhZ2VzIDIzNAorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChf X05SX21iaW5kKQorKyNkZWZpbmUgX19OUl9tYmluZCAyMzUKKysjZW5kaWYKKysKKysjaWYgIWRl ZmluZWQoX19OUl9nZXRfbWVtcG9saWN5KQorKyNkZWZpbmUgX19OUl9nZXRfbWVtcG9saWN5IDIz NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NldF9tZW1wb2xpY3kpCisrI2RlZmlu ZSBfX05SX3NldF9tZW1wb2xpY3kgMjM3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJf bWlncmF0ZV9wYWdlcykKKysjZGVmaW5lIF9fTlJfbWlncmF0ZV9wYWdlcyAyMzgKKysjZW5kaWYK KysKKysjaWYgIWRlZmluZWQoX19OUl9tb3ZlX3BhZ2VzKQorKyNkZWZpbmUgX19OUl9tb3ZlX3Bh Z2VzIDIzOQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3J0X3Rnc2lncXVldWVpbmZv KQorKyNkZWZpbmUgX19OUl9ydF90Z3NpZ3F1ZXVlaW5mbyAyNDAKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9wZXJmX2V2ZW50X29wZW4pCisrI2RlZmluZSBfX05SX3BlcmZfZXZlbnRf b3BlbiAyNDEKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9hY2NlcHQ0KQorKyNkZWZp bmUgX19OUl9hY2NlcHQ0IDI0MgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlY3Zt bXNnKQorKyNkZWZpbmUgX19OUl9yZWN2bW1zZyAyNDMKKysjZW5kaWYKKysKKysjaWYgIWRlZmlu ZWQoX19OUl93YWl0NCkKKysjZGVmaW5lIF9fTlJfd2FpdDQgMjYwCisrI2VuZGlmCisrCisrI2lm ICFkZWZpbmVkKF9fTlJfcHJsaW1pdDY0KQorKyNkZWZpbmUgX19OUl9wcmxpbWl0NjQgMjYxCisr I2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZmFub3RpZnlfaW5pdCkKKysjZGVmaW5lIF9f TlJfZmFub3RpZnlfaW5pdCAyNjIKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9mYW5v dGlmeV9tYXJrKQorKyNkZWZpbmUgX19OUl9mYW5vdGlmeV9tYXJrIDI2MworKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX25hbWVfdG9faGFuZGxlX2F0KQorKyNkZWZpbmUgX19OUl9uYW1l X3RvX2hhbmRsZV9hdCAyNjQKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9vcGVuX2J5 X2hhbmRsZV9hdCkKKysjZGVmaW5lIF9fTlJfb3Blbl9ieV9oYW5kbGVfYXQgMjY1CisrI2VuZGlm CisrCisrI2lmICFkZWZpbmVkKF9fTlJfY2xvY2tfYWRqdGltZSkKKysjZGVmaW5lIF9fTlJfY2xv Y2tfYWRqdGltZSAyNjYKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9zeW5jZnMpCisr I2RlZmluZSBfX05SX3N5bmNmcyAyNjcKKysjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19OUl9z ZXRucykKKysjZGVmaW5lIF9fTlJfc2V0bnMgMjY4CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfc2VuZG1tc2cpCisrI2RlZmluZSBfX05SX3NlbmRtbXNnIDI2OQorKyNlbmRpZgorKwor KyNpZiAhZGVmaW5lZChfX05SX3Byb2Nlc3Nfdm1fcmVhZHYpCisrI2RlZmluZSBfX05SX3Byb2Nl c3Nfdm1fcmVhZHYgMjcwCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfcHJvY2Vzc192 bV93cml0ZXYpCisrI2RlZmluZSBfX05SX3Byb2Nlc3Nfdm1fd3JpdGV2IDI3MQorKyNlbmRpZgor KworKyNpZiAhZGVmaW5lZChfX05SX2tjbXApCisrI2RlZmluZSBfX05SX2tjbXAgMjcyCisrI2Vu ZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfZmluaXRfbW9kdWxlKQorKyNkZWZpbmUgX19OUl9m aW5pdF9tb2R1bGUgMjczCisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVkKF9fTlJfc2NoZWRfc2V0 YXR0cikKKysjZGVmaW5lIF9fTlJfc2NoZWRfc2V0YXR0ciAyNzQKKysjZW5kaWYKKysKKysjaWYg IWRlZmluZWQoX19OUl9zY2hlZF9nZXRhdHRyKQorKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRhdHRy IDI3NQorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3JlbmFtZWF0MikKKysjZGVmaW5l IF9fTlJfcmVuYW1lYXQyIDI3NgorKyNlbmRpZgorKworKyNpZiAhZGVmaW5lZChfX05SX3NlY2Nv bXApCisrI2RlZmluZSBfX05SX3NlY2NvbXAgMjc3CisrI2VuZGlmCisrCisrI2lmICFkZWZpbmVk KF9fTlJfZ2V0cmFuZG9tKQorKyNkZWZpbmUgX19OUl9nZXRyYW5kb20gMjc4CisrI2VuZGlmCisr CisrI2lmICFkZWZpbmVkKF9fTlJfbWVtZmRfY3JlYXRlKQorKyNkZWZpbmUgX19OUl9tZW1mZF9j cmVhdGUgMjc5CisrI2VuZGlmCisrCisrI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9I RUFERVJTX1JJU0NWNjRfTElOVVhfU1lTQ0FMTFNfSF8KK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xp bnV4L2JwZl9jcm9zX2FtZF9ncHVfcG9saWN5X2xpbnV4LmNjCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9jcm9zX2FtZF9ncHVfcG9saWN5X2xpbnV4LmNjCisr KysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfY3Jvc19hbWRfZ3B1X3BvbGljeV9saW51eC5jYwor QEAgLTM4LDcgKzM4LDcgQEAgUmVzdWx0RXhwciBDcm9zQW1kR3B1UHJvY2Vzc1BvbGljeTo6RXZh bAorICAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorICAgICBjYXNlIF9fTlJfc3lz aW5mbzoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykK KysjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIGNh c2UgX19OUl9yZWFkbGluazoKKyAgICAgY2FzZSBfX05SX3N0YXQ6CisgI2VuZGlmCitJbmRleDog cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L3BvbGljeS9saW51eC9icGZfZ3B1X3BvbGljeV9saW51eC5jYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfZ3B1X3BvbGljeV9saW51eC5jYworKysr IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9wb2xpY3kvbGludXgvYnBmX2dwdV9wb2xpY3lfbGludXguY2MKK0BAIC03MCw3ICs3 MCw3IEBAIFJlc3VsdEV4cHIgR3B1UHJvY2Vzc1BvbGljeTo6RXZhbHVhdGVTeXMKKyAgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp CisgICAgIGNhc2UgX19OUl9mdHJ1bmNhdGU2NDoKKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19h YXJjaDY0X18pCisrI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Jpc2N2 KQorICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9nZXRk ZW50czY0OgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvc2FuZGJveF9zZWNjb21wX2JwZl9s aW51eC5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUu Ny5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9zYW5kYm94 X3NlY2NvbXBfYnBmX2xpbnV4LmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4x NS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L3BvbGljeS9saW51eC9zYW5kYm94X3Nl Y2NvbXBfYnBmX2xpbnV4LmNjCitAQCAtNjQsNyArNjQsNyBAQCB1c2luZyBzYW5kYm94OjpicGZf ZHNsOjpSZXN1bHRFeHByOworIAorIC8vIE1ha2Ugc3VyZSB0aGF0IHNlY2NvbXAtYnBmIGRvZXMg bm90IGdldCBkaXNhYmxlZCBieSBtaXN0YWtlLiBBbHNvIG1ha2Ugc3VyZQorIC8vIHRoYXQgd2Ug dGhpbmsgdHdpY2UgYWJvdXQgdGhpcyB3aGVuIGFkZGluZyBhIG5ldyBhcmNoaXRlY3R1cmUuCist I2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRF TCkKKysjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX01J UFM2NEVMKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9SSVNDVjY0KQorICNlcnJvciAiU2VjY29tcC1i cGYgZGlzYWJsZWQgb24gc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSEiCisgI2VuZGlmICAvLyAhZGVm aW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfTUlQUzY0RUwpCisgCitJ bmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9za2lhL0JVSUxELmduCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NraWEvQlVJTEQuZ24KKysr KyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NraWEvQlVJTEQuZ24KK0BAIC04MjEsNiArODIxLDggQEAgc2tpYV9zb3VyY2Vfc2V0KCJza2lh X29wdHMiKSB7CisgICAgIHNvdXJjZXMgPSBza2lhX29wdHMubm9uZV9zb3VyY2VzCisgICB9IGVs c2UgaWYgKGN1cnJlbnRfY3B1ID09ICJzMzkweCIpIHsKKyAgICAgc291cmNlcyA9IHNraWFfb3B0 cy5ub25lX3NvdXJjZXMKKysgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInJpc2N2NjQiKSB7 CisrICAgIHNvdXJjZXMgPSBza2lhX29wdHMubm9uZV9zb3VyY2VzCisgICB9IGVsc2UgeworICAg ICBhc3NlcnQoZmFsc2UsICJOZWVkIHRvIHBvcnQgY3B1IHNwZWNpZmljIHN0dWZmIGZyb20gc2tp YV9saWJyYXJ5X29wdHMuZ3lwIikKKyAgIH0KK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL2duaS9h bmdsZS5nbmkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1 Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvZ25pL2FuZ2xl LmduaQorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvZ25pL2FuZ2xlLmduaQorQEAgLTU0LDcgKzU0LDcg QEAgYW5nbGVfZGF0YV9kaXIgPSAiYW5nbGVkYXRhIgorIGRlY2xhcmVfYXJncygpIHsKKyAgIGlm IChjdXJyZW50X2NwdSA9PSAiYXJtNjQiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiIHx8CisgICAg ICAgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIiB8fCBjdXJyZW50X2NwdSA9PSAiczM5MHgiIHx8 CistICAgICAgY3VycmVudF9jcHUgPT0gInBwYzY0IikgeworKyAgICAgIGN1cnJlbnRfY3B1ID09 ICJwcGM2NCIgfHwgY3VycmVudF9jcHUgPT0gInJpc2N2NjQiKSB7CisgICAgIGFuZ2xlXzY0Yml0 X2N1cnJlbnRfY3B1ID0gdHJ1ZQorICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtIiB8 fCBjdXJyZW50X2NwdSA9PSAieDg2IiB8fAorICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAi bWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAiczM5MCIgfHwKK0luZGV4OiBxdHdlYmVuZ2luZS1l dmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fu Z2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBx dHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaAor KysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaAor QEAgLTksNiArOSw3IEBACisgI2lmbmRlZiBBTkdMRV9QTEFURk9STU1FVEhPRFNfSAorICNkZWZp bmUgQU5HTEVfUExBVEZPUk1NRVRIT0RTX0gKKyAKKysjaW5jbHVkZSA8c3RkZGVmLmg+CisgI2lu Y2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAjaW5jbHVkZSA8YXJyYXk+ CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9oZWFwL2FzbS9CVUlM RC5nbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9oZWFwL2FzbS9CVUlMRC5nbgorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUu MTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vaGVhcC9hc20vQlVJTEQuZ24KK0BAIC0zOCw2ICszOCw4IEBAIGlmIChjdXJyZW50X2Nw dSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdQorICAgICAgIHNvdXJjZXMgPSBbICJTYXZlUmVnaXN0 ZXJzX21pcHM2NC5TIiBdCisgICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0Iikg eworICAgICAgIHNvdXJjZXMgPSBbICJTYXZlUmVnaXN0ZXJzX3BwYzY0LlMiIF0KKysgICAgfSBl bHNlIGlmIChjdXJyZW50X2NwdSA9PSAicmlzY3Y2NCIpIHsKKysgICAgICBzb3VyY2VzID0gWyAi U2F2ZVJlZ2lzdGVyc19yaXNjdjY0LlMiIF0KKyAgICAgfQorIAorICAgICBpZiAoY3VycmVudF9j cHUgPT0gImFybSIpIHsKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L2hlYXAvYXNtL1NhdmVSZWdpc3RlcnNfcmlzY3Y2NC5TCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9u dWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9oZWFwL2FzbS9TYXZl UmVnaXN0ZXJzX3Jpc2N2NjQuUworQEAgLTAsMCArMSw0NSBAQAorKy8qCisrICogdHlwZWRlZiB2 b2lkICgqUHVzaEFsbFJlZ2lzdGVyc0NhbGxiYWNrKShUaHJlYWRTdGF0ZSosIGludHB0cl90Kik7 CisrICogZXh0ZXJuICJDIiB2b2lkIFB1c2hBbGxSZWdpc3RlcnMoVGhyZWFkU3RhdGUqLCBQdXNo QWxsUmVnaXN0ZXJzQ2FsbGJhY2spCisrICovCisrCisrLnR5cGUgUHVzaEFsbFJlZ2lzdGVycywg JWZ1bmN0aW9uCisrLmdsb2JhbCBQdXNoQWxsUmVnaXN0ZXJzCisrLmhpZGRlbiBQdXNoQWxsUmVn aXN0ZXJzCisrUHVzaEFsbFJlZ2lzdGVyczoKKysgICAgICAgIC8qIFB1c2ggYWxsIGNhbGxlZS1z YXZlcyByZWdpc3RlcnMgdG8gZ2V0IHRoZW0KKysgICAgICAgICAqIG9uIHRoZSBzdGFjayBmb3Ig Y29uc2VydmF0aXZlIHN0YWNrIHNjYW5uaW5nLgorKyAgICAgICAgICogUmVzZXJ2ZSBzcGFjZSBm b3IgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBhbmQgcmV0dXJuIGFkZHJlc3MuCisrICAgICAgICAg Ki8KKysgICAgICAgIGFkZGkgc3Asc3AsLTExMgorKyAgICAgICAgLyogU2F2ZSB0aGUgY2FsbGVl LXNhdmVkIHJlZ2lzdGVycyBhbmQgdGhlIHJldHVybiBhZGRyZXNzLiAqLworKyAgICAgICAgc2Qg cmEsMChzcCkKKysgICAgICAgIHNkIHMwLDgoc3ApCisrICAgICAgICBzZCBzMSwxNihzcCkKKysg ICAgICAgIHNkIHMyLDI0KHNwKQorKyAgICAgICAgc2QgczMsMzIoc3ApCisrICAgICAgICBzZCBz NCw0MChzcCkKKysgICAgICAgIHNkIHM1LDQ4KHNwKQorKyAgICAgICAgc2QgczYsNTYoc3ApCisr ICAgICAgICBzZCBzNyw2NChzcCkKKysgICAgICAgIHNkIHM4LDcyKHNwKQorKyAgICAgICAgc2Qg czksODAoc3ApCisrICAgICAgICBzZCBzMTAsODgoc3ApCisrICAgICAgICBzZCBzMTEsOTYoc3Ap CisrICAgICAgICAvKiBOb3RlOiB0aGUgY2FsbGVlLXNhdmVkIGZsb2F0aW5nIHBvaW50IHJlZ2lz dGVycyBkbyBub3QgbmVlZCB0byBiZQorKyAgICAgICAgICogY29waWVkIHRvIHRoZSBzdGFjaywg YmVjYXVzZSBmcCByZWdpc3RlcnMgbmV2ZXIgaG9sZCBoZWFwIHBvaW50ZXJzCisrICAgICAgICAg KiBhbmQgc28gZG8gbm90IG5lZWQgdG8gYmUga2VwdCB2aXNpYmxlIHRvIHRoZSBnYXJiYWdlIGNv bGxlY3Rvci4KKysgICAgICAgICAqIFBhc3MgdGhlIGZpcnN0IGFyZ3VtZW50IHVudG91Y2hlZCBp biBhMCBhbmQgdGhlCisrICAgICAgICAgKiBzdGFjayBwb2ludGVyIHRvIHRoZSBjYWxsYmFjay4K KysgICAgICAgICAqLworKyAgICAgICAgbXYgcmEsYTEKKysgICAgICAgIG12IGExLHNwCisrICAg ICAgICBqYWxyIHJhCisrICAgICAgICAvKiBSZXN0b3JlIHJldHVybiBhZGRyZXNzLCBhZGp1c3Qg c3RhY2sgYW5kIHJldHVybi4KKysgICAgICAgICAqIE5vdGU6IHRoZSBjb3BpZWQgcmVnaXN0ZXJz IGRvIG5vdCBuZWVkIHRvIGJlIHJlbG9hZGVkIGhlcmUsCisrICAgICAgICAgKiBiZWNhdXNlIHRo ZXkgd2VyZSBwcmVzZXJ2ZWQgYnkgdGhlIGNhbGxlZCByb3V0aW5lLgorKyAgICAgICAgICovCisr ICAgICAgICBsZCByYSwwKHNwKQorKyAgICAgICAgYWRkaSBzcCxzcCwxMTIKKysgICAgICAgIHJl dAorKy5zaXplIFB1c2hBbGxSZWdpc3RlcnMsIC4gLSBQdXNoQWxsUmVnaXN0ZXJzCitJbmRleDog cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9iYXNlLmgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvYmFz ZS5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9iYXNlLmgK K0BAIC0xMTQsNiArMTE0LDggQEAgZXh0ZXJuICJDIiB7CisgI2RlZmluZSBPUEVOU1NMXzMyX0JJ VAorICNlbGlmIGRlZmluZWQoX19teXJpYWQyX18pCisgI2RlZmluZSBPUEVOU1NMXzMyX0JJVAor KyNlbGlmIGRlZmluZWQoX19yaXNjdikgJiYgX19yaXNjdl94bGVuID09IDY0CisrI2RlZmluZSBP UEVOU1NMXzY0X0JJVAorICNlbHNlCisgLy8gTm90ZSBCb3JpbmdTU0wgb25seSBzdXBwb3J0cyBz dGFuZGFyZCAzMi1iaXQgYW5kIDY0LWJpdCB0d28ncy1jb21wbGVtZW50LAorIC8vIGxpdHRsZS1l bmRpYW4gYXJjaGl0ZWN0dXJlcy4gRnVuY3Rpb25zIHdpbGwgbm90IHByb2R1Y2UgdGhlIGNvcnJl Y3QgYW5zd2VyCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRl eHRfY3B1LmgKK0BAIC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNIFJhd0Nv bnRleHRDUFU7CisgdHlwZWRlZiBNRFJhd0NvbnRleHRBUk02NF9PbGQgUmF3Q29udGV4dENQVTsK KyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorIHR5cGVkZWYgTURSYXdDb250ZXh0TUlQUyBSYXdD b250ZXh0Q1BVOworKyNlbGlmIGRlZmluZWQoX19yaXNjdikKKyt0eXBlZGVmIE1EUmF3Q29udGV4 dFJJU0NWNjQgUmF3Q29udGV4dENQVTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBu b3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorSW5kZXg6IHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdGhyZWFkX2luZm8uY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdo ZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFk X2luZm8uY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCitAQCAtMjcwLDcgKzI3MCwyMyBA QCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRlCisgICBvdXQtPmZsb2F0 X3NhdmUuZmlyID0gbWNvbnRleHQuZnBjX2VpcjsKKyAjZW5kaWYKKyB9CistI2VuZGlmICAvLyBf X21pcHNfXworKyNlbGlmIGRlZmluZWQoX19yaXNjdikKKysKKyt1aW50cHRyX3QgVGhyZWFkSW5m bzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgeworKyAgcmV0dXJuIG1jb250ZXh0Ll9f Z3JlZ3NbUkVHX1BDXTsKKyt9CisrCisrdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChS YXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKKysgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NP TlRFWFRfUklTQ1Y2NF9GVUxMOworKworKyAgbXlfbWVtY3B5IChvdXQtPmlyZWdzLCBtY29udGV4 dC5fX2dyZWdzLCBNRF9DT05URVhUX1JJU0NWNjRfR1BSX0NPVU5UICogOCk7CisrCisrICBvdXQt PmZsb2F0X3NhdmUuZmNzciA9IG1jb250ZXh0Ll9fZnByZWdzLl9fZC5fX2Zjc3I7CisrICBteV9t ZW1jcHkoJm91dC0+ZmxvYXRfc2F2ZS5yZWdzLCAmbWNvbnRleHQuX19mcHJlZ3MuX19kLl9fZiwK KysgICAgICBNRF9GTE9BVElOR1NBVkVBUkVBX1JJU0NWNjRfRlBSX0NPVU5UICogOCk7CisrfQor KworKyNlbmRpZiAgLy8gX19yaXNjdgorIAorIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1 cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNpemVfdCogc2l6ZSkgeworICAgYXNzZXJ0 KGdwX3JlZ3MgfHwgc2l6ZSk7CitAQCAtMjc5LDYgKzI5NSwxMSBAQCB2b2lkIFRocmVhZEluZm86 OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0CisgICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7 CisgICBpZiAoc2l6ZSkKKyAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOworKyNl bGlmIGRlZmluZWQoX19yaXNjdikKKysgIGlmIChncF9yZWdzKQorKyAgICAqZ3BfcmVncyA9IG1j b250ZXh0Ll9fZ3JlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2YobWNvbnRl eHQuX19ncmVncyk7CisgI2Vsc2UKKyAgIGlmIChncF9yZWdzKQorICAgICAqZ3BfcmVncyA9ICZy ZWdzOworQEAgLTI5NCw2ICszMTUsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZQorICAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcHJlZ3M7CisgICBpZiAoc2l6 ZSkKKyAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZnByZWdzKTsKKysjZWxpZiBkZWZpbmVk KF9fcmlzY3YpCisrICBpZiAoZnBfcmVncykKKysgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuX19m cHJlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuX19mcHJl Z3MpOworICNlbHNlCisgICBpZiAoZnBfcmVncykKKyAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOwor SW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5l LWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi90aHJlYWRfaW5mby5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCitAQCAtNjgsNyArNjgs NyBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7CisgICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5l ZCBpbiA8c3lzL3VzZXIuaD4KKyAgIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7CisgICBz dHJ1Y3QgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKKy0jZWxpZiBkZWZpbmVkKF9fbWlwc19f KQorKyNlbGlmIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgIC8vIFVz ZSB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4KKyAgIG1jb250ZXh0 X3QgbWNvbnRleHQ7CisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMt NS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BA IC00NjEsNyArNDYxLDcgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50 CisgICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0ZSwgZnBfcHRyLAorICAg ICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUpKTsKKyAgIH0KKy0j ZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNlbGlm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVk KF9fcmlzY3YpCisgICAvLyBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBvbiBBUk0g TGludXguCisgICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBw YXJ0IG9mIHVjb250ZXh0X3QKKyAgIC8vIGFuZCAnZmxvYXRfc3RhdGUnIGlzIG5vdCBhIG1lbWJl ciBvZiBDcmFzaENvbnRleHQuCitAQCAtNzAxLDcgKzcwMSw3IEBAIGJvb2wgRXhjZXB0aW9uSGFu ZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIH0KKyAjZW5kaWYKKyAKKy0jaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBz X18pCisrI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18p ICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAgLy8gRlBVIHN0 YXRlIGlzIG5vdCBwYXJ0IG9mIEFSTSBFQUJJIHVjb250ZXh0X3QuCisgICBtZW1jcHkoJmNvbnRl eHQuZmxvYXRfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5mcHJlZ3MsCisgICAg ICAgICAgc2l6ZW9mKGNvbnRleHQuZmxvYXRfc3RhdGUpKTsKK0BAIC03MjYsNiArNzI2LDkgQEAg Ym9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICNlbGlmIGRlZmluZWQo X19taXBzX18pCisgICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisgICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnBjKTsKKysjZWxpZiBk ZWZpbmVkKF9fcmlzY3YpCisrICBjb250ZXh0LnNpZ2luZm8uc2lfYWRkciA9CisrICAgICAgcmVp bnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0Ll9fZ3JlZ3Nb UkVHX1BDXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVk IHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5o Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCisrKysgcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRs ZXIuaAorQEAgLTE5Miw3ICsxOTIsNyBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyIHsKKyAgICAg c2lnaW5mb190IHNpZ2luZm87CisgICAgIHBpZF90IHRpZDsgIC8vIHRoZSBjcmFzaGluZyB0aHJl YWQuCisgICAgIHVjb250ZXh0X3QgY29udGV4dDsKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyAgICAgLy8gI2lmZGVmIHRo aXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkgZm9yIExpbnV4 IEFSTS4KKyAgICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkg cGFydCBvZiB1Y29udGV4dF90IHNvCisgICAgIC8vICdmbG9hdF9zdGF0ZScgaXMgbm90IHJlcXVp cmVkLgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBx dHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1 bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy LmNjCitAQCAtMTM4LDcgKzEzOCw3IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICAgICAg ICAgICAgICAgICAgY29uc3QgTWljcm9kdW1wRXh0cmFJbmZvJiBtaWNyb2R1bXBfZXh0cmFfaW5m bywKKyAgICAgICAgICAgICAgICAgICBMaW51eER1bXBlciogZHVtcGVyKQorICAgICAgIDogdWNv bnRleHRfKGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAg ICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxM KSwKKyAjZW5kaWYKKyAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKK0BAIC0zMzcsNiArMzM3LDEy IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgIyBlbHNlCisgIyAgZXJyb3IgIlRoaXMgbWlw cyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCisgI2VuZGlmCisrI2VsaWYg ZGVmaW5lZChfX3Jpc2N2KQorKyMgaWYgX19yaXNjdl94bGVuID09IDY0CisrICAgIGNvbnN0IGNo YXIga0FyY2hbXSA9ICJyaXNjdjY0IjsKKysjIGVsc2UKKysjICBlcnJvciAiVGhpcyBSSVNDLVYg QUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIgorKyNlbmRpZgorICNlbHNlCisgI2Vycm9y ICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAj ZW5kaWYKK0BAIC00MDksNyArNDE1LDcgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAgIHZv aWQgRHVtcENQVVN0YXRlKCkgeworICAgICBSYXdDb250ZXh0Q1BVIGNwdTsKKyAgICAgbXlfbWVt c2V0KCZjcHUsIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7CistI2lmICFkZWZpbmVkKF9fQVJN X0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fcmlzY3YpCisgICAgIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7 CisgI2Vsc2UKKyAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250 ZXh0Xyk7CitAQCAtNjA1LDcgKzYxMSw3IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICB2 b2lkKiBBbGxvYyh1bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCkt PkFsbG9jKGJ5dGVzKTsgfQorIAorICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRf OworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5l ZChfX3Jpc2N2KQorICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZs b2F0X3N0YXRlXzsKKyAjZW5kaWYKKyAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOworSW5kZXg6IHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf Y29yZV9kdW1wZXIuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCitAQCAtMTEyLDYg KzExMiw5IEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJbmQKKyAjZWxp ZiBkZWZpbmVkKF9fbWlwc19fKQorICAgc3RhY2tfcG9pbnRlciA9CisgICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JF R19TUF0pOworKyNlbGlmIGRlZmluZWQoX19yaXNjdikKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAg ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0Ll9fZ3JlZ3NbTURf Q09OVEVYVF9SSVNDVjY0X1JFR19TUF0pOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFz bid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKK0BAIC0yMDgs NiArMjExLDggQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkVudW1lcmF0ZVRocmVhZHMoKQorICAg ICAgICAgaW5mby5tY29udGV4dC5tZGxvID0gc3RhdHVzLT5wcl9yZWdbRUZfTE9dOworICAgICAg ICAgaW5mby5tY29udGV4dC5tZGhpID0gc3RhdHVzLT5wcl9yZWdbRUZfSEldOworICAgICAgICAg aW5mby5tY29udGV4dC5wYyA9IHN0YXR1cy0+cHJfcmVnW0VGX0NQMF9FUENdOworKyNlbGlmIGRl ZmluZWQoX19yaXNjdikKKysgICAgICAgIG1lbWNweShpbmZvLm1jb250ZXh0Ll9fZ3JlZ3MsIHN0 YXR1cy0+cHJfcmVnLCBzaXplb2YoaW5mby5tY29udGV4dC5fX2dyZWdzKSk7CisgI2Vsc2UgIC8v IF9fbWlwc19fCisgICAgICAgICBtZW1jcHkoJmluZm8ucmVncywgc3RhdHVzLT5wcl9yZWcsIHNp emVvZihpbmZvLnJlZ3MpKTsKKyAjZW5kaWYgIC8vIF9fbWlwc19fCitJbmRleDogcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9kdW1wZXIuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUu MTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAorKysr IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyLmgKK0BAIC02Myw3ICs2Myw4IEBAIG5hbWVzcGFjZSBnb29nbGVf YnJlYWtwYWQgeworICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQklPMzIp CisgdHlwZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKKyAjZWxpZiBkZWZpbmVkKF9f eDg2XzY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICAgICAoZGVmaW5lZChfX21p cHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpCisrICAgICAoZGVmaW5lZChfX21pcHNfXykg JiYgX01JUFNfU0lNICE9IF9BQklPMzIpIHx8IFwKKysgICAgIChkZWZpbmVkKF9fcmlzY3YpICYm IF9fcmlzY3ZfeGxlbiA9PSA2NCkKKyB0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4X2VudHJ5 OworICNlbmRpZgorIAorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCisrKysgcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9wdHJhY2VfZHVtcGVyLmNjCitAQCAtMjk4LDYgKzI5OCw5IEBAIGJvb2wgTGludXhQdHJhY2VE dW1wZXI6OkdldFRocmVhZEluZm9CeUkKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgc3Rh Y2tfcG9pbnRlciA9CisgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNv bnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9NSVBTX1JFR19TUF0pOworKyNlbGlmIGRlZmluZWQoX19y aXNjdikKKysgIHN0YWNrX3BvaW50ZXIgPQorKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf dCo+KGluZm8tPm1jb250ZXh0Ll9fZ3JlZ3NbTURfQ09OVEVYVF9SSVNDVjY0X1JFR19TUF0pOwor ICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxh dGZvcm0geWV0LiIKKyAjZW5kaWYKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKKysrKyBxdHdlYmVuZ2lu ZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlk dW1wX3dyaXRlci5jYworQEAgLTEzNiw3ICsxMzYsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7 CisgICAgICAgOiBmZF8obWluaWR1bXBfZmQpLAorICAgICAgICAgcGF0aF8obWluaWR1bXBfcGF0 aCksCisgICAgICAgICB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVM TCksCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisr I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZp bmVkKF9fcmlzY3YpCisgICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5m bG9hdF9zdGF0ZSA6IE5VTEwpLAorICNlbmRpZgorICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAor QEAgLTQ2OCw3ICs0NjgsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7CisgICAgICAgICBpZiAo IWNwdS5BbGxvY2F0ZSgpKQorICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICBteV9t ZW1zZXQoY3B1LmdldCgpLCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOworLSNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX3Jpc2N2KQorICAg ICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRf LCBmbG9hdF9zdGF0ZV8pOworICNlbHNlCisgICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQ VUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8pOworQEAgLTg5Nyw3ICs4OTcsNyBAQCBjbGFz cyBNaW5pZHVtcFdyaXRlciB7CisgICAgIGRpcmVudC0+bG9jYXRpb24ucnZhID0gMDsKKyAgIH0K KyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAgIGJvb2wgV3Jp dGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5c3RlbUluZm8qIHN5c19pbmZvKSB7CisgICAgIGNoYXIg dmVuZG9yX2lkW3NpemVvZihzeXNfaW5mby0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5kb3JfaWQpICsg MV0gPSB7MH07CisgICAgIHN0YXRpYyBjb25zdCBjaGFyIHZlbmRvcl9pZF9uYW1lW10gPSAidmVu ZG9yX2lkIjsKK0BAIC05MjUsNiArOTI1LDEyIEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAj IGVsc2UKKyAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCAobjMyKSIKKyAjZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9fcmlzY3YpCisrIyBpZiBfX3Jpc2N2 X3hsZW4gPT0gNjQKKysJTURfQ1BVX0FSQ0hJVEVDVFVSRV9SSVNDVjY0OworKyMgZWxzZQorKyMg IGVycm9yICJUaGlzIFJJU0MtViBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQiCisrIyBl bmRpZgorICNlbGlmIGRlZmluZWQoX19pMzg2X18pCisgICAgICAgICBNRF9DUFVfQVJDSElURUNU VVJFX1g4NjsKKyAjZWxzZQorQEAgLTEzMzMsNyArMTMzOSw3IEBAIGNsYXNzIE1pbmlkdW1wV3Jp dGVyIHsKKyAgIGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0 aGUgbWluaWR1bSBzaG91bGQgYmUgd3JpdHRlbi4KKyAKKyAgIGNvbnN0IHVjb250ZXh0X3QqIGNv bnN0IHVjb250ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKKy0jaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKysjaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19yaXNjdikK KyAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25zdCBmbG9hdF9zdGF0ZV87 ICAvLyBkaXR0bworICNlbmRpZgorICAgTGludXhEdW1wZXIqIGR1bXBlcl87CitJbmRleDogcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9taW5pZHVtcF93cml0ZXIuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93 cml0ZXIuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKK0BAIC00OCw3ICs0OCw3IEBAIGNs YXNzIEV4Y2VwdGlvbkhhbmRsZXI7CisgCisgI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCisgdHlw ZWRlZiBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQgZnBzdGF0ZV90OworLSNlbGlmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2VsaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19yaXNjdikKKyB0eXBl ZGVmIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8ZnByZWdzZXRfdD46OnR5cGUgZnBzdGF0ZV90OworICNl bmRpZgorIAorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1l dmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0 LlMKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJl YWtwYWRfZ2V0Y29udGV4dC5TCitAQCAtNDgxLDYgKzQ4MSw2OCBAQCBicmVha3BhZF9nZXRjb250 ZXh0OgorICAgLmNmaV9lbmRwcm9jCisgICAuc2l6ZSBicmVha3BhZF9nZXRjb250ZXh0LCAuIC0g YnJlYWtwYWRfZ2V0Y29udGV4dAorIAorKyNlbGlmIGRlZmluZWQoX19yaXNjdikgJiYgX19yaXNj dl94bGVuID09IDY0CisrCisrI2RlZmluZSBfX05SX3J0X3NpZ3Byb2NtYXNrIDEzNQorKyNkZWZp bmUgX05TSUc4IDY0IC8gOAorKyNkZWZpbmUgU0lHX0JMT0NLIDAKKysKKysgIC50ZXh0CisrICAu Z2xvYmFsIGJyZWFrcGFkX2dldGNvbnRleHQKKysgIC5oaWRkZW4gYnJlYWtwYWRfZ2V0Y29udGV4 dAorKyAgLnR5cGUgYnJlYWtwYWRfZ2V0Y29udGV4dCwgQGZ1bmN0aW9uCisrICAuYWxpZ24gMgor K2JyZWFrcGFkX2dldGNvbnRleHQ6CisrICBzZCByYSwgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsg MCo4KGEwKQorKyAgc2QgcmEsIE1DT05URVhUX0dSRUdTX09GRlNFVCArIDEqOChhMCkKKysgIHNk IHNwLCBNQ09OVEVYVF9HUkVHU19PRkZTRVQgKyAyKjgoYTApCisrICBzZCBzMCwgTUNPTlRFWFRf R1JFR1NfT0ZGU0VUICsgOCo4KGEwKQorKyAgc2QgczEsIE1DT05URVhUX0dSRUdTX09GRlNFVCAr IDkqOChhMCkKKysgIHNkIHgwLCBNQ09OVEVYVF9HUkVHU19PRkZTRVQgKyAxMCo4KGEwKQkvKiBy ZXR1cm4gMCBieSBvdmVyd3JpdGluZyBhMC4gICovCisrICBzZCBzMiwgTUNPTlRFWFRfR1JFR1Nf T0ZGU0VUICsgMTgqOChhMCkKKysgIHNkIHMzLCBNQ09OVEVYVF9HUkVHU19PRkZTRVQgKyAxOSo4 KGEwKQorKyAgc2QgczQsIE1DT05URVhUX0dSRUdTX09GRlNFVCArIDIwKjgoYTApCisrICBzZCBz NSwgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsgMjEqOChhMCkKKysgIHNkIHM2LCBNQ09OVEVYVF9H UkVHU19PRkZTRVQgKyAyMio4KGEwKQorKyAgc2QgczcsIE1DT05URVhUX0dSRUdTX09GRlNFVCAr IDIzKjgoYTApCisrICBzZCBzOCwgTUNPTlRFWFRfR1JFR1NfT0ZGU0VUICsgMjQqOChhMCkKKysg IHNkIHM5LCBNQ09OVEVYVF9HUkVHU19PRkZTRVQgKyAyNSo4KGEwKQorKyAgc2QgczEwLCBNQ09O VEVYVF9HUkVHU19PRkZTRVQgKyAyNio4KGEwKQorKyAgc2QgczExLCBNQ09OVEVYVF9HUkVHU19P RkZTRVQgKyAyNyo4KGEwKQorKworKyNpZm5kZWYgX19yaXNjdl9mbG9hdF9hYmlfc29mdAorKyAg ZnJzcglhMQorKworKyAgZnNkIGZzMCwgTUNPTlRFWFRfRlBSRUdTX09GRlNFVCArIDgqOChhMCkK KysgIGZzZCBmczEsIE1DT05URVhUX0ZQUkVHU19PRkZTRVQgKyA5KjgoYTApCisrICBmc2QgZnMy LCBNQ09OVEVYVF9GUFJFR1NfT0ZGU0VUICsgMTgqOChhMCkKKysgIGZzZCBmczMsIE1DT05URVhU X0ZQUkVHU19PRkZTRVQgKyAxOSo4KGEwKQorKyAgZnNkIGZzNCwgTUNPTlRFWFRfRlBSRUdTX09G RlNFVCArIDIwKjgoYTApCisrICBmc2QgZnM1LCBNQ09OVEVYVF9GUFJFR1NfT0ZGU0VUICsgMjEq OChhMCkKKysgIGZzZCBmczYsIE1DT05URVhUX0ZQUkVHU19PRkZTRVQgKyAyMio4KGEwKQorKyAg ZnNkIGZzNywgTUNPTlRFWFRfRlBSRUdTX09GRlNFVCArIDIzKjgoYTApCisrICBmc2QgZnM4LCBN Q09OVEVYVF9GUFJFR1NfT0ZGU0VUICsgMjQqOChhMCkKKysgIGZzZCBmczksIE1DT05URVhUX0ZQ UkVHU19PRkZTRVQgKyAyNSo4KGEwKQorKyAgZnNkIGZzMTAsIE1DT05URVhUX0ZQUkVHU19PRkZT RVQgKyAyNio4KGEwKQorKyAgZnNkIGZzMTEsIE1DT05URVhUX0ZQUkVHU19PRkZTRVQgKyAyNyo4 KGEwKQorKworKyAgc3cJYTEsIE1DT05URVhUX0ZTUl9PRkZTRVQoYTApCisrI2VuZGlmIC8qIF9f cmlzY3ZfZmxvYXRfYWJpX3NvZnQgKi8KKysKKysvKiBydF9zaWdwcm9jbWFzayAoU0lHX0JMT0NL LCBOVUxMLCAmdWNwLT51Y19zaWdtYXNrLCBfTlNJRyAvIDgpICovCisrICBsaQlhMywgX05TSUc4 CisrICBhZGQJYTIsIGEwLCBVQ09OVEVYVF9TSUdNQVNLX09GRlNFVAorKyAgbXYJYTEsIHplcm8K KysgIGxpCWEwLCBTSUdfQkxPQ0sKKysKKysgIGxpCWE3LCBfX05SX3J0X3NpZ3Byb2NtYXNrCisr ICBzY2FsbAorKworKyAgLyogQWx3YXlzIHJldHVybiAwIGZvciBzdWNjZXNzLCBldmVuIGlmIHNp Z3Byb2NtYXNrIGZhaWxlZC4gKi8KKysgIG12CWEwLCB6ZXJvCisrICByZXQKKysgIC5zaXplIGJy ZWFrcGFkX2dldGNvbnRleHQsIC4gLSBicmVha3BhZF9nZXRjb250ZXh0CisrCisgI2Vsc2UKKyAj ZXJyb3IgIlRoaXMgZmlsZSBoYXMgbm90IGJlZW4gcG9ydGVkIGZvciB5b3VyIENQVSEiCisgI2Vu ZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4 L21lbW9yeV9tYXBwZWRfZmlsZS5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuNy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwor KysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlf bWFwcGVkX2ZpbGUuY2MKK0BAIC02NSw3ICs2NSw4IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6 TWFwKGNvbnN0IGNoYXIqIHAKKyAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBT X1NJTSA9PSBfQUJJNjQpCisrICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBf QUJJNjQpIHx8IFwKKysgICAoZGVmaW5lZChfX3Jpc2N2KSAmJiBfX3Jpc2N2X3hsZW4gPT0gNjQp CisgCisgICBzdHJ1Y3Qga2VybmVsX3N0YXQgc3Q7CisgICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3Qp ID09IC0xIHx8IHN0LnN0X3NpemUgPCAwKSB7CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L3Vjb250ZXh0X2NvbnN0YW50cy5oCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgv dWNvbnRleHRfY29uc3RhbnRzLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1 Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvdWNvbnRleHRfY29uc3RhbnRzLmgKK0BAIC0xNDYsNiArMTQ2LDE0IEBA CisgI2VuZGlmCisgI2RlZmluZSBGUFJFR1NfT0ZGU0VUX01YQ1NSICAyNAorIAorKyNlbGlmIGRl ZmluZWQoX19yaXNjdikKKysKKysjZGVmaW5lIFVDT05URVhUX1NJR01BU0tfT0ZGU0VUICAgNDAK KysKKysjZGVmaW5lIE1DT05URVhUX0dSRUdTX09GRlNFVCAgICAgMTc2CisrI2RlZmluZSBNQ09O VEVYVF9GUFJFR1NfT0ZGU0VUICAgIDQzMgorKyNkZWZpbmUgTUNPTlRFWFRfRlNSX09GRlNFVCAg ICAgICAoTUNPTlRFWFRfRlBSRUdTX09GRlNFVCArIDMyKjgpCisrCisgI2Vsc2UKKyAjZXJyb3Ig IlRoaXMgaGVhZGVyIGhhcyBub3QgYmVlbiBwb3J0ZWQgZm9yIHlvdXIgQ1BVIgorICNlbmRpZgor SW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2dvb2dsZV9icmVha3BhZC9j b21tb24vbWluaWR1bXBfY3B1X3Jpc2N2NjQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAor KysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2dvb2dsZV9icmVha3BhZC9jb21t b24vbWluaWR1bXBfY3B1X3Jpc2N2NjQuaAorQEAgLTAsMCArMSwxMjEgQEAKKysvKiBDb3B5cmln aHQgMjAxMyBHb29nbGUgSW5jLgorKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrICoKKysgKiBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQKKysgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisrICogbWV0OgorKyAqCisrICogICAgICogUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQKKysgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIuCisrICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11 c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKysgKiBpbiB0aGUgZG9j dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisrICog ZGlzdHJpYnV0aW9uLgorKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g bm9yIHRoZSBuYW1lcyBvZiBpdHMKKysgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKyAqIHRoaXMgc29mdHdhcmUg d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisrICoKKysgKiBUSElT IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ QlVUT1JTCisrICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT LCBJTkNMVURJTkcsIEJVVCBOT1QKKysgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKysgKiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS RUNULCBJTkNJREVOVEFMLAorKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKysgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKysgKiBEQVRB LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO RCBPTiBBTlkKKysgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisrICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisrICogT0YgVEhJUyBT T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH RS4gKi8KKysKKysvKiBtaW5pZHVtcF9mb3JtYXQuaDogQSBjcm9zcy1wbGF0Zm9ybSByZWltcGxl bWVudGF0aW9uIG9mIG1pbmlkdW1wLXJlbGF0ZWQKKysgKiBwb3J0aW9ucyBvZiBEYmdIZWxwLmgg ZnJvbSB0aGUgV2luZG93cyBQbGF0Zm9ybSBTREsuCisrICoKKysgKiAoVGhpcyBpcyBDOTkgc291 cmNlLCBwbGVhc2UgZG9uJ3QgY29ycnVwdCBpdCB3aXRoIEMrKy4pCisrICoKKysgKiBUaGlzIGZp bGUgY29udGFpbnMgdGhlIG5lY2Vzc2FyeSBkZWZpbml0aW9ucyB0byByZWFkIG1pbmlkdW1wIGZp bGVzCisrICogcHJvZHVjZWQgb24gQVJNLiAgVGhlc2UgZmlsZXMgbWF5IGJlIHJlYWQgb24gYW55 IHBsYXRmb3JtIHByb3ZpZGVkCisrICogdGhhdCB0aGUgYWxpZ25tZW50cyBvZiB0aGVzZSBzdHJ1 Y3R1cmVzIG9uIHRoZSBwcm9jZXNzaW5nIHN5c3RlbSBhcmUKKysgKiBpZGVudGljYWwgdG8gdGhl IGFsaWdubWVudHMgb2YgdGhlc2Ugc3RydWN0dXJlcyBvbiB0aGUgcHJvZHVjaW5nIHN5c3RlbS4K KysgKiBGb3IgdGhpcyByZWFzb24sIHByZWNpc2Utc2l6ZWQgdHlwZXMgYXJlIHVzZWQuICBUaGUg c3RydWN0dXJlcyBkZWZpbmVkCisrICogYnkgdGhpcyBmaWxlIGhhdmUgYmVlbiBsYWlkIG91dCB0 byBtaW5pbWl6ZSBhbGlnbm1lbnQgcHJvYmxlbXMgYnkKKysgKiBlbnN1cmluZyB0aGF0IGFsbCBt ZW1iZXJzIGFyZSBhbGlnbmVkIG9uIHRoZWlyIG5hdHVyYWwgYm91bmRhcmllcy4KKysgKiBJbiBz b21lIGNhc2VzLCB0YWlsLXBhZGRpbmcgbWF5IGJlIHNpZ25pZmljYW50IHdoZW4gZGlmZmVyZW50 IEFCSXMgc3BlY2lmeQorKyAqIGRpZmZlcmVudCB0YWlsLXBhZGRpbmcgYmVoYXZpb3JzLiAgVG8g YXZvaWQgcHJvYmxlbXMgd2hlbiByZWFkaW5nIG9yCisrICogd3JpdGluZyBhZmZlY3RlZCBzdHJ1 Y3R1cmVzLCBNRF8qX1NJWkUgbWFjcm9zIGFyZSBwcm92aWRlZCB3aGVyZSBuZWVkZWQsCisrICog Y29udGFpbmluZyB0aGUgdXNlZnVsIHNpemUgb2YgdGhlIHN0cnVjdHVyZXMgd2l0aG91dCBwYWRk aW5nLgorKyAqCisrICogU3RydWN0dXJlcyB0aGF0IGFyZSBkZWZpbmVkIGJ5IE1pY3Jvc29mdCB0 byBjb250YWluIGEgemVyby1sZW5ndGggYXJyYXkKKysgKiBhcmUgaW5zdGVhZCBkZWZpbmVkIGhl cmUgdG8gY29udGFpbiBhbiBhcnJheSB3aXRoIG9uZSBlbGVtZW50LCBhcworKyAqIHplcm8tbGVu Z3RoIGFycmF5cyBhcmUgZm9yYmlkZGVuIGJ5IHN0YW5kYXJkIEMgYW5kIEMrKy4gIEluIHRoZXNl IGNhc2VzLAorKyAqICpfbWluc2l6ZSBjb25zdGFudHMgYXJlIHByb3ZpZGVkIHRvIGJlIHVzZWQg aW4gcGxhY2Ugb2Ygc2l6ZW9mLiAgRm9yIGEKKysgKiBjbGVhbmVyIGludGVyZmFjZSB0byB0aGVz ZSBzaXplcyB3aGVuIHVzaW5nIEMrKywgc2VlIG1pbmlkdW1wX3NpemUuaC4KKysgKgorKyAqIFRo ZXNlIHN0cnVjdHVyZXMgYXJlIGFsc28gc3VmZmljaWVudCB0byBwb3B1bGF0ZSBtaW5pZHVtcCBm aWxlcy4KKysgKgorKyAqIEJlY2F1c2UgcHJlY2lzZSBkYXRhIHR5cGUgc2l6ZXMgYXJlIGNydWNp YWwgZm9yIHRoaXMgaW1wbGVtZW50YXRpb24gdG8KKysgKiBmdW5jdGlvbiBwcm9wZXJseSBhbmQg cG9ydGFibHksIGEgc2V0IG9mIHByaW1pdGl2ZSB0eXBlcyB3aXRoIGtub3duIHNpemVzCisrICog YXJlIHVzZWQgYXMgdGhlIGJhc2lzIG9mIGVhY2ggc3RydWN0dXJlIGRlZmluZWQgYnkgdGhpcyBm aWxlLgorKyAqCisrICogQXV0aG9yOiBDb2xpbiBCbHVuZGVsbAorKyAqLworKworKy8qCisrICog UklTQ1Y2NCBzdXBwb3J0CisrICovCisrCisrI2lmbmRlZiBHT09HTEVfQlJFQUtQQURfQ09NTU9O X01JTklEVU1QX0NQVV9SSVNDVjY0X0hfXworKyNkZWZpbmUgR09PR0xFX0JSRUFLUEFEX0NPTU1P Tl9NSU5JRFVNUF9DUFVfUklTQ1Y2NF9IX18KKysKKysjaW5jbHVkZSAiZ29vZ2xlX2JyZWFrcGFk L2NvbW1vbi9icmVha3BhZF90eXBlcy5oIgorKworKyNkZWZpbmUgTURfRkxPQVRJTkdTQVZFQVJF QV9SSVNDVjY0X0ZQUl9DT1VOVCAzMgorKyNkZWZpbmUgTURfQ09OVEVYVF9SSVNDVjY0X0dQUl9D T1VOVCAzMgorKworK3R5cGVkZWYgc3RydWN0IHsKKysgIC8qIDMyIDY0LWJpdCBmbG9hdGluZyBw b2ludCByZWdpc3RlcnMsIGYwIC4uIGYzMS4gKi8KKysgIHVpbnQ2NF90IHJlZ3NbTURfRkxPQVRJ TkdTQVZFQVJFQV9SSVNDVjY0X0ZQUl9DT1VOVF07CisrCisrICB1aW50MzJfdCBmY3NyOyAgICAg ICAvKiBGUFUgY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVyICovCisrfSBNREZsb2F0aW5nU2F2 ZUFyZWFSSVNDVjY0OworKworKy8qIEZvciAoTURSYXdDb250ZXh0UklTQ1Y2NCkuY29udGV4dF9m bGFncy4gIFRoZXNlIHZhbHVlcyBpbmRpY2F0ZSB0aGUgdHlwZSBvZgorKyAqIGNvbnRleHQgc3Rv cmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisrI2RlZmluZSBNRF9DT05URVhUX1JJU0NWNjQgMHgw MDQwMDAwMAorKyNkZWZpbmUgTURfQ09OVEVYVF9SSVNDVjY0X0NPTlRST0wgKE1EX0NPTlRFWFRf UklTQ1Y2NCB8IDB4MDAwMDAwMDEpCisrI2RlZmluZSBNRF9DT05URVhUX1JJU0NWNjRfSU5URUdF UiAoTURfQ09OVEVYVF9SSVNDVjY0IHwgMHgwMDAwMDAwMikKKysjZGVmaW5lIE1EX0NPTlRFWFRf UklTQ1Y2NF9GTE9BVElOR19QT0lOVCAoTURfQ09OVEVYVF9SSVNDVjY0IHwgMHgwMDAwMDAwNCkK KysjZGVmaW5lIE1EX0NPTlRFWFRfUklTQ1Y2NF9ERUJVRyAoTURfQ09OVEVYVF9SSVNDVjY0IHwg MHgwMDAwMDAwOCkKKysjZGVmaW5lIE1EX0NPTlRFWFRfUklTQ1Y2NF9GVUxMIChNRF9DT05URVhU X1JJU0NWNjRfQ09OVFJPTCB8IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTURf Q09OVEVYVF9SSVNDVjY0X0lOVEVHRVIgfCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1EX0NPTlRFWFRfUklTQ1Y2NF9GTE9BVElOR19QT0lOVCkKKysjZGVmaW5lIE1EX0NPTlRF WFRfUklTQ1Y2NF9BTEwgKE1EX0NPTlRFWFRfUklTQ1Y2NF9GVUxMIHwgTURfQ09OVEVYVF9SSVND VjY0X0RFQlVHKQorKworK3R5cGVkZWYgc3RydWN0IHsKKysgIC8qIERldGVybWluZXMgd2hpY2gg ZmllbGRzIG9mIHRoaXMgc3RydWN0IGFyZSBwb3B1bGF0ZWQgKi8KKysgIHVpbnQzMl90IGNvbnRl eHRfZmxhZ3M7CisrCisrICAvKiAzMiA2NC1iaXQgaW50ZWdlciByZWdpc3RlcnMsIHgxIC4uIHgz MSArIHRoZSBQQworKyAgICogTm90ZSB0aGUgZm9sbG93aW5nIGZpeGVkIHVzZXM6CisrICAgKiAg IHg4IGlzIHRoZSBmcmFtZSBwb2ludGVyCisrICAgKiAgIHgxIGlzIHRoZSBsaW5rIHJlZ2lzdGVy CisrICAgKiAgIHgyIGlzIHRoZSBzdGFjayBwb2ludGVyCisrICAgKiAgIFRoZSBQQyBpcyBlZmZl Y3RpdmVseSB4MC4KKysgICAqLworKyAgdWludDY0X3QgaXJlZ3NbTURfQ09OVEVYVF9SSVNDVjY0 X0dQUl9DT1VOVF07CisrCisrICAvKiBUaGUgbmV4dCBmaWVsZCBpcyBpbmNsdWRlZCB3aXRoIE1E X0NPTlRFWFQ2NF9BUk1fRkxPQVRJTkdfUE9JTlQgKi8KKysgIE1ERmxvYXRpbmdTYXZlQXJlYVJJ U0NWNjQgZmxvYXRfc2F2ZTsKKysKKyt9IE1EUmF3Q29udGV4dFJJU0NWNjQ7CisrCisrLyogSW5k aWNlcyBpbnRvIGlyZWdzIGZvciByZWdpc3RlcnMgd2l0aCBhIGRlZGljYXRlZCBvciBjb252ZW50 aW9uYWwKKysgKiBwdXJwb3NlLgorKyAqLworK2VudW0gTURSSVNDVjY0UmVnaXN0ZXJOdW1iZXJz IHsKKysgIE1EX0NPTlRFWFRfUklTQ1Y2NF9SRUdfRlAgICAgID0gOCwKKysgIE1EX0NPTlRFWFRf UklTQ1Y2NF9SRUdfUkEgICAgID0gMSwKKysgIE1EX0NPTlRFWFRfUklTQ1Y2NF9SRUdfU1AgICAg ID0gMiwKKysgIE1EX0NPTlRFWFRfUklTQ1Y2NF9SRUdfUEMgICAgID0gMAorK307CisrCisrI2Vu ZGlmICAvKiBHT09HTEVfQlJFQUtQQURfQ09NTU9OX01JTklEVU1QX0NQVV9SSVNDVjY0X0hfXyAq LworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2dvb2dsZV9icmVha3Bh ZC9jb21tb24vbWluaWR1bXBfZm9ybWF0LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1l dmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2dvb2dsZV9icmVha3BhZC9jb21tb24vbWluaWR1bXBf Zm9ybWF0LmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9nb29nbGVfYnJl YWtwYWQvY29tbW9uL21pbmlkdW1wX2Zvcm1hdC5oCitAQCAtMTE4LDYgKzExOCw3IEBAIHR5cGVk ZWYgc3RydWN0IHsKKyAjaW5jbHVkZSAibWluaWR1bXBfY3B1X21pcHMuaCIKKyAjaW5jbHVkZSAi bWluaWR1bXBfY3B1X3BwYy5oIgorICNpbmNsdWRlICJtaW5pZHVtcF9jcHVfcHBjNjQuaCIKKysj aW5jbHVkZSAibWluaWR1bXBfY3B1X3Jpc2N2NjQuaCIKKyAjaW5jbHVkZSAibWluaWR1bXBfY3B1 X3NwYXJjLmgiCisgI2luY2x1ZGUgIm1pbmlkdW1wX2NwdV94ODYuaCIKKyAKK0BAIC02NjAsNiAr NjYxLDcgQEAgdHlwZWRlZiBlbnVtIHsKKyAgIE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQgICAg ID0gMHg4MDAyLCAvKiBCcmVha3BhZC1kZWZpbmVkIHZhbHVlIGZvciBQUEM2NCAqLworICAgTURf Q1BVX0FSQ0hJVEVDVFVSRV9BUk02NF9PTEQgPSAweDgwMDMsIC8qIEJyZWFrcGFkLWRlZmluZWQg dmFsdWUgZm9yIEFSTTY0ICovCisgICBNRF9DUFVfQVJDSElURUNUVVJFX01JUFM2NCAgICA9IDB4 ODAwNCwgLyogQnJlYWtwYWQtZGVmaW5lZCB2YWx1ZSBmb3IgTUlQUzY0ICovCisrICBNRF9DUFVf QVJDSElURUNUVVJFX1JJU0NWNjQgICA9IDB4ODAwNSwgLyogQnJlYWtwYWQtZGVmaW5lZCB2YWx1 ZSBmb3IgUklTQ1Y2NCAqLworICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9VTktOT1dOICAgPSAweGZm ZmYgIC8qIFBST0NFU1NPUl9BUkNISVRFQ1RVUkVfVU5LTk9XTiAqLworIH0gTURDUFVBcmNoaXRl Y3R1cmU7CisgCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4 L3B0cmFjZXIuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1z cmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKK0BAIC0zOTgsNiArMzk4LDUxIEBAIGJvb2wgR2V0 VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKyAgIHJldHVybiB0cnVlOworIH0KKyAKKysjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSkKKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVz dGluYXRpb24+CisrYm9vbCBHZXRSZWdpc3RlclNldChwaWRfdCB0aWQsIGludCBzZXQsIERlc3Rp bmF0aW9uKiBkZXN0LCBib29sIGNhbl9sb2cpIHsKKysgIGlvdmVjIGlvdjsKKysgIGlvdi5pb3Zf YmFzZSA9IGRlc3Q7CisrICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7CisrICBpZiAocHRy YWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2V0KSwg JmlvdikgIT0gMCkgeworKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAicHRyYWNlIjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNpemVvZigq ZGVzdCkpIHsKKysgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5leHBlY3RlZCByZWdp c3RlcnMgc2l6ZSI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIHJldHVybiB0cnVlOwor K30KKysKKytib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAgcmV0dXJu IGZhbHNlOworK30KKysKKytib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0 aWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250 ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewor KyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NC5m LCBjYW5fbG9nKTsKKyt9CisrCisrYm9vbCBHZXRUaHJlYWRBcmVhMzIocGlkX3QgdGlkLAorKyAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQmIGNvbnRleHQsCisrICAgICAg ICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MqIGFkZHJlc3MsCisrICAgICAgICAgICAgICAg ICAgICAgYm9vbCBjYW5fbG9nKSB7CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK2Jvb2wgR2V0 VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJl YWRDb250ZXh0JiBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNz KiBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeworKyAgKmFk ZHJlc3MgPSBjb250ZXh0LnQ2NC50cDsKKysgIHJldHVybiB0cnVlOworK30KKysKKyAjZWxzZQor ICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorSW5kZXg6IHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv dGhyZWFkX2luZm8uaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC90aHJlYWRfaW5mby5oCitAQCAtNzksNiArNzksNDAgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7 CisgICAgIHVpbnQzMl90IGNwMF9zdGF0dXM7CisgICAgIHVpbnQzMl90IGNwMF9jYXVzZTsKKyAg ICAgdWludDMyX3QgcGFkZGluZzFfOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFN SUxZKQorKyAgICAvLyBSZWZsZWN0cyB1c2VyX3JlZ3Nfc3RydWN0IGluIGFzbS9wdHJhY2UuaC4K KysgICAgdWludDMyX3QgcGM7CisrICAgIHVpbnQzMl90IHJhOworKyAgICB1aW50MzJfdCBzcDsK KysgICAgdWludDMyX3QgZ3A7CisrICAgIHVpbnQzMl90IHRwOworKyAgICB1aW50MzJfdCB0MDsK KysgICAgdWludDMyX3QgdDE7CisrICAgIHVpbnQzMl90IHQyOworKyAgICB1aW50MzJfdCBzMDsK KysgICAgdWludDMyX3QgczE7CisrICAgIHVpbnQzMl90IGEwOworKyAgICB1aW50MzJfdCBhMTsK KysgICAgdWludDMyX3QgYTI7CisrICAgIHVpbnQzMl90IGEzOworKyAgICB1aW50MzJfdCBhNDsK KysgICAgdWludDMyX3QgYTU7CisrICAgIHVpbnQzMl90IGE2OworKyAgICB1aW50MzJfdCBhNzsK KysgICAgdWludDMyX3QgczI7CisrICAgIHVpbnQzMl90IHMzOworKyAgICB1aW50MzJfdCBzNDsK KysgICAgdWludDMyX3QgczU7CisrICAgIHVpbnQzMl90IHM2OworKyAgICB1aW50MzJfdCBzNzsK KysgICAgdWludDMyX3Qgczg7CisrICAgIHVpbnQzMl90IHM5OworKyAgICB1aW50MzJfdCBzMTA7 CisrICAgIHVpbnQzMl90IHMxMTsKKysgICAgdWludDMyX3QgdDM7CisrICAgIHVpbnQzMl90IHQ0 OworKyAgICB1aW50MzJfdCB0NTsKKysgICAgdWludDMyX3QgdDY7CisgI2Vsc2UKKyAjZXJyb3Ig UG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKK0BAIC0xMzIsNiArMTY2LDQw IEBAIHVuaW9uIFRocmVhZENvbnRleHQgeworICAgICB1aW50NjRfdCBjcDBfYmFkdmFkZHI7Cisg ICAgIHVpbnQ2NF90IGNwMF9zdGF0dXM7CisgICAgIHVpbnQ2NF90IGNwMF9jYXVzZTsKKysjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSkKKysgICAgLy8gUmVmbGVjdHMgdXNlcl9y ZWdzX3N0cnVjdCBpbiBhc20vcHRyYWNlLmguCisrICAgIHVpbnQ2NF90IHBjOworKyAgICB1aW50 NjRfdCByYTsKKysgICAgdWludDY0X3Qgc3A7CisrICAgIHVpbnQ2NF90IGdwOworKyAgICB1aW50 NjRfdCB0cDsKKysgICAgdWludDY0X3QgdDA7CisrICAgIHVpbnQ2NF90IHQxOworKyAgICB1aW50 NjRfdCB0MjsKKysgICAgdWludDY0X3QgczA7CisrICAgIHVpbnQ2NF90IHMxOworKyAgICB1aW50 NjRfdCBhMDsKKysgICAgdWludDY0X3QgYTE7CisrICAgIHVpbnQ2NF90IGEyOworKyAgICB1aW50 NjRfdCBhMzsKKysgICAgdWludDY0X3QgYTQ7CisrICAgIHVpbnQ2NF90IGE1OworKyAgICB1aW50 NjRfdCBhNjsKKysgICAgdWludDY0X3QgYTc7CisrICAgIHVpbnQ2NF90IHMyOworKyAgICB1aW50 NjRfdCBzMzsKKysgICAgdWludDY0X3QgczQ7CisrICAgIHVpbnQ2NF90IHM1OworKyAgICB1aW50 NjRfdCBzNjsKKysgICAgdWludDY0X3Qgczc7CisrICAgIHVpbnQ2NF90IHM4OworKyAgICB1aW50 NjRfdCBzOTsKKysgICAgdWludDY0X3QgczEwOworKyAgICB1aW50NjRfdCBzMTE7CisrICAgIHVp bnQ2NF90IHQzOworKyAgICB1aW50NjRfdCB0NDsKKysgICAgdWludDY0X3QgdDU7CisrICAgIHVp bnQ2NF90IHQ2OworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCitAQCAtMTQzLDExICsyMTEsMTIgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7Cisg ICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gdXNlcl9yZWdzOworICNlbGlmIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpCisgLy8gTm8gYXBwcm9wcmlhdGUgTmF0aXZlVGhyZWFkc0Nv bnRleHQgdHlwZSBhdmFpbGFibGUgZm9yIE1JUFMKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1JJ U0NWX0ZBTUlMWSkKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVf WDg2X0ZBTUlMWSB8fCBBUkNIX0NQVV9BUk02NAorIAorLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKKysjaWYgIWRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmICFkZWZp bmVkKEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSkKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KQorICAgc3RhdGljX2Fzc2VydChzaXplb2YodDMyX3QpID09IHNpemVvZihOYXRpdmVUaHJlYWRD b250ZXh0KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAjZWxzZSAgLy8gQVJDSF9DUFVfNjRfQklUUwor QEAgLTIxOCw2ICsyODcsOSBAQCB1bmlvbiBGbG9hdENvbnRleHQgeworICAgICB9IGZwcmVnc1sz Ml07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJfdCBmcHVfaWQ7CisrI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9SSVNDVl9GQU1JTFkpCisrICAgIHVpbnQ2NF90IGZbMzJdOworKyAg ICB1aW50MzJfdCBmY3NyOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZCitAQCAtMjUyLDYgKzMyNCw5IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7 CisgICAgIGRvdWJsZSBmcHJlZ3NbMzJdOworICAgICB1aW50MzJfdCBmcGNzcjsKKyAgICAgdWlu dDMyX3QgZnB1X2lkOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorKyAg ICB1aW50NjRfdCBmWzMyXTsKKysgICAgdWludDMyX3QgZmNzcjsKKyAjZWxzZQorICNlcnJvciBQ b3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTI4MCw2ICszNTUsNyBA QCB1bmlvbiBGbG9hdENvbnRleHQgeworICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBz aXplb2YodXNlcl9mcHNpbWRfc3RydWN0KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBv aW50IGNvbnRleHQgbmF0aXZlIHR5cGUgZm9yIGF2YWlsYWJsZSBNSVBTLgorKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUklTQ1ZfRkFNSUxZKQorICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlm ICAvLyBBUkNIX0NQVV9YODYKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1 Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9y aXNjdjY0L2NvbmZpZy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9kYXYxZC9jb25maWcvbGludXgvcmlzY3Y2NC9jb25maWcuaAorQEAgLTAsMCArMSwzOCBAQAor Ky8qCisrICogQXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgorKyAqIERv IG5vdCBlZGl0LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgorKyAqLworKworKyNwcmFnbWEg b25jZQorKworKyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKKysKKysjZGVmaW5lIEFSQ0hfQVJNIDAK KysKKysjZGVmaW5lIEFSQ0hfUFBDNjRMRSAwCisrCisrI2RlZmluZSBBUkNIX1g4NiAwCisrCisr I2RlZmluZSBBUkNIX1g4Nl8zMiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl82NCAwCisrCisrI2Rl ZmluZSBDT05GSUdfMTZCUEMgMQorKworKyNkZWZpbmUgQ09ORklHXzhCUEMgMQorKworKy8vICNk ZWZpbmUgQ09ORklHX0xPRyAxIC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJvbWl1bQor KworKyNkZWZpbmUgRU5ESUFOTkVTU19CSUcgMAorKworKyNkZWZpbmUgSEFWRV9BU00gMAorKwor KyNkZWZpbmUgSEFWRV9BU19GVU5DIDAKKysKKysjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAx CisrCisrI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCisrCisrI2RlZmluZSBIQVZFX1BPU0lYX01F TUFMSUdOIDEKKysKKysjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorSW5kZXg6IHF0d2ViZW5naW5l LWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv bHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oCitAQCAtODgsNyArODgsNyBAQAorICAqLworICNpZiAoZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hf M19fKSB8fCAgIFwKKyAgICAgIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19QUENfXykg fHwgZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8IFwKKy0gICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19zMzkwX18pKSBcCisrICAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fczM5MF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpKSBcCisgICAmJiAoZGVmaW5lZChf X2xpbnV4KSB8fCBkZWZpbmVkKF9fQU5EUk9JRF9fKSkKKyAKKyAjaWZuZGVmIFNZU19DUExVU1BM VVMKK0BAIC0zMDEsNyArMzAxLDcgQEAgc3RydWN0IGtlcm5lbF9vbGRfc2lnYWN0aW9uIHsKKyB9 IF9fYXR0cmlidXRlX18oKHBhY2tlZCxhbGlnbmVkKDQpKSk7CisgI2VsaWYgKGRlZmluZWQoX19t aXBzX18pICYmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIpCisgICAjZGVmaW5lIGtlcm5l bF9vbGRfc2lnYWN0aW9uIGtlcm5lbF9zaWdhY3Rpb24KKy0jZWxpZiBkZWZpbmVkKF9fYWFyY2g2 NF9fKQorKyNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19yaXNjdikKKyAg IC8vIE5vIGtlcm5lbF9vbGRfc2lnYWN0aW9uIGRlZmluZWQgZm9yIGFybTY0LgorICNlbmRpZgor IAorQEAgLTUxOSw3ICs1MTksNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXQgeworICAgaW50ICAgICAg ICAgICAgICAgIHN0X2Jsb2NrczsKKyAgIGludCAgICAgICAgICAgICAgICBzdF9wYWQ0WzE0XTsK KyB9OworLSNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisrI2VsaWYgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorIHN0cnVjdCBrZXJuZWxfc3RhdCB7CisgICB1bnNp Z25lZCBsb25nICAgICAgc3RfZGV2OworICAgdW5zaWduZWQgbG9uZyAgICAgIHN0X2lubzsKK0BA IC0xMDY1LDcgKzEwNjUsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgI2RlZmluZSBfX05S X2dldHJhbmRvbSAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzODQpCisgI2VuZGlmCisg LyogRW5kIG9mIEFSTSAzL0VBQkkgZGVmaW5pdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLworLSNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisrI2Vs aWYgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Jpc2N2KQorICNpZm5kZWYgX19O Ul9zZXR4YXR0cgorICNkZWZpbmUgX19OUl9zZXR4YXR0ciAgICAgICAgICAgICA1CisgI2VuZGlm CitAQCAtMTg4MCw3ICsxODgwLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgeworIAorICAgI3Vu ZGVmICBMU1NfUkVUVVJOCisgICAjaWYgKGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzNfXykgXAorLSAgICAgICB8fCBkZWZpbmVk KF9fQVJNX0VBQklfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3MzOTBf XykpCisrICAgICAgIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fczM5MF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpKQorICAgLyogRmFp bGluZyBzeXN0ZW0gY2FsbHMgcmV0dXJuIGEgbmVnYXRpdmUgcmVzdWx0IGluIHRoZSByYW5nZSBv ZgorICAgICogLTEuLi00MDk1LiBUaGVzZSBhcmUgImVycm5vIiB2YWx1ZXMgd2l0aCB0aGUgc2ln biBpbnZlcnRlZC4KKyAgICAqLworQEAgLTMzNzMsNiArMzM3MywxMjIgQEAgc3RydWN0IGtlcm5l bF9zdGF0ZnMgeworICAgICAgIH0KKyAgICAgICBMU1NfUkVUVVJOKGludCwgX19yZXQpOworICAg ICB9CisrICAjZWxpZiBkZWZpbmVkKF9fcmlzY3YpCisrICAgICN1bmRlZiBMU1NfUkVHCisrICAg ICNkZWZpbmUgTFNTX1JFRyhyLGEpIHJlZ2lzdGVyIGludDY0X3QgX19yIyNyIF9fYXNtX18oImEi I3IpID0gKGludDY0X3QpYQorKyAgICAjdW5kZWYgIExTU19CT0RZCisrICAgICNkZWZpbmUgTFNT X0JPRFkodHlwZSxuYW1lLGFyZ3MuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICAgICAgICByZWdpc3RlciBpbnQ2NF90IF9fcmVzX2EwIF9fYXNtX18oImEw Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICByZWdpc3RlciBpbnQ2 NF90IF9fYTcgX19hc21fXygiYTciKSA9IF9fTlJfIyNuYW1lOyAgICAgICAgICAgICAgICAgXAor KwkgIGludDY0X3QgX19yZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInNjYWxs XG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogIj1yIihfX3Jlc19hMCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJyIihfX2E3KSAs ICMjIGFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgICAgICAgICAgX19yZXMgPSBfX3Jlc19hMDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgIExTU19SRVRVUk4odHlwZSwg X19yZXMpCisrICAgICN1bmRlZiBfc3lzY2FsbDAKKysgICAgI2RlZmluZSBfc3lzY2FsbDAodHlw ZSwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisr ICAgICAgdHlwZSBMU1NfTkFNRShuYW1lKSh2b2lkKSB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgTFNTX0JPRFkodHlwZSwgbmFtZSk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICB9 CisrICAgICN1bmRlZiBfc3lzY2FsbDEKKysgICAgI2RlZmluZSBfc3lzY2FsbDEodHlwZSwgbmFt ZSwgdHlwZTEsIGFyZzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAg dHlwZSBMU1NfTkFNRShuYW1lKSh0eXBlMSBhcmcxKSB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAgICAgTFNTX1JFRygwLCBhcmcxKTsgTFNTX0JPRFkodHlw ZSwgbmFtZSwgInIiKF9fcjApKTsgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICB9CisrICAg ICN1bmRlZiBfc3lzY2FsbDIKKysgICAgI2RlZmluZSBfc3lzY2FsbDIodHlwZSwgbmFtZSwgdHlw ZTEsIGFyZzEsIHR5cGUyLCBhcmcyKSAgICAgICAgICAgICAgICAgICBcCisrICAgICAgdHlwZSBM U1NfTkFNRShuYW1lKSh0eXBlMSBhcmcxLCB0eXBlMiBhcmcyKSB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICAgICAgTFNTX1JFRygwLCBhcmcxKTsgTFNTX1JFRygxLCBhcmcyKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIExTU19CT0RZKHR5 cGUsIG5hbWUsICJyIihfX3IwKSwgInIiKF9fcjEpKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICAgICAgfQorKyAgICAjdW5kZWYgX3N5c2NhbGwzCisrICAgICNkZWZpbmUgX3N5c2Nh bGwzKHR5cGUsIG5hbWUsIHR5cGUxLCBhcmcxLCB0eXBlMiwgYXJnMiwgdHlwZTMsIGFyZzMpICAg ICAgXAorKyAgICAgIHR5cGUgTFNTX05BTUUobmFtZSkodHlwZTEgYXJnMSwgdHlwZTIgYXJnMiwg dHlwZTMgYXJnMykgeyAgICAgICAgICAgICAgIFwKKysgICAgICAgIExTU19SRUcoMCwgYXJnMSk7 IExTU19SRUcoMSwgYXJnMik7IExTU19SRUcoMiwgYXJnMyk7ICAgICAgICAgICAgICAgICBcCisr ICAgICAgICBMU1NfQk9EWSh0eXBlLCBuYW1lLCAiciIoX19yMCksICJyIihfX3IxKSwgInIiKF9f cjIpKTsgICAgICAgICAgICAgICAgXAorKyAgICAgIH0KKysgICAgI3VuZGVmIF9zeXNjYWxsNAor KyAgICAjZGVmaW5lIF9zeXNjYWxsNCh0eXBlLG5hbWUsdHlwZTEsYXJnMSx0eXBlMixhcmcyLHR5 cGUzLGFyZzMsdHlwZTQsYXJnNCkgIFwKKysgICAgICB0eXBlIExTU19OQU1FKG5hbWUpKHR5cGUx IGFyZzEsIHR5cGUyIGFyZzIsIHR5cGUzIGFyZzMsIHR5cGU0IGFyZzQpIHsgICBcCisrICAgICAg ICBMU1NfUkVHKDAsIGFyZzEpOyBMU1NfUkVHKDEsIGFyZzIpOyBMU1NfUkVHKDIsIGFyZzMpOyAg ICAgICAgICAgICAgICAgXAorKyAgICAgICAgTFNTX1JFRygzLCBhcmc0KTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIExTU19C T0RZKHR5cGUsIG5hbWUsICJyIihfX3IwKSwgInIiKF9fcjEpLCAiciIoX19yMiksICJyIihfX3Iz KSk7ICAgICBcCisrICAgICAgfQorKyAgICAjdW5kZWYgX3N5c2NhbGw1CisrICAgICNkZWZpbmUg X3N5c2NhbGw1KHR5cGUsbmFtZSx0eXBlMSxhcmcxLHR5cGUyLGFyZzIsdHlwZTMsYXJnMyx0eXBl NCxhcmc0LCAgXAorKyAgICAgICAgICAgICAgICAgICAgICB0eXBlNSxhcmc1KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICB0eXBlIExTU19OQU1F KG5hbWUpKHR5cGUxIGFyZzEsIHR5cGUyIGFyZzIsIHR5cGUzIGFyZzMsIHR5cGU0IGFyZzQsICAg ICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlNSBhcmc1KSB7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgTFNTX1JFRygwLCBhcmcxKTsg TFNTX1JFRygxLCBhcmcyKTsgTFNTX1JFRygyLCBhcmczKTsgICAgICAgICAgICAgICAgIFwKKysg ICAgICAgIExTU19SRUcoMywgYXJnNCk7IExTU19SRUcoNCwgYXJnNSk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICBMU1NfQk9EWSh0eXBlLCBuYW1lLCAiciIo X19yMCksICJyIihfX3IxKSwgInIiKF9fcjIpLCAiciIoX19yMyksICAgICAgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInIiKF9fcjQpKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKysgICAgICB9CisrICAgICN1bmRlZiBfc3lzY2FsbDYKKysgICAgI2Rl ZmluZSBfc3lzY2FsbDYodHlwZSxuYW1lLHR5cGUxLGFyZzEsdHlwZTIsYXJnMix0eXBlMyxhcmcz LHR5cGU0LGFyZzQsICBcCisrICAgICAgICAgICAgICAgICAgICAgIHR5cGU1LGFyZzUsdHlwZTYs YXJnNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgIHR5cGUgTFNT X05BTUUobmFtZSkodHlwZTEgYXJnMSwgdHlwZTIgYXJnMiwgdHlwZTMgYXJnMywgdHlwZTQgYXJn NCwgICAgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU1IGFyZzUsIHR5cGU2IGFy ZzYpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICBMU1NfUkVHKDAsIGFy ZzEpOyBMU1NfUkVHKDEsIGFyZzIpOyBMU1NfUkVHKDIsIGFyZzMpOyAgICAgICAgICAgICAgICAg XAorKyAgICAgICAgTFNTX1JFRygzLCBhcmc0KTsgTFNTX1JFRyg0LCBhcmc1KTsgTFNTX1JFRyg1 LCBhcmc2KTsgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIExTU19CT0RZKHR5cGUsIG5hbWUs ICJyIihfX3IwKSwgInIiKF9fcjEpLCAiciIoX19yMiksICJyIihfX3IzKSwgICAgICBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiciIoX19yNCksICJyIihfX3I1KSk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICAgIH0KKysKKysgICAgTFNTX0lOTElORSBpbnQgTFNT X05BTUUoY2xvbmUpKGludCAoKmZuKSh2b2lkICopLCB2b2lkICpjaGlsZF9zdGFjaywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncywgdm9pZCAqYXJnLCBpbnQg KnBhcmVudF90aWRwdHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk ICpuZXd0bHMsIGludCAqY2hpbGRfdGlkcHRyKSB7CisrICAgICAgaW50NjRfdCBfX3JlczsKKysg ICAgICB7CisrICAgICAgICByZWdpc3RlciBpbnQ2NF90IF9fcmVzX2EwIF9fYXNtX18oImEwIik7 CisrICAgICAgICByZWdpc3RlciB1aW50NjRfdCBfX2ZsYWdzIF9fYXNtX18oImEwIikgPSBmbGFn czsKKysgICAgICAgIHJlZ2lzdGVyIHZvaWQgKl9fc3RhY2sgX19hc21fXygiYTEiKSA9IGNoaWxk X3N0YWNrOworKyAgICAgICAgcmVnaXN0ZXIgdm9pZCAqX19wdGlkICBfX2FzbV9fKCJhMiIpID0g cGFyZW50X3RpZHB0cjsKKysgICAgICAgIHJlZ2lzdGVyIHZvaWQgKl9fdGxzICAgX19hc21fXygi YTMiKSA9IG5ld3RsczsKKysgICAgICAgIHJlZ2lzdGVyIGludCAgKl9fY3RpZCAgX19hc21fXygi YTQiKSA9IGNoaWxkX3RpZHB0cjsKKysgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKC8qIFB1 c2ggImFyZyIgYW5kICJmbiIgb250byB0aGUgc3RhY2sgdGhhdCB3aWxsIGJlCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKiB1c2VkIGJ5IHRoZSBjaGlsZC4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqLworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZGkg ICAgJTIsJTIsLTE2XG4iCisrCQkJICAgICAic2QgICAgICAlMSwgMCglMilcbiIKKysJCQkgICAg ICJzZCAgICAgICU0LCA4KCUyKVxuIgorKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogJWEwID0gc3lzY2FsbCglYTAgPSBmbGFncywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqICAgICAgICAgICAgICAgJWExID0gY2hpbGRfc3RhY2ssCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICVhMiA9IHBhcmVudF90aWRwdHIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICVhMyA9IG5ld3RscywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgICAgICAgICAgJWE0ID0gY2hp bGRfdGlkcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibGkgICAgICBhNywgJThcbiIKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJzY2FsbFxuIgorKworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogaWYgKCVhMCAhPSAwKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICByZXR1 cm4gJWEwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYm5leiAgICAlMCwgMWZcbiIKKysKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIEluIHRoZSBjaGlsZCwgbm93LiBDYWxsICJmbihhcmcpIi4KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImxkICAgICAgYTEsIDAoc3ApXG4iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi bGQgICAgICBhMCwgOChzcClcbiIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqYWxy ICAgIGExXG4iCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDYWxsIF9leGl0 KCVhMCkuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJsaSAgICAgIGE3LCAlOVxuIgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInNjYWxsXG4iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIjE6XG4iCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9ciIgKF9fcmVzX2EwKQorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiAiciIoZm4pLCAiciIoX19zdGFjayksICJyIihfX2ZsYWdz KSwgInIiKGFyZyksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIihfX3B0aWQp LCAiciIoX190bHMpLCAiciIoX19jdGlkKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImkiKF9fTlJfY2xvbmUpLCAiaSIoX19OUl9leGl0KQorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiAiY2MiLCAibWVtb3J5Iik7CisrICAgICAgICBfX3JlcyA9IF9fcmVzX2EwOwor KyAgICAgIH0KKysgICAgICBMU1NfUkVUVVJOKGludCwgX19yZXMpOworKyAgICB9CisgICAjZW5k aWYKKyAgICNkZWZpbmUgX19OUl9fZXhpdCAgIF9fTlJfZXhpdAorICAgI2RlZmluZSBfX05SX19n ZXR0aWQgX19OUl9nZXR0aWQKK0BAIC00MTgxLDcgKzQyOTcsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0 YXRmcyB7CisgICAgICAgTFNTX1NDX0JPRFkoNCwgaW50LCA4LCBkLCB0eXBlLCBwcm90b2NvbCwg c3YpOworICAgICB9CisgICAjZW5kaWYKKy0gICNpZiBkZWZpbmVkKF9fQVJNX0VBQklfXykgfHwg ZGVmaW5lZCAoX19hYXJjaDY0X18pCisrICAjaWYgZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8IGRl ZmluZWQgKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcmlzY3YpCisgICAgIExTU19JTkxJTkUg X3N5c2NhbGwzKHNzaXplX3QsIHJlY3Ztc2csIGludCwgcywgc3RydWN0IGtlcm5lbF9tc2doZHIq LCBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MpCisgICAgIExTU19J TkxJTkUgX3N5c2NhbGwzKHNzaXplX3QsIHNlbmRtc2csIGludCwgcywgY29uc3Qgc3RydWN0IGtl cm5lbF9tc2doZHIqLAorQEAgLTQ1MDMsNyArNDYxOSw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZz IHsKKyAvLyBUT0RPOiBkZWZpbmUgdGhpcyBpbiBhbiBhcmNoLWluZGVwZW5kYW50IHdheSBpbnN0 ZWFkIG9mIGlubGluaW5nIHRoZSBjbG9uZQorIC8vICAgICAgIHN5c2NhbGwgYm9keS4KKyAKKy0j IGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisrIyBpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcmlzY3YpCisgICBMU1NfSU5MSU5FIHBpZF90IExTU19OQU1FKGZvcmspKHZvaWQp IHsKKyAgICAgLy8gTm8gZm9yayBzeXNjYWxsIG9uIGFhcmNoNjQgLSBpbXBsZW1lbnQgYnkgbWVh bnMgb2YgdGhlIGNsb25lIHN5c2NhbGwuCisgICAgIC8vIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90 IHJlc2V0IGdsaWJjJ3MgY2FjaGVkIHZpZXcgb2YgdGhlIFBJRC9USUQsIHNvCitJbmRleDogcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvQlVJTEQuZ24KKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0x MC4wL0JVSUxELmduCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZt LTEwLjAvQlVJTEQuZ24KK0BAIC0xNDksNiArMTQ5LDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3Vy Y2Vfc2V0KCJzd2lmdHNoYWRlcgorICAgICBkZXBzICs9IFsgIjpzd2lmdHNoYWRlcl9sbHZtX3Bw YyIgXQorICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9 PSAieDY0IikgeworICAgICBkZXBzICs9IFsgIjpzd2lmdHNoYWRlcl9sbHZtX3g4NiIgXQorKyAg fSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicmlzY3Y2NCIpIHsKKyAgIH0gZWxzZSB7CisgICAg IGFzc2VydChmYWxzZSwgIlVuc3VwcG9ydGVkIGN1cnJlbnRfY3B1IikKKyAgIH0KK0luZGV4OiBx dHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9j YXB0dXJlL2RpZmZlcl9ibG9jay5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUu MTUuNy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVz a3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYworQEAgLTMwLDcgKzMwLDcgQEAgYm9vbCBWZWN0 b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4X3QqIGltYQorICAgc3RhdGljIGJvb2wgKCpkaWZmX3By b2MpKGNvbnN0IHVpbnQ4X3QqLCBjb25zdCB1aW50OF90KikgPSBudWxscHRyOworIAorICAgaWYg KCFkaWZmX3Byb2MpIHsKKy0jaWYgZGVmaW5lZChXRUJSVENfQVJDSF9BUk1fRkFNSUxZKSB8fCBk ZWZpbmVkKFdFQlJUQ19BUkNIX01JUFNfRkFNSUxZKQorKyNpZiBkZWZpbmVkKFdFQlJUQ19BUkNI X0FSTV9GQU1JTFkpIHx8IGRlZmluZWQoV0VCUlRDX0FSQ0hfTUlQU19GQU1JTFkpIHx8IGRlZmlu ZWQoV0VCUlRDX0FSQ0hfUklTQ1ZfRkFNSUxZKQorICAgICAvLyBGb3IgQVJNIGFuZCBNSVBTIHBy b2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgorICAgICAvLyBUT0RPKGhjbGFtKTogSW1w bGVtZW50IGEgTkVPTiB2ZXJzaW9uLgorICAgICBkaWZmX3Byb2MgPSAmVmVjdG9yRGlmZmVyZW5j ZV9DOworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNo LmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCitAQCAtNTAs NiArNTAsMTAgQEAKKyAjZWxpZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQorICNkZWZpbmUgV0VC UlRDX0FSQ0hfMzJfQklUUworICNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgorKyNl bGlmIGRlZmluZWQoX19yaXNjdikgJiYgX19yaXNjdl94bGVuID09IDY0CisrI2RlZmluZSBXRUJS VENfQVJDSF9SSVNDVl9GQU1JTFkKKysjZGVmaW5lIFdFQlJUQ19BUkNIXzY0X0JJVFMKKysjZGVm aW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KKyAjZWxzZQorICNlcnJvciBQbGVhc2UgYWRk IHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0Y19iYXNlL3N5c3RlbS9hcmNoLmgK KyAjZW5kaWYKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNy ZHBhcnR5L2duL3Rvb2xzL2duL2FyZ3MuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1l dmVyeXdoZXJlLXNyYy01LjE1Ljcub3JpZy9zcmMvM3JkcGFydHkvZ24vdG9vbHMvZ24vYXJncy5j YworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuNy9zcmMvM3JkcGFydHkvZ24v dG9vbHMvZ24vYXJncy5jYworQEAgLTMyOSw2ICszMjksNyBAQCB2b2lkIEFyZ3M6OlNldFN5c3Rl bVZhcnNMb2NrZWQoU2NvcGUqIGRlCisgICBzdGF0aWMgY29uc3QgY2hhciBrTWlwczY0W10gPSAi bWlwczY0ZWwiOworICAgc3RhdGljIGNvbnN0IGNoYXIga1MzOTBYW10gPSAiczM5MHgiOworICAg c3RhdGljIGNvbnN0IGNoYXIga1BQQzY0W10gPSAicHBjNjQiOworKyAgc3RhdGljIGNvbnN0IGNo YXIga1Jpc2N2NjRbXSA9ICJyaXNjdjY0IjsKKyAgIGNvbnN0IGNoYXIqIGFyY2ggPSBudWxscHRy OworIAorICAgLy8gU2V0IHRoZSBob3N0IENQVSBhcmNoaXRlY3R1cmUgYmFzZWQgb24gdGhlIHVu ZGVybHlpbmcgT1MsIG5vdAorQEAgLTM1Myw2ICszNTQsOCBAQCB2b2lkIEFyZ3M6OlNldFN5c3Rl bVZhcnNMb2NrZWQoU2NvcGUqIGRlCisgICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvIHVzZSB0aGUg c2FtZSB0b29sY2hhaW4gYXMgcHBjNjQgQkUKKyAgICAgLy8gYW5kIHNwZWNpZmljIGZsYWdzIGFy ZSBpbmNsdWRlZCB1c2luZyB0aGUgaG9zdF9ieXRlb3JkZXIgbG9naWMuCisgICAgIGFyY2ggPSBr UFBDNjQ7CisrICBlbHNlIGlmIChvc19hcmNoID09ICJyaXNjdjY0IikKKysgICAgYXJjaCA9IGtS aXNjdjY0OworICAgZWxzZQorICAgICBDSEVDSyhmYWxzZSkgPDwgIk9TIGFyY2hpdGVjdHVyZSBu b3QgaGFuZGxlZC4gKCIgPDwgb3NfYXJjaCA8PCAiKSI7CisgCitJbmRleDogcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS43L3NyYy8zcmRwYXJ0eS9nbi91dGlsL2J1aWxkX2NvbmZpZy5o Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS43Lm9yaWcv c3JjLzNyZHBhcnR5L2duL3V0aWwvYnVpbGRfY29uZmlnLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1Ljcvc3JjLzNyZHBhcnR5L2duL3V0aWwvYnVpbGRfY29uZmlnLmgKK0BA IC0xNzIsNiArMTcyLDE2IEBACisgI2RlZmluZSBBUkNIX0NQVV8zMl9CSVRTIDEKKyAjZGVmaW5l IEFSQ0hfQ1BVX0JJR19FTkRJQU4gMQorICNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19yaXNjdikK KysjZGVmaW5lIEFSQ0hfQ1BVX1JJU0NWX0ZBTUlMWSAxCisrI2lmIF9fcmlzY3ZfeGxlbiA9PSA2 NAorKyNkZWZpbmUgQVJDSF9DUFVfUklTQ1Y2NCAxCisrI2RlZmluZSBBUkNIX0NQVV82NF9CSVRT IDEKKysjZWxzZQorKyNkZWZpbmUgQVJDSF9DUFVfUklTQ1YzMiAxCisrI2RlZmluZSBBUkNIX0NQ VV8zMl9CSVRTIDEKKysjZW5kaWYKKysjZGVmaW5lIEFSQ0hfQ1BVX0xJVFRMRV9FTkRJQU4gMQor ICNlbHNlCisgI2Vycm9yIFBsZWFzZSBhZGQgc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUg aW4gYnVpbGRfY29uZmlnLmgKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1LXdlYmVu Z2luZS9wYXRjaGVzLzAxMTUtcmlzY3Y2NC12OC5wYXRjaCBiL3NyY3BrZ3MvcXQ1LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMTUtcmlzY3Y2NC12OC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi5iYzc4NzBhYTUxYTVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDUtd2ViZW5naW5lL3BhdGNoZXMvMDExNS1yaXNjdjY0LXY4LnBhdGNoCkBAIC0wLDAgKzEs MzMyNTQgQEAKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxELmduCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxE LmduCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS92OC9CVUlMRC5nbgorQEAgLTcxNCw3ICs3MTQsNyBAQCBjb25maWcoInRvb2xjaGFp biIpIHsKKyAKKyAgICMgTWlwczY0ZWwvbWlwc2VsIHNpbXVsYXRvcnMuCisgICBpZiAodGFyZ2V0 X2lzX3NpbXVsYXRvciAmJgorLSAgICAgICh2OF9jdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCB2 OF9jdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKSkgeworKyAgICAgICh2OF9jdXJyZW50X2NwdSA9 PSAibWlwc2VsIiB8fCB2OF9jdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiIHx8IHY4X2N1cnJlbnRf Y3B1ID09ICJyaXNjdjY0IikpIHsKKyAgICAgZGVmaW5lcyArPSBbICJfTUlQU19UQVJHRVRfU0lN VUxBVE9SIiBdCisgICB9CisgCitAQCAtODE3LDYgKzgxNywyMSBAQCBjb25maWcoInRvb2xjaGFp biIpIHsKKyAgICAgfQorICAgfQorIAorKyAgIyBVbmRlciBzaW11bGF0b3IgYnVpbGQsIGNvbXBp bGVyIHdpbGwgbm90IHByb3ZpZGUgX19yaXNjdl94bGVuLiBEZWZpbmUgaGVyZQorKyAgaWYgKHY4 X2N1cnJlbnRfY3B1ID09ICJyaXNjdiIpIHsKKysgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRf QVJDSF9SSVNDViIgXQorKyAgICBkZWZpbmVzICs9IFsgIl9fcmlzY3ZfeGxlbj0zMiIgXQorKyAg fQorKworKyAgaWYgKHY4X2N1cnJlbnRfY3B1ID09ICJyaXNjdjY0IikgeworKyAgICBkZWZpbmVz ICs9IFsgIlY4X1RBUkdFVF9BUkNIX1JJU0NWNjQiIF0KKysgICAgZGVmaW5lcyArPSBbICJfX3Jp c2N2X3hsZW49NjQiIF0KKysgICAgI0ZJWE1FOiBUZW1wb3JhcmlseSB1c2UgTUlQUyBtYWNybyBm b3IgdGhlIGJ1aWxkaW5nLgorKyAgICBkZWZpbmVzICs9IFsKKysgICAgICAgICJDQU5fVVNFX0ZQ VV9JTlNUUlVDVElPTlMiLAorKyAgICAgIF0KKysgIH0KKysKKyAgIGlmICh2OF9jdXJyZW50X2Nw dSA9PSAieDg2IikgeworICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX0lBMzIiIF0K KyAgICAgaWYgKGlzX3dpbikgeworQEAgLTkwNSw3ICs5MjAsNyBAQCBjb25maWcoInRvb2xjaGFp biIpIHsKKyAgICAgfQorIAorICAgICBpZiAodjhfY3VycmVudF9jcHUgPT0gIng2NCIgfHwgdjhf Y3VycmVudF9jcHUgPT0gImFybTY0IiB8fAorLSAgICAgICAgdjhfY3VycmVudF9jcHUgPT0gIm1p cHM2NGVsIikgeworKyAgICAgICAgdjhfY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIiB8fCB2OF9j dXJyZW50X2NwdSA9PSAicmlzY3Y2NCIpIHsKKyAgICAgICBjZmxhZ3MgKz0gWyAiLVdzaG9ydGVu LTY0LXRvLTMyIiBdCisgICAgIH0KKyAgIH0KK0BAIC0xODg4LDYgKzE5MDMsMTYgQEAgdjhfc291 cmNlX3NldCgidjhfaW5pdGlhbGl6ZXJzIikgeworICAgICAgICMjIyBnY21vbGUoYXJjaDpzMzkw KSAjIyMKKyAgICAgICAic3JjL2J1aWx0aW5zL3MzOTAvYnVpbHRpbnMtczM5MC5jYyIsCisgICAg IF0KKysgIH0gZWxzZSBpZiAodjhfY3VycmVudF9jcHUgPT0gInJpc2N2NjQiKSB7CisrICAgIHNv dXJjZXMgKz0gWworKyAgICAgICMjIyBnY21vbGUoYXJjaDpyaXNjdjY0KSAjIyMKKysgICAgICAi c3JjL2J1aWx0aW5zL3Jpc2N2NjQvYnVpbHRpbnMtcmlzY3Y2NC5jYyIsCisrICAgIF0KKysgIH0g IGVsc2UgaWYgKHY4X2N1cnJlbnRfY3B1ID09ICJyaXNjdiIpIHsKKysgICAgc291cmNlcyArPSBb CisrICAgICAgIyMjIGdjbW9sZShhcmNoOnJpc2N2KSAjIyMKKysgICAgICAic3JjL2J1aWx0aW5z L3Jpc2N2L2J1aWx0aW5zLXJpc2N2LmNjIiwKKysgICAgXQorICAgfQorIAorICAgaWYgKCF2OF9l bmFibGVfaTE4bl9zdXBwb3J0KSB7CitAQCAtMzc2Miw2ICszNzg3LDYwIEBAIHY4X3NvdXJjZV9z ZXQoInY4X2Jhc2Vfd2l0aG91dF9jb21waWxlciIKKyAgICAgICAic3JjL3JlZ2V4cC9zMzkwL3Jl Z2V4cC1tYWNyby1hc3NlbWJsZXItczM5MC5oIiwKKyAgICAgICAic3JjL3dhc20vYmFzZWxpbmUv czM5MC9saWZ0b2ZmLWFzc2VtYmxlci1zMzkwLmgiLAorICAgICBdCisrICB9IGVsc2UgaWYgKHY4 X2N1cnJlbnRfY3B1ID09ICJyaXNjdjY0IikgeworKyAgICBzb3VyY2VzICs9IFsgICMjIyBnY21v bGUoYXJjaDpyaXNjdjY0KSAjIyMKKysgICAgICAic3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJs ZXItcmlzY3Y2NC1pbmwuaCIsCisrICAgICAgInNyYy9jb2RlZ2VuL3Jpc2N2NjQvYXNzZW1ibGVy LXJpc2N2NjQuY2MiLAorKyAgICAgICJzcmMvY29kZWdlbi9yaXNjdjY0L2Fzc2VtYmxlci1yaXNj djY0LmgiLAorKyAgICAgICJzcmMvY29kZWdlbi9yaXNjdjY0L2NvbnN0YW50cy1yaXNjdjY0LmNj IiwKKysgICAgICAic3JjL2NvZGVnZW4vcmlzY3Y2NC9jb25zdGFudHMtcmlzY3Y2NC5oIiwKKysg ICAgICAic3JjL2NvZGVnZW4vcmlzY3Y2NC9jcHUtcmlzY3Y2NC5jYyIsCisrICAgICAgInNyYy9j b2RlZ2VuL3Jpc2N2NjQvaW50ZXJmYWNlLWRlc2NyaXB0b3JzLXJpc2N2NjQuY2MiLAorKyAgICAg ICJzcmMvY29kZWdlbi9yaXNjdjY0L21hY3JvLWFzc2VtYmxlci1yaXNjdjY0LmNjIiwKKysgICAg ICAic3JjL2NvZGVnZW4vcmlzY3Y2NC9tYWNyby1hc3NlbWJsZXItcmlzY3Y2NC5oIiwKKysgICAg ICAic3JjL2NvZGVnZW4vcmlzY3Y2NC9yZWdpc3Rlci1yaXNjdjY0LmgiLAorKyAgICAgICJzcmMv Y29tcGlsZXIvYmFja2VuZC9yaXNjdjY0L2NvZGUtZ2VuZXJhdG9yLXJpc2N2NjQuY2MiLAorKyAg ICAgICJzcmMvY29tcGlsZXIvYmFja2VuZC9yaXNjdjY0L2luc3RydWN0aW9uLWNvZGVzLXJpc2N2 NjQuaCIsCisrICAgICAgInNyYy9jb21waWxlci9iYWNrZW5kL3Jpc2N2NjQvaW5zdHJ1Y3Rpb24t c2NoZWR1bGVyLXJpc2N2NjQuY2MiLAorKyAgICAgICJzcmMvY29tcGlsZXIvYmFja2VuZC9yaXNj djY0L2luc3RydWN0aW9uLXNlbGVjdG9yLXJpc2N2NjQuY2MiLAorKyAgICAgICJzcmMvZGVidWcv cmlzY3Y2NC9kZWJ1Zy1yaXNjdjY0LmNjIiwKKysgICAgICAic3JjL2Rlb3B0aW1pemVyL3Jpc2N2 NjQvZGVvcHRpbWl6ZXItcmlzY3Y2NC5jYyIsCisrICAgICAgInNyYy9kaWFnbm9zdGljcy9yaXNj djY0L2Rpc2FzbS1yaXNjdjY0LmNjIiwKKysgICAgICAic3JjL2V4ZWN1dGlvbi9yaXNjdjY0L2Zy YW1lLWNvbnN0YW50cy1yaXNjdjY0LmNjIiwKKysgICAgICAic3JjL2V4ZWN1dGlvbi9yaXNjdjY0 L2ZyYW1lLWNvbnN0YW50cy1yaXNjdjY0LmgiLAorKyAgICAgICJzcmMvZXhlY3V0aW9uL3Jpc2N2 NjQvc2ltdWxhdG9yLXJpc2N2NjQuY2MiLAorKyAgICAgICJzcmMvZXhlY3V0aW9uL3Jpc2N2NjQv c2ltdWxhdG9yLXJpc2N2NjQuaCIsCisrICAgICAgInNyYy9yZWdleHAvcmlzY3Y2NC9yZWdleHAt bWFjcm8tYXNzZW1ibGVyLXJpc2N2NjQuY2MiLAorKyAgICAgICJzcmMvcmVnZXhwL3Jpc2N2NjQv cmVnZXhwLW1hY3JvLWFzc2VtYmxlci1yaXNjdjY0LmgiLAorKyAgICAgICJzcmMvd2FzbS9iYXNl bGluZS9yaXNjdjY0L2xpZnRvZmYtYXNzZW1ibGVyLXJpc2N2NjQuaCIsCisrICAgIF0KKysgIH0g ZWxzZSBpZiAodjhfY3VycmVudF9jcHUgPT0gInJpc2N2IikgeworKyAgICBzb3VyY2VzICs9IFsg ICMjIyBnY21vbGUoYXJjaDpyaXNjdikgIyMjCisrICAgICAgInNyYy9jb2RlZ2VuL3Jpc2N2L2Fz c2VtYmxlci1yaXNjdi1pbmwuaCIsCisrICAgICAgInNyYy9jb2RlZ2VuL3Jpc2N2L2Fzc2VtYmxl ci1yaXNjdi5jYyIsCisrICAgICAgInNyYy9jb2RlZ2VuL3Jpc2N2L2Fzc2VtYmxlci1yaXNjdi5o IiwKKysgICAgICAic3JjL2NvZGVnZW4vcmlzY3YvY29uc3RhbnRzLXJpc2N2LmNjIiwKKysgICAg ICAic3JjL2NvZGVnZW4vcmlzY3YvY29uc3RhbnRzLXJpc2N2LmgiLAorKyAgICAgICJzcmMvY29k ZWdlbi9yaXNjdi9jcHUtcmlzY3YuY2MiLAorKyAgICAgICJzcmMvY29kZWdlbi9yaXNjdi9pbnRl cmZhY2UtZGVzY3JpcHRvcnMtcmlzY3YuY2MiLAorKyAgICAgICJzcmMvY29kZWdlbi9yaXNjdi9t YWNyby1hc3NlbWJsZXItcmlzY3YuY2MiLAorKyAgICAgICJzcmMvY29kZWdlbi9yaXNjdi9tYWNy by1hc3NlbWJsZXItcmlzY3YuaCIsCisrICAgICAgInNyYy9jb2RlZ2VuL3Jpc2N2L3JlZ2lzdGVy LXJpc2N2LmgiLAorKyAgICAgICJzcmMvY29tcGlsZXIvYmFja2VuZC9yaXNjdi9jb2RlLWdlbmVy YXRvci1yaXNjdi5jYyIsCisrICAgICAgInNyYy9jb21waWxlci9iYWNrZW5kL3Jpc2N2L2luc3Ry dWN0aW9uLWNvZGVzLXJpc2N2LmgiLAorKyAgICAgICJzcmMvY29tcGlsZXIvYmFja2VuZC9yaXNj di9pbnN0cnVjdGlvbi1zY2hlZHVsZXItcmlzY3YuY2MiLAorKyAgICAgICJzcmMvY29tcGlsZXIv YmFja2VuZC9yaXNjdi9pbnN0cnVjdGlvbi1zZWxlY3Rvci1yaXNjdi5jYyIsCisrICAgICAgInNy Yy9kZWJ1Zy9yaXNjdi9kZWJ1Zy1yaXNjdi5jYyIsCisrICAgICAgInNyYy9kZW9wdGltaXplci9y aXNjdi9kZW9wdGltaXplci1yaXNjdi5jYyIsCisrICAgICAgInNyYy9kaWFnbm9zdGljcy9yaXNj di9kaXNhc20tcmlzY3YuY2MiLAorKyAgICAgICJzcmMvZXhlY3V0aW9uL3Jpc2N2L2ZyYW1lLWNv bnN0YW50cy1yaXNjdi5jYyIsCisrICAgICAgInNyYy9leGVjdXRpb24vcmlzY3YvZnJhbWUtY29u c3RhbnRzLXJpc2N2LmgiLAorKyAgICAgICJzcmMvZXhlY3V0aW9uL3Jpc2N2L3NpbXVsYXRvci1y aXNjdi5jYyIsCisrICAgICAgInNyYy9leGVjdXRpb24vcmlzY3Yvc2ltdWxhdG9yLXJpc2N2Lmgi LAorKyAgICAgICJzcmMvcmVnZXhwL3Jpc2N2L3JlZ2V4cC1tYWNyby1hc3NlbWJsZXItcmlzY3Yu Y2MiLAorKyAgICAgICJzcmMvcmVnZXhwL3Jpc2N2L3JlZ2V4cC1tYWNyby1hc3NlbWJsZXItcmlz Y3YuaCIsCisrICAgICAgInNyYy93YXNtL2Jhc2VsaW5lL3Jpc2N2L2xpZnRvZmYtYXNzZW1ibGVy LXJpc2N2LmgiLAorKyAgICBdCisgICB9CisgCisgICBjb25maWdzID0gWworQEAgLTM4NjIsNyAr Mzk0MSw4IEBAIHY4X3NvdXJjZV9zZXQoInY4X2Jhc2Vfd2l0aG91dF9jb21waWxlciIKKyAgIGlm ICh2OF9jdXJyZW50X2NwdSA9PSAibWlwcyIgfHwgdjhfY3VycmVudF9jcHUgPT0gIm1pcHNlbCIg fHwKKyAgICAgICB2OF9jdXJyZW50X2NwdSA9PSAibWlwczY0IiB8fCB2OF9jdXJyZW50X2NwdSA9 PSAibWlwczY0ZWwiIHx8CisgICAgICAgdjhfY3VycmVudF9jcHUgPT0gInBwYyIgfHwgdjhfY3Vy cmVudF9jcHUgPT0gInBwYzY0IiB8fAorLSAgICAgIHY4X2N1cnJlbnRfY3B1ID09ICJzMzkwIiB8 fCB2OF9jdXJyZW50X2NwdSA9PSAiczM5MHgiKSB7CisrICAgICAgdjhfY3VycmVudF9jcHUgPT0g InMzOTAiIHx8IHY4X2N1cnJlbnRfY3B1ID09ICJzMzkweCIgfHwKKysgICAgICB2OF9jdXJyZW50 X2NwdSA9PSAicmlzY3Y2NCIgfHwgdjhfY3VycmVudF9jcHUgPT0gInJpc2N2IikgeworICAgICBs aWJzICs9IFsgImF0b21pYyIgXQorICAgfQorIAorQEAgLTQxOTcsNyArNDI3Nyw3IEBAIHY4X2Nv bXBvbmVudCgidjhfbGliYmFzZSIpIHsKKyAgIH0KKyAKKyAgIGlmIChpc191YnNhbiAmJiAodjhf Y3VycmVudF9jcHUgPT0gIng4NiIgfHwgdjhfY3VycmVudF9jcHUgPT0gImFybSIgfHwKKy0gICAg ICAgICAgICAgICAgICAgdjhfY3VycmVudF9jcHUgPT0gIm1pcHMiKSkgeworKyAgICAgICAgICAg ICAgICAgICB2OF9jdXJyZW50X2NwdSA9PSAibWlwcyIgfHwgdjhfY3VycmVudF9jcHUgPT0gInJp c2N2IikpIHsKKyAgICAgIyBTcGVjaWFsIFVCU2FuIDMyLWJpdCByZXF1aXJlbWVudC4KKyAgICAg c291cmNlcyArPSBbICJzcmMvYmFzZS91YnNhbi5jYyIgXQorICAgfQorQEAgLTQzMjgsNiArNDQw OCw4IEBAIHY4X3NvdXJjZV9zZXQoInY4X2NwcGdjX3NoYXJlZCIpIHsKKyAgICAgICBzb3VyY2Vz ICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL21pcHMvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIiBdCisg ICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIikgeworICAgICAgIHNvdXJj ZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vbWlwczY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyIg XQorKyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJyaXNjdjY0IikgeworKyAgICAgIHNv dXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vcmlzY3Y2NC9wdXNoX3JlZ2lzdGVyc19hc20u Y2MiIF0KKyAgICAgfQorICAgfSBlbHNlIGlmIChpc193aW4pIHsKKyAgICAgaWYgKGN1cnJlbnRf Y3B1ID09ICJ4NjQiKSB7CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4z L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9nbmkvc25hcHNob3RfdG9vbGNoYWluLmduaQorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS92OC9nbmkvc25hcHNob3RfdG9vbGNoYWluLmduaQorKysrIHF0d2Vi ZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvZ25p L3NuYXBzaG90X3Rvb2xjaGFpbi5nbmkKK0BAIC03OSw3ICs3OSw4IEBAIGlmICh2OF9zbmFwc2hv dF90b29sY2hhaW4gPT0gIiIpIHsKKyAKKyAgICAgaWYgKHY4X2N1cnJlbnRfY3B1ID09ICJ4NjQi IHx8IHY4X2N1cnJlbnRfY3B1ID09ICJ4ODYiKSB7CisgICAgICAgX2NwdXMgPSB2OF9jdXJyZW50 X2NwdQorLSAgICB9IGVsc2UgaWYgKHY4X2N1cnJlbnRfY3B1ID09ICJhcm02NCIgfHwgdjhfY3Vy cmVudF9jcHUgPT0gIm1pcHM2NGVsIikgeworKyAgICB9IGVsc2UgaWYgKHY4X2N1cnJlbnRfY3B1 ID09ICJhcm02NCIgfHwgdjhfY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIiAKKysgICAgICAgICAg ICAgICB8fCB2OF9jdXJyZW50X2NwdSA9PSAicmlzY3Y2NCIpIHsKKyAgICAgICBpZiAoaXNfd2lu ICYmIHY4X2N1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKKyAgICAgICAgICMgc2V0IF9jcHVzIHRv IGJsYW5rIGZvciBXaW5kb3dzIEFSTTY0IHNvIGhvc3RfdG9vbGNoYWluIGNvdWxkIGJlCisgICAg ICAgICAjIHNlbGVjdGVkIGFzIHNuYXBzaG90IHRvb2xjaGFpbiBsYXRlci4KK0luZGV4OiBxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L2lu ZnJhL21iL21iX2NvbmZpZy5weWwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdo ZXJlLXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvaW5mcmEvbWIvbWJf Y29uZmlnLnB5bAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvaW5mcmEvbWIvbWJfY29uZmlnLnB5bAorQEAgLTMzLDYgKzMzLDEy IEBACisgICAgICAgJ3BwYzY0LmRlYnVnLnNpbSc6ICdkZWZhdWx0X2RlYnVnX3BwYzY0X3NpbScs CisgICAgICAgJ3BwYzY0Lm9wdGRlYnVnLnNpbSc6ICdkZWZhdWx0X29wdGRlYnVnX3BwYzY0X3Np bScsCisgICAgICAgJ3BwYzY0LnJlbGVhc2Uuc2ltJzogJ2RlZmF1bHRfcmVsZWFzZV9wcGM2NF9z aW0nLAorKyAgICAgICdyaXNjdjY0LmRlYnVnJzogJ2RlZmF1bHRfZGVidWdfcmlzY3Y2NCcsCisr ICAgICAgJ3Jpc2N2NjQub3B0ZGVidWcnOiAnZGVmYXVsdF9vcHRkZWJ1Z19yaXNjdjY0JywKKysg ICAgICAncmlzY3Y2NC5yZWxlYXNlJzogJ2RlZmF1bHRfcmVsZWFzZV9yaXNjdjY0JywKKysgICAg ICAncmlzY3Y2NC5kZWJ1Zy5zaW0nOiAnZGVmYXVsdF9kZWJ1Z19yaXNjdjY0X3NpbScsCisrICAg ICAgJ3Jpc2N2NjQub3B0ZGVidWcuc2ltJzogJ2RlZmF1bHRfb3B0ZGVidWdfcmlzY3Y2NF9zaW0n LAorKyAgICAgICdyaXNjdjY0LnJlbGVhc2Uuc2ltJzogJ2RlZmF1bHRfcmVsZWFzZV9yaXNjdjY0 X3NpbScsCisgICAgICAgJ3MzOTB4LmRlYnVnJzogJ2RlZmF1bHRfZGVidWdfczM5MHgnLAorICAg ICAgICdzMzkweC5vcHRkZWJ1Zyc6ICdkZWZhdWx0X29wdGRlYnVnX3MzOTB4JywKKyAgICAgICAn czM5MHgucmVsZWFzZSc6ICdkZWZhdWx0X3JlbGVhc2VfczM5MHgnLAorQEAgLTE3NSw2ICsxODEs OCBAQAorICAgICAgICMgSUJNLgorICAgICAgICdWOCBMaW51eCAtIHBwYzY0IC0gc2ltJzogJ3Jl bGVhc2Vfc2ltdWxhdGVfcHBjNjQnLAorICAgICAgICdWOCBMaW51eCAtIHMzOTB4IC0gc2ltJzog J3JlbGVhc2Vfc2ltdWxhdGVfczM5MHgnLAorKyAgICAgICMgUklTQy1WCisrICAgICAgJ1Y4IExp bnV4IC0gcmlzY3Y2NCAtIHNpbSc6ICdyZWxlYXNlX3NpbXVsYXRlX3Jpc2N2NjQnLAorICAgICB9 LAorICAgICAnY2xpZW50LnY4LmJyYW5jaGVzJzogeworICAgICAgICdWOCBMaW51eCAtIHByZXZp b3VzIGJyYW5jaCc6ICdyZWxlYXNlX3g4NicsCitAQCAtMjA3LDYgKzIxNSw5IEBACisgICAgICAg J1Y4IHMzOTB4IC0gc2ltIC0gcHJldmlvdXMgYnJhbmNoJzogJ3JlbGVhc2Vfc2ltdWxhdGVfczM5 MHgnLAorICAgICAgICdWOCBzMzkweCAtIHNpbSAtIGJldGEgYnJhbmNoJzogJ3JlbGVhc2Vfc2lt dWxhdGVfczM5MHgnLAorICAgICAgICdWOCBzMzkweCAtIHNpbSAtIHN0YWJsZSBicmFuY2gnOiAn cmVsZWFzZV9zaW11bGF0ZV9zMzkweCcsCisrICAgICAgJ1Y4IHJpc2N2NjQgLSBzaW0gLSBwcmV2 aW91cyBicmFuY2gnOiAncmVsZWFzZV9zaW11bGF0ZV9yaXNjdjY0JywKKysgICAgICAnVjggcmlz Y3Y2NCAtIHNpbSAtIGJldGEgYnJhbmNoJzogJ3JlbGVhc2Vfc2ltdWxhdGVfcmlzY3Y2NCcsCisr ICAgICAgJ1Y4IHJpc2N2NjQgLSBzaW0gLSBzdGFibGUgYnJhbmNoJzogJ3JlbGVhc2Vfc2ltdWxh dGVfcmlzY3Y2NCcsCisgICAgIH0sCisgICAgICd0cnlzZXJ2ZXIudjgnOiB7CisgICAgICAgJ3Y4 X2FuZHJvaWRfYXJtX2NvbXBpbGVfcmVsJzogJ3JlbGVhc2VfYW5kcm9pZF9hcm0nLAorQEAgLTMy Myw2ICszMzQsMTggQEAKKyAgICAgICAnZGVidWcnLCAnc2ltdWxhdGVfbWlwczY0ZWwnLCAndjhf ZW5hYmxlX3Nsb3dfZGNoZWNrcyddLAorICAgICAnZGVmYXVsdF9yZWxlYXNlX21pcHM2NGVsJzog WworICAgICAgICdyZWxlYXNlJywgJ3NpbXVsYXRlX21pcHM2NGVsJ10sCisrICAgICdkZWZhdWx0 X2RlYnVnX3Jpc2N2NjQnOiBbCisrICAgICAgJ2RlYnVnJywgJ3Jpc2N2NjQnLCAnZ2NjJywgJ3Y4 X2VuYWJsZV9zbG93X2RjaGVja3MnLCAndjhfZnVsbF9kZWJ1ZyddLAorKyAgICAnZGVmYXVsdF9v cHRkZWJ1Z19yaXNjdjY0JzogWworKyAgICAgICdkZWJ1ZycsICdyaXNjdjY0JywgJ2djYycsICd2 OF9lbmFibGVfc2xvd19kY2hlY2tzJ10sCisrICAgICdkZWZhdWx0X3JlbGVhc2VfcmlzY3Y2NCc6 IFsKKysgICAgICAncmVsZWFzZScsICdyaXNjdjY0JywgJ2djYyddLAorKyAgICAnZGVmYXVsdF9k ZWJ1Z19yaXNjdjY0X3NpbSc6IFsKKysgICAgICAnZGVidWcnLCAnc2ltdWxhdGVfcmlzY3Y2NCcs ICd2OF9lbmFibGVfc2xvd19kY2hlY2tzJywgJ3Y4X2Z1bGxfZGVidWcnXSwKKysgICAgJ2RlZmF1 bHRfb3B0ZGVidWdfcmlzY3Y2NF9zaW0nOiBbCisrICAgICAgJ2RlYnVnJywgJ3NpbXVsYXRlX3Jp c2N2NjQnLCAndjhfZW5hYmxlX3Nsb3dfZGNoZWNrcyddLAorKyAgICAnZGVmYXVsdF9yZWxlYXNl X3Jpc2N2NjRfc2ltJzogWworKyAgICAgICdyZWxlYXNlJywgJ3NpbXVsYXRlX3Jpc2N2NjQnXSwK KyAgICAgJ2RlZmF1bHRfZGVidWdfcHBjNjQnOiBbCisgICAgICAgJ2RlYnVnJywgJ3BwYzY0Jywg J2djYycsICd2OF9lbmFibGVfc2xvd19kY2hlY2tzJywgJ3Y4X2Z1bGxfZGVidWcnXSwKKyAgICAg J2RlZmF1bHRfb3B0ZGVidWdfcHBjNjQnOiBbCitAQCAtNDEwLDYgKzQzMyw4IEBACisgICAgICAg J3JlbGVhc2VfYm90JywgJ3NpbXVsYXRlX21pcHM2NGVsJ10sCisgICAgICdyZWxlYXNlX3NpbXVs YXRlX3BwYzY0JzogWworICAgICAgICdyZWxlYXNlX2JvdCcsICdzaW11bGF0ZV9wcGM2NCddLAor KyAgICAncmVsZWFzZV9zaW11bGF0ZV9yaXNjdjY0JzogWworKyAgICAgICdyZWxlYXNlX2JvdCcs ICdzaW11bGF0ZV9yaXNjdjY0J10sCisgICAgICdyZWxlYXNlX3NpbXVsYXRlX3MzOTB4JzogWwor ICAgICAgICdyZWxlYXNlX2JvdCcsICdzaW11bGF0ZV9zMzkweCddLAorIAorQEAgLTgxMiw2ICs4 MzcsMTAgQEAKKyAgICAgICAnZ25fYXJncyc6ICd0YXJnZXRfY3B1PSJ4NjQiIHY4X3RhcmdldF9j cHU9InBwYzY0IicsCisgICAgIH0sCisgCisrICAgICdzaW11bGF0ZV9yaXNjdjY0JzogeworKyAg ICAgICdnbl9hcmdzJzogJ3RhcmdldF9jcHU9Ing2NCIgdjhfdGFyZ2V0X2NwdT0icmlzY3Y2NCIn LAorKyAgICB9LAorKworICAgICAnc2ltdWxhdGVfczM5MHgnOiB7CisgICAgICAgJ2duX2FyZ3Mn OiAndGFyZ2V0X2NwdT0ieDY0IiB2OF90YXJnZXRfY3B1PSJzMzkweCInLAorICAgICB9LAorQEAg LTkxOCw2ICs5NDcsMTAgQEAKKyAgICAgICAnZ25fYXJncyc6ICd0YXJnZXRfY3B1PSJwcGM2NCIg dXNlX2N1c3RvbV9saWJjeHg9ZmFsc2UnLAorICAgICB9LAorIAorKyAgICAncmlzY3Y2NCc6IHsK KysgICAgICAnZ25fYXJncyc6ICd0YXJnZXRfY3B1PSJyaXNjdjY0IiB1c2VfY3VzdG9tX2xpYmN4 eD1mYWxzZScsCisrICAgIH0sCisrCisgICAgICd4NjQnOiB7CisgICAgICAgJ2duX2FyZ3MnOiAn dGFyZ2V0X2NwdT0ieDY0IicsCisgICAgIH0sCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9idWlsZF9jb25m aWcuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9idWlsZF9jb25maWcuaAorKysr IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2Jhc2UvYnVpbGRfY29uZmlnLmgKK0BAIC00Niw2ICs0NiwxNiBAQAorICNlbHNlCisg I2RlZmluZSBWOF9IT1NUX0FSQ0hfMzJfQklUIDEKKyAjZW5kaWYKKysjZWxpZiBkZWZpbmVkKF9f cmlzY3YpIHx8IGRlZmluZWQoX19yaXNjdl9fKQorKyNpZiBfX3Jpc2N2X3hsZW4gPT0gNjQKKysj ZGVmaW5lIFY4X0hPU1RfQVJDSF9SSVNDVjY0IDEKKysjZGVmaW5lIFY4X0hPU1RfQVJDSF82NF9C SVQgMQorKyNlbGlmIF9fcmlzY3ZfeGxlbiA9PSAzMgorKyNkZWZpbmUgVjhfSE9TVF9BUkNIX1JJ U0NWIDEKKysjZGVmaW5lIFY4X0hPU1RfQVJDSF8zMl9CSVQgMQorKyNlbHNlCisrI2Vycm9yICJD YW5ub3QgZGV0ZWN0IFJpc2N2J3MgYml0d2lkdGgiCisrI2VuZGlmCisgI2Vsc2UKKyAjZXJyb3Ig Ikhvc3QgYXJjaGl0ZWN0dXJlIHdhcyBub3QgZGV0ZWN0ZWQgYXMgc3VwcG9ydGVkIGJ5IHY4Igor ICNlbmRpZgorQEAgLTc3LDcgKzg3LDggQEAKKyAvLyBlbnZpcm9ubWVudCBhcyBwcmVzZW50ZWQg YnkgdGhlIGNvbXBpbGVyLgorICNpZiAhVjhfVEFSR0VUX0FSQ0hfWDY0ICYmICFWOF9UQVJHRVRf QVJDSF9JQTMyICYmICFWOF9UQVJHRVRfQVJDSF9BUk0gJiYgICAgICBcCisgICAgICFWOF9UQVJH RVRfQVJDSF9BUk02NCAmJiAhVjhfVEFSR0VUX0FSQ0hfTUlQUyAmJiAhVjhfVEFSR0VUX0FSQ0hf TUlQUzY0ICYmIFwKKy0gICAgIVY4X1RBUkdFVF9BUkNIX1BQQyAmJiAhVjhfVEFSR0VUX0FSQ0hf UFBDNjQgJiYgIVY4X1RBUkdFVF9BUkNIX1MzOTAKKysgICAgIVY4X1RBUkdFVF9BUkNIX1BQQyAm JiAhVjhfVEFSR0VUX0FSQ0hfUFBDNjQgJiYgIVY4X1RBUkdFVF9BUkNIX1MzOTAgJiYgICAgXAor KyAgICAhVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCAmJiAhVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKyAj aWYgZGVmaW5lZChfTV9YNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAjZGVmaW5lIFY4X1RB UkdFVF9BUkNIX1g2NCAxCisgI2VsaWYgZGVmaW5lZChfTV9JWDg2KSB8fCBkZWZpbmVkKF9faTM4 Nl9fKQorQEAgLTk0LDYgKzEwNSwxMiBAQAorICNkZWZpbmUgVjhfVEFSR0VUX0FSQ0hfUFBDNjQg MQorICNlbGlmIGRlZmluZWQoX0FSQ0hfUFBDKQorICNkZWZpbmUgVjhfVEFSR0VUX0FSQ0hfUFBD IDEKKysjZWxpZiBkZWZpbmVkKF9fcmlzY3YpIHx8IGRlZmluZWQoX19yaXNjdl9fKQorKyNpZiBf X3Jpc2N2X3hsZW4gPT0gNjQKKysjZGVmaW5lIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQgMQorKyNl bGlmIF9fcmlzY3ZfeGxlbiA9PSAzMgorKyNkZWZpbmUgVjhfVEFSR0VUX0FSQ0hfUklTQ1YgMQor KyNlbmRpZgorICNlbHNlCisgI2Vycm9yIFRhcmdldCBhcmNoaXRlY3R1cmUgd2FzIG5vdCBkZXRl Y3RlZCBhcyBzdXBwb3J0ZWQgYnkgdjgKKyAjZW5kaWYKK0BAIC0xMjgsNiArMTQ1LDEwIEBACisg I2Vsc2UKKyAjZGVmaW5lIFY4X1RBUkdFVF9BUkNIXzMyX0JJVCAxCisgI2VuZGlmCisrI2VsaWYg VjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NAorKyNkZWZpbmUgVjhfVEFSR0VUX0FSQ0hfNjRfQklUIDEK KysjZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVgorKyNkZWZpbmUgVjhfVEFSR0VUX0FSQ0hfMzJf QklUIDEKKyAjZWxzZQorICNlcnJvciBVbmtub3duIHRhcmdldCBhcmNoaXRlY3R1cmUgcG9pbnRl ciBzaXplCisgI2VuZGlmCitAQCAtMTU2LDYgKzE3NywxMyBAQAorICNpZiAoVjhfVEFSR0VUX0FS Q0hfTUlQUzY0ICYmICEoVjhfSE9TVF9BUkNIX1g2NCB8fCBWOF9IT1NUX0FSQ0hfTUlQUzY0KSkK KyAjZXJyb3IgVGFyZ2V0IGFyY2hpdGVjdHVyZSBtaXBzNjQgaXMgb25seSBzdXBwb3J0ZWQgb24g bWlwczY0IGFuZCB4NjQgaG9zdAorICNlbmRpZgorKyNpZiAoVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2 NCAmJiAhKFY4X0hPU1RfQVJDSF9YNjQgfHwgVjhfSE9TVF9BUkNIX1JJU0NWNjQpKQorKyNlcnJv ciBUYXJnZXQgYXJjaGl0ZWN0dXJlIHJpc2N2NjQgaXMgb25seSBzdXBwb3J0ZWQgb24gcmlzY3Y2 NCBhbmQgeDY0IGhvc3QKKysjZW5kaWYKKysjaWYgKFY4X1RBUkdFVF9BUkNIX1JJU0NWICYmIFwK KysgICAgICEoVjhfSE9TVF9BUkNIX1g2NCB8fCBWOF9IT1NUX0FSQ0hfUklTQ1YgfHwgVjhfSE9T VF9BUkNIX1JJU0NWNjQpKQorKyNlcnJvciBUYXJnZXQgYXJjaGl0ZWN0dXJlIHJpc2N2ICgzMikg aXMgb25seSBzdXBwb3J0ZWQgb24gcmlzY3YoMzIpLCByaXNjdjY0LCBhbmQgeDY0IGhvc3QKKysj ZW5kaWYKKyAKKyAvLyBEZXRlcm1pbmUgYXJjaGl0ZWN0dXJlIGVuZGlhbm5lc3MuCisgI2lmIFY4 X1RBUkdFVF9BUkNIX0lBMzIKK0BAIC0xOTAsNiArMjE4LDggQEAKKyAjZWxzZQorICNkZWZpbmUg VjhfVEFSR0VUX0JJR19FTkRJQU4gMQorICNlbmRpZgorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJ U0NWNjQgfHwgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysjZGVmaW5lIFY4X1RBUkdFVF9MSVRUTEVf RU5ESUFOIDEKKyAjZWxzZQorICNlcnJvciBVbmtub3duIHRhcmdldCBhcmNoaXRlY3R1cmUgZW5k aWFubmVzcworICNlbmRpZgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUu My9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvY29tcGlsZXItc3BlY2lmaWMuaAor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9jb21waWxlci1zcGVjaWZpYy5oCisrKysg cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92 OC9zcmMvYmFzZS9jb21waWxlci1zcGVjaWZpYy5oCitAQCAtOTYsOSArOTYsMTAgQEAKKyAvLyBk byBub3Qgc3VwcG9ydCBhZGRpbmcgbm9leGNlcHQgdG8gZGVmYXVsdCBtZW1iZXJzLgorIC8vIERp c2FibGVkIG9uIE1TVkMgYmVjYXVzZSBjb25zdHJ1Y3RvcnMgb2Ygc3RhbmRhcmQgY29udGFpbmVy cyBhcmUgbm90IG5vZXhjZXB0CisgLy8gdGhlcmUuCistI2lmICgoIWRlZmluZWQoVjhfQ0NfR05V KSAmJiAhZGVmaW5lZChWOF9DQ19NU1ZDKSAmJiAgICAgICAgICAgICAgICAgICAgICBcCistICAg ICAgIWRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfTUlQUykgJiYgIWRlZmluZWQoVjhfVEFSR0VUX0FS Q0hfTUlQUzY0KSAmJiBcCistICAgICAgIWRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUFBDKSAmJiAh ZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9QUEM2NCkpIHx8ICBcCisrI2lmICgoIWRlZmluZWQoVjhf Q0NfR05VKSAmJiAhZGVmaW5lZChWOF9DQ19NU1ZDKSAmJiAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICAgICAgIWRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfTUlQUykgJiYgIWRlZmluZWQoVjhf VEFSR0VUX0FSQ0hfTUlQUzY0KSAmJiAgICBcCisrICAgICAgIWRlZmluZWQoVjhfVEFSR0VUX0FS Q0hfUFBDKSAmJiAhZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9QUEM2NCkgJiYgICAgICBcCisrICAg ICAgIWRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCkgJiYgIWRlZmluZWQoVjhfVEFSR0VU X0FSQ0hfUklTQ1YpKSB8fCBcCisgICAgICAoZGVmaW5lZChfX2NsYW5nX18pICYmIF9fY3BsdXNw bHVzID4gMjAxMzAwTCkpCisgI2RlZmluZSBWOF9OT0VYQ0VQVCBub2V4Y2VwdAorICNlbHNlCitJ bmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS92OC9zcmMvYmFzZS9tYWNyb3MuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2 ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFz ZS9tYWNyb3MuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvbWFjcm9zLmgKK0BAIC0xMSw2ICsxMSw4IEBACisg I2luY2x1ZGUgInNyYy9iYXNlL2NvbXBpbGVyLXNwZWNpZmljLmgiCisgI2luY2x1ZGUgInNyYy9i YXNlL2xvZ2dpbmcuaCIKKyAKKysjZGVmaW5lIERFQlVHX1BSSU5URiguLi4pIGlmIChGTEFHX2Rl YnVnX3Jpc2N2KSB7IHByaW50ZihfX1ZBX0FSR1NfXyk7IH0KKysKKyAvLyBOby1vcCBtYWNybyB3 aGljaCBpcyB1c2VkIHRvIHdvcmsgYXJvdW5kIE1TVkMncyBmdW5reSBWQV9BUkdTIHN1cHBvcnQu CisgI2RlZmluZSBFWFBBTkQoeCkgeAorIAorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUt c3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vcGxh dGZvcm0tcG9zaXguY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0v cGxhdGZvcm0tcG9zaXguY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL3BsYXRmb3JtLXBvc2l4 LmNjCitAQCAtMzI0LDYgKzMyNCwxMiBAQCB2b2lkKiBPUzo6R2V0UmFuZG9tTW1hcEFkZHIoKSB7 CisgICAvLyA0MiBiaXRzIG9mIHZpcnR1YWwgYWRkcmVzc2luZy4gVHJ1bmNhdGUgdG8gNDAgYml0 cyB0byBhbGxvdyBrZXJuZWwgY2hhbmNlCisgICAvLyB0byBmdWxmaWxsIHJlcXVlc3QuCisgICBy YXdfYWRkciAmPSB1aW50NjRfdHsweEZGRkZGRjAwMDB9OworKyNlbGlmIFY4X1RBUkdFVF9BUkNI X1JJU0NWNjQKKysgIC8vIEZJWE1FKFJJU0NWKTogV2UgbmVlZCBtb3JlIGluZm9ybWF0aW9uIGZy b20gdGhlIGtlcm5lbCB0byBjb3JyZWN0bHkgbWFzaworKyAgLy8gdGhpcyBhZGRyZXNzIGZvciBS SVNDLVYuCisrICByYXdfYWRkciAmPSB1aW50NjRfdHsweEZGRkZGRjAwMDB9OworKyNlbGlmIFY4 X1RBUkdFVF9BUkNIX1JJU0NWCisrICAjZXJyb3IgUklTQ1YgYXJjaGllY3R1cmUgbm90IHN1cHBv cnRlZAorICNlbHNlCisgICByYXdfYWRkciAmPSAweDNGRkZGMDAwOworIAorQEAgLTUxMiw2ICs1 MTgsOCBAQCB2b2lkIE9TOjpEZWJ1Z0JyZWFrKCkgeworICNlbGlmIFY4X0hPU1RfQVJDSF9TMzkw CisgICAvLyBTb2Z0d2FyZSBicmVha3BvaW50IGluc3RydWN0aW9uIGlzIDB4MDAwMQorICAgYXNt IHZvbGF0aWxlKCIud29yZCAweDAwMDEiKTsKKysjZWxpZiBWOF9IT1NUX0FSQ0hfUklTQ1Y2NCB8 fCBWOF9IT1NUX0FSQ0hfUklTQ1YKKysgIGFzbSgiZWJyZWFrIik7CisgI2Vsc2UKKyAjZXJyb3Ig VW5zdXBwb3J0ZWQgaG9zdCBhcmNoaXRlY3R1cmUuCisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYnVp bHRpbnMvYnVpbHRpbnMtc2hhcmVkYXJyYXlidWZmZXItZ2VuLmNjCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9idWlsdGlucy9idWlsdGlucy1zaGFyZWRhcnJheWJ1ZmZlci1nZW4uY2MKKysr KyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9idWlsdGlucy9idWlsdGlucy1zaGFyZWRhcnJheWJ1ZmZlci1nZW4uY2MKK0BAIC0z NzksNyArMzc5LDkgQEAgVEZfQlVJTFRJTihBdG9taWNzRXhjaGFuZ2UsIFNoYXJlZEFycmF5Qgor ICAgLy8gMi4gTGV0IGkgYmUgPyBWYWxpZGF0ZUF0b21pY0FjY2Vzcyh0eXBlZEFycmF5LCBpbmRl eCkuCisgICBUTm9kZTxVaW50UHRyVD4gaW5kZXhfd29yZCA9IFZhbGlkYXRlQXRvbWljQWNjZXNz KGFycmF5LCBpbmRleCwgY29udGV4dCk7CisgCistI2lmIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwg VjhfVEFSR0VUX0FSQ0hfTUlQUzY0CisrI2lmIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwgVjhfVEFS R0VUX0FSQ0hfTUlQUzY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQgfHwgXAorKyAgICBWOF9U QVJHRVRfQVJDSF9SSVNDVgorKyAgLy8gRklYTUUoUklTQ1YpOiBSZXZpZXcgdGhpcyBzcGVjaWFs IGNhc2Ugb25jZSBhdG9taWNzIGFyZSBhZGRlZAorICAgVVNFKGFycmF5X2J1ZmZlcik7CisgICBU Tm9kZTxOdW1iZXI+IGluZGV4X251bWJlciA9IENoYW5nZVVpbnRQdHJUb1RhZ2dlZChpbmRleF93 b3JkKTsKKyAgIFJldHVybihDYWxsUnVudGltZShSdW50aW1lOjprQXRvbWljc0V4Y2hhbmdlLCBj b250ZXh0LCBhcnJheSwgaW5kZXhfbnVtYmVyLAorQEAgLTQ4MSw3ICs0ODMsOCBAQCBURl9CVUlM VElOKEF0b21pY3NFeGNoYW5nZSwgU2hhcmVkQXJyYXlCCisgICAvLyBUaGlzIHNob3VsZG4ndCBo YXBwZW4sIHdlJ3ZlIGFscmVhZHkgdmFsaWRhdGVkIHRoZSB0eXBlLgorICAgQklORCgmb3RoZXIp OworICAgVW5yZWFjaGFibGUoKTsKKy0jZW5kaWYgIC8vIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwg VjhfVEFSR0VUX0FSQ0hfTUlQUzY0CisrI2VuZGlmICAvLyBWOF9UQVJHRVRfQVJDSF9NSVBTIHx8 IFY4X1RBUkdFVF9BUkNIX01JUFM2NCB8fAorKyAgICAgICAgLy8gVjhfVEFSR0VUX0FSQ0hfUklT Q1Y2NCB8fCBWOF9UQVJHRVRfQVJDSF9SSVNDVgorIAorICAgQklORCgmZGV0YWNoZWQpOworICAg eworQEAgLTUxMCw3ICs1MTMsOSBAQCBURl9CVUlMVElOKEF0b21pY3NDb21wYXJlRXhjaGFuZ2Us IFNoYXJlCisgICBUTm9kZTxVaW50UHRyVD4gaW5kZXhfd29yZCA9IFZhbGlkYXRlQXRvbWljQWNj ZXNzKGFycmF5LCBpbmRleCwgY29udGV4dCk7CisgCisgI2lmIFY4X1RBUkdFVF9BUkNIX01JUFMg fHwgVjhfVEFSR0VUX0FSQ0hfTUlQUzY0IHx8IFY4X1RBUkdFVF9BUkNIX1BQQzY0IHx8IFwKKy0g ICAgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1MzOTAgfHwgVjhfVEFSR0VU X0FSQ0hfUzM5MFgKKysgICAgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1Mz OTAgfHwgVjhfVEFSR0VUX0FSQ0hfUzM5MFggfHwgICAgXAorKyAgICBWOF9UQVJHRVRfQVJDSF9S SVNDVjY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrICAvLyBGSVhNRShSSVNDVik6IFJldmll dyB0aGlzIHNwZWNpYWwgY2FzZSBvbmNlIGF0b21pY3MgYXJlIGFkZGVkCisgICBVU0UoYXJyYXlf YnVmZmVyKTsKKyAgIFROb2RlPE51bWJlcj4gaW5kZXhfbnVtYmVyID0gQ2hhbmdlVWludFB0clRv VGFnZ2VkKGluZGV4X3dvcmQpOworICAgUmV0dXJuKENhbGxSdW50aW1lKFJ1bnRpbWU6OmtBdG9t aWNzQ29tcGFyZUV4Y2hhbmdlLCBjb250ZXh0LCBhcnJheSwKK0BAIC02MzIsNiArNjM3LDcgQEAg VEZfQlVJTFRJTihBdG9taWNzQ29tcGFyZUV4Y2hhbmdlLCBTaGFyZQorICAgVW5yZWFjaGFibGUo KTsKKyAjZW5kaWYgIC8vIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwgVjhfVEFSR0VUX0FSQ0hfTUlQ UzY0IHx8IFY4X1RBUkdFVF9BUkNIX1BQQzY0CisgICAgICAgICAvLyB8fCBWOF9UQVJHRVRfQVJD SF9QUEMgfHwgVjhfVEFSR0VUX0FSQ0hfUzM5MCB8fCBWOF9UQVJHRVRfQVJDSF9TMzkwWAorKyAg ICAgICAgLy8gfHwgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCB8fCBWOF9UQVJHRVRfQVJDSF9SSVND VgorIAorICAgQklORCgmZGV0YWNoZWQpOworICAgeworQEAgLTY3OSw3ICs2ODUsOSBAQCB2b2lk IFNoYXJlZEFycmF5QnVmZmVyQnVpbHRpbnNBc3NlbWJsZXI6CisgICBUTm9kZTxVaW50UHRyVD4g aW5kZXhfd29yZCA9IFZhbGlkYXRlQXRvbWljQWNjZXNzKGFycmF5LCBpbmRleCwgY29udGV4dCk7 CisgCisgI2lmIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwgVjhfVEFSR0VUX0FSQ0hfTUlQUzY0IHx8 IFY4X1RBUkdFVF9BUkNIX1BQQzY0IHx8IFwKKy0gICAgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4 X1RBUkdFVF9BUkNIX1MzOTAgfHwgVjhfVEFSR0VUX0FSQ0hfUzM5MFgKKysgICAgVjhfVEFSR0VU X0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1MzOTAgfHwgVjhfVEFSR0VUX0FSQ0hfUzM5MFgg fHwgICAgXAorKyAgICBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJ U0NWCisrICAvLyBGSVhNRShSSVNDVik6IFJldmlldyB0aGlzIHNwZWNpYWwgY2FzZSBvbmNlIGF0 b21pY3MgYXJlIGFkZGVkCisgICBVU0UoYXJyYXlfYnVmZmVyKTsKKyAgIFROb2RlPE51bWJlcj4g aW5kZXhfbnVtYmVyID0gQ2hhbmdlVWludFB0clRvVGFnZ2VkKGluZGV4X3dvcmQpOworICAgUmV0 dXJuKENhbGxSdW50aW1lKHJ1bnRpbWVfZnVuY3Rpb24sIGNvbnRleHQsIGFycmF5LCBpbmRleF9u dW1iZXIsIHZhbHVlKSk7CitAQCAtNzgzLDYgKzc5MSw3IEBAIHZvaWQgU2hhcmVkQXJyYXlCdWZm ZXJCdWlsdGluc0Fzc2VtYmxlcjoKKyAgIFVucmVhY2hhYmxlKCk7CisgI2VuZGlmICAvLyBWOF9U QVJHRVRfQVJDSF9NSVBTIHx8IFY4X1RBUkdFVF9BUkNIX01JUFM2NCB8fCBWOF9UQVJHRVRfQVJD SF9QUEM2NAorICAgICAgICAgLy8gfHwgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9B UkNIX1MzOTAgfHwgVjhfVEFSR0VUX0FSQ0hfUzM5MFgKKysgICAgICAgIC8vIHx8IFY4X1RBUkdF VF9BUkNIX1JJU0NWNjQgfHwgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKyAKKyAgIEJJTkQoJmRldGFj aGVkKTsKKyAgIFRocm93VHlwZUVycm9yKGNvbnRleHQsIE1lc3NhZ2VUZW1wbGF0ZTo6a0RldGFj aGVkT3BlcmF0aW9uLCBtZXRob2RfbmFtZSk7CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYnVpbHRpbnMvYnVpbHRp bnMuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMu b3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2J1aWx0aW5zL2J1aWx0aW5zLmNjCisr KysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS92OC9zcmMvYnVpbHRpbnMvYnVpbHRpbnMuY2MKK0BAIC00OTAsMTQgKzQ5MCwxNyBAQCBib29s IEJ1aWx0aW5zOjpDb2RlT2JqZWN0SXNFeGVjdXRhYmxlKGluCisgICAgIGNhc2UgQnVpbHRpbnM6 OmtDRW50cnlfUmV0dXJuMV9Eb250U2F2ZUZQUmVnc19Bcmd2T25TdGFja19Ob0J1aWx0aW5FeGl0 OgorICAgICAgIHJldHVybiB0cnVlOworICAgICBkZWZhdWx0OgorLSNpZiBWOF9UQVJHRVRfQVJD SF9NSVBTIHx8IFY4X1RBUkdFVF9BUkNIX01JUFM2NAorKyNpZiBWOF9UQVJHRVRfQVJDSF9NSVBT IHx8IFY4X1RBUkdFVF9BUkNIX01JUFM2NCB8fCBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0IHx8IFwK KysgICAgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysgICAgICAvLyBGSVhNRShSSVNDVik6IElzIHRo aXMgY29ycmVjdCBmb3IgUklTQy1WPworICAgICAgIC8vIFRPRE8oTG9vbmdzb24pOiBNb3ZlIG5v bi1KUyBsaW5rYWdlIGJ1aWx0aW5zIGNvZGUgb2JqZWN0cyBpbnRvIFJPX1NQQUNFCisgICAgICAg Ly8gY2F1c2VkIE1JUFMgcGxhdGZvcm0gdG8gY3Jhc2gsIGFuZCB3ZSBuZWVkIHNvbWUgdGltZSB0 byBoYW5kbGUgaXQuIE5vdworICAgICAgIC8vIGRpc2FibGUgdGhpcyBjaGFuZ2UgdGVtcG9yYXJp bHkgb24gTUlQUyBwbGF0Zm9ybS4KKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAjZWxzZQorICAgICAg IHJldHVybiBmYWxzZTsKKy0jZW5kaWYgIC8vIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwgVjhfVEFS R0VUX0FSQ0hfTUlQUzY0CisrI2VuZGlmICAvLyBWOF9UQVJHRVRfQVJDSF9NSVBTIHx8IFY4X1RB UkdFVF9BUkNIX01JUFM2NCB8fAorKyAgICAgICAgLy8gVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCB8 fCBWOF9UQVJHRVRfQVJDSF9SSVNDVgorICAgfQorIH0KKyAKK0luZGV4OiBxdHdlYmVuZ2luZS1l dmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9idWlsdGlu cy9yaXNjdjY0L2J1aWx0aW5zLXJpc2N2NjQuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwK KysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9idWlsdGlucy9yaXNjdjY0L2J1aWx0aW5zLXJpc2N2NjQuY2MKK0BAIC0wLDAg KzEsMzE5NyBAQAorKy8vIENvcHlyaWdodCAyMDEyIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisrCisrI2lmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysKKysjaW5jbHVk ZSAic3JjL2FwaS9hcGktYXJndW1lbnRzLmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL2NvZGUt ZmFjdG9yeS5oIgorKyNpbmNsdWRlICJzcmMvZGVidWcvZGVidWcuaCIKKysjaW5jbHVkZSAic3Jj L2Rlb3B0aW1pemVyL2Rlb3B0aW1pemVyLmgiCisrI2luY2x1ZGUgInNyYy9leGVjdXRpb24vZnJh bWUtY29uc3RhbnRzLmgiCisrI2luY2x1ZGUgInNyYy9leGVjdXRpb24vZnJhbWVzLmgiCisrI2lu Y2x1ZGUgInNyYy9sb2dnaW5nL2NvdW50ZXJzLmgiCisrLy8gRm9yIGludGVycHJldGVyX2VudHJ5 X3JldHVybl9wY19vZmZzZXQuIFRPRE8oamt1bW1lcm93KTogRHJvcC4KKysjaW5jbHVkZSAic3Jj L2NvZGVnZW4vbWFjcm8tYXNzZW1ibGVyLWlubC5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9y ZWdpc3Rlci1jb25maWd1cmF0aW9uLmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL3Jpc2N2NjQv Y29uc3RhbnRzLXJpc2N2NjQuaCIKKysjaW5jbHVkZSAic3JjL2hlYXAvaGVhcC1pbmwuaCIKKysj aW5jbHVkZSAic3JjL29iamVjdHMvY2VsbC5oIgorKyNpbmNsdWRlICJzcmMvb2JqZWN0cy9mb3Jl aWduLmgiCisrI2luY2x1ZGUgInNyYy9vYmplY3RzL2hlYXAtbnVtYmVyLmgiCisrI2luY2x1ZGUg InNyYy9vYmplY3RzL2pzLWdlbmVyYXRvci5oIgorKyNpbmNsdWRlICJzcmMvb2JqZWN0cy9vYmpl Y3RzLWlubC5oIgorKyNpbmNsdWRlICJzcmMvb2JqZWN0cy9zbWkuaCIKKysjaW5jbHVkZSAic3Jj L3J1bnRpbWUvcnVudGltZS5oIgorKyNpbmNsdWRlICJzcmMvd2FzbS93YXNtLWxpbmthZ2UuaCIK KysjaW5jbHVkZSAic3JjL3dhc20vd2FzbS1vYmplY3RzLmgiCisrCisrbmFtZXNwYWNlIHY4IHsK KytuYW1lc3BhY2UgaW50ZXJuYWwgeworKworKyNkZWZpbmUgX18gQUNDRVNTX01BU00obWFzbSkK KysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9BZGFwdG9yKE1hY3JvQXNzZW1ibGVyKiBtYXNt LCBBZGRyZXNzIGFkZHJlc3MpIHsKKysgIF9fIGxpKGtKYXZhU2NyaXB0Q2FsbEV4dHJhQXJnMVJl Z2lzdGVyLCBFeHRlcm5hbFJlZmVyZW5jZTo6Q3JlYXRlKGFkZHJlc3MpKTsKKysgIF9fIEp1bXAo QlVJTFRJTl9DT0RFKG1hc20tPmlzb2xhdGUoKSwgQWRhcHRvcldpdGhCdWlsdGluRXhpdEZyYW1l KSwKKysgICAgICAgICAgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrfQorKworK3N0YXRpYyB2 b2lkIEdlbmVyYXRlVGFpbENhbGxUb1JldHVybmVkQ29kZShNYWNyb0Fzc2VtYmxlciogbWFzbSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZTo6RnVu Y3Rpb25JZCBmdW5jdGlvbl9pZCkgeworKyAgLy8gLS0tLS0tLS0tLS0gUyB0IGEgdCBlIC0tLS0t LS0tLS0tLS0KKysgIC8vICAtLSBhMSA6IHRhcmdldCBmdW5jdGlvbiAocHJlc2VydmVkIGZvciBj YWxsZWUpCisrICAvLyAgLS0gYTMgOiBuZXcgdGFyZ2V0IChwcmVzZXJ2ZWQgZm9yIGNhbGxlZSkK KysgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICB7CisrICAgIEZy YW1lU2NvcGUgc2NvcGUobWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKyAgICAvLyBQdXNo IGEgY29weSBvZiB0aGUgZnVuY3Rpb24gb250byB0aGUgc3RhY2suCisrICAgIC8vIFB1c2ggYSBj b3B5IG9mIHRoZSB0YXJnZXQgZnVuY3Rpb24gYW5kIHRoZSBuZXcgdGFyZ2V0LgorKyAgICBfXyBQ dXNoKGExLCBhMywgYTEpOworKworKyAgICBfXyBDYWxsUnVudGltZShmdW5jdGlvbl9pZCwgMSk7 CisrICAgIC8vIFJlc3RvcmUgdGFyZ2V0IGZ1bmN0aW9uIGFuZCBuZXcgdGFyZ2V0LgorKyAgICBf XyBQb3AoYTEsIGEzKTsKKysgIH0KKysKKysgIHN0YXRpY19hc3NlcnQoa0phdmFTY3JpcHRDYWxs Q29kZVN0YXJ0UmVnaXN0ZXIgPT0gYTIsICJBQkkgbWlzbWF0Y2giKTsKKysgIF9fIEFkZDY0KGEy LCBhMCwgT3BlcmFuZChDb2RlOjprSGVhZGVyU2l6ZSAtIGtIZWFwT2JqZWN0VGFnKSk7CisrICBf XyBKdW1wKGEyKTsKKyt9CisrCisrbmFtZXNwYWNlIHsKKysKKytlbnVtIFN0YWNrTGltaXRLaW5k IHsga0ludGVycnVwdFN0YWNrTGltaXQsIGtSZWFsU3RhY2tMaW1pdCB9OworKworK3ZvaWQgTG9h ZFN0YWNrTGltaXQoTWFjcm9Bc3NlbWJsZXIqIG1hc20sIFJlZ2lzdGVyIGRlc3RpbmF0aW9uLAor KyAgICAgICAgICAgICAgICAgICAgU3RhY2tMaW1pdEtpbmQga2luZCkgeworKyAgRENIRUNLKG1h c20tPnJvb3RfYXJyYXlfYXZhaWxhYmxlKCkpOworKyAgSXNvbGF0ZSogaXNvbGF0ZSA9IG1hc20t Pmlzb2xhdGUoKTsKKysgIEV4dGVybmFsUmVmZXJlbmNlIGxpbWl0ID0KKysgICAgICBraW5kID09 IFN0YWNrTGltaXRLaW5kOjprUmVhbFN0YWNrTGltaXQKKysgICAgICAgICAgPyBFeHRlcm5hbFJl ZmVyZW5jZTo6YWRkcmVzc19vZl9yZWFsX2pzbGltaXQoaXNvbGF0ZSkKKysgICAgICAgICAgOiBF eHRlcm5hbFJlZmVyZW5jZTo6YWRkcmVzc19vZl9qc2xpbWl0KGlzb2xhdGUpOworKyAgRENIRUNL KFR1cmJvQXNzZW1ibGVyOjpJc0FkZHJlc3NhYmxlVGhyb3VnaFJvb3RSZWdpc3Rlcihpc29sYXRl LCBsaW1pdCkpOworKworKyAgaW50cHRyX3Qgb2Zmc2V0ID0KKysgICAgICBUdXJib0Fzc2VtYmxl cjo6Um9vdFJlZ2lzdGVyT2Zmc2V0Rm9yRXh0ZXJuYWxSZWZlcmVuY2UoaXNvbGF0ZSwgbGltaXQp OworKyAgQ0hFQ0soaXNfaW50MzIob2Zmc2V0KSk7CisrICBfXyBMZChkZXN0aW5hdGlvbiwgTWVt T3BlcmFuZChrUm9vdFJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxpbnQzMl90PihvZmZzZXQpKSk7Cisr fQorKworK3ZvaWQgR2VuZXJhdGVfSlNCdWlsdGluc0NvbnN0cnVjdFN0dWJIZWxwZXIoTWFjcm9B c3NlbWJsZXIqIG1hc20pIHsKKysgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0t LS0tCisrICAvLyAgLS0gYTAgICAgIDogbnVtYmVyIG9mIGFyZ3VtZW50cworKyAgLy8gIC0tIGEx ICAgICA6IGNvbnN0cnVjdG9yIGZ1bmN0aW9uCisrICAvLyAgLS0gYTMgICAgIDogbmV3IHRhcmdl dAorKyAgLy8gIC0tIGNwICAgICA6IGNvbnRleHQKKysgIC8vICAtLSByYSAgICAgOiByZXR1cm4g YWRkcmVzcworKyAgLy8gIC0tIHNwWy4uLl06IGNvbnN0cnVjdG9yIGFyZ3VtZW50cworKyAgLy8g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysgIC8vIEVudGVyIGEgY29u c3RydWN0IGZyYW1lLgorKyAgeworKyAgICBGcmFtZVNjb3BlIHNjb3BlKG1hc20sIFN0YWNrRnJh bWU6OkNPTlNUUlVDVCk7CisrCisrICAgIC8vIFByZXNlcnZlIHRoZSBpbmNvbWluZyBwYXJhbWV0 ZXJzIG9uIHRoZSBzdGFjay4KKysgICAgX18gU21pVGFnKGEwKTsKKysgICAgX18gUHVzaChjcCwg YTApOworKyAgICBfXyBTbWlVbnRhZyhhMCk7CisrCisrICAgIC8vIFRoZSByZWNlaXZlciBmb3Ig dGhlIGJ1aWx0aW4vYXBpIGNhbGwuCisrICAgIF9fIFB1c2hSb290KFJvb3RJbmRleDo6a1RoZUhv bGVWYWx1ZSk7CisrCisrICAgIC8vIFNldCB1cCBwb2ludGVyIHRvIGxhc3QgYXJndW1lbnQuCisr ICAgIF9fIEFkZDY0KHQyLCBmcCwgT3BlcmFuZChTdGFuZGFyZEZyYW1lQ29uc3RhbnRzOjprQ2Fs bGVyU1BPZmZzZXQpKTsKKysKKysgICAgLy8gQ29weSBhcmd1bWVudHMgYW5kIHJlY2VpdmVyIHRv IHRoZSBleHByZXNzaW9uIHN0YWNrLgorKyAgICBMYWJlbCBsb29wLCBlbnRyeTsKKysgICAgX18g TW92ZSh0NCwgYTApOworKyAgICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0t LQorKyAgICAvLyAgLS0gICAgICAgICAgICAgICAgICAgICAgICBhMDogbnVtYmVyIG9mIGFyZ3Vt ZW50cyAodW50YWdnZWQpCisrICAgIC8vICAtLSAgICAgICAgICAgICAgICAgICAgICAgIGEzOiBu ZXcgdGFyZ2V0CisrICAgIC8vICAtLSAgICAgICAgICAgICAgICAgICAgICAgIHQyOiBwb2ludGVy IHRvIGxhc3QgYXJndW1lbnQKKysgICAgLy8gIC0tICAgICAgICAgICAgICAgICAgICAgICAgdDQ6 IGNvdW50ZXIKKysgICAgLy8gIC0tICAgICAgICBzcFswKmtQb2ludGVyU2l6ZV06IHRoZSBob2xl IChyZWNlaXZlcikKKysgICAgLy8gIC0tICAgICAgICBzcFsxKmtQb2ludGVyU2l6ZV06IG51bWJl ciBvZiBhcmd1bWVudHMgKHRhZ2dlZCkKKysgICAgLy8gIC0tICAgICAgICBzcFsyKmtQb2ludGVy U2l6ZV06IGNvbnRleHQKKysgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysgICAgX18gQnJhbmNoKCZlbnRyeSk7CisrICAgIF9fIGJpbmQoJmxvb3ApOworKyAgICBf XyBDYWxjU2NhbGVkQWRkcmVzcyh0MCwgdDIsIHQ0LCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAg X18gTGQodDEsIE1lbU9wZXJhbmQodDApKTsKKysgICAgX18gcHVzaCh0MSk7CisrICAgIF9fIGJp bmQoJmVudHJ5KTsKKysgICAgX18gQWRkNjQodDQsIHQ0LCBPcGVyYW5kKC0xKSk7CisrICAgIF9f IEJyYW5jaCgmbG9vcCwgZ3JlYXRlcl9lcXVhbCwgdDQsIE9wZXJhbmQoemVyb19yZWcpKTsKKysK KysgICAgLy8gQ2FsbCB0aGUgZnVuY3Rpb24uCisrICAgIC8vIGEwOiBudW1iZXIgb2YgYXJndW1l bnRzICh1bnRhZ2dlZCkKKysgICAgLy8gYTE6IGNvbnN0cnVjdG9yIGZ1bmN0aW9uCisrICAgIC8v IGEzOiBuZXcgdGFyZ2V0CisrICAgIF9fIEludm9rZUZ1bmN0aW9uV2l0aE5ld1RhcmdldChhMSwg YTMsIGEwLCBDQUxMX0ZVTkNUSU9OKTsKKysKKysgICAgLy8gUmVzdG9yZSBjb250ZXh0IGZyb20g dGhlIGZyYW1lLgorKyAgICBfXyBMZChjcCwgTWVtT3BlcmFuZChmcCwgQ29uc3RydWN0RnJhbWVD b25zdGFudHM6OmtDb250ZXh0T2Zmc2V0KSk7CisrICAgIC8vIFJlc3RvcmUgc21pLXRhZ2dlZCBh cmd1bWVudHMgY291bnQgZnJvbSB0aGUgZnJhbWUuCisrICAgIF9fIExkKGExLCBNZW1PcGVyYW5k KGZwLCBDb25zdHJ1Y3RGcmFtZUNvbnN0YW50czo6a0xlbmd0aE9mZnNldCkpOworKyAgICAvLyBM ZWF2ZSBjb25zdHJ1Y3QgZnJhbWUuCisrICB9CisrCisrICAvLyBSZW1vdmUgY2FsbGVyIGFyZ3Vt ZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgcmV0dXJuLgorKyAgX18gU21pU2NhbGUoYTQsIGExLCBr UG9pbnRlclNpemVMb2cyKTsKKysgIF9fIEFkZDY0KHNwLCBzcCwgYTQpOworKyAgX18gQWRkNjQo c3AsIHNwLCBrUG9pbnRlclNpemUpOworKyAgX18gUmV0KCk7CisrfQorKworK3N0YXRpYyB2b2lk IEdlbmVyYXRlX1N0YWNrT3ZlcmZsb3dDaGVjayhNYWNyb0Fzc2VtYmxlciogbWFzbSwgUmVnaXN0 ZXIgbnVtX2FyZ3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl Z2lzdGVyIHNjcmF0Y2gxLCBSZWdpc3RlciBzY3JhdGNoMiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIHN0YWNrX292ZXJmbG93KSB7CisrICAvLyBDaGVj ayB0aGUgc3RhY2sgZm9yIG92ZXJmbG93LiBXZSBhcmUgbm90IHRyeWluZyB0byBjYXRjaAorKyAg Ly8gaW50ZXJydXB0aW9ucyAoZS5nLiBkZWJ1ZyBicmVhayBhbmQgcHJlZW1wdGlvbikgaGVyZSwg c28gdGhlICJyZWFsIHN0YWNrCisrICAvLyBsaW1pdCIgaXMgY2hlY2tlZC4KKysgIExvYWRTdGFj a0xpbWl0KG1hc20sIHNjcmF0Y2gxLCBTdGFja0xpbWl0S2luZDo6a1JlYWxTdGFja0xpbWl0KTsK KysgIC8vIE1ha2Ugc2NyYXRjaDEgdGhlIHNwYWNlIHdlIGhhdmUgbGVmdC4gVGhlIHN0YWNrIG1p Z2h0IGFscmVhZHkgYmUgb3ZlcmZsb3dlZAorKyAgLy8gaGVyZSB3aGljaCB3aWxsIGNhdXNlIHNj cmF0Y2gxIHRvIGJlY29tZSBuZWdhdGl2ZS4KKysgIF9fIFN1YjY0KHNjcmF0Y2gxLCBzcCwgc2Ny YXRjaDEpOworKyAgLy8gQ2hlY2sgaWYgdGhlIGFyZ3VtZW50cyB3aWxsIG92ZXJmbG93IHRoZSBz dGFjay4KKysgIF9fIFNsbDY0KHNjcmF0Y2gyLCBudW1fYXJncywga1BvaW50ZXJTaXplTG9nMik7 CisrICAvLyBTaWduZWQgY29tcGFyaXNvbi4KKysgIF9fIEJyYW5jaChzdGFja19vdmVyZmxvdywg bGUsIHNjcmF0Y2gxLCBPcGVyYW5kKHNjcmF0Y2gyKSk7CisrfQorKworK30gIC8vIG5hbWVzcGFj ZQorKworKy8vIFRoZSBjb25zdHJ1Y3Qgc3R1YiBmb3IgRVM1IGNvbnN0cnVjdG9yIGZ1bmN0aW9u cyBhbmQgRVM2IGNsYXNzIGNvbnN0cnVjdG9ycy4KKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9K U0NvbnN0cnVjdFN0dWJHZW5lcmljKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICAvLyAtLS0t LS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tICAgICAgYTA6IG51bWJl ciBvZiBhcmd1bWVudHMgKHVudGFnZ2VkKQorKyAgLy8gIC0tICAgICAgYTE6IGNvbnN0cnVjdG9y IGZ1bmN0aW9uCisrICAvLyAgLS0gICAgICBhMzogbmV3IHRhcmdldAorKyAgLy8gIC0tICAgICAg Y3A6IGNvbnRleHQKKysgIC8vICAtLSAgICAgIHJhOiByZXR1cm4gYWRkcmVzcworKyAgLy8gIC0t IHNwWy4uLl06IGNvbnN0cnVjdG9yIGFyZ3VtZW50cworKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysKKysgIC8vIEVudGVyIGEgY29uc3RydWN0IGZyYW1lLgorKyAg eworKyAgICBGcmFtZVNjb3BlIHNjb3BlKG1hc20sIFN0YWNrRnJhbWU6OkNPTlNUUlVDVCk7Cisr ICAgIExhYmVsIHBvc3RfaW5zdGFudGlhdGlvbl9kZW9wdF9lbnRyeSwgbm90X2NyZWF0ZV9pbXBs aWNpdF9yZWNlaXZlcjsKKysKKysgICAgLy8gUHJlc2VydmUgdGhlIGluY29taW5nIHBhcmFtZXRl cnMgb24gdGhlIHN0YWNrLgorKyAgICBfXyBTbWlUYWcoYTApOworKyAgICBfXyBQdXNoKGNwLCBh MCwgYTEpOworKyAgICBfXyBQdXNoUm9vdChSb290SW5kZXg6OmtUaGVIb2xlVmFsdWUpOworKyAg ICBfXyBQdXNoKGEzKTsKKysKKysgICAgLy8gLS0tLS0tLS0tLS0gUyB0IGEgdCBlIC0tLS0tLS0t LS0tLS0KKysgICAgLy8gIC0tICAgICAgICBzcFswKmtQb2ludGVyU2l6ZV06IG5ldyB0YXJnZXQK KysgICAgLy8gIC0tICAgICAgICBzcFsxKmtQb2ludGVyU2l6ZV06IHBhZGRpbmcKKysgICAgLy8g IC0tIGExIGFuZCBzcFsyKmtQb2ludGVyU2l6ZV06IGNvbnN0cnVjdG9yIGZ1bmN0aW9uCisrICAg IC8vICAtLSAgICAgICAgc3BbMyprUG9pbnRlclNpemVdOiBudW1iZXIgb2YgYXJndW1lbnRzICh0 YWdnZWQpCisrICAgIC8vICAtLSAgICAgICAgc3BbNCprUG9pbnRlclNpemVdOiBjb250ZXh0Cisr ICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrICAgIF9fIExk KHQyLCBGaWVsZE1lbU9wZXJhbmQoYTEsIEpTRnVuY3Rpb246OmtTaGFyZWRGdW5jdGlvbkluZm9P ZmZzZXQpKTsKKysgICAgX18gTHd1KHQyLCBGaWVsZE1lbU9wZXJhbmQodDIsIFNoYXJlZEZ1bmN0 aW9uSW5mbzo6a0ZsYWdzT2Zmc2V0KSk7CisrICAgIF9fIERlY29kZUZpZWxkPFNoYXJlZEZ1bmN0 aW9uSW5mbzo6RnVuY3Rpb25LaW5kQml0cz4odDIpOworKyAgICBfXyBKdW1wSWZJc0luUmFuZ2Uo dDIsIGtEZWZhdWx0RGVyaXZlZENvbnN0cnVjdG9yLCBrRGVyaXZlZENvbnN0cnVjdG9yLAorKyAg ICAgICAgICAgICAgICAgICAgICAgJm5vdF9jcmVhdGVfaW1wbGljaXRfcmVjZWl2ZXIpOworKwor KyAgICAvLyBJZiBub3QgZGVyaXZlZCBjbGFzcyBjb25zdHJ1Y3RvcjogQWxsb2NhdGUgdGhlIG5l dyByZWNlaXZlciBvYmplY3QuCisrICAgIF9fIEluY3JlbWVudENvdW50ZXIobWFzbS0+aXNvbGF0 ZSgpLT5jb3VudGVycygpLT5jb25zdHJ1Y3RlZF9vYmplY3RzKCksIDEsCisrICAgICAgICAgICAg ICAgICAgICAgICAgdDIsIHQ0KTsKKysgICAgX18gQ2FsbChCVUlMVElOX0NPREUobWFzbS0+aXNv bGF0ZSgpLCBGYXN0TmV3T2JqZWN0KSwKKysgICAgICAgICAgICBSZWxvY0luZm86OkNPREVfVEFS R0VUKTsKKysgICAgX18gQnJhbmNoKCZwb3N0X2luc3RhbnRpYXRpb25fZGVvcHRfZW50cnkpOwor KworKyAgICAvLyBFbHNlOiB1c2UgVGhlSG9sZVZhbHVlIGFzIHJlY2VpdmVyIGZvciBjb25zdHJ1 Y3RvciBjYWxsCisrICAgIF9fIGJpbmQoJm5vdF9jcmVhdGVfaW1wbGljaXRfcmVjZWl2ZXIpOwor KyAgICBfXyBMb2FkUm9vdChhMCwgUm9vdEluZGV4OjprVGhlSG9sZVZhbHVlKTsKKysKKysgICAg Ly8gLS0tLS0tLS0tLS0gUyB0IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgICAgLy8gIC0tICAgICAg ICAgICAgICAgICAgICAgICAgICBhMDogcmVjZWl2ZXIKKysgICAgLy8gIC0tIFNsb3QgNCAvIHNw WzAqa1BvaW50ZXJTaXplXTogbmV3IHRhcmdldAorKyAgICAvLyAgLS0gU2xvdCAzIC8gc3BbMSpr UG9pbnRlclNpemVdOiBwYWRkaW5nCisrICAgIC8vICAtLSBTbG90IDIgLyBzcFsyKmtQb2ludGVy U2l6ZV06IGNvbnN0cnVjdG9yIGZ1bmN0aW9uCisrICAgIC8vICAtLSBTbG90IDEgLyBzcFszKmtQ b2ludGVyU2l6ZV06IG51bWJlciBvZiBhcmd1bWVudHMgKHRhZ2dlZCkKKysgICAgLy8gIC0tIFNs b3QgMCAvIHNwWzQqa1BvaW50ZXJTaXplXTogY29udGV4dAorKyAgICAvLyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgICAvLyBEZW9wdGltaXplciBlbnRlcnMgaGVyZS4K KysgICAgbWFzbS0+aXNvbGF0ZSgpLT5oZWFwKCktPlNldENvbnN0cnVjdFN0dWJDcmVhdGVEZW9w dFBDT2Zmc2V0KAorKyAgICAgICAgbWFzbS0+cGNfb2Zmc2V0KCkpOworKyAgICBfXyBiaW5kKCZw b3N0X2luc3RhbnRpYXRpb25fZGVvcHRfZW50cnkpOworKworKyAgICAvLyBSZXN0b3JlIG5ldyB0 YXJnZXQuCisrICAgIF9fIFBvcChhMyk7CisrICAgIC8vIFB1c2ggdGhlIGFsbG9jYXRlZCByZWNl aXZlciB0byB0aGUgc3RhY2suIFdlIG5lZWQgdHdvIGNvcGllcworKyAgICAvLyBiZWNhdXNlIHdl IG1heSBoYXZlIHRvIHJldHVybiB0aGUgb3JpZ2luYWwgb25lIGFuZCB0aGUgY2FsbGluZworKyAg ICAvLyBjb252ZW50aW9ucyBkaWN0YXRlIHRoYXQgdGhlIGNhbGxlZCBmdW5jdGlvbiBwb3BzIHRo ZSByZWNlaXZlci4KKysgICAgX18gUHVzaChhMCwgYTApOworKworKyAgICAvLyAtLS0tLS0tLS0t LSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgICAvLyAgLS0gICAgICAgICAgICAgICAgIHIz OiBuZXcgdGFyZ2V0CisrICAgIC8vICAtLSBzcFswKmtQb2ludGVyU2l6ZV06IGltcGxpY2l0IHJl Y2VpdmVyCisrICAgIC8vICAtLSBzcFsxKmtQb2ludGVyU2l6ZV06IGltcGxpY2l0IHJlY2VpdmVy CisrICAgIC8vICAtLSBzcFsyKmtQb2ludGVyU2l6ZV06IHBhZGRpbmcKKysgICAgLy8gIC0tIHNw WzMqa1BvaW50ZXJTaXplXTogY29uc3RydWN0b3IgZnVuY3Rpb24KKysgICAgLy8gIC0tIHNwWzQq a1BvaW50ZXJTaXplXTogbnVtYmVyIG9mIGFyZ3VtZW50cyAodGFnZ2VkKQorKyAgICAvLyAgLS0g c3BbNSprUG9pbnRlclNpemVdOiBjb250ZXh0CisrICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrCisrICAgIC8vIFJlc3RvcmUgY29uc3RydWN0b3IgZnVuY3Rpb24g YW5kIGFyZ3VtZW50IGNvdW50LgorKyAgICBfXyBMZChhMSwgTWVtT3BlcmFuZChmcCwgQ29uc3Ry dWN0RnJhbWVDb25zdGFudHM6OmtDb25zdHJ1Y3Rvck9mZnNldCkpOworKyAgICBfXyBMZChhMCwg TWVtT3BlcmFuZChmcCwgQ29uc3RydWN0RnJhbWVDb25zdGFudHM6OmtMZW5ndGhPZmZzZXQpKTsK KysgICAgX18gU21pVW50YWcoYTApOworKworKyAgICAvLyBTZXQgdXAgcG9pbnRlciB0byBsYXN0 IGFyZ3VtZW50LgorKyAgICBfXyBBZGQ2NCh0MiwgZnAsIE9wZXJhbmQoU3RhbmRhcmRGcmFtZUNv bnN0YW50czo6a0NhbGxlclNQT2Zmc2V0KSk7CisrCisrICAgIExhYmVsIGVub3VnaF9zdGFja19z cGFjZSwgc3RhY2tfb3ZlcmZsb3c7CisrICAgIEdlbmVyYXRlX1N0YWNrT3ZlcmZsb3dDaGVjayht YXNtLCBhMCwgdDAsIHQxLCAmc3RhY2tfb3ZlcmZsb3cpOworKyAgICBfXyBCcmFuY2goJmVub3Vn aF9zdGFja19zcGFjZSk7CisrCisrICAgIF9fIGJpbmQoJnN0YWNrX292ZXJmbG93KTsKKysgICAg Ly8gUmVzdG9yZSB0aGUgY29udGV4dCBmcm9tIHRoZSBmcmFtZS4KKysgICAgX18gTGQoY3AsIE1l bU9wZXJhbmQoZnAsIENvbnN0cnVjdEZyYW1lQ29uc3RhbnRzOjprQ29udGV4dE9mZnNldCkpOwor KyAgICBfXyBDYWxsUnVudGltZShSdW50aW1lOjprVGhyb3dTdGFja092ZXJmbG93KTsKKysgICAg Ly8gVW5yZWFjaGFibGUgY29kZS4KKysgICAgX18gYnJlYWtfKDB4Q0MpOworKworKyAgICBfXyBi aW5kKCZlbm91Z2hfc3RhY2tfc3BhY2UpOworKworKyAgICAvLyBDb3B5IGFyZ3VtZW50cyBhbmQg cmVjZWl2ZXIgdG8gdGhlIGV4cHJlc3Npb24gc3RhY2suCisrICAgIExhYmVsIGxvb3AsIGVudHJ5 OworKyAgICBfXyBNb3ZlKHQ0LCBhMCk7CisrICAgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAt LS0tLS0tLS0tLS0tCisrICAgIC8vICAtLSAgICAgICAgICAgICAgICAgICAgICAgIGEwOiBudW1i ZXIgb2YgYXJndW1lbnRzICh1bnRhZ2dlZCkKKysgICAgLy8gIC0tICAgICAgICAgICAgICAgICAg ICAgICAgYTM6IG5ldyB0YXJnZXQKKysgICAgLy8gIC0tICAgICAgICAgICAgICAgICAgICAgICAg dDI6IHBvaW50ZXIgdG8gbGFzdCBhcmd1bWVudAorKyAgICAvLyAgLS0gICAgICAgICAgICAgICAg ICAgICAgICB0NDogY291bnRlcgorKyAgICAvLyAgLS0gICAgICAgIHNwWzAqa1BvaW50ZXJTaXpl XTogaW1wbGljaXQgcmVjZWl2ZXIKKysgICAgLy8gIC0tICAgICAgICBzcFsxKmtQb2ludGVyU2l6 ZV06IGltcGxpY2l0IHJlY2VpdmVyCisrICAgIC8vICAtLSAgICAgICAgc3BbMiprUG9pbnRlclNp emVdOiBwYWRkaW5nCisrICAgIC8vICAtLSBhMSBhbmQgc3BbMyprUG9pbnRlclNpemVdOiBjb25z dHJ1Y3RvciBmdW5jdGlvbgorKyAgICAvLyAgLS0gICAgICAgIHNwWzQqa1BvaW50ZXJTaXplXTog bnVtYmVyIG9mIGFyZ3VtZW50cyAodGFnZ2VkKQorKyAgICAvLyAgLS0gICAgICAgIHNwWzUqa1Bv aW50ZXJTaXplXTogY29udGV4dAorKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyAgICBfXyBCcmFuY2goJmVudHJ5KTsKKysgICAgX18gYmluZCgmbG9vcCk7Cisr ICAgIF9fIENhbGNTY2FsZWRBZGRyZXNzKHQwLCB0MiwgdDQsIGtQb2ludGVyU2l6ZUxvZzIpOwor KyAgICBfXyBMZCh0MSwgTWVtT3BlcmFuZCh0MCkpOworKyAgICBfXyBwdXNoKHQxKTsKKysgICAg X18gYmluZCgmZW50cnkpOworKyAgICBfXyBBZGQ2NCh0NCwgdDQsIE9wZXJhbmQoLTEpKTsKKysg ICAgX18gQnJhbmNoKCZsb29wLCBncmVhdGVyX2VxdWFsLCB0NCwgT3BlcmFuZCh6ZXJvX3JlZykp OworKworKyAgICAvLyBDYWxsIHRoZSBmdW5jdGlvbi4KKysgICAgX18gSW52b2tlRnVuY3Rpb25X aXRoTmV3VGFyZ2V0KGExLCBhMywgYTAsIENBTExfRlVOQ1RJT04pOworKworKyAgICAvLyAtLS0t LS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgICAvLyAgLS0gICAgICAgICAgICAg ICAgIGEwOiBjb25zdHJ1Y3RvciByZXN1bHQKKysgICAgLy8gIC0tIHNwWzAqa1BvaW50ZXJTaXpl XTogaW1wbGljaXQgcmVjZWl2ZXIKKysgICAgLy8gIC0tIHNwWzEqa1BvaW50ZXJTaXplXTogcGFk ZGluZworKyAgICAvLyAgLS0gc3BbMiprUG9pbnRlclNpemVdOiBjb25zdHJ1Y3RvciBmdW5jdGlv bgorKyAgICAvLyAgLS0gc3BbMyprUG9pbnRlclNpemVdOiBudW1iZXIgb2YgYXJndW1lbnRzCisr ICAgIC8vICAtLSBzcFs0KmtQb2ludGVyU2l6ZV06IGNvbnRleHQKKysgICAgLy8gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysgICAgLy8gU3RvcmUgb2Zmc2V0IG9mIHJl dHVybiBhZGRyZXNzIGZvciBkZW9wdGltaXplci4KKysgICAgbWFzbS0+aXNvbGF0ZSgpLT5oZWFw KCktPlNldENvbnN0cnVjdFN0dWJJbnZva2VEZW9wdFBDT2Zmc2V0KAorKyAgICAgICAgbWFzbS0+ cGNfb2Zmc2V0KCkpOworKworKyAgICAvLyBSZXN0b3JlIHRoZSBjb250ZXh0IGZyb20gdGhlIGZy YW1lLgorKyAgICBfXyBMZChjcCwgTWVtT3BlcmFuZChmcCwgQ29uc3RydWN0RnJhbWVDb25zdGFu dHM6OmtDb250ZXh0T2Zmc2V0KSk7CisrCisrICAgIC8vIElmIHRoZSByZXN1bHQgaXMgYW4gb2Jq ZWN0IChpbiB0aGUgRUNNQSBzZW5zZSksIHdlIHNob3VsZCBnZXQgcmlkCisrICAgIC8vIG9mIHRo ZSByZWNlaXZlciBhbmQgdXNlIHRoZSByZXN1bHQ7IHNlZSBFQ01BLTI2MiBzZWN0aW9uIDEzLjIu Mi03CisrICAgIC8vIG9uIHBhZ2UgNzQuCisrICAgIExhYmVsIHVzZV9yZWNlaXZlciwgZG9fdGhy b3csIGxlYXZlX2ZyYW1lOworKworKyAgICAvLyBJZiB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZCwg d2UganVtcCBvdXQgdG8gdXNpbmcgdGhlIGltcGxpY2l0IHJlY2VpdmVyLgorKyAgICBfXyBKdW1w SWZSb290KGEwLCBSb290SW5kZXg6OmtVbmRlZmluZWRWYWx1ZSwgJnVzZV9yZWNlaXZlcik7Cisr CisrICAgIC8vIE90aGVyd2lzZSB3ZSBkbyBhIHNtaSBjaGVjayBhbmQgZmFsbCB0aHJvdWdoIHRv IGNoZWNrIGlmIHRoZSByZXR1cm4gdmFsdWUKKysgICAgLy8gaXMgYSB2YWxpZCByZWNlaXZlci4K KysKKysgICAgLy8gSWYgdGhlIHJlc3VsdCBpcyBhIHNtaSwgaXQgaXMgKm5vdCogYW4gb2JqZWN0 IGluIHRoZSBFQ01BIHNlbnNlLgorKyAgICBfXyBKdW1wSWZTbWkoYTAsICZ1c2VfcmVjZWl2ZXIp OworKworKyAgICAvLyBJZiB0aGUgdHlwZSBvZiB0aGUgcmVzdWx0IChzdG9yZWQgaW4gaXRzIG1h cCkgaXMgbGVzcyB0aGFuCisrICAgIC8vIEZJUlNUX0pTX1JFQ0VJVkVSX1RZUEUsIGl0IGlzIG5v dCBhbiBvYmplY3QgaW4gdGhlIEVDTUEgc2Vuc2UuCisrICAgIF9fIEdldE9iamVjdFR5cGUoYTAs IHQyLCB0Mik7CisrICAgIFNUQVRJQ19BU1NFUlQoTEFTVF9KU19SRUNFSVZFUl9UWVBFID09IExB U1RfVFlQRSk7CisrICAgIF9fIEJyYW5jaCgmbGVhdmVfZnJhbWUsIGdyZWF0ZXJfZXF1YWwsIHQy LCBPcGVyYW5kKEZJUlNUX0pTX1JFQ0VJVkVSX1RZUEUpKTsKKysgICAgX18gQnJhbmNoKCZ1c2Vf cmVjZWl2ZXIpOworKworKyAgICBfXyBiaW5kKCZkb190aHJvdyk7CisrICAgIF9fIENhbGxSdW50 aW1lKFJ1bnRpbWU6OmtUaHJvd0NvbnN0cnVjdG9yUmV0dXJuZWROb25PYmplY3QpOworKworKyAg ICAvLyBUaHJvdyBhd2F5IHRoZSByZXN1bHQgb2YgdGhlIGNvbnN0cnVjdG9yIGludm9jYXRpb24g YW5kIHVzZSB0aGUKKysgICAgLy8gb24tc3RhY2sgcmVjZWl2ZXIgYXMgdGhlIHJlc3VsdC4KKysg ICAgX18gYmluZCgmdXNlX3JlY2VpdmVyKTsKKysgICAgX18gTGQoYTAsIE1lbU9wZXJhbmQoc3As IDAgKiBrUG9pbnRlclNpemUpKTsKKysgICAgX18gSnVtcElmUm9vdChhMCwgUm9vdEluZGV4Ojpr VGhlSG9sZVZhbHVlLCAmZG9fdGhyb3cpOworKworKyAgICBfXyBiaW5kKCZsZWF2ZV9mcmFtZSk7 CisrICAgIC8vIFJlc3RvcmUgc21pLXRhZ2dlZCBhcmd1bWVudHMgY291bnQgZnJvbSB0aGUgZnJh bWUuCisrICAgIF9fIExkKGExLCBNZW1PcGVyYW5kKGZwLCBDb25zdHJ1Y3RGcmFtZUNvbnN0YW50 czo6a0xlbmd0aE9mZnNldCkpOworKyAgICAvLyBMZWF2ZSBjb25zdHJ1Y3QgZnJhbWUuCisrICB9 CisrICAvLyBSZW1vdmUgY2FsbGVyIGFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgcmV0dXJu LgorKyAgX18gU21pU2NhbGUoYTQsIGExLCBrUG9pbnRlclNpemVMb2cyKTsKKysgIF9fIEFkZDY0 KHNwLCBzcCwgYTQpOworKyAgX18gQWRkNjQoc3AsIHNwLCBrUG9pbnRlclNpemUpOworKyAgX18g UmV0KCk7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0pTQnVpbHRpbnNDb25zdHJ1 Y3RTdHViKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICBHZW5lcmF0ZV9KU0J1aWx0aW5zQ29u c3RydWN0U3R1YkhlbHBlcihtYXNtKTsKKyt9CisrCisrc3RhdGljIHZvaWQgR2V0U2hhcmVkRnVu Y3Rpb25JbmZvQnl0ZWNvZGUoTWFjcm9Bc3NlbWJsZXIqIG1hc20sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2ZpX2RhdGEsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDEpIHsKKysg IExhYmVsIGRvbmU7CisrCisrICBfXyBHZXRPYmplY3RUeXBlKHNmaV9kYXRhLCBzY3JhdGNoMSwg c2NyYXRjaDEpOworKyAgX18gQnJhbmNoKCZkb25lLCBuZSwgc2NyYXRjaDEsIE9wZXJhbmQoSU5U RVJQUkVURVJfREFUQV9UWVBFKSk7CisrICBfXyBMZChzZmlfZGF0YSwKKysgICAgICAgIEZpZWxk TWVtT3BlcmFuZChzZmlfZGF0YSwgSW50ZXJwcmV0ZXJEYXRhOjprQnl0ZWNvZGVBcnJheU9mZnNl dCkpOworKworKyAgX18gYmluZCgmZG9uZSk7CisrfQorKworKy8vIHN0YXRpYworK3ZvaWQgQnVp bHRpbnM6OkdlbmVyYXRlX1Jlc3VtZUdlbmVyYXRvclRyYW1wb2xpbmUoTWFjcm9Bc3NlbWJsZXIq IG1hc20pIHsKKysgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAv LyAgLS0gYTAgOiB0aGUgdmFsdWUgdG8gcGFzcyB0byB0aGUgZ2VuZXJhdG9yCisrICAvLyAgLS0g YTEgOiB0aGUgSlNHZW5lcmF0b3JPYmplY3QgdG8gcmVzdW1lCisrICAvLyAgLS0gcmEgOiByZXR1 cm4gYWRkcmVzcworKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysg IF9fIEFzc2VydEdlbmVyYXRvck9iamVjdChhMSk7CisrCisrICAvLyBTdG9yZSBpbnB1dCB2YWx1 ZSBpbnRvIGdlbmVyYXRvciBvYmplY3QuCisrICBfXyBTZChhMCwgRmllbGRNZW1PcGVyYW5kKGEx LCBKU0dlbmVyYXRvck9iamVjdDo6a0lucHV0T3JEZWJ1Z1Bvc09mZnNldCkpOworKyAgX18gUmVj b3JkV3JpdGVGaWVsZChhMSwgSlNHZW5lcmF0b3JPYmplY3Q6OmtJbnB1dE9yRGVidWdQb3NPZmZz ZXQsIGEwLCBhMywKKysgICAgICAgICAgICAgICAgICAgICAga1JBSGFzTm90QmVlblNhdmVkLCBr RG9udFNhdmVGUFJlZ3MpOworKworKyAgLy8gTG9hZCBzdXNwZW5kZWQgZnVuY3Rpb24gYW5kIGNv bnRleHQuCisrICBfXyBMZChhNCwgRmllbGRNZW1PcGVyYW5kKGExLCBKU0dlbmVyYXRvck9iamVj dDo6a0Z1bmN0aW9uT2Zmc2V0KSk7CisrICBfXyBMZChjcCwgRmllbGRNZW1PcGVyYW5kKGE0LCBK U0Z1bmN0aW9uOjprQ29udGV4dE9mZnNldCkpOworKworKyAgLy8gRmxvb2QgZnVuY3Rpb24gaWYg d2UgYXJlIHN0ZXBwaW5nLgorKyAgTGFiZWwgcHJlcGFyZV9zdGVwX2luX2lmX3N0ZXBwaW5nLCBw cmVwYXJlX3N0ZXBfaW5fc3VzcGVuZGVkX2dlbmVyYXRvcjsKKysgIExhYmVsIHN0ZXBwaW5nX3By ZXBhcmVkOworKyAgRXh0ZXJuYWxSZWZlcmVuY2UgZGVidWdfaG9vayA9CisrICAgICAgRXh0ZXJu YWxSZWZlcmVuY2U6OmRlYnVnX2hvb2tfb25fZnVuY3Rpb25fY2FsbF9hZGRyZXNzKG1hc20tPmlz b2xhdGUoKSk7CisrICBfXyBsaShhNSwgZGVidWdfaG9vayk7CisrICBfXyBMYihhNSwgTWVtT3Bl cmFuZChhNSkpOworKyAgX18gQnJhbmNoKCZwcmVwYXJlX3N0ZXBfaW5faWZfc3RlcHBpbmcsIG5l LCBhNSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKworKyAgLy8gRmxvb2QgZnVuY3Rpb24gaWYgd2Ug bmVlZCB0byBjb250aW51ZSBzdGVwcGluZyBpbiB0aGUgc3VzcGVuZGVkIGdlbmVyYXRvci4KKysg IEV4dGVybmFsUmVmZXJlbmNlIGRlYnVnX3N1c3BlbmRlZF9nZW5lcmF0b3IgPQorKyAgICAgIEV4 dGVybmFsUmVmZXJlbmNlOjpkZWJ1Z19zdXNwZW5kZWRfZ2VuZXJhdG9yX2FkZHJlc3MobWFzbS0+ aXNvbGF0ZSgpKTsKKysgIF9fIGxpKGE1LCBkZWJ1Z19zdXNwZW5kZWRfZ2VuZXJhdG9yKTsKKysg IF9fIExkKGE1LCBNZW1PcGVyYW5kKGE1KSk7CisrICBfXyBCcmFuY2goJnByZXBhcmVfc3RlcF9p bl9zdXNwZW5kZWRfZ2VuZXJhdG9yLCBlcSwgYTEsIE9wZXJhbmQoYTUpKTsKKysgIF9fIGJpbmQo JnN0ZXBwaW5nX3ByZXBhcmVkKTsKKysKKysgIC8vIENoZWNrIHRoZSBzdGFjayBmb3Igb3ZlcmZs b3cuIFdlIGFyZSBub3QgdHJ5aW5nIHRvIGNhdGNoIGludGVycnVwdGlvbnMKKysgIC8vIChpLmUu IGRlYnVnIGJyZWFrIGFuZCBwcmVlbXB0aW9uKSBoZXJlLCBzbyBjaGVjayB0aGUgInJlYWwgc3Rh Y2sgbGltaXQiLgorKyAgTGFiZWwgc3RhY2tfb3ZlcmZsb3c7CisrICBMb2FkU3RhY2tMaW1pdCht YXNtLCBrU2NyYXRjaFJlZywgU3RhY2tMaW1pdEtpbmQ6OmtSZWFsU3RhY2tMaW1pdCk7CisrICBf XyBCcmFuY2goJnN0YWNrX292ZXJmbG93LCBVbGVzcywgc3AsIE9wZXJhbmQoa1NjcmF0Y2hSZWcp KTsKKysKKysgIC8vIFB1c2ggcmVjZWl2ZXIuCisrICBfXyBMZChhNSwgRmllbGRNZW1PcGVyYW5k KGExLCBKU0dlbmVyYXRvck9iamVjdDo6a1JlY2VpdmVyT2Zmc2V0KSk7CisrICBfXyBQdXNoKGE1 KTsKKysKKysgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAvLyAg LS0gYTEgICAgOiB0aGUgSlNHZW5lcmF0b3JPYmplY3QgdG8gcmVzdW1lCisrICAvLyAgLS0gYTQg ICAgOiBnZW5lcmF0b3IgZnVuY3Rpb24KKysgIC8vICAtLSBjcCAgICA6IGdlbmVyYXRvciBjb250 ZXh0CisrICAvLyAgLS0gcmEgICAgOiByZXR1cm4gYWRkcmVzcworKyAgLy8gIC0tIHNwWzBdIDog Z2VuZXJhdG9yIHJlY2VpdmVyCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKworKyAgLy8gUHVzaCBob2xlcyBmb3IgYXJndW1lbnRzIHRvIGdlbmVyYXRvciBmdW5j dGlvbi4gU2luY2UgdGhlIHBhcnNlciBmb3JjZWQKKysgIC8vIGNvbnRleHQgYWxsb2NhdGlvbiBm b3IgYW55IHZhcmlhYmxlcyBpbiBnZW5lcmF0b3JzLCB0aGUgYWN0dWFsIGFyZ3VtZW50CisrICAv LyB2YWx1ZXMgaGF2ZSBhbHJlYWR5IGJlZW4gY29waWVkIGludG8gdGhlIGNvbnRleHQgYW5kIHRo ZXNlIGR1bW15IHZhbHVlcworKyAgLy8gd2lsbCBuZXZlciBiZSB1c2VkLgorKyAgX18gTGQoYTMs IEZpZWxkTWVtT3BlcmFuZChhNCwgSlNGdW5jdGlvbjo6a1NoYXJlZEZ1bmN0aW9uSW5mb09mZnNl dCkpOworKyAgX18gTGh1KGEzLAorKyAgICAgICAgIEZpZWxkTWVtT3BlcmFuZChhMywgU2hhcmVk RnVuY3Rpb25JbmZvOjprRm9ybWFsUGFyYW1ldGVyQ291bnRPZmZzZXQpKTsKKysgIF9fIExkKHQx LAorKyAgICAgICAgRmllbGRNZW1PcGVyYW5kKGExLCBKU0dlbmVyYXRvck9iamVjdDo6a1BhcmFt ZXRlcnNBbmRSZWdpc3RlcnNPZmZzZXQpKTsKKysgIHsKKysgICAgTGFiZWwgZG9uZV9sb29wLCBs b29wOworKyAgICBfXyBNb3ZlKHQyLCB6ZXJvX3JlZyk7CisrICAgIF9fIGJpbmQoJmxvb3ApOwor KyAgICBfXyBTdWI2NChhMywgYTMsIE9wZXJhbmQoMSkpOworKyAgICBfXyBCcmFuY2goJmRvbmVf bG9vcCwgbHQsIGEzLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAgIF9fIENhbGNTY2FsZWRBZGRy ZXNzKGtTY3JhdGNoUmVnLCB0MSwgdDIsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgICBfXyBMZChr U2NyYXRjaFJlZywgRmllbGRNZW1PcGVyYW5kKGtTY3JhdGNoUmVnLCBGaXhlZEFycmF5OjprSGVh ZGVyU2l6ZSkpOworKyAgICBfXyBQdXNoKGtTY3JhdGNoUmVnKTsKKysgICAgX18gQWRkNjQodDIs IHQyLCBPcGVyYW5kKDEpKTsKKysgICAgX18gQnJhbmNoKCZsb29wKTsKKysgICAgX18gYmluZCgm ZG9uZV9sb29wKTsKKysgIH0KKysKKysgIC8vIFVuZGVybHlpbmcgZnVuY3Rpb24gbmVlZHMgdG8g aGF2ZSBieXRlY29kZSBhdmFpbGFibGUuCisrICBpZiAoRkxBR19kZWJ1Z19jb2RlKSB7CisrICAg IF9fIExkKGEzLCBGaWVsZE1lbU9wZXJhbmQoYTQsIEpTRnVuY3Rpb246OmtTaGFyZWRGdW5jdGlv bkluZm9PZmZzZXQpKTsKKysgICAgX18gTGQoYTMsIEZpZWxkTWVtT3BlcmFuZChhMywgU2hhcmVk RnVuY3Rpb25JbmZvOjprRnVuY3Rpb25EYXRhT2Zmc2V0KSk7CisrICAgIEdldFNoYXJlZEZ1bmN0 aW9uSW5mb0J5dGVjb2RlKG1hc20sIGEzLCBhMCk7CisrICAgIF9fIEdldE9iamVjdFR5cGUoYTMs IGEzLCBhMyk7CisrICAgIF9fIEFzc2VydChlcSwgQWJvcnRSZWFzb246OmtNaXNzaW5nQnl0ZWNv ZGVBcnJheSwgYTMsCisrICAgICAgICAgICAgICBPcGVyYW5kKEJZVEVDT0RFX0FSUkFZX1RZUEUp KTsKKysgIH0KKysKKysgIC8vIFJlc3VtZSAoSWduaXRpb24vVHVyYm9GYW4pIGdlbmVyYXRvciBv YmplY3QuCisrICB7CisrICAgIF9fIExkKGEwLCBGaWVsZE1lbU9wZXJhbmQoYTQsIEpTRnVuY3Rp b246OmtTaGFyZWRGdW5jdGlvbkluZm9PZmZzZXQpKTsKKysgICAgX18gTGh1KGEwLCBGaWVsZE1l bU9wZXJhbmQoCisrICAgICAgICAgICAgICAgICAgIGEwLCBTaGFyZWRGdW5jdGlvbkluZm86OmtG b3JtYWxQYXJhbWV0ZXJDb3VudE9mZnNldCkpOworKyAgICAvLyBXZSBhYnVzZSBuZXcudGFyZ2V0 IGJvdGggdG8gaW5kaWNhdGUgdGhhdCB0aGlzIGlzIGEgcmVzdW1lIGNhbGwgYW5kIHRvCisrICAg IC8vIHBhc3MgaW4gdGhlIGdlbmVyYXRvciBvYmplY3QuICBJbiBvcmRpbmFyeSBjYWxscywgbmV3 LnRhcmdldCBpcyBhbHdheXMKKysgICAgLy8gdW5kZWZpbmVkIGJlY2F1c2UgZ2VuZXJhdG9yIGZ1 bmN0aW9ucyBhcmUgbm9uLWNvbnN0cnVjdGFibGUuCisrICAgIF9fIE1vdmUoYTMsIGExKTsKKysg ICAgX18gTW92ZShhMSwgYTQpOworKyAgICBzdGF0aWNfYXNzZXJ0KGtKYXZhU2NyaXB0Q2FsbENv ZGVTdGFydFJlZ2lzdGVyID09IGEyLCAiQUJJIG1pc21hdGNoIik7CisrICAgIF9fIExkKGEyLCBG aWVsZE1lbU9wZXJhbmQoYTEsIEpTRnVuY3Rpb246OmtDb2RlT2Zmc2V0KSk7CisrICAgIF9fIEFk ZDY0KGEyLCBhMiwgT3BlcmFuZChDb2RlOjprSGVhZGVyU2l6ZSAtIGtIZWFwT2JqZWN0VGFnKSk7 CisrICAgIF9fIEp1bXAoYTIpOworKyAgfQorKworKyAgX18gYmluZCgmcHJlcGFyZV9zdGVwX2lu X2lmX3N0ZXBwaW5nKTsKKysgIHsKKysgICAgRnJhbWVTY29wZSBzY29wZShtYXNtLCBTdGFja0Zy YW1lOjpJTlRFUk5BTCk7CisrICAgIF9fIFB1c2goYTEsIGE0KTsKKysgICAgLy8gUHVzaCBob2xl IGFzIHJlY2VpdmVyIHNpbmNlIHdlIGRvIG5vdCB1c2UgaXQgZm9yIHN0ZXBwaW5nLgorKyAgICBf XyBQdXNoUm9vdChSb290SW5kZXg6OmtUaGVIb2xlVmFsdWUpOworKyAgICBfXyBDYWxsUnVudGlt ZShSdW50aW1lOjprRGVidWdPbkZ1bmN0aW9uQ2FsbCk7CisrICAgIF9fIFBvcChhMSk7CisrICB9 CisrICBfXyBMZChhNCwgRmllbGRNZW1PcGVyYW5kKGExLCBKU0dlbmVyYXRvck9iamVjdDo6a0Z1 bmN0aW9uT2Zmc2V0KSk7CisrICBfXyBCcmFuY2goJnN0ZXBwaW5nX3ByZXBhcmVkKTsKKysKKysg IF9fIGJpbmQoJnByZXBhcmVfc3RlcF9pbl9zdXNwZW5kZWRfZ2VuZXJhdG9yKTsKKysgIHsKKysg ICAgRnJhbWVTY29wZSBzY29wZShtYXNtLCBTdGFja0ZyYW1lOjpJTlRFUk5BTCk7CisrICAgIF9f IFB1c2goYTEpOworKyAgICBfXyBDYWxsUnVudGltZShSdW50aW1lOjprRGVidWdQcmVwYXJlU3Rl cEluU3VzcGVuZGVkR2VuZXJhdG9yKTsKKysgICAgX18gUG9wKGExKTsKKysgIH0KKysgIF9fIExk KGE0LCBGaWVsZE1lbU9wZXJhbmQoYTEsIEpTR2VuZXJhdG9yT2JqZWN0OjprRnVuY3Rpb25PZmZz ZXQpKTsKKysgIF9fIEJyYW5jaCgmc3RlcHBpbmdfcHJlcGFyZWQpOworKworKyAgX18gYmluZCgm c3RhY2tfb3ZlcmZsb3cpOworKyAgeworKyAgICBGcmFtZVNjb3BlIHNjb3BlKG1hc20sIFN0YWNr RnJhbWU6OklOVEVSTkFMKTsKKysgICAgX18gQ2FsbFJ1bnRpbWUoUnVudGltZTo6a1Rocm93U3Rh Y2tPdmVyZmxvdyk7CisrICAgIF9fIGJyZWFrXygweENDKTsgIC8vIFRoaXMgc2hvdWxkIGJlIHVu cmVhY2hhYmxlLgorKyAgfQorK30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9Db25zdHJ1 Y3RlZE5vbkNvbnN0cnVjdGFibGUoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIEZyYW1lU2Nv cGUgc2NvcGUobWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKyAgX18gUHVzaChhMSk7Cisr ICBfXyBDYWxsUnVudGltZShSdW50aW1lOjprVGhyb3dDb25zdHJ1Y3RlZE5vbkNvbnN0cnVjdGFi bGUpOworK30KKysKKysvLyBDbG9iYmVycyBzY3JhdGNoMSBhbmQgc2NyYXRjaDI7IHByZXNlcnZl cyBhbGwgb3RoZXIgcmVnaXN0ZXJzLgorK3N0YXRpYyB2b2lkIEdlbmVyYXRlX0NoZWNrU3RhY2tP dmVyZmxvdyhNYWNyb0Fzc2VtYmxlciogbWFzbSwgUmVnaXN0ZXIgYXJnYywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDEsIFJlZ2lzdGVy IHNjcmF0Y2gyKSB7CisrICAvLyBDaGVjayB0aGUgc3RhY2sgZm9yIG92ZXJmbG93LiBXZSBhcmUg bm90IHRyeWluZyB0byBjYXRjaAorKyAgLy8gaW50ZXJydXB0aW9ucyAoZS5nLiBkZWJ1ZyBicmVh ayBhbmQgcHJlZW1wdGlvbikgaGVyZSwgc28gdGhlICJyZWFsIHN0YWNrCisrICAvLyBsaW1pdCIg aXMgY2hlY2tlZC4KKysgIExhYmVsIG9rYXk7CisrICBMb2FkU3RhY2tMaW1pdChtYXNtLCBzY3Jh dGNoMSwgU3RhY2tMaW1pdEtpbmQ6OmtSZWFsU3RhY2tMaW1pdCk7CisrICAvLyBNYWtlIGEyIHRo ZSBzcGFjZSB3ZSBoYXZlIGxlZnQuIFRoZSBzdGFjayBtaWdodCBhbHJlYWR5IGJlIG92ZXJmbG93 ZWQKKysgIC8vIGhlcmUgd2hpY2ggd2lsbCBjYXVzZSByMiB0byBiZWNvbWUgbmVnYXRpdmUuCisr ICBfXyBTdWI2NChzY3JhdGNoMSwgc3AsIHNjcmF0Y2gxKTsKKysgIC8vIENoZWNrIGlmIHRoZSBh cmd1bWVudHMgd2lsbCBvdmVyZmxvdyB0aGUgc3RhY2suCisrICBfXyBTbGw2NChzY3JhdGNoMiwg YXJnYywga1BvaW50ZXJTaXplTG9nMik7CisrICBfXyBCcmFuY2goJm9rYXksIGd0LCBzY3JhdGNo MSwgT3BlcmFuZChzY3JhdGNoMikpOyAgLy8gU2lnbmVkIGNvbXBhcmlzb24uCisrCisrICAvLyBP dXQgb2Ygc3RhY2sgc3BhY2UuCisrICBfXyBDYWxsUnVudGltZShSdW50aW1lOjprVGhyb3dTdGFj a092ZXJmbG93KTsKKysKKysgIF9fIGJpbmQoJm9rYXkpOworK30KKysKKytuYW1lc3BhY2Ugewor KworKy8vIENhbGxlZCB3aXRoIHRoZSBuYXRpdmUgQyBjYWxsaW5nIGNvbnZlbnRpb24uIFRoZSBj b3JyZXNwb25kaW5nIGZ1bmN0aW9uCisrLy8gc2lnbmF0dXJlIGlzIGVpdGhlcjoKKysvLworKy8v ICAgdXNpbmcgSlNFbnRyeUZ1bmN0aW9uID0gR2VuZXJhdGVkQ29kZTxBZGRyZXNzKAorKy8vICAg ICAgIEFkZHJlc3Mgcm9vdF9yZWdpc3Rlcl92YWx1ZSwgQWRkcmVzcyBuZXdfdGFyZ2V0LCBBZGRy ZXNzIHRhcmdldCwKKysvLyAgICAgICBBZGRyZXNzIHJlY2VpdmVyLCBpbnRwdHJfdCBhcmdjLCBB ZGRyZXNzKiogYXJncyk+OworKy8vIG9yCisrLy8gICB1c2luZyBKU0VudHJ5RnVuY3Rpb24gPSBH ZW5lcmF0ZWRDb2RlPEFkZHJlc3MoCisrLy8gICAgICAgQWRkcmVzcyByb290X3JlZ2lzdGVyX3Zh bHVlLCBNaWNyb3Rhc2tRdWV1ZSogbWljcm90YXNrX3F1ZXVlKT47Cisrdm9pZCBHZW5lcmF0ZV9K U0VudHJ5VmFyaWFudChNYWNyb0Fzc2VtYmxlciogbWFzbSwgU3RhY2tGcmFtZTo6VHlwZSB0eXBl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbHRpbnM6Ok5hbWUgZW50cnlfdHJh bXBvbGluZSkgeworKyAgTGFiZWwgaW52b2tlLCBoYW5kbGVyX2VudHJ5LCBleGl0OworKworKyAg eworKyAgICBOb1Jvb3RBcnJheVNjb3BlIG5vX3Jvb3RfYXJyYXkobWFzbSk7CisrCisrICAgIC8v IFRPRE8ocGxpbmQpOiB1bmlmeSB0aGUgQUJJIGRlc2NyaXB0aW9uIGhlcmUuCisrICAgIC8vIFJl Z2lzdGVyczoKKysgICAgLy8gIGVpdGhlcgorKyAgICAvLyAgIGEwOiByb290IHJlZ2lzdGVyIHZh bHVlCisrICAgIC8vICAgYTE6IGVudHJ5IGFkZHJlc3MKKysgICAgLy8gICBhMjogZnVuY3Rpb24K KysgICAgLy8gICBhMzogcmVjZWl2ZXIKKysgICAgLy8gICBhNDogYXJnYworKyAgICAvLyAgIGE1 OiBhcmd2CisrICAgIC8vICBvcgorKyAgICAvLyAgIGEwOiByb290IHJlZ2lzdGVyIHZhbHVlCisr ICAgIC8vICAgYTE6IG1pY3JvdGFza19xdWV1ZQorKworKyAgICAvLyBTYXZlIGNhbGxlZSBzYXZl ZCByZWdpc3RlcnMgb24gdGhlIHN0YWNrLgorKyAgICBfXyBNdWx0aVB1c2goa0NhbGxlZVNhdmVk IHwgcmEuYml0KCkpOworKworKyAgICAvLyBTYXZlIGNhbGxlZS1zYXZlZCBGUFUgcmVnaXN0ZXJz LgorKyAgICBfXyBNdWx0aVB1c2hGUFUoa0NhbGxlZVNhdmVkRlBVKTsKKysgICAgLy8gU2V0IHVw IHRoZSByZXNlcnZlZCByZWdpc3RlciBmb3IgMC4wLgorKyAgICBfXyBMb2FkRlBSSW1tZWRpYXRl KGtEb3VibGVSZWdaZXJvLCAwLjApOworKworKyAgICAvLyBJbml0aWFsaXplIHRoZSByb290IHJl Z2lzdGVyLgorKyAgICAvLyBDIGNhbGxpbmcgY29udmVudGlvbi4gVGhlIGZpcnN0IGFyZ3VtZW50 IGlzIHBhc3NlZCBpbiBhMC4KKysgICAgX18gTW92ZShrUm9vdFJlZ2lzdGVyLCBhMCk7CisrICB9 CisrCisrICAvLyBhMTogZW50cnkgYWRkcmVzcworKyAgLy8gYTI6IGZ1bmN0aW9uCisrICAvLyBh MzogcmVjZWl2ZXIKKysgIC8vIGE0OiBhcmdjCisrICAvLyBhNTogYXJndgorKworKyAgLy8gV2Ug YnVpbGQgYW4gRW50cnlGcmFtZS4KKysgIF9fIGxpKHMxLCBPcGVyYW5kKC0xKSk7ICAvLyBQdXNo IGEgYmFkIGZyYW1lIHBvaW50ZXIgdG8gZmFpbCBpZiBpdCBpcyB1c2VkLgorKyAgX18gbGkoczIs IE9wZXJhbmQoU3RhY2tGcmFtZTo6VHlwZVRvTWFya2VyKHR5cGUpKSk7CisrICBfXyBsaShzMywg T3BlcmFuZChTdGFja0ZyYW1lOjpUeXBlVG9NYXJrZXIodHlwZSkpKTsKKysgIEV4dGVybmFsUmVm ZXJlbmNlIGNfZW50cnlfZnAgPSBFeHRlcm5hbFJlZmVyZW5jZTo6Q3JlYXRlKAorKyAgICAgIElz b2xhdGVBZGRyZXNzSWQ6OmtDRW50cnlGUEFkZHJlc3MsIG1hc20tPmlzb2xhdGUoKSk7CisrICBf XyBsaShzNCwgY19lbnRyeV9mcCk7CisrICBfXyBMZChzNCwgTWVtT3BlcmFuZChzNCkpOworKyAg X18gUHVzaChzMSwgczIsIHMzLCBzNCk7CisrICAvLyBTZXQgdXAgZnJhbWUgcG9pbnRlciBmb3Ig dGhlIGZyYW1lIHRvIGJlIHB1c2hlZC4KKysgIF9fIEFkZDY0KGZwLCBzcCwgLUVudHJ5RnJhbWVD b25zdGFudHM6OmtDYWxsZXJGUE9mZnNldCk7CisrICAvLyBSZWdpc3RlcnM6CisrICAvLyAgZWl0 aGVyCisrICAvLyAgIGExOiBlbnRyeSBhZGRyZXNzCisrICAvLyAgIGEyOiBmdW5jdGlvbgorKyAg Ly8gICBhMzogcmVjZWl2ZXIKKysgIC8vICAgYTQ6IGFyZ2MKKysgIC8vICAgYTU6IGFyZ3YKKysg IC8vICBvcgorKyAgLy8gICBhMTogbWljcm90YXNrX3F1ZXVlCisrICAvLworKyAgLy8gU3RhY2s6 CisrICAvLyBjYWxsZXIgZnAgICAgICAgICAgfAorKyAgLy8gZnVuY3Rpb24gc2xvdCAgICAgIHwg ZW50cnkgZnJhbWUKKysgIC8vIGNvbnRleHQgc2xvdCAgICAgICB8CisrICAvLyBiYWQgZnAgKDB4 RkYuLi5GKSAgfAorKyAgLy8gY2FsbGVlIHNhdmVkIHJlZ2lzdGVycyArIHJhCisrICAvLyBbIE8z MjogNCBhcmdzIHNsb3RzXQorKyAgLy8gYXJncworKworKyAgLy8gSWYgdGhpcyBpcyB0aGUgb3V0 ZXJtb3N0IEpTIGNhbGwsIHNldCBqc19lbnRyeV9zcCB2YWx1ZS4KKysgIExhYmVsIG5vbl9vdXRl cm1vc3RfanM7CisrICBFeHRlcm5hbFJlZmVyZW5jZSBqc19lbnRyeV9zcCA9IEV4dGVybmFsUmVm ZXJlbmNlOjpDcmVhdGUoCisrICAgICAgSXNvbGF0ZUFkZHJlc3NJZDo6a0pTRW50cnlTUEFkZHJl c3MsIG1hc20tPmlzb2xhdGUoKSk7CisrICBfXyBsaShzMSwganNfZW50cnlfc3ApOworKyAgX18g TGQoczIsIE1lbU9wZXJhbmQoczEpKTsKKysgIF9fIEJyYW5jaCgmbm9uX291dGVybW9zdF9qcywg bmUsIHMyLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICBfXyBTZChmcCwgTWVtT3BlcmFuZChzMSkp OworKyAgX18gbGkoczMsIE9wZXJhbmQoU3RhY2tGcmFtZTo6T1VURVJNT1NUX0pTRU5UUllfRlJB TUUpKTsKKysgIExhYmVsIGNvbnQ7CisrICBfXyBCcmFuY2goJmNvbnQpOworKyAgX18gYmluZCgm bm9uX291dGVybW9zdF9qcyk7CisrICBfXyBsaShzMywgT3BlcmFuZChTdGFja0ZyYW1lOjpJTk5F Ul9KU0VOVFJZX0ZSQU1FKSk7CisrICBfXyBiaW5kKCZjb250KTsKKysgIF9fIHB1c2goczMpOwor KworKyAgLy8gSnVtcCB0byBhIGZha2VkIHRyeSBibG9jayB0aGF0IGRvZXMgdGhlIGludm9rZSwg d2l0aCBhIGZha2VkIGNhdGNoCisrICAvLyBibG9jayB0aGF0IHNldHMgdGhlIHBlbmRpbmcgZXhj ZXB0aW9uLgorKyAgX18gQnJhbmNoKCZpbnZva2UpOworKyAgX18gYmluZCgmaGFuZGxlcl9lbnRy eSk7CisrCisrICAvLyBTdG9yZSB0aGUgY3VycmVudCBwYyBhcyB0aGUgaGFuZGxlciBvZmZzZXQu IEl0J3MgdXNlZCBsYXRlciB0byBjcmVhdGUgdGhlCisrICAvLyBoYW5kbGVyIHRhYmxlLgorKyAg bWFzbS0+aXNvbGF0ZSgpLT5idWlsdGlucygpLT5TZXRKU0VudHJ5SGFuZGxlck9mZnNldChoYW5k bGVyX2VudHJ5LnBvcygpKTsKKysKKysgIC8vIENhdWdodCBleGNlcHRpb246IFN0b3JlIHJlc3Vs dCAoZXhjZXB0aW9uKSBpbiB0aGUgcGVuZGluZyBleGNlcHRpb24KKysgIC8vIGZpZWxkIGluIHRo ZSBKU0VudiBhbmQgcmV0dXJuIGEgZmFpbHVyZSBzZW50aW5lbC4gIENvbWluZyBpbiBoZXJlIHRo ZQorKyAgLy8gZnAgd2lsbCBiZSBpbnZhbGlkIGJlY2F1c2UgdGhlIFB1c2hTdGFja0hhbmRsZXIg YmVsb3cgc2V0cyBpdCB0byAwIHRvCisrICAvLyBzaWduYWwgdGhlIGV4aXN0ZW5jZSBvZiB0aGUg SlNFbnRyeSBmcmFtZS4KKysgIF9fIGxpKHMxLCBFeHRlcm5hbFJlZmVyZW5jZTo6Q3JlYXRlKAor KyAgICAgICAgICAgICAgICBJc29sYXRlQWRkcmVzc0lkOjprUGVuZGluZ0V4Y2VwdGlvbkFkZHJl c3MsIG1hc20tPmlzb2xhdGUoKSkpOworKyAgX18gU2QoYTAsIE1lbU9wZXJhbmQoczEpKTsgIC8v IFdlIGNvbWUgYmFjayBmcm9tICdpbnZva2UnLiByZXN1bHQgaXMgaW4gYTAuCisrICBfXyBMb2Fk Um9vdChhMCwgUm9vdEluZGV4OjprRXhjZXB0aW9uKTsKKysgIF9fIEJyYW5jaCgmZXhpdCk7Cisr CisrICAvLyBJbnZva2U6IExpbmsgdGhpcyBmcmFtZSBpbnRvIHRoZSBoYW5kbGVyIGNoYWluLgor KyAgX18gYmluZCgmaW52b2tlKTsKKysgIF9fIFB1c2hTdGFja0hhbmRsZXIoKTsKKysgIC8vIElm IGFuIGV4Y2VwdGlvbiBub3QgY2F1Z2h0IGJ5IGFub3RoZXIgaGFuZGxlciBvY2N1cnMsIHRoaXMg aGFuZGxlcgorKyAgLy8gcmV0dXJucyBjb250cm9sIHRvIHRoZSBjb2RlIGFmdGVyIHRoZSBiYWwo Jmludm9rZSkgYWJvdmUsIHdoaWNoCisrICAvLyByZXN0b3JlcyBhbGwga0NhbGxlZVNhdmVkIHJl Z2lzdGVycyAoaW5jbHVkaW5nIGNwIGFuZCBmcCkgdG8gdGhlaXIKKysgIC8vIHNhdmVkIHZhbHVl cyBiZWZvcmUgcmV0dXJuaW5nIGEgZmFpbHVyZSB0byBDLgorKyAgLy8KKysgIC8vIFJlZ2lzdGVy czoKKysgIC8vICBlaXRoZXIKKysgIC8vICAgYTA6IHJvb3QgcmVnaXN0ZXIgdmFsdWUKKysgIC8v ICAgYTE6IGVudHJ5IGFkZHJlc3MKKysgIC8vICAgYTI6IGZ1bmN0aW9uCisrICAvLyAgIGEzOiBy ZWNlaXZlcgorKyAgLy8gICBhNDogYXJnYworKyAgLy8gICBhNTogYXJndgorKyAgLy8gIG9yCisr ICAvLyAgIGEwOiByb290IHJlZ2lzdGVyIHZhbHVlCisrICAvLyAgIGExOiBtaWNyb3Rhc2tfcXVl dWUKKysgIC8vCisrICAvLyBTdGFjazoKKysgIC8vIGhhbmRsZXIgZnJhbWUKKysgIC8vIGVudHJ5 IGZyYW1lCisrICAvLyBjYWxsZWUgc2F2ZWQgcmVnaXN0ZXJzICsgcmEKKysgIC8vIFsgTzMyOiA0 IGFyZ3Mgc2xvdHNdCisrICAvLyBhcmdzCisrICAvLworKyAgLy8gSW52b2tlIHRoZSBmdW5jdGlv biBieSBjYWxsaW5nIHRocm91Z2ggSlMgZW50cnkgdHJhbXBvbGluZSBidWlsdGluIGFuZAorKyAg Ly8gcG9wIHRoZSBmYWtlZCBmdW5jdGlvbiB3aGVuIHdlIHJldHVybi4KKysKKysgIEhhbmRsZTxD b2RlPiB0cmFtcG9saW5lX2NvZGUgPQorKyAgICAgIG1hc20tPmlzb2xhdGUoKS0+YnVpbHRpbnMo KS0+YnVpbHRpbl9oYW5kbGUoZW50cnlfdHJhbXBvbGluZSk7CisrICBfXyBDYWxsKHRyYW1wb2xp bmVfY29kZSwgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrCisrICAvLyBVbmxpbmsgdGhpcyBm cmFtZSBmcm9tIHRoZSBoYW5kbGVyIGNoYWluLgorKyAgX18gUG9wU3RhY2tIYW5kbGVyKCk7Cisr CisrICBfXyBiaW5kKCZleGl0KTsgIC8vIGEwIGhvbGRzIHJlc3VsdAorKyAgLy8gQ2hlY2sgaWYg dGhlIGN1cnJlbnQgc3RhY2sgZnJhbWUgaXMgbWFya2VkIGFzIHRoZSBvdXRlcm1vc3QgSlMgZnJh bWUuCisrICBMYWJlbCBub25fb3V0ZXJtb3N0X2pzXzI7CisrICBfXyBwb3AoYTUpOworKyAgX18g QnJhbmNoKCZub25fb3V0ZXJtb3N0X2pzXzIsIG5lLCBhNSwKKysgICAgICAgICAgICBPcGVyYW5k KFN0YWNrRnJhbWU6Ok9VVEVSTU9TVF9KU0VOVFJZX0ZSQU1FKSk7CisrICBfXyBsaShhNSwganNf ZW50cnlfc3ApOworKyAgX18gU2QoemVyb19yZWcsIE1lbU9wZXJhbmQoYTUpKTsKKysgIF9fIGJp bmQoJm5vbl9vdXRlcm1vc3RfanNfMik7CisrCisrICAvLyBSZXN0b3JlIHRoZSB0b3AgZnJhbWUg ZGVzY3JpcHRvcnMgZnJvbSB0aGUgc3RhY2suCisrICBfXyBwb3AoYTUpOworKyAgX18gbGkoYTQs IEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoSXNvbGF0ZUFkZHJlc3NJZDo6a0NFbnRyeUZQQWRk cmVzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc20tPmlzb2xh dGUoKSkpOworKyAgX18gU2QoYTUsIE1lbU9wZXJhbmQoYTQpKTsKKysKKysgIC8vIFJlc2V0IHRo ZSBzdGFjayB0byB0aGUgY2FsbGVlIHNhdmVkIHJlZ2lzdGVycy4KKysgIF9fIEFkZDY0KHNwLCBz cCwgLUVudHJ5RnJhbWVDb25zdGFudHM6OmtDYWxsZXJGUE9mZnNldCk7CisrCisrICAvLyBSZXN0 b3JlIGNhbGxlZS1zYXZlZCBmcHUgcmVnaXN0ZXJzLgorKyAgX18gTXVsdGlQb3BGUFUoa0NhbGxl ZVNhdmVkRlBVKTsKKysKKysgIC8vIFJlc3RvcmUgY2FsbGVlIHNhdmVkIHJlZ2lzdGVycyBmcm9t IHRoZSBzdGFjay4KKysgIF9fIE11bHRpUG9wKGtDYWxsZWVTYXZlZCB8IHJhLmJpdCgpKTsKKysg IC8vIFJldHVybi4KKysgIF9fIEp1bXAocmEpOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2UKKysK Kyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9KU0VudHJ5KE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7 CisrICBHZW5lcmF0ZV9KU0VudHJ5VmFyaWFudChtYXNtLCBTdGFja0ZyYW1lOjpFTlRSWSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWx0aW5zOjprSlNFbnRyeVRyYW1wb2xpbmUpOwor K30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9KU0NvbnN0cnVjdEVudHJ5KE1hY3JvQXNz ZW1ibGVyKiBtYXNtKSB7CisrICBHZW5lcmF0ZV9KU0VudHJ5VmFyaWFudChtYXNtLCBTdGFja0Zy YW1lOjpDT05TVFJVQ1RfRU5UUlksCisrICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsdGlu czo6a0pTQ29uc3RydWN0RW50cnlUcmFtcG9saW5lKTsKKyt9CisrCisrdm9pZCBCdWlsdGluczo6 R2VuZXJhdGVfSlNSdW5NaWNyb3Rhc2tzRW50cnkoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysg IEdlbmVyYXRlX0pTRW50cnlWYXJpYW50KG1hc20sIFN0YWNrRnJhbWU6OkVOVFJZLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgQnVpbHRpbnM6OmtSdW5NaWNyb3Rhc2tzVHJhbXBvbGluZSk7 CisrfQorKworK3N0YXRpYyB2b2lkIEdlbmVyYXRlX0pTRW50cnlUcmFtcG9saW5lSGVscGVyKE1h Y3JvQXNzZW1ibGVyKiBtYXNtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgaXNfY29uc3RydWN0KSB7CisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0 IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGExOiBuZXcudGFyZ2V0CisrICAvLyAgLS0gYTI6 IGZ1bmN0aW9uCisrICAvLyAgLS0gYTM6IHJlY2VpdmVyX3BvaW50ZXIKKysgIC8vICAtLSBhNDog YXJnYworKyAgLy8gIC0tIGE1OiBhcmd2CisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKworKyAgLy8gRW50ZXIgYW4gaW50ZXJuYWwgZnJhbWUuCisrICB7CisrICAg IEZyYW1lU2NvcGUgc2NvcGUobWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKworKyAgICAv LyBTZXR1cCB0aGUgY29udGV4dCAod2UgbmVlZCB0byB1c2UgdGhlIGNhbGxlciBjb250ZXh0IGZy b20gdGhlIGlzb2xhdGUpLgorKyAgICBFeHRlcm5hbFJlZmVyZW5jZSBjb250ZXh0X2FkZHJlc3Mg PSBFeHRlcm5hbFJlZmVyZW5jZTo6Q3JlYXRlKAorKyAgICAgICAgSXNvbGF0ZUFkZHJlc3NJZDo6 a0NvbnRleHRBZGRyZXNzLCBtYXNtLT5pc29sYXRlKCkpOworKyAgICBfXyBsaShjcCwgY29udGV4 dF9hZGRyZXNzKTsKKysgICAgX18gTGQoY3AsIE1lbU9wZXJhbmQoY3ApKTsKKysKKysgICAgLy8g UHVzaCB0aGUgZnVuY3Rpb24gYW5kIHRoZSByZWNlaXZlciBvbnRvIHRoZSBzdGFjay4KKysgICAg X18gUHVzaChhMiwgYTMpOworKworKyAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGVub3VnaCBzdGFj ayBzcGFjZSB0byBwdXNoIGFsbCBhcmd1bWVudHMuCisrICAgIC8vIENsb2JiZXJzIGEwIGFuZCBh My4KKysgICAgR2VuZXJhdGVfQ2hlY2tTdGFja092ZXJmbG93KG1hc20sIGE0LCBhMCwgYTMpOwor KworKyAgICAvLyBTZXR1cCBuZXcudGFyZ2V0LCBmdW5jdGlvbiBhbmQgYXJnYy4KKysgICAgX18g TW92ZShhMywgYTEpOworKyAgICBfXyBNb3ZlKGExLCBhMik7CisrICAgIF9fIE1vdmUoYTAsIGE0 KTsKKysKKysgICAgLy8gYTA6IGFyZ2MKKysgICAgLy8gYTE6IGZ1bmN0aW9uCisrICAgIC8vIGEz OiBuZXcudGFyZ2V0CisrICAgIC8vIGE1OiBhcmd2CisrCisrICAgIC8vIENvcHkgYXJndW1lbnRz IHRvIHRoZSBzdGFjayBpbiBhIGxvb3AuCisrICAgIC8vIGEzOiBhcmdjCisrICAgIC8vIGE1OiBh cmd2LCBpLmUuIHBvaW50cyB0byBmaXJzdCBhcmcKKysgICAgTGFiZWwgbG9vcCwgZW50cnk7Cisr ICAgIF9fIENhbGNTY2FsZWRBZGRyZXNzKHMxLCBhNSwgYTQsIGtQb2ludGVyU2l6ZUxvZzIpOwor KyAgICBfXyBCcmFuY2goJmVudHJ5KTsKKysgICAgLy8gczEgcG9pbnRzIHBhc3QgbGFzdCBhcmcu CisrICAgIF9fIGJpbmQoJmxvb3ApOworKyAgICBfXyBMZChzMiwgTWVtT3BlcmFuZChhNSkpOyAg Ly8gUmVhZCBuZXh0IHBhcmFtZXRlci4KKysgICAgX18gQWRkNjQoYTUsIGE1LCBrUG9pbnRlclNp emUpOworKyAgICBfXyBMZChzMiwgTWVtT3BlcmFuZChzMikpOyAgLy8gRGVyZWZlcmVuY2UgaGFu ZGxlLgorKyAgICBfXyBwdXNoKHMyKTsgICAgICAgICAgICAgICAgLy8gUHVzaCBwYXJhbWV0ZXIu CisrICAgIF9fIGJpbmQoJmVudHJ5KTsKKysgICAgX18gQnJhbmNoKCZsb29wLCBuZSwgYTUsIE9w ZXJhbmQoczEpKTsKKysKKysgICAgLy8gYTA6IGFyZ2MKKysgICAgLy8gYTE6IGZ1bmN0aW9uCisr ICAgIC8vIGEzOiBuZXcudGFyZ2V0CisrCisrICAgIC8vIEluaXRpYWxpemUgYWxsIEphdmFTY3Jp cHQgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycywgc2luY2UgdGhleSB3aWxsIGJlIHNlZW4KKysgICAg Ly8gYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGFzIHBhcnQgb2YgaGFuZGxlcnMuCisrICAgIF9f IExvYWRSb290KGE0LCBSb290SW5kZXg6OmtVbmRlZmluZWRWYWx1ZSk7CisrICAgIF9fIE1vdmUo YTUsIGE0KTsKKysgICAgX18gTW92ZShzMSwgYTQpOworKyAgICBfXyBNb3ZlKHMyLCBhNCk7Cisr ICAgIF9fIE1vdmUoczMsIGE0KTsKKysgICAgX18gTW92ZShzNCwgYTQpOworKyAgICBfXyBNb3Zl KHM1LCBhNCk7CisrICAgIC8vIHM2IGhvbGRzIHRoZSByb290IGFkZHJlc3MuIERvIG5vdCBjbG9i YmVyLgorKyAgICAvLyBzNyBpcyBjcC4gRG8gbm90IGluaXQuCisrCisrICAgIC8vIEludm9rZSB0 aGUgY29kZS4KKysgICAgSGFuZGxlPENvZGU+IGJ1aWx0aW4gPSBpc19jb25zdHJ1Y3QKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBCVUlMVElOX0NPREUobWFzbS0+aXNvbGF0ZSgp LCBDb25zdHJ1Y3QpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbWFzbS0+aXNv bGF0ZSgpLT5idWlsdGlucygpLT5DYWxsKCk7CisrICAgIF9fIENhbGwoYnVpbHRpbiwgUmVsb2NJ bmZvOjpDT0RFX1RBUkdFVCk7CisrCisrICAgIC8vIExlYXZlIGludGVybmFsIGZyYW1lLgorKyAg fQorKyAgX18gSnVtcChyYSk7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0pTRW50 cnlUcmFtcG9saW5lKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICBHZW5lcmF0ZV9KU0VudHJ5 VHJhbXBvbGluZUhlbHBlcihtYXNtLCBmYWxzZSk7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6Okdl bmVyYXRlX0pTQ29uc3RydWN0RW50cnlUcmFtcG9saW5lKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7 CisrICBHZW5lcmF0ZV9KU0VudHJ5VHJhbXBvbGluZUhlbHBlcihtYXNtLCB0cnVlKTsKKyt9Cisr Cisrdm9pZCBCdWlsdGluczo6R2VuZXJhdGVfUnVuTWljcm90YXNrc1RyYW1wb2xpbmUoTWFjcm9B c3NlbWJsZXIqIG1hc20pIHsKKysgIC8vIGExOiBtaWNyb3Rhc2tfcXVldWUKKysgIF9fIE1vdmUo UnVuTWljcm90YXNrc0Rlc2NyaXB0b3I6Ok1pY3JvdGFza1F1ZXVlUmVnaXN0ZXIoKSwgYTEpOwor KyAgX18gSnVtcChCVUlMVElOX0NPREUobWFzbS0+aXNvbGF0ZSgpLCBSdW5NaWNyb3Rhc2tzKSwg UmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrfQorKworK3N0YXRpYyB2b2lkIFJlcGxhY2VDbG9z dXJlQ29kZVdpdGhPcHRpbWl6ZWRDb2RlKE1hY3JvQXNzZW1ibGVyKiBtYXNtLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG9wdGltaXpl ZF9jb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIGNsb3N1cmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDEsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDIpIHsKKysgIC8vIFN0b3Jl IGNvZGUgZW50cnkgaW4gdGhlIGNsb3N1cmUuCisrICBfXyBTZChvcHRpbWl6ZWRfY29kZSwgRmll bGRNZW1PcGVyYW5kKGNsb3N1cmUsIEpTRnVuY3Rpb246OmtDb2RlT2Zmc2V0KSk7CisrICBfXyBN b3ZlKHNjcmF0Y2gxLCBvcHRpbWl6ZWRfY29kZSk7ICAvLyBXcml0ZSBiYXJyaWVyIGNsb2JiZXJz IHNjcmF0Y2gxIGJlbG93LgorKyAgX18gUmVjb3JkV3JpdGVGaWVsZChjbG9zdXJlLCBKU0Z1bmN0 aW9uOjprQ29kZU9mZnNldCwgc2NyYXRjaDEsIHNjcmF0Y2gyLAorKyAgICAgICAgICAgICAgICAg ICAgICBrUkFIYXNOb3RCZWVuU2F2ZWQsIGtEb250U2F2ZUZQUmVncywgT01JVF9SRU1FTUJFUkVE X1NFVCwKKysgICAgICAgICAgICAgICAgICAgICAgT01JVF9TTUlfQ0hFQ0spOworK30KKysKKytz dGF0aWMgdm9pZCBMZWF2ZUludGVycHJldGVyRnJhbWUoTWFjcm9Bc3NlbWJsZXIqIG1hc20sIFJl Z2lzdGVyIHNjcmF0Y2gpIHsKKysgIFJlZ2lzdGVyIGFyZ3NfY291bnQgPSBzY3JhdGNoOworKwor KyAgLy8gR2V0IHRoZSBhcmd1bWVudHMgKyByZWNlaXZlciBjb3VudC4KKysgIF9fIExkKGFyZ3Nf Y291bnQsCisrICAgICAgICBNZW1PcGVyYW5kKGZwLCBJbnRlcnByZXRlckZyYW1lQ29uc3RhbnRz OjprQnl0ZWNvZGVBcnJheUZyb21GcCkpOworKyAgX18gTHcodDAsIEZpZWxkTWVtT3BlcmFuZChh cmdzX2NvdW50LCBCeXRlY29kZUFycmF5OjprUGFyYW1ldGVyU2l6ZU9mZnNldCkpOworKworKyAg Ly8gTGVhdmUgdGhlIGZyYW1lIChhbHNvIGRyb3BwaW5nIHRoZSByZWdpc3RlciBmaWxlKS4KKysg IF9fIExlYXZlRnJhbWUoU3RhY2tGcmFtZTo6SU5URVJQUkVURUQpOworKworKyAgLy8gRHJvcCBy ZWNlaXZlciArIGFyZ3VtZW50cy4KKysgIF9fIEFkZDY0KHNwLCBzcCwgYXJnc19jb3VudCk7Cisr fQorKworKy8vIFRhaWwtY2FsbCB8ZnVuY3Rpb25faWR8IGlmIHxzbWlfZW50cnl8ID09IHxtYXJr ZXJ8Cisrc3RhdGljIHZvaWQgVGFpbENhbGxSdW50aW1lSWZNYXJrZXJFcXVhbHMoTWFjcm9Bc3Nl bWJsZXIqIG1hc20sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVnaXN0ZXIgc21pX2VudHJ5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9wdGltaXphdGlvbk1hcmtlciBtYXJrZXIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUnVudGltZTo6RnVuY3Rpb25JZCBmdW5jdGlvbl9pZCkgewor KyAgTGFiZWwgbm9fbWF0Y2g7CisrICBfXyBCcmFuY2goJm5vX21hdGNoLCBuZSwgc21pX2VudHJ5 LCBPcGVyYW5kKFNtaTo6RnJvbUVudW0obWFya2VyKSkpOworKyAgR2VuZXJhdGVUYWlsQ2FsbFRv UmV0dXJuZWRDb2RlKG1hc20sIGZ1bmN0aW9uX2lkKTsKKysgIF9fIGJpbmQoJm5vX21hdGNoKTsK Kyt9CisrCisrc3RhdGljIHZvaWQgVGFpbENhbGxPcHRpbWl6ZWRDb2RlU2xvdChNYWNyb0Fzc2Vt YmxlciogbWFzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIG9wdGltaXplZF9jb2RlX2VudHJ5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDEsIFJlZ2lzdGVyIHNjcmF0Y2gyKSB7CisrICAvLyAt LS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGEzIDogbmV3IHRh cmdldCAocHJlc2VydmVkIGZvciBjYWxsZWUgaWYgbmVlZGVkLCBhbmQgY2FsbGVyKQorKyAgLy8g IC0tIGExIDogdGFyZ2V0IGZ1bmN0aW9uIChwcmVzZXJ2ZWQgZm9yIGNhbGxlZSBpZiBuZWVkZWQs IGFuZCBjYWxsZXIpCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyAgRENIRUNLKCFBcmVBbGlhc2VkKG9wdGltaXplZF9jb2RlX2VudHJ5LCBhMSwgYTMsIHNjcmF0 Y2gxLCBzY3JhdGNoMikpOworKworKyAgUmVnaXN0ZXIgY2xvc3VyZSA9IGExOworKworKyAgLy8g Q2hlY2sgaWYgdGhlIG9wdGltaXplZCBjb2RlIGlzIG1hcmtlZCBmb3IgZGVvcHQuIElmIGl0IGlz LCBjYWxsIHRoZQorKyAgLy8gcnVudGltZSB0byBjbGVhciBpdC4KKysgIExhYmVsIGZvdW5kX2Rl b3B0aW1pemVkX2NvZGU7CisrICBfXyBMZChhNSwKKysgICAgICAgIEZpZWxkTWVtT3BlcmFuZChv cHRpbWl6ZWRfY29kZV9lbnRyeSwgQ29kZTo6a0NvZGVEYXRhQ29udGFpbmVyT2Zmc2V0KSk7Cisr ICBfXyBMdyhhNSwgRmllbGRNZW1PcGVyYW5kKGE1LCBDb2RlRGF0YUNvbnRhaW5lcjo6a0tpbmRT cGVjaWZpY0ZsYWdzT2Zmc2V0KSk7CisrICBfXyBBbmQoYTUsIGE1LCBPcGVyYW5kKDEgPDwgQ29k ZTo6a01hcmtlZEZvckRlb3B0aW1pemF0aW9uQml0KSk7CisrICBfXyBCcmFuY2goJmZvdW5kX2Rl b3B0aW1pemVkX2NvZGUsIG5lLCBhNSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKworKyAgLy8gT3B0 aW1pemVkIGNvZGUgaXMgZ29vZCwgZ2V0IGl0IGludG8gdGhlIGNsb3N1cmUgYW5kIGxpbmsgdGhl IGNsb3N1cmUgaW50bworKyAgLy8gdGhlIG9wdGltaXplZCBmdW5jdGlvbnMgbGlzdCwgdGhlbiB0 YWlsIGNhbGwgdGhlIG9wdGltaXplZCBjb2RlLgorKyAgLy8gVGhlIGZlZWRiYWNrIHZlY3RvciBp cyBubyBsb25nZXIgdXNlZCwgc28gcmUtdXNlIGl0IGFzIGEgc2NyYXRjaAorKyAgLy8gcmVnaXN0 ZXIuCisrICBSZXBsYWNlQ2xvc3VyZUNvZGVXaXRoT3B0aW1pemVkQ29kZShtYXNtLCBvcHRpbWl6 ZWRfY29kZV9lbnRyeSwgY2xvc3VyZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjcmF0Y2gxLCBzY3JhdGNoMik7CisrCisrICBzdGF0aWNfYXNzZXJ0KGtKYXZhU2Ny aXB0Q2FsbENvZGVTdGFydFJlZ2lzdGVyID09IGEyLCAiQUJJIG1pc21hdGNoIik7CisrICBfXyBB ZGQ2NChhMiwgb3B0aW1pemVkX2NvZGVfZW50cnksCisrICAgICAgICAgICBPcGVyYW5kKENvZGU6 OmtIZWFkZXJTaXplIC0ga0hlYXBPYmplY3RUYWcpKTsKKysgIF9fIEp1bXAoYTIpOworKworKyAg Ly8gT3B0aW1pemVkIGNvZGUgc2xvdCBjb250YWlucyBkZW9wdGltaXplZCBjb2RlLCBldmljdCBp dCBhbmQgcmUtZW50ZXIgdGhlCisrICAvLyBjbG9zdXJlJ3MgY29kZS4KKysgIF9fIGJpbmQoJmZv dW5kX2Rlb3B0aW1pemVkX2NvZGUpOworKyAgR2VuZXJhdGVUYWlsQ2FsbFRvUmV0dXJuZWRDb2Rl KG1hc20sIFJ1bnRpbWU6OmtFdmljdE9wdGltaXplZENvZGVTbG90KTsKKyt9CisrCisrc3RhdGlj IHZvaWQgTWF5YmVPcHRpbWl6ZUNvZGUoTWFjcm9Bc3NlbWJsZXIqIG1hc20sIFJlZ2lzdGVyIGZl ZWRiYWNrX3ZlY3RvciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBv cHRpbWl6YXRpb25fbWFya2VyKSB7CisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0t LS0tLS0tLQorKyAgLy8gIC0tIGEzIDogbmV3IHRhcmdldCAocHJlc2VydmVkIGZvciBjYWxsZWUg aWYgbmVlZGVkLCBhbmQgY2FsbGVyKQorKyAgLy8gIC0tIGExIDogdGFyZ2V0IGZ1bmN0aW9uIChw cmVzZXJ2ZWQgZm9yIGNhbGxlZSBpZiBuZWVkZWQsIGFuZCBjYWxsZXIpCisrICAvLyAgLS0gZmVl ZGJhY2sgdmVjdG9yIChwcmVzZXJ2ZWQgZm9yIGNhbGxlciBpZiBuZWVkZWQpCisrICAvLyAgLS0g b3B0aW1pemF0aW9uX21hcmtlciA6IGEgU21pIGNvbnRhaW5pbmcgYSBub24temVybyBvcHRpbWl6 YXRpb24gbWFya2VyLgorKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysgIERDSEVDSyghQXJlQWxpYXNlZChmZWVkYmFja192ZWN0b3IsIGExLCBhMywgb3B0aW1pemF0 aW9uX21hcmtlcikpOworKworKyAgLy8gVE9ETyh2ODo4Mzk0KTogVGhlIGxvZ2dpbmcgb2YgZmly c3QgZXhlY3V0aW9uIHdpbGwgYnJlYWsgaWYKKysgIC8vIGZlZWRiYWNrIHZlY3RvcnMgYXJlIG5v dCBhbGxvY2F0ZWQuIFdlIG5lZWQgdG8gZmluZCBhIGRpZmZlcmVudCB3YXkgb2YKKysgIC8vIGxv Z2dpbmcgdGhlc2UgZXZlbnRzIGlmIHJlcXVpcmVkLgorKyAgVGFpbENhbGxSdW50aW1lSWZNYXJr ZXJFcXVhbHMobWFzbSwgb3B0aW1pemF0aW9uX21hcmtlciwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9wdGltaXphdGlvbk1hcmtlcjo6a0xvZ0ZpcnN0RXhlY3V0aW9uLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZTo6a0Z1bmN0aW9uRmlyc3RFeGVj dXRpb24pOworKyAgVGFpbENhbGxSdW50aW1lSWZNYXJrZXJFcXVhbHMobWFzbSwgb3B0aW1pemF0 aW9uX21hcmtlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGltaXphdGlv bk1hcmtlcjo6a0NvbXBpbGVPcHRpbWl6ZWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSdW50aW1lOjprQ29tcGlsZU9wdGltaXplZF9Ob3RDb25jdXJyZW50KTsKKysgIFRhaWxD YWxsUnVudGltZUlmTWFya2VyRXF1YWxzKG1hc20sIG9wdGltaXphdGlvbl9tYXJrZXIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpbWl6YXRpb25NYXJrZXI6OmtDb21waWxl T3B0aW1pemVkQ29uY3VycmVudCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1 bnRpbWU6OmtDb21waWxlT3B0aW1pemVkX0NvbmN1cnJlbnQpOworKworKyAgLy8gT3RoZXJ3aXNl LCB0aGUgbWFya2VyIGlzIEluT3B0aW1pemF0aW9uUXVldWUsIHNvIGZhbGwgdGhyb3VnaCBob3Bp bmcKKysgIC8vIHRoYXQgYW4gaW50ZXJydXB0IHdpbGwgZXZlbnR1YWxseSB1cGRhdGUgdGhlIHNs b3Qgd2l0aCBvcHRpbWl6ZWQgY29kZS4KKysgIGlmIChGTEFHX2RlYnVnX2NvZGUpIHsKKysgICAg X18gQXNzZXJ0KGVxLCBBYm9ydFJlYXNvbjo6a0V4cGVjdGVkT3B0aW1pemF0aW9uU2VudGluZWws CisrICAgICAgICAgICAgICBvcHRpbWl6YXRpb25fbWFya2VyLAorKyAgICAgICAgICAgICAgT3Bl cmFuZChTbWk6OkZyb21FbnVtKE9wdGltaXphdGlvbk1hcmtlcjo6a0luT3B0aW1pemF0aW9uUXVl dWUpKSk7CisrICB9CisrfQorKworKy8vIEFkdmFuY2UgdGhlIGN1cnJlbnQgYnl0ZWNvZGUgb2Zm c2V0LiBUaGlzIHNpbXVsYXRlcyB3aGF0IGFsbCBieXRlY29kZQorKy8vIGhhbmRsZXJzIGRvIHVw b24gY29tcGxldGlvbiBvZiB0aGUgdW5kZXJseWluZyBvcGVyYXRpb24uIFdpbGwgYmFpbCBvdXQg dG8gYQorKy8vIGxhYmVsIGlmIHRoZSBieXRlY29kZSAod2l0aG91dCBwcmVmaXgpIGlzIGEgcmV0 dXJuIGJ5dGVjb2RlLiBXaWxsIG5vdCBhZHZhbmNlCisrLy8gdGhlIGJ5dGVjb2RlIG9mZnNldCBp ZiB0aGUgY3VycmVudCBieXRlY29kZSBpcyBhIEp1bXBMb29wLCBpbnN0ZWFkIGp1c3QKKysvLyBy ZS1leGVjdXRpbmcgdGhlIEp1bXBMb29wIHRvIGp1bXAgdG8gdGhlIGNvcnJlY3QgYnl0ZWNvZGUu Cisrc3RhdGljIHZvaWQgQWR2YW5jZUJ5dGVjb2RlT2Zmc2V0T3JSZXR1cm4oTWFjcm9Bc3NlbWJs ZXIqIG1hc20sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgYnl0ZWNvZGVfYXJyYXksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgYnl0ZWNvZGVfb2Zmc2V0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGJ5dGVjb2RlLCBSZWdpc3RlciBzY3JhdGNo MSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBz Y3JhdGNoMiwgUmVnaXN0ZXIgc2NyYXRjaDMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGFiZWwqIGlmX3JldHVybikgeworKyAgUmVnaXN0ZXIgYnl0ZWNvZGVf c2l6ZV90YWJsZSA9IHNjcmF0Y2gxOworKworKyAgLy8gVGhlIGJ5dGVjb2RlIG9mZnNldCB2YWx1 ZSB3aWxsIGJlIGluY3JlYXNlZCBieSBvbmUgaW4gd2lkZSBhbmQgZXh0cmEgd2lkZQorKyAgLy8g Y2FzZXMuIEluIHRoZSBjYXNlIG9mIGhhdmluZyBhIHdpZGUgb3IgZXh0cmEgd2lkZSBKdW1wTG9v cCBieXRlY29kZSwgd2UKKysgIC8vIHdpbGwgcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnl0ZWNvZGUu IEluIG9yZGVyIHRvIHNpbXBsaWZ5IHRoZSBjb2RlLCB3ZSBoYXZlCisrICAvLyBhIGJhY2t1cCBv ZiBpdC4KKysgIFJlZ2lzdGVyIG9yaWdpbmFsX2J5dGVjb2RlX29mZnNldCA9IHNjcmF0Y2gzOwor KyAgRENIRUNLKCFBcmVBbGlhc2VkKGJ5dGVjb2RlX2FycmF5LCBieXRlY29kZV9vZmZzZXQsIGJ5 dGVjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVjb2RlX3NpemVfdGFibGUsIG9yaWdp bmFsX2J5dGVjb2RlX29mZnNldCkpOworKyAgX18gTW92ZShvcmlnaW5hbF9ieXRlY29kZV9vZmZz ZXQsIGJ5dGVjb2RlX29mZnNldCk7CisrICBfXyBsaShieXRlY29kZV9zaXplX3RhYmxlLCBFeHRl cm5hbFJlZmVyZW5jZTo6Ynl0ZWNvZGVfc2l6ZV90YWJsZV9hZGRyZXNzKCkpOworKworKyAgLy8g Q2hlY2sgaWYgdGhlIGJ5dGVjb2RlIGlzIGEgV2lkZSBvciBFeHRyYVdpZGUgcHJlZml4IGJ5dGVj b2RlLgorKyAgTGFiZWwgcHJvY2Vzc19ieXRlY29kZSwgZXh0cmFfd2lkZTsKKysgIFNUQVRJQ19B U1NFUlQoMCA9PSBzdGF0aWNfY2FzdDxpbnQ+KGludGVycHJldGVyOjpCeXRlY29kZTo6a1dpZGUp KTsKKysgIFNUQVRJQ19BU1NFUlQoMSA9PSBzdGF0aWNfY2FzdDxpbnQ+KGludGVycHJldGVyOjpC eXRlY29kZTo6a0V4dHJhV2lkZSkpOworKyAgU1RBVElDX0FTU0VSVCgyID09IHN0YXRpY19jYXN0 PGludD4oaW50ZXJwcmV0ZXI6OkJ5dGVjb2RlOjprRGVidWdCcmVha1dpZGUpKTsKKysgIFNUQVRJ Q19BU1NFUlQoMyA9PQorKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGludGVycHJl dGVyOjpCeXRlY29kZTo6a0RlYnVnQnJlYWtFeHRyYVdpZGUpKTsKKysgIF9fIEJyYW5jaCgmcHJv Y2Vzc19ieXRlY29kZSwgVWdyZWF0ZXIsIGJ5dGVjb2RlLCBPcGVyYW5kKDMpKTsKKysgIF9fIEFu ZChzY3JhdGNoMiwgYnl0ZWNvZGUsIE9wZXJhbmQoMSkpOworKyAgX18gQnJhbmNoKCZleHRyYV93 aWRlLCBuZSwgc2NyYXRjaDIsIE9wZXJhbmQoemVyb19yZWcpKTsKKysKKysgIC8vIExvYWQgdGhl IG5leHQgYnl0ZWNvZGUgYW5kIHVwZGF0ZSB0YWJsZSB0byB0aGUgd2lkZSBzY2FsZWQgdGFibGUu CisrICBfXyBBZGQ2NChieXRlY29kZV9vZmZzZXQsIGJ5dGVjb2RlX29mZnNldCwgT3BlcmFuZCgx KSk7CisrICBfXyBBZGQ2NChzY3JhdGNoMiwgYnl0ZWNvZGVfYXJyYXksIGJ5dGVjb2RlX29mZnNl dCk7CisrICBfXyBMYnUoYnl0ZWNvZGUsIE1lbU9wZXJhbmQoc2NyYXRjaDIpKTsKKysgIF9fIEFk ZDY0KGJ5dGVjb2RlX3NpemVfdGFibGUsIGJ5dGVjb2RlX3NpemVfdGFibGUsCisrICAgICAgICAg ICBPcGVyYW5kKGtJbnRTaXplICogaW50ZXJwcmV0ZXI6OkJ5dGVjb2Rlczo6a0J5dGVjb2RlQ291 bnQpKTsKKysgIF9fIEJyYW5jaCgmcHJvY2Vzc19ieXRlY29kZSk7CisrCisrICBfXyBiaW5kKCZl eHRyYV93aWRlKTsKKysgIC8vIExvYWQgdGhlIG5leHQgYnl0ZWNvZGUgYW5kIHVwZGF0ZSB0YWJs ZSB0byB0aGUgZXh0cmEgd2lkZSBzY2FsZWQgdGFibGUuCisrICBfXyBBZGQ2NChieXRlY29kZV9v ZmZzZXQsIGJ5dGVjb2RlX29mZnNldCwgT3BlcmFuZCgxKSk7CisrICBfXyBBZGQ2NChzY3JhdGNo MiwgYnl0ZWNvZGVfYXJyYXksIGJ5dGVjb2RlX29mZnNldCk7CisrICBfXyBMYnUoYnl0ZWNvZGUs IE1lbU9wZXJhbmQoc2NyYXRjaDIpKTsKKysgIF9fIEFkZDY0KGJ5dGVjb2RlX3NpemVfdGFibGUs IGJ5dGVjb2RlX3NpemVfdGFibGUsCisrICAgICAgICAgICBPcGVyYW5kKDIgKiBrSW50U2l6ZSAq IGludGVycHJldGVyOjpCeXRlY29kZXM6OmtCeXRlY29kZUNvdW50KSk7CisrCisrICBfXyBiaW5k KCZwcm9jZXNzX2J5dGVjb2RlKTsKKysKKysvLyBCYWlsb3V0IHRvIHRoZSByZXR1cm4gbGFiZWwg aWYgdGhpcyBpcyBhIHJldHVybiBieXRlY29kZS4KKysjZGVmaW5lIEpVTVBfSUZfRVFVQUwoTkFN RSkgICAgICAgICAgXAorKyAgX18gQnJhbmNoKGlmX3JldHVybiwgZXEsIGJ5dGVjb2RlLCBcCisr ICAgICAgICAgICAgT3BlcmFuZChzdGF0aWNfY2FzdDxpbnQ+KGludGVycHJldGVyOjpCeXRlY29k ZTo6ayMjTkFNRSkpKTsKKysgIFJFVFVSTl9CWVRFQ09ERV9MSVNUKEpVTVBfSUZfRVFVQUwpCisr I3VuZGVmIEpVTVBfSUZfRVFVQUwKKysKKysgIC8vIElmIHRoaXMgaXMgYSBKdW1wTG9vcCwgcmUt ZXhlY3V0ZSBpdCB0byBwZXJmb3JtIHRoZSBqdW1wIHRvIHRoZSBiZWdpbm5pbmcKKysgIC8vIG9m IHRoZSBsb29wLgorKyAgTGFiZWwgZW5kLCBub3RfanVtcF9sb29wOworKyAgX18gQnJhbmNoKCZu b3RfanVtcF9sb29wLCBuZSwgYnl0ZWNvZGUsCisrICAgICAgICAgICAgT3BlcmFuZChzdGF0aWNf Y2FzdDxpbnQ+KGludGVycHJldGVyOjpCeXRlY29kZTo6a0p1bXBMb29wKSkpOworKyAgLy8gV2Ug bmVlZCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBieXRlY29kZV9vZmZzZXQgc2luY2Ugd2UgbWln aHQgaGF2ZQorKyAgLy8gaW5jcmVhc2VkIGl0IHRvIHNraXAgdGhlIHdpZGUgLyBleHRyYS13aWRl IHByZWZpeCBieXRlY29kZS4KKysgIF9fIE1vdmUoYnl0ZWNvZGVfb2Zmc2V0LCBvcmlnaW5hbF9i eXRlY29kZV9vZmZzZXQpOworKyAgX18gQnJhbmNoKCZlbmQpOworKworKyAgX18gYmluZCgmbm90 X2p1bXBfbG9vcCk7CisrICAvLyBPdGhlcndpc2UsIGxvYWQgdGhlIHNpemUgb2YgdGhlIGN1cnJl bnQgYnl0ZWNvZGUgYW5kIGFkdmFuY2UgdGhlIG9mZnNldC4KKysgIF9fIENhbGNTY2FsZWRBZGRy ZXNzKHNjcmF0Y2gyLCBieXRlY29kZV9zaXplX3RhYmxlLCBieXRlY29kZSwgMik7CisrICBfXyBM dyhzY3JhdGNoMiwgTWVtT3BlcmFuZChzY3JhdGNoMikpOworKyAgX18gQWRkNjQoYnl0ZWNvZGVf b2Zmc2V0LCBieXRlY29kZV9vZmZzZXQsIHNjcmF0Y2gyKTsKKysKKysgIF9fIGJpbmQoJmVuZCk7 CisrfQorKworKy8vIEdlbmVyYXRlIGNvZGUgZm9yIGVudGVyaW5nIGEgSlMgZnVuY3Rpb24gd2l0 aCB0aGUgaW50ZXJwcmV0ZXIuCisrLy8gT24gZW50cnkgdG8gdGhlIGZ1bmN0aW9uIHRoZSByZWNl aXZlciBhbmQgYXJndW1lbnRzIGhhdmUgYmVlbiBwdXNoZWQgb24gdGhlCisrLy8gc3RhY2sgbGVm dCB0byByaWdodC4gIFRoZSBhY3R1YWwgYXJndW1lbnQgY291bnQgbWF0Y2hlcyB0aGUgZm9ybWFs IHBhcmFtZXRlcgorKy8vIGNvdW50IGV4cGVjdGVkIGJ5IHRoZSBmdW5jdGlvbi4KKysvLworKy8v IFRoZSBsaXZlIHJlZ2lzdGVycyBhcmU6CisrLy8gICBvIGExOiB0aGUgSlMgZnVuY3Rpb24gb2Jq ZWN0IGJlaW5nIGNhbGxlZC4KKysvLyAgIG8gYTM6IHRoZSBpbmNvbWluZyBuZXcgdGFyZ2V0IG9y IGdlbmVyYXRvciBvYmplY3QKKysvLyAgIG8gY3A6IG91ciBjb250ZXh0CisrLy8gICBvIGZwOiB0 aGUgY2FsbGVyJ3MgZnJhbWUgcG9pbnRlcgorKy8vICAgbyBzcDogc3RhY2sgcG9pbnRlcgorKy8v ICAgbyByYTogcmV0dXJuIGFkZHJlc3MKKysvLworKy8vIFRoZSBmdW5jdGlvbiBidWlsZHMgYW4g aW50ZXJwcmV0ZXIgZnJhbWUuICBTZWUgSW50ZXJwcmV0ZXJGcmFtZUNvbnN0YW50cyBpbgorKy8v IGZyYW1lcy5oIGZvciBpdHMgbGF5b3V0LgorK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0ludGVy cHJldGVyRW50cnlUcmFtcG9saW5lKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICBSZWdpc3Rl ciBjbG9zdXJlID0gYTE7CisrICBSZWdpc3RlciBmZWVkYmFja192ZWN0b3IgPSBhMjsKKysKKysg IC8vIEdldCB0aGUgYnl0ZWNvZGUgYXJyYXkgZnJvbSB0aGUgZnVuY3Rpb24gb2JqZWN0IGFuZCBs b2FkIGl0IGludG8KKysgIC8vIGtJbnRlcnByZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3Rlci4KKysg IF9fIExkKGEwLCBGaWVsZE1lbU9wZXJhbmQoY2xvc3VyZSwgSlNGdW5jdGlvbjo6a1NoYXJlZEZ1 bmN0aW9uSW5mb09mZnNldCkpOworKyAgX18gTGQoa0ludGVycHJldGVyQnl0ZWNvZGVBcnJheVJl Z2lzdGVyLAorKyAgICAgICAgRmllbGRNZW1PcGVyYW5kKGEwLCBTaGFyZWRGdW5jdGlvbkluZm86 OmtGdW5jdGlvbkRhdGFPZmZzZXQpKTsKKysgIEdldFNoYXJlZEZ1bmN0aW9uSW5mb0J5dGVjb2Rl KG1hc20sIGtJbnRlcnByZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3RlciwgYTQpOworKworKyAgLy8g VGhlIGJ5dGVjb2RlIGFycmF5IGNvdWxkIGhhdmUgYmVlbiBmbHVzaGVkIGZyb20gdGhlIHNoYXJl ZCBmdW5jdGlvbiBpbmZvLAorKyAgLy8gaWYgc28sIGNhbGwgaW50byBDb21waWxlTGF6eS4KKysg IExhYmVsIGNvbXBpbGVfbGF6eTsKKysgIF9fIEdldE9iamVjdFR5cGUoa0ludGVycHJldGVyQnl0 ZWNvZGVBcnJheVJlZ2lzdGVyLCBhMCwgYTApOworKyAgX18gQnJhbmNoKCZjb21waWxlX2xhenks IG5lLCBhMCwgT3BlcmFuZChCWVRFQ09ERV9BUlJBWV9UWVBFKSk7CisrCisrICAvLyBMb2FkIHRo ZSBmZWVkYmFjayB2ZWN0b3IgZnJvbSB0aGUgY2xvc3VyZS4KKysgIF9fIExkKGZlZWRiYWNrX3Zl Y3RvciwKKysgICAgICAgIEZpZWxkTWVtT3BlcmFuZChjbG9zdXJlLCBKU0Z1bmN0aW9uOjprRmVl ZGJhY2tDZWxsT2Zmc2V0KSk7CisrICBfXyBMZChmZWVkYmFja192ZWN0b3IsIEZpZWxkTWVtT3Bl cmFuZChmZWVkYmFja192ZWN0b3IsIENlbGw6OmtWYWx1ZU9mZnNldCkpOworKworKyAgTGFiZWwg cHVzaF9zdGFja19mcmFtZTsKKysgIC8vIENoZWNrIGlmIGZlZWRiYWNrIHZlY3RvciBpcyB2YWxp ZC4gSWYgdmFsaWQsIGNoZWNrIGZvciBvcHRpbWl6ZWQgY29kZQorKyAgLy8gYW5kIHVwZGF0ZSBp bnZvY2F0aW9uIGNvdW50LiBPdGhlcndpc2UsIHNldHVwIHRoZSBzdGFjayBmcmFtZS4KKysgIF9f IExkKGE0LCBGaWVsZE1lbU9wZXJhbmQoZmVlZGJhY2tfdmVjdG9yLCBIZWFwT2JqZWN0OjprTWFw T2Zmc2V0KSk7CisrICBfXyBMaHUoYTQsIEZpZWxkTWVtT3BlcmFuZChhNCwgTWFwOjprSW5zdGFu Y2VUeXBlT2Zmc2V0KSk7CisrICBfXyBCcmFuY2goJnB1c2hfc3RhY2tfZnJhbWUsIG5lLCBhNCwg T3BlcmFuZChGRUVEQkFDS19WRUNUT1JfVFlQRSkpOworKworKyAgLy8gUmVhZCBvZmYgdGhlIG9w dGltaXplZCBjb2RlIHNsb3QgaW4gdGhlIGZlZWRiYWNrIHZlY3RvciwgYW5kIGlmIHRoZXJlCisr ICAvLyBpcyBvcHRpbWl6ZWQgY29kZSBvciBhbiBvcHRpbWl6YXRpb24gbWFya2VyLCBjYWxsIHRo YXQgaW5zdGVhZC4KKysgIFJlZ2lzdGVyIG9wdGltaXplZF9jb2RlX2VudHJ5ID0gYTQ7CisrICBf XyBMZChvcHRpbWl6ZWRfY29kZV9lbnRyeSwKKysgICAgICAgIEZpZWxkTWVtT3BlcmFuZChmZWVk YmFja192ZWN0b3IsCisrICAgICAgICAgICAgICAgICAgICAgICAgRmVlZGJhY2tWZWN0b3I6OmtP cHRpbWl6ZWRDb2RlV2Vha09yU21pT2Zmc2V0KSk7CisrCisrICAvLyBDaGVjayBpZiB0aGUgb3B0 aW1pemVkIGNvZGUgc2xvdCBpcyBub3QgZW1wdHkuCisrICBMYWJlbCBvcHRpbWl6ZWRfY29kZV9z bG90X25vdF9lbXB0eTsKKysKKysgIF9fIEJyYW5jaCgmb3B0aW1pemVkX2NvZGVfc2xvdF9ub3Rf ZW1wdHksIG5lLCBvcHRpbWl6ZWRfY29kZV9lbnRyeSwKKysgICAgICAgICAgICBPcGVyYW5kKFNt aTo6RnJvbUVudW0oT3B0aW1pemF0aW9uTWFya2VyOjprTm9uZSkpKTsKKysKKysgIExhYmVsIG5v dF9vcHRpbWl6ZWQ7CisrICBfXyBiaW5kKCZub3Rfb3B0aW1pemVkKTsKKysKKysgIC8vIEluY3Jl bWVudCBpbnZvY2F0aW9uIGNvdW50IGZvciB0aGUgZnVuY3Rpb24uCisrICBfXyBMdyhhNCwgRmll bGRNZW1PcGVyYW5kKGZlZWRiYWNrX3ZlY3RvciwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmVlZGJhY2tWZWN0b3I6OmtJbnZvY2F0aW9uQ291bnRPZmZzZXQpKTsKKysgIF9fIEFkZDMy KGE0LCBhNCwgT3BlcmFuZCgxKSk7CisrICBfXyBTdyhhNCwgRmllbGRNZW1PcGVyYW5kKGZlZWRi YWNrX3ZlY3RvciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVlZGJhY2tWZWN0b3I6 OmtJbnZvY2F0aW9uQ291bnRPZmZzZXQpKTsKKysKKysgIC8vIE9wZW4gYSBmcmFtZSBzY29wZSB0 byBpbmRpY2F0ZSB0aGF0IHRoZXJlIGlzIGEgZnJhbWUgb24gdGhlIHN0YWNrLiAgVGhlCisrICAv LyBNQU5VQUwgaW5kaWNhdGVzIHRoYXQgdGhlIHNjb3BlIHNob3VsZG4ndCBhY3R1YWxseSBnZW5l cmF0ZSBjb2RlIHRvIHNldCB1cAorKyAgLy8gdGhlIGZyYW1lICh0aGF0IGlzIGRvbmUgYmVsb3cp LgorKyAgX18gYmluZCgmcHVzaF9zdGFja19mcmFtZSk7CisrICBGcmFtZVNjb3BlIGZyYW1lX3Nj b3BlKG1hc20sIFN0YWNrRnJhbWU6Ok1BTlVBTCk7CisrICBfXyBQdXNoU3RhbmRhcmRGcmFtZShj bG9zdXJlKTsKKysKKysgIC8vIFJlc2V0IGNvZGUgYWdlIGFuZCB0aGUgT1NSIGFybWluZy4gVGhl IE9TUiBmaWVsZCBhbmQgQnl0ZWNvZGVBZ2VPZmZzZXQgYXJlCisrICAvLyA4LWJpdCBmaWVsZHMg bmV4dCB0byBlYWNoIG90aGVyLCBzbyB3ZSBjb3VsZCBqdXN0IG9wdGltaXplIGJ5IHdyaXRpbmcg YQorKyAgLy8gMTYtYml0LiBUaGVzZSBzdGF0aWMgYXNzZXJ0cyBndWFyZCBvdXIgYXNzdW1wdGlv biBpcyB2YWxpZC4KKysgIFNUQVRJQ19BU1NFUlQoQnl0ZWNvZGVBcnJheTo6a0J5dGVjb2RlQWdl T2Zmc2V0ID09CisrICAgICAgICAgICAgICAgIEJ5dGVjb2RlQXJyYXk6OmtPc3JOZXN0aW5nTGV2 ZWxPZmZzZXQgKyBrQ2hhclNpemUpOworKyAgU1RBVElDX0FTU0VSVChCeXRlY29kZUFycmF5Ojpr Tm9BZ2VCeXRlY29kZUFnZSA9PSAwKTsKKysgIF9fIFNoKHplcm9fcmVnLCBGaWVsZE1lbU9wZXJh bmQoa0ludGVycHJldGVyQnl0ZWNvZGVBcnJheVJlZ2lzdGVyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCeXRlY29kZUFycmF5OjprT3NyTmVzdGluZ0xldmVsT2Zmc2V0KSk7 CisrCisrICAvLyBMb2FkIGluaXRpYWwgYnl0ZWNvZGUgb2Zmc2V0LgorKyAgX18gbGkoa0ludGVy cHJldGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3RlciwKKysgICAgICAgIE9wZXJhbmQoQnl0ZWNvZGVB cnJheTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZykpOworKworKyAgLy8gUHVzaCBieXRl Y29kZSBhcnJheSBhbmQgU21pIHRhZ2dlZCBieXRlY29kZSBhcnJheSBvZmZzZXQuCisrICBfXyBT bWlUYWcoYTQsIGtJbnRlcnByZXRlckJ5dGVjb2RlT2Zmc2V0UmVnaXN0ZXIpOworKyAgX18gUHVz aChrSW50ZXJwcmV0ZXJCeXRlY29kZUFycmF5UmVnaXN0ZXIsIGE0KTsKKysKKysgIC8vIEFsbG9j YXRlIHRoZSBsb2NhbCBhbmQgdGVtcG9yYXJ5IHJlZ2lzdGVyIGZpbGUgb24gdGhlIHN0YWNrLgor KyAgTGFiZWwgc3RhY2tfb3ZlcmZsb3c7CisrICB7CisrICAgIC8vIExvYWQgZnJhbWUgc2l6ZSAo d29yZCkgZnJvbSB0aGUgQnl0ZWNvZGVBcnJheSBvYmplY3QuCisrICAgIF9fIEx3KGE0LCBGaWVs ZE1lbU9wZXJhbmQoa0ludGVycHJldGVyQnl0ZWNvZGVBcnJheVJlZ2lzdGVyLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJ5dGVjb2RlQXJyYXk6OmtGcmFtZVNpemVPZmZzZXQpKTsK KysKKysgICAgLy8gRG8gYSBzdGFjayBjaGVjayB0byBlbnN1cmUgd2UgZG9uJ3QgZ28gb3ZlciB0 aGUgbGltaXQuCisrICAgIF9fIFN1YjY0KGE1LCBzcCwgT3BlcmFuZChhNCkpOworKyAgICBMb2Fk U3RhY2tMaW1pdChtYXNtLCBhMiwgU3RhY2tMaW1pdEtpbmQ6OmtSZWFsU3RhY2tMaW1pdCk7Cisr ICAgIF9fIEJyYW5jaCgmc3RhY2tfb3ZlcmZsb3csIFVsZXNzLCBhNSwgT3BlcmFuZChhMikpOwor KworKyAgICAvLyBJZiBvaywgcHVzaCB1bmRlZmluZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgZm9y IGFsbCByZWdpc3RlciBmaWxlIGVudHJpZXMuCisrICAgIExhYmVsIGxvb3BfaGVhZGVyOworKyAg ICBMYWJlbCBsb29wX2NoZWNrOworKyAgICBfXyBMb2FkUm9vdChhNSwgUm9vdEluZGV4OjprVW5k ZWZpbmVkVmFsdWUpOworKyAgICBfXyBCcmFuY2goJmxvb3BfY2hlY2spOworKyAgICBfXyBiaW5k KCZsb29wX2hlYWRlcik7CisrICAgIC8vIFRPRE8ocm1jaWxyb3kpOiBDb25zaWRlciBkb2luZyBt b3JlIHRoYW4gb25lIHB1c2ggcGVyIGxvb3AgaXRlcmF0aW9uLgorKyAgICBfXyBwdXNoKGE1KTsK KysgICAgLy8gQ29udGludWUgbG9vcCBpZiBub3QgZG9uZS4KKysgICAgX18gYmluZCgmbG9vcF9j aGVjayk7CisrICAgIF9fIFN1YjY0KGE0LCBhNCwgT3BlcmFuZChrUG9pbnRlclNpemUpKTsKKysg ICAgX18gQnJhbmNoKCZsb29wX2hlYWRlciwgZ2UsIGE0LCBPcGVyYW5kKHplcm9fcmVnKSk7Cisr ICB9CisrCisrICAvLyBJZiB0aGUgYnl0ZWNvZGUgYXJyYXkgaGFzIGEgdmFsaWQgaW5jb21pbmcg bmV3IHRhcmdldCBvciBnZW5lcmF0b3Igb2JqZWN0CisrICAvLyByZWdpc3RlciwgaW5pdGlhbGl6 ZSBpdCB3aXRoIGluY29taW5nIHZhbHVlIHdoaWNoIHdhcyBwYXNzZWQgaW4gcjMuCisrICBMYWJl bCBub19pbmNvbWluZ19uZXdfdGFyZ2V0X29yX2dlbmVyYXRvcl9yZWdpc3RlcjsKKysgIF9fIEx3 KGE1LCBGaWVsZE1lbU9wZXJhbmQoCisrICAgICAgICAgICAgICAgIGtJbnRlcnByZXRlckJ5dGVj b2RlQXJyYXlSZWdpc3RlciwKKysgICAgICAgICAgICAgICAgQnl0ZWNvZGVBcnJheTo6a0luY29t aW5nTmV3VGFyZ2V0T3JHZW5lcmF0b3JSZWdpc3Rlck9mZnNldCkpOworKyAgX18gQnJhbmNoKCZu b19pbmNvbWluZ19uZXdfdGFyZ2V0X29yX2dlbmVyYXRvcl9yZWdpc3RlciwgZXEsIGE1LAorKyAg ICAgICAgICAgIE9wZXJhbmQoemVyb19yZWcpKTsKKysgIF9fIENhbGNTY2FsZWRBZGRyZXNzKGE1 LCBmcCwgYTUsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgX18gU2QoYTMsIE1lbU9wZXJhbmQoYTUp KTsKKysgIF9fIGJpbmQoJm5vX2luY29taW5nX25ld190YXJnZXRfb3JfZ2VuZXJhdG9yX3JlZ2lz dGVyKTsKKysKKysgIC8vIFBlcmZvcm0gaW50ZXJydXB0IHN0YWNrIGNoZWNrLgorKyAgLy8gVE9E Tyhzb2xhbmVzKTogTWVyZ2Ugd2l0aCB0aGUgcmVhbCBzdGFjayBsaW1pdCBjaGVjayBhYm92ZS4K KysgIExhYmVsIHN0YWNrX2NoZWNrX2ludGVycnVwdCwgYWZ0ZXJfc3RhY2tfY2hlY2tfaW50ZXJy dXB0OworKyAgTG9hZFN0YWNrTGltaXQobWFzbSwgYTUsIFN0YWNrTGltaXRLaW5kOjprSW50ZXJy dXB0U3RhY2tMaW1pdCk7CisrICBfXyBCcmFuY2goJnN0YWNrX2NoZWNrX2ludGVycnVwdCwgVWxl c3MsIHNwLCBPcGVyYW5kKGE1KSk7CisrICBfXyBiaW5kKCZhZnRlcl9zdGFja19jaGVja19pbnRl cnJ1cHQpOworKworKyAgLy8gTG9hZCBhY2N1bXVsYXRvciBhcyB1bmRlZmluZWQuCisrICBfXyBM b2FkUm9vdChrSW50ZXJwcmV0ZXJBY2N1bXVsYXRvclJlZ2lzdGVyLCBSb290SW5kZXg6OmtVbmRl ZmluZWRWYWx1ZSk7CisrCisrICAvLyBMb2FkIHRoZSBkaXNwYXRjaCB0YWJsZSBpbnRvIGEgcmVn aXN0ZXIgYW5kIGRpc3BhdGNoIHRvIHRoZSBieXRlY29kZQorKyAgLy8gaGFuZGxlciBhdCB0aGUg Y3VycmVudCBieXRlY29kZSBvZmZzZXQuCisrICBMYWJlbCBkb19kaXNwYXRjaDsKKysgIF9fIGJp bmQoJmRvX2Rpc3BhdGNoKTsKKysgIF9fIGxpKGtJbnRlcnByZXRlckRpc3BhdGNoVGFibGVSZWdp c3RlciwKKysgICAgICAgIEV4dGVybmFsUmVmZXJlbmNlOjppbnRlcnByZXRlcl9kaXNwYXRjaF90 YWJsZV9hZGRyZXNzKG1hc20tPmlzb2xhdGUoKSkpOworKyAgX18gQWRkNjQoYTEsIGtJbnRlcnBy ZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3RlciwKKysgICAgICAgICAgIGtJbnRlcnByZXRlckJ5dGVj b2RlT2Zmc2V0UmVnaXN0ZXIpOworKyAgX18gTGJ1KGE3LCBNZW1PcGVyYW5kKGExKSk7CisrICBf XyBDYWxjU2NhbGVkQWRkcmVzcyhrU2NyYXRjaFJlZywga0ludGVycHJldGVyRGlzcGF0Y2hUYWJs ZVJlZ2lzdGVyLCBhNywKKysgICAgICAgICAgICAgICAgICAgICAgIGtQb2ludGVyU2l6ZUxvZzIp OworKyAgX18gTGQoa0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVnaXN0ZXIsIE1lbU9wZXJhbmQo a1NjcmF0Y2hSZWcpKTsKKysgIF9fIENhbGwoa0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVnaXN0 ZXIpOworKyAgbWFzbS0+aXNvbGF0ZSgpLT5oZWFwKCktPlNldEludGVycHJldGVyRW50cnlSZXR1 cm5QQ09mZnNldChtYXNtLT5wY19vZmZzZXQoKSk7CisrCisrICAvLyBBbnkgcmV0dXJucyB0byB0 aGUgZW50cnkgdHJhbXBvbGluZSBhcmUgZWl0aGVyIGR1ZSB0byB0aGUgcmV0dXJuIGJ5dGVjb2Rl CisrICAvLyBvciB0aGUgaW50ZXJwcmV0ZXIgdGFpbCBjYWxsaW5nIGEgYnVpbHRpbiBhbmQgdGhl biBhIGRpc3BhdGNoLgorKworKyAgLy8gR2V0IGJ5dGVjb2RlIGFycmF5IGFuZCBieXRlY29kZSBv ZmZzZXQgZnJvbSB0aGUgc3RhY2sgZnJhbWUuCisrICBfXyBMZChrSW50ZXJwcmV0ZXJCeXRlY29k ZUFycmF5UmVnaXN0ZXIsCisrICAgICAgICBNZW1PcGVyYW5kKGZwLCBJbnRlcnByZXRlckZyYW1l Q29uc3RhbnRzOjprQnl0ZWNvZGVBcnJheUZyb21GcCkpOworKyAgX18gTGQoa0ludGVycHJldGVy Qnl0ZWNvZGVPZmZzZXRSZWdpc3RlciwKKysgICAgICAgIE1lbU9wZXJhbmQoZnAsIEludGVycHJl dGVyRnJhbWVDb25zdGFudHM6OmtCeXRlY29kZU9mZnNldEZyb21GcCkpOworKyAgX18gU21pVW50 YWcoa0ludGVycHJldGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3Rlcik7CisrCisrICAvLyBFaXRoZXIg cmV0dXJuLCBvciBhZHZhbmNlIHRvIHRoZSBuZXh0IGJ5dGVjb2RlIGFuZCBkaXNwYXRjaC4KKysg IExhYmVsIGRvX3JldHVybjsKKysgIF9fIEFkZDY0KGExLCBrSW50ZXJwcmV0ZXJCeXRlY29kZUFy cmF5UmVnaXN0ZXIsCisrICAgICAgICAgICBrSW50ZXJwcmV0ZXJCeXRlY29kZU9mZnNldFJlZ2lz dGVyKTsKKysgIF9fIExidShhMSwgTWVtT3BlcmFuZChhMSkpOworKyAgQWR2YW5jZUJ5dGVjb2Rl T2Zmc2V0T3JSZXR1cm4obWFzbSwga0ludGVycHJldGVyQnl0ZWNvZGVBcnJheVJlZ2lzdGVyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0ludGVycHJldGVyQnl0ZWNvZGVPZmZz ZXRSZWdpc3RlciwgYTEsIGEyLCBhMywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGE0LCAmZG9fcmV0dXJuKTsKKysgIF9fIEJyYW5jaCgmZG9fZGlzcGF0Y2gpOworKworKyAgX18g YmluZCgmZG9fcmV0dXJuKTsKKysgIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgaW4gYTAuCisrICBM ZWF2ZUludGVycHJldGVyRnJhbWUobWFzbSwgdDApOworKyAgX18gSnVtcChyYSk7CisrCisrICBf XyBiaW5kKCZzdGFja19jaGVja19pbnRlcnJ1cHQpOworKyAgLy8gTW9kaWZ5IHRoZSBieXRlY29k ZSBvZmZzZXQgaW4gdGhlIHN0YWNrIHRvIGJlIGtGdW5jdGlvbkVudHJ5Qnl0ZWNvZGVPZmZzZXQK KysgIC8vIGZvciB0aGUgY2FsbCB0byB0aGUgU3RhY2tHdWFyZC4KKysgIF9fIGxpKGtJbnRlcnBy ZXRlckJ5dGVjb2RlT2Zmc2V0UmVnaXN0ZXIsCisrICAgICAgICBPcGVyYW5kKFNtaTo6RnJvbUlu dChCeXRlY29kZUFycmF5OjprSGVhZGVyU2l6ZSAtIGtIZWFwT2JqZWN0VGFnICsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGtGdW5jdGlvbkVudHJ5Qnl0ZWNvZGVPZmZzZXQpKSk7Cisr ICBfXyBTZChrSW50ZXJwcmV0ZXJCeXRlY29kZU9mZnNldFJlZ2lzdGVyLAorKyAgICAgICAgTWVt T3BlcmFuZChmcCwgSW50ZXJwcmV0ZXJGcmFtZUNvbnN0YW50czo6a0J5dGVjb2RlT2Zmc2V0RnJv bUZwKSk7CisrICBfXyBDYWxsUnVudGltZShSdW50aW1lOjprU3RhY2tHdWFyZCk7CisrCisrICAv LyBBZnRlciB0aGUgY2FsbCwgcmVzdG9yZSB0aGUgYnl0ZWNvZGUgYXJyYXksIGJ5dGVjb2RlIG9m ZnNldCBhbmQgYWNjdW11bGF0b3IKKysgIC8vIHJlZ2lzdGVycyBhZ2Fpbi4gQWxzbywgcmVzdG9y ZSB0aGUgYnl0ZWNvZGUgb2Zmc2V0IGluIHRoZSBzdGFjayB0byBpdHMKKysgIC8vIHByZXZpb3Vz IHZhbHVlLgorKyAgX18gTGQoa0ludGVycHJldGVyQnl0ZWNvZGVBcnJheVJlZ2lzdGVyLAorKyAg ICAgICAgTWVtT3BlcmFuZChmcCwgSW50ZXJwcmV0ZXJGcmFtZUNvbnN0YW50czo6a0J5dGVjb2Rl QXJyYXlGcm9tRnApKTsKKysgIF9fIGxpKGtJbnRlcnByZXRlckJ5dGVjb2RlT2Zmc2V0UmVnaXN0 ZXIsCisrICAgICAgICBPcGVyYW5kKEJ5dGVjb2RlQXJyYXk6OmtIZWFkZXJTaXplIC0ga0hlYXBP YmplY3RUYWcpKTsKKysgIF9fIExvYWRSb290KGtJbnRlcnByZXRlckFjY3VtdWxhdG9yUmVnaXN0 ZXIsIFJvb3RJbmRleDo6a1VuZGVmaW5lZFZhbHVlKTsKKysKKysgIF9fIFNtaVRhZyhhNSwga0lu dGVycHJldGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3Rlcik7CisrICBfXyBTZChhNSwgTWVtT3BlcmFu ZChmcCwgSW50ZXJwcmV0ZXJGcmFtZUNvbnN0YW50czo6a0J5dGVjb2RlT2Zmc2V0RnJvbUZwKSk7 CisrCisrICBfXyBCcmFuY2goJmFmdGVyX3N0YWNrX2NoZWNrX2ludGVycnVwdCk7CisrCisrICBf XyBiaW5kKCZvcHRpbWl6ZWRfY29kZV9zbG90X25vdF9lbXB0eSk7CisrICBMYWJlbCBtYXliZV9o YXNfb3B0aW1pemVkX2NvZGU7CisrICAvLyBDaGVjayBpZiBvcHRpbWl6ZWQgY29kZSBtYXJrZXIg aXMgYWN0dWFsbHkgYSB3ZWFrIHJlZmVyZW5jZSB0byB0aGUKKysgIC8vIG9wdGltaXplZCBjb2Rl IGFzIG9wcG9zZWQgdG8gYW4gb3B0aW1pemF0aW9uIG1hcmtlci4KKysgIF9fIEp1bXBJZk5vdFNt aShvcHRpbWl6ZWRfY29kZV9lbnRyeSwgJm1heWJlX2hhc19vcHRpbWl6ZWRfY29kZSk7CisrICBN YXliZU9wdGltaXplQ29kZShtYXNtLCBmZWVkYmFja192ZWN0b3IsIG9wdGltaXplZF9jb2RlX2Vu dHJ5KTsKKysgIC8vIEZhbGwgdGhyb3VnaCBpZiB0aGVyZSdzIG5vIHJ1bm5hYmxlIG9wdGltaXpl ZCBjb2RlLgorKyAgX18gQnJhbmNoKCZub3Rfb3B0aW1pemVkKTsKKysKKysgIF9fIGJpbmQoJm1h eWJlX2hhc19vcHRpbWl6ZWRfY29kZSk7CisrICAvLyBMb2FkIGNvZGUgZW50cnkgZnJvbSB0aGUg d2VhayByZWZlcmVuY2UsIGlmIGl0IHdhcyBjbGVhcmVkLCByZXN1bWUKKysgIC8vIGV4ZWN1dGlv biBvZiB1bm9wdGltaXplZCBjb2RlLgorKyAgX18gTG9hZFdlYWtWYWx1ZShvcHRpbWl6ZWRfY29k ZV9lbnRyeSwgb3B0aW1pemVkX2NvZGVfZW50cnksICZub3Rfb3B0aW1pemVkKTsKKysgIFRhaWxD YWxsT3B0aW1pemVkQ29kZVNsb3QobWFzbSwgb3B0aW1pemVkX2NvZGVfZW50cnksIHQ0LCBhNSk7 CisrCisrICBfXyBiaW5kKCZjb21waWxlX2xhenkpOworKyAgR2VuZXJhdGVUYWlsQ2FsbFRvUmV0 dXJuZWRDb2RlKG1hc20sIFJ1bnRpbWU6OmtDb21waWxlTGF6eSk7CisrICAvLyBVbnJlYWNoYWJs ZSBjb2RlLgorKyAgX18gYnJlYWtfKDB4Q0MpOworKworKyAgX18gYmluZCgmc3RhY2tfb3ZlcmZs b3cpOworKyAgX18gQ2FsbFJ1bnRpbWUoUnVudGltZTo6a1Rocm93U3RhY2tPdmVyZmxvdyk7Cisr ICAvLyBVbnJlYWNoYWJsZSBjb2RlLgorKyAgX18gYnJlYWtfKDB4Q0MpOworK30KKysKKytzdGF0 aWMgdm9pZCBHZW5lcmF0ZV9JbnRlcnByZXRlclB1c2hBcmdzKE1hY3JvQXNzZW1ibGVyKiBtYXNt LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbnVt X2FyZ3MsIFJlZ2lzdGVyIGluZGV4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaCwgUmVnaXN0ZXIgc2NyYXRjaDIpIHsKKysgIC8vIEZp bmQgdGhlIGFkZHJlc3Mgb2YgdGhlIGxhc3QgYXJndW1lbnQuCisrICBfXyBNb3ZlKHNjcmF0Y2gy LCBudW1fYXJncyk7CisrICBfXyBTbGw2NChzY3JhdGNoMiwgc2NyYXRjaDIsIGtQb2ludGVyU2l6 ZUxvZzIpOworKyAgX18gU3ViNjQoc2NyYXRjaDIsIGluZGV4LCBPcGVyYW5kKHNjcmF0Y2gyKSk7 CisrCisrICAvLyBQdXNoIHRoZSBhcmd1bWVudHMuCisrICBMYWJlbCBsb29wX2hlYWRlciwgbG9v cF9jaGVjazsKKysgIF9fIEJyYW5jaCgmbG9vcF9jaGVjayk7CisrICBfXyBiaW5kKCZsb29wX2hl YWRlcik7CisrICBfXyBMZChzY3JhdGNoLCBNZW1PcGVyYW5kKGluZGV4KSk7CisrICBfXyBBZGQ2 NChpbmRleCwgaW5kZXgsIE9wZXJhbmQoLWtQb2ludGVyU2l6ZSkpOworKyAgX18gcHVzaChzY3Jh dGNoKTsKKysgIF9fIGJpbmQoJmxvb3BfY2hlY2spOworKyAgX18gQnJhbmNoKCZsb29wX2hlYWRl ciwgVWdyZWF0ZXIsIGluZGV4LCBPcGVyYW5kKHNjcmF0Y2gyKSk7CisrfQorKworKy8vIHN0YXRp YworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0ludGVycHJldGVyUHVzaEFyZ3NUaGVuQ2FsbElt cGwoCisrICAgIE1hY3JvQXNzZW1ibGVyKiBtYXNtLCBDb252ZXJ0UmVjZWl2ZXJNb2RlIHJlY2Vp dmVyX21vZGUsCisrICAgIEludGVycHJldGVyUHVzaEFyZ3NNb2RlIG1vZGUpIHsKKysgIERDSEVD Syhtb2RlICE9IEludGVycHJldGVyUHVzaEFyZ3NNb2RlOjprQXJyYXlGdW5jdGlvbik7CisrICAv LyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGEwIDogdGhl IG51bWJlciBvZiBhcmd1bWVudHMgKG5vdCBpbmNsdWRpbmcgdGhlIHJlY2VpdmVyKQorKyAgLy8g IC0tIGEyIDogdGhlIGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGJlIHB1c2hlZC4g U3Vic2VxdWVudAorKyAgLy8gICAgICAgICAgYXJndW1lbnRzIHNob3VsZCBiZSBjb25zZWN1dGl2 ZSBhYm92ZSB0aGlzLCBpbiB0aGUgc2FtZSBvcmRlciBhcworKyAgLy8gICAgICAgICAgdGhleSBh cmUgdG8gYmUgcHVzaGVkIG9udG8gdGhlIHN0YWNrLgorKyAgLy8gIC0tIGExIDogdGhlIHRhcmdl dCB0byBjYWxsIChjYW4gYmUgYW55IE9iamVjdCkuCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyAgTGFiZWwgc3RhY2tfb3ZlcmZsb3c7CisrCisrICBfXyBBZGQ2 NChhMywgYTAsIE9wZXJhbmQoMSkpOyAgLy8gQWRkIG9uZSBmb3IgcmVjZWl2ZXIuCisrCisrICAv LyBQdXNoICJ1bmRlZmluZWQiIGFzIHRoZSByZWNlaXZlciBhcmcgaWYgd2UgbmVlZCB0by4KKysg IGlmIChyZWNlaXZlcl9tb2RlID09IENvbnZlcnRSZWNlaXZlck1vZGU6OmtOdWxsT3JVbmRlZmlu ZWQpIHsKKysgICAgX18gUHVzaFJvb3QoUm9vdEluZGV4OjprVW5kZWZpbmVkVmFsdWUpOworKyAg ICBfXyBTdWI2NChhMywgYTMsIE9wZXJhbmQoMSkpOyAgLy8gU3VidHJhY3Qgb25lIGZvciByZWNl aXZlci4KKysgIH0KKysKKysgIEdlbmVyYXRlX1N0YWNrT3ZlcmZsb3dDaGVjayhtYXNtLCBhMywg YTQsIHQwLCAmc3RhY2tfb3ZlcmZsb3cpOworKworKyAgLy8gVGhpcyBmdW5jdGlvbiBtb2RpZmll cyBhMiwgdDAgYW5kIGE0LgorKyAgR2VuZXJhdGVfSW50ZXJwcmV0ZXJQdXNoQXJncyhtYXNtLCBh MywgYTIsIGE0LCB0MCk7CisrCisrICBpZiAobW9kZSA9PSBJbnRlcnByZXRlclB1c2hBcmdzTW9k ZTo6a1dpdGhGaW5hbFNwcmVhZCkgeworKyAgICBfXyBQb3AoYTIpOyAgICAgICAgICAgICAgICAg ICAgLy8gUGFzcyB0aGUgc3ByZWFkIGluIGEgcmVnaXN0ZXIKKysgICAgX18gU3ViNjQoYTAsIGEw LCBPcGVyYW5kKDEpKTsgIC8vIFN1YnRyYWN0IG9uZSBmb3Igc3ByZWFkCisrICB9CisrCisrICAv LyBDYWxsIHRoZSB0YXJnZXQuCisrICBpZiAobW9kZSA9PSBJbnRlcnByZXRlclB1c2hBcmdzTW9k ZTo6a1dpdGhGaW5hbFNwcmVhZCkgeworKyAgICBfXyBKdW1wKEJVSUxUSU5fQ09ERShtYXNtLT5p c29sYXRlKCksIENhbGxXaXRoU3ByZWFkKSwKKysgICAgICAgICAgICBSZWxvY0luZm86OkNPREVf VEFSR0VUKTsKKysgIH0gZWxzZSB7CisrICAgIF9fIEp1bXAobWFzbS0+aXNvbGF0ZSgpLT5idWls dGlucygpLT5DYWxsKENvbnZlcnRSZWNlaXZlck1vZGU6OmtBbnkpLAorKyAgICAgICAgICAgIFJl bG9jSW5mbzo6Q09ERV9UQVJHRVQpOworKyAgfQorKworKyAgX18gYmluZCgmc3RhY2tfb3ZlcmZs b3cpOworKyAgeworKyAgICBfXyBUYWlsQ2FsbFJ1bnRpbWUoUnVudGltZTo6a1Rocm93U3RhY2tP dmVyZmxvdyk7CisrICAgIC8vIFVucmVhY2hhYmxlIGNvZGUuCisrICAgIF9fIGJyZWFrXygweEND KTsKKysgIH0KKyt9CisrCisrLy8gc3RhdGljCisrdm9pZCBCdWlsdGluczo6R2VuZXJhdGVfSW50 ZXJwcmV0ZXJQdXNoQXJnc1RoZW5Db25zdHJ1Y3RJbXBsKAorKyAgICBNYWNyb0Fzc2VtYmxlciog bWFzbSwgSW50ZXJwcmV0ZXJQdXNoQXJnc01vZGUgbW9kZSkgeworKyAgLy8gLS0tLS0tLS0tLS0g UyB0IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgIC8vIC0tIGEwIDogYXJndW1lbnQgY291bnQgKG5v dCBpbmNsdWRpbmcgcmVjZWl2ZXIpCisrICAvLyAtLSBhMyA6IG5ldyB0YXJnZXQKKysgIC8vIC0t IGExIDogY29uc3RydWN0b3IgdG8gY2FsbAorKyAgLy8gLS0gYTIgOiBhbGxvY2F0aW9uIHNpdGUg ZmVlZGJhY2sgaWYgYXZhaWxhYmxlLCB1bmRlZmluZWQgb3RoZXJ3aXNlLgorKyAgLy8gLS0gYTQg OiBhZGRyZXNzIG9mIHRoZSBmaXJzdCBhcmd1bWVudAorKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysgIExhYmVsIHN0YWNrX292ZXJmbG93OworKworKyAgLy8gUHVz aCBhIHNsb3QgZm9yIHRoZSByZWNlaXZlci4KKysgIF9fIHB1c2goemVyb19yZWcpOworKworKyAg R2VuZXJhdGVfU3RhY2tPdmVyZmxvd0NoZWNrKG1hc20sIGEwLCBhNSwgdDAsICZzdGFja19vdmVy Zmxvdyk7CisrCisrICAvLyBUaGlzIGZ1bmN0aW9uIG1vZGlmaWVzIHQwLCBhNCBhbmQgYTUuCisr ICBHZW5lcmF0ZV9JbnRlcnByZXRlclB1c2hBcmdzKG1hc20sIGEwLCBhNCwgYTUsIHQwKTsKKysK KysgIGlmIChtb2RlID09IEludGVycHJldGVyUHVzaEFyZ3NNb2RlOjprV2l0aEZpbmFsU3ByZWFk KSB7CisrICAgIF9fIFBvcChhMik7ICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIHRoZSBzcHJl YWQgaW4gYSByZWdpc3RlcgorKyAgICBfXyBTdWI2NChhMCwgYTAsIE9wZXJhbmQoMSkpOyAgLy8g U3VidHJhY3Qgb25lIGZvciBzcHJlYWQKKysgIH0gZWxzZSB7CisrICAgIF9fIEFzc2VydFVuZGVm aW5lZE9yQWxsb2NhdGlvblNpdGUoYTIsIHQwKTsKKysgIH0KKysKKysgIGlmIChtb2RlID09IElu dGVycHJldGVyUHVzaEFyZ3NNb2RlOjprQXJyYXlGdW5jdGlvbikgeworKyAgICBfXyBBc3NlcnRG dW5jdGlvbihhMSk7CisrCisrICAgIC8vIFRhaWwgY2FsbCB0byB0aGUgZnVuY3Rpb24tc3BlY2lm aWMgY29uc3RydWN0IHN0dWIgKHN0aWxsIGluIHRoZSBjYWxsZXIKKysgICAgLy8gY29udGV4dCBh dCB0aGlzIHBvaW50KS4KKysgICAgX18gSnVtcChCVUlMVElOX0NPREUobWFzbS0+aXNvbGF0ZSgp LCBBcnJheUNvbnN0cnVjdG9ySW1wbCksCisrICAgICAgICAgICAgUmVsb2NJbmZvOjpDT0RFX1RB UkdFVCk7CisrICB9IGVsc2UgaWYgKG1vZGUgPT0gSW50ZXJwcmV0ZXJQdXNoQXJnc01vZGU6OmtX aXRoRmluYWxTcHJlYWQpIHsKKysgICAgLy8gQ2FsbCB0aGUgY29uc3RydWN0b3Igd2l0aCBhMCwg YTEsIGFuZCBhMyB1bm1vZGlmaWVkLgorKyAgICBfXyBKdW1wKEJVSUxUSU5fQ09ERShtYXNtLT5p c29sYXRlKCksIENvbnN0cnVjdFdpdGhTcHJlYWQpLAorKyAgICAgICAgICAgIFJlbG9jSW5mbzo6 Q09ERV9UQVJHRVQpOworKyAgfSBlbHNlIHsKKysgICAgRENIRUNLX0VRKEludGVycHJldGVyUHVz aEFyZ3NNb2RlOjprT3RoZXIsIG1vZGUpOworKyAgICAvLyBDYWxsIHRoZSBjb25zdHJ1Y3RvciB3 aXRoIGEwLCBhMSwgYW5kIGEzIHVubW9kaWZpZWQuCisrICAgIF9fIEp1bXAoQlVJTFRJTl9DT0RF KG1hc20tPmlzb2xhdGUoKSwgQ29uc3RydWN0KSwgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7Cisr ICB9CisrCisrICBfXyBiaW5kKCZzdGFja19vdmVyZmxvdyk7CisrICB7CisrICAgIF9fIFRhaWxD YWxsUnVudGltZShSdW50aW1lOjprVGhyb3dTdGFja092ZXJmbG93KTsKKysgICAgLy8gVW5yZWFj aGFibGUgY29kZS4KKysgICAgX18gYnJlYWtfKDB4Q0MpOworKyAgfQorK30KKysKKytzdGF0aWMg dm9pZCBHZW5lcmF0ZV9JbnRlcnByZXRlckVudGVyQnl0ZWNvZGUoTWFjcm9Bc3NlbWJsZXIqIG1h c20pIHsKKysgIC8vIFNldCB0aGUgcmV0dXJuIGFkZHJlc3MgdG8gdGhlIGNvcnJlY3QgcG9pbnQg aW4gdGhlIGludGVycHJldGVyIGVudHJ5CisrICAvLyB0cmFtcG9saW5lLgorKyAgTGFiZWwgYnVp bHRpbl90cmFtcG9saW5lLCB0cmFtcG9saW5lX2xvYWRlZDsKKysgIFNtaSBpbnRlcnByZXRlcl9l bnRyeV9yZXR1cm5fcGNfb2Zmc2V0KAorKyAgICAgIG1hc20tPmlzb2xhdGUoKS0+aGVhcCgpLT5p bnRlcnByZXRlcl9lbnRyeV9yZXR1cm5fcGNfb2Zmc2V0KCkpOworKyAgRENIRUNLX05FKGludGVy cHJldGVyX2VudHJ5X3JldHVybl9wY19vZmZzZXQsIFNtaTo6emVybygpKTsKKysKKysgIC8vIElm IHRoZSBTRkkgZnVuY3Rpb25fZGF0YSBpcyBhbiBJbnRlcnByZXRlckRhdGEsIHRoZSBmdW5jdGlv biB3aWxsIGhhdmUgYQorKyAgLy8gY3VzdG9tIGNvcHkgb2YgdGhlIGludGVycHJldGVyIGVudHJ5 IHRyYW1wb2xpbmUgZm9yIHByb2ZpbGluZy4gSWYgc28sCisrICAvLyBnZXQgdGhlIGN1c3RvbSB0 cmFtcG9saW5lLCBvdGhlcndpc2UgZ3JhYiB0aGUgZW50cnkgYWRkcmVzcyBvZiB0aGUgZ2xvYmFs CisrICAvLyB0cmFtcG9saW5lLgorKyAgX18gTGQodDAsIE1lbU9wZXJhbmQoZnAsIFN0YW5kYXJk RnJhbWVDb25zdGFudHM6OmtGdW5jdGlvbk9mZnNldCkpOworKyAgX18gTGQodDAsIEZpZWxkTWVt T3BlcmFuZCh0MCwgSlNGdW5jdGlvbjo6a1NoYXJlZEZ1bmN0aW9uSW5mb09mZnNldCkpOworKyAg X18gTGQodDAsIEZpZWxkTWVtT3BlcmFuZCh0MCwgU2hhcmVkRnVuY3Rpb25JbmZvOjprRnVuY3Rp b25EYXRhT2Zmc2V0KSk7CisrICBfXyBHZXRPYmplY3RUeXBlKHQwLCBrSW50ZXJwcmV0ZXJEaXNw YXRjaFRhYmxlUmVnaXN0ZXIsCisrICAgICAgICAgICAgICAgICAgIGtJbnRlcnByZXRlckRpc3Bh dGNoVGFibGVSZWdpc3Rlcik7CisrICBfXyBCcmFuY2goJmJ1aWx0aW5fdHJhbXBvbGluZSwgbmUs IGtJbnRlcnByZXRlckRpc3BhdGNoVGFibGVSZWdpc3RlciwKKysgICAgICAgICAgICBPcGVyYW5k KElOVEVSUFJFVEVSX0RBVEFfVFlQRSkpOworKworKyAgX18gTGQodDAsIEZpZWxkTWVtT3BlcmFu ZCh0MCwgSW50ZXJwcmV0ZXJEYXRhOjprSW50ZXJwcmV0ZXJUcmFtcG9saW5lT2Zmc2V0KSk7Cisr ICBfXyBBZGQ2NCh0MCwgdDAsIE9wZXJhbmQoQ29kZTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVj dFRhZykpOworKyAgX18gQnJhbmNoKCZ0cmFtcG9saW5lX2xvYWRlZCk7CisrCisrICBfXyBiaW5k KCZidWlsdGluX3RyYW1wb2xpbmUpOworKyAgX18gbGkodDAsIEV4dGVybmFsUmVmZXJlbmNlOjoK KysgICAgICAgICAgICAgICAgYWRkcmVzc19vZl9pbnRlcnByZXRlcl9lbnRyeV90cmFtcG9saW5l X2luc3RydWN0aW9uX3N0YXJ0KAorKyAgICAgICAgICAgICAgICAgICAgbWFzbS0+aXNvbGF0ZSgp KSk7CisrICBfXyBMZCh0MCwgTWVtT3BlcmFuZCh0MCkpOworKworKyAgX18gYmluZCgmdHJhbXBv bGluZV9sb2FkZWQpOworKyAgX18gQWRkNjQocmEsIHQwLCBPcGVyYW5kKGludGVycHJldGVyX2Vu dHJ5X3JldHVybl9wY19vZmZzZXQudmFsdWUoKSkpOworKworKyAgLy8gSW5pdGlhbGl6ZSB0aGUg ZGlzcGF0Y2ggdGFibGUgcmVnaXN0ZXIuCisrICBfXyBsaShrSW50ZXJwcmV0ZXJEaXNwYXRjaFRh YmxlUmVnaXN0ZXIsCisrICAgICAgICBFeHRlcm5hbFJlZmVyZW5jZTo6aW50ZXJwcmV0ZXJfZGlz cGF0Y2hfdGFibGVfYWRkcmVzcyhtYXNtLT5pc29sYXRlKCkpKTsKKysKKysgIC8vIEdldCB0aGUg Ynl0ZWNvZGUgYXJyYXkgcG9pbnRlciBmcm9tIHRoZSBmcmFtZS4KKysgIF9fIExkKGtJbnRlcnBy ZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3RlciwKKysgICAgICAgIE1lbU9wZXJhbmQoZnAsIEludGVy cHJldGVyRnJhbWVDb25zdGFudHM6OmtCeXRlY29kZUFycmF5RnJvbUZwKSk7CisrCisrICBpZiAo RkxBR19kZWJ1Z19jb2RlKSB7CisrICAgIC8vIENoZWNrIGZ1bmN0aW9uIGRhdGEgZmllbGQgaXMg YWN0dWFsbHkgYSBCeXRlY29kZUFycmF5IG9iamVjdC4KKysgICAgX18gU21pVHN0KGtJbnRlcnBy ZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3Rlciwga1NjcmF0Y2hSZWcpOworKyAgICBfXyBBc3NlcnQo bmUsCisrICAgICAgICAgICAgICBBYm9ydFJlYXNvbjo6a0Z1bmN0aW9uRGF0YVNob3VsZEJlQnl0 ZWNvZGVBcnJheU9uSW50ZXJwcmV0ZXJFbnRyeSwKKysgICAgICAgICAgICAgIGtTY3JhdGNoUmVn LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAgIF9fIEdldE9iamVjdFR5cGUoa0ludGVycHJldGVy Qnl0ZWNvZGVBcnJheVJlZ2lzdGVyLCBhMSwgYTEpOworKyAgICBfXyBBc3NlcnQoZXEsCisrICAg ICAgICAgICAgICBBYm9ydFJlYXNvbjo6a0Z1bmN0aW9uRGF0YVNob3VsZEJlQnl0ZWNvZGVBcnJh eU9uSW50ZXJwcmV0ZXJFbnRyeSwKKysgICAgICAgICAgICAgIGExLCBPcGVyYW5kKEJZVEVDT0RF X0FSUkFZX1RZUEUpKTsKKysgIH0KKysKKysgIC8vIEdldCB0aGUgdGFyZ2V0IGJ5dGVjb2RlIG9m ZnNldCBmcm9tIHRoZSBmcmFtZS4KKysgIF9fIFNtaVVudGFnKGtJbnRlcnByZXRlckJ5dGVjb2Rl T2Zmc2V0UmVnaXN0ZXIsCisrICAgICAgICAgICAgICBNZW1PcGVyYW5kKGZwLCBJbnRlcnByZXRl ckZyYW1lQ29uc3RhbnRzOjprQnl0ZWNvZGVPZmZzZXRGcm9tRnApKTsKKysKKysgIGlmIChGTEFH X2RlYnVnX2NvZGUpIHsKKysgICAgTGFiZWwgb2theTsKKysgICAgX18gQnJhbmNoKCZva2F5LCBn ZSwga0ludGVycHJldGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3RlciwKKysgICAgICAgICAgICAgIE9w ZXJhbmQoQnl0ZWNvZGVBcnJheTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZykpOworKyAg ICAvLyBVbnJlYWNoYWJsZSBjb2RlLgorKyAgICBfXyBicmVha18oMHhDQyk7CisrICAgIF9fIGJp bmQoJm9rYXkpOworKyAgfQorKworKyAgLy8gRGlzcGF0Y2ggdG8gdGhlIHRhcmdldCBieXRlY29k ZS4KKysgIF9fIEFkZDY0KGExLCBrSW50ZXJwcmV0ZXJCeXRlY29kZUFycmF5UmVnaXN0ZXIsCisr ICAgICAgICAgICBrSW50ZXJwcmV0ZXJCeXRlY29kZU9mZnNldFJlZ2lzdGVyKTsKKysgIF9fIExi dShhNywgTWVtT3BlcmFuZChhMSkpOworKyAgX18gQ2FsY1NjYWxlZEFkZHJlc3MoYTEsIGtJbnRl cnByZXRlckRpc3BhdGNoVGFibGVSZWdpc3RlciwgYTcsCisrICAgICAgICAgICAgICAgICAgICAg ICBrUG9pbnRlclNpemVMb2cyKTsKKysgIF9fIExkKGtKYXZhU2NyaXB0Q2FsbENvZGVTdGFydFJl Z2lzdGVyLCBNZW1PcGVyYW5kKGExKSk7CisrICBfXyBKdW1wKGtKYXZhU2NyaXB0Q2FsbENvZGVT dGFydFJlZ2lzdGVyKTsKKyt9CisrCisrdm9pZCBCdWlsdGluczo6R2VuZXJhdGVfSW50ZXJwcmV0 ZXJFbnRlckJ5dGVjb2RlQWR2YW5jZShNYWNyb0Fzc2VtYmxlciogbWFzbSkgeworKyAgLy8gQWR2 YW5jZSB0aGUgY3VycmVudCBieXRlY29kZSBvZmZzZXQgc3RvcmVkIHdpdGhpbiB0aGUgZ2l2ZW4g aW50ZXJwcmV0ZXIKKysgIC8vIHN0YWNrIGZyYW1lLiBUaGlzIHNpbXVsYXRlcyB3aGF0IGFsbCBi eXRlY29kZSBoYW5kbGVycyBkbyB1cG9uIGNvbXBsZXRpb24KKysgIC8vIG9mIHRoZSB1bmRlcmx5 aW5nIG9wZXJhdGlvbi4KKysgIF9fIExkKGtJbnRlcnByZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3Rl ciwKKysgICAgICAgIE1lbU9wZXJhbmQoZnAsIEludGVycHJldGVyRnJhbWVDb25zdGFudHM6OmtC eXRlY29kZUFycmF5RnJvbUZwKSk7CisrICBfXyBMZChrSW50ZXJwcmV0ZXJCeXRlY29kZU9mZnNl dFJlZ2lzdGVyLAorKyAgICAgICAgTWVtT3BlcmFuZChmcCwgSW50ZXJwcmV0ZXJGcmFtZUNvbnN0 YW50czo6a0J5dGVjb2RlT2Zmc2V0RnJvbUZwKSk7CisrICBfXyBTbWlVbnRhZyhrSW50ZXJwcmV0 ZXJCeXRlY29kZU9mZnNldFJlZ2lzdGVyKTsKKysKKysgIExhYmVsIGVudGVyX2J5dGVjb2RlLCBm dW5jdGlvbl9lbnRyeV9ieXRlY29kZTsKKysgIF9fIEJyYW5jaCgmZnVuY3Rpb25fZW50cnlfYnl0 ZWNvZGUsIGVxLCBrSW50ZXJwcmV0ZXJCeXRlY29kZU9mZnNldFJlZ2lzdGVyLAorKyAgICAgICAg ICAgIE9wZXJhbmQoQnl0ZWNvZGVBcnJheTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZyAr CisrICAgICAgICAgICAgICAgICAgICBrRnVuY3Rpb25FbnRyeUJ5dGVjb2RlT2Zmc2V0KSk7Cisr CisrICAvLyBMb2FkIHRoZSBjdXJyZW50IGJ5dGVjb2RlLgorKyAgX18gQWRkNjQoYTEsIGtJbnRl cnByZXRlckJ5dGVjb2RlQXJyYXlSZWdpc3RlciwKKysgICAgICAgICAgIGtJbnRlcnByZXRlckJ5 dGVjb2RlT2Zmc2V0UmVnaXN0ZXIpOworKyAgX18gTGJ1KGExLCBNZW1PcGVyYW5kKGExKSk7Cisr CisrICAvLyBBZHZhbmNlIHRvIHRoZSBuZXh0IGJ5dGVjb2RlLgorKyAgTGFiZWwgaWZfcmV0dXJu OworKyAgQWR2YW5jZUJ5dGVjb2RlT2Zmc2V0T3JSZXR1cm4obWFzbSwga0ludGVycHJldGVyQnl0 ZWNvZGVBcnJheVJlZ2lzdGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0lu dGVycHJldGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3RlciwgYTEsIGEyLCBhMywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGE0LCAmaWZfcmV0dXJuKTsKKysKKysgIF9fIGJpbmQoJmVu dGVyX2J5dGVjb2RlKTsKKysgIC8vIENvbnZlcnQgbmV3IGJ5dGVjb2RlIG9mZnNldCB0byBhIFNt aSBhbmQgc2F2ZSBpbiB0aGUgc3RhY2tmcmFtZS4KKysgIF9fIFNtaVRhZyhhMiwga0ludGVycHJl dGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3Rlcik7CisrICBfXyBTZChhMiwgTWVtT3BlcmFuZChmcCwg SW50ZXJwcmV0ZXJGcmFtZUNvbnN0YW50czo6a0J5dGVjb2RlT2Zmc2V0RnJvbUZwKSk7CisrCisr ICBHZW5lcmF0ZV9JbnRlcnByZXRlckVudGVyQnl0ZWNvZGUobWFzbSk7CisrCisrICBfXyBiaW5k KCZmdW5jdGlvbl9lbnRyeV9ieXRlY29kZSk7CisrICAvLyBJZiB0aGUgY29kZSBkZW9wdGltaXpl cyBkdXJpbmcgdGhlIGltcGxpY2l0IGZ1bmN0aW9uIGVudHJ5IHN0YWNrIGludGVycnVwdAorKyAg Ly8gY2hlY2ssIGl0IHdpbGwgaGF2ZSBhIGJhaWxvdXQgSUQgb2Yga0Z1bmN0aW9uRW50cnlCeXRl Y29kZU9mZnNldCwgd2hpY2ggaXMKKysgIC8vIG5vdCBhIHZhbGlkIGJ5dGVjb2RlIG9mZnNldC4g RGV0ZWN0IHRoaXMgY2FzZSBhbmQgYWR2YW5jZSB0byB0aGUgZmlyc3QKKysgIC8vIGFjdHVhbCBi eXRlY29kZS4KKysgIF9fIGxpKGtJbnRlcnByZXRlckJ5dGVjb2RlT2Zmc2V0UmVnaXN0ZXIsCisr ICAgICAgICBPcGVyYW5kKEJ5dGVjb2RlQXJyYXk6OmtIZWFkZXJTaXplIC0ga0hlYXBPYmplY3RU YWcpKTsKKysgIF9fIEJyYW5jaCgmZW50ZXJfYnl0ZWNvZGUpOworKworKyAgLy8gV2Ugc2hvdWxk IG5ldmVyIHRha2UgdGhlIGlmX3JldHVybiBwYXRoLgorKyAgX18gYmluZCgmaWZfcmV0dXJuKTsK KysgIF9fIEFib3J0KEFib3J0UmVhc29uOjprSW52YWxpZEJ5dGVjb2RlQWR2YW5jZSk7CisrfQor KworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0ludGVycHJldGVyRW50ZXJCeXRlY29kZURpc3Bh dGNoKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICBHZW5lcmF0ZV9JbnRlcnByZXRlckVudGVy Qnl0ZWNvZGUobWFzbSk7CisrfQorKworK25hbWVzcGFjZSB7Cisrdm9pZCBHZW5lcmF0ZV9Db250 aW51ZVRvQnVpbHRpbkhlbHBlcihNYWNyb0Fzc2VtYmxlciogbWFzbSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgamF2YV9zY3JpcHRfYnVpbHRpbiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgd2l0aF9yZXN1bHQpIHsKKysg IGNvbnN0IFJlZ2lzdGVyQ29uZmlndXJhdGlvbiogY29uZmlnKFJlZ2lzdGVyQ29uZmlndXJhdGlv bjo6RGVmYXVsdCgpKTsKKysgIGludCBhbGxvY2F0YWJsZV9yZWdpc3Rlcl9jb3VudCA9IGNvbmZp Zy0+bnVtX2FsbG9jYXRhYmxlX2dlbmVyYWxfcmVnaXN0ZXJzKCk7CisrICBpZiAod2l0aF9yZXN1 bHQpIHsKKysgICAgLy8gT3ZlcndyaXRlIHRoZSBob2xlIGluc2VydGVkIGJ5IHRoZSBkZW9wdGlt aXplciB3aXRoIHRoZSByZXR1cm4gdmFsdWUgZnJvbQorKyAgICAvLyB0aGUgTEFaWSBkZW9wdCBw b2ludC4KKysgICAgX18gU2QoYTAsCisrICAgICAgICAgIE1lbU9wZXJhbmQoCisrICAgICAgICAg ICAgICBzcCwgY29uZmlnLT5udW1fYWxsb2NhdGFibGVfZ2VuZXJhbF9yZWdpc3RlcnMoKSAqIGtQ b2ludGVyU2l6ZSArCisrICAgICAgICAgICAgICAgICAgICAgIEJ1aWx0aW5Db250aW51YXRpb25G cmFtZUNvbnN0YW50czo6a0ZpeGVkRnJhbWVTaXplKSk7CisrICB9CisrICBmb3IgKGludCBpID0g YWxsb2NhdGFibGVfcmVnaXN0ZXJfY291bnQgLSAxOyBpID49IDA7IC0taSkgeworKyAgICBpbnQg Y29kZSA9IGNvbmZpZy0+R2V0QWxsb2NhdGFibGVHZW5lcmFsQ29kZShpKTsKKysgICAgX18gUG9w KFJlZ2lzdGVyOjpmcm9tX2NvZGUoY29kZSkpOworKyAgICBpZiAoamF2YV9zY3JpcHRfYnVpbHRp biAmJiBjb2RlID09IGtKYXZhU2NyaXB0Q2FsbEFyZ0NvdW50UmVnaXN0ZXIuY29kZSgpKSB7Cisr ICAgICAgX18gU21pVW50YWcoUmVnaXN0ZXI6OmZyb21fY29kZShjb2RlKSk7CisrICAgIH0KKysg IH0KKysgIF9fIExkKGZwLCBNZW1PcGVyYW5kKAorKyAgICAgICAgICAgICAgICBzcCwgQnVpbHRp bkNvbnRpbnVhdGlvbkZyYW1lQ29uc3RhbnRzOjprRml4ZWRGcmFtZVNpemVGcm9tRnApKTsKKysg IC8vIExvYWQgYnVpbHRpbiBpbmRleCAoc3RvcmVkIGFzIGEgU21pKSBhbmQgdXNlIGl0IHRvIGdl dCB0aGUgYnVpbHRpbiBzdGFydAorKyAgLy8gYWRkcmVzcyBmcm9tIHRoZSBidWlsdGlucyB0YWJs ZS4KKysgIF9fIFBvcCh0MCk7CisrICBfXyBBZGQ2NChzcCwgc3AsCisrICAgICAgICAgICBPcGVy YW5kKEJ1aWx0aW5Db250aW51YXRpb25GcmFtZUNvbnN0YW50czo6a0ZpeGVkRnJhbWVTaXplRnJv bUZwKSk7CisrICBfXyBQb3AocmEpOworKyAgX18gTG9hZEVudHJ5RnJvbUJ1aWx0aW5JbmRleCh0 MCk7CisrICBfXyBKdW1wKHQwKTsKKyt9CisrfSAgLy8gbmFtZXNwYWNlCisrCisrdm9pZCBCdWls dGluczo6R2VuZXJhdGVfQ29udGludWVUb0NvZGVTdHViQnVpbHRpbihNYWNyb0Fzc2VtYmxlciog bWFzbSkgeworKyAgR2VuZXJhdGVfQ29udGludWVUb0J1aWx0aW5IZWxwZXIobWFzbSwgZmFsc2Us IGZhbHNlKTsKKyt9CisrCisrdm9pZCBCdWlsdGluczo6R2VuZXJhdGVfQ29udGludWVUb0NvZGVT dHViQnVpbHRpbldpdGhSZXN1bHQoCisrICAgIE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICBH ZW5lcmF0ZV9Db250aW51ZVRvQnVpbHRpbkhlbHBlcihtYXNtLCBmYWxzZSwgdHJ1ZSk7CisrfQor KworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0NvbnRpbnVlVG9KYXZhU2NyaXB0QnVpbHRpbihN YWNyb0Fzc2VtYmxlciogbWFzbSkgeworKyAgR2VuZXJhdGVfQ29udGludWVUb0J1aWx0aW5IZWxw ZXIobWFzbSwgdHJ1ZSwgZmFsc2UpOworK30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9D b250aW51ZVRvSmF2YVNjcmlwdEJ1aWx0aW5XaXRoUmVzdWx0KAorKyAgICBNYWNyb0Fzc2VtYmxl ciogbWFzbSkgeworKyAgR2VuZXJhdGVfQ29udGludWVUb0J1aWx0aW5IZWxwZXIobWFzbSwgdHJ1 ZSwgdHJ1ZSk7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX05vdGlmeURlb3B0aW1p emVkKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICB7CisrICAgIEZyYW1lU2NvcGUgc2NvcGUo bWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKyAgICBfXyBDYWxsUnVudGltZShSdW50aW1l OjprTm90aWZ5RGVvcHRpbWl6ZWQpOworKyAgfQorKworKyAgRENIRUNLX0VRKGtJbnRlcnByZXRl ckFjY3VtdWxhdG9yUmVnaXN0ZXIuY29kZSgpLCBhMC5jb2RlKCkpOworKyAgX18gTGQoYTAsIE1l bU9wZXJhbmQoc3AsIDAgKiBrUG9pbnRlclNpemUpKTsKKysgIF9fIEFkZDY0KHNwLCBzcCwgT3Bl cmFuZCgxICoga1BvaW50ZXJTaXplKSk7ICAvLyBSZW1vdmUgc3RhdGUuCisrICBfXyBSZXQoKTsK Kyt9CisrCisrdm9pZCBCdWlsdGluczo6R2VuZXJhdGVfSW50ZXJwcmV0ZXJPblN0YWNrUmVwbGFj ZW1lbnQoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIHsKKysgICAgRnJhbWVTY29wZSBzY29w ZShtYXNtLCBTdGFja0ZyYW1lOjpJTlRFUk5BTCk7CisrICAgIF9fIENhbGxSdW50aW1lKFJ1bnRp bWU6OmtDb21waWxlRm9yT25TdGFja1JlcGxhY2VtZW50KTsKKysgIH0KKysKKysgIC8vIElmIHRo ZSBjb2RlIG9iamVjdCBpcyBudWxsLCBqdXN0IHJldHVybiB0byB0aGUgY2FsbGVyLgorKyAgX18g UmV0KGVxLCBhMCwgT3BlcmFuZChTbWk6Onplcm8oKSkpOworKworKyAgLy8gRHJvcCB0aGUgaGFu ZGxlciBmcmFtZSB0aGF0IGlzIGJlIHNpdHRpbmcgb24gdG9wIG9mIHRoZSBhY3R1YWwKKysgIC8v IEphdmFTY3JpcHQgZnJhbWUuIFRoaXMgaXMgdGhlIGNhc2UgdGhlbiBPU1IgaXMgdHJpZ2dlcmVk IGZyb20gYnl0ZWNvZGUuCisrICBfXyBMZWF2ZUZyYW1lKFN0YWNrRnJhbWU6OlNUVUIpOworKwor KyAgLy8gTG9hZCBkZW9wdGltaXphdGlvbiBkYXRhIGZyb20gdGhlIGNvZGUgb2JqZWN0LgorKyAg Ly8gPGRlb3B0X2RhdGE+ID0gPGNvZGU+WyNkZW9wdGltaXphdGlvbl9kYXRhX29mZnNldF0KKysg IF9fIExkKGExLCBNZW1PcGVyYW5kKGEwLCBDb2RlOjprRGVvcHRpbWl6YXRpb25EYXRhT2Zmc2V0 IC0ga0hlYXBPYmplY3RUYWcpKTsKKysKKysgIC8vIExvYWQgdGhlIE9TUiBlbnRyeXBvaW50IG9m ZnNldCBmcm9tIHRoZSBkZW9wdGltaXphdGlvbiBkYXRhLgorKyAgLy8gPG9zcl9vZmZzZXQ+ID0g PGRlb3B0X2RhdGE+WyNoZWFkZXJfc2l6ZSArICNvc3JfcGNfb2Zmc2V0XQorKyAgX18gU21pVW50 YWcoYTEsIE1lbU9wZXJhbmQoYTEsIEZpeGVkQXJyYXk6Ok9mZnNldE9mRWxlbWVudEF0KAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZW9wdGltaXphdGlvbkRhdGE6OmtP c3JQY09mZnNldEluZGV4KSAtCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGtIZWFwT2JqZWN0VGFnKSk7CisrCisrICAvLyBDb21wdXRlIHRoZSB0YXJnZXQgYWRkcmVzcyA9 IGNvZGVfb2JqICsgaGVhZGVyX3NpemUgKyBvc3Jfb2Zmc2V0CisrICAvLyA8ZW50cnlfYWRkcj4g PSA8Y29kZV9vYmo+ICsgI2hlYWRlcl9zaXplICsgPG9zcl9vZmZzZXQ+CisrICBfXyBBZGQ2NChh MCwgYTAsIGExKTsKKysgIF9fIEFkZDY0KHJhLCBhMCwgQ29kZTo6a0hlYWRlclNpemUgLSBrSGVh cE9iamVjdFRhZyk7CisrICAvLyBBbmQgInJldHVybiIgdG8gdGhlIE9TUiBlbnRyeSBwb2ludCBv ZiB0aGUgZnVuY3Rpb24uCisrICBfXyBSZXQoKTsKKyt9CisrCisrLy8gc3RhdGljCisrdm9pZCBC dWlsdGluczo6R2VuZXJhdGVfRnVuY3Rpb25Qcm90b3R5cGVBcHBseShNYWNyb0Fzc2VtYmxlciog bWFzbSkgeworKyAgLy8gLS0tLS0tLS0tLS0gUyB0IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgIC8v ICAtLSBhMCAgICA6IGFyZ2MKKysgIC8vICAtLSBzcFswXSA6IGFyZ0FycmF5CisrICAvLyAgLS0g c3BbNF0gOiB0aGlzQXJnCisrICAvLyAgLS0gc3BbOF0gOiByZWNlaXZlcgorKyAgLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysgIFJlZ2lzdGVyIGFyZ2MgPSBhMDsK KysgIFJlZ2lzdGVyIGFyZ19hcnJheSA9IGEyOworKyAgUmVnaXN0ZXIgcmVjZWl2ZXIgPSBhMTsK KysgIFJlZ2lzdGVyIHRoaXNfYXJnID0gYTU7CisrICBSZWdpc3RlciB1bmRlZmluZWRfdmFsdWUg PSBhMzsKKysKKysgIF9fIExvYWRSb290KHVuZGVmaW5lZF92YWx1ZSwgUm9vdEluZGV4OjprVW5k ZWZpbmVkVmFsdWUpOworKworKyAgLy8gMS4gTG9hZCByZWNlaXZlciBpbnRvIGExLCBhcmdBcnJh eSBpbnRvIGEyIChpZiBwcmVzZW50KSwgcmVtb3ZlIGFsbAorKyAgLy8gYXJndW1lbnRzIGZyb20g dGhlIHN0YWNrIChpbmNsdWRpbmcgdGhlIHJlY2VpdmVyKSwgYW5kIHB1c2ggdGhpc0FyZyAoaWYK KysgIC8vIHByZXNlbnQpIGluc3RlYWQuCisrICB7CisrICAgIC8vIENsYWltICgyIC0gYXJnYykg ZHVtbXkgYXJndW1lbnRzIGZvcm0gdGhlIHN0YWNrLCB0byBwdXQgdGhlIHN0YWNrIGluIGEKKysg ICAgLy8gY29uc2lzdGVudCBzdGF0ZSBmb3IgYSBzaW1wbGUgcG9wIG9wZXJhdGlvbi4KKysKKysg ICAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKDIgKiBrUG9pbnRlclNpemUpKTsKKysgICAgX18g Q2FsY1NjYWxlZEFkZHJlc3Moc3AsIHNwLCBhcmdjLCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAg X18gUG9wKHRoaXNfYXJnLCBhcmdfYXJyYXkpOyAgLy8gT3ZlcndyaXRlIGFyZ2MKKysKKysgICAg TGFiZWwgZG9uZTAsIGRvbmUxOworKyAgICBfXyBCcmFuY2goJmRvbmUwLCBuZSwgYXJnYywgT3Bl cmFuZCh6ZXJvX3JlZykpOworKyAgICBfXyBNb3ZlKGFyZ19hcnJheSwgdW5kZWZpbmVkX3ZhbHVl KTsgIC8vIGlmIGFyZ2MgPT0gMAorKyAgICBfXyBNb3ZlKHRoaXNfYXJnLCB1bmRlZmluZWRfdmFs dWUpOyAgIC8vIGlmIGFyZ2MgPT0gMAorKyAgICBfXyBiaW5kKCZkb25lMCk7ICAgICAgICAgICAg ICAgICAgICAgIC8vIGVsc2UgKGkuZS4sIGFyZ2MgPiAwKQorKworKyAgICBfXyBCcmFuY2goJmRv bmUxLCBuZSwgYXJnYywgT3BlcmFuZCgxKSk7CisrICAgIF9fIE1vdmUoYXJnX2FycmF5LCB1bmRl ZmluZWRfdmFsdWUpOyAgLy8gaWYgYXJnYyA9PSAxCisrICAgIF9fIGJpbmQoJmRvbmUxKTsgICAg ICAgICAgICAgICAgICAgICAgLy8gZWxzZSAoaS5lLiwgYXJnYyA+IDEpCisrCisrICAgIF9fIExk KHJlY2VpdmVyLCBNZW1PcGVyYW5kKHNwKSk7CisrICAgIF9fIFNkKHRoaXNfYXJnLCBNZW1PcGVy YW5kKHNwKSk7CisrICB9CisrCisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0t LS0tLQorKyAgLy8gIC0tIGEyICAgIDogYXJnQXJyYXkKKysgIC8vICAtLSBhMSAgICA6IHJlY2Vp dmVyCisrICAvLyAgLS0gYTMgICAgOiB1bmRlZmluZWQgcm9vdCB2YWx1ZQorKyAgLy8gIC0tIHNw WzBdIDogdGhpc0FyZworKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysKKysgIC8vIDIuIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgZXhwbGljaXRseSBmb3IgY2FsbGFi bGUgcmVjZWl2ZXIgaGVyZSwKKysgIC8vIHNpbmNlIHRoYXQncyB0aGUgZmlyc3QgdGhpbmcgdGhl IENhbGwvQ2FsbFdpdGhBcnJheUxpa2UgYnVpbHRpbnMKKysgIC8vIHdpbGwgZG8uCisrCisrICAv LyAzLiBUYWlsIGNhbGwgd2l0aCBubyBhcmd1bWVudHMgaWYgYXJnQXJyYXkgaXMgbnVsbCBvciB1 bmRlZmluZWQuCisrICBMYWJlbCBub19hcmd1bWVudHM7CisrICBfXyBKdW1wSWZSb290KGFyZ19h cnJheSwgUm9vdEluZGV4OjprTnVsbFZhbHVlLCAmbm9fYXJndW1lbnRzKTsKKysgIF9fIEJyYW5j aCgmbm9fYXJndW1lbnRzLCBlcSwgYXJnX2FycmF5LCBPcGVyYW5kKHVuZGVmaW5lZF92YWx1ZSkp OworKworKyAgLy8gNGEuIEFwcGx5IHRoZSByZWNlaXZlciB0byB0aGUgZ2l2ZW4gYXJnQXJyYXku CisrICBfXyBKdW1wKEJVSUxUSU5fQ09ERShtYXNtLT5pc29sYXRlKCksIENhbGxXaXRoQXJyYXlM aWtlKSwKKysgICAgICAgICAgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrCisrICAvLyA0Yi4g VGhlIGFyZ0FycmF5IGlzIGVpdGhlciBudWxsIG9yIHVuZGVmaW5lZCwgc28gd2UgdGFpbCBjYWxs IHdpdGhvdXQgYW55CisrICAvLyBhcmd1bWVudHMgdG8gdGhlIHJlY2VpdmVyLgorKyAgX18gYmlu ZCgmbm9fYXJndW1lbnRzKTsKKysgIHsKKysgICAgX18gTW92ZShhMCwgemVyb19yZWcpOworKyAg ICBEQ0hFQ0socmVjZWl2ZXIgPT0gYTEpOworKyAgICBfXyBKdW1wKG1hc20tPmlzb2xhdGUoKS0+ YnVpbHRpbnMoKS0+Q2FsbCgpLCBSZWxvY0luZm86OkNPREVfVEFSR0VUKTsKKysgIH0KKyt9Cisr CisrLy8gc3RhdGljCisrdm9pZCBCdWlsdGluczo6R2VuZXJhdGVfRnVuY3Rpb25Qcm90b3R5cGVD YWxsKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICAvLyAxLiBNYWtlIHN1cmUgd2UgaGF2ZSBh dCBsZWFzdCBvbmUgYXJndW1lbnQuCisrICAvLyBhMDogYWN0dWFsIG51bWJlciBvZiBhcmd1bWVu dHMKKysgIHsKKysgICAgTGFiZWwgZG9uZTsKKysgICAgX18gQnJhbmNoKCZkb25lLCBuZSwgYTAs IE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgX18gUHVzaFJvb3QoUm9vdEluZGV4OjprVW5kZWZp bmVkVmFsdWUpOworKyAgICBfXyBBZGQ2NChhMCwgYTAsIE9wZXJhbmQoMSkpOworKyAgICBfXyBi aW5kKCZkb25lKTsKKysgIH0KKysKKysgIC8vIDIuIEdldCB0aGUgZnVuY3Rpb24gdG8gY2FsbCAo cGFzc2VkIGFzIHJlY2VpdmVyKSBmcm9tIHRoZSBzdGFjay4KKysgIC8vIGEwOiBhY3R1YWwgbnVt YmVyIG9mIGFyZ3VtZW50cworKyAgX18gQ2FsY1NjYWxlZEFkZHJlc3Moa1NjcmF0Y2hSZWcsIHNw LCBhMCwga1BvaW50ZXJTaXplTG9nMik7CisrICBfXyBMZChhMSwgTWVtT3BlcmFuZChrU2NyYXRj aFJlZykpOworKworKyAgLy8gMy4gU2hpZnQgYXJndW1lbnRzIGFuZCByZXR1cm4gYWRkcmVzcyBv bmUgc2xvdCBkb3duIG9uIHRoZSBzdGFjaworKyAgLy8gICAgKG92ZXJ3cml0aW5nIHRoZSBvcmln aW5hbCByZWNlaXZlcikuICBBZGp1c3QgYXJndW1lbnQgY291bnQgdG8gbWFrZQorKyAgLy8gICAg dGhlIG9yaWdpbmFsIGZpcnN0IGFyZ3VtZW50IHRoZSBuZXcgcmVjZWl2ZXIuCisrICAvLyBhMDog YWN0dWFsIG51bWJlciBvZiBhcmd1bWVudHMKKysgIC8vIGExOiBmdW5jdGlvbgorKyAgeworKyAg ICBMYWJlbCBsb29wOworKyAgICAvLyBDYWxjdWxhdGUgdGhlIGNvcHkgc3RhcnQgYWRkcmVzcyAo ZGVzdGluYXRpb24pLiBDb3B5IGVuZCBhZGRyZXNzIGlzIHNwLgorKyAgICBfXyBDYWxjU2NhbGVk QWRkcmVzcyhhMiwgc3AsIGEwLCBrUG9pbnRlclNpemVMb2cyKTsKKysKKysgICAgX18gYmluZCgm bG9vcCk7CisrICAgIF9fIExkKGtTY3JhdGNoUmVnLCBNZW1PcGVyYW5kKGEyLCAta1BvaW50ZXJT aXplKSk7CisrICAgIF9fIFNkKGtTY3JhdGNoUmVnLCBNZW1PcGVyYW5kKGEyKSk7CisrICAgIF9f IFN1YjY0KGEyLCBhMiwgT3BlcmFuZChrUG9pbnRlclNpemUpKTsKKysgICAgX18gQnJhbmNoKCZs b29wLCBuZSwgYTIsIE9wZXJhbmQoc3ApKTsKKysgICAgLy8gQWRqdXN0IHRoZSBhY3R1YWwgbnVt YmVyIG9mIGFyZ3VtZW50cyBhbmQgcmVtb3ZlIHRoZSB0b3AgZWxlbWVudAorKyAgICAvLyAod2hp Y2ggaXMgYSBjb3B5IG9mIHRoZSBsYXN0IGFyZ3VtZW50KS4KKysgICAgX18gU3ViNjQoYTAsIGEw LCBPcGVyYW5kKDEpKTsKKysgICAgX18gUG9wKCk7CisrICB9CisrCisrICAvLyA0LiBDYWxsIHRo ZSBjYWxsYWJsZS4KKysgIF9fIEp1bXAobWFzbS0+aXNvbGF0ZSgpLT5idWlsdGlucygpLT5DYWxs KCksIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworK30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5l cmF0ZV9SZWZsZWN0QXBwbHkoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIC8vIC0tLS0tLS0t LS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAvLyAgLS0gYTAgICAgIDogYXJnYworKyAg Ly8gIC0tIHNwWzBdICA6IGFyZ3VtZW50c0xpc3QgIChpZiBhcmdjID09MykKKysgIC8vICAtLSBz cFs0XSAgOiB0aGlzQXJndW1lbnQgICAoaWYgYXJnYyA+PTIpCisrICAvLyAgLS0gc3BbOF0gIDog dGFyZ2V0ICAgICAgICAgKGlmIGFyZ2MgPj0xKQorKyAgLy8gIC0tIHNwWzEyXSA6IHJlY2VpdmVy CisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworKyAgUmVnaXN0 ZXIgYXJnYyA9IGEwOworKyAgUmVnaXN0ZXIgYXJndW1lbnRzX2xpc3QgPSBhMjsKKysgIFJlZ2lz dGVyIHRhcmdldCA9IGExOworKyAgUmVnaXN0ZXIgdGhpc19hcmd1bWVudCA9IGE1OworKyAgUmVn aXN0ZXIgdW5kZWZpbmVkX3ZhbHVlID0gYTM7CisrCisrICBfXyBMb2FkUm9vdCh1bmRlZmluZWRf dmFsdWUsIFJvb3RJbmRleDo6a1VuZGVmaW5lZFZhbHVlKTsKKysKKysgIC8vIDEuIExvYWQgdGFy Z2V0IGludG8gYTEgKGlmIHByZXNlbnQpLCBhcmd1bWVudHNMaXN0IGludG8gYTIgKGlmIHByZXNl bnQpLAorKyAgLy8gcmVtb3ZlIGFsbCBhcmd1bWVudHMgZnJvbSB0aGUgc3RhY2sgKGluY2x1ZGlu ZyB0aGUgcmVjZWl2ZXIpLCBhbmQgcHVzaAorKyAgLy8gdGhpc0FyZ3VtZW50IChpZiBwcmVzZW50 KSBpbnN0ZWFkLgorKyAgeworKyAgICAvLyBDbGFpbSAoMyAtIGFyZ2MpIGR1bW15IGFyZ3VtZW50 cyBmb3JtIHRoZSBzdGFjaywgdG8gcHV0IHRoZSBzdGFjayBpbiBhCisrICAgIC8vIGNvbnNpc3Rl bnQgc3RhdGUgZm9yIGEgc2ltcGxlIHBvcCBvcGVyYXRpb24uCisrCisrICAgIF9fIFN1YjY0KHNw LCBzcCwgT3BlcmFuZCgzICoga1BvaW50ZXJTaXplKSk7CisrICAgIF9fIENhbGNTY2FsZWRBZGRy ZXNzKHNwLCBzcCwgYXJnYywga1BvaW50ZXJTaXplTG9nMik7CisrICAgIF9fIFBvcCh0YXJnZXQs IHRoaXNfYXJndW1lbnQsIGFyZ3VtZW50c19saXN0KTsKKysKKysgICAgTGFiZWwgZG9uZTAsIGRv bmUxLCBkb25lMjsKKysgICAgX18gQnJhbmNoKCZkb25lMCwgbmUsIGFyZ2MsIE9wZXJhbmQoemVy b19yZWcpKTsKKysgICAgX18gTW92ZShhcmd1bWVudHNfbGlzdCwgdW5kZWZpbmVkX3ZhbHVlKTsg IC8vIGlmIGFyZ2MgPT0gMAorKyAgICBfXyBNb3ZlKHRoaXNfYXJndW1lbnQsIHVuZGVmaW5lZF92 YWx1ZSk7ICAgLy8gaWYgYXJnYyA9PSAwCisrICAgIF9fIE1vdmUodGFyZ2V0LCB1bmRlZmluZWRf dmFsdWUpOyAgICAgICAgICAvLyBpZiBhcmdjID09IDAKKysgICAgX18gYmluZCgmZG9uZTApOyAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyZ2MgIT0gMAorKworKyAgICBfXyBCcmFuY2go JmRvbmUxLCBuZSwgYXJnYywgT3BlcmFuZCgxKSk7CisrICAgIF9fIE1vdmUoYXJndW1lbnRzX2xp c3QsIHVuZGVmaW5lZF92YWx1ZSk7ICAvLyBpZiBhcmdjID09IDEKKysgICAgX18gTW92ZSh0aGlz X2FyZ3VtZW50LCB1bmRlZmluZWRfdmFsdWUpOyAgIC8vIGlmIGFyZ2MgPT0gMQorKyAgICBfXyBi aW5kKCZkb25lMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJnYyA+IDEKKysKKysg ICAgX18gQnJhbmNoKCZkb25lMiwgbmUsIGFyZ2MsIE9wZXJhbmQoMikpOworKyAgICBfXyBNb3Zl KGFyZ3VtZW50c19saXN0LCB1bmRlZmluZWRfdmFsdWUpOyAgLy8gaWYgYXJnYyA9PSAyCisrICAg IF9fIGJpbmQoJmRvbmUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhcmdjID4gMgor KworKyAgICBfXyBTZCh0aGlzX2FyZ3VtZW50LCBNZW1PcGVyYW5kKHNwLCAwKSk7ICAvLyBPdmVy d3JpdGUgcmVjZWl2ZXIKKysgIH0KKysKKysgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0t LS0tLS0tLS0tCisrICAvLyAgLS0gYTIgICAgOiBhcmd1bWVudHNMaXN0CisrICAvLyAgLS0gYTEg ICAgOiB0YXJnZXQKKysgIC8vICAtLSBhMyAgICA6IHVuZGVmaW5lZCByb290IHZhbHVlCisrICAv LyAgLS0gc3BbMF0gOiB0aGlzQXJndW1lbnQKKysgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrCisrICAvLyAyLiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGV4cGxpY2l0 bHkgZm9yIGNhbGxhYmxlIHRhcmdldCBoZXJlLAorKyAgLy8gc2luY2UgdGhhdCdzIHRoZSBmaXJz dCB0aGluZyB0aGUgQ2FsbC9DYWxsV2l0aEFycmF5TGlrZSBidWlsdGlucworKyAgLy8gd2lsbCBk by4KKysKKysgIC8vIDMuIEFwcGx5IHRoZSB0YXJnZXQgdG8gdGhlIGdpdmVuIGFyZ3VtZW50c0xp c3QuCisrICBfXyBKdW1wKEJVSUxUSU5fQ09ERShtYXNtLT5pc29sYXRlKCksIENhbGxXaXRoQXJy YXlMaWtlKSwKKysgICAgICAgICAgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrfQorKworK3Zv aWQgQnVpbHRpbnM6OkdlbmVyYXRlX1JlZmxlY3RDb25zdHJ1Y3QoTWFjcm9Bc3NlbWJsZXIqIG1h c20pIHsKKysgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAvLyAg LS0gYTAgICAgIDogYXJnYworKyAgLy8gIC0tIHNwWzBdICA6IG5ldy50YXJnZXQgKG9wdGlvbmFs KSAoZHVtbXkgdmFsdWUgaWYgYXJnYyA8PSAyKQorKyAgLy8gIC0tIHNwWzRdICA6IGFyZ3VtZW50 c0xpc3QgICAgICAgICAoZHVtbXkgdmFsdWUgaWYgYXJnYyA8PSAxKQorKyAgLy8gIC0tIHNwWzhd ICA6IHRhcmdldCAgICAgICAgICAgICAgICAoZHVtbXkgdmFsdWUgaWYgYXJnYyA9PSAwKQorKyAg Ly8gIC0tIHNwWzEyXSA6IHJlY2VpdmVyCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyAgUmVnaXN0ZXIgYXJnYyA9IGEwOworKyAgUmVnaXN0ZXIgYXJndW1lbnRz X2xpc3QgPSBhMjsKKysgIFJlZ2lzdGVyIHRhcmdldCA9IGExOworKyAgUmVnaXN0ZXIgbmV3X3Rh cmdldCA9IGEzOworKyAgUmVnaXN0ZXIgdW5kZWZpbmVkX3ZhbHVlID0gYTQ7CisrCisrICBfXyBM b2FkUm9vdCh1bmRlZmluZWRfdmFsdWUsIFJvb3RJbmRleDo6a1VuZGVmaW5lZFZhbHVlKTsKKysK KysgIC8vIDEuIExvYWQgdGFyZ2V0IGludG8gYTEgKGlmIHByZXNlbnQpLCBhcmd1bWVudHNMaXN0 IGludG8gYTIgKGlmIHByZXNlbnQpLAorKyAgLy8gbmV3LnRhcmdldCBpbnRvIGEzIChpZiBwcmVz ZW50LCBvdGhlcndpc2UgdXNlIHRhcmdldCksIHJlbW92ZSBhbGwKKysgIC8vIGFyZ3VtZW50cyBm cm9tIHRoZSBzdGFjayAoaW5jbHVkaW5nIHRoZSByZWNlaXZlciksIGFuZCBwdXNoIHRoaXNBcmd1 bWVudAorKyAgLy8gKGlmIHByZXNlbnQpIGluc3RlYWQuCisrICB7CisrICAgIC8vIENsYWltICgz IC0gYXJnYykgZHVtbXkgYXJndW1lbnRzIGZvcm0gdGhlIHN0YWNrLCB0byBwdXQgdGhlIHN0YWNr IGluIGEKKysgICAgLy8gY29uc2lzdGVudCBzdGF0ZSBmb3IgYSBzaW1wbGUgcG9wIG9wZXJhdGlv bi4KKysgICAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKDMgKiBrUG9pbnRlclNpemUpKTsKKysg ICAgX18gQ2FsY1NjYWxlZEFkZHJlc3Moc3AsIHNwLCBhcmdjLCBrUG9pbnRlclNpemVMb2cyKTsK KysgICAgX18gUG9wKHRhcmdldCwgYXJndW1lbnRzX2xpc3QsIG5ld190YXJnZXQpOworKworKyAg ICBMYWJlbCBkb25lMCwgZG9uZTEsIGRvbmUyOworKyAgICBfXyBCcmFuY2goJmRvbmUwLCBuZSwg YXJnYywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgICBfXyBNb3ZlKGFyZ3VtZW50c19saXN0LCB1 bmRlZmluZWRfdmFsdWUpOyAgLy8gaWYgYXJnYyA9PSAwCisrICAgIF9fIE1vdmUobmV3X3Rhcmdl dCwgdW5kZWZpbmVkX3ZhbHVlKTsgICAgICAvLyBpZiBhcmdjID09IDAKKysgICAgX18gTW92ZSh0 YXJnZXQsIHVuZGVmaW5lZF92YWx1ZSk7ICAgICAgICAgIC8vIGlmIGFyZ2MgPT0gMAorKyAgICBf XyBiaW5kKCZkb25lMCk7CisrCisrICAgIF9fIEJyYW5jaCgmZG9uZTEsIG5lLCBhcmdjLCBPcGVy YW5kKDEpKTsKKysgICAgX18gTW92ZShhcmd1bWVudHNfbGlzdCwgdW5kZWZpbmVkX3ZhbHVlKTsg IC8vIGlmIGFyZ2MgPT0gMQorKyAgICBfXyBNb3ZlKG5ld190YXJnZXQsIHRhcmdldCk7ICAgICAg ICAgICAgICAgLy8gaWYgYXJnYyA9PSAxCisrICAgIF9fIGJpbmQoJmRvbmUxKTsKKysKKysgICAg X18gQnJhbmNoKCZkb25lMiwgbmUsIGFyZ2MsIE9wZXJhbmQoMikpOworKyAgICBfXyBNb3ZlKG5l d190YXJnZXQsIHRhcmdldCk7ICAvLyBpZiBhcmdjID09IDIKKysgICAgX18gYmluZCgmZG9uZTIp OworKworKyAgICBfXyBTZCh1bmRlZmluZWRfdmFsdWUsIE1lbU9wZXJhbmQoc3AsIDApKTsgIC8v IE92ZXJ3cml0ZSByZWNlaXZlcgorKyAgfQorKworKyAgLy8gLS0tLS0tLS0tLS0gUyB0IGEgdCBl IC0tLS0tLS0tLS0tLS0KKysgIC8vICAtLSBhMiAgICA6IGFyZ3VtZW50c0xpc3QKKysgIC8vICAt LSBhMSAgICA6IHRhcmdldAorKyAgLy8gIC0tIGEzICAgIDogbmV3LnRhcmdldAorKyAgLy8gIC0t IHNwWzBdIDogcmVjZWl2ZXIgKHVuZGVmaW5lZCkKKysgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrCisrICAvLyAyLiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGV4cGxp Y2l0bHkgZm9yIGNvbnN0cnVjdG9yIHRhcmdldCBoZXJlLAorKyAgLy8gc2luY2UgdGhhdCdzIHRo ZSBmaXJzdCB0aGluZyB0aGUgQ29uc3RydWN0L0NvbnN0cnVjdFdpdGhBcnJheUxpa2UKKysgIC8v IGJ1aWx0aW5zIHdpbGwgZG8uCisrCisrICAvLyAzLiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGV4 cGxpY2l0bHkgZm9yIGNvbnN0cnVjdG9yIG5ldy50YXJnZXQgaGVyZSwKKysgIC8vIHNpbmNlIHRo YXQncyB0aGUgc2Vjb25kIHRoaW5nIHRoZSBDb25zdHJ1Y3QvQ29uc3RydWN0V2l0aEFycmF5TGlr ZQorKyAgLy8gYnVpbHRpbnMgd2lsbCBkby4KKysKKysgIC8vIDQuIENvbnN0cnVjdCB0aGUgdGFy Z2V0IHdpdGggdGhlIGdpdmVuIG5ldy50YXJnZXQgYW5kIGFyZ3VtZW50c0xpc3QuCisrICBfXyBK dW1wKEJVSUxUSU5fQ09ERShtYXNtLT5pc29sYXRlKCksIENvbnN0cnVjdFdpdGhBcnJheUxpa2Up LAorKyAgICAgICAgICBSZWxvY0luZm86OkNPREVfVEFSR0VUKTsKKyt9CisrCisrc3RhdGljIHZv aWQgRW50ZXJBcmd1bWVudHNBZGFwdG9yRnJhbWUoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysg IF9fIFNtaVRhZyhhMCk7CisrICBfXyBsaShhNCwgT3BlcmFuZChTdGFja0ZyYW1lOjpUeXBlVG9N YXJrZXIoU3RhY2tGcmFtZTo6QVJHVU1FTlRTX0FEQVBUT1IpKSk7CisrICBfXyBNdWx0aVB1c2go YTAuYml0KCkgfCBhMS5iaXQoKSB8IGE0LmJpdCgpIHwgZnAuYml0KCkgfCByYS5iaXQoKSk7Cisr ICBfXyBQdXNoKFNtaTo6emVybygpKTsgIC8vIFBhZGRpbmcuCisrICBfXyBBZGQ2NChmcCwgc3As CisrICAgICAgICAgICBPcGVyYW5kKEFyZ3VtZW50c0FkYXB0b3JGcmFtZUNvbnN0YW50czo6a0Zp eGVkRnJhbWVTaXplRnJvbUZwKSk7CisrfQorKworK3N0YXRpYyB2b2lkIExlYXZlQXJndW1lbnRz QWRhcHRvckZyYW1lKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICAvLyAtLS0tLS0tLS0tLSBT IHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGEwIDogcmVzdWx0IGJlaW5nIHBhc3Nl ZCB0aHJvdWdoCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAg Ly8gR2V0IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHBhc3NlZCAoYXMgYSBzbWkpLCB0ZWFyIGRv d24gdGhlIGZyYW1lIGFuZAorKyAgLy8gdGhlbiB0ZWFyIGRvd24gdGhlIHBhcmFtZXRlcnMuCisr ICBfXyBMZChhMSwgTWVtT3BlcmFuZChmcCwgQXJndW1lbnRzQWRhcHRvckZyYW1lQ29uc3RhbnRz OjprTGVuZ3RoT2Zmc2V0KSk7CisrICBfXyBNb3ZlKHNwLCBmcCk7CisrICBfXyBNdWx0aVBvcChm cC5iaXQoKSB8IHJhLmJpdCgpKTsKKysgIF9fIFNtaVNjYWxlKGE0LCBhMSwga1BvaW50ZXJTaXpl TG9nMik7CisrICBfXyBBZGQ2NChzcCwgc3AsIGE0KTsKKysgIC8vIEFkanVzdCBmb3IgdGhlIHJl Y2VpdmVyLgorKyAgX18gQWRkNjQoc3AsIHNwLCBPcGVyYW5kKGtQb2ludGVyU2l6ZSkpOworK30K KysKKysvLyBzdGF0aWMKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9DYWxsT3JDb25zdHJ1Y3RW YXJhcmdzKE1hY3JvQXNzZW1ibGVyKiBtYXNtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSGFuZGxlPENvZGU+IGNvZGUpIHsKKysgIC8vIC0tLS0tLS0t LS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAvLyAgLS0gYTEgOiB0YXJnZXQKKysgIC8v ICAtLSBhMCA6IG51bWJlciBvZiBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjayAobm90IGluY2x1ZGlu ZyB0aGUgcmVjZWl2ZXIpCisrICAvLyAgLS0gYTIgOiBhcmd1bWVudHMgbGlzdCAoYSBGaXhlZEFy cmF5KQorKyAgLy8gIC0tIGE0IDogbGVuIChudW1iZXIgb2YgZWxlbWVudHMgdG8gcHVzaCBmcm9t IGFyZ3MpCisrICAvLyAgLS0gYTMgOiBuZXcudGFyZ2V0IChmb3IgW1tDb25zdHJ1Y3RdXSkKKysg IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICBpZiAobWFzbS0+ZW1p dF9kZWJ1Z19jb2RlKCkpIHsKKysgICAgLy8gQWxsb3cgYTIgdG8gYmUgYSBGaXhlZEFycmF5LCBv ciBhIEZpeGVkRG91YmxlQXJyYXkgaWYgYTQgPT0gMC4KKysgICAgTGFiZWwgb2ssIGZhaWw7Cisr ICAgIF9fIEFzc2VydE5vdFNtaShhMik7CisrICAgIF9fIEdldE9iamVjdFR5cGUoYTIsIHQ1LCB0 NSk7CisrICAgIF9fIEJyYW5jaCgmb2ssIGVxLCB0NSwgT3BlcmFuZChGSVhFRF9BUlJBWV9UWVBF KSk7CisrICAgIF9fIEJyYW5jaCgmZmFpbCwgbmUsIHQ1LCBPcGVyYW5kKEZJWEVEX0RPVUJMRV9B UlJBWV9UWVBFKSk7CisrICAgIF9fIEJyYW5jaCgmb2ssIGVxLCBhNCwgT3BlcmFuZCh6ZXJvX3Jl ZykpOworKyAgICAvLyBGYWxsIHRocm91Z2guCisrICAgIF9fIGJpbmQoJmZhaWwpOworKyAgICBf XyBBYm9ydChBYm9ydFJlYXNvbjo6a09wZXJhbmRJc05vdEFGaXhlZEFycmF5KTsKKysKKysgICAg X18gYmluZCgmb2spOworKyAgfQorKworKyAgUmVnaXN0ZXIgYXJncyA9IGEyOworKyAgUmVnaXN0 ZXIgbGVuID0gYTQ7CisrCisrICAvLyBDaGVjayBmb3Igc3RhY2sgb3ZlcmZsb3cuCisrICBMYWJl bCBzdGFja19vdmVyZmxvdzsKKysgIEdlbmVyYXRlX1N0YWNrT3ZlcmZsb3dDaGVjayhtYXNtLCBs ZW4sIGtTY3JhdGNoUmVnLCBhNSwgJnN0YWNrX292ZXJmbG93KTsKKysKKysgIC8vIFB1c2ggYXJn dW1lbnRzIG9udG8gdGhlIHN0YWNrICh0aGlzQXJndW1lbnQgaXMgYWxyZWFkeSBvbiB0aGUgc3Rh Y2spLgorKyAgeworKyAgICBMYWJlbCBkb25lLCBwdXNoLCBsb29wOworKyAgICBSZWdpc3RlciBz cmMgPSBhNjsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IGxlbjsKKysgICAgX18gQWRkNjQoc3Jj LCBhcmdzLCBGaXhlZEFycmF5OjprSGVhZGVyU2l6ZSAtIGtIZWFwT2JqZWN0VGFnKTsKKysgICAg X18gQWRkNjQoYTAsIGEwLCBsZW4pOyAgLy8gVGhlICdsZW4nIGFyZ3VtZW50IGZvciBDYWxsKCkg b3IgQ29uc3RydWN0KCkuCisrICAgIF9fIEJyYW5jaCgmZG9uZSwgZXEsIGxlbiwgT3BlcmFuZCh6 ZXJvX3JlZykpOworKyAgICBfXyBTbGw2NChzY3JhdGNoLCBsZW4sIGtQb2ludGVyU2l6ZUxvZzIp OworKyAgICBfXyBTdWI2NChzY3JhdGNoLCBzcCwgT3BlcmFuZChzY3JhdGNoKSk7CisrICAgIF9f IExvYWRSb290KHQxLCBSb290SW5kZXg6OmtUaGVIb2xlVmFsdWUpOworKyAgICBfXyBiaW5kKCZs b29wKTsKKysgICAgX18gTGQoYTUsIE1lbU9wZXJhbmQoc3JjKSk7CisrICAgIF9fIEJyYW5jaCgm cHVzaCwgbmUsIGE1LCBPcGVyYW5kKHQxKSk7CisrICAgIF9fIExvYWRSb290KGE1LCBSb290SW5k ZXg6OmtVbmRlZmluZWRWYWx1ZSk7CisrICAgIF9fIGJpbmQoJnB1c2gpOworKyAgICBfXyBBZGQ2 NChzcmMsIHNyYywga1BvaW50ZXJTaXplKTsKKysgICAgX18gUHVzaChhNSk7CisrICAgIF9fIEJy YW5jaCgmbG9vcCwgbmUsIHNjcmF0Y2gsIE9wZXJhbmQoc3ApKTsKKysgICAgX18gYmluZCgmZG9u ZSk7CisrICB9CisrCisrICAvLyBUYWlsLWNhbGwgdG8gdGhlIGFjdHVhbCBDYWxsIG9yIENvbnN0 cnVjdCBidWlsdGluLgorKyAgX18gSnVtcChjb2RlLCBSZWxvY0luZm86OkNPREVfVEFSR0VUKTsK KysKKysgIF9fIGJpbmQoJnN0YWNrX292ZXJmbG93KTsKKysgIF9fIFRhaWxDYWxsUnVudGltZShS dW50aW1lOjprVGhyb3dTdGFja092ZXJmbG93KTsKKyt9CisrCisrLy8gc3RhdGljCisrdm9pZCBC dWlsdGluczo6R2VuZXJhdGVfQ2FsbE9yQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3MoTWFjcm9Bc3Nl bWJsZXIqIG1hc20sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2FsbE9yQ29uc3RydWN0TW9kZSBtb2RlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZTxDb2RlPiBjb2RlKSB7 CisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGEw IDogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKG5vdCBpbmNsdWRpbmcgdGhlIHJlY2VpdmVyKQor KyAgLy8gIC0tIGEzIDogdGhlIG5ldy50YXJnZXQgKGZvciBbW0NvbnN0cnVjdF1dIGNhbGxzKQor KyAgLy8gIC0tIGExIDogdGhlIHRhcmdldCB0byBjYWxsIChjYW4gYmUgYW55IE9iamVjdCkKKysg IC8vICAtLSBhMiA6IHN0YXJ0IGluZGV4ICh0byBzdXBwb3J0IHJlc3QgcGFyYW1ldGVycykKKysg IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrICAvLyBDaGVjayBp ZiBuZXcudGFyZ2V0IGhhcyBhIFtbQ29uc3RydWN0XV0gaW50ZXJuYWwgbWV0aG9kLgorKyAgaWYg KG1vZGUgPT0gQ2FsbE9yQ29uc3RydWN0TW9kZTo6a0NvbnN0cnVjdCkgeworKyAgICBMYWJlbCBu ZXdfdGFyZ2V0X2NvbnN0cnVjdG9yLCBuZXdfdGFyZ2V0X25vdF9jb25zdHJ1Y3RvcjsKKysgICAg X18gSnVtcElmU21pKGEzLCAmbmV3X3RhcmdldF9ub3RfY29uc3RydWN0b3IpOworKyAgICBfXyBM ZCh0MSwgRmllbGRNZW1PcGVyYW5kKGEzLCBIZWFwT2JqZWN0OjprTWFwT2Zmc2V0KSk7CisrICAg IF9fIExidSh0MSwgRmllbGRNZW1PcGVyYW5kKHQxLCBNYXA6OmtCaXRGaWVsZE9mZnNldCkpOwor KyAgICBfXyBBbmQodDEsIHQxLCBPcGVyYW5kKE1hcDo6Qml0czE6OklzQ29uc3RydWN0b3JCaXQ6 OmtNYXNrKSk7CisrICAgIF9fIEJyYW5jaCgmbmV3X3RhcmdldF9jb25zdHJ1Y3RvciwgbmUsIHQx LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAgIF9fIGJpbmQoJm5ld190YXJnZXRfbm90X2NvbnN0 cnVjdG9yKTsKKysgICAgeworKyAgICAgIEZyYW1lU2NvcGUgc2NvcGUobWFzbSwgU3RhY2tGcmFt ZTo6TUFOVUFMKTsKKysgICAgICBfXyBFbnRlckZyYW1lKFN0YWNrRnJhbWU6OklOVEVSTkFMKTsK KysgICAgICBfXyBQdXNoKGEzKTsKKysgICAgICBfXyBDYWxsUnVudGltZShSdW50aW1lOjprVGhy b3dOb3RDb25zdHJ1Y3Rvcik7CisrICAgIH0KKysgICAgX18gYmluZCgmbmV3X3RhcmdldF9jb25z dHJ1Y3Rvcik7CisrICB9CisrCisrICAvLyBDaGVjayBpZiB3ZSBoYXZlIGFuIGFyZ3VtZW50cyBh ZGFwdG9yIGZyYW1lIGJlbG93IHRoZSBmdW5jdGlvbiBmcmFtZS4KKysgIExhYmVsIGFyZ3VtZW50 c19hZGFwdG9yLCBhcmd1bWVudHNfZG9uZTsKKysgIF9fIExkKGE2LCBNZW1PcGVyYW5kKGZwLCBT dGFuZGFyZEZyYW1lQ29uc3RhbnRzOjprQ2FsbGVyRlBPZmZzZXQpKTsKKysgIF9fIExkKGE3LCBN ZW1PcGVyYW5kKGE2LCBDb21tb25GcmFtZUNvbnN0YW50czo6a0NvbnRleHRPckZyYW1lVHlwZU9m ZnNldCkpOworKyAgX18gQnJhbmNoKCZhcmd1bWVudHNfYWRhcHRvciwgZXEsIGE3LAorKyAgICAg ICAgICAgIE9wZXJhbmQoU3RhY2tGcmFtZTo6VHlwZVRvTWFya2VyKFN0YWNrRnJhbWU6OkFSR1VN RU5UU19BREFQVE9SKSkpOworKyAgeworKyAgICBfXyBMZChhNywgTWVtT3BlcmFuZChmcCwgU3Rh bmRhcmRGcmFtZUNvbnN0YW50czo6a0Z1bmN0aW9uT2Zmc2V0KSk7CisrICAgIF9fIExkKGE3LCBG aWVsZE1lbU9wZXJhbmQoYTcsIEpTRnVuY3Rpb246OmtTaGFyZWRGdW5jdGlvbkluZm9PZmZzZXQp KTsKKysgICAgX18gTGh1KGE3LCBGaWVsZE1lbU9wZXJhbmQoCisrICAgICAgICAgICAgICAgICAg IGE3LCBTaGFyZWRGdW5jdGlvbkluZm86OmtGb3JtYWxQYXJhbWV0ZXJDb3VudE9mZnNldCkpOwor KyAgICBfXyBNb3ZlKGE2LCBmcCk7CisrICB9CisrICBfXyBCcmFuY2goJmFyZ3VtZW50c19kb25l KTsKKysgIF9fIGJpbmQoJmFyZ3VtZW50c19hZGFwdG9yKTsKKysgIHsKKysgICAgLy8gSnVzdCBn ZXQgdGhlIGxlbmd0aCBmcm9tIHRoZSBBcmd1bWVudHNBZGFwdG9yRnJhbWUuCisrICAgIF9fIFNt aVVudGFnKGE3LAorKyAgICAgICAgICAgICAgICBNZW1PcGVyYW5kKGE2LCBBcmd1bWVudHNBZGFw dG9yRnJhbWVDb25zdGFudHM6OmtMZW5ndGhPZmZzZXQpKTsKKysgIH0KKysgIF9fIGJpbmQoJmFy Z3VtZW50c19kb25lKTsKKysKKysgIExhYmVsIHN0YWNrX2RvbmUsIHN0YWNrX292ZXJmbG93Owor KyAgX18gU3ViMzIoYTcsIGE3LCBhMik7CisrICBfXyBCcmFuY2goJnN0YWNrX2RvbmUsIGxlLCBh NywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgeworKyAgICAvLyBDaGVjayBmb3Igc3RhY2sgb3Zl cmZsb3cuCisrICAgIEdlbmVyYXRlX1N0YWNrT3ZlcmZsb3dDaGVjayhtYXNtLCBhNywgYTQsIGE1 LCAmc3RhY2tfb3ZlcmZsb3cpOworKworKyAgICAvLyBGb3J3YXJkIHRoZSBhcmd1bWVudHMgZnJv bSB0aGUgY2FsbGVyIGZyYW1lLgorKyAgICB7CisrICAgICAgTGFiZWwgbG9vcDsKKysgICAgICBf XyBBZGQ2NChhMCwgYTAsIGE3KTsKKysgICAgICBfXyBiaW5kKCZsb29wKTsKKysgICAgICB7Cisr ICAgICAgICBfXyBDYWxjU2NhbGVkQWRkcmVzcyhrU2NyYXRjaFJlZywgYTYsIGE3LCBrUG9pbnRl clNpemVMb2cyKTsKKysgICAgICAgIF9fIExkKGtTY3JhdGNoUmVnLCBNZW1PcGVyYW5kKGtTY3Jh dGNoUmVnLCAxICoga1BvaW50ZXJTaXplKSk7CisrICAgICAgICBfXyBwdXNoKGtTY3JhdGNoUmVn KTsKKysgICAgICAgIF9fIFN1YjMyKGE3LCBhNywgT3BlcmFuZCgxKSk7CisrICAgICAgICBfXyBC cmFuY2goJmxvb3AsIG5lLCBhNywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgICAgIH0KKysgICAg fQorKyAgfQorKyAgX18gQnJhbmNoKCZzdGFja19kb25lKTsKKysgIF9fIGJpbmQoJnN0YWNrX292 ZXJmbG93KTsKKysgIF9fIFRhaWxDYWxsUnVudGltZShSdW50aW1lOjprVGhyb3dTdGFja092ZXJm bG93KTsKKysgIF9fIGJpbmQoJnN0YWNrX2RvbmUpOworKworKyAgLy8gVGFpbC1jYWxsIHRvIHRo ZSB7Y29kZX0gaGFuZGxlci4KKysgIF9fIEp1bXAoY29kZSwgUmVsb2NJbmZvOjpDT0RFX1RBUkdF VCk7CisrfQorKworKy8vIHN0YXRpYworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0NhbGxGdW5j dGlvbihNYWNyb0Fzc2VtYmxlciogbWFzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29udmVydFJlY2VpdmVyTW9kZSBtb2RlKSB7CisrICAvLyAtLS0tLS0tLS0tLSBT IHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGEwIDogdGhlIG51bWJlciBvZiBhcmd1 bWVudHMgKG5vdCBpbmNsdWRpbmcgdGhlIHJlY2VpdmVyKQorKyAgLy8gIC0tIGExIDogdGhlIGZ1 bmN0aW9uIHRvIGNhbGwgKGNoZWNrZWQgdG8gYmUgYSBKU0Z1bmN0aW9uKQorKyAgLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgIF9fIEFzc2VydEZ1bmN0aW9uKGExKTsK KysKKysgIC8vIFNlZSBFUzYgc2VjdGlvbiA5LjIuMSBbW0NhbGxdXSAoIHRoaXNBcmd1bWVudCwg YXJndW1lbnRzTGlzdCkKKysgIC8vIENoZWNrIHRoYXQgZnVuY3Rpb24gaXMgbm90IGEgImNsYXNz Q29uc3RydWN0b3IiLgorKyAgTGFiZWwgY2xhc3NfY29uc3RydWN0b3I7CisrICBfXyBMZChhMiwg RmllbGRNZW1PcGVyYW5kKGExLCBKU0Z1bmN0aW9uOjprU2hhcmVkRnVuY3Rpb25JbmZvT2Zmc2V0 KSk7CisrICBfXyBMd3UoYTMsIEZpZWxkTWVtT3BlcmFuZChhMiwgU2hhcmVkRnVuY3Rpb25JbmZv OjprRmxhZ3NPZmZzZXQpKTsKKysgIF9fIEFuZChrU2NyYXRjaFJlZywgYTMsCisrICAgICAgICAg T3BlcmFuZChTaGFyZWRGdW5jdGlvbkluZm86OklzQ2xhc3NDb25zdHJ1Y3RvckJpdDo6a01hc2sp KTsKKysgIF9fIEJyYW5jaCgmY2xhc3NfY29uc3RydWN0b3IsIG5lLCBrU2NyYXRjaFJlZywgT3Bl cmFuZCh6ZXJvX3JlZykpOworKworKyAgLy8gRW50ZXIgdGhlIGNvbnRleHQgb2YgdGhlIGZ1bmN0 aW9uOyBUb09iamVjdCBoYXMgdG8gcnVuIGluIHRoZSBmdW5jdGlvbgorKyAgLy8gY29udGV4dCwg YW5kIHdlIGFsc28gbmVlZCB0byB0YWtlIHRoZSBnbG9iYWwgcHJveHkgZnJvbSB0aGUgZnVuY3Rp b24KKysgIC8vIGNvbnRleHQgaW4gY2FzZSBvZiBjb252ZXJzaW9uLgorKyAgX18gTGQoY3AsIEZp ZWxkTWVtT3BlcmFuZChhMSwgSlNGdW5jdGlvbjo6a0NvbnRleHRPZmZzZXQpKTsKKysgIC8vIFdl IG5lZWQgdG8gY29udmVydCB0aGUgcmVjZWl2ZXIgZm9yIG5vbi1uYXRpdmUgc2xvcHB5IG1vZGUg ZnVuY3Rpb25zLgorKyAgTGFiZWwgZG9uZV9jb252ZXJ0OworKyAgX18gTHd1KGEzLCBGaWVsZE1l bU9wZXJhbmQoYTIsIFNoYXJlZEZ1bmN0aW9uSW5mbzo6a0ZsYWdzT2Zmc2V0KSk7CisrICBfXyBB bmQoa1NjcmF0Y2hSZWcsIGEzLAorKyAgICAgICAgIE9wZXJhbmQoU2hhcmVkRnVuY3Rpb25JbmZv OjpJc05hdGl2ZUJpdDo6a01hc2sgfAorKyAgICAgICAgICAgICAgICAgU2hhcmVkRnVuY3Rpb25J bmZvOjpJc1N0cmljdEJpdDo6a01hc2spKTsKKysgIF9fIEJyYW5jaCgmZG9uZV9jb252ZXJ0LCBu ZSwga1NjcmF0Y2hSZWcsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgIHsKKysgICAgLy8gLS0tLS0t LS0tLS0gUyB0IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgICAgLy8gIC0tIGEwIDogdGhlIG51bWJl ciBvZiBhcmd1bWVudHMgKG5vdCBpbmNsdWRpbmcgdGhlIHJlY2VpdmVyKQorKyAgICAvLyAgLS0g YTEgOiB0aGUgZnVuY3Rpb24gdG8gY2FsbCAoY2hlY2tlZCB0byBiZSBhIEpTRnVuY3Rpb24pCisr ICAgIC8vICAtLSBhMiA6IHRoZSBzaGFyZWQgZnVuY3Rpb24gaW5mby4KKysgICAgLy8gIC0tIGNw IDogdGhlIGZ1bmN0aW9uIGNvbnRleHQuCisrICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrCisrICAgIGlmIChtb2RlID09IENvbnZlcnRSZWNlaXZlck1vZGU6OmtO dWxsT3JVbmRlZmluZWQpIHsKKysgICAgICAvLyBQYXRjaCByZWNlaXZlciB0byBnbG9iYWwgcHJv eHkuCisrICAgICAgX18gTG9hZEdsb2JhbFByb3h5KGEzKTsKKysgICAgfSBlbHNlIHsKKysgICAg ICBMYWJlbCBjb252ZXJ0X3RvX29iamVjdCwgY29udmVydF9yZWNlaXZlcjsKKysgICAgICBfXyBD YWxjU2NhbGVkQWRkcmVzcyhrU2NyYXRjaFJlZywgc3AsIGEwLCBrUG9pbnRlclNpemVMb2cyKTsK KysgICAgICBfXyBMZChhMywgTWVtT3BlcmFuZChrU2NyYXRjaFJlZykpOworKyAgICAgIF9fIEp1 bXBJZlNtaShhMywgJmNvbnZlcnRfdG9fb2JqZWN0KTsKKysgICAgICBTVEFUSUNfQVNTRVJUKExB U1RfSlNfUkVDRUlWRVJfVFlQRSA9PSBMQVNUX1RZUEUpOworKyAgICAgIF9fIEdldE9iamVjdFR5 cGUoYTMsIGE0LCBhNCk7CisrICAgICAgX18gQnJhbmNoKCZkb25lX2NvbnZlcnQsIFVncmVhdGVy X2VxdWFsLCBhNCwKKysgICAgICAgICAgICAgICAgT3BlcmFuZChGSVJTVF9KU19SRUNFSVZFUl9U WVBFKSk7CisrICAgICAgaWYgKG1vZGUgIT0gQ29udmVydFJlY2VpdmVyTW9kZTo6a05vdE51bGxP clVuZGVmaW5lZCkgeworKyAgICAgICAgTGFiZWwgY29udmVydF9nbG9iYWxfcHJveHk7CisrICAg ICAgICBfXyBKdW1wSWZSb290KGEzLCBSb290SW5kZXg6OmtVbmRlZmluZWRWYWx1ZSwgJmNvbnZl cnRfZ2xvYmFsX3Byb3h5KTsKKysgICAgICAgIF9fIEp1bXBJZk5vdFJvb3QoYTMsIFJvb3RJbmRl eDo6a051bGxWYWx1ZSwgJmNvbnZlcnRfdG9fb2JqZWN0KTsKKysgICAgICAgIF9fIGJpbmQoJmNv bnZlcnRfZ2xvYmFsX3Byb3h5KTsKKysgICAgICAgIHsKKysgICAgICAgICAgLy8gUGF0Y2ggcmVj ZWl2ZXIgdG8gZ2xvYmFsIHByb3h5LgorKyAgICAgICAgICBfXyBMb2FkR2xvYmFsUHJveHkoYTMp OworKyAgICAgICAgfQorKyAgICAgICAgX18gQnJhbmNoKCZjb252ZXJ0X3JlY2VpdmVyKTsKKysg ICAgICB9CisrICAgICAgX18gYmluZCgmY29udmVydF90b19vYmplY3QpOworKyAgICAgIHsKKysg ICAgICAgIC8vIENvbnZlcnQgcmVjZWl2ZXIgdXNpbmcgVG9PYmplY3QuCisrICAgICAgICAvLyBU T0RPKGJtZXVyZXIpOiBJbmxpbmUgdGhlIGFsbG9jYXRpb24gaGVyZSB0byBhdm9pZCBidWlsZGlu ZyB0aGUgZnJhbWUKKysgICAgICAgIC8vIGluIHRoZSBmYXN0IGNhc2U/IChmYWxsIGJhY2sgdG8g QWxsb2NhdGVJbk5ld1NwYWNlPykKKysgICAgICAgIEZyYW1lU2NvcGUgc2NvcGUobWFzbSwgU3Rh Y2tGcmFtZTo6SU5URVJOQUwpOworKyAgICAgICAgX18gU21pVGFnKGEwKTsKKysgICAgICAgIF9f IFB1c2goYTAsIGExKTsKKysgICAgICAgIF9fIE1vdmUoYTAsIGEzKTsKKysgICAgICAgIF9fIFB1 c2goY3ApOworKyAgICAgICAgX18gQ2FsbChCVUlMVElOX0NPREUobWFzbS0+aXNvbGF0ZSgpLCBU b09iamVjdCksCisrICAgICAgICAgICAgICAgIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworKyAg ICAgICAgX18gUG9wKGNwKTsKKysgICAgICAgIF9fIE1vdmUoYTMsIGEwKTsKKysgICAgICAgIF9f IFBvcChhMCwgYTEpOworKyAgICAgICAgX18gU21pVW50YWcoYTApOworKyAgICAgIH0KKysgICAg ICBfXyBMZChhMiwgRmllbGRNZW1PcGVyYW5kKGExLCBKU0Z1bmN0aW9uOjprU2hhcmVkRnVuY3Rp b25JbmZvT2Zmc2V0KSk7CisrICAgICAgX18gYmluZCgmY29udmVydF9yZWNlaXZlcik7CisrICAg IH0KKysgICAgX18gQ2FsY1NjYWxlZEFkZHJlc3Moa1NjcmF0Y2hSZWcsIHNwLCBhMCwga1BvaW50 ZXJTaXplTG9nMik7CisrICAgIF9fIFNkKGEzLCBNZW1PcGVyYW5kKGtTY3JhdGNoUmVnKSk7Cisr ICB9CisrICBfXyBiaW5kKCZkb25lX2NvbnZlcnQpOworKworKyAgLy8gLS0tLS0tLS0tLS0gUyB0 IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgIC8vICAtLSBhMCA6IHRoZSBudW1iZXIgb2YgYXJndW1l bnRzIChub3QgaW5jbHVkaW5nIHRoZSByZWNlaXZlcikKKysgIC8vICAtLSBhMSA6IHRoZSBmdW5j dGlvbiB0byBjYWxsIChjaGVja2VkIHRvIGJlIGEgSlNGdW5jdGlvbikKKysgIC8vICAtLSBhMiA6 IHRoZSBzaGFyZWQgZnVuY3Rpb24gaW5mby4KKysgIC8vICAtLSBjcCA6IHRoZSBmdW5jdGlvbiBj b250ZXh0LgorKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysg IF9fIExodShhMiwKKysgICAgICAgICBGaWVsZE1lbU9wZXJhbmQoYTIsIFNoYXJlZEZ1bmN0aW9u SW5mbzo6a0Zvcm1hbFBhcmFtZXRlckNvdW50T2Zmc2V0KSk7CisrICBfXyBJbnZva2VGdW5jdGlv bkNvZGUoYTEsIG5vX3JlZywgYTIsIGEwLCBKVU1QX0ZVTkNUSU9OKTsKKysKKysgIC8vIFRoZSBm dW5jdGlvbiBpcyBhICJjbGFzc0NvbnN0cnVjdG9yIiwgbmVlZCB0byByYWlzZSBhbiBleGNlcHRp b24uCisrICBfXyBiaW5kKCZjbGFzc19jb25zdHJ1Y3Rvcik7CisrICB7CisrICAgIEZyYW1lU2Nv cGUgZnJhbWUobWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKyAgICBfXyBQdXNoKGExKTsK KysgICAgX18gQ2FsbFJ1bnRpbWUoUnVudGltZTo6a1Rocm93Q29uc3RydWN0b3JOb25DYWxsYWJs ZUVycm9yKTsKKysgIH0KKyt9CisrCisrLy8gc3RhdGljCisrdm9pZCBCdWlsdGluczo6R2VuZXJh dGVfQ2FsbEJvdW5kRnVuY3Rpb25JbXBsKE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICAvLyAt LS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0tLS0tLQorKyAgLy8gIC0tIGEwIDogdGhlIG51 bWJlciBvZiBhcmd1bWVudHMgKG5vdCBpbmNsdWRpbmcgdGhlIHJlY2VpdmVyKQorKyAgLy8gIC0t IGExIDogdGhlIGZ1bmN0aW9uIHRvIGNhbGwgKGNoZWNrZWQgdG8gYmUgYSBKU0JvdW5kRnVuY3Rp b24pCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgX18gQXNz ZXJ0Qm91bmRGdW5jdGlvbihhMSk7CisrCisrICAvLyBQYXRjaCB0aGUgcmVjZWl2ZXIgdG8gW1tC b3VuZFRoaXNdXS4KKysgIHsKKysgICAgX18gTGQoa1NjcmF0Y2hSZWcsIEZpZWxkTWVtT3BlcmFu ZChhMSwgSlNCb3VuZEZ1bmN0aW9uOjprQm91bmRUaGlzT2Zmc2V0KSk7CisrICAgIF9fIENhbGNT Y2FsZWRBZGRyZXNzKGE0LCBzcCwgYTAsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgICBfXyBTZChr U2NyYXRjaFJlZywgTWVtT3BlcmFuZChhNCkpOworKyAgfQorKworKyAgLy8gTG9hZCBbW0JvdW5k QXJndW1lbnRzXV0gaW50byBhMiBhbmQgbGVuZ3RoIG9mIHRoYXQgaW50byBhNC4KKysgIF9fIExk KGEyLCBGaWVsZE1lbU9wZXJhbmQoYTEsIEpTQm91bmRGdW5jdGlvbjo6a0JvdW5kQXJndW1lbnRz T2Zmc2V0KSk7CisrICBfXyBTbWlVbnRhZyhhNCwgRmllbGRNZW1PcGVyYW5kKGEyLCBGaXhlZEFy cmF5OjprTGVuZ3RoT2Zmc2V0KSk7CisrCisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0t LS0tLS0tLS0tLQorKyAgLy8gIC0tIGEwIDogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKG5vdCBp bmNsdWRpbmcgdGhlIHJlY2VpdmVyKQorKyAgLy8gIC0tIGExIDogdGhlIGZ1bmN0aW9uIHRvIGNh bGwgKGNoZWNrZWQgdG8gYmUgYSBKU0JvdW5kRnVuY3Rpb24pCisrICAvLyAgLS0gYTIgOiB0aGUg W1tCb3VuZEFyZ3VtZW50c11dIChpbXBsZW1lbnRlZCBhcyBGaXhlZEFycmF5KQorKyAgLy8gIC0t IGE0IDogdGhlIG51bWJlciBvZiBbW0JvdW5kQXJndW1lbnRzXV0KKysgIC8vIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrICAvLyBSZXNlcnZlIHN0YWNrIHNwYWNlIGZv ciB0aGUgW1tCb3VuZEFyZ3VtZW50c11dLgorKyAgeworKyAgICBMYWJlbCBkb25lOworKyAgICBf XyBTbGw2NChhNSwgYTQsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgICBfXyBTdWI2NChzcCwgc3As IE9wZXJhbmQoYTUpKTsKKysgICAgLy8gQ2hlY2sgdGhlIHN0YWNrIGZvciBvdmVyZmxvdy4gV2Ug YXJlIG5vdCB0cnlpbmcgdG8gY2F0Y2ggaW50ZXJydXB0aW9ucworKyAgICAvLyAoaS5lLiBkZWJ1 ZyBicmVhayBhbmQgcHJlZW1wdGlvbikgaGVyZSwgc28gY2hlY2sgdGhlICJyZWFsIHN0YWNrIGxp bWl0Ii4KKysgICAgTG9hZFN0YWNrTGltaXQobWFzbSwga1NjcmF0Y2hSZWcsIFN0YWNrTGltaXRL aW5kOjprUmVhbFN0YWNrTGltaXQpOworKyAgICBfXyBCcmFuY2goJmRvbmUsIFVncmVhdGVyX2Vx dWFsLCBzcCwgT3BlcmFuZChrU2NyYXRjaFJlZykpOworKyAgICAvLyBSZXN0b3JlIHRoZSBzdGFj ayBwb2ludGVyLgorKyAgICBfXyBBZGQ2NChzcCwgc3AsIE9wZXJhbmQoYTUpKTsKKysgICAgewor KyAgICAgIEZyYW1lU2NvcGUgc2NvcGUobWFzbSwgU3RhY2tGcmFtZTo6TUFOVUFMKTsKKysgICAg ICBfXyBFbnRlckZyYW1lKFN0YWNrRnJhbWU6OklOVEVSTkFMKTsKKysgICAgICBfXyBDYWxsUnVu dGltZShSdW50aW1lOjprVGhyb3dTdGFja092ZXJmbG93KTsKKysgICAgfQorKyAgICBfXyBiaW5k KCZkb25lKTsKKysgIH0KKysKKysgIC8vIFJlbG9jYXRlIGFyZ3VtZW50cyBkb3duIHRoZSBzdGFj ay4KKysgIHsKKysgICAgTGFiZWwgbG9vcCwgZG9uZV9sb29wOworKyAgICBfXyBNb3ZlKGE1LCB6 ZXJvX3JlZyk7CisrICAgIF9fIGJpbmQoJmxvb3ApOworKyAgICBfXyBCcmFuY2goJmRvbmVfbG9v cCwgZ3QsIGE1LCBPcGVyYW5kKGEwKSk7CisrICAgIF9fIENhbGNTY2FsZWRBZGRyZXNzKGE2LCBz cCwgYTQsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgICBfXyBMZChrU2NyYXRjaFJlZywgTWVtT3Bl cmFuZChhNikpOworKyAgICBfXyBDYWxjU2NhbGVkQWRkcmVzcyhhNiwgc3AsIGE1LCBrUG9pbnRl clNpemVMb2cyKTsKKysgICAgX18gU2Qoa1NjcmF0Y2hSZWcsIE1lbU9wZXJhbmQoYTYpKTsKKysg ICAgX18gQWRkNjQoYTQsIGE0LCBPcGVyYW5kKDEpKTsKKysgICAgX18gQWRkNjQoYTUsIGE1LCBP cGVyYW5kKDEpKTsKKysgICAgX18gQnJhbmNoKCZsb29wKTsKKysgICAgX18gYmluZCgmZG9uZV9s b29wKTsKKysgIH0KKysKKysgIC8vIENvcHkgW1tCb3VuZEFyZ3VtZW50c11dIHRvIHRoZSBzdGFj ayAoYmVsb3cgdGhlIGFyZ3VtZW50cykuCisrICB7CisrICAgIExhYmVsIGxvb3AsIGRvbmVfbG9v cDsKKysgICAgX18gU21pVW50YWcoYTQsIEZpZWxkTWVtT3BlcmFuZChhMiwgRml4ZWRBcnJheTo6 a0xlbmd0aE9mZnNldCkpOworKyAgICBfXyBBZGQ2NChhMiwgYTIsIE9wZXJhbmQoRml4ZWRBcnJh eTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZykpOworKyAgICBfXyBiaW5kKCZsb29wKTsK KysgICAgX18gU3ViNjQoYTQsIGE0LCBPcGVyYW5kKDEpKTsKKysgICAgX18gQnJhbmNoKCZkb25l X2xvb3AsIGx0LCBhNCwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgICBfXyBDYWxjU2NhbGVkQWRk cmVzcyhhNSwgYTIsIGE0LCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAgX18gTGQoa1NjcmF0Y2hS ZWcsIE1lbU9wZXJhbmQoYTUpKTsKKysgICAgX18gQ2FsY1NjYWxlZEFkZHJlc3MoYTUsIHNwLCBh MCwga1BvaW50ZXJTaXplTG9nMik7CisrICAgIF9fIFNkKGtTY3JhdGNoUmVnLCBNZW1PcGVyYW5k KGE1KSk7CisrICAgIF9fIEFkZDY0KGEwLCBhMCwgT3BlcmFuZCgxKSk7CisrICAgIF9fIEJyYW5j aCgmbG9vcCk7CisrICAgIF9fIGJpbmQoJmRvbmVfbG9vcCk7CisrICB9CisrCisrICAvLyBDYWxs IHRoZSBbW0JvdW5kVGFyZ2V0RnVuY3Rpb25dXSB2aWEgdGhlIENhbGwgYnVpbHRpbi4KKysgIF9f IExkKGExLCBGaWVsZE1lbU9wZXJhbmQoYTEsIEpTQm91bmRGdW5jdGlvbjo6a0JvdW5kVGFyZ2V0 RnVuY3Rpb25PZmZzZXQpKTsKKysgIF9fIEp1bXAoQlVJTFRJTl9DT0RFKG1hc20tPmlzb2xhdGUo KSwgQ2FsbF9SZWNlaXZlcklzQW55KSwKKysgICAgICAgICAgUmVsb2NJbmZvOjpDT0RFX1RBUkdF VCk7CisrfQorKworKy8vIHN0YXRpYworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0NhbGwoTWFj cm9Bc3NlbWJsZXIqIG1hc20sIENvbnZlcnRSZWNlaXZlck1vZGUgbW9kZSkgeworKyAgLy8gLS0t LS0tLS0tLS0gUyB0IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgIC8vICAtLSBhMCA6IHRoZSBudW1i ZXIgb2YgYXJndW1lbnRzIChub3QgaW5jbHVkaW5nIHRoZSByZWNlaXZlcikKKysgIC8vICAtLSBh MSA6IHRoZSB0YXJnZXQgdG8gY2FsbCAoY2FuIGJlIGFueSBPYmplY3QpLgorKyAgLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysgIExhYmVsIG5vbl9jYWxsYWJsZSwg bm9uX3NtaTsKKysgIF9fIEp1bXBJZlNtaShhMSwgJm5vbl9jYWxsYWJsZSk7CisrICBfXyBiaW5k KCZub25fc21pKTsKKysgIF9fIEdldE9iamVjdFR5cGUoYTEsIHQxLCB0Mik7CisrICBfXyBKdW1w KG1hc20tPmlzb2xhdGUoKS0+YnVpbHRpbnMoKS0+Q2FsbEZ1bmN0aW9uKG1vZGUpLAorKyAgICAg ICAgICBSZWxvY0luZm86OkNPREVfVEFSR0VULCBlcSwgdDIsIE9wZXJhbmQoSlNfRlVOQ1RJT05f VFlQRSkpOworKyAgX18gSnVtcChCVUlMVElOX0NPREUobWFzbS0+aXNvbGF0ZSgpLCBDYWxsQm91 bmRGdW5jdGlvbiksCisrICAgICAgICAgIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQsIGVxLCB0Miwg T3BlcmFuZChKU19CT1VORF9GVU5DVElPTl9UWVBFKSk7CisrCisrICAvLyBDaGVjayBpZiB0YXJn ZXQgaGFzIGEgW1tDYWxsXV0gaW50ZXJuYWwgbWV0aG9kLgorKyAgX18gTGJ1KHQxLCBGaWVsZE1l bU9wZXJhbmQodDEsIE1hcDo6a0JpdEZpZWxkT2Zmc2V0KSk7CisrICBfXyBBbmQodDEsIHQxLCBP cGVyYW5kKE1hcDo6Qml0czE6OklzQ2FsbGFibGVCaXQ6OmtNYXNrKSk7CisrICBfXyBCcmFuY2go Jm5vbl9jYWxsYWJsZSwgZXEsIHQxLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICBfXyBKdW1w KEJVSUxUSU5fQ09ERShtYXNtLT5pc29sYXRlKCksIENhbGxQcm94eSksIFJlbG9jSW5mbzo6Q09E RV9UQVJHRVQsIGVxLAorKyAgICAgICAgICB0MiwgT3BlcmFuZChKU19QUk9YWV9UWVBFKSk7Cisr CisrICAvLyAyLiBDYWxsIHRvIHNvbWV0aGluZyBlbHNlLCB3aGljaCBtaWdodCBoYXZlIGEgW1tD YWxsXV0gaW50ZXJuYWwgbWV0aG9kIChpZgorKyAgLy8gbm90IHdlIHJhaXNlIGFuIGV4Y2VwdGlv bikuCisrICAvLyBPdmVyd3JpdGUgdGhlIG9yaWdpbmFsIHJlY2VpdmVyIHdpdGggdGhlIChvcmln aW5hbCkgdGFyZ2V0LgorKyAgX18gQ2FsY1NjYWxlZEFkZHJlc3Moa1NjcmF0Y2hSZWcsIHNwLCBh MCwga1BvaW50ZXJTaXplTG9nMik7CisrICBfXyBTZChhMSwgTWVtT3BlcmFuZChrU2NyYXRjaFJl ZykpOworKyAgLy8gTGV0IHRoZSAiY2FsbF9hc19mdW5jdGlvbl9kZWxlZ2F0ZSIgdGFrZSBjYXJl IG9mIHRoZSByZXN0LgorKyAgX18gTG9hZE5hdGl2ZUNvbnRleHRTbG90KENvbnRleHQ6OkNBTExf QVNfRlVOQ1RJT05fREVMRUdBVEVfSU5ERVgsIGExKTsKKysgIF9fIEp1bXAobWFzbS0+aXNvbGF0 ZSgpLT5idWlsdGlucygpLT5DYWxsRnVuY3Rpb24oCisrICAgICAgICAgICAgICBDb252ZXJ0UmVj ZWl2ZXJNb2RlOjprTm90TnVsbE9yVW5kZWZpbmVkKSwKKysgICAgICAgICAgUmVsb2NJbmZvOjpD T0RFX1RBUkdFVCk7CisrCisrICAvLyAzLiBDYWxsIHRvIHNvbWV0aGluZyB0aGF0IGlzIG5vdCBj YWxsYWJsZS4KKysgIF9fIGJpbmQoJm5vbl9jYWxsYWJsZSk7CisrICB7CisrICAgIEZyYW1lU2Nv cGUgc2NvcGUobWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKyAgICBfXyBQdXNoKGExKTsK KysgICAgX18gQ2FsbFJ1bnRpbWUoUnVudGltZTo6a1Rocm93Q2FsbGVkTm9uQ2FsbGFibGUpOwor KyAgfQorK30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9Db25zdHJ1Y3RGdW5jdGlvbihN YWNyb0Fzc2VtYmxlciogbWFzbSkgeworKyAgLy8gLS0tLS0tLS0tLS0gUyB0IGEgdCBlIC0tLS0t LS0tLS0tLS0KKysgIC8vICAtLSBhMCA6IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIChub3QgaW5j bHVkaW5nIHRoZSByZWNlaXZlcikKKysgIC8vICAtLSBhMSA6IHRoZSBjb25zdHJ1Y3RvciB0byBj YWxsIChjaGVja2VkIHRvIGJlIGEgSlNGdW5jdGlvbikKKysgIC8vICAtLSBhMyA6IHRoZSBuZXcg dGFyZ2V0IChjaGVja2VkIHRvIGJlIGEgY29uc3RydWN0b3IpCisrICAvLyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgX18gQXNzZXJ0Q29uc3RydWN0b3IoYTEpOworKyAg X18gQXNzZXJ0RnVuY3Rpb24oYTEpOworKworKyAgLy8gQ2FsbGluZyBjb252ZW50aW9uIGZvciBm dW5jdGlvbiBzcGVjaWZpYyBDb25zdHJ1Y3RTdHVicyByZXF1aXJlCisrICAvLyBhMiB0byBjb250 YWluIGVpdGhlciBhbiBBbGxvY2F0aW9uU2l0ZSBvciB1bmRlZmluZWQuCisrICBfXyBMb2FkUm9v dChhMiwgUm9vdEluZGV4OjprVW5kZWZpbmVkVmFsdWUpOworKworKyAgTGFiZWwgY2FsbF9nZW5l cmljX3N0dWI7CisrCisrICAvLyBKdW1wIHRvIEpTQnVpbHRpbnNDb25zdHJ1Y3RTdHViIG9yIEpT Q29uc3RydWN0U3R1YkdlbmVyaWMuCisrICBfXyBMZChhNCwgRmllbGRNZW1PcGVyYW5kKGExLCBK U0Z1bmN0aW9uOjprU2hhcmVkRnVuY3Rpb25JbmZvT2Zmc2V0KSk7CisrICBfXyBMd3UoYTQsIEZp ZWxkTWVtT3BlcmFuZChhNCwgU2hhcmVkRnVuY3Rpb25JbmZvOjprRmxhZ3NPZmZzZXQpKTsKKysg IF9fIEFuZChhNCwgYTQsIE9wZXJhbmQoU2hhcmVkRnVuY3Rpb25JbmZvOjpDb25zdHJ1Y3RBc0J1 aWx0aW5CaXQ6OmtNYXNrKSk7CisrICBfXyBCcmFuY2goJmNhbGxfZ2VuZXJpY19zdHViLCBlcSwg YTQsIE9wZXJhbmQoemVyb19yZWcpKTsKKysKKysgIF9fIEp1bXAoQlVJTFRJTl9DT0RFKG1hc20t Pmlzb2xhdGUoKSwgSlNCdWlsdGluc0NvbnN0cnVjdFN0dWIpLAorKyAgICAgICAgICBSZWxvY0lu Zm86OkNPREVfVEFSR0VUKTsKKysKKysgIF9fIGJpbmQoJmNhbGxfZ2VuZXJpY19zdHViKTsKKysg IF9fIEp1bXAoQlVJTFRJTl9DT0RFKG1hc20tPmlzb2xhdGUoKSwgSlNDb25zdHJ1Y3RTdHViR2Vu ZXJpYyksCisrICAgICAgICAgIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworK30KKysKKysvLyBz dGF0aWMKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9Db25zdHJ1Y3RCb3VuZEZ1bmN0aW9uKE1h Y3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0t LS0tLS0tLQorKyAgLy8gIC0tIGEwIDogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKG5vdCBpbmNs dWRpbmcgdGhlIHJlY2VpdmVyKQorKyAgLy8gIC0tIGExIDogdGhlIGZ1bmN0aW9uIHRvIGNhbGwg KGNoZWNrZWQgdG8gYmUgYSBKU0JvdW5kRnVuY3Rpb24pCisrICAvLyAgLS0gYTMgOiB0aGUgbmV3 IHRhcmdldCAoY2hlY2tlZCB0byBiZSBhIGNvbnN0cnVjdG9yKQorKyAgLy8gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgIF9fIEFzc2VydENvbnN0cnVjdG9yKGExKTsKKysg IF9fIEFzc2VydEJvdW5kRnVuY3Rpb24oYTEpOworKworKyAgLy8gTG9hZCBbW0JvdW5kQXJndW1l bnRzXV0gaW50byBhMiBhbmQgbGVuZ3RoIG9mIHRoYXQgaW50byBhNC4KKysgIF9fIExkKGEyLCBG aWVsZE1lbU9wZXJhbmQoYTEsIEpTQm91bmRGdW5jdGlvbjo6a0JvdW5kQXJndW1lbnRzT2Zmc2V0 KSk7CisrICBfXyBTbWlVbnRhZyhhNCwgRmllbGRNZW1PcGVyYW5kKGEyLCBGaXhlZEFycmF5Ojpr TGVuZ3RoT2Zmc2V0KSk7CisrCisrICAvLyAtLS0tLS0tLS0tLSBTIHQgYSB0IGUgLS0tLS0tLS0t LS0tLQorKyAgLy8gIC0tIGEwIDogdGhlIG51bWJlciBvZiBhcmd1bWVudHMgKG5vdCBpbmNsdWRp bmcgdGhlIHJlY2VpdmVyKQorKyAgLy8gIC0tIGExIDogdGhlIGZ1bmN0aW9uIHRvIGNhbGwgKGNo ZWNrZWQgdG8gYmUgYSBKU0JvdW5kRnVuY3Rpb24pCisrICAvLyAgLS0gYTIgOiB0aGUgW1tCb3Vu ZEFyZ3VtZW50c11dIChpbXBsZW1lbnRlZCBhcyBGaXhlZEFycmF5KQorKyAgLy8gIC0tIGEzIDog dGhlIG5ldyB0YXJnZXQgKGNoZWNrZWQgdG8gYmUgYSBjb25zdHJ1Y3RvcikKKysgIC8vICAtLSBh NCA6IHRoZSBudW1iZXIgb2YgW1tCb3VuZEFyZ3VtZW50c11dCisrICAvLyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworKyAgLy8gUmVzZXJ2ZSBzdGFjayBzcGFjZSBmb3Ig dGhlIFtbQm91bmRBcmd1bWVudHNdXS4KKysgIHsKKysgICAgTGFiZWwgZG9uZTsKKysgICAgX18g U2xsNjQoYTUsIGE0LCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAgX18gU3ViNjQoc3AsIHNwLCBP cGVyYW5kKGE1KSk7CisrICAgIC8vIENoZWNrIHRoZSBzdGFjayBmb3Igb3ZlcmZsb3cuIFdlIGFy ZSBub3QgdHJ5aW5nIHRvIGNhdGNoIGludGVycnVwdGlvbnMKKysgICAgLy8gKGkuZS4gZGVidWcg YnJlYWsgYW5kIHByZWVtcHRpb24pIGhlcmUsIHNvIGNoZWNrIHRoZSAicmVhbCBzdGFjayBsaW1p dCIuCisrICAgIExvYWRTdGFja0xpbWl0KG1hc20sIGtTY3JhdGNoUmVnLCBTdGFja0xpbWl0S2lu ZDo6a1JlYWxTdGFja0xpbWl0KTsKKysgICAgX18gQnJhbmNoKCZkb25lLCBVZ3JlYXRlcl9lcXVh bCwgc3AsIE9wZXJhbmQoa1NjcmF0Y2hSZWcpKTsKKysgICAgLy8gUmVzdG9yZSB0aGUgc3RhY2sg cG9pbnRlci4KKysgICAgX18gQWRkNjQoc3AsIHNwLCBPcGVyYW5kKGE1KSk7CisrICAgIHsKKysg ICAgICBGcmFtZVNjb3BlIHNjb3BlKG1hc20sIFN0YWNrRnJhbWU6Ok1BTlVBTCk7CisrICAgICAg X18gRW50ZXJGcmFtZShTdGFja0ZyYW1lOjpJTlRFUk5BTCk7CisrICAgICAgX18gQ2FsbFJ1bnRp bWUoUnVudGltZTo6a1Rocm93U3RhY2tPdmVyZmxvdyk7CisrICAgIH0KKysgICAgX18gYmluZCgm ZG9uZSk7CisrICB9CisrCisrICAvLyBSZWxvY2F0ZSBhcmd1bWVudHMgZG93biB0aGUgc3RhY2su CisrICB7CisrICAgIExhYmVsIGxvb3AsIGRvbmVfbG9vcDsKKysgICAgX18gTW92ZShhNSwgemVy b19yZWcpOworKyAgICBfXyBiaW5kKCZsb29wKTsKKysgICAgX18gQnJhbmNoKCZkb25lX2xvb3As IGdlLCBhNSwgT3BlcmFuZChhMCkpOworKyAgICBfXyBDYWxjU2NhbGVkQWRkcmVzcyhhNiwgc3As IGE0LCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAgX18gTGQoa1NjcmF0Y2hSZWcsIE1lbU9wZXJh bmQoYTYpKTsKKysgICAgX18gQ2FsY1NjYWxlZEFkZHJlc3MoYTYsIHNwLCBhNSwga1BvaW50ZXJT aXplTG9nMik7CisrICAgIF9fIFNkKGtTY3JhdGNoUmVnLCBNZW1PcGVyYW5kKGE2KSk7CisrICAg IF9fIEFkZDY0KGE0LCBhNCwgT3BlcmFuZCgxKSk7CisrICAgIF9fIEFkZDY0KGE1LCBhNSwgT3Bl cmFuZCgxKSk7CisrICAgIF9fIEJyYW5jaCgmbG9vcCk7CisrICAgIF9fIGJpbmQoJmRvbmVfbG9v cCk7CisrICB9CisrCisrICAvLyBDb3B5IFtbQm91bmRBcmd1bWVudHNdXSB0byB0aGUgc3RhY2sg KGJlbG93IHRoZSBhcmd1bWVudHMpLgorKyAgeworKyAgICBMYWJlbCBsb29wLCBkb25lX2xvb3A7 CisrICAgIF9fIFNtaVVudGFnKGE0LCBGaWVsZE1lbU9wZXJhbmQoYTIsIEZpeGVkQXJyYXk6OmtM ZW5ndGhPZmZzZXQpKTsKKysgICAgX18gQWRkNjQoYTIsIGEyLCBPcGVyYW5kKEZpeGVkQXJyYXk6 OmtIZWFkZXJTaXplIC0ga0hlYXBPYmplY3RUYWcpKTsKKysgICAgX18gYmluZCgmbG9vcCk7Cisr ICAgIF9fIFN1YjY0KGE0LCBhNCwgT3BlcmFuZCgxKSk7CisrICAgIF9fIEJyYW5jaCgmZG9uZV9s b29wLCBsdCwgYTQsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgX18gQ2FsY1NjYWxlZEFkZHJl c3MoYTUsIGEyLCBhNCwga1BvaW50ZXJTaXplTG9nMik7CisrICAgIF9fIExkKGtTY3JhdGNoUmVn LCBNZW1PcGVyYW5kKGE1KSk7CisrICAgIF9fIENhbGNTY2FsZWRBZGRyZXNzKGE1LCBzcCwgYTAs IGtQb2ludGVyU2l6ZUxvZzIpOworKyAgICBfXyBTZChrU2NyYXRjaFJlZywgTWVtT3BlcmFuZChh NSkpOworKyAgICBfXyBBZGQ2NChhMCwgYTAsIE9wZXJhbmQoMSkpOworKyAgICBfXyBCcmFuY2go Jmxvb3ApOworKyAgICBfXyBiaW5kKCZkb25lX2xvb3ApOworKyAgfQorKworKyAgLy8gUGF0Y2gg bmV3LnRhcmdldCB0byBbW0JvdW5kVGFyZ2V0RnVuY3Rpb25dXSBpZiBuZXcudGFyZ2V0IGVxdWFs cyB0YXJnZXQuCisrICB7CisrICAgIExhYmVsIHNraXBfbG9hZDsKKysgICAgX18gQnJhbmNoKCZz a2lwX2xvYWQsIG5lLCBhMSwgT3BlcmFuZChhMykpOworKyAgICBfXyBMZChhMywgRmllbGRNZW1P cGVyYW5kKGExLCBKU0JvdW5kRnVuY3Rpb246OmtCb3VuZFRhcmdldEZ1bmN0aW9uT2Zmc2V0KSk7 CisrICAgIF9fIGJpbmQoJnNraXBfbG9hZCk7CisrICB9CisrCisrICAvLyBDb25zdHJ1Y3QgdGhl IFtbQm91bmRUYXJnZXRGdW5jdGlvbl1dIHZpYSB0aGUgQ29uc3RydWN0IGJ1aWx0aW4uCisrICBf XyBMZChhMSwgRmllbGRNZW1PcGVyYW5kKGExLCBKU0JvdW5kRnVuY3Rpb246OmtCb3VuZFRhcmdl dEZ1bmN0aW9uT2Zmc2V0KSk7CisrICBfXyBKdW1wKEJVSUxUSU5fQ09ERShtYXNtLT5pc29sYXRl KCksIENvbnN0cnVjdCksIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworK30KKysKKysvLyBzdGF0 aWMKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9Db25zdHJ1Y3QoTWFjcm9Bc3NlbWJsZXIqIG1h c20pIHsKKysgIC8vIC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAvLyAg LS0gYTAgOiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAobm90IGluY2x1ZGluZyB0aGUgcmVjZWl2 ZXIpCisrICAvLyAgLS0gYTEgOiB0aGUgY29uc3RydWN0b3IgdG8gY2FsbCAoY2FuIGJlIGFueSBP YmplY3QpCisrICAvLyAgLS0gYTMgOiB0aGUgbmV3IHRhcmdldCAoZWl0aGVyIHRoZSBzYW1lIGFz IHRoZSBjb25zdHJ1Y3RvciBvcgorKyAgLy8gICAgICAgICAgdGhlIEpTRnVuY3Rpb24gb24gd2hp Y2ggbmV3IHdhcyBpbnZva2VkIGluaXRpYWxseSkKKysgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrCisrICAvLyBDaGVjayBpZiB0YXJnZXQgaXMgYSBTbWkuCisrICBM YWJlbCBub25fY29uc3RydWN0b3IsIG5vbl9wcm94eTsKKysgIF9fIEp1bXBJZlNtaShhMSwgJm5v bl9jb25zdHJ1Y3Rvcik7CisrCisrICAvLyBDaGVjayBpZiB0YXJnZXQgaGFzIGEgW1tDb25zdHJ1 Y3RdXSBpbnRlcm5hbCBtZXRob2QuCisrICBfXyBMZCh0MSwgRmllbGRNZW1PcGVyYW5kKGExLCBI ZWFwT2JqZWN0OjprTWFwT2Zmc2V0KSk7CisrICBfXyBMYnUodDQsIEZpZWxkTWVtT3BlcmFuZCh0 MSwgTWFwOjprQml0RmllbGRPZmZzZXQpKTsKKysgIF9fIEFuZCh0NCwgdDQsIE9wZXJhbmQoTWFw OjpCaXRzMTo6SXNDb25zdHJ1Y3RvckJpdDo6a01hc2spKTsKKysgIF9fIEJyYW5jaCgmbm9uX2Nv bnN0cnVjdG9yLCBlcSwgdDQsIE9wZXJhbmQoemVyb19yZWcpKTsKKysKKysgIC8vIERpc3BhdGNo IGJhc2VkIG9uIGluc3RhbmNlIHR5cGUuCisrICBfXyBMaHUodDIsIEZpZWxkTWVtT3BlcmFuZCh0 MSwgTWFwOjprSW5zdGFuY2VUeXBlT2Zmc2V0KSk7CisrICBfXyBKdW1wKEJVSUxUSU5fQ09ERSht YXNtLT5pc29sYXRlKCksIENvbnN0cnVjdEZ1bmN0aW9uKSwKKysgICAgICAgICAgUmVsb2NJbmZv OjpDT0RFX1RBUkdFVCwgZXEsIHQyLCBPcGVyYW5kKEpTX0ZVTkNUSU9OX1RZUEUpKTsKKysKKysg IC8vIE9ubHkgZGlzcGF0Y2ggdG8gYm91bmQgZnVuY3Rpb25zIGFmdGVyIGNoZWNraW5nIHdoZXRo ZXIgdGhleSBhcmUKKysgIC8vIGNvbnN0cnVjdG9ycy4KKysgIF9fIEp1bXAoQlVJTFRJTl9DT0RF KG1hc20tPmlzb2xhdGUoKSwgQ29uc3RydWN0Qm91bmRGdW5jdGlvbiksCisrICAgICAgICAgIFJl bG9jSW5mbzo6Q09ERV9UQVJHRVQsIGVxLCB0MiwgT3BlcmFuZChKU19CT1VORF9GVU5DVElPTl9U WVBFKSk7CisrCisrICAvLyBPbmx5IGRpc3BhdGNoIHRvIHByb3hpZXMgYWZ0ZXIgY2hlY2tpbmcg d2hldGhlciB0aGV5IGFyZSBjb25zdHJ1Y3RvcnMuCisrICBfXyBCcmFuY2goJm5vbl9wcm94eSwg bmUsIHQyLCBPcGVyYW5kKEpTX1BST1hZX1RZUEUpKTsKKysgIF9fIEp1bXAoQlVJTFRJTl9DT0RF KG1hc20tPmlzb2xhdGUoKSwgQ29uc3RydWN0UHJveHkpLAorKyAgICAgICAgICBSZWxvY0luZm86 OkNPREVfVEFSR0VUKTsKKysKKysgIC8vIENhbGxlZCBDb25zdHJ1Y3Qgb24gYW4gZXhvdGljIE9i amVjdCB3aXRoIGEgW1tDb25zdHJ1Y3RdXSBpbnRlcm5hbCBtZXRob2QuCisrICBfXyBiaW5kKCZu b25fcHJveHkpOworKyAgeworKyAgICAvLyBPdmVyd3JpdGUgdGhlIG9yaWdpbmFsIHJlY2VpdmVy IHdpdGggdGhlIChvcmlnaW5hbCkgdGFyZ2V0LgorKyAgICBfXyBDYWxjU2NhbGVkQWRkcmVzcyhr U2NyYXRjaFJlZywgc3AsIGEwLCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAgX18gU2QoYTEsIE1l bU9wZXJhbmQoa1NjcmF0Y2hSZWcpKTsKKysgICAgLy8gTGV0IHRoZSAiY2FsbF9hc19jb25zdHJ1 Y3Rvcl9kZWxlZ2F0ZSIgdGFrZSBjYXJlIG9mIHRoZSByZXN0LgorKyAgICBfXyBMb2FkTmF0aXZl Q29udGV4dFNsb3QoQ29udGV4dDo6Q0FMTF9BU19DT05TVFJVQ1RPUl9ERUxFR0FURV9JTkRFWCwg YTEpOworKyAgICBfXyBKdW1wKG1hc20tPmlzb2xhdGUoKS0+YnVpbHRpbnMoKS0+Q2FsbEZ1bmN0 aW9uKCksCisrICAgICAgICAgICAgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrICB9CisrCisr ICAvLyBDYWxsZWQgQ29uc3RydWN0IG9uIGFuIE9iamVjdCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIFtb Q29uc3RydWN0XV0gaW50ZXJuYWwKKysgIC8vIG1ldGhvZC4KKysgIF9fIGJpbmQoJm5vbl9jb25z dHJ1Y3Rvcik7CisrICBfXyBKdW1wKEJVSUxUSU5fQ09ERShtYXNtLT5pc29sYXRlKCksIENvbnN0 cnVjdGVkTm9uQ29uc3RydWN0YWJsZSksCisrICAgICAgICAgIFJlbG9jSW5mbzo6Q09ERV9UQVJH RVQpOworK30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9Bcmd1bWVudHNBZGFwdG9yVHJh bXBvbGluZShNYWNyb0Fzc2VtYmxlciogbWFzbSkgeworKyAgLy8gU3RhdGUgc2V0dXAgYXMgZXhw ZWN0ZWQgYnkgTWFjcm9Bc3NlbWJsZXI6Okludm9rZVByb2xvZ3VlLgorKyAgLy8gLS0tLS0tLS0t LS0gUyB0IGEgdCBlIC0tLS0tLS0tLS0tLS0KKysgIC8vICAtLSBhMDogYWN0dWFsIGFyZ3VtZW50 cyBjb3VudAorKyAgLy8gIC0tIGExOiBmdW5jdGlvbiAocGFzc2VkIHRocm91Z2ggdG8gY2FsbGVl KQorKyAgLy8gIC0tIGEyOiBleHBlY3RlZCBhcmd1bWVudHMgY291bnQKKysgIC8vICAtLSBhMzog bmV3IHRhcmdldCAocGFzc2VkIHRocm91Z2ggdG8gY2FsbGVlKQorKyAgLy8gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysgIExhYmVsIGludm9rZSwgZG9udF9hZGFwdF9h cmd1bWVudHMsIHN0YWNrX292ZXJmbG93OworKworKyAgTGFiZWwgZW5vdWdoLCB0b29fZmV3Owor KyAgX18gQnJhbmNoKCZkb250X2FkYXB0X2FyZ3VtZW50cywgZXEsIGEyLAorKyAgICAgICAgICAg IE9wZXJhbmQoa0RvbnRBZGFwdEFyZ3VtZW50c1NlbnRpbmVsKSk7CisrICAvLyBXZSB1c2UgVWxl c3MgYXMgdGhlIG51bWJlciBvZiBhcmd1bWVudCBzaG91bGQgYWx3YXlzIGJlIGdyZWF0ZXIgdGhh biAwLgorKyAgX18gQnJhbmNoKCZ0b29fZmV3LCBVbGVzcywgYTAsIE9wZXJhbmQoYTIpKTsKKysK KysgIHsgIC8vIEVub3VnaCBwYXJhbWV0ZXJzOiBhY3R1YWwgPj0gZXhwZWN0ZWQuCisrICAgIC8v IGEwOiBhY3R1YWwgbnVtYmVyIG9mIGFyZ3VtZW50cyBhcyBhIHNtaQorKyAgICAvLyBhMTogZnVu Y3Rpb24KKysgICAgLy8gYTI6IGV4cGVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMKKysgICAgLy8g YTM6IG5ldyB0YXJnZXQgKHBhc3NlZCB0aHJvdWdoIHRvIGNhbGxlZSkKKysgICAgX18gYmluZCgm ZW5vdWdoKTsKKysgICAgRW50ZXJBcmd1bWVudHNBZGFwdG9yRnJhbWUobWFzbSk7CisrICAgIEdl bmVyYXRlX1N0YWNrT3ZlcmZsb3dDaGVjayhtYXNtLCBhMiwgYTUsIGtTY3JhdGNoUmVnLCAmc3Rh Y2tfb3ZlcmZsb3cpOworKworKyAgICAvLyBDYWxjdWxhdGUgY29weSBzdGFydCBhZGRyZXNzIGlu dG8gYTAgYW5kIGNvcHkgZW5kIGFkZHJlc3MgaW50byBhNC4KKysgICAgX18gU21pU2NhbGUoYTAs IGEwLCBrUG9pbnRlclNpemVMb2cyKTsKKysgICAgX18gQWRkNjQoYTAsIGZwLCBhMCk7CisrICAg IC8vIEFkanVzdCBmb3IgcmV0dXJuIGFkZHJlc3MgYW5kIHJlY2VpdmVyLgorKyAgICBfXyBBZGQ2 NChhMCwgYTAsIE9wZXJhbmQoMiAqIGtQb2ludGVyU2l6ZSkpOworKyAgICAvLyBDb21wdXRlIGNv cHkgZW5kIGFkZHJlc3MuCisrICAgIF9fIFNsbDY0KGE0LCBhMiwga1BvaW50ZXJTaXplTG9nMik7 CisrICAgIF9fIFN1YjY0KGE0LCBhMCwgYTQpOworKworKyAgICAvLyBDb3B5IHRoZSBhcmd1bWVu dHMgKGluY2x1ZGluZyB0aGUgcmVjZWl2ZXIpIHRvIHRoZSBuZXcgc3RhY2sgZnJhbWUuCisrICAg IC8vIGEwOiBjb3B5IHN0YXJ0IGFkZHJlc3MKKysgICAgLy8gYTE6IGZ1bmN0aW9uCisrICAgIC8v IGEyOiBleHBlY3RlZCBudW1iZXIgb2YgYXJndW1lbnRzCisrICAgIC8vIGEzOiBuZXcgdGFyZ2V0 IChwYXNzZWQgdGhyb3VnaCB0byBjYWxsZWUpCisrICAgIC8vIGE0OiBjb3B5IGVuZCBhZGRyZXNz CisrCisrICAgIExhYmVsIGNvcHk7CisrICAgIF9fIGJpbmQoJmNvcHkpOworKyAgICBfXyBMZChh NSwgTWVtT3BlcmFuZChhMCkpOworKyAgICBfXyBwdXNoKGE1KTsKKysgICAgX18gQWRkNjQoYTAs IGEwLCAta1BvaW50ZXJTaXplKTsKKysgICAgX18gQnJhbmNoKCZjb3B5LCBnZSwgYTAsIE9wZXJh bmQoYTQpKTsKKysKKysgICAgX18gQnJhbmNoKCZpbnZva2UpOworKyAgfQorKworKyAgeyAgLy8g VG9vIGZldyBwYXJhbWV0ZXJzOiBBY3R1YWwgPCBleHBlY3RlZC4KKysgICAgX18gYmluZCgmdG9v X2Zldyk7CisrICAgIEVudGVyQXJndW1lbnRzQWRhcHRvckZyYW1lKG1hc20pOworKyAgICBHZW5l cmF0ZV9TdGFja092ZXJmbG93Q2hlY2sobWFzbSwgYTIsIGE1LCBrU2NyYXRjaFJlZywgJnN0YWNr X292ZXJmbG93KTsKKysKKysgICAgLy8gQ2FsY3VsYXRlIGNvcHkgc3RhcnQgYWRkcmVzcyBpbnRv IGEwIGFuZCBjb3B5IGVuZCBhZGRyZXNzIGludG8gYTcuCisrICAgIC8vIGEwOiBhY3R1YWwgbnVt YmVyIG9mIGFyZ3VtZW50cyBhcyBhIHNtaQorKyAgICAvLyBhMTogZnVuY3Rpb24KKysgICAgLy8g YTI6IGV4cGVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMKKysgICAgLy8gYTM6IG5ldyB0YXJnZXQg KHBhc3NlZCB0aHJvdWdoIHRvIGNhbGxlZSkKKysgICAgX18gU21pU2NhbGUoYTAsIGEwLCBrUG9p bnRlclNpemVMb2cyKTsKKysgICAgX18gQWRkNjQoYTAsIGZwLCBhMCk7CisrICAgIC8vIEFkanVz dCBmb3IgcmV0dXJuIGFkZHJlc3MgYW5kIHJlY2VpdmVyLgorKyAgICBfXyBBZGQ2NChhMCwgYTAs IE9wZXJhbmQoMiAqIGtQb2ludGVyU2l6ZSkpOworKyAgICAvLyBDb21wdXRlIGNvcHkgZW5kIGFk ZHJlc3MuIEFsc28gYWRqdXN0IGZvciByZXR1cm4gYWRkcmVzcy4KKysgICAgX18gQWRkNjQoYTcs IGZwLCBrUG9pbnRlclNpemUpOworKworKyAgICAvLyBDb3B5IHRoZSBhcmd1bWVudHMgKGluY2x1 ZGluZyB0aGUgcmVjZWl2ZXIpIHRvIHRoZSBuZXcgc3RhY2sgZnJhbWUuCisrICAgIC8vIGEwOiBj b3B5IHN0YXJ0IGFkZHJlc3MKKysgICAgLy8gYTE6IGZ1bmN0aW9uCisrICAgIC8vIGEyOiBleHBl Y3RlZCBudW1iZXIgb2YgYXJndW1lbnRzCisrICAgIC8vIGEzOiBuZXcgdGFyZ2V0IChwYXNzZWQg dGhyb3VnaCB0byBjYWxsZWUpCisrICAgIC8vIGE3OiBjb3B5IGVuZCBhZGRyZXNzCisrICAgIExh YmVsIGNvcHk7CisrICAgIF9fIGJpbmQoJmNvcHkpOworKyAgICBfXyBMZChhNCwgTWVtT3BlcmFu ZChhMCkpOyAgLy8gQWRqdXN0ZWQgYWJvdmUgZm9yIHJldHVybiBhZGRyIGFuZCByZWNlaXZlci4K KysgICAgX18gU3ViNjQoc3AsIHNwLCBrUG9pbnRlclNpemUpOworKyAgICBfXyBTdWI2NChhMCwg YTAsIGtQb2ludGVyU2l6ZSk7CisrICAgIF9fIFNkKGE0LCBNZW1PcGVyYW5kKHNwKSk7CisrICAg IF9fIEJyYW5jaCgmY29weSwgbmUsIGEwLCBPcGVyYW5kKGE3KSk7CisrCisrICAgIC8vIEZpbGwg dGhlIHJlbWFpbmluZyBleHBlY3RlZCBhcmd1bWVudHMgd2l0aCB1bmRlZmluZWQuCisrICAgIC8v IGExOiBmdW5jdGlvbgorKyAgICAvLyBhMjogZXhwZWN0ZWQgbnVtYmVyIG9mIGFyZ3VtZW50cwor KyAgICAvLyBhMzogbmV3IHRhcmdldCAocGFzc2VkIHRocm91Z2ggdG8gY2FsbGVlKQorKyAgICBf XyBMb2FkUm9vdChhNSwgUm9vdEluZGV4OjprVW5kZWZpbmVkVmFsdWUpOworKyAgICBfXyBTbGw2 NChhNiwgYTIsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgICBfXyBTdWI2NChhNCwgZnAsIE9wZXJh bmQoYTYpKTsKKysgICAgLy8gQWRqdXN0IGZvciBmcmFtZS4KKysgICAgX18gU3ViNjQoYTQsIGE0 LAorKyAgICAgICAgICAgICBPcGVyYW5kKEFyZ3VtZW50c0FkYXB0b3JGcmFtZUNvbnN0YW50czo6 a0ZpeGVkRnJhbWVTaXplRnJvbUZwICsKKysgICAgICAgICAgICAgICAgICAgICBrUG9pbnRlclNp emUpKTsKKysKKysgICAgTGFiZWwgZmlsbDsKKysgICAgX18gYmluZCgmZmlsbCk7CisrICAgIF9f IFN1YjY0KHNwLCBzcCwga1BvaW50ZXJTaXplKTsKKysgICAgX18gU2QoYTUsIE1lbU9wZXJhbmQo c3ApKTsKKysgICAgX18gQnJhbmNoKCZmaWxsLCBuZSwgc3AsIE9wZXJhbmQoYTQpKTsKKysgIH0K KysKKysgIC8vIENhbGwgdGhlIGVudHJ5IHBvaW50LgorKyAgX18gYmluZCgmaW52b2tlKTsKKysg IF9fIE1vdmUoYTAsIGEyKTsKKysgIC8vIGEwIDogZXhwZWN0ZWQgbnVtYmVyIG9mIGFyZ3VtZW50 cworKyAgLy8gYTEgOiBmdW5jdGlvbiAocGFzc2VkIHRocm91Z2ggdG8gY2FsbGVlKQorKyAgLy8g YTM6IG5ldyB0YXJnZXQgKHBhc3NlZCB0aHJvdWdoIHRvIGNhbGxlZSkKKysgIHN0YXRpY19hc3Nl cnQoa0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVnaXN0ZXIgPT0gYTIsICJBQkkgbWlzbWF0Y2gi KTsKKysgIF9fIExkKGEyLCBGaWVsZE1lbU9wZXJhbmQoYTEsIEpTRnVuY3Rpb246OmtDb2RlT2Zm c2V0KSk7CisrICBfXyBBZGQ2NChhMiwgYTIsIE9wZXJhbmQoQ29kZTo6a0hlYWRlclNpemUgLSBr SGVhcE9iamVjdFRhZykpOworKyAgX18gQ2FsbChhMik7CisrCisrICAvLyBTdG9yZSBvZmZzZXQg b2YgcmV0dXJuIGFkZHJlc3MgZm9yIGRlb3B0aW1pemVyLgorKyAgbWFzbS0+aXNvbGF0ZSgpLT5o ZWFwKCktPlNldEFyZ3VtZW50c0FkYXB0b3JEZW9wdFBDT2Zmc2V0KG1hc20tPnBjX29mZnNldCgp KTsKKysKKysgIC8vIEV4aXQgZnJhbWUgYW5kIHJldHVybi4KKysgIExlYXZlQXJndW1lbnRzQWRh cHRvckZyYW1lKG1hc20pOworKyAgX18gUmV0KCk7CisrCisrICAvLyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICAvLyBEb24ndCBhZGFwdCBhcmd1bWVudHMu CisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICBf XyBiaW5kKCZkb250X2FkYXB0X2FyZ3VtZW50cyk7CisrICBzdGF0aWNfYXNzZXJ0KGtKYXZhU2Ny aXB0Q2FsbENvZGVTdGFydFJlZ2lzdGVyID09IGEyLCAiQUJJIG1pc21hdGNoIik7CisrICBfXyBM ZChhMiwgRmllbGRNZW1PcGVyYW5kKGExLCBKU0Z1bmN0aW9uOjprQ29kZU9mZnNldCkpOworKyAg X18gQWRkNjQoYTIsIGEyLCBPcGVyYW5kKENvZGU6OmtIZWFkZXJTaXplIC0ga0hlYXBPYmplY3RU YWcpKTsKKysgIF9fIEp1bXAoYTIpOworKworKyAgX18gYmluZCgmc3RhY2tfb3ZlcmZsb3cpOwor KyAgeworKyAgICBGcmFtZVNjb3BlIGZyYW1lKG1hc20sIFN0YWNrRnJhbWU6Ok1BTlVBTCk7Cisr ICAgIF9fIENhbGxSdW50aW1lKFJ1bnRpbWU6OmtUaHJvd1N0YWNrT3ZlcmZsb3cpOworKyAgICBf XyBicmVha18oMHhDQyk7CisrICB9CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX1dh c21Db21waWxlTGF6eShNYWNyb0Fzc2VtYmxlciogbWFzbSkgeworKyAgLy8gVGhlIGZ1bmN0aW9u IGluZGV4IHdhcyBwdXQgaW4gdDAgYnkgdGhlIGp1bXAgdGFibGUgdHJhbXBvbGluZS4KKysgIC8v IENvbnZlcnQgdG8gU21pIGZvciB0aGUgcnVudGltZSBjYWxsCisrICBfXyBTbWlUYWcoa1dhc21D b21waWxlTGF6eUZ1bmNJbmRleFJlZ2lzdGVyKTsKKysgIHsKKysgICAgSGFyZEFib3J0U2NvcGUg aGFyZF9hYm9ydChtYXNtKTsgIC8vIEF2b2lkIGNhbGxzIHRvIEFib3J0LgorKyAgICBGcmFtZVNj b3BlIHNjb3BlKG1hc20sIFN0YWNrRnJhbWU6OldBU01fQ09NUElMRV9MQVpZKTsKKysKKysgICAg Ly8gU2F2ZSBhbGwgcGFyYW1ldGVyIHJlZ2lzdGVycyAoc2VlIGtHcFBhcmFtUmVnaXN0ZXJzIGlu IHdhc20tbGlua2FnZS5jYykuCisrICAgIC8vIFRoZXkgbWlnaHQgYmUgb3ZlcndyaXR0ZW4gaW4g dGhlIHJ1bnRpbWUgY2FsbCBiZWxvdy4gV2UgZG9uJ3QgaGF2ZSBhbnkKKysgICAgLy8gY2FsbGVl LXNhdmVkIHJlZ2lzdGVycyBpbiB3YXNtLCBzbyBubyBuZWVkIHRvIHN0b3JlIGFueXRoaW5nIGVs c2UuCisrICAgIGNvbnN0ZXhwciBSZWdMaXN0IGdwX3JlZ3MgPSBSZWdpc3Rlcjo6TGlzdE9mKGEw LCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKysgICAgY29uc3RleHByIFJlZ0xpc3QgZnBfcmVn cyA9CisrICAgICAgICBEb3VibGVSZWdpc3Rlcjo6TGlzdE9mKGZhMCwgZmExLCBmYTIsIGZhMywg ZmE0LCBmYTUsIGZhNik7CisrICAgIHN0YXRpY19hc3NlcnQoV2FzbUNvbXBpbGVMYXp5RnJhbWVD b25zdGFudHM6OmtOdW1iZXJPZlNhdmVkR3BQYXJhbVJlZ3MgPT0KKysgICAgICAgICAgICAgICAg ICAgICAgYXJyYXlzaXplKHdhc206OmtHcFBhcmFtUmVnaXN0ZXJzKSwKKysgICAgICAgICAgICAg ICAgICAiZnJhbWUgc2l6ZSBtaXNtYXRjaCIpOworKyAgICBzdGF0aWNfYXNzZXJ0KFdhc21Db21w aWxlTGF6eUZyYW1lQ29uc3RhbnRzOjprTnVtYmVyT2ZTYXZlZEZwUGFyYW1SZWdzID09CisrICAg ICAgICAgICAgICAgICAgICAgIGFycmF5c2l6ZSh3YXNtOjprRnBQYXJhbVJlZ2lzdGVycyksCisr ICAgICAgICAgICAgICAgICAgImZyYW1lIHNpemUgbWlzbWF0Y2giKTsKKysgICAgX18gTXVsdGlQ dXNoKGdwX3JlZ3MpOworKyAgICBfXyBNdWx0aVB1c2hGUFUoZnBfcmVncyk7CisrCisrICAgIC8v IFBhc3MgaW5zdGFuY2UgYW5kIGZ1bmN0aW9uIGluZGV4IGFzIGFuIGV4cGxpY2l0IGFyZ3VtZW50 cyB0byB0aGUgcnVudGltZQorKyAgICAvLyBmdW5jdGlvbi4KKysgICAgX18gUHVzaChrV2FzbUlu c3RhbmNlUmVnaXN0ZXIsIGtXYXNtQ29tcGlsZUxhenlGdW5jSW5kZXhSZWdpc3Rlcik7CisrICAg IC8vIEluaXRpYWxpemUgdGhlIEphdmFTY3JpcHQgY29udGV4dCB3aXRoIDAuIENFbnRyeSB3aWxs IHVzZSBpdCB0bworKyAgICAvLyBzZXQgdGhlIGN1cnJlbnQgY29udGV4dCBvbiB0aGUgaXNvbGF0 ZS4KKysgICAgX18gTW92ZShrQ29udGV4dFJlZ2lzdGVyLCBTbWk6Onplcm8oKSk7CisrICAgIF9f IENhbGxSdW50aW1lKFJ1bnRpbWU6OmtXYXNtQ29tcGlsZUxhenksIDIpOworKworKyAgICBfXyBN b3ZlKHMxLCBhMCk7ICAvLyBtb3ZlIHJldHVybiB2YWx1ZSB0byBzMSBzaW5jZSBhMCB3aWxsIGJl IHJlc3RvcmVkIHRvCisrICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBiZWZvcmUg dGhlIGNhbGwKKysKKysgICAgLy8gUmVzdG9yZSByZWdpc3RlcnMuCisrICAgIF9fIE11bHRpUG9w RlBVKGZwX3JlZ3MpOworKyAgICBfXyBNdWx0aVBvcChncF9yZWdzKTsKKysgIH0KKysgIC8vIEZp bmFsbHksIGp1bXAgdG8gdGhlIGVudHJ5cG9pbnQuCisrICBfXyBKdW1wKHMxKTsKKyt9CisrCisr dm9pZCBCdWlsdGluczo6R2VuZXJhdGVfV2FzbURlYnVnQnJlYWsoTWFjcm9Bc3NlbWJsZXIqIG1h c20pIHsKKysgIEhhcmRBYm9ydFNjb3BlIGhhcmRfYWJvcnQobWFzbSk7ICAvLyBBdm9pZCBjYWxs cyB0byBBYm9ydC4KKysgIHsKKysgICAgRnJhbWVTY29wZSBzY29wZShtYXNtLCBTdGFja0ZyYW1l OjpXQVNNX0RFQlVHX0JSRUFLKTsKKysKKysgICAgLy8gU2F2ZSBhbGwgcGFyYW1ldGVyIHJlZ2lz dGVycy4gVGhleSBtaWdodCBob2xkIGxpdmUgdmFsdWVzLCB3ZSByZXN0b3JlCisrICAgIC8vIHRo ZW0gYWZ0ZXIgdGhlIHJ1bnRpbWUgY2FsbC4KKysgICAgX18gTXVsdGlQdXNoKFdhc21EZWJ1Z0Jy ZWFrRnJhbWVDb25zdGFudHM6OmtQdXNoZWRHcFJlZ3MpOworKyAgICBfXyBNdWx0aVB1c2hGUFUo V2FzbURlYnVnQnJlYWtGcmFtZUNvbnN0YW50czo6a1B1c2hlZEZwUmVncyk7CisrCisrICAgIC8v IEluaXRpYWxpemUgdGhlIEphdmFTY3JpcHQgY29udGV4dCB3aXRoIDAuIENFbnRyeSB3aWxsIHVz ZSBpdCB0bworKyAgICAvLyBzZXQgdGhlIGN1cnJlbnQgY29udGV4dCBvbiB0aGUgaXNvbGF0ZS4K KysgICAgX18gTW92ZShjcCwgU21pOjp6ZXJvKCkpOworKyAgICBfXyBDYWxsUnVudGltZShSdW50 aW1lOjprV2FzbURlYnVnQnJlYWssIDApOworKworKyAgICAvLyBSZXN0b3JlIHJlZ2lzdGVycy4K KysgICAgX18gTXVsdGlQb3BGUFUoV2FzbURlYnVnQnJlYWtGcmFtZUNvbnN0YW50czo6a1B1c2hl ZEZwUmVncyk7CisrICAgIF9fIE11bHRpUG9wKFdhc21EZWJ1Z0JyZWFrRnJhbWVDb25zdGFudHM6 OmtQdXNoZWRHcFJlZ3MpOworKyAgfQorKyAgX18gUmV0KCk7CisrfQorKworK3ZvaWQgQnVpbHRp bnM6OkdlbmVyYXRlX0NFbnRyeShNYWNyb0Fzc2VtYmxlciogbWFzbSwgaW50IHJlc3VsdF9zaXpl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYXZlRlBSZWdzTW9kZSBzYXZlX2Rv dWJsZXMsIEFyZ3ZNb2RlIGFyZ3ZfbW9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBidWlsdGluX2V4aXRfZnJhbWUpIHsKKysgIC8vIENhbGxlZCBmcm9tIEphdmFTY3Jp cHQ7IHBhcmFtZXRlcnMgYXJlIG9uIHN0YWNrIGFzIGlmIGNhbGxpbmcgSlMgZnVuY3Rpb24KKysg IC8vIGEwOiBudW1iZXIgb2YgYXJndW1lbnRzIGluY2x1ZGluZyByZWNlaXZlcgorKyAgLy8gYTE6 IHBvaW50ZXIgdG8gYnVpbHRpbiBmdW5jdGlvbgorKyAgLy8gZnA6IGZyYW1lIHBvaW50ZXIgICAg KHJlc3RvcmVkIGFmdGVyIEMgY2FsbCkKKysgIC8vIHNwOiBzdGFjayBwb2ludGVyICAgIChyZXN0 b3JlZCBhcyBjYWxsZWUncyBzcCBhZnRlciBDIGNhbGwpCisrICAvLyBjcDogY3VycmVudCBjb250 ZXh0ICAoQyBjYWxsZWUtc2F2ZWQpCisrICAvLworKyAgLy8gSWYgYXJndl9tb2RlID09IGtBcmd2 SW5SZWdpc3RlcjoKKysgIC8vIGEyOiBwb2ludGVyIHRvIHRoZSBmaXJzdCBhcmd1bWVudAorKwor KyAgaWYgKGFyZ3ZfbW9kZSA9PSBrQXJndkluUmVnaXN0ZXIpIHsKKysgICAgLy8gTW92ZSBhcmd2 IGludG8gdGhlIGNvcnJlY3QgcmVnaXN0ZXIuCisrICAgIF9fIE1vdmUoczEsIGEyKTsKKysgIH0g ZWxzZSB7CisrICAgIC8vIENvbXB1dGUgdGhlIGFyZ3YgcG9pbnRlciBpbiBhIGNhbGxlZS1zYXZl ZCByZWdpc3Rlci4KKysgICAgX18gQ2FsY1NjYWxlZEFkZHJlc3MoczEsIHNwLCBhMCwga1BvaW50 ZXJTaXplTG9nMik7CisrICAgIF9fIFN1YjY0KHMxLCBzMSwga1BvaW50ZXJTaXplKTsKKysgIH0K KysKKysgIC8vIEVudGVyIHRoZSBleGl0IGZyYW1lIHRoYXQgdHJhbnNpdGlvbnMgZnJvbSBKYXZh U2NyaXB0IHRvIEMrKy4KKysgIEZyYW1lU2NvcGUgc2NvcGUobWFzbSwgU3RhY2tGcmFtZTo6TUFO VUFMKTsKKysgIF9fIEVudGVyRXhpdEZyYW1lKAorKyAgICAgIHNhdmVfZG91YmxlcyA9PSBrU2F2 ZUZQUmVncywgMCwKKysgICAgICBidWlsdGluX2V4aXRfZnJhbWUgPyBTdGFja0ZyYW1lOjpCVUlM VElOX0VYSVQgOiBTdGFja0ZyYW1lOjpFWElUKTsKKysKKysgIC8vIHMzOiBudW1iZXIgb2YgYXJn dW1lbnRzICBpbmNsdWRpbmcgcmVjZWl2ZXIgKEMgY2FsbGVlLXNhdmVkKQorKyAgLy8gczE6IHBv aW50ZXIgdG8gZmlyc3QgYXJndW1lbnQgKEMgY2FsbGVlLXNhdmVkKQorKyAgLy8gczI6IHBvaW50 ZXIgdG8gYnVpbHRpbiBmdW5jdGlvbiAoQyBjYWxsZWUtc2F2ZWQpCisrCisrICAvLyBQcmVwYXJl IGFyZ3VtZW50cyBmb3IgQyByb3V0aW5lLgorKyAgLy8gYTAgPSBhcmdjCisrICBfXyBNb3ZlKHMz LCBhMCk7CisrICBfXyBNb3ZlKHMyLCBhMSk7CisrCisrICAvLyBXZSBhcmUgY2FsbGluZyBjb21w aWxlZCBDL0MrKyBjb2RlLiBhMCBhbmQgYTEgaG9sZCBvdXIgdHdvIGFyZ3VtZW50cy4gV2UKKysg IC8vIGFsc28gbmVlZCB0byByZXNlcnZlIHRoZSA0IGFyZ3VtZW50IHNsb3RzIG9uIHRoZSBzdGFj ay4KKysKKysgIF9fIEFzc2VydFN0YWNrSXNBbGlnbmVkKCk7CisrCisrICAvLyBhMCA9IGFyZ2Ms IGExID0gYXJndiwgYTIgPSBpc29sYXRlCisrICBfXyBsaShhMiwgRXh0ZXJuYWxSZWZlcmVuY2U6 Omlzb2xhdGVfYWRkcmVzcyhtYXNtLT5pc29sYXRlKCkpKTsKKysgIF9fIE1vdmUoYTEsIHMxKTsK KysKKysgIF9fIFN0b3JlUmV0dXJuQWRkcmVzc0FuZENhbGwoczIpOworKworKyAgLy8gUmVzdWx0 IHJldHVybmVkIGluIGEwIG9yIGExOmEwIC0gZG8gbm90IGRlc3Ryb3kgdGhlc2UgcmVnaXN0ZXJz IQorKworKyAgLy8gQ2hlY2sgcmVzdWx0IGZvciBleGNlcHRpb24gc2VudGluZWwuCisrICBMYWJl bCBleGNlcHRpb25fcmV0dXJuZWQ7CisrICBfXyBMb2FkUm9vdChhNCwgUm9vdEluZGV4OjprRXhj ZXB0aW9uKTsKKysgIF9fIEJyYW5jaCgmZXhjZXB0aW9uX3JldHVybmVkLCBlcSwgYTQsIE9wZXJh bmQoYTApKTsKKysKKysgIC8vIENoZWNrIHRoYXQgdGhlcmUgaXMgbm8gcGVuZGluZyBleGNlcHRp b24sIG90aGVyd2lzZSB3ZQorKyAgLy8gc2hvdWxkIGhhdmUgcmV0dXJuZWQgdGhlIGV4Y2VwdGlv biBzZW50aW5lbC4KKysgIGlmIChGTEFHX2RlYnVnX2NvZGUpIHsKKysgICAgTGFiZWwgb2theTsK KysgICAgRXh0ZXJuYWxSZWZlcmVuY2UgcGVuZGluZ19leGNlcHRpb25fYWRkcmVzcyA9IEV4dGVy bmFsUmVmZXJlbmNlOjpDcmVhdGUoCisrICAgICAgICBJc29sYXRlQWRkcmVzc0lkOjprUGVuZGlu Z0V4Y2VwdGlvbkFkZHJlc3MsIG1hc20tPmlzb2xhdGUoKSk7CisrICAgIF9fIGxpKGEyLCBwZW5k aW5nX2V4Y2VwdGlvbl9hZGRyZXNzKTsKKysgICAgX18gTGQoYTIsIE1lbU9wZXJhbmQoYTIpKTsK KysgICAgX18gTG9hZFJvb3QoYTQsIFJvb3RJbmRleDo6a1RoZUhvbGVWYWx1ZSk7CisrICAgIC8v IENhbm5vdCB1c2UgY2hlY2sgaGVyZSBhcyBpdCBhdHRlbXB0cyB0byBnZW5lcmF0ZSBjYWxsIGlu dG8gcnVudGltZS4KKysgICAgX18gQnJhbmNoKCZva2F5LCBlcSwgYTQsIE9wZXJhbmQoYTIpKTsK KysgICAgX18gc3RvcCgpOworKyAgICBfXyBiaW5kKCZva2F5KTsKKysgIH0KKysKKysgIC8vIEV4 aXQgQyBmcmFtZSBhbmQgcmV0dXJuLgorKyAgLy8gYTA6YTE6IHJlc3VsdAorKyAgLy8gc3A6IHN0 YWNrIHBvaW50ZXIKKysgIC8vIGZwOiBmcmFtZSBwb2ludGVyCisrICBSZWdpc3RlciBhcmdjID0g YXJndl9tb2RlID09IGtBcmd2SW5SZWdpc3RlcgorKyAgICAgICAgICAgICAgICAgICAgICAvLyBX ZSBkb24ndCB3YW50IHRvIHBvcCBhcmd1bWVudHMgc28gc2V0IGFyZ2MgdG8gbm9fcmVnLgorKyAg ICAgICAgICAgICAgICAgICAgICA/IG5vX3JlZworKyAgICAgICAgICAgICAgICAgICAgICAvLyBz Mzogc3RpbGwgaG9sZHMgYXJnYyAoY2FsbGVlLXNhdmVkKS4KKysgICAgICAgICAgICAgICAgICAg ICAgOiBzMzsKKysgIF9fIExlYXZlRXhpdEZyYW1lKHNhdmVfZG91YmxlcyA9PSBrU2F2ZUZQUmVn cywgYXJnYywgRU1JVF9SRVRVUk4pOworKworKyAgLy8gSGFuZGxpbmcgb2YgZXhjZXB0aW9uLgor KyAgX18gYmluZCgmZXhjZXB0aW9uX3JldHVybmVkKTsKKysKKysgIEV4dGVybmFsUmVmZXJlbmNl IHBlbmRpbmdfaGFuZGxlcl9jb250ZXh0X2FkZHJlc3MgPSBFeHRlcm5hbFJlZmVyZW5jZTo6Q3Jl YXRlKAorKyAgICAgIElzb2xhdGVBZGRyZXNzSWQ6OmtQZW5kaW5nSGFuZGxlckNvbnRleHRBZGRy ZXNzLCBtYXNtLT5pc29sYXRlKCkpOworKyAgRXh0ZXJuYWxSZWZlcmVuY2UgcGVuZGluZ19oYW5k bGVyX2VudHJ5cG9pbnRfYWRkcmVzcyA9CisrICAgICAgRXh0ZXJuYWxSZWZlcmVuY2U6OkNyZWF0 ZSgKKysgICAgICAgICAgSXNvbGF0ZUFkZHJlc3NJZDo6a1BlbmRpbmdIYW5kbGVyRW50cnlwb2lu dEFkZHJlc3MsIG1hc20tPmlzb2xhdGUoKSk7CisrICBFeHRlcm5hbFJlZmVyZW5jZSBwZW5kaW5n X2hhbmRsZXJfZnBfYWRkcmVzcyA9IEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoCisrICAgICAg SXNvbGF0ZUFkZHJlc3NJZDo6a1BlbmRpbmdIYW5kbGVyRlBBZGRyZXNzLCBtYXNtLT5pc29sYXRl KCkpOworKyAgRXh0ZXJuYWxSZWZlcmVuY2UgcGVuZGluZ19oYW5kbGVyX3NwX2FkZHJlc3MgPSBF eHRlcm5hbFJlZmVyZW5jZTo6Q3JlYXRlKAorKyAgICAgIElzb2xhdGVBZGRyZXNzSWQ6OmtQZW5k aW5nSGFuZGxlclNQQWRkcmVzcywgbWFzbS0+aXNvbGF0ZSgpKTsKKysKKysgIC8vIEFzayB0aGUg cnVudGltZSBmb3IgaGVscCB0byBkZXRlcm1pbmUgdGhlIGhhbmRsZXIuIFRoaXMgd2lsbCBzZXQg YTAgdG8KKysgIC8vIGNvbnRhaW4gdGhlIGN1cnJlbnQgcGVuZGluZyBleGNlcHRpb24sIGRvbid0 IGNsb2JiZXIgaXQuCisrICBFeHRlcm5hbFJlZmVyZW5jZSBmaW5kX2hhbmRsZXIgPQorKyAgICAg IEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoUnVudGltZTo6a1Vud2luZEFuZEZpbmRFeGNlcHRp b25IYW5kbGVyKTsKKysgIHsKKysgICAgRnJhbWVTY29wZSBzY29wZShtYXNtLCBTdGFja0ZyYW1l OjpNQU5VQUwpOworKyAgICBfXyBQcmVwYXJlQ2FsbENGdW5jdGlvbigzLCAwLCBhMCk7CisrICAg IF9fIE1vdmUoYTAsIHplcm9fcmVnKTsKKysgICAgX18gTW92ZShhMSwgemVyb19yZWcpOworKyAg ICBfXyBsaShhMiwgRXh0ZXJuYWxSZWZlcmVuY2U6Omlzb2xhdGVfYWRkcmVzcyhtYXNtLT5pc29s YXRlKCkpKTsKKysgICAgX18gQ2FsbENGdW5jdGlvbihmaW5kX2hhbmRsZXIsIDMpOworKyAgfQor KworKyAgLy8gUmV0cmlldmUgdGhlIGhhbmRsZXIgY29udGV4dCwgU1AgYW5kIEZQLgorKyAgX18g bGkoY3AsIHBlbmRpbmdfaGFuZGxlcl9jb250ZXh0X2FkZHJlc3MpOworKyAgX18gTGQoY3AsIE1l bU9wZXJhbmQoY3ApKTsKKysgIF9fIGxpKHNwLCBwZW5kaW5nX2hhbmRsZXJfc3BfYWRkcmVzcyk7 CisrICBfXyBMZChzcCwgTWVtT3BlcmFuZChzcCkpOworKyAgX18gbGkoZnAsIHBlbmRpbmdfaGFu ZGxlcl9mcF9hZGRyZXNzKTsKKysgIF9fIExkKGZwLCBNZW1PcGVyYW5kKGZwKSk7CisrCisrICAv LyBJZiB0aGUgaGFuZGxlciBpcyBhIEpTIGZyYW1lLCByZXN0b3JlIHRoZSBjb250ZXh0IHRvIHRo ZSBmcmFtZS4gTm90ZSB0aGF0CisrICAvLyB0aGUgY29udGV4dCB3aWxsIGJlIHNldCB0byAoY3Ag PT0gMCkgZm9yIG5vbi1KUyBmcmFtZXMuCisrICBMYWJlbCB6ZXJvOworKyAgX18gQnJhbmNoKCZ6 ZXJvLCBlcSwgY3AsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgIF9fIFNkKGNwLCBNZW1PcGVyYW5k KGZwLCBTdGFuZGFyZEZyYW1lQ29uc3RhbnRzOjprQ29udGV4dE9mZnNldCkpOworKyAgX18gYmlu ZCgmemVybyk7CisrCisrICAvLyBSZXNldCB0aGUgbWFza2luZyByZWdpc3Rlci4gVGhpcyBpcyBk b25lIGluZGVwZW5kZW50IG9mIHRoZSB1bmRlcmx5aW5nCisrICAvLyBmZWF0dXJlIGZsYWcge0ZM QUdfdW50cnVzdGVkX2NvZGVfbWl0aWdhdGlvbnN9IHRvIG1ha2UgdGhlIHNuYXBzaG90IHdvcmsK KysgIC8vIHdpdGggYm90aCBjb25maWd1cmF0aW9ucy4gSXQgaXMgc2FmZSB0byBhbHdheXMgZG8g dGhpcywgYmVjYXVzZSB0aGUKKysgIC8vIHVuZGVybHlpbmcgcmVnaXN0ZXIgaXMgY2FsbGVyLXNh dmVkIGFuZCBjYW4gYmUgYXJiaXRyYXJpbHkgY2xvYmJlcmVkLgorKyAgX18gUmVzZXRTcGVjdWxh dGlvblBvaXNvblJlZ2lzdGVyKCk7CisrCisrICAvLyBDb21wdXRlIHRoZSBoYW5kbGVyIGVudHJ5 IGFkZHJlc3MgYW5kIGp1bXAgdG8gaXQuCisrICBfXyBsaSh0NiwgcGVuZGluZ19oYW5kbGVyX2Vu dHJ5cG9pbnRfYWRkcmVzcyk7CisrICBfXyBMZCh0NiwgTWVtT3BlcmFuZCh0NikpOworKyAgX18g SnVtcCh0Nik7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0RvdWJsZVRvSShNYWNy b0Fzc2VtYmxlciogbWFzbSkgeworKyAgTGFiZWwgZG9uZTsKKysgIFJlZ2lzdGVyIHJlc3VsdF9y ZWcgPSB0MDsKKysKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSBHZXRSZWdpc3RlclRoYXRJc05vdE9u ZU9mKHJlc3VsdF9yZWcpOworKyAgUmVnaXN0ZXIgc2NyYXRjaDIgPSBHZXRSZWdpc3RlclRoYXRJ c05vdE9uZU9mKHJlc3VsdF9yZWcsIHNjcmF0Y2gpOworKyAgUmVnaXN0ZXIgc2NyYXRjaDMgPSBH ZXRSZWdpc3RlclRoYXRJc05vdE9uZU9mKHJlc3VsdF9yZWcsIHNjcmF0Y2gsIHNjcmF0Y2gyKTsK KysgIERvdWJsZVJlZ2lzdGVyIGRvdWJsZV9zY3JhdGNoID0ga1NjcmF0Y2hEb3VibGVSZWc7Cisr CisrICAvLyBBY2NvdW50IGZvciBzYXZlZCByZWdzLgorKyAgY29uc3QgaW50IGtBcmd1bWVudE9m ZnNldCA9IDQgKiBrUG9pbnRlclNpemU7CisrCisrICBfXyBQdXNoKHJlc3VsdF9yZWcpOworKyAg X18gUHVzaChzY3JhdGNoLCBzY3JhdGNoMiwgc2NyYXRjaDMpOworKworKyAgLy8gTG9hZCBkb3Vi bGUgaW5wdXQuCisrICBfXyBMb2FkRG91YmxlKGRvdWJsZV9zY3JhdGNoLCBNZW1PcGVyYW5kKHNw LCBrQXJndW1lbnRPZmZzZXQpKTsKKysKKysgIC8vIFRyeSBhIGNvbnZlcnNpb24gdG8gYSBzaWdu ZWQgaW50ZWdlciwgaWYgZXhjZXB0aW9uIG9jY3Vycywgc2NyYXRjaCBpcworKyAgLy8gc2V0IHRv IDAKKysgIF9fIFRydW5jX3dfZChzY3JhdGNoMywgZG91YmxlX3NjcmF0Y2gsIHNjcmF0Y2gpOwor KworKyAgLy8gSWYgd2UgaGFkIG5vIGV4Y2VwdGlvbnMgdGhlbiBzZXQgcmVzdWx0X3JlZyBhbmQg d2UgYXJlIGRvbmUuCisrICBMYWJlbCBlcnJvcjsKKysgIF9fIEJyYW5jaCgmZXJyb3IsIGVxLCBz Y3JhdGNoLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICBfXyBNb3ZlKHJlc3VsdF9yZWcsIHNjcmF0 Y2gzKTsKKysgIF9fIEJyYW5jaCgmZG9uZSk7CisrICBfXyBiaW5kKCZlcnJvcik7CisrCisrICAv LyBMb2FkIHRoZSBkb3VibGUgdmFsdWUgYW5kIHBlcmZvcm0gYSBtYW51YWwgdHJ1bmNhdGlvbi4K KysgIFJlZ2lzdGVyIGlucHV0X2hpZ2ggPSBzY3JhdGNoMjsKKysgIFJlZ2lzdGVyIGlucHV0X2xv dyA9IHNjcmF0Y2gzOworKworKyAgX18gTHcoaW5wdXRfbG93LCBNZW1PcGVyYW5kKHNwLCBrQXJn dW1lbnRPZmZzZXQgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7CisrICBfXyBMdyhpbnB1 dF9oaWdoLAorKyAgICAgICAgTWVtT3BlcmFuZChzcCwga0FyZ3VtZW50T2Zmc2V0ICsgUmVnaXN0 ZXI6OmtFeHBvbmVudE9mZnNldCkpOworKworKyAgTGFiZWwgbm9ybWFsX2V4cG9uZW50OworKyAg Ly8gRXh0cmFjdCB0aGUgYmlhc2VkIGV4cG9uZW50IGluIHJlc3VsdC4KKysgIF9fIEV4dHJhY3RC aXRzKHJlc3VsdF9yZWcsIGlucHV0X2hpZ2gsIEhlYXBOdW1iZXI6OmtFeHBvbmVudFNoaWZ0LAor KyAgICAgICAgICAgICAgICAgSGVhcE51bWJlcjo6a0V4cG9uZW50Qml0cyk7CisrCisrICAvLyBD aGVjayBmb3IgSW5maW5pdHkgYW5kIE5hTnMsIHdoaWNoIHNob3VsZCByZXR1cm4gMC4KKysgIF9f IFN1YjMyKHNjcmF0Y2gsIHJlc3VsdF9yZWcsIEhlYXBOdW1iZXI6OmtFeHBvbmVudE1hc2spOwor KyAgX18gTG9hZFplcm9JZkNvbmRpdGlvblplcm8oCisrICAgICAgcmVzdWx0X3JlZywKKysgICAg ICBzY3JhdGNoKTsgIC8vIHJlc3VsdF9yZWcgPSBzY3JhdGNoID09IDAgPyAwIDogcmVzdWx0X3Jl ZworKyAgX18gQnJhbmNoKCZkb25lLCBlcSwgc2NyYXRjaCwgT3BlcmFuZCh6ZXJvX3JlZykpOwor KworKyAgLy8gRXhwcmVzcyBleHBvbmVudCBhcyBkZWx0YSB0byAobnVtYmVyIG9mIG1hbnRpc3Nh IGJpdHMgKyAzMSkuCisrICBfXyBTdWIzMihyZXN1bHRfcmVnLCByZXN1bHRfcmVnLAorKyAgICAg ICAgICAgT3BlcmFuZChIZWFwTnVtYmVyOjprRXhwb25lbnRCaWFzICsgSGVhcE51bWJlcjo6a01h bnRpc3NhQml0cyArIDMxKSk7CisrCisrICAvLyBJZiB0aGUgZGVsdGEgaXMgc3RyaWN0bHkgcG9z aXRpdmUsIGFsbCBiaXRzIHdvdWxkIGJlIHNoaWZ0ZWQgYXdheSwKKysgIC8vIHdoaWNoIG1lYW5z IHRoYXQgd2UgY2FuIHJldHVybiAwLgorKyAgX18gQnJhbmNoKCZub3JtYWxfZXhwb25lbnQsIGxl LCByZXN1bHRfcmVnLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICBfXyBNb3ZlKHJlc3VsdF9yZWcs IHplcm9fcmVnKTsKKysgIF9fIEJyYW5jaCgmZG9uZSk7CisrCisrICBfXyBiaW5kKCZub3JtYWxf ZXhwb25lbnQpOworKyAgY29uc3QgaW50IGtTaGlmdEJhc2UgPSBIZWFwTnVtYmVyOjprTm9uTWFu dGlzc2FCaXRzSW5Ub3BXb3JkIC0gMTsKKysgIC8vIENhbGN1bGF0ZSBzaGlmdC4KKysgIF9fIEFk ZDMyKHNjcmF0Y2gsIHJlc3VsdF9yZWcsCisrICAgICAgICAgICBPcGVyYW5kKGtTaGlmdEJhc2Ug KyBIZWFwTnVtYmVyOjprTWFudGlzc2FCaXRzKSk7CisrCisrICAvLyBTYXZlIHRoZSBzaWduLgor KyAgUmVnaXN0ZXIgc2lnbiA9IHJlc3VsdF9yZWc7CisrICByZXN1bHRfcmVnID0gbm9fcmVnOwor KyAgX18gQW5kKHNpZ24sIGlucHV0X2hpZ2gsIE9wZXJhbmQoSGVhcE51bWJlcjo6a1NpZ25NYXNr KSk7CisrCisrICAvLyBXZSBtdXN0IHNwZWNpYWxseSBoYW5kbGUgc2hpZnRzIGdyZWF0ZXIgdGhh biAzMS4KKysgIExhYmVsIGhpZ2hfc2hpZnRfbmVlZGVkLCBoaWdoX3NoaWZ0X2RvbmU7CisrICBf XyBCcmFuY2goJmhpZ2hfc2hpZnRfbmVlZGVkLCBsdCwgc2NyYXRjaCwgT3BlcmFuZCgzMikpOwor KyAgX18gTW92ZShpbnB1dF9oaWdoLCB6ZXJvX3JlZyk7CisrICBfXyBCcmFuY2goJmhpZ2hfc2hp ZnRfZG9uZSk7CisrICBfXyBiaW5kKCZoaWdoX3NoaWZ0X25lZWRlZCk7CisrCisrICAvLyBTZXQg dGhlIGltcGxpY2l0IDEgYmVmb3JlIHRoZSBtYW50aXNzYSBwYXJ0IGluIGlucHV0X2hpZ2guCisr ICBfXyBPcihpbnB1dF9oaWdoLCBpbnB1dF9oaWdoLAorKyAgICAgICAgT3BlcmFuZCgxIDw8IEhl YXBOdW1iZXI6OmtNYW50aXNzYUJpdHNJblRvcFdvcmQpKTsKKysgIC8vIFNoaWZ0IHRoZSBtYW50 aXNzYSBiaXRzIHRvIHRoZSBjb3JyZWN0IHBvc2l0aW9uLgorKyAgLy8gV2UgZG9uJ3QgbmVlZCB0 byBjbGVhciBub24tbWFudGlzc2EgYml0cyBhcyB0aGV5IHdpbGwgYmUgc2hpZnRlZCBhd2F5Lgor KyAgLy8gSWYgdGhleSB3ZXJlbid0LCBpdCB3b3VsZCBtZWFuIHRoYXQgdGhlIGFuc3dlciBpcyBp biB0aGUgMzJiaXQgcmFuZ2UuCisrICBfXyBTbGwzMihpbnB1dF9oaWdoLCBpbnB1dF9oaWdoLCBz Y3JhdGNoKTsKKysKKysgIF9fIGJpbmQoJmhpZ2hfc2hpZnRfZG9uZSk7CisrCisrICAvLyBSZXBs YWNlIHRoZSBzaGlmdGVkIGJpdHMgd2l0aCBiaXRzIGZyb20gdGhlIGxvd2VyIG1hbnRpc3NhIHdv cmQuCisrICBMYWJlbCBwb3Nfc2hpZnQsIHNoaWZ0X2RvbmUsIHNpZ25fbmVnYXRpdmU7CisrICBf XyBsaShrU2NyYXRjaFJlZywgMzIpOworKyAgX18gc3VidyhzY3JhdGNoLCBrU2NyYXRjaFJlZywg c2NyYXRjaCk7CisrICBfXyBCcmFuY2goJnBvc19zaGlmdCwgZ2UsIHNjcmF0Y2gsIE9wZXJhbmQo emVyb19yZWcpKTsKKysKKysgIC8vIE5lZ2F0ZSBzY3JhdGNoLgorKyAgX18gU3ViMzIoc2NyYXRj aCwgemVyb19yZWcsIHNjcmF0Y2gpOworKyAgX18gU2xsMzIoaW5wdXRfbG93LCBpbnB1dF9sb3cs IHNjcmF0Y2gpOworKyAgX18gQnJhbmNoKCZzaGlmdF9kb25lKTsKKysKKysgIF9fIGJpbmQoJnBv c19zaGlmdCk7CisrICBfXyBzcmx3KGlucHV0X2xvdywgaW5wdXRfbG93LCBzY3JhdGNoKTsKKysK KysgIF9fIGJpbmQoJnNoaWZ0X2RvbmUpOworKyAgX18gT3IoaW5wdXRfaGlnaCwgaW5wdXRfaGln aCwgT3BlcmFuZChpbnB1dF9sb3cpKTsKKysgIC8vIFJlc3RvcmUgc2lnbiBpZiBuZWNlc3Nhcnku CisrICBfXyBNb3ZlKHNjcmF0Y2gsIHNpZ24pOworKyAgcmVzdWx0X3JlZyA9IHNpZ247CisrICBz aWduID0gbm9fcmVnOworKyAgX18gU3ViMzIocmVzdWx0X3JlZywgemVyb19yZWcsIGlucHV0X2hp Z2gpOworKyAgX18gQnJhbmNoKCZzaWduX25lZ2F0aXZlLCBuZSwgc2NyYXRjaCwgT3BlcmFuZCh6 ZXJvX3JlZykpOworKyAgX18gTW92ZShyZXN1bHRfcmVnLCBpbnB1dF9oaWdoKTsKKysgIF9fIGJp bmQoJnNpZ25fbmVnYXRpdmUpOworKworKyAgX18gYmluZCgmZG9uZSk7CisrCisrICBfXyBTZChy ZXN1bHRfcmVnLCBNZW1PcGVyYW5kKHNwLCBrQXJndW1lbnRPZmZzZXQpKTsKKysgIF9fIFBvcChz Y3JhdGNoLCBzY3JhdGNoMiwgc2NyYXRjaDMpOworKyAgX18gUG9wKHJlc3VsdF9yZWcpOworKyAg X18gUmV0KCk7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRlX0dlbmVyaWNKU1RvV2Fz bVdyYXBwZXIoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIC8vIFRPRE8odjg6MTA3MDEpOiBJ bXBsZW1lbnQgZm9yIHRoaXMgcGxhdGZvcm0uCisrICBfXyBUcmFwKCk7CisrfQorKworK25hbWVz cGFjZSB7CisrCisraW50IEFkZHJlc3NPZmZzZXQoRXh0ZXJuYWxSZWZlcmVuY2UgcmVmMCwgRXh0 ZXJuYWxSZWZlcmVuY2UgcmVmMSkgeworKyAgaW50NjRfdCBvZmZzZXQgPSAocmVmMC5hZGRyZXNz KCkgLSByZWYxLmFkZHJlc3MoKSk7CisrICBEQ0hFQ0soc3RhdGljX2Nhc3Q8aW50PihvZmZzZXQp ID09IG9mZnNldCk7CisrICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihvZmZzZXQpOworK30KKysK KysvLyBDYWxscyBhbiBBUEkgZnVuY3Rpb24uICBBbGxvY2F0ZXMgSGFuZGxlU2NvcGUsIGV4dHJh Y3RzIHJldHVybmVkIHZhbHVlCisrLy8gZnJvbSBoYW5kbGUgYW5kIHByb3BhZ2F0ZXMgZXhjZXB0 aW9ucy4gIFJlc3RvcmVzIGNvbnRleHQuICBzdGFja19zcGFjZQorKy8vIC0gc3BhY2UgdG8gYmUg dW53b3VuZCBvbiBleGl0IChpbmNsdWRlcyB0aGUgY2FsbCBKUyBhcmd1bWVudHMgc3BhY2UgYW5k CisrLy8gdGhlIGFkZGl0aW9uYWwgc3BhY2UgYWxsb2NhdGVkIGZvciB0aGUgZmFzdCBjYWxsKS4K Kyt2b2lkIENhbGxBcGlGdW5jdGlvbkFuZFJldHVybihNYWNyb0Fzc2VtYmxlciogbWFzbSwgUmVn aXN0ZXIgZnVuY3Rpb25fYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF eHRlcm5hbFJlZmVyZW5jZSB0aHVua19yZWYsIGludCBzdGFja19zcGFjZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNZW1PcGVyYW5kKiBzdGFja19zcGFjZV9vcGVyYW5kLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbU9wZXJhbmQgcmV0dXJuX3ZhbHVlX29wZXJh bmQpIHsKKysgIElzb2xhdGUqIGlzb2xhdGUgPSBtYXNtLT5pc29sYXRlKCk7CisrICBFeHRlcm5h bFJlZmVyZW5jZSBuZXh0X2FkZHJlc3MgPQorKyAgICAgIEV4dGVybmFsUmVmZXJlbmNlOjpoYW5k bGVfc2NvcGVfbmV4dF9hZGRyZXNzKGlzb2xhdGUpOworKyAgY29uc3QgaW50IGtOZXh0T2Zmc2V0 ID0gMDsKKysgIGNvbnN0IGludCBrTGltaXRPZmZzZXQgPSBBZGRyZXNzT2Zmc2V0KAorKyAgICAg IEV4dGVybmFsUmVmZXJlbmNlOjpoYW5kbGVfc2NvcGVfbGltaXRfYWRkcmVzcyhpc29sYXRlKSwg bmV4dF9hZGRyZXNzKTsKKysgIGNvbnN0IGludCBrTGV2ZWxPZmZzZXQgPSBBZGRyZXNzT2Zmc2V0 KAorKyAgICAgIEV4dGVybmFsUmVmZXJlbmNlOjpoYW5kbGVfc2NvcGVfbGV2ZWxfYWRkcmVzcyhp c29sYXRlKSwgbmV4dF9hZGRyZXNzKTsKKysKKysgIERDSEVDSyhmdW5jdGlvbl9hZGRyZXNzID09 IGExIHx8IGZ1bmN0aW9uX2FkZHJlc3MgPT0gYTIpOworKworKyAgTGFiZWwgcHJvZmlsZXJfZW5h YmxlZCwgZW5kX3Byb2ZpbGVyX2NoZWNrOworKyAgX18gbGkodDYsIEV4dGVybmFsUmVmZXJlbmNl Ojppc19wcm9maWxpbmdfYWRkcmVzcyhpc29sYXRlKSk7CisrICBfXyBMYih0NiwgTWVtT3BlcmFu ZCh0NiwgMCkpOworKyAgX18gQnJhbmNoKCZwcm9maWxlcl9lbmFibGVkLCBuZSwgdDYsIE9wZXJh bmQoemVyb19yZWcpKTsKKysgIF9fIGxpKHQ2LCBFeHRlcm5hbFJlZmVyZW5jZTo6YWRkcmVzc19v Zl9ydW50aW1lX3N0YXRzX2ZsYWcoKSk7CisrICBfXyBMdyh0NiwgTWVtT3BlcmFuZCh0NiwgMCkp OworKyAgX18gQnJhbmNoKCZwcm9maWxlcl9lbmFibGVkLCBuZSwgdDYsIE9wZXJhbmQoemVyb19y ZWcpKTsKKysgIHsKKysgICAgLy8gQ2FsbCB0aGUgYXBpIGZ1bmN0aW9uIGRpcmVjdGx5LgorKyAg ICBfXyBNb3ZlKHQ2LCBmdW5jdGlvbl9hZGRyZXNzKTsKKysgICAgX18gQnJhbmNoKCZlbmRfcHJv ZmlsZXJfY2hlY2spOworKyAgfQorKworKyAgX18gYmluZCgmcHJvZmlsZXJfZW5hYmxlZCk7Cisr ICB7CisrICAgIC8vIEFkZGl0aW9uYWwgcGFyYW1ldGVyIGlzIHRoZSBhZGRyZXNzIG9mIHRoZSBh Y3R1YWwgY2FsbGJhY2suCisrICAgIF9fIGxpKHQ2LCB0aHVua19yZWYpOworKyAgfQorKyAgX18g YmluZCgmZW5kX3Byb2ZpbGVyX2NoZWNrKTsKKysKKysgIC8vIEFsbG9jYXRlIEhhbmRsZVNjb3Bl IGluIGNhbGxlZS1zYXZlIHJlZ2lzdGVycy4KKysgIF9fIGxpKHM1LCBuZXh0X2FkZHJlc3MpOwor KyAgX18gTGQoczMsIE1lbU9wZXJhbmQoczUsIGtOZXh0T2Zmc2V0KSk7CisrICBfXyBMZChzMSwg TWVtT3BlcmFuZChzNSwga0xpbWl0T2Zmc2V0KSk7CisrICBfXyBMdyhzMiwgTWVtT3BlcmFuZChz NSwga0xldmVsT2Zmc2V0KSk7CisrICBfXyBBZGQzMihzMiwgczIsIE9wZXJhbmQoMSkpOworKyAg X18gU3coczIsIE1lbU9wZXJhbmQoczUsIGtMZXZlbE9mZnNldCkpOworKworKyAgX18gU3RvcmVS ZXR1cm5BZGRyZXNzQW5kQ2FsbCh0Nik7CisrCisrICBMYWJlbCBwcm9tb3RlX3NjaGVkdWxlZF9l eGNlcHRpb247CisrICBMYWJlbCBkZWxldGVfYWxsb2NhdGVkX2hhbmRsZXM7CisrICBMYWJlbCBs ZWF2ZV9leGl0X2ZyYW1lOworKyAgTGFiZWwgcmV0dXJuX3ZhbHVlX2xvYWRlZDsKKysKKysgIC8v IExvYWQgdmFsdWUgZnJvbSBSZXR1cm5WYWx1ZS4KKysgIF9fIExkKGEwLCByZXR1cm5fdmFsdWVf b3BlcmFuZCk7CisrICBfXyBiaW5kKCZyZXR1cm5fdmFsdWVfbG9hZGVkKTsKKysKKysgIC8vIE5v IG1vcmUgdmFsaWQgaGFuZGxlcyAodGhlIHJlc3VsdCBoYW5kbGUgd2FzIHRoZSBsYXN0IG9uZSku IFJlc3RvcmUKKysgIC8vIHByZXZpb3VzIGhhbmRsZSBzY29wZS4KKysgIF9fIFNkKHMzLCBNZW1P cGVyYW5kKHM1LCBrTmV4dE9mZnNldCkpOworKyAgaWYgKF9fIGVtaXRfZGVidWdfY29kZSgpKSB7 CisrICAgIF9fIEx3KGExLCBNZW1PcGVyYW5kKHM1LCBrTGV2ZWxPZmZzZXQpKTsKKysgICAgX18g Q2hlY2soZXEsIEFib3J0UmVhc29uOjprVW5leHBlY3RlZExldmVsQWZ0ZXJSZXR1cm5Gcm9tQXBp Q2FsbCwgYTEsCisrICAgICAgICAgICAgIE9wZXJhbmQoczIpKTsKKysgIH0KKysgIF9fIFN1YjMy KHMyLCBzMiwgT3BlcmFuZCgxKSk7CisrICBfXyBTdyhzMiwgTWVtT3BlcmFuZChzNSwga0xldmVs T2Zmc2V0KSk7CisrICBfXyBMZChrU2NyYXRjaFJlZywgTWVtT3BlcmFuZChzNSwga0xpbWl0T2Zm c2V0KSk7CisrICBfXyBCcmFuY2goJmRlbGV0ZV9hbGxvY2F0ZWRfaGFuZGxlcywgbmUsIHMxLCBP cGVyYW5kKGtTY3JhdGNoUmVnKSk7CisrCisrICAvLyBMZWF2ZSB0aGUgQVBJIGV4aXQgZnJhbWUu CisrICBfXyBiaW5kKCZsZWF2ZV9leGl0X2ZyYW1lKTsKKysKKysgIGlmIChzdGFja19zcGFjZV9v cGVyYW5kID09IG51bGxwdHIpIHsKKysgICAgRENIRUNLX05FKHN0YWNrX3NwYWNlLCAwKTsKKysg ICAgX18gbGkoczMsIE9wZXJhbmQoc3RhY2tfc3BhY2UpKTsKKysgIH0gZWxzZSB7CisrICAgIERD SEVDS19FUShzdGFja19zcGFjZSwgMCk7CisrICAgIFNUQVRJQ19BU1NFUlQoa0NBcmdTbG90Q291 bnQgPT0gMCk7CisrICAgIF9fIExkKHMzLCAqc3RhY2tfc3BhY2Vfb3BlcmFuZCk7CisrICB9Cisr CisrICBzdGF0aWMgY29uc3RleHByIGJvb2wga0RvbnRTYXZlRG91YmxlcyA9IGZhbHNlOworKyAg c3RhdGljIGNvbnN0ZXhwciBib29sIGtSZWdpc3RlckNvbnRhaW5zU2xvdENvdW50ID0gZmFsc2U7 CisrICBfXyBMZWF2ZUV4aXRGcmFtZShrRG9udFNhdmVEb3VibGVzLCBzMywgTk9fRU1JVF9SRVRV Uk4sCisrICAgICAgICAgICAgICAgICAgICBrUmVnaXN0ZXJDb250YWluc1Nsb3RDb3VudCk7Cisr CisrICAvLyBDaGVjayBpZiB0aGUgZnVuY3Rpb24gc2NoZWR1bGVkIGFuIGV4Y2VwdGlvbi4KKysg IF9fIExvYWRSb290KGE0LCBSb290SW5kZXg6OmtUaGVIb2xlVmFsdWUpOworKyAgX18gbGkoa1Nj cmF0Y2hSZWcsIEV4dGVybmFsUmVmZXJlbmNlOjpzY2hlZHVsZWRfZXhjZXB0aW9uX2FkZHJlc3Mo aXNvbGF0ZSkpOworKyAgX18gTGQoYTUsIE1lbU9wZXJhbmQoa1NjcmF0Y2hSZWcpKTsKKysgIF9f IEJyYW5jaCgmcHJvbW90ZV9zY2hlZHVsZWRfZXhjZXB0aW9uLCBuZSwgYTQsIE9wZXJhbmQoYTUp KTsKKysKKysgIF9fIFJldCgpOworKworKyAgLy8gUmUtdGhyb3cgYnkgcHJvbW90aW5nIGEgc2No ZWR1bGVkIGV4Y2VwdGlvbi4KKysgIF9fIGJpbmQoJnByb21vdGVfc2NoZWR1bGVkX2V4Y2VwdGlv bik7CisrICBfXyBUYWlsQ2FsbFJ1bnRpbWUoUnVudGltZTo6a1Byb21vdGVTY2hlZHVsZWRFeGNl cHRpb24pOworKworKyAgLy8gSGFuZGxlU2NvcGUgbGltaXQgaGFzIGNoYW5nZWQuIERlbGV0ZSBh bGxvY2F0ZWQgZXh0ZW5zaW9ucy4KKysgIF9fIGJpbmQoJmRlbGV0ZV9hbGxvY2F0ZWRfaGFuZGxl cyk7CisrICBfXyBTZChzMSwgTWVtT3BlcmFuZChzNSwga0xpbWl0T2Zmc2V0KSk7CisrICBfXyBN b3ZlKHMzLCBhMCk7CisrICBfXyBQcmVwYXJlQ2FsbENGdW5jdGlvbigxLCBzMSk7CisrICBfXyBs aShhMCwgRXh0ZXJuYWxSZWZlcmVuY2U6Omlzb2xhdGVfYWRkcmVzcyhpc29sYXRlKSk7CisrICBf XyBDYWxsQ0Z1bmN0aW9uKEV4dGVybmFsUmVmZXJlbmNlOjpkZWxldGVfaGFuZGxlX3Njb3BlX2V4 dGVuc2lvbnMoKSwgMSk7CisrICBfXyBNb3ZlKGEwLCBzMyk7CisrICBfXyBCcmFuY2goJmxlYXZl X2V4aXRfZnJhbWUpOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2UKKysKKyt2b2lkIEJ1aWx0aW5z OjpHZW5lcmF0ZV9DYWxsQXBpQ2FsbGJhY2soTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIC8v IC0tLS0tLS0tLS0tIFMgdCBhIHQgZSAtLS0tLS0tLS0tLS0tCisrICAvLyAgLS0gY3AgICAgICAg ICAgICAgICAgICA6IGNvbnRleHQKKysgIC8vICAtLSBhMSAgICAgICAgICAgICAgICAgIDogYXBp IGZ1bmN0aW9uIGFkZHJlc3MKKysgIC8vICAtLSBhMiAgICAgICAgICAgICAgICAgIDogYXJndW1l bnRzIGNvdW50IChub3QgaW5jbHVkaW5nIHRoZSByZWNlaXZlcikKKysgIC8vICAtLSBhMyAgICAg ICAgICAgICAgICAgIDogY2FsbCBkYXRhCisrICAvLyAgLS0gYTAgICAgICAgICAgICAgICAgICA6 IGhvbGRlcgorKyAgLy8gIC0tCisrICAvLyAgLS0gc3BbMF0gICAgICAgICAgICAgICA6IGxhc3Qg YXJndW1lbnQKKysgIC8vICAtLSAuLi4KKysgIC8vICAtLSBzcFsoYXJnYyAtIDEpICogOF0gIDog Zmlyc3QgYXJndW1lbnQKKysgIC8vICAtLSBzcFsoYXJnYyArIDApICogOF0gIDogcmVjZWl2ZXIK KysgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrICBSZWdpc3Rl ciBhcGlfZnVuY3Rpb25fYWRkcmVzcyA9IGExOworKyAgUmVnaXN0ZXIgYXJnYyA9IGEyOworKyAg UmVnaXN0ZXIgY2FsbF9kYXRhID0gYTM7CisrICBSZWdpc3RlciBob2xkZXIgPSBhMDsKKysgIFJl Z2lzdGVyIHNjcmF0Y2ggPSB0MDsKKysgIFJlZ2lzdGVyIGJhc2UgPSB0MTsgIC8vIEZvciBhZGRy ZXNzaW5nIE1lbU9wZXJhbmRzIG9uIHRoZSBzdGFjay4KKysKKysgIERDSEVDSyghQXJlQWxpYXNl ZChhcGlfZnVuY3Rpb25fYWRkcmVzcywgYXJnYywgY2FsbF9kYXRhLCBob2xkZXIsIHNjcmF0Y2gs CisrICAgICAgICAgICAgICAgICAgICAgYmFzZSkpOworKworKyAgdXNpbmcgRkNBID0gRnVuY3Rp b25DYWxsYmFja0FyZ3VtZW50czsKKysKKysgIFNUQVRJQ19BU1NFUlQoRkNBOjprQXJnc0xlbmd0 aCA9PSA2KTsKKysgIFNUQVRJQ19BU1NFUlQoRkNBOjprTmV3VGFyZ2V0SW5kZXggPT0gNSk7Cisr ICBTVEFUSUNfQVNTRVJUKEZDQTo6a0RhdGFJbmRleCA9PSA0KTsKKysgIFNUQVRJQ19BU1NFUlQo RkNBOjprUmV0dXJuVmFsdWVPZmZzZXQgPT0gMyk7CisrICBTVEFUSUNfQVNTRVJUKEZDQTo6a1Jl dHVyblZhbHVlRGVmYXVsdFZhbHVlSW5kZXggPT0gMik7CisrICBTVEFUSUNfQVNTRVJUKEZDQTo6 a0lzb2xhdGVJbmRleCA9PSAxKTsKKysgIFNUQVRJQ19BU1NFUlQoRkNBOjprSG9sZGVySW5kZXgg PT0gMCk7CisrCisrICAvLyBTZXQgdXAgRnVuY3Rpb25DYWxsYmFja0luZm8ncyBpbXBsaWNpdF9h cmdzIG9uIHRoZSBzdGFjayBhcyBmb2xsb3dzOgorKyAgLy8KKysgIC8vIFRhcmdldCBzdGF0ZToK KysgIC8vICAgc3BbMCAqIGtQb2ludGVyU2l6ZV06IGtIb2xkZXIKKysgIC8vICAgc3BbMSAqIGtQ b2ludGVyU2l6ZV06IGtJc29sYXRlCisrICAvLyAgIHNwWzIgKiBrUG9pbnRlclNpemVdOiB1bmRl ZmluZWQgKGtSZXR1cm5WYWx1ZURlZmF1bHRWYWx1ZSkKKysgIC8vICAgc3BbMyAqIGtQb2ludGVy U2l6ZV06IHVuZGVmaW5lZCAoa1JldHVyblZhbHVlKQorKyAgLy8gICBzcFs0ICoga1BvaW50ZXJT aXplXToga0RhdGEKKysgIC8vICAgc3BbNSAqIGtQb2ludGVyU2l6ZV06IHVuZGVmaW5lZCAoa05l d1RhcmdldCkKKysKKysgIC8vIFNldCB1cCB0aGUgYmFzZSByZWdpc3RlciBmb3IgYWRkcmVzc2lu ZyB0aHJvdWdoIE1lbU9wZXJhbmRzLiBJdCB3aWxsIHBvaW50CisrICAvLyBhdCB0aGUgcmVjZWl2 ZXIgKGxvY2F0ZWQgYXQgc3AgKyBhcmdjICoga1BvaW50ZXJTaXplKS4KKysgIF9fIENhbGNTY2Fs ZWRBZGRyZXNzKGJhc2UsIHNwLCBhcmdjLCBrUG9pbnRlclNpemVMb2cyKTsKKysKKysgIC8vIFJl c2VydmUgc3BhY2Ugb24gdGhlIHN0YWNrLgorKyAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKEZD QTo6a0FyZ3NMZW5ndGggKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8vIGtIb2xkZXIuCisrICBf XyBTZChob2xkZXIsIE1lbU9wZXJhbmQoc3AsIDAgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8v IGtJc29sYXRlLgorKyAgX18gbGkoc2NyYXRjaCwgRXh0ZXJuYWxSZWZlcmVuY2U6Omlzb2xhdGVf YWRkcmVzcyhtYXNtLT5pc29sYXRlKCkpKTsKKysgIF9fIFNkKHNjcmF0Y2gsIE1lbU9wZXJhbmQo c3AsIDEgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8vIGtSZXR1cm5WYWx1ZURlZmF1bHRWYWx1 ZSBhbmQga1JldHVyblZhbHVlLgorKyAgX18gTG9hZFJvb3Qoc2NyYXRjaCwgUm9vdEluZGV4Ojpr VW5kZWZpbmVkVmFsdWUpOworKyAgX18gU2Qoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgMiAqIGtQ b2ludGVyU2l6ZSkpOworKyAgX18gU2Qoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgMyAqIGtQb2lu dGVyU2l6ZSkpOworKworKyAgLy8ga0RhdGEuCisrICBfXyBTZChjYWxsX2RhdGEsIE1lbU9wZXJh bmQoc3AsIDQgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8vIGtOZXdUYXJnZXQuCisrICBfXyBT ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCA1ICoga1BvaW50ZXJTaXplKSk7CisrCisrICAvLyBL ZWVwIGEgcG9pbnRlciB0byBrSG9sZGVyICg9IGltcGxpY2l0X2FyZ3MpIGluIGEgc2NyYXRjaCBy ZWdpc3Rlci4KKysgIC8vIFdlIHVzZSBpdCBiZWxvdyB0byBzZXQgdXAgdGhlIEZ1bmN0aW9uQ2Fs bGJhY2tJbmZvIG9iamVjdC4KKysgIF9fIE1vdmUoc2NyYXRjaCwgc3ApOworKworKyAgLy8gQWxs b2NhdGUgdGhlIHY4OjpBcmd1bWVudHMgc3RydWN0dXJlIGluIHRoZSBhcmd1bWVudHMnIHNwYWNl IHNpbmNlCisrICAvLyBpdCdzIG5vdCBjb250cm9sbGVkIGJ5IEdDLgorKyAgc3RhdGljIGNvbnN0 ZXhwciBpbnQga0FwaVN0YWNrU3BhY2UgPSA0OworKyAgc3RhdGljIGNvbnN0ZXhwciBib29sIGtE b250U2F2ZURvdWJsZXMgPSBmYWxzZTsKKysgIEZyYW1lU2NvcGUgZnJhbWVfc2NvcGUobWFzbSwg U3RhY2tGcmFtZTo6TUFOVUFMKTsKKysgIF9fIEVudGVyRXhpdEZyYW1lKGtEb250U2F2ZURvdWJs ZXMsIGtBcGlTdGFja1NwYWNlKTsKKysKKysgIC8vIEVudGVyRXhpdEZyYW1lIG1heSBhbGlnbiB0 aGUgc3AuCisrCisrICAvLyBGdW5jdGlvbkNhbGxiYWNrSW5mbzo6aW1wbGljaXRfYXJnc18gKHBv aW50cyBhdCBrSG9sZGVyIGFzIHNldCB1cCBhYm92ZSkuCisrICAvLyBBcmd1bWVudHMgYXJlIGFm dGVyIHRoZSByZXR1cm4gYWRkcmVzcyAocHVzaGVkIGJ5IEVudGVyRXhpdEZyYW1lKCkpLgorKyAg X18gU2Qoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgMSAqIGtQb2ludGVyU2l6ZSkpOworKworKyAg Ly8gRnVuY3Rpb25DYWxsYmFja0luZm86OnZhbHVlc18gKHBvaW50cyBhdCB0aGUgZmlyc3QgdmFy YXJncyBhcmd1bWVudCBwYXNzZWQKKysgIC8vIG9uIHRoZSBzdGFjaykuCisrICBfXyBTdWI2NChz Y3JhdGNoLCBiYXNlLCBPcGVyYW5kKDEgKiBrUG9pbnRlclNpemUpKTsKKysgIF9fIFNkKHNjcmF0 Y2gsIE1lbU9wZXJhbmQoc3AsIDIgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8vIEZ1bmN0aW9u Q2FsbGJhY2tJbmZvOjpsZW5ndGhfLgorKyAgLy8gU3RvcmVkIGFzIGludCBmaWVsZCwgMzItYml0 IGludGVnZXJzIHdpdGhpbiBzdHJ1Y3Qgb24gc3RhY2sgYWx3YXlzIGxlZnQKKysgIC8vIGp1c3Rp ZmllZCBieSBuNjQgQUJJLgorKyAgX18gU3coYXJnYywgTWVtT3BlcmFuZChzcCwgMyAqIGtQb2lu dGVyU2l6ZSkpOworKworKyAgLy8gV2UgYWxzbyBzdG9yZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRv IGRyb3AgZnJvbSB0aGUgc3RhY2sgYWZ0ZXIgcmV0dXJuaW5nCisrICAvLyBmcm9tIHRoZSBBUEkg ZnVuY3Rpb24gaGVyZS4KKysgIC8vIE5vdGU6IFVubGlrZSBvbiBvdGhlciBhcmNoaXRlY3R1cmVz LCB0aGlzIHN0b3JlcyB0aGUgbnVtYmVyIG9mIHNsb3RzIHRvCisrICAvLyBkcm9wLCBub3QgdGhl IG51bWJlciBvZiBieXRlcy4KKysgIF9fIEFkZDY0KHNjcmF0Y2gsIGFyZ2MsIE9wZXJhbmQoRkNB OjprQXJnc0xlbmd0aCArIDEgLyogcmVjZWl2ZXIgKi8pKTsKKysgIF9fIFNkKHNjcmF0Y2gsIE1l bU9wZXJhbmQoc3AsIDQgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8vIHY4OjpJbnZvY2F0aW9u Q2FsbGJhY2sncyBhcmd1bWVudC4KKysgIERDSEVDSyghQXJlQWxpYXNlZChhcGlfZnVuY3Rpb25f YWRkcmVzcywgc2NyYXRjaCwgYTApKTsKKysgIF9fIEFkZDY0KGEwLCBzcCwgT3BlcmFuZCgxICog a1BvaW50ZXJTaXplKSk7CisrCisrICBFeHRlcm5hbFJlZmVyZW5jZSB0aHVua19yZWYgPSBFeHRl cm5hbFJlZmVyZW5jZTo6aW52b2tlX2Z1bmN0aW9uX2NhbGxiYWNrKCk7CisrCisrICAvLyBUaGVy ZSBhcmUgdHdvIHN0YWNrIHNsb3RzIGFib3ZlIHRoZSBhcmd1bWVudHMgd2UgY29uc3RydWN0ZWQg b24gdGhlIHN0YWNrLgorKyAgLy8gVE9ETyhqZ3J1YmVyKTogRG9jdW1lbnQgd2hhdCB0aGVzZSBh cmd1bWVudHMgYXJlLgorKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga1N0YWNrU2xvdHNBYm92ZUZD QSA9IDI7CisrICBNZW1PcGVyYW5kIHJldHVybl92YWx1ZV9vcGVyYW5kKAorKyAgICAgIGZwLCAo a1N0YWNrU2xvdHNBYm92ZUZDQSArIEZDQTo6a1JldHVyblZhbHVlT2Zmc2V0KSAqIGtQb2ludGVy U2l6ZSk7CisrCisrICBzdGF0aWMgY29uc3RleHByIGludCBrVXNlU3RhY2tTcGFjZU9wZXJhbmQg PSAwOworKyAgTWVtT3BlcmFuZCBzdGFja19zcGFjZV9vcGVyYW5kKHNwLCA0ICoga1BvaW50ZXJT aXplKTsKKysKKysgIEFsbG93RXh0ZXJuYWxDYWxsVGhhdENhbnRDYXVzZUdDIHNjb3BlKG1hc20p OworKyAgQ2FsbEFwaUZ1bmN0aW9uQW5kUmV0dXJuKG1hc20sIGFwaV9mdW5jdGlvbl9hZGRyZXNz LCB0aHVua19yZWYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAga1VzZVN0YWNrU3BhY2VP cGVyYW5kLCAmc3RhY2tfc3BhY2Vfb3BlcmFuZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm5fdmFsdWVfb3BlcmFuZCk7CisrfQorKworK3ZvaWQgQnVpbHRpbnM6OkdlbmVyYXRl X0NhbGxBcGlHZXR0ZXIoTWFjcm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIC8vIEJ1aWxkIHY4OjpQ cm9wZXJ0eUNhbGxiYWNrSW5mbzo6YXJnc18gYXJyYXkgb24gdGhlIHN0YWNrIGFuZCBwdXNoIHBy b3BlcnR5CisrICAvLyBuYW1lIGJlbG93IHRoZSBleGl0IGZyYW1lIHRvIG1ha2UgR0MgYXdhcmUg b2YgdGhlbS4KKysgIFNUQVRJQ19BU1NFUlQoUHJvcGVydHlDYWxsYmFja0FyZ3VtZW50czo6a1No b3VsZFRocm93T25FcnJvckluZGV4ID09IDApOworKyAgU1RBVElDX0FTU0VSVChQcm9wZXJ0eUNh bGxiYWNrQXJndW1lbnRzOjprSG9sZGVySW5kZXggPT0gMSk7CisrICBTVEFUSUNfQVNTRVJUKFBy b3BlcnR5Q2FsbGJhY2tBcmd1bWVudHM6OmtJc29sYXRlSW5kZXggPT0gMik7CisrICBTVEFUSUNf QVNTRVJUKFByb3BlcnR5Q2FsbGJhY2tBcmd1bWVudHM6OmtSZXR1cm5WYWx1ZURlZmF1bHRWYWx1 ZUluZGV4ID09IDMpOworKyAgU1RBVElDX0FTU0VSVChQcm9wZXJ0eUNhbGxiYWNrQXJndW1lbnRz OjprUmV0dXJuVmFsdWVPZmZzZXQgPT0gNCk7CisrICBTVEFUSUNfQVNTRVJUKFByb3BlcnR5Q2Fs bGJhY2tBcmd1bWVudHM6OmtEYXRhSW5kZXggPT0gNSk7CisrICBTVEFUSUNfQVNTRVJUKFByb3Bl cnR5Q2FsbGJhY2tBcmd1bWVudHM6OmtUaGlzSW5kZXggPT0gNik7CisrICBTVEFUSUNfQVNTRVJU KFByb3BlcnR5Q2FsbGJhY2tBcmd1bWVudHM6OmtBcmdzTGVuZ3RoID09IDcpOworKworKyAgUmVn aXN0ZXIgcmVjZWl2ZXIgPSBBcGlHZXR0ZXJEZXNjcmlwdG9yOjpSZWNlaXZlclJlZ2lzdGVyKCk7 CisrICBSZWdpc3RlciBob2xkZXIgPSBBcGlHZXR0ZXJEZXNjcmlwdG9yOjpIb2xkZXJSZWdpc3Rl cigpOworKyAgUmVnaXN0ZXIgY2FsbGJhY2sgPSBBcGlHZXR0ZXJEZXNjcmlwdG9yOjpDYWxsYmFj a1JlZ2lzdGVyKCk7CisrICBSZWdpc3RlciBzY3JhdGNoID0gYTQ7CisrICBEQ0hFQ0soIUFyZUFs aWFzZWQocmVjZWl2ZXIsIGhvbGRlciwgY2FsbGJhY2ssIHNjcmF0Y2gpKTsKKysKKysgIFJlZ2lz dGVyIGFwaV9mdW5jdGlvbl9hZGRyZXNzID0gYTI7CisrCisrICAvLyBIZXJlIGFuZCBiZWxvdyAr MSBpcyBmb3IgbmFtZSgpIHB1c2hlZCBhZnRlciB0aGUgYXJnc18gYXJyYXkuCisrICB1c2luZyBQ Q0EgPSBQcm9wZXJ0eUNhbGxiYWNrQXJndW1lbnRzOworKyAgX18gU3ViNjQoc3AsIHNwLCAoUENB OjprQXJnc0xlbmd0aCArIDEpICoga1BvaW50ZXJTaXplKTsKKysgIF9fIFNkKHJlY2VpdmVyLCBN ZW1PcGVyYW5kKHNwLCAoUENBOjprVGhpc0luZGV4ICsgMSkgKiBrUG9pbnRlclNpemUpKTsKKysg IF9fIExkKHNjcmF0Y2gsIEZpZWxkTWVtT3BlcmFuZChjYWxsYmFjaywgQWNjZXNzb3JJbmZvOjpr RGF0YU9mZnNldCkpOworKyAgX18gU2Qoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgKFBDQTo6a0Rh dGFJbmRleCArIDEpICoga1BvaW50ZXJTaXplKSk7CisrICBfXyBMb2FkUm9vdChzY3JhdGNoLCBS b290SW5kZXg6OmtVbmRlZmluZWRWYWx1ZSk7CisrICBfXyBTZChzY3JhdGNoLCBNZW1PcGVyYW5k KHNwLCAoUENBOjprUmV0dXJuVmFsdWVPZmZzZXQgKyAxKSAqIGtQb2ludGVyU2l6ZSkpOworKyAg X18gU2Qoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgKFBDQTo6a1JldHVyblZhbHVlRGVmYXVsdFZh bHVlSW5kZXggKyAxKSAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Bv aW50ZXJTaXplKSk7CisrICBfXyBsaShzY3JhdGNoLCBFeHRlcm5hbFJlZmVyZW5jZTo6aXNvbGF0 ZV9hZGRyZXNzKG1hc20tPmlzb2xhdGUoKSkpOworKyAgX18gU2Qoc2NyYXRjaCwgTWVtT3BlcmFu ZChzcCwgKFBDQTo6a0lzb2xhdGVJbmRleCArIDEpICoga1BvaW50ZXJTaXplKSk7CisrICBfXyBT ZChob2xkZXIsIE1lbU9wZXJhbmQoc3AsIChQQ0E6OmtIb2xkZXJJbmRleCArIDEpICoga1BvaW50 ZXJTaXplKSk7CisrICAvLyBzaG91bGRfdGhyb3dfb25fZXJyb3IgLT4gZmFsc2UKKysgIERDSEVD S19FUSgwLCBTbWk6Onplcm8oKS5wdHIoKSk7CisrICBfXyBTZCh6ZXJvX3JlZywKKysgICAgICAg IE1lbU9wZXJhbmQoc3AsIChQQ0E6OmtTaG91bGRUaHJvd09uRXJyb3JJbmRleCArIDEpICoga1Bv aW50ZXJTaXplKSk7CisrICBfXyBMZChzY3JhdGNoLCBGaWVsZE1lbU9wZXJhbmQoY2FsbGJhY2ss IEFjY2Vzc29ySW5mbzo6a05hbWVPZmZzZXQpKTsKKysgIF9fIFNkKHNjcmF0Y2gsIE1lbU9wZXJh bmQoc3AsIDAgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIC8vIHY4OjpQcm9wZXJ0eUNhbGxiYWNr SW5mbzo6YXJnc18gYXJyYXkgYW5kIG5hbWUgaGFuZGxlLgorKyAgY29uc3QgaW50IGtTdGFja1Vu d2luZFNwYWNlID0gUHJvcGVydHlDYWxsYmFja0FyZ3VtZW50czo6a0FyZ3NMZW5ndGggKyAxOwor KworKyAgLy8gTG9hZCBhZGRyZXNzIG9mIHY4OjpQcm9wZXJ0eUFjY2Vzc29ySW5mbzo6YXJnc18g YXJyYXkgYW5kIG5hbWUgaGFuZGxlLgorKyAgX18gTW92ZShhMCwgc3ApOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGEwID0gSGFuZGxlPE5hbWU+CisrICBfXyBBZGQ2NChhMSwgYTAs IE9wZXJhbmQoMSAqIGtQb2ludGVyU2l6ZSkpOyAgLy8gYTEgPSB2ODo6UENJOjphcmdzXworKwor KyAgY29uc3QgaW50IGtBcGlTdGFja1NwYWNlID0gMTsKKysgIEZyYW1lU2NvcGUgZnJhbWVfc2Nv cGUobWFzbSwgU3RhY2tGcmFtZTo6TUFOVUFMKTsKKysgIF9fIEVudGVyRXhpdEZyYW1lKGZhbHNl LCBrQXBpU3RhY2tTcGFjZSk7CisrCisrICAvLyBDcmVhdGUgdjg6OlByb3BlcnR5Q2FsbGJhY2tJ bmZvIG9iamVjdCBvbiB0aGUgc3RhY2sgYW5kIGluaXRpYWxpemUKKysgIC8vIGl0J3MgYXJnc18g ZmllbGQuCisrICBfXyBTZChhMSwgTWVtT3BlcmFuZChzcCwgMSAqIGtQb2ludGVyU2l6ZSkpOwor KyAgX18gQWRkNjQoYTEsIHNwLCBPcGVyYW5kKDEgKiBrUG9pbnRlclNpemUpKTsKKysgIC8vIGEx ID0gdjg6OlByb3BlcnR5Q2FsbGJhY2tJbmZvJgorKworKyAgRXh0ZXJuYWxSZWZlcmVuY2UgdGh1 bmtfcmVmID0KKysgICAgICBFeHRlcm5hbFJlZmVyZW5jZTo6aW52b2tlX2FjY2Vzc29yX2dldHRl cl9jYWxsYmFjaygpOworKworKyAgX18gTGQoc2NyYXRjaCwgRmllbGRNZW1PcGVyYW5kKGNhbGxi YWNrLCBBY2Nlc3NvckluZm86OmtKc0dldHRlck9mZnNldCkpOworKyAgX18gTGQoYXBpX2Z1bmN0 aW9uX2FkZHJlc3MsCisrICAgICAgICBGaWVsZE1lbU9wZXJhbmQoc2NyYXRjaCwgRm9yZWlnbjo6 a0ZvcmVpZ25BZGRyZXNzT2Zmc2V0KSk7CisrCisrICAvLyArMyBpcyB0byBza2lwIHByb2xvZywg cmV0dXJuIGFkZHJlc3MgYW5kIG5hbWUgaGFuZGxlLgorKyAgTWVtT3BlcmFuZCByZXR1cm5fdmFs dWVfb3BlcmFuZCgKKysgICAgICBmcCwgKFByb3BlcnR5Q2FsbGJhY2tBcmd1bWVudHM6OmtSZXR1 cm5WYWx1ZU9mZnNldCArIDMpICoga1BvaW50ZXJTaXplKTsKKysgIE1lbU9wZXJhbmQqIGNvbnN0 IGtVc2VTdGFja1NwYWNlQ29uc3RhbnQgPSBudWxscHRyOworKyAgQ2FsbEFwaUZ1bmN0aW9uQW5k UmV0dXJuKG1hc20sIGFwaV9mdW5jdGlvbl9hZGRyZXNzLCB0aHVua19yZWYsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAga1N0YWNrVW53aW5kU3BhY2UsIGtVc2VTdGFja1NwYWNlQ29uc3Rh bnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlX29wZXJhbmQpOwor K30KKysKKyt2b2lkIEJ1aWx0aW5zOjpHZW5lcmF0ZV9EaXJlY3RDRW50cnkoTWFjcm9Bc3NlbWJs ZXIqIG1hc20pIHsKKysgIC8vIFRoZSBzb2xlIHB1cnBvc2Ugb2YgRGlyZWN0Q0VudHJ5IGlzIGZv ciBtb3ZhYmxlIGNhbGxlcnMgKGUuZy4gYW55IGdlbmVyYWwKKysgIC8vIHB1cnBvc2UgQ29kZSBv YmplY3QpIHRvIGJlIGFibGUgdG8gY2FsbCBpbnRvIEMgZnVuY3Rpb25zIHRoYXQgbWF5IHRyaWdn ZXIKKysgIC8vIEdDIGFuZCB0aHVzIG1vdmUgdGhlIGNhbGxlci4KKysgIC8vCisrICAvLyBEaXJl Y3RDRW50cnkgcGxhY2VzIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgKHVwZGF0ZWQg YnkgdGhlIEdDKSwKKysgIC8vIG1ha2luZyB0aGUgY2FsbCBHQyBzYWZlLiBUaGUgaXJyZWdleHAg YmFja2VuZCByZWxpZXMgb24gdGhpcy4KKysKKysgIC8vIE1ha2UgcGxhY2UgZm9yIGFyZ3VtZW50 cyB0byBmaXQgQyBjYWxsaW5nIGNvbnZlbnRpb24uIENhbGxlcnMgdXNlCisrICAvLyBFbnRlckV4 aXRGcmFtZS9MZWF2ZUV4aXRGcmFtZSBzbyB0aGV5IGhhbmRsZSBzdGFjayByZXN0b3JpbmcgYW5k IHdlIGRvbid0CisrICAvLyBoYXZlIHRvIGRvIHRoYXQgaGVyZS4gQW55IGNhbGxlciBtdXN0IGRy b3Aga0NBcmdzU2xvdHNTaXplIHN0YWNrIHNwYWNlCisrICAvLyBhZnRlciB0aGUgY2FsbC4KKysg IF9fIEFkZDY0KHNwLCBzcCwgLWtDQXJnc1Nsb3RzU2l6ZSk7CisrCisrICBfXyBTZChyYSwgTWVt T3BlcmFuZChzcCwga0NBcmdzU2xvdHNTaXplKSk7ICAvLyBTdG9yZSB0aGUgcmV0dXJuIGFkZHJl c3MuCisrICBfXyBDYWxsKHQ2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBD YWxsIHRoZSBDKysgZnVuY3Rpb24uCisrICBfXyBMZCh0NiwgTWVtT3BlcmFuZChzcCwga0NBcmdz U2xvdHNTaXplKSk7ICAvLyBSZXR1cm4gdG8gY2FsbGluZyBjb2RlLgorKworKyAgaWYgKEZMQUdf ZGVidWdfY29kZSAmJiBGTEFHX2VuYWJsZV9zbG93X2Fzc2VydHMpIHsKKysgICAgLy8gSW4gY2Fz ZSBvZiBhbiBlcnJvciB0aGUgcmV0dXJuIGFkZHJlc3MgbWF5IHBvaW50IHRvIGEgbWVtb3J5IGFy ZWEKKysgICAgLy8gZmlsbGVkIHdpdGgga1phcFZhbHVlIGJ5IHRoZSBHQy4gRGVyZWZlcmVuY2Ug dGhlIGFkZHJlc3MgYW5kIGNoZWNrIGZvcgorKyAgICAvLyB0aGlzLgorKyAgICBfXyBVbGQoYTQs IE1lbU9wZXJhbmQodDYpKTsKKysgICAgX18gQXNzZXJ0KG5lLCBBYm9ydFJlYXNvbjo6a1JlY2Vp dmVkSW52YWxpZFJldHVybkFkZHJlc3MsIGE0LAorKyAgICAgICAgICAgICAgT3BlcmFuZChyZWlu dGVycHJldF9jYXN0PHVpbnQ2NF90PihrWmFwVmFsdWUpKSk7CisrICB9CisrCisrICBfXyBKdW1w KHQ2KTsKKyt9CisrCisrI3VuZGVmIF9fCisrCisrfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisr fSAgLy8gbmFtZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0 CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS92OC9zcmMvY29kZWdlbi9hc3NlbWJsZXItYXJjaC5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9jb2RlZ2VuL2Fzc2VtYmxlci1hcmNoLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL2Fz c2VtYmxlci1hcmNoLmgKK0BAIC0yMyw2ICsyMywxMCBAQAorICNpbmNsdWRlICJzcmMvY29kZWdl bi9taXBzNjQvYXNzZW1ibGVyLW1pcHM2NC5oIgorICNlbGlmIFY4X1RBUkdFVF9BUkNIX1MzOTAK KyAjaW5jbHVkZSAic3JjL2NvZGVnZW4vczM5MC9hc3NlbWJsZXItczM5MC5oIgorKyNlbGlmIFY4 X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3Nl bWJsZXItcmlzY3Y2NC5oIgorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrI2luY2x1ZGUg InNyYy9jb2RlZ2VuL3Jpc2N2L2Fzc2VtYmxlci1yaXNjdi5oIgorICNlbHNlCisgI2Vycm9yIFVu a25vd24gYXJjaGl0ZWN0dXJlLgorICNlbmRpZgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vYXNzZW1i bGVyLWlubC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4x NS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL2Fzc2VtYmxlci1p bmwuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vYXNzZW1ibGVyLWlubC5oCitAQCAtMjMsNiArMjMsMTAg QEAKKyAjaW5jbHVkZSAic3JjL2NvZGVnZW4vbWlwczY0L2Fzc2VtYmxlci1taXBzNjQtaW5sLmgi CisgI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUzM5MAorICNpbmNsdWRlICJzcmMvY29kZWdlbi9zMzkw L2Fzc2VtYmxlci1zMzkwLWlubC5oIgorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysj aW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXItcmlzY3Y2NC1pbmwuaCIKKysj ZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9yaXNjdi9h c3NlbWJsZXItcmlzY3YtaW5sLmgiCisgI2Vsc2UKKyAjZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1 cmUuCisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9jb25zdGFudHMtYXJjaC5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL2NvbnN0YW50cy1hcmNoLmgKKysrKyBxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Ny Yy9jb2RlZ2VuL2NvbnN0YW50cy1hcmNoLmgKK0BAIC0yMSw2ICsyMSwxMCBAQAorICNpbmNsdWRl ICJzcmMvY29kZWdlbi9zMzkwL2NvbnN0YW50cy1zMzkwLmgiICAvLyBOT0xJTlQKKyAjZWxpZiBW OF9UQVJHRVRfQVJDSF9YNjQKKyAjaW5jbHVkZSAic3JjL2NvZGVnZW4veDY0L2NvbnN0YW50cy14 NjQuaCIgIC8vIE5PTElOVAorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysjaW5jbHVk ZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9jb25zdGFudHMtcmlzY3Y2NC5oIiAgLy8gTk9MSU5UCisr I2VsaWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2 NC9jb25zdGFudHMtcmlzY3YuaCIgIC8vIE5PTElOVAorICNlbHNlCisgI2Vycm9yIFVuc3VwcG9y dGVkIHRhcmdldCBhcmNoaXRlY3R1cmUuCisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZl cnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9j cHUtZmVhdHVyZXMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3Jj LTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9jcHUtZmVh dHVyZXMuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vY3B1LWZlYXR1cmVzLmgKK0BAIC02Nyw2ICs2Nywx MiBAQCBlbnVtIENwdUZlYXR1cmUgeworICAgVkVDVE9SX0VOSEFOQ0VfRkFDSUxJVFlfMSwKKyAg IFZFQ1RPUl9FTkhBTkNFX0ZBQ0lMSVRZXzIsCisgICBNSVNDX0lOU1RSX0VYVDIsCisrCisrLy8g RklYTUUgKFJJU0NWKTogYWRkIGZlYXR1cmVzIGZvciBSSVNDVgorKyNlbGlmIFY4X1RBUkdFVF9B UkNIX1JJU0NWNjQKKysgIEZQVSwKKysgIEZQNjRGUFUsCisrICBSSVNDVl9TSU1ELAorICNlbmRp ZgorIAorICAgTlVNQkVSX09GX0NQVV9GRUFUVVJFUworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0 ZXJuYWwtcmVmZXJlbmNlLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL2V4 dGVybmFsLXJlZmVyZW5jZS5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUu My9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNl LmNjCitAQCAtNTAyLDYgKzUwMiw4IEBAIEV4dGVybmFsUmVmZXJlbmNlIEV4dGVybmFsUmVmZXJl bmNlOjppbnYKKyAjZGVmaW5lIHJlX3N0YWNrX2NoZWNrX2Z1bmMgUmVnRXhwTWFjcm9Bc3NlbWJs ZXJNSVBTOjpDaGVja1N0YWNrR3VhcmRTdGF0ZQorICNlbGlmIFY4X1RBUkdFVF9BUkNIX1MzOTAK KyAjZGVmaW5lIHJlX3N0YWNrX2NoZWNrX2Z1bmMgUmVnRXhwTWFjcm9Bc3NlbWJsZXJTMzkwOjpD aGVja1N0YWNrR3VhcmRTdGF0ZQorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQgfHwgVjhf VEFSR0VUX0FSQ0hfUklTQ1YKKysjZGVmaW5lIHJlX3N0YWNrX2NoZWNrX2Z1bmMgUmVnRXhwTWFj cm9Bc3NlbWJsZXJSSVNDVjo6Q2hlY2tTdGFja0d1YXJkU3RhdGUKKyAjZWxzZQorIFVOUkVBQ0hB QkxFKCk7CisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4z L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9pbnRlcmZhY2UtZGVzY3JpcHRv cnMuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMu b3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vaW50ZXJmYWNlLWRlc2Ny aXB0b3JzLmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9pbnRlcmZhY2UtZGVzY3JpcHRvcnMuY2MKK0BA IC0zOTcsNyArMzk3LDkgQEAgdm9pZCBXYXNtRmxvYXQ2NFRvTnVtYmVyRGVzY3JpcHRvcjo6SW5p dAorIH0KKyAjZW5kaWYgIC8vICFWOF9UQVJHRVRfQVJDSF9JQTMyCisgCistI2lmICFkZWZpbmVk KFY4X1RBUkdFVF9BUkNIX01JUFMpICYmICFkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX01JUFM2NCkK KysvLyBGSVhNRShSSVNDVik6IFJldmlldyB0aGlzIG9uY2UgYXRvbWljcyBhcmUgYWRkZWQKKysj aWYgIWRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfTUlQUykgJiYgIWRlZmluZWQoVjhfVEFSR0VUX0FS Q0hfTUlQUzY0KSAmJiBcCisrICAgICFkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQpICYm ICFkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1JJU0NWKQorIHZvaWQgV2FzbUkzMkF0b21pY1dhaXQz MkRlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAorICAgICBDYWxsSW50ZXJm YWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKyAgIERlZmF1bHRJbml0aWFsaXplUGxhdGZvcm1T cGVjaWZpYyhkYXRhLCBrUGFyYW1ldGVyQ291bnQpOworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vbWFj cm8tYXNzZW1ibGVyLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vbWFjcm8t YXNzZW1ibGVyLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL21hY3JvLWFzc2VtYmxlci5oCitAQCAtNTIs NiArNTIsMTIgQEAgZW51bSBBbGxvY2F0aW9uRmxhZ3MgeworICNlbGlmIFY4X1RBUkdFVF9BUkNI X1MzOTAKKyAjaW5jbHVkZSAic3JjL2NvZGVnZW4vczM5MC9jb25zdGFudHMtczM5MC5oIgorICNp bmNsdWRlICJzcmMvY29kZWdlbi9zMzkwL21hY3JvLWFzc2VtYmxlci1zMzkwLmgiCisrI2VsaWYg VjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NAorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9yaXNjdjY0L2Nv bnN0YW50cy1yaXNjdjY0LmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL3Jpc2N2NjQvbWFjcm8t YXNzZW1ibGVyLXJpc2N2NjQuaCIKKysjZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVgorKyNpbmNs dWRlICJzcmMvY29kZWdlbi9yaXNjdi9jb25zdGFudHMtcmlzY3YuaCIKKysjaW5jbHVkZSAic3Jj L2NvZGVnZW4vcmlzY3YvbWFjcm8tYXNzZW1ibGVyLXJpc2N2LmgiCisgI2Vsc2UKKyAjZXJyb3Ig VW5zdXBwb3J0ZWQgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KKyAjZW5kaWYKK0luZGV4OiBxdHdlYmVu Z2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9j b2RlZ2VuL3JlZ2lzdGVyLWFyY2guaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdl bi9yZWdpc3Rlci1hcmNoLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL3JlZ2lzdGVyLWFyY2guaAorQEAg LTI0LDYgKzI0LDEwIEBACisgI2luY2x1ZGUgInNyYy9jb2RlZ2VuL21pcHM2NC9yZWdpc3Rlci1t aXBzNjQuaCIKKyAjZWxpZiBWOF9UQVJHRVRfQVJDSF9TMzkwCisgI2luY2x1ZGUgInNyYy9jb2Rl Z2VuL3MzOTAvcmVnaXN0ZXItczM5MC5oIgorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQK KysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9yZWdpc3Rlci1yaXNjdjY0LmgiCisrI2Vs aWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3YvcmVn aXN0ZXItcmlzY3YuaCIKKyAjZWxzZQorICNlcnJvciBVbmtub3duIGFyY2hpdGVjdHVyZS4KKyAj ZW5kaWYKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL3JlZ2lzdGVyLWNvbmZpZ3VyYXRpb24uY2MKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmVnaXN0ZXItY29uZmlndXJhdGlvbi5j YworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hy b21pdW0vdjgvc3JjL2NvZGVnZW4vcmVnaXN0ZXItY29uZmlndXJhdGlvbi5jYworQEAgLTY0LDYg KzY0LDggQEAgc3RhdGljIGludCBnZXRfbnVtX2FsbG9jYXRhYmxlX2RvdWJsZV9yZQorICAgICAg IGtNYXhBbGxvY2F0YWJsZURvdWJsZVJlZ2lzdGVyQ291bnQ7CisgI2VsaWYgVjhfVEFSR0VUX0FS Q0hfUzM5MAorICAgICAgIGtNYXhBbGxvY2F0YWJsZURvdWJsZVJlZ2lzdGVyQ291bnQ7CisrI2Vs aWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCB8fCBWOF9UQVJHRVRfQVJDSF9SSVNDVgorKyAgICAg IGtNYXhBbGxvY2F0YWJsZURvdWJsZVJlZ2lzdGVyQ291bnQ7CisgI2Vsc2UKKyAjZXJyb3IgVW5z dXBwb3J0ZWQgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KKyAjZW5kaWYKK0luZGV4OiBxdHdlYmVuZ2lu ZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2Rl Z2VuL3JlbG9jLWluZm8uY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmVs b2MtaW5mby5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmVsb2MtaW5mby5jYworQEAgLTMzMCw3ICsz MzAsOCBAQCBib29sIFJlbG9jSW5mbzo6T2ZmSGVhcFRhcmdldElzQ29kZWRTcGVjCisgICByZXR1 cm4gZmFsc2U7CisgI2VsaWYgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9JQTMyKSB8fCBkZWZpbmVk KFY4X1RBUkdFVF9BUkNIX01JUFMpIHx8IFwKKyAgICAgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9N SVBTNjQpIHx8IGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUFBDKSB8fCAgXAorLSAgICBkZWZpbmVk KFY4X1RBUkdFVF9BUkNIX1BQQzY0KSB8fCBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1MzOTApCisr ICAgIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUFBDNjQpIHx8IGRlZmluZWQoVjhfVEFSR0VUX0FS Q0hfUzM5MCkgfHwgIFwKKysgICAgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9SSVNDVjY0KSB8fCBk ZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1JJU0NWKQorICAgcmV0dXJuIHRydWU7CisgI2VuZGlmCisg fQorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmVsb2MtaW5mby5oCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9jb2RlZ2VuL3JlbG9jLWluZm8uaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUt c3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmVsb2MtaW5m by5oCitAQCAtNjksNyArNjksNyBAQCBjbGFzcyBSZWxvY0luZm8geworICAgICBFWFRFUk5BTF9S RUZFUkVOQ0UsICAvLyBUaGUgYWRkcmVzcyBvZiBhbiBleHRlcm5hbCBDKysgZnVuY3Rpb24uCisg ICAgIElOVEVSTkFMX1JFRkVSRU5DRSwgIC8vIEFuIGFkZHJlc3MgaW5zaWRlIHRoZSBzYW1lIGZ1 bmN0aW9uLgorIAorLSAgICAvLyBFbmNvZGVkIGludGVybmFsIHJlZmVyZW5jZSwgdXNlZCBvbmx5 IG9uIE1JUFMsIE1JUFM2NCBhbmQgUFBDLgorKyAgICAvLyBFbmNvZGVkIGludGVybmFsIHJlZmVy ZW5jZSwgdXNlZCBvbmx5IG9uIFJJU0NWNjQsIE1JUFMsIE1JUFM2NCBhbmQgUFBDLgorICAgICBJ TlRFUk5BTF9SRUZFUkVOQ0VfRU5DT0RFRCwKKyAKKyAgICAgLy8gQW4gb2ZmLWhlYXAgaW5zdHJ1 Y3Rpb24gc3RyZWFtIHRhcmdldC4gU2VlIGh0dHA6Ly9nb28uZ2wvWjJIVWlNLgorSW5kZXg6IHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgv c3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXItcmlzY3Y2NC1pbmwuaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIC9kZXYvbnVsbAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXItcmlzY3Y2 NC1pbmwuaAorQEAgLTAsMCArMSwyNDcgQEAKKysKKysvLyBDb3B5cmlnaHQgKGMpIDE5OTQtMjAw NiBTdW4gTWljcm9zeXN0ZW1zIEluYy4KKysvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgorKy8vCisr Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0 aCBvciB3aXRob3V0CisrLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorKy8vIG1ldDoKKysvLworKy8vIC0gUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlLAorKy8vIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIuCisrLy8KKysvLyAtIFJlZGlzdHJpYnV0aW9uIGluIGJpbmFyeSBmb3JtIG11 c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKysvLyBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisrLy8gZG9j dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry aWJ1dGlvbi4KKysvLworKy8vIC0gTmVpdGhlciB0aGUgbmFtZSBvZiBTdW4gTWljcm9zeXN0ZW1z IG9yIHRoZSBuYW1lcyBvZiBjb250cmlidXRvcnMgbWF5CisrLy8gYmUgdXNlZCB0byBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAor Ky8vIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKysvLworKy8vIFRISVMgU09G VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP UlMgIkFTCisrLy8gSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8vIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKysvLyBQVVJQ T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS IE9SCisrLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs IElOQ0lERU5UQUwsIFNQRUNJQUwsCisrLy8gRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8vIFBST0NVUkVNRU5UIE9G IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKy8v IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O IEFOWSBUSEVPUlkgT0YKKysvLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworKy8vIE5FR0xJR0VOQ0UgT1IgT1RIRVJX SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworKy8vIFNPRlRX QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor KworKy8vIFRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBjb3ZlcmVkIGJ5IHRoZSBhYm92ZSBsaWNl bnNlIGFib3ZlIGhhcyBiZWVuCisrLy8gbW9kaWZpZWQgc2lnbmlmaWNhbnRseSBieSBHb29nbGUg SW5jLgorKy8vIENvcHlyaWdodCAyMDEyIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisrCisrI2lmbmRlZiBWOF9DT0RFR0VOX1JJU0NWX0FTU0VNQkxFUl9SSVND Vl9JTkxfSF8KKysjZGVmaW5lIFY4X0NPREVHRU5fUklTQ1ZfQVNTRU1CTEVSX1JJU0NWX0lOTF9I XworKworKyNpbmNsdWRlICJzcmMvY29kZWdlbi9hc3NlbWJsZXIuaCIKKysjaW5jbHVkZSAic3Jj L2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXItcmlzY3Y2NC5oIgorKyNpbmNsdWRlICJzcmMvZGVi dWcvZGVidWcuaCIKKysjaW5jbHVkZSAic3JjL29iamVjdHMvb2JqZWN0cy1pbmwuaCIKKysKKytu YW1lc3BhY2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7CisrCisrYm9vbCBDcHVGZWF0dXJl czo6U3VwcG9ydHNPcHRpbWl6ZXIoKSB7IHJldHVybiBJc1N1cHBvcnRlZChGUFUpOyB9CisrCisr Ym9vbCBDcHVGZWF0dXJlczo6U3VwcG9ydHNXYXNtU2ltZDEyOCgpIHsgcmV0dXJuIElzU3VwcG9y dGVkKFJJU0NWX1NJTUQpOyB9CisrCisrLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysvLyBPcGVy YW5kIGFuZCBNZW1PcGVyYW5kLgorKworK2Jvb2wgT3BlcmFuZDo6aXNfcmVnKCkgY29uc3QgeyBy ZXR1cm4gcm1fLmlzX3ZhbGlkKCk7IH0KKysKKytpbnQ2NF90IE9wZXJhbmQ6OmltbWVkaWF0ZSgp IGNvbnN0IHsKKysgIERDSEVDSyghaXNfcmVnKCkpOworKyAgRENIRUNLKCFJc0hlYXBPYmplY3RS ZXF1ZXN0KCkpOworKyAgcmV0dXJuIHZhbHVlXy5pbW1lZGlhdGU7CisrfQorKworKy8vIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrLy8gUmVsb2NJbmZvLgorKworK3ZvaWQgUmVsb2NJbmZvOjphcHBs eShpbnRwdHJfdCBkZWx0YSkgeworKyAgaWYgKElzSW50ZXJuYWxSZWZlcmVuY2Uocm1vZGVfKSB8 fCBJc0ludGVybmFsUmVmZXJlbmNlRW5jb2RlZChybW9kZV8pKSB7CisrICAgIC8vIEFic29sdXRl IGNvZGUgcG9pbnRlciBpbnNpZGUgY29kZSBvYmplY3QgbW92ZXMgd2l0aCB0aGUgY29kZSBvYmpl Y3QuCisrICAgIEFzc2VtYmxlcjo6UmVsb2NhdGVJbnRlcm5hbFJlZmVyZW5jZShybW9kZV8sIHBj XywgZGVsdGEpOworKyAgfQorK30KKysKKytBZGRyZXNzIFJlbG9jSW5mbzo6dGFyZ2V0X2FkZHJl c3MoKSB7CisrICBEQ0hFQ0soSXNDb2RlVGFyZ2V0KHJtb2RlXykgfHwgSXNSdW50aW1lRW50cnko cm1vZGVfKSB8fCBJc1dhc21DYWxsKHJtb2RlXykpOworKyAgcmV0dXJuIEFzc2VtYmxlcjo6dGFy Z2V0X2FkZHJlc3NfYXQocGNfLCBjb25zdGFudF9wb29sXyk7CisrfQorKworK0FkZHJlc3MgUmVs b2NJbmZvOjp0YXJnZXRfYWRkcmVzc19hZGRyZXNzKCkgeworKyAgRENIRUNLKEhhc1RhcmdldEFk ZHJlc3NBZGRyZXNzKCkpOworKyAgLy8gUmVhZCB0aGUgYWRkcmVzcyBvZiB0aGUgd29yZCBjb250 YWluaW5nIHRoZSB0YXJnZXRfYWRkcmVzcyBpbiBhbgorKyAgLy8gaW5zdHJ1Y3Rpb24gc3RyZWFt LgorKyAgLy8gVGhlIG9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IHVzZXIgb2YgdGhpcyBm dW5jdGlvbiBpcyB0aGUgc2VyaWFsaXplci4KKysgIC8vIFRoZSBzZXJpYWxpemVyIHVzZXMgaXQg dG8gZmluZCBvdXQgaG93IG1hbnkgcmF3IGJ5dGVzIG9mIGluc3RydWN0aW9uIHRvCisrICAvLyBv dXRwdXQgYmVmb3JlIHRoZSBuZXh0IHRhcmdldC4KKysgIC8vIEZvciBhbiBpbnN0cnVjdGlvbiBs aWtlIExVSS9PUkkgd2hlcmUgdGhlIHRhcmdldCBiaXRzIGFyZSBtaXhlZCBpbnRvIHRoZQorKyAg Ly8gaW5zdHJ1Y3Rpb24gYml0cywgdGhlIHNpemUgb2YgdGhlIHRhcmdldCB3aWxsIGJlIHplcm8s IGluZGljYXRpbmcgdGhhdCB0aGUKKysgIC8vIHNlcmlhbGl6ZXIgc2hvdWxkIG5vdCBzdGVwIGZv cndhcmQgaW4gbWVtb3J5IGFmdGVyIGEgdGFyZ2V0IGlzIHJlc29sdmVkCisrICAvLyBhbmQgd3Jp dHRlbi4gSW4gdGhpcyBjYXNlIHRoZSB0YXJnZXRfYWRkcmVzc19hZGRyZXNzIGZ1bmN0aW9uIHNo b3VsZAorKyAgLy8gcmV0dXJuIHRoZSBlbmQgb2YgdGhlIGluc3RydWN0aW9ucyB0byBiZSBwYXRj aGVkLCBhbGxvd2luZyB0aGUKKysgIC8vIGRlc2VyaWFsaXplciB0byBkZXNlcmlhbGl6ZSB0aGUg aW5zdHJ1Y3Rpb25zIGFzIHJhdyBieXRlcyBhbmQgcHV0IHRoZW0gaW4KKysgIC8vIHBsYWNlLCBy ZWFkeSB0byBiZSBwYXRjaGVkIHdpdGggdGhlIHRhcmdldC4gQWZ0ZXIganVtcCBvcHRpbWl6YXRp b24sCisrICAvLyB0aGF0IGlzIHRoZSBhZGRyZXNzIG9mIHRoZSBpbnN0cnVjdGlvbiB0aGF0IGZv bGxvd3MgSi9KQUwvSlIvSkFMUgorKyAgLy8gaW5zdHJ1Y3Rpb24uCisrICByZXR1cm4gcGNfICsg QXNzZW1ibGVyOjprSW5zdHJ1Y3Rpb25zRm9yNjRCaXRDb25zdGFudCAqIGtJbnN0clNpemU7Cisr fQorKworK0FkZHJlc3MgUmVsb2NJbmZvOjpjb25zdGFudF9wb29sX2VudHJ5X2FkZHJlc3MoKSB7 IFVOUkVBQ0hBQkxFKCk7IH0KKysKKytpbnQgUmVsb2NJbmZvOjp0YXJnZXRfYWRkcmVzc19zaXpl KCkgeyByZXR1cm4gQXNzZW1ibGVyOjprU3BlY2lhbFRhcmdldFNpemU7IH0KKysKKyt2b2lkIEFz c2VtYmxlcjo6ZGVzZXJpYWxpemF0aW9uX3NldF9zcGVjaWFsX3RhcmdldF9hdCgKKysgICAgQWRk cmVzcyBpbnN0cnVjdGlvbl9wYXlsb2FkLCBDb2RlIGNvZGUsIEFkZHJlc3MgdGFyZ2V0KSB7Cisr ICBzZXRfdGFyZ2V0X2FkZHJlc3NfYXQoaW5zdHJ1Y3Rpb25fcGF5bG9hZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAhY29kZS5pc19udWxsKCkgPyBjb2RlLmNvbnN0YW50X3Bvb2woKSA6IGtO dWxsQWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQpOworK30KKysKKytp bnQgQXNzZW1ibGVyOjpkZXNlcmlhbGl6YXRpb25fc3BlY2lhbF90YXJnZXRfc2l6ZSgKKysgICAg QWRkcmVzcyBpbnN0cnVjdGlvbl9wYXlsb2FkKSB7CisrICByZXR1cm4ga1NwZWNpYWxUYXJnZXRT aXplOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c2V0X3RhcmdldF9pbnRlcm5hbF9yZWZlcmVu Y2VfZW5jb2RlZF9hdChBZGRyZXNzIHBjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3MgdGFyZ2V0KSB7CisrICAgIHNldF90 YXJnZXRfdmFsdWVfYXQocGMsIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih0YXJnZXQpKTsKKyt9Cisr Cisrdm9pZCBBc3NlbWJsZXI6OmRlc2VyaWFsaXphdGlvbl9zZXRfdGFyZ2V0X2ludGVybmFsX3Jl ZmVyZW5jZV9hdCgKKysgICAgQWRkcmVzcyBwYywgQWRkcmVzcyB0YXJnZXQsIFJlbG9jSW5mbzo6 TW9kZSBtb2RlKSB7CisrICBpZiAoUmVsb2NJbmZvOjpJc0ludGVybmFsUmVmZXJlbmNlRW5jb2Rl ZChtb2RlKSkgeworKyAgICBEQ0hFQ0soSXNMdWkoaW5zdHJfYXQocGMpKSk7CisrICAgIHNldF90 YXJnZXRfaW50ZXJuYWxfcmVmZXJlbmNlX2VuY29kZWRfYXQocGMsIHRhcmdldCk7CisrICB9IGVs c2UgeworKyAgICBEQ0hFQ0soUmVsb2NJbmZvOjpJc0ludGVybmFsUmVmZXJlbmNlKG1vZGUpKTsK KysgICAgTWVtb3J5PEFkZHJlc3M+KHBjKSA9IHRhcmdldDsKKysgIH0KKyt9CisrCisrSGVhcE9i amVjdCBSZWxvY0luZm86OnRhcmdldF9vYmplY3QoKSB7CisrICBEQ0hFQ0soSXNDb2RlVGFyZ2V0 KHJtb2RlXykgfHwgSXNGdWxsRW1iZWRkZWRPYmplY3Qocm1vZGVfKSk7CisrICByZXR1cm4gSGVh cE9iamVjdDo6Y2FzdCgKKysgICAgICBPYmplY3QoQXNzZW1ibGVyOjp0YXJnZXRfYWRkcmVzc19h dChwY18sIGNvbnN0YW50X3Bvb2xfKSkpOworK30KKysKKytIZWFwT2JqZWN0IFJlbG9jSW5mbzo6 dGFyZ2V0X29iamVjdF9ub19ob3N0KElzb2xhdGUqIGlzb2xhdGUpIHsKKysgIHJldHVybiB0YXJn ZXRfb2JqZWN0KCk7CisrfQorKworK0hhbmRsZTxIZWFwT2JqZWN0PiBSZWxvY0luZm86OnRhcmdl dF9vYmplY3RfaGFuZGxlKEFzc2VtYmxlciogb3JpZ2luKSB7CisrICBEQ0hFQ0soSXNDb2RlVGFy Z2V0KHJtb2RlXykgfHwgSXNGdWxsRW1iZWRkZWRPYmplY3Qocm1vZGVfKSk7CisrICByZXR1cm4g SGFuZGxlPEhlYXBPYmplY3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8QWRkcmVzcyo+KAorKyAgICAgIEFz c2VtYmxlcjo6dGFyZ2V0X2FkZHJlc3NfYXQocGNfLCBjb25zdGFudF9wb29sXykpKTsKKyt9Cisr Cisrdm9pZCBSZWxvY0luZm86OnNldF90YXJnZXRfb2JqZWN0KEhlYXAqIGhlYXAsIEhlYXBPYmpl Y3QgdGFyZ2V0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZUJhcnJp ZXJNb2RlIHdyaXRlX2JhcnJpZXJfbW9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSUNhY2hlRmx1c2hNb2RlIGljYWNoZV9mbHVzaF9tb2RlKSB7CisrICBEQ0hFQ0soSXND b2RlVGFyZ2V0KHJtb2RlXykgfHwgSXNGdWxsRW1iZWRkZWRPYmplY3Qocm1vZGVfKSk7CisrICBB c3NlbWJsZXI6OnNldF90YXJnZXRfYWRkcmVzc19hdChwY18sIGNvbnN0YW50X3Bvb2xfLCB0YXJn ZXQucHRyKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY2FjaGVfZmx1 c2hfbW9kZSk7CisrICBpZiAod3JpdGVfYmFycmllcl9tb2RlID09IFVQREFURV9XUklURV9CQVJS SUVSICYmICFob3N0KCkuaXNfbnVsbCgpICYmCisrICAgICAgIUZMQUdfZGlzYWJsZV93cml0ZV9i YXJyaWVycykgeworKyAgICBXcml0ZUJhcnJpZXJGb3JDb2RlKGhvc3QoKSwgdGhpcywgdGFyZ2V0 KTsKKysgIH0KKyt9CisrCisrQWRkcmVzcyBSZWxvY0luZm86OnRhcmdldF9leHRlcm5hbF9yZWZl cmVuY2UoKSB7CisrICBEQ0hFQ0socm1vZGVfID09IEVYVEVSTkFMX1JFRkVSRU5DRSk7CisrICBy ZXR1cm4gQXNzZW1ibGVyOjp0YXJnZXRfYWRkcmVzc19hdChwY18sIGNvbnN0YW50X3Bvb2xfKTsK Kyt9CisrCisrdm9pZCBSZWxvY0luZm86OnNldF90YXJnZXRfZXh0ZXJuYWxfcmVmZXJlbmNlKAor KyAgICBBZGRyZXNzIHRhcmdldCwgSUNhY2hlRmx1c2hNb2RlIGljYWNoZV9mbHVzaF9tb2RlKSB7 CisrICBEQ0hFQ0socm1vZGVfID09IFJlbG9jSW5mbzo6RVhURVJOQUxfUkVGRVJFTkNFKTsKKysg IEFzc2VtYmxlcjo6c2V0X3RhcmdldF9hZGRyZXNzX2F0KHBjXywgY29uc3RhbnRfcG9vbF8sIHRh cmdldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljYWNoZV9mbHVzaF9t b2RlKTsKKyt9CisrCisrQWRkcmVzcyBSZWxvY0luZm86OnRhcmdldF9pbnRlcm5hbF9yZWZlcmVu Y2UoKSB7CisrICBpZiAocm1vZGVfID09IElOVEVSTkFMX1JFRkVSRU5DRSkgeworKyAgICByZXR1 cm4gTWVtb3J5PEFkZHJlc3M+KHBjXyk7CisrICB9IGVsc2UgeworKyAgICAvLyBFbmNvZGVkIGlu dGVybmFsIHJlZmVyZW5jZXMgYXJlIGovamFsIGluc3RydWN0aW9ucy4KKysgICAgRENIRUNLKHJt b2RlXyA9PSBJTlRFUk5BTF9SRUZFUkVOQ0VfRU5DT0RFRCk7CisrICAgIERDSEVDSyhBc3NlbWJs ZXI6OklzTHVpKEFzc2VtYmxlcjo6aW5zdHJfYXQocGNfICsgMCAqIGtJbnN0clNpemUpKSk7Cisr ICAgIEFkZHJlc3MgYWRkcmVzcyA9IEFzc2VtYmxlcjo6dGFyZ2V0X2FkZHJlc3NfYXQocGNfKTsK KysgICAgcmV0dXJuIGFkZHJlc3M7CisrICB9CisrfQorKworK0FkZHJlc3MgUmVsb2NJbmZvOjp0 YXJnZXRfaW50ZXJuYWxfcmVmZXJlbmNlX2FkZHJlc3MoKSB7CisrICBEQ0hFQ0socm1vZGVfID09 IElOVEVSTkFMX1JFRkVSRU5DRSB8fCBybW9kZV8gPT0gSU5URVJOQUxfUkVGRVJFTkNFX0VOQ09E RUQpOworKyAgcmV0dXJuIHBjXzsKKyt9CisrCisrQWRkcmVzcyBSZWxvY0luZm86OnRhcmdldF9y dW50aW1lX2VudHJ5KEFzc2VtYmxlciogb3JpZ2luKSB7CisrICBEQ0hFQ0soSXNSdW50aW1lRW50 cnkocm1vZGVfKSk7CisrICByZXR1cm4gdGFyZ2V0X2FkZHJlc3MoKTsKKyt9CisrCisrdm9pZCBS ZWxvY0luZm86OnNldF90YXJnZXRfcnVudGltZV9lbnRyeShBZGRyZXNzIHRhcmdldCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlQmFycmllck1vZGUgd3Jp dGVfYmFycmllcl9tb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSUNhY2hlRmx1c2hNb2RlIGljYWNoZV9mbHVzaF9tb2RlKSB7CisrICBEQ0hFQ0soSXNSdW50 aW1lRW50cnkocm1vZGVfKSk7CisrICBpZiAodGFyZ2V0X2FkZHJlc3MoKSAhPSB0YXJnZXQpCisr ICAgIHNldF90YXJnZXRfYWRkcmVzcyh0YXJnZXQsIHdyaXRlX2JhcnJpZXJfbW9kZSwgaWNhY2hl X2ZsdXNoX21vZGUpOworK30KKysKKytBZGRyZXNzIFJlbG9jSW5mbzo6dGFyZ2V0X29mZl9oZWFw X3RhcmdldCgpIHsKKysgIERDSEVDSyhJc09mZkhlYXBUYXJnZXQocm1vZGVfKSk7CisrICByZXR1 cm4gQXNzZW1ibGVyOjp0YXJnZXRfYWRkcmVzc19hdChwY18sIGNvbnN0YW50X3Bvb2xfKTsKKyt9 CisrCisrdm9pZCBSZWxvY0luZm86OldpcGVPdXQoKSB7CisrICBEQ0hFQ0soSXNGdWxsRW1iZWRk ZWRPYmplY3Qocm1vZGVfKSB8fCBJc0NvZGVUYXJnZXQocm1vZGVfKSB8fAorKyAgICAgICAgIElz UnVudGltZUVudHJ5KHJtb2RlXykgfHwgSXNFeHRlcm5hbFJlZmVyZW5jZShybW9kZV8pIHx8Cisr ICAgICAgICAgSXNJbnRlcm5hbFJlZmVyZW5jZShybW9kZV8pIHx8IElzSW50ZXJuYWxSZWZlcmVu Y2VFbmNvZGVkKHJtb2RlXykgfHwKKysgICAgICAgICBJc09mZkhlYXBUYXJnZXQocm1vZGVfKSk7 CisrICBpZiAoSXNJbnRlcm5hbFJlZmVyZW5jZShybW9kZV8pKSB7CisrICAgIE1lbW9yeTxBZGRy ZXNzPihwY18pID0ga051bGxBZGRyZXNzOworKyAgfSBlbHNlIGlmIChJc0ludGVybmFsUmVmZXJl bmNlRW5jb2RlZChybW9kZV8pKSB7CisrICAgIEFzc2VtYmxlcjo6c2V0X3RhcmdldF9pbnRlcm5h bF9yZWZlcmVuY2VfZW5jb2RlZF9hdChwY18sIGtOdWxsQWRkcmVzcyk7CisrICB9IGVsc2Ugewor KyAgICBBc3NlbWJsZXI6OnNldF90YXJnZXRfYWRkcmVzc19hdChwY18sIGNvbnN0YW50X3Bvb2xf LCBrTnVsbEFkZHJlc3MpOworKyAgfQorK30KKysKKysvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor Ky8vIEFzc2VtYmxlci4KKysKKyt2b2lkIEFzc2VtYmxlcjo6Q2hlY2tCdWZmZXIoKSB7CisrICBp ZiAoYnVmZmVyX3NwYWNlKCkgPD0ga0dhcCkgeworKyAgICBHcm93QnVmZmVyKCk7CisrICB9Cisr fQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorK3ZvaWQgQXNzZW1ibGVyOjpFbWl0SGVscGVy KFQgeCkgeworKyAgREVCVUdfUFJJTlRGKCIlcDogIiwgcGNfKTsKKysgIGRpc2Fzc2VtYmxlSW5z dHIoKGludCl4KTsKKysgICpyZWludGVycHJldF9jYXN0PFQqPihwY18pID0geDsKKysgIHBjXyAr PSBzaXplb2YoeCk7CisrICBDaGVja1RyYW1wb2xpbmVQb29sUXVpY2soKTsKKyt9CisrCisrdm9p ZCBBc3NlbWJsZXI6OmVtaXQoSW5zdHIgeCkgeworKyAgaWYgKCFpc19idWZmZXJfZ3Jvd3RoX2Js b2NrZWQoKSkgeworKyAgICBDaGVja0J1ZmZlcigpOworKyAgfQorKyAgRW1pdEhlbHBlcih4KTsK Kyt9CisrCisrRW5zdXJlU3BhY2U6OkVuc3VyZVNwYWNlKEFzc2VtYmxlciogYXNzZW1ibGVyKSB7 IGFzc2VtYmxlci0+Q2hlY2tCdWZmZXIoKTsgfQorKworK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5h bAorK30gIC8vIG5hbWVzcGFjZSB2OAorKworKyNlbmRpZiAgLy8gVjhfQ09ERUdFTl9SSVNDVl9B U1NFTUJMRVJfUklTQ1ZfSU5MX0hfCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMt NS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9yaXNjdjY0L2Fzc2Vt Ymxlci1yaXNjdjY0LmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29k ZWdlbi9yaXNjdjY0L2Fzc2VtYmxlci1yaXNjdjY0LmNjCitAQCAtMCwwICsxLDIzNDIgQEAKKysv LyBDb3B5cmlnaHQgKGMpIDE5OTQtMjAwNiBTdW4gTWljcm9zeXN0ZW1zIEluYy4KKysvLyBBbGwg UmlnaHRzIFJlc2VydmVkLgorKy8vCisrLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrLy8gbW9kaWZpY2F0aW9uLCBh cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor Ky8vIG1ldDoKKysvLworKy8vIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorKy8vIHRoaXMgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisrLy8KKysvLyAtIFJlZGlzdHJp YnV0aW9uIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK KysvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIgaW4gdGhlCisrLy8gZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKysvLworKy8vIC0gTmVpdGhlciB0aGUg bmFtZSBvZiBTdW4gTWljcm9zeXN0ZW1zIG9yIHRoZSBuYW1lcyBvZiBjb250cmlidXRvcnMgbWF5 CisrLy8gYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t IHRoaXMgc29mdHdhcmUgd2l0aG91dAorKy8vIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz c2lvbi4KKysvLworKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTCisrLy8gSVMiIEFORCBBTlkgRVhQUkVTUyBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8v IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIKKysvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisrLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisrLy8gRVhFTVBM QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE IFRPLAorKy8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP U1MgT0YgVVNFLCBEQVRBLCBPUgorKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKysvLyBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwor Ky8vIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI RSBVU0UgT0YgVEhJUworKy8vIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKworKy8vIFRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBj b3ZlcmVkIGJ5IHRoZSBhYm92ZSBsaWNlbnNlIGFib3ZlIGhhcyBiZWVuCisrLy8gbW9kaWZpZWQg c2lnbmlmaWNhbnRseSBieSBHb29nbGUgSW5jLgorKy8vIENvcHlyaWdodCAyMDEyIHRoZSBWOCBw cm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrCisrI2lmIFY4X1RBUkdFVF9B UkNIX1JJU0NWNjQKKysKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXIt cmlzY3Y2NC5oIgorKworKyNpbmNsdWRlICJzcmMvYmFzZS9jcHUuaCIKKysjaW5jbHVkZSAic3Jj L2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXItcmlzY3Y2NC1pbmwuaCIKKysjaW5jbHVkZSAic3Jj L2NvZGVnZW4vc2FmZXBvaW50LXRhYmxlLmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL3N0cmlu Zy1jb25zdGFudHMuaCIKKysjaW5jbHVkZSAic3JjL2Rlb3B0aW1pemVyL2Rlb3B0aW1pemVyLmgi CisrI2luY2x1ZGUgInNyYy9kaWFnbm9zdGljcy9kaXNhc20uaCIKKysjaW5jbHVkZSAic3JjL2Rp YWdub3N0aWNzL2Rpc2Fzc2VtYmxlci5oIgorKyNpbmNsdWRlICJzcmMvb2JqZWN0cy9oZWFwLW51 bWJlci1pbmwuaCIKKysKKytuYW1lc3BhY2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7Cisr Ly8gR2V0IHRoZSBDUFUgZmVhdHVyZXMgZW5hYmxlZCBieSB0aGUgYnVpbGQuIEZvciBjcm9zcyBj b21waWxhdGlvbiB0aGUKKysvLyBwcmVwcm9jZXNzb3Igc3ltYm9scyBDQU5fVVNFX0ZQVV9JTlNU UlVDVElPTlMKKysvLyBjYW4gYmUgZGVmaW5lZCB0byBlbmFibGUgRlBVIGluc3RydWN0aW9ucyB3 aGVuIGJ1aWxkaW5nIHRoZQorKy8vIHNuYXBzaG90LgorK3N0YXRpYyB1bnNpZ25lZCBDcHVGZWF0 dXJlc0ltcGxpZWRCeUNvbXBpbGVyKCkgeworKyAgdW5zaWduZWQgYW5zd2VyID0gMDsKKysjaWZk ZWYgQ0FOX1VTRV9GUFVfSU5TVFJVQ1RJT05TCisrICBhbnN3ZXIgfD0gMXUgPDwgRlBVOworKyNl bmRpZiAgLy8gZGVmIENBTl9VU0VfRlBVX0lOU1RSVUNUSU9OUworKworKyAgcmV0dXJuIGFuc3dl cjsKKyt9CisrCisrdm9pZCBDcHVGZWF0dXJlczo6UHJvYmVJbXBsKGJvb2wgY3Jvc3NfY29tcGls ZSkgeworKyAgc3VwcG9ydGVkXyB8PSBDcHVGZWF0dXJlc0ltcGxpZWRCeUNvbXBpbGVyKCk7Cisr CisrICAvLyBPbmx5IHVzZSBzdGF0aWNhbGx5IGRldGVybWluZWQgZmVhdHVyZXMgZm9yIGNyb3Nz IGNvbXBpbGUgKHNuYXBzaG90KS4KKysgIGlmIChjcm9zc19jb21waWxlKSByZXR1cm47CisrCisr ICAvLyBQcm9iZSBmb3IgYWRkaXRpb25hbCBmZWF0dXJlcyBhdCBydW50aW1lLgorKyAgYmFzZTo6 Q1BVIGNwdTsKKysgIGlmIChjcHUuaGFzX2ZwdSgpKSBzdXBwb3J0ZWRfIHw9IDF1IDw8IEZQVTsK Kyt9CisrCisrdm9pZCBDcHVGZWF0dXJlczo6UHJpbnRUYXJnZXQoKSB7fQorK3ZvaWQgQ3B1RmVh dHVyZXM6OlByaW50RmVhdHVyZXMoKSB7fQorKworK2ludCBUb051bWJlcihSZWdpc3RlciByZWcp IHsKKysgIERDSEVDSyhyZWcuaXNfdmFsaWQoKSk7CisrICBjb25zdCBpbnQga051bWJlcnNbXSA9 IHsKKysgICAgICAwLCAgIC8vIHplcm9fcmVnCisrICAgICAgMSwgICAvLyByYQorKyAgICAgIDIs ICAgLy8gc3AKKysgICAgICAzLCAgIC8vIGdwCisrICAgICAgNCwgICAvLyB0cAorKyAgICAgIDUs ICAgLy8gdDAKKysgICAgICA2LCAgIC8vIHQxCisrICAgICAgNywgICAvLyB0MgorKyAgICAgIDgs ICAgLy8gczAvZnAKKysgICAgICA5LCAgIC8vIHMxCisrICAgICAgMTAsICAvLyBhMAorKyAgICAg IDExLCAgLy8gYTEKKysgICAgICAxMiwgIC8vIGEyCisrICAgICAgMTMsICAvLyBhMworKyAgICAg IDE0LCAgLy8gYTQKKysgICAgICAxNSwgIC8vIGE1CisrICAgICAgMTYsICAvLyBhNgorKyAgICAg IDE3LCAgLy8gYTcKKysgICAgICAxOCwgIC8vIHMyCisrICAgICAgMTksICAvLyBzMworKyAgICAg IDIwLCAgLy8gczQKKysgICAgICAyMSwgIC8vIHM1CisrICAgICAgMjIsICAvLyBzNgorKyAgICAg IDIzLCAgLy8gczcKKysgICAgICAyNCwgIC8vIHM4CisrICAgICAgMjUsICAvLyBzOQorKyAgICAg IDI2LCAgLy8gczEwCisrICAgICAgMjcsICAvLyBzMTEKKysgICAgICAyOCwgIC8vIHQzCisrICAg ICAgMjksICAvLyB0NAorKyAgICAgIDMwLCAgLy8gdDUKKysgICAgICAzMSwgIC8vIHQ2CisrICB9 OworKyAgcmV0dXJuIGtOdW1iZXJzW3JlZy5jb2RlKCldOworK30KKysKKytSZWdpc3RlciBUb1Jl Z2lzdGVyKGludCBudW0pIHsKKysgIERDSEVDSyhudW0gPj0gMCAmJiBudW0gPCBrTnVtUmVnaXN0 ZXJzKTsKKysgIGNvbnN0IFJlZ2lzdGVyIGtSZWdpc3RlcnNbXSA9IHsKKysgICAgICB6ZXJvX3Jl ZywgcmEsIHNwLCBncCwgdHAsIHQwLCB0MSwgdDIsIGZwLCBzMSwgYTAsICBhMSwgIGEyLCBhMywg YTQsIGE1LAorKyAgICAgIGE2LCAgICAgICBhNywgczIsIHMzLCBzNCwgczUsIHM2LCBzNywgczgs IHM5LCBzMTAsIHMxMSwgdDMsIHQ0LCB0NSwgdDZ9OworKyAgcmV0dXJuIGtSZWdpc3RlcnNbbnVt XTsKKyt9CisrCisrLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysvLyBJbXBsZW1lbnRhdGlvbiBv ZiBSZWxvY0luZm8uCisrCisrY29uc3QgaW50IFJlbG9jSW5mbzo6a0FwcGx5TWFzayA9CisrICAg IFJlbG9jSW5mbzo6TW9kZU1hc2soUmVsb2NJbmZvOjpJTlRFUk5BTF9SRUZFUkVOQ0UpIHwKKysg ICAgUmVsb2NJbmZvOjpNb2RlTWFzayhSZWxvY0luZm86OklOVEVSTkFMX1JFRkVSRU5DRV9FTkNP REVEKTsKKysKKytib29sIFJlbG9jSW5mbzo6SXNDb2RlZFNwZWNpYWxseSgpIHsKKysgIC8vIFRo ZSBkZXNlcmlhbGl6ZXIgbmVlZHMgdG8ga25vdyB3aGV0aGVyIGEgcG9pbnRlciBpcyBzcGVjaWFs bHkgY29kZWQuICBCZWluZworKyAgLy8gc3BlY2lhbGx5IGNvZGVkIG9uIFJJU0MtViBtZWFucyB0 aGF0IGl0IGlzIGEgbHVpL2FkZGkgaW5zdHJ1Y3Rpb24sIGFuZCB0aGF0CisrICAvLyBpcyBhbHdh eXMgdGhlIGNhc2UgaW5zaWRlIGNvZGUgb2JqZWN0cy4KKysgIHJldHVybiB0cnVlOworK30KKysK Kytib29sIFJlbG9jSW5mbzo6SXNJbkNvbnN0YW50UG9vbCgpIHsgcmV0dXJuIGZhbHNlOyB9Cisr CisrdWludDMyX3QgUmVsb2NJbmZvOjp3YXNtX2NhbGxfdGFnKCkgY29uc3QgeworKyAgRENIRUNL KHJtb2RlXyA9PSBXQVNNX0NBTEwgfHwgcm1vZGVfID09IFdBU01fU1RVQl9DQUxMKTsKKysgIHJl dHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oCisrICAgICAgQXNzZW1ibGVyOjp0YXJnZXRfYWRk cmVzc19hdChwY18sIGNvbnN0YW50X3Bvb2xfKSk7CisrfQorKworKy8vIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrLy8gSW1wbGVtZW50YXRpb24gb2YgT3BlcmFuZCBhbmQgTWVtT3BlcmFuZC4KKysv LyBTZWUgYXNzZW1ibGVyLXJpc2N2NjQtaW5sLmggZm9yIGlubGluZWQgY29uc3RydWN0b3JzLgor KworK09wZXJhbmQ6Ok9wZXJhbmQoSGFuZGxlPEhlYXBPYmplY3Q+IGhhbmRsZSkKKysgICAgOiBy bV8obm9fcmVnKSwgcm1vZGVfKFJlbG9jSW5mbzo6RlVMTF9FTUJFRERFRF9PQkpFQ1QpIHsKKysg IHZhbHVlXy5pbW1lZGlhdGUgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oaGFuZGxlLmFkZHJlc3Mo KSk7CisrfQorKworK09wZXJhbmQgT3BlcmFuZDo6RW1iZWRkZWROdW1iZXIoZG91YmxlIHZhbHVl KSB7CisrICBpbnQzMl90IHNtaTsKKysgIGlmIChEb3VibGVUb1NtaUludGVnZXIodmFsdWUsICZz bWkpKSByZXR1cm4gT3BlcmFuZChTbWk6OkZyb21JbnQoc21pKSk7CisrICBPcGVyYW5kIHJlc3Vs dCgwLCBSZWxvY0luZm86OkZVTExfRU1CRURERURfT0JKRUNUKTsKKysgIHJlc3VsdC5pc19oZWFw X29iamVjdF9yZXF1ZXN0XyA9IHRydWU7CisrICByZXN1bHQudmFsdWVfLmhlYXBfb2JqZWN0X3Jl cXVlc3QgPSBIZWFwT2JqZWN0UmVxdWVzdCh2YWx1ZSk7CisrICByZXR1cm4gcmVzdWx0OworK30K KysKKytPcGVyYW5kIE9wZXJhbmQ6OkVtYmVkZGVkU3RyaW5nQ29uc3RhbnQoY29uc3QgU3RyaW5n Q29uc3RhbnRCYXNlKiBzdHIpIHsKKysgIE9wZXJhbmQgcmVzdWx0KDAsIFJlbG9jSW5mbzo6RlVM TF9FTUJFRERFRF9PQkpFQ1QpOworKyAgcmVzdWx0LmlzX2hlYXBfb2JqZWN0X3JlcXVlc3RfID0g dHJ1ZTsKKysgIHJlc3VsdC52YWx1ZV8uaGVhcF9vYmplY3RfcmVxdWVzdCA9IEhlYXBPYmplY3RS ZXF1ZXN0KHN0cik7CisrICByZXR1cm4gcmVzdWx0OworK30KKysKKytNZW1PcGVyYW5kOjpNZW1P cGVyYW5kKFJlZ2lzdGVyIHJtLCBpbnQzMl90IG9mZnNldCkgOiBPcGVyYW5kKHJtKSB7CisrICBv ZmZzZXRfID0gb2Zmc2V0OworK30KKysKKytNZW1PcGVyYW5kOjpNZW1PcGVyYW5kKFJlZ2lzdGVy IHJtLCBpbnQzMl90IHVuaXQsIGludDMyX3QgbXVsdGlwbGllciwKKysgICAgICAgICAgICAgICAg ICAgICAgIE9mZnNldEFkZGVuZCBvZmZzZXRfYWRkZW5kKQorKyAgICA6IE9wZXJhbmQocm0pIHsK KysgIG9mZnNldF8gPSB1bml0ICogbXVsdGlwbGllciArIG9mZnNldF9hZGRlbmQ7CisrfQorKwor K3ZvaWQgQXNzZW1ibGVyOjpBbGxvY2F0ZUFuZEluc3RhbGxSZXF1ZXN0ZWRIZWFwT2JqZWN0cyhJ c29sYXRlKiBpc29sYXRlKSB7CisrICBEQ0hFQ0tfSU1QTElFUyhpc29sYXRlID09IG51bGxwdHIs IGhlYXBfb2JqZWN0X3JlcXVlc3RzXy5lbXB0eSgpKTsKKysgIGZvciAoYXV0byYgcmVxdWVzdCA6 IGhlYXBfb2JqZWN0X3JlcXVlc3RzXykgeworKyAgICBIYW5kbGU8SGVhcE9iamVjdD4gb2JqZWN0 OworKyAgICBzd2l0Y2ggKHJlcXVlc3Qua2luZCgpKSB7CisrICAgICAgY2FzZSBIZWFwT2JqZWN0 UmVxdWVzdDo6a0hlYXBOdW1iZXI6CisrICAgICAgICBvYmplY3QgPSBpc29sYXRlLT5mYWN0b3J5 KCktPk5ld0hlYXBOdW1iZXI8QWxsb2NhdGlvblR5cGU6OmtPbGQ+KAorKyAgICAgICAgICAgIHJl cXVlc3QuaGVhcF9udW1iZXIoKSk7CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNlIEhlYXBP YmplY3RSZXF1ZXN0OjprU3RyaW5nQ29uc3RhbnQ6CisrICAgICAgICBjb25zdCBTdHJpbmdDb25z dGFudEJhc2UqIHN0ciA9IHJlcXVlc3Quc3RyaW5nKCk7CisrICAgICAgICBDSEVDS19OT1RfTlVM TChzdHIpOworKyAgICAgICAgb2JqZWN0ID0gc3RyLT5BbGxvY2F0ZVN0cmluZ0NvbnN0YW50KGlz b2xhdGUpOworKyAgICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgQWRkcmVzcyBwYyA9IHJlaW50 ZXJwcmV0X2Nhc3Q8QWRkcmVzcz4oYnVmZmVyX3N0YXJ0XykgKyByZXF1ZXN0Lm9mZnNldCgpOwor KyAgICBzZXRfdGFyZ2V0X3ZhbHVlX2F0KHBjLCByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pihv YmplY3QubG9jYXRpb24oKSkpOworKyAgfQorK30KKysKKysvLyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKy8vIFNwZWNpZmljIGluc3RydWN0aW9ucywgY29uc3RhbnRzLCBhbmQgbWFza3MuCisrCisr QXNzZW1ibGVyOjpBc3NlbWJsZXIoY29uc3QgQXNzZW1ibGVyT3B0aW9ucyYgb3B0aW9ucywKKysg ICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXNzZW1ibGVyQnVmZmVyPiBidWZm ZXIpCisrICAgIDogQXNzZW1ibGVyQmFzZShvcHRpb25zLCBzdGQ6Om1vdmUoYnVmZmVyKSksCisr ICAgICAgc2NyYXRjaF9yZWdpc3Rlcl9saXN0Xyh0My5iaXQoKSkgeworKyAgcmVsb2NfaW5mb193 cml0ZXIuUmVwb3NpdGlvbihidWZmZXJfc3RhcnRfICsgYnVmZmVyXy0+c2l6ZSgpLCBwY18pOwor KworKyAgbGFzdF90cmFtcG9saW5lX3Bvb2xfZW5kXyA9IDA7CisrICBub190cmFtcG9saW5lX3Bv b2xfYmVmb3JlXyA9IDA7CisrICB0cmFtcG9saW5lX3Bvb2xfYmxvY2tlZF9uZXN0aW5nXyA9IDA7 CisrICAvLyBXZSBsZWF2ZSBzcGFjZSAoMTYgKiBrVHJhbXBvbGluZVNsb3RzU2l6ZSkKKysgIC8v IGZvciBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYnVmZmVyLgorKyAgbmV4dF9idWZmZXJfY2hl Y2tfID0gRkxBR19mb3JjZV9sb25nX2JyYW5jaGVzCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgPyBrTWF4SW50CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBrTWF4QnJhbmNoT2Zm c2V0IC0ga1RyYW1wb2xpbmVTbG90c1NpemUgKiAxNjsKKysgIGludGVybmFsX3RyYW1wb2xpbmVf ZXhjZXB0aW9uXyA9IGZhbHNlOworKyAgbGFzdF9ib3VuZF9wb3NfID0gMDsKKysKKysgIHRyYW1w b2xpbmVfZW1pdHRlZF8gPSBGTEFHX2ZvcmNlX2xvbmdfYnJhbmNoZXM7CisrICB1bmJvdW5kX2xh YmVsc19jb3VudF8gPSAwOworKyAgYmxvY2tfYnVmZmVyX2dyb3d0aF8gPSBmYWxzZTsKKyt9Cisr Cisrdm9pZCBBc3NlbWJsZXI6OkdldENvZGUoSXNvbGF0ZSogaXNvbGF0ZSwgQ29kZURlc2MqIGRl c2MsCisrICAgICAgICAgICAgICAgICAgICAgICAgU2FmZXBvaW50VGFibGVCdWlsZGVyKiBzYWZl cG9pbnRfdGFibGVfYnVpbGRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGFuZGxl cl90YWJsZV9vZmZzZXQpIHsKKysgIGludCBjb2RlX2NvbW1lbnRzX3NpemUgPSBXcml0ZUNvZGVD b21tZW50cygpOworKworKyAgRENIRUNLKHBjXyA8PSByZWxvY19pbmZvX3dyaXRlci5wb3MoKSk7 ICAvLyBObyBvdmVybGFwLgorKworKyAgQWxsb2NhdGVBbmRJbnN0YWxsUmVxdWVzdGVkSGVhcE9i amVjdHMoaXNvbGF0ZSk7CisrCisrICAvLyBTZXQgdXAgY29kZSBkZXNjcmlwdG9yLgorKyAgLy8g VE9ETyhqZ3J1YmVyKTogUmVjb25zaWRlciBob3cgdGhlc2Ugb2Zmc2V0cyBhbmQgc2l6ZXMgYXJl IG1haW50YWluZWQgdXAgdG8KKysgIC8vIHRoaXMgcG9pbnQgdG8gbWFrZSBDb2RlRGVzYyBpbml0 aWFsaXphdGlvbiBsZXNzIGZpZGRseS4KKysKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtDb25z dGFudFBvb2xTaXplID0gMDsKKysgIGNvbnN0IGludCBpbnN0cnVjdGlvbl9zaXplID0gcGNfb2Zm c2V0KCk7CisrICBjb25zdCBpbnQgY29kZV9jb21tZW50c19vZmZzZXQgPSBpbnN0cnVjdGlvbl9z aXplIC0gY29kZV9jb21tZW50c19zaXplOworKyAgY29uc3QgaW50IGNvbnN0YW50X3Bvb2xfb2Zm c2V0ID0gY29kZV9jb21tZW50c19vZmZzZXQgLSBrQ29uc3RhbnRQb29sU2l6ZTsKKysgIGNvbnN0 IGludCBoYW5kbGVyX3RhYmxlX29mZnNldDIgPSAoaGFuZGxlcl90YWJsZV9vZmZzZXQgPT0ga05v SGFuZGxlclRhYmxlKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ IGNvbnN0YW50X3Bvb2xfb2Zmc2V0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogaGFuZGxlcl90YWJsZV9vZmZzZXQ7CisrICBjb25zdCBpbnQgc2FmZXBvaW50X3Rh YmxlX29mZnNldCA9CisrICAgICAgKHNhZmVwb2ludF90YWJsZV9idWlsZGVyID09IGtOb1NhZmVw b2ludFRhYmxlKQorKyAgICAgICAgICA/IGhhbmRsZXJfdGFibGVfb2Zmc2V0MgorKyAgICAgICAg ICA6IHNhZmVwb2ludF90YWJsZV9idWlsZGVyLT5HZXRDb2RlT2Zmc2V0KCk7CisrICBjb25zdCBp bnQgcmVsb2NfaW5mb19vZmZzZXQgPQorKyAgICAgIHN0YXRpY19jYXN0PGludD4ocmVsb2NfaW5m b193cml0ZXIucG9zKCkgLSBidWZmZXJfLT5zdGFydCgpKTsKKysgIENvZGVEZXNjOjpJbml0aWFs aXplKGRlc2MsIHRoaXMsIHNhZmVwb2ludF90YWJsZV9vZmZzZXQsCisrICAgICAgICAgICAgICAg ICAgICAgICBoYW5kbGVyX3RhYmxlX29mZnNldDIsIGNvbnN0YW50X3Bvb2xfb2Zmc2V0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgY29kZV9jb21tZW50c19vZmZzZXQsIHJlbG9jX2luZm9fb2Zm c2V0KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OkFsaWduKGludCBtKSB7CisrICBEQ0hFQ0so bSA+PSA0ICYmIGJhc2U6OmJpdHM6OklzUG93ZXJPZlR3byhtKSk7CisrICB3aGlsZSAoKHBjX29m ZnNldCgpICYgKG0gLSAxKSkgIT0gMCkgeworKyAgICBub3AoKTsKKysgIH0KKyt9CisrCisrdm9p ZCBBc3NlbWJsZXI6OkNvZGVUYXJnZXRBbGlnbigpIHsKKysgIC8vIE5vIGFkdmFudGFnZSB0byBh bGlnbmluZyBicmFuY2gvY2FsbCB0YXJnZXRzIHRvIG1vcmUgdGhhbgorKyAgLy8gc2luZ2xlIGlu c3RydWN0aW9uLCB0aGF0IEkgYW0gYXdhcmUgb2YuCisrICBBbGlnbig0KTsKKyt9CisrCisrLy8g TGFiZWxzIHJlZmVyIHRvIHBvc2l0aW9ucyBpbiB0aGUgKHRvIGJlKSBnZW5lcmF0ZWQgY29kZS4K KysvLyBUaGVyZSBhcmUgYm91bmQsIGxpbmtlZCwgYW5kIHVudXNlZCBsYWJlbHMuCisrLy8KKysv LyBCb3VuZCBsYWJlbHMgcmVmZXIgdG8ga25vd24gcG9zaXRpb25zIGluIHRoZSBhbHJlYWR5Cisr Ly8gZ2VuZXJhdGVkIGNvZGUuIHBvcygpIGlzIHRoZSBwb3NpdGlvbiB0aGUgbGFiZWwgcmVmZXJz IHRvLgorKy8vCisrLy8gTGlua2VkIGxhYmVscyByZWZlciB0byB1bmtub3duIHBvc2l0aW9ucyBp biB0aGUgY29kZQorKy8vIHRvIGJlIGdlbmVyYXRlZDsgcG9zKCkgaXMgdGhlIHBvc2l0aW9uIG9m IHRoZSBsYXN0CisrLy8gaW5zdHJ1Y3Rpb24gdXNpbmcgdGhlIGxhYmVsLgorKworKy8vIFRoZSBs aW5rIGNoYWluIGlzIHRlcm1pbmF0ZWQgYnkgYSB2YWx1ZSBpbiB0aGUgaW5zdHJ1Y3Rpb24gb2Yg MCwKKysvLyB3aGljaCBpcyBhbiBvdGhlcndpc2UgaWxsZWdhbCB2YWx1ZSAoYnJhbmNoIDAgaXMg aW5mIGxvb3ApLgorKworK2NvbnN0IGludCBrRW5kT2ZDaGFpbiA9IDA7CisrCisrLy8gRGV0ZXJt aW5lcyB0aGUgZW5kIG9mIHRoZSBKdW1wIGNoYWluIChhIHN1YnNldCBvZiB0aGUgbGFiZWwgbGlu ayBjaGFpbikuCisrY29uc3QgaW50IGtFbmRPZkp1bXBDaGFpbiA9IDA7CisrCisrYm9vbCBBc3Nl bWJsZXI6OklzQnJhbmNoKEluc3RyIGluc3RyKSB7CisrICByZXR1cm4gKGluc3RyICYga0Jhc2VP cGNvZGVNYXNrKSA9PSBCUkFOQ0g7CisrfQorKworK2Jvb2wgQXNzZW1ibGVyOjpJc0p1bXAoSW5z dHIgaW5zdHIpIHsKKysgIGludCBPcCA9IGluc3RyICYga0Jhc2VPcGNvZGVNYXNrOworKyAgcmV0 dXJuIE9wID09IEpBTCB8fCBPcCA9PSBKQUxSOworK30KKysKKytib29sIEFzc2VtYmxlcjo6SXNK YWwoSW5zdHIgaW5zdHIpIHsgcmV0dXJuIChpbnN0ciAmIGtCYXNlT3Bjb2RlTWFzaykgPT0gSkFM OyB9CisrCisrYm9vbCBBc3NlbWJsZXI6OklzSmFscihJbnN0ciBpbnN0cikgeworKyAgcmV0dXJu IChpbnN0ciAmIGtCYXNlT3Bjb2RlTWFzaykgPT0gSkFMUjsKKyt9CisrCisrYm9vbCBBc3NlbWJs ZXI6OklzTHVpKEluc3RyIGluc3RyKSB7IHJldHVybiAoaW5zdHIgJiBrQmFzZU9wY29kZU1hc2sp ID09IExVSTsgfQorK2Jvb2wgQXNzZW1ibGVyOjpJc0F1aXBjKEluc3RyIGluc3RyKSB7IHJldHVy biAoaW5zdHIgJiBrQmFzZU9wY29kZU1hc2spID09IEFVSVBDOyB9CisrYm9vbCBBc3NlbWJsZXI6 OklzQWRkaXcoSW5zdHIgaW5zdHIpIHsKKysgIHJldHVybiAoaW5zdHIgJiAoa0Jhc2VPcGNvZGVN YXNrIHwga0Z1bmN0M01hc2spKSA9PSBST19BRERJVzsKKyt9CisrYm9vbCBBc3NlbWJsZXI6Oklz QWRkaShJbnN0ciBpbnN0cikgeworKyAgcmV0dXJuIChpbnN0ciAmIChrQmFzZU9wY29kZU1hc2sg fCBrRnVuY3QzTWFzaykpID09IFJPX0FEREk7CisrfQorK2Jvb2wgQXNzZW1ibGVyOjpJc1NsbGko SW5zdHIgaW5zdHIpIHsKKysgIHJldHVybiAoaW5zdHIgJiAoa0Jhc2VPcGNvZGVNYXNrIHwga0Z1 bmN0M01hc2spKSA9PSBST19TTExJOworK30KKytpbnQgQXNzZW1ibGVyOjp0YXJnZXRfYXQoaW50 IHBvcywgYm9vbCBpc19pbnRlcm5hbCkgeworKyAgaWYgKGlzX2ludGVybmFsKSB7CisrICAgIGlu dDY0X3QqIHAgPSByZWludGVycHJldF9jYXN0PGludDY0X3QqPihidWZmZXJfc3RhcnRfICsgcG9z KTsKKysgICAgaW50NjRfdCBhZGRyZXNzID0gKnA7CisrICAgIGlmIChhZGRyZXNzID09IGtFbmRP Zkp1bXBDaGFpbikgeworKyAgICAgIHJldHVybiBrRW5kT2ZDaGFpbjsKKysgICAgfSBlbHNlIHsK KysgICAgICBpbnQ2NF90IGluc3RyX2FkZHJlc3MgPSByZWludGVycHJldF9jYXN0PGludDY0X3Q+ KHApOworKyAgICAgIERDSEVDSyhpbnN0cl9hZGRyZXNzIC0gYWRkcmVzcyA8IElOVF9NQVgpOwor KyAgICAgIGludCBkZWx0YSA9IHN0YXRpY19jYXN0PGludD4oaW5zdHJfYWRkcmVzcyAtIGFkZHJl c3MpOworKyAgICAgIERDSEVDSyhwb3MgPiBkZWx0YSk7CisrICAgICAgcmV0dXJuIHBvcyAtIGRl bHRhOworKyAgICB9CisrICB9CisrICBJbnN0ciBpbnN0ciA9IGluc3RyX2F0KHBvcyk7CisrICBE RUJVR19QUklOVEYoInRhcmdldF9hdDogJXAgKCVkKVxuXHQiLAorKyAgICAgICAgICAgICAgIHJl aW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihidWZmZXJfc3RhcnRfICsgcG9zKSwgcG9zKTsKKysgIGRp c2Fzc2VtYmxlSW5zdHIoaW5zdHIpOworKyAgaWYgKElzQnJhbmNoKGluc3RyKSkgeworKyAgICBp bnQzMl90IGltbTEzID0gQnJhbmNoT2Zmc2V0KGluc3RyKTsKKysgICAgaWYgKGltbTEzID09IGtF bmRPZkp1bXBDaGFpbikgeworKyAgICAgIC8vIEVuZE9mQ2hhaW4gc2VudGluZWwgaXMgcmV0dXJu ZWQgZGlyZWN0bHksIG5vdCByZWxhdGl2ZSB0byBwYyBvciBwb3MuCisrICAgICAgcmV0dXJuIGtF bmRPZkNoYWluOworKyAgICB9IGVsc2UgeworKyAgICAgIHJldHVybiBwb3MgKyBpbW0xMzsKKysg ICAgfQorKyAgfSBlbHNlIGlmIChJc0phbChpbnN0cikpIHsKKysgICAgaW50MzJfdCBpbW0yMSA9 IEp1bXBPZmZzZXQoaW5zdHIpOworKyAgICBpZiAoaW1tMjEgPT0ga0VuZE9mSnVtcENoYWluKSB7 CisrICAgICAgLy8gRW5kT2ZDaGFpbiBzZW50aW5lbCBpcyByZXR1cm5lZCBkaXJlY3RseSwgbm90 IHJlbGF0aXZlIHRvIHBjIG9yIHBvcy4KKysgICAgICByZXR1cm4ga0VuZE9mQ2hhaW47CisrICAg IH0gZWxzZSB7CisrICAgICAgcmV0dXJuIHBvcyArIGltbTIxOworKyAgICB9CisrICB9IGVsc2Ug aWYgKElzSmFscihpbnN0cikpIHsKKysgICAgaW50MzJfdCBpbW0xMiA9IGluc3RyID4+IDIwOwor KyAgICBpZiAoaW1tMTIgPT0ga0VuZE9mSnVtcENoYWluKSB7CisrICAgICAgLy8gRW5kT2ZDaGFp biBzZW50aW5lbCBpcyByZXR1cm5lZCBkaXJlY3RseSwgbm90IHJlbGF0aXZlIHRvIHBjIG9yIHBv cy4KKysgICAgICByZXR1cm4ga0VuZE9mQ2hhaW47CisrICAgIH0gZWxzZSB7CisrICAgICAgcmV0 dXJuIHBvcyArIGltbTEyOworKyAgICB9CisrICB9IGVsc2UgaWYgKElzTHVpKGluc3RyKSkgewor KyAgICBBZGRyZXNzIHBjID0gcmVpbnRlcnByZXRfY2FzdDxBZGRyZXNzPihidWZmZXJfc3RhcnRf ICsgcG9zKTsKKysgICAgcGMgPSB0YXJnZXRfYWRkcmVzc19hdChwYyk7CisrICAgIHVpbnQ2NF90 IGluc3RyX2FkZHJlc3MgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihidWZmZXJfc3RhcnRf ICsgcG9zKTsKKysgICAgdWludDY0X3QgaW1tID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4o cGMpOworKyAgICBpZihpbW0gPT0ga0VuZE9mSnVtcENoYWluKSB7CisrICAgICAgcmV0dXJuIGtF bmRPZkNoYWluOworKyAgICB9IGVsc2UgeworKyAgICAgIERDSEVDSyhpbnN0cl9hZGRyZXNzIC0g aW1tIDwgSU5UX01BWCk7CisrICAgICAgaW50MzJfdCBkZWx0YSA9IHN0YXRpY19jYXN0PGludDMy X3Q+KGluc3RyX2FkZHJlc3MgLSBpbW0pOworKyAgICAgIERDSEVDSyhwb3MgPiBkZWx0YSk7Cisr ICAgICAgcmV0dXJuIHBvcyAtIGRlbHRhOworKyAgICB9CisrICB9IGVsc2UgaWYgKElzQXVpcGMo aW5zdHIpKSB7CisrICAgIEluc3RyIGluc3RyX2F1aXBjID0gaW5zdHI7CisrICAgIEluc3RyIGlu c3RyX2phbHIgPSBpbnN0cl9hdChwb3MgKyA0KTsKKysgICAgRENIRUNLKElzSmFscihpbnN0cl9q YWxyKSk7CisrICAgIGludDMyX3Qgb2Zmc2V0ID0gQnJhY2hsb25nT2Zmc2V0KGluc3RyX2F1aXBj LCBpbnN0cl9qYWxyKTsKKysgICAgaWYob2Zmc2V0ICA9PSBrRW5kT2ZKdW1wQ2hhaW4pIAorKyAg ICAgIHJldHVybiBrRW5kT2ZDaGFpbjsKKysgICAgcmV0dXJuIG9mZnNldCArIHBvczsKKysgIH0g ZWxzZSB7CisrICAgIC8vIEVtaXR0ZWQgbGFiZWwgY29uc3RhbnQsIG5vdCBwYXJ0IG9mIGEgYnJh bmNoLgorKyAgICBpZiAoaW5zdHIgPT0gMCkgeworKyAgICAgIHJldHVybiBrRW5kT2ZDaGFpbjsK KysgICAgfSBlbHNlIHsKKysgICAgICBpbnQzMl90IGltbTE4ID0gKChpbnN0ciAmIHN0YXRpY19j YXN0PGludDMyX3Q+KGtJbW0xNk1hc2spKSA8PCAxNikgPj4gMTQ7CisrICAgICAgcmV0dXJuIChp bW0xOCArIHBvcyk7CisrICAgIH0KKysgIH0KKyt9CisrCisrc3RhdGljIGlubGluZSBJbnN0ciBT ZXRCcmFuY2hPZmZzZXQoaW50MzJfdCBwb3MsIGludDMyX3QgdGFyZ2V0X3BvcywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0ciBpbnN0cikgeworKyAgaW50MzJfdCBp bW0gPSB0YXJnZXRfcG9zIC0gcG9zOworKyAgRENIRUNLX0VRKGltbSAmIDEsIDApOworKyAgRENI RUNLKGlzX2ludG4oaW1tLCBBc3NlbWJsZXI6OmtCcmFuY2hPZmZzZXRCaXRzKSk7CisrCisrICBp bnN0ciAmPSB+a0JJbW0xMk1hc2s7CisrICBpbnQzMl90IGltbTEyID0gKChpbW0gJiAweDgwMCkg Pj4gNCkgfCAgIC8vIGJpdCAgMTEKKysgICAgICAgICAgICAgICAgICAoKGltbSAmIDB4MWUpIDw8 IDcpIHwgICAgLy8gYml0cyA0LTEKKysgICAgICAgICAgICAgICAgICAoKGltbSAmIDB4N2UwKSA8 PCAyMCkgfCAgLy8gYml0cyAxMC01CisrICAgICAgICAgICAgICAgICAgKChpbW0gJiAweDEwMDAp IDw8IDE5KTsgIC8vIGJpdCAxMgorKworKyAgcmV0dXJuIGluc3RyIHwgKGltbTEyICYga0JJbW0x Mk1hc2spOworK30KKysKKytzdGF0aWMgaW5saW5lIEluc3RyIFNldEphbE9mZnNldChpbnQzMl90 IHBvcywgaW50MzJfdCB0YXJnZXRfcG9zLCBJbnN0ciBpbnN0cikgeworKyAgaW50MzJfdCBpbW0g PSB0YXJnZXRfcG9zIC0gcG9zOworKyAgRENIRUNLX0VRKGltbSAmIDEsIDApOworKyAgRENIRUNL KGlzX2ludG4oaW1tLCBBc3NlbWJsZXI6OmtKdW1wT2Zmc2V0Qml0cykpOworKworKyAgaW5zdHIg Jj0gfmtJbW0yME1hc2s7CisrICBpbnQzMl90IGltbTIwID0gKGltbSAmIDB4ZmYwMDApIHwgICAg ICAgICAgLy8gYml0cyAxOS0xMgorKyAgICAgICAgICAgICAgICAgICgoaW1tICYgMHg4MDApIDw8 IDkpIHwgICAgIC8vIGJpdCAgMTEKKysgICAgICAgICAgICAgICAgICAoKGltbSAmIDB4N2ZlKSA8 PCAyMCkgfCAgICAvLyBiaXRzIDEwLTEKKysgICAgICAgICAgICAgICAgICAoKGltbSAmIDB4MTAw MDAwKSA8PCAxMSk7ICAvLyBiaXQgIDIwCisrCisrICByZXR1cm4gaW5zdHIgfCAoaW1tMjAgJiBr SW1tMjBNYXNrKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnRhcmdldF9hdF9wdXQoaW50IHBv cywgaW50IHRhcmdldF9wb3MsIGJvb2wgaXNfaW50ZXJuYWwpIHsKKysgIGlmIChpc19pbnRlcm5h bCkgeworKyAgICB1aW50NjRfdCBpbW0gPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihidWZm ZXJfc3RhcnRfKSArIHRhcmdldF9wb3M7CisrICAgICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90 Kj4oYnVmZmVyX3N0YXJ0XyArIHBvcykgPSBpbW07CisrICAgIHJldHVybjsKKysgIH0KKysgIERF QlVHX1BSSU5URigidGFyZ2V0X2F0X3B1dDogJXAgKCVkKSB0byAlcCAoJWQpXG4iLAorKyAgICAg ICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihidWZmZXJfc3RhcnRfICsgcG9zKSwg cG9zLAorKyAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihidWZmZXJfc3Rh cnRfICsgdGFyZ2V0X3BvcyksCisrICAgICAgICAgICAgICAgdGFyZ2V0X3Bvcyk7CisrICBJbnN0 ciBpbnN0ciA9IGluc3RyX2F0KHBvcyk7CisrCisrICBpZiAoSXNCcmFuY2goaW5zdHIpKSB7Cisr ICAgIGluc3RyID0gU2V0QnJhbmNoT2Zmc2V0KHBvcywgdGFyZ2V0X3BvcywgaW5zdHIpOworKyAg ICBpbnN0cl9hdF9wdXQocG9zLCBpbnN0cik7CisrICB9IGVsc2UgaWYgKElzSmFsKGluc3RyKSkg eworKyAgICBpbnN0ciA9IFNldEphbE9mZnNldChwb3MsIHRhcmdldF9wb3MsIGluc3RyKTsKKysg ICAgaW5zdHJfYXRfcHV0KHBvcywgaW5zdHIpOworKyAgfSBlbHNlIGlmIChJc0x1aShpbnN0cikp IHsKKysgICAgQWRkcmVzcyBwYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8QWRkcmVzcz4oYnVmZmVyX3N0 YXJ0XyArIHBvcyk7CisrICAgIHNldF90YXJnZXRfdmFsdWVfYXQocGMsIHJlaW50ZXJwcmV0X2Nh c3Q8dWludDY0X3Q+KGJ1ZmZlcl9zdGFydF8gKyB0YXJnZXRfcG9zKSk7CisrICB9IGVsc2UgaWYg KElzQXVpcGMoaW5zdHIpKSB7CisrICAgIEluc3RyIGluc3RyX2F1aXBjID0gaW5zdHI7CisrICAg IEluc3RyIGluc3RyX2phbHIgPSBpbnN0cl9hdChwb3MgKyA0KTsKKysgICAgRENIRUNLKElzSmFs cihpbnN0cl9qYWxyKSk7CisrCisrICAgIGludDY0X3Qgb2Zmc2V0ID0gdGFyZ2V0X3BvcyAtIHBv czsKKysgICAgRENIRUNLKGlzX2ludDMyKG9mZnNldCkpOworKworKyAgICBpbnQzMl90IEhpMjAg PSAoKChpbnQzMl90KW9mZnNldCArIDB4ODAwKSA+PiAxMik7CisrICAgIGludDMyX3QgTG8xMiA9 IChpbnQzMl90KW9mZnNldCA8PCAyMCA+PiAyMDsKKysKKysgICAgY29uc3QgaW50IGtJbW0zMV8x Mk1hc2sgPSAoKDEgPDwgMjApIC0gMSkgPDwgMTI7CisrICAgIGNvbnN0IGludCBrSW1tMTlfME1h c2sgPSAoKDEgPDwgMjApIC0gMSk7CisrICAgIGluc3RyX2F1aXBjID0gKGluc3RyX2F1aXBjICYg fmtJbW0zMV8xMk1hc2spIHwKKysgICAgICAgICAgICAgICAgICAoKEhpMjAgJiBrSW1tMTlfME1h c2spIDw8IDEyKTsKKysgICAgaW5zdHJfYXRfcHV0KHBvcywgaW5zdHJfYXVpcGMpOworKworKyAg ICBjb25zdCBpbnQga0ltbTMxXzIwTWFzayA9ICgoMSA8PCAxMikgLSAxKSA8PCAyMDsKKysgICAg Y29uc3QgaW50IGtJbW0xMV8wTWFzayA9ICgoMSA8PCAxMikgLSAxKTsKKysgICAgaW5zdHJfamFs ciA9IChpbnN0cl9qYWxyICYgfmtJbW0zMV8yME1hc2spIHwKKysgICAgICAgICAgICAgICAgICgo TG8xMiAmIGtJbW0xMV8wTWFzaykgPDwgMjApOworKyAgICBpbnN0cl9hdF9wdXQocG9zICsgNCwg aW5zdHJfamFscik7CisrICB9IGVsc2UgeworKyAgICAvLyBFbWl0dGVkIGxhYmVsIGNvbnN0YW50 LCBub3QgcGFydCBvZiBhIGJyYW5jaC4KKysgICAgLy8gTWFrZSBsYWJlbCByZWxhdGl2ZSB0byBD b2RlIHBvaW50ZXIgb2YgZ2VuZXJhdGVkIENvZGUgb2JqZWN0LgorKyAgICBpbnN0cl9hdF9wdXQo cG9zLCB0YXJnZXRfcG9zICsgKENvZGU6OmtIZWFkZXJTaXplIC0ga0hlYXBPYmplY3RUYWcpKTsK KysgIH0KKysgIGRpc2Fzc2VtYmxlSW5zdHIoaW5zdHIpOworK30KKysKKyt2b2lkIEFzc2VtYmxl cjo6cHJpbnQoY29uc3QgTGFiZWwqIEwpIHsKKysgIGlmIChMLT5pc191bnVzZWQoKSkgeworKyAg ICBQcmludEYoInVudXNlZCBsYWJlbFxuIik7CisrICB9IGVsc2UgaWYgKEwtPmlzX2JvdW5kKCkp IHsKKysgICAgUHJpbnRGKCJib3VuZCBsYWJlbCB0byAlZFxuIiwgTC0+cG9zKCkpOworKyAgfSBl bHNlIGlmIChMLT5pc19saW5rZWQoKSkgeworKyAgICBMYWJlbCBsOworKyAgICBsLmxpbmtfdG8o TC0+cG9zKCkpOworKyAgICBQcmludEYoInVuYm91bmQgbGFiZWwiKTsKKysgICAgd2hpbGUgKGwu aXNfbGlua2VkKCkpIHsKKysgICAgICBQcmludEYoIkAgJWQgIiwgbC5wb3MoKSk7CisrICAgICAg SW5zdHIgaW5zdHIgPSBpbnN0cl9hdChsLnBvcygpKTsKKysgICAgICBpZiAoKGluc3RyICYgfmtJ bW0xNk1hc2spID09IDApIHsKKysgICAgICAgIFByaW50RigidmFsdWVcbiIpOworKyAgICAgIH0g ZWxzZSB7CisrICAgICAgICBQcmludEYoIiVkXG4iLCBpbnN0cik7CisrICAgICAgfQorKyAgICAg IG5leHQoJmwsIGlzX2ludGVybmFsX3JlZmVyZW5jZSgmbCkpOworKyAgICB9CisrICB9IGVsc2Ug eworKyAgICBQcmludEYoImxhYmVsIGluIGluY29uc2lzdGVudCBzdGF0ZSAocG9zID0gJWQpXG4i LCBMLT5wb3NfKTsKKysgIH0KKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmJpbmRfdG8oTGFiZWwq IEwsIGludCBwb3MpIHsKKysgIERDSEVDSygwIDw9IHBvcyAmJiBwb3MgPD0gcGNfb2Zmc2V0KCkp OyAgLy8gTXVzdCBoYXZlIHZhbGlkIGJpbmRpbmcgcG9zaXRpb24uCisrICBERUJVR19QUklOVEYo ImJpbmRpbmcgJWQgdG8gbGFiZWwgJXBcbiIsIHBvcywgTCk7CisrICBpbnQgdHJhbXBvbGluZV9w b3MgPSBrSW52YWxpZFNsb3RQb3M7CisrICBib29sIGlzX2ludGVybmFsID0gZmFsc2U7CisrICBp ZiAoTC0+aXNfbGlua2VkKCkgJiYgIXRyYW1wb2xpbmVfZW1pdHRlZF8pIHsKKysgICAgdW5ib3Vu ZF9sYWJlbHNfY291bnRfLS07CisrICAgIGlmICghaXNfaW50ZXJuYWxfcmVmZXJlbmNlKEwpKSB7 CisrICAgICAgbmV4dF9idWZmZXJfY2hlY2tfICs9IGtUcmFtcG9saW5lU2xvdHNTaXplOworKyAg ICB9CisrICB9CisrCisrICB3aGlsZSAoTC0+aXNfbGlua2VkKCkpIHsKKysgICAgaW50IGZpeHVw X3BvcyA9IEwtPnBvcygpOworKyAgICBpbnQgZGlzdCA9IHBvcyAtIGZpeHVwX3BvczsKKysgICAg aXNfaW50ZXJuYWwgPSBpc19pbnRlcm5hbF9yZWZlcmVuY2UoTCk7CisrICAgIG5leHQoTCwgaXNf aW50ZXJuYWwpOyAgLy8gQ2FsbCBuZXh0IGJlZm9yZSBvdmVyd3JpdGluZyBsaW5rIHdpdGggdGFy Z2V0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgZml4dXBfcG9zLgorKyAgICBJ bnN0ciBpbnN0ciA9IGluc3RyX2F0KGZpeHVwX3Bvcyk7CisrICAgIERFQlVHX1BSSU5URigiXHRm aXh1cDogJWQgdG8gJWRcbiIsIGZpeHVwX3BvcywgZGlzdCk7CisrICAgIGlmIChpc19pbnRlcm5h bCkgeworKyAgICAgIHRhcmdldF9hdF9wdXQoZml4dXBfcG9zLCBwb3MsIGlzX2ludGVybmFsKTsK KysgICAgfSBlbHNlIHsKKysgICAgICBpZiAoSXNCcmFuY2goaW5zdHIpKSB7CisrICAgICAgICBp ZiAoZGlzdCA+IGtNYXhCcmFuY2hPZmZzZXQpIHsKKysgICAgICAgICAgaWYgKHRyYW1wb2xpbmVf cG9zID09IGtJbnZhbGlkU2xvdFBvcykgeworKyAgICAgICAgICAgIHRyYW1wb2xpbmVfcG9zID0g Z2V0X3RyYW1wb2xpbmVfZW50cnkoZml4dXBfcG9zKTsKKysgICAgICAgICAgICBDSEVDS19ORSh0 cmFtcG9saW5lX3Bvcywga0ludmFsaWRTbG90UG9zKTsKKysgICAgICAgICAgfQorKyAgICAgICAg ICBDSEVDSygodHJhbXBvbGluZV9wb3MgLSBmaXh1cF9wb3MpIDw9IGtNYXhCcmFuY2hPZmZzZXQp OworKyAgICAgICAgICBERUJVR19QUklOVEYoIlx0XHR0cmFtcG9saW5pbmc6ICVkXG4iLCB0cmFt cG9saW5lX3Bvcyk7CisrICAgICAgICAgIHRhcmdldF9hdF9wdXQoZml4dXBfcG9zLCB0cmFtcG9s aW5lX3BvcywgZmFsc2UpOworKyAgICAgICAgICBmaXh1cF9wb3MgPSB0cmFtcG9saW5lX3BvczsK KysgICAgICAgIH0KKysgICAgICAgIHRhcmdldF9hdF9wdXQoZml4dXBfcG9zLCBwb3MsIGZhbHNl KTsKKysgICAgICB9IGVsc2UgaWYgKElzSmFsKGluc3RyKSkgeworKyAgICAgICAgaWYgKGRpc3Qg PiBrTWF4SnVtcE9mZnNldCkgeworKyAgICAgICAgICBpZiAodHJhbXBvbGluZV9wb3MgPT0ga0lu dmFsaWRTbG90UG9zKSB7CisrICAgICAgICAgICAgdHJhbXBvbGluZV9wb3MgPSBnZXRfdHJhbXBv bGluZV9lbnRyeShmaXh1cF9wb3MpOworKyAgICAgICAgICAgIENIRUNLX05FKHRyYW1wb2xpbmVf cG9zLCBrSW52YWxpZFNsb3RQb3MpOworKyAgICAgICAgICB9CisrICAgICAgICAgIENIRUNLKCh0 cmFtcG9saW5lX3BvcyAtIGZpeHVwX3BvcykgPD0ga01heEp1bXBPZmZzZXQpOworKyAgICAgICAg ICBERUJVR19QUklOVEYoIlx0XHR0cmFtcG9saW5pbmc6ICVkXG4iLCB0cmFtcG9saW5lX3Bvcyk7 CisrICAgICAgICAgIHRhcmdldF9hdF9wdXQoZml4dXBfcG9zLCB0cmFtcG9saW5lX3BvcywgZmFs c2UpOworKyAgICAgICAgICBmaXh1cF9wb3MgPSB0cmFtcG9saW5lX3BvczsKKysgICAgICAgIH0K KysgICAgICAgIHRhcmdldF9hdF9wdXQoZml4dXBfcG9zLCBwb3MsIGZhbHNlKTsKKysgICAgICB9 IGVsc2UgeworKyAgICAgICAgdGFyZ2V0X2F0X3B1dChmaXh1cF9wb3MsIHBvcywgZmFsc2UpOwor KyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgTC0+YmluZF90byhwb3MpOworKworKyAgLy8gS2Vl cCB0cmFjayBvZiB0aGUgbGFzdCBib3VuZCBsYWJlbCBzbyB3ZSBkb24ndCBlbGltaW5hdGUgYW55 IGluc3RydWN0aW9ucworKyAgLy8gYmVmb3JlIGEgYm91bmQgbGFiZWwuCisrICBpZiAocG9zID4g bGFzdF9ib3VuZF9wb3NfKSBsYXN0X2JvdW5kX3Bvc18gPSBwb3M7CisrfQorKworK3ZvaWQgQXNz ZW1ibGVyOjpiaW5kKExhYmVsKiBMKSB7CisrICBEQ0hFQ0soIUwtPmlzX2JvdW5kKCkpOyAgLy8g TGFiZWwgY2FuIG9ubHkgYmUgYm91bmQgb25jZS4KKysgIGJpbmRfdG8oTCwgcGNfb2Zmc2V0KCkp OworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6bmV4dChMYWJlbCogTCwgYm9vbCBpc19pbnRlcm5h bCkgeworKyAgRENIRUNLKEwtPmlzX2xpbmtlZCgpKTsKKysgIGludCBsaW5rID0gdGFyZ2V0X2F0 KEwtPnBvcygpLCBpc19pbnRlcm5hbCk7CisrICBpZiAobGluayA9PSBrRW5kT2ZDaGFpbikgewor KyAgICBMLT5VbnVzZSgpOworKyAgfSBlbHNlIHsKKysgICAgRENIRUNLX0dUKGxpbmssIDApOwor KyAgICBERUJVR19QUklOVEYoIm5leHQ6ICVwIHRvICVwICglZClcbiIsIEwsCisrICAgICAgICAg ICAgICAgICByZWludGVycHJldF9jYXN0PEluc3RyKj4oYnVmZmVyX3N0YXJ0XyArIGxpbmspLCBs aW5rKTsKKysgICAgTC0+bGlua190byhsaW5rKTsKKysgIH0KKyt9CisrCisrYm9vbCBBc3NlbWJs ZXI6OmlzX25lYXIoTGFiZWwqIEwpIHsKKysgIERDSEVDSyhMLT5pc19ib3VuZCgpKTsKKysgIHJl dHVybiBpc19pbnRuKChwY19vZmZzZXQoKSAtIEwtPnBvcygpKSwga0p1bXBPZmZzZXRCaXRzKTsK Kyt9CisrCisrYm9vbCBBc3NlbWJsZXI6OmlzX25lYXIoTGFiZWwqIEwsIE9mZnNldFNpemUgYml0 cykgeworKyAgaWYgKEwgPT0gbnVsbHB0ciB8fCAhTC0+aXNfYm91bmQoKSkgcmV0dXJuIHRydWU7 CisrICByZXR1cm4gaXNfaW50bigocGNfb2Zmc2V0KCkgLSBMLT5wb3MoKSksIGJpdHMpOworK30K KysKKytib29sIEFzc2VtYmxlcjo6aXNfbmVhcl9icmFuY2goTGFiZWwqIEwpIHsKKysgIERDSEVD SyhMLT5pc19ib3VuZCgpKTsKKysgIHJldHVybiBpc19pbnRuKChwY19vZmZzZXQoKSAtIEwtPnBv cygpKSwga0JyYW5jaE9mZnNldEJpdHMpOworK30KKysKKytpbnQgQXNzZW1ibGVyOjpCcmFuY2hP ZmZzZXQoSW5zdHIgaW5zdHIpIHsKKysgIC8vIHwgaW1tWzEyXSB8IGltbVsxMDo1XSB8IHJzMiB8 IHJzMSB8IGZ1bmN0MyB8IGltbVs0OjF8MTFdIHwgb3Bjb2RlIHwKKysgIC8vICAzMSAgICAgICAg ICAyNSAgICAgICAgICAgICAgICAgICAgICAxMSAgICAgICAgICA3CisrICBpbnQzMl90IGltbTEz ID0gKChpbnN0ciAmIDB4ZjAwKSA+PiA3KSB8ICgoaW5zdHIgJiAweDdlMDAwMDAwKSA+PiAyMCkg fAorKyAgICAgICAgICAgICAgICAgICgoaW5zdHIgJiAweDgwKSA8PCA0KSB8ICgoaW5zdHIgJiAw eDgwMDAwMDAwKSA+PiAxOSk7CisrICBpbW0xMyA9IGltbTEzIDw8IDE5ID4+IDE5OworKyAgcmV0 dXJuIGltbTEzOworK30KKysKKytpbnQgQXNzZW1ibGVyOjpKdW1wT2Zmc2V0KEluc3RyIGluc3Ry KSB7CisrICBpbnQzMl90IGltbTIxID0gKChpbnN0ciAmIDB4N2ZlMDAwMDApID4+IDIwKSB8ICgo aW5zdHIgJiAweDEwMDAwMCkgPj4gOSkgfAorKyAgICAgICAgICAgICAgICAgIChpbnN0ciAmIDB4 ZmYwMDApIHwgKChpbnN0ciAmIDB4ODAwMDAwMDApID4+IDExKTsKKysgIGltbTIxID0gaW1tMjEg PDwgMTEgPj4gMTE7CisrICByZXR1cm4gaW1tMjE7CisrfQorKworK2ludCBBc3NlbWJsZXI6OkJy YWNobG9uZ09mZnNldChJbnN0ciBhdWlwYywgSW5zdHIgamFscikgeworKyAgY29uc3QgaW50IGtJ bW0xOV8wTWFzayA9ICgoMSA8PCAyMCkgLSAxKTsKKysgIGludDMyX3QgaW1tX2F1aXBjID0gYXVp cGMgJiAoa0ltbTE5XzBNYXNrIDw8IDEyKTsKKysgIGludDMyX3QgaW1tX2phbHIgPSBqYWxyID4+ IDIwOworKyAgaW50MzJfdCBvZmZzZXQgPSBpbW1famFsciArIGltbV9hdWlwYzsKKysgIHJldHVy biBvZmZzZXQ7CisrfQorKworKy8vIFdlIGhhdmUgdG8gdXNlIGEgdGVtcG9yYXJ5IHJlZ2lzdGVy IGZvciB0aGluZ3MgdGhhdCBjYW4gYmUgcmVsb2NhdGVkIGV2ZW4KKysvLyBpZiB0aGV5IGNhbiBi ZSBlbmNvZGVkIGluIFJJU0MtVidzIDEyIGJpdHMgb2YgaW1tZWRpYXRlLW9mZnNldCBpbnN0cnVj dGlvbgorKy8vIHNwYWNlLiAgVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIHJlbG9jYXRl ZCBsb2NhdGlvbiBjYW4gYmUgc2ltaWxhcmx5CisrLy8gZW5jb2RlZC4KKytib29sIEFzc2VtYmxl cjo6TXVzdFVzZVJlZyhSZWxvY0luZm86Ok1vZGUgcm1vZGUpIHsKKysgIHJldHVybiAhUmVsb2NJ bmZvOjpJc05vbmUocm1vZGUpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZGlzYXNzZW1ibGVJ bnN0cihJbnN0ciBpbnN0cikgeworKyAgaWYgKCFGTEFHX2RlYnVnX3Jpc2N2KSByZXR1cm47Cisr ICBkaXNhc206Ok5hbWVDb252ZXJ0ZXIgY29udmVydGVyOworKyAgZGlzYXNtOjpEaXNhc3NlbWJs ZXIgZGlzYXNtKGNvbnZlcnRlcik7CisrICBFbWJlZGRlZFZlY3RvcjxjaGFyLCAxMjg+IGRpc2Fz bV9idWZmZXI7CisrCisrICBkaXNhc20uSW5zdHJ1Y3Rpb25EZWNvZGUoZGlzYXNtX2J1ZmZlciwg cmVpbnRlcnByZXRfY2FzdDxieXRlKj4oJmluc3RyKSk7CisrICBERUJVR19QUklOVEYoIiVzXG4i LCBkaXNhc21fYnVmZmVyLmJlZ2luKCkpOworK30KKysKKysvLyAtLS0tLSBUb3AtbGV2ZWwgaW5z dHJ1Y3Rpb24gZm9ybWF0cyBtYXRjaCB0aG9zZSBpbiB0aGUgSVNBIG1hbnVhbAorKy8vIChSLCBJ LCBTLCBCLCBVLCBKKS4gVGhlc2UgbWF0Y2ggdGhlIGZvcm1hdHMgZGVmaW5lZCBpbiB0aGUgY29t cGlsZXIKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJSKHVpbnQ4X3QgZnVuY3Q3LCB1aW50OF90 IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgRENIRUNLKGlzX3VpbnQ3 KGZ1bmN0NykgJiYgaXNfdWludDMoZnVuY3QzKSAmJiByZC5pc192YWxpZCgpICYmCisrICAgICAg ICAgcnMxLmlzX3ZhbGlkKCkgJiYgcnMyLmlzX3ZhbGlkKCkpOworKyAgSW5zdHIgaW5zdHIgPSBv cGNvZGUgfCAocmQuY29kZSgpIDw8IGtSZFNoaWZ0KSB8IChmdW5jdDMgPDwga0Z1bmN0M1NoaWZ0 KSB8CisrICAgICAgICAgICAgICAgIChyczEuY29kZSgpIDw8IGtSczFTaGlmdCkgfCAocnMyLmNv ZGUoKSA8PCBrUnMyU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKGZ1bmN0NyA8PCBrRnVuY3Q3 U2hpZnQpOworKyAgZW1pdChpbnN0cik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpHZW5JbnN0 clIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBV UmVnaXN0ZXIgcnMyKSB7CisrICBEQ0hFQ0soaXNfdWludDcoZnVuY3Q3KSAmJiBpc191aW50Myhm dW5jdDMpICYmIHJkLmlzX3ZhbGlkKCkgJiYKKysgICAgICAgICByczEuaXNfdmFsaWQoKSAmJiBy czIuaXNfdmFsaWQoKSk7CisrICBJbnN0ciBpbnN0ciA9IG9wY29kZSB8IChyZC5jb2RlKCkgPDwg a1JkU2hpZnQpIHwgKGZ1bmN0MyA8PCBrRnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgICAg KHJzMS5jb2RlKCkgPDwga1JzMVNoaWZ0KSB8IChyczIuY29kZSgpIDw8IGtSczJTaGlmdCkgfAor KyAgICAgICAgICAgICAgICAoZnVuY3Q3IDw8IGtGdW5jdDdTaGlmdCk7CisrICBlbWl0KGluc3Ry KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyUih1aW50OF90IGZ1bmN0NywgdWlu dDhfdCBmdW5jdDMsIE9wY29kZSBvcGNvZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIERDSEVDSyhp c191aW50NyhmdW5jdDcpICYmIGlzX3VpbnQzKGZ1bmN0MykgJiYgcmQuaXNfdmFsaWQoKSAmJgor KyAgICAgICAgIHJzMS5pc192YWxpZCgpICYmIHJzMi5pc192YWxpZCgpKTsKKysgIEluc3RyIGlu c3RyID0gb3Bjb2RlIHwgKHJkLmNvZGUoKSA8PCBrUmRTaGlmdCkgfCAoZnVuY3QzIDw8IGtGdW5j dDNTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAocnMxLmNvZGUoKSA8PCBrUnMxU2hpZnQpIHwg KHJzMi5jb2RlKCkgPDwga1JzMlNoaWZ0KSB8CisrICAgICAgICAgICAgICAgIChmdW5jdDcgPDwg a0Z1bmN0N1NoaWZ0KTsKKysgIGVtaXQoaW5zdHIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6 R2VuSW5zdHJSKHVpbnQ4X3QgZnVuY3Q3LCB1aW50OF90IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEs IFJlZ2lzdGVyIHJzMikgeworKyAgRENIRUNLKGlzX3VpbnQ3KGZ1bmN0NykgJiYgaXNfdWludDMo ZnVuY3QzKSAmJiByZC5pc192YWxpZCgpICYmCisrICAgICAgICAgcnMxLmlzX3ZhbGlkKCkgJiYg cnMyLmlzX3ZhbGlkKCkpOworKyAgSW5zdHIgaW5zdHIgPSBvcGNvZGUgfCAocmQuY29kZSgpIDw8 IGtSZFNoaWZ0KSB8IChmdW5jdDMgPDwga0Z1bmN0M1NoaWZ0KSB8CisrICAgICAgICAgICAgICAg IChyczEuY29kZSgpIDw8IGtSczFTaGlmdCkgfCAocnMyLmNvZGUoKSA8PCBrUnMyU2hpZnQpIHwK KysgICAgICAgICAgICAgICAgKGZ1bmN0NyA8PCBrRnVuY3Q3U2hpZnQpOworKyAgZW1pdChpbnN0 cik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpHZW5JbnN0clIodWludDhfdCBmdW5jdDcsIHVp bnQ4X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg RlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7CisrICBEQ0hF Q0soaXNfdWludDcoZnVuY3Q3KSAmJiBpc191aW50MyhmdW5jdDMpICYmIHJkLmlzX3ZhbGlkKCkg JiYKKysgICAgICAgICByczEuaXNfdmFsaWQoKSAmJiByczIuaXNfdmFsaWQoKSk7CisrICBJbnN0 ciBpbnN0ciA9IG9wY29kZSB8IChyZC5jb2RlKCkgPDwga1JkU2hpZnQpIHwgKGZ1bmN0MyA8PCBr RnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKHJzMS5jb2RlKCkgPDwga1JzMVNoaWZ0 KSB8IChyczIuY29kZSgpIDw8IGtSczJTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAoZnVuY3Q3 IDw8IGtGdW5jdDdTaGlmdCk7CisrICBlbWl0KGluc3RyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJs ZXI6Okdlbkluc3RyUih1aW50OF90IGZ1bmN0NywgdWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNv ZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIg cnMxLCBGUFVSZWdpc3RlciByczIpIHsKKysgIERDSEVDSyhpc191aW50NyhmdW5jdDcpICYmIGlz X3VpbnQzKGZ1bmN0MykgJiYgcmQuaXNfdmFsaWQoKSAmJgorKyAgICAgICAgIHJzMS5pc192YWxp ZCgpICYmIHJzMi5pc192YWxpZCgpKTsKKysgIEluc3RyIGluc3RyID0gb3Bjb2RlIHwgKHJkLmNv ZGUoKSA8PCBrUmRTaGlmdCkgfCAoZnVuY3QzIDw8IGtGdW5jdDNTaGlmdCkgfAorKyAgICAgICAg ICAgICAgICAocnMxLmNvZGUoKSA8PCBrUnMxU2hpZnQpIHwgKHJzMi5jb2RlKCkgPDwga1JzMlNo aWZ0KSB8CisrICAgICAgICAgICAgICAgIChmdW5jdDcgPDwga0Z1bmN0N1NoaWZ0KTsKKysgIGVt aXQoaW5zdHIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJSNCh1aW50OF90IGZ1 bmN0MiwgT3Bjb2RlIG9wY29kZSwgUmVnaXN0ZXIgcmQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIFJlZ2lzdGVyIHJzMywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICBSb3VuZGluZ01vZGUgZnJtKSB7CisrICBEQ0hFQ0soaXNfdWlu dDIoZnVuY3QyKSAmJiByZC5pc192YWxpZCgpICYmIHJzMS5pc192YWxpZCgpICYmCisrICAgICAg ICAgcnMyLmlzX3ZhbGlkKCkgJiYgcnMzLmlzX3ZhbGlkKCkgJiYgaXNfdWludDMoZnJtKSk7Cisr ICBJbnN0ciBpbnN0ciA9IG9wY29kZSB8IChyZC5jb2RlKCkgPDwga1JkU2hpZnQpIHwgKGZybSA8 PCBrRnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKHJzMS5jb2RlKCkgPDwga1JzMVNo aWZ0KSB8IChyczIuY29kZSgpIDw8IGtSczJTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAoZnVu Y3QyIDw8IGtGdW5jdDJTaGlmdCkgfCAocnMzLmNvZGUoKSA8PCBrUnMzU2hpZnQpOworKyAgZW1p dChpbnN0cik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpHZW5JbnN0clI0KHVpbnQ4X3QgZnVu Y3QyLCBPcGNvZGUgb3Bjb2RlLCBGUFVSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMiwgRlBVUmVnaXN0ZXIgcnMz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIERD SEVDSyhpc191aW50MihmdW5jdDIpICYmIHJkLmlzX3ZhbGlkKCkgJiYgcnMxLmlzX3ZhbGlkKCkg JiYKKysgICAgICAgICByczIuaXNfdmFsaWQoKSAmJiByczMuaXNfdmFsaWQoKSAmJiBpc191aW50 Myhmcm0pKTsKKysgIEluc3RyIGluc3RyID0gb3Bjb2RlIHwgKHJkLmNvZGUoKSA8PCBrUmRTaGlm dCkgfCAoZnJtIDw8IGtGdW5jdDNTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAocnMxLmNvZGUo KSA8PCBrUnMxU2hpZnQpIHwgKHJzMi5jb2RlKCkgPDwga1JzMlNoaWZ0KSB8CisrICAgICAgICAg ICAgICAgIChmdW5jdDIgPDwga0Z1bmN0MlNoaWZ0KSB8IChyczMuY29kZSgpIDw8IGtSczNTaGlm dCk7CisrICBlbWl0KGluc3RyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyUkF0 b21pYyh1aW50OF90IGZ1bmN0NSwgYm9vbCBhcSwgYm9vbCBybCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMx LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7CisrICBE Q0hFQ0soaXNfdWludDUoZnVuY3Q1KSAmJiBpc191aW50MyhmdW5jdDMpICYmIHJkLmlzX3ZhbGlk KCkgJiYKKysgICAgICAgICByczEuaXNfdmFsaWQoKSAmJiByczIuaXNfdmFsaWQoKSk7CisrICBJ bnN0ciBpbnN0ciA9IEFNTyB8IChyZC5jb2RlKCkgPDwga1JkU2hpZnQpIHwgKGZ1bmN0MyA8PCBr RnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKHJzMS5jb2RlKCkgPDwga1JzMVNoaWZ0 KSB8IChyczIuY29kZSgpIDw8IGtSczJTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAocmwgPDwg a1JsU2hpZnQpIHwgKGFxIDw8IGtBcVNoaWZ0KSB8IChmdW5jdDUgPDwga0Z1bmN0NVNoaWZ0KTsK KysgIGVtaXQoaW5zdHIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJSRnJtKHVp bnQ4X3QgZnVuY3Q3LCBPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByZCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyLCBSb3VuZGluZ01vZGUg ZnJtKSB7CisrICBEQ0hFQ0socmQuaXNfdmFsaWQoKSAmJiByczEuaXNfdmFsaWQoKSAmJiByczIu aXNfdmFsaWQoKSAmJiBpc191aW50Myhmcm0pKTsKKysgIEluc3RyIGluc3RyID0gb3Bjb2RlIHwg KHJkLmNvZGUoKSA8PCBrUmRTaGlmdCkgfCAoZnJtIDw8IGtGdW5jdDNTaGlmdCkgfAorKyAgICAg ICAgICAgICAgICAocnMxLmNvZGUoKSA8PCBrUnMxU2hpZnQpIHwgKHJzMi5jb2RlKCkgPDwga1Jz MlNoaWZ0KSB8CisrICAgICAgICAgICAgICAgIChmdW5jdDcgPDwga0Z1bmN0N1NoaWZ0KTsKKysg IGVtaXQoaW5zdHIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJJKHVpbnQ4X3Qg ZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIHJzMSwgaW50MTZfdCBpbW0xMikgeworKyAgRENIRUNLKGlzX3VpbnQz KGZ1bmN0MykgJiYgcmQuaXNfdmFsaWQoKSAmJiByczEuaXNfdmFsaWQoKSAmJgorKyAgICAgICAg IChpc191aW50MTIoaW1tMTIpIHx8IGlzX2ludDEyKGltbTEyKSkpOworKyAgSW5zdHIgaW5zdHIg PSBvcGNvZGUgfCAocmQuY29kZSgpIDw8IGtSZFNoaWZ0KSB8IChmdW5jdDMgPDwga0Z1bmN0M1No aWZ0KSB8CisrICAgICAgICAgICAgICAgIChyczEuY29kZSgpIDw8IGtSczFTaGlmdCkgfCAoaW1t MTIgPDwga0ltbTEyU2hpZnQpOworKyAgZW1pdChpbnN0cik7CisrfQorKworK3ZvaWQgQXNzZW1i bGVyOjpHZW5JbnN0ckkodWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNvZGUsIEZQVVJlZ2lzdGVy IHJkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMxLCBpbnQxNl90IGlt bTEyKSB7CisrICBEQ0hFQ0soaXNfdWludDMoZnVuY3QzKSAmJiByZC5pc192YWxpZCgpICYmIHJz MS5pc192YWxpZCgpICYmCisrICAgICAgICAgKGlzX3VpbnQxMihpbW0xMikgfHwgaXNfaW50MTIo aW1tMTIpKSk7CisrICBJbnN0ciBpbnN0ciA9IG9wY29kZSB8IChyZC5jb2RlKCkgPDwga1JkU2hp ZnQpIHwgKGZ1bmN0MyA8PCBrRnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKHJzMS5j b2RlKCkgPDwga1JzMVNoaWZ0KSB8IChpbW0xMiA8PCBrSW1tMTJTaGlmdCk7CisrICBlbWl0KGlu c3RyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RySVNoaWZ0KGJvb2wgYXJpdGhz aGlmdCwgdWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNvZGUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIHVpbnQ4X3Qgc2hhbXQpIHsK KysgIERDSEVDSyhpc191aW50MyhmdW5jdDMpICYmIHJkLmlzX3ZhbGlkKCkgJiYgcnMxLmlzX3Zh bGlkKCkgJiYKKysgICAgICAgICBpc191aW50NihzaGFtdCkpOworKyAgSW5zdHIgaW5zdHIgPSBv cGNvZGUgfCAocmQuY29kZSgpIDw8IGtSZFNoaWZ0KSB8IChmdW5jdDMgPDwga0Z1bmN0M1NoaWZ0 KSB8CisrICAgICAgICAgICAgICAgIChyczEuY29kZSgpIDw8IGtSczFTaGlmdCkgfCAoc2hhbXQg PDwga1NoYW10U2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKGFyaXRoc2hpZnQgPDwga0FyaXRo U2hpZnRTaGlmdCk7CisrICBlbWl0KGluc3RyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdl bkluc3RySVNoaWZ0Vyhib29sIGFyaXRoc2hpZnQsIHVpbnQ4X3QgZnVuY3QzLCBPcGNvZGUgb3Bj b2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmQsIFJlZ2lz dGVyIHJzMSwgdWludDhfdCBzaGFtdCkgeworKyAgRENIRUNLKGlzX3VpbnQzKGZ1bmN0MykgJiYg cmQuaXNfdmFsaWQoKSAmJiByczEuaXNfdmFsaWQoKSAmJgorKyAgICAgICAgIGlzX3VpbnQ1KHNo YW10KSk7CisrICBJbnN0ciBpbnN0ciA9IG9wY29kZSB8IChyZC5jb2RlKCkgPDwga1JkU2hpZnQp IHwgKGZ1bmN0MyA8PCBrRnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKHJzMS5jb2Rl KCkgPDwga1JzMVNoaWZ0KSB8IChzaGFtdCA8PCBrU2hhbXRXU2hpZnQpIHwKKysgICAgICAgICAg ICAgICAgKGFyaXRoc2hpZnQgPDwga0FyaXRoU2hpZnRTaGlmdCk7CisrICBlbWl0KGluc3RyKTsK Kyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyUyh1aW50OF90IGZ1bmN0MywgT3Bjb2Rl IG9wY29kZSwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgcnMyLCBpbnQxNl90IGltbTEyKSB7CisrICBEQ0hFQ0soaXNfdWludDMoZnVuY3QzKSAmJiBy czEuaXNfdmFsaWQoKSAmJiByczIuaXNfdmFsaWQoKSAmJgorKyAgICAgICAgIGlzX2ludDEyKGlt bTEyKSk7CisrICBJbnN0ciBpbnN0ciA9IG9wY29kZSB8ICgoaW1tMTIgJiAweDFmKSA8PCA3KSB8 ICAvLyBiaXRzICA0LTAKKysgICAgICAgICAgICAgICAgKGZ1bmN0MyA8PCBrRnVuY3QzU2hpZnQp IHwgKHJzMS5jb2RlKCkgPDwga1JzMVNoaWZ0KSB8CisrICAgICAgICAgICAgICAgIChyczIuY29k ZSgpIDw8IGtSczJTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAoKGltbTEyICYgMHhmZTApIDw8 IDIwKTsgIC8vIGJpdHMgMTEtNQorKyAgZW1pdChpbnN0cik7CisrfQorKworK3ZvaWQgQXNzZW1i bGVyOjpHZW5JbnN0clModWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNvZGUsIFJlZ2lzdGVyIHJz MSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJzMiwgaW50MTZfdCBp bW0xMikgeworKyAgRENIRUNLKGlzX3VpbnQzKGZ1bmN0MykgJiYgcnMxLmlzX3ZhbGlkKCkgJiYg cnMyLmlzX3ZhbGlkKCkgJiYKKysgICAgICAgICBpc19pbnQxMihpbW0xMikpOworKyAgSW5zdHIg aW5zdHIgPSBvcGNvZGUgfCAoKGltbTEyICYgMHgxZikgPDwgNykgfCAgLy8gYml0cyAgNC0wCisr ICAgICAgICAgICAgICAgIChmdW5jdDMgPDwga0Z1bmN0M1NoaWZ0KSB8IChyczEuY29kZSgpIDw8 IGtSczFTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAocnMyLmNvZGUoKSA8PCBrUnMyU2hpZnQp IHwKKysgICAgICAgICAgICAgICAgKChpbW0xMiAmIDB4ZmUwKSA8PCAyMCk7ICAvLyBiaXRzIDEx LTUKKysgIGVtaXQoaW5zdHIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJCKHVp bnQ4X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByczEsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlciByczIsIGludDE2X3QgaW1tMTMpIHsKKysgIERDSEVDSyhp c191aW50MyhmdW5jdDMpICYmIHJzMS5pc192YWxpZCgpICYmIHJzMi5pc192YWxpZCgpICYmCisr ICAgICAgICAgaXNfaW50MTMoaW1tMTMpICYmICgoaW1tMTMgJiAxKSA9PSAwKSk7CisrICBJbnN0 ciBpbnN0ciA9IG9wY29kZSB8ICgoaW1tMTMgJiAweDgwMCkgPj4gNCkgfCAgLy8gYml0ICAxMQor KyAgICAgICAgICAgICAgICAoKGltbTEzICYgMHgxZSkgPDwgNykgfCAgICAgICAgICAgIC8vIGJp dHMgNC0xCisrICAgICAgICAgICAgICAgIChmdW5jdDMgPDwga0Z1bmN0M1NoaWZ0KSB8IChyczEu Y29kZSgpIDw8IGtSczFTaGlmdCkgfAorKyAgICAgICAgICAgICAgICAocnMyLmNvZGUoKSA8PCBr UnMyU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKChpbW0xMyAmIDB4N2UwKSA8PCAyMCkgfCAg Ly8gYml0cyAxMC01CisrICAgICAgICAgICAgICAgICgoaW1tMTMgJiAweDEwMDApIDw8IDE5KTsg IC8vIGJpdCAxMgorKyAgZW1pdChpbnN0cik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpHZW5J bnN0clUoT3Bjb2RlIG9wY29kZSwgUmVnaXN0ZXIgcmQsIGludDMyX3QgaW1tMjApIHsKKysgIERD SEVDSyhyZC5pc192YWxpZCgpICYmIChpc19pbnQyMChpbW0yMCkgfHwgaXNfdWludDIwKGltbTIw KSkpOworKyAgSW5zdHIgaW5zdHIgPSBvcGNvZGUgfCAocmQuY29kZSgpIDw8IGtSZFNoaWZ0KSB8 IChpbW0yMCA8PCBrSW1tMjBTaGlmdCk7CisrICBlbWl0KGluc3RyKTsKKyt9CisrCisrdm9pZCBB c3NlbWJsZXI6Okdlbkluc3RySihPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByZCwgaW50MzJfdCBp bW0yMSkgeworKyAgRENIRUNLKHJkLmlzX3ZhbGlkKCkgJiYgaXNfaW50MjEoaW1tMjEpICYmICgo aW1tMjEgJiAxKSA9PSAwKSk7CisrICBJbnN0ciBpbnN0ciA9IG9wY29kZSB8IChyZC5jb2RlKCkg PDwga1JkU2hpZnQpIHwKKysgICAgICAgICAgICAgICAgKGltbTIxICYgMHhmZjAwMCkgfCAgICAg ICAgICAvLyBiaXRzIDE5LTEyCisrICAgICAgICAgICAgICAgICgoaW1tMjEgJiAweDgwMCkgPDwg OSkgfCAgICAgLy8gYml0ICAxMQorKyAgICAgICAgICAgICAgICAoKGltbTIxICYgMHg3ZmUpIDw8 IDIwKSB8ICAgIC8vIGJpdHMgMTAtMQorKyAgICAgICAgICAgICAgICAoKGltbTIxICYgMHgxMDAw MDApIDw8IDExKTsgIC8vIGJpdCAgMjAKKysgIGVtaXQoaW5zdHIpOworK30KKysKKysvLyAtLS0t LSBJbnN0cnVjdGlvbiBjbGFzcyB0ZW1wbGF0ZXMgbWF0Y2ggdGhvc2UgaW4gdGhlIGNvbXBpbGVy CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyQnJhbmNoQ0NfcnJpKHVpbnQ4X3QgZnVuY3Qz LCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50MTZfdCBpbW0xMykgeworKyAgR2VuSW5zdHJCKGZ1bmN0MywgQlJBTkNI LCByczEsIHJzMiwgaW1tMTMpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJMb2Fk X3JpKHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCBpbW0xMikgeworKyAgR2VuSW5zdHJJKGZ1 bmN0MywgTE9BRCwgcmQsIHJzMSwgaW1tMTIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2Vu SW5zdHJTdG9yZV9ycmkodWludDhfdCBmdW5jdDMsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMy LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90IGltbTEyKSB7Cisr ICBHZW5JbnN0clMoZnVuY3QzLCBTVE9SRSwgcnMxLCByczIsIGltbTEyKTsKKyt9CisrCisrdm9p ZCBBc3NlbWJsZXI6Okdlbkluc3RyQUxVX3JpKHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwg UmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90IGlt bTEyKSB7CisrICBHZW5JbnN0ckkoZnVuY3QzLCBPUF9JTU0sIHJkLCByczEsIGltbTEyKTsKKyt9 CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyU2hpZnRfcmkoYm9vbCBhcml0aHNoaWZ0LCB1 aW50OF90IGZ1bmN0MywgUmVnaXN0ZXIgcmQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVnaXN0ZXIgcnMxLCB1aW50OF90IHNoYW10KSB7CisrICBEQ0hFQ0soaXNfdWludDYo c2hhbXQpKTsKKysgIEdlbkluc3RySShmdW5jdDMsIE9QX0lNTSwgcmQsIHJzMSwgKGFyaXRoc2hp ZnQgPDwgMTApIHwgc2hhbXQpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5zdHJBTFVf cnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysg IEdlbkluc3RyUihmdW5jdDcsIGZ1bmN0MywgT1AsIHJkLCByczEsIHJzMik7CisrfQorKworK3Zv aWQgQXNzZW1ibGVyOjpHZW5JbnN0ckNTUl9pcih1aW50OF90IGZ1bmN0MywgUmVnaXN0ZXIgcmQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xTdGF0dXNSZWcgY3NyLCBS ZWdpc3RlciByczEpIHsKKysgIEdlbkluc3RySShmdW5jdDMsIFNZU1RFTSwgcmQsIHJzMSwgY3Ny KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyQ1NSX2lpKHVpbnQ4X3QgZnVuY3Qz LCBSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbFN0 YXR1c1JlZyBjc3IsIHVpbnQ4X3QgaW1tNSkgeworKyAgR2VuSW5zdHJJKGZ1bmN0MywgU1lTVEVN LCByZCwgVG9SZWdpc3RlcihpbW01KSwgY3NyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdl bkluc3RyU2hpZnRXX3JpKGJvb2wgYXJpdGhzaGlmdCwgdWludDhfdCBmdW5jdDMsIFJlZ2lzdGVy IHJkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByczEsIHVp bnQ4X3Qgc2hhbXQpIHsKKysgIEdlbkluc3RySVNoaWZ0Vyhhcml0aHNoaWZ0LCBmdW5jdDMsIE9Q X0lNTV8zMiwgcmQsIHJzMSwgc2hhbXQpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R2VuSW5z dHJBTFVXX3JyKHVpbnQ4X3QgZnVuY3Q3LCB1aW50OF90IGZ1bmN0MywgUmVnaXN0ZXIgcmQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJz MikgeworKyAgR2VuSW5zdHJSKGZ1bmN0NywgZnVuY3QzLCBPUF8zMiwgcmQsIHJzMSwgcnMyKTsK Kyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyUHJpdih1aW50OF90IGZ1bmN0NywgUmVn aXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyUihmdW5jdDcsIDBiMDAwLCBT WVNURU0sIFRvUmVnaXN0ZXIoMCksIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6 Okdlbkluc3RyTG9hZEZQX3JpKHVpbnQ4X3QgZnVuY3QzLCBGUFVSZWdpc3RlciByZCwgUmVnaXN0 ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90IGltbTEy KSB7CisrICBHZW5JbnN0ckkoZnVuY3QzLCBMT0FEX0ZQLCByZCwgcnMxLCBpbW0xMik7CisrfQor KworK3ZvaWQgQXNzZW1ibGVyOjpHZW5JbnN0clN0b3JlRlBfcnJpKHVpbnQ4X3QgZnVuY3QzLCBS ZWdpc3RlciByczEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBVUmVn aXN0ZXIgcnMyLCBpbnQxNl90IGltbTEyKSB7CisrICBHZW5JbnN0clMoZnVuY3QzLCBTVE9SRV9G UCwgcnMxLCByczIsIGltbTEyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyQUxV RlBfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBGUFVSZWdpc3RlciByZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lz dGVyIHJzMikgeworKyAgR2VuSW5zdHJSKGZ1bmN0NywgZnVuY3QzLCBPUF9GUCwgcmQsIHJzMSwg cnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyQUxVRlBfcnIodWludDhfdCBm dW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBGUFVSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5z dHJSKGZ1bmN0NywgZnVuY3QzLCBPUF9GUCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBB c3NlbWJsZXI6Okdlbkluc3RyQUxVRlBfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3Qz LCBGUFVSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUFVS ZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJSKGZ1bmN0NywgZnVuY3Qz LCBPUF9GUCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3Ry QUxVRlBfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIFJlZ2lzdGVy IHJzMikgeworKyAgR2VuSW5zdHJSKGZ1bmN0NywgZnVuY3QzLCBPUF9GUCwgcmQsIHJzMSwgcnMy KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Okdlbkluc3RyQUxVRlBfcnIodWludDhfdCBmdW5j dDcsIHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5z dHJSKGZ1bmN0NywgZnVuY3QzLCBPUF9GUCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrLy8gUmV0 dXJucyB0aGUgbmV4dCBmcmVlIHRyYW1wb2xpbmUgZW50cnkuCisraW50MzJfdCBBc3NlbWJsZXI6 OmdldF90cmFtcG9saW5lX2VudHJ5KGludDMyX3QgcG9zKSB7CisrICBpbnQzMl90IHRyYW1wb2xp bmVfZW50cnkgPSBrSW52YWxpZFNsb3RQb3M7CisrICBpZiAoIWludGVybmFsX3RyYW1wb2xpbmVf ZXhjZXB0aW9uXykgeworKyAgICBpZiAodHJhbXBvbGluZV8uc3RhcnQoKSA+IHBvcykgeworKyAg ICAgIHRyYW1wb2xpbmVfZW50cnkgPSB0cmFtcG9saW5lXy50YWtlX3Nsb3QoKTsKKysgICAgfQor KworKyAgICBpZiAoa0ludmFsaWRTbG90UG9zID09IHRyYW1wb2xpbmVfZW50cnkpIHsKKysgICAg ICBpbnRlcm5hbF90cmFtcG9saW5lX2V4Y2VwdGlvbl8gPSB0cnVlOworKyAgICB9CisrICB9Cisr ICByZXR1cm4gdHJhbXBvbGluZV9lbnRyeTsKKyt9CisrCisrdWludDY0X3QgQXNzZW1ibGVyOjpq dW1wX2FkZHJlc3MoTGFiZWwqIEwpIHsKKysgIGludDY0X3QgdGFyZ2V0X3BvczsKKysgIERFQlVH X1BSSU5URigianVtcF9hZGRyZXNzOiAlcCB0byAlcCAoJWQpXG4iLCBMLAorKyAgICAgICAgICAg ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihidWZmZXJfc3RhcnRfICsgcGNfb2Zmc2V0KCkp LAorKyAgICAgICAgICAgICAgIHBjX29mZnNldCgpKTsKKysgIGlmIChMLT5pc19ib3VuZCgpKSB7 CisrICAgIHRhcmdldF9wb3MgPSBMLT5wb3MoKTsKKysgIH0gZWxzZSB7CisrICAgIGlmIChMLT5p c19saW5rZWQoKSkgeworKyAgICAgIHRhcmdldF9wb3MgPSBMLT5wb3MoKTsgIC8vIEwncyBsaW5r LgorKyAgICAgIEwtPmxpbmtfdG8ocGNfb2Zmc2V0KCkpOworKyAgICB9IGVsc2UgeworKyAgICAg IEwtPmxpbmtfdG8ocGNfb2Zmc2V0KCkpOworKyAgICAgIGlmICghdHJhbXBvbGluZV9lbWl0dGVk XykgeworKyAgICAgICAgdW5ib3VuZF9sYWJlbHNfY291bnRfKys7CisrICAgICAgICBuZXh0X2J1 ZmZlcl9jaGVja18gLT0ga1RyYW1wb2xpbmVTbG90c1NpemU7CisrICAgICAgfQorKyAgICAgIERF QlVHX1BSSU5URigiXHRzdGFydGVkIGxpbmtcbiIpOworKyAgICAgIHJldHVybiBrRW5kT2ZKdW1w Q2hhaW47CisrICAgIH0KKysgIH0KKysgIHVpbnQ2NF90IGltbSA9IHJlaW50ZXJwcmV0X2Nhc3Q8 dWludDY0X3Q+KGJ1ZmZlcl9zdGFydF8pICsgdGFyZ2V0X3BvczsKKysgIERDSEVDS19FUShpbW0g JiAzLCAwKTsKKysKKysgIHJldHVybiBpbW07CisrfQorKworK3VpbnQ2NF90IEFzc2VtYmxlcjo6 YnJhbmNoX2xvbmdfb2Zmc2V0KExhYmVsKiBMKSB7CisrICBpbnQ2NF90IHRhcmdldF9wb3M7Cisr CisrICBERUJVR19QUklOVEYoImJyYW5jaF9sb25nX29mZnNldDogJXAgdG8gJXAgKCVkKVxuIiwg TCwKKysgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PEluc3RyKj4oYnVmZmVyX3N0YXJ0 XyArIHBjX29mZnNldCgpKSwKKysgICAgICAgICAgICAgICBwY19vZmZzZXQoKSk7CisrICBpZiAo TC0+aXNfYm91bmQoKSkgeworKyAgICB0YXJnZXRfcG9zID0gTC0+cG9zKCk7CisrICB9IGVsc2Ug eworKyAgICBpZiAoTC0+aXNfbGlua2VkKCkpIHsKKysgICAgICB0YXJnZXRfcG9zID0gTC0+cG9z KCk7ICAvLyBMJ3MgbGluay4KKysgICAgICBMLT5saW5rX3RvKHBjX29mZnNldCgpKTsKKysgICAg fSBlbHNlIHsKKysgICAgICBMLT5saW5rX3RvKHBjX29mZnNldCgpKTsKKysgICAgICBpZiAoIXRy YW1wb2xpbmVfZW1pdHRlZF8pIHsKKysgICAgICAgIHVuYm91bmRfbGFiZWxzX2NvdW50XysrOwor KyAgICAgICAgbmV4dF9idWZmZXJfY2hlY2tfIC09IGtUcmFtcG9saW5lU2xvdHNTaXplOworKyAg ICAgIH0KKysgICAgICBERUJVR19QUklOVEYoIlx0c3RhcnRlZCBsaW5rXG4iKTsKKysgICAgICBy ZXR1cm4ga0VuZE9mSnVtcENoYWluOworKyAgICB9CisrICB9CisrICBpbnQ2NF90IG9mZnNldCA9 IHRhcmdldF9wb3MgLSBwY19vZmZzZXQoKTsKKysgIERDSEVDS19FUShvZmZzZXQgJiAzLCAwKTsK KysKKysgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob2Zmc2V0KTsKKyt9CisrCisraW50 MzJfdCBBc3NlbWJsZXI6OmJyYW5jaF9vZmZzZXRfaGVscGVyKExhYmVsKiBMLCBPZmZzZXRTaXpl IGJpdHMpIHsKKysgIGludDMyX3QgdGFyZ2V0X3BvczsKKysKKysgIERFQlVHX1BSSU5URigiYnJh bmNoX29mZnNldF9oZWxwZXI6ICVwIHRvICVwICglZClcbiIsIEwsCisrICAgICAgICAgICAgICAg cmVpbnRlcnByZXRfY2FzdDxJbnN0cio+KGJ1ZmZlcl9zdGFydF8gKyBwY19vZmZzZXQoKSksCisr ICAgICAgICAgICAgICAgcGNfb2Zmc2V0KCkpOworKyAgaWYgKEwtPmlzX2JvdW5kKCkpIHsKKysg ICAgdGFyZ2V0X3BvcyA9IEwtPnBvcygpOworKyAgICBERUJVR19QUklOVEYoIlx0Ym91bmQ6ICVk IiwgdGFyZ2V0X3Bvcyk7CisrICB9IGVsc2UgeworKyAgICBpZiAoTC0+aXNfbGlua2VkKCkpIHsK KysgICAgICB0YXJnZXRfcG9zID0gTC0+cG9zKCk7CisrICAgICAgTC0+bGlua190byhwY19vZmZz ZXQoKSk7CisrICAgICAgREVCVUdfUFJJTlRGKCJcdGFkZGVkIHRvIGxpbms6ICVkXG4iLCB0YXJn ZXRfcG9zKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBMLT5saW5rX3RvKHBjX29mZnNldCgpKTsK KysgICAgICBpZiAoIXRyYW1wb2xpbmVfZW1pdHRlZF8pIHsKKysgICAgICAgIHVuYm91bmRfbGFi ZWxzX2NvdW50XysrOworKyAgICAgICAgbmV4dF9idWZmZXJfY2hlY2tfIC09IGtUcmFtcG9saW5l U2xvdHNTaXplOworKyAgICAgIH0KKysgICAgICBERUJVR19QUklOVEYoIlx0c3RhcnRlZCBsaW5r XG4iKTsKKysgICAgICByZXR1cm4ga0VuZE9mQ2hhaW47CisrICAgIH0KKysgIH0KKysKKysgIGlu dDMyX3Qgb2Zmc2V0ID0gdGFyZ2V0X3BvcyAtIHBjX29mZnNldCgpOworKyAgRENIRUNLKGlzX2lu dG4ob2Zmc2V0LCBiaXRzKSk7CisrICBEQ0hFQ0tfRVEob2Zmc2V0ICYgMSwgMCk7CisrICBERUJV R19QUklOVEYoIlx0b2Zmc2V0ID0gJWRcbiIsIG9mZnNldCk7CisrICByZXR1cm4gb2Zmc2V0Owor K30KKysKKyt2b2lkIEFzc2VtYmxlcjo6bGFiZWxfYXRfcHV0KExhYmVsKiBMLCBpbnQgYXRfb2Zm c2V0KSB7CisrICBpbnQgdGFyZ2V0X3BvczsKKysgIERFQlVHX1BSSU5URigibGFiZWxfYXRfcHV0 OiAlcCBAICVwICglZClcbiIsIEwsCisrICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxJ bnN0cio+KGJ1ZmZlcl9zdGFydF8gKyBhdF9vZmZzZXQpLCBhdF9vZmZzZXQpOworKyAgaWYgKEwt PmlzX2JvdW5kKCkpIHsKKysgICAgdGFyZ2V0X3BvcyA9IEwtPnBvcygpOworKyAgICBpbnN0cl9h dF9wdXQoYXRfb2Zmc2V0LCB0YXJnZXRfcG9zICsgKENvZGU6OmtIZWFkZXJTaXplIC0ga0hlYXBP YmplY3RUYWcpKTsKKysgIH0gZWxzZSB7CisrICAgIGlmIChMLT5pc19saW5rZWQoKSkgeworKyAg ICAgIHRhcmdldF9wb3MgPSBMLT5wb3MoKTsgIC8vIEwncyBsaW5rLgorKyAgICAgIGludDMyX3Qg aW1tMTggPSB0YXJnZXRfcG9zIC0gYXRfb2Zmc2V0OworKyAgICAgIERDSEVDS19FUShpbW0xOCAm IDMsIDApOworKyAgICAgIGludDMyX3QgaW1tMTYgPSBpbW0xOCA+PiAyOworKyAgICAgIERDSEVD Syhpc19pbnQxNihpbW0xNikpOworKyAgICAgIGluc3RyX2F0X3B1dChhdF9vZmZzZXQsIChpbW0x NiAmIGtJbW0xNk1hc2spKTsKKysgICAgfSBlbHNlIHsKKysgICAgICB0YXJnZXRfcG9zID0ga0Vu ZE9mQ2hhaW47CisrICAgICAgaW5zdHJfYXRfcHV0KGF0X29mZnNldCwgMCk7CisrICAgICAgaWYg KCF0cmFtcG9saW5lX2VtaXR0ZWRfKSB7CisrICAgICAgICB1bmJvdW5kX2xhYmVsc19jb3VudF8r KzsKKysgICAgICAgIG5leHRfYnVmZmVyX2NoZWNrXyAtPSBrVHJhbXBvbGluZVNsb3RzU2l6ZTsK KysgICAgICB9CisrICAgIH0KKysgICAgTC0+bGlua190byhhdF9vZmZzZXQpOworKyAgfQorK30K KysKKysvLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLworKy8vIEluc3RydWN0aW9ucworKy8vPT09LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLT09PS8vCisrCisrdm9pZCBBc3NlbWJsZXI6Omx1aShSZWdpc3RlciByZCwgaW50 MzJfdCBpbW0yMCkgeyBHZW5JbnN0clUoTFVJLCByZCwgaW1tMjApOyB9CisrCisrdm9pZCBBc3Nl bWJsZXI6OmF1aXBjKFJlZ2lzdGVyIHJkLCBpbnQzMl90IGltbTIwKSB7CisrICBHZW5JbnN0clUo QVVJUEMsIHJkLCBpbW0yMCk7CisrfQorKworKy8vIEp1bXBzCisrCisrdm9pZCBBc3NlbWJsZXI6 OmphbChSZWdpc3RlciByZCwgaW50MzJfdCBpbW0yMSkgeworKyAgQmxvY2tUcmFtcG9saW5lUG9v bFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgIEdlbkluc3RySihKQUwsIHJk LCBpbW0yMSk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sRm9yKDEpOworK30KKysKKyt2b2lkIEFz c2VtYmxlcjo6amFscihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBpbnQxNl90IGltbTEyKSB7 CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMp OworKyAgR2VuSW5zdHJJKDBiMDAwLCBKQUxSLCByZCwgcnMxLCBpbW0xMik7CisrICBCbG9ja1Ry YW1wb2xpbmVQb29sRm9yKDEpOworK30KKysKKysvLyBCcmFuY2hlcworKworK3ZvaWQgQXNzZW1i bGVyOjpiZXEoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIGludDE2X3QgaW1tMTMpIHsKKysg IEdlbkluc3RyQnJhbmNoQ0NfcnJpKDBiMDAwLCByczEsIHJzMiwgaW1tMTMpOworK30KKysKKyt2 b2lkIEFzc2VtYmxlcjo6Ym5lKFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyLCBpbnQxNl90IGlt bTEzKSB7CisrICBHZW5JbnN0ckJyYW5jaENDX3JyaSgwYjAwMSwgcnMxLCByczIsIGltbTEzKTsK Kyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmJsdChSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwg aW50MTZfdCBpbW0xMykgeworKyAgR2VuSW5zdHJCcmFuY2hDQ19ycmkoMGIxMDAsIHJzMSwgcnMy LCBpbW0xMyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpiZ2UoUmVnaXN0ZXIgcnMxLCBSZWdp c3RlciByczIsIGludDE2X3QgaW1tMTMpIHsKKysgIEdlbkluc3RyQnJhbmNoQ0NfcnJpKDBiMTAx LCByczEsIHJzMiwgaW1tMTMpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6Ymx0dShSZWdpc3Rl ciByczEsIFJlZ2lzdGVyIHJzMiwgaW50MTZfdCBpbW0xMykgeworKyAgR2VuSW5zdHJCcmFuY2hD Q19ycmkoMGIxMTAsIHJzMSwgcnMyLCBpbW0xMyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpi Z2V1KFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyLCBpbnQxNl90IGltbTEzKSB7CisrICBHZW5J bnN0ckJyYW5jaENDX3JyaSgwYjExMSwgcnMxLCByczIsIGltbTEzKTsKKyt9CisrCisrLy8gTG9h ZHMKKysKKyt2b2lkIEFzc2VtYmxlcjo6bGIoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgaW50 MTZfdCBpbW0xMikgeworKyAgR2VuSW5zdHJMb2FkX3JpKDBiMDAwLCByZCwgcnMxLCBpbW0xMik7 CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpsaChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBp bnQxNl90IGltbTEyKSB7CisrICBHZW5JbnN0ckxvYWRfcmkoMGIwMDEsIHJkLCByczEsIGltbTEy KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Omx3KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEs IGludDE2X3QgaW1tMTIpIHsKKysgIEdlbkluc3RyTG9hZF9yaSgwYjAxMCwgcmQsIHJzMSwgaW1t MTIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6bGJ1KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIGludDE2X3QgaW1tMTIpIHsKKysgIEdlbkluc3RyTG9hZF9yaSgwYjEwMCwgcmQsIHJzMSwg aW1tMTIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6bGh1KFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciByczEsIGludDE2X3QgaW1tMTIpIHsKKysgIEdlbkluc3RyTG9hZF9yaSgwYjEwMSwgcmQsIHJz MSwgaW1tMTIpOworK30KKysKKysvLyBTdG9yZXMKKysKKyt2b2lkIEFzc2VtYmxlcjo6c2IoUmVn aXN0ZXIgc291cmNlLCBSZWdpc3RlciBiYXNlLCBpbnQxNl90IGltbTEyKSB7CisrICBHZW5JbnN0 clN0b3JlX3JyaSgwYjAwMCwgYmFzZSwgc291cmNlLCBpbW0xMik7CisrfQorKworK3ZvaWQgQXNz ZW1ibGVyOjpzaChSZWdpc3RlciBzb3VyY2UsIFJlZ2lzdGVyIGJhc2UsIGludDE2X3QgaW1tMTIp IHsKKysgIEdlbkluc3RyU3RvcmVfcnJpKDBiMDAxLCBiYXNlLCBzb3VyY2UsIGltbTEyKTsKKyt9 CisrCisrdm9pZCBBc3NlbWJsZXI6OnN3KFJlZ2lzdGVyIHNvdXJjZSwgUmVnaXN0ZXIgYmFzZSwg aW50MTZfdCBpbW0xMikgeworKyAgR2VuSW5zdHJTdG9yZV9ycmkoMGIwMTAsIGJhc2UsIHNvdXJj ZSwgaW1tMTIpOworK30KKysKKysvLyBBcml0aG1ldGljIHdpdGggaW1tZWRpYXRlCisrCisrdm9p ZCBBc3NlbWJsZXI6OmFkZGkoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgaW50MTZfdCBpbW0x MikgeworKyAgR2VuSW5zdHJBTFVfcmkoMGIwMDAsIHJkLCByczEsIGltbTEyKTsKKyt9CisrCisr dm9pZCBBc3NlbWJsZXI6OnNsdGkoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgaW50MTZfdCBp bW0xMikgeworKyAgR2VuSW5zdHJBTFVfcmkoMGIwMTAsIHJkLCByczEsIGltbTEyKTsKKyt9Cisr Cisrdm9pZCBBc3NlbWJsZXI6OnNsdGl1KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIGludDE2 X3QgaW1tMTIpIHsKKysgIEdlbkluc3RyQUxVX3JpKDBiMDExLCByZCwgcnMxLCBpbW0xMik7Cisr fQorKworK3ZvaWQgQXNzZW1ibGVyOjp4b3JpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIGlu dDE2X3QgaW1tMTIpIHsKKysgIEdlbkluc3RyQUxVX3JpKDBiMTAwLCByZCwgcnMxLCBpbW0xMik7 CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpvcmkoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwg aW50MTZfdCBpbW0xMikgeworKyAgR2VuSW5zdHJBTFVfcmkoMGIxMTAsIHJkLCByczEsIGltbTEy KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmFuZGkoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJz MSwgaW50MTZfdCBpbW0xMikgeworKyAgR2VuSW5zdHJBTFVfcmkoMGIxMTEsIHJkLCByczEsIGlt bTEyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnNsbGkoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVy IHJzMSwgdWludDhfdCBzaGFtdCkgeworKyAgR2VuSW5zdHJTaGlmdF9yaSgwLCAwYjAwMSwgcmQs IHJzMSwgc2hhbXQgJiAweDNmKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnNybGkoUmVnaXN0 ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgdWludDhfdCBzaGFtdCkgeworKyAgR2VuSW5zdHJTaGlmdF9y aSgwLCAwYjEwMSwgcmQsIHJzMSwgc2hhbXQgJiAweDNmKTsKKyt9CisrCisrdm9pZCBBc3NlbWJs ZXI6OnNyYWkoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgdWludDhfdCBzaGFtdCkgeworKyAg R2VuSW5zdHJTaGlmdF9yaSgxLCAwYjEwMSwgcmQsIHJzMSwgc2hhbXQgJiAweDNmKTsKKyt9Cisr CisrLy8gQXJpdGhtZXRpYworKworK3ZvaWQgQXNzZW1ibGVyOjphZGQoUmVnaXN0ZXIgcmQsIFJl Z2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFMVV9ycigwYjAwMDAwMDAs IDBiMDAwLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c3ViKFJlZ2lz dGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVfcnIo MGIwMTAwMDAwLCAwYjAwMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6 OnNsbChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbklu c3RyQUxVX3JyKDBiMDAwMDAwMCwgMGIwMDEsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQg QXNzZW1ibGVyOjpzbHQoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7 CisrICBHZW5JbnN0ckFMVV9ycigwYjAwMDAwMDAsIDBiMDEwLCByZCwgcnMxLCByczIpOworK30K KysKKyt2b2lkIEFzc2VtYmxlcjo6c2x0dShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdp c3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVX3JyKDBiMDAwMDAwMCwgMGIwMTEsIHJkLCByczEs IHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjp4b3JfKFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVfcnIoMGIwMDAwMDAwLCAwYjEw MCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnNybChSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVX3JyKDBiMDAw MDAwMCwgMGIxMDEsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpzcmEo UmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFM VV9ycigwYjAxMDAwMDAsIDBiMTAxLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2Vt Ymxlcjo6b3JfKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAg R2VuSW5zdHJBTFVfcnIoMGIwMDAwMDAwLCAwYjExMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisr dm9pZCBBc3NlbWJsZXI6OmFuZF8oUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIg cnMyKSB7CisrICBHZW5JbnN0ckFMVV9ycigwYjAwMDAwMDAsIDBiMTExLCByZCwgcnMxLCByczIp OworK30KKysKKysvLyBNZW1vcnkgZmVuY2VzCisrCisrdm9pZCBBc3NlbWJsZXI6OmZlbmNlKHVp bnQ4X3QgcHJlZCwgdWludDhfdCBzdWNjKSB7CisrICBEQ0hFQ0soaXNfdWludDQocHJlZCkgJiYg aXNfdWludDQoc3VjYykpOworKyAgdWludDE2X3QgaW1tMTIgPSBzdWNjIHwgKHByZWQgPDwgNCkg fCAoMGIwMDAwIDw8IDgpOworKyAgR2VuSW5zdHJJKDBiMDAwLCBNSVNDX01FTSwgVG9SZWdpc3Rl cigwKSwgVG9SZWdpc3RlcigwKSwgaW1tMTIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZmVu Y2VfdHNvKCkgeworKyAgdWludDE2X3QgaW1tMTIgPSAoMGIwMDExKSB8ICgwYjAwMTEgPDwgNCkg fCAoMGIxMDAwIDw8IDgpOworKyAgR2VuSW5zdHJJKDBiMDAwLCBNSVNDX01FTSwgVG9SZWdpc3Rl cigwKSwgVG9SZWdpc3RlcigwKSwgaW1tMTIpOworK30KKysKKysvLyBFbnZpcm9ubWVudCBjYWxs IC8gYnJlYWsKKysKKyt2b2lkIEFzc2VtYmxlcjo6ZWNhbGwoKSB7CisrICBHZW5JbnN0ckkoMGIw MDAsIFNZU1RFTSwgVG9SZWdpc3RlcigwKSwgVG9SZWdpc3RlcigwKSwgMCk7CisrfQorKworK3Zv aWQgQXNzZW1ibGVyOjplYnJlYWsoKSB7CisrICBHZW5JbnN0ckkoMGIwMDAsIFNZU1RFTSwgVG9S ZWdpc3RlcigwKSwgVG9SZWdpc3RlcigwKSwgMSk7CisrfQorKworKy8vIFRoaXMgaXMgYSBkZSBm YWN0byBzdGFuZGFyZCAoYXMgc2V0IGJ5IEdOVSBiaW51dGlscykgMzItYml0IHVuaW1wbGVtZW50 ZWQKKysvLyBpbnN0cnVjdGlvbiAoaS5lLiwgaXQgc2hvdWxkIGFsd2F5cyB0cmFwLCBpZiB5b3Vy IGltcGxlbWVudGF0aW9uIGhhcyBpbnZhbGlkCisrLy8gaW5zdHJ1Y3Rpb24gdHJhcHMpLgorK3Zv aWQgQXNzZW1ibGVyOjp1bmltcCgpIHsKKysgIEdlbkluc3RySSgwYjAwMSwgU1lTVEVNLCBUb1Jl Z2lzdGVyKDApLCBUb1JlZ2lzdGVyKDApLCAwYjExMDAwMDAwMDAwMCk7CisrfQorKworKy8vIENT UgorKworK3ZvaWQgQXNzZW1ibGVyOjpjc3JydyhSZWdpc3RlciByZCwgQ29udHJvbFN0YXR1c1Jl ZyBjc3IsIFJlZ2lzdGVyIHJzMSkgeworKyAgR2VuSW5zdHJDU1JfaXIoMGIwMDEsIHJkLCBjc3Is IHJzMSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpjc3JycyhSZWdpc3RlciByZCwgQ29udHJv bFN0YXR1c1JlZyBjc3IsIFJlZ2lzdGVyIHJzMSkgeworKyAgR2VuSW5zdHJDU1JfaXIoMGIwMTAs IHJkLCBjc3IsIHJzMSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpjc3JyYyhSZWdpc3RlciBy ZCwgQ29udHJvbFN0YXR1c1JlZyBjc3IsIFJlZ2lzdGVyIHJzMSkgeworKyAgR2VuSW5zdHJDU1Jf aXIoMGIwMTEsIHJkLCBjc3IsIHJzMSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpjc3Jyd2ko UmVnaXN0ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyLCB1aW50OF90IGltbTUpIHsKKysgIEdl bkluc3RyQ1NSX2lpKDBiMTAxLCByZCwgY3NyLCBpbW01KTsKKyt9CisrCisrdm9pZCBBc3NlbWJs ZXI6OmNzcnJzaShSZWdpc3RlciByZCwgQ29udHJvbFN0YXR1c1JlZyBjc3IsIHVpbnQ4X3QgaW1t NSkgeworKyAgR2VuSW5zdHJDU1JfaWkoMGIxMTAsIHJkLCBjc3IsIGltbTUpOworK30KKysKKyt2 b2lkIEFzc2VtYmxlcjo6Y3NycmNpKFJlZ2lzdGVyIHJkLCBDb250cm9sU3RhdHVzUmVnIGNzciwg dWludDhfdCBpbW01KSB7CisrICBHZW5JbnN0ckNTUl9paSgwYjExMSwgcmQsIGNzciwgaW1tNSk7 CisrfQorKworKy8vIFJWNjRJCisrCisrdm9pZCBBc3NlbWJsZXI6Omx3dShSZWdpc3RlciByZCwg UmVnaXN0ZXIgcnMxLCBpbnQxNl90IGltbTEyKSB7CisrICBHZW5JbnN0ckxvYWRfcmkoMGIxMTAs IHJkLCByczEsIGltbTEyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmxkKFJlZ2lzdGVyIHJk LCBSZWdpc3RlciByczEsIGludDE2X3QgaW1tMTIpIHsKKysgIEdlbkluc3RyTG9hZF9yaSgwYjAx MSwgcmQsIHJzMSwgaW1tMTIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c2QoUmVnaXN0ZXIg c291cmNlLCBSZWdpc3RlciBiYXNlLCBpbnQxNl90IGltbTEyKSB7CisrICBHZW5JbnN0clN0b3Jl X3JyaSgwYjAxMSwgYmFzZSwgc291cmNlLCBpbW0xMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVy OjphZGRpdyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBpbnQxNl90IGltbTEyKSB7CisrICBH ZW5JbnN0ckkoMGIwMDAsIE9QX0lNTV8zMiwgcmQsIHJzMSwgaW1tMTIpOworK30KKysKKyt2b2lk IEFzc2VtYmxlcjo6c2xsaXcoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgdWludDhfdCBzaGFt dCkgeworKyAgR2VuSW5zdHJTaGlmdFdfcmkoMCwgMGIwMDEsIHJkLCByczEsIHNoYW10ICYgMHgx Zik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpzcmxpdyhSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCB1aW50OF90IHNoYW10KSB7CisrICBHZW5JbnN0clNoaWZ0V19yaSgwLCAwYjEwMSwgcmQs IHJzMSwgc2hhbXQgJiAweDFmKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnNyYWl3KFJlZ2lz dGVyIHJkLCBSZWdpc3RlciByczEsIHVpbnQ4X3Qgc2hhbXQpIHsKKysgIEdlbkluc3RyU2hpZnRX X3JpKDEsIDBiMTAxLCByZCwgcnMxLCBzaGFtdCAmIDB4MWYpOworK30KKysKKyt2b2lkIEFzc2Vt Ymxlcjo6YWRkdyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysg IEdlbkluc3RyQUxVV19ycigwYjAwMDAwMDAsIDBiMDAwLCByZCwgcnMxLCByczIpOworK30KKysK Kyt2b2lkIEFzc2VtYmxlcjo6c3VidyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3Rl ciByczIpIHsKKysgIEdlbkluc3RyQUxVV19ycigwYjAxMDAwMDAsIDBiMDAwLCByZCwgcnMxLCBy czIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c2xsdyhSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVV19ycigwYjAwMDAwMDAsIDBiMDAx LCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c3JsdyhSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVV19ycigwYjAw MDAwMDAsIDBiMTAxLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c3Jh dyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3Ry QUxVV19ycigwYjAxMDAwMDAsIDBiMTAxLCByZCwgcnMxLCByczIpOworK30KKysKKysvLyBSVjMy TSBTdGFuZGFyZCBFeHRlbnNpb24KKysKKyt2b2lkIEFzc2VtYmxlcjo6bXVsKFJlZ2lzdGVyIHJk LCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVfcnIoMGIwMDAw MDAxLCAwYjAwMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6Om11bGgo UmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFM VV9ycigwYjAwMDAwMDEsIDBiMDAxLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2Vt Ymxlcjo6bXVsaHN1KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgewor KyAgR2VuSW5zdHJBTFVfcnIoMGIwMDAwMDAxLCAwYjAxMCwgcmQsIHJzMSwgcnMyKTsKKyt9Cisr Cisrdm9pZCBBc3NlbWJsZXI6Om11bGh1KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lz dGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVfcnIoMGIwMDAwMDAxLCAwYjAxMSwgcmQsIHJzMSwg cnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmRpdihSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVX3JyKDBiMDAwMDAwMSwgMGIxMDAs IHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpkaXZ1KFJlZ2lzdGVyIHJk LCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVfcnIoMGIwMDAw MDAxLCAwYjEwMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnJlbShS ZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxV X3JyKDBiMDAwMDAwMSwgMGIxMTAsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1i bGVyOjpyZW11KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgeworKyAg R2VuSW5zdHJBTFVfcnIoMGIwMDAwMDAxLCAwYjExMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisr Ly8gUlY2NE0gU3RhbmRhcmQgRXh0ZW5zaW9uIChpbiBhZGRpdGlvbiB0byBSVjMyTSkKKysKKyt2 b2lkIEFzc2VtYmxlcjo6bXVsdyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciBy czIpIHsKKysgIEdlbkluc3RyQUxVV19ycigwYjAwMDAwMDEsIDBiMDAwLCByZCwgcnMxLCByczIp OworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZGl2dyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMx LCBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVV19ycigwYjAwMDAwMDEsIDBiMTAwLCBy ZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZGl2dXcoUmVnaXN0ZXIgcmQs IFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFMVVdfcnIoMGIwMDAw MDAxLCAwYjEwMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnJlbXco UmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFM VVdfcnIoMGIwMDAwMDAxLCAwYjExMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3Nl bWJsZXI6OnJlbXV3KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMikgewor KyAgR2VuSW5zdHJBTFVXX3JyKDBiMDAwMDAwMSwgMGIxMTEsIHJkLCByczEsIHJzMik7CisrfQor KworKy8vIFJWMzJBIFN0YW5kYXJkIEV4dGVuc2lvbgorKworK3ZvaWQgQXNzZW1ibGVyOjpscl93 KGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEpIHsKKysgIEdlbklu c3RyUkF0b21pYygwYjAwMDEwLCBhcSwgcmwsIDBiMDEwLCByZCwgcnMxLCB6ZXJvX3JlZyk7Cisr fQorKworK3ZvaWQgQXNzZW1ibGVyOjpzY193KGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJk LCBSZWdpc3RlciByczEsCisrICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7Cisr ICBHZW5JbnN0clJBdG9taWMoMGIwMDAxMSwgYXEsIHJsLCAwYjAxMCwgcmQsIHJzMSwgcnMyKTsK Kyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmFtb3N3YXBfdyhib29sIGFxLCBib29sIHJsLCBSZWdp c3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgcnMyKSB7CisrICBHZW5JbnN0clJBdG9taWMoMGIwMDAwMSwgYXEsIHJsLCAwYjAxMCwgcmQs IHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmFtb2FkZF93KGJvb2wgYXEsIGJv b2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsCisrICAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJSQXRvbWljKDBiMDAwMDAsIGFxLCBybCwg MGIwMTAsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjphbW94b3Jfdyhi b29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyUkF0b21pYygwYjAwMTAw LCBhcSwgcmwsIDBiMDEwLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6 YW1vYW5kX3coYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0clJBdG9t aWMoMGIwMTEwMCwgYXEsIHJsLCAwYjAxMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBB c3NlbWJsZXI6OmFtb29yX3coYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVy IHJzMSwKKysgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByczIpIHsKKysgIEdlbklu c3RyUkF0b21pYygwYjAxMDAwLCBhcSwgcmwsIDBiMDEwLCByZCwgcnMxLCByczIpOworK30KKysK Kyt2b2lkIEFzc2VtYmxlcjo6YW1vbWluX3coYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQs IFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7 CisrICBHZW5JbnN0clJBdG9taWMoMGIxMDAwMCwgYXEsIHJsLCAwYjAxMCwgcmQsIHJzMSwgcnMy KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmFtb21heF93KGJvb2wgYXEsIGJvb2wgcmwsIFJl Z2lzdGVyIHJkLCBSZWdpc3RlciByczEsCisrICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIHJzMikgeworKyAgR2VuSW5zdHJSQXRvbWljKDBiMTAxMDAsIGFxLCBybCwgMGIwMTAsIHJk LCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjphbW9taW51X3coYm9vbCBhcSwg Ym9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJSQXRvbWljKDBiMTEwMDAsIGFxLCBy bCwgMGIwMTAsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjphbW9tYXh1 X3coYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJSQXRvbWljKDBi MTExMDAsIGFxLCBybCwgMGIwMTAsIHJkLCByczEsIHJzMik7CisrfQorKworKy8vIFJWNjRBIFN0 YW5kYXJkIEV4dGVuc2lvbiAoaW4gYWRkaXRpb24gdG8gUlYzMkEpCisrCisrdm9pZCBBc3NlbWJs ZXI6OmxyX2QoYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSkgewor KyAgR2VuSW5zdHJSQXRvbWljKDBiMDAwMTAsIGFxLCBybCwgMGIwMTEsIHJkLCByczEsIHplcm9f cmVnKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OnNjX2QoYm9vbCBhcSwgYm9vbCBybCwgUmVn aXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBy czIpIHsKKysgIEdlbkluc3RyUkF0b21pYygwYjAwMDExLCBhcSwgcmwsIDBiMDExLCByZCwgcnMx LCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6YW1vc3dhcF9kKGJvb2wgYXEsIGJvb2wg cmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyUkF0b21pYygwYjAwMDAxLCBhcSwgcmwsIDBi MDExLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6YW1vYWRkX2QoYm9v bCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0clJBdG9taWMoMGIwMDAwMCwg YXEsIHJsLCAwYjAxMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmFt b3hvcl9kKGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsCisrICAg ICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJSQXRvbWlj KDBiMDAxMDAsIGFxLCBybCwgMGIwMTEsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNz ZW1ibGVyOjphbW9hbmRfZChib29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByczIpIHsKKysgIEdlbklu c3RyUkF0b21pYygwYjAxMTAwLCBhcSwgcmwsIDBiMDExLCByZCwgcnMxLCByczIpOworK30KKysK Kyt2b2lkIEFzc2VtYmxlcjo6YW1vb3JfZChib29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwg UmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzMikgewor KyAgR2VuSW5zdHJSQXRvbWljKDBiMDEwMDAsIGFxLCBybCwgMGIwMTEsIHJkLCByczEsIHJzMik7 CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjphbW9taW5fZChib29sIGFxLCBib29sIHJsLCBSZWdp c3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl ciByczIpIHsKKysgIEdlbkluc3RyUkF0b21pYygwYjEwMDAwLCBhcSwgcmwsIDBiMDExLCByZCwg cnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6YW1vbWF4X2QoYm9vbCBhcSwgYm9v bCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0clJBdG9taWMoMGIxMDEwMCwgYXEsIHJsLCAw YjAxMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmFtb21pbnVfZChi b29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0clJBdG9taWMoMGIxMTAw MCwgYXEsIHJsLCAwYjAxMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6 OmFtb21heHVfZChib29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0clJB dG9taWMoMGIxMTEwMCwgYXEsIHJsLCAwYjAxMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrLy8g UlYzMkYgU3RhbmRhcmQgRXh0ZW5zaW9uCisrCisrdm9pZCBBc3NlbWJsZXI6OmZsdyhGUFVSZWdp c3RlciByZCwgUmVnaXN0ZXIgcnMxLCBpbnQxNl90IGltbTEyKSB7CisrICBHZW5JbnN0ckxvYWRG UF9yaSgwYjAxMCwgcmQsIHJzMSwgaW1tMTIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZnN3 KEZQVVJlZ2lzdGVyIHNvdXJjZSwgUmVnaXN0ZXIgYmFzZSwgaW50MTZfdCBpbW0xMikgeworKyAg R2VuSW5zdHJTdG9yZUZQX3JyaSgwYjAxMCwgYmFzZSwgc291cmNlLCBpbW0xMik7CisrfQorKwor K3ZvaWQgQXNzZW1ibGVyOjpmbWFkZF9zKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEs IEZQVVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciBy czMsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyUjQoMGIwMCwgTUFERCwgcmQsIHJz MSwgcnMyLCByczMsIGZybSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmbXN1Yl9zKEZQVVJl Z2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAg ICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczMsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdl bkluc3RyUjQoMGIwMCwgTVNVQiwgcmQsIHJzMSwgcnMyLCByczMsIGZybSk7CisrfQorKworK3Zv aWQgQXNzZW1ibGVyOjpmbm1zdWJfcyhGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBG UFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJz MywgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJSNCgwYjAwLCBOTVNVQiwgcmQsIHJz MSwgcnMyLCByczMsIGZybSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmbm1hZGRfcyhGUFVS ZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJzMywgUm91bmRpbmdNb2RlIGZybSkgeworKyAg R2VuSW5zdHJSNCgwYjAwLCBOTUFERCwgcmQsIHJzMSwgcnMyLCByczMsIGZybSk7CisrfQorKwor K3ZvaWQgQXNzZW1ibGVyOjpmYWRkX3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwg RlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAgICAgICAgICAgICAgICAgUm91bmRpbmdNb2RlIGZy bSkgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjAwMDAwMDAsIGZybSwgcmQsIHJzMSwgcnMyKTsK Kyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZzdWJfcyhGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0 ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICAgICAgICAgICBSb3VuZGlu Z01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMDAwMDEwMCwgZnJtLCByZCwgcnMx LCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6Zm11bF9zKEZQVVJlZ2lzdGVyIHJkLCBG UFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgICAgICAgICAg IFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIwMDAxMDAwLCBmcm0s IHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmZGl2X3MoRlBVUmVnaXN0 ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAgICAgICAg ICAgICAgICAgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjAwMDEx MDAsIGZybSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZzcXJ0X3Mo RlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSkgeworKyAg R2VuSW5zdHJBTFVGUF9ycigwYjAxMDExMDAsIGZybSwgcmQsIHJzMSwgemVyb19yZWcpOworK30K KysKKyt2b2lkIEFzc2VtYmxlcjo6ZnNnbmpfcyhGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIg cnMxLCBGUFVSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIwMDEwMDAwLCAw YjAwMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZzZ25qbl9zKEZQ VVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMikgeworKyAgR2Vu SW5zdHJBTFVGUF9ycigwYjAwMTAwMDAsIDBiMDAxLCByZCwgcnMxLCByczIpOworK30KKysKKyt2 b2lkIEFzc2VtYmxlcjo6ZnNnbmp4X3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwg RlBVUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMDAxMDAwMCwgMGIwMTAs IHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmbWluX3MoRlBVUmVnaXN0 ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFM VUZQX3JyKDBiMDAxMDEwMCwgMGIwMDAsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNz ZW1ibGVyOjpmbWF4X3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0 ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMDAxMDEwMCwgMGIwMDEsIHJkLCByczEs IHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmY3Z0X3dfcyhSZWdpc3RlciByZCwgRlBV UmVnaXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBi MTEwMDAwMCwgZnJtLCByZCwgcnMxLCB6ZXJvX3JlZyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVy OjpmY3Z0X3d1X3MoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZy bSkgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjExMDAwMDAsIGZybSwgcmQsIHJzMSwgVG9SZWdp c3RlcigxKSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmbXZfeF93KFJlZ2lzdGVyIHJkLCBG UFVSZWdpc3RlciByczEpIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMTEwMDAwLCAwYjAwMCwg cmQsIHJzMSwgemVyb19yZWcpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZmVxX3MoUmVnaXN0 ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFM VUZQX3JyKDBiMTAxMDAwMCwgMGIwMTAsIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNz ZW1ibGVyOjpmbHRfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciBy czIpIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMDEwMDAwLCAwYjAwMSwgcmQsIHJzMSwgcnMy KTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZsZV9zKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3Rl ciByczEsIEZQVVJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjEwMTAwMDAs IDBiMDAwLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZmNsYXNzX3Mo UmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSkgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjEx MTAwMDAsIDBiMDAxLCByZCwgcnMxLCB6ZXJvX3JlZyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVy OjpmY3Z0X3NfdyhGUFVSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJt KSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMTEwMTAwMCwgZnJtLCByZCwgcnMxLCB6ZXJvX3Jl Zyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmY3Z0X3Nfd3UoRlBVUmVnaXN0ZXIgcmQsIFJl Z2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjEx MDEwMDAsIGZybSwgcmQsIHJzMSwgVG9SZWdpc3RlcigxKSk7CisrfQorKworK3ZvaWQgQXNzZW1i bGVyOjpmbXZfd194KEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEpIHsKKysgIEdlbkluc3Ry QUxVRlBfcnIoMGIxMTExMDAwLCAwYjAwMCwgcmQsIHJzMSwgemVyb19yZWcpOworK30KKysKKysv LyBSVjY0RiBTdGFuZGFyZCBFeHRlbnNpb24gKGluIGFkZGl0aW9uIHRvIFJWMzJGKQorKworK3Zv aWQgQXNzZW1ibGVyOjpmY3Z0X2xfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSb3Vu ZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMTEwMDAwMCwgZnJtLCByZCwg cnMxLCBUb1JlZ2lzdGVyKDIpKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZjdnRfbHVfcyhS ZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJtKSB7CisrICBHZW5J bnN0ckFMVUZQX3JyKDBiMTEwMDAwMCwgZnJtLCByZCwgcnMxLCBUb1JlZ2lzdGVyKDMpKTsKKyt9 CisrCisrdm9pZCBBc3NlbWJsZXI6OmZjdnRfc19sKEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMTAxMDAwLCBm cm0sIHJkLCByczEsIFRvUmVnaXN0ZXIoMikpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZmN2 dF9zX2x1KEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0pIHsK KysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMTAxMDAwLCBmcm0sIHJkLCByczEsIFRvUmVnaXN0ZXIo MykpOworK30KKysKKysvLyBSVjMyRCBTdGFuZGFyZCBFeHRlbnNpb24KKysKKyt2b2lkIEFzc2Vt Ymxlcjo6ZmxkKEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIGludDE2X3QgaW1tMTIpIHsK KysgIEdlbkluc3RyTG9hZEZQX3JpKDBiMDExLCByZCwgcnMxLCBpbW0xMik7CisrfQorKworK3Zv aWQgQXNzZW1ibGVyOjpmc2QoRlBVUmVnaXN0ZXIgc291cmNlLCBSZWdpc3RlciBiYXNlLCBpbnQx Nl90IGltbTEyKSB7CisrICBHZW5JbnN0clN0b3JlRlBfcnJpKDBiMDExLCBiYXNlLCBzb3VyY2Us IGltbTEyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZtYWRkX2QoRlBVUmVnaXN0ZXIgcmQs IEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAgICAgICAgICAgICAg ICAgIEZQVVJlZ2lzdGVyIHJzMywgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJSNCgw YjAxLCBNQURELCByZCwgcnMxLCByczIsIHJzMywgZnJtKTsKKyt9CisrCisrdm9pZCBBc3NlbWJs ZXI6OmZtc3ViX2QoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIg cnMyLAorKyAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJzMywgUm91bmRpbmdN b2RlIGZybSkgeworKyAgR2VuSW5zdHJSNCgwYjAxLCBNU1VCLCByZCwgcnMxLCByczIsIHJzMywg ZnJtKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZubXN1Yl9kKEZQVVJlZ2lzdGVyIHJkLCBG UFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgRlBVUmVnaXN0ZXIgcnMzLCBSb3VuZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0clI0KDBi MDEsIE5NU1VCLCByZCwgcnMxLCByczIsIHJzMywgZnJtKTsKKyt9CisrCisrdm9pZCBBc3NlbWJs ZXI6OmZubWFkZF9kKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVy IHJzMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgcnMzLCBSb3VuZGlu Z01vZGUgZnJtKSB7CisrICBHZW5JbnN0clI0KDBiMDEsIE5NQURELCByZCwgcnMxLCByczIsIHJz MywgZnJtKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZhZGRfZChGUFVSZWdpc3RlciByZCwg RlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICAgICAgICAg ICBSb3VuZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMDAwMDAwMSwgZnJt LCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZnN1Yl9kKEZQVVJlZ2lz dGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAg ICAgICAgICAgIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIwMDAw MTAxLCBmcm0sIHJkLCByczEsIHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmbXVsX2Qo RlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAg ICAgICAgICAgICAgICAgICAgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJBTFVGUF9y cigwYjAwMDEwMDEsIGZybSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6 OmZkaXZfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIs CisrICAgICAgICAgICAgICAgICAgICAgICBSb3VuZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0 ckFMVUZQX3JyKDBiMDAwMTEwMSwgZnJtLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFz c2VtYmxlcjo6ZnNxcnRfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSb3VuZGlu Z01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMDEwMTEwMSwgZnJtLCByZCwgcnMx LCB6ZXJvX3JlZyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmc2dual9kKEZQVVJlZ2lzdGVy IHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVG UF9ycigwYjAwMTAwMDEsIDBiMDAwLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2Vt Ymxlcjo6ZnNnbmpuX2QoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0 ZXIgcnMyKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMDAxMDAwMSwgMGIwMDEsIHJkLCByczEs IHJzMik7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmc2duanhfZChGUFVSZWdpc3RlciByZCwg RlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVRlBfcnIo MGIwMDEwMDAxLCAwYjAxMCwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6 OmZtaW5fZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIp IHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIwMDEwMTAxLCAwYjAwMCwgcmQsIHJzMSwgcnMyKTsK Kyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZtYXhfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0 ZXIgcnMxLCBGUFVSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIwMDEwMTAx LCAwYjAwMSwgcmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZjdnRfc19k KEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysg IEdlbkluc3RyQUxVRlBfcnIoMGIwMTAwMDAwLCBmcm0sIHJkLCByczEsIFRvUmVnaXN0ZXIoMSkp OworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZmN2dF9kX3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJl Z2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJBTFVGUF9ycigwYjAx MDAwMDEsIGZybSwgcmQsIHJzMSwgemVyb19yZWcpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6 ZmVxX2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKSB7Cisr ICBHZW5JbnN0ckFMVUZQX3JyKDBiMTAxMDAwMSwgMGIwMTAsIHJkLCByczEsIHJzMik7CisrfQor KworK3ZvaWQgQXNzZW1ibGVyOjpmbHRfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBG UFVSZWdpc3RlciByczIpIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMDEwMDAxLCAwYjAwMSwg cmQsIHJzMSwgcnMyKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZsZV9kKFJlZ2lzdGVyIHJk LCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMikgeworKyAgR2VuSW5zdHJBTFVGUF9y cigwYjEwMTAwMDEsIDBiMDAwLCByZCwgcnMxLCByczIpOworK30KKysKKyt2b2lkIEFzc2VtYmxl cjo6ZmNsYXNzX2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSkgeworKyAgR2VuSW5zdHJB TFVGUF9ycigwYjExMTAwMDEsIDBiMDAxLCByZCwgcnMxLCB6ZXJvX3JlZyk7CisrfQorKworK3Zv aWQgQXNzZW1ibGVyOjpmY3Z0X3dfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSb3Vu ZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMTEwMDAwMSwgZnJtLCByZCwg cnMxLCB6ZXJvX3JlZyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmY3Z0X3d1X2QoUmVnaXN0 ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5zdHJB TFVGUF9ycigwYjExMDAwMDEsIGZybSwgcmQsIHJzMSwgVG9SZWdpc3RlcigxKSk7CisrfQorKwor K3ZvaWQgQXNzZW1ibGVyOjpmY3Z0X2RfdyhGUFVSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBS b3VuZGluZ01vZGUgZnJtKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMTEwMTAwMSwgZnJtLCBy ZCwgcnMxLCB6ZXJvX3JlZyk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpmY3Z0X2Rfd3UoRlBV UmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSkgeworKyAgR2VuSW5z dHJBTFVGUF9ycigwYjExMDEwMDEsIGZybSwgcmQsIHJzMSwgVG9SZWdpc3RlcigxKSk7CisrfQor KworKy8vIFJWNjREIFN0YW5kYXJkIEV4dGVuc2lvbiAoaW4gYWRkaXRpb24gdG8gUlYzMkQpCisr Cisrdm9pZCBBc3NlbWJsZXI6OmZjdnRfbF9kKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEs IFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMTAwMDAxLCBmcm0s IHJkLCByczEsIFRvUmVnaXN0ZXIoMikpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZmN2dF9s dV9kKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysg IEdlbkluc3RyQUxVRlBfcnIoMGIxMTAwMDAxLCBmcm0sIHJkLCByczEsIFRvUmVnaXN0ZXIoMykp OworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6Zm12X3hfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0 ZXIgcnMxKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMTExMDAwMSwgMGIwMDAsIHJkLCByczEs IHplcm9fcmVnKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmZjdnRfZF9sKEZQVVJlZ2lzdGVy IHJkLCBSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyQUxVRlBf cnIoMGIxMTAxMDAxLCBmcm0sIHJkLCByczEsIFRvUmVnaXN0ZXIoMikpOworK30KKysKKyt2b2lk IEFzc2VtYmxlcjo6ZmN2dF9kX2x1KEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJvdW5k aW5nTW9kZSBmcm0pIHsKKysgIEdlbkluc3RyQUxVRlBfcnIoMGIxMTAxMDAxLCBmcm0sIHJkLCBy czEsIFRvUmVnaXN0ZXIoMykpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6Zm12X2RfeChGUFVS ZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxKSB7CisrICBHZW5JbnN0ckFMVUZQX3JyKDBiMTExMTAw MSwgMGIwMDAsIHJkLCByczEsIHplcm9fcmVnKTsKKyt9CisrCisrLy8gUHJpdmlsZWdlZAorKwor K3ZvaWQgQXNzZW1ibGVyOjp1cmV0KCkgeworKyAgR2VuSW5zdHJQcml2KDBiMDAwMDAwMCwgVG9S ZWdpc3RlcigwKSwgVG9SZWdpc3RlcigwYjAwMDEwKSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVy OjpzcmV0KCkgeworKyAgR2VuSW5zdHJQcml2KDBiMDAwMTAwMCwgVG9SZWdpc3RlcigwKSwgVG9S ZWdpc3RlcigwYjAwMDEwKSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjptcmV0KCkgeworKyAg R2VuSW5zdHJQcml2KDBiMDAxMTAwMCwgVG9SZWdpc3RlcigwKSwgVG9SZWdpc3RlcigwYjAwMDEw KSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjp3ZmkoKSB7CisrICBHZW5JbnN0clByaXYoMGIw MDAxMDAwLCBUb1JlZ2lzdGVyKDApLCBUb1JlZ2lzdGVyKDBiMDAxMDEpKTsKKyt9CisrCisrdm9p ZCBBc3NlbWJsZXI6OnNmZW5jZV92bWEoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpIHsKKysg IEdlbkluc3RyUigwYjAwMDEwMDEsIDBiMDAwLCBTWVNURU0sIFRvUmVnaXN0ZXIoMCksIHJzMSwg cnMyKTsKKyt9CisrCisrLy8gQXNzZW1ibGVyIFBzZXVkbyBJbnN0cnVjdGlvbnMgKFRhYmxlcyAy NS4yIGFuZCAyNS4zLCBSSVNDLVYgVW5wcml2aWxlZ2VkIElTQSkKKysKKyt2b2lkIEFzc2VtYmxl cjo6bm9wKCkgeyBhZGRpKFRvUmVnaXN0ZXIoMCksIFRvUmVnaXN0ZXIoMCksIDApOyB9CisrCisr dm9pZCBBc3NlbWJsZXI6OlJWX2xpKFJlZ2lzdGVyIHJkLCBpbnQ2NF90IGltbSkgeworKyAgLy8g NjQtYml0IGltbSBpcyBwdXQgaW4gdGhlIHJlZ2lzdGVyIHJkLgorKyAgLy8gSW4gbW9zdCBjYXNl cyB0aGUgaW1tIGlzIDMyIGJpdCBhbmQgMiBpbnN0cnVjdGlvbnMgYXJlIGdlbmVyYXRlZC4gSWYg YQorKyAgLy8gdGVtcG9yYXJ5IHJlZ2lzdGVyIGlzIGF2YWlsYWJsZSwgaW4gdGhlIHdvcnN0IGNh c2UsIDYgaW5zdHJ1Y3Rpb25zIGFyZQorKyAgLy8gZ2VuZXJhdGVkIGZvciBhIGZ1bGwgNjQtYml0 IGltbWVkaWF0ZS4gSWYgdGVtcG9yYXkgcmVnaXN0ZXIgaXMgbm90CisrICAvLyBhdmFpbGFibGUg dGhlIG1heGltdW0gd2lsbCBiZSA4IGluc3RydWN0aW9ucy4gSWYgaW1tIGlzIG1vcmUgdGhhbiAz MiBiaXRzCisrICAvLyBhbmQgYSB0ZW1wIHJlZ2lzdGVyIGlzIGF2YWlsYWJsZSwgaW1tIGlzIGRp dmlkZWQgaW50byB0d28gMzItYml0IHBhcnRzLAorKyAgLy8gbG93XzMyIGFuZCB1cF8zMi4gRWFj aCBwYXJ0IGlzIGJ1aWx0IGluIGEgc2VwYXJhdGUgcmVnaXN0ZXIuIGxvd18zMiBpcworKyAgLy8g YnVpbHQgYmVmb3JlIHVwXzMyLiBJZiBsb3dfMzIgaXMgbmVnYXRpdmUgKHVwcGVyIDMyIGJpdHMg YXJlIDEpLCAweGZmZmZmZmZmCisrICAvLyBpcyBzdWJ0cmFjdGVkIGZyb20gdXBfMzIgYmVmb3Jl IHVwXzMyIGlzIGJ1aWx0LiBUaGlzIGNvbXBlbnNhdGVzIGZvciAzMgorKyAgLy8gYml0cyBvZiAx J3MgaW4gdGhlIGxvd2VyIHdoZW4gdGhlIHR3byByZWdpc3RlcnMgYXJlIGFkZGVkLiBJZiBubyB0 ZW1wIGlzCisrICAvLyBhdmFpbGFibGUsIHRoZSB1cHBlciAzMiBiaXQgaXMgYnVpbHQgaW4gcmQs IGFuZCB0aGUgbG93ZXIgMzIgYml0cyBhcmUKKysgIC8vIGRldmlkZWQgdG8gMyBwYXJ0cyAoMTEs IDExLCBhbmQgMTAgYml0cykuIFRoZSBwYXJ0cyBhcmUgc2hpZnRlZCBhbmQgYWRkZWQKKysgIC8v IHRvIHRoZSB1cHBlciBwYXJ0IGJ1aWx0IGluIHJkLgorKyAgaWYgKGlzX2ludDMyKGltbSArIDB4 ODAwKSkgeworKyAgICAvLyAzMi1iaXQgY2FzZS4gTWF4aW11bSBvZiAyIGluc3RydWN0aW9ucyBn ZW5lcmF0ZWQKKysgICAgaW50NjRfdCBoaWdoXzIwID0gKChpbW0gKyAweDgwMCkgPj4gMTIpOwor KyAgICBpbnQ2NF90IGxvd18xMiA9IGltbSA8PCA1MiA+PiA1MjsKKysgICAgaWYgKGhpZ2hfMjAp IHsKKysgICAgICBsdWkocmQsIChpbnQzMl90KWhpZ2hfMjApOworKyAgICAgIGlmIChsb3dfMTIp IHsKKysgICAgICAgIGFkZGkocmQsIHJkLCBsb3dfMTIpOworKyAgICAgIH0KKysgICAgfSBlbHNl IHsKKysgICAgICBhZGRpKHJkLCB6ZXJvX3JlZywgbG93XzEyKTsKKysgICAgfQorKyAgICByZXR1 cm47CisrICB9IGVsc2UgeworKyAgICAvLyA2NC1iaXQgY2FzZTogZGl2aWRlIGltbSBpbnRvIHR3 byAzMi1iaXQgcGFydHMsIHVwcGVyIGFuZCBsb3dlcgorKyAgICBpbnQ2NF90IHVwXzMyID0gaW1t ID4+IDMyOworKyAgICBpbnQ2NF90IGxvd18zMiA9IGltbSAmIDB4ZmZmZmZmZmZ1bGw7CisrICAg IFJlZ2lzdGVyIHRlbXBfcmVnID0gcmQ7CisrICAgIC8vIENoZWNrIGlmIGEgdGVtcG9yYXJ5IHJl Z2lzdGVyIGlzIGF2YWlsYWJsZQorKyAgICBpZiAodXBfMzIgPT0gMCB8fCBsb3dfMzIgPT0gMCkg eworKyAgICAgIC8vIE5vIHRlbXAgcmVnaXN0ZXIgaXMgbmVlZGVkCisrICAgIH0gZWxzZSB7Cisr ICAgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAgICAgQmxvY2tU cmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgICAgICB0 ZW1wX3JlZyA9IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWlyZSgpIDogbm9fcmVn OworKyAgICB9CisrICAgIGlmICh0ZW1wX3JlZyAhPSBub19yZWcpIHsKKysgICAgICAvLyBrZWVw IHRyYWNrIG9mIGhhcmR3YXJlIGJlaGF2aW9yIGZvciBsb3dlciBwYXJ0IGluIHNpbV9sb3cKKysg ICAgICBpbnQ2NF90IHNpbV9sb3cgPSAwOworKyAgICAgIC8vIEJ1aWxkIGxvd2VyIHBhcnQKKysg ICAgICBpZiAobG93XzMyICE9IDApIHsKKysgICAgICAgIGludDY0X3QgaGlnaF8yMCA9ICgobG93 XzMyICsgMHg4MDApID4+IDEyKTsKKysgICAgICAgIGludDY0X3QgbG93XzEyID0gbG93XzMyICYg MHhmZmY7CisrICAgICAgICBpZiAoaGlnaF8yMCkgeworKyAgICAgICAgICAvLyBBZGp1c3QgdG8g MjAgYml0cyBmb3IgdGhlIGNhc2Ugb2Ygb3ZlcmZsb3cKKysgICAgICAgICAgaGlnaF8yMCAmPSAw eGZmZmZmOworKyAgICAgICAgICBzaW1fbG93ID0gKChoaWdoXzIwIDw8IDEyKSA8PCAzMikgPj4g MzI7CisrICAgICAgICAgIGx1aShyZCwgKGludDMyX3QpaGlnaF8yMCk7CisrICAgICAgICAgIGlm IChsb3dfMTIpIHsKKysgICAgICAgICAgICBzaW1fbG93ICs9IChsb3dfMTIgPDwgNTIgPj4gNTIp IHwgbG93XzEyOworKyAgICAgICAgICAgIGFkZGkocmQsIHJkLCBsb3dfMTIpOworKyAgICAgICAg ICB9CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBzaW1fbG93ID0gbG93XzEyOworKyAg ICAgICAgICBvcmkocmQsIHplcm9fcmVnLCBsb3dfMTIpOworKyAgICAgICAgfQorKyAgICAgIH0K KysgICAgICBpZiAoc2ltX2xvdyAmIDB4MTAwMDAwMDAwKSB7CisrICAgICAgICAvLyBCaXQgMzEg aXMgMS4gRWl0aGVyIGFuIG92ZXJmbG93IG9yIGEgbmVnYXRpdmUgNjQgYml0CisrICAgICAgICBp ZiAodXBfMzIgPT0gMCkgeworKyAgICAgICAgICAvLyBQb3NpdGl2ZSBudW1iZXIsIGJ1dCBvdmVy ZmxvdyBiZWNhdXNlIG9mIHRoZSBhZGQgMHg4MDAKKysgICAgICAgICAgc2xsaShyZCwgcmQsIDMy KTsKKysgICAgICAgICAgc3JsaShyZCwgcmQsIDMyKTsKKysgICAgICAgICAgcmV0dXJuOworKyAg ICAgICAgfQorKyAgICAgICAgLy8gbG93XzMyIGlzIGEgbmVnYXRpdmUgNjQgYml0IGFmdGVyIHRo ZSBidWlsZAorKyAgICAgICAgdXBfMzIgPSAodXBfMzIgLSAweGZmZmZmZmZmKSAmIDB4ZmZmZmZm ZmY7CisrICAgICAgfQorKyAgICAgIGlmICh1cF8zMiA9PSAwKSB7CisrICAgICAgICByZXR1cm47 CisrICAgICAgfQorKyAgICAgIC8vIEJ1aWxkIHVwcGVyIHBhcnQgaW4gYSB0ZW1wb3JhcnkgcmVn aXN0ZXIKKysgICAgICBpZiAobG93XzMyID09IDApIHsKKysgICAgICAgIC8vIEJ1aWxkIHVwcGVy IHBhcnQgaW4gcmQKKysgICAgICAgIHRlbXBfcmVnID0gcmQ7CisrICAgICAgfQorKyAgICAgIGlu dDY0X3QgaGlnaF8yMCA9ICh1cF8zMiArIDB4ODAwKSA+PiAxMjsKKysgICAgICBpbnQ2NF90IGxv d18xMiA9IHVwXzMyICYgMHhmZmY7CisrICAgICAgaWYgKGhpZ2hfMjApIHsKKysgICAgICAgIC8v IEFkanVzdCB0byAyMCBiaXRzIGZvciB0aGUgY2FzZSBvZiBvdmVyZmxvdworKyAgICAgICAgaGln aF8yMCAmPSAweGZmZmZmOworKyAgICAgICAgbHVpKHRlbXBfcmVnLCAoaW50MzJfdCloaWdoXzIw KTsKKysgICAgICAgIGlmIChsb3dfMTIpIHsKKysgICAgICAgICAgYWRkaSh0ZW1wX3JlZywgdGVt cF9yZWcsIGxvd18xMik7CisrICAgICAgICB9CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIG9y aSh0ZW1wX3JlZywgemVyb19yZWcsIGxvd18xMik7CisrICAgICAgfQorKyAgICAgIC8vIFB1dCBp dCBhdCB0aGUgYmdpbmluZyBvZiByZWdpc3RlcgorKyAgICAgIHNsbGkodGVtcF9yZWcsIHRlbXBf cmVnLCAzMik7CisrICAgICAgaWYgKGxvd18zMiAhPSAwKSB7CisrICAgICAgICBhZGQocmQsIHJk LCB0ZW1wX3JlZyk7CisrICAgICAgfQorKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgICAvLyBO byB0ZW1wIHJlZ2lzdGVyLiBCdWlsZCBpbW0gaW4gcmQuCisrICAgIC8vIEJ1aWxkIHVwcGVyIDMy IGJpdHMgZmlyc3QgaW4gcmQuIERpdmlkZSBsb3dlciAzMiBiaXRzIHBhcnRzIGFuZCBhZGQKKysg ICAgLy8gcGFydHMgdG8gdGhlIHVwcGVyIHBhcnQgYnkgZG9pbmcgc2hpZnQgYW5kIGFkZC4KKysg ICAgLy8gRmlyc3QgYnVpbGQgdXBwZXIgcGFydCBpbiByZC4KKysgICAgaW50NjRfdCBoaWdoXzIw ID0gKHVwXzMyICsgMHg4MDApID4+IDEyOworKyAgICBpbnQ2NF90IGxvd18xMiA9IHVwXzMyICYg MHhmZmY7CisrICAgIGlmIChoaWdoXzIwKSB7CisrICAgICAgLy8gQWRqdXN0IHRvIDIwIGJpdHMg Zm9yIHRoZSBjYXNlIG9mIG92ZXJmbG93CisrICAgICAgaGlnaF8yMCAmPSAweGZmZmZmOworKyAg ICAgIGx1aShyZCwgKGludDMyX3QpaGlnaF8yMCk7CisrICAgICAgaWYgKGxvd18xMikgeworKyAg ICAgICAgYWRkaShyZCwgcmQsIGxvd18xMik7CisrICAgICAgfQorKyAgICB9IGVsc2UgeworKyAg ICAgIG9yaShyZCwgemVyb19yZWcsIGxvd18xMik7CisrICAgIH0KKysgICAgLy8gdXBwZXIgcGFy dCBhbHJlYWR5IGluIHJkLiBFYWNoIHBhcnQgdG8gYmUgYWRkZWQgdG8gcmQsIGhhcyBtYXhpbXVt IG9mIDExCisrICAgIC8vIGJpdHMsIGFuZCBhbHdheXMgc3RhcnRzIHdpdGggYSAxLiByZCBpcyBz aGlmdGVkIGJ5IHRoZSBzaXplIG9mIHRoZSBwYXJ0CisrICAgIC8vIHBsdXMgdGhlIG51bWJlciBv ZiB6ZXJvcyBiZXR3ZWVuIHRoZSBwYXJ0cy4gRWFjaCBwYXJ0IGlzIGFkZGVkIGFmdGVyIHRoZQor KyAgICAvLyBsZWZ0IHNoaWZ0LgorKyAgICB1aW50MzJfdCBtYXNrID0gMHg4MDAwMDAwMDsKKysg ICAgaW50MzJfdCBzaGlmdF92YWwgPSAwOworKyAgICBpbnQzMl90IGk7CisrICAgIGZvciAoaSA9 IDA7IGkgPCAzMjsgaSsrKSB7CisrICAgICAgaWYgKChsb3dfMzIgJiBtYXNrKSA9PSAwKSB7Cisr ICAgICAgICBtYXNrID4+PSAxOworKyAgICAgICAgc2hpZnRfdmFsKys7CisrICAgICAgICBpZiAo aSA9PSAzMSkgeworKyAgICAgICAgICAvLyByZXN0IGlzIHplcm8KKysgICAgICAgICAgc2xsaShy ZCwgcmQsIHNoaWZ0X3ZhbCk7CisrICAgICAgICB9CisrICAgICAgICBjb250aW51ZTsKKysgICAg ICB9CisrICAgICAgLy8gVGhlIGZpcnN0IDEgc2VlbgorKyAgICAgIGludDMyX3QgcGFydDsKKysg ICAgICBpZiAoKGkgKyAxMSkgPCAzMikgeworKyAgICAgICAgLy8gUGljayAxMSBiaXRzCisrICAg ICAgICBwYXJ0ID0gKCh1aW50MzJfdCkobG93XzMyIDw8IGkpID4+IGkpID4+ICgzMiAtIChpICsg MTEpKTsKKysgICAgICAgIHNsbGkocmQsIHJkLCBzaGlmdF92YWwgKyAxMSk7CisrICAgICAgICBv cmkocmQsIHJkLCBwYXJ0KTsKKysgICAgICAgIGkgKz0gMTA7CisrICAgICAgICBtYXNrID4+PSAx MTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcGFydCA9ICh1aW50MzJfdCkobG93XzMyIDw8 IGkpID4+IGk7CisrICAgICAgICBzbGxpKHJkLCByZCwgc2hpZnRfdmFsICsgKDMyIC0gaSkpOwor KyAgICAgICAgb3JpKHJkLCByZCwgcGFydCk7CisrICAgICAgICBicmVhazsKKysgICAgICB9Cisr ICAgICAgc2hpZnRfdmFsID0gMDsKKysgICAgfQorKyAgfQorK30KKysKKytpbnQgQXNzZW1ibGVy OjpsaV9jb3VudChpbnQ2NF90IGltbSkgeworKyAgaW50IGNvdW50ID0gMDsKKysgIGlmIChpc19p bnQzMihpbW0gKyAweDgwMCkpIHsKKysgICAgaW50NjRfdCBIaTIwID0gKChpbW0gKyAweDgwMCkg Pj4gMTIpOworKyAgICBpbnQ2NF90IExvMTIgPSBpbW0gPDwgNTIgPj4gNTI7CisrCisrICAgIGlm IChIaTIwKSBjb3VudCsrOworKworKyAgICBpZiAoTG8xMiB8fCBIaTIwID09IDApIGNvdW50Kys7 CisrICAgIHJldHVybiBjb3VudDsKKysgIH0KKysKKysgIGludDY0X3QgTG8xMiA9IGltbSA8PCA1 MiA+PiA1MjsKKysgIGludDY0X3QgSGk1MiA9ICgodWludDY0X3QpaW1tICsgMHg4MDB1bGwpID4+ IDEyOworKyAgaW50IEZpcnN0Qml0ID0gMDsKKysgIHVpbnQ2NF90IFZhbCA9IEhpNTI7CisrICB3 aGlsZSAoKFZhbCAmIDEpID09IDApIHsKKysgICAgVmFsID0gVmFsID4+IDE7CisrICAgIEZpcnN0 Qml0Kys7CisrICB9CisrICBpbnQgU2hpZnRBbW91bnQgPSAxMiArIEZpcnN0Qml0OworKyAgSGk1 MiA9IChIaTUyID4+IChTaGlmdEFtb3VudCAtIDEyKSkgPDwgU2hpZnRBbW91bnQgPj4gU2hpZnRB bW91bnQ7CisrCisrICBjb3VudCArPSBsaV9jb3VudChIaTUyKTsKKysKKysgIGNvdW50Kys7Cisr ICBpZiAoTG8xMikgY291bnQrKzsKKysKKysgIHJldHVybiBjb3VudDsKKyt9CisrCisrdm9pZCBB c3NlbWJsZXI6OmxpX2NvbnN0YW50KFJlZ2lzdGVyIHJkLCBpbnQ2NF90IGltbSkgeworKyAgREVC VUdfUFJJTlRGKCJsaV9jb25zdGFudCglZCwgJWx4IDwlbGQ+KVxuIiwgVG9OdW1iZXIocmQpLCBp bW0sIGltbSk7CisrICBsdWkocmQsIChpbW0gKyAoMUxMIDw8IDQ3KSArICgxTEwgPDwgMzUpICsg KDFMTCA8PCAyMykgKyAoMUxMIDw8IDExKSkgPj4KKysgICAgICAgICAgICAgIDQ4KTsgIC8vIEJp dHMgNjM6NDgKKysgIGFkZGl3KHJkLCByZCwKKysgICAgICAgIChpbW0gKyAoMUxMIDw8IDM1KSAr ICgxTEwgPDwgMjMpICsgKDFMTCA8PCAxMSkpIDw8IDE2ID4+CisrICAgICAgICAgICAgNTIpOyAg Ly8gQml0cyA0NzozNgorKyAgc2xsaShyZCwgcmQsIDEyKTsKKysgIGFkZGkocmQsIHJkLCAoaW1t ICsgKDFMTCA8PCAyMykgKyAoMUxMIDw8IDExKSkgPDwgMjggPj4gNTIpOyAgLy8gQml0cyAzNToy NAorKyAgc2xsaShyZCwgcmQsIDEyKTsKKysgIGFkZGkocmQsIHJkLCAoaW1tICsgKDFMTCA8PCAx MSkpIDw8IDQwID4+IDUyKTsgIC8vIEJpdHMgMjM6MTIKKysgIHNsbGkocmQsIHJkLCAxMik7Cisr ICBhZGRpKHJkLCByZCwgaW1tIDw8IDUyID4+IDUyKTsgIC8vIEJpdHMgMTE6MAorK30KKysKKysv LyBCcmVhayAvIFRyYXAgaW5zdHJ1Y3Rpb25zLgorK3ZvaWQgQXNzZW1ibGVyOjpicmVha18odWlu dDMyX3QgY29kZSwgYm9vbCBicmVha19hc19zdG9wKSB7CisrICAvLyBXZSBuZWVkIHRvIGludmFs aWRhdGUgYnJlYWtzIHRoYXQgY291bGQgYmUgc3RvcHMgYXMgd2VsbCBiZWNhdXNlIHRoZQorKyAg Ly8gc2ltdWxhdG9yIGV4cGVjdHMgYSBjaGFyIHBvaW50ZXIgYWZ0ZXIgdGhlIHN0b3AgaW5zdHJ1 Y3Rpb24uCisrICAvLyBTZWUgY29uc3RhbnRzLW1pcHMuaCBmb3IgZXhwbGFuYXRpb24uCisrICBE Q0hFQ0soCisrICAgICAgKGJyZWFrX2FzX3N0b3AgJiYgY29kZSA8PSBrTWF4U3RvcENvZGUgJiYg Y29kZSA+IGtNYXhXYXRjaHBvaW50Q29kZSkgfHwKKysgICAgICAoIWJyZWFrX2FzX3N0b3AgJiYg KGNvZGUgPiBrTWF4U3RvcENvZGUgfHwgY29kZSA8PSBrTWF4V2F0Y2hwb2ludENvZGUpKSk7Cisr CisrICAvLyBzaW5jZSBlYnJlYWsgZG9lcyBub3QgYWxsb3cgYWRkaXRpb25hbCBpbW1lZGlhdGUg ZmllbGQsIHdlIHVzZSB0aGUKKysgIC8vIGltbWVkaWF0ZSBmaWVsZCBvZiBsdWkgaW5zdHJ1Y3Rp b24gaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBlYnJlYWsgdG8KKysgIC8vIGVuY29kZSB0aGUg ImNvZGUiIGluZm8KKysgIGVicmVhaygpOworKyAgRENIRUNLKGlzX3VpbnQyMChjb2RlKSk7Cisr ICBsdWkoemVyb19yZWcsIGNvZGUpOworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6c3RvcCh1aW50 MzJfdCBjb2RlKSB7CisrICBEQ0hFQ0tfR1QoY29kZSwga01heFdhdGNocG9pbnRDb2RlKTsKKysg IERDSEVDS19MRShjb2RlLCBrTWF4U3RvcENvZGUpOworKyNpZiBkZWZpbmVkKFY4X0hPU1RfQVJD SF9SSVNDVjY0KQorKyAgLy8gRklYTUU6IGRvZXMgUklTQ1YgZXhwZWN0IGEgc3BlY2lhbCB2YWx1 ZT8KKysgIGJyZWFrXygweDU0MzIxKTsKKysjZWxzZSAgLy8gVjhfSE9TVF9BUkNIX1JJU0NWNjQK KysgIGJyZWFrXyhjb2RlLCB0cnVlKTsKKysjZW5kaWYKKyt9CisrCisrLy8gT3JpZ2luYWwgTUlQ UyBJbnN0cnVjdGlvbnMKKysKKysvLyAtLS0tLS0tLS0tLS1NZW1vcnktaW5zdHJ1Y3Rpb25zLS0t LS0tLS0tLS0tLQorKworK2Jvb2wgQXNzZW1ibGVyOjpOZWVkQWRqdXN0QmFzZUFuZE9mZnNldChj b25zdCBNZW1PcGVyYW5kJiBzcmMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9mZnNldEFjY2Vzc1R5cGUgYWNjZXNzX3R5cGUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBzZWNvbmRfYWNjZXNzX2FkZF90b19vZmZzZXQpIHsK KysgIGJvb2wgdHdvX2FjY2Vzc2VzID0gc3RhdGljX2Nhc3Q8Ym9vbD4oYWNjZXNzX3R5cGUpOwor KyAgRENIRUNLX0xFKHNlY29uZF9hY2Nlc3NfYWRkX3RvX29mZnNldCwgNyk7ICAvLyBNdXN0IGJl IDw9IDcuCisrCisrICAvLyBpc19pbnQxMiBtdXN0IGJlIHBhc3NlZCBhIHNpZ25lZCB2YWx1ZSwg aGVuY2UgdGhlIHN0YXRpYyBjYXN0IGJlbG93LgorKyAgaWYgKGlzX2ludDEyKHNyYy5vZmZzZXQo KSkgJiYKKysgICAgICAoIXR3b19hY2Nlc3NlcyB8fCBpc19pbnQxMihzdGF0aWNfY2FzdDxpbnQz Ml90PigKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLm9mZnNldCgpICsgc2Vjb25k X2FjY2Vzc19hZGRfdG9fb2Zmc2V0KSkpKSB7CisrICAgIC8vIE5vdGhpbmcgdG8gZG86ICdvZmZz ZXQnIChhbmQsIGlmIG5lZWRlZCwgJ29mZnNldCArIDQnLCBvciBvdGhlciBzcGVjaWZpZWQKKysg ICAgLy8gdmFsdWUpIGZpdHMgaW50byBpbnQxMi4KKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQor KyAgcmV0dXJuIHRydWU7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpBZGp1c3RCYXNlQW5kT2Zm c2V0KE1lbU9wZXJhbmQqIHNyYywgUmVnaXN0ZXIgc2NyYXRjaCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPZmZzZXRBY2Nlc3NUeXBlIGFjY2Vzc190eXBlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZWNvbmRfQWNjZXNzX2FkZF90b19v ZmZzZXQpIHsKKysgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gYWRqdXN0IHRoZSBiYXNlIHJl Z2lzdGVyIGFuZCBvZmZzZXQgcGFpcgorKyAgLy8gZm9yIGEgbG9hZC9zdG9yZSB3aGVuIHRoZSBv ZmZzZXQgZG9lc24ndCBmaXQgaW50byBpbnQxMi4KKysKKysgIC8vIE11c3Qgbm90IG92ZXJ3cml0 ZSB0aGUgcmVnaXN0ZXIgJ2Jhc2UnIHdoaWxlIGxvYWRpbmcgJ29mZnNldCcuCisrICBEQ0hFQ0so c3JjLT5ybSgpICE9IHNjcmF0Y2gpOworKworKyAgLy8gRklYTUUoUklTQy1WKTogVGhlcmUgbWF5 IGJlIGEgbW9yZSBvcHRpbWFsIHdheSB0byBkbyB0aGlzCisrICBSVl9saShzY3JhdGNoLCBzcmMt Pm9mZnNldCgpKTsKKysgIGFkZChzY3JhdGNoLCBzY3JhdGNoLCBzcmMtPnJtKCkpOworKyAgc3Jj LT5vZmZzZXRfID0gMDsKKysgIHNyYy0+cm1fID0gc2NyYXRjaDsKKyt9CisrCisrLy8gRklYTUUg KFJJU0NWKTogbm90IHlldCBwb3J0ZWQgKG9yIG5vdCB1c2VkPykKKytpbnQgQXNzZW1ibGVyOjpS ZWxvY2F0ZUludGVybmFsUmVmZXJlbmNlKFJlbG9jSW5mbzo6TW9kZSBybW9kZSwgQWRkcmVzcyBw YywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludHB0cl90IHBj X2RlbHRhKSB7CisrICBpZiAoUmVsb2NJbmZvOjpJc0ludGVybmFsUmVmZXJlbmNlKHJtb2RlKSkg eworKyAgICBpbnQ2NF90KiBwID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4ocGMpOworKyAg ICBpZiAoKnAgPT0ga0VuZE9mSnVtcENoYWluKSB7CisrICAgICAgcmV0dXJuIDA7ICAvLyBOdW1i ZXIgb2YgaW5zdHJ1Y3Rpb25zIHBhdGNoZWQuCisrICAgIH0KKysgICAgKnAgKz0gcGNfZGVsdGE7 CisrICAgIHJldHVybiAyOyAgLy8gTnVtYmVyIG9mIGluc3RydWN0aW9ucyBwYXRjaGVkLgorKyAg fQorKyAgSW5zdHIgaW5zdHIgPSBpbnN0cl9hdChwYyk7CisrICBEQ0hFQ0soUmVsb2NJbmZvOjpJ c0ludGVybmFsUmVmZXJlbmNlRW5jb2RlZChybW9kZSkpOworKyAgaWYgKElzTHVpKGluc3RyKSkg eworKyAgICB1aW50NjRfdCB0YXJnZXRfYWRkcmVzcyA9IHRhcmdldF9hZGRyZXNzX2F0KHBjKSAr IHBjX2RlbHRhOworKyAgICBERUJVR19QUklOVEYoInRhcmdldF9hZGRyZXNzIDB4JWx4XG4iLCB0 YXJnZXRfYWRkcmVzcyk7CisrICAgIHNldF90YXJnZXRfdmFsdWVfYXQocGMsIHRhcmdldF9hZGRy ZXNzKTsKKysgICAgcmV0dXJuIDg7ICAvLyBOdW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIHBhdGNoZWQu CisrICB9IGVsc2UgeworKyAgICBVTklNUExFTUVOVEVEKCk7CisrICAgIHJldHVybiAxOworKyAg fQorK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6R3Jvd0J1ZmZlcigpIHsKKysgIERFQlVHX1BSSU5U RigiR3Jvd0J1ZmZlcjogJXAgLT4gIiwgYnVmZmVyX3N0YXJ0Xyk7CisrICAvLyBDb21wdXRlIG5l dyBidWZmZXIgc2l6ZS4KKysgIGludCBvbGRfc2l6ZSA9IGJ1ZmZlcl8tPnNpemUoKTsKKysgIGlu dCBuZXdfc2l6ZSA9IHN0ZDo6bWluKDIgKiBvbGRfc2l6ZSwgb2xkX3NpemUgKyAxICogTUIpOwor KworKyAgLy8gU29tZSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMgb3ZlcmZsb3cgZm9yIHZlcnkg bGFyZ2UgYnVmZmVycywKKysgIC8vIHRoZXkgbXVzdCBlbnN1cmUgdGhhdCBrTWF4aW1hbEJ1ZmZl clNpemUgaXMgbm90IHRvbyBsYXJnZS4KKysgIGlmIChuZXdfc2l6ZSA+IGtNYXhpbWFsQnVmZmVy U2l6ZSkgeworKyAgICBWODo6RmF0YWxQcm9jZXNzT3V0T2ZNZW1vcnkobnVsbHB0ciwgIkFzc2Vt Ymxlcjo6R3Jvd0J1ZmZlciIpOworKyAgfQorKworKyAgLy8gU2V0IHVwIG5ldyBidWZmZXIuCisr ICBzdGQ6OnVuaXF1ZV9wdHI8QXNzZW1ibGVyQnVmZmVyPiBuZXdfYnVmZmVyID0gYnVmZmVyXy0+ R3JvdyhuZXdfc2l6ZSk7CisrICBEQ0hFQ0tfRVEobmV3X3NpemUsIG5ld19idWZmZXItPnNpemUo KSk7CisrICBieXRlKiBuZXdfc3RhcnQgPSBuZXdfYnVmZmVyLT5zdGFydCgpOworKworKyAgLy8g Q29weSB0aGUgZGF0YS4KKysgIGludHB0cl90IHBjX2RlbHRhID0gbmV3X3N0YXJ0IC0gYnVmZmVy X3N0YXJ0XzsKKysgIGludHB0cl90IHJjX2RlbHRhID0gKG5ld19zdGFydCArIG5ld19zaXplKSAt IChidWZmZXJfc3RhcnRfICsgb2xkX3NpemUpOworKyAgc2l6ZV90IHJlbG9jX3NpemUgPSAoYnVm ZmVyX3N0YXJ0XyArIG9sZF9zaXplKSAtIHJlbG9jX2luZm9fd3JpdGVyLnBvcygpOworKyAgTWVt TW92ZShuZXdfc3RhcnQsIGJ1ZmZlcl9zdGFydF8sIHBjX29mZnNldCgpKTsKKysgIE1lbU1vdmUo cmVsb2NfaW5mb193cml0ZXIucG9zKCkgKyByY19kZWx0YSwgcmVsb2NfaW5mb193cml0ZXIucG9z KCksCisrICAgICAgICAgIHJlbG9jX3NpemUpOworKworKyAgLy8gU3dpdGNoIGJ1ZmZlcnMuCisr ICBidWZmZXJfID0gc3RkOjptb3ZlKG5ld19idWZmZXIpOworKyAgYnVmZmVyX3N0YXJ0XyA9IG5l d19zdGFydDsKKysgIERFQlVHX1BSSU5URigiJXBcbiIsIGJ1ZmZlcl9zdGFydF8pOworKyAgcGNf ICs9IHBjX2RlbHRhOworKyAgcmVsb2NfaW5mb193cml0ZXIuUmVwb3NpdGlvbihyZWxvY19pbmZv X3dyaXRlci5wb3MoKSArIHJjX2RlbHRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZWxvY19pbmZvX3dyaXRlci5sYXN0X3BjKCkgKyBwY19kZWx0YSk7CisrCisrICAvLyBSZWxv Y2F0ZSBydW50aW1lIGVudHJpZXMuCisrICBWZWN0b3I8Ynl0ZT4gaW5zdHJ1Y3Rpb25ze2J1ZmZl cl9zdGFydF8sIChzaXplX3QpcGNfb2Zmc2V0KCl9OworKyAgVmVjdG9yPGNvbnN0IGJ5dGU+IHJl bG9jX2luZm97cmVsb2NfaW5mb193cml0ZXIucG9zKCksIHJlbG9jX3NpemV9OworKyAgZm9yIChS ZWxvY0l0ZXJhdG9yIGl0KGluc3RydWN0aW9ucywgcmVsb2NfaW5mbywgMCk7ICFpdC5kb25lKCk7 IGl0Lm5leHQoKSkgeworKyAgICBSZWxvY0luZm86Ok1vZGUgcm1vZGUgPSBpdC5yaW5mbygpLT5y bW9kZSgpOworKyAgICBpZiAocm1vZGUgPT0gUmVsb2NJbmZvOjpJTlRFUk5BTF9SRUZFUkVOQ0Up IHsKKysgICAgICBSZWxvY2F0ZUludGVybmFsUmVmZXJlbmNlKHJtb2RlLCBpdC5yaW5mbygpLT5w YygpLCBwY19kZWx0YSk7CisrICAgIH0KKysgIH0KKysgIERDSEVDSyghb3ZlcmZsb3coKSk7Cisr fQorKworK3ZvaWQgQXNzZW1ibGVyOjpkYih1aW50OF90IGRhdGEpIHsKKysgIGlmICghaXNfYnVm ZmVyX2dyb3d0aF9ibG9ja2VkKCkpIENoZWNrQnVmZmVyKCk7CisrICBFbWl0SGVscGVyKGRhdGEp OworK30KKysKKyt2b2lkIEFzc2VtYmxlcjo6ZGQodWludDMyX3QgZGF0YSkgeworKyAgaWYgKCFp c19idWZmZXJfZ3Jvd3RoX2Jsb2NrZWQoKSkgQ2hlY2tCdWZmZXIoKTsKKysgIEVtaXRIZWxwZXIo ZGF0YSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpkcSh1aW50NjRfdCBkYXRhKSB7CisrICBp ZiAoIWlzX2J1ZmZlcl9ncm93dGhfYmxvY2tlZCgpKSBDaGVja0J1ZmZlcigpOworKyAgRW1pdEhl bHBlcihkYXRhKTsKKyt9CisrCisrdm9pZCBBc3NlbWJsZXI6OmRkKExhYmVsKiBsYWJlbCkgewor KyAgdWludDY0X3QgZGF0YTsKKysgIGlmICghaXNfYnVmZmVyX2dyb3d0aF9ibG9ja2VkKCkpIENo ZWNrQnVmZmVyKCk7CisrICBpZiAobGFiZWwtPmlzX2JvdW5kKCkpIHsKKysgICAgZGF0YSA9IHJl aW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KGJ1ZmZlcl9zdGFydF8gKyBsYWJlbC0+cG9zKCkpOwor KyAgfSBlbHNlIHsKKysgICAgZGF0YSA9IGp1bXBfYWRkcmVzcyhsYWJlbCk7CisrICAgIGludGVy bmFsX3JlZmVyZW5jZV9wb3NpdGlvbnNfLmluc2VydChsYWJlbC0+cG9zKCkpOworKyAgfQorKyAg UmVjb3JkUmVsb2NJbmZvKFJlbG9jSW5mbzo6SU5URVJOQUxfUkVGRVJFTkNFKTsKKysgIEVtaXRI ZWxwZXIoZGF0YSk7CisrfQorKworK3ZvaWQgQXNzZW1ibGVyOjpSZWNvcmRSZWxvY0luZm8oUmVs b2NJbmZvOjpNb2RlIHJtb2RlLCBpbnRwdHJfdCBkYXRhKSB7CisrICBpZiAoIVNob3VsZFJlY29y ZFJlbG9jSW5mbyhybW9kZSkpIHJldHVybjsKKysgIC8vIFdlIGRvIG5vdCB0cnkgdG8gcmV1c2Ug cG9vbCBjb25zdGFudHMuCisrICBSZWxvY0luZm8gcmluZm8ocmVpbnRlcnByZXRfY2FzdDxBZGRy ZXNzPihwY18pLCBybW9kZSwgZGF0YSwgQ29kZSgpKTsKKysgIERDSEVDS19HRShidWZmZXJfc3Bh Y2UoKSwga01heFJlbG9jU2l6ZSk7ICAvLyBUb28gbGF0ZSB0byBncm93IGJ1ZmZlciBoZXJlLgor KyAgcmVsb2NfaW5mb193cml0ZXIuV3JpdGUoJnJpbmZvKTsKKyt9CisrCisrdm9pZCBBc3NlbWJs ZXI6OkJsb2NrVHJhbXBvbGluZVBvb2xGb3IoaW50IGluc3RydWN0aW9ucykgeworKyAgQ2hlY2tU cmFtcG9saW5lUG9vbFF1aWNrKGluc3RydWN0aW9ucyk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29s QmVmb3JlKHBjX29mZnNldCgpICsgaW5zdHJ1Y3Rpb25zICoga0luc3RyU2l6ZSk7CisrfQorKwor K3ZvaWQgQXNzZW1ibGVyOjpDaGVja1RyYW1wb2xpbmVQb29sKCkgeworKyAgLy8gU29tZSBzbWFs bCBzZXF1ZW5jZXMgb2YgaW5zdHJ1Y3Rpb25zIG11c3Qgbm90IGJlIGJyb2tlbiB1cCBieSB0aGUK KysgIC8vIGluc2VydGlvbiBvZiBhIHRyYW1wb2xpbmUgcG9vbDsgc3VjaCBzZXF1ZW5jZXMgYXJl IHByb3RlY3RlZCBieSBzZXR0aW5nCisrICAvLyBlaXRoZXIgdHJhbXBvbGluZV9wb29sX2Jsb2Nr ZWRfbmVzdGluZ18gb3Igbm9fdHJhbXBvbGluZV9wb29sX2JlZm9yZV8sCisrICAvLyB3aGljaCBh cmUgYm90aCBjaGVja2VkIGhlcmUuIEFsc28sIHJlY3Vyc2l2ZSBjYWxscyB0byBDaGVja1RyYW1w b2xpbmVQb29sCisrICAvLyBhcmUgYmxvY2tlZCBieSB0cmFtcG9saW5lX3Bvb2xfYmxvY2tlZF9u ZXN0aW5nXy4KKysgIGlmICgodHJhbXBvbGluZV9wb29sX2Jsb2NrZWRfbmVzdGluZ18gPiAwKSB8 fAorKyAgICAgIChwY19vZmZzZXQoKSA8IG5vX3RyYW1wb2xpbmVfcG9vbF9iZWZvcmVfKSkgewor KyAgICAvLyBFbWlzc2lvbiBpcyBjdXJyZW50bHkgYmxvY2tlZDsgbWFrZSBzdXJlIHdlIHRyeSBh Z2FpbiBhcyBzb29uIGFzCisrICAgIC8vIHBvc3NpYmxlLgorKyAgICBpZiAodHJhbXBvbGluZV9w b29sX2Jsb2NrZWRfbmVzdGluZ18gPiAwKSB7CisrICAgICAgbmV4dF9idWZmZXJfY2hlY2tfID0g cGNfb2Zmc2V0KCkgKyBrSW5zdHJTaXplOworKyAgICB9IGVsc2UgeworKyAgICAgIG5leHRfYnVm ZmVyX2NoZWNrXyA9IG5vX3RyYW1wb2xpbmVfcG9vbF9iZWZvcmVfOworKyAgICB9CisrICAgIHJl dHVybjsKKysgIH0KKysKKysgIERDSEVDSyghdHJhbXBvbGluZV9lbWl0dGVkXyk7CisrICBEQ0hF Q0tfR0UodW5ib3VuZF9sYWJlbHNfY291bnRfLCAwKTsKKysgIGlmICh1bmJvdW5kX2xhYmVsc19j b3VudF8gPiAwKSB7CisrICAgIC8vIEZpcnN0IHdlIGVtaXQganVtcCwgdGhlbiB3ZSBlbWl0IHRy YW1wb2xpbmUgcG9vbC4KKysgICAgeworKyAgICAgIERFQlVHX1BSSU5URigiaW5zZXJ0aW5nIHRy YW1wb2xpbmUgcG9vbCBhdCAlcCAoJWQpXG4iLAorKyAgICAgICAgICAgICAgICAgICByZWludGVy cHJldF9jYXN0PEluc3RyKj4oYnVmZmVyX3N0YXJ0XyArIHBjX29mZnNldCgpKSwKKysgICAgICAg ICAgICAgICAgICAgcGNfb2Zmc2V0KCkpOworKyAgICAgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29w ZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICAgICAgTGFiZWwgYWZ0ZXJfcG9vbDsK KysgICAgICBqKCZhZnRlcl9wb29sKTsKKysKKysgICAgICBpbnQgcG9vbF9zdGFydCA9IHBjX29m ZnNldCgpOworKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5ib3VuZF9sYWJlbHNfY291bnRf OyBpKyspIHsKKysgICAgICAgIGludDY0X3QgaW1tNjQ7CisrICAgICAgICBpbW02NCA9IGJyYW5j aF9sb25nX29mZnNldCgmYWZ0ZXJfcG9vbCk7CisrICAgICAgICBEQ0hFQ0soaXNfaW50MzIoaW1t NjQpKTsKKysgICAgICAgIGludDMyX3QgSGkyMCA9ICgoKGludDMyX3QpaW1tNjQgKyAweDgwMCkg Pj4gMTIpOworKyAgICAgICAgaW50MzJfdCBMbzEyID0gKGludDMyX3QpaW1tNjQgPDwgMjAgPj4g MjA7CisrICAgICAgICBhdWlwYyh0NSwgSGkyMCk7ICAvLyBSZWFkIFBDICsgSGkyMCBpbnRvIHQ1 LgorKyAgICAgICAganIodDUsIExvMTIpOyAgICAgLy8ganVtcCBQQyArIEhpMjAgKyBMbzEyCisr ICAgICAgfQorKyAgICAgIC8vIElmIHVuYm91bmRfbGFiZWxzX2NvdW50XyBpcyBiaWcgZW5vdWdo LCBsYWJlbCBhZnRlcl9wb29sIHdpbGwKKysgICAgICAvLyBuZWVkIGEgdHJhbXBvbGluZSB0b28s IHNvIHdlIG11c3QgY3JlYXRlIHRoZSB0cmFtcG9saW5lIGJlZm9yZQorKyAgICAgIC8vIHRoZSBi aW5kIG9wZXJhdGlvbiB0byBtYWtlIHN1cmUgZnVuY3Rpb24gJ2JpbmQnIGNhbiBnZXQgdGhpcwor KyAgICAgIC8vIGluZm9ybWF0aW9uLgorKyAgICAgIHRyYW1wb2xpbmVfID0gVHJhbXBvbGluZShw b29sX3N0YXJ0LCB1bmJvdW5kX2xhYmVsc19jb3VudF8pOworKyAgICAgIGJpbmQoJmFmdGVyX3Bv b2wpOworKworKyAgICAgIHRyYW1wb2xpbmVfZW1pdHRlZF8gPSB0cnVlOworKyAgICAgIC8vIEFz IHdlIGFyZSBvbmx5IGdvaW5nIHRvIGVtaXQgdHJhbXBvbGluZSBvbmNlLCB3ZSBuZWVkIHRvIHBy ZXZlbnQgYW55CisrICAgICAgLy8gZnVydGhlciBlbWlzc2lvbi4KKysgICAgICBuZXh0X2J1ZmZl cl9jaGVja18gPSBrTWF4SW50OworKyAgICB9CisrICB9IGVsc2UgeworKyAgICAvLyBOdW1iZXIg b2YgYnJhbmNoZXMgdG8gdW5ib3VuZCBsYWJlbCBhdCB0aGlzIHBvaW50IGlzIHplcm8sIHNvIHdl IGNhbgorKyAgICAvLyBtb3ZlIG5leHQgYnVmZmVyIGNoZWNrIHRvIG1heGltdW0uCisrICAgIG5l eHRfYnVmZmVyX2NoZWNrXyA9CisrICAgICAgICBwY19vZmZzZXQoKSArIGtNYXhCcmFuY2hPZmZz ZXQgLSBrVHJhbXBvbGluZVNsb3RzU2l6ZSAqIDE2OworKyAgfQorKyAgcmV0dXJuOworK30KKysK KytBZGRyZXNzIEFzc2VtYmxlcjo6dGFyZ2V0X2FkZHJlc3NfYXQoQWRkcmVzcyBwYykgeworKyAg REVCVUdfUFJJTlRGKCJ0YXJnZXRfYWRkcmVzc19hdDogcGM6ICVseFx0IiwgcGMpOworKyAgSW5z dHJ1Y3Rpb24qIGluc3RyMCA9IEluc3RydWN0aW9uOjpBdCgodW5zaWduZWQgY2hhciopcGMpOwor KyAgSW5zdHJ1Y3Rpb24qIGluc3RyMSA9IEluc3RydWN0aW9uOjpBdCgodW5zaWduZWQgY2hhciop KHBjICsgMSAqIGtJbnN0clNpemUpKTsKKysgIEluc3RydWN0aW9uKiBpbnN0cjMgPSBJbnN0cnVj dGlvbjo6QXQoKHVuc2lnbmVkIGNoYXIqKShwYyArIDMgKiBrSW5zdHJTaXplKSk7CisrICBJbnN0 cnVjdGlvbiogaW5zdHI1ID0gSW5zdHJ1Y3Rpb246OkF0KCh1bnNpZ25lZCBjaGFyKikocGMgKyA1 ICoga0luc3RyU2l6ZSkpOworKyAgSW5zdHJ1Y3Rpb24qIGluc3RyNyA9IEluc3RydWN0aW9uOjpB dCgodW5zaWduZWQgY2hhciopKHBjICsgNyAqIGtJbnN0clNpemUpKTsKKysKKysgIC8vIEludGVy cHJldCA1IGluc3RydWN0aW9ucyBmb3IgYWRkcmVzcyBnZW5lcmF0ZWQgYnkgbGk6IFNlZSBsaXN0 aW5nIGluCisrICAvLyBBc3NlbWJsZXI6OnNldF90YXJnZXRfYWRkcmVzc19hdCgpIGp1c3QgYmVs b3cuCisrICBpZiAoSXNMdWkoKnJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihpbnN0cjApKSAmJgor KyAgICAgIElzQWRkaXcoKnJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihpbnN0cjEpKSAmJgorKyAg ICAgIElzQWRkaSgqcmVpbnRlcnByZXRfY2FzdDxJbnN0cio+KGluc3RyMykpICYmCisrICAgICAg SXNBZGRpKCpyZWludGVycHJldF9jYXN0PEluc3RyKj4oaW5zdHI1KSkgJiYKKysgICAgICBJc0Fk ZGkoKnJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihpbnN0cjcpKSkgeworKyAgICAvLyBBc3NlbWJs ZSB0aGUgNjQgYml0IHZhbHVlLgorKyAgICBpbnQ2NF90IGFkZHIgPSAoaW50NjRfdCkoaW5zdHIw LT5JbW0yMFVWYWx1ZSgpIDw8IGtJbW0yMFNoaWZ0KSArCisrICAgICAgICAgICAgICAgICAgIChp bnQ2NF90KWluc3RyMS0+SW1tMTJWYWx1ZSgpOworKyAgICBhZGRyIDw8PSAxMjsKKysgICAgYWRk ciArPSAoaW50NjRfdClpbnN0cjMtPkltbTEyVmFsdWUoKTsKKysgICAgYWRkciA8PD0gMTI7Cisr ICAgIGFkZHIgKz0gKGludDY0X3QpaW5zdHI1LT5JbW0xMlZhbHVlKCk7CisrICAgIGFkZHIgPDw9 IDEyOworKyAgICBhZGRyICs9IChpbnQ2NF90KWluc3RyNy0+SW1tMTJWYWx1ZSgpOworKworKyAg ICBERUJVR19QUklOVEYoImFkZHI6ICVseFxuIiwgYWRkcik7CisrICAgIHJldHVybiBzdGF0aWNf Y2FzdDxBZGRyZXNzPihhZGRyKTsKKysgIH0KKysgIC8vIFdlIHNob3VsZCBuZXZlciBnZXQgaGVy ZSwgZm9yY2UgYSBiYWQgYWRkcmVzcyBpZiB3ZSBkby4KKysgIFVOUkVBQ0hBQkxFKCk7CisrfQor KworKy8vIE9uIFJJU0MtViwgYSA2NC1iaXQgdGFyZ2V0IGFkZHJlc3MgaXMgc3RvcmVkIGluIGFu IDgtaW5zdHJ1Y3Rpb24gc2VxdWVuY2U6CisrLy8gICAgMDogbHVpKHJkLCAoai5pbW02NF8gKyAo MUxMIDw8IDQ3KSArICgxTEwgPDwgMzUpICsKKysvLyAgICAgICAgICAgICAgICAgICAgICAgICAg ICgxTEwgPDwgMjMpICsgKDFMTCA8PCAxMSkpID4+IDQ4KTsKKysvLyAgICAxOiBhZGRpdyhyZCwg cmQsIChqLmltbTY0XyArICgxTEwgPDwgMzUpICsgKDFMTCA8PCAyMykgKyAoMUxMIDw8IDExKSkK KysvLyAgICAgICAgICAgICAgICAgICAgICAgPDwgMTYgPj4gNTIpOworKy8vICAgIDI6IHNsbGko cmQsIHJkLCAxMik7CisrLy8gICAgMzogYWRkaShyZCwgcmQsIChqLmltbTY0XyArICgxTEwgPDwg MjMpICsgKDFMTCA8PCAxMSkpIDw8IDI4ID4+IDUyKTsKKysvLyAgICA0OiBzbGxpKHJkLCByZCwg MTIpOworKy8vICAgIDU6IGFkZGkocmQsIHJkLCAoai5pbW02NF8gKyAoMSA8PCAxMSkpIDw8IDQw ID4+IDUyKTsKKysvLyAgICA2OiBzbGxpKHJkLCByZCwgMTIpOworKy8vICAgIDc6IGFkZGkocmQs IHJkLCBqLmltbTY0XyA8PCA1MiA+PiA1Mik7CisrLy8KKysvLyBQYXRjaGluZyB0aGUgYWRkcmVz cyBtdXN0IHJlcGxhY2UgYWxsIHRoZSBsdWkgJiBhZGRpIGluc3RydWN0aW9ucywKKysvLyBhbmQg Zmx1c2ggdGhlIGktY2FjaGUuCisrdm9pZCBBc3NlbWJsZXI6OnNldF90YXJnZXRfdmFsdWVfYXQo QWRkcmVzcyBwYywgdWludDY0X3QgdGFyZ2V0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElDYWNoZUZsdXNoTW9kZSBpY2FjaGVfZmx1c2hfbW9kZSkgeworKyAgLy8gRklY TUUoUklTQy1WKTogRG9lcyB0aGUgYmVsb3cgc3RhdGVtZW50IGFwcGx5IHRvIFJJU0MtVj8gSWYg c28sIHdlIGRvIG5vdAorKyAgLy8gICBuZWVkIGFsbCA4IGluc3RydWN0aW9ucy4KKysgIC8vIFRo ZXJlIGlzIGFuIG9wdGltaXphdGlvbiB3aGVyZSBvbmx5IDQgaW5zdHJ1Y3Rpb25zIGFyZSB1c2Vk IHRvIGxvYWQgYWRkcmVzcworKyAgLy8gaW4gY29kZSBvbiBNSVA2NCBiZWNhdXNlIG9ubHkgNDgt Yml0cyBvZiBhZGRyZXNzIGlzIGVmZmVjdGl2ZWx5IHVzZWQuCisrICAvLyBJdCByZWxpZXMgb24g ZmFjdCB0aGUgdXBwZXIgWzYzOjQ4XSBiaXRzIGFyZSBub3QgdXNlZCBmb3IgdmlydHVhbCBhZGRy ZXNzCisrICAvLyB0cmFuc2xhdGlvbiBhbmQgdGhleSBoYXZlIHRvIGJlIHNldCBhY2NvcmRpbmcg dG8gdmFsdWUgb2YgYml0IDQ3IGluIG9yZGVyCisrICAvLyBnZXQgY2Fub25pY2FsIGFkZHJlc3Mu CisrICBJbnN0cnVjdGlvbiogaW5zdHIwID0gSW5zdHJ1Y3Rpb246OkF0KCh1bnNpZ25lZCBjaGFy KilwYyk7CisrICBERUJVR19QUklOVEYoInNldF90YXJnZXRfdmFsdWVfYXQ6IHBjOiAlbHhcdHRh cmdldDogJWx4XG4iLCBwYywgdGFyZ2V0KTsKKysgIGludCByZF9jb2RlID0gaW5zdHIwLT5SZFZh bHVlKCk7CisrICB1aW50MzJfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihwYyk7 CisrCisrI2lmZGVmIERFQlVHCisrICAvLyBDaGVjayB3ZSBoYXZlIHRoZSByZXN1bHQgZnJvbSBh IGxpIG1hY3JvLWluc3RydWN0aW9uLgorKyAgSW5zdHJ1Y3Rpb24qIGluc3RyMSA9IEluc3RydWN0 aW9uOjpBdCgodW5zaWduZWQgY2hhciopKHBjICsgMSAqIGtJbnN0clNpemUpKTsKKysgIEluc3Ry dWN0aW9uKiBpbnN0cjMgPSBJbnN0cnVjdGlvbjo6QXQoKHVuc2lnbmVkIGNoYXIqKShwYyArIDMg KiBrSW5zdHJTaXplKSk7CisrICBJbnN0cnVjdGlvbiogaW5zdHI1ID0gSW5zdHJ1Y3Rpb246OkF0 KCh1bnNpZ25lZCBjaGFyKikocGMgKyA1ICoga0luc3RyU2l6ZSkpOworKyAgSW5zdHJ1Y3Rpb24q IGluc3RyNyA9IEluc3RydWN0aW9uOjpBdCgodW5zaWduZWQgY2hhciopKHBjICsgNyAqIGtJbnN0 clNpemUpKTsKKysgIERDSEVDSyhJc0x1aSgqcmVpbnRlcnByZXRfY2FzdDxJbnN0cio+KGluc3Ry MCkpICYmCisrICAgICAgICAgSXNBZGRpdygqcmVpbnRlcnByZXRfY2FzdDxJbnN0cio+KGluc3Ry MSkpICYmCisrICAgICAgICAgSXNBZGRpKCpyZWludGVycHJldF9jYXN0PEluc3RyKj4oaW5zdHIz KSkgJiYKKysgICAgICAgICBJc0FkZGkoKnJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihpbnN0cjUp KSAmJgorKyAgICAgICAgIElzQWRkaSgqcmVpbnRlcnByZXRfY2FzdDxJbnN0cio+KGluc3RyNykp KTsKKysjZW5kaWYKKysKKysgIC8vIE11c3QgdXNlIDggaW5zdHJ1Y3Rpb25zIHRvIGluc3VyZSBw YXRjaGFibGUgY29kZSAoc2VlIGFib3ZlIGNvbW1lbnQpLgorKyAgKnAgPSBMVUkgfCAocmRfY29k ZSA8PCBrUmRTaGlmdCkgfAorKyAgICAgICAoKHVpbnQzMl90KSgKKysgICAgICAgICAgICAodGFy Z2V0ICsgKDFMTCA8PCA0NykgKyAoMUxMIDw8IDM1KSArICgxTEwgPDwgMjMpICsgKDFMTCA8PCAx MSkpID4+CisrICAgICAgICAgICAgNDgpCisrICAgICAgICA8PCBrSW1tMjBTaGlmdCk7CisrICAq KHAgKyAxKSA9CisrICAgICAgT1BfSU1NXzMyIHwgKHJkX2NvZGUgPDwga1JkU2hpZnQpIHwgKDBi MDAwIDw8IGtGdW5jdDNTaGlmdCkgfAorKyAgICAgIChyZF9jb2RlIDw8IGtSczFTaGlmdCkgfAor KyAgICAgICgodWludDMyX3QpKCh0YXJnZXQgKyAoMUxMIDw8IDM1KSArICgxTEwgPDwgMjMpICsg KDFMTCA8PCAxMSkpIDw8IDE2ID4+CisrICAgICAgICAgICAgICAgICAgNTIpCisrICAgICAgIDw8 IGtJbW0xMlNoaWZ0KTsKKysgICoocCArIDIpID0gT1BfSU1NIHwgKHJkX2NvZGUgPDwga1JkU2hp ZnQpIHwgKDBiMDAxIDw8IGtGdW5jdDNTaGlmdCkgfAorKyAgICAgICAgICAgICAocmRfY29kZSA8 PCBrUnMxU2hpZnQpIHwgKDEyIDw8IGtJbW0xMlNoaWZ0KTsKKysgICoocCArIDMpID0gT1BfSU1N IHwgKHJkX2NvZGUgPDwga1JkU2hpZnQpIHwgKDBiMDAwIDw8IGtGdW5jdDNTaGlmdCkgfAorKyAg ICAgICAgICAgICAocmRfY29kZSA8PCBrUnMxU2hpZnQpIHwKKysgICAgICAgICAgICAgKCh1aW50 MzJfdCkoKHRhcmdldCArICgxTEwgPDwgMjMpICsgKDFMTCA8PCAxMSkpIDw8IDI4ID4+IDUyKQor KyAgICAgICAgICAgICAgPDwga0ltbTEyU2hpZnQpOworKyAgKihwICsgNCkgPSBPUF9JTU0gfCAo cmRfY29kZSA8PCBrUmRTaGlmdCkgfCAoMGIwMDEgPDwga0Z1bmN0M1NoaWZ0KSB8CisrICAgICAg ICAgICAgIChyZF9jb2RlIDw8IGtSczFTaGlmdCkgfCAoMTIgPDwga0ltbTEyU2hpZnQpOworKyAg KihwICsgNSkgPSBPUF9JTU0gfCAocmRfY29kZSA8PCBrUmRTaGlmdCkgfCAoMGIwMDAgPDwga0Z1 bmN0M1NoaWZ0KSB8CisrICAgICAgICAgICAgIChyZF9jb2RlIDw8IGtSczFTaGlmdCkgfAorKyAg ICAgICAgICAgICAoKHVpbnQzMl90KSgodGFyZ2V0ICsgKDFMTCA8PCAxMSkpIDw8IDQwID4+IDUy KSA8PCBrSW1tMTJTaGlmdCk7CisrICAqKHAgKyA2KSA9IE9QX0lNTSB8IChyZF9jb2RlIDw8IGtS ZFNoaWZ0KSB8ICgwYjAwMSA8PCBrRnVuY3QzU2hpZnQpIHwKKysgICAgICAgICAgICAgKHJkX2Nv ZGUgPDwga1JzMVNoaWZ0KSB8ICgxMiA8PCBrSW1tMTJTaGlmdCk7CisrICAqKHAgKyA3KSA9IE9Q X0lNTSB8IChyZF9jb2RlIDw8IGtSZFNoaWZ0KSB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQpIHwK KysgICAgICAgICAgICAgKHJkX2NvZGUgPDwga1JzMVNoaWZ0KSB8CisrICAgICAgICAgICAgICgo dWludDMyX3QpKHRhcmdldCA8PCA1MiA+PiA1MikgPDwga0ltbTEyU2hpZnQpOworKworKyAgaWYg KGljYWNoZV9mbHVzaF9tb2RlICE9IFNLSVBfSUNBQ0hFX0ZMVVNIKSB7CisrICAgIEZsdXNoSW5z dHJ1Y3Rpb25DYWNoZShwYywgOCAqIGtJbnN0clNpemUpOworKyAgfQorKyAgRENIRUNLX0VRKHRh cmdldF9hZGRyZXNzX2F0KHBjKSwgdGFyZ2V0KTsKKyt9CisrCisrVXNlU2NyYXRjaFJlZ2lzdGVy U2NvcGU6OlVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlKEFzc2VtYmxlciogYXNzZW1ibGVyKQorKyAg ICA6IGF2YWlsYWJsZV8oYXNzZW1ibGVyLT5HZXRTY3JhdGNoUmVnaXN0ZXJMaXN0KCkpLAorKyAg ICAgIG9sZF9hdmFpbGFibGVfKCphdmFpbGFibGVfKSB7fQorKworK1VzZVNjcmF0Y2hSZWdpc3Rl clNjb3BlOjp+VXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUoKSB7CisrICAqYXZhaWxhYmxlXyA9IG9s ZF9hdmFpbGFibGVfOworK30KKysKKytSZWdpc3RlciBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZTo6 QWNxdWlyZSgpIHsKKysgIERDSEVDS19OT1RfTlVMTChhdmFpbGFibGVfKTsKKysgIERDSEVDS19O RSgqYXZhaWxhYmxlXywgMCk7CisrICBpbnQgaW5kZXggPSBzdGF0aWNfY2FzdDxpbnQ+KGJhc2U6 OmJpdHM6OkNvdW50VHJhaWxpbmdaZXJvczMyKCphdmFpbGFibGVfKSk7CisrICAqYXZhaWxhYmxl XyAmPSB+KDFVTCA8PCBpbmRleCk7CisrCisrICByZXR1cm4gUmVnaXN0ZXI6OmZyb21fY29kZShp bmRleCk7CisrfQorKworK2Jvb2wgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGU6Omhhc0F2YWlsYWJs ZSgpIGNvbnN0IHsgcmV0dXJuICphdmFpbGFibGVfICE9IDA7IH0KKysKKyt9ICAvLyBuYW1lc3Bh Y2UgaW50ZXJuYWwKKyt9ICAvLyBuYW1lc3BhY2UgdjgKKysKKysjZW5kaWYgIC8vIFY4X1RBUkdF VF9BUkNIX1JJU0NWNjQKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL3Jpc2N2NjQvYXNzZW1ibGVyLXJp c2N2NjQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlz Y3Y2NC9hc3NlbWJsZXItcmlzY3Y2NC5oCitAQCAtMCwwICsxLDExMTAgQEAKKysvLyBDb3B5cmln aHQgKGMpIDE5OTQtMjAwNiBTdW4gTWljcm9zeXN0ZW1zIEluYy4KKysvLyBBbGwgUmlnaHRzIFJl c2VydmVkLgorKy8vCisrLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0 dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorKy8vIG1ldDoK KysvLworKy8vIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorKy8vIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisrLy8KKysvLyAtIFJlZGlzdHJpYnV0aW9uIGlu IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKysvLyBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg aW4gdGhlCisrLy8gZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKysvLworKy8vIC0gTmVpdGhlciB0aGUgbmFtZSBvZiBT dW4gTWljcm9zeXN0ZW1zIG9yIHRoZSBuYW1lcyBvZiBjb250cmlidXRvcnMgbWF5CisrLy8gYmUg dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29m dHdhcmUgd2l0aG91dAorKy8vIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKysv LworKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT IEFORCBDT05UUklCVVRPUlMgIkFTCisrLy8gSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8vIFRIRSBJTVBM SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIKKysvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg Q09QWVJJR0hUIE9XTkVSIE9SCisrLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisrLy8gRVhFTVBMQVJZLCBPUiBD T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8v IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF LCBEQVRBLCBPUgorKy8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKKysvLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4g Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworKy8vIE5FR0xJ R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg VEhJUworKy8vIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G IFNVQ0ggREFNQUdFLgorKworKy8vIFRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBjb3ZlcmVkIGJ5 IHRoZSBhYm92ZSBsaWNlbnNlIGFib3ZlIGhhcyBiZWVuCisrLy8gbW9kaWZpZWQgc2lnbmlmaWNh bnRseSBieSBHb29nbGUgSW5jLgorKy8vIENvcHlyaWdodCAyMDEyIHRoZSBWOCBwcm9qZWN0IGF1 dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrCisrI2lmbmRlZiBWOF9DT0RFR0VOX1JJU0NW X0FTU0VNQkxFUl9SSVNDVl9IXworKyNkZWZpbmUgVjhfQ09ERUdFTl9SSVNDVl9BU1NFTUJMRVJf UklTQ1ZfSF8KKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKysjaW5jbHVkZSA8bWVtb3J5Pgor KyNpbmNsdWRlIDxzZXQ+CisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL2Fzc2VtYmxlci5oIgor KyNpbmNsdWRlICJzcmMvY29kZWdlbi9leHRlcm5hbC1yZWZlcmVuY2UuaCIKKysjaW5jbHVkZSAi c3JjL2NvZGVnZW4vbGFiZWwuaCIKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9jb25z dGFudHMtcmlzY3Y2NC5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9yaXNjdjY0L3JlZ2lzdGVy LXJpc2N2NjQuaCIKKysjaW5jbHVkZSAic3JjL29iamVjdHMvY29udGV4dHMuaCIKKysjaW5jbHVk ZSAic3JjL29iamVjdHMvc21pLmgiCisrCisrbmFtZXNwYWNlIHY4IHsKKytuYW1lc3BhY2UgaW50 ZXJuYWwgeworKworK2NsYXNzIFNhZmVwb2ludFRhYmxlQnVpbGRlcjsKKysKKysvLyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKy8vIE1hY2hpbmUgaW5zdHJ1Y3Rpb24gT3BlcmFuZHMuCisrY29uc3Rl eHByIGludCBrU21pU2hpZnQgPSBrU21pVGFnU2l6ZSArIGtTbWlTaGlmdFNpemU7CisrY29uc3Rl eHByIHVpbnQ2NF90IGtTbWlTaGlmdE1hc2sgPSAoMVVMIDw8IGtTbWlTaGlmdCkgLSAxOworKy8v IENsYXNzIE9wZXJhbmQgcmVwcmVzZW50cyBhIHNoaWZ0ZXIgb3BlcmFuZCBpbiBkYXRhIHByb2Nl c3NpbmcgaW5zdHJ1Y3Rpb25zLgorK2NsYXNzIE9wZXJhbmQgeworKyBwdWJsaWM6CisrICAvLyBJ bW1lZGlhdGUuCisrICBWOF9JTkxJTkUgZXhwbGljaXQgT3BlcmFuZChpbnQ2NF90IGltbWVkaWF0 ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbG9jSW5mbzo6TW9kZSBybW9kZSA9 IFJlbG9jSW5mbzo6Tk9ORSkKKysgICAgICA6IHJtXyhub19yZWcpLCBybW9kZV8ocm1vZGUpIHsK KysgICAgdmFsdWVfLmltbWVkaWF0ZSA9IGltbWVkaWF0ZTsKKysgIH0KKysgIFY4X0lOTElORSBl eHBsaWNpdCBPcGVyYW5kKGNvbnN0IEV4dGVybmFsUmVmZXJlbmNlJiBmKQorKyAgICAgIDogcm1f KG5vX3JlZyksIHJtb2RlXyhSZWxvY0luZm86OkVYVEVSTkFMX1JFRkVSRU5DRSkgeworKyAgICB2 YWx1ZV8uaW1tZWRpYXRlID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oZi5hZGRyZXNzKCkpOworKyAg fQorKyAgVjhfSU5MSU5FIGV4cGxpY2l0IE9wZXJhbmQoY29uc3QgY2hhciogcyk7CisrICBleHBs aWNpdCBPcGVyYW5kKEhhbmRsZTxIZWFwT2JqZWN0PiBoYW5kbGUpOworKyAgVjhfSU5MSU5FIGV4 cGxpY2l0IE9wZXJhbmQoU21pIHZhbHVlKSA6IHJtXyhub19yZWcpLCBybW9kZV8oUmVsb2NJbmZv OjpOT05FKSB7CisrICAgIHZhbHVlXy5pbW1lZGlhdGUgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4o dmFsdWUucHRyKCkpOworKyAgfQorKworKyAgc3RhdGljIE9wZXJhbmQgRW1iZWRkZWROdW1iZXIo ZG91YmxlIG51bWJlcik7ICAvLyBTbWkgb3IgSGVhcE51bWJlci4KKysgIHN0YXRpYyBPcGVyYW5k IEVtYmVkZGVkU3RyaW5nQ29uc3RhbnQoY29uc3QgU3RyaW5nQ29uc3RhbnRCYXNlKiBzdHIpOwor KworKyAgLy8gUmVnaXN0ZXIuCisrICBWOF9JTkxJTkUgZXhwbGljaXQgT3BlcmFuZChSZWdpc3Rl ciBybSkgOiBybV8ocm0pIHt9CisrCisrICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGEgcmVn aXN0ZXIgb3BlcmFuZC4KKysgIFY4X0lOTElORSBib29sIGlzX3JlZygpIGNvbnN0OworKworKyAg aW5saW5lIGludDY0X3QgaW1tZWRpYXRlKCkgY29uc3Q7CisrCisrICBib29sIElzSW1tZWRpYXRl KCkgY29uc3QgeyByZXR1cm4gIXJtXy5pc192YWxpZCgpOyB9CisrCisrICBIZWFwT2JqZWN0UmVx dWVzdCBoZWFwX29iamVjdF9yZXF1ZXN0KCkgY29uc3QgeworKyAgICBEQ0hFQ0soSXNIZWFwT2Jq ZWN0UmVxdWVzdCgpKTsKKysgICAgcmV0dXJuIHZhbHVlXy5oZWFwX29iamVjdF9yZXF1ZXN0Owor KyAgfQorKworKyAgYm9vbCBJc0hlYXBPYmplY3RSZXF1ZXN0KCkgY29uc3QgeworKyAgICBEQ0hF Q0tfSU1QTElFUyhpc19oZWFwX29iamVjdF9yZXF1ZXN0XywgSXNJbW1lZGlhdGUoKSk7CisrICAg IERDSEVDS19JTVBMSUVTKGlzX2hlYXBfb2JqZWN0X3JlcXVlc3RfLAorKyAgICAgICAgICAgICAg ICAgICBybW9kZV8gPT0gUmVsb2NJbmZvOjpGVUxMX0VNQkVEREVEX09CSkVDVCB8fAorKyAgICAg ICAgICAgICAgICAgICAgICAgcm1vZGVfID09IFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworKyAg ICByZXR1cm4gaXNfaGVhcF9vYmplY3RfcmVxdWVzdF87CisrICB9CisrCisrICBSZWdpc3RlciBy bSgpIGNvbnN0IHsgcmV0dXJuIHJtXzsgfQorKworKyAgUmVsb2NJbmZvOjpNb2RlIHJtb2RlKCkg Y29uc3QgeyByZXR1cm4gcm1vZGVfOyB9CisrCisrIHByaXZhdGU6CisrICBSZWdpc3RlciBybV87 CisrICB1bmlvbiBWYWx1ZSB7CisrICAgIFZhbHVlKCkge30KKysgICAgSGVhcE9iamVjdFJlcXVl c3QgaGVhcF9vYmplY3RfcmVxdWVzdDsgIC8vIGlmIGlzX2hlYXBfb2JqZWN0X3JlcXVlc3RfCisr ICAgIGludDY0X3QgaW1tZWRpYXRlOyAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UK KysgIH0gdmFsdWVfOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIGlm IHJtXyA9PSBub19yZWcKKysgIGJvb2wgaXNfaGVhcF9vYmplY3RfcmVxdWVzdF8gPSBmYWxzZTsK KysgIFJlbG9jSW5mbzo6TW9kZSBybW9kZV87CisrCisrICBmcmllbmQgY2xhc3MgQXNzZW1ibGVy OworKyAgZnJpZW5kIGNsYXNzIE1hY3JvQXNzZW1ibGVyOworK307CisrCisrLy8gT24gUklTQy1W IHdlIGhhdmUgb25seSBvbmUgYWRkcmVzc2luZyBtb2RlIHdpdGggYmFzZV9yZWcgKyBvZmZzZXQu CisrLy8gQ2xhc3MgTWVtT3BlcmFuZCByZXByZXNlbnRzIGEgbWVtb3J5IG9wZXJhbmQgaW4gbG9h ZCBhbmQgc3RvcmUgaW5zdHJ1Y3Rpb25zLgorK2NsYXNzIFY4X0VYUE9SVF9QUklWQVRFIE1lbU9w ZXJhbmQgOiBwdWJsaWMgT3BlcmFuZCB7CisrIHB1YmxpYzoKKysgIC8vIEltbWVkaWF0ZSB2YWx1 ZSBhdHRhY2hlZCB0byBvZmZzZXQuCisrICBlbnVtIE9mZnNldEFkZGVuZCB7IG9mZnNldF9taW51 c19vbmUgPSAtMSwgb2Zmc2V0X3plcm8gPSAwIH07CisrCisrICBleHBsaWNpdCBNZW1PcGVyYW5k KFJlZ2lzdGVyIHJuLCBpbnQzMl90IG9mZnNldCA9IDApOworKyAgZXhwbGljaXQgTWVtT3BlcmFu ZChSZWdpc3RlciBybiwgaW50MzJfdCB1bml0LCBpbnQzMl90IG11bHRpcGxpZXIsCisrICAgICAg ICAgICAgICAgICAgICAgIE9mZnNldEFkZGVuZCBvZmZzZXRfYWRkZW5kID0gb2Zmc2V0X3plcm8p OworKyAgaW50MzJfdCBvZmZzZXQoKSBjb25zdCB7IHJldHVybiBvZmZzZXRfOyB9CisrCisrICBi b29sIE9mZnNldElzSW50MTJFbmNvZGFibGUoKSBjb25zdCB7IHJldHVybiBpc19pbnQxMihvZmZz ZXRfKTsgfQorKworKyBwcml2YXRlOgorKyAgaW50MzJfdCBvZmZzZXRfOworKworKyAgZnJpZW5k IGNsYXNzIEFzc2VtYmxlcjsKKyt9OworKworK2NsYXNzIFY4X0VYUE9SVF9QUklWQVRFIEFzc2Vt YmxlciA6IHB1YmxpYyBBc3NlbWJsZXJCYXNlIHsKKysgcHVibGljOgorKyAgLy8gQ3JlYXRlIGFu IGFzc2VtYmxlci4gSW5zdHJ1Y3Rpb25zIGFuZCByZWxvY2F0aW9uIGluZm9ybWF0aW9uIGFyZSBl bWl0dGVkCisrICAvLyBpbnRvIGEgYnVmZmVyLCB3aXRoIHRoZSBpbnN0cnVjdGlvbnMgc3RhcnRp bmcgZnJvbSB0aGUgYmVnaW5uaW5nIGFuZCB0aGUKKysgIC8vIHJlbG9jYXRpb24gaW5mb3JtYXRp b24gc3RhcnRpbmcgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXIuIFNlZSBDb2RlRGVzYworKyAg Ly8gZm9yIGEgZGV0YWlsZWQgY29tbWVudCBvbiB0aGUgbGF5b3V0IChnbG9iYWxzLmgpLgorKyAg Ly8KKysgIC8vIElmIHRoZSBwcm92aWRlZCBidWZmZXIgaXMgbnVsbHB0ciwgdGhlIGFzc2VtYmxl ciBhbGxvY2F0ZXMgYW5kIGdyb3dzIGl0cworKyAgLy8gb3duIGJ1ZmZlci4gT3RoZXJ3aXNlIGl0 IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgcHJvdmlkZWQgYnVmZmVyLgorKyAgZXhwbGljaXQgQXNz ZW1ibGVyKGNvbnN0IEFzc2VtYmxlck9wdGlvbnMmLAorKyAgICAgICAgICAgICAgICAgICAgIHN0 ZDo6dW5pcXVlX3B0cjxBc3NlbWJsZXJCdWZmZXI+ID0ge30pOworKworKyAgdmlydHVhbCB+QXNz ZW1ibGVyKCkge30KKysKKysgIC8vIEdldENvZGUgZW1pdHMgYW55IHBlbmRpbmcgKG5vbi1lbWl0 dGVkKSBjb2RlIGFuZCBmaWxscyB0aGUgZGVzY3JpcHRvciBkZXNjLgorKyAgc3RhdGljIGNvbnN0 ZXhwciBpbnQga05vSGFuZGxlclRhYmxlID0gMDsKKysgIHN0YXRpYyBjb25zdGV4cHIgU2FmZXBv aW50VGFibGVCdWlsZGVyKiBrTm9TYWZlcG9pbnRUYWJsZSA9IG51bGxwdHI7CisrICB2b2lkIEdl dENvZGUoSXNvbGF0ZSogaXNvbGF0ZSwgQ29kZURlc2MqIGRlc2MsCisrICAgICAgICAgICAgICAg U2FmZXBvaW50VGFibGVCdWlsZGVyKiBzYWZlcG9pbnRfdGFibGVfYnVpbGRlciwKKysgICAgICAg ICAgICAgICBpbnQgaGFuZGxlcl90YWJsZV9vZmZzZXQpOworKworKyAgLy8gQ29udmVuaWVuY2Ug d3JhcHBlciBmb3IgY29kZSB3aXRob3V0IHNhZmVwb2ludCBvciBoYW5kbGVyIHRhYmxlcy4KKysg IHZvaWQgR2V0Q29kZShJc29sYXRlKiBpc29sYXRlLCBDb2RlRGVzYyogZGVzYykgeworKyAgICBH ZXRDb2RlKGlzb2xhdGUsIGRlc2MsIGtOb1NhZmVwb2ludFRhYmxlLCBrTm9IYW5kbGVyVGFibGUp OworKyAgfQorKworKyAgLy8gVW51c2VkIG9uIHRoaXMgYXJjaGl0ZWN0dXJlLgorKyAgdm9pZCBN YXliZUVtaXRPdXRPZkxpbmVDb25zdGFudFBvb2woKSB7fQorKworKyAgLy8gTGFiZWwgb3BlcmF0 aW9ucyAmIHJlbGF0aXZlIGp1bXBzIChQUFVNIEFwcGVuZGl4IEQpLgorKyAgLy8KKysgIC8vIFRh a2VzIGEgYnJhbmNoIG9wY29kZSAoY2MpIGFuZCBhIGxhYmVsIChMKSBhbmQgZ2VuZXJhdGVzCisr ICAvLyBlaXRoZXIgYSBiYWNrd2FyZCBicmFuY2ggb3IgYSBmb3J3YXJkIGJyYW5jaCBhbmQgbGlu a3MgaXQKKysgIC8vIHRvIHRoZSBsYWJlbCBmaXh1cCBjaGFpbi4gVXNhZ2U6CisrICAvLworKyAg Ly8gTGFiZWwgTDsgICAgLy8gdW5ib3VuZCBsYWJlbAorKyAgLy8gaihjYywgJkwpOyAgLy8gZm9y d2FyZCBicmFuY2ggdG8gdW5ib3VuZCBsYWJlbAorKyAgLy8gYmluZCgmTCk7ICAgLy8gYmluZCBs YWJlbCB0byB0aGUgY3VycmVudCBwYworKyAgLy8gaihjYywgJkwpOyAgLy8gYmFja3dhcmQgYnJh bmNoIHRvIGJvdW5kIGxhYmVsCisrICAvLyBiaW5kKCZMKTsgICAvLyBpbGxlZ2FsOiBhIGxhYmVs IG1heSBiZSBib3VuZCBvbmx5IG9uY2UKKysgIC8vCisrICAvLyBOb3RlOiBUaGUgc2FtZSBMYWJl bCBjYW4gYmUgdXNlZCBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgYnJhbmNoZXMKKysgIC8vIGJ1 dCBpdCBtYXkgYmUgYm91bmQgb25seSBvbmNlLgorKyAgdm9pZCBiaW5kKExhYmVsKiBMKTsgIC8v IEJpbmRzIGFuIHVuYm91bmQgbGFiZWwgTCB0byBjdXJyZW50IGNvZGUgcG9zaXRpb24uCisrCisr ICBlbnVtIE9mZnNldFNpemUgOiBpbnQgeworKyAgICBrT2Zmc2V0MjEgPSAyMSwgIC8vIFJJU0NW IGphbAorKyAgICBrT2Zmc2V0MTIgPSAxMiwgIC8vIFJJU0NWIGltbTEyCisrICAgIGtPZmZzZXQy MCA9IDIwLCAgLy8gUklTQ1YgaW1tMjAKKysgICAga09mZnNldDEzID0gMTMgICAvLyBSSVNDViBi cmFuY2gKKysgIH07CisrCisrICAvLyBEZXRlcm1pbmVzIGlmIExhYmVsIGlzIGJvdW5kIGFuZCBu ZWFyIGVub3VnaCBzbyB0aGF0IGJyYW5jaCBpbnN0cnVjdGlvbgorKyAgLy8gY2FuIGJlIHVzZWQg dG8gcmVhY2ggaXQsIGluc3RlYWQgb2YganVtcCBpbnN0cnVjdGlvbi4KKysgIGJvb2wgaXNfbmVh cihMYWJlbCogTCk7CisrICBib29sIGlzX25lYXIoTGFiZWwqIEwsIE9mZnNldFNpemUgYml0cyk7 CisrICBib29sIGlzX25lYXJfYnJhbmNoKExhYmVsKiBMKTsKKysgIAorKyAgLy9HZXQgb2Zmc2V0 IGZyb20gaW5zdHIuCisrICBpbnQgQnJhbmNoT2Zmc2V0KEluc3RyIGluc3RyKTsKKysgIGludCBC cmFjaGxvbmdPZmZzZXQoSW5zdHIgYXVpcGMsIEluc3RyIGphbHIpOworKyAgaW50IEp1bXBPZmZz ZXQoSW5zdHIgaW5zdHIpOworKworKyAgLy8gUmV0dXJucyB0aGUgYnJhbmNoIG9mZnNldCB0byB0 aGUgZ2l2ZW4gbGFiZWwgZnJvbSB0aGUgY3VycmVudCBjb2RlCisrICAvLyBwb3NpdGlvbi4gTGlu a3MgdGhlIGxhYmVsIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlmIGl0IGlzIHN0aWxsIHVuYm91 bmQuCisrICAvLyBNYW5hZ2VzIHRoZSBqdW1wIGVsaW1pbmF0aW9uIG9wdGltaXphdGlvbiBpZiB0 aGUgc2Vjb25kIHBhcmFtZXRlciBpcyB0cnVlLgorKyAgaW50MzJfdCBicmFuY2hfb2Zmc2V0X2hl bHBlcihMYWJlbCogTCwgT2Zmc2V0U2l6ZSBiaXRzKTsKKysgIGlubGluZSBpbnQzMl90IGJyYW5j aF9vZmZzZXQoTGFiZWwqIEwpIHsKKysgICAgcmV0dXJuIGJyYW5jaF9vZmZzZXRfaGVscGVyKEws IE9mZnNldFNpemU6OmtPZmZzZXQxMyk7CisrICB9CisrICBpbmxpbmUgaW50MzJfdCBqdW1wX29m ZnNldChMYWJlbCogTCkgeworKyAgICByZXR1cm4gYnJhbmNoX29mZnNldF9oZWxwZXIoTCwgT2Zm c2V0U2l6ZTo6a09mZnNldDIxKTsKKysgIH0KKysKKysgIHVpbnQ2NF90IGp1bXBfYWRkcmVzcyhM YWJlbCogTCk7CisrICB1aW50NjRfdCBicmFuY2hfbG9uZ19vZmZzZXQoTGFiZWwqIEwpOworKwor KyAgLy8gUHV0cyBhIGxhYmVscyB0YXJnZXQgYWRkcmVzcyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24u CisrICAvLyBUaGUgaGlnaCA4IGJpdHMgYXJlIHNldCB0byB6ZXJvLgorKyAgdm9pZCBsYWJlbF9h dF9wdXQoTGFiZWwqIEwsIGludCBhdF9vZmZzZXQpOworKworKyAgLy8gUmVhZC9Nb2RpZnkgdGhl IGNvZGUgdGFyZ2V0IGFkZHJlc3MgaW4gdGhlIGJyYW5jaC9jYWxsIGluc3RydWN0aW9uIGF0IHBj LgorKyAgLy8gVGhlIGlzb2xhdGUgYXJndW1lbnQgaXMgdW51c2VkIChhbmQgbWF5IGJlIG51bGxw dHIpIHdoZW4gc2tpcHBpbmcgZmx1c2hpbmcuCisrICBzdGF0aWMgQWRkcmVzcyB0YXJnZXRfYWRk cmVzc19hdChBZGRyZXNzIHBjKTsKKysgIFY4X0lOTElORSBzdGF0aWMgdm9pZCBzZXRfdGFyZ2V0 X2FkZHJlc3NfYXQoCisrICAgICAgQWRkcmVzcyBwYywgQWRkcmVzcyB0YXJnZXQsCisrICAgICAg SUNhY2hlRmx1c2hNb2RlIGljYWNoZV9mbHVzaF9tb2RlID0gRkxVU0hfSUNBQ0hFX0lGX05FRURF RCkgeworKyAgICBzZXRfdGFyZ2V0X3ZhbHVlX2F0KHBjLCB0YXJnZXQsIGljYWNoZV9mbHVzaF9t b2RlKTsKKysgIH0KKysgIC8vIE9uIFJJU0MtViB0aGVyZSBpcyBubyBDb25zdGFudCBQb29sIHNv IHdlIHNraXAgdGhhdCBwYXJhbWV0ZXIuCisrICBWOF9JTkxJTkUgc3RhdGljIEFkZHJlc3MgdGFy Z2V0X2FkZHJlc3NfYXQoQWRkcmVzcyBwYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBZGRyZXNzIGNvbnN0YW50X3Bvb2wpIHsKKysgICAgcmV0dXJuIHRh cmdldF9hZGRyZXNzX2F0KHBjKTsKKysgIH0KKysgIFY4X0lOTElORSBzdGF0aWMgdm9pZCBzZXRf dGFyZ2V0X2FkZHJlc3NfYXQoCisrICAgICAgQWRkcmVzcyBwYywgQWRkcmVzcyBjb25zdGFudF9w b29sLCBBZGRyZXNzIHRhcmdldCwKKysgICAgICBJQ2FjaGVGbHVzaE1vZGUgaWNhY2hlX2ZsdXNo X21vZGUgPSBGTFVTSF9JQ0FDSEVfSUZfTkVFREVEKSB7CisrICAgIHNldF90YXJnZXRfYWRkcmVz c19hdChwYywgdGFyZ2V0LCBpY2FjaGVfZmx1c2hfbW9kZSk7CisrICB9CisrCisrICBzdGF0aWMg dm9pZCBzZXRfdGFyZ2V0X3ZhbHVlX2F0KAorKyAgICAgIEFkZHJlc3MgcGMsIHVpbnQ2NF90IHRh cmdldCwKKysgICAgICBJQ2FjaGVGbHVzaE1vZGUgaWNhY2hlX2ZsdXNoX21vZGUgPSBGTFVTSF9J Q0FDSEVfSUZfTkVFREVEKTsKKysKKysgIHN0YXRpYyB2b2lkIEp1bXBMYWJlbFRvSnVtcFJlZ2lz dGVyKEFkZHJlc3MgcGMpOworKworKyAgLy8gVGhpcyBzZXRzIHRoZSBicmFuY2ggZGVzdGluYXRp b24gKHdoaWNoIGdldHMgbG9hZGVkIGF0IHRoZSBjYWxsIGFkZHJlc3MpLgorKyAgLy8gVGhpcyBp cyBmb3IgY2FsbHMgYW5kIGJyYW5jaGVzIHdpdGhpbiBnZW5lcmF0ZWQgY29kZS4gIFRoZSBzZXJp YWxpemVyCisrICAvLyBoYXMgYWxyZWFkeSBkZXNlcmlhbGl6ZWQgdGhlIGx1aS9vcmkgaW5zdHJ1 Y3Rpb25zIGV0Yy4KKysgIGlubGluZSBzdGF0aWMgdm9pZCBkZXNlcmlhbGl6YXRpb25fc2V0X3Nw ZWNpYWxfdGFyZ2V0X2F0KAorKyAgICAgIEFkZHJlc3MgaW5zdHJ1Y3Rpb25fcGF5bG9hZCwgQ29k ZSBjb2RlLCBBZGRyZXNzIHRhcmdldCk7CisrCisrICAvLyBHZXQgdGhlIHNpemUgb2YgdGhlIHNw ZWNpYWwgdGFyZ2V0IGVuY29kZWQgYXQgJ2luc3RydWN0aW9uX3BheWxvYWQnLgorKyAgaW5saW5l IHN0YXRpYyBpbnQgZGVzZXJpYWxpemF0aW9uX3NwZWNpYWxfdGFyZ2V0X3NpemUoCisrICAgICAg QWRkcmVzcyBpbnN0cnVjdGlvbl9wYXlsb2FkKTsKKysKKysgIC8vIFRoaXMgc2V0cyB0aGUgaW50 ZXJuYWwgcmVmZXJlbmNlIGF0IHRoZSBwYy4KKysgIGlubGluZSBzdGF0aWMgdm9pZCBkZXNlcmlh bGl6YXRpb25fc2V0X3RhcmdldF9pbnRlcm5hbF9yZWZlcmVuY2VfYXQoCisrICAgICAgQWRkcmVz cyBwYywgQWRkcmVzcyB0YXJnZXQsCisrICAgICAgUmVsb2NJbmZvOjpNb2RlIG1vZGUgPSBSZWxv Y0luZm86OklOVEVSTkFMX1JFRkVSRU5DRSk7CisrCisrICAvLyBEaWZmZXJlbmNlIGJldHdlZW4g YWRkcmVzcyBvZiBjdXJyZW50IG9wY29kZSBhbmQgdGFyZ2V0IGFkZHJlc3Mgb2Zmc2V0LgorKyAg c3RhdGljIGNvbnN0ZXhwciBpbnQga0JyYW5jaFBDT2Zmc2V0ID0ga0luc3RyU2l6ZTsKKysKKysg IC8vIERpZmZlcmVuY2UgYmV0d2VlbiBhZGRyZXNzIG9mIGN1cnJlbnQgb3Bjb2RlIGFuZCB0YXJn ZXQgYWRkcmVzcyBvZmZzZXQsCisrICAvLyB3aGVuIHdlIGFyZSBnZW5lcmF0aW5nYSBzZXF1ZW5j ZSBvZiBpbnN0cnVjdGlvbnMgZm9yIGxvbmcgcmVsYXRpdmUgUEMKKysgIC8vIGJyYW5jaGVzCisr ICBzdGF0aWMgY29uc3RleHByIGludCBrTG9uZ0JyYW5jaFBDT2Zmc2V0ID0gMyAqIGtJbnN0clNp emU7CisrCisrICAvLyBBZGp1c3QgcmEgcmVnaXN0ZXIgaW4gYnJhbmNoIGRlbGF5IHNsb3Qgb2Yg YmFsIGluc3RydWN0aW9uIHNvIHRvIHNraXAKKysgIC8vIGluc3RydWN0aW9ucyBub3QgbmVlZGVk IGFmdGVyIG9wdGltaXphdGlvbiBvZiBQSUMgaW4KKysgIC8vIFR1cmJvQXNzZW1ibGVyOjpCcmFu Y2hBbmRMaW5rIG1ldGhvZC4KKysKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtPcHRpbWl6ZWRC cmFuY2hBbmRMaW5rTG9uZ1JldHVybk9mZnNldCA9IDQgKiBrSW5zdHJTaXplOworKworKyAgLy8g SGVyZSB3ZSBhcmUgcGF0Y2hpbmcgdGhlIGFkZHJlc3MgaW4gdGhlIExVSS9BRERJIGluc3RydWN0 aW9uIHBhaXIuCisrICAvLyBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgaW4gdGhlIHNlcmlhbGl6YXRp b24gcHJvY2VzcyBhbmQgbXVzdCBiZSB6ZXJvIGZvcgorKyAgLy8gUklTQy1WIHBsYXRmb3JtLCBh cyBDb2RlLCBFbWJlZGRlZCBPYmplY3Qgb3IgRXh0ZXJuYWwtcmVmZXJlbmNlIHBvaW50ZXJzCisr ICAvLyBhcmUgc3BsaXQgYWNyb3NzIHR3byBjb25zZWN1dGl2ZSBpbnN0cnVjdGlvbnMgYW5kIGRv bid0IGV4aXN0IHNlcGFyYXRlbHkKKysgIC8vIGluIHRoZSBjb2RlLCBzbyB0aGUgc2VyaWFsaXpl ciBzaG91bGQgbm90IHN0ZXAgZm9yd2FyZHMgaW4gbWVtb3J5IGFmdGVyCisrICAvLyBhIHRhcmdl dCBpcyByZXNvbHZlZCBhbmQgd3JpdHRlbi4KKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtTcGVj aWFsVGFyZ2V0U2l6ZSA9IDA7CisrCisrICAvLyBOdW1iZXIgb2YgY29uc2VjdXRpdmUgaW5zdHJ1 Y3Rpb25zIHVzZWQgdG8gc3RvcmUgMzJiaXQvNjRiaXQgY29uc3RhbnQuCisrICAvLyBUaGlzIGNv bnN0YW50IHdhcyB1c2VkIGluIFJlbG9jSW5mbzo6dGFyZ2V0X2FkZHJlc3NfYWRkcmVzcygpIGZ1 bmN0aW9uCisrICAvLyB0byB0ZWxsIHNlcmlhbGl6ZXIgYWRkcmVzcyBvZiB0aGUgaW5zdHJ1Y3Rp b24gdGhhdCBmb2xsb3dzCisrICAvLyBMVUkvQURESSBpbnN0cnVjdGlvbiBwYWlyLgorKyAgc3Rh dGljIGNvbnN0ZXhwciBpbnQga0luc3RydWN0aW9uc0ZvcjMyQml0Q29uc3RhbnQgPSAyOworKyAg c3RhdGljIGNvbnN0ZXhwciBpbnQga0luc3RydWN0aW9uc0ZvcjY0Qml0Q29uc3RhbnQgPSA4Owor KworKyAgLy8gRGlmZmVyZW5jZSBiZXR3ZWVuIGFkZHJlc3Mgb2YgY3VycmVudCBvcGNvZGUgYW5k IHZhbHVlIHJlYWQgZnJvbSBwYworKyAgLy8gcmVnaXN0ZXIuCisrICBzdGF0aWMgY29uc3RleHBy IGludCBrUGNMb2FkRGVsdGEgPSA0OworKworKyAgLy8gQml0cyBhdmFpbGFibGUgZm9yIG9mZnNl dCBmaWVsZCBpbiBicmFuY2hlcworKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0JyYW5jaE9mZnNl dEJpdHMgPSAxMzsKKysKKysgIC8vIEJpdHMgYXZhaWxhYmxlIGZvciBvZmZzZXQgZmllbGQgaW4g anVtcAorKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0p1bXBPZmZzZXRCaXRzID0gMjE7CisrCisr ICAvLyBNYXggb2Zmc2V0IGZvciBiIGluc3RydWN0aW9ucyB3aXRoIDEyLWJpdCBvZmZzZXQgZmll bGQgKG11bHRpcGxlIG9mIDIpCisrICBzdGF0aWMgY29uc3RleHByIGludCBrTWF4QnJhbmNoT2Zm c2V0ID0gKDEgPDwgKDEzIC0gMSkpIC0gMTsKKysKKysgIC8vIE1heCBvZmZzZXQgZm9yIGphbCBp bnN0cnVjdGlvbiB3aXRoIDIwLWJpdCBvZmZzZXQgZmllbGQgKG11bHRpcGxlIG9mIDIpCisrICBz dGF0aWMgY29uc3RleHByIGludCBrTWF4SnVtcE9mZnNldCA9ICgxIDw8ICgyMSAtIDEpKSAtIDE7 CisrCisrICBzdGF0aWMgY29uc3RleHByIGludCBrVHJhbXBvbGluZVNsb3RzU2l6ZSA9IDIgKiBr SW5zdHJTaXplOworKworKyAgUmVnTGlzdCogR2V0U2NyYXRjaFJlZ2lzdGVyTGlzdCgpIHsgcmV0 dXJuICZzY3JhdGNoX3JlZ2lzdGVyX2xpc3RfOyB9CisrCisrICAvLyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysgIC8vIENvZGUgZ2VuZXJhdGlvbi4KKysKKysgIC8vIEluc2VydCB0aGUgc21hbGxlc3Qg bnVtYmVyIG9mIG5vcCBpbnN0cnVjdGlvbnMKKysgIC8vIHBvc3NpYmxlIHRvIGFsaWduIHRoZSBw YyBvZmZzZXQgdG8gYSBtdWx0aXBsZQorKyAgLy8gb2YgbS4gbSBtdXN0IGJlIGEgcG93ZXIgb2Yg MiAoPj0gNCkuCisrICB2b2lkIEFsaWduKGludCBtKTsKKysgIC8vIEluc2VydCB0aGUgc21hbGxl c3QgbnVtYmVyIG9mIHplcm8gYnl0ZXMgcG9zc2libGUgdG8gYWxpZ24gdGhlIHBjIG9mZnNldAor KyAgLy8gdG8gYSBtdWxpdHBsZSBvZiBtLiBtIG11c3QgYmUgYSBwb3dlciBvZiAyICg+PSAyKS4K KysgIHZvaWQgRGF0YUFsaWduKGludCBtKTsKKysgIC8vIEFsaWducyBjb2RlIHRvIHNvbWV0aGlu ZyB0aGF0J3Mgb3B0aW1hbCBmb3IgYSBqdW1wIHRhcmdldCBmb3IgdGhlIHBsYXRmb3JtLgorKyAg dm9pZCBDb2RlVGFyZ2V0QWxpZ24oKTsKKysKKysgIC8vIERpZmZlcmVudCBub3Agb3BlcmF0aW9u cyBhcmUgdXNlZCBieSB0aGUgY29kZSBnZW5lcmF0b3IgdG8gZGV0ZWN0IGNlcnRhaW4KKysgIC8v IHN0YXRlcyBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCisrICBlbnVtIE5vcE1hcmtlclR5cGVzIHsK KysgICAgTk9OX01BUktJTkdfTk9QID0gMCwKKysgICAgREVCVUdfQlJFQUtfTk9QLAorKyAgICAv LyBJQyBtYXJrZXJzLgorKyAgICBQUk9QRVJUWV9BQ0NFU1NfSU5MSU5FRCwKKysgICAgUFJPUEVS VFlfQUNDRVNTX0lOTElORURfQ09OVEVYVCwKKysgICAgUFJPUEVSVFlfQUNDRVNTX0lOTElORURf Q09OVEVYVF9ET05UX0RFTEVURSwKKysgICAgLy8gSGVscGVyIHZhbHVlcy4KKysgICAgTEFTVF9D T0RFX01BUktFUiwKKysgICAgRklSU1RfSUNfTUFSS0VSID0gUFJPUEVSVFlfQUNDRVNTX0lOTElO RUQsCisrICB9OworKworKyAgLy8gUklTQy1WIEluc3RydWN0aW9ucyBFbWl0ZWQgdG8gYSBidWZm ZXIKKysKKysgIHZvaWQgbHVpKFJlZ2lzdGVyIHJkLCBpbnQzMl90IGltbTIwKTsKKysgIHZvaWQg YXVpcGMoUmVnaXN0ZXIgcmQsIGludDMyX3QgaW1tMjApOworKworKyAgLy8gSnVtcHMKKysgIHZv aWQgamFsKFJlZ2lzdGVyIHJkLCBpbnQzMl90IGltbTIwKTsKKysgIHZvaWQgamFscihSZWdpc3Rl ciByZCwgUmVnaXN0ZXIgcnMxLCBpbnQxNl90IGltbTEyKTsKKysKKysgIC8vIEJyYW5jaGVzCisr ICB2b2lkIGJlcShSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwgaW50MTZfdCBpbW0xMik7Cisr ICBpbmxpbmUgdm9pZCBiZXEoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIExhYmVsKiBMKSB7 CisrICAgIGJlcShyczEsIHJzMiwgYnJhbmNoX29mZnNldChMKSk7CisrICB9CisrICB2b2lkIGJu ZShSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwgaW50MTZfdCBpbW0xMik7CisrICBpbmxpbmUg dm9pZCBibmUoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIExhYmVsKiBMKSB7CisrICAgIGJu ZShyczEsIHJzMiwgYnJhbmNoX29mZnNldChMKSk7CisrICB9CisrICB2b2lkIGJsdChSZWdpc3Rl ciByczEsIFJlZ2lzdGVyIHJzMiwgaW50MTZfdCBpbW0xMik7CisrICBpbmxpbmUgdm9pZCBibHQo UmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIExhYmVsKiBMKSB7CisrICAgIGJsdChyczEsIHJz MiwgYnJhbmNoX29mZnNldChMKSk7CisrICB9CisrICB2b2lkIGJnZShSZWdpc3RlciByczEsIFJl Z2lzdGVyIHJzMiwgaW50MTZfdCBpbW0xMik7CisrICBpbmxpbmUgdm9pZCBiZ2UoUmVnaXN0ZXIg cnMxLCBSZWdpc3RlciByczIsIExhYmVsKiBMKSB7CisrICAgIGJnZShyczEsIHJzMiwgYnJhbmNo X29mZnNldChMKSk7CisrICB9CisrICB2b2lkIGJsdHUoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciBy czIsIGludDE2X3QgaW1tMTIpOworKyAgaW5saW5lIHZvaWQgYmx0dShSZWdpc3RlciByczEsIFJl Z2lzdGVyIHJzMiwgTGFiZWwqIEwpIHsKKysgICAgYmx0dShyczEsIHJzMiwgYnJhbmNoX29mZnNl dChMKSk7CisrICB9CisrICB2b2lkIGJnZXUoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIGlu dDE2X3QgaW1tMTIpOworKyAgaW5saW5lIHZvaWQgYmdldShSZWdpc3RlciByczEsIFJlZ2lzdGVy IHJzMiwgTGFiZWwqIEwpIHsKKysgICAgYmdldShyczEsIHJzMiwgYnJhbmNoX29mZnNldChMKSk7 CisrICB9CisrCisrICAvLyBMb2FkcworKyAgdm9pZCBsYihSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgbGgoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJz MSwgaW50MTZfdCBpbW0xMik7CisrICB2b2lkIGx3KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEs IGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBsYnUoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwg aW50MTZfdCBpbW0xMik7CisrICB2b2lkIGxodShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBp bnQxNl90IGltbTEyKTsKKysKKysgIC8vIFN0b3JlcworKyAgdm9pZCBzYihSZWdpc3RlciBzb3Vy Y2UsIFJlZ2lzdGVyIGJhc2UsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBzaChSZWdpc3RlciBz b3VyY2UsIFJlZ2lzdGVyIGJhc2UsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBzdyhSZWdpc3Rl ciBzb3VyY2UsIFJlZ2lzdGVyIGJhc2UsIGludDE2X3QgaW1tMTIpOworKworKyAgLy8gQXJpdGht ZXRpYyB3aXRoIGltbWVkaWF0ZQorKyAgdm9pZCBhZGRpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBzbHRpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBzbHRpdShSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgeG9yaShSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgb3JpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBhbmRpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBzbGxpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIHVpbnQ4X3Qgc2hhbXQpOworKyAgdm9pZCBzcmxpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIHVpbnQ4X3Qgc2hhbXQpOworKyAgdm9pZCBzcmFpKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy czEsIHVpbnQ4X3Qgc2hhbXQpOworKworKyAgLy8gQXJpdGhtZXRpYworKyAgdm9pZCBhZGQoUmVn aXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgc3ViKFJlZ2lz dGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIHNsbChSZWdpc3Rl ciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9pZCBzbHQoUmVnaXN0ZXIg cmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgc2x0dShSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9pZCB4b3JfKFJlZ2lzdGVyIHJk LCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIHNybChSZWdpc3RlciByZCwg UmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9pZCBzcmEoUmVnaXN0ZXIgcmQsIFJl Z2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgb3JfKFJlZ2lzdGVyIHJkLCBSZWdp c3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFuZF8oUmVnaXN0ZXIgcmQsIFJlZ2lz dGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysKKysgIC8vIE1lbW9yeSBmZW5jZXMKKysgIHZvaWQg ZmVuY2UodWludDhfdCBwcmVkLCB1aW50OF90IHN1Y2MpOworKyAgdm9pZCBmZW5jZV90c28oKTsK KysKKysgIC8vIEVudmlyb25tZW50IGNhbGwgLyBicmVhaworKyAgdm9pZCBlY2FsbCgpOworKyAg dm9pZCBlYnJlYWsoKTsKKysKKysgIC8vIFRoaXMgaXMgYSBkZSBmYWN0byBzdGFuZGFyZCAoYXMg c2V0IGJ5IEdOVSBiaW51dGlscykgMzItYml0IHVuaW1wbGVtZW50ZWQKKysgIC8vIGluc3RydWN0 aW9uIChpLmUuLCBpdCBzaG91bGQgYWx3YXlzIHRyYXAsIGlmIHlvdXIgaW1wbGVtZW50YXRpb24g aGFzCisrICAvLyBpbnZhbGlkIGluc3RydWN0aW9uIHRyYXBzKS4KKysgIHZvaWQgdW5pbXAoKTsK KysKKysgIC8vIENTUgorKyAgdm9pZCBjc3JydyhSZWdpc3RlciByZCwgQ29udHJvbFN0YXR1c1Jl ZyBjc3IsIFJlZ2lzdGVyIHJzMSk7CisrICB2b2lkIGNzcnJzKFJlZ2lzdGVyIHJkLCBDb250cm9s U3RhdHVzUmVnIGNzciwgUmVnaXN0ZXIgcnMxKTsKKysgIHZvaWQgY3NycmMoUmVnaXN0ZXIgcmQs IENvbnRyb2xTdGF0dXNSZWcgY3NyLCBSZWdpc3RlciByczEpOworKyAgdm9pZCBjc3Jyd2koUmVn aXN0ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyLCB1aW50OF90IGltbTUpOworKyAgdm9pZCBj c3Jyc2koUmVnaXN0ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyLCB1aW50OF90IGltbTUpOwor KyAgdm9pZCBjc3JyY2koUmVnaXN0ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyLCB1aW50OF90 IGltbTUpOworKworKyAgLy8gUlY2NEkKKysgIHZvaWQgbHd1KFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciByczEsIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBsZChSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgc2QoUmVnaXN0ZXIgc291cmNlLCBSZWdpc3Rl ciBiYXNlLCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgYWRkaXcoUmVnaXN0ZXIgcmQsIFJlZ2lz dGVyIHJzMSwgaW50MTZfdCBpbW0xMik7CisrICB2b2lkIHNsbGl3KFJlZ2lzdGVyIHJkLCBSZWdp c3RlciByczEsIHVpbnQ4X3Qgc2hhbXQpOworKyAgdm9pZCBzcmxpdyhSZWdpc3RlciByZCwgUmVn aXN0ZXIgcnMxLCB1aW50OF90IHNoYW10KTsKKysgIHZvaWQgc3JhaXcoUmVnaXN0ZXIgcmQsIFJl Z2lzdGVyIHJzMSwgdWludDhfdCBzaGFtdCk7CisrICB2b2lkIGFkZHcoUmVnaXN0ZXIgcmQsIFJl Z2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgc3VidyhSZWdpc3RlciByZCwgUmVn aXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9pZCBzbGx3KFJlZ2lzdGVyIHJkLCBSZWdp c3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIHNybHcoUmVnaXN0ZXIgcmQsIFJlZ2lz dGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgc3JhdyhSZWdpc3RlciByZCwgUmVnaXN0 ZXIgcnMxLCBSZWdpc3RlciByczIpOworKworKyAgLy8gUlYzMk0gU3RhbmRhcmQgRXh0ZW5zaW9u CisrICB2b2lkIG11bChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOwor KyAgdm9pZCBtdWxoKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7Cisr ICB2b2lkIG11bGhzdShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOwor KyAgdm9pZCBtdWxodShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOwor KyAgdm9pZCBkaXYoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysg IHZvaWQgZGl2dShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAg dm9pZCByZW0oUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZv aWQgcmVtdShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKworKyAg Ly8gUlY2NE0gU3RhbmRhcmQgRXh0ZW5zaW9uIChpbiBhZGRpdGlvbiB0byBSVjMyTSkKKysgIHZv aWQgbXVsdyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9p ZCBkaXZ3KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lk IGRpdnV3KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lk IHJlbXcoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQg cmVtdXcoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysKKysgIC8v IFJWMzJBIFN0YW5kYXJkIEV4dGVuc2lvbgorKyAgdm9pZCBscl93KGJvb2wgYXEsIGJvb2wgcmws IFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEpOworKyAgdm9pZCBzY193KGJvb2wgYXEsIGJvb2wg cmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFt b3N3YXBfdyhib29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdp c3RlciByczIpOworKyAgdm9pZCBhbW9hZGRfdyhib29sIGFxLCBib29sIHJsLCBSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9pZCBhbW94b3Jfdyhib29sIGFx LCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAg dm9pZCBhbW9hbmRfdyhib29sIGFxLCBib29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMx LCBSZWdpc3RlciByczIpOworKyAgdm9pZCBhbW9vcl93KGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lz dGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFtb21pbl93KGJv b2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7 CisrICB2b2lkIGFtb21heF93KGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFtb21pbnVfdyhib29sIGFxLCBib29sIHJs LCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKyAgdm9pZCBhbW9t YXh1X3coYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0 ZXIgcnMyKTsKKysKKysgIC8vIFJWNjRBIFN0YW5kYXJkIEV4dGVuc2lvbiAoaW4gYWRkaXRpb24g dG8gUlYzMkEpCisrICB2b2lkIGxyX2QoYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJl Z2lzdGVyIHJzMSk7CisrICB2b2lkIHNjX2QoYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQs IFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgYW1vc3dhcF9kKGJvb2wgYXEs IGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2 b2lkIGFtb2FkZF9kKGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEs IFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFtb3hvcl9kKGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lz dGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFtb2FuZF9kKGJv b2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7 CisrICB2b2lkIGFtb29yX2QoYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVy IHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgYW1vbWluX2QoYm9vbCBhcSwgYm9vbCBybCwg UmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgYW1vbWF4 X2QoYm9vbCBhcSwgYm9vbCBybCwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIg cnMyKTsKKysgIHZvaWQgYW1vbWludV9kKGJvb2wgYXEsIGJvb2wgcmwsIFJlZ2lzdGVyIHJkLCBS ZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIGFtb21heHVfZChib29sIGFxLCBi b29sIHJsLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIpOworKworKyAg Ly8gUlYzMkYgU3RhbmRhcmQgRXh0ZW5zaW9uCisrICB2b2lkIGZsdyhGUFVSZWdpc3RlciByZCwg UmVnaXN0ZXIgcnMxLCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgZnN3KEZQVVJlZ2lzdGVyIHNv dXJjZSwgUmVnaXN0ZXIgYmFzZSwgaW50MTZfdCBpbW0xMik7CisrICB2b2lkIGZtYWRkX3MoRlBV UmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAg ICAgICAgIEZQVVJlZ2lzdGVyIHJzMywgUm91bmRpbmdNb2RlIGZybSA9IFJORSk7CisrICB2b2lk IGZtc3ViX3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMy LAorKyAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJzMywgUm91bmRpbmdNb2RlIGZybSA9IFJO RSk7CisrICB2b2lkIGZubXN1Yl9zKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQ VVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgcnMzLCBSb3VuZGlu Z01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZm5tYWRkX3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJl Z2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAgICAgICAgICBGUFVSZWdpc3Rl ciByczMsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOworKyAgdm9pZCBmYWRkX3MoRlBVUmVnaXN0 ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAgICAgICAg Um91bmRpbmdNb2RlIGZybSA9IFJORSk7CisrICB2b2lkIGZzdWJfcyhGUFVSZWdpc3RlciByZCwg RlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICBSb3VuZGlu Z01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZm11bF9zKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdp c3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgIFJvdW5kaW5nTW9kZSBm cm0gPSBSTkUpOworKyAgdm9pZCBmZGl2X3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJz MSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAgICAgICAgICAgICAgUm91bmRpbmdNb2RlIGZybSA9IFJO RSk7CisrICB2b2lkIGZzcXJ0X3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgUm91 bmRpbmdNb2RlIGZybSA9IFJORSk7CisrICB2b2lkIGZzZ25qX3MoRlBVUmVnaXN0ZXIgcmQsIEZQ VVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgZnNnbmpuX3MoRlBVUmVn aXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgZnNn bmp4X3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsK KysgIHZvaWQgZm1pbl9zKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lz dGVyIHJzMik7CisrICB2b2lkIGZtYXhfcyhGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMx LCBGUFVSZWdpc3RlciByczIpOworKyAgdm9pZCBmY3Z0X3dfcyhSZWdpc3RlciByZCwgRlBVUmVn aXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZmN2dF93dV9zKFJl Z2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOworKyAg dm9pZCBmbXZfeF93KFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEpOworKyAgdm9pZCBmZXFf cyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIpOworKyAgdm9p ZCBmbHRfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIpOwor KyAgdm9pZCBmbGVfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciBy czIpOworKyAgdm9pZCBmY2xhc3NfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxKTsKKysg IHZvaWQgZmN2dF9zX3coRlBVUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2Rl IGZybSA9IFJORSk7CisrICB2b2lkIGZjdnRfc193dShGUFVSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLCBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZm12X3dfeChGUFVSZWdpc3Rl ciByZCwgUmVnaXN0ZXIgcnMxKTsKKysKKysgIC8vIFJWNjRGIFN0YW5kYXJkIEV4dGVuc2lvbiAo aW4gYWRkaXRpb24gdG8gUlYzMkYpCisrICB2b2lkIGZjdnRfbF9zKFJlZ2lzdGVyIHJkLCBGUFVS ZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOworKyAgdm9pZCBmY3Z0X2x1X3Mo UmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSA9IFJORSk7Cisr ICB2b2lkIGZjdnRfc19sKEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJvdW5kaW5nTW9k ZSBmcm0gPSBSTkUpOworKyAgdm9pZCBmY3Z0X3NfbHUoRlBVUmVnaXN0ZXIgcmQsIFJlZ2lzdGVy IHJzMSwgUm91bmRpbmdNb2RlIGZybSA9IFJORSk7CisrCisrICAvLyBSVjMyRCBTdGFuZGFyZCBF eHRlbnNpb24KKysgIHZvaWQgZmxkKEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIGludDE2 X3QgaW1tMTIpOworKyAgdm9pZCBmc2QoRlBVUmVnaXN0ZXIgc291cmNlLCBSZWdpc3RlciBiYXNl LCBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgZm1hZGRfZChGUFVSZWdpc3RlciByZCwgRlBVUmVn aXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIg cnMzLCBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZm1zdWJfZChGUFVSZWdpc3Rl ciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICAg RlBVUmVnaXN0ZXIgcnMzLCBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZm5tc3Vi X2QoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyLAorKyAg ICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczMsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOwor KyAgdm9pZCBmbm1hZGRfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdp c3RlciByczIsCisrICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHJzMywgUm91bmRpbmdNb2Rl IGZybSA9IFJORSk7CisrICB2b2lkIGZhZGRfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIg cnMxLCBGUFVSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICBSb3VuZGluZ01vZGUgZnJtID0g Uk5FKTsKKysgIHZvaWQgZnN1Yl9kKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQ VVJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOwor KyAgdm9pZCBmbXVsX2QoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0 ZXIgcnMyLAorKyAgICAgICAgICAgICAgUm91bmRpbmdNb2RlIGZybSA9IFJORSk7CisrICB2b2lk IGZkaXZfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIs CisrICAgICAgICAgICAgICBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZnNxcnRf ZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJtID0gUk5F KTsKKysgIHZvaWQgZnNnbmpfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVS ZWdpc3RlciByczIpOworKyAgdm9pZCBmc2duam5fZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0 ZXIgcnMxLCBGUFVSZWdpc3RlciByczIpOworKyAgdm9pZCBmc2duanhfZChGUFVSZWdpc3RlciBy ZCwgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIpOworKyAgdm9pZCBmbWluX2QoRlBV UmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQg Zm1heF9kKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMik7 CisrICB2b2lkIGZjdnRfc19kKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIFJvdW5k aW5nTW9kZSBmcm0gPSBSTkUpOworKyAgdm9pZCBmY3Z0X2RfcyhGUFVSZWdpc3RlciByZCwgRlBV UmVnaXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZmVxX2QoUmVn aXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgZmx0 X2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsKKysgIHZv aWQgZmxlX2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwgRlBVUmVnaXN0ZXIgcnMyKTsK KysgIHZvaWQgZmNsYXNzX2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSk7CisrICB2b2lk IGZjdnRfd19kKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0g PSBSTkUpOworKyAgdm9pZCBmY3Z0X3d1X2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzMSwg Um91bmRpbmdNb2RlIGZybSA9IFJORSk7CisrICB2b2lkIGZjdnRfZF93KEZQVVJlZ2lzdGVyIHJk LCBSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOworKyAgdm9pZCBmY3Z0X2Rf d3UoRlBVUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgUm91bmRpbmdNb2RlIGZybSA9IFJORSk7 CisrCisrICAvLyBSVjY0RCBTdGFuZGFyZCBFeHRlbnNpb24gKGluIGFkZGl0aW9uIHRvIFJWMzJE KQorKyAgdm9pZCBmY3Z0X2xfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMxLCBSb3VuZGlu Z01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZmN2dF9sdV9kKFJlZ2lzdGVyIHJkLCBGUFVSZWdp c3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUpOworKyAgdm9pZCBmbXZfeF9kKFJlZ2lz dGVyIHJkLCBGUFVSZWdpc3RlciByczEpOworKyAgdm9pZCBmY3Z0X2RfbChGUFVSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMxLCBSb3VuZGluZ01vZGUgZnJtID0gUk5FKTsKKysgIHZvaWQgZmN2dF9k X2x1KEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEsIFJvdW5kaW5nTW9kZSBmcm0gPSBSTkUp OworKyAgdm9pZCBmbXZfZF94KEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3RlciByczEpOworKworKyAg Ly8gUHJpdmlsZWdlZAorKyAgdm9pZCB1cmV0KCk7CisrICB2b2lkIHNyZXQoKTsKKysgIHZvaWQg bXJldCgpOworKyAgdm9pZCB3ZmkoKTsKKysgIHZvaWQgc2ZlbmNlX3ZtYShSZWdpc3RlciByczEs IFJlZ2lzdGVyIHJzMik7CisrCisrICAvLyBBc3NlbWJsZXIgUHNldWRvIEluc3RydWN0aW9ucyAo VGFibGVzIDI1LjIsIDI1LjMsIFJJU0MtViBVbnByaXZpbGVnZWQgSVNBKQorKyAgdm9pZCBub3Ao KTsKKysgIHZvaWQgUlZfbGkoUmVnaXN0ZXIgcmQsIGludDY0X3QgaW1tKTsKKysgIC8vIFJldHVy bnMgdGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbnMgcmVxdWlyZWQgdG8gbG9hZCB0aGUgaW1tZWRp YXRlCisrICBzdGF0aWMgaW50IGxpX2NvdW50KGludDY0X3QgaW1tKTsKKysgIC8vIExvYWRzIGFu IGltbWVkaWF0ZSwgYWx3YXlzIHVzaW5nIDggaW5zdHJ1Y3Rpb25zLCByZWdhcmRsZXNzIG9mIHRo ZSB2YWx1ZSwKKysgIC8vIHNvIHRoYXQgaXQgY2FuIGJlIG1vZGlmaWVkIGxhdGVyLgorKyAgdm9p ZCBsaV9jb25zdGFudChSZWdpc3RlciByZCwgaW50NjRfdCBpbW0pOworKworKyAgdm9pZCBtdihS ZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMpIHsgYWRkaShyZCwgcnMsIDApOyB9CisrICB2b2lkIG5v dF8oUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzKSB7IHhvcmkocmQsIHJzLCAtMSk7IH0KKysgIHZv aWQgbmVnKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycykgeyBzdWIocmQsIHplcm9fcmVnLCBycyk7 IH0KKysgIHZvaWQgbmVndyhSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMpIHsgc3VidyhyZCwgemVy b19yZWcsIHJzKTsgfQorKyAgdm9pZCBzZXh0X3coUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzKSB7 IGFkZGl3KHJkLCBycywgMCk7IH0KKysgIHZvaWQgc2VxeihSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMpIHsgc2x0aXUocmQsIHJzLCAxKTsgfQorKyAgdm9pZCBzbmV6KFJlZ2lzdGVyIHJkLCBSZWdp c3RlciBycykgeyBzbHR1KHJkLCB6ZXJvX3JlZywgcnMpOyB9CisrICB2b2lkIHNsdHooUmVnaXN0 ZXIgcmQsIFJlZ2lzdGVyIHJzKSB7IHNsdChyZCwgcnMsIHplcm9fcmVnKTsgfQorKyAgdm9pZCBz Z3R6KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycykgeyBzbHQocmQsIHplcm9fcmVnLCBycyk7IH0K KysKKysgIHZvaWQgZm12X3MoRlBVUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzKSB7IGZzZ25q X3MocmQsIHJzLCBycyk7IH0KKysgIHZvaWQgZmFic19zKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdp c3RlciBycykgeyBmc2duanhfcyhyZCwgcnMsIHJzKTsgfQorKyAgdm9pZCBmbmVnX3MoRlBVUmVn aXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIHJzKSB7IGZzZ25qbl9zKHJkLCBycywgcnMpOyB9CisrICB2 b2lkIGZtdl9kKEZQVVJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciBycykgeyBmc2dual9kKHJkLCBy cywgcnMpOyB9CisrICB2b2lkIGZhYnNfZChGUFVSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgcnMp IHsgZnNnbmp4X2QocmQsIHJzLCBycyk7IH0KKysgIHZvaWQgZm5lZ19kKEZQVVJlZ2lzdGVyIHJk LCBGUFVSZWdpc3RlciBycykgeyBmc2duam5fZChyZCwgcnMsIHJzKTsgfQorKworKyAgdm9pZCBi ZXF6KFJlZ2lzdGVyIHJzLCBpbnQxNl90IGltbTEzKSB7IGJlcShycywgemVyb19yZWcsIGltbTEz KTsgfQorKyAgaW5saW5lIHZvaWQgYmVxeihSZWdpc3RlciByczEsIExhYmVsKiBMKSB7IGJlcXoo cnMxLCBicmFuY2hfb2Zmc2V0KEwpKTsgfQorKyAgdm9pZCBibmV6KFJlZ2lzdGVyIHJzLCBpbnQx Nl90IGltbTEzKSB7IGJuZShycywgemVyb19yZWcsIGltbTEzKTsgfQorKyAgaW5saW5lIHZvaWQg Ym5leihSZWdpc3RlciByczEsIExhYmVsKiBMKSB7IGJuZXoocnMxLCBicmFuY2hfb2Zmc2V0KEwp KTsgfQorKyAgdm9pZCBibGV6KFJlZ2lzdGVyIHJzLCBpbnQxNl90IGltbTEzKSB7IGJnZSh6ZXJv X3JlZywgcnMsIGltbTEzKTsgfQorKyAgaW5saW5lIHZvaWQgYmxleihSZWdpc3RlciByczEsIExh YmVsKiBMKSB7IGJsZXoocnMxLCBicmFuY2hfb2Zmc2V0KEwpKTsgfQorKyAgdm9pZCBiZ2V6KFJl Z2lzdGVyIHJzLCBpbnQxNl90IGltbTEzKSB7IGJnZShycywgemVyb19yZWcsIGltbTEzKTsgfQor KyAgaW5saW5lIHZvaWQgYmdleihSZWdpc3RlciByczEsIExhYmVsKiBMKSB7IGJnZXoocnMxLCBi cmFuY2hfb2Zmc2V0KEwpKTsgfQorKyAgdm9pZCBibHR6KFJlZ2lzdGVyIHJzLCBpbnQxNl90IGlt bTEzKSB7IGJsdChycywgemVyb19yZWcsIGltbTEzKTsgfQorKyAgaW5saW5lIHZvaWQgYmx0eihS ZWdpc3RlciByczEsIExhYmVsKiBMKSB7IGJsdHoocnMxLCBicmFuY2hfb2Zmc2V0KEwpKTsgfQor KyAgdm9pZCBiZ3R6KFJlZ2lzdGVyIHJzLCBpbnQxNl90IGltbTEzKSB7IGJsdCh6ZXJvX3JlZywg cnMsIGltbTEzKTsgfQorKworKyAgaW5saW5lIHZvaWQgYmd0eihSZWdpc3RlciByczEsIExhYmVs KiBMKSB7IGJndHoocnMxLCBicmFuY2hfb2Zmc2V0KEwpKTsgfQorKyAgdm9pZCBiZ3QoUmVnaXN0 ZXIgcnMxLCBSZWdpc3RlciByczIsIGludDE2X3QgaW1tMTMpIHsgYmx0KHJzMiwgcnMxLCBpbW0x Myk7IH0KKysgIGlubGluZSB2b2lkIGJndChSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwgTGFi ZWwqIEwpIHsKKysgICAgYmd0KHJzMSwgcnMyLCBicmFuY2hfb2Zmc2V0KEwpKTsKKysgIH0KKysg IHZvaWQgYmxlKFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyLCBpbnQxNl90IGltbTEzKSB7IGJn ZShyczIsIHJzMSwgaW1tMTMpOyB9CisrICBpbmxpbmUgdm9pZCBibGUoUmVnaXN0ZXIgcnMxLCBS ZWdpc3RlciByczIsIExhYmVsKiBMKSB7CisrICAgIGJsZShyczEsIHJzMiwgYnJhbmNoX29mZnNl dChMKSk7CisrICB9CisrICB2b2lkIGJndHUoUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIGlu dDE2X3QgaW1tMTMpIHsKKysgICAgYmx0dShyczIsIHJzMSwgaW1tMTMpOworKyAgfQorKyAgaW5s aW5lIHZvaWQgYmd0dShSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwgTGFiZWwqIEwpIHsKKysg ICAgYmd0dShyczEsIHJzMiwgYnJhbmNoX29mZnNldChMKSk7CisrICB9CisrICB2b2lkIGJsZXUo UmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsIGludDE2X3QgaW1tMTMpIHsKKysgICAgYmdldShy czIsIHJzMSwgaW1tMTMpOworKyAgfQorKyAgaW5saW5lIHZvaWQgYmxldShSZWdpc3RlciByczEs IFJlZ2lzdGVyIHJzMiwgTGFiZWwqIEwpIHsKKysgICAgYmxldShyczEsIHJzMiwgYnJhbmNoX29m ZnNldChMKSk7CisrICB9CisrCisrICAvLyBUT0RPOiBSZXBsYWNlIHVzZXMgb2YgVG9SZWdpc3Rl ciB3aXRoIG5hbWVzIG9uY2UgdGhleSBhcmUgcHJvcGVybHkgZGVmaW5lZAorKyAgdm9pZCBqKGlu dDMyX3QgaW1tMjEpIHsgamFsKHplcm9fcmVnLCBpbW0yMSk7IH0KKysgIGlubGluZSB2b2lkIGoo TGFiZWwqIEwpIHsgaihqdW1wX29mZnNldChMKSk7IH0KKysgIHZvaWQgamFsKGludDMyX3QgaW1t MjEpIHsgamFsKFRvUmVnaXN0ZXIoMSksIGltbTIxKTsgfQorKyAgaW5saW5lIHZvaWQgamFsKExh YmVsKiBMKSB7IGphbChqdW1wX29mZnNldChMKSk7IH0KKysgIHZvaWQganIoUmVnaXN0ZXIgcnMp IHsgamFscih6ZXJvX3JlZywgcnMsIDApOyB9CisrICB2b2lkIGpyKFJlZ2lzdGVyIHJzLCBpbnQz Ml90IGltbTEyKSB7IGphbHIoemVyb19yZWcsIHJzLCBpbW0xMik7IH0KKysgIHZvaWQgamFscihS ZWdpc3RlciBycywgaW50MzJfdCBpbW0xMikgeyBqYWxyKFRvUmVnaXN0ZXIoMSksIHJzLCBpbW0x Mik7IH0KKysgIHZvaWQgamFscihSZWdpc3RlciBycykgeyBqYWxyKFRvUmVnaXN0ZXIoMSksIHJz LCAwKTsgfQorKyAgdm9pZCByZXQoKSB7IGphbHIoemVyb19yZWcsIFRvUmVnaXN0ZXIoMSksIDAp OyB9CisrICB2b2lkIGNhbGwoaW50MzJfdCBvZmZzZXQpIHsKKysgICAgYXVpcGMoVG9SZWdpc3Rl cigxKSwgKG9mZnNldCA+PiAxMikgKyAoKG9mZnNldCAmIDB4ODAwKSA+PiAxMSkpOworKyAgICBq YWxyKFRvUmVnaXN0ZXIoMSksIFRvUmVnaXN0ZXIoMSksIG9mZnNldCA8PCAyMCA+PiAyMCk7Cisr ICB9CisrCisrICAvLyBSZWFkIGluc3RydWN0aW9ucy1yZXRpcmVkIGNvdW50ZXIKKysgIHZvaWQg cmRpbnN0cmV0KFJlZ2lzdGVyIHJkKSB7IGNzcnJzKHJkLCBjc3JfaW5zdHJldCwgemVyb19yZWcp OyB9CisrICB2b2lkIHJkaW5zdHJldGgoUmVnaXN0ZXIgcmQpIHsgY3NycnMocmQsIGNzcl9pbnN0 cmV0aCwgemVyb19yZWcpOyB9CisrICB2b2lkIHJkY3ljbGUoUmVnaXN0ZXIgcmQpIHsgY3NycnMo cmQsIGNzcl9jeWNsZSwgemVyb19yZWcpOyB9CisrICB2b2lkIHJkY3ljbGVoKFJlZ2lzdGVyIHJk KSB7IGNzcnJzKHJkLCBjc3JfY3ljbGVoLCB6ZXJvX3JlZyk7IH0KKysgIHZvaWQgcmR0aW1lKFJl Z2lzdGVyIHJkKSB7IGNzcnJzKHJkLCBjc3JfdGltZSwgemVyb19yZWcpOyB9CisrICB2b2lkIHJk dGltZWgoUmVnaXN0ZXIgcmQpIHsgY3NycnMocmQsIGNzcl90aW1laCwgemVyb19yZWcpOyB9Cisr CisrICB2b2lkIGNzcnIoUmVnaXN0ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyKSB7IGNzcnJz KHJkLCBjc3IsIHplcm9fcmVnKTsgfQorKyAgdm9pZCBjc3J3KENvbnRyb2xTdGF0dXNSZWcgY3Ny LCBSZWdpc3RlciBycykgeyBjc3Jydyh6ZXJvX3JlZywgY3NyLCBycyk7IH0KKysgIHZvaWQgY3Ny cyhDb250cm9sU3RhdHVzUmVnIGNzciwgUmVnaXN0ZXIgcnMpIHsgY3NycnMoemVyb19yZWcsIGNz ciwgcnMpOyB9CisrICB2b2lkIGNzcmMoQ29udHJvbFN0YXR1c1JlZyBjc3IsIFJlZ2lzdGVyIHJz KSB7IGNzcnJjKHplcm9fcmVnLCBjc3IsIHJzKTsgfQorKworKyAgdm9pZCBjc3J3aShDb250cm9s U3RhdHVzUmVnIGNzciwgdWludDhfdCBpbW0pIHsgY3NycndpKHplcm9fcmVnLCBjc3IsIGltbSk7 IH0KKysgIHZvaWQgY3Nyc2koQ29udHJvbFN0YXR1c1JlZyBjc3IsIHVpbnQ4X3QgaW1tKSB7IGNz cnJzaSh6ZXJvX3JlZywgY3NyLCBpbW0pOyB9CisrICB2b2lkIGNzcmNpKENvbnRyb2xTdGF0dXNS ZWcgY3NyLCB1aW50OF90IGltbSkgeyBjc3JyY2koemVyb19yZWcsIGNzciwgaW1tKTsgfQorKwor KyAgdm9pZCBmcmNzcihSZWdpc3RlciByZCkgeyBjc3JycyhyZCwgY3NyX2Zjc3IsIHplcm9fcmVn KTsgfQorKyAgdm9pZCBmc2NzcihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMpIHsgY3NycncocmQs IGNzcl9mY3NyLCBycyk7IH0KKysgIHZvaWQgZnNjc3IoUmVnaXN0ZXIgcnMpIHsgY3NycncoemVy b19yZWcsIGNzcl9mY3NyLCBycyk7IH0KKysKKysgIHZvaWQgZnJybShSZWdpc3RlciByZCkgeyBj c3JycyhyZCwgY3NyX2ZybSwgemVyb19yZWcpOyB9CisrICB2b2lkIGZzcm0oUmVnaXN0ZXIgcmQs IFJlZ2lzdGVyIHJzKSB7IGNzcnJ3KHJkLCBjc3JfZnJtLCBycyk7IH0KKysgIHZvaWQgZnNybShS ZWdpc3RlciBycykgeyBjc3Jydyh6ZXJvX3JlZywgY3NyX2ZybSwgcnMpOyB9CisrCisrICB2b2lk IGZyZmxhZ3MoUmVnaXN0ZXIgcmQpIHsgY3NycnMocmQsIGNzcl9mZmxhZ3MsIHplcm9fcmVnKTsg fQorKyAgdm9pZCBmc2ZsYWdzKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycykgeyBjc3JydyhyZCwg Y3NyX2ZmbGFncywgcnMpOyB9CisrICB2b2lkIGZzZmxhZ3MoUmVnaXN0ZXIgcnMpIHsgY3Nycnco emVyb19yZWcsIGNzcl9mZmxhZ3MsIHJzKTsgfQorKworKyAgLy8gT3RoZXIgcHNldWRvIGluc3Ry dWN0aW9ucyB0aGF0IGFyZSBub3QgcGFydCBvZiBSSVNDViBwc2V1ZG8gYXNzZW1seQorKyAgdm9p ZCBub3IoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBSZWdpc3RlciBydCkgeworKyAgICBvcl8o cmQsIHJzLCBydCk7CisrICAgIG5vdF8ocmQsIHJkKTsKKysgIH0KKysKKysgIHZvaWQgc3luYygp IHsgZmVuY2UoMGIxMTExLCAwYjExMTEpOyB9CisrICB2b2lkIGJyZWFrXyh1aW50MzJfdCBjb2Rl LCBib29sIGJyZWFrX2FzX3N0b3AgPSBmYWxzZSk7CisrICB2b2lkIHN0b3AodWludDMyX3QgY29k ZSA9IGtNYXhTdG9wQ29kZSk7CisrCisrICAvLyBDaGVjayB0aGUgY29kZSBzaXplIGdlbmVyYXRl ZCBmcm9tIGxhYmVsIHRvIGhlcmUuCisrICBpbnQgU2l6ZU9mQ29kZUdlbmVyYXRlZFNpbmNlKExh YmVsKiBsYWJlbCkgeworKyAgICByZXR1cm4gcGNfb2Zmc2V0KCkgLSBsYWJlbC0+cG9zKCk7Cisr ICB9CisrCisrICAvLyBDaGVjayB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9ucyBnZW5lcmF0ZWQg ZnJvbSBsYWJlbCB0byBoZXJlLgorKyAgaW50IEluc3RydWN0aW9uc0dlbmVyYXRlZFNpbmNlKExh YmVsKiBsYWJlbCkgeworKyAgICByZXR1cm4gU2l6ZU9mQ29kZUdlbmVyYXRlZFNpbmNlKGxhYmVs KSAvIGtJbnN0clNpemU7CisrICB9CisrCisrICAvLyBDbGFzcyBmb3Igc2NvcGluZyBwb3N0cG9u aW5nIHRoZSB0cmFtcG9saW5lIHBvb2wgZ2VuZXJhdGlvbi4KKysgIGNsYXNzIEJsb2NrVHJhbXBv bGluZVBvb2xTY29wZSB7CisrICAgcHVibGljOgorKyAgICBleHBsaWNpdCBCbG9ja1RyYW1wb2xp bmVQb29sU2NvcGUoQXNzZW1ibGVyKiBhc3NlbSkgOiBhc3NlbV8oYXNzZW0pIHsKKysgICAgICBh c3NlbV8tPlN0YXJ0QmxvY2tUcmFtcG9saW5lUG9vbCgpOworKyAgICB9CisrICAgIH5CbG9ja1Ry YW1wb2xpbmVQb29sU2NvcGUoKSB7IGFzc2VtXy0+RW5kQmxvY2tUcmFtcG9saW5lUG9vbCgpOyB9 CisrCisrICAgcHJpdmF0ZToKKysgICAgQXNzZW1ibGVyKiBhc3NlbV87CisrCisrICAgIERJU0FM TE9XX0lNUExJQ0lUX0NPTlNUUlVDVE9SUyhCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUpOworKyAg fTsKKysKKysgIC8vIENsYXNzIGZvciBwb3N0cG9uaW5nIHRoZSBhc3NlbWJseSBidWZmZXIgZ3Jv d3RoLiBUeXBpY2FsbHkgdXNlZCBmb3IKKysgIC8vIHNlcXVlbmNlcyBvZiBpbnN0cnVjdGlvbnMg dGhhdCBtdXN0IGJlIGVtaXR0ZWQgYXMgYSB1bml0LCBiZWZvcmUKKysgIC8vIGJ1ZmZlciBncm93 dGggKGFuZCByZWxvY2F0aW9uKSBjYW4gb2NjdXIuCisrICAvLyBUaGlzIGJsb2NraW5nIHNjb3Bl IGlzIG5vdCBuZXN0YWJsZS4KKysgIGNsYXNzIEJsb2NrR3Jvd0J1ZmZlclNjb3BlIHsKKysgICBw dWJsaWM6CisrICAgIGV4cGxpY2l0IEJsb2NrR3Jvd0J1ZmZlclNjb3BlKEFzc2VtYmxlciogYXNz ZW0pIDogYXNzZW1fKGFzc2VtKSB7CisrICAgICAgYXNzZW1fLT5TdGFydEJsb2NrR3Jvd0J1ZmZl cigpOworKyAgICB9CisrICAgIH5CbG9ja0dyb3dCdWZmZXJTY29wZSgpIHsgYXNzZW1fLT5FbmRC bG9ja0dyb3dCdWZmZXIoKTsgfQorKworKyAgIHByaXZhdGU6CisrICAgIEFzc2VtYmxlciogYXNz ZW1fOworKworKyAgICBESVNBTExPV19JTVBMSUNJVF9DT05TVFJVQ1RPUlMoQmxvY2tHcm93QnVm ZmVyU2NvcGUpOworKyAgfTsKKysKKysgIC8vIFJlY29yZCBhIGRlb3B0aW1pemF0aW9uIHJlYXNv biB0aGF0IGNhbiBiZSB1c2VkIGJ5IGEgbG9nIG9yIGNwdSBwcm9maWxlci4KKysgIC8vIFVzZSAt LXRyYWNlLWRlb3B0IHRvIGVuYWJsZS4KKysgIHZvaWQgUmVjb3JkRGVvcHRSZWFzb24oRGVvcHRp bWl6ZVJlYXNvbiByZWFzb24sIFNvdXJjZVBvc2l0aW9uIHBvc2l0aW9uLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgaWQpOworKworKyAgc3RhdGljIGludCBSZWxvY2F0ZUludGVybmFs UmVmZXJlbmNlKFJlbG9jSW5mbzo6TW9kZSBybW9kZSwgQWRkcmVzcyBwYywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRwdHJfdCBwY19kZWx0YSk7CisrCisrICAv LyBXcml0ZXMgYSBzaW5nbGUgYnl0ZSBvciB3b3JkIG9mIGRhdGEgaW4gdGhlIGNvZGUgc3RyZWFt LiAgVXNlZCBmb3IKKysgIC8vIGlubGluZSB0YWJsZXMsIGUuZy4sIGp1bXAtdGFibGVzLgorKyAg dm9pZCBkYih1aW50OF90IGRhdGEpOworKyAgdm9pZCBkZCh1aW50MzJfdCBkYXRhKTsKKysgIHZv aWQgZHEodWludDY0X3QgZGF0YSk7CisrICB2b2lkIGRwKHVpbnRwdHJfdCBkYXRhKSB7IGRxKGRh dGEpOyB9CisrICB2b2lkIGRkKExhYmVsKiBsYWJlbCk7CisrCisrICAvLyBQb3N0cG9uZSB0aGUg Z2VuZXJhdGlvbiBvZiB0aGUgdHJhbXBvbGluZSBwb29sIGZvciB0aGUgc3BlY2lmaWVkIG51bWJl ciBvZgorKyAgLy8gaW5zdHJ1Y3Rpb25zLgorKyAgdm9pZCBCbG9ja1RyYW1wb2xpbmVQb29sRm9y KGludCBpbnN0cnVjdGlvbnMpOworKworKyAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgbGVzcyB0aGFu IGtHYXAgYnl0ZXMgYXZhaWxhYmxlIGluIHRoZSBidWZmZXIuCisrICAvLyBJZiB0aGlzIGlzIHRo ZSBjYXNlLCB3ZSBuZWVkIHRvIGdyb3cgdGhlIGJ1ZmZlciBiZWZvcmUgZW1pdHRpbmcKKysgIC8v IGFuIGluc3RydWN0aW9uIG9yIHJlbG9jYXRpb24gaW5mb3JtYXRpb24uCisrICBpbmxpbmUgYm9v bCBvdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIHBjXyA+PSByZWxvY19pbmZvX3dyaXRlci5wb3Mo KSAtIGtHYXA7IH0KKysKKysgIC8vIEdldCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSBp biB0aGUgYnVmZmVyLgorKyAgaW5saW5lIGludHB0cl90IGF2YWlsYWJsZV9zcGFjZSgpIGNvbnN0 IHsKKysgICAgcmV0dXJuIHJlbG9jX2luZm9fd3JpdGVyLnBvcygpIC0gcGNfOworKyAgfQorKwor KyAgLy8gUmVhZC9wYXRjaCBpbnN0cnVjdGlvbnMuCisrICBzdGF0aWMgSW5zdHIgaW5zdHJfYXQo QWRkcmVzcyBwYykgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIqPihwYyk7IH0KKysg IHN0YXRpYyB2b2lkIGluc3RyX2F0X3B1dChBZGRyZXNzIHBjLCBJbnN0ciBpbnN0cikgeworKyAg ICAqcmVpbnRlcnByZXRfY2FzdDxJbnN0cio+KHBjKSA9IGluc3RyOworKyAgfQorKyAgSW5zdHIg aW5zdHJfYXQoaW50IHBvcykgeworKyAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHIq PihidWZmZXJfc3RhcnRfICsgcG9zKTsKKysgIH0KKysgIHZvaWQgaW5zdHJfYXRfcHV0KGludCBw b3MsIEluc3RyIGluc3RyKSB7CisrICAgICpyZWludGVycHJldF9jYXN0PEluc3RyKj4oYnVmZmVy X3N0YXJ0XyArIHBvcykgPSBpbnN0cjsKKysgIH0KKysKKysgIC8vIENoZWNrIGlmIGFuIGluc3Ry dWN0aW9uIGlzIGEgYnJhbmNoIG9mIHNvbWUga2luZC4KKysgIHN0YXRpYyBib29sIElzQnJhbmNo KEluc3RyIGluc3RyKTsKKysgIHN0YXRpYyBib29sIElzSnVtcChJbnN0ciBpbnN0cik7CisrICBz dGF0aWMgYm9vbCBJc0phbChJbnN0ciBpbnN0cik7CisrICBzdGF0aWMgYm9vbCBJc0phbHIoSW5z dHIgaW5zdHIpOworKyAgc3RhdGljIGJvb2wgSXNMdWkoSW5zdHIgaW5zdHIpOworKyAgc3RhdGlj IGJvb2wgSXNBdWlwYyhJbnN0ciBpbnN0cik7CisrICBzdGF0aWMgYm9vbCBJc0FkZGl3KEluc3Ry IGluc3RyKTsKKysgIHN0YXRpYyBib29sIElzQWRkaShJbnN0ciBpbnN0cik7CisrICBzdGF0aWMg Ym9vbCBJc1NsbGkoSW5zdHIgaW5zdHIpOworKworKyAgdm9pZCBDaGVja1RyYW1wb2xpbmVQb29s KCk7CisrCisrICBpbmxpbmUgaW50IFVuYm91bmRMYWJlbHNDb3VudCgpIHsgcmV0dXJuIHVuYm91 bmRfbGFiZWxzX2NvdW50XzsgfQorKworKyBwcm90ZWN0ZWQ6CisrICAvLyBSZWFkYWJsZSBjb25z dGFudHMgZm9yIGJhc2UgYW5kIG9mZnNldCBhZGp1c3RtZW50IGhlbHBlciwgdGhlc2UgaW5kaWNh dGUgaWYKKysgIC8vIGFzaWRlIGZyb20gb2Zmc2V0LCBhbm90aGVyIHZhbHVlIGxpa2Ugb2Zmc2V0 ICsgNCBzaG91bGQgZml0IGludG8gaW50MTYuCisrICBlbnVtIGNsYXNzIE9mZnNldEFjY2Vzc1R5 cGUgOiBib29sIHsKKysgICAgU0lOR0xFX0FDQ0VTUyA9IGZhbHNlLAorKyAgICBUV09fQUNDRVNT RVMgPSB0cnVlCisrICB9OworKworKyAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgbmVlZCB0byBhZGp1 c3QgYmFzZSBhbmQgb2Zmc2V0IG9mIG1lbXJveSBsb2FkL3N0b3JlCisrICBib29sIE5lZWRBZGp1 c3RCYXNlQW5kT2Zmc2V0KAorKyAgICAgIGNvbnN0IE1lbU9wZXJhbmQmIHNyYywgT2Zmc2V0QWNj ZXNzVHlwZSA9IE9mZnNldEFjY2Vzc1R5cGU6OlNJTkdMRV9BQ0NFU1MsCisrICAgICAgaW50IHNl Y29uZF9BY2Nlc3NfYWRkX3RvX29mZnNldCA9IDQpOworKworKyAgLy8gSGVscGVyIGZ1bmN0aW9u IGZvciBtZW1vcnkgbG9hZC9zdG9yZSB1c2luZyBiYXNlIHJlZ2lzdGVyIGFuZCBvZmZzZXQuCisr ICB2b2lkIEFkanVzdEJhc2VBbmRPZmZzZXQoCisrICAgICAgTWVtT3BlcmFuZCogc3JjLCBSZWdp c3RlciBzY3JhdGNoLAorKyAgICAgIE9mZnNldEFjY2Vzc1R5cGUgYWNjZXNzX3R5cGUgPSBPZmZz ZXRBY2Nlc3NUeXBlOjpTSU5HTEVfQUNDRVNTLAorKyAgICAgIGludCBzZWNvbmRfYWNjZXNzX2Fk ZF90b19vZmZzZXQgPSA0KTsKKysKKysgIGlubGluZSBzdGF0aWMgdm9pZCBzZXRfdGFyZ2V0X2lu dGVybmFsX3JlZmVyZW5jZV9lbmNvZGVkX2F0KEFkZHJlc3MgcGMsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzIHRh cmdldCk7CisrCisrICBpbnQ2NF90IGJ1ZmZlcl9zcGFjZSgpIGNvbnN0IHsgcmV0dXJuIHJlbG9j X2luZm9fd3JpdGVyLnBvcygpIC0gcGNfOyB9CisrCisrICAvLyBEZWNvZGUgYnJhbmNoIGluc3Ry dWN0aW9uIGF0IHBvcyBhbmQgcmV0dXJuIGJyYW5jaCB0YXJnZXQgcG9zLgorKyAgaW50IHRhcmdl dF9hdChpbnQgcG9zLCBib29sIGlzX2ludGVybmFsKTsKKysKKysgIC8vIFBhdGNoIGJyYW5jaCBp bnN0cnVjdGlvbiBhdCBwb3MgdG8gYnJhbmNoIHRvIGdpdmVuIGJyYW5jaCB0YXJnZXQgcG9zLgor KyAgdm9pZCB0YXJnZXRfYXRfcHV0KGludCBwb3MsIGludCB0YXJnZXRfcG9zLCBib29sIGlzX2lu dGVybmFsKTsKKysKKysgIC8vIFNheSBpZiB3ZSBuZWVkIHRvIHJlbG9jYXRlIHdpdGggdGhpcyBt b2RlLgorKyAgYm9vbCBNdXN0VXNlUmVnKFJlbG9jSW5mbzo6TW9kZSBybW9kZSk7CisrCisrICAv LyBSZWNvcmQgcmVsb2MgaW5mbyBmb3IgY3VycmVudCBwY18uCisrICB2b2lkIFJlY29yZFJlbG9j SW5mbyhSZWxvY0luZm86Ok1vZGUgcm1vZGUsIGludHB0cl90IGRhdGEgPSAwKTsKKysKKysgIC8v IEJsb2NrIHRoZSBlbWlzc2lvbiBvZiB0aGUgdHJhbXBvbGluZSBwb29sIGJlZm9yZSBwY19vZmZz ZXQuCisrICB2b2lkIEJsb2NrVHJhbXBvbGluZVBvb2xCZWZvcmUoaW50IHBjX29mZnNldCkgewor KyAgICBpZiAobm9fdHJhbXBvbGluZV9wb29sX2JlZm9yZV8gPCBwY19vZmZzZXQpCisrICAgICAg bm9fdHJhbXBvbGluZV9wb29sX2JlZm9yZV8gPSBwY19vZmZzZXQ7CisrICB9CisrCisrICB2b2lk IFN0YXJ0QmxvY2tUcmFtcG9saW5lUG9vbCgpIHsgdHJhbXBvbGluZV9wb29sX2Jsb2NrZWRfbmVz dGluZ18rKzsgfQorKworKyAgdm9pZCBFbmRCbG9ja1RyYW1wb2xpbmVQb29sKCkgeworKyAgICB0 cmFtcG9saW5lX3Bvb2xfYmxvY2tlZF9uZXN0aW5nXy0tOworKyAgICBpZiAodHJhbXBvbGluZV9w b29sX2Jsb2NrZWRfbmVzdGluZ18gPT0gMCkgeworKyAgICAgIENoZWNrVHJhbXBvbGluZVBvb2xR dWljaygxKTsKKysgICAgfQorKyAgfQorKworKyAgYm9vbCBpc190cmFtcG9saW5lX3Bvb2xfYmxv Y2tlZCgpIGNvbnN0IHsKKysgICAgcmV0dXJuIHRyYW1wb2xpbmVfcG9vbF9ibG9ja2VkX25lc3Rp bmdfID4gMDsKKysgIH0KKysKKysgIGJvb2wgaGFzX2V4Y2VwdGlvbigpIGNvbnN0IHsgcmV0dXJu IGludGVybmFsX3RyYW1wb2xpbmVfZXhjZXB0aW9uXzsgfQorKworKyAgYm9vbCBpc190cmFtcG9s aW5lX2VtaXR0ZWQoKSBjb25zdCB7IHJldHVybiB0cmFtcG9saW5lX2VtaXR0ZWRfOyB9CisrCisr ICAvLyBUZW1wb3JhcmlseSBibG9jayBhdXRvbWF0aWMgYXNzZW1ibHkgYnVmZmVyIGdyb3d0aC4K KysgIHZvaWQgU3RhcnRCbG9ja0dyb3dCdWZmZXIoKSB7CisrICAgIERDSEVDSyghYmxvY2tfYnVm ZmVyX2dyb3d0aF8pOworKyAgICBibG9ja19idWZmZXJfZ3Jvd3RoXyA9IHRydWU7CisrICB9Cisr CisrICB2b2lkIEVuZEJsb2NrR3Jvd0J1ZmZlcigpIHsKKysgICAgRENIRUNLKGJsb2NrX2J1ZmZl cl9ncm93dGhfKTsKKysgICAgYmxvY2tfYnVmZmVyX2dyb3d0aF8gPSBmYWxzZTsKKysgIH0KKysK KysgIGJvb2wgaXNfYnVmZmVyX2dyb3d0aF9ibG9ja2VkKCkgY29uc3QgeyByZXR1cm4gYmxvY2tf YnVmZmVyX2dyb3d0aF87IH0KKysKKysgIHZvaWQgQ2hlY2tUcmFtcG9saW5lUG9vbFF1aWNrKGlu dCBleHRyYV9pbnN0cnVjdGlvbnMgPSAwKSB7CisrICAgIGlmIChwY19vZmZzZXQoKSA+PSBuZXh0 X2J1ZmZlcl9jaGVja18gLSBleHRyYV9pbnN0cnVjdGlvbnMgKiBrSW5zdHJTaXplKSB7CisrICAg ICAgQ2hlY2tUcmFtcG9saW5lUG9vbCgpOworKyAgICB9CisrICB9CisrCisrIHByaXZhdGU6Cisr ICAvLyBBdm9pZCBvdmVyZmxvd3MgZm9yIGRpc3BsYWNlbWVudHMgZXRjLgorKyAgc3RhdGljIGNv bnN0IGludCBrTWF4aW1hbEJ1ZmZlclNpemUgPSA1MTIgKiBNQjsKKysKKysgIC8vIEJ1ZmZlciBz aXplIGFuZCBjb25zdGFudCBwb29sIGRpc3RhbmNlIGFyZSBjaGVja2VkIHRvZ2V0aGVyIGF0IHJl Z3VsYXIKKysgIC8vIGludGVydmFscyBvZiBrQnVmZmVyQ2hlY2tJbnRlcnZhbCBlbWl0dGVkIGJ5 dGVzLgorKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0J1ZmZlckNoZWNrSW50ZXJ2YWwgPSAxICog S0IgLyAyOworKworKyAgLy8gQ29kZSBnZW5lcmF0aW9uLgorKyAgLy8gVGhlIHJlbG9jYXRpb24g d3JpdGVyJ3MgcG9zaXRpb24gaXMgYXQgbGVhc3Qga0dhcCBieXRlcyBiZWxvdyB0aGUgZW5kIG9m CisrICAvLyB0aGUgZ2VuZXJhdGVkIGluc3RydWN0aW9ucy4gVGhpcyBpcyBzbyB0aGF0IG11bHRp LWluc3RydWN0aW9uIHNlcXVlbmNlcyBkbworKyAgLy8gbm90IGhhdmUgdG8gY2hlY2sgZm9yIG92 ZXJmbG93LiBUaGUgc2FtZSBpcyB0cnVlIGZvciB3cml0ZXMgb2YgbGFyZ2UKKysgIC8vIHJlbG9j YXRpb24gaW5mbyBlbnRyaWVzLgorKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0dhcCA9IDY0Owor KyAgU1RBVElDX0FTU0VSVChBc3NlbWJsZXJCYXNlOjprTWluaW1hbEJ1ZmZlclNpemUgPj0gMiAq IGtHYXApOworKworKyAgLy8gUmVwZWF0ZWQgY2hlY2tpbmcgd2hldGhlciB0aGUgdHJhbXBvbGlu ZSBwb29sIHNob3VsZCBiZSBlbWl0dGVkIGlzIHJhdGhlcgorKyAgLy8gZXhwZW5zaXZlLiBCeSBk ZWZhdWx0IHdlIG9ubHkgY2hlY2sgYWdhaW4gb25jZSBhIG51bWJlciBvZiBpbnN0cnVjdGlvbnMK KysgIC8vIGhhcyBiZWVuIGdlbmVyYXRlZC4KKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtDaGVj a0NvbnN0SW50ZXJ2YWxJbnN0ID0gMzI7CisrICBzdGF0aWMgY29uc3RleHByIGludCBrQ2hlY2tD b25zdEludGVydmFsID0KKysgICAgICBrQ2hlY2tDb25zdEludGVydmFsSW5zdCAqIGtJbnN0clNp emU7CisrCisrICBpbnQgbmV4dF9idWZmZXJfY2hlY2tfOyAgLy8gcGMgb2Zmc2V0IG9mIG5leHQg YnVmZmVyIGNoZWNrLgorKworKyAgLy8gRW1pc3Npb24gb2YgdGhlIHRyYW1wb2xpbmUgcG9vbCBt YXkgYmUgYmxvY2tlZCBpbiBzb21lIGNvZGUgc2VxdWVuY2VzLgorKyAgaW50IHRyYW1wb2xpbmVf cG9vbF9ibG9ja2VkX25lc3RpbmdfOyAgLy8gQmxvY2sgZW1pc3Npb24gaWYgdGhpcyBpcyBub3Qg emVyby4KKysgIGludCBub190cmFtcG9saW5lX3Bvb2xfYmVmb3JlXzsgIC8vIEJsb2NrIGVtaXNz aW9uIGJlZm9yZSB0aGlzIHBjIG9mZnNldC4KKysKKysgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIGxh c3QgZW1pdHRlZCBwb29sIHRvIGd1YXJhbnRlZSBhIG1heGltYWwgZGlzdGFuY2UuCisrICBpbnQg bGFzdF90cmFtcG9saW5lX3Bvb2xfZW5kXzsgIC8vIHBjIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRo ZSBsYXN0IHBvb2wuCisrCisrICAvLyBBdXRvbWF0aWMgZ3Jvd3RoIG9mIHRoZSBhc3NlbWJseSBi dWZmZXIgbWF5IGJlIGJsb2NrZWQgZm9yIHNvbWUgc2VxdWVuY2VzLgorKyAgYm9vbCBibG9ja19i dWZmZXJfZ3Jvd3RoXzsgIC8vIEJsb2NrIGdyb3d0aCB3aGVuIHRydWUuCisrCisrICAvLyBSZWxv Y2F0aW9uIGluZm9ybWF0aW9uIGdlbmVyYXRpb24uCisrICAvLyBFYWNoIHJlbG9jYXRpb24gaXMg ZW5jb2RlZCBhcyBhIHZhcmlhYmxlIHNpemUgdmFsdWUuCisrICBzdGF0aWMgY29uc3RleHByIGlu dCBrTWF4UmVsb2NTaXplID0gUmVsb2NJbmZvV3JpdGVyOjprTWF4U2l6ZTsKKysgIFJlbG9jSW5m b1dyaXRlciByZWxvY19pbmZvX3dyaXRlcjsKKysKKysgIC8vIFRoZSBib3VuZCBwb3NpdGlvbiwg YmVmb3JlIHRoaXMgd2UgY2Fubm90IGRvIGluc3RydWN0aW9uIGVsaW1pbmF0aW9uLgorKyAgaW50 IGxhc3RfYm91bmRfcG9zXzsKKysKKysgIC8vIENvZGUgZW1pc3Npb24uCisrICBpbmxpbmUgdm9p ZCBDaGVja0J1ZmZlcigpOworKyAgdm9pZCBHcm93QnVmZmVyKCk7CisrICBpbmxpbmUgdm9pZCBl bWl0KEluc3RyIHgpOworKyAgaW5saW5lIHZvaWQgZW1pdCh1aW50NjRfdCB4KTsKKysgIHRlbXBs YXRlIDx0eXBlbmFtZSBUPgorKyAgaW5saW5lIHZvaWQgRW1pdEhlbHBlcihUIHgpOworKworKyAg c3RhdGljIHZvaWQgZGlzYXNzZW1ibGVJbnN0cihJbnN0ciBpbnN0cik7CisrCisrICAvLyBJbnN0 cnVjdGlvbiBnZW5lcmF0aW9uLgorKworKyAgLy8gLS0tLS0gVG9wLWxldmVsIGluc3RydWN0aW9u IGZvcm1hdHMgbWF0Y2ggdGhvc2UgaW4gdGhlIElTQSBtYW51YWwKKysgIC8vIChSLCBJLCBTLCBC LCBVLCBKKS4gVGhlc2UgbWF0Y2ggdGhlIGZvcm1hdHMgZGVmaW5lZCBpbiBMTFZNJ3MKKysgIC8v IFJJU0NWSW5zdHJGb3JtYXRzLnRkLgorKyAgdm9pZCBHZW5JbnN0clIodWludDhfdCBmdW5jdDcs IHVpbnQ4X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByZCwKKysgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgR2VuSW5zdHJSKHVp bnQ4X3QgZnVuY3Q3LCB1aW50OF90IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwgRlBVUmVnaXN0ZXIg cmQsCisrICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMik7 CisrICB2b2lkIEdlbkluc3RyUih1aW50OF90IGZ1bmN0NywgdWludDhfdCBmdW5jdDMsIE9wY29k ZSBvcGNvZGUsIFJlZ2lzdGVyIHJkLAorKyAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgcnMx LCBSZWdpc3RlciByczIpOworKyAgdm9pZCBHZW5JbnN0clIodWludDhfdCBmdW5jdDcsIHVpbnQ4 X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLCBGUFVSZWdpc3RlciByZCwKKysgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgR2VuSW5zdHJSKHVpbnQ4 X3QgZnVuY3Q3LCB1aW50OF90IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwgRlBVUmVnaXN0ZXIgcmQs CisrICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2 b2lkIEdlbkluc3RyUih1aW50OF90IGZ1bmN0NywgdWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNv ZGUsIFJlZ2lzdGVyIHJkLAorKyAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgcnMxLCBGUFVS ZWdpc3RlciByczIpOworKyAgdm9pZCBHZW5JbnN0clI0KHVpbnQ4X3QgZnVuY3QyLCBPcGNvZGUg b3Bjb2RlLCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgIFJl Z2lzdGVyIHJzMiwgUmVnaXN0ZXIgcnMzLCBSb3VuZGluZ01vZGUgZnJtKTsKKysgIHZvaWQgR2Vu SW5zdHJSNCh1aW50OF90IGZ1bmN0MiwgT3Bjb2RlIG9wY29kZSwgRlBVUmVnaXN0ZXIgcmQsCisr ICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgcnMxLCBGUFVSZWdpc3RlciByczIsIEZQVVJl Z2lzdGVyIHJzMywKKysgICAgICAgICAgICAgICAgICBSb3VuZGluZ01vZGUgZnJtKTsKKysgIHZv aWQgR2VuSW5zdHJSQXRvbWljKHVpbnQ4X3QgZnVuY3Q1LCBib29sIGFxLCBib29sIHJsLCB1aW50 OF90IGZ1bmN0MywKKysgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIEdlbkluc3RyUkZybSh1aW50OF90IGZ1bmN0 NywgT3Bjb2RlIG9wY29kZSwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHJzMiwgUm91bmRpbmdNb2RlIGZybSk7CisrICB2b2lkIEdlbklu c3RySSh1aW50OF90IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVy IHJzMSwKKysgICAgICAgICAgICAgICAgIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBHZW5JbnN0 ckkodWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNvZGUsIEZQVVJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciByczEsCisrICAgICAgICAgICAgICAgICBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgR2VuSW5z dHJJU2hpZnQoYm9vbCBhcml0aHNoaWZ0LCB1aW50OF90IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwK KysgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgdWludDhf dCBzaGFtdCk7CisrICB2b2lkIEdlbkluc3RySVNoaWZ0Vyhib29sIGFyaXRoc2hpZnQsIHVpbnQ4 X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgdWludDhfdCBzaGFtdCk7CisrICB2b2lkIEdlbkluc3RyUyh1 aW50OF90IGZ1bmN0MywgT3Bjb2RlIG9wY29kZSwgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIs CisrICAgICAgICAgICAgICAgICBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQgR2VuSW5zdHJTKHVp bnQ4X3QgZnVuY3QzLCBPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByczEsIEZQVVJlZ2lzdGVyIHJz MiwKKysgICAgICAgICAgICAgICAgIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBHZW5JbnN0ckIo dWludDhfdCBmdW5jdDMsIE9wY29kZSBvcGNvZGUsIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMy LAorKyAgICAgICAgICAgICAgICAgaW50MTZfdCBpbW0xMik7CisrICB2b2lkIEdlbkluc3RyVShP cGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByZCwgaW50MzJfdCBpbW0yMCk7CisrICB2b2lkIEdlbklu c3RySihPcGNvZGUgb3Bjb2RlLCBSZWdpc3RlciByZCwgaW50MzJfdCBpbW0yMCk7CisrCisrICAv LyAtLS0tLSBJbnN0cnVjdGlvbiBjbGFzcyB0ZW1wbGF0ZXMgbWF0Y2ggdGhvc2UgaW4gTExWTSdz IFJJU0NWSW5zdHJJbmZvLnRkCisrICB2b2lkIEdlbkluc3RyQnJhbmNoQ0NfcnJpKHVpbnQ4X3Qg ZnVuY3QzLCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50MTZfdCBpbW0xMik7CisrICB2b2lkIEdlbkluc3RyTG9hZF9yaSh1aW50OF90 IGZ1bmN0MywgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwKKysgICAgICAgICAgICAgICAgICAg ICAgIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBHZW5JbnN0clN0b3JlX3JyaSh1aW50OF90IGZ1 bmN0MywgUmVnaXN0ZXIgcnMxLCBSZWdpc3RlciByczIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgIGludDE2X3QgaW1tMTIpOworKyAgdm9pZCBHZW5JbnN0ckFMVV9yaSh1aW50OF90IGZ1bmN0 MywgUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzMSwgaW50MTZfdCBpbW0xMik7CisrICB2b2lkIEdl bkluc3RyU2hpZnRfcmkoYm9vbCBhcml0aHNoaWZ0LCB1aW50OF90IGZ1bmN0MywgUmVnaXN0ZXIg cmQsCisrICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnMxLCB1aW50OF90IHNoYW10 KTsKKysgIHZvaWQgR2VuSW5zdHJBTFVfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3Qz LCBSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMxLAorKyAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciByczIpOworKyAgdm9pZCBHZW5JbnN0ckNTUl9pcih1aW50OF90IGZ1bmN0MywgUmVnaXN0 ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyLAorKyAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciByczEpOworKyAgdm9pZCBHZW5JbnN0ckNTUl9paSh1aW50OF90IGZ1bmN0MywgUmVnaXN0 ZXIgcmQsIENvbnRyb2xTdGF0dXNSZWcgY3NyLAorKyAgICAgICAgICAgICAgICAgICAgICB1aW50 OF90IHJzMSk7CisrICB2b2lkIEdlbkluc3RyU2hpZnRXX3JpKGJvb2wgYXJpdGhzaGlmdCwgdWlu dDhfdCBmdW5jdDMsIFJlZ2lzdGVyIHJkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciByczEsIHVpbnQ4X3Qgc2hhbXQpOworKyAgdm9pZCBHZW5JbnN0ckFMVVdfcnIodWludDhf dCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIHJzMSwgUmVnaXN0ZXIgcnMyKTsKKysgIHZvaWQgR2VuSW5zdHJQcml2 KHVpbnQ4X3QgZnVuY3Q3LCBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIEdl bkluc3RyTG9hZEZQX3JpKHVpbnQ4X3QgZnVuY3QzLCBGUFVSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90IGltbTEyKTsKKysgIHZvaWQg R2VuSW5zdHJTdG9yZUZQX3JyaSh1aW50OF90IGZ1bmN0MywgUmVnaXN0ZXIgcnMxLCBGUFVSZWdp c3RlciByczIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCBpbW0xMik7Cisr ICB2b2lkIEdlbkluc3RyQUxVRlBfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBG UFVSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEs IEZQVVJlZ2lzdGVyIHJzMik7CisrICB2b2lkIEdlbkluc3RyQUxVRlBfcnIodWludDhfdCBmdW5j dDcsIHVpbnQ4X3QgZnVuY3QzLCBGUFVSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2b2lkIEdlbkluc3RyQUxVRlBf cnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBGUFVSZWdpc3RlciByZCwKKysgICAg ICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIFJlZ2lzdGVyIHJzMik7CisrICB2 b2lkIEdlbkluc3RyQUxVRlBfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4X3QgZnVuY3QzLCBSZWdp c3RlciByZCwKKysgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciByczEsIFJlZ2lz dGVyIHJzMik7CisrICB2b2lkIEdlbkluc3RyQUxVRlBfcnIodWludDhfdCBmdW5jdDcsIHVpbnQ4 X3QgZnVuY3QzLCBSZWdpc3RlciByZCwKKysgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdp c3RlciByczEsIEZQVVJlZ2lzdGVyIHJzMik7CisrCisrICAvLyBMYWJlbHMuCisrICB2b2lkIHBy aW50KGNvbnN0IExhYmVsKiBMKTsKKysgIHZvaWQgYmluZF90byhMYWJlbCogTCwgaW50IHBvcyk7 CisrICB2b2lkIG5leHQoTGFiZWwqIEwsIGJvb2wgaXNfaW50ZXJuYWwpOworKworKyAgLy8gT25l IHRyYW1wb2xpbmUgY29uc2lzdHMgb2Y6CisrICAvLyAtIHNwYWNlIGZvciB0cmFtcG9saW5lIHNs b3RzLAorKyAgLy8gLSBzcGFjZSBmb3IgbGFiZWxzLgorKyAgLy8KKysgIC8vIFNwYWNlIGZvciB0 cmFtcG9saW5lIHNsb3RzIGlzIGVxdWFsIHRvIHNsb3RfY291bnQgKiAyICoga0luc3RyU2l6ZS4K KysgIC8vIFNwYWNlIGZvciB0cmFtcG9saW5lIHNsb3RzIHByZWNlZGVzIHNwYWNlIGZvciBsYWJl bHMuIEVhY2ggbGFiZWwgaXMgb2Ygb25lCisrICAvLyBpbnN0cnVjdGlvbiBzaXplLCBzbyB0b3Rh bCBhbW91bnQgZm9yIGxhYmVscyBpcyBlcXVhbCB0bworKyAgLy8gbGFiZWxfY291bnQgKiAga0lu c3RyU2l6ZS4KKysgIGNsYXNzIFRyYW1wb2xpbmUgeworKyAgIHB1YmxpYzoKKysgICAgVHJhbXBv bGluZSgpIHsKKysgICAgICBzdGFydF8gPSAwOworKyAgICAgIG5leHRfc2xvdF8gPSAwOworKyAg ICAgIGZyZWVfc2xvdF9jb3VudF8gPSAwOworKyAgICAgIGVuZF8gPSAwOworKyAgICB9CisrICAg IFRyYW1wb2xpbmUoaW50IHN0YXJ0LCBpbnQgc2xvdF9jb3VudCkgeworKyAgICAgIHN0YXJ0XyA9 IHN0YXJ0OworKyAgICAgIG5leHRfc2xvdF8gPSBzdGFydDsKKysgICAgICBmcmVlX3Nsb3RfY291 bnRfID0gc2xvdF9jb3VudDsKKysgICAgICBlbmRfID0gc3RhcnQgKyBzbG90X2NvdW50ICoga1Ry YW1wb2xpbmVTbG90c1NpemU7CisrICAgIH0KKysgICAgaW50IHN0YXJ0KCkgeyByZXR1cm4gc3Rh cnRfOyB9CisrICAgIGludCBlbmQoKSB7IHJldHVybiBlbmRfOyB9CisrICAgIGludCB0YWtlX3Ns b3QoKSB7CisrICAgICAgaW50IHRyYW1wb2xpbmVfc2xvdCA9IGtJbnZhbGlkU2xvdFBvczsKKysg ICAgICBpZiAoZnJlZV9zbG90X2NvdW50XyA8PSAwKSB7CisrICAgICAgICAvLyBXZSBoYXZlIHJ1 biBvdXQgb2Ygc3BhY2Ugb24gdHJhbXBvbGluZXMuCisrICAgICAgICAvLyBNYWtlIHN1cmUgd2Ug ZmFpbCBpbiBkZWJ1ZyBtb2RlLCBzbyB3ZSBiZWNvbWUgYXdhcmUgb2YgZWFjaCBjYXNlCisrICAg ICAgICAvLyB3aGVuIHRoaXMgaGFwcGVucy4KKysgICAgICAgIERDSEVDSygwKTsKKysgICAgICAg IC8vIEludGVybmFsIGV4Y2VwdGlvbiB3aWxsIGJlIGNhdWdodC4KKysgICAgICB9IGVsc2Ugewor KyAgICAgICAgdHJhbXBvbGluZV9zbG90ID0gbmV4dF9zbG90XzsKKysgICAgICAgIGZyZWVfc2xv dF9jb3VudF8tLTsKKysgICAgICAgIG5leHRfc2xvdF8gKz0ga1RyYW1wb2xpbmVTbG90c1NpemU7 CisrICAgICAgfQorKyAgICAgIHJldHVybiB0cmFtcG9saW5lX3Nsb3Q7CisrICAgIH0KKysKKysg ICBwcml2YXRlOgorKyAgICBpbnQgc3RhcnRfOworKyAgICBpbnQgZW5kXzsKKysgICAgaW50IG5l eHRfc2xvdF87CisrICAgIGludCBmcmVlX3Nsb3RfY291bnRfOworKyAgfTsKKysKKysgIGludDMy X3QgZ2V0X3RyYW1wb2xpbmVfZW50cnkoaW50MzJfdCBwb3MpOworKyAgaW50IHVuYm91bmRfbGFi ZWxzX2NvdW50XzsKKysgIC8vIEFmdGVyIHRyYW1wb2xpbmUgaXMgZW1pdHRlZCwgbG9uZyBicmFu Y2hlcyBhcmUgdXNlZCBpbiBnZW5lcmF0ZWQgY29kZSBmb3IKKysgIC8vIHRoZSBmb3J3YXJkIGJy YW5jaGVzIHdob3NlIHRhcmdldCBvZmZzZXRzIGNvdWxkIGJlIGJleW9uZCByZWFjaCBvZiBicmFu Y2gKKysgIC8vIGluc3RydWN0aW9uLiBXZSB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byB0cmlnZ2Vy IGRpZmZlcmVudCBtb2RlIG9mCisrICAvLyBicmFuY2ggaW5zdHJ1Y3Rpb24gZ2VuZXJhdGlvbiwg d2hlcmUgd2UgdXNlIGp1bXAgaW5zdHJ1Y3Rpb25zIHJhdGhlcgorKyAgLy8gdGhhbiByZWd1bGFy IGJyYW5jaCBpbnN0cnVjdGlvbnMuCisrICBib29sIHRyYW1wb2xpbmVfZW1pdHRlZF8gPSBmYWxz ZTsKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtJbnZhbGlkU2xvdFBvcyA9IC0xOworKworKyAg Ly8gSW50ZXJuYWwgcmVmZXJlbmNlIHBvc2l0aW9ucywgcmVxdWlyZWQgZm9yIHVuYm91bmRlZCBp bnRlcm5hbCByZWZlcmVuY2UKKysgIC8vIGxhYmVscy4KKysgIHN0ZDo6c2V0PGludDY0X3Q+IGlu dGVybmFsX3JlZmVyZW5jZV9wb3NpdGlvbnNfOworKyAgYm9vbCBpc19pbnRlcm5hbF9yZWZlcmVu Y2UoTGFiZWwqIEwpIHsKKysgICAgcmV0dXJuIGludGVybmFsX3JlZmVyZW5jZV9wb3NpdGlvbnNf LmZpbmQoTC0+cG9zKCkpICE9CisrICAgICAgICAgICBpbnRlcm5hbF9yZWZlcmVuY2VfcG9zaXRp b25zXy5lbmQoKTsKKysgIH0KKysKKysgIFRyYW1wb2xpbmUgdHJhbXBvbGluZV87CisrICBib29s IGludGVybmFsX3RyYW1wb2xpbmVfZXhjZXB0aW9uXzsKKysKKysgIFJlZ0xpc3Qgc2NyYXRjaF9y ZWdpc3Rlcl9saXN0XzsKKysKKysgcHJpdmF0ZToKKysgIHZvaWQgQWxsb2NhdGVBbmRJbnN0YWxs UmVxdWVzdGVkSGVhcE9iamVjdHMoSXNvbGF0ZSogaXNvbGF0ZSk7CisrCisrICBpbnQgV3JpdGVD b2RlQ29tbWVudHMoKTsKKysKKysgIGZyaWVuZCBjbGFzcyBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJ U0NWOworKyAgZnJpZW5kIGNsYXNzIFJlbG9jSW5mbzsKKysgIGZyaWVuZCBjbGFzcyBCbG9ja1Ry YW1wb2xpbmVQb29sU2NvcGU7CisrICBmcmllbmQgY2xhc3MgRW5zdXJlU3BhY2U7CisrfTsKKysK KytjbGFzcyBFbnN1cmVTcGFjZSB7CisrIHB1YmxpYzoKKysgIGV4cGxpY2l0IGlubGluZSBFbnN1 cmVTcGFjZShBc3NlbWJsZXIqIGFzc2VtYmxlcik7CisrfTsKKysKKytjbGFzcyBWOF9FWFBPUlRf UFJJVkFURSBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB7CisrIHB1YmxpYzoKKysgIGV4cGxpY2l0 IFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlKEFzc2VtYmxlciogYXNzZW1ibGVyKTsKKysgIH5Vc2VT Y3JhdGNoUmVnaXN0ZXJTY29wZSgpOworKworKyAgUmVnaXN0ZXIgQWNxdWlyZSgpOworKyAgYm9v bCBoYXNBdmFpbGFibGUoKSBjb25zdDsKKysKKysgcHJpdmF0ZToKKysgIFJlZ0xpc3QqIGF2YWls YWJsZV87CisrICBSZWdMaXN0IG9sZF9hdmFpbGFibGVfOworK307CisrCisrfSAgLy8gbmFtZXNw YWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBWOF9DT0RF R0VOX1JJU0NWX0FTU0VNQkxFUl9SSVNDVl9IXworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2 NC9jb25zdGFudHMtcmlzY3Y2NC5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgv c3JjL2NvZGVnZW4vcmlzY3Y2NC9jb25zdGFudHMtcmlzY3Y2NC5jYworQEAgLTAsMCArMSwxMTEg QEAKKysvLyBDb3B5cmlnaHQgMjAxMSB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CisrCisrI2luY2x1ZGUgInNyYy9j b2RlZ2VuL3Jpc2N2NjQvY29uc3RhbnRzLXJpc2N2NjQuaCIKKysKKytuYW1lc3BhY2Ugdjggewor K25hbWVzcGFjZSBpbnRlcm5hbCB7CisrCisrLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysvLyBS ZWdpc3RlcnMuCisrCisrLy8gVGhlc2UgcmVnaXN0ZXIgbmFtZXMgYXJlIGRlZmluZWQgaW4gYSB3 YXkgdG8gbWF0Y2ggdGhlIG5hdGl2ZSBkaXNhc3NlbWJsZXIKKysvLyBmb3JtYXR0aW5nLiBTZWUg Zm9yIGV4YW1wbGUgdGhlIGNvbW1hbmQgIm9iamR1bXAgLWQgPGJpbmFyeSBmaWxlPiIuCisrY29u c3QgY2hhciogUmVnaXN0ZXJzOjpuYW1lc19ba051bVNpbXVSZWdpc3RlcnNdID0geworKyAgICAi emVyb19yZWciLCAicmEiLCAic3AiLCAiZ3AiLCAidHAiLCAgInQwIiwgICJ0MSIsICJ0MiIsICJm cCIsICJzMSIsICJhMCIsCisrICAgICJhMSIsICAgICAgICJhMiIsICJhMyIsICJhNCIsICJhNSIs ICAiYTYiLCAgImE3IiwgInMyIiwgInMzIiwgInM0IiwgInM1IiwKKysgICAgInM2IiwgICAgICAg InM3IiwgInM4IiwgInM5IiwgInMxMCIsICJzMTEiLCAidDMiLCAidDQiLCAidDUiLCAidDYiLCAi cGMifTsKKysKKysvLyBMaXN0IG9mIGFsaWFzIG5hbWVzIHdoaWNoIGNhbiBiZSB1c2VkIHdoZW4g cmVmZXJyaW5nIHRvIFJJU0MtViByZWdpc3RlcnMuCisrY29uc3QgUmVnaXN0ZXJzOjpSZWdpc3Rl ckFsaWFzIFJlZ2lzdGVyczo6YWxpYXNlc19bXSA9IHsKKysgICAgezAsICJ6ZXJvIn0sCisrICAg IHszMywgInBjIn0sCisrICAgIHs4LCAiczAifSwKKysgICAgezgsICJzMF9mcCJ9LAorKyAgICB7 a0ludmFsaWRSZWdpc3RlciwgbnVsbHB0cn19OworKworK2NvbnN0IGNoYXIqIFJlZ2lzdGVyczo6 TmFtZShpbnQgcmVnKSB7CisrICBjb25zdCBjaGFyKiByZXN1bHQ7CisrICBpZiAoKDAgPD0gcmVn KSAmJiAocmVnIDwga051bVNpbXVSZWdpc3RlcnMpKSB7CisrICAgIHJlc3VsdCA9IG5hbWVzX1ty ZWddOworKyAgfSBlbHNlIHsKKysgICAgcmVzdWx0ID0gIm5vcmVnIjsKKysgIH0KKysgIHJldHVy biByZXN1bHQ7CisrfQorKworK2ludCBSZWdpc3RlcnM6Ok51bWJlcihjb25zdCBjaGFyKiBuYW1l KSB7CisrICAvLyBMb29rIHRocm91Z2ggdGhlIGNhbm9uaWNhbCBuYW1lcy4KKysgIGZvciAoaW50 IGkgPSAwOyBpIDwga051bVNpbXVSZWdpc3RlcnM7IGkrKykgeworKyAgICBpZiAoc3RyY21wKG5h bWVzX1tpXSwgbmFtZSkgPT0gMCkgeworKyAgICAgIHJldHVybiBpOworKyAgICB9CisrICB9Cisr CisrICAvLyBMb29rIHRocm91Z2ggdGhlIGFsaWFzIG5hbWVzLgorKyAgaW50IGkgPSAwOworKyAg d2hpbGUgKGFsaWFzZXNfW2ldLnJlZyAhPSBrSW52YWxpZFJlZ2lzdGVyKSB7CisrICAgIGlmIChz dHJjbXAoYWxpYXNlc19baV0ubmFtZSwgbmFtZSkgPT0gMCkgeworKyAgICAgIHJldHVybiBhbGlh c2VzX1tpXS5yZWc7CisrICAgIH0KKysgICAgaSsrOworKyAgfQorKworKyAgLy8gTm8gcmVnaXN0 ZXIgd2l0aCB0aGUgcmVndWVzdGVkIG5hbWUgZm91bmQuCisrICByZXR1cm4ga0ludmFsaWRSZWdp c3RlcjsKKyt9CisrCisrLyoKKytjb25zdCBjaGFyKiBGUFVSZWdpc3RlcnM6Om5hbWVzX1trTnVt RlBVUmVnaXN0ZXJzXSA9IHsKKysgICAgImYwIiwgICJmMSIsICAiZjIiLCAgImYzIiwgICJmNCIs ICAiZjUiLCAgImY2IiwgICJmNyIsICAiZjgiLCAgImY5IiwgICJmMTAiLAorKyAgICAiZjExIiwg ImYxMiIsICJmMTMiLCAiZjE0IiwgImYxNSIsICJmMTYiLCAiZjE3IiwgImYxOCIsICJmMTkiLCAi ZjIwIiwgImYyMSIsCisrICAgICJmMjIiLCAiZjIzIiwgImYyNCIsICJmMjUiLCAiZjI2IiwgImYy NyIsICJmMjgiLCAiZjI5IiwgImYzMCIsICJmMzEifTsKKysqLworK2NvbnN0IGNoYXIqIEZQVVJl Z2lzdGVyczo6bmFtZXNfW2tOdW1GUFVSZWdpc3RlcnNdID0geworKyAgICAiZnQwIiwgImZ0MSIs ICJmdDIiLCAgImZ0MyIsICAiZnQ0IiwgImZ0NSIsICJmdDYiLCAgImZ0NyIsCisrICAgICJmczAi LCAiZnMxIiwgImZhMCIsICAiZmExIiwgICJmYTIiLCAiZmEzIiwgImZhNCIsICAiZmE1IiwKKysg ICAgImZhNiIsICJmYTciLCAiZnMyIiwgICJmczMiLCAgImZzNCIsICJmczUiLCAiZnM2IiwgICJm czciLAorKyAgICAiZnM4IiwgImZzOSIsICJmczEwIiwgImZzMTEiLCAiZnQ4IiwgImZ0OSIsICJm dDEwIiwgImZ0MTEifTsKKysKKysvLyBMaXN0IG9mIGFsaWFzIG5hbWVzIHdoaWNoIGNhbiBiZSB1 c2VkIHdoZW4gcmVmZXJyaW5nIHRvIFJJU0MtViBGUCByZWdpc3RlcnMuCisrY29uc3QgRlBVUmVn aXN0ZXJzOjpSZWdpc3RlckFsaWFzIEZQVVJlZ2lzdGVyczo6YWxpYXNlc19bXSA9IHsKKysgICAg e2tJbnZhbGlkUmVnaXN0ZXIsIG51bGxwdHJ9fTsKKysKKytjb25zdCBjaGFyKiBGUFVSZWdpc3Rl cnM6Ok5hbWUoaW50IGNyZWcpIHsKKysgIGNvbnN0IGNoYXIqIHJlc3VsdDsKKysgIGlmICgoMCA8 PSBjcmVnKSAmJiAoY3JlZyA8IGtOdW1GUFVSZWdpc3RlcnMpKSB7CisrICAgIHJlc3VsdCA9IG5h bWVzX1tjcmVnXTsKKysgIH0gZWxzZSB7CisrICAgIHJlc3VsdCA9ICJub2NyZWciOworKyAgfQor KyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisraW50IEZQVVJlZ2lzdGVyczo6TnVtYmVyKGNvbnN0 IGNoYXIqIG5hbWUpIHsKKysgIC8vIExvb2sgdGhyb3VnaCB0aGUgY2Fub25pY2FsIG5hbWVzLgor KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBrTnVtRlBVUmVnaXN0ZXJzOyBpKyspIHsKKysgICAgaWYg KHN0cmNtcChuYW1lc19baV0sIG5hbWUpID09IDApIHsKKysgICAgICByZXR1cm4gaTsKKysgICAg fQorKyAgfQorKworKyAgLy8gTG9vayB0aHJvdWdoIHRoZSBhbGlhcyBuYW1lcy4KKysgIGludCBp ID0gMDsKKysgIHdoaWxlIChhbGlhc2VzX1tpXS5jcmVnICE9IGtJbnZhbGlkUmVnaXN0ZXIpIHsK KysgICAgaWYgKHN0cmNtcChhbGlhc2VzX1tpXS5uYW1lLCBuYW1lKSA9PSAwKSB7CisrICAgICAg cmV0dXJuIGFsaWFzZXNfW2ldLmNyZWc7CisrICAgIH0KKysgICAgaSsrOworKyAgfQorKworKyAg Ly8gTm8gQ3JlZ2lzdGVyIHdpdGggdGhlIHJlZ3Vlc3RlZCBuYW1lIGZvdW5kLgorKyAgcmV0dXJu IGtJbnZhbGlkRlBVUmVnaXN0ZXI7CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAor K30gIC8vIG5hbWVzcGFjZSB2OAorKworKyNlbmRpZiAgLy8gVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2 NAorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9jb25zdGFudHMtcmlzY3Y2NC5oCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4x NS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9yaXNjdjY0L2NvbnN0YW50 cy1yaXNjdjY0LmgKK0BAIC0wLDAgKzEsOTQ3IEBACisrLy8gQ29weXJpZ2h0IDIwMTIgdGhlIFY4 IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBz b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl CisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIFY4X0NPREVHRU5f UklTQ1ZfQ09OU1RBTlRTX1JJU0NWX0hfCisrI2RlZmluZSBWOF9DT0RFR0VOX1JJU0NWX0NPTlNU QU5UU19SSVNDVl9IXworKworKyNpbmNsdWRlICJzcmMvYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1 ZGUgInNyYy9iYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJzcmMvY29tbW9uL2dsb2JhbHMuaCIK KysKKysvLyBVTklNUExFTUVOVEVEXyBtYWNybyBmb3IgUklTQ1YuCisrI2lmZGVmIERFQlVHCisr I2RlZmluZSBVTklNUExFTUVOVEVEX1JJU0NWKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgdjg6OmludGVybmFsOjpQcmludEYoIiVzLCBcdGxpbmUg JWQ6IFx0ZnVuY3Rpb24gJXMgbm90IGltcGxlbWVudGVkLiBcbiIsIFwKKysgICAgICAgICAgICAg ICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18pCisrI2Vsc2UKKysjZGVmaW5l IFVOSU1QTEVNRU5URURfUklTQ1YoKQorKyNlbmRpZgorKworKyNkZWZpbmUgVU5TVVBQT1JURURf UklTQ1YoKSB2ODo6aW50ZXJuYWw6OlByaW50RigiVW5zdXBwb3J0ZWQgaW5zdHJ1Y3Rpb24uXG4i KQorKworK2VudW0gRW5kaWFubmVzcyB7IGtMaXR0bGUsIGtCaWcgfTsKKysKKysjaWYgZGVmaW5l ZChWOF9UQVJHRVRfTElUVExFX0VORElBTikKKytzdGF0aWMgY29uc3QgRW5kaWFubmVzcyBrQXJj aEVuZGlhbiA9IGtMaXR0bGU7CisrI2VsaWYgZGVmaW5lZChWOF9UQVJHRVRfQklHX0VORElBTikK KytzdGF0aWMgY29uc3QgRW5kaWFubmVzcyBrQXJjaEVuZGlhbiA9IGtCaWc7CisrI2Vsc2UKKysj ZXJyb3IgVW5rbm93biBlbmRpYW5uZXNzCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQoVjhfVEFS R0VUX0xJVFRMRV9FTkRJQU4pCisrY29uc3QgdWludDMyX3Qga0xlYXN0U2lnbmlmaWNhbnRCeXRl SW5JbnQzMk9mZnNldCA9IDA7CisrY29uc3QgdWludDMyX3Qga0xlc3NTaWduaWZpY2FudFdvcmRJ bkRvdWJsZXdvcmRPZmZzZXQgPSAwOworKyNlbGlmIGRlZmluZWQoVjhfVEFSR0VUX0JJR19FTkRJ QU4pCisrY29uc3QgdWludDMyX3Qga0xlYXN0U2lnbmlmaWNhbnRCeXRlSW5JbnQzMk9mZnNldCA9 IDM7CisrY29uc3QgdWludDMyX3Qga0xlc3NTaWduaWZpY2FudFdvcmRJbkRvdWJsZXdvcmRPZmZz ZXQgPSA0OworKyNlbHNlCisrI2Vycm9yIFVua25vd24gZW5kaWFubmVzcworKyNlbmRpZgorKwor KyNpZm5kZWYgX19TVERDX0ZPUk1BVF9NQUNST1MKKysjZGVmaW5lIF9fU1REQ19GT1JNQVRfTUFD Uk9TCisrI2VuZGlmCisrI2luY2x1ZGUgPGludHR5cGVzLmg+CisrCisrLy8gRGVmaW5lcyBjb25z dGFudHMgYW5kIGFjY2Vzc29yIGNsYXNzZXMgdG8gYXNzZW1ibGUsIGRpc2Fzc2VtYmxlIGFuZAor Ky8vIHNpbXVsYXRlIFJJU0MtViBpbnN0cnVjdGlvbnMuCisrLy8KKysvLyBTZWU6IFRoZSBSSVND LVYgSW5zdHJ1Y3Rpb24gU2V0IE1hbnVhbAorKy8vICAgICAgVm9sdW1lIEk6IFVzZXItTGV2ZWwg SVNBCisrLy8gVHJ5IGh0dHBzOi8vY29udGVudC5yaXNjdi5vcmcvd3AtY29udGVudC91cGxvYWRz LzIwMTcvMDUvcmlzY3Ytc3BlYy12Mi4yLnBkZi4KKysKKytuYW1lc3BhY2UgdjggeworK25hbWVz cGFjZSBpbnRlcm5hbCB7CisrCisrLy8gVE9ETyhzaWd1cmRzKTogQ2hhbmdlIHRoaXMgdmFsdWUg b25jZSB3ZSB1c2UgcmVsYXRpdmUganVtcHMuCisrY29uc3RleHByIHNpemVfdCBrTWF4UENSZWxh dGl2ZUNvZGVSYW5nZUluTUIgPSAwOworKworKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrLy8g UmVnaXN0ZXJzIGFuZCBGUFVSZWdpc3RlcnMuCisrCisrLy8gTnVtYmVyIG9mIGdlbmVyYWwgcHVy cG9zZSByZWdpc3RlcnMuCisrY29uc3QgaW50IGtOdW1SZWdpc3RlcnMgPSAzMjsKKytjb25zdCBp bnQga0ludmFsaWRSZWdpc3RlciA9IC0xOworKworKy8vIE51bWJlciBvZiByZWdpc3RlcnMgd2l0 aCBwYy4KKytjb25zdCBpbnQga051bVNpbXVSZWdpc3RlcnMgPSAzMzsKKysKKysvLyBJbiB0aGUg c2ltdWxhdG9yLCB0aGUgUEMgcmVnaXN0ZXIgaXMgc2ltdWxhdGVkIGFzIHRoZSAzNHRoIHJlZ2lz dGVyLgorK2NvbnN0IGludCBrUENSZWdpc3RlciA9IDM0OworKworKy8vIE51bWJlciBjb3Byb2Nl c3NvciByZWdpc3RlcnMuCisrY29uc3QgaW50IGtOdW1GUFVSZWdpc3RlcnMgPSAzMjsKKytjb25z dCBpbnQga0ludmFsaWRGUFVSZWdpc3RlciA9IC0xOworKworKy8vICdwcmVmJyBpbnN0cnVjdGlv biBoaW50cworK2NvbnN0IGludDMyX3Qga1ByZWZIaW50TG9hZCA9IDA7CisrY29uc3QgaW50MzJf dCBrUHJlZkhpbnRTdG9yZSA9IDE7CisrY29uc3QgaW50MzJfdCBrUHJlZkhpbnRMb2FkU3RyZWFt ZWQgPSA0OworK2NvbnN0IGludDMyX3Qga1ByZWZIaW50U3RvcmVTdHJlYW1lZCA9IDU7CisrY29u c3QgaW50MzJfdCBrUHJlZkhpbnRMb2FkUmV0YWluZWQgPSA2OworK2NvbnN0IGludDMyX3Qga1By ZWZIaW50U3RvcmVSZXRhaW5lZCA9IDc7CisrY29uc3QgaW50MzJfdCBrUHJlZkhpbnRXcml0ZWJh Y2tJbnZhbGlkYXRlID0gMjU7CisrY29uc3QgaW50MzJfdCBrUHJlZkhpbnRQcmVwYXJlRm9yU3Rv cmUgPSAzMDsKKysKKysvLyBBY3R1YWwgdmFsdWUgb2Ygcm9vdCByZWdpc3RlciBpcyBvZmZzZXQg ZnJvbSB0aGUgcm9vdCBhcnJheSdzIHN0YXJ0CisrLy8gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgbmVn YXRpdmUgZGlzcGxhY2VtZW50IHZhbHVlcy4KKysvLyBUT0RPKHNpZ3VyZHMpOiBDaG9vc2UgYmVz dCB2YWx1ZS4KKytjb25zdGV4cHIgaW50IGtSb290UmVnaXN0ZXJCaWFzID0gMjU2OworKworKy8v IEhlbHBlciBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbiByZWdpc3RlciBudW1iZXJz IGFuZCBuYW1lcy4KKytjbGFzcyBSZWdpc3RlcnMgeworKyBwdWJsaWM6CisrICAvLyBSZXR1cm4g dGhlIG5hbWUgb2YgdGhlIHJlZ2lzdGVyLgorKyAgc3RhdGljIGNvbnN0IGNoYXIqIE5hbWUoaW50 IHJlZyk7CisrCisrICAvLyBMb29rdXAgdGhlIHJlZ2lzdGVyIG51bWJlciBmb3IgdGhlIG5hbWUg cHJvdmlkZWQuCisrICBzdGF0aWMgaW50IE51bWJlcihjb25zdCBjaGFyKiBuYW1lKTsKKysKKysg IHN0cnVjdCBSZWdpc3RlckFsaWFzIHsKKysgICAgaW50IHJlZzsKKysgICAgY29uc3QgY2hhciog bmFtZTsKKysgIH07CisrCisrICBzdGF0aWMgY29uc3QgaW50NjRfdCBrTWF4VmFsdWUgPSAweDdm ZmZmZmZmZmZmZmZmZmZsOworKyAgc3RhdGljIGNvbnN0IGludDY0X3Qga01pblZhbHVlID0gMHg4 MDAwMDAwMDAwMDAwMDAwbDsKKysKKysgcHJpdmF0ZToKKysgIHN0YXRpYyBjb25zdCBjaGFyKiBu YW1lc19ba051bVNpbXVSZWdpc3RlcnNdOworKyAgc3RhdGljIGNvbnN0IFJlZ2lzdGVyQWxpYXMg YWxpYXNlc19bXTsKKyt9OworKworKy8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcg YmV0d2VlbiByZWdpc3RlciBudW1iZXJzIGFuZCBuYW1lcy4KKytjbGFzcyBGUFVSZWdpc3RlcnMg eworKyBwdWJsaWM6CisrICAvLyBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHJlZ2lzdGVyLgorKyAg c3RhdGljIGNvbnN0IGNoYXIqIE5hbWUoaW50IHJlZyk7CisrCisrICAvLyBMb29rdXAgdGhlIHJl Z2lzdGVyIG51bWJlciBmb3IgdGhlIG5hbWUgcHJvdmlkZWQuCisrICBzdGF0aWMgaW50IE51bWJl cihjb25zdCBjaGFyKiBuYW1lKTsKKysKKysgIHN0cnVjdCBSZWdpc3RlckFsaWFzIHsKKysgICAg aW50IGNyZWc7CisrICAgIGNvbnN0IGNoYXIqIG5hbWU7CisrICB9OworKworKyBwcml2YXRlOgor KyAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWVzX1trTnVtRlBVUmVnaXN0ZXJzXTsKKysgIHN0YXRp YyBjb25zdCBSZWdpc3RlckFsaWFzIGFsaWFzZXNfW107CisrfTsKKysKKysvLyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKy8vIEluc3RydWN0aW9ucyBlbmNvZGluZyBjb25zdGFudHMuCisrCisrLy8g T24gUklTQ1YgYWxsIGluc3RydWN0aW9ucyBhcmUgMzIgYml0cy4KKyt1c2luZyBJbnN0ciA9IGlu dDMyX3Q7CisrCisrLy8gU3BlY2lhbCBTb2Z0d2FyZSBJbnRlcnJ1cHQgY29kZXMgd2hlbiB1c2Vk IGluIHRoZSBwcmVzZW5jZSBvZiB0aGUgUklTQy1WCisrLy8gc2ltdWxhdG9yLgorK2VudW0gU29m dHdhcmVJbnRlcnJ1cHRDb2RlcyB7CisrICAvLyBUcmFuc2l0aW9uIHRvIEMgY29kZS4KKysgIGNh bGxfcnRfcmVkaXJlY3RlZCA9IDB4ZmZmZmYKKyt9OworKworKy8vIE9uIFJJU0MtViBTaW11bGF0 b3IgYnJlYWtwb2ludHMgY2FuIGhhdmUgZGlmZmVyZW50IGNvZGVzOgorKy8vIC0gQnJlYWtzIGJl dHdlZW4gMCBhbmQga01heFdhdGNocG9pbnRDb2RlIGFyZSB0cmVhdGVkIGFzIHNpbXBsZSB3YXRj aHBvaW50cywKKysvLyAgIHRoZSBzaW11bGF0b3Igd2lsbCBydW4gdGhyb3VnaCB0aGVtIGFuZCBw cmludCB0aGUgcmVnaXN0ZXJzLgorKy8vIC0gQnJlYWtzIGJldHdlZW4ga01heFdhdGNocG9pbnRD b2RlIGFuZCBrTWF4U3RvcENvZGUgYXJlIHRyZWF0ZWQgYXMgc3RvcCgpCisrLy8gICBpbnN0cnVj dGlvbnMgKHNlZSBBc3NlbWJsZXI6OnN0b3AoKSkuCisrLy8gLSBCcmVha3MgbGFyZ2VyIHRoYW4g a01heFN0b3BDb2RlIGFyZSBzaW1wbGUgYnJlYWtzLCBkcm9wcGluZyB5b3UgaW50byB0aGUKKysv LyAgIGRlYnVnZ2VyLgorK2NvbnN0IHVpbnQzMl90IGtNYXhXYXRjaHBvaW50Q29kZSA9IDMxOwor K2NvbnN0IHVpbnQzMl90IGtNYXhTdG9wQ29kZSA9IDEyNzsKKytTVEFUSUNfQVNTRVJUKGtNYXhX YXRjaHBvaW50Q29kZSA8IGtNYXhTdG9wQ29kZSk7CisrCisrLy8gLS0tLS0gRmllbGRzIG9mZnNl dCBhbmQgbGVuZ3RoLgorKy8vIFJJU0NWIGNvbnN0YW50cworK2NvbnN0IGludCBrQmFzZU9wY29k ZVNoaWZ0ID0gMDsKKytjb25zdCBpbnQga0Jhc2VPcGNvZGVCaXRzID0gNzsKKytjb25zdCBpbnQg a0Z1bmN0N1NoaWZ0ID0gMjU7CisrY29uc3QgaW50IGtGdW5jdDdCaXRzID0gNzsKKytjb25zdCBp bnQga0Z1bmN0NVNoaWZ0ID0gMjc7CisrY29uc3QgaW50IGtGdW5jdDVCaXRzID0gNTsKKytjb25z dCBpbnQga0Z1bmN0M1NoaWZ0ID0gMTI7CisrY29uc3QgaW50IGtGdW5jdDNCaXRzID0gMzsKKytj b25zdCBpbnQga0Z1bmN0MlNoaWZ0ID0gMjU7CisrY29uc3QgaW50IGtGdW5jdDJCaXRzID0gMjsK Kytjb25zdCBpbnQga1JzMVNoaWZ0ID0gMTU7CisrY29uc3QgaW50IGtSczFCaXRzID0gNTsKKytj b25zdCBpbnQga1JzMlNoaWZ0ID0gMjA7CisrY29uc3QgaW50IGtSczJCaXRzID0gNTsKKytjb25z dCBpbnQga1JzM1NoaWZ0ID0gMjc7CisrY29uc3QgaW50IGtSczNCaXRzID0gNTsKKytjb25zdCBp bnQga1JkU2hpZnQgPSA3OworK2NvbnN0IGludCBrUmRCaXRzID0gNTsKKytjb25zdCBpbnQga1Js U2hpZnQgPSAyNTsKKytjb25zdCBpbnQga0FxU2hpZnQgPSAyNjsKKytjb25zdCBpbnQga0ltbTEy U2hpZnQgPSAyMDsKKytjb25zdCBpbnQga0ltbTEyQml0cyA9IDEyOworK2NvbnN0IGludCBrU2hh bXRTaGlmdCA9IDIwOworK2NvbnN0IGludCBrU2hhbXRCaXRzID0gNTsKKytjb25zdCBpbnQga1No YW10V1NoaWZ0ID0gMjA7CisrY29uc3QgaW50IGtTaGFtdFdCaXRzID0gNjsKKytjb25zdCBpbnQg a0FyaXRoU2hpZnRTaGlmdCA9IDMwOworK2NvbnN0IGludCBrSW1tMjBTaGlmdCA9IDEyOworK2Nv bnN0IGludCBrSW1tMjBCaXRzID0gMjA7CisrY29uc3QgaW50IGtDc3JTaGlmdCA9IDIwOworK2Nv bnN0IGludCBrQ3NyQml0cyA9IDEyOworK2NvbnN0IGludCBrTWVtT3JkZXJCaXRzID0gNDsKKytj b25zdCBpbnQga1ByZWRPcmRlclNoaWZ0ID0gMjQ7CisrY29uc3QgaW50IGtTdWNjT3JkZXJTaGlm dCA9IDIwOworKworKy8vIFJJU0NWIEluc3RydWN0aW9uIGJpdCBtYXNrcworK2NvbnN0IHVpbnQz Ml90IGtCYXNlT3Bjb2RlTWFzayA9ICgoMSA8PCBrQmFzZU9wY29kZUJpdHMpIC0gMSkgPDwga0Jh c2VPcGNvZGVTaGlmdDsKKytjb25zdCB1aW50MzJfdCBrRnVuY3QzTWFzayA9ICgoMSA8PCBrRnVu Y3QzQml0cykgLSAxKSA8PCBrRnVuY3QzU2hpZnQ7CisrY29uc3QgdWludDMyX3Qga0Z1bmN0NU1h c2sgPSAoKDEgPDwga0Z1bmN0NUJpdHMpIC0gMSkgPDwga0Z1bmN0NVNoaWZ0OworK2NvbnN0IHVp bnQzMl90IGtGdW5jdDdNYXNrID0gKCgxIDw8IGtGdW5jdDdCaXRzKSAtIDEpIDw8IGtGdW5jdDdT aGlmdDsKKytjb25zdCB1aW50MzJfdCBrRnVuY3QyTWFzayA9IDBiMTEgPDwga0Z1bmN0N1NoaWZ0 OworK2NvbnN0IHVpbnQzMl90IGtSVHlwZU1hc2sgPSBrQmFzZU9wY29kZU1hc2sgfCBrRnVuY3Qz TWFzayB8IGtGdW5jdDdNYXNrOworK2NvbnN0IHVpbnQzMl90IGtSQVR5cGVNYXNrID0ga0Jhc2VP cGNvZGVNYXNrIHwga0Z1bmN0M01hc2sgfCBrRnVuY3Q1TWFzazsKKytjb25zdCB1aW50MzJfdCBr UkZQVHlwZU1hc2sgPSBrQmFzZU9wY29kZU1hc2sgfCBrRnVuY3Q3TWFzazsKKytjb25zdCB1aW50 MzJfdCBrUjRUeXBlTWFzayA9IGtCYXNlT3Bjb2RlTWFzayB8IGtGdW5jdDNNYXNrIHwga0Z1bmN0 Mk1hc2s7CisrY29uc3QgdWludDMyX3Qga0lUeXBlTWFzayA9IGtCYXNlT3Bjb2RlTWFzayB8IGtG dW5jdDNNYXNrOworK2NvbnN0IHVpbnQzMl90IGtTVHlwZU1hc2sgPSBrQmFzZU9wY29kZU1hc2sg fCBrRnVuY3QzTWFzazsKKytjb25zdCB1aW50MzJfdCBrQlR5cGVNYXNrID0ga0Jhc2VPcGNvZGVN YXNrIHwga0Z1bmN0M01hc2s7CisrY29uc3QgdWludDMyX3Qga1VUeXBlTWFzayA9IGtCYXNlT3Bj b2RlTWFzazsKKytjb25zdCB1aW50MzJfdCBrSlR5cGVNYXNrID0ga0Jhc2VPcGNvZGVNYXNrOwor K2NvbnN0IHVpbnQzMl90IGtSczFGaWVsZE1hc2sgPSAoKDEgPDwga1JzMUJpdHMpIC0gMSkgPDwg a1JzMVNoaWZ0OworK2NvbnN0IHVpbnQzMl90IGtSczJGaWVsZE1hc2sgPSAoKDEgPDwga1JzMkJp dHMpIC0gMSkgPDwga1JzMlNoaWZ0OworK2NvbnN0IHVpbnQzMl90IGtSczNGaWVsZE1hc2sgPSAo KDEgPDwga1JzM0JpdHMpIC0gMSkgPDwga1JzM1NoaWZ0OworK2NvbnN0IHVpbnQzMl90IGtSZEZp ZWxkTWFzayA9ICgoMSA8PCBrUmRCaXRzKSAtIDEpIDw8IGtSZFNoaWZ0OworK2NvbnN0IHVpbnQz Ml90IGtCSW1tMTJNYXNrID0ga0Z1bmN0N01hc2sgfCBrUmRGaWVsZE1hc2s7CisrY29uc3QgdWlu dDMyX3Qga0ltbTIwTWFzayA9ICgoMSA8PCBrSW1tMjBCaXRzKSAtIDEpIDw8IGtJbW0yMFNoaWZ0 OworK2NvbnN0IHVpbnQzMl90IGtJbW0xMk1hc2sgPSAoKDEgPDwga0ltbTEyQml0cykgLSAxKSA8 PCBrSW1tMTJTaGlmdDsKKysKKysvLyBSSVNDViBDU1IgcmVsYXRlZCBiaXQgbWFzayBhbmQgc2hp ZnQKKytjb25zdCB1aW50MzJfdCBrRmNzckZsYWdzQml0cyA9IDU7CisrY29uc3QgdWludDMyX3Qg a0Zjc3JGbGFnc01hc2sgPSAoMSA8PCBrRmNzckZsYWdzQml0cykgLSAxOworK2NvbnN0IHVpbnQz Ml90IGtGY3NyRnJtQml0cyA9IDM7CisrY29uc3QgdWludDMyX3Qga0Zjc3JGcm1TaGlmdCA9IGtG Y3NyRmxhZ3NCaXRzOworK2NvbnN0IHVpbnQzMl90IGtGY3NyRnJtTWFzayA9ICgoMSA8PCBrRmNz ckZybUJpdHMpIC0gMSkgPDwga0Zjc3JGcm1TaGlmdDsKKytjb25zdCB1aW50MzJfdCBrRmNzckJp dHMgPSBrRmNzckZsYWdzQml0cyArIGtGY3NyRnJtQml0czsKKytjb25zdCB1aW50MzJfdCBrRmNz ck1hc2sgPSBrRmNzckZsYWdzTWFzayB8IGtGY3NyRnJtTWFzazsKKysKKysvLyBPcmlnaW5hbCBN SVBTIGNvbnN0YW50cworKy8vIEZJWE1FIChSSVNDVik6IHRvIGJlIGNsZWFuZWQgdXAKKytjb25z dCB1aW50MzJfdCBrSW1tMTZTaGlmdCA9IDA7CisrY29uc3QgdWludDMyX3Qga0ltbTE2Qml0cyA9 IDE2OworK2NvbnN0IHVpbnQzMl90IGtJbW0xNk1hc2sgPSAoKDEgPDwga0ltbTE2Qml0cykgLSAx KSA8PCBrSW1tMTZTaGlmdDsKKysvLyBlbmQgb2YgRklYTUUgKFJJU0NWKTogdG8gYmUgY2xlYW5l ZCB1cAorKworKy8vIC0tLS0tIFJJU0NWIEJhc2UgT3Bjb2RlcworKworK2VudW0gQmFzZU9wY29k ZSA6IHVpbnQzMl90IHsKKysKKyt9OworKworKy8vIC0tLS0tIFJJU0MtViBPcGNvZGVzIGFuZCBG dW5jdGlvbiBGaWVsZHMuCisrZW51bSBPcGNvZGUgOiB1aW50MzJfdCB7CisrICBMT0FEID0gMGIw MDAwMDExLCAgICAgIC8vIEkgZm9ybTogTEIgTEggTFcgTEJVIExIVQorKyAgTE9BRF9GUCA9IDBi MDAwMDExMSwgICAvLyBJIGZvcm06IEZMVyBGTEQgRkxRCisrICBNSVNDX01FTSA9IDBiMDAwMTEx MSwgIC8vIEkgc3BlY2lhbCBmb3JtOiBGRU5DRSBGRU5DRS5JCisrICBPUF9JTU0gPSAwYjAwMTAw MTEsICAgIC8vIEkgZm9ybTogQURESSBTTFRJIFNMVElVIFhPUkkgT1JJIEFOREkgU0xMSSBTUkxJ IFNBUkkKKysgIC8vIE5vdGU6IFNMTEkvU1JMSS9TUkFJIEkgZm9ybSBmaXJzdCwgdGhlbiBmdW5j MyAwMDEvMTAxID0+IFIgdHlwZQorKyAgQVVJUEMgPSAwYjAwMTAxMTEsICAgICAgLy8gVSBmb3Jt OiBBVUlQQworKyAgT1BfSU1NXzMyID0gMGIwMDExMDExLCAgLy8gSSBmb3JtOiBBRERJVyBTTExJ VyBTUkxJVyBTUkFJVworKyAgLy8gTm90ZTogIFNSTElXIFNSQUlXIEkgZm9ybSBmaXJzdCwgdGhl biBmdW5jMyAxMDEgc3BlY2lhbCBzaGlmdCBlbmNvZGluZworKyAgU1RPUkUgPSAwYjAxMDAwMTEs ICAgICAvLyBTIGZvcm06IFNCIFNIIFNXIFNECisrICBTVE9SRV9GUCA9IDBiMDEwMDExMSwgIC8v IFMgZm9ybTogRlNXIEZTRCBGU1EKKysgIEFNTyA9IDBiMDEwMTExMSwgICAgICAgLy8gUiBmb3Jt OiBBbGwgQSBpbnN0cnVjdGlvbnMKKysgIE9QID0gMGIwMTEwMDExLCAgICAgIC8vIFI6IEFERCBT VUIgU0xMIFNMVCBTTFRVIFhPUiBTUkwgU1JBIE9SIEFORCBhbmQgMzJNIHNldAorKyAgTFVJID0g MGIwMTEwMTExLCAgICAgLy8gVSBmb3JtOiBMVUkKKysgIE9QXzMyID0gMGIwMTExMDExLCAgIC8v IFI6IEFERFcgU1VCVyBTTExXIFNSTFcgU1JBVyBNVUxXIERJVlcgRElWVVcgUkVNVyBSRU1VVwor KyAgTUFERCA9IDBiMTAwMDAxMSwgICAgLy8gUjQgdHlwZTogRk1BREQuUyBGTUFERC5EIEZNQURE LlEKKysgIE1TVUIgPSAwYjEwMDAxMTEsICAgIC8vIFI0IHR5cGU6IEZNU1VCLlMgRk1TVUIuRCBG TVNVQi5RCisrICBOTVNVQiA9IDBiMTAwMTAxMSwgICAvLyBSNCB0eXBlOiBGTk1TVUIuUyBGTk1T VUIuRCBGTk1TVUIuUQorKyAgTk1BREQgPSAwYjEwMDExMTEsICAgLy8gUjQgdHlwZTogRk5NQURE LlMgRk5NQURELkQgRk5NQURELlEKKysgIE9QX0ZQID0gMGIxMDEwMDExLCAgIC8vIFIgdHlwZTog USBleHQKKysgIEJSQU5DSCA9IDBiMTEwMDAxMSwgIC8vIEIgZm9ybTogQkVRIEJORSwgQkxULCBC R0UsIEJMVFUgQkdFVQorKyAgSkFMUiA9IDBiMTEwMDExMSwgICAgLy8gSSBmb3JtOiBKQUxSCisr ICBKQUwgPSAwYjExMDExMTEsICAgICAvLyBKIGZvcm06IEpBTAorKyAgU1lTVEVNID0gMGIxMTEw MDExLCAgLy8gSSBmb3JtOiBFQ0FMTCBFQlJFQUsgWmljc3IgZXh0CisrCisrICAvLyBOb3RlIHVz ZSBSTyAoUmlzY1YgT3Bjb2RlKSBwcmVmaXgKKysgIC8vIFJWMzJJIEJhc2UgSW5zdHJ1Y3Rpb24g U2V0CisrICBST19MVUkgPSBMVUksCisrICBST19BVUlQQyA9IEFVSVBDLAorKyAgUk9fSkFMID0g SkFMLAorKyAgUk9fSkFMUiA9IEpBTFIgfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJP X0JFUSA9IEJSQU5DSCB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fQk5FID0gQlJB TkNIIHwgKDBiMDAxIDw8IGtGdW5jdDNTaGlmdCksCisrICBST19CTFQgPSBCUkFOQ0ggfCAoMGIx MDAgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX0JHRSA9IEJSQU5DSCB8ICgwYjEwMSA8PCBrRnVu Y3QzU2hpZnQpLAorKyAgUk9fQkxUVSA9IEJSQU5DSCB8ICgwYjExMCA8PCBrRnVuY3QzU2hpZnQp LAorKyAgUk9fQkdFVSA9IEJSQU5DSCB8ICgwYjExMSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9f TEIgPSBMT0FEIHwgKDBiMDAwIDw8IGtGdW5jdDNTaGlmdCksCisrICBST19MSCA9IExPQUQgfCAo MGIwMDEgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX0xXID0gTE9BRCB8ICgwYjAxMCA8PCBrRnVu Y3QzU2hpZnQpLAorKyAgUk9fTEJVID0gTE9BRCB8ICgwYjEwMCA8PCBrRnVuY3QzU2hpZnQpLAor KyAgUk9fTEhVID0gTE9BRCB8ICgwYjEwMSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fU0IgPSBT VE9SRSB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fU0ggPSBTVE9SRSB8ICgwYjAw MSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fU1cgPSBTVE9SRSB8ICgwYjAxMCA8PCBrRnVuY3Qz U2hpZnQpLAorKyAgUk9fQURESSA9IE9QX0lNTSB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQpLAor KyAgUk9fU0xUSSA9IE9QX0lNTSB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fU0xU SVUgPSBPUF9JTU0gfCAoMGIwMTEgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX1hPUkkgPSBPUF9J TU0gfCAoMGIxMDAgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX09SSSA9IE9QX0lNTSB8ICgwYjEx MCA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fQU5ESSA9IE9QX0lNTSB8ICgwYjExMSA8PCBrRnVu Y3QzU2hpZnQpLAorKyAgUk9fU0xMSSA9IE9QX0lNTSB8ICgwYjAwMSA8PCBrRnVuY3QzU2hpZnQp LAorKyAgUk9fU1JMSSA9IE9QX0lNTSB8ICgwYjEwMSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgLy8g Uk9fU1JBSSA9IE9QX0lNTSB8ICgwYjEwMSA8PCBrRnVuY3QzU2hpZnQpLCAvLyBTYW1lIGFzIFNS TEksIHVzZSBmdW5jNworKyAgUk9fQUREID0gT1AgfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSB8 ICgwYjAwMDAwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX1NVQiA9IE9QIHwgKDBiMDAwIDw8 IGtGdW5jdDNTaGlmdCkgfCAoMGIwMTAwMDAwIDw8IGtGdW5jdDdTaGlmdCksCisrICBST19TTEwg PSBPUCB8ICgwYjAwMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMCA8PCBrRnVuY3Q3U2hp ZnQpLAorKyAgUk9fU0xUID0gT1AgfCAoMGIwMTAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDAw MDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX1NMVFUgPSBPUCB8ICgwYjAxMSA8PCBrRnVuY3Qz U2hpZnQpIHwgKDBiMDAwMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fWE9SID0gT1AgfCAo MGIxMDAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDAwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysg IFJPX1NSTCA9IE9QIHwgKDBiMTAxIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDAwMDAwIDw8IGtG dW5jdDdTaGlmdCksCisrICBST19TUkEgPSBPUCB8ICgwYjEwMSA8PCBrRnVuY3QzU2hpZnQpIHwg KDBiMDEwMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fT1IgPSBPUCB8ICgwYjExMCA8PCBr RnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fQU5EID0g T1AgfCAoMGIxMTEgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDAwMDAgPDwga0Z1bmN0N1NoaWZ0 KSwKKysgIFJPX0ZFTkNFID0gTUlTQ19NRU0gfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSwKKysg IFJPX0VDQUxMID0gU1lTVEVNIHwgKDBiMDAwIDw8IGtGdW5jdDNTaGlmdCksCisrICAvLyBST19F QlJFQUsgPSBTWVNURU0gfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSwgLy8gU2FtZSBhcyBFQ0FM TCwgdXNlIGltbTEyCisrCisrICAvLyBSVjY0SSBCYXNlIEluc3RydWN0aW9uIFNldCAoaW4gYWRk aXRpb24gdG8gUlYzMkkpCisrICBST19MV1UgPSBMT0FEIHwgKDBiMTEwIDw8IGtGdW5jdDNTaGlm dCksCisrICBST19MRCA9IExPQUQgfCAoMGIwMTEgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX1NE ID0gU1RPUkUgfCAoMGIwMTEgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX0FERElXID0gT1BfSU1N XzMyIHwgKDBiMDAwIDw8IGtGdW5jdDNTaGlmdCksCisrICBST19TTExJVyA9IE9QX0lNTV8zMiB8 ICgwYjAwMSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fU1JMSVcgPSBPUF9JTU1fMzIgfCAoMGIx MDEgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIC8vIFJPX1NSQUlXID0gT1BfSU1NXzMyIHwgKDBiMTAx IDw8IGtGdW5jdDNTaGlmdCksIC8vIFNhbWUgYXMgU1JMSVcsIHVzZSBmdW5jNworKyAgUk9fQURE VyA9IE9QXzMyIHwgKDBiMDAwIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDAwMDAwIDw8IGtGdW5j dDdTaGlmdCksCisrICBST19TVUJXID0gT1BfMzIgfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSB8 ICgwYjAxMDAwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX1NMTFcgPSBPUF8zMiB8ICgwYjAw MSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9f U1JMVyA9IE9QXzMyIHwgKDBiMTAxIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDAwMDAwIDw8IGtG dW5jdDdTaGlmdCksCisrICBST19TUkFXID0gT1BfMzIgfCAoMGIxMDEgPDwga0Z1bmN0M1NoaWZ0 KSB8ICgwYjAxMDAwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysKKysgIC8vIFJWMzIvUlY2NCBaaWZl bmNlaSBTdGFuZGFyZCBFeHRlbnNpb24KKysgIFJPX0ZFTkNFX0kgPSBNSVNDX01FTSB8ICgwYjAw MSA8PCBrRnVuY3QzU2hpZnQpLAorKworKyAgLy8gUlYzMi9SVjY0IFppY3NyIFN0YW5kYXJkIEV4 dGVuc2lvbgorKyAgUk9fQ1NSUlcgPSBTWVNURU0gfCAoMGIwMDEgPDwga0Z1bmN0M1NoaWZ0KSwK KysgIFJPX0NTUlJTID0gU1lTVEVNIHwgKDBiMDEwIDw8IGtGdW5jdDNTaGlmdCksCisrICBST19D U1JSQyA9IFNZU1RFTSB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fQ1NSUldJID0g U1lTVEVNIHwgKDBiMTAxIDw8IGtGdW5jdDNTaGlmdCksCisrICBST19DU1JSU0kgPSBTWVNURU0g fCAoMGIxMTAgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX0NTUlJDSSA9IFNZU1RFTSB8ICgwYjEx MSA8PCBrRnVuY3QzU2hpZnQpLAorKworKyAgLy8gUlYzMk0gU3RhbmRhcmQgRXh0ZW5zaW9uCisr ICBST19NVUwgPSBPUCB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMSA8PCBr RnVuY3Q3U2hpZnQpLAorKyAgUk9fTVVMSCA9IE9QIHwgKDBiMDAxIDw8IGtGdW5jdDNTaGlmdCkg fCAoMGIwMDAwMDAxIDw8IGtGdW5jdDdTaGlmdCksCisrICBST19NVUxIU1UgPSBPUCB8ICgwYjAx MCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMSA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9f TVVMSFUgPSBPUCB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMSA8PCBrRnVu Y3Q3U2hpZnQpLAorKyAgUk9fRElWID0gT1AgfCAoMGIxMDAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgw YjAwMDAwMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0RJVlUgPSBPUCB8ICgwYjEwMSA8PCBr RnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAwMSA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fUkVNID0g T1AgfCAoMGIxMTAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDAwMDEgPDwga0Z1bmN0N1NoaWZ0 KSwKKysgIFJPX1JFTVUgPSBPUCB8ICgwYjExMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAw MSA8PCBrRnVuY3Q3U2hpZnQpLAorKworKyAgLy8gUlY2NE0gU3RhbmRhcmQgRXh0ZW5zaW9uIChp biBhZGRpdGlvbiB0byBSVjMyTSkKKysgIFJPX01VTFcgPSBPUF8zMiB8ICgwYjAwMCA8PCBrRnVu Y3QzU2hpZnQpIHwgKDBiMDAwMDAwMSA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fRElWVyA9IE9Q XzMyIHwgKDBiMTAwIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDAwMDAxIDw8IGtGdW5jdDdTaGlm dCksCisrICBST19ESVZVVyA9IE9QXzMyIHwgKDBiMTAxIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIw MDAwMDAxIDw8IGtGdW5jdDdTaGlmdCksCisrICBST19SRU1XID0gT1BfMzIgfCAoMGIxMTAgPDwg a0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDAwMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX1JFTVVX ID0gT1BfMzIgfCAoMGIxMTEgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDAwMDEgPDwga0Z1bmN0 N1NoaWZ0KSwKKysKKysgIC8vIFJWMzJBIFN0YW5kYXJkIEV4dGVuc2lvbgorKyAgUk9fTFJfVyA9 IEFNTyB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMTAgPDwga0Z1bmN0NVNoaWZ0 KSwKKysgIFJPX1NDX1cgPSBBTU8gfCAoMGIwMTAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMDEx IDw8IGtGdW5jdDVTaGlmdCksCisrICBST19BTU9TV0FQX1cgPSBBTU8gfCAoMGIwMTAgPDwga0Z1 bmN0M1NoaWZ0KSB8ICgwYjAwMDAxIDw8IGtGdW5jdDVTaGlmdCksCisrICBST19BTU9BRERfVyA9 IEFNTyB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMDAgPDwga0Z1bmN0NVNoaWZ0 KSwKKysgIFJPX0FNT1hPUl9XID0gQU1PIHwgKDBiMDEwIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIw MDEwMCA8PCBrRnVuY3Q1U2hpZnQpLAorKyAgUk9fQU1PQU5EX1cgPSBBTU8gfCAoMGIwMTAgPDwg a0Z1bmN0M1NoaWZ0KSB8ICgwYjAxMTAwIDw8IGtGdW5jdDVTaGlmdCksCisrICBST19BTU9PUl9X ID0gQU1PIHwgKDBiMDEwIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMTAwMCA8PCBrRnVuY3Q1U2hp ZnQpLAorKyAgUk9fQU1PTUlOX1cgPSBBTU8gfCAoMGIwMTAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgw YjEwMDAwIDw8IGtGdW5jdDVTaGlmdCksCisrICBST19BTU9NQVhfVyA9IEFNTyB8ICgwYjAxMCA8 PCBrRnVuY3QzU2hpZnQpIHwgKDBiMTAxMDAgPDwga0Z1bmN0NVNoaWZ0KSwKKysgIFJPX0FNT01J TlVfVyA9IEFNTyB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMTEwMDAgPDwga0Z1bmN0 NVNoaWZ0KSwKKysgIFJPX0FNT01BWFVfVyA9IEFNTyB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQp IHwgKDBiMTExMDAgPDwga0Z1bmN0NVNoaWZ0KSwKKysKKysgIC8vIFJWNjRBIFN0YW5kYXJkIEV4 dGVuc2lvbiAoaW4gYWRkaXRpb24gdG8gUlYzMkEpCisrICBST19MUl9EID0gQU1PIHwgKDBiMDEx IDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDAxMCA8PCBrRnVuY3Q1U2hpZnQpLAorKyAgUk9fU0Nf RCA9IEFNTyB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAwMTEgPDwga0Z1bmN0NVNo aWZ0KSwKKysgIFJPX0FNT1NXQVBfRCA9IEFNTyB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQpIHwg KDBiMDAwMDEgPDwga0Z1bmN0NVNoaWZ0KSwKKysgIFJPX0FNT0FERF9EID0gQU1PIHwgKDBiMDEx IDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDAwMCA8PCBrRnVuY3Q1U2hpZnQpLAorKyAgUk9fQU1P WE9SX0QgPSBBTU8gfCAoMGIwMTEgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMTAwIDw8IGtGdW5j dDVTaGlmdCksCisrICBST19BTU9BTkRfRCA9IEFNTyB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQp IHwgKDBiMDExMDAgPDwga0Z1bmN0NVNoaWZ0KSwKKysgIFJPX0FNT09SX0QgPSBBTU8gfCAoMGIw MTEgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAxMDAwIDw8IGtGdW5jdDVTaGlmdCksCisrICBST19B TU9NSU5fRCA9IEFNTyB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMTAwMDAgPDwga0Z1 bmN0NVNoaWZ0KSwKKysgIFJPX0FNT01BWF9EID0gQU1PIHwgKDBiMDExIDw8IGtGdW5jdDNTaGlm dCkgfCAoMGIxMDEwMCA8PCBrRnVuY3Q1U2hpZnQpLAorKyAgUk9fQU1PTUlOVV9EID0gQU1PIHwg KDBiMDExIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIxMTAwMCA8PCBrRnVuY3Q1U2hpZnQpLAorKyAg Uk9fQU1PTUFYVV9EID0gQU1PIHwgKDBiMDExIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIxMTEwMCA8 PCBrRnVuY3Q1U2hpZnQpLAorKworKyAgLy8gUlYzMkYgU3RhbmRhcmQgRXh0ZW5zaW9uCisrICBS T19GTFcgPSBMT0FEX0ZQIHwgKDBiMDEwIDw8IGtGdW5jdDNTaGlmdCksCisrICBST19GU1cgPSBT VE9SRV9GUCB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9fRk1BRERfUyA9IE1BREQg fCAoMGIwMCA8PCBrRnVuY3QyU2hpZnQpLAorKyAgUk9fRk1TVUJfUyA9IE1TVUIgfCAoMGIwMCA8 PCBrRnVuY3QyU2hpZnQpLAorKyAgUk9fRk5NU1VCX1MgPSBOTVNVQiB8ICgwYjAwIDw8IGtGdW5j dDJTaGlmdCksCisrICBST19GTk1BRERfUyA9IE5NQUREIHwgKDBiMDAgPDwga0Z1bmN0MlNoaWZ0 KSwKKysgIFJPX0ZBRERfUyA9IE9QX0ZQIHwgKDBiMDAwMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAor KyAgUk9fRlNVQl9TID0gT1BfRlAgfCAoMGIwMDAwMTAwIDw8IGtGdW5jdDdTaGlmdCksCisrICBS T19GTVVMX1MgPSBPUF9GUCB8ICgwYjAwMDEwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZE SVZfUyA9IE9QX0ZQIHwgKDBiMDAwMTEwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fRlNRUlRf UyA9IE9QX0ZQIHwgKDBiMDEwMTEwMCA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMDAgPDwga1Jz MlNoaWZ0KSwKKysgIFJPX0ZTR05KX1MgPSBPUF9GUCB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQp IHwgKDBiMDAxMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fRlNHTkpOX1MgPSBPUF9GUCB8 ICgwYjAwMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAxMDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAor KyAgUk9fRlNRTkpYX1MgPSBPUF9GUCB8ICgwYjAxMCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAx MDAwMCA8PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fRk1JTl9TID0gT1BfRlAgfCAoMGIwMDAgPDwg a0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMTAxMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZNQVhf UyA9IE9QX0ZQIHwgKDBiMDAxIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDEwMTAwIDw8IGtGdW5j dDdTaGlmdCksCisrICBST19GQ1ZUX1dfUyA9IE9QX0ZQIHwgKDBiMTEwMDAwMCA8PCBrRnVuY3Q3 U2hpZnQpIHwgKDBiMDAwMDAgPDwga1JzMlNoaWZ0KSwKKysgIFJPX0ZDVlRfV1VfUyA9IE9QX0ZQ IHwgKDBiMTEwMDAwMCA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMDEgPDwga1JzMlNoaWZ0KSwK KysgIFJPX0ZNViA9IE9QX0ZQIHwgKDBiMTExMDAwMCA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAw IDw8IGtGdW5jdDNTaGlmdCkgfAorKyAgICAgICAgICAgKDBiMDAwMDAgPDwga1JzMlNoaWZ0KSwK KysgIFJPX0ZFUV9TID0gT1BfRlAgfCAoMGIwMTAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjEwMTAw MDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZMVF9TID0gT1BfRlAgfCAoMGIwMDEgPDwga0Z1 bmN0M1NoaWZ0KSB8ICgwYjEwMTAwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZMRV9TID0g T1BfRlAgfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjEwMTAwMDAgPDwga0Z1bmN0N1No aWZ0KSwKKysgIFJPX0ZDTEFTU19TID0gT1BfRlAgfCAoMGIwMDEgPDwga0Z1bmN0M1NoaWZ0KSB8 ICgwYjExMTAwMDAgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZDVlRfU19XID0gT1BfRlAgfCAo MGIxMTAxMDAwIDw8IGtGdW5jdDdTaGlmdCkgfCAoMGIwMDAwMCA8PCBrUnMyU2hpZnQpLAorKyAg Uk9fRkNWVF9TX1dVID0gT1BfRlAgfCAoMGIxMTAxMDAwIDw8IGtGdW5jdDdTaGlmdCkgfCAoMGIw MDAwMSA8PCBrUnMyU2hpZnQpLAorKyAgUk9fRk1WX1dfWCA9IE9QX0ZQIHwgKDBiMDAwIDw8IGtG dW5jdDNTaGlmdCkgfCAoMGIxMTExMDAwIDw8IGtGdW5jdDdTaGlmdCksCisrCisrICAvLyBSVjY0 RiBTdGFuZGFyZCBFeHRlbnNpb24gKGluIGFkZGl0aW9uIHRvIFJWMzJGKQorKyAgUk9fRkNWVF9M X1MgPSBPUF9GUCB8ICgwYjExMDAwMDAgPDwga0Z1bmN0N1NoaWZ0KSB8ICgwYjAwMDEwIDw8IGtS czJTaGlmdCksCisrICBST19GQ1ZUX0xVX1MgPSBPUF9GUCB8ICgwYjExMDAwMDAgPDwga0Z1bmN0 N1NoaWZ0KSB8ICgwYjAwMDExIDw8IGtSczJTaGlmdCksCisrICBST19GQ1ZUX1NfTCA9IE9QX0ZQ IHwgKDBiMTEwMTAwMCA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMTAgPDwga1JzMlNoaWZ0KSwK KysgIFJPX0ZDVlRfU19MVSA9IE9QX0ZQIHwgKDBiMTEwMTAwMCA8PCBrRnVuY3Q3U2hpZnQpIHwg KDBiMDAwMTEgPDwga1JzMlNoaWZ0KSwKKysKKysgIC8vIFJWMzJEIFN0YW5kYXJkIEV4dGVuc2lv bgorKyAgUk9fRkxEID0gTE9BRF9GUCB8ICgwYjAxMSA8PCBrRnVuY3QzU2hpZnQpLAorKyAgUk9f RlNEID0gU1RPUkVfRlAgfCAoMGIwMTEgPDwga0Z1bmN0M1NoaWZ0KSwKKysgIFJPX0ZNQUREX0Qg PSBNQUREIHwgKDBiMDEgPDwga0Z1bmN0MlNoaWZ0KSwKKysgIFJPX0ZNU1VCX0QgPSBNU1VCIHwg KDBiMDEgPDwga0Z1bmN0MlNoaWZ0KSwKKysgIFJPX0ZOTVNVQl9EID0gTk1TVUIgfCAoMGIwMSA8 PCBrRnVuY3QyU2hpZnQpLAorKyAgUk9fRk5NQUREX0QgPSBOTUFERCB8ICgwYjAxIDw8IGtGdW5j dDJTaGlmdCksCisrICBST19GQUREX0QgPSBPUF9GUCB8ICgwYjAwMDAwMDEgPDwga0Z1bmN0N1No aWZ0KSwKKysgIFJPX0ZTVUJfRCA9IE9QX0ZQIHwgKDBiMDAwMDEwMSA8PCBrRnVuY3Q3U2hpZnQp LAorKyAgUk9fRk1VTF9EID0gT1BfRlAgfCAoMGIwMDAxMDAxIDw8IGtGdW5jdDdTaGlmdCksCisr ICBST19GRElWX0QgPSBPUF9GUCB8ICgwYjAwMDExMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJP X0ZTUVJUX0QgPSBPUF9GUCB8ICgwYjAxMDExMDEgPDwga0Z1bmN0N1NoaWZ0KSB8ICgwYjAwMDAw IDw8IGtSczJTaGlmdCksCisrICBST19GU0dOSl9EID0gT1BfRlAgfCAoMGIwMDAgPDwga0Z1bmN0 M1NoaWZ0KSB8ICgwYjAwMTAwMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZTR05KTl9EID0g T1BfRlAgfCAoMGIwMDEgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjAwMTAwMDEgPDwga0Z1bmN0N1No aWZ0KSwKKysgIFJPX0ZTUU5KWF9EID0gT1BfRlAgfCAoMGIwMTAgPDwga0Z1bmN0M1NoaWZ0KSB8 ICgwYjAwMTAwMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZNSU5fRCA9IE9QX0ZQIHwgKDBi MDAwIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIwMDEwMTAxIDw8IGtGdW5jdDdTaGlmdCksCisrICBS T19GTUFYX0QgPSBPUF9GUCB8ICgwYjAwMSA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMDAxMDEwMSA8 PCBrRnVuY3Q3U2hpZnQpLAorKyAgUk9fRkNWVF9TX0QgPSBPUF9GUCB8ICgwYjAxMDAwMDAgPDwg a0Z1bmN0N1NoaWZ0KSB8ICgwYjAwMDAxIDw8IGtSczJTaGlmdCksCisrICBST19GQ1ZUX0RfUyA9 IE9QX0ZQIHwgKDBiMDEwMDAwMSA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMDAgPDwga1JzMlNo aWZ0KSwKKysgIFJPX0ZFUV9EID0gT1BfRlAgfCAoMGIwMTAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgw YjEwMTAwMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZMVF9EID0gT1BfRlAgfCAoMGIwMDEg PDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjEwMTAwMDEgPDwga0Z1bmN0N1NoaWZ0KSwKKysgIFJPX0ZM RV9EID0gT1BfRlAgfCAoMGIwMDAgPDwga0Z1bmN0M1NoaWZ0KSB8ICgwYjEwMTAwMDEgPDwga0Z1 bmN0N1NoaWZ0KSwKKysgIFJPX0ZDTEFTU19EID0gT1BfRlAgfCAoMGIwMDEgPDwga0Z1bmN0M1No aWZ0KSB8ICgwYjExMTAwMDEgPDwga0Z1bmN0N1NoaWZ0KSB8CisrICAgICAgICAgICAgICAgICgw YjAwMDAwIDw8IGtSczJTaGlmdCksCisrICBST19GQ1ZUX1dfRCA9IE9QX0ZQIHwgKDBiMTEwMDAw MSA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMDAgPDwga1JzMlNoaWZ0KSwKKysgIFJPX0ZDVlRf V1VfRCA9IE9QX0ZQIHwgKDBiMTEwMDAwMSA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMDEgPDwg a1JzMlNoaWZ0KSwKKysgIFJPX0ZDVlRfRF9XID0gT1BfRlAgfCAoMGIxMTAxMDAxIDw8IGtGdW5j dDdTaGlmdCkgfCAoMGIwMDAwMCA8PCBrUnMyU2hpZnQpLAorKyAgUk9fRkNWVF9EX1dVID0gT1Bf RlAgfCAoMGIxMTAxMDAxIDw8IGtGdW5jdDdTaGlmdCkgfCAoMGIwMDAwMSA8PCBrUnMyU2hpZnQp LAorKworKyAgLy8gUlY2NEQgU3RhbmRhcmQgRXh0ZW5zaW9uIChpbiBhZGRpdGlvbiB0byBSVjMy RCkKKysgIFJPX0ZDVlRfTF9EID0gT1BfRlAgfCAoMGIxMTAwMDAxIDw8IGtGdW5jdDdTaGlmdCkg fCAoMGIwMDAxMCA8PCBrUnMyU2hpZnQpLAorKyAgUk9fRkNWVF9MVV9EID0gT1BfRlAgfCAoMGIx MTAwMDAxIDw8IGtGdW5jdDdTaGlmdCkgfCAoMGIwMDAxMSA8PCBrUnMyU2hpZnQpLAorKyAgUk9f Rk1WX1hfRCA9IE9QX0ZQIHwgKDBiMDAwIDw8IGtGdW5jdDNTaGlmdCkgfCAoMGIxMTEwMDAxIDw8 IGtGdW5jdDdTaGlmdCkgfAorKyAgICAgICAgICAgICAgICgwYjAwMDAwIDw8IGtSczJTaGlmdCks CisrICBST19GQ1ZUX0RfTCA9IE9QX0ZQIHwgKDBiMTEwMTAwMSA8PCBrRnVuY3Q3U2hpZnQpIHwg KDBiMDAwMTAgPDwga1JzMlNoaWZ0KSwKKysgIFJPX0ZDVlRfRF9MVSA9IE9QX0ZQIHwgKDBiMTEw MTAwMSA8PCBrRnVuY3Q3U2hpZnQpIHwgKDBiMDAwMTEgPDwga1JzMlNoaWZ0KSwKKysgIFJPX0ZN Vl9EX1ggPSBPUF9GUCB8ICgwYjAwMCA8PCBrRnVuY3QzU2hpZnQpIHwgKDBiMTExMTAwMSA8PCBr RnVuY3Q3U2hpZnQpIHwKKysgICAgICAgICAgICAgICAoMGIwMDAwMCA8PCBrUnMyU2hpZnQpLAor K307CisrCisrLy8gLS0tLS0gRW11bGF0ZWQgY29uZGl0aW9ucy4KKysvLyBPbiBSSVNDLVYgd2Ug dXNlIHRoaXMgZW51bSB0byBhYnN0cmFjdCBmcm9tIGNvbmRpdGlvbmFsIGJyYW5jaCBpbnN0cnVj dGlvbnMuCisrLy8gVGhlICdVJyBwcmVmaXggaXMgdXNlZCB0byBzcGVjaWZ5IHVuc2lnbmVkIGNv bXBhcmlzb25zLgorKy8vIE9wcG9zaXRlIGNvbmRpdGlvbnMgbXVzdCBiZSBwYWlyZWQgYXMgb2Rk L2V2ZW4gbnVtYmVycworKy8vIGJlY2F1c2UgJ05lZ2F0ZUNvbmRpdGlvbicgZnVuY3Rpb24gZmxp cHMgTFNCIHRvIG5lZ2F0ZSBjb25kaXRpb24uCisrZW51bSBDb25kaXRpb24geyAgLy8gQW55IHZh bHVlIDwgMCBpcyBjb25zaWRlcmVkIG5vX2NvbmRpdGlvbi4KKysgIGtOb0NvbmRpdGlvbiA9IC0x LAorKyAgb3ZlcmZsb3cgPSAwLAorKyAgbm9fb3ZlcmZsb3cgPSAxLAorKyAgVWxlc3MgPSAyLAor KyAgVWdyZWF0ZXJfZXF1YWwgPSAzLAorKyAgVWxlc3NfZXF1YWwgPSA0LAorKyAgVWdyZWF0ZXIg PSA1LAorKyAgZXF1YWwgPSA2LAorKyAgbm90X2VxdWFsID0gNywgIC8vIFVub3JkZXJlZCBvciBO b3QgRXF1YWwuCisrICBsZXNzID0gOCwKKysgIGdyZWF0ZXJfZXF1YWwgPSA5LAorKyAgbGVzc19l cXVhbCA9IDEwLAorKyAgZ3JlYXRlciA9IDExLAorKyAgY2NfYWx3YXlzID0gMTIsCisrCisrICAv LyBBbGlhc2VzLgorKyAgZXEgPSBlcXVhbCwKKysgIG5lID0gbm90X2VxdWFsLAorKyAgZ2UgPSBn cmVhdGVyX2VxdWFsLAorKyAgbHQgPSBsZXNzLAorKyAgZ3QgPSBncmVhdGVyLAorKyAgbGUgPSBs ZXNzX2VxdWFsLAorKyAgYWwgPSBjY19hbHdheXMsCisrICB1bHQgPSBVbGVzcywKKysgIHVnZSA9 IFVncmVhdGVyX2VxdWFsLAorKyAgdWxlID0gVWxlc3NfZXF1YWwsCisrICB1Z3QgPSBVZ3JlYXRl ciwKKyt9OworKworKy8vIFJldHVybnMgdGhlIGVxdWl2YWxlbnQgb2YgIWNjLgorKy8vIE5lZ2F0 aW9uIG9mIHRoZSBkZWZhdWx0IGtOb0NvbmRpdGlvbiAoLTEpIHJlc3VsdHMgaW4gYSBub24tZGVm YXVsdAorKy8vIG5vX2NvbmRpdGlvbiB2YWx1ZSAoLTIpLiBBcyBsb25nIGFzIHRlc3RzIGZvciBu b19jb25kaXRpb24gY2hlY2sKKysvLyBmb3IgY29uZGl0aW9uIDwgMCwgdGhpcyB3aWxsIHdvcmsg YXMgZXhwZWN0ZWQuCisraW5saW5lIENvbmRpdGlvbiBOZWdhdGVDb25kaXRpb24oQ29uZGl0aW9u IGNjKSB7CisrICBEQ0hFQ0soY2MgIT0gY2NfYWx3YXlzKTsKKysgIHJldHVybiBzdGF0aWNfY2Fz dDxDb25kaXRpb24+KGNjIF4gMSk7CisrfQorKworK2lubGluZSBDb25kaXRpb24gTmVnYXRlRnB1 Q29uZGl0aW9uKENvbmRpdGlvbiBjYykgeworKyAgRENIRUNLKGNjICE9IGNjX2Fsd2F5cyk7Cisr ICBzd2l0Y2ggKGNjKSB7CisrICAgIGNhc2UgdWx0OgorKyAgICAgIHJldHVybiBnZTsKKysgICAg Y2FzZSB1Z3Q6CisrICAgICAgcmV0dXJuIGxlOworKyAgICBjYXNlIHVnZToKKysgICAgICByZXR1 cm4gbHQ7CisrICAgIGNhc2UgdWxlOgorKyAgICAgIHJldHVybiBndDsKKysgICAgY2FzZSBsdDoK KysgICAgICByZXR1cm4gdWdlOworKyAgICBjYXNlIGd0OgorKyAgICAgIHJldHVybiB1bGU7Cisr ICAgIGNhc2UgZ2U6CisrICAgICAgcmV0dXJuIHVsdDsKKysgICAgY2FzZSBsZToKKysgICAgICBy ZXR1cm4gdWd0OworKyAgICBjYXNlIGVxOgorKyAgICAgIHJldHVybiBuZTsKKysgICAgY2FzZSBu ZToKKysgICAgICByZXR1cm4gZXE7CisrICAgIGRlZmF1bHQ6CisrICAgICAgcmV0dXJuIGNjOwor KyAgfQorK30KKysKKysvLyAtLS0tLSBDb3Byb2Nlc3NvciBjb25kaXRpb25zLgorK2VudW0gRlBV Q29uZGl0aW9uIHsKKysgIGtOb0ZQVUNvbmRpdGlvbiA9IC0xLAorKyAgRVEgPSAweDAyLCAgLy8g T3JkZXJlZCBhbmQgRXF1YWwKKysgIE5FID0gMHgwMywgIC8vIFVub3JkZXJlZCBvciBOb3QgRXF1 YWwKKysgIExUID0gMHgwNCwgIC8vIE9yZGVyZWQgYW5kIExlc3MgVGhhbgorKyAgR0UgPSAweDA1 LCAgLy8gT3JkZXJlZCBhbmQgR3JlYXRlciBUaGFuIG9yIEVxdWFsCisrICBMRSA9IDB4MDYsICAv LyBPcmRlcmVkIGFuZCBMZXNzIFRoYW4gb3IgRXF1YWwKKysgIEdUID0gMHgwNywgIC8vIE9yZGVy ZWQgYW5kIEdyZWF0ZXIgVGhhbgorK307CisrCisrZW51bSBDaGVja0ZvckluZXhhY3RDb252ZXJz aW9uIHsKKysgIGtDaGVja0ZvckluZXhhY3RDb252ZXJzaW9uLAorKyAga0RvbnRDaGVja0Zvcklu ZXhhY3RDb252ZXJzaW9uCisrfTsKKysKKytlbnVtIGNsYXNzIE1heE1pbktpbmQgOiBpbnQgeyBr TWluID0gMCwga01heCA9IDEgfTsKKysKKysvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrLy8gUklT Q1YgZmxhZ3MKKysKKytlbnVtIENvbnRyb2xTdGF0dXNSZWcgeworKyAgY3NyX2ZmbGFncyA9IDB4 MDAxLCAgIC8vIEZsb2F0aW5nLVBvaW50IEFjY3J1ZWQgRXhjZXB0aW9ucyAoUlcpCisrICBjc3Jf ZnJtID0gMHgwMDIsICAgICAgLy8gRmxvYXRpbmctUG9pbnQgRHluYW1pYyBSb3VuZGluZyBNb2Rl IChSVykKKysgIGNzcl9mY3NyID0gMHgwMDMsICAgICAvLyBGbG9hdGluZy1Qb2ludCBDb250cm9s IGFuZCBTdGF0dXMgUmVnaXN0ZXIgKFJXKQorKyAgY3NyX2N5Y2xlID0gMHhjMDAsICAgIC8vIEN5 Y2xlIGNvdW50ZXIgZm9yIFJEQ1lDTEUgaW5zdHJ1Y3Rpb24gKFJPKQorKyAgY3NyX3RpbWUgPSAw eGMwMSwgICAgIC8vIFRpbWVyIGZvciBSRFRJTUUgaW5zdHJ1Y3Rpb24gKFJPKQorKyAgY3NyX2lu c3RyZXQgPSAweGMwMiwgIC8vIEluc25zLXJldGlyZWQgY291bnRlciBmb3IgUkRJTlNUUkVUIGlu c3RydWN0aW9uIChSTykKKysgIGNzcl9jeWNsZWggPSAweGM4MCwgICAvLyBVcHBlciAzMiBiaXRz IG9mIGN5Y2xlLCBSVjMySSBvbmx5IChSTykKKysgIGNzcl90aW1laCA9IDB4YzgxLCAgICAvLyBV cHBlciAzMiBiaXRzIG9mIHRpbWUsIFJWMzJJIG9ubHkgKFJPKQorKyAgY3NyX2luc3RyZXRoID0g MHhjODIgIC8vIFVwcGVyIDMyIGJpdHMgb2YgaW5zdHJldCwgUlYzMkkgb25seSAoUk8pCisrfTsK KysKKytlbnVtIEZGbGFnc01hc2sgeworKyAga0ludmFsaWRPcGVyYXRpb24gPSAwYjEwMDAwLCAg Ly8gTlY6IEludmFsaWQKKysgIGtEaXZpZGVCeVplcm8gPSAwYjEwMDAsICAgICAgIC8vIERaOiAg RGl2aWRlIGJ5IFplcm8KKysgIGtPdmVyZmxvdyA9IDBiMTAwLCAgICAgICAgICAgIC8vIE9GOiBP dmVyZmxvdworKyAga1VuZGVyZmxvdyA9IDBiMTAsICAgICAgICAgICAgLy8gVUY6IFVuZGVyZmxv dworKyAga0luZXhhY3QgPSAwYjEgICAgICAgICAgICAgICAgLy8gTlg6ICBJbmV4YWN0CisrfTsK KysKKytlbnVtIFJvdW5kaW5nTW9kZSB7CisrICBSTkUgPSAwYjAwMCwgIC8vIFJvdW5kIHRvIE5l YXJlc3QsIHRpZXMgdG8gRXZlbgorKyAgUlRaID0gMGIwMDEsICAvLyBSb3VuZCB0b3dhcmRzIFpl cm8KKysgIFJETiA9IDBiMDEwLCAgLy8gUm91bmQgRG93biAodG93YXJkcyAtaW5maW5pdHkpCisr ICBSVVAgPSAwYjAxMSwgIC8vIFJvdW5kIFVwICh0b3dhcmRzICtpbmZpbml0eSkKKysgIFJNTSA9 IDBiMTAwLCAgLy8gUm91bmQgdG8gTmVhcmVzdCwgdGllc3QgdG8gTWF4IE1hZ25pdHVkZQorKyAg RFlOID0gMGIxMTEgICAvLyBJbiBpbnN0cnVjdGlvbidzIHJtIGZpZWxkLCBzZWxlY3RzIGR5bmFt aWMgcm91bmRpbmcgbW9kZTsKKysgICAgICAgICAgICAgICAgLy8gSW4gUm91bmRpbmcgTW9kZSBy ZWdpc3RlciwgSW52YWxpZAorK307CisrCisrZW51bSBNZW1vcnlPZGVyaW5nIHsKKysgIFBTSSA9 IDBiMTAwMCwgIC8vIFBJIG9yIFNJCisrICBQU08gPSAwYjAxMDAsICAvLyBQTyBvciBTTworKyAg UFNSID0gMGIwMDEwLCAgLy8gUFIgb3IgU1IKKysgIFBTVyA9IDBiMDAwMSwgIC8vIFBXIG9yIFNX CisrICBQU0lPUlcgPSBQU0kgfCBQU08gfCBQU1IgfCBQU1cKKyt9OworKworK2VudW0gRkNsYXNz RmxhZyB7CisrICBrTmVnYXRpdmVJbmZpbml0eSA9IDEsCisrICBrTmVnYXRpdmVOb3JtYWxOdW1i ZXIgPSAxIDw8IDEsCisrICBrTmVnYXRpdmVTdWJub3JtYWxOdW1iZXIgPSAxIDw8IDIsCisrICBr TmVnYXRpdmVaZXJvID0gMSA8PCAzLAorKyAga1Bvc2l0aXZlWmVybyA9IDEgPDwgNCwKKysgIGtQ b3NpdGl2ZVN1Ym5vcm1hbE51bWJlciA9IDEgPDwgNSwKKysgIGtQb3NpdGl2ZU5vcm1hbE51bWJl ciA9IDEgPDwgNiwKKysgIGtQb3NpdGl2ZUluZmluaXR5ID0gMSA8PCA3LAorKyAga1NpZ25hbGlu Z05hTiA9IDEgPDwgOCwKKysgIGtRdWlldE5hTiA9IDEgPDwgOQorK307CisrCisrLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysvLyBIaW50cy4KKysKKysvLyBCcmFuY2ggaGludHMgYXJlIG5vdCB1 c2VkIG9uIFJJU0MtVi4gIFRoZXkgYXJlIGRlZmluZWQgc28gdGhhdCB0aGV5IGNhbgorKy8vIGFw cGVhciBpbiBzaGFyZWQgZnVuY3Rpb24gc2lnbmF0dXJlcywgYnV0IHdpbGwgYmUgaWdub3JlZCBp biBSSVNDLVYKKysvLyBpbXBsZW1lbnRhdGlvbnMuCisrZW51bSBIaW50IHsgbm9faGludCA9IDAg fTsKKysKKytpbmxpbmUgSGludCBOZWdhdGVIaW50KEhpbnQgaGludCkgeyByZXR1cm4gbm9faGlu dDsgfQorKworKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrLy8gU3BlY2lmaWMgaW5zdHJ1Y3Rp b25zLCBjb25zdGFudHMsIGFuZCBtYXNrcy4KKysvLyBUaGVzZSBjb25zdGFudHMgYXJlIGRlY2xh cmVkIGluIGFzc2VtYmxlci1yaXNjdjY0LmNjLCBhcyB0aGV5IHVzZSBuYW1lZAorKy8vIHJlZ2lz dGVycyBhbmQgb3RoZXIgY29uc3RhbnRzLgorKworKy8vIEFuIEVDQUxMIGluc3RydWN0aW9uLCB1 c2VkIGZvciByZWRpcmVjdGVkIHJlYWwgdGltZSBjYWxsCisrY29uc3QgSW5zdHIgcnRDYWxsUmVk aXJJbnN0ciA9IFNZU1RFTTsgIC8vIEFsbCBvdGhlciBiaXRzIGFyZSAwcyAoaS5lLiwgZWNhbGwp CisrLy8gQW4gRUJyZWFrIGluc3RydWN0aW9uLCB1c2VkIGZvciBkZWJ1Z2dpbmcgYW5kIHNlbWkt aG9zdGluZworK2NvbnN0IEluc3RyIGtCcmVha0luc3RyID0gU1lTVEVNIHwgMSA8PCBrSW1tMTJT aGlmdDsgIC8vIGVicmVhaworKworK2NvbnN0ZXhwciB1aW50OF90IGtJbnN0clNpemUgPSA0Owor K2NvbnN0ZXhwciB1aW50OF90IGtJbnN0clNpemVMb2cyID0gMjsKKysKKytjbGFzcyBJbnN0cnVj dGlvbkJhc2UgeworKyBwdWJsaWM6CisrICBlbnVtIHsKKysgICAgLy8gT24gUklTQy1WLCBQQyBj YW5ub3QgYWN0dWFsbHkgYmUgZGlyZWN0bHkgYWNjZXNzZWQuIFdlIGJlaGF2ZSBhcyBpZiBQQwor KyAgICAvLyB3YXMgYWx3YXlzIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBpbnN0cnVjdGlvbiBi ZWluZyBleGVjdXRlZC4KKysgICAga1BDUmVhZE9mZnNldCA9IDAKKysgIH07CisrCisrICAvLyBJ bnN0cnVjdGlvbiB0eXBlLgorKyAgZW51bSBUeXBlIHsKKysgICAga1JUeXBlLAorKyAgICBrUjRU eXBlLCAgLy8gU3BlY2lhbCBSNCBmb3IgUSBleHRlbnNpb24KKysgICAga0lUeXBlLAorKyAgICBr U1R5cGUsCisrICAgIGtCVHlwZSwKKysgICAga1VUeXBlLAorKyAgICBrSlR5cGUsCisrICAgIGtV bnN1cHBvcnRlZCA9IC0xCisrICB9OworKworKyAgLy8gR2V0IHRoZSByYXcgaW5zdHJ1Y3Rpb24g Yml0cy4KKysgIGlubGluZSBJbnN0ciBJbnN0cnVjdGlvbkJpdHMoKSBjb25zdCB7CisrICAgIHJl dHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBJbnN0cio+KHRoaXMpOworKyAgfQorKworKyAg Ly8gU2V0IHRoZSByYXcgaW5zdHJ1Y3Rpb24gYml0cyB0byB2YWx1ZS4KKysgIGlubGluZSB2b2lk IFNldEluc3RydWN0aW9uQml0cyhJbnN0ciB2YWx1ZSkgeworKyAgICAqcmVpbnRlcnByZXRfY2Fz dDxJbnN0cio+KHRoaXMpID0gdmFsdWU7CisrICB9CisrCisrICAvLyBSZWFkIG9uZSBwYXJ0aWN1 bGFyIGJpdCBvdXQgb2YgdGhlIGluc3RydWN0aW9uIGJpdHMuCisrICBpbmxpbmUgaW50IEJpdChp bnQgbnIpIGNvbnN0IHsgcmV0dXJuIChJbnN0cnVjdGlvbkJpdHMoKSA+PiBucikgJiAxOyB9Cisr CisrICAvLyBSZWFkIGEgYml0IGZpZWxkIG91dCBvZiB0aGUgaW5zdHJ1Y3Rpb24gYml0cy4KKysg IGlubGluZSBpbnQgQml0cyhpbnQgaGksIGludCBsbykgY29uc3QgeworKyAgICByZXR1cm4gKElu c3RydWN0aW9uQml0cygpID4+IGxvKSAmICgoMlUgPDwgKGhpIC0gbG8pKSAtIDEpOworKyAgfQor KworKyAgLy8gQWNjZXNzb3JzIGZvciB0aGUgZGlmZmVyZW50IG5hbWVkIGZpZWxkcyB1c2VkIGlu IHRoZSBSSVNDLVYgZW5jb2RpbmcuCisrICBpbmxpbmUgT3Bjb2RlIEJhc2VPcGNvZGVWYWx1ZSgp IGNvbnN0IHsKKysgICAgcmV0dXJuIHN0YXRpY19jYXN0PE9wY29kZT4oCisrICAgICAgICBCaXRz KGtCYXNlT3Bjb2RlU2hpZnQgKyBrQmFzZU9wY29kZUJpdHMgLSAxLCBrQmFzZU9wY29kZVNoaWZ0 KSk7CisrICB9CisrCisrICAvLyBSZXR1cm4gdGhlIGZpZWxkcyBhdCB0aGVpciBvcmlnaW5hbCBw bGFjZSBpbiB0aGUgaW5zdHJ1Y3Rpb24gZW5jb2RpbmcuCisrICBpbmxpbmUgT3Bjb2RlIEJhc2VP cGNvZGVGaWVsZFJhdygpIGNvbnN0IHsKKysgICAgcmV0dXJuIHN0YXRpY19jYXN0PE9wY29kZT4o SW5zdHJ1Y3Rpb25CaXRzKCkgJiBrQmFzZU9wY29kZU1hc2spOworKyAgfQorKworKyAgLy8gU2Fm ZSB0byBjYWxsIHdpdGhpbiBSLXR5cGUgaW5zdHJ1Y3Rpb25zCisrICBpbmxpbmUgaW50IEZ1bmN0 N0ZpZWxkUmF3KCkgY29uc3QgeyByZXR1cm4gSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrRnVuY3Q3TWFz azsgfQorKworKyAgLy8gU2FmZSB0byBjYWxsIHdpdGhpbiBSLSwgSS0sIFMtLCBvciBCLXR5cGUg aW5zdHJ1Y3Rpb25zCisrICBpbmxpbmUgaW50IEZ1bmN0M0ZpZWxkUmF3KCkgY29uc3QgeyByZXR1 cm4gSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrRnVuY3QzTWFzazsgfQorKworKyAgLy8gU2FmZSB0byBj YWxsIHdpdGhpbiBSLSwgSS0sIFMtLCBvciBCLXR5cGUgaW5zdHJ1Y3Rpb25zCisrICBpbmxpbmUg aW50IFJzMUZpZWxkUmF3Tm9Bc3NlcnQoKSBjb25zdCB7CisrICAgIHJldHVybiBJbnN0cnVjdGlv bkJpdHMoKSAmIGtSczFGaWVsZE1hc2s7CisrICB9CisrCisrICAvLyBTYWZlIHRvIGNhbGwgd2l0 aGluIFItLCBTLSwgb3IgQi10eXBlIGluc3RydWN0aW9ucworKyAgaW5saW5lIGludCBSczJGaWVs ZFJhd05vQXNzZXJ0KCkgY29uc3QgeworKyAgICByZXR1cm4gSW5zdHJ1Y3Rpb25CaXRzKCkgJiBr UnMyRmllbGRNYXNrOworKyAgfQorKworKyAgLy8gU2FmZSB0byBjYWxsIHdpdGhpbiBSNC10eXBl IGluc3RydWN0aW9ucworKyAgaW5saW5lIGludCBSczNGaWVsZFJhd05vQXNzZXJ0KCkgY29uc3Qg eworKyAgICByZXR1cm4gSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrUnMzRmllbGRNYXNrOworKyAgfQor KworKyAgaW5saW5lIGludDMyX3QgSVR5cGVCaXRzKCkgY29uc3QgeyByZXR1cm4gSW5zdHJ1Y3Rp b25CaXRzKCkgJiBrSVR5cGVNYXNrOyB9CisrCisrICAvLyBHZXQgdGhlIGVuY29kaW5nIHR5cGUg b2YgdGhlIGluc3RydWN0aW9uLgorKyAgaW5saW5lIFR5cGUgSW5zdHJ1Y3Rpb25UeXBlKCkgY29u c3Q7CisrCisrIHByb3RlY3RlZDoKKysgIEluc3RydWN0aW9uQmFzZSgpIHt9CisrfTsKKysKKyt0 ZW1wbGF0ZSA8Y2xhc3MgVD4KKytjbGFzcyBJbnN0cnVjdGlvbkdldHRlcnMgOiBwdWJsaWMgVCB7 CisrIHB1YmxpYzoKKysgIGlubGluZSBpbnQgQmFzZU9wY29kZSgpIGNvbnN0IHsKKysgICAgcmV0 dXJuIHRoaXMtPkluc3RydWN0aW9uQml0cygpICYga0Jhc2VPcGNvZGVNYXNrOworKyAgfQorKwor KyAgaW5saW5lIGludCBSczFWYWx1ZSgpIGNvbnN0IHsKKysgICAgRENIRUNLKHRoaXMtPkluc3Ry dWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a1JUeXBlIHx8CisrICAgICAgICAgICB0 aGlzLT5JbnN0cnVjdGlvblR5cGUoKSA9PSBJbnN0cnVjdGlvbkJhc2U6OmtSNFR5cGUgfHwKKysg ICAgICAgICAgIHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a0lU eXBlIHx8CisrICAgICAgICAgICB0aGlzLT5JbnN0cnVjdGlvblR5cGUoKSA9PSBJbnN0cnVjdGlv bkJhc2U6OmtTVHlwZSB8fAorKyAgICAgICAgICAgdGhpcy0+SW5zdHJ1Y3Rpb25UeXBlKCkgPT0g SW5zdHJ1Y3Rpb25CYXNlOjprQlR5cGUpOworKyAgICByZXR1cm4gdGhpcy0+Qml0cyhrUnMxU2hp ZnQgKyBrUnMxQml0cyAtIDEsIGtSczFTaGlmdCk7CisrICB9CisrCisrICBpbmxpbmUgaW50IFJz MlZhbHVlKCkgY29uc3QgeworKyAgICBEQ0hFQ0sodGhpcy0+SW5zdHJ1Y3Rpb25UeXBlKCkgPT0g SW5zdHJ1Y3Rpb25CYXNlOjprUlR5cGUgfHwKKysgICAgICAgICAgIHRoaXMtPkluc3RydWN0aW9u VHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a1I0VHlwZSB8fAorKyAgICAgICAgICAgdGhpcy0+ SW5zdHJ1Y3Rpb25UeXBlKCkgPT0gSW5zdHJ1Y3Rpb25CYXNlOjprU1R5cGUgfHwKKysgICAgICAg ICAgIHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a0JUeXBlKTsK KysgICAgcmV0dXJuIHRoaXMtPkJpdHMoa1JzMlNoaWZ0ICsga1JzMkJpdHMgLSAxLCBrUnMyU2hp ZnQpOworKyAgfQorKworKyAgaW5saW5lIGludCBSczNWYWx1ZSgpIGNvbnN0IHsKKysgICAgRENI RUNLKHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a1I0VHlwZSk7 CisrICAgIHJldHVybiB0aGlzLT5CaXRzKGtSczNTaGlmdCArIGtSczNCaXRzIC0gMSwga1JzM1No aWZ0KTsKKysgIH0KKysKKysgIGlubGluZSBpbnQgUmRWYWx1ZSgpIGNvbnN0IHsKKysgICAgRENI RUNLKHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a1JUeXBlIHx8 CisrICAgICAgICAgICB0aGlzLT5JbnN0cnVjdGlvblR5cGUoKSA9PSBJbnN0cnVjdGlvbkJhc2U6 OmtSNFR5cGUgfHwKKysgICAgICAgICAgIHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3Ry dWN0aW9uQmFzZTo6a0lUeXBlIHx8CisrICAgICAgICAgICB0aGlzLT5JbnN0cnVjdGlvblR5cGUo KSA9PSBJbnN0cnVjdGlvbkJhc2U6OmtVVHlwZSB8fAorKyAgICAgICAgICAgdGhpcy0+SW5zdHJ1 Y3Rpb25UeXBlKCkgPT0gSW5zdHJ1Y3Rpb25CYXNlOjprSlR5cGUpOworKyAgICByZXR1cm4gdGhp cy0+Qml0cyhrUmRTaGlmdCArIGtSZEJpdHMgLSAxLCBrUmRTaGlmdCk7CisrICB9CisrCisrICBp bmxpbmUgaW50IEZ1bmN0N1ZhbHVlKCkgY29uc3QgeworKyAgICBEQ0hFQ0sodGhpcy0+SW5zdHJ1 Y3Rpb25UeXBlKCkgPT0gSW5zdHJ1Y3Rpb25CYXNlOjprUlR5cGUpOworKyAgICByZXR1cm4gdGhp cy0+Qml0cyhrRnVuY3Q3U2hpZnQgKyBrRnVuY3Q3Qml0cyAtIDEsIGtGdW5jdDdTaGlmdCk7Cisr ICB9CisrCisrICBpbmxpbmUgaW50IEZ1bmN0M1ZhbHVlKCkgY29uc3QgeworKyAgICBEQ0hFQ0so dGhpcy0+SW5zdHJ1Y3Rpb25UeXBlKCkgPT0gSW5zdHJ1Y3Rpb25CYXNlOjprUlR5cGUgfHwKKysg ICAgICAgICAgIHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a0lU eXBlIHx8CisrICAgICAgICAgICB0aGlzLT5JbnN0cnVjdGlvblR5cGUoKSA9PSBJbnN0cnVjdGlv bkJhc2U6OmtTVHlwZSB8fAorKyAgICAgICAgICAgdGhpcy0+SW5zdHJ1Y3Rpb25UeXBlKCkgPT0g SW5zdHJ1Y3Rpb25CYXNlOjprQlR5cGUpOworKyAgICByZXR1cm4gdGhpcy0+Qml0cyhrRnVuY3Qz U2hpZnQgKyBrRnVuY3QzQml0cyAtIDEsIGtGdW5jdDNTaGlmdCk7CisrICB9CisrCisrICBpbmxp bmUgaW50IEZ1bmN0NVZhbHVlKCkgY29uc3QgeworKyAgICBEQ0hFQ0sodGhpcy0+SW5zdHJ1Y3Rp b25UeXBlKCkgPT0gSW5zdHJ1Y3Rpb25CYXNlOjprUlR5cGUgJiYKKysgICAgICAgICAgIHRoaXMt PkJhc2VPcGNvZGUoKSA9PSBPUF9GUCk7CisrICAgIHJldHVybiB0aGlzLT5CaXRzKGtGdW5jdDVT aGlmdCArIGtGdW5jdDVCaXRzIC0gMSwga0Z1bmN0NVNoaWZ0KTsKKysgIH0KKysKKysgIGlubGlu ZSBpbnQgQ3NyVmFsdWUoKSBjb25zdCB7CisrICAgIERDSEVDSyh0aGlzLT5JbnN0cnVjdGlvblR5 cGUoKSA9PSBJbnN0cnVjdGlvbkJhc2U6OmtJVHlwZSAmJgorKyAgICAgICAgICAgdGhpcy0+QmFz ZU9wY29kZSgpID09IFNZU1RFTSk7CisrICAgIHJldHVybiAodGhpcy0+Qml0cyhrQ3NyU2hpZnQg KyBrQ3NyQml0cyAtIDEsIGtDc3JTaGlmdCkpOworKyAgfQorKworKyAgaW5saW5lIGludCBSb3Vu ZE1vZGUoKSBjb25zdCB7CisrICAgIERDSEVDSygodGhpcy0+SW5zdHJ1Y3Rpb25UeXBlKCkgPT0g SW5zdHJ1Y3Rpb25CYXNlOjprUlR5cGUgfHwKKysgICAgICAgICAgICB0aGlzLT5JbnN0cnVjdGlv blR5cGUoKSA9PSBJbnN0cnVjdGlvbkJhc2U6OmtSNFR5cGUpICYmCisrICAgICAgICAgICB0aGlz LT5CYXNlT3Bjb2RlKCkgPT0gT1BfRlApOworKyAgICByZXR1cm4gdGhpcy0+Qml0cyhrRnVuY3Qz U2hpZnQgKyBrRnVuY3QzQml0cyAtIDEsIGtGdW5jdDNTaGlmdCk7CisrICB9CisrCisrICBpbmxp bmUgaW50IE1lbW9yeU9yZGVyKGJvb2wgaXNfcHJlZCkgY29uc3QgeworKyAgICBEQ0hFQ0soKHRo aXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a0lUeXBlICYmCisrICAg ICAgICAgICAgdGhpcy0+QmFzZU9wY29kZSgpID09IE1JU0NfTUVNKSk7CisrICAgIGlmIChpc19w cmVkKSB7CisrICAgICAgcmV0dXJuIHRoaXMtPkJpdHMoa1ByZWRPcmRlclNoaWZ0ICsga01lbU9y ZGVyQml0cyAtIDEsIGtQcmVkT3JkZXJTaGlmdCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgcmV0 dXJuIHRoaXMtPkJpdHMoa1N1Y2NPcmRlclNoaWZ0ICsga01lbU9yZGVyQml0cyAtIDEsIGtTdWNj T3JkZXJTaGlmdCk7CisrICAgIH0KKysgIH0KKysKKysgIGlubGluZSBpbnQgSW1tMTJWYWx1ZSgp IGNvbnN0IHsKKysgICAgRENIRUNLKHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3RydWN0 aW9uQmFzZTo6a0lUeXBlKTsKKysgICAgaW50IFZhbHVlID0gdGhpcy0+Qml0cyhrSW1tMTJTaGlm dCArIGtJbW0xMkJpdHMgLSAxLCBrSW1tMTJTaGlmdCk7CisrICAgIHJldHVybiBWYWx1ZSA8PCAy MCA+PiAyMDsKKysgIH0KKysKKysgIGlubGluZSBpbnQzMl90IEltbTEyU0V4dFZhbHVlKCkgY29u c3QgeworKyAgICBpbnQzMl90IFZhbHVlID0gdGhpcy0+SW1tMTJWYWx1ZSgpIDw8IDIwID4+IDIw OworKyAgICByZXR1cm4gVmFsdWU7CisrICB9CisrCisrICBpbmxpbmUgaW50IEJyYW5jaE9mZnNl dCgpIGNvbnN0IHsKKysgICAgRENIRUNLKHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3Ry dWN0aW9uQmFzZTo6a0JUeXBlKTsKKysgICAgLy8gfCBpbW1bMTJ8MTA6NV0gfCByczIgfCByczEg fCBmdW5jdDMgfCBpbW1bNDoxfDExXSB8IG9wY29kZSB8CisrICAgIC8vICAzMSAgICAgICAgICAy NSAgICAgICAgICAgICAgICAgICAgICAxMSAgICAgICAgICA3CisrICAgIHVpbnQzMl90IEJpdHMg PSB0aGlzLT5JbnN0cnVjdGlvbkJpdHMoKTsKKysgICAgaW50MTZfdCBpbW0xMyA9ICgoQml0cyAm IDB4ZjAwKSA+PiA3KSB8ICgoQml0cyAmIDB4N2UwMDAwMDApID4+IDIwKSB8CisrICAgICAgICAg ICAgICAgICAgICAoKEJpdHMgJiAweDgwKSA8PCA0KSB8ICgoQml0cyAmIDB4ODAwMDAwMDApID4+ IDE5KTsKKysgICAgcmV0dXJuIGltbTEzIDw8IDE5ID4+IDE5OworKyAgfQorKworKyAgaW5saW5l IGludCBTdG9yZU9mZnNldCgpIGNvbnN0IHsKKysgICAgRENIRUNLKHRoaXMtPkluc3RydWN0aW9u VHlwZSgpID09IEluc3RydWN0aW9uQmFzZTo6a1NUeXBlKTsKKysgICAgLy8gfCBpbW1bMTE6NV0g fCByczIgfCByczEgfCBmdW5jdDMgfCBpbW1bNDowXSB8IG9wY29kZSB8CisrICAgIC8vICAzMSAg ICAgICAyNSAgICAgICAgICAgICAgICAgICAgICAxMSAgICAgICA3CisrICAgIHVpbnQzMl90IEJp dHMgPSB0aGlzLT5JbnN0cnVjdGlvbkJpdHMoKTsKKysgICAgaW50MTZfdCBpbW0xMiA9ICgoQml0 cyAmIDB4ZjgwKSA+PiA3KSB8ICgoQml0cyAmIDB4ZmUwMDAwMDApID4+IDIwKTsKKysgICAgcmV0 dXJuIGltbTEyIDw8IDIwID4+IDIwOworKyAgfQorKworKyAgaW5saW5lIGludCBJbW0yMFVWYWx1 ZSgpIGNvbnN0IHsKKysgICAgRENIRUNLKHRoaXMtPkluc3RydWN0aW9uVHlwZSgpID09IEluc3Ry dWN0aW9uQmFzZTo6a1VUeXBlKTsKKysgICAgLy8gfCBpbW1bMzE6MTJdIHwgcmQgfCBvcGNvZGUg fAorKyAgICAvLyAgMzEgICAgICAgIDEyCisrICAgIGludDMyX3QgQml0cyA9IHRoaXMtPkluc3Ry dWN0aW9uQml0cygpOworKyAgICByZXR1cm4gQml0cyA+PiAxMjsKKysgIH0KKysKKysgIGlubGlu ZSBpbnQgSW1tMjBKVmFsdWUoKSBjb25zdCB7CisrICAgIERDSEVDSyh0aGlzLT5JbnN0cnVjdGlv blR5cGUoKSA9PSBJbnN0cnVjdGlvbkJhc2U6OmtKVHlwZSk7CisrICAgIC8vIHwgaW1tWzIwfDEw OjF8MTF8MTk6MTJdIHwgcmQgfCBvcGNvZGUgfAorKyAgICAvLyAgMzEgICAgICAgICAgICAgICAg ICAgMTIKKysgICAgdWludDMyX3QgQml0cyA9IHRoaXMtPkluc3RydWN0aW9uQml0cygpOworKyAg ICBpbnQzMl90IGltbTIwID0gKChCaXRzICYgMHg3ZmUwMDAwMCkgPj4gMjApIHwgKChCaXRzICYg MHgxMDAwMDApID4+IDkpIHwKKysgICAgICAgICAgICAgICAgICAgIChCaXRzICYgMHhmZjAwMCkg fCAoKEJpdHMgJiAweDgwMDAwMDAwKSA+PiAxMSk7CisrICAgIHJldHVybiBpbW0yMCA8PCAxMSA+ PiAxMTsKKysgIH0KKysKKysgIGlubGluZSBib29sIElzQXJpdGhTaGlmdCgpIGNvbnN0IHsKKysg ICAgLy8gVmFsaWQgb25seSBmb3IgcmlnaHQgc2hpZnQgb3BlcmF0aW9ucworKyAgICBEQ0hFQ0so KHRoaXMtPkJhc2VPcGNvZGUoKSA9PSBPUCB8fCB0aGlzLT5CYXNlT3Bjb2RlKCkgPT0gT1BfMzIg fHwKKysgICAgICAgICAgICB0aGlzLT5CYXNlT3Bjb2RlKCkgPT0gT1BfSU1NIHx8IHRoaXMtPkJh c2VPcGNvZGUoKSA9PSBPUF9JTU1fMzIpICYmCisrICAgICAgICAgICB0aGlzLT5GdW5jdDNWYWx1 ZSgpID09IDBiMTAxKTsKKysgICAgcmV0dXJuIHRoaXMtPkluc3RydWN0aW9uQml0cygpICYgMHg0 MDAwMDAwMDsKKysgIH0KKysKKysgIGlubGluZSBpbnQgU2hhbXQoKSBjb25zdCB7CisrICAgIC8v IFZhbGlkIG9ubHkgZm9yIHNoaWZ0IGluc3RydWN0aW9ucyAoU0xMSSwgU1JMSSwgU1JBSSkKKysg ICAgRENIRUNLKCh0aGlzLT5JbnN0cnVjdGlvbkJpdHMoKSAmIGtCYXNlT3Bjb2RlTWFzaykgPT0g T1BfSU1NICYmCisrICAgICAgICAgICAodGhpcy0+RnVuY3QzVmFsdWUoKSA9PSAwYjAwMSB8fCB0 aGlzLT5GdW5jdDNWYWx1ZSgpID09IDBiMTAxKSk7CisrICAgIC8vIHwgMEEwMDAwIHwgc2hhbXQg fCByczEgfCBmdW5jdDMgfCByZCB8IG9wY29kZSB8CisrICAgIC8vICAzMSAgICAgICAyNSAgICAy MAorKyAgICByZXR1cm4gdGhpcy0+Qml0cyhrSW1tMTJTaGlmdCArIDUsIGtJbW0xMlNoaWZ0KTsK KysgIH0KKysKKysgIGlubGluZSBpbnQgU2hhbXQzMigpIGNvbnN0IHsKKysgICAgLy8gVmFsaWQg b25seSBmb3Igc2hpZnQgaW5zdHJ1Y3Rpb25zIChTTExJVywgU1JMSVcsIFNSQUlXKQorKyAgICBE Q0hFQ0soKHRoaXMtPkluc3RydWN0aW9uQml0cygpICYga0Jhc2VPcGNvZGVNYXNrKSA9PSBPUF9J TU1fMzIgJiYKKysgICAgICAgICAgICh0aGlzLT5GdW5jdDNWYWx1ZSgpID09IDBiMDAxIHx8IHRo aXMtPkZ1bmN0M1ZhbHVlKCkgPT0gMGIxMDEpKTsKKysgICAgLy8gfCAwQTAwMDAwIHwgc2hhbXQg fCByczEgfCBmdW5jdDMgfCByZCB8IG9wY29kZSB8CisrICAgIC8vICAzMSAgICAgICAgMjQgICAy MAorKyAgICByZXR1cm4gdGhpcy0+Qml0cyhrSW1tMTJTaGlmdCArIDQsIGtJbW0xMlNoaWZ0KTsK KysgIH0KKysKKysgIGlubGluZSBib29sIEFxVmFsdWUoKSBjb25zdCB7IHJldHVybiB0aGlzLT5C aXRzKGtBcVNoaWZ0LCBrQXFTaGlmdCk7IH0KKysKKysgIGlubGluZSBib29sIFJsVmFsdWUoKSBj b25zdCB7IHJldHVybiB0aGlzLT5CaXRzKGtSbFNoaWZ0LCBrUmxTaGlmdCk7IH0KKysKKysgIC8v IFNheSBpZiB0aGUgaW5zdHJ1Y3Rpb24gaXMgYSBicmVhayBvciBhIHRyYXAuCisrICBib29sIElz VHJhcCgpIGNvbnN0OworK307CisrCisrY2xhc3MgSW5zdHJ1Y3Rpb24gOiBwdWJsaWMgSW5zdHJ1 Y3Rpb25HZXR0ZXJzPEluc3RydWN0aW9uQmFzZT4geworKyBwdWJsaWM6CisrICAvLyBJbnN0cnVj dGlvbnMgYXJlIHJlYWQgb2Ygb3V0IGEgY29kZSBzdHJlYW0uIFRoZSBvbmx5IHdheSB0byBnZXQg YQorKyAgLy8gcmVmZXJlbmNlIHRvIGFuIGluc3RydWN0aW9uIGlzIHRvIGNvbnZlcnQgYSBwb2lu dGVyLiBUaGVyZSBpcyBubyB3YXkKKysgIC8vIHRvIGFsbG9jYXRlIG9yIGNyZWF0ZSBpbnN0YW5j ZXMgb2YgY2xhc3MgSW5zdHJ1Y3Rpb24uCisrICAvLyBVc2UgdGhlIEF0KHBjKSBmdW5jdGlvbiB0 byBjcmVhdGUgcmVmZXJlbmNlcyB0byBJbnN0cnVjdGlvbi4KKysgIHN0YXRpYyBJbnN0cnVjdGlv biogQXQoYnl0ZSogcGMpIHsKKysgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SW5zdHJ1Y3Rp b24qPihwYyk7CisrICB9CisrCisrIHByaXZhdGU6CisrICAvLyBXZSBuZWVkIHRvIHByZXZlbnQg dGhlIGNyZWF0aW9uIG9mIGluc3RhbmNlcyBvZiBjbGFzcyBJbnN0cnVjdGlvbi4KKysgIERJU0FM TE9XX0lNUExJQ0lUX0NPTlNUUlVDVE9SUyhJbnN0cnVjdGlvbik7CisrfTsKKysKKysvLyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKy8vIFJJU0MtViBhc3NlbWJseSB2YXJpb3VzIGNvbnN0YW50cy4K KysKKysvLyBDL0MrKyBhcmd1bWVudCBzbG90cyBzaXplLgorK2NvbnN0IGludCBrQ0FyZ1Nsb3RD b3VudCA9IDA7CisrCisrLy8gVE9ETyhwbGluZCk6IGJlbG93IHNob3VsZCBiZSBiYXNlZCBvbiBr UG9pbnRlclNpemUKKysvLyBUT0RPKHBsaW5kKTogZmluZCBhbGwgdXNhZ2VzIGFuZCByZW1vdmUg dGhlIG5lZWRsZXNzIGluc3RydWN0aW9ucyBmb3IgbjY0LgorK2NvbnN0IGludCBrQ0FyZ3NTbG90 c1NpemUgPSBrQ0FyZ1Nsb3RDb3VudCAqIGtJbnN0clNpemUgKiAyOworKworK2NvbnN0IGludCBr SW52YWxpZFN0YWNrT2Zmc2V0ID0gLTE7CisrY29uc3QgaW50IGtCcmFuY2hSZXR1cm5PZmZzZXQg PSAyICoga0luc3RyU2l6ZTsKKysKKytzdGF0aWMgY29uc3QgaW50IGtOZWdPZmZzZXQgPSAweDAw MDA4MDAwOworKworK0luc3RydWN0aW9uQmFzZTo6VHlwZSBJbnN0cnVjdGlvbkJhc2U6Okluc3Ry dWN0aW9uVHlwZSgpIGNvbnN0IHsKKysgIC8vIFJJU0NWIHJvdXRpbmUKKysgIHN3aXRjaCAoSW5z dHJ1Y3Rpb25CaXRzKCkgJiBrQmFzZU9wY29kZU1hc2spIHsKKysgICAgY2FzZSBMT0FEOgorKyAg ICAgIHJldHVybiBrSVR5cGU7CisrICAgIGNhc2UgTE9BRF9GUDoKKysgICAgICByZXR1cm4ga0lU eXBlOworKyAgICBjYXNlIE1JU0NfTUVNOgorKyAgICAgIHJldHVybiBrSVR5cGU7CisrICAgIGNh c2UgT1BfSU1NOgorKyAgICAgIHJldHVybiBrSVR5cGU7CisrICAgIGNhc2UgQVVJUEM6CisrICAg ICAgcmV0dXJuIGtVVHlwZTsKKysgICAgY2FzZSBPUF9JTU1fMzI6CisrICAgICAgcmV0dXJuIGtJ VHlwZTsKKysgICAgY2FzZSBTVE9SRToKKysgICAgICByZXR1cm4ga1NUeXBlOworKyAgICBjYXNl IFNUT1JFX0ZQOgorKyAgICAgIHJldHVybiBrU1R5cGU7CisrICAgIGNhc2UgQU1POgorKyAgICAg IHJldHVybiBrUlR5cGU7CisrICAgIGNhc2UgT1A6CisrICAgICAgcmV0dXJuIGtSVHlwZTsKKysg ICAgY2FzZSBMVUk6CisrICAgICAgcmV0dXJuIGtVVHlwZTsKKysgICAgY2FzZSBPUF8zMjoKKysg ICAgICByZXR1cm4ga1JUeXBlOworKyAgICBjYXNlIE1BREQ6CisrICAgIGNhc2UgTVNVQjoKKysg ICAgY2FzZSBOTVNVQjoKKysgICAgY2FzZSBOTUFERDoKKysgICAgICByZXR1cm4ga1I0VHlwZTsK KysgICAgY2FzZSBPUF9GUDoKKysgICAgICByZXR1cm4ga1JUeXBlOworKyAgICBjYXNlIEJSQU5D SDoKKysgICAgICByZXR1cm4ga0JUeXBlOworKyAgICBjYXNlIEpBTFI6CisrICAgICAgcmV0dXJu IGtJVHlwZTsKKysgICAgY2FzZSBKQUw6CisrICAgICAgcmV0dXJuIGtKVHlwZTsKKysgICAgY2Fz ZSBTWVNURU06CisrICAgICAgcmV0dXJuIGtJVHlwZTsKKysgIH0KKysgIHJldHVybiBrVW5zdXBw b3J0ZWQ7CisrfQorKworKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrLy8gSW5zdHJ1Y3Rpb25z LgorKworK3RlbXBsYXRlIDxjbGFzcyBQPgorK2Jvb2wgSW5zdHJ1Y3Rpb25HZXR0ZXJzPFA+OjpJ c1RyYXAoKSBjb25zdCB7CisrICByZXR1cm4gKHRoaXMtPkluc3RydWN0aW9uQml0cygpID09IGtC cmVha0luc3RyKTsKKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8gbmFt ZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBWOF9DT0RFR0VOX1JJU0NWX0NPTlNUQU5UU19SSVND Vl9IXworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9jcHUtcmlzY3Y2NC5jYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIC9kZXYvbnVsbAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUu My9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9jcHUtcmlzY3Y2 NC5jYworQEAgLTAsMCArMSwyOCBAQAorKy8vIENvcHlyaWdodCAyMDEyIHRoZSBWOCBwcm9qZWN0 IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNv ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZv dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrLy8gQ1BVIHNwZWNpZmljIGNvZGUgZm9yIGFy bSBpbmRlcGVuZGVudCBvZiBPUyBnb2VzIGhlcmUuCisrCisrI2luY2x1ZGUgPHN5cy9zeXNjYWxs Lmg+CisrI2luY2x1ZGUgPHVuaXN0ZC5oPgorKworKyNpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0 CisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL2NwdS1mZWF0dXJlcy5oIgorKworK25hbWVzcGFj ZSB2OCB7CisrbmFtZXNwYWNlIGludGVybmFsIHsKKysKKyt2b2lkIENwdUZlYXR1cmVzOjpGbHVz aElDYWNoZSh2b2lkKiBzdGFydCwgc2l6ZV90IHNpemUpIHsKKysjaWYgIWRlZmluZWQoVVNFX1NJ TVVMQVRPUikKKysgIC8vIEZJWE1FKFJJU0NWKTogYnVpbHRpbl9jbGVhcl9jYWNoZSBkb2Vzbid0 IHdvcmsgeWV0LCBzbyB1c2UgYGZlbmNlLmlgIGZvciBub3cKKysgIC8vIF9fYnVpbHRpbl9fX2Ns ZWFyX2NhY2hlKHN0YXJ0LCAoY2hhciAqKXN0YXJ0ICsgc2l6ZSk7CisrICBhc20gdm9sYXRpbGUo ImZlbmNlLmkiIDo6OiAibWVtb3J5Iik7CisrI2VuZGlmICAvLyAhVVNFX1NJTVVMQVRPUi4KKyt9 CisrCisrfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CisrCisr I2VuZGlmICAvLyBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CitJbmRleDogcXR3ZWJlbmdpbmUtZXZl cnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9y aXNjdjY0L2ludGVyZmFjZS1kZXNjcmlwdG9ycy1yaXNjdjY0LmNjCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g L2Rldi9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9yaXNjdjY0L2ludGVyZmFjZS1kZXNjcmlwdG9y cy1yaXNjdjY0LmNjCitAQCAtMCwwICsxLDM0OCBAQAorKy8vIENvcHlyaWdodCAyMDEyIHRoZSBW OCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMg c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi ZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmIFY4X1RBUkdFVF9BUkNI X1JJU0NWNjQKKysKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vaW50ZXJmYWNlLWRlc2NyaXB0b3Jz LmgiCisrI2luY2x1ZGUgInNyYy9leGVjdXRpb24vZnJhbWVzLmgiCisrCisrbmFtZXNwYWNlIHY4 IHsKKytuYW1lc3BhY2UgaW50ZXJuYWwgeworKworK2NvbnN0IFJlZ2lzdGVyIENhbGxJbnRlcmZh Y2VEZXNjcmlwdG9yOjpDb250ZXh0UmVnaXN0ZXIoKSB7IHJldHVybiBjcDsgfQorKworK3ZvaWQg Q2FsbEludGVyZmFjZURlc2NyaXB0b3I6OkRlZmF1bHRJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZp YygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhLCBpbnQgcmVnaXN0ZXJf cGFyYW1ldGVyX2NvdW50KSB7CisrICBjb25zdCBSZWdpc3RlciBkZWZhdWx0X3N0dWJfcmVnaXN0 ZXJzW10gPSB7YTAsIGExLCBhMiwgYTMsIGE0fTsKKysgIENIRUNLX0xFKHN0YXRpY19jYXN0PHNp emVfdD4ocmVnaXN0ZXJfcGFyYW1ldGVyX2NvdW50KSwKKysgICAgICAgICAgIGFycmF5c2l6ZShk ZWZhdWx0X3N0dWJfcmVnaXN0ZXJzKSk7CisrICBkYXRhLT5Jbml0aWFsaXplUGxhdGZvcm1TcGVj aWZpYyhyZWdpc3Rlcl9wYXJhbWV0ZXJfY291bnQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZWZhdWx0X3N0dWJfcmVnaXN0ZXJzKTsKKyt9CisrCisrdm9pZCBXYXNtSTMy QXRvbWljV2FpdDMyRGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoCisrICAg IENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkgeworKyAgY29uc3QgUmVnaXN0ZXIg ZGVmYXVsdF9zdHViX3JlZ2lzdGVyc1tdID0ge2EwLCBhMSwgYTIsIGEzfTsKKysgIENIRUNLX0VR KHN0YXRpY19jYXN0PHNpemVfdD4oa1BhcmFtZXRlckNvdW50KSwKKysgICAgICAgICAgIGFycmF5 c2l6ZShkZWZhdWx0X3N0dWJfcmVnaXN0ZXJzKSk7CisrICBkYXRhLT5Jbml0aWFsaXplUGxhdGZv cm1TcGVjaWZpYyhrUGFyYW1ldGVyQ291bnQsIGRlZmF1bHRfc3R1Yl9yZWdpc3RlcnMpOworK30K KysKKyt2b2lkIFdhc21JNjRBdG9taWNXYWl0MzJEZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZv cm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7Cisr ICBjb25zdCBSZWdpc3RlciBkZWZhdWx0X3N0dWJfcmVnaXN0ZXJzW10gPSB7YTAsIGExLCBhMiwg YTMsIGE0fTsKKysgIENIRUNLX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oa1BhcmFtZXRlckNvdW50 IC0ga1N0YWNrQXJndW1lbnRzQ291bnQpLAorKyAgICAgICAgICAgYXJyYXlzaXplKGRlZmF1bHRf c3R1Yl9yZWdpc3RlcnMpKTsKKysgIGRhdGEtPkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGtQ YXJhbWV0ZXJDb3VudCAtIGtTdGFja0FyZ3VtZW50c0NvdW50LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGVmYXVsdF9zdHViX3JlZ2lzdGVycyk7CisrfQorKworK3ZvaWQg UmVjb3JkV3JpdGVEZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAg Q2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICBjb25zdCBSZWdpc3RlciBk ZWZhdWx0X3N0dWJfcmVnaXN0ZXJzW10gPSB7YTAsIGExLCBhMiwgYTMsIGtSZXR1cm5SZWdpc3Rl cjB9OworKworKyAgZGF0YS0+UmVzdHJpY3RBbGxvY2F0YWJsZVJlZ2lzdGVycyhkZWZhdWx0X3N0 dWJfcmVnaXN0ZXJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJh eXNpemUoZGVmYXVsdF9zdHViX3JlZ2lzdGVycykpOworKworKyAgQ0hFQ0tfTEUoc3RhdGljX2Nh c3Q8c2l6ZV90PihrUGFyYW1ldGVyQ291bnQpLAorKyAgICAgICAgICAgYXJyYXlzaXplKGRlZmF1 bHRfc3R1Yl9yZWdpc3RlcnMpKTsKKysgIGRhdGEtPkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmlj KGtQYXJhbWV0ZXJDb3VudCwgZGVmYXVsdF9zdHViX3JlZ2lzdGVycyk7CisrfQorKworK3ZvaWQg RXBoZW1lcm9uS2V5QmFycmllckRlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmlj KAorKyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIGNvbnN0IFJl Z2lzdGVyIGRlZmF1bHRfc3R1Yl9yZWdpc3RlcnNbXSA9IHthMCwgYTEsIGEyLCBhMywga1JldHVy blJlZ2lzdGVyMH07CisrCisrICBkYXRhLT5SZXN0cmljdEFsbG9jYXRhYmxlUmVnaXN0ZXJzKGRl ZmF1bHRfc3R1Yl9yZWdpc3RlcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFycmF5c2l6ZShkZWZhdWx0X3N0dWJfcmVnaXN0ZXJzKSk7CisrCisrICBDSEVDS19MRShz dGF0aWNfY2FzdDxzaXplX3Q+KGtQYXJhbWV0ZXJDb3VudCksCisrICAgICAgICAgICBhcnJheXNp emUoZGVmYXVsdF9zdHViX3JlZ2lzdGVycykpOworKyAgZGF0YS0+SW5pdGlhbGl6ZVBsYXRmb3Jt U3BlY2lmaWMoa1BhcmFtZXRlckNvdW50LCBkZWZhdWx0X3N0dWJfcmVnaXN0ZXJzKTsKKyt9Cisr CisrY29uc3QgUmVnaXN0ZXIgTG9hZERlc2NyaXB0b3I6OlJlY2VpdmVyUmVnaXN0ZXIoKSB7IHJl dHVybiBhMTsgfQorK2NvbnN0IFJlZ2lzdGVyIExvYWREZXNjcmlwdG9yOjpOYW1lUmVnaXN0ZXIo KSB7IHJldHVybiBhMjsgfQorK2NvbnN0IFJlZ2lzdGVyIExvYWREZXNjcmlwdG9yOjpTbG90UmVn aXN0ZXIoKSB7IHJldHVybiBhMDsgfQorKworK2NvbnN0IFJlZ2lzdGVyIExvYWRXaXRoVmVjdG9y RGVzY3JpcHRvcjo6VmVjdG9yUmVnaXN0ZXIoKSB7IHJldHVybiBhMzsgfQorKworK2NvbnN0IFJl Z2lzdGVyCisrTG9hZFdpdGhSZWNlaXZlckFuZFZlY3RvckRlc2NyaXB0b3I6Okxvb2t1cFN0YXJ0 T2JqZWN0UmVnaXN0ZXIoKSB7CisrICByZXR1cm4gYTQ7CisrfQorKworK2NvbnN0IFJlZ2lzdGVy IFN0b3JlRGVzY3JpcHRvcjo6UmVjZWl2ZXJSZWdpc3RlcigpIHsgcmV0dXJuIGExOyB9CisrY29u c3QgUmVnaXN0ZXIgU3RvcmVEZXNjcmlwdG9yOjpOYW1lUmVnaXN0ZXIoKSB7IHJldHVybiBhMjsg fQorK2NvbnN0IFJlZ2lzdGVyIFN0b3JlRGVzY3JpcHRvcjo6VmFsdWVSZWdpc3RlcigpIHsgcmV0 dXJuIGEwOyB9CisrY29uc3QgUmVnaXN0ZXIgU3RvcmVEZXNjcmlwdG9yOjpTbG90UmVnaXN0ZXIo KSB7IHJldHVybiBhNDsgfQorKworK2NvbnN0IFJlZ2lzdGVyIFN0b3JlV2l0aFZlY3RvckRlc2Ny aXB0b3I6OlZlY3RvclJlZ2lzdGVyKCkgeyByZXR1cm4gYTM7IH0KKysKKytjb25zdCBSZWdpc3Rl ciBTdG9yZVRyYW5zaXRpb25EZXNjcmlwdG9yOjpTbG90UmVnaXN0ZXIoKSB7IHJldHVybiBhNDsg fQorK2NvbnN0IFJlZ2lzdGVyIFN0b3JlVHJhbnNpdGlvbkRlc2NyaXB0b3I6OlZlY3RvclJlZ2lz dGVyKCkgeyByZXR1cm4gYTM7IH0KKytjb25zdCBSZWdpc3RlciBTdG9yZVRyYW5zaXRpb25EZXNj cmlwdG9yOjpNYXBSZWdpc3RlcigpIHsgcmV0dXJuIGE1OyB9CisrCisrY29uc3QgUmVnaXN0ZXIg QXBpR2V0dGVyRGVzY3JpcHRvcjo6SG9sZGVyUmVnaXN0ZXIoKSB7IHJldHVybiBhMDsgfQorK2Nv bnN0IFJlZ2lzdGVyIEFwaUdldHRlckRlc2NyaXB0b3I6OkNhbGxiYWNrUmVnaXN0ZXIoKSB7IHJl dHVybiBhMzsgfQorKworK2NvbnN0IFJlZ2lzdGVyIEdyb3dBcnJheUVsZW1lbnRzRGVzY3JpcHRv cjo6T2JqZWN0UmVnaXN0ZXIoKSB7IHJldHVybiBhMDsgfQorK2NvbnN0IFJlZ2lzdGVyIEdyb3dB cnJheUVsZW1lbnRzRGVzY3JpcHRvcjo6S2V5UmVnaXN0ZXIoKSB7IHJldHVybiBhMzsgfQorKwor Ky8vIHN0YXRpYworK2NvbnN0IFJlZ2lzdGVyIFR5cGVDb252ZXJzaW9uRGVzY3JpcHRvcjo6QXJn dW1lbnRSZWdpc3RlcigpIHsgcmV0dXJuIGEwOyB9CisrCisrdm9pZCBUeXBlb2ZEZXNjcmlwdG9y OjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0 b3JEYXRhKiBkYXRhKSB7CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHthM307CisrICBkYXRh LT5Jbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0 ZXJzKTsKKyt9CisrCisrdm9pZCBDYWxsVHJhbXBvbGluZURlc2NyaXB0b3I6OkluaXRpYWxpemVQ bGF0Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEp IHsKKysgIC8vIGExOiB0YXJnZXQKKysgIC8vIGEwOiBudW1iZXIgb2YgYXJndW1lbnRzCisrICBS ZWdpc3RlciByZWdpc3RlcnNbXSA9IHthMSwgYTB9OworKyAgZGF0YS0+SW5pdGlhbGl6ZVBsYXRm b3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lzdGVycyksIHJlZ2lzdGVycyk7CisrfQorKworK3Zv aWQgQ2FsbFZhcmFyZ3NEZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysg ICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICAvLyBhMCA6IG51bWJl ciBvZiBhcmd1bWVudHMgKG9uIHRoZSBzdGFjaywgbm90IGluY2x1ZGluZyByZWNlaXZlcikKKysg IC8vIGExIDogdGhlIHRhcmdldCB0byBjYWxsCisrICAvLyBhNCA6IGFyZ3VtZW50cyBsaXN0IGxl bmd0aCAodW50YWdnZWQpCisrICAvLyBhMiA6IGFyZ3VtZW50cyBsaXN0IChGaXhlZEFycmF5KQor KyAgUmVnaXN0ZXIgcmVnaXN0ZXJzW10gPSB7YTEsIGEwLCBhNCwgYTJ9OworKyAgZGF0YS0+SW5p dGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lzdGVycyksIHJlZ2lzdGVycyk7 CisrfQorKworK3ZvaWQgQ2FsbEZvcndhcmRWYXJhcmdzRGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBs YXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkg eworKyAgLy8gYTE6IHRoZSB0YXJnZXQgdG8gY2FsbAorKyAgLy8gYTA6IG51bWJlciBvZiBhcmd1 bWVudHMKKysgIC8vIGEyOiBzdGFydCBpbmRleCAodG8gc3VwcG9ydCByZXN0IHBhcmFtZXRlcnMp CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHthMSwgYTAsIGEyfTsKKysgIGRhdGEtPkluaXRp YWxpemVQbGF0Zm9ybVNwZWNpZmljKGFycmF5c2l6ZShyZWdpc3RlcnMpLCByZWdpc3RlcnMpOwor K30KKysKKyt2b2lkIENhbGxGdW5jdGlvblRlbXBsYXRlRGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBs YXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkg eworKyAgLy8gYTEgOiBmdW5jdGlvbiB0ZW1wbGF0ZSBpbmZvCisrICAvLyBhMCA6IG51bWJlciBv ZiBhcmd1bWVudHMgKG9uIHRoZSBzdGFjaywgbm90IGluY2x1ZGluZyByZWNlaXZlcikKKysgIFJl Z2lzdGVyIHJlZ2lzdGVyc1tdID0ge2ExLCBhMH07CisrICBkYXRhLT5Jbml0aWFsaXplUGxhdGZv cm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJzKTsKKyt9CisrCisrdm9p ZCBDYWxsV2l0aFNwcmVhZERlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAor KyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIC8vIGEwIDogbnVt YmVyIG9mIGFyZ3VtZW50cyAob24gdGhlIHN0YWNrLCBub3QgaW5jbHVkaW5nIHJlY2VpdmVyKQor KyAgLy8gYTEgOiB0aGUgdGFyZ2V0IHRvIGNhbGwKKysgIC8vIGEyIDogdGhlIG9iamVjdCB0byBz cHJlYWQKKysgIFJlZ2lzdGVyIHJlZ2lzdGVyc1tdID0ge2ExLCBhMCwgYTJ9OworKyAgZGF0YS0+ SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lzdGVycyksIHJlZ2lzdGVy cyk7CisrfQorKworK3ZvaWQgQ2FsbFdpdGhBcnJheUxpa2VEZXNjcmlwdG9yOjpJbml0aWFsaXpl UGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRh KSB7CisrICAvLyBhMSA6IHRoZSB0YXJnZXQgdG8gY2FsbAorKyAgLy8gYTIgOiB0aGUgYXJndW1l bnRzIGxpc3QKKysgIFJlZ2lzdGVyIHJlZ2lzdGVyc1tdID0ge2ExLCBhMn07CisrICBkYXRhLT5J bml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJz KTsKKyt9CisrCisrdm9pZCBDb25zdHJ1Y3RWYXJhcmdzRGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBs YXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkg eworKyAgLy8gYTAgOiBudW1iZXIgb2YgYXJndW1lbnRzIChvbiB0aGUgc3RhY2ssIG5vdCBpbmNs dWRpbmcgcmVjZWl2ZXIpCisrICAvLyBhMSA6IHRoZSB0YXJnZXQgdG8gY2FsbAorKyAgLy8gYTMg OiB0aGUgbmV3IHRhcmdldAorKyAgLy8gYTQgOiBhcmd1bWVudHMgbGlzdCBsZW5ndGggKHVudGFn Z2VkKQorKyAgLy8gYTIgOiBhcmd1bWVudHMgbGlzdCAoRml4ZWRBcnJheSkKKysgIFJlZ2lzdGVy IHJlZ2lzdGVyc1tdID0ge2ExLCBhMywgYTAsIGE0LCBhMn07CisrICBkYXRhLT5Jbml0aWFsaXpl UGxhdGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJzKTsKKyt9Cisr Cisrdm9pZCBDb25zdHJ1Y3RGb3J3YXJkVmFyYXJnc0Rlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0 Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsK KysgIC8vIGExOiB0aGUgdGFyZ2V0IHRvIGNhbGwKKysgIC8vIGEzOiBuZXcgdGFyZ2V0CisrICAv LyBhMDogbnVtYmVyIG9mIGFyZ3VtZW50cworKyAgLy8gYTI6IHN0YXJ0IGluZGV4ICh0byBzdXBw b3J0IHJlc3QgcGFyYW1ldGVycykKKysgIFJlZ2lzdGVyIHJlZ2lzdGVyc1tdID0ge2ExLCBhMywg YTAsIGEyfTsKKysgIGRhdGEtPkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGFycmF5c2l6ZShy ZWdpc3RlcnMpLCByZWdpc3RlcnMpOworK30KKysKKyt2b2lkIENvbnN0cnVjdFdpdGhTcHJlYWRE ZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFj ZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICAvLyBhMCA6IG51bWJlciBvZiBhcmd1bWVudHMg KG9uIHRoZSBzdGFjaywgbm90IGluY2x1ZGluZyByZWNlaXZlcikKKysgIC8vIGExIDogdGhlIHRh cmdldCB0byBjYWxsCisrICAvLyBhMyA6IHRoZSBuZXcgdGFyZ2V0CisrICAvLyBhMiA6IHRoZSBv YmplY3QgdG8gc3ByZWFkCisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHthMSwgYTMsIGEwLCBh Mn07CisrICBkYXRhLT5Jbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0 ZXJzKSwgcmVnaXN0ZXJzKTsKKyt9CisrCisrdm9pZCBDb25zdHJ1Y3RXaXRoQXJyYXlMaWtlRGVz Y3JpcHRvcjo6SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VE ZXNjcmlwdG9yRGF0YSogZGF0YSkgeworKyAgLy8gYTEgOiB0aGUgdGFyZ2V0IHRvIGNhbGwKKysg IC8vIGEzIDogdGhlIG5ldyB0YXJnZXQKKysgIC8vIGEyIDogdGhlIGFyZ3VtZW50cyBsaXN0Cisr ICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHthMSwgYTMsIGEyfTsKKysgIGRhdGEtPkluaXRpYWxp emVQbGF0Zm9ybVNwZWNpZmljKGFycmF5c2l6ZShyZWdpc3RlcnMpLCByZWdpc3RlcnMpOworK30K KysKKyt2b2lkIENvbnN0cnVjdFN0dWJEZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVj aWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICAvLyBh MTogdGFyZ2V0CisrICAvLyBhMzogbmV3IHRhcmdldAorKyAgLy8gYTA6IG51bWJlciBvZiBhcmd1 bWVudHMKKysgIC8vIGEyOiBhbGxvY2F0aW9uIHNpdGUgb3IgdW5kZWZpbmVkCisrICBSZWdpc3Rl ciByZWdpc3RlcnNbXSA9IHthMSwgYTMsIGEwLCBhMn07CisrICBkYXRhLT5Jbml0aWFsaXplUGxh dGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJzKTsKKyt9CisrCisr dm9pZCBBYm9ydERlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAorKyAgICBD YWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIFJlZ2lzdGVyIHJlZ2lzdGVy c1tdID0ge2EwfTsKKysgIGRhdGEtPkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGFycmF5c2l6 ZShyZWdpc3RlcnMpLCByZWdpc3RlcnMpOworK30KKysKKyt2b2lkIENvbXBhcmVEZXNjcmlwdG9y OjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0 b3JEYXRhKiBkYXRhKSB7CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHthMSwgYTB9OworKyAg ZGF0YS0+SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lzdGVycyksIHJl Z2lzdGVycyk7CisrfQorKworK3ZvaWQgQmluYXJ5T3BEZXNjcmlwdG9yOjpJbml0aWFsaXplUGxh dGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7 CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHthMSwgYTB9OworKyAgZGF0YS0+SW5pdGlhbGl6 ZVBsYXRmb3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lzdGVycyksIHJlZ2lzdGVycyk7CisrfQor KworK3ZvaWQgQXJndW1lbnRzQWRhcHRvckRlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNw ZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIFJl Z2lzdGVyIHJlZ2lzdGVyc1tdID0geworKyAgICAgIGExLCAgLy8gSlNGdW5jdGlvbgorKyAgICAg IGEzLCAgLy8gdGhlIG5ldyB0YXJnZXQKKysgICAgICBhMCwgIC8vIGFjdHVhbCBudW1iZXIgb2Yg YXJndW1lbnRzCisrICAgICAgYTIsICAvLyBleHBlY3RlZCBudW1iZXIgb2YgYXJndW1lbnRzCisr ICB9OworKyAgZGF0YS0+SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lz dGVycyksIHJlZ2lzdGVycyk7CisrfQorKworK3ZvaWQgQXBpQ2FsbGJhY2tEZXNjcmlwdG9yOjpJ bml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JE YXRhKiBkYXRhKSB7CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHsKKysgICAgICBhMSwgIC8v IGtBcGlGdW5jdGlvbkFkZHJlc3MKKysgICAgICBhMiwgIC8vIGtBcmdjCisrICAgICAgYTMsICAv LyBrQ2FsbERhdGEKKysgICAgICBhMCwgIC8vIGtIb2xkZXIKKysgIH07CisrICBkYXRhLT5Jbml0 aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJzKTsK Kyt9CisrCisrdm9pZCBJbnRlcnByZXRlckRpc3BhdGNoRGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBs YXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkg eworKyAgUmVnaXN0ZXIgcmVnaXN0ZXJzW10gPSB7CisrICAgICAga0ludGVycHJldGVyQWNjdW11 bGF0b3JSZWdpc3Rlciwga0ludGVycHJldGVyQnl0ZWNvZGVPZmZzZXRSZWdpc3RlciwKKysgICAg ICBrSW50ZXJwcmV0ZXJCeXRlY29kZUFycmF5UmVnaXN0ZXIsIGtJbnRlcnByZXRlckRpc3BhdGNo VGFibGVSZWdpc3Rlcn07CisrICBkYXRhLT5Jbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJh eXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJzKTsKKyt9CisrCisrdm9pZCBJbnRlcnByZXRlclB1 c2hBcmdzVGhlbkNhbGxEZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysg ICAgQ2FsbEludGVyZmFjZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICBSZWdpc3RlciByZWdp c3RlcnNbXSA9IHsKKysgICAgICBhMCwgIC8vIGFyZ3VtZW50IGNvdW50IChub3QgaW5jbHVkaW5n IHJlY2VpdmVyKQorKyAgICAgIGEyLCAgLy8gYWRkcmVzcyBvZiBmaXJzdCBhcmd1bWVudAorKyAg ICAgIGExICAgLy8gdGhlIHRhcmdldCBjYWxsYWJsZSB0byBiZSBjYWxsCisrICB9OworKyAgZGF0 YS0+SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoYXJyYXlzaXplKHJlZ2lzdGVycyksIHJlZ2lz dGVycyk7CisrfQorKworK3ZvaWQgSW50ZXJwcmV0ZXJQdXNoQXJnc1RoZW5Db25zdHJ1Y3REZXNj cmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURl c2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHsKKysgICAg ICBhMCwgIC8vIGFyZ3VtZW50IGNvdW50IChub3QgaW5jbHVkaW5nIHJlY2VpdmVyKQorKyAgICAg IGE0LCAgLy8gYWRkcmVzcyBvZiB0aGUgZmlyc3QgYXJndW1lbnQKKysgICAgICBhMSwgIC8vIGNv bnN0cnVjdG9yIHRvIGNhbGwKKysgICAgICBhMywgIC8vIG5ldyB0YXJnZXQKKysgICAgICBhMiwg IC8vIGFsbG9jYXRpb24gc2l0ZSBmZWVkYmFjayBpZiBhdmFpbGFibGUsIHVuZGVmaW5lZCBvdGhl cndpc2UKKysgIH07CisrICBkYXRhLT5Jbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJheXNp emUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJzKTsKKyt9CisrCisrdm9pZCBSZXN1bWVHZW5lcmF0b3JE ZXNjcmlwdG9yOjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFj ZURlc2NyaXB0b3JEYXRhKiBkYXRhKSB7CisrICBSZWdpc3RlciByZWdpc3RlcnNbXSA9IHsKKysg ICAgICBhMCwgIC8vIHRoZSB2YWx1ZSB0byBwYXNzIHRvIHRoZSBnZW5lcmF0b3IKKysgICAgICBh MSAgIC8vIHRoZSBKU0dlbmVyYXRvck9iamVjdCB0byByZXN1bWUKKysgIH07CisrICBkYXRhLT5J bml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhhcnJheXNpemUocmVnaXN0ZXJzKSwgcmVnaXN0ZXJz KTsKKyt9CisrCisrdm9pZCBGcmFtZURyb3BwZXJUcmFtcG9saW5lRGVzY3JpcHRvcjo6SW5pdGlh bGl6ZVBsYXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSog ZGF0YSkgeworKyAgUmVnaXN0ZXIgcmVnaXN0ZXJzW10gPSB7CisrICAgICAgYTEsICAvLyBsb2Fk ZWQgbmV3IEZQCisrICB9OworKyAgZGF0YS0+SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoYXJy YXlzaXplKHJlZ2lzdGVycyksIHJlZ2lzdGVycyk7CisrfQorKworK3ZvaWQgUnVuTWljcm90YXNr c0VudHJ5RGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJ bnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkgeworKyAgUmVnaXN0ZXIgcmVnaXN0ZXJzW10g PSB7YTAsIGExfTsKKysgIGRhdGEtPkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGFycmF5c2l6 ZShyZWdpc3RlcnMpLCByZWdpc3RlcnMpOworK30KKysKKyt2b2lkIEJpbmFyeU9wX1dpdGhGZWVk YmFja0Rlc2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50 ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIC8vIFRPRE8odjg6ODg4OCk6IEltcGxl bWVudCBvbiB0aGlzIHBsYXRmb3JtLgorKyAgRGVmYXVsdEluaXRpYWxpemVQbGF0Zm9ybVNwZWNp ZmljKGRhdGEsIDQpOworK30KKysKKyt2b2lkIENhbGxUcmFtcG9saW5lX1dpdGhGZWVkYmFja0Rl c2NyaXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNl RGVzY3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIC8vIFRPRE8odjg6ODg4OCk6IEltcGxlbWVudCBv biB0aGlzIHBsYXRmb3JtLgorKyAgRGVmYXVsdEluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGRh dGEsIDQpOworK30KKysKKyt2b2lkIENhbGxXaXRoQXJyYXlMaWtlX1dpdGhGZWVkYmFja0Rlc2Ny aXB0b3I6OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNlRGVz Y3JpcHRvckRhdGEqIGRhdGEpIHsKKysgIC8vIFRPRE8odjg6ODg4OCk6IEltcGxlbWVudCBvbiB0 aGlzIHBsYXRmb3JtLgorKyAgRGVmYXVsdEluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGRhdGEs IDQpOworK30KKysKKyt2b2lkIENhbGxXaXRoU3ByZWFkX1dpdGhGZWVkYmFja0Rlc2NyaXB0b3I6 OkluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRv ckRhdGEqIGRhdGEpIHsKKysgIC8vIFRPRE8odjg6ODg4OCk6IEltcGxlbWVudCBvbiB0aGlzIHBs YXRmb3JtLgorKyAgRGVmYXVsdEluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGRhdGEsIDQpOwor K30KKysKKyt2b2lkIENvbnN0cnVjdFdpdGhBcnJheUxpa2VfV2l0aEZlZWRiYWNrRGVzY3JpcHRv cjo6SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlw dG9yRGF0YSogZGF0YSkgeworKyAgLy8gVE9ETyh2ODo4ODg4KTogSW1wbGVtZW50IG9uIHRoaXMg cGxhdGZvcm0uCisrICBEZWZhdWx0SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lmaWMoZGF0YSwgNCk7 CisrfQorKworK3ZvaWQgQ29uc3RydWN0V2l0aFNwcmVhZF9XaXRoRmVlZGJhY2tEZXNjcmlwdG9y OjpJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYygKKysgICAgQ2FsbEludGVyZmFjZURlc2NyaXB0 b3JEYXRhKiBkYXRhKSB7CisrICAvLyBUT0RPKHY4Ojg4ODgpOiBJbXBsZW1lbnQgb24gdGhpcyBw bGF0Zm9ybS4KKysgIERlZmF1bHRJbml0aWFsaXplUGxhdGZvcm1TcGVjaWZpYyhkYXRhLCA0KTsK Kyt9CisrCisrdm9pZCBDb21wYXJlX1dpdGhGZWVkYmFja0Rlc2NyaXB0b3I6OkluaXRpYWxpemVQ bGF0Zm9ybVNwZWNpZmljKAorKyAgICBDYWxsSW50ZXJmYWNlRGVzY3JpcHRvckRhdGEqIGRhdGEp IHsKKysgIC8vIFRPRE8odjg6ODg4OCk6IEltcGxlbWVudCBvbiB0aGlzIHBsYXRmb3JtLgorKyAg RGVmYXVsdEluaXRpYWxpemVQbGF0Zm9ybVNwZWNpZmljKGRhdGEsIDQpOworK30KKysKKyt2b2lk IFVuYXJ5T3BfV2l0aEZlZWRiYWNrRGVzY3JpcHRvcjo6SW5pdGlhbGl6ZVBsYXRmb3JtU3BlY2lm aWMoCisrICAgIENhbGxJbnRlcmZhY2VEZXNjcmlwdG9yRGF0YSogZGF0YSkgeworKyAgLy8gVE9E Tyh2ODo4ODg4KTogSW1wbGVtZW50IG9uIHRoaXMgcGxhdGZvcm0uCisrICBEZWZhdWx0SW5pdGlh bGl6ZVBsYXRmb3JtU3BlY2lmaWMoZGF0YSwgMyk7CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBp bnRlcm5hbAorK30gIC8vIG5hbWVzcGFjZSB2OAorKworKyNlbmRpZiAgLy8gVjhfVEFSR0VUX0FS Q0hfUklTQ1Y2NAorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9tYWNyby1hc3NlbWJsZXIt cmlzY3Y2NC5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIHF0d2ViZW5naW5lLWV2 ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4v cmlzY3Y2NC9tYWNyby1hc3NlbWJsZXItcmlzY3Y2NC5jYworQEAgLTAsMCArMSw0MzM2IEBACisr Ly8gQ29weXJpZ2h0IDIwMTIgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K KysKKysjaW5jbHVkZSA8bGltaXRzLmg+ICAvLyBGb3IgTE9OR19NSU4sIExPTkdfTUFYLgorKwor KyNpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CisrCisrI2luY2x1ZGUgInNyYy9iYXNlL2JpdHMu aCIKKysjaW5jbHVkZSAic3JjL2Jhc2UvZGl2aXNpb24tYnktY29uc3RhbnQuaCIKKysjaW5jbHVk ZSAic3JjL2NvZGVnZW4vYXNzZW1ibGVyLWlubC5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9j YWxsYWJsZS5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9jb2RlLWZhY3RvcnkuaCIKKysjaW5j bHVkZSAic3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmgiCisrI2luY2x1ZGUg InNyYy9jb2RlZ2VuL21hY3JvLWFzc2VtYmxlci5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9y ZWdpc3Rlci1jb25maWd1cmF0aW9uLmgiCisrI2luY2x1ZGUgInNyYy9kZWJ1Zy9kZWJ1Zy5oIgor KyNpbmNsdWRlICJzcmMvZXhlY3V0aW9uL2ZyYW1lcy1pbmwuaCIKKysjaW5jbHVkZSAic3JjL2hl YXAvbWVtb3J5LWNodW5rLmgiCisrI2luY2x1ZGUgInNyYy9pbml0L2Jvb3RzdHJhcHBlci5oIgor KyNpbmNsdWRlICJzcmMvbG9nZ2luZy9jb3VudGVycy5oIgorKyNpbmNsdWRlICJzcmMvb2JqZWN0 cy9oZWFwLW51bWJlci5oIgorKyNpbmNsdWRlICJzcmMvcnVudGltZS9ydW50aW1lLmgiCisrI2lu Y2x1ZGUgInNyYy9zbmFwc2hvdC9lbWJlZGRlZC9lbWJlZGRlZC1kYXRhLmgiCisrI2luY2x1ZGUg InNyYy9zbmFwc2hvdC9zbmFwc2hvdC5oIgorKyNpbmNsdWRlICJzcmMvd2FzbS93YXNtLWNvZGUt bWFuYWdlci5oIgorKworKy8vIFNhdGlzZnkgY3BwbGludCBjaGVjaywgYnV0IGRvbid0IGluY2x1 ZGUgcGxhdGZvcm0tc3BlY2lmaWMgaGVhZGVyLiBJdCBpcworKy8vIGluY2x1ZGVkIHJlY3Vyc2l2 ZWx5IHZpYSBtYWNyby1hc3NlbWJsZXIuaC4KKysjaWYgMAorKyNpbmNsdWRlICJzcmMvY29kZWdl bi9yaXNjdjY0L21hY3JvLWFzc2VtYmxlci1yaXNjdjY0LmgiCisrI2VuZGlmCisrCisrbmFtZXNw YWNlIHY4IHsKKytuYW1lc3BhY2UgaW50ZXJuYWwgeworKworK3N0YXRpYyBpbmxpbmUgYm9vbCBJ c1plcm8oY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBy ZXR1cm4gcnQucm0oKSA9PSB6ZXJvX3JlZzsKKysgIH0gZWxzZSB7CisrICAgIHJldHVybiBydC5p bW1lZGlhdGUoKSA9PSAwOworKyAgfQorK30KKysKKytpbnQgVHVyYm9Bc3NlbWJsZXI6OlJlcXVp cmVkU3RhY2tTaXplRm9yQ2FsbGVyU2F2ZWQoU2F2ZUZQUmVnc01vZGUgZnBfbW9kZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg ZXhjbHVzaW9uMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgZXhjbHVzaW9uMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgZXhjbHVzaW9uMykgY29uc3Qgewor KyAgaW50IGJ5dGVzID0gMDsKKysgIFJlZ0xpc3QgZXhjbHVzaW9ucyA9IDA7CisrICBpZiAoZXhj bHVzaW9uMSAhPSBub19yZWcpIHsKKysgICAgZXhjbHVzaW9ucyB8PSBleGNsdXNpb24xLmJpdCgp OworKyAgICBpZiAoZXhjbHVzaW9uMiAhPSBub19yZWcpIHsKKysgICAgICBleGNsdXNpb25zIHw9 IGV4Y2x1c2lvbjIuYml0KCk7CisrICAgICAgaWYgKGV4Y2x1c2lvbjMgIT0gbm9fcmVnKSB7Cisr ICAgICAgICBleGNsdXNpb25zIHw9IGV4Y2x1c2lvbjMuYml0KCk7CisrICAgICAgfQorKyAgICB9 CisrICB9CisrCisrICBSZWdMaXN0IGxpc3QgPSBrSlNDYWxsZXJTYXZlZCAmIH5leGNsdXNpb25z OworKyAgYnl0ZXMgKz0gTnVtUmVncyhsaXN0KSAqIGtQb2ludGVyU2l6ZTsKKysKKysgIGlmIChm cF9tb2RlID09IGtTYXZlRlBSZWdzKSB7CisrICAgIGJ5dGVzICs9IE51bVJlZ3Moa0NhbGxlclNh dmVkRlBVKSAqIGtEb3VibGVTaXplOworKyAgfQorKworKyAgcmV0dXJuIGJ5dGVzOworK30KKysK KytpbnQgVHVyYm9Bc3NlbWJsZXI6OlB1c2hDYWxsZXJTYXZlZChTYXZlRlBSZWdzTW9kZSBmcF9t b2RlLCBSZWdpc3RlciBleGNsdXNpb24xLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIGV4Y2x1c2lvbjIsIFJlZ2lzdGVyIGV4Y2x1c2lvbjMpIHsKKysgIGlu dCBieXRlcyA9IDA7CisrICBSZWdMaXN0IGV4Y2x1c2lvbnMgPSAwOworKyAgaWYgKGV4Y2x1c2lv bjEgIT0gbm9fcmVnKSB7CisrICAgIGV4Y2x1c2lvbnMgfD0gZXhjbHVzaW9uMS5iaXQoKTsKKysg ICAgaWYgKGV4Y2x1c2lvbjIgIT0gbm9fcmVnKSB7CisrICAgICAgZXhjbHVzaW9ucyB8PSBleGNs dXNpb24yLmJpdCgpOworKyAgICAgIGlmIChleGNsdXNpb24zICE9IG5vX3JlZykgeworKyAgICAg ICAgZXhjbHVzaW9ucyB8PSBleGNsdXNpb24zLmJpdCgpOworKyAgICAgIH0KKysgICAgfQorKyAg fQorKworKyAgUmVnTGlzdCBsaXN0ID0ga0pTQ2FsbGVyU2F2ZWQgJiB+ZXhjbHVzaW9uczsKKysg IE11bHRpUHVzaChsaXN0KTsKKysgIGJ5dGVzICs9IE51bVJlZ3MobGlzdCkgKiBrUG9pbnRlclNp emU7CisrCisrICBpZiAoZnBfbW9kZSA9PSBrU2F2ZUZQUmVncykgeworKyAgICBNdWx0aVB1c2hG UFUoa0NhbGxlclNhdmVkRlBVKTsKKysgICAgYnl0ZXMgKz0gTnVtUmVncyhrQ2FsbGVyU2F2ZWRG UFUpICoga0RvdWJsZVNpemU7CisrICB9CisrCisrICByZXR1cm4gYnl0ZXM7CisrfQorKworK2lu dCBUdXJib0Fzc2VtYmxlcjo6UG9wQ2FsbGVyU2F2ZWQoU2F2ZUZQUmVnc01vZGUgZnBfbW9kZSwg UmVnaXN0ZXIgZXhjbHVzaW9uMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIGV4Y2x1c2lvbjIsIFJlZ2lzdGVyIGV4Y2x1c2lvbjMpIHsKKysgIGludCBieXRl cyA9IDA7CisrICBpZiAoZnBfbW9kZSA9PSBrU2F2ZUZQUmVncykgeworKyAgICBNdWx0aVBvcEZQ VShrQ2FsbGVyU2F2ZWRGUFUpOworKyAgICBieXRlcyArPSBOdW1SZWdzKGtDYWxsZXJTYXZlZEZQ VSkgKiBrRG91YmxlU2l6ZTsKKysgIH0KKysKKysgIFJlZ0xpc3QgZXhjbHVzaW9ucyA9IDA7Cisr ICBpZiAoZXhjbHVzaW9uMSAhPSBub19yZWcpIHsKKysgICAgZXhjbHVzaW9ucyB8PSBleGNsdXNp b24xLmJpdCgpOworKyAgICBpZiAoZXhjbHVzaW9uMiAhPSBub19yZWcpIHsKKysgICAgICBleGNs dXNpb25zIHw9IGV4Y2x1c2lvbjIuYml0KCk7CisrICAgICAgaWYgKGV4Y2x1c2lvbjMgIT0gbm9f cmVnKSB7CisrICAgICAgICBleGNsdXNpb25zIHw9IGV4Y2x1c2lvbjMuYml0KCk7CisrICAgICAg fQorKyAgICB9CisrICB9CisrCisrICBSZWdMaXN0IGxpc3QgPSBrSlNDYWxsZXJTYXZlZCAmIH5l eGNsdXNpb25zOworKyAgTXVsdGlQb3AobGlzdCk7CisrICBieXRlcyArPSBOdW1SZWdzKGxpc3Qp ICoga1BvaW50ZXJTaXplOworKworKyAgcmV0dXJuIGJ5dGVzOworK30KKysKKyt2b2lkIFR1cmJv QXNzZW1ibGVyOjpMb2FkUm9vdChSZWdpc3RlciBkZXN0aW5hdGlvbiwgUm9vdEluZGV4IGluZGV4 KSB7CisrICBMZChkZXN0aW5hdGlvbiwgTWVtT3BlcmFuZChzNiwgUm9vdFJlZ2lzdGVyT2Zmc2V0 Rm9yUm9vdEluZGV4KGluZGV4KSkpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpMb2Fk Um9vdChSZWdpc3RlciBkZXN0aW5hdGlvbiwgUm9vdEluZGV4IGluZGV4LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBzcmMxLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHNyYzIpIHsKKysgIExhYmVs IHNraXA7CisrICBCcmFuY2goJnNraXAsIE5lZ2F0ZUNvbmRpdGlvbihjb25kKSwgc3JjMSwgc3Jj Mik7CisrICBMZChkZXN0aW5hdGlvbiwgTWVtT3BlcmFuZChzNiwgUm9vdFJlZ2lzdGVyT2Zmc2V0 Rm9yUm9vdEluZGV4KGluZGV4KSkpOworKyAgYmluZCgmc2tpcCk7CisrfQorKworK3ZvaWQgVHVy Ym9Bc3NlbWJsZXI6OlB1c2hDb21tb25GcmFtZShSZWdpc3RlciBtYXJrZXJfcmVnKSB7CisrICBp ZiAobWFya2VyX3JlZy5pc192YWxpZCgpKSB7CisrICAgIFB1c2gocmEsIGZwLCBtYXJrZXJfcmVn KTsKKysgICAgQWRkNjQoZnAsIHNwLCBPcGVyYW5kKGtQb2ludGVyU2l6ZSkpOworKyAgfSBlbHNl IHsKKysgICAgUHVzaChyYSwgZnApOworKyAgICBtdihmcCwgc3ApOworKyAgfQorK30KKysKKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpQdXNoU3RhbmRhcmRGcmFtZShSZWdpc3RlciBmdW5jdGlvbl9y ZWcpIHsKKysgIGludCBvZmZzZXQgPSAtU3RhbmRhcmRGcmFtZUNvbnN0YW50czo6a0NvbnRleHRP ZmZzZXQ7CisrICBpZiAoZnVuY3Rpb25fcmVnLmlzX3ZhbGlkKCkpIHsKKysgICAgUHVzaChyYSwg ZnAsIGNwLCBmdW5jdGlvbl9yZWcpOworKyAgICBvZmZzZXQgKz0ga1BvaW50ZXJTaXplOworKyAg fSBlbHNlIHsKKysgICAgUHVzaChyYSwgZnAsIGNwKTsKKysgIH0KKysgIEFkZDY0KGZwLCBzcCwg T3BlcmFuZChvZmZzZXQpKTsKKyt9CisrCisraW50IE1hY3JvQXNzZW1ibGVyOjpTYWZlcG9pbnRS ZWdpc3RlclN0YWNrSW5kZXgoaW50IHJlZ19jb2RlKSB7CisrICAvLyBUaGUgcmVnaXN0ZXJzIGFy ZSBwdXNoZWQgc3RhcnRpbmcgd2l0aCB0aGUgaGlnaGVzdCBlbmNvZGluZywKKysgIC8vIHdoaWNo IG1lYW5zIHRoYXQgbG93ZXN0IGVuY29kaW5ncyBhcmUgY2xvc2VzdCB0byB0aGUgc3RhY2sgcG9p bnRlci4KKysgIHJldHVybiBrU2FmZXBvaW50UmVnaXN0ZXJTdGFja0luZGV4TWFwW3JlZ19jb2Rl XTsKKyt9CisrCisrLy8gQ2xvYmJlcnMgb2JqZWN0LCBkc3QsIHZhbHVlLCBhbmQgcmEsIGlmIChy YV9zdGF0dXMgPT0ga1JBSGFzQmVlblNhdmVkKQorKy8vIFRoZSByZWdpc3RlciAnb2JqZWN0JyBj b250YWlucyBhIGhlYXAgb2JqZWN0IHBvaW50ZXIuICBUaGUgaGVhcCBvYmplY3QKKysvLyB0YWcg aXMgc2hpZnRlZCBhd2F5LgorK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OlJlY29yZFdyaXRlRmllbGQo UmVnaXN0ZXIgb2JqZWN0LCBpbnQgb2Zmc2V0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWUsIFJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJBU3RhdHVzIHJhX3N0YXR1cywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhdmVGUFJlZ3NNb2RlIHNhdmVfZnAsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1lbWJlcmVkU2V0QWN0aW9uIHJl bWVtYmVyZWRfc2V0X2FjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNtaUNoZWNrIHNtaV9jaGVjaykgeworKyAgRENIRUNLKCFBcmVBbGlhc2VkKHZhbHVlLCBk c3QsIHQ1LCBvYmplY3QpKTsKKysgIC8vIEZpcnN0LCBjaGVjayBpZiBhIHdyaXRlIGJhcnJpZXIg aXMgZXZlbiBuZWVkZWQuIFRoZSB0ZXN0cyBiZWxvdworKyAgLy8gY2F0Y2ggc3RvcmVzIG9mIFNt aXMuCisrICBMYWJlbCBkb25lOworKworKyAgLy8gU2tpcCBiYXJyaWVyIGlmIHdyaXRpbmcgYSBz bWkuCisrICBpZiAoc21pX2NoZWNrID09IElOTElORV9TTUlfQ0hFQ0spIHsKKysgICAgSnVtcElm U21pKHZhbHVlLCAmZG9uZSk7CisrICB9CisrCisrICAvLyBBbHRob3VnaCB0aGUgb2JqZWN0IHJl Z2lzdGVyIGlzIHRhZ2dlZCwgdGhlIG9mZnNldCBpcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQKKysg IC8vIG9mIHRoZSBvYmplY3QsIHNvIHNvIG9mZnNldCBtdXN0IGJlIGEgbXVsdGlwbGUgb2Yga1Bv aW50ZXJTaXplLgorKyAgRENIRUNLKElzQWxpZ25lZChvZmZzZXQsIGtQb2ludGVyU2l6ZSkpOwor KworKyAgQWRkNjQoZHN0LCBvYmplY3QsIE9wZXJhbmQob2Zmc2V0IC0ga0hlYXBPYmplY3RUYWcp KTsKKysgIGlmIChlbWl0X2RlYnVnX2NvZGUoKSkgeworKyAgICBCbG9ja1RyYW1wb2xpbmVQb29s U2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgICBMYWJlbCBvazsKKysgICAg QW5kKHQ1LCBkc3QsIE9wZXJhbmQoa1BvaW50ZXJTaXplIC0gMSkpOworKyAgICBCcmFuY2goJm9r LCBlcSwgdDUsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgZWJyZWFrKCk7CisrICAgIGJpbmQo Jm9rKTsKKysgIH0KKysKKysgIFJlY29yZFdyaXRlKG9iamVjdCwgZHN0LCB2YWx1ZSwgcmFfc3Rh dHVzLCBzYXZlX2ZwLCByZW1lbWJlcmVkX3NldF9hY3Rpb24sCisrICAgICAgICAgICAgICBPTUlU X1NNSV9DSEVDSyk7CisrCisrICBiaW5kKCZkb25lKTsKKysKKysgIC8vIENsb2JiZXIgY2xvYmJl cmVkIGlucHV0IHJlZ2lzdGVycyB3aGVuIHJ1bm5pbmcgd2l0aCB0aGUgZGVidWctY29kZSBmbGFn CisrICAvLyB0dXJuZWQgb24gdG8gcHJvdm9rZSBlcnJvcnMuCisrICBpZiAoZW1pdF9kZWJ1Z19j b2RlKCkpIHsKKysgICAgbGkodmFsdWUsIE9wZXJhbmQoYml0X2Nhc3Q8aW50NjRfdD4oa1phcFZh bHVlICsgNCkpKTsKKysgICAgbGkoZHN0LCBPcGVyYW5kKGJpdF9jYXN0PGludDY0X3Q+KGtaYXBW YWx1ZSArIDgpKSk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlNhdmVSZWdp c3RlcnMoUmVnTGlzdCByZWdpc3RlcnMpIHsKKysgIERDSEVDS19HVChOdW1SZWdzKHJlZ2lzdGVy cyksIDApOworKyAgUmVnTGlzdCByZWdzID0gMDsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgUmVn aXN0ZXI6OmtOdW1SZWdpc3RlcnM7ICsraSkgeworKyAgICBpZiAoKHJlZ2lzdGVycyA+PiBpKSAm IDF1KSB7CisrICAgICAgcmVncyB8PSBSZWdpc3Rlcjo6ZnJvbV9jb2RlKGkpLmJpdCgpOworKyAg ICB9CisrICB9CisrICBNdWx0aVB1c2gocmVncyk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJs ZXI6OlJlc3RvcmVSZWdpc3RlcnMoUmVnTGlzdCByZWdpc3RlcnMpIHsKKysgIERDSEVDS19HVChO dW1SZWdzKHJlZ2lzdGVycyksIDApOworKyAgUmVnTGlzdCByZWdzID0gMDsKKysgIGZvciAoaW50 IGkgPSAwOyBpIDwgUmVnaXN0ZXI6OmtOdW1SZWdpc3RlcnM7ICsraSkgeworKyAgICBpZiAoKHJl Z2lzdGVycyA+PiBpKSAmIDF1KSB7CisrICAgICAgcmVncyB8PSBSZWdpc3Rlcjo6ZnJvbV9jb2Rl KGkpLmJpdCgpOworKyAgICB9CisrICB9CisrICBNdWx0aVBvcChyZWdzKTsKKyt9CisrCisrdm9p ZCBUdXJib0Fzc2VtYmxlcjo6Q2FsbEVwaGVtZXJvbktleUJhcnJpZXIoUmVnaXN0ZXIgb2JqZWN0 LCBSZWdpc3RlciBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNhdmVGUFJlZ3NNb2RlIGZwX21vZGUpIHsKKysgIEVwaGVtZXJvbktleUJhcnJp ZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CisrICBSZWdMaXN0IHJlZ2lzdGVycyA9IGRlc2NyaXB0 b3IuYWxsb2NhdGFibGVfcmVnaXN0ZXJzKCk7CisrCisrICBTYXZlUmVnaXN0ZXJzKHJlZ2lzdGVy cyk7CisrCisrICBSZWdpc3RlciBvYmplY3RfcGFyYW1ldGVyKAorKyAgICAgIGRlc2NyaXB0b3Iu R2V0UmVnaXN0ZXJQYXJhbWV0ZXIoRXBoZW1lcm9uS2V5QmFycmllckRlc2NyaXB0b3I6OmtPYmpl Y3QpKTsKKysgIFJlZ2lzdGVyIHNsb3RfcGFyYW1ldGVyKGRlc2NyaXB0b3IuR2V0UmVnaXN0ZXJQ YXJhbWV0ZXIoCisrICAgICAgRXBoZW1lcm9uS2V5QmFycmllckRlc2NyaXB0b3I6OmtTbG90QWRk cmVzcykpOworKyAgUmVnaXN0ZXIgZnBfbW9kZV9wYXJhbWV0ZXIoCisrICAgICAgZGVzY3JpcHRv ci5HZXRSZWdpc3RlclBhcmFtZXRlcihFcGhlbWVyb25LZXlCYXJyaWVyRGVzY3JpcHRvcjo6a0ZQ TW9kZSkpOworKworKyAgUHVzaChvYmplY3QpOworKyAgUHVzaChhZGRyZXNzKTsKKysKKysgIFBv cChzbG90X3BhcmFtZXRlcik7CisrICBQb3Aob2JqZWN0X3BhcmFtZXRlcik7CisrCisrICBNb3Zl KGZwX21vZGVfcGFyYW1ldGVyLCBTbWk6OkZyb21FbnVtKGZwX21vZGUpKTsKKysgIENhbGwoaXNv bGF0ZSgpLT5idWlsdGlucygpLT5idWlsdGluX2hhbmRsZShCdWlsdGluczo6a0VwaGVtZXJvbktl eUJhcnJpZXIpLAorKyAgICAgICBSZWxvY0luZm86OkNPREVfVEFSR0VUKTsKKysgIFJlc3RvcmVS ZWdpc3RlcnMocmVnaXN0ZXJzKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q2FsbFJl Y29yZFdyaXRlU3R1YigKKysgICAgUmVnaXN0ZXIgb2JqZWN0LCBSZWdpc3RlciBhZGRyZXNzLAor KyAgICBSZW1lbWJlcmVkU2V0QWN0aW9uIHJlbWVtYmVyZWRfc2V0X2FjdGlvbiwgU2F2ZUZQUmVn c01vZGUgZnBfbW9kZSkgeworKyAgQ2FsbFJlY29yZFdyaXRlU3R1YigKKysgICAgICBvYmplY3Qs IGFkZHJlc3MsIHJlbWVtYmVyZWRfc2V0X2FjdGlvbiwgZnBfbW9kZSwKKysgICAgICBpc29sYXRl KCktPmJ1aWx0aW5zKCktPmJ1aWx0aW5faGFuZGxlKEJ1aWx0aW5zOjprUmVjb3JkV3JpdGUpLAor KyAgICAgIGtOdWxsQWRkcmVzcyk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGxS ZWNvcmRXcml0ZVN0dWIoCisrICAgIFJlZ2lzdGVyIG9iamVjdCwgUmVnaXN0ZXIgYWRkcmVzcywK KysgICAgUmVtZW1iZXJlZFNldEFjdGlvbiByZW1lbWJlcmVkX3NldF9hY3Rpb24sIFNhdmVGUFJl Z3NNb2RlIGZwX21vZGUsCisrICAgIEFkZHJlc3Mgd2FzbV90YXJnZXQpIHsKKysgIENhbGxSZWNv cmRXcml0ZVN0dWIob2JqZWN0LCBhZGRyZXNzLCByZW1lbWJlcmVkX3NldF9hY3Rpb24sIGZwX21v ZGUsCisrICAgICAgICAgICAgICAgICAgICAgIEhhbmRsZTxDb2RlPjo6bnVsbCgpLCB3YXNtX3Rh cmdldCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGxSZWNvcmRXcml0ZVN0dWIo CisrICAgIFJlZ2lzdGVyIG9iamVjdCwgUmVnaXN0ZXIgYWRkcmVzcywKKysgICAgUmVtZW1iZXJl ZFNldEFjdGlvbiByZW1lbWJlcmVkX3NldF9hY3Rpb24sIFNhdmVGUFJlZ3NNb2RlIGZwX21vZGUs CisrICAgIEhhbmRsZTxDb2RlPiBjb2RlX3RhcmdldCwgQWRkcmVzcyB3YXNtX3RhcmdldCkgewor KyAgRENIRUNLX05FKGNvZGVfdGFyZ2V0LmlzX251bGwoKSwgd2FzbV90YXJnZXQgPT0ga051bGxB ZGRyZXNzKTsKKysgIC8vIFRPRE8oYWxiZXJ0bmV0eW1rKTogRm9yIG5vdyB3ZSBpZ25vcmUgcmVt ZW1iZXJlZF9zZXRfYWN0aW9uIGFuZCBmcF9tb2RlLAorKyAgLy8gaS5lLiBhbHdheXMgZW1pdCBy ZW1lbWJlciBzZXQgYW5kIHNhdmUgRlAgcmVnaXN0ZXJzIGluIFJlY29yZFdyaXRlU3R1Yi4gSWYK KysgIC8vIGxhcmdlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaXMgb2JzZXJ2ZWQsIHdlIHNob3Vs ZCB1c2UgdGhlc2UgdmFsdWVzIHRvCisrICAvLyBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrLgorKwor KyAgUmVjb3JkV3JpdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CisrICBSZWdMaXN0IHJlZ2lzdGVy cyA9IGRlc2NyaXB0b3IuYWxsb2NhdGFibGVfcmVnaXN0ZXJzKCk7CisrCisrICBTYXZlUmVnaXN0 ZXJzKHJlZ2lzdGVycyk7CisrICBSZWdpc3RlciBvYmplY3RfcGFyYW1ldGVyKAorKyAgICAgIGRl c2NyaXB0b3IuR2V0UmVnaXN0ZXJQYXJhbWV0ZXIoUmVjb3JkV3JpdGVEZXNjcmlwdG9yOjprT2Jq ZWN0KSk7CisrICBSZWdpc3RlciBzbG90X3BhcmFtZXRlcigKKysgICAgICBkZXNjcmlwdG9yLkdl dFJlZ2lzdGVyUGFyYW1ldGVyKFJlY29yZFdyaXRlRGVzY3JpcHRvcjo6a1Nsb3QpKTsKKysgIFJl Z2lzdGVyIHJlbWVtYmVyZWRfc2V0X3BhcmFtZXRlcigKKysgICAgICBkZXNjcmlwdG9yLkdldFJl Z2lzdGVyUGFyYW1ldGVyKFJlY29yZFdyaXRlRGVzY3JpcHRvcjo6a1JlbWVtYmVyZWRTZXQpKTsK KysgIFJlZ2lzdGVyIGZwX21vZGVfcGFyYW1ldGVyKAorKyAgICAgIGRlc2NyaXB0b3IuR2V0UmVn aXN0ZXJQYXJhbWV0ZXIoUmVjb3JkV3JpdGVEZXNjcmlwdG9yOjprRlBNb2RlKSk7CisrCisrICBQ dXNoKG9iamVjdCk7CisrICBQdXNoKGFkZHJlc3MpOworKworKyAgUG9wKHNsb3RfcGFyYW1ldGVy KTsKKysgIFBvcChvYmplY3RfcGFyYW1ldGVyKTsKKysKKysgIE1vdmUocmVtZW1iZXJlZF9zZXRf cGFyYW1ldGVyLCBTbWk6OkZyb21FbnVtKHJlbWVtYmVyZWRfc2V0X2FjdGlvbikpOworKyAgTW92 ZShmcF9tb2RlX3BhcmFtZXRlciwgU21pOjpGcm9tRW51bShmcF9tb2RlKSk7CisrICBpZiAoY29k ZV90YXJnZXQuaXNfbnVsbCgpKSB7CisrICAgIENhbGwod2FzbV90YXJnZXQsIFJlbG9jSW5mbzo6 V0FTTV9TVFVCX0NBTEwpOworKyAgfSBlbHNlIHsKKysgICAgQ2FsbChjb2RlX3RhcmdldCwgUmVs b2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrICB9CisrCisrICBSZXN0b3JlUmVnaXN0ZXJzKHJlZ2lz dGVycyk7CisrfQorKworKy8vIENsb2JiZXJzIG9iamVjdCwgYWRkcmVzcywgdmFsdWUsIGFuZCBy YSwgaWYgKHJhX3N0YXR1cyA9PSBrUkFIYXNCZWVuU2F2ZWQpCisrLy8gVGhlIHJlZ2lzdGVyICdv YmplY3QnIGNvbnRhaW5zIGEgaGVhcCBvYmplY3QgcG9pbnRlci4gIFRoZSBoZWFwIG9iamVjdAor Ky8vIHRhZyBpcyBzaGlmdGVkIGF3YXkuCisrdm9pZCBNYWNyb0Fzc2VtYmxlcjo6UmVjb3JkV3Jp dGUoUmVnaXN0ZXIgb2JqZWN0LCBSZWdpc3RlciBhZGRyZXNzLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlLCBSQVN0YXR1cyByYV9zdGF0dXMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZUZQUmVnc01vZGUgZnBfbW9kZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1lbWJlcmVkU2V0QWN0aW9uIHJlbWVt YmVyZWRfc2V0X2FjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbWlD aGVjayBzbWlfY2hlY2spIHsKKysgIERDSEVDSyghQXJlQWxpYXNlZChvYmplY3QsIGFkZHJlc3Ms IHZhbHVlLCB0NSkpOworKyAgRENIRUNLKCFBcmVBbGlhc2VkKG9iamVjdCwgYWRkcmVzcywgdmFs dWUsIHQ2KSk7CisrCisrICBpZiAoZW1pdF9kZWJ1Z19jb2RlKCkpIHsKKysgICAgVXNlU2NyYXRj aFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1w cy5BY3F1aXJlKCk7CisrICAgIExkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoYWRkcmVzcykpOworKyAg ICBBc3NlcnQoZXEsIEFib3J0UmVhc29uOjprV3JvbmdBZGRyZXNzT3JWYWx1ZVBhc3NlZFRvUmVj b3JkV3JpdGUsIHNjcmF0Y2gsCisrICAgICAgICAgICBPcGVyYW5kKHZhbHVlKSk7CisrICB9Cisr CisrICBpZiAoKHJlbWVtYmVyZWRfc2V0X2FjdGlvbiA9PSBPTUlUX1JFTUVNQkVSRURfU0VUICYm CisrICAgICAgICFGTEFHX2luY3JlbWVudGFsX21hcmtpbmcpIHx8CisrICAgICAgRkxBR19kaXNh YmxlX3dyaXRlX2JhcnJpZXJzKSB7CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIC8vIEZpcnN0 LCBjaGVjayBpZiBhIHdyaXRlIGJhcnJpZXIgaXMgZXZlbiBuZWVkZWQuIFRoZSB0ZXN0cyBiZWxv dworKyAgLy8gY2F0Y2ggc3RvcmVzIG9mIHNtaXMgYW5kIHN0b3JlcyBpbnRvIHRoZSB5b3VuZyBn ZW5lcmF0aW9uLgorKyAgTGFiZWwgZG9uZTsKKysKKysgIGlmIChzbWlfY2hlY2sgPT0gSU5MSU5F X1NNSV9DSEVDSykgeworKyAgICBEQ0hFQ0tfRVEoMCwga1NtaVRhZyk7CisrICAgIEp1bXBJZlNt aSh2YWx1ZSwgJmRvbmUpOworKyAgfQorKworKyAgQ2hlY2tQYWdlRmxhZyh2YWx1ZSwKKysgICAg ICAgICAgICAgICAgdmFsdWUsICAvLyBVc2VkIGFzIHNjcmF0Y2guCisrICAgICAgICAgICAgICAg IE1lbW9yeUNodW5rOjprUG9pbnRlcnNUb0hlcmVBcmVJbnRlcmVzdGluZ01hc2ssIGVxLCAmZG9u ZSk7CisrICBDaGVja1BhZ2VGbGFnKG9iamVjdCwKKysgICAgICAgICAgICAgICAgdmFsdWUsICAv LyBVc2VkIGFzIHNjcmF0Y2guCisrICAgICAgICAgICAgICAgIE1lbW9yeUNodW5rOjprUG9pbnRl cnNGcm9tSGVyZUFyZUludGVyZXN0aW5nTWFzaywgZXEsICZkb25lKTsKKysKKysgIC8vIFJlY29y ZCB0aGUgYWN0dWFsIHdyaXRlLgorKyAgaWYgKHJhX3N0YXR1cyA9PSBrUkFIYXNOb3RCZWVuU2F2 ZWQpIHsKKysgICAgcHVzaChyYSk7CisrICB9CisrICBDYWxsUmVjb3JkV3JpdGVTdHViKG9iamVj dCwgYWRkcmVzcywgcmVtZW1iZXJlZF9zZXRfYWN0aW9uLCBmcF9tb2RlKTsKKysgIGlmIChyYV9z dGF0dXMgPT0ga1JBSGFzTm90QmVlblNhdmVkKSB7CisrICAgIHBvcChyYSk7CisrICB9CisrCisr ICBiaW5kKCZkb25lKTsKKysKKysgIC8vIENsb2JiZXIgY2xvYmJlcmVkIHJlZ2lzdGVycyB3aGVu IHJ1bm5pbmcgd2l0aCB0aGUgZGVidWctY29kZSBmbGFnCisrICAvLyB0dXJuZWQgb24gdG8gcHJv dm9rZSBlcnJvcnMuCisrICBpZiAoZW1pdF9kZWJ1Z19jb2RlKCkpIHsKKysgICAgbGkoYWRkcmVz cywgT3BlcmFuZChiaXRfY2FzdDxpbnQ2NF90PihrWmFwVmFsdWUgKyAxMikpKTsKKysgICAgbGko dmFsdWUsIE9wZXJhbmQoYml0X2Nhc3Q8aW50NjRfdD4oa1phcFZhbHVlICsgMTYpKSk7CisrICB9 CisrfQorKworKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKy8vIEluc3RydWN0aW9uIG1hY3Jvcy4K KysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpBZGQzMihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMs IGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgYWRkdyhy ZCwgcnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgaWYgKGlzX2ludDEyKHJ0LmltbWVk aWF0ZSgpKSAmJiAhTXVzdFVzZVJlZyhydC5ybW9kZSgpKSkgeworKyAgICAgIGFkZGl3KHJkLCBy cywgc3RhdGljX2Nhc3Q8aW50MzJfdD4ocnQuaW1tZWRpYXRlKCkpKTsKKysgICAgfSBlbHNlIHsK KysgICAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICAgIFVzZVNjcmF0Y2hS ZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1w cy5BY3F1aXJlKCk7CisrICAgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICAgIFJWX2xp KHNjcmF0Y2gsIHJ0LmltbWVkaWF0ZSgpKTsKKysgICAgICBhZGR3KHJkLCBycywgc2NyYXRjaCk7 CisrICAgIH0KKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6QWRkNjQoUmVnaXN0 ZXIgcmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYgKHJ0LmlzX3Jl ZygpKSB7CisrICAgIGFkZChyZCwgcnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgaWYg KGlzX2ludDEyKHJ0LmltbWVkaWF0ZSgpKSAmJiAhTXVzdFVzZVJlZyhydC5ybW9kZSgpKSkgewor KyAgICAgIGFkZGkocmQsIHJzLCBzdGF0aWNfY2FzdDxpbnQzMl90PihydC5pbW1lZGlhdGUoKSkp OworKyAgICB9IGVsc2UgeworKyAgICAgIC8vIGxpIGhhbmRsZXMgdGhlIHJlbG9jYXRpb24uCisr ICAgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAgICAgLy8gUmVn aXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgICBCbG9ja1RyYW1wb2xpbmVQ b29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgICAgIFJlZ2lzdGVyIHNj cmF0Y2ggPSB0ZW1wcy5oYXNBdmFpbGFibGUoKSA/IHRlbXBzLkFjcXVpcmUoKSA6IHQ1OworKyAg ICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsKKysgICAgICBSVl9saShzY3JhdGNoLCBydC5pbW1l ZGlhdGUoKSk7CisrICAgICAgYWRkKHJkLCBycywgc2NyYXRjaCk7CisrICAgIH0KKysgIH0KKyt9 CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U3ViMzIoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJz LCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYgKHJ0LmlzX3JlZygpKSB7CisrICAgIHN1Ynco cmQsIHJzLCBydC5ybSgpKTsKKysgIH0gZWxzZSB7CisrICAgIERDSEVDSyhpc19pbnQzMihydC5p bW1lZGlhdGUoKSkpOworKyAgICBpZiAoaXNfaW50MTIoLXJ0LmltbWVkaWF0ZSgpKSAmJiAhTXVz dFVzZVJlZyhydC5ybW9kZSgpKSkgeworKyAgICAgIGFkZGl3KHJkLCBycywKKysgICAgICAgICAg ICBzdGF0aWNfY2FzdDxpbnQzMl90PigKKysgICAgICAgICAgICAgICAgLXJ0LmltbWVkaWF0ZSgp KSk7ICAvLyBObyBzdWJpdyBpbnN0ciwgdXNlIGFkZGl3KHgsIHksIC1pbW0pLgorKyAgICB9IGVs c2UgeworKyAgICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgICAg IFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgICAgRENIRUNLKHJzICE9 IHNjcmF0Y2gpOworKyAgICAgIGlmICgtcnQuaW1tZWRpYXRlKCkgPj4gMTIgPT0gMCAmJiAhTXVz dFVzZVJlZyhydC5ybW9kZSgpKSkgeworKyAgICAgICAgLy8gVXNlIGxvYWQgLWltbSBhbmQgYWRk dSB3aGVuIGxvYWRpbmcgLWltbSBnZW5lcmF0ZXMgb25lIGluc3RydWN0aW9uLgorKyAgICAgICAg UlZfbGkoc2NyYXRjaCwgLXJ0LmltbWVkaWF0ZSgpKTsKKysgICAgICAgIGFkZHcocmQsIHJzLCBz Y3JhdGNoKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgLy8gbGkgaGFuZGxlcyB0aGUgcmVs b2NhdGlvbi4KKysgICAgICAgIFJWX2xpKHNjcmF0Y2gsIHJ0LmltbWVkaWF0ZSgpKTsKKysgICAg ICAgIHN1YncocmQsIHJzLCBzY3JhdGNoKTsKKysgICAgICB9CisrICAgIH0KKysgIH0KKyt9Cisr Cisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U3ViNjQoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBj b25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYgKHJ0LmlzX3JlZygpKSB7CisrICAgIHN1YihyZCwg cnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIGlmIChpc19pbnQxMigtcnQuaW1tZWRpYXRlKCkpICYm ICFNdXN0VXNlUmVnKHJ0LnJtb2RlKCkpKSB7CisrICAgIGFkZGkocmQsIHJzLAorKyAgICAgICAg IHN0YXRpY19jYXN0PGludDMyX3Q+KAorKyAgICAgICAgICAgICAtcnQuaW1tZWRpYXRlKCkpKTsg IC8vIE5vIHN1YmkgaW5zdHIsIHVzZSBhZGRpKHgsIHksIC1pbW0pLgorKyAgfSBlbHNlIHsKKysg ICAgRENIRUNLKHJzICE9IHQzKTsKKysgICAgaW50IGxpX2NvdW50ID0gSW5zdHJDb3VudEZvckxp NjRCaXQocnQuaW1tZWRpYXRlKCkpOworKyAgICBpbnQgbGlfbmVnX2NvdW50ID0gSW5zdHJDb3Vu dEZvckxpNjRCaXQoLXJ0LmltbWVkaWF0ZSgpKTsKKysgICAgaWYgKGxpX25lZ19jb3VudCA8IGxp X2NvdW50ICYmICFNdXN0VXNlUmVnKHJ0LnJtb2RlKCkpKSB7CisrICAgICAgLy8gVXNlIGxvYWQg LWltbSBhbmQgYWRkIHdoZW4gbG9hZGluZyAtaW1tIGdlbmVyYXRlcyBvbmUgaW5zdHJ1Y3Rpb24u CisrICAgICAgRENIRUNLKHJ0LmltbWVkaWF0ZSgpICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50 MzJfdD46Om1pbigpKTsKKysgICAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlz KTsKKysgICAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAgICAgIFJW X2xpKHNjcmF0Y2gsIC1ydC5pbW1lZGlhdGUoKSk7CisrICAgICAgYWRkKHJkLCBycywgc2NyYXRj aCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgLy8gbGkgaGFuZGxlcyB0aGUgcmVsb2NhdGlvbi4K KysgICAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgICBSZWdp c3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAgICAgIFJWX2xpKHNjcmF0Y2gsIHJ0 LmltbWVkaWF0ZSgpKTsKKysgICAgICBzdWIocmQsIHJzLCBzY3JhdGNoKTsKKysgICAgfQorKyAg fQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpNdWwzMihSZWdpc3RlciByZCwgUmVnaXN0 ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAg bXVsdyhyZCwgcnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgLy8gbGkgaGFuZGxlcyB0 aGUgcmVsb2NhdGlvbi4KKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7 CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIERDSEVDSyhy cyAhPSBzY3JhdGNoKTsKKysgICAgUlZfbGkoc2NyYXRjaCwgcnQuaW1tZWRpYXRlKCkpOworKyAg ICBtdWx3KHJkLCBycywgc2NyYXRjaCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJs ZXI6Ok11bGgzMihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7 CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgbXVsKHJkLCBycywgcnQucm0oKSk7CisrICB9 IGVsc2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICBVc2VTY3Jh dGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRl bXBzLkFjcXVpcmUoKTsKKysgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICBSVl9saShz Y3JhdGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIG11bChyZCwgcnMsIHNjcmF0Y2gpOworKyAg fQorKyAgc3JhaShyZCwgcmQsIDMyKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TXVs aHUzMihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcnN6LCBSZWdpc3RlciBydHopIHsKKysg IHNsbGkocnN6LCBycywgMzIpOworKyAgaWYgKHJ0LmlzX3JlZygpKQorKyAgICBzbGxpKHJ0eiwg cnQucm0oKSwgMzIpOworKyAgZWxzZQorKyAgICBSVl9saShydHosIHJ0LmltbWVkaWF0ZSgpIDw8 IDMyKTsKKysgIG11bGh1KHJkLCByc3osIHJ0eik7CisrICBzcmFpKHJkLCByZCwgMzIpOworK30K KysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpNdWw2NChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMs IGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgbXVsKHJk LCBycywgcnQucm0oKSk7CisrICB9IGVsc2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxv Y2F0aW9uLgorKyAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAg UmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgRENIRUNLKHJzICE9IHNj cmF0Y2gpOworKyAgICBSVl9saShzY3JhdGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIG11bChy ZCwgcnMsIHNjcmF0Y2gpOworKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpNdWxo NjQoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYg KHJ0LmlzX3JlZygpKSB7CisrICAgIG11bGgocmQsIHJzLCBydC5ybSgpKTsKKysgIH0gZWxzZSB7 CisrICAgIC8vIGxpIGhhbmRsZXMgdGhlIHJlbG9jYXRpb24uCisrICAgIFVzZVNjcmF0Y2hSZWdp c3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNx dWlyZSgpOworKyAgICBEQ0hFQ0socnMgIT0gc2NyYXRjaCk7CisrICAgIFJWX2xpKHNjcmF0Y2gs IHJ0LmltbWVkaWF0ZSgpKTsKKysgICAgbXVsaChyZCwgcnMsIHNjcmF0Y2gpOworKyAgfQorK30K KysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpEaXYzMihSZWdpc3RlciByZXMsIFJlZ2lzdGVyIHJz LCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYgKHJ0LmlzX3JlZygpKSB7CisrICAgIGRpdnco cmVzLCBycywgcnQucm0oKSk7CisrICB9IGVsc2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSBy ZWxvY2F0aW9uLgorKyAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysg ICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgRENIRUNLKHJzICE9 IHNjcmF0Y2gpOworKyAgICBSVl9saShzY3JhdGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIGRp dncocmVzLCBycywgc2NyYXRjaCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6 Ok1vZDMyKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysg IGlmIChydC5pc19yZWcoKSkgeworKyAgICByZW13KHJkLCBycywgcnQucm0oKSk7CisrICB9IGVs c2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICBVc2VTY3JhdGNo UmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBz LkFjcXVpcmUoKTsKKysgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICBSVl9saShzY3Jh dGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIHJlbXcocmQsIHJzLCBzY3JhdGNoKTsKKysgIH0K Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW9kdTMyKFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBy ZW11dyhyZCwgcnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgLy8gbGkgaGFuZGxlcyB0 aGUgcmVsb2NhdGlvbi4KKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7 CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIERDSEVDSyhy cyAhPSBzY3JhdGNoKTsKKysgICAgUlZfbGkoc2NyYXRjaCwgcnQuaW1tZWRpYXRlKCkpOworKyAg ICByZW11dyhyZCwgcnMsIHNjcmF0Y2gpOworKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1i bGVyOjpEaXY2NChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7 CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgZGl2KHJkLCBycywgcnQucm0oKSk7CisrICB9 IGVsc2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICBVc2VTY3Jh dGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRl bXBzLkFjcXVpcmUoKTsKKysgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICBSVl9saShz Y3JhdGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIGRpdihyZCwgcnMsIHNjcmF0Y2gpOworKyAg fQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpEaXZ1MzIoUmVnaXN0ZXIgcmVzLCBSZWdp c3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAg ICBkaXZ1dyhyZXMsIHJzLCBydC5ybSgpKTsKKysgIH0gZWxzZSB7CisrICAgIC8vIGxpIGhhbmRs ZXMgdGhlIHJlbG9jYXRpb24uCisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRo aXMpOworKyAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAgICBEQ0hF Q0socnMgIT0gc2NyYXRjaCk7CisrICAgIFJWX2xpKHNjcmF0Y2gsIHJ0LmltbWVkaWF0ZSgpKTsK KysgICAgZGl2dXcocmVzLCBycywgc2NyYXRjaCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9B c3NlbWJsZXI6OkRpdnU2NChSZWdpc3RlciByZXMsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5k JiBydCkgeworKyAgaWYgKHJ0LmlzX3JlZygpKSB7CisrICAgIGRpdnUocmVzLCBycywgcnQucm0o KSk7CisrICB9IGVsc2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAg ICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2Ny YXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAg ICBSVl9saShzY3JhdGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIGRpdnUocmVzLCBycywgc2Ny YXRjaCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vZDY0KFJlZ2lzdGVy IHJkLCBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWco KSkgeworKyAgICByZW0ocmQsIHJzLCBydC5ybSgpKTsKKysgIH0gZWxzZSB7CisrICAgIC8vIGxp IGhhbmRsZXMgdGhlIHJlbG9jYXRpb24uCisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRl bXBzKHRoaXMpOworKyAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAg ICBEQ0hFQ0socnMgIT0gc2NyYXRjaCk7CisrICAgIFJWX2xpKHNjcmF0Y2gsIHJ0LmltbWVkaWF0 ZSgpKTsKKysgICAgcmVtKHJkLCBycywgc2NyYXRjaCk7CisrICB9CisrfQorKworK3ZvaWQgVHVy Ym9Bc3NlbWJsZXI6Ok1vZHU2NChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJh bmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgcmVtdShyZCwgcnMsIHJ0LnJt KCkpOworKyAgfSBlbHNlIHsKKysgICAgLy8gbGkgaGFuZGxlcyB0aGUgcmVsb2NhdGlvbi4KKysg ICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAgIFJlZ2lzdGVyIHNj cmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsKKysg ICAgUlZfbGkoc2NyYXRjaCwgcnQuaW1tZWRpYXRlKCkpOworKyAgICByZW11KHJkLCBycywgc2Ny YXRjaCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkFuZChSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkp IHsKKysgICAgYW5kXyhyZCwgcnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgaWYgKGlz X2ludDEyKHJ0LmltbWVkaWF0ZSgpKSAmJiAhTXVzdFVzZVJlZyhydC5ybW9kZSgpKSkgeworKyAg ICAgIGFuZGkocmQsIHJzLCBzdGF0aWNfY2FzdDxpbnQzMl90PihydC5pbW1lZGlhdGUoKSkpOwor KyAgICB9IGVsc2UgeworKyAgICAgIC8vIGxpIGhhbmRsZXMgdGhlIHJlbG9jYXRpb24uCisrICAg ICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAgICAgUmVnaXN0ZXIg c2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgICBEQ0hFQ0socnMgIT0gc2NyYXRjaCk7 CisrICAgICAgUlZfbGkoc2NyYXRjaCwgcnQuaW1tZWRpYXRlKCkpOworKyAgICAgIGFuZF8ocmQs IHJzLCBzY3JhdGNoKTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpPcihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBp ZiAocnQuaXNfcmVnKCkpIHsKKysgICAgb3JfKHJkLCBycywgcnQucm0oKSk7CisrICB9IGVsc2Ug eworKyAgICBpZiAoaXNfaW50MTIocnQuaW1tZWRpYXRlKCkpICYmICFNdXN0VXNlUmVnKHJ0LnJt b2RlKCkpKSB7CisrICAgICAgb3JpKHJkLCBycywgc3RhdGljX2Nhc3Q8aW50MzJfdD4ocnQuaW1t ZWRpYXRlKCkpKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxv Y2F0aW9uLgorKyAgICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAg ICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgICAgRENIRUNLKHJz ICE9IHNjcmF0Y2gpOworKyAgICAgIFJWX2xpKHNjcmF0Y2gsIHJ0LmltbWVkaWF0ZSgpKTsKKysg ICAgICBvcl8ocmQsIHJzLCBzY3JhdGNoKTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIFR1 cmJvQXNzZW1ibGVyOjpYb3IoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5k JiBydCkgeworKyAgaWYgKHJ0LmlzX3JlZygpKSB7CisrICAgIHhvcl8ocmQsIHJzLCBydC5ybSgp KTsKKysgIH0gZWxzZSB7CisrICAgIGlmIChpc19pbnQxMihydC5pbW1lZGlhdGUoKSkgJiYgIU11 c3RVc2VSZWcocnQucm1vZGUoKSkpIHsKKysgICAgICB4b3JpKHJkLCBycywgc3RhdGljX2Nhc3Q8 aW50MzJfdD4ocnQuaW1tZWRpYXRlKCkpKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAvLyBsaSBo YW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRl bXBzKHRoaXMpOworKyAgICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7Cisr ICAgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICAgIFJWX2xpKHNjcmF0Y2gsIHJ0Lmlt bWVkaWF0ZSgpKTsKKysgICAgICB4b3JfKHJkLCBycywgc2NyYXRjaCk7CisrICAgIH0KKysgIH0K Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Tm9yKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy cywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBvcl8o cmQsIHJzLCBydC5ybSgpKTsKKysgICAgbm90XyhyZCwgcmQpOworKyAgfSBlbHNlIHsKKysgICAg T3IocmQsIHJzLCBydCk7CisrICAgIG5vdF8ocmQsIHJkKTsKKysgIH0KKyt9CisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6TmVnKFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAg RENIRUNLKHJ0LmlzX3JlZygpKTsKKysgIG5lZyhycywgcnQucm0oKSk7CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OlNlcXooUmVnaXN0ZXIgcmQsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7Cisr ICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgc2VxeihyZCwgcnQucm0oKSk7CisrICB9IGVsc2Ug eworKyAgICBsaShyZCwgcnQuaW1tZWRpYXRlKCkgPT0gMCk7CisrICB9CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OlNuZXooUmVnaXN0ZXIgcmQsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7Cisr ICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgc25leihyZCwgcnQucm0oKSk7CisrICB9IGVsc2Ug eworKyAgICBsaShyZCwgcnQuaW1tZWRpYXRlKCkgIT0gMCk7CisrICB9CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OlNlcShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJh bmQmIHJ0KSB7CisrICBpZiAocnMgPT0gemVyb19yZWcpIHsKKysgICAgU2VxeihyZCwgcnQpOwor KyAgfSBlbHNlIGlmIChJc1plcm8ocnQpKSB7CisrICAgIHNlcXoocmQsIHJzKTsKKysgIH0gZWxz ZSB7CisrICAgIFN1YjY0KHJkLCBycywgcnQpOworKyAgICBzZXF6KHJkLCByZCk7CisrICB9Cisr fQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlNuZShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMs IGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnMgPT0gemVyb19yZWcpIHsKKysgICAgU25l eihyZCwgcnQpOworKyAgfSBlbHNlIGlmIChJc1plcm8ocnQpKSB7CisrICAgIHNuZXoocmQsIHJz KTsKKysgIH0gZWxzZSB7CisrICAgIFN1YjY0KHJkLCBycywgcnQpOworKyAgICBzbmV6KHJkLCBy ZCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlNsdChSZWdpc3RlciByZCwg UmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpIHsK KysgICAgc2x0KHJkLCBycywgcnQucm0oKSk7CisrICB9IGVsc2UgeworKyAgICBpZiAoaXNfaW50 MTIocnQuaW1tZWRpYXRlKCkpICYmICFNdXN0VXNlUmVnKHJ0LnJtb2RlKCkpKSB7CisrICAgICAg c2x0aShyZCwgcnMsIHN0YXRpY19jYXN0PGludDMyX3Q+KHJ0LmltbWVkaWF0ZSgpKSk7CisrICAg IH0gZWxzZSB7CisrICAgICAgLy8gbGkgaGFuZGxlcyB0aGUgcmVsb2NhdGlvbi4KKysgICAgICBV c2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgICBCbG9ja1RyYW1wb2xp bmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgICAgIFJlZ2lzdGVy IHNjcmF0Y2ggPSB0ZW1wcy5oYXNBdmFpbGFibGUoKSA/IHRlbXBzLkFjcXVpcmUoKSA6IHQ1Owor KyAgICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsKKysgICAgICBSVl9saShzY3JhdGNoLCBydC5p bW1lZGlhdGUoKSk7CisrICAgICAgc2x0KHJkLCBycywgc2NyYXRjaCk7CisrICAgIH0KKysgIH0K Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U2x0dShSZWdpc3RlciByZCwgUmVnaXN0ZXIg cnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgc2x0 dShyZCwgcnMsIHJ0LnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgaWYgKGlzX2ludDEyKHJ0Lmlt bWVkaWF0ZSgpKSAmJiAhTXVzdFVzZVJlZyhydC5ybW9kZSgpKSkgeworKyAgICAgIHNsdGl1KHJk LCBycywgc3RhdGljX2Nhc3Q8aW50MzJfdD4ocnQuaW1tZWRpYXRlKCkpKTsKKysgICAgfSBlbHNl IHsKKysgICAgICAvLyBsaSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICAgIFVzZVNjcmF0 Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgICAgIEJsb2NrVHJhbXBvbGluZVBvb2xT Y29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICAgICAgUmVnaXN0ZXIgc2NyYXRj aCA9IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWlyZSgpIDogdDU7CisrICAgICAg RENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICAgIFJWX2xpKHNjcmF0Y2gsIHJ0LmltbWVkaWF0 ZSgpKTsKKysgICAgICBzbHR1KHJkLCBycywgc2NyYXRjaCk7CisrICAgIH0KKysgIH0KKyt9Cisr Cisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U2xlKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycywgY29u c3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBzbHQocmQsIHJ0 LnJtKCksIHJzKTsKKysgIH0gZWxzZSB7CisrICAgIC8vIGxpIGhhbmRsZXMgdGhlIHJlbG9jYXRp b24uCisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgICBSZWdp c3RlciBzY3JhdGNoID0gdGVtcHMuaGFzQXZhaWxhYmxlKCkgPyB0ZW1wcy5BY3F1aXJlKCkgOiB0 NTsKKysgICAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0 aGlzKTsKKysgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICBSVl9saShzY3JhdGNoLCBy dC5pbW1lZGlhdGUoKSk7CisrICAgIHNsdChyZCwgc2NyYXRjaCwgcnMpOworKyAgfQorKyAgeG9y aShyZCwgcmQsIDEpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpTbGV1KFJlZ2lzdGVy IHJkLCBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWco KSkgeworKyAgICBzbHR1KHJkLCBydC5ybSgpLCBycyk7CisrICB9IGVsc2UgeworKyAgICAvLyBs aSBoYW5kbGVzIHRoZSByZWxvY2F0aW9uLgorKyAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0 ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWlsYWJsZSgp ID8gdGVtcHMuQWNxdWlyZSgpIDogdDU7CisrICAgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBi bG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsK KysgICAgUlZfbGkoc2NyYXRjaCwgcnQuaW1tZWRpYXRlKCkpOworKyAgICBzbHR1KHJkLCBzY3Jh dGNoLCBycyk7CisrICB9CisrICB4b3JpKHJkLCByZCwgMSk7CisrfQorKworK3ZvaWQgVHVyYm9B c3NlbWJsZXI6OlNnZShSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0 KSB7CisrICBTbHQocmQsIHJzLCBydCk7CisrICB4b3JpKHJkLCByZCwgMSk7CisrfQorKworK3Zv aWQgVHVyYm9Bc3NlbWJsZXI6OlNnZXUoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBP cGVyYW5kJiBydCkgeworKyAgU2x0dShyZCwgcnMsIHJ0KTsKKysgIHhvcmkocmQsIHJkLCAxKTsK Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U2d0KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy cywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBzbHQo cmQsIHJ0LnJtKCksIHJzKTsKKysgIH0gZWxzZSB7CisrICAgIC8vIGxpIGhhbmRsZXMgdGhlIHJl bG9jYXRpb24uCisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAg ICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuaGFzQXZhaWxhYmxlKCkgPyB0ZW1wcy5BY3F1aXJl KCkgOiB0NTsKKysgICAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVf cG9vbCh0aGlzKTsKKysgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICBSVl9saShzY3Jh dGNoLCBydC5pbW1lZGlhdGUoKSk7CisrICAgIHNsdChyZCwgc2NyYXRjaCwgcnMpOworKyAgfQor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpTZ3R1KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy cywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBzbHR1 KHJkLCBydC5ybSgpLCBycyk7CisrICB9IGVsc2UgeworKyAgICAvLyBsaSBoYW5kbGVzIHRoZSBy ZWxvY2F0aW9uLgorKyAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysg ICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWly ZSgpIDogdDU7CisrICAgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5l X3Bvb2wodGhpcyk7CisrICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsKKysgICAgUlZfbGkoc2Ny YXRjaCwgcnQuaW1tZWRpYXRlKCkpOworKyAgICBzbHR1KHJkLCBzY3JhdGNoLCBycyk7CisrICB9 CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlNsbDMyKFJlZ2lzdGVyIHJkLCBSZWdpc3Rl ciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIGlmIChydC5pc19yZWcoKSkKKysgICAgc2xs dyhyZCwgcnMsIHJ0LnJtKCkpOworKyAgZWxzZSB7CisrICAgIHVpbnQ4X3Qgc2hhbXQgPSBzdGF0 aWNfY2FzdDx1aW50OF90PihydC5pbW1lZGlhdGUoKSk7CisrICAgIHNsbGl3KHJkLCBycywgc2hh bXQpOworKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpTcmEzMihSZWdpc3RlciBy ZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkp CisrICAgIHNyYXcocmQsIHJzLCBydC5ybSgpKTsKKysgIGVsc2UgeworKyAgICB1aW50OF90IHNo YW10ID0gc3RhdGljX2Nhc3Q8dWludDhfdD4ocnQuaW1tZWRpYXRlKCkpOworKyAgICBzcmFpdyhy ZCwgcnMsIHNoYW10KTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U3JsMzIo UmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYgKHJ0 LmlzX3JlZygpKQorKyAgICBzcmx3KHJkLCBycywgcnQucm0oKSk7CisrICBlbHNlIHsKKysgICAg dWludDhfdCBzaGFtdCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHJ0LmltbWVkaWF0ZSgpKTsKKysg ICAgc3JsaXcocmQsIHJzLCBzaGFtdCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJs ZXI6OlNyYTY0KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsK KysgIGlmIChydC5pc19yZWcoKSkKKysgICAgc3JhKHJkLCBycywgcnQucm0oKSk7CisrICBlbHNl IHsKKysgICAgdWludDhfdCBzaGFtdCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHJ0LmltbWVkaWF0 ZSgpKTsKKysgICAgc3JhaShyZCwgcnMsIHNoYW10KTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6U3JsNjQoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5k JiBydCkgeworKyAgaWYgKHJ0LmlzX3JlZygpKQorKyAgICBzcmwocmQsIHJzLCBydC5ybSgpKTsK KysgIGVsc2UgeworKyAgICB1aW50OF90IHNoYW10ID0gc3RhdGljX2Nhc3Q8dWludDhfdD4ocnQu aW1tZWRpYXRlKCkpOworKyAgICBzcmxpKHJkLCBycywgc2hhbXQpOworKyAgfQorK30KKysKKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpTbGw2NChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMsIGNvbnN0 IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAocnQuaXNfcmVnKCkpCisrICAgIHNsbChyZCwgcnMsIHJ0 LnJtKCkpOworKyAgZWxzZSB7CisrICAgIHVpbnQ4X3Qgc2hhbXQgPSBzdGF0aWNfY2FzdDx1aW50 OF90PihydC5pbW1lZGlhdGUoKSk7CisrICAgIHNsbGkocmQsIHJzLCBzaGFtdCk7CisrICB9Cisr fQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlJvcihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMs IGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0 aGlzKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICBEQ0hFQ0so cnMgIT0gc2NyYXRjaCk7CisrICBpZiAocnQuaXNfcmVnKCkpIHsKKysgICAgbmVndyhzY3JhdGNo LCBydC5ybSgpKTsKKysgICAgc2xsdyhzY3JhdGNoLCBycywgc2NyYXRjaCk7CisrICAgIHNybHco cmQsIHJzLCBydC5ybSgpKTsKKysgICAgb3JfKHJkLCBzY3JhdGNoLCByZCk7CisrICAgIHNleHRf dyhyZCwgcmQpOworKyAgfSBlbHNlIHsKKysgICAgaW50NjRfdCByb3JfdmFsdWUgPSBydC5pbW1l ZGlhdGUoKSAlIDMyOworKyAgICBpZiAocm9yX3ZhbHVlID09IDApIHsKKysgICAgICBtdihyZCwg cnMpOworKyAgICAgIHJldHVybjsKKysgICAgfSBlbHNlIGlmIChyb3JfdmFsdWUgPCAwKSB7Cisr ICAgICAgcm9yX3ZhbHVlICs9IDMyOworKyAgICB9CisrICAgIHNybGl3KHNjcmF0Y2gsIHJzLCBy b3JfdmFsdWUpOworKyAgICBzbGxpdyhyZCwgcnMsIDMyIC0gcm9yX3ZhbHVlKTsKKysgICAgb3Jf KHJkLCBzY3JhdGNoLCByZCk7CisrICAgIHNleHRfdyhyZCwgcmQpOworKyAgfQorK30KKysKKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpEcm9yKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycywgY29uc3Qg T3BlcmFuZCYgcnQpIHsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOwor KyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgIERDSEVDSyhycyAhPSBz Y3JhdGNoKTsKKysgIGlmIChydC5pc19yZWcoKSkgeworKyAgICBuZWd3KHNjcmF0Y2gsIHJ0LnJt KCkpOworKyAgICBzbGwoc2NyYXRjaCwgcnMsIHNjcmF0Y2gpOworKyAgICBzcmwocmQsIHJzLCBy dC5ybSgpKTsKKysgICAgb3JfKHJkLCBzY3JhdGNoLCByZCk7CisrICB9IGVsc2UgeworKyAgICBp bnQ2NF90IGRyb3JfdmFsdWUgPSBydC5pbW1lZGlhdGUoKSAlIDY0OworKyAgICBpZiAoZHJvcl92 YWx1ZSA9PSAwKSB7CisrICAgICAgbXYocmQsIHJzKTsKKysgICAgICByZXR1cm47CisrICAgIH0g ZWxzZSBpZiAoZHJvcl92YWx1ZSA8IDApIHsKKysgICAgICBkcm9yX3ZhbHVlICs9IDY0OworKyAg ICB9CisrICAgIHNybGkoc2NyYXRjaCwgcnMsIGRyb3JfdmFsdWUpOworKyAgICBzbGxpKHJkLCBy cywgNjQgLSBkcm9yX3ZhbHVlKTsKKysgICAgb3JfKHJkLCBzY3JhdGNoLCByZCk7CisrICB9Cisr fQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGNTY2FsZWRBZGRyZXNzKFJlZ2lzdGVyIHJk LCBSZWdpc3RlciBydCwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDhfdCBzYSwgUmVnaXN0ZXIgc2NyYXRjaCkgeworKyAgRENIRUNLKHNh ID49IDEgJiYgc2EgPD0gMzEpOworKyAgUmVnaXN0ZXIgdG1wID0gcmQgPT0gcnQgPyBzY3JhdGNo IDogcmQ7CisrICBEQ0hFQ0sodG1wICE9IHJ0KTsKKysgIHNsbGkodG1wLCBycywgc2EpOworKyAg QWRkNjQocmQsIHJ0LCB0bXApOworK30KKysKKysvLyAtLS0tLS0tLS0tLS1Qc2V1ZG8taW5zdHJ1 Y3Rpb25zLS0tLS0tLS0tLS0tLQorKy8vIENoYW5nZSBlbmRpYW5uZXNzCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6Qnl0ZVN3YXAoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzLCBpbnQgb3BlcmFuZF9z aXplKSB7CisrICBEQ0hFQ0sob3BlcmFuZF9zaXplID09IDQgfHwgb3BlcmFuZF9zaXplID09IDgp OworKyAgRENIRUNLKHJkICE9IHQ1ICYmIHJkICE9IHQ2KTsKKysgIGlmIChvcGVyYW5kX3NpemUg PT0gNCkgeworKyAgICAvLyBVaW50MzJfdCB0NSA9IDB4MDBGRjAwRkY7CisrICAgIC8vIHggPSAo eCA8PCAxNiB8IHggPj4gMTYpOworKyAgICAvLyB4ID0gKCgoeCAmIHQ1KSA8PCA4KSAgfCAoKHgg JiAodDUgPDwgOCkpID4+IDgpKTsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHMo dGhpcyk7CisrICAgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bv b2wodGhpcyk7CisrICAgIFJlZ2lzdGVyIHggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIGxpKHQ1 LCAweDAwRkYwMEZGKTsKKysgICAgc2xsaXcoeCwgcnMsIDE2KTsKKysgICAgc3JsaXcocmQsIHJz LCAxNik7CisrICAgIG9yXyh4LCByZCwgeCk7ICAgICAvLyB4IDwtIHggPDwgMTYgfCB4ID4+IDE2 CisrICAgIGFuZF8odDYsIHgsIHQ1KTsgICAvLyB0IDwtIHggJiAweDAwRkYwMEZGCisrICAgIHNs bGl3KHQ2LCB0NiwgOCk7ICAvLyB0IDwtICh4ICYgdDUpIDw8IDgKKysgICAgc2xsaXcodDUsIHQ1 LCA4KTsgIC8vIHQ1IDwtIDB4RkYwMEZGMDAKKysgICAgYW5kXyhyZCwgeCwgdDUpOyAgIC8vIHgg JiAweEZGMDBGRjAwCisrICAgIHNybGl3KHJkLCByZCwgOCk7CisrICAgIG9yXyhyZCwgcmQsIHQ2 KTsgIC8vICgoKHggJiB0NSkgPDwgOCkgIHwgKCh4ICYgKHQ1IDw8IDgpKSA+PiA4KSkKKysgIH0g ZWxzZSB7CisrICAgIC8vIHVpbnQ2NF90IHQ1ID0gMHgwMDAwRkZGRjAwMDBGRkZGbDsKKysgICAg Ly8gdWludDY0X3QgdDUgPSAweDAwRkYwMEZGMDBGRjAwRkZsOworKyAgICAvLyB4ID0gKHggPDwg MzIgfCB4ID4+IDMyKTsKKysgICAgLy8geCA9ICh4ICYgdDUpIDw8IDE2IHwgKHggJiAodDUgPDwg MTYpKSA+PiAxNjsKKysgICAgLy8geCA9ICh4ICYgdDUpIDw8IDggIHwgKHggJiAodDUgPDwgOCkp ID4+IDg7CisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgICBC bG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAg ICBSZWdpc3RlciB4ID0gdGVtcHMuQWNxdWlyZSgpOworKyAgICBsaSh0NSwgMHgwMDAwRkZGRjAw MDBGRkZGbCk7CisrICAgIHNsbGkoeCwgcnMsIDMyKTsKKysgICAgc3JsaShyZCwgcnMsIDMyKTsK KysgICAgb3JfKHgsIHJkLCB4KTsgICAgIC8vIHggPC0geCA8PCAzMiB8IHggPj4gMzIKKysgICAg YW5kXyh0NiwgeCwgdDUpOyAgIC8vIHQgPC0geCAmIDB4MDAwMEZGRkYwMDAwRkZGRgorKyAgICBz bGxpKHQ2LCB0NiwgMTYpOyAgLy8gdCA8LSAoeCAmIDB4MDAwMEZGRkYwMDAwRkZGRikgPDwgMTYK KysgICAgc2xsaSh0NSwgdDUsIDE2KTsgIC8vIHQ1IDwtIDB4RkZGRjAwMDBGRkZGMDAwMAorKyAg ICBhbmRfKHJkLCB4LCB0NSk7ICAgLy8gcmQgPC0geCAmIDB4RkZGRjAwMDBGRkZGMDAwMAorKyAg ICBzcmxpKHJkLCByZCwgMTYpOyAgLy8gcmQgPC0geCAmICh0NSA8PCAxNikpID4+IDE2CisrICAg IG9yXyh4LCByZCwgdDYpOyAgICAvLyAoeCAmIHQ1KSA8PCAxNiB8ICh4ICYgKHQ1IDw8IDE2KSkg Pj4gMTY7CisrICAgIGxpKHQ1LCAweDAwRkYwMEZGMDBGRjAwRkZsKTsKKysgICAgYW5kXyh0Niwg eCwgdDUpOyAgLy8gdCA8LSB4ICYgMHgwMEZGMDBGRjAwRkYwMEZGCisrICAgIHNsbGkodDYsIHQ2 LCA4KTsgIC8vIHQgPC0gKHggJiB0NSkgPDwgOAorKyAgICBzbGxpKHQ1LCB0NSwgOCk7ICAvLyB0 NSA8LSAweEZGMDBGRjAwRkYwMEZGMDAKKysgICAgYW5kXyhyZCwgeCwgdDUpOworKyAgICBzcmxp KHJkLCByZCwgOCk7ICAvLyByZCA8LSAoeCAmICh0NSA8PCA4KSkgPj4gOAorKyAgICBvcl8ocmQs IHJkLCB0Nik7ICAvLyAoKCh4ICYgdDUpIDw8IDgpICB8ICgoeCAmICh0NSA8PCA4KSkgPj4gOCkp CisrICB9CisrfQorKworK3RlbXBsYXRlIDxpbnQgTkJZVEVTLCBib29sIExPQURfU0lHTkVEPgor K3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWROQnl0ZXMoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9w ZXJhbmQmIHJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2Ny YXRjaCkgeworKyAgRENIRUNLKHJkICE9IHJzLnJtKCkgJiYgcmQgIT0gc2NyYXRjaCk7CisrICBE Q0hFQ0soTkJZVEVTIDw9IDgpOworKworKyAgLy8gbG9hZCB0aGUgbW9zdCBzaWduaWZpY2FudCBi eXRlCisrICBpZiAoTE9BRF9TSUdORUQpIHsKKysgICAgbGIocmQsIHJzLnJtKCksIHJzLm9mZnNl dCgpICsgKE5CWVRFUyAtIDEpKTsKKysgIH0gZWxzZSB7CisrICAgIGxidShyZCwgcnMucm0oKSwg cnMub2Zmc2V0KCkgKyAoTkJZVEVTIC0gMSkpOworKyAgfQorKworKyAgLy8gbG9hZCByZW1haW5p bmcgKG5ieXRlcy0xKSBieXRlcyBmcm9tIGhpZ2hlciB0byBsb3dlcgorKyAgc2xsaShyZCwgcmQs IDggKiAoTkJZVEVTIC0gMSkpOworKyAgZm9yIChpbnQgaSA9IChOQllURVMgLSAyKTsgaSA+PSAw OyBpLS0pIHsKKysgICAgbGJ1KHNjcmF0Y2gsIHJzLnJtKCksIHJzLm9mZnNldCgpICsgaSk7Cisr ICAgIGlmIChpKSBzbGxpKHNjcmF0Y2gsIHNjcmF0Y2gsIGkgKiA4KTsKKysgICAgb3JfKHJkLCBy ZCwgc2NyYXRjaCk7CisrICB9CisrfQorKworK3RlbXBsYXRlIDxpbnQgTkJZVEVTLCBib29sIExP QURfU0lHTkVEPgorK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWROQnl0ZXNPdmVyd3JpdGluZ0Jh c2VSZWcoY29uc3QgTWVtT3BlcmFuZCYgcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzY3JhdGNoMCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gxKSB7 CisrICAvLyBUaGlzIGZ1bmN0aW9uIGxvYWRzIG5ieXRlcyBmcm9tIG1lbW9yeSBzcGVjaWZpZWQg YnkgcnMgYW5kIGludG8gcnMucm0oKQorKyAgRENIRUNLKHJzLnJtKCkgIT0gc2NyYXRjaDAgJiYg cnMucm0oKSAhPSBzY3JhdGNoMSAmJiBzY3JhdGNoMCAhPSBzY3JhdGNoMSk7CisrICBEQ0hFQ0so TkJZVEVTIDw9IDgpOworKworKyAgLy8gbG9hZCB0aGUgbW9zdCBzaWduaWZpY2FudCBieXRlCisr ICBpZiAoTE9BRF9TSUdORUQpIHsKKysgICAgbGIoc2NyYXRjaDAsIHJzLnJtKCksIHJzLm9mZnNl dCgpICsgKE5CWVRFUyAtIDEpKTsKKysgIH0gZWxzZSB7CisrICAgIGxidShzY3JhdGNoMCwgcnMu cm0oKSwgcnMub2Zmc2V0KCkgKyAoTkJZVEVTIC0gMSkpOworKyAgfQorKworKyAgLy8gbG9hZCBy ZW1haW5pbmcgKG5ieXRlcy0xKSBieXRlcyBmcm9tIGhpZ2hlciB0byBsb3dlcgorKyAgc2xsaShz Y3JhdGNoMCwgc2NyYXRjaDAsIDggKiAoTkJZVEVTIC0gMSkpOworKyAgZm9yIChpbnQgaSA9IChO QllURVMgLSAyKTsgaSA+PSAwOyBpLS0pIHsKKysgICAgbGJ1KHNjcmF0Y2gxLCBycy5ybSgpLCBy cy5vZmZzZXQoKSArIGkpOworKyAgICBpZiAoaSkgeworKyAgICAgIHNsbGkoc2NyYXRjaDEsIHNj cmF0Y2gxLCBpICogOCk7CisrICAgICAgb3JfKHNjcmF0Y2gwLCBzY3JhdGNoMCwgc2NyYXRjaDEp OworKyAgICB9IGVsc2UgeworKyAgICAgIC8vIHdyaXRlIHRvIHJzLnJtKCkgd2hlbiBwcm9jZXNz aW5nIHRoZSBsYXN0IGJ5dGUKKysgICAgICBvcl8ocnMucm0oKSwgc2NyYXRjaDAsIHNjcmF0Y2gx KTsKKysgICAgfQorKyAgfQorK30KKysKKyt0ZW1wbGF0ZSA8aW50IE5CWVRFUywgYm9vbCBJU19T SUdORUQ+Cisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6VW5hbGlnbmVkTG9hZEhlbHBlcihSZWdpc3Rl ciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpIHsKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29w ZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29w ZSB0ZW1wcyh0aGlzKTsKKysKKysgIGlmIChOZWVkQWRqdXN0QmFzZUFuZE9mZnNldChycywgT2Zm c2V0QWNjZXNzVHlwZTo6VFdPX0FDQ0VTU0VTLCBOQllURVMgLSAxKSkgeworKyAgICAvLyBBZGp1 c3Qgb2Zmc2V0IGZvciB0d28gYWNjZXNzZXMgYW5kIGNoZWNrIGlmIG9mZnNldCArIDMgZml0cyBp bnRvIGludDEyLgorKyAgICBNZW1PcGVyYW5kIHNvdXJjZSA9IHJzOworKyAgICBSZWdpc3RlciBz Y3JhdGNoX2Jhc2UgPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIERDSEVDSyhzY3JhdGNoX2Jhc2Ug IT0gcnMucm0oKSk7CisrICAgIEFkanVzdEJhc2VBbmRPZmZzZXQoJnNvdXJjZSwgc2NyYXRjaF9i YXNlLCBPZmZzZXRBY2Nlc3NUeXBlOjpUV09fQUNDRVNTRVMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgTkJZVEVTIC0gMSk7CisrCisrICAgIC8vIFNpbmNlIHNvdXJjZS5ybSgpIGlzIHNjcmF0 Y2hfYmFzZSwgYXNzdW1lIHJkICE9IHNvdXJjZS5ybSgpCisrICAgIERDSEVDSyhyZCAhPSBzb3Vy Y2Uucm0oKSk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2hfb3RoZXIgPSB0NTsKKysgICAgTG9hZE5C eXRlczxOQllURVMsIElTX1NJR05FRD4ocmQsIHNvdXJjZSwgc2NyYXRjaF9vdGhlcik7CisrICB9 IGVsc2UgeworKyAgICAvLyBubyBuZWVkIHRvIGFkanVzdCBiYXNlLWFuZC1vZmZzZXQKKysgICAg aWYgKHJkICE9IHJzLnJtKCkpIHsKKysgICAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNx dWlyZSgpOworKyAgICAgIExvYWROQnl0ZXM8TkJZVEVTLCBJU19TSUdORUQ+KHJkLCBycywgc2Ny YXRjaCk7CisrICAgIH0gZWxzZSB7ICAvLyByZCA9PSBycy5ybSgpCisrICAgICAgUmVnaXN0ZXIg c2NyYXRjaDAgPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgICAgUmVnaXN0ZXIgc2NyYXRjaDEgPSB0 NTsKKysgICAgICBMb2FkTkJ5dGVzT3ZlcndyaXRpbmdCYXNlUmVnPE5CWVRFUywgSVNfU0lHTkVE Pihycywgc2NyYXRjaDAsIHNjcmF0Y2gxKTsKKysgICAgfQorKyAgfQorK30KKysKKyt0ZW1wbGF0 ZSA8aW50IE5CWVRFUz4KKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpVbmFsaWduZWRGTG9hZEhlbHBl cihGUFVSZWdpc3RlciBmcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKKysgIERDSEVD SyhzY3JhdGNoICE9IHJzLnJtKCkpOworKyAgRENIRUNLKE5CWVRFUyA9PSA0IHx8IE5CWVRFUyA9 PSA4KTsKKysKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bv b2wodGhpcyk7CisrICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIE1l bU9wZXJhbmQgc291cmNlID0gcnM7CisrICBpZiAoTmVlZEFkanVzdEJhc2VBbmRPZmZzZXQocnMs IE9mZnNldEFjY2Vzc1R5cGU6OlRXT19BQ0NFU1NFUywgTkJZVEVTIC0gMSkpIHsKKysgICAgLy8g QWRqdXN0IG9mZnNldCBmb3IgdHdvIGFjY2Vzc2VzIGFuZCBjaGVjayBpZiBvZmZzZXQgKyAzIGZp dHMgaW50byBpbnQxMi4KKysgICAgUmVnaXN0ZXIgc2NyYXRjaF9iYXNlID0gdGVtcHMuQWNxdWly ZSgpOworKyAgICBEQ0hFQ0soc2NyYXRjaF9iYXNlICE9IHNjcmF0Y2ggJiYgc2NyYXRjaF9iYXNl ICE9IHJzLnJtKCkpOworKyAgICBBZGp1c3RCYXNlQW5kT2Zmc2V0KCZzb3VyY2UsIHNjcmF0Y2hf YmFzZSwgT2Zmc2V0QWNjZXNzVHlwZTo6VFdPX0FDQ0VTU0VTLAorKyAgICAgICAgICAgICAgICAg ICAgICAgIE5CWVRFUyAtIDEpOworKyAgfQorKworKyAgUmVnaXN0ZXIgc2NyYXRjaF9vdGhlciA9 IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWlyZSgpIDogdDU7CisrICBEQ0hFQ0so c2NyYXRjaF9vdGhlciAhPSBzY3JhdGNoICYmIHNjcmF0Y2hfb3RoZXIgIT0gcnMucm0oKSk7Cisr ICBMb2FkTkJ5dGVzPE5CWVRFUywgdHJ1ZT4oc2NyYXRjaCwgc291cmNlLCBzY3JhdGNoX290aGVy KTsKKysgIGlmIChOQllURVMgPT0gNCkKKysgICAgZm12X3dfeChmcmQsIHNjcmF0Y2gpOworKyAg ZWxzZQorKyAgICBmbXZfZF94KGZyZCwgc2NyYXRjaCk7CisrfQorKworK3RlbXBsYXRlIDxpbnQg TkJZVEVTPgorK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlVuYWxpZ25lZFN0b3JlSGVscGVyKFJlZ2lz dGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciBzY3JhdGNoX290aGVyKSB7CisrICBEQ0hFQ0soc2Ny YXRjaF9vdGhlciAhPSBycy5ybSgpKTsKKysgIERDSEVDSyhOQllURVMgPD0gOCk7CisrCisrICBV c2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIE1lbU9wZXJhbmQgc291cmNl ID0gcnM7CisrICAvLyBBZGp1c3Qgb2Zmc2V0IGZvciB0d28gYWNjZXNzZXMgYW5kIGNoZWNrIGlm IG9mZnNldCArIDMgZml0cyBpbnRvIGludDEyLgorKyAgaWYgKE5lZWRBZGp1c3RCYXNlQW5kT2Zm c2V0KHJzLCBPZmZzZXRBY2Nlc3NUeXBlOjpUV09fQUNDRVNTRVMsIE5CWVRFUyAtIDEpKSB7Cisr ICAgIFJlZ2lzdGVyIHNjcmF0Y2hfYmFzZSA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgRENIRUNL KHNjcmF0Y2hfYmFzZSAhPSByZCAmJiBzY3JhdGNoX2Jhc2UgIT0gcnMucm0oKSk7CisrICAgIEFk anVzdEJhc2VBbmRPZmZzZXQoJnNvdXJjZSwgc2NyYXRjaF9iYXNlLCBPZmZzZXRBY2Nlc3NUeXBl OjpUV09fQUNDRVNTRVMsCisrICAgICAgICAgICAgICAgICAgICAgICAgTkJZVEVTIC0gMSk7Cisr ICB9CisrCisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29s KHRoaXMpOworKyAgaWYgKHNjcmF0Y2hfb3RoZXIgPT0gbm9fcmVnKQorKyAgICBzY3JhdGNoX290 aGVyID0gdGVtcHMuaGFzQXZhaWxhYmxlKCkgPyB0ZW1wcy5BY3F1aXJlKCkgOiB0NTsKKysKKysg IERDSEVDSyhzY3JhdGNoX290aGVyICE9IHJkICYmIHNjcmF0Y2hfb3RoZXIgIT0gcnMucm0oKSAm JgorKyAgICAgICAgIHNjcmF0Y2hfb3RoZXIgIT0gc291cmNlLnJtKCkpOworKworKyAgc2IocmQs IHNvdXJjZS5ybSgpLCBzb3VyY2Uub2Zmc2V0KCkpOworKyAgZm9yIChzaXplX3QgaSA9IDE7IGkg PD0gKE5CWVRFUyAtIDEpOyBpKyspIHsKKysgICAgc3JsaShzY3JhdGNoX290aGVyLCByZCwgaSAq IDgpOworKyAgICBzYihzY3JhdGNoX290aGVyLCBzb3VyY2Uucm0oKSwgc291cmNlLm9mZnNldCgp ICsgaSk7CisrICB9CisrfQorKworK3RlbXBsYXRlIDxpbnQgTkJZVEVTPgorK3ZvaWQgVHVyYm9B c3NlbWJsZXI6OlVuYWxpZ25lZEZTdG9yZUhlbHBlcihGUFVSZWdpc3RlciBmcmQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1lbU9wZXJhbmQmIHJz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBz Y3JhdGNoKSB7CisrICBEQ0hFQ0soc2NyYXRjaCAhPSBycy5ybSgpKTsKKysgIERDSEVDSyhOQllU RVMgPT0gOCB8fCBOQllURVMgPT0gNCk7CisrCisrICBpZiAoTkJZVEVTID09IDQpIHsKKysgICAg Zm12X3hfdyhzY3JhdGNoLCBmcmQpOworKyAgfSBlbHNlIHsKKysgICAgZm12X3hfZChzY3JhdGNo LCBmcmQpOworKyAgfQorKyAgVW5hbGlnbmVkU3RvcmVIZWxwZXI8TkJZVEVTPihzY3JhdGNoLCBy cyk7CisrfQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBSZWdfVCwgdHlwZW5hbWUgRnVuYz4KKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpBbGlnbmVkTG9hZEhlbHBlcihSZWdfVCB0YXJnZXQsIGNvbnN0 IE1lbU9wZXJhbmQmIHJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZ1bmMgZ2VuZXJhdG9yKSB7CisrICBNZW1PcGVyYW5kIHNvdXJjZSA9IHJzOworKyAgVXNlU2Ny YXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2Nv cGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgaWYgKE5lZWRBZGp1c3RCYXNlQW5k T2Zmc2V0KHNvdXJjZSkpIHsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWls YWJsZSgpID8gdGVtcHMuQWNxdWlyZSgpIDogdDU7CisrICAgIERDSEVDSyhzY3JhdGNoICE9IHJz LnJtKCkpOworKyAgICBBZGp1c3RCYXNlQW5kT2Zmc2V0KCZzb3VyY2UsIHNjcmF0Y2gpOworKyAg fQorKyAgZ2VuZXJhdG9yKHRhcmdldCwgc291cmNlKTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVu YW1lIFJlZ19ULCB0eXBlbmFtZSBGdW5jPgorK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkFsaWduZWRT dG9yZUhlbHBlcihSZWdfVCB2YWx1ZSwgY29uc3QgTWVtT3BlcmFuZCYgcnMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmMgZ2VuZXJhdG9yKSB7CisrICBNZW1P cGVyYW5kIHNvdXJjZSA9IHJzOworKyAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhp cyk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRo aXMpOworKyAgaWYgKE5lZWRBZGp1c3RCYXNlQW5kT2Zmc2V0KHNvdXJjZSkpIHsKKysgICAgUmVn aXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWlyZSgpIDog dDU7CisrICAgIC8vIG1ha2Ugc3VyZSBzY3JhdGNoIGRvZXMgbm90IG92ZXJ3cml0ZSB2YWx1ZQor KyAgICBpZiAoc3RkOjppc19zYW1lPFJlZ19ULCBSZWdpc3Rlcj46OnZhbHVlKQorKyAgICAgIERD SEVDSyhzY3JhdGNoLmNvZGUoKSAhPSB2YWx1ZS5jb2RlKCkpOworKyAgICBEQ0hFQ0soc2NyYXRj aCAhPSBycy5ybSgpKTsKKysgICAgQWRqdXN0QmFzZUFuZE9mZnNldCgmc291cmNlLCBzY3JhdGNo KTsKKysgIH0KKysgIGdlbmVyYXRvcih2YWx1ZSwgc291cmNlKTsKKyt9CisrCisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6VWx3KFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAg VW5hbGlnbmVkTG9hZEhlbHBlcjw0LCB0cnVlPihyZCwgcnMpOworK30KKysKKyt2b2lkIFR1cmJv QXNzZW1ibGVyOjpVbHd1KFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAg VW5hbGlnbmVkTG9hZEhlbHBlcjw0LCBmYWxzZT4ocmQsIHJzKTsKKyt9CisrCisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6VXN3KFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAg VW5hbGlnbmVkU3RvcmVIZWxwZXI8ND4ocmQsIHJzKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6VWxoKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgVW5hbGln bmVkTG9hZEhlbHBlcjwyLCB0cnVlPihyZCwgcnMpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1i bGVyOjpVbGh1KFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgVW5hbGln bmVkTG9hZEhlbHBlcjwyLCBmYWxzZT4ocmQsIHJzKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6VXNoKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgVW5hbGln bmVkU3RvcmVIZWxwZXI8Mj4ocmQsIHJzKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6 VWxkKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgVW5hbGlnbmVkTG9h ZEhlbHBlcjw4LCB0cnVlPihyZCwgcnMpOworK30KKysKKysvLyBMb2FkIGNvbnNlcXVlbnQgMzIt Yml0IHdvcmQgcGFpciBpbiA2NC1iaXQgcmVnLiBhbmQgcHV0IGZpcnN0IHdvcmQgaW4gbG93Cisr Ly8gYml0cywKKysvLyBzZWNvbmQgd29yZCBpbiBoaWdoIGJpdHMuCisrdm9pZCBNYWNyb0Fzc2Vt Ymxlcjo6TG9hZFdvcmRQYWlyKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaCkgeworKyAg THd1KHJkLCBycyk7CisrICBMdyhzY3JhdGNoLCBNZW1PcGVyYW5kKHJzLnJtKCksIHJzLm9mZnNl dCgpICsga1BvaW50ZXJTaXplIC8gMikpOworKyAgc2xsaShzY3JhdGNoLCBzY3JhdGNoLCAzMik7 CisrICBBZGQ2NChyZCwgcmQsIHNjcmF0Y2gpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpVc2QoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzKSB7CisrICBVbmFsaWduZWRT dG9yZUhlbHBlcjw4PihyZCwgcnMpOworK30KKysKKysvLyBEbyA2NC1iaXQgc3RvcmUgYXMgdHdv IGNvbnNlcXVlbnQgMzItYml0IHN0b3JlcyB0byB1bmFsaWduZWQgYWRkcmVzcy4KKyt2b2lkIE1h Y3JvQXNzZW1ibGVyOjpTdG9yZVdvcmRQYWlyKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5k JiBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0 Y2gpIHsKKysgIFN3KHJkLCBycyk7CisrICBzcmFpKHNjcmF0Y2gsIHJkLCAzMik7CisrICBTdyhz Y3JhdGNoLCBNZW1PcGVyYW5kKHJzLnJtKCksIHJzLm9mZnNldCgpICsga1BvaW50ZXJTaXplIC8g MikpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpVTG9hZEZsb2F0KEZQVVJlZ2lzdGVy IGZkLCBjb25zdCBNZW1PcGVyYW5kJiBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKKysgIFVuYWxpZ25lZEZMb2FkSGVscGVyPDQ+KGZkLCBy cywgc2NyYXRjaCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlVTdG9yZUZsb2F0KEZQ VVJlZ2lzdGVyIGZkLCBjb25zdCBNZW1PcGVyYW5kJiBycywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlciBzY3JhdGNoKSB7CisrICBVbmFsaWduZWRGU3RvcmVIZWxw ZXI8ND4oZmQsIHJzLCBzY3JhdGNoKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6VUxv YWREb3VibGUoRlBVUmVnaXN0ZXIgZmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKKysgIFVuYWxpZ25l ZEZMb2FkSGVscGVyPDg+KGZkLCBycywgc2NyYXRjaCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3Nl bWJsZXI6OlVTdG9yZURvdWJsZShGUFVSZWdpc3RlciBmZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsK KysgIFVuYWxpZ25lZEZTdG9yZUhlbHBlcjw4PihmZCwgcnMsIHNjcmF0Y2gpOworK30KKysKKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpMYihSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMp IHsKKysgIGF1dG8gZm4gPSBbdGhpc10oUmVnaXN0ZXIgdGFyZ2V0LCBjb25zdCBNZW1PcGVyYW5k JiBzb3VyY2UpIHsKKysgICAgdGhpcy0+bGIodGFyZ2V0LCBzb3VyY2Uucm0oKSwgc291cmNlLm9m ZnNldCgpKTsKKysgIH07CisrICBBbGlnbmVkTG9hZEhlbHBlcihyZCwgcnMsIGZuKTsKKyt9Cisr Cisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TGJ1KFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5k JiBycykgeworKyAgYXV0byBmbiA9IFt0aGlzXShSZWdpc3RlciB0YXJnZXQsIGNvbnN0IE1lbU9w ZXJhbmQmIHNvdXJjZSkgeworKyAgICB0aGlzLT5sYnUodGFyZ2V0LCBzb3VyY2Uucm0oKSwgc291 cmNlLm9mZnNldCgpKTsKKysgIH07CisrICBBbGlnbmVkTG9hZEhlbHBlcihyZCwgcnMsIGZuKTsK Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U2IoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9w ZXJhbmQmIHJzKSB7CisrICBhdXRvIGZuID0gW3RoaXNdKFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBN ZW1PcGVyYW5kJiBzb3VyY2UpIHsKKysgICAgdGhpcy0+c2IodmFsdWUsIHNvdXJjZS5ybSgpLCBz b3VyY2Uub2Zmc2V0KCkpOworKyAgfTsKKysgIEFsaWduZWRTdG9yZUhlbHBlcihyZCwgcnMsIGZu KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TGgoUmVnaXN0ZXIgcmQsIGNvbnN0IE1l bU9wZXJhbmQmIHJzKSB7CisrICBhdXRvIGZuID0gW3RoaXNdKFJlZ2lzdGVyIHRhcmdldCwgY29u c3QgTWVtT3BlcmFuZCYgc291cmNlKSB7CisrICAgIHRoaXMtPmxoKHRhcmdldCwgc291cmNlLnJt KCksIHNvdXJjZS5vZmZzZXQoKSk7CisrICB9OworKyAgQWxpZ25lZExvYWRIZWxwZXIocmQsIHJz LCBmbik7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxodShSZWdpc3RlciByZCwgY29u c3QgTWVtT3BlcmFuZCYgcnMpIHsKKysgIGF1dG8gZm4gPSBbdGhpc10oUmVnaXN0ZXIgdGFyZ2V0 LCBjb25zdCBNZW1PcGVyYW5kJiBzb3VyY2UpIHsKKysgICAgdGhpcy0+bGh1KHRhcmdldCwgc291 cmNlLnJtKCksIHNvdXJjZS5vZmZzZXQoKSk7CisrICB9OworKyAgQWxpZ25lZExvYWRIZWxwZXIo cmQsIHJzLCBmbik7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlNoKFJlZ2lzdGVyIHJk LCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgYXV0byBmbiA9IFt0aGlzXShSZWdpc3RlciB2 YWx1ZSwgY29uc3QgTWVtT3BlcmFuZCYgc291cmNlKSB7CisrICAgIHRoaXMtPnNoKHZhbHVlLCBz b3VyY2Uucm0oKSwgc291cmNlLm9mZnNldCgpKTsKKysgIH07CisrICBBbGlnbmVkU3RvcmVIZWxw ZXIocmQsIHJzLCBmbik7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6Okx3KFJlZ2lzdGVy IHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgYXV0byBmbiA9IFt0aGlzXShSZWdpc3Rl ciB0YXJnZXQsIGNvbnN0IE1lbU9wZXJhbmQmIHNvdXJjZSkgeworKyAgICB0aGlzLT5sdyh0YXJn ZXQsIHNvdXJjZS5ybSgpLCBzb3VyY2Uub2Zmc2V0KCkpOworKyAgfTsKKysgIEFsaWduZWRMb2Fk SGVscGVyKHJkLCBycywgZm4pOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpMd3UoUmVn aXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzKSB7CisrICBhdXRvIGZuID0gW3RoaXNdKFJl Z2lzdGVyIHRhcmdldCwgY29uc3QgTWVtT3BlcmFuZCYgc291cmNlKSB7CisrICAgIHRoaXMtPmx3 dSh0YXJnZXQsIHNvdXJjZS5ybSgpLCBzb3VyY2Uub2Zmc2V0KCkpOworKyAgfTsKKysgIEFsaWdu ZWRMb2FkSGVscGVyKHJkLCBycywgZm4pOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpT dyhSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpIHsKKysgIGF1dG8gZm4gPSBbdGhp c10oUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IE1lbU9wZXJhbmQmIHNvdXJjZSkgeworKyAgICB0aGlz LT5zdyh2YWx1ZSwgc291cmNlLnJtKCksIHNvdXJjZS5vZmZzZXQoKSk7CisrICB9OworKyAgQWxp Z25lZFN0b3JlSGVscGVyKHJkLCBycywgZm4pOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpMZChSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpIHsKKysgIGF1dG8gZm4gPSBb dGhpc10oUmVnaXN0ZXIgdGFyZ2V0LCBjb25zdCBNZW1PcGVyYW5kJiBzb3VyY2UpIHsKKysgICAg dGhpcy0+bGQodGFyZ2V0LCBzb3VyY2Uucm0oKSwgc291cmNlLm9mZnNldCgpKTsKKysgIH07Cisr ICBBbGlnbmVkTG9hZEhlbHBlcihyZCwgcnMsIGZuKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6U2QoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzKSB7CisrICBhdXRvIGZu ID0gW3RoaXNdKFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBNZW1PcGVyYW5kJiBzb3VyY2UpIHsKKysg ICAgdGhpcy0+c2QodmFsdWUsIHNvdXJjZS5ybSgpLCBzb3VyY2Uub2Zmc2V0KCkpOworKyAgfTsK KysgIEFsaWduZWRTdG9yZUhlbHBlcihyZCwgcnMsIGZuKTsKKyt9CisrCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6TG9hZEZsb2F0KEZQVVJlZ2lzdGVyIGZkLCBjb25zdCBNZW1PcGVyYW5kJiBzcmMp IHsKKysgIGF1dG8gZm4gPSBbdGhpc10oRlBVUmVnaXN0ZXIgdGFyZ2V0LCBjb25zdCBNZW1PcGVy YW5kJiBzb3VyY2UpIHsKKysgICAgdGhpcy0+Zmx3KHRhcmdldCwgc291cmNlLnJtKCksIHNvdXJj ZS5vZmZzZXQoKSk7CisrICB9OworKyAgQWxpZ25lZExvYWRIZWxwZXIoZmQsIHNyYywgZm4pOwor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpTdG9yZUZsb2F0KEZQVVJlZ2lzdGVyIGZzLCBj b25zdCBNZW1PcGVyYW5kJiBzcmMpIHsKKysgIGF1dG8gZm4gPSBbdGhpc10oRlBVUmVnaXN0ZXIg dmFsdWUsIGNvbnN0IE1lbU9wZXJhbmQmIHNvdXJjZSkgeworKyAgICB0aGlzLT5mc3codmFsdWUs IHNvdXJjZS5ybSgpLCBzb3VyY2Uub2Zmc2V0KCkpOworKyAgfTsKKysgIEFsaWduZWRTdG9yZUhl bHBlcihmcywgc3JjLCBmbik7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWREb3Vi bGUoRlBVUmVnaXN0ZXIgZmQsIGNvbnN0IE1lbU9wZXJhbmQmIHNyYykgeworKyAgYXV0byBmbiA9 IFt0aGlzXShGUFVSZWdpc3RlciB0YXJnZXQsIGNvbnN0IE1lbU9wZXJhbmQmIHNvdXJjZSkgewor KyAgICB0aGlzLT5mbGQodGFyZ2V0LCBzb3VyY2Uucm0oKSwgc291cmNlLm9mZnNldCgpKTsKKysg IH07CisrICBBbGlnbmVkTG9hZEhlbHBlcihmZCwgc3JjLCBmbik7CisrfQorKworK3ZvaWQgVHVy Ym9Bc3NlbWJsZXI6OlN0b3JlRG91YmxlKEZQVVJlZ2lzdGVyIGZzLCBjb25zdCBNZW1PcGVyYW5k JiBzcmMpIHsKKysgIGF1dG8gZm4gPSBbdGhpc10oRlBVUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IE1l bU9wZXJhbmQmIHNvdXJjZSkgeworKyAgICB0aGlzLT5mc2QodmFsdWUsIHNvdXJjZS5ybSgpLCBz b3VyY2Uub2Zmc2V0KCkpOworKyAgfTsKKysgIEFsaWduZWRTdG9yZUhlbHBlcihmcywgc3JjLCBm bik7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxsKFJlZ2lzdGVyIHJkLCBjb25zdCBN ZW1PcGVyYW5kJiBycykgeworKyAgYm9vbCBpc19vbmVfaW5zdHJ1Y3Rpb24gPSBycy5vZmZzZXQo KSA9PSAwOworKyAgaWYgKGlzX29uZV9pbnN0cnVjdGlvbikgeworKyAgICBscl93KGZhbHNlLCBm YWxzZSwgcmQsIHJzLnJtKCkpOworKyAgfSBlbHNlIHsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVy U2NvcGUgdGVtcHModGhpcyk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJl KCk7CisrICAgIEFkZDY0KHNjcmF0Y2gsIHJzLnJtKCksIHJzLm9mZnNldCgpKTsKKysgICAgbHJf dyhmYWxzZSwgZmFsc2UsIHJkLCBzY3JhdGNoKTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6TGxkKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycykgeworKyAgYm9v bCBpc19vbmVfaW5zdHJ1Y3Rpb24gPSBycy5vZmZzZXQoKSA9PSAwOworKyAgaWYgKGlzX29uZV9p bnN0cnVjdGlvbikgeworKyAgICBscl9kKGZhbHNlLCBmYWxzZSwgcmQsIHJzLnJtKCkpOworKyAg fSBlbHNlIHsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAg IFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIEFkZDY0KHNjcmF0Y2gs IHJzLnJtKCksIHJzLm9mZnNldCgpKTsKKysgICAgbHJfZChmYWxzZSwgZmFsc2UsIHJkLCBzY3Jh dGNoKTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6U2MoUmVnaXN0ZXIgcmQs IGNvbnN0IE1lbU9wZXJhbmQmIHJzKSB7CisrICBib29sIGlzX29uZV9pbnN0cnVjdGlvbiA9IHJz Lm9mZnNldCgpID09IDA7CisrICBpZiAoaXNfb25lX2luc3RydWN0aW9uKSB7CisrICAgIHNjX3co ZmFsc2UsIGZhbHNlLCByZCwgcnMucm0oKSwgcmQpOworKyAgfSBlbHNlIHsKKysgICAgVXNlU2Ny YXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0 ZW1wcy5BY3F1aXJlKCk7CisrICAgIEFkZDY0KHNjcmF0Y2gsIHJzLnJtKCksIHJzLm9mZnNldCgp KTsKKysgICAgc2NfdyhmYWxzZSwgZmFsc2UsIHJkLCBzY3JhdGNoLCByZCk7CisrICB9CisrfQor KworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlNjZChSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFu ZCYgcnMpIHsKKysgIGJvb2wgaXNfb25lX2luc3RydWN0aW9uID0gcnMub2Zmc2V0KCkgPT0gMDsK KysgIGlmIChpc19vbmVfaW5zdHJ1Y3Rpb24pIHsKKysgICAgc2NfZChmYWxzZSwgZmFsc2UsIHJk LCBycy5ybSgpLCByZCk7CisrICB9IGVsc2UgeworKyAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29w ZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsK KysgICAgQWRkNjQoc2NyYXRjaCwgcnMucm0oKSwgcnMub2Zmc2V0KCkpOworKyAgICBzY19kKGZh bHNlLCBmYWxzZSwgcmQsIHNjcmF0Y2gsIHJkKTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6bGkoUmVnaXN0ZXIgZHN0LCBIYW5kbGU8SGVhcE9iamVjdD4gdmFsdWUsIExpRmxh Z3MgbW9kZSkgeworKyAgLy8gVE9ETyhqZ3J1YmVyLHY4Ojg4ODcpOiBBbHNvIGNvbnNpZGVyIGEg cm9vdC1yZWxhdGl2ZSBsb2FkIHdoZW4gZ2VuZXJhdGluZworKyAgLy8gbm9uLWlzb2xhdGUtaW5k ZXBlbmRlbnQgY29kZS4gSW4gbWFueSBjYXNlcyBpdCBtaWdodCBiZSBjaGVhcGVyIHRoYW4KKysg IC8vIGVtYmVkZGluZyB0aGUgcmVsb2NhdGFibGUgdmFsdWUuCisrICBpZiAocm9vdF9hcnJheV9h dmFpbGFibGVfICYmIG9wdGlvbnMoKS5pc29sYXRlX2luZGVwZW5kZW50X2NvZGUpIHsKKysgICAg SW5kaXJlY3RMb2FkQ29uc3RhbnQoZHN0LCB2YWx1ZSk7CisrICAgIHJldHVybjsKKysgIH0KKysg IGxpKGRzdCwgT3BlcmFuZCh2YWx1ZSksIG1vZGUpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1i bGVyOjpsaShSZWdpc3RlciBkc3QsIEV4dGVybmFsUmVmZXJlbmNlIHZhbHVlLCBMaUZsYWdzIG1v ZGUpIHsKKysgIC8vIFRPRE8oamdydWJlcix2ODo4ODg3KTogQWxzbyBjb25zaWRlciBhIHJvb3Qt cmVsYXRpdmUgbG9hZCB3aGVuIGdlbmVyYXRpbmcKKysgIC8vIG5vbi1pc29sYXRlLWluZGVwZW5k ZW50IGNvZGUuIEluIG1hbnkgY2FzZXMgaXQgbWlnaHQgYmUgY2hlYXBlciB0aGFuCisrICAvLyBl bWJlZGRpbmcgdGhlIHJlbG9jYXRhYmxlIHZhbHVlLgorKyAgaWYgKHJvb3RfYXJyYXlfYXZhaWxh YmxlXyAmJiBvcHRpb25zKCkuaXNvbGF0ZV9pbmRlcGVuZGVudF9jb2RlKSB7CisrICAgIEluZGly ZWN0TG9hZEV4dGVybmFsUmVmZXJlbmNlKGRzdCwgdmFsdWUpOworKyAgICByZXR1cm47CisrICB9 CisrICBsaShkc3QsIE9wZXJhbmQodmFsdWUpLCBtb2RlKTsKKyt9CisrCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6bGkoUmVnaXN0ZXIgZHN0LCBjb25zdCBTdHJpbmdDb25zdGFudEJhc2UqIHN0cmlu ZywKKysgICAgICAgICAgICAgICAgICAgICAgICBMaUZsYWdzIG1vZGUpIHsKKysgIGxpKGRzdCwg T3BlcmFuZDo6RW1iZWRkZWRTdHJpbmdDb25zdGFudChzdHJpbmcpLCBtb2RlKTsKKyt9CisrCisr c3RhdGljIGlubGluZSBpbnQgSW5zdHJDb3VudEZvckxpTG93ZXIzMkJpdChpbnQ2NF90IHZhbHVl KSB7CisrICBpbnQ2NF90IEhpMjAgPSAoKHZhbHVlICsgMHg4MDApID4+IDEyKTsKKysgIGludDY0 X3QgTG8xMiA9IHZhbHVlIDw8IDUyID4+IDUyOworKyAgaWYgKEhpMjAgPT0gMCB8fCBMbzEyID09 IDApIHsKKysgICAgcmV0dXJuIDE7CisrICB9CisrICByZXR1cm4gMjsKKyt9CisrCisraW50IFR1 cmJvQXNzZW1ibGVyOjpJbnN0ckNvdW50Rm9yTGk2NEJpdChpbnQ2NF90IHZhbHVlKSB7CisrICBp ZiAoaXNfaW50MzIodmFsdWUpKSB7CisrICAgIHJldHVybiBJbnN0ckNvdW50Rm9yTGlMb3dlcjMy Qml0KHZhbHVlKTsKKysgIH0gZWxzZSB7CisrICAgIHJldHVybiBsaV9jb3VudCh2YWx1ZSk7Cisr ICB9CisrICBVTlJFQUNIQUJMRSgpOworKyAgcmV0dXJuIElOVF9NQVg7CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OmxpX29wdGltaXplZChSZWdpc3RlciByZCwgT3BlcmFuZCBqLCBMaUZs YWdzIG1vZGUpIHsKKysgIERDSEVDSyghai5pc19yZWcoKSk7CisrICBEQ0hFQ0soIU11c3RVc2VS ZWcoai5ybW9kZSgpKSk7CisrICBEQ0hFQ0sobW9kZSA9PSBPUFRJTUlaRV9TSVpFKTsKKysgIFJW X2xpKHJkLCBqLmltbWVkaWF0ZSgpKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6bGko UmVnaXN0ZXIgcmQsIE9wZXJhbmQgaiwgTGlGbGFncyBtb2RlKSB7CisrICBEQ0hFQ0soIWouaXNf cmVnKCkpOworKyAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9v bCh0aGlzKTsKKysgIGlmICghTXVzdFVzZVJlZyhqLnJtb2RlKCkpICYmIG1vZGUgPT0gT1BUSU1J WkVfU0laRSkgeworKyAgICBSVl9saShyZCwgai5pbW1lZGlhdGUoKSk7CisrICB9IGVsc2UgaWYg KE11c3RVc2VSZWcoai5ybW9kZSgpKSkgeworKyAgICBpbnQ2NF90IGltbWVkaWF0ZTsKKysgICAg aWYgKGouSXNIZWFwT2JqZWN0UmVxdWVzdCgpKSB7CisrICAgICAgUmVxdWVzdEhlYXBPYmplY3Qo ai5oZWFwX29iamVjdF9yZXF1ZXN0KCkpOworKyAgICAgIGltbWVkaWF0ZSA9IDA7CisrICAgIH0g ZWxzZSB7CisrICAgICAgaW1tZWRpYXRlID0gai5pbW1lZGlhdGUoKTsKKysgICAgfQorKworKyAg ICBSZWNvcmRSZWxvY0luZm8oai5ybW9kZSgpLCBpbW1lZGlhdGUpOworKyAgICAvLyBGSVhNRShS SVNDX1YpOiBEb2VzIHRoaXMgY2FzZSBuZWVkIHRvIGJlIGNvbnN0YW50IHNpemU/CisrICAgIGxp X2NvbnN0YW50KHJkLCBpbW1lZGlhdGUpOworKyAgfSBlbHNlIGlmIChtb2RlID09IEFERFJFU1Nf TE9BRCkgeworKyAgICAvLyBXZSBhbHdheXMgbmVlZCB0aGUgc2FtZSBudW1iZXIgb2YgaW5zdHJ1 Y3Rpb25zIGFzIHdlIG1heSBuZWVkIHRvIHBhdGNoCisrICAgIC8vIHRoaXMgY29kZSB0byBsb2Fk IGFub3RoZXIgdmFsdWUgd2hpY2ggbWF5IG5lZWQgYWxsIDggaW5zdHJ1Y3Rpb25zLgorKyAgICBS ZWNvcmRSZWxvY0luZm8oUmVsb2NJbmZvOjpJTlRFUk5BTF9SRUZFUkVOQ0VfRU5DT0RFRCk7Cisr ICAgIGxpX2NvbnN0YW50KHJkLCBqLmltbWVkaWF0ZSgpKTsKKysgIH0gZWxzZSB7ICAvLyBtb2Rl ID09IENPTlNUQU5UX1NJWkUgLSBhbHdheXMgZW1pdCB0aGUgc2FtZSBpbnN0cnVjdGlvbgorKyAg ICAgICAgICAgIC8vIHNlcXVlbmNlLgorKyAgICBsaV9jb25zdGFudChyZCwgai5pbW1lZGlhdGUo KSk7CisrICB9CisrfQorKworK3N0YXRpYyBSZWdMaXN0IHRfcmVncyA9IFJlZ2lzdGVyOjpMaXN0 T2YodDAsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYpOworK3N0YXRpYyBSZWdMaXN0IGFfcmVncyA9 IFJlZ2lzdGVyOjpMaXN0T2YoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3KTsKKytzdGF0 aWMgUmVnTGlzdCBzX3JlZ3MgPQorKyAgICBSZWdpc3Rlcjo6TGlzdE9mKHMxLCBzMiwgczMsIHM0 LCBzNSwgczYsIHM3LCBzOCwgczksIHMxMCwgczExKTsKKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpNdWx0aVB1c2goUmVnTGlzdCByZWdzKSB7CisrICBpbnQxNl90IG51bV90b19wdXNoID0gYmFz ZTo6Yml0czo6Q291bnRQb3B1bGF0aW9uKHJlZ3MpOworKyAgaW50MTZfdCBzdGFja19vZmZzZXQg PSBudW1fdG9fcHVzaCAqIGtQb2ludGVyU2l6ZTsKKysKKysjZGVmaW5lIFRFU1RfQU5EX1BVU0hf UkVHKHJlZykgICAgICAgICAgICAgXAorKyAgaWYgKChyZWdzICYgcmVnLmJpdCgpKSAhPSAwKSB7 ICAgICAgICAgICBcCisrICAgIHN0YWNrX29mZnNldCAtPSBrUG9pbnRlclNpemU7ICAgICAgICAg IFwKKysgICAgU2QocmVnLCBNZW1PcGVyYW5kKHNwLCBzdGFja19vZmZzZXQpKTsgXAorKyAgICBy ZWdzICY9IH5yZWcuYml0KCk7ICAgICAgICAgICAgICAgICAgICBcCisrICB9CisrCisrI2RlZmlu ZSBUX1JFR1MoVikgVih0NikgVih0NSkgVih0NCkgVih0MykgVih0MikgVih0MSkgVih0MCkKKysj ZGVmaW5lIEFfUkVHUyhWKSBWKGE3KSBWKGE2KSBWKGE1KSBWKGE0KSBWKGEzKSBWKGEyKSBWKGEx KSBWKGEwKQorKyNkZWZpbmUgU19SRUdTKFYpIFwKKysgIFYoczExKSBWKHMxMCkgVihzOSkgVihz OCkgVihzNykgVihzNikgVihzNSkgVihzNCkgVihzMykgVihzMikgVihzMSkKKysKKysgIFN1YjY0 KHNwLCBzcCwgT3BlcmFuZChzdGFja19vZmZzZXQpKTsKKysKKysgIC8vIENlcnRhaW4gdXNhZ2Ug b2YgTXVsdGlQdXNoIHJlcXVpcmVzIHRoYXQgcmVnaXN0ZXJzIGFyZSBwdXNoZWQgb250byB0aGUK KysgIC8vIHN0YWNrIGluIGEgcGFydGljdWxhcjogcmEsIGZwLCBzcCwgZ3AsIC4uLi4gKGJhc2lj YWxseSBpbiB0aGUgZGVjcmVhc2luZworKyAgLy8gb3JkZXIgb2YgcmVnaXN0ZXIgbnVtYmVycyBh Y2NvcmRpbmcgdG8gTUlQUyByZWdpc3RlciBudW1iZXJzKQorKyAgVEVTVF9BTkRfUFVTSF9SRUco cmEpOworKyAgVEVTVF9BTkRfUFVTSF9SRUcoZnApOworKyAgVEVTVF9BTkRfUFVTSF9SRUcoc3Ap OworKyAgVEVTVF9BTkRfUFVTSF9SRUcoZ3ApOworKyAgVEVTVF9BTkRfUFVTSF9SRUcodHApOwor KyAgaWYgKChyZWdzICYgc19yZWdzKSAhPSAwKSB7CisrICAgIFNfUkVHUyhURVNUX0FORF9QVVNI X1JFRykKKysgIH0KKysgIGlmICgocmVncyAmIGFfcmVncykgIT0gMCkgeworKyAgICBBX1JFR1Mo VEVTVF9BTkRfUFVTSF9SRUcpCisrICB9CisrICBpZiAoKHJlZ3MgJiB0X3JlZ3MpICE9IDApIHsK KysgICAgVF9SRUdTKFRFU1RfQU5EX1BVU0hfUkVHKQorKyAgfQorKworKyAgRENIRUNLKHJlZ3Mg PT0gMCk7CisrCisrI3VuZGVmIFRFU1RfQU5EX1BVU0hfUkVHCisrI3VuZGVmIFRfUkVHUworKyN1 bmRlZiBBX1JFR1MKKysjdW5kZWYgU19SRUdTCisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6 Ok11bHRpUG9wKFJlZ0xpc3QgcmVncykgeworKyAgaW50MTZfdCBzdGFja19vZmZzZXQgPSAwOwor KworKyNkZWZpbmUgVEVTVF9BTkRfUE9QX1JFRyhyZWcpICAgICAgICAgICAgICBcCisrICBpZiAo KHJlZ3MgJiByZWcuYml0KCkpICE9IDApIHsgICAgICAgICAgIFwKKysgICAgTGQocmVnLCBNZW1P cGVyYW5kKHNwLCBzdGFja19vZmZzZXQpKTsgXAorKyAgICBzdGFja19vZmZzZXQgKz0ga1BvaW50 ZXJTaXplOyAgICAgICAgICBcCisrICAgIHJlZ3MgJj0gfnJlZy5iaXQoKTsgICAgICAgICAgICAg ICAgICAgIFwKKysgIH0KKysKKysjZGVmaW5lIFRfUkVHUyhWKSBWKHQwKSBWKHQxKSBWKHQyKSBW KHQzKSBWKHQ0KSBWKHQ1KSBWKHQ2KQorKyNkZWZpbmUgQV9SRUdTKFYpIFYoYTApIFYoYTEpIFYo YTIpIFYoYTMpIFYoYTQpIFYoYTUpIFYoYTYpIFYoYTcpCisrI2RlZmluZSBTX1JFR1MoVikgXAor KyAgVihzMSkgVihzMikgVihzMykgVihzNCkgVihzNSkgVihzNikgVihzNykgVihzOCkgVihzOSkg VihzMTApIFYoczExKQorKworKyAgLy8gTXVsdGlQb3AgcG9wcyBmcm9tIHRoZSBzdGFjayBpbiBy ZXZlcnNlIG9yZGVyIGFzIE11bHRpUHVzaAorKyAgaWYgKChyZWdzICYgdF9yZWdzKSAhPSAwKSB7 CisrICAgIFRfUkVHUyhURVNUX0FORF9QT1BfUkVHKQorKyAgfQorKyAgaWYgKChyZWdzICYgYV9y ZWdzKSAhPSAwKSB7CisrICAgIEFfUkVHUyhURVNUX0FORF9QT1BfUkVHKQorKyAgfQorKyAgaWYg KChyZWdzICYgc19yZWdzKSAhPSAwKSB7CisrICAgIFNfUkVHUyhURVNUX0FORF9QT1BfUkVHKQor KyAgfQorKyAgVEVTVF9BTkRfUE9QX1JFRyh0cCk7CisrICBURVNUX0FORF9QT1BfUkVHKGdwKTsK KysgIFRFU1RfQU5EX1BPUF9SRUcoc3ApOworKyAgVEVTVF9BTkRfUE9QX1JFRyhmcCk7CisrICBU RVNUX0FORF9QT1BfUkVHKHJhKTsKKysKKysgIERDSEVDSyhyZWdzID09IDApOworKworKyAgYWRk aShzcCwgc3AsIHN0YWNrX29mZnNldCk7CisrCisrI3VuZGVmIFRFU1RfQU5EX1BPUF9SRUcKKysj dW5kZWYgVF9SRUdTCisrI3VuZGVmIFNfUkVHUworKyN1bmRlZiBBX1JFR1MKKyt9CisrCisrdm9p ZCBUdXJib0Fzc2VtYmxlcjo6TXVsdGlQdXNoRlBVKFJlZ0xpc3QgcmVncykgeworKyAgaW50MTZf dCBudW1fdG9fcHVzaCA9IGJhc2U6OmJpdHM6OkNvdW50UG9wdWxhdGlvbihyZWdzKTsKKysgIGlu dDE2X3Qgc3RhY2tfb2Zmc2V0ID0gbnVtX3RvX3B1c2ggKiBrRG91YmxlU2l6ZTsKKysKKysgIFN1 YjY0KHNwLCBzcCwgT3BlcmFuZChzdGFja19vZmZzZXQpKTsKKysgIGZvciAoaW50MTZfdCBpID0g a051bVJlZ2lzdGVycyAtIDE7IGkgPj0gMDsgaS0tKSB7CisrICAgIGlmICgocmVncyAmICgxIDw8 IGkpKSAhPSAwKSB7CisrICAgICAgc3RhY2tfb2Zmc2V0IC09IGtEb3VibGVTaXplOworKyAgICAg IFN0b3JlRG91YmxlKEZQVVJlZ2lzdGVyOjpmcm9tX2NvZGUoaSksIE1lbU9wZXJhbmQoc3AsIHN0 YWNrX29mZnNldCkpOworKyAgICB9CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6 Ok11bHRpUG9wRlBVKFJlZ0xpc3QgcmVncykgeworKyAgaW50MTZfdCBzdGFja19vZmZzZXQgPSAw OworKworKyAgZm9yIChpbnQxNl90IGkgPSAwOyBpIDwga051bVJlZ2lzdGVyczsgaSsrKSB7Cisr ICAgIGlmICgocmVncyAmICgxIDw8IGkpKSAhPSAwKSB7CisrICAgICAgTG9hZERvdWJsZShGUFVS ZWdpc3Rlcjo6ZnJvbV9jb2RlKGkpLCBNZW1PcGVyYW5kKHNwLCBzdGFja19vZmZzZXQpKTsKKysg ICAgICBzdGFja19vZmZzZXQgKz0ga0RvdWJsZVNpemU7CisrICAgIH0KKysgIH0KKysgIGFkZGko c3AsIHNwLCBzdGFja19vZmZzZXQpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpFeHRy YWN0Qml0cyhSZWdpc3RlciBydCwgUmVnaXN0ZXIgcnMsIHVpbnQxNl90IHBvcywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBzaXplLCBib29sIHNpZ25fZXh0ZW5k KSB7CisrICBEQ0hFQ0socG9zIDwgNjQgJiYgMCA8IHNpemUgJiYgc2l6ZSA8PSA2NCAmJiAwIDwg cG9zICsgc2l6ZSAmJgorKyAgICAgICAgIHBvcyArIHNpemUgPD0gNjQpOworKyAgc2xsaShydCwg cnMsIDY0IC0gKHBvcyArIHNpemUpKTsKKysgIGlmIChzaWduX2V4dGVuZCkgeworKyAgICBzcmFp KHJ0LCBydCwgNjQgLSBzaXplKTsKKysgIH0gZWxzZSB7CisrICAgIHNybGkocnQsIHJ0LCA2NCAt IHNpemUpOworKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpJbnNlcnRCaXRzKFJl Z2lzdGVyIGRlc3QsIFJlZ2lzdGVyIHNvdXJjZSwgUmVnaXN0ZXIgcG9zLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUpIHsKKysgIERDSEVDSyhzaXplIDwgNjQpOwor KyAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICBSZWdpc3RlciBtYXNr ID0gdGVtcHMuQWNxdWlyZSgpOworKyAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3Ry YW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgIFJlZ2lzdGVyIHNvdXJjZV8gPSB0ZW1wcy5oYXNBdmFp bGFibGUoKSA/IHRlbXBzLkFjcXVpcmUoKSA6IHQ1OworKyAgLy8gQ3JlYXRlIGEgbWFzayBvZiB0 aGUgbGVuZ3RoPXNpemUuCisrICBsaShtYXNrLCAxKTsKKysgIHNsbGkobWFzaywgbWFzaywgc2l6 ZSk7CisrICBhZGRpKG1hc2ssIG1hc2ssIC0xKTsKKysgIGFuZF8oc291cmNlXywgbWFzaywgc291 cmNlKTsKKysgIHNsbChzb3VyY2VfLCBzb3VyY2VfLCBwb3MpOworKyAgLy8gTWFrZSBhIG1hc2sg Y29udGFpbmluZyAwJ3MuIDAncyBzdGFydCBhdCAicG9zIiB3aXRoIGxlbmd0aD1zaXplLgorKyAg c2xsKG1hc2ssIG1hc2ssIHBvcyk7CisrICBub3RfKG1hc2ssIG1hc2spOworKyAgLy8gY3V0IGFy ZWEgZm9yIGluc2VydGlvbiBvZiBzb3VyY2UuCisrICBhbmRfKGRlc3QsIG1hc2ssIGRlc3QpOwor KyAgLy8gaW5zZXJ0IHNvdXJjZQorKyAgb3JfKGRlc3QsIGRlc3QsIHNvdXJjZV8pOworK30KKysK Kyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpOZWdfcyhGUFVSZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIg ZnMpIHsgZm5lZ19zKGZkLCBmcyk7IH0KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpOZWdfZChG UFVSZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIgZnMpIHsgZm5lZ19kKGZkLCBmcyk7IH0KKysKKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpDdnRfZF91dyhGUFVSZWdpc3RlciBmZCwgUmVnaXN0ZXIgcnMp IHsKKysgIC8vIENvbnZlcnQgcnMgdG8gYSBGUCB2YWx1ZSBpbiBmZC4KKysgIGZjdnRfZF93dShm ZCwgcnMpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpDdnRfZF93KEZQVVJlZ2lzdGVy IGZkLCBSZWdpc3RlciBycykgeworKyAgLy8gQ29udmVydCBycyB0byBhIEZQIHZhbHVlIGluIGZk LgorKyAgZmN2dF9kX3coZmQsIHJzKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q3Z0 X2RfdWwoRlBVUmVnaXN0ZXIgZmQsIFJlZ2lzdGVyIHJzKSB7CisrICAvLyBDb252ZXJ0IHJzIHRv IGEgRlAgdmFsdWUgaW4gZmQuCisrICBmY3Z0X2RfbHUoZmQsIHJzKTsKKyt9CisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6Q3Z0X3NfdXcoRlBVUmVnaXN0ZXIgZmQsIFJlZ2lzdGVyIHJzKSB7Cisr ICAvLyBDb252ZXJ0IHJzIHRvIGEgRlAgdmFsdWUgaW4gZmQuCisrICBmY3Z0X3Nfd3UoZmQsIHJz KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q3Z0X3NfdyhGUFVSZWdpc3RlciBmZCwg UmVnaXN0ZXIgcnMpIHsKKysgIC8vIENvbnZlcnQgcnMgdG8gYSBGUCB2YWx1ZSBpbiBmZC4KKysg IGZjdnRfc193KGZkLCBycyk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkN2dF9zX3Vs KEZQVVJlZ2lzdGVyIGZkLCBSZWdpc3RlciBycykgeworKyAgLy8gQ29udmVydCBycyB0byBhIEZQ IHZhbHVlIGluIGZkLgorKyAgZmN2dF9zX2x1KGZkLCBycyk7CisrfQorKworK3RlbXBsYXRlIDx0 eXBlbmFtZSBDdnRGdW5jPgorK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlJvdW5kRmxvYXRpbmdQb2lu dFRvSW50ZWdlcihSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJlc3VsdCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Z0RnVuYyBmY3Z0 X2dlbmVyYXRvcikgeworKyAgLy8gU2F2ZSBjc3JfZmZsYWdzIHRvIHNjcmF0Y2ggJiBjbGVhciBl eGNlcHRpb24gZmxhZ3MKKysgIGlmIChyZXN1bHQuaXNfdmFsaWQoKSkgeworKyAgICBCbG9ja1Ry YW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgICBVc2VT Y3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9 IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWlyZSgpIDogdDU7CisrCisrICAgIGlu dCBleGNlcHRpb25fZmxhZ3MgPSBrSW52YWxpZE9wZXJhdGlvbjsKKysgICAgY3NycmNpKHNjcmF0 Y2gsIGNzcl9mZmxhZ3MsIGV4Y2VwdGlvbl9mbGFncyk7CisrCisrICAgIC8vIGFjdHVhbCBjb252 ZXJzaW9uIGluc3RydWN0aW9uCisrICAgIGZjdnRfZ2VuZXJhdG9yKHRoaXMsIHJkLCBmcyk7Cisr CisrICAgIC8vIGNoZWNrIGtJbnZhbGlkT3BlcmF0aW9uIGZsYWcgKG91dC1vZi1yYW5nZSwgTmFO KQorKyAgICAvLyBzZXQgcmVzdWx0IHRvIDEgaWYgbm9ybWFsLCBvdGhlcndpc2Ugc2V0IHJlc3Vs dCB0byAwIGZvciBhYm5vcm1hbAorKyAgICBmcmZsYWdzKHJlc3VsdCk7CisrICAgIGFuZGkocmVz dWx0LCByZXN1bHQsIGV4Y2VwdGlvbl9mbGFncyk7CisrICAgIHNlcXoocmVzdWx0LCByZXN1bHQp OyAgLy8gcmVzdWx0IDwtLSAxIChub3JtYWwpLCByZXN1bHQgPC0tIDAgKGFibm9ybWFsKQorKwor KyAgICAvLyByZXN0b3JlIGNzcl9mZmxhZ3MKKysgICAgY3Nydyhjc3JfZmZsYWdzLCBzY3JhdGNo KTsKKysgIH0gZWxzZSB7CisrICAgIC8vIGFjdHVhbCBjb252ZXJzaW9uIGluc3RydWN0aW9uCisr ICAgIGZjdnRfZ2VuZXJhdG9yKHRoaXMsIHJkLCBmcyk7CisrICB9CisrfQorKworK3ZvaWQgVHVy Ym9Bc3NlbWJsZXI6OlRydW5jX3V3X2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdp c3RlciByZXN1bHQpIHsKKysgIFJvdW5kRmxvYXRpbmdQb2ludFRvSW50ZWdlcigKKysgICAgICBy ZCwgZnMsIHJlc3VsdCwgW10oVHVyYm9Bc3NlbWJsZXIqIHRhc20sIFJlZ2lzdGVyIGRzdCwgRlBV UmVnaXN0ZXIgc3JjKSB7CisrICAgICAgICB0YXNtLT5mY3Z0X3d1X2QoZHN0LCBzcmMsIFJUWik7 CisrICAgICAgfSk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlRydW5jX3dfZChSZWdp c3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lzdGVyIHJlc3VsdCkgeworKyAgUm91bmRGbG9h dGluZ1BvaW50VG9JbnRlZ2VyKAorKyAgICAgIHJkLCBmcywgcmVzdWx0LCBbXShUdXJib0Fzc2Vt YmxlciogdGFzbSwgUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBzcmMpIHsKKysgICAgICAgIHRh c20tPmZjdnRfd19kKGRzdCwgc3JjLCBSVFopOworKyAgICAgIH0pOworK30KKysKKyt2b2lkIFR1 cmJvQXNzZW1ibGVyOjpUcnVuY191d19zKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVn aXN0ZXIgcmVzdWx0KSB7CisrICBSb3VuZEZsb2F0aW5nUG9pbnRUb0ludGVnZXIoCisrICAgICAg cmQsIGZzLCByZXN1bHQsIFtdKFR1cmJvQXNzZW1ibGVyKiB0YXNtLCBSZWdpc3RlciBkc3QsIEZQ VVJlZ2lzdGVyIHNyYykgeworKyAgICAgICAgdGFzbS0+ZmN2dF93dV9zKGRzdCwgc3JjLCBSVFop OworKyAgICAgIH0pOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpUcnVuY193X3MoUmVn aXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1bHQpIHsKKysgIFJvdW5kRmxv YXRpbmdQb2ludFRvSW50ZWdlcigKKysgICAgICByZCwgZnMsIHJlc3VsdCwgW10oVHVyYm9Bc3Nl bWJsZXIqIHRhc20sIFJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjKSB7CisrICAgICAgICB0 YXNtLT5mY3Z0X3dfcyhkc3QsIHNyYywgUlRaKTsKKysgICAgICB9KTsKKyt9CisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6VHJ1bmNfdWxfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJl Z2lzdGVyIHJlc3VsdCkgeworKyAgUm91bmRGbG9hdGluZ1BvaW50VG9JbnRlZ2VyKAorKyAgICAg IHJkLCBmcywgcmVzdWx0LCBbXShUdXJib0Fzc2VtYmxlciogdGFzbSwgUmVnaXN0ZXIgZHN0LCBG UFVSZWdpc3RlciBzcmMpIHsKKysgICAgICAgIHRhc20tPmZjdnRfbHVfZChkc3QsIHNyYywgUlRa KTsKKysgICAgICB9KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6VHJ1bmNfbF9kKFJl Z2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0KSB7CisrICBSb3VuZEZs b2F0aW5nUG9pbnRUb0ludGVnZXIoCisrICAgICAgcmQsIGZzLCByZXN1bHQsIFtdKFR1cmJvQXNz ZW1ibGVyKiB0YXNtLCBSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYykgeworKyAgICAgICAg dGFzbS0+ZmN2dF9sX2QoZHN0LCBzcmMsIFJUWik7CisrICAgICAgfSk7CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OlRydW5jX3VsX3MoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBS ZWdpc3RlciByZXN1bHQpIHsKKysgIFJvdW5kRmxvYXRpbmdQb2ludFRvSW50ZWdlcigKKysgICAg ICByZCwgZnMsIHJlc3VsdCwgW10oVHVyYm9Bc3NlbWJsZXIqIHRhc20sIFJlZ2lzdGVyIGRzdCwg RlBVUmVnaXN0ZXIgc3JjKSB7CisrICAgICAgICB0YXNtLT5mY3Z0X2x1X3MoZHN0LCBzcmMsIFJU Wik7CisrICAgICAgfSk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlRydW5jX2xfcyhS ZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lzdGVyIHJlc3VsdCkgeworKyAgUm91bmRG bG9hdGluZ1BvaW50VG9JbnRlZ2VyKAorKyAgICAgIHJkLCBmcywgcmVzdWx0LCBbXShUdXJib0Fz c2VtYmxlciogdGFzbSwgUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBzcmMpIHsKKysgICAgICAg IHRhc20tPmZjdnRfbF9zKGRzdCwgc3JjLCBSVFopOworKyAgICAgIH0pOworK30KKysKKyt2b2lk IFR1cmJvQXNzZW1ibGVyOjpSb3VuZF93X3MoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBS ZWdpc3RlciByZXN1bHQpIHsKKysgIFJvdW5kRmxvYXRpbmdQb2ludFRvSW50ZWdlcigKKysgICAg ICByZCwgZnMsIHJlc3VsdCwgW10oVHVyYm9Bc3NlbWJsZXIqIHRhc20sIFJlZ2lzdGVyIGRzdCwg RlBVUmVnaXN0ZXIgc3JjKSB7CisrICAgICAgICB0YXNtLT5mY3Z0X3dfcyhkc3QsIHNyYywgUk5F KTsKKysgICAgICB9KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Um91bmRfd19kKFJl Z2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0KSB7CisrICBSb3VuZEZs b2F0aW5nUG9pbnRUb0ludGVnZXIoCisrICAgICAgcmQsIGZzLCByZXN1bHQsIFtdKFR1cmJvQXNz ZW1ibGVyKiB0YXNtLCBSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYykgeworKyAgICAgICAg dGFzbS0+ZmN2dF93X2QoZHN0LCBzcmMsIFJORSk7CisrICAgICAgfSk7CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OkNlaWxfd19zKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVn aXN0ZXIgcmVzdWx0KSB7CisrICBSb3VuZEZsb2F0aW5nUG9pbnRUb0ludGVnZXIoCisrICAgICAg cmQsIGZzLCByZXN1bHQsIFtdKFR1cmJvQXNzZW1ibGVyKiB0YXNtLCBSZWdpc3RlciBkc3QsIEZQ VVJlZ2lzdGVyIHNyYykgeworKyAgICAgICAgdGFzbS0+ZmN2dF93X3MoZHN0LCBzcmMsIFJVUCk7 CisrICAgICAgfSk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNlaWxfd19kKFJlZ2lz dGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0KSB7CisrICBSb3VuZEZsb2F0 aW5nUG9pbnRUb0ludGVnZXIoCisrICAgICAgcmQsIGZzLCByZXN1bHQsIFtdKFR1cmJvQXNzZW1i bGVyKiB0YXNtLCBSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYykgeworKyAgICAgICAgdGFz bS0+ZmN2dF93X2QoZHN0LCBzcmMsIFJVUCk7CisrICAgICAgfSk7CisrfQorKworK3ZvaWQgVHVy Ym9Bc3NlbWJsZXI6OkZsb29yX3dfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lz dGVyIHJlc3VsdCkgeworKyAgUm91bmRGbG9hdGluZ1BvaW50VG9JbnRlZ2VyKAorKyAgICAgIHJk LCBmcywgcmVzdWx0LCBbXShUdXJib0Fzc2VtYmxlciogdGFzbSwgUmVnaXN0ZXIgZHN0LCBGUFVS ZWdpc3RlciBzcmMpIHsKKysgICAgICAgIHRhc20tPmZjdnRfd19zKGRzdCwgc3JjLCBSRE4pOwor KyAgICAgIH0pOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpGbG9vcl93X2QoUmVnaXN0 ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1bHQpIHsKKysgIFJvdW5kRmxvYXRp bmdQb2ludFRvSW50ZWdlcigKKysgICAgICByZCwgZnMsIHJlc3VsdCwgW10oVHVyYm9Bc3NlbWJs ZXIqIHRhc20sIFJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjKSB7CisrICAgICAgICB0YXNt LT5mY3Z0X3dfZChkc3QsIHNyYywgUkROKTsKKysgICAgICB9KTsKKyt9CisrCisrLy8gQWNjb3Jk aW5nIHRvIEpTIEVDTUEgc3BlY2lmaWNhdGlvbiwgZm9yIGZsb2F0aW5nLXBvaW50IHJvdW5kIG9w ZXJhdGlvbnMsIGlmCisrLy8gdGhlIGlucHV0IGlzIE5hTiwgKy8taW5maW5pdHksIG9yICsvLTAs IHRoZSBzYW1lIGlucHV0IGlzIHJldHVybmVkIGFzIHRoZQorKy8vIHJvdW5kZWQgcmVzdWx0OyB0 aGlzIGRpZmZlcnMgZnJvbSBiZWhhdmlvciBvZiBSSVNDViBmY3Z0IGluc3RydWN0aW9ucyAod2hp Y2gKKysvLyByb3VuZCBvdXQtb2YtcmFuZ2UgdmFsdWVzIHRvIHRoZSBuZWFyZXN0IG1heCBvciBt aW4gdmFsdWUpLCB0aGVyZWZvcmUgc3BlY2lhbAorKy8vIGhhbmRsaW5nIGlzIG5lZWRlZCBieSBO YU4sICsvLUluZmluaXR5LCArLy0wCisrdGVtcGxhdGUgPHR5cGVuYW1lIEY+Cisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6Um91bmRIZWxwZXIoRlBVUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBzcmMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgZnB1X3NjcmF0 Y2gsIFJvdW5kaW5nTW9kZSBmcm0pIHsKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9j a190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1w cyh0aGlzKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5oYXNBdmFpbGFibGUoKSA/IHRl bXBzLkFjcXVpcmUoKSA6IHQ1OworKworKyAgRENIRUNLKChzdGQ6OmlzX3NhbWU8ZmxvYXQsIEY+ Ojp2YWx1ZSkgfHwgKHN0ZDo6aXNfc2FtZTxkb3VibGUsIEY+Ojp2YWx1ZSkpOworKyAgLy8gTmVl ZCBhdCBsZWFzdCB0d28gRlBScywgc28gY2hlY2sgYWdhaW5zdCBkc3QgPT0gc3JjID09IGZwdV9z Y3JhdGNoCisrICBEQ0hFQ0soIShkc3QgPT0gc3JjICYmIGRzdCA9PSBmcHVfc2NyYXRjaCkpOwor KworKyAgY29uc3QgaW50IGtGbG9hdDMyRXhwb25lbnRCaWFzID0gMTI3OworKyAgY29uc3QgaW50 IGtGbG9hdDMyTWFudGlzc2FCaXRzID0gMjM7CisrICBjb25zdCBpbnQga0Zsb2F0MzJFeHBvbmVu dEJpdHMgPSA4OworKyAgY29uc3QgaW50IGtGbG9hdDY0RXhwb25lbnRCaWFzID0gMTAyMzsKKysg IGNvbnN0IGludCBrRmxvYXQ2NE1hbnRpc3NhQml0cyA9IDUyOworKyAgY29uc3QgaW50IGtGbG9h dDY0RXhwb25lbnRCaXRzID0gMTE7CisrICBjb25zdCBpbnQga0Zsb2F0TWFudGlzc2FCaXRzID0K KysgICAgICBzaXplb2YoRikgPT0gNCA/IGtGbG9hdDMyTWFudGlzc2FCaXRzIDoga0Zsb2F0NjRN YW50aXNzYUJpdHM7CisrICBjb25zdCBpbnQga0Zsb2F0RXhwb25lbnRCaXRzID0KKysgICAgICBz aXplb2YoRikgPT0gNCA/IGtGbG9hdDMyRXhwb25lbnRCaXRzIDoga0Zsb2F0NjRFeHBvbmVudEJp dHM7CisrICBjb25zdCBpbnQga0Zsb2F0RXhwb25lbnRCaWFzID0KKysgICAgICBzaXplb2YoRikg PT0gNCA/IGtGbG9hdDMyRXhwb25lbnRCaWFzIDoga0Zsb2F0NjRFeHBvbmVudEJpYXM7CisrCisr ICBMYWJlbCBkb25lOworKworKyAgLy8gZXh0cmFjdCBleHBvbmVudCB2YWx1ZSBvZiB0aGUgc291 cmNlIGZsb2F0aW5nLXBvaW50IHRvIHQ2CisrICBpZiAoc3RkOjppc19zYW1lPEYsIGRvdWJsZT46 OnZhbHVlKSB7CisrICAgIGZtdl94X2Qoc2NyYXRjaCwgc3JjKTsKKysgIH0gZWxzZSB7CisrICAg IGZtdl94X3coc2NyYXRjaCwgc3JjKTsKKysgIH0KKysgIEV4dHJhY3RCaXRzKHQ2LCBzY3JhdGNo LCBrRmxvYXRNYW50aXNzYUJpdHMsIGtGbG9hdEV4cG9uZW50Qml0cyk7CisrCisrICAvLyBpZiBz cmMgaXMgTmFOLystSW5maW5pdHkvKy1aZXJvIG9yIGlmIHRoZSBleHBvbmVudCBpcyBsYXJnZXIg dGhhbiAjIG9mIGJpdHMKKysgIC8vIGluIG1hbnRpc3NhLCB0aGUgcmVzdWx0IGlzIHRoZSBzYW1l IGFzIHNyYywgc28gbW92ZSBzcmMgdG8gZGVzdCAgKHRvIGF2b2lkCisrICAvLyBnZW5lcmF0aW5n IGFub3RoZXIgYnJhbmNoKQorKyAgaWYgKGRzdCAhPSBzcmMpIHsKKysgICAgaWYgKHN0ZDo6aXNf c2FtZTxGLCBkb3VibGU+Ojp2YWx1ZSkgeworKyAgICAgIGZtdl9kKGRzdCwgc3JjKTsKKysgICAg fSBlbHNlIHsKKysgICAgICBmbXZfcyhkc3QsIHNyYyk7CisrICAgIH0KKysgIH0KKysKKysgIC8v IElmIHJlYWwgZXhwb25lbnQgKGkuZS4sIHQ2IC0ga0Zsb2F0RXhwb25lbnRCaWFzKSBpcyBncmVh dGVyIHRoYW4KKysgIC8vIGtGbG9hdDMyTWFudGlzc2FCaXRzLCBpdCBtZWFucyB0aGUgZmxvYXRp bmctcG9pbnQgdmFsdWUgaGFzIG5vIGZyYWN0aW9uYWwKKysgIC8vIHBhcnQsIHRodXMgdGhlIGlu cHV0IGlzIGFscmVhZHkgcm91bmRlZCwganVtcCB0byBkb25lLiBOb3RlIHRoYXQsIE5hTiBhbmQK KysgIC8vIEluZmluaXR5IGluIGZsb2F0aW5nLXBvaW50IHJlcHJlc2VudGF0aW9uIHNldHMgbWF4 aW1hbCBleHBvbmVudCB2YWx1ZSwgc28KKysgIC8vIHRoZXkgYWxzbyBzYXRpc2Z5ICh0Ni1rRmxv YXRFeHBvbmVudEJpYXMgPj0ga0Zsb2F0TWFudGlzc2FCaXRzKSwgYW5kIEpTCisrICAvLyByb3Vu ZCBzZW1hbnRpY3Mgc3BlY2lmeSB0aGF0IHJvdW5kaW5nIG9mIE5hTiAoSW5maW5pdHkpIHJldHVy bnMgTmFOCisrICAvLyAoSW5maW5pdHkpLCBzbyBOYU4gYW5kIEluZmluaXR5IGFyZSBjb25zaWRl cmVkIHJvdW5kZWQgdmFsdWUgdG9vLgorKyAgQnJhbmNoKCZkb25lLCBncmVhdGVyX2VxdWFsLCB0 NiwKKysgICAgICAgICBPcGVyYW5kKGtGbG9hdEV4cG9uZW50QmlhcyArIGtGbG9hdE1hbnRpc3Nh Qml0cykpOworKworKyAgLy8gQWN0dWFsIHJvdW5kaW5nIGlzIG5lZWRlZCBhbG9uZyB0aGlzIHBh dGgKKysKKysgIC8vIG9sZF9zcmMgaG9sZHMgdGhlIG9yaWdpbmFsIGlucHV0LCBuZWVkZWQgZm9y IHRoZSBjYXNlIG9mIHNyYyA9PSBkc3QKKysgIEZQVVJlZ2lzdGVyIG9sZF9zcmMgPSBzcmM7Cisr ICBpZiAoc3JjID09IGRzdCkgeworKyAgICBEQ0hFQ0soZnB1X3NjcmF0Y2ggIT0gZHN0KTsKKysg ICAgTW92ZShmcHVfc2NyYXRjaCwgc3JjKTsKKysgICAgb2xkX3NyYyA9IGZwdV9zY3JhdGNoOwor KyAgfQorKworKyAgLy8gU2luY2Ugb25seSBpbnB1dCB3aG9zZSByZWFsIGV4cG9uZW50IHZhbHVl IGlzIGxlc3MgdGhhbiBrTWFudGlzc2FCaXRzCisrICAvLyAoaS5lLiwgMjMgb3IgNTItYml0cykg ZmFsbHMgaW50byB0aGlzIHBhdGgsIHRoZSB2YWx1ZSByYW5nZSBvZiB0aGUgaW5wdXQKKysgIC8v IGZhbGxzIGludG8gdGhhdCBvZiAyMy0gb3IgNTMtYml0IGludGVnZXJzLiBTbyB3ZSByb3VuZCB0 aGUgaW5wdXQgdG8gaW50ZWdlcgorKyAgLy8gdmFsdWVzLCB0aGVuIGNvbnZlcnQgdGhlbSBiYWNr IHRvIGZsb2F0aW5nLXBvaW50LgorKyAgaWYgKHN0ZDo6aXNfc2FtZTxGLCBkb3VibGU+Ojp2YWx1 ZSkgeworKyAgICBmY3Z0X2xfZChzY3JhdGNoLCBzcmMsIGZybSk7CisrICAgIGZjdnRfZF9sKGRz dCwgc2NyYXRjaCwgZnJtKTsKKysgIH0gZWxzZSB7CisrICAgIGZjdnRfd19zKHNjcmF0Y2gsIHNy YywgZnJtKTsKKysgICAgZmN2dF9zX3coZHN0LCBzY3JhdGNoLCBmcm0pOworKyAgfQorKworKyAg Ly8gQSBzcGVjaWFsIGhhbmRsaW5nIGlzIG5lZWRlZCBpZiB0aGUgaW5wdXQgaXMgYSB2ZXJ5IHNt YWxsIHBvc2l0aXZlL25lZ2F0aXZlCisrICAvLyBudW1iZXIgdGhhdCByb3VuZHMgdG8gemVyby4g SlMgc2VtYW50aWNzIHJlcXVpcmVzIHRoYXQgdGhlIHJvdW5kZWQgcmVzdWx0CisrICAvLyByZXRh aW5zIHRoZSBzaWduIG9mIHRoZSBpbnB1dCwgc28gYSB2ZXJ5IHNtYWxsIHBvc2l0aXZlIChuZWdh dGl2ZSkKKysgIC8vIGZsb2F0aW5nLXBvaW50IG51bWJlciBzaG91bGQgYmUgcm91bmRlZCB0byBw b3NpdGl2ZSAobmVnYXRpdmUpIDAuCisrICAvLyBUaGVyZWZvcmUsIHdlIHVzZSBzaWduLWJpdCBp bmplY3Rpb24gdG8gcHJvZHVjZSArLy0wIGNvcnJlY3RseS4gSW5zdGVhZCBvZgorKyAgLy8gdGVz dGluZyBmb3IgemVybyB3LyBhIGJyYW5jaCwgd2UganVzdCBpbnNlcnQgc2lnbi1iaXQgZm9yIGV2 ZXJ5b25lIG9uIHRoaXMKKysgIC8vIHBhdGggKHRoaXMgaXMgd2hlcmUgb2xkX3NyYyBpcyBuZWVk ZWQpCisrICBpZiAoc3RkOjppc19zYW1lPEYsIGRvdWJsZT46OnZhbHVlKSB7CisrICAgIGZzZ25q X2QoZHN0LCBkc3QsIG9sZF9zcmMpOworKyAgfSBlbHNlIHsKKysgICAgZnNnbmpfcyhkc3QsIGRz dCwgb2xkX3NyYyk7CisrICB9CisrCisrICBiaW5kKCZkb25lKTsKKyt9CisrCisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6Rmxvb3JfZF9kKEZQVVJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciBmcHVfc2NyYXRjaCkg eworKyAgUm91bmRIZWxwZXI8ZG91YmxlPihkc3QsIHNyYywgZnB1X3NjcmF0Y2gsIFJETik7Cisr fQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNlaWxfZF9kKEZQVVJlZ2lzdGVyIGRzdCwgRlBV UmVnaXN0ZXIgc3JjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVy IGZwdV9zY3JhdGNoKSB7CisrICBSb3VuZEhlbHBlcjxkb3VibGU+KGRzdCwgc3JjLCBmcHVfc2Ny YXRjaCwgUlVQKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6VHJ1bmNfZF9kKEZQVVJl Z2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGUFVSZWdpc3RlciBmcHVfc2NyYXRjaCkgeworKyAgUm91bmRIZWxwZXI8ZG91YmxlPihk c3QsIHNyYywgZnB1X3NjcmF0Y2gsIFJUWik7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6 OlJvdW5kX2RfZChGUFVSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgZnB1X3NjcmF0Y2gpIHsKKysgIFJvdW5k SGVscGVyPGRvdWJsZT4oZHN0LCBzcmMsIGZwdV9zY3JhdGNoLCBSTkUpOworK30KKysKKyt2b2lk IFR1cmJvQXNzZW1ibGVyOjpGbG9vcl9zX3MoRlBVUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBz cmMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIGZwdV9zY3Jh dGNoKSB7CisrICBSb3VuZEhlbHBlcjxmbG9hdD4oZHN0LCBzcmMsIGZwdV9zY3JhdGNoLCBSRE4p OworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpDZWlsX3NfcyhGUFVSZWdpc3RlciBkc3Qs IEZQVVJlZ2lzdGVyIHNyYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdp c3RlciBmcHVfc2NyYXRjaCkgeworKyAgUm91bmRIZWxwZXI8ZmxvYXQ+KGRzdCwgc3JjLCBmcHVf c2NyYXRjaCwgUlVQKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6VHJ1bmNfc19zKEZQ VVJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGUFVSZWdpc3RlciBmcHVfc2NyYXRjaCkgeworKyAgUm91bmRIZWxwZXI8ZmxvYXQ+ KGRzdCwgc3JjLCBmcHVfc2NyYXRjaCwgUlRaKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxl cjo6Um91bmRfc19zKEZQVVJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciBmcHVfc2NyYXRjaCkgeworKyAgUm91 bmRIZWxwZXI8ZmxvYXQ+KGRzdCwgc3JjLCBmcHVfc2NyYXRjaCwgUk5FKTsKKyt9CisrCisrdm9p ZCBNYWNyb0Fzc2VtYmxlcjo6TWFkZF9zKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmciwg RlBVUmVnaXN0ZXIgZnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVy IGZ0KSB7CisrICBmbWFkZF9zKGZkLCBmcywgZnQsIGZyKTsKKyt9CisrCisrdm9pZCBNYWNyb0Fz c2VtYmxlcjo6TWFkZF9kKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmciwgRlBVUmVnaXN0 ZXIgZnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIGZ0KSB7Cisr ICBmbWFkZF9kKGZkLCBmcywgZnQsIGZyKTsKKyt9CisrCisrdm9pZCBNYWNyb0Fzc2VtYmxlcjo6 TXN1Yl9zKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmciwgRlBVUmVnaXN0ZXIgZnMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIGZ0KSB7CisrICBmbXN1Yl9z KGZkLCBmcywgZnQsIGZyKTsKKyt9CisrCisrdm9pZCBNYWNyb0Fzc2VtYmxlcjo6TXN1Yl9kKEZQ VVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmciwgRlBVUmVnaXN0ZXIgZnMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIGZ0KSB7CisrICBmbXN1Yl9kKGZkLCBmcywg ZnQsIGZyKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q29tcGFyZUYzMihSZWdpc3Rl ciByZCwgRlBVQ29uZGl0aW9uIGNjLCBGUFVSZWdpc3RlciBjbXAxLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgY21wMikgeworKyAgc3dpdGNoIChjYykgewor KyAgICBjYXNlIEVROgorKyAgICAgIGZlcV9zKHJkLCBjbXAxLCBjbXAyKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBORToKKysgICAgICBmZXFfcyhyZCwgY21wMSwgY21wMik7CisrICAgICAg TmVnYXRlQm9vbChyZCwgcmQpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIExUOgorKyAgICAg IGZsdF9zKHJkLCBjbXAxLCBjbXAyKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBHRToKKysg ICAgICBmbGVfcyhyZCwgY21wMiwgY21wMSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTEU6 CisrICAgICAgZmxlX3MocmQsIGNtcDEsIGNtcDIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IEdUOgorKyAgICAgIGZsdF9zKHJkLCBjbXAyLCBjbXAxKTsKKysgICAgICBicmVhazsKKysgICAg ZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgpOworKyAgfQorK30KKysKKyt2b2lkIFR1cmJv QXNzZW1ibGVyOjpDb21wYXJlRjY0KFJlZ2lzdGVyIHJkLCBGUFVDb25kaXRpb24gY2MsIEZQVVJl Z2lzdGVyIGNtcDEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUFVSZWdpc3Rl ciBjbXAyKSB7CisrICBzd2l0Y2ggKGNjKSB7CisrICAgIGNhc2UgRVE6CisrICAgICAgZmVxX2Qo cmQsIGNtcDEsIGNtcDIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE5FOgorKyAgICAgIGZl cV9kKHJkLCBjbXAxLCBjbXAyKTsKKysgICAgICBOZWdhdGVCb29sKHJkLCByZCk7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgTFQ6CisrICAgICAgZmx0X2QocmQsIGNtcDEsIGNtcDIpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIEdFOgorKyAgICAgIGZsZV9kKHJkLCBjbXAyLCBjbXAxKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBMRToKKysgICAgICBmbGVfZChyZCwgY21wMSwgY21w Mik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgR1Q6CisrICAgICAgZmx0X2QocmQsIGNtcDIs IGNtcDEpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOUkVBQ0hBQkxF KCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNvbXBhcmVJc05hbkYzMihS ZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgY21wMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRlBVUmVnaXN0ZXIgY21wMikgeworKyAgVXNlU2NyYXRjaFJlZ2lzdGVyU2Nv cGUgdGVtcHModGhpcyk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBv bGluZV9wb29sKHRoaXMpOworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWlsYWJs ZSgpID8gdGVtcHMuQWNxdWlyZSgpIDogdDU7CisrCisrICBmZXFfcyhyZCwgY21wMSwgY21wMSk7 ICAgICAgIC8vIHJkIDwtICFpc05hbihjbXAxKQorKyAgZmVxX3Moc2NyYXRjaCwgY21wMiwgY21w Mik7ICAvLyBzY3JhdGNoIDwtICFpc05hTihjbXAyKQorKyAgQW5kKHJkLCByZCwgc2NyYXRjaCk7 ICAgICAgICAvLyByZCA8LSAhaXNOYW4oY21wMSkgJiYgIWlzTmFuKGNtcDIpCisrICBYb3IocmQs IHJkLCAxKTsgICAgICAgICAgICAgIC8vIHJkIDwtIGlzTmFuKGNtcDEpIHx8IGlzTmFuKGNtcDIp CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNvbXBhcmVJc05hbkY2NChSZWdpc3RlciBy ZCwgRlBVUmVnaXN0ZXIgY21wMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRlBVUmVnaXN0ZXIgY21wMikgeworKyAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHMo dGhpcyk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29s KHRoaXMpOworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVt cHMuQWNxdWlyZSgpIDogdDU7CisrCisrICBmZXFfZChyZCwgY21wMSwgY21wMSk7ICAgICAgIC8v IHJkIDwtICFpc05hbihjbXAxKQorKyAgZmVxX2Qoc2NyYXRjaCwgY21wMiwgY21wMik7ICAvLyBz Y3JhdGNoIDwtICFpc05hTihjbXAyKQorKyAgQW5kKHJkLCByZCwgc2NyYXRjaCk7ICAgICAgICAv LyByZCA8LSAhaXNOYW4oY21wMSkgJiYgIWlzTmFuKGNtcDIpCisrICBYb3IocmQsIHJkLCAxKTsg ICAgICAgICAgICAgIC8vIHJkIDwtIGlzTmFuKGNtcDEpIHx8IGlzTmFuKGNtcDIpCisrfQorKwor K3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaFRydWVTaG9ydEYoUmVnaXN0ZXIgcnMsIExhYmVs KiB0YXJnZXQpIHsKKysgIEJyYW5jaCh0YXJnZXQsIG5vdF9lcXVhbCwgcnMsIE9wZXJhbmQoemVy b19yZWcpKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6QnJhbmNoRmFsc2VTaG9ydEYo UmVnaXN0ZXIgcnMsIExhYmVsKiB0YXJnZXQpIHsKKysgIEJyYW5jaCh0YXJnZXQsIGVxdWFsLCBy cywgT3BlcmFuZCh6ZXJvX3JlZykpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpCcmFu Y2hUcnVlRihSZWdpc3RlciBycywgTGFiZWwqIHRhcmdldCkgeworKyAgYm9vbCBsb25nX2JyYW5j aCA9CisrICAgICAgdGFyZ2V0LT5pc19ib3VuZCgpID8gIWlzX25lYXIodGFyZ2V0KSA6IGlzX3Ry YW1wb2xpbmVfZW1pdHRlZCgpOworKyAgaWYgKGxvbmdfYnJhbmNoKSB7CisrICAgIExhYmVsIHNr aXA7CisrICAgIEJyYW5jaEZhbHNlU2hvcnRGKHJzLCAmc2tpcCk7CisrICAgIEJyYW5jaExvbmco dGFyZ2V0KTsKKysgICAgYmluZCgmc2tpcCk7CisrICB9IGVsc2UgeworKyAgICBCcmFuY2hUcnVl U2hvcnRGKHJzLCB0YXJnZXQpOworKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpC cmFuY2hGYWxzZUYoUmVnaXN0ZXIgcnMsIExhYmVsKiB0YXJnZXQpIHsKKysgIGJvb2wgbG9uZ19i cmFuY2ggPQorKyAgICAgIHRhcmdldC0+aXNfYm91bmQoKSA/ICFpc19uZWFyKHRhcmdldCkgOiBp c190cmFtcG9saW5lX2VtaXR0ZWQoKTsKKysgIGlmIChsb25nX2JyYW5jaCkgeworKyAgICBMYWJl bCBza2lwOworKyAgICBCcmFuY2hUcnVlU2hvcnRGKHJzLCAmc2tpcCk7CisrICAgIEJyYW5jaExv bmcodGFyZ2V0KTsKKysgICAgYmluZCgmc2tpcCk7CisrICB9IGVsc2UgeworKyAgICBCcmFuY2hG YWxzZVNob3J0RihycywgdGFyZ2V0KTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxl cjo6SW5zZXJ0SGlnaFdvcmRGNjQoRlBVUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmNfaGlnaCkg eworKyAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICBSZWdpc3RlciBz Y3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJs b2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysKKysgIERDSEVDSyhzcmNfaGlnaCAhPSB0NSAm JiBzcmNfaGlnaCAhPSBzY3JhdGNoKTsKKysKKysgIGZtdl94X2Qoc2NyYXRjaCwgZHN0KTsKKysg IHNsbGkodDUsIHNyY19oaWdoLCAzMik7CisrICBzbGxpKHNjcmF0Y2gsIHNjcmF0Y2gsIDMyKTsK KysgIHNybGkoc2NyYXRjaCwgc2NyYXRjaCwgMzIpOworKyAgb3JfKHNjcmF0Y2gsIHNjcmF0Y2gs IHQ1KTsKKysgIGZtdl9kX3goZHN0LCBzY3JhdGNoKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6SW5zZXJ0TG93V29yZEY2NChGUFVSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyY19sb3cp IHsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgUmVnaXN0ZXIg c2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIGJs b2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysKKysgIERDSEVDSyhzcmNfbG93ICE9IHNjcmF0 Y2ggJiYgc3JjX2xvdyAhPSB0NSk7CisrICBmbXZfeF9kKHNjcmF0Y2gsIGRzdCk7CisrICBzbGxp KHQ1LCBzcmNfbG93LCAzMik7CisrICBzcmxpKHQ1LCB0NSwgMzIpOworKyAgc3JsaShzY3JhdGNo LCBzY3JhdGNoLCAzMik7CisrICBzbGxpKHNjcmF0Y2gsIHNjcmF0Y2gsIDMyKTsKKysgIG9yXyhz Y3JhdGNoLCBzY3JhdGNoLCB0NSk7CisrICBmbXZfZF94KGRzdCwgc2NyYXRjaCk7CisrfQorKwor K3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWRGUFJJbW1lZGlhdGUoRlBVUmVnaXN0ZXIgZHN0LCB1 aW50MzJfdCBzcmMpIHsKKysgIC8vIEhhbmRsZSBzcGVjaWFsIHZhbHVlcyBmaXJzdC4KKysgIGlm IChzcmMgPT0gYml0X2Nhc3Q8dWludDMyX3Q+KDAuMGYpICYmIGhhc19zaW5nbGVfemVyb19yZWdf c2V0XykgeworKyAgICBpZiAoZHN0ICE9IGtEb3VibGVSZWdaZXJvKSBmbXZfcyhkc3QsIGtEb3Vi bGVSZWdaZXJvKTsKKysgIH0gZWxzZSBpZiAoc3JjID09IGJpdF9jYXN0PHVpbnQzMl90PigtMC4w ZikgJiYgaGFzX3NpbmdsZV96ZXJvX3JlZ19zZXRfKSB7CisrICAgIE5lZ19zKGRzdCwga0RvdWJs ZVJlZ1plcm8pOworKyAgfSBlbHNlIHsKKysgICAgaWYgKGRzdCA9PSBrRG91YmxlUmVnWmVybykg eworKyAgICAgIERDSEVDSyhzcmMgPT0gYml0X2Nhc3Q8dWludDMyX3Q+KDAuMGYpKTsKKysgICAg ICBmbXZfd194KGRzdCwgemVyb19yZWcpOworKyAgICAgIGhhc19zaW5nbGVfemVyb19yZWdfc2V0 XyA9IHRydWU7CisrICAgICAgaGFzX2RvdWJsZV96ZXJvX3JlZ19zZXRfID0gZmFsc2U7CisrICAg IH0gZWxzZSB7CisrICAgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7Cisr ICAgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgICAgICBsaShzY3Jh dGNoLCBPcGVyYW5kKHN0YXRpY19jYXN0PGludDMyX3Q+KHNyYykpKTsKKysgICAgICBmbXZfd194 KGRzdCwgc2NyYXRjaCk7CisrICAgIH0KKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxl cjo6TG9hZEZQUkltbWVkaWF0ZShGUFVSZWdpc3RlciBkc3QsIHVpbnQ2NF90IHNyYykgeworKyAg Ly8gSGFuZGxlIHNwZWNpYWwgdmFsdWVzIGZpcnN0LgorKyAgaWYgKHNyYyA9PSBiaXRfY2FzdDx1 aW50NjRfdD4oMC4wKSAmJiBoYXNfZG91YmxlX3plcm9fcmVnX3NldF8pIHsKKysgICAgaWYgKGRz dCAhPSBrRG91YmxlUmVnWmVybykgZm12X2QoZHN0LCBrRG91YmxlUmVnWmVybyk7CisrICB9IGVs c2UgaWYgKHNyYyA9PSBiaXRfY2FzdDx1aW50NjRfdD4oLTAuMCkgJiYgaGFzX2RvdWJsZV96ZXJv X3JlZ19zZXRfKSB7CisrICAgIE5lZ19kKGRzdCwga0RvdWJsZVJlZ1plcm8pOworKyAgfSBlbHNl IHsKKysgICAgaWYgKGRzdCA9PSBrRG91YmxlUmVnWmVybykgeworKyAgICAgIERDSEVDSyhzcmMg PT0gYml0X2Nhc3Q8dWludDY0X3Q+KDAuMCkpOworKyAgICAgIGZtdl9kX3goZHN0LCB6ZXJvX3Jl Zyk7CisrICAgICAgaGFzX2RvdWJsZV96ZXJvX3JlZ19zZXRfID0gdHJ1ZTsKKysgICAgICBoYXNf c2luZ2xlX3plcm9fcmVnX3NldF8gPSBmYWxzZTsKKysgICAgfSBlbHNlIHsKKysgICAgICBVc2VT Y3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgICBSZWdpc3RlciBzY3JhdGNo ID0gdGVtcHMuQWNxdWlyZSgpOworKyAgICAgIGxpKHNjcmF0Y2gsIE9wZXJhbmQoc3JjKSk7Cisr ICAgICAgZm12X2RfeChkc3QsIHNjcmF0Y2gpOworKyAgICB9CisrICB9CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OkNvbXBhcmVJKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycywgY29uc3Qg T3BlcmFuZCYgcnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZGl0aW9uIGNv bmQpIHsKKysgIHN3aXRjaCAoY29uZCkgeworKyAgICBjYXNlIGVxOgorKyAgICAgIFNlcShyZCwg cnMsIHJ0KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBuZToKKysgICAgICBTbmUocmQsIHJz LCBydCk7CisrICAgICAgYnJlYWs7CisrCisrICAgIC8vIFNpZ25lZCBjb21wYXJpc29uLgorKyAg ICBjYXNlIGdyZWF0ZXI6CisrICAgICAgU2d0KHJkLCBycywgcnQpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIGdyZWF0ZXJfZXF1YWw6CisrICAgICAgU2dlKHJkLCBycywgcnQpOyAgLy8gcnMg Pj0gcnQKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsZXNzOgorKyAgICAgIFNsdChyZCwgcnMs IHJ0KTsgIC8vIHJzIDwgcnQKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsZXNzX2VxdWFsOgor KyAgICAgIFNsZShyZCwgcnMsIHJ0KTsgIC8vIHJzIDw9IHJ0CisrICAgICAgYnJlYWs7CisrCisr ICAgIC8vIFVuc2lnbmVkIGNvbXBhcmlzb24uCisrICAgIGNhc2UgVWdyZWF0ZXI6CisrICAgICAg U2d0dShyZCwgcnMsIHJ0KTsgIC8vIHJzID4gcnQKKysgICAgICBicmVhazsKKysgICAgY2FzZSBV Z3JlYXRlcl9lcXVhbDoKKysgICAgICBTZ2V1KHJkLCBycywgcnQpOyAgLy8gcnMgPj0gcnQKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBVbGVzczoKKysgICAgICBTbHR1KHJkLCBycywgcnQpOyAg Ly8gcnMgPCBydAorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFVsZXNzX2VxdWFsOgorKyAgICAg IFNsZXUocmQsIHJzLCBydCk7ICAvLyBycyA8PSBydAorKyAgICAgIGJyZWFrOworKyAgICBjYXNl IGNjX2Fsd2F5czoKKysgICAgICBVTlJFQUNIQUJMRSgpOworKyAgICAgIGJyZWFrOworKyAgICBk ZWZhdWx0OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9CisrfQorKworKy8vIGRlc3QgPC0g KGNvbmRpdGlvbiAhPSAwID8gemVybyA6IGRlc3QpCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TG9h ZFplcm9JZkNvbmRpdGlvbk5vdFplcm8oUmVnaXN0ZXIgZGVzdCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBjb25kaXRpb24pIHsKKysg IFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgUmVnaXN0ZXIgc2NyYXRj aCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgIHNlcXooc2NyYXRjaCwgY29uZGl0aW9uKTsKKysgIC8v IG5lZyArIGFuZCBtYXkgYmUgbW9yZSBlZmZpY2llbnQgdGhhbiBtdWwoZGVzdCwgZGVzdCwgc2Ny YXRjaCkKKysgIG5lZyhzY3JhdGNoLCBzY3JhdGNoKTsgIC8vIDAgaXMgc3RpbGwgMCwgMSBiZWNv bWVzIGFsbCAxcworKyAgYW5kXyhkZXN0LCBkZXN0LCBzY3JhdGNoKTsKKyt9CisrCisrLy8gZGVz dCA8LSAoY29uZGl0aW9uID09IDAgPyAwIDogZGVzdCkKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpM b2FkWmVyb0lmQ29uZGl0aW9uWmVybyhSZWdpc3RlciBkZXN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGNvbmRpdGlvbikgeworKyAgVXNl U2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICBSZWdpc3RlciBzY3JhdGNoID0g dGVtcHMuQWNxdWlyZSgpOworKyAgc25leihzY3JhdGNoLCBjb25kaXRpb24pOworKyAgLy8gIG5l ZyArIGFuZCBtYXkgYmUgbW9yZSBlZmZpY2llbnQgdGhhbiBtdWwoZGVzdCwgZGVzdCwgc2NyYXRj aCk7CisrICBuZWcoc2NyYXRjaCwgc2NyYXRjaCk7ICAvLyAwIGlzIHN0aWxsIDAsIDEgYmVjb21l cyBhbGwgMXMKKysgIGFuZF8oZGVzdCwgZGVzdCwgc2NyYXRjaCk7CisrfQorKworK3ZvaWQgVHVy Ym9Bc3NlbWJsZXI6OkNsejMyKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciB4eCkgeworKyAgLy8gMzIg Yml0IHVuc2lnbmVkIGluIGxvd2VyIHdvcmQ6IGNvdW50IG51bWJlciBvZiBsZWFkaW5nIHplcm9z LgorKyAgLy8gIGludCBuID0gMzI7CisrICAvLyAgdW5zaWduZWQgeTsKKysKKysgIC8vICB5ID0g eCA+PjE2OyBpZiAoeSAhPSAwKSB7IG4gPSBuIC0xNjsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+ PiA4OyBpZiAoeSAhPSAwKSB7IG4gPSBuIC0gODsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiA0 OyBpZiAoeSAhPSAwKSB7IG4gPSBuIC0gNDsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiAyOyBp ZiAoeSAhPSAwKSB7IG4gPSBuIC0gMjsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiAxOyBpZiAo eSAhPSAwKSB7cmQgPSBuIC0gMjsgcmV0dXJuO30KKysgIC8vICByZCA9IG4gLSB4OworKworKyAg TGFiZWwgTDAsIEwxLCBMMiwgTDMsIEw0OworKyAgRENIRUNLKHh4ICE9IHQ1ICYmIHh4ICE9IHQ2 KTsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgVXNlU2NyYXRj aFJlZ2lzdGVyU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgUmVnaXN0ZXIg eCA9IHJkOworKyAgUmVnaXN0ZXIgeSA9IHQ1OworKyAgUmVnaXN0ZXIgbiA9IHQ2OworKyAgTW92 ZSh4LCB4eCk7CisrICBsaShuLCBPcGVyYW5kKDMyKSk7CisrICBzcmxpdyh5LCB4LCAxNik7Cisr ICBCcmFuY2goJkwwLCBlcSwgeSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgTW92ZSh4LCB5KTsK KysgIGFkZGl3KG4sIG4sIC0xNik7CisrICBiaW5kKCZMMCk7CisrICBzcmxpdyh5LCB4LCA4KTsK KysgIEJyYW5jaCgmTDEsIGVxLCB5LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICBhZGRpdyhuLCBu LCAtOCk7CisrICBNb3ZlKHgsIHkpOworKyAgYmluZCgmTDEpOworKyAgc3JsaXcoeSwgeCwgNCk7 CisrICBCcmFuY2goJkwyLCBlcSwgeSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgYWRkaXcobiwg biwgLTQpOworKyAgTW92ZSh4LCB5KTsKKysgIGJpbmQoJkwyKTsKKysgIHNybGl3KHksIHgsIDIp OworKyAgQnJhbmNoKCZMMywgZXEsIHksIE9wZXJhbmQoemVyb19yZWcpKTsKKysgIGFkZGl3KG4s IG4sIC0yKTsKKysgIE1vdmUoeCwgeSk7CisrICBiaW5kKCZMMyk7CisrICBzcmxpdyh5LCB4LCAx KTsKKysgIHN1YncocmQsIG4sIHgpOworKyAgQnJhbmNoKCZMNCwgZXEsIHksIE9wZXJhbmQoemVy b19yZWcpKTsKKysgIGFkZGl3KHJkLCBuLCAtMik7CisrICBiaW5kKCZMNCk7CisrfQorKworK3Zv aWQgVHVyYm9Bc3NlbWJsZXI6OkNsejY0KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciB4eCkgeworKyAg Ly8gNjQgYml0OiBjb3VudCBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcy4KKysgIC8vICBpbnQgbiA9 IDY0OworKyAgLy8gIHVuc2lnbmVkIHk7CisrCisrICAvLyAgeSA9IHggPj4zMjsgaWYgKHkgIT0g MCkgeyBuID0gbiAtIDMyOyB4ID0geTsgfQorKyAgLy8gIHkgPSB4ID4+MTY7IGlmICh5ICE9IDAp IHsgbiA9IG4gLSAxNjsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiA4OyBpZiAoeSAhPSAwKSB7 IG4gPSBuIC0gODsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiA0OyBpZiAoeSAhPSAwKSB7IG4g PSBuIC0gNDsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiAyOyBpZiAoeSAhPSAwKSB7IG4gPSBu IC0gMjsgeCA9IHk7IH0KKysgIC8vICB5ID0geCA+PiAxOyBpZiAoeSAhPSAwKSB7cmQgPSBuIC0g MjsgcmV0dXJuO30KKysgIC8vICByZCA9IG4gLSB4OworKworKyAgRENIRUNLKHh4ICE9IHQ1ICYm IHh4ICE9IHQ2KTsKKysgIExhYmVsIEwwLCBMMSwgTDIsIEwzLCBMNCwgTDU7CisrICBVc2VTY3Jh dGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3Bl IGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgIFJlZ2lzdGVyIHggPSByZDsKKysgIFJl Z2lzdGVyIHkgPSB0NTsKKysgIFJlZ2lzdGVyIG4gPSB0NjsKKysgIE1vdmUoeCwgeHgpOworKyAg bGkobiwgT3BlcmFuZCg2NCkpOworKyAgc3JsaSh5LCB4LCAzMik7CisrICBCcmFuY2goJkwwLCBl cSwgeSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgYWRkaXcobiwgbiwgLTMyKTsKKysgIE1vdmUo eCwgeSk7CisrICBiaW5kKCZMMCk7CisrICBzcmxpKHksIHgsIDE2KTsKKysgIEJyYW5jaCgmTDEs IGVxLCB5LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICBhZGRpdyhuLCBuLCAtMTYpOworKyAgTW92 ZSh4LCB5KTsKKysgIGJpbmQoJkwxKTsKKysgIHNybGkoeSwgeCwgOCk7CisrICBCcmFuY2goJkwy LCBlcSwgeSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgYWRkaXcobiwgbiwgLTgpOworKyAgTW92 ZSh4LCB5KTsKKysgIGJpbmQoJkwyKTsKKysgIHNybGkoeSwgeCwgNCk7CisrICBCcmFuY2goJkwz LCBlcSwgeSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgYWRkaXcobiwgbiwgLTQpOworKyAgTW92 ZSh4LCB5KTsKKysgIGJpbmQoJkwzKTsKKysgIHNybGkoeSwgeCwgMik7CisrICBCcmFuY2goJkw0 LCBlcSwgeSwgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgYWRkaXcobiwgbiwgLTIpOworKyAgTW92 ZSh4LCB5KTsKKysgIGJpbmQoJkw0KTsKKysgIHNybGkoeSwgeCwgMSk7CisrICBzdWJ3KHJkLCBu LCB4KTsKKysgIEJyYW5jaCgmTDUsIGVxLCB5LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICBhZGRp dyhyZCwgbiwgLTIpOworKyAgYmluZCgmTDUpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpDdHozMihSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMpIHsKKysgIC8vIENvbnZlcnQgdHJhaWxp bmcgemVyb2VzIHRvIHRyYWlsaW5nIG9uZXMsIGFuZCBiaXRzIHRvIHRoZWlyIGxlZnQKKysgIC8v IHRvIHplcm9lcy4KKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAg VXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAg UmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLmhhc0F2YWlsYWJsZSgpID8gdGVtcHMuQWNxdWlyZSgp IDogdDU7CisrICBBZGQ2NChzY3JhdGNoLCBycywgLTEpOworKyAgWG9yKHJkLCBzY3JhdGNoLCBy cyk7CisrICBBbmQocmQsIHJkLCBzY3JhdGNoKTsKKysgIC8vIENvdW50IG51bWJlciBvZiBsZWFk aW5nIHplcm9lcy4KKysgIENsejMyKHJkLCByZCk7CisrICAvLyBTdWJ0cmFjdCBudW1iZXIgb2Yg bGVhZGluZyB6ZXJvZXMgZnJvbSAzMiB0byBnZXQgbnVtYmVyIG9mIHRyYWlsaW5nCisrICAvLyBv bmVzLiBSZW1lbWJlciB0aGF0IHRoZSB0cmFpbGluZyBvbmVzIHdlcmUgZm9ybWVybHkgdHJhaWxp bmcgemVyb2VzLgorKyAgbGkoc2NyYXRjaCwgMzIpOworKyAgU3ViMzIocmQsIHNjcmF0Y2gsIHJk KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q3R6NjQoUmVnaXN0ZXIgcmQsIFJlZ2lz dGVyIHJzKSB7CisrICAvLyBDb252ZXJ0IHRyYWlsaW5nIHplcm9lcyB0byB0cmFpbGluZyBvbmVz LCBhbmQgYml0cyB0byB0aGVpciBsZWZ0CisrICAvLyB0byB6ZXJvZXMuCisrICBVc2VTY3JhdGNo UmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIGJs b2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5o YXNBdmFpbGFibGUoKSA/IHRlbXBzLkFjcXVpcmUoKSA6IHQ1OworKyAgQWRkNjQoc2NyYXRjaCwg cnMsIC0xKTsKKysgIFhvcihyZCwgc2NyYXRjaCwgcnMpOworKyAgQW5kKHJkLCByZCwgc2NyYXRj aCk7CisrICAvLyBDb3VudCBudW1iZXIgb2YgbGVhZGluZyB6ZXJvZXMuCisrICBDbHo2NChyZCwg cmQpOworKyAgLy8gU3VidHJhY3QgbnVtYmVyIG9mIGxlYWRpbmcgemVyb2VzIGZyb20gNjQgdG8g Z2V0IG51bWJlciBvZiB0cmFpbGluZworKyAgLy8gb25lcy4gUmVtZW1iZXIgdGhhdCB0aGUgdHJh aWxpbmcgb25lcyB3ZXJlIGZvcm1lcmx5IHRyYWlsaW5nIHplcm9lcy4KKysgIGxpKHNjcmF0Y2gs IDY0KTsKKysgIFN1YjY0KHJkLCBzY3JhdGNoLCByZCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3Nl bWJsZXI6OlBvcGNudDMyKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycykgeworKyAgLy8gaHR0cHM6 Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfnNlYW5kZXIvYml0aGFja3MuaHRtbCNDb3VudEJpdHNT ZXRQYXJhbGxlbAorKyAgLy8KKysgIC8vIEEgZ2VuZXJhbGl6YXRpb24gb2YgdGhlIGJlc3QgYml0 IGNvdW50aW5nIG1ldGhvZCB0byBpbnRlZ2VycyBvZgorKyAgLy8gYml0LXdpZHRocyB1cCB0byAx MjggKHBhcmFtZXRlcml6ZWQgYnkgdHlwZSBUKSBpcyB0aGlzOgorKyAgLy8KKysgIC8vIHYgPSB2 IC0gKCh2ID4+IDEpICYgKFQpfihUKTAvMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g dGVtcAorKyAgLy8gdiA9ICh2ICYgKFQpfihUKTAvMTUqMykgKyAoKHYgPj4gMikgJiAoVCl+KFQp MC8xNSozKTsgICAgICAvLyB0ZW1wCisrICAvLyB2ID0gKHYgKyAodiA+PiA0KSkgJiAoVCl+KFQp MC8yNTUqMTU7ICAgICAgICAgICAgICAgICAgICAgIC8vIHRlbXAKKysgIC8vIGMgPSAoVCkodiAq ICgoVCl+KFQpMC8yNTUpKSA+PiAoc2l6ZW9mKFQpIC0gMSkgKiBCSVRTX1BFUl9CWVRFOyAvL2Nv dW50CisrICAvLworKyAgLy8gVGhlcmUgYXJlIGFsZ29yaXRobXMgd2hpY2ggYXJlIGZhc3RlciBp biB0aGUgY2FzZXMgd2hlcmUgdmVyeSBmZXcKKysgIC8vIGJpdHMgYXJlIHNldCBidXQgdGhlIGFs Z29yaXRobSBoZXJlIGF0dGVtcHRzIHRvIG1pbmltaXplIHRoZSB0b3RhbAorKyAgLy8gbnVtYmVy IG9mIGluc3RydWN0aW9ucyBleGVjdXRlZCBldmVuIHdoZW4gYSBsYXJnZSBudW1iZXIgb2YgYml0 cworKyAgLy8gYXJlIHNldC4KKysgIC8vIFRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb24gaXMgMjAu CisrICAvLyB1aW50MzJfdCBCMCA9IDB4NTU1NTU1NTU7ICAgICAvLyAoVCl+KFQpMC8zCisrICAv LyB1aW50MzJfdCBCMSA9IDB4MzMzMzMzMzM7ICAgICAvLyAoVCl+KFQpMC8xNSozCisrICAvLyB1 aW50MzJfdCBCMiA9IDB4MEYwRjBGMEY7ICAgICAvLyAoVCl+KFQpMC8yNTUqMTUKKysgIC8vIHVp bnQzMl90IHZhbHVlID0gMHgwMTAxMDEwMTsgIC8vIChUKX4oVCkwLzI1NQorKworKyAgRENIRUNL KHJkICE9IHQ1ICYmIHJkICE9IHQ2ICYmIHJzICE9IHQ1ICYmIHJzICE9IHQ2KTsKKysgIHVpbnQz Ml90IHNoaWZ0ID0gMjQ7CisrICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsK KysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7 CisrICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAgUmVnaXN0ZXIgc2Ny YXRjaDIgPSB0NTsKKysgIFJlZ2lzdGVyIHZhbHVlID0gdDY7CisrICBsaSh2YWx1ZSwgMHgwMTAx MDEwMSk7ICAgICAvLyB2YWx1ZSA9IDB4MDEwMTAxMDE7CisrICBsaShzY3JhdGNoMiwgMHg1NTU1 NTU1NSk7ICAvLyBCMCA9IDB4NTU1NTU1NTU7CisrICBTcmwzMihzY3JhdGNoLCBycywgMSk7Cisr ICBBbmQoc2NyYXRjaCwgc2NyYXRjaCwgc2NyYXRjaDIpOworKyAgU3ViMzIoc2NyYXRjaCwgcnMs IHNjcmF0Y2gpOworKyAgbGkoc2NyYXRjaDIsIDB4MzMzMzMzMzMpOyAgLy8gQjEgPSAweDMzMzMz MzMzOworKyAgc2xsaShyZCwgc2NyYXRjaDIsIDQpOworKyAgb3JfKHNjcmF0Y2gyLCBzY3JhdGNo MiwgcmQpOworKyAgQW5kKHJkLCBzY3JhdGNoLCBzY3JhdGNoMik7CisrICBTcmwzMihzY3JhdGNo LCBzY3JhdGNoLCAyKTsKKysgIEFuZChzY3JhdGNoLCBzY3JhdGNoLCBzY3JhdGNoMik7CisrICBB ZGQzMihzY3JhdGNoLCByZCwgc2NyYXRjaCk7CisrICBzcmxpdyhyZCwgc2NyYXRjaCwgNCk7Cisr ICBBZGQzMihyZCwgcmQsIHNjcmF0Y2gpOworKyAgbGkoc2NyYXRjaDIsIDB4Rik7CisrICBNdWwz MihzY3JhdGNoMiwgdmFsdWUsIHNjcmF0Y2gyKTsgIC8vIEIyID0gMHgwRjBGMEYwRjsKKysgIEFu ZChyZCwgcmQsIHNjcmF0Y2gyKTsKKysgIE11bDMyKHJkLCByZCwgdmFsdWUpOworKyAgU3JsMzIo cmQsIHJkLCBzaGlmdCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OlBvcGNudDY0KFJl Z2lzdGVyIHJkLCBSZWdpc3RlciBycykgeworKyAgLy8gdWludDY0X3QgQjAgPSAweDU1NTU1NTU1 NTU1NTU1NTVsOyAgICAgLy8gKFQpfihUKTAvMworKyAgLy8gdWludDY0X3QgQjEgPSAweDMzMzMz MzMzMzMzMzMzMzNsOyAgICAgLy8gKFQpfihUKTAvMTUqMworKyAgLy8gdWludDY0X3QgQjIgPSAw eDBGMEYwRjBGMEYwRjBGMEZsOyAgICAgLy8gKFQpfihUKTAvMjU1KjE1CisrICAvLyB1aW50NjRf dCB2YWx1ZSA9IDB4MDEwMTAxMDEwMTAxMDEwMWw7ICAvLyAoVCl+KFQpMC8yNTUKKysgIC8vIHVp bnQ2NF90IHNoaWZ0ID0gMjQ7ICAgICAgICAgICAgICAgICAgIC8vIChzaXplb2YoVCkgLSAxKSAq IEJJVFNfUEVSX0JZVEUKKysKKysgIERDSEVDSyhyZCAhPSB0NSAmJiByZCAhPSB0NiAmJiBycyAh PSB0NSAmJiBycyAhPSB0Nik7CisrICB1aW50NjRfdCBzaGlmdCA9IDI0OworKyAgVXNlU2NyYXRj aFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUg YmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBz LkFjcXVpcmUoKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2gyID0gdDU7CisrICBSZWdpc3RlciB2YWx1 ZSA9IHQ2OworKyAgbGkodmFsdWUsIDB4MTExMTExMTExMTExMTExMWwpOyAgLy8gdmFsdWUgPSAw eDExMTExMTExMTExMTExMTFsOworKyAgbGkoc2NyYXRjaDIsIDUpOworKyAgTXVsNjQoc2NyYXRj aDIsIHZhbHVlLCBzY3JhdGNoMik7ICAvLyBCMCA9IDB4NTU1NTU1NTU1NTU1NTU1NWw7CisrICBT cmw2NChzY3JhdGNoLCBycywgMSk7CisrICBBbmQoc2NyYXRjaCwgc2NyYXRjaCwgc2NyYXRjaDIp OworKyAgU3ViNjQoc2NyYXRjaCwgcnMsIHNjcmF0Y2gpOworKyAgbGkoc2NyYXRjaDIsIDMpOwor KyAgTXVsNjQoc2NyYXRjaDIsIHZhbHVlLCBzY3JhdGNoMik7ICAvLyBCMSA9IDB4MzMzMzMzMzMz MzMzMzMzM2w7CisrICBBbmQocmQsIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKKysgIFNybDY0KHNjcmF0 Y2gsIHNjcmF0Y2gsIDIpOworKyAgQW5kKHNjcmF0Y2gsIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKKysg IEFkZDY0KHNjcmF0Y2gsIHJkLCBzY3JhdGNoKTsKKysgIFNybDY0KHJkLCBzY3JhdGNoLCA0KTsK KysgIEFkZDY0KHJkLCByZCwgc2NyYXRjaCk7CisrICBsaShzY3JhdGNoMiwgMHhGKTsKKysgIGxp KHZhbHVlLCAweDAxMDEwMTAxMDEwMTAxMDFsKTsgICAgLy8gdmFsdWUgPSAweDAxMDEwMTAxMDEw MTAxMDFsOworKyAgTXVsNjQoc2NyYXRjaDIsIHZhbHVlLCBzY3JhdGNoMik7ICAvLyBCMiA9IDB4 MEYwRjBGMEYwRjBGMEYwRmw7CisrICBBbmQocmQsIHJkLCBzY3JhdGNoMik7CisrICBNdWw2NChy ZCwgcmQsIHZhbHVlKTsKKysgIHNybGkocmQsIHJkLCAzMiArIHNoaWZ0KTsKKyt9CisrCisrdm9p ZCBUdXJib0Fzc2VtYmxlcjo6VHJ5SW5saW5lVHJ1bmNhdGVEb3VibGVUb0koUmVnaXN0ZXIgcmVz dWx0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERv dWJsZVJlZ2lzdGVyIGRvdWJsZV9pbnB1dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYWJlbCogZG9uZSkgeworKyAgVXNlU2NyYXRjaFJlZ2lzdGVy U2NvcGUgdGVtcHModGhpcyk7CisrICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgp OworKyAgLy8gaWYgc2NyYXRjaCA9PSAxLCBleGNlcHRpb24gaGFwcGVucyBkdXJpbmcgdHJ1bmNh dGlvbgorKyAgVHJ1bmNfd19kKHJlc3VsdCwgZG91YmxlX2lucHV0LCBzY3JhdGNoKTsKKysgIC8v IElmIHdlIGhhZCBubyBleGNlcHRpb25zIChpLmUuLCBzY3JhdGNoPT0xKSB3ZSBhcmUgZG9uZS4K KysgIEJyYW5jaChkb25lLCBlcSwgc2NyYXRjaCwgT3BlcmFuZCgxKSk7CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OlRydW5jYXRlRG91YmxlVG9JKElzb2xhdGUqIGlzb2xhdGUsIFpvbmUq IHpvbmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg cmVzdWx0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvdWJsZVJl Z2lzdGVyIGRvdWJsZV9pbnB1dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdHViQ2FsbE1vZGUgc3R1Yl9tb2RlKSB7CisrICBMYWJlbCBkb25lOworKworKyAgVHJ5 SW5saW5lVHJ1bmNhdGVEb3VibGVUb0kocmVzdWx0LCBkb3VibGVfaW5wdXQsICZkb25lKTsKKysK KysgIC8vIElmIHdlIGZlbGwgdGhyb3VnaCB0aGVuIGlubGluZSB2ZXJzaW9uIGRpZG4ndCBzdWNj ZWVkIC0gY2FsbCBzdHViCisrICAvLyBpbnN0ZWFkLgorKyAgcHVzaChyYSk7CisrICBTdWI2NChz cCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsgIC8vIFB1dCBpbnB1dCBvbiBzdGFjay4KKysg IGZzZChkb3VibGVfaW5wdXQsIHNwLCAwKTsKKysKKysgIGlmIChzdHViX21vZGUgPT0gU3R1YkNh bGxNb2RlOjprQ2FsbFdhc21SdW50aW1lU3R1YikgeworKyAgICBDYWxsKHdhc206Oldhc21Db2Rl OjprRG91YmxlVG9JLCBSZWxvY0luZm86OldBU01fU1RVQl9DQUxMKTsKKysgIH0gZWxzZSB7Cisr ICAgIENhbGwoQlVJTFRJTl9DT0RFKGlzb2xhdGUsIERvdWJsZVRvSSksIFJlbG9jSW5mbzo6Q09E RV9UQVJHRVQpOworKyAgfQorKyAgbGQocmVzdWx0LCBzcCwgMCk7CisrCisrICBBZGQ2NChzcCwg c3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKKysgIHBvcChyYSk7CisrCisrICBiaW5kKCZkb25l KTsKKyt9CisrCisrLy8gQlJBTkNIX0FSR1NfQ0hFQ0sgY2hlY2tzIHRoYXQgY29uZGl0aW9uYWwg anVtcCBhcmd1bWVudHMgYXJlIGNvcnJlY3QuCisrI2RlZmluZSBCUkFOQ0hfQVJHU19DSEVDSyhj b25kLCBycywgcnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIERDSEVD SygoY29uZCA9PSBjY19hbHdheXMgJiYgcnMgPT0gemVyb19yZWcgJiYgcnQucm0oKSA9PSB6ZXJv X3JlZykgfHwgXAorKyAgICAgICAgIChjb25kICE9IGNjX2Fsd2F5cyAmJiAocnMgIT0gemVyb19y ZWcgfHwgcnQucm0oKSAhPSB6ZXJvX3JlZykpKQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkJy YW5jaChpbnQzMl90IG9mZnNldCkgeworKyAgRENIRUNLKGlzX2ludDIxKG9mZnNldCkpOworKyAg QnJhbmNoU2hvcnQob2Zmc2V0KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6QnJhbmNo KGludDMyX3Qgb2Zmc2V0LCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBib29sIGlzX25lYXIg PSBCcmFuY2hTaG9ydENoZWNrKG9mZnNldCwgbnVsbHB0ciwgY29uZCwgcnMsIHJ0KTsKKysgIERD SEVDSyhpc19uZWFyKTsKKysgIFVTRShpc19uZWFyKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6QnJhbmNoKExhYmVsKiBMKSB7CisrICBpZiAoTC0+aXNfYm91bmQoKSkgeworKyAgICBp ZiAoaXNfbmVhcihMKSkgeworKyAgICAgIEJyYW5jaFNob3J0KEwpOworKyAgICB9IGVsc2Ugewor KyAgICAgIEJyYW5jaExvbmcoTCk7CisrICAgIH0KKysgIH0gZWxzZSB7CisrICAgIGlmIChpc190 cmFtcG9saW5lX2VtaXR0ZWQoKSkgeworKyAgICAgIEJyYW5jaExvbmcoTCk7CisrICAgIH0gZWxz ZSB7CisrICAgICAgQnJhbmNoU2hvcnQoTCk7CisrICAgIH0KKysgIH0KKyt9CisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6QnJhbmNoKExhYmVsKiBMLCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIg cnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHJ0KSB7Cisr ICBpZiAoTC0+aXNfYm91bmQoKSkgeworKyAgICBpZiAoIUJyYW5jaFNob3J0Q2hlY2soMCwgTCwg Y29uZCwgcnMsIHJ0KSkgeworKyAgICAgIGlmIChjb25kICE9IGNjX2Fsd2F5cykgeworKyAgICAg ICAgTGFiZWwgc2tpcDsKKysgICAgICAgIENvbmRpdGlvbiBuZWdfY29uZCA9IE5lZ2F0ZUNvbmRp dGlvbihjb25kKTsKKysgICAgICAgIEJyYW5jaFNob3J0KCZza2lwLCBuZWdfY29uZCwgcnMsIHJ0 KTsKKysgICAgICAgIEJyYW5jaExvbmcoTCk7CisrICAgICAgICBiaW5kKCZza2lwKTsKKysgICAg ICB9IGVsc2UgeworKyAgICAgICAgQnJhbmNoTG9uZyhMKTsKKysgICAgICB9CisrICAgIH0KKysg IH0gZWxzZSB7CisrICAgIGlmIChpc190cmFtcG9saW5lX2VtaXR0ZWQoKSkgeworKyAgICAgIGlm IChjb25kICE9IGNjX2Fsd2F5cykgeworKyAgICAgICAgTGFiZWwgc2tpcDsKKysgICAgICAgIENv bmRpdGlvbiBuZWdfY29uZCA9IE5lZ2F0ZUNvbmRpdGlvbihjb25kKTsKKysgICAgICAgIEJyYW5j aFNob3J0KCZza2lwLCBuZWdfY29uZCwgcnMsIHJ0KTsKKysgICAgICAgIEJyYW5jaExvbmcoTCk7 CisrICAgICAgICBiaW5kKCZza2lwKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgQnJhbmNo TG9uZyhMKTsKKysgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAgQnJhbmNoU2hvcnQoTCwg Y29uZCwgcnMsIHJ0KTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpCcmFuY2goTGFiZWwqIEwsIENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBycywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUm9vdEluZGV4IGluZGV4KSB7CisrICBVc2VTY3JhdGNoUmVn aXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1 aXJlKCk7CisrICBMb2FkUm9vdChzY3JhdGNoLCBpbmRleCk7CisrICBCcmFuY2goTCwgY29uZCwg cnMsIE9wZXJhbmQoc2NyYXRjaCkpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpCcmFu Y2hTaG9ydEhlbHBlcihpbnQzMl90IG9mZnNldCwgTGFiZWwqIEwpIHsKKysgIERDSEVDSyhMID09 IG51bGxwdHIgfHwgb2Zmc2V0ID09IDApOworKyAgb2Zmc2V0ID0gR2V0T2Zmc2V0KG9mZnNldCwg TCwgT2Zmc2V0U2l6ZTo6a09mZnNldDIxKTsKKysgIGoob2Zmc2V0KTsKKyt9CisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6QnJhbmNoU2hvcnQoaW50MzJfdCBvZmZzZXQpIHsKKysgIERDSEVDSyhp c19pbnQyMShvZmZzZXQpKTsKKysgIEJyYW5jaFNob3J0SGVscGVyKG9mZnNldCwgbnVsbHB0cik7 CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaFNob3J0KExhYmVsKiBMKSB7IEJy YW5jaFNob3J0SGVscGVyKDAsIEwpOyB9CisrCisraW50MzJfdCBUdXJib0Fzc2VtYmxlcjo6R2V0 T2Zmc2V0KGludDMyX3Qgb2Zmc2V0LCBMYWJlbCogTCwgT2Zmc2V0U2l6ZSBiaXRzKSB7CisrICBp ZiAoTCkgeworKyAgICBvZmZzZXQgPSBicmFuY2hfb2Zmc2V0X2hlbHBlcihMLCBiaXRzKTsKKysg IH0gZWxzZSB7CisrICAgIERDSEVDSyhpc19pbnRuKG9mZnNldCwgYml0cykpOworKyAgfQorKyAg cmV0dXJuIG9mZnNldDsKKyt9CisrCisrUmVnaXN0ZXIgVHVyYm9Bc3NlbWJsZXI6OkdldFJ0QXNS ZWdpc3RlckhlbHBlcihjb25zdCBPcGVyYW5kJiBydCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKKysgIFJlZ2lzdGVy IHIyID0gbm9fcmVnOworKyAgaWYgKHJ0LmlzX3JlZygpKSB7CisrICAgIHIyID0gcnQucm0oKTsK KysgIH0gZWxzZSB7CisrICAgIHIyID0gc2NyYXRjaDsKKysgICAgbGkocjIsIHJ0KTsKKysgIH0K KysKKysgIHJldHVybiByMjsKKyt9CisrCisrYm9vbCBUdXJib0Fzc2VtYmxlcjo6Q2FsY3VsYXRl T2Zmc2V0KExhYmVsKiBMLCBpbnQzMl90KiBvZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9mZnNldFNpemUgYml0cykgeworKyAgaWYgKCFpc19uZWFyKEwsIGJp dHMpKSByZXR1cm4gZmFsc2U7CisrICAqb2Zmc2V0ID0gR2V0T2Zmc2V0KCpvZmZzZXQsIEwsIGJp dHMpOworKyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgVHVyYm9Bc3NlbWJsZXI6OkNhbGN1 bGF0ZU9mZnNldChMYWJlbCogTCwgaW50MzJfdCogb2Zmc2V0LCBPZmZzZXRTaXplIGJpdHMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyKiBzY3JhdGNoLCBj b25zdCBPcGVyYW5kJiBydCkgeworKyAgaWYgKCFpc19uZWFyKEwsIGJpdHMpKSByZXR1cm4gZmFs c2U7CisrICAqc2NyYXRjaCA9IEdldFJ0QXNSZWdpc3RlckhlbHBlcihydCwgKnNjcmF0Y2gpOwor KyAgKm9mZnNldCA9IEdldE9mZnNldCgqb2Zmc2V0LCBMLCBiaXRzKTsKKysgIHJldHVybiB0cnVl OworK30KKysKKytib29sIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2hTaG9ydEhlbHBlcihpbnQzMl90 IG9mZnNldCwgTGFiZWwqIEwsIENvbmRpdGlvbiBjb25kLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAg RENIRUNLKEwgPT0gbnVsbHB0ciB8fCBvZmZzZXQgPT0gMCk7CisrICBVc2VTY3JhdGNoUmVnaXN0 ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190 cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuaGFzQXZh aWxhYmxlKCkgPyB0ZW1wcy5BY3F1aXJlKCkgOiB0NTsKKysKKysgIHsKKysgICAgQmxvY2tUcmFt cG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgICAgc3dpdGNo IChjb25kKSB7CisrICAgICAgY2FzZSBjY19hbHdheXM6CisrICAgICAgICBpZiAoIUNhbGN1bGF0 ZU9mZnNldChMLCAmb2Zmc2V0LCBPZmZzZXRTaXplOjprT2Zmc2V0MjEpKSByZXR1cm4gZmFsc2U7 CisrICAgICAgICBqKG9mZnNldCk7CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNlIGVxOgor KyAgICAgICAgLy8gcnMgPT0gcnQKKysgICAgICAgIGlmIChydC5pc19yZWcoKSAmJiBycyA9PSBy dC5ybSgpKSB7CisrICAgICAgICAgIGlmICghQ2FsY3VsYXRlT2Zmc2V0KEwsICZvZmZzZXQsIE9m ZnNldFNpemU6OmtPZmZzZXQyMSkpIHJldHVybiBmYWxzZTsKKysgICAgICAgICAgaihvZmZzZXQp OworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgaWYgKCFDYWxjdWxhdGVPZmZzZXQoTCwg Jm9mZnNldCwgT2Zmc2V0U2l6ZTo6a09mZnNldDEzLCAmc2NyYXRjaCwgcnQpKQorKyAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKKysgICAgICAgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAg ICAgICAgICBiZXEocnMsIHNjcmF0Y2gsIG9mZnNldCk7CisrICAgICAgICB9CisrICAgICAgICBi cmVhazsKKysgICAgICBjYXNlIG5lOgorKyAgICAgICAgLy8gcnMgIT0gcnQKKysgICAgICAgIGlm IChydC5pc19yZWcoKSAmJiBycyA9PSBydC5ybSgpKSB7CisrICAgICAgICAgIGJyZWFrOyAgLy8g Tm8gY29kZSBuZWVkcyB0byBiZSBlbWl0dGVkCisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAg ICBpZiAoIUNhbGN1bGF0ZU9mZnNldChMLCAmb2Zmc2V0LCBPZmZzZXRTaXplOjprT2Zmc2V0MTMs ICZzY3JhdGNoLCBydCkpCisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgICBE Q0hFQ0socnMgIT0gc2NyYXRjaCk7CisrICAgICAgICAgIGJuZShycywgc2NyYXRjaCwgb2Zmc2V0 KTsKKysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworKworKyAgICAgIC8vIFNpZ25lZCBjb21w YXJpc29uLgorKyAgICAgIGNhc2UgZ3JlYXRlcjoKKysgICAgICAgIC8vIHJzID4gcnQKKysgICAg ICAgIGlmIChydC5pc19yZWcoKSAmJiBycyA9PSBydC5ybSgpKSB7CisrICAgICAgICAgIGJyZWFr OyAgLy8gTm8gY29kZSBuZWVkcyB0byBiZSBlbWl0dGVkLgorKyAgICAgICAgfSBlbHNlIHsKKysg ICAgICAgICAgaWYgKCFDYWxjdWxhdGVPZmZzZXQoTCwgJm9mZnNldCwgT2Zmc2V0U2l6ZTo6a09m ZnNldDEzLCAmc2NyYXRjaCwgcnQpKQorKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAg ICAgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICAgICAgICBiZ3QocnMsIHNjcmF0Y2gs IG9mZnNldCk7CisrICAgICAgICB9CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNlIGdyZWF0 ZXJfZXF1YWw6CisrICAgICAgICAvLyBycyA+PSBydAorKyAgICAgICAgaWYgKHJ0LmlzX3JlZygp ICYmIHJzID09IHJ0LnJtKCkpIHsKKysgICAgICAgICAgaWYgKCFDYWxjdWxhdGVPZmZzZXQoTCwg Jm9mZnNldCwgT2Zmc2V0U2l6ZTo6a09mZnNldDIxKSkgcmV0dXJuIGZhbHNlOworKyAgICAgICAg ICBqKG9mZnNldCk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBpZiAoIUNhbGN1bGF0 ZU9mZnNldChMLCAmb2Zmc2V0LCBPZmZzZXRTaXplOjprT2Zmc2V0MTMsICZzY3JhdGNoLCBydCkp CisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgICBEQ0hFQ0socnMgIT0gc2Ny YXRjaCk7CisrICAgICAgICAgIGJnZShycywgc2NyYXRjaCwgb2Zmc2V0KTsKKysgICAgICAgIH0K KysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2UgbGVzczoKKysgICAgICAgIC8vIHJzIDwgcnQK KysgICAgICAgIGlmIChydC5pc19yZWcoKSAmJiBycyA9PSBydC5ybSgpKSB7CisrICAgICAgICAg IGJyZWFrOyAgLy8gTm8gY29kZSBuZWVkcyB0byBiZSBlbWl0dGVkLgorKyAgICAgICAgfSBlbHNl IHsKKysgICAgICAgICAgaWYgKCFDYWxjdWxhdGVPZmZzZXQoTCwgJm9mZnNldCwgT2Zmc2V0U2l6 ZTo6a09mZnNldDEzLCAmc2NyYXRjaCwgcnQpKQorKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KysgICAgICAgICAgRENIRUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICAgICAgICBibHQocnMsIHNj cmF0Y2gsIG9mZnNldCk7CisrICAgICAgICB9CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNl IGxlc3NfZXF1YWw6CisrICAgICAgICAvLyBycyA8PSBydAorKyAgICAgICAgaWYgKHJ0LmlzX3Jl ZygpICYmIHJzID09IHJ0LnJtKCkpIHsKKysgICAgICAgICAgaWYgKCFDYWxjdWxhdGVPZmZzZXQo TCwgJm9mZnNldCwgT2Zmc2V0U2l6ZTo6a09mZnNldDIxKSkgcmV0dXJuIGZhbHNlOworKyAgICAg ICAgICBqKG9mZnNldCk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBpZiAoIUNhbGN1 bGF0ZU9mZnNldChMLCAmb2Zmc2V0LCBPZmZzZXRTaXplOjprT2Zmc2V0MTMsICZzY3JhdGNoLCBy dCkpCisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgICBEQ0hFQ0socnMgIT0g c2NyYXRjaCk7CisrICAgICAgICAgIGJsZShycywgc2NyYXRjaCwgb2Zmc2V0KTsKKysgICAgICAg IH0KKysgICAgICAgIGJyZWFrOworKworKyAgICAgIC8vIFVuc2lnbmVkIGNvbXBhcmlzb24uCisr ICAgICAgY2FzZSBVZ3JlYXRlcjoKKysgICAgICAgIC8vIHJzID4gcnQKKysgICAgICAgIGlmIChy dC5pc19yZWcoKSAmJiBycyA9PSBydC5ybSgpKSB7CisrICAgICAgICAgIGJyZWFrOyAgLy8gTm8g Y29kZSBuZWVkcyB0byBiZSBlbWl0dGVkLgorKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAg aWYgKCFDYWxjdWxhdGVPZmZzZXQoTCwgJm9mZnNldCwgT2Zmc2V0U2l6ZTo6a09mZnNldDEzLCAm c2NyYXRjaCwgcnQpKQorKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgICAgICAgRENI RUNLKHJzICE9IHNjcmF0Y2gpOworKyAgICAgICAgICBiZ3R1KHJzLCBzY3JhdGNoLCBvZmZzZXQp OworKyAgICAgICAgfQorKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBVZ3JlYXRlcl9lcXVh bDoKKysgICAgICAgIC8vIHJzID49IHJ0CisrICAgICAgICBpZiAocnQuaXNfcmVnKCkgJiYgcnMg PT0gcnQucm0oKSkgeworKyAgICAgICAgICBpZiAoIUNhbGN1bGF0ZU9mZnNldChMLCAmb2Zmc2V0 LCBPZmZzZXRTaXplOjprT2Zmc2V0MjEpKSByZXR1cm4gZmFsc2U7CisrICAgICAgICAgIGoob2Zm c2V0KTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIGlmICghQ2FsY3VsYXRlT2Zmc2V0 KEwsICZvZmZzZXQsIE9mZnNldFNpemU6OmtPZmZzZXQxMywgJnNjcmF0Y2gsIHJ0KSkKKysgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgICAgICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsK KysgICAgICAgICAgYmdldShycywgc2NyYXRjaCwgb2Zmc2V0KTsKKysgICAgICAgIH0KKysgICAg ICAgIGJyZWFrOworKyAgICAgIGNhc2UgVWxlc3M6CisrICAgICAgICAvLyBycyA8IHJ0CisrICAg ICAgICBpZiAocnQuaXNfcmVnKCkgJiYgcnMgPT0gcnQucm0oKSkgeworKyAgICAgICAgICBicmVh azsgIC8vIE5vIGNvZGUgbmVlZHMgdG8gYmUgZW1pdHRlZC4KKysgICAgICAgIH0gZWxzZSB7Cisr ICAgICAgICAgIGlmICghQ2FsY3VsYXRlT2Zmc2V0KEwsICZvZmZzZXQsIE9mZnNldFNpemU6OmtP ZmZzZXQxMywgJnNjcmF0Y2gsIHJ0KSkKKysgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisrICAg ICAgICAgIERDSEVDSyhycyAhPSBzY3JhdGNoKTsKKysgICAgICAgICAgYmx0dShycywgc2NyYXRj aCwgb2Zmc2V0KTsKKysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2UgVWxl c3NfZXF1YWw6CisrICAgICAgICAvLyBycyA8PSBydAorKyAgICAgICAgaWYgKHJ0LmlzX3JlZygp ICYmIHJzID09IHJ0LnJtKCkpIHsKKysgICAgICAgICAgaWYgKCFDYWxjdWxhdGVPZmZzZXQoTCwg Jm9mZnNldCwgT2Zmc2V0U2l6ZTo6a09mZnNldDIxKSkgcmV0dXJuIGZhbHNlOworKyAgICAgICAg ICBqKG9mZnNldCk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBpZiAoIUNhbGN1bGF0 ZU9mZnNldChMLCAmb2Zmc2V0LCBPZmZzZXRTaXplOjprT2Zmc2V0MTMsICZzY3JhdGNoLCBydCkp CisrICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgICBEQ0hFQ0socnMgIT0gc2Ny YXRjaCk7CisrICAgICAgICAgIGJsZXUocnMsIHNjcmF0Y2gsIG9mZnNldCk7CisrICAgICAgICB9 CisrICAgICAgICBicmVhazsKKysgICAgICBkZWZhdWx0OgorKyAgICAgICAgVU5SRUFDSEFCTEUo KTsKKysgICAgfQorKyAgfQorKworKyAgQ2hlY2tUcmFtcG9saW5lUG9vbFF1aWNrKDEpOworKyAg cmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaFNob3J0Q2hl Y2soaW50MzJfdCBvZmZzZXQsIExhYmVsKiBMLCBDb25kaXRpb24gY29uZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBy dCkgeworKyAgQlJBTkNIX0FSR1NfQ0hFQ0soY29uZCwgcnMsIHJ0KTsKKysKKysgIGlmICghTCkg eworKyAgICBEQ0hFQ0soaXNfaW50MTMob2Zmc2V0KSk7CisrICAgIHJldHVybiBCcmFuY2hTaG9y dEhlbHBlcihvZmZzZXQsIG51bGxwdHIsIGNvbmQsIHJzLCBydCk7CisrICB9IGVsc2UgeworKyAg ICBEQ0hFQ0tfRVEob2Zmc2V0LCAwKTsKKysgICAgcmV0dXJuIEJyYW5jaFNob3J0SGVscGVyKDAs IEwsIGNvbmQsIHJzLCBydCk7CisrICB9CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQg VHVyYm9Bc3NlbWJsZXI6OkJyYW5jaFNob3J0KGludDMyX3Qgb2Zmc2V0LCBDb25kaXRpb24gY29u ZCwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg T3BlcmFuZCYgcnQpIHsKKysgIEJyYW5jaFNob3J0Q2hlY2sob2Zmc2V0LCBudWxscHRyLCBjb25k LCBycywgcnQpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2hTaG9ydChMYWJl bCogTCwgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJzLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBCcmFuY2hTaG9ydENoZWNrKDAs IEwsIGNvbmQsIHJzLCBydCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaEFu ZExpbmsoaW50MzJfdCBvZmZzZXQpIHsKKysgIEJyYW5jaEFuZExpbmtTaG9ydChvZmZzZXQpOwor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2hBbmRMaW5rKGludDMyX3Qgb2Zmc2V0 LCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgYm9vbCBpc19uZWFyID0gQnJhbmNo QW5kTGlua1Nob3J0Q2hlY2sob2Zmc2V0LCBudWxscHRyLCBjb25kLCBycywgcnQpOworKyAgRENI RUNLKGlzX25lYXIpOworKyAgVVNFKGlzX25lYXIpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1i bGVyOjpCcmFuY2hBbmRMaW5rKExhYmVsKiBMKSB7CisrICBpZiAoTC0+aXNfYm91bmQoKSkgewor KyAgICBpZiAoaXNfbmVhcihMKSkgeworKyAgICAgIEJyYW5jaEFuZExpbmtTaG9ydChMKTsKKysg ICAgfSBlbHNlIHsKKysgICAgICBCcmFuY2hBbmRMaW5rTG9uZyhMKTsKKysgICAgfQorKyAgfSBl bHNlIHsKKysgICAgaWYgKGlzX3RyYW1wb2xpbmVfZW1pdHRlZCgpKSB7CisrICAgICAgQnJhbmNo QW5kTGlua0xvbmcoTCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgQnJhbmNoQW5kTGlua1Nob3J0 KEwpOworKyAgICB9CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaEFu ZExpbmsoTGFiZWwqIEwsIENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBycywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBpZiAoTC0+ aXNfYm91bmQoKSkgeworKyAgICBpZiAoIUJyYW5jaEFuZExpbmtTaG9ydENoZWNrKDAsIEwsIGNv bmQsIHJzLCBydCkpIHsKKysgICAgICBMYWJlbCBza2lwOworKyAgICAgIENvbmRpdGlvbiBuZWdf Y29uZCA9IE5lZ2F0ZUNvbmRpdGlvbihjb25kKTsKKysgICAgICBCcmFuY2hTaG9ydCgmc2tpcCwg bmVnX2NvbmQsIHJzLCBydCk7CisrICAgICAgQnJhbmNoQW5kTGlua0xvbmcoTCk7CisrICAgICAg YmluZCgmc2tpcCk7CisrICAgIH0KKysgIH0gZWxzZSB7CisrICAgIGlmIChpc190cmFtcG9saW5l X2VtaXR0ZWQoKSkgeworKyAgICAgIExhYmVsIHNraXA7CisrICAgICAgQ29uZGl0aW9uIG5lZ19j b25kID0gTmVnYXRlQ29uZGl0aW9uKGNvbmQpOworKyAgICAgIEJyYW5jaFNob3J0KCZza2lwLCBu ZWdfY29uZCwgcnMsIHJ0KTsKKysgICAgICBCcmFuY2hBbmRMaW5rTG9uZyhMKTsKKysgICAgICBi aW5kKCZza2lwKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBCcmFuY2hBbmRMaW5rU2hvcnRDaGVj aygwLCBMLCBjb25kLCBycywgcnQpOworKyAgICB9CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9B c3NlbWJsZXI6OkJyYW5jaEFuZExpbmtTaG9ydEhlbHBlcihpbnQzMl90IG9mZnNldCwgTGFiZWwq IEwpIHsKKysgIERDSEVDSyhMID09IG51bGxwdHIgfHwgb2Zmc2V0ID09IDApOworKyAgb2Zmc2V0 ID0gR2V0T2Zmc2V0KG9mZnNldCwgTCwgT2Zmc2V0U2l6ZTo6a09mZnNldDIxKTsKKysgIGphbChv ZmZzZXQpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2hBbmRMaW5rU2hvcnQo aW50MzJfdCBvZmZzZXQpIHsKKysgIERDSEVDSyhpc19pbnQyMShvZmZzZXQpKTsKKysgIEJyYW5j aEFuZExpbmtTaG9ydEhlbHBlcihvZmZzZXQsIG51bGxwdHIpOworK30KKysKKyt2b2lkIFR1cmJv QXNzZW1ibGVyOjpCcmFuY2hBbmRMaW5rU2hvcnQoTGFiZWwqIEwpIHsKKysgIEJyYW5jaEFuZExp bmtTaG9ydEhlbHBlcigwLCBMKTsKKyt9CisrCisrLy8gUHJlIHI2IHdlIG5lZWQgdG8gdXNlIGEg YmdlemFsIG9yIGJsdHphbCwgYnV0IHRoZXkgY2FuJ3QgYmUgdXNlZCBkaXJlY3RseQorKy8vIHdp dGggdGhlIHNsdCBpbnN0cnVjdGlvbnMuIFdlIGNvdWxkIHVzZSBzdWIgb3IgYWRkIGluc3RlYWQg YnV0IHdlIHdvdWxkIG1pc3MKKysvLyBvdmVyZmxvdyBjYXNlcywgc28gd2Uga2VlcCBzbHQgYW5k IGFkZCBhbiBpbnRlcm1lZGlhdGUgdGhpcmQgaW5zdHJ1Y3Rpb24uCisrYm9vbCBUdXJib0Fzc2Vt Ymxlcjo6QnJhbmNoQW5kTGlua1Nob3J0SGVscGVyKGludDMyX3Qgb2Zmc2V0LCBMYWJlbCogTCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZGl0aW9u IGNvbmQsIFJlZ2lzdGVyIHJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgRENIRUNLKEwgPT0gbnVsbHB0ciB8 fCBvZmZzZXQgPT0gMCk7CisrICBpZiAoIWlzX25lYXIoTCwgT2Zmc2V0U2l6ZTo6a09mZnNldDIx KSkgcmV0dXJuIGZhbHNlOworKworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHQ1OworKyAgQmxvY2tU cmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysKKysgIGlm IChjb25kID09IGNjX2Fsd2F5cykgeworKyAgICBvZmZzZXQgPSBHZXRPZmZzZXQob2Zmc2V0LCBM LCBPZmZzZXRTaXplOjprT2Zmc2V0MjEpOworKyAgICBqYWwob2Zmc2V0KTsKKysgIH0gZWxzZSB7 CisrICAgIEJyYW5jaChrSW5zdHJTaXplICogMiwgTmVnYXRlQ29uZGl0aW9uKGNvbmQpLCBycywK KysgICAgICAgICAgIE9wZXJhbmQoR2V0UnRBc1JlZ2lzdGVySGVscGVyKHJ0LCBzY3JhdGNoKSkp OworKyAgICBvZmZzZXQgPSBHZXRPZmZzZXQob2Zmc2V0LCBMLCBPZmZzZXRTaXplOjprT2Zmc2V0 MjEpOworKyAgICBqYWwob2Zmc2V0KTsKKysgIH0KKysKKysgIHJldHVybiB0cnVlOworK30KKysK Kytib29sIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2hBbmRMaW5rU2hvcnRDaGVjayhpbnQzMl90IG9m ZnNldCwgTGFiZWwqIEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJzLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBCUkFOQ0hf QVJHU19DSEVDSyhjb25kLCBycywgcnQpOworKworKyAgaWYgKCFMKSB7CisrICAgIERDSEVDSyhp c19pbnQyMShvZmZzZXQpKTsKKysgICAgcmV0dXJuIEJyYW5jaEFuZExpbmtTaG9ydEhlbHBlcihv ZmZzZXQsIG51bGxwdHIsIGNvbmQsIHJzLCBydCk7CisrICB9IGVsc2UgeworKyAgICBEQ0hFQ0tf RVEob2Zmc2V0LCAwKTsKKysgICAgcmV0dXJuIEJyYW5jaEFuZExpbmtTaG9ydEhlbHBlcigwLCBM LCBjb25kLCBycywgcnQpOworKyAgfQorKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFR1 cmJvQXNzZW1ibGVyOjpMb2FkRnJvbUNvbnN0YW50c1RhYmxlKFJlZ2lzdGVyIGRlc3RpbmF0aW9u LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN0 YW50X2luZGV4KSB7CisrICBEQ0hFQ0soUm9vdHNUYWJsZTo6SXNJbW1vcnRhbEltbW92YWJsZShS b290SW5kZXg6OmtCdWlsdGluc0NvbnN0YW50c1RhYmxlKSk7CisrICBMb2FkUm9vdChkZXN0aW5h dGlvbiwgUm9vdEluZGV4OjprQnVpbHRpbnNDb25zdGFudHNUYWJsZSk7CisrICBMZChkZXN0aW5h dGlvbiwKKysgICAgIEZpZWxkTWVtT3BlcmFuZChkZXN0aW5hdGlvbiwKKysgICAgICAgICAgICAg ICAgICAgICBGaXhlZEFycmF5OjprSGVhZGVyU2l6ZSArIGNvbnN0YW50X2luZGV4ICoga1BvaW50 ZXJTaXplKSk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWRSb290UmVsYXRpdmUo UmVnaXN0ZXIgZGVzdGluYXRpb24sIGludDMyX3Qgb2Zmc2V0KSB7CisrICBMZChkZXN0aW5hdGlv biwgTWVtT3BlcmFuZChrUm9vdFJlZ2lzdGVyLCBvZmZzZXQpKTsKKyt9CisrCisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6TG9hZFJvb3RSZWdpc3Rlck9mZnNldChSZWdpc3RlciBkZXN0aW5hdGlvbiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludHB0cl90IG9m ZnNldCkgeworKyAgaWYgKG9mZnNldCA9PSAwKSB7CisrICAgIE1vdmUoZGVzdGluYXRpb24sIGtS b290UmVnaXN0ZXIpOworKyAgfSBlbHNlIHsKKysgICAgQWRkNjQoZGVzdGluYXRpb24sIGtSb290 UmVnaXN0ZXIsIE9wZXJhbmQob2Zmc2V0KSk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3Nl bWJsZXI6Okp1bXAoUmVnaXN0ZXIgdGFyZ2V0LCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgcnMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgQmxv Y2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgIGlm IChjb25kID09IGNjX2Fsd2F5cykgeworKyAgICBqcih0YXJnZXQpOworKyAgfSBlbHNlIHsKKysg ICAgQlJBTkNIX0FSR1NfQ0hFQ0soY29uZCwgcnMsIHJ0KTsKKysgICAgQnJhbmNoKGtJbnN0clNp emUgKiAyLCBOZWdhdGVDb25kaXRpb24oY29uZCksIHJzLCBydCk7CisrICAgIGpyKHRhcmdldCk7 CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6Okp1bXAoaW50cHRyX3QgdGFyZ2V0 LCBSZWxvY0luZm86Ok1vZGUgcm1vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBDb25k aXRpb24gY29uZCwgUmVnaXN0ZXIgcnMsIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBMYWJlbCBz a2lwOworKyAgaWYgKGNvbmQgIT0gY2NfYWx3YXlzKSB7CisrICAgIEJyYW5jaCgmc2tpcCwgTmVn YXRlQ29uZGl0aW9uKGNvbmQpLCBycywgcnQpOworKyAgfQorKyAgeworKyAgICBCbG9ja1RyYW1w b2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgICBsaSh0Niwg T3BlcmFuZCh0YXJnZXQsIHJtb2RlKSk7CisrICAgIEp1bXAodDYsIGFsLCB6ZXJvX3JlZywgT3Bl cmFuZCh6ZXJvX3JlZykpOworKyAgICBiaW5kKCZza2lwKTsKKysgIH0KKyt9CisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6SnVtcChBZGRyZXNzIHRhcmdldCwgUmVsb2NJbmZvOjpNb2RlIHJtb2Rl LCBDb25kaXRpb24gY29uZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJz LCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgRENIRUNLKCFSZWxvY0luZm86OklzQ29kZVRhcmdl dChybW9kZSkpOworKyAgSnVtcChzdGF0aWNfY2FzdDxpbnRwdHJfdD4odGFyZ2V0KSwgcm1vZGUs IGNvbmQsIHJzLCBydCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6Okp1bXAoSGFuZGxl PENvZGU+IGNvZGUsIFJlbG9jSW5mbzo6TW9kZSBybW9kZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsK KysgIERDSEVDSyhSZWxvY0luZm86OklzQ29kZVRhcmdldChybW9kZSkpOworKworKyAgQmxvY2tU cmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsKKysgIGlmIChy b290X2FycmF5X2F2YWlsYWJsZV8gJiYgb3B0aW9ucygpLmlzb2xhdGVfaW5kZXBlbmRlbnRfY29k ZSkgeworKyAgICBJbmRpcmVjdExvYWRDb25zdGFudCh0NiwgY29kZSk7CisrICAgIEFkZDY0KHQ2 LCB0NiwgT3BlcmFuZChDb2RlOjprSGVhZGVyU2l6ZSAtIGtIZWFwT2JqZWN0VGFnKSk7CisrICAg IEp1bXAodDYsIGNvbmQsIHJzLCBydCk7CisrICAgIHJldHVybjsKKysgIH0gZWxzZSBpZiAob3B0 aW9ucygpLmlubGluZV9vZmZoZWFwX3RyYW1wb2xpbmVzKSB7CisrICAgIGludCBidWlsdGluX2lu ZGV4ID0gQnVpbHRpbnM6OmtOb0J1aWx0aW5JZDsKKysgICAgaWYgKGlzb2xhdGUoKS0+YnVpbHRp bnMoKS0+SXNCdWlsdGluSGFuZGxlKGNvZGUsICZidWlsdGluX2luZGV4KSAmJgorKyAgICAgICAg QnVpbHRpbnM6OklzSXNvbGF0ZUluZGVwZW5kZW50KGJ1aWx0aW5faW5kZXgpKSB7CisrICAgICAg Ly8gSW5saW5lIHRoZSB0cmFtcG9saW5lLgorKyAgICAgIFJlY29yZENvbW1lbnRGb3JPZmZIZWFw VHJhbXBvbGluZShidWlsdGluX2luZGV4KTsKKysgICAgICBDSEVDS19ORShidWlsdGluX2luZGV4 LCBCdWlsdGluczo6a05vQnVpbHRpbklkKTsKKysgICAgICBFbWJlZGRlZERhdGEgZCA9IEVtYmVk ZGVkRGF0YTo6RnJvbUJsb2IoKTsKKysgICAgICBBZGRyZXNzIGVudHJ5ID0gZC5JbnN0cnVjdGlv blN0YXJ0T2ZCdWlsdGluKGJ1aWx0aW5faW5kZXgpOworKyAgICAgIGxpKHQ2LCBPcGVyYW5kKGVu dHJ5LCBSZWxvY0luZm86Ok9GRl9IRUFQX1RBUkdFVCkpOworKyAgICAgIEp1bXAodDYsIGNvbmQs IHJzLCBydCk7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICB9CisrCisrICBKdW1wKHN0YXRp Y19jYXN0PGludHB0cl90Pihjb2RlLmFkZHJlc3MoKSksIHJtb2RlLCBjb25kLCBycywgcnQpOwor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpKdW1wKGNvbnN0IEV4dGVybmFsUmVmZXJlbmNl JiByZWZlcmVuY2UpIHsKKysgIGxpKHQ2LCByZWZlcmVuY2UpOworKyAgSnVtcCh0Nik7CisrfQor KworKy8vIEZJWE1FIChSSVNDVik6IHRoZSBjb21tZW50IGRvZXMgbm90IG1ha2Ugc2Vuc2UsIHdo ZXJlIGlzIHQ2IHVzZWQ/CisrLy8gTm90ZTogVG8gY2FsbCBnY2MtY29tcGlsZWQgQyBjb2RlIG9u IHJpc2N2NjQsIHlvdSBtdXN0IGNhbGwgdGhyb3VnaCB0Ni4KKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpDYWxsKFJlZ2lzdGVyIHRhcmdldCwgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIEJsb2NrVHJh bXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICBpZiAoY29u ZCA9PSBjY19hbHdheXMpIHsKKysgICAgamFscihyYSwgdGFyZ2V0LCAwKTsKKysgIH0gZWxzZSB7 CisrICAgIEJSQU5DSF9BUkdTX0NIRUNLKGNvbmQsIHJzLCBydCk7CisrICAgIEJyYW5jaChrSW5z dHJTaXplICogMiwgTmVnYXRlQ29uZGl0aW9uKGNvbmQpLCBycywgcnQpOworKyAgICBqYWxyKHJh LCB0YXJnZXQsIDApOworKyAgfQorK30KKysKKyt2b2lkIE1hY3JvQXNzZW1ibGVyOjpKdW1wSWZJ c0luUmFuZ2UoUmVnaXN0ZXIgdmFsdWUsIHVuc2lnbmVkIGxvd2VyX2xpbWl0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBoaWdoZXJfbGltaXQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9pbl9yYW5nZSkgewor KyAgaWYgKGxvd2VyX2xpbWl0ICE9IDApIHsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUg dGVtcHModGhpcyk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7Cisr ICAgIFN1YjY0KHNjcmF0Y2gsIHZhbHVlLCBPcGVyYW5kKGxvd2VyX2xpbWl0KSk7CisrICAgIEJy YW5jaChvbl9pbl9yYW5nZSwgVWxlc3NfZXF1YWwsIHNjcmF0Y2gsCisrICAgICAgICAgICBPcGVy YW5kKGhpZ2hlcl9saW1pdCAtIGxvd2VyX2xpbWl0KSk7CisrICB9IGVsc2UgeworKyAgICBCcmFu Y2gob25faW5fcmFuZ2UsIFVsZXNzX2VxdWFsLCB2YWx1ZSwKKysgICAgICAgICAgIE9wZXJhbmQo aGlnaGVyX2xpbWl0IC0gbG93ZXJfbGltaXQpKTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6Q2FsbChBZGRyZXNzIHRhcmdldCwgUmVsb2NJbmZvOjpNb2RlIHJtb2RlLCBDb25k aXRpb24gY29uZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJzLCBjb25z dCBPcGVyYW5kJiBydCkgeworKyAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1w b2xpbmVfcG9vbCh0aGlzKTsKKysgIGxpKHQ2LCBPcGVyYW5kKHN0YXRpY19jYXN0PGludDY0X3Q+ KHRhcmdldCksIHJtb2RlKSwgQUREUkVTU19MT0FEKTsKKysgIENhbGwodDYsIGNvbmQsIHJzLCBy dCk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGwoSGFuZGxlPENvZGU+IGNvZGUs IFJlbG9jSW5mbzo6TW9kZSBybW9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmRp dGlvbiBjb25kLCBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpIHsKKysgIEJsb2NrVHJh bXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrCisrICBpZiAo cm9vdF9hcnJheV9hdmFpbGFibGVfICYmIG9wdGlvbnMoKS5pc29sYXRlX2luZGVwZW5kZW50X2Nv ZGUpIHsKKysgICAgSW5kaXJlY3RMb2FkQ29uc3RhbnQodDYsIGNvZGUpOworKyAgICBBZGQ2NCh0 NiwgdDYsIE9wZXJhbmQoQ29kZTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZykpOworKyAg ICBDYWxsKHQ2LCBjb25kLCBycywgcnQpOworKyAgICByZXR1cm47CisrICB9IGVsc2UgaWYgKG9w dGlvbnMoKS5pbmxpbmVfb2ZmaGVhcF90cmFtcG9saW5lcykgeworKyAgICBpbnQgYnVpbHRpbl9p bmRleCA9IEJ1aWx0aW5zOjprTm9CdWlsdGluSWQ7CisrICAgIGlmIChpc29sYXRlKCktPmJ1aWx0 aW5zKCktPklzQnVpbHRpbkhhbmRsZShjb2RlLCAmYnVpbHRpbl9pbmRleCkgJiYKKysgICAgICAg IEJ1aWx0aW5zOjpJc0lzb2xhdGVJbmRlcGVuZGVudChidWlsdGluX2luZGV4KSkgeworKyAgICAg IC8vIElubGluZSB0aGUgdHJhbXBvbGluZS4KKysgICAgICBSZWNvcmRDb21tZW50Rm9yT2ZmSGVh cFRyYW1wb2xpbmUoYnVpbHRpbl9pbmRleCk7CisrICAgICAgQ0hFQ0tfTkUoYnVpbHRpbl9pbmRl eCwgQnVpbHRpbnM6OmtOb0J1aWx0aW5JZCk7CisrICAgICAgRW1iZWRkZWREYXRhIGQgPSBFbWJl ZGRlZERhdGE6OkZyb21CbG9iKCk7CisrICAgICAgQWRkcmVzcyBlbnRyeSA9IGQuSW5zdHJ1Y3Rp b25TdGFydE9mQnVpbHRpbihidWlsdGluX2luZGV4KTsKKysgICAgICBsaSh0NiwgT3BlcmFuZChl bnRyeSwgUmVsb2NJbmZvOjpPRkZfSEVBUF9UQVJHRVQpKTsKKysgICAgICBDYWxsKHQ2LCBjb25k LCBycywgcnQpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgfQorKworKyAgRENIRUNLKFJl bG9jSW5mbzo6SXNDb2RlVGFyZ2V0KHJtb2RlKSk7CisrICBEQ0hFQ0soY29kZS0+SXNFeGVjdXRh YmxlKCkpOworKyAgQ2FsbChjb2RlLmFkZHJlc3MoKSwgcm1vZGUsIGNvbmQsIHJzLCBydCk7Cisr fQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWRFbnRyeUZyb21CdWlsdGluSW5kZXgoUmVn aXN0ZXIgYnVpbHRpbl9pbmRleCkgeworKyAgU1RBVElDX0FTU0VSVChrU3lzdGVtUG9pbnRlclNp emUgPT0gOCk7CisrICBTVEFUSUNfQVNTRVJUKGtTbWlUYWdTaXplID09IDEpOworKyAgU1RBVElD X0FTU0VSVChrU21pVGFnID09IDApOworKworKyAgLy8gVGhlIGJ1aWx0aW5faW5kZXggcmVnaXN0 ZXIgY29udGFpbnMgdGhlIGJ1aWx0aW4gaW5kZXggYXMgYSBTbWkuCisrICBTbWlVbnRhZyhidWls dGluX2luZGV4LCBidWlsdGluX2luZGV4KTsKKysgIENhbGNTY2FsZWRBZGRyZXNzKGJ1aWx0aW5f aW5kZXgsIGtSb290UmVnaXN0ZXIsIGJ1aWx0aW5faW5kZXgsCisrICAgICAgICAgICAgICAgICAg ICBrU3lzdGVtUG9pbnRlclNpemVMb2cyKTsKKysgIExkKGJ1aWx0aW5faW5kZXgsCisrICAgICBN ZW1PcGVyYW5kKGJ1aWx0aW5faW5kZXgsIElzb2xhdGVEYXRhOjpidWlsdGluX2VudHJ5X3RhYmxl X29mZnNldCgpKSk7CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGxCdWlsdGluQnlJ bmRleChSZWdpc3RlciBidWlsdGluX2luZGV4KSB7CisrICBMb2FkRW50cnlGcm9tQnVpbHRpbklu ZGV4KGJ1aWx0aW5faW5kZXgpOworKyAgQ2FsbChidWlsdGluX2luZGV4KTsKKyt9CisrCisrdm9p ZCBUdXJib0Fzc2VtYmxlcjo6UGF0Y2hBbmRKdW1wKEFkZHJlc3MgdGFyZ2V0KSB7CisrICBVc2VT Y3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0 ZW1wcy5BY3F1aXJlKCk7CisrICBhdWlwYyhzY3JhdGNoLCAwKTsgIC8vIExvYWQgUEMgaW50byBz Y3JhdGNoCisrICBMZCh0NiwgTWVtT3BlcmFuZChzY3JhdGNoLCBrSW5zdHJTaXplICogNCkpOwor KyAganIodDYpOworKyAgbm9wKCk7ICAvLyBGb3IgYWxpZ25tZW50CisrICBEQ0hFQ0tfRVEocmVp bnRlcnByZXRfY2FzdDx1aW50NjRfdD4ocGNfKSAlIDgsIDApOworKyAgKnJlaW50ZXJwcmV0X2Nh c3Q8dWludDY0X3QqPihwY18pID0gdGFyZ2V0OyAgLy8gcGNfIHNob3VsZCBiZSBhbGlnbi4KKysg IHBjXyArPSBzaXplb2YodWludDY0X3QpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpT dG9yZVJldHVybkFkZHJlc3NBbmRDYWxsKFJlZ2lzdGVyIHRhcmdldCkgeworKyAgLy8gVGhpcyBn ZW5lcmF0ZXMgdGhlIGZpbmFsIGluc3RydWN0aW9uIHNlcXVlbmNlIGZvciBjYWxscyB0byBDIGZ1 bmN0aW9ucworKyAgLy8gb25jZSBhbiBleGl0IGZyYW1lIGhhcyBiZWVuIGNvbnN0cnVjdGVkLgor KyAgLy8KKysgIC8vIE5vdGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhlIGNhbGxlciBjb2RlIChpLmUu IHRoZSBDb2RlIG9iamVjdCBjdXJyZW50bHkKKysgIC8vIGJlaW5nIGdlbmVyYXRlZCkgaXMgaW1t b3ZhYmxlIG9yIHRoYXQgdGhlIGNhbGxlZSBmdW5jdGlvbiBjYW5ub3QgdHJpZ2dlcgorKyAgLy8g R0MsIHNpbmNlIHRoZSBjYWxsZWUgZnVuY3Rpb24gd2lsbCByZXR1cm4gdG8gaXQuCisrCisrICAv LyBDb21wdXRlIHRoZSByZXR1cm4gYWRkcmVzcyBpbiBsciB0byByZXR1cm4gdG8gYWZ0ZXIgdGhl IGp1bXAgYmVsb3cuIFRoZQorKyAgLy8gcGMgaXMgYWxyZWFkeSBhdCAnKyA4JyBmcm9tIHRoZSBj dXJyZW50IGluc3RydWN0aW9uOyBidXQgcmV0dXJuIGlzIGFmdGVyCisrICAvLyB0aHJlZSBpbnN0 cnVjdGlvbnMsIHNvIGFkZCBhbm90aGVyIDQgdG8gcGMgdG8gZ2V0IHRoZSByZXR1cm4gYWRkcmVz cy4KKysKKysgIEFzc2VtYmxlcjo6QmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1w b2xpbmVfcG9vbCh0aGlzKTsKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1JbnN0cnVjdGlv bnNUb0p1bXAgPSA1OworKyAgTGFiZWwgZmluZF9yYTsKKysgIC8vIEFkanVzdCB0aGUgdmFsdWUg aW4gcmEgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgcmV0dXJuIGxvY2F0aW9uLCBvbmUKKysgIC8v IGluc3RydWN0aW9uIHBhc3QgdGhlIHJlYWwgY2FsbCBpbnRvIEMgY29kZSAodGhlIGphbHIodDYp KSwgYW5kIHB1c2ggaXQuCisrICAvLyBUaGlzIGlzIHRoZSByZXR1cm4gYWRkcmVzcyBvZiB0aGUg ZXhpdCBmcmFtZS4KKysgIGF1aXBjKHJhLCAwKTsgIC8vIFNldCByYSB0aGUgY3VycmVudCBQQwor KyAgYmluZCgmZmluZF9yYSk7CisrICBhZGRpKHJhLCByYSwKKysgICAgICAgKGtOdW1JbnN0cnVj dGlvbnNUb0p1bXAgKyAxKSAqCisrICAgICAgICAgICBrSW5zdHJTaXplKTsgIC8vIFNldCByYSB0 byBpbnNuIGFmdGVyIHRoZSBjYWxsCisrCisrICAvLyBUaGlzIHNwb3Qgd2FzIHJlc2VydmVkIGlu IEVudGVyRXhpdEZyYW1lLgorKyAgU2QocmEsIE1lbU9wZXJhbmQoc3ApKTsKKysgIGFkZGkoc3As IHNwLCAta0NBcmdzU2xvdHNTaXplKTsKKysgIC8vIFN0YWNrIGlzIHN0aWxsIGFsaWduZWQuCisr CisrICAvLyBDYWxsIHRoZSBDIHJvdXRpbmUuCisrICBtdih0NiwgdGFyZ2V0KTsgIC8vIEZ1bmN0 aW9uIHBvaW50ZXIgdG8gdDYgdG8gY29uZm9ybSB0byBBQkkgZm9yIFBJQy4KKysgIGphbHIodDYp OworKyAgLy8gTWFrZSBzdXJlIHRoZSBzdG9yZWQgJ3JhJyBwb2ludHMgdG8gdGhpcyBwb3NpdGlv bi4KKysgIERDSEVDS19FUShrTnVtSW5zdHJ1Y3Rpb25zVG9KdW1wLCBJbnN0cnVjdGlvbnNHZW5l cmF0ZWRTaW5jZSgmZmluZF9yYSkpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpSZXQo Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgSnVt cChyYSwgY29uZCwgcnMsIHJ0KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6QnJhbmNo TG9uZyhMYWJlbCogTCkgeworKyAgLy8gR2VuZXJhdGUgcG9zaXRpb24gaW5kZXBlbmRlbnQgbG9u ZyBicmFuY2guCisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9w b29sKHRoaXMpOworKyAgaW50NjRfdCBpbW02NDsKKysgIGltbTY0ID0gYnJhbmNoX2xvbmdfb2Zm c2V0KEwpOworKyAgRENIRUNLKGlzX2ludDMyKGltbTY0KSk7CisrICBpbnQzMl90IEhpMjAgPSAo KChpbnQzMl90KWltbTY0ICsgMHg4MDApID4+IDEyKTsKKysgIGludDMyX3QgTG8xMiA9IChpbnQz Ml90KWltbTY0IDw8IDIwID4+IDIwOworKyAgYXVpcGModDUsIEhpMjApOyAgLy8gUmVhZCBQQyAr IEhpMjAgaW50byB0NS4KKysgIGpyKHQ1LCBMbzEyKTsgICAgIC8vIGp1bXAgUEMgKyBIaTIwICsg TG8xMgorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2hBbmRMaW5rTG9uZyhMYWJl bCogTCkgeworKyAgLy8gR2VuZXJhdGUgcG9zaXRpb24gaW5kZXBlbmRlbnQgbG9uZyBicmFuY2gg YW5kIGxpbmsuCisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUgYmxvY2tfdHJhbXBvbGluZV9w b29sKHRoaXMpOworKyAgaW50NjRfdCBpbW02NDsKKysgIGltbTY0ID0gYnJhbmNoX2xvbmdfb2Zm c2V0KEwpOworKyAgRENIRUNLKGlzX2ludDMyKGltbTY0KSk7CisrICBpbnQzMl90IEhpMjAgPSAo KChpbnQzMl90KWltbTY0ICsgMHg4MDApID4+IDEyKTsKKysgIGludDMyX3QgTG8xMiA9IChpbnQz Ml90KWltbTY0IDw8IDIwID4+IDIwOworKyAgYXVpcGModDUsIEhpMjApOyAgLy8gUmVhZCBQQyAr IEhpMjAgaW50byB0NS4KKysgIGphbHIodDUsIExvMTIpOyAgIC8vIGp1bXAgUEMgKyBIaTIwICsg TG8xMiBhbmQgcmVhZCBQQyArIDQgdG8gcmEKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6 RHJvcEFuZFJldChpbnQgZHJvcCkgeworKyAgQWRkNjQoc3AsIHNwLCBkcm9wICoga1BvaW50ZXJT aXplKTsKKysgIFJldCgpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpEcm9wQW5kUmV0 KGludCBkcm9wLCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgcjEsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBPcGVyYW5kJiByMikgeworKyAgLy8gQm90aCBEcm9wIGFu ZCBSZXQgbmVlZCB0byBiZSBjb25kaXRpb25hbC4KKysgIExhYmVsIHNraXA7CisrICBpZiAoY29u ZCAhPSBjY19hbHdheXMpIHsKKysgICAgQnJhbmNoKCZza2lwLCBOZWdhdGVDb25kaXRpb24oY29u ZCksIHIxLCByMik7CisrICB9CisrCisrICBEcm9wKGRyb3ApOworKyAgUmV0KCk7CisrCisrICBp ZiAoY29uZCAhPSBjY19hbHdheXMpIHsKKysgICAgYmluZCgmc2tpcCk7CisrICB9CisrfQorKwor K3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkRyb3AoaW50IGNvdW50LCBDb25kaXRpb24gY29uZCwgUmVn aXN0ZXIgcmVnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYgb3Ap IHsKKysgIGlmIChjb3VudCA8PSAwKSB7CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIExhYmVs IHNraXA7CisrCisrICBpZiAoY29uZCAhPSBhbCkgeworKyAgICBCcmFuY2goJnNraXAsIE5lZ2F0 ZUNvbmRpdGlvbihjb25kKSwgcmVnLCBvcCk7CisrICB9CisrCisrICBBZGQ2NChzcCwgc3AsIE9w ZXJhbmQoY291bnQgKiBrUG9pbnRlclNpemUpKTsKKysKKysgIGlmIChjb25kICE9IGFsKSB7Cisr ICAgIGJpbmQoJnNraXApOworKyAgfQorK30KKysKKyt2b2lkIE1hY3JvQXNzZW1ibGVyOjpTd2Fw KFJlZ2lzdGVyIHJlZzEsIFJlZ2lzdGVyIHJlZzIsIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKKysgIGlm IChzY3JhdGNoID09IG5vX3JlZykgeworKyAgICBYb3IocmVnMSwgcmVnMSwgT3BlcmFuZChyZWcy KSk7CisrICAgIFhvcihyZWcyLCByZWcyLCBPcGVyYW5kKHJlZzEpKTsKKysgICAgWG9yKHJlZzEs IHJlZzEsIE9wZXJhbmQocmVnMikpOworKyAgfSBlbHNlIHsKKysgICAgbXYoc2NyYXRjaCwgcmVn MSk7CisrICAgIG12KHJlZzEsIHJlZzIpOworKyAgICBtdihyZWcyLCBzY3JhdGNoKTsKKysgIH0K Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q2FsbChMYWJlbCogdGFyZ2V0KSB7IEJyYW5j aEFuZExpbmsodGFyZ2V0KTsgfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkxvYWRBZGRyZXNz KFJlZ2lzdGVyIGRzdCwgTGFiZWwqIHRhcmdldCkgeworKyAgdWludDY0X3QgYWRkcmVzcyA9IGp1 bXBfYWRkcmVzcyh0YXJnZXQpOworKyAgbGkoZHN0LCBhZGRyZXNzLCBBRERSRVNTX0xPQUQpOwor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpQdXNoKFNtaSBzbWkpIHsKKysgIFVzZVNjcmF0 Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBz LkFjcXVpcmUoKTsKKysgIGxpKHNjcmF0Y2gsIE9wZXJhbmQoc21pKSk7CisrICBwdXNoKHNjcmF0 Y2gpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpQdXNoKEhhbmRsZTxIZWFwT2JqZWN0 PiBoYW5kbGUpIHsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAg UmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgIGxpKHNjcmF0Y2gsIE9wZXJh bmQoaGFuZGxlKSk7CisrICBwdXNoKHNjcmF0Y2gpOworK30KKysKKyt2b2lkIE1hY3JvQXNzZW1i bGVyOjpNYXliZURyb3BGcmFtZXMoKSB7CisrICAvLyBDaGVjayB3aGV0aGVyIHdlIG5lZWQgdG8g ZHJvcCBmcmFtZXMgdG8gcmVzdGFydCBhIGZ1bmN0aW9uIG9uIHRoZSBzdGFjay4KKysgIGxpKGEx LCBFeHRlcm5hbFJlZmVyZW5jZTo6ZGVidWdfcmVzdGFydF9mcF9hZGRyZXNzKGlzb2xhdGUoKSkp OworKyAgTGQoYTEsIE1lbU9wZXJhbmQoYTEpKTsKKysgIEp1bXAoQlVJTFRJTl9DT0RFKGlzb2xh dGUoKSwgRnJhbWVEcm9wcGVyVHJhbXBvbGluZSksIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQsCisr ICAgICAgIG5lLCBhMSwgT3BlcmFuZCh6ZXJvX3JlZykpOworK30KKysKKysvLyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysvLyBFeGNlcHRpb24gaGFuZGxpbmcuCisrCisrdm9pZCBNYWNyb0Fzc2VtYmxl cjo6UHVzaFN0YWNrSGFuZGxlcigpIHsKKysgIC8vIEFkanVzdCB0aGlzIGNvZGUgaWYgbm90IHRo ZSBjYXNlLgorKyAgU1RBVElDX0FTU0VSVChTdGFja0hhbmRsZXJDb25zdGFudHM6OmtTaXplID09 IDIgKiBrUG9pbnRlclNpemUpOworKyAgU1RBVElDX0FTU0VSVChTdGFja0hhbmRsZXJDb25zdGFu dHM6OmtOZXh0T2Zmc2V0ID09IDAgKiBrUG9pbnRlclNpemUpOworKworKyAgUHVzaChTbWk6Onpl cm8oKSk7ICAvLyBQYWRkaW5nLgorKworKyAgLy8gTGluayB0aGUgY3VycmVudCBoYW5kbGVyIGFz IHRoZSBuZXh0IGhhbmRsZXIuCisrICBsaSh0MiwKKysgICAgIEV4dGVybmFsUmVmZXJlbmNlOjpD cmVhdGUoSXNvbGF0ZUFkZHJlc3NJZDo6a0hhbmRsZXJBZGRyZXNzLCBpc29sYXRlKCkpKTsKKysg IExkKHQxLCBNZW1PcGVyYW5kKHQyKSk7CisrICBwdXNoKHQxKTsKKysKKysgIC8vIFNldCB0aGlz IG5ldyBoYW5kbGVyIGFzIHRoZSBjdXJyZW50IG9uZS4KKysgIFNkKHNwLCBNZW1PcGVyYW5kKHQy KSk7CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OlBvcFN0YWNrSGFuZGxlcigpIHsKKysg IFNUQVRJQ19BU1NFUlQoU3RhY2tIYW5kbGVyQ29uc3RhbnRzOjprTmV4dE9mZnNldCA9PSAwKTsK KysgIHBvcChhMSk7CisrICBBZGQ2NChzcCwgc3AsCisrICAgICAgICBPcGVyYW5kKAorKyAgICAg ICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+KFN0YWNrSGFuZGxlckNvbnN0YW50czo6a1NpemUg LSBrUG9pbnRlclNpemUpKSk7CisrICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlz KTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICBsaShzY3JhdGNo LAorKyAgICAgRXh0ZXJuYWxSZWZlcmVuY2U6OkNyZWF0ZShJc29sYXRlQWRkcmVzc0lkOjprSGFu ZGxlckFkZHJlc3MsIGlzb2xhdGUoKSkpOworKyAgU2QoYTEsIE1lbU9wZXJhbmQoc2NyYXRjaCkp OworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpGUFVDYW5vbmljYWxpemVOYU4oY29uc3Qg RG91YmxlUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBEb3VibGVSZWdpc3RlciBzcmMpIHsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNj b3BlIHRlbXBzKHRoaXMpOworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsK KysgIExhYmVsIE5vdE5hTjsKKysKKysgIGZtdl9kKGRzdCwgc3JjKTsKKysgIGZlcV9kKHNjcmF0 Y2gsIHNyYywgc3JjKTsKKysgIGJuZShzY3JhdGNoLCB6ZXJvX3JlZywgJk5vdE5hTik7CisrICBS Vl9saShzY3JhdGNoLCAweDdmZjgwMDAwMDAwMDAwMDBVTEwpOyAgLy8gVGhpcyBpcyB0aGUgY2Fu b25pY2FsIE5hTgorKyAgZm12X2RfeChkc3QsIHNjcmF0Y2gpOworKyAgYmluZCgmTm90TmFOKTsK Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92RnJvbUZsb2F0UmVzdWx0KGNvbnN0IERv dWJsZVJlZ2lzdGVyIGRzdCkgeworKyAgTW92ZShkc3QsIGZhMCk7ICAvLyBSZWcgZmEwIGlzIEZQ IHJldHVybiB2YWx1ZS4KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92RnJvbUZsb2F0 UGFyYW1ldGVyKGNvbnN0IERvdWJsZVJlZ2lzdGVyIGRzdCkgeworKyAgTW92ZShkc3QsIGZhMCk7 ICAvLyBSZWcgZmEwIGlzIEZQIGZpcnN0IGFyZ3VtZW50IHZhbHVlLgorK30KKysKKyt2b2lkIFR1 cmJvQXNzZW1ibGVyOjpNb3ZUb0Zsb2F0UGFyYW1ldGVyKERvdWJsZVJlZ2lzdGVyIHNyYykgeyBN b3ZlKGZhMCwgc3JjKTsgfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdlRvRmxvYXRSZXN1 bHQoRG91YmxlUmVnaXN0ZXIgc3JjKSB7IE1vdmUoZmEwLCBzcmMpOyB9CisrCisrdm9pZCBUdXJi b0Fzc2VtYmxlcjo6TW92VG9GbG9hdFBhcmFtZXRlcnMoRG91YmxlUmVnaXN0ZXIgc3JjMSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciBz cmMyKSB7CisrICBjb25zdCBEb3VibGVSZWdpc3RlciBmcGFyZzIgPSBmYTE7CisrICBpZiAoc3Jj MiA9PSBmYTApIHsKKysgICAgRENIRUNLKHNyYzEgIT0gZnBhcmcyKTsKKysgICAgTW92ZShmcGFy ZzIsIHNyYzIpOworKyAgICBNb3ZlKGZhMCwgc3JjMSk7CisrICB9IGVsc2UgeworKyAgICBNb3Zl KGZhMCwgc3JjMSk7CisrICAgIE1vdmUoZnBhcmcyLCBzcmMyKTsKKysgIH0KKyt9CisrCisrLy8g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysvLyBKYXZhU2NyaXB0IGludm9rZXMuCisrCisrdm9pZCBU dXJib0Fzc2VtYmxlcjo6UHJlcGFyZUZvclRhaWxDYWxsKFJlZ2lzdGVyIGNhbGxlZV9hcmdzX2Nv dW50LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBj YWxsZXJfYXJnc19jb3VudCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgc2NyYXRjaDAsIFJlZ2lzdGVyIHNjcmF0Y2gxKSB7CisrICAvLyBDYWxjdWxh dGUgdGhlIGVuZCBvZiBkZXN0aW5hdGlvbiBhcmVhIHdoZXJlIHdlIHdpbGwgcHV0IHRoZSBhcmd1 bWVudHMKKysgIC8vIGFmdGVyIHdlIGRyb3AgY3VycmVudCBmcmFtZS4gV2UgYWRkIGtQb2ludGVy U2l6ZSB0byBjb3VudCB0aGUgcmVjZWl2ZXIKKysgIC8vIGFyZ3VtZW50IHdoaWNoIGlzIG5vdCBp bmNsdWRlZCBpbnRvIGZvcm1hbCBwYXJhbWV0ZXJzIGNvdW50LgorKyAgUmVnaXN0ZXIgZHN0X3Jl ZyA9IHNjcmF0Y2gwOworKyAgQ2FsY1NjYWxlZEFkZHJlc3MoZHN0X3JlZywgZnAsIGNhbGxlcl9h cmdzX2NvdW50LCBrUG9pbnRlclNpemVMb2cyKTsKKysgIEFkZDY0KGRzdF9yZWcsIGRzdF9yZWcs CisrICAgICAgICBPcGVyYW5kKFN0YW5kYXJkRnJhbWVDb25zdGFudHM6OmtDYWxsZXJTUE9mZnNl dCArIGtQb2ludGVyU2l6ZSkpOworKworKyAgUmVnaXN0ZXIgc3JjX3JlZyA9IGNhbGxlcl9hcmdz X2NvdW50OworKyAgLy8gQ2FsY3VsYXRlIHRoZSBlbmQgb2Ygc291cmNlIGFyZWEuICtrUG9pbnRl clNpemUgaXMgZm9yIHRoZSByZWNlaXZlci4KKysgIENhbGNTY2FsZWRBZGRyZXNzKHNyY19yZWcs IHNwLCBjYWxsZWVfYXJnc19jb3VudCwga1BvaW50ZXJTaXplTG9nMik7CisrICBBZGQ2NChzcmNf cmVnLCBzcmNfcmVnLCBPcGVyYW5kKGtQb2ludGVyU2l6ZSkpOworKworKyAgaWYgKEZMQUdfZGVi dWdfY29kZSkgeworKyAgICBDaGVjayhVbGVzcywgQWJvcnRSZWFzb246OmtTdGFja0FjY2Vzc0Jl bG93U3RhY2tQb2ludGVyLCBzcmNfcmVnLAorKyAgICAgICAgICBPcGVyYW5kKGRzdF9yZWcpKTsK KysgIH0KKysKKysgIC8vIFJlc3RvcmUgY2FsbGVyJ3MgZnJhbWUgcG9pbnRlciBhbmQgcmV0dXJu IGFkZHJlc3Mgbm93IGFzIHRoZXkgd2lsbCBiZQorKyAgLy8gb3ZlcndyaXR0ZW4gYnkgdGhlIGNv cHlpbmcgbG9vcC4KKysgIExkKHJhLCBNZW1PcGVyYW5kKGZwLCBTdGFuZGFyZEZyYW1lQ29uc3Rh bnRzOjprQ2FsbGVyUENPZmZzZXQpKTsKKysgIExkKGZwLCBNZW1PcGVyYW5kKGZwLCBTdGFuZGFy ZEZyYW1lQ29uc3RhbnRzOjprQ2FsbGVyRlBPZmZzZXQpKTsKKysKKysgIC8vIE5vdyBjb3B5IGNh bGxlZSBhcmd1bWVudHMgdG8gdGhlIGNhbGxlciBmcmFtZSBnb2luZyBiYWNrd2FyZHMgdG8gYXZv aWQKKysgIC8vIGNhbGxlZSBhcmd1bWVudHMgY29ycnVwdGlvbiAoc291cmNlIGFuZCBkZXN0aW5h dGlvbiBhcmVhcyBjb3VsZCBvdmVybGFwKS4KKysKKysgIC8vIEJvdGggc3JjX3JlZyBhbmQgZHN0 X3JlZyBhcmUgcG9pbnRpbmcgdG8gdGhlIHdvcmQgYWZ0ZXIgdGhlIG9uZSB0byBjb3B5LAorKyAg Ly8gc28gdGhleSBtdXN0IGJlIHByZS1kZWNyZW1lbnRlZCBpbiB0aGUgbG9vcC4KKysgIFJlZ2lz dGVyIHRtcF9yZWcgPSBzY3JhdGNoMTsKKysgIExhYmVsIGxvb3AsIGVudHJ5OworKyAgQnJhbmNo KCZlbnRyeSk7CisrICBiaW5kKCZsb29wKTsKKysgIFN1YjY0KHNyY19yZWcsIHNyY19yZWcsIE9w ZXJhbmQoa1BvaW50ZXJTaXplKSk7CisrICBTdWI2NChkc3RfcmVnLCBkc3RfcmVnLCBPcGVyYW5k KGtQb2ludGVyU2l6ZSkpOworKyAgTGQodG1wX3JlZywgTWVtT3BlcmFuZChzcmNfcmVnKSk7Cisr ICBTZCh0bXBfcmVnLCBNZW1PcGVyYW5kKGRzdF9yZWcpKTsKKysgIGJpbmQoJmVudHJ5KTsKKysg IEJyYW5jaCgmbG9vcCwgbmUsIHNwLCBPcGVyYW5kKHNyY19yZWcpKTsKKysKKysgIC8vIExlYXZl IGN1cnJlbnQgZnJhbWUuCisrICBtdihzcCwgZHN0X3JlZyk7CisrfQorKworK3ZvaWQgTWFjcm9B c3NlbWJsZXI6Okludm9rZVByb2xvZ3VlKFJlZ2lzdGVyIGV4cGVjdGVkX3BhcmFtZXRlcl9jb3Vu dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBhY3R1YWxf cGFyYW1ldGVyX2NvdW50LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBkb25lLCBJbnZva2VGbGFnIGZsYWcpIHsKKysgIExhYmVsIHJlZ3VsYXJfaW52b2tlOwor KworKyAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZXhwZWN0ZWQgYW5kIGFjdHVhbCBhcmd1bWVudHMg Y291bnQgbWF0Y2guIFRoZQorKyAgLy8gcmVnaXN0ZXJzIGFyZSBzZXQgdXAgYWNjb3JkaW5nIHRv IGNvbnRyYWN0IHdpdGgKKysgIC8vIEFyZ3VtZW50c0FkYXB0b3JUcmFtcG9saW5lOgorKyAgLy8g IGEwOiBhY3R1YWwgYXJndW1lbnRzIGNvdW50CisrICAvLyAgYTE6IGZ1bmN0aW9uIChwYXNzZWQg dGhyb3VnaCB0byBjYWxsZWUpCisrICAvLyAgYTI6IGV4cGVjdGVkIGFyZ3VtZW50cyBjb3VudAor KworKyAgLy8gVGhlIGNvZGUgYmVsb3cgaXMgbWFkZSBhIGxvdCBlYXNpZXIgYmVjYXVzZSB0aGUg Y2FsbGluZyBjb2RlIGFscmVhZHkgc2V0cworKyAgLy8gdXAgYWN0dWFsIGFuZCBleHBlY3RlZCBy ZWdpc3RlcnMgYWNjb3JkaW5nIHRvIHRoZSBjb250cmFjdC4KKysKKysgIERDSEVDS19FUShhY3R1 YWxfcGFyYW1ldGVyX2NvdW50LCBhMCk7CisrICBEQ0hFQ0tfRVEoZXhwZWN0ZWRfcGFyYW1ldGVy X2NvdW50LCBhMik7CisrCisrICBCcmFuY2goJnJlZ3VsYXJfaW52b2tlLCBlcSwgZXhwZWN0ZWRf cGFyYW1ldGVyX2NvdW50LAorKyAgICAgICAgIE9wZXJhbmQoYWN0dWFsX3BhcmFtZXRlcl9jb3Vu dCkpOworKworKyAgSGFuZGxlPENvZGU+IGFkYXB0b3IgPSBCVUlMVElOX0NPREUoaXNvbGF0ZSgp LCBBcmd1bWVudHNBZGFwdG9yVHJhbXBvbGluZSk7CisrICBpZiAoZmxhZyA9PSBDQUxMX0ZVTkNU SU9OKSB7CisrICAgIENhbGwoYWRhcHRvcik7CisrICAgIEJyYW5jaChkb25lKTsKKysgIH0gZWxz ZSB7CisrICAgIEp1bXAoYWRhcHRvciwgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrICB9Cisr CisrICBiaW5kKCZyZWd1bGFyX2ludm9rZSk7CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6 OkNoZWNrRGVidWdIb29rKFJlZ2lzdGVyIGZ1biwgUmVnaXN0ZXIgbmV3X3RhcmdldCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBleHBlY3RlZF9wYXJhbWV0 ZXJfY291bnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg YWN0dWFsX3BhcmFtZXRlcl9jb3VudCkgeworKyAgTGFiZWwgc2tpcF9ob29rOworKworKyAgbGko dDAsIEV4dGVybmFsUmVmZXJlbmNlOjpkZWJ1Z19ob29rX29uX2Z1bmN0aW9uX2NhbGxfYWRkcmVz cyhpc29sYXRlKCkpKTsKKysgIExiKHQwLCBNZW1PcGVyYW5kKHQwKSk7CisrICBCcmFuY2goJnNr aXBfaG9vaywgZXEsIHQwLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICB7CisrICAgIC8vIExv YWQgcmVjZWl2ZXIgdG8gcGFzcyBpdCBsYXRlciB0byBEZWJ1Z09uRnVuY3Rpb25DYWxsIGhvb2su CisrICAgIENhbGNTY2FsZWRBZGRyZXNzKHQwLCBzcCwgYWN0dWFsX3BhcmFtZXRlcl9jb3VudCwg a1BvaW50ZXJTaXplTG9nMik7CisrICAgIExkKHQwLCBNZW1PcGVyYW5kKHQwKSk7CisrICAgIEZy YW1lU2NvcGUgZnJhbWUodGhpcywKKysgICAgICAgICAgICAgICAgICAgICBoYXNfZnJhbWUoKSA/ IFN0YWNrRnJhbWU6Ok5PTkUgOiBTdGFja0ZyYW1lOjpJTlRFUk5BTCk7CisrICAgIFNtaVRhZyhl eHBlY3RlZF9wYXJhbWV0ZXJfY291bnQpOworKyAgICBQdXNoKGV4cGVjdGVkX3BhcmFtZXRlcl9j b3VudCk7CisrCisrICAgIFNtaVRhZyhhY3R1YWxfcGFyYW1ldGVyX2NvdW50KTsKKysgICAgUHVz aChhY3R1YWxfcGFyYW1ldGVyX2NvdW50KTsKKysKKysgICAgaWYgKG5ld190YXJnZXQuaXNfdmFs aWQoKSkgeworKyAgICAgIFB1c2gobmV3X3RhcmdldCk7CisrICAgIH0KKysgICAgUHVzaChmdW4p OworKyAgICBQdXNoKGZ1bik7CisrICAgIFB1c2godDApOworKyAgICBDYWxsUnVudGltZShSdW50 aW1lOjprRGVidWdPbkZ1bmN0aW9uQ2FsbCk7CisrICAgIFBvcChmdW4pOworKyAgICBpZiAobmV3 X3RhcmdldC5pc192YWxpZCgpKSB7CisrICAgICAgUG9wKG5ld190YXJnZXQpOworKyAgICB9Cisr CisrICAgIFBvcChhY3R1YWxfcGFyYW1ldGVyX2NvdW50KTsKKysgICAgU21pVW50YWcoYWN0dWFs X3BhcmFtZXRlcl9jb3VudCk7CisrCisrICAgIFBvcChleHBlY3RlZF9wYXJhbWV0ZXJfY291bnQp OworKyAgICBTbWlVbnRhZyhleHBlY3RlZF9wYXJhbWV0ZXJfY291bnQpOworKyAgfQorKyAgYmlu ZCgmc2tpcF9ob29rKTsKKyt9CisrCisrdm9pZCBNYWNyb0Fzc2VtYmxlcjo6SW52b2tlRnVuY3Rp b25Db2RlKFJlZ2lzdGVyIGZ1bmN0aW9uLCBSZWdpc3RlciBuZXdfdGFyZ2V0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBleHBlY3RlZF9wYXJhbWV0 ZXJfY291bnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIGFjdHVhbF9wYXJhbWV0ZXJfY291bnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEludm9rZUZsYWcgZmxhZykgeworKyAgLy8gWW91IGNhbid0IGNhbGwgYSBm dW5jdGlvbiB3aXRob3V0IGEgdmFsaWQgZnJhbWUuCisrICBEQ0hFQ0tfSU1QTElFUyhmbGFnID09 IENBTExfRlVOQ1RJT04sIGhhc19mcmFtZSgpKTsKKysgIERDSEVDS19FUShmdW5jdGlvbiwgYTEp OworKyAgRENIRUNLX0lNUExJRVMobmV3X3RhcmdldC5pc192YWxpZCgpLCBuZXdfdGFyZ2V0ID09 IGEzKTsKKysKKysgIC8vIE9uIGZ1bmN0aW9uIGNhbGwsIGNhbGwgaW50byB0aGUgZGVidWdnZXIg aWYgbmVjZXNzYXJ5LgorKyAgQ2hlY2tEZWJ1Z0hvb2soZnVuY3Rpb24sIG5ld190YXJnZXQsIGV4 cGVjdGVkX3BhcmFtZXRlcl9jb3VudCwKKysgICAgICAgICAgICAgICAgIGFjdHVhbF9wYXJhbWV0 ZXJfY291bnQpOworKworKyAgLy8gQ2xlYXIgdGhlIG5ldy50YXJnZXQgcmVnaXN0ZXIgaWYgbm90 IGdpdmVuLgorKyAgaWYgKCFuZXdfdGFyZ2V0LmlzX3ZhbGlkKCkpIHsKKysgICAgTG9hZFJvb3Qo YTMsIFJvb3RJbmRleDo6a1VuZGVmaW5lZFZhbHVlKTsKKysgIH0KKysKKysgIExhYmVsIGRvbmU7 CisrICBJbnZva2VQcm9sb2d1ZShleHBlY3RlZF9wYXJhbWV0ZXJfY291bnQsIGFjdHVhbF9wYXJh bWV0ZXJfY291bnQsICZkb25lLCBmbGFnKTsKKysgIC8vIFdlIGNhbGwgaW5kaXJlY3RseSB0aHJv dWdoIHRoZSBjb2RlIGZpZWxkIGluIHRoZSBmdW5jdGlvbiB0bworKyAgLy8gYWxsb3cgcmVjb21w aWxhdGlvbiB0byB0YWtlIGVmZmVjdCB3aXRob3V0IGNoYW5naW5nIGFueSBvZiB0aGUKKysgIC8v IGNhbGwgc2l0ZXMuCisrICBSZWdpc3RlciBjb2RlID0ga0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0 UmVnaXN0ZXI7CisrICBMZChjb2RlLCBGaWVsZE1lbU9wZXJhbmQoZnVuY3Rpb24sIEpTRnVuY3Rp b246OmtDb2RlT2Zmc2V0KSk7CisrICBpZiAoZmxhZyA9PSBDQUxMX0ZVTkNUSU9OKSB7CisrICAg IEFkZDY0KGNvZGUsIGNvZGUsIE9wZXJhbmQoQ29kZTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVj dFRhZykpOworKyAgICBDYWxsKGNvZGUpOworKyAgfSBlbHNlIHsKKysgICAgRENIRUNLKGZsYWcg PT0gSlVNUF9GVU5DVElPTik7CisrICAgIEFkZDY0KGNvZGUsIGNvZGUsIE9wZXJhbmQoQ29kZTo6 a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZykpOworKyAgICBKdW1wKGNvZGUpOworKyAgfQor KworKyAgLy8gQ29udGludWUgaGVyZSBpZiBJbnZva2VQcm9sb2d1ZSBkb2VzIGhhbmRsZSB0aGUg aW52b2NhdGlvbiBkdWUgdG8KKysgIC8vIG1pc21hdGNoZWQgcGFyYW1ldGVyIGNvdW50cy4KKysg IGJpbmQoJmRvbmUpOworK30KKysKKyt2b2lkIE1hY3JvQXNzZW1ibGVyOjpJbnZva2VGdW5jdGlv bldpdGhOZXdUYXJnZXQoCisrICAgIFJlZ2lzdGVyIGZ1bmN0aW9uLCBSZWdpc3RlciBuZXdfdGFy Z2V0LCBSZWdpc3RlciBhY3R1YWxfcGFyYW1ldGVyX2NvdW50LAorKyAgICBJbnZva2VGbGFnIGZs YWcpIHsKKysgIC8vIFlvdSBjYW4ndCBjYWxsIGEgZnVuY3Rpb24gd2l0aG91dCBhIHZhbGlkIGZy YW1lLgorKyAgRENIRUNLX0lNUExJRVMoZmxhZyA9PSBDQUxMX0ZVTkNUSU9OLCBoYXNfZnJhbWUo KSk7CisrCisrICAvLyBDb250cmFjdCB3aXRoIGNhbGxlZCBKUyBmdW5jdGlvbnMgcmVxdWlyZXMg dGhhdCBmdW5jdGlvbiBpcyBwYXNzZWQgaW4gYTEuCisrICBEQ0hFQ0tfRVEoZnVuY3Rpb24sIGEx KTsKKysgIFJlZ2lzdGVyIGV4cGVjdGVkX3BhcmFtZXRlcl9jb3VudCA9IGEyOworKyAgUmVnaXN0 ZXIgdGVtcF9yZWcgPSB0MDsKKysgIExkKHRlbXBfcmVnLCBGaWVsZE1lbU9wZXJhbmQoYTEsIEpT RnVuY3Rpb246OmtTaGFyZWRGdW5jdGlvbkluZm9PZmZzZXQpKTsKKysgIExkKGNwLCBGaWVsZE1l bU9wZXJhbmQoYTEsIEpTRnVuY3Rpb246OmtDb250ZXh0T2Zmc2V0KSk7CisrICAvLyBUaGUgYXJn dW1lbnQgY291bnQgaXMgc3RvcmVkIGFzIHVpbnQxNl90CisrICBMaHUoZXhwZWN0ZWRfcGFyYW1l dGVyX2NvdW50LAorKyAgICAgIEZpZWxkTWVtT3BlcmFuZCh0ZW1wX3JlZywKKysgICAgICAgICAg ICAgICAgICAgICAgU2hhcmVkRnVuY3Rpb25JbmZvOjprRm9ybWFsUGFyYW1ldGVyQ291bnRPZmZz ZXQpKTsKKysKKysgIEludm9rZUZ1bmN0aW9uQ29kZShhMSwgbmV3X3RhcmdldCwgZXhwZWN0ZWRf cGFyYW1ldGVyX2NvdW50LAorKyAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9wYXJhbWV0ZXJf Y291bnQsIGZsYWcpOworK30KKysKKyt2b2lkIE1hY3JvQXNzZW1ibGVyOjpJbnZva2VGdW5jdGlv bihSZWdpc3RlciBmdW5jdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciBleHBlY3RlZF9wYXJhbWV0ZXJfY291bnQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgYWN0dWFsX3BhcmFtZXRlcl9jb3VudCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZva2VGbGFnIGZsYWcpIHsKKysgIC8v IFlvdSBjYW4ndCBjYWxsIGEgZnVuY3Rpb24gd2l0aG91dCBhIHZhbGlkIGZyYW1lLgorKyAgRENI RUNLX0lNUExJRVMoZmxhZyA9PSBDQUxMX0ZVTkNUSU9OLCBoYXNfZnJhbWUoKSk7CisrCisrICAv LyBDb250cmFjdCB3aXRoIGNhbGxlZCBKUyBmdW5jdGlvbnMgcmVxdWlyZXMgdGhhdCBmdW5jdGlv biBpcyBwYXNzZWQgaW4gYTEuCisrICBEQ0hFQ0tfRVEoZnVuY3Rpb24sIGExKTsKKysKKysgIC8v IEdldCB0aGUgZnVuY3Rpb24gYW5kIHNldHVwIHRoZSBjb250ZXh0LgorKyAgTGQoY3AsIEZpZWxk TWVtT3BlcmFuZChhMSwgSlNGdW5jdGlvbjo6a0NvbnRleHRPZmZzZXQpKTsKKysKKysgIEludm9r ZUZ1bmN0aW9uQ29kZShhMSwgbm9fcmVnLCBleHBlY3RlZF9wYXJhbWV0ZXJfY291bnQsCisrICAg ICAgICAgICAgICAgICAgICAgYWN0dWFsX3BhcmFtZXRlcl9jb3VudCwgZmxhZyk7CisrfQorKwor Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKy8vIFN1cHBvcnQgZnVuY3Rpb25zLgorKworK3ZvaWQg TWFjcm9Bc3NlbWJsZXI6OkdldE9iamVjdFR5cGUoUmVnaXN0ZXIgb2JqZWN0LCBSZWdpc3RlciBt YXAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB0eXBlX3Jl ZykgeworKyAgTG9hZE1hcChtYXAsIG9iamVjdCk7CisrICBMaHUodHlwZV9yZWcsIEZpZWxkTWVt T3BlcmFuZChtYXAsIE1hcDo6a0luc3RhbmNlVHlwZU9mZnNldCkpOworK30KKysKKysvLyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKy8vIFJ1bnRpbWUgY2FsbHMuCisrCisrdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6QWRkT3ZlcmZsb3c2NChSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIGxlZnQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBPcGVyYW5kJiByaWdodCwgUmVnaXN0 ZXIgb3ZlcmZsb3cpIHsKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9s aW5lX3Bvb2wodGhpcyk7CisrICBSZWdpc3RlciByaWdodF9yZWcgPSBub19yZWc7CisrICBSZWdp c3RlciBzY3JhdGNoID0gdDU7CisrICBpZiAoIXJpZ2h0LmlzX3JlZygpKSB7CisrICAgIGxpKHQz LCBPcGVyYW5kKHJpZ2h0KSk7CisrICAgIHJpZ2h0X3JlZyA9IHQzOworKyAgfSBlbHNlIHsKKysg ICAgcmlnaHRfcmVnID0gcmlnaHQucm0oKTsKKysgIH0KKysgIERDSEVDSyhsZWZ0ICE9IHNjcmF0 Y2ggJiYgcmlnaHRfcmVnICE9IHNjcmF0Y2ggJiYgZHN0ICE9IHNjcmF0Y2ggJiYKKysgICAgICAg ICBvdmVyZmxvdyAhPSBzY3JhdGNoKTsKKysgIERDSEVDSyhvdmVyZmxvdyAhPSBsZWZ0ICYmIG92 ZXJmbG93ICE9IHJpZ2h0X3JlZyk7CisrICBpZiAoZHN0ID09IGxlZnQgfHwgZHN0ID09IHJpZ2h0 X3JlZykgeworKyAgICBhZGQoc2NyYXRjaCwgbGVmdCwgcmlnaHRfcmVnKTsKKysgICAgeG9yXyhv dmVyZmxvdywgc2NyYXRjaCwgbGVmdCk7CisrICAgIHhvcl8odDMsIHNjcmF0Y2gsIHJpZ2h0X3Jl Zyk7CisrICAgIGFuZF8ob3ZlcmZsb3csIG92ZXJmbG93LCB0Myk7CisrICAgIG12KGRzdCwgc2Ny YXRjaCk7CisrICB9IGVsc2UgeworKyAgICBhZGQoZHN0LCBsZWZ0LCByaWdodF9yZWcpOworKyAg ICB4b3JfKG92ZXJmbG93LCBkc3QsIGxlZnQpOworKyAgICB4b3JfKHQzLCBkc3QsIHJpZ2h0X3Jl Zyk7CisrICAgIGFuZF8ob3ZlcmZsb3csIG92ZXJmbG93LCB0Myk7CisrICB9CisrfQorKworK3Zv aWQgVHVyYm9Bc3NlbWJsZXI6OlN1Yk92ZXJmbG93NjQoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBs ZWZ0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYg cmlnaHQsIFJlZ2lzdGVyIG92ZXJmbG93KSB7CisrICBCbG9ja1RyYW1wb2xpbmVQb29sU2NvcGUg YmxvY2tfdHJhbXBvbGluZV9wb29sKHRoaXMpOworKyAgUmVnaXN0ZXIgcmlnaHRfcmVnID0gbm9f cmVnOworKyAgUmVnaXN0ZXIgc2NyYXRjaCA9IHQ1OworKyAgaWYgKCFyaWdodC5pc19yZWcoKSkg eworKyAgICBsaSh0MywgT3BlcmFuZChyaWdodCkpOworKyAgICByaWdodF9yZWcgPSB0MzsKKysg IH0gZWxzZSB7CisrICAgIHJpZ2h0X3JlZyA9IHJpZ2h0LnJtKCk7CisrICB9CisrCisrICBEQ0hF Q0sobGVmdCAhPSBzY3JhdGNoICYmIHJpZ2h0X3JlZyAhPSBzY3JhdGNoICYmIGRzdCAhPSBzY3Jh dGNoICYmCisrICAgICAgICAgb3ZlcmZsb3cgIT0gc2NyYXRjaCk7CisrICBEQ0hFQ0sob3ZlcmZs b3cgIT0gbGVmdCAmJiBvdmVyZmxvdyAhPSByaWdodF9yZWcpOworKworKyAgaWYgKGRzdCA9PSBs ZWZ0IHx8IGRzdCA9PSByaWdodF9yZWcpIHsKKysgICAgc3ViKHNjcmF0Y2gsIGxlZnQsIHJpZ2h0 X3JlZyk7CisrICAgIHhvcl8ob3ZlcmZsb3csIGxlZnQsIHNjcmF0Y2gpOworKyAgICB4b3JfKHQz LCBsZWZ0LCByaWdodF9yZWcpOworKyAgICBhbmRfKG92ZXJmbG93LCBvdmVyZmxvdywgdDMpOwor KyAgICBtdihkc3QsIHNjcmF0Y2gpOworKyAgfSBlbHNlIHsKKysgICAgc3ViKGRzdCwgbGVmdCwg cmlnaHRfcmVnKTsKKysgICAgeG9yXyhvdmVyZmxvdywgbGVmdCwgZHN0KTsKKysgICAgeG9yXyh0 MywgbGVmdCwgcmlnaHRfcmVnKTsKKysgICAgYW5kXyhvdmVyZmxvdywgb3ZlcmZsb3csIHQzKTsK KysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TXVsT3ZlcmZsb3czMihSZWdpc3Rl ciBkc3QsIFJlZ2lzdGVyIGxlZnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBPcGVyYW5kJiByaWdodCwgUmVnaXN0ZXIgb3ZlcmZsb3cpIHsKKysgIEJsb2NrVHJh bXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICBSZWdpc3Rl ciByaWdodF9yZWcgPSBub19yZWc7CisrICBSZWdpc3RlciBzY3JhdGNoID0gdDU7CisrICBpZiAo IXJpZ2h0LmlzX3JlZygpKSB7CisrICAgIGxpKHQzLCBPcGVyYW5kKHJpZ2h0KSk7CisrICAgIHJp Z2h0X3JlZyA9IHQzOworKyAgfSBlbHNlIHsKKysgICAgcmlnaHRfcmVnID0gcmlnaHQucm0oKTsK KysgIH0KKysKKysgIERDSEVDSyhsZWZ0ICE9IHNjcmF0Y2ggJiYgcmlnaHRfcmVnICE9IHNjcmF0 Y2ggJiYgZHN0ICE9IHNjcmF0Y2ggJiYKKysgICAgICAgICBvdmVyZmxvdyAhPSBzY3JhdGNoKTsK KysgIERDSEVDSyhvdmVyZmxvdyAhPSBsZWZ0ICYmIG92ZXJmbG93ICE9IHJpZ2h0X3JlZyk7Cisr ICBzZXh0X3cob3ZlcmZsb3csIGxlZnQpOworKyAgc2V4dF93KHNjcmF0Y2gsIHJpZ2h0X3JlZyk7 CisrCisrICBtdWwob3ZlcmZsb3csIG92ZXJmbG93LCBzY3JhdGNoKTsKKysgIHNleHRfdyhkc3Qs IG92ZXJmbG93KTsKKysgIHhvcl8ob3ZlcmZsb3csIG92ZXJmbG93LCBkc3QpOworK30KKysKKyt2 b2lkIE1hY3JvQXNzZW1ibGVyOjpDYWxsUnVudGltZShjb25zdCBSdW50aW1lOjpGdW5jdGlvbiog ZiwgaW50IG51bV9hcmd1bWVudHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U2F2ZUZQUmVnc01vZGUgc2F2ZV9kb3VibGVzKSB7CisrICAvLyBBbGwgcGFyYW1ldGVycyBhcmUg b24gdGhlIHN0YWNrLiBhMCBoYXMgdGhlIHJldHVybiB2YWx1ZSBhZnRlciBjYWxsLgorKworKyAg Ly8gSWYgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMgb2YgdGhlIHJ1bnRpbWUgZnVu Y3Rpb24gaXMKKysgIC8vIGNvbnN0YW50LCB3ZSBjaGVjayB0aGF0IHRoZSBhY3R1YWwgbnVtYmVy IG9mIGFyZ3VtZW50cyBtYXRjaCB0aGUKKysgIC8vIGV4cGVjdGF0aW9uLgorKyAgQ0hFQ0soZi0+ bmFyZ3MgPCAwIHx8IGYtPm5hcmdzID09IG51bV9hcmd1bWVudHMpOworKworKyAgLy8gVE9ETygx MjM2MTkyKTogTW9zdCBydW50aW1lIHJvdXRpbmVzIGRvbid0IG5lZWQgdGhlIG51bWJlciBvZgor KyAgLy8gYXJndW1lbnRzIHBhc3NlZCBpbiBiZWNhdXNlIGl0IGlzIGNvbnN0YW50LiBBdCBzb21l IHBvaW50IHdlCisrICAvLyBzaG91bGQgcmVtb3ZlIHRoaXMgbmVlZCBhbmQgbWFrZSB0aGUgcnVu dGltZSByb3V0aW5lIGVudHJ5IGNvZGUKKysgIC8vIHNtYXJ0ZXIuCisrICBQcmVwYXJlQ0VudHJ5 QXJncyhudW1fYXJndW1lbnRzKTsKKysgIFByZXBhcmVDRW50cnlGdW5jdGlvbihFeHRlcm5hbFJl ZmVyZW5jZTo6Q3JlYXRlKGYpKTsKKysgIEhhbmRsZTxDb2RlPiBjb2RlID0KKysgICAgICBDb2Rl RmFjdG9yeTo6Q0VudHJ5KGlzb2xhdGUoKSwgZi0+cmVzdWx0X3NpemUsIHNhdmVfZG91Ymxlcyk7 CisrICBDYWxsKGNvZGUsIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworK30KKysKKyt2b2lkIE1h Y3JvQXNzZW1ibGVyOjpUYWlsQ2FsbFJ1bnRpbWUoUnVudGltZTo6RnVuY3Rpb25JZCBmaWQpIHsK KysgIGNvbnN0IFJ1bnRpbWU6OkZ1bmN0aW9uKiBmdW5jdGlvbiA9IFJ1bnRpbWU6OkZ1bmN0aW9u Rm9ySWQoZmlkKTsKKysgIERDSEVDS19FUSgxLCBmdW5jdGlvbi0+cmVzdWx0X3NpemUpOworKyAg aWYgKGZ1bmN0aW9uLT5uYXJncyA+PSAwKSB7CisrICAgIFByZXBhcmVDRW50cnlBcmdzKGZ1bmN0 aW9uLT5uYXJncyk7CisrICB9CisrICBKdW1wVG9FeHRlcm5hbFJlZmVyZW5jZShFeHRlcm5hbFJl ZmVyZW5jZTo6Q3JlYXRlKGZpZCkpOworK30KKysKKyt2b2lkIE1hY3JvQXNzZW1ibGVyOjpKdW1w VG9FeHRlcm5hbFJlZmVyZW5jZShjb25zdCBFeHRlcm5hbFJlZmVyZW5jZSYgYnVpbHRpbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGJ1aWx0aW5f ZXhpdF9mcmFtZSkgeworKyAgUHJlcGFyZUNFbnRyeUZ1bmN0aW9uKGJ1aWx0aW4pOworKyAgSGFu ZGxlPENvZGU+IGNvZGUgPSBDb2RlRmFjdG9yeTo6Q0VudHJ5KGlzb2xhdGUoKSwgMSwga0RvbnRT YXZlRlBSZWdzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtB cmd2T25TdGFjaywgYnVpbHRpbl9leGl0X2ZyYW1lKTsKKysgIEp1bXAoY29kZSwgUmVsb2NJbmZv OjpDT0RFX1RBUkdFVCwgYWwsIHplcm9fcmVnLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrfQorKwor K3ZvaWQgTWFjcm9Bc3NlbWJsZXI6Okp1bXBUb0luc3RydWN0aW9uU3RyZWFtKEFkZHJlc3MgZW50 cnkpIHsKKysgIGxpKGtPZmZIZWFwVHJhbXBvbGluZVJlZ2lzdGVyLCBPcGVyYW5kKGVudHJ5LCBS ZWxvY0luZm86Ok9GRl9IRUFQX1RBUkdFVCkpOworKyAgSnVtcChrT2ZmSGVhcFRyYW1wb2xpbmVS ZWdpc3Rlcik7CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OkxvYWRXZWFrVmFsdWUoUmVn aXN0ZXIgb3V0LCBSZWdpc3RlciBpbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExhYmVsKiB0YXJnZXRfaWZfY2xlYXJlZCkgeworKyAgQnJhbmNoKHRhcmdldF9pZl9jbGVh cmVkLCBlcSwgaW4sIE9wZXJhbmQoa0NsZWFyZWRXZWFrSGVhcE9iamVjdExvd2VyMzIpKTsKKysK KysgIEFuZChvdXQsIGluLCBPcGVyYW5kKH5rV2Vha0hlYXBPYmplY3RNYXNrKSk7CisrfQorKwor K3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OkluY3JlbWVudENvdW50ZXIoU3RhdHNDb3VudGVyKiBjb3Vu dGVyLCBpbnQgdmFsdWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlciBzY3JhdGNoMSwgUmVnaXN0ZXIgc2NyYXRjaDIpIHsKKysgIERDSEVDS19HVCh2YWx1 ZSwgMCk7CisrICBpZiAoRkxBR19uYXRpdmVfY29kZV9jb3VudGVycyAmJiBjb3VudGVyLT5FbmFi bGVkKCkpIHsKKysgICAgLy8gVGhpcyBvcGVyYXRpb24gaGFzIHRvIGJlIGV4YWN0bHkgMzItYml0 IHdpZGUgaW4gY2FzZSB0aGUgZXh0ZXJuYWwKKysgICAgLy8gcmVmZXJlbmNlIHRhYmxlIHJlZGly ZWN0cyB0aGUgY291bnRlciB0byBhIHVpbnQzMl90CisrICAgIC8vIGR1bW15X3N0YXRzX2NvdW50 ZXJfIGZpZWxkLgorKyAgICBsaShzY3JhdGNoMiwgRXh0ZXJuYWxSZWZlcmVuY2U6OkNyZWF0ZShj b3VudGVyKSk7CisrICAgIEx3KHNjcmF0Y2gxLCBNZW1PcGVyYW5kKHNjcmF0Y2gyKSk7CisrICAg IEFkZDMyKHNjcmF0Y2gxLCBzY3JhdGNoMSwgT3BlcmFuZCh2YWx1ZSkpOworKyAgICBTdyhzY3Jh dGNoMSwgTWVtT3BlcmFuZChzY3JhdGNoMikpOworKyAgfQorK30KKysKKyt2b2lkIE1hY3JvQXNz ZW1ibGVyOjpEZWNyZW1lbnRDb3VudGVyKFN0YXRzQ291bnRlciogY291bnRlciwgaW50IHZhbHVl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRj aDEsIFJlZ2lzdGVyIHNjcmF0Y2gyKSB7CisrICBEQ0hFQ0tfR1QodmFsdWUsIDApOworKyAgaWYg KEZMQUdfbmF0aXZlX2NvZGVfY291bnRlcnMgJiYgY291bnRlci0+RW5hYmxlZCgpKSB7CisrICAg IC8vIFRoaXMgb3BlcmF0aW9uIGhhcyB0byBiZSBleGFjdGx5IDMyLWJpdCB3aWRlIGluIGNhc2Ug dGhlIGV4dGVybmFsCisrICAgIC8vIHJlZmVyZW5jZSB0YWJsZSByZWRpcmVjdHMgdGhlIGNvdW50 ZXIgdG8gYSB1aW50MzJfdAorKyAgICAvLyBkdW1teV9zdGF0c19jb3VudGVyXyBmaWVsZC4KKysg ICAgbGkoc2NyYXRjaDIsIEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoY291bnRlcikpOworKyAg ICBMdyhzY3JhdGNoMSwgTWVtT3BlcmFuZChzY3JhdGNoMikpOworKyAgICBTdWIzMihzY3JhdGNo MSwgc2NyYXRjaDEsIE9wZXJhbmQodmFsdWUpKTsKKysgICAgU3coc2NyYXRjaDEsIE1lbU9wZXJh bmQoc2NyYXRjaDIpKTsKKysgIH0KKyt9CisrCisrLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysv LyBEZWJ1Z2dpbmcuCisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6VHJhcCgpIHsgc3RvcCgpOyB9 Cisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6RGVidWdCcmVhaygpIHsgc3RvcCgpOyB9CisrCisrdm9p ZCBUdXJib0Fzc2VtYmxlcjo6QXNzZXJ0KENvbmRpdGlvbiBjYywgQWJvcnRSZWFzb24gcmVhc29u LCBSZWdpc3RlciBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmFuZCBydCkg eworKyAgaWYgKGVtaXRfZGVidWdfY29kZSgpKSBDaGVjayhjYywgcmVhc29uLCBycywgcnQpOwor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpDaGVjayhDb25kaXRpb24gY2MsIEFib3J0UmVh c29uIHJlYXNvbiwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Bl cmFuZCBydCkgeworKyAgTGFiZWwgTDsKKysgIEJyYW5jaCgmTCwgY2MsIHJzLCBydCk7CisrICBB Ym9ydChyZWFzb24pOworKyAgLy8gV2lsbCBub3QgcmV0dXJuIGhlcmUuCisrICBiaW5kKCZMKTsK Kyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6QWJvcnQoQWJvcnRSZWFzb24gcmVhc29uKSB7 CisrICBMYWJlbCBhYm9ydF9zdGFydDsKKysgIGJpbmQoJmFib3J0X3N0YXJ0KTsKKysjaWZkZWYg REVCVUcKKysgIGNvbnN0IGNoYXIqIG1zZyA9IEdldEFib3J0UmVhc29uKHJlYXNvbik7CisrICBS ZWNvcmRDb21tZW50KCJBYm9ydCBtZXNzYWdlOiAiKTsKKysgIFJlY29yZENvbW1lbnQobXNnKTsK KysjZW5kaWYKKysKKysgIC8vIEF2b2lkIGVtaXR0aW5nIGNhbGwgdG8gYnVpbHRpbiBpZiByZXF1 ZXN0ZWQuCisrICBpZiAodHJhcF9vbl9hYm9ydCgpKSB7CisrICAgIGVicmVhaygpOworKyAgICBy ZXR1cm47CisrICB9CisrCisrICBpZiAoc2hvdWxkX2Fib3J0X2hhcmQoKSkgeworKyAgICAvLyBX ZSBkb24ndCBjYXJlIGlmIHdlIGNvbnN0cnVjdGVkIGEgZnJhbWUuIEp1c3QgcHJldGVuZCB3ZSBk aWQuCisrICAgIEZyYW1lU2NvcGUgYXNzdW1lX2ZyYW1lKHRoaXMsIFN0YWNrRnJhbWU6Ok5PTkUp OworKyAgICBQcmVwYXJlQ2FsbENGdW5jdGlvbigwLCBhMCk7CisrICAgIGxpKGEwLCBPcGVyYW5k KHN0YXRpY19jYXN0PGludD4ocmVhc29uKSkpOworKyAgICBDYWxsQ0Z1bmN0aW9uKEV4dGVybmFs UmVmZXJlbmNlOjphYm9ydF93aXRoX3JlYXNvbigpLCAxKTsKKysgICAgcmV0dXJuOworKyAgfQor KworKyAgTW92ZShhMCwgU21pOjpGcm9tSW50KHN0YXRpY19jYXN0PGludD4ocmVhc29uKSkpOwor KworKyAgLy8gRGlzYWJsZSBzdHViIGNhbGwgcmVzdHJpY3Rpb25zIHRvIGFsd2F5cyBhbGxvdyBj YWxscyB0byBhYm9ydC4KKysgIGlmICghaGFzX2ZyYW1lKCkpIHsKKysgICAgLy8gV2UgZG9uJ3Qg YWN0dWFsbHkgd2FudCB0byBnZW5lcmF0ZSBhIHBpbGUgb2YgY29kZSBmb3IgdGhpcywgc28ganVz dAorKyAgICAvLyBjbGFpbSB0aGVyZSBpcyBhIHN0YWNrIGZyYW1lLCB3aXRob3V0IGdlbmVyYXRp bmcgb25lLgorKyAgICBGcmFtZVNjb3BlIHNjb3BlKHRoaXMsIFN0YWNrRnJhbWU6Ok5PTkUpOwor KyAgICBDYWxsKEJVSUxUSU5fQ09ERShpc29sYXRlKCksIEFib3J0KSwgUmVsb2NJbmZvOjpDT0RF X1RBUkdFVCk7CisrICB9IGVsc2UgeworKyAgICBDYWxsKEJVSUxUSU5fQ09ERShpc29sYXRlKCks IEFib3J0KSwgUmVsb2NJbmZvOjpDT0RFX1RBUkdFVCk7CisrICB9CisrICAvLyBXaWxsIG5vdCBy ZXR1cm4gaGVyZS4KKysgIGlmIChpc190cmFtcG9saW5lX3Bvb2xfYmxvY2tlZCgpKSB7CisrICAg IC8vIElmIHRoZSBjYWxsaW5nIGNvZGUgY2FyZXMgYWJvdXQgdGhlIGV4YWN0IG51bWJlciBvZgor KyAgICAvLyBpbnN0cnVjdGlvbnMgZ2VuZXJhdGVkLCB3ZSBpbnNlcnQgcGFkZGluZyBoZXJlIHRv IGtlZXAgdGhlIHNpemUKKysgICAgLy8gb2YgdGhlIEFib3J0IG1hY3JvIGNvbnN0YW50LgorKyAg ICAvLyBDdXJyZW50bHkgaW4gZGVidWcgbW9kZSB3aXRoIGRlYnVnX2NvZGUgZW5hYmxlZCB0aGUg bnVtYmVyIG9mCisrICAgIC8vIGdlbmVyYXRlZCBpbnN0cnVjdGlvbnMgaXMgMTAsIHNvIHdlIHVz ZSB0aGlzIGFzIGEgbWF4aW11bSB2YWx1ZS4KKysgICAgc3RhdGljIGNvbnN0IGludCBrRXhwZWN0 ZWRBYm9ydEluc3RydWN0aW9ucyA9IDEwOworKyAgICBpbnQgYWJvcnRfaW5zdHJ1Y3Rpb25zID0g SW5zdHJ1Y3Rpb25zR2VuZXJhdGVkU2luY2UoJmFib3J0X3N0YXJ0KTsKKysgICAgRENIRUNLX0xF KGFib3J0X2luc3RydWN0aW9ucywga0V4cGVjdGVkQWJvcnRJbnN0cnVjdGlvbnMpOworKyAgICB3 aGlsZSAoYWJvcnRfaW5zdHJ1Y3Rpb25zKysgPCBrRXhwZWN0ZWRBYm9ydEluc3RydWN0aW9ucykg eworKyAgICAgIG5vcCgpOworKyAgICB9CisrICB9CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJs ZXI6OkxvYWRNYXAoUmVnaXN0ZXIgZGVzdGluYXRpb24sIFJlZ2lzdGVyIG9iamVjdCkgeworKyAg TGQoZGVzdGluYXRpb24sIEZpZWxkTWVtT3BlcmFuZChvYmplY3QsIEhlYXBPYmplY3Q6OmtNYXBP ZmZzZXQpKTsKKyt9CisrCisrdm9pZCBNYWNyb0Fzc2VtYmxlcjo6TG9hZE5hdGl2ZUNvbnRleHRT bG90KGludCBpbmRleCwgUmVnaXN0ZXIgZHN0KSB7CisrICBMb2FkTWFwKGRzdCwgY3ApOworKyAg TGQoZHN0LAorKyAgICAgRmllbGRNZW1PcGVyYW5kKGRzdCwgTWFwOjprQ29uc3RydWN0b3JPckJh Y2tQb2ludGVyT3JOYXRpdmVDb250ZXh0T2Zmc2V0KSk7CisrICBMZChkc3QsIE1lbU9wZXJhbmQo ZHN0LCBDb250ZXh0OjpTbG90T2Zmc2V0KGluZGV4KSkpOworK30KKysKKyt2b2lkIFR1cmJvQXNz ZW1ibGVyOjpTdHViUHJvbG9ndWUoU3RhY2tGcmFtZTo6VHlwZSB0eXBlKSB7CisrICBVc2VTY3Jh dGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1w cy5BY3F1aXJlKCk7CisrICBsaShzY3JhdGNoLCBPcGVyYW5kKFN0YWNrRnJhbWU6OlR5cGVUb01h cmtlcih0eXBlKSkpOworKyAgUHVzaENvbW1vbkZyYW1lKHNjcmF0Y2gpOworK30KKysKKyt2b2lk IFR1cmJvQXNzZW1ibGVyOjpQcm9sb2d1ZSgpIHsgUHVzaFN0YW5kYXJkRnJhbWUoYTEpOyB9Cisr Cisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6RW50ZXJGcmFtZShTdGFja0ZyYW1lOjpUeXBlIHR5cGUp IHsKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhp cyk7CisrICBpbnQgc3RhY2tfb2Zmc2V0ID0gLTMgKiBrUG9pbnRlclNpemU7CisrICBjb25zdCBp bnQgZnBfb2Zmc2V0ID0gMSAqIGtQb2ludGVyU2l6ZTsKKysgIGFkZGkoc3AsIHNwLCBzdGFja19v ZmZzZXQpOworKyAgc3RhY2tfb2Zmc2V0ID0gLXN0YWNrX29mZnNldCAtIGtQb2ludGVyU2l6ZTsK KysgIFNkKHJhLCBNZW1PcGVyYW5kKHNwLCBzdGFja19vZmZzZXQpKTsKKysgIHN0YWNrX29mZnNl dCAtPSBrUG9pbnRlclNpemU7CisrICBTZChmcCwgTWVtT3BlcmFuZChzcCwgc3RhY2tfb2Zmc2V0 KSk7CisrICBzdGFja19vZmZzZXQgLT0ga1BvaW50ZXJTaXplOworKyAgbGkodDYsIE9wZXJhbmQo U3RhY2tGcmFtZTo6VHlwZVRvTWFya2VyKHR5cGUpKSk7CisrICBTZCh0NiwgTWVtT3BlcmFuZChz cCwgc3RhY2tfb2Zmc2V0KSk7CisrICAvLyBBZGp1c3QgRlAgdG8gcG9pbnQgdG8gc2F2ZWQgRlAu CisrICBEQ0hFQ0tfRVEoc3RhY2tfb2Zmc2V0LCAwKTsKKysgIEFkZDY0KGZwLCBzcCwgT3BlcmFu ZChmcF9vZmZzZXQpKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6TGVhdmVGcmFtZShT dGFja0ZyYW1lOjpUeXBlIHR5cGUpIHsKKysgIGFkZGkoc3AsIGZwLCAyICoga1BvaW50ZXJTaXpl KTsKKysgIExkKHJhLCBNZW1PcGVyYW5kKGZwLCAxICoga1BvaW50ZXJTaXplKSk7CisrICBMZChm cCwgTWVtT3BlcmFuZChmcCwgMCAqIGtQb2ludGVyU2l6ZSkpOworK30KKysKKyt2b2lkIE1hY3Jv QXNzZW1ibGVyOjpFbnRlckV4aXRGcmFtZShib29sIHNhdmVfZG91YmxlcywgaW50IHN0YWNrX3Nw YWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWNrRnJhbWU6OlR5 cGUgZnJhbWVfdHlwZSkgeworKyAgRENIRUNLKGZyYW1lX3R5cGUgPT0gU3RhY2tGcmFtZTo6RVhJ VCB8fAorKyAgICAgICAgIGZyYW1lX3R5cGUgPT0gU3RhY2tGcmFtZTo6QlVJTFRJTl9FWElUKTsK KysKKysgIC8vIFNldCB1cCB0aGUgZnJhbWUgc3RydWN0dXJlIG9uIHRoZSBzdGFjay4KKysgIFNU QVRJQ19BU1NFUlQoMiAqIGtQb2ludGVyU2l6ZSA9PSBFeGl0RnJhbWVDb25zdGFudHM6OmtDYWxs ZXJTUERpc3BsYWNlbWVudCk7CisrICBTVEFUSUNfQVNTRVJUKDEgKiBrUG9pbnRlclNpemUgPT0g RXhpdEZyYW1lQ29uc3RhbnRzOjprQ2FsbGVyUENPZmZzZXQpOworKyAgU1RBVElDX0FTU0VSVCgw ICoga1BvaW50ZXJTaXplID09IEV4aXRGcmFtZUNvbnN0YW50czo6a0NhbGxlckZQT2Zmc2V0KTsK KysKKysgIC8vIFRoaXMgaXMgaG93IHRoZSBzdGFjayB3aWxsIGxvb2s6CisrICAvLyBmcCArIDIg KD09a0NhbGxlclNQRGlzcGxhY2VtZW50KSAtIG9sZCBzdGFjaydzIGVuZAorKyAgLy8gW2ZwICsg MSAoPT1rQ2FsbGVyUENPZmZzZXQpXSAtIHNhdmVkIG9sZCByYQorKyAgLy8gW2ZwICsgMCAoPT1r Q2FsbGVyRlBPZmZzZXQpXSAtIHNhdmVkIG9sZCBmcAorKyAgLy8gW2ZwIC0gMSBTdGFja0ZyYW1l OjpFWElUIFNtaQorKyAgLy8gW2ZwIC0gMiAoPT1rU1BPZmZzZXQpXSAtIHNwIG9mIHRoZSBjYWxs ZWQgZnVuY3Rpb24KKysgIC8vIGZwIC0gKDIgKyBzdGFja19zcGFjZSArIGFsaWdubWVudCkgPT0g c3AgPT0gW2ZwIC0ga1NQT2Zmc2V0XSAtIHRvcCBvZiB0aGUKKysgIC8vICAgbmV3IHN0YWNrICh3 aWxsIGNvbnRhaW4gc2F2ZWQgcmEpCisrCisrICAvLyBTYXZlIHJlZ2lzdGVycyBhbmQgcmVzZXJ2 ZSByb29tIGZvciBzYXZlZCBlbnRyeSBzcC4KKysgIGFkZGkoc3AsIHNwLCAtMiAqIGtQb2ludGVy U2l6ZSAtIEV4aXRGcmFtZUNvbnN0YW50czo6a0ZpeGVkRnJhbWVTaXplRnJvbUZwKTsKKysgIFNk KHJhLCBNZW1PcGVyYW5kKHNwLCAzICoga1BvaW50ZXJTaXplKSk7CisrICBTZChmcCwgTWVtT3Bl cmFuZChzcCwgMiAqIGtQb2ludGVyU2l6ZSkpOworKyAgeworKyAgICBVc2VTY3JhdGNoUmVnaXN0 ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVp cmUoKTsKKysgICAgbGkoc2NyYXRjaCwgT3BlcmFuZChTdGFja0ZyYW1lOjpUeXBlVG9NYXJrZXIo ZnJhbWVfdHlwZSkpKTsKKysgICAgU2Qoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgMSAqIGtQb2lu dGVyU2l6ZSkpOworKyAgfQorKyAgLy8gU2V0IHVwIG5ldyBmcmFtZSBwb2ludGVyLgorKyAgYWRk aShmcCwgc3AsIEV4aXRGcmFtZUNvbnN0YW50czo6a0ZpeGVkRnJhbWVTaXplRnJvbUZwKTsKKysK KysgIGlmIChlbWl0X2RlYnVnX2NvZGUoKSkgeworKyAgICBTZCh6ZXJvX3JlZywgTWVtT3BlcmFu ZChmcCwgRXhpdEZyYW1lQ29uc3RhbnRzOjprU1BPZmZzZXQpKTsKKysgIH0KKysKKysgIHsKKysg ICAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9vbCh0aGlzKTsK KysgICAgLy8gU2F2ZSB0aGUgZnJhbWUgcG9pbnRlciBhbmQgdGhlIGNvbnRleHQgaW4gdG9wLgor KyAgICBsaSh0NSwgRXh0ZXJuYWxSZWZlcmVuY2U6OkNyZWF0ZShJc29sYXRlQWRkcmVzc0lkOjpr Q0VudHJ5RlBBZGRyZXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp c29sYXRlKCkpKTsKKysgICAgU2QoZnAsIE1lbU9wZXJhbmQodDUpKTsKKysgICAgbGkodDUsCisr ICAgICAgIEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoSXNvbGF0ZUFkZHJlc3NJZDo6a0NvbnRl eHRBZGRyZXNzLCBpc29sYXRlKCkpKTsKKysgICAgU2QoY3AsIE1lbU9wZXJhbmQodDUpKTsKKysg IH0KKysKKysgIGNvbnN0IGludCBmcmFtZV9hbGlnbm1lbnQgPSBNYWNyb0Fzc2VtYmxlcjo6QWN0 aXZhdGlvbkZyYW1lQWxpZ25tZW50KCk7CisrICBpZiAoc2F2ZV9kb3VibGVzKSB7CisrICAgIC8v IFRoZSBzdGFjayBpcyBhbHJlYWR5IGFsaWduZWQgdG8gMCBtb2R1bG8gOCBmb3Igc3RvcmVzIHdp dGggc2RjMS4KKysgICAgaW50IGtOdW1PZlNhdmVkUmVnaXN0ZXJzID0gRlBVUmVnaXN0ZXI6OmtO dW1SZWdpc3RlcnM7CisrICAgIGludCBzcGFjZSA9IGtOdW1PZlNhdmVkUmVnaXN0ZXJzICoga0Rv dWJsZVNpemU7CisrICAgIFN1YjY0KHNwLCBzcCwgT3BlcmFuZChzcGFjZSkpOworKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IGtOdW1PZlNhdmVkUmVnaXN0ZXJzOyBpKyspIHsKKysgICAgICBGUFVS ZWdpc3RlciByZWcgPSBGUFVSZWdpc3Rlcjo6ZnJvbV9jb2RlKGkpOworKyAgICAgIFN0b3JlRG91 YmxlKHJlZywgTWVtT3BlcmFuZChzcCwgaSAqIGtEb3VibGVTaXplKSk7CisrICAgIH0KKysgIH0K KysKKysgIC8vIFJlc2VydmUgcGxhY2UgZm9yIHRoZSByZXR1cm4gYWRkcmVzcywgc3RhY2sgc3Bh Y2UgYW5kIGFuIG9wdGlvbmFsIHNsb3QKKysgIC8vICh1c2VkIGJ5IERpcmVjdENFbnRyeSB0byBo b2xkIHRoZSByZXR1cm4gdmFsdWUgaWYgYSBzdHJ1Y3QgaXMKKysgIC8vIHJldHVybmVkKSBhbmQg YWxpZ24gdGhlIGZyYW1lIHByZXBhcmluZyBmb3IgY2FsbGluZyB0aGUgcnVudGltZSBmdW5jdGlv bi4KKysgIERDSEVDS19HRShzdGFja19zcGFjZSwgMCk7CisrICBTdWI2NChzcCwgc3AsIE9wZXJh bmQoKHN0YWNrX3NwYWNlICsgMikgKiBrUG9pbnRlclNpemUpKTsKKysgIGlmIChmcmFtZV9hbGln bm1lbnQgPiAwKSB7CisrICAgIERDSEVDSyhiYXNlOjpiaXRzOjpJc1Bvd2VyT2ZUd28oZnJhbWVf YWxpZ25tZW50KSk7CisrICAgIEFuZChzcCwgc3AsIE9wZXJhbmQoLWZyYW1lX2FsaWdubWVudCkp OyAgLy8gQWxpZ24gc3RhY2suCisrICB9CisrCisrICAvLyBTZXQgdGhlIGV4aXQgZnJhbWUgc3Ag dmFsdWUgdG8gcG9pbnQganVzdCBiZWZvcmUgdGhlIHJldHVybiBhZGRyZXNzCisrICAvLyBsb2Nh dGlvbi4KKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgUmVnaXN0 ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgIGFkZGkoc2NyYXRjaCwgc3AsIGtQb2lu dGVyU2l6ZSk7CisrICBTZChzY3JhdGNoLCBNZW1PcGVyYW5kKGZwLCBFeGl0RnJhbWVDb25zdGFu dHM6OmtTUE9mZnNldCkpOworK30KKysKKyt2b2lkIE1hY3JvQXNzZW1ibGVyOjpMZWF2ZUV4aXRG cmFtZShib29sIHNhdmVfZG91YmxlcywgUmVnaXN0ZXIgYXJndW1lbnRfY291bnQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkb19yZXR1cm4sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhcmd1bWVudF9jb3VudF9pc19sZW5ndGgp IHsKKysgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhp cyk7CisrICAvLyBPcHRpb25hbGx5IHJlc3RvcmUgYWxsIGRvdWJsZSByZWdpc3RlcnMuCisrICBp ZiAoc2F2ZV9kb3VibGVzKSB7CisrICAgIC8vIFJlbWVtYmVyOiB3ZSBvbmx5IG5lZWQgdG8gcmVz dG9yZSBldmVyeSAybmQgZG91YmxlIEZQVSB2YWx1ZS4KKysgICAgaW50IGtOdW1PZlNhdmVkUmVn aXN0ZXJzID0gRlBVUmVnaXN0ZXI6OmtOdW1SZWdpc3RlcnMgLyAyOworKyAgICBTdWI2NCh0NSwg ZnAsCisrICAgICAgICAgIE9wZXJhbmQoRXhpdEZyYW1lQ29uc3RhbnRzOjprRml4ZWRGcmFtZVNp emVGcm9tRnAgKworKyAgICAgICAgICAgICAgICAgIGtOdW1PZlNhdmVkUmVnaXN0ZXJzICoga0Rv dWJsZVNpemUpKTsKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrTnVtT2ZTYXZlZFJlZ2lzdGVy czsgaSsrKSB7CisrICAgICAgRlBVUmVnaXN0ZXIgcmVnID0gRlBVUmVnaXN0ZXI6OmZyb21fY29k ZSgyICogaSk7CisrICAgICAgTG9hZERvdWJsZShyZWcsIE1lbU9wZXJhbmQodDUsIGkgKiBrRG91 YmxlU2l6ZSkpOworKyAgICB9CisrICB9CisrCisrICAvLyBDbGVhciB0b3AgZnJhbWUuCisrICBs aSh0NSwKKysgICAgIEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoSXNvbGF0ZUFkZHJlc3NJZDo6 a0NFbnRyeUZQQWRkcmVzcywgaXNvbGF0ZSgpKSk7CisrICBTZCh6ZXJvX3JlZywgTWVtT3BlcmFu ZCh0NSkpOworKworKyAgLy8gUmVzdG9yZSBjdXJyZW50IGNvbnRleHQgZnJvbSB0b3AgYW5kIGNs ZWFyIGl0IGluIGRlYnVnIG1vZGUuCisrICBsaSh0NSwKKysgICAgIEV4dGVybmFsUmVmZXJlbmNl OjpDcmVhdGUoSXNvbGF0ZUFkZHJlc3NJZDo6a0NvbnRleHRBZGRyZXNzLCBpc29sYXRlKCkpKTsK KysgIExkKGNwLCBNZW1PcGVyYW5kKHQ1KSk7CisrCisrI2lmZGVmIERFQlVHCisrICBsaSh0NSwK KysgICAgIEV4dGVybmFsUmVmZXJlbmNlOjpDcmVhdGUoSXNvbGF0ZUFkZHJlc3NJZDo6a0NvbnRl eHRBZGRyZXNzLCBpc29sYXRlKCkpKTsKKysgIFNkKGEzLCBNZW1PcGVyYW5kKHQ1KSk7CisrI2Vu ZGlmCisrCisrICAvLyBQb3AgdGhlIGFyZ3VtZW50cywgcmVzdG9yZSByZWdpc3RlcnMsIGFuZCBy ZXR1cm4uCisrICBtdihzcCwgZnApOyAgLy8gUmVzcGVjdCBBQkkgc3RhY2sgY29uc3RyYWludC4K KysgIExkKGZwLCBNZW1PcGVyYW5kKHNwLCBFeGl0RnJhbWVDb25zdGFudHM6OmtDYWxsZXJGUE9m ZnNldCkpOworKyAgTGQocmEsIE1lbU9wZXJhbmQoc3AsIEV4aXRGcmFtZUNvbnN0YW50czo6a0Nh bGxlclBDT2Zmc2V0KSk7CisrCisrICBpZiAoYXJndW1lbnRfY291bnQuaXNfdmFsaWQoKSkgewor KyAgICBpZiAoYXJndW1lbnRfY291bnRfaXNfbGVuZ3RoKSB7CisrICAgICAgYWRkKHNwLCBzcCwg YXJndW1lbnRfY291bnQpOworKyAgICB9IGVsc2UgeworKyAgICAgIENhbGNTY2FsZWRBZGRyZXNz KHNwLCBzcCwgYXJndW1lbnRfY291bnQsIGtQb2ludGVyU2l6ZUxvZzIsIHQ1KTsKKysgICAgfQor KyAgfQorKworKyAgYWRkaShzcCwgc3AsIDIgKiBrUG9pbnRlclNpemUpOworKworKyAgaWYgKGRv X3JldHVybikgeworKyAgICBSZXQoKTsKKysgIH0KKyt9CisrCisraW50IFR1cmJvQXNzZW1ibGVy OjpBY3RpdmF0aW9uRnJhbWVBbGlnbm1lbnQoKSB7CisrI2lmIFY4X0hPU1RfQVJDSF9SSVNDVjY0 CisrICAvLyBSdW5uaW5nIG9uIHRoZSByZWFsIHBsYXRmb3JtLiBVc2UgdGhlIGFsaWdubWVudCBh cyBtYW5kYXRlZCBieSB0aGUgbG9jYWwKKysgIC8vIGVudmlyb25tZW50LgorKyAgLy8gTm90ZTog VGhpcyB3aWxsIGJyZWFrIGlmIHdlIGV2ZXIgc3RhcnQgZ2VuZXJhdGluZyBzbmFwc2hvdHMgb24g b25lIFJJU0MtVgorKyAgLy8gcGxhdGZvcm0gZm9yIGFub3RoZXIgUklTQy1WIHBsYXRmb3JtIHdp dGggYSBkaWZmZXJlbnQgYWxpZ25tZW50LgorKyAgcmV0dXJuIGJhc2U6Ok9TOjpBY3RpdmF0aW9u RnJhbWVBbGlnbm1lbnQoKTsKKysjZWxzZSAgIC8vIFY4X0hPU1RfQVJDSF9SSVNDVjY0CisrICAv LyBJZiB3ZSBhcmUgdXNpbmcgdGhlIHNpbXVsYXRvciB0aGVuIHdlIHNob3VsZCBhbHdheXMgYWxp Z24gdG8gdGhlIGV4cGVjdGVkCisrICAvLyBhbGlnbm1lbnQuIEFzIHRoZSBzaW11bGF0b3IgaXMg dXNlZCB0byBnZW5lcmF0ZSBzbmFwc2hvdHMgd2UgZG8gbm90IGtub3cKKysgIC8vIGlmIHRoZSB0 YXJnZXQgcGxhdGZvcm0gd2lsbCBuZWVkIGFsaWdubWVudCwgc28gdGhpcyBpcyBjb250cm9sbGVk IGZyb20gYQorKyAgLy8gZmxhZy4KKysgIHJldHVybiBGTEFHX3NpbV9zdGFja19hbGlnbm1lbnQ7 CisrI2VuZGlmICAvLyBWOF9IT1NUX0FSQ0hfUklTQ1Y2NAorK30KKysKKyt2b2lkIE1hY3JvQXNz ZW1ibGVyOjpBc3NlcnRTdGFja0lzQWxpZ25lZCgpIHsKKysgIGlmIChlbWl0X2RlYnVnX2NvZGUo KSkgeworKyAgICBjb25zdCBpbnQgZnJhbWVfYWxpZ25tZW50ID0gQWN0aXZhdGlvbkZyYW1lQWxp Z25tZW50KCk7CisrICAgIGNvbnN0IGludCBmcmFtZV9hbGlnbm1lbnRfbWFzayA9IGZyYW1lX2Fs aWdubWVudCAtIDE7CisrCisrICAgIGlmIChmcmFtZV9hbGlnbm1lbnQgPiBrUG9pbnRlclNpemUp IHsKKysgICAgICBMYWJlbCBhbGlnbm1lbnRfYXNfZXhwZWN0ZWQ7CisrICAgICAgRENIRUNLKGJh c2U6OmJpdHM6OklzUG93ZXJPZlR3byhmcmFtZV9hbGlnbm1lbnQpKTsKKysgICAgICB7CisrICAg ICAgICBVc2VTY3JhdGNoUmVnaXN0ZXJTY29wZSB0ZW1wcyh0aGlzKTsKKysgICAgICAgIFJlZ2lz dGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgICAgICBhbmRpKHNjcmF0Y2gsIHNw LCBmcmFtZV9hbGlnbm1lbnRfbWFzayk7CisrICAgICAgICBCcmFuY2goJmFsaWdubWVudF9hc19l eHBlY3RlZCwgZXEsIHNjcmF0Y2gsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgICB9CisrICAg ICAgLy8gRG9uJ3QgdXNlIENoZWNrIGhlcmUsIGFzIGl0IHdpbGwgY2FsbCBSdW50aW1lX0Fib3J0 IHJlLWVudGVyaW5nIGhlcmUuCisrICAgICAgZWJyZWFrKCk7CisrICAgICAgYmluZCgmYWxpZ25t ZW50X2FzX2V4cGVjdGVkKTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIFR1cmJvQXNzZW1i bGVyOjpTbWlVbnRhZyhSZWdpc3RlciBkc3QsIGNvbnN0IE1lbU9wZXJhbmQmIHNyYykgeworKyAg aWYgKFNtaVZhbHVlc0FyZTMyQml0cygpKSB7CisrICAgIEx3KGRzdCwgTWVtT3BlcmFuZChzcmMu cm0oKSwgU21pV29yZE9mZnNldChzcmMub2Zmc2V0KCkpKSk7CisrICB9IGVsc2UgeworKyAgICBE Q0hFQ0soU21pVmFsdWVzQXJlMzFCaXRzKCkpOworKyAgICBMdyhkc3QsIHNyYyk7CisrICAgIFNt aVVudGFnKGRzdCk7CisrICB9CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6Okp1bXBJZlNt aShSZWdpc3RlciB2YWx1ZSwgTGFiZWwqIHNtaV9sYWJlbCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaCkgeworKyAgRENIRUNLX0VRKDAsIGtTbWlUYWcp OworKyAgYW5kaShzY3JhdGNoLCB2YWx1ZSwga1NtaVRhZ01hc2spOworKyAgQnJhbmNoKHNtaV9s YWJlbCwgZXEsIHNjcmF0Y2gsIE9wZXJhbmQoemVyb19yZWcpKTsKKyt9CisrCisrdm9pZCBNYWNy b0Fzc2VtYmxlcjo6SnVtcElmTm90U21pKFJlZ2lzdGVyIHZhbHVlLCBMYWJlbCogbm90X3NtaV9s YWJlbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRj aCkgeworKyAgRENIRUNLX0VRKDAsIGtTbWlUYWcpOworKyAgYW5kaShzY3JhdGNoLCB2YWx1ZSwg a1NtaVRhZ01hc2spOworKyAgQnJhbmNoKG5vdF9zbWlfbGFiZWwsIG5lLCBzY3JhdGNoLCBPcGVy YW5kKHplcm9fcmVnKSk7CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OkFzc2VydE5vdFNt aShSZWdpc3RlciBvYmplY3QpIHsKKysgIGlmIChlbWl0X2RlYnVnX2NvZGUoKSkgeworKyAgICBT VEFUSUNfQVNTRVJUKGtTbWlUYWcgPT0gMCk7CisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3Bl IHRlbXBzKHRoaXMpOworKyAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOwor KyAgICBhbmRpKHNjcmF0Y2gsIG9iamVjdCwga1NtaVRhZ01hc2spOworKyAgICBDaGVjayhuZSwg QWJvcnRSZWFzb246OmtPcGVyYW5kSXNBU21pLCBzY3JhdGNoLCBPcGVyYW5kKHplcm9fcmVnKSk7 CisrICB9CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OkFzc2VydFNtaShSZWdpc3RlciBv YmplY3QpIHsKKysgIGlmIChlbWl0X2RlYnVnX2NvZGUoKSkgeworKyAgICBTVEFUSUNfQVNTRVJU KGtTbWlUYWcgPT0gMCk7CisrICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMp OworKyAgICBSZWdpc3RlciBzY3JhdGNoID0gdGVtcHMuQWNxdWlyZSgpOworKyAgICBhbmRpKHNj cmF0Y2gsIG9iamVjdCwga1NtaVRhZ01hc2spOworKyAgICBDaGVjayhlcSwgQWJvcnRSZWFzb246 OmtPcGVyYW5kSXNBU21pLCBzY3JhdGNoLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICB9CisrfQor KworK3ZvaWQgTWFjcm9Bc3NlbWJsZXI6OkFzc2VydENvbnN0cnVjdG9yKFJlZ2lzdGVyIG9iamVj dCkgeworKyAgaWYgKGVtaXRfZGVidWdfY29kZSgpKSB7CisrICAgIEJsb2NrVHJhbXBvbGluZVBv b2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICAgIFNUQVRJQ19BU1NFUlQo a1NtaVRhZyA9PSAwKTsKKysgICAgU21pVHN0KG9iamVjdCwgdDUpOworKyAgICBDaGVjayhuZSwg QWJvcnRSZWFzb246OmtPcGVyYW5kSXNBU21pQW5kTm90QUNvbnN0cnVjdG9yLCB0NSwKKysgICAg ICAgICAgT3BlcmFuZCh6ZXJvX3JlZykpOworKworKyAgICBMb2FkTWFwKHQ1LCBvYmplY3QpOwor KyAgICBMYnUodDUsIEZpZWxkTWVtT3BlcmFuZCh0NSwgTWFwOjprQml0RmllbGRPZmZzZXQpKTsK KysgICAgQW5kKHQ1LCB0NSwgT3BlcmFuZChNYXA6OkJpdHMxOjpJc0NvbnN0cnVjdG9yQml0Ojpr TWFzaykpOworKyAgICBDaGVjayhuZSwgQWJvcnRSZWFzb246OmtPcGVyYW5kSXNOb3RBQ29uc3Ry dWN0b3IsIHQ1LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICB9CisrfQorKworK3ZvaWQgTWFjcm9B c3NlbWJsZXI6OkFzc2VydEZ1bmN0aW9uKFJlZ2lzdGVyIG9iamVjdCkgeworKyAgaWYgKGVtaXRf ZGVidWdfY29kZSgpKSB7CisrICAgIEJsb2NrVHJhbXBvbGluZVBvb2xTY29wZSBibG9ja190cmFt cG9saW5lX3Bvb2wodGhpcyk7CisrICAgIFNUQVRJQ19BU1NFUlQoa1NtaVRhZyA9PSAwKTsKKysg ICAgU21pVHN0KG9iamVjdCwgdDUpOworKyAgICBDaGVjayhuZSwgQWJvcnRSZWFzb246OmtPcGVy YW5kSXNBU21pQW5kTm90QUZ1bmN0aW9uLCB0NSwKKysgICAgICAgICAgT3BlcmFuZCh6ZXJvX3Jl ZykpOworKyAgICBHZXRPYmplY3RUeXBlKG9iamVjdCwgdDUsIHQ1KTsKKysgICAgQ2hlY2soZXEs IEFib3J0UmVhc29uOjprT3BlcmFuZElzTm90QUZ1bmN0aW9uLCB0NSwKKysgICAgICAgICAgT3Bl cmFuZChKU19GVU5DVElPTl9UWVBFKSk7CisrICB9CisrfQorKworK3ZvaWQgTWFjcm9Bc3NlbWJs ZXI6OkFzc2VydEJvdW5kRnVuY3Rpb24oUmVnaXN0ZXIgb2JqZWN0KSB7CisrICBpZiAoZW1pdF9k ZWJ1Z19jb2RlKCkpIHsKKysgICAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1w b2xpbmVfcG9vbCh0aGlzKTsKKysgICAgU1RBVElDX0FTU0VSVChrU21pVGFnID09IDApOworKyAg ICBTbWlUc3Qob2JqZWN0LCB0NSk7CisrICAgIENoZWNrKG5lLCBBYm9ydFJlYXNvbjo6a09wZXJh bmRJc0FTbWlBbmROb3RBQm91bmRGdW5jdGlvbiwgdDUsCisrICAgICAgICAgIE9wZXJhbmQoemVy b19yZWcpKTsKKysgICAgR2V0T2JqZWN0VHlwZShvYmplY3QsIHQ1LCB0NSk7CisrICAgIENoZWNr KGVxLCBBYm9ydFJlYXNvbjo6a09wZXJhbmRJc05vdEFCb3VuZEZ1bmN0aW9uLCB0NSwKKysgICAg ICAgICAgT3BlcmFuZChKU19CT1VORF9GVU5DVElPTl9UWVBFKSk7CisrICB9CisrfQorKworK3Zv aWQgTWFjcm9Bc3NlbWJsZXI6OkFzc2VydEdlbmVyYXRvck9iamVjdChSZWdpc3RlciBvYmplY3Qp IHsKKysgIGlmICghZW1pdF9kZWJ1Z19jb2RlKCkpIHJldHVybjsKKysgIEJsb2NrVHJhbXBvbGlu ZVBvb2xTY29wZSBibG9ja190cmFtcG9saW5lX3Bvb2wodGhpcyk7CisrICBTVEFUSUNfQVNTRVJU KGtTbWlUYWcgPT0gMCk7CisrICBTbWlUc3Qob2JqZWN0LCB0NSk7CisrICBDaGVjayhuZSwgQWJv cnRSZWFzb246OmtPcGVyYW5kSXNBU21pQW5kTm90QUdlbmVyYXRvck9iamVjdCwgdDUsCisrICAg ICAgICBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICBHZXRPYmplY3RUeXBlKG9iamVjdCwgdDUs IHQ1KTsKKysKKysgIExhYmVsIGRvbmU7CisrCisrICAvLyBDaGVjayBpZiBKU0dlbmVyYXRvck9i amVjdAorKyAgQnJhbmNoKCZkb25lLCBlcSwgdDUsIE9wZXJhbmQoSlNfR0VORVJBVE9SX09CSkVD VF9UWVBFKSk7CisrCisrICAvLyBDaGVjayBpZiBKU0FzeW5jRnVuY3Rpb25PYmplY3QgKFNlZSBN YWNyb0Fzc2VtYmxlcjo6Q29tcGFyZUluc3RhbmNlVHlwZSkKKysgIEJyYW5jaCgmZG9uZSwgZXEs IHQ1LCBPcGVyYW5kKEpTX0FTWU5DX0ZVTkNUSU9OX09CSkVDVF9UWVBFKSk7CisrCisrICAvLyBD aGVjayBpZiBKU0FzeW5jR2VuZXJhdG9yT2JqZWN0CisrICBCcmFuY2goJmRvbmUsIGVxLCB0NSwg T3BlcmFuZChKU19BU1lOQ19HRU5FUkFUT1JfT0JKRUNUX1RZUEUpKTsKKysKKysgIEFib3J0KEFi b3J0UmVhc29uOjprT3BlcmFuZElzTm90QUdlbmVyYXRvck9iamVjdCk7CisrCisrICBiaW5kKCZk b25lKTsKKyt9CisrCisrdm9pZCBNYWNyb0Fzc2VtYmxlcjo6QXNzZXJ0VW5kZWZpbmVkT3JBbGxv Y2F0aW9uU2l0ZShSZWdpc3RlciBvYmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzY3JhdGNoKSB7CisrICBpZiAoZW1p dF9kZWJ1Z19jb2RlKCkpIHsKKysgICAgTGFiZWwgZG9uZV9jaGVja2luZzsKKysgICAgQXNzZXJ0 Tm90U21pKG9iamVjdCk7CisrICAgIExvYWRSb290KHNjcmF0Y2gsIFJvb3RJbmRleDo6a1VuZGVm aW5lZFZhbHVlKTsKKysgICAgQnJhbmNoKCZkb25lX2NoZWNraW5nLCBlcSwgb2JqZWN0LCBPcGVy YW5kKHNjcmF0Y2gpKTsKKysgICAgR2V0T2JqZWN0VHlwZShvYmplY3QsIHNjcmF0Y2gsIHNjcmF0 Y2gpOworKyAgICBBc3NlcnQoZXEsIEFib3J0UmVhc29uOjprRXhwZWN0ZWRVbmRlZmluZWRPckNl bGwsIHNjcmF0Y2gsCisrICAgICAgICAgICBPcGVyYW5kKEFMTE9DQVRJT05fU0lURV9UWVBFKSk7 CisrICAgIGJpbmQoJmRvbmVfY2hlY2tpbmcpOworKyAgfQorK30KKysKKyt0ZW1wbGF0ZSA8dHlw ZW5hbWUgRl9UWVBFPgorK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkZsb2F0TWluTWF4SGVscGVyKEZQ VVJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjMSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciBzcmMyLCBNYXhNaW5LaW5kIGtpbmQpIHsKKysg IERDSEVDSygoc3RkOjppc19zYW1lPEZfVFlQRSwgZmxvYXQ+Ojp2YWx1ZSkgfHwKKysgICAgICAg ICAoc3RkOjppc19zYW1lPEZfVFlQRSwgZG91YmxlPjo6dmFsdWUpKTsKKysKKysgIGlmIChzcmMx ID09IHNyYzIgJiYgZHN0ICE9IHNyYzEpIHsKKysgICAgaWYgKHN0ZDo6aXNfc2FtZTxmbG9hdCwg Rl9UWVBFPjo6dmFsdWUpIHsKKysgICAgICBmbXZfcyhkc3QsIHNyYzEpOworKyAgICB9IGVsc2Ug eworKyAgICAgIGZtdl9kKGRzdCwgc3JjMSk7CisrICAgIH0KKysgICAgcmV0dXJuOworKyAgfQor KworKyAgTGFiZWwgZG9uZSwgbmFuOworKworKyAgLy8gRm9yIFJJU0NWLCBmbWluX3MgcmV0dXJu cyB0aGUgb3RoZXIgbm9uLU5hTiBvcGVyYW5kIGFzIHJlc3VsdCBpZiBvbmx5IG9uZQorKyAgLy8g b3BlcmFuZCBpcyBOYU47IGJ1dCBmb3IgSlMsIGlmIGFueSBvcGVyYW5kIGlzIE5hTiwgcmVzdWx0 IGlzIE5hbi4gVGhlCisrICAvLyBmb2xsb3dpbmcgaGFuZGxlcyB0aGUgZGlzY3JlcGVuY3kgYmV0 d2VlbiBoYW5kbGluZyBvZiBOYU4gYmV0d2VlbiBJU0EgYW5kCisrICAvLyBKUyBzZW1hbnRpY3MK KysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAgUmVnaXN0ZXIgc2Ny YXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysgIGlmIChzdGQ6OmlzX3NhbWU8ZmxvYXQsIEZfVFlQ RT46OnZhbHVlKSB7CisrICAgIENvbXBhcmVJc05hbkYzMihzY3JhdGNoLCBzcmMxLCBzcmMyKTsK KysgIH0gZWxzZSB7CisrICAgIENvbXBhcmVJc05hbkY2NChzY3JhdGNoLCBzcmMxLCBzcmMyKTsK KysgIH0KKysgIEJyYW5jaFRydWVGKHNjcmF0Y2gsICZuYW4pOworKworKyAgaWYgKGtpbmQgPT0g TWF4TWluS2luZDo6a01heCkgeworKyAgICBpZiAoc3RkOjppc19zYW1lPGZsb2F0LCBGX1RZUEU+ Ojp2YWx1ZSkgeworKyAgICAgIGZtYXhfcyhkc3QsIHNyYzEsIHNyYzIpOworKyAgICB9IGVsc2Ug eworKyAgICAgIGZtYXhfZChkc3QsIHNyYzEsIHNyYzIpOworKyAgICB9CisrICB9IGVsc2Ugewor KyAgICBpZiAoc3RkOjppc19zYW1lPGZsb2F0LCBGX1RZUEU+Ojp2YWx1ZSkgeworKyAgICAgIGZt aW5fcyhkc3QsIHNyYzEsIHNyYzIpOworKyAgICB9IGVsc2UgeworKyAgICAgIGZtaW5fZChkc3Qs IHNyYzEsIHNyYzIpOworKyAgICB9CisrICB9CisrICBqKCZkb25lKTsKKysKKysgIGJpbmQoJm5h bik7CisrICAvLyBpZiBhbnkgb3BlcmFuZCBpcyBOYU4sIHJldHVybiBOYU4gKGZhZGQgcmV0dXJu cyBOYU4gaWYgYW55IG9wZXJhbmQgaXMgTmFOKQorKyAgaWYgKHN0ZDo6aXNfc2FtZTxmbG9hdCwg Rl9UWVBFPjo6dmFsdWUpIHsKKysgICAgZmFkZF9zKGRzdCwgc3JjMSwgc3JjMik7CisrICB9IGVs c2UgeworKyAgICBmYWRkX2QoZHN0LCBzcmMxLCBzcmMyKTsKKysgIH0KKysKKysgIGJpbmQoJmRv bmUpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpGbG9hdDMyTWF4KEZQVVJlZ2lzdGVy IGRzdCwgRlBVUmVnaXN0ZXIgc3JjMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZQVVJlZ2lzdGVyIHNyYzIpIHsKKysgIEZsb2F0TWluTWF4SGVscGVyPGZsb2F0Pihkc3QsIHNy YzEsIHNyYzIsIE1heE1pbktpbmQ6OmtNYXgpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVy OjpGbG9hdDMyTWluKEZQVVJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjMSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lzdGVyIHNyYzIpIHsKKysgIEZsb2F0TWlu TWF4SGVscGVyPGZsb2F0Pihkc3QsIHNyYzEsIHNyYzIsIE1heE1pbktpbmQ6OmtNaW4pOworK30K KysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpGbG9hdDY0TWF4KEZQVVJlZ2lzdGVyIGRzdCwgRlBV UmVnaXN0ZXIgc3JjMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQVVJlZ2lz dGVyIHNyYzIpIHsKKysgIEZsb2F0TWluTWF4SGVscGVyPGRvdWJsZT4oZHN0LCBzcmMxLCBzcmMy LCBNYXhNaW5LaW5kOjprTWF4KTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6RmxvYXQ2 NE1pbihGUFVSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYzEsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGUFVSZWdpc3RlciBzcmMyKSB7CisrICBGbG9hdE1pbk1heEhlbHBl cjxkb3VibGU+KGRzdCwgc3JjMSwgc3JjMiwgTWF4TWluS2luZDo6a01pbik7CisrfQorKworK3N0 YXRpYyBjb25zdCBpbnQga1JlZ2lzdGVyUGFzc2VkQXJndW1lbnRzID0gODsKKysKKytpbnQgVHVy Ym9Bc3NlbWJsZXI6OkNhbGN1bGF0ZVN0YWNrUGFzc2VkRFdvcmRzKGludCBudW1fZ3BfYXJndW1l bnRzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IG51bV9mcF9hcmd1bWVudHMpIHsKKysgIGludCBzdGFja19wYXNzZWRfZHdvcmRzID0gMDsKKysK KysgIC8vIFVwIHRvIGVpZ2h0IGludGVnZXIgYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4gcmVnaXN0 ZXJzIGEwLi5hNyBhbmQKKysgIC8vIHVwIHRvIGVpZ2h0IGZsb2F0aW5nIHBvaW50IGFyZ3VtZW50 cyBhcmUgcGFzc2VkIGluIHJlZ2lzdGVycyBmYTAuLmZhNworKyAgaWYgKG51bV9ncF9hcmd1bWVu dHMgPiBrUmVnaXN0ZXJQYXNzZWRBcmd1bWVudHMpIHsKKysgICAgc3RhY2tfcGFzc2VkX2R3b3Jk cyArPSBudW1fZ3BfYXJndW1lbnRzIC0ga1JlZ2lzdGVyUGFzc2VkQXJndW1lbnRzOworKyAgfQor KyAgaWYgKG51bV9mcF9hcmd1bWVudHMgPiBrUmVnaXN0ZXJQYXNzZWRBcmd1bWVudHMpIHsKKysg ICAgc3RhY2tfcGFzc2VkX2R3b3JkcyArPSBudW1fZnBfYXJndW1lbnRzIC0ga1JlZ2lzdGVyUGFz c2VkQXJndW1lbnRzOworKyAgfQorKyAgc3RhY2tfcGFzc2VkX2R3b3JkcyArPSBrQ0FyZ1Nsb3RD b3VudDsKKysgIHJldHVybiBzdGFja19wYXNzZWRfZHdvcmRzOworK30KKysKKyt2b2lkIFR1cmJv QXNzZW1ibGVyOjpQcmVwYXJlQ2FsbENGdW5jdGlvbihpbnQgbnVtX3JlZ19hcmd1bWVudHMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9kb3VibGVf YXJndW1lbnRzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl Z2lzdGVyIHNjcmF0Y2gpIHsKKysgIGludCBmcmFtZV9hbGlnbm1lbnQgPSBBY3RpdmF0aW9uRnJh bWVBbGlnbm1lbnQoKTsKKysKKysgIC8vIFVwIHRvIGVpZ2h0IHNpbXBsZSBhcmd1bWVudHMgaW4g YTAuLmE3LCBmYTAuLmZhNy4KKysgIC8vIFJlbWFpbmluZyBhcmd1bWVudHMgYXJlIHB1c2hlZCBv biB0aGUgc3RhY2sgKGFyZyBzbG90IGNhbGN1bGF0aW9uIGhhbmRsZWQKKysgIC8vIGJ5IENhbGN1 bGF0ZVN0YWNrUGFzc2VkRFdvcmRzKCkpLgorKyAgaW50IHN0YWNrX3Bhc3NlZF9hcmd1bWVudHMg PQorKyAgICAgIENhbGN1bGF0ZVN0YWNrUGFzc2VkRFdvcmRzKG51bV9yZWdfYXJndW1lbnRzLCBu dW1fZG91YmxlX2FyZ3VtZW50cyk7CisrICBpZiAoZnJhbWVfYWxpZ25tZW50ID4ga1BvaW50ZXJT aXplKSB7CisrICAgIC8vIE1ha2Ugc3RhY2sgZW5kIGF0IGFsaWdubWVudCBhbmQgbWFrZSByb29t IGZvciBzdGFjayBhcmd1bWVudHMgYW5kIHRoZQorKyAgICAvLyBvcmlnaW5hbCB2YWx1ZSBvZiBz cC4KKysgICAgbXYoc2NyYXRjaCwgc3ApOworKyAgICBTdWI2NChzcCwgc3AsIE9wZXJhbmQoKHN0 YWNrX3Bhc3NlZF9hcmd1bWVudHMgKyAxKSAqIGtQb2ludGVyU2l6ZSkpOworKyAgICBEQ0hFQ0so YmFzZTo6Yml0czo6SXNQb3dlck9mVHdvKGZyYW1lX2FsaWdubWVudCkpOworKyAgICBBbmQoc3As IHNwLCBPcGVyYW5kKC1mcmFtZV9hbGlnbm1lbnQpKTsKKysgICAgU2Qoc2NyYXRjaCwgTWVtT3Bl cmFuZChzcCwgc3RhY2tfcGFzc2VkX2FyZ3VtZW50cyAqIGtQb2ludGVyU2l6ZSkpOworKyAgfSBl bHNlIHsKKysgICAgU3ViNjQoc3AsIHNwLCBPcGVyYW5kKHN0YWNrX3Bhc3NlZF9hcmd1bWVudHMg KiBrUG9pbnRlclNpemUpKTsKKysgIH0KKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6UHJl cGFyZUNhbGxDRnVuY3Rpb24oaW50IG51bV9yZWdfYXJndW1lbnRzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gpIHsKKysgIFByZXBh cmVDYWxsQ0Z1bmN0aW9uKG51bV9yZWdfYXJndW1lbnRzLCAwLCBzY3JhdGNoKTsKKyt9CisrCisr dm9pZCBUdXJib0Fzc2VtYmxlcjo6Q2FsbENGdW5jdGlvbihFeHRlcm5hbFJlZmVyZW5jZSBmdW5j dGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fcmVnX2Fy Z3VtZW50cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fZG91 YmxlX2FyZ3VtZW50cykgeworKyAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1w b2xpbmVfcG9vbCh0aGlzKTsKKysgIGxpKHQ2LCBmdW5jdGlvbik7CisrICBDYWxsQ0Z1bmN0aW9u SGVscGVyKHQ2LCBudW1fcmVnX2FyZ3VtZW50cywgbnVtX2RvdWJsZV9hcmd1bWVudHMpOworK30K KysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpDYWxsQ0Z1bmN0aW9uKFJlZ2lzdGVyIGZ1bmN0aW9u LCBpbnQgbnVtX3JlZ19hcmd1bWVudHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgbnVtX2RvdWJsZV9hcmd1bWVudHMpIHsKKysgIENhbGxDRnVuY3Rpb25IZWxwZXIo ZnVuY3Rpb24sIG51bV9yZWdfYXJndW1lbnRzLCBudW1fZG91YmxlX2FyZ3VtZW50cyk7CisrfQor KworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGxDRnVuY3Rpb24oRXh0ZXJuYWxSZWZlcmVuY2Ug ZnVuY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX2Fy Z3VtZW50cykgeworKyAgQ2FsbENGdW5jdGlvbihmdW5jdGlvbiwgbnVtX2FyZ3VtZW50cywgMCk7 CisrfQorKworK3ZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNhbGxDRnVuY3Rpb24oUmVnaXN0ZXIgZnVu Y3Rpb24sIGludCBudW1fYXJndW1lbnRzKSB7CisrICBDYWxsQ0Z1bmN0aW9uKGZ1bmN0aW9uLCBu dW1fYXJndW1lbnRzLCAwKTsKKyt9CisrCisrdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q2FsbENGdW5j dGlvbkhlbHBlcihSZWdpc3RlciBmdW5jdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBudW1fcmVnX2FyZ3VtZW50cywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fZG91YmxlX2FyZ3VtZW50cykgeworKyAg RENIRUNLX0xFKG51bV9yZWdfYXJndW1lbnRzICsgbnVtX2RvdWJsZV9hcmd1bWVudHMsIGtNYXhD UGFyYW1ldGVycyk7CisrICBEQ0hFQ0soaGFzX2ZyYW1lKCkpOworKyAgLy8gTWFrZSBzdXJlIHRo YXQgdGhlIHN0YWNrIGlzIGFsaWduZWQgYmVmb3JlIGNhbGxpbmcgYSBDIGZ1bmN0aW9uIHVubGVz cworKyAgLy8gcnVubmluZyBpbiB0aGUgc2ltdWxhdG9yLiBUaGUgc2ltdWxhdG9yIGhhcyBpdHMg b3duIGFsaWdubWVudCBjaGVjayB3aGljaAorKyAgLy8gcHJvdmlkZXMgbW9yZSBpbmZvcm1hdGlv bi4KKysgIC8vIFRoZSBhcmd1bWVudCBzdG90cyBhcmUgcHJlc3VtZWQgdG8gaGF2ZSBiZWVuIHNl dCB1cCBieQorKyAgLy8gUHJlcGFyZUNhbGxDRnVuY3Rpb24uCisrCisrI2lmIFY4X0hPU1RfQVJD SF9SSVNDVjY0CisrICBpZiAoZW1pdF9kZWJ1Z19jb2RlKCkpIHsKKysgICAgaW50IGZyYW1lX2Fs aWdubWVudCA9IGJhc2U6Ok9TOjpBY3RpdmF0aW9uRnJhbWVBbGlnbm1lbnQoKTsKKysgICAgaW50 IGZyYW1lX2FsaWdubWVudF9tYXNrID0gZnJhbWVfYWxpZ25tZW50IC0gMTsKKysgICAgaWYgKGZy YW1lX2FsaWdubWVudCA+IGtQb2ludGVyU2l6ZSkgeworKyAgICAgIERDSEVDSyhiYXNlOjpiaXRz OjpJc1Bvd2VyT2ZUd28oZnJhbWVfYWxpZ25tZW50KSk7CisrICAgICAgTGFiZWwgYWxpZ25tZW50 X2FzX2V4cGVjdGVkOworKyAgICAgIHsKKysgICAgICAgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3Bl IHRlbXBzKHRoaXMpOworKyAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUo KTsKKysgICAgICAgIEFuZChzY3JhdGNoLCBzcCwgT3BlcmFuZChmcmFtZV9hbGlnbm1lbnRfbWFz aykpOworKyAgICAgICAgQnJhbmNoKCZhbGlnbm1lbnRfYXNfZXhwZWN0ZWQsIGVxLCBzY3JhdGNo LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAgICAgfQorKyAgICAgIC8vIERvbid0IHVzZSBDaGVj ayBoZXJlLCBhcyBpdCB3aWxsIGNhbGwgUnVudGltZV9BYm9ydCBwb3NzaWJseQorKyAgICAgIC8v IHJlLWVudGVyaW5nIGhlcmUuCisrICAgICAgZWJyZWFrKCk7CisrICAgICAgYmluZCgmYWxpZ25t ZW50X2FzX2V4cGVjdGVkKTsKKysgICAgfQorKyAgfQorKyNlbmRpZiAgLy8gVjhfSE9TVF9BUkNI X1JJU0NWNjQKKysKKysgIC8vIEp1c3QgY2FsbCBkaXJlY3RseS4gVGhlIGZ1bmN0aW9uIGNhbGxl ZCBjYW5ub3QgY2F1c2UgYSBHQywgb3IKKysgIC8vIGFsbG93IHByZWVtcHRpb24sIHNvIHRoZSBy ZXR1cm4gYWRkcmVzcyBpbiB0aGUgbGluayByZWdpc3RlcgorKyAgLy8gc3RheXMgY29ycmVjdC4K KysgIHsKKysgICAgQmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJsb2NrX3RyYW1wb2xpbmVfcG9v bCh0aGlzKTsKKysgICAgaWYgKGZ1bmN0aW9uICE9IHQ2KSB7CisrICAgICAgbXYodDYsIGZ1bmN0 aW9uKTsKKysgICAgICBmdW5jdGlvbiA9IHQ2OworKyAgICB9CisrCisrICAgIC8vIFNhdmUgdGhl IGZyYW1lIHBvaW50ZXIgYW5kIFBDIHNvIHRoYXQgdGhlIHN0YWNrIGxheW91dCByZW1haW5zCisr ICAgIC8vIGl0ZXJhYmxlLCBldmVuIHdpdGhvdXQgYW4gRXhpdEZyYW1lIHdoaWNoIG5vcm1hbGx5 IGV4aXN0cyBiZXR3ZWVuIEpTCisrICAgIC8vIGFuZCBDIGZyYW1lcy4KKysgICAgLy8gJ3QnIHJl Z2lzdGVycyBhcmUgY2FsbGVyLXNhdmVkIHNvIHRoaXMgaXMgc2FmZSBhcyBhIHNjcmF0Y2ggcmVn aXN0ZXIuCisrICAgIFJlZ2lzdGVyIHBjX3NjcmF0Y2ggPSB0MTsKKysgICAgUmVnaXN0ZXIgc2Ny YXRjaCA9IHQyOworKyAgICBEQ0hFQ0soIUFyZUFsaWFzZWQocGNfc2NyYXRjaCwgc2NyYXRjaCwg ZnVuY3Rpb24pKTsKKysKKysgICAgYXVpcGMocGNfc2NyYXRjaCwgMCk7CisrICAgIC8vIEZJWE1F KFJJU0NWKTogRG9lcyB0aGlzIG5lZWQgYW4gb2Zmc2V0PyBJdCBzZWVtcyBsaWtlIHRoaXMgc2hv dWxkIGJlIHRoZQorKyAgICAvLyBQQyBvZiB0aGUgY2FsbCwgYnV0IE1JUFMgZG9lcyBub3Qgc2Vl bSB0byBkbyB0aGF0LgorKworKyAgICAvLyBTZWUgeDY0IGNvZGUgZm9yIHJlYXNvbmluZyBhYm91 dCBob3cgdG8gYWRkcmVzcyB0aGUgaXNvbGF0ZSBkYXRhIGZpZWxkcy4KKysgICAgaWYgKHJvb3Rf YXJyYXlfYXZhaWxhYmxlKCkpIHsKKysgICAgICBTZChwY19zY3JhdGNoLCBNZW1PcGVyYW5kKGtS b290UmVnaXN0ZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc29sYXRlRGF0 YTo6ZmFzdF9jX2NhbGxfY2FsbGVyX3BjX29mZnNldCgpKSk7CisrICAgICAgU2QoZnAsIE1lbU9w ZXJhbmQoa1Jvb3RSZWdpc3RlciwKKysgICAgICAgICAgICAgICAgICAgICAgICBJc29sYXRlRGF0 YTo6ZmFzdF9jX2NhbGxfY2FsbGVyX2ZwX29mZnNldCgpKSk7CisrICAgIH0gZWxzZSB7CisrICAg ICAgRENIRUNLX05PVF9OVUxMKGlzb2xhdGUoKSk7CisrICAgICAgbGkoc2NyYXRjaCwgRXh0ZXJu YWxSZWZlcmVuY2U6OmZhc3RfY19jYWxsX2NhbGxlcl9wY19hZGRyZXNzKGlzb2xhdGUoKSkpOwor KyAgICAgIFNkKHBjX3NjcmF0Y2gsIE1lbU9wZXJhbmQoc2NyYXRjaCkpOworKyAgICAgIGxpKHNj cmF0Y2gsIEV4dGVybmFsUmVmZXJlbmNlOjpmYXN0X2NfY2FsbF9jYWxsZXJfZnBfYWRkcmVzcyhp c29sYXRlKCkpKTsKKysgICAgICBTZChmcCwgTWVtT3BlcmFuZChzY3JhdGNoKSk7CisrICAgIH0K KysKKysgICAgQ2FsbChmdW5jdGlvbik7CisrCisrICAgIGlmIChpc29sYXRlKCkgIT0gbnVsbHB0 cikgeworKyAgICAgIC8vIFdlIGRvbid0IHVuc2V0IHRoZSBQQzsgdGhlIEZQIGlzIHRoZSBzb3Vy Y2Ugb2YgdHJ1dGguCisrICAgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHQxOworKyAgICAgIGxpKHNj cmF0Y2gsIEV4dGVybmFsUmVmZXJlbmNlOjpmYXN0X2NfY2FsbF9jYWxsZXJfZnBfYWRkcmVzcyhp c29sYXRlKCkpKTsKKysgICAgICBTZCh6ZXJvX3JlZywgTWVtT3BlcmFuZChzY3JhdGNoKSk7Cisr ICAgIH0KKysgIH0KKysKKysgIGludCBzdGFja19wYXNzZWRfYXJndW1lbnRzID0KKysgICAgICBD YWxjdWxhdGVTdGFja1Bhc3NlZERXb3JkcyhudW1fcmVnX2FyZ3VtZW50cywgbnVtX2RvdWJsZV9h cmd1bWVudHMpOworKworKyAgaWYgKGJhc2U6Ok9TOjpBY3RpdmF0aW9uRnJhbWVBbGlnbm1lbnQo KSA+IGtQb2ludGVyU2l6ZSkgeworKyAgICBMZChzcCwgTWVtT3BlcmFuZChzcCwgc3RhY2tfcGFz c2VkX2FyZ3VtZW50cyAqIGtQb2ludGVyU2l6ZSkpOworKyAgfSBlbHNlIHsKKysgICAgQWRkNjQo c3AsIHNwLCBPcGVyYW5kKHN0YWNrX3Bhc3NlZF9hcmd1bWVudHMgKiBrUG9pbnRlclNpemUpKTsK KysgIH0KKyt9CisrCisrI3VuZGVmIEJSQU5DSF9BUkdTX0NIRUNLCisrCisrdm9pZCBUdXJib0Fz c2VtYmxlcjo6Q2hlY2tQYWdlRmxhZyhSZWdpc3RlciBvYmplY3QsIFJlZ2lzdGVyIHNjcmF0Y2gs IGludCBtYXNrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZGl0aW9u IGNjLCBMYWJlbCogY29uZGl0aW9uX21ldCkgeworKyAgQW5kKHNjcmF0Y2gsIG9iamVjdCwgT3Bl cmFuZCh+a1BhZ2VBbGlnbm1lbnRNYXNrKSk7CisrICBMZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNj cmF0Y2gsIEJhc2ljTWVtb3J5Q2h1bms6OmtGbGFnc09mZnNldCkpOworKyAgQW5kKHNjcmF0Y2gs IHNjcmF0Y2gsIE9wZXJhbmQobWFzaykpOworKyAgQnJhbmNoKGNvbmRpdGlvbl9tZXQsIGNjLCBz Y3JhdGNoLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrfQorKworK1JlZ2lzdGVyIEdldFJlZ2lzdGVy VGhhdElzTm90T25lT2YoUmVnaXN0ZXIgcmVnMSwgUmVnaXN0ZXIgcmVnMiwgUmVnaXN0ZXIgcmVn MywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJlZzQsIFJl Z2lzdGVyIHJlZzUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl ciByZWc2KSB7CisrICBSZWdMaXN0IHJlZ3MgPSAwOworKyAgaWYgKHJlZzEuaXNfdmFsaWQoKSkg cmVncyB8PSByZWcxLmJpdCgpOworKyAgaWYgKHJlZzIuaXNfdmFsaWQoKSkgcmVncyB8PSByZWcy LmJpdCgpOworKyAgaWYgKHJlZzMuaXNfdmFsaWQoKSkgcmVncyB8PSByZWczLmJpdCgpOworKyAg aWYgKHJlZzQuaXNfdmFsaWQoKSkgcmVncyB8PSByZWc0LmJpdCgpOworKyAgaWYgKHJlZzUuaXNf dmFsaWQoKSkgcmVncyB8PSByZWc1LmJpdCgpOworKyAgaWYgKHJlZzYuaXNfdmFsaWQoKSkgcmVn cyB8PSByZWc2LmJpdCgpOworKworKyAgY29uc3QgUmVnaXN0ZXJDb25maWd1cmF0aW9uKiBjb25m aWcgPSBSZWdpc3RlckNvbmZpZ3VyYXRpb246OkRlZmF1bHQoKTsKKysgIGZvciAoaW50IGkgPSAw OyBpIDwgY29uZmlnLT5udW1fYWxsb2NhdGFibGVfZ2VuZXJhbF9yZWdpc3RlcnMoKTsgKytpKSB7 CisrICAgIGludCBjb2RlID0gY29uZmlnLT5HZXRBbGxvY2F0YWJsZUdlbmVyYWxDb2RlKGkpOwor KyAgICBSZWdpc3RlciBjYW5kaWRhdGUgPSBSZWdpc3Rlcjo6ZnJvbV9jb2RlKGNvZGUpOworKyAg ICBpZiAocmVncyAmIGNhbmRpZGF0ZS5iaXQoKSkgY29udGludWU7CisrICAgIHJldHVybiBjYW5k aWRhdGU7CisrICB9CisrICBVTlJFQUNIQUJMRSgpOworK30KKysKKyt2b2lkIFR1cmJvQXNzZW1i bGVyOjpDb21wdXRlQ29kZVN0YXJ0QWRkcmVzcyhSZWdpc3RlciBkc3QpIHsKKysgIC8vIFRoaXMg cHVzaCBvbiByYSBhbmQgdGhlIHBvcCBiZWxvdyB0b2dldGhlciBlbnN1cmUgdGhhdCB3ZSByZXN0 b3JlIHRoZQorKyAgLy8gcmVnaXN0ZXIgcmEsIHdoaWNoIGlzIG5lZWRlZCB3aGlsZSBjb21wdXRp bmcgdGhlIGNvZGUgc3RhcnQgYWRkcmVzcy4KKysgIHB1c2gocmEpOworKworKyAgYXVpcGMocmEs IDApOworKyAgYWRkaShyYSwgcmEsIGtJbnN0clNpemUgKiAyKTsgIC8vIHJhID0gYWRkcmVzcyBv ZiBsaQorKyAgaW50IHBjID0gcGNfb2Zmc2V0KCk7CisrICBsaShkc3QsIE9wZXJhbmQocGMpKTsK KysgIFN1YjY0KGRzdCwgcmEsIGRzdCk7CisrCisrICBwb3AocmEpOyAgLy8gUmVzdG9yZSByYQor K30KKysKKyt2b2lkIFR1cmJvQXNzZW1ibGVyOjpSZXNldFNwZWN1bGF0aW9uUG9pc29uUmVnaXN0 ZXIoKSB7CisrICBsaShrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3RlciwgLTEpOworK30KKysKKyt2 b2lkIFR1cmJvQXNzZW1ibGVyOjpDYWxsRm9yRGVvcHRpbWl6YXRpb24oQWRkcmVzcyB0YXJnZXQs IGludCBkZW9wdF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGFiZWwqIGV4aXQsIERlb3B0aW1pemVLaW5kIGtpbmQpIHsKKysgIFVTRShleGl0LCBraW5k KTsKKysgIE5vUm9vdEFycmF5U2NvcGUgbm9fcm9vdF9hcnJheSh0aGlzKTsKKysKKysgIC8vIFNh dmUgdGhlIGRlb3B0IGlkIGluIGtSb290UmVnaXN0ZXIgKHdlIGRvbid0IG5lZWQgdGhlIHJvb3Rz IGFycmF5IGZyb20KKysgIC8vIG5vdyBvbikuCisrICBEQ0hFQ0tfTEUoZGVvcHRfaWQsIDB4RkZG Rik7CisrICBsaShrUm9vdFJlZ2lzdGVyLCBkZW9wdF9pZCk7CisrICBDYWxsKHRhcmdldCwgUmVs b2NJbmZvOjpSVU5USU1FX0VOVFJZKTsKKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIGludGVybmFs CisrfSAgLy8gbmFtZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBWOF9UQVJHRVRfQVJDSF9SSVND VjY0CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9yaXNjdjY0L21hY3JvLWFzc2VtYmxlci1yaXNjdjY0 LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL3Jpc2N2NjQv bWFjcm8tYXNzZW1ibGVyLXJpc2N2NjQuaAorQEAgLTAsMCArMSwxMTgxIEBACisrLy8gQ29weXJp Z2h0IDIwMTIgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysv LyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl bnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZu ZGVmIElOQ0xVREVEX0ZST01fTUFDUk9fQVNTRU1CTEVSX0gKKysjZXJyb3IgVGhpcyBoZWFkZXIg bXVzdCBiZSBpbmNsdWRlZCB2aWEgbWFjcm8tYXNzZW1ibGVyLmgKKysjZW5kaWYKKysKKysjaWZu ZGVmIFY4X0NPREVHRU5fUklTQ1ZfTUFDUk9fQVNTRU1CTEVSX1JJU0NWX0hfCisrI2RlZmluZSBW OF9DT0RFR0VOX1JJU0NWX01BQ1JPX0FTU0VNQkxFUl9SSVNDVl9IXworKworKyNpbmNsdWRlICJz cmMvY29kZWdlbi9hc3NlbWJsZXIuaCIKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9h c3NlbWJsZXItcmlzY3Y2NC5oIgorKyNpbmNsdWRlICJzcmMvY29tbW9uL2dsb2JhbHMuaCIKKysK KytuYW1lc3BhY2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7CisrCisrLy8gRm9yd2FyZCBk ZWNsYXJhdGlvbnMuCisrZW51bSBjbGFzcyBBYm9ydFJlYXNvbiA6IHVpbnQ4X3Q7CisrCisrLy8g UmVzZXJ2ZWQgUmVnaXN0ZXIgVXNhZ2UgU3VtbWFyeS4KKysvLworKy8vIFJlZ2lzdGVycyB0NSwg dDYsIGFuZCB0MyBhcmUgcmVzZXJ2ZWQgZm9yIHVzZSBieSB0aGUgTWFjcm9Bc3NlbWJsZXIuCisr Ly8KKysvLyBUaGUgcHJvZ3JhbW1lciBzaG91bGQga25vdyB0aGF0IHRoZSBNYWNyb0Fzc2VtYmxl ciBtYXkgY2xvYmJlciB0aGVzZSB0aHJlZSwKKysvLyBidXQgd29uJ3QgdG91Y2ggb3RoZXIgcmVn aXN0ZXJzIGV4Y2VwdCBpbiBzcGVjaWFsIGNhc2VzLgorKy8vCisrLy8gRklYTUUoUklTQ1YpOiBD YW5ub3QgZmluZCBpbmZvIGFib3V0IHRoaXMgQUJJLiBXZSBjaG9zZSB0NiBmb3Igbm93LgorKy8v IFBlciB0aGUgUklTQy1WIEFCSSwgcmVnaXN0ZXIgdDYgbXVzdCBiZSB1c2VkIGZvciBpbmRpcmVj dCBmdW5jdGlvbiBjYWxsCisrLy8gdmlhICdqYWxyIHQ2JyBvciAnanIgdDYnIGluc3RydWN0aW9u cy4gVGhpcyBpcyByZWxpZWQgdXBvbiBieSBnY2Mgd2hlbgorKy8vIHRyeWluZyB0byB1cGRhdGUg Z3AgcmVnaXN0ZXIgZm9yIHBvc2l0aW9uLWluZGVwZW5kZW50LWNvZGUuIFdoZW5ldmVyCisrLy8g UklTQy1WIGdlbmVyYXRlZCBjb2RlIGNhbGxzIEMgY29kZSwgaXQgbXVzdCBiZSB2aWEgdDYgcmVn aXN0ZXIuCisrCisrLy8gRmxhZ3MgdXNlZCBmb3IgTGVhdmVFeGl0RnJhbWUgZnVuY3Rpb24uCisr ZW51bSBMZWF2ZUV4aXRGcmFtZU1vZGUgeyBFTUlUX1JFVFVSTiA9IHRydWUsIE5PX0VNSVRfUkVU VVJOID0gZmFsc2UgfTsKKysKKysvLyBGbGFncyB1c2VkIGZvciB0aGUgbGkgbWFjcm8tYXNzZW1i bGVyIGZ1bmN0aW9uLgorK2VudW0gTGlGbGFncyB7CisrICAvLyBJZiB0aGUgY29uc3RhbnQgdmFs dWUgY2FuIGJlIHJlcHJlc2VudGVkIGluIGp1c3QgMTYgYml0cywgdGhlbgorKyAgLy8gb3B0aW1p emUgdGhlIGxpIHRvIHVzZSBhIHNpbmdsZSBpbnN0cnVjdGlvbiwgcmF0aGVyIHRoYW4gbHVpL29y aS9zbGxpCisrICAvLyBzZXF1ZW5jZS4gQSBudW1iZXIgb2Ygb3RoZXIgb3B0aW1pemF0aW9ucyB0 aGF0IGVtaXRzIGxlc3MgdGhhbgorKyAgLy8gbWF4aW11bSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25z IGV4aXN0cy4KKysgIE9QVElNSVpFX1NJWkUgPSAwLAorKyAgLy8gQWx3YXlzIHVzZSA4IGluc3Ry dWN0aW9ucyAobHVpL2FkZGkvc2xsaXcgc2VxdWVuY2UpLCBldmVuIGlmIHRoZQorKyAgLy8gY29u c3RhbnQKKysgIC8vIGNvdWxkIGJlIGxvYWRlZCB3aXRoIGp1c3Qgb25lLCBzbyB0aGF0IHRoaXMg dmFsdWUgaXMgcGF0Y2hhYmxlIGxhdGVyLgorKyAgQ09OU1RBTlRfU0laRSA9IDEsCisrICAvLyBG b3IgYWRkcmVzcyBsb2FkcyA4IGluc3RydWN0aW9uIGFyZSByZXF1aXJlZC4gVXNlZCB0byBtYXJr CisrICAvLyBjb25zdGFudCBsb2FkIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGFkZHJlc3Mgd2l0aG91 dCByZWxvY2F0aW9uCisrICAvLyBpbmZvcm1hdGlvbi4gSXQgZW5zdXJlcyBwcmVkaWN0YWJsZSBj b2RlIHNpemUsIHNvIHNwZWNpZmljIHNpdGVzCisrICAvLyBpbiBjb2RlIGFyZSBwYXRjaGFibGUu CisrICBBRERSRVNTX0xPQUQgPSAyCisrfTsKKysKKytlbnVtIFJlbWVtYmVyZWRTZXRBY3Rpb24g eyBFTUlUX1JFTUVNQkVSRURfU0VULCBPTUlUX1JFTUVNQkVSRURfU0VUIH07CisrZW51bSBTbWlD aGVjayB7IElOTElORV9TTUlfQ0hFQ0ssIE9NSVRfU01JX0NIRUNLIH07CisrZW51bSBSQVN0YXR1 cyB7IGtSQUhhc05vdEJlZW5TYXZlZCwga1JBSGFzQmVlblNhdmVkIH07CisrCisrUmVnaXN0ZXIg R2V0UmVnaXN0ZXJUaGF0SXNOb3RPbmVPZihSZWdpc3RlciByZWcxLCBSZWdpc3RlciByZWcyID0g bm9fcmVnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVn MyA9IG5vX3JlZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy IHJlZzQgPSBub19yZWcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciByZWc1ID0gbm9fcmVnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVnaXN0ZXIgcmVnNiA9IG5vX3JlZyk7CisrCisrLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysv LyBTdGF0aWMgaGVscGVyIGZ1bmN0aW9ucy4KKysKKysjaWYgZGVmaW5lZChWOF9UQVJHRVRfTElU VExFX0VORElBTikKKysjZGVmaW5lIFNtaVdvcmRPZmZzZXQob2Zmc2V0KSAob2Zmc2V0ICsga1Bv aW50ZXJTaXplIC8gMikKKysjZWxzZQorKyNkZWZpbmUgU21pV29yZE9mZnNldChvZmZzZXQpIG9m ZnNldAorKyNlbmRpZgorKworKy8vIEdlbmVyYXRlIGEgTWVtT3BlcmFuZCBmb3IgbG9hZGluZyBh IGZpZWxkIGZyb20gYW4gb2JqZWN0LgorK2lubGluZSBNZW1PcGVyYW5kIEZpZWxkTWVtT3BlcmFu ZChSZWdpc3RlciBvYmplY3QsIGludCBvZmZzZXQpIHsKKysgIHJldHVybiBNZW1PcGVyYW5kKG9i amVjdCwgb2Zmc2V0IC0ga0hlYXBPYmplY3RUYWcpOworK30KKysKKysvLyBHZW5lcmF0ZSBhIE1l bU9wZXJhbmQgZm9yIHN0b3JpbmcgYXJndW1lbnRzIDUuLk4gb24gdGhlIHN0YWNrCisrLy8gd2hl biBjYWxsaW5nIENhbGxDRnVuY3Rpb24oKS4KKysvLyBUT0RPKHBsaW5kKTogQ3VycmVudGx5IE9O TFkgdXNlZCBmb3IgTzMyLiBTaG91bGQgYmUgZml4ZWQgZm9yCisrLy8gICAgICAgICAgICAgIG42 NCwgYW5kIHVzZWQgaW4gUmVnRXhwIGNvZGUsIGFuZCBvdGhlciBwbGFjZXMKKysvLyAgICAgICAg ICAgICAgd2l0aCBtb3JlIHRoYW4gOCBhcmd1bWVudHMuCisraW5saW5lIE1lbU9wZXJhbmQgQ0Z1 bmN0aW9uQXJndW1lbnRPcGVyYW5kKGludCBpbmRleCkgeworKyAgRENIRUNLX0dUKGluZGV4LCBr Q0FyZ1Nsb3RDb3VudCk7CisrICAvLyBBcmd1bWVudCA1IHRha2VzIHRoZSBzbG90IGp1c3QgcGFz dCB0aGUgZm91ciBBcmctc2xvdHMuCisrICBpbnQgb2Zmc2V0ID0gKGluZGV4IC0gNSkgKiBrUG9p bnRlclNpemUgKyBrQ0FyZ3NTbG90c1NpemU7CisrICByZXR1cm4gTWVtT3BlcmFuZChzcCwgb2Zm c2V0KTsKKyt9CisrCisrY2xhc3MgVjhfRVhQT1JUX1BSSVZBVEUgVHVyYm9Bc3NlbWJsZXIgOiBw dWJsaWMgVHVyYm9Bc3NlbWJsZXJCYXNlIHsKKysgcHVibGljOgorKyAgdXNpbmcgVHVyYm9Bc3Nl bWJsZXJCYXNlOjpUdXJib0Fzc2VtYmxlckJhc2U7CisrCisrICAvLyBBY3RpdmF0aW9uIHN1cHBv cnQuCisrICB2b2lkIEVudGVyRnJhbWUoU3RhY2tGcmFtZTo6VHlwZSB0eXBlKTsKKysgIHZvaWQg RW50ZXJGcmFtZShTdGFja0ZyYW1lOjpUeXBlIHR5cGUsIGJvb2wgbG9hZF9jb25zdGFudF9wb29s X3BvaW50ZXJfcmVnKSB7CisrICAgIC8vIE91dC1vZi1saW5lIGNvbnN0YW50IHBvb2wgbm90IGlt cGxlbWVudGVkIG9uIFJJU0MtVi4KKysgICAgVU5SRUFDSEFCTEUoKTsKKysgIH0KKysgIHZvaWQg TGVhdmVGcmFtZShTdGFja0ZyYW1lOjpUeXBlIHR5cGUpOworKworKyAgLy8gR2VuZXJhdGVzIGZ1 bmN0aW9uIGFuZCBzdHViIHByb2xvZ3VlIGNvZGUuCisrICB2b2lkIFN0dWJQcm9sb2d1ZShTdGFj a0ZyYW1lOjpUeXBlIHR5cGUpOworKyAgdm9pZCBQcm9sb2d1ZSgpOworKworKyAgdm9pZCBJbml0 aWFsaXplUm9vdFJlZ2lzdGVyKCkgeworKyAgICBFeHRlcm5hbFJlZmVyZW5jZSBpc29sYXRlX3Jv b3QgPSBFeHRlcm5hbFJlZmVyZW5jZTo6aXNvbGF0ZV9yb290KGlzb2xhdGUoKSk7CisrICAgIGxp KGtSb290UmVnaXN0ZXIsIE9wZXJhbmQoaXNvbGF0ZV9yb290KSk7CisrICB9CisrCisrICAvLyBK dW1wIHVuY29uZGl0aW9uYWxseSB0byBnaXZlbiBsYWJlbC4KKysgIHZvaWQgam1wKExhYmVsKiBM KSB7IEJyYW5jaChMKTsgfQorKworKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgLy8gRGVidWdn aW5nLgorKworKyAgdm9pZCBUcmFwKCkgb3ZlcnJpZGU7CisrICB2b2lkIERlYnVnQnJlYWsoKSBv dmVycmlkZTsKKysKKysgIC8vIENhbGxzIEFib3J0KG1zZykgaWYgdGhlIGNvbmRpdGlvbiBjYyBp cyBub3Qgc2F0aXNmaWVkLgorKyAgLy8gVXNlIC0tZGVidWdfY29kZSB0byBlbmFibGUuCisrICB2 b2lkIEFzc2VydChDb25kaXRpb24gY2MsIEFib3J0UmVhc29uIHJlYXNvbiwgUmVnaXN0ZXIgcnMs IE9wZXJhbmQgcnQpOworKworKyAgLy8gTGlrZSBBc3NlcnQoKSwgYnV0IGFsd2F5cyBlbmFibGVk LgorKyAgdm9pZCBDaGVjayhDb25kaXRpb24gY2MsIEFib3J0UmVhc29uIHJlYXNvbiwgUmVnaXN0 ZXIgcnMsIE9wZXJhbmQgcnQpOworKworKyAgLy8gUHJpbnQgYSBtZXNzYWdlIHRvIHN0ZG91dCBh bmQgYWJvcnQgZXhlY3V0aW9uLgorKyAgdm9pZCBBYm9ydChBYm9ydFJlYXNvbiBtc2cpOworKwor KyAgLy8gQXJndW1lbnRzIG1hY3Jvcy4KKysjZGVmaW5lIENPTkRfVFlQRURfQVJHUyBDb25kaXRp b24gY29uZCwgUmVnaXN0ZXIgcjEsIGNvbnN0IE9wZXJhbmQgJnIyCisrI2RlZmluZSBDT05EX0FS R1MgY29uZCwgcjEsIHIyCisrCisrICAvLyBDYXNlcyB3aGVuIHJlbG9jYXRpb24gaXMgbm90IG5l ZWRlZC4KKysjZGVmaW5lIERFQ0xBUkVfTk9SRUxPQ19QUk9UT1RZUEUoTmFtZSwgdGFyZ2V0X3R5 cGUpIFwKKysgIHZvaWQgTmFtZSh0YXJnZXRfdHlwZSB0YXJnZXQpOyAgICAgICAgICAgICAgICAg ICAgIFwKKysgIHZvaWQgTmFtZSh0YXJnZXRfdHlwZSB0YXJnZXQsIENPTkRfVFlQRURfQVJHUyk7 CisrCisrI2RlZmluZSBERUNMQVJFX0JSQU5DSF9QUk9UT1RZUEVTKE5hbWUpICAgXAorKyAgREVD TEFSRV9OT1JFTE9DX1BST1RPVFlQRShOYW1lLCBMYWJlbCopIFwKKysgIERFQ0xBUkVfTk9SRUxP Q19QUk9UT1RZUEUoTmFtZSwgaW50MzJfdCkKKysKKysgIERFQ0xBUkVfQlJBTkNIX1BST1RPVFlQ RVMoQnJhbmNoKQorKyAgREVDTEFSRV9CUkFOQ0hfUFJPVE9UWVBFUyhCcmFuY2hBbmRMaW5rKQor KyAgREVDTEFSRV9CUkFOQ0hfUFJPVE9UWVBFUyhCcmFuY2hTaG9ydCkKKysKKysjdW5kZWYgREVD TEFSRV9CUkFOQ0hfUFJPVE9UWVBFUworKyN1bmRlZiBDT05EX1RZUEVEX0FSR1MKKysjdW5kZWYg Q09ORF9BUkdTCisrCisrICBpbmxpbmUgdm9pZCBOZWdhdGVCb29sKFJlZ2lzdGVyIHJkLCBSZWdp c3RlciBycykgeyBYb3IocmQsIHJzLCAxKTsgfQorKworKyAgLy8gQ29tcGFyZSBmbG9hdCwgaWYg YW55IG9wZXJhbmQgaXMgTmFOLCByZXN1bHQgaXMgZmFsc2UgZXhjZXB0IGZvciBORQorKyAgdm9p ZCBDb21wYXJlRjMyKFJlZ2lzdGVyIHJkLCBGUFVDb25kaXRpb24gY2MsIEZQVVJlZ2lzdGVyIGNt cDEsCisrICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgY21wMik7CisrICAvLyBDb21wYXJl IGRvdWJsZSwgaWYgYW55IG9wZXJhbmQgaXMgTmFOLCByZXN1bHQgaXMgZmFsc2UgZXhjZXB0IGZv ciBORQorKyAgdm9pZCBDb21wYXJlRjY0KFJlZ2lzdGVyIHJkLCBGUFVDb25kaXRpb24gY2MsIEZQ VVJlZ2lzdGVyIGNtcDEsCisrICAgICAgICAgICAgICAgICAgRlBVUmVnaXN0ZXIgY21wMik7Cisr ICB2b2lkIENvbXBhcmVJc05hbkYzMihSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgY21wMSwgRlBV UmVnaXN0ZXIgY21wMik7CisrICB2b2lkIENvbXBhcmVJc05hbkY2NChSZWdpc3RlciByZCwgRlBV UmVnaXN0ZXIgY21wMSwgRlBVUmVnaXN0ZXIgY21wMik7CisrCisrICAvLyBGbG9hdGluZyBwb2lu dCBicmFuY2hlcworKyAgdm9pZCBCcmFuY2hUcnVlU2hvcnRGKFJlZ2lzdGVyIHJzLCBMYWJlbCog dGFyZ2V0KTsKKysgIHZvaWQgQnJhbmNoRmFsc2VTaG9ydEYoUmVnaXN0ZXIgcnMsIExhYmVsKiB0 YXJnZXQpOworKworKyAgdm9pZCBCcmFuY2hUcnVlRihSZWdpc3RlciBycywgTGFiZWwqIHRhcmdl dCk7CisrICB2b2lkIEJyYW5jaEZhbHNlRihSZWdpc3RlciBycywgTGFiZWwqIHRhcmdldCk7Cisr CisrICB2b2lkIEJyYW5jaChMYWJlbCogTCwgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJzLCBS b290SW5kZXggaW5kZXgpOworKworKyAgc3RhdGljIGludCBJbnN0ckNvdW50Rm9yTGk2NEJpdChp bnQ2NF90IHZhbHVlKTsKKysgIGlubGluZSB2b2lkIExpTG93ZXIzMkJpdEhlbHBlcihSZWdpc3Rl ciByZCwgT3BlcmFuZCBqKTsKKysgIHZvaWQgbGlfb3B0aW1pemVkKFJlZ2lzdGVyIHJkLCBPcGVy YW5kIGosIExpRmxhZ3MgbW9kZSA9IE9QVElNSVpFX1NJWkUpOworKyAgLy8gTG9hZCBpbnQzMiBp biB0aGUgcmQgcmVnaXN0ZXIuCisrICB2b2lkIGxpKFJlZ2lzdGVyIHJkLCBPcGVyYW5kIGosIExp RmxhZ3MgbW9kZSA9IE9QVElNSVpFX1NJWkUpOworKyAgaW5saW5lIHZvaWQgbGkoUmVnaXN0ZXIg cmQsIGludDY0X3QgaiwgTGlGbGFncyBtb2RlID0gT1BUSU1JWkVfU0laRSkgeworKyAgICBsaShy ZCwgT3BlcmFuZChqKSwgbW9kZSk7CisrICB9CisrCisrICB2b2lkIGxpKFJlZ2lzdGVyIGRzdCwg SGFuZGxlPEhlYXBPYmplY3Q+IHZhbHVlLCBMaUZsYWdzIG1vZGUgPSBPUFRJTUlaRV9TSVpFKTsK KysgIHZvaWQgbGkoUmVnaXN0ZXIgZHN0LCBFeHRlcm5hbFJlZmVyZW5jZSB2YWx1ZSwgTGlGbGFn cyBtb2RlID0gT1BUSU1JWkVfU0laRSk7CisrICB2b2lkIGxpKFJlZ2lzdGVyIGRzdCwgY29uc3Qg U3RyaW5nQ29uc3RhbnRCYXNlKiBzdHJpbmcsCisrICAgICAgICAgIExpRmxhZ3MgbW9kZSA9IE9Q VElNSVpFX1NJWkUpOworKworKyAgdm9pZCBMb2FkRnJvbUNvbnN0YW50c1RhYmxlKFJlZ2lzdGVy IGRlc3RpbmF0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb25zdGFu dF9pbmRleCkgb3ZlcnJpZGU7CisrICB2b2lkIExvYWRSb290UmVnaXN0ZXJPZmZzZXQoUmVnaXN0 ZXIgZGVzdGluYXRpb24sIGludHB0cl90IG9mZnNldCkgb3ZlcnJpZGU7CisrICB2b2lkIExvYWRS b290UmVsYXRpdmUoUmVnaXN0ZXIgZGVzdGluYXRpb24sIGludDMyX3Qgb2Zmc2V0KSBvdmVycmlk ZTsKKysKKysvLyBKdW1wLCBDYWxsLCBhbmQgUmV0IHBzZXVkbyBpbnN0cnVjdGlvbnMgaW1wbGVt ZW50aW5nIGludGVyLXdvcmtpbmcuCisrI2RlZmluZSBDT05EX0FSR1MgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICBDb25kaXRpb24gY29uZCA9IGFsLCBSZWdpc3RlciBycyA9IHpl cm9fcmVnLCBcCisrICAgICAgICAgICAgY29uc3QgT3BlcmFuZCAmcnQgPSBPcGVyYW5kKHplcm9f cmVnKQorKworKyAgdm9pZCBKdW1wKFJlZ2lzdGVyIHRhcmdldCwgQ09ORF9BUkdTKTsKKysgIHZv aWQgSnVtcChpbnRwdHJfdCB0YXJnZXQsIFJlbG9jSW5mbzo6TW9kZSBybW9kZSwgQ09ORF9BUkdT KTsKKysgIHZvaWQgSnVtcChBZGRyZXNzIHRhcmdldCwgUmVsb2NJbmZvOjpNb2RlIHJtb2RlLCBD T05EX0FSR1MpOworKyAgLy8gRGVmZmVyIGZyb20gbGksIHRoaXMgbWV0aG9kIHNhdmUgdGFyZ2V0 IHRvIHRoZSBtZW1vcnksIGFuZCB0aGVuIGxvYWQKKysgIC8vIGl0IHRvIHJlZ2lzdGVyIHVzZSBs ZCwgaXQgY2FuIGJlIHVzZWQgaW4gd2FzbSBqdW1wIHRhYmxlIGZvciBjb25jdXJyZW50CisrICAv LyBwYXRjaGluZy4KKysgIHZvaWQgUGF0Y2hBbmRKdW1wKEFkZHJlc3MgdGFyZ2V0KTsKKysgIHZv aWQgSnVtcChIYW5kbGU8Q29kZT4gY29kZSwgUmVsb2NJbmZvOjpNb2RlIHJtb2RlLCBDT05EX0FS R1MpOworKyAgdm9pZCBKdW1wKGNvbnN0IEV4dGVybmFsUmVmZXJlbmNlJiByZWZlcmVuY2UpIG92 ZXJyaWRlOworKyAgdm9pZCBDYWxsKFJlZ2lzdGVyIHRhcmdldCwgQ09ORF9BUkdTKTsKKysgIHZv aWQgQ2FsbChBZGRyZXNzIHRhcmdldCwgUmVsb2NJbmZvOjpNb2RlIHJtb2RlLCBDT05EX0FSR1Mp OworKyAgdm9pZCBDYWxsKEhhbmRsZTxDb2RlPiBjb2RlLCBSZWxvY0luZm86Ok1vZGUgcm1vZGUg PSBSZWxvY0luZm86OkNPREVfVEFSR0VULAorKyAgICAgICAgICAgIENPTkRfQVJHUyk7CisrICB2 b2lkIENhbGwoTGFiZWwqIHRhcmdldCk7CisrICB2b2lkIExvYWRBZGRyZXNzKFJlZ2lzdGVyIGRz dCwgTGFiZWwqIHRhcmdldCk7CisrCisrICAvLyBMb2FkIHRoZSBidWlsdGluIGdpdmVuIGJ5IHRo ZSBTbWkgaW4gfGJ1aWx0aW5faW5kZXh8IGludG8gdGhlIHNhbWUKKysgIC8vIHJlZ2lzdGVyLgor KyAgdm9pZCBMb2FkRW50cnlGcm9tQnVpbHRpbkluZGV4KFJlZ2lzdGVyIGJ1aWx0aW5faW5kZXgp OworKyAgdm9pZCBDYWxsQnVpbHRpbkJ5SW5kZXgoUmVnaXN0ZXIgYnVpbHRpbl9pbmRleCkgb3Zl cnJpZGU7CisrCisrICB2b2lkIExvYWRDb2RlT2JqZWN0RW50cnkoUmVnaXN0ZXIgZGVzdGluYXRp b24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgY29kZV9vYmplY3QpIG92 ZXJyaWRlIHsKKysgICAgLy8gVE9ETyhSSVNDVik6IEltcGxlbWVudC4KKysgICAgVU5JTVBMRU1F TlRFRCgpOworKyAgfQorKyAgdm9pZCBDYWxsQ29kZU9iamVjdChSZWdpc3RlciBjb2RlX29iamVj dCkgb3ZlcnJpZGUgeworKyAgICAvLyBUT0RPKFJJU0NWKTogSW1wbGVtZW50LgorKyAgICBVTklN UExFTUVOVEVEKCk7CisrICB9CisrICB2b2lkIEp1bXBDb2RlT2JqZWN0KFJlZ2lzdGVyIGNvZGVf b2JqZWN0KSBvdmVycmlkZSB7CisrICAgIC8vIFRPRE8oUklTQ1YpOiBJbXBsZW1lbnQuCisrICAg IFVOSU1QTEVNRU5URUQoKTsKKysgIH0KKysKKysgIC8vIEdlbmVyYXRlcyBhbiBpbnN0cnVjdGlv biBzZXF1ZW5jZSBzLnQuIHRoZSByZXR1cm4gYWRkcmVzcyBwb2ludHMgdG8gdGhlCisrICAvLyBp bnN0cnVjdGlvbiBmb2xsb3dpbmcgdGhlIGNhbGwuCisrICAvLyBUaGUgcmV0dXJuIGFkZHJlc3Mg b24gdGhlIHN0YWNrIGlzIHVzZWQgYnkgZnJhbWUgaXRlcmF0aW9uLgorKyAgdm9pZCBTdG9yZVJl dHVybkFkZHJlc3NBbmRDYWxsKFJlZ2lzdGVyIHRhcmdldCk7CisrCisrICB2b2lkIENhbGxGb3JE ZW9wdGltaXphdGlvbihBZGRyZXNzIHRhcmdldCwgaW50IGRlb3B0X2lkLCBMYWJlbCogZXhpdCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlb3B0aW1pemVLaW5kIGtpbmQpOworKwor KyAgdm9pZCBSZXQoQ09ORF9BUkdTKTsKKysKKysgIC8vIEVtaXQgY29kZSB0byBkaXNjYXJkIGEg bm9uLW5lZ2F0aXZlIG51bWJlciBvZiBwb2ludGVyLXNpemVkIGVsZW1lbnRzCisrICAvLyBmcm9t IHRoZSBzdGFjaywgY2xvYmJlcmluZyBvbmx5IHRoZSBzcCByZWdpc3Rlci4KKysgIHZvaWQgRHJv cChpbnQgY291bnQsIENvbmRpdGlvbiBjb25kID0gY2NfYWx3YXlzLCBSZWdpc3RlciByZWcgPSBu b19yZWcsCisrICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYgb3AgPSBPcGVyYW5kKG5vX3JlZykp OworKworKyAgLy8gVHJpdmlhbCBjYXNlIG9mIERyb3BBbmRSZXQgdGhhdCBvbmx5IGVtaXRzIDIg aW5zdHJ1Y3Rpb25zLgorKyAgdm9pZCBEcm9wQW5kUmV0KGludCBkcm9wKTsKKysKKysgIHZvaWQg RHJvcEFuZFJldChpbnQgZHJvcCwgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJlZywgY29uc3Qg T3BlcmFuZCYgb3ApOworKworKyAgdm9pZCBMZChSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFu ZCYgcnMpOworKyAgdm9pZCBTZChSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpOwor KworKyAgdm9pZCBwdXNoKFJlZ2lzdGVyIHNyYykgeworKyAgICBBZGQ2NChzcCwgc3AsIE9wZXJh bmQoLWtQb2ludGVyU2l6ZSkpOworKyAgICBTZChzcmMsIE1lbU9wZXJhbmQoc3AsIDApKTsKKysg IH0KKysgIHZvaWQgUHVzaChSZWdpc3RlciBzcmMpIHsgcHVzaChzcmMpOyB9CisrICB2b2lkIFB1 c2goSGFuZGxlPEhlYXBPYmplY3Q+IGhhbmRsZSk7CisrICB2b2lkIFB1c2goU21pIHNtaSk7Cisr CisrICAvLyBQdXNoIHR3byByZWdpc3RlcnMuIFB1c2hlcyBsZWZ0bW9zdCByZWdpc3RlciBmaXJz dCAodG8gaGlnaGVzdCBhZGRyZXNzKS4KKysgIHZvaWQgUHVzaChSZWdpc3RlciBzcmMxLCBSZWdp c3RlciBzcmMyKSB7CisrICAgIFN1YjY0KHNwLCBzcCwgT3BlcmFuZCgyICoga1BvaW50ZXJTaXpl KSk7CisrICAgIFNkKHNyYzEsIE1lbU9wZXJhbmQoc3AsIDEgKiBrUG9pbnRlclNpemUpKTsKKysg ICAgU2Qoc3JjMiwgTWVtT3BlcmFuZChzcCwgMCAqIGtQb2ludGVyU2l6ZSkpOworKyAgfQorKwor KyAgLy8gUHVzaCB0aHJlZSByZWdpc3RlcnMuIFB1c2hlcyBsZWZ0bW9zdCByZWdpc3RlciBmaXJz dCAodG8gaGlnaGVzdCBhZGRyZXNzKS4KKysgIHZvaWQgUHVzaChSZWdpc3RlciBzcmMxLCBSZWdp c3RlciBzcmMyLCBSZWdpc3RlciBzcmMzKSB7CisrICAgIFN1YjY0KHNwLCBzcCwgT3BlcmFuZCgz ICoga1BvaW50ZXJTaXplKSk7CisrICAgIFNkKHNyYzEsIE1lbU9wZXJhbmQoc3AsIDIgKiBrUG9p bnRlclNpemUpKTsKKysgICAgU2Qoc3JjMiwgTWVtT3BlcmFuZChzcCwgMSAqIGtQb2ludGVyU2l6 ZSkpOworKyAgICBTZChzcmMzLCBNZW1PcGVyYW5kKHNwLCAwICoga1BvaW50ZXJTaXplKSk7Cisr ICB9CisrCisrICAvLyBQdXNoIGZvdXIgcmVnaXN0ZXJzLiBQdXNoZXMgbGVmdG1vc3QgcmVnaXN0 ZXIgZmlyc3QgKHRvIGhpZ2hlc3QgYWRkcmVzcykuCisrICB2b2lkIFB1c2goUmVnaXN0ZXIgc3Jj MSwgUmVnaXN0ZXIgc3JjMiwgUmVnaXN0ZXIgc3JjMywgUmVnaXN0ZXIgc3JjNCkgeworKyAgICBT dWI2NChzcCwgc3AsIE9wZXJhbmQoNCAqIGtQb2ludGVyU2l6ZSkpOworKyAgICBTZChzcmMxLCBN ZW1PcGVyYW5kKHNwLCAzICoga1BvaW50ZXJTaXplKSk7CisrICAgIFNkKHNyYzIsIE1lbU9wZXJh bmQoc3AsIDIgKiBrUG9pbnRlclNpemUpKTsKKysgICAgU2Qoc3JjMywgTWVtT3BlcmFuZChzcCwg MSAqIGtQb2ludGVyU2l6ZSkpOworKyAgICBTZChzcmM0LCBNZW1PcGVyYW5kKHNwLCAwICoga1Bv aW50ZXJTaXplKSk7CisrICB9CisrCisrICAvLyBQdXNoIGZpdmUgcmVnaXN0ZXJzLiBQdXNoZXMg bGVmdG1vc3QgcmVnaXN0ZXIgZmlyc3QgKHRvIGhpZ2hlc3QgYWRkcmVzcykuCisrICB2b2lkIFB1 c2goUmVnaXN0ZXIgc3JjMSwgUmVnaXN0ZXIgc3JjMiwgUmVnaXN0ZXIgc3JjMywgUmVnaXN0ZXIg c3JjNCwKKysgICAgICAgICAgICBSZWdpc3RlciBzcmM1KSB7CisrICAgIFN1YjY0KHNwLCBzcCwg T3BlcmFuZCg1ICoga1BvaW50ZXJTaXplKSk7CisrICAgIFNkKHNyYzEsIE1lbU9wZXJhbmQoc3As IDQgKiBrUG9pbnRlclNpemUpKTsKKysgICAgU2Qoc3JjMiwgTWVtT3BlcmFuZChzcCwgMyAqIGtQ b2ludGVyU2l6ZSkpOworKyAgICBTZChzcmMzLCBNZW1PcGVyYW5kKHNwLCAyICoga1BvaW50ZXJT aXplKSk7CisrICAgIFNkKHNyYzQsIE1lbU9wZXJhbmQoc3AsIDEgKiBrUG9pbnRlclNpemUpKTsK KysgICAgU2Qoc3JjNSwgTWVtT3BlcmFuZChzcCwgMCAqIGtQb2ludGVyU2l6ZSkpOworKyAgfQor KworKyAgdm9pZCBQdXNoKFJlZ2lzdGVyIHNyYywgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHRz dDEsIFJlZ2lzdGVyIHRzdDIpIHsKKysgICAgLy8gU2luY2Ugd2UgZG9uJ3QgaGF2ZSBjb25kaXRp b25hbCBleGVjdXRpb24gd2UgdXNlIGEgQnJhbmNoLgorKyAgICBCcmFuY2goMywgY29uZCwgdHN0 MSwgT3BlcmFuZCh0c3QyKSk7CisrICAgIFN1YjY0KHNwLCBzcCwgT3BlcmFuZChrUG9pbnRlclNp emUpKTsKKysgICAgU2Qoc3JjLCBNZW1PcGVyYW5kKHNwLCAwKSk7CisrICB9CisrCisrICB2b2lk IFNhdmVSZWdpc3RlcnMoUmVnTGlzdCByZWdpc3RlcnMpOworKyAgdm9pZCBSZXN0b3JlUmVnaXN0 ZXJzKFJlZ0xpc3QgcmVnaXN0ZXJzKTsKKysKKysgIHZvaWQgQ2FsbFJlY29yZFdyaXRlU3R1YihS ZWdpc3RlciBvYmplY3QsIFJlZ2lzdGVyIGFkZHJlc3MsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVtZW1iZXJlZFNldEFjdGlvbiByZW1lbWJlcmVkX3NldF9hY3Rpb24sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2F2ZUZQUmVnc01vZGUgZnBfbW9kZSk7CisrICB2b2lkIENh bGxSZWNvcmRXcml0ZVN0dWIoUmVnaXN0ZXIgb2JqZWN0LCBSZWdpc3RlciBhZGRyZXNzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlbWVtYmVyZWRTZXRBY3Rpb24gcmVtZW1iZXJlZF9z ZXRfYWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhdmVGUFJlZ3NNb2RlIGZw X21vZGUsIEFkZHJlc3Mgd2FzbV90YXJnZXQpOworKyAgdm9pZCBDYWxsRXBoZW1lcm9uS2V5QmFy cmllcihSZWdpc3RlciBvYmplY3QsIFJlZ2lzdGVyIGFkZHJlc3MsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNhdmVGUFJlZ3NNb2RlIGZwX21vZGUpOworKworKyAgLy8gUHVzaCBt dWx0aXBsZSByZWdpc3RlcnMgb24gdGhlIHN0YWNrLgorKyAgLy8gUmVnaXN0ZXJzIGFyZSBzYXZl ZCBpbiBudW1lcmljYWwgb3JkZXIsIHdpdGggaGlnaGVyIG51bWJlcmVkIHJlZ2lzdGVycworKyAg Ly8gc2F2ZWQgaW4gaGlnaGVyIG1lbW9yeSBhZGRyZXNzZXMuCisrICB2b2lkIE11bHRpUHVzaChS ZWdMaXN0IHJlZ3MpOworKyAgdm9pZCBNdWx0aVB1c2hGUFUoUmVnTGlzdCByZWdzKTsKKysKKysg IC8vIENhbGN1bGF0ZSBob3cgbXVjaCBzdGFjayBzcGFjZSAoaW4gYnl0ZXMpIGFyZSByZXF1aXJl ZCB0byBzdG9yZSBjYWxsZXIKKysgIC8vIHJlZ2lzdGVycyBleGNsdWRpbmcgdGhvc2Ugc3BlY2lm aWVkIGluIHRoZSBhcmd1bWVudHMuCisrICBpbnQgUmVxdWlyZWRTdGFja1NpemVGb3JDYWxsZXJT YXZlZChTYXZlRlBSZWdzTW9kZSBmcF9tb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgZXhjbHVzaW9uMSA9IG5vX3JlZywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGV4Y2x1c2lvbjIgPSBub19yZWcsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBleGNsdXNpb24z ID0gbm9fcmVnKSBjb25zdDsKKysKKysgIC8vIFB1c2ggY2FsbGVyIHNhdmVkIHJlZ2lzdGVycyBv biB0aGUgc3RhY2ssIGFuZCByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcworKyAgLy8gc3RhY2sg cG9pbnRlciBpcyBhZGp1c3RlZC4KKysgIGludCBQdXNoQ2FsbGVyU2F2ZWQoU2F2ZUZQUmVnc01v ZGUgZnBfbW9kZSwgUmVnaXN0ZXIgZXhjbHVzaW9uMSA9IG5vX3JlZywKKysgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgZXhjbHVzaW9uMiA9IG5vX3JlZywKKysgICAgICAgICAgICAgICAg ICAgICAgUmVnaXN0ZXIgZXhjbHVzaW9uMyA9IG5vX3JlZyk7CisrICAvLyBSZXN0b3JlIGNhbGxl ciBzYXZlZCByZWdpc3RlcnMgZnJvbSB0aGUgc3RhY2ssIGFuZCByZXR1cm4gdGhlIG51bWJlciBv ZgorKyAgLy8gYnl0ZXMgc3RhY2sgcG9pbnRlciBpcyBhZGp1c3RlZC4KKysgIGludCBQb3BDYWxs ZXJTYXZlZChTYXZlRlBSZWdzTW9kZSBmcF9tb2RlLCBSZWdpc3RlciBleGNsdXNpb24xID0gbm9f cmVnLAorKyAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGV4Y2x1c2lvbjIgPSBub19yZWcs CisrICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgZXhjbHVzaW9uMyA9IG5vX3JlZyk7Cisr CisrICB2b2lkIHBvcChSZWdpc3RlciBkc3QpIHsKKysgICAgTGQoZHN0LCBNZW1PcGVyYW5kKHNw LCAwKSk7CisrICAgIEFkZDY0KHNwLCBzcCwgT3BlcmFuZChrUG9pbnRlclNpemUpKTsKKysgIH0K KysgIHZvaWQgUG9wKFJlZ2lzdGVyIGRzdCkgeyBwb3AoZHN0KTsgfQorKworKyAgLy8gUG9wIHR3 byByZWdpc3RlcnMuIFBvcHMgcmlnaHRtb3N0IHJlZ2lzdGVyIGZpcnN0IChmcm9tIGxvd2VyIGFk ZHJlc3MpLgorKyAgdm9pZCBQb3AoUmVnaXN0ZXIgc3JjMSwgUmVnaXN0ZXIgc3JjMikgeworKyAg ICBEQ0hFQ0soc3JjMSAhPSBzcmMyKTsKKysgICAgTGQoc3JjMiwgTWVtT3BlcmFuZChzcCwgMCAq IGtQb2ludGVyU2l6ZSkpOworKyAgICBMZChzcmMxLCBNZW1PcGVyYW5kKHNwLCAxICoga1BvaW50 ZXJTaXplKSk7CisrICAgIEFkZDY0KHNwLCBzcCwgMiAqIGtQb2ludGVyU2l6ZSk7CisrICB9Cisr CisrICAvLyBQb3AgdGhyZWUgcmVnaXN0ZXJzLiBQb3BzIHJpZ2h0bW9zdCByZWdpc3RlciBmaXJz dCAoZnJvbSBsb3dlciBhZGRyZXNzKS4KKysgIHZvaWQgUG9wKFJlZ2lzdGVyIHNyYzEsIFJlZ2lz dGVyIHNyYzIsIFJlZ2lzdGVyIHNyYzMpIHsKKysgICAgTGQoc3JjMywgTWVtT3BlcmFuZChzcCwg MCAqIGtQb2ludGVyU2l6ZSkpOworKyAgICBMZChzcmMyLCBNZW1PcGVyYW5kKHNwLCAxICoga1Bv aW50ZXJTaXplKSk7CisrICAgIExkKHNyYzEsIE1lbU9wZXJhbmQoc3AsIDIgKiBrUG9pbnRlclNp emUpKTsKKysgICAgQWRkNjQoc3AsIHNwLCAzICoga1BvaW50ZXJTaXplKTsKKysgIH0KKysKKysg IHZvaWQgUG9wKHVpbnQzMl90IGNvdW50ID0gMSkgeyBBZGQ2NChzcCwgc3AsIE9wZXJhbmQoY291 bnQgKiBrUG9pbnRlclNpemUpKTsgfQorKworKyAgLy8gUG9wcyBtdWx0aXBsZSB2YWx1ZXMgZnJv bSB0aGUgc3RhY2sgYW5kIGxvYWQgdGhlbSBpbiB0aGUKKysgIC8vIHJlZ2lzdGVycyBzcGVjaWZp ZWQgaW4gcmVncy4gUG9wIG9yZGVyIGlzIHRoZSBvcHBvc2l0ZSBhcyBpbiBNdWx0aVB1c2guCisr ICB2b2lkIE11bHRpUG9wKFJlZ0xpc3QgcmVncyk7CisrICB2b2lkIE11bHRpUG9wRlBVKFJlZ0xp c3QgcmVncyk7CisrCisrI2RlZmluZSBERUZJTkVfSU5TVFJVQ1RJT04oaW5zdHIpICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICB2b2lkIGluc3RyKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBy cywgY29uc3QgT3BlcmFuZCYgcnQpOyBcCisrICB2b2lkIGluc3RyKFJlZ2lzdGVyIHJkLCBSZWdp c3RlciBycywgUmVnaXN0ZXIgcnQpIHsgICAgICBcCisrICAgIGluc3RyKHJkLCBycywgT3BlcmFu ZChydCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB2b2lkIGluc3Ry KFJlZ2lzdGVyIHJzLCBSZWdpc3RlciBydCwgaW50MzJfdCBqKSB7IGluc3RyKHJzLCBydCwgT3Bl cmFuZChqKSk7IH0KKysKKysjZGVmaW5lIERFRklORV9JTlNUUlVDVElPTjIoaW5zdHIpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgdm9pZCBpbnN0cihSZWdpc3RlciBycywg Y29uc3QgT3BlcmFuZCYgcnQpOyAgICAgICAgICAgICAgICAgICAgICBcCisrICB2b2lkIGluc3Ry KFJlZ2lzdGVyIHJzLCBSZWdpc3RlciBydCkgeyBpbnN0cihycywgT3BlcmFuZChydCkpOyB9IFwK KysgIHZvaWQgaW5zdHIoUmVnaXN0ZXIgcnMsIGludDMyX3QgaikgeyBpbnN0cihycywgT3BlcmFu ZChqKSk7IH0KKysKKysgIERFRklORV9JTlNUUlVDVElPTihBZGQzMikKKysgIERFRklORV9JTlNU UlVDVElPTihBZGQ2NCkKKysgIERFRklORV9JTlNUUlVDVElPTihEaXYzMikKKysgIERFRklORV9J TlNUUlVDVElPTihEaXZ1MzIpCisrICBERUZJTkVfSU5TVFJVQ1RJT04oRGl2dTY0KQorKyAgREVG SU5FX0lOU1RSVUNUSU9OKE1vZDMyKQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKE1vZHUzMikKKysg IERFRklORV9JTlNUUlVDVElPTihEaXY2NCkKKysgIERFRklORV9JTlNUUlVDVElPTihTdWIzMikK KysgIERFRklORV9JTlNUUlVDVElPTihTdWI2NCkKKysgIERFRklORV9JTlNUUlVDVElPTihNb2Q2 NCkKKysgIERFRklORV9JTlNUUlVDVElPTihNb2R1NjQpCisrICBERUZJTkVfSU5TVFJVQ1RJT04o TXVsMzIpCisrICBERUZJTkVfSU5TVFJVQ1RJT04oTXVsaDMyKQorKyAgREVGSU5FX0lOU1RSVUNU SU9OKE11bDY0KQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKE11bGg2NCkKKysgIERFRklORV9JTlNU UlVDVElPTjIoRGl2MzIpCisrICBERUZJTkVfSU5TVFJVQ1RJT04yKERpdjY0KQorKyAgREVGSU5F X0lOU1RSVUNUSU9OMihEaXZ1MzIpCisrICBERUZJTkVfSU5TVFJVQ1RJT04yKERpdnU2NCkKKysK KysgIERFRklORV9JTlNUUlVDVElPTihBbmQpCisrICBERUZJTkVfSU5TVFJVQ1RJT04oT3IpCisr ICBERUZJTkVfSU5TVFJVQ1RJT04oWG9yKQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKE5vcikKKysg IERFRklORV9JTlNUUlVDVElPTjIoTmVnKQorKworKyAgREVGSU5FX0lOU1RSVUNUSU9OKFNsdCkK KysgIERFRklORV9JTlNUUlVDVElPTihTbHR1KQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKFNsZSkK KysgIERFRklORV9JTlNUUlVDVElPTihTbGV1KQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKFNndCkK KysgIERFRklORV9JTlNUUlVDVElPTihTZ3R1KQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKFNnZSkK KysgIERFRklORV9JTlNUUlVDVElPTihTZ2V1KQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKFNlcSkK KysgIERFRklORV9JTlNUUlVDVElPTihTbmUpCisrCisrICBERUZJTkVfSU5TVFJVQ1RJT04oU2xs NjQpCisrICBERUZJTkVfSU5TVFJVQ1RJT04oU3JhNjQpCisrICBERUZJTkVfSU5TVFJVQ1RJT04o U3JsNjQpCisrICBERUZJTkVfSU5TVFJVQ1RJT04oU2xsMzIpCisrICBERUZJTkVfSU5TVFJVQ1RJ T04oU3JhMzIpCisrICBERUZJTkVfSU5TVFJVQ1RJT04oU3JsMzIpCisrCisrICBERUZJTkVfSU5T VFJVQ1RJT04yKFNlcXopCisrICBERUZJTkVfSU5TVFJVQ1RJT04yKFNuZXopCisrCisrICBERUZJ TkVfSU5TVFJVQ1RJT04oUm9yKQorKyAgREVGSU5FX0lOU1RSVUNUSU9OKERyb3IpCisrI3VuZGVm IERFRklORV9JTlNUUlVDVElPTgorKyN1bmRlZiBERUZJTkVfSU5TVFJVQ1RJT04yCisrI3VuZGVm IERFRklORV9JTlNUUlVDVElPTjMKKysKKysgIHZvaWQgU21pVW50YWcoUmVnaXN0ZXIgZHN0LCBj b25zdCBNZW1PcGVyYW5kJiBzcmMpOworKyAgdm9pZCBTbWlVbnRhZyhSZWdpc3RlciBkc3QsIFJl Z2lzdGVyIHNyYykgeworKyAgICBpZiAoU21pVmFsdWVzQXJlMzJCaXRzKCkpIHsKKysgICAgICBz cmFpKGRzdCwgc3JjLCBrU21pU2hpZnQpOworKyAgICB9IGVsc2UgeworKyAgICAgIERDSEVDSyhT bWlWYWx1ZXNBcmUzMUJpdHMoKSk7CisrICAgICAgc3JhaXcoZHN0LCBzcmMsIGtTbWlTaGlmdCk7 CisrICAgIH0KKysgIH0KKysKKysgIHZvaWQgU21pVW50YWcoUmVnaXN0ZXIgcmVnKSB7IFNtaVVu dGFnKHJlZywgcmVnKTsgfQorKworKyAgLy8gUmVtb3ZlcyBjdXJyZW50IGZyYW1lIGFuZCBpdHMg YXJndW1lbnRzIGZyb20gdGhlIHN0YWNrIHByZXNlcnZpbmcKKysgIC8vIHRoZSBhcmd1bWVudHMg YW5kIGEgcmV0dXJuIGFkZHJlc3MgcHVzaGVkIHRvIHRoZSBzdGFjayBmb3IgdGhlIG5leHQgY2Fs bC4KKysgIC8vIEJvdGggfGNhbGxlZV9hcmdzX2NvdW50fCBhbmQgfGNhbGxlcl9hcmdzX2NvdW50 fCBkbyBub3QgaW5jbHVkZQorKyAgLy8gcmVjZWl2ZXIuIHxjYWxsZWVfYXJnc19jb3VudHwgaXMg bm90IG1vZGlmaWVkLiB8Y2FsbGVyX2FyZ3NfY291bnR8CisrICAvLyBpcyB0cmFzaGVkLgorKyAg dm9pZCBQcmVwYXJlRm9yVGFpbENhbGwoUmVnaXN0ZXIgY2FsbGVlX2FyZ3NfY291bnQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBjYWxsZXJfYXJnc19jb3VudCwgUmVnaXN0 ZXIgc2NyYXRjaDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzY3JhdGNo MSk7CisrCisrICBpbnQgQ2FsY3VsYXRlU3RhY2tQYXNzZWREV29yZHMoaW50IG51bV9ncF9hcmd1 bWVudHMsIGludCBudW1fZnBfYXJndW1lbnRzKTsKKysKKysgIC8vIEJlZm9yZSBjYWxsaW5nIGEg Qy1mdW5jdGlvbiBmcm9tIGdlbmVyYXRlZCBjb2RlLCBhbGlnbiBhcmd1bWVudHMgb24gc3RhY2su CisrICAvLyBBZnRlciBhbGlnbmluZyB0aGUgZnJhbWUsIG5vbi1yZWdpc3RlciBhcmd1bWVudHMg bXVzdCBiZSBzdG9yZWQgb24gdGhlCisrICAvLyBzdGFjaywgdXNpbmcgaGVscGVyOiBDRnVuY3Rp b25Bcmd1bWVudE9wZXJhbmQoKS4KKysgIC8vIFRoZSBhcmd1bWVudCBjb3VudCBhc3N1bWVzIGFs bCBhcmd1bWVudHMgYXJlIHdvcmQgc2l6ZWQuCisrICAvLyBTb21lIGNvbXBpbGVycy9wbGF0Zm9y bXMgcmVxdWlyZSB0aGUgc3RhY2sgdG8gYmUgYWxpZ25lZCB3aGVuIGNhbGxpbmcKKysgIC8vIEMr KyBjb2RlLgorKyAgLy8gTmVlZHMgYSBzY3JhdGNoIHJlZ2lzdGVyIHRvIGRvIHNvbWUgYXJpdGht ZXRpYy4gVGhpcyByZWdpc3RlciB3aWxsIGJlCisrICAvLyB0cmFzaGVkLgorKyAgdm9pZCBQcmVw YXJlQ2FsbENGdW5jdGlvbihpbnQgbnVtX3JlZ19hcmd1bWVudHMsIGludCBudW1fZG91YmxlX3Jl Z2lzdGVycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaCk7 CisrICB2b2lkIFByZXBhcmVDYWxsQ0Z1bmN0aW9uKGludCBudW1fcmVnX2FyZ3VtZW50cywgUmVn aXN0ZXIgc2NyYXRjaCk7CisrCisrICAvLyBBcmd1bWVudHMgMS04IGFyZSBwbGFjZWQgaW4gcmVn aXN0ZXJzIGEwIHRocm91Z2ggYTcgcmVzcGVjdGl2ZWx5LgorKyAgLy8gQXJndW1lbnRzIDkuLm4g YXJlIHN0b3JlZCB0byBzdGFjaworKworKyAgLy8gQ2FsbHMgYSBDIGZ1bmN0aW9uIGFuZCBjbGVh bnMgdXAgdGhlIHNwYWNlIGZvciBhcmd1bWVudHMgYWxsb2NhdGVkCisrICAvLyBieSBQcmVwYXJl Q2FsbENGdW5jdGlvbi4gVGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0byB0cmln Z2VyIGEKKysgIC8vIGdhcmJhZ2UgY29sbGVjdGlvbiwgc2luY2UgdGhhdCBtaWdodCBtb3ZlIHRo ZSBjb2RlIGFuZCBpbnZhbGlkYXRlIHRoZQorKyAgLy8gcmV0dXJuIGFkZHJlc3MgKHVubGVzcyB0 aGlzIGlzIHNvbWVob3cgYWNjb3VudGVkIGZvciBieSB0aGUgY2FsbGVkCisrICAvLyBmdW5jdGlv bikuCisrICB2b2lkIENhbGxDRnVuY3Rpb24oRXh0ZXJuYWxSZWZlcmVuY2UgZnVuY3Rpb24sIGlu dCBudW1fYXJndW1lbnRzKTsKKysgIHZvaWQgQ2FsbENGdW5jdGlvbihSZWdpc3RlciBmdW5jdGlv biwgaW50IG51bV9hcmd1bWVudHMpOworKyAgdm9pZCBDYWxsQ0Z1bmN0aW9uKEV4dGVybmFsUmVm ZXJlbmNlIGZ1bmN0aW9uLCBpbnQgbnVtX3JlZ19hcmd1bWVudHMsCisrICAgICAgICAgICAgICAg ICAgICAgaW50IG51bV9kb3VibGVfYXJndW1lbnRzKTsKKysgIHZvaWQgQ2FsbENGdW5jdGlvbihS ZWdpc3RlciBmdW5jdGlvbiwgaW50IG51bV9yZWdfYXJndW1lbnRzLAorKyAgICAgICAgICAgICAg ICAgICAgIGludCBudW1fZG91YmxlX2FyZ3VtZW50cyk7CisrICB2b2lkIE1vdkZyb21GbG9hdFJl c3VsdChEb3VibGVSZWdpc3RlciBkc3QpOworKyAgdm9pZCBNb3ZGcm9tRmxvYXRQYXJhbWV0ZXIo RG91YmxlUmVnaXN0ZXIgZHN0KTsKKysKKysgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhYnN0cmFjdCBw YXJhbWV0ZXIgcGFzc2luZyBmb3IgdGhlIHRocmVlIGRpZmZlcmVudCB3YXlzCisrICAvLyB3ZSBj YWxsIEMgZnVuY3Rpb25zIGZyb20gZ2VuZXJhdGVkIGNvZGUuCisrICB2b2lkIE1vdlRvRmxvYXRQ YXJhbWV0ZXIoRG91YmxlUmVnaXN0ZXIgc3JjKTsKKysgIHZvaWQgTW92VG9GbG9hdFBhcmFtZXRl cnMoRG91YmxlUmVnaXN0ZXIgc3JjMSwgRG91YmxlUmVnaXN0ZXIgc3JjMik7CisrICB2b2lkIE1v dlRvRmxvYXRSZXN1bHQoRG91YmxlUmVnaXN0ZXIgc3JjKTsKKysKKysgIC8vIFNlZSBjb21tZW50 cyBhdCB0aGUgYmVnaW5uaW5nIG9mIEJ1aWx0aW5zOjpHZW5lcmF0ZV9DRW50cnkuCisrICBpbmxp bmUgdm9pZCBQcmVwYXJlQ0VudHJ5QXJncyhpbnQgbnVtX2FyZ3MpIHsgbGkoYTAsIG51bV9hcmdz KTsgfQorKyAgaW5saW5lIHZvaWQgUHJlcGFyZUNFbnRyeUZ1bmN0aW9uKGNvbnN0IEV4dGVybmFs UmVmZXJlbmNlJiByZWYpIHsKKysgICAgbGkoYTEsIHJlZik7CisrICB9CisrCisrICB2b2lkIENo ZWNrUGFnZUZsYWcoUmVnaXN0ZXIgb2JqZWN0LCBSZWdpc3RlciBzY3JhdGNoLCBpbnQgbWFzaywg Q29uZGl0aW9uIGNjLAorKyAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBjb25kaXRpb25fbWV0 KTsKKysjdW5kZWYgQ09ORF9BUkdTCisrCisrICAvLyBQZXJmb3JtcyBhIHRydW5jYXRpbmcgY29u dmVyc2lvbiBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciBhcyB1c2VkIGJ5CisrICAvLyB0aGUg SlMgYml0d2lzZSBvcGVyYXRpb25zLiBTZWUgRUNNQS0yNjIgOS41OiBUb0ludDMyLgorKyAgLy8g RXhpdHMgd2l0aCAncmVzdWx0JyBob2xkaW5nIHRoZSBhbnN3ZXIuCisrICB2b2lkIFRydW5jYXRl RG91YmxlVG9JKElzb2xhdGUqIGlzb2xhdGUsIFpvbmUqIHpvbmUsIFJlZ2lzdGVyIHJlc3VsdCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIgZG91YmxlX2lucHV0LCBT dHViQ2FsbE1vZGUgc3R1Yl9tb2RlKTsKKysKKysgIHZvaWQgQ29tcGFyZUkoUmVnaXN0ZXIgcmQs IFJlZ2lzdGVyIHJzLCBjb25zdCBPcGVyYW5kJiBydCwgQ29uZGl0aW9uIGNvbmQpOworKworKyAg dm9pZCBMb2FkWmVyb0lmQ29uZGl0aW9uTm90WmVybyhSZWdpc3RlciBkZXN0LCBSZWdpc3RlciBj b25kaXRpb24pOworKyAgdm9pZCBMb2FkWmVyb0lmQ29uZGl0aW9uWmVybyhSZWdpc3RlciBkZXN0 LCBSZWdpc3RlciBjb25kaXRpb24pOworKworKyAgdm9pZCBTaWduRXh0ZW5kQnl0ZShSZWdpc3Rl ciByZCwgUmVnaXN0ZXIgcnMpIHsKKysgICAgc2xsaShyZCwgcnMsIDY0IC0gOCk7CisrICAgIHNy YWkocmQsIHJkLCA2NCAtIDgpOworKyAgfQorKworKyAgdm9pZCBTaWduRXh0ZW5kU2hvcnQoUmVn aXN0ZXIgcmQsIFJlZ2lzdGVyIHJzKSB7CisrICAgIHNsbGkocmQsIHJzLCA2NCAtIDE2KTsKKysg ICAgc3JhaShyZCwgcmQsIDY0IC0gMTYpOworKyAgfQorKworKyAgdm9pZCBTaWduRXh0ZW5kV29y ZChSZWdpc3RlciByZCwgUmVnaXN0ZXIgcnMpIHsgc2V4dF93KHJkLCBycyk7IH0KKysgIHZvaWQg WmVyb0V4dGVuZFdvcmQoUmVnaXN0ZXIgcmQsIFJlZ2lzdGVyIHJzKSB7CisrICAgIHNsbGkocmQs IHJzLCAzMik7CisrICAgIHNybGkocmQsIHJkLCAzMik7CisrICB9CisrCisrICB2b2lkIENsejMy KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycyk7CisrICB2b2lkIENsejY0KFJlZ2lzdGVyIHJkLCBS ZWdpc3RlciBycyk7CisrICB2b2lkIEN0ejMyKFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycyk7Cisr ICB2b2lkIEN0ejY0KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycyk7CisrICB2b2lkIFBvcGNudDMy KFJlZ2lzdGVyIHJkLCBSZWdpc3RlciBycyk7CisrICB2b2lkIFBvcGNudDY0KFJlZ2lzdGVyIHJk LCBSZWdpc3RlciBycyk7CisrCisrICAvLyBCaXQgZmllbGQgc3RhcnRzIGF0IGJpdCBwb3MgYW5k IGV4dGVuZGluZyBmb3Igc2l6ZSBiaXRzIGlzIGV4dHJhY3RlZCBmcm9tCisrICAvLyBycyBhbmQg c3RvcmVkIHplcm8vc2lnbi1leHRlbmRlZCBhbmQgcmlnaHQtanVzdGlmaWVkIGluIHJ0CisrICB2 b2lkIEV4dHJhY3RCaXRzKFJlZ2lzdGVyIHJ0LCBSZWdpc3RlciBycywgdWludDE2X3QgcG9zLCB1 aW50MTZfdCBzaXplLAorKyAgICAgICAgICAgICAgICAgICBib29sIHNpZ25fZXh0ZW5kID0gZmFs c2UpOworKyAgdm9pZCBFeHRyYWN0Qml0cyhSZWdpc3RlciBkZXN0LCBSZWdpc3RlciBzb3VyY2Us IFJlZ2lzdGVyIHBvcywgaW50IHNpemUsCisrICAgICAgICAgICAgICAgICAgIGJvb2wgc2lnbl9l eHRlbmQgPSBmYWxzZSkgeworKyAgICBzcmEoZGVzdCwgc291cmNlLCBwb3MpOworKyAgICBFeHRy YWN0Qml0cyhkZXN0LCBkZXN0LCAwLCBzaXplLCBzaWduX2V4dGVuZCk7CisrICB9CisrCisrICAv LyBJbnNlcnQgYml0cyBbMCwgc2l6ZSkgb2Ygc291cmNlIHRvIGJpdHMgW3BvcywgcG9zK3NpemUp IG9mIGRlc3QKKysgIHZvaWQgSW5zZXJ0Qml0cyhSZWdpc3RlciBkZXN0LCBSZWdpc3RlciBzb3Vy Y2UsIFJlZ2lzdGVyIHBvcywgaW50IHNpemUpOworKworKyAgdm9pZCBOZWdfcyhGUFVSZWdpc3Rl ciBmZCwgRlBVUmVnaXN0ZXIgZnMpOworKyAgdm9pZCBOZWdfZChGUFVSZWdpc3RlciBmZCwgRlBV UmVnaXN0ZXIgZnMpOworKworKyAgLy8gQ2hhbmdlIGVuZGlhbm5lc3MKKysgIHZvaWQgQnl0ZVN3 YXAoUmVnaXN0ZXIgZGVzdCwgUmVnaXN0ZXIgc3JjLCBpbnQgb3BlcmFuZF9zaXplKTsKKysKKysg IC8vIENvbnZlcnQgc2luZ2xlIHRvIHVuc2lnbmVkIHdvcmQuCisrICB2b2lkIFRydW5jX3V3X3Mo UmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1bHQgPSBub19yZWcpOwor KworKyAgLy8gaGVscGVyIGZ1bmN0aW9ucyBmb3IgdW5hbGlnbmVkIGxvYWQvc3RvcmUKKysgIHRl bXBsYXRlIDxpbnQgTkJZVEVTLCBib29sIElTX1NJR05FRD4KKysgIHZvaWQgVW5hbGlnbmVkTG9h ZEhlbHBlcihSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpOworKyAgdGVtcGxhdGUg PGludCBOQllURVM+CisrICB2b2lkIFVuYWxpZ25lZFN0b3JlSGVscGVyKFJlZ2lzdGVyIHJkLCBj b25zdCBNZW1PcGVyYW5kJiBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgc2NyYXRjaF9vdGhlciA9IG5vX3JlZyk7CisrCisrICB0ZW1wbGF0ZSA8aW50IE5CWVRFUz4K KysgIHZvaWQgVW5hbGlnbmVkRkxvYWRIZWxwZXIoRlBVUmVnaXN0ZXIgZnJkLCBjb25zdCBNZW1P cGVyYW5kJiBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRj aCk7CisrICB0ZW1wbGF0ZSA8aW50IE5CWVRFUz4KKysgIHZvaWQgVW5hbGlnbmVkRlN0b3JlSGVs cGVyKEZQVVJlZ2lzdGVyIGZyZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciBzY3JhdGNoKTsKKysKKysgIHRlbXBsYXRlIDx0eXBl bmFtZSBSZWdfVCwgdHlwZW5hbWUgRnVuYz4KKysgIHZvaWQgQWxpZ25lZExvYWRIZWxwZXIoUmVn X1QgdGFyZ2V0LCBjb25zdCBNZW1PcGVyYW5kJiBycywgRnVuYyBnZW5lcmF0b3IpOworKyAgdGVt cGxhdGUgPHR5cGVuYW1lIFJlZ19ULCB0eXBlbmFtZSBGdW5jPgorKyAgdm9pZCBBbGlnbmVkU3Rv cmVIZWxwZXIoUmVnX1QgdmFsdWUsIGNvbnN0IE1lbU9wZXJhbmQmIHJzLCBGdW5jIGdlbmVyYXRv cik7CisrCisrICB0ZW1wbGF0ZSA8aW50IE5CWVRFUywgYm9vbCBMT0FEX1NJR05FRD4KKysgIHZv aWQgTG9hZE5CeXRlcyhSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMsIFJlZ2lzdGVy IHNjcmF0Y2gpOworKyAgdGVtcGxhdGUgPGludCBOQllURVMsIGJvb2wgTE9BRF9TSUdORUQ+Cisr ICB2b2lkIExvYWROQnl0ZXNPdmVyd3JpdGluZ0Jhc2VSZWcoY29uc3QgTWVtT3BlcmFuZCYgcnMs IFJlZ2lzdGVyIHNjcmF0Y2gwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIHNjcmF0Y2gxKTsKKysgIC8vIGxvYWQvc3RvcmUgbWFjcm9zCisrICB2b2lkIFVs aChSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpOworKyAgdm9pZCBVbGh1KFJlZ2lz dGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycyk7CisrICB2b2lkIFVzaChSZWdpc3RlciByZCwg Y29uc3QgTWVtT3BlcmFuZCYgcnMpOworKworKyAgdm9pZCBVbHcoUmVnaXN0ZXIgcmQsIGNvbnN0 IE1lbU9wZXJhbmQmIHJzKTsKKysgIHZvaWQgVWx3dShSZWdpc3RlciByZCwgY29uc3QgTWVtT3Bl cmFuZCYgcnMpOworKyAgdm9pZCBVc3coUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJz KTsKKysKKysgIHZvaWQgVWxkKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycyk7Cisr ICB2b2lkIFVzZChSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMpOworKworKyAgdm9p ZCBVTG9hZEZsb2F0KEZQVVJlZ2lzdGVyIGZkLCBjb25zdCBNZW1PcGVyYW5kJiBycywgUmVnaXN0 ZXIgc2NyYXRjaCk7CisrICB2b2lkIFVTdG9yZUZsb2F0KEZQVVJlZ2lzdGVyIGZkLCBjb25zdCBN ZW1PcGVyYW5kJiBycywgUmVnaXN0ZXIgc2NyYXRjaCk7CisrCisrICB2b2lkIFVMb2FkRG91Ymxl KEZQVVJlZ2lzdGVyIGZkLCBjb25zdCBNZW1PcGVyYW5kJiBycywgUmVnaXN0ZXIgc2NyYXRjaCk7 CisrICB2b2lkIFVTdG9yZURvdWJsZShGUFVSZWdpc3RlciBmZCwgY29uc3QgTWVtT3BlcmFuZCYg cnMsIFJlZ2lzdGVyIHNjcmF0Y2gpOworKworKyAgdm9pZCBMYihSZWdpc3RlciByZCwgY29uc3Qg TWVtT3BlcmFuZCYgcnMpOworKyAgdm9pZCBMYnUoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJh bmQmIHJzKTsKKysgIHZvaWQgU2IoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzKTsK KysKKysgIHZvaWQgTGgoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJhbmQmIHJzKTsKKysgIHZv aWQgTGh1KFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycyk7CisrICB2b2lkIFNoKFJl Z2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycyk7CisrCisrICB2b2lkIEx3KFJlZ2lzdGVy IHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycyk7CisrICB2b2lkIEx3dShSZWdpc3RlciByZCwgY29u c3QgTWVtT3BlcmFuZCYgcnMpOworKyAgdm9pZCBTdyhSZWdpc3RlciByZCwgY29uc3QgTWVtT3Bl cmFuZCYgcnMpOworKworKyAgdm9pZCBMb2FkRmxvYXQoRlBVUmVnaXN0ZXIgZmQsIGNvbnN0IE1l bU9wZXJhbmQmIHNyYyk7CisrICB2b2lkIFN0b3JlRmxvYXQoRlBVUmVnaXN0ZXIgZnMsIGNvbnN0 IE1lbU9wZXJhbmQmIGRzdCk7CisrCisrICB2b2lkIExvYWREb3VibGUoRlBVUmVnaXN0ZXIgZmQs IGNvbnN0IE1lbU9wZXJhbmQmIHNyYyk7CisrICB2b2lkIFN0b3JlRG91YmxlKEZQVVJlZ2lzdGVy IGZzLCBjb25zdCBNZW1PcGVyYW5kJiBkc3QpOworKworKyAgdm9pZCBMbChSZWdpc3RlciByZCwg Y29uc3QgTWVtT3BlcmFuZCYgcnMpOworKyAgdm9pZCBTYyhSZWdpc3RlciByZCwgY29uc3QgTWVt T3BlcmFuZCYgcnMpOworKworKyAgdm9pZCBMbGQoUmVnaXN0ZXIgcmQsIGNvbnN0IE1lbU9wZXJh bmQmIHJzKTsKKysgIHZvaWQgU2NkKFJlZ2lzdGVyIHJkLCBjb25zdCBNZW1PcGVyYW5kJiBycyk7 CisrCisrICB2b2lkIEZsb2F0MzJNYXgoRlBVUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBzcmMx LCBGUFVSZWdpc3RlciBzcmMyKTsKKysgIHZvaWQgRmxvYXQzMk1pbihGUFVSZWdpc3RlciBkc3Qs IEZQVVJlZ2lzdGVyIHNyYzEsIEZQVVJlZ2lzdGVyIHNyYzIpOworKyAgdm9pZCBGbG9hdDY0TWF4 KEZQVVJlZ2lzdGVyIGRzdCwgRlBVUmVnaXN0ZXIgc3JjMSwgRlBVUmVnaXN0ZXIgc3JjMik7Cisr ICB2b2lkIEZsb2F0NjRNaW4oRlBVUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBzcmMxLCBGUFVS ZWdpc3RlciBzcmMyKTsKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBGPgorKyAgdm9pZCBGbG9hdE1p bk1heEhlbHBlcihGUFVSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYzEsIEZQVVJlZ2lzdGVy IHNyYzIsCisrICAgICAgICAgICAgICAgICAgICAgICAgIE1heE1pbktpbmQga2luZCk7CisrCisr ICBib29sIElzRG91YmxlWmVyb1JlZ1NldCgpIHsgcmV0dXJuIGhhc19kb3VibGVfemVyb19yZWdf c2V0XzsgfQorKyAgYm9vbCBJc1NpbmdsZVplcm9SZWdTZXQoKSB7IHJldHVybiBoYXNfc2luZ2xl X3plcm9fcmVnX3NldF87IH0KKysKKysgIGlubGluZSB2b2lkIE1vdmUoUmVnaXN0ZXIgZHN0LCBT bWkgc21pKSB7IGxpKGRzdCwgT3BlcmFuZChzbWkpKTsgfQorKworKyAgaW5saW5lIHZvaWQgTW92 ZShSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyYykgeworKyAgICBpZiAoZHN0ICE9IHNyYykgewor KyAgICAgIG12KGRzdCwgc3JjKTsKKysgICAgfQorKyAgfQorKworKyAgaW5saW5lIHZvaWQgTW92 ZShGUFVSZWdpc3RlciBkc3QsIEZQVVJlZ2lzdGVyIHNyYykgeworKyAgICBpZiAoZHN0ICE9IHNy YykgZm12X2QoZHN0LCBzcmMpOworKyAgfQorKworKyAgaW5saW5lIHZvaWQgTW92ZShSZWdpc3Rl ciBkc3RfbG93LCBSZWdpc3RlciBkc3RfaGlnaCwgRlBVUmVnaXN0ZXIgc3JjKSB7CisrICAgIGZt dl94X2QoZHN0X2hpZ2gsIHNyYyk7CisrICAgIGZtdl94X3coZHN0X2xvdywgc3JjKTsKKysgICAg c3JsaShkc3RfaGlnaCwgZHN0X2hpZ2gsIDMyKTsKKysgIH0KKysKKysgIGlubGluZSB2b2lkIE1v dmUoUmVnaXN0ZXIgZHN0LCBGUFVSZWdpc3RlciBzcmMpIHsgZm12X3hfZChkc3QsIHNyYyk7IH0K KysKKysgIGlubGluZSB2b2lkIE1vdmUoRlBVUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMpIHsg Zm12X2RfeChkc3QsIHNyYyk7IH0KKysKKysgIC8vIEV4dHJhY3Qgc2lnbi1leHRlbmRlZCB3b3Jk IGZyb20gaGlnaC1oYWxmIG9mIEZQUiB0byBHUFIKKysgIGlubGluZSB2b2lkIEV4dHJhY3RIaWdo V29yZEZyb21GNjQoUmVnaXN0ZXIgZHN0X2hpZ2gsIEZQVVJlZ2lzdGVyIHNyYykgeworKyAgICBm bXZfeF9kKGRzdF9oaWdoLCBzcmMpOworKyAgICBzcmFpKGRzdF9oaWdoLCBkc3RfaGlnaCwgMzIp OworKyAgfQorKworKyAgLy8gSW5zZXJ0IGxvdy13b3JkIGZyb20gR1BSIChzcmNfaGlnaCkgdG8g dGhlIGhpZ2gtaGFsZiBvZiBGUFIgKGRzdCkKKysgIHZvaWQgSW5zZXJ0SGlnaFdvcmRGNjQoRlBV UmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmNfaGlnaCk7CisrCisrICAvLyBFeHRyYWN0IHNpZ24t ZXh0ZW5kZWQgd29yZCBmcm9tIGxvdy1oYWxmIG9mIEZQUiB0byBHUFIKKysgIGlubGluZSB2b2lk IEV4dHJhY3RMb3dXb3JkRnJvbUY2NChSZWdpc3RlciBkc3RfbG93LCBGUFVSZWdpc3RlciBzcmMp IHsKKysgICAgZm12X3hfdyhkc3RfbG93LCBzcmMpOworKyAgfQorKworKyAgLy8gSW5zZXJ0IGxv dy13b3JkIGZyb20gR1BSIChzcmNfaGlnaCkgdG8gdGhlIGxvdy1oYWxmIG9mIEZQUiAoZHN0KQor KyAgdm9pZCBJbnNlcnRMb3dXb3JkRjY0KEZQVVJlZ2lzdGVyIGRzdCwgUmVnaXN0ZXIgc3JjX2xv dyk7CisrCisrICB2b2lkIExvYWRGUFJJbW1lZGlhdGUoRlBVUmVnaXN0ZXIgZHN0LCBmbG9hdCBp bW0pIHsKKysgICAgTG9hZEZQUkltbWVkaWF0ZShkc3QsIGJpdF9jYXN0PHVpbnQzMl90PihpbW0p KTsKKysgIH0KKysgIHZvaWQgTG9hZEZQUkltbWVkaWF0ZShGUFVSZWdpc3RlciBkc3QsIGRvdWJs ZSBpbW0pIHsKKysgICAgTG9hZEZQUkltbWVkaWF0ZShkc3QsIGJpdF9jYXN0PHVpbnQ2NF90Pihp bW0pKTsKKysgIH0KKysgIHZvaWQgTG9hZEZQUkltbWVkaWF0ZShGUFVSZWdpc3RlciBkc3QsIHVp bnQzMl90IHNyYyk7CisrICB2b2lkIExvYWRGUFJJbW1lZGlhdGUoRlBVUmVnaXN0ZXIgZHN0LCB1 aW50NjRfdCBzcmMpOworKworKyAgLy8gQWRkT3ZlcmZsb3c2NCBzZXRzIG92ZXJmbG93IHJlZ2lz dGVyIHRvIGEgbmVnYXRpdmUgdmFsdWUgaWYKKysgIC8vIG92ZXJmbG93IG9jY3VyZWQsIG90aGVy d2lzZSBpdCBpcyB6ZXJvIG9yIHBvc2l0aXZlCisrICB2b2lkIEFkZE92ZXJmbG93NjQoUmVnaXN0 ZXIgZHN0LCBSZWdpc3RlciBsZWZ0LCBjb25zdCBPcGVyYW5kJiByaWdodCwKKysgICAgICAgICAg ICAgICAgICAgICBSZWdpc3RlciBvdmVyZmxvdyk7CisrICAvLyBTdWJPdmVyZmxvdzY0IHNldHMg b3ZlcmZsb3cgcmVnaXN0ZXIgdG8gYSBuZWdhdGl2ZSB2YWx1ZSBpZgorKyAgLy8gb3ZlcmZsb3cg b2NjdXJlZCwgb3RoZXJ3aXNlIGl0IGlzIHplcm8gb3IgcG9zaXRpdmUKKysgIHZvaWQgU3ViT3Zl cmZsb3c2NChSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIGxlZnQsIGNvbnN0IE9wZXJhbmQmIHJpZ2h0 LAorKyAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG92ZXJmbG93KTsKKysgIC8vIE11bE92 ZXJmbG93MzIgc2V0cyBvdmVyZmxvdyByZWdpc3RlciB0byB6ZXJvIGlmIG5vIG92ZXJmbG93IG9j Y3VyZWQKKysgIHZvaWQgTXVsT3ZlcmZsb3czMihSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIGxlZnQs IGNvbnN0IE9wZXJhbmQmIHJpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG92 ZXJmbG93KTsKKysKKysgIC8vIE1JUFMtc3R5bGUgMzItYml0IHVuc2lnbmVkIG11bGgKKysgIHZv aWQgTXVsaHUzMihSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIGxlZnQsIGNvbnN0IE9wZXJhbmQmIHJp Z2h0LAorKyAgICAgICAgICAgICAgIFJlZ2lzdGVyIGxlZnRfemVybywgUmVnaXN0ZXIgcmlnaHRf emVybyk7CisrCisrICAvLyBOdW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIG5lZWRlZCBmb3IgY2FsY3Vs YXRpb24gb2Ygc3dpdGNoIHRhYmxlIGVudHJ5IGFkZHJlc3MKKysgIHN0YXRpYyBjb25zdCBpbnQg a1N3aXRjaFRhYmxlUHJvbG9ndWVTaXplID0gNjsKKysKKysgIC8vIEdldExhYmVsRnVuY3Rpb24g bXVzdCBiZSBsYW1iZGEgJ1tdKHNpemVfdCBpbmRleCkgLT4gTGFiZWwqJyBvciBhCisrICAvLyBm dW5jdG9yL2Z1bmN0aW9uIHdpdGggJ0xhYmVsICpmdW5jKHNpemVfdCBpbmRleCknIGRlY2xhcmF0 aW9uLgorKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmM+CisrICB2b2lkIEdlbmVyYXRlU3dpdGNo VGFibGUoUmVnaXN0ZXIgaW5kZXgsIHNpemVfdCBjYXNlX2NvdW50LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZ1bmMgR2V0TGFiZWxGdW5jdGlvbik7CisrCisrICAvLyBMb2FkIGFuIG9i amVjdCBmcm9tIHRoZSByb290IHRhYmxlLgorKyAgdm9pZCBMb2FkUm9vdChSZWdpc3RlciBkZXN0 aW5hdGlvbiwgUm9vdEluZGV4IGluZGV4KSBvdmVycmlkZTsKKysgIHZvaWQgTG9hZFJvb3QoUmVn aXN0ZXIgZGVzdGluYXRpb24sIFJvb3RJbmRleCBpbmRleCwgQ29uZGl0aW9uIGNvbmQsCisrICAg ICAgICAgICAgICAgIFJlZ2lzdGVyIHNyYzEsIGNvbnN0IE9wZXJhbmQmIHNyYzIpOworKworKyAg Ly8gSWYgdGhlIHZhbHVlIGlzIGEgTmFOLCBjYW5vbmljYWxpemUgdGhlIHZhbHVlIGVsc2UsIGRv IG5vdGhpbmcuCisrICB2b2lkIEZQVUNhbm9uaWNhbGl6ZU5hTihjb25zdCBEb3VibGVSZWdpc3Rl ciBkc3QsIGNvbnN0IERvdWJsZVJlZ2lzdGVyIHNyYyk7CisrCisrICAvLyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysgIC8vIEZQVSBtYWNyb3MuIFRoZXNlIGRvIG5vdCBoYW5kbGUgc3BlY2lhbCBjYXNl cyBsaWtlIE5hTiBvciArLSBpbmYuCisrCisrICAvLyBDb252ZXJ0IHVuc2lnbmVkIHdvcmQgdG8g ZG91YmxlLgorKyAgdm9pZCBDdnRfZF91dyhGUFVSZWdpc3RlciBmZCwgUmVnaXN0ZXIgcnMpOwor KworKyAgLy8gY29udmVydCBzaWduZWQgd29yZCB0byBkb3VibGUuCisrICB2b2lkIEN2dF9kX3co RlBVUmVnaXN0ZXIgZmQsIFJlZ2lzdGVyIHJzKTsKKysKKysgIC8vIENvbnZlcnQgdW5zaWduZWQg bG9uZyB0byBkb3VibGUuCisrICB2b2lkIEN2dF9kX3VsKEZQVVJlZ2lzdGVyIGZkLCBSZWdpc3Rl ciBycyk7CisrCisrICAvLyBDb252ZXJ0IHVuc2lnbmVkIHdvcmQgdG8gZmxvYXQuCisrICB2b2lk IEN2dF9zX3V3KEZQVVJlZ2lzdGVyIGZkLCBSZWdpc3RlciBycyk7CisrCisrICAvLyBjb252ZXJ0 IHNpZ25lZCB3b3JkIHRvIGZsb2F0LgorKyAgdm9pZCBDdnRfc193KEZQVVJlZ2lzdGVyIGZkLCBS ZWdpc3RlciBycyk7CisrCisrICAvLyBDb252ZXJ0IHVuc2lnbmVkIGxvbmcgdG8gZmxvYXQuCisr ICB2b2lkIEN2dF9zX3VsKEZQVVJlZ2lzdGVyIGZkLCBSZWdpc3RlciBycyk7CisrCisrICAvLyBD b252ZXJ0IGRvdWJsZSB0byB1bnNpZ25lZCB3b3JkLgorKyAgdm9pZCBUcnVuY191d19kKFJlZ2lz dGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0ID0gbm9fcmVnKTsKKysKKysg IC8vIENvbnZlcnQgZG91YmxlIHRvIHNpZ25lZCB3b3JkLgorKyAgdm9pZCBUcnVuY193X2QoUmVn aXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1bHQgPSBub19yZWcpOworKwor KyAgLy8gQ29udmVydCBzaW5nbGUgdG8gc2lnbmVkIHdvcmQuCisrICB2b2lkIFRydW5jX3dfcyhS ZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lzdGVyIHJlc3VsdCA9IG5vX3JlZyk7Cisr CisrICAvLyBDb252ZXJ0IGRvdWJsZSB0byB1bnNpZ25lZCBsb25nLgorKyAgdm9pZCBUcnVuY191 bF9kKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0ID0gbm9fcmVn KTsKKysKKysgIC8vIENvbnZlcnQgc2luZ2xlZCB0byBzaWduZWQgbG9uZy4KKysgIHZvaWQgVHJ1 bmNfbF9kKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0ID0gbm9f cmVnKTsKKysKKysgIC8vIENvbnZlcnQgc2luZ2xlIHRvIHVuc2lnbmVkIGxvbmcuCisrICB2b2lk IFRydW5jX3VsX3MoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1bHQg PSBub19yZWcpOworKworKyAgLy8gQ29udmVydCBzaW5nbGVkIHRvIHNpZ25lZCBsb25nLgorKyAg dm9pZCBUcnVuY19sX3MoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1 bHQgPSBub19yZWcpOworKworKyAgLy8gUm91bmQgc2luZ2xlIHRvIHNpZ25lZCB3b3JkLgorKyAg dm9pZCBSb3VuZF93X3MoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1 bHQgPSBub19yZWcpOworKworKyAgLy8gUm91bmQgZG91YmxlIHRvIHNpZ25lZCB3b3JkLgorKyAg dm9pZCBSb3VuZF93X2QoUmVnaXN0ZXIgcmQsIEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1 bHQgPSBub19yZWcpOworKworKyAgLy8gQ2VpbCBzaW5nbGUgdG8gc2lnbmVkIHdvcmQuCisrICB2 b2lkIENlaWxfd19zKFJlZ2lzdGVyIHJkLCBGUFVSZWdpc3RlciBmcywgUmVnaXN0ZXIgcmVzdWx0 ID0gbm9fcmVnKTsKKysKKysgIC8vIENlaWwgZG91YmxlIHRvIHNpZ25lZCB3b3JkLgorKyAgdm9p ZCBDZWlsX3dfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lzdGVyIHJlc3VsdCA9 IG5vX3JlZyk7CisrCisrICAvLyBGbG9vciBzaW5nbGUgdG8gc2lnbmVkIHdvcmQuCisrICB2b2lk IEZsb29yX3dfcyhSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lzdGVyIHJlc3VsdCA9 IG5vX3JlZyk7CisrCisrICAvLyBGbG9vciBkb3VibGUgdG8gc2lnbmVkIHdvcmQuCisrICB2b2lk IEZsb29yX3dfZChSZWdpc3RlciByZCwgRlBVUmVnaXN0ZXIgZnMsIFJlZ2lzdGVyIHJlc3VsdCA9 IG5vX3JlZyk7CisrCisrICAvLyBSb3VuZCBkb3VibGUgZnVuY3Rpb25zCisrICB2b2lkIFRydW5j X2RfZChGUFVSZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIgZnMsIEZQVVJlZ2lzdGVyIGZwdV9zY3Jh dGNoKTsKKysgIHZvaWQgUm91bmRfZF9kKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmcywg RlBVUmVnaXN0ZXIgZnB1X3NjcmF0Y2gpOworKyAgdm9pZCBGbG9vcl9kX2QoRlBVUmVnaXN0ZXIg ZmQsIEZQVVJlZ2lzdGVyIGZzLCBGUFVSZWdpc3RlciBmcHVfc2NyYXRjaCk7CisrICB2b2lkIENl aWxfZF9kKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmcywgRlBVUmVnaXN0ZXIgZnB1X3Nj cmF0Y2gpOworKworKyAgLy8gUm91bmQgZmxvYXQgZnVuY3Rpb25zCisrICB2b2lkIFRydW5jX3Nf cyhGUFVSZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIgZnMsIEZQVVJlZ2lzdGVyIGZwdV9zY3JhdGNo KTsKKysgIHZvaWQgUm91bmRfc19zKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmcywgRlBV UmVnaXN0ZXIgZnB1X3NjcmF0Y2gpOworKyAgdm9pZCBGbG9vcl9zX3MoRlBVUmVnaXN0ZXIgZmQs IEZQVVJlZ2lzdGVyIGZzLCBGUFVSZWdpc3RlciBmcHVfc2NyYXRjaCk7CisrICB2b2lkIENlaWxf c19zKEZQVVJlZ2lzdGVyIGZkLCBGUFVSZWdpc3RlciBmcywgRlBVUmVnaXN0ZXIgZnB1X3NjcmF0 Y2gpOworKworKyAgLy8gSnVtcCB0aGUgcmVnaXN0ZXIgY29udGFpbnMgYSBzbWkuCisrICB2b2lk IEp1bXBJZlNtaShSZWdpc3RlciB2YWx1ZSwgTGFiZWwqIHNtaV9sYWJlbCwgUmVnaXN0ZXIgc2Ny YXRjaCA9IHQzKTsKKysKKysgIHZvaWQgSnVtcElmRXF1YWwoUmVnaXN0ZXIgYSwgaW50MzJfdCBi LCBMYWJlbCogZGVzdCkgeworKyAgICBCcmFuY2goZGVzdCwgZXEsIGEsIE9wZXJhbmQoYikpOwor KyAgfQorKworKyAgdm9pZCBKdW1wSWZMZXNzVGhhbihSZWdpc3RlciBhLCBpbnQzMl90IGIsIExh YmVsKiBkZXN0KSB7CisrICAgIEJyYW5jaChkZXN0LCBsdCwgYSwgT3BlcmFuZChiKSk7CisrICB9 CisrCisrICAvLyBQdXNoIGEgc3RhbmRhcmQgZnJhbWUsIGNvbnNpc3Rpbmcgb2YgcmEsIGZwLCBj b250ZXh0IGFuZCBKUyBmdW5jdGlvbi4KKysgIHZvaWQgUHVzaFN0YW5kYXJkRnJhbWUoUmVnaXN0 ZXIgZnVuY3Rpb25fcmVnKTsKKysKKysgIC8vIEdldCB0aGUgYWN0dWFsIGFjdGl2YXRpb24gZnJh bWUgYWxpZ25tZW50IGZvciB0YXJnZXQgZW52aXJvbm1lbnQuCisrICBzdGF0aWMgaW50IEFjdGl2 YXRpb25GcmFtZUFsaWdubWVudCgpOworKworKyAgLy8gQ2FsY3VsYXRlZCBzY2FsZWQgYWRkcmVz cyAocmQpIGFzIHJ0ICsgcnMgPDwgc2EKKysgIHZvaWQgQ2FsY1NjYWxlZEFkZHJlc3MoUmVnaXN0 ZXIgcmQsIFJlZ2lzdGVyIHJzLCBSZWdpc3RlciBydCwgdWludDhfdCBzYSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHQzKTsKKysKKysgIC8vIENvbXB1dGUg dGhlIHN0YXJ0IG9mIHRoZSBnZW5lcmF0ZWQgaW5zdHJ1Y3Rpb24gc3RyZWFtIGZyb20gdGhlIGN1 cnJlbnQgUEMuCisrICAvLyBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIGVtYmVkZGluZyB0aGUg e0NvZGVPYmplY3R9IGhhbmRsZSBhcyBhIHJlZmVyZW5jZS4KKysgIHZvaWQgQ29tcHV0ZUNvZGVT dGFydEFkZHJlc3MoUmVnaXN0ZXIgZHN0KTsKKysKKysgIHZvaWQgUmVzZXRTcGVjdWxhdGlvblBv aXNvblJlZ2lzdGVyKCk7CisrCisrICAvLyBDb250cm9sLWZsb3cgaW50ZWdyaXR5OgorKworKyAg Ly8gRGVmaW5lIGEgZnVuY3Rpb24gZW50cnlwb2ludC4gVGhpcyBkb2Vzbid0IGVtaXQgYW55IGNv ZGUgZm9yIHRoaXMKKysgIC8vIGFyY2hpdGVjdHVyZSwgYXMgY29udHJvbC1mbG93IGludGVncml0 eSBpcyBub3Qgc3VwcG9ydGVkIGZvciBpdC4KKysgIHZvaWQgQ29kZUVudHJ5KCkge30KKysgIC8v IERlZmluZSBhbiBleGNlcHRpb24gaGFuZGxlci4KKysgIHZvaWQgRXhjZXB0aW9uSGFuZGxlcigp IHt9CisrICAvLyBEZWZpbmUgYW4gZXhjZXB0aW9uIGhhbmRsZXIgYW5kIGJpbmQgYSBsYWJlbC4K KysgIHZvaWQgQmluZEV4Y2VwdGlvbkhhbmRsZXIoTGFiZWwqIGxhYmVsKSB7IGJpbmQobGFiZWwp OyB9CisrCisrIHByb3RlY3RlZDoKKysgIGlubGluZSBSZWdpc3RlciBHZXRSdEFzUmVnaXN0ZXJI ZWxwZXIoY29uc3QgT3BlcmFuZCYgcnQsIFJlZ2lzdGVyIHNjcmF0Y2gpOworKyAgaW5saW5lIGlu dDMyX3QgR2V0T2Zmc2V0KGludDMyX3Qgb2Zmc2V0LCBMYWJlbCogTCwgT2Zmc2V0U2l6ZSBiaXRz KTsKKysKKysgcHJpdmF0ZToKKysgIGJvb2wgaGFzX2RvdWJsZV96ZXJvX3JlZ19zZXRfID0gZmFs c2U7CisrICBib29sIGhhc19zaW5nbGVfemVyb19yZWdfc2V0XyA9IGZhbHNlOworKworKyAgLy8g UGVyZm9ybXMgYSB0cnVuY2F0aW5nIGNvbnZlcnNpb24gb2YgYSBmbG9hdGluZyBwb2ludCBudW1i ZXIgYXMgdXNlZCBieQorKyAgLy8gdGhlIEpTIGJpdHdpc2Ugb3BlcmF0aW9ucy4gU2VlIEVDTUEt MjYyIDkuNTogVG9JbnQzMi4gR29lcyB0byAnZG9uZScgaWYgaXQKKysgIC8vIHN1Y2NlZWRzLCBv dGhlcndpc2UgZmFsbHMgdGhyb3VnaCBpZiByZXN1bHQgaXMgc2F0dXJhdGVkLiBPbiByZXR1cm4K KysgIC8vICdyZXN1bHQnIGVpdGhlciBob2xkcyBhbnN3ZXIsIG9yIGlzIGNsb2JiZXJlZCBvbiBm YWxsIHRocm91Z2guCisrICB2b2lkIFRyeUlubGluZVRydW5jYXRlRG91YmxlVG9JKFJlZ2lzdGVy IHJlc3VsdCwgRG91YmxlUmVnaXN0ZXIgaW5wdXQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExhYmVsKiBkb25lKTsKKysKKysgIHZvaWQgQ2FsbENGdW5jdGlvbkhlbHBlcihS ZWdpc3RlciBmdW5jdGlvbiwgaW50IG51bV9yZWdfYXJndW1lbnRzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBudW1fZG91YmxlX2FyZ3VtZW50cyk7CisrCisrICAvLyBUT0RPKFJJ U0NWKSBSZW9yZGVyIHBhcmFtZXRlcnMgc28gb3V0IHBhcmFtZXRlcnMgY29tZSBsYXN0LgorKyAg Ym9vbCBDYWxjdWxhdGVPZmZzZXQoTGFiZWwqIEwsIGludDMyX3QqIG9mZnNldCwgT2Zmc2V0U2l6 ZSBiaXRzKTsKKysgIGJvb2wgQ2FsY3VsYXRlT2Zmc2V0KExhYmVsKiBMLCBpbnQzMl90KiBvZmZz ZXQsIE9mZnNldFNpemUgYml0cywKKysgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyKiBz Y3JhdGNoLCBjb25zdCBPcGVyYW5kJiBydCk7CisrCisrICB2b2lkIEJyYW5jaFNob3J0SGVscGVy KGludDMyX3Qgb2Zmc2V0LCBMYWJlbCogTCk7CisrICBib29sIEJyYW5jaFNob3J0SGVscGVyKGlu dDMyX3Qgb2Zmc2V0LCBMYWJlbCogTCwgQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHJzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBPcGVyYW5kJiBydCk7CisrICBib29sIEJyYW5j aFNob3J0Q2hlY2soaW50MzJfdCBvZmZzZXQsIExhYmVsKiBMLCBDb25kaXRpb24gY29uZCwgUmVn aXN0ZXIgcnMsCisrICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYgcnQpOwor KworKyAgdm9pZCBCcmFuY2hBbmRMaW5rU2hvcnRIZWxwZXIoaW50MzJfdCBvZmZzZXQsIExhYmVs KiBMKTsKKysgIHZvaWQgQnJhbmNoQW5kTGlua1Nob3J0KGludDMyX3Qgb2Zmc2V0KTsKKysgIHZv aWQgQnJhbmNoQW5kTGlua1Nob3J0KExhYmVsKiBMKTsKKysgIGJvb2wgQnJhbmNoQW5kTGlua1No b3J0SGVscGVyKGludDMyX3Qgb2Zmc2V0LCBMYWJlbCogTCwgQ29uZGl0aW9uIGNvbmQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYg cnQpOworKyAgYm9vbCBCcmFuY2hBbmRMaW5rU2hvcnRDaGVjayhpbnQzMl90IG9mZnNldCwgTGFi ZWwqIEwsIENvbmRpdGlvbiBjb25kLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlciBycywgY29uc3QgT3BlcmFuZCYgcnQpOworKyAgdm9pZCBCcmFuY2hMb25nKExhYmVs KiBMKTsKKysgIHZvaWQgQnJhbmNoQW5kTGlua0xvbmcoTGFiZWwqIEwpOworKworKyAgdGVtcGxh dGUgPHR5cGVuYW1lIEZfVFlQRT4KKysgIHZvaWQgUm91bmRIZWxwZXIoRlBVUmVnaXN0ZXIgZHN0 LCBGUFVSZWdpc3RlciBzcmMsIEZQVVJlZ2lzdGVyIGZwdV9zY3JhdGNoLAorKyAgICAgICAgICAg ICAgICAgICBSb3VuZGluZ01vZGUgbW9kZSk7CisrCisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJ1 bmNGdW5jPgorKyAgdm9pZCBSb3VuZEZsb2F0aW5nUG9pbnRUb0ludGVnZXIoUmVnaXN0ZXIgcmQs IEZQVVJlZ2lzdGVyIGZzLCBSZWdpc3RlciByZXN1bHQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUcnVuY0Z1bmMgdHJ1bmMpOworKworKyAgLy8gUHVzaCBhIGZpeGVkIGZy YW1lLCBjb25zaXN0aW5nIG9mIHJhLCBmcC4KKysgIHZvaWQgUHVzaENvbW1vbkZyYW1lKFJlZ2lz dGVyIG1hcmtlcl9yZWcgPSBub19yZWcpOworKworKyAgdm9pZCBDYWxsUmVjb3JkV3JpdGVTdHVi KFJlZ2lzdGVyIG9iamVjdCwgUmVnaXN0ZXIgYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZW1lbWJlcmVkU2V0QWN0aW9uIHJlbWVtYmVyZWRfc2V0X2FjdGlvbiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICBTYXZlRlBSZWdzTW9kZSBmcF9tb2RlLCBIYW5kbGU8Q29k ZT4gY29kZV90YXJnZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyB3YXNt X3RhcmdldCk7CisrfTsKKysKKysvLyBNYWNyb0Fzc2VtYmxlciBpbXBsZW1lbnRzIGEgY29sbGVj dGlvbiBvZiBmcmVxdWVudGx5IHVzZWQgbWFjcm9zLgorK2NsYXNzIFY4X0VYUE9SVF9QUklWQVRF IE1hY3JvQXNzZW1ibGVyIDogcHVibGljIFR1cmJvQXNzZW1ibGVyIHsKKysgcHVibGljOgorKyAg dXNpbmcgVHVyYm9Bc3NlbWJsZXI6OlR1cmJvQXNzZW1ibGVyOworKworKyAgYm9vbCBJc05lYXIo TGFiZWwqIEwsIENvbmRpdGlvbiBjb25kLCBpbnQgcnNfcmVnKTsKKysKKysgIC8vIFN3YXAgdHdv IHJlZ2lzdGVycy4gIElmIHRoZSBzY3JhdGNoIHJlZ2lzdGVyIGlzIG9taXR0ZWQgdGhlbiBhIHNs aWdodGx5CisrICAvLyBsZXNzIGVmZmljaWVudCBmb3JtIHVzaW5nIHhvciBpbnN0ZWFkIG9mIG1v diBpcyBlbWl0dGVkLgorKyAgdm9pZCBTd2FwKFJlZ2lzdGVyIHJlZzEsIFJlZ2lzdGVyIHJlZzIs IFJlZ2lzdGVyIHNjcmF0Y2ggPSBub19yZWcpOworKworKyAgdm9pZCBQdXNoUm9vdChSb290SW5k ZXggaW5kZXgpIHsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7Cisr ICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIExvYWRSb290KHNj cmF0Y2gsIGluZGV4KTsKKysgICAgUHVzaChzY3JhdGNoKTsKKysgIH0KKysKKysgIC8vIENvbXBh cmUgdGhlIG9iamVjdCBpbiBhIHJlZ2lzdGVyIHRvIGEgdmFsdWUgYW5kIGp1bXAgaWYgdGhleSBh cmUgZXF1YWwuCisrICB2b2lkIEp1bXBJZlJvb3QoUmVnaXN0ZXIgd2l0aCwgUm9vdEluZGV4IGlu ZGV4LCBMYWJlbCogaWZfZXF1YWwpIHsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVt cHModGhpcyk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAg IExvYWRSb290KHNjcmF0Y2gsIGluZGV4KTsKKysgICAgQnJhbmNoKGlmX2VxdWFsLCBlcSwgd2l0 aCwgT3BlcmFuZChzY3JhdGNoKSk7CisrICB9CisrCisrICAvLyBDb21wYXJlIHRoZSBvYmplY3Qg aW4gYSByZWdpc3RlciB0byBhIHZhbHVlIGFuZCBqdW1wIGlmIHRoZXkgYXJlIG5vdCBlcXVhbC4K KysgIHZvaWQgSnVtcElmTm90Um9vdChSZWdpc3RlciB3aXRoLCBSb290SW5kZXggaW5kZXgsIExh YmVsKiBpZl9ub3RfZXF1YWwpIHsKKysgICAgVXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHMo dGhpcyk7CisrICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0ZW1wcy5BY3F1aXJlKCk7CisrICAgIExv YWRSb290KHNjcmF0Y2gsIGluZGV4KTsKKysgICAgQnJhbmNoKGlmX25vdF9lcXVhbCwgbmUsIHdp dGgsIE9wZXJhbmQoc2NyYXRjaCkpOworKyAgfQorKworKyAgLy8gQ2hlY2tzIGlmIHZhbHVlIGlz IGluIHJhbmdlIFtsb3dlcl9saW1pdCwgaGlnaGVyX2xpbWl0XSB1c2luZyBhIHNpbmdsZQorKyAg Ly8gY29tcGFyaXNvbi4KKysgIHZvaWQgSnVtcElmSXNJblJhbmdlKFJlZ2lzdGVyIHZhbHVlLCB1 bnNpZ25lZCBsb3dlcl9saW1pdCwKKysgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGhp Z2hlcl9saW1pdCwgTGFiZWwqIG9uX2luX3JhbmdlKTsKKysKKysgIC8vIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyAgLy8gR0MgU3VwcG9ydAorKworKyAgLy8gTm90aWZ5IHRoZSBnYXJiYWdlIGNvbGxl Y3RvciB0aGF0IHdlIHdyb3RlIGEgcG9pbnRlciBpbnRvIGFuIG9iamVjdC4KKysgIC8vIHxvYmpl Y3R8IGlzIHRoZSBvYmplY3QgYmVpbmcgc3RvcmVkIGludG8sIHx2YWx1ZXwgaXMgdGhlIG9iamVj dCBiZWluZworKyAgLy8gc3RvcmVkLiAgdmFsdWUgYW5kIHNjcmF0Y2ggcmVnaXN0ZXJzIGFyZSBj bG9iYmVyZWQgYnkgdGhlIG9wZXJhdGlvbi4KKysgIC8vIFRoZSBvZmZzZXQgaXMgdGhlIG9mZnNl dCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgb2JqZWN0LCBub3QgdGhlIG9mZnNldCBmcm9tCisrICAv LyB0aGUgdGFnZ2VkIEhlYXBPYmplY3QgcG9pbnRlci4gIEZvciB1c2Ugd2l0aCBGaWVsZE9wZXJh bmQocmVnLCBvZmYpLgorKyAgdm9pZCBSZWNvcmRXcml0ZUZpZWxkKAorKyAgICAgIFJlZ2lzdGVy IG9iamVjdCwgaW50IG9mZnNldCwgUmVnaXN0ZXIgdmFsdWUsIFJlZ2lzdGVyIHNjcmF0Y2gsCisr ICAgICAgUkFTdGF0dXMgcmFfc3RhdHVzLCBTYXZlRlBSZWdzTW9kZSBzYXZlX2ZwLAorKyAgICAg IFJlbWVtYmVyZWRTZXRBY3Rpb24gcmVtZW1iZXJlZF9zZXRfYWN0aW9uID0gRU1JVF9SRU1FTUJF UkVEX1NFVCwKKysgICAgICBTbWlDaGVjayBzbWlfY2hlY2sgPSBJTkxJTkVfU01JX0NIRUNLKTsK KysKKysgIC8vIEZvciBhIGdpdmVuIHxvYmplY3R8IG5vdGlmeSB0aGUgZ2FyYmFnZSBjb2xsZWN0 b3IgdGhhdCB0aGUgc2xvdCB8YWRkcmVzc3wKKysgIC8vIGhhcyBiZWVuIHdyaXR0ZW4uICB8dmFs dWV8IGlzIHRoZSBvYmplY3QgYmVpbmcgc3RvcmVkLiBUaGUgdmFsdWUgYW5kCisrICAvLyBhZGRy ZXNzIHJlZ2lzdGVycyBhcmUgY2xvYmJlcmVkIGJ5IHRoZSBvcGVyYXRpb24uCisrICB2b2lkIFJl Y29yZFdyaXRlKAorKyAgICAgIFJlZ2lzdGVyIG9iamVjdCwgUmVnaXN0ZXIgYWRkcmVzcywgUmVn aXN0ZXIgdmFsdWUsIFJBU3RhdHVzIHJhX3N0YXR1cywKKysgICAgICBTYXZlRlBSZWdzTW9kZSBz YXZlX2ZwLAorKyAgICAgIFJlbWVtYmVyZWRTZXRBY3Rpb24gcmVtZW1iZXJlZF9zZXRfYWN0aW9u ID0gRU1JVF9SRU1FTUJFUkVEX1NFVCwKKysgICAgICBTbWlDaGVjayBzbWlfY2hlY2sgPSBJTkxJ TkVfU01JX0NIRUNLKTsKKysKKysgIC8vIHZvaWQgUHJlZihpbnQzMl90IGhpbnQsIGNvbnN0IE1l bU9wZXJhbmQmIHJzKTsKKysKKysgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgLy8gUHNldWRv LWluc3RydWN0aW9ucy4KKysKKysgIHZvaWQgTG9hZFdvcmRQYWlyKFJlZ2lzdGVyIHJkLCBjb25z dCBNZW1PcGVyYW5kJiBycywgUmVnaXN0ZXIgc2NyYXRjaCA9IHQzKTsKKysgIHZvaWQgU3RvcmVX b3JkUGFpcihSZWdpc3RlciByZCwgY29uc3QgTWVtT3BlcmFuZCYgcnMsIFJlZ2lzdGVyIHNjcmF0 Y2ggPSB0Myk7CisrCisrICB2b2lkIE1hZGRfcyhGUFVSZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIg ZnIsIEZQVVJlZ2lzdGVyIGZzLCBGUFVSZWdpc3RlciBmdCk7CisrICB2b2lkIE1hZGRfZChGUFVS ZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIgZnIsIEZQVVJlZ2lzdGVyIGZzLCBGUFVSZWdpc3RlciBm dCk7CisrICB2b2lkIE1zdWJfcyhGUFVSZWdpc3RlciBmZCwgRlBVUmVnaXN0ZXIgZnIsIEZQVVJl Z2lzdGVyIGZzLCBGUFVSZWdpc3RlciBmdCk7CisrICB2b2lkIE1zdWJfZChGUFVSZWdpc3RlciBm ZCwgRlBVUmVnaXN0ZXIgZnIsIEZQVVJlZ2lzdGVyIGZzLCBGUFVSZWdpc3RlciBmdCk7CisrCisr ICAvLyBFbnRlciBleGl0IGZyYW1lLgorKyAgLy8gYXJnYyAtIGFyZ3VtZW50IGNvdW50IHRvIGJl IGRyb3BwZWQgYnkgTGVhdmVFeGl0RnJhbWUuCisrICAvLyBzYXZlX2RvdWJsZXMgLSBzYXZlcyBG UFUgcmVnaXN0ZXJzIG9uIHN0YWNrLCBjdXJyZW50bHkgZGlzYWJsZWQuCisrICAvLyBzdGFja19z cGFjZSAtIGV4dHJhIHN0YWNrIHNwYWNlLgorKyAgdm9pZCBFbnRlckV4aXRGcmFtZShib29sIHNh dmVfZG91YmxlcywgaW50IHN0YWNrX3NwYWNlID0gMCwKKysgICAgICAgICAgICAgICAgICAgICAg U3RhY2tGcmFtZTo6VHlwZSBmcmFtZV90eXBlID0gU3RhY2tGcmFtZTo6RVhJVCk7CisrCisrICAv LyBMZWF2ZSB0aGUgY3VycmVudCBleGl0IGZyYW1lLgorKyAgdm9pZCBMZWF2ZUV4aXRGcmFtZShi b29sIHNhdmVfZG91YmxlcywgUmVnaXN0ZXIgYXJnX2NvdW50LAorKyAgICAgICAgICAgICAgICAg ICAgICBib29sIGRvX3JldHVybiA9IE5PX0VNSVRfUkVUVVJOLAorKyAgICAgICAgICAgICAgICAg ICAgICBib29sIGFyZ3VtZW50X2NvdW50X2lzX2xlbmd0aCA9IGZhbHNlKTsKKysKKysgIHZvaWQg TG9hZE1hcChSZWdpc3RlciBkZXN0aW5hdGlvbiwgUmVnaXN0ZXIgb2JqZWN0KTsKKysKKysgIC8v IE1ha2Ugc3VyZSB0aGUgc3RhY2sgaXMgYWxpZ25lZC4gT25seSBlbWl0cyBjb2RlIGluIGRlYnVn IG1vZGUuCisrICB2b2lkIEFzc2VydFN0YWNrSXNBbGlnbmVkKCk7CisrCisrICAvLyBMb2FkIHRo ZSBnbG9iYWwgcHJveHkgZnJvbSB0aGUgY3VycmVudCBjb250ZXh0LgorKyAgdm9pZCBMb2FkR2xv YmFsUHJveHkoUmVnaXN0ZXIgZHN0KSB7CisrICAgIExvYWROYXRpdmVDb250ZXh0U2xvdChDb250 ZXh0OjpHTE9CQUxfUFJPWFlfSU5ERVgsIGRzdCk7CisrICB9CisrCisrICB2b2lkIExvYWROYXRp dmVDb250ZXh0U2xvdChpbnQgaW5kZXgsIFJlZ2lzdGVyIGRzdCk7CisrCisrICAvLyBMb2FkIHRo ZSBpbml0aWFsIG1hcCBmcm9tIHRoZSBnbG9iYWwgZnVuY3Rpb24uIFRoZSByZWdpc3RlcnMKKysg IC8vIGZ1bmN0aW9uIGFuZCBtYXAgY2FuIGJlIHRoZSBzYW1lLCBmdW5jdGlvbiBpcyB0aGVuIG92 ZXJ3cml0dGVuLgorKyAgdm9pZCBMb2FkR2xvYmFsRnVuY3Rpb25Jbml0aWFsTWFwKFJlZ2lzdGVy IGZ1bmN0aW9uLCBSZWdpc3RlciBtYXAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVnaXN0ZXIgc2NyYXRjaCk7CisrCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICAv LyBKYXZhU2NyaXB0IGludm9rZXMuCisrCisrICAvLyBJbnZva2UgdGhlIEphdmFTY3JpcHQgZnVu Y3Rpb24gY29kZSBieSBlaXRoZXIgY2FsbGluZyBvciBqdW1waW5nLgorKyAgdm9pZCBJbnZva2VG dW5jdGlvbkNvZGUoUmVnaXN0ZXIgZnVuY3Rpb24sIFJlZ2lzdGVyIG5ld190YXJnZXQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBleHBlY3RlZF9wYXJhbWV0ZXJfY291bnQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBhY3R1YWxfcGFyYW1ldGVyX2Nv dW50LCBJbnZva2VGbGFnIGZsYWcpOworKworKyAgLy8gT24gZnVuY3Rpb24gY2FsbCwgY2FsbCBp bnRvIHRoZSBkZWJ1Z2dlciBpZiBuZWNlc3NhcnkuCisrICB2b2lkIENoZWNrRGVidWdIb29rKFJl Z2lzdGVyIGZ1biwgUmVnaXN0ZXIgbmV3X3RhcmdldCwKKysgICAgICAgICAgICAgICAgICAgICAg UmVnaXN0ZXIgZXhwZWN0ZWRfcGFyYW1ldGVyX2NvdW50LAorKyAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciBhY3R1YWxfcGFyYW1ldGVyX2NvdW50KTsKKysKKysgIC8vIEludm9rZSB0aGUg SmF2YVNjcmlwdCBmdW5jdGlvbiBpbiB0aGUgZ2l2ZW4gcmVnaXN0ZXIuIENoYW5nZXMgdGhlCisr ICAvLyBjdXJyZW50IGNvbnRleHQgdG8gdGhlIGNvbnRleHQgaW4gdGhlIGZ1bmN0aW9uIGJlZm9y ZSBpbnZva2luZy4KKysgIHZvaWQgSW52b2tlRnVuY3Rpb25XaXRoTmV3VGFyZ2V0KFJlZ2lzdGVy IGZ1bmN0aW9uLCBSZWdpc3RlciBuZXdfdGFyZ2V0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgYWN0dWFsX3BhcmFtZXRlcl9jb3VudCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEludm9rZUZsYWcgZmxhZyk7CisrICB2b2lkIEludm9r ZUZ1bmN0aW9uKFJlZ2lzdGVyIGZ1bmN0aW9uLCBSZWdpc3RlciBleHBlY3RlZF9wYXJhbWV0ZXJf Y291bnQsCisrICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGFjdHVhbF9wYXJhbWV0ZXJf Y291bnQsIEludm9rZUZsYWcgZmxhZyk7CisrCisrICAvLyBGcmFtZSByZXN0YXJ0IHN1cHBvcnQu CisrICB2b2lkIE1heWJlRHJvcEZyYW1lcygpOworKworKyAgLy8gRXhjZXB0aW9uIGhhbmRsaW5n LgorKworKyAgLy8gUHVzaCBhIG5ldyBzdGFjayBoYW5kbGVyIGFuZCBsaW5rIGludG8gc3RhY2sg aGFuZGxlciBjaGFpbi4KKysgIHZvaWQgUHVzaFN0YWNrSGFuZGxlcigpOworKworKyAgLy8gVW5s aW5rIHRoZSBzdGFjayBoYW5kbGVyIG9uIHRvcCBvZiB0aGUgc3RhY2sgZnJvbSB0aGUgc3RhY2sg aGFuZGxlciBjaGFpbi4KKysgIC8vIE11c3QgcHJlc2VydmUgdGhlIHJlc3VsdCByZWdpc3Rlci4K KysgIHZvaWQgUG9wU3RhY2tIYW5kbGVyKCk7CisrCisrICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr ICAvLyBTdXBwb3J0IGZ1bmN0aW9ucy4KKysKKysgIHZvaWQgR2V0T2JqZWN0VHlwZShSZWdpc3Rl ciBmdW5jdGlvbiwgUmVnaXN0ZXIgbWFwLCBSZWdpc3RlciB0eXBlX3JlZyk7CisrCisrICAvLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrICAvLyBSdW50aW1lIGNhbGxzLgorKworKyAgLy8gQ2FsbCBhIHJ1 bnRpbWUgcm91dGluZS4KKysgIHZvaWQgQ2FsbFJ1bnRpbWUoY29uc3QgUnVudGltZTo6RnVuY3Rp b24qIGYsIGludCBudW1fYXJndW1lbnRzLAorKyAgICAgICAgICAgICAgICAgICBTYXZlRlBSZWdz TW9kZSBzYXZlX2RvdWJsZXMgPSBrRG9udFNhdmVGUFJlZ3MpOworKworKyAgLy8gQ29udmVuaWVu Y2UgZnVuY3Rpb246IFNhbWUgYXMgYWJvdmUsIGJ1dCB0YWtlcyB0aGUgZmlkIGluc3RlYWQuCisr ICB2b2lkIENhbGxSdW50aW1lKFJ1bnRpbWU6OkZ1bmN0aW9uSWQgZmlkLAorKyAgICAgICAgICAg ICAgICAgICBTYXZlRlBSZWdzTW9kZSBzYXZlX2RvdWJsZXMgPSBrRG9udFNhdmVGUFJlZ3MpIHsK KysgICAgY29uc3QgUnVudGltZTo6RnVuY3Rpb24qIGZ1bmN0aW9uID0gUnVudGltZTo6RnVuY3Rp b25Gb3JJZChmaWQpOworKyAgICBDYWxsUnVudGltZShmdW5jdGlvbiwgZnVuY3Rpb24tPm5hcmdz LCBzYXZlX2RvdWJsZXMpOworKyAgfQorKworKyAgLy8gQ29udmVuaWVuY2UgZnVuY3Rpb246IFNh bWUgYXMgYWJvdmUsIGJ1dCB0YWtlcyB0aGUgZmlkIGluc3RlYWQuCisrICB2b2lkIENhbGxSdW50 aW1lKFJ1bnRpbWU6OkZ1bmN0aW9uSWQgZmlkLCBpbnQgbnVtX2FyZ3VtZW50cywKKysgICAgICAg ICAgICAgICAgICAgU2F2ZUZQUmVnc01vZGUgc2F2ZV9kb3VibGVzID0ga0RvbnRTYXZlRlBSZWdz KSB7CisrICAgIENhbGxSdW50aW1lKFJ1bnRpbWU6OkZ1bmN0aW9uRm9ySWQoZmlkKSwgbnVtX2Fy Z3VtZW50cywgc2F2ZV9kb3VibGVzKTsKKysgIH0KKysKKysgIC8vIENvbnZlbmllbmNlIGZ1bmN0 aW9uOiB0YWlsIGNhbGwgYSBydW50aW1lIHJvdXRpbmUgKGp1bXApLgorKyAgdm9pZCBUYWlsQ2Fs bFJ1bnRpbWUoUnVudGltZTo6RnVuY3Rpb25JZCBmaWQpOworKworKyAgLy8gSnVtcCB0byB0aGUg YnVpbHRpbiByb3V0aW5lLgorKyAgdm9pZCBKdW1wVG9FeHRlcm5hbFJlZmVyZW5jZShjb25zdCBF eHRlcm5hbFJlZmVyZW5jZSYgYnVpbHRpbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBidWlsdGluX2V4aXRfZnJhbWUgPSBmYWxzZSk7CisrCisrICAvLyBHZW5lcmF0ZXMg YSB0cmFtcG9saW5lIHRvIGp1bXAgdG8gdGhlIG9mZi1oZWFwIGluc3RydWN0aW9uIHN0cmVhbS4K KysgIHZvaWQgSnVtcFRvSW5zdHJ1Y3Rpb25TdHJlYW0oQWRkcmVzcyBlbnRyeSk7CisrCisrICAv LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgIC8vIEluLXBsYWNlIHdlYWsgcmVmZXJlbmNlcy4KKysg IHZvaWQgTG9hZFdlYWtWYWx1ZShSZWdpc3RlciBvdXQsIFJlZ2lzdGVyIGluLCBMYWJlbCogdGFy Z2V0X2lmX2NsZWFyZWQpOworKworKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgLy8gU3RhdHND b3VudGVyIHN1cHBvcnQuCisrCisrICB2b2lkIEluY3JlbWVudENvdW50ZXIoU3RhdHNDb3VudGVy KiBjb3VudGVyLCBpbnQgdmFsdWUsIFJlZ2lzdGVyIHNjcmF0Y2gxLAorKyAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gyKTsKKysgIHZvaWQgRGVjcmVtZW50Q291bnRlcihT dGF0c0NvdW50ZXIqIGNvdW50ZXIsIGludCB2YWx1ZSwgUmVnaXN0ZXIgc2NyYXRjaDEsCisrICAg ICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDIpOworKworKyAgLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyAgLy8gU21pIHV0aWxpdGllcy4KKysKKysgIHZvaWQgU21pVGFnKFJlZ2lz dGVyIGRzdCwgUmVnaXN0ZXIgc3JjKSB7CisrICAgIFNUQVRJQ19BU1NFUlQoa1NtaVRhZyA9PSAw KTsKKysgICAgaWYgKFNtaVZhbHVlc0FyZTMyQml0cygpKSB7CisrICAgICAgLy8gRklYTUUoUklT Q1YpOiBkbyBub3QgdW5kZXJzdGFuZCB0aGUgbG9naWMgaGVyZQorKyAgICAgIHNsbGkoZHN0LCBz cmMsIDMyKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBEQ0hFQ0soU21pVmFsdWVzQXJlMzFCaXRz KCkpOworKyAgICAgIEFkZDMyKGRzdCwgc3JjLCBzcmMpOworKyAgICB9CisrICB9CisrCisrICB2 b2lkIFNtaVRhZyhSZWdpc3RlciByZWcpIHsgU21pVGFnKHJlZywgcmVnKTsgfQorKworKyAgLy8g TGVmdC1zaGlmdGVkIGZyb20gaW50MzIgZXF1aXZhbGVudCBvZiBTbWkuCisrICB2b2lkIFNtaVNj YWxlKFJlZ2lzdGVyIGRzdCwgUmVnaXN0ZXIgc3JjLCBpbnQgc2NhbGUpIHsKKysgICAgaWYgKFNt aVZhbHVlc0FyZTMyQml0cygpKSB7CisrICAgICAgLy8gVGhlIGludCBwb3J0aW9uIGlzIHVwcGVy IDMyLWJpdHMgb2YgNjQtYml0IHdvcmQuCisrICAgICAgc3JhaShkc3QsIHNyYywgKGtTbWlTaGlm dCAtIHNjYWxlKSAmIDB4M0YpOworKyAgICB9IGVsc2UgeworKyAgICAgIERDSEVDSyhTbWlWYWx1 ZXNBcmUzMUJpdHMoKSk7CisrICAgICAgRENIRUNLX0dFKHNjYWxlLCBrU21pVGFnU2l6ZSk7Cisr ICAgICAgc2xsaXcoZHN0LCBzcmMsIHNjYWxlIC0ga1NtaVRhZ1NpemUpOworKyAgICB9CisrICB9 CisrCisrICAvLyBUZXN0IGlmIHRoZSByZWdpc3RlciBjb250YWlucyBhIHNtaS4KKysgIGlubGlu ZSB2b2lkIFNtaVRzdChSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgc2NyYXRjaCkgeworKyAgICBB bmQoc2NyYXRjaCwgdmFsdWUsIE9wZXJhbmQoa1NtaVRhZ01hc2spKTsKKysgIH0KKysKKysgIC8v IEp1bXAgaWYgdGhlIHJlZ2lzdGVyIGNvbnRhaW5zIGEgbm9uLXNtaS4KKysgIHZvaWQgSnVtcElm Tm90U21pKFJlZ2lzdGVyIHZhbHVlLCBMYWJlbCogbm90X3NtaV9sYWJlbCwKKysgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2ggPSB0Myk7CisrCisrICAvLyBBYm9ydCBleGVjdXRp b24gaWYgYXJndW1lbnQgaXMgYSBzbWksIGVuYWJsZWQgdmlhIC0tZGVidWctY29kZS4KKysgIHZv aWQgQXNzZXJ0Tm90U21pKFJlZ2lzdGVyIG9iamVjdCk7CisrICB2b2lkIEFzc2VydFNtaShSZWdp c3RlciBvYmplY3QpOworKworKyAgLy8gQWJvcnQgZXhlY3V0aW9uIGlmIGFyZ3VtZW50IGlzIG5v dCBhIENvbnN0cnVjdG9yLCBlbmFibGVkIHZpYSAtLWRlYnVnLWNvZGUuCisrICB2b2lkIEFzc2Vy dENvbnN0cnVjdG9yKFJlZ2lzdGVyIG9iamVjdCk7CisrCisrICAvLyBBYm9ydCBleGVjdXRpb24g aWYgYXJndW1lbnQgaXMgbm90IGEgSlNGdW5jdGlvbiwgZW5hYmxlZCB2aWEgLS1kZWJ1Zy1jb2Rl LgorKyAgdm9pZCBBc3NlcnRGdW5jdGlvbihSZWdpc3RlciBvYmplY3QpOworKworKyAgLy8gQWJv cnQgZXhlY3V0aW9uIGlmIGFyZ3VtZW50IGlzIG5vdCBhIEpTQm91bmRGdW5jdGlvbiwKKysgIC8v IGVuYWJsZWQgdmlhIC0tZGVidWctY29kZS4KKysgIHZvaWQgQXNzZXJ0Qm91bmRGdW5jdGlvbihS ZWdpc3RlciBvYmplY3QpOworKworKyAgLy8gQWJvcnQgZXhlY3V0aW9uIGlmIGFyZ3VtZW50IGlz IG5vdCBhIEpTR2VuZXJhdG9yT2JqZWN0IChvciBzdWJjbGFzcyksCisrICAvLyBlbmFibGVkIHZp YSAtLWRlYnVnLWNvZGUuCisrICB2b2lkIEFzc2VydEdlbmVyYXRvck9iamVjdChSZWdpc3RlciBv YmplY3QpOworKworKyAgLy8gQWJvcnQgZXhlY3V0aW9uIGlmIGFyZ3VtZW50IGlzIG5vdCB1bmRl ZmluZWQgb3IgYW4gQWxsb2NhdGlvblNpdGUsIGVuYWJsZWQKKysgIC8vIHZpYSAtLWRlYnVnLWNv ZGUuCisrICB2b2lkIEFzc2VydFVuZGVmaW5lZE9yQWxsb2NhdGlvblNpdGUoUmVnaXN0ZXIgb2Jq ZWN0LCBSZWdpc3RlciBzY3JhdGNoKTsKKysKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBGaWVsZD4K KysgIHZvaWQgRGVjb2RlRmllbGQoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMpIHsKKysgICAg RXh0cmFjdEJpdHMoZHN0LCBzcmMsIEZpZWxkOjprU2hpZnQsIEZpZWxkOjprU2l6ZSk7CisrICB9 CisrCisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmllbGQ+CisrICB2b2lkIERlY29kZUZpZWxkKFJl Z2lzdGVyIHJlZykgeworKyAgICBEZWNvZGVGaWVsZDxGaWVsZD4ocmVnLCByZWcpOworKyAgfQor KworKyBwcml2YXRlOgorKyAgLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgZ2VuZXJhdGluZyBpbnZv a2VzLgorKyAgdm9pZCBJbnZva2VQcm9sb2d1ZShSZWdpc3RlciBleHBlY3RlZF9wYXJhbWV0ZXJf Y291bnQsCisrICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGFjdHVhbF9wYXJhbWV0ZXJf Y291bnQsIExhYmVsKiBkb25lLAorKyAgICAgICAgICAgICAgICAgICAgICBJbnZva2VGbGFnIGZs YWcpOworKworKyAgLy8gQ29tcHV0ZSBtZW1vcnkgb3BlcmFuZHMgZm9yIHNhZmVwb2ludCBzdGFj ayBzbG90cy4KKysgIHN0YXRpYyBpbnQgU2FmZXBvaW50UmVnaXN0ZXJTdGFja0luZGV4KGludCBy ZWdfY29kZSk7CisrCisrICAvLyBOZWVkcyBhY2Nlc3MgdG8gU2FmZXBvaW50UmVnaXN0ZXJTdGFj a0luZGV4IGZvciBjb21waWxlZCBmcmFtZQorKyAgLy8gdHJhdmVyc2FsLgorKyAgZnJpZW5kIGNs YXNzIFN0YW5kYXJkRnJhbWU7CisrCisrICBESVNBTExPV19JTVBMSUNJVF9DT05TVFJVQ1RPUlMo TWFjcm9Bc3NlbWJsZXIpOworK307CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmM+Cisrdm9p ZCBUdXJib0Fzc2VtYmxlcjo6R2VuZXJhdGVTd2l0Y2hUYWJsZShSZWdpc3RlciBpbmRleCwgc2l6 ZV90IGNhc2VfY291bnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGdW5jIEdldExhYmVsRnVuY3Rpb24pIHsKKysgIC8vIEVuc3VyZSB0aGF0IGRkLWVkIGxhYmVs cyBmb2xsb3dpbmcgdGhpcyBpbnN0cnVjdGlvbiB1c2UgOCBieXRlcyBhbGlnbmVkCisrICAvLyBh ZGRyZXNzZXMuCisrICBCbG9ja1RyYW1wb2xpbmVQb29sRm9yKHN0YXRpY19jYXN0PGludD4oY2Fz ZV9jb3VudCkgKiAyICsKKysgICAgICAgICAgICAgICAgICAgICAgICAga1N3aXRjaFRhYmxlUHJv bG9ndWVTaXplKTsKKysgIFVzZVNjcmF0Y2hSZWdpc3RlclNjb3BlIHRlbXBzKHRoaXMpOworKyAg UmVnaXN0ZXIgc2NyYXRjaCA9IHRlbXBzLkFjcXVpcmUoKTsKKysKKysgIEFsaWduKDgpOworKyAg Ly8gTG9hZCB0aGUgYWRkcmVzcyBmcm9tIHRoZSBqdW1wIHRhYmxlIGF0IGluZGV4IGFuZCBqdW1w IHRvIGl0CisrICBhdWlwYyhzY3JhdGNoLCAwKTsgICAgICAgICAgICAgICAgICAvLyBMb2FkIHRo ZSBjdXJyZW50IFBDIGludG8gc2NyYXRjaAorKyAgc2xsaSh0NSwgaW5kZXgsIGtQb2ludGVyU2l6 ZUxvZzIpOyAgLy8gdDUgPSBvZmZzZXQgb2YgaW5kZXh0aCBlbnRyeQorKyAgYWRkKHQ1LCB0NSwg c2NyYXRjaCk7ICAgICAgICAvLyB0NSA9IChzYXZlZCBQQykgKyAob2Zmc2V0IG9mIGluZGV4dGgg ZW50cnkpCisrICBsZCh0NSwgdDUsIDYgKiBrSW5zdHJTaXplKTsgIC8vIEFkZCB0aGUgc2l6ZSBv ZiB0aGVzZSA2IGluc3RydWN0aW9ucyB0byB0aGUKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gb2Zmc2V0LCB0aGVuIGxvYWQKKysgIGpyKHQ1KTsgICAgICAgICAgICAgICAgICAg ICAgLy8gSnVtcCB0byB0aGUgYWRkcmVzcyBsb2FkZWQgZnJvbSB0aGUgdGFibGUKKysgIG5vcCgp OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIDE2LWJ5dGUgYWxpZ25tZW50CisrICBmb3Ig KHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FzZV9jb3VudDsgKytpbmRleCkgeworKyAgICBk ZChHZXRMYWJlbEZ1bmN0aW9uKGluZGV4KSk7CisrICB9CisrfQorKworKyNkZWZpbmUgQUNDRVNT X01BU00obWFzbSkgbWFzbS0+CisrCisrfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8g bmFtZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBWOF9DT0RFR0VOX1JJU0NWX01BQ1JPX0FTU0VN QkxFUl9SSVNDVl9IXworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9z cmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vcmlzY3Y2NC9yZWdpc3Rlci1yaXNj djY0LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdo ZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb2RlZ2VuL3Jpc2N2 NjQvcmVnaXN0ZXItcmlzY3Y2NC5oCitAQCAtMCwwICsxLDM0NSBAQAorKy8vIENvcHlyaWdodCAy MDE4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNl IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0 aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBW OF9DT0RFR0VOX1JJU0NWX1JFR0lTVEVSX1JJU0NWX0hfCisrI2RlZmluZSBWOF9DT0RFR0VOX1JJ U0NWX1JFR0lTVEVSX1JJU0NWX0hfCisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL3JlZ2lzdGVy LmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL3JlZ2xpc3QuaCIKKysjaW5jbHVkZSAic3JjL2Nv ZGVnZW4vcmlzY3Y2NC9jb25zdGFudHMtcmlzY3Y2NC5oIgorKworK25hbWVzcGFjZSB2OCB7Cisr bmFtZXNwYWNlIGludGVybmFsIHsKKysKKysvLyBjbGFuZy1mb3JtYXQgb2ZmCisrI2RlZmluZSBH RU5FUkFMX1JFR0lTVEVSUyhWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVih6ZXJvX3JlZykgIFYocmEpICBWKHNwKSAgVihncCkgIFYodHApICBWKHQw KSAgVih0MSkgIFYodDIpICAgICAgICAgIFwKKysgIFYoZnApICBWKHMxKSAgVihhMCkgIFYoYTEp ICBWKGEyKSAgVihhMykgIFYoYTQpICBWKGE1KSAgICAgICAgICAgICAgICBcCisrICBWKGE2KSAg VihhNykgIFYoczIpICBWKHMzKSAgVihzNCkgIFYoczUpICBWKHM2KSAgVihzNykgIFYoczgpICBW KHM5KSAgXAorKyAgVihzMTApICBWKHMxMSkgIFYodDMpICBWKHQ0KSAgVih0NSkgIFYodDYpCisr CisrI2RlZmluZSBBTExPQ0FUQUJMRV9HRU5FUkFMX1JFR0lTVEVSUyhWKSAgXAorKyAgVihhMCkg IFYoYTEpICBWKGEyKSAgVihhMykgICAgICAgICAgICAgIFwKKysJVihhNCkgIFYoYTUpICBWKGE2 KSAgVihhNykgIFYodDApICBWKHQxKSBWKHQyKSBWKHM3KSBWKHQ0KQorKworKyNkZWZpbmUgRE9V QkxFX1JFR0lTVEVSUyhWKQkJCQkJCQkJCQkJCQkJCQkJCQkJXAorKyAgVihmdDApICBWKGZ0MSkg IFYoZnQyKSAgVihmdDMpICBWKGZ0NCkgIFYoZnQ1KSAgVihmdDYpICBWKGZ0NykgIFwKKysgIFYo ZnMwKSAgVihmczEpICBWKGZhMCkgVihmYTEpIFYoZmEyKSBWKGZhMykgVihmYTQpIFYoZmE1KSAg ICAgICBcCisrICBWKGZhNikgVihmYTcpIFYoZnMyKSBWKGZzMykgVihmczQpIFYoZnM1KSBWKGZz NikgVihmczcpICAgICAgICAgXAorKyAgVihmczgpIFYoZnM5KSBWKGZzMTApIFYoZnMxMSkgVihm dDgpIFYoZnQ5KSBWKGZ0MTApIFYoZnQxMSkKKysKKysjZGVmaW5lIEZMT0FUX1JFR0lTVEVSUyBE T1VCTEVfUkVHSVNURVJTCisrI2RlZmluZSBTSU1EMTI4X1JFR0lTVEVSUyhWKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICBWKHcwKSAgVih3MSkgIFYodzIpICBWKHczKSAgVih3 NCkgIFYodzUpICBWKHc2KSAgVih3NykgICBcCisrICBWKHc4KSAgVih3OSkgIFYodzEwKSBWKHcx MSkgVih3MTIpIFYodzEzKSBWKHcxNCkgVih3MTUpICBcCisrICBWKHcxNikgVih3MTcpIFYodzE4 KSBWKHcxOSkgVih3MjApIFYodzIxKSBWKHcyMikgVih3MjMpICBcCisrICBWKHcyNCkgVih3MjUp IFYodzI2KSBWKHcyNykgVih3MjgpIFYodzI5KSBWKHczMCkgVih3MzEpCisrCisrI2RlZmluZSBB TExPQ0FUQUJMRV9ET1VCTEVfUkVHSVNURVJTKFYpCQkJCQkgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgIFYoZnQwKSAgVihmdDEpICBWKGZ0MikgVihmdDMpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoZnQ0KSAgVihmdDUpIFYoZnQ2KSBWKGZ0 NykgVihmYTApIFYoZmExKSBWKGZhMikgVihmYTMpIFYoZmE0KSBWKGZhNSkgIFwKKysgIFYoZmE2 KSBWKGZhNykKKysKKysvLyBjbGFuZy1mb3JtYXQgb24KKysKKysvLyBOb3RlIHRoYXQgdGhlIGJp dCB2YWx1ZXMgbXVzdCBtYXRjaCB0aG9zZSB1c2VkIGluIGFjdHVhbCBpbnN0cnVjdGlvbgorKy8v IGVuY29kaW5nLgorK2NvbnN0IGludCBrTnVtUmVncyA9IDMyOworKworK2NvbnN0IFJlZ0xpc3Qg a0pTQ2FsbGVyU2F2ZWQgPSAxIDw8IDUgfCAgIC8vIHQwCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDEgPDwgNiB8ICAgLy8gdDEKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMSA8PCA3IHwgICAvLyB0MgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8 IDEwIHwgIC8vIGEwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgMTEgfCAg Ly8gYTEKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAxMiB8ICAvLyBhMgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDEzIHwgIC8vIGEzCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgMTQgfCAgLy8gYTQKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSA8PCAxNSB8ICAvLyBhNQorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxIDw8IDE2IHwgIC8vIGE2CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEgPDwgMTcgfCAgLy8gYTcKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8 PCAyOTsgICAvLyB0NAorKworK2NvbnN0IGludCBrTnVtSlNDYWxsZXJTYXZlZCA9IDEyOworKwor Ky8vIENhbGxlZS1zYXZlZCByZWdpc3RlcnMgcHJlc2VydmVkIHdoZW4gc3dpdGNoaW5nIGZyb20g QyB0byBKYXZhU2NyaXB0LgorK2NvbnN0IFJlZ0xpc3Qga0NhbGxlZVNhdmVkID0gMSA8PCA4IHwg ICAvLyBmcC9zMAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCA5IHwgICAvLyBz MQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAxOCB8ICAvLyBzMgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAxOSB8ICAvLyBzMworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMSA8PCAyMCB8ICAvLyBzNAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMSA8PCAyMSB8ICAvLyBzNQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8 PCAyMiB8ICAvLyBzNiAocm9vdHMgaW4gSmF2YXNjcmlwdCBjb2RlKQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMSA8PCAyMyB8ICAvLyBzNyAoY3AgaW4gSmF2YXNjcmlwdCBjb2RlKQor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAyNCB8ICAvLyBzOAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSA8PCAyNSB8ICAvLyBzOQorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMSA8PCAyNiB8ICAvLyBzMTAKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEgPDwgMjc7ICAgLy8gczExCisrCisrY29uc3QgaW50IGtOdW1DYWxsZWVTYXZlZCA9IDEy OworKworK2NvbnN0IFJlZ0xpc3Qga0NhbGxlZVNhdmVkRlBVID0gMSA8PCA4IHwgICAvLyBmczAK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgOSB8ICAgLy8gZnMxCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDE4IHwgIC8vIGZzMgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAxOSB8ICAvLyBmczMKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDEgPDwgMjAgfCAgLy8gZnM0CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxIDw8IDIxIHwgIC8vIGZzNQorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMSA8PCAyMiB8ICAvLyBmczYKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEgPDwgMjMgfCAgLy8gZnM3CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx IDw8IDI0IHwgIC8vIGZzOAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAy NSB8ICAvLyBmczkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgMjYgfCAg Ly8gZnMxMAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAyNzsgICAvLyBm czExCisrCisrY29uc3QgaW50IGtOdW1DYWxsZWVTYXZlZEZQVSA9IDEyOworKworK2NvbnN0IFJl Z0xpc3Qga0NhbGxlclNhdmVkRlBVID0gMSA8PCAwIHwgICAvLyBmdDAKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDEgPDwgMSB8ICAgLy8gZnQxCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxIDw8IDIgfCAgIC8vIGZ0MgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMSA8PCAzIHwgICAvLyBmdDMKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEgPDwgNCB8ICAgLy8gZnQ0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx IDw8IDUgfCAgIC8vIGZ0NQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCA2 IHwgICAvLyBmdDYKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNyB8ICAg Ly8gZnQ3CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDEwIHwgIC8vIGZh MAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAxMSB8ICAvLyBmYTEKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgMTIgfCAgLy8gZmEyCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDEzIHwgIC8vIGZhMworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSA8PCAxNCB8ICAvLyBmYTQKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDEgPDwgMTUgfCAgLy8gZmE1CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxIDw8IDE2IHwgIC8vIGZhNgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMSA8PCAxNyB8ICAvLyBmYTcKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDEgPDwgMjggfCAgLy8gZnQ4CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8 IDI5IHwgIC8vIGZ0OQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAzMCB8 ICAvLyBmdDEwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDMxOyAgIC8v IGZ0MTEKKysKKysvLyBOdW1iZXIgb2YgcmVnaXN0ZXJzIGZvciB3aGljaCBzcGFjZSBpcyByZXNl cnZlZCBpbiBzYWZlcG9pbnRzLiBNdXN0IGJlIGEKKysvLyBtdWx0aXBsZSBvZiA4LgorK2NvbnN0 IGludCBrTnVtU2FmZXBvaW50UmVnaXN0ZXJzID0gMzI7CisrCisrLy8gRGVmaW5lIHRoZSBsaXN0 IG9mIHJlZ2lzdGVycyBhY3R1YWxseSBzYXZlZCBhdCBzYWZlcG9pbnRzLgorKy8vIE5vdGUgdGhh dCB0aGUgbnVtYmVyIG9mIHNhdmVkIHJlZ2lzdGVycyBtYXkgYmUgc21hbGxlciB0aGFuIHRoZSBy ZXNlcnZlZAorKy8vIHNwYWNlLCBpLmUuIGtOdW1TYWZlcG9pbnRTYXZlZFJlZ2lzdGVycyA8PSBr TnVtU2FmZXBvaW50UmVnaXN0ZXJzLgorK2NvbnN0IFJlZ0xpc3Qga1NhZmVwb2ludFNhdmVkUmVn aXN0ZXJzID0ga0pTQ2FsbGVyU2F2ZWQgfCBrQ2FsbGVlU2F2ZWQ7CisrY29uc3QgaW50IGtOdW1T YWZlcG9pbnRTYXZlZFJlZ2lzdGVycyA9IGtOdW1KU0NhbGxlclNhdmVkICsga051bUNhbGxlZVNh dmVkOworKworK2NvbnN0IGludCBrVW5kZWZJbmRleCA9IC0xOworKy8vIE1hcCB3aXRoIGluZGV4 ZXMgb24gc3RhY2sgdGhhdCBjb3JyZXNwb25kcyB0byBjb2RlcyBvZiBzYXZlZCByZWdpc3RlcnMu CisrY29uc3QgaW50IGtTYWZlcG9pbnRSZWdpc3RlclN0YWNrSW5kZXhNYXBba051bVJlZ3NdID0g e2tVbmRlZkluZGV4LCAgLy8gemVyb19yZWcKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga1VuZGVmSW5kZXgsICAvLyByYQorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVW5kZWZJbmRl eCwgIC8vIHNwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGtVbmRlZkluZGV4LCAgLy8gZ3AKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1VuZGVmSW5kZXgsICAvLyB0cAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAg ICAgICAgIC8vIHQwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDEsICAgICAgICAgICAgLy8gdDEKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwgICAgICAgICAgICAvLyB0MgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCAg ICAgICAgICAgIC8vIHMwL2ZwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDQsICAgICAgICAgICAgLy8gczEKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwgICAgICAgICAgICAvLyBh MAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA2LCAgICAgICAgICAgIC8vIGExCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDcsICAgICAgICAgICAgLy8gYTIKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwgICAgICAgICAgICAv LyBhMworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA5LCAgICAgICAgICAgIC8vIGE0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCAgICAgICAgICAgLy8gYTUKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEsICAgICAgICAg ICAvLyBhNgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxMiwgICAgICAgICAgIC8vIGE3CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLCAgICAgICAgICAgLy8gczIKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQsICAgICAg ICAgICAvLyBzMworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxNSwgICAgICAgICAgIC8vIHM0CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LCAgICAgICAgICAgLy8gczUKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcsICAg ICAgICAgICAvLyBzNgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAxOCwgICAgICAgICAgIC8vIHM3CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LCAgICAgICAgICAgLy8gczgKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAs ICAgICAgICAgICAvLyBzOQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAyMSwgICAgICAgICAgIC8vIHMxMAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMiwgICAgICAgICAgIC8vIHMx MQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrVW5kZWZJbmRleCwgIC8vIHQzCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDIzLCAgICAgICAgICAgLy8gdDQKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1VuZGVmSW5kZXgsICAv LyB0NQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrVW5kZWZJbmRleH07ICAvLyB0NgorKy8vIENQVSBSZWdpc3RlcnMuCisrLy8KKysvLyAx KSBXZSB3b3VsZCBwcmVmZXIgdG8gdXNlIGFuIGVudW0sIGJ1dCBlbnVtIHZhbHVlcyBhcmUgYXNz aWdubWVudC0KKysvLyBjb21wYXRpYmxlIHdpdGggaW50LCB3aGljaCBoYXMgY2F1c2VkIGNvZGUt Z2VuZXJhdGlvbiBidWdzLgorKy8vCisrLy8gMikgV2Ugd291bGQgcHJlZmVyIHRvIHVzZSBhIGNs YXNzIGluc3RlYWQgb2YgYSBzdHJ1Y3QgYnV0IHdlIGRvbid0IGxpa2UKKysvLyB0aGUgcmVnaXN0 ZXIgaW5pdGlhbGl6YXRpb24gdG8gZGVwZW5kIG9uIHRoZSBwYXJ0aWN1bGFyIGluaXRpYWxpemF0 aW9uCisrLy8gb3JkZXIgKHdoaWNoIGFwcGVhcnMgdG8gYmUgZGlmZmVyZW50IG9uIE9TIFgsIExp bnV4LCBhbmQgV2luZG93cyBmb3IgdGhlCisrLy8gaW5zdGFsbGVkIHZlcnNpb25zIG9mIEMrKyB3 ZSB0cmllZCkuIFVzaW5nIGEgc3RydWN0IHBlcm1pdHMgQy1zdHlsZQorKy8vICJpbml0aWFsaXph dGlvbiIuIEFsc28sIHRoZSBSZWdpc3RlciBvYmplY3RzIGNhbm5vdCBiZSBjb25zdCBhcyB0aGlz CisrLy8gZm9yY2VzIGluaXRpYWxpemF0aW9uIHN0dWJzIGluIE1TVkMsIG1ha2luZyB1cyBkZXBl bmRlbnQgb24gaW5pdGlhbGl6YXRpb24KKysvLyBvcmRlci4KKysvLworKy8vIDMpIEJ5IG5vdCB1 c2luZyBhbiBlbnVtLCB3ZSBhcmUgcG9zc2libHkgcHJldmVudGluZyB0aGUgY29tcGlsZXIgZnJv bQorKy8vIGRvaW5nIGNlcnRhaW4gY29uc3RhbnQgZm9sZHMsIHdoaWNoIG1heSBzaWduaWZpY2Fu dGx5IHJlZHVjZSB0aGUKKysvLyBjb2RlIGdlbmVyYXRlZCBmb3Igc29tZSBhc3NlbWJseSBpbnN0 cnVjdGlvbnMgKGJlY2F1c2UgdGhleSBib2lsIGRvd24KKysvLyB0byBhIGZldyBjb25zdGFudHMp LiBJZiB0aGlzIGlzIGEgcHJvYmxlbSwgd2UgY291bGQgY2hhbmdlIHRoZSBjb2RlCisrLy8gc3Vj aCB0aGF0IHdlIHVzZSBhbiBlbnVtIGluIG9wdGltaXplZCBtb2RlLCBhbmQgdGhlIHN0cnVjdCBp biBkZWJ1ZworKy8vIG1vZGUuIFRoaXMgd2F5IHdlIGdldCB0aGUgY29tcGlsZS10aW1lIGVycm9y IGNoZWNraW5nIGluIGRlYnVnIG1vZGUKKysvLyBhbmQgYmVzdCBwZXJmb3JtYW5jZSBpbiBvcHRp bWl6ZWQgY29kZS4KKysKKysvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKy8vIEltcGxlbWVudGF0 aW9uIG9mIFJlZ2lzdGVyIGFuZCBGUFVSZWdpc3Rlci4KKysKKytlbnVtIFJlZ2lzdGVyQ29kZSB7 CisrI2RlZmluZSBSRUdJU1RFUl9DT0RFKFIpIGtSZWdDb2RlXyMjUiwKKysgIEdFTkVSQUxfUkVH SVNURVJTKFJFR0lTVEVSX0NPREUpCisrI3VuZGVmIFJFR0lTVEVSX0NPREUKKysgICAgICBrUmVn QWZ0ZXJMYXN0CisrfTsKKysKKytjbGFzcyBSZWdpc3RlciA6IHB1YmxpYyBSZWdpc3RlckJhc2U8 UmVnaXN0ZXIsIGtSZWdBZnRlckxhc3Q+IHsKKysgcHVibGljOgorKyNpZiBkZWZpbmVkKFY4X1RB UkdFVF9MSVRUTEVfRU5ESUFOKQorKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga01hbnRpc3NhT2Zm c2V0ID0gMDsKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtFeHBvbmVudE9mZnNldCA9IDQ7Cisr I2VsaWYgZGVmaW5lZChWOF9UQVJHRVRfQklHX0VORElBTikKKysgIHN0YXRpYyBjb25zdGV4cHIg aW50IGtNYW50aXNzYU9mZnNldCA9IDQ7CisrICBzdGF0aWMgY29uc3RleHByIGludCBrRXhwb25l bnRPZmZzZXQgPSAwOworKyNlbHNlCisrI2Vycm9yIFVua25vd24gZW5kaWFubmVzcworKyNlbmRp ZgorKworKyBwcml2YXRlOgorKyAgZnJpZW5kIGNsYXNzIFJlZ2lzdGVyQmFzZTsKKysgIGV4cGxp Y2l0IGNvbnN0ZXhwciBSZWdpc3RlcihpbnQgY29kZSkgOiBSZWdpc3RlckJhc2UoY29kZSkge30K Kyt9OworKworKy8vIHM3OiBjb250ZXh0IHJlZ2lzdGVyCisrLy8gczM6IHNjcmF0Y2ggcmVnaXN0 ZXIKKysvLyBzNDogc2NyYXRjaCByZWdpc3RlciAyCisrI2RlZmluZSBERUNMQVJFX1JFR0lTVEVS KFIpIFwKKysgIGNvbnN0ZXhwciBSZWdpc3RlciBSID0gUmVnaXN0ZXI6OmZyb21fY29kZShrUmVn Q29kZV8jI1IpOworK0dFTkVSQUxfUkVHSVNURVJTKERFQ0xBUkVfUkVHSVNURVIpCisrI3VuZGVm IERFQ0xBUkVfUkVHSVNURVIKKysKKytjb25zdGV4cHIgUmVnaXN0ZXIgbm9fcmVnID0gUmVnaXN0 ZXI6Om5vX3JlZygpOworKworK2ludCBUb051bWJlcihSZWdpc3RlciByZWcpOworKworK1JlZ2lz dGVyIFRvUmVnaXN0ZXIoaW50IG51bSk7CisrCisrY29uc3RleHByIGJvb2wga1BhZEFyZ3VtZW50 cyA9IGZhbHNlOworK2NvbnN0ZXhwciBib29sIGtTaW1wbGVGUEFsaWFzaW5nID0gdHJ1ZTsKKytj b25zdGV4cHIgYm9vbCBrU2ltZE1hc2tSZWdpc3RlcnMgPSBmYWxzZTsKKysKKytlbnVtIERvdWJs ZVJlZ2lzdGVyQ29kZSB7CisrI2RlZmluZSBSRUdJU1RFUl9DT0RFKFIpIGtEb3VibGVDb2RlXyMj UiwKKysgIERPVUJMRV9SRUdJU1RFUlMoUkVHSVNURVJfQ09ERSkKKysjdW5kZWYgUkVHSVNURVJf Q09ERQorKyAgICAgIGtEb3VibGVBZnRlckxhc3QKKyt9OworKworKy8vIENvcHJvY2Vzc29yIHJl Z2lzdGVyLgorK2NsYXNzIEZQVVJlZ2lzdGVyIDogcHVibGljIFJlZ2lzdGVyQmFzZTxGUFVSZWdp c3Rlciwga0RvdWJsZUFmdGVyTGFzdD4geworKyBwdWJsaWM6CisrICAvLyBUT0RPKHBsaW5kKTog V2FybmluZywgaW5jb25zaXN0ZW50IG51bWJlcmluZyBoZXJlLiBrTnVtRlBVUmVnaXN0ZXJzIHJl ZmVycworKyAgLy8gdG8gbnVtYmVyIG9mIDMyLWJpdCBGUFUgcmVncywgYnV0IGtOdW1BbGxvY2F0 YWJsZVJlZ2lzdGVycyByZWZlcnMgdG8KKysgIC8vIG51bWJlciBvZiBEb3VibGUgcmVncyAoNjQt Yml0IHJlZ3MsIG9yIEZQVS1yZWctcGFpcnMpLgorKworKyAgRlBVUmVnaXN0ZXIgbG93KCkgY29u c3QgeworKyAgICAvLyBUT0RPKHBsaW5kKTogQ3JlYXRlIERDSEVDSyBmb3IgRlI9MCBtb2RlLiBU aGlzIHVzYWdlIHN1c3BlY3QgZm9yIEZSPTEuCisrICAgIC8vIEZpbmQgbG93IHJlZyBvZiBhIERv dWJsZS1yZWcgcGFpciwgd2hpY2ggaXMgdGhlIHJlZyBpdHNlbGYuCisrICAgIHJldHVybiBGUFVS ZWdpc3Rlcjo6ZnJvbV9jb2RlKGNvZGUoKSk7CisrICB9CisrICBGUFVSZWdpc3RlciBoaWdoKCkg Y29uc3QgeworKyAgICAvLyBUT0RPKHBsaW5kKTogQ3JlYXRlIERDSEVDSyBmb3IgRlI9MCBtb2Rl LiBUaGlzIHVzYWdlIGlsbGVnYWwgaW4gRlI9MS4KKysgICAgLy8gRmluZCBoaWdoIHJlZyBvZiBh IERvdWJlbC1yZWcgcGFpciwgd2hpY2ggaXMgcmVnICsgMS4KKysgICAgcmV0dXJuIEZQVVJlZ2lz dGVyOjpmcm9tX2NvZGUoY29kZSgpICsgMSk7CisrICB9CisrCisrIHByaXZhdGU6CisrICBmcmll bmQgY2xhc3MgUmVnaXN0ZXJCYXNlOworKyAgZXhwbGljaXQgY29uc3RleHByIEZQVVJlZ2lzdGVy KGludCBjb2RlKSA6IFJlZ2lzdGVyQmFzZShjb2RlKSB7fQorK307CisrCisrZW51bSBNU0FSZWdp c3RlckNvZGUgeworKyNkZWZpbmUgUkVHSVNURVJfQ09ERShSKSBrTXNhQ29kZV8jI1IsCisrICBT SU1EMTI4X1JFR0lTVEVSUyhSRUdJU1RFUl9DT0RFKQorKyN1bmRlZiBSRUdJU1RFUl9DT0RFCisr ICAgICAga01zYUFmdGVyTGFzdAorK307CisrCisrLy8gTUlQUyBTSU1EIChNU0EpIHJlZ2lzdGVy CisrLy8gRklYTUUgKFJJU0NWKQorK2NsYXNzIE1TQVJlZ2lzdGVyIDogcHVibGljIFJlZ2lzdGVy QmFzZTxNU0FSZWdpc3Rlciwga01zYUFmdGVyTGFzdD4geworKyAgZnJpZW5kIGNsYXNzIFJlZ2lz dGVyQmFzZTsKKysgIGV4cGxpY2l0IGNvbnN0ZXhwciBNU0FSZWdpc3RlcihpbnQgY29kZSkgOiBS ZWdpc3RlckJhc2UoY29kZSkge30KKyt9OworKworKy8vIEEgZmV3IGRvdWJsZSByZWdpc3RlcnMg YXJlIHJlc2VydmVkOiBvbmUgYXMgYSBzY3JhdGNoIHJlZ2lzdGVyIGFuZCBvbmUgdG8KKysvLyAg aG9sZCAwLjAuCisrLy8gIGZzOTogMC4wCisrLy8gIGZzMTE6IHNjcmF0Y2ggcmVnaXN0ZXIuCisr CisrLy8gRm9yIE8zMiBBQkksIEZsb2F0cyBhbmQgRG91YmxlcyByZWZlciB0byBzYW1lIHNldCBv ZiAzMiAzMi1iaXQgcmVnaXN0ZXJzLgorK3VzaW5nIEZsb2F0UmVnaXN0ZXIgPSBGUFVSZWdpc3Rl cjsKKysKKyt1c2luZyBEb3VibGVSZWdpc3RlciA9IEZQVVJlZ2lzdGVyOworKworKyNkZWZpbmUg REVDTEFSRV9ET1VCTEVfUkVHSVNURVIoUikgXAorKyAgY29uc3RleHByIERvdWJsZVJlZ2lzdGVy IFIgPSBEb3VibGVSZWdpc3Rlcjo6ZnJvbV9jb2RlKGtEb3VibGVDb2RlXyMjUik7CisrRE9VQkxF X1JFR0lTVEVSUyhERUNMQVJFX0RPVUJMRV9SRUdJU1RFUikKKysjdW5kZWYgREVDTEFSRV9ET1VC TEVfUkVHSVNURVIKKysKKytjb25zdGV4cHIgRG91YmxlUmVnaXN0ZXIgbm9fZHJlZyA9IERvdWJs ZVJlZ2lzdGVyOjpub19yZWcoKTsKKysKKysvLyBTSU1EIHJlZ2lzdGVycy4KKyt1c2luZyBTaW1k MTI4UmVnaXN0ZXIgPSBNU0FSZWdpc3RlcjsKKysKKysjZGVmaW5lIERFQ0xBUkVfU0lNRDEyOF9S RUdJU1RFUihSKSBcCisrICBjb25zdGV4cHIgU2ltZDEyOFJlZ2lzdGVyIFIgPSBTaW1kMTI4UmVn aXN0ZXI6OmZyb21fY29kZShrTXNhQ29kZV8jI1IpOworK1NJTUQxMjhfUkVHSVNURVJTKERFQ0xB UkVfU0lNRDEyOF9SRUdJU1RFUikKKysjdW5kZWYgREVDTEFSRV9TSU1EMTI4X1JFR0lTVEVSCisr CisrY29uc3QgU2ltZDEyOFJlZ2lzdGVyIG5vX21zYXJlZyA9IFNpbWQxMjhSZWdpc3Rlcjo6bm9f cmVnKCk7CisrCisrLy8gUmVnaXN0ZXIgYWxpYXNlcy4KKysvLyBjcCBpcyBhc3N1bWVkIHRvIGJl IGEgY2FsbGVlIHNhdmVkIHJlZ2lzdGVyLgorK2NvbnN0ZXhwciBSZWdpc3RlciBrUm9vdFJlZ2lz dGVyID0gczY7CisrY29uc3RleHByIFJlZ2lzdGVyIGNwID0gczc7CisrY29uc3RleHByIFJlZ2lz dGVyIGtTY3JhdGNoUmVnID0gczM7CisrY29uc3RleHByIFJlZ2lzdGVyIGtTY3JhdGNoUmVnMiA9 IHM0OworKworK2NvbnN0ZXhwciBEb3VibGVSZWdpc3RlciBrU2NyYXRjaERvdWJsZVJlZyA9IGZz MTE7CisrCisrY29uc3RleHByIERvdWJsZVJlZ2lzdGVyIGtEb3VibGVSZWdaZXJvID0gZnM5Owor KworKy8vIERlZmluZSB7UmVnaXN0ZXJOYW1lfSBtZXRob2RzIGZvciB0aGUgcmVnaXN0ZXIgdHlw ZXMuCisrREVGSU5FX1JFR0lTVEVSX05BTUVTKFJlZ2lzdGVyLCBHRU5FUkFMX1JFR0lTVEVSUykK KytERUZJTkVfUkVHSVNURVJfTkFNRVMoRlBVUmVnaXN0ZXIsIERPVUJMRV9SRUdJU1RFUlMpCisr REVGSU5FX1JFR0lTVEVSX05BTUVTKE1TQVJlZ2lzdGVyLCBTSU1EMTI4X1JFR0lTVEVSUykKKysK KysvLyBHaXZlIGFsaWFzIG5hbWVzIHRvIHJlZ2lzdGVycyBmb3IgY2FsbGluZyBjb252ZW50aW9u cy4KKytjb25zdGV4cHIgUmVnaXN0ZXIga1JldHVyblJlZ2lzdGVyMCA9IGEwOworK2NvbnN0ZXhw ciBSZWdpc3RlciBrUmV0dXJuUmVnaXN0ZXIxID0gYTE7CisrY29uc3RleHByIFJlZ2lzdGVyIGtS ZXR1cm5SZWdpc3RlcjIgPSBhMjsKKytjb25zdGV4cHIgUmVnaXN0ZXIga0pTRnVuY3Rpb25SZWdp c3RlciA9IGExOworK2NvbnN0ZXhwciBSZWdpc3RlciBrQ29udGV4dFJlZ2lzdGVyID0gczc7Cisr Y29uc3RleHByIFJlZ2lzdGVyIGtBbGxvY2F0ZVNpemVSZWdpc3RlciA9IGExOworK2NvbnN0ZXhw ciBSZWdpc3RlciBrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3RlciA9IGE3OworK2NvbnN0ZXhwciBS ZWdpc3RlciBrSW50ZXJwcmV0ZXJBY2N1bXVsYXRvclJlZ2lzdGVyID0gYTA7CisrY29uc3RleHBy IFJlZ2lzdGVyIGtJbnRlcnByZXRlckJ5dGVjb2RlT2Zmc2V0UmVnaXN0ZXIgPSB0MDsKKytjb25z dGV4cHIgUmVnaXN0ZXIga0ludGVycHJldGVyQnl0ZWNvZGVBcnJheVJlZ2lzdGVyID0gdDE7Cisr Y29uc3RleHByIFJlZ2lzdGVyIGtJbnRlcnByZXRlckRpc3BhdGNoVGFibGVSZWdpc3RlciA9IHQy OworKworK2NvbnN0ZXhwciBSZWdpc3RlciBrSmF2YVNjcmlwdENhbGxBcmdDb3VudFJlZ2lzdGVy ID0gYTA7CisrY29uc3RleHByIFJlZ2lzdGVyIGtKYXZhU2NyaXB0Q2FsbENvZGVTdGFydFJlZ2lz dGVyID0gYTI7CisrY29uc3RleHByIFJlZ2lzdGVyIGtKYXZhU2NyaXB0Q2FsbFRhcmdldFJlZ2lz dGVyID0ga0pTRnVuY3Rpb25SZWdpc3RlcjsKKytjb25zdGV4cHIgUmVnaXN0ZXIga0phdmFTY3Jp cHRDYWxsTmV3VGFyZ2V0UmVnaXN0ZXIgPSBhMzsKKytjb25zdGV4cHIgUmVnaXN0ZXIga0phdmFT Y3JpcHRDYWxsRXh0cmFBcmcxUmVnaXN0ZXIgPSBhMjsKKysKKytjb25zdGV4cHIgUmVnaXN0ZXIg a09mZkhlYXBUcmFtcG9saW5lUmVnaXN0ZXIgPSB0MzsKKytjb25zdGV4cHIgUmVnaXN0ZXIga1J1 bnRpbWVDYWxsRnVuY3Rpb25SZWdpc3RlciA9IGExOworK2NvbnN0ZXhwciBSZWdpc3RlciBrUnVu dGltZUNhbGxBcmdDb3VudFJlZ2lzdGVyID0gYTA7CisrY29uc3RleHByIFJlZ2lzdGVyIGtSdW50 aW1lQ2FsbEFyZ3ZSZWdpc3RlciA9IGEyOworK2NvbnN0ZXhwciBSZWdpc3RlciBrV2FzbUluc3Rh bmNlUmVnaXN0ZXIgPSBhMDsKKytjb25zdGV4cHIgUmVnaXN0ZXIga1dhc21Db21waWxlTGF6eUZ1 bmNJbmRleFJlZ2lzdGVyID0gdDA7CisrCisrY29uc3RleHByIERvdWJsZVJlZ2lzdGVyIGtGUFJl dHVyblJlZ2lzdGVyMCA9IGZhMDsKKysKKyt9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKyt9ICAv LyBuYW1lc3BhY2UgdjgKKysKKysjZW5kaWYgIC8vIFY4X0NPREVHRU5fUklTQ1ZfUkVHSVNURVJf UklTQ1ZfSF8KK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb21tb24vZ2xvYmFscy5oCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9jb21tb24vZ2xvYmFscy5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1z cmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29tbW9uL2dsb2JhbHMuaAor QEAgLTU4LDYgKzU4LDEyIEBAIGNvbnN0ZXhwciBpbnQgR0IgPSBNQiAqIDEwMjQ7CisgI2lmIChW OF9UQVJHRVRfQVJDSF9TMzkwICYmICFWOF9IT1NUX0FSQ0hfUzM5MCkKKyAjZGVmaW5lIFVTRV9T SU1VTEFUT1IgMQorICNlbmRpZgorKyNpZiAoVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCAmJiAhVjhf SE9TVF9BUkNIX1JJU0NWNjQpCisrI2RlZmluZSBVU0VfU0lNVUxBVE9SIDEKKysjZW5kaWYKKysj aWYgKFY4X1RBUkdFVF9BUkNIX1JJU0NWICYmICFWOF9IT1NUX0FSQ0hfUklTQ1YgJiYgIVY4X0hP U1RfQVJDSF9SSVNDVjY0KQorKyNkZWZpbmUgVVNFX1NJTVVMQVRPUiAxCisrI2VuZGlmCisgI2Vu ZGlmCisgCisgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGFyY2hpdGVjdHVyZSB1c2VzIGFuIGVt YmVkZGVkIGNvbnN0YW50IHBvb2wKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb21waWxlci9iYWNrZW5kL2luc3Ry dWN0aW9uLWNvZGVzLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvbXBpbGVyL2JhY2tl bmQvaW5zdHJ1Y3Rpb24tY29kZXMuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUu MTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvaW5zdHJ1 Y3Rpb24tY29kZXMuaAorQEAgLTIzLDYgKzIzLDEwIEBACisgI2luY2x1ZGUgInNyYy9jb21waWxl ci9iYWNrZW5kL3BwYy9pbnN0cnVjdGlvbi1jb2Rlcy1wcGMuaCIKKyAjZWxpZiBWOF9UQVJHRVRf QVJDSF9TMzkwCisgI2luY2x1ZGUgInNyYy9jb21waWxlci9iYWNrZW5kL3MzOTAvaW5zdHJ1Y3Rp b24tY29kZXMtczM5MC5oIgorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysjaW5jbHVk ZSAic3JjL2NvbXBpbGVyL2JhY2tlbmQvcmlzY3Y2NC9pbnN0cnVjdGlvbi1jb2Rlcy1yaXNjdjY0 LmgiCisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysjaW5jbHVkZSAic3JjL2NvbXBpbGVy L2JhY2tlbmQvcmlzY3YvaW5zdHJ1Y3Rpb24tY29kZXMtcmlzY3YuaCIKKyAjZWxzZQorICNkZWZp bmUgVEFSR0VUX0FSQ0hfT1BDT0RFX0xJU1QoVikKKyAjZGVmaW5lIFRBUkdFVF9BRERSRVNTSU5H X01PREVfTElTVChWKQorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9z cmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvaW5zdHJ1Y3Rpb24t c2VsZWN0b3IuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQv aW5zdHJ1Y3Rpb24tc2VsZWN0b3IuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb21waWxlci9iYWNrZW5kL2luc3Ry dWN0aW9uLXNlbGVjdG9yLmNjCitAQCAtMjYyMyw3ICsyNjIzLDggQEAgdm9pZCBJbnN0cnVjdGlv blNlbGVjdG9yOjpWaXNpdFdvcmQzMkF0bworICNlbmRpZiAgLy8gIVY4X1RBUkdFVF9BUkNIX0lB MzIgJiYgIVY4X1RBUkdFVF9BUkNIX0FSTSAmJiAhVjhfVEFSR0VUX0FSQ0hfTUlQUworIAorICNp ZiAhVjhfVEFSR0VUX0FSQ0hfWDY0ICYmICFWOF9UQVJHRVRfQVJDSF9BUk02NCAmJiAhVjhfVEFS R0VUX0FSQ0hfTUlQUzY0ICYmIFwKKy0gICAgIVY4X1RBUkdFVF9BUkNIX1MzOTAgJiYgIVY4X1RB UkdFVF9BUkNIX1BQQzY0CisrICAgICFWOF9UQVJHRVRfQVJDSF9TMzkwICYmICFWOF9UQVJHRVRf QVJDSF9QUEM2NCAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAhVjhfVEFSR0VU X0FSQ0hfUklTQ1Y2NCAmJiAhVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKyB2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OlZpc2l0V29yZDY0QXRvbWljTG9hZChOb2RlKiBub2RlKSB7IFVOSU1QTEVNRU5U RUQoKTsgfQorIAorIHZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRBdG9taWNT dG9yZShOb2RlKiBub2RlKSB7CitAQCAtMjY0OCw3ICsyNjQ5LDggQEAgdm9pZCBJbnN0cnVjdGlv blNlbGVjdG9yOjpWaXNpdFdvcmQ2NEF0bworICAgVU5JTVBMRU1FTlRFRCgpOworIH0KKyAjZW5k aWYgIC8vICFWOF9UQVJHRVRfQVJDSF9YNjQgJiYgIVY4X1RBUkdFVF9BUkNIX0FSTTY0ICYmICFW OF9UQVJHRVRfQVJDSF9QUEM2NAorLSAgICAgICAgLy8gIVY4X1RBUkdFVF9BUkNIX01JUFM2NCAm JiAhVjhfVEFSR0VUX0FSQ0hfUzM5MAorKyAgICAgICAgLy8gIVY4X1RBUkdFVF9BUkNIX01JUFM2 NCAmJiAhVjhfVEFSR0VUX0FSQ0hfUzM5MCAmJgorKyAgICAgICAgLy8gIVY4X1RBUkdFVF9BUkNI X1JJU0NWNjQgJiYgIVY4X1RBUkdFVF9BUkNIX1JJU0NWCisgCisgI2lmICFWOF9UQVJHRVRfQVJD SF9JQTMyICYmICFWOF9UQVJHRVRfQVJDSF9BUk0KKyAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIG9u IDMyLWJpdCB0byBzcGxpdCB0aGUgNjQtYml0IHZhbHVlIGludG8gdHdvIG9wZXJhbmRzLgorSW5k ZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvcmlzY3Y2NC9jb2RlLWdlbmVyYXRvci1yaXNjdjY0 LmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29tcGlsZXIvYmFja2Vu ZC9yaXNjdjY0L2NvZGUtZ2VuZXJhdG9yLXJpc2N2NjQuY2MKK0BAIC0wLDAgKzEsMjc1OSBAQAor Ky8vIENvcHlyaWdodCAyMDE0IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu CisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL2Fzc2VtYmxlci1pbmwuaCIKKysjaW5jbHVkZSAi c3JjL2NvZGVnZW4vY2FsbGFibGUuaCIKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vbWFjcm8tYXNz ZW1ibGVyLmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL29wdGltaXplZC1jb21waWxhdGlvbi1p bmZvLmgiCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL3Jpc2N2NjQvY29uc3RhbnRzLXJpc2N2NjQu aCIKKysjaW5jbHVkZSAic3JjL2NvbXBpbGVyL2JhY2tlbmQvY29kZS1nZW5lcmF0b3ItaW1wbC5o IgorKyNpbmNsdWRlICJzcmMvY29tcGlsZXIvYmFja2VuZC9jb2RlLWdlbmVyYXRvci5oIgorKyNp bmNsdWRlICJzcmMvY29tcGlsZXIvYmFja2VuZC9nYXAtcmVzb2x2ZXIuaCIKKysjaW5jbHVkZSAi c3JjL2NvbXBpbGVyL25vZGUtbWF0Y2hlcnMuaCIKKysjaW5jbHVkZSAic3JjL2NvbXBpbGVyL29z ci5oIgorKyNpbmNsdWRlICJzcmMvaGVhcC9tZW1vcnktY2h1bmsuaCIKKysjaW5jbHVkZSAic3Jj L3dhc20vd2FzbS1jb2RlLW1hbmFnZXIuaCIKKysKKytuYW1lc3BhY2UgdjggeworK25hbWVzcGFj ZSBpbnRlcm5hbCB7CisrbmFtZXNwYWNlIGNvbXBpbGVyIHsKKysKKysjZGVmaW5lIF9fIHRhc20o KS0+CisrCisrLy8gVE9ETyhwbGluZCk6IGNvbnNpZGVyIHJlbmFtaW5nIHRoZXNlIG1hY3Jvcy4K KysjZGVmaW5lIFRSQUNFX01TRyhtc2cpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgUHJpbnRGKCJjb2RlX2dlbjogXCclc1wnIGluIGZ1 bmN0aW9uICVzIGF0IGxpbmUgJWRcbiIsIG1zZywgX19GVU5DVElPTl9fLCBcCisrICAgICAgICAg X19MSU5FX18pCisrCisrI2RlZmluZSBUUkFDRV9VTklNUEwoKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgUHJpbnRGKCJVTklNUExFTUVOVEVEIGNvZGVf Z2VuZXJhdG9yX3Jpc2N2NjQ6ICVzIGF0IGxpbmUgJWRcbiIsIFwKKysgICAgICAgICBfX0ZVTkNU SU9OX18sIF9fTElORV9fKQorKworKy8vIEFkZHMgUklTQy1WLXNwZWNpZmljIG1ldGhvZHMgdG8g Y29udmVydCBJbnN0cnVjdGlvbk9wZXJhbmRzLgorK2NsYXNzIFJpc2N2T3BlcmFuZENvbnZlcnRl ciBmaW5hbCA6IHB1YmxpYyBJbnN0cnVjdGlvbk9wZXJhbmRDb252ZXJ0ZXIgeworKyBwdWJsaWM6 CisrICBSaXNjdk9wZXJhbmRDb252ZXJ0ZXIoQ29kZUdlbmVyYXRvciogZ2VuLCBJbnN0cnVjdGlv biogaW5zdHIpCisrICAgICAgOiBJbnN0cnVjdGlvbk9wZXJhbmRDb252ZXJ0ZXIoZ2VuLCBpbnN0 cikge30KKysKKysgIEZsb2F0UmVnaXN0ZXIgT3V0cHV0U2luZ2xlUmVnaXN0ZXIoc2l6ZV90IGlu ZGV4ID0gMCkgeworKyAgICByZXR1cm4gVG9TaW5nbGVSZWdpc3RlcihpbnN0cl8tPk91dHB1dEF0 KGluZGV4KSk7CisrICB9CisrCisrICBGbG9hdFJlZ2lzdGVyIElucHV0U2luZ2xlUmVnaXN0ZXIo c2l6ZV90IGluZGV4KSB7CisrICAgIHJldHVybiBUb1NpbmdsZVJlZ2lzdGVyKGluc3RyXy0+SW5w dXRBdChpbmRleCkpOworKyAgfQorKworKyAgRmxvYXRSZWdpc3RlciBUb1NpbmdsZVJlZ2lzdGVy KEluc3RydWN0aW9uT3BlcmFuZCogb3ApIHsKKysgICAgLy8gU2luZ2xlIChGbG9hdCkgYW5kIERv dWJsZSByZWdpc3RlciBuYW1lc3BhY2UgaXMgc2FtZSBvbiBSSVNDLVYsCisrICAgIC8vIGJvdGgg YXJlIHR5cGVkZWZzIG9mIEZQVVJlZ2lzdGVyLgorKyAgICByZXR1cm4gVG9Eb3VibGVSZWdpc3Rl cihvcCk7CisrICB9CisrCisrICBSZWdpc3RlciBJbnB1dE9yWmVyb1JlZ2lzdGVyKHNpemVfdCBp bmRleCkgeworKyAgICBpZiAoaW5zdHJfLT5JbnB1dEF0KGluZGV4KS0+SXNJbW1lZGlhdGUoKSkg eworKyAgICAgIERDSEVDS19FUSgwLCBJbnB1dEludDMyKGluZGV4KSk7CisrICAgICAgcmV0dXJu IHplcm9fcmVnOworKyAgICB9CisrICAgIHJldHVybiBJbnB1dFJlZ2lzdGVyKGluZGV4KTsKKysg IH0KKysKKysgIERvdWJsZVJlZ2lzdGVyIElucHV0T3JaZXJvRG91YmxlUmVnaXN0ZXIoc2l6ZV90 IGluZGV4KSB7CisrICAgIGlmIChpbnN0cl8tPklucHV0QXQoaW5kZXgpLT5Jc0ltbWVkaWF0ZSgp KSByZXR1cm4ga0RvdWJsZVJlZ1plcm87CisrCisrICAgIHJldHVybiBJbnB1dERvdWJsZVJlZ2lz dGVyKGluZGV4KTsKKysgIH0KKysKKysgIERvdWJsZVJlZ2lzdGVyIElucHV0T3JaZXJvU2luZ2xl UmVnaXN0ZXIoc2l6ZV90IGluZGV4KSB7CisrICAgIGlmIChpbnN0cl8tPklucHV0QXQoaW5kZXgp LT5Jc0ltbWVkaWF0ZSgpKSByZXR1cm4ga0RvdWJsZVJlZ1plcm87CisrCisrICAgIHJldHVybiBJ bnB1dFNpbmdsZVJlZ2lzdGVyKGluZGV4KTsKKysgIH0KKysKKysgIE9wZXJhbmQgSW5wdXRJbW1l ZGlhdGUoc2l6ZV90IGluZGV4KSB7CisrICAgIENvbnN0YW50IGNvbnN0YW50ID0gVG9Db25zdGFu dChpbnN0cl8tPklucHV0QXQoaW5kZXgpKTsKKysgICAgc3dpdGNoIChjb25zdGFudC50eXBlKCkp IHsKKysgICAgICBjYXNlIENvbnN0YW50OjprSW50MzI6CisrICAgICAgICByZXR1cm4gT3BlcmFu ZChjb25zdGFudC5Ub0ludDMyKCkpOworKyAgICAgIGNhc2UgQ29uc3RhbnQ6OmtJbnQ2NDoKKysg ICAgICAgIHJldHVybiBPcGVyYW5kKGNvbnN0YW50LlRvSW50NjQoKSk7CisrICAgICAgY2FzZSBD b25zdGFudDo6a0Zsb2F0MzI6CisrICAgICAgICByZXR1cm4gT3BlcmFuZDo6RW1iZWRkZWROdW1i ZXIoY29uc3RhbnQuVG9GbG9hdDMyKCkpOworKyAgICAgIGNhc2UgQ29uc3RhbnQ6OmtGbG9hdDY0 OgorKyAgICAgICAgcmV0dXJuIE9wZXJhbmQ6OkVtYmVkZGVkTnVtYmVyKGNvbnN0YW50LlRvRmxv YXQ2NCgpLnZhbHVlKCkpOworKyAgICAgIGNhc2UgQ29uc3RhbnQ6OmtFeHRlcm5hbFJlZmVyZW5j ZToKKysgICAgICBjYXNlIENvbnN0YW50OjprQ29tcHJlc3NlZEhlYXBPYmplY3Q6CisrICAgICAg Y2FzZSBDb25zdGFudDo6a0hlYXBPYmplY3Q6CisrICAgICAgICAvLyBUT0RPKHBsaW5kKTogTWF5 YmUgd2Ugc2hvdWxkIGhhbmRsZSBFeHRSZWYgJiBIZWFwT2JqIGhlcmU/CisrICAgICAgICAvLyAg ICBtYXliZSBub3QgZG9uZSBvbiBhcm0gZHVlIHRvIGNvbnN0IHBvb2wgPz8KKysgICAgICAgIGJy ZWFrOworKyAgICAgIGNhc2UgQ29uc3RhbnQ6OmtEZWxheWVkU3RyaW5nQ29uc3RhbnQ6CisrICAg ICAgICByZXR1cm4gT3BlcmFuZDo6RW1iZWRkZWRTdHJpbmdDb25zdGFudCgKKysgICAgICAgICAg ICBjb25zdGFudC5Ub0RlbGF5ZWRTdHJpbmdDb25zdGFudCgpKTsKKysgICAgICBjYXNlIENvbnN0 YW50OjprUnBvTnVtYmVyOgorKyAgICAgICAgVU5SRUFDSEFCTEUoKTsgIC8vIFRPRE8odGl0emVy KTogUlBPIGltbWVkaWF0ZXMKKysgICAgICAgIGJyZWFrOworKyAgICB9CisrICAgIFVOUkVBQ0hB QkxFKCk7CisrICB9CisrCisrICBPcGVyYW5kIElucHV0T3BlcmFuZChzaXplX3QgaW5kZXgpIHsK KysgICAgSW5zdHJ1Y3Rpb25PcGVyYW5kKiBvcCA9IGluc3RyXy0+SW5wdXRBdChpbmRleCk7Cisr ICAgIGlmIChvcC0+SXNSZWdpc3RlcigpKSB7CisrICAgICAgcmV0dXJuIE9wZXJhbmQoVG9SZWdp c3RlcihvcCkpOworKyAgICB9CisrICAgIHJldHVybiBJbnB1dEltbWVkaWF0ZShpbmRleCk7Cisr ICB9CisrCisrICBNZW1PcGVyYW5kIE1lbW9yeU9wZXJhbmQoc2l6ZV90KiBmaXJzdF9pbmRleCkg eworKyAgICBjb25zdCBzaXplX3QgaW5kZXggPSAqZmlyc3RfaW5kZXg7CisrICAgIHN3aXRjaCAo QWRkcmVzc2luZ01vZGVGaWVsZDo6ZGVjb2RlKGluc3RyXy0+b3Bjb2RlKCkpKSB7CisrICAgICAg Y2FzZSBrTW9kZV9Ob25lOgorKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBrTW9kZV9NUkk6 CisrICAgICAgICAqZmlyc3RfaW5kZXggKz0gMjsKKysgICAgICAgIHJldHVybiBNZW1PcGVyYW5k KElucHV0UmVnaXN0ZXIoaW5kZXggKyAwKSwgSW5wdXRJbnQzMihpbmRleCArIDEpKTsKKysgICAg ICBjYXNlIGtNb2RlX01SUjoKKysgICAgICAgIC8vIFRPRE8ocGxpbmQpOiByNiBhZGRyZXNzIG1v ZGUsIHRvIGJlIGltcGxlbWVudGVkIC4uLgorKyAgICAgICAgVU5SRUFDSEFCTEUoKTsKKysgICAg fQorKyAgICBVTlJFQUNIQUJMRSgpOworKyAgfQorKworKyAgTWVtT3BlcmFuZCBNZW1vcnlPcGVy YW5kKHNpemVfdCBpbmRleCA9IDApIHsgcmV0dXJuIE1lbW9yeU9wZXJhbmQoJmluZGV4KTsgfQor KworKyAgTWVtT3BlcmFuZCBUb01lbU9wZXJhbmQoSW5zdHJ1Y3Rpb25PcGVyYW5kKiBvcCkgY29u c3QgeworKyAgICBEQ0hFQ0tfTk9UX05VTEwob3ApOworKyAgICBEQ0hFQ0sob3AtPklzU3RhY2tT bG90KCkgfHwgb3AtPklzRlBTdGFja1Nsb3QoKSk7CisrICAgIHJldHVybiBTbG90VG9NZW1PcGVy YW5kKEFsbG9jYXRlZE9wZXJhbmQ6OmNhc3Qob3ApLT5pbmRleCgpKTsKKysgIH0KKysKKysgIE1l bU9wZXJhbmQgU2xvdFRvTWVtT3BlcmFuZChpbnQgc2xvdCkgY29uc3QgeworKyAgICBGcmFtZU9m ZnNldCBvZmZzZXQgPSBmcmFtZV9hY2Nlc3Nfc3RhdGUoKS0+R2V0RnJhbWVPZmZzZXQoc2xvdCk7 CisrICAgIHJldHVybiBNZW1PcGVyYW5kKG9mZnNldC5mcm9tX3N0YWNrX3BvaW50ZXIoKSA/IHNw IDogZnAsIG9mZnNldC5vZmZzZXQoKSk7CisrICB9CisrfTsKKysKKytzdGF0aWMgaW5saW5lIGJv b2wgSGFzUmVnaXN0ZXJJbnB1dChJbnN0cnVjdGlvbiogaW5zdHIsIHNpemVfdCBpbmRleCkgewor KyAgcmV0dXJuIGluc3RyLT5JbnB1dEF0KGluZGV4KS0+SXNSZWdpc3RlcigpOworK30KKysKKytu YW1lc3BhY2UgeworKworK2NsYXNzIE91dE9mTGluZVJlY29yZFdyaXRlIGZpbmFsIDogcHVibGlj IE91dE9mTGluZUNvZGUgeworKyBwdWJsaWM6CisrICBPdXRPZkxpbmVSZWNvcmRXcml0ZShDb2Rl R2VuZXJhdG9yKiBnZW4sIFJlZ2lzdGVyIG9iamVjdCwgUmVnaXN0ZXIgaW5kZXgsCisrICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgc2NyYXRjaDAsIFJlZ2lz dGVyIHNjcmF0Y2gxLAorKyAgICAgICAgICAgICAgICAgICAgICAgUmVjb3JkV3JpdGVNb2RlIG1v ZGUsIFN0dWJDYWxsTW9kZSBzdHViX21vZGUpCisrICAgICAgOiBPdXRPZkxpbmVDb2RlKGdlbiks CisrICAgICAgICBvYmplY3RfKG9iamVjdCksCisrICAgICAgICBpbmRleF8oaW5kZXgpLAorKyAg ICAgICAgdmFsdWVfKHZhbHVlKSwKKysgICAgICAgIHNjcmF0Y2gwXyhzY3JhdGNoMCksCisrICAg ICAgICBzY3JhdGNoMV8oc2NyYXRjaDEpLAorKyAgICAgICAgbW9kZV8obW9kZSksCisrICAgICAg ICBzdHViX21vZGVfKHN0dWJfbW9kZSksCisrICAgICAgICBtdXN0X3NhdmVfbHJfKCFnZW4tPmZy YW1lX2FjY2Vzc19zdGF0ZSgpLT5oYXNfZnJhbWUoKSksCisrICAgICAgICB6b25lXyhnZW4tPnpv bmUoKSkge30KKysKKysgIHZvaWQgR2VuZXJhdGUoKSBmaW5hbCB7CisrICAgIGlmIChtb2RlXyA+ IFJlY29yZFdyaXRlTW9kZTo6a1ZhbHVlSXNQb2ludGVyKSB7CisrICAgICAgX18gSnVtcElmU21p KHZhbHVlXywgZXhpdCgpKTsKKysgICAgfQorKyAgICBfXyBDaGVja1BhZ2VGbGFnKHZhbHVlXywg c2NyYXRjaDBfLAorKyAgICAgICAgICAgICAgICAgICAgIE1lbW9yeUNodW5rOjprUG9pbnRlcnNU b0hlcmVBcmVJbnRlcmVzdGluZ01hc2ssIGVxLAorKyAgICAgICAgICAgICAgICAgICAgIGV4aXQo KSk7CisrICAgIF9fIEFkZDY0KHNjcmF0Y2gxXywgb2JqZWN0XywgaW5kZXhfKTsKKysgICAgUmVt ZW1iZXJlZFNldEFjdGlvbiBjb25zdCByZW1lbWJlcmVkX3NldF9hY3Rpb24gPQorKyAgICAgICAg bW9kZV8gPiBSZWNvcmRXcml0ZU1vZGU6OmtWYWx1ZUlzTWFwID8gRU1JVF9SRU1FTUJFUkVEX1NF VAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogT01JVF9S RU1FTUJFUkVEX1NFVDsKKysgICAgU2F2ZUZQUmVnc01vZGUgY29uc3Qgc2F2ZV9mcF9tb2RlID0K KysgICAgICAgIGZyYW1lKCktPkRpZEFsbG9jYXRlRG91YmxlUmVnaXN0ZXJzKCkgPyBrU2F2ZUZQ UmVncyA6IGtEb250U2F2ZUZQUmVnczsKKysgICAgaWYgKG11c3Rfc2F2ZV9scl8pIHsKKysgICAg ICAvLyBXZSBuZWVkIHRvIHNhdmUgYW5kIHJlc3RvcmUgcmEgaWYgdGhlIGZyYW1lIHdhcyBlbGlk ZWQuCisrICAgICAgX18gUHVzaChyYSk7CisrICAgIH0KKysgICAgaWYgKG1vZGVfID09IFJlY29y ZFdyaXRlTW9kZTo6a1ZhbHVlSXNFcGhlbWVyb25LZXkpIHsKKysgICAgICBfXyBDYWxsRXBoZW1l cm9uS2V5QmFycmllcihvYmplY3RfLCBzY3JhdGNoMV8sIHNhdmVfZnBfbW9kZSk7CisrICAgIH0g ZWxzZSBpZiAoc3R1Yl9tb2RlXyA9PSBTdHViQ2FsbE1vZGU6OmtDYWxsV2FzbVJ1bnRpbWVTdHVi KSB7CisrICAgICAgLy8gQSBkaXJlY3QgY2FsbCB0byBhIHdhc20gcnVudGltZSBzdHViIGRlZmlu ZWQgaW4gdGhpcyBtb2R1bGUuCisrICAgICAgLy8gSnVzdCBlbmNvZGUgdGhlIHN0dWIgaW5kZXgu IFRoaXMgd2lsbCBiZSBwYXRjaGVkIHdoZW4gdGhlIGNvZGUKKysgICAgICAvLyBpcyBhZGRlZCB0 byB0aGUgbmF0aXZlIG1vZHVsZSBhbmQgY29waWVkIGludG8gd2FzbSBjb2RlIHNwYWNlLgorKyAg ICAgIF9fIENhbGxSZWNvcmRXcml0ZVN0dWIob2JqZWN0Xywgc2NyYXRjaDFfLCByZW1lbWJlcmVk X3NldF9hY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlX2ZwX21vZGUs IHdhc206Oldhc21Db2RlOjprUmVjb3JkV3JpdGUpOworKyAgICB9IGVsc2UgeworKyAgICAgIF9f IENhbGxSZWNvcmRXcml0ZVN0dWIob2JqZWN0Xywgc2NyYXRjaDFfLCByZW1lbWJlcmVkX3NldF9h Y3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlX2ZwX21vZGUpOworKyAg ICB9CisrICAgIGlmIChtdXN0X3NhdmVfbHJfKSB7CisrICAgICAgX18gUG9wKHJhKTsKKysgICAg fQorKyAgfQorKworKyBwcml2YXRlOgorKyAgUmVnaXN0ZXIgY29uc3Qgb2JqZWN0XzsKKysgIFJl Z2lzdGVyIGNvbnN0IGluZGV4XzsKKysgIFJlZ2lzdGVyIGNvbnN0IHZhbHVlXzsKKysgIFJlZ2lz dGVyIGNvbnN0IHNjcmF0Y2gwXzsKKysgIFJlZ2lzdGVyIGNvbnN0IHNjcmF0Y2gxXzsKKysgIFJl Y29yZFdyaXRlTW9kZSBjb25zdCBtb2RlXzsKKysgIFN0dWJDYWxsTW9kZSBjb25zdCBzdHViX21v ZGVfOworKyAgYm9vbCBtdXN0X3NhdmVfbHJfOworKyAgWm9uZSogem9uZV87CisrfTsKKysKKytD b25kaXRpb24gRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcChGbGFnc0NvbmRpdGlvbiBjb25k aXRpb24pIHsKKysgIHN3aXRjaCAoY29uZGl0aW9uKSB7CisrICAgIGNhc2Uga0VxdWFsOgorKyAg ICAgIHJldHVybiBlcTsKKysgICAgY2FzZSBrTm90RXF1YWw6CisrICAgICAgcmV0dXJuIG5lOwor KyAgICBjYXNlIGtTaWduZWRMZXNzVGhhbjoKKysgICAgICByZXR1cm4gbHQ7CisrICAgIGNhc2Ug a1NpZ25lZEdyZWF0ZXJUaGFuT3JFcXVhbDoKKysgICAgICByZXR1cm4gZ2U7CisrICAgIGNhc2Ug a1NpZ25lZExlc3NUaGFuT3JFcXVhbDoKKysgICAgICByZXR1cm4gbGU7CisrICAgIGNhc2Uga1Np Z25lZEdyZWF0ZXJUaGFuOgorKyAgICAgIHJldHVybiBndDsKKysgICAgY2FzZSBrVW5zaWduZWRM ZXNzVGhhbjoKKysgICAgICByZXR1cm4gVWxlc3M7CisrICAgIGNhc2Uga1Vuc2lnbmVkR3JlYXRl clRoYW5PckVxdWFsOgorKyAgICAgIHJldHVybiBVZ3JlYXRlcl9lcXVhbDsKKysgICAgY2FzZSBr VW5zaWduZWRMZXNzVGhhbk9yRXF1YWw6CisrICAgICAgcmV0dXJuIFVsZXNzX2VxdWFsOworKyAg ICBjYXNlIGtVbnNpZ25lZEdyZWF0ZXJUaGFuOgorKyAgICAgIHJldHVybiBVZ3JlYXRlcjsKKysg ICAgY2FzZSBrVW5vcmRlcmVkRXF1YWw6CisrICAgIGNhc2Uga1Vub3JkZXJlZE5vdEVxdWFsOgor KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgfQorKyAgVU5S RUFDSEFCTEUoKTsKKyt9CisrCisrQ29uZGl0aW9uIEZsYWdzQ29uZGl0aW9uVG9Db25kaXRpb25U c3QoRmxhZ3NDb25kaXRpb24gY29uZGl0aW9uKSB7CisrICBzd2l0Y2ggKGNvbmRpdGlvbikgewor KyAgICBjYXNlIGtOb3RFcXVhbDoKKysgICAgICByZXR1cm4gbmU7CisrICAgIGNhc2Uga0VxdWFs OgorKyAgICAgIHJldHVybiBlcTsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsKKysgIH0K KysgIFVOUkVBQ0hBQkxFKCk7CisrfQorKworK0NvbmRpdGlvbiBGbGFnc0NvbmRpdGlvblRvQ29u ZGl0aW9uT3ZmKEZsYWdzQ29uZGl0aW9uIGNvbmRpdGlvbikgeworKyAgc3dpdGNoIChjb25kaXRp b24pIHsKKysgICAgY2FzZSBrT3ZlcmZsb3c6CisrICAgICAgcmV0dXJuIG5lOworKyAgICBjYXNl IGtOb3RPdmVyZmxvdzoKKysgICAgICByZXR1cm4gZXE7CisrICAgIGRlZmF1bHQ6CisrICAgICAg YnJlYWs7CisrICB9CisrICBVTlJFQUNIQUJMRSgpOworK30KKysKKytGUFVDb25kaXRpb24gRmxh Z3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcEZQVShib29sKiBwcmVkaWNhdGUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3NDb25kaXRpb24gY29uZGl0 aW9uKSB7CisrICBzd2l0Y2ggKGNvbmRpdGlvbikgeworKyAgICBjYXNlIGtFcXVhbDoKKysgICAg ICAqcHJlZGljYXRlID0gdHJ1ZTsKKysgICAgICByZXR1cm4gRVE7CisrICAgIGNhc2Uga05vdEVx dWFsOgorKyAgICAgICpwcmVkaWNhdGUgPSBmYWxzZTsKKysgICAgICByZXR1cm4gRVE7CisrICAg IGNhc2Uga1Vuc2lnbmVkTGVzc1RoYW46CisrICAgICAgKnByZWRpY2F0ZSA9IHRydWU7CisrICAg ICAgcmV0dXJuIExUOworKyAgICBjYXNlIGtVbnNpZ25lZEdyZWF0ZXJUaGFuT3JFcXVhbDoKKysg ICAgICAqcHJlZGljYXRlID0gZmFsc2U7CisrICAgICAgcmV0dXJuIExUOworKyAgICBjYXNlIGtV bnNpZ25lZExlc3NUaGFuT3JFcXVhbDoKKysgICAgICAqcHJlZGljYXRlID0gdHJ1ZTsKKysgICAg ICByZXR1cm4gTEU7CisrICAgIGNhc2Uga1Vuc2lnbmVkR3JlYXRlclRoYW46CisrICAgICAgKnBy ZWRpY2F0ZSA9IGZhbHNlOworKyAgICAgIHJldHVybiBMRTsKKysgICAgY2FzZSBrVW5vcmRlcmVk RXF1YWw6CisrICAgIGNhc2Uga1Vub3JkZXJlZE5vdEVxdWFsOgorKyAgICAgICpwcmVkaWNhdGUg PSB0cnVlOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgICpwcmVkaWNhdGUg PSB0cnVlOworKyAgICAgIGJyZWFrOworKyAgfQorKyAgVU5SRUFDSEFCTEUoKTsKKyt9CisrCisr dm9pZCBFbWl0V29yZExvYWRQb2lzb25pbmdJZk5lZWRlZChDb2RlR2VuZXJhdG9yKiBjb2RlZ2Vu LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb25Db2RlIG9w Y29kZSwgSW5zdHJ1Y3Rpb24qIGluc3RyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmlzY3ZPcGVyYW5kQ29udmVydGVyIGNvbnN0JiBpKSB7CisrICBjb25zdCBNZW1vcnlB Y2Nlc3NNb2RlIGFjY2Vzc19tb2RlID0KKysgICAgICBzdGF0aWNfY2FzdDxNZW1vcnlBY2Nlc3NN b2RlPihNaXNjRmllbGQ6OmRlY29kZShvcGNvZGUpKTsKKysgIGlmIChhY2Nlc3NfbW9kZSA9PSBr TWVtb3J5QWNjZXNzUG9pc29uZWQpIHsKKysgICAgUmVnaXN0ZXIgdmFsdWUgPSBpLk91dHB1dFJl Z2lzdGVyKCk7CisrICAgIGNvZGVnZW4tPnRhc20oKS0+QW5kKHZhbHVlLCB2YWx1ZSwga1NwZWN1 bGF0aW9uUG9pc29uUmVnaXN0ZXIpOworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UKKysK KysjZGVmaW5lIEFTU0VNQkxFX0FUT01JQ19MT0FEX0lOVEVHRVIoYXNtX2luc3RyKSAgICAgICAg ICBcCisrICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICBfXyBhc21faW5zdHIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLk1lbW9yeU9w ZXJhbmQoKSk7IFwKKysgICAgX18gc3luYygpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICB9IHdoaWxlICgwKQorKworKyNkZWZpbmUgQVNTRU1CTEVfQVRP TUlDX1NUT1JFX0lOVEVHRVIoYXNtX2luc3RyKSAgICAgICAgICAgICAgIFwKKysgIGRvIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisr ICAgIF9fIHN5bmMoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICBfXyBhc21faW5zdHIoaS5JbnB1dE9yWmVyb1JlZ2lzdGVyKDIpLCBpLk1l bW9yeU9wZXJhbmQoKSk7IFwKKysgICAgX18gc3luYygpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB9IHdoaWxlICgwKQorKworKyNkZWZpbmUg QVNTRU1CTEVfQVRPTUlDX0JJTk9QKGxvYWRfbGlua2VkLCBzdG9yZV9jb25kaXRpb25hbCwgYmlu X2luc3RyKSAgICAgICBcCisrICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgTGFiZWwgYmlu b3A7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICBfXyBBZGQ2NChpLlRlbXBSZWdpc3RlcigwKSwgaS5JbnB1dFJlZ2lz dGVyKDApLCBpLklucHV0UmVnaXN0ZXIoMSkpOyAgICAgICBcCisrICAgIF9fIHN5bmMoKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgX18gYmluZCgmYmlub3ApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBsb2FkX2xpbmtlZChpLk91 dHB1dFJlZ2lzdGVyKDApLCBNZW1PcGVyYW5kKGkuVGVtcFJlZ2lzdGVyKDApLCAwKSk7ICAgICBc CisrICAgIF9fIGJpbl9pbnN0cihpLlRlbXBSZWdpc3RlcigxKSwgaS5PdXRwdXRSZWdpc3Rlcigw KSwgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgICAgICAgIE9wZXJhbmQoaS5J bnB1dFJlZ2lzdGVyKDIpKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBfXyBzdG9yZV9jb25kaXRpb25hbChpLlRlbXBSZWdpc3RlcigxKSwgTWVtT3BlcmFuZChpLlRl bXBSZWdpc3RlcigwKSwgMCkpOyBcCisrICAgIF9fIEJyYW5jaFNob3J0KCZiaW5vcCwgbmUsIGku VGVtcFJlZ2lzdGVyKDEpLCBPcGVyYW5kKHplcm9fcmVnKSk7ICAgICAgICAgIFwKKysgICAgX18g c3luYygpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIEFTU0VNQkxFX0FU T01JQ19CSU5PUF9FWFQobG9hZF9saW5rZWQsIHN0b3JlX2NvbmRpdGlvbmFsLCBzaWduX2V4dGVu ZCwgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplLCBiaW5faW5zdHIs IHJlcHJlc2VudGF0aW9uKSAgICAgICAgICAgICBcCisrICBkbyB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgTGFiZWwgYmlub3A7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBBZGQ2NChpLlRlbXBSZWdpc3Rlcigw KSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklucHV0UmVnaXN0ZXIoMSkpOyAgICAgICBcCisrICAg IGlmIChyZXByZXNlbnRhdGlvbiA9PSAzMikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgICAgICBfXyBBbmQoaS5UZW1wUmVnaXN0ZXIoMyksIGku VGVtcFJlZ2lzdGVyKDApLCAweDMpOyAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICB9IGVs c2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICAgRENIRUNLX0VRKHJlcHJlc2VudGF0aW9uLCA2NCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICBfXyBBbmQo aS5UZW1wUmVnaXN0ZXIoMyksIGkuVGVtcFJlZ2lzdGVyKDApLCAweDcpOyAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIFN1YjY0KGkuVGVt cFJlZ2lzdGVyKDApLCBpLlRlbXBSZWdpc3RlcigwKSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgICAgICAgICAgT3BlcmFuZChpLlRlbXBSZWdpc3RlcigzKSkpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBTbGwzMihpLlRlbXBSZWdp c3RlcigzKSwgaS5UZW1wUmVnaXN0ZXIoMyksIDMpOyAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgIF9fIHN5bmMoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gYmluZCgmYmlub3ApOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBfXyBsb2FkX2xpbmtlZChpLlRlbXBSZWdpc3RlcigxKSwgTWVtT3BlcmFuZChpLlRlbXBSZWdp c3RlcigwKSwgMCkpOyAgICAgICBcCisrICAgIF9fIEV4dHJhY3RCaXRzKGkuT3V0cHV0UmVnaXN0 ZXIoMCksIGkuVGVtcFJlZ2lzdGVyKDEpLCBpLlRlbXBSZWdpc3RlcigzKSwgIFwKKysgICAgICAg ICAgICAgICAgICAgc2l6ZSwgc2lnbl9leHRlbmQpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICBfXyBiaW5faW5zdHIoaS5UZW1wUmVnaXN0ZXIoMiksIGku T3V0cHV0UmVnaXN0ZXIoMCksICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgICAg ICAgICBPcGVyYW5kKGkuSW5wdXRSZWdpc3RlcigyKSkpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgICAgX18gSW5zZXJ0Qml0cyhpLlRlbXBSZWdpc3RlcigxKSwgaS5UZW1w UmVnaXN0ZXIoMiksIGkuVGVtcFJlZ2lzdGVyKDMpLCAgICAgXAorKyAgICAgICAgICAgICAgICAg IHNpemUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgIF9fIHN0b3JlX2NvbmRpdGlvbmFsKGkuVGVtcFJlZ2lzdGVyKDEpLCBNZW1P cGVyYW5kKGkuVGVtcFJlZ2lzdGVyKDApLCAwKSk7IFwKKysgICAgX18gQnJhbmNoU2hvcnQoJmJp bm9wLCBuZSwgaS5UZW1wUmVnaXN0ZXIoMSksIE9wZXJhbmQoemVyb19yZWcpKTsgICAgICAgICAg XAorKyAgICBfXyBzeW5jKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB9IHdoaWxlICgwKQorKworKyNkZWZpbmUg QVNTRU1CTEVfQVRPTUlDX0VYQ0hBTkdFX0lOVEVHRVIobG9hZF9saW5rZWQsIHN0b3JlX2NvbmRp dGlvbmFsKSAgICAgICBcCisrICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgTGFiZWwgZXhj aGFuZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICBfXyBzeW5jKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIGJpbmQoJmV4Y2hh bmdlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgX18gQWRkNjQoaS5UZW1wUmVnaXN0ZXIoMCksIGkuSW5wdXRSZWdpc3Rlcigw KSwgaS5JbnB1dFJlZ2lzdGVyKDEpKTsgICAgICAgXAorKyAgICBfXyBsb2FkX2xpbmtlZChpLk91 dHB1dFJlZ2lzdGVyKDApLCBNZW1PcGVyYW5kKGkuVGVtcFJlZ2lzdGVyKDApLCAwKSk7ICAgICBc CisrICAgIF9fIE1vdmUoaS5UZW1wUmVnaXN0ZXIoMSksIGkuSW5wdXRSZWdpc3RlcigyKSk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gc3RvcmVfY29uZGl0aW9uYWwoaS5U ZW1wUmVnaXN0ZXIoMSksIE1lbU9wZXJhbmQoaS5UZW1wUmVnaXN0ZXIoMCksIDApKTsgXAorKyAg ICBfXyBCcmFuY2hTaG9ydCgmZXhjaGFuZ2UsIG5lLCBpLlRlbXBSZWdpc3RlcigxKSwgT3BlcmFu ZCh6ZXJvX3JlZykpOyAgICAgICBcCisrICAgIF9fIHN5bmMoKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIH0gd2hp bGUgKDApCisrCisrI2RlZmluZSBBU1NFTUJMRV9BVE9NSUNfRVhDSEFOR0VfSU5URUdFUl9FWFQo ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgbG9hZF9saW5rZWQsIHN0 b3JlX2NvbmRpdGlvbmFsLCBzaWduX2V4dGVuZCwgc2l6ZSwgcmVwcmVzZW50YXRpb24pICAgICAg ICAgXAorKyAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIExhYmVsIGV4Y2hhbmdlOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgX18gQWRkNjQoaS5UZW1wUmVnaXN0ZXIoMCksIGkuSW5wdXRSZWdpc3RlcigwKSwgaS5J bnB1dFJlZ2lzdGVyKDEpKTsgICAgICAgXAorKyAgICBpZiAocmVwcmVzZW50YXRpb24gPT0gMzIp IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg ICAgX18gQW5kKGkuVGVtcFJlZ2lzdGVyKDEpLCBpLlRlbXBSZWdpc3RlcigwKSwgMHgzKTsgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgIERD SEVDS19FUShyZXByZXNlbnRhdGlvbiwgNjQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICAgX18gQW5kKGkuVGVtcFJlZ2lzdGVyKDEpLCBpLlRlbXBS ZWdpc3RlcigwKSwgMHg3KTsgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICBfXyBTdWI2NChpLlRlbXBSZWdpc3RlcigwKSwgaS5UZW1wUmVnaXN0 ZXIoMCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgICAgIE9wZXJh bmQoaS5UZW1wUmVnaXN0ZXIoMSkpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgX18gU2xsMzIoaS5UZW1wUmVnaXN0ZXIoMSksIGkuVGVtcFJlZ2lzdGVyKDEp LCAzKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBzeW5jKCk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgIF9fIGJpbmQoJmV4Y2hhbmdlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gbG9hZF9saW5rZWQoaS5UZW1wUmVn aXN0ZXIoMiksIE1lbU9wZXJhbmQoaS5UZW1wUmVnaXN0ZXIoMCksIDApKTsgICAgICAgXAorKyAg ICBfXyBFeHRyYWN0Qml0cyhpLk91dHB1dFJlZ2lzdGVyKDApLCBpLlRlbXBSZWdpc3RlcigyKSwg aS5UZW1wUmVnaXN0ZXIoMSksICBcCisrICAgICAgICAgICAgICAgICAgIHNpemUsIHNpZ25fZXh0 ZW5kKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18g SW5zZXJ0Qml0cyhpLlRlbXBSZWdpc3RlcigyKSwgaS5JbnB1dFJlZ2lzdGVyKDIpLCBpLlRlbXBS ZWdpc3RlcigxKSwgICAgXAorKyAgICAgICAgICAgICAgICAgIHNpemUpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIHN0b3Jl X2NvbmRpdGlvbmFsKGkuVGVtcFJlZ2lzdGVyKDIpLCBNZW1PcGVyYW5kKGkuVGVtcFJlZ2lzdGVy KDApLCAwKSk7IFwKKysgICAgX18gQnJhbmNoU2hvcnQoJmV4Y2hhbmdlLCBuZSwgaS5UZW1wUmVn aXN0ZXIoMiksIE9wZXJhbmQoemVyb19yZWcpKTsgICAgICAgXAorKyAgICBfXyBzeW5jKCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICB9IHdoaWxlICgwKQorKworKyNkZWZpbmUgQVNTRU1CTEVfQVRPTUlDX0NPTVBB UkVfRVhDSEFOR0VfSU5URUdFUihsb2FkX2xpbmtlZCwgICAgICAgICAgICAgICAgICBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlX2NvbmRp dGlvbmFsKSAgICAgICAgICAgIFwKKysgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBMYWJl bCBjb21wYXJlRXhjaGFuZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgIExhYmVsIGV4aXQ7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gQWRkNjQo aS5UZW1wUmVnaXN0ZXIoMCksIGkuSW5wdXRSZWdpc3RlcigwKSwgaS5JbnB1dFJlZ2lzdGVyKDEp KTsgICAgICAgXAorKyAgICBfXyBzeW5jKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIGJpbmQoJmNvbXBh cmVFeGNoYW5nZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgX18gbG9hZF9saW5rZWQoaS5PdXRwdXRSZWdpc3RlcigwKSwgTWVtT3BlcmFu ZChpLlRlbXBSZWdpc3RlcigwKSwgMCkpOyAgICAgXAorKyAgICBfXyBCcmFuY2hTaG9ydCgmZXhp dCwgbmUsIGkuSW5wdXRSZWdpc3RlcigyKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgICAgICAgICAgICAgICAgIE9wZXJhbmQoaS5PdXRwdXRSZWdpc3RlcigwKSkpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gTW92ZShpLlRlbXBSZWdpc3Rlcigy KSwgaS5JbnB1dFJlZ2lzdGVyKDMpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBfXyBzdG9yZV9jb25kaXRpb25hbChpLlRlbXBSZWdpc3RlcigyKSwgTWVtT3BlcmFuZChpLlRl bXBSZWdpc3RlcigwKSwgMCkpOyBcCisrICAgIF9fIEJyYW5jaFNob3J0KCZjb21wYXJlRXhjaGFu Z2UsIG5lLCBpLlRlbXBSZWdpc3RlcigyKSwgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAg ICAgICAgICAgICAgT3BlcmFuZCh6ZXJvX3JlZykpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICBfXyBiaW5kKCZleGl0KTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIHN5bmMo KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgIH0gd2hpbGUgKDApCisrCisrI2RlZmluZSBBU1NFTUJMRV9BVE9NSUNf Q09NUEFSRV9FWENIQU5HRV9JTlRFR0VSX0VYVCggICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgbG9hZF9saW5rZWQsIHN0b3JlX2NvbmRpdGlvbmFsLCBzaWduX2V4dGVuZCwgc2l6ZSwg cmVwcmVzZW50YXRpb24pICAgICAgICAgXAorKyAgZG8geyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg IExhYmVsIGNvbXBhcmVFeGNoYW5nZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgICAgTGFiZWwgZXhpdDsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBB ZGQ2NChpLlRlbXBSZWdpc3RlcigwKSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklucHV0UmVnaXN0 ZXIoMSkpOyAgICAgICBcCisrICAgIGlmIChyZXByZXNlbnRhdGlvbiA9PSAzMikgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICBfXyBBbmQo aS5UZW1wUmVnaXN0ZXIoMSksIGkuVGVtcFJlZ2lzdGVyKDApLCAweDMpOyAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgRENIRUNLX0VRKHJl cHJlc2VudGF0aW9uLCA2NCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgICAgICBfXyBBbmQoaS5UZW1wUmVnaXN0ZXIoMSksIGkuVGVtcFJlZ2lzdGVyKDAp LCAweDcpOyAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICB9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgIF9fIFN1YjY0KGkuVGVtcFJlZ2lzdGVyKDApLCBpLlRlbXBSZWdpc3RlcigwKSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgICAgT3BlcmFuZChpLlRlbXBS ZWdpc3RlcigxKSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBfXyBTbGwzMihpLlRlbXBSZWdpc3RlcigxKSwgaS5UZW1wUmVnaXN0ZXIoMSksIDMpOyAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIHN5bmMoKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18g YmluZCgmY29tcGFyZUV4Y2hhbmdlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICBfXyBsb2FkX2xpbmtlZChpLlRlbXBSZWdpc3RlcigyKSwg TWVtT3BlcmFuZChpLlRlbXBSZWdpc3RlcigwKSwgMCkpOyAgICAgICBcCisrICAgIF9fIEV4dHJh Y3RCaXRzKGkuT3V0cHV0UmVnaXN0ZXIoMCksIGkuVGVtcFJlZ2lzdGVyKDIpLCBpLlRlbXBSZWdp c3RlcigxKSwgIFwKKysgICAgICAgICAgICAgICAgICAgc2l6ZSwgc2lnbl9leHRlbmQpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBFeHRyYWN0Qml0 cyhpLklucHV0UmVnaXN0ZXIoMiksIGkuSW5wdXRSZWdpc3RlcigyKSwgaS5UZW1wUmVnaXN0ZXIo MSksICBcCisrICAgICAgICAgICAgICAgICAgIHNpemUsIHNpZ25fZXh0ZW5kKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gQnJhbmNoU2hvcnQoJmV4 aXQsIG5lLCBpLklucHV0UmVnaXN0ZXIoMiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgICAgICAgICAgICAgICAgICBPcGVyYW5kKGkuT3V0cHV0UmVnaXN0ZXIoMCkpKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIEluc2VydEJpdHMoaS5UZW1wUmVn aXN0ZXIoMiksIGkuSW5wdXRSZWdpc3RlcigzKSwgaS5UZW1wUmVnaXN0ZXIoMSksICAgIFwKKysg ICAgICAgICAgICAgICAgICBzaXplKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBzdG9yZV9jb25kaXRpb25hbChpLlRlbXBS ZWdpc3RlcigyKSwgTWVtT3BlcmFuZChpLlRlbXBSZWdpc3RlcigwKSwgMCkpOyBcCisrICAgIF9f IEJyYW5jaFNob3J0KCZjb21wYXJlRXhjaGFuZ2UsIG5lLCBpLlRlbXBSZWdpc3RlcigyKSwgICAg ICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgICAgICAgICAgT3BlcmFuZCh6ZXJvX3JlZykp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBfXyBiaW5k KCZleGl0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICAgIF9fIHN5bmMoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIH0gd2hpbGUgKDApCisr CisrI2RlZmluZSBBU1NFTUJMRV9JRUVFNzU0X0JJTk9QKG5hbWUpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBGcmFt ZVNjb3BlIHNjb3BlKHRhc20oKSwgU3RhY2tGcmFtZTo6TUFOVUFMKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICAgIF9fIFByZXBhcmVDYWxsQ0Z1bmN0aW9uKDAsIDIsIGtTY3JhdGNo UmVnKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgX18gTW92VG9GbG9hdFBh cmFtZXRlcnMoaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLCAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLklucHV0RG91YmxlUmVnaXN0ZXIoMSkp OyAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIENhbGxDRnVuY3Rpb24oRXh0ZXJuYWxS ZWZlcmVuY2U6OmllZWU3NTRfIyNuYW1lIyNfZnVuY3Rpb24oKSwgMCwgMik7IFwKKysgICAgLyog TW92ZSB0aGUgcmVzdWx0IGluIHRoZSBkb3VibGUgcmVzdWx0IHJlZ2lzdGVyLiAqLyAgICAgICAg ICAgICAgICAgICAgXAorKyAgICBfXyBNb3ZGcm9tRmxvYXRSZXN1bHQoaS5PdXRwdXREb3VibGVS ZWdpc3RlcigpKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB9IHdoaWxlICgwKQorKwor KyNkZWZpbmUgQVNTRU1CTEVfSUVFRTc1NF9VTk9QKG5hbWUpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgRnJhbWVT Y29wZSBzY29wZSh0YXNtKCksIFN0YWNrRnJhbWU6Ok1BTlVBTCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICBfXyBQcmVwYXJlQ2FsbENGdW5jdGlvbigwLCAxLCBrU2NyYXRjaFJl Zyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIE1vdlRvRmxvYXRQYXJh bWV0ZXIoaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApKTsgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgX18gQ2FsbENGdW5jdGlvbihFeHRlcm5hbFJlZmVyZW5jZTo6aWVlZTc1NF8jI25hbWUj I19mdW5jdGlvbigpLCAwLCAxKTsgXAorKyAgICAvKiBNb3ZlIHRoZSByZXN1bHQgaW4gdGhlIGRv dWJsZSByZXN1bHQgcmVnaXN0ZXIuICovICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9fIE1v dkZyb21GbG9hdFJlc3VsdChpLk91dHB1dERvdWJsZVJlZ2lzdGVyKCkpOyAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgIH0gd2hpbGUgKDApCisrCisrI2RlZmluZSBBU1NFTUJMRV9GNjRYMl9B UklUSE1FVElDX0JJTk9QKG9wKSAgICAgICAgICAgICAgICAgICAgIFwKKysgIGRvIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICBfXyBvcChpLk91dHB1dFNpbWQxMjhSZWdpc3RlcigpLCBpLklucHV0U2ltZDEyOFJlZ2lzdGVy KDApLCBcCisrICAgICAgICAgIGkuSW5wdXRTaW1kMTI4UmVnaXN0ZXIoMSkpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIH0gd2hpbGUgKDApCisrCisrdm9pZCBDb2RlR2VuZXJhdG9y OjpBc3NlbWJsZURlY29uc3RydWN0RnJhbWUoKSB7CisrICBfXyBNb3ZlKHNwLCBmcCk7CisrICBf XyBQb3AocmEsIGZwKTsKKyt9CisrCisrdm9pZCBDb2RlR2VuZXJhdG9yOjpBc3NlbWJsZVByZXBh cmVUYWlsQ2FsbCgpIHsKKysgIGlmIChmcmFtZV9hY2Nlc3Nfc3RhdGUoKS0+aGFzX2ZyYW1lKCkp IHsKKysgICAgX18gTGQocmEsIE1lbU9wZXJhbmQoZnAsIFN0YW5kYXJkRnJhbWVDb25zdGFudHM6 OmtDYWxsZXJQQ09mZnNldCkpOworKyAgICBfXyBMZChmcCwgTWVtT3BlcmFuZChmcCwgU3RhbmRh cmRGcmFtZUNvbnN0YW50czo6a0NhbGxlckZQT2Zmc2V0KSk7CisrICB9CisrICBmcmFtZV9hY2Nl c3Nfc3RhdGUoKS0+U2V0RnJhbWVBY2Nlc3NUb1NQKCk7CisrfQorKworK3ZvaWQgQ29kZUdlbmVy YXRvcjo6QXNzZW1ibGVQb3BBcmd1bWVudHNBZGFwdG9yRnJhbWUoUmVnaXN0ZXIgYXJnc19yZWcs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlciBzY3JhdGNoMSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNjcmF0Y2gyLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgc2NyYXRjaDMpIHsKKysg IERDSEVDSyghQXJlQWxpYXNlZChhcmdzX3JlZywgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzY3JhdGNo MykpOworKyAgTGFiZWwgZG9uZTsKKysKKysgIC8vIENoZWNrIGlmIGN1cnJlbnQgZnJhbWUgaXMg YW4gYXJndW1lbnRzIGFkYXB0b3IgZnJhbWUuCisrICBfXyBMZChzY3JhdGNoMywgTWVtT3BlcmFu ZChmcCwgU3RhbmRhcmRGcmFtZUNvbnN0YW50czo6a0NvbnRleHRPZmZzZXQpKTsKKysgIF9fIEJy YW5jaCgmZG9uZSwgbmUsIHNjcmF0Y2gzLAorKyAgICAgICAgICAgIE9wZXJhbmQoU3RhY2tGcmFt ZTo6VHlwZVRvTWFya2VyKFN0YWNrRnJhbWU6OkFSR1VNRU5UU19BREFQVE9SKSkpOworKworKyAg Ly8gTG9hZCBhcmd1bWVudHMgY291bnQgZnJvbSBjdXJyZW50IGFyZ3VtZW50cyBhZGFwdG9yIGZy YW1lIChub3RlLCBpdAorKyAgLy8gZG9lcyBub3QgaW5jbHVkZSByZWNlaXZlcikuCisrICBSZWdp c3RlciBjYWxsZXJfYXJnc19jb3VudF9yZWcgPSBzY3JhdGNoMTsKKysgIF9fIExkKGNhbGxlcl9h cmdzX2NvdW50X3JlZywKKysgICAgICAgIE1lbU9wZXJhbmQoZnAsIEFyZ3VtZW50c0FkYXB0b3JG cmFtZUNvbnN0YW50czo6a0xlbmd0aE9mZnNldCkpOworKyAgX18gU21pVW50YWcoY2FsbGVyX2Fy Z3NfY291bnRfcmVnKTsKKysKKysgIF9fIFByZXBhcmVGb3JUYWlsQ2FsbChhcmdzX3JlZywgY2Fs bGVyX2FyZ3NfY291bnRfcmVnLCBzY3JhdGNoMiwgc2NyYXRjaDMpOworKyAgX18gYmluZCgmZG9u ZSk7CisrfQorKworK25hbWVzcGFjZSB7CisrCisrdm9pZCBBZGp1c3RTdGFja1BvaW50ZXJGb3JU YWlsQ2FsbChUdXJib0Fzc2VtYmxlciogdGFzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZyYW1lQWNjZXNzU3RhdGUqIHN0YXRlLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IG5ld19zbG90X2Fib3ZlX3NwLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBhbGxvd19zaHJpbmthZ2UgPSB0cnVlKSB7CisrICBpbnQg Y3VycmVudF9zcF9vZmZzZXQgPSBzdGF0ZS0+R2V0U1BUb0ZQU2xvdENvdW50KCkgKworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRGcmFtZUNvbnN0YW50czo6a0ZpeGVkU2xvdENv dW50QWJvdmVGcDsKKysgIGludCBzdGFja19zbG90X2RlbHRhID0gbmV3X3Nsb3RfYWJvdmVfc3Ag LSBjdXJyZW50X3NwX29mZnNldDsKKysgIGlmIChzdGFja19zbG90X2RlbHRhID4gMCkgeworKyAg ICB0YXNtLT5TdWI2NChzcCwgc3AsIHN0YWNrX3Nsb3RfZGVsdGEgKiBrU3lzdGVtUG9pbnRlclNp emUpOworKyAgICBzdGF0ZS0+SW5jcmVhc2VTUERlbHRhKHN0YWNrX3Nsb3RfZGVsdGEpOworKyAg fSBlbHNlIGlmIChhbGxvd19zaHJpbmthZ2UgJiYgc3RhY2tfc2xvdF9kZWx0YSA8IDApIHsKKysg ICAgdGFzbS0+QWRkNjQoc3AsIHNwLCAtc3RhY2tfc2xvdF9kZWx0YSAqIGtTeXN0ZW1Qb2ludGVy U2l6ZSk7CisrICAgIHN0YXRlLT5JbmNyZWFzZVNQRGVsdGEoc3RhY2tfc2xvdF9kZWx0YSk7Cisr ICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNz ZW1ibGVUYWlsQ2FsbEJlZm9yZUdhcChJbnN0cnVjdGlvbiogaW5zdHIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmaXJzdF91bnVzZWRfc3RhY2tf c2xvdCkgeworKyAgQWRqdXN0U3RhY2tQb2ludGVyRm9yVGFpbENhbGwodGFzbSgpLCBmcmFtZV9h Y2Nlc3Nfc3RhdGUoKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X3Vu dXNlZF9zdGFja19zbG90LCBmYWxzZSk7CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNz ZW1ibGVUYWlsQ2FsbEFmdGVyR2FwKEluc3RydWN0aW9uKiBpbnN0ciwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmlyc3RfdW51c2VkX3N0YWNrX3Ns b3QpIHsKKysgIEFkanVzdFN0YWNrUG9pbnRlckZvclRhaWxDYWxsKHRhc20oKSwgZnJhbWVfYWNj ZXNzX3N0YXRlKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF91bnVz ZWRfc3RhY2tfc2xvdCk7CisrfQorKworKy8vIENoZWNrIHRoYXQge2tKYXZhU2NyaXB0Q2FsbENv ZGVTdGFydFJlZ2lzdGVyfSBpcyBjb3JyZWN0LgorK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1i bGVDb2RlU3RhcnRSZWdpc3RlckNoZWNrKCkgeworKyAgX18gQ29tcHV0ZUNvZGVTdGFydEFkZHJl c3Moa1NjcmF0Y2hSZWcpOworKyAgX18gQXNzZXJ0KGVxLCBBYm9ydFJlYXNvbjo6a1dyb25nRnVu Y3Rpb25Db2RlU3RhcnQsCisrICAgICAgICAgICAga0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVn aXN0ZXIsIE9wZXJhbmQoa1NjcmF0Y2hSZWcpKTsKKyt9CisrCisrLy8gQ2hlY2sgaWYgdGhlIGNv ZGUgb2JqZWN0IGlzIG1hcmtlZCBmb3IgZGVvcHRpbWl6YXRpb24uIElmIGl0IGlzLCB0aGVuIGl0 CisrLy8ganVtcHMgdG8gdGhlIENvbXBpbGVMYXp5RGVvcHRpbWl6ZWRDb2RlIGJ1aWx0aW4uIElu IG9yZGVyIHRvIGRvIHRoaXMgd2UgbmVlZAorKy8vIHRvOgorKy8vICAgIDEuIHJlYWQgZnJvbSBt ZW1vcnkgdGhlIHdvcmQgdGhhdCBjb250YWlucyB0aGF0IGJpdCwgd2hpY2ggY2FuIGJlIGZvdW5k IGluCisrLy8gICAgICAgdGhlIGZsYWdzIGluIHRoZSByZWZlcmVuY2VkIHtDb2RlRGF0YUNvbnRh aW5lcn0gb2JqZWN0OworKy8vICAgIDIuIHRlc3Qga01hcmtlZEZvckRlb3B0aW1pemF0aW9uQml0 IGluIHRob3NlIGZsYWdzOyBhbmQKKysvLyAgICAzLiBpZiBpdCBpcyBub3QgemVybyB0aGVuIGl0 IGp1bXBzIHRvIHRoZSBidWlsdGluLgorK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QmFpbG91dElmRGVv cHRpbWl6ZWQoKSB7CisrICBpbnQgb2Zmc2V0ID0gQ29kZTo6a0NvZGVEYXRhQ29udGFpbmVyT2Zm c2V0IC0gQ29kZTo6a0hlYWRlclNpemU7CisrICBfXyBMZChrU2NyYXRjaFJlZywgTWVtT3BlcmFu ZChrSmF2YVNjcmlwdENhbGxDb2RlU3RhcnRSZWdpc3Rlciwgb2Zmc2V0KSk7CisrICBfXyBMdyhr U2NyYXRjaFJlZywKKysgICAgICAgIEZpZWxkTWVtT3BlcmFuZChrU2NyYXRjaFJlZywKKysgICAg ICAgICAgICAgICAgICAgICAgICBDb2RlRGF0YUNvbnRhaW5lcjo6a0tpbmRTcGVjaWZpY0ZsYWdz T2Zmc2V0KSk7CisrICBfXyBBbmQoa1NjcmF0Y2hSZWcsIGtTY3JhdGNoUmVnLAorKyAgICAgICAg IE9wZXJhbmQoMSA8PCBDb2RlOjprTWFya2VkRm9yRGVvcHRpbWl6YXRpb25CaXQpKTsKKysgIF9f IEp1bXAoQlVJTFRJTl9DT0RFKGlzb2xhdGUoKSwgQ29tcGlsZUxhenlEZW9wdGltaXplZENvZGUp LAorKyAgICAgICAgICBSZWxvY0luZm86OkNPREVfVEFSR0VULCBuZSwga1NjcmF0Y2hSZWcsIE9w ZXJhbmQoemVyb19yZWcpKTsKKyt9CisrCisrdm9pZCBDb2RlR2VuZXJhdG9yOjpHZW5lcmF0ZVNw ZWN1bGF0aW9uUG9pc29uRnJvbUNvZGVTdGFydFJlZ2lzdGVyKCkgeworKyAgLy8gQ2FsY3VsYXRl IGEgbWFzayB3aGljaCBoYXMgYWxsIGJpdHMgc2V0IGluIHRoZSBub3JtYWwgY2FzZSwgYnV0IGhh cyBhbGwKKysgIC8vIGJpdHMgY2xlYXJlZCBpZiB3ZSBhcmUgc3BlY3VsYXRpdmVseSBleGVjdXRp bmcgdGhlIHdyb25nIFBDLgorKyAgLy8gICAgZGlmZmVyZW5jZSA9IChjdXJyZW50IC0gZXhwZWN0 ZWQpIHwgKGV4cGVjdGVkIC0gY3VycmVudCkKKysgIC8vICAgIHBvaXNvbiA9IH4oZGlmZmVyZW5j ZSA+PiAoa0JpdHNQZXJTeXN0ZW1Qb2ludGVyIC0gMSkpCisrICBfXyBDb21wdXRlQ29kZVN0YXJ0 QWRkcmVzcyhrU2NyYXRjaFJlZyk7CisrICBfXyBNb3ZlKGtTcGVjdWxhdGlvblBvaXNvblJlZ2lz dGVyLCBrU2NyYXRjaFJlZyk7CisrICBfXyBTdWIzMihrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rl ciwga1NwZWN1bGF0aW9uUG9pc29uUmVnaXN0ZXIsCisrICAgICAgICAgICBrSmF2YVNjcmlwdENh bGxDb2RlU3RhcnRSZWdpc3Rlcik7CisrICBfXyBTdWIzMihrSmF2YVNjcmlwdENhbGxDb2RlU3Rh cnRSZWdpc3Rlciwga0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVnaXN0ZXIsCisrICAgICAgICAg ICBrU2NyYXRjaFJlZyk7CisrICBfXyBvcl8oa1NwZWN1bGF0aW9uUG9pc29uUmVnaXN0ZXIsIGtT cGVjdWxhdGlvblBvaXNvblJlZ2lzdGVyLAorKyAgICAgICAgIGtKYXZhU2NyaXB0Q2FsbENvZGVT dGFydFJlZ2lzdGVyKTsKKysgIF9fIFNyYTY0KGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVyLCBr U3BlY3VsYXRpb25Qb2lzb25SZWdpc3RlciwKKysgICAgICAgICAgIGtCaXRzUGVyU3lzdGVtUG9p bnRlciAtIDEpOworKyAgX18gTm9yKGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVyLCBrU3BlY3Vs YXRpb25Qb2lzb25SZWdpc3RlciwKKysgICAgICAgICBrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rl cik7CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVSZWdpc3RlckFyZ3VtZW50 UG9pc29uaW5nKCkgeworKyAgX18gQW5kKGtKU0Z1bmN0aW9uUmVnaXN0ZXIsIGtKU0Z1bmN0aW9u UmVnaXN0ZXIsIGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVyKTsKKysgIF9fIEFuZChrQ29udGV4 dFJlZ2lzdGVyLCBrQ29udGV4dFJlZ2lzdGVyLCBrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rlcik7 CisrICBfXyBBbmQoc3AsIHNwLCBrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rlcik7CisrfQorKwor Ky8vIEFzc2VtYmxlcyBhbiBpbnN0cnVjdGlvbiBhZnRlciByZWdpc3RlciBhbGxvY2F0aW9uLCBw cm9kdWNpbmcgbWFjaGluZSBjb2RlLgorK0NvZGVHZW5lcmF0b3I6OkNvZGVHZW5SZXN1bHQgQ29k ZUdlbmVyYXRvcjo6QXNzZW1ibGVBcmNoSW5zdHJ1Y3Rpb24oCisrICAgIEluc3RydWN0aW9uKiBp bnN0cikgeworKyAgUmlzY3ZPcGVyYW5kQ29udmVydGVyIGkodGhpcywgaW5zdHIpOworKyAgSW5z dHJ1Y3Rpb25Db2RlIG9wY29kZSA9IGluc3RyLT5vcGNvZGUoKTsKKysgIEFyY2hPcGNvZGUgYXJj aF9vcGNvZGUgPSBBcmNoT3Bjb2RlRmllbGQ6OmRlY29kZShvcGNvZGUpOworKyAgc3dpdGNoIChh cmNoX29wY29kZSkgeworKyAgICBjYXNlIGtBcmNoQ2FsbENvZGVPYmplY3Q6IHsKKysgICAgICBp ZiAoaW5zdHItPklucHV0QXQoMCktPklzSW1tZWRpYXRlKCkpIHsKKysgICAgICAgIF9fIENhbGwo aS5JbnB1dENvZGUoMCksIFJlbG9jSW5mbzo6Q09ERV9UQVJHRVQpOworKyAgICAgIH0gZWxzZSB7 CisrICAgICAgICBSZWdpc3RlciByZWcgPSBpLklucHV0UmVnaXN0ZXIoMCk7CisrICAgICAgICBE Q0hFQ0tfSU1QTElFUygKKysgICAgICAgICAgICBIYXNDYWxsRGVzY3JpcHRvckZsYWcoaW5zdHIs IENhbGxEZXNjcmlwdG9yOjprRml4ZWRUYXJnZXRSZWdpc3RlciksCisrICAgICAgICAgICAgcmVn ID09IGtKYXZhU2NyaXB0Q2FsbENvZGVTdGFydFJlZ2lzdGVyKTsKKysgICAgICAgIF9fIEFkZDY0 KHJlZywgcmVnLCBDb2RlOjprSGVhZGVyU2l6ZSAtIGtIZWFwT2JqZWN0VGFnKTsKKysgICAgICAg IF9fIENhbGwocmVnKTsKKysgICAgICB9CisrICAgICAgUmVjb3JkQ2FsbFBvc2l0aW9uKGluc3Ry KTsKKysgICAgICBmcmFtZV9hY2Nlc3Nfc3RhdGUoKS0+Q2xlYXJTUERlbHRhKCk7CisrICAgICAg YnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrQXJjaENhbGxCdWlsdGluUG9pbnRlcjogeworKyAg ICAgIERDSEVDSyghaW5zdHItPklucHV0QXQoMCktPklzSW1tZWRpYXRlKCkpOworKyAgICAgIFJl Z2lzdGVyIGJ1aWx0aW5faW5kZXggPSBpLklucHV0UmVnaXN0ZXIoMCk7CisrICAgICAgX18gQ2Fs bEJ1aWx0aW5CeUluZGV4KGJ1aWx0aW5faW5kZXgpOworKyAgICAgIFJlY29yZENhbGxQb3NpdGlv bihpbnN0cik7CisrICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCktPkNsZWFyU1BEZWx0YSgpOwor KyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga0FyY2hDYWxsV2FzbUZ1bmN0aW9uOiB7 CisrICAgICAgLy8gRklYTUUgKFJJU0NWKTogaXNudCB0aGlzIHRlc3QgZGVhZGNvZGU/CisrICAg ICAgaWYgKGFyY2hfb3Bjb2RlID09IGtBcmNoVGFpbENhbGxDb2RlT2JqZWN0RnJvbUpTRnVuY3Rp b24pIHsKKysgICAgICAgIEFzc2VtYmxlUG9wQXJndW1lbnRzQWRhcHRvckZyYW1lKGtKYXZhU2Ny aXB0Q2FsbEFyZ0NvdW50UmVnaXN0ZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpLlRlbXBSZWdpc3RlcigwKSwgaS5UZW1wUmVnaXN0ZXIoMSksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLlRlbXBSZWdpc3RlcigyKSk7Cisr ICAgICAgfQorKyAgICAgIGlmIChpbnN0ci0+SW5wdXRBdCgwKS0+SXNJbW1lZGlhdGUoKSkgewor KyAgICAgICAgQ29uc3RhbnQgY29uc3RhbnQgPSBpLlRvQ29uc3RhbnQoaW5zdHItPklucHV0QXQo MCkpOworKyAgICAgICAgQWRkcmVzcyB3YXNtX2NvZGUgPSBzdGF0aWNfY2FzdDxBZGRyZXNzPihj b25zdGFudC5Ub0ludDY0KCkpOworKyAgICAgICAgX18gQ2FsbCh3YXNtX2NvZGUsIGNvbnN0YW50 LnJtb2RlKCkpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBfXyBBZGQ2NChrU2NyYXRjaFJl ZywgaS5JbnB1dFJlZ2lzdGVyKDApLCAwKTsKKysgICAgICAgIF9fIENhbGwoa1NjcmF0Y2hSZWcp OworKyAgICAgIH0KKysgICAgICBSZWNvcmRDYWxsUG9zaXRpb24oaW5zdHIpOworKyAgICAgIGZy YW1lX2FjY2Vzc19zdGF0ZSgpLT5DbGVhclNQRGVsdGEoKTsKKysgICAgICBicmVhazsKKysgICAg fQorKyAgICBjYXNlIGtBcmNoVGFpbENhbGxDb2RlT2JqZWN0RnJvbUpTRnVuY3Rpb246CisrICAg IGNhc2Uga0FyY2hUYWlsQ2FsbENvZGVPYmplY3Q6IHsKKysgICAgICBpZiAoYXJjaF9vcGNvZGUg PT0ga0FyY2hUYWlsQ2FsbENvZGVPYmplY3RGcm9tSlNGdW5jdGlvbikgeworKyAgICAgICAgQXNz ZW1ibGVQb3BBcmd1bWVudHNBZGFwdG9yRnJhbWUoa0phdmFTY3JpcHRDYWxsQXJnQ291bnRSZWdp c3RlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuVGVtcFJl Z2lzdGVyKDApLCBpLlRlbXBSZWdpc3RlcigxKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGkuVGVtcFJlZ2lzdGVyKDIpKTsKKysgICAgICB9CisrICAgICAgaWYg KGluc3RyLT5JbnB1dEF0KDApLT5Jc0ltbWVkaWF0ZSgpKSB7CisrICAgICAgICBfXyBKdW1wKGku SW5wdXRDb2RlKDApLCBSZWxvY0luZm86OkNPREVfVEFSR0VUKTsKKysgICAgICB9IGVsc2Ugewor KyAgICAgICAgUmVnaXN0ZXIgcmVnID0gaS5JbnB1dFJlZ2lzdGVyKDApOworKyAgICAgICAgRENI RUNLX0lNUExJRVMoCisrICAgICAgICAgICAgSGFzQ2FsbERlc2NyaXB0b3JGbGFnKGluc3RyLCBD YWxsRGVzY3JpcHRvcjo6a0ZpeGVkVGFyZ2V0UmVnaXN0ZXIpLAorKyAgICAgICAgICAgIHJlZyA9 PSBrSmF2YVNjcmlwdENhbGxDb2RlU3RhcnRSZWdpc3Rlcik7CisrICAgICAgICBfXyBBZGQ2NChy ZWcsIHJlZywgQ29kZTo6a0hlYWRlclNpemUgLSBrSGVhcE9iamVjdFRhZyk7CisrICAgICAgICBf XyBKdW1wKHJlZyk7CisrICAgICAgfQorKyAgICAgIGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5DbGVh clNQRGVsdGEoKTsKKysgICAgICBmcmFtZV9hY2Nlc3Nfc3RhdGUoKS0+U2V0RnJhbWVBY2Nlc3NU b0RlZmF1bHQoKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtBcmNoVGFpbENh bGxXYXNtOiB7CisrICAgICAgaWYgKGluc3RyLT5JbnB1dEF0KDApLT5Jc0ltbWVkaWF0ZSgpKSB7 CisrICAgICAgICBDb25zdGFudCBjb25zdGFudCA9IGkuVG9Db25zdGFudChpbnN0ci0+SW5wdXRB dCgwKSk7CisrICAgICAgICBBZGRyZXNzIHdhc21fY29kZSA9IHN0YXRpY19jYXN0PEFkZHJlc3M+ KGNvbnN0YW50LlRvSW50NjQoKSk7CisrICAgICAgICBfXyBKdW1wKHdhc21fY29kZSwgY29uc3Rh bnQucm1vZGUoKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIF9fIEFkZDY0KGtTY3JhdGNo UmVnLCBpLklucHV0UmVnaXN0ZXIoMCksIDApOworKyAgICAgICAgX18gSnVtcChrU2NyYXRjaFJl Zyk7CisrICAgICAgfQorKyAgICAgIGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5DbGVhclNQRGVsdGEo KTsKKysgICAgICBmcmFtZV9hY2Nlc3Nfc3RhdGUoKS0+U2V0RnJhbWVBY2Nlc3NUb0RlZmF1bHQo KTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtBcmNoVGFpbENhbGxBZGRyZXNz OiB7CisrICAgICAgQ0hFQ0soIWluc3RyLT5JbnB1dEF0KDApLT5Jc0ltbWVkaWF0ZSgpKTsKKysg ICAgICBSZWdpc3RlciByZWcgPSBpLklucHV0UmVnaXN0ZXIoMCk7CisrICAgICAgRENIRUNLX0lN UExJRVMoCisrICAgICAgICAgIEhhc0NhbGxEZXNjcmlwdG9yRmxhZyhpbnN0ciwgQ2FsbERlc2Ny aXB0b3I6OmtGaXhlZFRhcmdldFJlZ2lzdGVyKSwKKysgICAgICAgICAgcmVnID09IGtKYXZhU2Ny aXB0Q2FsbENvZGVTdGFydFJlZ2lzdGVyKTsKKysgICAgICBfXyBKdW1wKHJlZyk7CisrICAgICAg ZnJhbWVfYWNjZXNzX3N0YXRlKCktPkNsZWFyU1BEZWx0YSgpOworKyAgICAgIGZyYW1lX2FjY2Vz c19zdGF0ZSgpLT5TZXRGcmFtZUFjY2Vzc1RvRGVmYXVsdCgpOworKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2Uga0FyY2hDYWxsSlNGdW5jdGlvbjogeworKyAgICAgIFJlZ2lzdGVyIGZ1 bmMgPSBpLklucHV0UmVnaXN0ZXIoMCk7CisrICAgICAgaWYgKEZMQUdfZGVidWdfY29kZSkgewor KyAgICAgICAgLy8gQ2hlY2sgdGhlIGZ1bmN0aW9uJ3MgY29udGV4dCBtYXRjaGVzIHRoZSBjb250 ZXh0IGFyZ3VtZW50LgorKyAgICAgICAgX18gTGQoa1NjcmF0Y2hSZWcsIEZpZWxkTWVtT3BlcmFu ZChmdW5jLCBKU0Z1bmN0aW9uOjprQ29udGV4dE9mZnNldCkpOworKyAgICAgICAgX18gQXNzZXJ0 KGVxLCBBYm9ydFJlYXNvbjo6a1dyb25nRnVuY3Rpb25Db250ZXh0LCBjcCwKKysgICAgICAgICAg ICAgICAgICBPcGVyYW5kKGtTY3JhdGNoUmVnKSk7CisrICAgICAgfQorKyAgICAgIHN0YXRpY19h c3NlcnQoa0phdmFTY3JpcHRDYWxsQ29kZVN0YXJ0UmVnaXN0ZXIgPT0gYTIsICJBQkkgbWlzbWF0 Y2giKTsKKysgICAgICBfXyBMZChhMiwgRmllbGRNZW1PcGVyYW5kKGZ1bmMsIEpTRnVuY3Rpb246 OmtDb2RlT2Zmc2V0KSk7CisrICAgICAgX18gQWRkNjQoYTIsIGEyLCBPcGVyYW5kKENvZGU6OmtI ZWFkZXJTaXplIC0ga0hlYXBPYmplY3RUYWcpKTsKKysgICAgICBfXyBDYWxsKGEyKTsKKysgICAg ICBSZWNvcmRDYWxsUG9zaXRpb24oaW5zdHIpOworKyAgICAgIGZyYW1lX2FjY2Vzc19zdGF0ZSgp LT5DbGVhclNQRGVsdGEoKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtBcmNo UHJlcGFyZUNhbGxDRnVuY3Rpb246IHsKKysgICAgICBpbnQgY29uc3QgbnVtX3BhcmFtZXRlcnMg PSBNaXNjRmllbGQ6OmRlY29kZShpbnN0ci0+b3Bjb2RlKCkpOworKyAgICAgIF9fIFByZXBhcmVD YWxsQ0Z1bmN0aW9uKG51bV9wYXJhbWV0ZXJzLCBrU2NyYXRjaFJlZyk7CisrICAgICAgLy8gRnJh bWUgYWxpZ25tZW50IHJlcXVpcmVzIHVzaW5nIEZQLXJlbGF0aXZlIGZyYW1lIGFkZHJlc3Npbmcu CisrICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCktPlNldEZyYW1lQWNjZXNzVG9GUCgpOworKyAg ICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga0FyY2hTYXZlQ2FsbGVyUmVnaXN0ZXJzOiB7 CisrICAgICAgZnBfbW9kZV8gPQorKyAgICAgICAgICBzdGF0aWNfY2FzdDxTYXZlRlBSZWdzTW9k ZT4oTWlzY0ZpZWxkOjpkZWNvZGUoaW5zdHItPm9wY29kZSgpKSk7CisrICAgICAgRENIRUNLKGZw X21vZGVfID09IGtEb250U2F2ZUZQUmVncyB8fCBmcF9tb2RlXyA9PSBrU2F2ZUZQUmVncyk7Cisr ICAgICAgLy8ga1JldHVyblJlZ2lzdGVyMCBzaG91bGQgaGF2ZSBiZWVuIHNhdmVkIGJlZm9yZSBl bnRlcmluZyB0aGUgc3R1Yi4KKysgICAgICBpbnQgYnl0ZXMgPSBfXyBQdXNoQ2FsbGVyU2F2ZWQo ZnBfbW9kZV8sIGtSZXR1cm5SZWdpc3RlcjApOworKyAgICAgIERDSEVDSyhJc0FsaWduZWQoYnl0 ZXMsIGtTeXN0ZW1Qb2ludGVyU2l6ZSkpOworKyAgICAgIERDSEVDS19FUSgwLCBmcmFtZV9hY2Nl c3Nfc3RhdGUoKS0+c3BfZGVsdGEoKSk7CisrICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCktPklu Y3JlYXNlU1BEZWx0YShieXRlcyAvIGtTeXN0ZW1Qb2ludGVyU2l6ZSk7CisrICAgICAgRENIRUNL KCFjYWxsZXJfcmVnaXN0ZXJzX3NhdmVkXyk7CisrICAgICAgY2FsbGVyX3JlZ2lzdGVyc19zYXZl ZF8gPSB0cnVlOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga0FyY2hSZXN0b3Jl Q2FsbGVyUmVnaXN0ZXJzOiB7CisrICAgICAgRENIRUNLKGZwX21vZGVfID09CisrICAgICAgICAg ICAgIHN0YXRpY19jYXN0PFNhdmVGUFJlZ3NNb2RlPihNaXNjRmllbGQ6OmRlY29kZShpbnN0ci0+ b3Bjb2RlKCkpKSk7CisrICAgICAgRENIRUNLKGZwX21vZGVfID09IGtEb250U2F2ZUZQUmVncyB8 fCBmcF9tb2RlXyA9PSBrU2F2ZUZQUmVncyk7CisrICAgICAgLy8gRG9uJ3Qgb3ZlcndyaXRlIHRo ZSByZXR1cm5lZCB2YWx1ZS4KKysgICAgICBpbnQgYnl0ZXMgPSBfXyBQb3BDYWxsZXJTYXZlZChm cF9tb2RlXywga1JldHVyblJlZ2lzdGVyMCk7CisrICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCkt PkluY3JlYXNlU1BEZWx0YSgtKGJ5dGVzIC8ga1N5c3RlbVBvaW50ZXJTaXplKSk7CisrICAgICAg RENIRUNLX0VRKDAsIGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5zcF9kZWx0YSgpKTsKKysgICAgICBE Q0hFQ0soY2FsbGVyX3JlZ2lzdGVyc19zYXZlZF8pOworKyAgICAgIGNhbGxlcl9yZWdpc3RlcnNf c2F2ZWRfID0gZmFsc2U7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrQXJjaFBy ZXBhcmVUYWlsQ2FsbDoKKysgICAgICBBc3NlbWJsZVByZXBhcmVUYWlsQ2FsbCgpOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIGtBcmNoQ2FsbENGdW5jdGlvbjogeworKyAgICAgIGludCBjb25z dCBudW1fcGFyYW1ldGVycyA9IE1pc2NGaWVsZDo6ZGVjb2RlKGluc3RyLT5vcGNvZGUoKSk7Cisr ICAgICAgTGFiZWwgc3RhcnRfY2FsbDsKKysgICAgICBib29sIGlzV2FzbUNhcGlGdW5jdGlvbiA9 CisrICAgICAgICAgIGxpbmthZ2UoKS0+R2V0SW5jb21pbmdEZXNjcmlwdG9yKCktPklzV2FzbUNh cGlGdW5jdGlvbigpOworKyAgICAgIC8vIGZyb20gc3RhcnRfY2FsbCB0byByZXR1cm4gYWRkcmVz cy4KKysgICAgICAvLyBGSVhNRSAoUklTQ19WKTogaXMgdGhlIHNhbWUgbnVtYmVyIG9mIGluc3Ry dWN0aW9ucyBnZW5lcmF0ZWQgZnJvbQorKyAgICAgIC8vICZzdGFydF9jYWxsIHRvIGFmdGVyIF9f Q2FsbENGdW5jdGlvbigpPyBUaGlzIGNvZGUgc2VlbXMgcXVpdGUgYnJpdHRsZS4KKysgICAgICAv LyBCZXR0ZXIgdG8gdXNlIGxhYmVsIGFuZCBQQy1yZWxhdGl2ZSBhZGRyZXNzaW5nIHRvIGdlbmVy YXRlIHRoZSByZXR1cm4KKysgICAgICAvLyBhZGRyZXNzCisrICAgICAgaW50IG9mZnNldCA9IF9f IHJvb3RfYXJyYXlfYXZhaWxhYmxlKCkgPyA2NCA6IDcyOworKyNpZiBWOF9IT1NUX0FSQ0hfUklT Q1Y2NAorKyAgICAgIGlmIChfXyBlbWl0X2RlYnVnX2NvZGUoKSkgeworKyAgICAgICAgb2Zmc2V0 ICs9IDE2OworKyAgICAgIH0KKysjZW5kaWYKKysgICAgICBpZiAoaXNXYXNtQ2FwaUZ1bmN0aW9u KSB7CisrICAgICAgICAvLyBQdXQgdGhlIHJldHVybiBhZGRyZXNzIGluIGEgc3RhY2sgc2xvdC4K KysgICAgICAgIF9fIGJpbmQoJnN0YXJ0X2NhbGwpOworKyAgICAgICAgX18gYXVpcGMoa1NjcmF0 Y2hSZWcsIDApOworKyAgICAgICAgX18gQWRkNjQoa1NjcmF0Y2hSZWcsIGtTY3JhdGNoUmVnLCBv ZmZzZXQpOworKyAgICAgICAgX18gU2Qoa1NjcmF0Y2hSZWcsCisrICAgICAgICAgICAgICBNZW1P cGVyYW5kKGZwLCBXYXNtRXhpdEZyYW1lQ29uc3RhbnRzOjprQ2FsbGluZ1BDT2Zmc2V0KSk7Cisr ICAgICAgfQorKyAgICAgIGlmIChpbnN0ci0+SW5wdXRBdCgwKS0+SXNJbW1lZGlhdGUoKSkgewor KyAgICAgICAgRXh0ZXJuYWxSZWZlcmVuY2UgcmVmID0gaS5JbnB1dEV4dGVybmFsUmVmZXJlbmNl KDApOworKyAgICAgICAgX18gQ2FsbENGdW5jdGlvbihyZWYsIG51bV9wYXJhbWV0ZXJzKTsKKysg ICAgICB9IGVsc2UgeworKyAgICAgICAgUmVnaXN0ZXIgZnVuYyA9IGkuSW5wdXRSZWdpc3Rlcigw KTsKKysgICAgICAgIF9fIENhbGxDRnVuY3Rpb24oZnVuYywgbnVtX3BhcmFtZXRlcnMpOworKyAg ICAgIH0KKysgICAgICBpZiAoaXNXYXNtQ2FwaUZ1bmN0aW9uKSB7CisrICAgICAgICBDSEVDS19F UShvZmZzZXQsIF9fIFNpemVPZkNvZGVHZW5lcmF0ZWRTaW5jZSgmc3RhcnRfY2FsbCkpOworKyAg ICAgICAgUmVjb3JkU2FmZXBvaW50KGluc3RyLT5yZWZlcmVuY2VfbWFwKCksIFNhZmVwb2ludDo6 a05vTGF6eURlb3B0KTsKKysgICAgICB9CisrCisrICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCkt PlNldEZyYW1lQWNjZXNzVG9EZWZhdWx0KCk7CisrICAgICAgLy8gSWRlYWxseSwgd2Ugc2hvdWxk IGRlY3JlbWVudCBTUCBkZWx0YSB0byBtYXRjaCB0aGUgY2hhbmdlIG9mIHN0YWNrCisrICAgICAg Ly8gcG9pbnRlciBpbiBDYWxsQ0Z1bmN0aW9uLiBIb3dldmVyLCBmb3IgY2VydGFpbiBhcmNoaXRl Y3R1cmVzIChlLmcuCisrICAgICAgLy8gQVJNKSwgdGhlcmUgbWF5IGJlIG1vcmUgc3RyaWN0IGFs aWdubWVudCByZXF1aXJlbWVudCwgY2F1c2luZyBvbGQgU1AKKysgICAgICAvLyB0byBiZSBzYXZl ZCBvbiB0aGUgc3RhY2suIEluIHRob3NlIGNhc2VzLCB3ZSBjYW4gbm90IGNhbGN1bGF0ZSB0aGUg U1AKKysgICAgICAvLyBkZWx0YSBzdGF0aWNhbGx5LgorKyAgICAgIGZyYW1lX2FjY2Vzc19zdGF0 ZSgpLT5DbGVhclNQRGVsdGEoKTsKKysgICAgICBpZiAoY2FsbGVyX3JlZ2lzdGVyc19zYXZlZF8p IHsKKysgICAgICAgIC8vIE5lZWQgdG8gcmUtc3luYyBTUCBkZWx0YSBpbnRyb2R1Y2VkIGluIGtB cmNoU2F2ZUNhbGxlclJlZ2lzdGVycy4KKysgICAgICAgIC8vIEhlcmUsIHdlIGFzc3VtZSB0aGUg c2VxdWVuY2UgdG8gYmU6CisrICAgICAgICAvLyAgIGtBcmNoU2F2ZUNhbGxlclJlZ2lzdGVyczsK KysgICAgICAgIC8vICAga0FyY2hDYWxsQ0Z1bmN0aW9uOworKyAgICAgICAgLy8gICBrQXJjaFJl c3RvcmVDYWxsZXJSZWdpc3RlcnM7CisrICAgICAgICBpbnQgYnl0ZXMgPQorKyAgICAgICAgICAg IF9fIFJlcXVpcmVkU3RhY2tTaXplRm9yQ2FsbGVyU2F2ZWQoZnBfbW9kZV8sIGtSZXR1cm5SZWdp c3RlcjApOworKyAgICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCktPkluY3JlYXNlU1BEZWx0YShi eXRlcyAvIGtTeXN0ZW1Qb2ludGVyU2l6ZSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2Uga0FyY2hKbXA6CisrICAgICAgQXNzZW1ibGVBcmNoSnVtcChpLklucHV0 UnBvKDApKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrQXJjaEJpbmFyeVNlYXJjaFN3aXRj aDoKKysgICAgICBBc3NlbWJsZUFyY2hCaW5hcnlTZWFyY2hTd2l0Y2goaW5zdHIpOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIGtBcmNoVGFibGVTd2l0Y2g6CisrICAgICAgQXNzZW1ibGVBcmNo VGFibGVTd2l0Y2goaW5zdHIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtBcmNoQWJvcnRD U0FBc3NlcnQ6CisrICAgICAgRENIRUNLKGkuSW5wdXRSZWdpc3RlcigwKSA9PSBhMCk7CisrICAg ICAgeworKyAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0byBnZW5lcmF0ZSBhIHBp bGUgb2YgY29kZSBmb3IgdGhpcywgc28ganVzdAorKyAgICAgICAgLy8gY2xhaW0gdGhlcmUgaXMg YSBzdGFjayBmcmFtZSwgd2l0aG91dCBnZW5lcmF0aW5nIG9uZS4KKysgICAgICAgIEZyYW1lU2Nv cGUgc2NvcGUodGFzbSgpLCBTdGFja0ZyYW1lOjpOT05FKTsKKysgICAgICAgIF9fIENhbGwoCisr ICAgICAgICAgICAgaXNvbGF0ZSgpLT5idWlsdGlucygpLT5idWlsdGluX2hhbmRsZShCdWlsdGlu czo6a0Fib3J0Q1NBQXNzZXJ0KSwKKysgICAgICAgICAgICBSZWxvY0luZm86OkNPREVfVEFSR0VU KTsKKysgICAgICB9CisrICAgICAgX18gc3RvcCgpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IGtBcmNoRGVidWdCcmVhazoKKysgICAgICBfXyBEZWJ1Z0JyZWFrKCk7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2Uga0FyY2hDb21tZW50OgorKyAgICAgIF9fIFJlY29yZENvbW1lbnQocmVpbnRl cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oaS5JbnB1dEludDY0KDApKSk7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2Uga0FyY2hOb3A6CisrICAgIGNhc2Uga0FyY2hUaHJvd1Rlcm1pbmF0b3I6Cisr ICAgICAgLy8gZG9uJ3QgZW1pdCBjb2RlIGZvciBub3BzLgorKyAgICAgIGJyZWFrOworKyAgICBj YXNlIGtBcmNoRGVvcHRpbWl6ZTogeworKyAgICAgIERlb3B0aW1pemF0aW9uRXhpdCogZXhpdCA9 CisrICAgICAgICAgIEJ1aWxkVHJhbnNsYXRpb24oaW5zdHIsIC0xLCAwLCBPdXRwdXRGcmFtZVN0 YXRlQ29tYmluZTo6SWdub3JlKCkpOworKyAgICAgIENvZGVHZW5SZXN1bHQgcmVzdWx0ID0gQXNz ZW1ibGVEZW9wdGltaXplckNhbGwoZXhpdCk7CisrICAgICAgaWYgKHJlc3VsdCAhPSBrU3VjY2Vz cykgcmV0dXJuIHJlc3VsdDsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtBcmNo UmV0OgorKyAgICAgIEFzc2VtYmxlUmV0dXJuKGluc3RyLT5JbnB1dEF0KDApKTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBrQXJjaFN0YWNrUG9pbnRlckdyZWF0ZXJUaGFuOgorKyAgICAgIC8v IFBzZXVkby1pbnN0cnVjdGlvbiB1c2VkIGZvciBjbXAvYnJhbmNoLiBObyBvcGNvZGUgZW1pdHRl ZCBoZXJlLgorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtBcmNoU3RhY2tDaGVja09mZnNldDoK KysgICAgICBfXyBNb3ZlKGkuT3V0cHV0UmVnaXN0ZXIoKSwgU21pOjpGcm9tSW50KEdldFN0YWNr Q2hlY2tPZmZzZXQoKSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtBcmNoRnJhbWVQb2lu dGVyOgorKyAgICAgIF9fIE1vdmUoaS5PdXRwdXRSZWdpc3RlcigpLCBmcCk7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2Uga0FyY2hQYXJlbnRGcmFtZVBvaW50ZXI6CisrICAgICAgaWYgKGZyYW1l X2FjY2Vzc19zdGF0ZSgpLT5oYXNfZnJhbWUoKSkgeworKyAgICAgICAgX18gTGQoaS5PdXRwdXRS ZWdpc3RlcigpLCBNZW1PcGVyYW5kKGZwLCAwKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAg IF9fIE1vdmUoaS5PdXRwdXRSZWdpc3RlcigpLCBmcCk7CisrICAgICAgfQorKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGtBcmNoVHJ1bmNhdGVEb3VibGVUb0k6CisrICAgICAgX18gVHJ1bmNhdGVE b3VibGVUb0koaXNvbGF0ZSgpLCB6b25lKCksIGkuT3V0cHV0UmVnaXN0ZXIoKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksIERldGVybWluZVN0 dWJDYWxsTW9kZSgpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrQXJjaFN0b3JlV2l0aFdy aXRlQmFycmllcjogeworKyAgICAgIFJlY29yZFdyaXRlTW9kZSBtb2RlID0KKysgICAgICAgICAg c3RhdGljX2Nhc3Q8UmVjb3JkV3JpdGVNb2RlPihNaXNjRmllbGQ6OmRlY29kZShpbnN0ci0+b3Bj b2RlKCkpKTsKKysgICAgICBSZWdpc3RlciBvYmplY3QgPSBpLklucHV0UmVnaXN0ZXIoMCk7Cisr ICAgICAgUmVnaXN0ZXIgaW5kZXggPSBpLklucHV0UmVnaXN0ZXIoMSk7CisrICAgICAgUmVnaXN0 ZXIgdmFsdWUgPSBpLklucHV0UmVnaXN0ZXIoMik7CisrICAgICAgUmVnaXN0ZXIgc2NyYXRjaDAg PSBpLlRlbXBSZWdpc3RlcigwKTsKKysgICAgICBSZWdpc3RlciBzY3JhdGNoMSA9IGkuVGVtcFJl Z2lzdGVyKDEpOworKyAgICAgIGF1dG8gb29sID0gem9uZSgpLT5OZXc8T3V0T2ZMaW5lUmVjb3Jk V3JpdGU+KHRoaXMsIG9iamVjdCwgaW5kZXgsIHZhbHVlLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2gwLCBzY3JhdGNoMSwgbW9kZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRl cm1pbmVTdHViQ2FsbE1vZGUoKSk7CisrICAgICAgX18gQWRkNjQoa1NjcmF0Y2hSZWcsIG9iamVj dCwgaW5kZXgpOworKyAgICAgIF9fIFNkKHZhbHVlLCBNZW1PcGVyYW5kKGtTY3JhdGNoUmVnKSk7 CisrICAgICAgX18gQ2hlY2tQYWdlRmxhZyhvYmplY3QsIHNjcmF0Y2gwLAorKyAgICAgICAgICAg ICAgICAgICAgICAgTWVtb3J5Q2h1bms6OmtQb2ludGVyc0Zyb21IZXJlQXJlSW50ZXJlc3RpbmdN YXNrLCBuZSwKKysgICAgICAgICAgICAgICAgICAgICAgIG9vbC0+ZW50cnkoKSk7CisrICAgICAg X18gYmluZChvb2wtPmV4aXQoKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBr QXJjaFN0YWNrU2xvdDogeworKyAgICAgIEZyYW1lT2Zmc2V0IG9mZnNldCA9CisrICAgICAgICAg IGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5HZXRGcmFtZU9mZnNldChpLklucHV0SW50MzIoMCkpOwor KyAgICAgIFJlZ2lzdGVyIGJhc2VfcmVnID0gb2Zmc2V0LmZyb21fc3RhY2tfcG9pbnRlcigpID8g c3AgOiBmcDsKKysgICAgICBfXyBBZGQ2NChpLk91dHB1dFJlZ2lzdGVyKCksIGJhc2VfcmVnLCBP cGVyYW5kKG9mZnNldC5vZmZzZXQoKSkpOworKyAgICAgIGludCBhbGlnbm1lbnQgPSBpLklucHV0 SW50MzIoMSk7CisrICAgICAgRENIRUNLKGFsaWdubWVudCA9PSAwIHx8IGFsaWdubWVudCA9PSA0 IHx8IGFsaWdubWVudCA9PSA4IHx8CisrICAgICAgICAgICAgIGFsaWdubWVudCA9PSAxNik7Cisr ICAgICAgaWYgKEZMQUdfZGVidWdfY29kZSAmJiBhbGlnbm1lbnQgPiAwKSB7CisrICAgICAgICAv LyBWZXJpZnkgdGhhdCB0aGUgb3V0cHV0X3JlZ2lzdGVyIGlzIHByb3Blcmx5IGFsaWduZWQKKysg ICAgICAgIF9fIEFuZChrU2NyYXRjaFJlZywgaS5PdXRwdXRSZWdpc3RlcigpLAorKyAgICAgICAg ICAgICAgIE9wZXJhbmQoa1N5c3RlbVBvaW50ZXJTaXplIC0gMSkpOworKyAgICAgICAgX18gQXNz ZXJ0KGVxLCBBYm9ydFJlYXNvbjo6a0FsbG9jYXRpb25Jc05vdERvdWJsZUFsaWduZWQsIGtTY3Jh dGNoUmVnLAorKyAgICAgICAgICAgICAgICAgIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgICB9 CisrICAgICAgaWYgKGFsaWdubWVudCA9PSAyICoga1N5c3RlbVBvaW50ZXJTaXplKSB7CisrICAg ICAgICBMYWJlbCBkb25lOworKyAgICAgICAgX18gQWRkNjQoa1NjcmF0Y2hSZWcsIGJhc2VfcmVn LCBPcGVyYW5kKG9mZnNldC5vZmZzZXQoKSkpOworKyAgICAgICAgX18gQW5kKGtTY3JhdGNoUmVn LCBrU2NyYXRjaFJlZywgT3BlcmFuZChhbGlnbm1lbnQgLSAxKSk7CisrICAgICAgICBfXyBCcmFu Y2hTaG9ydCgmZG9uZSwgZXEsIGtTY3JhdGNoUmVnLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAg ICAgICBfXyBBZGQ2NChpLk91dHB1dFJlZ2lzdGVyKCksIGkuT3V0cHV0UmVnaXN0ZXIoKSwga1N5 c3RlbVBvaW50ZXJTaXplKTsKKysgICAgICAgIF9fIGJpbmQoJmRvbmUpOworKyAgICAgIH0gZWxz ZSBpZiAoYWxpZ25tZW50ID4gMiAqIGtTeXN0ZW1Qb2ludGVyU2l6ZSkgeworKyAgICAgICAgTGFi ZWwgZG9uZTsKKysgICAgICAgIF9fIEFkZDY0KGtTY3JhdGNoUmVnLCBiYXNlX3JlZywgT3BlcmFu ZChvZmZzZXQub2Zmc2V0KCkpKTsKKysgICAgICAgIF9fIEFuZChrU2NyYXRjaFJlZywga1NjcmF0 Y2hSZWcsIE9wZXJhbmQoYWxpZ25tZW50IC0gMSkpOworKyAgICAgICAgX18gQnJhbmNoU2hvcnQo JmRvbmUsIGVxLCBrU2NyYXRjaFJlZywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgICAgICAgX18g bGkoa1NjcmF0Y2hSZWcyLCBhbGlnbm1lbnQpOworKyAgICAgICAgX18gU3ViNjQoa1NjcmF0Y2hS ZWcyLCBrU2NyYXRjaFJlZzIsIE9wZXJhbmQoa1NjcmF0Y2hSZWcpKTsKKysgICAgICAgIF9fIEFk ZDY0KGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5PdXRwdXRSZWdpc3RlcigpLCBrU2NyYXRjaFJlZzIp OworKyAgICAgICAgX18gYmluZCgmZG9uZSk7CisrICAgICAgfQorKworKyAgICAgIGJyZWFrOwor KyAgICB9CisrICAgIGNhc2Uga0FyY2hXb3JkUG9pc29uT25TcGVjdWxhdGlvbjoKKysgICAgICBf XyBBbmQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksCisrICAgICAgICAg ICAgIGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVyKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBrSWVlZTc1NEZsb2F0NjRBY29zOgorKyAgICAgIEFTU0VNQkxFX0lFRUU3NTRfVU5PUChhY29z KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRBY29zaDoKKysgICAg ICBBU1NFTUJMRV9JRUVFNzU0X1VOT1AoYWNvc2gpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IGtJZWVlNzU0RmxvYXQ2NEFzaW46CisrICAgICAgQVNTRU1CTEVfSUVFRTc1NF9VTk9QKGFzaW4p OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NEFzaW5oOgorKyAgICAg IEFTU0VNQkxFX0lFRUU3NTRfVU5PUChhc2luaCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug a0llZWU3NTRGbG9hdDY0QXRhbjoKKysgICAgICBBU1NFTUJMRV9JRUVFNzU0X1VOT1AoYXRhbik7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0QXRhbmg6CisrICAgICAg QVNTRU1CTEVfSUVFRTc1NF9VTk9QKGF0YW5oKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBr SWVlZTc1NEZsb2F0NjRBdGFuMjoKKysgICAgICBBU1NFTUJMRV9JRUVFNzU0X0JJTk9QKGF0YW4y KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRDb3M6CisrICAgICAg QVNTRU1CTEVfSUVFRTc1NF9VTk9QKGNvcyk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0ll ZWU3NTRGbG9hdDY0Q29zaDoKKysgICAgICBBU1NFTUJMRV9JRUVFNzU0X1VOT1AoY29zaCk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0Q2JydDoKKysgICAgICBBU1NF TUJMRV9JRUVFNzU0X1VOT1AoY2JydCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0llZWU3 NTRGbG9hdDY0RXhwOgorKyAgICAgIEFTU0VNQkxFX0lFRUU3NTRfVU5PUChleHApOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NEV4cG0xOgorKyAgICAgIEFTU0VNQkxF X0lFRUU3NTRfVU5PUChleHBtMSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0llZWU3NTRG bG9hdDY0TG9nOgorKyAgICAgIEFTU0VNQkxFX0lFRUU3NTRfVU5PUChsb2cpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NExvZzFwOgorKyAgICAgIEFTU0VNQkxFX0lF RUU3NTRfVU5PUChsb2cxcCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0llZWU3NTRGbG9h dDY0TG9nMjoKKysgICAgICBBU1NFTUJMRV9JRUVFNzU0X1VOT1AobG9nMik7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0TG9nMTA6CisrICAgICAgQVNTRU1CTEVfSUVF RTc1NF9VTk9QKGxvZzEwKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0 NjRQb3c6CisrICAgICAgQVNTRU1CTEVfSUVFRTc1NF9CSU5PUChwb3cpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NFNpbjoKKysgICAgICBBU1NFTUJMRV9JRUVFNzU0 X1VOT1Aoc2luKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRTaW5o OgorKyAgICAgIEFTU0VNQkxFX0lFRUU3NTRfVU5PUChzaW5oKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRUYW46CisrICAgICAgQVNTRU1CTEVfSUVFRTc1NF9VTk9Q KHRhbik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0VGFuaDoKKysg ICAgICBBU1NFTUJMRV9JRUVFNzU0X1VOT1AodGFuaCk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2Uga1Jpc2N2QWRkMzI6CisrICAgICAgX18gQWRkMzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklu cHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBrUmlzY3ZBZGQ2NDoKKysgICAgICBfXyBBZGQ2NChpLk91dHB1dFJlZ2lzdGVyKCksIGku SW5wdXRSZWdpc3RlcigwKSwgaS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIGtSaXNjdkFkZE92ZjY0OgorKyAgICAgIF9fIEFkZE92ZXJmbG93NjQoaS5PdXRwdXRS ZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAgICAgICAgICBp LklucHV0T3BlcmFuZCgxKSwga1NjcmF0Y2hSZWcpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IGtSaXNjdlN1YjMyOgorKyAgICAgIF9fIFN1YjMyKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1 dFJlZ2lzdGVyKDApLCBpLklucHV0T3BlcmFuZCgxKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2Uga1Jpc2N2U3ViNjQ6CisrICAgICAgX18gU3ViNjQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklu cHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBrUmlzY3ZTdWJPdmY2NDoKKysgICAgICBfXyBTdWJPdmVyZmxvdzY0KGkuT3V0cHV0UmVn aXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICAgICAgICAgaS5J bnB1dE9wZXJhbmQoMSksIGtTY3JhdGNoUmVnKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBr UmlzY3ZNdWwzMjoKKysgICAgICBfXyBNdWwzMihpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRS ZWdpc3RlcigwKSwgaS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IGtSaXNjdk11bE92ZjMyOgorKyAgICAgIF9fIE11bE92ZXJmbG93MzIoaS5PdXRwdXRSZWdpc3Rl cigpLCBpLklucHV0UmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAgICAgICAgICBpLklucHV0 T3BlcmFuZCgxKSwga1NjcmF0Y2hSZWcpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNj dk11bEhpZ2gzMjoKKysgICAgICBfXyBNdWxoMzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0 UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBrUmlzY3ZNdWxIaWdoVTMyOgorKyAgICAgIF9fIE11bGh1MzIoaS5PdXRwdXRSZWdpc3Rlcigp LCBpLklucHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpLAorKyAgICAgICAgICAgICAg ICAga1NjcmF0Y2hSZWcsIGtTY3JhdGNoUmVnMik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug a1Jpc2N2TXVsSGlnaDY0OgorKyAgICAgIF9fIE11bGg2NChpLk91dHB1dFJlZ2lzdGVyKCksIGku SW5wdXRSZWdpc3RlcigwKSwgaS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIGtSaXNjdkRpdjMyOiB7CisrICAgICAgX18gRGl2MzIoaS5PdXRwdXRSZWdpc3Rlcigp LCBpLklucHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICAvLyBTZXQg b3VwdXQgdG8gemVybyBpZiBkaXZpc29yID09IDAKKysgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0 aW9uWmVybyhpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigxKSk7CisrICAgICAg YnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZEaXZVMzI6IHsKKysgICAgICBfXyBEaXZ1 MzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5k KDEpKTsKKysgICAgICAvLyBTZXQgb3VwdXQgdG8gemVybyBpZiBkaXZpc29yID09IDAKKysgICAg ICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uWmVybyhpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRS ZWdpc3RlcigxKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZNb2Qz MjoKKysgICAgICBfXyBNb2QzMihpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3Rlcigw KSwgaS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdk1v ZFUzMjoKKysgICAgICBfXyBNb2R1MzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0 ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlz Y3ZNdWw2NDoKKysgICAgICBfXyBNdWw2NChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdp c3RlcigwKSwgaS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtS aXNjdkRpdjY0OiB7CisrICAgICAgX18gRGl2NjQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0 UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICAvLyBTZXQgb3VwdXQgdG8g emVybyBpZiBkaXZpc29yID09IDAKKysgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uWmVybyhp Lk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigxKSk7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysgICAgY2FzZSBrUmlzY3ZEaXZVNjQ6IHsKKysgICAgICBfXyBEaXZ1NjQoaS5PdXRw dXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysg ICAgICAvLyBTZXQgb3VwdXQgdG8gemVybyBpZiBkaXZpc29yID09IDAKKysgICAgICBfXyBMb2Fk WmVyb0lmQ29uZGl0aW9uWmVybyhpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3Rlcigx KSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZNb2Q2NDoKKysgICAg ICBfXyBNb2Q2NChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSwgaS5JbnB1 dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdk1vZFU2NDoKKysg ICAgICBfXyBNb2R1NjQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksIGku SW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZBbmQ6Cisr ICAgICAgX18gQW5kKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklu cHV0T3BlcmFuZCgxKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2QW5kMzI6Cisr ICAgICAgX18gQW5kKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklu cHV0T3BlcmFuZCgxKSk7CisrICAgICAgX18gU2xsMzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLk91 dHB1dFJlZ2lzdGVyKCksIDB4MCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2T3I6 CisrICAgICAgX18gT3IoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksIGku SW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZPcjMyOgor KyAgICAgIF9fIE9yKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklu cHV0T3BlcmFuZCgxKSk7CisrICAgICAgX18gU2xsMzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLk91 dHB1dFJlZ2lzdGVyKCksIDB4MCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2Tm9y OgorKyAgICAgIGlmIChpbnN0ci0+SW5wdXRBdCgxKS0+SXNSZWdpc3RlcigpKSB7CisrICAgICAg ICBfXyBOb3IoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRP cGVyYW5kKDEpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgRENIRUNLX0VRKDAsIGkuSW5w dXRPcGVyYW5kKDEpLmltbWVkaWF0ZSgpKTsKKysgICAgICAgIF9fIE5vcihpLk91dHB1dFJlZ2lz dGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSwgemVyb19yZWcpOworKyAgICAgIH0KKysgICAgICBi cmVhazsKKysgICAgY2FzZSBrUmlzY3ZOb3IzMjoKKysgICAgICBpZiAoaW5zdHItPklucHV0QXQo MSktPklzUmVnaXN0ZXIoKSkgeworKyAgICAgICAgX18gTm9yKGkuT3V0cHV0UmVnaXN0ZXIoKSwg aS5JbnB1dFJlZ2lzdGVyKDApLCBpLklucHV0T3BlcmFuZCgxKSk7CisrICAgICAgICBfXyBTbGwz MihpLk91dHB1dFJlZ2lzdGVyKCksIGkuT3V0cHV0UmVnaXN0ZXIoKSwgMHgwKTsKKysgICAgICB9 IGVsc2UgeworKyAgICAgICAgRENIRUNLX0VRKDAsIGkuSW5wdXRPcGVyYW5kKDEpLmltbWVkaWF0 ZSgpKTsKKysgICAgICAgIF9fIE5vcihpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3Rl cigwKSwgemVyb19yZWcpOworKyAgICAgICAgX18gU2xsMzIoaS5PdXRwdXRSZWdpc3RlcigpLCBp Lk91dHB1dFJlZ2lzdGVyKCksIDB4MCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBj YXNlIGtSaXNjdlhvcjoKKysgICAgICBfXyBYb3IoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0 UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBrUmlzY3ZYb3IzMjoKKysgICAgICBfXyBYb3IoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0 UmVnaXN0ZXIoMCksIGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBfXyBTbGwzMihpLk91dHB1 dFJlZ2lzdGVyKCksIGkuT3V0cHV0UmVnaXN0ZXIoKSwgMHgwKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBrUmlzY3ZDbHozMjoKKysgICAgICBfXyBDbHozMihpLk91dHB1dFJlZ2lzdGVyKCks IGkuSW5wdXRSZWdpc3RlcigwKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2Q2x6 NjQ6CisrICAgICAgX18gQ2x6NjQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIo MCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdkN0ejMyOiB7CisrICAgICAgUmVn aXN0ZXIgc3JjID0gaS5JbnB1dFJlZ2lzdGVyKDApOworKyAgICAgIFJlZ2lzdGVyIGRzdCA9IGku T3V0cHV0UmVnaXN0ZXIoKTsKKysgICAgICBfXyBDdHozMihkc3QsIHNyYyk7CisrICAgIH0gYnJl YWs7CisrICAgIGNhc2Uga1Jpc2N2Q3R6NjQ6IHsKKysgICAgICBSZWdpc3RlciBzcmMgPSBpLklu cHV0UmVnaXN0ZXIoMCk7CisrICAgICAgUmVnaXN0ZXIgZHN0ID0gaS5PdXRwdXRSZWdpc3Rlcigp OworKyAgICAgIF9fIEN0ejY0KGRzdCwgc3JjKTsKKysgICAgfSBicmVhazsKKysgICAgY2FzZSBr UmlzY3ZQb3BjbnQzMjogeworKyAgICAgIFJlZ2lzdGVyIHNyYyA9IGkuSW5wdXRSZWdpc3Rlcigw KTsKKysgICAgICBSZWdpc3RlciBkc3QgPSBpLk91dHB1dFJlZ2lzdGVyKCk7CisrICAgICAgX18g UG9wY250MzIoZHN0LCBzcmMpOworKyAgICB9IGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlBvcGNu dDY0OiB7CisrICAgICAgUmVnaXN0ZXIgc3JjID0gaS5JbnB1dFJlZ2lzdGVyKDApOworKyAgICAg IFJlZ2lzdGVyIGRzdCA9IGkuT3V0cHV0UmVnaXN0ZXIoKTsKKysgICAgICBfXyBQb3BjbnQ2NChk c3QsIHNyYyk7CisrICAgIH0gYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2U2hsMzI6CisrICAgICAg aWYgKGluc3RyLT5JbnB1dEF0KDEpLT5Jc1JlZ2lzdGVyKCkpIHsKKysgICAgICAgIF9fIFNsbDMy KGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklucHV0UmVnaXN0ZXIo MSkpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBpbnQ2NF90IGltbSA9IGkuSW5wdXRPcGVy YW5kKDEpLmltbWVkaWF0ZSgpOworKyAgICAgICAgX18gU2xsMzIoaS5PdXRwdXRSZWdpc3Rlcigp LCBpLklucHV0UmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50 MTZfdD4oaW1tKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlNo cjMyOgorKyAgICAgIGlmIChpbnN0ci0+SW5wdXRBdCgxKS0+SXNSZWdpc3RlcigpKSB7CisrICAg ICAgICBfXyBTcmwzMihpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSwgaS5J bnB1dFJlZ2lzdGVyKDEpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgaW50NjRfdCBpbW0g PSBpLklucHV0T3BlcmFuZCgxKS5pbW1lZGlhdGUoKTsKKysgICAgICAgIF9fIFNybDMyKGkuT3V0 cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICAgc3Rh dGljX2Nhc3Q8dWludDE2X3Q+KGltbSkpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAg Y2FzZSBrUmlzY3ZTYXIzMjoKKysgICAgICBpZiAoaW5zdHItPklucHV0QXQoMSktPklzUmVnaXN0 ZXIoKSkgeworKyAgICAgICAgX18gU3JhMzIoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVn aXN0ZXIoMCksIGkuSW5wdXRSZWdpc3RlcigxKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAg IGludDY0X3QgaW1tID0gaS5JbnB1dE9wZXJhbmQoMSkuaW1tZWRpYXRlKCk7CisrICAgICAgICBf XyBTcmEzMihpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSwKKysgICAgICAg ICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQxNl90PihpbW0pKTsKKysgICAgICB9CisrICAgICAg YnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2WmVyb0V4dGVuZFdvcmQ6IHsKKysgICAgICBfXyBaZXJv RXh0ZW5kV29yZChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSk7CisrICAg ICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZTaWduRXh0ZW5kV29yZDogeworKyAg ICAgIF9fIFNpZ25FeHRlbmRXb3JkKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVy KDApKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdlNobDY0OgorKyAg ICAgIF9fIFNsbDY0KGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklu cHV0T3BlcmFuZCgxKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2U2hyNjQ6Cisr ICAgICAgX18gU3JsNjQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCksIGku SW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZTYXI2NDoK KysgICAgICBfXyBTcmE2NChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSwg aS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlJvcjMy OgorKyAgICAgIF9fIFJvcihpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSwg aS5JbnB1dE9wZXJhbmQoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlJvcjY0 OgorKyAgICAgIF9fIERyb3IoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCks IGkuSW5wdXRPcGVyYW5kKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZUc3Q6 CisrICAgICAgX18gQW5kKGtTY3JhdGNoUmVnLCBpLklucHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRP cGVyYW5kKDEpKTsKKysgICAgICAvLyBQc2V1ZG8taW5zdHJ1Y3Rpb24gdXNlZCBmb3IgY21wL2Jy YW5jaC4gTm8gb3Bjb2RlIGVtaXR0ZWQgaGVyZS4KKysgICAgICBicmVhazsKKysgICAgY2FzZSBr UmlzY3ZDbXA6CisrICAgICAgLy8gUHNldWRvLWluc3RydWN0aW9uIHVzZWQgZm9yIGNtcC9icmFu Y2guIE5vIG9wY29kZSBlbWl0dGVkIGhlcmUuCisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jp c2N2TW92OgorKyAgICAgIC8vIFRPRE8ocGxpbmQpOiBTaG91bGQgd2UgY29tYmluZSBtb3YvbGkg bGlrZSB0aGlzLCBvciB1c2Ugc2VwYXJhdGUgaW5zdHI/CisrICAgICAgLy8gICAgLSBBbHNvIHNl ZSB4NjQgQVNTRU1CTEVfQklOT1AgJiBSZWdpc3Rlck9yT3BlcmFuZFR5cGUKKysgICAgICBpZiAo SGFzUmVnaXN0ZXJJbnB1dChpbnN0ciwgMCkpIHsKKysgICAgICAgIF9fIE1vdmUoaS5PdXRwdXRS ZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMCkpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAg ICBfXyBsaShpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRPcGVyYW5kKDApKTsKKysgICAgICB9 CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2Uga1Jpc2N2Q21wUzogeworKyAgICAgIEZQVVJl Z2lzdGVyIGxlZnQgPSBpLklucHV0T3JaZXJvU2luZ2xlUmVnaXN0ZXIoMCk7CisrICAgICAgRlBV UmVnaXN0ZXIgcmlnaHQgPSBpLklucHV0T3JaZXJvU2luZ2xlUmVnaXN0ZXIoMSk7CisrICAgICAg Ym9vbCBwcmVkaWNhdGU7CisrICAgICAgRlBVQ29uZGl0aW9uIGNjID0KKysgICAgICAgICAgRmxh Z3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcEZQVSgmcHJlZGljYXRlLCBpbnN0ci0+ZmxhZ3NfY29u ZGl0aW9uKCkpOworKworKyAgICAgIGlmICgobGVmdCA9PSBrRG91YmxlUmVnWmVybyB8fCByaWdo dCA9PSBrRG91YmxlUmVnWmVybykgJiYKKysgICAgICAgICAgIV9fIElzU2luZ2xlWmVyb1JlZ1Nl dCgpKSB7CisrICAgICAgICBfXyBMb2FkRlBSSW1tZWRpYXRlKGtEb3VibGVSZWdaZXJvLCAwLjBm KTsKKysgICAgICB9CisrICAgICAgLy8gY29tcGFyZSByZXN1bHQgc2V0IHRvIGtTY3JhdGNoUmVn CisrICAgICAgX18gQ29tcGFyZUYzMihrU2NyYXRjaFJlZywgY2MsIGxlZnQsIHJpZ2h0KTsKKysg ICAgfSBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZBZGRTOgorKyAgICAgIC8vIFRPRE8ocGxpbmQp OiBhZGQgc3BlY2lhbCBjYXNlOiBjb21iaW5lIG11bHQgJiBhZGQuCisrICAgICAgX18gZmFkZF9z KGkuT3V0cHV0RG91YmxlUmVnaXN0ZXIoKSwgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLAorKyAg ICAgICAgICAgICAgICBpLklucHV0RG91YmxlUmVnaXN0ZXIoMSkpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIGtSaXNjdlN1YlM6CisrICAgICAgX18gZnN1Yl9zKGkuT3V0cHV0RG91YmxlUmVn aXN0ZXIoKSwgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICBpLklu cHV0RG91YmxlUmVnaXN0ZXIoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdk11 bFM6CisrICAgICAgLy8gVE9ETyhwbGluZCk6IGFkZCBzcGVjaWFsIGNhc2U6IHJpZ2h0IG9wIGlz IC0xLjAsIHNlZSBhcm0gcG9ydC4KKysgICAgICBfXyBmbXVsX3MoaS5PdXRwdXREb3VibGVSZWdp c3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAgIGkuSW5w dXREb3VibGVSZWdpc3RlcigxKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2RGl2 UzoKKysgICAgICBfXyBmZGl2X3MoaS5PdXRwdXREb3VibGVSZWdpc3RlcigpLCBpLklucHV0RG91 YmxlUmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAgIGkuSW5wdXREb3VibGVSZWdpc3Rlcigx KSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2TW9kUzogeworKyAgICAgIC8vIFRP RE8oYm1ldXJlcik6IFdlIHNob3VsZCByZWFsbHkgZ2V0IHJpZCBvZiB0aGlzIHNwZWNpYWwgaW5z dHJ1Y3Rpb24sCisrICAgICAgLy8gYW5kIGdlbmVyYXRlIGEgQ2FsbEFkZHJlc3MgaW5zdHJ1Y3Rp b24gaW5zdGVhZC4KKysgICAgICBGcmFtZVNjb3BlIHNjb3BlKHRhc20oKSwgU3RhY2tGcmFtZTo6 TUFOVUFMKTsKKysgICAgICBfXyBQcmVwYXJlQ2FsbENGdW5jdGlvbigwLCAyLCBrU2NyYXRjaFJl Zyk7CisrICAgICAgX18gTW92VG9GbG9hdFBhcmFtZXRlcnMoaS5JbnB1dERvdWJsZVJlZ2lzdGVy KDApLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkuSW5wdXREb3VibGVSZWdpc3Rl cigxKSk7CisrICAgICAgLy8gVE9ETyhiYWxhenMua2lsdmFkeSk6IGltcGxlbWVudCBtb2RfdHdv X2Zsb2F0c19vcGVyYXRpb24oaXNvbGF0ZSgpKQorKyAgICAgIF9fIENhbGxDRnVuY3Rpb24oRXh0 ZXJuYWxSZWZlcmVuY2U6Om1vZF90d29fZG91Ymxlc19vcGVyYXRpb24oKSwgMCwgMik7CisrICAg ICAgLy8gTW92ZSB0aGUgcmVzdWx0IGluIHRoZSBkb3VibGUgcmVzdWx0IHJlZ2lzdGVyLgorKyAg ICAgIF9fIE1vdkZyb21GbG9hdFJlc3VsdChpLk91dHB1dFNpbmdsZVJlZ2lzdGVyKCkpOworKyAg ICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2QWJzUzoKKysgICAgICBfXyBmYWJz X3MoaS5PdXRwdXRTaW5nbGVSZWdpc3RlcigpLCBpLklucHV0U2luZ2xlUmVnaXN0ZXIoMCkpOwor KyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdk5lZ1M6CisrICAgICAgX18gTmVnX3MoaS5P dXRwdXRTaW5nbGVSZWdpc3RlcigpLCBpLklucHV0U2luZ2xlUmVnaXN0ZXIoMCkpOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlNxcnRTOiB7CisrICAgICAgX18gZnNxcnRfcyhpLk91 dHB1dERvdWJsZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSk7CisrICAgICAg YnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZNYXhTOgorKyAgICAgIF9fIGZtYXhfcyhp Lk91dHB1dERvdWJsZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAg ICAgICAgICAgICAgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDEpKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBrUmlzY3ZNaW5TOgorKyAgICAgIF9fIGZtaW5fcyhpLk91dHB1dERvdWJsZVJlZ2lz dGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAgICAgICAgICAgICAgaS5JbnB1 dERvdWJsZVJlZ2lzdGVyKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZDbXBE OiB7CisrICAgICAgRlBVUmVnaXN0ZXIgbGVmdCA9IGkuSW5wdXRPclplcm9Eb3VibGVSZWdpc3Rl cigwKTsKKysgICAgICBGUFVSZWdpc3RlciByaWdodCA9IGkuSW5wdXRPclplcm9Eb3VibGVSZWdp c3RlcigxKTsKKysgICAgICBib29sIHByZWRpY2F0ZTsKKysgICAgICBGUFVDb25kaXRpb24gY2Mg PQorKyAgICAgICAgICBGbGFnc0NvbmRpdGlvblRvQ29uZGl0aW9uQ21wRlBVKCZwcmVkaWNhdGUs IGluc3RyLT5mbGFnc19jb25kaXRpb24oKSk7CisrICAgICAgaWYgKChsZWZ0ID09IGtEb3VibGVS ZWdaZXJvIHx8IHJpZ2h0ID09IGtEb3VibGVSZWdaZXJvKSAmJgorKyAgICAgICAgICAhX18gSXNE b3VibGVaZXJvUmVnU2V0KCkpIHsKKysgICAgICAgIF9fIExvYWRGUFJJbW1lZGlhdGUoa0RvdWJs ZVJlZ1plcm8sIDAuMCk7CisrICAgICAgfQorKyAgICAgIC8vIGNvbXBhcmUgcmVzdWx0IHNldCB0 byBrU2NyYXRjaFJlZworKyAgICAgIF9fIENvbXBhcmVGNjQoa1NjcmF0Y2hSZWcsIGNjLCBsZWZ0 LCByaWdodCk7CisrICAgIH0gYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2QWRkRDoKKysgICAgICAv LyBUT0RPKHBsaW5kKTogYWRkIHNwZWNpYWwgY2FzZTogY29tYmluZSBtdWx0ICYgYWRkLgorKyAg ICAgIF9fIGZhZGRfZChpLk91dHB1dERvdWJsZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdp c3RlcigwKSwKKysgICAgICAgICAgICAgICAgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDEpKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZTdWJEOgorKyAgICAgIF9fIGZzdWJfZChpLk91 dHB1dERvdWJsZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAgICAg ICAgICAgICAgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDEpKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBrUmlzY3ZNdWxEOgorKyAgICAgIC8vIFRPRE8ocGxpbmQpOiBhZGQgc3BlY2lhbCBjYXNl OiByaWdodCBvcCBpcyAtMS4wLCBzZWUgYXJtIHBvcnQuCisrICAgICAgX18gZm11bF9kKGkuT3V0 cHV0RG91YmxlUmVnaXN0ZXIoKSwgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLAorKyAgICAgICAg ICAgICAgICBpLklucHV0RG91YmxlUmVnaXN0ZXIoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBj YXNlIGtSaXNjdkRpdkQ6CisrICAgICAgX18gZmRpdl9kKGkuT3V0cHV0RG91YmxlUmVnaXN0ZXIo KSwgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICBpLklucHV0RG91 YmxlUmVnaXN0ZXIoMSkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdk1vZEQ6IHsK KysgICAgICAvLyBUT0RPKGJtZXVyZXIpOiBXZSBzaG91bGQgcmVhbGx5IGdldCByaWQgb2YgdGhp cyBzcGVjaWFsIGluc3RydWN0aW9uLAorKyAgICAgIC8vIGFuZCBnZW5lcmF0ZSBhIENhbGxBZGRy ZXNzIGluc3RydWN0aW9uIGluc3RlYWQuCisrICAgICAgRnJhbWVTY29wZSBzY29wZSh0YXNtKCks IFN0YWNrRnJhbWU6Ok1BTlVBTCk7CisrICAgICAgX18gUHJlcGFyZUNhbGxDRnVuY3Rpb24oMCwg Miwga1NjcmF0Y2hSZWcpOworKyAgICAgIF9fIE1vdlRvRmxvYXRQYXJhbWV0ZXJzKGkuSW5wdXRE b3VibGVSZWdpc3RlcigwKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLklucHV0 RG91YmxlUmVnaXN0ZXIoMSkpOworKyAgICAgIF9fIENhbGxDRnVuY3Rpb24oRXh0ZXJuYWxSZWZl cmVuY2U6Om1vZF90d29fZG91Ymxlc19vcGVyYXRpb24oKSwgMCwgMik7CisrICAgICAgLy8gTW92 ZSB0aGUgcmVzdWx0IGluIHRoZSBkb3VibGUgcmVzdWx0IHJlZ2lzdGVyLgorKyAgICAgIF9fIE1v dkZyb21GbG9hdFJlc3VsdChpLk91dHB1dERvdWJsZVJlZ2lzdGVyKCkpOworKyAgICAgIGJyZWFr OworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2QWJzRDoKKysgICAgICBfXyBmYWJzX2QoaS5PdXRw dXREb3VibGVSZWdpc3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCkpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGtSaXNjdk5lZ0Q6CisrICAgICAgX18gTmVnX2QoaS5PdXRwdXREb3Vi bGVSZWdpc3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIGtSaXNjdlNxcnREOiB7CisrICAgICAgX18gZnNxcnRfZChpLk91dHB1dERvdWJs ZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSk7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysgICAgY2FzZSBrUmlzY3ZNYXhEOgorKyAgICAgIF9fIGZtYXhfZChpLk91dHB1dERv dWJsZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAgICAgICAgICAg ICAgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBr UmlzY3ZNaW5EOgorKyAgICAgIF9fIGZtaW5fZChpLk91dHB1dERvdWJsZVJlZ2lzdGVyKCksIGku SW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAgICAgICAgICAgICAgaS5JbnB1dERvdWJsZVJl Z2lzdGVyKDEpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZGbG9hdDY0Um91bmRE b3duOiB7CisrICAgICAgX18gRmxvb3JfZF9kKGkuT3V0cHV0RG91YmxlUmVnaXN0ZXIoKSwgaS5J bnB1dERvdWJsZVJlZ2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICAgICBrU2NyYXRjaERvdWJs ZVJlZyk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZGbG9hdDMyUm91 bmREb3duOiB7CisrICAgICAgX18gRmxvb3Jfc19zKGkuT3V0cHV0U2luZ2xlUmVnaXN0ZXIoKSwg aS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICAgICBrU2NyYXRjaERv dWJsZVJlZyk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZGbG9hdDY0 Um91bmRUcnVuY2F0ZTogeworKyAgICAgIF9fIFRydW5jX2RfZChpLk91dHB1dERvdWJsZVJlZ2lz dGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAgICAgICAgICAgICAgICAga1Nj cmF0Y2hEb3VibGVSZWcpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2 RmxvYXQzMlJvdW5kVHJ1bmNhdGU6IHsKKysgICAgICBfXyBUcnVuY19zX3MoaS5PdXRwdXRTaW5n bGVSZWdpc3RlcigpLCBpLklucHV0U2luZ2xlUmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAg ICAgIGtTY3JhdGNoRG91YmxlUmVnKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNl IGtSaXNjdkZsb2F0NjRSb3VuZFVwOiB7CisrICAgICAgX18gQ2VpbF9kX2QoaS5PdXRwdXREb3Vi bGVSZWdpc3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksCisrICAgICAgICAgICAgICAg ICAga1NjcmF0Y2hEb3VibGVSZWcpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Ug a1Jpc2N2RmxvYXQzMlJvdW5kVXA6IHsKKysgICAgICBfXyBDZWlsX3NfcyhpLk91dHB1dFNpbmds ZVJlZ2lzdGVyKCksIGkuSW5wdXRTaW5nbGVSZWdpc3RlcigwKSwKKysgICAgICAgICAgICAgICAg ICBrU2NyYXRjaERvdWJsZVJlZyk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBr UmlzY3ZGbG9hdDY0Um91bmRUaWVzRXZlbjogeworKyAgICAgIF9fIFJvdW5kX2RfZChpLk91dHB1 dERvdWJsZVJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwKKysgICAgICAgICAg ICAgICAgICAga1NjcmF0Y2hEb3VibGVSZWcpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAg IGNhc2Uga1Jpc2N2RmxvYXQzMlJvdW5kVGllc0V2ZW46IHsKKysgICAgICBfXyBSb3VuZF9zX3Mo aS5PdXRwdXRTaW5nbGVSZWdpc3RlcigpLCBpLklucHV0U2luZ2xlUmVnaXN0ZXIoMCksCisrICAg ICAgICAgICAgICAgICAgIGtTY3JhdGNoRG91YmxlUmVnKTsKKysgICAgICBicmVhazsKKysgICAg fQorKyAgICBjYXNlIGtSaXNjdkZsb2F0MzJNYXg6IHsKKysgICAgICBfXyBGbG9hdDMyTWF4KGku T3V0cHV0U2luZ2xlUmVnaXN0ZXIoKSwgaS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDApLAorKyAgICAg ICAgICAgICAgICAgICAgaS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDEpKTsKKysgICAgICBicmVhazsK KysgICAgfQorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRNYXg6IHsKKysgICAgICBfXyBGbG9hdDY0 TWF4KGkuT3V0cHV0U2luZ2xlUmVnaXN0ZXIoKSwgaS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDApLAor KyAgICAgICAgICAgICAgICAgICAgaS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDEpKTsKKysgICAgICBi cmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdkZsb2F0MzJNaW46IHsKKysgICAgICBfXyBG bG9hdDMyTWluKGkuT3V0cHV0U2luZ2xlUmVnaXN0ZXIoKSwgaS5JbnB1dFNpbmdsZVJlZ2lzdGVy KDApLAorKyAgICAgICAgICAgICAgICAgICAgaS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDEpKTsKKysg ICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRNaW46IHsKKysgICAg ICBfXyBGbG9hdDY0TWluKGkuT3V0cHV0U2luZ2xlUmVnaXN0ZXIoKSwgaS5JbnB1dFNpbmdsZVJl Z2lzdGVyKDApLAorKyAgICAgICAgICAgICAgICAgICAgaS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDEp KTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRTaWxlbmNl TmFOOgorKyAgICAgIF9fIEZQVUNhbm9uaWNhbGl6ZU5hTihpLk91dHB1dERvdWJsZVJlZ2lzdGVy KCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug a1Jpc2N2Q3Z0U0Q6CisrICAgICAgX18gZmN2dF9zX2QoaS5PdXRwdXRTaW5nbGVSZWdpc3Rlcigp LCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtS aXNjdkN2dERTOgorKyAgICAgIF9fIGZjdnRfZF9zKGkuT3V0cHV0RG91YmxlUmVnaXN0ZXIoKSwg aS5JbnB1dFNpbmdsZVJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlz Y3ZDdnREVzogeworKyAgICAgIF9fIGZjdnRfZF93KGkuT3V0cHV0RG91YmxlUmVnaXN0ZXIoKSwg aS5JbnB1dFJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtS aXNjdkN2dFNXOiB7CisrICAgICAgX18gZmN2dF9zX3coaS5PdXRwdXREb3VibGVSZWdpc3Rlcigp LCBpLklucHV0UmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Ug a1Jpc2N2Q3Z0U1V3OiB7CisrICAgICAgX18gQ3Z0X3NfdXcoaS5PdXRwdXREb3VibGVSZWdpc3Rl cigpLCBpLklucHV0UmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNh c2Uga1Jpc2N2Q3Z0U0w6IHsKKysgICAgICBfXyBmY3Z0X3NfbChpLk91dHB1dERvdWJsZVJlZ2lz dGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAg Y2FzZSBrUmlzY3ZDdnRETDogeworKyAgICAgIF9fIGZjdnRfZF9sKGkuT3V0cHV0RG91YmxlUmVn aXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAg ICBjYXNlIGtSaXNjdkN2dERVdzogeworKyAgICAgIF9fIEN2dF9kX3V3KGkuT3V0cHV0RG91Ymxl UmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysgICAgfQor KyAgICBjYXNlIGtSaXNjdkN2dERVbDogeworKyAgICAgIF9fIEN2dF9kX3VsKGkuT3V0cHV0RG91 YmxlUmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysgICAg fQorKyAgICBjYXNlIGtSaXNjdkN2dFNVbDogeworKyAgICAgIF9fIEN2dF9zX3VsKGkuT3V0cHV0 RG91YmxlUmVnaXN0ZXIoKSwgaS5JbnB1dFJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBjYXNlIGtSaXNjdkZsb29yV0Q6IHsKKysgICAgICBSZWdpc3RlciByZXN1bHQg PSBpbnN0ci0+T3V0cHV0Q291bnQoKSA+IDEgPyBpLk91dHB1dFJlZ2lzdGVyKDEpIDogbm9fcmVn OworKyAgICAgIF9fIEZsb29yX3dfZChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVS ZWdpc3RlcigwKSwgcmVzdWx0KTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtS aXNjdkNlaWxXRDogeworKyAgICAgIFJlZ2lzdGVyIHJlc3VsdCA9IGluc3RyLT5PdXRwdXRDb3Vu dCgpID4gMSA/IGkuT3V0cHV0UmVnaXN0ZXIoMSkgOiBub19yZWc7CisrICAgICAgX18gQ2VpbF93 X2QoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksIHJlc3VsdCk7 CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZSb3VuZFdEOiB7CisrICAg ICAgUmVnaXN0ZXIgcmVzdWx0ID0gaW5zdHItPk91dHB1dENvdW50KCkgPiAxID8gaS5PdXRwdXRS ZWdpc3RlcigxKSA6IG5vX3JlZzsKKysgICAgICBfXyBSb3VuZF93X2QoaS5PdXRwdXRSZWdpc3Rl cigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksIHJlc3VsdCk7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysgICAgY2FzZSBrUmlzY3ZUcnVuY1dEOiB7CisrICAgICAgUmVnaXN0ZXIgcmVzdWx0 ID0gaW5zdHItPk91dHB1dENvdW50KCkgPiAxID8gaS5PdXRwdXRSZWdpc3RlcigxKSA6IG5vX3Jl ZzsKKysgICAgICBfXyBUcnVuY193X2QoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0RG91Ymxl UmVnaXN0ZXIoMCksIHJlc3VsdCk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBr UmlzY3ZGbG9vcldTOiB7CisrICAgICAgUmVnaXN0ZXIgcmVzdWx0ID0gaW5zdHItPk91dHB1dENv dW50KCkgPiAxID8gaS5PdXRwdXRSZWdpc3RlcigxKSA6IG5vX3JlZzsKKysgICAgICBfXyBGbG9v cl93X3MoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksIHJlc3Vs dCk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZDZWlsV1M6IHsKKysg ICAgICBSZWdpc3RlciByZXN1bHQgPSBpbnN0ci0+T3V0cHV0Q291bnQoKSA+IDEgPyBpLk91dHB1 dFJlZ2lzdGVyKDEpIDogbm9fcmVnOworKyAgICAgIF9fIENlaWxfd19zKGkuT3V0cHV0UmVnaXN0 ZXIoKSwgaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLCByZXN1bHQpOworKyAgICAgIGJyZWFrOwor KyAgICB9CisrICAgIGNhc2Uga1Jpc2N2Um91bmRXUzogeworKyAgICAgIFJlZ2lzdGVyIHJlc3Vs dCA9IGluc3RyLT5PdXRwdXRDb3VudCgpID4gMSA/IGkuT3V0cHV0UmVnaXN0ZXIoMSkgOiBub19y ZWc7CisrICAgICAgX18gUm91bmRfd19zKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dERvdWJs ZVJlZ2lzdGVyKDApLCByZXN1bHQpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Ug a1Jpc2N2VHJ1bmNXUzogeworKyAgICAgIExhYmVsIGRvbmU7CisrICAgICAgUmVnaXN0ZXIgcmVz dWx0ID0gaW5zdHItPk91dHB1dENvdW50KCkgPiAxID8gaS5PdXRwdXRSZWdpc3RlcigxKSA6IG5v X3JlZzsKKysgICAgICBfXyBUcnVuY193X3MoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0RG91 YmxlUmVnaXN0ZXIoMCksIHJlc3VsdCk7CisrCisrICAgICAgLy8gT24gUklTQ1YsIGlmIHRoZSBp bnB1dCB2YWx1ZSBleGNlZWRzIElOVDMyX01BWCwgdGhlIHJlc3VsdCBvZiBmY3Z0CisrICAgICAg Ly8gaXMgSU5UMzJfTUFYLiBOb3RlIHRoYXQsIHNpbmNlIElOVDMyX01BWCBtZWFucyB0aGUgbG93 ZXIgMzEtYml0cyBhcmUKKysgICAgICAvLyBhbGwgMXMsIElOVDMyX01BWCBjYW5ub3QgYmUgcmVw cmVzZW50ZWQgcHJlY2lzZWx5IGFzIGEgZmxvYXQsIHNvIGFuCisrICAgICAgLy8gZmN2dCByZXN1 bHQgb2YgSU5UMzJfTUFYIGFsd2F5cyBpbmRpY2F0ZSBvdmVyZmxvdy4KKysgICAgICAvLworKyAg ICAgIC8vIEluIHdhc21fY29tcGlsZXIsIHRvIGRldGVjdCBvdmVyZmxvdyBpbiBjb252ZXJ0aW5n IGEgRlAgdmFsdWUsIGZ2YWwsIHRvCisrICAgICAgLy8gaW50ZWdlciwgVjggY2hlY2tzIHdoZXRo ZXIgSTJGKEYySShmdmFsKSkgZXF1YWxzIGZ2YWwuIEhvd2V2ZXIsIGlmIGZ2YWwKKysgICAgICAv LyA9PSBJTlQzMl9NQVgrMSwgdGhlIHZhbHVlIG9mIEkyRihGMkkoZnZhbCkpIGhhcHBlbnMgdG8g YmUgZnZhbC4gU28sCisrICAgICAgLy8gSU5UMzJfTUFYIGlzIG5vdCBhIGdvb2QgdmFsdWUgdG8g aW5kaWNhdGUgb3ZlcmZsb3cuIEluc3RlYWQsIHdlIHdpbGwKKysgICAgICAvLyB1c2UgSU5UMzJf TUlOIGFzIHRoZSBjb252ZXJ0ZWQgcmVzdWx0IG9mIGFuIG91dC1vZi1yYW5nZSBGUCB2YWx1ZSwK KysgICAgICAvLyBleHBsb2l0aW5nIHRoZSBmYWN0IHRoYXQgSU5UMzJfTUFYKzEgaXMgSU5UMzJf TUlOLgorKyAgICAgIC8vCisrICAgICAgLy8gSWYgdGhlIHJlc3VsdCBvZiBjb252ZXJzaW9uIG92 ZXJmbG93LCB0aGUgcmVzdWx0IHdpbGwgYmUgc2V0IHRvCisrICAgICAgLy8gSU5UMzJfTUlOLiBI ZXJlIHdlIGRldGVjdCBvdmVyZmxvdyBieSB0ZXN0aW5nIHdoZXRoZXIgb3V0cHV0ICsgMSA8Cisr ICAgICAgLy8gb3V0cHV0IChpLmUuLCBrU2NyYXRjaFJlZyAgPCBvdXRwdXQpCisrICAgICAgX18g QWRkMzIoa1NjcmF0Y2hSZWcsIGkuT3V0cHV0UmVnaXN0ZXIoKSwgMSk7CisrICAgICAgX18gQnJh bmNoKCZkb25lLCBsdCwgaS5PdXRwdXRSZWdpc3RlcigpLCBPcGVyYW5kKGtTY3JhdGNoUmVnKSk7 CisrICAgICAgX18gTW92ZShpLk91dHB1dFJlZ2lzdGVyKCksIGtTY3JhdGNoUmVnKTsKKysgICAg ICBfXyBiaW5kKCZkb25lKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNj dlRydW5jTFM6IHsKKysgICAgICBSZWdpc3RlciByZXN1bHQgPSBpbnN0ci0+T3V0cHV0Q291bnQo KSA+IDEgPyBpLk91dHB1dFJlZ2lzdGVyKDEpIDogbm9fcmVnOworKyAgICAgIF9fIFRydW5jX2xf cyhpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwgcmVzdWx0KTsK KysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdlRydW5jTEQ6IHsKKysgICAg ICBSZWdpc3RlciByZXN1bHQgPSBpbnN0ci0+T3V0cHV0Q291bnQoKSA+IDEgPyBpLk91dHB1dFJl Z2lzdGVyKDEpIDogbm9fcmVnOworKyAgICAgIF9fIFRydW5jX2xfZChpLk91dHB1dFJlZ2lzdGVy KCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSwgcmVzdWx0KTsKKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBjYXNlIGtSaXNjdlRydW5jVXdEOiB7CisrICAgICAgUmVnaXN0ZXIgcmVzdWx0 ID0gaW5zdHItPk91dHB1dENvdW50KCkgPiAxID8gaS5PdXRwdXRSZWdpc3RlcigxKSA6IG5vX3Jl ZzsKKysgICAgICBfXyBUcnVuY191d19kKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5JbnB1dERvdWJs ZVJlZ2lzdGVyKDApLCByZXN1bHQpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Ug a1Jpc2N2VHJ1bmNVd1M6IHsKKysgICAgICBSZWdpc3RlciByZXN1bHQgPSBpbnN0ci0+T3V0cHV0 Q291bnQoKSA+IDEgPyBpLk91dHB1dFJlZ2lzdGVyKDEpIDogbm9fcmVnOworKyAgICAgIF9fIFRy dW5jX3V3X3MoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksIHJl c3VsdCk7CisrCisrICAgICAgLy8gT24gUklTQ1YsIGlmIHRoZSBpbnB1dCB2YWx1ZSBleGNlZWRz IFVJTlQzMl9NQVgsIHRoZSByZXN1bHQgb2YgZmN2dAorKyAgICAgIC8vIGlzIFVJTlQzMl9NQVgu IE5vdGUgdGhhdCwgc2luY2UgVUlOVDMyX01BWCBtZWFucyBhbGwgMzItYml0cyBhcmUgMXMsCisr ICAgICAgLy8gVUlOVDMyX01BWCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgcHJlY2lzZWx5IGFzIGZs b2F0LCBzbyBhbiBmY3Z0IHJlc3VsdAorKyAgICAgIC8vIG9mIFVJTlQzMl9NQVggYWx3YXlzIGlu ZGljYXRlcyBvdmVyZmxvdy4KKysgICAgICAvLworKyAgICAgIC8vIEluIHdhc21fY29tcGlsZXIu Y2MsIHRvIGRldGVjdCBvdmVyZmxvdyBpbiBjb252ZXJ0aW5nIGEgRlAgdmFsdWUsIGZ2YWwsCisr ICAgICAgLy8gdG8gaW50ZWdlciwgVjggY2hlY2tzIHdoZXRoZXIgSTJGKEYySShmdmFsKSkgZXF1 YWxzIGZ2YWwuIEhvd2V2ZXIsIGlmCisrICAgICAgLy8gZnZhbCA9PSBVSU5UMzJfTUFYKzEsIHRo ZSB2YWx1ZSBvZiBJMkYoRjJJKGZ2YWwpKSBoYXBwZW5zIHRvIGJlIGZ2YWwuCisrICAgICAgLy8g U28sIFVJTlQzMl9NQVggaXMgbm90IGEgZ29vZCB2YWx1ZSB0byBpbmRpY2F0ZSBvdmVyZmxvdy4g SW5zdGVhZCwgd2UKKysgICAgICAvLyB3aWxsIHVzZSAwIGFzIHRoZSBjb252ZXJ0ZWQgcmVzdWx0 IG9mIGFuIG91dC1vZi1yYW5nZSBGUCB2YWx1ZSwKKysgICAgICAvLyBleHBsb2l0aW5nIHRoZSBm YWN0IHRoYXQgVUlOVDMyX01BWCsxIGlzIDAuCisrICAgICAgX18gQWRkMzIoa1NjcmF0Y2hSZWcs IGkuT3V0cHV0UmVnaXN0ZXIoKSwgMSk7CisrICAgICAgLy8gU2V0IG91cHV0IHRvIHplcm8gaWYg cmVzdWx0IG92ZXJmbG93cyAoaS5lLiwgVUlOVDMyX01BWCkKKysgICAgICBfXyBMb2FkWmVyb0lm Q29uZGl0aW9uWmVybyhpLk91dHB1dFJlZ2lzdGVyKCksIGtTY3JhdGNoUmVnKTsKKysgICAgICBi cmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdlRydW5jVWxTOiB7CisrICAgICAgUmVnaXN0 ZXIgcmVzdWx0ID0gaW5zdHItPk91dHB1dENvdW50KCkgPiAxID8gaS5PdXRwdXRSZWdpc3Rlcigx KSA6IG5vX3JlZzsKKysgICAgICBfXyBUcnVuY191bF9zKGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5J bnB1dERvdWJsZVJlZ2lzdGVyKDApLCByZXN1bHQpOworKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIGNhc2Uga1Jpc2N2VHJ1bmNVbEQ6IHsKKysgICAgICBSZWdpc3RlciByZXN1bHQgPSBpbnN0 ci0+T3V0cHV0Q291bnQoKSA+IDEgPyBpLk91dHB1dFJlZ2lzdGVyKDEpIDogbm9fcmVnOworKyAg ICAgIF9fIFRydW5jX3VsX2QoaS5PdXRwdXRSZWdpc3RlcigwKSwgaS5JbnB1dERvdWJsZVJlZ2lz dGVyKDApLCByZXN1bHQpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2 Qml0Y2FzdERMOgorKyAgICAgIF9fIGZtdl94X2QoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0 RG91YmxlUmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdkJpdGNh c3RMRDoKKysgICAgICBfXyBmbXZfZF94KGkuT3V0cHV0RG91YmxlUmVnaXN0ZXIoKSwgaS5JbnB1 dFJlZ2lzdGVyKDApKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZCaXRjYXN0SW50 MzJUb0Zsb2F0MzI6CisrICAgICAgX18gZm12X3dfeChpLk91dHB1dERvdWJsZVJlZ2lzdGVyKCks IGkuSW5wdXRSZWdpc3RlcigwKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2Qml0 Y2FzdEZsb2F0MzJUb0ludDMyOgorKyAgICAgIF9fIGZtdl94X3coaS5PdXRwdXRSZWdpc3Rlcigp LCBpLklucHV0RG91YmxlUmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtS aXNjdkZsb2F0NjRFeHRyYWN0TG93V29yZDMyOgorKyAgICAgIF9fIEV4dHJhY3RMb3dXb3JkRnJv bUY2NChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXREb3VibGVSZWdpc3RlcigwKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2RmxvYXQ2NEV4dHJhY3RIaWdoV29yZDMyOgorKyAg ICAgIF9fIEV4dHJhY3RIaWdoV29yZEZyb21GNjQoaS5PdXRwdXRSZWdpc3RlcigpLCBpLklucHV0 RG91YmxlUmVnaXN0ZXIoMCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdkZsb2F0 NjRJbnNlcnRMb3dXb3JkMzI6CisrICAgICAgX18gSW5zZXJ0TG93V29yZEY2NChpLk91dHB1dERv dWJsZVJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigxKSk7CisrICAgICAgYnJlYWs7CisrICAg IGNhc2Uga1Jpc2N2RmxvYXQ2NEluc2VydEhpZ2hXb3JkMzI6CisrICAgICAgX18gSW5zZXJ0SGln aFdvcmRGNjQoaS5PdXRwdXREb3VibGVSZWdpc3RlcigpLCBpLklucHV0UmVnaXN0ZXIoMSkpOwor KyAgICAgIGJyZWFrOworKyAgICAgIC8vIC4uLiBtb3JlIGJhc2ljIGluc3RydWN0aW9ucyAuLi4K KysKKysgICAgY2FzZSBrUmlzY3ZTaWduRXh0ZW5kQnl0ZToKKysgICAgICBfXyBTaWduRXh0ZW5k Qnl0ZShpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSk7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2Uga1Jpc2N2U2lnbkV4dGVuZFNob3J0OgorKyAgICAgIF9fIFNpZ25FeHRl bmRTaG9ydChpLk91dHB1dFJlZ2lzdGVyKCksIGkuSW5wdXRSZWdpc3RlcigwKSk7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2TGJ1OgorKyAgICAgIF9fIExidShpLk91dHB1dFJlZ2lz dGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpKTsKKysgICAgICBFbWl0V29yZExvYWRQb2lzb25pbmdJ Zk5lZWRlZCh0aGlzLCBvcGNvZGUsIGluc3RyLCBpKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBrUmlzY3ZMYjoKKysgICAgICBfXyBMYihpLk91dHB1dFJlZ2lzdGVyKCksIGkuTWVtb3J5T3Bl cmFuZCgpKTsKKysgICAgICBFbWl0V29yZExvYWRQb2lzb25pbmdJZk5lZWRlZCh0aGlzLCBvcGNv ZGUsIGluc3RyLCBpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZTYjoKKysgICAg ICBfXyBTYihpLklucHV0T3JaZXJvUmVnaXN0ZXIoMiksIGkuTWVtb3J5T3BlcmFuZCgpKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZMaHU6CisrICAgICAgX18gTGh1KGkuT3V0cHV0 UmVnaXN0ZXIoKSwgaS5NZW1vcnlPcGVyYW5kKCkpOworKyAgICAgIEVtaXRXb3JkTG9hZFBvaXNv bmluZ0lmTmVlZGVkKHRoaXMsIG9wY29kZSwgaW5zdHIsIGkpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIGtSaXNjdlVsaHU6CisrICAgICAgX18gVWxodShpLk91dHB1dFJlZ2lzdGVyKCksIGku TWVtb3J5T3BlcmFuZCgpKTsKKysgICAgICBFbWl0V29yZExvYWRQb2lzb25pbmdJZk5lZWRlZCh0 aGlzLCBvcGNvZGUsIGluc3RyLCBpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZM aDoKKysgICAgICBfXyBMaChpLk91dHB1dFJlZ2lzdGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpKTsK KysgICAgICBFbWl0V29yZExvYWRQb2lzb25pbmdJZk5lZWRlZCh0aGlzLCBvcGNvZGUsIGluc3Ry LCBpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZVbGg6CisrICAgICAgX18gVWxo KGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5NZW1vcnlPcGVyYW5kKCkpOworKyAgICAgIEVtaXRXb3Jk TG9hZFBvaXNvbmluZ0lmTmVlZGVkKHRoaXMsIG9wY29kZSwgaW5zdHIsIGkpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGtSaXNjdlNoOgorKyAgICAgIF9fIFNoKGkuSW5wdXRPclplcm9SZWdp c3RlcigyKSwgaS5NZW1vcnlPcGVyYW5kKCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtS aXNjdlVzaDoKKysgICAgICBfXyBVc2goaS5JbnB1dE9yWmVyb1JlZ2lzdGVyKDIpLCBpLk1lbW9y eU9wZXJhbmQoKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2THc6CisrICAgICAg X18gTHcoaS5PdXRwdXRSZWdpc3RlcigpLCBpLk1lbW9yeU9wZXJhbmQoKSk7CisrICAgICAgRW1p dFdvcmRMb2FkUG9pc29uaW5nSWZOZWVkZWQodGhpcywgb3Bjb2RlLCBpbnN0ciwgaSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2VWx3OgorKyAgICAgIF9fIFVsdyhpLk91dHB1dFJl Z2lzdGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpKTsKKysgICAgICBFbWl0V29yZExvYWRQb2lzb25p bmdJZk5lZWRlZCh0aGlzLCBvcGNvZGUsIGluc3RyLCBpKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBrUmlzY3ZMd3U6CisrICAgICAgX18gTHd1KGkuT3V0cHV0UmVnaXN0ZXIoKSwgaS5NZW1v cnlPcGVyYW5kKCkpOworKyAgICAgIEVtaXRXb3JkTG9hZFBvaXNvbmluZ0lmTmVlZGVkKHRoaXMs IG9wY29kZSwgaW5zdHIsIGkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlVsd3U6 CisrICAgICAgX18gVWx3dShpLk91dHB1dFJlZ2lzdGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpKTsK KysgICAgICBFbWl0V29yZExvYWRQb2lzb25pbmdJZk5lZWRlZCh0aGlzLCBvcGNvZGUsIGluc3Ry LCBpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZMZDoKKysgICAgICBfXyBMZChp Lk91dHB1dFJlZ2lzdGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpKTsKKysgICAgICBFbWl0V29yZExv YWRQb2lzb25pbmdJZk5lZWRlZCh0aGlzLCBvcGNvZGUsIGluc3RyLCBpKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBrUmlzY3ZVbGQ6CisrICAgICAgX18gVWxkKGkuT3V0cHV0UmVnaXN0ZXIo KSwgaS5NZW1vcnlPcGVyYW5kKCkpOworKyAgICAgIEVtaXRXb3JkTG9hZFBvaXNvbmluZ0lmTmVl ZGVkKHRoaXMsIG9wY29kZSwgaW5zdHIsIGkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtS aXNjdlN3OgorKyAgICAgIF9fIFN3KGkuSW5wdXRPclplcm9SZWdpc3RlcigyKSwgaS5NZW1vcnlP cGVyYW5kKCkpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdlVzdzoKKysgICAgICBf XyBVc3coaS5JbnB1dE9yWmVyb1JlZ2lzdGVyKDIpLCBpLk1lbW9yeU9wZXJhbmQoKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2U2Q6CisrICAgICAgX18gU2QoaS5JbnB1dE9yWmVy b1JlZ2lzdGVyKDIpLCBpLk1lbW9yeU9wZXJhbmQoKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2Uga1Jpc2N2VXNkOgorKyAgICAgIF9fIFVzZChpLklucHV0T3JaZXJvUmVnaXN0ZXIoMiksIGku TWVtb3J5T3BlcmFuZCgpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZMb2FkRmxv YXQ6IHsKKysgICAgICBfXyBMb2FkRmxvYXQoaS5PdXRwdXRTaW5nbGVSZWdpc3RlcigpLCBpLk1l bW9yeU9wZXJhbmQoKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZV TG9hZEZsb2F0OiB7CisrICAgICAgX18gVUxvYWRGbG9hdChpLk91dHB1dFNpbmdsZVJlZ2lzdGVy KCksIGkuTWVtb3J5T3BlcmFuZCgpLCBrU2NyYXRjaFJlZyk7CisrICAgICAgYnJlYWs7CisrICAg IH0KKysgICAgY2FzZSBrUmlzY3ZTdG9yZUZsb2F0OiB7CisrICAgICAgc2l6ZV90IGluZGV4ID0g MDsKKysgICAgICBNZW1PcGVyYW5kIG9wZXJhbmQgPSBpLk1lbW9yeU9wZXJhbmQoJmluZGV4KTsK KysgICAgICBGUFVSZWdpc3RlciBmdCA9IGkuSW5wdXRPclplcm9TaW5nbGVSZWdpc3RlcihpbmRl eCk7CisrICAgICAgaWYgKGZ0ID09IGtEb3VibGVSZWdaZXJvICYmICFfXyBJc1NpbmdsZVplcm9S ZWdTZXQoKSkgeworKyAgICAgICAgX18gTG9hZEZQUkltbWVkaWF0ZShrRG91YmxlUmVnWmVybywg MC4wZik7CisrICAgICAgfQorKyAgICAgIF9fIFN0b3JlRmxvYXQoZnQsIG9wZXJhbmQpOworKyAg ICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2VVN0b3JlRmxvYXQ6IHsKKysgICAg ICBzaXplX3QgaW5kZXggPSAwOworKyAgICAgIE1lbU9wZXJhbmQgb3BlcmFuZCA9IGkuTWVtb3J5 T3BlcmFuZCgmaW5kZXgpOworKyAgICAgIEZQVVJlZ2lzdGVyIGZ0ID0gaS5JbnB1dE9yWmVyb1Np bmdsZVJlZ2lzdGVyKGluZGV4KTsKKysgICAgICBpZiAoZnQgPT0ga0RvdWJsZVJlZ1plcm8gJiYg IV9fIElzU2luZ2xlWmVyb1JlZ1NldCgpKSB7CisrICAgICAgICBfXyBMb2FkRlBSSW1tZWRpYXRl KGtEb3VibGVSZWdaZXJvLCAwLjBmKTsKKysgICAgICB9CisrICAgICAgX18gVVN0b3JlRmxvYXQo ZnQsIG9wZXJhbmQsIGtTY3JhdGNoUmVnKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBj YXNlIGtSaXNjdkxvYWREb3VibGU6CisrICAgICAgX18gTG9hZERvdWJsZShpLk91dHB1dERvdWJs ZVJlZ2lzdGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBrUmlzY3ZVTG9hZERvdWJsZToKKysgICAgICBfXyBVTG9hZERvdWJsZShpLk91dHB1dERvdWJs ZVJlZ2lzdGVyKCksIGkuTWVtb3J5T3BlcmFuZCgpLCBrU2NyYXRjaFJlZyk7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2Uga1Jpc2N2U3RvcmVEb3VibGU6IHsKKysgICAgICBGUFVSZWdpc3RlciBm dCA9IGkuSW5wdXRPclplcm9Eb3VibGVSZWdpc3RlcigyKTsKKysgICAgICBpZiAoZnQgPT0ga0Rv dWJsZVJlZ1plcm8gJiYgIV9fIElzRG91YmxlWmVyb1JlZ1NldCgpKSB7CisrICAgICAgICBfXyBM b2FkRlBSSW1tZWRpYXRlKGtEb3VibGVSZWdaZXJvLCAwLjApOworKyAgICAgIH0KKysgICAgICBf XyBTdG9yZURvdWJsZShmdCwgaS5NZW1vcnlPcGVyYW5kKCkpOworKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2Uga1Jpc2N2VVN0b3JlRG91YmxlOiB7CisrICAgICAgRlBVUmVnaXN0ZXIg ZnQgPSBpLklucHV0T3JaZXJvRG91YmxlUmVnaXN0ZXIoMik7CisrICAgICAgaWYgKGZ0ID09IGtE b3VibGVSZWdaZXJvICYmICFfXyBJc0RvdWJsZVplcm9SZWdTZXQoKSkgeworKyAgICAgICAgX18g TG9hZEZQUkltbWVkaWF0ZShrRG91YmxlUmVnWmVybywgMC4wKTsKKysgICAgICB9CisrICAgICAg X18gVVN0b3JlRG91YmxlKGZ0LCBpLk1lbW9yeU9wZXJhbmQoKSwga1NjcmF0Y2hSZWcpOworKyAg ICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2U3luYzogeworKyAgICAgIF9fIHN5 bmMoKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdlB1c2g6CisrICAg ICAgaWYgKGluc3RyLT5JbnB1dEF0KDApLT5Jc0ZQUmVnaXN0ZXIoKSkgeworKyAgICAgICAgX18g U3RvcmVEb3VibGUoaS5JbnB1dERvdWJsZVJlZ2lzdGVyKDApLCBNZW1PcGVyYW5kKHNwLCAta0Rv dWJsZVNpemUpKTsKKysgICAgICAgIF9fIFN1YjMyKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6 ZSkpOworKyAgICAgICAgZnJhbWVfYWNjZXNzX3N0YXRlKCktPkluY3JlYXNlU1BEZWx0YShrRG91 YmxlU2l6ZSAvIGtTeXN0ZW1Qb2ludGVyU2l6ZSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAg IF9fIFB1c2goaS5JbnB1dFJlZ2lzdGVyKDApKTsKKysgICAgICAgIGZyYW1lX2FjY2Vzc19zdGF0 ZSgpLT5JbmNyZWFzZVNQRGVsdGEoMSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBj YXNlIGtSaXNjdlBlZWs6IHsKKysgICAgICAvLyBUaGUgaW5jb21pbmcgdmFsdWUgaXMgMC1iYXNl ZCwgYnV0IHdlIG5lZWQgYSAxLWJhc2VkIHZhbHVlLgorKyAgICAgIGludCByZXZlcnNlX3Nsb3Qg PSBpLklucHV0SW50MzIoMCkgKyAxOworKyAgICAgIGludCBvZmZzZXQgPQorKyAgICAgICAgICBG cmFtZVNsb3RUb0ZQT2Zmc2V0KGZyYW1lKCktPkdldFRvdGFsRnJhbWVTbG90Q291bnQoKSAtIHJl dmVyc2Vfc2xvdCk7CisrICAgICAgaWYgKGluc3RyLT5PdXRwdXRBdCgwKS0+SXNGUFJlZ2lzdGVy KCkpIHsKKysgICAgICAgIExvY2F0aW9uT3BlcmFuZCogb3AgPSBMb2NhdGlvbk9wZXJhbmQ6OmNh c3QoaW5zdHItPk91dHB1dEF0KDApKTsKKysgICAgICAgIGlmIChvcC0+cmVwcmVzZW50YXRpb24o KSA9PSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtGbG9hdDY0KSB7CisrICAgICAgICAgIF9fIExv YWREb3VibGUoaS5PdXRwdXREb3VibGVSZWdpc3RlcigpLCBNZW1PcGVyYW5kKGZwLCBvZmZzZXQp KTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIERDSEVDS19FUShvcC0+cmVwcmVzZW50 YXRpb24oKSwgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprRmxvYXQzMik7CisrICAgICAgICAgIF9f IExvYWRGbG9hdCgKKysgICAgICAgICAgICAgIGkuT3V0cHV0U2luZ2xlUmVnaXN0ZXIoMCksCisr ICAgICAgICAgICAgICBNZW1PcGVyYW5kKGZwLCBvZmZzZXQgKyBrTGVzc1NpZ25pZmljYW50V29y ZEluRG91Ymxld29yZE9mZnNldCkpOworKyAgICAgICAgfQorKyAgICAgIH0gZWxzZSB7CisrICAg ICAgICBfXyBMZChpLk91dHB1dFJlZ2lzdGVyKDApLCBNZW1PcGVyYW5kKGZwLCBvZmZzZXQpKTsK KysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZTdGFja0Ns YWltOiB7CisrICAgICAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKGkuSW5wdXRJbnQzMigwKSkp OworKyAgICAgIGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5JbmNyZWFzZVNQRGVsdGEoaS5JbnB1dElu dDMyKDApIC8KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtT eXN0ZW1Qb2ludGVyU2l6ZSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrUmlz Y3ZTdG9yZVRvU3RhY2tTbG90OiB7CisrICAgICAgaWYgKGluc3RyLT5JbnB1dEF0KDApLT5Jc0ZQ UmVnaXN0ZXIoKSkgeworKyAgICAgICAgaWYgKGluc3RyLT5JbnB1dEF0KDApLT5Jc1NpbWQxMjhS ZWdpc3RlcigpKSB7CisrICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgICAgICB9IGVsc2Ug eworKyAgICAgICAgICBfXyBTdG9yZURvdWJsZShpLklucHV0RG91YmxlUmVnaXN0ZXIoMCksCisr ICAgICAgICAgICAgICAgICAgICAgICAgIE1lbU9wZXJhbmQoc3AsIGkuSW5wdXRJbnQzMigxKSkp OworKyAgICAgICAgfQorKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBfXyBTZChpLklucHV0UmVn aXN0ZXIoMCksIE1lbU9wZXJhbmQoc3AsIGkuSW5wdXRJbnQzMigxKSkpOworKyAgICAgIH0KKysg ICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdkJ5dGVTd2FwNjQ6IHsKKysgICAg ICBfXyBCeXRlU3dhcChpLk91dHB1dFJlZ2lzdGVyKDApLCBpLklucHV0UmVnaXN0ZXIoMCksIDgp OworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2Qnl0ZVN3YXAzMjogewor KyAgICAgIF9fIEJ5dGVTd2FwKGkuT3V0cHV0UmVnaXN0ZXIoMCksIGkuSW5wdXRSZWdpc3Rlcigw KSwgNCk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBrV29yZDMyQXRvbWljTG9h ZEludDg6CisrICAgICAgQVNTRU1CTEVfQVRPTUlDX0xPQURfSU5URUdFUihMYik7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0xvYWRVaW50ODoKKysgICAgICBBU1NFTUJM RV9BVE9NSUNfTE9BRF9JTlRFR0VSKExidSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1dv cmQzMkF0b21pY0xvYWRJbnQxNjoKKysgICAgICBBU1NFTUJMRV9BVE9NSUNfTE9BRF9JTlRFR0VS KExoKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrV29yZDMyQXRvbWljTG9hZFVpbnQxNjoK KysgICAgICBBU1NFTUJMRV9BVE9NSUNfTE9BRF9JTlRFR0VSKExodSk7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0xvYWRXb3JkMzI6CisrICAgICAgQVNTRU1CTEVfQVRP TUlDX0xPQURfSU5URUdFUihMdyk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2V29y ZDY0QXRvbWljTG9hZFVpbnQ4OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19MT0FEX0lOVEVHRVIo TGJ1KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNMb2FkVWlu dDE2OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19MT0FEX0lOVEVHRVIoTGh1KTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNMb2FkVWludDMyOgorKyAgICAgIEFT U0VNQkxFX0FUT01JQ19MT0FEX0lOVEVHRVIoTHd1KTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBrUmlzY3ZXb3JkNjRBdG9taWNMb2FkVWludDY0OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19M T0FEX0lOVEVHRVIoTGQpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtXb3JkMzJBdG9taWNT dG9yZVdvcmQ4OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19TVE9SRV9JTlRFR0VSKFNiKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBrV29yZDMyQXRvbWljU3RvcmVXb3JkMTY6CisrICAgICAg QVNTRU1CTEVfQVRPTUlDX1NUT1JFX0lOVEVHRVIoU2gpOworKyAgICAgIGJyZWFrOworKyAgICBj YXNlIGtXb3JkMzJBdG9taWNTdG9yZVdvcmQzMjoKKysgICAgICBBU1NFTUJMRV9BVE9NSUNfU1RP UkVfSU5URUdFUihTdyk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRv bWljU3RvcmVXb3JkODoKKysgICAgICBBU1NFTUJMRV9BVE9NSUNfU1RPUkVfSU5URUdFUihTYik7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljU3RvcmVXb3JkMTY6 CisrICAgICAgQVNTRU1CTEVfQVRPTUlDX1NUT1JFX0lOVEVHRVIoU2gpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY1N0b3JlV29yZDMyOgorKyAgICAgIEFTU0VN QkxFX0FUT01JQ19TVE9SRV9JTlRFR0VSKFN3KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBr UmlzY3ZXb3JkNjRBdG9taWNTdG9yZVdvcmQ2NDoKKysgICAgICBBU1NFTUJMRV9BVE9NSUNfU1RP UkVfSU5URUdFUihTZCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0V4 Y2hhbmdlSW50ODoKKysgICAgICBBU1NFTUJMRV9BVE9NSUNfRVhDSEFOR0VfSU5URUdFUl9FWFQo TGwsIFNjLCB0cnVlLCA4LCAzMik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1dvcmQzMkF0 b21pY0V4Y2hhbmdlVWludDg6CisrICAgICAgQVNTRU1CTEVfQVRPTUlDX0VYQ0hBTkdFX0lOVEVH RVJfRVhUKExsLCBTYywgZmFsc2UsIDgsIDMyKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBr V29yZDMyQXRvbWljRXhjaGFuZ2VJbnQxNjoKKysgICAgICBBU1NFTUJMRV9BVE9NSUNfRVhDSEFO R0VfSU5URUdFUl9FWFQoTGwsIFNjLCB0cnVlLCAxNiwgMzIpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIGtXb3JkMzJBdG9taWNFeGNoYW5nZVVpbnQxNjoKKysgICAgICBBU1NFTUJMRV9BVE9N SUNfRVhDSEFOR0VfSU5URUdFUl9FWFQoTGwsIFNjLCBmYWxzZSwgMTYsIDMyKTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBrV29yZDMyQXRvbWljRXhjaGFuZ2VXb3JkMzI6CisrICAgICAgQVNT RU1CTEVfQVRPTUlDX0VYQ0hBTkdFX0lOVEVHRVIoTGwsIFNjKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNFeGNoYW5nZVVpbnQ4OgorKyAgICAgIEFTU0VNQkxF X0FUT01JQ19FWENIQU5HRV9JTlRFR0VSX0VYVChMbGQsIFNjZCwgZmFsc2UsIDgsIDY0KTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNFeGNoYW5nZVVpbnQxNjoK KysgICAgICBBU1NFTUJMRV9BVE9NSUNfRVhDSEFOR0VfSU5URUdFUl9FWFQoTGxkLCBTY2QsIGZh bHNlLCAxNiwgNjQpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21p Y0V4Y2hhbmdlVWludDMyOgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19FWENIQU5HRV9JTlRFR0VS X0VYVChMbGQsIFNjZCwgZmFsc2UsIDMyLCA2NCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug a1Jpc2N2V29yZDY0QXRvbWljRXhjaGFuZ2VVaW50NjQ6CisrICAgICAgQVNTRU1CTEVfQVRPTUlD X0VYQ0hBTkdFX0lOVEVHRVIoTGxkLCBTY2QpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtX b3JkMzJBdG9taWNDb21wYXJlRXhjaGFuZ2VJbnQ4OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19D T01QQVJFX0VYQ0hBTkdFX0lOVEVHRVJfRVhUKExsLCBTYywgdHJ1ZSwgOCwgMzIpOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIGtXb3JkMzJBdG9taWNDb21wYXJlRXhjaGFuZ2VVaW50ODoKKysg ICAgICBBU1NFTUJMRV9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV9JTlRFR0VSX0VYVChMbCwgU2Ms IGZhbHNlLCA4LCAzMik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0Nv bXBhcmVFeGNoYW5nZUludDE2OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19DT01QQVJFX0VYQ0hB TkdFX0lOVEVHRVJfRVhUKExsLCBTYywgdHJ1ZSwgMTYsIDMyKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBrV29yZDMyQXRvbWljQ29tcGFyZUV4Y2hhbmdlVWludDE2OgorKyAgICAgIEFTU0VN QkxFX0FUT01JQ19DT01QQVJFX0VYQ0hBTkdFX0lOVEVHRVJfRVhUKExsLCBTYywgZmFsc2UsIDE2 LCAzMik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0NvbXBhcmVFeGNo YW5nZVdvcmQzMjoKKysgICAgICBfXyBTbGwzMihpLklucHV0UmVnaXN0ZXIoMiksIGkuSW5wdXRS ZWdpc3RlcigyKSwgMCk7CisrICAgICAgQVNTRU1CTEVfQVRPTUlDX0NPTVBBUkVfRVhDSEFOR0Vf SU5URUdFUihMbCwgU2MpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0 b21pY0NvbXBhcmVFeGNoYW5nZVVpbnQ4OgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19DT01QQVJF X0VYQ0hBTkdFX0lOVEVHRVJfRVhUKExsZCwgU2NkLCBmYWxzZSwgOCwgNjQpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5nZVVpbnQxNjoK KysgICAgICBBU1NFTUJMRV9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV9JTlRFR0VSX0VYVChMbGQs IFNjZCwgZmFsc2UsIDE2LCA2NCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Uga1Jpc2N2V29y ZDY0QXRvbWljQ29tcGFyZUV4Y2hhbmdlVWludDMyOgorKyAgICAgIEFTU0VNQkxFX0FUT01JQ19D T01QQVJFX0VYQ0hBTkdFX0lOVEVHRVJfRVhUKExsZCwgU2NkLCBmYWxzZSwgMzIsIDY0KTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNDb21wYXJlRXhjaGFuZ2VV aW50NjQ6CisrICAgICAgQVNTRU1CTEVfQVRPTUlDX0NPTVBBUkVfRVhDSEFOR0VfSU5URUdFUihM bGQsIFNjZCk7CisrICAgICAgYnJlYWs7CisrI2RlZmluZSBBVE9NSUNfQklOT1BfQ0FTRShvcCwg aW5zdCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgY2FzZSBrV29yZDMyQXRvbWljIyNv cCMjSW50ODogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgQVNTRU1CTEVfQVRP TUlDX0JJTk9QX0VYVChMbCwgU2MsIHRydWUsIDgsIGluc3QsIDMyKTsgICBcCisrICAgIGJyZWFr OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg Y2FzZSBrV29yZDMyQXRvbWljIyNvcCMjVWludDg6ICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgICAgQVNTRU1CTEVfQVRPTUlDX0JJTk9QX0VYVChMbCwgU2MsIGZhbHNlLCA4LCBpbnN0 LCAzMik7ICBcCisrICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgY2FzZSBrV29yZDMyQXRvbWljIyNvcCMjSW50MTY6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgQVNTRU1CTEVfQVRPTUlDX0JJTk9QX0VYVChM bCwgU2MsIHRydWUsIDE2LCBpbnN0LCAzMik7ICBcCisrICAgIGJyZWFrOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgY2FzZSBrV29yZDMyQXRv bWljIyNvcCMjVWludDE2OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgQVNTRU1C TEVfQVRPTUlDX0JJTk9QX0VYVChMbCwgU2MsIGZhbHNlLCAxNiwgaW5zdCwgMzIpOyBcCisrICAg IGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgY2FzZSBrV29yZDMyQXRvbWljIyNvcCMjV29yZDMyOiAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgQVNTRU1CTEVfQVRPTUlDX0JJTk9QKExsLCBTYywgaW5zdCk7ICAgICAg ICAgICAgICAgICAgICBcCisrICAgIGJyZWFrOworKyAgICAgIEFUT01JQ19CSU5PUF9DQVNFKEFk ZCwgQWRkMzIpCisrICAgICAgQVRPTUlDX0JJTk9QX0NBU0UoU3ViLCBTdWIzMikKKysgICAgICBB VE9NSUNfQklOT1BfQ0FTRShBbmQsIEFuZCkKKysgICAgICBBVE9NSUNfQklOT1BfQ0FTRShPciwg T3IpCisrICAgICAgQVRPTUlDX0JJTk9QX0NBU0UoWG9yLCBYb3IpCisrI3VuZGVmIEFUT01JQ19C SU5PUF9DQVNFCisrI2RlZmluZSBBVE9NSUNfQklOT1BfQ0FTRShvcCwgaW5zdCkgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pYyMjb3AjI1VpbnQ4 OiAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIEFTU0VNQkxFX0FUT01JQ19CSU5PUF9F WFQoTGxkLCBTY2QsIGZhbHNlLCA4LCBpbnN0LCA2NCk7ICBcCisrICAgIGJyZWFrOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICBjYXNlIGtS aXNjdldvcmQ2NEF0b21pYyMjb3AjI1VpbnQxNjogICAgICAgICAgICAgICAgICAgICAgICBcCisr ICAgIEFTU0VNQkxFX0FUT01JQ19CSU5PUF9FWFQoTGxkLCBTY2QsIGZhbHNlLCAxNiwgaW5zdCwg NjQpOyBcCisrICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pYyMjb3AjI1VpbnQzMjog ICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIEFTU0VNQkxFX0FUT01JQ19CSU5PUF9FWFQo TGxkLCBTY2QsIGZhbHNlLCAzMiwgaW5zdCwgNjQpOyBcCisrICAgIGJyZWFrOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICBjYXNlIGtSaXNj dldvcmQ2NEF0b21pYyMjb3AjI1VpbnQ2NDogICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg IEFTU0VNQkxFX0FUT01JQ19CSU5PUChMbGQsIFNjZCwgaW5zdCk7ICAgICAgICAgICAgICAgICAg ICBcCisrICAgIGJyZWFrOworKyAgICAgIEFUT01JQ19CSU5PUF9DQVNFKEFkZCwgQWRkNjQpCisr ICAgICAgQVRPTUlDX0JJTk9QX0NBU0UoU3ViLCBTdWI2NCkKKysgICAgICBBVE9NSUNfQklOT1Bf Q0FTRShBbmQsIEFuZCkKKysgICAgICBBVE9NSUNfQklOT1BfQ0FTRShPciwgT3IpCisrICAgICAg QVRPTUlDX0JJTk9QX0NBU0UoWG9yLCBYb3IpCisrI3VuZGVmIEFUT01JQ19CSU5PUF9DQVNFCisr ICAgIGNhc2Uga1Jpc2N2QXNzZXJ0RXF1YWw6CisrICAgICAgX18gQXNzZXJ0KGVxLCBzdGF0aWNf Y2FzdDxBYm9ydFJlYXNvbj4oaS5JbnB1dE9wZXJhbmQoMikuaW1tZWRpYXRlKCkpLAorKyAgICAg ICAgICAgICAgICBpLklucHV0UmVnaXN0ZXIoMCksIE9wZXJhbmQoaS5JbnB1dFJlZ2lzdGVyKDEp KSk7CisrICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5JTVBMRU1FTlRF RCgpOworKyAgfQorKyAgcmV0dXJuIGtTdWNjZXNzOworK30gIC8vIE5PTElOVChyZWFkYWJpbGl0 eS9mbl9zaXplKQorKworKyNkZWZpbmUgVU5TVVBQT1JURURfQ09ORChvcGNvZGUsIGNvbmRpdGlv bikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICBTdGRvdXRTdHJlYW17 fSA8PCAiVW5zdXBwb3J0ZWQgIiA8PCAjb3Bjb2RlIDw8ICIgY29uZGl0aW9uOiBcIiIgPDwgY29u ZGl0aW9uIFwKKysgICAgICAgICAgICAgICAgIDw8ICJcIiI7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVU5JTVBMRU1FTlRFRCgpOwor KworK3ZvaWQgQXNzZW1ibGVCcmFuY2hUb0xhYmVscyhDb2RlR2VuZXJhdG9yKiBnZW4sIFR1cmJv QXNzZW1ibGVyKiB0YXNtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0cnVjdGlv biogaW5zdHIsIEZsYWdzQ29uZGl0aW9uIGNvbmRpdGlvbiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGFiZWwqIHRsYWJlbCwgTGFiZWwqIGZsYWJlbCwgYm9vbCBmYWxsdGhydSkgewor KyN1bmRlZiBfXworKyNkZWZpbmUgX18gdGFzbS0+CisrICBSaXNjdk9wZXJhbmRDb252ZXJ0ZXIg aShnZW4sIGluc3RyKTsKKysKKysgIENvbmRpdGlvbiBjYyA9IGtOb0NvbmRpdGlvbjsKKysgIC8v IFJJU0MtViBkb2VzIG5vdCBoYXZlIGNvbmRpdGlvbiBjb2RlIGZsYWdzLCBzbyBjb21wYXJlIGFu ZCBicmFuY2ggYXJlCisrICAvLyBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSB0aGFuIG9uIHRoZSBv dGhlciBhcmNoJ3MuIFRoZSBjb21wYXJlIG9wZXJhdGlvbnMKKysgIC8vIGVtaXQgcmlzY3Y2NCBw c2V1ZG8taW5zdHJ1Y3Rpb25zLCB3aGljaCBhcmUgaGFuZGxlZCBoZXJlIGJ5IGJyYW5jaAorKyAg Ly8gaW5zdHJ1Y3Rpb25zIHRoYXQgZG8gdGhlIGFjdHVhbCBjb21wYXJpc29uLiBFc3NlbnRpYWwg dGhhdCB0aGUgaW5wdXQKKysgIC8vIHJlZ2lzdGVycyB0byBjb21wYXJlIHBzZXVkby1vcCBhcmUg bm90IG1vZGlmaWVkIGJlZm9yZSB0aGlzIGJyYW5jaCBvcCwgYXMKKysgIC8vIHRoZXkgYXJlIHRl c3RlZCBoZXJlLgorKworKyAgaWYgKGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdlRzdCkg eworKyAgICBjYyA9IEZsYWdzQ29uZGl0aW9uVG9Db25kaXRpb25Uc3QoY29uZGl0aW9uKTsKKysg ICAgX18gQnJhbmNoKHRsYWJlbCwgY2MsIGtTY3JhdGNoUmVnLCBPcGVyYW5kKHplcm9fcmVnKSk7 CisrICB9IGVsc2UgaWYgKGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdkFkZDY0IHx8Cisr ICAgICAgICAgICAgIGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdlN1YjY0KSB7CisrICAg IGNjID0gRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbk92Zihjb25kaXRpb24pOworKyAgICBfXyBT cmE2NChrU2NyYXRjaFJlZywgaS5PdXRwdXRSZWdpc3RlcigpLCAzMik7CisrICAgIF9fIFNyYTY0 KGtTY3JhdGNoUmVnMiwgaS5PdXRwdXRSZWdpc3RlcigpLCAzMSk7CisrICAgIF9fIEJyYW5jaCh0 bGFiZWwsIGNjLCBrU2NyYXRjaFJlZzIsIE9wZXJhbmQoa1NjcmF0Y2hSZWcpKTsKKysgIH0gZWxz ZSBpZiAoaW5zdHItPmFyY2hfb3Bjb2RlKCkgPT0ga1Jpc2N2QWRkT3ZmNjQgfHwKKysgICAgICAg ICAgICAgaW5zdHItPmFyY2hfb3Bjb2RlKCkgPT0ga1Jpc2N2U3ViT3ZmNjQpIHsKKysgICAgc3dp dGNoIChjb25kaXRpb24pIHsKKysgICAgICAvLyBPdmVyZmxvdyBvY2N1cnMgaWYgb3ZlcmZsb3cg cmVnaXN0ZXIgaXMgbmVnYXRpdmUKKysgICAgICBjYXNlIGtPdmVyZmxvdzoKKysgICAgICAgIF9f IEJyYW5jaCh0bGFiZWwsIGx0LCBrU2NyYXRjaFJlZywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAg ICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBrTm90T3ZlcmZsb3c6CisrICAgICAgICBfXyBCcmFu Y2godGxhYmVsLCBnZSwga1NjcmF0Y2hSZWcsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgICAg IGJyZWFrOworKyAgICAgIGRlZmF1bHQ6CisrICAgICAgICBVTlNVUFBPUlRFRF9DT05EKGluc3Ry LT5hcmNoX29wY29kZSgpLCBjb25kaXRpb24pOworKyAgICAgICAgYnJlYWs7CisrICAgIH0KKysg IH0gZWxzZSBpZiAoaW5zdHItPmFyY2hfb3Bjb2RlKCkgPT0ga1Jpc2N2TXVsT3ZmMzIpIHsKKysg ICAgLy8gT3ZlcmZsb3cgb2NjdXJzIGlmIG92ZXJmbG93IHJlZ2lzdGVyIGlzIG5vdCB6ZXJvCisr ICAgIHN3aXRjaCAoY29uZGl0aW9uKSB7CisrICAgICAgY2FzZSBrT3ZlcmZsb3c6CisrICAgICAg ICBfXyBCcmFuY2godGxhYmVsLCBuZSwga1NjcmF0Y2hSZWcsIE9wZXJhbmQoemVyb19yZWcpKTsK KysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2Uga05vdE92ZXJmbG93OgorKyAgICAgICAgX18g QnJhbmNoKHRsYWJlbCwgZXEsIGtTY3JhdGNoUmVnLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAg ICAgICBicmVhazsKKysgICAgICBkZWZhdWx0OgorKyAgICAgICAgVU5TVVBQT1JURURfQ09ORChr UmlzY3ZNdWxPdmYzMiwgY29uZGl0aW9uKTsKKysgICAgICAgIGJyZWFrOworKyAgICB9CisrICB9 IGVsc2UgaWYgKGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdkNtcCkgeworKyAgICBjYyA9 IEZsYWdzQ29uZGl0aW9uVG9Db25kaXRpb25DbXAoY29uZGl0aW9uKTsKKysgICAgX18gQnJhbmNo KHRsYWJlbCwgY2MsIGkuSW5wdXRSZWdpc3RlcigwKSwgaS5JbnB1dE9wZXJhbmQoMSkpOworKyAg fSBlbHNlIGlmIChpbnN0ci0+YXJjaF9vcGNvZGUoKSA9PSBrQXJjaFN0YWNrUG9pbnRlckdyZWF0 ZXJUaGFuKSB7CisrICAgIGNjID0gRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcChjb25kaXRp b24pOworKyAgICBSZWdpc3RlciBsaHNfcmVnaXN0ZXIgPSBzcDsKKysgICAgdWludDMyX3Qgb2Zm c2V0OworKyAgICBpZiAoZ2VuLT5TaG91bGRBcHBseU9mZnNldFRvU3RhY2tDaGVjayhpbnN0ciwg Jm9mZnNldCkpIHsKKysgICAgICBsaHNfcmVnaXN0ZXIgPSBpLlRlbXBSZWdpc3RlcigwKTsKKysg ICAgICBfXyBTdWI2NChsaHNfcmVnaXN0ZXIsIHNwLCBvZmZzZXQpOworKyAgICB9CisrICAgIF9f IEJyYW5jaCh0bGFiZWwsIGNjLCBsaHNfcmVnaXN0ZXIsIE9wZXJhbmQoaS5JbnB1dFJlZ2lzdGVy KDApKSk7CisrICB9IGVsc2UgaWYgKGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdkNtcFMg fHwKKysgICAgICAgICAgICAgaW5zdHItPmFyY2hfb3Bjb2RlKCkgPT0ga1Jpc2N2Q21wRCkgewor KyAgICBib29sIHByZWRpY2F0ZTsKKysgICAgRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcEZQ VSgmcHJlZGljYXRlLCBjb25kaXRpb24pOworKyAgICAvLyBmbG9hdGluZy1wb2ludCBjb21wYXJl IHJlc3VsdCBpcyBzZXQgaW4ga1NjcmF0Y2hSZWcKKysgICAgaWYgKHByZWRpY2F0ZSkgeworKyAg ICAgIF9fIEJyYW5jaFRydWVGKGtTY3JhdGNoUmVnLCB0bGFiZWwpOworKyAgICB9IGVsc2Ugewor KyAgICAgIF9fIEJyYW5jaEZhbHNlRihrU2NyYXRjaFJlZywgdGxhYmVsKTsKKysgICAgfQorKyAg fSBlbHNlIHsKKysgICAgUHJpbnRGKCJBc3NlbWJsZUFyY2hCcmFuY2ggVW5pbXBsZW1lbnRlZCBh cmNoX29wY29kZTogJWRcbiIsCisrICAgICAgICAgICBpbnN0ci0+YXJjaF9vcGNvZGUoKSk7Cisr ICAgIFVOSU1QTEVNRU5URUQoKTsKKysgIH0KKysgIGlmICghZmFsbHRocnUpIF9fIEJyYW5jaChm bGFiZWwpOyAgLy8gbm8gZmFsbHRocnUgdG8gZmxhYmVsLgorKyN1bmRlZiBfXworKyNkZWZpbmUg X18gdGFzbSgpLT4KKyt9CisrCisrLy8gQXNzZW1ibGVzIGJyYW5jaGVzIGFmdGVyIGFuIGluc3Ry dWN0aW9uLgorK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVBcmNoQnJhbmNoKEluc3RydWN0 aW9uKiBpbnN0ciwgQnJhbmNoSW5mbyogYnJhbmNoKSB7CisrICBMYWJlbCogdGxhYmVsID0gYnJh bmNoLT50cnVlX2xhYmVsOworKyAgTGFiZWwqIGZsYWJlbCA9IGJyYW5jaC0+ZmFsc2VfbGFiZWw7 CisrCisrICBBc3NlbWJsZUJyYW5jaFRvTGFiZWxzKHRoaXMsIHRhc20oKSwgaW5zdHIsIGJyYW5j aC0+Y29uZGl0aW9uLCB0bGFiZWwsIGZsYWJlbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg YnJhbmNoLT5mYWxsdGhydSk7CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVC cmFuY2hQb2lzb25pbmcoRmxhZ3NDb25kaXRpb24gY29uZGl0aW9uLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICAv LyBUT0RPKGphcmluKSBIYW5kbGUgZmxvYXQgY29tcGFyaXNvbnMgKGtVbm9yZGVyZWRbTm90XUVx dWFsKS4KKysgIGlmIChjb25kaXRpb24gPT0ga1Vub3JkZXJlZEVxdWFsIHx8IGNvbmRpdGlvbiA9 PSBrVW5vcmRlcmVkTm90RXF1YWwpIHsKKysgICAgcmV0dXJuOworKyAgfQorKworKyAgUmlzY3ZP cGVyYW5kQ29udmVydGVyIGkodGhpcywgaW5zdHIpOworKyAgY29uZGl0aW9uID0gTmVnYXRlRmxh Z3NDb25kaXRpb24oY29uZGl0aW9uKTsKKysKKysgIHN3aXRjaCAoaW5zdHItPmFyY2hfb3Bjb2Rl KCkpIHsKKysgICAgY2FzZSBrUmlzY3ZDbXA6IHsKKysgICAgICBfXyBDb21wYXJlSShrU2NyYXRj aFJlZywgaS5JbnB1dFJlZ2lzdGVyKDApLCBpLklucHV0T3BlcmFuZCgxKSwKKysgICAgICAgICAg ICAgICAgICBGbGFnc0NvbmRpdGlvblRvQ29uZGl0aW9uQ21wKGNvbmRpdGlvbikpOworKyAgICAg IF9fIExvYWRaZXJvSWZDb25kaXRpb25Ob3RaZXJvKGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVy LCBrU2NyYXRjaFJlZyk7CisrICAgIH0KKysgICAgICByZXR1cm47CisrICAgIGNhc2Uga1Jpc2N2 VHN0OiB7CisrICAgICAgc3dpdGNoIChjb25kaXRpb24pIHsKKysgICAgICAgIGNhc2Uga0VxdWFs OgorKyAgICAgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uWmVybyhrU3BlY3VsYXRpb25Qb2lz b25SZWdpc3Rlciwga1NjcmF0Y2hSZWcpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNh c2Uga05vdEVxdWFsOgorKyAgICAgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uTm90WmVybyhr U3BlY3VsYXRpb25Qb2lzb25SZWdpc3RlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAga1NjcmF0Y2hSZWcpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGRl ZmF1bHQ6CisrICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgICAgfQorKyAgICB9CisrICAg ICAgcmV0dXJuOworKyAgICBjYXNlIGtSaXNjdkFkZDY0OgorKyAgICBjYXNlIGtSaXNjdlN1YjY0 OiB7CisrICAgICAgLy8gQ2hlY2sgZm9yIG92ZXJmbG93IGNyZWF0ZXMgMSBvciAwIGZvciByZXN1 bHQuCisrICAgICAgX18gU3JsNjQoa1NjcmF0Y2hSZWcsIGkuT3V0cHV0UmVnaXN0ZXIoKSwgNjMp OworKyAgICAgIF9fIFNybDMyKGtTY3JhdGNoUmVnMiwgaS5PdXRwdXRSZWdpc3RlcigpLCAzMSk7 CisrICAgICAgX18gWG9yKGtTY3JhdGNoUmVnMiwga1NjcmF0Y2hSZWcsIGtTY3JhdGNoUmVnMik7 CisrICAgICAgc3dpdGNoIChjb25kaXRpb24pIHsKKysgICAgICAgIGNhc2Uga092ZXJmbG93Ogor KyAgICAgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uTm90WmVybyhrU3BlY3VsYXRpb25Qb2lz b25SZWdpc3RlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Nj cmF0Y2hSZWcyKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGtOb3RPdmVyZmxv dzoKKysgICAgICAgICAgX18gTG9hZFplcm9JZkNvbmRpdGlvblplcm8oa1NwZWN1bGF0aW9uUG9p c29uUmVnaXN0ZXIsIGtTY3JhdGNoUmVnMik7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAg ZGVmYXVsdDoKKysgICAgICAgICAgVU5TVVBQT1JURURfQ09ORChpbnN0ci0+YXJjaF9vcGNvZGUo KSwgY29uZGl0aW9uKTsKKysgICAgICB9CisrICAgIH0KKysgICAgICByZXR1cm47CisrICAgIGNh c2Uga1Jpc2N2QWRkT3ZmNjQ6CisrICAgIGNhc2Uga1Jpc2N2U3ViT3ZmNjQ6IHsKKysgICAgICAv LyBPdmVyZmxvdyBvY2N1cnMgaWYgb3ZlcmZsb3cgcmVnaXN0ZXIgaXMgbmVnYXRpdmUKKysgICAg ICBfXyBTbHQoa1NjcmF0Y2hSZWcyLCBrU2NyYXRjaFJlZywgemVyb19yZWcpOworKyAgICAgIHN3 aXRjaCAoY29uZGl0aW9uKSB7CisrICAgICAgICBjYXNlIGtPdmVyZmxvdzoKKysgICAgICAgICAg X18gTG9hZFplcm9JZkNvbmRpdGlvbk5vdFplcm8oa1NwZWN1bGF0aW9uUG9pc29uUmVnaXN0ZXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtTY3JhdGNoUmVnMik7 CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBrTm90T3ZlcmZsb3c6CisrICAgICAg ICAgIF9fIExvYWRaZXJvSWZDb25kaXRpb25aZXJvKGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVy LCBrU2NyYXRjaFJlZzIpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGRlZmF1bHQ6Cisr ICAgICAgICAgIFVOU1VQUE9SVEVEX0NPTkQoaW5zdHItPmFyY2hfb3Bjb2RlKCksIGNvbmRpdGlv bik7CisrICAgICAgfQorKyAgICB9CisrICAgICAgcmV0dXJuOworKyAgICBjYXNlIGtSaXNjdk11 bE92ZjMyOiB7CisrICAgICAgLy8gT3ZlcmZsb3cgb2NjdXJzIGlmIG92ZXJmbG93IHJlZ2lzdGVy IGlzIG5vdCB6ZXJvCisrICAgICAgc3dpdGNoIChjb25kaXRpb24pIHsKKysgICAgICAgIGNhc2Ug a092ZXJmbG93OgorKyAgICAgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uTm90WmVybyhrU3Bl Y3VsYXRpb25Qb2lzb25SZWdpc3RlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAga1NjcmF0Y2hSZWcpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2Ug a05vdE92ZXJmbG93OgorKyAgICAgICAgICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uWmVybyhrU3Bl Y3VsYXRpb25Qb2lzb25SZWdpc3Rlciwga1NjcmF0Y2hSZWcpOworKyAgICAgICAgICBicmVhazsK KysgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgIFVOU1VQUE9SVEVEX0NPTkQoaW5zdHItPmFy Y2hfb3Bjb2RlKCksIGNvbmRpdGlvbik7CisrICAgICAgfQorKyAgICB9CisrICAgICAgcmV0dXJu OworKyAgICBjYXNlIGtSaXNjdkNtcFM6CisrICAgIGNhc2Uga1Jpc2N2Q21wRDogeworKyAgICAg IGJvb2wgcHJlZGljYXRlOworKyAgICAgIEZsYWdzQ29uZGl0aW9uVG9Db25kaXRpb25DbXBGUFUo JnByZWRpY2F0ZSwgY29uZGl0aW9uKTsKKysgICAgICBpZiAocHJlZGljYXRlKSB7CisrICAgICAg ICBfXyBMb2FkWmVyb0lmQ29uZGl0aW9uTm90WmVybyhrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rl ciwga1NjcmF0Y2hSZWcpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBfXyBMb2FkWmVyb0lm Q29uZGl0aW9uWmVybyhrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rlciwga1NjcmF0Y2hSZWcpOwor KyAgICAgIH0KKysgICAgfQorKyAgICAgIHJldHVybjsKKysgICAgZGVmYXVsdDoKKysgICAgICBV TlJFQUNIQUJMRSgpOworKyAgfQorK30KKysKKysjdW5kZWYgVU5TVVBQT1JURURfQ09ORAorKwor K3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVBcmNoRGVvcHRCcmFuY2goSW5zdHJ1Y3Rpb24q IGluc3RyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJh bmNoSW5mbyogYnJhbmNoKSB7CisrICBBc3NlbWJsZUFyY2hCcmFuY2goaW5zdHIsIGJyYW5jaCk7 CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVBcmNoSnVtcChScG9OdW1iZXIg dGFyZ2V0KSB7CisrICBpZiAoIUlzTmV4dEluQXNzZW1ibHlPcmRlcih0YXJnZXQpKSBfXyBCcmFu Y2goR2V0TGFiZWwodGFyZ2V0KSk7CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1i bGVBcmNoVHJhcChJbnN0cnVjdGlvbiogaW5zdHIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZsYWdzQ29uZGl0aW9uIGNvbmRpdGlvbikgeworKyAgY2xhc3MgT3V0T2ZM aW5lVHJhcCBmaW5hbCA6IHB1YmxpYyBPdXRPZkxpbmVDb2RlIHsKKysgICBwdWJsaWM6CisrICAg IE91dE9mTGluZVRyYXAoQ29kZUdlbmVyYXRvciogZ2VuLCBJbnN0cnVjdGlvbiogaW5zdHIpCisr ICAgICAgICA6IE91dE9mTGluZUNvZGUoZ2VuKSwgaW5zdHJfKGluc3RyKSwgZ2VuXyhnZW4pIHt9 CisrICAgIHZvaWQgR2VuZXJhdGUoKSBmaW5hbCB7CisrICAgICAgUmlzY3ZPcGVyYW5kQ29udmVy dGVyIGkoZ2VuXywgaW5zdHJfKTsKKysgICAgICBUcmFwSWQgdHJhcF9pZCA9CisrICAgICAgICAg IHN0YXRpY19jYXN0PFRyYXBJZD4oaS5JbnB1dEludDMyKGluc3RyXy0+SW5wdXRDb3VudCgpIC0g MSkpOworKyAgICAgIEdlbmVyYXRlQ2FsbFRvVHJhcCh0cmFwX2lkKTsKKysgICAgfQorKworKyAg IHByaXZhdGU6CisrICAgIHZvaWQgR2VuZXJhdGVDYWxsVG9UcmFwKFRyYXBJZCB0cmFwX2lkKSB7 CisrICAgICAgaWYgKHRyYXBfaWQgPT0gVHJhcElkOjprSW52YWxpZCkgeworKyAgICAgICAgLy8g V2UgY2Fubm90IHRlc3QgY2FsbHMgdG8gdGhlIHJ1bnRpbWUgaW4gY2N0ZXN0L3Rlc3QtcnVuLXdh c20uCisrICAgICAgICAvLyBUaGVyZWZvcmUgd2UgZW1pdCBhIGNhbGwgdG8gQyBoZXJlIGluc3Rl YWQgb2YgYSBjYWxsIHRvIHRoZSBydW50aW1lLgorKyAgICAgICAgLy8gV2UgdXNlIHRoZSBjb250 ZXh0IHJlZ2lzdGVyIGFzIHRoZSBzY3JhdGNoIHJlZ2lzdGVyLCBiZWNhdXNlIHdlIGRvCisrICAg ICAgICAvLyBub3QgaGF2ZSBhIGNvbnRleHQgaGVyZS4KKysgICAgICAgIF9fIFByZXBhcmVDYWxs Q0Z1bmN0aW9uKDAsIDAsIGNwKTsKKysgICAgICAgIF9fIENhbGxDRnVuY3Rpb24oCisrICAgICAg ICAgICAgRXh0ZXJuYWxSZWZlcmVuY2U6Ondhc21fY2FsbF90cmFwX2NhbGxiYWNrX2Zvcl90ZXN0 aW5nKCksIDApOworKyAgICAgICAgX18gTGVhdmVGcmFtZShTdGFja0ZyYW1lOjpXQVNNKTsKKysg ICAgICAgIGF1dG8gY2FsbF9kZXNjcmlwdG9yID0gZ2VuXy0+bGlua2FnZSgpLT5HZXRJbmNvbWlu Z0Rlc2NyaXB0b3IoKTsKKysgICAgICAgIGludCBwb3BfY291bnQgPQorKyAgICAgICAgICAgIHN0 YXRpY19jYXN0PGludD4oY2FsbF9kZXNjcmlwdG9yLT5TdGFja1BhcmFtZXRlckNvdW50KCkpOwor KyAgICAgICAgcG9wX2NvdW50ICs9IChwb3BfY291bnQgJiAxKTsgIC8vIGFsaWduCisrICAgICAg ICBfXyBEcm9wKHBvcF9jb3VudCk7CisrICAgICAgICBfXyBSZXQoKTsKKysgICAgICB9IGVsc2Ug eworKyAgICAgICAgZ2VuXy0+QXNzZW1ibGVTb3VyY2VQb3NpdGlvbihpbnN0cl8pOworKyAgICAg ICAgLy8gQSBkaXJlY3QgY2FsbCB0byBhIHdhc20gcnVudGltZSBzdHViIGRlZmluZWQgaW4gdGhp cyBtb2R1bGUuCisrICAgICAgICAvLyBKdXN0IGVuY29kZSB0aGUgc3R1YiBpbmRleC4gVGhpcyB3 aWxsIGJlIHBhdGNoZWQgd2hlbiB0aGUgY29kZQorKyAgICAgICAgLy8gaXMgYWRkZWQgdG8gdGhl IG5hdGl2ZSBtb2R1bGUgYW5kIGNvcGllZCBpbnRvIHdhc20gY29kZSBzcGFjZS4KKysgICAgICAg IF9fIENhbGwoc3RhdGljX2Nhc3Q8QWRkcmVzcz4odHJhcF9pZCksIFJlbG9jSW5mbzo6V0FTTV9T VFVCX0NBTEwpOworKyAgICAgICAgUmVmZXJlbmNlTWFwKiByZWZlcmVuY2VfbWFwID0KKysgICAg ICAgICAgICBnZW5fLT56b25lKCktPk5ldzxSZWZlcmVuY2VNYXA+KGdlbl8tPnpvbmUoKSk7Cisr ICAgICAgICBnZW5fLT5SZWNvcmRTYWZlcG9pbnQocmVmZXJlbmNlX21hcCwgU2FmZXBvaW50Ojpr Tm9MYXp5RGVvcHQpOworKyAgICAgICAgaWYgKEZMQUdfZGVidWdfY29kZSkgeworKyAgICAgICAg ICBfXyBzdG9wKCk7CisrICAgICAgICB9CisrICAgICAgfQorKyAgICB9CisrICAgIEluc3RydWN0 aW9uKiBpbnN0cl87CisrICAgIENvZGVHZW5lcmF0b3IqIGdlbl87CisrICB9OworKyAgYXV0byBv b2wgPSB6b25lKCktPk5ldzxPdXRPZkxpbmVUcmFwPih0aGlzLCBpbnN0cik7CisrICBMYWJlbCog dGxhYmVsID0gb29sLT5lbnRyeSgpOworKyAgQXNzZW1ibGVCcmFuY2hUb0xhYmVscyh0aGlzLCB0 YXNtKCksIGluc3RyLCBjb25kaXRpb24sIHRsYWJlbCwgbnVsbHB0ciwgdHJ1ZSk7CisrfQorKwor Ky8vIEFzc2VtYmxlcyBib29sZWFuIG1hdGVyaWFsaXphdGlvbnMgYWZ0ZXIgYW4gaW5zdHJ1Y3Rp b24uCisrdm9pZCBDb2RlR2VuZXJhdG9yOjpBc3NlbWJsZUFyY2hCb29sZWFuKEluc3RydWN0aW9u KiBpbnN0ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3ND b25kaXRpb24gY29uZGl0aW9uKSB7CisrICBSaXNjdk9wZXJhbmRDb252ZXJ0ZXIgaSh0aGlzLCBp bnN0cik7CisrCisrICAvLyBNYXRlcmlhbGl6ZSBhIGZ1bGwgMzItYml0IDEgb3IgMCB2YWx1ZS4g VGhlIHJlc3VsdCByZWdpc3RlciBpcyBhbHdheXMgdGhlCisrICAvLyBsYXN0IG91dHB1dCBvZiB0 aGUgaW5zdHJ1Y3Rpb24uCisrICBEQ0hFQ0tfTkUoMHUsIGluc3RyLT5PdXRwdXRDb3VudCgpKTsK KysgIFJlZ2lzdGVyIHJlc3VsdCA9IGkuT3V0cHV0UmVnaXN0ZXIoaW5zdHItPk91dHB1dENvdW50 KCkgLSAxKTsKKysgIENvbmRpdGlvbiBjYyA9IGtOb0NvbmRpdGlvbjsKKysgIC8vIFJJU0MtViBk b2VzIG5vdCBoYXZlIGNvbmRpdGlvbiBjb2RlIGZsYWdzLCBzbyBjb21wYXJlIGFuZCBicmFuY2gg YXJlCisrICAvLyBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSB0aGFuIG9uIHRoZSBvdGhlciBhcmNo J3MuIFRoZSBjb21wYXJlIG9wZXJhdGlvbnMKKysgIC8vIGVtaXQgcmlzY3Y2NCBwc2V1ZG8taW5z dHJ1Y3Rpb25zLCB3aGljaCBhcmUgY2hlY2tlZCBhbmQgaGFuZGxlZCBoZXJlLgorKworKyAgaWYg KGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdlRzdCkgeworKyAgICBjYyA9IEZsYWdzQ29u ZGl0aW9uVG9Db25kaXRpb25Uc3QoY29uZGl0aW9uKTsKKysgICAgaWYgKGNjID09IGVxKSB7Cisr ICAgICAgX18gU2x0dShyZXN1bHQsIGtTY3JhdGNoUmVnLCAxKTsKKysgICAgfSBlbHNlIHsKKysg ICAgICBfXyBTbHR1KHJlc3VsdCwgemVyb19yZWcsIGtTY3JhdGNoUmVnKTsKKysgICAgfQorKyAg ICByZXR1cm47CisrICB9IGVsc2UgaWYgKGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdkFk ZDY0IHx8CisrICAgICAgICAgICAgIGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdlN1YjY0 KSB7CisrICAgIGNjID0gRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbk92Zihjb25kaXRpb24pOwor KyAgICAvLyBDaGVjayBmb3Igb3ZlcmZsb3cgY3JlYXRlcyAxIG9yIDAgZm9yIHJlc3VsdC4KKysg ICAgX18gU3JsNjQoa1NjcmF0Y2hSZWcsIGkuT3V0cHV0UmVnaXN0ZXIoKSwgNjMpOworKyAgICBf XyBTcmwzMihrU2NyYXRjaFJlZzIsIGkuT3V0cHV0UmVnaXN0ZXIoKSwgMzEpOworKyAgICBfXyBY b3IocmVzdWx0LCBrU2NyYXRjaFJlZywga1NjcmF0Y2hSZWcyKTsKKysgICAgaWYgKGNjID09IGVx KSAgLy8gVG9nZ2xlIHJlc3VsdCBmb3Igbm90IG92ZXJmbG93LgorKyAgICAgIF9fIFhvcihyZXN1 bHQsIHJlc3VsdCwgMSk7CisrICAgIHJldHVybjsKKysgIH0gZWxzZSBpZiAoaW5zdHItPmFyY2hf b3Bjb2RlKCkgPT0ga1Jpc2N2QWRkT3ZmNjQgfHwKKysgICAgICAgICAgICAgaW5zdHItPmFyY2hf b3Bjb2RlKCkgPT0ga1Jpc2N2U3ViT3ZmNjQpIHsKKysgICAgLy8gT3ZlcmZsb3cgb2NjdXJzIGlm IG92ZXJmbG93IHJlZ2lzdGVyIGlzIG5lZ2F0aXZlCisrICAgIF9fIFNsdChyZXN1bHQsIGtTY3Jh dGNoUmVnLCB6ZXJvX3JlZyk7CisrICB9IGVsc2UgaWYgKGluc3RyLT5hcmNoX29wY29kZSgpID09 IGtSaXNjdk11bE92ZjMyKSB7CisrICAgIC8vIE92ZXJmbG93IG9jY3VycyBpZiBvdmVyZmxvdyBy ZWdpc3RlciBpcyBub3QgemVybworKyAgICBfXyBTZ3R1KHJlc3VsdCwga1NjcmF0Y2hSZWcsIHpl cm9fcmVnKTsKKysgIH0gZWxzZSBpZiAoaW5zdHItPmFyY2hfb3Bjb2RlKCkgPT0ga1Jpc2N2Q21w KSB7CisrICAgIGNjID0gRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcChjb25kaXRpb24pOwor KyAgICBzd2l0Y2ggKGNjKSB7CisrICAgICAgY2FzZSBlcToKKysgICAgICBjYXNlIG5lOiB7Cisr ICAgICAgICBSZWdpc3RlciBsZWZ0ID0gaS5JbnB1dFJlZ2lzdGVyKDApOworKyAgICAgICAgT3Bl cmFuZCByaWdodCA9IGkuSW5wdXRPcGVyYW5kKDEpOworKyAgICAgICAgaWYgKGluc3RyLT5JbnB1 dEF0KDEpLT5Jc0ltbWVkaWF0ZSgpKSB7CisrICAgICAgICAgIGlmIChpc19pbnQxMigtcmlnaHQu aW1tZWRpYXRlKCkpKSB7CisrICAgICAgICAgICAgaWYgKHJpZ2h0LmltbWVkaWF0ZSgpID09IDAp IHsKKysgICAgICAgICAgICAgIGlmIChjYyA9PSBlcSkgeworKyAgICAgICAgICAgICAgICBfXyBT bHR1KHJlc3VsdCwgbGVmdCwgMSk7CisrICAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAg ICAgICAgICBfXyBTbHR1KHJlc3VsdCwgemVyb19yZWcsIGxlZnQpOworKyAgICAgICAgICAgICAg fQorKyAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICBfXyBBZGQ2NChyZXN1bHQs IGxlZnQsIE9wZXJhbmQoLXJpZ2h0LmltbWVkaWF0ZSgpKSk7CisrICAgICAgICAgICAgICBpZiAo Y2MgPT0gZXEpIHsKKysgICAgICAgICAgICAgICAgX18gU2x0dShyZXN1bHQsIHJlc3VsdCwgMSk7 CisrICAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICBfXyBTbHR1KHJlc3Vs dCwgemVyb19yZWcsIHJlc3VsdCk7CisrICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgfQor KyAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIGlmIChpc191aW50MTIocmlnaHQuaW1t ZWRpYXRlKCkpKSB7CisrICAgICAgICAgICAgICBfXyBYb3IocmVzdWx0LCBsZWZ0LCByaWdodCk7 CisrICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAgIF9fIGxpKGtTY3JhdGNoUmVn LCByaWdodCk7CisrICAgICAgICAgICAgICBfXyBYb3IocmVzdWx0LCBsZWZ0LCBrU2NyYXRjaFJl Zyk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGlmIChjYyA9PSBlcSkgeworKyAgICAg ICAgICAgICAgX18gU2x0dShyZXN1bHQsIHJlc3VsdCwgMSk7CisrICAgICAgICAgICAgfSBlbHNl IHsKKysgICAgICAgICAgICAgIF9fIFNsdHUocmVzdWx0LCB6ZXJvX3JlZywgcmVzdWx0KTsKKysg ICAgICAgICAgICB9CisrICAgICAgICAgIH0KKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAg IF9fIFhvcihyZXN1bHQsIGxlZnQsIHJpZ2h0KTsKKysgICAgICAgICAgaWYgKGNjID09IGVxKSB7 CisrICAgICAgICAgICAgX18gU2x0dShyZXN1bHQsIHJlc3VsdCwgMSk7CisrICAgICAgICAgIH0g ZWxzZSB7CisrICAgICAgICAgICAgX18gU2x0dShyZXN1bHQsIHplcm9fcmVnLCByZXN1bHQpOwor KyAgICAgICAgICB9CisrICAgICAgICB9CisrICAgICAgfSBicmVhazsKKysgICAgICBjYXNlIGx0 OgorKyAgICAgIGNhc2UgZ2U6IHsKKysgICAgICAgIFJlZ2lzdGVyIGxlZnQgPSBpLklucHV0UmVn aXN0ZXIoMCk7CisrICAgICAgICBPcGVyYW5kIHJpZ2h0ID0gaS5JbnB1dE9wZXJhbmQoMSk7Cisr ICAgICAgICBfXyBTbHQocmVzdWx0LCBsZWZ0LCByaWdodCk7CisrICAgICAgICBpZiAoY2MgPT0g Z2UpIHsKKysgICAgICAgICAgX18gWG9yKHJlc3VsdCwgcmVzdWx0LCAxKTsKKysgICAgICAgIH0K KysgICAgICB9IGJyZWFrOworKyAgICAgIGNhc2UgZ3Q6CisrICAgICAgY2FzZSBsZTogeworKyAg ICAgICAgUmVnaXN0ZXIgbGVmdCA9IGkuSW5wdXRSZWdpc3RlcigxKTsKKysgICAgICAgIE9wZXJh bmQgcmlnaHQgPSBpLklucHV0T3BlcmFuZCgwKTsKKysgICAgICAgIF9fIFNsdChyZXN1bHQsIGxl ZnQsIHJpZ2h0KTsKKysgICAgICAgIGlmIChjYyA9PSBsZSkgeworKyAgICAgICAgICBfXyBYb3Io cmVzdWx0LCByZXN1bHQsIDEpOworKyAgICAgICAgfQorKyAgICAgIH0gYnJlYWs7CisrICAgICAg Y2FzZSBVbGVzczoKKysgICAgICBjYXNlIFVncmVhdGVyX2VxdWFsOiB7CisrICAgICAgICBSZWdp c3RlciBsZWZ0ID0gaS5JbnB1dFJlZ2lzdGVyKDApOworKyAgICAgICAgT3BlcmFuZCByaWdodCA9 IGkuSW5wdXRPcGVyYW5kKDEpOworKyAgICAgICAgX18gU2x0dShyZXN1bHQsIGxlZnQsIHJpZ2h0 KTsKKysgICAgICAgIGlmIChjYyA9PSBVZ3JlYXRlcl9lcXVhbCkgeworKyAgICAgICAgICBfXyBY b3IocmVzdWx0LCByZXN1bHQsIDEpOworKyAgICAgICAgfQorKyAgICAgIH0gYnJlYWs7CisrICAg ICAgY2FzZSBVZ3JlYXRlcjoKKysgICAgICBjYXNlIFVsZXNzX2VxdWFsOiB7CisrICAgICAgICBS ZWdpc3RlciBsZWZ0ID0gaS5JbnB1dFJlZ2lzdGVyKDEpOworKyAgICAgICAgT3BlcmFuZCByaWdo dCA9IGkuSW5wdXRPcGVyYW5kKDApOworKyAgICAgICAgX18gU2x0dShyZXN1bHQsIGxlZnQsIHJp Z2h0KTsKKysgICAgICAgIGlmIChjYyA9PSBVbGVzc19lcXVhbCkgeworKyAgICAgICAgICBfXyBY b3IocmVzdWx0LCByZXN1bHQsIDEpOworKyAgICAgICAgfQorKyAgICAgIH0gYnJlYWs7CisrICAg ICAgZGVmYXVsdDoKKysgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIH0KKysgICAgcmV0dXJu OworKyAgfSBlbHNlIGlmIChpbnN0ci0+YXJjaF9vcGNvZGUoKSA9PSBrUmlzY3ZDbXBEIHx8Cisr ICAgICAgICAgICAgIGluc3RyLT5hcmNoX29wY29kZSgpID09IGtSaXNjdkNtcFMpIHsKKysgICAg RlBVUmVnaXN0ZXIgbGVmdCA9IGkuSW5wdXRPclplcm9Eb3VibGVSZWdpc3RlcigwKTsKKysgICAg RlBVUmVnaXN0ZXIgcmlnaHQgPSBpLklucHV0T3JaZXJvRG91YmxlUmVnaXN0ZXIoMSk7CisrICAg IGlmICgoaW5zdHItPmFyY2hfb3Bjb2RlKCkgPT0ga1Jpc2N2Q21wRCkgJiYKKysgICAgICAgIChs ZWZ0ID09IGtEb3VibGVSZWdaZXJvIHx8IHJpZ2h0ID09IGtEb3VibGVSZWdaZXJvKSAmJgorKyAg ICAgICAgIV9fIElzRG91YmxlWmVyb1JlZ1NldCgpKSB7CisrICAgICAgX18gTG9hZEZQUkltbWVk aWF0ZShrRG91YmxlUmVnWmVybywgMC4wKTsKKysgICAgfSBlbHNlIGlmICgoaW5zdHItPmFyY2hf b3Bjb2RlKCkgPT0ga1Jpc2N2Q21wUykgJiYKKysgICAgICAgICAgICAgICAobGVmdCA9PSBrRG91 YmxlUmVnWmVybyB8fCByaWdodCA9PSBrRG91YmxlUmVnWmVybykgJiYKKysgICAgICAgICAgICAg ICAhX18gSXNTaW5nbGVaZXJvUmVnU2V0KCkpIHsKKysgICAgICBfXyBMb2FkRlBSSW1tZWRpYXRl KGtEb3VibGVSZWdaZXJvLCAwLjBmKTsKKysgICAgfQorKyAgICBib29sIHByZWRpY2F0ZTsKKysg ICAgRmxhZ3NDb25kaXRpb25Ub0NvbmRpdGlvbkNtcEZQVSgmcHJlZGljYXRlLCBjb25kaXRpb24p OworKyAgICAvLyBSSVNDViBjb21wYXJlIHJldHVybnMgMCBvciAxLCBkbyBub3RoaW5nIHdoZW4g cHJlZGljYXRlOyBvdGhlcndpc2UKKysgICAgLy8gdG9nZ2xlIGtTY3JhdGNoUmVnIChpLmUuLCAw IC0+IDEsIDEgLT4gMCkKKysgICAgaWYgKHByZWRpY2F0ZSkgeworKyAgICAgIF9fIE1vdmUocmVz dWx0LCBrU2NyYXRjaFJlZyk7CisrICAgIH0gZWxzZSB7CisrICAgICAgX18gWG9yKHJlc3VsdCwg a1NjcmF0Y2hSZWcsIDEpOworKyAgICB9CisrICAgIHJldHVybjsKKysgIH0gZWxzZSB7CisrICAg IFByaW50RigiQXNzZW1ibGVBcmNoQnJhbmNoIFVuaW1wbGVtZW50ZWQgYXJjaF9vcGNvZGUgaXMg OiAlZFxuIiwKKysgICAgICAgICAgIGluc3RyLT5hcmNoX29wY29kZSgpKTsKKysgICAgVFJBQ0Vf VU5JTVBMKCk7CisrICAgIFVOSU1QTEVNRU5URUQoKTsKKysgIH0KKyt9CisrCisrdm9pZCBDb2Rl R2VuZXJhdG9yOjpBc3NlbWJsZUFyY2hCaW5hcnlTZWFyY2hTd2l0Y2goSW5zdHJ1Y3Rpb24qIGlu c3RyKSB7CisrICBSaXNjdk9wZXJhbmRDb252ZXJ0ZXIgaSh0aGlzLCBpbnN0cik7CisrICBSZWdp c3RlciBpbnB1dCA9IGkuSW5wdXRSZWdpc3RlcigwKTsKKysgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFp cjxpbnQzMl90LCBMYWJlbCo+PiBjYXNlczsKKysgIGZvciAoc2l6ZV90IGluZGV4ID0gMjsgaW5k ZXggPCBpbnN0ci0+SW5wdXRDb3VudCgpOyBpbmRleCArPSAyKSB7CisrICAgIGNhc2VzLnB1c2hf YmFjayh7aS5JbnB1dEludDMyKGluZGV4ICsgMCksIEdldExhYmVsKGkuSW5wdXRScG8oaW5kZXgg KyAxKSl9KTsKKysgIH0KKysgIEFzc2VtYmxlQXJjaEJpbmFyeVNlYXJjaFN3aXRjaFJhbmdlKGlu cHV0LCBpLklucHV0UnBvKDEpLCBjYXNlcy5kYXRhKCksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYXNlcy5kYXRhKCkgKyBjYXNlcy5zaXplKCkpOworK30KKysKKyt2 b2lkIENvZGVHZW5lcmF0b3I6OkFzc2VtYmxlQXJjaFRhYmxlU3dpdGNoKEluc3RydWN0aW9uKiBp bnN0cikgeworKyAgUmlzY3ZPcGVyYW5kQ29udmVydGVyIGkodGhpcywgaW5zdHIpOworKyAgUmVn aXN0ZXIgaW5wdXQgPSBpLklucHV0UmVnaXN0ZXIoMCk7CisrICBzaXplX3QgY29uc3QgY2FzZV9j b3VudCA9IGluc3RyLT5JbnB1dENvdW50KCkgLSAyOworKworKyAgX18gQnJhbmNoKEdldExhYmVs KGkuSW5wdXRScG8oMSkpLCBVZ3JlYXRlcl9lcXVhbCwgaW5wdXQsCisrICAgICAgICAgICAgT3Bl cmFuZChjYXNlX2NvdW50KSk7CisrICBfXyBHZW5lcmF0ZVN3aXRjaFRhYmxlKGlucHV0LCBjYXNl X2NvdW50LCBbJmksIHRoaXNdKHNpemVfdCBpbmRleCkgeworKyAgICByZXR1cm4gR2V0TGFiZWwo aS5JbnB1dFJwbyhpbmRleCArIDIpKTsKKysgIH0pOworK30KKysKKyt2b2lkIENvZGVHZW5lcmF0 b3I6OkZpbmlzaEZyYW1lKEZyYW1lKiBmcmFtZSkgeworKyAgYXV0byBjYWxsX2Rlc2NyaXB0b3Ig PSBsaW5rYWdlKCktPkdldEluY29taW5nRGVzY3JpcHRvcigpOworKworKyAgY29uc3QgUmVnTGlz dCBzYXZlc19mcHUgPSBjYWxsX2Rlc2NyaXB0b3ItPkNhbGxlZVNhdmVkRlBSZWdpc3RlcnMoKTsK KysgIGlmIChzYXZlc19mcHUgIT0gMCkgeworKyAgICBpbnQgY291bnQgPSBiYXNlOjpiaXRzOjpD b3VudFBvcHVsYXRpb24oc2F2ZXNfZnB1KTsKKysgICAgRENIRUNLX0VRKGtOdW1DYWxsZWVTYXZl ZEZQVSwgY291bnQpOworKyAgICBmcmFtZS0+QWxsb2NhdGVTYXZlZENhbGxlZVJlZ2lzdGVyU2xv dHMoY291bnQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGtEb3VibGVTaXplIC8ga1N5c3RlbVBvaW50ZXJTaXplKSk7CisrICB9CisrCisrICBjb25zdCBS ZWdMaXN0IHNhdmVzID0gY2FsbF9kZXNjcmlwdG9yLT5DYWxsZWVTYXZlZFJlZ2lzdGVycygpOwor KyAgaWYgKHNhdmVzICE9IDApIHsKKysgICAgaW50IGNvdW50ID0gYmFzZTo6Yml0czo6Q291bnRQ b3B1bGF0aW9uKHNhdmVzKTsKKysgICAgRENIRUNLX0VRKGtOdW1DYWxsZWVTYXZlZCwgY291bnQg KyAxKTsKKysgICAgZnJhbWUtPkFsbG9jYXRlU2F2ZWRDYWxsZWVSZWdpc3RlclNsb3RzKGNvdW50 KTsKKysgIH0KKyt9CisrCisrdm9pZCBDb2RlR2VuZXJhdG9yOjpBc3NlbWJsZUNvbnN0cnVjdEZy YW1lKCkgeworKyAgYXV0byBjYWxsX2Rlc2NyaXB0b3IgPSBsaW5rYWdlKCktPkdldEluY29taW5n RGVzY3JpcHRvcigpOworKworKyAgaWYgKGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5oYXNfZnJhbWUo KSkgeworKyAgICBpZiAoY2FsbF9kZXNjcmlwdG9yLT5Jc0NGdW5jdGlvbkNhbGwoKSkgeworKyAg ICAgIGlmIChpbmZvKCktPkdldE91dHB1dFN0YWNrRnJhbWVUeXBlKCkgPT0gU3RhY2tGcmFtZTo6 Q19XQVNNX0VOVFJZKSB7CisrICAgICAgICBfXyBTdHViUHJvbG9ndWUoU3RhY2tGcmFtZTo6Q19X QVNNX0VOVFJZKTsKKysgICAgICAgIC8vIFJlc2VydmUgc3RhY2sgc3BhY2UgZm9yIHNhdmluZyB0 aGUgY19lbnRyeV9mcCBsYXRlci4KKysgICAgICAgIF9fIFN1YjY0KHNwLCBzcCwgT3BlcmFuZChr U3lzdGVtUG9pbnRlclNpemUpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgX18gUHVzaChy YSwgZnApOworKyAgICAgICAgX18gTW92ZShmcCwgc3ApOworKyAgICAgIH0KKysgICAgfSBlbHNl IGlmIChjYWxsX2Rlc2NyaXB0b3ItPklzSlNGdW5jdGlvbkNhbGwoKSkgeworKyAgICAgIF9fIFBy b2xvZ3VlKCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgX18gU3R1YlByb2xvZ3VlKGluZm8oKS0+ R2V0T3V0cHV0U3RhY2tGcmFtZVR5cGUoKSk7CisrICAgICAgaWYgKGNhbGxfZGVzY3JpcHRvci0+ SXNXYXNtRnVuY3Rpb25DYWxsKCkpIHsKKysgICAgICAgIF9fIFB1c2goa1dhc21JbnN0YW5jZVJl Z2lzdGVyKTsKKysgICAgICB9IGVsc2UgaWYgKGNhbGxfZGVzY3JpcHRvci0+SXNXYXNtSW1wb3J0 V3JhcHBlcigpIHx8CisrICAgICAgICAgICAgICAgICBjYWxsX2Rlc2NyaXB0b3ItPklzV2FzbUNh cGlGdW5jdGlvbigpKSB7CisrICAgICAgICAvLyBXYXNtIGltcG9ydCB3cmFwcGVycyBhcmUgcGFz c2VkIGEgdHVwbGUgaW4gdGhlIHBsYWNlIG9mIHRoZSBpbnN0YW5jZS4KKysgICAgICAgIC8vIFVu cGFjayB0aGUgdHVwbGUgaW50byB0aGUgaW5zdGFuY2UgYW5kIHRoZSB0YXJnZXQgY2FsbGFibGUu CisrICAgICAgICAvLyBUaGlzIG11c3QgYmUgZG9uZSBoZXJlIGluIHRoZSBjb2RlZ2VuIGJlY2F1 c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZAorKyAgICAgICAgLy8gcHJvcGVybHkgaW4gdGhlIGdy YXBoLgorKyAgICAgICAgX18gTGQoa0pTRnVuY3Rpb25SZWdpc3RlciwKKysgICAgICAgICAgICAg IEZpZWxkTWVtT3BlcmFuZChrV2FzbUluc3RhbmNlUmVnaXN0ZXIsIFR1cGxlMjo6a1ZhbHVlMk9m ZnNldCkpOworKyAgICAgICAgX18gTGQoa1dhc21JbnN0YW5jZVJlZ2lzdGVyLAorKyAgICAgICAg ICAgICAgRmllbGRNZW1PcGVyYW5kKGtXYXNtSW5zdGFuY2VSZWdpc3RlciwgVHVwbGUyOjprVmFs dWUxT2Zmc2V0KSk7CisrICAgICAgICBfXyBQdXNoKGtXYXNtSW5zdGFuY2VSZWdpc3Rlcik7Cisr ICAgICAgICBpZiAoY2FsbF9kZXNjcmlwdG9yLT5Jc1dhc21DYXBpRnVuY3Rpb24oKSkgeworKyAg ICAgICAgICAvLyBSZXNlcnZlIHNwYWNlIGZvciBzYXZpbmcgdGhlIFBDIGxhdGVyLgorKyAgICAg ICAgICBfXyBTdWI2NChzcCwgc3AsIE9wZXJhbmQoa1N5c3RlbVBvaW50ZXJTaXplKSk7CisrICAg ICAgICB9CisrICAgICAgfQorKyAgICB9CisrICB9CisrCisrICBpbnQgcmVxdWlyZWRfc2xvdHMg PQorKyAgICAgIGZyYW1lKCktPkdldFRvdGFsRnJhbWVTbG90Q291bnQoKSAtIGZyYW1lKCktPkdl dEZpeGVkU2xvdENvdW50KCk7CisrCisrICBpZiAoaW5mbygpLT5pc19vc3IoKSkgeworKyAgICAv LyBUdXJib0ZhbiBPU1ItY29tcGlsZWQgZnVuY3Rpb25zIGNhbm5vdCBiZSBlbnRlcmVkIGRpcmVj dGx5LgorKyAgICBfXyBBYm9ydChBYm9ydFJlYXNvbjo6a1Nob3VsZE5vdERpcmVjdGx5RW50ZXJP c3JGdW5jdGlvbik7CisrCisrICAgIC8vIFVub3B0aW1pemVkIGNvZGUganVtcHMgZGlyZWN0bHkg dG8gdGhpcyBlbnRyeXBvaW50IHdoaWxlIHRoZSB1bm9wdGltaXplZAorKyAgICAvLyBmcmFtZSBp cyBzdGlsbCBvbiB0aGUgc3RhY2suIE9wdGltaXplZCBjb2RlIHVzZXMgT1NSIHZhbHVlcyBkaXJl Y3RseSBmcm9tCisrICAgIC8vIHRoZSB1bm9wdGltaXplZCBmcmFtZS4gVGh1cywgYWxsIHRoYXQg bmVlZHMgdG8gYmUgZG9uZSBpcyB0byBhbGxvY2F0ZSB0aGUKKysgICAgLy8gcmVtYWluaW5nIHN0 YWNrIHNsb3RzLgorKyAgICBpZiAoRkxBR19jb2RlX2NvbW1lbnRzKSBfXyBSZWNvcmRDb21tZW50 KCItLSBPU1IgZW50cnlwb2ludCAtLSIpOworKyAgICBvc3JfcGNfb2Zmc2V0XyA9IF9fIHBjX29m ZnNldCgpOworKyAgICByZXF1aXJlZF9zbG90cyAtPSBvc3JfaGVscGVyKCktPlVub3B0aW1pemVk RnJhbWVTbG90cygpOworKyAgICBSZXNldFNwZWN1bGF0aW9uUG9pc29uKCk7CisrICB9CisrCisr ICBjb25zdCBSZWdMaXN0IHNhdmVzID0gY2FsbF9kZXNjcmlwdG9yLT5DYWxsZWVTYXZlZFJlZ2lz dGVycygpOworKyAgY29uc3QgUmVnTGlzdCBzYXZlc19mcHUgPSBjYWxsX2Rlc2NyaXB0b3ItPkNh bGxlZVNhdmVkRlBSZWdpc3RlcnMoKTsKKysKKysgIGlmIChyZXF1aXJlZF9zbG90cyA+IDApIHsK KysgICAgRENIRUNLKGZyYW1lX2FjY2Vzc19zdGF0ZSgpLT5oYXNfZnJhbWUoKSk7CisrICAgIGlm IChpbmZvKCktPklzV2FzbSgpICYmIHJlcXVpcmVkX3Nsb3RzID4gMTI4KSB7CisrICAgICAgLy8g Rm9yIFdlYkFzc2VtYmx5IGZ1bmN0aW9ucyB3aXRoIGJpZyBmcmFtZXMgd2UgaGF2ZSB0byBkbyB0 aGUgc3RhY2sKKysgICAgICAvLyBvdmVyZmxvdyBjaGVjayBiZWZvcmUgd2UgY29uc3RydWN0IHRo ZSBmcmFtZS4gT3RoZXJ3aXNlIHdlIG1heSBub3QKKysgICAgICAvLyBoYXZlIGVub3VnaCBzcGFj ZSBvbiB0aGUgc3RhY2sgdG8gY2FsbCB0aGUgcnVudGltZSBmb3IgdGhlIHN0YWNrCisrICAgICAg Ly8gb3ZlcmZsb3cuCisrICAgICAgTGFiZWwgZG9uZTsKKysKKysgICAgICAvLyBJZiB0aGUgZnJh bWUgaXMgYmlnZ2VyIHRoYW4gdGhlIHN0YWNrLCB3ZSB0aHJvdyB0aGUgc3RhY2sgb3ZlcmZsb3cK KysgICAgICAvLyBleGNlcHRpb24gdW5jb25kaXRpb25hbGx5LiBUaGVyZWJ5IHdlIGNhbiBhdm9p ZCB0aGUgaW50ZWdlciBvdmVyZmxvdworKyAgICAgIC8vIGNoZWNrIGluIHRoZSBjb25kaXRpb24g Y29kZS4KKysgICAgICBpZiAoKHJlcXVpcmVkX3Nsb3RzICoga1N5c3RlbVBvaW50ZXJTaXplKSA8 IChGTEFHX3N0YWNrX3NpemUgKiAxMDI0KSkgeworKyAgICAgICAgX18gTGQoCisrICAgICAgICAg ICAga1NjcmF0Y2hSZWcsCisrICAgICAgICAgICAgRmllbGRNZW1PcGVyYW5kKGtXYXNtSW5zdGFu Y2VSZWdpc3RlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbUluc3RhbmNlT2Jq ZWN0OjprUmVhbFN0YWNrTGltaXRBZGRyZXNzT2Zmc2V0KSk7CisrICAgICAgICBfXyBMZChrU2Ny YXRjaFJlZywgTWVtT3BlcmFuZChrU2NyYXRjaFJlZykpOworKyAgICAgICAgX18gQWRkNjQoa1Nj cmF0Y2hSZWcsIGtTY3JhdGNoUmVnLAorKyAgICAgICAgICAgICAgICAgT3BlcmFuZChyZXF1aXJl ZF9zbG90cyAqIGtTeXN0ZW1Qb2ludGVyU2l6ZSkpOworKyAgICAgICAgX18gQnJhbmNoKCZkb25l LCB1Z2UsIHNwLCBPcGVyYW5kKGtTY3JhdGNoUmVnKSk7CisrICAgICAgfQorKworKyAgICAgIF9f IENhbGwod2FzbTo6V2FzbUNvZGU6OmtXYXNtU3RhY2tPdmVyZmxvdywgUmVsb2NJbmZvOjpXQVNN X1NUVUJfQ0FMTCk7CisrICAgICAgLy8gV2UgY29tZSBmcm9tIFdlYkFzc2VtYmx5LCB0aGVyZSBh cmUgbm8gcmVmZXJlbmNlcyBmb3IgdGhlIEdDLgorKyAgICAgIFJlZmVyZW5jZU1hcCogcmVmZXJl bmNlX21hcCA9IHpvbmUoKS0+TmV3PFJlZmVyZW5jZU1hcD4oem9uZSgpKTsKKysgICAgICBSZWNv cmRTYWZlcG9pbnQocmVmZXJlbmNlX21hcCwgU2FmZXBvaW50OjprTm9MYXp5RGVvcHQpOworKyAg ICAgIGlmIChGTEFHX2RlYnVnX2NvZGUpIHsKKysgICAgICAgIF9fIHN0b3AoKTsKKysgICAgICB9 CisrCisrICAgICAgX18gYmluZCgmZG9uZSk7CisrICAgIH0KKysgIH0KKysKKysgIGNvbnN0IGlu dCByZXR1cm5zID0gZnJhbWUoKS0+R2V0UmV0dXJuU2xvdENvdW50KCk7CisrCisrICAvLyBTa2lw IGNhbGxlZS1zYXZlZCBhbmQgcmV0dXJuIHNsb3RzLCB3aGljaCBhcmUgcHVzaGVkIGJlbG93Lgor KyAgcmVxdWlyZWRfc2xvdHMgLT0gYmFzZTo6Yml0czo6Q291bnRQb3B1bGF0aW9uKHNhdmVzKTsK KysgIHJlcXVpcmVkX3Nsb3RzIC09IGJhc2U6OmJpdHM6OkNvdW50UG9wdWxhdGlvbihzYXZlc19m cHUpOworKyAgcmVxdWlyZWRfc2xvdHMgLT0gcmV0dXJuczsKKysgIGlmIChyZXF1aXJlZF9zbG90 cyA+IDApIHsKKysgICAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKHJlcXVpcmVkX3Nsb3RzICog a1N5c3RlbVBvaW50ZXJTaXplKSk7CisrICB9CisrCisrICBpZiAoc2F2ZXNfZnB1ICE9IDApIHsK KysgICAgLy8gU2F2ZSBjYWxsZWUtc2F2ZWQgRlBVIHJlZ2lzdGVycy4KKysgICAgX18gTXVsdGlQ dXNoRlBVKHNhdmVzX2ZwdSk7CisrICAgIERDSEVDS19FUShrTnVtQ2FsbGVlU2F2ZWRGUFUsIGJh c2U6OmJpdHM6OkNvdW50UG9wdWxhdGlvbihzYXZlc19mcHUpKTsKKysgIH0KKysKKysgIGlmIChz YXZlcyAhPSAwKSB7CisrICAgIC8vIFNhdmUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KKysgICAg X18gTXVsdGlQdXNoKHNhdmVzKTsKKysgICAgRENIRUNLX0VRKGtOdW1DYWxsZWVTYXZlZCwgYmFz ZTo6Yml0czo6Q291bnRQb3B1bGF0aW9uKHNhdmVzKSArIDEpOworKyAgfQorKworKyAgaWYgKHJl dHVybnMgIT0gMCkgeworKyAgICAvLyBDcmVhdGUgc3BhY2UgZm9yIHJldHVybnMuCisrICAgIF9f IFN1YjY0KHNwLCBzcCwgT3BlcmFuZChyZXR1cm5zICoga1N5c3RlbVBvaW50ZXJTaXplKSk7Cisr ICB9CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVSZXR1cm4oSW5zdHJ1Y3Rp b25PcGVyYW5kKiBwb3ApIHsKKysgIGF1dG8gY2FsbF9kZXNjcmlwdG9yID0gbGlua2FnZSgpLT5H ZXRJbmNvbWluZ0Rlc2NyaXB0b3IoKTsKKysKKysgIGNvbnN0IGludCByZXR1cm5zID0gZnJhbWUo KS0+R2V0UmV0dXJuU2xvdENvdW50KCk7CisrICBpZiAocmV0dXJucyAhPSAwKSB7CisrICAgIF9f IEFkZDY0KHNwLCBzcCwgT3BlcmFuZChyZXR1cm5zICoga1N5c3RlbVBvaW50ZXJTaXplKSk7Cisr ICB9CisrCisrICAvLyBSZXN0b3JlIEdQIHJlZ2lzdGVycy4KKysgIGNvbnN0IFJlZ0xpc3Qgc2F2 ZXMgPSBjYWxsX2Rlc2NyaXB0b3ItPkNhbGxlZVNhdmVkUmVnaXN0ZXJzKCk7CisrICBpZiAoc2F2 ZXMgIT0gMCkgeworKyAgICBfXyBNdWx0aVBvcChzYXZlcyk7CisrICB9CisrCisrICAvLyBSZXN0 b3JlIEZQVSByZWdpc3RlcnMuCisrICBjb25zdCBSZWdMaXN0IHNhdmVzX2ZwdSA9IGNhbGxfZGVz Y3JpcHRvci0+Q2FsbGVlU2F2ZWRGUFJlZ2lzdGVycygpOworKyAgaWYgKHNhdmVzX2ZwdSAhPSAw KSB7CisrICAgIF9fIE11bHRpUG9wRlBVKHNhdmVzX2ZwdSk7CisrICB9CisrCisrICBSaXNjdk9w ZXJhbmRDb252ZXJ0ZXIgZyh0aGlzLCBudWxscHRyKTsKKysgIGlmIChjYWxsX2Rlc2NyaXB0b3It PklzQ0Z1bmN0aW9uQ2FsbCgpKSB7CisrICAgIEFzc2VtYmxlRGVjb25zdHJ1Y3RGcmFtZSgpOwor KyAgfSBlbHNlIGlmIChmcmFtZV9hY2Nlc3Nfc3RhdGUoKS0+aGFzX2ZyYW1lKCkpIHsKKysgICAg Ly8gQ2Fub25pY2FsaXplIEpTRnVuY3Rpb24gcmV0dXJuIHNpdGVzIGZvciBub3cgdW5sZXNzIHRo ZXkgaGF2ZSBhbiB2YXJpYWJsZQorKyAgICAvLyBudW1iZXIgb2Ygc3RhY2sgc2xvdCBwb3BzLgor KyAgICBpZiAocG9wLT5Jc0ltbWVkaWF0ZSgpICYmIGcuVG9Db25zdGFudChwb3ApLlRvSW50MzIo KSA9PSAwKSB7CisrICAgICAgaWYgKHJldHVybl9sYWJlbF8uaXNfYm91bmQoKSkgeworKyAgICAg ICAgX18gQnJhbmNoKCZyZXR1cm5fbGFiZWxfKTsKKysgICAgICAgIHJldHVybjsKKysgICAgICB9 IGVsc2UgeworKyAgICAgICAgX18gYmluZCgmcmV0dXJuX2xhYmVsXyk7CisrICAgICAgICBBc3Nl bWJsZURlY29uc3RydWN0RnJhbWUoKTsKKysgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAg QXNzZW1ibGVEZWNvbnN0cnVjdEZyYW1lKCk7CisrICAgIH0KKysgIH0KKysgIGludCBwb3BfY291 bnQgPSBzdGF0aWNfY2FzdDxpbnQ+KGNhbGxfZGVzY3JpcHRvci0+U3RhY2tQYXJhbWV0ZXJDb3Vu dCgpKTsKKysgIGlmIChwb3AtPklzSW1tZWRpYXRlKCkpIHsKKysgICAgcG9wX2NvdW50ICs9IGcu VG9Db25zdGFudChwb3ApLlRvSW50MzIoKTsKKysgIH0gZWxzZSB7CisrICAgIFJlZ2lzdGVyIHBv cF9yZWcgPSBnLlRvUmVnaXN0ZXIocG9wKTsKKysgICAgX18gU2xsNjQocG9wX3JlZywgcG9wX3Jl Zywga1N5c3RlbVBvaW50ZXJTaXplTG9nMik7CisrICAgIF9fIEFkZDY0KHNwLCBzcCwgcG9wX3Jl Zyk7CisrICB9CisrICBpZiAocG9wX2NvdW50ICE9IDApIHsKKysgICAgX18gRHJvcEFuZFJldChw b3BfY291bnQpOworKyAgfSBlbHNlIHsKKysgICAgX18gUmV0KCk7CisrICB9CisrfQorKworK3Zv aWQgQ29kZUdlbmVyYXRvcjo6RmluaXNoQ29kZSgpIHt9CisrCisrdm9pZCBDb2RlR2VuZXJhdG9y OjpQcmVwYXJlRm9yRGVvcHRpbWl6YXRpb25FeGl0cyhpbnQgZGVvcHRfY291bnQpIHt9CisrCisr dm9pZCBDb2RlR2VuZXJhdG9yOjpBc3NlbWJsZU1vdmUoSW5zdHJ1Y3Rpb25PcGVyYW5kKiBzb3Vy Y2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb25PcGVyYW5k KiBkZXN0aW5hdGlvbikgeworKyAgUmlzY3ZPcGVyYW5kQ29udmVydGVyIGcodGhpcywgbnVsbHB0 cik7CisrICAvLyBEaXNwYXRjaCBvbiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBvcGVyYW5k IGtpbmRzLiAgTm90IGFsbAorKyAgLy8gY29tYmluYXRpb25zIGFyZSBwb3NzaWJsZS4KKysgIGlm IChzb3VyY2UtPklzUmVnaXN0ZXIoKSkgeworKyAgICBEQ0hFQ0soZGVzdGluYXRpb24tPklzUmVn aXN0ZXIoKSB8fCBkZXN0aW5hdGlvbi0+SXNTdGFja1Nsb3QoKSk7CisrICAgIFJlZ2lzdGVyIHNy YyA9IGcuVG9SZWdpc3Rlcihzb3VyY2UpOworKyAgICBpZiAoZGVzdGluYXRpb24tPklzUmVnaXN0 ZXIoKSkgeworKyAgICAgIF9fIE1vdmUoZy5Ub1JlZ2lzdGVyKGRlc3RpbmF0aW9uKSwgc3JjKTsK KysgICAgfSBlbHNlIHsKKysgICAgICBfXyBTZChzcmMsIGcuVG9NZW1PcGVyYW5kKGRlc3RpbmF0 aW9uKSk7CisrICAgIH0KKysgIH0gZWxzZSBpZiAoc291cmNlLT5Jc1N0YWNrU2xvdCgpKSB7Cisr ICAgIERDSEVDSyhkZXN0aW5hdGlvbi0+SXNSZWdpc3RlcigpIHx8IGRlc3RpbmF0aW9uLT5Jc1N0 YWNrU2xvdCgpKTsKKysgICAgTWVtT3BlcmFuZCBzcmMgPSBnLlRvTWVtT3BlcmFuZChzb3VyY2Up OworKyAgICBpZiAoZGVzdGluYXRpb24tPklzUmVnaXN0ZXIoKSkgeworKyAgICAgIF9fIExkKGcu VG9SZWdpc3RlcihkZXN0aW5hdGlvbiksIHNyYyk7CisrICAgIH0gZWxzZSB7CisrICAgICAgUmVn aXN0ZXIgdGVtcCA9IGtTY3JhdGNoUmVnOworKyAgICAgIF9fIExkKHRlbXAsIHNyYyk7CisrICAg ICAgX18gU2QodGVtcCwgZy5Ub01lbU9wZXJhbmQoZGVzdGluYXRpb24pKTsKKysgICAgfQorKyAg fSBlbHNlIGlmIChzb3VyY2UtPklzQ29uc3RhbnQoKSkgeworKyAgICBDb25zdGFudCBzcmMgPSBn LlRvQ29uc3RhbnQoc291cmNlKTsKKysgICAgaWYgKGRlc3RpbmF0aW9uLT5Jc1JlZ2lzdGVyKCkg fHwgZGVzdGluYXRpb24tPklzU3RhY2tTbG90KCkpIHsKKysgICAgICBSZWdpc3RlciBkc3QgPQor KyAgICAgICAgICBkZXN0aW5hdGlvbi0+SXNSZWdpc3RlcigpID8gZy5Ub1JlZ2lzdGVyKGRlc3Rp bmF0aW9uKSA6IGtTY3JhdGNoUmVnOworKyAgICAgIHN3aXRjaCAoc3JjLnR5cGUoKSkgeworKyAg ICAgICAgY2FzZSBDb25zdGFudDo6a0ludDMyOgorKyAgICAgICAgICBfXyBsaShkc3QsIE9wZXJh bmQoc3JjLlRvSW50MzIoKSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgQ29u c3RhbnQ6OmtGbG9hdDMyOgorKyAgICAgICAgICBfXyBsaShkc3QsIE9wZXJhbmQ6OkVtYmVkZGVk TnVtYmVyKHNyYy5Ub0Zsb2F0MzIoKSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNh c2UgQ29uc3RhbnQ6OmtJbnQ2NDoKKysgICAgICAgICAgaWYgKFJlbG9jSW5mbzo6SXNXYXNtUmVm ZXJlbmNlKHNyYy5ybW9kZSgpKSkgeworKyAgICAgICAgICAgIF9fIGxpKGRzdCwgT3BlcmFuZChz cmMuVG9JbnQ2NCgpLCBzcmMucm1vZGUoKSkpOworKyAgICAgICAgICB9IGVsc2UgeworKyAgICAg ICAgICAgIF9fIGxpKGRzdCwgT3BlcmFuZChzcmMuVG9JbnQ2NCgpKSk7CisrICAgICAgICAgIH0K KysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIENvbnN0YW50OjprRmxvYXQ2NDoKKysg ICAgICAgICAgX18gbGkoZHN0LCBPcGVyYW5kOjpFbWJlZGRlZE51bWJlcihzcmMuVG9GbG9hdDY0 KCkudmFsdWUoKSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgQ29uc3RhbnQ6 OmtFeHRlcm5hbFJlZmVyZW5jZToKKysgICAgICAgICAgX18gbGkoZHN0LCBzcmMuVG9FeHRlcm5h bFJlZmVyZW5jZSgpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIENvbnN0YW50 OjprRGVsYXllZFN0cmluZ0NvbnN0YW50OgorKyAgICAgICAgICBfXyBsaShkc3QsIHNyYy5Ub0Rl bGF5ZWRTdHJpbmdDb25zdGFudCgpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNl IENvbnN0YW50OjprSGVhcE9iamVjdDogeworKyAgICAgICAgICBIYW5kbGU8SGVhcE9iamVjdD4g c3JjX29iamVjdCA9IHNyYy5Ub0hlYXBPYmplY3QoKTsKKysgICAgICAgICAgUm9vdEluZGV4IGlu ZGV4OworKyAgICAgICAgICBpZiAoSXNNYXRlcmlhbGl6YWJsZUZyb21Sb290KHNyY19vYmplY3Qs ICZpbmRleCkpIHsKKysgICAgICAgICAgICBfXyBMb2FkUm9vdChkc3QsIGluZGV4KTsKKysgICAg ICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBfXyBsaShkc3QsIHNyY19vYmplY3QpOworKyAg ICAgICAgICB9CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgY2FzZSBD b25zdGFudDo6a0NvbXByZXNzZWRIZWFwT2JqZWN0OgorKyAgICAgICAgICBVTlJFQUNIQUJMRSgp OworKyAgICAgICAgY2FzZSBDb25zdGFudDo6a1Jwb051bWJlcjoKKysgICAgICAgICAgVU5SRUFD SEFCTEUoKTsgIC8vIFRPRE8odGl0emVyKTogbG9hZGluZyBSUE8gbnVtYmVycworKyAgICAgICAg ICBicmVhazsKKysgICAgICB9CisrICAgICAgaWYgKGRlc3RpbmF0aW9uLT5Jc1N0YWNrU2xvdCgp KSBfXyBTZChkc3QsIGcuVG9NZW1PcGVyYW5kKGRlc3RpbmF0aW9uKSk7CisrICAgIH0gZWxzZSBp ZiAoc3JjLnR5cGUoKSA9PSBDb25zdGFudDo6a0Zsb2F0MzIpIHsKKysgICAgICBpZiAoZGVzdGlu YXRpb24tPklzRlBTdGFja1Nsb3QoKSkgeworKyAgICAgICAgTWVtT3BlcmFuZCBkc3QgPSBnLlRv TWVtT3BlcmFuZChkZXN0aW5hdGlvbik7CisrICAgICAgICBpZiAoYml0X2Nhc3Q8aW50MzJfdD4o c3JjLlRvRmxvYXQzMigpKSA9PSAwKSB7CisrICAgICAgICAgIF9fIFN3KHplcm9fcmVnLCBkc3Qp OworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgX18gbGkoa1NjcmF0Y2hSZWcsIE9wZXJh bmQoYml0X2Nhc3Q8aW50MzJfdD4oc3JjLlRvRmxvYXQzMigpKSkpOworKyAgICAgICAgICBfXyBT dyhrU2NyYXRjaFJlZywgZHN0KTsKKysgICAgICAgIH0KKysgICAgICB9IGVsc2UgeworKyAgICAg ICAgRENIRUNLKGRlc3RpbmF0aW9uLT5Jc0ZQUmVnaXN0ZXIoKSk7CisrICAgICAgICBGbG9hdFJl Z2lzdGVyIGRzdCA9IGcuVG9TaW5nbGVSZWdpc3RlcihkZXN0aW5hdGlvbik7CisrICAgICAgICBf XyBMb2FkRlBSSW1tZWRpYXRlKGRzdCwgc3JjLlRvRmxvYXQzMigpKTsKKysgICAgICB9CisrICAg IH0gZWxzZSB7CisrICAgICAgRENIRUNLX0VRKENvbnN0YW50OjprRmxvYXQ2NCwgc3JjLnR5cGUo KSk7CisrICAgICAgRG91YmxlUmVnaXN0ZXIgZHN0ID0gZGVzdGluYXRpb24tPklzRlBSZWdpc3Rl cigpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZy5Ub0RvdWJsZVJlZ2lzdGVy KGRlc3RpbmF0aW9uKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGtTY3JhdGNo RG91YmxlUmVnOworKyAgICAgIF9fIExvYWRGUFJJbW1lZGlhdGUoZHN0LCBzcmMuVG9GbG9hdDY0 KCkudmFsdWUoKSk7CisrICAgICAgaWYgKGRlc3RpbmF0aW9uLT5Jc0ZQU3RhY2tTbG90KCkpIHsK KysgICAgICAgIF9fIFN0b3JlRG91YmxlKGRzdCwgZy5Ub01lbU9wZXJhbmQoZGVzdGluYXRpb24p KTsKKysgICAgICB9CisrICAgIH0KKysgIH0gZWxzZSBpZiAoc291cmNlLT5Jc0ZQUmVnaXN0ZXIo KSkgeworKyAgICBNYWNoaW5lUmVwcmVzZW50YXRpb24gcmVwID0gTG9jYXRpb25PcGVyYW5kOjpj YXN0KHNvdXJjZSktPnJlcHJlc2VudGF0aW9uKCk7CisrICAgIGlmIChyZXAgPT0gTWFjaGluZVJl cHJlc2VudGF0aW9uOjprU2ltZDEyOCkgeworKyAgICAgIFVOSU1QTEVNRU5URUQoKTsKKysgICAg fSBlbHNlIHsKKysgICAgICBGUFVSZWdpc3RlciBzcmMgPSBnLlRvRG91YmxlUmVnaXN0ZXIoc291 cmNlKTsKKysgICAgICBpZiAoZGVzdGluYXRpb24tPklzRlBSZWdpc3RlcigpKSB7CisrICAgICAg ICBGUFVSZWdpc3RlciBkc3QgPSBnLlRvRG91YmxlUmVnaXN0ZXIoZGVzdGluYXRpb24pOworKyAg ICAgICAgX18gTW92ZShkc3QsIHNyYyk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIERDSEVD SyhkZXN0aW5hdGlvbi0+SXNGUFN0YWNrU2xvdCgpKTsKKysgICAgICAgIGlmIChyZXAgPT0gTWFj aGluZVJlcHJlc2VudGF0aW9uOjprRmxvYXQzMikgeworKyAgICAgICAgICBfXyBTdG9yZUZsb2F0 KHNyYywgZy5Ub01lbU9wZXJhbmQoZGVzdGluYXRpb24pKTsKKysgICAgICAgIH0gZWxzZSB7Cisr ICAgICAgICAgIERDSEVDS19FUShyZXAsIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a0Zsb2F0NjQp OworKyAgICAgICAgICBfXyBTdG9yZURvdWJsZShzcmMsIGcuVG9NZW1PcGVyYW5kKGRlc3RpbmF0 aW9uKSk7CisrICAgICAgICB9CisrICAgICAgfQorKyAgICB9CisrICB9IGVsc2UgaWYgKHNvdXJj ZS0+SXNGUFN0YWNrU2xvdCgpKSB7CisrICAgIERDSEVDSyhkZXN0aW5hdGlvbi0+SXNGUFJlZ2lz dGVyKCkgfHwgZGVzdGluYXRpb24tPklzRlBTdGFja1Nsb3QoKSk7CisrICAgIE1lbU9wZXJhbmQg c3JjID0gZy5Ub01lbU9wZXJhbmQoc291cmNlKTsKKysgICAgTWFjaGluZVJlcHJlc2VudGF0aW9u IHJlcCA9IExvY2F0aW9uT3BlcmFuZDo6Y2FzdChzb3VyY2UpLT5yZXByZXNlbnRhdGlvbigpOwor KyAgICBpZiAocmVwID09IE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1NpbWQxMjgpIHsKKysgICAg ICBVTklNUExFTUVOVEVEKCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgaWYgKGRlc3RpbmF0aW9u LT5Jc0ZQUmVnaXN0ZXIoKSkgeworKyAgICAgICAgaWYgKHJlcCA9PSBNYWNoaW5lUmVwcmVzZW50 YXRpb246OmtGbG9hdDMyKSB7CisrICAgICAgICAgIF9fIExvYWRGbG9hdChnLlRvRG91YmxlUmVn aXN0ZXIoZGVzdGluYXRpb24pLCBzcmMpOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAg RENIRUNLX0VRKHJlcCwgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprRmxvYXQ2NCk7CisrICAgICAg ICAgIF9fIExvYWREb3VibGUoZy5Ub0RvdWJsZVJlZ2lzdGVyKGRlc3RpbmF0aW9uKSwgc3JjKTsK KysgICAgICAgIH0KKysgICAgICB9IGVsc2UgeworKyAgICAgICAgRENIRUNLKGRlc3RpbmF0aW9u LT5Jc0ZQU3RhY2tTbG90KCkpOworKyAgICAgICAgRlBVUmVnaXN0ZXIgdGVtcCA9IGtTY3JhdGNo RG91YmxlUmVnOworKyAgICAgICAgaWYgKHJlcCA9PSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtG bG9hdDMyKSB7CisrICAgICAgICAgIF9fIExvYWRGbG9hdCh0ZW1wLCBzcmMpOworKyAgICAgICAg ICBfXyBTdG9yZUZsb2F0KHRlbXAsIGcuVG9NZW1PcGVyYW5kKGRlc3RpbmF0aW9uKSk7CisrICAg ICAgICB9IGVsc2UgeworKyAgICAgICAgICBEQ0hFQ0tfRVEocmVwLCBNYWNoaW5lUmVwcmVzZW50 YXRpb246OmtGbG9hdDY0KTsKKysgICAgICAgICAgX18gTG9hZERvdWJsZSh0ZW1wLCBzcmMpOwor KyAgICAgICAgICBfXyBTdG9yZURvdWJsZSh0ZW1wLCBnLlRvTWVtT3BlcmFuZChkZXN0aW5hdGlv bikpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfSBlbHNlIHsKKysgICAgVU5S RUFDSEFCTEUoKTsKKysgIH0KKyt9CisrCisrdm9pZCBDb2RlR2VuZXJhdG9yOjpBc3NlbWJsZVN3 YXAoSW5zdHJ1Y3Rpb25PcGVyYW5kKiBzb3VyY2UsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5zdHJ1Y3Rpb25PcGVyYW5kKiBkZXN0aW5hdGlvbikgeworKyAgUmlzY3ZPcGVy YW5kQ29udmVydGVyIGcodGhpcywgbnVsbHB0cik7CisrICAvLyBEaXNwYXRjaCBvbiB0aGUgc291 cmNlIGFuZCBkZXN0aW5hdGlvbiBvcGVyYW5kIGtpbmRzLiAgTm90IGFsbAorKyAgLy8gY29tYmlu YXRpb25zIGFyZSBwb3NzaWJsZS4KKysgIGlmIChzb3VyY2UtPklzUmVnaXN0ZXIoKSkgeworKyAg ICAvLyBSZWdpc3Rlci1yZWdpc3Rlci4KKysgICAgUmVnaXN0ZXIgdGVtcCA9IGtTY3JhdGNoUmVn OworKyAgICBSZWdpc3RlciBzcmMgPSBnLlRvUmVnaXN0ZXIoc291cmNlKTsKKysgICAgaWYgKGRl c3RpbmF0aW9uLT5Jc1JlZ2lzdGVyKCkpIHsKKysgICAgICBSZWdpc3RlciBkc3QgPSBnLlRvUmVn aXN0ZXIoZGVzdGluYXRpb24pOworKyAgICAgIF9fIE1vdmUodGVtcCwgc3JjKTsKKysgICAgICBf XyBNb3ZlKHNyYywgZHN0KTsKKysgICAgICBfXyBNb3ZlKGRzdCwgdGVtcCk7CisrICAgIH0gZWxz ZSB7CisrICAgICAgRENIRUNLKGRlc3RpbmF0aW9uLT5Jc1N0YWNrU2xvdCgpKTsKKysgICAgICBN ZW1PcGVyYW5kIGRzdCA9IGcuVG9NZW1PcGVyYW5kKGRlc3RpbmF0aW9uKTsKKysgICAgICBfXyBN b3ZlKHRlbXAsIHNyYyk7CisrICAgICAgX18gTGQoc3JjLCBkc3QpOworKyAgICAgIF9fIFNkKHRl bXAsIGRzdCk7CisrICAgIH0KKysgIH0gZWxzZSBpZiAoc291cmNlLT5Jc1N0YWNrU2xvdCgpKSB7 CisrICAgIERDSEVDSyhkZXN0aW5hdGlvbi0+SXNTdGFja1Nsb3QoKSk7CisrICAgIFJlZ2lzdGVy IHRlbXBfMCA9IGtTY3JhdGNoUmVnOworKyAgICBSZWdpc3RlciB0ZW1wXzEgPSBrU2NyYXRjaFJl ZzI7CisrICAgIE1lbU9wZXJhbmQgc3JjID0gZy5Ub01lbU9wZXJhbmQoc291cmNlKTsKKysgICAg TWVtT3BlcmFuZCBkc3QgPSBnLlRvTWVtT3BlcmFuZChkZXN0aW5hdGlvbik7CisrICAgIF9fIExk KHRlbXBfMCwgc3JjKTsKKysgICAgX18gTGQodGVtcF8xLCBkc3QpOworKyAgICBfXyBTZCh0ZW1w XzAsIGRzdCk7CisrICAgIF9fIFNkKHRlbXBfMSwgc3JjKTsKKysgIH0gZWxzZSBpZiAoc291cmNl LT5Jc0ZQUmVnaXN0ZXIoKSkgeworKyAgICBNYWNoaW5lUmVwcmVzZW50YXRpb24gcmVwID0gTG9j YXRpb25PcGVyYW5kOjpjYXN0KHNvdXJjZSktPnJlcHJlc2VudGF0aW9uKCk7CisrICAgIGlmIChy ZXAgPT0gTWFjaGluZVJlcHJlc2VudGF0aW9uOjprU2ltZDEyOCkgeworKyAgICAgIFVOSU1QTEVN RU5URUQoKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBGUFVSZWdpc3RlciB0ZW1wID0ga1NjcmF0 Y2hEb3VibGVSZWc7CisrICAgICAgRlBVUmVnaXN0ZXIgc3JjID0gZy5Ub0RvdWJsZVJlZ2lzdGVy KHNvdXJjZSk7CisrICAgICAgaWYgKGRlc3RpbmF0aW9uLT5Jc0ZQUmVnaXN0ZXIoKSkgeworKyAg ICAgICAgRlBVUmVnaXN0ZXIgZHN0ID0gZy5Ub0RvdWJsZVJlZ2lzdGVyKGRlc3RpbmF0aW9uKTsK KysgICAgICAgIF9fIE1vdmUodGVtcCwgc3JjKTsKKysgICAgICAgIF9fIE1vdmUoc3JjLCBkc3Qp OworKyAgICAgICAgX18gTW92ZShkc3QsIHRlbXApOworKyAgICAgIH0gZWxzZSB7CisrICAgICAg ICBEQ0hFQ0soZGVzdGluYXRpb24tPklzRlBTdGFja1Nsb3QoKSk7CisrICAgICAgICBNZW1PcGVy YW5kIGRzdCA9IGcuVG9NZW1PcGVyYW5kKGRlc3RpbmF0aW9uKTsKKysgICAgICAgIF9fIE1vdmUo dGVtcCwgc3JjKTsKKysgICAgICAgIF9fIExvYWREb3VibGUoc3JjLCBkc3QpOworKyAgICAgICAg X18gU3RvcmVEb3VibGUodGVtcCwgZHN0KTsKKysgICAgICB9CisrICAgIH0KKysgIH0gZWxzZSBp ZiAoc291cmNlLT5Jc0ZQU3RhY2tTbG90KCkpIHsKKysgICAgRENIRUNLKGRlc3RpbmF0aW9uLT5J c0ZQU3RhY2tTbG90KCkpOworKyAgICBSZWdpc3RlciB0ZW1wXzAgPSBrU2NyYXRjaFJlZzsKKysg ICAgTWVtT3BlcmFuZCBzcmMwID0gZy5Ub01lbU9wZXJhbmQoc291cmNlKTsKKysgICAgTWVtT3Bl cmFuZCBzcmMxKHNyYzAucm0oKSwgc3JjMC5vZmZzZXQoKSArIGtJbnRTaXplKTsKKysgICAgTWVt T3BlcmFuZCBkc3QwID0gZy5Ub01lbU9wZXJhbmQoZGVzdGluYXRpb24pOworKyAgICBNZW1PcGVy YW5kIGRzdDEoZHN0MC5ybSgpLCBkc3QwLm9mZnNldCgpICsga0ludFNpemUpOworKyAgICBNYWNo aW5lUmVwcmVzZW50YXRpb24gcmVwID0gTG9jYXRpb25PcGVyYW5kOjpjYXN0KHNvdXJjZSktPnJl cHJlc2VudGF0aW9uKCk7CisrICAgIGlmIChyZXAgPT0gTWFjaGluZVJlcHJlc2VudGF0aW9uOjpr U2ltZDEyOCkgeworKyAgICAgIFVOSU1QTEVNRU5URUQoKTsKKysgICAgfSBlbHNlIHsKKysgICAg ICBGUFVSZWdpc3RlciB0ZW1wXzEgPSBrU2NyYXRjaERvdWJsZVJlZzsKKysgICAgICBfXyBMb2Fk RG91YmxlKHRlbXBfMSwgZHN0MCk7ICAvLyBTYXZlIGRlc3RpbmF0aW9uIGluIHRlbXBfMS4KKysg ICAgICBfXyBMdyh0ZW1wXzAsIHNyYzApOyAgLy8gVGhlbiB1c2UgdGVtcF8wIHRvIGNvcHkgc291 cmNlIHRvIGRlc3RpbmF0aW9uLgorKyAgICAgIF9fIFN3KHRlbXBfMCwgZHN0MCk7CisrICAgICAg X18gTHcodGVtcF8wLCBzcmMxKTsKKysgICAgICBfXyBTdyh0ZW1wXzAsIGRzdDEpOworKyAgICAg IF9fIFN0b3JlRG91YmxlKHRlbXBfMSwgc3JjMCk7CisrICAgIH0KKysgIH0gZWxzZSB7CisrICAg IC8vIE5vIG90aGVyIGNvbWJpbmF0aW9ucyBhcmUgcG9zc2libGUuCisrICAgIFVOUkVBQ0hBQkxF KCk7CisrICB9CisrfQorKworK3ZvaWQgQ29kZUdlbmVyYXRvcjo6QXNzZW1ibGVKdW1wVGFibGUo TGFiZWwqKiB0YXJnZXRzLCBzaXplX3QgdGFyZ2V0X2NvdW50KSB7CisrICAvLyBPbiA2NC1iaXQg UklTQy1WIHdlIGVtaXQgdGhlIGp1bXAgdGFibGVzIGlubGluZS4KKysgIFVOUkVBQ0hBQkxFKCk7 CisrfQorKworKyN1bmRlZiBBU1NFTUJMRV9BVE9NSUNfTE9BRF9JTlRFR0VSCisrI3VuZGVmIEFT U0VNQkxFX0FUT01JQ19TVE9SRV9JTlRFR0VSCisrI3VuZGVmIEFTU0VNQkxFX0FUT01JQ19CSU5P UAorKyN1bmRlZiBBU1NFTUJMRV9BVE9NSUNfQklOT1BfRVhUCisrI3VuZGVmIEFTU0VNQkxFX0FU T01JQ19FWENIQU5HRV9JTlRFR0VSCisrI3VuZGVmIEFTU0VNQkxFX0FUT01JQ19FWENIQU5HRV9J TlRFR0VSX0VYVAorKyN1bmRlZiBBU1NFTUJMRV9BVE9NSUNfQ09NUEFSRV9FWENIQU5HRV9JTlRF R0VSCisrI3VuZGVmIEFTU0VNQkxFX0FUT01JQ19DT01QQVJFX0VYQ0hBTkdFX0lOVEVHRVJfRVhU CisrI3VuZGVmIEFTU0VNQkxFX0lFRUU3NTRfQklOT1AKKysjdW5kZWYgQVNTRU1CTEVfSUVFRTc1 NF9VTk9QCisrCisrI3VuZGVmIFRSQUNFX01TRworKyN1bmRlZiBUUkFDRV9VTklNUEwKKysjdW5k ZWYgX18KKysKKyt9ICAvLyBuYW1lc3BhY2UgY29tcGlsZXIKKyt9ICAvLyBuYW1lc3BhY2UgaW50 ZXJuYWwKKyt9ICAvLyBuYW1lc3BhY2UgdjgKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb21waWxlci9iYWNrZW5k L3Jpc2N2NjQvaW5zdHJ1Y3Rpb24tY29kZXMtcmlzY3Y2NC5oCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rl di9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS92OC9zcmMvY29tcGlsZXIvYmFja2VuZC9yaXNjdjY0L2luc3RydWN0aW9uLWNv ZGVzLXJpc2N2NjQuaAorQEAgLTAsMCArMSw0MzIgQEAKKysvLyBDb3B5cmlnaHQgMjAxNCB0aGUg VjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlz IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g YmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgVjhfQ09NUElM RVJfQkFDS0VORF9SSVNDVl9JTlNUUlVDVElPTl9DT0RFU19SSVNDVl9IXworKyNkZWZpbmUgVjhf Q09NUElMRVJfQkFDS0VORF9SSVNDVl9JTlNUUlVDVElPTl9DT0RFU19SSVNDVl9IXworKworK25h bWVzcGFjZSB2OCB7CisrbmFtZXNwYWNlIGludGVybmFsIHsKKytuYW1lc3BhY2UgY29tcGlsZXIg eworKworKy8vIFJJU0MtVi1zcGVjaWZpYyBvcGNvZGVzIHRoYXQgc3BlY2lmeSB3aGljaCBhc3Nl bWJseSBzZXF1ZW5jZSB0byBlbWl0LgorKy8vIE1vc3Qgb3Bjb2RlcyBzcGVjaWZ5IGEgc2luZ2xl IGluc3RydWN0aW9uLgorKyNkZWZpbmUgVEFSR0VUX0FSQ0hfT1BDT0RFX0xJU1QoVikgICAgICAg ICAgXAorKyAgVihSaXNjdkFkZDMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkFkZDY0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkFk ZE92ZjY0KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN1YjMyKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN1YjY0KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN1Yk92ZjY0KSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdk11bDMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdk11bE92ZjMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dk11bEhpZ2gzMikgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk11bEhpZ2g2 NCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk11bEhpZ2hVMzIpICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk11bDY0KSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkRpdjMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkRpdjY0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkRpdlUzMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkRpdlU2 NCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk1vZDMyKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk1vZDY0KSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdk1vZFUzMikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdk1vZFU2NCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkFuZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkFu ZDMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk9yKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk9yMzIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk5vcikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdk5vcjMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdlhvcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlhvcjMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkNsejMyKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNobDMyKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNocjMyKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlNhcjMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlplcm9FeHRlbmRXb3JkKSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlNpZ25FeHRlbmRXb3JkKSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkNsejY0 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN0ejMyKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN0ejY0KSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdlBvcGNudDMyKSAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdlBvcGNudDY0KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdlNobDY0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNo cjY0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNhcjY0KSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlJvcjMyKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlJvcjY0KSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdk1vdikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdlRzdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkNtcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkNtcFMpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkFkZFMpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN1YlMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdk11bFMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkRpdlMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdk1vZFMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkFic1Mp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk5lZ1MpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNxcnRTKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdk1heFMpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdk1pblMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkNtcEQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkFk ZEQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN1YkQpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk11bEQpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkRpdkQpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdk1vZEQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkFic0QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dk5lZ0QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNxcnREKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk1heEQpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk1pbkQpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0NjRSb3VuZERvd24pICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkZsb2F0NjRSb3VuZFRydW5jYXRlKSAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkZsb2F0NjRSb3VuZFVwKSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0 NjRSb3VuZFRpZXNFdmVuKSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0MzJSb3VuZERv d24pICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0MzJSb3VuZFRydW5jYXRlKSAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0MzJSb3VuZFVwKSAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkZsb2F0MzJSb3VuZFRpZXNFdmVuKSAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkN2dFNEKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2 dERTKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlRydW5jV0QpICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlJvdW5kV0QpICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb29yV0QpICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkNlaWxXRCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdlRydW5jV1MpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlJvdW5kV1MpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb29yV1Mp ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkNlaWxXUykgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlRydW5jTFMpICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlRydW5jTEQpICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlRydW5jVXdEKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlRydW5jVXdTKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlRydW5j VWxTKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlRydW5jVWxEKSAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2dERXKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2dFNMKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkN2dFNXKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkN2dFNVdykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2 dFNVbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2dERMKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2dERVdykgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkN2dERVbCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkxiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkxidSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlNiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkxoKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlVsaCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkxodSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlVsaHUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlNoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlVzaCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkxkKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlVsZCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkx3KSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdlVsdykgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkx3dSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdlVsd3UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN3 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlVzdykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNkKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlVzZCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkxvYWRGbG9hdCkgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdlVMb2FkRmxvYXQpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlN0b3JlRmxvYXQpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlVTdG9yZUZs b2F0KSAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkxvYWREb3VibGUpICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlVMb2FkRG91YmxlKSAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlN0b3JlRG91YmxlKSAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlVTdG9yZURvdWJsZSkgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkJpdGNhc3RETCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkJpdGNh c3RMRCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkJpdGNhc3RJbnQzMlRv RmxvYXQzMikgICAgICAgICAgICAgXAorKyAgVihSaXNjdkJpdGNhc3RGbG9hdDMyVG9JbnQzMikg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0NjRFeHRyYWN0TG93V29yZDMyKSAgICAgICAg ICAgXAorKyAgVihSaXNjdkZsb2F0NjRFeHRyYWN0SGlnaFdvcmQzMikgICAgICAgICAgXAorKyAg VihSaXNjdkZsb2F0NjRJbnNlcnRMb3dXb3JkMzIpICAgICAgICAgICAgXAorKyAgVihSaXNjdkZs b2F0NjRJbnNlcnRIaWdoV29yZDMyKSAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0MzJNYXgp ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0NjRNYXgpICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkZsb2F0MzJNaW4pICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkZsb2F0NjRNaW4pICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkZsb2F0NjRTaWxlbmNlTmFOKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlB1c2gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlBlZWspICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkJ5dGVTd2FwNjQpICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkJ5dGVTd2FwMzIpICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlN0b3JlVG9TdGFja1Nsb3QpICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlN0YWNrQ2xhaW0pICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlNpZ25FeHRlbmRCeXRlKSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlNpZ25F eHRlbmRTaG9ydCkgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlN5bmMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkFzc2VydEVxdWFsKSAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxMjhDb25zdCkgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdlMxMjhaZXJvKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdlMxMjhBbGxPbmVzKSAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkz Mng0U3BsYXQpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0RXh0cmFj dExhbmUpICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0UmVwbGFjZUxhbmUpICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0QWRkKSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkkzMng0QWRkSG9yaXopICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkkzMng0U3ViKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkY2NHgyQWJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyTmVn KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0U3BsYXQpICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0RXh0cmFjdExhbmUpICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0UmVwbGFjZUxhbmUpICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkYzMng0U0NvbnZlcnRJMzJ4NCkgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkYzMng0VUNvbnZlcnRJMzJ4NCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0 TXVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TWF4UykgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TWluUykgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0RXEpICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkkzMng0TmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkkzMng0U2hsKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkz Mng0U2hyUykgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0U2hyVSkg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TWF4VSkgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TWluVSkgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkY2NHgyU3FydCkgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkY2NHgyQWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkY2NHgyU3ViKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyTXVs KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyRGl2KSAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyTWluKSAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyTWF4KSAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkY2NHgyRXEpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkY2NHgyTmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgy THQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyTGUpICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyU3BsYXQpICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyRXh0cmFjdExhbmUpICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkY2NHgyUmVwbGFjZUxhbmUpICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkY2NHgyUG1pbikgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2 NHgyUG1heCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyQ2VpbCkg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyRmxvb3IpICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkY2NHgyVHJ1bmMpICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkY2NHgyTmVhcmVzdEludCkgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkk2NHgyU3BsYXQpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkk2NHgyRXh0cmFjdExhbmUpICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk2NHgyUmVw bGFjZUxhbmUpICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk2NHgyQWRkKSAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk2NHgyU3ViKSAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkk2NHgyTXVsKSAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkk2NHgyTmVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkk2NHgyU2hsKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk2NHgy U2hyUykgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk2NHgyU2hyVSkgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0QWJzKSAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0TmVnKSAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkYzMng0U3FydCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkYzMng0UmVjaXBBcHByb3gpICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYz Mng0UmVjaXBTcXJ0QXBwcm94KSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0QWRkKSAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0QWRkSG9yaXopICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0U3ViKSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkYzMng0TXVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkYzMng0RGl2KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkYzMng0TWF4KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0TWlu KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0RXEpICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0TmUpICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0THQpICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkYzMng0TGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkYzMng0UG1pbikgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0 UG1heCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0Q2VpbCkgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0Rmxvb3IpICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkYzMng0VHJ1bmMpICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkYzMng0TmVhcmVzdEludCkgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkkzMng0U0NvbnZlcnRGMzJ4NCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkz Mng0VUNvbnZlcnRGMzJ4NCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TmVnKSAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0R3RTKSAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0R2VTKSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkkzMng0R3RVKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkkzMng0R2VVKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkkzMng0QWJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0Qml0 TWFzaykgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U3BsYXQpICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4RXh0cmFjdExhbmVVKSAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4RXh0cmFjdExhbmVTKSAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkkxNng4UmVwbGFjZUxhbmUpICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkkxNng4TmVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4 U2hsKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U2hyUykgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U2hyVSkgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4QWRkKSAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkkxNng4QWRkU2F0dXJhdGVTKSAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkkxNng4QWRkSG9yaXopICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkx Nng4U3ViKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U3ViU2F0 dXJhdGVTKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4TXVsKSAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4TWF4UykgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkkxNng4TWluUykgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkkxNng4RXEpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkkxNng4TmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4R3RT KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4R2VTKSAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4QWRkU2F0dXJhdGVVKSAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U3ViU2F0dXJhdGVVKSAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkkxNng4TWF4VSkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkkxNng4TWluVSkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4 R3RVKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4R2VVKSAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4Um91bmRpbmdBdmVyYWdlVSkg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4QWJzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkkxNng4Qml0TWFzaykgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkk4eDE2U3BsYXQpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4 eDE2RXh0cmFjdExhbmVVKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2RXh0cmFj dExhbmVTKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2UmVwbGFjZUxhbmUpICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2TmVnKSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkk4eDE2U2hsKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkk4eDE2U2hyUykgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dkk4eDE2QWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2QWRk U2F0dXJhdGVTKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2U3ViKSAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2U3ViU2F0dXJhdGVTKSAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2TXVsKSAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdkk4eDE2TWF4UykgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdkk4eDE2TWluUykgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2 RXEpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2TmUpICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2R3RTKSAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2R2VTKSAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkk4eDE2U2hyVSkgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkk4eDE2QWRkU2F0dXJhdGVVKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4 eDE2U3ViU2F0dXJhdGVVKSAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2TWF4VSkg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2TWluVSkgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2R3RVKSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkk4eDE2R2VVKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdkk4eDE2Um91bmRpbmdBdmVyYWdlVSkgICAgICAgICAgICAgXAorKyAgVihSaXNj dkk4eDE2QWJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2Qml0 TWFzaykgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxMjhBbmQpICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxMjhPcikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlMxMjhYb3IpICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlMxMjhOb3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlMxMjhTZWxlY3QpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxMjhB bmROb3QpICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlYzMng0QW55VHJ1ZSkg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlYzMng0QWxsVHJ1ZSkgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdlYxNng4QW55VHJ1ZSkgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdlYxNng4QWxsVHJ1ZSkgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdlY4eDE2QW55VHJ1ZSkgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlY4 eDE2QWxsVHJ1ZSkgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMzMng0SW50ZXJs ZWF2ZVJpZ2h0KSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMzMng0SW50ZXJsZWF2ZUxlZnQp ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMzMng0UGFja0V2ZW4pICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdlMzMng0UGFja09kZCkgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdlMzMng0SW50ZXJsZWF2ZUV2ZW4pICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlMzMng0SW50ZXJsZWF2ZU9kZCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMzMng0U2h1 ZmZsZSkgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxNng4SW50ZXJsZWF2ZVJp Z2h0KSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxNng4SW50ZXJsZWF2ZUxlZnQpICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlMxNng4UGFja0V2ZW4pICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlMxNng4UGFja09kZCkgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlMxNng4SW50ZXJsZWF2ZUV2ZW4pICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxNng4 SW50ZXJsZWF2ZU9kZCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxNng0UmV2ZXJzZSkg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlMxNngyUmV2ZXJzZSkgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4eDE2SW50ZXJsZWF2ZVJpZ2h0KSAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdlM4eDE2SW50ZXJsZWF2ZUxlZnQpICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdlM4eDE2UGFja0V2ZW4pICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4 eDE2UGFja09kZCkgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4eDE2SW50ZXJs ZWF2ZUV2ZW4pICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4eDE2SW50ZXJsZWF2ZU9kZCkg ICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2U2h1ZmZsZSkgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdkk4eDE2U3dpenpsZSkgICAgICAgICAgICAgICAgICAgICAgXAor KyAgVihSaXNjdlM4eDE2Q29uY2F0KSAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNj dlM4eDhSZXZlcnNlKSAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4eDRSZXZl cnNlKSAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4eDJSZXZlcnNlKSAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdlM4eDE2TG9hZFNwbGF0KSAgICAgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdlMxNng4TG9hZFNwbGF0KSAgICAgICAgICAgICAgICAgICAg XAorKyAgVihSaXNjdlMzMng0TG9hZFNwbGF0KSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihS aXNjdlM2NHgyTG9hZFNwbGF0KSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4 TG9hZDh4OFMpICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4TG9hZDh4OFUp ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TG9hZDE2eDRTKSAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0TG9hZDE2eDRVKSAgICAgICAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdkk2NHgyTG9hZDMyeDJTKSAgICAgICAgICAgICAgICAgICAgXAorKyAg VihSaXNjdkk2NHgyTG9hZDMyeDJVKSAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk1z YUxkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdk1zYVN0KSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0U0NvbnZlcnRJMTZ4OExv dykgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkzMng0U0NvbnZlcnRJMTZ4OEhpZ2gpICAgICAg ICAgICAgXAorKyAgVihSaXNjdkkzMng0VUNvbnZlcnRJMTZ4OExvdykgICAgICAgICAgICAgXAor KyAgVihSaXNjdkkzMng0VUNvbnZlcnRJMTZ4OEhpZ2gpICAgICAgICAgICAgXAorKyAgVihSaXNj dkkxNng4U0NvbnZlcnRJOHgxNkxvdykgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U0Nv bnZlcnRJOHgxNkhpZ2gpICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4U0NvbnZlcnRJMzJ4 NCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4VUNvbnZlcnRJMzJ4NCkgICAgICAg ICAgICAgICAgXAorKyAgVihSaXNjdkkxNng4VUNvbnZlcnRJOHgxNkxvdykgICAgICAgICAgICAg XAorKyAgVihSaXNjdkkxNng4VUNvbnZlcnRJOHgxNkhpZ2gpICAgICAgICAgICAgXAorKyAgVihS aXNjdkk4eDE2U0NvbnZlcnRJMTZ4OCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdkk4eDE2 VUNvbnZlcnRJMTZ4OCkgICAgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0xv YWRVaW50OCkgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0xvYWRVaW50MTYp ICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0xvYWRVaW50MzIpICAgICAgICAg ICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0xvYWRVaW50NjQpICAgICAgICAgICAgXAorKyAg VihSaXNjdldvcmQ2NEF0b21pY1N0b3JlV29yZDgpICAgICAgICAgICAgXAorKyAgVihSaXNjdldv cmQ2NEF0b21pY1N0b3JlV29yZDE2KSAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21p Y1N0b3JlV29yZDMyKSAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY1N0b3JlV29y ZDY0KSAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0FkZFVpbnQ4KSAgICAgICAg ICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0FkZFVpbnQxNikgICAgICAgICAgICAgXAor KyAgVihSaXNjdldvcmQ2NEF0b21pY0FkZFVpbnQzMikgICAgICAgICAgICAgXAorKyAgVihSaXNj dldvcmQ2NEF0b21pY0FkZFVpbnQ2NCkgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0 b21pY1N1YlVpbnQ4KSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY1N1YlVp bnQxNikgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY1N1YlVpbnQzMikgICAg ICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY1N1YlVpbnQ2NCkgICAgICAgICAgICAg XAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0FuZFVpbnQ4KSAgICAgICAgICAgICAgXAorKyAgVihS aXNjdldvcmQ2NEF0b21pY0FuZFVpbnQxNikgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2 NEF0b21pY0FuZFVpbnQzMikgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0Fu ZFVpbnQ2NCkgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY09yVWludDgpICAg ICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY09yVWludDE2KSAgICAgICAgICAg ICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY09yVWludDMyKSAgICAgICAgICAgICAgXAorKyAg VihSaXNjdldvcmQ2NEF0b21pY09yVWludDY0KSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdldv cmQ2NEF0b21pY1hvclVpbnQ4KSAgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21p Y1hvclVpbnQxNikgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY1hvclVpbnQz MikgICAgICAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY1hvclVpbnQ2NCkgICAgICAg ICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0V4Y2hhbmdlVWludDgpICAgICAgICAgXAor KyAgVihSaXNjdldvcmQ2NEF0b21pY0V4Y2hhbmdlVWludDE2KSAgICAgICAgXAorKyAgVihSaXNj dldvcmQ2NEF0b21pY0V4Y2hhbmdlVWludDMyKSAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0 b21pY0V4Y2hhbmdlVWludDY0KSAgICAgICAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0NvbXBh cmVFeGNoYW5nZVVpbnQ4KSAgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5n ZVVpbnQxNikgXAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5nZVVpbnQzMikg XAorKyAgVihSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5nZVVpbnQ2NCkKKysKKysvLyBB ZGRyZXNzaW5nIG1vZGVzIHJlcHJlc2VudCB0aGUgInNoYXBlIiBvZiBpbnB1dHMgdG8gYW4gaW5z dHJ1Y3Rpb24uCisrLy8gTWFueSBpbnN0cnVjdGlvbnMgc3VwcG9ydCBtdWx0aXBsZSBhZGRyZXNz aW5nIG1vZGVzLiBBZGRyZXNzaW5nIG1vZGVzCisrLy8gYXJlIGVuY29kZWQgaW50byB0aGUgSW5z dHJ1Y3Rpb25Db2RlIG9mIHRoZSBpbnN0cnVjdGlvbiBhbmQgdGVsbCB0aGUKKysvLyBjb2RlIGdl bmVyYXRvciBhZnRlciByZWdpc3RlciBhbGxvY2F0aW9uIHdoaWNoIGFzc2VtYmxlciBtZXRob2Qg dG8gY2FsbC4KKysvLworKy8vIFdlIHVzZSB0aGUgZm9sbG93aW5nIGxvY2FsIG5vdGF0aW9uIGZv ciBhZGRyZXNzaW5nIG1vZGVzOgorKy8vCisrLy8gUiA9IHJlZ2lzdGVyCisrLy8gTyA9IHJlZ2lz dGVyIG9yIHN0YWNrIHNsb3QKKysvLyBEID0gZG91YmxlIHJlZ2lzdGVyCisrLy8gSSA9IGltbWVk aWF0ZSAoaGFuZGxlLCBleHRlcm5hbCwgaW50MzIpCisrLy8gTVJJID0gW3JlZ2lzdGVyICsgaW1t ZWRpYXRlXQorKy8vIE1SUiA9IFtyZWdpc3RlciArIHJlZ2lzdGVyXQorKy8vIFRPRE8ocGxpbmQp OiBBZGQgdGhlIG5ldyByNiBhZGRyZXNzIG1vZGVzLgorKyNkZWZpbmUgVEFSR0VUX0FERFJFU1NJ TkdfTU9ERV9MSVNUKFYpIFwKKysgIFYoTVJJKSAvKiBbJXIwICsgS10gKi8gICAgICAgICAgICAg ICBcCisrICBWKE1SUikgLyogWyVyMCArICVyMV0gKi8KKysKKyt9ICAvLyBuYW1lc3BhY2UgY29t cGlsZXIKKyt9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKyt9ICAvLyBuYW1lc3BhY2UgdjgKKysK KysjZW5kaWYgIC8vIFY4X0NPTVBJTEVSX0JBQ0tFTkRfUklTQ1ZfSU5TVFJVQ1RJT05fQ09ERVNf UklTQ1ZfSF8KK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb21waWxlci9iYWNrZW5kL3Jpc2N2NjQvaW5zdHJ1Y3Rp b24tc2NoZWR1bGVyLXJpc2N2NjQuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysrKyBx dHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4 L3NyYy9jb21waWxlci9iYWNrZW5kL3Jpc2N2NjQvaW5zdHJ1Y3Rpb24tc2NoZWR1bGVyLXJpc2N2 NjQuY2MKK0BAIC0wLDAgKzEsMTU3MSBAQAorKy8vIENvcHlyaWdodCAyMDE1IHRoZSBWOCBwcm9q ZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8v IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL21h Y3JvLWFzc2VtYmxlci5oIgorKyNpbmNsdWRlICJzcmMvY29tcGlsZXIvYmFja2VuZC9pbnN0cnVj dGlvbi1zY2hlZHVsZXIuaCIKKysKKytuYW1lc3BhY2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5h bCB7CisrbmFtZXNwYWNlIGNvbXBpbGVyIHsKKysKKytib29sIEluc3RydWN0aW9uU2NoZWR1bGVy OjpTY2hlZHVsZXJTdXBwb3J0ZWQoKSB7IHJldHVybiB0cnVlOyB9CisrCisraW50IEluc3RydWN0 aW9uU2NoZWR1bGVyOjpHZXRUYXJnZXRJbnN0cnVjdGlvbkZsYWdzKAorKyAgICBjb25zdCBJbnN0 cnVjdGlvbiogaW5zdHIpIGNvbnN0IHsKKysgIHN3aXRjaCAoaW5zdHItPmFyY2hfb3Bjb2RlKCkp IHsKKysgICAgY2FzZSBrUmlzY3ZBYnNEOgorKyAgICBjYXNlIGtSaXNjdkFic1M6CisrICAgIGNh c2Uga1Jpc2N2QWRkMzI6CisrICAgIGNhc2Uga1Jpc2N2QWRkRDoKKysgICAgY2FzZSBrUmlzY3ZB ZGRTOgorKyAgICBjYXNlIGtSaXNjdkFuZDoKKysgICAgY2FzZSBrUmlzY3ZBbmQzMjoKKysgICAg Y2FzZSBrUmlzY3ZBc3NlcnRFcXVhbDoKKysgICAgY2FzZSBrUmlzY3ZCaXRjYXN0REw6CisrICAg IGNhc2Uga1Jpc2N2Qml0Y2FzdExEOgorKyAgICBjYXNlIGtSaXNjdkJpdGNhc3RJbnQzMlRvRmxv YXQzMjoKKysgICAgY2FzZSBrUmlzY3ZCaXRjYXN0RmxvYXQzMlRvSW50MzI6CisrICAgIGNhc2Ug a1Jpc2N2Qnl0ZVN3YXAzMjoKKysgICAgY2FzZSBrUmlzY3ZCeXRlU3dhcDY0OgorKyAgICBjYXNl IGtSaXNjdkNlaWxXRDoKKysgICAgY2FzZSBrUmlzY3ZDZWlsV1M6CisrICAgIGNhc2Uga1Jpc2N2 Q2x6MzI6CisrICAgIGNhc2Uga1Jpc2N2Q21wOgorKyAgICBjYXNlIGtSaXNjdkNtcEQ6CisrICAg IGNhc2Uga1Jpc2N2Q21wUzoKKysgICAgY2FzZSBrUmlzY3ZDdHozMjoKKysgICAgY2FzZSBrUmlz Y3ZDdnRETDoKKysgICAgY2FzZSBrUmlzY3ZDdnREUzoKKysgICAgY2FzZSBrUmlzY3ZDdnREVWw6 CisrICAgIGNhc2Uga1Jpc2N2Q3Z0RFV3OgorKyAgICBjYXNlIGtSaXNjdkN2dERXOgorKyAgICBj YXNlIGtSaXNjdkN2dFNEOgorKyAgICBjYXNlIGtSaXNjdkN2dFNMOgorKyAgICBjYXNlIGtSaXNj dkN2dFNVbDoKKysgICAgY2FzZSBrUmlzY3ZDdnRTVXc6CisrICAgIGNhc2Uga1Jpc2N2Q3Z0U1c6 CisrICAgIGNhc2Uga1Jpc2N2TXVsSGlnaDY0OgorKyAgICBjYXNlIGtSaXNjdk11bEhpZ2hVMzI6 CisrICAgIGNhc2Uga1Jpc2N2QWRkNjQ6CisrICAgIGNhc2Uga1Jpc2N2QWRkT3ZmNjQ6CisrICAg IGNhc2Uga1Jpc2N2Q2x6NjQ6CisrICAgIGNhc2Uga1Jpc2N2Q3R6NjQ6CisrICAgIGNhc2Uga1Jp c2N2RGl2NjQ6CisrICAgIGNhc2Uga1Jpc2N2RGl2VTY0OgorKyAgICBjYXNlIGtSaXNjdlplcm9F eHRlbmRXb3JkOgorKyAgICBjYXNlIGtSaXNjdlNpZ25FeHRlbmRXb3JkOgorKyAgICBjYXNlIGtS aXNjdkRpdjMyOgorKyAgICBjYXNlIGtSaXNjdkRpdkQ6CisrICAgIGNhc2Uga1Jpc2N2RGl2UzoK KysgICAgY2FzZSBrUmlzY3ZEaXZVMzI6CisrICAgIGNhc2Uga1Jpc2N2TW9kNjQ6CisrICAgIGNh c2Uga1Jpc2N2TW9kVTY0OgorKyAgICBjYXNlIGtSaXNjdk11bDY0OgorKyAgICBjYXNlIGtSaXNj dlBvcGNudDY0OgorKyAgICBjYXNlIGtSaXNjdlJvcjY0OgorKyAgICBjYXNlIGtSaXNjdlNhcjY0 OgorKyAgICBjYXNlIGtSaXNjdlNobDY0OgorKyAgICBjYXNlIGtSaXNjdlNocjY0OgorKyAgICBj YXNlIGtSaXNjdlN1YjY0OgorKyAgICBjYXNlIGtSaXNjdlN1Yk92ZjY0OgorKyAgICBjYXNlIGtS aXNjdkY2NHgyQWJzOgorKyAgICBjYXNlIGtSaXNjdkY2NHgyTmVnOgorKyAgICBjYXNlIGtSaXNj dkY2NHgyU3FydDoKKysgICAgY2FzZSBrUmlzY3ZGNjR4MkFkZDoKKysgICAgY2FzZSBrUmlzY3ZG NjR4MlN1YjoKKysgICAgY2FzZSBrUmlzY3ZGNjR4Mk11bDoKKysgICAgY2FzZSBrUmlzY3ZGNjR4 MkRpdjoKKysgICAgY2FzZSBrUmlzY3ZGNjR4Mk1pbjoKKysgICAgY2FzZSBrUmlzY3ZGNjR4Mk1h eDoKKysgICAgY2FzZSBrUmlzY3ZGNjR4MkVxOgorKyAgICBjYXNlIGtSaXNjdkY2NHgyTmU6Cisr ICAgIGNhc2Uga1Jpc2N2RjY0eDJMdDoKKysgICAgY2FzZSBrUmlzY3ZGNjR4MkxlOgorKyAgICBj YXNlIGtSaXNjdkY2NHgyUG1pbjoKKysgICAgY2FzZSBrUmlzY3ZGNjR4MlBtYXg6CisrICAgIGNh c2Uga1Jpc2N2RjY0eDJDZWlsOgorKyAgICBjYXNlIGtSaXNjdkY2NHgyRmxvb3I6CisrICAgIGNh c2Uga1Jpc2N2RjY0eDJUcnVuYzoKKysgICAgY2FzZSBrUmlzY3ZGNjR4Mk5lYXJlc3RJbnQ6Cisr ICAgIGNhc2Uga1Jpc2N2STY0eDJTcGxhdDoKKysgICAgY2FzZSBrUmlzY3ZJNjR4MkV4dHJhY3RM YW5lOgorKyAgICBjYXNlIGtSaXNjdkk2NHgyUmVwbGFjZUxhbmU6CisrICAgIGNhc2Uga1Jpc2N2 STY0eDJBZGQ6CisrICAgIGNhc2Uga1Jpc2N2STY0eDJTdWI6CisrICAgIGNhc2Uga1Jpc2N2STY0 eDJNdWw6CisrICAgIGNhc2Uga1Jpc2N2STY0eDJOZWc6CisrICAgIGNhc2Uga1Jpc2N2STY0eDJT aGw6CisrICAgIGNhc2Uga1Jpc2N2STY0eDJTaHJTOgorKyAgICBjYXNlIGtSaXNjdkk2NHgyU2hy VToKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NEFiczoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NEFkZDoK KysgICAgY2FzZSBrUmlzY3ZGMzJ4NEFkZEhvcml6OgorKyAgICBjYXNlIGtSaXNjdkYzMng0RXE6 CisrICAgIGNhc2Uga1Jpc2N2RjMyeDRFeHRyYWN0TGFuZToKKysgICAgY2FzZSBrUmlzY3ZGMzJ4 NEx0OgorKyAgICBjYXNlIGtSaXNjdkYzMng0TGU6CisrICAgIGNhc2Uga1Jpc2N2RjMyeDRNYXg6 CisrICAgIGNhc2Uga1Jpc2N2RjMyeDRNaW46CisrICAgIGNhc2Uga1Jpc2N2RjMyeDRNdWw6Cisr ICAgIGNhc2Uga1Jpc2N2RjMyeDREaXY6CisrICAgIGNhc2Uga1Jpc2N2RjMyeDROZToKKysgICAg Y2FzZSBrUmlzY3ZGMzJ4NE5lZzoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NFNxcnQ6CisrICAgIGNh c2Uga1Jpc2N2RjMyeDRSZWNpcEFwcHJveDoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NFJlY2lwU3Fy dEFwcHJveDoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NFJlcGxhY2VMYW5lOgorKyAgICBjYXNlIGtS aXNjdkYzMng0U0NvbnZlcnRJMzJ4NDoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NFNwbGF0OgorKyAg ICBjYXNlIGtSaXNjdkYzMng0U3ViOgorKyAgICBjYXNlIGtSaXNjdkYzMng0VUNvbnZlcnRJMzJ4 NDoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NFBtaW46CisrICAgIGNhc2Uga1Jpc2N2RjMyeDRQbWF4 OgorKyAgICBjYXNlIGtSaXNjdkYzMng0Q2VpbDoKKysgICAgY2FzZSBrUmlzY3ZGMzJ4NEZsb29y OgorKyAgICBjYXNlIGtSaXNjdkYzMng0VHJ1bmM6CisrICAgIGNhc2Uga1Jpc2N2RjMyeDROZWFy ZXN0SW50OgorKyAgICBjYXNlIGtSaXNjdkY2NHgyU3BsYXQ6CisrICAgIGNhc2Uga1Jpc2N2RjY0 eDJFeHRyYWN0TGFuZToKKysgICAgY2FzZSBrUmlzY3ZGNjR4MlJlcGxhY2VMYW5lOgorKyAgICBj YXNlIGtSaXNjdkZsb2F0MzJNYXg6CisrICAgIGNhc2Uga1Jpc2N2RmxvYXQzMk1pbjoKKysgICAg Y2FzZSBrUmlzY3ZGbG9hdDMyUm91bmREb3duOgorKyAgICBjYXNlIGtSaXNjdkZsb2F0MzJSb3Vu ZFRpZXNFdmVuOgorKyAgICBjYXNlIGtSaXNjdkZsb2F0MzJSb3VuZFRydW5jYXRlOgorKyAgICBj YXNlIGtSaXNjdkZsb2F0MzJSb3VuZFVwOgorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRFeHRyYWN0 TG93V29yZDMyOgorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRFeHRyYWN0SGlnaFdvcmQzMjoKKysg ICAgY2FzZSBrUmlzY3ZGbG9hdDY0SW5zZXJ0TG93V29yZDMyOgorKyAgICBjYXNlIGtSaXNjdkZs b2F0NjRJbnNlcnRIaWdoV29yZDMyOgorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRNYXg6CisrICAg IGNhc2Uga1Jpc2N2RmxvYXQ2NE1pbjoKKysgICAgY2FzZSBrUmlzY3ZGbG9hdDY0Um91bmREb3du OgorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRSb3VuZFRpZXNFdmVuOgorKyAgICBjYXNlIGtSaXNj dkZsb2F0NjRSb3VuZFRydW5jYXRlOgorKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRSb3VuZFVwOgor KyAgICBjYXNlIGtSaXNjdkZsb2F0NjRTaWxlbmNlTmFOOgorKyAgICBjYXNlIGtSaXNjdkZsb29y V0Q6CisrICAgIGNhc2Uga1Jpc2N2Rmxvb3JXUzoKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OEFkZDoK KysgICAgY2FzZSBrUmlzY3ZJMTZ4OEFkZEhvcml6OgorKyAgICBjYXNlIGtSaXNjdkkxNng4QWRk U2F0dXJhdGVTOgorKyAgICBjYXNlIGtSaXNjdkkxNng4QWRkU2F0dXJhdGVVOgorKyAgICBjYXNl IGtSaXNjdkkxNng4RXE6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhFeHRyYWN0TGFuZVU6CisrICAg IGNhc2Uga1Jpc2N2STE2eDhFeHRyYWN0TGFuZVM6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhHZVM6 CisrICAgIGNhc2Uga1Jpc2N2STE2eDhHZVU6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhHdFM6Cisr ICAgIGNhc2Uga1Jpc2N2STE2eDhHdFU6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhNYXhTOgorKyAg ICBjYXNlIGtSaXNjdkkxNng4TWF4VToKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OE1pblM6CisrICAg IGNhc2Uga1Jpc2N2STE2eDhNaW5VOgorKyAgICBjYXNlIGtSaXNjdkkxNng4TXVsOgorKyAgICBj YXNlIGtSaXNjdkkxNng4TmU6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhOZWc6CisrICAgIGNhc2Ug a1Jpc2N2STE2eDhSZXBsYWNlTGFuZToKKysgICAgY2FzZSBrUmlzY3ZJOHgxNlNDb252ZXJ0STE2 eDg6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhTQ29udmVydEkzMng0OgorKyAgICBjYXNlIGtSaXNj dkkxNng4U0NvbnZlcnRJOHgxNkhpZ2g6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhTQ29udmVydEk4 eDE2TG93OgorKyAgICBjYXNlIGtSaXNjdkkxNng4U2hsOgorKyAgICBjYXNlIGtSaXNjdkkxNng4 U2hyUzoKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OFNoclU6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhT cGxhdDoKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OFN1YjoKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OFN1 YlNhdHVyYXRlUzoKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OFN1YlNhdHVyYXRlVToKKysgICAgY2Fz ZSBrUmlzY3ZJOHgxNlVDb252ZXJ0STE2eDg6CisrICAgIGNhc2Uga1Jpc2N2STE2eDhVQ29udmVy dEkzMng0OgorKyAgICBjYXNlIGtSaXNjdkkxNng4VUNvbnZlcnRJOHgxNkhpZ2g6CisrICAgIGNh c2Uga1Jpc2N2STE2eDhVQ29udmVydEk4eDE2TG93OgorKyAgICBjYXNlIGtSaXNjdkkxNng4Um91 bmRpbmdBdmVyYWdlVToKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OEFiczoKKysgICAgY2FzZSBrUmlz Y3ZJMTZ4OEJpdE1hc2s6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRBZGQ6CisrICAgIGNhc2Uga1Jp c2N2STMyeDRBZGRIb3JpejoKKysgICAgY2FzZSBrUmlzY3ZJMzJ4NEVxOgorKyAgICBjYXNlIGtS aXNjdkkzMng0RXh0cmFjdExhbmU6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRHZVM6CisrICAgIGNh c2Uga1Jpc2N2STMyeDRHZVU6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRHdFM6CisrICAgIGNhc2Ug a1Jpc2N2STMyeDRHdFU6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRNYXhTOgorKyAgICBjYXNlIGtS aXNjdkkzMng0TWF4VToKKysgICAgY2FzZSBrUmlzY3ZJMzJ4NE1pblM6CisrICAgIGNhc2Uga1Jp c2N2STMyeDRNaW5VOgorKyAgICBjYXNlIGtSaXNjdkkzMng0TXVsOgorKyAgICBjYXNlIGtSaXNj dkkzMng0TmU6CisrICAgIGNhc2Uga1Jpc2N2STMyeDROZWc6CisrICAgIGNhc2Uga1Jpc2N2STMy eDRSZXBsYWNlTGFuZToKKysgICAgY2FzZSBrUmlzY3ZJMzJ4NFNDb252ZXJ0RjMyeDQ6CisrICAg IGNhc2Uga1Jpc2N2STMyeDRTQ29udmVydEkxNng4SGlnaDoKKysgICAgY2FzZSBrUmlzY3ZJMzJ4 NFNDb252ZXJ0STE2eDhMb3c6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRTaGw6CisrICAgIGNhc2Ug a1Jpc2N2STMyeDRTaHJTOgorKyAgICBjYXNlIGtSaXNjdkkzMng0U2hyVToKKysgICAgY2FzZSBr UmlzY3ZJMzJ4NFNwbGF0OgorKyAgICBjYXNlIGtSaXNjdkkzMng0U3ViOgorKyAgICBjYXNlIGtS aXNjdkkzMng0VUNvbnZlcnRGMzJ4NDoKKysgICAgY2FzZSBrUmlzY3ZJMzJ4NFVDb252ZXJ0STE2 eDhIaWdoOgorKyAgICBjYXNlIGtSaXNjdkkzMng0VUNvbnZlcnRJMTZ4OExvdzoKKysgICAgY2Fz ZSBrUmlzY3ZJMzJ4NEFiczoKKysgICAgY2FzZSBrUmlzY3ZJMzJ4NEJpdE1hc2s6CisrICAgIGNh c2Uga1Jpc2N2STh4MTZBZGQ6CisrICAgIGNhc2Uga1Jpc2N2STh4MTZBZGRTYXR1cmF0ZVM6Cisr ICAgIGNhc2Uga1Jpc2N2STh4MTZBZGRTYXR1cmF0ZVU6CisrICAgIGNhc2Uga1Jpc2N2STh4MTZF cToKKysgICAgY2FzZSBrUmlzY3ZJOHgxNkV4dHJhY3RMYW5lVToKKysgICAgY2FzZSBrUmlzY3ZJ OHgxNkV4dHJhY3RMYW5lUzoKKysgICAgY2FzZSBrUmlzY3ZJOHgxNkdlUzoKKysgICAgY2FzZSBr UmlzY3ZJOHgxNkdlVToKKysgICAgY2FzZSBrUmlzY3ZJOHgxNkd0UzoKKysgICAgY2FzZSBrUmlz Y3ZJOHgxNkd0VToKKysgICAgY2FzZSBrUmlzY3ZJOHgxNk1heFM6CisrICAgIGNhc2Uga1Jpc2N2 STh4MTZNYXhVOgorKyAgICBjYXNlIGtSaXNjdkk4eDE2TWluUzoKKysgICAgY2FzZSBrUmlzY3ZJ OHgxNk1pblU6CisrICAgIGNhc2Uga1Jpc2N2STh4MTZNdWw6CisrICAgIGNhc2Uga1Jpc2N2STh4 MTZOZToKKysgICAgY2FzZSBrUmlzY3ZJOHgxNk5lZzoKKysgICAgY2FzZSBrUmlzY3ZJOHgxNlJl cGxhY2VMYW5lOgorKyAgICBjYXNlIGtSaXNjdkk4eDE2U2hsOgorKyAgICBjYXNlIGtSaXNjdkk4 eDE2U2hyUzoKKysgICAgY2FzZSBrUmlzY3ZJOHgxNlNoclU6CisrICAgIGNhc2Uga1Jpc2N2STh4 MTZTcGxhdDoKKysgICAgY2FzZSBrUmlzY3ZJOHgxNlN1YjoKKysgICAgY2FzZSBrUmlzY3ZJOHgx NlN1YlNhdHVyYXRlUzoKKysgICAgY2FzZSBrUmlzY3ZJOHgxNlN1YlNhdHVyYXRlVToKKysgICAg Y2FzZSBrUmlzY3ZJOHgxNlJvdW5kaW5nQXZlcmFnZVU6CisrICAgIGNhc2Uga1Jpc2N2STh4MTZB YnM6CisrICAgIGNhc2Uga1Jpc2N2STh4MTZCaXRNYXNrOgorKyAgICBjYXNlIGtSaXNjdk1heEQ6 CisrICAgIGNhc2Uga1Jpc2N2TWF4UzoKKysgICAgY2FzZSBrUmlzY3ZNaW5EOgorKyAgICBjYXNl IGtSaXNjdk1pblM6CisrICAgIGNhc2Uga1Jpc2N2TW9kMzI6CisrICAgIGNhc2Uga1Jpc2N2TW9k VTMyOgorKyAgICBjYXNlIGtSaXNjdk1vdjoKKysgICAgY2FzZSBrUmlzY3ZNdWwzMjoKKysgICAg Y2FzZSBrUmlzY3ZNdWxEOgorKyAgICBjYXNlIGtSaXNjdk11bEhpZ2gzMjoKKysgICAgY2FzZSBr UmlzY3ZNdWxPdmYzMjoKKysgICAgY2FzZSBrUmlzY3ZNdWxTOgorKyAgICBjYXNlIGtSaXNjdk5l Z0Q6CisrICAgIGNhc2Uga1Jpc2N2TmVnUzoKKysgICAgY2FzZSBrUmlzY3ZOb3I6CisrICAgIGNh c2Uga1Jpc2N2Tm9yMzI6CisrICAgIGNhc2Uga1Jpc2N2T3I6CisrICAgIGNhc2Uga1Jpc2N2T3Iz MjoKKysgICAgY2FzZSBrUmlzY3ZQb3BjbnQzMjoKKysgICAgY2FzZSBrUmlzY3ZSb3IzMjoKKysg ICAgY2FzZSBrUmlzY3ZSb3VuZFdEOgorKyAgICBjYXNlIGtSaXNjdlJvdW5kV1M6CisrICAgIGNh c2Uga1Jpc2N2UzEyOEFuZDoKKysgICAgY2FzZSBrUmlzY3ZTMTI4T3I6CisrICAgIGNhc2Uga1Jp c2N2UzEyOE5vdDoKKysgICAgY2FzZSBrUmlzY3ZTMTI4U2VsZWN0OgorKyAgICBjYXNlIGtSaXNj dlMxMjhBbmROb3Q6CisrICAgIGNhc2Uga1Jpc2N2UzEyOFhvcjoKKysgICAgY2FzZSBrUmlzY3ZT MTI4Q29uc3Q6CisrICAgIGNhc2Uga1Jpc2N2UzEyOFplcm86CisrICAgIGNhc2Uga1Jpc2N2UzEy OEFsbE9uZXM6CisrICAgIGNhc2Uga1Jpc2N2UzE2eDhJbnRlcmxlYXZlRXZlbjoKKysgICAgY2Fz ZSBrUmlzY3ZTMTZ4OEludGVybGVhdmVPZGQ6CisrICAgIGNhc2Uga1Jpc2N2UzE2eDhJbnRlcmxl YXZlTGVmdDoKKysgICAgY2FzZSBrUmlzY3ZTMTZ4OEludGVybGVhdmVSaWdodDoKKysgICAgY2Fz ZSBrUmlzY3ZTMTZ4OFBhY2tFdmVuOgorKyAgICBjYXNlIGtSaXNjdlMxNng4UGFja09kZDoKKysg ICAgY2FzZSBrUmlzY3ZTMTZ4MlJldmVyc2U6CisrICAgIGNhc2Uga1Jpc2N2UzE2eDRSZXZlcnNl OgorKyAgICBjYXNlIGtSaXNjdlY4eDE2QWxsVHJ1ZToKKysgICAgY2FzZSBrUmlzY3ZWOHgxNkFu eVRydWU6CisrICAgIGNhc2Uga1Jpc2N2VjMyeDRBbGxUcnVlOgorKyAgICBjYXNlIGtSaXNjdlYz Mng0QW55VHJ1ZToKKysgICAgY2FzZSBrUmlzY3ZWMTZ4OEFsbFRydWU6CisrICAgIGNhc2Uga1Jp c2N2VjE2eDhBbnlUcnVlOgorKyAgICBjYXNlIGtSaXNjdlMzMng0SW50ZXJsZWF2ZUV2ZW46Cisr ICAgIGNhc2Uga1Jpc2N2UzMyeDRJbnRlcmxlYXZlT2RkOgorKyAgICBjYXNlIGtSaXNjdlMzMng0 SW50ZXJsZWF2ZUxlZnQ6CisrICAgIGNhc2Uga1Jpc2N2UzMyeDRJbnRlcmxlYXZlUmlnaHQ6Cisr ICAgIGNhc2Uga1Jpc2N2UzMyeDRQYWNrRXZlbjoKKysgICAgY2FzZSBrUmlzY3ZTMzJ4NFBhY2tP ZGQ6CisrICAgIGNhc2Uga1Jpc2N2UzMyeDRTaHVmZmxlOgorKyAgICBjYXNlIGtSaXNjdlM4eDE2 Q29uY2F0OgorKyAgICBjYXNlIGtSaXNjdlM4eDE2SW50ZXJsZWF2ZUV2ZW46CisrICAgIGNhc2Ug a1Jpc2N2Uzh4MTZJbnRlcmxlYXZlT2RkOgorKyAgICBjYXNlIGtSaXNjdlM4eDE2SW50ZXJsZWF2 ZUxlZnQ6CisrICAgIGNhc2Uga1Jpc2N2Uzh4MTZJbnRlcmxlYXZlUmlnaHQ6CisrICAgIGNhc2Ug a1Jpc2N2Uzh4MTZQYWNrRXZlbjoKKysgICAgY2FzZSBrUmlzY3ZTOHgxNlBhY2tPZGQ6CisrICAg IGNhc2Uga1Jpc2N2Uzh4MlJldmVyc2U6CisrICAgIGNhc2Uga1Jpc2N2Uzh4NFJldmVyc2U6Cisr ICAgIGNhc2Uga1Jpc2N2Uzh4OFJldmVyc2U6CisrICAgIGNhc2Uga1Jpc2N2STh4MTZTaHVmZmxl OgorKyAgICBjYXNlIGtSaXNjdkk4eDE2U3dpenpsZToKKysgICAgY2FzZSBrUmlzY3ZTYXIzMjoK KysgICAgY2FzZSBrUmlzY3ZTaWduRXh0ZW5kQnl0ZToKKysgICAgY2FzZSBrUmlzY3ZTaWduRXh0 ZW5kU2hvcnQ6CisrICAgIGNhc2Uga1Jpc2N2U2hsMzI6CisrICAgIGNhc2Uga1Jpc2N2U2hyMzI6 CisrICAgIGNhc2Uga1Jpc2N2U3FydEQ6CisrICAgIGNhc2Uga1Jpc2N2U3FydFM6CisrICAgIGNh c2Uga1Jpc2N2U3ViMzI6CisrICAgIGNhc2Uga1Jpc2N2U3ViRDoKKysgICAgY2FzZSBrUmlzY3ZT dWJTOgorKyAgICBjYXNlIGtSaXNjdlRydW5jTEQ6CisrICAgIGNhc2Uga1Jpc2N2VHJ1bmNMUzoK KysgICAgY2FzZSBrUmlzY3ZUcnVuY1VsRDoKKysgICAgY2FzZSBrUmlzY3ZUcnVuY1VsUzoKKysg ICAgY2FzZSBrUmlzY3ZUcnVuY1V3RDoKKysgICAgY2FzZSBrUmlzY3ZUcnVuY1V3UzoKKysgICAg Y2FzZSBrUmlzY3ZUcnVuY1dEOgorKyAgICBjYXNlIGtSaXNjdlRydW5jV1M6CisrICAgIGNhc2Ug a1Jpc2N2VHN0OgorKyAgICBjYXNlIGtSaXNjdlhvcjoKKysgICAgY2FzZSBrUmlzY3ZYb3IzMjoK KysgICAgICByZXR1cm4ga05vT3Bjb2RlRmxhZ3M7CisrCisrICAgIGNhc2Uga1Jpc2N2TGI6Cisr ICAgIGNhc2Uga1Jpc2N2TGJ1OgorKyAgICBjYXNlIGtSaXNjdkxkOgorKyAgICBjYXNlIGtSaXNj dkxvYWREb3VibGU6CisrICAgIGNhc2Uga1Jpc2N2TGg6CisrICAgIGNhc2Uga1Jpc2N2TGh1Ogor KyAgICBjYXNlIGtSaXNjdkx3OgorKyAgICBjYXNlIGtSaXNjdkxvYWRGbG9hdDoKKysgICAgY2Fz ZSBrUmlzY3ZMd3U6CisrICAgIGNhc2Uga1Jpc2N2TXNhTGQ6CisrICAgIGNhc2Uga1Jpc2N2UGVl azoKKysgICAgY2FzZSBrUmlzY3ZVbGQ6CisrICAgIGNhc2Uga1Jpc2N2VUxvYWREb3VibGU6Cisr ICAgIGNhc2Uga1Jpc2N2VWxoOgorKyAgICBjYXNlIGtSaXNjdlVsaHU6CisrICAgIGNhc2Uga1Jp c2N2VWx3OgorKyAgICBjYXNlIGtSaXNjdlVsd3U6CisrICAgIGNhc2Uga1Jpc2N2VUxvYWRGbG9h dDoKKysgICAgY2FzZSBrUmlzY3ZTOHgxNkxvYWRTcGxhdDoKKysgICAgY2FzZSBrUmlzY3ZTMTZ4 OExvYWRTcGxhdDoKKysgICAgY2FzZSBrUmlzY3ZTMzJ4NExvYWRTcGxhdDoKKysgICAgY2FzZSBr UmlzY3ZTNjR4MkxvYWRTcGxhdDoKKysgICAgY2FzZSBrUmlzY3ZJMTZ4OExvYWQ4eDhTOgorKyAg ICBjYXNlIGtSaXNjdkkxNng4TG9hZDh4OFU6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRMb2FkMTZ4 NFM6CisrICAgIGNhc2Uga1Jpc2N2STMyeDRMb2FkMTZ4NFU6CisrICAgIGNhc2Uga1Jpc2N2STY0 eDJMb2FkMzJ4MlM6CisrICAgIGNhc2Uga1Jpc2N2STY0eDJMb2FkMzJ4MlU6CisrICAgIGNhc2Ug a1Jpc2N2V29yZDY0QXRvbWljTG9hZFVpbnQ4OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21p Y0xvYWRVaW50MTY6CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljTG9hZFVpbnQzMjoKKysg ICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNMb2FkVWludDY0OgorKworKyAgICAgIHJldHVybiBr SXNMb2FkT3BlcmF0aW9uOworKworKyAgICBjYXNlIGtSaXNjdk1vZEQ6CisrICAgIGNhc2Uga1Jp c2N2TW9kUzoKKysgICAgY2FzZSBrUmlzY3ZNc2FTdDoKKysgICAgY2FzZSBrUmlzY3ZQdXNoOgor KyAgICBjYXNlIGtSaXNjdlNiOgorKyAgICBjYXNlIGtSaXNjdlNkOgorKyAgICBjYXNlIGtSaXNj dlN0b3JlRG91YmxlOgorKyAgICBjYXNlIGtSaXNjdlNoOgorKyAgICBjYXNlIGtSaXNjdlN0YWNr Q2xhaW06CisrICAgIGNhc2Uga1Jpc2N2U3RvcmVUb1N0YWNrU2xvdDoKKysgICAgY2FzZSBrUmlz Y3ZTdzoKKysgICAgY2FzZSBrUmlzY3ZTdG9yZUZsb2F0OgorKyAgICBjYXNlIGtSaXNjdlVzZDoK KysgICAgY2FzZSBrUmlzY3ZVU3RvcmVEb3VibGU6CisrICAgIGNhc2Uga1Jpc2N2VXNoOgorKyAg ICBjYXNlIGtSaXNjdlVzdzoKKysgICAgY2FzZSBrUmlzY3ZVU3RvcmVGbG9hdDoKKysgICAgY2Fz ZSBrUmlzY3ZTeW5jOgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY1N0b3JlV29yZDg6Cisr ICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljU3RvcmVXb3JkMTY6CisrICAgIGNhc2Uga1Jpc2N2 V29yZDY0QXRvbWljU3RvcmVXb3JkMzI6CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljU3Rv cmVXb3JkNjQ6CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljQWRkVWludDg6CisrICAgIGNh c2Uga1Jpc2N2V29yZDY0QXRvbWljQWRkVWludDE2OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0 b21pY0FkZFVpbnQzMjoKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNBZGRVaW50NjQ6Cisr ICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljU3ViVWludDg6CisrICAgIGNhc2Uga1Jpc2N2V29y ZDY0QXRvbWljU3ViVWludDE2OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY1N1YlVpbnQz MjoKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNTdWJVaW50NjQ6CisrICAgIGNhc2Uga1Jp c2N2V29yZDY0QXRvbWljQW5kVWludDg6CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljQW5k VWludDE2OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY0FuZFVpbnQzMjoKKysgICAgY2Fz ZSBrUmlzY3ZXb3JkNjRBdG9taWNBbmRVaW50NjQ6CisrICAgIGNhc2Uga1Jpc2N2V29yZDY0QXRv bWljT3JVaW50ODoKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNPclVpbnQxNjoKKysgICAg Y2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNPclVpbnQzMjoKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRB dG9taWNPclVpbnQ2NDoKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNYb3JVaW50ODoKKysg ICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNYb3JVaW50MTY6CisrICAgIGNhc2Uga1Jpc2N2V29y ZDY0QXRvbWljWG9yVWludDMyOgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY1hvclVpbnQ2 NDoKKysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNFeGNoYW5nZVVpbnQ4OgorKyAgICBjYXNl IGtSaXNjdldvcmQ2NEF0b21pY0V4Y2hhbmdlVWludDE2OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2 NEF0b21pY0V4Y2hhbmdlVWludDMyOgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY0V4Y2hh bmdlVWludDY0OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5nZVVp bnQ4OgorKyAgICBjYXNlIGtSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5nZVVpbnQxNjoK KysgICAgY2FzZSBrUmlzY3ZXb3JkNjRBdG9taWNDb21wYXJlRXhjaGFuZ2VVaW50MzI6CisrICAg IGNhc2Uga1Jpc2N2V29yZDY0QXRvbWljQ29tcGFyZUV4Y2hhbmdlVWludDY0OgorKyAgICAgIHJl dHVybiBrSGFzU2lkZUVmZmVjdDsKKysKKysjZGVmaW5lIENBU0UoTmFtZSkgY2FzZSBrIyNOYW1l OgorKyAgICAgIENPTU1PTl9BUkNIX09QQ09ERV9MSVNUKENBU0UpCisrI3VuZGVmIENBU0UKKysg ICAgICAvLyBBbHJlYWR5IGNvdmVyZWQgaW4gYXJjaGl0ZWN0dXJlIGluZGVwZW5kZW50IGNvZGUu CisrICAgICAgVU5SRUFDSEFCTEUoKTsKKysgIH0KKysKKysgIFVOUkVBQ0hBQkxFKCk7CisrfQor KworK2VudW0gTGF0ZW5jeSB7CisrICBCUkFOQ0ggPSA0LCAgLy8gRXN0aW1hdGVkIG1heC4KKysg IFJJTlRfUyA9IDQsICAvLyBFc3RpbWF0ZWQuCisrICBSSU5UX0QgPSA0LCAgLy8gRXN0aW1hdGVk LgorKworKyAgLy8gRklYTUUgKFJJU0NWKTogcmVtb3ZlIE1VTFQgaW5zdHJ1Y3Rpb25zIChNSVBT IGxlZ2FjeSkKKysgIE1VTFQgPSA0LAorKyAgTVVMVFUgPSA0LAorKyAgRE1VTFQgPSA0LAorKwor KyAgTVVMMzIgPSA3LAorKworKyAgRElWMzIgPSA1MCwgIC8vIE1pbjoxMSBNYXg6NTAKKysgIERJ VjY0ID0gNTAsCisrICBESVZVMzIgPSA1MCwKKysgIERJVlU2NCA9IDUwLAorKworKyAgQUJTX1Mg PSA0LAorKyAgQUJTX0QgPSA0LAorKyAgTkVHX1MgPSA0LAorKyAgTkVHX0QgPSA0LAorKyAgQURE X1MgPSA0LAorKyAgQUREX0QgPSA0LAorKyAgU1VCX1MgPSA0LAorKyAgU1VCX0QgPSA0LAorKyAg TUFYX1MgPSA0LCAgLy8gRXN0aW1hdGVkLgorKyAgTUlOX1MgPSA0LAorKyAgTUFYX0QgPSA0LCAg Ly8gRXN0aW1hdGVkLgorKyAgTUlOX0QgPSA0LAorKyAgQ19jb25kX1MgPSA0LAorKyAgQ19jb25k X0QgPSA0LAorKyAgTVVMX1MgPSA0LAorKworKyAgTUFERF9TID0gNCwKKysgIE1TVUJfUyA9IDQs CisrICBOTUFERF9TID0gNCwKKysgIE5NU1VCX1MgPSA0LAorKworKyAgQ0FCU19jb25kX1MgPSA0 LAorKyAgQ0FCU19jb25kX0QgPSA0LAorKworKyAgQ1ZUX0RfUyA9IDQsCisrICBDVlRfUFNfUFcg PSA0LAorKworKyAgQ1ZUX1NfVyA9IDQsCisrICBDVlRfU19MID0gNCwKKysgIENWVF9EX1cgPSA0 LAorKyAgQ1ZUX0RfTCA9IDQsCisrCisrICBDVlRfU19EID0gNCwKKysKKysgIENWVF9XX1MgPSA0 LAorKyAgQ1ZUX1dfRCA9IDQsCisrICBDVlRfTF9TID0gNCwKKysgIENWVF9MX0QgPSA0LAorKwor KyAgQ0VJTF9XX1MgPSA0LAorKyAgQ0VJTF9XX0QgPSA0LAorKyAgQ0VJTF9MX1MgPSA0LAorKyAg Q0VJTF9MX0QgPSA0LAorKworKyAgRkxPT1JfV19TID0gNCwKKysgIEZMT09SX1dfRCA9IDQsCisr ICBGTE9PUl9MX1MgPSA0LAorKyAgRkxPT1JfTF9EID0gNCwKKysKKysgIFJPVU5EX1dfUyA9IDQs CisrICBST1VORF9XX0QgPSA0LAorKyAgUk9VTkRfTF9TID0gNCwKKysgIFJPVU5EX0xfRCA9IDQs CisrCisrICBUUlVOQ19XX1MgPSA0LAorKyAgVFJVTkNfV19EID0gNCwKKysgIFRSVU5DX0xfUyA9 IDQsCisrICBUUlVOQ19MX0QgPSA0LAorKworKyAgTU9WX1MgPSA0LAorKyAgTU9WX0QgPSA0LAor KworKyAgTU9WRl9TID0gNCwKKysgIE1PVkZfRCA9IDQsCisrCisrICBNT1ZOX1MgPSA0LAorKyAg TU9WTl9EID0gNCwKKysKKysgIE1PVlRfUyA9IDQsCisrICBNT1ZUX0QgPSA0LAorKworKyAgTU9W Wl9TID0gNCwKKysgIE1PVlpfRCA9IDQsCisrCisrICBNVUxfRCA9IDUsCisrICBNQUREX0QgPSA1 LAorKyAgTVNVQl9EID0gNSwKKysgIE5NQUREX0QgPSA1LAorKyAgTk1TVUJfRCA9IDUsCisrCisr ICBSRUNJUF9TID0gMTMsCisrICBSRUNJUF9EID0gMjYsCisrCisrICBSU1FSVF9TID0gMTcsCisr ICBSU1FSVF9EID0gMzYsCisrCisrICBESVZfUyA9IDE3LAorKyAgU1FSVF9TID0gMTcsCisrCisr ICBESVZfRCA9IDMyLAorKyAgU1FSVF9EID0gMzIsCisrCisrICBNT1ZUX0ZSRUcgPSA0LAorKyAg TU9WVF9ISUdIX0ZSRUcgPSA0LAorKyAgTU9WVF9EUkVHID0gNCwKKysgIExPQURfRkxPQVQgPSA0 LAorKyAgTE9BRF9ET1VCTEUgPSA0LAorKworKyAgTU9WRl9GUkVHID0gMSwKKysgIE1PVkZfSElH SF9GUkVHID0gMSwKKysgIE1PVkZfSElHSF9EUkVHID0gMSwKKysgIE1PVkZfSElHSCA9IDEsCisr ICBNT1ZGX0xPVyA9IDEsCisrICBTVE9SRV9GTE9BVCA9IDEsCisrICBTVE9SRV9ET1VCTEUgPSAx LAorK307CisrCisraW50IEFkZDY0TGF0ZW5jeShib29sIGlzX29wZXJhbmRfcmVnaXN0ZXIgPSB0 cnVlKSB7CisrICBpZiAoaXNfb3BlcmFuZF9yZWdpc3RlcikgeworKyAgICByZXR1cm4gMTsKKysg IH0gZWxzZSB7CisrICAgIHJldHVybiAyOyAgLy8gRXN0aW1hdGVkIG1heC4KKysgIH0KKyt9Cisr CisraW50IFN1YjY0TGF0ZW5jeShib29sIGlzX29wZXJhbmRfcmVnaXN0ZXIgPSB0cnVlKSB7Cisr ICByZXR1cm4gQWRkNjRMYXRlbmN5KGlzX29wZXJhbmRfcmVnaXN0ZXIpOworK30KKysKKytpbnQg QW5kTGF0ZW5jeShib29sIGlzX29wZXJhbmRfcmVnaXN0ZXIgPSB0cnVlKSB7CisrICByZXR1cm4g QWRkNjRMYXRlbmN5KGlzX29wZXJhbmRfcmVnaXN0ZXIpOworK30KKysKKytpbnQgT3JMYXRlbmN5 KGJvb2wgaXNfb3BlcmFuZF9yZWdpc3RlciA9IHRydWUpIHsKKysgIHJldHVybiBBZGQ2NExhdGVu Y3koaXNfb3BlcmFuZF9yZWdpc3Rlcik7CisrfQorKworK2ludCBOb3JMYXRlbmN5KGJvb2wgaXNf b3BlcmFuZF9yZWdpc3RlciA9IHRydWUpIHsKKysgIGlmIChpc19vcGVyYW5kX3JlZ2lzdGVyKSB7 CisrICAgIHJldHVybiAxOworKyAgfSBlbHNlIHsKKysgICAgcmV0dXJuIDI7ICAvLyBFc3RpbWF0 ZWQgbWF4LgorKyAgfQorK30KKysKKytpbnQgWG9yTGF0ZW5jeShib29sIGlzX29wZXJhbmRfcmVn aXN0ZXIgPSB0cnVlKSB7CisrICByZXR1cm4gQWRkNjRMYXRlbmN5KGlzX29wZXJhbmRfcmVnaXN0 ZXIpOworK30KKysKKytpbnQgTXVsMzJMYXRlbmN5KGJvb2wgaXNfb3BlcmFuZF9yZWdpc3RlciA9 IHRydWUpIHsKKysgIGlmIChpc19vcGVyYW5kX3JlZ2lzdGVyKSB7CisrICAgIHJldHVybiBMYXRl bmN5OjpNVUwzMjsKKysgIH0gZWxzZSB7CisrICAgIHJldHVybiBMYXRlbmN5OjpNVUwzMiArIDE7 CisrICB9CisrfQorKworK2ludCBNdWw2NExhdGVuY3koYm9vbCBpc19vcGVyYW5kX3JlZ2lzdGVy ID0gdHJ1ZSkgeworKyAgaW50IGxhdGVuY3kgPSBMYXRlbmN5OjpETVVMVCArIExhdGVuY3k6Ok1P VkZfTE9XOworKyAgaWYgKCFpc19vcGVyYW5kX3JlZ2lzdGVyKSB7CisrICAgIGxhdGVuY3kgKz0g MTsKKysgIH0KKysgIHJldHVybiBsYXRlbmN5OworK30KKysKKytpbnQgTXVsaDMyTGF0ZW5jeShi b29sIGlzX29wZXJhbmRfcmVnaXN0ZXIgPSB0cnVlKSB7CisrICBpbnQgbGF0ZW5jeSA9IExhdGVu Y3k6Ok1VTFQgKyBMYXRlbmN5OjpNT1ZGX0hJR0g7CisrICBpZiAoIWlzX29wZXJhbmRfcmVnaXN0 ZXIpIHsKKysgICAgbGF0ZW5jeSArPSAxOworKyAgfQorKyAgcmV0dXJuIGxhdGVuY3k7CisrfQor KworK2ludCBNdWxodTMyTGF0ZW5jeShib29sIGlzX29wZXJhbmRfcmVnaXN0ZXIgPSB0cnVlKSB7 CisrICBpbnQgbGF0ZW5jeSA9IExhdGVuY3k6Ok1VTFRVICsgTGF0ZW5jeTo6TU9WRl9ISUdIOwor KyAgaWYgKCFpc19vcGVyYW5kX3JlZ2lzdGVyKSB7CisrICAgIGxhdGVuY3kgKz0gMTsKKysgIH0K KysgIHJldHVybiBsYXRlbmN5OworK30KKysKKytpbnQgTXVsaDY0TGF0ZW5jeShib29sIGlzX29w ZXJhbmRfcmVnaXN0ZXIgPSB0cnVlKSB7CisrICBpbnQgbGF0ZW5jeSA9IExhdGVuY3k6OkRNVUxU ICsgTGF0ZW5jeTo6TU9WRl9ISUdIOworKyAgaWYgKCFpc19vcGVyYW5kX3JlZ2lzdGVyKSB7Cisr ICAgIGxhdGVuY3kgKz0gMTsKKysgIH0KKysgIHJldHVybiBsYXRlbmN5OworK30KKysKKytpbnQg RGl2MzJMYXRlbmN5KGJvb2wgaXNfb3BlcmFuZF9yZWdpc3RlciA9IHRydWUpIHsKKysgIGlmIChp c19vcGVyYW5kX3JlZ2lzdGVyKSB7CisrICAgIHJldHVybiBMYXRlbmN5OjpESVYzMjsKKysgIH0g ZWxzZSB7CisrICAgIHJldHVybiBMYXRlbmN5OjpESVYzMiArIDE7CisrICB9CisrfQorKworK2lu dCBEaXZ1MzJMYXRlbmN5KGJvb2wgaXNfb3BlcmFuZF9yZWdpc3RlciA9IHRydWUpIHsKKysgIGlm IChpc19vcGVyYW5kX3JlZ2lzdGVyKSB7CisrICAgIHJldHVybiBMYXRlbmN5OjpESVZVMzI7Cisr ICB9IGVsc2UgeworKyAgICByZXR1cm4gTGF0ZW5jeTo6RElWVTMyICsgMTsKKysgIH0KKyt9Cisr CisraW50IERpdjY0TGF0ZW5jeShib29sIGlzX29wZXJhbmRfcmVnaXN0ZXIgPSB0cnVlKSB7Cisr ICBpbnQgbGF0ZW5jeSA9IExhdGVuY3k6OkRJVjY0ICsgTGF0ZW5jeTo6TU9WRl9MT1c7CisrICBp ZiAoIWlzX29wZXJhbmRfcmVnaXN0ZXIpIHsKKysgICAgbGF0ZW5jeSArPSAxOworKyAgfQorKyAg cmV0dXJuIGxhdGVuY3k7CisrfQorKworK2ludCBEaXZ1NjRMYXRlbmN5KGJvb2wgaXNfb3BlcmFu ZF9yZWdpc3RlciA9IHRydWUpIHsKKysgIGludCBsYXRlbmN5ID0gTGF0ZW5jeTo6RElWVTY0ICsg TGF0ZW5jeTo6TU9WRl9MT1c7CisrICBpZiAoIWlzX29wZXJhbmRfcmVnaXN0ZXIpIHsKKysgICAg bGF0ZW5jeSArPSAxOworKyAgfQorKyAgcmV0dXJuIGxhdGVuY3k7CisrfQorKworK2ludCBNb2Qz MkxhdGVuY3koYm9vbCBpc19vcGVyYW5kX3JlZ2lzdGVyID0gdHJ1ZSkgeworKyAgaW50IGxhdGVu Y3kgPSBMYXRlbmN5OjpESVYzMiArIExhdGVuY3k6Ok1PVkZfSElHSDsKKysgIGlmICghaXNfb3Bl cmFuZF9yZWdpc3RlcikgeworKyAgICBsYXRlbmN5ICs9IDE7CisrICB9CisrICByZXR1cm4gbGF0 ZW5jeTsKKyt9CisrCisraW50IE1vZHUzMkxhdGVuY3koYm9vbCBpc19vcGVyYW5kX3JlZ2lzdGVy ID0gdHJ1ZSkgeworKyAgaW50IGxhdGVuY3kgPSBMYXRlbmN5OjpESVZVMzIgKyBMYXRlbmN5OjpN T1ZGX0hJR0g7CisrICBpZiAoIWlzX29wZXJhbmRfcmVnaXN0ZXIpIHsKKysgICAgbGF0ZW5jeSAr PSAxOworKyAgfQorKyAgcmV0dXJuIGxhdGVuY3k7CisrfQorKworK2ludCBNb2Q2NExhdGVuY3ko Ym9vbCBpc19vcGVyYW5kX3JlZ2lzdGVyID0gdHJ1ZSkgeworKyAgaW50IGxhdGVuY3kgPSBMYXRl bmN5OjpESVY2NCArIExhdGVuY3k6Ok1PVkZfSElHSDsKKysgIGlmICghaXNfb3BlcmFuZF9yZWdp c3RlcikgeworKyAgICBsYXRlbmN5ICs9IDE7CisrICB9CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9 CisrCisraW50IE1vZHU2NExhdGVuY3koYm9vbCBpc19vcGVyYW5kX3JlZ2lzdGVyID0gdHJ1ZSkg eworKyAgaW50IGxhdGVuY3kgPSBMYXRlbmN5OjpESVY2NCArIExhdGVuY3k6Ok1PVkZfSElHSDsK KysgIGlmICghaXNfb3BlcmFuZF9yZWdpc3RlcikgeworKyAgICBsYXRlbmN5ICs9IDE7CisrICB9 CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9CisrCisraW50IE1vdnpMYXRlbmN5KCkgeyByZXR1cm4g MTsgfQorKworK2ludCBNb3ZuTGF0ZW5jeSgpIHsgcmV0dXJuIDE7IH0KKysKKytpbnQgQ2FsbExh dGVuY3koKSB7CisrICAvLyBFc3RpbWF0ZWQuCisrICByZXR1cm4gQWRkNjRMYXRlbmN5KGZhbHNl KSArIExhdGVuY3k6OkJSQU5DSCArIDU7CisrfQorKworK2ludCBKdW1wTGF0ZW5jeSgpIHsKKysg IC8vIEVzdGltYXRlZCBtYXguCisrICByZXR1cm4gMSArIEFkZDY0TGF0ZW5jeSgpICsgTGF0ZW5j eTo6QlJBTkNIICsgMjsKKyt9CisrCisraW50IFNtaVVudGFnTGF0ZW5jeSgpIHsgcmV0dXJuIDE7 IH0KKysKKytpbnQgUHJlcGFyZUZvclRhaWxDYWxsTGF0ZW5jeSgpIHsKKysgIC8vIEVzdGltYXRl ZCBtYXguCisrICByZXR1cm4gMiAqIChBZGQ2NExhdGVuY3koKSArIDEgKyBBZGQ2NExhdGVuY3ko ZmFsc2UpKSArIDIgKyBMYXRlbmN5OjpCUkFOQ0ggKworKyAgICAgICAgIExhdGVuY3k6OkJSQU5D SCArIDIgKiBTdWI2NExhdGVuY3koZmFsc2UpICsgMiArIExhdGVuY3k6OkJSQU5DSCArIDE7Cisr fQorKworK2ludCBBc3NlbWJsZVBvcEFyZ3VtZW50c0Fkb3B0RnJhbWVMYXRlbmN5KCkgeworKyAg cmV0dXJuIDEgKyBMYXRlbmN5OjpCUkFOQ0ggKyAxICsgU21pVW50YWdMYXRlbmN5KCkgKworKyAg ICAgICAgIFByZXBhcmVGb3JUYWlsQ2FsbExhdGVuY3koKTsKKyt9CisrCisraW50IEFzc2VydExh dGVuY3koKSB7IHJldHVybiAxOyB9CisrCisraW50IFByZXBhcmVDYWxsQ0Z1bmN0aW9uTGF0ZW5j eSgpIHsKKysgIGludCBmcmFtZV9hbGlnbm1lbnQgPSBUdXJib0Fzc2VtYmxlcjo6QWN0aXZhdGlv bkZyYW1lQWxpZ25tZW50KCk7CisrICBpZiAoZnJhbWVfYWxpZ25tZW50ID4ga1N5c3RlbVBvaW50 ZXJTaXplKSB7CisrICAgIHJldHVybiAxICsgU3ViNjRMYXRlbmN5KGZhbHNlKSArIEFuZExhdGVu Y3koZmFsc2UpICsgMTsKKysgIH0gZWxzZSB7CisrICAgIHJldHVybiBTdWI2NExhdGVuY3koZmFs c2UpOworKyAgfQorK30KKysKKytpbnQgQWRqdXN0QmFzZUFuZE9mZnNldExhdGVuY3koKSB7Cisr ICByZXR1cm4gMzsgIC8vIEVzdGltYXRlZCBtYXguCisrfQorKworK2ludCBBbGlnbmVkTWVtb3J5 TGF0ZW5jeSgpIHsgcmV0dXJuIEFkanVzdEJhc2VBbmRPZmZzZXRMYXRlbmN5KCkgKyAxOyB9Cisr CisraW50IFVsaHVMYXRlbmN5KCkgeworKyAgcmV0dXJuIEFkanVzdEJhc2VBbmRPZmZzZXRMYXRl bmN5KCkgKyAyICogQWxpZ25lZE1lbW9yeUxhdGVuY3koKSArIDI7CisrfQorKworK2ludCBVbHdM YXRlbmN5KCkgeworKyAgLy8gRXN0aW1hdGVkIG1heC4KKysgIHJldHVybiBBZGp1c3RCYXNlQW5k T2Zmc2V0TGF0ZW5jeSgpICsgMzsKKyt9CisrCisraW50IFVsd3VMYXRlbmN5KCkgeyByZXR1cm4g VWx3TGF0ZW5jeSgpICsgMTsgfQorKworK2ludCBVbGRMYXRlbmN5KCkgeworKyAgLy8gRXN0aW1h dGVkIG1heC4KKysgIHJldHVybiBBZGp1c3RCYXNlQW5kT2Zmc2V0TGF0ZW5jeSgpICsgMzsKKyt9 CisrCisraW50IFVMb2FkRmxvYXRMYXRlbmN5KCkgeyByZXR1cm4gVWx3TGF0ZW5jeSgpICsgTGF0 ZW5jeTo6TU9WVF9GUkVHOyB9CisrCisraW50IFVMb2FkRG91YmxlTGF0ZW5jeSgpIHsgcmV0dXJu IFVsZExhdGVuY3koKSArIExhdGVuY3k6Ok1PVlRfRFJFRzsgfQorKworK2ludCBVc2hMYXRlbmN5 KCkgeworKyAgLy8gRXN0aW1hdGVkIG1heC4KKysgIHJldHVybiBBZGp1c3RCYXNlQW5kT2Zmc2V0 TGF0ZW5jeSgpICsgMiArIDIgKiBBbGlnbmVkTWVtb3J5TGF0ZW5jeSgpOworK30KKysKKytpbnQg VXN3TGF0ZW5jeSgpIHsgcmV0dXJuIEFkanVzdEJhc2VBbmRPZmZzZXRMYXRlbmN5KCkgKyAyOyB9 CisrCisraW50IFVzZExhdGVuY3koKSB7IHJldHVybiBBZGp1c3RCYXNlQW5kT2Zmc2V0TGF0ZW5j eSgpICsgMjsgfQorKworK2ludCBVU3RvcmVGbG9hdExhdGVuY3koKSB7IHJldHVybiBMYXRlbmN5 OjpNT1ZGX0ZSRUcgKyBVc3dMYXRlbmN5KCk7IH0KKysKKytpbnQgVVN0b3JlRG91YmxlTGF0ZW5j eSgpIHsgcmV0dXJuIExhdGVuY3k6Ok1PVkZfSElHSF9EUkVHICsgVXNkTGF0ZW5jeSgpOyB9Cisr CisraW50IExvYWRGbG9hdExhdGVuY3koKSB7CisrICByZXR1cm4gQWRqdXN0QmFzZUFuZE9mZnNl dExhdGVuY3koKSArIExhdGVuY3k6OkxPQURfRkxPQVQ7CisrfQorKworK2ludCBTdG9yZUZsb2F0 TGF0ZW5jeSgpIHsKKysgIHJldHVybiBBZGp1c3RCYXNlQW5kT2Zmc2V0TGF0ZW5jeSgpICsgTGF0 ZW5jeTo6U1RPUkVfRkxPQVQ7CisrfQorKworK2ludCBTdG9yZURvdWJsZUxhdGVuY3koKSB7Cisr ICByZXR1cm4gQWRqdXN0QmFzZUFuZE9mZnNldExhdGVuY3koKSArIExhdGVuY3k6OlNUT1JFX0RP VUJMRTsKKyt9CisrCisraW50IExvYWREb3VibGVMYXRlbmN5KCkgeworKyAgcmV0dXJuIEFkanVz dEJhc2VBbmRPZmZzZXRMYXRlbmN5KCkgKyBMYXRlbmN5OjpMT0FEX0RPVUJMRTsKKyt9CisrCisr aW50IE11bHRpUHVzaExhdGVuY3koKSB7CisrICBpbnQgbGF0ZW5jeSA9IFN1YjY0TGF0ZW5jeShm YWxzZSk7CisrICBmb3IgKGludDE2X3QgaSA9IGtOdW1SZWdpc3RlcnMgLSAxOyBpID49IDA7IGkt LSkgeworKyAgICBsYXRlbmN5Kys7CisrICB9CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9CisrCisr aW50IE11bHRpUHVzaEZQVUxhdGVuY3koKSB7CisrICBpbnQgbGF0ZW5jeSA9IFN1YjY0TGF0ZW5j eShmYWxzZSk7CisrICBmb3IgKGludDE2X3QgaSA9IGtOdW1SZWdpc3RlcnMgLSAxOyBpID49IDA7 IGktLSkgeworKyAgICBsYXRlbmN5ICs9IFN0b3JlRG91YmxlTGF0ZW5jeSgpOworKyAgfQorKyAg cmV0dXJuIGxhdGVuY3k7CisrfQorKworK2ludCBQdXNoQ2FsbGVyU2F2ZWRMYXRlbmN5KFNhdmVG UFJlZ3NNb2RlIGZwX21vZGUpIHsKKysgIGludCBsYXRlbmN5ID0gTXVsdGlQdXNoTGF0ZW5jeSgp OworKyAgaWYgKGZwX21vZGUgPT0ga1NhdmVGUFJlZ3MpIHsKKysgICAgbGF0ZW5jeSArPSBNdWx0 aVB1c2hGUFVMYXRlbmN5KCk7CisrICB9CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9CisrCisraW50 IE11bHRpUG9wTGF0ZW5jeSgpIHsKKysgIGludCBsYXRlbmN5ID0gQWRkNjRMYXRlbmN5KGZhbHNl KTsKKysgIGZvciAoaW50MTZfdCBpID0gMDsgaSA8IGtOdW1SZWdpc3RlcnM7IGkrKykgeworKyAg ICBsYXRlbmN5Kys7CisrICB9CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9CisrCisraW50IE11bHRp UG9wRlBVTGF0ZW5jeSgpIHsKKysgIGludCBsYXRlbmN5ID0gQWRkNjRMYXRlbmN5KGZhbHNlKTsK KysgIGZvciAoaW50MTZfdCBpID0gMDsgaSA8IGtOdW1SZWdpc3RlcnM7IGkrKykgeworKyAgICBs YXRlbmN5ICs9IExvYWREb3VibGVMYXRlbmN5KCk7CisrICB9CisrICByZXR1cm4gbGF0ZW5jeTsK Kyt9CisrCisraW50IFBvcENhbGxlclNhdmVkTGF0ZW5jeShTYXZlRlBSZWdzTW9kZSBmcF9tb2Rl KSB7CisrICBpbnQgbGF0ZW5jeSA9IE11bHRpUG9wTGF0ZW5jeSgpOworKyAgaWYgKGZwX21vZGUg PT0ga1NhdmVGUFJlZ3MpIHsKKysgICAgbGF0ZW5jeSArPSBNdWx0aVBvcEZQVUxhdGVuY3koKTsK KysgIH0KKysgIHJldHVybiBsYXRlbmN5OworK30KKysKKytpbnQgQ2FsbENGdW5jdGlvbkhlbHBl ckxhdGVuY3koKSB7CisrICAvLyBFc3RpbWF0ZWQuCisrICBpbnQgbGF0ZW5jeSA9IEFuZExhdGVu Y3koZmFsc2UpICsgTGF0ZW5jeTo6QlJBTkNIICsgMiArIENhbGxMYXRlbmN5KCk7CisrICBpZiAo YmFzZTo6T1M6OkFjdGl2YXRpb25GcmFtZUFsaWdubWVudCgpID4ga1N5c3RlbVBvaW50ZXJTaXpl KSB7CisrICAgIGxhdGVuY3krKzsKKysgIH0gZWxzZSB7CisrICAgIGxhdGVuY3kgKz0gQWRkNjRM YXRlbmN5KGZhbHNlKTsKKysgIH0KKysgIHJldHVybiBsYXRlbmN5OworK30KKysKKytpbnQgQ2Fs bENGdW5jdGlvbkxhdGVuY3koKSB7IHJldHVybiAxICsgQ2FsbENGdW5jdGlvbkhlbHBlckxhdGVu Y3koKTsgfQorKworK2ludCBBc3NlbWJsZUFyY2hKdW1wTGF0ZW5jeSgpIHsKKysgIC8vIEVzdGlt YXRlZCBtYXguCisrICByZXR1cm4gTGF0ZW5jeTo6QlJBTkNIOworK30KKysKKytpbnQgR2VuZXJh dGVTd2l0Y2hUYWJsZUxhdGVuY3koKSB7CisrICBpbnQgbGF0ZW5jeSA9IDY7CisrICBsYXRlbmN5 ICs9IDI7CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9CisrCisraW50IEFzc2VtYmxlQXJjaFRhYmxl U3dpdGNoTGF0ZW5jeSgpIHsKKysgIHJldHVybiBMYXRlbmN5OjpCUkFOQ0ggKyBHZW5lcmF0ZVN3 aXRjaFRhYmxlTGF0ZW5jeSgpOworK30KKysKKytpbnQgRHJvcEFuZFJldExhdGVuY3koKSB7Cisr ICAvLyBFc3RpbWF0ZWQgbWF4LgorKyAgcmV0dXJuIEFkZDY0TGF0ZW5jeShmYWxzZSkgKyBKdW1w TGF0ZW5jeSgpOworK30KKysKKytpbnQgQXNzZW1ibGVyUmV0dXJuTGF0ZW5jeSgpIHsKKysgIC8v IEVzdGltYXRlZCBtYXguCisrICByZXR1cm4gQWRkNjRMYXRlbmN5KGZhbHNlKSArIE11bHRpUG9w TGF0ZW5jeSgpICsgTXVsdGlQb3BGUFVMYXRlbmN5KCkgKworKyAgICAgICAgIExhdGVuY3k6OkJS QU5DSCArIEFkZDY0TGF0ZW5jeSgpICsgMSArIERyb3BBbmRSZXRMYXRlbmN5KCk7CisrfQorKwor K2ludCBUcnlJbmxpbmVUcnVuY2F0ZURvdWJsZVRvSUxhdGVuY3koKSB7CisrICByZXR1cm4gMiAr IExhdGVuY3k6OlRSVU5DX1dfRCArIExhdGVuY3k6Ok1PVkZfRlJFRyArIDIgKyBBbmRMYXRlbmN5 KGZhbHNlKSArCisrICAgICAgICAgTGF0ZW5jeTo6QlJBTkNIOworK30KKysKKytpbnQgQ2FsbFN0 dWJEZWxheWVkTGF0ZW5jeSgpIHsgcmV0dXJuIDEgKyBDYWxsTGF0ZW5jeSgpOyB9CisrCisraW50 IFRydW5jYXRlRG91YmxlVG9JRGVsYXllZExhdGVuY3koKSB7CisrICAvLyBUT0RPKHJpc2N2KTog VGhpcyBubyBsb25nZXIgcmVmbGVjdHMgaG93IFRydW5jYXRlRG91YmxlVG9JIGlzIGNhbGxlZC4K KysgIHJldHVybiBUcnlJbmxpbmVUcnVuY2F0ZURvdWJsZVRvSUxhdGVuY3koKSArIDEgKyBTdWI2 NExhdGVuY3koZmFsc2UpICsKKysgICAgICAgICBTdG9yZURvdWJsZUxhdGVuY3koKSArIENhbGxT dHViRGVsYXllZExhdGVuY3koKSArIEFkZDY0TGF0ZW5jeShmYWxzZSkgKworKyAgICAgICAgIDE7 CisrfQorKworK2ludCBDaGVja1BhZ2VGbGFnTGF0ZW5jeSgpIHsKKysgIHJldHVybiBBbmRMYXRl bmN5KGZhbHNlKSArIEFsaWduZWRNZW1vcnlMYXRlbmN5KCkgKyBBbmRMYXRlbmN5KGZhbHNlKSAr CisrICAgICAgICAgTGF0ZW5jeTo6QlJBTkNIOworK30KKysKKytpbnQgU2x0dUxhdGVuY3koYm9v bCBpc19vcGVyYW5kX3JlZ2lzdGVyID0gdHJ1ZSkgeworKyAgaWYgKGlzX29wZXJhbmRfcmVnaXN0 ZXIpIHsKKysgICAgcmV0dXJuIDE7CisrICB9IGVsc2UgeworKyAgICByZXR1cm4gMjsgIC8vIEVz dGltYXRlZCBtYXguCisrICB9CisrfQorKworK2ludCBCcmFuY2hTaG9ydEhlbHBlckxhdGVuY3ko KSB7CisrICByZXR1cm4gU2x0dUxhdGVuY3koKSArIDI7ICAvLyBFc3RpbWF0ZWQgbWF4LgorK30K KysKKytpbnQgQnJhbmNoU2hvcnRMYXRlbmN5KCkgeyByZXR1cm4gQnJhbmNoU2hvcnRIZWxwZXJM YXRlbmN5KCk7IH0KKysKKytpbnQgTW92ZUxhdGVuY3koKSB7IHJldHVybiAxOyB9CisrCisraW50 IE1vdlRvRmxvYXRQYXJhbWV0ZXJzTGF0ZW5jeSgpIHsgcmV0dXJuIDIgKiBNb3ZlTGF0ZW5jeSgp OyB9CisrCisraW50IE1vdkZyb21GbG9hdFJlc3VsdExhdGVuY3koKSB7IHJldHVybiBNb3ZlTGF0 ZW5jeSgpOyB9CisrCisraW50IEFkZE92ZXJmbG93NjRMYXRlbmN5KCkgeworKyAgLy8gRXN0aW1h dGVkIG1heC4KKysgIHJldHVybiA2OworK30KKysKKytpbnQgU3ViT3ZlcmZsb3c2NExhdGVuY3ko KSB7CisrICAvLyBFc3RpbWF0ZWQgbWF4LgorKyAgcmV0dXJuIDY7CisrfQorKworK2ludCBNdWxP dmVyZmxvdzMyTGF0ZW5jeSgpIHsKKysgIC8vIEVzdGltYXRlZCBtYXguCisrICByZXR1cm4gTXVs MzJMYXRlbmN5KCkgKyBNdWxoMzJMYXRlbmN5KCkgKyAyOworK30KKysKKysvLyBGSVhNRSAoUklT Q1YpOiBuZWVkIHVwZGF0ZQorK2ludCBDbHo2NExhdGVuY3koKSB7IHJldHVybiAxOyB9CisrCisr aW50IEN0ejMyTGF0ZW5jeSgpIHsKKysgIHJldHVybiBBZGQ2NExhdGVuY3koZmFsc2UpICsgWG9y TGF0ZW5jeSgpICsgQW5kTGF0ZW5jeSgpICsgQ2x6NjRMYXRlbmN5KCkgKworKyAgICAgICAgIDEg KyBTdWI2NExhdGVuY3koKTsKKyt9CisrCisraW50IEN0ejY0TGF0ZW5jeSgpIHsKKysgIHJldHVy biBBZGQ2NExhdGVuY3koZmFsc2UpICsgWG9yTGF0ZW5jeSgpICsgQW5kTGF0ZW5jeSgpICsgMSAr IFN1YjY0TGF0ZW5jeSgpOworK30KKysKKytpbnQgUG9wY250MzJMYXRlbmN5KCkgeworKyAgcmV0 dXJuIDIgKyBBbmRMYXRlbmN5KCkgKyBTdWI2NExhdGVuY3koKSArIDEgKyBBbmRMYXRlbmN5KCkg KyAxICsKKysgICAgICAgICBBbmRMYXRlbmN5KCkgKyBBZGQ2NExhdGVuY3koKSArIDEgKyBBZGQ2 NExhdGVuY3koKSArIDEgKyBBbmRMYXRlbmN5KCkgKworKyAgICAgICAgIDEgKyBNdWwzMkxhdGVu Y3koKSArIDE7CisrfQorKworK2ludCBQb3BjbnQ2NExhdGVuY3koKSB7CisrICByZXR1cm4gMiAr IEFuZExhdGVuY3koKSArIFN1YjY0TGF0ZW5jeSgpICsgMSArIEFuZExhdGVuY3koKSArIDEgKwor KyAgICAgICAgIEFuZExhdGVuY3koKSArIEFkZDY0TGF0ZW5jeSgpICsgMSArIEFkZDY0TGF0ZW5j eSgpICsgMSArIEFuZExhdGVuY3koKSArCisrICAgICAgICAgMSArIE11bDY0TGF0ZW5jeSgpICsg MTsKKyt9CisrCisraW50IENvbXBhcmVGTGF0ZW5jeSgpIHsgcmV0dXJuIExhdGVuY3k6OkNfY29u ZF9TOyB9CisrCisraW50IENvbXBhcmVGMzJMYXRlbmN5KCkgeyByZXR1cm4gQ29tcGFyZUZMYXRl bmN5KCk7IH0KKysKKytpbnQgQ29tcGFyZUY2NExhdGVuY3koKSB7IHJldHVybiBDb21wYXJlRkxh dGVuY3koKTsgfQorKworK2ludCBDb21wYXJlSXNOYW5GTGF0ZW5jeSgpIHsgcmV0dXJuIENvbXBh cmVGTGF0ZW5jeSgpOyB9CisrCisraW50IENvbXBhcmVJc05hbkYzMkxhdGVuY3koKSB7IHJldHVy biBDb21wYXJlSXNOYW5GTGF0ZW5jeSgpOyB9CisrCisraW50IENvbXBhcmVJc05hbkY2NExhdGVu Y3koKSB7IHJldHVybiBDb21wYXJlSXNOYW5GTGF0ZW5jeSgpOyB9CisrCisraW50IE5lZ3NMYXRl bmN5KCkgeworKyAgLy8gRXN0aW1hdGVkLgorKyAgcmV0dXJuIENvbXBhcmVJc05hbkYzMkxhdGVu Y3koKSArIDIgKiBMYXRlbmN5OjpCUkFOQ0ggKyBMYXRlbmN5OjpORUdfUyArCisrICAgICAgICAg TGF0ZW5jeTo6TU9WRl9GUkVHICsgMSArIFhvckxhdGVuY3koKSArIExhdGVuY3k6Ok1PVlRfRlJF RzsKKyt9CisrCisraW50IE5lZ2RMYXRlbmN5KCkgeworKyAgLy8gRXN0aW1hdGVkLgorKyAgcmV0 dXJuIENvbXBhcmVJc05hbkY2NExhdGVuY3koKSArIDIgKiBMYXRlbmN5OjpCUkFOQ0ggKyBMYXRl bmN5OjpORUdfRCArCisrICAgICAgICAgTGF0ZW5jeTo6TU9WRl9ISUdIX0RSRUcgKyAxICsgWG9y TGF0ZW5jeSgpICsgTGF0ZW5jeTo6TU9WVF9EUkVHOworK30KKysKKytpbnQgRmxvYXQ2NFJvdW5k TGF0ZW5jeSgpIHsKKysgIC8vIEZvciBjZWlsX2xfZCwgZmxvb3JfbF9kLCByb3VuZF9sX2QsIHRy dW5jX2xfZCBsYXRlbmN5IGlzIDQuCisrICByZXR1cm4gTGF0ZW5jeTo6TU9WRl9ISUdIX0RSRUcg KyAxICsgTGF0ZW5jeTo6QlJBTkNIICsgTGF0ZW5jeTo6TU9WX0QgKyA0ICsKKysgICAgICAgICBM YXRlbmN5OjpNT1ZGX0hJR0hfRFJFRyArIExhdGVuY3k6OkJSQU5DSCArIExhdGVuY3k6OkNWVF9E X0wgKyAyICsKKysgICAgICAgICBMYXRlbmN5OjpNT1ZUX0hJR0hfRlJFRzsKKyt9CisrCisraW50 IEZsb2F0MzJSb3VuZExhdGVuY3koKSB7CisrICAvLyBGb3IgY2VpbF93X3MsIGZsb29yX3dfcywg cm91bmRfd19zLCB0cnVuY193X3MgbGF0ZW5jeSBpcyA0LgorKyAgcmV0dXJuIExhdGVuY3k6Ok1P VkZfRlJFRyArIDEgKyBMYXRlbmN5OjpCUkFOQ0ggKyBMYXRlbmN5OjpNT1ZfUyArIDQgKworKyAg ICAgICAgIExhdGVuY3k6Ok1PVkZfRlJFRyArIExhdGVuY3k6OkJSQU5DSCArIExhdGVuY3k6OkNW VF9TX1cgKyAyICsKKysgICAgICAgICBMYXRlbmN5OjpNT1ZUX0ZSRUc7CisrfQorKworK2ludCBG bG9hdDMyTWF4TGF0ZW5jeSgpIHsKKysgIC8vIEVzdGltYXRlZCBtYXguCisrICBpbnQgbGF0ZW5j eSA9IENvbXBhcmVJc05hbkYzMkxhdGVuY3koKSArIExhdGVuY3k6OkJSQU5DSDsKKysgIHJldHVy biBsYXRlbmN5ICsgNSAqIExhdGVuY3k6OkJSQU5DSCArIDIgKiBDb21wYXJlRjMyTGF0ZW5jeSgp ICsKKysgICAgICAgICBMYXRlbmN5OjpNT1ZGX0ZSRUcgKyAxICsgTGF0ZW5jeTo6TU9WX1M7Cisr fQorKworK2ludCBGbG9hdDY0TWF4TGF0ZW5jeSgpIHsKKysgIC8vIEVzdGltYXRlZCBtYXguCisr ICBpbnQgbGF0ZW5jeSA9IENvbXBhcmVJc05hbkY2NExhdGVuY3koKSArIExhdGVuY3k6OkJSQU5D SDsKKysgIHJldHVybiBsYXRlbmN5ICsgNSAqIExhdGVuY3k6OkJSQU5DSCArIDIgKiBDb21wYXJl RjY0TGF0ZW5jeSgpICsKKysgICAgICAgICBMYXRlbmN5OjpNT1ZGX0hJR0hfRFJFRyArIExhdGVu Y3k6Ok1PVl9EOworK30KKysKKytpbnQgRmxvYXQzMk1pbkxhdGVuY3koKSB7CisrICAvLyBFc3Rp bWF0ZWQgbWF4LgorKyAgaW50IGxhdGVuY3kgPSBDb21wYXJlSXNOYW5GMzJMYXRlbmN5KCkgKyBM YXRlbmN5OjpCUkFOQ0g7CisrICByZXR1cm4gbGF0ZW5jeSArIDUgKiBMYXRlbmN5OjpCUkFOQ0gg KyAyICogQ29tcGFyZUYzMkxhdGVuY3koKSArCisrICAgICAgICAgTGF0ZW5jeTo6TU9WRl9GUkVH ICsgMSArIExhdGVuY3k6Ok1PVl9TOworK30KKysKKytpbnQgRmxvYXQ2NE1pbkxhdGVuY3koKSB7 CisrICAvLyBFc3RpbWF0ZWQgbWF4LgorKyAgaW50IGxhdGVuY3kgPSBDb21wYXJlSXNOYW5GNjRM YXRlbmN5KCkgKyBMYXRlbmN5OjpCUkFOQ0g7CisrICByZXR1cm4gbGF0ZW5jeSArIDUgKiBMYXRl bmN5OjpCUkFOQ0ggKyAyICogQ29tcGFyZUYzMkxhdGVuY3koKSArCisrICAgICAgICAgTGF0ZW5j eTo6TU9WRl9ISUdIX0RSRUcgKyBMYXRlbmN5OjpNT1ZfRDsKKyt9CisrCisraW50IFRydW5jTFNM YXRlbmN5KGJvb2wgbG9hZF9zdGF0dXMpIHsKKysgIGludCBsYXRlbmN5ID0gTGF0ZW5jeTo6VFJV TkNfTF9TICsgTGF0ZW5jeTo6TU9WRl9ISUdIX0RSRUc7CisrICBpZiAobG9hZF9zdGF0dXMpIHsK KysgICAgbGF0ZW5jeSArPSBTbHR1TGF0ZW5jeSgpICsgNzsKKysgIH0KKysgIHJldHVybiBsYXRl bmN5OworK30KKysKKytpbnQgVHJ1bmNMRExhdGVuY3koYm9vbCBsb2FkX3N0YXR1cykgeworKyAg aW50IGxhdGVuY3kgPSBMYXRlbmN5OjpUUlVOQ19MX0QgKyBMYXRlbmN5OjpNT1ZGX0hJR0hfRFJF RzsKKysgIGlmIChsb2FkX3N0YXR1cykgeworKyAgICBsYXRlbmN5ICs9IFNsdHVMYXRlbmN5KCkg KyA3OworKyAgfQorKyAgcmV0dXJuIGxhdGVuY3k7CisrfQorKworK2ludCBUcnVuY1VsU0xhdGVu Y3koKSB7CisrICAvLyBFc3RpbWF0ZWQgbWF4LgorKyAgcmV0dXJuIDIgKiBDb21wYXJlRjMyTGF0 ZW5jeSgpICsgQ29tcGFyZUlzTmFuRjMyTGF0ZW5jeSgpICsKKysgICAgICAgICA0ICogTGF0ZW5j eTo6QlJBTkNIICsgTGF0ZW5jeTo6U1VCX1MgKyAyICogTGF0ZW5jeTo6VFJVTkNfTF9TICsKKysg ICAgICAgICAzICogTGF0ZW5jeTo6TU9WRl9ISUdIX0RSRUcgKyBPckxhdGVuY3koKSArIExhdGVu Y3k6Ok1PVlRfRlJFRyArCisrICAgICAgICAgTGF0ZW5jeTo6TU9WX1MgKyBTbHR1TGF0ZW5jeSgp ICsgNDsKKyt9CisrCisraW50IFRydW5jVWxETGF0ZW5jeSgpIHsKKysgIC8vIEVzdGltYXRlZCBt YXguCisrICByZXR1cm4gMiAqIENvbXBhcmVGNjRMYXRlbmN5KCkgKyBDb21wYXJlSXNOYW5GNjRM YXRlbmN5KCkgKworKyAgICAgICAgIDQgKiBMYXRlbmN5OjpCUkFOQ0ggKyBMYXRlbmN5OjpTVUJf RCArIDIgKiBMYXRlbmN5OjpUUlVOQ19MX0QgKworKyAgICAgICAgIDMgKiBMYXRlbmN5OjpNT1ZG X0hJR0hfRFJFRyArIE9yTGF0ZW5jeSgpICsgTGF0ZW5jeTo6TU9WVF9EUkVHICsKKysgICAgICAg ICBMYXRlbmN5OjpNT1ZfRCArIFNsdHVMYXRlbmN5KCkgKyA0OworK30KKysKKytpbnQgUHVzaExh dGVuY3koKSB7IHJldHVybiBBZGQ2NExhdGVuY3koKSArIEFsaWduZWRNZW1vcnlMYXRlbmN5KCk7 IH0KKysKKytpbnQgQnl0ZVN3YXBTaWduZWRMYXRlbmN5KCkgeyByZXR1cm4gMjsgfQorKworK2lu dCBMbExhdGVuY3koaW50IG9mZnNldCkgeworKyAgYm9vbCBpc19vbmVfaW5zdHJ1Y3Rpb24gPSBp c19pbnQxMihvZmZzZXQpOworKyAgaWYgKGlzX29uZV9pbnN0cnVjdGlvbikgeworKyAgICByZXR1 cm4gMTsKKysgIH0gZWxzZSB7CisrICAgIHJldHVybiAzOworKyAgfQorK30KKysKKytpbnQgRXh0 cmFjdEJpdHNMYXRlbmN5KGJvb2wgc2lnbl9leHRlbmQsIGludCBzaXplKSB7CisrICBpbnQgbGF0 ZW5jeSA9IDI7CisrICBpZiAoc2lnbl9leHRlbmQpIHsKKysgICAgc3dpdGNoIChzaXplKSB7Cisr ICAgICAgY2FzZSA4OgorKyAgICAgIGNhc2UgMTY6CisrICAgICAgY2FzZSAzMjoKKysgICAgICAg IGxhdGVuY3kgKz0gMTsKKysgICAgICAgIGJyZWFrOworKyAgICAgIGRlZmF1bHQ6CisrICAgICAg ICBVTlJFQUNIQUJMRSgpOworKyAgICB9CisrICB9CisrICByZXR1cm4gbGF0ZW5jeTsKKyt9Cisr CisraW50IEluc2VydEJpdHNMYXRlbmN5KCkgeyByZXR1cm4gMiArIFN1YjY0TGF0ZW5jeShmYWxz ZSkgKyAyOyB9CisrCisraW50IFNjTGF0ZW5jeShpbnQgb2Zmc2V0KSB7IHJldHVybiAzOyB9Cisr CisraW50IFdvcmQzMkF0b21pY0V4Y2hhbmdlTGF0ZW5jeShib29sIHNpZ25fZXh0ZW5kLCBpbnQg c2l6ZSkgeworKyAgcmV0dXJuIEFkZDY0TGF0ZW5jeShmYWxzZSkgKyAxICsgU3ViNjRMYXRlbmN5 KCkgKyAyICsgTGxMYXRlbmN5KDApICsKKysgICAgICAgICBFeHRyYWN0Qml0c0xhdGVuY3koc2ln bl9leHRlbmQsIHNpemUpICsgSW5zZXJ0Qml0c0xhdGVuY3koKSArCisrICAgICAgICAgU2NMYXRl bmN5KDApICsgQnJhbmNoU2hvcnRMYXRlbmN5KCkgKyAxOworK30KKysKKytpbnQgV29yZDMyQXRv bWljQ29tcGFyZUV4Y2hhbmdlTGF0ZW5jeShib29sIHNpZ25fZXh0ZW5kLCBpbnQgc2l6ZSkgewor KyAgcmV0dXJuIDIgKyBTdWI2NExhdGVuY3koKSArIDIgKyBMbExhdGVuY3koMCkgKworKyAgICAg ICAgIEV4dHJhY3RCaXRzTGF0ZW5jeShzaWduX2V4dGVuZCwgc2l6ZSkgKyBJbnNlcnRCaXRzTGF0 ZW5jeSgpICsKKysgICAgICAgICBTY0xhdGVuY3koMCkgKyBCcmFuY2hTaG9ydExhdGVuY3koKSAr IDE7CisrfQorKworK2ludCBJbnN0cnVjdGlvblNjaGVkdWxlcjo6R2V0SW5zdHJ1Y3Rpb25MYXRl bmN5KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cikgeworKyAgLy8gRklYTUUoUklTQ1YpOiBWZXJp ZnkgdGhlc2UgbGF0ZW5jaWVzIGZvciBSSVNDLVYgKGN1cnJlbnRseSB1c2luZyBNSVBTCisrICAv LyBudW1iZXJzKQorKyAgc3dpdGNoIChpbnN0ci0+YXJjaF9vcGNvZGUoKSkgeworKyAgICBjYXNl IGtBcmNoQ2FsbENvZGVPYmplY3Q6CisrICAgIGNhc2Uga0FyY2hDYWxsV2FzbUZ1bmN0aW9uOgor KyAgICAgIHJldHVybiBDYWxsTGF0ZW5jeSgpOworKyAgICBjYXNlIGtBcmNoVGFpbENhbGxDb2Rl T2JqZWN0RnJvbUpTRnVuY3Rpb246CisrICAgIGNhc2Uga0FyY2hUYWlsQ2FsbENvZGVPYmplY3Q6 IHsKKysgICAgICBpbnQgbGF0ZW5jeSA9IDA7CisrICAgICAgaWYgKGluc3RyLT5hcmNoX29wY29k ZSgpID09IGtBcmNoVGFpbENhbGxDb2RlT2JqZWN0RnJvbUpTRnVuY3Rpb24pIHsKKysgICAgICAg IGxhdGVuY3kgPSBBc3NlbWJsZVBvcEFyZ3VtZW50c0Fkb3B0RnJhbWVMYXRlbmN5KCk7CisrICAg ICAgfQorKyAgICAgIHJldHVybiBsYXRlbmN5ICsgSnVtcExhdGVuY3koKTsKKysgICAgfQorKyAg ICBjYXNlIGtBcmNoVGFpbENhbGxXYXNtOgorKyAgICBjYXNlIGtBcmNoVGFpbENhbGxBZGRyZXNz OgorKyAgICAgIHJldHVybiBKdW1wTGF0ZW5jeSgpOworKyAgICBjYXNlIGtBcmNoQ2FsbEpTRnVu Y3Rpb246IHsKKysgICAgICBpbnQgbGF0ZW5jeSA9IDA7CisrICAgICAgaWYgKEZMQUdfZGVidWdf Y29kZSkgeworKyAgICAgICAgbGF0ZW5jeSA9IDEgKyBBc3NlcnRMYXRlbmN5KCk7CisrICAgICAg fQorKyAgICAgIHJldHVybiBsYXRlbmN5ICsgMSArIEFkZDY0TGF0ZW5jeShmYWxzZSkgKyBDYWxs TGF0ZW5jeSgpOworKyAgICB9CisrICAgIGNhc2Uga0FyY2hQcmVwYXJlQ2FsbENGdW5jdGlvbjoK KysgICAgICByZXR1cm4gUHJlcGFyZUNhbGxDRnVuY3Rpb25MYXRlbmN5KCk7CisrICAgIGNhc2Ug a0FyY2hTYXZlQ2FsbGVyUmVnaXN0ZXJzOiB7CisrICAgICAgYXV0byBmcF9tb2RlID0KKysgICAg ICAgICAgc3RhdGljX2Nhc3Q8U2F2ZUZQUmVnc01vZGU+KE1pc2NGaWVsZDo6ZGVjb2RlKGluc3Ry LT5vcGNvZGUoKSkpOworKyAgICAgIHJldHVybiBQdXNoQ2FsbGVyU2F2ZWRMYXRlbmN5KGZwX21v ZGUpOworKyAgICB9CisrICAgIGNhc2Uga0FyY2hSZXN0b3JlQ2FsbGVyUmVnaXN0ZXJzOiB7Cisr ICAgICAgYXV0byBmcF9tb2RlID0KKysgICAgICAgICAgc3RhdGljX2Nhc3Q8U2F2ZUZQUmVnc01v ZGU+KE1pc2NGaWVsZDo6ZGVjb2RlKGluc3RyLT5vcGNvZGUoKSkpOworKyAgICAgIHJldHVybiBQ b3BDYWxsZXJTYXZlZExhdGVuY3koZnBfbW9kZSk7CisrICAgIH0KKysgICAgY2FzZSBrQXJjaFBy ZXBhcmVUYWlsQ2FsbDoKKysgICAgICByZXR1cm4gMjsKKysgICAgY2FzZSBrQXJjaENhbGxDRnVu Y3Rpb246CisrICAgICAgcmV0dXJuIENhbGxDRnVuY3Rpb25MYXRlbmN5KCk7CisrICAgIGNhc2Ug a0FyY2hKbXA6CisrICAgICAgcmV0dXJuIEFzc2VtYmxlQXJjaEp1bXBMYXRlbmN5KCk7CisrICAg IGNhc2Uga0FyY2hUYWJsZVN3aXRjaDoKKysgICAgICByZXR1cm4gQXNzZW1ibGVBcmNoVGFibGVT d2l0Y2hMYXRlbmN5KCk7CisrICAgIGNhc2Uga0FyY2hBYm9ydENTQUFzc2VydDoKKysgICAgICBy ZXR1cm4gQ2FsbExhdGVuY3koKSArIDE7CisrICAgIGNhc2Uga0FyY2hEZWJ1Z0JyZWFrOgorKyAg ICAgIHJldHVybiAxOworKyAgICBjYXNlIGtBcmNoQ29tbWVudDoKKysgICAgY2FzZSBrQXJjaE5v cDoKKysgICAgY2FzZSBrQXJjaFRocm93VGVybWluYXRvcjoKKysgICAgY2FzZSBrQXJjaERlb3B0 aW1pemU6CisrICAgICAgcmV0dXJuIDA7CisrICAgIGNhc2Uga0FyY2hSZXQ6CisrICAgICAgcmV0 dXJuIEFzc2VtYmxlclJldHVybkxhdGVuY3koKTsKKysgICAgY2FzZSBrQXJjaEZyYW1lUG9pbnRl cjoKKysgICAgICByZXR1cm4gMTsKKysgICAgY2FzZSBrQXJjaFBhcmVudEZyYW1lUG9pbnRlcjoK KysgICAgICAvLyBFc3RpbWF0ZWQgbWF4LgorKyAgICAgIHJldHVybiBBbGlnbmVkTWVtb3J5TGF0 ZW5jeSgpOworKyAgICBjYXNlIGtBcmNoVHJ1bmNhdGVEb3VibGVUb0k6CisrICAgICAgcmV0dXJu IFRydW5jYXRlRG91YmxlVG9JRGVsYXllZExhdGVuY3koKTsKKysgICAgY2FzZSBrQXJjaFN0b3Jl V2l0aFdyaXRlQmFycmllcjoKKysgICAgICByZXR1cm4gQWRkNjRMYXRlbmN5KCkgKyAxICsgQ2hl Y2tQYWdlRmxhZ0xhdGVuY3koKTsKKysgICAgY2FzZSBrQXJjaFN0YWNrU2xvdDoKKysgICAgICAv LyBFc3RpbWF0ZWQgbWF4LgorKyAgICAgIHJldHVybiBBZGQ2NExhdGVuY3koZmFsc2UpICsgQW5k TGF0ZW5jeShmYWxzZSkgKyBBc3NlcnRMYXRlbmN5KCkgKworKyAgICAgICAgICAgICBBZGQ2NExh dGVuY3koZmFsc2UpICsgQW5kTGF0ZW5jeShmYWxzZSkgKyBCcmFuY2hTaG9ydExhdGVuY3koKSAr CisrICAgICAgICAgICAgIDEgKyBTdWI2NExhdGVuY3koKSArIEFkZDY0TGF0ZW5jeSgpOworKyAg ICBjYXNlIGtBcmNoV29yZFBvaXNvbk9uU3BlY3VsYXRpb246CisrICAgICAgcmV0dXJuIEFuZExh dGVuY3koKTsKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRBY29zOgorKyAgICBjYXNlIGtJZWVl NzU0RmxvYXQ2NEFjb3NoOgorKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NEFzaW46CisrICAgIGNh c2Uga0llZWU3NTRGbG9hdDY0QXNpbmg6CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0QXRhbjoK KysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRBdGFuaDoKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0 NjRBdGFuMjoKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRDb3M6CisrICAgIGNhc2Uga0llZWU3 NTRGbG9hdDY0Q29zaDoKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRDYnJ0OgorKyAgICBjYXNl IGtJZWVlNzU0RmxvYXQ2NEV4cDoKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRFeHBtMToKKysg ICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRMb2c6CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0TG9n MXA6CisrICAgIGNhc2Uga0llZWU3NTRGbG9hdDY0TG9nMTA6CisrICAgIGNhc2Uga0llZWU3NTRG bG9hdDY0TG9nMjoKKysgICAgY2FzZSBrSWVlZTc1NEZsb2F0NjRQb3c6CisrICAgIGNhc2Uga0ll ZWU3NTRGbG9hdDY0U2luOgorKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NFNpbmg6CisrICAgIGNh c2Uga0llZWU3NTRGbG9hdDY0VGFuOgorKyAgICBjYXNlIGtJZWVlNzU0RmxvYXQ2NFRhbmg6Cisr ICAgICAgcmV0dXJuIFByZXBhcmVDYWxsQ0Z1bmN0aW9uTGF0ZW5jeSgpICsgTW92VG9GbG9hdFBh cmFtZXRlcnNMYXRlbmN5KCkgKworKyAgICAgICAgICAgICBDYWxsQ0Z1bmN0aW9uTGF0ZW5jeSgp ICsgTW92RnJvbUZsb2F0UmVzdWx0TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkFkZDMyOgor KyAgICBjYXNlIGtSaXNjdkFkZDY0OgorKyAgICAgIHJldHVybiBBZGQ2NExhdGVuY3koaW5zdHIt PklucHV0QXQoMSktPklzUmVnaXN0ZXIoKSk7CisrICAgIGNhc2Uga1Jpc2N2QWRkT3ZmNjQ6Cisr ICAgICAgcmV0dXJuIEFkZE92ZXJmbG93NjRMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2U3Vi MzI6CisrICAgIGNhc2Uga1Jpc2N2U3ViNjQ6CisrICAgICAgcmV0dXJuIFN1YjY0TGF0ZW5jeShp bnN0ci0+SW5wdXRBdCgxKS0+SXNSZWdpc3RlcigpKTsKKysgICAgY2FzZSBrUmlzY3ZTdWJPdmY2 NDoKKysgICAgICByZXR1cm4gU3ViT3ZlcmZsb3c2NExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlz Y3ZNdWwzMjoKKysgICAgICByZXR1cm4gTXVsMzJMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2 TXVsT3ZmMzI6CisrICAgICAgcmV0dXJuIE11bE92ZXJmbG93MzJMYXRlbmN5KCk7CisrICAgIGNh c2Uga1Jpc2N2TXVsSGlnaDMyOgorKyAgICAgIHJldHVybiBNdWxoMzJMYXRlbmN5KCk7CisrICAg IGNhc2Uga1Jpc2N2TXVsSGlnaFUzMjoKKysgICAgICByZXR1cm4gTXVsaHUzMkxhdGVuY3koKTsK KysgICAgY2FzZSBrUmlzY3ZNdWxIaWdoNjQ6CisrICAgICAgcmV0dXJuIE11bGg2NExhdGVuY3ko KTsKKysgICAgY2FzZSBrUmlzY3ZEaXYzMjogeworKyAgICAgIGludCBsYXRlbmN5ID0gRGl2MzJM YXRlbmN5KGluc3RyLT5JbnB1dEF0KDEpLT5Jc1JlZ2lzdGVyKCkpOworKyAgICAgIHJldHVybiBs YXRlbmN5ICsgTW92ekxhdGVuY3koKTsKKysgICAgfQorKyAgICBjYXNlIGtSaXNjdkRpdlUzMjog eworKyAgICAgIGludCBsYXRlbmN5ID0gRGl2dTMyTGF0ZW5jeShpbnN0ci0+SW5wdXRBdCgxKS0+ SXNSZWdpc3RlcigpKTsKKysgICAgICByZXR1cm4gbGF0ZW5jeSArIE1vdnpMYXRlbmN5KCk7Cisr ICAgIH0KKysgICAgY2FzZSBrUmlzY3ZNb2QzMjoKKysgICAgICByZXR1cm4gTW9kMzJMYXRlbmN5 KCk7CisrICAgIGNhc2Uga1Jpc2N2TW9kVTMyOgorKyAgICAgIHJldHVybiBNb2R1MzJMYXRlbmN5 KCk7CisrICAgIGNhc2Uga1Jpc2N2TXVsNjQ6CisrICAgICAgcmV0dXJuIE11bDY0TGF0ZW5jeSgp OworKyAgICBjYXNlIGtSaXNjdkRpdjY0OiB7CisrICAgICAgaW50IGxhdGVuY3kgPSBEaXY2NExh dGVuY3koKTsKKysgICAgICByZXR1cm4gbGF0ZW5jeSArIE1vdnpMYXRlbmN5KCk7CisrICAgIH0K KysgICAgY2FzZSBrUmlzY3ZEaXZVNjQ6IHsKKysgICAgICBpbnQgbGF0ZW5jeSA9IERpdnU2NExh dGVuY3koKTsKKysgICAgICByZXR1cm4gbGF0ZW5jeSArIE1vdnpMYXRlbmN5KCk7CisrICAgIH0K KysgICAgY2FzZSBrUmlzY3ZNb2Q2NDoKKysgICAgICByZXR1cm4gTW9kNjRMYXRlbmN5KCk7Cisr ICAgIGNhc2Uga1Jpc2N2TW9kVTY0OgorKyAgICAgIHJldHVybiBNb2R1NjRMYXRlbmN5KCk7Cisr ICAgIGNhc2Uga1Jpc2N2QW5kOgorKyAgICAgIHJldHVybiBBbmRMYXRlbmN5KGluc3RyLT5JbnB1 dEF0KDEpLT5Jc1JlZ2lzdGVyKCkpOworKyAgICBjYXNlIGtSaXNjdkFuZDMyOiB7CisrICAgICAg Ym9vbCBpc19vcGVyYW5kX3JlZ2lzdGVyID0gaW5zdHItPklucHV0QXQoMSktPklzUmVnaXN0ZXIo KTsKKysgICAgICBpbnQgbGF0ZW5jeSA9IEFuZExhdGVuY3koaXNfb3BlcmFuZF9yZWdpc3Rlcik7 CisrICAgICAgaWYgKGlzX29wZXJhbmRfcmVnaXN0ZXIpIHsKKysgICAgICAgIHJldHVybiBsYXRl bmN5ICsgMjsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcmV0dXJuIGxhdGVuY3kgKyAxOwor KyAgICAgIH0KKysgICAgfQorKyAgICBjYXNlIGtSaXNjdk9yOgorKyAgICAgIHJldHVybiBPckxh dGVuY3koaW5zdHItPklucHV0QXQoMSktPklzUmVnaXN0ZXIoKSk7CisrICAgIGNhc2Uga1Jpc2N2 T3IzMjogeworKyAgICAgIGJvb2wgaXNfb3BlcmFuZF9yZWdpc3RlciA9IGluc3RyLT5JbnB1dEF0 KDEpLT5Jc1JlZ2lzdGVyKCk7CisrICAgICAgaW50IGxhdGVuY3kgPSBPckxhdGVuY3koaXNfb3Bl cmFuZF9yZWdpc3Rlcik7CisrICAgICAgaWYgKGlzX29wZXJhbmRfcmVnaXN0ZXIpIHsKKysgICAg ICAgIHJldHVybiBsYXRlbmN5ICsgMjsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcmV0dXJu IGxhdGVuY3kgKyAxOworKyAgICAgIH0KKysgICAgfQorKyAgICBjYXNlIGtSaXNjdk5vcjoKKysg ICAgICByZXR1cm4gTm9yTGF0ZW5jeShpbnN0ci0+SW5wdXRBdCgxKS0+SXNSZWdpc3RlcigpKTsK KysgICAgY2FzZSBrUmlzY3ZOb3IzMjogeworKyAgICAgIGJvb2wgaXNfb3BlcmFuZF9yZWdpc3Rl ciA9IGluc3RyLT5JbnB1dEF0KDEpLT5Jc1JlZ2lzdGVyKCk7CisrICAgICAgaW50IGxhdGVuY3kg PSBOb3JMYXRlbmN5KGlzX29wZXJhbmRfcmVnaXN0ZXIpOworKyAgICAgIGlmIChpc19vcGVyYW5k X3JlZ2lzdGVyKSB7CisrICAgICAgICByZXR1cm4gbGF0ZW5jeSArIDI7CisrICAgICAgfSBlbHNl IHsKKysgICAgICAgIHJldHVybiBsYXRlbmN5ICsgMTsKKysgICAgICB9CisrICAgIH0KKysgICAg Y2FzZSBrUmlzY3ZYb3I6CisrICAgICAgcmV0dXJuIFhvckxhdGVuY3koaW5zdHItPklucHV0QXQo MSktPklzUmVnaXN0ZXIoKSk7CisrICAgIGNhc2Uga1Jpc2N2WG9yMzI6IHsKKysgICAgICBib29s IGlzX29wZXJhbmRfcmVnaXN0ZXIgPSBpbnN0ci0+SW5wdXRBdCgxKS0+SXNSZWdpc3RlcigpOwor KyAgICAgIGludCBsYXRlbmN5ID0gWG9yTGF0ZW5jeShpc19vcGVyYW5kX3JlZ2lzdGVyKTsKKysg ICAgICBpZiAoaXNfb3BlcmFuZF9yZWdpc3RlcikgeworKyAgICAgICAgcmV0dXJuIGxhdGVuY3kg KyAyOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICByZXR1cm4gbGF0ZW5jeSArIDE7CisrICAg ICAgfQorKyAgICB9CisrICAgIGNhc2Uga1Jpc2N2Q2x6MzI6CisrICAgIGNhc2Uga1Jpc2N2Q2x6 NjQ6CisrICAgICAgcmV0dXJuIENsejY0TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkN0ejMy OgorKyAgICAgIHJldHVybiBDdHozMkxhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZDdHo2NDoK KysgICAgICByZXR1cm4gQ3R6NjRMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2UG9wY250MzI6 CisrICAgICAgcmV0dXJuIFBvcGNudDMyTGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdlBvcGNu dDY0OgorKyAgICAgIHJldHVybiBQb3BjbnQ2NExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZT aGwzMjoKKysgICAgICByZXR1cm4gMTsKKysgICAgY2FzZSBrUmlzY3ZTaHIzMjoKKysgICAgY2Fz ZSBrUmlzY3ZTYXIzMjoKKysgICAgY2FzZSBrUmlzY3ZaZXJvRXh0ZW5kV29yZDoKKysgICAgICBy ZXR1cm4gMjsKKysgICAgY2FzZSBrUmlzY3ZTaWduRXh0ZW5kV29yZDoKKysgICAgY2FzZSBrUmlz Y3ZTaGw2NDoKKysgICAgY2FzZSBrUmlzY3ZTaHI2NDoKKysgICAgY2FzZSBrUmlzY3ZTYXI2NDoK KysgICAgY2FzZSBrUmlzY3ZSb3IzMjoKKysgICAgY2FzZSBrUmlzY3ZSb3I2NDoKKysgICAgICBy ZXR1cm4gMTsKKysgICAgY2FzZSBrUmlzY3ZUc3Q6CisrICAgICAgcmV0dXJuIEFuZExhdGVuY3ko aW5zdHItPklucHV0QXQoMSktPklzUmVnaXN0ZXIoKSk7CisrICAgIGNhc2Uga1Jpc2N2TW92Ogor KyAgICAgIHJldHVybiAxOworKyAgICBjYXNlIGtSaXNjdkNtcFM6CisrICAgICAgcmV0dXJuIE1v dmVMYXRlbmN5KCkgKyBDb21wYXJlRjMyTGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkFkZFM6 CisrICAgICAgcmV0dXJuIExhdGVuY3k6OkFERF9TOworKyAgICBjYXNlIGtSaXNjdlN1YlM6Cisr ICAgICAgcmV0dXJuIExhdGVuY3k6OlNVQl9TOworKyAgICBjYXNlIGtSaXNjdk11bFM6CisrICAg ICAgcmV0dXJuIExhdGVuY3k6Ok1VTF9TOworKyAgICBjYXNlIGtSaXNjdkRpdlM6CisrICAgICAg cmV0dXJuIExhdGVuY3k6OkRJVl9TOworKyAgICBjYXNlIGtSaXNjdk1vZFM6CisrICAgICAgcmV0 dXJuIFByZXBhcmVDYWxsQ0Z1bmN0aW9uTGF0ZW5jeSgpICsgTW92VG9GbG9hdFBhcmFtZXRlcnNM YXRlbmN5KCkgKworKyAgICAgICAgICAgICBDYWxsQ0Z1bmN0aW9uTGF0ZW5jeSgpICsgTW92RnJv bUZsb2F0UmVzdWx0TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkFic1M6CisrICAgICAgcmV0 dXJuIExhdGVuY3k6OkFCU19TOworKyAgICBjYXNlIGtSaXNjdk5lZ1M6CisrICAgICAgcmV0dXJu IE5lZ2RMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2U3FydFM6CisrICAgICAgcmV0dXJuIExh dGVuY3k6OlNRUlRfUzsKKysgICAgY2FzZSBrUmlzY3ZNYXhTOgorKyAgICAgIHJldHVybiBMYXRl bmN5OjpNQVhfUzsKKysgICAgY2FzZSBrUmlzY3ZNaW5TOgorKyAgICAgIHJldHVybiBMYXRlbmN5 OjpNSU5fUzsKKysgICAgY2FzZSBrUmlzY3ZDbXBEOgorKyAgICAgIHJldHVybiBNb3ZlTGF0ZW5j eSgpICsgQ29tcGFyZUY2NExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZBZGREOgorKyAgICAg IHJldHVybiBMYXRlbmN5OjpBRERfRDsKKysgICAgY2FzZSBrUmlzY3ZTdWJEOgorKyAgICAgIHJl dHVybiBMYXRlbmN5OjpTVUJfRDsKKysgICAgY2FzZSBrUmlzY3ZNdWxEOgorKyAgICAgIHJldHVy biBMYXRlbmN5OjpNVUxfRDsKKysgICAgY2FzZSBrUmlzY3ZEaXZEOgorKyAgICAgIHJldHVybiBM YXRlbmN5OjpESVZfRDsKKysgICAgY2FzZSBrUmlzY3ZNb2REOgorKyAgICAgIHJldHVybiBQcmVw YXJlQ2FsbENGdW5jdGlvbkxhdGVuY3koKSArIE1vdlRvRmxvYXRQYXJhbWV0ZXJzTGF0ZW5jeSgp ICsKKysgICAgICAgICAgICAgQ2FsbENGdW5jdGlvbkxhdGVuY3koKSArIE1vdkZyb21GbG9hdFJl c3VsdExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZBYnNEOgorKyAgICAgIHJldHVybiBMYXRl bmN5OjpBQlNfRDsKKysgICAgY2FzZSBrUmlzY3ZOZWdEOgorKyAgICAgIHJldHVybiBOZWdkTGF0 ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdlNxcnREOgorKyAgICAgIHJldHVybiBMYXRlbmN5OjpT UVJUX0Q7CisrICAgIGNhc2Uga1Jpc2N2TWF4RDoKKysgICAgICByZXR1cm4gTGF0ZW5jeTo6TUFY X0Q7CisrICAgIGNhc2Uga1Jpc2N2TWluRDoKKysgICAgICByZXR1cm4gTGF0ZW5jeTo6TUlOX0Q7 CisrICAgIGNhc2Uga1Jpc2N2RmxvYXQ2NFJvdW5kRG93bjoKKysgICAgY2FzZSBrUmlzY3ZGbG9h dDY0Um91bmRUcnVuY2F0ZToKKysgICAgY2FzZSBrUmlzY3ZGbG9hdDY0Um91bmRVcDoKKysgICAg Y2FzZSBrUmlzY3ZGbG9hdDY0Um91bmRUaWVzRXZlbjoKKysgICAgICByZXR1cm4gRmxvYXQ2NFJv dW5kTGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkZsb2F0MzJSb3VuZERvd246CisrICAgIGNh c2Uga1Jpc2N2RmxvYXQzMlJvdW5kVHJ1bmNhdGU6CisrICAgIGNhc2Uga1Jpc2N2RmxvYXQzMlJv dW5kVXA6CisrICAgIGNhc2Uga1Jpc2N2RmxvYXQzMlJvdW5kVGllc0V2ZW46CisrICAgICAgcmV0 dXJuIEZsb2F0MzJSb3VuZExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZGbG9hdDMyTWF4Ogor KyAgICAgIHJldHVybiBGbG9hdDMyTWF4TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkZsb2F0 NjRNYXg6CisrICAgICAgcmV0dXJuIEZsb2F0NjRNYXhMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jp c2N2RmxvYXQzMk1pbjoKKysgICAgICByZXR1cm4gRmxvYXQzMk1pbkxhdGVuY3koKTsKKysgICAg Y2FzZSBrUmlzY3ZGbG9hdDY0TWluOgorKyAgICAgIHJldHVybiBGbG9hdDY0TWluTGF0ZW5jeSgp OworKyAgICBjYXNlIGtSaXNjdkZsb2F0NjRTaWxlbmNlTmFOOgorKyAgICAgIHJldHVybiBMYXRl bmN5OjpTVUJfRDsKKysgICAgY2FzZSBrUmlzY3ZDdnRTRDoKKysgICAgICByZXR1cm4gTGF0ZW5j eTo6Q1ZUX1NfRDsKKysgICAgY2FzZSBrUmlzY3ZDdnREUzoKKysgICAgICByZXR1cm4gTGF0ZW5j eTo6Q1ZUX0RfUzsKKysgICAgY2FzZSBrUmlzY3ZDdnREVzoKKysgICAgICByZXR1cm4gTGF0ZW5j eTo6TU9WVF9GUkVHICsgTGF0ZW5jeTo6Q1ZUX0RfVzsKKysgICAgY2FzZSBrUmlzY3ZDdnRTVzoK KysgICAgICByZXR1cm4gTGF0ZW5jeTo6TU9WVF9GUkVHICsgTGF0ZW5jeTo6Q1ZUX1NfVzsKKysg ICAgY2FzZSBrUmlzY3ZDdnRTVXc6CisrICAgICAgcmV0dXJuIDEgKyBMYXRlbmN5OjpNT1ZUX0RS RUcgKyBMYXRlbmN5OjpDVlRfU19MOworKyAgICBjYXNlIGtSaXNjdkN2dFNMOgorKyAgICAgIHJl dHVybiBMYXRlbmN5OjpNT1ZUX0RSRUcgKyBMYXRlbmN5OjpDVlRfU19MOworKyAgICBjYXNlIGtS aXNjdkN2dERMOgorKyAgICAgIHJldHVybiBMYXRlbmN5OjpNT1ZUX0RSRUcgKyBMYXRlbmN5OjpD VlRfRF9MOworKyAgICBjYXNlIGtSaXNjdkN2dERVdzoKKysgICAgICByZXR1cm4gMSArIExhdGVu Y3k6Ok1PVlRfRFJFRyArIExhdGVuY3k6OkNWVF9EX0w7CisrICAgIGNhc2Uga1Jpc2N2Q3Z0RFVs OgorKyAgICAgIHJldHVybiAyICogTGF0ZW5jeTo6QlJBTkNIICsgMyArIDIgKiBMYXRlbmN5OjpN T1ZUX0RSRUcgKworKyAgICAgICAgICAgICAyICogTGF0ZW5jeTo6Q1ZUX0RfTCArIExhdGVuY3k6 OkFERF9EOworKyAgICBjYXNlIGtSaXNjdkN2dFNVbDoKKysgICAgICByZXR1cm4gMiAqIExhdGVu Y3k6OkJSQU5DSCArIDMgKyAyICogTGF0ZW5jeTo6TU9WVF9EUkVHICsKKysgICAgICAgICAgICAg MiAqIExhdGVuY3k6OkNWVF9TX0wgKyBMYXRlbmN5OjpBRERfUzsKKysgICAgY2FzZSBrUmlzY3ZG bG9vcldEOgorKyAgICAgIHJldHVybiBMYXRlbmN5OjpGTE9PUl9XX0QgKyBMYXRlbmN5OjpNT1ZG X0ZSRUc7CisrICAgIGNhc2Uga1Jpc2N2Q2VpbFdEOgorKyAgICAgIHJldHVybiBMYXRlbmN5OjpD RUlMX1dfRCArIExhdGVuY3k6Ok1PVkZfRlJFRzsKKysgICAgY2FzZSBrUmlzY3ZSb3VuZFdEOgor KyAgICAgIHJldHVybiBMYXRlbmN5OjpST1VORF9XX0QgKyBMYXRlbmN5OjpNT1ZGX0ZSRUc7Cisr ICAgIGNhc2Uga1Jpc2N2VHJ1bmNXRDoKKysgICAgICByZXR1cm4gTGF0ZW5jeTo6VFJVTkNfV19E ICsgTGF0ZW5jeTo6TU9WRl9GUkVHOworKyAgICBjYXNlIGtSaXNjdkZsb29yV1M6CisrICAgICAg cmV0dXJuIExhdGVuY3k6OkZMT09SX1dfUyArIExhdGVuY3k6Ok1PVkZfRlJFRzsKKysgICAgY2Fz ZSBrUmlzY3ZDZWlsV1M6CisrICAgICAgcmV0dXJuIExhdGVuY3k6OkNFSUxfV19TICsgTGF0ZW5j eTo6TU9WRl9GUkVHOworKyAgICBjYXNlIGtSaXNjdlJvdW5kV1M6CisrICAgICAgcmV0dXJuIExh dGVuY3k6OlJPVU5EX1dfUyArIExhdGVuY3k6Ok1PVkZfRlJFRzsKKysgICAgY2FzZSBrUmlzY3ZU cnVuY1dTOgorKyAgICAgIHJldHVybiBMYXRlbmN5OjpUUlVOQ19XX1MgKyBMYXRlbmN5OjpNT1ZG X0ZSRUcgKyAyICsgTW92bkxhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZUcnVuY0xTOgorKyAg ICAgIHJldHVybiBUcnVuY0xTTGF0ZW5jeShpbnN0ci0+T3V0cHV0Q291bnQoKSA+IDEpOworKyAg ICBjYXNlIGtSaXNjdlRydW5jTEQ6CisrICAgICAgcmV0dXJuIFRydW5jTERMYXRlbmN5KGluc3Ry LT5PdXRwdXRDb3VudCgpID4gMSk7CisrICAgIGNhc2Uga1Jpc2N2VHJ1bmNVd0Q6CisrICAgICAg Ly8gRXN0aW1hdGVkIG1heC4KKysgICAgICByZXR1cm4gQ29tcGFyZUY2NExhdGVuY3koKSArIDIg KiBMYXRlbmN5OjpCUkFOQ0ggKworKyAgICAgICAgICAgICAyICogTGF0ZW5jeTo6VFJVTkNfV19E ICsgTGF0ZW5jeTo6U1VCX0QgKyBPckxhdGVuY3koKSArCisrICAgICAgICAgICAgIExhdGVuY3k6 Ok1PVlRfRlJFRyArIExhdGVuY3k6Ok1PVkZfRlJFRyArIExhdGVuY3k6Ok1PVlRfSElHSF9GUkVH ICsKKysgICAgICAgICAgICAgMTsKKysgICAgY2FzZSBrUmlzY3ZUcnVuY1V3UzoKKysgICAgICAv LyBFc3RpbWF0ZWQgbWF4LgorKyAgICAgIHJldHVybiBDb21wYXJlRjMyTGF0ZW5jeSgpICsgMiAq IExhdGVuY3k6OkJSQU5DSCArCisrICAgICAgICAgICAgIDIgKiBMYXRlbmN5OjpUUlVOQ19XX1Mg KyBMYXRlbmN5OjpTVUJfUyArIE9yTGF0ZW5jeSgpICsKKysgICAgICAgICAgICAgTGF0ZW5jeTo6 TU9WVF9GUkVHICsgMiAqIExhdGVuY3k6Ok1PVkZfRlJFRyArIDIgKyBNb3Z6TGF0ZW5jeSgpOwor KyAgICBjYXNlIGtSaXNjdlRydW5jVWxTOgorKyAgICAgIHJldHVybiBUcnVuY1VsU0xhdGVuY3ko KTsKKysgICAgY2FzZSBrUmlzY3ZUcnVuY1VsRDoKKysgICAgICByZXR1cm4gVHJ1bmNVbERMYXRl bmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2Qml0Y2FzdERMOgorKyAgICAgIHJldHVybiBMYXRlbmN5 OjpNT1ZGX0hJR0hfRFJFRzsKKysgICAgY2FzZSBrUmlzY3ZCaXRjYXN0TEQ6CisrICAgICAgcmV0 dXJuIExhdGVuY3k6Ok1PVlRfRFJFRzsKKysgICAgY2FzZSBrUmlzY3ZGbG9hdDY0RXh0cmFjdExv d1dvcmQzMjoKKysgICAgICByZXR1cm4gTGF0ZW5jeTo6TU9WRl9GUkVHOworKyAgICBjYXNlIGtS aXNjdkZsb2F0NjRJbnNlcnRMb3dXb3JkMzI6CisrICAgICAgcmV0dXJuIExhdGVuY3k6Ok1PVkZf SElHSF9GUkVHICsgTGF0ZW5jeTo6TU9WVF9GUkVHICsKKysgICAgICAgICAgICAgTGF0ZW5jeTo6 TU9WVF9ISUdIX0ZSRUc7CisrICAgIGNhc2Uga1Jpc2N2RmxvYXQ2NEV4dHJhY3RIaWdoV29yZDMy OgorKyAgICAgIHJldHVybiBMYXRlbmN5OjpNT1ZGX0hJR0hfRlJFRzsKKysgICAgY2FzZSBrUmlz Y3ZGbG9hdDY0SW5zZXJ0SGlnaFdvcmQzMjoKKysgICAgICByZXR1cm4gTGF0ZW5jeTo6TU9WVF9I SUdIX0ZSRUc7CisrICAgIGNhc2Uga1Jpc2N2U2lnbkV4dGVuZEJ5dGU6CisrICAgIGNhc2Uga1Jp c2N2U2lnbkV4dGVuZFNob3J0OgorKyAgICAgIHJldHVybiAxOworKyAgICBjYXNlIGtSaXNjdkxi dToKKysgICAgY2FzZSBrUmlzY3ZMYjoKKysgICAgY2FzZSBrUmlzY3ZMaHU6CisrICAgIGNhc2Ug a1Jpc2N2TGg6CisrICAgIGNhc2Uga1Jpc2N2THd1OgorKyAgICBjYXNlIGtSaXNjdkx3OgorKyAg ICBjYXNlIGtSaXNjdkxkOgorKyAgICBjYXNlIGtSaXNjdlNiOgorKyAgICBjYXNlIGtSaXNjdlNo OgorKyAgICBjYXNlIGtSaXNjdlN3OgorKyAgICBjYXNlIGtSaXNjdlNkOgorKyAgICAgIHJldHVy biBBbGlnbmVkTWVtb3J5TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdkxvYWRGbG9hdDoKKysg ICAgICByZXR1cm4gVUxvYWRGbG9hdExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZMb2FkRG91 YmxlOgorKyAgICAgIHJldHVybiBMb2FkRG91YmxlTGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNj dlN0b3JlRmxvYXQ6CisrICAgICAgcmV0dXJuIFN0b3JlRmxvYXRMYXRlbmN5KCk7CisrICAgIGNh c2Uga1Jpc2N2U3RvcmVEb3VibGU6CisrICAgICAgcmV0dXJuIFN0b3JlRG91YmxlTGF0ZW5jeSgp OworKyAgICBjYXNlIGtSaXNjdlVsaHU6CisrICAgIGNhc2Uga1Jpc2N2VWxoOgorKyAgICAgIHJl dHVybiBVbGh1TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdlVsd3U6CisrICAgICAgcmV0dXJu IFVsd3VMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2VWx3OgorKyAgICAgIHJldHVybiBVbHdM YXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2VWxkOgorKyAgICAgIHJldHVybiBVbGRMYXRlbmN5 KCk7CisrICAgIGNhc2Uga1Jpc2N2VUxvYWRGbG9hdDoKKysgICAgICByZXR1cm4gVUxvYWRGbG9h dExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlzY3ZVTG9hZERvdWJsZToKKysgICAgICByZXR1cm4g VUxvYWREb3VibGVMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2VXNoOgorKyAgICAgIHJldHVy biBVc2hMYXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2VXN3OgorKyAgICAgIHJldHVybiBVc3dM YXRlbmN5KCk7CisrICAgIGNhc2Uga1Jpc2N2VXNkOgorKyAgICAgIHJldHVybiBVc2RMYXRlbmN5 KCk7CisrICAgIGNhc2Uga1Jpc2N2VVN0b3JlRmxvYXQ6CisrICAgICAgcmV0dXJuIFVTdG9yZUZs b2F0TGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdlVTdG9yZURvdWJsZToKKysgICAgICByZXR1 cm4gVVN0b3JlRG91YmxlTGF0ZW5jeSgpOworKyAgICBjYXNlIGtSaXNjdlB1c2g6IHsKKysgICAg ICBpbnQgbGF0ZW5jeSA9IDA7CisrICAgICAgaWYgKGluc3RyLT5JbnB1dEF0KDApLT5Jc0ZQUmVn aXN0ZXIoKSkgeworKyAgICAgICAgbGF0ZW5jeSA9IFN0b3JlRG91YmxlTGF0ZW5jeSgpICsgU3Vi NjRMYXRlbmN5KGZhbHNlKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgbGF0ZW5jeSA9IFB1 c2hMYXRlbmN5KCk7CisrICAgICAgfQorKyAgICAgIHJldHVybiBsYXRlbmN5OworKyAgICB9Cisr ICAgIGNhc2Uga1Jpc2N2UGVlazogeworKyAgICAgIGludCBsYXRlbmN5ID0gMDsKKysgICAgICBp ZiAoaW5zdHItPk91dHB1dEF0KDApLT5Jc0ZQUmVnaXN0ZXIoKSkgeworKyAgICAgICAgYXV0byBv cCA9IExvY2F0aW9uT3BlcmFuZDo6Y2FzdChpbnN0ci0+T3V0cHV0QXQoMCkpOworKyAgICAgICAg c3dpdGNoIChvcC0+cmVwcmVzZW50YXRpb24oKSkgeworKyAgICAgICAgICBjYXNlIE1hY2hpbmVS ZXByZXNlbnRhdGlvbjo6a0Zsb2F0NjQ6CisrICAgICAgICAgICAgbGF0ZW5jeSA9IExvYWREb3Vi bGVMYXRlbmN5KCk7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2UgTWFjaGlu ZVJlcHJlc2VudGF0aW9uOjprRmxvYXQzMjoKKysgICAgICAgICAgICBsYXRlbmN5ID0gTGF0ZW5j eTo6TE9BRF9GTE9BVDsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgZGVmYXVsdDoK KysgICAgICAgICAgICBVTlJFQUNIQUJMRSgpOworKyAgICAgICAgfQorKyAgICAgIH0gZWxzZSB7 CisrICAgICAgICBsYXRlbmN5ID0gQWxpZ25lZE1lbW9yeUxhdGVuY3koKTsKKysgICAgICB9Cisr ICAgICAgcmV0dXJuIGxhdGVuY3k7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZTdGFja0NsYWlt OgorKyAgICAgIHJldHVybiBTdWI2NExhdGVuY3koZmFsc2UpOworKyAgICBjYXNlIGtSaXNjdlN0 b3JlVG9TdGFja1Nsb3Q6IHsKKysgICAgICBpbnQgbGF0ZW5jeSA9IDA7CisrICAgICAgaWYgKGlu c3RyLT5JbnB1dEF0KDApLT5Jc0ZQUmVnaXN0ZXIoKSkgeworKyAgICAgICAgaWYgKGluc3RyLT5J bnB1dEF0KDApLT5Jc1NpbWQxMjhSZWdpc3RlcigpKSB7CisrICAgICAgICAgIGxhdGVuY3kgPSAx OyAgLy8gRXN0aW1hdGVkIHZhbHVlLgorKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgbGF0 ZW5jeSA9IFN0b3JlRG91YmxlTGF0ZW5jeSgpOworKyAgICAgICAgfQorKyAgICAgIH0gZWxzZSB7 CisrICAgICAgICBsYXRlbmN5ID0gQWxpZ25lZE1lbW9yeUxhdGVuY3koKTsKKysgICAgICB9Cisr ICAgICAgcmV0dXJuIGxhdGVuY3k7CisrICAgIH0KKysgICAgY2FzZSBrUmlzY3ZCeXRlU3dhcDY0 OgorKyAgICAgIHJldHVybiBCeXRlU3dhcFNpZ25lZExhdGVuY3koKTsKKysgICAgY2FzZSBrUmlz Y3ZCeXRlU3dhcDMyOgorKyAgICAgIHJldHVybiBCeXRlU3dhcFNpZ25lZExhdGVuY3koKTsKKysg ICAgY2FzZSBrV29yZDMyQXRvbWljTG9hZEludDg6CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0xv YWRVaW50ODoKKysgICAgY2FzZSBrV29yZDMyQXRvbWljTG9hZEludDE2OgorKyAgICBjYXNlIGtX b3JkMzJBdG9taWNMb2FkVWludDE2OgorKyAgICBjYXNlIGtXb3JkMzJBdG9taWNMb2FkV29yZDMy OgorKyAgICAgIHJldHVybiAyOworKyAgICBjYXNlIGtXb3JkMzJBdG9taWNTdG9yZVdvcmQ4Ogor KyAgICBjYXNlIGtXb3JkMzJBdG9taWNTdG9yZVdvcmQxNjoKKysgICAgY2FzZSBrV29yZDMyQXRv bWljU3RvcmVXb3JkMzI6CisrICAgICAgcmV0dXJuIDM7CisrICAgIGNhc2Uga1dvcmQzMkF0b21p Y0V4Y2hhbmdlSW50ODoKKysgICAgICByZXR1cm4gV29yZDMyQXRvbWljRXhjaGFuZ2VMYXRlbmN5 KHRydWUsIDgpOworKyAgICBjYXNlIGtXb3JkMzJBdG9taWNFeGNoYW5nZVVpbnQ4OgorKyAgICAg IHJldHVybiBXb3JkMzJBdG9taWNFeGNoYW5nZUxhdGVuY3koZmFsc2UsIDgpOworKyAgICBjYXNl IGtXb3JkMzJBdG9taWNFeGNoYW5nZUludDE2OgorKyAgICAgIHJldHVybiBXb3JkMzJBdG9taWNF eGNoYW5nZUxhdGVuY3kodHJ1ZSwgMTYpOworKyAgICBjYXNlIGtXb3JkMzJBdG9taWNFeGNoYW5n ZVVpbnQxNjoKKysgICAgICByZXR1cm4gV29yZDMyQXRvbWljRXhjaGFuZ2VMYXRlbmN5KGZhbHNl LCAxNik7CisrICAgIGNhc2Uga1dvcmQzMkF0b21pY0V4Y2hhbmdlV29yZDMyOgorKyAgICAgIHJl dHVybiAyICsgTGxMYXRlbmN5KDApICsgMSArIFNjTGF0ZW5jeSgwKSArIEJyYW5jaFNob3J0TGF0 ZW5jeSgpICsgMTsKKysgICAgY2FzZSBrV29yZDMyQXRvbWljQ29tcGFyZUV4Y2hhbmdlSW50ODoK KysgICAgICByZXR1cm4gV29yZDMyQXRvbWljQ29tcGFyZUV4Y2hhbmdlTGF0ZW5jeSh0cnVlLCA4 KTsKKysgICAgY2FzZSBrV29yZDMyQXRvbWljQ29tcGFyZUV4Y2hhbmdlVWludDg6CisrICAgICAg cmV0dXJuIFdvcmQzMkF0b21pY0NvbXBhcmVFeGNoYW5nZUxhdGVuY3koZmFsc2UsIDgpOworKyAg ICBjYXNlIGtXb3JkMzJBdG9taWNDb21wYXJlRXhjaGFuZ2VJbnQxNjoKKysgICAgICByZXR1cm4g V29yZDMyQXRvbWljQ29tcGFyZUV4Y2hhbmdlTGF0ZW5jeSh0cnVlLCAxNik7CisrICAgIGNhc2Ug a1dvcmQzMkF0b21pY0NvbXBhcmVFeGNoYW5nZVVpbnQxNjoKKysgICAgICByZXR1cm4gV29yZDMy QXRvbWljQ29tcGFyZUV4Y2hhbmdlTGF0ZW5jeShmYWxzZSwgMTYpOworKyAgICBjYXNlIGtXb3Jk MzJBdG9taWNDb21wYXJlRXhjaGFuZ2VXb3JkMzI6CisrICAgICAgcmV0dXJuIDMgKyBMbExhdGVu Y3koMCkgKyBCcmFuY2hTaG9ydExhdGVuY3koKSArIDEgKyBTY0xhdGVuY3koMCkgKworKyAgICAg ICAgICAgICBCcmFuY2hTaG9ydExhdGVuY3koKSArIDE7CisrICAgIGNhc2Uga1Jpc2N2QXNzZXJ0 RXF1YWw6CisrICAgICAgcmV0dXJuIEFzc2VydExhdGVuY3koKTsKKysgICAgZGVmYXVsdDoKKysg ICAgICByZXR1cm4gMTsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIGNvbXBpbGVyCisr fSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CitJbmRleDogcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9z cmMvY29tcGlsZXIvYmFja2VuZC9yaXNjdjY0L2luc3RydWN0aW9uLXNlbGVjdG9yLXJpc2N2NjQu Y2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9jb21waWxlci9iYWNrZW5k L3Jpc2N2NjQvaW5zdHJ1Y3Rpb24tc2VsZWN0b3ItcmlzY3Y2NC5jYworQEAgLTAsMCArMSwyOTg1 IEBACisrLy8gQ29weXJpZ2h0IDIwMTQgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KKysKKysjaW5jbHVkZSAic3JjL2Jhc2UvYml0cy5oIgorKyNpbmNsdWRlICJzcmMvY29t cGlsZXIvYmFja2VuZC9pbnN0cnVjdGlvbi1zZWxlY3Rvci1pbXBsLmgiCisrI2luY2x1ZGUgInNy Yy9jb21waWxlci9ub2RlLW1hdGNoZXJzLmgiCisrI2luY2x1ZGUgInNyYy9jb21waWxlci9ub2Rl LXByb3BlcnRpZXMuaCIKKysKKytuYW1lc3BhY2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7 CisrbmFtZXNwYWNlIGNvbXBpbGVyIHsKKysKKysjZGVmaW5lIFRSQUNFX1VOSU1QTCgpIFwKKysg IFByaW50RigiVU5JTVBMRU1FTlRFRCBpbnN0cl9zZWw6ICVzIGF0IGxpbmUgJWRcbiIsIF9fRlVO Q1RJT05fXywgX19MSU5FX18pCisrCisrI2RlZmluZSBUUkFDRSgpIFByaW50RigiaW5zdHJfc2Vs OiAlcyBhdCBsaW5lICVkXG4iLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKQorKworKy8vIEFkZHMg UklTQy1WLXNwZWNpZmljIG1ldGhvZHMgZm9yIGdlbmVyYXRpbmcgSW5zdHJ1Y3Rpb25PcGVyYW5k cy4KKytjbGFzcyBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgT3BlcmFuZEdl bmVyYXRvciB7CisrIHB1YmxpYzoKKysgIGV4cGxpY2l0IFJpc2N2T3BlcmFuZEdlbmVyYXRvcihJ bnN0cnVjdGlvblNlbGVjdG9yKiBzZWxlY3RvcikKKysgICAgICA6IE9wZXJhbmRHZW5lcmF0b3Io c2VsZWN0b3IpIHt9CisrCisrICBJbnN0cnVjdGlvbk9wZXJhbmQgVXNlT3BlcmFuZChOb2RlKiBu b2RlLCBJbnN0cnVjdGlvbkNvZGUgb3Bjb2RlKSB7CisrICAgIGlmIChDYW5CZUltbWVkaWF0ZShu b2RlLCBvcGNvZGUpKSB7CisrICAgICAgcmV0dXJuIFVzZUltbWVkaWF0ZShub2RlKTsKKysgICAg fQorKyAgICByZXR1cm4gVXNlUmVnaXN0ZXIobm9kZSk7CisrICB9CisrCisrICAvLyBVc2UgdGhl IHplcm8gcmVnaXN0ZXIgaWYgdGhlIG5vZGUgaGFzIHRoZSBpbW1lZGlhdGUgdmFsdWUgemVybywg b3RoZXJ3aXNlCisrICAvLyBhc3NpZ24gYSByZWdpc3Rlci4KKysgIEluc3RydWN0aW9uT3BlcmFu ZCBVc2VSZWdpc3Rlck9ySW1tZWRpYXRlWmVybyhOb2RlKiBub2RlKSB7CisrICAgIGlmICgoSXNJ bnRlZ2VyQ29uc3RhbnQobm9kZSkgJiYgKEdldEludGVnZXJDb25zdGFudFZhbHVlKG5vZGUpID09 IDApKSB8fAorKyAgICAgICAgKElzRmxvYXRDb25zdGFudChub2RlKSAmJgorKyAgICAgICAgIChi aXRfY2FzdDxpbnQ2NF90PihHZXRGbG9hdENvbnN0YW50VmFsdWUobm9kZSkpID09IDApKSkgewor KyAgICAgIHJldHVybiBVc2VJbW1lZGlhdGUobm9kZSk7CisrICAgIH0KKysgICAgcmV0dXJuIFVz ZVJlZ2lzdGVyKG5vZGUpOworKyAgfQorKworKyAgYm9vbCBJc0ludGVnZXJDb25zdGFudChOb2Rl KiBub2RlKSB7CisrICAgIHJldHVybiAobm9kZS0+b3Bjb2RlKCkgPT0gSXJPcGNvZGU6OmtJbnQz MkNvbnN0YW50KSB8fAorKyAgICAgICAgICAgKG5vZGUtPm9wY29kZSgpID09IElyT3Bjb2RlOjpr SW50NjRDb25zdGFudCk7CisrICB9CisrCisrICBpbnQ2NF90IEdldEludGVnZXJDb25zdGFudFZh bHVlKE5vZGUqIG5vZGUpIHsKKysgICAgaWYgKG5vZGUtPm9wY29kZSgpID09IElyT3Bjb2RlOjpr SW50MzJDb25zdGFudCkgeworKyAgICAgIHJldHVybiBPcFBhcmFtZXRlcjxpbnQzMl90Pihub2Rl LT5vcCgpKTsKKysgICAgfQorKyAgICBEQ0hFQ0tfRVEoSXJPcGNvZGU6OmtJbnQ2NENvbnN0YW50 LCBub2RlLT5vcGNvZGUoKSk7CisrICAgIHJldHVybiBPcFBhcmFtZXRlcjxpbnQ2NF90Pihub2Rl LT5vcCgpKTsKKysgIH0KKysKKysgIGJvb2wgSXNGbG9hdENvbnN0YW50KE5vZGUqIG5vZGUpIHsK KysgICAgcmV0dXJuIChub2RlLT5vcGNvZGUoKSA9PSBJck9wY29kZTo6a0Zsb2F0MzJDb25zdGFu dCkgfHwKKysgICAgICAgICAgIChub2RlLT5vcGNvZGUoKSA9PSBJck9wY29kZTo6a0Zsb2F0NjRD b25zdGFudCk7CisrICB9CisrCisrICBkb3VibGUgR2V0RmxvYXRDb25zdGFudFZhbHVlKE5vZGUq IG5vZGUpIHsKKysgICAgaWYgKG5vZGUtPm9wY29kZSgpID09IElyT3Bjb2RlOjprRmxvYXQzMkNv bnN0YW50KSB7CisrICAgICAgcmV0dXJuIE9wUGFyYW1ldGVyPGZsb2F0Pihub2RlLT5vcCgpKTsK KysgICAgfQorKyAgICBEQ0hFQ0tfRVEoSXJPcGNvZGU6OmtGbG9hdDY0Q29uc3RhbnQsIG5vZGUt Pm9wY29kZSgpKTsKKysgICAgcmV0dXJuIE9wUGFyYW1ldGVyPGRvdWJsZT4obm9kZS0+b3AoKSk7 CisrICB9CisrCisrICBib29sIENhbkJlSW1tZWRpYXRlKE5vZGUqIG5vZGUsIEluc3RydWN0aW9u Q29kZSBtb2RlKSB7CisrICAgIHJldHVybiBJc0ludGVnZXJDb25zdGFudChub2RlKSAmJgorKyAg ICAgICAgICAgQ2FuQmVJbW1lZGlhdGUoR2V0SW50ZWdlckNvbnN0YW50VmFsdWUobm9kZSksIG1v ZGUpOworKyAgfQorKworKyAgYm9vbCBDYW5CZUltbWVkaWF0ZShpbnQ2NF90IHZhbHVlLCBJbnN0 cnVjdGlvbkNvZGUgb3Bjb2RlKSB7CisrICAgIHN3aXRjaCAoQXJjaE9wY29kZUZpZWxkOjpkZWNv ZGUob3Bjb2RlKSkgeworKyAgICAgIGNhc2Uga1Jpc2N2U2hsMzI6CisrICAgICAgY2FzZSBrUmlz Y3ZTYXIzMjoKKysgICAgICBjYXNlIGtSaXNjdlNocjMyOgorKyAgICAgICAgcmV0dXJuIGlzX3Vp bnQ1KHZhbHVlKTsKKysgICAgICBjYXNlIGtSaXNjdlNobDY0OgorKyAgICAgIGNhc2Uga1Jpc2N2 U2FyNjQ6CisrICAgICAgY2FzZSBrUmlzY3ZTaHI2NDoKKysgICAgICAgIHJldHVybiBpc191aW50 Nih2YWx1ZSk7CisrICAgICAgY2FzZSBrUmlzY3ZBZGQzMjoKKysgICAgICBjYXNlIGtSaXNjdkFu ZDMyOgorKyAgICAgIGNhc2Uga1Jpc2N2QW5kOgorKyAgICAgIGNhc2Uga1Jpc2N2QWRkNjQ6Cisr ICAgICAgY2FzZSBrUmlzY3ZPcjMyOgorKyAgICAgIGNhc2Uga1Jpc2N2T3I6CisrICAgICAgY2Fz ZSBrUmlzY3ZUc3Q6CisrICAgICAgY2FzZSBrUmlzY3ZYb3I6CisrICAgICAgICByZXR1cm4gaXNf aW50MTIodmFsdWUpOworKyAgICAgIGNhc2Uga1Jpc2N2TGI6CisrICAgICAgY2FzZSBrUmlzY3ZM YnU6CisrICAgICAgY2FzZSBrUmlzY3ZTYjoKKysgICAgICBjYXNlIGtSaXNjdkxoOgorKyAgICAg IGNhc2Uga1Jpc2N2TGh1OgorKyAgICAgIGNhc2Uga1Jpc2N2U2g6CisrICAgICAgY2FzZSBrUmlz Y3ZMdzoKKysgICAgICBjYXNlIGtSaXNjdlN3OgorKyAgICAgIGNhc2Uga1Jpc2N2TGQ6CisrICAg ICAgY2FzZSBrUmlzY3ZTZDoKKysgICAgICBjYXNlIGtSaXNjdkxvYWRGbG9hdDoKKysgICAgICBj YXNlIGtSaXNjdlN0b3JlRmxvYXQ6CisrICAgICAgY2FzZSBrUmlzY3ZMb2FkRG91YmxlOgorKyAg ICAgIGNhc2Uga1Jpc2N2U3RvcmVEb3VibGU6CisrICAgICAgICByZXR1cm4gaXNfaW50MzIodmFs dWUpOworKyAgICAgIGRlZmF1bHQ6CisrICAgICAgICByZXR1cm4gaXNfaW50MTIodmFsdWUpOwor KyAgICB9CisrICB9CisrCisrIHByaXZhdGU6CisrICBib29sIEltbWVkaWF0ZUZpdHNBZGRyTW9k ZTFJbnN0cnVjdGlvbihpbnQzMl90IGltbSkgY29uc3QgeworKyAgICBUUkFDRV9VTklNUEwoKTsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorK307CisrCisrc3RhdGljIHZvaWQgVmlzaXRSUihJ bnN0cnVjdGlvblNlbGVjdG9yKiBzZWxlY3RvciwgQXJjaE9wY29kZSBvcGNvZGUsCisrICAgICAg ICAgICAgICAgICAgICBOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyhz ZWxlY3Rvcik7CisrICBzZWxlY3Rvci0+RW1pdChvcGNvZGUsIGcuRGVmaW5lQXNSZWdpc3Rlcihu b2RlKSwKKysgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgwKSkp OworK30KKysKKytzdGF0aWMgdm9pZCBWaXNpdFJSSShJbnN0cnVjdGlvblNlbGVjdG9yKiBzZWxl Y3RvciwgQXJjaE9wY29kZSBvcGNvZGUsCisrICAgICAgICAgICAgICAgICAgICAgTm9kZSogbm9k ZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcoc2VsZWN0b3IpOworKyAgaW50MzJfdCBp bW0gPSBPcFBhcmFtZXRlcjxpbnQzMl90Pihub2RlLT5vcCgpKTsKKysgIHNlbGVjdG9yLT5FbWl0 KG9wY29kZSwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICAgICAgICAgICAgZy5V c2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSwgZy5Vc2VJbW1lZGlhdGUoaW1tKSk7CisrfQor KworK3N0YXRpYyB2b2lkIFZpc2l0U2ltZFNoaWZ0KEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVj dG9yLCBBcmNoT3Bjb2RlIG9wY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2Rl KiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyhzZWxlY3Rvcik7CisrICBpZiAo Zy5Jc0ludGVnZXJDb25zdGFudChub2RlLT5JbnB1dEF0KDEpKSkgeworKyAgICBzZWxlY3Rvci0+ RW1pdChvcGNvZGUsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgICAgICAgICAg ICAgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSwKKysgICAgICAgICAgICAgICAgICAg Zy5Vc2VJbW1lZGlhdGUobm9kZS0+SW5wdXRBdCgxKSkpOworKyAgfSBlbHNlIHsKKysgICAgc2Vs ZWN0b3ItPkVtaXQob3Bjb2RlLCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgICAg ICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgwKSksCisrICAgICAgICAgICAg ICAgICAgIGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgxKSkpOworKyAgfQorK30KKysKKytz dGF0aWMgdm9pZCBWaXNpdFJSSVIoSW5zdHJ1Y3Rpb25TZWxlY3Rvciogc2VsZWN0b3IsIEFyY2hP cGNvZGUgb3Bjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlKSB7CisrICBS aXNjdk9wZXJhbmRHZW5lcmF0b3IgZyhzZWxlY3Rvcik7CisrICBpbnQzMl90IGltbSA9IE9wUGFy YW1ldGVyPGludDMyX3Q+KG5vZGUtPm9wKCkpOworKyAgc2VsZWN0b3ItPkVtaXQob3Bjb2RlLCBn LkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVy KG5vZGUtPklucHV0QXQoMCkpLCBnLlVzZUltbWVkaWF0ZShpbW0pLAorKyAgICAgICAgICAgICAg ICAgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDEpKSk7CisrfQorKworK3N0YXRpYyB2b2lk IFZpc2l0UlJSKEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBBcmNoT3Bjb2RlIG9wY29k ZSwKKysgICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRH ZW5lcmF0b3IgZyhzZWxlY3Rvcik7CisrICBzZWxlY3Rvci0+RW1pdChvcGNvZGUsIGcuRGVmaW5l QXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobm9kZS0+ SW5wdXRBdCgwKSksCisrICAgICAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0 QXQoMSkpKTsKKyt9CisrCisrc3RhdGljIHZvaWQgVmlzaXRVbmlxdWVSUlIoSW5zdHJ1Y3Rpb25T ZWxlY3Rvciogc2VsZWN0b3IsIEFyY2hPcGNvZGUgb3Bjb2RlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVj dG9yKTsKKysgIHNlbGVjdG9yLT5FbWl0KG9wY29kZSwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUp LAorKyAgICAgICAgICAgICAgICAgZy5Vc2VVbmlxdWVSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDAp KSwKKysgICAgICAgICAgICAgICAgIGcuVXNlVW5pcXVlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgx KSkpOworK30KKysKKyt2b2lkIFZpc2l0UlJSUihJbnN0cnVjdGlvblNlbGVjdG9yKiBzZWxlY3Rv ciwgQXJjaE9wY29kZSBvcGNvZGUsIE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVy YXRvciBnKHNlbGVjdG9yKTsKKysgIHNlbGVjdG9yLT5FbWl0KAorKyAgICAgIG9wY29kZSwgZy5E ZWZpbmVTYW1lQXNGaXJzdChub2RlKSwgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSwK KysgICAgICBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMSkpLCBnLlVzZVJlZ2lzdGVyKG5v ZGUtPklucHV0QXQoMikpKTsKKyt9CisrCisrc3RhdGljIHZvaWQgVmlzaXRSUk8oSW5zdHJ1Y3Rp b25TZWxlY3Rvciogc2VsZWN0b3IsIEFyY2hPcGNvZGUgb3Bjb2RlLAorKyAgICAgICAgICAgICAg ICAgICAgIE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9y KTsKKysgIHNlbGVjdG9yLT5FbWl0KG9wY29kZSwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAor KyAgICAgICAgICAgICAgICAgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSwKKysgICAg ICAgICAgICAgICAgIGcuVXNlT3BlcmFuZChub2RlLT5JbnB1dEF0KDEpLCBvcGNvZGUpKTsKKyt9 CisrCisrc3RydWN0IEV4dGVuZGluZ0xvYWRNYXRjaGVyIHsKKysgIEV4dGVuZGluZ0xvYWRNYXRj aGVyKE5vZGUqIG5vZGUsIEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yKQorKyAgICAgIDog bWF0Y2hlc18oZmFsc2UpLCBzZWxlY3Rvcl8oc2VsZWN0b3IpLCBiYXNlXyhudWxscHRyKSwgaW1t ZWRpYXRlXygwKSB7CisrICAgIEluaXRpYWxpemUobm9kZSk7CisrICB9CisrCisrICBib29sIE1h dGNoZXMoKSBjb25zdCB7IHJldHVybiBtYXRjaGVzXzsgfQorKworKyAgTm9kZSogYmFzZSgpIGNv bnN0IHsKKysgICAgRENIRUNLKE1hdGNoZXMoKSk7CisrICAgIHJldHVybiBiYXNlXzsKKysgIH0K KysgIGludDY0X3QgaW1tZWRpYXRlKCkgY29uc3QgeworKyAgICBEQ0hFQ0soTWF0Y2hlcygpKTsK KysgICAgcmV0dXJuIGltbWVkaWF0ZV87CisrICB9CisrICBBcmNoT3Bjb2RlIG9wY29kZSgpIGNv bnN0IHsKKysgICAgRENIRUNLKE1hdGNoZXMoKSk7CisrICAgIHJldHVybiBvcGNvZGVfOworKyAg fQorKworKyBwcml2YXRlOgorKyAgYm9vbCBtYXRjaGVzXzsKKysgIEluc3RydWN0aW9uU2VsZWN0 b3IqIHNlbGVjdG9yXzsKKysgIE5vZGUqIGJhc2VfOworKyAgaW50NjRfdCBpbW1lZGlhdGVfOwor KyAgQXJjaE9wY29kZSBvcGNvZGVfOworKworKyAgdm9pZCBJbml0aWFsaXplKE5vZGUqIG5vZGUp IHsKKysgICAgSW50NjRCaW5vcE1hdGNoZXIgbShub2RlKTsKKysgICAgLy8gV2hlbiBsb2FkaW5n IGEgNjQtYml0IHZhbHVlIGFuZCBzaGlmdGluZyBieSAzMiwgd2Ugc2hvdWxkCisrICAgIC8vIGp1 c3QgbG9hZCBhbmQgc2lnbi1leHRlbmQgdGhlIGludGVyZXN0aW5nIDQgYnl0ZXMgaW5zdGVhZC4K KysgICAgLy8gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgd2hlbiB3ZSdyZSBsb2FkaW5nIGFu ZCB1bnRhZ2dpbmcgU01Jcy4KKysgICAgRENIRUNLKG0uSXNXb3JkNjRTYXIoKSk7CisrICAgIGlm IChtLmxlZnQoKS5Jc0xvYWQoKSAmJiBtLnJpZ2h0KCkuSXMoMzIpICYmCisrICAgICAgICBzZWxl Y3Rvcl8tPkNhbkNvdmVyKG0ubm9kZSgpLCBtLmxlZnQoKS5ub2RlKCkpKSB7CisrICAgICAgRENI RUNLX0VRKHNlbGVjdG9yXy0+R2V0RWZmZWN0TGV2ZWwobm9kZSksCisrICAgICAgICAgICAgICAg IHNlbGVjdG9yXy0+R2V0RWZmZWN0TGV2ZWwobS5sZWZ0KCkubm9kZSgpKSk7CisrICAgICAgTWFj aGluZVJlcHJlc2VudGF0aW9uIHJlcCA9CisrICAgICAgICAgIExvYWRSZXByZXNlbnRhdGlvbk9m KG0ubGVmdCgpLm5vZGUoKS0+b3AoKSkucmVwcmVzZW50YXRpb24oKTsKKysgICAgICBEQ0hFQ0tf RVEoMywgRWxlbWVudFNpemVMb2cyT2YocmVwKSk7CisrICAgICAgaWYgKHJlcCAhPSBNYWNoaW5l UmVwcmVzZW50YXRpb246OmtUYWdnZWRTaWduZWQgJiYKKysgICAgICAgICAgcmVwICE9IE1hY2hp bmVSZXByZXNlbnRhdGlvbjo6a1RhZ2dlZFBvaW50ZXIgJiYKKysgICAgICAgICAgcmVwICE9IE1h Y2hpbmVSZXByZXNlbnRhdGlvbjo6a1RhZ2dlZCAmJgorKyAgICAgICAgICByZXAgIT0gTWFjaGlu ZVJlcHJlc2VudGF0aW9uOjprV29yZDY0KSB7CisrICAgICAgICByZXR1cm47CisrICAgICAgfQor KworKyAgICAgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9yXyk7CisrICAgICAgTm9k ZSogbG9hZCA9IG0ubGVmdCgpLm5vZGUoKTsKKysgICAgICBOb2RlKiBvZmZzZXQgPSBsb2FkLT5J bnB1dEF0KDEpOworKyAgICAgIGJhc2VfID0gbG9hZC0+SW5wdXRBdCgwKTsKKysgICAgICBvcGNv ZGVfID0ga1Jpc2N2THc7CisrICAgICAgaWYgKGcuQ2FuQmVJbW1lZGlhdGUob2Zmc2V0LCBvcGNv ZGVfKSkgeworKyNpZiBkZWZpbmVkKFY4X1RBUkdFVF9MSVRUTEVfRU5ESUFOKQorKyAgICAgICAg aW1tZWRpYXRlXyA9IGcuR2V0SW50ZWdlckNvbnN0YW50VmFsdWUob2Zmc2V0KSArIDQ7CisrI2Vs aWYgZGVmaW5lZChWOF9UQVJHRVRfQklHX0VORElBTikKKysgICAgICAgIGltbWVkaWF0ZV8gPSBn LkdldEludGVnZXJDb25zdGFudFZhbHVlKG9mZnNldCk7CisrI2VuZGlmCisrICAgICAgICBtYXRj aGVzXyA9IGcuQ2FuQmVJbW1lZGlhdGUoaW1tZWRpYXRlXywga1Jpc2N2THcpOworKyAgICAgIH0K KysgICAgfQorKyAgfQorK307CisrCisrYm9vbCBUcnlFbWl0RXh0ZW5kaW5nTG9hZChJbnN0cnVj dGlvblNlbGVjdG9yKiBzZWxlY3RvciwgTm9kZSogbm9kZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIE5vZGUqIG91dHB1dF9ub2RlKSB7CisrICBFeHRlbmRpbmdMb2FkTWF0Y2hlciBtKG5v ZGUsIHNlbGVjdG9yKTsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9yKTsKKysg IGlmIChtLk1hdGNoZXMoKSkgeworKyAgICBJbnN0cnVjdGlvbk9wZXJhbmQgaW5wdXRzWzJdOwor KyAgICBpbnB1dHNbMF0gPSBnLlVzZVJlZ2lzdGVyKG0uYmFzZSgpKTsKKysgICAgSW5zdHJ1Y3Rp b25Db2RlIG9wY29kZSA9CisrICAgICAgICBtLm9wY29kZSgpIHwgQWRkcmVzc2luZ01vZGVGaWVs ZDo6ZW5jb2RlKGtNb2RlX01SSSk7CisrICAgIERDSEVDSyhpc19pbnQzMihtLmltbWVkaWF0ZSgp KSk7CisrICAgIGlucHV0c1sxXSA9IGcuVGVtcEltbWVkaWF0ZShzdGF0aWNfY2FzdDxpbnQzMl90 PihtLmltbWVkaWF0ZSgpKSk7CisrICAgIEluc3RydWN0aW9uT3BlcmFuZCBvdXRwdXRzW10gPSB7 Zy5EZWZpbmVBc1JlZ2lzdGVyKG91dHB1dF9ub2RlKX07CisrICAgIHNlbGVjdG9yLT5FbWl0KG9w Y29kZSwgYXJyYXlzaXplKG91dHB1dHMpLCBvdXRwdXRzLCBhcnJheXNpemUoaW5wdXRzKSwKKysg ICAgICAgICAgICAgICAgICAgaW5wdXRzKTsKKysgICAgcmV0dXJuIHRydWU7CisrICB9CisrICBy ZXR1cm4gZmFsc2U7CisrfQorKworK2Jvb2wgVHJ5TWF0Y2hJbW1lZGlhdGUoSW5zdHJ1Y3Rpb25T ZWxlY3Rvciogc2VsZWN0b3IsCisrICAgICAgICAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbkNv ZGUqIG9wY29kZV9yZXR1cm4sIE5vZGUqIG5vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICBz aXplX3QqIGlucHV0X2NvdW50X3JldHVybiwgSW5zdHJ1Y3Rpb25PcGVyYW5kKiBpbnB1dHMpIHsK KysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9yKTsKKysgIGlmIChnLkNhbkJlSW1t ZWRpYXRlKG5vZGUsICpvcGNvZGVfcmV0dXJuKSkgeworKyAgICAqb3Bjb2RlX3JldHVybiB8PSBB ZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTVJJKTsKKysgICAgaW5wdXRzWzBdID0g Zy5Vc2VJbW1lZGlhdGUobm9kZSk7CisrICAgICppbnB1dF9jb3VudF9yZXR1cm4gPSAxOworKyAg ICByZXR1cm4gdHJ1ZTsKKysgIH0KKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrc3RhdGljIHZv aWQgVmlzaXRCaW5vcChJbnN0cnVjdGlvblNlbGVjdG9yKiBzZWxlY3RvciwgTm9kZSogbm9kZSwK KysgICAgICAgICAgICAgICAgICAgICAgIEluc3RydWN0aW9uQ29kZSBvcGNvZGUsIGJvb2wgaGFz X3JldmVyc2Vfb3Bjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb25Db2Rl IHJldmVyc2Vfb3Bjb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3NDb250aW51YXRp b24qIGNvbnQpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9yKTsKKysgIElu dDMyQmlub3BNYXRjaGVyIG0obm9kZSk7CisrICBJbnN0cnVjdGlvbk9wZXJhbmQgaW5wdXRzWzJd OworKyAgc2l6ZV90IGlucHV0X2NvdW50ID0gMDsKKysgIEluc3RydWN0aW9uT3BlcmFuZCBvdXRw dXRzWzFdOworKyAgc2l6ZV90IG91dHB1dF9jb3VudCA9IDA7CisrCisrICBpZiAoVHJ5TWF0Y2hJ bW1lZGlhdGUoc2VsZWN0b3IsICZvcGNvZGUsIG0ucmlnaHQoKS5ub2RlKCksICZpbnB1dF9jb3Vu dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAmaW5wdXRzWzFdKSkgeworKyAgICBpbnB1dHNb MF0gPSBnLlVzZVJlZ2lzdGVyKG0ubGVmdCgpLm5vZGUoKSk7CisrICAgIGlucHV0X2NvdW50Kys7 CisrICB9IGVsc2UgaWYgKGhhc19yZXZlcnNlX29wY29kZSAmJgorKyAgICAgICAgICAgICBUcnlN YXRjaEltbWVkaWF0ZShzZWxlY3RvciwgJnJldmVyc2Vfb3Bjb2RlLCBtLmxlZnQoKS5ub2RlKCks CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dF9jb3VudCwgJmlucHV0c1sx XSkpIHsKKysgICAgaW5wdXRzWzBdID0gZy5Vc2VSZWdpc3RlcihtLnJpZ2h0KCkubm9kZSgpKTsK KysgICAgb3Bjb2RlID0gcmV2ZXJzZV9vcGNvZGU7CisrICAgIGlucHV0X2NvdW50Kys7CisrICB9 IGVsc2UgeworKyAgICBpbnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVJlZ2lzdGVyKG0ubGVm dCgpLm5vZGUoKSk7CisrICAgIGlucHV0c1tpbnB1dF9jb3VudCsrXSA9IGcuVXNlT3BlcmFuZCht LnJpZ2h0KCkubm9kZSgpLCBvcGNvZGUpOworKyAgfQorKworKyAgaWYgKGNvbnQtPklzRGVvcHRp bWl6ZSgpKSB7CisrICAgIC8vIElmIHdlIGNhbiBkZW9wdGltaXplIGFzIGEgcmVzdWx0IG9mIHRo ZSBiaW5vcCwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdAorKyAgICAvLyB0aGUgZGVvcHQgaW5w dXRzIGFyZSBub3Qgb3ZlcndyaXR0ZW4gYnkgdGhlIGJpbm9wIHJlc3VsdC4gT25lIHdheQorKyAg ICAvLyB0byBhY2hpZXZlIHRoYXQgaXMgdG8gZGVjbGFyZSB0aGUgb3V0cHV0IHJlZ2lzdGVyIGFz IHNhbWUtYXMtZmlyc3QuCisrICAgIG91dHB1dHNbb3V0cHV0X2NvdW50KytdID0gZy5EZWZpbmVT YW1lQXNGaXJzdChub2RlKTsKKysgIH0gZWxzZSB7CisrICAgIG91dHB1dHNbb3V0cHV0X2NvdW50 KytdID0gZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpOworKyAgfQorKworKyAgRENIRUNLX05FKDB1 LCBpbnB1dF9jb3VudCk7CisrICBEQ0hFQ0tfRVEoMXUsIG91dHB1dF9jb3VudCk7CisrICBEQ0hF Q0tfR0UoYXJyYXlzaXplKGlucHV0cyksIGlucHV0X2NvdW50KTsKKysgIERDSEVDS19HRShhcnJh eXNpemUob3V0cHV0cyksIG91dHB1dF9jb3VudCk7CisrCisrICBzZWxlY3Rvci0+RW1pdFdpdGhD b250aW51YXRpb24ob3Bjb2RlLCBvdXRwdXRfY291bnQsIG91dHB1dHMsIGlucHV0X2NvdW50LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0cywgY29udCk7CisrfQorKwor K3N0YXRpYyB2b2lkIFZpc2l0Qmlub3AoSW5zdHJ1Y3Rpb25TZWxlY3Rvciogc2VsZWN0b3IsIE5v ZGUqIG5vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbkNvZGUgb3Bjb2Rl LCBib29sIGhhc19yZXZlcnNlX29wY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgIEluc3Ry dWN0aW9uQ29kZSByZXZlcnNlX29wY29kZSkgeworKyAgRmxhZ3NDb250aW51YXRpb24gY29udDsK KysgIFZpc2l0Qmlub3Aoc2VsZWN0b3IsIG5vZGUsIG9wY29kZSwgaGFzX3JldmVyc2Vfb3Bjb2Rl LCByZXZlcnNlX29wY29kZSwgJmNvbnQpOworK30KKysKKytzdGF0aWMgdm9pZCBWaXNpdEJpbm9w KEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBOb2RlKiBub2RlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgSW5zdHJ1Y3Rpb25Db2RlIG9wY29kZSwgRmxhZ3NDb250aW51YXRpb24qIGNv bnQpIHsKKysgIFZpc2l0Qmlub3Aoc2VsZWN0b3IsIG5vZGUsIG9wY29kZSwgZmFsc2UsIGtBcmNo Tm9wLCBjb250KTsKKyt9CisrCisrc3RhdGljIHZvaWQgVmlzaXRCaW5vcChJbnN0cnVjdGlvblNl bGVjdG9yKiBzZWxlY3RvciwgTm9kZSogbm9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgIElu c3RydWN0aW9uQ29kZSBvcGNvZGUpIHsKKysgIFZpc2l0Qmlub3Aoc2VsZWN0b3IsIG5vZGUsIG9w Y29kZSwgZmFsc2UsIGtBcmNoTm9wKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9y OjpWaXNpdFN0YWNrU2xvdChOb2RlKiBub2RlKSB7CisrICBTdGFja1Nsb3RSZXByZXNlbnRhdGlv biByZXAgPSBTdGFja1Nsb3RSZXByZXNlbnRhdGlvbk9mKG5vZGUtPm9wKCkpOworKyAgaW50IGFs aWdubWVudCA9IHJlcC5hbGlnbm1lbnQoKTsKKysgIGludCBzbG90ID0gZnJhbWVfLT5BbGxvY2F0 ZVNwaWxsU2xvdChyZXAuc2l6ZSgpLCBhbGlnbm1lbnQpOworKyAgT3BlcmFuZEdlbmVyYXRvciBn KHRoaXMpOworKworKyAgRW1pdChrQXJjaFN0YWNrU2xvdCwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5v ZGUpLAorKyAgICAgICBzZXF1ZW5jZSgpLT5BZGRJbW1lZGlhdGUoQ29uc3RhbnQoc2xvdCkpLAor KyAgICAgICBzZXF1ZW5jZSgpLT5BZGRJbW1lZGlhdGUoQ29uc3RhbnQoYWxpZ25tZW50KSksIDAs IG51bGxwdHIpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0QWJvcnRD U0FBc3NlcnQoTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7 CisrICBFbWl0KGtBcmNoQWJvcnRDU0FBc3NlcnQsIGcuTm9PdXRwdXQoKSwgZy5Vc2VGaXhlZChu b2RlLT5JbnB1dEF0KDApLCBhMCkpOworK30KKysKKyt2b2lkIEVtaXRMb2FkKEluc3RydWN0aW9u U2VsZWN0b3IqIHNlbGVjdG9yLCBOb2RlKiBub2RlLCBJbnN0cnVjdGlvbkNvZGUgb3Bjb2RlLAor KyAgICAgICAgICAgICAgTm9kZSogb3V0cHV0ID0gbnVsbHB0cikgeworKyAgUmlzY3ZPcGVyYW5k R2VuZXJhdG9yIGcoc2VsZWN0b3IpOworKyAgTm9kZSogYmFzZSA9IG5vZGUtPklucHV0QXQoMCk7 CisrICBOb2RlKiBpbmRleCA9IG5vZGUtPklucHV0QXQoMSk7CisrCisrICBpZiAoZy5DYW5CZUlt bWVkaWF0ZShpbmRleCwgb3Bjb2RlKSkgeworKyAgICBzZWxlY3Rvci0+RW1pdChvcGNvZGUgfCBB ZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTVJJKSwKKysgICAgICAgICAgICAgICAg ICAgZy5EZWZpbmVBc1JlZ2lzdGVyKG91dHB1dCA9PSBudWxscHRyID8gbm9kZSA6IG91dHB1dCks CisrICAgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIoYmFzZSksIGcuVXNlSW1tZWRpYXRl KGluZGV4KSk7CisrICB9IGVsc2UgeworKyAgICBJbnN0cnVjdGlvbk9wZXJhbmQgYWRkcl9yZWcg PSBnLlRlbXBSZWdpc3RlcigpOworKyAgICBzZWxlY3Rvci0+RW1pdChrUmlzY3ZBZGQ2NCB8IEFk ZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShrTW9kZV9Ob25lKSwKKysgICAgICAgICAgICAgICAg ICAgYWRkcl9yZWcsIGcuVXNlUmVnaXN0ZXIoaW5kZXgpLCBnLlVzZVJlZ2lzdGVyKGJhc2UpKTsK KysgICAgLy8gRW1pdCBkZXNpcmVkIGxvYWQgb3Bjb2RlLCB1c2luZyB0ZW1wIGFkZHJfcmVnLgor KyAgICBzZWxlY3Rvci0+RW1pdChvcGNvZGUgfCBBZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUo a01vZGVfTVJJKSwKKysgICAgICAgICAgICAgICAgICAgZy5EZWZpbmVBc1JlZ2lzdGVyKG91dHB1 dCA9PSBudWxscHRyID8gbm9kZSA6IG91dHB1dCksCisrICAgICAgICAgICAgICAgICAgIGFkZHJf cmVnLCBnLlRlbXBJbW1lZGlhdGUoMCkpOworKyAgfQorK30KKysKKyt2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OlZpc2l0TG9hZFRyYW5zZm9ybShOb2RlKiBub2RlKSB7CisrICBMb2FkVHJhbnNm b3JtUGFyYW1ldGVycyBwYXJhbXMgPSBMb2FkVHJhbnNmb3JtUGFyYW1ldGVyc09mKG5vZGUtPm9w KCkpOworKworKyAgSW5zdHJ1Y3Rpb25Db2RlIG9wY29kZSA9IGtBcmNoTm9wOworKyAgc3dpdGNo IChwYXJhbXMudHJhbnNmb3JtYXRpb24pIHsKKysgICAgY2FzZSBMb2FkVHJhbnNmb3JtYXRpb246 OmtTOHgxNkxvYWRTcGxhdDoKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZTOHgxNkxvYWRTcGxhdDsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBMb2FkVHJhbnNmb3JtYXRpb246OmtTMTZ4OExvYWRT cGxhdDoKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZTMTZ4OExvYWRTcGxhdDsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBMb2FkVHJhbnNmb3JtYXRpb246OmtTMzJ4NExvYWRTcGxhdDoKKysgICAg ICBvcGNvZGUgPSBrUmlzY3ZTMzJ4NExvYWRTcGxhdDsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBMb2FkVHJhbnNmb3JtYXRpb246OmtTNjR4MkxvYWRTcGxhdDoKKysgICAgICBvcGNvZGUgPSBr UmlzY3ZTNjR4MkxvYWRTcGxhdDsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBMb2FkVHJhbnNm b3JtYXRpb246OmtJMTZ4OExvYWQ4eDhTOgorKyAgICAgIG9wY29kZSA9IGtSaXNjdkkxNng4TG9h ZDh4OFM7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTG9hZFRyYW5zZm9ybWF0aW9uOjprSTE2 eDhMb2FkOHg4VToKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZJMTZ4OExvYWQ4eDhVOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIExvYWRUcmFuc2Zvcm1hdGlvbjo6a0kzMng0TG9hZDE2eDRTOgor KyAgICAgIG9wY29kZSA9IGtSaXNjdkkzMng0TG9hZDE2eDRTOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIExvYWRUcmFuc2Zvcm1hdGlvbjo6a0kzMng0TG9hZDE2eDRVOgorKyAgICAgIG9wY29k ZSA9IGtSaXNjdkkzMng0TG9hZDE2eDRVOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIExvYWRU cmFuc2Zvcm1hdGlvbjo6a0k2NHgyTG9hZDMyeDJTOgorKyAgICAgIG9wY29kZSA9IGtSaXNjdkk2 NHgyTG9hZDMyeDJTOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIExvYWRUcmFuc2Zvcm1hdGlv bjo6a0k2NHgyTG9hZDMyeDJVOgorKyAgICAgIG9wY29kZSA9IGtSaXNjdkk2NHgyTG9hZDMyeDJV OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOSU1QTEVNRU5URUQoKTsK KysgIH0KKysKKysgIEVtaXRMb2FkKHRoaXMsIG5vZGUsIG9wY29kZSk7CisrfQorKworK3ZvaWQg SW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRMb2FkKE5vZGUqIG5vZGUpIHsKKysgIExvYWRSZXBy ZXNlbnRhdGlvbiBsb2FkX3JlcCA9IExvYWRSZXByZXNlbnRhdGlvbk9mKG5vZGUtPm9wKCkpOwor KworKyAgSW5zdHJ1Y3Rpb25Db2RlIG9wY29kZSA9IGtBcmNoTm9wOworKyAgc3dpdGNoIChsb2Fk X3JlcC5yZXByZXNlbnRhdGlvbigpKSB7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9u OjprRmxvYXQzMjoKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZMb2FkRmxvYXQ7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprRmxvYXQ2NDoKKysgICAgICBv cGNvZGUgPSBrUmlzY3ZMb2FkRG91YmxlOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE1hY2hp bmVSZXByZXNlbnRhdGlvbjo6a0JpdDogIC8vIEZhbGwgdGhyb3VnaC4KKysgICAgY2FzZSBNYWNo aW5lUmVwcmVzZW50YXRpb246OmtXb3JkODoKKysgICAgICBvcGNvZGUgPSBsb2FkX3JlcC5Jc1Vu c2lnbmVkKCkgPyBrUmlzY3ZMYnUgOiBrUmlzY3ZMYjsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtXb3JkMTY6CisrICAgICAgb3Bjb2RlID0gbG9hZF9y ZXAuSXNVbnNpZ25lZCgpID8ga1Jpc2N2TGh1IDoga1Jpc2N2TGg7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDMyOgorKyAgICAgIG9wY29kZSA9 IGxvYWRfcmVwLklzVW5zaWduZWQoKSA/IGtSaXNjdkx3dSA6IGtSaXNjdkx3OworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1RhZ2dlZFNpZ25lZDogICAv LyBGYWxsIHRocm91Z2guCisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprVGFnZ2Vk UG9pbnRlcjogIC8vIEZhbGwgdGhyb3VnaC4KKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRp b246OmtUYWdnZWQ6ICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorKyAgICBjYXNlIE1hY2hpbmVS ZXByZXNlbnRhdGlvbjo6a1dvcmQ2NDoKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZMZDsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtTaW1kMTI4OgorKyAg ICAgIG9wY29kZSA9IGtSaXNjdk1zYUxkOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE1hY2hp bmVSZXByZXNlbnRhdGlvbjo6a0NvbXByZXNzZWRQb2ludGVyOiAgLy8gRmFsbCB0aHJvdWdoLgor KyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a0NvbXByZXNzZWQ6ICAgICAgICAgLy8g RmFsbCB0aHJvdWdoLgorKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a05vbmU6Cisr ICAgICAgVU5SRUFDSEFCTEUoKTsKKysgIH0KKysgIGlmIChub2RlLT5vcGNvZGUoKSA9PSBJck9w Y29kZTo6a1BvaXNvbmVkTG9hZCkgeworKyAgICBDSEVDS19ORShwb2lzb25pbmdfbGV2ZWxfLCBQ b2lzb25pbmdNaXRpZ2F0aW9uTGV2ZWw6OmtEb250UG9pc29uKTsKKysgICAgb3Bjb2RlIHw9IE1p c2NGaWVsZDo6ZW5jb2RlKGtNZW1vcnlBY2Nlc3NQb2lzb25lZCk7CisrICB9CisrCisrICBFbWl0 TG9hZCh0aGlzLCBub2RlLCBvcGNvZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0 b3I6OlZpc2l0UG9pc29uZWRMb2FkKE5vZGUqIG5vZGUpIHsgVmlzaXRMb2FkKG5vZGUpOyB9Cisr Cisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFByb3RlY3RlZExvYWQoTm9kZSogbm9k ZSkgeworKyAgLy8gVE9ETyhlaG9saykKKysgIFVOSU1QTEVNRU5URUQoKTsKKyt9CisrCisrdm9p ZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFN0b3JlKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2 T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgTm9kZSogYmFzZSA9IG5vZGUtPklucHV0QXQo MCk7CisrICBOb2RlKiBpbmRleCA9IG5vZGUtPklucHV0QXQoMSk7CisrICBOb2RlKiB2YWx1ZSA9 IG5vZGUtPklucHV0QXQoMik7CisrCisrICBTdG9yZVJlcHJlc2VudGF0aW9uIHN0b3JlX3JlcCA9 IFN0b3JlUmVwcmVzZW50YXRpb25PZihub2RlLT5vcCgpKTsKKysgIFdyaXRlQmFycmllcktpbmQg d3JpdGVfYmFycmllcl9raW5kID0gc3RvcmVfcmVwLndyaXRlX2JhcnJpZXJfa2luZCgpOworKyAg TWFjaGluZVJlcHJlc2VudGF0aW9uIHJlcCA9IHN0b3JlX3JlcC5yZXByZXNlbnRhdGlvbigpOwor KworKyAgLy8gVE9ETyhyaXNjdik6IEkgZ3Vlc3MgdGhpcyBjb3VsZCBiZSBkb25lIGluIGEgYmV0 dGVyIHdheS4KKysgIGlmICh3cml0ZV9iYXJyaWVyX2tpbmQgIT0ga05vV3JpdGVCYXJyaWVyICYm CisrICAgICAgVjhfTElLRUxZKCFGTEFHX2Rpc2FibGVfd3JpdGVfYmFycmllcnMpKSB7CisrICAg IERDSEVDSyhDYW5CZVRhZ2dlZFBvaW50ZXIocmVwKSk7CisrICAgIEluc3RydWN0aW9uT3BlcmFu ZCBpbnB1dHNbM107CisrICAgIHNpemVfdCBpbnB1dF9jb3VudCA9IDA7CisrICAgIGlucHV0c1tp bnB1dF9jb3VudCsrXSA9IGcuVXNlVW5pcXVlUmVnaXN0ZXIoYmFzZSk7CisrICAgIGlucHV0c1tp bnB1dF9jb3VudCsrXSA9IGcuVXNlVW5pcXVlUmVnaXN0ZXIoaW5kZXgpOworKyAgICBpbnB1dHNb aW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKHZhbHVlKTsKKysgICAgUmVjb3Jk V3JpdGVNb2RlIHJlY29yZF93cml0ZV9tb2RlID0KKysgICAgICAgIFdyaXRlQmFycmllcktpbmRU b1JlY29yZFdyaXRlTW9kZSh3cml0ZV9iYXJyaWVyX2tpbmQpOworKyAgICBJbnN0cnVjdGlvbk9w ZXJhbmQgdGVtcHNbXSA9IHtnLlRlbXBSZWdpc3RlcigpLCBnLlRlbXBSZWdpc3RlcigpfTsKKysg ICAgc2l6ZV90IGNvbnN0IHRlbXBfY291bnQgPSBhcnJheXNpemUodGVtcHMpOworKyAgICBJbnN0 cnVjdGlvbkNvZGUgY29kZSA9IGtBcmNoU3RvcmVXaXRoV3JpdGVCYXJyaWVyOworKyAgICBjb2Rl IHw9IE1pc2NGaWVsZDo6ZW5jb2RlKHN0YXRpY19jYXN0PGludD4ocmVjb3JkX3dyaXRlX21vZGUp KTsKKysgICAgRW1pdChjb2RlLCAwLCBudWxscHRyLCBpbnB1dF9jb3VudCwgaW5wdXRzLCB0ZW1w X2NvdW50LCB0ZW1wcyk7CisrICB9IGVsc2UgeworKyAgICBBcmNoT3Bjb2RlIG9wY29kZSA9IGtB cmNoTm9wOworKyAgICBzd2l0Y2ggKHJlcCkgeworKyAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2Vu dGF0aW9uOjprRmxvYXQzMjoKKysgICAgICAgIG9wY29kZSA9IGtSaXNjdlN0b3JlRmxvYXQ7Cisr ICAgICAgICBicmVhazsKKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a0Zsb2F0 NjQ6CisrICAgICAgICBvcGNvZGUgPSBrUmlzY3ZTdG9yZURvdWJsZTsKKysgICAgICAgIGJyZWFr OworKyAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprQml0OiAgLy8gRmFsbCB0aHJv dWdoLgorKyAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDg6CisrICAgICAg ICBvcGNvZGUgPSBrUmlzY3ZTYjsKKysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2UgTWFjaGlu ZVJlcHJlc2VudGF0aW9uOjprV29yZDE2OgorKyAgICAgICAgb3Bjb2RlID0ga1Jpc2N2U2g7Cisr ICAgICAgICBicmVhazsKKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1dvcmQz MjoKKysgICAgICAgIG9wY29kZSA9IGtSaXNjdlN3OworKyAgICAgICAgYnJlYWs7CisrICAgICAg Y2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtUYWdnZWRTaWduZWQ6ICAgLy8gRmFsbCB0aHJv dWdoLgorKyAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprVGFnZ2VkUG9pbnRlcjog IC8vIEZhbGwgdGhyb3VnaC4KKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1Rh Z2dlZDogICAgICAgICAvLyBGYWxsIHRocm91Z2guCisrICAgICAgY2FzZSBNYWNoaW5lUmVwcmVz ZW50YXRpb246OmtXb3JkNjQ6CisrICAgICAgICBvcGNvZGUgPSBrUmlzY3ZTZDsKKysgICAgICAg IGJyZWFrOworKyAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprU2ltZDEyODoKKysg ICAgICAgIG9wY29kZSA9IGtSaXNjdk1zYVN0OworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2Fz ZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtDb21wcmVzc2VkUG9pbnRlcjogIC8vIEZhbGwgdGhy b3VnaC4KKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a0NvbXByZXNzZWQ6ICAg ICAgICAgLy8gRmFsbCB0aHJvdWdoLgorKyAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9u OjprTm9uZToKKysgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgICAgICByZXR1cm47CisrICAg IH0KKysKKysgICAgaWYgKGcuQ2FuQmVJbW1lZGlhdGUoaW5kZXgsIG9wY29kZSkpIHsKKysgICAg ICBFbWl0KG9wY29kZSB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShrTW9kZV9NUkkpLCBn Lk5vT3V0cHV0KCksCisrICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKGJhc2UpLCBnLlVzZUltbWVk aWF0ZShpbmRleCksCisrICAgICAgICAgICBnLlVzZVJlZ2lzdGVyT3JJbW1lZGlhdGVaZXJvKHZh bHVlKSk7CisrICAgIH0gZWxzZSB7CisrICAgICAgSW5zdHJ1Y3Rpb25PcGVyYW5kIGFkZHJfcmVn ID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgICAgICBFbWl0KGtSaXNjdkFkZDY0IHwgQWRkcmVzc2lu Z01vZGVGaWVsZDo6ZW5jb2RlKGtNb2RlX05vbmUpLCBhZGRyX3JlZywKKysgICAgICAgICAgIGcu VXNlUmVnaXN0ZXIoaW5kZXgpLCBnLlVzZVJlZ2lzdGVyKGJhc2UpKTsKKysgICAgICAvLyBFbWl0 IGRlc2lyZWQgc3RvcmUgb3Bjb2RlLCB1c2luZyB0ZW1wIGFkZHJfcmVnLgorKyAgICAgIEVtaXQo b3Bjb2RlIHwgQWRkcmVzc2luZ01vZGVGaWVsZDo6ZW5jb2RlKGtNb2RlX01SSSksIGcuTm9PdXRw dXQoKSwKKysgICAgICAgICAgIGFkZHJfcmVnLCBnLlRlbXBJbW1lZGlhdGUoMCksIGcuVXNlUmVn aXN0ZXJPckltbWVkaWF0ZVplcm8odmFsdWUpKTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lk IEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0UHJvdGVjdGVkU3RvcmUoTm9kZSogbm9kZSkgewor KyAgLy8gVE9ETyhlaG9saykKKysgIFVOSU1QTEVNRU5URUQoKTsKKyt9CisrCisrdm9pZCBJbnN0 cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQzMkFuZChOb2RlKiBub2RlKSB7CisrICBWaXNpdEJp bm9wKHRoaXMsIG5vZGUsIGtSaXNjdkFuZDMyLCB0cnVlLCBrUmlzY3ZBbmQzMik7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRBbmQoTm9kZSogbm9kZSkgewor KyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBJbnQ2NEJpbm9wTWF0Y2hlciBt KG5vZGUpOworKyAgaWYgKG0ubGVmdCgpLklzV29yZDY0U2hyKCkgJiYgQ2FuQ292ZXIobm9kZSwg bS5sZWZ0KCkubm9kZSgpKSAmJgorKyAgICAgIG0ucmlnaHQoKS5IYXNWYWx1ZSgpKSB7CisrICAg IHVpbnQ2NF90IG1hc2sgPSBtLnJpZ2h0KCkuVmFsdWUoKTsKKysgICAgdWludDMyX3QgbWFza193 aWR0aCA9IGJhc2U6OmJpdHM6OkNvdW50UG9wdWxhdGlvbihtYXNrKTsKKysgICAgdWludDMyX3Qg bWFza19tc2IgPSBiYXNlOjpiaXRzOjpDb3VudExlYWRpbmdaZXJvczY0KG1hc2spOworKyAgICBp ZiAoKG1hc2tfd2lkdGggIT0gMCkgJiYgKG1hc2tfbXNiICsgbWFza193aWR0aCA9PSA2NCkpIHsK KysgICAgICAvLyBUaGUgbWFzayBtdXN0IGJlIGNvbnRpZ3VvdXMsIGFuZCBvY2N1cHkgdGhlIGxl YXN0LXNpZ25pZmljYW50IGJpdHMuCisrICAgICAgRENIRUNLX0VRKDB1LCBiYXNlOjpiaXRzOjpD b3VudFRyYWlsaW5nWmVyb3M2NChtYXNrKSk7CisrCisrICAgICAgLy8gU2VsZWN0IERleHQgZm9y IEFuZChTaHIoeCwgaW1tKSwgbWFzaykgd2hlcmUgdGhlIG1hc2sgaXMgaW4gdGhlIGxlYXN0Cisr ICAgICAgLy8gc2lnbmlmaWNhbnQgYml0cy4KKysgICAgICBJbnQ2NEJpbm9wTWF0Y2hlciBtbGVm dChtLmxlZnQoKS5ub2RlKCkpOworKyAgICAgIGlmIChtbGVmdC5yaWdodCgpLkhhc1ZhbHVlKCkp IHsKKysgICAgICAgIC8vIEFueSBzaGlmdCB2YWx1ZSBjYW4gbWF0Y2g7IGludDY0IHNoaWZ0cyB1 c2UgYHZhbHVlICUgNjRgLgorKyAgICAgICAgdWludDMyX3QgbHNiID0gc3RhdGljX2Nhc3Q8dWlu dDMyX3Q+KG1sZWZ0LnJpZ2h0KCkuVmFsdWUoKSAmIDB4M0YpOworKworKyAgICAgICAgLy8gRGV4 dCBjYW5ub3QgZXh0cmFjdCBiaXRzIHBhc3QgdGhlIHJlZ2lzdGVyIHNpemUsIGhvd2V2ZXIgc2lu Y2UKKysgICAgICAgIC8vIHNoaWZ0aW5nIHRoZSBvcmlnaW5hbCB2YWx1ZSB3b3VsZCBoYXZlIGlu dHJvZHVjZWQgc29tZSB6ZXJvcyB3ZSBjYW4KKysgICAgICAgIC8vIHN0aWxsIHVzZSBEZXh0IHdp dGggYSBzbWFsbGVyIG1hc2sgYW5kIHRoZSByZW1haW5pbmcgYml0cyB3aWxsIGJlCisrICAgICAg ICAvLyB6ZXJvcy4KKysgICAgICAgIGlmIChsc2IgKyBtYXNrX3dpZHRoID4gNjQpIG1hc2tfd2lk dGggPSA2NCAtIGxzYjsKKysKKysgICAgICAgIGlmIChsc2IgPT0gMCAmJiBtYXNrX3dpZHRoID09 IDY0KSB7CisrICAgICAgICAgIEVtaXQoa0FyY2hOb3AsIGcuRGVmaW5lU2FtZUFzRmlyc3Qobm9k ZSksIGcuVXNlKG1sZWZ0LmxlZnQoKS5ub2RlKCkpKTsKKysgICAgICAgICAgcmV0dXJuOworKyAg ICAgICAgfQorKyAgICAgIH0KKysgICAgICAvLyBPdGhlciBjYXNlcyBmYWxsIHRocm91Z2ggdG8g dGhlIG5vcm1hbCBBbmQgb3BlcmF0aW9uLgorKyAgICB9CisrICB9CisrICBWaXNpdEJpbm9wKHRo aXMsIG5vZGUsIGtSaXNjdkFuZCwgdHJ1ZSwga1Jpc2N2QW5kKTsKKyt9CisrCisrdm9pZCBJbnN0 cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQzMk9yKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0Qmlu b3AodGhpcywgbm9kZSwga1Jpc2N2T3IzMiwgdHJ1ZSwga1Jpc2N2T3IzMik7CisrfQorKworK3Zv aWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRPcihOb2RlKiBub2RlKSB7CisrICBW aXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdk9yLCB0cnVlLCBrUmlzY3ZPcik7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkMzJYb3IoTm9kZSogbm9kZSkgewor KyAgSW50MzJCaW5vcE1hdGNoZXIgbShub2RlKTsKKysgIGlmIChtLmxlZnQoKS5Jc1dvcmQzMk9y KCkgJiYgQ2FuQ292ZXIobm9kZSwgbS5sZWZ0KCkubm9kZSgpKSAmJgorKyAgICAgIG0ucmlnaHQo KS5JcygtMSkpIHsKKysgICAgSW50MzJCaW5vcE1hdGNoZXIgbWxlZnQobS5sZWZ0KCkubm9kZSgp KTsKKysgICAgaWYgKCFtbGVmdC5yaWdodCgpLkhhc1ZhbHVlKCkpIHsKKysgICAgICBSaXNjdk9w ZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgICAgICBFbWl0KGtSaXNjdk5vcjMyLCBnLkRlZmlu ZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKG1sZWZ0LmxlZnQo KS5ub2RlKCkpLAorKyAgICAgICAgICAgZy5Vc2VSZWdpc3RlcihtbGVmdC5yaWdodCgpLm5vZGUo KSkpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgfQorKyAgaWYgKG0ucmlnaHQoKS5Jcygt MSkpIHsKKysgICAgLy8gVXNlIE5vciBmb3IgYml0IG5lZ2F0aW9uIGFuZCBlbGltaW5hdGUgY29u c3RhbnQgbG9hZGluZyBmb3IgeG9yaS4KKysgICAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhp cyk7CisrICAgIEVtaXQoa1Jpc2N2Tm9yMzIsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgZy5V c2VSZWdpc3RlcihtLmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICAgIGcuVGVtcEltbWVkaWF0ZSgw KSk7CisrICAgIHJldHVybjsKKysgIH0KKysgIFZpc2l0Qmlub3AodGhpcywgbm9kZSwga1Jpc2N2 WG9yMzIsIHRydWUsIGtSaXNjdlhvcjMyKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVj dG9yOjpWaXNpdFdvcmQ2NFhvcihOb2RlKiBub2RlKSB7CisrICBJbnQ2NEJpbm9wTWF0Y2hlciBt KG5vZGUpOworKyAgaWYgKG0ubGVmdCgpLklzV29yZDY0T3IoKSAmJiBDYW5Db3Zlcihub2RlLCBt LmxlZnQoKS5ub2RlKCkpICYmCisrICAgICAgbS5yaWdodCgpLklzKC0xKSkgeworKyAgICBJbnQ2 NEJpbm9wTWF0Y2hlciBtbGVmdChtLmxlZnQoKS5ub2RlKCkpOworKyAgICBpZiAoIW1sZWZ0LnJp Z2h0KCkuSGFzVmFsdWUoKSkgeworKyAgICAgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMp OworKyAgICAgIEVtaXQoa1Jpc2N2Tm9yLCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAg ICAgICAgICBnLlVzZVJlZ2lzdGVyKG1sZWZ0LmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICAgICAg Zy5Vc2VSZWdpc3RlcihtbGVmdC5yaWdodCgpLm5vZGUoKSkpOworKyAgICAgIHJldHVybjsKKysg ICAgfQorKyAgfQorKyAgaWYgKG0ucmlnaHQoKS5JcygtMSkpIHsKKysgICAgLy8gVXNlIE5vciBm b3IgYml0IG5lZ2F0aW9uIGFuZCBlbGltaW5hdGUgY29uc3RhbnQgbG9hZGluZyBmb3IgeG9yaS4K KysgICAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICAgIEVtaXQoa1Jpc2N2Tm9y LCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksIGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgp KSwKKysgICAgICAgICBnLlRlbXBJbW1lZGlhdGUoMCkpOworKyAgICByZXR1cm47CisrICB9Cisr ICBWaXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdlhvciwgdHJ1ZSwga1Jpc2N2WG9yKTsKKyt9 CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQzMlNobChOb2RlKiBub2Rl KSB7CisrICBJbnQzMkJpbm9wTWF0Y2hlciBtKG5vZGUpOworKyAgaWYgKG0ubGVmdCgpLklzV29y ZDMyQW5kKCkgJiYgQ2FuQ292ZXIobm9kZSwgbS5sZWZ0KCkubm9kZSgpKSAmJgorKyAgICAgIG0u cmlnaHQoKS5Jc0luUmFuZ2UoMSwgMzEpKSB7CisrICAgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBn KHRoaXMpOworKyAgICBJbnQzMkJpbm9wTWF0Y2hlciBtbGVmdChtLmxlZnQoKS5ub2RlKCkpOwor KyAgICAvLyBNYXRjaCBXb3JkMzJTaGwoV29yZDMyQW5kKHgsIG1hc2spLCBpbW0pIHRvIFNobCB3 aGVyZSB0aGUgbWFzayBpcworKyAgICAvLyBjb250aWd1b3VzLCBhbmQgdGhlIHNoaWZ0IGltbWVk aWF0ZSBub24temVyby4KKysgICAgaWYgKG1sZWZ0LnJpZ2h0KCkuSGFzVmFsdWUoKSkgeworKyAg ICAgIHVpbnQzMl90IG1hc2sgPSBtbGVmdC5yaWdodCgpLlZhbHVlKCk7CisrICAgICAgdWludDMy X3QgbWFza193aWR0aCA9IGJhc2U6OmJpdHM6OkNvdW50UG9wdWxhdGlvbihtYXNrKTsKKysgICAg ICB1aW50MzJfdCBtYXNrX21zYiA9IGJhc2U6OmJpdHM6OkNvdW50TGVhZGluZ1plcm9zMzIobWFz ayk7CisrICAgICAgaWYgKChtYXNrX3dpZHRoICE9IDApICYmIChtYXNrX21zYiArIG1hc2tfd2lk dGggPT0gMzIpKSB7CisrICAgICAgICB1aW50MzJfdCBzaGlmdCA9IG0ucmlnaHQoKS5WYWx1ZSgp OworKyAgICAgICAgRENIRUNLX0VRKDB1LCBiYXNlOjpiaXRzOjpDb3VudFRyYWlsaW5nWmVyb3Mz MihtYXNrKSk7CisrICAgICAgICBEQ0hFQ0tfTkUoMHUsIHNoaWZ0KTsKKysgICAgICAgIGlmICgo c2hpZnQgKyBtYXNrX3dpZHRoKSA+PSAzMikgeworKyAgICAgICAgICAvLyBJZiB0aGUgbWFzayBp cyBjb250aWd1b3VzIGFuZCByZWFjaGVzIG9yIGV4dGVuZHMgYmV5b25kIHRoZSB0b3AKKysgICAg ICAgICAgLy8gYml0LCBvbmx5IHRoZSBzaGlmdCBpcyBuZWVkZWQuCisrICAgICAgICAgIEVtaXQo a1Jpc2N2U2hsMzIsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgICAgICAgICBn LlVzZVJlZ2lzdGVyKG1sZWZ0LmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICAgICAgICAgIGcuVXNl SW1tZWRpYXRlKG0ucmlnaHQoKS5ub2RlKCkpKTsKKysgICAgICAgICAgcmV0dXJuOworKyAgICAg ICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgVmlzaXRSUk8odGhpcywga1Jpc2N2U2hs MzIsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0V29yZDMy U2hyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlJPKHRoaXMsIGtSaXNjdlNocjMyLCBub2RlKTsK Kyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQzMlNhcihOb2RlKiBu b2RlKSB7CisrICBJbnQzMkJpbm9wTWF0Y2hlciBtKG5vZGUpOworKyAgaWYgKG0ubGVmdCgpLklz V29yZDMyU2hsKCkgJiYgQ2FuQ292ZXIobm9kZSwgbS5sZWZ0KCkubm9kZSgpKSkgeworKyAgICBJ bnQzMkJpbm9wTWF0Y2hlciBtbGVmdChtLmxlZnQoKS5ub2RlKCkpOworKyAgICBpZiAobS5yaWdo dCgpLkhhc1ZhbHVlKCkgJiYgbWxlZnQucmlnaHQoKS5IYXNWYWx1ZSgpKSB7CisrICAgICAgUmlz Y3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICAgICAgdWludDMyX3Qgc2FyID0gbS5yaWdo dCgpLlZhbHVlKCk7CisrICAgICAgdWludDMyX3Qgc2hsID0gbWxlZnQucmlnaHQoKS5WYWx1ZSgp OworKyAgICAgIGlmICgoc2FyID09IHNobCkgJiYgKHNhciA9PSAxNikpIHsKKysgICAgICAgIEVt aXQoa1Jpc2N2U2lnbkV4dGVuZFNob3J0LCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAg ICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobWxlZnQubGVmdCgpLm5vZGUoKSkpOworKyAgICAgICAg cmV0dXJuOworKyAgICAgIH0gZWxzZSBpZiAoKHNhciA9PSBzaGwpICYmIChzYXIgPT0gMjQpKSB7 CisrICAgICAgICBFbWl0KGtSaXNjdlNpZ25FeHRlbmRCeXRlLCBnLkRlZmluZUFzUmVnaXN0ZXIo bm9kZSksCisrICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobWxlZnQubGVmdCgpLm5vZGUoKSkp OworKyAgICAgICAgcmV0dXJuOworKyAgICAgIH0gZWxzZSBpZiAoKHNhciA9PSBzaGwpICYmIChz YXIgPT0gMzIpKSB7CisrICAgICAgICBFbWl0KGtSaXNjdlNobDMyLCBnLkRlZmluZUFzUmVnaXN0 ZXIobm9kZSksCisrICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobWxlZnQubGVmdCgpLm5vZGUo KSksIGcuVGVtcEltbWVkaWF0ZSgwKSk7CisrICAgICAgICByZXR1cm47CisrICAgICAgfQorKyAg ICB9CisrICB9CisrICBWaXNpdFJSTyh0aGlzLCBrUmlzY3ZTYXIzMiwgbm9kZSk7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRTaGwoTm9kZSogbm9kZSkgewor KyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBJbnQ2NEJpbm9wTWF0Y2hlciBt KG5vZGUpOworKyAgaWYgKChtLmxlZnQoKS5Jc0NoYW5nZUludDMyVG9JbnQ2NCgpIHx8IG0ubGVm dCgpLklzQ2hhbmdlVWludDMyVG9VaW50NjQoKSkgJiYKKysgICAgICBtLnJpZ2h0KCkuSXNJblJh bmdlKDMyLCA2MykgJiYgQ2FuQ292ZXIobm9kZSwgbS5sZWZ0KCkubm9kZSgpKSkgeworKyAgICAv LyBUaGVyZSdzIG5vIG5lZWQgdG8gc2lnbi96ZXJvLWV4dGVuZCB0byA2NC1iaXQgaWYgd2Ugc2hp ZnQgb3V0IHRoZSB1cHBlcgorKyAgICAvLyAzMiBiaXRzIGFueXdheS4KKysgICAgRW1pdChrUmlz Y3ZTaGw2NCwgZy5EZWZpbmVTYW1lQXNGaXJzdChub2RlKSwKKysgICAgICAgICBnLlVzZVJlZ2lz dGVyKG0ubGVmdCgpLm5vZGUoKS0+SW5wdXRBdCgwKSksCisrICAgICAgICAgZy5Vc2VJbW1lZGlh dGUobS5yaWdodCgpLm5vZGUoKSkpOworKyAgICByZXR1cm47CisrICB9CisrICBpZiAobS5sZWZ0 KCkuSXNXb3JkNjRBbmQoKSAmJiBDYW5Db3Zlcihub2RlLCBtLmxlZnQoKS5ub2RlKCkpICYmCisr ICAgICAgbS5yaWdodCgpLklzSW5SYW5nZSgxLCA2MykpIHsKKysgICAgLy8gTWF0Y2ggV29yZDY0 U2hsKFdvcmQ2NEFuZCh4LCBtYXNrKSwgaW1tKSB0byBEc2hsIHdoZXJlIHRoZSBtYXNrIGlzCisr ICAgIC8vIGNvbnRpZ3VvdXMsIGFuZCB0aGUgc2hpZnQgaW1tZWRpYXRlIG5vbi16ZXJvLgorKyAg ICBJbnQ2NEJpbm9wTWF0Y2hlciBtbGVmdChtLmxlZnQoKS5ub2RlKCkpOworKyAgICBpZiAobWxl ZnQucmlnaHQoKS5IYXNWYWx1ZSgpKSB7CisrICAgICAgdWludDY0X3QgbWFzayA9IG1sZWZ0LnJp Z2h0KCkuVmFsdWUoKTsKKysgICAgICB1aW50MzJfdCBtYXNrX3dpZHRoID0gYmFzZTo6Yml0czo6 Q291bnRQb3B1bGF0aW9uKG1hc2spOworKyAgICAgIHVpbnQzMl90IG1hc2tfbXNiID0gYmFzZTo6 Yml0czo6Q291bnRMZWFkaW5nWmVyb3M2NChtYXNrKTsKKysgICAgICBpZiAoKG1hc2tfd2lkdGgg IT0gMCkgJiYgKG1hc2tfbXNiICsgbWFza193aWR0aCA9PSA2NCkpIHsKKysgICAgICAgIHVpbnQ2 NF90IHNoaWZ0ID0gbS5yaWdodCgpLlZhbHVlKCk7CisrICAgICAgICBEQ0hFQ0tfRVEoMHUsIGJh c2U6OmJpdHM6OkNvdW50VHJhaWxpbmdaZXJvczY0KG1hc2spKTsKKysgICAgICAgIERDSEVDS19O RSgwdSwgc2hpZnQpOworKworKyAgICAgICAgaWYgKChzaGlmdCArIG1hc2tfd2lkdGgpID49IDY0 KSB7CisrICAgICAgICAgIC8vIElmIHRoZSBtYXNrIGlzIGNvbnRpZ3VvdXMgYW5kIHJlYWNoZXMg b3IgZXh0ZW5kcyBiZXlvbmQgdGhlIHRvcAorKyAgICAgICAgICAvLyBiaXQsIG9ubHkgdGhlIHNo aWZ0IGlzIG5lZWRlZC4KKysgICAgICAgICAgRW1pdChrUmlzY3ZTaGw2NCwgZy5EZWZpbmVBc1Jl Z2lzdGVyKG5vZGUpLAorKyAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIobWxlZnQubGVmdCgp Lm5vZGUoKSksCisrICAgICAgICAgICAgICAgZy5Vc2VJbW1lZGlhdGUobS5yaWdodCgpLm5vZGUo KSkpOworKyAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrICAgICAgfQorKyAgICB9Cisr ICB9CisrICBWaXNpdFJSTyh0aGlzLCBrUmlzY3ZTaGw2NCwgbm9kZSk7CisrfQorKworK3ZvaWQg SW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRTaHIoTm9kZSogbm9kZSkgeworKyAgVmlz aXRSUk8odGhpcywga1Jpc2N2U2hyNjQsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OlZpc2l0V29yZDY0U2FyKE5vZGUqIG5vZGUpIHsKKysgIGlmIChUcnlFbWl0RXh0 ZW5kaW5nTG9hZCh0aGlzLCBub2RlLCBub2RlKSkgcmV0dXJuOworKyAgVmlzaXRSUk8odGhpcywg a1Jpc2N2U2FyNjQsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZp c2l0V29yZDMyUm9sKE5vZGUqIG5vZGUpIHsgVU5SRUFDSEFCTEUoKTsgfQorKworK3ZvaWQgSW5z dHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRSb2woTm9kZSogbm9kZSkgeyBVTlJFQUNIQUJM RSgpOyB9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQzMlJvcihOb2Rl KiBub2RlKSB7CisrICBWaXNpdFJSTyh0aGlzLCBrUmlzY3ZSb3IzMiwgbm9kZSk7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkMzJDbHooTm9kZSogbm9kZSkgewor KyAgVmlzaXRSUih0aGlzLCBrUmlzY3ZDbHozMiwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1 Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkMzJSZXZlcnNlQml0cyhOb2RlKiBub2RlKSB7IFVOUkVB Q0hBQkxFKCk7IH0KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0V29yZDY0UmV2 ZXJzZUJpdHMoTm9kZSogbm9kZSkgeyBVTlJFQUNIQUJMRSgpOyB9CisrCisrdm9pZCBJbnN0cnVj dGlvblNlbGVjdG9yOjpWaXNpdFdvcmQ2NFJldmVyc2VCeXRlcyhOb2RlKiBub2RlKSB7CisrICBS aXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIEVtaXQoa1Jpc2N2Qnl0ZVN3YXA2NCwg Zy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKG5vZGUtPklu cHV0QXQoMCkpKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQz MlJldmVyc2VCeXRlcyhOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0 aGlzKTsKKysgIEVtaXQoa1Jpc2N2Qnl0ZVN3YXAzMiwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUp LAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkpKTsKKyt9CisrCisrdm9p ZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFNpbWQxMjhSZXZlcnNlQnl0ZXMoTm9kZSogbm9k ZSkgeworKyAgVU5SRUFDSEFCTEUoKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9y OjpWaXNpdFdvcmQzMkN0eihOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3Ig Zyh0aGlzKTsKKysgIEVtaXQoa1Jpc2N2Q3R6MzIsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwg Zy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRDdHooTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5k R2VuZXJhdG9yIGcodGhpcyk7CisrICBFbWl0KGtSaXNjdkN0ejY0LCBnLkRlZmluZUFzUmVnaXN0 ZXIobm9kZSksIGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgwKSkpOworK30KKysKKyt2b2lk IEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0V29yZDMyUG9wY250KE5vZGUqIG5vZGUpIHsKKysg IFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChrUmlzY3ZQb3BjbnQzMiwg Zy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKG5vZGUtPklu cHV0QXQoMCkpKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQ2 NFBvcGNudChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsK KysgIEVtaXQoa1Jpc2N2UG9wY250NjQsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAg ICAgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1 Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRSb3IoTm9kZSogbm9kZSkgeworKyAgVmlzaXRSUk8o dGhpcywga1Jpc2N2Um9yNjQsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0 b3I6OlZpc2l0V29yZDY0Q2x6KE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jpc2N2 Q2x6NjQsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50 MzJBZGQoTm9kZSogbm9kZSkgeworKyAgVmlzaXRCaW5vcCh0aGlzLCBub2RlLCBrUmlzY3ZBZGQz MiwgdHJ1ZSwga1Jpc2N2QWRkMzIpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6 OlZpc2l0SW50NjRBZGQoTm9kZSogbm9kZSkgeworKyAgVmlzaXRCaW5vcCh0aGlzLCBub2RlLCBr UmlzY3ZBZGQ2NCwgdHJ1ZSwga1Jpc2N2QWRkNjQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OlZpc2l0SW50MzJTdWIoTm9kZSogbm9kZSkgeworKyAgVmlzaXRCaW5vcCh0aGlz LCBub2RlLCBrUmlzY3ZTdWIzMik7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6 VmlzaXRJbnQ2NFN1YihOb2RlKiBub2RlKSB7CisrICBWaXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtS aXNjdlN1YjY0KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEludDMy TXVsKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAg SW50MzJCaW5vcE1hdGNoZXIgbShub2RlKTsKKysgIGlmIChtLnJpZ2h0KCkuSGFzVmFsdWUoKSAm JiBtLnJpZ2h0KCkuVmFsdWUoKSA+IDApIHsKKysgICAgdWludDMyX3QgdmFsdWUgPSBzdGF0aWNf Y2FzdDx1aW50MzJfdD4obS5yaWdodCgpLlZhbHVlKCkpOworKyAgICBpZiAoYmFzZTo6Yml0czo6 SXNQb3dlck9mVHdvKHZhbHVlKSkgeworKyAgICAgIEVtaXQoa1Jpc2N2U2hsMzIgfCBBZGRyZXNz aW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTm9uZSksCisrICAgICAgICAgICBnLkRlZmluZUFz UmVnaXN0ZXIobm9kZSksIGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgpKSwKKysgICAgICAg ICAgIGcuVGVtcEltbWVkaWF0ZShiYXNlOjpiaXRzOjpXaGljaFBvd2VyT2ZUd28odmFsdWUpKSk7 CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICAgIGlmIChiYXNlOjpiaXRzOjpJc1Bvd2VyT2ZU d28odmFsdWUgKyAxKSkgeworKyAgICAgIEluc3RydWN0aW9uT3BlcmFuZCB0ZW1wID0gZy5UZW1w UmVnaXN0ZXIoKTsKKysgICAgICBFbWl0KGtSaXNjdlNobDMyIHwgQWRkcmVzc2luZ01vZGVGaWVs ZDo6ZW5jb2RlKGtNb2RlX05vbmUpLCB0ZW1wLAorKyAgICAgICAgICAgZy5Vc2VSZWdpc3Rlciht LmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICAgICAgZy5UZW1wSW1tZWRpYXRlKGJhc2U6OmJpdHM6 OldoaWNoUG93ZXJPZlR3byh2YWx1ZSArIDEpKSk7CisrICAgICAgRW1pdChrUmlzY3ZTdWIzMiB8 IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShrTW9kZV9Ob25lKSwKKysgICAgICAgICAgIGcu RGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgdGVtcCwgZy5Vc2VSZWdpc3RlcihtLmxlZnQoKS5ub2Rl KCkpKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIH0KKysgIE5vZGUqIGxlZnQgPSBub2Rl LT5JbnB1dEF0KDApOworKyAgTm9kZSogcmlnaHQgPSBub2RlLT5JbnB1dEF0KDEpOworKyAgaWYg KENhbkNvdmVyKG5vZGUsIGxlZnQpICYmIENhbkNvdmVyKG5vZGUsIHJpZ2h0KSkgeworKyAgICBp ZiAobGVmdC0+b3Bjb2RlKCkgPT0gSXJPcGNvZGU6OmtXb3JkNjRTYXIgJiYKKysgICAgICAgIHJp Z2h0LT5vcGNvZGUoKSA9PSBJck9wY29kZTo6a1dvcmQ2NFNhcikgeworKyAgICAgIEludDY0Qmlu b3BNYXRjaGVyIGxlZnRJbnB1dChsZWZ0KSwgcmlnaHRJbnB1dChyaWdodCk7CisrICAgICAgaWYg KGxlZnRJbnB1dC5yaWdodCgpLklzKDMyKSAmJiByaWdodElucHV0LnJpZ2h0KCkuSXMoMzIpKSB7 CisrICAgICAgICAvLyBDb21iaW5lIHVudGFnZ2luZyBzaGlmdHMgd2l0aCBEbXVsIGhpZ2guCisr ICAgICAgICBFbWl0KGtSaXNjdk11bEhpZ2g2NCwgZy5EZWZpbmVTYW1lQXNGaXJzdChub2RlKSwK KysgICAgICAgICAgICAgZy5Vc2VSZWdpc3RlcihsZWZ0SW5wdXQubGVmdCgpLm5vZGUoKSksCisr ICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIocmlnaHRJbnB1dC5sZWZ0KCkubm9kZSgpKSk7Cisr ICAgICAgICByZXR1cm47CisrICAgICAgfQorKyAgICB9CisrICB9CisrICBWaXNpdFJSUih0aGlz LCBrUmlzY3ZNdWwzMiwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6 VmlzaXRJbnQzMk11bEhpZ2goTm9kZSogbm9kZSkgeworKyAgVmlzaXRSUlIodGhpcywga1Jpc2N2 TXVsSGlnaDMyLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dFVpbnQzMk11bEhpZ2goTm9kZSogbm9kZSkgeworKyAgVmlzaXRSUlIodGhpcywga1Jpc2N2TXVs SGlnaFUzMiwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRJ bnQ2NE11bChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsK KysgIEludDY0Qmlub3BNYXRjaGVyIG0obm9kZSk7CisrICAvLyBUT0RPKGR1c21pbCk6IEFkZCBv cHRpbWl6YXRpb24gZm9yIHNoaWZ0cyBsYXJnZXIgdGhhbiAzMi4KKysgIGlmIChtLnJpZ2h0KCku SGFzVmFsdWUoKSAmJiBtLnJpZ2h0KCkuVmFsdWUoKSA+IDApIHsKKysgICAgdWludDMyX3QgdmFs dWUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obS5yaWdodCgpLlZhbHVlKCkpOworKyAgICBpZiAo YmFzZTo6Yml0czo6SXNQb3dlck9mVHdvKHZhbHVlKSkgeworKyAgICAgIEVtaXQoa1Jpc2N2U2hs NjQgfCBBZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTm9uZSksCisrICAgICAgICAg ICBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksIGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgp KSwKKysgICAgICAgICAgIGcuVGVtcEltbWVkaWF0ZShiYXNlOjpiaXRzOjpXaGljaFBvd2VyT2ZU d28odmFsdWUpKSk7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICAgIGlmIChiYXNlOjpiaXRz OjpJc1Bvd2VyT2ZUd28odmFsdWUgKyAxKSkgeworKyAgICAgIEluc3RydWN0aW9uT3BlcmFuZCB0 ZW1wID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgICAgICBFbWl0KGtSaXNjdlNobDY0IHwgQWRkcmVz c2luZ01vZGVGaWVsZDo6ZW5jb2RlKGtNb2RlX05vbmUpLCB0ZW1wLAorKyAgICAgICAgICAgZy5V c2VSZWdpc3RlcihtLmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICAgICAgZy5UZW1wSW1tZWRpYXRl KGJhc2U6OmJpdHM6OldoaWNoUG93ZXJPZlR3byh2YWx1ZSArIDEpKSk7CisrICAgICAgRW1pdChr UmlzY3ZTdWI2NCB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShrTW9kZV9Ob25lKSwKKysg ICAgICAgICAgIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgdGVtcCwgZy5Vc2VSZWdpc3Rlciht LmxlZnQoKS5ub2RlKCkpKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIH0KKysgIEVtaXQo a1Jpc2N2TXVsNjQsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgZy5Vc2VSZWdpc3RlcihtLmxl ZnQoKS5ub2RlKCkpLAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKG0ucmlnaHQoKS5ub2RlKCkpKTsK Kyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEludDMyRGl2KE5vZGUqIG5v ZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgSW50MzJCaW5vcE1h dGNoZXIgbShub2RlKTsKKysgIE5vZGUqIGxlZnQgPSBub2RlLT5JbnB1dEF0KDApOworKyAgTm9k ZSogcmlnaHQgPSBub2RlLT5JbnB1dEF0KDEpOworKyAgaWYgKENhbkNvdmVyKG5vZGUsIGxlZnQp ICYmIENhbkNvdmVyKG5vZGUsIHJpZ2h0KSkgeworKyAgICBpZiAobGVmdC0+b3Bjb2RlKCkgPT0g SXJPcGNvZGU6OmtXb3JkNjRTYXIgJiYKKysgICAgICAgIHJpZ2h0LT5vcGNvZGUoKSA9PSBJck9w Y29kZTo6a1dvcmQ2NFNhcikgeworKyAgICAgIEludDY0Qmlub3BNYXRjaGVyIHJpZ2h0SW5wdXQo cmlnaHQpLCBsZWZ0SW5wdXQobGVmdCk7CisrICAgICAgaWYgKHJpZ2h0SW5wdXQucmlnaHQoKS5J cygzMikgJiYgbGVmdElucHV0LnJpZ2h0KCkuSXMoMzIpKSB7CisrICAgICAgICAvLyBDb21iaW5l IGJvdGggc2hpZnRlZCBvcGVyYW5kcyB3aXRoIERkaXYuCisrICAgICAgICBFbWl0KGtSaXNjdkRp djY0LCBnLkRlZmluZVNhbWVBc0ZpcnN0KG5vZGUpLAorKyAgICAgICAgICAgICBnLlVzZVJlZ2lz dGVyKGxlZnRJbnB1dC5sZWZ0KCkubm9kZSgpKSwKKysgICAgICAgICAgICAgZy5Vc2VSZWdpc3Rl cihyaWdodElucHV0LmxlZnQoKS5ub2RlKCkpKTsKKysgICAgICAgIHJldHVybjsKKysgICAgICB9 CisrICAgIH0KKysgIH0KKysgIEVtaXQoa1Jpc2N2RGl2MzIsIGcuRGVmaW5lU2FtZUFzRmlyc3Qo bm9kZSksIGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgpKSwKKysgICAgICAgZy5Vc2VSZWdp c3RlcihtLnJpZ2h0KCkubm9kZSgpKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rv cjo6VmlzaXRVaW50MzJEaXYoTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9y IGcodGhpcyk7CisrICBJbnQzMkJpbm9wTWF0Y2hlciBtKG5vZGUpOworKyAgRW1pdChrUmlzY3ZE aXZVMzIsIGcuRGVmaW5lU2FtZUFzRmlyc3Qobm9kZSksIGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCku bm9kZSgpKSwKKysgICAgICAgZy5Vc2VSZWdpc3RlcihtLnJpZ2h0KCkubm9kZSgpKSk7CisrfQor KworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRJbnQzMk1vZChOb2RlKiBub2RlKSB7 CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIEludDMyQmlub3BNYXRjaGVy IG0obm9kZSk7CisrICBOb2RlKiBsZWZ0ID0gbm9kZS0+SW5wdXRBdCgwKTsKKysgIE5vZGUqIHJp Z2h0ID0gbm9kZS0+SW5wdXRBdCgxKTsKKysgIGlmIChDYW5Db3Zlcihub2RlLCBsZWZ0KSAmJiBD YW5Db3Zlcihub2RlLCByaWdodCkpIHsKKysgICAgaWYgKGxlZnQtPm9wY29kZSgpID09IElyT3Bj b2RlOjprV29yZDY0U2FyICYmCisrICAgICAgICByaWdodC0+b3Bjb2RlKCkgPT0gSXJPcGNvZGU6 OmtXb3JkNjRTYXIpIHsKKysgICAgICBJbnQ2NEJpbm9wTWF0Y2hlciByaWdodElucHV0KHJpZ2h0 KSwgbGVmdElucHV0KGxlZnQpOworKyAgICAgIGlmIChyaWdodElucHV0LnJpZ2h0KCkuSXMoMzIp ICYmIGxlZnRJbnB1dC5yaWdodCgpLklzKDMyKSkgeworKyAgICAgICAgLy8gQ29tYmluZSBib3Ro IHNoaWZ0ZWQgb3BlcmFuZHMgd2l0aCBEbW9kLgorKyAgICAgICAgRW1pdChrUmlzY3ZNb2Q2NCwg Zy5EZWZpbmVTYW1lQXNGaXJzdChub2RlKSwKKysgICAgICAgICAgICAgZy5Vc2VSZWdpc3Rlcihs ZWZ0SW5wdXQubGVmdCgpLm5vZGUoKSksCisrICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIocmln aHRJbnB1dC5sZWZ0KCkubm9kZSgpKSk7CisrICAgICAgICByZXR1cm47CisrICAgICAgfQorKyAg ICB9CisrICB9CisrICBFbWl0KGtSaXNjdk1vZDMyLCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSks IGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgpKSwKKysgICAgICAgZy5Vc2VSZWdpc3Rlciht LnJpZ2h0KCkubm9kZSgpKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6Vmlz aXRVaW50MzJNb2QoTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhp cyk7CisrICBJbnQzMkJpbm9wTWF0Y2hlciBtKG5vZGUpOworKyAgRW1pdChrUmlzY3ZNb2RVMzIs IGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgZy5Vc2VSZWdpc3RlcihtLmxlZnQoKS5ub2RlKCkp LAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKG0ucmlnaHQoKS5ub2RlKCkpKTsKKyt9CisrCisrdm9p ZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEludDY0RGl2KE5vZGUqIG5vZGUpIHsKKysgIFJp c2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgSW50NjRCaW5vcE1hdGNoZXIgbShub2Rl KTsKKysgIEVtaXQoa1Jpc2N2RGl2NjQsIGcuRGVmaW5lU2FtZUFzRmlyc3Qobm9kZSksIGcuVXNl UmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgpKSwKKysgICAgICAgZy5Vc2VSZWdpc3RlcihtLnJpZ2h0 KCkubm9kZSgpKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRVaW50 NjREaXYoTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7Cisr ICBJbnQ2NEJpbm9wTWF0Y2hlciBtKG5vZGUpOworKyAgRW1pdChrUmlzY3ZEaXZVNjQsIGcuRGVm aW5lU2FtZUFzRmlyc3Qobm9kZSksIGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgpKSwKKysg ICAgICAgZy5Vc2VSZWdpc3RlcihtLnJpZ2h0KCkubm9kZSgpKSk7CisrfQorKworK3ZvaWQgSW5z dHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRJbnQ2NE1vZChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9w ZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIEludDY0Qmlub3BNYXRjaGVyIG0obm9kZSk7Cisr ICBFbWl0KGtSaXNjdk1vZDY0LCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksIGcuVXNlUmVnaXN0 ZXIobS5sZWZ0KCkubm9kZSgpKSwKKysgICAgICAgZy5Vc2VSZWdpc3RlcihtLnJpZ2h0KCkubm9k ZSgpKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRVaW50NjRNb2Qo Tm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBJbnQ2 NEJpbm9wTWF0Y2hlciBtKG5vZGUpOworKyAgRW1pdChrUmlzY3ZNb2RVNjQsIGcuRGVmaW5lQXNS ZWdpc3Rlcihub2RlKSwgZy5Vc2VSZWdpc3RlcihtLmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICBn LlVzZVJlZ2lzdGVyKG0ucmlnaHQoKS5ub2RlKCkpKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlv blNlbGVjdG9yOjpWaXNpdENoYW5nZUZsb2F0MzJUb0Zsb2F0NjQoTm9kZSogbm9kZSkgeworKyAg VmlzaXRSUih0aGlzLCBrUmlzY3ZDdnREUywgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6VmlzaXRSb3VuZEludDMyVG9GbG9hdDMyKE5vZGUqIG5vZGUpIHsKKysgIFZp c2l0UlIodGhpcywga1Jpc2N2Q3Z0U1csIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OlZpc2l0Um91bmRVaW50MzJUb0Zsb2F0MzIoTm9kZSogbm9kZSkgeworKyAgVmlz aXRSUih0aGlzLCBrUmlzY3ZDdnRTVXcsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OlZpc2l0Q2hhbmdlSW50MzJUb0Zsb2F0NjQoTm9kZSogbm9kZSkgeworKyAgVmlz aXRSUih0aGlzLCBrUmlzY3ZDdnREVywgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25T ZWxlY3Rvcjo6VmlzaXRDaGFuZ2VJbnQ2NFRvRmxvYXQ2NChOb2RlKiBub2RlKSB7CisrICBWaXNp dFJSKHRoaXMsIGtSaXNjdkN2dERMLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNl bGVjdG9yOjpWaXNpdENoYW5nZVVpbnQzMlRvRmxvYXQ2NChOb2RlKiBub2RlKSB7CisrICBWaXNp dFJSKHRoaXMsIGtSaXNjdkN2dERVdywgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25T ZWxlY3Rvcjo6VmlzaXRUcnVuY2F0ZUZsb2F0MzJUb0ludDMyKE5vZGUqIG5vZGUpIHsKKysgIFZp c2l0UlIodGhpcywga1Jpc2N2VHJ1bmNXUywgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6VmlzaXRUcnVuY2F0ZUZsb2F0MzJUb1VpbnQzMihOb2RlKiBub2RlKSB7Cisr ICBWaXNpdFJSKHRoaXMsIGtSaXNjdlRydW5jVXdTLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0 cnVjdGlvblNlbGVjdG9yOjpWaXNpdENoYW5nZUZsb2F0NjRUb0ludDMyKE5vZGUqIG5vZGUpIHsK KysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgTm9kZSogdmFsdWUgPSBub2Rl LT5JbnB1dEF0KDApOworKyAgLy8gTWF0Y2ggQ2hhbmdlRmxvYXQ2NFRvSW50MzIoRmxvYXQ2NFJv dW5kIyNPUCkgdG8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbgorKyAgLy8gd2hpY2ggZG9lcyBy b3VuZGluZyBhbmQgY29udmVyc2lvbiB0byBpbnRlZ2VyIGZvcm1hdC4KKysgIGlmIChDYW5Db3Zl cihub2RlLCB2YWx1ZSkpIHsKKysgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKKysgICAg ICBjYXNlIElyT3Bjb2RlOjprRmxvYXQ2NFJvdW5kRG93bjoKKysgICAgICAgIEVtaXQoa1Jpc2N2 Rmxvb3JXRCwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICAgICAgICBnLlVzZVJl Z2lzdGVyKHZhbHVlLT5JbnB1dEF0KDApKSk7CisrICAgICAgICByZXR1cm47CisrICAgICAgY2Fz ZSBJck9wY29kZTo6a0Zsb2F0NjRSb3VuZFVwOgorKyAgICAgICAgRW1pdChrUmlzY3ZDZWlsV0Qs IGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgICAgICAgZy5Vc2VSZWdpc3Rlcih2 YWx1ZS0+SW5wdXRBdCgwKSkpOworKyAgICAgICAgcmV0dXJuOworKyAgICAgIGNhc2UgSXJPcGNv ZGU6OmtGbG9hdDY0Um91bmRUaWVzRXZlbjoKKysgICAgICAgIEVtaXQoa1Jpc2N2Um91bmRXRCwg Zy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKHZh bHVlLT5JbnB1dEF0KDApKSk7CisrICAgICAgICByZXR1cm47CisrICAgICAgY2FzZSBJck9wY29k ZTo6a0Zsb2F0NjRSb3VuZFRydW5jYXRlOgorKyAgICAgICAgRW1pdChrUmlzY3ZUcnVuY1dELCBn LkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIodmFs dWUtPklucHV0QXQoMCkpKTsKKysgICAgICAgIHJldHVybjsKKysgICAgICBkZWZhdWx0OgorKyAg ICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgaWYgKHZhbHVlLT5vcGNvZGUoKSA9PSBJck9wY29k ZTo6a0NoYW5nZUZsb2F0MzJUb0Zsb2F0NjQpIHsKKysgICAgICBOb2RlKiBuZXh0ID0gdmFsdWUt PklucHV0QXQoMCk7CisrICAgICAgaWYgKENhbkNvdmVyKHZhbHVlLCBuZXh0KSkgeworKyAgICAg ICAgLy8gTWF0Y2ggQ2hhbmdlRmxvYXQ2NFRvSW50MzIoQ2hhbmdlRmxvYXQzMlRvRmxvYXQ2NChG bG9hdDY0Um91bmQjI09QKSkKKysgICAgICAgIHN3aXRjaCAobmV4dC0+b3Bjb2RlKCkpIHsKKysg ICAgICAgICAgY2FzZSBJck9wY29kZTo6a0Zsb2F0MzJSb3VuZERvd246CisrICAgICAgICAgICAg RW1pdChrUmlzY3ZGbG9vcldTLCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgICAg ICAgICAgICBnLlVzZVJlZ2lzdGVyKG5leHQtPklucHV0QXQoMCkpKTsKKysgICAgICAgICAgICBy ZXR1cm47CisrICAgICAgICAgIGNhc2UgSXJPcGNvZGU6OmtGbG9hdDMyUm91bmRVcDoKKysgICAg ICAgICAgICBFbWl0KGtSaXNjdkNlaWxXUywgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAg ICAgICAgICAgICAgICAgZy5Vc2VSZWdpc3RlcihuZXh0LT5JbnB1dEF0KDApKSk7CisrICAgICAg ICAgICAgcmV0dXJuOworKyAgICAgICAgICBjYXNlIElyT3Bjb2RlOjprRmxvYXQzMlJvdW5kVGll c0V2ZW46CisrICAgICAgICAgICAgRW1pdChrUmlzY3ZSb3VuZFdTLCBnLkRlZmluZUFzUmVnaXN0 ZXIobm9kZSksCisrICAgICAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKG5leHQtPklucHV0QXQo MCkpKTsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAgIGNhc2UgSXJPcGNvZGU6OmtG bG9hdDMyUm91bmRUcnVuY2F0ZToKKysgICAgICAgICAgICBFbWl0KGtSaXNjdlRydW5jV1MsIGcu RGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIo bmV4dC0+SW5wdXRBdCgwKSkpOworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgICAgZGVm YXVsdDoKKysgICAgICAgICAgICBFbWl0KGtSaXNjdlRydW5jV1MsIGcuRGVmaW5lQXNSZWdpc3Rl cihub2RlKSwKKysgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIodmFsdWUtPklucHV0QXQo MCkpKTsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrICAgICAgfSBlbHNlIHsK KysgICAgICAgIC8vIE1hdGNoIGZsb2F0MzIgLT4gZmxvYXQ2NCAtPiBpbnQzMiByZXByZXNlbnRh dGlvbiBjaGFuZ2UgcGF0aC4KKysgICAgICAgIEVtaXQoa1Jpc2N2VHJ1bmNXUywgZy5EZWZpbmVB c1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKHZhbHVlLT5JbnB1 dEF0KDApKSk7CisrICAgICAgICByZXR1cm47CisrICAgICAgfQorKyAgICB9CisrICB9CisrICBW aXNpdFJSKHRoaXMsIGtSaXNjdlRydW5jV0QsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0 aW9uU2VsZWN0b3I6OlZpc2l0Q2hhbmdlRmxvYXQ2NFRvSW50NjQoTm9kZSogbm9kZSkgeworKyAg VmlzaXRSUih0aGlzLCBrUmlzY3ZUcnVuY0xELCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVj dGlvblNlbGVjdG9yOjpWaXNpdENoYW5nZUZsb2F0NjRUb1VpbnQzMihOb2RlKiBub2RlKSB7Cisr ICBWaXNpdFJSKHRoaXMsIGtSaXNjdlRydW5jVXdELCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0 cnVjdGlvblNlbGVjdG9yOjpWaXNpdENoYW5nZUZsb2F0NjRUb1VpbnQ2NChOb2RlKiBub2RlKSB7 CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdlRydW5jVWxELCBub2RlKTsKKyt9CisrCisrdm9pZCBJ bnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFRydW5jYXRlRmxvYXQ2NFRvVWludDMyKE5vZGUqIG5v ZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jpc2N2VHJ1bmNVd0QsIG5vZGUpOworK30KKysKKyt2 b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0VHJ1bmNhdGVGbG9hdDY0VG9JbnQ2NChOb2Rl KiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdlRydW5jTEQsIG5vZGUpOworK30KKysK Kyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0VHJ5VHJ1bmNhdGVGbG9hdDMyVG9JbnQ2 NChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIElu c3RydWN0aW9uT3BlcmFuZCBpbnB1dHNbXSA9IHtnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQo MCkpfTsKKysgIEluc3RydWN0aW9uT3BlcmFuZCBvdXRwdXRzWzJdOworKyAgc2l6ZV90IG91dHB1 dF9jb3VudCA9IDA7CisrICBvdXRwdXRzW291dHB1dF9jb3VudCsrXSA9IGcuRGVmaW5lQXNSZWdp c3Rlcihub2RlKTsKKysKKysgIE5vZGUqIHN1Y2Nlc3Nfb3V0cHV0ID0gTm9kZVByb3BlcnRpZXM6 OkZpbmRQcm9qZWN0aW9uKG5vZGUsIDEpOworKyAgaWYgKHN1Y2Nlc3Nfb3V0cHV0KSB7CisrICAg IG91dHB1dHNbb3V0cHV0X2NvdW50KytdID0gZy5EZWZpbmVBc1JlZ2lzdGVyKHN1Y2Nlc3Nfb3V0 cHV0KTsKKysgIH0KKysKKysgIHRoaXMtPkVtaXQoa1Jpc2N2VHJ1bmNMUywgb3V0cHV0X2NvdW50 LCBvdXRwdXRzLCAxLCBpbnB1dHMpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6 OlZpc2l0VHJ5VHJ1bmNhdGVGbG9hdDY0VG9JbnQ2NChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9w ZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIEluc3RydWN0aW9uT3BlcmFuZCBpbnB1dHNbXSA9 IHtnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkpfTsKKysgIEluc3RydWN0aW9uT3BlcmFu ZCBvdXRwdXRzWzJdOworKyAgc2l6ZV90IG91dHB1dF9jb3VudCA9IDA7CisrICBvdXRwdXRzW291 dHB1dF9jb3VudCsrXSA9IGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKTsKKysKKysgIE5vZGUqIHN1 Y2Nlc3Nfb3V0cHV0ID0gTm9kZVByb3BlcnRpZXM6OkZpbmRQcm9qZWN0aW9uKG5vZGUsIDEpOwor KyAgaWYgKHN1Y2Nlc3Nfb3V0cHV0KSB7CisrICAgIG91dHB1dHNbb3V0cHV0X2NvdW50KytdID0g Zy5EZWZpbmVBc1JlZ2lzdGVyKHN1Y2Nlc3Nfb3V0cHV0KTsKKysgIH0KKysKKysgIEVtaXQoa1Jp c2N2VHJ1bmNMRCwgb3V0cHV0X2NvdW50LCBvdXRwdXRzLCAxLCBpbnB1dHMpOworK30KKysKKyt2 b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0VHJ5VHJ1bmNhdGVGbG9hdDMyVG9VaW50NjQo Tm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBJbnN0 cnVjdGlvbk9wZXJhbmQgaW5wdXRzW10gPSB7Zy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDAp KX07CisrICBJbnN0cnVjdGlvbk9wZXJhbmQgb3V0cHV0c1syXTsKKysgIHNpemVfdCBvdXRwdXRf Y291bnQgPSAwOworKyAgb3V0cHV0c1tvdXRwdXRfY291bnQrK10gPSBnLkRlZmluZUFzUmVnaXN0 ZXIobm9kZSk7CisrCisrICBOb2RlKiBzdWNjZXNzX291dHB1dCA9IE5vZGVQcm9wZXJ0aWVzOjpG aW5kUHJvamVjdGlvbihub2RlLCAxKTsKKysgIGlmIChzdWNjZXNzX291dHB1dCkgeworKyAgICBv dXRwdXRzW291dHB1dF9jb3VudCsrXSA9IGcuRGVmaW5lQXNSZWdpc3RlcihzdWNjZXNzX291dHB1 dCk7CisrICB9CisrCisrICBFbWl0KGtSaXNjdlRydW5jVWxTLCBvdXRwdXRfY291bnQsIG91dHB1 dHMsIDEsIGlucHV0cyk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRU cnlUcnVuY2F0ZUZsb2F0NjRUb1VpbnQ2NChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRH ZW5lcmF0b3IgZyh0aGlzKTsKKysKKysgIEluc3RydWN0aW9uT3BlcmFuZCBpbnB1dHNbXSA9IHtn LlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkpfTsKKysgIEluc3RydWN0aW9uT3BlcmFuZCBv dXRwdXRzWzJdOworKyAgc2l6ZV90IG91dHB1dF9jb3VudCA9IDA7CisrICBvdXRwdXRzW291dHB1 dF9jb3VudCsrXSA9IGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKTsKKysKKysgIE5vZGUqIHN1Y2Nl c3Nfb3V0cHV0ID0gTm9kZVByb3BlcnRpZXM6OkZpbmRQcm9qZWN0aW9uKG5vZGUsIDEpOworKyAg aWYgKHN1Y2Nlc3Nfb3V0cHV0KSB7CisrICAgIG91dHB1dHNbb3V0cHV0X2NvdW50KytdID0gZy5E ZWZpbmVBc1JlZ2lzdGVyKHN1Y2Nlc3Nfb3V0cHV0KTsKKysgIH0KKysKKysgIEVtaXQoa1Jpc2N2 VHJ1bmNVbEQsIG91dHB1dF9jb3VudCwgb3V0cHV0cywgMSwgaW5wdXRzKTsKKyt9CisrCisrdm9p ZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEJpdGNhc3RXb3JkMzJUb1dvcmQ2NChOb2RlKiBu b2RlKSB7CisrICBVTklNUExFTUVOVEVEKCk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxl Y3Rvcjo6VmlzaXRDaGFuZ2VJbnQzMlRvSW50NjQoTm9kZSogbm9kZSkgeworKyAgTm9kZSogdmFs dWUgPSBub2RlLT5JbnB1dEF0KDApOworKyAgaWYgKHZhbHVlLT5vcGNvZGUoKSA9PSBJck9wY29k ZTo6a0xvYWQgJiYgQ2FuQ292ZXIobm9kZSwgdmFsdWUpKSB7CisrICAgIC8vIEdlbmVyYXRlIHNp Z24tZXh0ZW5kaW5nIGxvYWQuCisrICAgIExvYWRSZXByZXNlbnRhdGlvbiBsb2FkX3JlcCA9IExv YWRSZXByZXNlbnRhdGlvbk9mKHZhbHVlLT5vcCgpKTsKKysgICAgSW5zdHJ1Y3Rpb25Db2RlIG9w Y29kZSA9IGtBcmNoTm9wOworKyAgICBzd2l0Y2ggKGxvYWRfcmVwLnJlcHJlc2VudGF0aW9uKCkp IHsKKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a0JpdDogIC8vIEZhbGwgdGhy b3VnaC4KKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1dvcmQ4OgorKyAgICAg ICAgb3Bjb2RlID0gbG9hZF9yZXAuSXNVbnNpZ25lZCgpID8ga1Jpc2N2TGJ1IDoga1Jpc2N2TGI7 CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1dv cmQxNjoKKysgICAgICAgIG9wY29kZSA9IGxvYWRfcmVwLklzVW5zaWduZWQoKSA/IGtSaXNjdkxo dSA6IGtSaXNjdkxoOworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBNYWNoaW5lUmVwcmVz ZW50YXRpb246OmtXb3JkMzI6CisrICAgICAgICBvcGNvZGUgPSBrUmlzY3ZMdzsKKysgICAgICAg IGJyZWFrOworKyAgICAgIGRlZmF1bHQ6CisrICAgICAgICBVTlJFQUNIQUJMRSgpOworKyAgICAg ICAgcmV0dXJuOworKyAgICB9CisrICAgIEVtaXRMb2FkKHRoaXMsIHZhbHVlLCBvcGNvZGUsIG5v ZGUpOworKyAgfSBlbHNlIHsKKysgICAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7Cisr ICAgIEVtaXQoa1Jpc2N2U2hsMzIsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgZy5Vc2VSZWdp c3Rlcihub2RlLT5JbnB1dEF0KDApKSwKKysgICAgICAgICBnLlRlbXBJbW1lZGlhdGUoMCkpOwor KyAgfQorK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0Q2hhbmdlVWludDMy VG9VaW50NjQoTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7 CisrICBOb2RlKiB2YWx1ZSA9IG5vZGUtPklucHV0QXQoMCk7CisrICBzd2l0Y2ggKHZhbHVlLT5v cGNvZGUoKSkgeworKyAgICBjYXNlIElyT3Bjb2RlOjprTG9hZDogeworKyAgICAgIExvYWRSZXBy ZXNlbnRhdGlvbiBsb2FkX3JlcCA9IExvYWRSZXByZXNlbnRhdGlvbk9mKHZhbHVlLT5vcCgpKTsK KysgICAgICBpZiAobG9hZF9yZXAuSXNVbnNpZ25lZCgpKSB7CisrICAgICAgICBzd2l0Y2ggKGxv YWRfcmVwLnJlcHJlc2VudGF0aW9uKCkpIHsKKysgICAgICAgICAgY2FzZSBNYWNoaW5lUmVwcmVz ZW50YXRpb246OmtXb3JkODoKKysgICAgICAgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246 OmtXb3JkMTY6CisrICAgICAgICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDMy OgorKyAgICAgICAgICAgIEVtaXQoa0FyY2hOb3AsIGcuRGVmaW5lU2FtZUFzRmlyc3Qobm9kZSks IGcuVXNlKHZhbHVlKSk7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgICBkZWZhdWx0 OgorKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgfQorKyAgRW1pdChr UmlzY3ZaZXJvRXh0ZW5kV29yZCwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICBn LlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkpKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlv blNlbGVjdG9yOjpWaXNpdFRydW5jYXRlSW50NjRUb0ludDMyKE5vZGUqIG5vZGUpIHsKKysgIFJp c2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgTm9kZSogdmFsdWUgPSBub2RlLT5JbnB1 dEF0KDApOworKyAgaWYgKENhbkNvdmVyKG5vZGUsIHZhbHVlKSkgeworKyAgICBzd2l0Y2ggKHZh bHVlLT5vcGNvZGUoKSkgeworKyAgICAgIGNhc2UgSXJPcGNvZGU6OmtXb3JkNjRTYXI6IHsKKysg ICAgICAgIGlmIChDYW5Db3Zlcih2YWx1ZSwgdmFsdWUtPklucHV0QXQoMCkpICYmCisrICAgICAg ICAgICAgVHJ5RW1pdEV4dGVuZGluZ0xvYWQodGhpcywgdmFsdWUsIG5vZGUpKSB7CisrICAgICAg ICAgIHJldHVybjsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIEludDY0Qmlub3BNYXRj aGVyIG0odmFsdWUpOworKyAgICAgICAgICBpZiAobS5yaWdodCgpLklzSW5SYW5nZSgzMiwgNjMp KSB7CisrICAgICAgICAgICAgLy8gQWZ0ZXIgc21pIHVudGFnZ2luZyBubyBuZWVkIGZvciB0cnVu Y2F0ZS4gQ29tYmluZSBzZXF1ZW5jZS4KKysgICAgICAgICAgICBFbWl0KGtSaXNjdlNhcjY0LCBn LkRlZmluZVNhbWVBc0ZpcnN0KG5vZGUpLAorKyAgICAgICAgICAgICAgICAgZy5Vc2VSZWdpc3Rl cihtLmxlZnQoKS5ub2RlKCkpLAorKyAgICAgICAgICAgICAgICAgZy5Vc2VJbW1lZGlhdGUobS5y aWdodCgpLm5vZGUoKSkpOworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgICAgfQorKyAg ICAgICAgfQorKyAgICAgICAgYnJlYWs7CisrICAgICAgfQorKyAgICAgIGRlZmF1bHQ6CisrICAg ICAgICBicmVhazsKKysgICAgfQorKyAgfQorKworKyAgLy8gU2VtYW50aWNzIG9mIHRoaXMgbWFj aGluZSBJUiBpcyBub3QgY2xlYXIuIEZvciBleGFtcGxlLCB4ODYgemVyby1leHRlbmQgdGhlCisr ICAvLyB0cnVuY2F0ZWQgdmFsdWU7IGFybSB0cmVhdHMgaXQgYXMgbm9wIHRodXMgdGhlIHVwcGVy IDMyLWJpdCBhcyB1bmRlZmluZWQ7CisrICAvLyBtaXBzIGVtaXRzIGV4dCBpbnN0cnVjdGlvbiB3 aGljaCB6ZXJvLWV4dGVuZCB0aGUgMzItYml0IHZhbHVlOyBmb3IgcmlzY3YsCisrICAvLyB3ZSBk byBzaWduLWV4dGVuc2lvbiBvZiB0aGUgdHJ1bmNhdGVkIHZhbHVlCisrICBFbWl0KGtSaXNjdlNp Z25FeHRlbmRXb3JkLCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgIGcuVXNlUmVn aXN0ZXIobm9kZS0+SW5wdXRBdCgwKSkpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0 b3I6OlZpc2l0VHJ1bmNhdGVGbG9hdDY0VG9GbG9hdDMyKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2 T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgTm9kZSogdmFsdWUgPSBub2RlLT5JbnB1dEF0 KDApOworKyAgLy8gTWF0Y2ggVHJ1bmNhdGVGbG9hdDY0VG9GbG9hdDMyKENoYW5nZUludDMyVG9G bG9hdDY0KSB0byBjb3JyZXNwb25kaW5nCisrICAvLyBpbnN0cnVjdGlvbi4KKysgIGlmIChDYW5D b3Zlcihub2RlLCB2YWx1ZSkgJiYKKysgICAgICB2YWx1ZS0+b3Bjb2RlKCkgPT0gSXJPcGNvZGU6 OmtDaGFuZ2VJbnQzMlRvRmxvYXQ2NCkgeworKyAgICBFbWl0KGtSaXNjdkN2dFNXLCBnLkRlZmlu ZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgICAgZy5Vc2VSZWdpc3Rlcih2YWx1ZS0+SW5wdXRB dCgwKSkpOworKyAgICByZXR1cm47CisrICB9CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdkN2dFNE LCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFRydW5jYXRl RmxvYXQ2NFRvV29yZDMyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywga0FyY2hUcnVu Y2F0ZURvdWJsZVRvSSwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6 VmlzaXRSb3VuZEZsb2F0NjRUb0ludDMyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywg a1Jpc2N2VHJ1bmNXRCwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6 VmlzaXRSb3VuZEludDY0VG9GbG9hdDMyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywg a1Jpc2N2Q3Z0U0wsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZp c2l0Um91bmRJbnQ2NFRvRmxvYXQ2NChOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtS aXNjdkN2dERMLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dFJvdW5kVWludDY0VG9GbG9hdDMyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jp c2N2Q3Z0U1VsLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dFJvdW5kVWludDY0VG9GbG9hdDY0KE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jp c2N2Q3Z0RFVsLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dEJpdGNhc3RGbG9hdDMyVG9JbnQzMihOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtS aXNjdkJpdGNhc3RGbG9hdDMyVG9JbnQzMiwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6VmlzaXRCaXRjYXN0RmxvYXQ2NFRvSW50NjQoTm9kZSogbm9kZSkgeworKyAg VmlzaXRSUih0aGlzLCBrUmlzY3ZCaXRjYXN0REwsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3Ry dWN0aW9uU2VsZWN0b3I6OlZpc2l0Qml0Y2FzdEludDMyVG9GbG9hdDMyKE5vZGUqIG5vZGUpIHsK KysgIFZpc2l0UlIodGhpcywga1Jpc2N2Qml0Y2FzdEludDMyVG9GbG9hdDMyLCBub2RlKTsKKyt9 CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEJpdGNhc3RJbnQ2NFRvRmxvYXQ2 NChOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdkJpdGNhc3RMRCwgbm9kZSk7 CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDMyQWRkKE5vZGUq IG5vZGUpIHsKKysgIFZpc2l0UlJSKHRoaXMsIGtSaXNjdkFkZFMsIG5vZGUpOworK30KKysKKyt2 b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQ2NEFkZChOb2RlKiBub2RlKSB7Cisr ICBWaXNpdFJSUih0aGlzLCBrUmlzY3ZBZGRELCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVj dGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0MzJTdWIoTm9kZSogbm9kZSkgeworKyAgVmlzaXRSUlIo dGhpcywga1Jpc2N2U3ViUywgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rv cjo6VmlzaXRGbG9hdDY0U3ViKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlJSKHRoaXMsIGtSaXNj dlN1YkQsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0Rmxv YXQzMk11bChOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSUih0aGlzLCBrUmlzY3ZNdWxTLCBub2Rl KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0NjRNdWwoTm9k ZSogbm9kZSkgeworKyAgVmlzaXRSUlIodGhpcywga1Jpc2N2TXVsRCwgbm9kZSk7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDMyRGl2KE5vZGUqIG5vZGUpIHsK KysgIFZpc2l0UlJSKHRoaXMsIGtSaXNjdkRpdlMsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3Ry dWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQ2NERpdihOb2RlKiBub2RlKSB7CisrICBWaXNpdFJS Uih0aGlzLCBrUmlzY3ZEaXZELCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVj dG9yOjpWaXNpdEZsb2F0NjRNb2QoTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJh dG9yIGcodGhpcyk7CisrICBFbWl0KGtSaXNjdk1vZEQsIGcuRGVmaW5lQXNGaXhlZChub2RlLCBm YTApLAorKyAgICAgICBnLlVzZUZpeGVkKG5vZGUtPklucHV0QXQoMCksIGZhMCksIGcuVXNlRml4 ZWQobm9kZS0+SW5wdXRBdCgxKSwgZmExKSkKKysgICAgICAtPk1hcmtBc0NhbGwoKTsKKyt9Cisr Cisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0MzJNYXgoTm9kZSogbm9kZSkg eworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBFbWl0KGtSaXNjdkZsb2F0 MzJNYXgsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgZy5Vc2VSZWdpc3Rlcihu b2RlLT5JbnB1dEF0KDApKSwgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDEpKSk7CisrfQor KworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDY0TWF4KE5vZGUqIG5vZGUp IHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChrUmlzY3ZGbG9h dDY0TWF4LCBnLkRlZmluZUFzUmVnaXN0ZXIobm9kZSksCisrICAgICAgIGcuVXNlUmVnaXN0ZXIo bm9kZS0+SW5wdXRBdCgwKSksIGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgxKSkpOworK30K KysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQzMk1pbihOb2RlKiBub2Rl KSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIEVtaXQoa1Jpc2N2Rmxv YXQzMk1pbiwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICBnLlVzZVJlZ2lzdGVy KG5vZGUtPklucHV0QXQoMCkpLCBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMSkpKTsKKyt9 CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0NjRNaW4oTm9kZSogbm9k ZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBFbWl0KGtSaXNjdkZs b2F0NjRNaW4sIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgZy5Vc2VSZWdpc3Rl cihub2RlLT5JbnB1dEF0KDApKSwgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDEpKSk7Cisr fQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDMyQWJzKE5vZGUqIG5v ZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jpc2N2QWJzUywgbm9kZSk7CisrfQorKworK3ZvaWQg SW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDY0QWJzKE5vZGUqIG5vZGUpIHsKKysgIFZp c2l0UlIodGhpcywga1Jpc2N2QWJzRCwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25T ZWxlY3Rvcjo6VmlzaXRGbG9hdDMyU3FydChOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMs IGtSaXNjdlNxcnRTLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpW aXNpdEZsb2F0NjRTcXJ0KE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jpc2N2U3Fy dEQsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQz MlJvdW5kRG93bihOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdkZsb2F0MzJS b3VuZERvd24sIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0 RmxvYXQ2NFJvdW5kRG93bihOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdkZs b2F0NjRSb3VuZERvd24sIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6 OlZpc2l0RmxvYXQzMlJvdW5kVXAoTm9kZSogbm9kZSkgeworKyAgVmlzaXRSUih0aGlzLCBrUmlz Y3ZGbG9hdDMyUm91bmRVcCwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rv cjo6VmlzaXRGbG9hdDY0Um91bmRVcChOb2RlKiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtS aXNjdkZsb2F0NjRSb3VuZFVwLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVj dG9yOjpWaXNpdEZsb2F0MzJSb3VuZFRydW5jYXRlKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIo dGhpcywga1Jpc2N2RmxvYXQzMlJvdW5kVHJ1bmNhdGUsIG5vZGUpOworK30KKysKKyt2b2lkIElu c3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQ2NFJvdW5kVHJ1bmNhdGUoTm9kZSogbm9kZSkg eworKyAgVmlzaXRSUih0aGlzLCBrUmlzY3ZGbG9hdDY0Um91bmRUcnVuY2F0ZSwgbm9kZSk7Cisr fQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDY0Um91bmRUaWVzQXdh eShOb2RlKiBub2RlKSB7CisrICBVTlJFQUNIQUJMRSgpOworK30KKysKKyt2b2lkIEluc3RydWN0 aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQzMlJvdW5kVGllc0V2ZW4oTm9kZSogbm9kZSkgeworKyAg VmlzaXRSUih0aGlzLCBrUmlzY3ZGbG9hdDMyUm91bmRUaWVzRXZlbiwgbm9kZSk7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDY0Um91bmRUaWVzRXZlbihOb2Rl KiBub2RlKSB7CisrICBWaXNpdFJSKHRoaXMsIGtSaXNjdkZsb2F0NjRSb3VuZFRpZXNFdmVuLCBu b2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0MzJOZWco Tm9kZSogbm9kZSkgeworKyAgVmlzaXRSUih0aGlzLCBrUmlzY3ZOZWdTLCBub2RlKTsKKyt9Cisr Cisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0NjROZWcoTm9kZSogbm9kZSkg eworKyAgVmlzaXRSUih0aGlzLCBrUmlzY3ZOZWdELCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0 cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0NjRJZWVlNzU0Qmlub3AoTm9kZSogbm9kZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0cnVj dGlvbkNvZGUgb3Bjb2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysg IEVtaXQob3Bjb2RlLCBnLkRlZmluZUFzRml4ZWQobm9kZSwgZmEwKSwgZy5Vc2VGaXhlZChub2Rl LT5JbnB1dEF0KDApLCBmYTApLAorKyAgICAgICBnLlVzZUZpeGVkKG5vZGUtPklucHV0QXQoMSks IGZhMSkpCisrICAgICAgLT5NYXJrQXNDYWxsKCk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25T ZWxlY3Rvcjo6VmlzaXRGbG9hdDY0SWVlZTc1NFVub3AoTm9kZSogbm9kZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3RydWN0aW9uQ29kZSBv cGNvZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChvcGNv ZGUsIGcuRGVmaW5lQXNGaXhlZChub2RlLCBmYTApLCBnLlVzZUZpeGVkKG5vZGUtPklucHV0QXQo MCksIGZhMSkpCisrICAgICAgLT5NYXJrQXNDYWxsKCk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6RW1pdFByZXBhcmVBcmd1bWVudHMoCisrICAgIFpvbmVWZWN0b3I8UHVzaFBh cmFtZXRlcj4qIGFyZ3VtZW50cywgY29uc3QgQ2FsbERlc2NyaXB0b3IqIGNhbGxfZGVzY3JpcHRv ciwKKysgICAgTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7 CisrCisrICAvLyBQcmVwYXJlIGZvciBDIGZ1bmN0aW9uIGNhbGwuCisrICBpZiAoY2FsbF9kZXNj cmlwdG9yLT5Jc0NGdW5jdGlvbkNhbGwoKSkgeworKyAgICBFbWl0KGtBcmNoUHJlcGFyZUNhbGxD RnVuY3Rpb24gfCBNaXNjRmllbGQ6OmVuY29kZShzdGF0aWNfY2FzdDxpbnQ+KAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbF9kZXNjcmlwdG9yLT5QYXJhbWV0 ZXJDb3VudCgpKSksCisrICAgICAgICAgMCwgbnVsbHB0ciwgMCwgbnVsbHB0cik7CisrCisrICAg IC8vIFBva2UgYW55IHN0YWNrIGFyZ3VtZW50cy4KKysgICAgaW50IHNsb3QgPSBrQ0FyZ1Nsb3RD b3VudDsKKysgICAgZm9yIChQdXNoUGFyYW1ldGVyIGlucHV0IDogKCphcmd1bWVudHMpKSB7Cisr ICAgICAgRW1pdChrUmlzY3ZTdG9yZVRvU3RhY2tTbG90LCBnLk5vT3V0cHV0KCksIGcuVXNlUmVn aXN0ZXIoaW5wdXQubm9kZSksCisrICAgICAgICAgICBnLlRlbXBJbW1lZGlhdGUoc2xvdCA8PCBr U3lzdGVtUG9pbnRlclNpemVMb2cyKSk7CisrICAgICAgKytzbG90OworKyAgICB9CisrICB9IGVs c2UgeworKyAgICBpbnQgcHVzaF9jb3VudCA9IHN0YXRpY19jYXN0PGludD4oY2FsbF9kZXNjcmlw dG9yLT5TdGFja1BhcmFtZXRlckNvdW50KCkpOworKyAgICBpZiAocHVzaF9jb3VudCA+IDApIHsK KysgICAgICAvLyBDYWxjdWxhdGUgbmVlZGVkIHNwYWNlCisrICAgICAgaW50IHN0YWNrX3NpemUg PSAwOworKyAgICAgIGZvciAoUHVzaFBhcmFtZXRlciBpbnB1dCA6ICgqYXJndW1lbnRzKSkgewor KyAgICAgICAgaWYgKGlucHV0Lm5vZGUpIHsKKysgICAgICAgICAgc3RhY2tfc2l6ZSArPSBpbnB1 dC5sb2NhdGlvbi5HZXRTaXplSW5Qb2ludGVycygpOworKyAgICAgICAgfQorKyAgICAgIH0KKysg ICAgICBFbWl0KGtSaXNjdlN0YWNrQ2xhaW0sIGcuTm9PdXRwdXQoKSwKKysgICAgICAgICAgIGcu VGVtcEltbWVkaWF0ZShzdGFja19zaXplIDw8IGtTeXN0ZW1Qb2ludGVyU2l6ZUxvZzIpKTsKKysg ICAgfQorKyAgICBmb3IgKHNpemVfdCBuID0gMDsgbiA8IGFyZ3VtZW50cy0+c2l6ZSgpOyArK24p IHsKKysgICAgICBQdXNoUGFyYW1ldGVyIGlucHV0ID0gKCphcmd1bWVudHMpW25dOworKyAgICAg IGlmIChpbnB1dC5ub2RlKSB7CisrICAgICAgICBFbWl0KGtSaXNjdlN0b3JlVG9TdGFja1Nsb3Qs IGcuTm9PdXRwdXQoKSwgZy5Vc2VSZWdpc3RlcihpbnB1dC5ub2RlKSwKKysgICAgICAgICAgICAg Zy5UZW1wSW1tZWRpYXRlKHN0YXRpY19jYXN0PGludD4obiA8PCBrU3lzdGVtUG9pbnRlclNpemVM b2cyKSkpOworKyAgICAgIH0KKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIEluc3RydWN0aW9u U2VsZWN0b3I6OkVtaXRQcmVwYXJlUmVzdWx0cygKKysgICAgWm9uZVZlY3RvcjxQdXNoUGFyYW1l dGVyPiogcmVzdWx0cywgY29uc3QgQ2FsbERlc2NyaXB0b3IqIGNhbGxfZGVzY3JpcHRvciwKKysg ICAgTm9kZSogbm9kZSkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrCisr ICBpbnQgcmV2ZXJzZV9zbG90ID0gMDsKKysgIGZvciAoUHVzaFBhcmFtZXRlciBvdXRwdXQgOiAq cmVzdWx0cykgeworKyAgICBpZiAoIW91dHB1dC5sb2NhdGlvbi5Jc0NhbGxlckZyYW1lU2xvdCgp KSBjb250aW51ZTsKKysgICAgLy8gU2tpcCBhbnkgYWxpZ25tZW50IGhvbGVzIGluIG5vZGVzLgor KyAgICBpZiAob3V0cHV0Lm5vZGUgIT0gbnVsbHB0cikgeworKyAgICAgIERDSEVDSyghY2FsbF9k ZXNjcmlwdG9yLT5Jc0NGdW5jdGlvbkNhbGwoKSk7CisrICAgICAgaWYgKG91dHB1dC5sb2NhdGlv bi5HZXRUeXBlKCkgPT0gTWFjaGluZVR5cGU6OkZsb2F0MzIoKSkgeworKyAgICAgICAgTWFya0Fz RmxvYXQzMihvdXRwdXQubm9kZSk7CisrICAgICAgfSBlbHNlIGlmIChvdXRwdXQubG9jYXRpb24u R2V0VHlwZSgpID09IE1hY2hpbmVUeXBlOjpGbG9hdDY0KCkpIHsKKysgICAgICAgIE1hcmtBc0Zs b2F0NjQob3V0cHV0Lm5vZGUpOworKyAgICAgIH0KKysgICAgICBFbWl0KGtSaXNjdlBlZWssIGcu RGVmaW5lQXNSZWdpc3RlcihvdXRwdXQubm9kZSksCisrICAgICAgICAgICBnLlVzZUltbWVkaWF0 ZShyZXZlcnNlX3Nsb3QpKTsKKysgICAgfQorKyAgICByZXZlcnNlX3Nsb3QgKz0gb3V0cHV0Lmxv Y2F0aW9uLkdldFNpemVJblBvaW50ZXJzKCk7CisrICB9CisrfQorKworK2Jvb2wgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6SXNUYWlsQ2FsbEFkZHJlc3NJbW1lZGlhdGUoKSB7IHJldHVybiBmYWxzZTsg fQorKworK2ludCBJbnN0cnVjdGlvblNlbGVjdG9yOjpHZXRUZW1wc0NvdW50Rm9yVGFpbENhbGxG cm9tSlNGdW5jdGlvbigpIHsgcmV0dXJuIDM7IH0KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0 b3I6OlZpc2l0VW5hbGlnbmVkTG9hZChOb2RlKiBub2RlKSB7CisrICBMb2FkUmVwcmVzZW50YXRp b24gbG9hZF9yZXAgPSBMb2FkUmVwcmVzZW50YXRpb25PZihub2RlLT5vcCgpKTsKKysgIFJpc2N2 T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgTm9kZSogYmFzZSA9IG5vZGUtPklucHV0QXQo MCk7CisrICBOb2RlKiBpbmRleCA9IG5vZGUtPklucHV0QXQoMSk7CisrCisrICBBcmNoT3Bjb2Rl IG9wY29kZSA9IGtBcmNoTm9wOworKyAgc3dpdGNoIChsb2FkX3JlcC5yZXByZXNlbnRhdGlvbigp KSB7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprRmxvYXQzMjoKKysgICAgICBv cGNvZGUgPSBrUmlzY3ZVTG9hZEZsb2F0OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE1hY2hp bmVSZXByZXNlbnRhdGlvbjo6a0Zsb2F0NjQ6CisrICAgICAgb3Bjb2RlID0ga1Jpc2N2VUxvYWRE b3VibGU7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjpr Qml0OiAgLy8gRmFsbCB0aHJvdWdoLgorKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6 a1dvcmQ4OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2Vu dGF0aW9uOjprV29yZDE2OgorKyAgICAgIG9wY29kZSA9IGxvYWRfcmVwLklzVW5zaWduZWQoKSA/ IGtSaXNjdlVsaHUgOiBrUmlzY3ZVbGg7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTWFjaGlu ZVJlcHJlc2VudGF0aW9uOjprV29yZDMyOgorKyAgICAgIG9wY29kZSA9IGxvYWRfcmVwLklzVW5z aWduZWQoKSA/IGtSaXNjdlVsd3UgOiBrUmlzY3ZVbHc7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprVGFnZ2VkU2lnbmVkOiAgIC8vIEZhbGwgdGhyb3Vn aC4KKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtUYWdnZWRQb2ludGVyOiAgLy8g RmFsbCB0aHJvdWdoLgorKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1RhZ2dlZDog ICAgICAgICAvLyBGYWxsIHRocm91Z2guCisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9u OjprV29yZDY0OgorKyAgICAgIG9wY29kZSA9IGtSaXNjdlVsZDsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtTaW1kMTI4OgorKyAgICAgIG9wY29kZSA9 IGtSaXNjdk1zYUxkOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRh dGlvbjo6a0NvbXByZXNzZWRQb2ludGVyOiAgLy8gRmFsbCB0aHJvdWdoLgorKyAgICBjYXNlIE1h Y2hpbmVSZXByZXNlbnRhdGlvbjo6a0NvbXByZXNzZWQ6ICAgICAgICAgLy8gRmFsbCB0aHJvdWdo LgorKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a05vbmU6CisrICAgICAgVU5SRUFD SEFCTEUoKTsKKysgIH0KKysKKysgIGlmIChnLkNhbkJlSW1tZWRpYXRlKGluZGV4LCBvcGNvZGUp KSB7CisrICAgIEVtaXQob3Bjb2RlIHwgQWRkcmVzc2luZ01vZGVGaWVsZDo6ZW5jb2RlKGtNb2Rl X01SSSksCisrICAgICAgICAgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLCBnLlVzZVJlZ2lzdGVy KGJhc2UpLCBnLlVzZUltbWVkaWF0ZShpbmRleCkpOworKyAgfSBlbHNlIHsKKysgICAgSW5zdHJ1 Y3Rpb25PcGVyYW5kIGFkZHJfcmVnID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgICAgRW1pdChrUmlz Y3ZBZGQ2NCB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShrTW9kZV9Ob25lKSwgYWRkcl9y ZWcsCisrICAgICAgICAgZy5Vc2VSZWdpc3RlcihpbmRleCksIGcuVXNlUmVnaXN0ZXIoYmFzZSkp OworKyAgICAvLyBFbWl0IGRlc2lyZWQgbG9hZCBvcGNvZGUsIHVzaW5nIHRlbXAgYWRkcl9yZWcu CisrICAgIEVtaXQob3Bjb2RlIHwgQWRkcmVzc2luZ01vZGVGaWVsZDo6ZW5jb2RlKGtNb2RlX01S SSksCisrICAgICAgICAgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLCBhZGRyX3JlZywgZy5UZW1w SW1tZWRpYXRlKDApKTsKKysgIH0KKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpW aXNpdFVuYWxpZ25lZFN0b3JlKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRv ciBnKHRoaXMpOworKyAgTm9kZSogYmFzZSA9IG5vZGUtPklucHV0QXQoMCk7CisrICBOb2RlKiBp bmRleCA9IG5vZGUtPklucHV0QXQoMSk7CisrICBOb2RlKiB2YWx1ZSA9IG5vZGUtPklucHV0QXQo Mik7CisrCisrICBVbmFsaWduZWRTdG9yZVJlcHJlc2VudGF0aW9uIHJlcCA9IFVuYWxpZ25lZFN0 b3JlUmVwcmVzZW50YXRpb25PZihub2RlLT5vcCgpKTsKKysgIEFyY2hPcGNvZGUgb3Bjb2RlID0g a0FyY2hOb3A7CisrICBzd2l0Y2ggKHJlcCkgeworKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRh dGlvbjo6a0Zsb2F0MzI6CisrICAgICAgb3Bjb2RlID0ga1Jpc2N2VVN0b3JlRmxvYXQ7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprRmxvYXQ2NDoKKysg ICAgICBvcGNvZGUgPSBrUmlzY3ZVU3RvcmVEb3VibGU7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprQml0OiAgLy8gRmFsbCB0aHJvdWdoLgorKyAgICBj YXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1dvcmQ4OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7 CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDE2OgorKyAgICAgIG9wY29k ZSA9IGtSaXNjdlVzaDsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50 YXRpb246OmtXb3JkMzI6CisrICAgICAgb3Bjb2RlID0ga1Jpc2N2VXN3OworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1RhZ2dlZFNpZ25lZDogICAvLyBG YWxsIHRocm91Z2guCisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprVGFnZ2VkUG9p bnRlcjogIC8vIEZhbGwgdGhyb3VnaC4KKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246 OmtUYWdnZWQ6ICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorKyAgICBjYXNlIE1hY2hpbmVSZXBy ZXNlbnRhdGlvbjo6a1dvcmQ2NDoKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZVc2Q7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprU2ltZDEyODoKKysgICAg ICBvcGNvZGUgPSBrUmlzY3ZNc2FTdDsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBNYWNoaW5l UmVwcmVzZW50YXRpb246OmtDb21wcmVzc2VkUG9pbnRlcjogIC8vIEZhbGwgdGhyb3VnaC4KKysg ICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtDb21wcmVzc2VkOiAgICAgICAgIC8vIEZh bGwgdGhyb3VnaC4KKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtOb25lOgorKyAg ICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9CisrCisrICBpZiAoZy5DYW5CZUltbWVkaWF0ZShpbmRl eCwgb3Bjb2RlKSkgeworKyAgICBFbWl0KG9wY29kZSB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVu Y29kZShrTW9kZV9NUkkpLCBnLk5vT3V0cHV0KCksCisrICAgICAgICAgZy5Vc2VSZWdpc3Rlcihi YXNlKSwgZy5Vc2VJbW1lZGlhdGUoaW5kZXgpLAorKyAgICAgICAgIGcuVXNlUmVnaXN0ZXJPcklt bWVkaWF0ZVplcm8odmFsdWUpKTsKKysgIH0gZWxzZSB7CisrICAgIEluc3RydWN0aW9uT3BlcmFu ZCBhZGRyX3JlZyA9IGcuVGVtcFJlZ2lzdGVyKCk7CisrICAgIEVtaXQoa1Jpc2N2QWRkNjQgfCBB ZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTm9uZSksIGFkZHJfcmVnLAorKyAgICAg ICAgIGcuVXNlUmVnaXN0ZXIoaW5kZXgpLCBnLlVzZVJlZ2lzdGVyKGJhc2UpKTsKKysgICAgLy8g RW1pdCBkZXNpcmVkIHN0b3JlIG9wY29kZSwgdXNpbmcgdGVtcCBhZGRyX3JlZy4KKysgICAgRW1p dChvcGNvZGUgfCBBZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTVJJKSwgZy5Ob091 dHB1dCgpLAorKyAgICAgICAgIGFkZHJfcmVnLCBnLlRlbXBJbW1lZGlhdGUoMCksIGcuVXNlUmVn aXN0ZXJPckltbWVkaWF0ZVplcm8odmFsdWUpKTsKKysgIH0KKyt9CisrCisrbmFtZXNwYWNlIHsK KysKKysvLyBTaGFyZWQgcm91dGluZSBmb3IgbXVsdGlwbGUgY29tcGFyZSBvcGVyYXRpb25zLgor K3N0YXRpYyB2b2lkIFZpc2l0Q29tcGFyZShJbnN0cnVjdGlvblNlbGVjdG9yKiBzZWxlY3Rvciwg SW5zdHJ1Y3Rpb25Db2RlIG9wY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdHJ1 Y3Rpb25PcGVyYW5kIGxlZnQsIEluc3RydWN0aW9uT3BlcmFuZCByaWdodCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgRmxhZ3NDb250aW51YXRpb24qIGNvbnQpIHsKKysgIHNlbGVjdG9yLT5F bWl0V2l0aENvbnRpbnVhdGlvbihvcGNvZGUsIGxlZnQsIHJpZ2h0LCBjb250KTsKKyt9CisrCisr Ly8gU2hhcmVkIHJvdXRpbmUgZm9yIG11bHRpcGxlIGZsb2F0MzIgY29tcGFyZSBvcGVyYXRpb25z LgorK3ZvaWQgVmlzaXRGbG9hdDMyQ29tcGFyZShJbnN0cnVjdGlvblNlbGVjdG9yKiBzZWxlY3Rv ciwgTm9kZSogbm9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3NDb250aW51YXRp b24qIGNvbnQpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9yKTsKKysgIEZs b2F0MzJCaW5vcE1hdGNoZXIgbShub2RlKTsKKysgIEluc3RydWN0aW9uT3BlcmFuZCBsaHMsIHJo czsKKysKKysgIGxocyA9IG0ubGVmdCgpLklzWmVybygpID8gZy5Vc2VJbW1lZGlhdGUobS5sZWZ0 KCkubm9kZSgpKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnLlVzZVJlZ2lzdGVyKG0u bGVmdCgpLm5vZGUoKSk7CisrICByaHMgPSBtLnJpZ2h0KCkuSXNaZXJvKCkgPyBnLlVzZUltbWVk aWF0ZShtLnJpZ2h0KCkubm9kZSgpKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZy5V c2VSZWdpc3RlcihtLnJpZ2h0KCkubm9kZSgpKTsKKysgIFZpc2l0Q29tcGFyZShzZWxlY3Rvciwg a1Jpc2N2Q21wUywgbGhzLCByaHMsIGNvbnQpOworK30KKysKKysvLyBTaGFyZWQgcm91dGluZSBm b3IgbXVsdGlwbGUgZmxvYXQ2NCBjb21wYXJlIG9wZXJhdGlvbnMuCisrdm9pZCBWaXNpdEZsb2F0 NjRDb21wYXJlKEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBOb2RlKiBub2RlLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICBGbGFnc0NvbnRpbnVhdGlvbiogY29udCkgeworKyAgUmlz Y3ZPcGVyYW5kR2VuZXJhdG9yIGcoc2VsZWN0b3IpOworKyAgRmxvYXQ2NEJpbm9wTWF0Y2hlciBt KG5vZGUpOworKyAgSW5zdHJ1Y3Rpb25PcGVyYW5kIGxocywgcmhzOworKworKyAgbGhzID0gbS5s ZWZ0KCkuSXNaZXJvKCkgPyBnLlVzZUltbWVkaWF0ZShtLmxlZnQoKS5ub2RlKCkpCisrICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGcuVXNlUmVnaXN0ZXIobS5sZWZ0KCkubm9kZSgpKTsKKysg IHJocyA9IG0ucmlnaHQoKS5Jc1plcm8oKSA/IGcuVXNlSW1tZWRpYXRlKG0ucmlnaHQoKS5ub2Rl KCkpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnLlVzZVJlZ2lzdGVyKG0ucmlnaHQo KS5ub2RlKCkpOworKyAgVmlzaXRDb21wYXJlKHNlbGVjdG9yLCBrUmlzY3ZDbXBELCBsaHMsIHJo cywgY29udCk7CisrfQorKworKy8vIFNoYXJlZCByb3V0aW5lIGZvciBtdWx0aXBsZSB3b3JkIGNv bXBhcmUgb3BlcmF0aW9ucy4KKyt2b2lkIFZpc2l0V29yZENvbXBhcmUoSW5zdHJ1Y3Rpb25TZWxl Y3Rvciogc2VsZWN0b3IsIE5vZGUqIG5vZGUsCisrICAgICAgICAgICAgICAgICAgICAgIEluc3Ry dWN0aW9uQ29kZSBvcGNvZGUsIEZsYWdzQ29udGludWF0aW9uKiBjb250LAorKyAgICAgICAgICAg ICAgICAgICAgICBib29sIGNvbW11dGF0aXZlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3Ig ZyhzZWxlY3Rvcik7CisrICBOb2RlKiBsZWZ0ID0gbm9kZS0+SW5wdXRBdCgwKTsKKysgIE5vZGUq IHJpZ2h0ID0gbm9kZS0+SW5wdXRBdCgxKTsKKysKKysgIC8vIE1hdGNoIGltbWVkaWF0ZXMgb24g bGVmdCBvciByaWdodCBzaWRlIG9mIGNvbXBhcmlzb24uCisrICBpZiAoZy5DYW5CZUltbWVkaWF0 ZShyaWdodCwgb3Bjb2RlKSkgeworKyAgICBpZiAob3Bjb2RlID09IGtSaXNjdlRzdCkgeworKyAg ICAgIFZpc2l0Q29tcGFyZShzZWxlY3Rvciwgb3Bjb2RlLCBnLlVzZVJlZ2lzdGVyKGxlZnQpLCBn LlVzZUltbWVkaWF0ZShyaWdodCksCisrICAgICAgICAgICAgICAgICAgIGNvbnQpOworKyAgICB9 IGVsc2UgeworKyAgICAgIHN3aXRjaCAoY29udC0+Y29uZGl0aW9uKCkpIHsKKysgICAgICAgIGNh c2Uga0VxdWFsOgorKyAgICAgICAgY2FzZSBrTm90RXF1YWw6CisrICAgICAgICAgIGlmIChjb250 LT5Jc1NldCgpKSB7CisrICAgICAgICAgICAgVmlzaXRDb21wYXJlKHNlbGVjdG9yLCBvcGNvZGUs IGcuVXNlUmVnaXN0ZXIobGVmdCksCisrICAgICAgICAgICAgICAgICAgICAgICAgIGcuVXNlSW1t ZWRpYXRlKHJpZ2h0KSwgY29udCk7CisrICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAg VmlzaXRDb21wYXJlKHNlbGVjdG9yLCBvcGNvZGUsIGcuVXNlUmVnaXN0ZXIobGVmdCksCisrICAg ICAgICAgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXIocmlnaHQpLCBjb250KTsKKysgICAg ICAgICAgfQorKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2Uga1NpZ25lZExlc3NUaGFu OgorKyAgICAgICAgY2FzZSBrU2lnbmVkR3JlYXRlclRoYW5PckVxdWFsOgorKyAgICAgICAgY2Fz ZSBrVW5zaWduZWRMZXNzVGhhbjoKKysgICAgICAgIGNhc2Uga1Vuc2lnbmVkR3JlYXRlclRoYW5P ckVxdWFsOgorKyAgICAgICAgICBWaXNpdENvbXBhcmUoc2VsZWN0b3IsIG9wY29kZSwgZy5Vc2VS ZWdpc3RlcihsZWZ0KSwKKysgICAgICAgICAgICAgICAgICAgICAgIGcuVXNlSW1tZWRpYXRlKHJp Z2h0KSwgY29udCk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZGVmYXVsdDoKKysgICAg ICAgICAgVmlzaXRDb21wYXJlKHNlbGVjdG9yLCBvcGNvZGUsIGcuVXNlUmVnaXN0ZXIobGVmdCks CisrICAgICAgICAgICAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVyKHJpZ2h0KSwgY29udCk7Cisr ICAgICAgfQorKyAgICB9CisrICB9IGVsc2UgaWYgKGcuQ2FuQmVJbW1lZGlhdGUobGVmdCwgb3Bj b2RlKSkgeworKyAgICBpZiAoIWNvbW11dGF0aXZlKSBjb250LT5Db21tdXRlKCk7CisrICAgIGlm IChvcGNvZGUgPT0ga1Jpc2N2VHN0KSB7CisrICAgICAgVmlzaXRDb21wYXJlKHNlbGVjdG9yLCBv cGNvZGUsIGcuVXNlUmVnaXN0ZXIocmlnaHQpLCBnLlVzZUltbWVkaWF0ZShsZWZ0KSwKKysgICAg ICAgICAgICAgICAgICAgY29udCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgc3dpdGNoIChjb250 LT5jb25kaXRpb24oKSkgeworKyAgICAgICAgY2FzZSBrRXF1YWw6CisrICAgICAgICBjYXNlIGtO b3RFcXVhbDoKKysgICAgICAgICAgaWYgKGNvbnQtPklzU2V0KCkpIHsKKysgICAgICAgICAgICBW aXNpdENvbXBhcmUoc2VsZWN0b3IsIG9wY29kZSwgZy5Vc2VSZWdpc3RlcihyaWdodCksCisrICAg ICAgICAgICAgICAgICAgICAgICAgIGcuVXNlSW1tZWRpYXRlKGxlZnQpLCBjb250KTsKKysgICAg ICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBWaXNpdENvbXBhcmUoc2VsZWN0b3IsIG9wY29k ZSwgZy5Vc2VSZWdpc3RlcihyaWdodCksCisrICAgICAgICAgICAgICAgICAgICAgICAgIGcuVXNl UmVnaXN0ZXIobGVmdCksIGNvbnQpOworKyAgICAgICAgICB9CisrICAgICAgICAgIGJyZWFrOwor KyAgICAgICAgY2FzZSBrU2lnbmVkTGVzc1RoYW46CisrICAgICAgICBjYXNlIGtTaWduZWRHcmVh dGVyVGhhbk9yRXF1YWw6CisrICAgICAgICBjYXNlIGtVbnNpZ25lZExlc3NUaGFuOgorKyAgICAg ICAgY2FzZSBrVW5zaWduZWRHcmVhdGVyVGhhbk9yRXF1YWw6CisrICAgICAgICAgIFZpc2l0Q29t cGFyZShzZWxlY3Rvciwgb3Bjb2RlLCBnLlVzZVJlZ2lzdGVyKHJpZ2h0KSwKKysgICAgICAgICAg ICAgICAgICAgICAgIGcuVXNlSW1tZWRpYXRlKGxlZnQpLCBjb250KTsKKysgICAgICAgICAgYnJl YWs7CisrICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICBWaXNpdENvbXBhcmUoc2VsZWN0b3Is IG9wY29kZSwgZy5Vc2VSZWdpc3RlcihyaWdodCksCisrICAgICAgICAgICAgICAgICAgICAgICBn LlVzZVJlZ2lzdGVyKGxlZnQpLCBjb250KTsKKysgICAgICB9CisrICAgIH0KKysgIH0gZWxzZSB7 CisrICAgIFZpc2l0Q29tcGFyZShzZWxlY3Rvciwgb3Bjb2RlLCBnLlVzZVJlZ2lzdGVyKGxlZnQp LCBnLlVzZVJlZ2lzdGVyKHJpZ2h0KSwKKysgICAgICAgICAgICAgICAgIGNvbnQpOworKyAgfQor K30KKysKKytib29sIElzTm9kZVVuc2lnbmVkKE5vZGUqIG4pIHsKKysgIE5vZGVNYXRjaGVyIG0o bik7CisrCisrICBpZiAobS5Jc0xvYWQoKSB8fCBtLklzVW5hbGlnbmVkTG9hZCgpIHx8IG0uSXNQ b2lzb25lZExvYWQoKSB8fAorKyAgICAgIG0uSXNQcm90ZWN0ZWRMb2FkKCkgfHwgbS5Jc1dvcmQz MkF0b21pY0xvYWQoKSB8fCBtLklzV29yZDY0QXRvbWljTG9hZCgpKSB7CisrICAgIExvYWRSZXBy ZXNlbnRhdGlvbiBsb2FkX3JlcCA9IExvYWRSZXByZXNlbnRhdGlvbk9mKG4tPm9wKCkpOworKyAg ICByZXR1cm4gbG9hZF9yZXAuSXNVbnNpZ25lZCgpOworKyAgfSBlbHNlIHsKKysgICAgcmV0dXJu IG0uSXNVaW50MzJEaXYoKSB8fCBtLklzVWludDMyTGVzc1RoYW4oKSB8fAorKyAgICAgICAgICAg bS5Jc1VpbnQzMkxlc3NUaGFuT3JFcXVhbCgpIHx8IG0uSXNVaW50MzJNb2QoKSB8fAorKyAgICAg ICAgICAgbS5Jc1VpbnQzMk11bEhpZ2goKSB8fCBtLklzQ2hhbmdlRmxvYXQ2NFRvVWludDMyKCkg fHwKKysgICAgICAgICAgIG0uSXNUcnVuY2F0ZUZsb2F0NjRUb1VpbnQzMigpIHx8IG0uSXNUcnVu Y2F0ZUZsb2F0MzJUb1VpbnQzMigpOworKyAgfQorK30KKysKKysvLyBTaGFyZWQgcm91dGluZSBm b3IgbXVsdGlwbGUgd29yZCBjb21wYXJlIG9wZXJhdGlvbnMuCisrdm9pZCBWaXNpdEZ1bGxXb3Jk MzJDb21wYXJlKEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBOb2RlKiBub2RlLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0cnVjdGlvbkNvZGUgb3Bjb2RlLCBGbGFnc0Nv bnRpbnVhdGlvbiogY29udCkgeworKyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcoc2VsZWN0b3Ip OworKyAgSW5zdHJ1Y3Rpb25PcGVyYW5kIGxlZnRPcCA9IGcuVGVtcFJlZ2lzdGVyKCk7CisrICBJ bnN0cnVjdGlvbk9wZXJhbmQgcmlnaHRPcCA9IGcuVGVtcFJlZ2lzdGVyKCk7CisrCisrICBzZWxl Y3Rvci0+RW1pdChrUmlzY3ZTaGw2NCwgbGVmdE9wLCBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0 QXQoMCkpLAorKyAgICAgICAgICAgICAgICAgZy5UZW1wSW1tZWRpYXRlKDMyKSk7CisrICBzZWxl Y3Rvci0+RW1pdChrUmlzY3ZTaGw2NCwgcmlnaHRPcCwgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1 dEF0KDEpKSwKKysgICAgICAgICAgICAgICAgIGcuVGVtcEltbWVkaWF0ZSgzMikpOworKworKyAg VmlzaXRDb21wYXJlKHNlbGVjdG9yLCBvcGNvZGUsIGxlZnRPcCwgcmlnaHRPcCwgY29udCk7Cisr fQorKworK3ZvaWQgVmlzaXRPcHRpbWl6ZWRXb3JkMzJDb21wYXJlKEluc3RydWN0aW9uU2VsZWN0 b3IqIHNlbGVjdG9yLCBOb2RlKiBub2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluc3RydWN0aW9uQ29kZSBvcGNvZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmxhZ3NDb250aW51YXRpb24qIGNvbnQpIHsKKysgIGlmIChGTEFHX2RlYnVnX2NvZGUp IHsKKysgICAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcoc2VsZWN0b3IpOworKyAgICBJbnN0cnVj dGlvbk9wZXJhbmQgbGVmdE9wID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgICAgSW5zdHJ1Y3Rpb25P cGVyYW5kIHJpZ2h0T3AgPSBnLlRlbXBSZWdpc3RlcigpOworKyAgICBJbnN0cnVjdGlvbk9wZXJh bmQgb3B0aW1pemVkUmVzdWx0ID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgICAgSW5zdHJ1Y3Rpb25P cGVyYW5kIGZ1bGxSZXN1bHQgPSBnLlRlbXBSZWdpc3RlcigpOworKyAgICBGbGFnc0NvbmRpdGlv biBjb25kaXRpb24gPSBjb250LT5jb25kaXRpb24oKTsKKysgICAgSW5zdHJ1Y3Rpb25Db2RlIHRl c3RPcGNvZGUgPSBvcGNvZGUgfAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZs YWdzQ29uZGl0aW9uRmllbGQ6OmVuY29kZShjb25kaXRpb24pIHwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGbGFnc01vZGVGaWVsZDo6ZW5jb2RlKGtGbGFnc19zZXQpOworKwor KyAgICBzZWxlY3Rvci0+RW1pdCh0ZXN0T3Bjb2RlLCBvcHRpbWl6ZWRSZXN1bHQsIGcuVXNlUmVn aXN0ZXIobm9kZS0+SW5wdXRBdCgwKSksCisrICAgICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0 ZXIobm9kZS0+SW5wdXRBdCgxKSkpOworKworKyAgICBzZWxlY3Rvci0+RW1pdChrUmlzY3ZTaGw2 NCwgbGVmdE9wLCBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkpLAorKyAgICAgICAgICAg ICAgICAgICBnLlRlbXBJbW1lZGlhdGUoMzIpKTsKKysgICAgc2VsZWN0b3ItPkVtaXQoa1Jpc2N2 U2hsNjQsIHJpZ2h0T3AsIGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgxKSksCisrICAgICAg ICAgICAgICAgICAgIGcuVGVtcEltbWVkaWF0ZSgzMikpOworKyAgICBzZWxlY3Rvci0+RW1pdCh0 ZXN0T3Bjb2RlLCBmdWxsUmVzdWx0LCBsZWZ0T3AsIHJpZ2h0T3ApOworKworKyAgICBzZWxlY3Rv ci0+RW1pdChrUmlzY3ZBc3NlcnRFcXVhbCwgZy5Ob091dHB1dCgpLCBvcHRpbWl6ZWRSZXN1bHQs IGZ1bGxSZXN1bHQsCisrICAgICAgICAgICAgICAgICAgIGcuVGVtcEltbWVkaWF0ZShzdGF0aWNf Y2FzdDxpbnQ+KAorKyAgICAgICAgICAgICAgICAgICAgICAgQWJvcnRSZWFzb246OmtVbnN1cHBv cnRlZE5vblByaW1pdGl2ZUNvbXBhcmUpKSk7CisrICB9CisrCisrICBWaXNpdFdvcmRDb21wYXJl KHNlbGVjdG9yLCBub2RlLCBvcGNvZGUsIGNvbnQsIGZhbHNlKTsKKyt9CisrCisrdm9pZCBWaXNp dFdvcmQzMkNvbXBhcmUoSW5zdHJ1Y3Rpb25TZWxlY3Rvciogc2VsZWN0b3IsIE5vZGUqIG5vZGUs CisrICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3NDb250aW51YXRpb24qIGNvbnQpIHsKKysg IC8vIFJJU0MtViBkb2Vzbid0IHN1cHBvcnQgV29yZDMyIGNvbXBhcmUgaW5zdHJ1Y3Rpb25zLiBJ bnN0ZWFkIGl0IHJlbGllcworKyAgLy8gdGhhdCB0aGUgdmFsdWVzIGluIHJlZ2lzdGVycyBhcmUg Y29ycmVjdGx5IHNpZ24tZXh0ZW5kZWQgYW5kIHVzZXMKKysgIC8vIFdvcmQ2NCBjb21wYXJpc29u IGluc3RlYWQuIFRoaXMgYmVoYXZpb3IgaXMgY29ycmVjdCBpbiBtb3N0IGNhc2VzLAorKyAgLy8g YnV0IGRvZXNuJ3Qgd29yayB3aGVuIGNvbXBhcmluZyBzaWduZWQgd2l0aCB1bnNpZ25lZCBvcGVy YW5kcy4KKysgIC8vIFdlIGNvdWxkIHNpbXVsYXRlIGZ1bGwgV29yZDMyIGNvbXBhcmUgaW4gYWxs IGNhc2VzIGJ1dCB0aGlzIHdvdWxkCisrICAvLyBjcmVhdGUgYW4gdW5uZWNlc3Nhcnkgb3Zlcmhl YWQgc2luY2UgdW5zaWduZWQgaW50ZWdlcnMgYXJlIHJhcmVseQorKyAgLy8gdXNlZCBpbiBKYXZh U2NyaXB0LgorKyAgLy8gVGhlIHNvbHV0aW9uIHByb3Bvc2VkIGhlcmUgdHJpZXMgdG8gbWF0Y2gg YSBjb21wYXJpc29uIG9mIHNpZ25lZAorKyAgLy8gd2l0aCB1bnNpZ25lZCBvcGVyYW5kLCBhbmQg cGVyZm9ybSBmdWxsIFdvcmQzMkNvbXBhcmUgb25seQorKyAgLy8gaW4gdGhvc2UgY2FzZXMuIFVu Zm9ydHVuYXRlbHksIHRoZSBzb2x1dGlvbiBpcyBub3QgY29tcGxldGUgYmVjYXVzZQorKyAgLy8g aXQgbWlnaHQgc2tpcCBjYXNlcyB3aGVyZSBXb3JkMzIgZnVsbCBjb21wYXJlIGlzIG5lZWRlZCwg c28KKysgIC8vIGJhc2ljYWxseSBpdCBpcyBhIGhhY2suCisrICAvLyBXaGVuIGNhbGwgdG8gYSBo b3N0IGZ1bmN0aW9uIGluIHNpbXVsYXRvciwgaWYgdGhlIGZ1bmN0aW9uIHJldHVybiBhCisrICAv LyBpbnQzMiB2YWx1ZSwgdGhlIHNpbXVsYXRvciBkbyBub3Qgc2lnbi1leHRlbmRlZCB0byBpbnQ2 NCBiZWNhdXNlIGluCisrICAvLyBzaW11bGF0b3Igd2UgZG8gbm90IGtub3cgdGhlIGZ1bmN0aW9u IHdoZXRoZXIgcmV0dXJuIGEgaW50MzIgb3IgaW50NjQuCisrICAvLyBzbyB3ZSBuZWVkIGRvIGEg ZnVsbCB3b3JkMzIgY29tcGFyZSBpbiB0aGlzIGNhc2UuCisrI2lmbmRlZiBVU0VfU0lNVUxBVE9S CisrICBpZiAoSXNOb2RlVW5zaWduZWQobm9kZS0+SW5wdXRBdCgwKSkgIT0gSXNOb2RlVW5zaWdu ZWQobm9kZS0+SW5wdXRBdCgxKSkpIHsKKysjZWxzZQorKyAgaWYgKElzTm9kZVVuc2lnbmVkKG5v ZGUtPklucHV0QXQoMCkpICE9IElzTm9kZVVuc2lnbmVkKG5vZGUtPklucHV0QXQoMSkpIHx8Cisr ICAgICAgbm9kZS0+SW5wdXRBdCgwKS0+b3Bjb2RlKCkgPT0gSXJPcGNvZGU6OmtDYWxsIHx8Cisr ICAgICAgbm9kZS0+SW5wdXRBdCgxKS0+b3Bjb2RlKCkgPT0gSXJPcGNvZGU6OmtDYWxsKSB7Cisr I2VuZGlmCisrICAgIFZpc2l0RnVsbFdvcmQzMkNvbXBhcmUoc2VsZWN0b3IsIG5vZGUsIGtSaXNj dkNtcCwgY29udCk7CisrICB9IGVsc2UgeworKyAgICBWaXNpdE9wdGltaXplZFdvcmQzMkNvbXBh cmUoc2VsZWN0b3IsIG5vZGUsIGtSaXNjdkNtcCwgY29udCk7CisrICB9CisrfQorKworK3ZvaWQg VmlzaXRXb3JkNjRDb21wYXJlKEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBOb2RlKiBu b2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzQ29udGludWF0aW9uKiBjb250KSB7 CisrICBWaXNpdFdvcmRDb21wYXJlKHNlbGVjdG9yLCBub2RlLCBrUmlzY3ZDbXAsIGNvbnQsIGZh bHNlKTsKKyt9CisrCisrdm9pZCBFbWl0V29yZENvbXBhcmVaZXJvKEluc3RydWN0aW9uU2VsZWN0 b3IqIHNlbGVjdG9yLCBOb2RlKiB2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgRmxh Z3NDb250aW51YXRpb24qIGNvbnQpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVj dG9yKTsKKysgIHNlbGVjdG9yLT5FbWl0V2l0aENvbnRpbnVhdGlvbihrUmlzY3ZDbXAsIGcuVXNl UmVnaXN0ZXIodmFsdWUpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcuVGVt cEltbWVkaWF0ZSgwKSwgY29udCk7CisrfQorKworK3ZvaWQgVmlzaXRBdG9taWNMb2FkKEluc3Ry dWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBOb2RlKiBub2RlLAorKyAgICAgICAgICAgICAgICAg ICAgIEFyY2hPcGNvZGUgb3Bjb2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyhzZWxl Y3Rvcik7CisrICBOb2RlKiBiYXNlID0gbm9kZS0+SW5wdXRBdCgwKTsKKysgIE5vZGUqIGluZGV4 ID0gbm9kZS0+SW5wdXRBdCgxKTsKKysgIGlmIChnLkNhbkJlSW1tZWRpYXRlKGluZGV4LCBvcGNv ZGUpKSB7CisrICAgIHNlbGVjdG9yLT5FbWl0KG9wY29kZSB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6 OmVuY29kZShrTW9kZV9NUkkpLAorKyAgICAgICAgICAgICAgICAgICBnLkRlZmluZUFzUmVnaXN0 ZXIobm9kZSksIGcuVXNlUmVnaXN0ZXIoYmFzZSksCisrICAgICAgICAgICAgICAgICAgIGcuVXNl SW1tZWRpYXRlKGluZGV4KSk7CisrICB9IGVsc2UgeworKyAgICBJbnN0cnVjdGlvbk9wZXJhbmQg YWRkcl9yZWcgPSBnLlRlbXBSZWdpc3RlcigpOworKyAgICBzZWxlY3Rvci0+RW1pdChrUmlzY3ZB ZGQ2NCB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShrTW9kZV9Ob25lKSwKKysgICAgICAg ICAgICAgICAgICAgYWRkcl9yZWcsIGcuVXNlUmVnaXN0ZXIoaW5kZXgpLCBnLlVzZVJlZ2lzdGVy KGJhc2UpKTsKKysgICAgLy8gRW1pdCBkZXNpcmVkIGxvYWQgb3Bjb2RlLCB1c2luZyB0ZW1wIGFk ZHJfcmVnLgorKyAgICBzZWxlY3Rvci0+RW1pdChvcGNvZGUgfCBBZGRyZXNzaW5nTW9kZUZpZWxk OjplbmNvZGUoa01vZGVfTVJJKSwKKysgICAgICAgICAgICAgICAgICAgZy5EZWZpbmVBc1JlZ2lz dGVyKG5vZGUpLCBhZGRyX3JlZywgZy5UZW1wSW1tZWRpYXRlKDApKTsKKysgIH0KKyt9CisrCisr dm9pZCBWaXNpdEF0b21pY1N0b3JlKEluc3RydWN0aW9uU2VsZWN0b3IqIHNlbGVjdG9yLCBOb2Rl KiBub2RlLAorKyAgICAgICAgICAgICAgICAgICAgICBBcmNoT3Bjb2RlIG9wY29kZSkgeworKyAg UmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcoc2VsZWN0b3IpOworKyAgTm9kZSogYmFzZSA9IG5vZGUt PklucHV0QXQoMCk7CisrICBOb2RlKiBpbmRleCA9IG5vZGUtPklucHV0QXQoMSk7CisrICBOb2Rl KiB2YWx1ZSA9IG5vZGUtPklucHV0QXQoMik7CisrCisrICBpZiAoZy5DYW5CZUltbWVkaWF0ZShp bmRleCwgb3Bjb2RlKSkgeworKyAgICBzZWxlY3Rvci0+RW1pdChvcGNvZGUgfCBBZGRyZXNzaW5n TW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTVJJKSwKKysgICAgICAgICAgICAgICAgICAgZy5Ob091 dHB1dCgpLCBnLlVzZVJlZ2lzdGVyKGJhc2UpLCBnLlVzZUltbWVkaWF0ZShpbmRleCksCisrICAg ICAgICAgICAgICAgICAgIGcuVXNlUmVnaXN0ZXJPckltbWVkaWF0ZVplcm8odmFsdWUpKTsKKysg IH0gZWxzZSB7CisrICAgIEluc3RydWN0aW9uT3BlcmFuZCBhZGRyX3JlZyA9IGcuVGVtcFJlZ2lz dGVyKCk7CisrICAgIHNlbGVjdG9yLT5FbWl0KGtSaXNjdkFkZDY0IHwgQWRkcmVzc2luZ01vZGVG aWVsZDo6ZW5jb2RlKGtNb2RlX05vbmUpLAorKyAgICAgICAgICAgICAgICAgICBhZGRyX3JlZywg Zy5Vc2VSZWdpc3RlcihpbmRleCksIGcuVXNlUmVnaXN0ZXIoYmFzZSkpOworKyAgICAvLyBFbWl0 IGRlc2lyZWQgc3RvcmUgb3Bjb2RlLCB1c2luZyB0ZW1wIGFkZHJfcmVnLgorKyAgICBzZWxlY3Rv ci0+RW1pdChvcGNvZGUgfCBBZGRyZXNzaW5nTW9kZUZpZWxkOjplbmNvZGUoa01vZGVfTVJJKSwK KysgICAgICAgICAgICAgICAgICAgZy5Ob091dHB1dCgpLCBhZGRyX3JlZywgZy5UZW1wSW1tZWRp YXRlKDApLAorKyAgICAgICAgICAgICAgICAgICBnLlVzZVJlZ2lzdGVyT3JJbW1lZGlhdGVaZXJv KHZhbHVlKSk7CisrICB9CisrfQorKworK3ZvaWQgVmlzaXRBdG9taWNFeGNoYW5nZShJbnN0cnVj dGlvblNlbGVjdG9yKiBzZWxlY3RvciwgTm9kZSogbm9kZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgQXJjaE9wY29kZSBvcGNvZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNl bGVjdG9yKTsKKysgIE5vZGUqIGJhc2UgPSBub2RlLT5JbnB1dEF0KDApOworKyAgTm9kZSogaW5k ZXggPSBub2RlLT5JbnB1dEF0KDEpOworKyAgTm9kZSogdmFsdWUgPSBub2RlLT5JbnB1dEF0KDIp OworKworKyAgQWRkcmVzc2luZ01vZGUgYWRkcmVzc2luZ19tb2RlID0ga01vZGVfTVJJOworKyAg SW5zdHJ1Y3Rpb25PcGVyYW5kIGlucHV0c1szXTsKKysgIHNpemVfdCBpbnB1dF9jb3VudCA9IDA7 CisrICBpbnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKGJhc2UpOwor KyAgaW5wdXRzW2lucHV0X2NvdW50KytdID0gZy5Vc2VVbmlxdWVSZWdpc3RlcihpbmRleCk7Cisr ICBpbnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKHZhbHVlKTsKKysg IEluc3RydWN0aW9uT3BlcmFuZCBvdXRwdXRzWzFdOworKyAgb3V0cHV0c1swXSA9IGcuVXNlVW5p cXVlUmVnaXN0ZXIobm9kZSk7CisrICBJbnN0cnVjdGlvbk9wZXJhbmQgdGVtcFszXTsKKysgIHRl bXBbMF0gPSBnLlRlbXBSZWdpc3RlcigpOworKyAgdGVtcFsxXSA9IGcuVGVtcFJlZ2lzdGVyKCk7 CisrICB0ZW1wWzJdID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgIEluc3RydWN0aW9uQ29kZSBjb2Rl ID0gb3Bjb2RlIHwgQWRkcmVzc2luZ01vZGVGaWVsZDo6ZW5jb2RlKGFkZHJlc3NpbmdfbW9kZSk7 CisrICBzZWxlY3Rvci0+RW1pdChjb2RlLCAxLCBvdXRwdXRzLCBpbnB1dF9jb3VudCwgaW5wdXRz LCAzLCB0ZW1wKTsKKyt9CisrCisrdm9pZCBWaXNpdEF0b21pY0NvbXBhcmVFeGNoYW5nZShJbnN0 cnVjdGlvblNlbGVjdG9yKiBzZWxlY3RvciwgTm9kZSogbm9kZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFyY2hPcGNvZGUgb3Bjb2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5l cmF0b3IgZyhzZWxlY3Rvcik7CisrICBOb2RlKiBiYXNlID0gbm9kZS0+SW5wdXRBdCgwKTsKKysg IE5vZGUqIGluZGV4ID0gbm9kZS0+SW5wdXRBdCgxKTsKKysgIE5vZGUqIG9sZF92YWx1ZSA9IG5v ZGUtPklucHV0QXQoMik7CisrICBOb2RlKiBuZXdfdmFsdWUgPSBub2RlLT5JbnB1dEF0KDMpOwor KworKyAgQWRkcmVzc2luZ01vZGUgYWRkcmVzc2luZ19tb2RlID0ga01vZGVfTVJJOworKyAgSW5z dHJ1Y3Rpb25PcGVyYW5kIGlucHV0c1s0XTsKKysgIHNpemVfdCBpbnB1dF9jb3VudCA9IDA7Cisr ICBpbnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKGJhc2UpOworKyAg aW5wdXRzW2lucHV0X2NvdW50KytdID0gZy5Vc2VVbmlxdWVSZWdpc3RlcihpbmRleCk7CisrICBp bnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKG9sZF92YWx1ZSk7Cisr ICBpbnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKG5ld192YWx1ZSk7 CisrICBJbnN0cnVjdGlvbk9wZXJhbmQgb3V0cHV0c1sxXTsKKysgIG91dHB1dHNbMF0gPSBnLlVz ZVVuaXF1ZVJlZ2lzdGVyKG5vZGUpOworKyAgSW5zdHJ1Y3Rpb25PcGVyYW5kIHRlbXBbM107Cisr ICB0ZW1wWzBdID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgIHRlbXBbMV0gPSBnLlRlbXBSZWdpc3Rl cigpOworKyAgdGVtcFsyXSA9IGcuVGVtcFJlZ2lzdGVyKCk7CisrICBJbnN0cnVjdGlvbkNvZGUg Y29kZSA9IG9wY29kZSB8IEFkZHJlc3NpbmdNb2RlRmllbGQ6OmVuY29kZShhZGRyZXNzaW5nX21v ZGUpOworKyAgc2VsZWN0b3ItPkVtaXQoY29kZSwgMSwgb3V0cHV0cywgaW5wdXRfY291bnQsIGlu cHV0cywgMywgdGVtcCk7CisrfQorKworK3ZvaWQgVmlzaXRBdG9taWNCaW5vcChJbnN0cnVjdGlv blNlbGVjdG9yKiBzZWxlY3RvciwgTm9kZSogbm9kZSwKKysgICAgICAgICAgICAgICAgICAgICAg QXJjaE9wY29kZSBvcGNvZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHNlbGVjdG9y KTsKKysgIE5vZGUqIGJhc2UgPSBub2RlLT5JbnB1dEF0KDApOworKyAgTm9kZSogaW5kZXggPSBu b2RlLT5JbnB1dEF0KDEpOworKyAgTm9kZSogdmFsdWUgPSBub2RlLT5JbnB1dEF0KDIpOworKwor KyAgQWRkcmVzc2luZ01vZGUgYWRkcmVzc2luZ19tb2RlID0ga01vZGVfTVJJOworKyAgSW5zdHJ1 Y3Rpb25PcGVyYW5kIGlucHV0c1szXTsKKysgIHNpemVfdCBpbnB1dF9jb3VudCA9IDA7CisrICBp bnB1dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKGJhc2UpOworKyAgaW5w dXRzW2lucHV0X2NvdW50KytdID0gZy5Vc2VVbmlxdWVSZWdpc3RlcihpbmRleCk7CisrICBpbnB1 dHNbaW5wdXRfY291bnQrK10gPSBnLlVzZVVuaXF1ZVJlZ2lzdGVyKHZhbHVlKTsKKysgIEluc3Ry dWN0aW9uT3BlcmFuZCBvdXRwdXRzWzFdOworKyAgb3V0cHV0c1swXSA9IGcuVXNlVW5pcXVlUmVn aXN0ZXIobm9kZSk7CisrICBJbnN0cnVjdGlvbk9wZXJhbmQgdGVtcHNbNF07CisrICB0ZW1wc1sw XSA9IGcuVGVtcFJlZ2lzdGVyKCk7CisrICB0ZW1wc1sxXSA9IGcuVGVtcFJlZ2lzdGVyKCk7Cisr ICB0ZW1wc1syXSA9IGcuVGVtcFJlZ2lzdGVyKCk7CisrICB0ZW1wc1szXSA9IGcuVGVtcFJlZ2lz dGVyKCk7CisrICBJbnN0cnVjdGlvbkNvZGUgY29kZSA9IG9wY29kZSB8IEFkZHJlc3NpbmdNb2Rl RmllbGQ6OmVuY29kZShhZGRyZXNzaW5nX21vZGUpOworKyAgc2VsZWN0b3ItPkVtaXQoY29kZSwg MSwgb3V0cHV0cywgaW5wdXRfY291bnQsIGlucHV0cywgNCwgdGVtcHMpOworK30KKysKKyt9ICAv LyBuYW1lc3BhY2UKKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0U3RhY2tQb2lu dGVyR3JlYXRlclRoYW4oCisrICAgIE5vZGUqIG5vZGUsIEZsYWdzQ29udGludWF0aW9uKiBjb250 KSB7CisrICBTdGFja0NoZWNrS2luZCBraW5kID0gU3RhY2tDaGVja0tpbmRPZihub2RlLT5vcCgp KTsKKysgIEluc3RydWN0aW9uQ29kZSBvcGNvZGUgPQorKyAgICAgIGtBcmNoU3RhY2tQb2ludGVy R3JlYXRlclRoYW4gfCBNaXNjRmllbGQ6OmVuY29kZShzdGF0aWNfY2FzdDxpbnQ+KGtpbmQpKTsK KysKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKworKyAgLy8gTm8gb3V0cHV0 cy4KKysgIEluc3RydWN0aW9uT3BlcmFuZCogY29uc3Qgb3V0cHV0cyA9IG51bGxwdHI7CisrICBj b25zdCBpbnQgb3V0cHV0X2NvdW50ID0gMDsKKysKKysgIC8vIEFwcGx5aW5nIGFuIG9mZnNldCB0 byB0aGlzIHN0YWNrIGNoZWNrIHJlcXVpcmVzIGEgdGVtcCByZWdpc3Rlci4gT2Zmc2V0cworKyAg Ly8gYXJlIG9ubHkgYXBwbGllZCB0byB0aGUgZmlyc3Qgc3RhY2sgY2hlY2suIElmIGFwcGx5aW5n IGFuIG9mZnNldCwgd2UgbXVzdAorKyAgLy8gZW5zdXJlIHRoZSBpbnB1dCBhbmQgdGVtcCByZWdp c3RlcnMgZG8gbm90IGFsaWFzLCB0aHVzIGtVbmlxdWVSZWdpc3Rlci4KKysgIEluc3RydWN0aW9u T3BlcmFuZCB0ZW1wc1tdID0ge2cuVGVtcFJlZ2lzdGVyKCl9OworKyAgY29uc3QgaW50IHRlbXBf Y291bnQgPSAoa2luZCA9PSBTdGFja0NoZWNrS2luZDo6a0pTRnVuY3Rpb25FbnRyeSA/IDEgOiAw KTsKKysgIGNvbnN0IGF1dG8gcmVnaXN0ZXJfbW9kZSA9IChraW5kID09IFN0YWNrQ2hlY2tLaW5k OjprSlNGdW5jdGlvbkVudHJ5KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8g T3BlcmFuZEdlbmVyYXRvcjo6a1VuaXF1ZVJlZ2lzdGVyCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBPcGVyYW5kR2VuZXJhdG9yOjprUmVnaXN0ZXI7CisrCisrICBOb2RlKiBj b25zdCB2YWx1ZSA9IG5vZGUtPklucHV0QXQoMCk7CisrICBJbnN0cnVjdGlvbk9wZXJhbmQgaW5w dXRzW10gPSB7Zy5Vc2VSZWdpc3RlcldpdGhNb2RlKHZhbHVlLCByZWdpc3Rlcl9tb2RlKX07Cisr ICBzdGF0aWMgY29uc3RleHByIGludCBpbnB1dF9jb3VudCA9IGFycmF5c2l6ZShpbnB1dHMpOwor KworKyAgRW1pdFdpdGhDb250aW51YXRpb24ob3Bjb2RlLCBvdXRwdXRfY291bnQsIG91dHB1dHMs IGlucHV0X2NvdW50LCBpbnB1dHMsCisrICAgICAgICAgICAgICAgICAgICAgICB0ZW1wX2NvdW50 LCB0ZW1wcywgY29udCk7CisrfQorKworKy8vIFNoYXJlZCByb3V0aW5lIGZvciB3b3JkIGNvbXBh cmlzb25zIGFnYWluc3QgemVyby4KKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0V29y ZENvbXBhcmVaZXJvKE5vZGUqIHVzZXIsIE5vZGUqIHZhbHVlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxhZ3NDb250aW51YXRpb24qIGNvbnQpIHsK KysgIC8vIFRyeSB0byBjb21iaW5lIHdpdGggY29tcGFyaXNvbnMgYWdhaW5zdCAwIGJ5IHNpbXBs eSBpbnZlcnRpbmcgdGhlIGJyYW5jaC4KKysgIHdoaWxlIChDYW5Db3Zlcih1c2VyLCB2YWx1ZSkp IHsKKysgICAgaWYgKHZhbHVlLT5vcGNvZGUoKSA9PSBJck9wY29kZTo6a1dvcmQzMkVxdWFsKSB7 CisrICAgICAgSW50MzJCaW5vcE1hdGNoZXIgbSh2YWx1ZSk7CisrICAgICAgaWYgKCFtLnJpZ2h0 KCkuSXMoMCkpIGJyZWFrOworKyAgICAgIHVzZXIgPSB2YWx1ZTsKKysgICAgICB2YWx1ZSA9IG0u bGVmdCgpLm5vZGUoKTsKKysgICAgfSBlbHNlIGlmICh2YWx1ZS0+b3Bjb2RlKCkgPT0gSXJPcGNv ZGU6OmtXb3JkNjRFcXVhbCkgeworKyAgICAgIEludDY0Qmlub3BNYXRjaGVyIG0odmFsdWUpOwor KyAgICAgIGlmICghbS5yaWdodCgpLklzKDApKSBicmVhazsKKysgICAgICB1c2VyID0gdmFsdWU7 CisrICAgICAgdmFsdWUgPSBtLmxlZnQoKS5ub2RlKCk7CisrICAgIH0gZWxzZSB7CisrICAgICAg YnJlYWs7CisrICAgIH0KKysKKysgICAgY29udC0+TmVnYXRlKCk7CisrICB9CisrCisrICBpZiAo Q2FuQ292ZXIodXNlciwgdmFsdWUpKSB7CisrICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7 CisrICAgICAgY2FzZSBJck9wY29kZTo6a1dvcmQzMkVxdWFsOgorKyAgICAgICAgY29udC0+T3Zl cndyaXRlQW5kTmVnYXRlSWZFcXVhbChrRXF1YWwpOworKyAgICAgICAgcmV0dXJuIFZpc2l0V29y ZDMyQ29tcGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7CisrICAgICAgY2FzZSBJck9wY29kZTo6a0lu dDMyTGVzc1RoYW46CisrICAgICAgICBjb250LT5PdmVyd3JpdGVBbmROZWdhdGVJZkVxdWFsKGtT aWduZWRMZXNzVGhhbik7CisrICAgICAgICByZXR1cm4gVmlzaXRXb3JkMzJDb21wYXJlKHRoaXMs IHZhbHVlLCBjb250KTsKKysgICAgICBjYXNlIElyT3Bjb2RlOjprSW50MzJMZXNzVGhhbk9yRXF1 YWw6CisrICAgICAgICBjb250LT5PdmVyd3JpdGVBbmROZWdhdGVJZkVxdWFsKGtTaWduZWRMZXNz VGhhbk9yRXF1YWwpOworKyAgICAgICAgcmV0dXJuIFZpc2l0V29yZDMyQ29tcGFyZSh0aGlzLCB2 YWx1ZSwgY29udCk7CisrICAgICAgY2FzZSBJck9wY29kZTo6a1VpbnQzMkxlc3NUaGFuOgorKyAg ICAgICAgY29udC0+T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVhbChrVW5zaWduZWRMZXNzVGhhbik7 CisrICAgICAgICByZXR1cm4gVmlzaXRXb3JkMzJDb21wYXJlKHRoaXMsIHZhbHVlLCBjb250KTsK KysgICAgICBjYXNlIElyT3Bjb2RlOjprVWludDMyTGVzc1RoYW5PckVxdWFsOgorKyAgICAgICAg Y29udC0+T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVhbChrVW5zaWduZWRMZXNzVGhhbk9yRXF1YWwp OworKyAgICAgICAgcmV0dXJuIFZpc2l0V29yZDMyQ29tcGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7 CisrICAgICAgY2FzZSBJck9wY29kZTo6a1dvcmQ2NEVxdWFsOgorKyAgICAgICAgY29udC0+T3Zl cndyaXRlQW5kTmVnYXRlSWZFcXVhbChrRXF1YWwpOworKyAgICAgICAgcmV0dXJuIFZpc2l0V29y ZDY0Q29tcGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7CisrICAgICAgY2FzZSBJck9wY29kZTo6a0lu dDY0TGVzc1RoYW46CisrICAgICAgICBjb250LT5PdmVyd3JpdGVBbmROZWdhdGVJZkVxdWFsKGtT aWduZWRMZXNzVGhhbik7CisrICAgICAgICByZXR1cm4gVmlzaXRXb3JkNjRDb21wYXJlKHRoaXMs IHZhbHVlLCBjb250KTsKKysgICAgICBjYXNlIElyT3Bjb2RlOjprSW50NjRMZXNzVGhhbk9yRXF1 YWw6CisrICAgICAgICBjb250LT5PdmVyd3JpdGVBbmROZWdhdGVJZkVxdWFsKGtTaWduZWRMZXNz VGhhbk9yRXF1YWwpOworKyAgICAgICAgcmV0dXJuIFZpc2l0V29yZDY0Q29tcGFyZSh0aGlzLCB2 YWx1ZSwgY29udCk7CisrICAgICAgY2FzZSBJck9wY29kZTo6a1VpbnQ2NExlc3NUaGFuOgorKyAg ICAgICAgY29udC0+T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVhbChrVW5zaWduZWRMZXNzVGhhbik7 CisrICAgICAgICByZXR1cm4gVmlzaXRXb3JkNjRDb21wYXJlKHRoaXMsIHZhbHVlLCBjb250KTsK KysgICAgICBjYXNlIElyT3Bjb2RlOjprVWludDY0TGVzc1RoYW5PckVxdWFsOgorKyAgICAgICAg Y29udC0+T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVhbChrVW5zaWduZWRMZXNzVGhhbk9yRXF1YWwp OworKyAgICAgICAgcmV0dXJuIFZpc2l0V29yZDY0Q29tcGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7 CisrICAgICAgY2FzZSBJck9wY29kZTo6a0Zsb2F0MzJFcXVhbDoKKysgICAgICAgIGNvbnQtPk92 ZXJ3cml0ZUFuZE5lZ2F0ZUlmRXF1YWwoa0VxdWFsKTsKKysgICAgICAgIHJldHVybiBWaXNpdEZs b2F0MzJDb21wYXJlKHRoaXMsIHZhbHVlLCBjb250KTsKKysgICAgICBjYXNlIElyT3Bjb2RlOjpr RmxvYXQzMkxlc3NUaGFuOgorKyAgICAgICAgY29udC0+T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVh bChrVW5zaWduZWRMZXNzVGhhbik7CisrICAgICAgICByZXR1cm4gVmlzaXRGbG9hdDMyQ29tcGFy ZSh0aGlzLCB2YWx1ZSwgY29udCk7CisrICAgICAgY2FzZSBJck9wY29kZTo6a0Zsb2F0MzJMZXNz VGhhbk9yRXF1YWw6CisrICAgICAgICBjb250LT5PdmVyd3JpdGVBbmROZWdhdGVJZkVxdWFsKGtV bnNpZ25lZExlc3NUaGFuT3JFcXVhbCk7CisrICAgICAgICByZXR1cm4gVmlzaXRGbG9hdDMyQ29t cGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7CisrICAgICAgY2FzZSBJck9wY29kZTo6a0Zsb2F0NjRF cXVhbDoKKysgICAgICAgIGNvbnQtPk92ZXJ3cml0ZUFuZE5lZ2F0ZUlmRXF1YWwoa0VxdWFsKTsK KysgICAgICAgIHJldHVybiBWaXNpdEZsb2F0NjRDb21wYXJlKHRoaXMsIHZhbHVlLCBjb250KTsK KysgICAgICBjYXNlIElyT3Bjb2RlOjprRmxvYXQ2NExlc3NUaGFuOgorKyAgICAgICAgY29udC0+ T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVhbChrVW5zaWduZWRMZXNzVGhhbik7CisrICAgICAgICBy ZXR1cm4gVmlzaXRGbG9hdDY0Q29tcGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7CisrICAgICAgY2Fz ZSBJck9wY29kZTo6a0Zsb2F0NjRMZXNzVGhhbk9yRXF1YWw6CisrICAgICAgICBjb250LT5PdmVy d3JpdGVBbmROZWdhdGVJZkVxdWFsKGtVbnNpZ25lZExlc3NUaGFuT3JFcXVhbCk7CisrICAgICAg ICByZXR1cm4gVmlzaXRGbG9hdDY0Q29tcGFyZSh0aGlzLCB2YWx1ZSwgY29udCk7CisrICAgICAg Y2FzZSBJck9wY29kZTo6a1Byb2plY3Rpb246CisrICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlz IHRoZSBvdmVyZmxvdyBvdXRwdXQgcHJvamVjdGlvbiBvZiBhbgorKyAgICAgICAgLy8gPE9wZXJh dGlvbj5XaXRoT3ZlcmZsb3cgbm9kZS4KKysgICAgICAgIGlmIChQcm9qZWN0aW9uSW5kZXhPZih2 YWx1ZS0+b3AoKSkgPT0gMXUpIHsKKysgICAgICAgICAgLy8gV2UgY2Fubm90IGNvbWJpbmUgdGhl IDxPcGVyYXRpb24+V2l0aE92ZXJmbG93IHdpdGggdGhpcyBicmFuY2gKKysgICAgICAgICAgLy8g dW5sZXNzIHRoZSAwdGggcHJvamVjdGlvbiAodGhlIHVzZSBvZiB0aGUgYWN0dWFsIHZhbHVlIG9m IHRoZQorKyAgICAgICAgICAvLyA8T3BlcmF0aW9uPiBpcyBlaXRoZXIgbnVsbHB0ciwgd2hpY2gg bWVhbnMgdGhlcmUncyBubyB1c2Ugb2YgdGhlCisrICAgICAgICAgIC8vIGFjdHVhbCB2YWx1ZSwg b3Igd2FzIGFscmVhZHkgZGVmaW5lZCwgd2hpY2ggbWVhbnMgaXQgaXMgc2NoZWR1bGVkCisrICAg ICAgICAgIC8vICpBRlRFUiogdGhpcyBicmFuY2gpLgorKyAgICAgICAgICBOb2RlKiBjb25zdCBu b2RlID0gdmFsdWUtPklucHV0QXQoMCk7CisrICAgICAgICAgIE5vZGUqIGNvbnN0IHJlc3VsdCA9 IE5vZGVQcm9wZXJ0aWVzOjpGaW5kUHJvamVjdGlvbihub2RlLCAwKTsKKysgICAgICAgICAgaWYg KHJlc3VsdCA9PSBudWxscHRyIHx8IElzRGVmaW5lZChyZXN1bHQpKSB7CisrICAgICAgICAgICAg c3dpdGNoIChub2RlLT5vcGNvZGUoKSkgeworKyAgICAgICAgICAgICAgY2FzZSBJck9wY29kZTo6 a0ludDMyQWRkV2l0aE92ZXJmbG93OgorKyAgICAgICAgICAgICAgICBjb250LT5PdmVyd3JpdGVB bmROZWdhdGVJZkVxdWFsKGtPdmVyZmxvdyk7CisrICAgICAgICAgICAgICAgIHJldHVybiBWaXNp dEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdkFkZDY0LCBjb250KTsKKysgICAgICAgICAgICAgIGNh c2UgSXJPcGNvZGU6OmtJbnQzMlN1YldpdGhPdmVyZmxvdzoKKysgICAgICAgICAgICAgICAgY29u dC0+T3ZlcndyaXRlQW5kTmVnYXRlSWZFcXVhbChrT3ZlcmZsb3cpOworKyAgICAgICAgICAgICAg ICByZXR1cm4gVmlzaXRCaW5vcCh0aGlzLCBub2RlLCBrUmlzY3ZTdWI2NCwgY29udCk7CisrICAg ICAgICAgICAgICBjYXNlIElyT3Bjb2RlOjprSW50MzJNdWxXaXRoT3ZlcmZsb3c6CisrICAgICAg ICAgICAgICAgIGNvbnQtPk92ZXJ3cml0ZUFuZE5lZ2F0ZUlmRXF1YWwoa092ZXJmbG93KTsKKysg ICAgICAgICAgICAgICAgcmV0dXJuIFZpc2l0Qmlub3AodGhpcywgbm9kZSwga1Jpc2N2TXVsT3Zm MzIsIGNvbnQpOworKyAgICAgICAgICAgICAgY2FzZSBJck9wY29kZTo6a0ludDY0QWRkV2l0aE92 ZXJmbG93OgorKyAgICAgICAgICAgICAgICBjb250LT5PdmVyd3JpdGVBbmROZWdhdGVJZkVxdWFs KGtPdmVyZmxvdyk7CisrICAgICAgICAgICAgICAgIHJldHVybiBWaXNpdEJpbm9wKHRoaXMsIG5v ZGUsIGtSaXNjdkFkZE92ZjY0LCBjb250KTsKKysgICAgICAgICAgICAgIGNhc2UgSXJPcGNvZGU6 OmtJbnQ2NFN1YldpdGhPdmVyZmxvdzoKKysgICAgICAgICAgICAgICAgY29udC0+T3ZlcndyaXRl QW5kTmVnYXRlSWZFcXVhbChrT3ZlcmZsb3cpOworKyAgICAgICAgICAgICAgICByZXR1cm4gVmlz aXRCaW5vcCh0aGlzLCBub2RlLCBrUmlzY3ZTdWJPdmY2NCwgY29udCk7CisrICAgICAgICAgICAg ICBkZWZhdWx0OgorKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICB9CisrICAg ICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2UgSXJPcGNv ZGU6OmtXb3JkMzJBbmQ6CisrICAgICAgY2FzZSBJck9wY29kZTo6a1dvcmQ2NEFuZDoKKysgICAg ICAgIHJldHVybiBWaXNpdFdvcmRDb21wYXJlKHRoaXMsIHZhbHVlLCBrUmlzY3ZUc3QsIGNvbnQs IHRydWUpOworKyAgICAgIGNhc2UgSXJPcGNvZGU6OmtTdGFja1BvaW50ZXJHcmVhdGVyVGhhbjoK KysgICAgICAgIGNvbnQtPk92ZXJ3cml0ZUFuZE5lZ2F0ZUlmRXF1YWwoa1N0YWNrUG9pbnRlckdy ZWF0ZXJUaGFuQ29uZGl0aW9uKTsKKysgICAgICAgIHJldHVybiBWaXNpdFN0YWNrUG9pbnRlckdy ZWF0ZXJUaGFuKHZhbHVlLCBjb250KTsKKysgICAgICBkZWZhdWx0OgorKyAgICAgICAgYnJlYWs7 CisrICAgIH0KKysgIH0KKysKKysgIC8vIENvbnRpbnVhdGlvbiBjb3VsZCBub3QgYmUgY29tYmlu ZWQgd2l0aCBhIGNvbXBhcmUsIGVtaXQgY29tcGFyZSBhZ2FpbnN0IDAuCisrICBFbWl0V29yZENv bXBhcmVaZXJvKHRoaXMsIHZhbHVlLCBjb250KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNl bGVjdG9yOjpWaXNpdFN3aXRjaChOb2RlKiBub2RlLCBjb25zdCBTd2l0Y2hJbmZvJiBzdykgewor KyAgUmlzY3ZPcGVyYW5kR2VuZXJhdG9yIGcodGhpcyk7CisrICBJbnN0cnVjdGlvbk9wZXJhbmQg dmFsdWVfb3BlcmFuZCA9IGcuVXNlUmVnaXN0ZXIobm9kZS0+SW5wdXRBdCgwKSk7CisrCisrICAv LyBFbWl0IGVpdGhlciBBcmNoVGFibGVTd2l0Y2ggb3IgQXJjaEJpbmFyeVNlYXJjaFN3aXRjaC4K KysgIGlmIChlbmFibGVfc3dpdGNoX2p1bXBfdGFibGVfID09IGtFbmFibGVTd2l0Y2hKdW1wVGFi bGUpIHsKKysgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4VGFibGVTd2l0Y2hWYWx1ZVJhbmdl ID0gMiA8PCAxNjsKKysgICAgc2l6ZV90IHRhYmxlX3NwYWNlX2Nvc3QgPSAxMCArIDIgKiBzdy52 YWx1ZV9yYW5nZSgpOworKyAgICBzaXplX3QgdGFibGVfdGltZV9jb3N0ID0gMzsKKysgICAgc2l6 ZV90IGxvb2t1cF9zcGFjZV9jb3N0ID0gMiArIDIgKiBzdy5jYXNlX2NvdW50KCk7CisrICAgIHNp emVfdCBsb29rdXBfdGltZV9jb3N0ID0gc3cuY2FzZV9jb3VudCgpOworKyAgICBpZiAoc3cuY2Fz ZV9jb3VudCgpID4gMCAmJgorKyAgICAgICAgdGFibGVfc3BhY2VfY29zdCArIDMgKiB0YWJsZV90 aW1lX2Nvc3QgPD0KKysgICAgICAgICAgICBsb29rdXBfc3BhY2VfY29zdCArIDMgKiBsb29rdXBf dGltZV9jb3N0ICYmCisrICAgICAgICBzdy5taW5fdmFsdWUoKSA+IHN0ZDo6bnVtZXJpY19saW1p dHM8aW50MzJfdD46Om1pbigpICYmCisrICAgICAgICBzdy52YWx1ZV9yYW5nZSgpIDw9IGtNYXhU YWJsZVN3aXRjaFZhbHVlUmFuZ2UpIHsKKysgICAgICBJbnN0cnVjdGlvbk9wZXJhbmQgaW5kZXhf b3BlcmFuZCA9IHZhbHVlX29wZXJhbmQ7CisrICAgICAgaWYgKHN3Lm1pbl92YWx1ZSgpKSB7Cisr ICAgICAgICBpbmRleF9vcGVyYW5kID0gZy5UZW1wUmVnaXN0ZXIoKTsKKysgICAgICAgIEVtaXQo a1Jpc2N2U3ViMzIsIGluZGV4X29wZXJhbmQsIHZhbHVlX29wZXJhbmQsCisrICAgICAgICAgICAg IGcuVGVtcEltbWVkaWF0ZShzdy5taW5fdmFsdWUoKSkpOworKyAgICAgIH0KKysgICAgICAvLyBH ZW5lcmF0ZSBhIHRhYmxlIGxvb2t1cC4KKysgICAgICByZXR1cm4gRW1pdFRhYmxlU3dpdGNoKHN3 LCBpbmRleF9vcGVyYW5kKTsKKysgICAgfQorKyAgfQorKworKyAgLy8gR2VuZXJhdGUgYSB0cmVl IG9mIGNvbmRpdGlvbmFsIGp1bXBzLgorKyAgcmV0dXJuIEVtaXRCaW5hcnlTZWFyY2hTd2l0Y2go c3csIHZhbHVlX29wZXJhbmQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZp c2l0V29yZDMyRXF1YWwoTm9kZSogY29uc3Qgbm9kZSkgeworKyAgRmxhZ3NDb250aW51YXRpb24g Y29udCA9IEZsYWdzQ29udGludWF0aW9uOjpGb3JTZXQoa0VxdWFsLCBub2RlKTsKKysgIEludDMy Qmlub3BNYXRjaGVyIG0obm9kZSk7CisrICBpZiAobS5yaWdodCgpLklzKDApKSB7CisrICAgIHJl dHVybiBWaXNpdFdvcmRDb21wYXJlWmVybyhtLm5vZGUoKSwgbS5sZWZ0KCkubm9kZSgpLCAmY29u dCk7CisrICB9CisrCisrICBWaXNpdFdvcmQzMkNvbXBhcmUodGhpcywgbm9kZSwgJmNvbnQpOwor K30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50MzJMZXNzVGhhbihOb2Rl KiBub2RlKSB7CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250ID0gRmxhZ3NDb250aW51YXRpb246 OkZvclNldChrU2lnbmVkTGVzc1RoYW4sIG5vZGUpOworKyAgVmlzaXRXb3JkMzJDb21wYXJlKHRo aXMsIG5vZGUsICZjb250KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dEludDMyTGVzc1RoYW5PckVxdWFsKE5vZGUqIG5vZGUpIHsKKysgIEZsYWdzQ29udGludWF0aW9u IGNvbnQgPQorKyAgICAgIEZsYWdzQ29udGludWF0aW9uOjpGb3JTZXQoa1NpZ25lZExlc3NUaGFu T3JFcXVhbCwgbm9kZSk7CisrICBWaXNpdFdvcmQzMkNvbXBhcmUodGhpcywgbm9kZSwgJmNvbnQp OworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0VWludDMyTGVzc1RoYW4o Tm9kZSogbm9kZSkgeworKyAgRmxhZ3NDb250aW51YXRpb24gY29udCA9IEZsYWdzQ29udGludWF0 aW9uOjpGb3JTZXQoa1Vuc2lnbmVkTGVzc1RoYW4sIG5vZGUpOworKyAgVmlzaXRXb3JkMzJDb21w YXJlKHRoaXMsIG5vZGUsICZjb250KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9y OjpWaXNpdFVpbnQzMkxlc3NUaGFuT3JFcXVhbChOb2RlKiBub2RlKSB7CisrICBGbGFnc0NvbnRp bnVhdGlvbiBjb250ID0KKysgICAgICBGbGFnc0NvbnRpbnVhdGlvbjo6Rm9yU2V0KGtVbnNpZ25l ZExlc3NUaGFuT3JFcXVhbCwgbm9kZSk7CisrICBWaXNpdFdvcmQzMkNvbXBhcmUodGhpcywgbm9k ZSwgJmNvbnQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50MzJB ZGRXaXRoT3ZlcmZsb3coTm9kZSogbm9kZSkgeworKyAgaWYgKE5vZGUqIG92ZiA9IE5vZGVQcm9w ZXJ0aWVzOjpGaW5kUHJvamVjdGlvbihub2RlLCAxKSkgeworKyAgICBGbGFnc0NvbnRpbnVhdGlv biBjb250ID0gRmxhZ3NDb250aW51YXRpb246OkZvclNldChrT3ZlcmZsb3csIG92Zik7CisrICAg IHJldHVybiBWaXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdkFkZDY0LCAmY29udCk7CisrICB9 CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250OworKyAgVmlzaXRCaW5vcCh0aGlzLCBub2RlLCBr UmlzY3ZBZGQ2NCwgJmNvbnQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZp c2l0SW50MzJTdWJXaXRoT3ZlcmZsb3coTm9kZSogbm9kZSkgeworKyAgaWYgKE5vZGUqIG92ZiA9 IE5vZGVQcm9wZXJ0aWVzOjpGaW5kUHJvamVjdGlvbihub2RlLCAxKSkgeworKyAgICBGbGFnc0Nv bnRpbnVhdGlvbiBjb250ID0gRmxhZ3NDb250aW51YXRpb246OkZvclNldChrT3ZlcmZsb3csIG92 Zik7CisrICAgIHJldHVybiBWaXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdlN1YjY0LCAmY29u dCk7CisrICB9CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250OworKyAgVmlzaXRCaW5vcCh0aGlz LCBub2RlLCBrUmlzY3ZTdWI2NCwgJmNvbnQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2Vs ZWN0b3I6OlZpc2l0SW50MzJNdWxXaXRoT3ZlcmZsb3coTm9kZSogbm9kZSkgeworKyAgaWYgKE5v ZGUqIG92ZiA9IE5vZGVQcm9wZXJ0aWVzOjpGaW5kUHJvamVjdGlvbihub2RlLCAxKSkgeworKyAg ICBGbGFnc0NvbnRpbnVhdGlvbiBjb250ID0gRmxhZ3NDb250aW51YXRpb246OkZvclNldChrT3Zl cmZsb3csIG92Zik7CisrICAgIHJldHVybiBWaXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdk11 bE92ZjMyLCAmY29udCk7CisrICB9CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250OworKyAgVmlz aXRCaW5vcCh0aGlzLCBub2RlLCBrUmlzY3ZNdWxPdmYzMiwgJmNvbnQpOworK30KKysKKyt2b2lk IEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50NjRBZGRXaXRoT3ZlcmZsb3coTm9kZSogbm9k ZSkgeworKyAgaWYgKE5vZGUqIG92ZiA9IE5vZGVQcm9wZXJ0aWVzOjpGaW5kUHJvamVjdGlvbihu b2RlLCAxKSkgeworKyAgICBGbGFnc0NvbnRpbnVhdGlvbiBjb250ID0gRmxhZ3NDb250aW51YXRp b246OkZvclNldChrT3ZlcmZsb3csIG92Zik7CisrICAgIHJldHVybiBWaXNpdEJpbm9wKHRoaXMs IG5vZGUsIGtSaXNjdkFkZE92ZjY0LCAmY29udCk7CisrICB9CisrICBGbGFnc0NvbnRpbnVhdGlv biBjb250OworKyAgVmlzaXRCaW5vcCh0aGlzLCBub2RlLCBrUmlzY3ZBZGRPdmY2NCwgJmNvbnQp OworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50NjRTdWJXaXRoT3Zl cmZsb3coTm9kZSogbm9kZSkgeworKyAgaWYgKE5vZGUqIG92ZiA9IE5vZGVQcm9wZXJ0aWVzOjpG aW5kUHJvamVjdGlvbihub2RlLCAxKSkgeworKyAgICBGbGFnc0NvbnRpbnVhdGlvbiBjb250ID0g RmxhZ3NDb250aW51YXRpb246OkZvclNldChrT3ZlcmZsb3csIG92Zik7CisrICAgIHJldHVybiBW aXNpdEJpbm9wKHRoaXMsIG5vZGUsIGtSaXNjdlN1Yk92ZjY0LCAmY29udCk7CisrICB9CisrICBG bGFnc0NvbnRpbnVhdGlvbiBjb250OworKyAgVmlzaXRCaW5vcCh0aGlzLCBub2RlLCBrUmlzY3ZT dWJPdmY2NCwgJmNvbnQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0 V29yZDY0RXF1YWwoTm9kZSogY29uc3Qgbm9kZSkgeworKyAgRmxhZ3NDb250aW51YXRpb24gY29u dCA9IEZsYWdzQ29udGludWF0aW9uOjpGb3JTZXQoa0VxdWFsLCBub2RlKTsKKysgIEludDY0Qmlu b3BNYXRjaGVyIG0obm9kZSk7CisrICBpZiAobS5yaWdodCgpLklzKDApKSB7CisrICAgIHJldHVy biBWaXNpdFdvcmRDb21wYXJlWmVybyhtLm5vZGUoKSwgbS5sZWZ0KCkubm9kZSgpLCAmY29udCk7 CisrICB9CisrCisrICBWaXNpdFdvcmQ2NENvbXBhcmUodGhpcywgbm9kZSwgJmNvbnQpOworK30K KysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50NjRMZXNzVGhhbihOb2RlKiBu b2RlKSB7CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250ID0gRmxhZ3NDb250aW51YXRpb246OkZv clNldChrU2lnbmVkTGVzc1RoYW4sIG5vZGUpOworKyAgVmlzaXRXb3JkNjRDb21wYXJlKHRoaXMs IG5vZGUsICZjb250KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdElu dDY0TGVzc1RoYW5PckVxdWFsKE5vZGUqIG5vZGUpIHsKKysgIEZsYWdzQ29udGludWF0aW9uIGNv bnQgPQorKyAgICAgIEZsYWdzQ29udGludWF0aW9uOjpGb3JTZXQoa1NpZ25lZExlc3NUaGFuT3JF cXVhbCwgbm9kZSk7CisrICBWaXNpdFdvcmQ2NENvbXBhcmUodGhpcywgbm9kZSwgJmNvbnQpOwor K30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0VWludDY0TGVzc1RoYW4oTm9k ZSogbm9kZSkgeworKyAgRmxhZ3NDb250aW51YXRpb24gY29udCA9IEZsYWdzQ29udGludWF0aW9u OjpGb3JTZXQoa1Vuc2lnbmVkTGVzc1RoYW4sIG5vZGUpOworKyAgVmlzaXRXb3JkNjRDb21wYXJl KHRoaXMsIG5vZGUsICZjb250KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpW aXNpdFVpbnQ2NExlc3NUaGFuT3JFcXVhbChOb2RlKiBub2RlKSB7CisrICBGbGFnc0NvbnRpbnVh dGlvbiBjb250ID0KKysgICAgICBGbGFnc0NvbnRpbnVhdGlvbjo6Rm9yU2V0KGtVbnNpZ25lZExl c3NUaGFuT3JFcXVhbCwgbm9kZSk7CisrICBWaXNpdFdvcmQ2NENvbXBhcmUodGhpcywgbm9kZSwg JmNvbnQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQzMkVx dWFsKE5vZGUqIG5vZGUpIHsKKysgIEZsYWdzQ29udGludWF0aW9uIGNvbnQgPSBGbGFnc0NvbnRp bnVhdGlvbjo6Rm9yU2V0KGtFcXVhbCwgbm9kZSk7CisrICBWaXNpdEZsb2F0MzJDb21wYXJlKHRo aXMsIG5vZGUsICZjb250KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dEZsb2F0MzJMZXNzVGhhbihOb2RlKiBub2RlKSB7CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250 ID0gRmxhZ3NDb250aW51YXRpb246OkZvclNldChrVW5zaWduZWRMZXNzVGhhbiwgbm9kZSk7Cisr ICBWaXNpdEZsb2F0MzJDb21wYXJlKHRoaXMsIG5vZGUsICZjb250KTsKKyt9CisrCisrdm9pZCBJ bnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0MzJMZXNzVGhhbk9yRXF1YWwoTm9kZSogbm9k ZSkgeworKyAgRmxhZ3NDb250aW51YXRpb24gY29udCA9CisrICAgICAgRmxhZ3NDb250aW51YXRp b246OkZvclNldChrVW5zaWduZWRMZXNzVGhhbk9yRXF1YWwsIG5vZGUpOworKyAgVmlzaXRGbG9h dDMyQ29tcGFyZSh0aGlzLCBub2RlLCAmY29udCk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25T ZWxlY3Rvcjo6VmlzaXRGbG9hdDY0RXF1YWwoTm9kZSogbm9kZSkgeworKyAgRmxhZ3NDb250aW51 YXRpb24gY29udCA9IEZsYWdzQ29udGludWF0aW9uOjpGb3JTZXQoa0VxdWFsLCBub2RlKTsKKysg IFZpc2l0RmxvYXQ2NENvbXBhcmUodGhpcywgbm9kZSwgJmNvbnQpOworK30KKysKKyt2b2lkIElu c3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQ2NExlc3NUaGFuKE5vZGUqIG5vZGUpIHsKKysg IEZsYWdzQ29udGludWF0aW9uIGNvbnQgPSBGbGFnc0NvbnRpbnVhdGlvbjo6Rm9yU2V0KGtVbnNp Z25lZExlc3NUaGFuLCBub2RlKTsKKysgIFZpc2l0RmxvYXQ2NENvbXBhcmUodGhpcywgbm9kZSwg JmNvbnQpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQ2NExl c3NUaGFuT3JFcXVhbChOb2RlKiBub2RlKSB7CisrICBGbGFnc0NvbnRpbnVhdGlvbiBjb250ID0K KysgICAgICBGbGFnc0NvbnRpbnVhdGlvbjo6Rm9yU2V0KGtVbnNpZ25lZExlc3NUaGFuT3JFcXVh bCwgbm9kZSk7CisrICBWaXNpdEZsb2F0NjRDb21wYXJlKHRoaXMsIG5vZGUsICZjb250KTsKKyt9 CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0NjRFeHRyYWN0TG93V29y ZDMyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywga1Jpc2N2RmxvYXQ2NEV4dHJhY3RM b3dXb3JkMzIsIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0 RmxvYXQ2NEV4dHJhY3RIaWdoV29yZDMyKE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0UlIodGhpcywg a1Jpc2N2RmxvYXQ2NEV4dHJhY3RIaWdoV29yZDMyLCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0 cnVjdGlvblNlbGVjdG9yOjpWaXNpdEZsb2F0NjRTaWxlbmNlTmFOKE5vZGUqIG5vZGUpIHsKKysg IFZpc2l0UlIodGhpcywga1Jpc2N2RmxvYXQ2NFNpbGVuY2VOYU4sIG5vZGUpOworK30KKysKKyt2 b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RmxvYXQ2NEluc2VydExvd1dvcmQzMihOb2Rl KiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIE5vZGUqIGxl ZnQgPSBub2RlLT5JbnB1dEF0KDApOworKyAgTm9kZSogcmlnaHQgPSBub2RlLT5JbnB1dEF0KDEp OworKyAgRW1pdChrUmlzY3ZGbG9hdDY0SW5zZXJ0TG93V29yZDMyLCBnLkRlZmluZVNhbWVBc0Zp cnN0KG5vZGUpLAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKGxlZnQpLCBnLlVzZVJlZ2lzdGVyKHJp Z2h0KSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGbG9hdDY0SW5z ZXJ0SGlnaFdvcmQzMihOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0 aGlzKTsKKysgIE5vZGUqIGxlZnQgPSBub2RlLT5JbnB1dEF0KDApOworKyAgTm9kZSogcmlnaHQg PSBub2RlLT5JbnB1dEF0KDEpOworKyAgRW1pdChrUmlzY3ZGbG9hdDY0SW5zZXJ0SGlnaFdvcmQz MiwgZy5EZWZpbmVTYW1lQXNGaXJzdChub2RlKSwKKysgICAgICAgZy5Vc2VSZWdpc3RlcihsZWZ0 KSwgZy5Vc2VSZWdpc3RlcihyaWdodCkpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0 b3I6OlZpc2l0TWVtb3J5QmFycmllcihOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5l cmF0b3IgZyh0aGlzKTsKKysgIEVtaXQoa1Jpc2N2U3luYywgZy5Ob091dHB1dCgpKTsKKyt9Cisr Cisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFdvcmQzMkF0b21pY0xvYWQoTm9kZSog bm9kZSkgeworKyAgTG9hZFJlcHJlc2VudGF0aW9uIGxvYWRfcmVwID0gTG9hZFJlcHJlc2VudGF0 aW9uT2Yobm9kZS0+b3AoKSk7CisrICBBcmNoT3Bjb2RlIG9wY29kZSA9IGtBcmNoTm9wOworKyAg c3dpdGNoIChsb2FkX3JlcC5yZXByZXNlbnRhdGlvbigpKSB7CisrICAgIGNhc2UgTWFjaGluZVJl cHJlc2VudGF0aW9uOjprV29yZDg6CisrICAgICAgb3Bjb2RlID0KKysgICAgICAgICAgbG9hZF9y ZXAuSXNTaWduZWQoKSA/IGtXb3JkMzJBdG9taWNMb2FkSW50OCA6IGtXb3JkMzJBdG9taWNMb2Fk VWludDg7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjpr V29yZDE2OgorKyAgICAgIG9wY29kZSA9IGxvYWRfcmVwLklzU2lnbmVkKCkgPyBrV29yZDMyQXRv bWljTG9hZEludDE2CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGtXb3Jk MzJBdG9taWNMb2FkVWludDE2OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE1hY2hpbmVSZXBy ZXNlbnRhdGlvbjo6a1dvcmQzMjoKKysgICAgICBvcGNvZGUgPSBrV29yZDMyQXRvbWljTG9hZFdv cmQzMjsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgp OworKyAgfQorKyAgVmlzaXRBdG9taWNMb2FkKHRoaXMsIG5vZGUsIG9wY29kZSk7CisrfQorKwor K3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkMzJBdG9taWNTdG9yZShOb2RlKiBu b2RlKSB7CisrICBNYWNoaW5lUmVwcmVzZW50YXRpb24gcmVwID0gQXRvbWljU3RvcmVSZXByZXNl bnRhdGlvbk9mKG5vZGUtPm9wKCkpOworKyAgQXJjaE9wY29kZSBvcGNvZGUgPSBrQXJjaE5vcDsK KysgIHN3aXRjaCAocmVwKSB7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29y ZDg6CisrICAgICAgb3Bjb2RlID0ga1dvcmQzMkF0b21pY1N0b3JlV29yZDg7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDE2OgorKyAgICAgIG9w Y29kZSA9IGtXb3JkMzJBdG9taWNTdG9yZVdvcmQxNjsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtXb3JkMzI6CisrICAgICAgb3Bjb2RlID0ga1dvcmQz MkF0b21pY1N0b3JlV29yZDMyOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAg IFVOUkVBQ0hBQkxFKCk7CisrICB9CisrCisrICBWaXNpdEF0b21pY1N0b3JlKHRoaXMsIG5vZGUs IG9wY29kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRB dG9taWNMb2FkKE5vZGUqIG5vZGUpIHsKKysgIExvYWRSZXByZXNlbnRhdGlvbiBsb2FkX3JlcCA9 IExvYWRSZXByZXNlbnRhdGlvbk9mKG5vZGUtPm9wKCkpOworKyAgQXJjaE9wY29kZSBvcGNvZGUg PSBrQXJjaE5vcDsKKysgIHN3aXRjaCAobG9hZF9yZXAucmVwcmVzZW50YXRpb24oKSkgeworKyAg ICBjYXNlIE1hY2hpbmVSZXByZXNlbnRhdGlvbjo6a1dvcmQ4OgorKyAgICAgIG9wY29kZSA9IGtS aXNjdldvcmQ2NEF0b21pY0xvYWRVaW50ODsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBNYWNo aW5lUmVwcmVzZW50YXRpb246OmtXb3JkMTY6CisrICAgICAgb3Bjb2RlID0ga1Jpc2N2V29yZDY0 QXRvbWljTG9hZFVpbnQxNjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBNYWNoaW5lUmVwcmVz ZW50YXRpb246OmtXb3JkMzI6CisrICAgICAgb3Bjb2RlID0ga1Jpc2N2V29yZDY0QXRvbWljTG9h ZFVpbnQzMjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246 OmtXb3JkNjQ6CisrICAgICAgb3Bjb2RlID0ga1Jpc2N2V29yZDY0QXRvbWljTG9hZFVpbnQ2NDsK KysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgpOworKyAg fQorKyAgVmlzaXRBdG9taWNMb2FkKHRoaXMsIG5vZGUsIG9wY29kZSk7CisrfQorKworK3ZvaWQg SW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRBdG9taWNTdG9yZShOb2RlKiBub2RlKSB7 CisrICBNYWNoaW5lUmVwcmVzZW50YXRpb24gcmVwID0gQXRvbWljU3RvcmVSZXByZXNlbnRhdGlv bk9mKG5vZGUtPm9wKCkpOworKyAgQXJjaE9wY29kZSBvcGNvZGUgPSBrQXJjaE5vcDsKKysgIHN3 aXRjaCAocmVwKSB7CisrICAgIGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDg6Cisr ICAgICAgb3Bjb2RlID0ga1Jpc2N2V29yZDY0QXRvbWljU3RvcmVXb3JkODsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBNYWNoaW5lUmVwcmVzZW50YXRpb246OmtXb3JkMTY6CisrICAgICAgb3Bj b2RlID0ga1Jpc2N2V29yZDY0QXRvbWljU3RvcmVXb3JkMTY7CisrICAgICAgYnJlYWs7CisrICAg IGNhc2UgTWFjaGluZVJlcHJlc2VudGF0aW9uOjprV29yZDMyOgorKyAgICAgIG9wY29kZSA9IGtS aXNjdldvcmQ2NEF0b21pY1N0b3JlV29yZDMyOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE1h Y2hpbmVSZXByZXNlbnRhdGlvbjo6a1dvcmQ2NDoKKysgICAgICBvcGNvZGUgPSBrUmlzY3ZXb3Jk NjRBdG9taWNTdG9yZVdvcmQ2NDsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAg ICBVTlJFQUNIQUJMRSgpOworKyAgfQorKworKyAgVmlzaXRBdG9taWNTdG9yZSh0aGlzLCBub2Rl LCBvcGNvZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0V29yZDMy QXRvbWljRXhjaGFuZ2UoTm9kZSogbm9kZSkgeworKyAgQXJjaE9wY29kZSBvcGNvZGUgPSBrQXJj aE5vcDsKKysgIE1hY2hpbmVUeXBlIHR5cGUgPSBBdG9taWNPcFR5cGUobm9kZS0+b3AoKSk7Cisr ICBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6SW50OCgpKSB7CisrICAgIG9wY29kZSA9IGtXb3Jk MzJBdG9taWNFeGNoYW5nZUludDg7CisrICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6 OlVpbnQ4KCkpIHsKKysgICAgb3Bjb2RlID0ga1dvcmQzMkF0b21pY0V4Y2hhbmdlVWludDg7Cisr ICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6OkludDE2KCkpIHsKKysgICAgb3Bjb2Rl ID0ga1dvcmQzMkF0b21pY0V4Y2hhbmdlSW50MTY7CisrICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFj aGluZVR5cGU6OlVpbnQxNigpKSB7CisrICAgIG9wY29kZSA9IGtXb3JkMzJBdG9taWNFeGNoYW5n ZVVpbnQxNjsKKysgIH0gZWxzZSBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6SW50MzIoKSB8fCB0 eXBlID09IE1hY2hpbmVUeXBlOjpVaW50MzIoKSkgeworKyAgICBvcGNvZGUgPSBrV29yZDMyQXRv bWljRXhjaGFuZ2VXb3JkMzI7CisrICB9IGVsc2UgeworKyAgICBVTlJFQUNIQUJMRSgpOworKyAg ICByZXR1cm47CisrICB9CisrCisrICBWaXNpdEF0b21pY0V4Y2hhbmdlKHRoaXMsIG5vZGUsIG9w Y29kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRBdG9t aWNFeGNoYW5nZShOb2RlKiBub2RlKSB7CisrICBBcmNoT3Bjb2RlIG9wY29kZSA9IGtBcmNoTm9w OworKyAgTWFjaGluZVR5cGUgdHlwZSA9IEF0b21pY09wVHlwZShub2RlLT5vcCgpKTsKKysgIGlm ICh0eXBlID09IE1hY2hpbmVUeXBlOjpVaW50OCgpKSB7CisrICAgIG9wY29kZSA9IGtSaXNjdldv cmQ2NEF0b21pY0V4Y2hhbmdlVWludDg7CisrICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5 cGU6OlVpbnQxNigpKSB7CisrICAgIG9wY29kZSA9IGtSaXNjdldvcmQ2NEF0b21pY0V4Y2hhbmdl VWludDE2OworKyAgfSBlbHNlIGlmICh0eXBlID09IE1hY2hpbmVUeXBlOjpVaW50MzIoKSkgewor KyAgICBvcGNvZGUgPSBrUmlzY3ZXb3JkNjRBdG9taWNFeGNoYW5nZVVpbnQzMjsKKysgIH0gZWxz ZSBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6VWludDY0KCkpIHsKKysgICAgb3Bjb2RlID0ga1Jp c2N2V29yZDY0QXRvbWljRXhjaGFuZ2VVaW50NjQ7CisrICB9IGVsc2UgeworKyAgICBVTlJFQUNI QUJMRSgpOworKyAgICByZXR1cm47CisrICB9CisrICBWaXNpdEF0b21pY0V4Y2hhbmdlKHRoaXMs IG5vZGUsIG9wY29kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRX b3JkMzJBdG9taWNDb21wYXJlRXhjaGFuZ2UoTm9kZSogbm9kZSkgeworKyAgQXJjaE9wY29kZSBv cGNvZGUgPSBrQXJjaE5vcDsKKysgIE1hY2hpbmVUeXBlIHR5cGUgPSBBdG9taWNPcFR5cGUobm9k ZS0+b3AoKSk7CisrICBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6SW50OCgpKSB7CisrICAgIG9w Y29kZSA9IGtXb3JkMzJBdG9taWNDb21wYXJlRXhjaGFuZ2VJbnQ4OworKyAgfSBlbHNlIGlmICh0 eXBlID09IE1hY2hpbmVUeXBlOjpVaW50OCgpKSB7CisrICAgIG9wY29kZSA9IGtXb3JkMzJBdG9t aWNDb21wYXJlRXhjaGFuZ2VVaW50ODsKKysgIH0gZWxzZSBpZiAodHlwZSA9PSBNYWNoaW5lVHlw ZTo6SW50MTYoKSkgeworKyAgICBvcGNvZGUgPSBrV29yZDMyQXRvbWljQ29tcGFyZUV4Y2hhbmdl SW50MTY7CisrICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6OlVpbnQxNigpKSB7Cisr ICAgIG9wY29kZSA9IGtXb3JkMzJBdG9taWNDb21wYXJlRXhjaGFuZ2VVaW50MTY7CisrICB9IGVs c2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6OkludDMyKCkgfHwgdHlwZSA9PSBNYWNoaW5lVHlw ZTo6VWludDMyKCkpIHsKKysgICAgb3Bjb2RlID0ga1dvcmQzMkF0b21pY0NvbXBhcmVFeGNoYW5n ZVdvcmQzMjsKKysgIH0gZWxzZSB7CisrICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIHJldHVybjsK KysgIH0KKysKKysgIFZpc2l0QXRvbWljQ29tcGFyZUV4Y2hhbmdlKHRoaXMsIG5vZGUsIG9wY29k ZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRBdG9taWND b21wYXJlRXhjaGFuZ2UoTm9kZSogbm9kZSkgeworKyAgQXJjaE9wY29kZSBvcGNvZGUgPSBrQXJj aE5vcDsKKysgIE1hY2hpbmVUeXBlIHR5cGUgPSBBdG9taWNPcFR5cGUobm9kZS0+b3AoKSk7Cisr ICBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6VWludDgoKSkgeworKyAgICBvcGNvZGUgPSBrUmlz Y3ZXb3JkNjRBdG9taWNDb21wYXJlRXhjaGFuZ2VVaW50ODsKKysgIH0gZWxzZSBpZiAodHlwZSA9 PSBNYWNoaW5lVHlwZTo6VWludDE2KCkpIHsKKysgICAgb3Bjb2RlID0ga1Jpc2N2V29yZDY0QXRv bWljQ29tcGFyZUV4Y2hhbmdlVWludDE2OworKyAgfSBlbHNlIGlmICh0eXBlID09IE1hY2hpbmVU eXBlOjpVaW50MzIoKSkgeworKyAgICBvcGNvZGUgPSBrUmlzY3ZXb3JkNjRBdG9taWNDb21wYXJl RXhjaGFuZ2VVaW50MzI7CisrICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6OlVpbnQ2 NCgpKSB7CisrICAgIG9wY29kZSA9IGtSaXNjdldvcmQ2NEF0b21pY0NvbXBhcmVFeGNoYW5nZVVp bnQ2NDsKKysgIH0gZWxzZSB7CisrICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIHJldHVybjsKKysg IH0KKysgIFZpc2l0QXRvbWljQ29tcGFyZUV4Y2hhbmdlKHRoaXMsIG5vZGUsIG9wY29kZSk7Cisr fQorK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRXb3JkMzJBdG9taWNCaW5hcnlPcGVy YXRpb24oCisrICAgIE5vZGUqIG5vZGUsIEFyY2hPcGNvZGUgaW50OF9vcCwgQXJjaE9wY29kZSB1 aW50OF9vcCwgQXJjaE9wY29kZSBpbnQxNl9vcCwKKysgICAgQXJjaE9wY29kZSB1aW50MTZfb3As IEFyY2hPcGNvZGUgd29yZDMyX29wKSB7CisrICBBcmNoT3Bjb2RlIG9wY29kZSA9IGtBcmNoTm9w OworKyAgTWFjaGluZVR5cGUgdHlwZSA9IEF0b21pY09wVHlwZShub2RlLT5vcCgpKTsKKysgIGlm ICh0eXBlID09IE1hY2hpbmVUeXBlOjpJbnQ4KCkpIHsKKysgICAgb3Bjb2RlID0gaW50OF9vcDsK KysgIH0gZWxzZSBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6VWludDgoKSkgeworKyAgICBvcGNv ZGUgPSB1aW50OF9vcDsKKysgIH0gZWxzZSBpZiAodHlwZSA9PSBNYWNoaW5lVHlwZTo6SW50MTYo KSkgeworKyAgICBvcGNvZGUgPSBpbnQxNl9vcDsKKysgIH0gZWxzZSBpZiAodHlwZSA9PSBNYWNo aW5lVHlwZTo6VWludDE2KCkpIHsKKysgICAgb3Bjb2RlID0gdWludDE2X29wOworKyAgfSBlbHNl IGlmICh0eXBlID09IE1hY2hpbmVUeXBlOjpJbnQzMigpIHx8IHR5cGUgPT0gTWFjaGluZVR5cGU6 OlVpbnQzMigpKSB7CisrICAgIG9wY29kZSA9IHdvcmQzMl9vcDsKKysgIH0gZWxzZSB7CisrICAg IFVOUkVBQ0hBQkxFKCk7CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIFZpc2l0QXRvbWljQmlu b3AodGhpcywgbm9kZSwgb3Bjb2RlKTsKKyt9CisrCisrI2RlZmluZSBWSVNJVF9BVE9NSUNfQklO T1Aob3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB2b2lkIEluc3Ry dWN0aW9uU2VsZWN0b3I6OlZpc2l0V29yZDMyQXRvbWljIyNvcChOb2RlKiBub2RlKSB7ICBcCisr ICAgIFZpc2l0V29yZDMyQXRvbWljQmluYXJ5T3BlcmF0aW9uKCAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisrICAgICAgICBub2RlLCBrV29yZDMyQXRvbWljIyNvcCMjSW50OCwga1dvcmQz MkF0b21pYyMjb3AjI1VpbnQ4LCBcCisrICAgICAgICBrV29yZDMyQXRvbWljIyNvcCMjSW50MTYs IGtXb3JkMzJBdG9taWMjI29wIyNVaW50MTYsICAgICBcCisrICAgICAgICBrV29yZDMyQXRvbWlj IyNvcCMjV29yZDMyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB9CisrVklT SVRfQVRPTUlDX0JJTk9QKEFkZCkKKytWSVNJVF9BVE9NSUNfQklOT1AoU3ViKQorK1ZJU0lUX0FU T01JQ19CSU5PUChBbmQpCisrVklTSVRfQVRPTUlDX0JJTk9QKE9yKQorK1ZJU0lUX0FUT01JQ19C SU5PUChYb3IpCisrI3VuZGVmIFZJU0lUX0FUT01JQ19CSU5PUAorKworK3ZvaWQgSW5zdHJ1Y3Rp b25TZWxlY3Rvcjo6VmlzaXRXb3JkNjRBdG9taWNCaW5hcnlPcGVyYXRpb24oCisrICAgIE5vZGUq IG5vZGUsIEFyY2hPcGNvZGUgdWludDhfb3AsIEFyY2hPcGNvZGUgdWludDE2X29wLCBBcmNoT3Bj b2RlIHVpbnQzMl9vcCwKKysgICAgQXJjaE9wY29kZSB1aW50NjRfb3ApIHsKKysgIEFyY2hPcGNv ZGUgb3Bjb2RlID0ga0FyY2hOb3A7CisrICBNYWNoaW5lVHlwZSB0eXBlID0gQXRvbWljT3BUeXBl KG5vZGUtPm9wKCkpOworKyAgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6OlVpbnQ4KCkpIHsKKysg ICAgb3Bjb2RlID0gdWludDhfb3A7CisrICB9IGVsc2UgaWYgKHR5cGUgPT0gTWFjaGluZVR5cGU6 OlVpbnQxNigpKSB7CisrICAgIG9wY29kZSA9IHVpbnQxNl9vcDsKKysgIH0gZWxzZSBpZiAodHlw ZSA9PSBNYWNoaW5lVHlwZTo6VWludDMyKCkpIHsKKysgICAgb3Bjb2RlID0gdWludDMyX29wOwor KyAgfSBlbHNlIGlmICh0eXBlID09IE1hY2hpbmVUeXBlOjpVaW50NjQoKSkgeworKyAgICBvcGNv ZGUgPSB1aW50NjRfb3A7CisrICB9IGVsc2UgeworKyAgICBVTlJFQUNIQUJMRSgpOworKyAgICBy ZXR1cm47CisrICB9CisrICBWaXNpdEF0b21pY0Jpbm9wKHRoaXMsIG5vZGUsIG9wY29kZSk7Cisr fQorKworKyNkZWZpbmUgVklTSVRfQVRPTUlDX0JJTk9QKG9wKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9y OjpWaXNpdFdvcmQ2NEF0b21pYyMjb3AoTm9kZSogbm9kZSkgeyAgICAgICAgICAgICAgXAorKyAg ICBWaXNpdFdvcmQ2NEF0b21pY0JpbmFyeU9wZXJhdGlvbiggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgbm9kZSwga1Jpc2N2V29yZDY0QXRvbWljIyNv cCMjVWludDgsIGtSaXNjdldvcmQ2NEF0b21pYyMjb3AjI1VpbnQxNiwgXAorKyAgICAgICAga1Jp c2N2V29yZDY0QXRvbWljIyNvcCMjVWludDMyLCBrUmlzY3ZXb3JkNjRBdG9taWMjI29wIyNVaW50 NjQpOyAgICAgXAorKyAgfQorK1ZJU0lUX0FUT01JQ19CSU5PUChBZGQpCisrVklTSVRfQVRPTUlD X0JJTk9QKFN1YikKKytWSVNJVF9BVE9NSUNfQklOT1AoQW5kKQorK1ZJU0lUX0FUT01JQ19CSU5P UChPcikKKytWSVNJVF9BVE9NSUNfQklOT1AoWG9yKQorKyN1bmRlZiBWSVNJVF9BVE9NSUNfQklO T1AKKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0SW50MzJBYnNXaXRoT3ZlcmZs b3coTm9kZSogbm9kZSkgeworKyAgVU5SRUFDSEFCTEUoKTsKKyt9CisrCisrdm9pZCBJbnN0cnVj dGlvblNlbGVjdG9yOjpWaXNpdEludDY0QWJzV2l0aE92ZXJmbG93KE5vZGUqIG5vZGUpIHsKKysg IFVOUkVBQ0hBQkxFKCk7CisrfQorKworKyNkZWZpbmUgU0lNRF9UWVBFX0xJU1QoVikgXAorKyAg VihGMzJ4NCkgICAgICAgICAgICAgICAgXAorKyAgVihJMzJ4NCkgICAgICAgICAgICAgICAgXAor KyAgVihJMTZ4OCkgICAgICAgICAgICAgICAgXAorKyAgVihJOHgxNikKKysKKysjZGVmaW5lIFNJ TURfVU5PUF9MSVNUKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihG NjR4MkFicywga1Jpc2N2RjY0eDJBYnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisr ICBWKEY2NHgyTmVnLCBrUmlzY3ZGNjR4Mk5lZykgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIFYoRjY0eDJTcXJ0LCBrUmlzY3ZGNjR4MlNxcnQpICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgVihGNjR4MkNlaWwsIGtSaXNjdkY2NHgyQ2VpbCkgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICBWKEY2NHgyRmxvb3IsIGtSaXNjdkY2NHgyRmxvb3IpICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJUcnVuYywga1Jpc2N2RjY0eDJUcnVuYykgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihGNjR4Mk5lYXJlc3RJbnQsIGtSaXNjdkY2NHgy TmVhcmVzdEludCkgICAgICAgICAgICAgICBcCisrICBWKEk2NHgyTmVnLCBrUmlzY3ZJNjR4Mk5l ZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjMyeDRTQ29udmVydEkzMng0 LCBrUmlzY3ZGMzJ4NFNDb252ZXJ0STMyeDQpICAgICAgICAgXAorKyAgVihGMzJ4NFVDb252ZXJ0 STMyeDQsIGtSaXNjdkYzMng0VUNvbnZlcnRJMzJ4NCkgICAgICAgICBcCisrICBWKEYzMng0QWJz LCBrUmlzY3ZGMzJ4NEFicykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjMy eDROZWcsIGtSaXNjdkYzMng0TmVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg VihGMzJ4NFNxcnQsIGtSaXNjdkYzMng0U3FydCkgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICBWKEYzMng0UmVjaXBBcHByb3gsIGtSaXNjdkYzMng0UmVjaXBBcHByb3gpICAgICAgICAg ICAgIFwKKysgIFYoRjMyeDRSZWNpcFNxcnRBcHByb3gsIGtSaXNjdkYzMng0UmVjaXBTcXJ0QXBw cm94KSAgICAgXAorKyAgVihGMzJ4NENlaWwsIGtSaXNjdkYzMng0Q2VpbCkgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICBWKEYzMng0Rmxvb3IsIGtSaXNjdkYzMng0Rmxvb3IpICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjMyeDRUcnVuYywga1Jpc2N2RjMyeDRUcnVuYykg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihGMzJ4NE5lYXJlc3RJbnQsIGtSaXNjdkYz Mng0TmVhcmVzdEludCkgICAgICAgICAgICAgICBcCisrICBWKEkzMng0U0NvbnZlcnRGMzJ4NCwg a1Jpc2N2STMyeDRTQ29udmVydEYzMng0KSAgICAgICAgIFwKKysgIFYoSTMyeDRVQ29udmVydEYz Mng0LCBrUmlzY3ZJMzJ4NFVDb252ZXJ0RjMyeDQpICAgICAgICAgXAorKyAgVihJMzJ4NE5lZywg a1Jpc2N2STMyeDROZWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICBWKEkzMng0 U0NvbnZlcnRJMTZ4OExvdywga1Jpc2N2STMyeDRTQ29udmVydEkxNng4TG93KSAgIFwKKysgIFYo STMyeDRTQ29udmVydEkxNng4SGlnaCwga1Jpc2N2STMyeDRTQ29udmVydEkxNng4SGlnaCkgXAor KyAgVihJMzJ4NFVDb252ZXJ0STE2eDhMb3csIGtSaXNjdkkzMng0VUNvbnZlcnRJMTZ4OExvdykg ICBcCisrICBWKEkzMng0VUNvbnZlcnRJMTZ4OEhpZ2gsIGtSaXNjdkkzMng0VUNvbnZlcnRJMTZ4 OEhpZ2gpIFwKKysgIFYoSTMyeDRBYnMsIGtSaXNjdkkzMng0QWJzKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgVihJMzJ4NEJpdE1hc2ssIGtSaXNjdkkzMng0Qml0TWFzaykgICAg ICAgICAgICAgICAgICAgICBcCisrICBWKEkxNng4TmVnLCBrUmlzY3ZJMTZ4OE5lZykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhTQ29udmVydEk4eDE2TG93LCBrUmlz Y3ZJMTZ4OFNDb252ZXJ0STh4MTZMb3cpICAgXAorKyAgVihJMTZ4OFNDb252ZXJ0STh4MTZIaWdo LCBrUmlzY3ZJMTZ4OFNDb252ZXJ0STh4MTZIaWdoKSBcCisrICBWKEkxNng4VUNvbnZlcnRJOHgx Nkxvdywga1Jpc2N2STE2eDhVQ29udmVydEk4eDE2TG93KSAgIFwKKysgIFYoSTE2eDhVQ29udmVy dEk4eDE2SGlnaCwga1Jpc2N2STE2eDhVQ29udmVydEk4eDE2SGlnaCkgXAorKyAgVihJMTZ4OEFi cywga1Jpc2N2STE2eDhBYnMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICBWKEkx Nng4Qml0TWFzaywga1Jpc2N2STE2eDhCaXRNYXNrKSAgICAgICAgICAgICAgICAgICAgIFwKKysg IFYoSTh4MTZOZWcsIGtSaXNjdkk4eDE2TmVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgVihJOHgxNkFicywga1Jpc2N2STh4MTZBYnMpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICBWKEk4eDE2Qml0TWFzaywga1Jpc2N2STh4MTZCaXRNYXNrKSAgICAgICAgICAg ICAgICAgICAgIFwKKysgIFYoUzEyOE5vdCwga1Jpc2N2UzEyOE5vdCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgVihWMzJ4NEFueVRydWUsIGtSaXNjdlYzMng0QW55VHJ1ZSkg ICAgICAgICAgICAgICAgICAgICBcCisrICBWKFYzMng0QWxsVHJ1ZSwga1Jpc2N2VjMyeDRBbGxU cnVlKSAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoVjE2eDhBbnlUcnVlLCBrUmlzY3ZWMTZ4 OEFueVRydWUpICAgICAgICAgICAgICAgICAgICAgXAorKyAgVihWMTZ4OEFsbFRydWUsIGtSaXNj dlYxNng4QWxsVHJ1ZSkgICAgICAgICAgICAgICAgICAgICBcCisrICBWKFY4eDE2QW55VHJ1ZSwg a1Jpc2N2Vjh4MTZBbnlUcnVlKSAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoVjh4MTZBbGxU cnVlLCBrUmlzY3ZWOHgxNkFsbFRydWUpCisrCisrI2RlZmluZSBTSU1EX1NISUZUX09QX0xJU1Qo VikgXAorKyAgVihJNjR4MlNobCkgICAgICAgICAgICAgICAgIFwKKysgIFYoSTY0eDJTaHJTKSAg ICAgICAgICAgICAgICBcCisrICBWKEk2NHgyU2hyVSkgICAgICAgICAgICAgICAgXAorKyAgVihJ MzJ4NFNobCkgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRTaHJTKSAgICAgICAgICAgICAg ICBcCisrICBWKEkzMng0U2hyVSkgICAgICAgICAgICAgICAgXAorKyAgVihJMTZ4OFNobCkgICAg ICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhTaHJTKSAgICAgICAgICAgICAgICBcCisrICBWKEkx Nng4U2hyVSkgICAgICAgICAgICAgICAgXAorKyAgVihJOHgxNlNobCkgICAgICAgICAgICAgICAg IFwKKysgIFYoSTh4MTZTaHJTKSAgICAgICAgICAgICAgICBcCisrICBWKEk4eDE2U2hyVSkKKysK KysjZGVmaW5lIFNJTURfQklOT1BfTElTVChWKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIFYoRjY0eDJBZGQsIGtSaXNjdkY2NHgyQWRkKSAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgIFYoRjY0eDJTdWIsIGtSaXNjdkY2NHgyU3ViKSAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgIFYoRjY0eDJNdWwsIGtSaXNjdkY2NHgyTXVsKSAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgIFYoRjY0eDJEaXYsIGtSaXNjdkY2NHgyRGl2KSAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJNaW4sIGtSaXNjdkY2NHgyTWluKSAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJNYXgsIGtSaXNjdkY2NHgyTWF4KSAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJFcSwga1Jpc2N2RjY0eDJFcSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJOZSwga1Jpc2N2RjY0eDJOZSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJMdCwga1Jpc2N2RjY0eDJMdCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjY0eDJMZSwga1Jpc2N2RjY0eDJM ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTY0eDJBZGQsIGtSaXNjdkk2 NHgyQWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTY0eDJTdWIsIGtSaXNj dkk2NHgyU3ViKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTY0eDJNdWwsIGtS aXNjdkk2NHgyTXVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjMyeDRBZGQs IGtSaXNjdkYzMng0QWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoRjMyeDRB ZGRIb3Jpeiwga1Jpc2N2RjMyeDRBZGRIb3JpeikgICAgICAgICAgICAgICAgIFwKKysgIFYoRjMy eDRTdWIsIGtSaXNjdkYzMng0U3ViKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYo RjMyeDRNdWwsIGtSaXNjdkYzMng0TXVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg IFYoRjMyeDREaXYsIGtSaXNjdkYzMng0RGl2KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgIFYoRjMyeDRNYXgsIGtSaXNjdkYzMng0TWF4KSAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIFYoRjMyeDRNaW4sIGtSaXNjdkYzMng0TWluKSAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgIFYoRjMyeDRFcSwga1Jpc2N2RjMyeDRFcSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgIFYoRjMyeDROZSwga1Jpc2N2RjMyeDROZSkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgIFYoRjMyeDRMdCwga1Jpc2N2RjMyeDRMdCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKysgIFYoRjMyeDRMZSwga1Jpc2N2RjMyeDRMZSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRBZGQsIGtSaXNjdkkzMng0QWRkKSAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRBZGRIb3Jpeiwga1Jpc2N2STMyeDRBZGRI b3JpeikgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRTdWIsIGtSaXNjdkkzMng0U3ViKSAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRNdWwsIGtSaXNjdkkzMng0TXVs KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRNYXhTLCBrUmlzY3ZJMzJ4 NE1heFMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRNaW5TLCBrUmlzY3ZJ MzJ4NE1pblMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRNYXhVLCBrUmlz Y3ZJMzJ4NE1heFUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRNaW5VLCBr UmlzY3ZJMzJ4NE1pblUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRFcSwg a1Jpc2N2STMyeDRFcSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMyeDRO ZSwga1Jpc2N2STMyeDROZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTMy eDRHdFMsIGtSaXNjdkkzMng0R3RTKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYo STMyeDRHZVMsIGtSaXNjdkkzMng0R2VTKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg IFYoSTMyeDRHdFUsIGtSaXNjdkkzMng0R3RVKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgIFYoSTMyeDRHZVUsIGtSaXNjdkkzMng0R2VVKSAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIFYoSTE2eDhBZGQsIGtSaXNjdkkxNng4QWRkKSAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysgIFYoSTE2eDhBZGRTYXR1cmF0ZVMsIGtSaXNjdkkxNng4QWRkU2F0dXJhdGVTKSAg ICAgICAgIFwKKysgIFYoSTE2eDhBZGRTYXR1cmF0ZVUsIGtSaXNjdkkxNng4QWRkU2F0dXJhdGVV KSAgICAgICAgIFwKKysgIFYoSTE2eDhBZGRIb3Jpeiwga1Jpc2N2STE2eDhBZGRIb3JpeikgICAg ICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhTdWIsIGtSaXNjdkkxNng4U3ViKSAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhTdWJTYXR1cmF0ZVMsIGtSaXNjdkkxNng4U3Vi U2F0dXJhdGVTKSAgICAgICAgIFwKKysgIFYoSTE2eDhTdWJTYXR1cmF0ZVUsIGtSaXNjdkkxNng4 U3ViU2F0dXJhdGVVKSAgICAgICAgIFwKKysgIFYoSTE2eDhNdWwsIGtSaXNjdkkxNng4TXVsKSAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhNYXhTLCBrUmlzY3ZJMTZ4OE1h eFMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhNaW5TLCBrUmlzY3ZJMTZ4 OE1pblMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhNYXhVLCBrUmlzY3ZJ MTZ4OE1heFUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhNaW5VLCBrUmlz Y3ZJMTZ4OE1pblUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhFcSwga1Jp c2N2STE2eDhFcSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhOZSwg a1Jpc2N2STE2eDhOZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2eDhH dFMsIGtSaXNjdkkxNng4R3RTKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTE2 eDhHZVMsIGtSaXNjdkkxNng4R2VTKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYo STE2eDhHdFUsIGtSaXNjdkkxNng4R3RVKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg IFYoSTE2eDhHZVUsIGtSaXNjdkkxNng4R2VVKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgIFYoSTE2eDhSb3VuZGluZ0F2ZXJhZ2VVLCBrUmlzY3ZJMTZ4OFJvdW5kaW5nQXZlcmFnZVUp IFwKKysgIFYoSTE2eDhTQ29udmVydEkzMng0LCBrUmlzY3ZJMTZ4OFNDb252ZXJ0STMyeDQpICAg ICAgIFwKKysgIFYoSTE2eDhVQ29udmVydEkzMng0LCBrUmlzY3ZJMTZ4OFVDb252ZXJ0STMyeDQp ICAgICAgIFwKKysgIFYoSTh4MTZBZGQsIGtSaXNjdkk4eDE2QWRkKSAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgIFYoSTh4MTZBZGRTYXR1cmF0ZVMsIGtSaXNjdkk4eDE2QWRkU2F0dXJh dGVTKSAgICAgICAgIFwKKysgIFYoSTh4MTZBZGRTYXR1cmF0ZVUsIGtSaXNjdkk4eDE2QWRkU2F0 dXJhdGVVKSAgICAgICAgIFwKKysgIFYoSTh4MTZTdWIsIGtSaXNjdkk4eDE2U3ViKSAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZTdWJTYXR1cmF0ZVMsIGtSaXNjdkk4eDE2 U3ViU2F0dXJhdGVTKSAgICAgICAgIFwKKysgIFYoSTh4MTZTdWJTYXR1cmF0ZVUsIGtSaXNjdkk4 eDE2U3ViU2F0dXJhdGVVKSAgICAgICAgIFwKKysgIFYoSTh4MTZNdWwsIGtSaXNjdkk4eDE2TXVs KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZNYXhTLCBrUmlzY3ZJOHgx Nk1heFMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZNaW5TLCBrUmlzY3ZJ OHgxNk1pblMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZNYXhVLCBrUmlz Y3ZJOHgxNk1heFUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZNaW5VLCBr UmlzY3ZJOHgxNk1pblUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZFcSwg a1Jpc2N2STh4MTZFcSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4MTZO ZSwga1Jpc2N2STh4MTZOZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYoSTh4 MTZHdFMsIGtSaXNjdkk4eDE2R3RTKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIFYo STh4MTZHZVMsIGtSaXNjdkk4eDE2R2VTKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg IFYoSTh4MTZHdFUsIGtSaXNjdkk4eDE2R3RVKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgIFYoSTh4MTZHZVUsIGtSaXNjdkk4eDE2R2VVKSAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIFYoSTh4MTZSb3VuZGluZ0F2ZXJhZ2VVLCBrUmlzY3ZJOHgxNlJvdW5kaW5nQXZlcmFn ZVUpIFwKKysgIFYoSTh4MTZTQ29udmVydEkxNng4LCBrUmlzY3ZJOHgxNlNDb252ZXJ0STE2eDgp ICAgICAgIFwKKysgIFYoSTh4MTZVQ29udmVydEkxNng4LCBrUmlzY3ZJOHgxNlVDb252ZXJ0STE2 eDgpICAgICAgIFwKKysgIFYoUzEyOEFuZCwga1Jpc2N2UzEyOEFuZCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKysgIFYoUzEyOE9yLCBrUmlzY3ZTMTI4T3IpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIFYoUzEyOFhvciwga1Jpc2N2UzEyOFhvcikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgIFYoUzEyOEFuZE5vdCwga1Jpc2N2UzEyOEFuZE5vdCkK KysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0UzEyOENvbnN0KE5vZGUqIG5vZGUp IHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgc3RhdGljIGNvbnN0IGlu dCBrVWludDMySW1tZWRpYXRlcyA9IGtTaW1kMTI4U2l6ZSAvIHNpemVvZih1aW50MzJfdCk7Cisr ICB1aW50MzJfdCB2YWxba1VpbnQzMkltbWVkaWF0ZXNdOworKyAgbWVtY3B5KHZhbCwgUzEyOElt bWVkaWF0ZVBhcmFtZXRlck9mKG5vZGUtPm9wKCkpLmRhdGEoKSwga1NpbWQxMjhTaXplKTsKKysg IC8vIElmIGFsbCBieXRlcyBhcmUgemVyb3Mgb3Igb25lcywgYXZvaWQgZW1pdHRpbmcgY29kZSBm b3IgZ2VuZXJpYyBjb25zdGFudHMKKysgIGJvb2wgYWxsX3plcm9zID0gISh2YWxbMF0gfHwgdmFs WzFdIHx8IHZhbFsyXSB8fCB2YWxbM10pOworKyAgYm9vbCBhbGxfb25lcyA9IHZhbFswXSA9PSBV SU5UMzJfTUFYICYmIHZhbFsxXSA9PSBVSU5UMzJfTUFYICYmCisrICAgICAgICAgICAgICAgICAg dmFsWzJdID09IFVJTlQzMl9NQVggJiYgdmFsWzNdID09IFVJTlQzMl9NQVg7CisrICBJbnN0cnVj dGlvbk9wZXJhbmQgZHN0ID0gZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpOworKyAgaWYgKGFsbF96 ZXJvcykgeworKyAgICBFbWl0KGtSaXNjdlMxMjhaZXJvLCBkc3QpOworKyAgfSBlbHNlIGlmIChh bGxfb25lcykgeworKyAgICBFbWl0KGtSaXNjdlMxMjhBbGxPbmVzLCBkc3QpOworKyAgfSBlbHNl IHsKKysgICAgRW1pdChrUmlzY3ZTMTI4Q29uc3QsIGRzdCwgZy5Vc2VJbW1lZGlhdGUodmFsWzBd KSwgZy5Vc2VJbW1lZGlhdGUodmFsWzFdKSwKKysgICAgICAgICBnLlVzZUltbWVkaWF0ZSh2YWxb Ml0pLCBnLlVzZUltbWVkaWF0ZSh2YWxbM10pKTsKKysgIH0KKyt9CisrCisrdm9pZCBJbnN0cnVj dGlvblNlbGVjdG9yOjpWaXNpdFMxMjhaZXJvKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFu ZEdlbmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChrUmlzY3ZTMTI4WmVybywgZy5EZWZpbmVBc1Jl Z2lzdGVyKG5vZGUpKTsKKyt9CisrCisrI2RlZmluZSBTSU1EX1ZJU0lUX1NQTEFUKFR5cGUpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIHZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rv cjo6VmlzaXQjI1R5cGUjI1NwbGF0KE5vZGUqIG5vZGUpIHsgXAorKyAgICBWaXNpdFJSKHRoaXMs IGtSaXNjdiMjVHlwZSMjU3BsYXQsIG5vZGUpOyAgICAgICAgICAgICAgICBcCisrICB9CisrU0lN RF9UWVBFX0xJU1QoU0lNRF9WSVNJVF9TUExBVCkKKytTSU1EX1ZJU0lUX1NQTEFUKEY2NHgyKQor KyN1bmRlZiBTSU1EX1ZJU0lUX1NQTEFUCisrCisrI2RlZmluZSBTSU1EX1ZJU0lUX0VYVFJBQ1Rf TEFORShUeXBlLCBTaWduKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIHZvaWQg SW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXQjI1R5cGUjI0V4dHJhY3RMYW5lIyNTaWduKE5vZGUq IG5vZGUpIHsgXAorKyAgICBWaXNpdFJSSSh0aGlzLCBrUmlzY3YjI1R5cGUjI0V4dHJhY3RMYW5l IyNTaWduLCBub2RlKTsgICAgICAgICAgICAgICBcCisrICB9CisrU0lNRF9WSVNJVF9FWFRSQUNU X0xBTkUoRjY0eDIsICkKKytTSU1EX1ZJU0lUX0VYVFJBQ1RfTEFORShGMzJ4NCwgKQorK1NJTURf VklTSVRfRVhUUkFDVF9MQU5FKEkzMng0LCApCisrU0lNRF9WSVNJVF9FWFRSQUNUX0xBTkUoSTE2 eDgsIFUpCisrU0lNRF9WSVNJVF9FWFRSQUNUX0xBTkUoSTE2eDgsIFMpCisrU0lNRF9WSVNJVF9F WFRSQUNUX0xBTkUoSTh4MTYsIFUpCisrU0lNRF9WSVNJVF9FWFRSQUNUX0xBTkUoSTh4MTYsIFMp CisrI3VuZGVmIFNJTURfVklTSVRfRVhUUkFDVF9MQU5FCisrCisrI2RlZmluZSBTSU1EX1ZJU0lU X1JFUExBQ0VfTEFORShUeXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgIHZv aWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXQjI1R5cGUjI1JlcGxhY2VMYW5lKE5vZGUqIG5v ZGUpIHsgXAorKyAgICBWaXNpdFJSSVIodGhpcywga1Jpc2N2IyNUeXBlIyNSZXBsYWNlTGFuZSwg bm9kZSk7ICAgICAgICAgICAgICBcCisrICB9CisrU0lNRF9UWVBFX0xJU1QoU0lNRF9WSVNJVF9S RVBMQUNFX0xBTkUpCisrU0lNRF9WSVNJVF9SRVBMQUNFX0xBTkUoRjY0eDIpCisrI3VuZGVmIFNJ TURfVklTSVRfUkVQTEFDRV9MQU5FCisrCisrI2RlZmluZSBTSU1EX1ZJU0lUX1VOT1AoTmFtZSwg aW5zdHJ1Y3Rpb24pICAgICAgICAgICAgXAorKyAgdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpW aXNpdCMjTmFtZShOb2RlKiBub2RlKSB7IFwKKysgICAgVmlzaXRSUih0aGlzLCBpbnN0cnVjdGlv biwgbm9kZSk7ICAgICAgICAgICAgICAgICBcCisrICB9CisrU0lNRF9VTk9QX0xJU1QoU0lNRF9W SVNJVF9VTk9QKQorKyN1bmRlZiBTSU1EX1ZJU0lUX1VOT1AKKysKKysjZGVmaW5lIFNJTURfVklT SVRfU0hJRlRfT1AoTmFtZSkgICAgICAgICAgICAgICAgICAgICBcCisrICB2b2lkIEluc3RydWN0 aW9uU2VsZWN0b3I6OlZpc2l0IyNOYW1lKE5vZGUqIG5vZGUpIHsgXAorKyAgICBWaXNpdFNpbWRT aGlmdCh0aGlzLCBrUmlzY3YjI05hbWUsIG5vZGUpOyAgICAgICAgIFwKKysgIH0KKytTSU1EX1NI SUZUX09QX0xJU1QoU0lNRF9WSVNJVF9TSElGVF9PUCkKKysjdW5kZWYgU0lNRF9WSVNJVF9TSElG VF9PUAorKworKyNkZWZpbmUgU0lNRF9WSVNJVF9CSU5PUChOYW1lLCBpbnN0cnVjdGlvbikgICAg ICAgICAgIFwKKysgIHZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXQjI05hbWUoTm9kZSog bm9kZSkgeyBcCisrICAgIFZpc2l0UlJSKHRoaXMsIGluc3RydWN0aW9uLCBub2RlKTsgICAgICAg ICAgICAgICAgXAorKyAgfQorK1NJTURfQklOT1BfTElTVChTSU1EX1ZJU0lUX0JJTk9QKQorKyN1 bmRlZiBTSU1EX1ZJU0lUX0JJTk9QCisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNp dFMxMjhTZWxlY3QoTm9kZSogbm9kZSkgeworKyAgVmlzaXRSUlJSKHRoaXMsIGtSaXNjdlMxMjhT ZWxlY3QsIG5vZGUpOworK30KKysKKytuYW1lc3BhY2UgeworKworK3N0cnVjdCBTaHVmZmxlRW50 cnkgeworKyAgdWludDhfdCBzaHVmZmxlW2tTaW1kMTI4U2l6ZV07CisrICBBcmNoT3Bjb2RlIG9w Y29kZTsKKyt9OworKworK3N0YXRpYyBjb25zdCBTaHVmZmxlRW50cnkgYXJjaF9zaHVmZmxlc1td ID0geworKyAgICB7ezAsIDEsIDIsIDMsIDE2LCAxNywgMTgsIDE5LCA0LCA1LCA2LCA3LCAyMCwg MjEsIDIyLCAyM30sCisrICAgICBrUmlzY3ZTMzJ4NEludGVybGVhdmVSaWdodH0sCisrICAgIHt7 OCwgOSwgMTAsIDExLCAyNCwgMjUsIDI2LCAyNywgMTIsIDEzLCAxNCwgMTUsIDI4LCAyOSwgMzAs IDMxfSwKKysgICAgIGtSaXNjdlMzMng0SW50ZXJsZWF2ZUxlZnR9LAorKyAgICB7ezAsIDEsIDIs IDMsIDgsIDksIDEwLCAxMSwgMTYsIDE3LCAxOCwgMTksIDI0LCAyNSwgMjYsIDI3fSwKKysgICAg IGtSaXNjdlMzMng0UGFja0V2ZW59LAorKyAgICB7ezQsIDUsIDYsIDcsIDEyLCAxMywgMTQsIDE1 LCAyMCwgMjEsIDIyLCAyMywgMjgsIDI5LCAzMCwgMzF9LAorKyAgICAga1Jpc2N2UzMyeDRQYWNr T2RkfSwKKysgICAge3swLCAxLCAyLCAzLCAxNiwgMTcsIDE4LCAxOSwgOCwgOSwgMTAsIDExLCAy NCwgMjUsIDI2LCAyN30sCisrICAgICBrUmlzY3ZTMzJ4NEludGVybGVhdmVFdmVufSwKKysgICAg e3s0LCA1LCA2LCA3LCAyMCwgMjEsIDIyLCAyMywgMTIsIDEzLCAxNCwgMTUsIDI4LCAyOSwgMzAs IDMxfSwKKysgICAgIGtSaXNjdlMzMng0SW50ZXJsZWF2ZU9kZH0sCisrCisrICAgIHt7MCwgMSwg MTYsIDE3LCAyLCAzLCAxOCwgMTksIDQsIDUsIDIwLCAyMSwgNiwgNywgMjIsIDIzfSwKKysgICAg IGtSaXNjdlMxNng4SW50ZXJsZWF2ZVJpZ2h0fSwKKysgICAge3s4LCA5LCAyNCwgMjUsIDEwLCAx MSwgMjYsIDI3LCAxMiwgMTMsIDI4LCAyOSwgMTQsIDE1LCAzMCwgMzF9LAorKyAgICAga1Jpc2N2 UzE2eDhJbnRlcmxlYXZlTGVmdH0sCisrICAgIHt7MCwgMSwgNCwgNSwgOCwgOSwgMTIsIDEzLCAx NiwgMTcsIDIwLCAyMSwgMjQsIDI1LCAyOCwgMjl9LAorKyAgICAga1Jpc2N2UzE2eDhQYWNrRXZl bn0sCisrICAgIHt7MiwgMywgNiwgNywgMTAsIDExLCAxNCwgMTUsIDE4LCAxOSwgMjIsIDIzLCAy NiwgMjcsIDMwLCAzMX0sCisrICAgICBrUmlzY3ZTMTZ4OFBhY2tPZGR9LAorKyAgICB7ezAsIDEs IDE2LCAxNywgNCwgNSwgMjAsIDIxLCA4LCA5LCAyNCwgMjUsIDEyLCAxMywgMjgsIDI5fSwKKysg ICAgIGtSaXNjdlMxNng4SW50ZXJsZWF2ZUV2ZW59LAorKyAgICB7ezIsIDMsIDE4LCAxOSwgNiwg NywgMjIsIDIzLCAxMCwgMTEsIDI2LCAyNywgMTQsIDE1LCAzMCwgMzF9LAorKyAgICAga1Jpc2N2 UzE2eDhJbnRlcmxlYXZlT2RkfSwKKysgICAge3s2LCA3LCA0LCA1LCAyLCAzLCAwLCAxLCAxNCwg MTUsIDEyLCAxMywgMTAsIDExLCA4LCA5fSwKKysgICAgIGtSaXNjdlMxNng0UmV2ZXJzZX0sCisr ICAgIHt7MiwgMywgMCwgMSwgNiwgNywgNCwgNSwgMTAsIDExLCA4LCA5LCAxNCwgMTUsIDEyLCAx M30sCisrICAgICBrUmlzY3ZTMTZ4MlJldmVyc2V9LAorKworKyAgICB7ezAsIDE2LCAxLCAxNywg MiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyM30sCisrICAgICBrUmlzY3ZT OHgxNkludGVybGVhdmVSaWdodH0sCisrICAgIHt7OCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAy NywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxfSwKKysgICAgIGtSaXNjdlM4eDE2SW50 ZXJsZWF2ZUxlZnR9LAorKyAgICB7ezAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQsIDE2LCAxOCwg MjAsIDIyLCAyNCwgMjYsIDI4LCAzMH0sCisrICAgICBrUmlzY3ZTOHgxNlBhY2tFdmVufSwKKysg ICAge3sxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1LCAxNywgMTksIDIxLCAyMywgMjUsIDI3LCAy OSwgMzF9LAorKyAgICAga1Jpc2N2Uzh4MTZQYWNrT2RkfSwKKysgICAge3swLCAxNiwgMiwgMTgs IDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzB9LAorKyAgICAga1Jp c2N2Uzh4MTZJbnRlcmxlYXZlRXZlbn0sCisrICAgIHt7MSwgMTcsIDMsIDE5LCA1LCAyMSwgNywg MjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxfSwKKysgICAgIGtSaXNjdlM4eDE2SW50 ZXJsZWF2ZU9kZH0sCisrICAgIHt7NywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywg MTIsIDExLCAxMCwgOSwgOH0sIGtSaXNjdlM4eDhSZXZlcnNlfSwKKysgICAge3szLCAyLCAxLCAw LCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyfSwga1Jpc2N2Uzh4NFJl dmVyc2V9LAorKyAgICB7ezEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMs IDEyLCAxNSwgMTR9LAorKyAgICAga1Jpc2N2Uzh4MlJldmVyc2V9fTsKKysKKytib29sIFRyeU1h dGNoQXJjaFNodWZmbGUoY29uc3QgdWludDhfdCogc2h1ZmZsZSwgY29uc3QgU2h1ZmZsZUVudHJ5 KiB0YWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bV9lbnRyaWVzLCBi b29sIGlzX3N3aXp6bGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgIEFyY2hPcGNvZGUqIG9w Y29kZSkgeworKyAgdWludDhfdCBtYXNrID0gaXNfc3dpenpsZSA/IGtTaW1kMTI4U2l6ZSAtIDEg OiAyICoga1NpbWQxMjhTaXplIC0gMTsKKysgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX2Vu dHJpZXM7ICsraSkgeworKyAgICBjb25zdCBTaHVmZmxlRW50cnkmIGVudHJ5ID0gdGFibGVbaV07 CisrICAgIGludCBqID0gMDsKKysgICAgZm9yICg7IGogPCBrU2ltZDEyOFNpemU7ICsraikgewor KyAgICAgIGlmICgoZW50cnkuc2h1ZmZsZVtqXSAmIG1hc2spICE9IChzaHVmZmxlW2pdICYgbWFz aykpIHsKKysgICAgICAgIGJyZWFrOworKyAgICAgIH0KKysgICAgfQorKyAgICBpZiAoaiA9PSBr U2ltZDEyOFNpemUpIHsKKysgICAgICAqb3Bjb2RlID0gZW50cnkub3Bjb2RlOworKyAgICAgIHJl dHVybiB0cnVlOworKyAgICB9CisrICB9CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK30gIC8v IG5hbWVzcGFjZQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRJOHgxNlNodWZm bGUoTm9kZSogbm9kZSkgeworKyAgdWludDhfdCBzaHVmZmxlW2tTaW1kMTI4U2l6ZV07CisrICBi b29sIGlzX3N3aXp6bGU7CisrICBDYW5vbmljYWxpemVTaHVmZmxlKG5vZGUsIHNodWZmbGUsICZp c19zd2l6emxlKTsKKysgIHVpbnQ4X3Qgc2h1ZmZsZTMyeDRbNF07CisrICBBcmNoT3Bjb2RlIG9w Y29kZTsKKysgIGlmIChUcnlNYXRjaEFyY2hTaHVmZmxlKHNodWZmbGUsIGFyY2hfc2h1ZmZsZXMs IGFycmF5c2l6ZShhcmNoX3NodWZmbGVzKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGlz X3N3aXp6bGUsICZvcGNvZGUpKSB7CisrICAgIFZpc2l0UlJSKHRoaXMsIG9wY29kZSwgbm9kZSk7 CisrICAgIHJldHVybjsKKysgIH0KKysgIE5vZGUqIGlucHV0MCA9IG5vZGUtPklucHV0QXQoMCk7 CisrICBOb2RlKiBpbnB1dDEgPSBub2RlLT5JbnB1dEF0KDEpOworKyAgdWludDhfdCBvZmZzZXQ7 CisrICBSaXNjdk9wZXJhbmRHZW5lcmF0b3IgZyh0aGlzKTsKKysgIGlmICh3YXNtOjpTaW1kU2h1 ZmZsZTo6VHJ5TWF0Y2hDb25jYXQoc2h1ZmZsZSwgJm9mZnNldCkpIHsKKysgICAgRW1pdChrUmlz Y3ZTOHgxNkNvbmNhdCwgZy5EZWZpbmVTYW1lQXNGaXJzdChub2RlKSwgZy5Vc2VSZWdpc3Rlcihp bnB1dDEpLAorKyAgICAgICAgIGcuVXNlUmVnaXN0ZXIoaW5wdXQwKSwgZy5Vc2VJbW1lZGlhdGUo b2Zmc2V0KSk7CisrICAgIHJldHVybjsKKysgIH0KKysgIGlmICh3YXNtOjpTaW1kU2h1ZmZsZTo6 VHJ5TWF0Y2gzMng0U2h1ZmZsZShzaHVmZmxlLCBzaHVmZmxlMzJ4NCkpIHsKKysgICAgRW1pdChr UmlzY3ZTMzJ4NFNodWZmbGUsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwgZy5Vc2VSZWdpc3Rl cihpbnB1dDApLAorKyAgICAgICAgIGcuVXNlUmVnaXN0ZXIoaW5wdXQxKSwKKysgICAgICAgICBn LlVzZUltbWVkaWF0ZSh3YXNtOjpTaW1kU2h1ZmZsZTo6UGFjazRMYW5lcyhzaHVmZmxlMzJ4NCkp KTsKKysgICAgcmV0dXJuOworKyAgfQorKyAgRW1pdChrUmlzY3ZJOHgxNlNodWZmbGUsIGcuRGVm aW5lQXNSZWdpc3Rlcihub2RlKSwgZy5Vc2VSZWdpc3RlcihpbnB1dDApLAorKyAgICAgICBnLlVz ZVJlZ2lzdGVyKGlucHV0MSksCisrICAgICAgIGcuVXNlSW1tZWRpYXRlKHdhc206OlNpbWRTaHVm ZmxlOjpQYWNrNExhbmVzKHNodWZmbGUpKSwKKysgICAgICAgZy5Vc2VJbW1lZGlhdGUod2FzbTo6 U2ltZFNodWZmbGU6OlBhY2s0TGFuZXMoc2h1ZmZsZSArIDQpKSwKKysgICAgICAgZy5Vc2VJbW1l ZGlhdGUod2FzbTo6U2ltZFNodWZmbGU6OlBhY2s0TGFuZXMoc2h1ZmZsZSArIDgpKSwKKysgICAg ICAgZy5Vc2VJbW1lZGlhdGUod2FzbTo6U2ltZFNodWZmbGU6OlBhY2s0TGFuZXMoc2h1ZmZsZSAr IDEyKSkpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0STh4MTZTd2l6 emxlKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAg SW5zdHJ1Y3Rpb25PcGVyYW5kIHRlbXBzW10gPSB7Zy5UZW1wU2ltZDEyOFJlZ2lzdGVyKCl9Owor KyAgLy8gV2UgZG9uJ3Qgd2FudCBpbnB1dCAwIG9yIGlucHV0IDEgdG8gYmUgdGhlIHNhbWUgYXMg b3V0cHV0LCBzaW5jZSB3ZSB3aWxsCisrICAvLyBtb2RpZnkgb3V0cHV0IGJlZm9yZSBkbyB0aGUg Y2FsY3VsYXRpb24uCisrICBFbWl0KGtSaXNjdkk4eDE2U3dpenpsZSwgZy5EZWZpbmVBc1JlZ2lz dGVyKG5vZGUpLAorKyAgICAgICBnLlVzZVVuaXF1ZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkp LAorKyAgICAgICBnLlVzZVVuaXF1ZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMSkpLCBhcnJheXNp emUodGVtcHMpLCB0ZW1wcyk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6Vmlz aXRTaWduRXh0ZW5kV29yZDhUb0ludDMyKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdl bmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChrUmlzY3ZTaWduRXh0ZW5kQnl0ZSwgZy5EZWZpbmVB c1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICBnLlVzZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkp KTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdFNpZ25FeHRlbmRXb3Jk MTZUb0ludDMyKE5vZGUqIG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMp OworKyAgRW1pdChrUmlzY3ZTaWduRXh0ZW5kU2hvcnQsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2Rl KSwKKysgICAgICAgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSk7CisrfQorKworK3Zv aWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRTaWduRXh0ZW5kV29yZDhUb0ludDY0KE5vZGUq IG5vZGUpIHsKKysgIFJpc2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChrUmlz Y3ZTaWduRXh0ZW5kQnl0ZSwgZy5EZWZpbmVBc1JlZ2lzdGVyKG5vZGUpLAorKyAgICAgICBnLlVz ZVJlZ2lzdGVyKG5vZGUtPklucHV0QXQoMCkpKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNl bGVjdG9yOjpWaXNpdFNpZ25FeHRlbmRXb3JkMTZUb0ludDY0KE5vZGUqIG5vZGUpIHsKKysgIFJp c2N2T3BlcmFuZEdlbmVyYXRvciBnKHRoaXMpOworKyAgRW1pdChrUmlzY3ZTaWduRXh0ZW5kU2hv cnQsIGcuRGVmaW5lQXNSZWdpc3Rlcihub2RlKSwKKysgICAgICAgZy5Vc2VSZWdpc3Rlcihub2Rl LT5JbnB1dEF0KDApKSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRT aWduRXh0ZW5kV29yZDMyVG9JbnQ2NChOb2RlKiBub2RlKSB7CisrICBSaXNjdk9wZXJhbmRHZW5l cmF0b3IgZyh0aGlzKTsKKysgIEVtaXQoa1Jpc2N2U2hsMzIsIGcuRGVmaW5lQXNSZWdpc3Rlcihu b2RlKSwgZy5Vc2VSZWdpc3Rlcihub2RlLT5JbnB1dEF0KDApKSwKKysgICAgICAgZy5UZW1wSW1t ZWRpYXRlKDApKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEYzMng0 UG1pbihOb2RlKiBub2RlKSB7CisrICBWaXNpdFVuaXF1ZVJSUih0aGlzLCBrUmlzY3ZGMzJ4NFBt aW4sIG5vZGUpOworK30KKysKKyt2b2lkIEluc3RydWN0aW9uU2VsZWN0b3I6OlZpc2l0RjMyeDRQ bWF4KE5vZGUqIG5vZGUpIHsKKysgIFZpc2l0VW5pcXVlUlJSKHRoaXMsIGtSaXNjdkYzMng0UG1h eCwgbm9kZSk7CisrfQorKworK3ZvaWQgSW5zdHJ1Y3Rpb25TZWxlY3Rvcjo6VmlzaXRGNjR4MlBt aW4oTm9kZSogbm9kZSkgeworKyAgVmlzaXRVbmlxdWVSUlIodGhpcywga1Jpc2N2RjY0eDJQbWlu LCBub2RlKTsKKyt9CisrCisrdm9pZCBJbnN0cnVjdGlvblNlbGVjdG9yOjpWaXNpdEY2NHgyUG1h eChOb2RlKiBub2RlKSB7CisrICBWaXNpdFVuaXF1ZVJSUih0aGlzLCBrUmlzY3ZGNjR4MlBtYXgs IG5vZGUpOworK30KKysKKysvLyBzdGF0aWMKKytNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpGbGFn cworK0luc3RydWN0aW9uU2VsZWN0b3I6OlN1cHBvcnRlZE1hY2hpbmVPcGVyYXRvckZsYWdzKCkg eworKyAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6RmxhZ3MgZmxhZ3MgPSBNYWNoaW5lT3BlcmF0 b3JCdWlsZGVyOjprTm9GbGFnczsKKysgIHJldHVybiBmbGFncyB8IE1hY2hpbmVPcGVyYXRvckJ1 aWxkZXI6OmtXb3JkMzJTaGlmdElzU2FmZSB8CisrICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVp bGRlcjo6a0ludDMyRGl2SXNTYWZlIHwKKysgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVy OjprVWludDMyRGl2SXNTYWZlIHwKKysgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpr RmxvYXQ2NFJvdW5kRG93biB8CisrICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zs b2F0MzJSb3VuZERvd24gfAorKyAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9h dDY0Um91bmRVcCB8CisrICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0MzJS b3VuZFVwIHwKKysgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5k VHJ1bmNhdGUgfAorKyAgICAgICAgIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91 bmRUcnVuY2F0ZSB8CisrICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0NjRS b3VuZFRpZXNFdmVuIHwKKysgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQz MlJvdW5kVGllc0V2ZW47CisrfQorKworKy8vIHN0YXRpYworK01hY2hpbmVPcGVyYXRvckJ1aWxk ZXI6OkFsaWdubWVudFJlcXVpcmVtZW50cworK0luc3RydWN0aW9uU2VsZWN0b3I6OkFsaWdubWVu dFJlcXVpcmVtZW50cygpIHsKKysgIHJldHVybiBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpBbGln bm1lbnRSZXF1aXJlbWVudHM6OgorKyAgICAgIE5vVW5hbGlnbmVkQWNjZXNzU3VwcG9ydCgpOwor K30KKysKKysjdW5kZWYgU0lNRF9CSU5PUF9MSVNUCisrI3VuZGVmIFNJTURfU0hJRlRfT1BfTElT VAorKyN1bmRlZiBTSU1EX1VOT1BfTElTVAorKyN1bmRlZiBTSU1EX1RZUEVfTElTVAorKyN1bmRl ZiBUUkFDRV9VTklNUEwKKysjdW5kZWYgVFJBQ0UKKysKKyt9ICAvLyBuYW1lc3BhY2UgY29tcGls ZXIKKyt9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKyt9ICAvLyBuYW1lc3BhY2UgdjgKK0luZGV4 OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9jb21waWxlci9jLWxpbmthZ2UuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2lu ZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3Jj L2NvbXBpbGVyL2MtbGlua2FnZS5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUu MTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvbXBpbGVyL2MtbGlua2FnZS5jYwor QEAgLTEzMSw2ICsxMzEsMTkgQEAgbmFtZXNwYWNlIHsKKyAgIGQ4LmJpdCgpIHwgZDkuYml0KCkg fCBkMTAuYml0KCkgfCBkMTEuYml0KCkgfCBkMTIuYml0KCkgfCBkMTMuYml0KCkgfCBcCisgICAg ICAgZDE0LmJpdCgpIHwgZDE1LmJpdCgpCisgCisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2 NAorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09IHJpc2N2NjQgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysjZGVmaW5lIFBBUkFNX1JFR0lTVEVSUyBhMCwgYTEsIGEyLCBh MywgYTQsIGE1LCBhNiwgYTcKKysvLyBmcCBpcyBub3QgcGFydCBvZiBDQUxMRUVfU0FWRV9SRUdJ U1RFUlMgKHNpbWlsYXIgdG8gaG93IE1JUFM2NCBvciBQUEMgZGVmaW5lcworKy8vIGl0KQorKyNk ZWZpbmUgQ0FMTEVFX1NBVkVfUkVHSVNURVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICBzMS5iaXQoKSB8IHMyLmJpdCgpIHwgczMuYml0KCkg fCBzNC5iaXQoKSB8IHM1LmJpdCgpIHwgczYuYml0KCkgfCBzNy5iaXQoKSB8IFwKKysgICAgICBz OC5iaXQoKSB8IHM5LmJpdCgpIHwgczEwLmJpdCgpIHwgczExLmJpdCgpCisrI2RlZmluZSBDQUxM RUVfU0FWRV9GUF9SRUdJU1RFUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICBmczAuYml0KCkgfCBmczEuYml0KCkgfCBmczIuYml0KCkgfCBmczMuYml0KCkg fCBmczQuYml0KCkgfCBmczUuYml0KCkgfCBcCisrICAgICAgZnM2LmJpdCgpIHwgZnM3LmJpdCgp IHwgZnM4LmJpdCgpIHwgZnM5LmJpdCgpIHwgZnMxMC5iaXQoKSB8IGZzMTEuYml0KCkKKyAjZWxz ZQorIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorIC8vID09IHVua25vd24gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorSW5kZXg6 IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2RlYnVnL2RlYnVnLWV2YWx1YXRlLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Ny Yy9kZWJ1Zy9kZWJ1Zy1ldmFsdWF0ZS5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3Jj LTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2RlYnVnL2RlYnVnLWV2YWx1YXRl LmNjCitAQCAtMTA2MCw4ICsxMDYwLDEwIEBAIHZvaWQgRGVidWdFdmFsdWF0ZTo6VmVyaWZ5VHJh bnNpdGl2ZUJ1aWwKKyAgICAgfQorICAgfQorICAgQ0hFQ0soIWZhaWxlZCk7CistI2lmIGRlZmlu ZWQoVjhfVEFSR0VUX0FSQ0hfUFBDKSB8fCBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1BQQzY0KSB8 fCBcCistICAgIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfTUlQUzY0KQorKyAgLy8gRklYTUUgKFJJ U0NWKTogZG9lcyBSSVNDViBuZWVkIHRoaXM/CisrI2lmIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hf UFBDKSB8fCBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1BQQzY0KSB8fCAgICAgIFwKKysgICAgZGVm aW5lZChWOF9UQVJHRVRfQVJDSF9NSVBTNjQpIHx8IGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUklT Q1Y2NCkgfHwgXAorKyAgICBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1JJU0NWKQorICAgLy8gSXNv bGF0ZS1pbmRlcGVuZGVudCBidWlsdGluIGNhbGxzIGFuZCBqdW1wcyBkbyBub3QgZW1pdCByZWxv YyBpbmZvcworICAgLy8gb24gUFBDLiBXZSB0cnkgdG8gYXZvaWQgdXNpbmcgUEMgcmVsYXRpdmUg Y29kZSBkdWUgdG8gcGVyZm9ybWFuY2UKKyAgIC8vIGlzc3VlIHdpdGggZXNwZWNpYWxseSBvbGRl ciBoYXJkd2FyZXMuCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZGVidWcvcmlzY3Y2NC9kZWJ1Zy1yaXNjdjY0LmNj Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1z cmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZGVidWcvcmlzY3Y2NC9kZWJ1 Zy1yaXNjdjY0LmNjCitAQCAtMCwwICsxLDU1IEBACisrLy8gQ29weXJpZ2h0IDIwMTIgdGhlIFY4 IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBz b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJl CisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWYgVjhfVEFSR0VUX0FSQ0hf UklTQ1Y2NAorKworKyNpbmNsdWRlICJzcmMvY29kZWdlbi9tYWNyby1hc3NlbWJsZXIuaCIKKysj aW5jbHVkZSAic3JjL2RlYnVnL2RlYnVnLmgiCisrI2luY2x1ZGUgInNyYy9kZWJ1Zy9saXZlZWRp dC5oIgorKyNpbmNsdWRlICJzcmMvZXhlY3V0aW9uL2ZyYW1lcy1pbmwuaCIKKysKKytuYW1lc3Bh Y2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7CisrCisrI2RlZmluZSBfXyBBQ0NFU1NfTUFT TShtYXNtKQorKworK3ZvaWQgRGVidWdDb2RlZ2VuOjpHZW5lcmF0ZUhhbmRsZURlYnVnZ2VyU3Rh dGVtZW50KE1hY3JvQXNzZW1ibGVyKiBtYXNtKSB7CisrICB7CisrICAgIEZyYW1lU2NvcGUgc2Nv cGUobWFzbSwgU3RhY2tGcmFtZTo6SU5URVJOQUwpOworKyAgICBfXyBDYWxsUnVudGltZShSdW50 aW1lOjprSGFuZGxlRGVidWdnZXJTdGF0ZW1lbnQsIDApOworKyAgfQorKyAgX18gTWF5YmVEcm9w RnJhbWVzKCk7CisrCisrICAvLyBSZXR1cm4gdG8gY2FsbGVyLgorKyAgX18gUmV0KCk7CisrfQor KworK3ZvaWQgRGVidWdDb2RlZ2VuOjpHZW5lcmF0ZUZyYW1lRHJvcHBlclRyYW1wb2xpbmUoTWFj cm9Bc3NlbWJsZXIqIG1hc20pIHsKKysgIC8vIEZyYW1lIGlzIGJlaW5nIGRyb3BwZWQ6CisrICAv LyAtIERyb3AgdG8gdGhlIHRhcmdldCBmcmFtZSBzcGVjaWZpZWQgYnkgYTEuCisrICAvLyAtIExv b2sgdXAgY3VycmVudCBmdW5jdGlvbiBvbiB0aGUgZnJhbWUuCisrICAvLyAtIExlYXZlIHRoZSBm cmFtZS4KKysgIC8vIC0gUmVzdGFydCB0aGUgZnJhbWUgYnkgY2FsbGluZyB0aGUgZnVuY3Rpb24u CisrICBfXyBtdihmcCwgYTEpOworKyAgX18gTGQoYTEsIE1lbU9wZXJhbmQoZnAsIFN0YW5kYXJk RnJhbWVDb25zdGFudHM6OmtGdW5jdGlvbk9mZnNldCkpOworKworKyAgLy8gUG9wIHJldHVybiBh ZGRyZXNzIGFuZCBmcmFtZS4KKysgIF9fIExlYXZlRnJhbWUoU3RhY2tGcmFtZTo6SU5URVJOQUwp OworKworKyAgX18gTGQoYTAsIEZpZWxkTWVtT3BlcmFuZChhMSwgSlNGdW5jdGlvbjo6a1NoYXJl ZEZ1bmN0aW9uSW5mb09mZnNldCkpOworKyAgX18gTGh1KGEwLAorKyAgICAgICAgIEZpZWxkTWVt T3BlcmFuZChhMCwgU2hhcmVkRnVuY3Rpb25JbmZvOjprRm9ybWFsUGFyYW1ldGVyQ291bnRPZmZz ZXQpKTsKKysgIF9fIG12KGEyLCBhMCk7CisrCisrICBfXyBJbnZva2VGdW5jdGlvbihhMSwgYTIs IGEwLCBKVU1QX0ZVTkNUSU9OKTsKKyt9CisrCisrY29uc3QgYm9vbCBMaXZlRWRpdDo6a0ZyYW1l RHJvcHBlclN1cHBvcnRlZCA9IHRydWU7CisrCisrI3VuZGVmIF9fCisrCisrfSAgLy8gbmFtZXNw YWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBWOF9UQVJH RVRfQVJDSF9SSVNDVjY0CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4z L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZGVvcHRpbWl6ZXIvcmlzY3Y2NC9kZW9wdGlt aXplci1yaXNjdjY0LmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZGVv cHRpbWl6ZXIvcmlzY3Y2NC9kZW9wdGltaXplci1yaXNjdjY0LmNjCitAQCAtMCwwICsxLDI0MCBA QAorKy8vIENvcHlyaWdodCAyMDExIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC U0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp bGUuCisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2VuL21hY3JvLWFzc2VtYmxlci5oIgorKyNpbmNs dWRlICJzcmMvY29kZWdlbi9yZWdpc3Rlci1jb25maWd1cmF0aW9uLmgiCisrI2luY2x1ZGUgInNy Yy9jb2RlZ2VuL3NhZmVwb2ludC10YWJsZS5oIgorKyNpbmNsdWRlICJzcmMvZGVvcHRpbWl6ZXIv ZGVvcHRpbWl6ZXIuaCIKKysKKytuYW1lc3BhY2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7 CisrCisrY29uc3QgYm9vbCBEZW9wdGltaXplcjo6a1N1cHBvcnRzRml4ZWREZW9wdEV4aXRTaXpl cyA9IGZhbHNlOworK2NvbnN0IGludCBEZW9wdGltaXplcjo6a05vbkxhenlEZW9wdEV4aXRTaXpl ID0gMDsKKytjb25zdCBpbnQgRGVvcHRpbWl6ZXI6OmtMYXp5RGVvcHRFeGl0U2l6ZSA9IDA7Cisr CisrI2RlZmluZSBfXyBtYXNtLT4KKysKKysvLyBUaGlzIGNvZGUgdHJpZXMgdG8gYmUgY2xvc2Ug dG8gaWEzMiBjb2RlIHNvIHRoYXQgYW55IGNoYW5nZXMgY2FuIGJlCisrLy8gZWFzaWx5IHBvcnRl ZC4KKyt2b2lkIERlb3B0aW1pemVyOjpHZW5lcmF0ZURlb3B0aW1pemF0aW9uRW50cmllcyhNYWNy b0Fzc2VtYmxlciogbWFzbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJc29sYXRlKiBpc29sYXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERlb3B0aW1pemVLaW5kIGRlb3B0X2tpbmQpIHsKKysgIE5v Um9vdEFycmF5U2NvcGUgbm9fcm9vdF9hcnJheShtYXNtKTsKKysKKysgIC8vIFVubGlrZSBvbiBB Uk0gd2UgZG9uJ3Qgc2F2ZSBhbGwgdGhlIHJlZ2lzdGVycywganVzdCB0aGUgdXNlZnVsIG9uZXMu CisrICAvLyBGb3IgdGhlIHJlc3QsIHRoZXJlIGFyZSBnYXBzIG9uIHRoZSBzdGFjaywgc28gdGhl IG9mZnNldHMgcmVtYWluIHRoZSBzYW1lLgorKyAgY29uc3QgaW50IGtOdW1iZXJPZlJlZ2lzdGVy cyA9IFJlZ2lzdGVyOjprTnVtUmVnaXN0ZXJzOworKworKyAgUmVnTGlzdCByZXN0b3JlZF9yZWdz ID0ga0pTQ2FsbGVyU2F2ZWQgfCBrQ2FsbGVlU2F2ZWQ7CisrICBSZWdMaXN0IHNhdmVkX3JlZ3Mg PSByZXN0b3JlZF9yZWdzIHwgc3AuYml0KCkgfCByYS5iaXQoKTsKKysKKysgIGNvbnN0IGludCBr RG91YmxlUmVnc1NpemUgPSBrRG91YmxlU2l6ZSAqIERvdWJsZVJlZ2lzdGVyOjprTnVtUmVnaXN0 ZXJzOworKworKyAgLy8gU2F2ZSBhbGwgZG91YmxlIEZQVSByZWdpc3RlcnMgYmVmb3JlIG1lc3Np bmcgd2l0aCB0aGVtLgorKyAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVSZWdzU2l6 ZSkpOworKyAgY29uc3QgUmVnaXN0ZXJDb25maWd1cmF0aW9uKiBjb25maWcgPSBSZWdpc3RlckNv bmZpZ3VyYXRpb246OkRlZmF1bHQoKTsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgY29uZmlnLT5u dW1fYWxsb2NhdGFibGVfZG91YmxlX3JlZ2lzdGVycygpOyArK2kpIHsKKysgICAgaW50IGNvZGUg PSBjb25maWctPkdldEFsbG9jYXRhYmxlRG91YmxlQ29kZShpKTsKKysgICAgY29uc3QgRG91Ymxl UmVnaXN0ZXIgZnB1X3JlZyA9IERvdWJsZVJlZ2lzdGVyOjpmcm9tX2NvZGUoY29kZSk7CisrICAg IGludCBvZmZzZXQgPSBjb2RlICoga0RvdWJsZVNpemU7CisrICAgIF9fIFN0b3JlRG91YmxlKGZw dV9yZWcsIE1lbU9wZXJhbmQoc3AsIG9mZnNldCkpOworKyAgfQorKworKyAgLy8gUHVzaCBzYXZl ZF9yZWdzIChuZWVkZWQgdG8gcG9wdWxhdGUgRnJhbWVEZXNjcmlwdGlvbjo6cmVnaXN0ZXJzXyku CisrICAvLyBMZWF2ZSBnYXBzIGZvciBvdGhlciByZWdpc3RlcnMuCisrICBfXyBTdWI2NChzcCwg c3AsIGtOdW1iZXJPZlJlZ2lzdGVycyAqIGtQb2ludGVyU2l6ZSk7CisrICBmb3IgKGludDE2X3Qg aSA9IGtOdW1iZXJPZlJlZ2lzdGVycyAtIDE7IGkgPj0gMDsgaS0tKSB7CisrICAgIGlmICgoc2F2 ZWRfcmVncyAmICgxIDw8IGkpKSAhPSAwKSB7CisrICAgICAgX18gU2QoVG9SZWdpc3RlcihpKSwg TWVtT3BlcmFuZChzcCwga1BvaW50ZXJTaXplICogaSkpOworKyAgICB9CisrICB9CisrCisrICBf XyBsaShhMiwgT3BlcmFuZChFeHRlcm5hbFJlZmVyZW5jZTo6Q3JlYXRlKAorKyAgICAgICAgICAg ICAgICBJc29sYXRlQWRkcmVzc0lkOjprQ0VudHJ5RlBBZGRyZXNzLCBpc29sYXRlKSkpOworKyAg X18gU2QoZnAsIE1lbU9wZXJhbmQoYTIpKTsKKysKKysgIGNvbnN0IGludCBrU2F2ZWRSZWdpc3Rl cnNBcmVhU2l6ZSA9CisrICAgICAgKGtOdW1iZXJPZlJlZ2lzdGVycyAqIGtQb2ludGVyU2l6ZSkg KyBrRG91YmxlUmVnc1NpemU7CisrCisrICAvLyBHZXQgdGhlIGJhaWxvdXQgaXMgcGFzc2VkIGFz IGtSb290UmVnaXN0ZXIgYnkgdGhlIGNhbGxlci4KKysgIF9fIG12KGEyLCBrUm9vdFJlZ2lzdGVy KTsKKysKKysgIC8vIEdldCB0aGUgYWRkcmVzcyBvZiB0aGUgbG9jYXRpb24gaW4gdGhlIGNvZGUg b2JqZWN0IChhMykgKHJldHVybgorKyAgLy8gYWRkcmVzcyBmb3IgbGF6eSBkZW9wdGltaXphdGlv bikgYW5kIGNvbXB1dGUgdGhlIGZwLXRvLXNwIGRlbHRhIGluCisrICAvLyByZWdpc3RlciBhNC4K KysgIF9fIG12KGEzLCByYSk7CisrICBfXyBBZGQ2NChhNCwgc3AsIE9wZXJhbmQoa1NhdmVkUmVn aXN0ZXJzQXJlYVNpemUpKTsKKysKKysgIF9fIFN1YjY0KGE0LCBmcCwgYTQpOworKworKyAgLy8g QWxsb2NhdGUgYSBuZXcgZGVvcHRpbWl6ZXIgb2JqZWN0LgorKyAgX18gUHJlcGFyZUNhbGxDRnVu Y3Rpb24oNiwgYTUpOworKyAgLy8gUGFzcyBzaXggYXJndW1lbnRzLCBhY2NvcmRpbmcgdG8gbjY0 IEFCSS4KKysgIF9fIG12KGEwLCB6ZXJvX3JlZyk7CisrICBMYWJlbCBjb250ZXh0X2NoZWNrOwor KyAgX18gTGQoYTEsIE1lbU9wZXJhbmQoZnAsIENvbW1vbkZyYW1lQ29uc3RhbnRzOjprQ29udGV4 dE9yRnJhbWVUeXBlT2Zmc2V0KSk7CisrICBfXyBKdW1wSWZTbWkoYTEsICZjb250ZXh0X2NoZWNr KTsKKysgIF9fIExkKGEwLCBNZW1PcGVyYW5kKGZwLCBTdGFuZGFyZEZyYW1lQ29uc3RhbnRzOjpr RnVuY3Rpb25PZmZzZXQpKTsKKysgIF9fIGJpbmQoJmNvbnRleHRfY2hlY2spOworKyAgX18gbGko YTEsIE9wZXJhbmQoc3RhdGljX2Nhc3Q8aW50PihkZW9wdF9raW5kKSkpOworKyAgLy8gYTI6IGJh aWxvdXQgaWQgYWxyZWFkeSBsb2FkZWQuCisrICAvLyBhMzogY29kZSBhZGRyZXNzIG9yIDAgYWxy ZWFkeSBsb2FkZWQuCisrICAvLyBhNDogYWxyZWFkeSBoYXMgZnAtdG8tc3AgZGVsdGEuCisrICBf XyBsaShhNSwgT3BlcmFuZChFeHRlcm5hbFJlZmVyZW5jZTo6aXNvbGF0ZV9hZGRyZXNzKGlzb2xh dGUpKSk7CisrCisrICAvLyBDYWxsIERlb3B0aW1pemVyOjpOZXcoKS4KKysgIHsKKysgICAgQWxs b3dFeHRlcm5hbENhbGxUaGF0Q2FudENhdXNlR0Mgc2NvcGUobWFzbSk7CisrICAgIF9fIENhbGxD RnVuY3Rpb24oRXh0ZXJuYWxSZWZlcmVuY2U6Om5ld19kZW9wdGltaXplcl9mdW5jdGlvbigpLCA2 KTsKKysgIH0KKysKKysgIC8vIFByZXNlcnZlICJkZW9wdGltaXplciIgb2JqZWN0IGluIHJlZ2lz dGVyIGEwIGFuZCBnZXQgdGhlIGlucHV0CisrICAvLyBmcmFtZSBkZXNjcmlwdG9yIHBvaW50ZXIg dG8gYTEgKGRlb3B0aW1pemVyLT5pbnB1dF8pOworKyAgLy8gTW92ZSBkZW9wdC1vYmogdG8gYTAg Zm9yIGNhbGwgdG8gRGVvcHRpbWl6ZXI6OkNvbXB1dGVPdXRwdXRGcmFtZXMoKSBiZWxvdy4KKysg IF9fIExkKGExLCBNZW1PcGVyYW5kKGEwLCBEZW9wdGltaXplcjo6aW5wdXRfb2Zmc2V0KCkpKTsK KysKKysgIC8vIENvcHkgY29yZSByZWdpc3RlcnMgaW50byBGcmFtZURlc2NyaXB0aW9uOjpyZWdp c3RlcnNfW2tOdW1SZWdpc3RlcnNdLgorKyAgRENIRUNLX0VRKFJlZ2lzdGVyOjprTnVtUmVnaXN0 ZXJzLCBrTnVtYmVyT2ZSZWdpc3RlcnMpOworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBrTnVtYmVy T2ZSZWdpc3RlcnM7IGkrKykgeworKyAgICBpbnQgb2Zmc2V0ID0gKGkgKiBrUG9pbnRlclNpemUp ICsgRnJhbWVEZXNjcmlwdGlvbjo6cmVnaXN0ZXJzX29mZnNldCgpOworKyAgICBpZiAoKHNhdmVk X3JlZ3MgJiAoMSA8PCBpKSkgIT0gMCkgeworKyAgICAgIF9fIExkKGEyLCBNZW1PcGVyYW5kKHNw LCBpICoga1BvaW50ZXJTaXplKSk7CisrICAgICAgX18gU2QoYTIsIE1lbU9wZXJhbmQoYTEsIG9m ZnNldCkpOworKyAgICB9IGVsc2UgaWYgKEZMQUdfZGVidWdfY29kZSkgeworKyAgICAgIF9fIGxp KGEyLCBrRGVidWdaYXBWYWx1ZSk7CisrICAgICAgX18gU2QoYTIsIE1lbU9wZXJhbmQoYTEsIG9m ZnNldCkpOworKyAgICB9CisrICB9CisrCisrICBpbnQgZG91YmxlX3JlZ3Nfb2Zmc2V0ID0gRnJh bWVEZXNjcmlwdGlvbjo6ZG91YmxlX3JlZ2lzdGVyc19vZmZzZXQoKTsKKysgIC8vIENvcHkgRlBV IHJlZ2lzdGVycyB0bworKyAgLy8gZG91YmxlX3JlZ2lzdGVyc19bRG91YmxlUmVnaXN0ZXI6OmtO dW1BbGxvY2F0YWJsZVJlZ2lzdGVyc10KKysgIGZvciAoaW50IGkgPSAwOyBpIDwgY29uZmlnLT5u dW1fYWxsb2NhdGFibGVfZG91YmxlX3JlZ2lzdGVycygpOyArK2kpIHsKKysgICAgaW50IGNvZGUg PSBjb25maWctPkdldEFsbG9jYXRhYmxlRG91YmxlQ29kZShpKTsKKysgICAgaW50IGRzdF9vZmZz ZXQgPSBjb2RlICoga0RvdWJsZVNpemUgKyBkb3VibGVfcmVnc19vZmZzZXQ7CisrICAgIGludCBz cmNfb2Zmc2V0ID0gY29kZSAqIGtEb3VibGVTaXplICsga051bWJlck9mUmVnaXN0ZXJzICoga1Bv aW50ZXJTaXplOworKyAgICBfXyBMb2FkRG91YmxlKGZ0MCwgTWVtT3BlcmFuZChzcCwgc3JjX29m ZnNldCkpOworKyAgICBfXyBTdG9yZURvdWJsZShmdDAsIE1lbU9wZXJhbmQoYTEsIGRzdF9vZmZz ZXQpKTsKKysgIH0KKysKKysgIC8vIFJlbW92ZSB0aGUgc2F2ZWQgcmVnaXN0ZXJzIGZyb20gdGhl IHN0YWNrLgorKyAgX18gQWRkNjQoc3AsIHNwLCBPcGVyYW5kKGtTYXZlZFJlZ2lzdGVyc0FyZWFT aXplKSk7CisrCisrICAvLyBDb21wdXRlIGEgcG9pbnRlciB0byB0aGUgdW53aW5kaW5nIGxpbWl0 IGluIHJlZ2lzdGVyIGEyOyB0aGF0IGlzCisrICAvLyB0aGUgZmlyc3Qgc3RhY2sgc2xvdCBub3Qg cGFydCBvZiB0aGUgaW5wdXQgZnJhbWUuCisrICBfXyBMZChhMiwgTWVtT3BlcmFuZChhMSwgRnJh bWVEZXNjcmlwdGlvbjo6ZnJhbWVfc2l6ZV9vZmZzZXQoKSkpOworKyAgX18gQWRkNjQoYTIsIGEy LCBzcCk7CisrCisrICAvLyBVbndpbmQgdGhlIHN0YWNrIGRvd24gdG8gLSBidXQgbm90IGluY2x1 ZGluZyAtIHRoZSB1bndpbmRpbmcKKysgIC8vIGxpbWl0IGFuZCBjb3B5IHRoZSBjb250ZW50cyBv ZiB0aGUgYWN0aXZhdGlvbiBmcmFtZSB0byB0aGUgaW5wdXQKKysgIC8vIGZyYW1lIGRlc2NyaXB0 aW9uLgorKyAgX18gQWRkNjQoYTMsIGExLCBPcGVyYW5kKEZyYW1lRGVzY3JpcHRpb246OmZyYW1l X2NvbnRlbnRfb2Zmc2V0KCkpKTsKKysgIExhYmVsIHBvcF9sb29wOworKyAgTGFiZWwgcG9wX2xv b3BfaGVhZGVyOworKyAgX18gQnJhbmNoU2hvcnQoJnBvcF9sb29wX2hlYWRlcik7CisrICBfXyBi aW5kKCZwb3BfbG9vcCk7CisrICBfXyBwb3AoYTQpOworKyAgX18gU2QoYTQsIE1lbU9wZXJhbmQo YTMsIDApKTsKKysgIF9fIGFkZGkoYTMsIGEzLCBzaXplb2YodWludDY0X3QpKTsKKysgIF9fIGJp bmQoJnBvcF9sb29wX2hlYWRlcik7CisrICBfXyBCcmFuY2hTaG9ydCgmcG9wX2xvb3AsIG5lLCBh MiwgT3BlcmFuZChzcCkpOworKyAgLy8gQ29tcHV0ZSB0aGUgb3V0cHV0IGZyYW1lIGluIHRoZSBk ZW9wdGltaXplci4KKysgIF9fIHB1c2goYTApOyAgLy8gUHJlc2VydmUgZGVvcHRpbWl6ZXIgb2Jq ZWN0IGFjcm9zcyBjYWxsLgorKyAgLy8gYTA6IGRlb3B0aW1pemVyIG9iamVjdDsgYTE6IHNjcmF0 Y2guCisrICBfXyBQcmVwYXJlQ2FsbENGdW5jdGlvbigxLCBhMSk7CisrICAvLyBDYWxsIERlb3B0 aW1pemVyOjpDb21wdXRlT3V0cHV0RnJhbWVzKCkuCisrICB7CisrICAgIEFsbG93RXh0ZXJuYWxD YWxsVGhhdENhbnRDYXVzZUdDIHNjb3BlKG1hc20pOworKyAgICBfXyBDYWxsQ0Z1bmN0aW9uKEV4 dGVybmFsUmVmZXJlbmNlOjpjb21wdXRlX291dHB1dF9mcmFtZXNfZnVuY3Rpb24oKSwgMSk7Cisr ICB9CisrICBfXyBwb3AoYTApOyAgLy8gUmVzdG9yZSBkZW9wdGltaXplciBvYmplY3QgKGNsYXNz IERlb3B0aW1pemVyKS4KKysKKysgIF9fIExkKHNwLCBNZW1PcGVyYW5kKGEwLCBEZW9wdGltaXpl cjo6Y2FsbGVyX2ZyYW1lX3RvcF9vZmZzZXQoKSkpOworKworKyAgLy8gUmVwbGFjZSB0aGUgY3Vy cmVudCAoaW5wdXQpIGZyYW1lIHdpdGggdGhlIG91dHB1dCBmcmFtZXMuCisrICBMYWJlbCBvdXRl cl9wdXNoX2xvb3AsIGlubmVyX3B1c2hfbG9vcCwgb3V0ZXJfbG9vcF9oZWFkZXIsIGlubmVyX2xv b3BfaGVhZGVyOworKyAgLy8gT3V0ZXIgbG9vcCBzdGF0ZTogYTQgPSBjdXJyZW50ICJGcmFtZURl c2NyaXB0aW9uKiogb3V0cHV0XyIsCisrICAvLyBhMSA9IG9uZSBwYXN0IHRoZSBsYXN0IEZyYW1l RGVzY3JpcHRpb24qKi4KKysgIF9fIEx3KGExLCBNZW1PcGVyYW5kKGEwLCBEZW9wdGltaXplcjo6 b3V0cHV0X2NvdW50X29mZnNldCgpKSk7CisrICBfXyBMZChhNCwgTWVtT3BlcmFuZChhMCwgRGVv cHRpbWl6ZXI6Om91dHB1dF9vZmZzZXQoKSkpOyAgLy8gYTQgaXMgb3V0cHV0Xy4KKysgIF9fIENh bGNTY2FsZWRBZGRyZXNzKGExLCBhNCwgYTEsIGtQb2ludGVyU2l6ZUxvZzIpOworKyAgX18gQnJh bmNoU2hvcnQoJm91dGVyX2xvb3BfaGVhZGVyKTsKKysgIF9fIGJpbmQoJm91dGVyX3B1c2hfbG9v cCk7CisrICAvLyBJbm5lciBsb29wIHN0YXRlOiBhMiA9IGN1cnJlbnQgRnJhbWVEZXNjcmlwdGlv biosIGEzID0gbG9vcCBpbmRleC4KKysgIF9fIExkKGEyLCBNZW1PcGVyYW5kKGE0LCAwKSk7ICAv LyBvdXRwdXRfW2l4XQorKyAgX18gTGQoYTMsIE1lbU9wZXJhbmQoYTIsIEZyYW1lRGVzY3JpcHRp b246OmZyYW1lX3NpemVfb2Zmc2V0KCkpKTsKKysgIF9fIEJyYW5jaFNob3J0KCZpbm5lcl9sb29w X2hlYWRlcik7CisrICBfXyBiaW5kKCZpbm5lcl9wdXNoX2xvb3ApOworKyAgX18gU3ViNjQoYTMs IGEzLCBPcGVyYW5kKHNpemVvZih1aW50NjRfdCkpKTsKKysgIF9fIEFkZDY0KGE2LCBhMiwgT3Bl cmFuZChhMykpOworKyAgX18gTGQoYTcsIE1lbU9wZXJhbmQoYTYsIEZyYW1lRGVzY3JpcHRpb246 OmZyYW1lX2NvbnRlbnRfb2Zmc2V0KCkpKTsKKysgIF9fIHB1c2goYTcpOworKyAgX18gYmluZCgm aW5uZXJfbG9vcF9oZWFkZXIpOworKyAgX18gQnJhbmNoU2hvcnQoJmlubmVyX3B1c2hfbG9vcCwg bmUsIGEzLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICBfXyBBZGQ2NChhNCwgYTQsIE9wZXJh bmQoa1BvaW50ZXJTaXplKSk7CisrICBfXyBiaW5kKCZvdXRlcl9sb29wX2hlYWRlcik7CisrICBf XyBCcmFuY2hTaG9ydCgmb3V0ZXJfcHVzaF9sb29wLCBsdCwgYTQsIE9wZXJhbmQoYTEpKTsKKysK KysgIF9fIExkKGExLCBNZW1PcGVyYW5kKGEwLCBEZW9wdGltaXplcjo6aW5wdXRfb2Zmc2V0KCkp KTsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgY29uZmlnLT5udW1fYWxsb2NhdGFibGVfZG91Ymxl X3JlZ2lzdGVycygpOyArK2kpIHsKKysgICAgaW50IGNvZGUgPSBjb25maWctPkdldEFsbG9jYXRh YmxlRG91YmxlQ29kZShpKTsKKysgICAgY29uc3QgRG91YmxlUmVnaXN0ZXIgZnB1X3JlZyA9IERv dWJsZVJlZ2lzdGVyOjpmcm9tX2NvZGUoY29kZSk7CisrICAgIGludCBzcmNfb2Zmc2V0ID0gY29k ZSAqIGtEb3VibGVTaXplICsgZG91YmxlX3JlZ3Nfb2Zmc2V0OworKyAgICBfXyBMb2FkRG91Ymxl KGZwdV9yZWcsIE1lbU9wZXJhbmQoYTEsIHNyY19vZmZzZXQpKTsKKysgIH0KKysKKysgIC8vIFB1 c2ggcGMgYW5kIGNvbnRpbnVhdGlvbiBmcm9tIHRoZSBsYXN0IG91dHB1dCBmcmFtZS4KKysgIF9f IExkKGE2LCBNZW1PcGVyYW5kKGEyLCBGcmFtZURlc2NyaXB0aW9uOjpwY19vZmZzZXQoKSkpOwor KyAgX18gcHVzaChhNik7CisrICBfXyBMZChhNiwgTWVtT3BlcmFuZChhMiwgRnJhbWVEZXNjcmlw dGlvbjo6Y29udGludWF0aW9uX29mZnNldCgpKSk7CisrICBfXyBwdXNoKGE2KTsKKysKKysgIC8v IFRlY2huaWNhbGx5IHJlc3RvcmluZyAndDMnIHNob3VsZCB3b3JrIHVubGVzcyB6ZXJvX3JlZyBp cyBhbHNvIHJlc3RvcmVkCisrICAvLyBidXQgaXQncyBzYWZlciB0byBjaGVjayBmb3IgdGhpcy4K KysgIERDSEVDSyghKHQzLmJpdCgpICYgcmVzdG9yZWRfcmVncykpOworKyAgLy8gUmVzdG9yZSB0 aGUgcmVnaXN0ZXJzIGZyb20gdGhlIGxhc3Qgb3V0cHV0IGZyYW1lLgorKyAgX18gbXYodDMsIGEy KTsKKysgIGZvciAoaW50IGkgPSBrTnVtYmVyT2ZSZWdpc3RlcnMgLSAxOyBpID49IDA7IGktLSkg eworKyAgICBpbnQgb2Zmc2V0ID0gKGkgKiBrUG9pbnRlclNpemUpICsgRnJhbWVEZXNjcmlwdGlv bjo6cmVnaXN0ZXJzX29mZnNldCgpOworKyAgICBpZiAoKHJlc3RvcmVkX3JlZ3MgJiAoMSA8PCBp KSkgIT0gMCkgeworKyAgICAgIF9fIExkKFRvUmVnaXN0ZXIoaSksIE1lbU9wZXJhbmQodDMsIG9m ZnNldCkpOworKyAgICB9CisrICB9CisrCisrICBfXyBwb3AodDMpOyAgLy8gR2V0IGNvbnRpbnVh dGlvbiwgbGVhdmUgcGMgb24gc3RhY2suCisrICBfXyBwb3AocmEpOworKyAgX18gSnVtcCh0Myk7 CisrICBfXyBzdG9wKCk7CisrfQorKworKy8vIE1heGltdW0gc2l6ZSBvZiBhIHRhYmxlIGVudHJ5 IGdlbmVyYXRlZCBiZWxvdy4KKysvLyBGSVhNRShSSVNDVik6IElzIHRoaXMgdmFsdWUgY29ycmVj dD8KKytjb25zdCBpbnQgRGVvcHRpbWl6ZXI6OnRhYmxlX2VudHJ5X3NpemVfID0gMiAqIGtJbnN0 clNpemU7CisrCisrRmxvYXQzMiBSZWdpc3RlclZhbHVlczo6R2V0RmxvYXRSZWdpc3Rlcih1bnNp Z25lZCBuKSBjb25zdCB7CisrICByZXR1cm4gRmxvYXQzMjo6RnJvbUJpdHMoCisrICAgICAgc3Rh dGljX2Nhc3Q8dWludDMyX3Q+KGRvdWJsZV9yZWdpc3RlcnNfW25dLmdldF9iaXRzKCkpKTsKKyt9 CisrCisrdm9pZCBGcmFtZURlc2NyaXB0aW9uOjpTZXRDYWxsZXJQYyh1bnNpZ25lZCBvZmZzZXQs IGludHB0cl90IHZhbHVlKSB7CisrICBTZXRGcmFtZVNsb3Qob2Zmc2V0LCB2YWx1ZSk7CisrfQor KworK3ZvaWQgRnJhbWVEZXNjcmlwdGlvbjo6U2V0Q2FsbGVyRnAodW5zaWduZWQgb2Zmc2V0LCBp bnRwdHJfdCB2YWx1ZSkgeworKyAgU2V0RnJhbWVTbG90KG9mZnNldCwgdmFsdWUpOworK30KKysK Kyt2b2lkIEZyYW1lRGVzY3JpcHRpb246OlNldENhbGxlckNvbnN0YW50UG9vbCh1bnNpZ25lZCBv ZmZzZXQsIGludHB0cl90IHZhbHVlKSB7CisrICAvLyBObyBlbWJlZGRlZCBjb25zdGFudCBwb29s IHN1cHBvcnQuCisrICBVTlJFQUNIQUJMRSgpOworK30KKysKKyt2b2lkIEZyYW1lRGVzY3JpcHRp b246OlNldFBjKGludHB0cl90IHBjKSB7IHBjXyA9IHBjOyB9CisrCisrI3VuZGVmIF9fCisrCisr fSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CitJbmRleDogcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9z cmMvZGlhZ25vc3RpY3MvcGVyZi1qaXQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2 ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZGlh Z25vc3RpY3MvcGVyZi1qaXQuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUu My9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2RpYWdub3N0aWNzL3BlcmYtaml0LmgKK0BA IC04Niw2ICs4Niw3IEBAIGNsYXNzIFBlcmZKaXRMb2dnZXIgOiBwdWJsaWMgQ29kZUV2ZW50TG8K KyAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBrRWxmTWFjaEFSTTY0ID0gMTgzOworICAgc3RhdGlj IGNvbnN0IHVpbnQzMl90IGtFbGZNYWNoUzM5MHggPSAyMjsKKyAgIHN0YXRpYyBjb25zdCB1aW50 MzJfdCBrRWxmTWFjaFBQQzY0ID0gMjE7CisrICBzdGF0aWMgY29uc3QgdWludDMyX3Qga0VsZk1h Y2hSSVNDViA9IDI0MzsKKyAKKyAgIHVpbnQzMl90IEdldEVsZk1hY2goKSB7CisgI2lmIFY4X1RB UkdFVF9BUkNIX0lBMzIKK0BAIC0xMDQsNiArMTA1LDggQEAgY2xhc3MgUGVyZkppdExvZ2dlciA6 IHB1YmxpYyBDb2RlRXZlbnRMbworICAgICByZXR1cm4ga0VsZk1hY2hTMzkweDsKKyAjZWxpZiBW OF9UQVJHRVRfQVJDSF9QUEM2NAorICAgICByZXR1cm4ga0VsZk1hY2hQUEM2NDsKKysjZWxpZiBW OF9UQVJHRVRfQVJDSF9SSVNDVjY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrICAgIHJldHVy biBrRWxmTWFjaFJJU0NWOworICNlbHNlCisgICAgIFVOSU1QTEVNRU5URUQoKTsKKyAgICAgcmV0 dXJuIDA7CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvZGlhZ25vc3RpY3MvcmlzY3Y2NC9kaXNhc20tcmlzY3Y2NC5j YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUt c3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2RpYWdub3N0aWNzL3Jpc2N2 NjQvZGlzYXNtLXJpc2N2NjQuY2MKK0BAIC0wLDAgKzEsMTQ0OCBAQAorKy8vIENvcHlyaWdodCAy MDEyIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNl IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0 aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrLy8gQSBEaXNh c3NlbWJsZXIgb2JqZWN0IGlzIHVzZWQgdG8gZGlzYXNzZW1ibGUgYSBibG9jayBvZiBjb2RlIGlu c3RydWN0aW9uIGJ5CisrLy8gaW5zdHJ1Y3Rpb24uIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9u IG9mIHRoZSBOYW1lQ29udmVydGVyIG9iamVjdCBjYW4gYmUKKysvLyBvdmVycmlkZW4gdG8gbW9k aWZ5IHJlZ2lzdGVyIG5hbWVzIG9yIHRvIGRvIHN5bWJvbCBsb29rdXAgb24gYWRkcmVzc2VzLgor Ky8vCisrLy8gVGhlIGV4YW1wbGUgYmVsb3cgd2lsbCBkaXNhc3NlbWJsZSBhIGJsb2NrIG9mIGNv ZGUgYW5kIHByaW50IGl0IHRvIHN0ZG91dC4KKysvLworKy8vICAgTmFtZUNvbnZlcnRlciBjb252 ZXJ0ZXI7CisrLy8gICBEaXNhc3NlbWJsZXIgZChjb252ZXJ0ZXIpOworKy8vICAgZm9yIChieXRl KiBwYyA9IGJlZ2luOyBwYyA8IGVuZDspIHsKKysvLyAgICAgdjg6OmludGVybmFsOjpFbWJlZGRl ZFZlY3RvcjxjaGFyLCAyNTY+IGJ1ZmZlcjsKKysvLyAgICAgYnl0ZSogcHJldl9wYyA9IHBjOwor Ky8vICAgICBwYyArPSBkLkluc3RydWN0aW9uRGVjb2RlKGJ1ZmZlciwgcGMpOworKy8vICAgICBw cmludGYoIiVwICAgICUwOHggICAgICAlc1xuIiwKKysvLyAgICAgICAgICAgIHByZXZfcGMsICpy ZWludGVycHJldF9jYXN0PGludDMyX3QqPihwcmV2X3BjKSwgYnVmZmVyKTsKKysvLyAgIH0KKysv LworKy8vIFRoZSBEaXNhc3NlbWJsZXIgY2xhc3MgYWxzbyBoYXMgYSBjb252ZW5pZW5jZSBtZXRo b2QgdG8gZGlzYXNzZW1ibGUgYSBibG9jaworKy8vIG9mIGNvZGUgaW50byBhIEZJTEUqLCBtZWFu aW5nIHRoYXQgdGhlIGFib3ZlIGZ1bmN0aW9uYWxpdHkgY291bGQgYWxzbyBiZQorKy8vIGFjaGll dmVkIGJ5IGp1c3QgY2FsbGluZyBEaXNhc3NlbWJsZXI6OkRpc2Fzc2VtYmxlKHN0ZG91dCwgYmVn aW4sIGVuZCk7CisrCisrI2luY2x1ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRlIDxzdGRhcmcuaD4K KysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrCisrI2lmIFY4X1RB UkdFVF9BUkNIX1JJU0NWNjQKKysKKysjaW5jbHVkZSAic3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZv cm0uaCIKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vbWFjcm8tYXNzZW1ibGVyLmgiCisrI2luY2x1 ZGUgInNyYy9jb2RlZ2VuL3Jpc2N2NjQvY29uc3RhbnRzLXJpc2N2NjQuaCIKKysjaW5jbHVkZSAi c3JjL2RpYWdub3N0aWNzL2Rpc2FzbS5oIgorKworK25hbWVzcGFjZSB2OCB7CisrbmFtZXNwYWNl IGludGVybmFsIHsKKysKKysvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworKy8vIERlY29kZXIg ZGVjb2RlcyBhbmQgZGlzYXNzZW1ibGVzIGluc3RydWN0aW9ucyBpbnRvIGFuIG91dHB1dCBidWZm ZXIuCisrLy8gSXQgdXNlcyB0aGUgY29udmVydGVyIHRvIGNvbnZlcnQgcmVnaXN0ZXIgbmFtZXMg YW5kIGNhbGwgZGVzdGluYXRpb25zIGludG8KKysvLyBtb3JlIGluZm9ybWF0aXZlIGRlc2NyaXB0 aW9uLgorK2NsYXNzIERlY29kZXIgeworKyBwdWJsaWM6CisrICBEZWNvZGVyKGNvbnN0IGRpc2Fz bTo6TmFtZUNvbnZlcnRlciYgY29udmVydGVyLAorKyAgICAgICAgICB2ODo6aW50ZXJuYWw6OlZl Y3RvcjxjaGFyPiBvdXRfYnVmZmVyKQorKyAgICAgIDogY29udmVydGVyXyhjb252ZXJ0ZXIpLCBv dXRfYnVmZmVyXyhvdXRfYnVmZmVyKSwgb3V0X2J1ZmZlcl9wb3NfKDApIHsKKysgICAgb3V0X2J1 ZmZlcl9bb3V0X2J1ZmZlcl9wb3NfXSA9ICdcMCc7CisrICB9CisrCisrICB+RGVjb2RlcigpIHt9 CisrCisrICAvLyBXcml0ZXMgb25lIGRpc2Fzc2VtYmxlZCBpbnN0cnVjdGlvbiBpbnRvICdidWZm ZXInICgwLXRlcm1pbmF0ZWQpLgorKyAgLy8gUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBkaXNh c3NlbWJsZWQgbWFjaGluZSBpbnN0cnVjdGlvbiBpbiBieXRlcy4KKysgIGludCBJbnN0cnVjdGlv bkRlY29kZShieXRlKiBpbnN0cnVjdGlvbik7CisrCisrIHByaXZhdGU6CisrICAvLyBCb3R0bGVu ZWNrIGZ1bmN0aW9ucyB0byBwcmludCBpbnRvIHRoZSBvdXRfYnVmZmVyLgorKyAgdm9pZCBQcmlu dENoYXIoY29uc3QgY2hhciBjaCk7CisrICB2b2lkIFByaW50KGNvbnN0IGNoYXIqIHN0cik7Cisr CisrICAvLyBQcmludGluZyBvZiBjb21tb24gdmFsdWVzLgorKyAgdm9pZCBQcmludFJlZ2lzdGVy KGludCByZWcpOworKyAgdm9pZCBQcmludEZQVVJlZ2lzdGVyKGludCBmcmVnKTsKKysgIHZvaWQg UHJpbnRGUFVTdGF0dXNSZWdpc3RlcihpbnQgZnJlZyk7CisrICB2b2lkIFByaW50UnMxKEluc3Ry dWN0aW9uKiBpbnN0cik7CisrICB2b2lkIFByaW50UnMyKEluc3RydWN0aW9uKiBpbnN0cik7Cisr ICB2b2lkIFByaW50UmQoSW5zdHJ1Y3Rpb24qIGluc3RyKTsKKysgIHZvaWQgUHJpbnRWczEoSW5z dHJ1Y3Rpb24qIGluc3RyKTsKKysgIHZvaWQgUHJpbnRGUnMxKEluc3RydWN0aW9uKiBpbnN0cik7 CisrICB2b2lkIFByaW50RlJzMihJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBQcmludEZS czMoSW5zdHJ1Y3Rpb24qIGluc3RyKTsKKysgIHZvaWQgUHJpbnRGUmQoSW5zdHJ1Y3Rpb24qIGlu c3RyKTsKKysgIHZvaWQgUHJpbnRJbW0xMihJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBQ cmludEltbTEyWChJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBQcmludEltbTIwVShJbnN0 cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBQcmludEltbTIwSihJbnN0cnVjdGlvbiogaW5zdHIp OworKyAgdm9pZCBQcmludFNoYW10KEluc3RydWN0aW9uKiBpbnN0cik7CisrICB2b2lkIFByaW50 U2hhbXQzMihJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBQcmludEFjcXVpcmVSZWxlYXNl KEluc3RydWN0aW9uKiBpbnN0cik7CisrICB2b2lkIFByaW50QnJhbmNoT2Zmc2V0KEluc3RydWN0 aW9uKiBpbnN0cik7CisrICB2b2lkIFByaW50U3RvcmVPZmZzZXQoSW5zdHJ1Y3Rpb24qIGluc3Ry KTsKKysgIHZvaWQgUHJpbnRDU1JSZWcoSW5zdHJ1Y3Rpb24qIGluc3RyKTsKKysgIHZvaWQgUHJp bnRSb3VuZGluZ01vZGUoSW5zdHJ1Y3Rpb24qIGluc3RyKTsKKysgIHZvaWQgUHJpbnRNZW1vcnlP cmRlcihJbnN0cnVjdGlvbiogaW5zdHIsIGJvb2wgaXNfcHJlZCk7CisrCisrICAvLyBFYWNoIG9m IHRoZXNlIGZ1bmN0aW9ucyBkZWNvZGVzIG9uZSBwYXJ0aWN1bGFyIGluc3RydWN0aW9uIHR5cGUu CisrICB2b2lkIERlY29kZVJUeXBlKEluc3RydWN0aW9uKiBpbnN0cik7CisrICB2b2lkIERlY29k ZVI0VHlwZShJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBEZWNvZGVSQVR5cGUoSW5zdHJ1 Y3Rpb24qIGluc3RyKTsKKysgIHZvaWQgRGVjb2RlUkZQVHlwZShJbnN0cnVjdGlvbiogaW5zdHIp OworKyAgdm9pZCBEZWNvZGVJVHlwZShJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBEZWNv ZGVTVHlwZShJbnN0cnVjdGlvbiogaW5zdHIpOworKyAgdm9pZCBEZWNvZGVCVHlwZShJbnN0cnVj dGlvbiogaW5zdHIpOworKyAgdm9pZCBEZWNvZGVVVHlwZShJbnN0cnVjdGlvbiogaW5zdHIpOwor KyAgdm9pZCBEZWNvZGVKVHlwZShJbnN0cnVjdGlvbiogaW5zdHIpOworKworKyAgLy8gUHJpbnRp bmcgb2YgaW5zdHJ1Y3Rpb24gbmFtZS4KKysgIHZvaWQgUHJpbnRJbnN0cnVjdGlvbk5hbWUoSW5z dHJ1Y3Rpb24qIGluc3RyKTsKKysKKysgIC8vIEhhbmRsZSBmb3JtYXR0aW5nIG9mIGluc3RydWN0 aW9ucyBhbmQgdGhlaXIgb3B0aW9ucy4KKysgIGludCBGb3JtYXRSZWdpc3RlcihJbnN0cnVjdGlv biogaW5zdHIsIGNvbnN0IGNoYXIqIG9wdGlvbik7CisrICBpbnQgRm9ybWF0RlBVUmVnaXN0ZXJP clJvdW5kTW9kZShJbnN0cnVjdGlvbiogaW5zdHIsIGNvbnN0IGNoYXIqIG9wdGlvbik7CisrICBp bnQgRm9ybWF0T3B0aW9uKEluc3RydWN0aW9uKiBpbnN0ciwgY29uc3QgY2hhciogb3B0aW9uKTsK KysgIHZvaWQgRm9ybWF0KEluc3RydWN0aW9uKiBpbnN0ciwgY29uc3QgY2hhciogZm9ybWF0KTsK KysgIHZvaWQgVW5rbm93bihJbnN0cnVjdGlvbiogaW5zdHIpOworKworKyAgY29uc3QgZGlzYXNt OjpOYW1lQ29udmVydGVyJiBjb252ZXJ0ZXJfOworKyAgdjg6OmludGVybmFsOjpWZWN0b3I8Y2hh cj4gb3V0X2J1ZmZlcl87CisrICBpbnQgb3V0X2J1ZmZlcl9wb3NfOworKworKyAgRElTQUxMT1df Q09QWV9BTkRfQVNTSUdOKERlY29kZXIpOworK307CisrCisrLy8gU3VwcG9ydCBmb3IgYXNzZXJ0 aW9ucyBpbiB0aGUgRGVjb2RlciBmb3JtYXR0aW5nIGZ1bmN0aW9ucy4KKysjZGVmaW5lIFNUUklO R19TVEFSVFNfV0lUSChzdHJpbmcsIGNvbXBhcmVfc3RyaW5nKSBcCisrICAoc3RybmNtcChzdHJp bmcsIGNvbXBhcmVfc3RyaW5nLCBzdHJsZW4oY29tcGFyZV9zdHJpbmcpKSA9PSAwKQorKworKy8v IEFwcGVuZCB0aGUgY2ggdG8gdGhlIG91dHB1dCBidWZmZXIuCisrdm9pZCBEZWNvZGVyOjpQcmlu dENoYXIoY29uc3QgY2hhciBjaCkgeyBvdXRfYnVmZmVyX1tvdXRfYnVmZmVyX3Bvc18rK10gPSBj aDsgfQorKworKy8vIEFwcGVuZCB0aGUgc3RyIHRvIHRoZSBvdXRwdXQgYnVmZmVyLgorK3ZvaWQg RGVjb2Rlcjo6UHJpbnQoY29uc3QgY2hhciogc3RyKSB7CisrICBjaGFyIGN1ciA9ICpzdHIrKzsK KysgIHdoaWxlIChjdXIgIT0gJ1wwJyAmJiAob3V0X2J1ZmZlcl9wb3NfIDwgKG91dF9idWZmZXJf Lmxlbmd0aCgpIC0gMSkpKSB7CisrICAgIFByaW50Q2hhcihjdXIpOworKyAgICBjdXIgPSAqc3Ry Kys7CisrICB9CisrICBvdXRfYnVmZmVyX1tvdXRfYnVmZmVyX3Bvc19dID0gMDsKKyt9CisrCisr Ly8gUHJpbnQgdGhlIHJlZ2lzdGVyIG5hbWUgYWNjb3JkaW5nIHRvIHRoZSBhY3RpdmUgbmFtZSBj b252ZXJ0ZXIuCisrdm9pZCBEZWNvZGVyOjpQcmludFJlZ2lzdGVyKGludCByZWcpIHsKKysgIFBy aW50KGNvbnZlcnRlcl8uTmFtZU9mQ1BVUmVnaXN0ZXIocmVnKSk7CisrfQorKworK3ZvaWQgRGVj b2Rlcjo6UHJpbnRSczEoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQgcmVnID0gaW5zdHIt PlJzMVZhbHVlKCk7CisrICBQcmludFJlZ2lzdGVyKHJlZyk7CisrfQorKworK3ZvaWQgRGVjb2Rl cjo6UHJpbnRSczIoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQgcmVnID0gaW5zdHItPlJz MlZhbHVlKCk7CisrICBQcmludFJlZ2lzdGVyKHJlZyk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6 UHJpbnRSZChJbnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGludCByZWcgPSBpbnN0ci0+UmRWYWx1 ZSgpOworKyAgUHJpbnRSZWdpc3RlcihyZWcpOworK30KKysKKyt2b2lkIERlY29kZXI6OlByaW50 VnMxKEluc3RydWN0aW9uKiBpbnN0cikgeworKyAgaW50IHZhbCA9IGluc3RyLT5SczFWYWx1ZSgp OworKyAgb3V0X2J1ZmZlcl9wb3NfICs9IFNOUHJpbnRGKG91dF9idWZmZXJfICsgb3V0X2J1ZmZl cl9wb3NfLCAiMHgleCIsIHZhbCk7CisrfQorKworKy8vIFByaW50IHRoZSBGUFVyZWdpc3RlciBu YW1lIGFjY29yZGluZyB0byB0aGUgYWN0aXZlIG5hbWUgY29udmVydGVyLgorK3ZvaWQgRGVjb2Rl cjo6UHJpbnRGUFVSZWdpc3RlcihpbnQgZnJlZykgeworKyAgUHJpbnQoY29udmVydGVyXy5OYW1l T2ZYTU1SZWdpc3RlcihmcmVnKSk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRGUnMxKElu c3RydWN0aW9uKiBpbnN0cikgeworKyAgaW50IHJlZyA9IGluc3RyLT5SczFWYWx1ZSgpOworKyAg UHJpbnRGUFVSZWdpc3RlcihyZWcpOworK30KKysKKyt2b2lkIERlY29kZXI6OlByaW50RlJzMihJ bnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGludCByZWcgPSBpbnN0ci0+UnMyVmFsdWUoKTsKKysg IFByaW50RlBVUmVnaXN0ZXIocmVnKTsKKyt9CisrCisrdm9pZCBEZWNvZGVyOjpQcmludEZSczMo SW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQgcmVnID0gaW5zdHItPlJzM1ZhbHVlKCk7Cisr ICBQcmludEZQVVJlZ2lzdGVyKHJlZyk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRGUmQo SW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQgcmVnID0gaW5zdHItPlJkVmFsdWUoKTsKKysg IFByaW50RlBVUmVnaXN0ZXIocmVnKTsKKyt9CisrCisrdm9pZCBEZWNvZGVyOjpQcmludEltbTEy WChJbnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGludDMyX3QgaW1tID0gaW5zdHItPkltbTEyVmFs dWUoKTsKKysgIG91dF9idWZmZXJfcG9zXyArPSBTTlByaW50RihvdXRfYnVmZmVyXyArIG91dF9i dWZmZXJfcG9zXywgIjB4JXgiLCBpbW0pOworK30KKysKKyt2b2lkIERlY29kZXI6OlByaW50SW1t MTIoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQzMl90IGltbSA9IGluc3RyLT5JbW0xMlZh bHVlKCk7CisrICBvdXRfYnVmZmVyX3Bvc18gKz0gU05QcmludEYob3V0X2J1ZmZlcl8gKyBvdXRf YnVmZmVyX3Bvc18sICIlZCIsIGltbSk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRCcmFu Y2hPZmZzZXQoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQzMl90IGltbSA9IGluc3RyLT5C cmFuY2hPZmZzZXQoKTsKKysgIGNvbnN0IGNoYXIqIHRhcmdldCA9IGNvbnZlcnRlcl8uTmFtZU9m QWRkcmVzcyhyZWludGVycHJldF9jYXN0PGJ5dGUqPihpbnN0cikgKyBpbW0pOworKyAgb3V0X2J1 ZmZlcl9wb3NfICs9IFNOUHJpbnRGKG91dF9idWZmZXJfICsgb3V0X2J1ZmZlcl9wb3NfLCAiJWQg LT4gJXMiLCBpbW0sIHRhcmdldCk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRTdG9yZU9m ZnNldChJbnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGludDMyX3QgaW1tID0gaW5zdHItPlN0b3Jl T2Zmc2V0KCk7CisrICBvdXRfYnVmZmVyX3Bvc18gKz0gU05QcmludEYob3V0X2J1ZmZlcl8gKyBv dXRfYnVmZmVyX3Bvc18sICIlZCIsIGltbSk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRJ bW0yMFUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQzMl90IGltbSA9IGluc3RyLT5JbW0y MFVWYWx1ZSgpOworKyAgb3V0X2J1ZmZlcl9wb3NfICs9IFNOUHJpbnRGKG91dF9idWZmZXJfICsg b3V0X2J1ZmZlcl9wb3NfLCAiMHgleCIsIGltbSk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJp bnRJbW0yMEooSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQzMl90IGltbSA9IGluc3RyLT5J bW0yMEpWYWx1ZSgpOworKyAgY29uc3QgY2hhciogdGFyZ2V0ID0gY29udmVydGVyXy5OYW1lT2ZB ZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KGluc3RyKSArIGltbSk7CisrICBvdXRfYnVm ZmVyX3Bvc18gKz0gU05QcmludEYob3V0X2J1ZmZlcl8gKyBvdXRfYnVmZmVyX3Bvc18sICIlZCAt PiAlcyIsIGltbSwgdGFyZ2V0KTsKKyt9CisrCisrdm9pZCBEZWNvZGVyOjpQcmludFNoYW10KElu c3RydWN0aW9uKiBpbnN0cikgeworKyAgaW50MzJfdCBpbW0gPSBpbnN0ci0+U2hhbXQoKTsKKysg IG91dF9idWZmZXJfcG9zXyArPSBTTlByaW50RihvdXRfYnVmZmVyXyArIG91dF9idWZmZXJfcG9z XywgIiVkIiwgaW1tKTsKKyt9CisrCisrdm9pZCBEZWNvZGVyOjpQcmludFNoYW10MzIoSW5zdHJ1 Y3Rpb24qIGluc3RyKSB7CisrICBpbnQzMl90IGltbSA9IGluc3RyLT5TaGFtdDMyKCk7CisrICBv dXRfYnVmZmVyX3Bvc18gKz0gU05QcmludEYob3V0X2J1ZmZlcl8gKyBvdXRfYnVmZmVyX3Bvc18s ICIlZCIsIGltbSk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRBY3F1aXJlUmVsZWFzZShJ bnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGJvb2wgYXEgPSBpbnN0ci0+QXFWYWx1ZSgpOworKyAg Ym9vbCBybCA9IGluc3RyLT5SbFZhbHVlKCk7CisrICBpZiAoYXEgfHwgcmwpIHsKKysgICAgb3V0 X2J1ZmZlcl9wb3NfICs9IFNOUHJpbnRGKG91dF9idWZmZXJfICsgb3V0X2J1ZmZlcl9wb3NfLCAi LiIpOworKyAgfQorKyAgaWYgKGFxKSB7CisrICAgIG91dF9idWZmZXJfcG9zXyArPSBTTlByaW50 RihvdXRfYnVmZmVyXyArIG91dF9idWZmZXJfcG9zXywgImFxIik7CisrICB9CisrICBpZiAocmwp IHsKKysgICAgb3V0X2J1ZmZlcl9wb3NfICs9IFNOUHJpbnRGKG91dF9idWZmZXJfICsgb3V0X2J1 ZmZlcl9wb3NfLCAicmwiKTsKKysgIH0KKyt9CisrCisrdm9pZCBEZWNvZGVyOjpQcmludENTUlJl ZyhJbnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGludDMyX3QgY3NyX3JlZyA9IGluc3RyLT5Dc3JW YWx1ZSgpOworKyAgc3RkOjpzdHJpbmcgczsKKysgIHN3aXRjaCAoY3NyX3JlZykgeworKyAgICBj YXNlIGNzcl9mZmxhZ3M6ICAvLyBGbG9hdGluZy1Qb2ludCBBY2NydWVkIEV4Y2VwdGlvbnMgKFJX KQorKyAgICAgIHMgPSAiY3NyX2ZmbGFncyI7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgY3Ny X2ZybTogIC8vIEZsb2F0aW5nLVBvaW50IER5bmFtaWMgUm91bmRpbmcgTW9kZSAoUlcpCisrICAg ICAgcyA9ICJjc3JfZnJtIjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBjc3JfZmNzcjogIC8v IEZsb2F0aW5nLVBvaW50IENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlciAoUlcpCisrICAgICAg cyA9ICJjc3JfZmNzciI7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgY3NyX2N5Y2xlOgorKyAg ICAgIHMgPSAiY3NyX2N5Y2xlIjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBjc3JfdGltZToK KysgICAgICBzID0gImNzcl90aW1lIjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBjc3JfaW5z dHJldDoKKysgICAgICBzID0gImNzcl9pbnN0cmV0IjsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBjc3JfY3ljbGVoOgorKyAgICAgIHMgPSAiY3NyX2N5Y2xlaCI7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgY3NyX3RpbWVoOgorKyAgICAgIHMgPSAiY3NyX3RpbWVoIjsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBjc3JfaW5zdHJldGg6CisrICAgICAgcyA9ICJjc3JfaW5zdHJldGgiOwor KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9 CisrICBvdXRfYnVmZmVyX3Bvc18gKz0gU05QcmludEYob3V0X2J1ZmZlcl8gKyBvdXRfYnVmZmVy X3Bvc18sICIlcyIsIHMuY19zdHIoKSk7CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6UHJpbnRSb3Vu ZGluZ01vZGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpbnQgZnJtID0gaW5zdHItPlJvdW5k TW9kZSgpOworKyAgc3RkOjpzdHJpbmcgczsKKysgIHN3aXRjaCAoZnJtKSB7CisrICAgIGNhc2Ug Uk5FOgorKyAgICAgIHMgPSAiUk5FIjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBSVFo6Cisr ICAgICAgcyA9ICJSVFoiOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJETjoKKysgICAgICBz ID0gIlJETiI7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUlVQOgorKyAgICAgIHMgPSAiUlVQ IjsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBSTU06CisrICAgICAgcyA9ICJSTU0iOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIERZTjoKKysgICAgICBzID0gIkRZTiI7CisrICAgICAgYnJl YWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5SRUFDSEFCTEUoKTsKKysgIH0KKysgIG91dF9i dWZmZXJfcG9zXyArPSBTTlByaW50RihvdXRfYnVmZmVyXyArIG91dF9idWZmZXJfcG9zXywgIiVz Iiwgcy5jX3N0cigpKTsKKyt9CisrCisrdm9pZCBEZWNvZGVyOjpQcmludE1lbW9yeU9yZGVyKElu c3RydWN0aW9uKiBpbnN0ciwgYm9vbCBpc19wcmVkKSB7CisrICBpbnQgbWVtT3JkZXIgPSBpbnN0 ci0+TWVtb3J5T3JkZXIoaXNfcHJlZCk7CisrICBzdGQ6OnN0cmluZyBzOworKyAgaWYgKChtZW1P cmRlciAmIFBTSSkgPT0gUFNJKSB7CisrICAgIHMgKz0gImkiOworKyAgfQorKyAgaWYgKChtZW1P cmRlciAmIFBTTykgPT0gUFNPKSB7CisrICAgIHMgKz0gIm8iOworKyAgfQorKyAgaWYgKChtZW1P cmRlciAmIFBTUikgPT0gUFNSKSB7CisrICAgIHMgKz0gInIiOworKyAgfQorKyAgaWYgKChtZW1P cmRlciAmIFBTVykgPT0gUFNXKSB7CisrICAgIHMgKz0gInciOworKyAgfQorKyAgb3V0X2J1ZmZl cl9wb3NfICs9IFNOUHJpbnRGKG91dF9idWZmZXJfICsgb3V0X2J1ZmZlcl9wb3NfLCAiJXMiLCBz LmNfc3RyKCkpOworK30KKysKKysvLyBQcmludGluZyBvZiBpbnN0cnVjdGlvbiBuYW1lLgorK3Zv aWQgRGVjb2Rlcjo6UHJpbnRJbnN0cnVjdGlvbk5hbWUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7fQor KworKy8vIEhhbmRsZSBhbGwgcmVnaXN0ZXIgYmFzZWQgZm9ybWF0dGluZyBpbiB0aGlzIGZ1bmN0 aW9uIHRvIHJlZHVjZSB0aGUKKysvLyBjb21wbGV4aXR5IG9mIEZvcm1hdE9wdGlvbi4KKytpbnQg RGVjb2Rlcjo6Rm9ybWF0UmVnaXN0ZXIoSW5zdHJ1Y3Rpb24qIGluc3RyLCBjb25zdCBjaGFyKiBm b3JtYXQpIHsKKysgIERDSEVDS19FUShmb3JtYXRbMF0sICdyJyk7CisrICBpZiAoZm9ybWF0WzFd ID09ICdzJykgeyAgLy8gJ3JzWzEyXTogUnMgcmVnaXN0ZXIuCisrICAgIGlmIChmb3JtYXRbMl0g PT0gJzEnKSB7CisrICAgICAgaW50IHJlZyA9IGluc3RyLT5SczFWYWx1ZSgpOworKyAgICAgIFBy aW50UmVnaXN0ZXIocmVnKTsKKysgICAgICByZXR1cm4gMzsKKysgICAgfSBlbHNlIGlmIChmb3Jt YXRbMl0gPT0gJzInKSB7CisrICAgICAgaW50IHJlZyA9IGluc3RyLT5SczJWYWx1ZSgpOworKyAg ICAgIFByaW50UmVnaXN0ZXIocmVnKTsKKysgICAgICByZXR1cm4gMzsKKysgICAgfQorKyAgICBV TlJFQUNIQUJMRSgpOworKyAgfSBlbHNlIGlmIChmb3JtYXRbMV0gPT0gJ2QnKSB7ICAvLyAncmQ6 IHJkIHJlZ2lzdGVyLgorKyAgICBpbnQgcmVnID0gaW5zdHItPlJkVmFsdWUoKTsKKysgICAgUHJp bnRSZWdpc3RlcihyZWcpOworKyAgICByZXR1cm4gMjsKKysgIH0KKysgIFVOUkVBQ0hBQkxFKCk7 CisrfQorKworKy8vIEhhbmRsZSBhbGwgRlBVcmVnaXN0ZXIgYmFzZWQgZm9ybWF0dGluZyBpbiB0 aGlzIGZ1bmN0aW9uIHRvIHJlZHVjZSB0aGUKKysvLyBjb21wbGV4aXR5IG9mIEZvcm1hdE9wdGlv bi4KKytpbnQgRGVjb2Rlcjo6Rm9ybWF0RlBVUmVnaXN0ZXJPclJvdW5kTW9kZShJbnN0cnVjdGlv biogaW5zdHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciogZm9ybWF0KSB7CisrICBEQ0hFQ0tfRVEoZm9ybWF0WzBdLCAnZicpOworKyAgaWYg KGZvcm1hdFsxXSA9PSAncycpIHsgIC8vICdmc1sxLTNdOiBScyByZWdpc3Rlci4KKysgICAgaWYg KGZvcm1hdFsyXSA9PSAnMScpIHsKKysgICAgICBpbnQgcmVnID0gaW5zdHItPlJzMVZhbHVlKCk7 CisrICAgICAgUHJpbnRGUFVSZWdpc3RlcihyZWcpOworKyAgICAgIHJldHVybiAzOworKyAgICB9 IGVsc2UgaWYgKGZvcm1hdFsyXSA9PSAnMicpIHsKKysgICAgICBpbnQgcmVnID0gaW5zdHItPlJz MlZhbHVlKCk7CisrICAgICAgUHJpbnRGUFVSZWdpc3RlcihyZWcpOworKyAgICAgIHJldHVybiAz OworKyAgICB9IGVsc2UgaWYgKGZvcm1hdFsyXSA9PSAnMycpIHsKKysgICAgICBpbnQgcmVnID0g aW5zdHItPlJzM1ZhbHVlKCk7CisrICAgICAgUHJpbnRGUFVSZWdpc3RlcihyZWcpOworKyAgICAg IHJldHVybiAzOworKyAgICB9CisrICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9IGVsc2UgaWYgKGZv cm1hdFsxXSA9PSAnZCcpIHsgIC8vICdmZDogZmQgcmVnaXN0ZXIuCisrICAgIGludCByZWcgPSBp bnN0ci0+UmRWYWx1ZSgpOworKyAgICBQcmludEZQVVJlZ2lzdGVyKHJlZyk7CisrICAgIHJldHVy biAyOworKyAgfSBlbHNlIGlmIChmb3JtYXRbMV0gPT0gJ3InKSB7ICAvLyAnZnJtCisrICAgIERD SEVDSyhTVFJJTkdfU1RBUlRTX1dJVEgoZm9ybWF0LCAiZnJtIikpOworKyAgICBQcmludFJvdW5k aW5nTW9kZShpbnN0cik7CisrICAgIHJldHVybiAzOworKyAgfQorKyAgVU5SRUFDSEFCTEUoKTsK Kyt9CisrCisrLy8gRm9ybWF0T3B0aW9uIHRha2VzIGEgZm9ybWF0dGluZyBzdHJpbmcgYW5kIGlu dGVycHJldHMgaXQgYmFzZWQgb24KKysvLyB0aGUgY3VycmVudCBpbnN0cnVjdGlvbnMuIFRoZSBm b3JtYXQgc3RyaW5nIHBvaW50cyB0byB0aGUgZmlyc3QKKysvLyBjaGFyYWN0ZXIgb2YgdGhlIG9w dGlvbiBzdHJpbmcgKHRoZSBvcHRpb24gZXNjYXBlIGhhcyBhbHJlYWR5IGJlZW4KKysvLyBjb25z dW1lZCBieSB0aGUgY2FsbGVyLikgIEZvcm1hdE9wdGlvbiByZXR1cm5zIHRoZSBudW1iZXIgb2YK KysvLyBjaGFyYWN0ZXJzIHRoYXQgd2VyZSBjb25zdW1lZCBmcm9tIHRoZSBmb3JtYXR0aW5nIHN0 cmluZy4KKytpbnQgRGVjb2Rlcjo6Rm9ybWF0T3B0aW9uKEluc3RydWN0aW9uKiBpbnN0ciwgY29u c3QgY2hhciogZm9ybWF0KSB7CisrICBzd2l0Y2ggKGZvcm1hdFswXSkgeworKyAgICBjYXNlICdj JzogeyAgLy8gYGNzcjogQ1NSIHJlZ2lzdGVycworKyAgICAgIGlmIChmb3JtYXRbMV0gPT0gJ3Mn KSB7CisrICAgICAgICBpZiAoZm9ybWF0WzJdID09ICdyJykgeworKyAgICAgICAgICBQcmludENT UlJlZyhpbnN0cik7CisrICAgICAgICAgIHJldHVybiAzOworKyAgICAgICAgfQorKyAgICAgIH0K KysgICAgICBVTlJFQUNIQUJMRSgpOworKyAgICB9CisrICAgIGNhc2UgJ2knOiB7ICAvLyAnaW1t MTIsICdpbW0xMngsICdpbW0yMFUsIG9yICdpbW0yMEo6IEltbWVkaWF0ZXMuCisrICAgICAgaWYg KGZvcm1hdFszXSA9PSAnMScpIHsKKysgICAgICAgIGlmIChmb3JtYXRbNF0gPT0gJzInKSB7Cisr ICAgICAgICAgIERDSEVDSyhTVFJJTkdfU1RBUlRTX1dJVEgoZm9ybWF0LCAiaW1tMTIiKSk7Cisr ICAgICAgICAgIGlmIChmb3JtYXRbNV0gPT0gJ3gnKSB7CisrICAgICAgICAgICAgUHJpbnRJbW0x MlgoaW5zdHIpOworKyAgICAgICAgICAgIHJldHVybiA2OworKyAgICAgICAgICB9CisrICAgICAg ICAgIFByaW50SW1tMTIoaW5zdHIpOworKyAgICAgICAgICByZXR1cm4gNTsKKysgICAgICAgIH0K KysgICAgICB9IGVsc2UgaWYgKGZvcm1hdFszXSA9PSAnMicgJiYgZm9ybWF0WzRdID09ICcwJykg eworKyAgICAgICAgRENIRUNLKFNUUklOR19TVEFSVFNfV0lUSChmb3JtYXQsICJpbW0yMCIpKTsK KysgICAgICAgIHN3aXRjaCAoZm9ybWF0WzVdKSB7CisrICAgICAgICAgIGNhc2UgJ1UnOgorKyAg ICAgICAgICAgIERDSEVDSyhTVFJJTkdfU1RBUlRTX1dJVEgoZm9ybWF0LCAiaW1tMjBVIikpOwor KyAgICAgICAgICAgIFByaW50SW1tMjBVKGluc3RyKTsKKysgICAgICAgICAgICBicmVhazsKKysg ICAgICAgICAgY2FzZSAnSic6CisrICAgICAgICAgICAgRENIRUNLKFNUUklOR19TVEFSVFNfV0lU SChmb3JtYXQsICJpbW0yMEoiKSk7CisrICAgICAgICAgICAgUHJpbnRJbW0yMEooaW5zdHIpOwor KyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJuIDY7CisrICAg ICAgfQorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIH0KKysgICAgY2FzZSAnbyc6IHsgIC8v ICdvZmZCIG9yICdvZmZTOiBPZmZzZXRzLgorKyAgICAgIGlmIChmb3JtYXRbM10gPT0gJ0InKSB7 CisrICAgICAgICBEQ0hFQ0soU1RSSU5HX1NUQVJUU19XSVRIKGZvcm1hdCwgIm9mZkIiKSk7Cisr ICAgICAgICBQcmludEJyYW5jaE9mZnNldChpbnN0cik7CisrICAgICAgICByZXR1cm4gNDsKKysg ICAgICB9IGVsc2UgaWYgKGZvcm1hdFszXSA9PSAnUycpIHsKKysgICAgICAgIERDSEVDSyhTVFJJ TkdfU1RBUlRTX1dJVEgoZm9ybWF0LCAib2ZmUyIpKTsKKysgICAgICAgIFByaW50U3RvcmVPZmZz ZXQoaW5zdHIpOworKyAgICAgICAgcmV0dXJuIDQ7CisrICAgICAgfQorKyAgICAgIFVOUkVBQ0hB QkxFKCk7CisrICAgIH0KKysgICAgY2FzZSAncic6IHsgIC8vICdyOiByZWdpc3RlcnMuCisrICAg ICAgcmV0dXJuIEZvcm1hdFJlZ2lzdGVyKGluc3RyLCBmb3JtYXQpOworKyAgICB9CisrICAgIGNh c2UgJ2YnOiB7ICAvLyAnZjogRlBVcmVnaXN0ZXJzIG9yIGBmcm0KKysgICAgICByZXR1cm4gRm9y bWF0RlBVUmVnaXN0ZXJPclJvdW5kTW9kZShpbnN0ciwgZm9ybWF0KTsKKysgICAgfQorKyAgICBj YXNlICdhJzogeyAgLy8gJ2E6IEF0b21pYyBhY3F1aXJlIGFuZCByZWxlYXNlLgorKyAgICAgIFBy aW50QWNxdWlyZVJlbGVhc2UoaW5zdHIpOworKyAgICAgIHJldHVybiAxOworKyAgICB9CisrICAg IGNhc2UgJ3AnOiB7ICAvLyBgcHJlCisrICAgICAgRENIRUNLKFNUUklOR19TVEFSVFNfV0lUSChm b3JtYXQsICJwcmUiKSk7CisrICAgICAgUHJpbnRNZW1vcnlPcmRlcihpbnN0ciwgdHJ1ZSk7Cisr ICAgICAgcmV0dXJuIDM7CisrICAgIH0KKysgICAgY2FzZSAncyc6IHsgIC8vICdzMzIgb3IgJ3M2 NDogU2hpZnQgYW1vdW50LgorKyAgICAgIGlmIChmb3JtYXRbMV0gPT0gJzMnKSB7CisrICAgICAg ICBEQ0hFQ0soU1RSSU5HX1NUQVJUU19XSVRIKGZvcm1hdCwgInMzMiIpKTsKKysgICAgICAgIFBy aW50U2hhbXQzMihpbnN0cik7CisrICAgICAgICByZXR1cm4gMzsKKysgICAgICB9IGVsc2UgaWYg KGZvcm1hdFsxXSA9PSAnNicpIHsKKysgICAgICAgIERDSEVDSyhTVFJJTkdfU1RBUlRTX1dJVEgo Zm9ybWF0LCAiczY0IikpOworKyAgICAgICAgUHJpbnRTaGFtdChpbnN0cik7CisrICAgICAgICBy ZXR1cm4gMzsKKysgICAgICB9IGVsc2UgaWYgKGZvcm1hdFsxXSA9PSAndScpIHsKKysgICAgICAg IERDSEVDSyhTVFJJTkdfU1RBUlRTX1dJVEgoZm9ybWF0LCAic3VjIikpOworKyAgICAgICAgUHJp bnRNZW1vcnlPcmRlcihpbnN0ciwgZmFsc2UpOworKyAgICAgICAgcmV0dXJuIDM7CisrICAgICAg fQorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIH0KKysgICAgY2FzZSAndic6IHsgIC8vICd2 czE6IFJhdyB2YWx1ZXMgZnJvbSByZWdpc3RlciBmaWVsZHMKKysgICAgICBEQ0hFQ0soU1RSSU5H X1NUQVJUU19XSVRIKGZvcm1hdCwgInZzMSIpKTsKKysgICAgICBQcmludFZzMShpbnN0cik7Cisr ICAgICAgcmV0dXJuIDM7CisrICAgIH0KKysgIH0KKysgIFVOUkVBQ0hBQkxFKCk7CisrfQorKwor Ky8vIEZvcm1hdCB0YWtlcyBhIGZvcm1hdHRpbmcgc3RyaW5nIGZvciBhIHdob2xlIGluc3RydWN0 aW9uIGFuZCBwcmludHMgaXQgaW50bworKy8vIHRoZSBvdXRwdXQgYnVmZmVyLiBBbGwgZXNjYXBl ZCBvcHRpb25zIGFyZSBoYW5kZWQgdG8gRm9ybWF0T3B0aW9uIHRvIGJlCisrLy8gcGFyc2VkIGZ1 cnRoZXIuCisrdm9pZCBEZWNvZGVyOjpGb3JtYXQoSW5zdHJ1Y3Rpb24qIGluc3RyLCBjb25zdCBj aGFyKiBmb3JtYXQpIHsKKysgIGNoYXIgY3VyID0gKmZvcm1hdCsrOworKyAgd2hpbGUgKChjdXIg IT0gMCkgJiYgKG91dF9idWZmZXJfcG9zXyA8IChvdXRfYnVmZmVyXy5sZW5ndGgoKSAtIDEpKSkg eworKyAgICBpZiAoY3VyID09ICdcJycpIHsgIC8vIFNpbmdsZSBxdW90ZSBpcyB1c2VkIGFzIHRo ZSBmb3JtYXR0aW5nIGVzY2FwZS4KKysgICAgICBmb3JtYXQgKz0gRm9ybWF0T3B0aW9uKGluc3Ry LCBmb3JtYXQpOworKyAgICB9IGVsc2UgeworKyAgICAgIG91dF9idWZmZXJfW291dF9idWZmZXJf cG9zXysrXSA9IGN1cjsKKysgICAgfQorKyAgICBjdXIgPSAqZm9ybWF0Kys7CisrICB9CisrICBv dXRfYnVmZmVyX1tvdXRfYnVmZmVyX3Bvc19dID0gJ1wwJzsKKyt9CisrCisrLy8gRm9yIGN1cnJl bnRseSB1bmltcGxlbWVudGVkIGRlY29kaW5ncyB0aGUgZGlzYXNzZW1ibGVyIGNhbGxzIFVua25v d24oaW5zdHIpCisrLy8gd2hpY2ggd2lsbCBqdXN0IHByaW50ICJ1bmtub3duIiBvZiB0aGUgaW5z dHJ1Y3Rpb24gYml0cy4KKyt2b2lkIERlY29kZXI6OlVua25vd24oSW5zdHJ1Y3Rpb24qIGluc3Ry KSB7IEZvcm1hdChpbnN0ciwgInVua25vd24iKTsgfQorKworKy8vIFJJU0NWIEluc3RydWN0aW9u IERlY29kZSBSb3V0aW5lCisrdm9pZCBEZWNvZGVyOjpEZWNvZGVSVHlwZShJbnN0cnVjdGlvbiog aW5zdHIpIHsKKysgIHN3aXRjaCAoaW5zdHItPkluc3RydWN0aW9uQml0cygpICYga1JUeXBlTWFz aykgeworKyAgICBjYXNlIFJPX0FERDoKKysgICAgICBGb3JtYXQoaW5zdHIsICJhZGQgICAgICAg J3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fU1VCOgorKyAg ICAgIGlmIChpbnN0ci0+UnMxVmFsdWUoKSA9PSB6ZXJvX3JlZy5jb2RlKCkpCisrICAgICAgICBG b3JtYXQoaW5zdHIsICJuZWcgICAgICAgJ3JkLCByczIiKTsKKysgICAgICBlbHNlCisrICAgICAg ICBGb3JtYXQoaW5zdHIsICJzdWIgICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgUk9fU0xMOgorKyAgICAgIEZvcm1hdChpbnN0ciwgInNsbCAgICAgICAn cmQsICdyczEsICdyczIiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19TTFQ6CisrICAg ICAgaWYgKGluc3RyLT5SczJWYWx1ZSgpID09IHplcm9fcmVnLmNvZGUoKSkKKysgICAgICAgIEZv cm1hdChpbnN0ciwgInNsdHogICAgICAncmQsICdyczEiKTsKKysgICAgICBlbHNlIGlmIChpbnN0 ci0+UnMxVmFsdWUoKSA9PSB6ZXJvX3JlZy5jb2RlKCkpCisrICAgICAgICBGb3JtYXQoaW5zdHIs ICJzZ3R6ICAgICAgJ3JkLCAncnMyIik7CisrICAgICAgZWxzZQorKyAgICAgICAgRm9ybWF0KGlu c3RyLCAic2x0ICAgICAgICdyZCwgJ3JzMSwgJ3JzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBj YXNlIFJPX1NMVFU6CisrICAgICAgaWYgKGluc3RyLT5SczFWYWx1ZSgpID09IHplcm9fcmVnLmNv ZGUoKSkKKysgICAgICAgIEZvcm1hdChpbnN0ciwgInNuZXogICAgICAncmQsICdyczIiKTsKKysg ICAgICBlbHNlCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJzbHR1ICAgICAgJ3JkLCAncnMxLCAn cnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fWE9SOgorKyAgICAgIEZvcm1hdChp bnN0ciwgInhvciAgICAgICAncmQsICdyczEsICdyczIiKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBST19TUkw6CisrICAgICAgRm9ybWF0KGluc3RyLCAic3JsICAgICAgICdyZCwgJ3JzMSwg J3JzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1NSQToKKysgICAgICBGb3JtYXQo aW5zdHIsICJzcmEgICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrICAg IGNhc2UgUk9fT1I6CisrICAgICAgRm9ybWF0KGluc3RyLCAib3IgICAgICAgICdyZCwgJ3JzMSwg J3JzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0FORDoKKysgICAgICBGb3JtYXQo aW5zdHIsICJhbmQgICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrI2lm ZGVmIFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICBjYXNlIFJPX0FERFc6CisrICAgICAgRm9y bWF0KGluc3RyLCAiYWRkdyAgICAgICdyZCwgJ3JzMSwgJ3JzMiIpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIFJPX1NVQlc6CisrICAgICAgaWYgKGluc3RyLT5SczFWYWx1ZSgpID09IHplcm9f cmVnLmNvZGUoKSkKKysgICAgICAgIEZvcm1hdChpbnN0ciwgIm5lZ3cgICAgICAncmQsICdyczIi KTsKKysgICAgICBlbHNlCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJzdWJ3ICAgICAgJ3JkLCAn cnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fU0xMVzoKKysgICAgICBG b3JtYXQoaW5zdHIsICJzbGx3ICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2UgUk9fU1JMVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJzcmx3ICAgICAgJ3Jk LCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fU1JBVzoKKysgICAg ICBGb3JtYXQoaW5zdHIsICJzcmF3ICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJl YWs7CisrI2VuZGlmIC8qIFY4X1RBUkdFVF9BUkNIXzY0X0JJVCAqLworKyAgICAvLyBUT0RPOiBB ZGQgUklTQ1YgTSBleHRlbnNpb24gbWFjcm8KKysgICAgY2FzZSBST19NVUw6CisrICAgICAgRm9y bWF0KGluc3RyLCAibXVsICAgICAgICdyZCwgJ3JzMSwgJ3JzMiIpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIFJPX01VTEg6CisrICAgICAgRm9ybWF0KGluc3RyLCAibXVsaCAgICAgICdyZCwg J3JzMSwgJ3JzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX01VTEhTVToKKysgICAg ICBGb3JtYXQoaW5zdHIsICJtdWxoc3UgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgUk9fTVVMSFU6CisrICAgICAgRm9ybWF0KGluc3RyLCAibXVsaHUgICAg ICdyZCwgJ3JzMSwgJ3JzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0RJVjoKKysg ICAgICBGb3JtYXQoaW5zdHIsICJkaXYgICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgUk9fRElWVToKKysgICAgICBGb3JtYXQoaW5zdHIsICJkaXZ1ICAg ICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fUkVNOgor KyAgICAgIEZvcm1hdChpbnN0ciwgInJlbSAgICAgICAncmQsICdyczEsICdyczIiKTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBST19SRU1VOgorKyAgICAgIEZvcm1hdChpbnN0ciwgInJlbXUg ICAgICAncmQsICdyczEsICdyczIiKTsKKysgICAgICBicmVhazsKKysjaWZkZWYgVjhfVEFSR0VU X0FSQ0hfNjRfQklUCisrICAgIGNhc2UgUk9fTVVMVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJt dWx3ICAgICAgJ3JkLCAncnMxLCAncnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9f RElWVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJkaXZ3ICAgICAgJ3JkLCAncnMxLCAncnMyIik7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fRElWVVc6CisrICAgICAgRm9ybWF0KGluc3Ry LCAiZGl2dXcgICAgICdyZCwgJ3JzMSwgJ3JzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IFJPX1JFTVc6CisrICAgICAgRm9ybWF0KGluc3RyLCAicmVtdyAgICAgICdyZCwgJ3JzMSwgJ3Jz MiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1JFTVVXOgorKyAgICAgIEZvcm1hdChp bnN0ciwgInJlbXV3ICAgICAncmQsICdyczEsICdyczIiKTsKKysgICAgICBicmVhazsKKysjZW5k aWYgLypWOF9UQVJHRVRfQVJDSF82NF9CSVQqLworKyAgICAvLyBUT0RPOiBFbmQgQWRkIFJJU0NW IE0gZXh0ZW5zaW9uIG1hY3JvCisrICAgIGRlZmF1bHQ6IHsKKysgICAgICBzd2l0Y2ggKGluc3Ry LT5CYXNlT3Bjb2RlKCkpIHsKKysgICAgICAgIGNhc2UgQU1POgorKyAgICAgICAgICBEZWNvZGVS QVR5cGUoaW5zdHIpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgT1BfRlA6Cisr ICAgICAgICAgIERlY29kZVJGUFR5cGUoaW5zdHIpOworKyAgICAgICAgICBicmVhazsKKysgICAg ICAgIGRlZmF1bHQ6CisrICAgICAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQor KyAgICB9CisrICB9CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6RGVjb2RlUkFUeXBlKEluc3RydWN0 aW9uKiBpbnN0cikgeworKyAgLy8gVE9ETzogQWRkIG1hY3JvIGZvciBSSVNDViBBIGV4dGVuc2lv bgorKyAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgQSBleHRlbnNpb24gaW5zdHJ1Y3Rpb25zIGJl Y2F1c2UgaXQgdXNlcyBmdW5jNQorKyAgLy8gRm9yIGFsbCBBIGV4dGVuc2lvbiBpbnN0cnVjdGlv biwgVjggc2ltdWxhdG9yIGlzIHB1cmUgc2VxdWVudGlhbC4gTm8KKysgIC8vIE1lbW9yeSBhZGRy ZXNzIGxvY2sgb3Igb3RoZXIgc3luY2hyb25pemFpdG9uIGJlaGF2aW9ycy4KKysgIHN3aXRjaCAo aW5zdHItPkluc3RydWN0aW9uQml0cygpICYga1JBVHlwZU1hc2spIHsKKysgICAgY2FzZSBST19M Ul9XOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImxyLncnYSAgICAncmQsICgncnMxKSIpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1NDX1c6CisrICAgICAgRm9ybWF0KGluc3RyLCAic2Mu dydhICAgICdyZCwgJ3JzMiwgKCdyczEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9f QU1PU1dBUF9XOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImFtb3N3YXAudydhICdyZCwgJ3JzMiwg KCdyczEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQU1PQUREX1c6CisrICAgICAg Rm9ybWF0KGluc3RyLCAiYW1vYWRkLncnYSAncmQsICdyczIsICgncnMxKSIpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIFJPX0FNT1hPUl9XOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImFtb3hv ci53J2EgJ3JkLCAncnMyLCAoJ3JzMSkiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19B TU9BTkRfVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJhbW9hbmQudydhICdyZCwgJ3JzMiwgKCdy czEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQU1PT1JfVzoKKysgICAgICBGb3Jt YXQoaW5zdHIsICJhbW9vci53J2EgJ3JkLCAncnMyLCAoJ3JzMSkiKTsKKysgICAgICBicmVhazsK KysgICAgY2FzZSBST19BTU9NSU5fVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJhbW9taW4udydh ICdyZCwgJ3JzMiwgKCdyczEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQU1PTUFY X1c6CisrICAgICAgRm9ybWF0KGluc3RyLCAiYW1vbWF4LncnYSAncmQsICdyczIsICgncnMxKSIp OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0FNT01JTlVfVzoKKysgICAgICBGb3JtYXQo aW5zdHIsICJhbW9taW51LncnYSAncmQsICdyczIsICgncnMxKSIpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIFJPX0FNT01BWFVfVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJhbW9tYXh1Lncn YSAncmQsICdyczIsICgncnMxKSIpOworKyAgICAgIGJyZWFrOworKyNpZmRlZiBWOF9UQVJHRVRf QVJDSF82NF9CSVQKKysgICAgY2FzZSBST19MUl9EOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImxy LmQnYSAncmQsICgncnMxKSIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1NDX0Q6Cisr ICAgICAgRm9ybWF0KGluc3RyLCAic2MuZCdhICdyZCwgJ3JzMiwgKCdyczEpIik7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgUk9fQU1PU1dBUF9EOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImFt b3N3YXAuZCdhICdyZCwgJ3JzMiwgKCdyczEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug Uk9fQU1PQUREX0Q6CisrICAgICAgRm9ybWF0KGluc3RyLCAiYW1vYWRkLmQnYSAncmQsICdyczIs ICgncnMxKSIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0FNT1hPUl9EOgorKyAgICAg IEZvcm1hdChpbnN0ciwgImFtb3hvci5kJ2EgJ3JkLCAncnMyLCAoJ3JzMSkiKTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBST19BTU9BTkRfRDoKKysgICAgICBGb3JtYXQoaW5zdHIsICJhbW9h bmQuZCdhICdyZCwgJ3JzMiwgKCdyczEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9f QU1PT1JfRDoKKysgICAgICBGb3JtYXQoaW5zdHIsICJhbW9vci5kJ2EgJ3JkLCAncnMyLCAoJ3Jz MSkiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19BTU9NSU5fRDoKKysgICAgICBGb3Jt YXQoaW5zdHIsICJhbW9taW4uZCdhICdyZCwgJ3JzMiwgKCdyczEpIik7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2UgUk9fQU1PTUFYX0Q6CisrICAgICAgRm9ybWF0KGluc3RyLCAiYW1vc3dhcC5k J2EgJ3JkLCAncnMyLCAoJ3JzMSkiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19BTU9N SU5VX0Q6CisrICAgICAgRm9ybWF0KGluc3RyLCAiYW1vbWludS5kJ2EgJ3JkLCAncnMyLCAoJ3Jz MSkiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19BTU9NQVhVX0Q6CisrICAgICAgRm9y bWF0KGluc3RyLCAiYW1vbWF4dS5kJ2EgJ3JkLCAncnMyLCAoJ3JzMSkiKTsKKysgICAgICBicmVh azsKKysjZW5kaWYgLypWOF9UQVJHRVRfQVJDSF82NF9CSVQqLworKyAgICAvLyBUT0RPOiBFbmQg QWRkIG1hY3JvIGZvciBSSVNDViBBIGV4dGVuc2lvbgorKyAgICBkZWZhdWx0OiB7CisrICAgICAg VU5TVVBQT1JURURfUklTQ1YoKTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIERlY29kZXI6 OkRlY29kZVJGUFR5cGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICAvLyBPUF9GUCBpbnN0cnVj dGlvbnMgKEYvRCkgdXNlcyBmdW5jNyBmaXJzdC4gU29tZSBmdXJ0aGVyIHVzZXMgZnVuMyBhbmQg cnMyKCkKKysKKysgIC8vIGtSQVR5cGVNYXNrIGlzIG9ubHkgZm9yIGZ1bmM3CisrICBzd2l0Y2gg KGluc3RyLT5JbnN0cnVjdGlvbkJpdHMoKSAmIGtSRlBUeXBlTWFzaykgeworKyAgICAvLyBUT0RP OiBBZGQgbWFjcm8gZm9yIFJJU0NWIEYgZXh0ZW5zaW9uCisrICAgIGNhc2UgUk9fRkFERF9TOgor KyAgICAgIEZvcm1hdChpbnN0ciwgImZhZGQucyAgICAnZmQsICdmczEsICdmczIiKTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBST19GU1VCX1M6CisrICAgICAgRm9ybWF0KGluc3RyLCAiZnN1 Yi5zICAgICdmZCwgJ2ZzMSwgJ2ZzMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0ZN VUxfUzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJmbXVsLnMgICAgJ2ZkLCAnZnMxLCAnZnMyIik7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fRkRJVl9TOgorKyAgICAgIEZvcm1hdChpbnN0 ciwgImZkaXYucyAgICAnZmQsICdmczEsICdmczIiKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBST19GU1FSVF9TOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImZzcXJ0LnMgICAnZmQsICdmczEi KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19GU0dOSl9TOiB7ICAvLyBST19GU0dOSk5f UyAgUk9fRlNHTkpYX1MKKysgICAgICBzd2l0Y2ggKGluc3RyLT5GdW5jdDNWYWx1ZSgpKSB7Cisr ICAgICAgICBjYXNlIDBiMDAwOiAgLy8gUk9fRlNHTkpfUworKyAgICAgICAgICBpZiAoaW5zdHIt PlJzMVZhbHVlKCkgPT0gaW5zdHItPlJzMlZhbHVlKCkpCisrICAgICAgICAgICAgRm9ybWF0KGlu c3RyLCAiZm12LnMgICAgICdmZCwgJ2ZzMSIpOworKyAgICAgICAgICBlbHNlCisrICAgICAgICAg ICAgRm9ybWF0KGluc3RyLCAiZnNnbmoucyAgICdmZCwgJ2ZzMSwgJ2ZzMiIpOworKyAgICAgICAg ICBicmVhazsKKysgICAgICAgIGNhc2UgMGIwMDE6ICAvLyBST19GU0dOSk5fUworKyAgICAgICAg ICBpZiAoaW5zdHItPlJzMVZhbHVlKCkgPT0gaW5zdHItPlJzMlZhbHVlKCkpCisrICAgICAgICAg ICAgRm9ybWF0KGluc3RyLCAiZm5lZy5zICAgICdmZCwgJ2ZzMSIpOworKyAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZnNnbmpuLnMgICdmZCwgJ2ZzMSwgJ2ZzMiIp OworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgMGIwMTA6ICAvLyBST19GU0dOSlhf UworKyAgICAgICAgICBpZiAoaW5zdHItPlJzMVZhbHVlKCkgPT0gaW5zdHItPlJzMlZhbHVlKCkp CisrICAgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmFicy5zICAgICdmZCwgJ2ZzMSIpOworKyAg ICAgICAgICBlbHNlCisrICAgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZnNnbmp4LnMgICdmZCwg J2ZzMSwgJ2ZzMiIpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGRlZmF1bHQ6CisrICAg ICAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2UgUk9fRk1JTl9TOiB7ICAvLyBST19GTUFYX1MKKysgICAgICBzd2l0Y2gg KGluc3RyLT5GdW5jdDNWYWx1ZSgpKSB7CisrICAgICAgICBjYXNlIDBiMDAwOiAgLy8gUk9fRk1J Tl9TCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZtaW4ucyAgICAnZmQsICdmczEsICdmczIi KTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAxOiAgLy8gUk9fRk1BWF9T CisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZtYXgucyAgICAnZmQsICdmczEsICdmczIiKTsK KysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICBVTlNVUFBP UlRFRF9SSVNDVigpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNl IFJPX0ZDVlRfV19TOiB7ICAvLyBST19GQ1ZUX1dVX1MgLCA2NEYgUk9fRkNWVF9MX1MgUk9fRkNW VF9MVV9TCisrICAgICAgc3dpdGNoIChpbnN0ci0+UnMyVmFsdWUoKSkgeworKyAgICAgICAgY2Fz ZSAwYjAwMDAwOiAgLy8gUk9fRkNWVF9XX1MKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2 dC53LnMgIFsnZnJtXSAncmQsICdmczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBj YXNlIDBiMDAwMDE6ICAvLyBST19GQ1ZUX1dVX1MKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAi ZmN2dC53dS5zIFsnZnJtXSAncmQsICdmczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrI2lmZGVm IFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICAgICAgY2FzZSAwYjAwMDEwOiAgLy8gUk9fRkNW VF9MX1MKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2dC5sLnMgIFsnZnJtXSAncmQsICdm czEiKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAwMTE6ICAvLyBST19G Q1ZUX0xVX1MKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2dC5sdS5zIFsnZnJtXSAncmQs ICdmczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrI2VuZGlmIC8qIFY4X1RBUkdFVF9BUkNIXzY0 X0JJVCAqLworKyAgICAgICAgZGVmYXVsdDoKKysgICAgICAgICAgVU5TVVBQT1JURURfUklTQ1Yo KTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19GTVY6IHsg IC8vIFJPX0ZDTEFTU19TCisrICAgICAgaWYgKGluc3RyLT5SczJWYWx1ZSgpICE9IDBiMDAwMDAp IHsKKysgICAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQorKyAgICAgIHN3aXRj aCAoaW5zdHItPkZ1bmN0M1ZhbHVlKCkpIHsKKysgICAgICAgIGNhc2UgMGIwMDA6ICAvLyBST19G TVZfWF9XCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZtdi54LncgICAncmQsICdmczEiKTsK KysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAxOiAgLy8gUk9fRkNMQVNTX1MK KysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmNsYXNzLnMgICdyZCwgJ2ZzMSIpOworKyAgICAg ICAgICBicmVhazsKKysgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgIFVOU1VQUE9SVEVEX1JJ U0NWKCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRkxF X1M6IHsgIC8vIFJPX0ZFUV9TIFJPX0ZMVF9TIFJPX0ZMRV9TCisrICAgICAgc3dpdGNoIChpbnN0 ci0+RnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAwYjAxMDogIC8vIFJPX0ZFUV9TCisr ICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZlcS5zICAgICAncmQsICdmczEsICdmczIiKTsKKysg ICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAxOiAgLy8gUk9fRkxUX1MKKysgICAg ICAgICAgRm9ybWF0KGluc3RyLCAiZmx0LnMgICAgICdyZCwgJ2ZzMSwgJ2ZzMiIpOworKyAgICAg ICAgICBicmVhazsKKysgICAgICAgIGNhc2UgMGIwMDA6ICAvLyBST19GTEVfUworKyAgICAgICAg ICBGb3JtYXQoaW5zdHIsICJmbGUucyAgICAgJ3JkLCAnZnMxLCAnZnMyIik7CisrICAgICAgICAg IGJyZWFrOworKyAgICAgICAgZGVmYXVsdDoKKysgICAgICAgICAgVU5TVVBQT1JURURfUklTQ1Yo KTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19GQ1ZUX1Nf VzogeyAgLy8gUk9fRkNWVF9TX1dVICwgNjRGIFJPX0ZDVlRfU19MIFJPX0ZDVlRfU19MVQorKyAg ICAgIHN3aXRjaCAoaW5zdHItPlJzMlZhbHVlKCkpIHsKKysgICAgICAgIGNhc2UgMGIwMDAwMDog IC8vIFJPX0ZDVlRfU19XCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZjdnQucy53ICAnZmQs ICdyczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAwMDE6ICAvLyBS T19GQ1ZUX1NfV1UKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2dC5zLnd1ICdmZCwgJ3Jz MSIpOworKyAgICAgICAgICBicmVhazsKKysjaWZkZWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisr ICAgICAgICBjYXNlIDBiMDAwMTA6ICAvLyBST19GQ1ZUX1NfTAorKyAgICAgICAgICBGb3JtYXQo aW5zdHIsICJmY3Z0LnMubCAgJ2ZkLCAncnMxIik7CisrICAgICAgICAgIGJyZWFrOworKyAgICAg ICAgY2FzZSAwYjAwMDExOiAgLy8gUk9fRkNWVF9TX0xVCisrICAgICAgICAgIEZvcm1hdChpbnN0 ciwgImZjdnQucy5sdSAnZmQsICdyczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrI2VuZGlmIC8q IFY4X1RBUkdFVF9BUkNIXzY0X0JJVCAqLworKyAgICAgICAgZGVmYXVsdDogeworKyAgICAgICAg ICBVTlNVUFBPUlRFRF9SSVNDVigpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZNVl9XX1g6IHsKKysgICAgICBpZiAoaW5zdHItPkZ1 bmN0M1ZhbHVlKCkgPT0gMGIwMDApIHsKKysgICAgICAgIEZvcm1hdChpbnN0ciwgImZtdi53Lngg ICAnZmQsICdyczEiKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVU5TVVBQT1JURURfUklT Q1YoKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgLy8gVE9ETzogQWRk IG1hY3JvIGZvciBSSVNDViBEIGV4dGVuc2lvbgorKyAgICBjYXNlIFJPX0ZBRERfRDoKKysgICAg ICBGb3JtYXQoaW5zdHIsICJmYWRkLmQgICAgJ2ZkLCAnZnMxLCAnZnMyIik7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgUk9fRlNVQl9EOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImZzdWIuZCAg ICAnZmQsICdmczEsICdmczIiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19GTVVMX0Q6 CisrICAgICAgRm9ybWF0KGluc3RyLCAiZm11bC5kICAgICdmZCwgJ2ZzMSwgJ2ZzMiIpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0ZESVZfRDoKKysgICAgICBGb3JtYXQoaW5zdHIsICJm ZGl2LmQgICAgJ2ZkLCAnZnMxLCAnZnMyIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9f RlNRUlRfRDogeworKyAgICAgIGlmIChpbnN0ci0+UnMyVmFsdWUoKSA9PSAwYjAwMDAwKSB7Cisr ICAgICAgICBGb3JtYXQoaW5zdHIsICJmc3FydC5kICAgJ2ZkLCAnZnMxIik7CisrICAgICAgfSBl bHNlIHsKKysgICAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQorKyAgICAgIGJy ZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRlNHTkpfRDogeyAgLy8gUk9fRlNHTkpOX0QgUk9f RlNHTkpYX0QKKysgICAgICBzd2l0Y2ggKGluc3RyLT5GdW5jdDNWYWx1ZSgpKSB7CisrICAgICAg ICBjYXNlIDBiMDAwOiAgLy8gUk9fRlNHTkpfRAorKyAgICAgICAgICBpZiAoaW5zdHItPlJzMVZh bHVlKCkgPT0gaW5zdHItPlJzMlZhbHVlKCkpCisrICAgICAgICAgICAgRm9ybWF0KGluc3RyLCAi Zm12LmQgICAgICdmZCwgJ2ZzMSIpOworKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgRm9y bWF0KGluc3RyLCAiZnNnbmouZCAgICdmZCwgJ2ZzMSwgJ2ZzMiIpOworKyAgICAgICAgICBicmVh azsKKysgICAgICAgIGNhc2UgMGIwMDE6ICAvLyBST19GU0dOSk5fRAorKyAgICAgICAgICBpZiAo aW5zdHItPlJzMVZhbHVlKCkgPT0gaW5zdHItPlJzMlZhbHVlKCkpCisrICAgICAgICAgICAgRm9y bWF0KGluc3RyLCAiZm5lZy5kICAgICdmZCwgJ2ZzMSIpOworKyAgICAgICAgICBlbHNlCisrICAg ICAgICAgICAgRm9ybWF0KGluc3RyLCAiZnNnbmpuLmQgICdmZCwgJ2ZzMSwgJ2ZzMiIpOworKyAg ICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgMGIwMTA6ICAvLyBST19GU0dOSlhfRAorKyAg ICAgICAgICBpZiAoaW5zdHItPlJzMVZhbHVlKCkgPT0gaW5zdHItPlJzMlZhbHVlKCkpCisrICAg ICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmFicy5kICAgICdmZCwgJ2ZzMSIpOworKyAgICAgICAg ICBlbHNlCisrICAgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZnNnbmp4LmQgICdmZCwgJ2ZzMSwg J2ZzMiIpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAg IFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIGNhc2UgUk9fRk1JTl9EOiB7ICAvLyBST19GTUFYX0QKKysgICAgICBzd2l0Y2ggKGluc3Ry LT5GdW5jdDNWYWx1ZSgpKSB7CisrICAgICAgICBjYXNlIDBiMDAwOiAgLy8gUk9fRk1JTl9ECisr ICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZtaW4uZCAgICAnZmQsICdmczEsICdmczIiKTsKKysg ICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAxOiAgLy8gUk9fRk1BWF9ECisrICAg ICAgICAgIEZvcm1hdChpbnN0ciwgImZtYXguZCAgICAnZmQsICdmczEsICdmczIiKTsKKysgICAg ICAgICAgYnJlYWs7CisrICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICBVTlNVUFBPUlRFRF9S SVNDVigpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIChST19G Q1ZUX1NfRCAmIGtSRlBUeXBlTWFzayk6IHsKKysgICAgICBpZiAoaW5zdHItPlJzMlZhbHVlKCkg PT0gMGIwMDAwMSkgeworKyAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2dC5zLmQgIFsnZnJtXSAn ZmQsICdyczEiKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVU5TVVBQT1JURURfUklTQ1Yo KTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19GQ1ZUX0Rf UzogeworKyAgICAgIGlmIChpbnN0ci0+UnMyVmFsdWUoKSA9PSAwYjAwMDAwKSB7CisrICAgICAg ICBGb3JtYXQoaW5zdHIsICJmY3Z0LmQucyAgJ2ZkLCAnZnMxIik7CisrICAgICAgfSBlbHNlIHsK KysgICAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOwor KyAgICB9CisrICAgIGNhc2UgUk9fRkxFX0Q6IHsgIC8vIFJPX0ZFUV9EIFJPX0ZMVF9EIFJPX0ZM RV9ECisrICAgICAgc3dpdGNoIChpbnN0ci0+RnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2Fz ZSAwYjAxMDogIC8vIFJPX0ZFUV9TCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZlcS5kICAg ICAncmQsICdmczEsICdmczIiKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBi MDAxOiAgLy8gUk9fRkxUX0QKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmx0LmQgICAgICdy ZCwgJ2ZzMSwgJ2ZzMiIpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgMGIwMDA6 ICAvLyBST19GTEVfRAorKyAgICAgICAgICBGb3JtYXQoaW5zdHIsICJmbGUuZCAgICAgJ3JkLCAn ZnMxLCAnZnMyIik7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZGVmYXVsdDoKKysgICAg ICAgICAgVU5TVVBQT1JURURfUklTQ1YoKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAg IH0KKysgICAgY2FzZSAoUk9fRkNMQVNTX0QgJiBrUkZQVHlwZU1hc2spOiB7ICAvLyBST19GQ0xB U1NfRCAsIDY0RCBST19GTVZfWF9ECisrICAgICAgaWYgKGluc3RyLT5SczJWYWx1ZSgpICE9IDBi MDAwMDApIHsKKysgICAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgICBicmVhazsK KysgICAgICB9CisrICAgICAgc3dpdGNoIChpbnN0ci0+RnVuY3QzVmFsdWUoKSkgeworKyAgICAg ICAgY2FzZSAwYjAwMTogIC8vIFJPX0ZDTEFTU19ECisrICAgICAgICAgIEZvcm1hdChpbnN0ciwg ImZjbGFzcy5kICAncmQsICdmczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrI2lmZGVmIFY4X1RB UkdFVF9BUkNIXzY0X0JJVAorKyAgICAgICAgY2FzZSAwYjAwMDogIC8vIFJPX0ZNVl9YX0QKKysg ICAgICAgICAgRm9ybWF0KGluc3RyLCAiZm12LnguZCAgICdyZCwgJ2ZzMSIpOworKyAgICAgICAg ICBicmVhazsKKysjZW5kaWYgLyogVjhfVEFSR0VUX0FSQ0hfNjRfQklUICovCisrICAgICAgICBk ZWZhdWx0OgorKyAgICAgICAgICBVTlNVUFBPUlRFRF9SSVNDVigpOworKyAgICAgIH0KKysgICAg ICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZDVlRfV19EOiB7ICAvLyBST19GQ1ZUX1dV X0QgLCA2NEYgUk9fRkNWVF9MX0QgUk9fRkNWVF9MVV9ECisrICAgICAgc3dpdGNoIChpbnN0ci0+ UnMyVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAwYjAwMDAwOiAgLy8gUk9fRkNWVF9XX0QKKysg ICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2dC53LmQgIFsnZnJtXSAncmQsICdmczEiKTsKKysg ICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDBiMDAwMDE6ICAvLyBST19GQ1ZUX1dVX0QK KysgICAgICAgICAgRm9ybWF0KGluc3RyLCAiZmN2dC53dS5kIFsnZnJtXSAncmQsICdmczEiKTsK KysgICAgICAgICAgYnJlYWs7CisrI2lmZGVmIFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICAg ICAgY2FzZSAwYjAwMDEwOiAgLy8gUk9fRkNWVF9MX0QKKysgICAgICAgICAgRm9ybWF0KGluc3Ry LCAiZmN2dC5sLmQgIFsnZnJtXSAncmQsICdmczEiKTsKKysgICAgICAgICAgYnJlYWs7CisrICAg ICAgICBjYXNlIDBiMDAwMTE6ICAvLyBST19GQ1ZUX0xVX0QKKysgICAgICAgICAgRm9ybWF0KGlu c3RyLCAiZmN2dC5sdS5kIFsnZnJtXSAncmQsICdmczEiKTsKKysgICAgICAgICAgYnJlYWs7Cisr I2VuZGlmIC8qIFY4X1RBUkdFVF9BUkNIXzY0X0JJVCAqLworKyAgICAgICAgZGVmYXVsdDoKKysg ICAgICAgICAgVU5TVVBQT1JURURfUklTQ1YoKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysgICAgY2FzZSBST19GQ1ZUX0RfVzogeyAgLy8gUk9fRkNWVF9EX1dVICwgNjRGIFJP X0ZDVlRfRF9MIFJPX0ZDVlRfRF9MVQorKyAgICAgIHN3aXRjaCAoaW5zdHItPlJzMlZhbHVlKCkp IHsKKysgICAgICAgIGNhc2UgMGIwMDAwMDogIC8vIFJPX0ZDVlRfRF9XCisrICAgICAgICAgIEZv cm1hdChpbnN0ciwgImZjdnQuZC53ICAnZmQsICdyczEiKTsKKysgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICBjYXNlIDBiMDAwMDE6ICAvLyBST19GQ1ZUX0RfV1UKKysgICAgICAgICAgRm9ybWF0 KGluc3RyLCAiZmN2dC5kLnd1ICdmZCwgJ3JzMSIpOworKyAgICAgICAgICBicmVhazsKKysjaWZk ZWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisrICAgICAgICBjYXNlIDBiMDAwMTA6ICAvLyBST19G Q1ZUX0RfTAorKyAgICAgICAgICBGb3JtYXQoaW5zdHIsICJmY3Z0LmQubCAgJ2ZkLCAncnMxIik7 CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSAwYjAwMDExOiAgLy8gUk9fRkNWVF9E X0xVCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZjdnQuZC5sdSAnZmQsICdyczEiKTsKKysg ICAgICAgICAgYnJlYWs7CisrI2VuZGlmIC8qIFY4X1RBUkdFVF9BUkNIXzY0X0JJVCAqLworKyAg ICAgICAgZGVmYXVsdDoKKysgICAgICAgICAgVU5TVVBQT1JURURfUklTQ1YoKTsKKysgICAgICB9 CisrICAgICAgYnJlYWs7CisrICAgIH0KKysjaWZkZWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisr ICAgIGNhc2UgUk9fRk1WX0RfWDogeworKyAgICAgIGlmIChpbnN0ci0+RnVuY3QzVmFsdWUoKSA9 PSAwYjAwMCAmJiBpbnN0ci0+UnMyVmFsdWUoKSA9PSAwYjAwMDAwKSB7CisrICAgICAgICBGb3Jt YXQoaW5zdHIsICJmbXYuZC54ICAgJ2ZkLCAncnMxIik7CisrICAgICAgfSBlbHNlIHsKKysgICAg ICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9 CisrI2VuZGlmIC8qIFY4X1RBUkdFVF9BUkNIXzY0X0JJVCAqLworKyAgICBkZWZhdWx0OiB7Cisr ICAgICAgVU5TVVBQT1JURURfUklTQ1YoKTsKKysgICAgfQorKyAgfQorK30KKysKKyt2b2lkIERl Y29kZXI6OkRlY29kZVI0VHlwZShJbnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIHN3aXRjaCAoaW5z dHItPkluc3RydWN0aW9uQml0cygpICYga1I0VHlwZU1hc2spIHsKKysgICAgLy8gVE9ETzogdXNl IEYgRXh0ZW5zaW9uIG1hY3JvIGJsb2NrCisrICAgIGNhc2UgUk9fRk1BRERfUzoKKysgICAgICBG b3JtYXQoaW5zdHIsICJmbWFkZC5zICAgJ2ZkLCAnZnMxLCAnZnMyLCAnZnMzIik7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgUk9fRk1TVUJfUzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJmbXN1 Yi5zICAgJ2ZkLCAnZnMxLCAnZnMyLCAnZnMzIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2Ug Uk9fRk5NU1VCX1M6CisrICAgICAgRm9ybWF0KGluc3RyLCAiZm5tc3ViLnMgICAnZmQsICdmczEs ICdmczIsICdmczMiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19GTk1BRERfUzoKKysg ICAgICBGb3JtYXQoaW5zdHIsICJmbm1hZGQucyAgICdmZCwgJ2ZzMSwgJ2ZzMiwgJ2ZzMyIpOwor KyAgICAgIGJyZWFrOworKyAgICAvLyBUT0RPOiB1c2UgRiBFeHRlbnNpb24gbWFjcm8gYmxvY2sK KysgICAgY2FzZSBST19GTUFERF9EOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImZtYWRkLmQgICAn ZmQsICdmczEsICdmczIsICdmczMiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19GTVNV Ql9EOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImZtc3ViLmQgICAnZmQsICdmczEsICdmczIsICdm czMiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19GTk1TVUJfRDoKKysgICAgICBGb3Jt YXQoaW5zdHIsICJmbm1zdWIuZCAgJ2ZkLCAnZnMxLCAnZnMyLCAnZnMzIik7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgUk9fRk5NQUREX0Q6CisrICAgICAgRm9ybWF0KGluc3RyLCAiZm5tYWRk LmQgICdmZCwgJ2ZzMSwgJ2ZzMiwgJ2ZzMyIpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0 OgorKyAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICB9CisrfQorKworK3ZvaWQgRGVjb2Rl cjo6RGVjb2RlSVR5cGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBzd2l0Y2ggKGluc3RyLT5J bnN0cnVjdGlvbkJpdHMoKSAmIGtJVHlwZU1hc2spIHsKKysgICAgY2FzZSBST19KQUxSOgorKyAg ICAgIGlmIChpbnN0ci0+UmRWYWx1ZSgpID09IHplcm9fcmVnLmNvZGUoKSAmJgorKyAgICAgICAg ICBpbnN0ci0+UnMxVmFsdWUoKSA9PSByYS5jb2RlKCkgJiYgaW5zdHItPkltbTEyVmFsdWUoKSA9 PSAwKQorKyAgICAgICAgRm9ybWF0KGluc3RyLCAicmV0Iik7CisrICAgICAgZWxzZSBpZiAoaW5z dHItPlJkVmFsdWUoKSA9PSB6ZXJvX3JlZy5jb2RlKCkgJiYgaW5zdHItPkltbTEyVmFsdWUoKSA9 PSAwKQorKyAgICAgICAgRm9ybWF0KGluc3RyLCAianIgICAgICAgICdyczEiKTsKKysgICAgICBl bHNlIGlmIChpbnN0ci0+UmRWYWx1ZSgpID09IHJhLmNvZGUoKSAmJiBpbnN0ci0+SW1tMTJWYWx1 ZSgpID09IDApCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJqYWxyICAgICAgJ3JzMSIpOworKyAg ICAgIGVsc2UKKysgICAgICAgIEZvcm1hdChpbnN0ciwgImphbHIgICAgICAncmQsICdpbW0xMign cnMxKSIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0xCOgorKyAgICAgIEZvcm1hdChp bnN0ciwgImxiICAgICAgICAncmQsICdpbW0xMigncnMxKSIpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIFJPX0xIOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImxoICAgICAgICAncmQsICdpbW0x MigncnMxKSIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0xXOgorKyAgICAgIEZvcm1h dChpbnN0ciwgImx3ICAgICAgICAncmQsICdpbW0xMigncnMxKSIpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIFJPX0xCVToKKysgICAgICBGb3JtYXQoaW5zdHIsICJsYnUgICAgICAgJ3JkLCAn aW1tMTIoJ3JzMSkiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19MSFU6CisrICAgICAg Rm9ybWF0KGluc3RyLCAibGh1ICAgICAgICdyZCwgJ2ltbTEyKCdyczEpIik7CisrICAgICAgYnJl YWs7CisrI2lmZGVmIFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICBjYXNlIFJPX0xXVToKKysg ICAgICBGb3JtYXQoaW5zdHIsICJsd3UgICAgICAgJ3JkLCAnaW1tMTIoJ3JzMSkiKTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBST19MRDoKKysgICAgICBGb3JtYXQoaW5zdHIsICJsZCAgICAg ICAgJ3JkLCAnaW1tMTIoJ3JzMSkiKTsKKysgICAgICBicmVhazsKKysjZW5kaWYgLypWOF9UQVJH RVRfQVJDSF82NF9CSVQqLworKyAgICBjYXNlIFJPX0FEREk6CisrICAgICAgaWYgKGluc3RyLT5J bW0xMlZhbHVlKCkgPT0gMCkgeworKyAgICAgICAgaWYgKGluc3RyLT5SZFZhbHVlKCkgPT0gemVy b19yZWcuY29kZSgpICYmCisrICAgICAgICAgICAgaW5zdHItPlJzMVZhbHVlKCkgPT0gemVyb19y ZWcuY29kZSgpKQorKyAgICAgICAgICBGb3JtYXQoaW5zdHIsICJub3AiKTsKKysgICAgICAgIGVs c2UKKysgICAgICAgICAgRm9ybWF0KGluc3RyLCAibXYgICAgICAgICdyZCwgJ3JzMSIpOworKyAg ICAgIH0gZWxzZSBpZiAoaW5zdHItPlJzMVZhbHVlKCkgPT0gemVyb19yZWcuY29kZSgpKSB7Cisr ICAgICAgICBGb3JtYXQoaW5zdHIsICJsaSAgICAgICAgJ3JkLCAnaW1tMTIiKTsKKysgICAgICB9 IGVsc2UgeworKyAgICAgICAgRm9ybWF0KGluc3RyLCAiYWRkaSAgICAgICdyZCwgJ3JzMSwgJ2lt bTEyIik7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1NMVEk6CisrICAg ICAgRm9ybWF0KGluc3RyLCAic2x0aSAgICAgICdyZCwgJ3JzMSwgJ2ltbTEyIik7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgUk9fU0xUSVU6CisrICAgICAgaWYgKGluc3RyLT5JbW0xMlZhbHVl KCkgPT0gMSkKKysgICAgICAgIEZvcm1hdChpbnN0ciwgInNlcXogICAgICAncmQsICdyczEiKTsK KysgICAgICBlbHNlCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJzbHRpdSAgICAgJ3JkLCAncnMx LCAnaW1tMTIiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19YT1JJOgorKyAgICAgIGlm IChpbnN0ci0+SW1tMTJWYWx1ZSgpID09IC0xKQorKyAgICAgICAgRm9ybWF0KGluc3RyLCAibm90 ICAgICAgICdyZCwgJ3JzMSIpOworKyAgICAgIGVsc2UKKysgICAgICAgIEZvcm1hdChpbnN0ciwg InhvcmkgICAgICAncmQsICdyczEsICdpbW0xMngiKTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBST19PUkk6CisrICAgICAgRm9ybWF0KGluc3RyLCAib3JpICAgICAgICdyZCwgJ3JzMSwgJ2lt bTEyeCIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0FOREk6CisrICAgICAgRm9ybWF0 KGluc3RyLCAiYW5kaSAgICAgICdyZCwgJ3JzMSwgJ2ltbTEyeCIpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIFJPX1NMTEk6CisrICAgICAgRm9ybWF0KGluc3RyLCAic2xsaSAgICAgICdyZCwg J3JzMSwgJ3M2NCIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1NSTEk6IHsgIC8vICBS T19TUkFJCisrICAgICAgaWYgKCFpbnN0ci0+SXNBcml0aFNoaWZ0KCkpIHsKKysgICAgICAgIEZv cm1hdChpbnN0ciwgInNybGkgICAgICAncmQsICdyczEsICdzNjQiKTsKKysgICAgICB9IGVsc2Ug eworKyAgICAgICAgRm9ybWF0KGluc3RyLCAic3JhaSAgICAgICdyZCwgJ3JzMSwgJ3M2NCIpOwor KyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyNpZmRlZiBWOF9UQVJHRVRfQVJDSF82 NF9CSVQKKysgICAgY2FzZSBST19BRERJVzoKKysgICAgICBpZiAoaW5zdHItPkltbTEyVmFsdWUo KSA9PSAwKQorKyAgICAgICAgRm9ybWF0KGluc3RyLCAic2V4dC53ICAgICdyZCwgJ3JzMSIpOwor KyAgICAgIGVsc2UKKysgICAgICAgIEZvcm1hdChpbnN0ciwgImFkZGl3ICAgICAncmQsICdyczEs ICdpbW0xMiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX1NMTElXOgorKyAgICAgIEZv cm1hdChpbnN0ciwgInNsbGl3ICAgICAncmQsICdyczEsICdzMzIiKTsKKysgICAgICBicmVhazsK KysgICAgY2FzZSBST19TUkxJVzogeyAgLy8gIFJPX1NSQUlXCisrICAgICAgaWYgKCFpbnN0ci0+ SXNBcml0aFNoaWZ0KCkpIHsKKysgICAgICAgIEZvcm1hdChpbnN0ciwgInNybGl3ICAgICAncmQs ICdyczEsICdzMzIiKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgRm9ybWF0KGluc3RyLCAi c3JhaXcgICAgICdyZCwgJ3JzMSwgJ3MzMiIpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysg ICAgfQorKyNlbmRpZiAvKlY4X1RBUkdFVF9BUkNIXzY0X0JJVCovCisrICAgIGNhc2UgUk9fRkVO Q0U6CisrICAgICAgaWYgKGluc3RyLT5NZW1vcnlPcmRlcih0cnVlKSA9PSBQU0lPUlcgJiYKKysg ICAgICAgICAgaW5zdHItPk1lbW9yeU9yZGVyKGZhbHNlKSA9PSBQU0lPUlcpCisrICAgICAgICBG b3JtYXQoaW5zdHIsICJmZW5jZSIpOworKyAgICAgIGVsc2UKKysgICAgICAgIEZvcm1hdChpbnN0 ciwgImZlbmNlICdwcmUsICdzdWMiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19FQ0FM TDogeyAgICAgICAgICAgICAgICAgICAvLyBST19FQlJFQUsKKysgICAgICBpZiAoaW5zdHItPklt bTEyVmFsdWUoKSA9PSAwKSB7ICAvLyBFQ0FMTAorKyAgICAgICAgRm9ybWF0KGluc3RyLCAiZWNh bGwiKTsKKysgICAgICB9IGVsc2UgaWYgKGluc3RyLT5JbW0xMlZhbHVlKCkgPT0gMSkgeyAgLy8g RUJSRUFLCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJlYnJlYWsiKTsKKysgICAgICB9IGVsc2Ug eworKyAgICAgICAgVU5TVVBQT1JURURfUklTQ1YoKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgLy8gVE9ETzogdXNlIFppZmVuY2VpIFN0YW5kYXJkIEV4dGVuc2lvbiBt YWNybyBibG9jaworKyAgICBjYXNlIFJPX0ZFTkNFX0k6CisrICAgICAgRm9ybWF0KGluc3RyLCAi ZmVuY2UuaSIpOworKyAgICAgIGJyZWFrOworKyAgICAvLyBUT0RPOiB1c2UgWmljc3IgU3RhbmRh cmQgRXh0ZW5zaW9uIG1hY3JvIGJsb2NrCisrICAgIC8vIEZJWE1FKFJJU0MtVik6IEFkZCBzcGVj aWFsIGZvcm1hdHRpbmcgZm9yIENTUiByZWdpc3RlcnMKKysgICAgY2FzZSBST19DU1JSVzoKKysg ICAgICBpZiAoaW5zdHItPkNzclZhbHVlKCkgPT0gY3NyX2Zjc3IpIHsKKysgICAgICAgIGlmIChp bnN0ci0+UmRWYWx1ZSgpID09IHplcm9fcmVnLmNvZGUoKSkKKysgICAgICAgICAgRm9ybWF0KGlu c3RyLCAiZnNjc3IgICAgICdyczEiKTsKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgRm9ybWF0 KGluc3RyLCAiZnNjc3IgICAgICdyZCwgJ3JzMSIpOworKyAgICAgIH0gZWxzZSBpZiAoaW5zdHIt PkNzclZhbHVlKCkgPT0gY3NyX2ZybSkgeworKyAgICAgICAgaWYgKGluc3RyLT5SZFZhbHVlKCkg PT0gemVyb19yZWcuY29kZSgpKQorKyAgICAgICAgICBGb3JtYXQoaW5zdHIsICJmc3JtICAgICAg J3JzMSIpOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICBGb3JtYXQoaW5zdHIsICJmc3JtICAg ICAgJ3JkLCAncnMxIik7CisrICAgICAgfSBlbHNlIGlmIChpbnN0ci0+Q3NyVmFsdWUoKSA9PSBj c3JfZmZsYWdzKSB7CisrICAgICAgICBpZiAoaW5zdHItPlJkVmFsdWUoKSA9PSB6ZXJvX3JlZy5j b2RlKCkpCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZzZmxhZ3MgICAncnMxIik7CisrICAg ICAgICBlbHNlCisrICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZzZmxhZ3MgICAncmQsICdyczEi KTsKKysgICAgICB9IGVsc2UgaWYgKGluc3RyLT5SZFZhbHVlKCkgPT0gemVyb19yZWcuY29kZSgp KSB7CisrICAgICAgICBGb3JtYXQoaW5zdHIsICJjc3J3ICAgICAgJ2NzciwgJ3JzMSIpOworKyAg ICAgIH0gZWxzZSB7CisrICAgICAgICBGb3JtYXQoaW5zdHIsICJjc3JydyAgICAgJ3JkLCAnY3Ny LCAncnMxIik7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0NTUlJTOgor KyAgICAgIGlmIChpbnN0ci0+UnMxVmFsdWUoKSA9PSB6ZXJvX3JlZy5jb2RlKCkpIHsKKysgICAg ICAgIHN3aXRjaCAoaW5zdHItPkNzclZhbHVlKCkpIHsKKysgICAgICAgICAgY2FzZSBjc3JfaW5z dHJldDoKKysgICAgICAgICAgICBGb3JtYXQoaW5zdHIsICJyZGluc3RyZXQgJ3JkIik7CisrICAg ICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2UgY3NyX2luc3RyZXRoOgorKyAgICAgICAg ICAgIEZvcm1hdChpbnN0ciwgInJkaW5zdHJldGggJ3JkIik7CisrICAgICAgICAgICAgYnJlYWs7 CisrICAgICAgICAgIGNhc2UgY3NyX3RpbWU6CisrICAgICAgICAgICAgRm9ybWF0KGluc3RyLCAi cmR0aW1lICAgICdyZCIpOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICBjYXNlIGNz cl90aW1laDoKKysgICAgICAgICAgICBGb3JtYXQoaW5zdHIsICJyZHRpbWVoICAgJ3JkIik7Cisr ICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2UgY3NyX2N5Y2xlOgorKyAgICAgICAg ICAgIEZvcm1hdChpbnN0ciwgInJkY3ljbGUgICAncmQiKTsKKysgICAgICAgICAgICBicmVhazsK KysgICAgICAgICAgY2FzZSBjc3JfY3ljbGVoOgorKyAgICAgICAgICAgIEZvcm1hdChpbnN0ciwg InJkY3ljbGVoICAncmQiKTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgY2FzZSBj c3JfZmZsYWdzOgorKyAgICAgICAgICAgIEZvcm1hdChpbnN0ciwgImZyZmxhZ3MgICAncmQiKTsK KysgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgY2FzZSBjc3JfZnJtOgorKyAgICAgICAg ICAgIEZvcm1hdChpbnN0ciwgImZycm0gICAgICAncmQiKTsKKysgICAgICAgICAgICBicmVhazsK KysgICAgICAgICAgY2FzZSBjc3JfZmNzcjoKKysgICAgICAgICAgICBGb3JtYXQoaW5zdHIsICJm cmNzciAgICAgJ3JkIik7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGRlZmF1bHQ6 CisrICAgICAgICAgICAgVU5SRUFDSEFCTEUoKTsKKysgICAgICAgIH0KKysgICAgICB9IGVsc2Ug aWYgKGluc3RyLT5SczFWYWx1ZSgpID09IHplcm9fcmVnLmNvZGUoKSkgeworKyAgICAgICAgRm9y bWF0KGluc3RyLCAiY3NyciAgICAgICdyZCwgJ2NzciIpOworKyAgICAgIH0gZWxzZSBpZiAoaW5z dHItPlJkVmFsdWUoKSA9PSB6ZXJvX3JlZy5jb2RlKCkpIHsKKysgICAgICAgIEZvcm1hdChpbnN0 ciwgImNzcnMgICAgICAnY3NyLCAncnMxIik7CisrICAgICAgfSBlbHNlCisrICAgICAgICBGb3Jt YXQoaW5zdHIsICJjc3JycyAgICAgJ3JkLCAnY3NyLCAncnMxIik7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgUk9fQ1NSUkM6CisrICAgICAgaWYgKGluc3RyLT5SZFZhbHVlKCkgPT0gemVyb19y ZWcuY29kZSgpKQorKyAgICAgICAgRm9ybWF0KGluc3RyLCAiY3NyYyAgICAgICdjc3IsICdyczEi KTsKKysgICAgICBlbHNlCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJjc3JyYyAgICAgJ3JkLCAn Y3NyLCAncnMxIik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQ1NSUldJOgorKyAgICAg IGlmIChpbnN0ci0+UmRWYWx1ZSgpID09IHplcm9fcmVnLmNvZGUoKSkKKysgICAgICAgIEZvcm1h dChpbnN0ciwgImNzcndpICAgICAnY3NyLCAndnMxIik7CisrICAgICAgZWxzZQorKyAgICAgICAg Rm9ybWF0KGluc3RyLCAiY3NycndpICAgICdyZCwgJ2NzciwgJ3ZzMSIpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIFJPX0NTUlJTSToKKysgICAgICBpZiAoaW5zdHItPlJkVmFsdWUoKSA9PSB6 ZXJvX3JlZy5jb2RlKCkpCisrICAgICAgICBGb3JtYXQoaW5zdHIsICJjc3JzaSAgICAgJ2Nzciwg J3ZzMSIpOworKyAgICAgIGVsc2UKKysgICAgICAgIEZvcm1hdChpbnN0ciwgImNzcnJzaSAgICAn cmQsICdjc3IsICd2czEiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19DU1JSQ0k6Cisr ICAgICAgaWYgKGluc3RyLT5SZFZhbHVlKCkgPT0gemVyb19yZWcuY29kZSgpKQorKyAgICAgICAg Rm9ybWF0KGluc3RyLCAiY3NyY2kgICAgICdjc3IsICd2czEiKTsKKysgICAgICBlbHNlCisrICAg ICAgICBGb3JtYXQoaW5zdHIsICJjc3JyY2kgICAgJ3JkLCAnY3NyLCAndnMxIik7CisrICAgICAg YnJlYWs7CisrICAgIC8vIFRPRE86IHVzZSBGIEV4dGVuc2lvbiBtYWNybyBibG9jaworKyAgICBj YXNlIFJPX0ZMVzoKKysgICAgICBGb3JtYXQoaW5zdHIsICJmbHcgICAgICAgJ2ZkLCAnaW1tMTIo J3JzMSkiKTsKKysgICAgICBicmVhazsKKysgICAgLy8gVE9ETzogdXNlIEQgRXh0ZW5zaW9uIG1h Y3JvIGJsb2NrCisrICAgIGNhc2UgUk9fRkxEOgorKyAgICAgIEZvcm1hdChpbnN0ciwgImZsZCAg ICAgICAnZmQsICdpbW0xMigncnMxKSIpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0Ogor KyAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICB9CisrfQorKworK3ZvaWQgRGVjb2Rlcjo6 RGVjb2RlU1R5cGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBzd2l0Y2ggKGluc3RyLT5JbnN0 cnVjdGlvbkJpdHMoKSAmIGtTVHlwZU1hc2spIHsKKysgICAgY2FzZSBST19TQjoKKysgICAgICBG b3JtYXQoaW5zdHIsICJzYiAgICAgICAgJ3JzMiwgJ29mZlMoJ3JzMSkiKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBST19TSDoKKysgICAgICBGb3JtYXQoaW5zdHIsICJzaCAgICAgICAgJ3Jz MiwgJ29mZlMoJ3JzMSkiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19TVzoKKysgICAg ICBGb3JtYXQoaW5zdHIsICJzdyAgICAgICAgJ3JzMiwgJ29mZlMoJ3JzMSkiKTsKKysgICAgICBi cmVhazsKKysjaWZkZWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisrICAgIGNhc2UgUk9fU0Q6Cisr ICAgICAgRm9ybWF0KGluc3RyLCAic2QgICAgICAgICdyczIsICdvZmZTKCdyczEpIik7CisrICAg ICAgYnJlYWs7CisrI2VuZGlmIC8qVjhfVEFSR0VUX0FSQ0hfNjRfQklUKi8KKysgICAgLy8gVE9E TzogdXNlIEYgRXh0ZW5zaW9uIG1hY3JvIGJsb2NrCisrICAgIGNhc2UgUk9fRlNXOgorKyAgICAg IEZvcm1hdChpbnN0ciwgImZzdyAgICAgICAnZnMyLCAnb2ZmUygncnMxKSIpOworKyAgICAgIGJy ZWFrOworKyAgICAvLyBUT0RPOiB1c2UgRCBFeHRlbnNpb24gbWFjcm8gYmxvY2sKKysgICAgY2Fz ZSBST19GU0Q6CisrICAgICAgRm9ybWF0KGluc3RyLCAiZnNkICAgICAgICdmczIsICdvZmZTKCdy czEpIik7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5TVVBQT1JURURf UklTQ1YoKTsKKysgIH0KKyt9CisrCisrdm9pZCBEZWNvZGVyOjpEZWNvZGVCVHlwZShJbnN0cnVj dGlvbiogaW5zdHIpIHsKKysgIHN3aXRjaCAoaW5zdHItPkluc3RydWN0aW9uQml0cygpICYga0JU eXBlTWFzaykgeworKyAgICBjYXNlIFJPX0JFUToKKysgICAgICBGb3JtYXQoaW5zdHIsICJiZXEg ICAgICAgJ3JzMSwgJ3JzMiwgJ29mZkIiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19C TkU6CisrICAgICAgRm9ybWF0KGluc3RyLCAiYm5lICAgICAgICdyczEsICdyczIsICdvZmZCIik7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQkxUOgorKyAgICAgIEZvcm1hdChpbnN0ciwg ImJsdCAgICAgICAncnMxLCAncnMyLCAnb2ZmQiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IFJPX0JHRToKKysgICAgICBGb3JtYXQoaW5zdHIsICJiZ2UgICAgICAgJ3JzMSwgJ3JzMiwgJ29m ZkIiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19CTFRVOgorKyAgICAgIEZvcm1hdChp bnN0ciwgImJsdHUgICAgICAncnMxLCAncnMyLCAnb2ZmQiIpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIFJPX0JHRVU6CisrICAgICAgRm9ybWF0KGluc3RyLCAiYmdldSAgICAgICdyczEsICdy czIsICdvZmZCIik7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5TVVBQ T1JURURfUklTQ1YoKTsKKysgIH0KKyt9Cisrdm9pZCBEZWNvZGVyOjpEZWNvZGVVVHlwZShJbnN0 cnVjdGlvbiogaW5zdHIpIHsKKysgIC8vIFUgVHlwZSBkb2Vzbid0IGhhdmUgYWRkaXRpb25hbCBt YXNrCisrICBzd2l0Y2ggKGluc3RyLT5CYXNlT3Bjb2RlRmllbGRSYXcoKSkgeworKyAgICBjYXNl IFJPX0xVSToKKysgICAgICBGb3JtYXQoaW5zdHIsICJsdWkgICAgICAgJ3JkLCAnaW1tMjBVIik7 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQVVJUEM6CisrICAgICAgRm9ybWF0KGluc3Ry LCAiYXVpcGMgICAgICdyZCwgJ2ltbTIwVSIpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0 OgorKyAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICB9CisrfQorK3ZvaWQgRGVjb2Rlcjo6 RGVjb2RlSlR5cGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICAvLyBKIFR5cGUgZG9lc24ndCBo YXZlIGFkZGl0aW9uYWwgbWFzaworKyAgc3dpdGNoIChpbnN0ci0+QmFzZU9wY29kZVZhbHVlKCkp IHsKKysgICAgY2FzZSBST19KQUw6CisrICAgICAgaWYgKGluc3RyLT5SZFZhbHVlKCkgPT0gemVy b19yZWcuY29kZSgpKQorKyAgICAgICAgRm9ybWF0KGluc3RyLCAiaiAgICAgICAgICdpbW0yMEoi KTsKKysgICAgICBlbHNlIGlmIChpbnN0ci0+UmRWYWx1ZSgpID09IHJhLmNvZGUoKSkKKysgICAg ICAgIEZvcm1hdChpbnN0ciwgImphbCAgICAgICAnaW1tMjBKIik7CisrICAgICAgZWxzZQorKyAg ICAgICAgRm9ybWF0KGluc3RyLCAiamFsICAgICAgICdyZCwgJ2ltbTIwSiIpOworKyAgICAgIGJy ZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOU1VQUE9SVEVEX1JJU0NWKCk7CisrICB9Cisr fQorKworKy8vIERpc2Fzc2VtYmxlIHRoZSBpbnN0cnVjdGlvbiBhdCAqaW5zdHJfcHRyIGludG8g dGhlIG91dHB1dCBidWZmZXIuCisrLy8gQWxsIGluc3RydWN0aW9ucyBhcmUgb25lIHdvcmQgbG9u ZywgZXhjZXB0IGZvciB0aGUgc2ltdWxhdG9yCisrLy8gcHNldWRvLWluc3RydWN0aW9uIHN0b3Ao bXNnKS4gRm9yIHRoYXQgb25lIHNwZWNpYWwgY2FzZSwgd2UgcmV0dXJuCisrLy8gc2l6ZSBsYXJn ZXIgdGhhbiBvbmUga0luc3RyU2l6ZS4KKytpbnQgRGVjb2Rlcjo6SW5zdHJ1Y3Rpb25EZWNvZGUo Ynl0ZSogaW5zdHJfcHRyKSB7CisrICBJbnN0cnVjdGlvbiogaW5zdHIgPSBJbnN0cnVjdGlvbjo6 QXQoaW5zdHJfcHRyKTsKKysgIC8vIFByaW50IHJhdyBpbnN0cnVjdGlvbiBieXRlcy4KKysgIG91 dF9idWZmZXJfcG9zXyArPSBTTlByaW50RihvdXRfYnVmZmVyXyArIG91dF9idWZmZXJfcG9zXywg IiUwOHggICAgICAgIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0ci0+SW5z dHJ1Y3Rpb25CaXRzKCkpOworKyAgc3dpdGNoIChpbnN0ci0+SW5zdHJ1Y3Rpb25UeXBlKCkpIHsK KysgICAgY2FzZSBJbnN0cnVjdGlvbjo6a1JUeXBlOgorKyAgICAgIERlY29kZVJUeXBlKGluc3Ry KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBJbnN0cnVjdGlvbjo6a1I0VHlwZToKKysgICAg ICBEZWNvZGVSNFR5cGUoaW5zdHIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEluc3RydWN0 aW9uOjprSVR5cGU6CisrICAgICAgRGVjb2RlSVR5cGUoaW5zdHIpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIEluc3RydWN0aW9uOjprU1R5cGU6CisrICAgICAgRGVjb2RlU1R5cGUoaW5zdHIp OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEluc3RydWN0aW9uOjprQlR5cGU6CisrICAgICAg RGVjb2RlQlR5cGUoaW5zdHIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEluc3RydWN0aW9u OjprVVR5cGU6CisrICAgICAgRGVjb2RlVVR5cGUoaW5zdHIpOworKyAgICAgIGJyZWFrOworKyAg ICBjYXNlIEluc3RydWN0aW9uOjprSlR5cGU6CisrICAgICAgRGVjb2RlSlR5cGUoaW5zdHIpOwor KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEZvcm1hdChpbnN0ciwgIlVOU1VQ UE9SVEVEIik7CisrICAgICAgVU5TVVBQT1JURURfUklTQ1YoKTsKKysgIH0KKysgIHJldHVybiBr SW5zdHJTaXplOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKyt9ICAvLyBuYW1l c3BhY2UgdjgKKysKKysvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK25hbWVzcGFjZSBkaXNh c20geworKworK2NvbnN0IGNoYXIqIE5hbWVDb252ZXJ0ZXI6Ok5hbWVPZkFkZHJlc3MoYnl0ZSog YWRkcikgY29uc3QgeworKyAgdjg6OmludGVybmFsOjpTTlByaW50Rih0bXBfYnVmZmVyXywgIiVw Iiwgc3RhdGljX2Nhc3Q8dm9pZCo+KGFkZHIpKTsKKysgIHJldHVybiB0bXBfYnVmZmVyXy5iZWdp bigpOworK30KKysKKytjb25zdCBjaGFyKiBOYW1lQ29udmVydGVyOjpOYW1lT2ZDb25zdGFudChi eXRlKiBhZGRyKSBjb25zdCB7CisrICByZXR1cm4gTmFtZU9mQWRkcmVzcyhhZGRyKTsKKyt9Cisr CisrY29uc3QgY2hhciogTmFtZUNvbnZlcnRlcjo6TmFtZU9mQ1BVUmVnaXN0ZXIoaW50IHJlZykg Y29uc3QgeworKyAgcmV0dXJuIHY4OjppbnRlcm5hbDo6UmVnaXN0ZXJzOjpOYW1lKHJlZyk7Cisr fQorKworK2NvbnN0IGNoYXIqIE5hbWVDb252ZXJ0ZXI6Ok5hbWVPZlhNTVJlZ2lzdGVyKGludCBy ZWcpIGNvbnN0IHsKKysgIHJldHVybiB2ODo6aW50ZXJuYWw6OkZQVVJlZ2lzdGVyczo6TmFtZShy ZWcpOworK30KKysKKytjb25zdCBjaGFyKiBOYW1lQ29udmVydGVyOjpOYW1lT2ZCeXRlQ1BVUmVn aXN0ZXIoaW50IHJlZykgY29uc3QgeworKyAgVU5SRUFDSEFCTEUoKTsgIC8vIFJJU0MtViBkb2Vz IG5vdCBoYXZlIHRoZSBjb25jZXB0IG9mIGEgYnl0ZSByZWdpc3Rlci4KKysgIHJldHVybiAibm9i eXRlcmVnIjsKKyt9CisrCisrY29uc3QgY2hhciogTmFtZUNvbnZlcnRlcjo6TmFtZUluQ29kZShi eXRlKiBhZGRyKSBjb25zdCB7CisrICAvLyBUaGUgZGVmYXVsdCBuYW1lIGNvbnZlcnRlciBpcyBj YWxsZWQgZm9yIHVua25vd24gY29kZS4gU28gd2Ugd2lsbCBub3QgdHJ5CisrICAvLyB0byBhY2Nl c3MgYW55IG1lbW9yeS4KKysgIHJldHVybiAiIjsKKyt9CisrCisrLy8tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysKKytpbnQgRGlzYXNzZW1ibGVyOjpJbnN0cnVjdGlvbkRlY29kZSh2ODo6aW50ZXJu YWw6OlZlY3RvcjxjaGFyPiBidWZmZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnl0ZSogaW5zdHJ1Y3Rpb24pIHsKKysgIHY4OjppbnRlcm5hbDo6RGVjb2RlciBkKGNv bnZlcnRlcl8sIGJ1ZmZlcik7CisrICByZXR1cm4gZC5JbnN0cnVjdGlvbkRlY29kZShpbnN0cnVj dGlvbik7CisrfQorKworKy8vIFRoZSBSSVNDLVYgYXNzZW1ibGVyIGRvZXMgbm90IGN1cnJlbnRs eSB1c2UgY29uc3RhbnQgcG9vbHMuCisraW50IERpc2Fzc2VtYmxlcjo6Q29uc3RhbnRQb29sU2l6 ZUF0KGJ5dGUqIGluc3RydWN0aW9uKSB7IHJldHVybiAtMTsgfQorKworK3ZvaWQgRGlzYXNzZW1i bGVyOjpEaXNhc3NlbWJsZShGSUxFKiBmLCBieXRlKiBiZWdpbiwgYnl0ZSogZW5kLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmltcGxlbWVudGVkT3Bjb2RlQWN0aW9uIHVuaW1w bGVtZW50ZWRfYWN0aW9uKSB7CisrICBOYW1lQ29udmVydGVyIGNvbnZlcnRlcjsKKysgIERpc2Fz c2VtYmxlciBkKGNvbnZlcnRlciwgdW5pbXBsZW1lbnRlZF9hY3Rpb24pOworKyAgZm9yIChieXRl KiBwYyA9IGJlZ2luOyBwYyA8IGVuZDspIHsKKysgICAgdjg6OmludGVybmFsOjpFbWJlZGRlZFZl Y3RvcjxjaGFyLCAxMjg+IGJ1ZmZlcjsKKysgICAgYnVmZmVyWzBdID0gJ1wwJzsKKysgICAgYnl0 ZSogcHJldl9wYyA9IHBjOworKyAgICBwYyArPSBkLkluc3RydWN0aW9uRGVjb2RlKGJ1ZmZlciwg cGMpOworKyAgICB2ODo6aW50ZXJuYWw6OlByaW50RihmLCAiJXAgICAgJTA4eCAgICAgICVzXG4i LCBzdGF0aWNfY2FzdDx2b2lkKj4ocHJldl9wYyksCisrICAgICAgICAgICAgICAgICAgICAgICAg ICpyZWludGVycHJldF9jYXN0PGludDMyX3QqPihwcmV2X3BjKSwgYnVmZmVyLmJlZ2luKCkpOwor KyAgfQorK30KKysKKysjdW5kZWYgU1RSSU5HX1NUQVJUU19XSVRICisrCisrfSAgLy8gbmFtZXNw YWNlIGRpc2FzbQorKworKyNlbmRpZiAgLy8gVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NAorSW5kZXg6 IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2V4ZWN1dGlvbi9mcmFtZS1jb25zdGFudHMuaAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2Vi ZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92 OC9zcmMvZXhlY3V0aW9uL2ZyYW1lLWNvbnN0YW50cy5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3 aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZXhlY3V0aW9uL2Zy YW1lLWNvbnN0YW50cy5oCitAQCAtMzU2LDYgKzM1NiwxMCBAQCBpbmxpbmUgc3RhdGljIGludCBG cmFtZVNsb3RUb0ZQT2Zmc2V0KGluCisgI2luY2x1ZGUgInNyYy9leGVjdXRpb24vbWlwczY0L2Zy YW1lLWNvbnN0YW50cy1taXBzNjQuaCIgIC8vIE5PTElOVAorICNlbGlmIFY4X1RBUkdFVF9BUkNI X1MzOTAKKyAjaW5jbHVkZSAic3JjL2V4ZWN1dGlvbi9zMzkwL2ZyYW1lLWNvbnN0YW50cy1zMzkw LmgiICAvLyBOT0xJTlQKKysjZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CisrI2luY2x1ZGUg InNyYy9leGVjdXRpb24vcmlzY3Y2NC9mcmFtZS1jb25zdGFudHMtcmlzY3Y2NC5oIiAgLy8gTk9M SU5UCisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysjaW5jbHVkZSAic3JjL2V4ZWN1dGlv bi9yaXNjdi9mcmFtZS1jb25zdGFudHMtcmlzY3YuaCIgIC8vIE5PTElOVAorICNlbHNlCisgI2Vy cm9yIFVuc3VwcG9ydGVkIHRhcmdldCBhcmNoaXRlY3R1cmUuCisgI2VuZGlmCitJbmRleDogcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9z cmMvZXhlY3V0aW9uL3Jpc2N2NjQvZnJhbWUtY29uc3RhbnRzLXJpc2N2NjQuY2MKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9leGVjdXRpb24vcmlzY3Y2NC9mcmFtZS1jb25z dGFudHMtcmlzY3Y2NC5jYworQEAgLTAsMCArMSwzMiBAQAorKy8vIENvcHlyaWdodCAyMDExIHRo ZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRo aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh biBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmIFY4X1RBUkdFVF9B UkNIX1JJU0NWNjQKKysKKysjaW5jbHVkZSAic3JjL2NvZGVnZW4vcmlzY3Y2NC9hc3NlbWJsZXIt cmlzY3Y2NC1pbmwuaCIKKysjaW5jbHVkZSAic3JjL2V4ZWN1dGlvbi9mcmFtZS1jb25zdGFudHMu aCIKKysjaW5jbHVkZSAic3JjL2V4ZWN1dGlvbi9mcmFtZXMuaCIKKysKKysjaW5jbHVkZSAic3Jj L2V4ZWN1dGlvbi9yaXNjdjY0L2ZyYW1lLWNvbnN0YW50cy1yaXNjdjY0LmgiCisrCisrbmFtZXNw YWNlIHY4IHsKKytuYW1lc3BhY2UgaW50ZXJuYWwgeworKworK1JlZ2lzdGVyIEphdmFTY3JpcHRG cmFtZTo6ZnBfcmVnaXN0ZXIoKSB7IHJldHVybiB2ODo6aW50ZXJuYWw6OmZwOyB9CisrUmVnaXN0 ZXIgSmF2YVNjcmlwdEZyYW1lOjpjb250ZXh0X3JlZ2lzdGVyKCkgeyByZXR1cm4gY3A7IH0KKytS ZWdpc3RlciBKYXZhU2NyaXB0RnJhbWU6OmNvbnN0YW50X3Bvb2xfcG9pbnRlcl9yZWdpc3Rlcigp IHsgVU5SRUFDSEFCTEUoKTsgfQorKworK2ludCBJbnRlcnByZXRlckZyYW1lQ29uc3RhbnRzOjpS ZWdpc3RlclN0YWNrU2xvdENvdW50KGludCByZWdpc3Rlcl9jb3VudCkgeworKyAgcmV0dXJuIHJl Z2lzdGVyX2NvdW50OworK30KKysKKytpbnQgQnVpbHRpbkNvbnRpbnVhdGlvbkZyYW1lQ29uc3Rh bnRzOjpQYWRkaW5nU2xvdENvdW50KGludCByZWdpc3Rlcl9jb3VudCkgeworKyAgVVNFKHJlZ2lz dGVyX2NvdW50KTsKKysgIHJldHVybiAwOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgaW50ZXJu YWwKKyt9ICAvLyBuYW1lc3BhY2UgdjgKKysKKysjZW5kaWYgIC8vIFY4X1RBUkdFVF9BUkNIX1JJ U0NWNjQKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy9leGVjdXRpb24vcmlzY3Y2NC9mcmFtZS1jb25zdGFudHMtcmlz Y3Y2NC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3 aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZXhlY3V0aW9uL3Jp c2N2NjQvZnJhbWUtY29uc3RhbnRzLXJpc2N2NjQuaAorQEAgLTAsMCArMSw4NyBAQAorKy8vIENv cHlyaWdodCAyMDExIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisr I2lmbmRlZiBWOF9FWEVDVVRJT05fUklTQ1ZfRlJBTUVfQ09OU1RBTlRTX1JJU0NWX0hfCisrI2Rl ZmluZSBWOF9FWEVDVVRJT05fUklTQ1ZfRlJBTUVfQ09OU1RBTlRTX1JJU0NWX0hfCisrCisrI2lu Y2x1ZGUgInNyYy9iYXNlL2JpdHMuaCIKKysjaW5jbHVkZSAic3JjL2Jhc2UvbWFjcm9zLmgiCisr I2luY2x1ZGUgInNyYy9leGVjdXRpb24vZnJhbWUtY29uc3RhbnRzLmgiCisrI2luY2x1ZGUgInNy Yy93YXNtL2Jhc2VsaW5lL2xpZnRvZmYtYXNzZW1ibGVyLWRlZnMuaCIKKysjaW5jbHVkZSAic3Jj L3dhc20vd2FzbS1saW5rYWdlLmgiCisrCisrbmFtZXNwYWNlIHY4IHsKKytuYW1lc3BhY2UgaW50 ZXJuYWwgeworKworK2NsYXNzIEVudHJ5RnJhbWVDb25zdGFudHMgOiBwdWJsaWMgQWxsU3RhdGlj IHsKKysgcHVibGljOgorKyAgLy8gVGhpcyBpcyB0aGUgb2Zmc2V0IHRvIHdoZXJlIEpTRW50cnkg cHVzaGVzIHRoZSBjdXJyZW50IHZhbHVlIG9mCisrICAvLyBJc29sYXRlOjpjX2VudHJ5X2ZwIG9u dG8gdGhlIHN0YWNrLgorKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0NhbGxlckZQT2Zmc2V0ID0K KysgICAgICAtKFN0YW5kYXJkRnJhbWVDb25zdGFudHM6OmtGaXhlZEZyYW1lU2l6ZUZyb21GcCAr IGtQb2ludGVyU2l6ZSk7CisrfTsKKysKKytjbGFzcyBXYXNtQ29tcGlsZUxhenlGcmFtZUNvbnN0 YW50cyA6IHB1YmxpYyBUeXBlZEZyYW1lQ29uc3RhbnRzIHsKKysgcHVibGljOgorKyAgc3RhdGlj IGNvbnN0ZXhwciBpbnQga051bWJlck9mU2F2ZWRHcFBhcmFtUmVncyA9CisrICAgICAgYXJyYXlz aXplKHdhc206OmtHcFBhcmFtUmVnaXN0ZXJzKTsKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtO dW1iZXJPZlNhdmVkRnBQYXJhbVJlZ3MgPQorKyAgICAgIGFycmF5c2l6ZSh3YXNtOjprRnBQYXJh bVJlZ2lzdGVycyk7CisrCisrICAvLyBGUC1yZWxhdGl2ZS4KKysgIC8vIEJ1aWx0aW5zOjpHZW5l cmF0ZV9XYXNtQ29tcGlsZUxhenkgcHVzaGVzIFdhc21JbnN0YW5jZSB0byB0aGUgc3RhY2sgYWZ0 ZXIKKysgIC8vIHB1c2hpbmcgU2F2ZWRHUFBhcmFtUmVncyBhbmQgU2F2ZWRGcFBhcmFtUmVncyBv bnRvIHRoZSBzdGFjaywgdGhlcmVmb3JlCisrICAvLyBrV2FzbUluc3RhbmNlT2Zmc2V0IGlzIHNl dHVwIGFzIHN1Y2gKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtXYXNtSW5zdGFuY2VPZmZzZXQg PSBUWVBFRF9GUkFNRV9QVVNIRURfVkFMVUVfT0ZGU0VUKAorKyAgICAgIGtOdW1iZXJPZlNhdmVk R3BQYXJhbVJlZ3MgKyBrTnVtYmVyT2ZTYXZlZEdwUGFyYW1SZWdzKTsKKysgIHN0YXRpYyBjb25z dGV4cHIgaW50IGtGaXhlZEZyYW1lU2l6ZUZyb21GcCA9CisrICAgICAgVHlwZWRGcmFtZUNvbnN0 YW50czo6a0ZpeGVkRnJhbWVTaXplRnJvbUZwICsKKysgICAgICBrTnVtYmVyT2ZTYXZlZEdwUGFy YW1SZWdzICoga1BvaW50ZXJTaXplICsKKysgICAgICBrTnVtYmVyT2ZTYXZlZEZwUGFyYW1SZWdz ICoga0RvdWJsZVNpemU7CisrfTsKKysKKysvLyBGcmFtZSBjb25zdHJ1Y3RlZCBieSB0aGUge1dh c21EZWJ1Z0JyZWFrfSBidWlsdGluLgorKy8vIEFmdGVyIHB1c2hpbmcgdGhlIGZyYW1lIHR5cGUg bWFya2VyLCB0aGUgYnVpbHRpbiBwdXNoZXMgYWxsIExpZnRvZmYgY2FjaGUKKysvLyByZWdpc3Rl cnMgKHNlZSBsaWZ0b2ZmLWFzc2VtYmxlci1kZWZzLmgpLgorK2NsYXNzIFdhc21EZWJ1Z0JyZWFr RnJhbWVDb25zdGFudHMgOiBwdWJsaWMgVHlwZWRGcmFtZUNvbnN0YW50cyB7CisrIHB1YmxpYzoK KysgIC8vIGNvbnN0ZXhwciBSZWdMaXN0IGtMaWZ0b2ZmQXNzZW1ibGVyR3BDYWNoZVJlZ3MgPQor KyAgLy8gICAgUmVnaXN0ZXI6Okxpc3RPZihhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcs IHQwLCB0MSwgdDIsIHM3KTsKKysgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qga1B1c2hlZEdw UmVncyA9IHdhc206OmtMaWZ0b2ZmQXNzZW1ibGVyR3BDYWNoZVJlZ3M7CisrCisrICAvLyAgIGNv bnN0ZXhwciBSZWdMaXN0IGtMaWZ0b2ZmQXNzZW1ibGVyRnBDYWNoZVJlZ3MgPSBEb3VibGVSZWdp c3Rlcjo6TGlzdE9mKAorKyAgLy8gICAgICAgZnQwLCBmdDEsIGZ0MiwgZnQzLCBmdDQsIGZ0NSwg ZnQ2LCBmdDcsIGZhMCwgZmExLCBmYTIsIGZhMywgZmE0LCBmYTUsCisrICAvLyAgICAgICBmYTYs IGZhNywgZnQ4LCBmdDksIGZ0MTAsIGZ0MTEpOworKyAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJf dCBrUHVzaGVkRnBSZWdzID0gd2FzbTo6a0xpZnRvZmZBc3NlbWJsZXJGcENhY2hlUmVnczsKKysK KysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1QdXNoZWRHcFJlZ2lzdGVycyA9CisrICAgICAg YmFzZTo6Yml0czo6Q291bnRQb3B1bGF0aW9uKGtQdXNoZWRHcFJlZ3MpOworKyAgc3RhdGljIGNv bnN0ZXhwciBpbnQga051bVB1c2hlZEZwUmVnaXN0ZXJzID0KKysgICAgICBiYXNlOjpiaXRzOjpD b3VudFBvcHVsYXRpb24oa1B1c2hlZEZwUmVncyk7CisrCisrICBzdGF0aWMgY29uc3RleHByIGlu dCBrTGFzdFB1c2hlZEdwUmVnaXN0ZXJPZmZzZXQgPQorKyAgICAgIC1rRml4ZWRGcmFtZVNpemVG cm9tRnAgLSBrTnVtUHVzaGVkR3BSZWdpc3RlcnMgKiBrU3lzdGVtUG9pbnRlclNpemU7CisrICBz dGF0aWMgY29uc3RleHByIGludCBrTGFzdFB1c2hlZEZwUmVnaXN0ZXJPZmZzZXQgPQorKyAgICAg IGtMYXN0UHVzaGVkR3BSZWdpc3Rlck9mZnNldCAtIGtOdW1QdXNoZWRGcFJlZ2lzdGVycyAqIGtE b3VibGVTaXplOworKworKyAgLy8gT2Zmc2V0cyBhcmUgZnAtcmVsYXRpdmUuCisrICBzdGF0aWMg aW50IEdldFB1c2hlZEdwUmVnaXN0ZXJPZmZzZXQoaW50IHJlZ19jb2RlKSB7CisrICAgIERDSEVD S19ORSgwLCBrUHVzaGVkR3BSZWdzICYgKDEgPDwgcmVnX2NvZGUpKTsKKysgICAgdWludDMyX3Qg bG93ZXJfcmVncyA9IGtQdXNoZWRHcFJlZ3MgJiAoKHVpbnQzMl90ezF9IDw8IHJlZ19jb2RlKSAt IDEpOworKyAgICByZXR1cm4ga0xhc3RQdXNoZWRHcFJlZ2lzdGVyT2Zmc2V0ICsKKysgICAgICAg ICAgIGJhc2U6OmJpdHM6OkNvdW50UG9wdWxhdGlvbihsb3dlcl9yZWdzKSAqIGtTeXN0ZW1Qb2lu dGVyU2l6ZTsKKysgIH0KKysKKysgIHN0YXRpYyBpbnQgR2V0UHVzaGVkRnBSZWdpc3Rlck9mZnNl dChpbnQgcmVnX2NvZGUpIHsKKysgICAgRENIRUNLX05FKDAsIGtQdXNoZWRGcFJlZ3MgJiAoMSA8 PCByZWdfY29kZSkpOworKyAgICB1aW50MzJfdCBsb3dlcl9yZWdzID0ga1B1c2hlZEZwUmVncyAm ICgodWludDMyX3R7MX0gPDwgcmVnX2NvZGUpIC0gMSk7CisrICAgIHJldHVybiBrTGFzdFB1c2hl ZEZwUmVnaXN0ZXJPZmZzZXQgKworKyAgICAgICAgICAgYmFzZTo6Yml0czo6Q291bnRQb3B1bGF0 aW9uKGxvd2VyX3JlZ3MpICoga0RvdWJsZVNpemU7CisrICB9CisrfTsKKysKKyt9ICAvLyBuYW1l c3BhY2UgaW50ZXJuYWwKKyt9ICAvLyBuYW1lc3BhY2UgdjgKKysKKysjZW5kaWYgIC8vIFY4X0VY RUNVVElPTl9SSVNDVl9GUkFNRV9DT05TVEFOVFNfUklTQ1ZfSF8KK0luZGV4OiBxdHdlYmVuZ2lu ZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9leGVj dXRpb24vcmlzY3Y2NC9zaW11bGF0b3ItcmlzY3Y2NC5jYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYv bnVsbAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdjgvc3JjL2V4ZWN1dGlvbi9yaXNjdjY0L3NpbXVsYXRvci1yaXNjdjY0LmNjCitA QCAtMCwwICsxLDM1MDkgQEAKKysvLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRo b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBp biB0aGUgTElDRU5TRSBmaWxlLgorKworKy8vIENvcHlyaWdodChjKSAyMDEwIC0gMjAxNywKKysv LyAgICAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYShSZWdlbnRz KS5BbGwgUmlnaHRzIFJlc2VydmVkLgorKy8vCisrLy8gICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1 c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisrLy8gICAgIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb24sCisrLy8gICAgIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s bG93aW5nCisrLy8gICAgIGNvbmRpdGlvbnMgYXJlIG1ldCA6IDEuIFJlZGlzdHJpYnV0aW9ucyBv ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUKKysvLyAgICAgYWJvdmUgY29weXJpZ2h0IG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKysvLyAgICAg ZGlzY2xhaW1lci4yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1 Y2UgdGhlIGFib3ZlCisrLy8gICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKysvLyAgICAgdGhlCisrLy8g ICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiBhbmQgLworKy8vICAgICAgICAgb3IKKysvLyAgICAg ICAgIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uMy4gTmVp dGhlciB0aGUgbmFtZSBvZgorKy8vICAgICAgICAgdGhlIFJlZ2VudHMgbm9yIHRoZSBuYW1lcyBv ZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UKKysvLyAgICAgICAgIG9y CisrLy8gICAgICAgICBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKy8vICAgICAgICAg dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K KysvLworKy8vICAgICAgICAgSU4gTk8gRVZFTlQgU0hBTEwgUkVHRU5UUyBCRSBMSUFCTEUgVE8g QU5ZIFBBUlRZIEZPUiBESVJFQ1QsCisrLy8gICAgIElORElSRUNULCBTUEVDSUFMLAorKy8vICAg ICBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIElOQ0xVRElORyBMT1NUIFBS T0ZJVFMsCisrLy8gICAgIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSBB TkQgSVRTIERPQ1VNRU5UQVRJT04sCisrLy8gICAgIEVWRU4gSUYgUkVHRU5UUyBIQVMgQkVFTiBB RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKysvLworKy8vICAgICBS RUdFTlRTIFNQRUNJRklDQUxMWSBESVNDTEFJTVMgQU5ZIFdBUlJBTlRJRVMsCisrLy8gICAgIElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8vICAgICBUSEUgSU1QTElFRCBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQorKy8vICAgICBQQVJUSUNV TEFSIFBVUlBPU0UuVEhFIFNPRlRXQVJFIEFORCBBQ0NPTVBBTllJTkcgRE9DVU1FTlRBVElPTiwK KysvLyAgICAgSUYgQU5ZLAorKy8vICAgICBQUk9WSURFRCBIRVJFVU5ERVIgSVMgUFJPVklERUQK KysvLyAgICAgIkFTIElTIi5SRUdFTlRTIEhBUyBOTyBPQkxJR0FUSU9OIFRPIFBST1ZJREUgTUFJ TlRFTkFOQ0UsCisrLy8gICAgIFNVUFBPUlQsIFVQREFURVMsIEVOSEFOQ0VNRU5UUywKKysvLyAg ICAgT1IgTU9ESUZJQ0FUSU9OUy4KKysKKysvLyBUaGUgb3JpZ2luYWwgc291cmNlIGNvZGUgY292 ZXJlZCBieSB0aGUgYWJvdmUgbGljZW5zZSBhYm92ZSBoYXMgYmVlbgorKy8vIG1vZGlmaWVkIHNp Z25pZmljYW50bHkgYnkgdGhlIHY4IHByb2plY3QgYXV0aG9ycy4KKysKKysjaW5jbHVkZSAic3Jj L2V4ZWN1dGlvbi9yaXNjdjY0L3NpbXVsYXRvci1yaXNjdjY0LmgiCisrCisrLy8gT25seSBidWls ZCB0aGUgc2ltdWxhdG9yIGlmIG5vdCBjb21waWxpbmcgZm9yIHJlYWwgUklTQ1YgaGFyZHdhcmUu CisrI2lmIGRlZmluZWQoVVNFX1NJTVVMQVRPUikKKysKKysjaW5jbHVkZSA8bGltaXRzLmg+Cisr I2luY2x1ZGUgPG1hdGguaD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPHN0ZGxp Yi5oPgorKworKyNpbmNsdWRlIDxjZmVudj4KKysKKysjaW5jbHVkZSAic3JjL2Jhc2UvYml0cy5o IgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9hc3NlbWJsZXItaW5sLmgiCisrI2luY2x1ZGUgInNy Yy9jb2RlZ2VuL21hY3JvLWFzc2VtYmxlci5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9yaXNj djY0L2NvbnN0YW50cy1yaXNjdjY0LmgiCisrI2luY2x1ZGUgInNyYy9kaWFnbm9zdGljcy9kaXNh c20uaCIKKysjaW5jbHVkZSAic3JjL2hlYXAvY29tYmluZWQtaGVhcC5oIgorKyNpbmNsdWRlICJz cmMvcnVudGltZS9ydW50aW1lLXV0aWxzLmgiCisrI2luY2x1ZGUgInNyYy91dGlscy9vc3RyZWFt cy5oIgorKyNpbmNsdWRlICJzcmMvdXRpbHMvdmVjdG9yLmgiCisrCisrbmFtZXNwYWNlIHY4IHsK KytuYW1lc3BhY2UgaW50ZXJuYWwgeworKworK0RFRklORV9MQVpZX0xFQUtZX09CSkVDVF9HRVRU RVIoU2ltdWxhdG9yOjpHbG9iYWxNb25pdG9yLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2ltdWxhdG9yOjpHbG9iYWxNb25pdG9yOjpHZXQpCisrCisrLy8gVXRpbCBmdW5jdGlv bnMuCisraW5saW5lIGJvb2wgSGF2ZVNhbWVTaWduKGludDY0X3QgYSwgaW50NjRfdCBiKSB7IHJl dHVybiAoKGEgXiBiKSA+PSAwKTsgfQorKworK3VpbnQzMl90IGdldF9mY3NyX2NvbmRpdGlvbl9i aXQodWludDMyX3QgY2MpIHsKKysgIGlmIChjYyA9PSAwKSB7CisrICAgIHJldHVybiAyMzsKKysg IH0gZWxzZSB7CisrICAgIHJldHVybiAyNCArIGNjOworKyAgfQorK30KKysKKysvLyBHZW5lcmF0 ZWQgYnkgQXNzZW1ibGVyOjpicmVha18oKS9zdG9wKCksIGVicmVhayBjb2RlIGlzIHBhc3NlZCBh cyBpbW1lZGlhdGUKKysvLyBmaWVsZCBvZiBhIHN1YnNlcXVlbnQgTFVJIGluc3RydWN0aW9uOyBv dGhlcndpc2UgcmV0dXJucyAtMQorK3N0YXRpYyBpbmxpbmUgaW50MzJfdCBnZXRfZWJyZWFrX2Nv ZGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBEQ0hFQ0soaW5zdHItPkluc3RydWN0aW9uQml0 cygpID09IGtCcmVha0luc3RyKTsKKysgIGJ5dGUqIGN1ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0 ZSo+KGluc3RyKTsKKysgIEluc3RydWN0aW9uKiBuZXh0X2luc3RyID0gcmVpbnRlcnByZXRfY2Fz dDxJbnN0cnVjdGlvbio+KGN1ciArIGtJbnN0clNpemUpOworKyAgaWYgKG5leHRfaW5zdHItPkJh c2VPcGNvZGVGaWVsZFJhdygpID09IFJPX0xVSSkKKysgICAgcmV0dXJuIChuZXh0X2luc3RyLT5J bW0yMFVWYWx1ZSgpKTsKKysgIGVsc2UKKysgICAgcmV0dXJuIC0xOworK30KKysKKysvLyBUaGlz IG1hY3JvIHByb3ZpZGVzIGEgcGxhdGZvcm0gaW5kZXBlbmRlbnQgdXNlIG9mIHNzY2FuZi4gVGhl IHJlYXNvbiBmb3IKKysvLyBTU2NhbkYgbm90IGJlaW5nIGltcGxlbWVudGVkIGluIGEgcGxhdGZv cm0gaW5kZXBlbmRlbnQgd2FzIHRocm91Z2gKKysvLyA6OnY4OjppbnRlcm5hbDo6T1MgaW4gdGhl IHNhbWUgd2F5IGFzIFNOUHJpbnRGIGlzIHRoYXQgdGhlIFdpbmRvd3MgQyBSdW4tVGltZQorKy8v IExpYnJhcnkgZG9lcyBub3QgcHJvdmlkZSB2c3NjYW5mLgorKyNkZWZpbmUgU1NjYW5GIHNzY2Fu ZiAgLy8gTk9MSU5UCisrCisrLy8gVGhlIFJpc2N2RGVidWdnZXIgY2xhc3MgaXMgdXNlZCBieSB0 aGUgc2ltdWxhdG9yIHdoaWxlIGRlYnVnZ2luZyBzaW11bGF0ZWQKKysvLyBjb2RlLgorK2NsYXNz IFJpc2N2RGVidWdnZXIgeworKyBwdWJsaWM6CisrICBleHBsaWNpdCBSaXNjdkRlYnVnZ2VyKFNp bXVsYXRvciogc2ltKSA6IHNpbV8oc2ltKSB7fQorKworKyAgdm9pZCBEZWJ1ZygpOworKyAgLy8g UHJpbnQgYWxsIHJlZ2lzdGVycyB3aXRoIGEgbmljZSBmb3JtYXR0aW5nLgorKyAgdm9pZCBQcmlu dFJlZ3MoY2hhciBuYW1lX3ByZWZpeCwgaW50IHN0YXJ0X2luZGV4LCBpbnQgZW5kX2luZGV4KTsK KysgIHZvaWQgUHJpbnRBbGxSZWdzKCk7CisrICB2b2lkIFByaW50QWxsUmVnc0luY2x1ZGluZ0ZQ VSgpOworKworKyAgc3RhdGljIGNvbnN0IEluc3RyIGtOb3BJbnN0ciA9IDB4MDsKKysKKysgcHJp dmF0ZToKKysgIFNpbXVsYXRvciogc2ltXzsKKysKKysgIGludDY0X3QgR2V0UmVnaXN0ZXJWYWx1 ZShpbnQgcmVnbnVtKTsKKysgIGludDY0X3QgR2V0RlBVUmVnaXN0ZXJWYWx1ZShpbnQgcmVnbnVt KTsKKysgIGZsb2F0IEdldEZQVVJlZ2lzdGVyVmFsdWVGbG9hdChpbnQgcmVnbnVtKTsKKysgIGRv dWJsZSBHZXRGUFVSZWdpc3RlclZhbHVlRG91YmxlKGludCByZWdudW0pOworKyAgYm9vbCBHZXRW YWx1ZShjb25zdCBjaGFyKiBkZXNjLCBpbnQ2NF90KiB2YWx1ZSk7CisrfTsKKysKKytpbmxpbmUg dm9pZCBVTlNVUFBPUlRFRCgpIHsKKysgIHByaW50ZigiU2ltOiBVbnN1cHBvcnRlZCBpbnN0cnVj dGlvbi5cbiIpOworKyAgYmFzZTo6T1M6OkFib3J0KCk7CisrfQorKworK2ludDY0X3QgUmlzY3ZE ZWJ1Z2dlcjo6R2V0UmVnaXN0ZXJWYWx1ZShpbnQgcmVnbnVtKSB7CisrICBpZiAocmVnbnVtID09 IGtOdW1TaW11UmVnaXN0ZXJzKSB7CisrICAgIHJldHVybiBzaW1fLT5nZXRfcGMoKTsKKysgIH0g ZWxzZSB7CisrICAgIHJldHVybiBzaW1fLT5nZXRfcmVnaXN0ZXIocmVnbnVtKTsKKysgIH0KKyt9 CisrCisraW50NjRfdCBSaXNjdkRlYnVnZ2VyOjpHZXRGUFVSZWdpc3RlclZhbHVlKGludCByZWdu dW0pIHsKKysgIGlmIChyZWdudW0gPT0ga051bUZQVVJlZ2lzdGVycykgeworKyAgICByZXR1cm4g c2ltXy0+Z2V0X3BjKCk7CisrICB9IGVsc2UgeworKyAgICByZXR1cm4gc2ltXy0+Z2V0X2ZwdV9y ZWdpc3RlcihyZWdudW0pOworKyAgfQorK30KKysKKytmbG9hdCBSaXNjdkRlYnVnZ2VyOjpHZXRG UFVSZWdpc3RlclZhbHVlRmxvYXQoaW50IHJlZ251bSkgeworKyAgaWYgKHJlZ251bSA9PSBrTnVt RlBVUmVnaXN0ZXJzKSB7CisrICAgIHJldHVybiBzaW1fLT5nZXRfcGMoKTsKKysgIH0gZWxzZSB7 CisrICAgIHJldHVybiBzaW1fLT5nZXRfZnB1X3JlZ2lzdGVyX2Zsb2F0KHJlZ251bSk7CisrICB9 CisrfQorKworK2RvdWJsZSBSaXNjdkRlYnVnZ2VyOjpHZXRGUFVSZWdpc3RlclZhbHVlRG91Ymxl KGludCByZWdudW0pIHsKKysgIGlmIChyZWdudW0gPT0ga051bUZQVVJlZ2lzdGVycykgeworKyAg ICByZXR1cm4gc2ltXy0+Z2V0X3BjKCk7CisrICB9IGVsc2UgeworKyAgICByZXR1cm4gc2ltXy0+ Z2V0X2ZwdV9yZWdpc3Rlcl9kb3VibGUocmVnbnVtKTsKKysgIH0KKyt9CisrCisrYm9vbCBSaXNj dkRlYnVnZ2VyOjpHZXRWYWx1ZShjb25zdCBjaGFyKiBkZXNjLCBpbnQ2NF90KiB2YWx1ZSkgewor KyAgaW50IHJlZ251bSA9IFJlZ2lzdGVyczo6TnVtYmVyKGRlc2MpOworKyAgaW50IGZwdXJlZ251 bSA9IEZQVVJlZ2lzdGVyczo6TnVtYmVyKGRlc2MpOworKworKyAgaWYgKHJlZ251bSAhPSBrSW52 YWxpZFJlZ2lzdGVyKSB7CisrICAgICp2YWx1ZSA9IEdldFJlZ2lzdGVyVmFsdWUocmVnbnVtKTsK KysgICAgcmV0dXJuIHRydWU7CisrICB9IGVsc2UgaWYgKGZwdXJlZ251bSAhPSBrSW52YWxpZEZQ VVJlZ2lzdGVyKSB7CisrICAgICp2YWx1ZSA9IEdldEZQVVJlZ2lzdGVyVmFsdWUoZnB1cmVnbnVt KTsKKysgICAgcmV0dXJuIHRydWU7CisrICB9IGVsc2UgaWYgKHN0cm5jbXAoZGVzYywgIjB4Iiwg MikgPT0gMCkgeworKyAgICByZXR1cm4gU1NjYW5GKGRlc2MgKyAyLCAiJSIgU0NOeDY0LCByZWlu dGVycHJldF9jYXN0PHVpbnQ2NF90Kj4odmFsdWUpKSA9PQorKyAgICAgICAgICAgMTsKKysgIH0g ZWxzZSB7CisrICAgIHJldHVybiBTU2NhbkYoZGVzYywgIiUiIFNDTnU2NCwgcmVpbnRlcnByZXRf Y2FzdDx1aW50NjRfdCo+KHZhbHVlKSkgPT0gMTsKKysgIH0KKysgIHJldHVybiBmYWxzZTsKKyt9 CisrCisrI2RlZmluZSBSRUdfSU5GTyhuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgbmFtZSwgR2V0UmVnaXN0ZXJWYWx1ZShSZWdpc3RlcnM6Ok51bWJlcihuYW1lKSksIFwK KysgICAgICBHZXRSZWdpc3RlclZhbHVlKFJlZ2lzdGVyczo6TnVtYmVyKG5hbWUpKQorKworK3Zv aWQgUmlzY3ZEZWJ1Z2dlcjo6UHJpbnRSZWdzKGNoYXIgbmFtZV9wcmVmaXgsIGludCBzdGFydF9p bmRleCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kX2luZGV4KSB7Cisr ICBFbWJlZGRlZFZlY3RvcjxjaGFyLCAxMD4gbmFtZTEsIG5hbWUyOworKyAgRENIRUNLKG5hbWVf cHJlZml4ID09ICdhJyB8fCBuYW1lX3ByZWZpeCA9PSAndCcgfHwgbmFtZV9wcmVmaXggPT0gJ3Mn KTsKKysgIERDSEVDSyhzdGFydF9pbmRleCA+PSAwICYmIGVuZF9pbmRleCA8PSA5OSk7CisrICBp bnQgbnVtX3JlZ2lzdGVycyA9IChlbmRfaW5kZXggLSBzdGFydF9pbmRleCkgKyAxOworKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBudW1fcmVnaXN0ZXJzIC8gMjsgaSsrKSB7CisrICAgIFNOUHJpbnRG KG5hbWUxLCAiJWMlZCIsIG5hbWVfcHJlZml4LCBzdGFydF9pbmRleCArIDIgKiBpKTsKKysgICAg U05QcmludEYobmFtZTIsICIlYyVkIiwgbmFtZV9wcmVmaXgsIHN0YXJ0X2luZGV4ICsgMiAqIGkg KyAxKTsKKysgICAgUHJpbnRGKCIlM3M6IDB4JTAxNiIgUFJJeDY0ICIgICUxNCIgUFJJZDY0ICIg XHQlM3M6IDB4JTAxNiIgUFJJeDY0CisrICAgICAgICAgICAiICAlMTQiIFBSSWQ2NCAiIFxuIiwK KysgICAgICAgICAgIFJFR19JTkZPKG5hbWUxLmJlZ2luKCkpLCBSRUdfSU5GTyhuYW1lMi5iZWdp bigpKSk7CisrICB9CisrICBpZiAobnVtX3JlZ2lzdGVycyAlIDIgPT0gMSkgeworKyAgICBTTlBy aW50RihuYW1lMSwgIiVjJWQiLCBuYW1lX3ByZWZpeCwgZW5kX2luZGV4KTsKKysgICAgUHJpbnRG KCIlM3M6IDB4JTAxNiIgUFJJeDY0ICIgICUxNCIgUFJJZDY0ICIgXG4iLCBSRUdfSU5GTyhuYW1l MS5iZWdpbigpKSk7CisrICB9CisrfQorKworK3ZvaWQgUmlzY3ZEZWJ1Z2dlcjo6UHJpbnRBbGxS ZWdzKCkgeworKyAgUHJpbnRGKCJcbiIpOworKyAgLy8gcmEsIHNwLCBncAorKyAgUHJpbnRGKCIl M3M6IDB4JTAxNiIgUFJJeDY0ICIgJTE0IiBQUklkNjQgIlx0JTNzOiAweCUwMTYiIFBSSXg2NCAi ICUxNCIgUFJJZDY0CisrICAgICAgICAgIlx0JTNzOiAweCUwMTYiIFBSSXg2NCAiICUxNCIgUFJJ ZDY0ICJcbiIsCisrICAgICAgICAgUkVHX0lORk8oInJhIiksIFJFR19JTkZPKCJzcCIpLCBSRUdf SU5GTygiZ3AiKSk7CisrCisrICAvLyB0cCwgZnAsIHBjCisrICBQcmludEYoIiUzczogMHglMDE2 IiBQUkl4NjQgIiAlMTQiIFBSSWQ2NCAiXHQlM3M6IDB4JTAxNiIgUFJJeDY0ICIgJTE0IiBQUklk NjQKKysgICAgICAgICAiXHQlM3M6IDB4JTAxNiIgUFJJeDY0ICIgJTE0IiBQUklkNjQgIlxuIiwK KysgICAgICAgICBSRUdfSU5GTygidHAiKSwgUkVHX0lORk8oImZwIiksIFJFR19JTkZPKCJwYyIp KTsKKysKKysgIC8vIHByaW50IHJlZ2lzdGVyIGEwLCAuLiwgYTcKKysgIFByaW50UmVncygnYScs IDAsIDcpOworKyAgLy8gcHJpbnQgcmVnaXN0ZXJzIHMxLCAuLi4sIHMxMQorKyAgUHJpbnRSZWdz KCdzJywgMSwgMTEpOworKyAgLy8gcHJpbnQgcmVnaXN0ZXJzIHQwLCAuLi4sIHQ2CisrICBQcmlu dFJlZ3MoJ3QnLCAwLCA2KTsKKyt9CisrCisrI3VuZGVmIFJFR19JTkZPCisrCisrdm9pZCBSaXNj dkRlYnVnZ2VyOjpQcmludEFsbFJlZ3NJbmNsdWRpbmdGUFUoKSB7CisrI2RlZmluZSBGUFVfUkVH X0lORk8obikgXAorKyAgRlBVUmVnaXN0ZXJzOjpOYW1lKG4pLCBHZXRGUFVSZWdpc3RlclZhbHVl KG4pLCBHZXRGUFVSZWdpc3RlclZhbHVlRG91YmxlKG4pCisrCisrICBQcmludEFsbFJlZ3MoKTsK KysKKysgIFByaW50RigiXG5cbiIpOworKyAgLy8gZjAsIGYxLCBmMiwgLi4uIGYzMS4KKysgIERD SEVDSyhrTnVtRlBVUmVnaXN0ZXJzICUgMiA9PSAwKTsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwg a051bUZQVVJlZ2lzdGVyczsgaSArPSAyKQorKyAgICBQcmludEYoIiUzczogMHglMDE2IiBQUkl4 NjQgIiAgJTE2LjRlIFx0JTNzOiAweCUwMTYiIFBSSXg2NCAiICAlMTYuNGVcbiIsCisrICAgICAg ICAgICBGUFVfUkVHX0lORk8oaSksIEZQVV9SRUdfSU5GTyhpICsgMSkpOworKyN1bmRlZiBGUFVf UkVHX0lORk8KKyt9CisrCisrdm9pZCBSaXNjdkRlYnVnZ2VyOjpEZWJ1ZygpIHsKKysgIGludHB0 cl90IGxhc3RfcGMgPSAtMTsKKysgIGJvb2wgZG9uZSA9IGZhbHNlOworKworKyNkZWZpbmUgQ09N TUFORF9TSVpFIDYzCisrI2RlZmluZSBBUkdfU0laRSAyNTUKKysKKysjZGVmaW5lIFNUUihhKSAj YQorKyNkZWZpbmUgWFNUUihhKSBTVFIoYSkKKysKKysgIGNoYXIgY21kW0NPTU1BTkRfU0laRSAr IDFdOworKyAgY2hhciBhcmcxW0FSR19TSVpFICsgMV07CisrICBjaGFyIGFyZzJbQVJHX1NJWkUg KyAxXTsKKysgIGNoYXIqIGFyZ3ZbM10gPSB7Y21kLCBhcmcxLCBhcmcyfTsKKysKKysgIC8vIE1h a2Ugc3VyZSB0byBoYXZlIGEgcHJvcGVyIHRlcm1pbmF0aW5nIGNoYXJhY3RlciBpZiByZWFjaGlu ZyB0aGUgbGltaXQuCisrICBjbWRbQ09NTUFORF9TSVpFXSA9IDA7CisrICBhcmcxW0FSR19TSVpF XSA9IDA7CisrICBhcmcyW0FSR19TSVpFXSA9IDA7CisrCisrICB3aGlsZSAoIWRvbmUgJiYgKHNp bV8tPmdldF9wYygpICE9IFNpbXVsYXRvcjo6ZW5kX3NpbV9wYykpIHsKKysgICAgaWYgKGxhc3Rf cGMgIT0gc2ltXy0+Z2V0X3BjKCkpIHsKKysgICAgICBkaXNhc206Ok5hbWVDb252ZXJ0ZXIgY29u dmVydGVyOworKyAgICAgIGRpc2FzbTo6RGlzYXNzZW1ibGVyIGRhc20oY29udmVydGVyKTsKKysg ICAgICAvLyBVc2UgYSByZWFzb25hYmx5IGxhcmdlIGJ1ZmZlci4KKysgICAgICB2ODo6aW50ZXJu YWw6OkVtYmVkZGVkVmVjdG9yPGNoYXIsIDI1Nj4gYnVmZmVyOworKyAgICAgIGRhc20uSW5zdHJ1 Y3Rpb25EZWNvZGUoYnVmZmVyLCByZWludGVycHJldF9jYXN0PGJ5dGUqPihzaW1fLT5nZXRfcGMo KSkpOworKyAgICAgIFByaW50RigiICAweCUwMTYiIFBSSXg2NCAiICAgJXNcbiIsIHNpbV8tPmdl dF9wYygpLCBidWZmZXIuYmVnaW4oKSk7CisrICAgICAgbGFzdF9wYyA9IHNpbV8tPmdldF9wYygp OworKyAgICB9CisrICAgIGNoYXIqIGxpbmUgPSBSZWFkTGluZSgic2ltPiAiKTsKKysgICAgaWYg KGxpbmUgPT0gbnVsbHB0cikgeworKyAgICAgIGJyZWFrOworKyAgICB9IGVsc2UgeworKyAgICAg IGNoYXIqIGxhc3RfaW5wdXQgPSBzaW1fLT5sYXN0X2RlYnVnZ2VyX2lucHV0KCk7CisrICAgICAg aWYgKHN0cmNtcChsaW5lLCAiXG4iKSA9PSAwICYmIGxhc3RfaW5wdXQgIT0gbnVsbHB0cikgewor KyAgICAgICAgbGluZSA9IGxhc3RfaW5wdXQ7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIC8v IE93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCB0byBzaW1fOworKyAgICAgICAgc2ltXy0+c2V0X2xh c3RfZGVidWdnZXJfaW5wdXQobGluZSk7CisrICAgICAgfQorKyAgICAgIC8vIFVzZSBzc2NhbmYg dG8gcGFyc2UgdGhlIGluZGl2aWR1YWwgcGFydHMgb2YgdGhlIGNvbW1hbmQgbGluZS4gQXQgdGhl CisrICAgICAgLy8gbW9tZW50IG5vIGNvbW1hbmQgZXhwZWN0cyBtb3JlIHRoYW4gdHdvIHBhcmFt ZXRlcnMuCisrICAgICAgaW50IGFyZ2MgPSBTU2NhbkYoCisrICAgICAgICAgICAgbGluZSwKKysg ICAgICAgICAgICAiJSIgWFNUUihDT01NQU5EX1NJWkUpICJzICIKKysgICAgICAgICAgICAiJSIg WFNUUihBUkdfU0laRSkgInMgIgorKyAgICAgICAgICAgICIlIiBYU1RSKEFSR19TSVpFKSAicyIs CisrICAgICAgICAgICAgY21kLCBhcmcxLCBhcmcyKTsKKysgICAgICBpZiAoKHN0cmNtcChjbWQs ICJzaSIpID09IDApIHx8IChzdHJjbXAoY21kLCAic3RlcGkiKSA9PSAwKSkgeworKyAgICAgICAg SW5zdHJ1Y3Rpb24qIGluc3RyID0gcmVpbnRlcnByZXRfY2FzdDxJbnN0cnVjdGlvbio+KHNpbV8t PmdldF9wYygpKTsKKysgICAgICAgIGlmICghKGluc3RyLT5Jc1RyYXAoKSkgfHwKKysgICAgICAg ICAgICBpbnN0ci0+SW5zdHJ1Y3Rpb25CaXRzKCkgPT0gcnRDYWxsUmVkaXJJbnN0cikgeworKyAg ICAgICAgICBzaW1fLT5JbnN0cnVjdGlvbkRlY29kZSgKKysgICAgICAgICAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8SW5zdHJ1Y3Rpb24qPihzaW1fLT5nZXRfcGMoKSkpOworKyAgICAgICAgfSBlbHNl IHsKKysgICAgICAgICAgLy8gQWxsb3cgc2kgdG8ganVtcCBvdmVyIGdlbmVyYXRlZCBicmVha3Bv aW50cy4KKysgICAgICAgICAgUHJpbnRGKCIvIVxcIEp1bXBpbmcgb3ZlciBnZW5lcmF0ZWQgYnJl YWtwb2ludC5cbiIpOworKyAgICAgICAgICBzaW1fLT5zZXRfcGMoc2ltXy0+Z2V0X3BjKCkgKyBr SW5zdHJTaXplKTsKKysgICAgICAgIH0KKysgICAgICB9IGVsc2UgaWYgKChzdHJjbXAoY21kLCAi YyIpID09IDApIHx8IChzdHJjbXAoY21kLCAiY29udCIpID09IDApKSB7CisrICAgICAgICAvLyBF eGVjdXRlIHRoZSBvbmUgaW5zdHJ1Y3Rpb24gd2UgYnJva2UgYXQgd2l0aCBicmVha3BvaW50cyBk aXNhYmxlZC4KKysgICAgICAgIHNpbV8tPkluc3RydWN0aW9uRGVjb2RlKHJlaW50ZXJwcmV0X2Nh c3Q8SW5zdHJ1Y3Rpb24qPihzaW1fLT5nZXRfcGMoKSkpOworKyAgICAgICAgLy8gTGVhdmUgdGhl IGRlYnVnZ2VyIHNoZWxsLgorKyAgICAgICAgZG9uZSA9IHRydWU7CisrICAgICAgfSBlbHNlIGlm ICgoc3RyY21wKGNtZCwgInAiKSA9PSAwKSB8fCAoc3RyY21wKGNtZCwgInByaW50IikgPT0gMCkp IHsKKysgICAgICAgIGlmIChhcmdjID09IDIpIHsKKysgICAgICAgICAgaW50NjRfdCB2YWx1ZTsK KysgICAgICAgICAgZG91YmxlIGR2YWx1ZTsKKysgICAgICAgICAgaWYgKHN0cmNtcChhcmcxLCAi YWxsIikgPT0gMCkgeworKyAgICAgICAgICAgIFByaW50QWxsUmVncygpOworKyAgICAgICAgICB9 IGVsc2UgaWYgKHN0cmNtcChhcmcxLCAiYWxsZiIpID09IDApIHsKKysgICAgICAgICAgICBQcmlu dEFsbFJlZ3NJbmNsdWRpbmdGUFUoKTsKKysgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAg ICBpbnQgcmVnbnVtID0gUmVnaXN0ZXJzOjpOdW1iZXIoYXJnMSk7CisrICAgICAgICAgICAgaW50 IGZwdXJlZ251bSA9IEZQVVJlZ2lzdGVyczo6TnVtYmVyKGFyZzEpOworKworKyAgICAgICAgICAg IGlmIChyZWdudW0gIT0ga0ludmFsaWRSZWdpc3RlcikgeworKyAgICAgICAgICAgICAgdmFsdWUg PSBHZXRSZWdpc3RlclZhbHVlKHJlZ251bSk7CisrICAgICAgICAgICAgICBQcmludEYoIiVzOiAw eCUwOCIgUFJJeDY0ICIgICUiIFBSSWQ2NCAiICBcbiIsIGFyZzEsIHZhbHVlLAorKyAgICAgICAg ICAgICAgICAgICAgIHZhbHVlKTsKKysgICAgICAgICAgICB9IGVsc2UgaWYgKGZwdXJlZ251bSAh PSBrSW52YWxpZEZQVVJlZ2lzdGVyKSB7CisrICAgICAgICAgICAgICB2YWx1ZSA9IEdldEZQVVJl Z2lzdGVyVmFsdWUoZnB1cmVnbnVtKTsKKysgICAgICAgICAgICAgIGR2YWx1ZSA9IEdldEZQVVJl Z2lzdGVyVmFsdWVEb3VibGUoZnB1cmVnbnVtKTsKKysgICAgICAgICAgICAgIFByaW50RigiJTNz OiAweCUwMTYiIFBSSXg2NCAiICAlMTYuNGVcbiIsCisrICAgICAgICAgICAgICAgICAgICAgRlBV UmVnaXN0ZXJzOjpOYW1lKGZwdXJlZ251bSksIHZhbHVlLCBkdmFsdWUpOworKyAgICAgICAgICAg IH0gZWxzZSB7CisrICAgICAgICAgICAgICBQcmludEYoIiVzIHVucmVjb2duaXplZFxuIiwgYXJn MSk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICB9CisrICAgICAgICB9IGVsc2UgeworKyAg ICAgICAgICBpZiAoYXJnYyA9PSAzKSB7CisrICAgICAgICAgICAgaWYgKHN0cmNtcChhcmcyLCAi c2luZ2xlIikgPT0gMCkgeworKyAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZTsKKysgICAgICAg ICAgICAgIGZsb2F0IGZ2YWx1ZTsKKysgICAgICAgICAgICAgIGludCBmcHVyZWdudW0gPSBGUFVS ZWdpc3RlcnM6Ok51bWJlcihhcmcxKTsKKysKKysgICAgICAgICAgICAgIGlmIChmcHVyZWdudW0g IT0ga0ludmFsaWRGUFVSZWdpc3RlcikgeworKyAgICAgICAgICAgICAgICB2YWx1ZSA9IEdldEZQ VVJlZ2lzdGVyVmFsdWUoZnB1cmVnbnVtKTsKKysgICAgICAgICAgICAgICAgdmFsdWUgJj0gMHhG RkZGRkZGRlVMOworKyAgICAgICAgICAgICAgICBmdmFsdWUgPSBHZXRGUFVSZWdpc3RlclZhbHVl RmxvYXQoZnB1cmVnbnVtKTsKKysgICAgICAgICAgICAgICAgUHJpbnRGKCIlczogMHglMDgiIFBS SXg2NCAiICAlMTEuNGVcbiIsIGFyZzEsIHZhbHVlLCBmdmFsdWUpOworKyAgICAgICAgICAgICAg fSBlbHNlIHsKKysgICAgICAgICAgICAgICAgUHJpbnRGKCIlcyB1bnJlY29nbml6ZWRcbiIsIGFy ZzEpOworKyAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAg ICAgICBQcmludEYoInByaW50IDxmcHUgcmVnaXN0ZXI+IHNpbmdsZVxuIik7CisrICAgICAgICAg ICAgfQorKyAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIFByaW50RigicHJpbnQgPHJl Z2lzdGVyPiBvciBwcmludCA8ZnB1IHJlZ2lzdGVyPiBzaW5nbGVcbiIpOworKyAgICAgICAgICB9 CisrICAgICAgICB9CisrICAgICAgfSBlbHNlIGlmICgoc3RyY21wKGNtZCwgInBvIikgPT0gMCkg fHwKKysgICAgICAgICAgICAgICAgIChzdHJjbXAoY21kLCAicHJpbnRvYmplY3QiKSA9PSAwKSkg eworKyAgICAgICAgaWYgKGFyZ2MgPT0gMikgeworKyAgICAgICAgICBpbnQ2NF90IHZhbHVlOwor KyAgICAgICAgICBTdGRvdXRTdHJlYW0gb3M7CisrICAgICAgICAgIGlmIChHZXRWYWx1ZShhcmcx LCAmdmFsdWUpKSB7CisrICAgICAgICAgICAgT2JqZWN0IG9iaih2YWx1ZSk7CisrICAgICAgICAg ICAgb3MgPDwgYXJnMSA8PCAiOiBcbiI7CisrI2lmZGVmIERFQlVHCisrICAgICAgICAgICAgb2Jq LlByaW50KG9zKTsKKysgICAgICAgICAgICBvcyA8PCAiXG4iOworKyNlbHNlCisrICAgICAgICAg ICAgb3MgPDwgQnJpZWYob2JqKSA8PCAiXG4iOworKyNlbmRpZgorKyAgICAgICAgICB9IGVsc2Ug eworKyAgICAgICAgICAgIG9zIDw8IGFyZzEgPDwgIiB1bnJlY29nbml6ZWRcbiI7CisrICAgICAg ICAgIH0KKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIFByaW50RigicHJpbnRvYmplY3Qg PHZhbHVlPlxuIik7CisrICAgICAgICB9CisrICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY21kLCAi c3RhY2siKSA9PSAwIHx8IHN0cmNtcChjbWQsICJtZW0iKSA9PSAwKSB7CisrICAgICAgICBpbnQ2 NF90KiBjdXIgPSBudWxscHRyOworKyAgICAgICAgaW50NjRfdCogZW5kID0gbnVsbHB0cjsKKysg ICAgICAgIGludCBuZXh0X2FyZyA9IDE7CisrCisrICAgICAgICBpZiAoc3RyY21wKGNtZCwgInN0 YWNrIikgPT0gMCkgeworKyAgICAgICAgICBjdXIgPSByZWludGVycHJldF9jYXN0PGludDY0X3Qq PihzaW1fLT5nZXRfcmVnaXN0ZXIoU2ltdWxhdG9yOjpzcCkpOworKyAgICAgICAgfSBlbHNlIHsg IC8vIENvbW1hbmQgIm1lbSIuCisrICAgICAgICAgIGlmIChhcmdjIDwgMikgeworKyAgICAgICAg ICAgIFByaW50RigiTmVlZCB0byBzcGVjaWZ5IDxhZGRyZXNzPiB0byBtZW0gY29tbWFuZFxuIik7 CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgIH0KKysgICAgICAgICAgaW50NjRf dCB2YWx1ZTsKKysgICAgICAgICAgaWYgKCFHZXRWYWx1ZShhcmcxLCAmdmFsdWUpKSB7CisrICAg ICAgICAgICAgUHJpbnRGKCIlcyB1bnJlY29nbml6ZWRcbiIsIGFyZzEpOworKyAgICAgICAgICAg IGNvbnRpbnVlOworKyAgICAgICAgICB9CisrICAgICAgICAgIGN1ciA9IHJlaW50ZXJwcmV0X2Nh c3Q8aW50NjRfdCo+KHZhbHVlKTsKKysgICAgICAgICAgbmV4dF9hcmcrKzsKKysgICAgICAgIH0K KysKKysgICAgICAgIGludDY0X3Qgd29yZHM7CisrICAgICAgICBpZiAoYXJnYyA9PSBuZXh0X2Fy ZykgeworKyAgICAgICAgICB3b3JkcyA9IDEwOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAg ICAgaWYgKCFHZXRWYWx1ZShhcmd2W25leHRfYXJnXSwgJndvcmRzKSkgeworKyAgICAgICAgICAg IHdvcmRzID0gMTA7CisrICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIGVuZCA9IGN1 ciArIHdvcmRzOworKworKyAgICAgICAgd2hpbGUgKGN1ciA8IGVuZCkgeworKyAgICAgICAgICBQ cmludEYoIiAgMHglMDEyIiBQUkl4UFRSICIgOiAgMHglMDE2IiBQUkl4NjQgIiAgJTE0IiBQUklk NjQgIiAiLAorKyAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oY3Vy KSwgKmN1ciwgKmN1cik7CisrICAgICAgICAgIE9iamVjdCBvYmooKmN1cik7CisrICAgICAgICAg IEhlYXAqIGN1cnJlbnRfaGVhcCA9IHNpbV8tPmlzb2xhdGVfLT5oZWFwKCk7CisrICAgICAgICAg IGlmIChvYmouSXNTbWkoKSB8fAorKyAgICAgICAgICAgICAgSXNWYWxpZEhlYXBPYmplY3QoY3Vy cmVudF9oZWFwLCBIZWFwT2JqZWN0OjpjYXN0KG9iaikpKSB7CisrICAgICAgICAgICAgUHJpbnRG KCIgKCIpOworKyAgICAgICAgICAgIGlmIChvYmouSXNTbWkoKSkgeworKyAgICAgICAgICAgICAg UHJpbnRGKCJzbWkgJWQiLCBTbWk6OlRvSW50KG9iaikpOworKyAgICAgICAgICAgIH0gZWxzZSB7 CisrICAgICAgICAgICAgICBvYmouU2hvcnRQcmludCgpOworKyAgICAgICAgICAgIH0KKysgICAg ICAgICAgICBQcmludEYoIikiKTsKKysgICAgICAgICAgfQorKyAgICAgICAgICBQcmludEYoIlxu Iik7CisrICAgICAgICAgIGN1cisrOworKyAgICAgICAgfQorKworKyAgICAgIH0gZWxzZSBpZiAo KHN0cmNtcChjbWQsICJkaXNhc20iKSA9PSAwKSB8fCAoc3RyY21wKGNtZCwgImRwYyIpID09IDAp IHx8CisrICAgICAgICAgICAgICAgICAoc3RyY21wKGNtZCwgImRpIikgPT0gMCkpIHsKKysgICAg ICAgIGRpc2FzbTo6TmFtZUNvbnZlcnRlciBjb252ZXJ0ZXI7CisrICAgICAgICBkaXNhc206OkRp c2Fzc2VtYmxlciBkYXNtKGNvbnZlcnRlcik7CisrICAgICAgICAvLyBVc2UgYSByZWFzb25hYmx5 IGxhcmdlIGJ1ZmZlci4KKysgICAgICAgIHY4OjppbnRlcm5hbDo6RW1iZWRkZWRWZWN0b3I8Y2hh ciwgMjU2PiBidWZmZXI7CisrCisrICAgICAgICBieXRlKiBjdXIgPSBudWxscHRyOworKyAgICAg ICAgYnl0ZSogZW5kID0gbnVsbHB0cjsKKysKKysgICAgICAgIGlmIChhcmdjID09IDEpIHsKKysg ICAgICAgICAgY3VyID0gcmVpbnRlcnByZXRfY2FzdDxieXRlKj4oc2ltXy0+Z2V0X3BjKCkpOwor KyAgICAgICAgICBlbmQgPSBjdXIgKyAoMTAgKiBrSW5zdHJTaXplKTsKKysgICAgICAgIH0gZWxz ZSBpZiAoYXJnYyA9PSAyKSB7CisrICAgICAgICAgIGludCByZWdudW0gPSBSZWdpc3RlcnM6Ok51 bWJlcihhcmcxKTsKKysgICAgICAgICAgaWYgKHJlZ251bSAhPSBrSW52YWxpZFJlZ2lzdGVyIHx8 IHN0cm5jbXAoYXJnMSwgIjB4IiwgMikgPT0gMCkgeworKyAgICAgICAgICAgIC8vIFRoZSBhcmd1 bWVudCBpcyBhbiBhZGRyZXNzIG9yIGEgcmVnaXN0ZXIgbmFtZS4KKysgICAgICAgICAgICBpbnQ2 NF90IHZhbHVlOworKyAgICAgICAgICAgIGlmIChHZXRWYWx1ZShhcmcxLCAmdmFsdWUpKSB7Cisr ICAgICAgICAgICAgICBjdXIgPSByZWludGVycHJldF9jYXN0PGJ5dGUqPih2YWx1ZSk7CisrICAg ICAgICAgICAgICAvLyBEaXNhc3NlbWJsZSAxMCBpbnN0cnVjdGlvbnMgYXQgPGFyZzE+LgorKyAg ICAgICAgICAgICAgZW5kID0gY3VyICsgKDEwICoga0luc3RyU2l6ZSk7CisrICAgICAgICAgICAg fQorKyAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIC8vIFRoZSBhcmd1bWVudCBpcyB0 aGUgbnVtYmVyIG9mIGluc3RydWN0aW9ucy4KKysgICAgICAgICAgICBpbnQ2NF90IHZhbHVlOwor KyAgICAgICAgICAgIGlmIChHZXRWYWx1ZShhcmcxLCAmdmFsdWUpKSB7CisrICAgICAgICAgICAg ICBjdXIgPSByZWludGVycHJldF9jYXN0PGJ5dGUqPihzaW1fLT5nZXRfcGMoKSk7CisrICAgICAg ICAgICAgICAvLyBEaXNhc3NlbWJsZSA8YXJnMT4gaW5zdHJ1Y3Rpb25zLgorKyAgICAgICAgICAg ICAgZW5kID0gY3VyICsgKHZhbHVlICoga0luc3RyU2l6ZSk7CisrICAgICAgICAgICAgfQorKyAg ICAgICAgICB9CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBpbnQ2NF90IHZhbHVlMTsK KysgICAgICAgICAgaW50NjRfdCB2YWx1ZTI7CisrICAgICAgICAgIGlmIChHZXRWYWx1ZShhcmcx LCAmdmFsdWUxKSAmJiBHZXRWYWx1ZShhcmcyLCAmdmFsdWUyKSkgeworKyAgICAgICAgICAgIGN1 ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHZhbHVlMSk7CisrICAgICAgICAgICAgZW5kID0g Y3VyICsgKHZhbHVlMiAqIGtJbnN0clNpemUpOworKyAgICAgICAgICB9CisrICAgICAgICB9Cisr CisrICAgICAgICB3aGlsZSAoY3VyIDwgZW5kKSB7CisrICAgICAgICAgIGRhc20uSW5zdHJ1Y3Rp b25EZWNvZGUoYnVmZmVyLCBjdXIpOworKyAgICAgICAgICBQcmludEYoIiAgMHglMDgiIFBSSXhQ VFIgIiAgICVzXG4iLCByZWludGVycHJldF9jYXN0PGludHB0cl90PihjdXIpLAorKyAgICAgICAg ICAgICAgICAgYnVmZmVyLmJlZ2luKCkpOworKyAgICAgICAgICBjdXIgKz0ga0luc3RyU2l6ZTsK KysgICAgICAgIH0KKysgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjbWQsICJnZGIiKSA9PSAwKSB7 CisrICAgICAgICBQcmludEYoInJlbGlucXVpc2hpbmcgY29udHJvbCB0byBnZGJcbiIpOworKyAg ICAgICAgdjg6OmJhc2U6Ok9TOjpEZWJ1Z0JyZWFrKCk7CisrICAgICAgICBQcmludEYoInJlZ2Fp bmluZyBjb250cm9sIGZyb20gZ2RiXG4iKTsKKysgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjbWQs ICJicmVhayIpID09IDAgCisrICAgICAgICAgICAgICB8fCBzdHJjbXAoY21kLCAiYiIpID09IDAK KysgICAgICAgICAgICAgIHx8IHN0cmNtcChjbWQsICJ0YnJlYWsiKSA9PSAwKSB7CisrICAgICAg ICBib29sIGlzX3RicmVhayA9IHN0cmNtcChjbWQsICJ0YnJlYWsiKSA9PSAwOworKyAgICAgICAg aWYgKGFyZ2MgPT0gMikgeworKyAgICAgICAgICBpbnQ2NF90IHZhbHVlOworKyAgICAgICAgICBp ZiAoR2V0VmFsdWUoYXJnMSwgJnZhbHVlKSkgeworKyAgICAgICAgICAgIHNpbV8tPlNldEJyZWFr cG9pbnQocmVpbnRlcnByZXRfY2FzdDxJbnN0cnVjdGlvbio+KHZhbHVlKSwgaXNfdGJyZWFrKTsK KysgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBQcmludEYoIiVzIHVucmVjb2duaXpl ZFxuIiwgYXJnMSk7CisrICAgICAgICAgIH0KKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAg IHNpbV8tPkxpc3RCcmVha3BvaW50cygpOworKyAgICAgICAgICBQcmludEYoIlVzZSBgYnJlYWsg PGFkZHJlc3M+YCB0byBzZXQgb3IgZGlzYWJsZSBhIGJyZWFrcG9pbnRcbiIpOworKyAgICAgICAg ICBQcmludEYoIlVzZSBgdGJyZWFrIDxhZGRyZXNzPmAgdG8gc2V0IG9yIGRpc2FibGUgYSB0ZW1w b3JhcnkgYnJlYWtwb2ludFxuIik7CisrICAgICAgICB9CisrICAgICAgfSBlbHNlIGlmIChzdHJj bXAoY21kLCAiZmxhZ3MiKSA9PSAwKSB7CisrICAgICAgICBQcmludEYoIk5vIGZsYWdzIG9uIFJJ U0MtViAhXG4iKTsKKysgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjbWQsICJzdG9wIikgPT0gMCkg eworKyAgICAgICAgaW50NjRfdCB2YWx1ZTsKKysgICAgICAgIGlmIChhcmdjID09IDMpIHsKKysg ICAgICAgICAgLy8gUHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYWxsL3RoZSBzcGVjaWZpZWQgYnJl YWtwb2ludChzKS4KKysgICAgICAgICAgaWYgKHN0cmNtcChhcmcxLCAiaW5mbyIpID09IDApIHsK KysgICAgICAgICAgICBpZiAoc3RyY21wKGFyZzIsICJhbGwiKSA9PSAwKSB7CisrICAgICAgICAg ICAgICBQcmludEYoIlN0b3AgaW5mb3JtYXRpb246XG4iKTsKKysgICAgICAgICAgICAgIGZvciAo dWludDMyX3QgaSA9IGtNYXhXYXRjaHBvaW50Q29kZSArIDE7IGkgPD0ga01heFN0b3BDb2RlOwor KyAgICAgICAgICAgICAgICAgICBpKyspIHsKKysgICAgICAgICAgICAgICAgc2ltXy0+UHJpbnRT dG9wSW5mbyhpKTsKKysgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9IGVsc2UgaWYgKEdl dFZhbHVlKGFyZzIsICZ2YWx1ZSkpIHsKKysgICAgICAgICAgICAgIHNpbV8tPlByaW50U3RvcElu Zm8odmFsdWUpOworKyAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICBQcmludEYo IlVucmVjb2duaXplZCBhcmd1bWVudC5cbiIpOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAg fSBlbHNlIGlmIChzdHJjbXAoYXJnMSwgImVuYWJsZSIpID09IDApIHsKKysgICAgICAgICAgICAv LyBFbmFibGUgYWxsL3RoZSBzcGVjaWZpZWQgYnJlYWtwb2ludChzKS4KKysgICAgICAgICAgICBp ZiAoc3RyY21wKGFyZzIsICJhbGwiKSA9PSAwKSB7CisrICAgICAgICAgICAgICBmb3IgKHVpbnQz Ml90IGkgPSBrTWF4V2F0Y2hwb2ludENvZGUgKyAxOyBpIDw9IGtNYXhTdG9wQ29kZTsKKysgICAg ICAgICAgICAgICAgICAgaSsrKSB7CisrICAgICAgICAgICAgICAgIHNpbV8tPkVuYWJsZVN0b3Ao aSk7CisrICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgfSBlbHNlIGlmIChHZXRWYWx1ZShh cmcyLCAmdmFsdWUpKSB7CisrICAgICAgICAgICAgICBzaW1fLT5FbmFibGVTdG9wKHZhbHVlKTsK KysgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgUHJpbnRGKCJVbnJlY29nbml6 ZWQgYXJndW1lbnQuXG4iKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgIH0gZWxzZSBpZiAo c3RyY21wKGFyZzEsICJkaXNhYmxlIikgPT0gMCkgeworKyAgICAgICAgICAgIC8vIERpc2FibGUg YWxsL3RoZSBzcGVjaWZpZWQgYnJlYWtwb2ludChzKS4KKysgICAgICAgICAgICBpZiAoc3RyY21w KGFyZzIsICJhbGwiKSA9PSAwKSB7CisrICAgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSBr TWF4V2F0Y2hwb2ludENvZGUgKyAxOyBpIDw9IGtNYXhTdG9wQ29kZTsKKysgICAgICAgICAgICAg ICAgICAgaSsrKSB7CisrICAgICAgICAgICAgICAgIHNpbV8tPkRpc2FibGVTdG9wKGkpOworKyAg ICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0gZWxzZSBpZiAoR2V0VmFsdWUoYXJnMiwgJnZh bHVlKSkgeworKyAgICAgICAgICAgICAgc2ltXy0+RGlzYWJsZVN0b3AodmFsdWUpOworKyAgICAg ICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICBQcmludEYoIlVucmVjb2duaXplZCBhcmd1 bWVudC5cbiIpOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgfQorKyAgICAgICAgfSBlbHNl IHsKKysgICAgICAgICAgUHJpbnRGKCJXcm9uZyB1c2FnZS4gVXNlIGhlbHAgY29tbWFuZCBmb3Ig bW9yZSBpbmZvcm1hdGlvbi5cbiIpOworKyAgICAgICAgfQorKyAgICAgIH0gZWxzZSBpZiAoKHN0 cmNtcChjbWQsICJzdGF0IikgPT0gMCkgfHwgKHN0cmNtcChjbWQsICJzdCIpID09IDApKSB7Cisr ICAgICAgICAvLyBQcmludCByZWdpc3RlcnMgYW5kIGRpc2Fzc2VtYmxlLgorKyAgICAgICAgUHJp bnRBbGxSZWdzKCk7CisrICAgICAgICBQcmludEYoIlxuIik7CisrCisrICAgICAgICBkaXNhc206 Ok5hbWVDb252ZXJ0ZXIgY29udmVydGVyOworKyAgICAgICAgZGlzYXNtOjpEaXNhc3NlbWJsZXIg ZGFzbShjb252ZXJ0ZXIpOworKyAgICAgICAgLy8gVXNlIGEgcmVhc29uYWJseSBsYXJnZSBidWZm ZXIuCisrICAgICAgICB2ODo6aW50ZXJuYWw6OkVtYmVkZGVkVmVjdG9yPGNoYXIsIDI1Nj4gYnVm ZmVyOworKworKyAgICAgICAgYnl0ZSogY3VyID0gbnVsbHB0cjsKKysgICAgICAgIGJ5dGUqIGVu ZCA9IG51bGxwdHI7CisrCisrICAgICAgICBpZiAoYXJnYyA9PSAxKSB7CisrICAgICAgICAgIGN1 ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHNpbV8tPmdldF9wYygpKTsKKysgICAgICAgICAg ZW5kID0gY3VyICsgKDEwICoga0luc3RyU2l6ZSk7CisrICAgICAgICB9IGVsc2UgaWYgKGFyZ2Mg PT0gMikgeworKyAgICAgICAgICBpbnQ2NF90IHZhbHVlOworKyAgICAgICAgICBpZiAoR2V0VmFs dWUoYXJnMSwgJnZhbHVlKSkgeworKyAgICAgICAgICAgIGN1ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8 Ynl0ZSo+KHZhbHVlKTsKKysgICAgICAgICAgICAvLyBubyBsZW5ndGggcGFyYW1ldGVyIHBhc3Nl ZCwgYXNzdW1lIDEwIGluc3RydWN0aW9ucworKyAgICAgICAgICAgIGVuZCA9IGN1ciArICgxMCAq IGtJbnN0clNpemUpOworKyAgICAgICAgICB9CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAg ICBpbnQ2NF90IHZhbHVlMTsKKysgICAgICAgICAgaW50NjRfdCB2YWx1ZTI7CisrICAgICAgICAg IGlmIChHZXRWYWx1ZShhcmcxLCAmdmFsdWUxKSAmJiBHZXRWYWx1ZShhcmcyLCAmdmFsdWUyKSkg eworKyAgICAgICAgICAgIGN1ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHZhbHVlMSk7Cisr ICAgICAgICAgICAgZW5kID0gY3VyICsgKHZhbHVlMiAqIGtJbnN0clNpemUpOworKyAgICAgICAg ICB9CisrICAgICAgICB9CisrCisrICAgICAgICB3aGlsZSAoY3VyIDwgZW5kKSB7CisrICAgICAg ICAgIGRhc20uSW5zdHJ1Y3Rpb25EZWNvZGUoYnVmZmVyLCBjdXIpOworKyAgICAgICAgICBQcmlu dEYoIiAgMHglMDgiIFBSSXhQVFIgIiAgICVzXG4iLCByZWludGVycHJldF9jYXN0PGludHB0cl90 PihjdXIpLAorKyAgICAgICAgICAgICAgICAgYnVmZmVyLmJlZ2luKCkpOworKyAgICAgICAgICBj dXIgKz0ga0luc3RyU2l6ZTsKKysgICAgICAgIH0KKysgICAgICB9IGVsc2UgaWYgKChzdHJjbXAo Y21kLCAiaCIpID09IDApIHx8IChzdHJjbXAoY21kLCAiaGVscCIpID09IDApKSB7CisrICAgICAg ICBQcmludEYoImNvbnQgKGFsaWFzICdjJylcbiIpOworKyAgICAgICAgUHJpbnRGKCIgIENvbnRp bnVlIGV4ZWN1dGlvblxuIik7CisrICAgICAgICBQcmludEYoInN0ZXBpIChhbGlhcyAnc2knKVxu Iik7CisrICAgICAgICBQcmludEYoIiAgU3RlcCBvbmUgaW5zdHJ1Y3Rpb25cbiIpOworKyAgICAg ICAgUHJpbnRGKCJwcmludCAoYWxpYXMgJ3AnKVxuIik7CisrICAgICAgICBQcmludEYoIiAgcHJp bnQgPHJlZ2lzdGVyPlxuIik7CisrICAgICAgICBQcmludEYoIiAgUHJpbnQgcmVnaXN0ZXIgY29u dGVudFxuIik7CisrICAgICAgICBQcmludEYoIiAgVXNlIHJlZ2lzdGVyIG5hbWUgJ2FsbCcgdG8g cHJpbnQgYWxsIEdQUnNcbiIpOworKyAgICAgICAgUHJpbnRGKCIgIFVzZSByZWdpc3RlciBuYW1l ICdhbGxmJyB0byBwcmludCBhbGwgR1BScyBhbmQgRlBSc1xuIik7CisrICAgICAgICBQcmludEYo InByaW50b2JqZWN0IChhbGlhcyAncG8nKVxuIik7CisrICAgICAgICBQcmludEYoIiAgcHJpbnRv YmplY3QgPHJlZ2lzdGVyPlxuIik7CisrICAgICAgICBQcmludEYoIiAgUHJpbnQgYW4gb2JqZWN0 IGZyb20gYSByZWdpc3RlclxuIik7CisrICAgICAgICBQcmludEYoInN0YWNrXG4iKTsKKysgICAg ICAgIFByaW50RigiICBzdGFjayBbPHdvcmRzPl1cbiIpOworKyAgICAgICAgUHJpbnRGKCIgIER1 bXAgc3RhY2sgY29udGVudCwgZGVmYXVsdCBkdW1wIDEwIHdvcmRzKVxuIik7CisrICAgICAgICBQ cmludEYoIm1lbVxuIik7CisrICAgICAgICBQcmludEYoIiAgbWVtIDxhZGRyZXNzPiBbPHdvcmRz Pl1cbiIpOworKyAgICAgICAgUHJpbnRGKCIgIER1bXAgbWVtb3J5IGNvbnRlbnQsIGRlZmF1bHQg ZHVtcCAxMCB3b3JkcylcbiIpOworKyAgICAgICAgUHJpbnRGKCJmbGFnc1xuIik7CisrICAgICAg ICBQcmludEYoIiAgcHJpbnQgZmxhZ3NcbiIpOworKyAgICAgICAgUHJpbnRGKCJkaXNhc20gKGFs aWFzICdkaScpXG4iKTsKKysgICAgICAgIFByaW50RigiICBkaXNhc20gWzxpbnN0cnVjdGlvbnM+ XVxuIik7CisrICAgICAgICBQcmludEYoIiAgZGlzYXNtIFs8YWRkcmVzcy9yZWdpc3Rlcj5dIChl LmcuLCBkaXNhc20gcGMpIFxuIik7CisrICAgICAgICBQcmludEYoIiAgZGlzYXNtIFtbPGFkZHJl c3MvcmVnaXN0ZXI+XSA8aW5zdHJ1Y3Rpb25zPl1cbiIpOworKyAgICAgICAgUHJpbnRGKCIgIERp c2Fzc2VtYmxlIGNvZGUsIGRlZmF1bHQgaXMgMTAgaW5zdHJ1Y3Rpb25zXG4iKTsKKysgICAgICAg IFByaW50RigiICBmcm9tIHBjXG4iKTsKKysgICAgICAgIFByaW50RigiZ2RiIFxuIik7CisrICAg ICAgICBQcmludEYoIiAgUmV0dXJuIHRvIGdkYiBpZiB0aGUgc2ltdWxhdG9yIHdhcyBzdGFydGVk IHdpdGggZ2RiXG4iKTsKKysgICAgICAgIFByaW50RigiYnJlYWsgKGFsaWFzICdiJylcbiIpOwor KyAgICAgICAgUHJpbnRGKCIgIGJyZWFrIDogbGlzdCBhbGwgYnJlYWtwb2ludHNcbiIpOworKyAg ICAgICAgUHJpbnRGKCIgIGJyZWFrIDxhZGRyZXNzPiA6IHNldCAvIGVuYWJsZSAvIGRpc2FibGUg YSBicmVha3BvaW50LlxuIik7CisrICAgICAgICBQcmludEYoInRicmVha1xuIik7CisrICAgICAg ICBQcmludEYoIiAgdGJyZWFrIDogbGlzdCBhbGwgYnJlYWtwb2ludHNcbiIpOworKyAgICAgICAg UHJpbnRGKCIgIHRicmVhayA8YWRkcmVzcz4gOiBzZXQgLyBlbmFibGUgLyBkaXNhYmxlIGEgdGVt cG9yYXJ5IGJyZWFrcG9pbnQuXG4iKTsKKysgICAgICAgIFByaW50RigiICBTZXQgYSBicmVha3Bv aW50IGVuYWJsZWQgb25seSBmb3Igb25lIHN0b3AuIFxuIik7CisrICAgICAgICBQcmludEYoInN0 b3AgZmVhdHVyZTpcbiIpOworKyAgICAgICAgUHJpbnRGKCIgIERlc2NyaXB0aW9uOlxuIik7Cisr ICAgICAgICBQcmludEYoIiAgICBTdG9wcyBhcmUgZGVidWcgaW5zdHJ1Y3Rpb25zIGluc2VydGVk IGJ5XG4iKTsKKysgICAgICAgIFByaW50RigiICAgIHRoZSBBc3NlbWJsZXI6OnN0b3AoKSBmdW5j dGlvbi5cbiIpOworKyAgICAgICAgUHJpbnRGKCIgICAgV2hlbiBoaXR0aW5nIGEgc3RvcCwgdGhl IFNpbXVsYXRvciB3aWxsXG4iKTsKKysgICAgICAgIFByaW50RigiICAgIHN0b3AgYW5kIGdpdmUg Y29udHJvbCB0byB0aGUgRGVidWdnZXIuXG4iKTsKKysgICAgICAgIFByaW50RigiICAgIEFsbCBz dG9wIGNvZGVzIGFyZSB3YXRjaGVkOlxuIik7CisrICAgICAgICBQcmludEYoIiAgICAtIFRoZXkg Y2FuIGJlIGVuYWJsZWQgLyBkaXNhYmxlZDogdGhlIFNpbXVsYXRvclxuIik7CisrICAgICAgICBQ cmludEYoIiAgICAgICB3aWxsIC8gd29uJ3Qgc3RvcCB3aGVuIGhpdHRpbmcgdGhlbS5cbiIpOwor KyAgICAgICAgUHJpbnRGKCIgICAgLSBUaGUgU2ltdWxhdG9yIGtlZXBzIHRyYWNrIG9mIGhvdyBt YW55IHRpbWVzIHRoZXkgXG4iKTsKKysgICAgICAgIFByaW50RigiICAgICAgYXJlIG1ldC4gKFNl ZSB0aGUgaW5mbyBjb21tYW5kLikgR29pbmcgb3ZlciBhXG4iKTsKKysgICAgICAgIFByaW50Rigi ICAgICAgZGlzYWJsZWQgc3RvcCBzdGlsbCBpbmNyZWFzZXMgaXRzIGNvdW50ZXIuIFxuIik7Cisr ICAgICAgICBQcmludEYoIiAgQ29tbWFuZHM6XG4iKTsKKysgICAgICAgIFByaW50RigiICAgIHN0 b3AgaW5mbyBhbGwvPGNvZGU+IDogcHJpbnQgaW5mb3MgYWJvdXQgbnVtYmVyIDxjb2RlPlxuIik7 IAorKyAgICAgICAgUHJpbnRGKCIgICAgICBvciBhbGwgc3RvcChzKS5cbiIpOworKyAgICAgICAg UHJpbnRGKCIgICAgc3RvcCBlbmFibGUvZGlzYWJsZSBhbGwvPGNvZGU+IDogZW5hYmxlcyAvIGRp c2FibGVzXG4iKTsgCisrICAgICAgICBQcmludEYoIiAgICAgIGFsbCBvciBudW1iZXIgPGNvZGU+ IHN0b3AocylcbiIpOyAKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgUHJpbnRGKCJVbmtub3du IGNvbW1hbmQ6ICVzXG4iLCBjbWQpOworKyAgICAgIH0KKysgICAgfQorKyAgfQorKworKyN1bmRl ZiBDT01NQU5EX1NJWkUKKysjdW5kZWYgQVJHX1NJWkUKKysKKysjdW5kZWYgU1RSCisrI3VuZGVm IFhTVFIKKyt9CisrCisrdm9pZCBTaW11bGF0b3I6OlNldEJyZWFrcG9pbnQoSW5zdHJ1Y3Rpb24q IGxvY2F0aW9uLCBib29sIGlzX3RicmVhaykgeworKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IGJyZWFrcG9pbnRzXy5zaXplKCk7IGkrKykgeworKyAgICBpZiAoYnJlYWtwb2ludHNfLmF0KGkp LmxvY2F0aW9uID09IGxvY2F0aW9uKSB7CisrICAgICAgaWYgKGJyZWFrcG9pbnRzXy5hdChpKS5p c190YnJlYWsgIT0gaXNfdGJyZWFrKSB7CisrICAgICAgICBQcmludEYoIkNoYW5nZSBicmVha3Bv aW50IGF0ICVwIHRvICVzIGJyZWFrcG9pbnRcbiIsCisrICAgICAgICAgICAgICByZWludGVycHJl dF9jYXN0PHZvaWQqPihsb2NhdGlvbiksCisrICAgICAgICAgICAgICBpc190YnJlYWsgPyAidGVt cG9yYXJ5IiA6ICJyZWd1bGFyIik7CisrICAgICAgICBicmVha3BvaW50c18uYXQoaSkuaXNfdGJy ZWFrID0gaXNfdGJyZWFrOworKyAgICAgICAgcmV0dXJuOworKyAgICAgIH0KKysgICAgICBQcmlu dEYoIkV4aXN0aW5nIGJyZWFrcG9pbnQgYXQgJXAgd2FzICVzXG4iLAorKyAgICAgICAgICAgICBy ZWludGVycHJldF9jYXN0PHZvaWQqPihsb2NhdGlvbiksCisrICAgICAgICAgICAgIGJyZWFrcG9p bnRzXy5hdChpKS5lbmFibGVkID8gImRpc2FibGVkIiA6ICJlbmFibGVkIik7CisrICAgICAgYnJl YWtwb2ludHNfLmF0KGkpLmVuYWJsZWQgPSAhYnJlYWtwb2ludHNfLmF0KGkpLmVuYWJsZWQ7Cisr ICAgICAgcmV0dXJuOworKyAgICB9CisrICB9CisrICBCcmVha3BvaW50IG5ld19icmVha3BvaW50 ID0ge2xvY2F0aW9uLCB0cnVlLCBpc190YnJlYWt9OworKyAgYnJlYWtwb2ludHNfLnB1c2hfYmFj ayhuZXdfYnJlYWtwb2ludCk7CisrICBQcmludEYoIlNldCBhICVzYnJlYWtwb2ludCBhdCAlcFxu IiwKKysgICAgICAgICBpc190YnJlYWsgPyAidGVtcG9yYXJ5ICIgOiAiIiwKKysgICAgICAgICBy ZWludGVycHJldF9jYXN0PHZvaWQqPihsb2NhdGlvbikpOworK30KKysKKyt2b2lkIFNpbXVsYXRv cjo6TGlzdEJyZWFrcG9pbnRzKCkgeworKyAgUHJpbnRGKCJCcmVha3BvaW50czpcbiIpOworKyAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJyZWFrcG9pbnRzXy5zaXplKCk7IGkrKykgeworKyAg ICBQcmludEYoIiVwICA6ICVzICVzXG4iLAorKyAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2 b2lkKj4oYnJlYWtwb2ludHNfLmF0KGkpLmxvY2F0aW9uKSwKKysgICAgICAgICAgIGJyZWFrcG9p bnRzXy5hdChpKS5lbmFibGVkID8gImVuYWJsZWQiIDogImRpc2FibGVkIiwKKysgICAgICAgICAg IGJyZWFrcG9pbnRzXy5hdChpKS5pc190YnJlYWsgPyAiOiB0ZW1wb3JhcnkiIDogIiIpOworKyAg fQorK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6Q2hlY2tCcmVha3BvaW50cygpIHsKKysgIGJvb2wg aGl0X2FfYnJlYWtwb2ludCA9IGZhbHNlOworKyAgYm9vbCBpc190YnJlYWsgPSBmYWxzZTsKKysg IEluc3RydWN0aW9uKiBwY18gPSByZWludGVycHJldF9jYXN0PEluc3RydWN0aW9uKj4oZ2V0X3Bj KCkpOworKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJyZWFrcG9pbnRzXy5zaXplKCk7IGkr KykgeworKyAgICBpZiAoKGJyZWFrcG9pbnRzXy5hdChpKS5sb2NhdGlvbiA9PSBwY18pICYmIGJy ZWFrcG9pbnRzXy5hdChpKS5lbmFibGVkKSB7CisrICAgICAgaGl0X2FfYnJlYWtwb2ludCA9IHRy dWU7CisrICAgICAgaWYgKGJyZWFrcG9pbnRzXy5hdChpKS5pc190YnJlYWspIHsKKysgICAgICAg IC8vIERpc2FibGUgYSB0ZW1wb3JhcnkgYnJlYWtwb2ludC4KKysgICAgICAgIGlzX3RicmVhayA9 IHRydWU7CisrICAgICAgICBicmVha3BvaW50c18uYXQoaSkuZW5hYmxlZCA9IGZhbHNlOworKyAg ICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAgfQorKyAgaWYgKGhpdF9hX2JyZWFrcG9p bnQpIHsKKysgICAgUHJpbnRGKCJIaXQgJXNhIGJyZWFrcG9pbnQgYXQgJXAuXG4iLAorKyAgICAg ICAgICAgaXNfdGJyZWFrID8gImFuZCBkaXNhYmxlZCAiIDogIiIsCisrICAgICAgICAgICByZWlu dGVycHJldF9jYXN0PHZvaWQqPihwY18pKTsKKysgICAgUmlzY3ZEZWJ1Z2dlciBkYmcodGhpcyk7 CisrICAgIGRiZy5EZWJ1ZygpOworKyAgfQorK30KKysKKytib29sIFNpbXVsYXRvcjo6SUNhY2hl TWF0Y2godm9pZCogb25lLCB2b2lkKiB0d28pIHsKKysgIERDSEVDS19FUShyZWludGVycHJldF9j YXN0PGludHB0cl90PihvbmUpICYgQ2FjaGVQYWdlOjprUGFnZU1hc2ssIDApOworKyAgRENIRUNL X0VRKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHR3bykgJiBDYWNoZVBhZ2U6OmtQYWdlTWFz aywgMCk7CisrICByZXR1cm4gb25lID09IHR3bzsKKyt9CisrCisrc3RhdGljIHVpbnQzMl90IElD YWNoZUhhc2godm9pZCoga2V5KSB7CisrICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJl aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihrZXkpKSA+PiAyOworK30KKysKKytzdGF0aWMgYm9v bCBBbGxPbk9uZVBhZ2UodWludHB0cl90IHN0YXJ0LCBzaXplX3Qgc2l6ZSkgeworKyAgaW50cHRy X3Qgc3RhcnRfcGFnZSA9IChzdGFydCAmIH5DYWNoZVBhZ2U6OmtQYWdlTWFzayk7CisrICBpbnRw dHJfdCBlbmRfcGFnZSA9ICgoc3RhcnQgKyBzaXplKSAmIH5DYWNoZVBhZ2U6OmtQYWdlTWFzayk7 CisrICByZXR1cm4gc3RhcnRfcGFnZSA9PSBlbmRfcGFnZTsKKyt9CisrCisrdm9pZCBTaW11bGF0 b3I6OnNldF9sYXN0X2RlYnVnZ2VyX2lucHV0KGNoYXIqIGlucHV0KSB7CisrICBEZWxldGVBcnJh eShsYXN0X2RlYnVnZ2VyX2lucHV0Xyk7CisrICBsYXN0X2RlYnVnZ2VyX2lucHV0XyA9IGlucHV0 OworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6U2V0UmVkaXJlY3RJbnN0cnVjdGlvbihJbnN0cnVj dGlvbiogaW5zdHJ1Y3Rpb24pIHsKKysgIGluc3RydWN0aW9uLT5TZXRJbnN0cnVjdGlvbkJpdHMo cnRDYWxsUmVkaXJJbnN0cik7CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpGbHVzaElDYWNoZShi YXNlOjpDdXN0b21NYXRjaGVySGFzaE1hcCogaV9jYWNoZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm9pZCogc3RhcnRfYWRkciwgc2l6ZV90IHNpemUpIHsKKysgIGludDY0X3Qgc3Rh cnQgPSByZWludGVycHJldF9jYXN0PGludDY0X3Q+KHN0YXJ0X2FkZHIpOworKyAgaW50NjRfdCBp bnRyYV9saW5lID0gKHN0YXJ0ICYgQ2FjaGVQYWdlOjprTGluZU1hc2spOworKyAgc3RhcnQgLT0g aW50cmFfbGluZTsKKysgIHNpemUgKz0gaW50cmFfbGluZTsKKysgIHNpemUgPSAoKHNpemUgLSAx KSB8IENhY2hlUGFnZTo6a0xpbmVNYXNrKSArIDE7CisrICBpbnQgb2Zmc2V0ID0gKHN0YXJ0ICYg Q2FjaGVQYWdlOjprUGFnZU1hc2spOworKyAgd2hpbGUgKCFBbGxPbk9uZVBhZ2Uoc3RhcnQsIHNp emUgLSAxKSkgeworKyAgICBpbnQgYnl0ZXNfdG9fZmx1c2ggPSBDYWNoZVBhZ2U6OmtQYWdlU2l6 ZSAtIG9mZnNldDsKKysgICAgRmx1c2hPbmVQYWdlKGlfY2FjaGUsIHN0YXJ0LCBieXRlc190b19m bHVzaCk7CisrICAgIHN0YXJ0ICs9IGJ5dGVzX3RvX2ZsdXNoOworKyAgICBzaXplIC09IGJ5dGVz X3RvX2ZsdXNoOworKyAgICBEQ0hFQ0tfRVEoKGludDY0X3QpMCwgc3RhcnQgJiBDYWNoZVBhZ2U6 OmtQYWdlTWFzayk7CisrICAgIG9mZnNldCA9IDA7CisrICB9CisrICBpZiAoc2l6ZSAhPSAwKSB7 CisrICAgIEZsdXNoT25lUGFnZShpX2NhY2hlLCBzdGFydCwgc2l6ZSk7CisrICB9CisrfQorKwor K0NhY2hlUGFnZSogU2ltdWxhdG9yOjpHZXRDYWNoZVBhZ2UoYmFzZTo6Q3VzdG9tTWF0Y2hlckhh c2hNYXAqIGlfY2FjaGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk KiBwYWdlKSB7CisrICBiYXNlOjpIYXNoTWFwOjpFbnRyeSogZW50cnkgPSBpX2NhY2hlLT5Mb29r dXBPckluc2VydChwYWdlLCBJQ2FjaGVIYXNoKHBhZ2UpKTsKKysgIGlmIChlbnRyeS0+dmFsdWUg PT0gbnVsbHB0cikgeworKyAgICBDYWNoZVBhZ2UqIG5ld19wYWdlID0gbmV3IENhY2hlUGFnZSgp OworKyAgICBlbnRyeS0+dmFsdWUgPSBuZXdfcGFnZTsKKysgIH0KKysgIHJldHVybiByZWludGVy cHJldF9jYXN0PENhY2hlUGFnZSo+KGVudHJ5LT52YWx1ZSk7CisrfQorKworKy8vIEZsdXNoIGZy b20gc3RhcnQgdXAgdG8gYW5kIG5vdCBpbmNsdWRpbmcgc3RhcnQgKyBzaXplLgorK3ZvaWQgU2lt dWxhdG9yOjpGbHVzaE9uZVBhZ2UoYmFzZTo6Q3VzdG9tTWF0Y2hlckhhc2hNYXAqIGlfY2FjaGUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRwdHJfdCBzdGFydCwgc2l6ZV90IHNp emUpIHsKKysgIERDSEVDS19MRShzaXplLCBDYWNoZVBhZ2U6OmtQYWdlU2l6ZSk7CisrICBEQ0hF Q0soQWxsT25PbmVQYWdlKHN0YXJ0LCBzaXplIC0gMSkpOworKyAgRENIRUNLX0VRKHN0YXJ0ICYg Q2FjaGVQYWdlOjprTGluZU1hc2ssIDApOworKyAgRENIRUNLX0VRKHNpemUgJiBDYWNoZVBhZ2U6 OmtMaW5lTWFzaywgMCk7CisrICB2b2lkKiBwYWdlID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o c3RhcnQgJiAofkNhY2hlUGFnZTo6a1BhZ2VNYXNrKSk7CisrICBpbnQgb2Zmc2V0ID0gKHN0YXJ0 ICYgQ2FjaGVQYWdlOjprUGFnZU1hc2spOworKyAgQ2FjaGVQYWdlKiBjYWNoZV9wYWdlID0gR2V0 Q2FjaGVQYWdlKGlfY2FjaGUsIHBhZ2UpOworKyAgY2hhciogdmFsaWRfYnl0ZW1hcCA9IGNhY2hl X3BhZ2UtPlZhbGlkaXR5Qnl0ZShvZmZzZXQpOworKyAgbWVtc2V0KHZhbGlkX2J5dGVtYXAsIENh Y2hlUGFnZTo6TElORV9JTlZBTElELCBzaXplID4+IENhY2hlUGFnZTo6a0xpbmVTaGlmdCk7Cisr fQorKworK3ZvaWQgU2ltdWxhdG9yOjpDaGVja0lDYWNoZShiYXNlOjpDdXN0b21NYXRjaGVySGFz aE1hcCogaV9jYWNoZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdHJ1Y3Rpb24q IGluc3RyKSB7CisrICBpbnQ2NF90IGFkZHJlc3MgPSByZWludGVycHJldF9jYXN0PGludDY0X3Q+ KGluc3RyKTsKKysgIHZvaWQqIHBhZ2UgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihhZGRyZXNz ICYgKH5DYWNoZVBhZ2U6OmtQYWdlTWFzaykpOworKyAgdm9pZCogbGluZSA9IHJlaW50ZXJwcmV0 X2Nhc3Q8dm9pZCo+KGFkZHJlc3MgJiAofkNhY2hlUGFnZTo6a0xpbmVNYXNrKSk7CisrICBpbnQg b2Zmc2V0ID0gKGFkZHJlc3MgJiBDYWNoZVBhZ2U6OmtQYWdlTWFzayk7CisrICBDYWNoZVBhZ2Uq IGNhY2hlX3BhZ2UgPSBHZXRDYWNoZVBhZ2UoaV9jYWNoZSwgcGFnZSk7CisrICBjaGFyKiBjYWNo ZV92YWxpZF9ieXRlID0gY2FjaGVfcGFnZS0+VmFsaWRpdHlCeXRlKG9mZnNldCk7CisrICBib29s IGNhY2hlX2hpdCA9ICgqY2FjaGVfdmFsaWRfYnl0ZSA9PSBDYWNoZVBhZ2U6OkxJTkVfVkFMSUQp OworKyAgY2hhciogY2FjaGVkX2xpbmUgPSBjYWNoZV9wYWdlLT5DYWNoZWREYXRhKG9mZnNldCAm IH5DYWNoZVBhZ2U6OmtMaW5lTWFzayk7CisrICBpZiAoY2FjaGVfaGl0KSB7CisrICAgIC8vIENo ZWNrIHRoYXQgdGhlIGRhdGEgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBJ LWNhY2hlLgorKyAgICBDSEVDS19FUSgwLCBtZW1jbXAocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o aW5zdHIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfcGFnZS0+Q2FjaGVkRGF0YShv ZmZzZXQpLCBrSW5zdHJTaXplKSk7CisrICB9IGVsc2UgeworKyAgICAvLyBDYWNoZSBtaXNzLiAg TG9hZCBtZW1vcnkgaW50byB0aGUgY2FjaGUuCisrICAgIG1lbWNweShjYWNoZWRfbGluZSwgbGlu ZSwgQ2FjaGVQYWdlOjprTGluZUxlbmd0aCk7CisrICAgICpjYWNoZV92YWxpZF9ieXRlID0gQ2Fj aGVQYWdlOjpMSU5FX1ZBTElEOworKyAgfQorK30KKysKKytTaW11bGF0b3I6OlNpbXVsYXRvcihJ c29sYXRlKiBpc29sYXRlKSA6IGlzb2xhdGVfKGlzb2xhdGUpIHsKKysgIC8vIFNldCB1cCBzaW11 bGF0b3Igc3VwcG9ydCBmaXJzdC4gU29tZSBvZiB0aGlzIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0 bworKyAgLy8gc2V0dXAgdGhlIGFyY2hpdGVjdHVyZSBzdGF0ZS4KKysgIHN0YWNrX3NpemVfID0g RkxBR19zaW1fc3RhY2tfc2l6ZSAqIEtCOworKyAgc3RhY2tfID0gcmVpbnRlcnByZXRfY2FzdDxj aGFyKj4obWFsbG9jKHN0YWNrX3NpemVfKSk7CisrICBwY19tb2RpZmllZF8gPSBmYWxzZTsKKysg IGljb3VudF8gPSAwOworKyAgYnJlYWtfY291bnRfID0gMDsKKysgIC8vIFJlc2V0IGRlYnVnIGhl bHBlcnMuCisrICBicmVha3BvaW50c18uY2xlYXIoKTsKKysgIC8vIFRPRE86ICduZXh0JyBjb21t YW5kCisrICAvL2JyZWFrX29uX25leHRfID0gZmFsc2U7CisrCisrICAvLyBTZXQgdXAgYXJjaGl0 ZWN0dXJlIHN0YXRlLgorKyAgLy8gQWxsIHJlZ2lzdGVycyBhcmUgaW5pdGlhbGl6ZWQgdG8gemVy byB0byBzdGFydCB3aXRoLgorKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBrTnVtU2ltdVJlZ2lzdGVy czsgaSsrKSB7CisrICAgIHJlZ2lzdGVyc19baV0gPSAwOworKyAgfQorKworKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBrTnVtRlBVUmVnaXN0ZXJzOyBpKyspIHsKKysgICAgRlBVcmVnaXN0ZXJzX1tp XSA9IDA7CisrICB9CisrCisrICBGQ1NSXyA9IDA7CisrCisrICAvLyBUaGUgc3AgaXMgaW5pdGlh bGl6ZWQgdG8gcG9pbnQgdG8gdGhlIGJvdHRvbSAoaGlnaCBhZGRyZXNzKSBvZiB0aGUKKysgIC8v IGFsbG9jYXRlZCBzdGFjayBhcmVhLiBUbyBiZSBzYWZlIGluIHBvdGVudGlhbCBzdGFjayB1bmRl cmZsb3dzIHdlIGxlYXZlCisrICAvLyBzb21lIGJ1ZmZlciBiZWxvdy4KKysgIHJlZ2lzdGVyc19b c3BdID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90PihzdGFja18pICsgc3RhY2tfc2l6ZV8gLSA2 NDsKKysgIC8vIFRoZSByYSBhbmQgcGMgYXJlIGluaXRpYWxpemVkIHRvIGEga25vd24gYmFkIHZh bHVlIHRoYXQgd2lsbCBjYXVzZSBhbgorKyAgLy8gYWNjZXNzIHZpb2xhdGlvbiBpZiB0aGUgc2lt dWxhdG9yIGV2ZXIgdHJpZXMgdG8gZXhlY3V0ZSBpdC4KKysgIHJlZ2lzdGVyc19bcGNdID0gYmFk X3JhOworKyAgcmVnaXN0ZXJzX1tyYV0gPSBiYWRfcmE7CisrCisrICBsYXN0X2RlYnVnZ2VyX2lu cHV0XyA9IG51bGxwdHI7CisrfQorKworK1NpbXVsYXRvcjo6flNpbXVsYXRvcigpIHsKKysgIEds b2JhbE1vbml0b3I6OkdldCgpLT5SZW1vdmVMaW5rZWRBZGRyZXNzKCZnbG9iYWxfbW9uaXRvcl90 aHJlYWRfKTsKKysgIGZyZWUoc3RhY2tfKTsKKyt9CisrCisrLy8gR2V0IHRoZSBhY3RpdmUgU2lt dWxhdG9yIGZvciB0aGUgY3VycmVudCB0aHJlYWQuCisrU2ltdWxhdG9yKiBTaW11bGF0b3I6OmN1 cnJlbnQoSXNvbGF0ZSogaXNvbGF0ZSkgeworKyAgdjg6OmludGVybmFsOjpJc29sYXRlOjpQZXJJ c29sYXRlVGhyZWFkRGF0YSogaXNvbGF0ZV9kYXRhID0KKysgICAgICBpc29sYXRlLT5GaW5kT3JB bGxvY2F0ZVBlclRocmVhZERhdGFGb3JUaGlzVGhyZWFkKCk7CisrICBEQ0hFQ0tfTk9UX05VTEwo aXNvbGF0ZV9kYXRhKTsKKysKKysgIFNpbXVsYXRvciogc2ltID0gaXNvbGF0ZV9kYXRhLT5zaW11 bGF0b3IoKTsKKysgIGlmIChzaW0gPT0gbnVsbHB0cikgeworKyAgICAvLyBUT0RPKDE0Nik6IGRl bGV0ZSB0aGUgc2ltdWxhdG9yIG9iamVjdCB3aGVuIGEgdGhyZWFkL2lzb2xhdGUgZ29lcyBhd2F5 LgorKyAgICBzaW0gPSBuZXcgU2ltdWxhdG9yKGlzb2xhdGUpOworKyAgICBpc29sYXRlX2RhdGEt PnNldF9zaW11bGF0b3Ioc2ltKTsKKysgIH0KKysgIHJldHVybiBzaW07CisrfQorKworKy8vIFNl dHMgdGhlIHJlZ2lzdGVyIGluIHRoZSBhcmNoaXRlY3R1cmUgc3RhdGUuIEl0IHdpbGwgYWxzbyBk ZWFsIHdpdGgKKysvLyB1cGRhdGluZyBTaW11bGF0b3IgaW50ZXJuYWwgc3RhdGUgZm9yIHNwZWNp YWwgcmVnaXN0ZXJzIHN1Y2ggYXMgUEMuCisrdm9pZCBTaW11bGF0b3I6OnNldF9yZWdpc3Rlcihp bnQgcmVnLCBpbnQ2NF90IHZhbHVlKSB7CisrICBEQ0hFQ0soKHJlZyA+PSAwKSAmJiAocmVnIDwg a051bVNpbXVSZWdpc3RlcnMpKTsKKysgIGlmIChyZWcgPT0gcGMpIHsKKysgICAgcGNfbW9kaWZp ZWRfID0gdHJ1ZTsKKysgIH0KKysKKysgIC8vIFplcm8gcmVnaXN0ZXIgYWx3YXlzIGhvbGRzIDAu CisrICByZWdpc3RlcnNfW3JlZ10gPSAocmVnID09IDApID8gMCA6IHZhbHVlOworK30KKysKKyt2 b2lkIFNpbXVsYXRvcjo6c2V0X2R3X3JlZ2lzdGVyKGludCByZWcsIGNvbnN0IGludCogZGJsKSB7 CisrICBEQ0hFQ0soKHJlZyA+PSAwKSAmJiAocmVnIDwga051bVNpbXVSZWdpc3RlcnMpKTsKKysg IHJlZ2lzdGVyc19bcmVnXSA9IGRibFsxXTsKKysgIHJlZ2lzdGVyc19bcmVnXSA9IHJlZ2lzdGVy c19bcmVnXSA8PCAzMjsKKysgIHJlZ2lzdGVyc19bcmVnXSArPSBkYmxbMF07CisrfQorKworK3Zv aWQgU2ltdWxhdG9yOjpzZXRfZnB1X3JlZ2lzdGVyKGludCBmcHVyZWcsIGludDY0X3QgdmFsdWUp IHsKKysgIERDSEVDSygoZnB1cmVnID49IDApICYmIChmcHVyZWcgPCBrTnVtRlBVUmVnaXN0ZXJz KSk7CisrICBGUFVyZWdpc3RlcnNfW2ZwdXJlZ10gPSB2YWx1ZTsKKyt9CisrCisrdm9pZCBTaW11 bGF0b3I6OnNldF9mcHVfcmVnaXN0ZXJfd29yZChpbnQgZnB1cmVnLCBpbnQzMl90IHZhbHVlKSB7 CisrICAvLyBTZXQgT05MWSBsb3dlciAzMi1iaXRzLCBsZWF2aW5nIHVwcGVyIGJpdHMgdW50b3Vj aGVkLgorKyAgRENIRUNLKChmcHVyZWcgPj0gMCkgJiYgKGZwdXJlZyA8IGtOdW1GUFVSZWdpc3Rl cnMpKTsKKysgIGludDMyX3QqIHB3b3JkOworKyAgaWYgKGtBcmNoRW5kaWFuID09IGtMaXR0bGUp IHsKKysgICAgcHdvcmQgPSByZWludGVycHJldF9jYXN0PGludDMyX3QqPigmRlBVcmVnaXN0ZXJz X1tmcHVyZWddKTsKKysgIH0gZWxzZSB7CisrICAgIHB3b3JkID0gcmVpbnRlcnByZXRfY2FzdDxp bnQzMl90Kj4oJkZQVXJlZ2lzdGVyc19bZnB1cmVnXSkgKyAxOworKyAgfQorKyAgKnB3b3JkID0g dmFsdWU7CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpzZXRfZnB1X3JlZ2lzdGVyX2hpX3dvcmQo aW50IGZwdXJlZywgaW50MzJfdCB2YWx1ZSkgeworKyAgLy8gU2V0IE9OTFkgdXBwZXIgMzItYml0 cywgbGVhdmluZyBsb3dlciBiaXRzIHVudG91Y2hlZC4KKysgIERDSEVDSygoZnB1cmVnID49IDAp ICYmIChmcHVyZWcgPCBrTnVtRlBVUmVnaXN0ZXJzKSk7CisrICBpbnQzMl90KiBwaGl3b3JkOwor KyAgaWYgKGtBcmNoRW5kaWFuID09IGtMaXR0bGUpIHsKKysgICAgcGhpd29yZCA9IChyZWludGVy cHJldF9jYXN0PGludDMyX3QqPigmRlBVcmVnaXN0ZXJzX1tmcHVyZWddKSkgKyAxOworKyAgfSBl bHNlIHsKKysgICAgcGhpd29yZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCo+KCZGUFVyZWdp c3RlcnNfW2ZwdXJlZ10pOworKyAgfQorKyAgKnBoaXdvcmQgPSB2YWx1ZTsKKyt9CisrCisrdm9p ZCBTaW11bGF0b3I6OnNldF9mcHVfcmVnaXN0ZXJfZmxvYXQoaW50IGZwdXJlZywgZmxvYXQgdmFs dWUpIHsKKysgIERDSEVDSygoZnB1cmVnID49IDApICYmIChmcHVyZWcgPCBrTnVtRlBVUmVnaXN0 ZXJzKSk7CisrICBGUFVyZWdpc3RlcnNfW2ZwdXJlZ10gPSBib3hfZmxvYXQodmFsdWUpOworK30K KysKKyt2b2lkIFNpbXVsYXRvcjo6c2V0X2ZwdV9yZWdpc3Rlcl9kb3VibGUoaW50IGZwdXJlZywg ZG91YmxlIHZhbHVlKSB7CisrICBEQ0hFQ0soKGZwdXJlZyA+PSAwKSAmJiAoZnB1cmVnIDwga051 bUZQVVJlZ2lzdGVycykpOworKyAgKmJpdF9jYXN0PGRvdWJsZSo+KCZGUFVyZWdpc3RlcnNfW2Zw dXJlZ10pID0gdmFsdWU7CisrfQorKworKy8vIEdldCB0aGUgcmVnaXN0ZXIgZnJvbSB0aGUgYXJj aGl0ZWN0dXJlIHN0YXRlLiBUaGlzIGZ1bmN0aW9uIGRvZXMgaGFuZGxlCisrLy8gdGhlIHNwZWNp YWwgY2FzZSBvZiBhY2Nlc3NpbmcgdGhlIFBDIHJlZ2lzdGVyLgorK2ludDY0X3QgU2ltdWxhdG9y OjpnZXRfcmVnaXN0ZXIoaW50IHJlZykgY29uc3QgeworKyAgRENIRUNLKChyZWcgPj0gMCkgJiYg KHJlZyA8IGtOdW1TaW11UmVnaXN0ZXJzKSk7CisrICBpZiAocmVnID09IDApCisrICAgIHJldHVy biAwOworKyAgZWxzZQorKyAgICByZXR1cm4gcmVnaXN0ZXJzX1tyZWddICsgKChyZWcgPT0gcGMp ID8gSW5zdHJ1Y3Rpb246OmtQQ1JlYWRPZmZzZXQgOiAwKTsKKyt9CisrCisrZG91YmxlIFNpbXVs YXRvcjo6Z2V0X2RvdWJsZV9mcm9tX3JlZ2lzdGVyX3BhaXIoaW50IHJlZykgeworKyAgLy8gVE9E TyhwbGluZCk6IGJhZCBBQkkgc3R1ZmYsIHJlZmFjdG9yIG9yIHJlbW92ZS4KKysgIERDSEVDSygo cmVnID49IDApICYmIChyZWcgPCBrTnVtU2ltdVJlZ2lzdGVycykgJiYgKChyZWcgJSAyKSA9PSAw KSk7CisrCisrICBkb3VibGUgZG1fdmFsID0gMC4wOworKyAgLy8gUmVhZCB0aGUgYml0cyBmcm9t IHRoZSB1bnNpZ25lZCBpbnRlZ2VyIHJlZ2lzdGVyX1tdIGFycmF5CisrICAvLyBpbnRvIHRoZSBk b3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIGFuZCByZXR1cm4gaXQuCisrICBj aGFyIGJ1ZmZlcltzaXplb2YocmVnaXN0ZXJzX1swXSldOworKyAgbWVtY3B5KGJ1ZmZlciwgJnJl Z2lzdGVyc19bcmVnXSwgc2l6ZW9mKHJlZ2lzdGVyc19bMF0pKTsKKysgIG1lbWNweSgmZG1fdmFs LCBidWZmZXIsIHNpemVvZihyZWdpc3RlcnNfWzBdKSk7CisrICByZXR1cm4gKGRtX3ZhbCk7Cisr fQorKworK2ludDY0X3QgU2ltdWxhdG9yOjpnZXRfZnB1X3JlZ2lzdGVyKGludCBmcHVyZWcpIGNv bnN0IHsKKysgIERDSEVDSygoZnB1cmVnID49IDApICYmIChmcHVyZWcgPCBrTnVtRlBVUmVnaXN0 ZXJzKSk7CisrICByZXR1cm4gRlBVcmVnaXN0ZXJzX1tmcHVyZWddOworK30KKysKKytpbnQzMl90 IFNpbXVsYXRvcjo6Z2V0X2ZwdV9yZWdpc3Rlcl93b3JkKGludCBmcHVyZWcpIGNvbnN0IHsKKysg IERDSEVDSygoZnB1cmVnID49IDApICYmIChmcHVyZWcgPCBrTnVtRlBVUmVnaXN0ZXJzKSk7Cisr ICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oRlBVcmVnaXN0ZXJzX1tmcHVyZWddICYgMHhG RkZGRkZGRik7CisrfQorKworK2ludDMyX3QgU2ltdWxhdG9yOjpnZXRfZnB1X3JlZ2lzdGVyX3Np Z25lZF93b3JkKGludCBmcHVyZWcpIGNvbnN0IHsKKysgIERDSEVDSygoZnB1cmVnID49IDApICYm IChmcHVyZWcgPCBrTnVtRlBVUmVnaXN0ZXJzKSk7CisrICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50 MzJfdD4oRlBVcmVnaXN0ZXJzX1tmcHVyZWddICYgMHhGRkZGRkZGRik7CisrfQorKworK2ludDMy X3QgU2ltdWxhdG9yOjpnZXRfZnB1X3JlZ2lzdGVyX2hpX3dvcmQoaW50IGZwdXJlZykgY29uc3Qg eworKyAgRENIRUNLKChmcHVyZWcgPj0gMCkgJiYgKGZwdXJlZyA8IGtOdW1GUFVSZWdpc3RlcnMp KTsKKysgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PigoRlBVcmVnaXN0ZXJzX1tmcHVyZWdd ID4+IDMyKSAmIDB4RkZGRkZGRkYpOworK30KKysKKytmbG9hdCBTaW11bGF0b3I6OmdldF9mcHVf cmVnaXN0ZXJfZmxvYXQoaW50IGZwdXJlZykgY29uc3QgeworKyAgRENIRUNLKChmcHVyZWcgPj0g MCkgJiYgKGZwdXJlZyA8IGtOdW1GUFVSZWdpc3RlcnMpKTsKKysgIGlmICghaXNfYm94ZWRfZmxv YXQoRlBVcmVnaXN0ZXJzX1tmcHVyZWddKSkgeworKyAgICByZXR1cm4gc3RkOjpudW1lcmljX2xp bWl0czxmbG9hdD46OnF1aWV0X05hTigpOworKyAgfQorKyAgcmV0dXJuICpiaXRfY2FzdDxmbG9h dCo+KGNvbnN0X2Nhc3Q8aW50NjRfdCo+KCZGUFVyZWdpc3RlcnNfW2ZwdXJlZ10pKTsKKyt9Cisr CisrZG91YmxlIFNpbXVsYXRvcjo6Z2V0X2ZwdV9yZWdpc3Rlcl9kb3VibGUoaW50IGZwdXJlZykg Y29uc3QgeworKyAgRENIRUNLKChmcHVyZWcgPj0gMCkgJiYgKGZwdXJlZyA8IGtOdW1GUFVSZWdp c3RlcnMpKTsKKysgIHJldHVybiAqYml0X2Nhc3Q8ZG91YmxlKj4oJkZQVXJlZ2lzdGVyc19bZnB1 cmVnXSk7CisrfQorKworKy8vIFJ1bnRpbWUgRlAgcm91dGluZXMgdGFrZSB1cCB0byB0d28gZG91 YmxlIGFyZ3VtZW50cyBhbmQgemVybworKy8vIG9yIG9uZSBpbnRlZ2VyIGFyZ3VtZW50cy4gQWxs IGFyZSBjb25zdHJ1Y3RlZCBoZXJlLAorKy8vIGZyb20gZmEwLCBmYTEsIGFuZCBhMC4KKyt2b2lk IFNpbXVsYXRvcjo6R2V0RnBBcmdzKGRvdWJsZSogeCwgZG91YmxlKiB5LCBpbnQzMl90KiB6KSB7 CisrICAqeCA9IGdldF9mcHVfcmVnaXN0ZXJfZG91YmxlKGZhMCk7CisrICAqeSA9IGdldF9mcHVf cmVnaXN0ZXJfZG91YmxlKGZhMSk7CisrICAqeiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGdldF9y ZWdpc3RlcihhMCkpOworK30KKysKKysvLyBUaGUgcmV0dXJuIHZhbHVlIGlzIGluIGZhMC4KKyt2 b2lkIFNpbXVsYXRvcjo6U2V0RnBSZXN1bHQoY29uc3QgZG91YmxlJiByZXN1bHQpIHsKKysgIHNl dF9mcHVfcmVnaXN0ZXJfZG91YmxlKGZhMCwgcmVzdWx0KTsKKyt9CisrCisrLy8gaGVscGVyIGZ1 bmN0aW9ucyB0byByZWFkL3dyaXRlL3NldC9jbGVhciBDUkMgdmFsdWVzL2JpdHMKKyt1aW50MzJf dCBTaW11bGF0b3I6OnJlYWRfY3NyX3ZhbHVlKHVpbnQzMl90IGNzcikgeworKyAgc3dpdGNoIChj c3IpIHsKKysgICAgY2FzZSBjc3JfZmZsYWdzOiAgLy8gRmxvYXRpbmctUG9pbnQgQWNjcnVlZCBF eGNlcHRpb25zIChSVykKKysgICAgICByZXR1cm4gKEZDU1JfICYga0Zjc3JGbGFnc01hc2spOwor KyAgICBjYXNlIGNzcl9mcm06ICAvLyBGbG9hdGluZy1Qb2ludCBEeW5hbWljIFJvdW5kaW5nIE1v ZGUgKFJXKQorKyAgICAgIHJldHVybiAoRkNTUl8gJiBrRmNzckZybU1hc2spID4+IGtGY3NyRnJt U2hpZnQ7CisrICAgIGNhc2UgY3NyX2Zjc3I6ICAvLyBGbG9hdGluZy1Qb2ludCBDb250cm9sIGFu ZCBTdGF0dXMgUmVnaXN0ZXIgKFJXKQorKyAgICAgIHJldHVybiAoRkNTUl8gJiBrRmNzck1hc2sp OworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOSU1QTEVNRU5URUQoKTsKKysgIH0KKyt9CisrCisr dWludDMyX3QgU2ltdWxhdG9yOjpnZXRfZHluYW1pY19yb3VuZGluZ19tb2RlKCkgeworKyAgcmV0 dXJuIHJlYWRfY3NyX3ZhbHVlKGNzcl9mcm0pOworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6d3Jp dGVfY3NyX3ZhbHVlKHVpbnQzMl90IGNzciwgdWludDY0X3QgdmFsKSB7CisrICB1aW50MzJfdCB2 YWx1ZSA9ICh1aW50MzJfdCl2YWw7CisrICBzd2l0Y2ggKGNzcikgeworKyAgICBjYXNlIGNzcl9m ZmxhZ3M6ICAvLyBGbG9hdGluZy1Qb2ludCBBY2NydWVkIEV4Y2VwdGlvbnMgKFJXKQorKyAgICAg IERDSEVDSyh2YWx1ZSA8PSAoKDEgPDwga0Zjc3JGbGFnc0JpdHMpIC0gMSkpOworKyAgICAgIEZD U1JfID0gKEZDU1JfICYgKH5rRmNzckZsYWdzTWFzaykpIHwgdmFsdWU7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2UgY3NyX2ZybTogIC8vIEZsb2F0aW5nLVBvaW50IER5bmFtaWMgUm91bmRpbmcg TW9kZSAoUlcpCisrICAgICAgRENIRUNLKHZhbHVlIDw9ICgoMSA8PCBrRmNzckZybUJpdHMpIC0g MSkpOworKyAgICAgIEZDU1JfID0gKEZDU1JfICYgKH5rRmNzckZybU1hc2spKSB8ICh2YWx1ZSA8 PCBrRmNzckZybVNoaWZ0KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBjc3JfZmNzcjogIC8v IEZsb2F0aW5nLVBvaW50IENvbnRyb2wgYW5kIFN0YXR1cyBSZWdpc3RlciAoUlcpCisrICAgICAg RENIRUNLKHZhbHVlIDw9ICgoMSA8PCBrRmNzckJpdHMpIC0gMSkpOworKyAgICAgIEZDU1JfID0g KEZDU1JfICYgKH5rRmNzck1hc2spKSB8IHZhbHVlOworKyAgICAgIGJyZWFrOworKyAgICBkZWZh dWx0OgorKyAgICAgIFVOSU1QTEVNRU5URUQoKTsKKysgIH0KKyt9CisrCisrdm9pZCBTaW11bGF0 b3I6OnNldF9jc3JfYml0cyh1aW50MzJfdCBjc3IsIHVpbnQ2NF90IHZhbCkgeworKyAgdWludDMy X3QgdmFsdWUgPSAodWludDMyX3QpdmFsOworKyAgc3dpdGNoIChjc3IpIHsKKysgICAgY2FzZSBj c3JfZmZsYWdzOiAgLy8gRmxvYXRpbmctUG9pbnQgQWNjcnVlZCBFeGNlcHRpb25zIChSVykKKysg ICAgICBEQ0hFQ0sodmFsdWUgPD0gKCgxIDw8IGtGY3NyRmxhZ3NCaXRzKSAtIDEpKTsKKysgICAg ICBGQ1NSXyA9IEZDU1JfIHwgdmFsdWU7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgY3NyX2Zy bTogIC8vIEZsb2F0aW5nLVBvaW50IER5bmFtaWMgUm91bmRpbmcgTW9kZSAoUlcpCisrICAgICAg RENIRUNLKHZhbHVlIDw9ICgoMSA8PCBrRmNzckZybUJpdHMpIC0gMSkpOworKyAgICAgIEZDU1Jf ID0gRkNTUl8gfCAodmFsdWUgPDwga0Zjc3JGcm1TaGlmdCk7CisrICAgICAgYnJlYWs7CisrICAg IGNhc2UgY3NyX2Zjc3I6ICAvLyBGbG9hdGluZy1Qb2ludCBDb250cm9sIGFuZCBTdGF0dXMgUmVn aXN0ZXIgKFJXKQorKyAgICAgIERDSEVDSyh2YWx1ZSA8PSAoKDEgPDwga0Zjc3JCaXRzKSAtIDEp KTsKKysgICAgICBGQ1NSXyA9IEZDU1JfIHwgdmFsdWU7CisrICAgICAgYnJlYWs7CisrICAgIGRl ZmF1bHQ6CisrICAgICAgVU5JTVBMRU1FTlRFRCgpOworKyAgfQorK30KKysKKyt2b2lkIFNpbXVs YXRvcjo6Y2xlYXJfY3NyX2JpdHModWludDMyX3QgY3NyLCB1aW50NjRfdCB2YWwpIHsKKysgIHVp bnQzMl90IHZhbHVlID0gKHVpbnQzMl90KXZhbDsKKysgIHN3aXRjaCAoY3NyKSB7CisrICAgIGNh c2UgY3NyX2ZmbGFnczogIC8vIEZsb2F0aW5nLVBvaW50IEFjY3J1ZWQgRXhjZXB0aW9ucyAoUlcp CisrICAgICAgRENIRUNLKHZhbHVlIDw9ICgoMSA8PCBrRmNzckZsYWdzQml0cykgLSAxKSk7Cisr ICAgICAgRkNTUl8gPSBGQ1NSXyAmICh+dmFsdWUpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IGNzcl9mcm06ICAvLyBGbG9hdGluZy1Qb2ludCBEeW5hbWljIFJvdW5kaW5nIE1vZGUgKFJXKQor KyAgICAgIERDSEVDSyh2YWx1ZSA8PSAoKDEgPDwga0Zjc3JGcm1CaXRzKSAtIDEpKTsKKysgICAg ICBGQ1NSXyA9IEZDU1JfICYgKH4odmFsdWUgPDwga0Zjc3JGcm1TaGlmdCkpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGNzcl9mY3NyOiAgLy8gRmxvYXRpbmctUG9pbnQgQ29udHJvbCBhbmQg U3RhdHVzIFJlZ2lzdGVyIChSVykKKysgICAgICBEQ0hFQ0sodmFsdWUgPD0gKCgxIDw8IGtGY3Ny Qml0cykgLSAxKSk7CisrICAgICAgRkNTUl8gPSBGQ1NSXyAmICh+dmFsdWUpOworKyAgICAgIGJy ZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOSU1QTEVNRU5URUQoKTsKKysgIH0KKyt9Cisr CisrYm9vbCBTaW11bGF0b3I6OnRlc3RfZmZsYWdzX2JpdHModWludDMyX3QgbWFzaykgeworKyAg cmV0dXJuIChGQ1NSXyAmIGtGY3NyRmxhZ3NNYXNrICYgbWFzaykgIT0gMDsKKyt9CisrCisrdGVt cGxhdGUgPHR5cGVuYW1lIFQ+CisrVCBTaW11bGF0b3I6OkZNYXhNaW5IZWxwZXIoVCBhLCBUIGIs IE1heE1pbktpbmQga2luZCkgeworKyAgLy8gc2V0IGludmFsaWQgYml0IGZvciBzaWduYWxpbmcg bmFuCisrICBpZiAoKGEgPT0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6c2lnbmFsaW5nX05hTigp KSB8fAorKyAgICAgIChiID09IHN0ZDo6bnVtZXJpY19saW1pdHM8VD46OnNpZ25hbGluZ19OYU4o KSkpIHsKKysgICAgLy8gRklYTUU6IE5WIC0+IGtJbnZhbGlkT3BlcmF0aW9uCisrICAgIHNldF9j c3JfYml0cyhjc3JfZmZsYWdzLCBrSW52YWxpZE9wZXJhdGlvbik7CisrICB9CisrCisrICBUIHJl c3VsdCA9IDA7CisrICBpZiAoc3RkOjppc25hbihhKSAmJiBzdGQ6OmlzbmFuKGIpKSB7CisrICAg IHJlc3VsdCA9IGE7CisrICB9IGVsc2UgaWYgKHN0ZDo6aXNuYW4oYSkpIHsKKysgICAgcmVzdWx0 ID0gYjsKKysgIH0gZWxzZSBpZiAoc3RkOjppc25hbihiKSkgeworKyAgICByZXN1bHQgPSBhOwor KyAgfSBlbHNlIGlmIChiID09IGEpIHsgIC8vIEhhbmRsZSAtMC4wID09IDAuMCBjYXNlLgorKyAg ICBpZiAoa2luZCA9PSBNYXhNaW5LaW5kOjprTWF4KSB7CisrICAgICAgcmVzdWx0ID0gc3RkOjpz aWduYml0KGIpID8gYSA6IGI7CisrICAgIH0gZWxzZSB7CisrICAgICAgcmVzdWx0ID0gc3RkOjpz aWduYml0KGIpID8gYiA6IGE7CisrICAgIH0KKysgIH0gZWxzZSB7CisrICAgIHJlc3VsdCA9IChr aW5kID09IE1heE1pbktpbmQ6OmtNYXgpID8gZm1heChhLCBiKSA6IGZtaW4oYSwgYik7CisrICB9 CisrCisrICByZXR1cm4gcmVzdWx0OworK30KKysKKysvLyBSYXcgYWNjZXNzIHRvIHRoZSBQQyBy ZWdpc3Rlci4KKyt2b2lkIFNpbXVsYXRvcjo6c2V0X3BjKGludDY0X3QgdmFsdWUpIHsKKysgIHBj X21vZGlmaWVkXyA9IHRydWU7CisrICByZWdpc3RlcnNfW3BjXSA9IHZhbHVlOworKyAgRENIRUNL KGhhc19iYWRfcGMoKSB8fCAoKHZhbHVlICUga0luc3RyU2l6ZSkgPT0gMCkpOworK30KKysKKyti b29sIFNpbXVsYXRvcjo6aGFzX2JhZF9wYygpIGNvbnN0IHsKKysgIHJldHVybiAoKHJlZ2lzdGVy c19bcGNdID09IGJhZF9yYSkgfHwgKHJlZ2lzdGVyc19bcGNdID09IGVuZF9zaW1fcGMpKTsKKyt9 CisrCisrLy8gUmF3IGFjY2VzcyB0byB0aGUgUEMgcmVnaXN0ZXIgd2l0aG91dCB0aGUgc3BlY2lh bCBhZGp1c3RtZW50IHdoZW4gcmVhZGluZy4KKytpbnQ2NF90IFNpbXVsYXRvcjo6Z2V0X3BjKCkg Y29uc3QgeyByZXR1cm4gcmVnaXN0ZXJzX1twY107IH0KKysKKysvLyBUaGUgUklTQy1WIHNwZWMg bGVhdmVzIGl0IG9wZW4gdG8gdGhlIGltcGxlbWVudGF0aW9uIG9uIGhvdyB0byBoYW5kbGUKKysv LyB1bmFsaWduZWQgcmVhZHMgYW5kIHdyaXRlcy4gRm9yIG5vdywgd2Ugc2ltcGx5IGRpc2FsbG93 IHVuYWxpZ25lZCByZWFkcyBidXQKKysvLyBhdCBzb21lIHBvaW50LCB3ZSBtYXkgd2FudCB0byBp bXBsZW1lbnQgc29tZSBvdGhlciBiZWhhdmlvci4KKysKKysvLyBUT0RPKHBsaW5kKTogcmVmYWN0 b3IgdGhpcyBtZXNzeSBkZWJ1ZyBjb2RlIHdoZW4gd2UgZG8gdW5hbGlnbmVkIGFjY2Vzcy4KKyt2 b2lkIFNpbXVsYXRvcjo6RGllT3JEZWJ1ZygpIHsKKysgIGlmICgoMSkpIHsgIC8vIEZsYWcgZm9y IHRoaXMgd2FzIHJlbW92ZWQuCisrICAgIFJpc2N2RGVidWdnZXIgZGJnKHRoaXMpOworKyAgICBk YmcuRGVidWcoKTsKKysgIH0gZWxzZSB7CisrICAgIGJhc2U6Ok9TOjpBYm9ydCgpOworKyAgfQor K30KKysKKyt2b2lkIFNpbXVsYXRvcjo6VHJhY2VSZWdXcihpbnQ2NF90IHZhbHVlLCBUcmFjZVR5 cGUgdCkgeworKyAgaWYgKDo6djg6OmludGVybmFsOjpGTEFHX3RyYWNlX3NpbSkgeworKyAgICB1 bmlvbiB7CisrICAgICAgaW50NjRfdCBmbXRfaW50NjQ7CisrICAgICAgaW50MzJfdCBmbXRfaW50 MzJbMl07CisrICAgICAgZmxvYXQgZm10X2Zsb2F0WzJdOworKyAgICAgIGRvdWJsZSBmbXRfZG91 YmxlOworKyAgICB9IHY7CisrICAgIHYuZm10X2ludDY0ID0gdmFsdWU7CisrCisrICAgIHN3aXRj aCAodCkgeworKyAgICAgIGNhc2UgV09SRDoKKysgICAgICAgIFNOUHJpbnRGKHRyYWNlX2J1Zl8s CisrICAgICAgICAgICAgICAgICAiJTAxNiIgUFJJeDY0ICIgICAgKCUiIFBSSWQ2NCAiKSAgICBp bnQzMjolIiBQUklkMzIKKysgICAgICAgICAgICAgICAgICIgdWludDMyOiUiIFBSSXUzMiwKKysg ICAgICAgICAgICAgICAgIHYuZm10X2ludDY0LCBpY291bnRfLCB2LmZtdF9pbnQzMlswXSwgdi5m bXRfaW50MzJbMF0pOworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBEV09SRDoKKysgICAg ICAgIFNOUHJpbnRGKHRyYWNlX2J1Zl8sCisrICAgICAgICAgICAgICAgICAiJTAxNiIgUFJJeDY0 ICIgICAgKCUiIFBSSWQ2NCAiKSAgICBpbnQ2NDolIiBQUklkNjQKKysgICAgICAgICAgICAgICAg ICIgdWludDY0OiUiIFBSSXU2NCwKKysgICAgICAgICAgICAgICAgIHZhbHVlLCBpY291bnRfLCB2 YWx1ZSwgdmFsdWUpOworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBGTE9BVDoKKysgICAg ICAgIFNOUHJpbnRGKHRyYWNlX2J1Zl8sICIlMDE2IiBQUkl4NjQgIiAgICAoJSIgUFJJZDY0ICIp ICAgIGZsdDolZSIsCisrICAgICAgICAgICAgICAgICB2LmZtdF9pbnQ2NCwgaWNvdW50Xywgdi5m bXRfZmxvYXRbMF0pOworKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBET1VCTEU6CisrICAg ICAgICBTTlByaW50Rih0cmFjZV9idWZfLCAiJTAxNiIgUFJJeDY0ICIgICAgKCUiIFBSSWQ2NCAi KSAgICBkYmw6JWUiLAorKyAgICAgICAgICAgICAgICAgdi5mbXRfaW50NjQsIGljb3VudF8sIHYu Zm10X2RvdWJsZSk7CisrICAgICAgICBicmVhazsKKysgICAgICBkZWZhdWx0OgorKyAgICAgICAg VU5SRUFDSEFCTEUoKTsKKysgICAgfQorKyAgfQorK30KKysKKysvLyBUT0RPKHBsaW5kKTogY29u c2lkZXIgbWFraW5nIGljb3VudF8gcHJpbnRpbmcgYSBmbGFnIG9wdGlvbi4KKyt0ZW1wbGF0ZSA8 dHlwZW5hbWUgVD4KKyt2b2lkIFNpbXVsYXRvcjo6VHJhY2VNZW1SZChpbnQ2NF90IGFkZHIsIFQg dmFsdWUsIGludDY0X3QgcmVnX3ZhbHVlKSB7CisrICBpZiAoOjp2ODo6aW50ZXJuYWw6OkZMQUdf dHJhY2Vfc2ltKSB7CisrICAgIGlmIChzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSkgeworKyAg ICAgIHN3aXRjaCAoc2l6ZW9mKFQpKSB7CisrICAgICAgICBjYXNlIDE6CisrICAgICAgICAgIFNO UHJpbnRGKHRyYWNlX2J1Zl8sCisrICAgICAgICAgICAgICAgICAgICIlMDE2IiBQUkl4NjQgIiAg ICAoJSIgUFJJZDY0ICIpICAgIGludDg6JSIgUFJJZDgKKysgICAgICAgICAgICAgICAgICAgIiB1 aW50ODolIiBQUkl1OCAiIDwtLSBbYWRkcjogJSIgUFJJeDY0ICJdIiwKKysgICAgICAgICAgICAg ICAgICAgcmVnX3ZhbHVlLCBpY291bnRfLCBzdGF0aWNfY2FzdDxpbnQ4X3Q+KHZhbHVlKSwKKysg ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4odmFsdWUpLCBhZGRyKTsKKysg ICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDI6CisrICAgICAgICAgIFNOUHJpbnRGKHRy YWNlX2J1Zl8sCisrICAgICAgICAgICAgICAgICAgICIlMDE2IiBQUkl4NjQgIiAgICAoJSIgUFJJ ZDY0ICIpICAgIGludDE2OiUiIFBSSWQxNgorKyAgICAgICAgICAgICAgICAgICAiIHVpbnQxNjol IiBQUkl1MTYgIiA8LS0gW2FkZHI6ICUiIFBSSXg2NCAiXSIsCisrICAgICAgICAgICAgICAgICAg IHJlZ192YWx1ZSwgaWNvdW50Xywgc3RhdGljX2Nhc3Q8aW50MTZfdD4odmFsdWUpLAorKyAgICAg ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MTZfdD4odmFsdWUpLCBhZGRyKTsKKysgICAg ICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIDQ6CisrICAgICAgICAgIFNOUHJpbnRGKHRyYWNl X2J1Zl8sCisrICAgICAgICAgICAgICAgICAgICIlMDE2IiBQUkl4NjQgIiAgICAoJSIgUFJJZDY0 ICIpICAgIGludDMyOiUiIFBSSWQzMgorKyAgICAgICAgICAgICAgICAgICAiIHVpbnQzMjolIiBQ Ukl1MzIgIiA8LS0gW2FkZHI6ICUiIFBSSXg2NCAiXSIsCisrICAgICAgICAgICAgICAgICAgIHJl Z192YWx1ZSwgaWNvdW50Xywgc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpLAorKyAgICAgICAg ICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUpLCBhZGRyKTsKKysgICAgICAg ICAgYnJlYWs7CisrICAgICAgICBjYXNlIDg6CisrICAgICAgICAgIFNOUHJpbnRGKHRyYWNlX2J1 Zl8sCisrICAgICAgICAgICAgICAgICAgICIlMDE2IiBQUkl4NjQgIiAgICAoJSIgUFJJZDY0ICIp ICAgIGludDY0OiUiIFBSSWQ2NAorKyAgICAgICAgICAgICAgICAgICAiIHVpbnQ2NDolIiBQUkl1 NjQgIiA8LS0gW2FkZHI6ICUiIFBSSXg2NCAiXSIsCisrICAgICAgICAgICAgICAgICAgIHJlZ192 YWx1ZSwgaWNvdW50Xywgc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUpLAorKyAgICAgICAgICAg ICAgICAgICBzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUpLCBhZGRyKTsKKysgICAgICAgICAg YnJlYWs7CisrICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICBVTlJFQUNIQUJMRSgpOworKyAg ICAgIH0KKysgICAgfSBlbHNlIGlmIChzdGQ6OmlzX3NhbWU8ZmxvYXQsIFQ+Ojp2YWx1ZSkgewor KyAgICAgIFNOUHJpbnRGKHRyYWNlX2J1Zl8sCisrICAgICAgICAgICAgICAgIiUwMTYiIFBSSXg2 NCAiICAgICglIiBQUklkNjQgIikgICAgZmx0OiVlIDwtLSBbYWRkcjogJSIgUFJJeDY0CisrICAg ICAgICAgICAgICAgIl0iLAorKyAgICAgICAgICAgICAgIHJlZ192YWx1ZSwgaWNvdW50Xywgc3Rh dGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSwgYWRkcik7CisrICAgIH0gZWxzZSBpZiAoc3RkOjppc19z YW1lPGRvdWJsZSwgVD46OnZhbHVlKSB7CisrICAgICAgU05QcmludEYodHJhY2VfYnVmXywKKysg ICAgICAgICAgICAgICAiJTAxNiIgUFJJeDY0ICIgICAgKCUiIFBSSWQ2NCAiKSAgICBkYmw6JWUg PC0tIFthZGRyOiAlIiBQUkl4NjQKKysgICAgICAgICAgICAgICAiXSIsCisrICAgICAgICAgICAg ICAgcmVnX3ZhbHVlLCBpY291bnRfLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSwgYWRkcik7 CisrICAgIH0gZWxzZSB7CisrICAgICAgVU5SRUFDSEFCTEUoKTsKKysgICAgfQorKyAgfQorK30K KysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyt2b2lkIFNpbXVsYXRvcjo6VHJhY2VNZW1Xcihp bnQ2NF90IGFkZHIsIFQgdmFsdWUpIHsKKysgIGlmICg6OnY4OjppbnRlcm5hbDo6RkxBR190cmFj ZV9zaW0pIHsKKysgICAgc3dpdGNoIChzaXplb2YoVCkpIHsKKysgICAgICBjYXNlIDE6CisrICAg ICAgICBTTlByaW50Rih0cmFjZV9idWZfLAorKyAgICAgICAgICAgICAgICAgIiAgICAgICAgICAg ICAgICAgICAgKCUiIFBSSXU2NCAiKSAgICBpbnQ4OiUiIFBSSWQ4CisrICAgICAgICAgICAgICAg ICAiIHVpbnQ4OiUiIFBSSXU4ICIgLS0+IFthZGRyOiAlIiBQUkl4NjQgIl0iLAorKyAgICAgICAg ICAgICAgICAgaWNvdW50Xywgc3RhdGljX2Nhc3Q8aW50OF90Pih2YWx1ZSksCisrICAgICAgICAg ICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90Pih2YWx1ZSksIGFkZHIpOworKyAgICAgICAgYnJl YWs7CisrICAgICAgY2FzZSAyOgorKyAgICAgICAgU05QcmludEYodHJhY2VfYnVmXywKKysgICAg ICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICglIiBQUkl1NjQgIikgICAgaW50MTY6 JSIgUFJJZDE2CisrICAgICAgICAgICAgICAgICAiIHVpbnQxNjolIiBQUkl1MTYgIiAtLT4gW2Fk ZHI6ICUiIFBSSXg2NCAiXSIsCisrICAgICAgICAgICAgICAgICBpY291bnRfLCBzdGF0aWNfY2Fz dDxpbnQxNl90Pih2YWx1ZSksCisrICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MTZf dD4odmFsdWUpLCBhZGRyKTsKKysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2UgNDoKKysgICAg ICAgIGlmIChzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSkgeworKyAgICAgICAgICBTTlByaW50 Rih0cmFjZV9idWZfLAorKyAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAo JSIgUFJJdTY0ICIpICAgIGludDMyOiUiIFBSSWQzMgorKyAgICAgICAgICAgICAgICAgICAiIHVp bnQzMjolIiBQUkl1MzIgIiAtLT4gW2FkZHI6ICUiIFBSSXg2NCAiXSIsCisrICAgICAgICAgICAg ICAgICAgIGljb3VudF8sIHN0YXRpY19jYXN0PGludDMyX3Q+KHZhbHVlKSwKKysgICAgICAgICAg ICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlKSwgYWRkcik7CisrICAgICAgICB9 IGVsc2UgeworKyAgICAgICAgICBTTlByaW50Rih0cmFjZV9idWZfLAorKyAgICAgICAgICAgICAg ICAgICAiICAgICAgICAgICAgICAgICAgICAoJSIgUFJJdTY0CisrICAgICAgICAgICAgICAgICAg ICIpICAgIGZsdDolZSAtLT4gW2FkZHI6ICUiIFBSSXg2NCAiXSIsCisrICAgICAgICAgICAgICAg ICAgIGljb3VudF8sIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSksIGFkZHIpOworKyAgICAgICAg fQorKyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSA4OgorKyAgICAgICAgaWYgKHN0ZDo6aXNf aW50ZWdyYWw8VD46OnZhbHVlKSB7CisrICAgICAgICAgIFNOUHJpbnRGKHRyYWNlX2J1Zl8sCisr ICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICglIiBQUkl1NjQgIikgICAg aW50NjQ6JSIgUFJJZDY0CisrICAgICAgICAgICAgICAgICAgICIgdWludDY0OiUiIFBSSXU2NCAi IC0tPiBbYWRkcjogJSIgUFJJeDY0ICJdIiwKKysgICAgICAgICAgICAgICAgICAgaWNvdW50Xywg c3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUpLAorKyAgICAgICAgICAgICAgICAgICBzdGF0aWNf Y2FzdDx1aW50NjRfdD4odmFsdWUpLCBhZGRyKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAg ICAgIFNOUHJpbnRGKHRyYWNlX2J1Zl8sCisrICAgICAgICAgICAgICAgICAgICIgICAgICAgICAg ICAgICAgICAgICglIiBQUkl1NjQKKysgICAgICAgICAgICAgICAgICAgIikgICAgZGJsOiVlIC0t PiBbYWRkcjogJSIgUFJJeDY0ICJdIiwKKysgICAgICAgICAgICAgICAgICAgaWNvdW50Xywgc3Rh dGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSksIGFkZHIpOworKyAgICAgICAgfQorKyAgICAgICAgYnJl YWs7CisrICAgICAgZGVmYXVsdDoKKysgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAgIH0KKysg IH0KKyt9CisrCisrLy8gUklTQ1YgTWVtb3J5IFJlYWQvV3JpdGUgZnVuY3Rpb25zCisrCisrLy8g RklYTUUgKFJJU0NWKTogY2hlY2sgd2hldGhlciB0aGUgc3BlY2lmaWMgYm9hcmQgc3VwcG9ydHMg dW5hbGlnbmVkIGxvYWQvc3RvcmUKKysvLyAoZGV0ZXJtaW5lZCBieSBFRUkpLiBGb3Igbm93LCB3 ZSBhc3N1bWUgdGhlIGJvYXJkIGRvZXMgbm90IHN1cHBvcnQgdW5hbGlnbmVkCisrLy8gbG9hZC9z dG9yZSAoZS5nLiwgdHJhcHBpbmcpCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisrVCBTaW11bGF0 b3I6OlJlYWRNZW0oaW50NjRfdCBhZGRyLCBJbnN0cnVjdGlvbiogaW5zdHIpIHsKKysgIGlmIChh ZGRyID49IDAgJiYgYWRkciA8IDB4NDAwKSB7CisrICAgIC8vIFRoaXMgaGFzIHRvIGJlIGEgbnVs bHB0ci1kZXJlZmVyZW5jZSwgZHJvcCBpbnRvIGRlYnVnZ2VyLgorKyAgICBQcmludEYoIk1lbW9y eSByZWFkIGZyb20gYmFkIGFkZHJlc3M6IDB4JTA4IiBQUkl4NjQgIiAsIHBjPTB4JTA4IiBQUkl4 UFRSCisrICAgICAgICAgICAiIFxuIiwKKysgICAgICAgICAgIGFkZHIsIHJlaW50ZXJwcmV0X2Nh c3Q8aW50cHRyX3Q+KGluc3RyKSk7CisrICAgIERpZU9yRGVidWcoKTsKKysgIH0KKysKKysgIC8v IGNoZWNrIGZvciBuYXR1cmFsIGFsaWdubWVudAorKyAgaWYgKChhZGRyICYgKHNpemVvZihUKSAt IDEpKSAhPSAwKSB7CisrICAgIFByaW50RigiVW5hbGlnbmVkIHJlYWQgYXQgMHglMDgiIFBSSXg2 NCAiICwgcGM9MHglMDgiIFY4UFJJeFBUUiAiXG4iLCBhZGRyLAorKyAgICAgICAgICAgcmVpbnRl cnByZXRfY2FzdDxpbnRwdHJfdD4oaW5zdHIpKTsKKysgICAgRGllT3JEZWJ1ZygpOworKyAgfQor KworKyAgVCogcHRyID0gcmVpbnRlcnByZXRfY2FzdDxUKj4oYWRkcik7CisrICBUIHZhbHVlID0g KnB0cjsKKysgIHJldHVybiB2YWx1ZTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisr dm9pZCBTaW11bGF0b3I6OldyaXRlTWVtKGludDY0X3QgYWRkciwgVCB2YWx1ZSwgSW5zdHJ1Y3Rp b24qIGluc3RyKSB7CisrICBpZiAoYWRkciA+PSAwICYmIGFkZHIgPCAweDQwMCkgeworKyAgICAv LyBUaGlzIGhhcyB0byBiZSBhIG51bGxwdHItZGVyZWZlcmVuY2UsIGRyb3AgaW50byBkZWJ1Z2dl ci4KKysgICAgUHJpbnRGKCJNZW1vcnkgd3JpdGUgdG8gYmFkIGFkZHJlc3M6IDB4JTA4IiBQUkl4 NjQgIiAsIHBjPTB4JTA4IiBQUkl4UFRSCisrICAgICAgICAgICAiIFxuIiwKKysgICAgICAgICAg IGFkZHIsIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc3RyKSk7CisrICAgIERpZU9yRGVi dWcoKTsKKysgIH0KKysKKysgIC8vIGNoZWNrIGZvciBuYXR1cmFsIGFsaWdubWVudAorKyAgaWYg KChhZGRyICYgKHNpemVvZihUKSAtIDEpKSAhPSAwKSB7CisrICAgIFByaW50RigiVW5hbGlnbmVk IHdyaXRlIGF0IDB4JTA4IiBQUkl4NjQgIiAsIHBjPTB4JTA4IiBWOFBSSXhQVFIgIlxuIiwgYWRk ciwKKysgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc3RyKSk7CisrICAg IERpZU9yRGVidWcoKTsKKysgIH0KKysKKysgIFQqIHB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VCo+ KGFkZHIpOworKyAgVHJhY2VNZW1XcihhZGRyLCB2YWx1ZSk7CisrICAqcHRyID0gdmFsdWU7Cisr fQorKworKy8vIFJldHVybnMgdGhlIGxpbWl0IG9mIHRoZSBzdGFjayBhcmVhIHRvIGVuYWJsZSBj aGVja2luZyBmb3Igc3RhY2sgb3ZlcmZsb3dzLgorK3VpbnRwdHJfdCBTaW11bGF0b3I6OlN0YWNr TGltaXQodWludHB0cl90IGNfbGltaXQpIGNvbnN0IHsKKysgIC8vIFRoZSBzaW11bGF0b3IgdXNl cyBhIHNlcGFyYXRlIEpTIHN0YWNrLiBJZiB3ZSBoYXZlIGV4aGF1c3RlZCB0aGUgQyBzdGFjaywK KysgIC8vIHdlIGFsc28gZHJvcCBkb3duIHRoZSBKUyBsaW1pdCB0byByZWZsZWN0IHRoZSBleGhh dXN0aW9uIG9uIHRoZSBKUyBzdGFjay4KKysgIGlmIChHZXRDdXJyZW50U3RhY2tQb3NpdGlvbigp IDwgY19saW1pdCkgeworKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGdl dF9zcCgpKTsKKysgIH0KKysKKysgIC8vIE90aGVyd2lzZSB0aGUgbGltaXQgaXMgdGhlIEpTIHN0 YWNrLiBMZWF2ZSBhIHNhZmV0eSBtYXJnaW4gb2YgMTAyNCBieXRlcworKyAgLy8gdG8gcHJldmVu dCBvdmVycnVubmluZyB0aGUgc3RhY2sgd2hlbiBwdXNoaW5nIHZhbHVlcy4KKysgIHJldHVybiBy ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oc3RhY2tfKSArIDEwMjQ7CisrfQorKworKy8vIFVu c3VwcG9ydGVkIGluc3RydWN0aW9ucyB1c2UgRm9ybWF0IHRvIHByaW50IGFuIGVycm9yIGFuZCBz dG9wIGV4ZWN1dGlvbi4KKyt2b2lkIFNpbXVsYXRvcjo6Rm9ybWF0KEluc3RydWN0aW9uKiBpbnN0 ciwgY29uc3QgY2hhciogZm9ybWF0KSB7CisrICBQcmludEYoIlNpbXVsYXRvciBmb3VuZCB1bnN1 cHBvcnRlZCBpbnN0cnVjdGlvbjpcbiAweCUwOCIgUFJJeFBUUiAiIDogJXNcbiIsCisrICAgICAg ICAgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaW5zdHIpLCBmb3JtYXQpOworKyAgVU5JTVBM RU1FTlRFRF9SSVNDVigpOworK30KKysKKysvLyBDYWxscyBpbnRvIHRoZSBWOCBydW50aW1lIGFy ZSBiYXNlZCBvbiB0aGlzIHZlcnkgc2ltcGxlIGludGVyZmFjZS4KKysvLyBOb3RlOiBUbyBiZSBh YmxlIHRvIHJldHVybiB0d28gdmFsdWVzIGZyb20gc29tZSBjYWxscyB0aGUgY29kZSBpbgorKy8v IHJ1bnRpbWUuY2MgdXNlcyB0aGUgT2JqZWN0UGFpciB3aGljaCBpcyBlc3NlbnRpYWxseSB0d28g MzItYml0IHZhbHVlcworKy8vIHN0dWZmZWQgaW50byBhIDY0LWJpdCB2YWx1ZS4gV2l0aCB0aGUg Y29kZSBiZWxvdyB3ZSBhc3N1bWUgdGhhdCBhbGwgcnVudGltZQorKy8vIGNhbGxzIHJldHVybiA2 NCBiaXRzIG9mIHJlc3VsdC4gSWYgdGhleSBkb24ndCwgdGhlIGExIHJlc3VsdCByZWdpc3Rlcgor Ky8vIGNvbnRhaW5zIGEgYm9ndXMgdmFsdWUsIHdoaWNoIGlzIGZpbmUgYmVjYXVzZSBpdCBpcyBj YWxsZXItc2F2ZWQuCisrCisrdXNpbmcgU2ltdWxhdG9yUnVudGltZUNhbGwgPSBPYmplY3RQYWly ICgqKShpbnQ2NF90IGFyZzAsIGludDY0X3QgYXJnMSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgYXJnMiwgaW50NjRfdCBhcmczLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBhcmc0LCBpbnQ2 NF90IGFyZzUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQ2NF90IGFyZzYsIGludDY0X3QgYXJnNywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDY0X3QgYXJnOCwgaW50NjRfdCBhcmc5KTsKKysKKysvLyBUaGVz ZSBwcm90b3R5cGVzIGhhbmRsZSB0aGUgZm91ciB0eXBlcyBvZiBGUCBjYWxscy4KKyt1c2luZyBT aW11bGF0b3JSdW50aW1lQ29tcGFyZUNhbGwgPSBpbnQ2NF90ICgqKShkb3VibGUgZGFyZzAsIGRv dWJsZSBkYXJnMSk7CisrdXNpbmcgU2ltdWxhdG9yUnVudGltZUZQRlBDYWxsID0gZG91YmxlICgq KShkb3VibGUgZGFyZzAsIGRvdWJsZSBkYXJnMSk7CisrdXNpbmcgU2ltdWxhdG9yUnVudGltZUZQ Q2FsbCA9IGRvdWJsZSAoKikoZG91YmxlIGRhcmcwKTsKKyt1c2luZyBTaW11bGF0b3JSdW50aW1l RlBJbnRDYWxsID0gZG91YmxlICgqKShkb3VibGUgZGFyZzAsIGludDMyX3QgYXJnMCk7CisrCisr Ly8gVGhpcyBzaWduYXR1cmUgc3VwcG9ydHMgZGlyZWN0IGNhbGwgaW4gdG8gQVBJIGZ1bmN0aW9u IG5hdGl2ZSBjYWxsYmFjaworKy8vIChyZWZlciB0byBJbnZvY2F0aW9uQ2FsbGJhY2sgaW4gdjgu aCkuCisrdXNpbmcgU2ltdWxhdG9yUnVudGltZURpcmVjdEFwaUNhbGwgPSB2b2lkICgqKShpbnQ2 NF90IGFyZzApOworK3VzaW5nIFNpbXVsYXRvclJ1bnRpbWVQcm9maWxpbmdBcGlDYWxsID0gdm9p ZCAoKikoaW50NjRfdCBhcmcwLCB2b2lkKiBhcmcxKTsKKysKKysvLyBUaGlzIHNpZ25hdHVyZSBz dXBwb3J0cyBkaXJlY3QgY2FsbCB0byBhY2Nlc3NvciBnZXR0ZXIgY2FsbGJhY2suCisrdXNpbmcg U2ltdWxhdG9yUnVudGltZURpcmVjdEdldHRlckNhbGwgPSB2b2lkICgqKShpbnQ2NF90IGFyZzAs IGludDY0X3QgYXJnMSk7CisrdXNpbmcgU2ltdWxhdG9yUnVudGltZVByb2ZpbGluZ0dldHRlckNh bGwgPSB2b2lkICgqKShpbnQ2NF90IGFyZzAsIGludDY0X3QgYXJnMSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZzIpOworKwor Ky8vIFNvZnR3YXJlIGludGVycnVwdCBpbnN0cnVjdGlvbnMgYXJlIHVzZWQgYnkgdGhlIHNpbXVs YXRvciB0byBjYWxsIGludG8gdGhlCisrLy8gQy1iYXNlZCBWOCBydW50aW1lLiBUaGV5IGFyZSBh bHNvIHVzZWQgZm9yIGRlYnVnZ2luZyB3aXRoIHNpbXVsYXRvci4KKyt2b2lkIFNpbXVsYXRvcjo6 U29mdHdhcmVJbnRlcnJ1cHQoKSB7CisrICAvLyBUaGVyZSBhcmUgdHdvIGluc3RydWN0aW9ucyB0 aGF0IGNvdWxkIGdldCB1cyBoZXJlLCB0aGUgZWJyZWFrIG9yIGVjYWxsCisrICAvLyBpbnN0cnVj dGlvbnMgYXJlICJTWVNURU0iIGNsYXNzIG9wY29kZSBkaXN0aW51aXNoZWQgYnkgSW1tMTJWYWx1 ZSBmaWVsZCB3LworKyAgLy8gdGhlIHJlc3Qgb2YgaW5zdHJ1Y3Rpb24gZmllbGRzIGJlaW5nIHpl cm8KKysgIGludDMyX3QgZnVuYyA9IGluc3RyXy5JbW0xMlZhbHVlKCk7CisrICAvLyBXZSBmaXJz dCBjaGVjayBpZiB3ZSBtZXQgYSBjYWxsX3J0X3JlZGlyZWN0ZWQuCisrICBpZiAoaW5zdHJfLklu c3RydWN0aW9uQml0cygpID09IHJ0Q2FsbFJlZGlySW5zdHIpIHsgIC8vIEVDQUxMCisrICAgIFJl ZGlyZWN0aW9uKiByZWRpcmVjdGlvbiA9IFJlZGlyZWN0aW9uOjpGcm9tSW5zdHJ1Y3Rpb24oaW5z dHJfLmluc3RyKCkpOworKworKyAgICBpbnQ2NF90KiBzdGFja19wb2ludGVyID0gcmVpbnRlcnBy ZXRfY2FzdDxpbnQ2NF90Kj4oZ2V0X3JlZ2lzdGVyKHNwKSk7CisrCisrICAgIGludDY0X3QgYXJn MCA9IGdldF9yZWdpc3RlcihhMCk7CisrICAgIGludDY0X3QgYXJnMSA9IGdldF9yZWdpc3Rlcihh MSk7CisrICAgIGludDY0X3QgYXJnMiA9IGdldF9yZWdpc3RlcihhMik7CisrICAgIGludDY0X3Qg YXJnMyA9IGdldF9yZWdpc3RlcihhMyk7CisrICAgIGludDY0X3QgYXJnNCA9IGdldF9yZWdpc3Rl cihhNCk7CisrICAgIGludDY0X3QgYXJnNSA9IGdldF9yZWdpc3RlcihhNSk7CisrICAgIGludDY0 X3QgYXJnNiA9IGdldF9yZWdpc3RlcihhNik7CisrICAgIGludDY0X3QgYXJnNyA9IGdldF9yZWdp c3RlcihhNyk7CisrICAgIGludDY0X3QgYXJnOCA9IHN0YWNrX3BvaW50ZXJbMF07CisrICAgIGlu dDY0X3QgYXJnOSA9IHN0YWNrX3BvaW50ZXJbMV07CisrICAgIFNUQVRJQ19BU1NFUlQoa01heENQ YXJhbWV0ZXJzID09IDEwKTsKKysKKysgICAgYm9vbCBmcF9jYWxsID0KKysgICAgICAgIChyZWRp cmVjdGlvbi0+dHlwZSgpID09IEV4dGVybmFsUmVmZXJlbmNlOjpCVUlMVElOX0ZQX0ZQX0NBTEwp IHx8CisrICAgICAgICAocmVkaXJlY3Rpb24tPnR5cGUoKSA9PSBFeHRlcm5hbFJlZmVyZW5jZTo6 QlVJTFRJTl9DT01QQVJFX0NBTEwpIHx8CisrICAgICAgICAocmVkaXJlY3Rpb24tPnR5cGUoKSA9 PSBFeHRlcm5hbFJlZmVyZW5jZTo6QlVJTFRJTl9GUF9DQUxMKSB8fAorKyAgICAgICAgKHJlZGly ZWN0aW9uLT50eXBlKCkgPT0gRXh0ZXJuYWxSZWZlcmVuY2U6OkJVSUxUSU5fRlBfSU5UX0NBTEwp OworKworKyAgICAvLyBUaGlzIGlzIGRvZGd5IGJ1dCBpdCB3b3JrcyBiZWNhdXNlIHRoZSBDIGVu dHJ5IHN0dWJzIGFyZSBuZXZlciBtb3ZlZC4KKysgICAgLy8gU2VlIGNvbW1lbnQgaW4gY29kZWdl bi1hcm0uY2MgYW5kIGJ1ZyAxMjQyMTczLgorKyAgICBpbnQ2NF90IHNhdmVkX3JhID0gZ2V0X3Jl Z2lzdGVyKHJhKTsKKysKKysgICAgaW50cHRyX3QgZXh0ZXJuYWwgPQorKyAgICAgICAgcmVpbnRl cnByZXRfY2FzdDxpbnRwdHJfdD4ocmVkaXJlY3Rpb24tPmV4dGVybmFsX2Z1bmN0aW9uKCkpOwor KworKyAgICBpZiAoZnBfY2FsbCkgeworKyAgICAgIGRvdWJsZSBkdmFsMCwgZHZhbDE7ICAvLyBv bmUgb3IgdHdvIGRvdWJsZSBwYXJhbWV0ZXJzCisrICAgICAgaW50MzJfdCBpdmFsOyAgICAgICAg IC8vIHplcm8gb3Igb25lIGludGVnZXIgcGFyYW1ldGVycworKyAgICAgIGludDY0X3QgaXJlc3Vs dCA9IDA7ICAvLyBpbnRlZ2VyIHJldHVybiB2YWx1ZQorKyAgICAgIGRvdWJsZSBkcmVzdWx0ID0g MDsgICAvLyBkb3VibGUgcmV0dXJuIHZhbHVlCisrICAgICAgR2V0RnBBcmdzKCZkdmFsMCwgJmR2 YWwxLCAmaXZhbCk7CisrICAgICAgU2ltdWxhdG9yUnVudGltZUNhbGwgZ2VuZXJpY190YXJnZXQg PQorKyAgICAgICAgICByZWludGVycHJldF9jYXN0PFNpbXVsYXRvclJ1bnRpbWVDYWxsPihleHRl cm5hbCk7CisrICAgICAgaWYgKDo6djg6OmludGVybmFsOjpGTEFHX3RyYWNlX3NpbSkgeworKyAg ICAgICAgc3dpdGNoIChyZWRpcmVjdGlvbi0+dHlwZSgpKSB7CisrICAgICAgICAgIGNhc2UgRXh0 ZXJuYWxSZWZlcmVuY2U6OkJVSUxUSU5fRlBfRlBfQ0FMTDoKKysgICAgICAgICAgY2FzZSBFeHRl cm5hbFJlZmVyZW5jZTo6QlVJTFRJTl9DT01QQVJFX0NBTEw6CisrICAgICAgICAgICAgUHJpbnRG KCJDYWxsIHRvIGhvc3QgZnVuY3Rpb24gYXQgJXAgd2l0aCBhcmdzICVmLCAlZiIsCisrICAgICAg ICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEZVTkNUSU9OX0FERFIoZ2VuZXJp Y190YXJnZXQpKSwKKysgICAgICAgICAgICAgICAgICAgZHZhbDAsIGR2YWwxKTsKKysgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgY2FzZSBFeHRlcm5hbFJlZmVyZW5jZTo6QlVJTFRJTl9G UF9DQUxMOgorKyAgICAgICAgICAgIFByaW50RigiQ2FsbCB0byBob3N0IGZ1bmN0aW9uIGF0ICVw IHdpdGggYXJnICVmIiwKKysgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lk Kj4oRlVOQ1RJT05fQUREUihnZW5lcmljX3RhcmdldCkpLAorKyAgICAgICAgICAgICAgICAgICBk dmFsMCk7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2UgRXh0ZXJuYWxSZWZl cmVuY2U6OkJVSUxUSU5fRlBfSU5UX0NBTEw6CisrICAgICAgICAgICAgUHJpbnRGKCJDYWxsIHRv IGhvc3QgZnVuY3Rpb24gYXQgJXAgd2l0aCBhcmdzICVmLCAlZCIsCisrICAgICAgICAgICAgICAg ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEZVTkNUSU9OX0FERFIoZ2VuZXJpY190YXJnZXQp KSwKKysgICAgICAgICAgICAgICAgICAgZHZhbDAsIGl2YWwpOworKyAgICAgICAgICAgIGJyZWFr OworKyAgICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICAg ICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgfQorKyAgICAgIHN3aXRjaCAocmVk aXJlY3Rpb24tPnR5cGUoKSkgeworKyAgICAgICAgY2FzZSBFeHRlcm5hbFJlZmVyZW5jZTo6QlVJ TFRJTl9DT01QQVJFX0NBTEw6IHsKKysgICAgICAgICAgU2ltdWxhdG9yUnVudGltZUNvbXBhcmVD YWxsIHRhcmdldCA9CisrICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PFNpbXVsYXRvclJ1 bnRpbWVDb21wYXJlQ2FsbD4oZXh0ZXJuYWwpOworKyAgICAgICAgICBpcmVzdWx0ID0gdGFyZ2V0 KGR2YWwwLCBkdmFsMSk7CisrICAgICAgICAgIHNldF9yZWdpc3RlcihhMCwgc3RhdGljX2Nhc3Q8 aW50NjRfdD4oaXJlc3VsdCkpOworKyAgICAgICAgICAvLyAgc2V0X3JlZ2lzdGVyKGExLCBzdGF0 aWNfY2FzdDxpbnQ2NF90PihpcmVzdWx0ID4+IDMyKSk7CisrICAgICAgICAgIGJyZWFrOworKyAg ICAgICAgfQorKyAgICAgICAgY2FzZSBFeHRlcm5hbFJlZmVyZW5jZTo6QlVJTFRJTl9GUF9GUF9D QUxMOiB7CisrICAgICAgICAgIFNpbXVsYXRvclJ1bnRpbWVGUEZQQ2FsbCB0YXJnZXQgPQorKyAg ICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxTaW11bGF0b3JSdW50aW1lRlBGUENhbGw+KGV4 dGVybmFsKTsKKysgICAgICAgICAgZHJlc3VsdCA9IHRhcmdldChkdmFsMCwgZHZhbDEpOworKyAg ICAgICAgICBTZXRGcFJlc3VsdChkcmVzdWx0KTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAg ICB9CisrICAgICAgICBjYXNlIEV4dGVybmFsUmVmZXJlbmNlOjpCVUlMVElOX0ZQX0NBTEw6IHsK KysgICAgICAgICAgU2ltdWxhdG9yUnVudGltZUZQQ2FsbCB0YXJnZXQgPQorKyAgICAgICAgICAg ICAgcmVpbnRlcnByZXRfY2FzdDxTaW11bGF0b3JSdW50aW1lRlBDYWxsPihleHRlcm5hbCk7Cisr ICAgICAgICAgIGRyZXN1bHQgPSB0YXJnZXQoZHZhbDApOworKyAgICAgICAgICBTZXRGcFJlc3Vs dChkcmVzdWx0KTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgICBjYXNl IEV4dGVybmFsUmVmZXJlbmNlOjpCVUlMVElOX0ZQX0lOVF9DQUxMOiB7CisrICAgICAgICAgIFNp bXVsYXRvclJ1bnRpbWVGUEludENhbGwgdGFyZ2V0ID0KKysgICAgICAgICAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8U2ltdWxhdG9yUnVudGltZUZQSW50Q2FsbD4oZXh0ZXJuYWwpOworKyAgICAgICAg ICBkcmVzdWx0ID0gdGFyZ2V0KGR2YWwwLCBpdmFsKTsKKysgICAgICAgICAgU2V0RnBSZXN1bHQo ZHJlc3VsdCk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgZGVmYXVs dDoKKysgICAgICAgICAgVU5SRUFDSEFCTEUoKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAg fQorKyAgICAgIGlmICg6OnY4OjppbnRlcm5hbDo6RkxBR190cmFjZV9zaW0pIHsKKysgICAgICAg IHN3aXRjaCAocmVkaXJlY3Rpb24tPnR5cGUoKSkgeworKyAgICAgICAgICBjYXNlIEV4dGVybmFs UmVmZXJlbmNlOjpCVUlMVElOX0NPTVBBUkVfQ0FMTDoKKysgICAgICAgICAgICBQcmludEYoIlJl dHVybmVkICUwOHhcbiIsIHN0YXRpY19jYXN0PGludDMyX3Q+KGlyZXN1bHQpKTsKKysgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgY2FzZSBFeHRlcm5hbFJlZmVyZW5jZTo6QlVJTFRJTl9G UF9GUF9DQUxMOgorKyAgICAgICAgICBjYXNlIEV4dGVybmFsUmVmZXJlbmNlOjpCVUlMVElOX0ZQ X0NBTEw6CisrICAgICAgICAgIGNhc2UgRXh0ZXJuYWxSZWZlcmVuY2U6OkJVSUxUSU5fRlBfSU5U X0NBTEw6CisrICAgICAgICAgICAgUHJpbnRGKCJSZXR1cm5lZCAlZlxuIiwgZHJlc3VsdCk7Cisr ICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgICAgVU5S RUFDSEFCTEUoKTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICB9Cisr ICAgIH0gZWxzZSBpZiAocmVkaXJlY3Rpb24tPnR5cGUoKSA9PSBFeHRlcm5hbFJlZmVyZW5jZTo6 RElSRUNUX0FQSV9DQUxMKSB7CisrICAgICAgaWYgKDo6djg6OmludGVybmFsOjpGTEFHX3RyYWNl X3NpbSkgeworKyAgICAgICAgUHJpbnRGKCJDYWxsIHRvIGhvc3QgZnVuY3Rpb24gYXQgJXAgYXJn cyAlMDgiIFBSSXg2NCAiIFxuIiwKKysgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHZv aWQqPihleHRlcm5hbCksIGFyZzApOworKyAgICAgIH0KKysgICAgICBTaW11bGF0b3JSdW50aW1l RGlyZWN0QXBpQ2FsbCB0YXJnZXQgPQorKyAgICAgICAgICByZWludGVycHJldF9jYXN0PFNpbXVs YXRvclJ1bnRpbWVEaXJlY3RBcGlDYWxsPihleHRlcm5hbCk7CisrICAgICAgdGFyZ2V0KGFyZzAp OworKyAgICB9IGVsc2UgaWYgKHJlZGlyZWN0aW9uLT50eXBlKCkgPT0gRXh0ZXJuYWxSZWZlcmVu Y2U6OlBST0ZJTElOR19BUElfQ0FMTCkgeworKyAgICAgIGlmICg6OnY4OjppbnRlcm5hbDo6RkxB R190cmFjZV9zaW0pIHsKKysgICAgICAgIFByaW50RigiQ2FsbCB0byBob3N0IGZ1bmN0aW9uIGF0 ICVwIGFyZ3MgJTA4IiBQUkl4NjQgIiAgJTA4IiBQUkl4NjQKKysgICAgICAgICAgICAgICAiIFxu IiwKKysgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihleHRlcm5hbCksIGFy ZzAsIGFyZzEpOworKyAgICAgIH0KKysgICAgICBTaW11bGF0b3JSdW50aW1lUHJvZmlsaW5nQXBp Q2FsbCB0YXJnZXQgPQorKyAgICAgICAgICByZWludGVycHJldF9jYXN0PFNpbXVsYXRvclJ1bnRp bWVQcm9maWxpbmdBcGlDYWxsPihleHRlcm5hbCk7CisrICAgICAgdGFyZ2V0KGFyZzAsIFJlZGly ZWN0aW9uOjpSZXZlcnNlUmVkaXJlY3Rpb24oYXJnMSkpOworKyAgICB9IGVsc2UgaWYgKHJlZGly ZWN0aW9uLT50eXBlKCkgPT0gRXh0ZXJuYWxSZWZlcmVuY2U6OkRJUkVDVF9HRVRURVJfQ0FMTCkg eworKyAgICAgIGlmICg6OnY4OjppbnRlcm5hbDo6RkxBR190cmFjZV9zaW0pIHsKKysgICAgICAg IFByaW50RigiQ2FsbCB0byBob3N0IGZ1bmN0aW9uIGF0ICVwIGFyZ3MgJTA4IiBQUkl4NjQgIiAg JTA4IiBQUkl4NjQKKysgICAgICAgICAgICAgICAiIFxuIiwKKysgICAgICAgICAgICAgICByZWlu dGVycHJldF9jYXN0PHZvaWQqPihleHRlcm5hbCksIGFyZzAsIGFyZzEpOworKyAgICAgIH0KKysg ICAgICBTaW11bGF0b3JSdW50aW1lRGlyZWN0R2V0dGVyQ2FsbCB0YXJnZXQgPQorKyAgICAgICAg ICByZWludGVycHJldF9jYXN0PFNpbXVsYXRvclJ1bnRpbWVEaXJlY3RHZXR0ZXJDYWxsPihleHRl cm5hbCk7CisrICAgICAgdGFyZ2V0KGFyZzAsIGFyZzEpOworKyAgICB9IGVsc2UgaWYgKHJlZGly ZWN0aW9uLT50eXBlKCkgPT0KKysgICAgICAgICAgICAgICBFeHRlcm5hbFJlZmVyZW5jZTo6UFJP RklMSU5HX0dFVFRFUl9DQUxMKSB7CisrICAgICAgaWYgKDo6djg6OmludGVybmFsOjpGTEFHX3Ry YWNlX3NpbSkgeworKyAgICAgICAgUHJpbnRGKCJDYWxsIHRvIGhvc3QgZnVuY3Rpb24gYXQgJXAg YXJncyAlMDgiIFBSSXg2NCAiICAlMDgiIFBSSXg2NAorKyAgICAgICAgICAgICAgICIgICUwOCIg UFJJeDY0ICIgXG4iLAorKyAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGV4 dGVybmFsKSwgYXJnMCwgYXJnMSwgYXJnMik7CisrICAgICAgfQorKyAgICAgIFNpbXVsYXRvclJ1 bnRpbWVQcm9maWxpbmdHZXR0ZXJDYWxsIHRhcmdldCA9CisrICAgICAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8U2ltdWxhdG9yUnVudGltZVByb2ZpbGluZ0dldHRlckNhbGw+KGV4dGVybmFsKTsKKysg ICAgICB0YXJnZXQoYXJnMCwgYXJnMSwgUmVkaXJlY3Rpb246OlJldmVyc2VSZWRpcmVjdGlvbihh cmcyKSk7CisrICAgIH0gZWxzZSB7CisrICAgICAgRENIRUNLKHJlZGlyZWN0aW9uLT50eXBlKCkg PT0gRXh0ZXJuYWxSZWZlcmVuY2U6OkJVSUxUSU5fQ0FMTCB8fAorKyAgICAgICAgICAgICByZWRp cmVjdGlvbi0+dHlwZSgpID09IEV4dGVybmFsUmVmZXJlbmNlOjpCVUlMVElOX0NBTExfUEFJUik7 CisrICAgICAgU2ltdWxhdG9yUnVudGltZUNhbGwgdGFyZ2V0ID0KKysgICAgICAgICAgcmVpbnRl cnByZXRfY2FzdDxTaW11bGF0b3JSdW50aW1lQ2FsbD4oZXh0ZXJuYWwpOworKyAgICAgIGlmICg6 OnY4OjppbnRlcm5hbDo6RkxBR190cmFjZV9zaW0pIHsKKysgICAgICAgIFByaW50RigKKysgICAg ICAgICAgICAiQ2FsbCB0byBob3N0IGZ1bmN0aW9uIGF0ICVwICIKKysgICAgICAgICAgICAiYXJn cyAlMDgiIFBSSXg2NCAiICwgJTA4IiBQUkl4NjQgIiAsICUwOCIgUFJJeDY0ICIgLCAlMDgiIFBS SXg2NAorKyAgICAgICAgICAgICIgLCAlMDgiIFBSSXg2NCAiICwgJTA4IiBQUkl4NjQgIiAsICUw OCIgUFJJeDY0ICIgLCAlMDgiIFBSSXg2NAorKyAgICAgICAgICAgICIgLCAlMDgiIFBSSXg2NCAi ICwgJTA4IiBQUkl4NjQgIiBcbiIsCisrICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lk Kj4oRlVOQ1RJT05fQUREUih0YXJnZXQpKSwgYXJnMCwgYXJnMSwgYXJnMiwKKysgICAgICAgICAg ICBhcmczLCBhcmc0LCBhcmc1LCBhcmc2LCBhcmc3LCBhcmc4LCBhcmc5KTsKKysgICAgICB9Cisr ICAgICAgT2JqZWN0UGFpciByZXN1bHQgPQorKyAgICAgICAgICB0YXJnZXQoYXJnMCwgYXJnMSwg YXJnMiwgYXJnMywgYXJnNCwgYXJnNSwgYXJnNiwgYXJnNywgYXJnOCwgYXJnOSk7CisrICAgICAg c2V0X3JlZ2lzdGVyKGEwLCAoaW50NjRfdCkocmVzdWx0LngpKTsKKysgICAgICBzZXRfcmVnaXN0 ZXIoYTEsIChpbnQ2NF90KShyZXN1bHQueSkpOworKyAgICB9CisrICAgIGlmICg6OnY4OjppbnRl cm5hbDo6RkxBR190cmFjZV9zaW0pIHsKKysgICAgICBQcmludEYoIlJldHVybmVkICUwOCIgUFJJ eDY0ICIgIDogJTA4IiBQUkl4NjQgIiBcbiIsIGdldF9yZWdpc3RlcihhMSksCisrICAgICAgICAg ICAgIGdldF9yZWdpc3RlcihhMCkpOworKyAgICB9CisrICAgIHNldF9yZWdpc3RlcihyYSwgc2F2 ZWRfcmEpOworKyAgICBzZXRfcGMoZ2V0X3JlZ2lzdGVyKHJhKSk7CisrCisrICB9IGVsc2UgaWYg KGZ1bmMgPT0gMSkgeyAgLy8gRUJSRUFLCisrICAgIGludDMyX3QgY29kZSA9IGdldF9lYnJlYWtf Y29kZShpbnN0cl8uaW5zdHIoKSk7CisrICAgIHNldF9wYyhnZXRfcGMoKSArIGtJbnN0clNpemUg KiAyKTsKKysgICAgaWYgKGNvZGUgIT0gLTEgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvZGUp IDw9IGtNYXhTdG9wQ29kZSkgeworKyAgICAgIGlmIChJc1dhdGNocG9pbnQoY29kZSkpIHsKKysg ICAgICAgIFByaW50V2F0Y2hwb2ludChjb2RlKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAg SW5jcmVhc2VTdG9wQ291bnRlcihjb2RlKTsKKysgICAgICAgIEhhbmRsZVN0b3AoY29kZSk7Cisr ICAgICAgfQorKyAgICB9IGVsc2UgeworKyAgICAgIC8vIEFsbCByZW1haW5pbmcgYnJlYWtfIGNv ZGVzLCBhbmQgYWxsIHRyYXBzIGFyZSBoYW5kbGVkIGhlcmUuCisrICAgICAgUmlzY3ZEZWJ1Z2dl ciBkYmcodGhpcyk7CisrICAgICAgZGJnLkRlYnVnKCk7CisrICAgIH0KKysgIH0gZWxzZSB7Cisr ICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9CisrfQorKworKy8vIFN0b3AgaGVscGVyIGZ1bmN0aW9u cy4KKytib29sIFNpbXVsYXRvcjo6SXNXYXRjaHBvaW50KHVpbnQ2NF90IGNvZGUpIHsKKysgIHJl dHVybiAoY29kZSA8PSBrTWF4V2F0Y2hwb2ludENvZGUpOworK30KKysKKyt2b2lkIFNpbXVsYXRv cjo6UHJpbnRXYXRjaHBvaW50KHVpbnQ2NF90IGNvZGUpIHsKKysgIFJpc2N2RGVidWdnZXIgZGJn KHRoaXMpOworKyAgKyticmVha19jb3VudF87CisrICBQcmludEYoIlxuLS0tLSB3YXRjaHBvaW50 ICUiIFBSSWQ2NCAiICBtYXJrZXI6ICUzZCAgKGluc3RyIGNvdW50OiAlOCIgUFJJZDY0CisrICAg ICAgICAgIiApIC0tLS0tLS0tLS0iCisrICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0iLAorKyAgICAgICAgIGNvZGUsIGJyZWFrX2NvdW50XywgaWNvdW50Xyk7Cisr ICBkYmcuUHJpbnRBbGxSZWdzKCk7ICAvLyBQcmludCByZWdpc3RlcnMgYW5kIGNvbnRpbnVlIHJ1 bm5pbmcuCisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpIYW5kbGVTdG9wKHVpbnQ2NF90IGNvZGUp IHsKKysgIC8vIFN0b3AgaWYgaXQgaXMgZW5hYmxlZCwgb3RoZXJ3aXNlIGdvIG9uIGp1bXBpbmcg b3ZlciB0aGUgc3RvcAorKyAgLy8gYW5kIHRoZSBtZXNzYWdlIGFkZHJlc3MuCisrICBpZiAoSXNF bmFibGVkU3RvcChjb2RlKSkgeworKyAgICBSaXNjdkRlYnVnZ2VyIGRiZyh0aGlzKTsKKysgICAg UHJpbnRGKCJTaW11bGF0b3IgaGl0IHN0b3AgKCUiIFBSSWQ2NCAiKVxuIiwgY29kZSk7CisrICAg IGRiZy5EZWJ1ZygpOworKyAgfQorK30KKysKKytib29sIFNpbXVsYXRvcjo6SXNTdG9wSW5zdHJ1 Y3Rpb24oSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBpZiAoaW5zdHItPkluc3RydWN0aW9uQml0 cygpICE9IGtCcmVha0luc3RyKSByZXR1cm4gZmFsc2U7CisrICBpbnQzMl90IGNvZGUgPSBnZXRf ZWJyZWFrX2NvZGUoaW5zdHIpOworKyAgcmV0dXJuIGNvZGUgIT0gLTEgJiYgc3RhdGljX2Nhc3Q8 dWludDMyX3Q+KGNvZGUpID4ga01heFdhdGNocG9pbnRDb2RlICYmCisrICAgICAgICAgc3RhdGlj X2Nhc3Q8dWludDMyX3Q+KGNvZGUpIDw9IGtNYXhTdG9wQ29kZTsKKyt9CisrCisrYm9vbCBTaW11 bGF0b3I6OklzRW5hYmxlZFN0b3AodWludDY0X3QgY29kZSkgeworKyAgRENIRUNLX0xFKGNvZGUs IGtNYXhTdG9wQ29kZSk7CisrICBEQ0hFQ0tfR1QoY29kZSwga01heFdhdGNocG9pbnRDb2RlKTsK KysgIHJldHVybiAhKHdhdGNoZWRfc3RvcHNfW2NvZGVdLmNvdW50ICYga1N0b3BEaXNhYmxlZEJp dCk7CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpFbmFibGVTdG9wKHVpbnQ2NF90IGNvZGUpIHsK KysgIGlmICghSXNFbmFibGVkU3RvcChjb2RlKSkgeworKyAgICB3YXRjaGVkX3N0b3BzX1tjb2Rl XS5jb3VudCAmPSB+a1N0b3BEaXNhYmxlZEJpdDsKKysgIH0KKyt9CisrCisrdm9pZCBTaW11bGF0 b3I6OkRpc2FibGVTdG9wKHVpbnQ2NF90IGNvZGUpIHsKKysgIGlmIChJc0VuYWJsZWRTdG9wKGNv ZGUpKSB7CisrICAgIHdhdGNoZWRfc3RvcHNfW2NvZGVdLmNvdW50IHw9IGtTdG9wRGlzYWJsZWRC aXQ7CisrICB9CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpJbmNyZWFzZVN0b3BDb3VudGVyKHVp bnQ2NF90IGNvZGUpIHsKKysgIERDSEVDS19MRShjb2RlLCBrTWF4U3RvcENvZGUpOworKyAgaWYg KCh3YXRjaGVkX3N0b3BzX1tjb2RlXS5jb3VudCAmIH4oMSA8PCAzMSkpID09IDB4N0ZGRkZGRkYp IHsKKysgICAgUHJpbnRGKCJTdG9wIGNvdW50ZXIgZm9yIGNvZGUgJSIgUFJJZDY0CisrICAgICAg ICAgICAiICBoYXMgb3ZlcmZsb3dlZC5cbiIKKysgICAgICAgICAgICJFbmFibGluZyB0aGlzIGNv ZGUgYW5kIHJlc2V0aW5nIHRoZSBjb3VudGVyIHRvIDAuXG4iLAorKyAgICAgICAgICAgY29kZSk7 CisrICAgIHdhdGNoZWRfc3RvcHNfW2NvZGVdLmNvdW50ID0gMDsKKysgICAgRW5hYmxlU3RvcChj b2RlKTsKKysgIH0gZWxzZSB7CisrICAgIHdhdGNoZWRfc3RvcHNfW2NvZGVdLmNvdW50Kys7Cisr ICB9CisrfQorKworKy8vIFByaW50IGEgc3RvcCBzdGF0dXMuCisrdm9pZCBTaW11bGF0b3I6OlBy aW50U3RvcEluZm8odWludDY0X3QgY29kZSkgeworKyAgaWYgKGNvZGUgPD0ga01heFdhdGNocG9p bnRDb2RlKSB7CisrICAgIFByaW50RigiVGhhdCBpcyBhIHdhdGNocG9pbnQsIG5vdCBhIHN0b3Au XG4iKTsKKysgICAgcmV0dXJuOworKyAgfSBlbHNlIGlmIChjb2RlID4ga01heFN0b3BDb2RlKSB7 CisrICAgIFByaW50RigiQ29kZSB0b28gbGFyZ2UsIG9ubHkgJXUgc3RvcHMgY2FuIGJlIHVzZWRc biIsIGtNYXhTdG9wQ29kZSArIDEpOworKyAgICByZXR1cm47CisrICB9CisrICBjb25zdCBjaGFy KiBzdGF0ZSA9IElzRW5hYmxlZFN0b3AoY29kZSkgPyAiRW5hYmxlZCIgOiAiRGlzYWJsZWQiOwor KyAgaW50MzJfdCBjb3VudCA9IHdhdGNoZWRfc3RvcHNfW2NvZGVdLmNvdW50ICYgfmtTdG9wRGlz YWJsZWRCaXQ7CisrICAvLyBEb24ndCBwcmludCB0aGUgc3RhdGUgb2YgdW51c2VkIGJyZWFrcG9p bnRzLgorKyAgaWYgKGNvdW50ICE9IDApIHsKKysgICAgaWYgKHdhdGNoZWRfc3RvcHNfW2NvZGVd LmRlc2MpIHsKKysgICAgICBQcmludEYoInN0b3AgJSIgUFJJZDY0ICIgIC0gMHglIiBQUkl4NjQg IiA6IFx0JXMsIFx0Y291bnRlciA9ICVpLCBcdCVzXG4iLAorKyAgICAgICAgICAgICBjb2RlLCBj b2RlLCBzdGF0ZSwgY291bnQsIHdhdGNoZWRfc3RvcHNfW2NvZGVdLmRlc2MpOworKyAgICB9IGVs c2UgeworKyAgICAgIFByaW50Rigic3RvcCAlIiBQUklkNjQgIiAgLSAweCUiIFBSSXg2NCAiIDog XHQlcywgXHRjb3VudGVyID0gJWlcbiIsIGNvZGUsCisrICAgICAgICAgICAgIGNvZGUsIHN0YXRl LCBjb3VudCk7CisrICAgIH0KKysgIH0KKyt9CisrCisrdm9pZCBTaW11bGF0b3I6OlNpZ25hbEV4 Y2VwdGlvbihFeGNlcHRpb24gZSkgeworKyAgRkFUQUwoIkVycm9yOiBFeGNlcHRpb24gJWkgcmFp c2VkLiIsIHN0YXRpY19jYXN0PGludD4oZSkpOworK30KKysKKysvLyBSSVNDViBJbnN0cnVjdGlv biBEZWNvZGUgUm91dGluZQorK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVlJUeXBlKCkgeworKyAg c3dpdGNoIChpbnN0cl8uSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrUlR5cGVNYXNrKSB7CisrICAgIGNh c2UgUk9fQUREOiB7CisrICAgICAgc2V0X3JkKHNleHRfeGxlbihyczEoKSArIHJzMigpKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19TVUI6IHsKKysgICAgICBzZXRfcmQo c2V4dF94bGVuKHJzMSgpIC0gcnMyKCkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBj YXNlIFJPX1NMTDogeworKyAgICAgIHNldF9yZChzZXh0X3hsZW4ocnMxKCkgPDwgKHJzMigpICYg KHhsZW4gLSAxKSkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX1NMVDog eworKyAgICAgIHNldF9yZChzcmVnX3QocnMxKCkpIDwgc3JlZ190KHJzMigpKSk7CisrICAgICAg YnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19TTFRVOiB7CisrICAgICAgc2V0X3JkKHJlZ190 KHJzMSgpKSA8IHJlZ190KHJzMigpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2Fz ZSBST19YT1I6IHsKKysgICAgICBzZXRfcmQocnMxKCkgXiByczIoKSk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgY2FzZSBST19TUkw6IHsKKysgICAgICBzZXRfcmQoc2V4dF94bGVuKHpl eHRfeGxlbihyczEoKSkgPj4gKHJzMigpICYgKHhsZW4gLSAxKSkpKTsKKysgICAgICBicmVhazsK KysgICAgfQorKyAgICBjYXNlIFJPX1NSQTogeworKyAgICAgIHNldF9yZChzZXh0X3hsZW4oc2V4 dF94bGVuKHJzMSgpKSA+PiAocnMyKCkgJiAoeGxlbiAtIDEpKSkpOworKyAgICAgIGJyZWFrOwor KyAgICB9CisrICAgIGNhc2UgUk9fT1I6IHsKKysgICAgICBzZXRfcmQocnMxKCkgfCByczIoKSk7 CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19BTkQ6IHsKKysgICAgICBzZXRf cmQocnMxKCkgJiByczIoKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysjaWZkZWYgVjhfVEFS R0VUX0FSQ0hfNjRfQklUCisrICAgIGNhc2UgUk9fQUREVzogeworKyAgICAgIHNldF9yZChzZXh0 MzIocnMxKCkgKyByczIoKSkpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9f U1VCVzogeworKyAgICAgIHNldF9yZChzZXh0MzIocnMxKCkgLSByczIoKSkpOworKyAgICAgIGJy ZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fU0xMVzogeworKyAgICAgIHNldF9yZChzZXh0MzIo cnMxKCkgPDwgKHJzMigpICYgMHgxRikpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBj YXNlIFJPX1NSTFc6IHsKKysgICAgICBzZXRfcmQoc2V4dDMyKHVpbnQzMl90KHJzMSgpKSA+PiAo cnMyKCkgJiAweDFGKSkpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fU1JB VzogeworKyAgICAgIHNldF9yZChzZXh0MzIoaW50MzJfdChyczEoKSkgPj4gKHJzMigpICYgMHgx RikpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyNlbmRpZiAvKiBWOF9UQVJHRVRfQVJDSF82 NF9CSVQgKi8KKysgICAgICAvLyBUT0RPOiBBZGQgUklTQ1YgTSBleHRlbnNpb24gbWFjcm8KKysg ICAgY2FzZSBST19NVUw6IHsKKysgICAgICBzZXRfcmQocnMxKCkgKiByczIoKSk7CisrICAgICAg YnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19NVUxIOiB7CisrICAgICAgc2V0X3JkKG11bGgo cnMxKCksIHJzMigpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19NVUxI U1U6IHsKKysgICAgICBzZXRfcmQobXVsaHN1KHJzMSgpLCByczIoKSkpOworKyAgICAgIGJyZWFr OworKyAgICB9CisrICAgIGNhc2UgUk9fTVVMSFU6IHsKKysgICAgICBzZXRfcmQobXVsaHUocnMx KCksIHJzMigpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19ESVY6IHsK KysgICAgICBzcmVnX3QgbGhzID0gc2V4dF94bGVuKHJzMSgpKTsKKysgICAgICBzcmVnX3Qgcmhz ID0gc2V4dF94bGVuKHJzMigpKTsKKysgICAgICBpZiAocmhzID09IDApIHsKKysgICAgICAgIHNl dF9yZCgtMSk7CisrICAgICAgfSBlbHNlIGlmIChsaHMgPT0gSU5UNjRfTUlOICYmIHJocyA9PSAt MSkgeworKyAgICAgICAgc2V0X3JkKGxocyk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIHNl dF9yZChzZXh0X3hsZW4obGhzIC8gcmhzKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2UgUk9fRElWVTogeworKyAgICAgIHJlZ190IGxocyA9IHpleHRfeGxlbihy czEoKSk7CisrICAgICAgcmVnX3QgcmhzID0gemV4dF94bGVuKHJzMigpKTsKKysgICAgICBpZiAo cmhzID09IDApIHsKKysgICAgICAgIHNldF9yZChVSU5UNjRfTUFYKTsKKysgICAgICB9IGVsc2Ug eworKyAgICAgICAgc2V0X3JkKHpleHRfeGxlbihsaHMgLyByaHMpKTsKKysgICAgICB9CisrICAg ICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19SRU06IHsKKysgICAgICBzcmVnX3QgbGhz ID0gc2V4dF94bGVuKHJzMSgpKTsKKysgICAgICBzcmVnX3QgcmhzID0gc2V4dF94bGVuKHJzMigp KTsKKysgICAgICBpZiAocmhzID09IDApIHsKKysgICAgICAgIHNldF9yZChsaHMpOworKyAgICAg IH0gZWxzZSBpZiAobGhzID09IElOVDY0X01JTiAmJiByaHMgPT0gLTEpIHsKKysgICAgICAgIHNl dF9yZCgwKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgc2V0X3JkKHNleHRfeGxlbihsaHMg JSByaHMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19S RU1VOiB7CisrICAgICAgcmVnX3QgbGhzID0gemV4dF94bGVuKHJzMSgpKTsKKysgICAgICByZWdf dCByaHMgPSB6ZXh0X3hsZW4ocnMyKCkpOworKyAgICAgIGlmIChyaHMgPT0gMCkgeworKyAgICAg ICAgc2V0X3JkKGxocyk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIHNldF9yZCh6ZXh0X3hs ZW4obGhzICUgcmhzKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrI2lmZGVm IFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICBjYXNlIFJPX01VTFc6IHsKKysgICAgICBzZXRf cmQoc2V4dDMyKHNleHQzMihyczEoKSkgKiBzZXh0MzIocnMyKCkpKSk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgY2FzZSBST19ESVZXOiB7CisrICAgICAgc3JlZ190IGxocyA9IHNleHQz MihyczEoKSk7CisrICAgICAgc3JlZ190IHJocyA9IHNleHQzMihyczIoKSk7CisrICAgICAgaWYg KHJocyA9PSAwKSB7CisrICAgICAgICBzZXRfcmQoLTEpOworKyAgICAgIH0gZWxzZSBpZiAobGhz ID09IElOVDMyX01JTiAmJiByaHMgPT0gLTEpIHsKKysgICAgICAgIHNldF9yZChsaHMpOworKyAg ICAgIH0gZWxzZSB7CisrICAgICAgICBzZXRfcmQoc2V4dDMyKGxocyAvIHJocykpOworKyAgICAg IH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0RJVlVXOiB7CisrICAgICAg cmVnX3QgbGhzID0gemV4dDMyKHJzMSgpKTsKKysgICAgICByZWdfdCByaHMgPSB6ZXh0MzIocnMy KCkpOworKyAgICAgIGlmIChyaHMgPT0gMCkgeworKyAgICAgICAgc2V0X3JkKFVJTlQzMl9NQVgp OworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBzZXRfcmQoemV4dDMyKGxocyAvIHJocykpOwor KyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX1JFTVc6IHsKKysg ICAgICBzcmVnX3QgbGhzID0gc2V4dDMyKHJzMSgpKTsKKysgICAgICBzcmVnX3QgcmhzID0gc2V4 dDMyKHJzMigpKTsKKysgICAgICBpZiAocmhzID09IDApIHsKKysgICAgICAgIHNldF9yZChsaHMp OworKyAgICAgIH0gZWxzZSBpZiAobGhzID09IElOVDMyX01JTiAmJiByaHMgPT0gLTEpIHsKKysg ICAgICAgIHNldF9yZCgwKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgc2V0X3JkKHNleHQz MihsaHMgJSByaHMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2Fz ZSBST19SRU1VVzogeworKyAgICAgIHJlZ190IGxocyA9IHpleHQzMihyczEoKSk7CisrICAgICAg cmVnX3QgcmhzID0gemV4dDMyKHJzMigpKTsKKysgICAgICBpZiAocmhzID09IDApIHsKKysgICAg ICAgIHNldF9yZCh6ZXh0MzIobGhzKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIHNldF9y ZCh6ZXh0MzIobGhzICUgcmhzKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9Cisr I2VuZGlmIC8qVjhfVEFSR0VUX0FSQ0hfNjRfQklUKi8KKysgICAgICAvLyBUT0RPOiBFbmQgQWRk IFJJU0NWIE0gZXh0ZW5zaW9uIG1hY3JvCisrICAgIGRlZmF1bHQ6IHsKKysgICAgICBzd2l0Y2gg KGluc3RyXy5CYXNlT3Bjb2RlKCkpIHsKKysgICAgICAgIGNhc2UgQU1POgorKyAgICAgICAgICBE ZWNvZGVSVlJBVHlwZSgpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgT1BfRlA6 CisrICAgICAgICAgIERlY29kZVJWUkZQVHlwZSgpOworKyAgICAgICAgICBicmVhazsKKysgICAg ICAgIGRlZmF1bHQ6CisrICAgICAgICAgIFVOU1VQUE9SVEVEKCk7CisrICAgICAgfQorKyAgICB9 CisrICB9CisrfQorKworK2Zsb2F0IFNpbXVsYXRvcjo6Um91bmRGMkZIZWxwZXIoZmxvYXQgaW5w dXRfdmFsLCBpbnQgcm1vZGUpIHsKKysgIGlmIChybW9kZSA9PSBEWU4pIHJtb2RlID0gZ2V0X2R5 bmFtaWNfcm91bmRpbmdfbW9kZSgpOworKworKyAgZmxvYXQgcm91bmRlZCA9IDA7CisrICBzd2l0 Y2ggKHJtb2RlKSB7CisrICAgIGNhc2UgUk5FOiB7ICAvLyBSb3VuZCB0byBOZWFyZXN0LCB0aWVz dCB0byBFdmVuCisrICAgICAgaW50IGN1cnJfbW9kZSA9IGZlZ2V0cm91bmQoKTsKKysgICAgICBm ZXNldHJvdW5kKEZFX1RPTkVBUkVTVCk7CisrICAgICAgcm91bmRlZCA9IHN0ZDo6bmVhcmJ5aW50 ZihpbnB1dF92YWwpOworKyAgICAgIGZlc2V0cm91bmQoY3Vycl9tb2RlKTsKKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBjYXNlIFJUWjogIC8vIFJvdW5kIHRvd2FyZHMgWmVybworKyAgICAg IHJvdW5kZWQgPSBzdGQ6OnRydW5jZihpbnB1dF92YWwpOworKyAgICAgIGJyZWFrOworKyAgICBj YXNlIFJETjogIC8vIFJvdW5kIERvd24gKHRvd2FyZHMgLWluZmluaXR5KQorKyAgICAgIHJvdW5k ZWQgPSBmbG9vcmYoaW5wdXRfdmFsKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBSVVA6ICAv LyBSb3VuZCBVcCAodG93YXJkcyAraW5maW5pdHkpCisrICAgICAgcm91bmRlZCA9IGNlaWxmKGlu cHV0X3ZhbCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk1NOiAgLy8gUm91bmQgdG8gTmVh cmVzdCwgdGllc3QgdG8gTWF4IE1hZ25pdHVkZQorKyAgICAgIHJvdW5kZWQgPSBzdGQ6OnJvdW5k ZihpbnB1dF92YWwpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOUkVB Q0hBQkxFKCk7CisrICB9CisrCisrICByZXR1cm4gcm91bmRlZDsKKyt9CisrCisrZG91YmxlIFNp bXVsYXRvcjo6Um91bmRGMkZIZWxwZXIoZG91YmxlIGlucHV0X3ZhbCwgaW50IHJtb2RlKSB7Cisr ICBpZiAocm1vZGUgPT0gRFlOKSBybW9kZSA9IGdldF9keW5hbWljX3JvdW5kaW5nX21vZGUoKTsK KysKKysgIGRvdWJsZSByb3VuZGVkID0gMDsKKysgIHN3aXRjaCAocm1vZGUpIHsKKysgICAgY2Fz ZSBSTkU6IHsgIC8vIFJvdW5kIHRvIE5lYXJlc3QsIHRpZXN0IHRvIEV2ZW4KKysgICAgICBpbnQg Y3Vycl9tb2RlID0gZmVnZXRyb3VuZCgpOworKyAgICAgIGZlc2V0cm91bmQoRkVfVE9ORUFSRVNU KTsKKysgICAgICByb3VuZGVkID0gc3RkOjpuZWFyYnlpbnQoaW5wdXRfdmFsKTsKKysgICAgICBm ZXNldHJvdW5kKGN1cnJfbW9kZSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBS VFo6ICAvLyBSb3VuZCB0b3dhcmRzIFplcm8KKysgICAgICByb3VuZGVkID0gc3RkOjp0cnVuYyhp bnB1dF92YWwpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJETjogIC8vIFJvdW5kIERvd24g KHRvd2FyZHMgLWluZmluaXR5KQorKyAgICAgIHJvdW5kZWQgPSBzdGQ6OmZsb29yKGlucHV0X3Zh bCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUlVQOiAgLy8gUm91bmQgVXAgKHRvd2FyZHMg K2luZmluaXR5KQorKyAgICAgIHJvdW5kZWQgPSBzdGQ6OmNlaWwoaW5wdXRfdmFsKTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBSTU06ICAvLyBSb3VuZCB0byBOZWFyZXN0LCB0aWVzdCB0byBN YXggTWFnbml0dWRlCisrICAgICAgcm91bmRlZCA9IHN0ZDo6cm91bmQoaW5wdXRfdmFsKTsKKysg ICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgpOworKyAgfQor KyAgcmV0dXJuIHJvdW5kZWQ7CisrfQorKworKy8vIGNvbnZlcnQgcm91bmRlZCBmbG9hdGluZy1w b2ludCB0byBpbnRlZ2VyIHR5cGVzLCBoYW5kbGUgaW5wdXQgdmFsdWVzIHRoYXQKKysvLyBhcmUg b3V0LW9mLXJhbmdlLCB1bmRlcmZsb3csIG9yIE5hTiwgYW5kIHNldCBhcHByb3ByaWF0ZSBmZmxh Z3MKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgSV9UWVBFLCB0eXBlbmFtZSBGX1RZUEU+CisrSV9UWVBF IFNpbXVsYXRvcjo6Um91bmRGMklIZWxwZXIoRl9UWVBFIG9yaWdpbmFsLCBpbnQgcm1vZGUpIHsK KysgIERDSEVDSyhzdGQ6OmlzX2ludGVncmFsPElfVFlQRT46OnZhbHVlKTsKKysKKysgIERDSEVD Sygoc3RkOjppc19zYW1lPEZfVFlQRSwgZmxvYXQ+Ojp2YWx1ZSB8fAorKyAgICAgICAgICBzdGQ6 OmlzX3NhbWU8Rl9UWVBFLCBkb3VibGU+Ojp2YWx1ZSkpOworKworKyAgSV9UWVBFIG1heF9pID0g c3RkOjpudW1lcmljX2xpbWl0czxJX1RZUEU+OjptYXgoKTsKKysgIElfVFlQRSBtaW5faSA9IHN0 ZDo6bnVtZXJpY19saW1pdHM8SV9UWVBFPjo6bWluKCk7CisrCisrICBpZiAoIXN0ZDo6aXNmaW5p dGUob3JpZ2luYWwpKSB7CisrICAgIHNldF9mZmxhZ3Moa0ludmFsaWRPcGVyYXRpb24pOworKyAg ICBpZiAoc3RkOjppc25hbihvcmlnaW5hbCkgfHwKKysgICAgICAgIG9yaWdpbmFsID09IHN0ZDo6 bnVtZXJpY19saW1pdHM8Rl9UWVBFPjo6aW5maW5pdHkoKSkgeworKyAgICAgIHJldHVybiBtYXhf aTsKKysgICAgfSBlbHNlIHsKKysgICAgICBEQ0hFQ0sob3JpZ2luYWwgPT0gLXN0ZDo6bnVtZXJp Y19saW1pdHM8Rl9UWVBFPjo6aW5maW5pdHkoKSk7CisrICAgICAgcmV0dXJuIG1pbl9pOworKyAg ICB9CisrICB9CisrCisrICBGX1RZUEUgcm91bmRlZCA9IFJvdW5kRjJGSGVscGVyKG9yaWdpbmFs LCBybW9kZSk7CisrICBpZiAob3JpZ2luYWwgIT0gcm91bmRlZCkgc2V0X2ZmbGFncyhrSW5leGFj dCk7CisrCisrICBpZiAoIXN0ZDo6aXNmaW5pdGUocm91bmRlZCkpIHsKKysgICAgc2V0X2ZmbGFn cyhrSW52YWxpZE9wZXJhdGlvbik7CisrICAgIGlmIChzdGQ6OmlzbmFuKHJvdW5kZWQpIHx8Cisr ICAgICAgICByb3VuZGVkID09IHN0ZDo6bnVtZXJpY19saW1pdHM8Rl9UWVBFPjo6aW5maW5pdHko KSkgeworKyAgICAgIHJldHVybiBtYXhfaTsKKysgICAgfSBlbHNlIHsKKysgICAgICBEQ0hFQ0so cm91bmRlZCA9PSAtc3RkOjpudW1lcmljX2xpbWl0czxGX1RZUEU+OjppbmZpbml0eSgpKTsKKysg ICAgICByZXR1cm4gbWluX2k7CisrICAgIH0KKysgIH0KKysKKysgIC8vIEZJWE1FIChSSVNDVik6 IGNvbXBhcmlzb24gb2Ygcm91bmRlZCAoZmxvYXQpIGFuZCBtYXhfaSAoaW50ZWdlcikgbWF5IG5v dAorKyAgLy8gYmUgcHJlY2lzZSBiZWNhdXNlIG1heF9pIGlzIHByb21vdGVkIHRvIGZsb2F0aW5n IHBvaW50IGR1cmluZyBjb21wYXJpc29uLgorKyAgLy8gUm91bmRpbmcgdXAgbWF5IGhhcHBlbiB3 aGVuIGNvbnZlcnRpbmcgbWF4X2kgdG8gZmxvYXRpbmctcG9pbnQsIGUuZy4sCisrICAvLyBtYXg8 dWludDY0PiBpcyA5MjIzMzcyMDM2ODU0Nzc1ODA3IHZzLiAoZG91YmxlKW1heDx1aW50NjQ+IGlz CisrICAvLyA5MjIzMzcyMDM2ODU0Nzc1ODA4LjAwMDAwMDAwMDAwMDAwCisrCisrICAvLyBTaW5j ZSBpbnRlZ2VyIG1heCB2YWx1ZXMgYXJlIGVpdGhlciBhbGwgMXMgKGZvciB1bnNpZ25lZCkgb3Ig YWxsIDFzCisrICAvLyBleGNlcHQgZm9yIHNpZ24tYml0IChmb3Igc2lnbmVkKSwgdGhleSBjYW5u b3QgYmUgcmVwcmVzZW50ZWQgcHJlY2lzZWx5IGluCisrICAvLyBmbG9hdGluZyBwb2ludCwgaW4g b3JkZXIgdG8gcHJlY2lzZWx5IHRlbGwgd2hldGhlciB0aGUgcm91bmRlZCBmbG9hdGluZworKyAg Ly8gcG9pbnQgaXMgd2l0aGluIHRoZSBtYXggcmFuZ2UsIHdlIGNvbXBhcmUgYWdhaW5zdCAobWF4 X2krMSkgd2hpY2ggd291bGQKKysgIC8vIGhhdmUgYSBzaW5nbGUgMSB3LyBtYW55IHRyYWlsaW5n IHplcm9zCisrICBmbG9hdCBtYXhfaV9wbHVzXzEgPQorKyAgICAgIHN0ZDo6aXNfc2FtZTx1aW50 NjRfdCwgSV9UWVBFPjo6dmFsdWUKKysgICAgICAgICAgPyAweDFwNjRmICAvLyB1aW50NjRfdDo6 bWF4ICsgMSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW4gaW50ZWdlcnMsCisrICAgICAgICAgICAg ICAgICAgICAgLy8gc28gdXNlIGl0cyBmbG9hdCByZXByZXNlbnRhdGlvbiBkaXJlY3RseQorKyAg ICAgICAgICA6IHN0YXRpY19jYXN0PGZsb2F0PihzdGF0aWNfY2FzdDx1aW50NjRfdD4obWF4X2kp ICsgMSk7CisrICBpZiAocm91bmRlZCA+PSBtYXhfaV9wbHVzXzEpIHsKKysgICAgc2V0X2ZmbGFn cyhrT3ZlcmZsb3cgfCBrSW52YWxpZE9wZXJhdGlvbik7CisrICAgIHJldHVybiBtYXhfaTsKKysg IH0KKysKKysgIC8vIFNpbmNlIG1pbl9pIChlaXRoZXIgMCBmb3IgdW5zaWduZWQsIG9yIGZvciBz aWduZWQpIGlzIHJlcHJlc2VudGVkCisrICAvLyBwcmVjaXNlbHkgaW4gZmxvYXRpbmctcG9pbnQs ICBjb21wYXJpbmcgcm91bmRlZCBkaXJlY3RseSBhZ2FpbnN0IG1pbl9pCisrICBpZiAocm91bmRl ZCA8PSBtaW5faSkgeworKyAgICBpZiAocm91bmRlZCA8IG1pbl9pKSBzZXRfZmZsYWdzKGtPdmVy ZmxvdyB8IGtJbnZhbGlkT3BlcmF0aW9uKTsKKysgICAgcmV0dXJuIG1pbl9pOworKyAgfQorKwor KyAgRl9UWVBFIHVuZGVyZmxvd19mdmFsID0KKysgICAgICBzdGQ6OmlzX3NhbWU8Rl9UWVBFLCBm bG9hdD46OnZhbHVlID8gRkxUX01JTiA6IERCTF9NSU47CisrICBpZiAocm91bmRlZCA8IHVuZGVy Zmxvd19mdmFsICYmIHJvdW5kZWQgPiAtdW5kZXJmbG93X2Z2YWwgJiYgcm91bmRlZCAhPSAwKSB7 CisrICAgIHNldF9mZmxhZ3Moa1VuZGVyZmxvdyk7CisrICB9CisrCisrICByZXR1cm4gc3RhdGlj X2Nhc3Q8SV9UWVBFPihyb3VuZGVkKTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisr c3RhdGljIGludDY0X3QgRmNsYXNzSGVscGVyKFQgdmFsdWUpIHsKKysgIHN3aXRjaCAoc3RkOjpm cGNsYXNzaWZ5KHZhbHVlKSkgeworKyAgICBjYXNlIEZQX0lORklOSVRFOgorKyAgICAgIHJldHVy biAoc3RkOjpzaWduYml0KHZhbHVlKSA/IGtOZWdhdGl2ZUluZmluaXR5IDoga1Bvc2l0aXZlSW5m aW5pdHkpOworKyAgICBjYXNlIEZQX05BTjoKKysgICAgICByZXR1cm4gKGlzU25hbih2YWx1ZSkg PyBrU2lnbmFsaW5nTmFOIDoga1F1aWV0TmFOKTsKKysgICAgY2FzZSBGUF9OT1JNQUw6CisrICAg ICAgcmV0dXJuIChzdGQ6OnNpZ25iaXQodmFsdWUpID8ga05lZ2F0aXZlTm9ybWFsTnVtYmVyCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoga1Bvc2l0aXZlTm9ybWFsTnVtYmVy KTsKKysgICAgY2FzZSBGUF9TVUJOT1JNQUw6CisrICAgICAgcmV0dXJuIChzdGQ6OnNpZ25iaXQo dmFsdWUpID8ga05lZ2F0aXZlU3Vibm9ybWFsTnVtYmVyCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDoga1Bvc2l0aXZlU3Vibm9ybWFsTnVtYmVyKTsKKysgICAgY2FzZSBGUF9a RVJPOgorKyAgICAgIHJldHVybiAoc3RkOjpzaWduYml0KHZhbHVlKSA/IGtOZWdhdGl2ZVplcm8g OiBrUG9zaXRpdmVaZXJvKTsKKysgICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgpOwor KyAgfQorK30KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKytib29sIFNpbXVsYXRvcjo6Q29t cGFyZUZIZWxwZXIoVCBpbnB1dDEsIFQgaW5wdXQyLCBGUFVDb25kaXRpb24gY2MpIHsKKysgIERD SEVDSyhzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZSk7CisrICBib29sIHJlc3VsdCA9 IGZhbHNlOworKyAgc3dpdGNoIChjYykgeworKyAgICBjYXNlIExUOgorKyAgICBjYXNlIExFOgor KyAgICAgIC8vIEZMVCwgRkxFIGFyZSBzaWduYWxpbmcgY29tcGFyZXMKKysgICAgICBpZiAoc3Rk Ojppc25hbihpbnB1dDEpIHx8IHN0ZDo6aXNuYW4oaW5wdXQyKSkgeworKyAgICAgICAgc2V0X2Zm bGFncyhrSW52YWxpZE9wZXJhdGlvbik7CisrICAgICAgICByZXN1bHQgPSBmYWxzZTsKKysgICAg ICB9IGVsc2UgeworKyAgICAgICAgcmVzdWx0ID0gKGNjID09IExUKSA/IChpbnB1dDEgPCBpbnB1 dDIpIDogKGlucHV0MSA8PSBpbnB1dDIpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysKKysg ICAgY2FzZSBFUToKKysgICAgICBpZiAoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6c2lnbmFsaW5n X05hTigpID09IGlucHV0MSB8fAorKyAgICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+Ojpz aWduYWxpbmdfTmFOKCkgPT0gaW5wdXQyKSB7CisrICAgICAgICBzZXRfZmZsYWdzKGtJbnZhbGlk T3BlcmF0aW9uKTsKKysgICAgICB9CisrICAgICAgaWYgKHN0ZDo6aXNuYW4oaW5wdXQxKSB8fCBz dGQ6OmlzbmFuKGlucHV0MikpIHsKKysgICAgICAgIHJlc3VsdCA9IGZhbHNlOworKyAgICAgIH0g ZWxzZSB7CisrICAgICAgICByZXN1bHQgPSAoaW5wdXQxID09IGlucHV0Mik7CisrICAgICAgfQor KyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7Cisr ICB9CisrICByZXR1cm4gcmVzdWx0OworK30KKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKytz dGF0aWMgaW5saW5lIGJvb2wgaXNfaW52YWxpZF9mbXVsKFQgc3JjMSwgVCBzcmMyKSB7CisrICBy ZXR1cm4gKGlzaW5mKHNyYzEpICYmIHNyYzIgPT0gc3RhdGljX2Nhc3Q8VD4oMC4wKSkgfHwKKysg ICAgICAgICAoc3JjMSA9PSBzdGF0aWNfY2FzdDxUPigwLjApICYmIGlzaW5mKHNyYzIpKTsKKyt9 CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisrc3RhdGljIGlubGluZSBib29sIGlzX2ludmFs aWRfZmFkZChUIHNyYzEsIFQgc3JjMikgeworKyAgcmV0dXJuIChpc2luZihzcmMxKSAmJiBpc2lu ZihzcmMyKSAmJgorKyAgICAgICAgICBzdGQ6OnNpZ25iaXQoc3JjMSkgIT0gc3RkOjpzaWduYml0 KHNyYzIpKTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisrc3RhdGljIGlubGluZSBi b29sIGlzX2ludmFsaWRfZnN1YihUIHNyYzEsIFQgc3JjMikgeworKyAgcmV0dXJuIChpc2luZihz cmMxKSAmJiBpc2luZihzcmMyKSAmJgorKyAgICAgICAgICBzdGQ6OnNpZ25iaXQoc3JjMSkgPT0g c3RkOjpzaWduYml0KHNyYzIpKTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisrc3Rh dGljIGlubGluZSBib29sIGlzX2ludmFsaWRfZmRpdihUIHNyYzEsIFQgc3JjMikgeworKyAgcmV0 dXJuICgoc3JjMSA9PSAwICYmIHNyYzIgPT0gMCkgfHwgKGlzaW5mKHNyYzEpICYmIGlzaW5mKHNy YzIpKSk7CisrfQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorK3N0YXRpYyBpbmxpbmUgYm9v bCBpc19pbnZhbGlkX2ZzcXJ0KFQgc3JjMSkgeworKyAgcmV0dXJuIChzcmMxIDwgMCk7CisrfQor KworK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVlJBVHlwZSgpIHsKKysgIC8vIFRPRE86IEFkZCBt YWNybyBmb3IgUklTQ1YgQSBleHRlbnNpb24KKysgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIEEg ZXh0ZW5zaW9uIGluc3RydWN0aW9ucyBiZWNhdXNlIGl0IHVzZXMgZnVuYzUKKysgIC8vIEZvciBh bGwgQSBleHRlbnNpb24gaW5zdHJ1Y3Rpb24sIFY4IHNpbXVsYXRvciBpcyBwdXJlIHNlcXVlbnRp YWwuIE5vCisrICAvLyBNZW1vcnkgYWRkcmVzcyBsb2NrIG9yIG90aGVyIHN5bmNocm9uaXphaXRv biBiZWhhdmlvcnMuCisrICBzd2l0Y2ggKGluc3RyXy5JbnN0cnVjdGlvbkJpdHMoKSAmIGtSQVR5 cGVNYXNrKSB7CisrICAgIGNhc2UgUk9fTFJfVzogeworKyAgICAgIGJhc2U6Ok11dGV4R3VhcmQg bG9ja19ndWFyZCgmR2xvYmFsTW9uaXRvcjo6R2V0KCktPm11dGV4KTsKKysgICAgICBpbnQ2NF90 IGFkZHIgPSByczEoKTsKKysgICAgICBhdXRvIHZhbCA9IFJlYWRNZW08aW50MzJfdD4oYWRkciwg aW5zdHJfLmluc3RyKCkpOworKyAgICAgIHNldF9yZChzZXh0MzIodmFsKSwgZmFsc2UpOworKyAg ICAgIFRyYWNlTWVtUmQoYWRkciwgdmFsLCBnZXRfcmVnaXN0ZXIocmRfcmVnKCkpKTsKKysgICAg ICBsb2NhbF9tb25pdG9yXy5Ob3RpZnlMb2FkTGlua2VkKGFkZHIsIFRyYW5zYWN0aW9uU2l6ZTo6 V29yZCk7CisrICAgICAgR2xvYmFsTW9uaXRvcjo6R2V0KCktPk5vdGlmeUxvYWRMaW5rZWRfTG9j a2VkKGFkZHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZnbG9iYWxfbW9uaXRvcl90aHJlYWRfKTsKKysgICAgICBicmVhazsKKysgICAgfQor KyAgICBjYXNlIFJPX1NDX1c6IHsKKysgICAgICBpbnQ2NF90IGFkZHIgPSByczEoKTsKKysgICAg ICBiYXNlOjpNdXRleEd1YXJkIGxvY2tfZ3VhcmQoJkdsb2JhbE1vbml0b3I6OkdldCgpLT5tdXRl eCk7CisrICAgICAgaWYgKGxvY2FsX21vbml0b3JfLk5vdGlmeVN0b3JlQ29uZGl0aW9uYWwoYWRk ciwgVHJhbnNhY3Rpb25TaXplOjpXb3JkKSAmJgorKyAgICAgICAgICBHbG9iYWxNb25pdG9yOjpH ZXQoKS0+Tm90aWZ5U3RvcmVDb25kaXRpb25hbF9Mb2NrZWQoCisrICAgICAgICAgICAgICBhZGRy LCAmZ2xvYmFsX21vbml0b3JfdGhyZWFkXykpIHsKKysgICAgICAgIGxvY2FsX21vbml0b3JfLk5v dGlmeVN0b3JlKCk7CisrICAgICAgICBHbG9iYWxNb25pdG9yOjpHZXQoKS0+Tm90aWZ5U3RvcmVf TG9ja2VkKCZnbG9iYWxfbW9uaXRvcl90aHJlYWRfKTsKKysgICAgICAgIFdyaXRlTWVtPGludDMy X3Q+KHJzMSgpLCAoaW50MzJfdClyczIoKSwgaW5zdHJfLmluc3RyKCkpOworKyAgICAgICAgc2V0 X3JkKDAsIGZhbHNlKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgc2V0X3JkKDEsIGZhbHNl KTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19BTU9TV0FQ X1c6IHsKKysgICAgICBzZXRfcmQoc2V4dDMyKGFtbzx1aW50MzJfdD4oCisrICAgICAgICAgIHJz MSgpLCBbJl0odWludDMyX3QgbGhzKSB7IHJldHVybiAodWludDMyX3QpcnMyKCk7IH0sIGluc3Ry Xy5pbnN0cigpLAorKyAgICAgICAgICBXT1JEKSkpOworKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIGNhc2UgUk9fQU1PQUREX1c6IHsKKysgICAgICBzZXRfcmQoc2V4dDMyKGFtbzx1aW50MzJf dD4oCisrICAgICAgICAgIHJzMSgpLCBbJl0odWludDMyX3QgbGhzKSB7IHJldHVybiBsaHMgKyAo dWludDMyX3QpcnMyKCk7IH0sCisrICAgICAgICAgIGluc3RyXy5pbnN0cigpLCBXT1JEKSkpOwor KyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fQU1PWE9SX1c6IHsKKysgICAgICBz ZXRfcmQoc2V4dDMyKGFtbzx1aW50MzJfdD4oCisrICAgICAgICAgIHJzMSgpLCBbJl0odWludDMy X3QgbGhzKSB7IHJldHVybiBsaHMgXiAodWludDMyX3QpcnMyKCk7IH0sCisrICAgICAgICAgIGlu c3RyXy5pbnN0cigpLCBXT1JEKSkpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Ug Uk9fQU1PQU5EX1c6IHsKKysgICAgICBzZXRfcmQoc2V4dDMyKGFtbzx1aW50MzJfdD4oCisrICAg ICAgICAgIHJzMSgpLCBbJl0odWludDMyX3QgbGhzKSB7IHJldHVybiBsaHMgJiAodWludDMyX3Qp cnMyKCk7IH0sCisrICAgICAgICAgIGluc3RyXy5pbnN0cigpLCBXT1JEKSkpOworKyAgICAgIGJy ZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fQU1PT1JfVzogeworKyAgICAgIHNldF9yZChzZXh0 MzIoYW1vPHVpbnQzMl90PigKKysgICAgICAgICAgcnMxKCksIFsmXSh1aW50MzJfdCBsaHMpIHsg cmV0dXJuIGxocyB8ICh1aW50MzJfdClyczIoKTsgfSwKKysgICAgICAgICAgaW5zdHJfLmluc3Ry KCksIFdPUkQpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19BTU9NSU5f VzogeworKyAgICAgIHNldF9yZChzZXh0MzIoYW1vPGludDMyX3Q+KAorKyAgICAgICAgICByczEo KSwgWyZdKGludDMyX3QgbGhzKSB7IHJldHVybiBzdGQ6Om1pbihsaHMsIChpbnQzMl90KXJzMigp KTsgfSwKKysgICAgICAgICAgaW5zdHJfLmluc3RyKCksIFdPUkQpKSk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgY2FzZSBST19BTU9NQVhfVzogeworKyAgICAgIHNldF9yZChzZXh0MzIo YW1vPGludDMyX3Q+KAorKyAgICAgICAgICByczEoKSwgWyZdKGludDMyX3QgbGhzKSB7IHJldHVy biBzdGQ6Om1heChsaHMsIChpbnQzMl90KXJzMigpKTsgfSwKKysgICAgICAgICAgaW5zdHJfLmlu c3RyKCksIFdPUkQpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19BTU9N SU5VX1c6IHsKKysgICAgICBzZXRfcmQoc2V4dDMyKGFtbzx1aW50MzJfdD4oCisrICAgICAgICAg IHJzMSgpLCBbJl0odWludDMyX3QgbGhzKSB7IHJldHVybiBzdGQ6Om1pbihsaHMsICh1aW50MzJf dClyczIoKSk7IH0sCisrICAgICAgICAgIGluc3RyXy5pbnN0cigpLCBXT1JEKSkpOworKyAgICAg IGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fQU1PTUFYVV9XOiB7CisrICAgICAgc2V0X3Jk KHNleHQzMihhbW88dWludDMyX3Q+KAorKyAgICAgICAgICByczEoKSwgWyZdKHVpbnQzMl90IGxo cykgeyByZXR1cm4gc3RkOjptYXgobGhzLCAodWludDMyX3QpcnMyKCkpOyB9LAorKyAgICAgICAg ICBpbnN0cl8uaW5zdHIoKSwgV09SRCkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyNpZmRl ZiBWOF9UQVJHRVRfQVJDSF82NF9CSVQKKysgICAgY2FzZSBST19MUl9EOiB7CisrICAgICAgYmFz ZTo6TXV0ZXhHdWFyZCBsb2NrX2d1YXJkKCZHbG9iYWxNb25pdG9yOjpHZXQoKS0+bXV0ZXgpOwor KyAgICAgIGludDY0X3QgYWRkciA9IHJzMSgpOworKyAgICAgIGF1dG8gdmFsID0gUmVhZE1lbTxp bnQ2NF90PihhZGRyLCBpbnN0cl8uaW5zdHIoKSk7CisrICAgICAgc2V0X3JkKHZhbCwgZmFsc2Up OworKyAgICAgIFRyYWNlTWVtUmQoYWRkciwgdmFsLCBnZXRfcmVnaXN0ZXIocmRfcmVnKCkpKTsK KysgICAgICBsb2NhbF9tb25pdG9yXy5Ob3RpZnlMb2FkTGlua2VkKGFkZHIsIFRyYW5zYWN0aW9u U2l6ZTo6RG91YmxlV29yZCk7CisrICAgICAgR2xvYmFsTW9uaXRvcjo6R2V0KCktPk5vdGlmeUxv YWRMaW5rZWRfTG9ja2VkKGFkZHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZnbG9iYWxfbW9uaXRvcl90aHJlYWRfKTsKKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBjYXNlIFJPX1NDX0Q6IHsKKysgICAgICBpbnQ2NF90IGFkZHIgPSBy czEoKTsKKysgICAgICBiYXNlOjpNdXRleEd1YXJkIGxvY2tfZ3VhcmQoJkdsb2JhbE1vbml0b3I6 OkdldCgpLT5tdXRleCk7CisrICAgICAgaWYgKGxvY2FsX21vbml0b3JfLk5vdGlmeVN0b3JlQ29u ZGl0aW9uYWwoYWRkciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUcmFuc2FjdGlvblNpemU6OkRvdWJsZVdvcmQpICYmCisrICAgICAgICAgIChHbG9i YWxNb25pdG9yOjpHZXQoKS0+Tm90aWZ5U3RvcmVDb25kaXRpb25hbF9Mb2NrZWQoCisrICAgICAg ICAgICAgICBhZGRyLCAmZ2xvYmFsX21vbml0b3JfdGhyZWFkXykpKSB7CisrICAgICAgICBHbG9i YWxNb25pdG9yOjpHZXQoKS0+Tm90aWZ5U3RvcmVfTG9ja2VkKCZnbG9iYWxfbW9uaXRvcl90aHJl YWRfKTsKKysgICAgICAgIFdyaXRlTWVtPGludDY0X3Q+KHJzMSgpLCByczIoKSwgaW5zdHJfLmlu c3RyKCkpOworKyAgICAgICAgc2V0X3JkKDAsIGZhbHNlKTsKKysgICAgICB9IGVsc2UgeworKyAg ICAgICAgc2V0X3JkKDEsIGZhbHNlKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0K KysgICAgY2FzZSBST19BTU9TV0FQX0Q6IHsKKysgICAgICBzZXRfcmQoYW1vPGludDY0X3Q+KAor KyAgICAgICAgICByczEoKSwgWyZdKGludDY0X3QgbGhzKSB7IHJldHVybiByczIoKTsgfSwgaW5z dHJfLmluc3RyKCksIERXT1JEKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBS T19BTU9BRERfRDogeworKyAgICAgIHNldF9yZChhbW88aW50NjRfdD4oCisrICAgICAgICAgIHJz MSgpLCBbJl0oaW50NjRfdCBsaHMpIHsgcmV0dXJuIGxocyArIHJzMigpOyB9LCBpbnN0cl8uaW5z dHIoKSwKKysgICAgICAgICAgRFdPUkQpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBj YXNlIFJPX0FNT1hPUl9EOiB7CisrICAgICAgc2V0X3JkKGFtbzxpbnQ2NF90PigKKysgICAgICAg ICAgcnMxKCksIFsmXShpbnQ2NF90IGxocykgeyByZXR1cm4gbGhzIF4gcnMyKCk7IH0sIGluc3Ry Xy5pbnN0cigpLAorKyAgICAgICAgICBEV09SRCkpOworKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIGNhc2UgUk9fQU1PQU5EX0Q6IHsKKysgICAgICBzZXRfcmQoYW1vPGludDY0X3Q+KAorKyAg ICAgICAgICByczEoKSwgWyZdKGludDY0X3QgbGhzKSB7IHJldHVybiBsaHMgJiByczIoKTsgfSwg aW5zdHJfLmluc3RyKCksCisrICAgICAgICAgIERXT1JEKSk7CisrICAgICAgYnJlYWs7CisrICAg IH0KKysgICAgY2FzZSBST19BTU9PUl9EOiB7CisrICAgICAgc2V0X3JkKGFtbzxpbnQ2NF90PigK KysgICAgICAgICAgcnMxKCksIFsmXShpbnQ2NF90IGxocykgeyByZXR1cm4gbGhzIHwgcnMyKCk7 IH0sIGluc3RyXy5pbnN0cigpLAorKyAgICAgICAgICBEV09SRCkpOworKyAgICAgIGJyZWFrOwor KyAgICB9CisrICAgIGNhc2UgUk9fQU1PTUlOX0Q6IHsKKysgICAgICBzZXRfcmQoYW1vPGludDY0 X3Q+KAorKyAgICAgICAgICByczEoKSwgWyZdKGludDY0X3QgbGhzKSB7IHJldHVybiBzdGQ6Om1p bihsaHMsIHJzMigpKTsgfSwKKysgICAgICAgICAgaW5zdHJfLmluc3RyKCksIERXT1JEKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19BTU9NQVhfRDogeworKyAgICAgIHNl dF9yZChhbW88aW50NjRfdD4oCisrICAgICAgICAgIHJzMSgpLCBbJl0oaW50NjRfdCBsaHMpIHsg cmV0dXJuIHN0ZDo6bWF4KGxocywgcnMyKCkpOyB9LAorKyAgICAgICAgICBpbnN0cl8uaW5zdHIo KSwgRFdPUkQpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0FNT01JTlVf RDogeworKyAgICAgIHNldF9yZChhbW88dWludDY0X3Q+KAorKyAgICAgICAgICByczEoKSwgWyZd KHVpbnQ2NF90IGxocykgeyByZXR1cm4gc3RkOjptaW4obGhzLCAodWludDY0X3QpcnMyKCkpOyB9 LAorKyAgICAgICAgICBpbnN0cl8uaW5zdHIoKSwgRFdPUkQpKTsKKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBjYXNlIFJPX0FNT01BWFVfRDogeworKyAgICAgIHNldF9yZChhbW88dWludDY0 X3Q+KAorKyAgICAgICAgICByczEoKSwgWyZdKHVpbnQ2NF90IGxocykgeyByZXR1cm4gc3RkOjpt YXgobGhzLCAodWludDY0X3QpcnMyKCkpOyB9LAorKyAgICAgICAgICBpbnN0cl8uaW5zdHIoKSwg RFdPUkQpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyNlbmRpZiAvKlY4X1RBUkdFVF9BUkNI XzY0X0JJVCovCisrICAgIC8vIFRPRE86IEVuZCBBZGQgbWFjcm8gZm9yIFJJU0NWIEEgZXh0ZW5z aW9uCisrICAgIGRlZmF1bHQ6IHsKKysgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICB9CisrICB9 CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVlJGUFR5cGUoKSB7CisrICAvLyBPUF9G UCBpbnN0cnVjdGlvbnMgKEYvRCkgdXNlcyBmdW5jNyBmaXJzdC4gU29tZSBmdXJ0aGVyIHVzZXMg ZnVuMyBhbmQKKysgIC8vIHJzMigpCisrCisrICAvLyBrUkFUeXBlTWFzayBpcyBvbmx5IGZvciBm dW5jNworKyAgc3dpdGNoIChpbnN0cl8uSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrUkZQVHlwZU1hc2sp IHsKKysgICAgLy8gVE9ETzogQWRkIG1hY3JvIGZvciBSSVNDViBGIGV4dGVuc2lvbgorKyAgICBj YXNlIFJPX0ZBRERfUzogeworKyAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQgbW9k ZSkKKysgICAgICBhdXRvIGZuID0gW3RoaXNdKGZsb2F0IGZyczEsIGZsb2F0IGZyczIpIHsKKysg ICAgICAgIGlmIChpc19pbnZhbGlkX2ZhZGQoZnJzMSwgZnJzMikpIHsKKysgICAgICAgICAgdGhp cy0+c2V0X2ZmbGFncyhrSW52YWxpZE9wZXJhdGlvbik7CisrICAgICAgICAgIHJldHVybiBzdGQ6 Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CisrICAgICAgICB9IGVsc2Ugewor KyAgICAgICAgICByZXR1cm4gZnJzMSArIGZyczI7CisrICAgICAgICB9CisrICAgICAgfTsKKysg ICAgICBzZXRfZnJkKENhbm9uaWNhbGl6ZUZQVU9wMjxmbG9hdD4oZm4pKTsKKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZTVUJfUzogeworKyAgICAgIC8vIFRPRE86IHVzZSBy bSB2YWx1ZSAocm91bmQgbW9kZSkKKysgICAgICBhdXRvIGZuID0gW3RoaXNdKGZsb2F0IGZyczEs IGZsb2F0IGZyczIpIHsKKysgICAgICAgIGlmIChpc19pbnZhbGlkX2ZzdWIoZnJzMSwgZnJzMikp IHsKKysgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrSW52YWxpZE9wZXJhdGlvbik7CisrICAg ICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7Cisr ICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICByZXR1cm4gZnJzMSAtIGZyczI7CisrICAgICAg ICB9CisrICAgICAgfTsKKysgICAgICBzZXRfZnJkKENhbm9uaWNhbGl6ZUZQVU9wMjxmbG9hdD4o Zm4pKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZNVUxfUzogeworKyAg ICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQgbW9kZSkKKysgICAgICBhdXRvIGZuID0g W3RoaXNdKGZsb2F0IGZyczEsIGZsb2F0IGZyczIpIHsKKysgICAgICAgIGlmIChpc19pbnZhbGlk X2ZtdWwoZnJzMSwgZnJzMikpIHsKKysgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrSW52YWxp ZE9wZXJhdGlvbik7CisrICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0 Pjo6cXVpZXRfTmFOKCk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICByZXR1cm4gZnJz MSAqIGZyczI7CisrICAgICAgICB9CisrICAgICAgfTsKKysgICAgICBzZXRfZnJkKENhbm9uaWNh bGl6ZUZQVU9wMjxmbG9hdD4oZm4pKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNl IFJPX0ZESVZfUzogeworKyAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQgbW9kZSkK KysgICAgICBhdXRvIGZuID0gW3RoaXNdKGZsb2F0IGZyczEsIGZsb2F0IGZyczIpIHsKKysgICAg ICAgIGlmIChpc19pbnZhbGlkX2ZkaXYoZnJzMSwgZnJzMikpIHsKKysgICAgICAgICAgdGhpcy0+ c2V0X2ZmbGFncyhrSW52YWxpZE9wZXJhdGlvbik7CisrICAgICAgICAgIHJldHVybiBzdGQ6Om51 bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CisrICAgICAgICB9IGVsc2UgaWYgKGZy czIgPT0gMC4wZikgeworKyAgICAgICAgICB0aGlzLT5zZXRfZmZsYWdzKGtEaXZpZGVCeVplcm8p OworKyAgICAgICAgICByZXR1cm4gKHN0ZDo6c2lnbmJpdChmcnMxKSA9PSBzdGQ6OnNpZ25iaXQo ZnJzMikKKysgICAgICAgICAgICAgICAgICAgICAgPyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0 Pjo6aW5maW5pdHkoKQorKyAgICAgICAgICAgICAgICAgICAgICA6IC1zdGQ6Om51bWVyaWNfbGlt aXRzPGZsb2F0Pjo6aW5maW5pdHkoKSk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBy ZXR1cm4gZnJzMSAvIGZyczI7CisrICAgICAgICB9CisrICAgICAgfTsKKysgICAgICBzZXRfZnJk KENhbm9uaWNhbGl6ZUZQVU9wMjxmbG9hdD4oZm4pKTsKKysgICAgICBicmVhazsKKysgICAgfQor KyAgICBjYXNlIFJPX0ZTUVJUX1M6IHsKKysgICAgICBpZiAoaW5zdHJfLlJzMlZhbHVlKCkgPT0g MGIwMDAwMCkgeworKyAgICAgICAgLy8gVE9ETzogdXNlIHJtIHZhbHVlIChyb3VuZCBtb2RlKQor KyAgICAgICAgYXV0byBmbiA9IFt0aGlzXShmbG9hdCBmcnMpIHsKKysgICAgICAgICAgaWYgKGlz X2ludmFsaWRfZnNxcnQoZnJzKSkgeworKyAgICAgICAgICAgIHRoaXMtPnNldF9mZmxhZ3Moa0lu dmFsaWRPcGVyYXRpb24pOworKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRz PGZsb2F0Pjo6cXVpZXRfTmFOKCk7CisrICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAg cmV0dXJuIHN0ZDo6c3FydChmcnMpOworKyAgICAgICAgICB9CisrICAgICAgICB9OworKyAgICAg ICAgc2V0X2ZyZChDYW5vbmljYWxpemVGUFVPcDE8ZmxvYXQ+KGZuKSk7CisrICAgICAgfSBlbHNl IHsKKysgICAgICAgIFVOU1VQUE9SVEVEKCk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2UgUk9fRlNHTkpfUzogeyAgLy8gUk9fRlNHTkpOX1MgIFJPX0ZTUU5KWF9T CisrICAgICAgc3dpdGNoIChpbnN0cl8uRnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAw YjAwMDogeyAgLy8gUk9fRlNHTkpfUworKyAgICAgICAgICBzZXRfZnJkKGZzZ25qMzIoZnJzMSgp LCBmcnMyKCksIGZhbHNlLCBmYWxzZSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0K KysgICAgICAgIGNhc2UgMGIwMDE6IHsgIC8vIFJPX0ZTR05KTl9TCisrICAgICAgICAgIHNldF9m cmQoZnNnbmozMihmcnMxKCksIGZyczIoKSwgdHJ1ZSwgZmFsc2UpKTsKKysgICAgICAgICAgYnJl YWs7CisrICAgICAgICB9CisrICAgICAgICBjYXNlIDBiMDEwOiB7ICAvLyBST19GU1FOSlhfUwor KyAgICAgICAgICBzZXRfZnJkKGZzZ25qMzIoZnJzMSgpLCBmcnMyKCksIGZhbHNlLCB0cnVlKSk7 CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgZGVmYXVsdDogeworKyAg ICAgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZNSU5fUzogeyAgLy8gUk9fRk1BWF9TCisrICAgICAg c3dpdGNoIChpbnN0cl8uRnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAwYjAwMDogeyAg Ly8gUk9fRk1JTl9TCisrICAgICAgICAgIHNldF9mcmQoRk1heE1pbkhlbHBlcihmcnMxKCksIGZy czIoKSwgTWF4TWluS2luZDo6a01pbikpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0K KysgICAgICAgIGNhc2UgMGIwMDE6IHsgIC8vIFJPX0ZNQVhfUworKyAgICAgICAgICBzZXRfZnJk KEZNYXhNaW5IZWxwZXIoZnJzMSgpLCBmcnMyKCksIE1heE1pbktpbmQ6OmtNYXgpKTsKKysgICAg ICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgICBkZWZhdWx0OiB7CisrICAgICAgICAg IFVOU1VQUE9SVEVEKCk7CisrICAgICAgICB9CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2UgUk9fRkNWVF9XX1M6IHsgIC8vIFJPX0ZDVlRfV1VfUyAsIDY0RiBST19G Q1ZUX0xfUyBST19GQ1ZUX0xVX1MKKysgICAgICBmbG9hdCBvcmlnaW5hbF92YWwgPSBmcnMxKCk7 CisrICAgICAgc3dpdGNoIChpbnN0cl8uUnMyVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAwYjAw MDAwOiB7ICAvLyBST19GQ1ZUX1dfUworKyAgICAgICAgICBzZXRfcmQoUm91bmRGMklIZWxwZXI8 aW50MzJfdD4ob3JpZ2luYWxfdmFsLCBpbnN0cl8uUm91bmRNb2RlKCkpKTsKKysgICAgICAgICAg YnJlYWs7CisrICAgICAgICB9CisrICAgICAgICBjYXNlIDBiMDAwMDE6IHsgIC8vIFJPX0ZDVlRf V1VfUworKyAgICAgICAgICBzZXRfcmQoUm91bmRGMklIZWxwZXI8dWludDMyX3Q+KG9yaWdpbmFs X3ZhbCwgaW5zdHJfLlJvdW5kTW9kZSgpKSk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAg fQorKyNpZmRlZiBWOF9UQVJHRVRfQVJDSF82NF9CSVQKKysgICAgICAgIGNhc2UgMGIwMDAxMDog eyAgLy8gUk9fRkNWVF9MX1MKKysgICAgICAgICAgc2V0X3JkKFJvdW5kRjJJSGVscGVyPGludDY0 X3Q+KG9yaWdpbmFsX3ZhbCwgaW5zdHJfLlJvdW5kTW9kZSgpKSk7CisrICAgICAgICAgIGJyZWFr OworKyAgICAgICAgfQorKyAgICAgICAgY2FzZSAwYjAwMDExOiB7ICAvLyBST19GQ1ZUX0xVX1MK KysgICAgICAgICAgc2V0X3JkKFJvdW5kRjJJSGVscGVyPHVpbnQ2NF90PihvcmlnaW5hbF92YWws IGluc3RyXy5Sb3VuZE1vZGUoKSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysj ZW5kaWYgLyogVjhfVEFSR0VUX0FSQ0hfNjRfQklUICovCisrICAgICAgICBkZWZhdWx0OiB7Cisr ICAgICAgICAgIFVOU1VQUE9SVEVEKCk7CisrICAgICAgICB9CisrICAgICAgfQorKyAgICAgIGJy ZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRk1WOiB7ICAvLyBST19GQ0xBU1NfUworKyAgICAg IHN3aXRjaCAoaW5zdHJfLkZ1bmN0M1ZhbHVlKCkpIHsKKysgICAgICAgIGNhc2UgMGIwMDA6IHsK KysgICAgICAgICAgaWYgKGluc3RyXy5SczJWYWx1ZSgpID09IDBiMDAwMDApIHsKKysgICAgICAg ICAgICAvLyBST19GTVZfWF9XCisrICAgICAgICAgICAgc2V0X3JkKHNleHRfeGxlbihnZXRfZnB1 X3JlZ2lzdGVyX3dvcmQocnMxX3JlZygpKSkpOworKyAgICAgICAgICB9IGVsc2UgeworKyAgICAg ICAgICAgIFVOU1VQUE9SVEVEKCk7CisrICAgICAgICAgIH0KKysgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICB9CisrICAgICAgICBjYXNlIDBiMDAxOiB7ICAvLyBST19GQ0xBU1NfUworKyAgICAg ICAgICBzZXRfcmQoRmNsYXNzSGVscGVyKGZyczEoKSkpOworKyAgICAgICAgICBicmVhazsKKysg ICAgICAgIH0KKysgICAgICAgIGRlZmF1bHQ6IHsKKysgICAgICAgICAgVU5TVVBQT1JURUQoKTsK KysgICAgICAgIH0KKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgLy8gRklY TUUgKFJJU0NWKTogaW1wbGVtZW50IGhhbmRsaW5nIG9mIE5hTiAocXVpZXQgYW5kIHNpZ25hbGxp bmcpCisrICAgIGNhc2UgUk9fRkxFX1M6IHsgIC8vIFJPX0ZFUV9TIFJPX0ZMVF9TIFJPX0ZMRV9T CisrICAgICAgc3dpdGNoIChpbnN0cl8uRnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAw YjAxMDogeyAgLy8gUk9fRkVRX1MKKysgICAgICAgICAgc2V0X3JkKENvbXBhcmVGSGVscGVyKGZy czEoKSwgZnJzMigpLCBFUSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAg ICAgIGNhc2UgMGIwMDE6IHsgIC8vIFJPX0ZMVF9TCisrICAgICAgICAgIHNldF9yZChDb21wYXJl RkhlbHBlcihmcnMxKCksIGZyczIoKSwgTFQpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAg ICB9CisrICAgICAgICBjYXNlIDBiMDAwOiB7ICAvLyBST19GTEVfUworKyAgICAgICAgICBzZXRf cmQoQ29tcGFyZUZIZWxwZXIoZnJzMSgpLCBmcnMyKCksIExFKSk7CisrICAgICAgICAgIGJyZWFr OworKyAgICAgICAgfQorKyAgICAgICAgZGVmYXVsdDogeworKyAgICAgICAgICBVTlNVUFBPUlRF RCgpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBj YXNlIFJPX0ZDVlRfU19XOiB7ICAvLyBST19GQ1ZUX1NfV1UgLCA2NEYgUk9fRkNWVF9TX0wgUk9f RkNWVF9TX0xVCisrICAgICAgc3dpdGNoIChpbnN0cl8uUnMyVmFsdWUoKSkgeworKyAgICAgICAg Y2FzZSAwYjAwMDAwOiB7ICAvLyBST19GQ1ZUX1NfVworKyAgICAgICAgICBzZXRfZnJkKChmbG9h dCkoaW50MzJfdClyczEoKSk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAg ICAgY2FzZSAwYjAwMDAxOiB7ICAvLyBST19GQ1ZUX1NfV1UKKysgICAgICAgICAgc2V0X2ZyZCgo ZmxvYXQpKHVpbnQzMl90KXJzMSgpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9Cisr I2lmZGVmIFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICAgICAgY2FzZSAwYjAwMDEwOiB7ICAv LyBST19GQ1ZUX1NfTAorKyAgICAgICAgICBzZXRfZnJkKChmbG9hdCkoaW50NjRfdClyczEoKSk7 CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgY2FzZSAwYjAwMDExOiB7 ICAvLyBST19GQ1ZUX1NfTFUKKysgICAgICAgICAgc2V0X2ZyZCgoZmxvYXQpKHVpbnQ2NF90KXJz MSgpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrI2VuZGlmIC8qIFY4X1RBUkdF VF9BUkNIXzY0X0JJVCAqLworKyAgICAgICAgZGVmYXVsdDogeworKyAgICAgICAgICBVTlNVUFBP UlRFRCgpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyAg ICBjYXNlIFJPX0ZNVl9XX1g6IHsKKysgICAgICBpZiAoaW5zdHJfLkZ1bmN0M1ZhbHVlKCkgPT0g MGIwMDApIHsKKysgICAgICAgIC8vIHNpbmNlIEZNViBwcmVzZXJ2ZXMgc291cmNlIGJpdC1wYXR0 ZXJuLCBubyBuZWVkIHRvIGNhbm9uaXplCisrICAgICAgICBzZXRfZnJkKGJpdF9jYXN0PGZsb2F0 PigodWludDMyX3QpcnMxKCkpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVU5TVVBQT1JU RUQoKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgICAvLyBUT0RPOiBB ZGQgbWFjcm8gZm9yIFJJU0NWIEQgZXh0ZW5zaW9uCisrICAgIGNhc2UgUk9fRkFERF9EOiB7Cisr ICAgICAgLy8gVE9ETzogdXNlIHJtIHZhbHVlIChyb3VuZCBtb2RlKQorKyAgICAgIGF1dG8gZm4g PSBbdGhpc10oZG91YmxlIGRyczEsIGRvdWJsZSBkcnMyKSB7CisrICAgICAgICBpZiAoaXNfaW52 YWxpZF9mYWRkKGRyczEsIGRyczIpKSB7CisrICAgICAgICAgIHRoaXMtPnNldF9mZmxhZ3Moa0lu dmFsaWRPcGVyYXRpb24pOworKyAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxk b3VibGU+OjpxdWlldF9OYU4oKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIHJldHVy biBkcnMxICsgZHJzMjsKKysgICAgICAgIH0KKysgICAgICB9OworKyAgICAgIHNldF9kcmQoQ2Fu b25pY2FsaXplRlBVT3AyPGRvdWJsZT4oZm4pKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAg ICBjYXNlIFJPX0ZTVUJfRDogeworKyAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQg bW9kZSkKKysgICAgICBhdXRvIGZuID0gW3RoaXNdKGRvdWJsZSBkcnMxLCBkb3VibGUgZHJzMikg eworKyAgICAgICAgaWYgKGlzX2ludmFsaWRfZnN1YihkcnMxLCBkcnMyKSkgeworKyAgICAgICAg ICB0aGlzLT5zZXRfZmZsYWdzKGtJbnZhbGlkT3BlcmF0aW9uKTsKKysgICAgICAgICAgcmV0dXJu IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisrICAgICAgICB9IGVs c2UgeworKyAgICAgICAgICByZXR1cm4gZHJzMSAtIGRyczI7CisrICAgICAgICB9CisrICAgICAg fTsKKysgICAgICBzZXRfZHJkKENhbm9uaWNhbGl6ZUZQVU9wMjxkb3VibGU+KGZuKSk7CisrICAg ICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19GTVVMX0Q6IHsKKysgICAgICAvLyBUT0RP OiB1c2Ugcm0gdmFsdWUgKHJvdW5kIG1vZGUpCisrICAgICAgYXV0byBmbiA9IFt0aGlzXShkb3Vi bGUgZHJzMSwgZG91YmxlIGRyczIpIHsKKysgICAgICAgIGlmIChpc19pbnZhbGlkX2ZtdWwoZHJz MSwgZHJzMikpIHsKKysgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrSW52YWxpZE9wZXJhdGlv bik7CisrICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0 X05hTigpOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgcmV0dXJuIGRyczEgKiBkcnMy OworKyAgICAgICAgfQorKyAgICAgIH07CisrICAgICAgc2V0X2RyZChDYW5vbmljYWxpemVGUFVP cDI8ZG91YmxlPihmbikpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRkRJ Vl9EOiB7CisrICAgICAgLy8gVE9ETzogdXNlIHJtIHZhbHVlIChyb3VuZCBtb2RlKQorKyAgICAg IGF1dG8gZm4gPSBbdGhpc10oZG91YmxlIGRyczEsIGRvdWJsZSBkcnMyKSB7CisrICAgICAgICBp ZiAoaXNfaW52YWxpZF9mZGl2KGRyczEsIGRyczIpKSB7CisrICAgICAgICAgIHRoaXMtPnNldF9m ZmxhZ3Moa0ludmFsaWRPcGVyYXRpb24pOworKyAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmlj X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKysgICAgICAgIH0gZWxzZSBpZiAoZHJzMiA9 PSAwLjApIHsKKysgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrRGl2aWRlQnlaZXJvKTsKKysg ICAgICAgICAgcmV0dXJuIChzdGQ6OnNpZ25iaXQoZHJzMSkgPT0gc3RkOjpzaWduYml0KGRyczIp CisrICAgICAgICAgICAgICAgICAgICAgID8gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpp bmZpbml0eSgpCisrICAgICAgICAgICAgICAgICAgICAgIDogLXN0ZDo6bnVtZXJpY19saW1pdHM8 ZG91YmxlPjo6aW5maW5pdHkoKSk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICByZXR1 cm4gZHJzMSAvIGRyczI7CisrICAgICAgICB9CisrICAgICAgfTsKKysgICAgICBzZXRfZHJkKENh bm9uaWNhbGl6ZUZQVU9wMjxkb3VibGU+KGZuKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysg ICAgY2FzZSBST19GU1FSVF9EOiB7CisrICAgICAgaWYgKGluc3RyXy5SczJWYWx1ZSgpID09IDBi MDAwMDApIHsKKysgICAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQgbW9kZSkKKysg ICAgICAgIGF1dG8gZm4gPSBbdGhpc10oZG91YmxlIGRycykgeworKyAgICAgICAgICBpZiAoaXNf aW52YWxpZF9mc3FydChkcnMpKSB7CisrICAgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrSW52 YWxpZE9wZXJhdGlvbik7CisrICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8 ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisrICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAg cmV0dXJuIHN0ZDo6c3FydChkcnMpOworKyAgICAgICAgICB9CisrICAgICAgICB9OworKyAgICAg ICAgc2V0X2RyZChDYW5vbmljYWxpemVGUFVPcDE8ZG91YmxlPihmbikpOworKyAgICAgIH0gZWxz ZSB7CisrICAgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBjYXNlIFJPX0ZTR05KX0Q6IHsgIC8vIFJPX0ZTR05KTl9EIFJPX0ZTUU5KWF9E CisrICAgICAgc3dpdGNoIChpbnN0cl8uRnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAw YjAwMDogeyAgLy8gUk9fRlNHTkpfRAorKyAgICAgICAgICBzZXRfZHJkKGZzZ25qNjQoZHJzMSgp LCBkcnMyKCksIGZhbHNlLCBmYWxzZSkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0K KysgICAgICAgIGNhc2UgMGIwMDE6IHsgIC8vIFJPX0ZTR05KTl9ECisrICAgICAgICAgIHNldF9k cmQoZnNnbmo2NChkcnMxKCksIGRyczIoKSwgdHJ1ZSwgZmFsc2UpKTsKKysgICAgICAgICAgYnJl YWs7CisrICAgICAgICB9CisrICAgICAgICBjYXNlIDBiMDEwOiB7ICAvLyBST19GU1FOSlhfRAor KyAgICAgICAgICBzZXRfZHJkKGZzZ25qNjQoZHJzMSgpLCBkcnMyKCksIGZhbHNlLCB0cnVlKSk7 CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgZGVmYXVsdDogeworKyAg ICAgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVh azsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZNSU5fRDogeyAgLy8gUk9fRk1BWF9ECisrICAgICAg c3dpdGNoIChpbnN0cl8uRnVuY3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAwYjAwMDogeyAg Ly8gUk9fRk1JTl9ECisrICAgICAgICAgIHNldF9kcmQoRk1heE1pbkhlbHBlcihkcnMxKCksIGRy czIoKSwgTWF4TWluS2luZDo6a01pbikpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0K KysgICAgICAgIGNhc2UgMGIwMDE6IHsgIC8vIFJPX0ZNQVhfRAorKyAgICAgICAgICBzZXRfZHJk KEZNYXhNaW5IZWxwZXIoZHJzMSgpLCBkcnMyKCksIE1heE1pbktpbmQ6OmtNYXgpKTsKKysgICAg ICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgICBkZWZhdWx0OiB7CisrICAgICAgICAg IFVOU1VQUE9SVEVEKCk7CisrICAgICAgICB9CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2UgKFJPX0ZDVlRfU19EICYga1JGUFR5cGVNYXNrKTogeworKyAgICAgIGlm IChpbnN0cl8uUnMyVmFsdWUoKSA9PSAwYjAwMDAxKSB7CisrICAgICAgICBhdXRvIGZuID0gW10o ZG91YmxlIGRycykgeyByZXR1cm4gKGZsb2F0KWRyczsgfTsKKysgICAgICAgIHNldF9mcmQoQ2Fu b25pY2FsaXplRG91YmxlVG9GbG9hdE9wZXJhdGlvbihmbikpOworKyAgICAgIH0gZWxzZSB7Cisr ICAgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQor KyAgICBjYXNlIFJPX0ZDVlRfRF9TOiB7CisrICAgICAgaWYgKGluc3RyXy5SczJWYWx1ZSgpID09 IDBiMDAwMDApIHsKKysgICAgICAgIGF1dG8gZm4gPSBbXShmbG9hdCBmcnMpIHsgcmV0dXJuIChk b3VibGUpZnJzOyB9OworKyAgICAgICAgc2V0X2RyZChDYW5vbmljYWxpemVGbG9hdFRvRG91Ymxl T3BlcmF0aW9uKGZuKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIFVOU1VQUE9SVEVEKCk7 CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRkxFX0Q6IHsg IC8vIFJPX0ZFUV9EIFJPX0ZMVF9EIFJPX0ZMRV9ECisrICAgICAgc3dpdGNoIChpbnN0cl8uRnVu Y3QzVmFsdWUoKSkgeworKyAgICAgICAgY2FzZSAwYjAxMDogeyAgLy8gUk9fRkVRX1MKKysgICAg ICAgICAgc2V0X3JkKENvbXBhcmVGSGVscGVyKGRyczEoKSwgZHJzMigpLCBFUSkpOworKyAgICAg ICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICAgIGNhc2UgMGIwMDE6IHsgIC8vIFJPX0ZM VF9ECisrICAgICAgICAgIHNldF9yZChDb21wYXJlRkhlbHBlcihkcnMxKCksIGRyczIoKSwgTFQp KTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgICBjYXNlIDBiMDAwOiB7 ICAvLyBST19GTEVfRAorKyAgICAgICAgICBzZXRfcmQoQ29tcGFyZUZIZWxwZXIoZHJzMSgpLCBk cnMyKCksIExFKSk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgZGVm YXVsdDogeworKyAgICAgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICAgICAgfQorKyAgICAgIH0K KysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIChST19GQ0xBU1NfRCAmIGtSRlBUeXBl TWFzayk6IHsgIC8vIFJPX0ZDTEFTU19EICwgNjREIFJPX0ZNVl9YX0QKKysgICAgICBpZiAoaW5z dHJfLlJzMlZhbHVlKCkgIT0gMGIwMDAwMCkgeworKyAgICAgICAgVU5TVVBQT1JURUQoKTsKKysg ICAgICAgIGJyZWFrOworKyAgICAgIH0KKysgICAgICBzd2l0Y2ggKGluc3RyXy5GdW5jdDNWYWx1 ZSgpKSB7CisrICAgICAgICBjYXNlIDBiMDAxOiB7ICAvLyBST19GQ0xBU1NfRAorKyAgICAgICAg ICBzZXRfcmQoRmNsYXNzSGVscGVyKGRyczEoKSkpOworKyAgICAgICAgICBicmVhazsKKysgICAg ICAgIH0KKysjaWZkZWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisrICAgICAgICBjYXNlIDBiMDAw OiB7ICAvLyBST19GTVZfWF9ECisrICAgICAgICAgIHNldF9yZChiaXRfY2FzdDxpbnQ2NF90Pihk cnMxKCkpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9CisrI2VuZGlmIC8qIFY4X1RB UkdFVF9BUkNIXzY0X0JJVCAqLworKyAgICAgICAgZGVmYXVsdDogeworKyAgICAgICAgICBVTlNV UFBPUlRFRCgpOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQor KyAgICBjYXNlIFJPX0ZDVlRfV19EOiB7ICAvLyBST19GQ1ZUX1dVX0QgLCA2NEYgUk9fRkNWVF9M X0QgUk9fRkNWVF9MVV9ECisrICAgICAgZG91YmxlIG9yaWdpbmFsX3ZhbCA9IGRyczEoKTsKKysg ICAgICBzd2l0Y2ggKGluc3RyXy5SczJWYWx1ZSgpKSB7CisrICAgICAgICBjYXNlIDBiMDAwMDA6 IHsgIC8vIFJPX0ZDVlRfV19ECisrICAgICAgICAgIHNldF9yZChSb3VuZEYySUhlbHBlcjxpbnQz Ml90PihvcmlnaW5hbF92YWwsIGluc3RyXy5Sb3VuZE1vZGUoKSkpOworKyAgICAgICAgICBicmVh azsKKysgICAgICAgIH0KKysgICAgICAgIGNhc2UgMGIwMDAwMTogeyAgLy8gUk9fRkNWVF9XVV9E CisrICAgICAgICAgIHNldF9yZChSb3VuZEYySUhlbHBlcjx1aW50MzJfdD4ob3JpZ2luYWxfdmFs LCBpbnN0cl8uUm91bmRNb2RlKCkpKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9Cisr I2lmZGVmIFY4X1RBUkdFVF9BUkNIXzY0X0JJVAorKyAgICAgICAgY2FzZSAwYjAwMDEwOiB7ICAv LyBST19GQ1ZUX0xfRAorKyAgICAgICAgICBzZXRfcmQoUm91bmRGMklIZWxwZXI8aW50NjRfdD4o b3JpZ2luYWxfdmFsLCBpbnN0cl8uUm91bmRNb2RlKCkpKTsKKysgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICB9CisrICAgICAgICBjYXNlIDBiMDAwMTE6IHsgIC8vIFJPX0ZDVlRfTFVfRAorKyAg ICAgICAgICBzZXRfcmQoUm91bmRGMklIZWxwZXI8dWludDY0X3Q+KG9yaWdpbmFsX3ZhbCwgaW5z dHJfLlJvdW5kTW9kZSgpKSk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyNlbmRp ZiAvKiBWOF9UQVJHRVRfQVJDSF82NF9CSVQgKi8KKysgICAgICAgIGRlZmF1bHQ6IHsKKysgICAg ICAgICAgVU5TVVBQT1JURUQoKTsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgY2FzZSBST19GQ1ZUX0RfVzogeyAgLy8gUk9fRkNWVF9EX1dVICwgNjRG IFJPX0ZDVlRfRF9MIFJPX0ZDVlRfRF9MVQorKyAgICAgIHN3aXRjaCAoaW5zdHJfLlJzMlZhbHVl KCkpIHsKKysgICAgICAgIGNhc2UgMGIwMDAwMDogeyAgLy8gUk9fRkNWVF9EX1cKKysgICAgICAg ICAgc2V0X2RyZCgoaW50MzJfdClyczEoKSk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAg fQorKyAgICAgICAgY2FzZSAwYjAwMDAxOiB7ICAvLyBST19GQ1ZUX0RfV1UKKysgICAgICAgICAg c2V0X2RyZCgodWludDMyX3QpcnMxKCkpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0K KysjaWZkZWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisrICAgICAgICBjYXNlIDBiMDAwMTA6IHsg IC8vIFJPX0ZDVlRfRF9MCisrICAgICAgICAgIHNldF9kcmQoKGludDY0X3QpcnMxKCkpOworKyAg ICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICAgIGNhc2UgMGIwMDAxMTogeyAgLy8g Uk9fRkNWVF9EX0xVCisrICAgICAgICAgIHNldF9kcmQoKHVpbnQ2NF90KXJzMSgpKTsKKysgICAg ICAgICAgYnJlYWs7CisrICAgICAgICB9CisrI2VuZGlmIC8qIFY4X1RBUkdFVF9BUkNIXzY0X0JJ VCAqLworKyAgICAgICAgZGVmYXVsdDogeworKyAgICAgICAgICBVTlNVUFBPUlRFRCgpOworKyAg ICAgICAgfQorKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgfQorKyNpZmRlZiBWOF9UQVJH RVRfQVJDSF82NF9CSVQKKysgICAgY2FzZSBST19GTVZfRF9YOiB7CisrICAgICAgaWYgKGluc3Ry Xy5GdW5jdDNWYWx1ZSgpID09IDBiMDAwICYmIGluc3RyXy5SczJWYWx1ZSgpID09IDBiMDAwMDAp IHsKKysgICAgICAgIC8vIFNpbmNlIEZNViBwcmVzZXJ2ZXMgc291cmNlIGJpdC1wYXR0ZXJuLCBu byBuZWVkIHRvIGNhbm9uaXplCisrICAgICAgICBzZXRfZHJkKGJpdF9jYXN0PGRvdWJsZT4ocnMx KCkpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVU5TVVBQT1JURUQoKTsKKysgICAgICB9 CisrICAgICAgYnJlYWs7CisrICAgIH0KKysjZW5kaWYgLyogVjhfVEFSR0VUX0FSQ0hfNjRfQklU ICovCisrICAgIGRlZmF1bHQ6IHsKKysgICAgICBVTlNVUFBPUlRFRCgpOworKyAgICB9CisrICB9 CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVlI0VHlwZSgpIHsKKysgIHN3aXRjaCAo aW5zdHJfLkluc3RydWN0aW9uQml0cygpICYga1I0VHlwZU1hc2spIHsKKysgICAgLy8gVE9ETzog dXNlIEYgRXh0ZW5zaW9uIG1hY3JvIGJsb2NrCisrICAgIGNhc2UgUk9fRk1BRERfUzogeworKyAg ICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQgbW9kZSkKKysgICAgICBhdXRvIGZuID0g W3RoaXNdKGZsb2F0IGZyczEsIGZsb2F0IGZyczIsIGZsb2F0IGZyczMpIHsKKysgICAgICAgIGlm IChpc19pbnZhbGlkX2ZtdWwoZnJzMSwgZnJzMikgfHwgaXNfaW52YWxpZF9mYWRkKGZyczEgKiBm cnMyLCBmcnMzKSkgeworKyAgICAgICAgICB0aGlzLT5zZXRfZmZsYWdzKGtJbnZhbGlkT3BlcmF0 aW9uKTsKKysgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpxdWll dF9OYU4oKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIHJldHVybiBzdGQ6OmZtYShm cnMxLCBmcnMyLCBmcnMzKTsKKysgICAgICAgIH0KKysgICAgICB9OworKyAgICAgIHNldF9mcmQo Q2Fub25pY2FsaXplRlBVT3AzPGZsb2F0PihmbikpOworKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIGNhc2UgUk9fRk1TVUJfUzogeworKyAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91 bmQgbW9kZSkKKysgICAgICBhdXRvIGZuID0gW3RoaXNdKGZsb2F0IGZyczEsIGZsb2F0IGZyczIs IGZsb2F0IGZyczMpIHsKKysgICAgICAgIGlmIChpc19pbnZhbGlkX2ZtdWwoZnJzMSwgZnJzMikg fHwgaXNfaW52YWxpZF9mc3ViKGZyczEgKiBmcnMyLCBmcnMzKSkgeworKyAgICAgICAgICB0aGlz LT5zZXRfZmZsYWdzKGtJbnZhbGlkT3BlcmF0aW9uKTsKKysgICAgICAgICAgcmV0dXJuIHN0ZDo6 bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpxdWlldF9OYU4oKTsKKysgICAgICAgIH0gZWxzZSB7Cisr ICAgICAgICAgIHJldHVybiBzdGQ6OmZtYShmcnMxLCBmcnMyLCAtZnJzMyk7CisrICAgICAgICB9 CisrICAgICAgfTsKKysgICAgICBzZXRfZnJkKENhbm9uaWNhbGl6ZUZQVU9wMzxmbG9hdD4oZm4p KTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0ZOTVNVQl9TOiB7CisrICAg ICAgLy8gVE9ETzogdXNlIHJtIHZhbHVlIChyb3VuZCBtb2RlKQorKyAgICAgIGF1dG8gZm4gPSBb dGhpc10oZmxvYXQgZnJzMSwgZmxvYXQgZnJzMiwgZmxvYXQgZnJzMykgeworKyAgICAgICAgaWYg KGlzX2ludmFsaWRfZm11bChmcnMxLCBmcnMyKSB8fCBpc19pbnZhbGlkX2ZzdWIoZnJzMywgZnJz MSAqIGZyczIpKSB7CisrICAgICAgICAgIHRoaXMtPnNldF9mZmxhZ3Moa0ludmFsaWRPcGVyYXRp b24pOworKyAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0 X05hTigpOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgcmV0dXJuIC1zdGQ6OmZtYShm cnMxLCBmcnMyLCAtZnJzMyk7CisrICAgICAgICB9CisrICAgICAgfTsKKysgICAgICBzZXRfZnJk KENhbm9uaWNhbGl6ZUZQVU9wMzxmbG9hdD4oZm4pKTsKKysgICAgICBicmVhazsKKysgICAgfQor KyAgICBjYXNlIFJPX0ZOTUFERF9TOiB7CisrICAgICAgLy8gVE9ETzogdXNlIHJtIHZhbHVlIChy b3VuZCBtb2RlKQorKyAgICAgIGF1dG8gZm4gPSBbdGhpc10oZmxvYXQgZnJzMSwgZmxvYXQgZnJz MiwgZmxvYXQgZnJzMykgeworKyAgICAgICAgaWYgKGlzX2ludmFsaWRfZm11bChmcnMxLCBmcnMy KSB8fCBpc19pbnZhbGlkX2ZhZGQoZnJzMSAqIGZyczIsIGZyczMpKSB7CisrICAgICAgICAgIHRo aXMtPnNldF9mZmxhZ3Moa0ludmFsaWRPcGVyYXRpb24pOworKyAgICAgICAgICByZXR1cm4gc3Rk OjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOworKyAgICAgICAgfSBlbHNlIHsK KysgICAgICAgICAgcmV0dXJuIC1zdGQ6OmZtYShmcnMxLCBmcnMyLCBmcnMzKTsKKysgICAgICAg IH0KKysgICAgICB9OworKyAgICAgIHNldF9mcmQoQ2Fub25pY2FsaXplRlBVT3AzPGZsb2F0Pihm bikpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIC8vIFRPRE86IHVzZSBGIEV4dGVuc2lv biBtYWNybyBibG9jaworKyAgICBjYXNlIFJPX0ZNQUREX0Q6IHsKKysgICAgICAvLyBUT0RPOiB1 c2Ugcm0gdmFsdWUgKHJvdW5kIG1vZGUpCisrICAgICAgYXV0byBmbiA9IFt0aGlzXShkb3VibGUg ZHJzMSwgZG91YmxlIGRyczIsIGRvdWJsZSBkcnMzKSB7CisrICAgICAgICBpZiAoaXNfaW52YWxp ZF9mbXVsKGRyczEsIGRyczIpIHx8IGlzX2ludmFsaWRfZmFkZChkcnMxICogZHJzMiwgZHJzMykp IHsKKysgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrSW52YWxpZE9wZXJhdGlvbik7CisrICAg ICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwor KyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgcmV0dXJuIHN0ZDo6Zm1hKGRyczEsIGRyczIs IGRyczMpOworKyAgICAgICAgfQorKyAgICAgIH07CisrICAgICAgc2V0X2RyZChDYW5vbmljYWxp emVGUFVPcDM8ZG91YmxlPihmbikpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2Ug Uk9fRk1TVUJfRDogeworKyAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAocm91bmQgbW9kZSkK KysgICAgICBhdXRvIGZuID0gW3RoaXNdKGRvdWJsZSBkcnMxLCBkb3VibGUgZHJzMiwgZG91Ymxl IGRyczMpIHsKKysgICAgICAgIGlmIChpc19pbnZhbGlkX2ZtdWwoZHJzMSwgZHJzMikgfHwgaXNf aW52YWxpZF9mc3ViKGRyczEgKiBkcnMyLCBkcnMzKSkgeworKyAgICAgICAgICB0aGlzLT5zZXRf ZmZsYWdzKGtJbnZhbGlkT3BlcmF0aW9uKTsKKysgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJp Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisrICAgICAgICB9IGVsc2UgeworKyAgICAg ICAgICByZXR1cm4gc3RkOjpmbWEoZHJzMSwgZHJzMiwgLWRyczMpOworKyAgICAgICAgfQorKyAg ICAgIH07CisrICAgICAgc2V0X2RyZChDYW5vbmljYWxpemVGUFVPcDM8ZG91YmxlPihmbikpOwor KyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRk5NU1VCX0Q6IHsKKysgICAgICAv LyBUT0RPOiB1c2Ugcm0gdmFsdWUgKHJvdW5kIG1vZGUpCisrICAgICAgYXV0byBmbiA9IFt0aGlz XShkb3VibGUgZHJzMSwgZG91YmxlIGRyczIsIGRvdWJsZSBkcnMzKSB7CisrICAgICAgICBpZiAo aXNfaW52YWxpZF9mbXVsKGRyczEsIGRyczIpIHx8IGlzX2ludmFsaWRfZnN1YihkcnMzLCBkcnMx ICogZHJzMikpIHsKKysgICAgICAgICAgdGhpcy0+c2V0X2ZmbGFncyhrSW52YWxpZE9wZXJhdGlv bik7CisrICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0 X05hTigpOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgcmV0dXJuIC1zdGQ6OmZtYShk cnMxLCBkcnMyLCAtZHJzMyk7CisrICAgICAgICB9CisrICAgICAgfTsKKysgICAgICBzZXRfZHJk KENhbm9uaWNhbGl6ZUZQVU9wMzxkb3VibGU+KGZuKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0K KysgICAgY2FzZSBST19GTk1BRERfRDogeworKyAgICAgIC8vIFRPRE86IHVzZSBybSB2YWx1ZSAo cm91bmQgbW9kZSkKKysgICAgICBhdXRvIGZuID0gW3RoaXNdKGRvdWJsZSBkcnMxLCBkb3VibGUg ZHJzMiwgZG91YmxlIGRyczMpIHsKKysgICAgICAgIGlmIChpc19pbnZhbGlkX2ZtdWwoZHJzMSwg ZHJzMikgfHwgaXNfaW52YWxpZF9mYWRkKGRyczEgKiBkcnMyLCBkcnMzKSkgeworKyAgICAgICAg ICB0aGlzLT5zZXRfZmZsYWdzKGtJbnZhbGlkT3BlcmF0aW9uKTsKKysgICAgICAgICAgcmV0dXJu IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisrICAgICAgICB9IGVs c2UgeworKyAgICAgICAgICByZXR1cm4gLXN0ZDo6Zm1hKGRyczEsIGRyczIsIGRyczMpOworKyAg ICAgICAgfQorKyAgICAgIH07CisrICAgICAgc2V0X2RyZChDYW5vbmljYWxpemVGUFVPcDM8ZG91 YmxlPihmbikpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGRlZmF1bHQ6CisrICAgICAg VU5TVVBQT1JURUQoKTsKKysgIH0KKyt9CisrCisrdm9pZCBTaW11bGF0b3I6OkRlY29kZVJWSVR5 cGUoKSB7CisrICBzd2l0Y2ggKGluc3RyXy5JbnN0cnVjdGlvbkJpdHMoKSAmIGtJVHlwZU1hc2sp IHsKKysgICAgY2FzZSBST19KQUxSOiB7CisrICAgICAgc2V0X3JkKGdldF9wYygpICsga0luc3Ry U2l6ZSk7CisrICAgICAgLy8gTm90ZTogTm8gbmVlZCB0byBzaGlmdCAyIGZvciBKQUxSJ3MgaW1t MTIsIGJ1dCBzZXQgbG93ZXN0IGJpdCB0byAwLgorKyAgICAgIGludDY0X3QgbmV4dF9wYyA9IChy czEoKSArIGltbTEyKCkpICYgfnJlZ190KDEpOworKyAgICAgIHNldF9wYyhuZXh0X3BjKTsKKysg ICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0xCOiB7CisrICAgICAgaW50NjRfdCBh ZGRyID0gcnMxKCkgKyBpbW0xMigpOworKyAgICAgIGludDhfdCB2YWwgPSBSZWFkTWVtPGludDhf dD4oYWRkciwgaW5zdHJfLmluc3RyKCkpOworKyAgICAgIHNldF9yZChzZXh0X3hsZW4odmFsKSwg ZmFsc2UpOworKyAgICAgIFRyYWNlTWVtUmQoYWRkciwgdmFsLCBnZXRfcmVnaXN0ZXIocmRfcmVn KCkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0xIOiB7CisrICAgICAg aW50NjRfdCBhZGRyID0gcnMxKCkgKyBpbW0xMigpOworKyAgICAgIGludDE2X3QgdmFsID0gUmVh ZE1lbTxpbnQxNl90PihhZGRyLCBpbnN0cl8uaW5zdHIoKSk7CisrICAgICAgc2V0X3JkKHNleHRf eGxlbih2YWwpLCBmYWxzZSk7CisrICAgICAgVHJhY2VNZW1SZChhZGRyLCB2YWwsIGdldF9yZWdp c3RlcihyZF9yZWcoKSkpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fTFc6 IHsKKysgICAgICBpbnQ2NF90IGFkZHIgPSByczEoKSArIGltbTEyKCk7CisrICAgICAgaW50MzJf dCB2YWwgPSBSZWFkTWVtPGludDMyX3Q+KGFkZHIsIGluc3RyXy5pbnN0cigpKTsKKysgICAgICBz ZXRfcmQoc2V4dF94bGVuKHZhbCksIGZhbHNlKTsKKysgICAgICBUcmFjZU1lbVJkKGFkZHIsIHZh bCwgZ2V0X3JlZ2lzdGVyKHJkX3JlZygpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAg Y2FzZSBST19MQlU6IHsKKysgICAgICBpbnQ2NF90IGFkZHIgPSByczEoKSArIGltbTEyKCk7Cisr ICAgICAgdWludDhfdCB2YWwgPSBSZWFkTWVtPHVpbnQ4X3Q+KGFkZHIsIGluc3RyXy5pbnN0cigp KTsKKysgICAgICBzZXRfcmQoemV4dF94bGVuKHZhbCksIGZhbHNlKTsKKysgICAgICBUcmFjZU1l bVJkKGFkZHIsIHZhbCwgZ2V0X3JlZ2lzdGVyKHJkX3JlZygpKSk7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysgICAgY2FzZSBST19MSFU6IHsKKysgICAgICBpbnQ2NF90IGFkZHIgPSByczEoKSAr IGltbTEyKCk7CisrICAgICAgdWludDE2X3QgdmFsID0gUmVhZE1lbTx1aW50MTZfdD4oYWRkciwg aW5zdHJfLmluc3RyKCkpOworKyAgICAgIHNldF9yZCh6ZXh0X3hsZW4odmFsKSwgZmFsc2UpOwor KyAgICAgIFRyYWNlTWVtUmQoYWRkciwgdmFsLCBnZXRfcmVnaXN0ZXIocmRfcmVnKCkpKTsKKysg ICAgICBicmVhazsKKysgICAgfQorKyNpZmRlZiBWOF9UQVJHRVRfQVJDSF82NF9CSVQKKysgICAg Y2FzZSBST19MV1U6IHsKKysgICAgICBpbnQ2NF90IGFkZHIgPSByczEoKSArIGltbTEyKCk7Cisr ICAgICAgdWludDMyX3QgdmFsID0gUmVhZE1lbTx1aW50MzJfdD4oYWRkciwgaW5zdHJfLmluc3Ry KCkpOworKyAgICAgIHNldF9yZCh6ZXh0X3hsZW4odmFsKSwgZmFsc2UpOworKyAgICAgIFRyYWNl TWVtUmQoYWRkciwgdmFsLCBnZXRfcmVnaXN0ZXIocmRfcmVnKCkpKTsKKysgICAgICBicmVhazsK KysgICAgfQorKyAgICBjYXNlIFJPX0xEOiB7CisrICAgICAgaW50NjRfdCBhZGRyID0gcnMxKCkg KyBpbW0xMigpOworKyAgICAgIGludDY0X3QgdmFsID0gUmVhZE1lbTxpbnQ2NF90PihhZGRyLCBp bnN0cl8uaW5zdHIoKSk7CisrICAgICAgc2V0X3JkKHNleHRfeGxlbih2YWwpLCBmYWxzZSk7Cisr ICAgICAgVHJhY2VNZW1SZChhZGRyLCB2YWwsIGdldF9yZWdpc3RlcihyZF9yZWcoKSkpOworKyAg ICAgIGJyZWFrOworKyAgICB9CisrI2VuZGlmIC8qVjhfVEFSR0VUX0FSQ0hfNjRfQklUKi8KKysg ICAgY2FzZSBST19BRERJOiB7CisrICAgICAgc2V0X3JkKHNleHRfeGxlbihyczEoKSArIGltbTEy KCkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX1NMVEk6IHsKKysgICAg ICBzZXRfcmQoc3JlZ190KHJzMSgpKSA8IHNyZWdfdChpbW0xMigpKSk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgY2FzZSBST19TTFRJVTogeworKyAgICAgIHNldF9yZChyZWdfdChyczEo KSkgPCByZWdfdChpbW0xMigpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBS T19YT1JJOiB7CisrICAgICAgc2V0X3JkKGltbTEyKCkgXiByczEoKSk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKysgICAgY2FzZSBST19PUkk6IHsKKysgICAgICBzZXRfcmQoaW1tMTIoKSB8IHJz MSgpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIFJPX0FOREk6IHsKKysgICAg ICBzZXRfcmQoaW1tMTIoKSAmIHJzMSgpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBj YXNlIFJPX1NMTEk6IHsKKysgICAgICByZXF1aXJlKHNoYW10KCkgPCB4bGVuKTsKKysgICAgICBz ZXRfcmQoc2V4dF94bGVuKHJzMSgpIDw8IHNoYW10KCkpKTsKKysgICAgICBicmVhazsKKysgICAg fQorKyAgICBjYXNlIFJPX1NSTEk6IHsgIC8vICBST19TUkFJCisrICAgICAgaWYgKCFpbnN0cl8u SXNBcml0aFNoaWZ0KCkpIHsKKysgICAgICAgIHJlcXVpcmUoc2hhbXQoKSA8IHhsZW4pOworKyAg ICAgICAgc2V0X3JkKHNleHRfeGxlbih6ZXh0X3hsZW4ocnMxKCkpID4+IHNoYW10KCkpKTsKKysg ICAgICB9IGVsc2UgeworKyAgICAgICAgcmVxdWlyZShzaGFtdCgpIDwgeGxlbik7CisrICAgICAg ICBzZXRfcmQoc2V4dF94bGVuKHNleHRfeGxlbihyczEoKSkgPj4gc2hhbXQoKSkpOworKyAgICAg IH0KKysgICAgICBicmVhazsKKysgICAgfQorKyNpZmRlZiBWOF9UQVJHRVRfQVJDSF82NF9CSVQK KysgICAgY2FzZSBST19BRERJVzogeworKyAgICAgIHNldF9yZChzZXh0MzIocnMxKCkgKyBpbW0x MigpKSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19TTExJVzogeworKyAg ICAgIHNldF9yZChzZXh0MzIocnMxKCkgPDwgc2hhbXQzMigpKSk7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysgICAgY2FzZSBST19TUkxJVzogeyAgLy8gIFJPX1NSQUlXCisrICAgICAgaWYgKCFp bnN0cl8uSXNBcml0aFNoaWZ0KCkpIHsKKysgICAgICAgIHNldF9yZChzZXh0MzIodWludDMyX3Qo cnMxKCkpID4+IHNoYW10MzIoKSkpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBzZXRfcmQo c2V4dDMyKGludDMyX3QocnMxKCkpID4+IHNoYW10MzIoKSkpOworKyAgICAgIH0KKysgICAgICBi cmVhazsKKysgICAgfQorKyNlbmRpZiAvKlY4X1RBUkdFVF9BUkNIXzY0X0JJVCovCisrICAgIGNh c2UgUk9fRkVOQ0U6IHsKKysgICAgICAvLyBETyBub3RoaW5nIGluIHN1bXVsYXRvcgorKyAgICAg IGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9fRUNBTEw6IHsgICAgICAgICAgICAgICAgICAg Ly8gUk9fRUJSRUFLCisrICAgICAgaWYgKGluc3RyXy5JbW0xMlZhbHVlKCkgPT0gMCkgeyAgLy8g RUNBTEwKKysgICAgICAgIFNvZnR3YXJlSW50ZXJydXB0KCk7CisrICAgICAgfSBlbHNlIGlmIChp bnN0cl8uSW1tMTJWYWx1ZSgpID09IDEpIHsgIC8vIEVCUkVBSworKyAgICAgICAgU29mdHdhcmVJ bnRlcnJ1cHQoKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVU5TVVBQT1JURUQoKTsKKysg ICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgICAvLyBUT0RPOiB1c2UgWmlmZW5j ZWkgU3RhbmRhcmQgRXh0ZW5zaW9uIG1hY3JvIGJsb2NrCisrICAgIGNhc2UgUk9fRkVOQ0VfSTog eworKyAgICAgIC8vIHNwaWtlOiBmbHVzaCBpY2FjaGUuCisrICAgICAgYnJlYWs7CisrICAgIH0K KysgICAgICAvLyBUT0RPOiB1c2UgWmljc3IgU3RhbmRhcmQgRXh0ZW5zaW9uIG1hY3JvIGJsb2Nr CisrICAgIGNhc2UgUk9fQ1NSUlc6IHsKKysgICAgICBpZiAocmRfcmVnKCkgIT0gemVyb19yZWcp IHsKKysgICAgICAgIHNldF9yZCh6ZXh0X3hsZW4ocmVhZF9jc3JfdmFsdWUoY3NyX3JlZygpKSkp OworKyAgICAgIH0KKysgICAgICB3cml0ZV9jc3JfdmFsdWUoY3NyX3JlZygpLCByczEoKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19DU1JSUzogeworKyAgICAgIHNldF9y ZCh6ZXh0X3hsZW4ocmVhZF9jc3JfdmFsdWUoY3NyX3JlZygpKSkpOworKyAgICAgIGlmIChyczFf cmVnKCkgIT0gemVyb19yZWcpIHsKKysgICAgICAgIHNldF9jc3JfYml0cyhjc3JfcmVnKCksIHJz MSgpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19DU1JS QzogeworKyAgICAgIHNldF9yZCh6ZXh0X3hsZW4ocmVhZF9jc3JfdmFsdWUoY3NyX3JlZygpKSkp OworKyAgICAgIGlmIChyczFfcmVnKCkgIT0gemVyb19yZWcpIHsKKysgICAgICAgIGNsZWFyX2Nz cl9iaXRzKGNzcl9yZWcoKSwgcnMxKCkpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAg fQorKyAgICBjYXNlIFJPX0NTUlJXSTogeworKyAgICAgIGlmIChyZF9yZWcoKSAhPSB6ZXJvX3Jl ZykgeworKyAgICAgICAgc2V0X3JkKHpleHRfeGxlbihyZWFkX2Nzcl92YWx1ZShjc3JfcmVnKCkp KSk7CisrICAgICAgfQorKyAgICAgIHdyaXRlX2Nzcl92YWx1ZShjc3JfcmVnKCksIGltbTVDU1Io KSk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgY2FzZSBST19DU1JSU0k6IHsKKysgICAg ICBzZXRfcmQoemV4dF94bGVuKHJlYWRfY3NyX3ZhbHVlKGNzcl9yZWcoKSkpKTsKKysgICAgICBp ZiAoaW1tNUNTUigpICE9IDApIHsKKysgICAgICAgIHNldF9jc3JfYml0cyhjc3JfcmVnKCksIGlt bTVDU1IoKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgUk9f Q1NSUkNJOiB7CisrICAgICAgc2V0X3JkKHpleHRfeGxlbihyZWFkX2Nzcl92YWx1ZShjc3JfcmVn KCkpKSk7CisrICAgICAgaWYgKGltbTVDU1IoKSAhPSAwKSB7CisrICAgICAgICBjbGVhcl9jc3Jf Yml0cyhjc3JfcmVnKCksIGltbTVDU1IoKSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIC8vIFRPRE86IHVzZSBGIEV4dGVuc2lvbiBtYWNybyBibG9jaworKyAgICBjYXNl IFJPX0ZMVzogeworKyAgICAgIGludDY0X3QgYWRkciA9IHJzMSgpICsgaW1tMTIoKTsKKysgICAg ICBmbG9hdCB2YWwgPSBSZWFkTWVtPGZsb2F0PihhZGRyLCBpbnN0cl8uaW5zdHIoKSk7CisrICAg ICAgc2V0X2ZyZCh2YWwsIGZhbHNlKTsKKysgICAgICBUcmFjZU1lbVJkKGFkZHIsIHZhbCwgZ2V0 X2ZwdV9yZWdpc3RlcihmcmRfcmVnKCkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICAv LyBUT0RPOiB1c2UgRCBFeHRlbnNpb24gbWFjcm8gYmxvY2sKKysgICAgY2FzZSBST19GTEQ6IHsK KysgICAgICBpbnQ2NF90IGFkZHIgPSByczEoKSArIGltbTEyKCk7CisrICAgICAgZG91YmxlIHZh bCA9IFJlYWRNZW08ZG91YmxlPihhZGRyLCBpbnN0cl8uaW5zdHIoKSk7CisrICAgICAgc2V0X2Ry ZCh2YWwsIGZhbHNlKTsKKysgICAgICBUcmFjZU1lbVJkKGFkZHIsIHZhbCwgZ2V0X2ZwdV9yZWdp c3RlcihmcmRfcmVnKCkpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBkZWZhdWx0Ogor KyAgICAgIFVOU1VQUE9SVEVEKCk7CisrICB9CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpEZWNv ZGVSVlNUeXBlKCkgeworKyAgc3dpdGNoIChpbnN0cl8uSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrU1R5 cGVNYXNrKSB7CisrICAgIGNhc2UgUk9fU0I6CisrICAgICAgV3JpdGVNZW08dWludDhfdD4ocnMx KCkgKyBzX2ltbTEyKCksICh1aW50OF90KXJzMigpLCBpbnN0cl8uaW5zdHIoKSk7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgUk9fU0g6CisrICAgICAgV3JpdGVNZW08dWludDE2X3Q+KHJzMSgp ICsgc19pbW0xMigpLCAodWludDE2X3QpcnMyKCksIGluc3RyXy5pbnN0cigpKTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBST19TVzoKKysgICAgICBXcml0ZU1lbTx1aW50MzJfdD4ocnMxKCkg KyBzX2ltbTEyKCksICh1aW50MzJfdClyczIoKSwgaW5zdHJfLmluc3RyKCkpOworKyAgICAgIGJy ZWFrOworKyNpZmRlZiBWOF9UQVJHRVRfQVJDSF82NF9CSVQKKysgICAgY2FzZSBST19TRDoKKysg ICAgICBXcml0ZU1lbTx1aW50NjRfdD4ocnMxKCkgKyBzX2ltbTEyKCksICh1aW50NjRfdClyczIo KSwgaW5zdHJfLmluc3RyKCkpOworKyAgICAgIGJyZWFrOworKyNlbmRpZiAvKlY4X1RBUkdFVF9B UkNIXzY0X0JJVCovCisrICAgIC8vIFRPRE86IHVzZSBGIEV4dGVuc2lvbiBtYWNybyBibG9jawor KyAgICBjYXNlIFJPX0ZTVzogeworKyAgICAgIFdyaXRlTWVtPHVpbnQzMl90PihyczEoKSArIHNf aW1tMTIoKSwgCisrICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50MzJfdClnZXRfZnB1X3Jl Z2lzdGVyX3dvcmQocnMyX3JlZygpKSwgCisrICAgICAgICAgICAgICAgICAgICAgICAgIGluc3Ry Xy5pbnN0cigpKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICAvLyBUT0RPOiB1c2UgRCBF eHRlbnNpb24gbWFjcm8gYmxvY2sKKysgICAgY2FzZSBST19GU0Q6IHsKKysgICAgICBXcml0ZU1l bTxkb3VibGU+KHJzMSgpICsgc19pbW0xMigpLCBkcnMyKCksIGluc3RyXy5pbnN0cigpKTsKKysg ICAgICBicmVhazsKKysgICAgfQorKyAgICBkZWZhdWx0OgorKyAgICAgIFVOU1VQUE9SVEVEKCk7 CisrICB9CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVkJUeXBlKCkgeworKyAgc3dp dGNoIChpbnN0cl8uSW5zdHJ1Y3Rpb25CaXRzKCkgJiBrQlR5cGVNYXNrKSB7CisrICAgIGNhc2Ug Uk9fQkVROgorKyAgICAgIGlmIChyczEoKSA9PSByczIoKSkgeworKyAgICAgICAgaW50NjRfdCBu ZXh0X3BjID0gZ2V0X3BjKCkgKyBib2Zmc2V0KCk7CisrICAgICAgICBzZXRfcGMobmV4dF9wYyk7 CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFJPX0JORToKKysgICAgICBpZiAo cnMxKCkgIT0gcnMyKCkpIHsKKysgICAgICAgIGludDY0X3QgbmV4dF9wYyA9IGdldF9wYygpICsg Ym9mZnNldCgpOworKyAgICAgICAgc2V0X3BjKG5leHRfcGMpOworKyAgICAgIH0KKysgICAgICBi cmVhazsKKysgICAgY2FzZSBST19CTFQ6CisrICAgICAgaWYgKHJzMSgpIDwgcnMyKCkpIHsKKysg ICAgICAgIGludDY0X3QgbmV4dF9wYyA9IGdldF9wYygpICsgYm9mZnNldCgpOworKyAgICAgICAg c2V0X3BjKG5leHRfcGMpOworKyAgICAgIH0KKysgICAgICBicmVhazsKKysgICAgY2FzZSBST19C R0U6CisrICAgICAgaWYgKHJzMSgpID49IHJzMigpKSB7CisrICAgICAgICBpbnQ2NF90IG5leHRf cGMgPSBnZXRfcGMoKSArIGJvZmZzZXQoKTsKKysgICAgICAgIHNldF9wYyhuZXh0X3BjKTsKKysg ICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQkxUVToKKysgICAgICBpZiAoKHJl Z190KXJzMSgpIDwgKHJlZ190KXJzMigpKSB7CisrICAgICAgICBpbnQ2NF90IG5leHRfcGMgPSBn ZXRfcGMoKSArIGJvZmZzZXQoKTsKKysgICAgICAgIHNldF9wYyhuZXh0X3BjKTsKKysgICAgICB9 CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgUk9fQkdFVToKKysgICAgICBpZiAoKHJlZ190KXJz MSgpID49IChyZWdfdClyczIoKSkgeworKyAgICAgICAgaW50NjRfdCBuZXh0X3BjID0gZ2V0X3Bj KCkgKyBib2Zmc2V0KCk7CisrICAgICAgICBzZXRfcGMobmV4dF9wYyk7CisrICAgICAgfQorKyAg ICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOU1VQUE9SVEVEKCk7CisrICB9Cisr fQorK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVlVUeXBlKCkgeworKyAgLy8gVSBUeXBlIGRvZXNu J3QgaGF2ZSBhZGRpdG9pbmFsIG1hc2sKKysgIHN3aXRjaCAoaW5zdHJfLkJhc2VPcGNvZGVGaWVs ZFJhdygpKSB7CisrICAgIGNhc2UgUk9fTFVJOgorKyAgICAgIHNldF9yZCh1X2ltbSgpKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBST19BVUlQQzoKKysgICAgICBzZXRfcmQoc2V4dF94bGVu KHVfaW1tKCkgKyBnZXRfcGMoKSkpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAg ICAgIFVOU1VQUE9SVEVEKCk7CisrICB9CisrfQorK3ZvaWQgU2ltdWxhdG9yOjpEZWNvZGVSVkpU eXBlKCkgeworKyAgLy8gSiBUeXBlIGRvZXNuJ3QgaGF2ZSBhZGRpdGlvbmFsIG1hc2sKKysgIHN3 aXRjaCAoaW5zdHJfLkJhc2VPcGNvZGVWYWx1ZSgpKSB7CisrICAgIGNhc2UgUk9fSkFMOiB7Cisr ICAgICAgc2V0X3JkKGdldF9wYygpICsga0luc3RyU2l6ZSk7CisrICAgICAgaW50NjRfdCBuZXh0 X3BjID0gZ2V0X3BjKCkgKyBpbW0yMEooKTsKKysgICAgICBzZXRfcGMobmV4dF9wYyk7CisrICAg ICAgYnJlYWs7CisrICAgIH0KKysgICAgZGVmYXVsdDoKKysgICAgICBVTlNVUFBPUlRFRCgpOwor KyAgfQorK30KKysKKysvLyBFeGVjdXRlcyB0aGUgY3VycmVudCBpbnN0cnVjdGlvbi4KKyt2b2lk IFNpbXVsYXRvcjo6SW5zdHJ1Y3Rpb25EZWNvZGUoSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICBp ZiAodjg6OmludGVybmFsOjpGTEFHX2NoZWNrX2ljYWNoZSkgeworKyAgICBDaGVja0lDYWNoZShp X2NhY2hlKCksIGluc3RyKTsKKysgIH0KKysgIHBjX21vZGlmaWVkXyA9IGZhbHNlOworKworKyAg djg6OmludGVybmFsOjpFbWJlZGRlZFZlY3RvcjxjaGFyLCAyNTY+IGJ1ZmZlcjsKKysKKysgIGlm ICg6OnY4OjppbnRlcm5hbDo6RkxBR190cmFjZV9zaW0pIHsKKysgICAgU05QcmludEYodHJhY2Vf YnVmXywgIiAiKTsKKysgICAgZGlzYXNtOjpOYW1lQ29udmVydGVyIGNvbnZlcnRlcjsKKysgICAg ZGlzYXNtOjpEaXNhc3NlbWJsZXIgZGFzbShjb252ZXJ0ZXIpOworKyAgICAvLyBVc2UgYSByZWFz b25hYmx5IGxhcmdlIGJ1ZmZlci4KKysgICAgZGFzbS5JbnN0cnVjdGlvbkRlY29kZShidWZmZXIs IHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KGluc3RyKSk7CisrCisrICAgIC8vIFByaW50RigiRVhF Q1VUSU5HICAweCUwOCIgUFJJeFBUUiAiICAgJS00NHNcbiIsCisrICAgIC8vICAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGluc3RyKSwgYnVmZmVyLmJlZ2luKCkpOworKyAgfQorKwor KyAgaW5zdHJfID0gaW5zdHI7CisrICBzd2l0Y2ggKGluc3RyXy5JbnN0cnVjdGlvblR5cGUoKSkg eworKyAgICBjYXNlIEluc3RydWN0aW9uOjprUlR5cGU6CisrICAgICAgRGVjb2RlUlZSVHlwZSgp OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEluc3RydWN0aW9uOjprUjRUeXBlOgorKyAgICAg IERlY29kZVJWUjRUeXBlKCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgSW5zdHJ1Y3Rpb246 OmtJVHlwZToKKysgICAgICBEZWNvZGVSVklUeXBlKCk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgSW5zdHJ1Y3Rpb246OmtTVHlwZToKKysgICAgICBEZWNvZGVSVlNUeXBlKCk7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgSW5zdHJ1Y3Rpb246OmtCVHlwZToKKysgICAgICBEZWNvZGVSVkJU eXBlKCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgSW5zdHJ1Y3Rpb246OmtVVHlwZToKKysg ICAgICBEZWNvZGVSVlVUeXBlKCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgSW5zdHJ1Y3Rp b246OmtKVHlwZToKKysgICAgICBEZWNvZGVSVkpUeXBlKCk7CisrICAgICAgYnJlYWs7CisrICAg IGRlZmF1bHQ6CisrICAgICAgaWYgKDo6djg6OmludGVybmFsOjpGTEFHX3RyYWNlX3NpbSkgewor KyAgICAgICAgc3RkOjpjb3V0IDw8ICJVbnJlY29nbml6ZWQgaW5zdHJ1Y3Rpb24gW0BwYz0weCIg PDwgc3RkOjpoZXgKKysgICAgICAgICAgICAgICAgICA8PCByZWdpc3RlcnNfW3BjXSA8PCAiXTog MHgiIDw8IGluc3RyLT5JbnN0cnVjdGlvbkJpdHMoKQorKyAgICAgICAgICAgICAgICAgIDw8IHN0 ZDo6ZW5kbDsKKysgICAgICB9CisrICAgICAgVU5TVVBQT1JURUQoKTsKKysgIH0KKysKKysgIGlm ICg6OnY4OjppbnRlcm5hbDo6RkxBR190cmFjZV9zaW0pIHsKKysgICAgUHJpbnRGKCIgIDB4JTAx MiIgUFJJeFBUUiAiICAgJS00NHMgICAlc1xuIiwKKysgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8aW50cHRyX3Q+KGluc3RyKSwgYnVmZmVyLmJlZ2luKCksCisrICAgICAgICAgICB0cmFjZV9i dWZfLmJlZ2luKCkpOworKyAgfQorKworKyAgaWYgKCFwY19tb2RpZmllZF8pIHsKKysgICAgc2V0 X3JlZ2lzdGVyKHBjLCByZWludGVycHJldF9jYXN0PGludDY0X3Q+KGluc3RyKSArIGtJbnN0clNp emUpOworKyAgfQorK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6RXhlY3V0ZSgpIHsKKysgIC8vIEdl dCB0aGUgUEMgdG8gc2ltdWxhdGUuIENhbm5vdCB1c2UgdGhlIGFjY2Vzc29yIGhlcmUgYXMgd2Ug bmVlZCB0aGUKKysgIC8vIHJhdyBQQyB2YWx1ZSBhbmQgbm90IHRoZSBvbmUgdXNlZCBhcyBpbnB1 dCB0byBhcml0aG1ldGljIGluc3RydWN0aW9ucy4KKysgIGludDY0X3QgcHJvZ3JhbV9jb3VudGVy ID0gZ2V0X3BjKCk7CisrICB3aGlsZSAocHJvZ3JhbV9jb3VudGVyICE9IGVuZF9zaW1fcGMpIHsK KysgICAgSW5zdHJ1Y3Rpb24qIGluc3RyID0gcmVpbnRlcnByZXRfY2FzdDxJbnN0cnVjdGlvbio+ KHByb2dyYW1fY291bnRlcik7CisrICAgIGljb3VudF8rKzsKKysgICAgaWYgKGljb3VudF8gPT0g c3RhdGljX2Nhc3Q8aW50NjRfdD4oOjp2ODo6aW50ZXJuYWw6OkZMQUdfc3RvcF9zaW1fYXQpKSB7 CisrICAgICAgUmlzY3ZEZWJ1Z2dlciBkYmcodGhpcyk7CisrICAgICAgZGJnLkRlYnVnKCk7Cisr ICAgIH0gZWxzZSB7CisrICAgICAgSW5zdHJ1Y3Rpb25EZWNvZGUoaW5zdHIpOworKyAgICB9Cisr ICAgIENoZWNrQnJlYWtwb2ludHMoKTsKKysgICAgcHJvZ3JhbV9jb3VudGVyID0gZ2V0X3BjKCk7 CisrICB9CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpDYWxsSW50ZXJuYWwoQWRkcmVzcyBlbnRy eSkgeworKyAgLy8gQWRqdXN0IEpTLWJhc2VkIHN0YWNrIGxpbWl0IHRvIEMtYmFzZWQgc3RhY2sg bGltaXQuCisrICBpc29sYXRlXy0+c3RhY2tfZ3VhcmQoKS0+QWRqdXN0U3RhY2tMaW1pdEZvclNp bXVsYXRvcigpOworKworKyAgLy8gUHJlcGFyZSB0byBleGVjdXRlIHRoZSBjb2RlIGF0IGVudHJ5 LgorKyAgc2V0X3JlZ2lzdGVyKHBjLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihlbnRyeSkpOworKyAg Ly8gUHV0IGRvd24gbWFya2VyIGZvciBlbmQgb2Ygc2ltdWxhdGlvbi4gVGhlIHNpbXVsYXRvciB3 aWxsIHN0b3Agc2ltdWxhdGlvbgorKyAgLy8gd2hlbiB0aGUgUEMgcmVhY2hlcyB0aGlzIHZhbHVl LiBCeSBzYXZpbmcgdGhlICJlbmQgc2ltdWxhdGlvbiIgdmFsdWUgaW50bworKyAgLy8gdGhlIExS IHRoZSBzaW11bGF0aW9uIHN0b3BzIHdoZW4gcmV0dXJuaW5nIHRvIHRoaXMgY2FsbCBwb2ludC4K KysgIHNldF9yZWdpc3RlcihyYSwgZW5kX3NpbV9wYyk7CisrCisrICAvLyBSZW1lbWJlciB0aGUg dmFsdWVzIG9mIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCisrICAvLyBUaGUgY29kZSBiZWxvdyBh c3N1bWVzIHRoYXQgcjkgaXMgbm90IHVzZWQgYXMgc2IgKHN0YXRpYyBiYXNlKSBpbgorKyAgLy8g c2ltdWxhdG9yIGNvZGUgYW5kIHRoZXJlZm9yZSBpcyByZWdhcmRlZCBhcyBhIGNhbGxlZS1zYXZl ZCByZWdpc3Rlci4KKysgIGludDY0X3QgczBfdmFsID0gZ2V0X3JlZ2lzdGVyKHMwKTsKKysgIGlu dDY0X3QgczFfdmFsID0gZ2V0X3JlZ2lzdGVyKHMxKTsKKysgIGludDY0X3QgczJfdmFsID0gZ2V0 X3JlZ2lzdGVyKHMyKTsKKysgIGludDY0X3QgczNfdmFsID0gZ2V0X3JlZ2lzdGVyKHMzKTsKKysg IGludDY0X3QgczRfdmFsID0gZ2V0X3JlZ2lzdGVyKHM0KTsKKysgIGludDY0X3QgczVfdmFsID0g Z2V0X3JlZ2lzdGVyKHM1KTsKKysgIGludDY0X3QgczZfdmFsID0gZ2V0X3JlZ2lzdGVyKHM2KTsK KysgIGludDY0X3QgczdfdmFsID0gZ2V0X3JlZ2lzdGVyKHM3KTsKKysgIGludDY0X3QgZ3BfdmFs ID0gZ2V0X3JlZ2lzdGVyKGdwKTsKKysgIGludDY0X3Qgc3BfdmFsID0gZ2V0X3JlZ2lzdGVyKHNw KTsKKysgIGludDY0X3QgZnBfdmFsID0gZ2V0X3JlZ2lzdGVyKGZwKTsKKysKKysgIC8vIFNldCB1 cCB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyB3aXRoIGEga25vd24gdmFsdWUuIFRvIGJlIGFi bGUgdG8gY2hlY2sKKysgIC8vIHRoYXQgdGhleSBhcmUgcHJlc2VydmVkIHByb3Blcmx5IGFjcm9z cyBKUyBleGVjdXRpb24uCisrICBpbnQ2NF90IGNhbGxlZV9zYXZlZF92YWx1ZSA9IGljb3VudF87 CisrICBzZXRfcmVnaXN0ZXIoczAsIGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0 ZXIoczEsIGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0ZXIoczIsIGNhbGxlZV9z YXZlZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0ZXIoczMsIGNhbGxlZV9zYXZlZF92YWx1ZSk7Cisr ICBzZXRfcmVnaXN0ZXIoczQsIGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0ZXIo czUsIGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0ZXIoczYsIGNhbGxlZV9zYXZl ZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0ZXIoczcsIGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrICBz ZXRfcmVnaXN0ZXIoZ3AsIGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrICBzZXRfcmVnaXN0ZXIoZnAs IGNhbGxlZV9zYXZlZF92YWx1ZSk7CisrCisrICAvLyBTdGFydCB0aGUgc2ltdWxhdGlvbi4KKysg IEV4ZWN1dGUoKTsKKysKKysgIC8vIENoZWNrIHRoYXQgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3Rl cnMgaGF2ZSBiZWVuIHByZXNlcnZlZC4KKysgIENIRUNLX0VRKGNhbGxlZV9zYXZlZF92YWx1ZSwg Z2V0X3JlZ2lzdGVyKHMwKSk7CisrICBDSEVDS19FUShjYWxsZWVfc2F2ZWRfdmFsdWUsIGdldF9y ZWdpc3RlcihzMSkpOworKyAgQ0hFQ0tfRVEoY2FsbGVlX3NhdmVkX3ZhbHVlLCBnZXRfcmVnaXN0 ZXIoczIpKTsKKysgIENIRUNLX0VRKGNhbGxlZV9zYXZlZF92YWx1ZSwgZ2V0X3JlZ2lzdGVyKHMz KSk7CisrICBDSEVDS19FUShjYWxsZWVfc2F2ZWRfdmFsdWUsIGdldF9yZWdpc3RlcihzNCkpOwor KyAgQ0hFQ0tfRVEoY2FsbGVlX3NhdmVkX3ZhbHVlLCBnZXRfcmVnaXN0ZXIoczUpKTsKKysgIENI RUNLX0VRKGNhbGxlZV9zYXZlZF92YWx1ZSwgZ2V0X3JlZ2lzdGVyKHM2KSk7CisrICBDSEVDS19F UShjYWxsZWVfc2F2ZWRfdmFsdWUsIGdldF9yZWdpc3RlcihzNykpOworKyAgQ0hFQ0tfRVEoY2Fs bGVlX3NhdmVkX3ZhbHVlLCBnZXRfcmVnaXN0ZXIoZ3ApKTsKKysgIENIRUNLX0VRKGNhbGxlZV9z YXZlZF92YWx1ZSwgZ2V0X3JlZ2lzdGVyKGZwKSk7CisrCisrICAvLyBSZXN0b3JlIGNhbGxlZS1z YXZlZCByZWdpc3RlcnMgd2l0aCB0aGUgb3JpZ2luYWwgdmFsdWUuCisrICBzZXRfcmVnaXN0ZXIo czAsIHMwX3ZhbCk7CisrICBzZXRfcmVnaXN0ZXIoczEsIHMxX3ZhbCk7CisrICBzZXRfcmVnaXN0 ZXIoczIsIHMyX3ZhbCk7CisrICBzZXRfcmVnaXN0ZXIoczMsIHMzX3ZhbCk7CisrICBzZXRfcmVn aXN0ZXIoczQsIHM0X3ZhbCk7CisrICBzZXRfcmVnaXN0ZXIoczUsIHM1X3ZhbCk7CisrICBzZXRf cmVnaXN0ZXIoczYsIHM2X3ZhbCk7CisrICBzZXRfcmVnaXN0ZXIoczcsIHM3X3ZhbCk7CisrICBz ZXRfcmVnaXN0ZXIoZ3AsIGdwX3ZhbCk7CisrICBzZXRfcmVnaXN0ZXIoc3AsIHNwX3ZhbCk7Cisr ICBzZXRfcmVnaXN0ZXIoZnAsIGZwX3ZhbCk7CisrfQorKworK2ludHB0cl90IFNpbXVsYXRvcjo6 Q2FsbEltcGwoQWRkcmVzcyBlbnRyeSwgaW50IGFyZ3VtZW50X2NvdW50LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgaW50cHRyX3QqIGFyZ3VtZW50cykgeworKyAgY29uc3Rl eHByIGludCBrUmVnaXN0ZXJQYXNzZWRBcmd1bWVudHMgPSA4OworKyAgLy8gU2V0IHVwIGFyZ3Vt ZW50cy4KKysKKysgIC8vIEZpcnN0IGZvdXIgYXJndW1lbnRzIHBhc3NlZCBpbiByZWdpc3RlcnMg aW4gYm90aCBBQkkncy4KKysgIGludCByZWdfYXJnX2NvdW50ID0gc3RkOjptaW4oa1JlZ2lzdGVy UGFzc2VkQXJndW1lbnRzLCBhcmd1bWVudF9jb3VudCk7CisrICBpZiAocmVnX2FyZ19jb3VudCA+ IDApIHNldF9yZWdpc3RlcihhMCwgYXJndW1lbnRzWzBdKTsKKysgIGlmIChyZWdfYXJnX2NvdW50 ID4gMSkgc2V0X3JlZ2lzdGVyKGExLCBhcmd1bWVudHNbMV0pOworKyAgaWYgKHJlZ19hcmdfY291 bnQgPiAyKSBzZXRfcmVnaXN0ZXIoYTIsIGFyZ3VtZW50c1syXSk7CisrICBpZiAocmVnX2FyZ19j b3VudCA+IDMpIHNldF9yZWdpc3RlcihhMywgYXJndW1lbnRzWzNdKTsKKysKKysgIC8vIFVwIHRv IGVpZ2h0IGFyZ3VtZW50cyBwYXNzZWQgaW4gcmVnaXN0ZXJzIGluIE42NCBBQkkuCisrICAvLyBU T0RPKHBsaW5kKTogTjY0IEFCSSBjYWxscyB0aGVzZSByZWdzIGE0IC0gYTcuIENsYXJpZnkgdGhp cy4KKysgIGlmIChyZWdfYXJnX2NvdW50ID4gNCkgc2V0X3JlZ2lzdGVyKGE0LCBhcmd1bWVudHNb NF0pOworKyAgaWYgKHJlZ19hcmdfY291bnQgPiA1KSBzZXRfcmVnaXN0ZXIoYTUsIGFyZ3VtZW50 c1s1XSk7CisrICBpZiAocmVnX2FyZ19jb3VudCA+IDYpIHNldF9yZWdpc3RlcihhNiwgYXJndW1l bnRzWzZdKTsKKysgIGlmIChyZWdfYXJnX2NvdW50ID4gNykgc2V0X3JlZ2lzdGVyKGE3LCBhcmd1 bWVudHNbN10pOworKworKyAgaWYgKDo6djg6OmludGVybmFsOjpGTEFHX3RyYWNlX3NpbSkgewor KyAgICBzdGQ6OmNvdXQgPDwgIkNhbGxJbXBsOiByZWdfYXJnX2NvdW50ID0gIiA8PCByZWdfYXJn X2NvdW50IDw8IHN0ZDo6aGV4CisrICAgICAgICAgICAgICA8PCAiIGVudHJ5LXBjIChKU0VudHJ5 KSA9IDB4IiA8PCBlbnRyeSA8PCAiIGEwIChJc29sYXRlKSA9IDB4IgorKyAgICAgICAgICAgICAg PDwgZ2V0X3JlZ2lzdGVyKGEwKSA8PCAiIGExIChvcmlnX2Z1bmMvbmV3X3RhcmdldCkgPSAweCIK KysgICAgICAgICAgICAgIDw8IGdldF9yZWdpc3RlcihhMSkgPDwgIiBhMiAoZnVuYy90YXJnZXQp ID0gMHgiCisrICAgICAgICAgICAgICA8PCBnZXRfcmVnaXN0ZXIoYTIpIDw8ICIgYTMgKHJlY2Vp dmVyKSA9IDB4IiA8PCBnZXRfcmVnaXN0ZXIoYTMpCisrICAgICAgICAgICAgICA8PCAiIGE0IChh cmdjKSA9IDB4IiA8PCBnZXRfcmVnaXN0ZXIoYTQpIDw8ICIgYTUgKGFyZ3YpID0gMHgiCisrICAg ICAgICAgICAgICA8PCBnZXRfcmVnaXN0ZXIoYTUpIDw8IHN0ZDo6ZW5kbDsKKysgIH0KKysKKysg IC8vIFJlbWFpbmluZyBhcmd1bWVudHMgcGFzc2VkIG9uIHN0YWNrLgorKyAgaW50NjRfdCBvcmln aW5hbF9zdGFjayA9IGdldF9yZWdpc3RlcihzcCk7CisrICAvLyBDb21wdXRlIHBvc2l0aW9uIG9m IHN0YWNrIG9uIGVudHJ5IHRvIGdlbmVyYXRlZCBjb2RlLgorKyAgaW50IHN0YWNrX2FyZ3NfY291 bnQgPSBhcmd1bWVudF9jb3VudCAtIHJlZ19hcmdfY291bnQ7CisrICBpbnQgc3RhY2tfYXJnc19z aXplID0gc3RhY2tfYXJnc19jb3VudCAqIHNpemVvZigqYXJndW1lbnRzKSArIGtDQXJnc1Nsb3Rz U2l6ZTsKKysgIGludDY0X3QgZW50cnlfc3RhY2sgPSBvcmlnaW5hbF9zdGFjayAtIHN0YWNrX2Fy Z3Nfc2l6ZTsKKysKKysgIGlmIChiYXNlOjpPUzo6QWN0aXZhdGlvbkZyYW1lQWxpZ25tZW50KCkg IT0gMCkgeworKyAgICBlbnRyeV9zdGFjayAmPSAtYmFzZTo6T1M6OkFjdGl2YXRpb25GcmFtZUFs aWdubWVudCgpOworKyAgfQorKyAgLy8gU3RvcmUgcmVtYWluaW5nIGFyZ3VtZW50cyBvbiBzdGFj aywgZnJvbSBsb3cgdG8gaGlnaCBtZW1vcnkuCisrICBpbnRwdHJfdCogc3RhY2tfYXJndW1lbnQg PSByZWludGVycHJldF9jYXN0PGludHB0cl90Kj4oZW50cnlfc3RhY2spOworKyAgbWVtY3B5KHN0 YWNrX2FyZ3VtZW50ICsga0NBcmdTbG90Q291bnQsIGFyZ3VtZW50cyArIHJlZ19hcmdfY291bnQs CisrICAgICAgICAgc3RhY2tfYXJnc19jb3VudCAqIHNpemVvZigqYXJndW1lbnRzKSk7CisrICBz ZXRfcmVnaXN0ZXIoc3AsIGVudHJ5X3N0YWNrKTsKKysKKysgIENhbGxJbnRlcm5hbChlbnRyeSk7 CisrCisrICAvLyBQb3Agc3RhY2sgcGFzc2VkIGFyZ3VtZW50cy4KKysgIENIRUNLX0VRKGVudHJ5 X3N0YWNrLCBnZXRfcmVnaXN0ZXIoc3ApKTsKKysgIHNldF9yZWdpc3RlcihzcCwgb3JpZ2luYWxf c3RhY2spOworKworKyAgLy8gcmV0dXJuIGdldF9yZWdpc3RlcihhMCk7CisrICAvLyBSSVNDViB1 c2VzIGEwIHRvIHJldHVybiByZXN1bHQKKysgIHJldHVybiBnZXRfcmVnaXN0ZXIoYTApOworK30K KysKKytkb3VibGUgU2ltdWxhdG9yOjpDYWxsRlAoQWRkcmVzcyBlbnRyeSwgZG91YmxlIGQwLCBk b3VibGUgZDEpIHsKKysgIHNldF9mcHVfcmVnaXN0ZXJfZG91YmxlKGZhMCwgZDApOworKyAgc2V0 X2ZwdV9yZWdpc3Rlcl9kb3VibGUoZmExLCBkMSk7CisrICBDYWxsSW50ZXJuYWwoZW50cnkpOwor KyAgcmV0dXJuIGdldF9mcHVfcmVnaXN0ZXJfZG91YmxlKGZhMCk7CisrfQorKworK3VpbnRwdHJf dCBTaW11bGF0b3I6OlB1c2hBZGRyZXNzKHVpbnRwdHJfdCBhZGRyZXNzKSB7CisrICBpbnQ2NF90 IG5ld19zcCA9IGdldF9yZWdpc3RlcihzcCkgLSBzaXplb2YodWludHB0cl90KTsKKysgIHVpbnRw dHJfdCogc3RhY2tfc2xvdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Kj4obmV3X3NwKTsK KysgICpzdGFja19zbG90ID0gYWRkcmVzczsKKysgIHNldF9yZWdpc3RlcihzcCwgbmV3X3NwKTsK KysgIHJldHVybiBuZXdfc3A7CisrfQorKworK3VpbnRwdHJfdCBTaW11bGF0b3I6OlBvcEFkZHJl c3MoKSB7CisrICBpbnQ2NF90IGN1cnJlbnRfc3AgPSBnZXRfcmVnaXN0ZXIoc3ApOworKyAgdWlu dHB0cl90KiBzdGFja19zbG90ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3QqPihjdXJyZW50 X3NwKTsKKysgIHVpbnRwdHJfdCBhZGRyZXNzID0gKnN0YWNrX3Nsb3Q7CisrICBzZXRfcmVnaXN0 ZXIoc3AsIGN1cnJlbnRfc3AgKyBzaXplb2YodWludHB0cl90KSk7CisrICByZXR1cm4gYWRkcmVz czsKKyt9CisrCisrU2ltdWxhdG9yOjpMb2NhbE1vbml0b3I6OkxvY2FsTW9uaXRvcigpCisrICAg IDogYWNjZXNzX3N0YXRlXyhNb25pdG9yQWNjZXNzOjpPcGVuKSwKKysgICAgICB0YWdnZWRfYWRk cl8oMCksCisrICAgICAgc2l6ZV8oVHJhbnNhY3Rpb25TaXplOjpOb25lKSB7fQorKworK3ZvaWQg U2ltdWxhdG9yOjpMb2NhbE1vbml0b3I6OkNsZWFyKCkgeworKyAgYWNjZXNzX3N0YXRlXyA9IE1v bml0b3JBY2Nlc3M6Ok9wZW47CisrICB0YWdnZWRfYWRkcl8gPSAwOworKyAgc2l6ZV8gPSBUcmFu c2FjdGlvblNpemU6Ok5vbmU7CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpMb2NhbE1vbml0b3I6 Ok5vdGlmeUxvYWQoKSB7CisrICBpZiAoYWNjZXNzX3N0YXRlXyA9PSBNb25pdG9yQWNjZXNzOjpS TVcpIHsKKysgICAgLy8gQSBub24gbGlua2VkIGxvYWQgY291bGQgY2xlYXIgdGhlIGxvY2FsIG1v bml0b3IuIEFzIGEgcmVzdWx0LCBpdCdzCisrICAgIC8vIG1vc3Qgc3RyaWN0IHRvIHVuY29uZGl0 aW9uYWxseSBjbGVhciB0aGUgbG9jYWwgbW9uaXRvciBvbiBsb2FkLgorKyAgICBDbGVhcigpOwor KyAgfQorK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6TG9jYWxNb25pdG9yOjpOb3RpZnlMb2FkTGlu a2VkKHVpbnRwdHJfdCBhZGRyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVHJhbnNhY3Rpb25TaXplIHNpemUpIHsKKysgIGFjY2Vzc19zdGF0ZV8gPSBN b25pdG9yQWNjZXNzOjpSTVc7CisrICB0YWdnZWRfYWRkcl8gPSBhZGRyOworKyAgc2l6ZV8gPSBz aXplOworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6TG9jYWxNb25pdG9yOjpOb3RpZnlTdG9yZSgp IHsKKysgIGlmIChhY2Nlc3Nfc3RhdGVfID09IE1vbml0b3JBY2Nlc3M6OlJNVykgeworKyAgICAv LyBBIG5vbiBleGNsdXNpdmUgc3RvcmUgY291bGQgY2xlYXIgdGhlIGxvY2FsIG1vbml0b3IuIEFz IGEgcmVzdWx0LCBpdCdzCisrICAgIC8vIG1vc3Qgc3RyaWN0IHRvIHVuY29uZGl0aW9uYWxseSBj bGVhciB0aGUgbG9jYWwgbW9uaXRvciBvbiBzdG9yZS4KKysgICAgQ2xlYXIoKTsKKysgIH0KKyt9 CisrCisrYm9vbCBTaW11bGF0b3I6OkxvY2FsTW9uaXRvcjo6Tm90aWZ5U3RvcmVDb25kaXRpb25h bCh1aW50cHRyX3QgYWRkciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uU2l6ZSBzaXplKSB7CisrICBpZiAoYWNjZXNzX3N0 YXRlXyA9PSBNb25pdG9yQWNjZXNzOjpSTVcpIHsKKysgICAgaWYgKGFkZHIgPT0gdGFnZ2VkX2Fk ZHJfICYmIHNpemVfID09IHNpemUpIHsKKysgICAgICBDbGVhcigpOworKyAgICAgIHJldHVybiB0 cnVlOworKyAgICB9IGVsc2UgeworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgfSBl bHNlIHsKKysgICAgRENIRUNLKGFjY2Vzc19zdGF0ZV8gPT0gTW9uaXRvckFjY2Vzczo6T3Blbik7 CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKyt9CisrCisrU2ltdWxhdG9yOjpHbG9iYWxNb25p dG9yOjpMaW5rZWRBZGRyZXNzOjpMaW5rZWRBZGRyZXNzKCkKKysgICAgOiBhY2Nlc3Nfc3RhdGVf KE1vbml0b3JBY2Nlc3M6Ok9wZW4pLAorKyAgICAgIHRhZ2dlZF9hZGRyXygwKSwKKysgICAgICBu ZXh0XyhudWxscHRyKSwKKysgICAgICBwcmV2XyhudWxscHRyKSwKKysgICAgICBmYWlsdXJlX2Nv dW50ZXJfKDApIHt9CisrCisrdm9pZCBTaW11bGF0b3I6Okdsb2JhbE1vbml0b3I6OkxpbmtlZEFk ZHJlc3M6OkNsZWFyX0xvY2tlZCgpIHsKKysgIGFjY2Vzc19zdGF0ZV8gPSBNb25pdG9yQWNjZXNz OjpPcGVuOworKyAgdGFnZ2VkX2FkZHJfID0gMDsKKyt9CisrCisrdm9pZCBTaW11bGF0b3I6Okds b2JhbE1vbml0b3I6OkxpbmtlZEFkZHJlc3M6Ok5vdGlmeUxvYWRMaW5rZWRfTG9ja2VkKAorKyAg ICB1aW50cHRyX3QgYWRkcikgeworKyAgYWNjZXNzX3N0YXRlXyA9IE1vbml0b3JBY2Nlc3M6OlJN VzsKKysgIHRhZ2dlZF9hZGRyXyA9IGFkZHI7CisrfQorKworK3ZvaWQgU2ltdWxhdG9yOjpHbG9i YWxNb25pdG9yOjpMaW5rZWRBZGRyZXNzOjpOb3RpZnlTdG9yZV9Mb2NrZWQoKSB7CisrICBpZiAo YWNjZXNzX3N0YXRlXyA9PSBNb25pdG9yQWNjZXNzOjpSTVcpIHsKKysgICAgLy8gQSBub24gZXhj bHVzaXZlIHN0b3JlIGNvdWxkIGNsZWFyIHRoZSBnbG9iYWwgbW9uaXRvci4gQXMgYSByZXN1bHQs IGl0J3MKKysgICAgLy8gbW9zdCBzdHJpY3QgdG8gdW5jb25kaXRpb25hbGx5IGNsZWFyIGdsb2Jh bCBtb25pdG9ycyBvbiBzdG9yZS4KKysgICAgQ2xlYXJfTG9ja2VkKCk7CisrICB9CisrfQorKwor K2Jvb2wgU2ltdWxhdG9yOjpHbG9iYWxNb25pdG9yOjpMaW5rZWRBZGRyZXNzOjpOb3RpZnlTdG9y ZUNvbmRpdGlvbmFsX0xvY2tlZCgKKysgICAgdWludHB0cl90IGFkZHIsIGJvb2wgaXNfcmVxdWVz dGluZ190aHJlYWQpIHsKKysgIGlmIChhY2Nlc3Nfc3RhdGVfID09IE1vbml0b3JBY2Nlc3M6OlJN VykgeworKyAgICBpZiAoaXNfcmVxdWVzdGluZ190aHJlYWQpIHsKKysgICAgICBpZiAoYWRkciA9 PSB0YWdnZWRfYWRkcl8pIHsKKysgICAgICAgIENsZWFyX0xvY2tlZCgpOworKyAgICAgICAgLy8g SW50cm9kdWNlIG9jY2FzaW9uYWwgc2Mvc2NkIGZhaWx1cmVzLiBUaGlzIGlzIHRvIHNpbXVsYXRl IHRoZQorKyAgICAgICAgLy8gYmVoYXZpb3Igb2YgaGFyZHdhcmUsIHdoaWNoIGNhbiByYW5kb21s eSBmYWlsIGR1ZSB0byBiYWNrZ3JvdW5kCisrICAgICAgICAvLyBjYWNoZSBldmljdGlvbnMuCisr ICAgICAgICBpZiAoZmFpbHVyZV9jb3VudGVyXysrID49IGtNYXhGYWlsdXJlQ291bnRlcikgewor KyAgICAgICAgICBmYWlsdXJlX2NvdW50ZXJfID0gMDsKKysgICAgICAgICAgcmV0dXJuIGZhbHNl OworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgcmV0dXJuIHRydWU7CisrICAgICAgICB9 CisrICAgICAgfQorKyAgICB9IGVsc2UgaWYgKChhZGRyICYga0V4Y2x1c2l2ZVRhZ2dlZEFkZHJN YXNrKSA9PQorKyAgICAgICAgICAgICAgICh0YWdnZWRfYWRkcl8gJiBrRXhjbHVzaXZlVGFnZ2Vk QWRkck1hc2spKSB7CisrICAgICAgLy8gQ2hlY2sgdGhlIG1hc2tlZCBhZGRyZXNzZXMgd2hlbiBy ZXNwb25kaW5nIHRvIGEgc3VjY2Vzc2Z1bCBsb2NrIGJ5CisrICAgICAgLy8gYW5vdGhlciB0aHJl YWQgc28gdGhlIGltcGxlbWVudGF0aW9uIGlzIG1vcmUgY29uc2VydmF0aXZlIChpLmUuIHRoZQor KyAgICAgIC8vIGdyYW51bGFyaXR5IG9mIGxvY2tpbmcgaXMgYXMgbGFyZ2UgYXMgcG9zc2libGUu KQorKyAgICAgIENsZWFyX0xvY2tlZCgpOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQor KyAgfQorKyAgcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6R2xvYmFsTW9u aXRvcjo6Tm90aWZ5TG9hZExpbmtlZF9Mb2NrZWQoCisrICAgIHVpbnRwdHJfdCBhZGRyLCBMaW5r ZWRBZGRyZXNzKiBsaW5rZWRfYWRkcmVzcykgeworKyAgbGlua2VkX2FkZHJlc3MtPk5vdGlmeUxv YWRMaW5rZWRfTG9ja2VkKGFkZHIpOworKyAgUHJlcGVuZFByb2Nlc3Nvcl9Mb2NrZWQobGlua2Vk X2FkZHJlc3MpOworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6R2xvYmFsTW9uaXRvcjo6Tm90aWZ5 U3RvcmVfTG9ja2VkKAorKyAgICBMaW5rZWRBZGRyZXNzKiBsaW5rZWRfYWRkcmVzcykgeworKyAg Ly8gTm90aWZ5IGVhY2ggdGhyZWFkIG9mIHRoZSBzdG9yZSBvcGVyYXRpb24uCisrICBmb3IgKExp bmtlZEFkZHJlc3MqIGl0ZXIgPSBoZWFkXzsgaXRlcjsgaXRlciA9IGl0ZXItPm5leHRfKSB7Cisr ICAgIGl0ZXItPk5vdGlmeVN0b3JlX0xvY2tlZCgpOworKyAgfQorK30KKysKKytib29sIFNpbXVs YXRvcjo6R2xvYmFsTW9uaXRvcjo6Tm90aWZ5U3RvcmVDb25kaXRpb25hbF9Mb2NrZWQoCisrICAg IHVpbnRwdHJfdCBhZGRyLCBMaW5rZWRBZGRyZXNzKiBsaW5rZWRfYWRkcmVzcykgeworKyAgRENI RUNLKElzUHJvY2Vzc29ySW5MaW5rZWRMaXN0X0xvY2tlZChsaW5rZWRfYWRkcmVzcykpOworKyAg aWYgKGxpbmtlZF9hZGRyZXNzLT5Ob3RpZnlTdG9yZUNvbmRpdGlvbmFsX0xvY2tlZChhZGRyLCB0 cnVlKSkgeworKyAgICAvLyBOb3RpZnkgdGhlIG90aGVyIHByb2Nlc3NvcnMgdGhhdCB0aGlzIFN0 b3JlQ29uZGl0aW9uYWwgc3VjY2VlZGVkLgorKyAgICBmb3IgKExpbmtlZEFkZHJlc3MqIGl0ZXIg PSBoZWFkXzsgaXRlcjsgaXRlciA9IGl0ZXItPm5leHRfKSB7CisrICAgICAgaWYgKGl0ZXIgIT0g bGlua2VkX2FkZHJlc3MpIHsKKysgICAgICAgIGl0ZXItPk5vdGlmeVN0b3JlQ29uZGl0aW9uYWxf TG9ja2VkKGFkZHIsIGZhbHNlKTsKKysgICAgICB9CisrICAgIH0KKysgICAgcmV0dXJuIHRydWU7 CisrICB9IGVsc2UgeworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrfQorKworK2Jvb2wgU2lt dWxhdG9yOjpHbG9iYWxNb25pdG9yOjpJc1Byb2Nlc3NvckluTGlua2VkTGlzdF9Mb2NrZWQoCisr ICAgIExpbmtlZEFkZHJlc3MqIGxpbmtlZF9hZGRyZXNzKSBjb25zdCB7CisrICByZXR1cm4gaGVh ZF8gPT0gbGlua2VkX2FkZHJlc3MgfHwgbGlua2VkX2FkZHJlc3MtPm5leHRfIHx8CisrICAgICAg ICAgbGlua2VkX2FkZHJlc3MtPnByZXZfOworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6R2xvYmFs TW9uaXRvcjo6UHJlcGVuZFByb2Nlc3Nvcl9Mb2NrZWQoCisrICAgIExpbmtlZEFkZHJlc3MqIGxp bmtlZF9hZGRyZXNzKSB7CisrICBpZiAoSXNQcm9jZXNzb3JJbkxpbmtlZExpc3RfTG9ja2VkKGxp bmtlZF9hZGRyZXNzKSkgeworKyAgICByZXR1cm47CisrICB9CisrCisrICBpZiAoaGVhZF8pIHsK KysgICAgaGVhZF8tPnByZXZfID0gbGlua2VkX2FkZHJlc3M7CisrICB9CisrICBsaW5rZWRfYWRk cmVzcy0+cHJldl8gPSBudWxscHRyOworKyAgbGlua2VkX2FkZHJlc3MtPm5leHRfID0gaGVhZF87 CisrICBoZWFkXyA9IGxpbmtlZF9hZGRyZXNzOworK30KKysKKyt2b2lkIFNpbXVsYXRvcjo6R2xv YmFsTW9uaXRvcjo6UmVtb3ZlTGlua2VkQWRkcmVzcygKKysgICAgTGlua2VkQWRkcmVzcyogbGlu a2VkX2FkZHJlc3MpIHsKKysgIGJhc2U6Ok11dGV4R3VhcmQgbG9ja19ndWFyZCgmbXV0ZXgpOwor KyAgaWYgKCFJc1Byb2Nlc3NvckluTGlua2VkTGlzdF9Mb2NrZWQobGlua2VkX2FkZHJlc3MpKSB7 CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIGlmIChsaW5rZWRfYWRkcmVzcy0+cHJldl8pIHsK KysgICAgbGlua2VkX2FkZHJlc3MtPnByZXZfLT5uZXh0XyA9IGxpbmtlZF9hZGRyZXNzLT5uZXh0 XzsKKysgIH0gZWxzZSB7CisrICAgIGhlYWRfID0gbGlua2VkX2FkZHJlc3MtPm5leHRfOworKyAg fQorKyAgaWYgKGxpbmtlZF9hZGRyZXNzLT5uZXh0XykgeworKyAgICBsaW5rZWRfYWRkcmVzcy0+ bmV4dF8tPnByZXZfID0gbGlua2VkX2FkZHJlc3MtPnByZXZfOworKyAgfQorKyAgbGlua2VkX2Fk ZHJlc3MtPnByZXZfID0gbnVsbHB0cjsKKysgIGxpbmtlZF9hZGRyZXNzLT5uZXh0XyA9IG51bGxw dHI7CisrfQorKworKyN1bmRlZiBTU2NhbkYKKysKKyt9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwK Kyt9ICAvLyBuYW1lc3BhY2UgdjgKKysKKysjZW5kaWYgIC8vIFVTRV9TSU1VTEFUT1IKK0luZGV4 OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9leGVjdXRpb24vcmlzY3Y2NC9zaW11bGF0b3ItcmlzY3Y2NC5oCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gL2Rldi9udWxsCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZXhlY3V0aW9uL3Jpc2N2NjQvc2ltdWxhdG9yLXJp c2N2NjQuaAorQEAgLTAsMCArMSw3NjQgQEAKKysvLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJv amVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKy8vIENvcHlyaWdodChjKSAyMDEwIC0g MjAxNywKKysvLyAgICAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YShSZWdlbnRzKS5BbGwgUmlnaHRzIFJlc2VydmVkLgorKy8vCisrLy8gICAgIFJlZGlzdHJpYnV0 aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisrLy8gICAgIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb24sCisrLy8gICAgIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh dCB0aGUgZm9sbG93aW5nCisrLy8gICAgIGNvbmRpdGlvbnMgYXJlIG1ldCA6IDEuIFJlZGlzdHJp YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUKKysvLyAgICAgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK KysvLyAgICAgZGlzY2xhaW1lci4yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz dCByZXByb2R1Y2UgdGhlIGFib3ZlCisrLy8gICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKysvLyAgICAg dGhlCisrLy8gICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiBhbmQgLworKy8vICAgICAgICAgb3IK KysvLyAgICAgICAgIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp b24uMy4gTmVpdGhlciB0aGUgbmFtZSBvZgorKy8vICAgICAgICAgdGhlIFJlZ2VudHMgbm9yIHRo ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UKKysvLyAg ICAgICAgIG9yCisrLy8gICAgICAgICBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKy8v ICAgICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy bWlzc2lvbi4KKysvLworKy8vICAgICAgICAgSU4gTk8gRVZFTlQgU0hBTEwgUkVHRU5UUyBCRSBM SUFCTEUgVE8gQU5ZIFBBUlRZIEZPUiBESVJFQ1QsCisrLy8gICAgIElORElSRUNULCBTUEVDSUFM LAorKy8vICAgICBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIElOQ0xVRElO RyBMT1NUIFBST0ZJVFMsCisrLy8gICAgIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT T0ZUV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT04sCisrLy8gICAgIEVWRU4gSUYgUkVHRU5UUyBI QVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKysvLwor Ky8vICAgICBSRUdFTlRTIFNQRUNJRklDQUxMWSBESVNDTEFJTVMgQU5ZIFdBUlJBTlRJRVMsCisr Ly8gICAgIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKy8vICAgICBUSEUgSU1QTElF RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQorKy8vICAg ICBQQVJUSUNVTEFSIFBVUlBPU0UuVEhFIFNPRlRXQVJFIEFORCBBQ0NPTVBBTllJTkcgRE9DVU1F TlRBVElPTiwKKysvLyAgICAgSUYgQU5ZLAorKy8vICAgICBQUk9WSURFRCBIRVJFVU5ERVIgSVMg UFJPVklERUQKKysvLyAgICAgIkFTIElTIi5SRUdFTlRTIEhBUyBOTyBPQkxJR0FUSU9OIFRPIFBS T1ZJREUgTUFJTlRFTkFOQ0UsCisrLy8gICAgIFNVUFBPUlQsIFVQREFURVMsIEVOSEFOQ0VNRU5U UywKKysvLyAgICAgT1IgTU9ESUZJQ0FUSU9OUy4KKysKKysvLyBUaGUgb3JpZ2luYWwgc291cmNl IGNvZGUgY292ZXJlZCBieSB0aGUgYWJvdmUgbGljZW5zZSBhYm92ZSBoYXMgYmVlbgorKy8vIG1v ZGlmaWVkIHNpZ25pZmljYW50bHkgYnkgdGhlIHY4IHByb2plY3QgYXV0aG9ycy4KKysKKysvLyBE ZWNsYXJlcyBhIFNpbXVsYXRvciBmb3IgUklTQy1WIGluc3RydWN0aW9ucyBpZiB3ZSBhcmUgbm90 IGdlbmVyYXRpbmcgYQorKy8vIG5hdGl2ZSBSSVNDLVYgYmluYXJ5LiBUaGlzIFNpbXVsYXRvciBh bGxvd3MgdXMgdG8gcnVuIGFuZCBkZWJ1ZyBSSVNDLVYgY29kZQorKy8vIGdlbmVyYXRpb24gb24g cmVndWxhciBkZXNrdG9wIG1hY2hpbmVzLiBWOCBjYWxscyBpbnRvIGdlbmVyYXRlZCBjb2RlIHZp YSB0aGUKKysvLyBHZW5lcmF0ZWRDb2RlIHdyYXBwZXIsIHdoaWNoIHdpbGwgc3RhcnQgZXhlY3V0 aW9uIGluIHRoZSBTaW11bGF0b3Igb3IKKysvLyBmb3J3YXJkcyB0byB0aGUgcmVhbCBlbnRyeSBv biBhIFJJU0MtViBIVyBwbGF0Zm9ybS4KKysKKysjaWZuZGVmIFY4X0VYRUNVVElPTl9SSVNDVl9T SU1VTEFUT1JfUklTQ1ZfSF8KKysjZGVmaW5lIFY4X0VYRUNVVElPTl9SSVNDVl9TSU1VTEFUT1Jf UklTQ1ZfSF8KKysKKysvLyBnbG9iYWxzLmggZGVmaW5lcyBVU0VfU0lNVUxBVE9SLgorKyNpbmNs dWRlICJzcmMvY29tbW9uL2dsb2JhbHMuaCIKKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKytp bnQgQ29tcGFyZShjb25zdCBUJiBhLCBjb25zdCBUJiBiKSB7CisrICBpZiAoYSA9PSBiKQorKyAg ICByZXR1cm4gMDsKKysgIGVsc2UgaWYgKGEgPCBiKQorKyAgICByZXR1cm4gLTE7CisrICBlbHNl CisrICAgIHJldHVybiAxOworK30KKysKKysvLyBSZXR1cm5zIHRoZSBuZWdhdGl2ZSBhYnNvbHV0 ZSB2YWx1ZSBvZiBpdHMgYXJndW1lbnQuCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQsCisrICAgICAg ICAgIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zaWduZWQ8VD46 OnZhbHVlPjo6dHlwZT4KKytUIE5hYnMoVCBhKSB7CisrICByZXR1cm4gYSA8IDAgPyBhIDogLWE7 CisrfQorKworKyNpZiBkZWZpbmVkKFVTRV9TSU1VTEFUT1IpCisrLy8gUnVubmluZyB3aXRoIGEg c2ltdWxhdG9yLgorKworKyNpbmNsdWRlICJzcmMvYmFzZS9oYXNobWFwLmgiCisrI2luY2x1ZGUg InNyYy9jb2RlZ2VuL2Fzc2VtYmxlci5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9yaXNjdjY0 L2NvbnN0YW50cy1yaXNjdjY0LmgiCisrI2luY2x1ZGUgInNyYy9leGVjdXRpb24vc2ltdWxhdG9y LWJhc2UuaCIKKysjaW5jbHVkZSAic3JjL3V0aWxzL2FsbG9jYXRpb24uaCIKKysKKytuYW1lc3Bh Y2UgdjggeworK25hbWVzcGFjZSBpbnRlcm5hbCB7CisrCisrLy8gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysvLyBVdGlsaXR5IHR5cGVzIGFuZCBmdW5jdGlvbnMgZm9yIFJJU0NWCisrLy8gVE9ETzog QWRkIFNwaWtlIExpY2Vuc2UgaGVyZQorKyNpZmRlZiBWOF9UQVJHRVRfQVJDSF8zMl9CSVQKKyt1 c2luZyBzcmVnX3QgPSBpbnQzMl90OworK3VzaW5nIHJlZ190ID0gdWludDMyX3Q7CisrI2RlZmlu ZSB4bGVuIDMyCisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hfNjRfQklUCisrdXNpbmcgc3JlZ190ID0g aW50NjRfdDsKKyt1c2luZyByZWdfdCA9IHVpbnQ2NF90OworKyNkZWZpbmUgeGxlbiA2NAorKyNl bHNlCisrI2Vycm9yICJDYW5ub3QgZGV0ZWN0IFJpc2N2J3MgYml0d2lkdGgiCisrI2VuZGlmCisr CisrI2RlZmluZSBzZXh0MzIoeCkgKChzcmVnX3QpKGludDMyX3QpKHgpKQorKyNkZWZpbmUgemV4 dDMyKHgpICgocmVnX3QpKHVpbnQzMl90KSh4KSkKKysjZGVmaW5lIHNleHRfeGxlbih4KSAoKChz cmVnX3QpKHgpIDw8ICg2NCAtIHhsZW4pKSA+PiAoNjQgLSB4bGVuKSkKKysjZGVmaW5lIHpleHRf eGxlbih4KSAoKChyZWdfdCkoeCkgPDwgKDY0IC0geGxlbikpID4+ICg2NCAtIHhsZW4pKQorKwor KyNkZWZpbmUgQklUKG4pICgweDFMTCA8PCBuKQorKyNkZWZpbmUgUVVJRVRfQklUX1MobmFuKSAo Yml0X2Nhc3Q8aW50MzJfdD4obmFuKSAmIEJJVCgyMikpCisrI2RlZmluZSBRVUlFVF9CSVRfRChu YW4pIChiaXRfY2FzdDxpbnQ2NF90PihuYW4pICYgQklUKDUxKSkKKytzdGF0aWMgaW5saW5lIGJv b2wgaXNTbmFuKGZsb2F0IGZwKSB7IHJldHVybiAhUVVJRVRfQklUX1MoZnApOyB9Cisrc3RhdGlj IGlubGluZSBib29sIGlzU25hbihkb3VibGUgZnApIHsgcmV0dXJuICFRVUlFVF9CSVRfRChmcCk7 IH0KKysjdW5kZWYgUVVJRVRfQklUX1MKKysjdW5kZWYgUVVJRVRfQklUX0QKKysKKytpbmxpbmUg dWludDY0X3QgbXVsaHUodWludDY0X3QgYSwgdWludDY0X3QgYikgeworKyAgX191aW50MTI4X3Qg ZnVsbF9yZXN1bHQgPSAoKF9fdWludDEyOF90KWEpICogKChfX3VpbnQxMjhfdCliKTsKKysgIHJl dHVybiBmdWxsX3Jlc3VsdCA+PiA2NDsKKyt9CisrCisraW5saW5lIGludDY0X3QgbXVsaChpbnQ2 NF90IGEsIGludDY0X3QgYikgeworKyAgX19pbnQxMjhfdCBmdWxsX3Jlc3VsdCA9ICgoX19pbnQx MjhfdClhKSAqICgoX19pbnQxMjhfdCliKTsKKysgIHJldHVybiBmdWxsX3Jlc3VsdCA+PiA2NDsK Kyt9CisrCisraW5saW5lIGludDY0X3QgbXVsaHN1KGludDY0X3QgYSwgdWludDY0X3QgYikgewor KyAgX19pbnQxMjhfdCBmdWxsX3Jlc3VsdCA9ICgoX19pbnQxMjhfdClhKSAqICgoX191aW50MTI4 X3QpYik7CisrICByZXR1cm4gZnVsbF9yZXN1bHQgPj4gNjQ7CisrfQorKworKy8vIEZsb2F0aW5n IHBvaW50IGhlbHBlcnMKKysjZGVmaW5lIEYzMl9TSUdOICgodWludDMyX3QpMSA8PCAzMSkKKyt1 bmlvbiB1MzJfZjMyIHsKKysgIHVpbnQzMl90IHU7CisrICBmbG9hdCBmOworK307CisraW5saW5l IGZsb2F0IGZzZ25qMzIoZmxvYXQgcnMxLCBmbG9hdCByczIsIGJvb2wgbiwgYm9vbCB4KSB7Cisr ICB1MzJfZjMyIGEgPSB7LmYgPSByczF9LCBiID0gey5mID0gcnMyfTsKKysgIHUzMl9mMzIgcmVz OworKyAgcmVzLnUgPQorKyAgICAgIChhLnUgJiB+RjMyX1NJR04pIHwgKCgoKHgpID8gYS51IDog KG4pID8gRjMyX1NJR04gOiAwKSBeIGIudSkgJiBGMzJfU0lHTik7CisrICByZXR1cm4gcmVzLmY7 CisrfQorKyNkZWZpbmUgRjY0X1NJR04gKCh1aW50NjRfdCkxIDw8IDYzKQorK3VuaW9uIHU2NF9m NjQgeworKyAgdWludDY0X3QgdTsKKysgIGRvdWJsZSBkOworK307CisraW5saW5lIGRvdWJsZSBm c2duajY0KGRvdWJsZSByczEsIGRvdWJsZSByczIsIGJvb2wgbiwgYm9vbCB4KSB7CisrICB1NjRf ZjY0IGEgPSB7LmQgPSByczF9LCBiID0gey5kID0gcnMyfTsKKysgIHU2NF9mNjQgcmVzOworKyAg cmVzLnUgPQorKyAgICAgIChhLnUgJiB+RjY0X1NJR04pIHwgKCgoKHgpID8gYS51IDogKG4pID8g RjY0X1NJR04gOiAwKSBeIGIudSkgJiBGNjRfU0lHTik7CisrICByZXR1cm4gcmVzLmQ7CisrfQor KworK2lubGluZSBib29sIGlzX2JveGVkX2Zsb2F0KGludDY0X3QgdikgeworKyAgcmV0dXJuICh1 aW50MzJfdCkoKHYgPj4gMzIpICsgMSkgPT0gMDsKKyt9CisraW5saW5lIGludDY0X3QgYm94X2Zs b2F0KGZsb2F0IHYpIHsgCisrICByZXR1cm4gKDB4RkZGRkZGRkYwMDAwMDAwMCB8IGJpdF9jYXN0 PGludDMyX3Q+KHYpKTsgCisrfQorKworKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrLy8gVXRp bGl0eSBmdW5jdGlvbnMKKysKKytjbGFzcyBDYWNoZVBhZ2UgeworKyBwdWJsaWM6CisrICBzdGF0 aWMgY29uc3QgaW50IExJTkVfVkFMSUQgPSAwOworKyAgc3RhdGljIGNvbnN0IGludCBMSU5FX0lO VkFMSUQgPSAxOworKworKyAgc3RhdGljIGNvbnN0IGludCBrUGFnZVNoaWZ0ID0gMTI7CisrICBz dGF0aWMgY29uc3QgaW50IGtQYWdlU2l6ZSA9IDEgPDwga1BhZ2VTaGlmdDsKKysgIHN0YXRpYyBj b25zdCBpbnQga1BhZ2VNYXNrID0ga1BhZ2VTaXplIC0gMTsKKysgIHN0YXRpYyBjb25zdCBpbnQg a0xpbmVTaGlmdCA9IDI7ICAvLyBUaGUgY2FjaGUgbGluZSBpcyBvbmx5IDQgYnl0ZXMgcmlnaHQg bm93LgorKyAgc3RhdGljIGNvbnN0IGludCBrTGluZUxlbmd0aCA9IDEgPDwga0xpbmVTaGlmdDsK KysgIHN0YXRpYyBjb25zdCBpbnQga0xpbmVNYXNrID0ga0xpbmVMZW5ndGggLSAxOworKworKyAg Q2FjaGVQYWdlKCkgeyBtZW1zZXQoJnZhbGlkaXR5X21hcF8sIExJTkVfSU5WQUxJRCwgc2l6ZW9m KHZhbGlkaXR5X21hcF8pKTsgfQorKworKyAgY2hhciogVmFsaWRpdHlCeXRlKGludCBvZmZzZXQp IHsKKysgICAgcmV0dXJuICZ2YWxpZGl0eV9tYXBfW29mZnNldCA+PiBrTGluZVNoaWZ0XTsKKysg IH0KKysKKysgIGNoYXIqIENhY2hlZERhdGEoaW50IG9mZnNldCkgeyByZXR1cm4gJmRhdGFfW29m ZnNldF07IH0KKysKKysgcHJpdmF0ZToKKysgIGNoYXIgZGF0YV9ba1BhZ2VTaXplXTsgIC8vIFRo ZSBjYWNoZWQgZGF0YS4KKysgIHN0YXRpYyBjb25zdCBpbnQga1ZhbGlkaXR5TWFwU2l6ZSA9IGtQ YWdlU2l6ZSA+PiBrTGluZVNoaWZ0OworKyAgY2hhciB2YWxpZGl0eV9tYXBfW2tWYWxpZGl0eU1h cFNpemVdOyAgLy8gT25lIGJ5dGUgcGVyIGxpbmUuCisrfTsKKysKKytjbGFzcyBTaW1JbnN0cnVj dGlvbkJhc2UgOiBwdWJsaWMgSW5zdHJ1Y3Rpb25CYXNlIHsKKysgcHVibGljOgorKyAgVHlwZSBJ bnN0cnVjdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiB0eXBlXzsgfQorKyAgaW5saW5lIEluc3Ry dWN0aW9uKiBpbnN0cigpIGNvbnN0IHsgcmV0dXJuIGluc3RyXzsgfQorKyAgaW5saW5lIGludDMy X3Qgb3BlcmFuZCgpIGNvbnN0IHsgcmV0dXJuIG9wZXJhbmRfOyB9CisrCisrIHByb3RlY3RlZDoK KysgIFNpbUluc3RydWN0aW9uQmFzZSgpIDogb3BlcmFuZF8oLTEpLCBpbnN0cl8obnVsbHB0ciks IHR5cGVfKGtVbnN1cHBvcnRlZCkge30KKysgIGV4cGxpY2l0IFNpbUluc3RydWN0aW9uQmFzZShJ bnN0cnVjdGlvbiogaW5zdHIpIHt9CisrCisrICBpbnQzMl90IG9wZXJhbmRfOworKyAgSW5zdHJ1 Y3Rpb24qIGluc3RyXzsKKysgIFR5cGUgdHlwZV87CisrCisrIHByaXZhdGU6CisrICBESVNBTExP V19BU1NJR04oU2ltSW5zdHJ1Y3Rpb25CYXNlKTsKKyt9OworKworK2NsYXNzIFNpbUluc3RydWN0 aW9uIDogcHVibGljIEluc3RydWN0aW9uR2V0dGVyczxTaW1JbnN0cnVjdGlvbkJhc2U+IHsKKysg cHVibGljOgorKyAgU2ltSW5zdHJ1Y3Rpb24oKSB7fQorKworKyAgZXhwbGljaXQgU2ltSW5zdHJ1 Y3Rpb24oSW5zdHJ1Y3Rpb24qIGluc3RyKSB7ICp0aGlzID0gaW5zdHI7IH0KKysKKysgIFNpbUlu c3RydWN0aW9uJiBvcGVyYXRvcj0oSW5zdHJ1Y3Rpb24qIGluc3RyKSB7CisrICAgIG9wZXJhbmRf ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaW50MzJfdCo+KGluc3RyKTsKKysgICAgaW5zdHJf ID0gaW5zdHI7CisrICAgIHR5cGVfID0gSW5zdHJ1Y3Rpb25CYXNlOjpJbnN0cnVjdGlvblR5cGUo KTsKKysgICAgRENIRUNLKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KCZvcGVyYW5kXykgPT0gdGhp cyk7CisrICAgIHJldHVybiAqdGhpczsKKysgIH0KKyt9OworKworK2NsYXNzIFNpbXVsYXRvciA6 IHB1YmxpYyBTaW11bGF0b3JCYXNlIHsKKysgcHVibGljOgorKyAgZnJpZW5kIGNsYXNzIFJpc2N2 RGVidWdnZXI7CisrCisrICAvLyBSZWdpc3RlcnMgYXJlIGRlY2xhcmVkIGluIG9yZGVyLiBTZWUg U01STCBjaGFwdGVyIDIuCisrICBlbnVtIFJlZ2lzdGVyIHsKKysgICAgbm9fcmVnID0gLTEsCisr ICAgIHplcm9fcmVnID0gMCwKKysgICAgcmEsCisrICAgIHNwLAorKyAgICBncCwKKysgICAgdHAs CisrICAgIHQwLAorKyAgICB0MSwKKysgICAgdDIsCisrICAgIHMwLAorKyAgICBzMSwKKysgICAg YTAsCisrICAgIGExLAorKyAgICBhMiwKKysgICAgYTMsCisrICAgIGE0LAorKyAgICBhNSwKKysg ICAgYTYsCisrICAgIGE3LAorKyAgICBzMiwKKysgICAgczMsCisrICAgIHM0LAorKyAgICBzNSwK KysgICAgczYsCisrICAgIHM3LAorKyAgICBzOCwKKysgICAgczksCisrICAgIHMxMCwKKysgICAg czExLAorKyAgICB0MywKKysgICAgdDQsCisrICAgIHQ1LAorKyAgICB0NiwKKysgICAgcGMsICAv LyBwYyBtdXN0IGJlIHRoZSBsYXN0IHJlZ2lzdGVyLgorKyAgICBrTnVtU2ltdVJlZ2lzdGVycywK KysgICAgLy8gYWxpYXNlcworKyAgICBmcCA9IHMwCisrICB9OworKworKyAgLy8gQ29wcm9jZXNz b3IgcmVnaXN0ZXJzLgorKyAgLy8gR2VuZXJhdGVkIGNvZGUgd2lsbCBhbHdheXMgdXNlIGRvdWJs ZXMuIFNvIHdlIHdpbGwgb25seSB1c2UgZXZlbiByZWdpc3RlcnMuCisrICBlbnVtIEZQVVJlZ2lz dGVyIHsKKysgICAgZnQwLAorKyAgICBmdDEsCisrICAgIGZ0MiwKKysgICAgZnQzLAorKyAgICBm dDQsCisrICAgIGZ0NSwKKysgICAgZnQ2LAorKyAgICBmdDcsCisrICAgIGZzMCwKKysgICAgZnMx LAorKyAgICBmYTAsCisrICAgIGZhMSwKKysgICAgZmEyLAorKyAgICBmYTMsCisrICAgIGZhNCwK KysgICAgZmE1LAorKyAgICBmYTYsCisrICAgIGZhNywKKysgICAgZnMyLAorKyAgICBmczMsCisr ICAgIGZzNCwKKysgICAgZnM1LAorKyAgICBmczYsCisrICAgIGZzNywKKysgICAgZnM4LAorKyAg ICBmczksCisrICAgIGZzMTAsCisrICAgIGZzMTEsCisrICAgIGZ0OCwKKysgICAgZnQ5LAorKyAg ICBmdDEwLAorKyAgICBmdDExLAorKyAgICBrTnVtRlBVUmVnaXN0ZXJzCisrICB9OworKworKyAg ZXhwbGljaXQgU2ltdWxhdG9yKElzb2xhdGUqIGlzb2xhdGUpOworKyAgflNpbXVsYXRvcigpOwor KworKyAgLy8gVGhlIGN1cnJlbnRseSBleGVjdXRpbmcgU2ltdWxhdG9yIGluc3RhbmNlLiBQb3Rl bnRpYWxseSB0aGVyZSBjYW4gYmUgb25lCisrICAvLyBmb3IgZWFjaCBuYXRpdmUgdGhyZWFkLgor KyAgVjhfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFNpbXVsYXRvciogY3VycmVudCh2ODo6aW50ZXJu YWw6Oklzb2xhdGUqIGlzb2xhdGUpOworKworKyAgLy8gQWNjZXNzb3JzIGZvciByZWdpc3RlciBz dGF0ZS4gUmVhZGluZyB0aGUgcGMgdmFsdWUgYWRoZXJlcyB0byB0aGUgUklTQy1WCisrICAvLyBh cmNoaXRlY3R1cmUgc3BlY2lmaWNhdGlvbiBhbmQgaXMgb2ZmIGJ5IGEgOCBmcm9tIHRoZSBjdXJy ZW50bHkgZXhlY3V0aW5nCisrICAvLyBpbnN0cnVjdGlvbi4KKysgIHZvaWQgc2V0X3JlZ2lzdGVy KGludCByZWcsIGludDY0X3QgdmFsdWUpOworKyAgdm9pZCBzZXRfcmVnaXN0ZXJfd29yZChpbnQg cmVnLCBpbnQzMl90IHZhbHVlKTsKKysgIHZvaWQgc2V0X2R3X3JlZ2lzdGVyKGludCBkcmVnLCBj b25zdCBpbnQqIGRibCk7CisrICBpbnQ2NF90IGdldF9yZWdpc3RlcihpbnQgcmVnKSBjb25zdDsK KysgIGRvdWJsZSBnZXRfZG91YmxlX2Zyb21fcmVnaXN0ZXJfcGFpcihpbnQgcmVnKTsKKysKKysg IC8vIFNhbWUgZm9yIEZQVVJlZ2lzdGVycy4KKysgIHZvaWQgc2V0X2ZwdV9yZWdpc3RlcihpbnQg ZnB1cmVnLCBpbnQ2NF90IHZhbHVlKTsKKysgIHZvaWQgc2V0X2ZwdV9yZWdpc3Rlcl93b3JkKGlu dCBmcHVyZWcsIGludDMyX3QgdmFsdWUpOworKyAgdm9pZCBzZXRfZnB1X3JlZ2lzdGVyX2hpX3dv cmQoaW50IGZwdXJlZywgaW50MzJfdCB2YWx1ZSk7CisrICB2b2lkIHNldF9mcHVfcmVnaXN0ZXJf ZmxvYXQoaW50IGZwdXJlZywgZmxvYXQgdmFsdWUpOworKyAgdm9pZCBzZXRfZnB1X3JlZ2lzdGVy X2RvdWJsZShpbnQgZnB1cmVnLCBkb3VibGUgdmFsdWUpOworKworKyAgaW50NjRfdCBnZXRfZnB1 X3JlZ2lzdGVyKGludCBmcHVyZWcpIGNvbnN0OworKyAgaW50MzJfdCBnZXRfZnB1X3JlZ2lzdGVy X3dvcmQoaW50IGZwdXJlZykgY29uc3Q7CisrICBpbnQzMl90IGdldF9mcHVfcmVnaXN0ZXJfc2ln bmVkX3dvcmQoaW50IGZwdXJlZykgY29uc3Q7CisrICBpbnQzMl90IGdldF9mcHVfcmVnaXN0ZXJf aGlfd29yZChpbnQgZnB1cmVnKSBjb25zdDsKKysgIGZsb2F0IGdldF9mcHVfcmVnaXN0ZXJfZmxv YXQoaW50IGZwdXJlZykgY29uc3Q7CisrICBkb3VibGUgZ2V0X2ZwdV9yZWdpc3Rlcl9kb3VibGUo aW50IGZwdXJlZykgY29uc3Q7CisrCisrICAvLyBSViBDU1IgbWFuaXB1bGF0aW9uCisrICB1aW50 MzJfdCByZWFkX2Nzcl92YWx1ZSh1aW50MzJfdCBjc3IpOworKyAgdm9pZCB3cml0ZV9jc3JfdmFs dWUodWludDMyX3QgY3NyLCB1aW50NjRfdCB2YWx1ZSk7CisrICB2b2lkIHNldF9jc3JfYml0cyh1 aW50MzJfdCBjc3IsIHVpbnQ2NF90IGZsYWdzKTsKKysgIHZvaWQgY2xlYXJfY3NyX2JpdHModWlu dDMyX3QgY3NyLCB1aW50NjRfdCBmbGFncyk7CisrCisrICB2b2lkIHNldF9mZmxhZ3ModWludDMy X3QgZmxhZ3MpIHsgc2V0X2Nzcl9iaXRzKGNzcl9mZmxhZ3MsIGZsYWdzKTsgfQorKyAgdm9pZCBj bGVhcl9mZmxhZ3MoaW50MzJfdCBmbGFncykgeyBjbGVhcl9jc3JfYml0cyhjc3JfZmZsYWdzLCBm bGFncyk7IH0KKysKKysgIGlubGluZSB1aW50MzJfdCBnZXRfZHluYW1pY19yb3VuZGluZ19tb2Rl KCk7CisrICBpbmxpbmUgYm9vbCB0ZXN0X2ZmbGFnc19iaXRzKHVpbnQzMl90IG1hc2spOworKwor KyAgZmxvYXQgUm91bmRGMkZIZWxwZXIoZmxvYXQgaW5wdXRfdmFsLCBpbnQgcm1vZGUpOworKyAg ZG91YmxlIFJvdW5kRjJGSGVscGVyKGRvdWJsZSBpbnB1dF92YWwsIGludCBybW9kZSk7CisrICB0 ZW1wbGF0ZSA8dHlwZW5hbWUgSV9UWVBFLCB0eXBlbmFtZSBGX1RZUEU+CisrICBJX1RZUEUgUm91 bmRGMklIZWxwZXIoRl9UWVBFIG9yaWdpbmFsLCBpbnQgcm1vZGUpOworKworKyAgdGVtcGxhdGUg PHR5cGVuYW1lIFQ+CisrICBUIEZNYXhNaW5IZWxwZXIoVCBhLCBUIGIsIE1heE1pbktpbmQga2lu ZCk7CisrCisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKysgIGJvb2wgQ29tcGFyZUZIZWxwZXIo VCBpbnB1dDEsIFQgaW5wdXQyLCBGUFVDb25kaXRpb24gY2MpOworKworKyAgLy8gU3BlY2lhbCBj YXNlIG9mIHNldF9yZWdpc3RlciBhbmQgZ2V0X3JlZ2lzdGVyIHRvIGFjY2VzcyB0aGUgcmF3IFBD IHZhbHVlLgorKyAgdm9pZCBzZXRfcGMoaW50NjRfdCB2YWx1ZSk7CisrICBpbnQ2NF90IGdldF9w YygpIGNvbnN0OworKworKyAgQWRkcmVzcyBnZXRfc3AoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf Y2FzdDxBZGRyZXNzPihnZXRfcmVnaXN0ZXIoc3ApKTsgfQorKworKyAgLy8gQWNjZXNzb3IgdG8g dGhlIGludGVybmFsIHNpbXVsYXRvciBzdGFjayBhcmVhLgorKyAgdWludHB0cl90IFN0YWNrTGlt aXQodWludHB0cl90IGNfbGltaXQpIGNvbnN0OworKworKyAgLy8gRXhlY3V0ZXMgUklTQy1WIGlu c3RydWN0aW9ucyB1bnRpbCB0aGUgUEMgcmVhY2hlcyBlbmRfc2ltX3BjLgorKyAgdm9pZCBFeGVj dXRlKCk7CisrCisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmV0dXJuLCB0eXBlbmFtZS4uLiBBcmdz PgorKyAgUmV0dXJuIENhbGwoQWRkcmVzcyBlbnRyeSwgQXJncy4uLiBhcmdzKSB7CisrICAgIHJl dHVybiBWYXJpYWRpY0NhbGw8UmV0dXJuPih0aGlzLCAmU2ltdWxhdG9yOjpDYWxsSW1wbCwgZW50 cnksIGFyZ3MuLi4pOworKyAgfQorKworKyAgLy8gQWx0ZXJuYXRpdmU6IGNhbGwgYSAyLWFyZ3Vt ZW50IGRvdWJsZSBmdW5jdGlvbi4KKysgIGRvdWJsZSBDYWxsRlAoQWRkcmVzcyBlbnRyeSwgZG91 YmxlIGQwLCBkb3VibGUgZDEpOworKworKyAgLy8gUHVzaCBhbiBhZGRyZXNzIG9udG8gdGhlIEpT IHN0YWNrLgorKyAgdWludHB0cl90IFB1c2hBZGRyZXNzKHVpbnRwdHJfdCBhZGRyZXNzKTsKKysK KysgIC8vIFBvcCBhbiBhZGRyZXNzIGZyb20gdGhlIEpTIHN0YWNrLgorKyAgdWludHB0cl90IFBv cEFkZHJlc3MoKTsKKysKKysgIC8vIERlYnVnZ2VyIGlucHV0LgorKyAgdm9pZCBzZXRfbGFzdF9k ZWJ1Z2dlcl9pbnB1dChjaGFyKiBpbnB1dCk7CisrICBjaGFyKiBsYXN0X2RlYnVnZ2VyX2lucHV0 KCkgeyByZXR1cm4gbGFzdF9kZWJ1Z2dlcl9pbnB1dF87IH0KKysKKysgIC8vIFJlZGlyZWN0aW9u IHN1cHBvcnQuCisrICBzdGF0aWMgdm9pZCBTZXRSZWRpcmVjdEluc3RydWN0aW9uKEluc3RydWN0 aW9uKiBpbnN0cnVjdGlvbik7CisrCisrICAvLyBJQ2FjaGUgY2hlY2tpbmcuCisrICBzdGF0aWMg Ym9vbCBJQ2FjaGVNYXRjaCh2b2lkKiBvbmUsIHZvaWQqIHR3byk7CisrICBzdGF0aWMgdm9pZCBG bHVzaElDYWNoZShiYXNlOjpDdXN0b21NYXRjaGVySGFzaE1hcCogaV9jYWNoZSwgdm9pZCogc3Rh cnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CisrCisrICAvLyBS ZXR1cm5zIHRydWUgaWYgcGMgcmVnaXN0ZXIgY29udGFpbnMgb25lIG9mIHRoZSAnc3BlY2lhbF92 YWx1ZXMnIGRlZmluZWQKKysgIC8vIGJlbG93IChiYWRfcmEsIGVuZF9zaW1fcGMpLgorKyAgYm9v bCBoYXNfYmFkX3BjKCkgY29uc3Q7CisrCisrIHByaXZhdGU6CisrICBlbnVtIHNwZWNpYWxfdmFs dWVzIHsKKysgICAgLy8gS25vd24gYmFkIHBjIHZhbHVlIHRvIGVuc3VyZSB0aGF0IHRoZSBzaW11 bGF0b3IgZG9lcyBub3QgZXhlY3V0ZQorKyAgICAvLyB3aXRob3V0IGJlaW5nIHByb3Blcmx5IHNl dHVwLgorKyAgICBiYWRfcmEgPSAtMSwKKysgICAgLy8gQSBwYyB2YWx1ZSB1c2VkIHRvIHNpZ25h bCB0aGUgc2ltdWxhdG9yIHRvIHN0b3AgZXhlY3V0aW9uLiAgR2VuZXJhbGx5CisrICAgIC8vIHRo ZSByYSBpcyBzZXQgdG8gdGhpcyB2YWx1ZSBvbiB0cmFuc2l0aW9uIGZyb20gbmF0aXZlIEMgY29k ZSB0bworKyAgICAvLyBzaW11bGF0ZWQgZXhlY3V0aW9uLCBzbyB0aGF0IHRoZSBzaW11bGF0b3Ig Y2FuICJyZXR1cm4iIHRvIHRoZSBuYXRpdmUKKysgICAgLy8gQyBjb2RlLgorKyAgICBlbmRfc2lt X3BjID0gLTIsCisrICAgIC8vIFVucHJlZGljdGFibGUgdmFsdWUuCisrICAgIFVucHJlZGljdGFi bGUgPSAweGJhZGJlYWYKKysgIH07CisrCisrICBWOF9FWFBPUlRfUFJJVkFURSBpbnRwdHJfdCBD YWxsSW1wbChBZGRyZXNzIGVudHJ5LCBpbnQgYXJndW1lbnRfY291bnQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnRwdHJfdCogYXJndW1lbnRzKTsKKysK KysgIC8vIFVuc3VwcG9ydGVkIGluc3RydWN0aW9ucyB1c2UgRm9ybWF0IHRvIHByaW50IGFuIGVy cm9yIGFuZCBzdG9wIGV4ZWN1dGlvbi4KKysgIHZvaWQgRm9ybWF0KEluc3RydWN0aW9uKiBpbnN0 ciwgY29uc3QgY2hhciogZm9ybWF0KTsKKysKKysgIC8vIEhlbHBlcnMgZm9yIGRhdGEgdmFsdWUg dHJhY2luZy4KKysgIGVudW0gVHJhY2VUeXBlIHsKKysgICAgQllURSwKKysgICAgSEFMRiwKKysg ICAgV09SRCwKKysgICAgRFdPUkQsCisrICAgIEZMT0FULAorKyAgICBET1VCTEUsCisrICAgIC8v IEZMT0FUX0RPVUJMRSwKKysgICAgLy8gV09SRF9EV09SRAorKyAgfTsKKysKKysgIC8vIFJJU0NW IE1lbW9yeSByZWFkL3dyaXRlIG1ldGhvZHMKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorKyAg VCBSZWFkTWVtKGludDY0X3QgYWRkciwgSW5zdHJ1Y3Rpb24qIGluc3RyKTsKKysgIHRlbXBsYXRl IDx0eXBlbmFtZSBUPgorKyAgdm9pZCBXcml0ZU1lbShpbnQ2NF90IGFkZHIsIFQgdmFsdWUsIElu c3RydWN0aW9uKiBpbnN0cik7CisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgT1A+ CisrICBUIGFtbyhpbnQ2NF90IGFkZHIsIE9QIGYsIEluc3RydWN0aW9uKiBpbnN0ciwgVHJhY2VU eXBlIHQpIHsKKysgICAgYXV0byBsaHMgPSBSZWFkTWVtPFQ+KGFkZHIsIGluc3RyKTsKKysgICAg Ly8gRklYTUU6IHRyYWNlIG1lbW9yeSByZWFkIGZvciBBTU8KKysgICAgV3JpdGVNZW08VD4oYWRk ciwgKFQpZihsaHMpLCBpbnN0cik7CisrICAgIHJldHVybiBsaHM7CisrICB9CisrCisrICAvLyBI ZWxwZXIgZm9yIGRlYnVnZ2luZyBtZW1vcnkgYWNjZXNzLgorKyAgaW5saW5lIHZvaWQgRGllT3JE ZWJ1ZygpOworKworKyAgdm9pZCBUcmFjZVJlZ1dyKGludDY0X3QgdmFsdWUsIFRyYWNlVHlwZSB0 ID0gRFdPUkQpOworKyAgdm9pZCBUcmFjZU1lbVdyKGludDY0X3QgYWRkciwgaW50NjRfdCB2YWx1 ZSwgVHJhY2VUeXBlIHQpOworKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisrICB2b2lkIFRyYWNl TWVtUmQoaW50NjRfdCBhZGRyLCBUIHZhbHVlLCBpbnQ2NF90IHJlZ192YWx1ZSk7CisrICB0ZW1w bGF0ZSA8dHlwZW5hbWUgVD4KKysgIHZvaWQgVHJhY2VNZW1XcihpbnQ2NF90IGFkZHIsIFQgdmFs dWUpOworKworKyAgU2ltSW5zdHJ1Y3Rpb24gaW5zdHJfOworKworKyAgLy8gUklTQ1YgdXRsaXR5 IEFQSSB0byBhY2Nlc3MgcmVnaXN0ZXIgdmFsdWUKKysgIGlubGluZSBpbnQzMl90IHJzMV9yZWco KSBjb25zdCB7IHJldHVybiBpbnN0cl8uUnMxVmFsdWUoKTsgfQorKyAgaW5saW5lIGludDY0X3Qg cnMxKCkgY29uc3QgeyByZXR1cm4gZ2V0X3JlZ2lzdGVyKHJzMV9yZWcoKSk7IH0KKysgIGlubGlu ZSBmbG9hdCBmcnMxKCkgY29uc3QgeyByZXR1cm4gZ2V0X2ZwdV9yZWdpc3Rlcl9mbG9hdChyczFf cmVnKCkpOyB9CisrICBpbmxpbmUgZG91YmxlIGRyczEoKSBjb25zdCB7IHJldHVybiBnZXRfZnB1 X3JlZ2lzdGVyX2RvdWJsZShyczFfcmVnKCkpOyB9CisrICBpbmxpbmUgaW50MzJfdCByczJfcmVn KCkgY29uc3QgeyByZXR1cm4gaW5zdHJfLlJzMlZhbHVlKCk7IH0KKysgIGlubGluZSBpbnQ2NF90 IHJzMigpIGNvbnN0IHsgcmV0dXJuIGdldF9yZWdpc3RlcihyczJfcmVnKCkpOyB9CisrICBpbmxp bmUgZmxvYXQgZnJzMigpIGNvbnN0IHsgcmV0dXJuIGdldF9mcHVfcmVnaXN0ZXJfZmxvYXQocnMy X3JlZygpKTsgfQorKyAgaW5saW5lIGRvdWJsZSBkcnMyKCkgY29uc3QgeyByZXR1cm4gZ2V0X2Zw dV9yZWdpc3Rlcl9kb3VibGUocnMyX3JlZygpKTsgfQorKyAgaW5saW5lIGludDMyX3QgcnMzX3Jl ZygpIGNvbnN0IHsgcmV0dXJuIGluc3RyXy5SczNWYWx1ZSgpOyB9CisrICBpbmxpbmUgaW50NjRf dCByczMoKSBjb25zdCB7IHJldHVybiBnZXRfcmVnaXN0ZXIocnMzX3JlZygpKTsgfQorKyAgaW5s aW5lIGZsb2F0IGZyczMoKSBjb25zdCB7IHJldHVybiBnZXRfZnB1X3JlZ2lzdGVyX2Zsb2F0KHJz M19yZWcoKSk7IH0KKysgIGlubGluZSBkb3VibGUgZHJzMygpIGNvbnN0IHsgcmV0dXJuIGdldF9m cHVfcmVnaXN0ZXJfZG91YmxlKHJzM19yZWcoKSk7IH0KKysgIGlubGluZSBpbnQzMl90IHJkX3Jl ZygpIGNvbnN0IHsgcmV0dXJuIGluc3RyXy5SZFZhbHVlKCk7IH0KKysgIGlubGluZSBpbnQzMl90 IGZyZF9yZWcoKSBjb25zdCB7IHJldHVybiBpbnN0cl8uUmRWYWx1ZSgpOyB9CisrICBpbmxpbmUg aW50MTZfdCBib2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gaW5zdHJfLkJyYW5jaE9mZnNldCgpOyB9 CisrICBpbmxpbmUgaW50MTZfdCBpbW0xMigpIGNvbnN0IHsgcmV0dXJuIGluc3RyXy5JbW0xMlZh bHVlKCk7IH0KKysgIGlubGluZSBpbnQzMl90IGltbTIwSigpIGNvbnN0IHsgcmV0dXJuIGluc3Ry Xy5JbW0yMEpWYWx1ZSgpOyB9CisrICBpbmxpbmUgaW50MzJfdCBpbW01Q1NSKCkgY29uc3QgeyBy ZXR1cm4gaW5zdHJfLlJzMVZhbHVlKCk7IH0KKysgIGlubGluZSBpbnQxNl90IGNzcl9yZWcoKSBj b25zdCB7IHJldHVybiBpbnN0cl8uQ3NyVmFsdWUoKTsgfQorKworKyAgaW5saW5lIHZvaWQgc2V0 X3JkKGludDY0X3QgdmFsdWUsIGJvb2wgdHJhY2UgPSB0cnVlKSB7CisrICAgIHNldF9yZWdpc3Rl cihyZF9yZWcoKSwgdmFsdWUpOworKyAgICBpZiAodHJhY2UpIFRyYWNlUmVnV3IoZ2V0X3JlZ2lz dGVyKHJkX3JlZygpKSwgRFdPUkQpOworKyAgfQorKyAgaW5saW5lIHZvaWQgc2V0X2ZyZChmbG9h dCB2YWx1ZSwgYm9vbCB0cmFjZSA9IHRydWUpIHsKKysgICAgc2V0X2ZwdV9yZWdpc3Rlcl9mbG9h dChyZF9yZWcoKSwgdmFsdWUpOworKyAgICBpZiAodHJhY2UpIFRyYWNlUmVnV3IoZ2V0X2ZwdV9y ZWdpc3Rlcl93b3JkKHJkX3JlZygpKSwgRkxPQVQpOworKyAgfQorKyAgaW5saW5lIHZvaWQgc2V0 X2RyZChkb3VibGUgdmFsdWUsIGJvb2wgdHJhY2UgPSB0cnVlKSB7CisrICAgIHNldF9mcHVfcmVn aXN0ZXJfZG91YmxlKHJkX3JlZygpLCB2YWx1ZSk7CisrICAgIGlmICh0cmFjZSkgVHJhY2VSZWdX cihnZXRfZnB1X3JlZ2lzdGVyKHJkX3JlZygpKSwgRE9VQkxFKTsKKysgIH0KKysgIGlubGluZSBp bnQxNl90IHNoYW10KCkgY29uc3QgeyByZXR1cm4gKGltbTEyKCkgJiAweDNGKTsgfQorKyAgaW5s aW5lIGludDE2X3Qgc2hhbXQzMigpIGNvbnN0IHsgcmV0dXJuIChpbW0xMigpICYgMHgxRik7IH0K KysgIGlubGluZSBpbnQzMl90IHNfaW1tMTIoKSBjb25zdCB7IHJldHVybiBpbnN0cl8uU3RvcmVP ZmZzZXQoKTsgfQorKyAgaW5saW5lIGludDMyX3QgdV9pbW0oKSBjb25zdCB7IHJldHVybiBpbnN0 cl8uSW1tMjBVVmFsdWUoKSA8PCAxMjsgfQorKyAgaW5saW5lIHZvaWQgcmVxdWlyZShib29sIGNo ZWNrKSB7CisrICAgIGlmICghY2hlY2spIHsKKysgICAgICBTaWduYWxFeGNlcHRpb24oa0lsbGVn YWxJbnN0cnVjdGlvbik7CisrICAgIH0KKysgIH0KKysKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBU LCB0eXBlbmFtZSBGdW5jPgorKyAgaW5saW5lIFQgQ2Fub25pY2FsaXplRlBVT3AzKEZ1bmMgZm4p IHsKKysgICAgRENIRUNLKHN0ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnZhbHVlKTsKKysgICAg VCBzcmMxID0gc3RkOjppc19zYW1lPGZsb2F0LCBUPjo6dmFsdWUgPyBmcnMxKCkgOiBkcnMxKCk7 CisrICAgIFQgc3JjMiA9IHN0ZDo6aXNfc2FtZTxmbG9hdCwgVD46OnZhbHVlID8gZnJzMigpIDog ZHJzMigpOworKyAgICBUIHNyYzMgPSBzdGQ6OmlzX3NhbWU8ZmxvYXQsIFQ+Ojp2YWx1ZSA/IGZy czMoKSA6IGRyczMoKTsKKysgICAgYXV0byBhbHVfb3V0ID0gZm4oc3JjMSwgc3JjMiwgc3JjMyk7 CisrICAgIC8vIGlmIGFueSBpbnB1dCBvciByZXN1bHQgaXMgTmFOLCB0aGUgcmVzdWx0IGlzIHF1 aWV0X05hTgorKyAgICBpZiAoc3RkOjppc25hbihhbHVfb3V0KSB8fCBzdGQ6OmlzbmFuKHNyYzEp IHx8IHN0ZDo6aXNuYW4oc3JjMikgfHwKKysgICAgICAgIHN0ZDo6aXNuYW4oc3JjMykpIHsKKysg ICAgICAvLyBzaWduYWxpbmdfbmFuIHNldHMga0ludmFsaWRPcGVyYXRpb24gYml0CisrICAgICAg aWYgKGlzU25hbihhbHVfb3V0KSB8fCBpc1NuYW4oc3JjMSkgfHwgaXNTbmFuKHNyYzIpIHx8IGlz U25hbihzcmMzKSkKKysgICAgICAgIHNldF9mZmxhZ3Moa0ludmFsaWRPcGVyYXRpb24pOworKyAg ICAgIGFsdV9vdXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpxdWlldF9OYU4oKTsKKysgICAg fQorKyAgICByZXR1cm4gYWx1X291dDsKKysgIH0KKysKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBU LCB0eXBlbmFtZSBGdW5jPgorKyAgaW5saW5lIFQgQ2Fub25pY2FsaXplRlBVT3AyKEZ1bmMgZm4p IHsKKysgICAgRENIRUNLKHN0ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnZhbHVlKTsKKysgICAg VCBzcmMxID0gc3RkOjppc19zYW1lPGZsb2F0LCBUPjo6dmFsdWUgPyBmcnMxKCkgOiBkcnMxKCk7 CisrICAgIFQgc3JjMiA9IHN0ZDo6aXNfc2FtZTxmbG9hdCwgVD46OnZhbHVlID8gZnJzMigpIDog ZHJzMigpOworKyAgICBhdXRvIGFsdV9vdXQgPSBmbihzcmMxLCBzcmMyKTsKKysgICAgLy8gaWYg YW55IGlucHV0IG9yIHJlc3VsdCBpcyBOYU4sIHRoZSByZXN1bHQgaXMgcXVpZXRfTmFOCisrICAg IGlmIChzdGQ6OmlzbmFuKGFsdV9vdXQpIHx8IHN0ZDo6aXNuYW4oc3JjMSkgfHwgc3RkOjppc25h bihzcmMyKSkgeworKyAgICAgIC8vIHNpZ25hbGluZ19uYW4gc2V0cyBrSW52YWxpZE9wZXJhdGlv biBiaXQKKysgICAgICBpZiAoaXNTbmFuKGFsdV9vdXQpIHx8IGlzU25hbihzcmMxKSB8fCBpc1Nu YW4oc3JjMikpCisrICAgICAgICBzZXRfZmZsYWdzKGtJbnZhbGlkT3BlcmF0aW9uKTsKKysgICAg ICBhbHVfb3V0ID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6cXVpZXRfTmFOKCk7CisrICAgIH0K KysgICAgcmV0dXJuIGFsdV9vdXQ7CisrICB9CisrCisrICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwg dHlwZW5hbWUgRnVuYz4KKysgIGlubGluZSBUIENhbm9uaWNhbGl6ZUZQVU9wMShGdW5jIGZuKSB7 CisrICAgIERDSEVDSyhzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZSk7CisrICAgIFQg c3JjMSA9IHN0ZDo6aXNfc2FtZTxmbG9hdCwgVD46OnZhbHVlID8gZnJzMSgpIDogZHJzMSgpOwor KyAgICBhdXRvIGFsdV9vdXQgPSBmbihzcmMxKTsKKysgICAgLy8gaWYgYW55IGlucHV0IG9yIHJl c3VsdCBpcyBOYU4sIHRoZSByZXN1bHQgaXMgcXVpZXRfTmFOCisrICAgIGlmIChzdGQ6OmlzbmFu KGFsdV9vdXQpIHx8IHN0ZDo6aXNuYW4oc3JjMSkpIHsKKysgICAgICAvLyBzaWduYWxpbmdfbmFu IHNldHMga0ludmFsaWRPcGVyYXRpb24gYml0CisrICAgICAgaWYgKGlzU25hbihhbHVfb3V0KSB8 fCBpc1NuYW4oc3JjMSkpIHNldF9mZmxhZ3Moa0ludmFsaWRPcGVyYXRpb24pOworKyAgICAgIGFs dV9vdXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjpxdWlldF9OYU4oKTsKKysgICAgfQorKyAg ICByZXR1cm4gYWx1X291dDsKKysgIH0KKysKKysgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jPgor KyAgaW5saW5lIGZsb2F0IENhbm9uaWNhbGl6ZURvdWJsZVRvRmxvYXRPcGVyYXRpb24oRnVuYyBm bikgeworKyAgICBmbG9hdCBhbHVfb3V0ID0gZm4oZHJzMSgpKTsKKysgICAgaWYgKHN0ZDo6aXNu YW4oYWx1X291dCkgfHwgc3RkOjppc25hbihkcnMxKCkpKQorKyAgICAgIGFsdV9vdXQgPSBzdGQ6 Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CisrICAgIHJldHVybiBhbHVfb3V0 OworKyAgfQorKworKyAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmM+CisrICBpbmxpbmUgZmxvYXQg Q2Fub25pY2FsaXplRmxvYXRUb0RvdWJsZU9wZXJhdGlvbihGdW5jIGZuKSB7CisrICAgIGRvdWJs ZSBhbHVfb3V0ID0gZm4oZnJzMSgpKTsKKysgICAgaWYgKHN0ZDo6aXNuYW4oYWx1X291dCkgfHwg c3RkOjppc25hbihmcnMxKCkpKQorKyAgICAgIGFsdV9vdXQgPSBzdGQ6Om51bWVyaWNfbGltaXRz PGRvdWJsZT46OnF1aWV0X05hTigpOworKyAgICByZXR1cm4gYWx1X291dDsKKysgIH0KKysKKysg IC8vIFJJU0NWIGRlY29kaW5nIHJvdXRpbmUKKysgIHZvaWQgRGVjb2RlUlZSVHlwZSgpOworKyAg dm9pZCBEZWNvZGVSVlI0VHlwZSgpOworKyAgdm9pZCBEZWNvZGVSVlJGUFR5cGUoKTsgIC8vIFNw ZWNpYWwgcm91dGluZSBmb3IgUi9PUF9GUCB0eXBlCisrICB2b2lkIERlY29kZVJWUkFUeXBlKCk7 ICAgLy8gU3BlY2lhbCByb3V0aW5lIGZvciBSL0FNTyB0eXBlCisrICB2b2lkIERlY29kZVJWSVR5 cGUoKTsKKysgIHZvaWQgRGVjb2RlUlZTVHlwZSgpOworKyAgdm9pZCBEZWNvZGVSVkJUeXBlKCk7 CisrICB2b2lkIERlY29kZVJWVVR5cGUoKTsKKysgIHZvaWQgRGVjb2RlUlZKVHlwZSgpOworKwor KyAgLy8gVXNlZCBmb3IgYnJlYWtwb2ludHMgYW5kIHRyYXBzLgorKyAgdm9pZCBTb2Z0d2FyZUlu dGVycnVwdCgpOworKworKyAgLy8gRGVidWcgaGVscGVycworKworKyAgLy8gU2ltdWxhdG9yIGJy ZWFrcG9pbnRzLgorKyAgc3RydWN0IEJyZWFrcG9pbnQgeworKyAgICBJbnN0cnVjdGlvbiogbG9j YXRpb247CisrICAgIGJvb2wgZW5hYmxlZDsKKysgICAgYm9vbCBpc190YnJlYWs7CisrICB9Owor KyAgc3RkOjp2ZWN0b3I8QnJlYWtwb2ludD4gYnJlYWtwb2ludHNfOworKyAgdm9pZCBTZXRCcmVh a3BvaW50KEluc3RydWN0aW9uKiBicmVha3BvaW50LCBib29sIGlzX3RicmVhayk7CisrICB2b2lk IExpc3RCcmVha3BvaW50cygpOworKyAgdm9pZCBDaGVja0JyZWFrcG9pbnRzKCk7CisrCisrICAv LyBTdG9wIGhlbHBlciBmdW5jdGlvbnMuCisrICBib29sIElzV2F0Y2hwb2ludCh1aW50NjRfdCBj b2RlKTsKKysgIHZvaWQgUHJpbnRXYXRjaHBvaW50KHVpbnQ2NF90IGNvZGUpOworKyAgdm9pZCBI YW5kbGVTdG9wKHVpbnQ2NF90IGNvZGUpOworKyAgYm9vbCBJc1N0b3BJbnN0cnVjdGlvbihJbnN0 cnVjdGlvbiogaW5zdHIpOworKyAgYm9vbCBJc0VuYWJsZWRTdG9wKHVpbnQ2NF90IGNvZGUpOwor KyAgdm9pZCBFbmFibGVTdG9wKHVpbnQ2NF90IGNvZGUpOworKyAgdm9pZCBEaXNhYmxlU3RvcCh1 aW50NjRfdCBjb2RlKTsKKysgIHZvaWQgSW5jcmVhc2VTdG9wQ291bnRlcih1aW50NjRfdCBjb2Rl KTsKKysgIHZvaWQgUHJpbnRTdG9wSW5mbyh1aW50NjRfdCBjb2RlKTsKKysKKysgIC8vIEV4ZWN1 dGVzIG9uZSBpbnN0cnVjdGlvbi4KKysgIHZvaWQgSW5zdHJ1Y3Rpb25EZWNvZGUoSW5zdHJ1Y3Rp b24qIGluc3RyKTsKKysKKysgIC8vIElDYWNoZS4KKysgIHN0YXRpYyB2b2lkIENoZWNrSUNhY2hl KGJhc2U6OkN1c3RvbU1hdGNoZXJIYXNoTWFwKiBpX2NhY2hlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5zdHJ1Y3Rpb24qIGluc3RyKTsKKysgIHN0YXRpYyB2b2lkIEZsdXNoT25lUGFn ZShiYXNlOjpDdXN0b21NYXRjaGVySGFzaE1hcCogaV9jYWNoZSwgaW50cHRyX3Qgc3RhcnQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpOworKyAgc3RhdGljIENhY2hl UGFnZSogR2V0Q2FjaGVQYWdlKGJhc2U6OkN1c3RvbU1hdGNoZXJIYXNoTWFwKiBpX2NhY2hlLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBhZ2UpOworKworKyAgZW51 bSBFeGNlcHRpb24geworKyAgICBub25lLAorKyAgICBrSW50ZWdlck92ZXJmbG93LAorKyAgICBr SW50ZWdlclVuZGVyZmxvdywKKysgICAga0RpdmlkZUJ5WmVybywKKysgICAga051bUV4Y2VwdGlv bnMsCisrICAgIC8vIFJJU0NWIGlsbGVndWFsIGluc3RydWN0aW9uIGV4Y2VwdGlvbgorKyAgICBr SWxsZWdhbEluc3RydWN0aW9uLAorKyAgfTsKKysKKysgIC8vIEV4Y2VwdGlvbnMuCisrICB2b2lk IFNpZ25hbEV4Y2VwdGlvbihFeGNlcHRpb24gZSk7CisrCisrICAvLyBIYW5kbGUgYXJndW1lbnRz IGFuZCByZXR1cm4gdmFsdWUgZm9yIHJ1bnRpbWUgRlAgZnVuY3Rpb25zLgorKyAgdm9pZCBHZXRG cEFyZ3MoZG91YmxlKiB4LCBkb3VibGUqIHksIGludDMyX3QqIHopOworKyAgdm9pZCBTZXRGcFJl c3VsdChjb25zdCBkb3VibGUmIHJlc3VsdCk7CisrCisrICB2b2lkIENhbGxJbnRlcm5hbChBZGRy ZXNzIGVudHJ5KTsKKysKKysgIC8vIEFyY2hpdGVjdHVyZSBzdGF0ZS4KKysgIC8vIFJlZ2lzdGVy cy4KKysgIGludDY0X3QgcmVnaXN0ZXJzX1trTnVtU2ltdVJlZ2lzdGVyc107CisrICAvLyBDb3By b2Nlc3NvciBSZWdpc3RlcnMuCisrICBpbnQ2NF90IEZQVXJlZ2lzdGVyc19ba051bUZQVVJlZ2lz dGVyc107CisrICAvLyBGbG9hdGluZy1wb2ludCBjb250cm9sIGFuZCBzdGF0dXMgcmVnaXN0ZXIu CisrICB1aW50MzJfdCBGQ1NSXzsKKysKKysgIC8vIFNpbXVsYXRvciBzdXBwb3J0LgorKyAgLy8g QWxsb2NhdGUgMU1CIGZvciBzdGFjay4KKysgIHNpemVfdCBzdGFja19zaXplXzsKKysgIGNoYXIq IHN0YWNrXzsKKysgIGJvb2wgcGNfbW9kaWZpZWRfOworKyAgaW50NjRfdCBpY291bnRfOworKyAg aW50IGJyZWFrX2NvdW50XzsKKysgIEVtYmVkZGVkVmVjdG9yPGNoYXIsIDEyOD4gdHJhY2VfYnVm XzsKKysKKysgIC8vIERlYnVnZ2VyIGlucHV0LgorKyAgY2hhciogbGFzdF9kZWJ1Z2dlcl9pbnB1 dF87CisrCisrICB2ODo6aW50ZXJuYWw6Oklzb2xhdGUqIGlzb2xhdGVfOworKworKyAgLy8gU3Rv cCBpcyBkaXNhYmxlZCBpZiBiaXQgMzEgaXMgc2V0LgorKyAgc3RhdGljIGNvbnN0IHVpbnQzMl90 IGtTdG9wRGlzYWJsZWRCaXQgPSAxIDw8IDMxOworKworKyAgLy8gQSBzdG9wIGlzIGVuYWJsZWQs IG1lYW5pbmcgdGhlIHNpbXVsYXRvciB3aWxsIHN0b3Agd2hlbiBtZWV0aW5nIHRoZQorKyAgLy8g aW5zdHJ1Y3Rpb24sIGlmIGJpdCAzMSBvZiB3YXRjaGVkX3N0b3BzX1tjb2RlXS5jb3VudCBpcyB1 bnNldC4KKysgIC8vIFRoZSB2YWx1ZSB3YXRjaGVkX3N0b3BzX1tjb2RlXS5jb3VudCAmIH4oMSA8 PCAzMSkgaW5kaWNhdGVzIGhvdyBtYW55IHRpbWVzCisrICAvLyB0aGUgYnJlYWtwb2ludCB3YXMg aGl0IG9yIGdvbmUgdGhyb3VnaC4KKysgIHN0cnVjdCBTdG9wQ291bnRBbmREZXNjIHsKKysgICAg dWludDMyX3QgY291bnQ7CisrICAgIGNoYXIqIGRlc2M7CisrICB9OworKyAgU3RvcENvdW50QW5k RGVzYyB3YXRjaGVkX3N0b3BzX1trTWF4U3RvcENvZGUgKyAxXTsKKysKKysgIC8vIFN5bmNocm9u aXphdGlvbiBwcmltaXRpdmVzLgorKyAgZW51bSBjbGFzcyBNb25pdG9yQWNjZXNzIHsKKysgICAg T3BlbiwKKysgICAgUk1XLAorKyAgfTsKKysKKysgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25TaXpl IHsKKysgICAgTm9uZSA9IDAsCisrICAgIFdvcmQgPSA0LAorKyAgICBEb3VibGVXb3JkID0gOCwK KysgIH07CisrCisrICAvLyBUaGUgbGVhc3Qtc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgYWRkcmVz cyBhcmUgaWdub3JlZC4gVGhlIG51bWJlciBvZiBiaXRzCisrICAvLyBpcyBpbXBsZW1lbnRhdGlv bi1kZWZpbmVkLCBiZXR3ZWVuIDMgYW5kIG1pbmltdW0gcGFnZSBzaXplLgorKyAgc3RhdGljIGNv bnN0IHVpbnRwdHJfdCBrRXhjbHVzaXZlVGFnZ2VkQWRkck1hc2sgPSB+KCgxIDw8IDMpIC0gMSk7 CisrCisrICBjbGFzcyBMb2NhbE1vbml0b3IgeworKyAgIHB1YmxpYzoKKysgICAgTG9jYWxNb25p dG9yKCk7CisrCisrICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBtYW5hZ2UgdGhlIHN0YXRlIG1hY2hp bmUgZm9yIHRoZSBsb2NhbCBtb25pdG9yLCBidXQgZG8KKysgICAgLy8gbm90IGFjdHVhbGx5IHBl cmZvcm0gbG9hZHMgYW5kIHN0b3Jlcy4gTm90aWZ5U3RvcmVDb25kaXRpb25hbCBvbmx5CisrICAg IC8vIHJldHVybnMgdHJ1ZSBpZiB0aGUgc3RvcmUgY29uZGl0aW9uYWwgaXMgYWxsb3dlZDsgdGhl IGdsb2JhbCBtb25pdG9yIHdpbGwKKysgICAgLy8gc3RpbGwgaGF2ZSB0byBiZSBjaGVja2VkIHRv IHNlZSB3aGV0aGVyIHRoZSBtZW1vcnkgc2hvdWxkIGJlIHVwZGF0ZWQuCisrICAgIHZvaWQgTm90 aWZ5TG9hZCgpOworKyAgICB2b2lkIE5vdGlmeUxvYWRMaW5rZWQodWludHB0cl90IGFkZHIsIFRy YW5zYWN0aW9uU2l6ZSBzaXplKTsKKysgICAgdm9pZCBOb3RpZnlTdG9yZSgpOworKyAgICBib29s IE5vdGlmeVN0b3JlQ29uZGl0aW9uYWwodWludHB0cl90IGFkZHIsIFRyYW5zYWN0aW9uU2l6ZSBz aXplKTsKKysKKysgICBwcml2YXRlOgorKyAgICB2b2lkIENsZWFyKCk7CisrCisrICAgIE1vbml0 b3JBY2Nlc3MgYWNjZXNzX3N0YXRlXzsKKysgICAgdWludHB0cl90IHRhZ2dlZF9hZGRyXzsKKysg ICAgVHJhbnNhY3Rpb25TaXplIHNpemVfOworKyAgfTsKKysKKysgIGNsYXNzIEdsb2JhbE1vbml0 b3IgeworKyAgIHB1YmxpYzoKKysgICAgY2xhc3MgTGlua2VkQWRkcmVzcyB7CisrICAgICBwdWJs aWM6CisrICAgICAgTGlua2VkQWRkcmVzcygpOworKworKyAgICAgcHJpdmF0ZToKKysgICAgICBm cmllbmQgY2xhc3MgR2xvYmFsTW9uaXRvcjsKKysgICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgbWFu YWdlIHRoZSBzdGF0ZSBtYWNoaW5lIGZvciB0aGUgZ2xvYmFsIG1vbml0b3IsIGJ1dCBkbworKyAg ICAgIC8vIG5vdCBhY3R1YWxseSBwZXJmb3JtIGxvYWRzIGFuZCBzdG9yZXMuCisrICAgICAgdm9p ZCBDbGVhcl9Mb2NrZWQoKTsKKysgICAgICB2b2lkIE5vdGlmeUxvYWRMaW5rZWRfTG9ja2VkKHVp bnRwdHJfdCBhZGRyKTsKKysgICAgICB2b2lkIE5vdGlmeVN0b3JlX0xvY2tlZCgpOworKyAgICAg IGJvb2wgTm90aWZ5U3RvcmVDb25kaXRpb25hbF9Mb2NrZWQodWludHB0cl90IGFkZHIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX3JlcXVlc3Rpbmdf dGhyZWFkKTsKKysKKysgICAgICBNb25pdG9yQWNjZXNzIGFjY2Vzc19zdGF0ZV87CisrICAgICAg dWludHB0cl90IHRhZ2dlZF9hZGRyXzsKKysgICAgICBMaW5rZWRBZGRyZXNzKiBuZXh0XzsKKysg ICAgICBMaW5rZWRBZGRyZXNzKiBwcmV2XzsKKysgICAgICAvLyBBIHNjZCBjYW4gZmFpbCBkdWUg dG8gYmFja2dyb3VuZCBjYWNoZSBldmljdGlvbnMuIFJhdGhlciB0aGFuCisrICAgICAgLy8gc2lt dWxhdGluZyB0aGlzLCB3ZSdsbCBqdXN0IG9jY2FzaW9uYWxseSBpbnRyb2R1Y2UgY2FzZXMgd2hl cmUgYW4KKysgICAgICAvLyBzdG9yZSBjb25kaXRpb25hbCBmYWlscy4gVGhpcyB3aWxsIGhhcHBl biBvbmNlIGFmdGVyIGV2ZXJ5CisrICAgICAgLy8ga01heEZhaWx1cmVDb3VudGVyIGV4Y2x1c2l2 ZSBzdG9yZXMuCisrICAgICAgc3RhdGljIGNvbnN0IGludCBrTWF4RmFpbHVyZUNvdW50ZXIgPSA1 OworKyAgICAgIGludCBmYWlsdXJlX2NvdW50ZXJfOworKyAgICB9OworKworKyAgICAvLyBFeHBv c2VkIHNvIGl0IGNhbiBiZSBhY2Nlc3NlZCBieSBTaW11bGF0b3I6OntSZWFkLFdyaXRlfUV4Ki4K KysgICAgYmFzZTo6TXV0ZXggbXV0ZXg7CisrCisrICAgIHZvaWQgTm90aWZ5TG9hZExpbmtlZF9M b2NrZWQodWludHB0cl90IGFkZHIsIExpbmtlZEFkZHJlc3MqIGxpbmtlZF9hZGRyZXNzKTsKKysg ICAgdm9pZCBOb3RpZnlTdG9yZV9Mb2NrZWQoTGlua2VkQWRkcmVzcyogbGlua2VkX2FkZHJlc3Mp OworKyAgICBib29sIE5vdGlmeVN0b3JlQ29uZGl0aW9uYWxfTG9ja2VkKHVpbnRwdHJfdCBhZGRy LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmtlZEFkZHJlc3Mq IGxpbmtlZF9hZGRyZXNzKTsKKysKKysgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHNpbXVsYXRvciBp cyBkZXN0cm95ZWQuCisrICAgIHZvaWQgUmVtb3ZlTGlua2VkQWRkcmVzcyhMaW5rZWRBZGRyZXNz KiBsaW5rZWRfYWRkcmVzcyk7CisrCisrICAgIHN0YXRpYyBHbG9iYWxNb25pdG9yKiBHZXQoKTsK KysKKysgICBwcml2YXRlOgorKyAgICAvLyBQcml2YXRlIGNvbnN0cnVjdG9yLiBDYWxsIHtHbG9i YWxNb25pdG9yOjpHZXQoKX0gdG8gZ2V0IHRoZSBzaW5nbGV0b24uCisrICAgIEdsb2JhbE1vbml0 b3IoKSA9IGRlZmF1bHQ7CisrICAgIGZyaWVuZCBjbGFzcyBiYXNlOjpMZWFreU9iamVjdDxHbG9i YWxNb25pdG9yPjsKKysKKysgICAgYm9vbCBJc1Byb2Nlc3NvckluTGlua2VkTGlzdF9Mb2NrZWQo TGlua2VkQWRkcmVzcyogbGlua2VkX2FkZHJlc3MpIGNvbnN0OworKyAgICB2b2lkIFByZXBlbmRQ cm9jZXNzb3JfTG9ja2VkKExpbmtlZEFkZHJlc3MqIGxpbmtlZF9hZGRyZXNzKTsKKysKKysgICAg TGlua2VkQWRkcmVzcyogaGVhZF8gPSBudWxscHRyOworKyAgfTsKKysKKysgIExvY2FsTW9uaXRv ciBsb2NhbF9tb25pdG9yXzsKKysgIEdsb2JhbE1vbml0b3I6OkxpbmtlZEFkZHJlc3MgZ2xvYmFs X21vbml0b3JfdGhyZWFkXzsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorK30g IC8vIG5hbWVzcGFjZSB2OAorKworKyNlbmRpZiAgLy8gZGVmaW5lZChVU0VfU0lNVUxBVE9SKQor KyNlbmRpZiAgLy8gVjhfRVhFQ1VUSU9OX1JJU0NWX1NJTVVMQVRPUl9SSVNDVl9IXworSW5kZXg6 IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2V4ZWN1dGlvbi9zaW11bGF0b3ItYmFzZS5oCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJl bmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4 L3NyYy9leGVjdXRpb24vc2ltdWxhdG9yLWJhc2UuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2V4ZWN1dGlvbi9zaW11 bGF0b3ItYmFzZS5oCitAQCAtODksOSArODksMTAgQEAgY2xhc3MgU2ltdWxhdG9yQmFzZSB7Cisg ICBzdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19pbnRlZ3JhbDxUPjo6dmFs dWUsIGludHB0cl90Pjo6dHlwZQorICAgQ29udmVydEFyZyhUIGFyZykgeworICAgICBzdGF0aWNf YXNzZXJ0KHNpemVvZihUKSA8PSBzaXplb2YoaW50cHRyX3QpLCAidHlwZSBiaWdnZXIgdGhhbiBw dHJzaXplIik7CistI2lmIFY4X1RBUkdFVF9BUkNIX01JUFM2NAorLSAgICAvLyBUaGUgTUlQUzY0 IGNhbGxpbmcgY29udmVudGlvbiBpcyB0byBzaWduIGV4dGVuZCBhbGwgdmFsdWVzLCBldmVuIHVu c2lnbmVkCistICAgIC8vIG9uZXMuCisrI2lmIFY4X1RBUkdFVF9BUkNIX01JUFM2NCB8fCBWOF9U QVJHRVRfQVJDSF9SSVNDVjY0CisrICAgIC8vIFRoZSBNSVBTNjQgYW5kIFJJU0NWNjQgY2FsbGlu ZyBjb252ZW50aW9uIGlzIHRvIHNpZ24gZXh0ZW5kIGFsbCB2YWx1ZXMsCisrICAgIC8vIGV2ZW4g dW5zaWduZWQgb25lcy4KKysgICAgLy8gRklYTUUgKFJJU0NWKTogd2hhdCBhYm91dCBSSVNDViBj YWxsaW5nIGNvbnRlbnRpb24/CisgICAgIHVzaW5nIHNpZ25lZF90ID0gdHlwZW5hbWUgc3RkOjpt YWtlX3NpZ25lZDxUPjo6dHlwZTsKKyAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludHB0cl90Pihz dGF0aWNfY2FzdDxzaWduZWRfdD4oYXJnKSk7CisgI2Vsc2UKK0BAIC0xMjUsNiArMTI2LDcgQEAg Y2xhc3MgU2ltdWxhdG9yQmFzZSB7CisgLy8gIC0gVjhfVEFSR0VUX0FSQ0hfUFBDOiBzdmMgKFN1 cGVydmlzb3IgQ2FsbCkKKyAvLyAgLSBWOF9UQVJHRVRfQVJDSF9QUEM2NDogc3ZjIChTdXBlcnZp c29yIENhbGwpCisgLy8gIC0gVjhfVEFSR0VUX0FSQ0hfUzM5MDogc3ZjIChTdXBlcnZpc29yIENh bGwpCisrLy8gIC0gVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NDogZWNhbGwgKFN1cGVydmlzb3IgQ2Fs bCkKKyBjbGFzcyBSZWRpcmVjdGlvbiB7CisgIHB1YmxpYzoKKyAgIFJlZGlyZWN0aW9uKEFkZHJl c3MgZXh0ZXJuYWxfZnVuY3Rpb24sIEV4dGVybmFsUmVmZXJlbmNlOjpUeXBlIHR5cGUpOworSW5k ZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdjgvc3JjL2V4ZWN1dGlvbi9zaW11bGF0b3IuaAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5n aW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9z cmMvZXhlY3V0aW9uL3NpbXVsYXRvci5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMt NS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZXhlY3V0aW9uL3NpbXVsYXRvci5o CitAQCAtMjYsNiArMjYsMTAgQEAKKyAjaW5jbHVkZSAic3JjL2V4ZWN1dGlvbi9taXBzNjQvc2lt dWxhdG9yLW1pcHM2NC5oIgorICNlbGlmIFY4X1RBUkdFVF9BUkNIX1MzOTAKKyAjaW5jbHVkZSAi c3JjL2V4ZWN1dGlvbi9zMzkwL3NpbXVsYXRvci1zMzkwLmgiCisrI2VsaWYgVjhfVEFSR0VUX0FS Q0hfUklTQ1Y2NAorKyNpbmNsdWRlICJzcmMvZXhlY3V0aW9uL3Jpc2N2NjQvc2ltdWxhdG9yLXJp c2N2NjQuaCIKKysjZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVgorKyNpbmNsdWRlICJzcmMvZXhl Y3V0aW9uL3Jpc2N2L3NpbXVsYXRvci1yaXNjdi5oIgorICNlbHNlCisgI2Vycm9yIFVuc3VwcG9y dGVkIHRhcmdldCBhcmNoaXRlY3R1cmUuCisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZl cnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvZmxhZ3MvZmxh Zy1kZWZpbml0aW9ucy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1z cmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9mbGFncy9mbGFnLWRl ZmluaXRpb25zLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9mbGFncy9mbGFnLWRlZmluaXRpb25zLmgKK0BAIC0xMTgy LDYgKzExODIsNyBAQCBERUZJTkVfQk9PTChwYXJ0aWFsX2NvbnN0YW50X3Bvb2wsIHRydWUsCisg REVGSU5FX1NUUklORyhzaW1fYXJtNjRfb3B0aW9uYWxfZmVhdHVyZXMsICJub25lIiwKKyAgICAg ICAgICAgICAgICJlbmFibGUgb3B0aW9uYWwgZmVhdHVyZXMgb24gdGhlIHNpbXVsYXRvciBmb3Ig dGVzdGluZzogbm9uZSBvciAiCisgICAgICAgICAgICAgICAiYWxsIikKKytERUZJTkVfQk9PTChk ZWJ1Z19yaXNjdiwgZmFsc2UsICJlbmFibGUgZGVidWcgcHJpbnRzIikKKyAKKyAvLyBDb250cm9s bGluZyBzb3VyY2UgcG9zaXRpb25zIGZvciBUb3JxdWUvQ1NBIGNvZGUuCisgREVGSU5FX0JPT0wo ZW5hYmxlX3NvdXJjZV9hdF9jc2FfYmluZCwgZmFsc2UsCitAQCAtMTM3Miw3ICsxMzczLDcgQEAg REVGSU5FX0JPT0woY2hlY2tfaWNhY2hlLCBmYWxzZSwKKyAgICAgICAgICAgICAiQ2hlY2sgaWNh Y2hlIGZsdXNoZXMgaW4gQVJNIGFuZCBNSVBTIHNpbXVsYXRvciIpCisgREVGSU5FX0lOVChzdG9w X3NpbV9hdCwgMCwgIlNpbXVsYXRvciBzdG9wIGFmdGVyIHggbnVtYmVyIG9mIGluc3RydWN0aW9u cyIpCisgI2lmIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfQVJNNjQpIHx8IGRlZmluZWQoVjhfVEFS R0VUX0FSQ0hfTUlQUzY0KSB8fCBcCistICAgIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUFBDNjQp CisrICAgIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUFBDNjQpIHx8IGRlZmluZWQoVjhfVEFSR0VU X0FSQ0hfUklTQ1Y2NCkKKyBERUZJTkVfSU5UKHNpbV9zdGFja19hbGlnbm1lbnQsIDE2LAorICAg ICAgICAgICAgIlN0YWNrIGFsaWdubWVudCBpbiBieXRlcyBpbiBzaW11bGF0b3IuIFRoaXMgbXVz dCBiZSBhIHBvd2VyIG9mIHR3byAiCisgICAgICAgICAgICAiYW5kIGl0IG11c3QgYmUgYXQgbGVh c3QgMTYuIDE2IGlzIGRlZmF1bHQuIikKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL3Jpc2N2 NjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCisrKysg cXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92 OC9zcmMvaGVhcC9iYXNlL2FzbS9yaXNjdjY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYworQEAgLTAs MCArMSw0NyBAQAorKy8vIENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisrCisrLy8gUHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyB0byBn ZXQgdGhlbSBvbiB0aGUgc3RhY2sgZm9yIGNvbnNlcnZhdGl2ZQorKy8vIHN0YWNrIHNjYW5uaW5n LgorKy8vCisrLy8gU2VlIGFzbS94NjQvcHVzaF9yZWdpc3RlcnNfY2xhbmcuY2MgZm9yIHdoeSB0 aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVyYXRlZAorKy8vIHVzaW5nIGNsYW5nLgorKy8vCisrLy8g RG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRkZXJz IG1heSBvdmVycmlkZSB0aGUKKysvLyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFuZCBu b3QgcHJvdmlkZSB0aGVtLgorK2FzbSgKKysgICAgIi5nbG9iYWwgUHVzaEFsbFJlZ2lzdGVyc0Fu ZEl0ZXJhdGVTdGFjayAgICAgICAgICAgICBcbiIKKysgICAgIi50eXBlIFB1c2hBbGxSZWdpc3Rl cnNBbmRJdGVyYXRlU3RhY2ssICVmdW5jdGlvbiAgICBcbiIKKysgICAgIi5oaWRkZW4gUHVzaEFs bFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAgICAgICBcbiIKKysgICAgIlB1c2hBbGxS ZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8g UHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBhbmQgc2F2ZSByZXR1cm4gYWRkcmVzcy4K KysgICAgIiAgYWRkaSBzcCwgc3AsIC05NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgIiAgc2QgcmEsIDg4KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKysgICAgIiAgc2QgczgsIDgwKHNwKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2Qgc3AsIDcyKHNwKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgZ3AsIDY0KHNwKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczcsIDU2KHNwKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczYsIDQ4KHNw KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczUs IDQwKHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAg c2QgczQsIDMyKHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysg ICAgIiAgc2QgczMsIDI0KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKysgICAgIiAgc2QgczIsIDE2KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKKysgICAgIiAgc2QgczEsICA4KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczAsICAwKHNwKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gTWFpbnRhaW4gZnJhbWUgcG9pbnRlci4KKysg ICAgIiAgbXYgczgsIHNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKysgICAgLy8gUGFzcyAxc3QgcGFyYW1ldGVyIChhMCkgdW5jaGFuZ2VkIChTdGFjayopLgor KyAgICAvLyBQYXNzIDJuZCBwYXJhbWV0ZXIgKGExKSB1bmNoYW5nZWQgKFN0YWNrVmlzaXRvciop LgorKyAgICAvLyBTYXZlIDNyZCBwYXJhbWV0ZXIgKGEyOyBJdGVyYXRlU3RhY2tDYWxsYmFjayku CisrICAgICIgIG12IGEzLCBhMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCisrICAgICIgIG12IGEyLCBzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCisrICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgorKyAgICAiICBqYWxyIGEz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBM b2FkIHJldHVybiBhZGRyZXNzLgorKyAgICAiICBsZCByYSwgODgoc3ApICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBSZXN0b3JlIGZyYW1lIHBvaW50ZXIu CisrICAgICIgIGxkIHM4LCA4MChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCisrICAgICIgIGFkZGkgc3AsIHNwLCA5NiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCisrICAgICIgIGpyIHJhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iKTsKKysKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9pbnRlcnByZXRlci9pbnRlcnBy ZXRlci1hc3NlbWJsZXIuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2ludGVycHJldGVy L2ludGVycHJldGVyLWFzc2VtYmxlci5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3Jj LTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2ludGVycHJldGVyL2ludGVycHJl dGVyLWFzc2VtYmxlci5jYworQEAgLTEzNDgsNyArMTM0OCw4IEBAIHZvaWQgSW50ZXJwcmV0ZXJB c3NlbWJsZXI6OlRyYWNlQnl0ZWNvZGUKKyAKKyAvLyBzdGF0aWMKKyBib29sIEludGVycHJldGVy QXNzZW1ibGVyOjpUYXJnZXRTdXBwb3J0c1VuYWxpZ25lZEFjY2VzcygpIHsKKy0jaWYgVjhfVEFS R0VUX0FSQ0hfTUlQUyB8fCBWOF9UQVJHRVRfQVJDSF9NSVBTNjQKKysjaWYgVjhfVEFSR0VUX0FS Q0hfTUlQUyB8fCBWOF9UQVJHRVRfQVJDSF9NSVBTNjQgfHwgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2 NCB8fCBcCisrICAgIFY4X1RBUkdFVF9BUkNIX1JJU0NWCisgICByZXR1cm4gZmFsc2U7CisgI2Vs aWYgVjhfVEFSR0VUX0FSQ0hfSUEzMiB8fCBWOF9UQVJHRVRfQVJDSF9YNjQgfHwgVjhfVEFSR0VU X0FSQ0hfUzM5MCB8fCBcCisgICAgIFY4X1RBUkdFVF9BUkNIX0FSTSB8fCBWOF9UQVJHRVRfQVJD SF9BUk02NCB8fCBWOF9UQVJHRVRfQVJDSF9QUEMgfHwgICBcCitJbmRleDogcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvbGlic2Ft cGxlci9zYW1wbGVyLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1z cmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9saWJzYW1wbGVyL3Nh bXBsZXIuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy9saWJzYW1wbGVyL3NhbXBsZXIuY2MKK0BAIC00NDIsNiArNDQy LDEyIEBAIHZvaWQgU2lnbmFsSGFuZGxlcjo6RmlsbFJlZ2lzdGVyU3RhdGUodm8KKyAgIHN0YXRl LT5zcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHVjb250ZXh0LT51Y19tY29udGV4dC5ncmVn c1sxNV0pOworICAgc3RhdGUtPmZwID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odWNvbnRleHQt PnVjX21jb250ZXh0LmdyZWdzWzExXSk7CisgICBzdGF0ZS0+bHIgPSByZWludGVycHJldF9jYXN0 PHZvaWQqPih1Y29udGV4dC0+dWNfbWNvbnRleHQuZ3JlZ3NbMTRdKTsKKysjZWxpZiBWOF9IT1NU X0FSQ0hfUklTQ1Y2NCB8fCBWOF9IT1NUX0FSQ0hfUklTQ1YKKysgIC8vIFNwZWMgQ0guMjUgUklT Qy1WIEFzc2VtYmx5IFByb2dyYW1tZXLigJlzIEhhbmRib29rCisrICBzdGF0ZS0+cGMgPSByZWlu dGVycHJldF9jYXN0PHZvaWQqPihtY29udGV4dC5fX2dyZWdzW1JFR19QQ10pOworKyAgc3RhdGUt PnNwID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obWNvbnRleHQuX19ncmVnc1tSRUdfU1BdKTsK KysgIHN0YXRlLT5mcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1jb250ZXh0Ll9fZ3JlZ3Nb UkVHX1MwXSk7CisrICBzdGF0ZS0+bHIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihtY29udGV4 dC5fX2dyZWdzW1JFR19SQV0pOworICNlbmRpZiAgLy8gVjhfSE9TVF9BUkNIXyoKKyAjZWxpZiBW OF9PU19JT1MKKyAKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9sb2dnaW5nL2xvZy5jYworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS92OC9zcmMvbG9nZ2luZy9sb2cuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9sb2dnaW5nL2xvZy5jYworQEAg LTU5NCw2ICs1OTQsMTQgQEAgdm9pZCBMb3dMZXZlbExvZ2dlcjo6TG9nQ29kZUluZm8oKSB7Cisg ICBjb25zdCBjaGFyIGFyY2hbXSA9ICJhcm02NCI7CisgI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUzM5 MAorICAgY29uc3QgY2hhciBhcmNoW10gPSAiczM5MCI7CisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hf UklTQ1Y2NAorKyAgLy8gRklYTUUgKFJJU0NWKSBwb3J0aW5nOiBuZWVkIG1vcmUgc3BlY2lmaWMg YXJjaCBzdHJpbmdzIGJhc2VkIG9uIGNwdQorKyAgLy8gZmVhdHVyZXMKKysgIGNvbnN0IGNoYXIg YXJjaFtdID0gInJpc2N2NjQiOworKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrICAvLyBG SVhNRSAoUklTQ1YpIHBvcnRpbmc6IG5lZWQgbW9yZSBzcGVjaWZpYyBhcmNoIHN0cmluZ3MgYmFz ZWQgb24gY3B1CisrICAvLyBmZWF0dXJlcworKyAgY29uc3QgY2hhciBhcmNoW10gPSAicmlzY3Yi OworICNlbHNlCisgICBjb25zdCBjaGFyIGFyY2hbXSA9ICJ1bmtub3duIjsKKyAjZW5kaWYKK0lu ZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3Y4L3NyYy9vYmplY3RzL2JhY2tpbmctc3RvcmUuY2MKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL29iamVjdHMvYmFja2luZy1zdG9yZS5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL29iamVjdHMvYmFja2lu Zy1zdG9yZS5jYworQEAgLTI5LDcgKzI5LDggQEAgY29uc3RleHByIGJvb2wga1VzZUd1YXJkUmVn aW9ucyA9IHRydWU7CisgY29uc3RleHByIGJvb2wga1VzZUd1YXJkUmVnaW9ucyA9IGZhbHNlOwor ICNlbmRpZgorIAorLSNpZiBWOF9UQVJHRVRfQVJDSF9NSVBTNjQKKysjaWYgVjhfVEFSR0VUX0FS Q0hfTUlQUzY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysvLyBGSVhNRShSSVNDVik6IENo ZWNrIHRoaXMgdmFsdWUKKyAvLyBNSVBTNjQgaGFzIGEgdXNlciBzcGFjZSBvZiAyXjQwIGJ5dGVz IG9uIG1vc3QgcHJvY2Vzc29ycywKKyAvLyBhZGRyZXNzIHNwYWNlIGxpbWl0cyBuZWVkcyB0byBi ZSBzbWFsbGVyLgorIGNvbnN0ZXhwciBzaXplX3Qga0FkZHJlc3NTcGFjZUxpbWl0ID0gMHg4MDAw MDAwMDAwTDsgIC8vIDUxMiBHaUIKK0BAIC0zOSw2ICs0MCwxMCBAQCBjb25zdGV4cHIgc2l6ZV90 IGtBZGRyZXNzU3BhY2VMaW1pdCA9IDB4CisgY29uc3RleHByIHNpemVfdCBrQWRkcmVzc1NwYWNl TGltaXQgPSAweEMwMDAwMDAwOyAgLy8gMyBHaUIKKyAjZW5kaWYKKyAKKysjaWYgVjhfVEFSR0VU X0FSQ0hfUklTQ1YKKysjZXJybyBSSVNDVigzMikgYXJjaGl0ZWN0dXJlIG5vdCBzdXBwb3J0ZWQK KysjZW5kaWYKKysKKyBjb25zdGV4cHIgdWludDY0X3Qga09uZUdpQiA9IDEwMjQgKiAxMDI0ICog MTAyNDsKKyBjb25zdGV4cHIgdWludDY0X3Qga05lZ2F0aXZlR3VhcmRTaXplID0gMiAqIGtPbmVH aUI7CisgCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvb2JqZWN0cy9jb2RlLmNjCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9vYmplY3RzL2NvZGUuY2MKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01 LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9vYmplY3RzL2NvZGUuY2MKK0BAIC0y MzQsNyArMjM0LDcgQEAgYm9vbCBDb2RlOjpJc0lzb2xhdGVJbmRlcGVuZGVudChJc29sYXRlKgor ICAgICAgICAgICAgICAgICAgUmVsb2NJbmZvOjpNb2RlTWFzayhSZWxvY0luZm86OldBU01fU1RV Ql9DQUxMKSkpOworIAorICNpZiBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1BQQykgfHwgZGVmaW5l ZChWOF9UQVJHRVRfQVJDSF9QUEM2NCkgfHwgXAorLSAgICBkZWZpbmVkKFY4X1RBUkdFVF9BUkNI X01JUFM2NCkKKysgICAgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9NSVBTNjQpIHx8IGRlZmluZWQo VjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NCkKKyAgIHJldHVybiBSZWxvY0l0ZXJhdG9yKCp0aGlzLCBr TW9kZU1hc2spLmRvbmUoKTsKKyAjZWxpZiBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1g2NCkgfHwg ZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9BUk02NCkgfHwgXAorICAgICBkZWZpbmVkKFY4X1RBUkdF VF9BUkNIX0FSTSkgfHwgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9NSVBTKSB8fCAgICBcCitJbmRl eDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS92OC9zcmMvb2JqZWN0cy9jb2RlLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVy eXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL29iamVj dHMvY29kZS5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvb2JqZWN0cy9jb2RlLmgKK0BAIC00NjEsNiArNDYxLDEwIEBA IGNsYXNzIENvZGUgOiBwdWJsaWMgSGVhcE9iamVjdCB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IChDT01QUkVTU19QT0lOVEVSU19CT09MID8gMTYgOiAyOCk7 CisgI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUzM5MFgKKyAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtI ZWFkZXJQYWRkaW5nU2l6ZSA9IENPTVBSRVNTX1BPSU5URVJTX0JPT0wgPyAxNiA6IDI4OworKyNl bGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtIZWFk ZXJQYWRkaW5nU2l6ZSA9IDI4OworKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrI2Vycm9y IHJpc2N2MzIgdW5zdXBwb3J0ZWQgeWV0CisgI2Vsc2UKKyAjZXJyb3IgVW5rbm93biBhcmNoaXRl Y3R1cmUuCisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4z L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvcHJvZmlsZXIvdGljay1zYW1wbGUuY2MKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3Byb2ZpbGVyL3RpY2stc2FtcGxlLmNjCisrKysgcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9z cmMvcHJvZmlsZXIvdGljay1zYW1wbGUuY2MKK0BAIC0xMjUsNiArMTI1LDEzIEBAIGJvb2wgU2lt dWxhdG9ySGVscGVyOjpGaWxsUmVnaXN0ZXJzKElzb2wKKyAgIHN0YXRlLT5zcCA9IHJlaW50ZXJw cmV0X2Nhc3Q8dm9pZCo+KHNpbXVsYXRvci0+Z2V0X3JlZ2lzdGVyKFNpbXVsYXRvcjo6c3ApKTsK KyAgIHN0YXRlLT5mcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNpbXVsYXRvci0+Z2V0X3Jl Z2lzdGVyKFNpbXVsYXRvcjo6ZnApKTsKKyAgIHN0YXRlLT5sciA9IHJlaW50ZXJwcmV0X2Nhc3Q8 dm9pZCo+KHNpbXVsYXRvci0+Z2V0X3JlZ2lzdGVyKFNpbXVsYXRvcjo6cmEpKTsKKysjZWxpZiBW OF9UQVJHRVRfQVJDSF9SSVNDVjY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrICBpZiAoIXNp bXVsYXRvci0+aGFzX2JhZF9wYygpKSB7CisrICAgIHN0YXRlLT5wYyA9IHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KHNpbXVsYXRvci0+Z2V0X3BjKCkpOworKyAgfQorKyAgc3RhdGUtPnNwID0gcmVp bnRlcnByZXRfY2FzdDx2b2lkKj4oc2ltdWxhdG9yLT5nZXRfcmVnaXN0ZXIoU2ltdWxhdG9yOjpz cCkpOworKyAgc3RhdGUtPmZwID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2ltdWxhdG9yLT5n ZXRfcmVnaXN0ZXIoU2ltdWxhdG9yOjpmcCkpOworKyAgc3RhdGUtPmxyID0gcmVpbnRlcnByZXRf Y2FzdDx2b2lkKj4oc2ltdWxhdG9yLT5nZXRfcmVnaXN0ZXIoU2ltdWxhdG9yOjpyYSkpOworICNl bmRpZgorICAgaWYgKHN0YXRlLT5zcCA9PSAwIHx8IHN0YXRlLT5mcCA9PSAwKSB7CisgICAgIC8v IEl0IHBvc3NpYmxlIHRoYXQgdGhlIHNpbXVsYXRvciBpcyBpbnRlcnJ1cHRlZCB3aGlsZSBpdCBp cyB1cGRhdGluZworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3JlZ2V4cC9yZWdleHAtbWFjcm8tYXNzZW1ibGVyLWFy Y2guaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvcmVnZXhwL3JlZ2V4cC1tYWNyby1hc3Nl bWJsZXItYXJjaC5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvcmVnZXhwL3JlZ2V4cC1tYWNyby1hc3NlbWJsZXItYXJj aC5oCitAQCAtMjMsNiArMjMsMTAgQEAKKyAjaW5jbHVkZSAic3JjL3JlZ2V4cC9taXBzNjQvcmVn ZXhwLW1hY3JvLWFzc2VtYmxlci1taXBzNjQuaCIKKyAjZWxpZiBWOF9UQVJHRVRfQVJDSF9TMzkw CisgI2luY2x1ZGUgInNyYy9yZWdleHAvczM5MC9yZWdleHAtbWFjcm8tYXNzZW1ibGVyLXMzOTAu aCIKKysjZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CisrI2luY2x1ZGUgInNyYy9yZWdleHAv cmlzY3Y2NC9yZWdleHAtbWFjcm8tYXNzZW1ibGVyLXJpc2N2NjQuaCIKKysjZWxpZiBWOF9UQVJH RVRfQVJDSF9SSVNDVgorKyNpbmNsdWRlICJzcmMvcmVnZXhwL3Jpc2N2L3JlZ2V4cC1tYWNyby1h c3NlbWJsZXItcmlzY3YuaCIKKyAjZWxzZQorICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgYXJj aGl0ZWN0dXJlLgorICNlbmRpZgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUu MTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3JlZ2V4cC9yZWdleHAtbWFjcm8tYXNz ZW1ibGVyLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1 LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3JlZ2V4cC9yZWdleHAtbWFjcm8t YXNzZW1ibGVyLmgKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9yZWdleHAvcmVnZXhwLW1hY3JvLWFzc2VtYmxlci5oCitA QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBSZWdFeHBNYWNyb0Fzc2VtYmxlciB7CisgICAgIGtBUk1J bXBsZW1lbnRhdGlvbiwKKyAgICAga0FSTTY0SW1wbGVtZW50YXRpb24sCisgICAgIGtNSVBTSW1w bGVtZW50YXRpb24sCisrICAgIGtSSVNDVkltcGxlbWVudGF0aW9uLAorICAgICBrUzM5MEltcGxl bWVudGF0aW9uLAorICAgICBrUFBDSW1wbGVtZW50YXRpb24sCisgICAgIGtYNjRJbXBsZW1lbnRh dGlvbiwKK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy9yZWdleHAvcmVnZXhwLmNjCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3 ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy9yZWdleHAvcmVnZXhwLmNjCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMt NS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvcmVnZXhwL3JlZ2V4cC5jYworQEAg LTgxNSw2ICs4MTUsOSBAQCBib29sIFJlZ0V4cEltcGw6OkNvbXBpbGUoSXNvbGF0ZSogaXNvbGF0 CisgI2VsaWYgVjhfVEFSR0VUX0FSQ0hfTUlQUzY0CisgICAgIG1hY3JvX2Fzc2VtYmxlci5yZXNl dChuZXcgUmVnRXhwTWFjcm9Bc3NlbWJsZXJNSVBTKGlzb2xhdGUsIHpvbmUsIG1vZGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1 dF9yZWdpc3Rlcl9jb3VudCkpOworKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQgfHwgVjhf VEFSR0VUX0FSQ0hfUklTQ1YKKysgICAgbWFjcm9fYXNzZW1ibGVyLnJlc2V0KG5ldyBSZWdFeHBN YWNyb0Fzc2VtYmxlclJJU0NWKGlzb2xhdGUsIHpvbmUsIG1vZGUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcmVnaXN0ZXJf Y291bnQpKTsKKyAjZWxzZQorICNlcnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgorICNl bmRpZgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdjgvc3JjL3JlZ2V4cC9yaXNjdjY0L3JlZ2V4cC1tYWNyby1hc3NlbWJsZXIt cmlzY3Y2NC5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIHF0d2ViZW5naW5lLWV2 ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3JlZ2V4cC9y aXNjdjY0L3JlZ2V4cC1tYWNyby1hc3NlbWJsZXItcmlzY3Y2NC5jYworQEAgLTAsMCArMSwxMjYw IEBACisrLy8gQ29weXJpZ2h0IDIwMTIgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KKysKKysjaWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NAorKworKyNpbmNsdWRlICJzcmMv cmVnZXhwL3Jpc2N2NjQvcmVnZXhwLW1hY3JvLWFzc2VtYmxlci1yaXNjdjY0LmgiCisrCisrI2lu Y2x1ZGUgInNyYy9jb2RlZ2VuL2Fzc2VtYmxlci1pbmwuaCIKKysjaW5jbHVkZSAic3JjL2NvZGVn ZW4vbWFjcm8tYXNzZW1ibGVyLmgiCisrI2luY2x1ZGUgInNyYy9sb2dnaW5nL2xvZy5oIgorKyNp bmNsdWRlICJzcmMvb2JqZWN0cy9vYmplY3RzLWlubC5oIgorKyNpbmNsdWRlICJzcmMvcmVnZXhw L3JlZ2V4cC1tYWNyby1hc3NlbWJsZXIuaCIKKysjaW5jbHVkZSAic3JjL3JlZ2V4cC9yZWdleHAt c3RhY2suaCIKKysjaW5jbHVkZSAic3JjL3NuYXBzaG90L2VtYmVkZGVkL2VtYmVkZGVkLWRhdGEu aCIKKysjaW5jbHVkZSAic3JjL3N0cmluZ3MvdW5pY29kZS5oIgorKworK25hbWVzcGFjZSB2OCB7 CisrbmFtZXNwYWNlIGludGVybmFsIHsKKysKKysvKiBjbGFuZy1mb3JtYXQgb2ZmCisrICoKKysg KiBUaGlzIGFzc2VtYmxlciB1c2VzIHRoZSBmb2xsb3dpbmcgcmVnaXN0ZXIgYXNzaWdubWVudCBj b252ZW50aW9uCisrICogLSB0NCA6IFRlbXBvcmFyaWx5IHN0b3JlcyB0aGUgaW5kZXggb2YgY2Fw dHVyZSBzdGFydCBhZnRlciBhIG1hdGNoaW5nIHBhc3MKKysgKiAgICAgICAgZm9yIGEgZ2xvYmFs IHJlZ2V4cC4KKysgKiAtIGE1IDogUG9pbnRlciB0byBjdXJyZW50IENvZGUgb2JqZWN0IGluY2x1 ZGluZyBoZWFwIG9iamVjdCB0YWcuCisrICogLSBhNiA6IEN1cnJlbnQgcG9zaXRpb24gaW4gaW5w dXQsIGFzIG5lZ2F0aXZlIG9mZnNldCBmcm9tIGVuZCBvZiBzdHJpbmcuCisrICogICAgICAgIFBs ZWFzZSBub3RpY2UgdGhhdCB0aGlzIGlzIHRoZSBieXRlIG9mZnNldCwgbm90IHRoZSBjaGFyYWN0 ZXIgb2Zmc2V0IQorKyAqIC0gYTcgOiBDdXJyZW50bHkgbG9hZGVkIGNoYXJhY3Rlci4gTXVzdCBi ZSBsb2FkZWQgdXNpbmcKKysgKiAgICAgICAgTG9hZEN1cnJlbnRDaGFyYWN0ZXIgYmVmb3JlIHVz aW5nIGFueSBvZiB0aGUgZGlzcGF0Y2ggbWV0aG9kcy4KKysgKiAtIHQwIDogUG9pbnRzIHRvIHRp cCBvZiBiYWNrdHJhY2sgc3RhY2sKKysgKiAtIHQxIDogVW51c2VkLgorKyAqIC0gdDIgOiBFbmQg b2YgaW5wdXQgKHBvaW50cyB0byBieXRlIGFmdGVyIGxhc3QgY2hhcmFjdGVyIGluIGlucHV0KS4K KysgKiAtIGZwIDogRnJhbWUgcG9pbnRlci4gVXNlZCB0byBhY2Nlc3MgYXJndW1lbnRzLCBsb2Nh bCB2YXJpYWJsZXMgYW5kCisrICogICAgICAgICBSZWdFeHAgcmVnaXN0ZXJzLgorKyAqIC0gc3Ag OiBQb2ludHMgdG8gdGlwIG9mIEMgc3RhY2suCisrICoKKysgKiBUaGUgcmVtYWluaW5nIHJlZ2lz dGVycyBhcmUgZnJlZSBmb3IgY29tcHV0YXRpb25zLgorKyAqIEVhY2ggY2FsbCB0byBhIHB1Ymxp YyBtZXRob2Qgc2hvdWxkIHJldGFpbiB0aGlzIGNvbnZlbnRpb24uCisrICoKKysgKiBUaGUgc3Rh Y2sgd2lsbCBoYXZlIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgorKyAqIEZJWE1FKFJJU0NWKTog VmVyaWZ5IHRoYXQgdGhpcyBzdGFjayBkZXNjcmlwdGlvbiBpcyBjb3JyZWN0CisrICoKKysgKiAg LSBmcFs4MF0gIElzb2xhdGUqIGlzb2xhdGUgICAoYWRkcmVzcyBvZiB0aGUgY3VycmVudCBpc29s YXRlKSAgICAgICAgICAgICAgIGtJc29sYXRlCisrICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrU3Rh Y2tGcmFtZUhlYWRlcgorKyAqICAtLS0gc3Agd2hlbiBjYWxsZWQgLS0tCisrICogIC0gZnBbNzJd ICByYSAgICAgICAgICAgICAgICAgUmV0dXJuIGZyb20gUmVnRXhwIGNvZGUgKHJhKS4gICAgICAg ICAgICAgICAgICBrUmV0dXJuQWRkcmVzcworKyAqICAtIGZwWzY0XSAgczksIG9sZC1mcCAgICAg ICAgIE9sZCBmcCwgY2FsbGVlIHNhdmVkKHM5KS4KKysgKiAgLSBmcFswLi42M10gIGZwLi5zNyAg ICAgICAgICBDYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGZwLi5zNy4KKysgKiAgLS0tIGZyYW1lIHBv aW50ZXIgLS0tLQorKyAqICAtIGZwWy04XSAgZGlyZWN0X2NhbGwgICAgICAgICgxID0gZGlyZWN0 IGNhbGwgZnJvbSBKUywgMCA9IGZyb20gcnVudGltZSkgICAga0RpcmVjdENhbGwKKysgKiAgLSBm cFstMTZdIHN0YWNrX2Jhc2UgICAgICAgICAoVG9wIG9mIGJhY2t0cmFja2luZyBzdGFjaykuICAg ICAgICAgICAgICAgICAgIGtTdGFja0hpZ2hFbmQKKysgKiAgLSBmcFstMjRdIGNhcHR1cmUgYXJy YXkgc2l6ZSAobWF5IGZpdCBtdWx0aXBsZSBzZXRzIG9mIG1hdGNoZXMpICAgICAgICAgICAgIGtO dW1PdXRwdXRSZWdpc3RlcnMKKysgKiAgLSBmcFstMzJdIGludCogY2FwdHVyZV9hcnJheSAoaW50 W251bV9zYXZlZF9yZWdpc3RlcnNfXSwgZm9yIG91dHB1dCkuICAgICAgIGtSZWdpc3Rlck91dHB1 dAorKyAqICAtIGZwWy00MF0gZW5kIG9mIGlucHV0ICAgICAgIChhZGRyZXNzIG9mIGVuZCBvZiBz dHJpbmcpLiAgICAgICAgICAgICAgICAgICAga0lucHV0RW5kCisrICogIC0gZnBbLTQ4XSBzdGFy dCBvZiBpbnB1dCAgICAgKGFkZHJlc3Mgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHN0cmluZykuICAg ICAgICBrSW5wdXRTdGFydAorKyAqICAtIGZwWy01Nl0gc3RhcnQgaW5kZXggICAgICAgIChjaGFy YWN0ZXIgaW5kZXggb2Ygc3RhcnQpLiAgICAgICAgICAgICAgICAgICAga1N0YXJ0SW5kZXgKKysg KiAgLSBmcFstNjRdIHZvaWQqIGlucHV0X3N0cmluZyAobG9jYXRpb24gb2YgYSBoYW5kbGUgY29u dGFpbmluZyB0aGUgc3RyaW5nKS4gIGtJbnB1dFN0cmluZworKyAqICAtIGZwWy03Ml0gc3VjY2Vz cyBjb3VudGVyICAgIChvbmx5IGZvciBnbG9iYWwgcmVnZXhwcyB0byBjb3VudCBtYXRjaGVzKS4g ICAga1N1Y2Nlc3NmdWxDYXB0dXJlcworKyAqICAtIGZwWy04MF0gT2Zmc2V0IG9mIGxvY2F0aW9u IGJlZm9yZSBzdGFydCBvZiBpbnB1dCAoZWZmZWN0aXZlbHkgY2hhcmFjdGVyICAga1N0cmluZ1N0 YXJ0TWludXNPbmUKKysgKiAgICAgICAgICAgIHBvc2l0aW9uIC0xKS4gVXNlZCB0byBpbml0aWFs aXplIGNhcHR1cmUgcmVnaXN0ZXJzIHRvIGEKKysgKiAgICAgICAgICAgIG5vbi1wb3NpdGlvbi4K KysgKiAgLS0tLS0tLS0tIFRoZSBmb2xsb3dpbmcgb3V0cHV0IHJlZ2lzdGVycyBhcmUgMzItYml0 IHZhbHVlcy4gLS0tLS0tLS0tCisrICogIC0gZnBbLTg4XSByZWdpc3RlciAwICAgICAgICAgKE9u bHkgcG9zaXRpb25zIG11c3QgYmUgc3RvcmVkIGluIHRoZSBmaXJzdCAgICBrUmVnaXN0ZXJaZXJv CisrICogIC0gICAgICAgICByZWdpc3RlciAxICAgICAgICAgIG51bV9zYXZlZF9yZWdpc3RlcnNf IHJlZ2lzdGVycykKKysgKiAgLSAgICAgICAgIC4uLgorKyAqICAtICAgICAgICAgcmVnaXN0ZXIg bnVtX3JlZ2lzdGVycy0xCisrICogIC0tLSBzcCAtLS0KKysgKgorKyAqIFRoZSBmaXJzdCBudW1f c2F2ZWRfcmVnaXN0ZXJzXyByZWdpc3RlcnMgYXJlIGluaXRpYWxpemVkIHRvIHBvaW50IHRvCisr ICogImNoYXJhY3RlciAtMSIgaW4gdGhlIHN0cmluZyAoaS5lLiwgY2hhcl9zaXplKCkgYnl0ZXMg YmVmb3JlIHRoZSBmaXJzdAorKyAqIGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nKS4gVGhlIHJlbWFp bmluZyByZWdpc3RlcnMgc3RhcnQgb3V0IGFzIGdhcmJhZ2UuCisrICoKKysgKiBUaGUgZGF0YSB1 cCB0byB0aGUgcmV0dXJuIGFkZHJlc3MgbXVzdCBiZSBwbGFjZWQgdGhlcmUgYnkgdGhlIGNhbGxp bmcKKysgKiBjb2RlIGFuZCB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGluIHJl Z2lzdGVycywgZS5nLiBieSBjYWxsaW5nIHRoZQorKyAqIGNvZGUgZW50cnkgYXMgY2FzdCB0byBh IGZ1bmN0aW9uIHdpdGggdGhlIHNpZ25hdHVyZToKKysgKiBpbnQgKCptYXRjaCkoU3RyaW5nIGlu cHV0X3N0cmluZywKKysgKiAgICAgICAgICAgICAgaW50IHN0YXJ0X2luZGV4LAorKyAqICAgICAg ICAgICAgICBBZGRyZXNzIHN0YXJ0LAorKyAqICAgICAgICAgICAgICBBZGRyZXNzIGVuZCwKKysg KiAgICAgICAgICAgICAgaW50KiBjYXB0dXJlX291dHB1dF9hcnJheSwKKysgKiAgICAgICAgICAg ICAgaW50IG51bV9jYXB0dXJlX3JlZ2lzdGVycywKKysgKiAgICAgICAgICAgICAgYnl0ZSogc3Rh Y2tfYXJlYV9iYXNlLAorKyAqICAgICAgICAgICAgICBib29sIGRpcmVjdF9jYWxsID0gZmFsc2Us CisrICogICAgICAgICAgICAgIElzb2xhdGUqIGlzb2xhdGUpOworKyAqIFRoZSBjYWxsIGlzIHBl cmZvcm1lZCBieSBOYXRpdmVSZWdFeHBNYWNyb0Fzc2VtYmxlcjo6RXhlY3V0ZSgpCisrICogKGlu IHJlZ2V4cC1tYWNyby1hc3NlbWJsZXIuY2MpIHZpYSB0aGUgR2VuZXJhdGVkQ29kZSB3cmFwcGVy LgorKyAqCisrICogY2xhbmctZm9ybWF0IG9uCisrICovCisrCisrI2RlZmluZSBfXyBBQ0NFU1Nf TUFTTShtYXNtXykKKysKKytjb25zdCBpbnQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6a1Jl Z0V4cENvZGVTaXplOworKworK1JlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OlJlZ0V4cE1hY3Jv QXNzZW1ibGVyUklTQ1YoSXNvbGF0ZSogaXNvbGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpvbmUqIHpvbmUsIE1vZGUgbW9kZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBy ZWdpc3RlcnNfdG9fc2F2ZSkKKysgICAgOiBOYXRpdmVSZWdFeHBNYWNyb0Fzc2VtYmxlcihpc29s YXRlLCB6b25lKSwKKysgICAgICBtYXNtXyhuZXcgTWFjcm9Bc3NlbWJsZXIoaXNvbGF0ZSwgQ29k ZU9iamVjdFJlcXVpcmVkOjprWWVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO ZXdBc3NlbWJsZXJCdWZmZXIoa1JlZ0V4cENvZGVTaXplKSkpLAorKyAgICAgIG1vZGVfKG1vZGUp LAorKyAgICAgIG51bV9yZWdpc3RlcnNfKHJlZ2lzdGVyc190b19zYXZlKSwKKysgICAgICBudW1f c2F2ZWRfcmVnaXN0ZXJzXyhyZWdpc3RlcnNfdG9fc2F2ZSksCisrICAgICAgZW50cnlfbGFiZWxf KCksCisrICAgICAgc3RhcnRfbGFiZWxfKCksCisrICAgICAgc3VjY2Vzc19sYWJlbF8oKSwKKysg ICAgICBiYWNrdHJhY2tfbGFiZWxfKCksCisrICAgICAgZXhpdF9sYWJlbF8oKSwKKysgICAgICBp bnRlcm5hbF9mYWlsdXJlX2xhYmVsXygpIHsKKysgIG1hc21fLT5zZXRfcm9vdF9hcnJheV9hdmFp bGFibGUoZmFsc2UpOworKworKyAgRENIRUNLX0VRKDAsIHJlZ2lzdGVyc190b19zYXZlICUgMik7 CisrICBfXyBqbXAoJmVudHJ5X2xhYmVsXyk7ICAvLyBXZSdsbCB3cml0ZSB0aGUgZW50cnkgY29k ZSBsYXRlci4KKysgIC8vIElmIHRoZSBjb2RlIGdldHMgdG9vIGJpZyBvciBjb3JydXB0ZWQsIGFu IGludGVybmFsIGV4Y2VwdGlvbiB3aWxsIGJlCisrICAvLyByYWlzZWQsIGFuZCB3ZSB3aWxsIGV4 aXQgcmlnaHQgYXdheS4KKysgIF9fIGJpbmQoJmludGVybmFsX2ZhaWx1cmVfbGFiZWxfKTsKKysg IF9fIGxpKGEwLCBPcGVyYW5kKEZBSUxVUkUpKTsKKysgIF9fIFJldCgpOworKyAgX18gYmluZCgm c3RhcnRfbGFiZWxfKTsgIC8vIEFuZCB0aGVuIGNvbnRpbnVlIGZyb20gaGVyZS4KKyt9CisrCisr UmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6flJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1YoKSB7 CisrICBkZWxldGUgbWFzbV87CisrICAvLyBVbnVzZSBsYWJlbHMgaW4gY2FzZSB3ZSB0aHJvdyBh d2F5IHRoZSBhc3NlbWJsZXIgd2l0aG91dCBjYWxsaW5nIEdldENvZGUuCisrICBlbnRyeV9sYWJl bF8uVW51c2UoKTsKKysgIHN0YXJ0X2xhYmVsXy5VbnVzZSgpOworKyAgc3VjY2Vzc19sYWJlbF8u VW51c2UoKTsKKysgIGJhY2t0cmFja19sYWJlbF8uVW51c2UoKTsKKysgIGV4aXRfbGFiZWxfLlVu dXNlKCk7CisrICBjaGVja19wcmVlbXB0X2xhYmVsXy5VbnVzZSgpOworKyAgc3RhY2tfb3ZlcmZs b3dfbGFiZWxfLlVudXNlKCk7CisrICBpbnRlcm5hbF9mYWlsdXJlX2xhYmVsXy5VbnVzZSgpOwor K30KKysKKytpbnQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6c3RhY2tfbGltaXRfc2xhY2so KSB7CisrICByZXR1cm4gUmVnRXhwU3RhY2s6OmtTdGFja0xpbWl0U2xhY2s7CisrfQorKworK3Zv aWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6QWR2YW5jZUN1cnJlbnRQb3NpdGlvbihpbnQg YnkpIHsKKysgIGlmIChieSAhPSAwKSB7CisrICAgIF9fIEFkZDY0KGN1cnJlbnRfaW5wdXRfb2Zm c2V0KCksIGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksCisrICAgICAgICAgICAgIE9wZXJhbmQoYnkg KiBjaGFyX3NpemUoKSkpOworKyAgfQorK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVy UklTQ1Y6OkFkdmFuY2VSZWdpc3RlcihpbnQgcmVnLCBpbnQgYnkpIHsKKysgIERDSEVDS19MRSgw LCByZWcpOworKyAgRENIRUNLX0dUKG51bV9yZWdpc3RlcnNfLCByZWcpOworKyAgaWYgKGJ5ICE9 IDApIHsKKysgICAgX18gTGQoYTAsIHJlZ2lzdGVyX2xvY2F0aW9uKHJlZykpOworKyAgICBfXyBB ZGQ2NChhMCwgYTAsIE9wZXJhbmQoYnkpKTsKKysgICAgX18gU2QoYTAsIHJlZ2lzdGVyX2xvY2F0 aW9uKHJlZykpOworKyAgfQorK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6 OkJhY2t0cmFjaygpIHsKKysgIENoZWNrUHJlZW1wdGlvbigpOworKyAgaWYgKGhhc19iYWNrdHJh Y2tfbGltaXQoKSkgeworKyAgICBMYWJlbCBuZXh0OworKyAgICBfXyBMZChhMCwgTWVtT3BlcmFu ZChmcmFtZV9wb2ludGVyKCksIGtCYWNrdHJhY2tDb3VudCkpOworKyAgICBfXyBBZGQ2NChhMCwg YTAsIE9wZXJhbmQoMSkpOworKyAgICBfXyBTZChhMCwgTWVtT3BlcmFuZChmcmFtZV9wb2ludGVy KCksIGtCYWNrdHJhY2tDb3VudCkpOworKyAgICBfXyBCcmFuY2goJm5leHQsIG5lLCBhMCwgT3Bl cmFuZChiYWNrdHJhY2tfbGltaXQoKSkpOworKworKyAgICAvLyBFeGNlZWRlZCBsaW1pdHMgYXJl IHRyZWF0ZWQgYXMgYSBmYWlsZWQgbWF0Y2guCisrICAgIEZhaWwoKTsKKysKKysgICAgX18gYmlu ZCgmbmV4dCk7CisrICB9CisrICAvLyBQb3AgQ29kZSBvZmZzZXQgZnJvbSBiYWNrdHJhY2sgc3Rh Y2ssIGFkZCBDb2RlIGFuZCBqdW1wIHRvIGxvY2F0aW9uLgorKyAgUG9wKGEwKTsKKysgIF9fIEFk ZDY0KGEwLCBhMCwgY29kZV9wb2ludGVyKCkpOworKyAgX18gSnVtcChhMCk7CisrfQorKworK3Zv aWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6QmluZChMYWJlbCogbGFiZWwpIHsgX18gYmlu ZChsYWJlbCk7IH0KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkNoZWNrQ2hh cmFjdGVyKHVpbnQzMl90IGMsIExhYmVsKiBvbl9lcXVhbCkgeworKyAgQnJhbmNoT3JCYWNrdHJh Y2sob25fZXF1YWwsIGVxLCBjdXJyZW50X2NoYXJhY3RlcigpLCBPcGVyYW5kKGMpKTsKKyt9Cisr Cisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpDaGVja0NoYXJhY3RlckdUKHVjMTYg bGltaXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExhYmVsKiBvbl9ncmVhdGVyKSB7CisrICBCcmFuY2hPckJhY2t0cmFjayhvbl9ncmVhdGVyLCBn dCwgY3VycmVudF9jaGFyYWN0ZXIoKSwgT3BlcmFuZChsaW1pdCkpOworK30KKysKKyt2b2lkIFJl Z0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkNoZWNrQXRTdGFydChpbnQgY3Bfb2Zmc2V0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9hdF9z dGFydCkgeworKyAgX18gTGQoYTEsIE1lbU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBrU3RyaW5n U3RhcnRNaW51c09uZSkpOworKyAgX18gQWRkNjQoYTAsIGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCks CisrICAgICAgICAgICBPcGVyYW5kKC1jaGFyX3NpemUoKSArIGNwX29mZnNldCAqIGNoYXJfc2l6 ZSgpKSk7CisrICBCcmFuY2hPckJhY2t0cmFjayhvbl9hdF9zdGFydCwgZXEsIGEwLCBPcGVyYW5k KGExKSk7CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6Q2hlY2tOb3RB dFN0YXJ0KGludCBjcF9vZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGFiZWwqIG9uX25vdF9hdF9zdGFydCkgeworKyAgX18gTGQoYTEsIE1l bU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBrU3RyaW5nU3RhcnRNaW51c09uZSkpOworKyAgX18g QWRkNjQoYTAsIGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksCisrICAgICAgICAgICBPcGVyYW5kKC1j aGFyX3NpemUoKSArIGNwX29mZnNldCAqIGNoYXJfc2l6ZSgpKSk7CisrICBCcmFuY2hPckJhY2t0 cmFjayhvbl9ub3RfYXRfc3RhcnQsIG5lLCBhMCwgT3BlcmFuZChhMSkpOworK30KKysKKyt2b2lk IFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkNoZWNrQ2hhcmFjdGVyTFQodWMxNiBsaW1pdCwg TGFiZWwqIG9uX2xlc3MpIHsKKysgIEJyYW5jaE9yQmFja3RyYWNrKG9uX2xlc3MsIGx0LCBjdXJy ZW50X2NoYXJhY3RlcigpLCBPcGVyYW5kKGxpbWl0KSk7CisrfQorKworK3ZvaWQgUmVnRXhwTWFj cm9Bc3NlbWJsZXJSSVNDVjo6Q2hlY2tHcmVlZHlMb29wKExhYmVsKiBvbl9lcXVhbCkgeworKyAg TGFiZWwgYmFja3RyYWNrX25vbl9lcXVhbDsKKysgIF9fIEx3KGEwLCBNZW1PcGVyYW5kKGJhY2t0 cmFja19zdGFja3BvaW50ZXIoKSwgMCkpOworKyAgX18gQnJhbmNoKCZiYWNrdHJhY2tfbm9uX2Vx dWFsLCBuZSwgY3VycmVudF9pbnB1dF9vZmZzZXQoKSwgT3BlcmFuZChhMCkpOworKyAgX18gQWRk NjQoYmFja3RyYWNrX3N0YWNrcG9pbnRlcigpLCBiYWNrdHJhY2tfc3RhY2twb2ludGVyKCksCisr ICAgICAgICAgICBPcGVyYW5kKGtJbnRTaXplKSk7CisrICBfXyBiaW5kKCZiYWNrdHJhY2tfbm9u X2VxdWFsKTsKKysgIEJyYW5jaE9yQmFja3RyYWNrKG9uX2VxdWFsLCBlcSwgY3VycmVudF9pbnB1 dF9vZmZzZXQoKSwgT3BlcmFuZChhMCkpOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1i bGVyUklTQ1Y6OkNoZWNrTm90QmFja1JlZmVyZW5jZUlnbm9yZUNhc2UoCisrICAgIGludCBzdGFy dF9yZWcsIGJvb2wgcmVhZF9iYWNrd2FyZCwgYm9vbCB1bmljb2RlLCBMYWJlbCogb25fbm9fbWF0 Y2gpIHsKKysgIExhYmVsIGZhbGx0aHJvdWdoOworKyAgX18gTGQoYTAsIHJlZ2lzdGVyX2xvY2F0 aW9uKHN0YXJ0X3JlZykpOyAgICAgIC8vIEluZGV4IG9mIHN0YXJ0IG9mIGNhcHR1cmUuCisrICBf XyBMZChhMSwgcmVnaXN0ZXJfbG9jYXRpb24oc3RhcnRfcmVnICsgMSkpOyAgLy8gSW5kZXggb2Yg ZW5kIG9mIGNhcHR1cmUuCisrICBfXyBTdWI2NChhMSwgYTEsIGEwKTsgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gTGVuZ3RoIG9mIGNhcHR1cmUuCisrCisrICAvLyBBdCB0aGlzIHBvaW50LCB0 aGUgY2FwdHVyZSByZWdpc3RlcnMgYXJlIGVpdGhlciBib3RoIHNldCBvciBib3RoIGNsZWFyZWQu CisrICAvLyBJZiB0aGUgY2FwdHVyZSBsZW5ndGggaXMgemVybywgdGhlbiB0aGUgY2FwdHVyZSBp cyBlaXRoZXIgZW1wdHkgb3IgY2xlYXJlZC4KKysgIC8vIEZhbGwgdGhyb3VnaCBpbiBib3RoIGNh c2VzLgorKyAgX18gQnJhbmNoKCZmYWxsdGhyb3VnaCwgZXEsIGExLCBPcGVyYW5kKHplcm9fcmVn KSk7CisrCisrICBpZiAocmVhZF9iYWNrd2FyZCkgeworKyAgICBfXyBMZCh0MSwgTWVtT3BlcmFu ZChmcmFtZV9wb2ludGVyKCksIGtTdHJpbmdTdGFydE1pbnVzT25lKSk7CisrICAgIF9fIEFkZDY0 KHQxLCB0MSwgYTEpOworKyAgICBCcmFuY2hPckJhY2t0cmFjayhvbl9ub19tYXRjaCwgbGUsIGN1 cnJlbnRfaW5wdXRfb2Zmc2V0KCksIE9wZXJhbmQodDEpKTsKKysgIH0gZWxzZSB7CisrICAgIF9f IEFkZDY0KHQxLCBhMSwgY3VycmVudF9pbnB1dF9vZmZzZXQoKSk7CisrICAgIC8vIENoZWNrIHRo YXQgdGhlcmUgYXJlIGVub3VnaCBjaGFyYWN0ZXJzIGxlZnQgaW4gdGhlIGlucHV0LgorKyAgICBC cmFuY2hPckJhY2t0cmFjayhvbl9ub19tYXRjaCwgZ3QsIHQxLCBPcGVyYW5kKHplcm9fcmVnKSk7 CisrICB9CisrCisrICBpZiAobW9kZV8gPT0gTEFUSU4xKSB7CisrICAgIExhYmVsIHN1Y2Nlc3M7 CisrICAgIExhYmVsIGZhaWw7CisrICAgIExhYmVsIGxvb3BfY2hlY2s7CisrCisrICAgIC8vIGEw IC0gb2Zmc2V0IG9mIHN0YXJ0IG9mIGNhcHR1cmUuCisrICAgIC8vIGExIC0gbGVuZ3RoIG9mIGNh cHR1cmUuCisrICAgIF9fIEFkZDY0KGEwLCBhMCwgT3BlcmFuZChlbmRfb2ZfaW5wdXRfYWRkcmVz cygpKSk7CisrICAgIF9fIEFkZDY0KGEyLCBlbmRfb2ZfaW5wdXRfYWRkcmVzcygpLCBPcGVyYW5k KGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCkpKTsKKysgICAgaWYgKHJlYWRfYmFja3dhcmQpIHsKKysg ICAgICBfXyBTdWI2NChhMiwgYTIsIE9wZXJhbmQoYTEpKTsKKysgICAgfQorKyAgICBfXyBBZGQ2 NChhMSwgYTAsIE9wZXJhbmQoYTEpKTsKKysKKysgICAgLy8gYTAgLSBBZGRyZXNzIG9mIHN0YXJ0 IG9mIGNhcHR1cmUuCisrICAgIC8vIGExIC0gQWRkcmVzcyBvZiBlbmQgb2YgY2FwdHVyZS4KKysg ICAgLy8gYTIgLSBBZGRyZXNzIG9mIGN1cnJlbnQgaW5wdXQgcG9zaXRpb24uCisrCisrICAgIExh YmVsIGxvb3A7CisrICAgIF9fIGJpbmQoJmxvb3ApOworKyAgICBfXyBMYnUoYTMsIE1lbU9wZXJh bmQoYTAsIDApKTsKKysgICAgX18gYWRkaShhMCwgYTAsIGNoYXJfc2l6ZSgpKTsKKysgICAgX18g TGJ1KGE0LCBNZW1PcGVyYW5kKGEyLCAwKSk7CisrICAgIF9fIGFkZGkoYTIsIGEyLCBjaGFyX3Np emUoKSk7CisrCisrICAgIF9fIEJyYW5jaCgmbG9vcF9jaGVjaywgZXEsIGE0LCBPcGVyYW5kKGEz KSk7CisrCisrICAgIC8vIE1pc21hdGNoLCB0cnkgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCAoY29u dmVydGluZyBsZXR0ZXJzIHRvIGxvd2VyLWNhc2UpLgorKyAgICBfXyBPcihhMywgYTMsIE9wZXJh bmQoMHgyMCkpOyAgLy8gQ29udmVydCBjYXB0dXJlIGNoYXJhY3RlciB0byBsb3dlci1jYXNlLgor KyAgICBfXyBPcihhNCwgYTQsIE9wZXJhbmQoMHgyMCkpOyAgLy8gQWxzbyBjb252ZXJ0IGlucHV0 IGNoYXJhY3Rlci4KKysgICAgX18gQnJhbmNoKCZmYWlsLCBuZSwgYTQsIE9wZXJhbmQoYTMpKTsK KysgICAgX18gU3ViNjQoYTMsIGEzLCBPcGVyYW5kKCdhJykpOworKyAgICBfXyBCcmFuY2goJmxv b3BfY2hlY2ssIFVsZXNzX2VxdWFsLCBhMywgT3BlcmFuZCgneicgLSAnYScpKTsKKysgICAgLy8g TGF0aW4tMTogQ2hlY2sgZm9yIHZhbHVlcyBpbiByYW5nZSBbMjI0LDI1NF0gYnV0IG5vdCAyNDcu CisrICAgIF9fIFN1YjY0KGEzLCBhMywgT3BlcmFuZCgyMjQgLSAnYScpKTsKKysgICAgLy8gV2Vy ZW4ndCBMYXRpbi0xIGxldHRlcnMuCisrICAgIF9fIEJyYW5jaCgmZmFpbCwgVWdyZWF0ZXIsIGEz LCBPcGVyYW5kKDI1NCAtIDIyNCkpOworKyAgICAvLyBDaGVjayBmb3IgMjQ3LgorKyAgICBfXyBC cmFuY2goJmZhaWwsIGVxLCBhMywgT3BlcmFuZCgyNDcgLSAyMjQpKTsKKysKKysgICAgX18gYmlu ZCgmbG9vcF9jaGVjayk7CisrICAgIF9fIEJyYW5jaCgmbG9vcCwgbHQsIGEwLCBPcGVyYW5kKGEx KSk7CisrICAgIF9fIGptcCgmc3VjY2Vzcyk7CisrCisrICAgIF9fIGJpbmQoJmZhaWwpOworKyAg ICBHb1RvKG9uX25vX21hdGNoKTsKKysKKysgICAgX18gYmluZCgmc3VjY2Vzcyk7CisrICAgIC8v IENvbXB1dGUgbmV3IHZhbHVlIG9mIGNoYXJhY3RlciBwb3NpdGlvbiBhZnRlciB0aGUgbWF0Y2hl ZCBwYXJ0LgorKyAgICBfXyBTdWI2NChjdXJyZW50X2lucHV0X29mZnNldCgpLCBhMiwgZW5kX29m X2lucHV0X2FkZHJlc3MoKSk7CisrICAgIGlmIChyZWFkX2JhY2t3YXJkKSB7CisrICAgICAgX18g TGQodDEsIHJlZ2lzdGVyX2xvY2F0aW9uKHN0YXJ0X3JlZykpOyAgLy8gSW5kZXggb2Ygc3RhcnQg b2YgY2FwdHVyZS4KKysgICAgICBfXyBMZChhMiwgcmVnaXN0ZXJfbG9jYXRpb24oc3RhcnRfcmVn ICsgMSkpOyAgLy8gSW5kZXggb2YgZW5kIG9mIGNhcHR1cmUuCisrICAgICAgX18gQWRkNjQoY3Vy cmVudF9pbnB1dF9vZmZzZXQoKSwgY3VycmVudF9pbnB1dF9vZmZzZXQoKSwgT3BlcmFuZCh0MSkp OworKyAgICAgIF9fIFN1YjY0KGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksIGN1cnJlbnRfaW5wdXRf b2Zmc2V0KCksIE9wZXJhbmQoYTIpKTsKKysgICAgfQorKyAgfSBlbHNlIHsKKysgICAgRENIRUNL KG1vZGVfID09IFVDMTYpOworKyAgICAvLyBQdXQgcmVnZXhwIGVuZ2luZSByZWdpc3RlcnMgb24g c3RhY2suCisrICAgIFJlZ0xpc3QgcmVnZXhwX3JlZ2lzdGVyc190b19yZXRhaW4gPSBjdXJyZW50 X2lucHV0X29mZnNldCgpLmJpdCgpIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGN1cnJlbnRfY2hhcmFjdGVyKCkuYml0KCkgfAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmFja3RyYWNrX3N0YWNrcG9pbnRlcigpLmJpdCgpOwor KyAgICBfXyBNdWx0aVB1c2gocmVnZXhwX3JlZ2lzdGVyc190b19yZXRhaW4pOworKworKyAgICBp bnQgYXJndW1lbnRfY291bnQgPSA0OworKyAgICBfXyBQcmVwYXJlQ2FsbENGdW5jdGlvbihhcmd1 bWVudF9jb3VudCwgYTIpOworKworKyAgICAvLyBhMCAtIG9mZnNldCBvZiBzdGFydCBvZiBjYXB0 dXJlLgorKyAgICAvLyBhMSAtIGxlbmd0aCBvZiBjYXB0dXJlLgorKworKyAgICAvLyBQdXQgYXJn dW1lbnRzIGludG8gYXJndW1lbnRzIHJlZ2lzdGVycy4KKysgICAgLy8gUGFyYW1ldGVycyBhcmUK KysgICAgLy8gICBhMDogQWRkcmVzcyBieXRlX29mZnNldDEgLSBBZGRyZXNzIGNhcHR1cmVkIHN1 YnN0cmluZydzIHN0YXJ0LgorKyAgICAvLyAgIGExOiBBZGRyZXNzIGJ5dGVfb2Zmc2V0MiAtIEFk ZHJlc3Mgb2YgY3VycmVudCBjaGFyYWN0ZXIgcG9zaXRpb24uCisrICAgIC8vICAgYTI6IHNpemVf dCBieXRlX2xlbmd0aCAtIGxlbmd0aCBvZiBjYXB0dXJlIGluIGJ5dGVzKCEpLgorKyAgICAvLyAg IGEzOiBJc29sYXRlKiBpc29sYXRlLgorKworKyAgICAvLyBBZGRyZXNzIG9mIHN0YXJ0IG9mIGNh cHR1cmUuCisrICAgIF9fIEFkZDY0KGEwLCBhMCwgT3BlcmFuZChlbmRfb2ZfaW5wdXRfYWRkcmVz cygpKSk7CisrICAgIC8vIExlbmd0aCBvZiBjYXB0dXJlLgorKyAgICBfXyBtdihhMiwgYTEpOwor KyAgICAvLyBTYXZlIGxlbmd0aCBpbiBjYWxsZWUtc2F2ZSByZWdpc3RlciBmb3IgdXNlIG9uIHJl dHVybi4KKysgICAgX18gbXYoczMsIGExKTsKKysgICAgLy8gQWRkcmVzcyBvZiBjdXJyZW50IGlu cHV0IHBvc2l0aW9uLgorKyAgICBfXyBBZGQ2NChhMSwgY3VycmVudF9pbnB1dF9vZmZzZXQoKSwg T3BlcmFuZChlbmRfb2ZfaW5wdXRfYWRkcmVzcygpKSk7CisrICAgIGlmIChyZWFkX2JhY2t3YXJk KSB7CisrICAgICAgX18gU3ViNjQoYTEsIGExLCBPcGVyYW5kKHMzKSk7CisrICAgIH0KKysgICAg Ly8gSXNvbGF0ZS4KKysgICAgX18gbGkoYTMsIE9wZXJhbmQoRXh0ZXJuYWxSZWZlcmVuY2U6Omlz b2xhdGVfYWRkcmVzcyhtYXNtXy0+aXNvbGF0ZSgpKSkpOworKworKyAgICB7CisrICAgICAgQWxs b3dFeHRlcm5hbENhbGxUaGF0Q2FudENhdXNlR0Mgc2NvcGUobWFzbV8pOworKyAgICAgIEV4dGVy bmFsUmVmZXJlbmNlIGZ1bmN0aW9uID0KKysgICAgICAgICAgdW5pY29kZSA/IEV4dGVybmFsUmVm ZXJlbmNlOjpyZV9jYXNlX2luc2Vuc2l0aXZlX2NvbXBhcmVfdW5pY29kZSgKKysgICAgICAgICAg ICAgICAgICAgICAgICBpc29sYXRlKCkpCisrICAgICAgICAgICAgICAgICAgOiBFeHRlcm5hbFJl ZmVyZW5jZTo6cmVfY2FzZV9pbnNlbnNpdGl2ZV9jb21wYXJlX25vbl91bmljb2RlKAorKyAgICAg ICAgICAgICAgICAgICAgICAgIGlzb2xhdGUoKSk7CisrICAgICAgX18gQ2FsbENGdW5jdGlvbihm dW5jdGlvbiwgYXJndW1lbnRfY291bnQpOworKyAgICB9CisrCisrICAgIC8vIFJlc3RvcmUgcmVn ZXhwIGVuZ2luZSByZWdpc3RlcnMuCisrICAgIF9fIE11bHRpUG9wKHJlZ2V4cF9yZWdpc3RlcnNf dG9fcmV0YWluKTsKKysgICAgX18gbGkoY29kZV9wb2ludGVyKCksIE9wZXJhbmQobWFzbV8tPkNv ZGVPYmplY3QoKSksIENPTlNUQU5UX1NJWkUpOworKyAgICBfXyBMZChlbmRfb2ZfaW5wdXRfYWRk cmVzcygpLCBNZW1PcGVyYW5kKGZyYW1lX3BvaW50ZXIoKSwga0lucHV0RW5kKSk7CisrCisrICAg IC8vIENoZWNrIGlmIGZ1bmN0aW9uIHJldHVybmVkIG5vbi16ZXJvIGZvciBzdWNjZXNzIG9yIHpl cm8gZm9yIGZhaWx1cmUuCisrICAgIEJyYW5jaE9yQmFja3RyYWNrKG9uX25vX21hdGNoLCBlcSwg YTAsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgLy8gT24gc3VjY2VzcywgaW5jcmVtZW50IHBv c2l0aW9uIGJ5IGxlbmd0aCBvZiBjYXB0dXJlLgorKyAgICBpZiAocmVhZF9iYWNrd2FyZCkgewor KyAgICAgIF9fIFN1YjY0KGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksIGN1cnJlbnRfaW5wdXRfb2Zm c2V0KCksIE9wZXJhbmQoczMpKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBfXyBBZGQ2NChjdXJy ZW50X2lucHV0X29mZnNldCgpLCBjdXJyZW50X2lucHV0X29mZnNldCgpLCBPcGVyYW5kKHMzKSk7 CisrICAgIH0KKysgIH0KKysKKysgIF9fIGJpbmQoJmZhbGx0aHJvdWdoKTsKKyt9CisrCisrdm9p ZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpDaGVja05vdEJhY2tSZWZlcmVuY2UoaW50IHN0 YXJ0X3JlZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIHJlYWRfYmFja3dhcmQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIG9uX25vX21hdGNoKSB7CisrICBMYWJl bCBmYWxsdGhyb3VnaDsKKysKKysgIC8vIEZpbmQgbGVuZ3RoIG9mIGJhY2stcmVmZXJlbmNlZCBj YXB0dXJlLgorKyAgX18gTGQoYTAsIHJlZ2lzdGVyX2xvY2F0aW9uKHN0YXJ0X3JlZykpOworKyAg X18gTGQoYTEsIHJlZ2lzdGVyX2xvY2F0aW9uKHN0YXJ0X3JlZyArIDEpKTsKKysgIF9fIFN1YjY0 KGExLCBhMSwgYTApOyAgLy8gTGVuZ3RoIHRvIGNoZWNrLgorKworKyAgLy8gQXQgdGhpcyBwb2lu dCwgdGhlIGNhcHR1cmUgcmVnaXN0ZXJzIGFyZSBlaXRoZXIgYm90aCBzZXQgb3IgYm90aCBjbGVh cmVkLgorKyAgLy8gSWYgdGhlIGNhcHR1cmUgbGVuZ3RoIGlzIHplcm8sIHRoZW4gdGhlIGNhcHR1 cmUgaXMgZWl0aGVyIGVtcHR5IG9yIGNsZWFyZWQuCisrICAvLyBGYWxsIHRocm91Z2ggaW4gYm90 aCBjYXNlcy4KKysgIF9fIEJyYW5jaCgmZmFsbHRocm91Z2gsIGVxLCBhMSwgT3BlcmFuZCh6ZXJv X3JlZykpOworKworKyAgaWYgKHJlYWRfYmFja3dhcmQpIHsKKysgICAgX18gTGQodDEsIE1lbU9w ZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBrU3RyaW5nU3RhcnRNaW51c09uZSkpOworKyAgICBfXyBB ZGQ2NCh0MSwgdDEsIGExKTsKKysgICAgQnJhbmNoT3JCYWNrdHJhY2sob25fbm9fbWF0Y2gsIGxl LCBjdXJyZW50X2lucHV0X29mZnNldCgpLCBPcGVyYW5kKHQxKSk7CisrICB9IGVsc2UgeworKyAg ICBfXyBBZGQ2NCh0MSwgYTEsIGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCkpOworKyAgICAvLyBDaGVj ayB0aGF0IHRoZXJlIGFyZSBlbm91Z2ggY2hhcmFjdGVycyBsZWZ0IGluIHRoZSBpbnB1dC4KKysg ICAgQnJhbmNoT3JCYWNrdHJhY2sob25fbm9fbWF0Y2gsIGd0LCB0MSwgT3BlcmFuZCh6ZXJvX3Jl ZykpOworKyAgfQorKworKyAgLy8gQ29tcHV0ZSBwb2ludGVycyB0byBtYXRjaCBzdHJpbmcgYW5k IGNhcHR1cmUgc3RyaW5nLgorKyAgX18gQWRkNjQoYTAsIGEwLCBPcGVyYW5kKGVuZF9vZl9pbnB1 dF9hZGRyZXNzKCkpKTsKKysgIF9fIEFkZDY0KGEyLCBlbmRfb2ZfaW5wdXRfYWRkcmVzcygpLCBP cGVyYW5kKGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCkpKTsKKysgIGlmIChyZWFkX2JhY2t3YXJkKSB7 CisrICAgIF9fIFN1YjY0KGEyLCBhMiwgT3BlcmFuZChhMSkpOworKyAgfQorKyAgX18gQWRkNjQo YTEsIGExLCBPcGVyYW5kKGEwKSk7CisrCisrICBMYWJlbCBsb29wOworKyAgX18gYmluZCgmbG9v cCk7CisrICBpZiAobW9kZV8gPT0gTEFUSU4xKSB7CisrICAgIF9fIExidShhMywgTWVtT3BlcmFu ZChhMCwgMCkpOworKyAgICBfXyBhZGRpKGEwLCBhMCwgY2hhcl9zaXplKCkpOworKyAgICBfXyBM YnUoYTQsIE1lbU9wZXJhbmQoYTIsIDApKTsKKysgICAgX18gYWRkaShhMiwgYTIsIGNoYXJfc2l6 ZSgpKTsKKysgIH0gZWxzZSB7CisrICAgIERDSEVDSyhtb2RlXyA9PSBVQzE2KTsKKysgICAgX18g TGh1KGEzLCBNZW1PcGVyYW5kKGEwLCAwKSk7CisrICAgIF9fIGFkZGkoYTAsIGEwLCBjaGFyX3Np emUoKSk7CisrICAgIF9fIExodShhNCwgTWVtT3BlcmFuZChhMiwgMCkpOworKyAgICBfXyBhZGRp KGEyLCBhMiwgY2hhcl9zaXplKCkpOworKyAgfQorKyAgQnJhbmNoT3JCYWNrdHJhY2sob25fbm9f bWF0Y2gsIG5lLCBhMywgT3BlcmFuZChhNCkpOworKyAgX18gQnJhbmNoKCZsb29wLCBsdCwgYTAs IE9wZXJhbmQoYTEpKTsKKysKKysgIC8vIE1vdmUgY3VycmVudCBjaGFyYWN0ZXIgcG9zaXRpb24g dG8gcG9zaXRpb24gYWZ0ZXIgbWF0Y2guCisrICBfXyBTdWI2NChjdXJyZW50X2lucHV0X29mZnNl dCgpLCBhMiwgZW5kX29mX2lucHV0X2FkZHJlc3MoKSk7CisrICBpZiAocmVhZF9iYWNrd2FyZCkg eworKyAgICBfXyBMZCh0MSwgcmVnaXN0ZXJfbG9jYXRpb24oc3RhcnRfcmVnKSk7ICAgICAgLy8g SW5kZXggb2Ygc3RhcnQgb2YgY2FwdHVyZS4KKysgICAgX18gTGQoYTIsIHJlZ2lzdGVyX2xvY2F0 aW9uKHN0YXJ0X3JlZyArIDEpKTsgIC8vIEluZGV4IG9mIGVuZCBvZiBjYXB0dXJlLgorKyAgICBf XyBBZGQ2NChjdXJyZW50X2lucHV0X29mZnNldCgpLCBjdXJyZW50X2lucHV0X29mZnNldCgpLCBP cGVyYW5kKHQxKSk7CisrICAgIF9fIFN1YjY0KGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksIGN1cnJl bnRfaW5wdXRfb2Zmc2V0KCksIE9wZXJhbmQoYTIpKTsKKysgIH0KKysgIF9fIGJpbmQoJmZhbGx0 aHJvdWdoKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpDaGVja05v dENoYXJhY3Rlcih1aW50MzJfdCBjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGFiZWwqIG9uX25vdF9lcXVhbCkgeworKyAgQnJhbmNoT3JCYWNr dHJhY2sob25fbm90X2VxdWFsLCBuZSwgY3VycmVudF9jaGFyYWN0ZXIoKSwgT3BlcmFuZChjKSk7 CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6Q2hlY2tDaGFyYWN0ZXJB ZnRlckFuZCh1aW50MzJfdCBjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXNrLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogb25fZXF1YWwpIHsKKysg IF9fIEFuZChhMCwgY3VycmVudF9jaGFyYWN0ZXIoKSwgT3BlcmFuZChtYXNrKSk7CisrICBPcGVy YW5kIHJocyA9IChjID09IDApID8gT3BlcmFuZCh6ZXJvX3JlZykgOiBPcGVyYW5kKGMpOworKyAg QnJhbmNoT3JCYWNrdHJhY2sob25fZXF1YWwsIGVxLCBhMCwgcmhzKTsKKyt9CisrCisrdm9pZCBS ZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpDaGVja05vdENoYXJhY3RlckFmdGVyQW5kKHVpbnQz Ml90IGMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IG1hc2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9ub3RfZXF1YWwpIHsKKysgIF9f IEFuZChhMCwgY3VycmVudF9jaGFyYWN0ZXIoKSwgT3BlcmFuZChtYXNrKSk7CisrICBPcGVyYW5k IHJocyA9IChjID09IDApID8gT3BlcmFuZCh6ZXJvX3JlZykgOiBPcGVyYW5kKGMpOworKyAgQnJh bmNoT3JCYWNrdHJhY2sob25fbm90X2VxdWFsLCBuZSwgYTAsIHJocyk7CisrfQorKworK3ZvaWQg UmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6Q2hlY2tOb3RDaGFyYWN0ZXJBZnRlck1pbnVzQW5k KAorKyAgICB1YzE2IGMsIHVjMTYgbWludXMsIHVjMTYgbWFzaywgTGFiZWwqIG9uX25vdF9lcXVh bCkgeworKyAgRENIRUNLX0dUKFN0cmluZzo6a01heFV0ZjE2Q29kZVVuaXQsIG1pbnVzKTsKKysg IF9fIFN1YjY0KGEwLCBjdXJyZW50X2NoYXJhY3RlcigpLCBPcGVyYW5kKG1pbnVzKSk7CisrICBf XyBBbmQoYTAsIGEwLCBPcGVyYW5kKG1hc2spKTsKKysgIEJyYW5jaE9yQmFja3RyYWNrKG9uX25v dF9lcXVhbCwgbmUsIGEwLCBPcGVyYW5kKGMpKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fz c2VtYmxlclJJU0NWOjpDaGVja0NoYXJhY3RlckluUmFuZ2UodWMxNiBmcm9tLCB1YzE2IHRvLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBvbl9pbl9yYW5nZSkgeworKyAgX18gU3ViNjQoYTAsIGN1cnJlbnRfY2hhcmFjdGVyKCks IE9wZXJhbmQoZnJvbSkpOworKyAgLy8gVW5zaWduZWQgbG93ZXItb3Itc2FtZSBjb25kaXRpb24u CisrICBCcmFuY2hPckJhY2t0cmFjayhvbl9pbl9yYW5nZSwgVWxlc3NfZXF1YWwsIGEwLCBPcGVy YW5kKHRvIC0gZnJvbSkpOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6 OkNoZWNrQ2hhcmFjdGVyTm90SW5SYW5nZSgKKysgICAgdWMxNiBmcm9tLCB1YzE2IHRvLCBMYWJl bCogb25fbm90X2luX3JhbmdlKSB7CisrICBfXyBTdWI2NChhMCwgY3VycmVudF9jaGFyYWN0ZXIo KSwgT3BlcmFuZChmcm9tKSk7CisrICAvLyBVbnNpZ25lZCBoaWdoZXIgY29uZGl0aW9uLgorKyAg QnJhbmNoT3JCYWNrdHJhY2sob25fbm90X2luX3JhbmdlLCBVZ3JlYXRlciwgYTAsIE9wZXJhbmQo dG8gLSBmcm9tKSk7CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6Q2hl Y2tCaXRJblRhYmxlKEhhbmRsZTxCeXRlQXJyYXk+IHRhYmxlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9iaXRfc2V0KSB7CisrICBf XyBsaShhMCwgT3BlcmFuZCh0YWJsZSkpOworKyAgaWYgKG1vZGVfICE9IExBVElOMSB8fCBrVGFi bGVNYXNrICE9IFN0cmluZzo6a01heE9uZUJ5dGVDaGFyQ29kZSkgeworKyAgICBfXyBBbmQoYTEs IGN1cnJlbnRfY2hhcmFjdGVyKCksIE9wZXJhbmQoa1RhYmxlU2l6ZSAtIDEpKTsKKysgICAgX18g QWRkNjQoYTAsIGEwLCBhMSk7CisrICB9IGVsc2UgeworKyAgICBfXyBBZGQ2NChhMCwgYTAsIGN1 cnJlbnRfY2hhcmFjdGVyKCkpOworKyAgfQorKworKyAgX18gTGJ1KGEwLCBGaWVsZE1lbU9wZXJh bmQoYTAsIEJ5dGVBcnJheTo6a0hlYWRlclNpemUpKTsKKysgIEJyYW5jaE9yQmFja3RyYWNrKG9u X2JpdF9zZXQsIG5lLCBhMCwgT3BlcmFuZCh6ZXJvX3JlZykpOworK30KKysKKytib29sIFJlZ0V4 cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkNoZWNrU3BlY2lhbENoYXJhY3RlckNsYXNzKHVjMTYgdHlw ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhYmVsKiBvbl9ub19tYXRjaCkgeworKyAgLy8gUmFuZ2UgY2hlY2tzIChjIGluIG1p bi4ubWF4KSBhcmUgZ2VuZXJhbGx5IGltcGxlbWVudGVkIGJ5IGFuIHVuc2lnbmVkCisrICAvLyAo YyAtIG1pbikgPD0gKG1heCAtIG1pbikgY2hlY2suCisrICBzd2l0Y2ggKHR5cGUpIHsKKysgICAg Y2FzZSAncyc6CisrICAgICAgLy8gTWF0Y2ggc3BhY2UtY2hhcmFjdGVycy4KKysgICAgICBpZiAo bW9kZV8gPT0gTEFUSU4xKSB7CisrICAgICAgICAvLyBPbmUgYnl0ZSBzcGFjZSBjaGFyYWN0ZXJz IGFyZSAnXHQnLi4nXHInLCAnICcgYW5kIFx1MDBhMC4KKysgICAgICAgIExhYmVsIHN1Y2Nlc3M7 CisrICAgICAgICBfXyBCcmFuY2goJnN1Y2Nlc3MsIGVxLCBjdXJyZW50X2NoYXJhY3RlcigpLCBP cGVyYW5kKCcgJykpOworKyAgICAgICAgLy8gQ2hlY2sgcmFuZ2UgMHgwOS4uMHgwRC4KKysgICAg ICAgIF9fIFN1YjY0KGEwLCBjdXJyZW50X2NoYXJhY3RlcigpLCBPcGVyYW5kKCdcdCcpKTsKKysg ICAgICAgIF9fIEJyYW5jaCgmc3VjY2VzcywgVWxlc3NfZXF1YWwsIGEwLCBPcGVyYW5kKCdccicg LSAnXHQnKSk7CisrICAgICAgICAvLyBcdTAwYTAgKE5CU1ApLgorKyAgICAgICAgQnJhbmNoT3JC YWNrdHJhY2sob25fbm9fbWF0Y2gsIG5lLCBhMCwgT3BlcmFuZCgweDAwQTAgLSAnXHQnKSk7Cisr ICAgICAgICBfXyBiaW5kKCZzdWNjZXNzKTsKKysgICAgICAgIHJldHVybiB0cnVlOworKyAgICAg IH0KKysgICAgICByZXR1cm4gZmFsc2U7CisrICAgIGNhc2UgJ1MnOgorKyAgICAgIC8vIFRoZSBl bWl0dGVkIGNvZGUgZm9yIGdlbmVyaWMgY2hhcmFjdGVyIGNsYXNzZXMgaXMgZ29vZCBlbm91Z2gu CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICBjYXNlICdkJzoKKysgICAgICAvLyBNYXRjaCBM YXRpbjEgZGlnaXRzICgnMCcuLic5JykuCisrICAgICAgX18gU3ViNjQoYTAsIGN1cnJlbnRfY2hh cmFjdGVyKCksIE9wZXJhbmQoJzAnKSk7CisrICAgICAgQnJhbmNoT3JCYWNrdHJhY2sob25fbm9f bWF0Y2gsIFVncmVhdGVyLCBhMCwgT3BlcmFuZCgnOScgLSAnMCcpKTsKKysgICAgICByZXR1cm4g dHJ1ZTsKKysgICAgY2FzZSAnRCc6CisrICAgICAgLy8gTWF0Y2ggbm9uIExhdGluMS1kaWdpdHMu CisrICAgICAgX18gU3ViNjQoYTAsIGN1cnJlbnRfY2hhcmFjdGVyKCksIE9wZXJhbmQoJzAnKSk7 CisrICAgICAgQnJhbmNoT3JCYWNrdHJhY2sob25fbm9fbWF0Y2gsIFVsZXNzX2VxdWFsLCBhMCwg T3BlcmFuZCgnOScgLSAnMCcpKTsKKysgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgY2FzZSAnLic6 IHsKKysgICAgICAvLyBNYXRjaCBub24tbmV3bGluZXMgKG5vdCAweDBBKCdcbicpLCAweDBEKCdc cicpLCAweDIwMjggYW5kIDB4MjAyOSkuCisrICAgICAgX18gWG9yKGEwLCBjdXJyZW50X2NoYXJh Y3RlcigpLCBPcGVyYW5kKDB4MDEpKTsKKysgICAgICAvLyBTZWUgaWYgY3VycmVudCBjaGFyYWN0 ZXIgaXMgJ1xuJ14xIG9yICdccideMSwgaS5lLiwgMHgwQiBvciAweDBDLgorKyAgICAgIF9fIFN1 YjY0KGEwLCBhMCwgT3BlcmFuZCgweDBCKSk7CisrICAgICAgQnJhbmNoT3JCYWNrdHJhY2sob25f bm9fbWF0Y2gsIFVsZXNzX2VxdWFsLCBhMCwgT3BlcmFuZCgweDBDIC0gMHgwQikpOworKyAgICAg IGlmIChtb2RlXyA9PSBVQzE2KSB7CisrICAgICAgICAvLyBDb21wYXJlIG9yaWdpbmFsIHZhbHVl IHRvIDB4MjAyOCBhbmQgMHgyMDI5LCB1c2luZyB0aGUgYWxyZWFkeQorKyAgICAgICAgLy8gY29t cHV0ZWQgKGN1cnJlbnRfY2hhciBeIDB4MDEgLSAweDBCKS4gSS5lLiwgY2hlY2sgZm9yCisrICAg ICAgICAvLyAweDIwMUQgKDB4MjAyOCAtIDB4MEIpIG9yIDB4MjAxRS4KKysgICAgICAgIF9fIFN1 YjY0KGEwLCBhMCwgT3BlcmFuZCgweDIwMjggLSAweDBCKSk7CisrICAgICAgICBCcmFuY2hPckJh Y2t0cmFjayhvbl9ub19tYXRjaCwgVWxlc3NfZXF1YWwsIGEwLCBPcGVyYW5kKDEpKTsKKysgICAg ICB9CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0KKysgICAgY2FzZSAnbic6IHsKKysgICAg ICAvLyBNYXRjaCBuZXdsaW5lcyAoMHgwQSgnXG4nKSwgMHgwRCgnXHInKSwgMHgyMDI4IGFuZCAw eDIwMjkpLgorKyAgICAgIF9fIFhvcihhMCwgY3VycmVudF9jaGFyYWN0ZXIoKSwgT3BlcmFuZCgw eDAxKSk7CisrICAgICAgLy8gU2VlIGlmIGN1cnJlbnQgY2hhcmFjdGVyIGlzICdcbideMSBvciAn XHInXjEsIGkuZS4sIDB4MEIgb3IgMHgwQy4KKysgICAgICBfXyBTdWI2NChhMCwgYTAsIE9wZXJh bmQoMHgwQikpOworKyAgICAgIGlmIChtb2RlXyA9PSBMQVRJTjEpIHsKKysgICAgICAgIEJyYW5j aE9yQmFja3RyYWNrKG9uX25vX21hdGNoLCBVZ3JlYXRlciwgYTAsIE9wZXJhbmQoMHgwQyAtIDB4 MEIpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgTGFiZWwgZG9uZTsKKysgICAgICAgIEJy YW5jaE9yQmFja3RyYWNrKCZkb25lLCBVbGVzc19lcXVhbCwgYTAsIE9wZXJhbmQoMHgwQyAtIDB4 MEIpKTsKKysgICAgICAgIC8vIENvbXBhcmUgb3JpZ2luYWwgdmFsdWUgdG8gMHgyMDI4IGFuZCAw eDIwMjksIHVzaW5nIHRoZSBhbHJlYWR5CisrICAgICAgICAvLyBjb21wdXRlZCAoY3VycmVudF9j aGFyIF4gMHgwMSAtIDB4MEIpLiBJLmUuLCBjaGVjayBmb3IKKysgICAgICAgIC8vIDB4MjAxRCAo MHgyMDI4IC0gMHgwQikgb3IgMHgyMDFFLgorKyAgICAgICAgX18gU3ViNjQoYTAsIGEwLCBPcGVy YW5kKDB4MjAyOCAtIDB4MEIpKTsKKysgICAgICAgIEJyYW5jaE9yQmFja3RyYWNrKG9uX25vX21h dGNoLCBVZ3JlYXRlciwgYTAsIE9wZXJhbmQoMSkpOworKyAgICAgICAgX18gYmluZCgmZG9uZSk7 CisrICAgICAgfQorKyAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrICAgIGNhc2UgJ3cnOiB7 CisrICAgICAgaWYgKG1vZGVfICE9IExBVElOMSkgeworKyAgICAgICAgLy8gVGFibGUgaXMgMjU2 IGVudHJpZXMsIHNvIGFsbCBMYXRpbjEgY2hhcmFjdGVycyBjYW4gYmUgdGVzdGVkLgorKyAgICAg ICAgQnJhbmNoT3JCYWNrdHJhY2sob25fbm9fbWF0Y2gsIFVncmVhdGVyLCBjdXJyZW50X2NoYXJh Y3RlcigpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmFuZCgneicpKTsKKysgICAg ICB9CisrICAgICAgRXh0ZXJuYWxSZWZlcmVuY2UgbWFwID0KKysgICAgICAgICAgRXh0ZXJuYWxS ZWZlcmVuY2U6OnJlX3dvcmRfY2hhcmFjdGVyX21hcChpc29sYXRlKCkpOworKyAgICAgIF9fIGxp KGEwLCBPcGVyYW5kKG1hcCkpOworKyAgICAgIF9fIEFkZDY0KGEwLCBhMCwgY3VycmVudF9jaGFy YWN0ZXIoKSk7CisrICAgICAgX18gTGJ1KGEwLCBNZW1PcGVyYW5kKGEwLCAwKSk7CisrICAgICAg QnJhbmNoT3JCYWNrdHJhY2sob25fbm9fbWF0Y2gsIGVxLCBhMCwgT3BlcmFuZCh6ZXJvX3JlZykp OworKyAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrICAgIGNhc2UgJ1cnOiB7CisrICAgICAg TGFiZWwgZG9uZTsKKysgICAgICBpZiAobW9kZV8gIT0gTEFUSU4xKSB7CisrICAgICAgICAvLyBU YWJsZSBpcyAyNTYgZW50cmllcywgc28gYWxsIExhdGluMSBjaGFyYWN0ZXJzIGNhbiBiZSB0ZXN0 ZWQuCisrICAgICAgICBfXyBCcmFuY2goJmRvbmUsIFVncmVhdGVyLCBjdXJyZW50X2NoYXJhY3Rl cigpLCBPcGVyYW5kKCd6JykpOworKyAgICAgIH0KKysgICAgICBFeHRlcm5hbFJlZmVyZW5jZSBt YXAgPQorKyAgICAgICAgICBFeHRlcm5hbFJlZmVyZW5jZTo6cmVfd29yZF9jaGFyYWN0ZXJfbWFw KGlzb2xhdGUoKSk7CisrICAgICAgX18gbGkoYTAsIE9wZXJhbmQobWFwKSk7CisrICAgICAgX18g QWRkNjQoYTAsIGEwLCBjdXJyZW50X2NoYXJhY3RlcigpKTsKKysgICAgICBfXyBMYnUoYTAsIE1l bU9wZXJhbmQoYTAsIDApKTsKKysgICAgICBCcmFuY2hPckJhY2t0cmFjayhvbl9ub19tYXRjaCwg bmUsIGEwLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrICAgICAgaWYgKG1vZGVfICE9IExBVElOMSkg eworKyAgICAgICAgX18gYmluZCgmZG9uZSk7CisrICAgICAgfQorKyAgICAgIHJldHVybiB0cnVl OworKyAgICB9CisrICAgIGNhc2UgJyonOgorKyAgICAgIC8vIE1hdGNoIGFueSBjaGFyYWN0ZXIu CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIC8vIE5vIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiAo eWV0KTogcyhVQzE2KSwgUyhVQzE2KS4KKysgICAgZGVmYXVsdDoKKysgICAgICByZXR1cm4gZmFs c2U7CisrICB9CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6RmFpbCgp IHsKKysgIF9fIGxpKGEwLCBPcGVyYW5kKEZBSUxVUkUpKTsKKysgIF9fIGptcCgmZXhpdF9sYWJl bF8pOworK30KKysKKytIYW5kbGU8SGVhcE9iamVjdD4gUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVND Vjo6R2V0Q29kZShIYW5kbGU8U3RyaW5nPiBzb3VyY2UpIHsKKysgIExhYmVsIHJldHVybl9hMDsK KysgIGlmIChtYXNtXy0+aGFzX2V4Y2VwdGlvbigpKSB7CisrICAgIC8vIElmIHRoZSBjb2RlIGdl dHMgY29ycnVwdGVkIGR1ZSB0byBsb25nIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYW5kIGxhY2sgb2YK KysgICAgLy8gc3BhY2Ugb24gdHJhbXBvbGluZXMsIGFuIGludGVybmFsIGV4Y2VwdGlvbiBmbGFn IGlzIHNldC4gSWYgdGhpcyBjYXNlCisrICAgIC8vIGlzIGRldGVjdGVkLCB3ZSB3aWxsIGp1bXAg aW50byBleGl0IHNlcXVlbmNlIHJpZ2h0IGF3YXkuCisrICAgIF9fIGJpbmRfdG8oJmVudHJ5X2xh YmVsXywgaW50ZXJuYWxfZmFpbHVyZV9sYWJlbF8ucG9zKCkpOworKyAgfSBlbHNlIHsKKysgICAg Ly8gRmluYWxpemUgY29kZSAtIHdyaXRlIHRoZSBlbnRyeSBwb2ludCBjb2RlIG5vdyB3ZSBrbm93 IGhvdyBtYW55CisrICAgIC8vIHJlZ2lzdGVycyB3ZSBuZWVkLgorKworKyAgICAvLyBFbnRyeSBj b2RlOgorKyAgICBfXyBiaW5kKCZlbnRyeV9sYWJlbF8pOworKworKyAgICAvLyBUZWxsIHRoZSBz eXN0ZW0gdGhhdCB3ZSBoYXZlIGEgc3RhY2sgZnJhbWUuICBCZWNhdXNlIHRoZSB0eXBlIGlzIE1B TlVBTCwKKysgICAgLy8gbm8gaXMgZ2VuZXJhdGVkLgorKyAgICBGcmFtZVNjb3BlIHNjb3BlKG1h c21fLCBTdGFja0ZyYW1lOjpNQU5VQUwpOworKworKyAgICAvLyBBY3R1YWxseSBlbWl0IGNvZGUg dG8gc3RhcnQgYSBuZXcgc3RhY2sgZnJhbWUuCisrICAgIC8vIFB1c2ggYXJndW1lbnRzCisrICAg IC8vIFNhdmUgY2FsbGVlLXNhdmUgcmVnaXN0ZXJzLgorKyAgICAvLyBTdGFydCBuZXcgc3RhY2sg ZnJhbWUuCisrICAgIC8vIFN0b3JlIGxpbmsgcmVnaXN0ZXIgaW4gZXhpc3Rpbmcgc3RhY2stY2Vs bC4KKysgICAgLy8gT3JkZXIgaGVyZSBzaG91bGQgY29ycmVzcG9uZCB0byBvcmRlciBvZiBvZmZz ZXQgY29uc3RhbnRzIGluIGhlYWRlciBmaWxlLgorKyAgICAvLyBUT0RPKHBsaW5kKTogd2Ugc2F2 ZSBmcC4uczExLCBidXQgT05MWSB1c2UgczMgaGVyZSAtIHVzZSB0aGUgcmVncworKyAgICAvLyBv ciBkb250IHNhdmUuCisrICAgIC8vCisrICAgIC8vIEZJWE1FIChSSVNDVik6IGhvdyBhYm91dCBz YXZpbmcgb25seSBzKnJlZ2lzdGVycyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkPworKyAgICBSZWdM aXN0IHJlZ2lzdGVyc190b19yZXRhaW4gPQorKyAgICAgICAgZnAuYml0KCkgfCBzMS5iaXQoKSB8 IHMyLmJpdCgpIHwgczMuYml0KCkgfCBzNC5iaXQoKSB8IHM1LmJpdCgpIHwKKysgICAgICAgIHM2 LmJpdCgpIHwgczcuYml0KCkgfCBzOC5iaXQoKSAvKnwgczkuYml0KCkgfCBzMTAuYml0KCkgfCBz MTEuYml0KCkqLzsKKysgICAgRENIRUNLKE51bVJlZ3MocmVnaXN0ZXJzX3RvX3JldGFpbikgPT0g a051bUNhbGxlZVJlZ3NUb1JldGFpbik7CisrCisrICAgIC8vIFRoZSByZW1haW5pbmcgYXJndW1l bnRzIGFyZSBwYXNzZWQgaW4gcmVnaXN0ZXJzLCBlLmcuYnkgY2FsbGluZyB0aGUgY29kZQorKyAg ICAvLyBlbnRyeSBhcyBjYXN0IHRvIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2lnbmF0dXJlOgorKyAg ICAvLworKyAgICAvLyAqaW50KCptYXRjaCkoU3RyaW5nIGlucHV0X3N0cmluZywgICAgICAvLyBh MAorKyAgICAvLyAgICAgICAgICAgICBpbnQgc3RhcnRfaW5kZXgsICAgICAgICAgICAvLyBhMQor KyAgICAvLyAgICAgICAgICAgICBBZGRyZXNzIHN0YXJ0LCAgICAgICAgICAgICAvLyBhMgorKyAg ICAvLyAgICAgICAgICAgICBBZGRyZXNzIGVuZCwgICAgICAgICAgICAgICAvLyBhMworKyAgICAv LyAgICAgICAgICAgICBpbnQqY2FwdHVyZV9vdXRwdXRfYXJyYXksICAvLyBhNAorKyAgICAvLyAg ICAgICAgICAgICBpbnQgbnVtX2NhcHR1cmVfcmVnaXN0ZXJzLCAvLyBhNQorKyAgICAvLyAgICAg ICAgICAgICBieXRlKiBzdGFja19hcmVhX2Jhc2UsICAgICAvLyBhNgorKyAgICAvLyAgICAgICAg ICAgICBib29sIGRpcmVjdF9jYWxsID0gZmFsc2UsICAvLyBhNworKyAgICAvLyAgICAgICAgICAg ICBJc29sYXRlICogaXNvbGF0ZSk7ICAgICAgICAvLyBvbiB0aGUgc3RhY2sKKysgICAgUmVnTGlz dCBhcmd1bWVudF9yZWdpc3RlcnMgPSBhMC5iaXQoKSB8IGExLmJpdCgpIHwgYTIuYml0KCkgfCBh My5iaXQoKSB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTQuYml0KCkgfCBh NS5iaXQoKSB8IGE2LmJpdCgpIHwgYTcuYml0KCk7CisrCisrICAgIC8vIEFjY29yZGluZyB0byBN dWx0aVB1c2ggaW1wbGVtZW50YXRpb24sIHJlZ2lzdGVycyB3aWxsIGJlIHB1c2hlZCBpbiB0aGUK KysgICAgLy8gb3JkZXIgb2YgcmEsIGZwLCB0aGVuIHM4LCAuLi4sIHMxLCBhbmQgZmluYWxseSBh NywuLi5hMAorKyAgICBfXyBNdWx0aVB1c2gocmEuYml0KCkgfCByZWdpc3RlcnNfdG9fcmV0YWlu IHwgYXJndW1lbnRfcmVnaXN0ZXJzKTsKKysKKysgICAgLy8gU2V0IGZyYW1lIHBvaW50ZXIgaW4g c3BhY2UgZm9yIGl0IGlmIHRoaXMgaXMgbm90IGEgZGlyZWN0IGNhbGwKKysgICAgLy8gZnJvbSBn ZW5lcmF0ZWQgY29kZS4KKysgICAgX18gQWRkNjQoZnJhbWVfcG9pbnRlcigpLCBzcCwKKysgICAg ICAgICAgICAgT3BlcmFuZChOdW1SZWdzKGFyZ3VtZW50X3JlZ2lzdGVycykgKiBrUG9pbnRlclNp emUpKTsKKysKKysgICAgU1RBVElDX0FTU0VSVChrU3VjY2Vzc2Z1bENhcHR1cmVzID09IGtJbnB1 dFN0cmluZyAtIGtTeXN0ZW1Qb2ludGVyU2l6ZSk7CisrICAgIF9fIG12KGEwLCB6ZXJvX3JlZyk7 CisrICAgIF9fIHB1c2goYTApOyAgLy8gTWFrZSByb29tIGZvciBzdWNjZXNzIGNvdW50ZXIgYW5k IGluaXRpYWxpemUgaXQgdG8gMC4KKysgICAgU1RBVElDX0FTU0VSVChrU3RyaW5nU3RhcnRNaW51 c09uZSA9PQorKyAgICAgICAgICAgICAgICAgIGtTdWNjZXNzZnVsQ2FwdHVyZXMgLSBrU3lzdGVt UG9pbnRlclNpemUpOworKyAgICBfXyBwdXNoKGEwKTsgIC8vIE1ha2Ugcm9vbSBmb3IgInN0cmlu ZyBzdGFydCAtIDEiIGNvbnN0YW50LgorKyAgICBTVEFUSUNfQVNTRVJUKGtCYWNrdHJhY2tDb3Vu dCA9PSBrU3RyaW5nU3RhcnRNaW51c09uZSAtIGtTeXN0ZW1Qb2ludGVyU2l6ZSk7CisrICAgIF9f IHB1c2goYTApOyAgLy8gVGhlIGJhY2t0cmFjayBjb3VudGVyCisrCisrICAgIC8vIENoZWNrIGlm IHdlIGhhdmUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciByZWdpc3RlcnMuCisrICAgIExhYmVsIHN0 YWNrX2xpbWl0X2hpdDsKKysgICAgTGFiZWwgc3RhY2tfb2s7CisrCisrICAgIEV4dGVybmFsUmVm ZXJlbmNlIHN0YWNrX2xpbWl0ID0KKysgICAgICAgIEV4dGVybmFsUmVmZXJlbmNlOjphZGRyZXNz X29mX2pzbGltaXQobWFzbV8tPmlzb2xhdGUoKSk7CisrICAgIF9fIGxpKGEwLCBPcGVyYW5kKHN0 YWNrX2xpbWl0KSk7CisrICAgIF9fIExkKGEwLCBNZW1PcGVyYW5kKGEwKSk7CisrICAgIF9fIFN1 YjY0KGEwLCBzcCwgYTApOworKyAgICAvLyBIYW5kbGUgaXQgaWYgdGhlIHN0YWNrIHBvaW50ZXIg aXMgYWxyZWFkeSBiZWxvdyB0aGUgc3RhY2sgbGltaXQuCisrICAgIF9fIEJyYW5jaCgmc3RhY2tf bGltaXRfaGl0LCBsZSwgYTAsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgLy8gQ2hlY2sgaWYg dGhlcmUgaXMgcm9vbSBmb3IgdGhlIHZhcmlhYmxlIG51bWJlciBvZiByZWdpc3RlcnMgYWJvdmUK KysgICAgLy8gdGhlIHN0YWNrIGxpbWl0LgorKyAgICBfXyBCcmFuY2goJnN0YWNrX29rLCBVZ3Jl YXRlcl9lcXVhbCwgYTAsCisrICAgICAgICAgICAgICBPcGVyYW5kKG51bV9yZWdpc3RlcnNfICog a1BvaW50ZXJTaXplKSk7CisrICAgIC8vIEV4aXQgd2l0aCBPdXRPZk1lbW9yeSBleGNlcHRpb24u IFRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2Ugb24gdGhlIHN0YWNrCisrICAgIC8vIGZvciBvdXIg d29ya2luZyByZWdpc3RlcnMuCisrICAgIF9fIGxpKGEwLCBPcGVyYW5kKEVYQ0VQVElPTikpOwor KyAgICBfXyBqbXAoJnJldHVybl9hMCk7CisrCisrICAgIF9fIGJpbmQoJnN0YWNrX2xpbWl0X2hp dCk7CisrICAgIENhbGxDaGVja1N0YWNrR3VhcmRTdGF0ZShhMCk7CisrICAgIC8vIElmIHJldHVy bmVkIHZhbHVlIGlzIG5vbi16ZXJvLCB3ZSBleGl0IHdpdGggdGhlIHJldHVybmVkIHZhbHVlIGFz IHJlc3VsdC4KKysgICAgX18gQnJhbmNoKCZyZXR1cm5fYTAsIG5lLCBhMCwgT3BlcmFuZCh6ZXJv X3JlZykpOworKworKyAgICBfXyBiaW5kKCZzdGFja19vayk7CisrICAgIC8vIEFsbG9jYXRlIHNw YWNlIG9uIHN0YWNrIGZvciByZWdpc3RlcnMuCisrICAgIF9fIFN1YjY0KHNwLCBzcCwgT3BlcmFu ZChudW1fcmVnaXN0ZXJzXyAqIGtQb2ludGVyU2l6ZSkpOworKyAgICAvLyBMb2FkIHN0cmluZyBl bmQuCisrICAgIF9fIExkKGVuZF9vZl9pbnB1dF9hZGRyZXNzKCksIE1lbU9wZXJhbmQoZnJhbWVf cG9pbnRlcigpLCBrSW5wdXRFbmQpKTsKKysgICAgLy8gTG9hZCBpbnB1dCBzdGFydC4KKysgICAg X18gTGQoYTAsIE1lbU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBrSW5wdXRTdGFydCkpOworKyAg ICAvLyBGaW5kIG5lZ2F0aXZlIGxlbmd0aCAob2Zmc2V0IG9mIHN0YXJ0IHJlbGF0aXZlIHRvIGVu ZCkuCisrICAgIF9fIFN1YjY0KGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksIGEwLCBlbmRfb2ZfaW5w dXRfYWRkcmVzcygpKTsKKysgICAgLy8gU2V0IGEwIHRvIGFkZHJlc3Mgb2YgY2hhciBiZWZvcmUg c3RhcnQgb2YgdGhlIGlucHV0IHN0cmluZworKyAgICAvLyAoZWZmZWN0aXZlbHkgc3RyaW5nIHBv c2l0aW9uIC0xKS4KKysgICAgX18gTGQoYTEsIE1lbU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBr U3RhcnRJbmRleCkpOworKyAgICBfXyBTdWI2NChhMCwgY3VycmVudF9pbnB1dF9vZmZzZXQoKSwg T3BlcmFuZChjaGFyX3NpemUoKSkpOworKyAgICBfXyBzbGxpKHQxLCBhMSwgKG1vZGVfID09IFVD MTYpID8gMSA6IDApOworKyAgICBfXyBTdWI2NChhMCwgYTAsIHQxKTsKKysgICAgLy8gU3RvcmUg dGhpcyB2YWx1ZSBpbiBhIGxvY2FsIHZhcmlhYmxlLCBmb3IgdXNlIHdoZW4gY2xlYXJpbmcKKysg ICAgLy8gcG9zaXRpb24gcmVnaXN0ZXJzLgorKyAgICBfXyBTZChhMCwgTWVtT3BlcmFuZChmcmFt ZV9wb2ludGVyKCksIGtTdHJpbmdTdGFydE1pbnVzT25lKSk7CisrCisrICAgIC8vIEluaXRpYWxp emUgY29kZSBwb2ludGVyIHJlZ2lzdGVyCisrICAgIF9fIGxpKGNvZGVfcG9pbnRlcigpLCBPcGVy YW5kKG1hc21fLT5Db2RlT2JqZWN0KCkpLCBDT05TVEFOVF9TSVpFKTsKKysKKysgICAgTGFiZWwg bG9hZF9jaGFyX3N0YXJ0X3JlZ2V4cCwgc3RhcnRfcmVnZXhwOworKyAgICAvLyBMb2FkIG5ld2xp bmUgaWYgaW5kZXggaXMgYXQgc3RhcnQsIHByZXZpb3VzIGNoYXJhY3RlciBvdGhlcndpc2UuCisr ICAgIF9fIEJyYW5jaCgmbG9hZF9jaGFyX3N0YXJ0X3JlZ2V4cCwgbmUsIGExLCBPcGVyYW5kKHpl cm9fcmVnKSk7CisrICAgIF9fIGxpKGN1cnJlbnRfY2hhcmFjdGVyKCksIE9wZXJhbmQoJ1xuJykp OworKyAgICBfXyBqbXAoJnN0YXJ0X3JlZ2V4cCk7CisrCisrICAgIC8vIEdsb2JhbCByZWdleHAg cmVzdGFydHMgbWF0Y2hpbmcgaGVyZS4KKysgICAgX18gYmluZCgmbG9hZF9jaGFyX3N0YXJ0X3Jl Z2V4cCk7CisrICAgIC8vIExvYWQgcHJldmlvdXMgY2hhciBhcyBpbml0aWFsIHZhbHVlIG9mIGN1 cnJlbnQgY2hhcmFjdGVyIHJlZ2lzdGVyLgorKyAgICBMb2FkQ3VycmVudENoYXJhY3RlclVuY2hl Y2tlZCgtMSwgMSk7CisrICAgIF9fIGJpbmQoJnN0YXJ0X3JlZ2V4cCk7CisrCisrICAgIC8vIElu aXRpYWxpemUgb24tc3RhY2sgcmVnaXN0ZXJzLgorKyAgICBpZiAobnVtX3NhdmVkX3JlZ2lzdGVy c18gPiAwKSB7ICAvLyBBbHdheXMgaXMsIGlmIGdlbmVyYXRlZCBmcm9tIGEgcmVnZXhwLgorKyAg ICAgIC8vIEZpbGwgc2F2ZWQgcmVnaXN0ZXJzIHdpdGggaW5pdGlhbCB2YWx1ZSA9IHN0YXJ0IG9m ZnNldCAtIDEuCisrICAgICAgaWYgKG51bV9zYXZlZF9yZWdpc3RlcnNfID4gOCkgeworKyAgICAg ICAgLy8gQWRkcmVzcyBvZiByZWdpc3RlciAwLgorKyAgICAgICAgX18gQWRkNjQoYTEsIGZyYW1l X3BvaW50ZXIoKSwgT3BlcmFuZChrUmVnaXN0ZXJaZXJvKSk7CisrICAgICAgICBfXyBsaShhMiwg T3BlcmFuZChudW1fc2F2ZWRfcmVnaXN0ZXJzXykpOworKyAgICAgICAgTGFiZWwgaW5pdF9sb29w OworKyAgICAgICAgX18gYmluZCgmaW5pdF9sb29wKTsKKysgICAgICAgIF9fIFNkKGEwLCBNZW1P cGVyYW5kKGExKSk7CisrICAgICAgICBfXyBBZGQ2NChhMSwgYTEsIE9wZXJhbmQoLWtQb2ludGVy U2l6ZSkpOworKyAgICAgICAgX18gU3ViNjQoYTIsIGEyLCBPcGVyYW5kKDEpKTsKKysgICAgICAg IF9fIEJyYW5jaCgmaW5pdF9sb29wLCBuZSwgYTIsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAg ICB9IGVsc2UgeworKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fc2F2ZWRfcmVnaXN0 ZXJzXzsgaSsrKSB7CisrICAgICAgICAgIF9fIFNkKGEwLCByZWdpc3Rlcl9sb2NhdGlvbihpKSk7 CisrICAgICAgICB9CisrICAgICAgfQorKyAgICB9CisrCisrICAgIC8vIEluaXRpYWxpemUgYmFj a3RyYWNrIHN0YWNrIHBvaW50ZXIuCisrICAgIF9fIExkKGJhY2t0cmFja19zdGFja3BvaW50ZXIo KSwgTWVtT3BlcmFuZChmcmFtZV9wb2ludGVyKCksIGtTdGFja0hpZ2hFbmQpKTsKKysKKysgICAg X18gam1wKCZzdGFydF9sYWJlbF8pOworKworKyAgICAvLyBFeGl0IGNvZGU6CisrICAgIGlmIChz dWNjZXNzX2xhYmVsXy5pc19saW5rZWQoKSkgeworKyAgICAgIC8vIFNhdmUgY2FwdHVyZXMgd2hl biBzdWNjZXNzZnVsLgorKyAgICAgIF9fIGJpbmQoJnN1Y2Nlc3NfbGFiZWxfKTsKKysgICAgICBp ZiAobnVtX3NhdmVkX3JlZ2lzdGVyc18gPiAwKSB7CisrICAgICAgICAvLyBDb3B5IGNhcHR1cmVz IHRvIG91dHB1dC4KKysgICAgICAgIF9fIExkKGExLCBNZW1PcGVyYW5kKGZyYW1lX3BvaW50ZXIo KSwga0lucHV0U3RhcnQpKTsKKysgICAgICAgIF9fIExkKGEwLCBNZW1PcGVyYW5kKGZyYW1lX3Bv aW50ZXIoKSwga1JlZ2lzdGVyT3V0cHV0KSk7CisrICAgICAgICBfXyBMZChhMiwgTWVtT3BlcmFu ZChmcmFtZV9wb2ludGVyKCksIGtTdGFydEluZGV4KSk7CisrICAgICAgICBfXyBTdWI2NChhMSwg ZW5kX29mX2lucHV0X2FkZHJlc3MoKSwgYTEpOworKyAgICAgICAgLy8gYTEgaXMgbGVuZ3RoIG9m IGlucHV0IGluIGJ5dGVzLgorKyAgICAgICAgaWYgKG1vZGVfID09IFVDMTYpIHsKKysgICAgICAg ICAgX18gc3JsaShhMSwgYTEsIDEpOworKyAgICAgICAgfQorKyAgICAgICAgLy8gYTEgaXMgbGVu Z3RoIG9mIGlucHV0IGluIGNoYXJhY3RlcnMuCisrICAgICAgICBfXyBBZGQ2NChhMSwgYTEsIE9w ZXJhbmQoYTIpKTsKKysgICAgICAgIC8vIGExIGlzIGxlbmd0aCBvZiBzdHJpbmcgaW4gY2hhcmFj dGVycy4KKysKKysgICAgICAgIERDSEVDS19FUSgwLCBudW1fc2F2ZWRfcmVnaXN0ZXJzXyAlIDIp OworKyAgICAgICAgLy8gQWx3YXlzIGFuIGV2ZW4gbnVtYmVyIG9mIGNhcHR1cmUgcmVnaXN0ZXJz LiBUaGlzIGFsbG93cyB1cyB0bworKyAgICAgICAgLy8gdW5yb2xsIHRoZSBsb29wIG9uY2UgdG8g YWRkIGFuIG9wZXJhdGlvbiBiZXR3ZWVuIGEgbG9hZCBvZiBhIHJlZ2lzdGVyCisrICAgICAgICAv LyBhbmQgdGhlIGZvbGxvd2luZyB1c2Ugb2YgdGhhdCByZWdpc3Rlci4KKysgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgbnVtX3NhdmVkX3JlZ2lzdGVyc187IGkgKz0gMikgeworKyAgICAgICAg ICBfXyBMZChhMiwgcmVnaXN0ZXJfbG9jYXRpb24oaSkpOworKyAgICAgICAgICBfXyBMZChhMywg cmVnaXN0ZXJfbG9jYXRpb24oaSArIDEpKTsKKysgICAgICAgICAgaWYgKGkgPT0gMCAmJiBnbG9i YWxfd2l0aF96ZXJvX2xlbmd0aF9jaGVjaygpKSB7CisrICAgICAgICAgICAgLy8gS2VlcCBjYXB0 dXJlIHN0YXJ0IGluIGE0IGZvciB0aGUgemVyby1sZW5ndGggY2hlY2sgbGF0ZXIuCisrICAgICAg ICAgICAgX18gbXYodDQsIGEyKTsKKysgICAgICAgICAgfQorKyAgICAgICAgICBpZiAobW9kZV8g PT0gVUMxNikgeworKyAgICAgICAgICAgIF9fIHNyYWkoYTIsIGEyLCAxKTsKKysgICAgICAgICAg ICBfXyBBZGQ2NChhMiwgYTIsIGExKTsKKysgICAgICAgICAgICBfXyBzcmFpKGEzLCBhMywgMSk7 CisrICAgICAgICAgICAgX18gQWRkNjQoYTMsIGEzLCBhMSk7CisrICAgICAgICAgIH0gZWxzZSB7 CisrICAgICAgICAgICAgX18gQWRkNjQoYTIsIGExLCBPcGVyYW5kKGEyKSk7CisrICAgICAgICAg ICAgX18gQWRkNjQoYTMsIGExLCBPcGVyYW5kKGEzKSk7CisrICAgICAgICAgIH0KKysgICAgICAg ICAgLy8gVjggZXhwZWN0cyB0aGUgb3V0cHV0IHRvIGJlIGFuIGludDMyX3QgYXJyYXkuCisrICAg ICAgICAgIF9fIFN3KGEyLCBNZW1PcGVyYW5kKGEwKSk7CisrICAgICAgICAgIF9fIEFkZDY0KGEw LCBhMCwga0ludFNpemUpOworKyAgICAgICAgICBfXyBTdyhhMywgTWVtT3BlcmFuZChhMCkpOwor KyAgICAgICAgICBfXyBBZGQ2NChhMCwgYTAsIGtJbnRTaXplKTsKKysgICAgICAgIH0KKysgICAg ICB9CisrCisrICAgICAgaWYgKGdsb2JhbCgpKSB7CisrICAgICAgICAvLyBSZXN0YXJ0IG1hdGNo aW5nIGlmIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaXMgZmxhZ2dlZCBhcyBnbG9iYWwuCisrICAg ICAgICBfXyBMZChhMCwgTWVtT3BlcmFuZChmcmFtZV9wb2ludGVyKCksIGtTdWNjZXNzZnVsQ2Fw dHVyZXMpKTsKKysgICAgICAgIF9fIExkKGExLCBNZW1PcGVyYW5kKGZyYW1lX3BvaW50ZXIoKSwg a051bU91dHB1dFJlZ2lzdGVycykpOworKyAgICAgICAgX18gTGQoYTIsIE1lbU9wZXJhbmQoZnJh bWVfcG9pbnRlcigpLCBrUmVnaXN0ZXJPdXRwdXQpKTsKKysgICAgICAgIC8vIEluY3JlbWVudCBz dWNjZXNzIGNvdW50ZXIuCisrICAgICAgICBfXyBBZGQ2NChhMCwgYTAsIDEpOworKyAgICAgICAg X18gU2QoYTAsIE1lbU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBrU3VjY2Vzc2Z1bENhcHR1cmVz KSk7CisrICAgICAgICAvLyBDYXB0dXJlIHJlc3VsdHMgaGF2ZSBiZWVuIHN0b3JlZCwgc28gdGhl IG51bWJlciBvZiByZW1haW5pbmcgZ2xvYmFsCisrICAgICAgICAvLyBvdXRwdXQgcmVnaXN0ZXJz IGlzIHJlZHVjZWQgYnkgdGhlIG51bWJlciBvZiBzdG9yZWQgY2FwdHVyZXMuCisrICAgICAgICBf XyBTdWI2NChhMSwgYTEsIG51bV9zYXZlZF9yZWdpc3RlcnNfKTsKKysgICAgICAgIC8vIENoZWNr IHdoZXRoZXIgd2UgaGF2ZSBlbm91Z2ggcm9vbSBmb3IgYW5vdGhlciBzZXQgb2YgY2FwdHVyZSBy ZXN1bHRzLgorKyAgICAgICAgX18gQnJhbmNoKCZyZXR1cm5fYTAsIGx0LCBhMSwgT3BlcmFuZChu dW1fc2F2ZWRfcmVnaXN0ZXJzXykpOworKworKyAgICAgICAgX18gU2QoYTEsIE1lbU9wZXJhbmQo ZnJhbWVfcG9pbnRlcigpLCBrTnVtT3V0cHV0UmVnaXN0ZXJzKSk7CisrICAgICAgICAvLyBBZHZh bmNlIHRoZSBsb2NhdGlvbiBmb3Igb3V0cHV0LgorKyAgICAgICAgX18gQWRkNjQoYTIsIGEyLCBu dW1fc2F2ZWRfcmVnaXN0ZXJzXyAqIGtJbnRTaXplKTsKKysgICAgICAgIF9fIFNkKGEyLCBNZW1P cGVyYW5kKGZyYW1lX3BvaW50ZXIoKSwga1JlZ2lzdGVyT3V0cHV0KSk7CisrCisrICAgICAgICAv LyBQcmVwYXJlIGEwIHRvIGluaXRpYWxpemUgcmVnaXN0ZXJzIHdpdGggaXRzIHZhbHVlIGluIHRo ZSBuZXh0IHJ1bi4KKysgICAgICAgIF9fIExkKGEwLCBNZW1PcGVyYW5kKGZyYW1lX3BvaW50ZXIo KSwga1N0cmluZ1N0YXJ0TWludXNPbmUpKTsKKysKKysgICAgICAgIGlmIChnbG9iYWxfd2l0aF96 ZXJvX2xlbmd0aF9jaGVjaygpKSB7CisrICAgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgemVy by1sZW5ndGggbWF0Y2hlcy4KKysgICAgICAgICAgLy8gdDQ6IGNhcHR1cmUgc3RhcnQgaW5kZXgK KysgICAgICAgICAgLy8gTm90IGEgemVyby1sZW5ndGggbWF0Y2gsIHJlc3RhcnQuCisrICAgICAg ICAgIF9fIEJyYW5jaCgmbG9hZF9jaGFyX3N0YXJ0X3JlZ2V4cCwgbmUsIGN1cnJlbnRfaW5wdXRf b2Zmc2V0KCksCisrICAgICAgICAgICAgICAgICAgICBPcGVyYW5kKHQ0KSk7CisrICAgICAgICAg IC8vIE9mZnNldCBmcm9tIHRoZSBlbmQgaXMgemVybyBpZiB3ZSBhbHJlYWR5IHJlYWNoZWQgdGhl IGVuZC4KKysgICAgICAgICAgX18gQnJhbmNoKCZleGl0X2xhYmVsXywgZXEsIGN1cnJlbnRfaW5w dXRfb2Zmc2V0KCksCisrICAgICAgICAgICAgICAgICAgICBPcGVyYW5kKHplcm9fcmVnKSk7Cisr ICAgICAgICAgIC8vIEFkdmFuY2UgY3VycmVudCBwb3NpdGlvbiBhZnRlciBhIHplcm8tbGVuZ3Ro IG1hdGNoLgorKyAgICAgICAgICBMYWJlbCBhZHZhbmNlOworKyAgICAgICAgICBfXyBiaW5kKCZh ZHZhbmNlKTsKKysgICAgICAgICAgX18gQWRkNjQoY3VycmVudF9pbnB1dF9vZmZzZXQoKSwgY3Vy cmVudF9pbnB1dF9vZmZzZXQoKSwKKysgICAgICAgICAgICAgICAgICAgT3BlcmFuZCgobW9kZV8g PT0gVUMxNikgPyAyIDogMSkpOworKyAgICAgICAgICBpZiAoZ2xvYmFsX3VuaWNvZGUoKSkgQ2hl Y2tOb3RJblN1cnJvZ2F0ZVBhaXIoMCwgJmFkdmFuY2UpOworKyAgICAgICAgfQorKworKyAgICAg ICAgX18gQnJhbmNoKCZsb2FkX2NoYXJfc3RhcnRfcmVnZXhwKTsKKysgICAgICB9IGVsc2Ugewor KyAgICAgICAgX18gbGkoYTAsIE9wZXJhbmQoU1VDQ0VTUykpOworKyAgICAgIH0KKysgICAgfQor KyAgICAvLyBFeGl0IGFuZCByZXR1cm4gYTAuCisrICAgIF9fIGJpbmQoJmV4aXRfbGFiZWxfKTsK KysgICAgaWYgKGdsb2JhbCgpKSB7CisrICAgICAgX18gTGQoYTAsIE1lbU9wZXJhbmQoZnJhbWVf cG9pbnRlcigpLCBrU3VjY2Vzc2Z1bENhcHR1cmVzKSk7CisrICAgIH0KKysKKysgICAgX18gYmlu ZCgmcmV0dXJuX2EwKTsKKysgICAgLy8gU2tpcCBzcCBwYXN0IHJlZ2V4cCByZWdpc3RlcnMgYW5k IGxvY2FsIHZhcmlhYmxlcy4uCisrICAgIF9fIG12KHNwLCBmcmFtZV9wb2ludGVyKCkpOworKwor KyAgICAvLyBSZXN0b3JlIHJlZ2lzdGVycyBmcC4uczExIGFuZCByZXR1cm4gKHJlc3RvcmluZyBy YSB0byBwYykuCisrICAgIF9fIE11bHRpUG9wKHJlZ2lzdGVyc190b19yZXRhaW4gfCByYS5iaXQo KSk7CisrCisrICAgIF9fIFJldCgpOworKworKyAgICAvLyBCYWNrdHJhY2sgY29kZSAoYnJhbmNo IHRhcmdldCBmb3IgY29uZGl0aW9uYWwgYmFja3RyYWNrcykuCisrICAgIGlmIChiYWNrdHJhY2tf bGFiZWxfLmlzX2xpbmtlZCgpKSB7CisrICAgICAgX18gYmluZCgmYmFja3RyYWNrX2xhYmVsXyk7 CisrICAgICAgQmFja3RyYWNrKCk7CisrICAgIH0KKysKKysgICAgTGFiZWwgZXhpdF93aXRoX2V4 Y2VwdGlvbjsKKysKKysgICAgLy8gUHJlZW1wdC1jb2RlLgorKyAgICBpZiAoY2hlY2tfcHJlZW1w dF9sYWJlbF8uaXNfbGlua2VkKCkpIHsKKysgICAgICBTYWZlQ2FsbFRhcmdldCgmY2hlY2tfcHJl ZW1wdF9sYWJlbF8pOworKyAgICAgIC8vIFB1dCByZWdleHAgZW5naW5lIHJlZ2lzdGVycyBvbiBz dGFjay4KKysgICAgICBSZWdMaXN0IHJlZ2V4cF9yZWdpc3RlcnNfdG9fcmV0YWluID0gY3VycmVu dF9pbnB1dF9vZmZzZXQoKS5iaXQoKSB8CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGN1cnJlbnRfY2hhcmFjdGVyKCkuYml0KCkgfAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdHJhY2tfc3RhY2twb2ludGVyKCkuYml0 KCk7CisrICAgICAgX18gTXVsdGlQdXNoKHJlZ2V4cF9yZWdpc3RlcnNfdG9fcmV0YWluKTsKKysg ICAgICBDYWxsQ2hlY2tTdGFja0d1YXJkU3RhdGUoYTApOworKyAgICAgIF9fIE11bHRpUG9wKHJl Z2V4cF9yZWdpc3RlcnNfdG9fcmV0YWluKTsKKysgICAgICAvLyBJZiByZXR1cm5pbmcgbm9uLXpl cm8sIHdlIHNob3VsZCBlbmQgZXhlY3V0aW9uIHdpdGggdGhlIGdpdmVuCisrICAgICAgLy8gcmVz dWx0IGFzIHJldHVybiB2YWx1ZS4KKysgICAgICBfXyBCcmFuY2goJnJldHVybl9hMCwgbmUsIGEw LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICAgICAgLy8gU3RyaW5nIG1pZ2h0IGhhdmUgbW92 ZWQ6IFJlbG9hZCBlbmQgb2Ygc3RyaW5nIGZyb20gZnJhbWUuCisrICAgICAgX18gTGQoZW5kX29m X2lucHV0X2FkZHJlc3MoKSwgTWVtT3BlcmFuZChmcmFtZV9wb2ludGVyKCksIGtJbnB1dEVuZCkp OworKyAgICAgIF9fIGxpKGNvZGVfcG9pbnRlcigpLCBPcGVyYW5kKG1hc21fLT5Db2RlT2JqZWN0 KCkpLCBDT05TVEFOVF9TSVpFKTsKKysgICAgICBTYWZlUmV0dXJuKCk7CisrICAgIH0KKysKKysg ICAgLy8gQmFja3RyYWNrIHN0YWNrIG92ZXJmbG93IGNvZGUuCisrICAgIGlmIChzdGFja19vdmVy Zmxvd19sYWJlbF8uaXNfbGlua2VkKCkpIHsKKysgICAgICBTYWZlQ2FsbFRhcmdldCgmc3RhY2tf b3ZlcmZsb3dfbGFiZWxfKTsKKysgICAgICAvLyBSZWFjaGVkIGlmIHRoZSBiYWNrdHJhY2stc3Rh Y2sgbGltaXQgaGFzIGJlZW4gaGl0LgorKyAgICAgIC8vIFB1dCByZWdleHAgZW5naW5lIHJlZ2lz dGVycyBvbiBzdGFjayBmaXJzdC4KKysgICAgICBSZWdMaXN0IHJlZ2V4cF9yZWdpc3RlcnMgPQor KyAgICAgICAgICBjdXJyZW50X2lucHV0X29mZnNldCgpLmJpdCgpIHwgY3VycmVudF9jaGFyYWN0 ZXIoKS5iaXQoKTsKKysgICAgICBfXyBNdWx0aVB1c2gocmVnZXhwX3JlZ2lzdGVycyk7CisrCisr ICAgICAgLy8gQ2FsbCBHcm93U3RhY2soYmFja3RyYWNrX3N0YWNrcG9pbnRlcigpLCAmc3RhY2tf YmFzZSkKKysgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV9hcmd1bWVudHMgPSAzOworKyAgICAg IF9fIFByZXBhcmVDYWxsQ0Z1bmN0aW9uKG51bV9hcmd1bWVudHMsIGEwKTsKKysgICAgICBfXyBt dihhMCwgYmFja3RyYWNrX3N0YWNrcG9pbnRlcigpKTsKKysgICAgICBfXyBBZGQ2NChhMSwgZnJh bWVfcG9pbnRlcigpLCBPcGVyYW5kKGtTdGFja0hpZ2hFbmQpKTsKKysgICAgICBfXyBsaShhMiwg T3BlcmFuZChFeHRlcm5hbFJlZmVyZW5jZTo6aXNvbGF0ZV9hZGRyZXNzKG1hc21fLT5pc29sYXRl KCkpKSk7CisrICAgICAgRXh0ZXJuYWxSZWZlcmVuY2UgZ3Jvd19zdGFjayA9CisrICAgICAgICAg IEV4dGVybmFsUmVmZXJlbmNlOjpyZV9ncm93X3N0YWNrKG1hc21fLT5pc29sYXRlKCkpOworKyAg ICAgIF9fIENhbGxDRnVuY3Rpb24oZ3Jvd19zdGFjaywgbnVtX2FyZ3VtZW50cyk7CisrICAgICAg Ly8gUmVzdG9yZSByZWdleHAgcmVnaXN0ZXJzLgorKyAgICAgIF9fIE11bHRpUG9wKHJlZ2V4cF9y ZWdpc3RlcnMpOworKyAgICAgIC8vIElmIHJldHVybiBudWxscHRyLCB3ZSBoYXZlIGZhaWxlZCB0 byBncm93IHRoZSBzdGFjaywgYW5kCisrICAgICAgLy8gbXVzdCBleGl0IHdpdGggYSBzdGFjay1v dmVyZmxvdyBleGNlcHRpb24uCisrICAgICAgX18gQnJhbmNoKCZleGl0X3dpdGhfZXhjZXB0aW9u LCBlcSwgYTAsIE9wZXJhbmQoemVyb19yZWcpKTsKKysgICAgICAvLyBPdGhlcndpc2UgdXNlIHJl dHVybiB2YWx1ZSBhcyBuZXcgc3RhY2sgcG9pbnRlci4KKysgICAgICBfXyBtdihiYWNrdHJhY2tf c3RhY2twb2ludGVyKCksIGEwKTsKKysgICAgICAvLyBSZXN0b3JlIHNhdmVkIHJlZ2lzdGVycyBh bmQgY29udGludWUuCisrICAgICAgX18gbGkoY29kZV9wb2ludGVyKCksIE9wZXJhbmQobWFzbV8t PkNvZGVPYmplY3QoKSksIENPTlNUQU5UX1NJWkUpOworKyAgICAgIF9fIExkKGVuZF9vZl9pbnB1 dF9hZGRyZXNzKCksIE1lbU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLCBrSW5wdXRFbmQpKTsKKysg ICAgICBTYWZlUmV0dXJuKCk7CisrICAgIH0KKysKKysgICAgaWYgKGV4aXRfd2l0aF9leGNlcHRp b24uaXNfbGlua2VkKCkpIHsKKysgICAgICAvLyBJZiBhbnkgb2YgdGhlIGNvZGUgYWJvdmUgbmVl ZGVkIHRvIGV4aXQgd2l0aCBhbiBleGNlcHRpb24uCisrICAgICAgX18gYmluZCgmZXhpdF93aXRo X2V4Y2VwdGlvbik7CisrICAgICAgLy8gRXhpdCB3aXRoIFJlc3VsdCBFWENFUFRJT04oLTEpIHRv IHNpZ25hbCB0aHJvd24gZXhjZXB0aW9uLgorKyAgICAgIF9fIGxpKGEwLCBPcGVyYW5kKEVYQ0VQ VElPTikpOworKyAgICAgIF9fIGptcCgmcmV0dXJuX2EwKTsKKysgICAgfQorKyAgfQorKworKyAg Q29kZURlc2MgY29kZV9kZXNjOworKyAgbWFzbV8tPkdldENvZGUoaXNvbGF0ZSgpLCAmY29kZV9k ZXNjKTsKKysgIEhhbmRsZTxDb2RlPiBjb2RlID0KKysgICAgICBGYWN0b3J5OjpDb2RlQnVpbGRl cihpc29sYXRlKCksIGNvZGVfZGVzYywgQ29kZUtpbmQ6OlJFR0VYUCkKKysgICAgICAgICAgLnNl dF9zZWxmX3JlZmVyZW5jZShtYXNtXy0+Q29kZU9iamVjdCgpKQorKyAgICAgICAgICAuQnVpbGQo KTsKKysgIExPRyhtYXNtXy0+aXNvbGF0ZSgpLAorKyAgICAgIFJlZ0V4cENvZGVDcmVhdGVFdmVu dChIYW5kbGU8QWJzdHJhY3RDb2RlPjo6Y2FzdChjb2RlKSwgc291cmNlKSk7CisrICByZXR1cm4g SGFuZGxlPEhlYXBPYmplY3Q+OjpjYXN0KGNvZGUpOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3Jv QXNzZW1ibGVyUklTQ1Y6OkdvVG8oTGFiZWwqIHRvKSB7CisrICBpZiAodG8gPT0gbnVsbHB0cikg eworKyAgICBCYWNrdHJhY2soKTsKKysgICAgcmV0dXJuOworKyAgfQorKyAgX18gam1wKHRvKTsK KysgIHJldHVybjsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpJZlJl Z2lzdGVyR0UoaW50IHJlZywgaW50IGNvbXBhcmFuZCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogaWZfZ2UpIHsKKysgIF9fIExkKGEwLCByZWdp c3Rlcl9sb2NhdGlvbihyZWcpKTsKKysgIEJyYW5jaE9yQmFja3RyYWNrKGlmX2dlLCBnZSwgYTAs IE9wZXJhbmQoY29tcGFyYW5kKSk7CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJS SVNDVjo6SWZSZWdpc3RlckxUKGludCByZWcsIGludCBjb21wYXJhbmQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGlmX2x0KSB7CisrICBfXyBM ZChhMCwgcmVnaXN0ZXJfbG9jYXRpb24ocmVnKSk7CisrICBCcmFuY2hPckJhY2t0cmFjayhpZl9s dCwgbHQsIGEwLCBPcGVyYW5kKGNvbXBhcmFuZCkpOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3Jv QXNzZW1ibGVyUklTQ1Y6OklmUmVnaXN0ZXJFcVBvcyhpbnQgcmVnLCBMYWJlbCogaWZfZXEpIHsK KysgIF9fIExkKGEwLCByZWdpc3Rlcl9sb2NhdGlvbihyZWcpKTsKKysgIEJyYW5jaE9yQmFja3Ry YWNrKGlmX2VxLCBlcSwgYTAsIE9wZXJhbmQoY3VycmVudF9pbnB1dF9vZmZzZXQoKSkpOworK30K KysKKytSZWdFeHBNYWNyb0Fzc2VtYmxlcjo6SXJyZWdleHBJbXBsZW1lbnRhdGlvbgorK1JlZ0V4 cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkltcGxlbWVudGF0aW9uKCkgeworKyAgcmV0dXJuIGtSSVND VkltcGxlbWVudGF0aW9uOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6 OlBvcEN1cnJlbnRQb3NpdGlvbigpIHsKKysgIFBvcChjdXJyZW50X2lucHV0X29mZnNldCgpKTsK Kyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpQb3BSZWdpc3RlcihpbnQg cmVnaXN0ZXJfaW5kZXgpIHsKKysgIFBvcChhMCk7CisrICBfXyBTZChhMCwgcmVnaXN0ZXJfbG9j YXRpb24ocmVnaXN0ZXJfaW5kZXgpKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxl clJJU0NWOjpQdXNoQmFja3RyYWNrKExhYmVsKiBsYWJlbCkgeworKyAgaWYgKGxhYmVsLT5pc19i b3VuZCgpKSB7CisrICAgIGludCB0YXJnZXQgPSBsYWJlbC0+cG9zKCk7CisrICAgIF9fIGxpKGEw LCBPcGVyYW5kKHRhcmdldCArIENvZGU6OmtIZWFkZXJTaXplIC0ga0hlYXBPYmplY3RUYWcpKTsK KysgIH0gZWxzZSB7CisrICAgIEFzc2VtYmxlcjo6QmxvY2tUcmFtcG9saW5lUG9vbFNjb3BlIGJs b2NrX3RyYW1wb2xpbmVfcG9vbChtYXNtXyk7CisrICAgIExhYmVsIGFmdGVyX2NvbnN0YW50Owor KyAgICBfXyBCcmFuY2goJmFmdGVyX2NvbnN0YW50KTsKKysgICAgaW50IG9mZnNldCA9IG1hc21f LT5wY19vZmZzZXQoKTsKKysgICAgaW50IGNwX29mZnNldCA9IG9mZnNldCArIENvZGU6OmtIZWFk ZXJTaXplIC0ga0hlYXBPYmplY3RUYWc7CisrICAgIF9fIGVtaXQoMCk7CisrICAgIG1hc21fLT5s YWJlbF9hdF9wdXQobGFiZWwsIG9mZnNldCk7CisrICAgIF9fIGJpbmQoJmFmdGVyX2NvbnN0YW50 KTsKKysgICAgaWYgKGlzX2ludDE2KGNwX29mZnNldCkpIHsKKysgICAgICBfXyBMd3UoYTAsIE1l bU9wZXJhbmQoY29kZV9wb2ludGVyKCksIGNwX29mZnNldCkpOworKyAgICB9IGVsc2UgeworKyAg ICAgIF9fIEFkZDY0KGEwLCBjb2RlX3BvaW50ZXIoKSwgY3Bfb2Zmc2V0KTsKKysgICAgICBfXyBM d3UoYTAsIE1lbU9wZXJhbmQoYTAsIDApKTsKKysgICAgfQorKyAgfQorKyAgUHVzaChhMCk7Cisr ICBDaGVja1N0YWNrTGltaXQoKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJ U0NWOjpQdXNoQ3VycmVudFBvc2l0aW9uKCkgeworKyAgUHVzaChjdXJyZW50X2lucHV0X29mZnNl dCgpKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpQdXNoUmVnaXN0 ZXIoaW50IHJlZ2lzdGVyX2luZGV4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0YWNrQ2hlY2tGbGFnIGNoZWNrX3N0YWNrX2xpbWl0KSB7CisrICBfXyBM ZChhMCwgcmVnaXN0ZXJfbG9jYXRpb24ocmVnaXN0ZXJfaW5kZXgpKTsKKysgIFB1c2goYTApOwor KyAgaWYgKGNoZWNrX3N0YWNrX2xpbWl0KSBDaGVja1N0YWNrTGltaXQoKTsKKyt9CisrCisrdm9p ZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpSZWFkQ3VycmVudFBvc2l0aW9uRnJvbVJlZ2lz dGVyKGludCByZWcpIHsKKysgIF9fIExkKGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksIHJlZ2lzdGVy X2xvY2F0aW9uKHJlZykpOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6 OlJlYWRTdGFja1BvaW50ZXJGcm9tUmVnaXN0ZXIoaW50IHJlZykgeworKyAgX18gTGQoYmFja3Ry YWNrX3N0YWNrcG9pbnRlcigpLCByZWdpc3Rlcl9sb2NhdGlvbihyZWcpKTsKKysgIF9fIExkKGEw LCBNZW1PcGVyYW5kKGZyYW1lX3BvaW50ZXIoKSwga1N0YWNrSGlnaEVuZCkpOworKyAgX18gQWRk NjQoYmFja3RyYWNrX3N0YWNrcG9pbnRlcigpLCBiYWNrdHJhY2tfc3RhY2twb2ludGVyKCksIE9w ZXJhbmQoYTApKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpTZXRD dXJyZW50UG9zaXRpb25Gcm9tRW5kKGludCBieSkgeworKyAgTGFiZWwgYWZ0ZXJfcG9zaXRpb247 CisrICBfXyBCcmFuY2goJmFmdGVyX3Bvc2l0aW9uLCBnZSwgY3VycmVudF9pbnB1dF9vZmZzZXQo KSwKKysgICAgICAgICAgICBPcGVyYW5kKC1ieSAqIGNoYXJfc2l6ZSgpKSk7CisrICBfXyBsaShj dXJyZW50X2lucHV0X29mZnNldCgpLCAtYnkgKiBjaGFyX3NpemUoKSk7CisrICAvLyBPbiBSZWdF eHAgY29kZSBlbnRyeSAod2hlcmUgdGhpcyBvcGVyYXRpb24gaXMgdXNlZCksIHRoZSBjaGFyYWN0 ZXIgYmVmb3JlCisrICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBleHBlY3RlZCB0byBiZSBh bHJlYWR5IGxvYWRlZC4KKysgIC8vIFdlIGhhdmUgYWR2YW5jZWQgdGhlIHBvc2l0aW9uLCBzbyBp dCdzIHNhZmUgdG8gcmVhZCBiYWNrd2FyZHMuCisrICBMb2FkQ3VycmVudENoYXJhY3RlclVuY2hl Y2tlZCgtMSwgMSk7CisrICBfXyBiaW5kKCZhZnRlcl9wb3NpdGlvbik7CisrfQorKworK3ZvaWQg UmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6U2V0UmVnaXN0ZXIoaW50IHJlZ2lzdGVyX2luZGV4 LCBpbnQgdG8pIHsKKysgIERDSEVDSyhyZWdpc3Rlcl9pbmRleCA+PSBudW1fc2F2ZWRfcmVnaXN0 ZXJzXyk7ICAvLyBSZXNlcnZlZCBmb3IgcG9zaXRpb25zIQorKyAgX18gbGkoYTAsIE9wZXJhbmQo dG8pKTsKKysgIF9fIFNkKGEwLCByZWdpc3Rlcl9sb2NhdGlvbihyZWdpc3Rlcl9pbmRleCkpOwor K30KKysKKytib29sIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OlN1Y2NlZWQoKSB7CisrICBf XyBqbXAoJnN1Y2Nlc3NfbGFiZWxfKTsKKysgIHJldHVybiBnbG9iYWwoKTsKKyt9CisrCisrdm9p ZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpXcml0ZUN1cnJlbnRQb3NpdGlvblRvUmVnaXN0 ZXIoaW50IHJlZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgY3Bfb2Zmc2V0KSB7CisrICBpZiAoY3Bfb2Zmc2V0ID09 IDApIHsKKysgICAgX18gU2QoY3VycmVudF9pbnB1dF9vZmZzZXQoKSwgcmVnaXN0ZXJfbG9jYXRp b24ocmVnKSk7CisrICB9IGVsc2UgeworKyAgICBfXyBBZGQ2NChhMCwgY3VycmVudF9pbnB1dF9v ZmZzZXQoKSwgT3BlcmFuZChjcF9vZmZzZXQgKiBjaGFyX3NpemUoKSkpOworKyAgICBfXyBTZChh MCwgcmVnaXN0ZXJfbG9jYXRpb24ocmVnKSk7CisrICB9CisrfQorKworK3ZvaWQgUmVnRXhwTWFj cm9Bc3NlbWJsZXJSSVNDVjo6Q2xlYXJSZWdpc3RlcnMoaW50IHJlZ19mcm9tLCBpbnQgcmVnX3Rv KSB7CisrICBEQ0hFQ0socmVnX2Zyb20gPD0gcmVnX3RvKTsKKysgIF9fIExkKGEwLCBNZW1PcGVy YW5kKGZyYW1lX3BvaW50ZXIoKSwga1N0cmluZ1N0YXJ0TWludXNPbmUpKTsKKysgIGZvciAoaW50 IHJlZyA9IHJlZ19mcm9tOyByZWcgPD0gcmVnX3RvOyByZWcrKykgeworKyAgICBfXyBTZChhMCwg cmVnaXN0ZXJfbG9jYXRpb24ocmVnKSk7CisrICB9CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9B c3NlbWJsZXJSSVNDVjo6V3JpdGVTdGFja1BvaW50ZXJUb1JlZ2lzdGVyKGludCByZWcpIHsKKysg IF9fIExkKGExLCBNZW1PcGVyYW5kKGZyYW1lX3BvaW50ZXIoKSwga1N0YWNrSGlnaEVuZCkpOwor KyAgX18gU3ViNjQoYTAsIGJhY2t0cmFja19zdGFja3BvaW50ZXIoKSwgYTEpOworKyAgX18gU2Qo YTAsIHJlZ2lzdGVyX2xvY2F0aW9uKHJlZykpOworK30KKysKKytib29sIFJlZ0V4cE1hY3JvQXNz ZW1ibGVyUklTQ1Y6OkNhblJlYWRVbmFsaWduZWQoKSB7IHJldHVybiBmYWxzZTsgfQorKworKy8v IFByaXZhdGUgbWV0aG9kczoKKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkNh bGxDaGVja1N0YWNrR3VhcmRTdGF0ZShSZWdpc3RlciBzY3JhdGNoKSB7CisrICBEQ0hFQ0soIWlz b2xhdGUoKS0+SXNHZW5lcmF0aW5nRW1iZWRkZWRCdWlsdGlucygpKTsKKysgIERDSEVDSyghbWFz bV8tPm9wdGlvbnMoKS5pc29sYXRlX2luZGVwZW5kZW50X2NvZGUpOworKworKyAgaW50IHN0YWNr X2FsaWdubWVudCA9IGJhc2U6Ok9TOjpBY3RpdmF0aW9uRnJhbWVBbGlnbm1lbnQoKTsKKysKKysg IC8vIEFsaWduIHRoZSBzdGFjayBwb2ludGVyIGFuZCBzYXZlIHRoZSBvcmlnaW5hbCBzcCB2YWx1 ZSBvbiB0aGUgc3RhY2suCisrICBfXyBtdihzY3JhdGNoLCBzcCk7CisrICBfXyBTdWI2NChzcCwg c3AsIE9wZXJhbmQoa1BvaW50ZXJTaXplKSk7CisrICBEQ0hFQ0soYmFzZTo6Yml0czo6SXNQb3dl ck9mVHdvKHN0YWNrX2FsaWdubWVudCkpOworKyAgX18gQW5kKHNwLCBzcCwgT3BlcmFuZCgtc3Rh Y2tfYWxpZ25tZW50KSk7CisrICBfXyBTZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwKSk7CisrCisr ICBfXyBtdihhMiwgZnJhbWVfcG9pbnRlcigpKTsKKysgIC8vIENvZGUgb2Ygc2VsZi4KKysgIF9f IGxpKGExLCBPcGVyYW5kKG1hc21fLT5Db2RlT2JqZWN0KCkpLCBDT05TVEFOVF9TSVpFKTsKKysK KysgIC8vIFdlIG5lZWQgdG8gbWFrZSByb29tIGZvciB0aGUgcmV0dXJuIGFkZHJlc3Mgb24gdGhl IHN0YWNrLgorKyAgRENIRUNLKElzQWxpZ25lZChzdGFja19hbGlnbm1lbnQsIGtQb2ludGVyU2l6 ZSkpOworKyAgX18gU3ViNjQoc3AsIHNwLCBPcGVyYW5kKHN0YWNrX2FsaWdubWVudCkpOworKwor KyAgLy8gVGhlIHN0YWNrIHBvaW50ZXIgbm93IHBvaW50cyB0byBjZWxsIHdoZXJlIHRoZSByZXR1 cm4gYWRkcmVzcyB3aWxsIGJlCisrICAvLyB3cml0dGVuLiBBcmd1bWVudHMgYXJlIGluIHJlZ2lz dGVycywgbWVhbmluZyB3ZSB0cmVhdCB0aGUgcmV0dXJuIGFkZHJlc3MgYXMKKysgIC8vIGFyZ3Vt ZW50IDUuIFNpbmNlIERpcmVjdENFbnRyeSB3aWxsIGhhbmRsZSBhbGxvY2F0aW5nIHNwYWNlIGZv ciB0aGUgQworKyAgLy8gYXJndW1lbnQgc2xvdHMsIHdlIGRvbid0IG5lZWQgdG8gY2FyZSBhYm91 dCB0aGF0IGhlcmUuIFRoaXMgaXMgaG93IHRoZQorKyAgLy8gc3RhY2sgd2lsbCBsb29rIChzcCBt ZWFuaW5nIHRoZSB2YWx1ZSBvZiBzcCBhdCB0aGlzIG1vbWVudCk6CisrICAvLyBbc3AgKyAzXSAt IGVtcHR5IHNsb3QgaWYgbmVlZGVkIGZvciBhbGlnbm1lbnQuCisrICAvLyBbc3AgKyAyXSAtIHNh dmVkIHNwLgorKyAgLy8gW3NwICsgMV0gLSBzZWNvbmQgd29yZCByZXNlcnZlZCBmb3IgcmV0dXJu IHZhbHVlLgorKyAgLy8gW3NwICsgMF0gLSBmaXJzdCB3b3JkIHJlc2VydmVkIGZvciByZXR1cm4g dmFsdWUuCisrCisrICAvLyBhMCB3aWxsIHBvaW50IHRvIHRoZSByZXR1cm4gYWRkcmVzcywgcGxh Y2VkIGJ5IERpcmVjdENFbnRyeS4KKysgIF9fIG12KGEwLCBzcCk7CisrCisrICBFeHRlcm5hbFJl ZmVyZW5jZSBzdGFja19ndWFyZF9jaGVjayA9CisrICAgICAgRXh0ZXJuYWxSZWZlcmVuY2U6OnJl X2NoZWNrX3N0YWNrX2d1YXJkX3N0YXRlKG1hc21fLT5pc29sYXRlKCkpOworKyAgX18gbGkodDYs IE9wZXJhbmQoc3RhY2tfZ3VhcmRfY2hlY2spKTsKKysKKysgIEVtYmVkZGVkRGF0YSBkID0gRW1i ZWRkZWREYXRhOjpGcm9tQmxvYigpOworKyAgQ0hFQ0soQnVpbHRpbnM6OklzSXNvbGF0ZUluZGVw ZW5kZW50KEJ1aWx0aW5zOjprRGlyZWN0Q0VudHJ5KSk7CisrICBBZGRyZXNzIGVudHJ5ID0gZC5J bnN0cnVjdGlvblN0YXJ0T2ZCdWlsdGluKEJ1aWx0aW5zOjprRGlyZWN0Q0VudHJ5KTsKKysgIF9f IGxpKGtTY3JhdGNoUmVnLCBPcGVyYW5kKGVudHJ5LCBSZWxvY0luZm86Ok9GRl9IRUFQX1RBUkdF VCkpOworKyAgX18gQ2FsbChrU2NyYXRjaFJlZyk7CisrCisrICAvLyBEaXJlY3RDRW50cnkgYWxs b2NhdGVkIHNwYWNlIGZvciB0aGUgQyBhcmd1bWVudCBzbG90cyBzbyB3ZSBoYXZlIHRvCisrICAv LyBkcm9wIHRoZW0gd2l0aCB0aGUgcmV0dXJuIGFkZHJlc3MgZnJvbSB0aGUgc3RhY2sgd2l0aCBs b2FkaW5nIHNhdmVkIHNwLgorKyAgLy8gQXQgdGhpcyBwb2ludCBzdGFjayBtdXN0IGxvb2s6Cisr ICAvLyBbc3AgKyA3XSAtIGVtcHR5IHNsb3QgaWYgbmVlZGVkIGZvciBhbGlnbm1lbnQuCisrICAv LyBbc3AgKyA2XSAtIHNhdmVkIHNwLgorKyAgLy8gW3NwICsgNV0gLSBzZWNvbmQgd29yZCByZXNl cnZlZCBmb3IgcmV0dXJuIHZhbHVlLgorKyAgLy8gW3NwICsgNF0gLSBmaXJzdCB3b3JkIHJlc2Vy dmVkIGZvciByZXR1cm4gdmFsdWUuCisrICAvLyBbc3AgKyAzXSAtIEMgYXJndW1lbnQgc2xvdC4K KysgIC8vIFtzcCArIDJdIC0gQyBhcmd1bWVudCBzbG90LgorKyAgLy8gW3NwICsgMV0gLSBDIGFy Z3VtZW50IHNsb3QuCisrICAvLyBbc3AgKyAwXSAtIEMgYXJndW1lbnQgc2xvdC4KKysgIF9fIExk KHNwLCBNZW1PcGVyYW5kKHNwLCBzdGFja19hbGlnbm1lbnQgKyBrQ0FyZ3NTbG90c1NpemUpKTsK KysKKysgIF9fIGxpKGNvZGVfcG9pbnRlcigpLCBPcGVyYW5kKG1hc21fLT5Db2RlT2JqZWN0KCkp KTsKKyt9CisrCisrLy8gSGVscGVyIGZ1bmN0aW9uIGZvciByZWFkaW5nIGEgdmFsdWUgb3V0IG9m IGEgc3RhY2sgZnJhbWUuCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisrc3RhdGljIFQmIGZyYW1l X2VudHJ5KEFkZHJlc3MgcmVfZnJhbWUsIGludCBmcmFtZV9vZmZzZXQpIHsKKysgIHJldHVybiBy ZWludGVycHJldF9jYXN0PFQmPihNZW1vcnk8aW50MzJfdD4ocmVfZnJhbWUgKyBmcmFtZV9vZmZz ZXQpKTsKKyt9CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisrc3RhdGljIFQqIGZyYW1lX2Vu dHJ5X2FkZHJlc3MoQWRkcmVzcyByZV9mcmFtZSwgaW50IGZyYW1lX29mZnNldCkgeworKyAgcmV0 dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KHJlX2ZyYW1lICsgZnJhbWVfb2Zmc2V0KTsKKyt9Cisr CisraW50NjRfdCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpDaGVja1N0YWNrR3VhcmRTdGF0 ZShBZGRyZXNzKiByZXR1cm5fYWRkcmVzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3MgcmF3X2NvZGUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzIHJl X2ZyYW1lKSB7CisrICBDb2RlIHJlX2NvZGUgPSBDb2RlOjpjYXN0KE9iamVjdChyYXdfY29kZSkp OworKyAgcmV0dXJuIE5hdGl2ZVJlZ0V4cE1hY3JvQXNzZW1ibGVyOjpDaGVja1N0YWNrR3VhcmRT dGF0ZSgKKysgICAgICBmcmFtZV9lbnRyeTxJc29sYXRlKj4ocmVfZnJhbWUsIGtJc29sYXRlKSwK KysgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGZyYW1lX2VudHJ5PGludDY0X3Q+KHJlX2ZyYW1lLCBr U3RhcnRJbmRleCkpLAorKyAgICAgIHN0YXRpY19jYXN0PFJlZ0V4cDo6Q2FsbE9yaWdpbj4oCisr ICAgICAgICAgIGZyYW1lX2VudHJ5PGludDY0X3Q+KHJlX2ZyYW1lLCBrRGlyZWN0Q2FsbCkpLAor KyAgICAgIHJldHVybl9hZGRyZXNzLCByZV9jb2RlLAorKyAgICAgIGZyYW1lX2VudHJ5X2FkZHJl c3M8QWRkcmVzcz4ocmVfZnJhbWUsIGtJbnB1dFN0cmluZyksCisrICAgICAgZnJhbWVfZW50cnlf YWRkcmVzczxjb25zdCBieXRlKj4ocmVfZnJhbWUsIGtJbnB1dFN0YXJ0KSwKKysgICAgICBmcmFt ZV9lbnRyeV9hZGRyZXNzPGNvbnN0IGJ5dGUqPihyZV9mcmFtZSwga0lucHV0RW5kKSk7CisrfQor KworK01lbU9wZXJhbmQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6cmVnaXN0ZXJfbG9jYXRp b24oaW50IHJlZ2lzdGVyX2luZGV4KSB7CisrICBEQ0hFQ0socmVnaXN0ZXJfaW5kZXggPCAoMSA8 PCAzMCkpOworKyAgaWYgKG51bV9yZWdpc3RlcnNfIDw9IHJlZ2lzdGVyX2luZGV4KSB7CisrICAg IG51bV9yZWdpc3RlcnNfID0gcmVnaXN0ZXJfaW5kZXggKyAxOworKyAgfQorKyAgcmV0dXJuIE1l bU9wZXJhbmQoZnJhbWVfcG9pbnRlcigpLAorKyAgICAgICAgICAgICAgICAgICAga1JlZ2lzdGVy WmVybyAtIHJlZ2lzdGVyX2luZGV4ICoga1BvaW50ZXJTaXplKTsKKyt9CisrCisrdm9pZCBSZWdF eHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpDaGVja1Bvc2l0aW9uKGludCBjcF9vZmZzZXQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9vdXRz aWRlX2lucHV0KSB7CisrICBpZiAoY3Bfb2Zmc2V0ID49IDApIHsKKysgICAgQnJhbmNoT3JCYWNr dHJhY2sob25fb3V0c2lkZV9pbnB1dCwgZ2UsIGN1cnJlbnRfaW5wdXRfb2Zmc2V0KCksCisrICAg ICAgICAgICAgICAgICAgICAgIE9wZXJhbmQoLWNwX29mZnNldCAqIGNoYXJfc2l6ZSgpKSk7Cisr ICB9IGVsc2UgeworKyAgICBfXyBMZChhMSwgTWVtT3BlcmFuZChmcmFtZV9wb2ludGVyKCksIGtT dHJpbmdTdGFydE1pbnVzT25lKSk7CisrICAgIF9fIEFkZDY0KGEwLCBjdXJyZW50X2lucHV0X29m ZnNldCgpLCBPcGVyYW5kKGNwX29mZnNldCAqIGNoYXJfc2l6ZSgpKSk7CisrICAgIEJyYW5jaE9y QmFja3RyYWNrKG9uX291dHNpZGVfaW5wdXQsIGxlLCBhMCwgT3BlcmFuZChhMSkpOworKyAgfQor K30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkJyYW5jaE9yQmFja3RyYWNr KExhYmVsKiB0bywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbmRpdGlvbiBjb25kaXRpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBycywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIHJ0KSB7CisrICBp ZiAoY29uZGl0aW9uID09IGFsKSB7ICAvLyBVbmNvbmRpdGlvbmFsLgorKyAgICBpZiAodG8gPT0g bnVsbHB0cikgeworKyAgICAgIEJhY2t0cmFjaygpOworKyAgICAgIHJldHVybjsKKysgICAgfQor KyAgICBfXyBqbXAodG8pOworKyAgICByZXR1cm47CisrICB9CisrICBpZiAodG8gPT0gbnVsbHB0 cikgeworKyAgICBfXyBCcmFuY2goJmJhY2t0cmFja19sYWJlbF8sIGNvbmRpdGlvbiwgcnMsIHJ0 KTsKKysgICAgcmV0dXJuOworKyAgfQorKyAgX18gQnJhbmNoKHRvLCBjb25kaXRpb24sIHJzLCBy dCk7CisrfQorKworK3ZvaWQgUmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6U2FmZUNhbGwoTGFi ZWwqIHRvLCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBPcGVyYW5kJiBydCkgeworKyAgX18gQnJhbmNo QW5kTGluayh0bywgY29uZCwgcnMsIHJ0KTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2Vt YmxlclJJU0NWOjpTYWZlUmV0dXJuKCkgeworKyAgX18gcG9wKHJhKTsKKysgIF9fIEFkZDY0KHQx LCByYSwgT3BlcmFuZChtYXNtXy0+Q29kZU9iamVjdCgpKSk7CisrICBfXyBKdW1wKHQxKTsKKyt9 CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpTYWZlQ2FsbFRhcmdldChMYWJl bCogbmFtZSkgeworKyAgX18gYmluZChuYW1lKTsKKysgIF9fIFN1YjY0KHJhLCByYSwgT3BlcmFu ZChtYXNtXy0+Q29kZU9iamVjdCgpKSk7CisrICBfXyBwdXNoKHJhKTsKKyt9CisrCisrdm9pZCBS ZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWOjpQdXNoKFJlZ2lzdGVyIHNvdXJjZSkgeworKyAgRENI RUNLKHNvdXJjZSAhPSBiYWNrdHJhY2tfc3RhY2twb2ludGVyKCkpOworKyAgX18gQWRkNjQoYmFj a3RyYWNrX3N0YWNrcG9pbnRlcigpLCBiYWNrdHJhY2tfc3RhY2twb2ludGVyKCksCisrICAgICAg ICAgICBPcGVyYW5kKC1rSW50U2l6ZSkpOworKyAgX18gU3coc291cmNlLCBNZW1PcGVyYW5kKGJh Y2t0cmFja19zdGFja3BvaW50ZXIoKSkpOworK30KKysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1i bGVyUklTQ1Y6OlBvcChSZWdpc3RlciB0YXJnZXQpIHsKKysgIERDSEVDSyh0YXJnZXQgIT0gYmFj a3RyYWNrX3N0YWNrcG9pbnRlcigpKTsKKysgIF9fIEx3KHRhcmdldCwgTWVtT3BlcmFuZChiYWNr dHJhY2tfc3RhY2twb2ludGVyKCkpKTsKKysgIF9fIEFkZDY0KGJhY2t0cmFja19zdGFja3BvaW50 ZXIoKSwgYmFja3RyYWNrX3N0YWNrcG9pbnRlcigpLCBrSW50U2l6ZSk7CisrfQorKworK3ZvaWQg UmVnRXhwTWFjcm9Bc3NlbWJsZXJSSVNDVjo6Q2hlY2tQcmVlbXB0aW9uKCkgeworKyAgLy8gQ2hl Y2sgZm9yIHByZWVtcHRpb24uCisrICBFeHRlcm5hbFJlZmVyZW5jZSBzdGFja19saW1pdCA9Cisr ICAgICAgRXh0ZXJuYWxSZWZlcmVuY2U6OmFkZHJlc3Nfb2ZfanNsaW1pdChtYXNtXy0+aXNvbGF0 ZSgpKTsKKysgIF9fIGxpKGEwLCBPcGVyYW5kKHN0YWNrX2xpbWl0KSk7CisrICBfXyBMZChhMCwg TWVtT3BlcmFuZChhMCkpOworKyAgU2FmZUNhbGwoJmNoZWNrX3ByZWVtcHRfbGFiZWxfLCBVbGVz c19lcXVhbCwgc3AsIE9wZXJhbmQoYTApKTsKKyt9CisrCisrdm9pZCBSZWdFeHBNYWNyb0Fzc2Vt YmxlclJJU0NWOjpDaGVja1N0YWNrTGltaXQoKSB7CisrICBFeHRlcm5hbFJlZmVyZW5jZSBzdGFj a19saW1pdCA9CisrICAgICAgRXh0ZXJuYWxSZWZlcmVuY2U6OmFkZHJlc3Nfb2ZfcmVnZXhwX3N0 YWNrX2xpbWl0X2FkZHJlc3MoCisrICAgICAgICAgIG1hc21fLT5pc29sYXRlKCkpOworKworKyAg X18gbGkoYTAsIE9wZXJhbmQoc3RhY2tfbGltaXQpKTsKKysgIF9fIExkKGEwLCBNZW1PcGVyYW5k KGEwKSk7CisrICBTYWZlQ2FsbCgmc3RhY2tfb3ZlcmZsb3dfbGFiZWxfLCBVbGVzc19lcXVhbCwg YmFja3RyYWNrX3N0YWNrcG9pbnRlcigpLAorKyAgICAgICAgICAgT3BlcmFuZChhMCkpOworK30K KysKKyt2b2lkIFJlZ0V4cE1hY3JvQXNzZW1ibGVyUklTQ1Y6OkxvYWRDdXJyZW50Q2hhcmFjdGVy VW5jaGVja2VkKGludCBjcF9vZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcmFjdGVycykgeworKyAgUmVn aXN0ZXIgb2Zmc2V0ID0gY3VycmVudF9pbnB1dF9vZmZzZXQoKTsKKysgIGlmIChjcF9vZmZzZXQg IT0gMCkgeworKyAgICAvLyB0NCBpcyBub3QgYmVpbmcgdXNlZCB0byBzdG9yZSB0aGUgY2FwdHVy ZSBzdGFydCBpbmRleCBhdCB0aGlzIHBvaW50LgorKyAgICBfXyBBZGQ2NCh0NCwgY3VycmVudF9p bnB1dF9vZmZzZXQoKSwgT3BlcmFuZChjcF9vZmZzZXQgKiBjaGFyX3NpemUoKSkpOworKyAgICBv ZmZzZXQgPSB0NDsKKysgIH0KKysgIC8vIFdlIGFzc3VtZSB0aGF0IHdlIGNhbm5vdCBkbyB1bmFs aWduZWQgbG9hZHMgb24gUklTQy1WLCBzbyB0aGlzIGZ1bmN0aW9uCisrICAvLyBtdXN0IG9ubHkg YmUgdXNlZCB0byBsb2FkIGEgc2luZ2xlIGNoYXJhY3RlciBhdCBhIHRpbWUuCisrICBEQ0hFQ0tf RVEoMSwgY2hhcmFjdGVycyk7CisrICBfXyBBZGQ2NCh0MSwgZW5kX29mX2lucHV0X2FkZHJlc3Mo KSwgT3BlcmFuZChvZmZzZXQpKTsKKysgIGlmIChtb2RlXyA9PSBMQVRJTjEpIHsKKysgICAgX18g TGJ1KGN1cnJlbnRfY2hhcmFjdGVyKCksIE1lbU9wZXJhbmQodDEsIDApKTsKKysgIH0gZWxzZSB7 CisrICAgIERDSEVDSyhtb2RlXyA9PSBVQzE2KTsKKysgICAgX18gTGh1KGN1cnJlbnRfY2hhcmFj dGVyKCksIE1lbU9wZXJhbmQodDEsIDApKTsKKysgIH0KKyt9CisrCisrI3VuZGVmIF9fCisrCisr fSAgLy8gbmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CisrCisrI2VuZGlm ICAvLyBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVy ZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvcmVnZXhwL3Jpc2N2NjQv cmVnZXhwLW1hY3JvLWFzc2VtYmxlci1yaXNjdjY0LmgKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251 bGwKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2No cm9taXVtL3Y4L3NyYy9yZWdleHAvcmlzY3Y2NC9yZWdleHAtbWFjcm8tYXNzZW1ibGVyLXJpc2N2 NjQuaAorQEAgLTAsMCArMSwyMTMgQEAKKysvLyBDb3B5cmlnaHQgMjAxMSB0aGUgVjggcHJvamVj dCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBj b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBm b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgVjhfUkVHRVhQX1JJU0NWX1JF R0VYUF9NQUNST19BU1NFTUJMRVJfUklTQ1ZfSF8KKysjZGVmaW5lIFY4X1JFR0VYUF9SSVNDVl9S RUdFWFBfTUFDUk9fQVNTRU1CTEVSX1JJU0NWX0hfCisrCisrI2luY2x1ZGUgInNyYy9jb2RlZ2Vu L21hY3JvLWFzc2VtYmxlci5oIgorKyNpbmNsdWRlICJzcmMvY29kZWdlbi9yaXNjdjY0L2Fzc2Vt Ymxlci1yaXNjdjY0LmgiCisrI2luY2x1ZGUgInNyYy9yZWdleHAvcmVnZXhwLW1hY3JvLWFzc2Vt Ymxlci5oIgorKworK25hbWVzcGFjZSB2OCB7CisrbmFtZXNwYWNlIGludGVybmFsIHsKKysKKytj bGFzcyBWOF9FWFBPUlRfUFJJVkFURSBSZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWCisrICAgIDog cHVibGljIE5hdGl2ZVJlZ0V4cE1hY3JvQXNzZW1ibGVyIHsKKysgcHVibGljOgorKyAgUmVnRXhw TWFjcm9Bc3NlbWJsZXJSSVNDVihJc29sYXRlKiBpc29sYXRlLCBab25lKiB6b25lLCBNb2RlIG1v ZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdpc3RlcnNfdG9fc2F2ZSk7 CisrICB2aXJ0dWFsIH5SZWdFeHBNYWNyb0Fzc2VtYmxlclJJU0NWKCk7CisrICB2aXJ0dWFsIGlu dCBzdGFja19saW1pdF9zbGFjaygpOworKyAgdmlydHVhbCB2b2lkIEFkdmFuY2VDdXJyZW50UG9z aXRpb24oaW50IGJ5KTsKKysgIHZpcnR1YWwgdm9pZCBBZHZhbmNlUmVnaXN0ZXIoaW50IHJlZywg aW50IGJ5KTsKKysgIHZpcnR1YWwgdm9pZCBCYWNrdHJhY2soKTsKKysgIHZpcnR1YWwgdm9pZCBC aW5kKExhYmVsKiBsYWJlbCk7CisrICB2aXJ0dWFsIHZvaWQgQ2hlY2tBdFN0YXJ0KGludCBjcF9v ZmZzZXQsIExhYmVsKiBvbl9hdF9zdGFydCk7CisrICB2aXJ0dWFsIHZvaWQgQ2hlY2tDaGFyYWN0 ZXIodWludDMyX3QgYywgTGFiZWwqIG9uX2VxdWFsKTsKKysgIHZpcnR1YWwgdm9pZCBDaGVja0No YXJhY3RlckFmdGVyQW5kKHVpbnQzMl90IGMsIHVpbnQzMl90IG1hc2ssCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogb25fZXF1YWwpOworKyAgdmlydHVhbCB2 b2lkIENoZWNrQ2hhcmFjdGVyR1QodWMxNiBsaW1pdCwgTGFiZWwqIG9uX2dyZWF0ZXIpOworKyAg dmlydHVhbCB2b2lkIENoZWNrQ2hhcmFjdGVyTFQodWMxNiBsaW1pdCwgTGFiZWwqIG9uX2xlc3Mp OworKyAgLy8gQSAiZ3JlZWR5IGxvb3AiIGlzIGEgbG9vcCB0aGF0IGlzIGJvdGggZ3JlZWR5IGFu ZCB3aXRoIGEgc2ltcGxlCisrICAvLyBib2R5LiBJdCBoYXMgYSBwYXJ0aWN1bGFybHkgc2ltcGxl IGltcGxlbWVudGF0aW9uLgorKyAgdmlydHVhbCB2b2lkIENoZWNrR3JlZWR5TG9vcChMYWJlbCog b25fdG9zX2VxdWFsc19jdXJyZW50X3Bvc2l0aW9uKTsKKysgIHZpcnR1YWwgdm9pZCBDaGVja05v dEF0U3RhcnQoaW50IGNwX29mZnNldCwgTGFiZWwqIG9uX25vdF9hdF9zdGFydCk7CisrICB2aXJ0 dWFsIHZvaWQgQ2hlY2tOb3RCYWNrUmVmZXJlbmNlKGludCBzdGFydF9yZWcsIGJvb2wgcmVhZF9i YWNrd2FyZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIG9u X25vX21hdGNoKTsKKysgIHZpcnR1YWwgdm9pZCBDaGVja05vdEJhY2tSZWZlcmVuY2VJZ25vcmVD YXNlKGludCBzdGFydF9yZWcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIHJlYWRfYmFja3dhcmQsIGJvb2wgdW5pY29kZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9ub19tYXRjaCk7 CisrICB2aXJ0dWFsIHZvaWQgQ2hlY2tOb3RDaGFyYWN0ZXIodWludDMyX3QgYywgTGFiZWwqIG9u X25vdF9lcXVhbCk7CisrICB2aXJ0dWFsIHZvaWQgQ2hlY2tOb3RDaGFyYWN0ZXJBZnRlckFuZCh1 aW50MzJfdCBjLCB1aW50MzJfdCBtYXNrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGFiZWwqIG9uX25vdF9lcXVhbCk7CisrICB2aXJ0dWFsIHZvaWQgQ2hlY2tO b3RDaGFyYWN0ZXJBZnRlck1pbnVzQW5kKHVjMTYgYywgdWMxNiBtaW51cywgdWMxNiBtYXNrLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogb25f bm90X2VxdWFsKTsKKysgIHZpcnR1YWwgdm9pZCBDaGVja0NoYXJhY3RlckluUmFuZ2UodWMxNiBm cm9tLCB1YzE2IHRvLCBMYWJlbCogb25faW5fcmFuZ2UpOworKyAgdmlydHVhbCB2b2lkIENoZWNr Q2hhcmFjdGVyTm90SW5SYW5nZSh1YzE2IGZyb20sIHVjMTYgdG8sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvbl9ub3RfaW5fcmFuZ2UpOworKyAgdmly dHVhbCB2b2lkIENoZWNrQml0SW5UYWJsZShIYW5kbGU8Qnl0ZUFycmF5PiB0YWJsZSwgTGFiZWwq IG9uX2JpdF9zZXQpOworKworKyAgLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIG9mZnNldCBm cm9tIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGJlZm9yZQorKyAgLy8gdGhlIGVuZCBvZiB0aGUg c3RyaW5nLgorKyAgdmlydHVhbCB2b2lkIENoZWNrUG9zaXRpb24oaW50IGNwX29mZnNldCwgTGFi ZWwqIG9uX291dHNpZGVfaW5wdXQpOworKyAgdmlydHVhbCBib29sIENoZWNrU3BlY2lhbENoYXJh Y3RlckNsYXNzKHVjMTYgdHlwZSwgTGFiZWwqIG9uX25vX21hdGNoKTsKKysgIHZpcnR1YWwgdm9p ZCBGYWlsKCk7CisrICB2aXJ0dWFsIEhhbmRsZTxIZWFwT2JqZWN0PiBHZXRDb2RlKEhhbmRsZTxT dHJpbmc+IHNvdXJjZSk7CisrICB2aXJ0dWFsIHZvaWQgR29UbyhMYWJlbCogbGFiZWwpOworKyAg dmlydHVhbCB2b2lkIElmUmVnaXN0ZXJHRShpbnQgcmVnLCBpbnQgY29tcGFyYW5kLCBMYWJlbCog aWZfZ2UpOworKyAgdmlydHVhbCB2b2lkIElmUmVnaXN0ZXJMVChpbnQgcmVnLCBpbnQgY29tcGFy YW5kLCBMYWJlbCogaWZfbHQpOworKyAgdmlydHVhbCB2b2lkIElmUmVnaXN0ZXJFcVBvcyhpbnQg cmVnLCBMYWJlbCogaWZfZXEpOworKyAgdmlydHVhbCBJcnJlZ2V4cEltcGxlbWVudGF0aW9uIElt cGxlbWVudGF0aW9uKCk7CisrICB2aXJ0dWFsIHZvaWQgTG9hZEN1cnJlbnRDaGFyYWN0ZXJVbmNo ZWNrZWQoaW50IGNwX29mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgY2hhcmFjdGVyX2NvdW50KTsKKysgIHZpcnR1YWwgdm9pZCBQb3BDdXJy ZW50UG9zaXRpb24oKTsKKysgIHZpcnR1YWwgdm9pZCBQb3BSZWdpc3RlcihpbnQgcmVnaXN0ZXJf aW5kZXgpOworKyAgdmlydHVhbCB2b2lkIFB1c2hCYWNrdHJhY2soTGFiZWwqIGxhYmVsKTsKKysg IHZpcnR1YWwgdm9pZCBQdXNoQ3VycmVudFBvc2l0aW9uKCk7CisrICB2aXJ0dWFsIHZvaWQgUHVz aFJlZ2lzdGVyKGludCByZWdpc3Rlcl9pbmRleCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RhY2tDaGVja0ZsYWcgY2hlY2tfc3RhY2tfbGltaXQpOworKyAgdmlydHVhbCB2b2lkIFJl YWRDdXJyZW50UG9zaXRpb25Gcm9tUmVnaXN0ZXIoaW50IHJlZyk7CisrICB2aXJ0dWFsIHZvaWQg UmVhZFN0YWNrUG9pbnRlckZyb21SZWdpc3RlcihpbnQgcmVnKTsKKysgIHZpcnR1YWwgdm9pZCBT ZXRDdXJyZW50UG9zaXRpb25Gcm9tRW5kKGludCBieSk7CisrICB2aXJ0dWFsIHZvaWQgU2V0UmVn aXN0ZXIoaW50IHJlZ2lzdGVyX2luZGV4LCBpbnQgdG8pOworKyAgdmlydHVhbCBib29sIFN1Y2Nl ZWQoKTsKKysgIHZpcnR1YWwgdm9pZCBXcml0ZUN1cnJlbnRQb3NpdGlvblRvUmVnaXN0ZXIoaW50 IHJlZywgaW50IGNwX29mZnNldCk7CisrICB2aXJ0dWFsIHZvaWQgQ2xlYXJSZWdpc3RlcnMoaW50 IHJlZ19mcm9tLCBpbnQgcmVnX3RvKTsKKysgIHZpcnR1YWwgdm9pZCBXcml0ZVN0YWNrUG9pbnRl clRvUmVnaXN0ZXIoaW50IHJlZyk7CisrICB2aXJ0dWFsIGJvb2wgQ2FuUmVhZFVuYWxpZ25lZCgp OworKworKyAgLy8gQ2FsbGVkIGZyb20gUmVnRXhwIGlmIHRoZSBzdGFjay1ndWFyZCBpcyB0cmln Z2VyZWQuCisrICAvLyBJZiB0aGUgY29kZSBvYmplY3QgaXMgcmVsb2NhdGVkLCB0aGUgcmV0dXJu IGFkZHJlc3MgaXMgZml4ZWQgYmVmb3JlCisrICAvLyByZXR1cm5pbmcuCisrICAvLyB7cmF3X2Nv ZGV9IGlzIGFuIEFkZHJlc3MgYmVjYXVzZSB0aGlzIGlzIGNhbGxlZCB2aWEgRXh0ZXJuYWxSZWZl cmVuY2UuCisrICBzdGF0aWMgaW50NjRfdCBDaGVja1N0YWNrR3VhcmRTdGF0ZShBZGRyZXNzKiBy ZXR1cm5fYWRkcmVzcywgQWRkcmVzcyByYXdfY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFkZHJlc3MgcmVfZnJhbWUpOworKworKyAgdm9pZCBwcmludF9yZWdl eHBfZnJhbWVfY29uc3RhbnRzKCk7CisrCisrIHByaXZhdGU6CisrICAvLyBPZmZzZXRzIGZyb20g ZnJhbWVfcG9pbnRlcigpIG9mIGZ1bmN0aW9uIHBhcmFtZXRlcnMgYW5kIHN0b3JlZCByZWdpc3Rl cnMuCisrICBzdGF0aWMgY29uc3QgaW50IGtGcmFtZVBvaW50ZXIgPSAwOworKworKyAgLy8gQWJv dmUgdGhlIGZyYW1lIHBvaW50ZXIgLSBTdG9yZWQgcmVnaXN0ZXJzIGFuZCBzdGFjayBwYXNzZWQg cGFyYW1ldGVycy4KKysgIC8vIFJlZ2lzdGVycyBzMSB0byBzOCwgZnAsIGFuZCByYS4KKysgIHN0 YXRpYyBjb25zdCBpbnQga1N0b3JlZFJlZ2lzdGVycyA9IGtGcmFtZVBvaW50ZXI7CisrICAvLyBS ZXR1cm4gYWRkcmVzcyAoc3RvcmVkIGZyb20gbGluayByZWdpc3RlciwgcmVhZCBpbnRvIHBjIG9u IHJldHVybikuCisrCisrICAvLyBUaGlzIDkgaXMgOCBzLXJlZ3MgKHMxLi5zOCkgcGx1cyBmcC4K KysgIHN0YXRpYyBjb25zdCBpbnQga051bUNhbGxlZVJlZ3NUb1JldGFpbiA9IDk7CisrICBzdGF0 aWMgY29uc3QgaW50IGtSZXR1cm5BZGRyZXNzID0KKysgICAgICBrU3RvcmVkUmVnaXN0ZXJzICsg a051bUNhbGxlZVJlZ3NUb1JldGFpbiAqIGtQb2ludGVyU2l6ZTsKKysKKysgIC8vIFN0YWNrIGZy YW1lIGhlYWRlci4KKysgIHN0YXRpYyBjb25zdCBpbnQga1N0YWNrRnJhbWVIZWFkZXIgPSBrUmV0 dXJuQWRkcmVzczsKKysgIC8vIFN0YWNrIHBhcmFtZXRlcnMgcGxhY2VkIGJ5IGNhbGxlci4KKysg IHN0YXRpYyBjb25zdCBpbnQga0lzb2xhdGUgPSBrU3RhY2tGcmFtZUhlYWRlciArIGtQb2ludGVy U2l6ZTsKKysKKysgIC8vIEJlbG93IHRoZSBmcmFtZSBwb2ludGVyLgorKyAgLy8gUmVnaXN0ZXIg cGFyYW1ldGVycyBzdG9yZWQgYnkgc2V0dXAgY29kZS4KKysgIHN0YXRpYyBjb25zdCBpbnQga0Rp cmVjdENhbGwgPSBrRnJhbWVQb2ludGVyIC0ga1BvaW50ZXJTaXplOworKyAgc3RhdGljIGNvbnN0 IGludCBrU3RhY2tIaWdoRW5kID0ga0RpcmVjdENhbGwgLSBrUG9pbnRlclNpemU7CisrICBzdGF0 aWMgY29uc3QgaW50IGtOdW1PdXRwdXRSZWdpc3RlcnMgPSBrU3RhY2tIaWdoRW5kIC0ga1BvaW50 ZXJTaXplOworKyAgc3RhdGljIGNvbnN0IGludCBrUmVnaXN0ZXJPdXRwdXQgPSBrTnVtT3V0cHV0 UmVnaXN0ZXJzIC0ga1BvaW50ZXJTaXplOworKyAgc3RhdGljIGNvbnN0IGludCBrSW5wdXRFbmQg PSBrUmVnaXN0ZXJPdXRwdXQgLSBrUG9pbnRlclNpemU7CisrICBzdGF0aWMgY29uc3QgaW50IGtJ bnB1dFN0YXJ0ID0ga0lucHV0RW5kIC0ga1BvaW50ZXJTaXplOworKyAgc3RhdGljIGNvbnN0IGlu dCBrU3RhcnRJbmRleCA9IGtJbnB1dFN0YXJ0IC0ga1BvaW50ZXJTaXplOworKyAgc3RhdGljIGNv bnN0IGludCBrSW5wdXRTdHJpbmcgPSBrU3RhcnRJbmRleCAtIGtQb2ludGVyU2l6ZTsKKysgIC8v IFdoZW4gYWRkaW5nIGxvY2FsIHZhcmlhYmxlcyByZW1lbWJlciB0byBwdXNoIHNwYWNlIGZvciB0 aGVtIGluCisrICAvLyB0aGUgZnJhbWUgaW4gR2V0Q29kZS4KKysgIHN0YXRpYyBjb25zdCBpbnQg a1N1Y2Nlc3NmdWxDYXB0dXJlcyA9IGtJbnB1dFN0cmluZyAtIGtQb2ludGVyU2l6ZTsKKysgIHN0 YXRpYyBjb25zdCBpbnQga1N0cmluZ1N0YXJ0TWludXNPbmUgPSBrU3VjY2Vzc2Z1bENhcHR1cmVz IC0ga1BvaW50ZXJTaXplOworKyAgc3RhdGljIGNvbnN0IGludCBrQmFja3RyYWNrQ291bnQgPSBr U3RyaW5nU3RhcnRNaW51c09uZSAtIGtTeXN0ZW1Qb2ludGVyU2l6ZTsKKysgIC8vIEZpcnN0IHJl Z2lzdGVyIGFkZHJlc3MuIEZvbGxvd2luZyByZWdpc3RlcnMgYXJlIGJlbG93IGl0IG9uIHRoZSBz dGFjay4KKysgIHN0YXRpYyBjb25zdCBpbnQga1JlZ2lzdGVyWmVybyA9IGtCYWNrdHJhY2tDb3Vu dCAtIGtTeXN0ZW1Qb2ludGVyU2l6ZTsKKysKKysgIC8vIEluaXRpYWwgc2l6ZSBvZiBjb2RlIGJ1 ZmZlci4KKysgIHN0YXRpYyBjb25zdCBpbnQga1JlZ0V4cENvZGVTaXplID0gMTAyNDsKKysKKysg IC8vIENoZWNrIHdoZXRoZXIgcHJlZW1wdGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuCisrICB2b2lk IENoZWNrUHJlZW1wdGlvbigpOworKworKyAgLy8gQ2hlY2sgd2hldGhlciB3ZSBhcmUgZXhjZWVk aW5nIHRoZSBzdGFjayBsaW1pdCBvbiB0aGUgYmFja3RyYWNrIHN0YWNrLgorKyAgdm9pZCBDaGVj a1N0YWNrTGltaXQoKTsKKysKKysgIC8vIEdlbmVyYXRlIGEgY2FsbCB0byBDaGVja1N0YWNrR3Vh cmRTdGF0ZS4KKysgIHZvaWQgQ2FsbENoZWNrU3RhY2tHdWFyZFN0YXRlKFJlZ2lzdGVyIHNjcmF0 Y2gpOworKworKyAgLy8gVGhlIGVicC1yZWxhdGl2ZSBsb2NhdGlvbiBvZiBhIHJlZ2V4cCByZWdp c3Rlci4KKysgIE1lbU9wZXJhbmQgcmVnaXN0ZXJfbG9jYXRpb24oaW50IHJlZ2lzdGVyX2luZGV4 KTsKKysKKysgIC8vIFJlZ2lzdGVyIGhvbGRpbmcgdGhlIGN1cnJlbnQgaW5wdXQgcG9zaXRpb24g YXMgbmVnYXRpdmUgb2Zmc2V0IGZyb20KKysgIC8vIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KKysg IGlubGluZSBSZWdpc3RlciBjdXJyZW50X2lucHV0X29mZnNldCgpIHsgcmV0dXJuIGE2OyB9Cisr CisrICAvLyBUaGUgcmVnaXN0ZXIgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYWZ0 ZXIgTG9hZEN1cnJlbnRDaGFyYWN0ZXIuCisrICBpbmxpbmUgUmVnaXN0ZXIgY3VycmVudF9jaGFy YWN0ZXIoKSB7IHJldHVybiBhNzsgfQorKworKyAgLy8gUmVnaXN0ZXIgaG9sZGluZyBhZGRyZXNz IG9mIHRoZSBlbmQgb2YgdGhlIGlucHV0IHN0cmluZy4KKysgIGlubGluZSBSZWdpc3RlciBlbmRf b2ZfaW5wdXRfYWRkcmVzcygpIHsgcmV0dXJuIHQyOyB9CisrCisrICAvLyBSZWdpc3RlciBob2xk aW5nIHRoZSBmcmFtZSBhZGRyZXNzLiBMb2NhbCB2YXJpYWJsZXMsIHBhcmFtZXRlcnMgYW5kCisr ICAvLyByZWdleHAgcmVnaXN0ZXJzIGFyZSBhZGRyZXNzZWQgcmVsYXRpdmUgdG8gdGhpcy4KKysg IGlubGluZSBSZWdpc3RlciBmcmFtZV9wb2ludGVyKCkgeyByZXR1cm4gZnA7IH0KKysKKysgIC8v IFRoZSByZWdpc3RlciBjb250YWluaW5nIHRoZSBiYWNrdHJhY2sgc3RhY2sgdG9wLiBQcm92aWRl cyBhIG1lYW5pbmdmdWwKKysgIC8vIG5hbWUgdG8gdGhlIHJlZ2lzdGVyLgorKyAgaW5saW5lIFJl Z2lzdGVyIGJhY2t0cmFja19zdGFja3BvaW50ZXIoKSB7IHJldHVybiB0MDsgfQorKworKyAgLy8g UmVnaXN0ZXIgaG9sZGluZyBwb2ludGVyIHRvIHRoZSBjdXJyZW50IGNvZGUgb2JqZWN0LgorKyAg aW5saW5lIFJlZ2lzdGVyIGNvZGVfcG9pbnRlcigpIHsgcmV0dXJuIGE1OyB9CisrCisrICAvLyBC eXRlIHNpemUgb2YgY2hhcnMgaW4gdGhlIHN0cmluZyB0byBtYXRjaCAoZGVjaWRlZCBieSB0aGUg TW9kZSBhcmd1bWVudCkuCisrICBpbmxpbmUgaW50IGNoYXJfc2l6ZSgpIHsgcmV0dXJuIHN0YXRp Y19jYXN0PGludD4obW9kZV8pOyB9CisrCisrICAvLyBFcXVpdmFsZW50IHRvIGEgY29uZGl0aW9u YWwgYnJhbmNoIHRvIHRoZSBsYWJlbCwgdW5sZXNzIHRoZSBsYWJlbAorKyAgLy8gaXMgbnVsbHB0 ciwgaW4gd2hpY2ggY2FzZSBpdCBpcyBhIGNvbmRpdGlvbmFsIEJhY2t0cmFjay4KKysgIHZvaWQg QnJhbmNoT3JCYWNrdHJhY2soTGFiZWwqIHRvLCBDb25kaXRpb24gY29uZGl0aW9uLCBSZWdpc3Rl ciBycywKKysgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYgcnQpOworKwor KyAgLy8gQ2FsbCBhbmQgcmV0dXJuIGludGVybmFsbHkgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIGlu IGEgd2F5IHRoYXQKKysgIC8vIGlzIEdDLXNhZmUgKGkuZS4sIGRvZXNuJ3QgbGVhdmUgYWJzb2x1 dGUgY29kZSBhZGRyZXNzZXMgb24gdGhlIHN0YWNrKQorKyAgaW5saW5lIHZvaWQgU2FmZUNhbGwo TGFiZWwqIHRvLCBDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgcnMsCisrICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBPcGVyYW5kJiBydCk7CisrICBpbmxpbmUgdm9pZCBTYWZlUmV0dXJuKCk7 CisrICBpbmxpbmUgdm9pZCBTYWZlQ2FsbFRhcmdldChMYWJlbCogbmFtZSk7CisrCisrICAvLyBQ dXNoZXMgdGhlIHZhbHVlIG9mIGEgcmVnaXN0ZXIgb24gdGhlIGJhY2t0cmFjayBzdGFjay4gRGVj cmVtZW50cyB0aGUKKysgIC8vIHN0YWNrIHBvaW50ZXIgYnkgYSB3b3JkIHNpemUgYW5kIHN0b3Jl cyB0aGUgcmVnaXN0ZXIncyB2YWx1ZSB0aGVyZS4KKysgIGlubGluZSB2b2lkIFB1c2goUmVnaXN0 ZXIgc291cmNlKTsKKysKKysgIC8vIFBvcHMgYSB2YWx1ZSBmcm9tIHRoZSBiYWNrdHJhY2sgc3Rh Y2suIFJlYWRzIHRoZSB3b3JkIGF0IHRoZSBzdGFjayBwb2ludGVyCisrICAvLyBhbmQgaW5jcmVt ZW50cyBpdCBieSBhIHdvcmQgc2l6ZS4KKysgIGlubGluZSB2b2lkIFBvcChSZWdpc3RlciB0YXJn ZXQpOworKworKyAgSXNvbGF0ZSogaXNvbGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1hc21fLT5pc29s YXRlKCk7IH0KKysKKysgIE1hY3JvQXNzZW1ibGVyKiBtYXNtXzsKKysKKysgIC8vIFdoaWNoIG1v ZGUgdG8gZ2VuZXJhdGUgY29kZSBmb3IgKExhdGluMSBvciBVQzE2KS4KKysgIE1vZGUgbW9kZV87 CisrCisrICAvLyBPbmUgZ3JlYXRlciB0aGFuIG1heGltYWwgcmVnaXN0ZXIgaW5kZXggYWN0dWFs bHkgdXNlZC4KKysgIGludCBudW1fcmVnaXN0ZXJzXzsKKysKKysgIC8vIE51bWJlciBvZiByZWdp c3RlcnMgdG8gb3V0cHV0IGF0IHRoZSBlbmQgKHRoZSBzYXZlZCByZWdpc3RlcnMKKysgIC8vIGFy ZSBhbHdheXMgMC4ubnVtX3NhdmVkX3JlZ2lzdGVyc18tMSkuCisrICBpbnQgbnVtX3NhdmVkX3Jl Z2lzdGVyc187CisrCisrICAvLyBMYWJlbHMgdXNlZCBpbnRlcm5hbGx5LgorKyAgTGFiZWwgZW50 cnlfbGFiZWxfOworKyAgTGFiZWwgc3RhcnRfbGFiZWxfOworKyAgTGFiZWwgc3VjY2Vzc19sYWJl bF87CisrICBMYWJlbCBiYWNrdHJhY2tfbGFiZWxfOworKyAgTGFiZWwgZXhpdF9sYWJlbF87Cisr ICBMYWJlbCBjaGVja19wcmVlbXB0X2xhYmVsXzsKKysgIExhYmVsIHN0YWNrX292ZXJmbG93X2xh YmVsXzsKKysgIExhYmVsIGludGVybmFsX2ZhaWx1cmVfbGFiZWxfOworK307CisrCisrfSAgLy8g bmFtZXNwYWNlIGludGVybmFsCisrfSAgLy8gbmFtZXNwYWNlIHY4CisrCisrI2VuZGlmICAvLyBW OF9SRUdFWFBfUklTQ1ZfUkVHRVhQX01BQ1JPX0FTU0VNQkxFUl9SSVNDVl9IXworSW5kZXg6IHF0 d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgv c3JjL3J1bnRpbWUvcnVudGltZS1hdG9taWNzLmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Ny Yy9ydW50aW1lL3J1bnRpbWUtYXRvbWljcy5jYworKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUt c3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3J1bnRpbWUvcnVudGltZS1h dG9taWNzLmNjCitAQCAtMTksNyArMTksOCBAQCBuYW1lc3BhY2UgaW50ZXJuYWwgeworIAorIC8v IE90aGVyIHBsYXRmb3JtcyBoYXZlIENTQSBzdXBwb3J0LCBzZWUgYnVpbHRpbnMtc2hhcmVkYXJy YXlidWZmZXItZ2VuLmguCisgI2lmIFY4X1RBUkdFVF9BUkNIX01JUFMgfHwgVjhfVEFSR0VUX0FS Q0hfTUlQUzY0IHx8IFY4X1RBUkdFVF9BUkNIX1BQQzY0IHx8IFwKKy0gICAgVjhfVEFSR0VUX0FS Q0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1MzOTAgfHwgVjhfVEFSR0VUX0FSQ0hfUzM5MFgKKysg ICAgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1MzOTAgfHwgVjhfVEFSR0VU X0FSQ0hfUzM5MFggfHwgICAgXAorKyAgICBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0IHx8IFY4X1RB UkdFVF9BUkNIX1JJU0NWCisgCisgbmFtZXNwYWNlIHsKKyAKK0BAIC01NjgsNiArNTY5LDYgQEAg UlVOVElNRV9GVU5DVElPTihSdW50aW1lX0F0b21pY3NYb3IpIHsgVQorIAorICNlbmRpZiAgLy8g VjhfVEFSR0VUX0FSQ0hfTUlQUyB8fCBWOF9UQVJHRVRfQVJDSF9NSVBTNjQgfHwgVjhfVEFSR0VU X0FSQ0hfUFBDNjQKKyAgICAgICAgIC8vIHx8IFY4X1RBUkdFVF9BUkNIX1BQQyB8fCBWOF9UQVJH RVRfQVJDSF9TMzkwIHx8IFY4X1RBUkdFVF9BUkNIX1MzOTBYCistCisrICAgICAgICAvLyB8fCBW OF9UQVJHRVRfQVJDSF9SSVNDVjY0IHx8IFY4X1RBUkdFVF9BUkNIX1JJU0NWCisgfSAgLy8gbmFt ZXNwYWNlIGludGVybmFsCisgfSAgLy8gbmFtZXNwYWNlIHY4CitJbmRleDogcXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvc25hcHNo b3QvZGVzZXJpYWxpemVyLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJl LXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3NuYXBzaG90L2Rl c2VyaWFsaXplci5oCisrKysgcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvc25hcHNob3QvZGVzZXJpYWxpemVyLmgKK0BAIC0yOSw5 ICsyOSwxMCBAQCBjbGFzcyBPYmplY3Q7CisgCisgLy8gVXNlZCBmb3IgcGxhdGZvcm1zIHdpdGgg ZW1iZWRkZWQgY29uc3RhbnQgcG9vbHMgdG8gdHJpZ2dlciBkZXNlcmlhbGl6YXRpb24KKyAvLyBv ZiBvYmplY3RzIGZvdW5kIGluIGNvZGUuCistI2lmIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfTUlQ UykgfHwgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9NSVBTNjQpIHx8IFwKKy0gICAgZGVmaW5lZChW OF9UQVJHRVRfQVJDSF9QUEMpIHx8IGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUzM5MCkgfHwgICAg XAorLSAgICBkZWZpbmVkKFY4X1RBUkdFVF9BUkNIX1BQQzY0KSB8fCBWOF9FTUJFRERFRF9DT05T VEFOVF9QT09MCisrI2lmIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfTUlQUykgfHwgZGVmaW5lZChW OF9UQVJHRVRfQVJDSF9NSVBTNjQpIHx8ICAgXAorKyAgICBkZWZpbmVkKFY4X1RBUkdFVF9BUkNI X1BQQykgfHwgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9TMzkwKSB8fCAgICAgIFwKKysgICAgZGVm aW5lZChWOF9UQVJHRVRfQVJDSF9QUEM2NCkgfHwgZGVmaW5lZChWOF9UQVJHRVRfQVJDSF9SSVND VjY0KSB8fCBcCisrICAgIGRlZmluZWQoVjhfVEFSR0VUX0FSQ0hfUklTQ1YpIHx8IFY4X0VNQkVE REVEX0NPTlNUQU5UX1BPT0wKKyAjZGVmaW5lIFY4X0NPREVfRU1CRURTX09CSkVDVF9QT0lOVEVS IDEKKyAjZWxzZQorICNkZWZpbmUgVjhfQ09ERV9FTUJFRFNfT0JKRUNUX1BPSU5URVIgMAorSW5k ZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21p dW0vdjgvc3JjL3dhc20vYmFzZWxpbmUvbGlmdG9mZi1hc3NlbWJsZXItZGVmcy5oCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy93YXNtL2Jhc2VsaW5lL2xpZnRvZmYtYXNzZW1ibGVyLWRlZnMu aAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hy b21pdW0vdjgvc3JjL3dhc20vYmFzZWxpbmUvbGlmdG9mZi1hc3NlbWJsZXItZGVmcy5oCitAQCAt NjksNiArNjksMjMgQEAgY29uc3RleHByIFJlZ0xpc3Qga0xpZnRvZmZBc3NlbWJsZXJGcENhYwor ICAgICBkMCwgZDEsIGQyLCBkMywgZDQsIGQ1LCBkNiwgZDcsIGQ4LCBkOSwgZDEwLCBkMTEsIGQx MiwgZDEzLCBkMTQsIGQxNiwgZDE3LAorICAgICBkMTgsIGQxOSwgZDIwLCBkMjEsIGQyMiwgZDIz LCBkMjQsIGQyNSwgZDI2LCBkMjcsIGQyOCwgZDI5KTsKKyAKKysjZWxpZiBWOF9UQVJHRVRfQVJD SF9SSVNDVjY0CisrCisrLy8gQW55IGNoYW5nZSBvZiBrTGlmdG9mZkFzc2VtYmxlckdwQ2FjaGVS ZWdzIGFsc28gbmVlZCB0byB1cGRhdGUKKysvLyBrUHVzaGVkR3BSZWdzIGluIGZyYW1lLWNvbnN0 YW50cy1yaXNjdjY0LmgKKytjb25zdGV4cHIgUmVnTGlzdCBrTGlmdG9mZkFzc2VtYmxlckdwQ2Fj aGVSZWdzID0KKysgICAgUmVnaXN0ZXI6Okxpc3RPZihhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBh NiwgYTcsIHQwLCB0MSwgdDIsIHM3KTsKKysKKysvLyBBbnkgY2hhbmdlIG9mIGtMaWZ0b2ZmQXNz ZW1ibGVyR3BDYWNoZVJlZ3MgYWxzbyBuZWVkIHRvIHVwZGF0ZQorKy8vIGtQdXNoZWRGcFJlZ3Mg aW4gZnJhbWUtY29uc3RhbnRzLXJpc2N2NjQuaAorK2NvbnN0ZXhwciBSZWdMaXN0IGtMaWZ0b2Zm QXNzZW1ibGVyRnBDYWNoZVJlZ3MgPQorKyAgICBEb3VibGVSZWdpc3Rlcjo6TGlzdE9mKGZ0MCwg ZnQxLCBmdDIsIGZ0MywgZnQ0LCBmdDUsIGZ0NiwgZnQ3LCBmYTAsIGZhMSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICBmYTIsIGZhMywgZmE0LCBmYTUsIGZhNiwgZmE3LCBmdDgsIGZ0OSwg ZnQxMCwgZnQxMSk7CisrCisrI2VsaWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKysKKysjZXJyb3Ig UklTQ1YgKDMyKSBhcmNoaXRlY3R1cmUgbm90IHN1cHBvcnRlZCB5ZXQKKysKKyAjZWxzZQorIAor IGNvbnN0ZXhwciBSZWdMaXN0IGtMaWZ0b2ZmQXNzZW1ibGVyR3BDYWNoZVJlZ3MgPSAweGZmOwor QEAgLTExNiw2ICsxMzMsMTggQEAgY29uc3RleHByIENvbmRpdGlvbiBrVW5zaWduZWRMZXNzRXF1 YWwgPQorIGNvbnN0ZXhwciBDb25kaXRpb24ga1Vuc2lnbmVkR3JlYXRlclRoYW4gPSBoaTsKKyBj b25zdGV4cHIgQ29uZGl0aW9uIGtVbnNpZ25lZEdyZWF0ZXJFcXVhbCA9IGhzOworIAorKyNlbGlm IFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQgfHwgVjhfVEFSR0VUX0FSQ0hfUklTQ1YKKytjb25zdGV4 cHIgQ29uZGl0aW9uIGtFcXVhbCA9IGVxOworK2NvbnN0ZXhwciBDb25kaXRpb24ga1VuZXF1YWwg PSBuZTsKKytjb25zdGV4cHIgQ29uZGl0aW9uIGtTaWduZWRMZXNzVGhhbiA9IGx0OworK2NvbnN0 ZXhwciBDb25kaXRpb24ga1NpZ25lZExlc3NFcXVhbCA9IGxlOworK2NvbnN0ZXhwciBDb25kaXRp b24ga1NpZ25lZEdyZWF0ZXJUaGFuID0gZ3Q7CisrY29uc3RleHByIENvbmRpdGlvbiBrU2lnbmVk R3JlYXRlckVxdWFsID0gZ2U7CisrY29uc3RleHByIENvbmRpdGlvbiBrVW5zaWduZWRMZXNzVGhh biA9IHVsdDsKKytjb25zdGV4cHIgQ29uZGl0aW9uIGtVbnNpZ25lZExlc3NFcXVhbCA9IHVsZTsK Kytjb25zdGV4cHIgQ29uZGl0aW9uIGtVbnNpZ25lZEdyZWF0ZXJUaGFuID0gdWd0OworK2NvbnN0 ZXhwciBDb25kaXRpb24ga1Vuc2lnbmVkR3JlYXRlckVxdWFsID0gdWdlOworKworICNlbHNlCisg CisgLy8gT24gdW5pbXBsZW1lbnRlZCBwbGF0Zm9ybXMsIGp1c3QgbWFrZSB0aGlzIGNvbXBpbGUu CitJbmRleDogcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS92OC9zcmMvd2FzbS9iYXNlbGluZS9saWZ0b2ZmLWFzc2VtYmxlci5oCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zLm9yaWcvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy93YXNtL2Jhc2VsaW5lL2xpZnRvZmYtYXNzZW1ibGVyLmgKKysr KyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy93YXNtL2Jhc2VsaW5lL2xpZnRvZmYtYXNzZW1ibGVyLmgKK0BAIC0xMzUzLDYgKzEz NTMsMTAgQEAgY2xhc3MgTGlmdG9mZlN0YWNrU2xvdHMgeworICNpbmNsdWRlICJzcmMvd2FzbS9i YXNlbGluZS9taXBzNjQvbGlmdG9mZi1hc3NlbWJsZXItbWlwczY0LmgiCisgI2VsaWYgVjhfVEFS R0VUX0FSQ0hfUzM5MAorICNpbmNsdWRlICJzcmMvd2FzbS9iYXNlbGluZS9zMzkwL2xpZnRvZmYt YXNzZW1ibGVyLXMzOTAuaCIKKysjZWxpZiBWOF9UQVJHRVRfQVJDSF9SSVNDVjY0CisrI2luY2x1 ZGUgInNyYy93YXNtL2Jhc2VsaW5lL3Jpc2N2NjQvbGlmdG9mZi1hc3NlbWJsZXItcmlzY3Y2NC5o IgorKyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWCisrI2luY2x1ZGUgInNyYy93YXNtL2Jhc2Vs aW5lL3Jpc2N2L2xpZnRvZmYtYXNzZW1ibGVyLXJpc2N2LmgiCisgI2Vsc2UKKyAjZXJyb3IgVW5z dXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLgorICNlbmRpZgorSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5 d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3dhc20vYmFzZWxp bmUvcmlzY3Y2NC9saWZ0b2ZmLWFzc2VtYmxlci1yaXNjdjY0LmgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAv ZGV2L251bGwKKysrKyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3Y4L3NyYy93YXNtL2Jhc2VsaW5lL3Jpc2N2NjQvbGlmdG9mZi1hc3NlbWJs ZXItcmlzY3Y2NC5oCitAQCAtMCwwICsxLDIzMzUgQEAKKysvLyBDb3B5cmlnaHQgMjAxNyB0aGUg VjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlz IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g YmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgVjhfV0FTTV9C QVNFTElORV9SSVNDVl9MSUZUT0ZGX0FTU0VNQkxFUl9SSVNDVl9IXworKyNkZWZpbmUgVjhfV0FT TV9CQVNFTElORV9SSVNDVl9MSUZUT0ZGX0FTU0VNQkxFUl9SSVNDVl9IXworKworKyNpbmNsdWRl ICJzcmMvd2FzbS9iYXNlbGluZS9saWZ0b2ZmLWFzc2VtYmxlci5oIgorKworK25hbWVzcGFjZSB2 OCB7CisrbmFtZXNwYWNlIGludGVybmFsIHsKKytuYW1lc3BhY2Ugd2FzbSB7CisrCisrbmFtZXNw YWNlIGxpZnRvZmYgeworKworKy8vIExpZnRvZmYgRnJhbWVzLgorKy8vCisrLy8gIHNsb3QgICAg ICBGcmFtZQorKy8vICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysvLyAgbis0ICB8IG9wdGlvbmFsIHBhZGRpbmcgc2xvdCB0byBrZWVwIHRo ZSBzdGFjayAxNiBieXRlIGFsaWduZWQuCisrLy8gIG4rMyAgfCAgIHBhcmFtZXRlciBuICAgICAg fAorKy8vICAuLi4gIHwgICAgICAgLi4uICAgICAgICAgIHwKKysvLyAgIDQgICB8ICAgcGFyYW1l dGVyIDEgICAgICB8IG9yIHBhcmFtZXRlciAyCisrLy8gICAzICAgfCAgIHBhcmFtZXRlciAwICAg ICAgfCBvciBwYXJhbWV0ZXIgMQorKy8vICAgMiAgIHwgIChyZXN1bHQgYWRkcmVzcykgIHwgb3Ig cGFyYW1ldGVyIDAKKysvLyAgLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrLy8gICAxICAgfCByZXR1cm4gYWRkciAocmEpICAgfAorKy8vICAg MCAgIHwgcHJldmlvdXMgZnJhbWUgKGZwKXwKKysvLyAgLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rICA8LS0gZnJhbWUgcHRyIChmcCkKKysvLyAgLTEgICB8IDB4YTogV0FTTSAgICAgICAgICB8 CisrLy8gIC0yICAgfCAgICAgaW5zdGFuY2UgICAgICAgfAorKy8vICAtLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysvLyAgLTMgICB8ICAgICBz bG90IDAgICAgICAgICB8ICAgXgorKy8vICAtNCAgIHwgICAgIHNsb3QgMSAgICAgICAgIHwgICB8 CisrLy8gICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBGcmFtZSBzbG90cworKy8vICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICB8CisrLy8gICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgIHYKKysvLyAgICAgICB8IG9wdGlvbmFsIHBhZGRpbmcgc2xvdCB0byBrZWVwIHRoZSBz dGFjayAxNiBieXRlIGFsaWduZWQuCisrLy8gIC0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKyAg PC0tIHN0YWNrIHB0ciAoc3ApCisrLy8KKysKKysvLyBmcC04IGhvbGRzIHRoZSBzdGFjayBtYXJr ZXIsIGZwLTE2IGlzIHRoZSBpbnN0YW5jZSBwYXJhbWV0ZXIuCisrY29uc3RleHByIGludCBrSW5z dGFuY2VPZmZzZXQgPSAxNjsKKysKKytpbmxpbmUgTWVtT3BlcmFuZCBHZXRTdGFja1Nsb3QoaW50 IG9mZnNldCkgeyByZXR1cm4gTWVtT3BlcmFuZChmcCwgLW9mZnNldCk7IH0KKysKKytpbmxpbmUg TWVtT3BlcmFuZCBHZXRJbnN0YW5jZU9wZXJhbmQoKSB7IHJldHVybiBHZXRTdGFja1Nsb3Qoa0lu c3RhbmNlT2Zmc2V0KTsgfQorKworK2lubGluZSB2b2lkIExvYWQoTGlmdG9mZkFzc2VtYmxlciog YXNzbSwgTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTWVtT3BlcmFuZCBzcmMsCisrICAgICAgICAgICAg ICAgICBWYWx1ZVR5cGUgdHlwZSkgeworKyAgc3dpdGNoICh0eXBlLmtpbmQoKSkgeworKyAgICBj YXNlIFZhbHVlVHlwZTo6a0kzMjoKKysgICAgICBhc3NtLT5Mdyhkc3QuZ3AoKSwgc3JjKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBWYWx1ZVR5cGU6OmtJNjQ6CisrICAgICAgYXNzbS0+TGQo ZHN0LmdwKCksIHNyYyk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprRjMy OgorKyAgICAgIGFzc20tPkxvYWRGbG9hdChkc3QuZnAoKSwgc3JjKTsKKysgICAgICBicmVhazsK KysgICAgY2FzZSBWYWx1ZVR5cGU6OmtGNjQ6CisrICAgICAgYXNzbS0+TG9hZERvdWJsZShkc3Qu ZnAoKSwgc3JjKTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNI QUJMRSgpOworKyAgfQorK30KKysKKytpbmxpbmUgdm9pZCBTdG9yZShMaWZ0b2ZmQXNzZW1ibGVy KiBhc3NtLCBSZWdpc3RlciBiYXNlLCBpbnQzMl90IG9mZnNldCwKKysgICAgICAgICAgICAgICAg ICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjLCBWYWx1ZVR5cGUgdHlwZSkgeworKyAgTWVtT3BlcmFuZCBk c3QoYmFzZSwgb2Zmc2V0KTsKKysgIHN3aXRjaCAodHlwZS5raW5kKCkpIHsKKysgICAgY2FzZSBW YWx1ZVR5cGU6OmtJMzI6CisrICAgICAgYXNzbS0+VXN3KHNyYy5ncCgpLCBkc3QpOworKyAgICAg IGJyZWFrOworKyAgICBjYXNlIFZhbHVlVHlwZTo6a0k2NDoKKysgICAgICBhc3NtLT5Vc2Qoc3Jj LmdwKCksIGRzdCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprRjMyOgor KyAgICAgIGFzc20tPlVTdG9yZUZsb2F0KHNyYy5mcCgpLCBkc3QsIHQ1KTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBWYWx1ZVR5cGU6OmtGNjQ6CisrICAgICAgYXNzbS0+VVN0b3JlRG91Ymxl KHNyYy5mcCgpLCBkc3QsIHQ1KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAg ICBVTlJFQUNIQUJMRSgpOworKyAgfQorK30KKysKKytpbmxpbmUgdm9pZCBwdXNoKExpZnRvZmZB c3NlbWJsZXIqIGFzc20sIExpZnRvZmZSZWdpc3RlciByZWcsIFZhbHVlVHlwZSB0eXBlKSB7Cisr ICBzd2l0Y2ggKHR5cGUua2luZCgpKSB7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprSTMyOgorKyAg ICAgIGFzc20tPmFkZGkoc3AsIHNwLCAta1N5c3RlbVBvaW50ZXJTaXplKTsKKysgICAgICBhc3Nt LT5TdyhyZWcuZ3AoKSwgTWVtT3BlcmFuZChzcCwgMCkpOworKyAgICAgIGJyZWFrOworKyAgICBj YXNlIFZhbHVlVHlwZTo6a0k2NDoKKysgICAgICBhc3NtLT5wdXNoKHJlZy5ncCgpKTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBWYWx1ZVR5cGU6OmtGMzI6CisrICAgICAgYXNzbS0+YWRkaShz cCwgc3AsIC1rU3lzdGVtUG9pbnRlclNpemUpOworKyAgICAgIGFzc20tPlN0b3JlRmxvYXQocmVn LmZwKCksIE1lbU9wZXJhbmQoc3AsIDApKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBWYWx1 ZVR5cGU6OmtGNjQ6CisrICAgICAgYXNzbS0+YWRkaShzcCwgc3AsIC1rU3lzdGVtUG9pbnRlclNp emUpOworKyAgICAgIGFzc20tPlN0b3JlRG91YmxlKHJlZy5mcCgpLCBNZW1PcGVyYW5kKHNwLCAw KSk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5SRUFDSEFCTEUoKTsK KysgIH0KKyt9CisrCisrI2lmIGRlZmluZWQoVjhfVEFSR0VUX0JJR19FTkRJQU4pCisraW5saW5l IHZvaWQgQ2hhbmdlRW5kaWFubmVzc0xvYWQoTGlmdG9mZkFzc2VtYmxlciogYXNzbSwgTGlmdG9m ZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2FkVHlw ZSB0eXBlLCBMaWZ0b2ZmUmVnTGlzdCBwaW5uZWQpIHsKKysgIGJvb2wgaXNfZmxvYXQgPSBmYWxz ZTsKKysgIExpZnRvZmZSZWdpc3RlciB0bXAgPSBkc3Q7CisrICBzd2l0Y2ggKHR5cGUudmFsdWUo KSkgeworKyAgICBjYXNlIExvYWRUeXBlOjprSTY0TG9hZDhVOgorKyAgICBjYXNlIExvYWRUeXBl OjprSTY0TG9hZDhTOgorKyAgICBjYXNlIExvYWRUeXBlOjprSTMyTG9hZDhVOgorKyAgICBjYXNl IExvYWRUeXBlOjprSTMyTG9hZDhTOgorKyAgICAgIC8vIE5vIG5lZWQgdG8gY2hhbmdlIGVuZGlh bm5lc3MgZm9yIGJ5dGUgc2l6ZS4KKysgICAgICByZXR1cm47CisrICAgIGNhc2UgTG9hZFR5cGU6 OmtGMzJMb2FkOgorKyAgICAgIGlzX2Zsb2F0ID0gdHJ1ZTsKKysgICAgICB0bXAgPSBhc3NtLT5H ZXRVbnVzZWRSZWdpc3RlcihrR3BSZWcsIHBpbm5lZCk7CisrICAgICAgYXNzbS0+ZW1pdF90eXBl X2NvbnZlcnNpb24oa0V4cHJJMzJSZWludGVycHJldEYzMiwgdG1wLCBkc3QpOworKyAgICAgIFY4 X0ZBTExUSFJPVUdIOworKyAgICBjYXNlIExvYWRUeXBlOjprSTY0TG9hZDMyVToKKysgICAgICBh c3NtLT5UdXJib0Fzc2VtYmxlcjo6Qnl0ZVN3YXBVbnNpZ25lZCh0bXAuZ3AoKSwgdG1wLmdwKCks IDQpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIExvYWRUeXBlOjprSTMyTG9hZDoKKysgICAg Y2FzZSBMb2FkVHlwZTo6a0k2NExvYWQzMlM6CisrICAgICAgYXNzbS0+VHVyYm9Bc3NlbWJsZXI6 OkJ5dGVTd2FwU2lnbmVkKHRtcC5ncCgpLCB0bXAuZ3AoKSwgNCk7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgTG9hZFR5cGU6OmtJMzJMb2FkMTZTOgorKyAgICBjYXNlIExvYWRUeXBlOjprSTY0 TG9hZDE2UzoKKysgICAgICBhc3NtLT5UdXJib0Fzc2VtYmxlcjo6Qnl0ZVN3YXBTaWduZWQodG1w LmdwKCksIHRtcC5ncCgpLCAyKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBMb2FkVHlwZTo6 a0kzMkxvYWQxNlU6CisrICAgIGNhc2UgTG9hZFR5cGU6OmtJNjRMb2FkMTZVOgorKyAgICAgIGFz c20tPlR1cmJvQXNzZW1ibGVyOjpCeXRlU3dhcFVuc2lnbmVkKHRtcC5ncCgpLCB0bXAuZ3AoKSwg Mik7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTG9hZFR5cGU6OmtGNjRMb2FkOgorKyAgICAg IGlzX2Zsb2F0ID0gdHJ1ZTsKKysgICAgICB0bXAgPSBhc3NtLT5HZXRVbnVzZWRSZWdpc3Rlcihr R3BSZWcsIHBpbm5lZCk7CisrICAgICAgYXNzbS0+ZW1pdF90eXBlX2NvbnZlcnNpb24oa0V4cHJJ NjRSZWludGVycHJldEY2NCwgdG1wLCBkc3QpOworKyAgICAgIFY4X0ZBTExUSFJPVUdIOworKyAg ICBjYXNlIExvYWRUeXBlOjprSTY0TG9hZDoKKysgICAgICBhc3NtLT5UdXJib0Fzc2VtYmxlcjo6 Qnl0ZVN3YXBTaWduZWQodG1wLmdwKCksIHRtcC5ncCgpLCA4KTsKKysgICAgICBicmVhazsKKysg ICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgpOworKyAgfQorKworKyAgaWYgKGlzX2Zs b2F0KSB7CisrICAgIHN3aXRjaCAodHlwZS52YWx1ZSgpKSB7CisrICAgICAgY2FzZSBMb2FkVHlw ZTo6a0YzMkxvYWQ6CisrICAgICAgICBhc3NtLT5lbWl0X3R5cGVfY29udmVyc2lvbihrRXhwckYz MlJlaW50ZXJwcmV0STMyLCBkc3QsIHRtcCk7CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNl IExvYWRUeXBlOjprRjY0TG9hZDoKKysgICAgICAgIGFzc20tPmVtaXRfdHlwZV9jb252ZXJzaW9u KGtFeHByRjY0UmVpbnRlcnByZXRJNjQsIGRzdCwgdG1wKTsKKysgICAgICAgIGJyZWFrOworKyAg ICAgIGRlZmF1bHQ6CisrICAgICAgICBVTlJFQUNIQUJMRSgpOworKyAgICB9CisrICB9CisrfQor KworK2lubGluZSB2b2lkIENoYW5nZUVuZGlhbm5lc3NTdG9yZShMaWZ0b2ZmQXNzZW1ibGVyKiBh c3NtLCBMaWZ0b2ZmUmVnaXN0ZXIgc3JjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZVR5cGUgdHlwZSwgTGlmdG9mZlJlZ0xpc3QgcGlubmVkKSB7CisrICBib29sIGlz X2Zsb2F0ID0gZmFsc2U7CisrICBMaWZ0b2ZmUmVnaXN0ZXIgdG1wID0gc3JjOworKyAgc3dpdGNo ICh0eXBlLnZhbHVlKCkpIHsKKysgICAgY2FzZSBTdG9yZVR5cGU6OmtJNjRTdG9yZTg6CisrICAg IGNhc2UgU3RvcmVUeXBlOjprSTMyU3RvcmU4OgorKyAgICAgIC8vIE5vIG5lZWQgdG8gY2hhbmdl IGVuZGlhbm5lc3MgZm9yIGJ5dGUgc2l6ZS4KKysgICAgICByZXR1cm47CisrICAgIGNhc2UgU3Rv cmVUeXBlOjprRjMyU3RvcmU6CisrICAgICAgaXNfZmxvYXQgPSB0cnVlOworKyAgICAgIHRtcCA9 IGFzc20tPkdldFVudXNlZFJlZ2lzdGVyKGtHcFJlZywgcGlubmVkKTsKKysgICAgICBhc3NtLT5l bWl0X3R5cGVfY29udmVyc2lvbihrRXhwckkzMlJlaW50ZXJwcmV0RjMyLCB0bXAsIHNyYyk7Cisr ICAgICAgVjhfRkFMTFRIUk9VR0g7CisrICAgIGNhc2UgU3RvcmVUeXBlOjprSTMyU3RvcmU6Cisr ICAgICAgYXNzbS0+VHVyYm9Bc3NlbWJsZXI6OkJ5dGVTd2FwU2lnbmVkKHRtcC5ncCgpLCB0bXAu Z3AoKSwgNCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgU3RvcmVUeXBlOjprSTMyU3RvcmUx NjoKKysgICAgICBhc3NtLT5UdXJib0Fzc2VtYmxlcjo6Qnl0ZVN3YXBTaWduZWQodG1wLmdwKCks IHRtcC5ncCgpLCAyKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBTdG9yZVR5cGU6OmtGNjRT dG9yZToKKysgICAgICBpc19mbG9hdCA9IHRydWU7CisrICAgICAgdG1wID0gYXNzbS0+R2V0VW51 c2VkUmVnaXN0ZXIoa0dwUmVnLCBwaW5uZWQpOworKyAgICAgIGFzc20tPmVtaXRfdHlwZV9jb252 ZXJzaW9uKGtFeHBySTY0UmVpbnRlcnByZXRGNjQsIHRtcCwgc3JjKTsKKysgICAgICBWOF9GQUxM VEhST1VHSDsKKysgICAgY2FzZSBTdG9yZVR5cGU6OmtJNjRTdG9yZToKKysgICAgICBhc3NtLT5U dXJib0Fzc2VtYmxlcjo6Qnl0ZVN3YXBTaWduZWQodG1wLmdwKCksIHRtcC5ncCgpLCA4KTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBTdG9yZVR5cGU6OmtJNjRTdG9yZTMyOgorKyAgICAgIGFz c20tPlR1cmJvQXNzZW1ibGVyOjpCeXRlU3dhcFNpZ25lZCh0bXAuZ3AoKSwgdG1wLmdwKCksIDQp OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFN0b3JlVHlwZTo6a0k2NFN0b3JlMTY6CisrICAg ICAgYXNzbS0+VHVyYm9Bc3NlbWJsZXI6OkJ5dGVTd2FwU2lnbmVkKHRtcC5ncCgpLCB0bXAuZ3Ao KSwgMik7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5SRUFDSEFCTEUo KTsKKysgIH0KKysKKysgIGlmIChpc19mbG9hdCkgeworKyAgICBzd2l0Y2ggKHR5cGUudmFsdWUo KSkgeworKyAgICAgIGNhc2UgU3RvcmVUeXBlOjprRjMyU3RvcmU6CisrICAgICAgICBhc3NtLT5l bWl0X3R5cGVfY29udmVyc2lvbihrRXhwckYzMlJlaW50ZXJwcmV0STMyLCBzcmMsIHRtcCk7Cisr ICAgICAgICBicmVhazsKKysgICAgICBjYXNlIFN0b3JlVHlwZTo6a0Y2NFN0b3JlOgorKyAgICAg ICAgYXNzbS0+ZW1pdF90eXBlX2NvbnZlcnNpb24oa0V4cHJGNjRSZWludGVycHJldEk2NCwgc3Jj LCB0bXApOworKyAgICAgICAgYnJlYWs7CisrICAgICAgZGVmYXVsdDoKKysgICAgICAgIFVOUkVB Q0hBQkxFKCk7CisrICAgIH0KKysgIH0KKyt9CisrI2VuZGlmICAvLyBWOF9UQVJHRVRfQklHX0VO RElBTgorKworK30gIC8vIG5hbWVzcGFjZSBsaWZ0b2ZmCisrCisraW50IExpZnRvZmZBc3NlbWJs ZXI6OlByZXBhcmVTdGFja0ZyYW1lKCkgeworKyAgaW50IG9mZnNldCA9IHBjX29mZnNldCgpOwor KyAgLy8gV2hlbiBjb25zdGFudCB0aGF0IHJlcHJlc2VudHMgc2l6ZSBvZiBzdGFjayBmcmFtZSBj YW4ndCBiZSByZXByZXNlbnRlZAorKyAgLy8gYXMgMTZiaXQgd2UgbmVlZCB0aHJlZSBpbnN0cnVj dGlvbnMgdG8gYWRkIGl0IHRvIHNwLCBzbyB3ZSByZXNlcnZlIHNwYWNlCisrICAvLyBmb3IgdGhp cyBjYXNlLgorKyAgQWRkNjQoc3AsIHNwLCBPcGVyYW5kKDBMKSk7CisrICBub3AoKTsKKysgIG5v cCgpOworKyAgcmV0dXJuIG9mZnNldDsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpQ cmVwYXJlVGFpbENhbGwoaW50IG51bV9jYWxsZWVfc3RhY2tfcGFyYW1zLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFja19wYXJhbV9kZWx0YSkgeworKyAg VXNlU2NyYXRjaFJlZ2lzdGVyU2NvcGUgdGVtcHModGhpcyk7CisrICBSZWdpc3RlciBzY3JhdGNo ID0gdGVtcHMuQWNxdWlyZSgpOworKworKyAgLy8gUHVzaCB0aGUgcmV0dXJuIGFkZHJlc3MgYW5k IGZyYW1lIHBvaW50ZXIgdG8gY29tcGxldGUgdGhlIHN0YWNrIGZyYW1lLgorKyAgTGQoc2NyYXRj aCwgTWVtT3BlcmFuZChmcCwgOCkpOworKyAgUHVzaChzY3JhdGNoKTsKKysgIExkKHNjcmF0Y2gs IE1lbU9wZXJhbmQoZnAsIDApKTsKKysgIFB1c2goc2NyYXRjaCk7CisrCisrICAvLyBTaGlmdCB0 aGUgd2hvbGUgZnJhbWUgdXB3YXJkcy4KKysgIGludCBzbG90X2NvdW50ID0gbnVtX2NhbGxlZV9z dGFja19wYXJhbXMgKyAyOworKyAgZm9yIChpbnQgaSA9IHNsb3RfY291bnQgLSAxOyBpID49IDA7 IC0taSkgeworKyAgICBMZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCBpICogOCkpOworKyAgICBT ZChzY3JhdGNoLCBNZW1PcGVyYW5kKGZwLCAoaSAtIHN0YWNrX3BhcmFtX2RlbHRhKSAqIDgpKTsK KysgIH0KKysKKysgIC8vIFNldCB0aGUgbmV3IHN0YWNrIGFuZCBmcmFtZSBwb2ludGVyLgorKyAg QWRkNjQoc3AsIGZwLCAtc3RhY2tfcGFyYW1fZGVsdGEgKiA4KTsKKysgIFBvcChyYSwgZnApOwor K30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OlBhdGNoUHJlcGFyZVN0YWNrRnJhbWUoaW50 IG9mZnNldCwgaW50IGZyYW1lX3NpemUpIHsKKysgIC8vIFdlIGNhbid0IHJ1biBvdXQgb2Ygc3Bh Y2UsIGp1c3QgcGFzcyBhbnl0aGluZyBiaWcgZW5vdWdoIHRvIG5vdCBjYXVzZSB0aGUKKysgIC8v IGFzc2VtYmxlciB0byB0cnkgdG8gZ3JvdyB0aGUgYnVmZmVyLgorKyAgY29uc3RleHByIGludCBr QXZhaWxhYmxlU3BhY2UgPSAyNTY7CisrICBUdXJib0Fzc2VtYmxlciBwYXRjaGluZ19hc3NlbWJs ZXIoCisrICAgICAgbnVsbHB0ciwgQXNzZW1ibGVyT3B0aW9uc3t9LCBDb2RlT2JqZWN0UmVxdWly ZWQ6OmtObywKKysgICAgICBFeHRlcm5hbEFzc2VtYmxlckJ1ZmZlcihidWZmZXJfc3RhcnRfICsg b2Zmc2V0LCBrQXZhaWxhYmxlU3BhY2UpKTsKKysgIC8vIElmIGJ5dGVzIGNhbiBiZSByZXByZXNl bnRlZCBhcyAxNmJpdCwgYWRkaSB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgdHdvCisrICAvLyBub3Bz IHdpbGwgc3RheSB1bnRvdWNoZWQuIE90aGVyd2lzZSwgbHVpLW9yaSBzZXF1ZW5jZSB3aWxsIGxv YWQgaXQgdG8KKysgIC8vIHJlZ2lzdGVyIGFuZCwgYXMgdGhpcmQgaW5zdHJ1Y3Rpb24sIGRhZGR1 IHdpbGwgYmUgZ2VuZXJhdGVkLgorKyAgcGF0Y2hpbmdfYXNzZW1ibGVyLkFkZDY0KHNwLCBzcCwg T3BlcmFuZCgtZnJhbWVfc2l6ZSkpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OkZp bmlzaENvZGUoKSB7fQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6QWJvcnRDb21waWxhdGlv bigpIHt9CisrCisrLy8gc3RhdGljCisrY29uc3RleHByIGludCBMaWZ0b2ZmQXNzZW1ibGVyOjpT dGF0aWNTdGFja0ZyYW1lU2l6ZSgpIHsKKysgIHJldHVybiBsaWZ0b2ZmOjprSW5zdGFuY2VPZmZz ZXQ7CisrfQorKworK2ludCBMaWZ0b2ZmQXNzZW1ibGVyOjpTbG90U2l6ZUZvclR5cGUoVmFsdWVU eXBlIHR5cGUpIHsKKysgIHN3aXRjaCAodHlwZS5raW5kKCkpIHsKKysgICAgY2FzZSBWYWx1ZVR5 cGU6OmtTMTI4OgorKyAgICAgIHJldHVybiB0eXBlLmVsZW1lbnRfc2l6ZV9ieXRlcygpOworKyAg ICBkZWZhdWx0OgorKyAgICAgIHJldHVybiBrU3RhY2tTbG90U2l6ZTsKKysgIH0KKyt9CisrCisr Ym9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjpOZWVkc0FsaWdubWVudChWYWx1ZVR5cGUgdHlwZSkgewor KyAgc3dpdGNoICh0eXBlLmtpbmQoKSkgeworKyAgICBjYXNlIFZhbHVlVHlwZTo6a1MxMjg6Cisr ICAgICAgcmV0dXJuIHRydWU7CisrICAgIGRlZmF1bHQ6CisrICAgICAgLy8gTm8gYWxpZ25tZW50 IGJlY2F1c2UgYWxsIG90aGVyIHR5cGVzIGFyZSBrU3RhY2tTbG90U2l6ZS4KKysgICAgICByZXR1 cm4gZmFsc2U7CisrICB9CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6TG9hZENvbnN0 YW50KExpZnRvZmZSZWdpc3RlciByZWcsIFdhc21WYWx1ZSB2YWx1ZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWxvY0luZm86Ok1vZGUgcm1vZGUpIHsKKysgIHN3aXRj aCAodmFsdWUudHlwZSgpLmtpbmQoKSkgeworKyAgICBjYXNlIFZhbHVlVHlwZTo6a0kzMjoKKysg ICAgICBUdXJib0Fzc2VtYmxlcjo6bGkocmVnLmdwKCksIE9wZXJhbmQodmFsdWUudG9faTMyKCks IHJtb2RlKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprSTY0OgorKyAg ICAgIFR1cmJvQXNzZW1ibGVyOjpsaShyZWcuZ3AoKSwgT3BlcmFuZCh2YWx1ZS50b19pNjQoKSwg cm1vZGUpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBWYWx1ZVR5cGU6OmtGMzI6CisrICAg ICAgVHVyYm9Bc3NlbWJsZXI6OkxvYWRGUFJJbW1lZGlhdGUocmVnLmZwKCksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUudG9fZjMyX2JveGVkKCkuZ2V0X2Jp dHMoKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprRjY0OgorKyAgICAg IFR1cmJvQXNzZW1ibGVyOjpMb2FkRlBSSW1tZWRpYXRlKHJlZy5mcCgpLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnRvX2Y2NF9ib3hlZCgpLmdldF9iaXRz KCkpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7 CisrICB9CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6TG9hZEZyb21JbnN0YW5jZShS ZWdpc3RlciBkc3QsIHVpbnQzMl90IG9mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IHNpemUpIHsKKysgIERDSEVDS19MRShvZmZzZXQsIGtNYXhJbnQp OworKyAgTGQoZHN0LCBsaWZ0b2ZmOjpHZXRJbnN0YW5jZU9wZXJhbmQoKSk7CisrICBEQ0hFQ0so c2l6ZSA9PSA0IHx8IHNpemUgPT0gOCk7CisrICBpZiAoc2l6ZSA9PSA0KSB7CisrICAgIEx3KGRz dCwgTWVtT3BlcmFuZChkc3QsIG9mZnNldCkpOworKyAgfSBlbHNlIHsKKysgICAgTGQoZHN0LCBN ZW1PcGVyYW5kKGRzdCwgb2Zmc2V0KSk7CisrICB9CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2Vt Ymxlcjo6TG9hZFRhZ2dlZFBvaW50ZXJGcm9tSW5zdGFuY2UoUmVnaXN0ZXIgZHN0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg b2Zmc2V0KSB7CisrICBMb2FkRnJvbUluc3RhbmNlKGRzdCwgb2Zmc2V0LCBrVGFnZ2VkU2l6ZSk7 CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6U3BpbGxJbnN0YW5jZShSZWdpc3RlciBp bnN0YW5jZSkgeworKyAgU2QoaW5zdGFuY2UsIGxpZnRvZmY6OkdldEluc3RhbmNlT3BlcmFuZCgp KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpGaWxsSW5zdGFuY2VJbnRvKFJlZ2lz dGVyIGRzdCkgeworKyAgTGQoZHN0LCBsaWZ0b2ZmOjpHZXRJbnN0YW5jZU9wZXJhbmQoKSk7Cisr fQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6TG9hZFRhZ2dlZFBvaW50ZXIoUmVnaXN0ZXIg ZHN0LCBSZWdpc3RlciBzcmNfYWRkciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIG9mZnNldF9yZWcsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQzMl90IG9mZnNldF9pbW0sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnTGlzdCBwaW5uZWQpIHsKKysgIFNUQVRJ Q19BU1NFUlQoa1RhZ2dlZFNpemUgPT0ga0ludDY0U2l6ZSk7CisrICBMb2FkKExpZnRvZmZSZWdp c3Rlcihkc3QpLCBzcmNfYWRkciwgb2Zmc2V0X3JlZywKKysgICAgICAgc3RhdGljX2Nhc3Q8dWlu dDMyX3Q+KG9mZnNldF9pbW0pLCBMb2FkVHlwZTo6a0k2NExvYWQsIHBpbm5lZCk7CisrfQorKwor K3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6U3RvcmVUYWdnZWRQb2ludGVyKFJlZ2lzdGVyIGRzdF9h ZGRyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qg b2Zmc2V0X2ltbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aWZ0b2ZmUmVnaXN0ZXIgc3JjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdMaXN0IHBpbm5lZCkgeworKyAgYmFpbG91dChrUmVmVHlwZXMsICJH bG9iYWxTZXQiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpMb2FkKExpZnRvZmZS ZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyY19hZGRyLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciBvZmZzZXRfcmVnLCB1aW50MzJfdCBvZmZzZXRfaW1tLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2FkVHlwZSB0eXBlLCBMaWZ0b2ZmUmVnTGlzdCBwaW5uZWQs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBwcm90ZWN0ZWRfbG9hZF9w YywgYm9vbCBpc19sb2FkX21lbSkgeworKyAgUmVnaXN0ZXIgc3JjID0gbm9fcmVnOworKyAgaWYg KG9mZnNldF9yZWcgIT0gbm9fcmVnKSB7CisrICAgIHNyYyA9IEdldFVudXNlZFJlZ2lzdGVyKGtH cFJlZywgcGlubmVkKS5ncCgpOworKyAgICBlbWl0X3B0cnNpemVfYWRkKHNyYywgc3JjX2FkZHIs IG9mZnNldF9yZWcpOworKyAgfQorKyAgTWVtT3BlcmFuZCBzcmNfb3AgPSAob2Zmc2V0X3JlZyAh PSBub19yZWcpID8gTWVtT3BlcmFuZChzcmMsIG9mZnNldF9pbW0pCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNZW1PcGVyYW5kKHNyY19hZGRyLCBvZmZz ZXRfaW1tKTsKKysKKysgIGlmIChwcm90ZWN0ZWRfbG9hZF9wYykgKnByb3RlY3RlZF9sb2FkX3Bj ID0gcGNfb2Zmc2V0KCk7CisrICBzd2l0Y2ggKHR5cGUudmFsdWUoKSkgeworKyAgICBjYXNlIExv YWRUeXBlOjprSTMyTG9hZDhVOgorKyAgICBjYXNlIExvYWRUeXBlOjprSTY0TG9hZDhVOgorKyAg ICAgIExidShkc3QuZ3AoKSwgc3JjX29wKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBMb2Fk VHlwZTo6a0kzMkxvYWQ4UzoKKysgICAgY2FzZSBMb2FkVHlwZTo6a0k2NExvYWQ4UzoKKysgICAg ICBMYihkc3QuZ3AoKSwgc3JjX29wKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBMb2FkVHlw ZTo6a0kzMkxvYWQxNlU6CisrICAgIGNhc2UgTG9hZFR5cGU6OmtJNjRMb2FkMTZVOgorKyAgICAg IFR1cmJvQXNzZW1ibGVyOjpVbGh1KGRzdC5ncCgpLCBzcmNfb3ApOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIExvYWRUeXBlOjprSTMyTG9hZDE2UzoKKysgICAgY2FzZSBMb2FkVHlwZTo6a0k2 NExvYWQxNlM6CisrICAgICAgVHVyYm9Bc3NlbWJsZXI6OlVsaChkc3QuZ3AoKSwgc3JjX29wKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBMb2FkVHlwZTo6a0k2NExvYWQzMlU6CisrICAgICAg VHVyYm9Bc3NlbWJsZXI6OlVsd3UoZHN0LmdwKCksIHNyY19vcCk7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgTG9hZFR5cGU6OmtJMzJMb2FkOgorKyAgICBjYXNlIExvYWRUeXBlOjprSTY0TG9h ZDMyUzoKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6VWx3KGRzdC5ncCgpLCBzcmNfb3ApOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIExvYWRUeXBlOjprSTY0TG9hZDoKKysgICAgICBUdXJib0Fz c2VtYmxlcjo6VWxkKGRzdC5ncCgpLCBzcmNfb3ApOworKyAgICAgIGJyZWFrOworKyAgICBjYXNl IExvYWRUeXBlOjprRjMyTG9hZDoKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6VUxvYWRGbG9hdChk c3QuZnAoKSwgc3JjX29wLCB0NSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgTG9hZFR5cGU6 OmtGNjRMb2FkOgorKyAgICAgIFR1cmJvQXNzZW1ibGVyOjpVTG9hZERvdWJsZShkc3QuZnAoKSwg c3JjX29wLCB0NSk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgVU5SRUFD SEFCTEUoKTsKKysgIH0KKysKKysjaWYgZGVmaW5lZChWOF9UQVJHRVRfQklHX0VORElBTikKKysg IGlmIChpc19sb2FkX21lbSkgeworKyAgICBwaW5uZWQuc2V0KHNyY19vcC5ybSgpKTsKKysgICAg bGlmdG9mZjo6Q2hhbmdlRW5kaWFubmVzc0xvYWQodGhpcywgZHN0LCB0eXBlLCBwaW5uZWQpOwor KyAgfQorKyNlbmRpZgorK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OlN0b3JlKFJlZ2lz dGVyIGRzdF9hZGRyLCBSZWdpc3RlciBvZmZzZXRfcmVnLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3Qgb2Zmc2V0X2ltbSwgTGlmdG9mZlJlZ2lzdGVyIHNyYywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlVHlwZSB0eXBlLCBMaWZ0b2ZmUmVnTGlzdCBw aW5uZWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHJvdGVjdGVk X3N0b3JlX3BjLCBib29sIGlzX3N0b3JlX21lbSkgeworKyAgUmVnaXN0ZXIgZHN0ID0gbm9fcmVn OworKyAgTWVtT3BlcmFuZCBkc3Rfb3AgPSBNZW1PcGVyYW5kKGRzdF9hZGRyLCBvZmZzZXRfaW1t KTsKKysgIGlmIChvZmZzZXRfcmVnICE9IG5vX3JlZykgeworKyAgICBpZiAoaXNfc3RvcmVfbWVt KSB7CisrICAgICAgcGlubmVkLnNldChzcmMpOworKyAgICB9CisrICAgIGRzdCA9IEdldFVudXNl ZFJlZ2lzdGVyKGtHcFJlZywgcGlubmVkKS5ncCgpOworKyAgICBlbWl0X3B0cnNpemVfYWRkKGRz dCwgZHN0X2FkZHIsIG9mZnNldF9yZWcpOworKyAgICBkc3Rfb3AgPSBNZW1PcGVyYW5kKGRzdCwg b2Zmc2V0X2ltbSk7CisrICB9CisrCisrI2lmIGRlZmluZWQoVjhfVEFSR0VUX0JJR19FTkRJQU4p CisrICBpZiAoaXNfc3RvcmVfbWVtKSB7CisrICAgIHBpbm5lZC5zZXQoZHN0X29wLnJtKCkpOwor KyAgICBMaWZ0b2ZmUmVnaXN0ZXIgdG1wID0gR2V0VW51c2VkUmVnaXN0ZXIoc3JjLnJlZ19jbGFz cygpLCBwaW5uZWQpOworKyAgICAvLyBTYXZlIG9yaWdpbmFsIHZhbHVlLgorKyAgICBNb3ZlKHRt cCwgc3JjLCB0eXBlLnZhbHVlX3R5cGUoKSk7CisrCisrICAgIHNyYyA9IHRtcDsKKysgICAgcGlu bmVkLnNldCh0bXApOworKyAgICBsaWZ0b2ZmOjpDaGFuZ2VFbmRpYW5uZXNzU3RvcmUodGhpcywg c3JjLCB0eXBlLCBwaW5uZWQpOworKyAgfQorKyNlbmRpZgorKworKyAgaWYgKHByb3RlY3RlZF9z dG9yZV9wYykgKnByb3RlY3RlZF9zdG9yZV9wYyA9IHBjX29mZnNldCgpOworKworKyAgLy8gRklY TUUgKFJJU0NWKTogY3VycmVudCBpbXBsZW1lbnRhdGlvbiB0cmVhdHMgYWxsIHN0b3JlcyBhcyB1 bmFsaWduZWQKKysgIHN3aXRjaCAodHlwZS52YWx1ZSgpKSB7CisrICAgIGNhc2UgU3RvcmVUeXBl OjprSTMyU3RvcmU4OgorKyAgICBjYXNlIFN0b3JlVHlwZTo6a0k2NFN0b3JlODoKKysgICAgICBT YihzcmMuZ3AoKSwgZHN0X29wKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBTdG9yZVR5cGU6 OmtJMzJTdG9yZTE2OgorKyAgICBjYXNlIFN0b3JlVHlwZTo6a0k2NFN0b3JlMTY6CisrICAgICAg VHVyYm9Bc3NlbWJsZXI6OlVzaChzcmMuZ3AoKSwgZHN0X29wKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBTdG9yZVR5cGU6OmtJMzJTdG9yZToKKysgICAgY2FzZSBTdG9yZVR5cGU6OmtJNjRT dG9yZTMyOgorKyAgICAgIFR1cmJvQXNzZW1ibGVyOjpVc3coc3JjLmdwKCksIGRzdF9vcCk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgU3RvcmVUeXBlOjprSTY0U3RvcmU6CisrICAgICAgVHVy Ym9Bc3NlbWJsZXI6OlVzZChzcmMuZ3AoKSwgZHN0X29wKTsKKysgICAgICBicmVhazsKKysgICAg Y2FzZSBTdG9yZVR5cGU6OmtGMzJTdG9yZToKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6VVN0b3Jl RmxvYXQoc3JjLmZwKCksIGRzdF9vcCwgdDUpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFN0 b3JlVHlwZTo6a0Y2NFN0b3JlOgorKyAgICAgIFR1cmJvQXNzZW1ibGVyOjpVU3RvcmVEb3VibGUo c3JjLmZwKCksIGRzdF9vcCwgdDUpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAg ICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6 QXRvbWljTG9hZChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmNfYWRkciwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0X3JlZywgdWludDMy X3Qgb2Zmc2V0X2ltbSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZFR5 cGUgdHlwZSwgTGlmdG9mZlJlZ0xpc3QgcGlubmVkKSB7CisrICBiYWlsb3V0KGtBdG9taWNzLCAi QXRvbWljTG9hZCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OkF0b21pY1N0b3Jl KFJlZ2lzdGVyIGRzdF9hZGRyLCBSZWdpc3RlciBvZmZzZXRfcmVnLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0X2ltbSwgTGlmdG9mZlJlZ2lzdGVy IHNyYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlVHlwZSB0eXBl LCBMaWZ0b2ZmUmVnTGlzdCBwaW5uZWQpIHsKKysgIGJhaWxvdXQoa0F0b21pY3MsICJBdG9taWNT dG9yZSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OkF0b21pY0FkZChSZWdpc3Rl ciBkc3RfYWRkciwgUmVnaXN0ZXIgb2Zmc2V0X3JlZywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBvZmZzZXRfaW1tLCBMaWZ0b2ZmUmVnaXN0ZXIgdmFsdWUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJlc3VsdCwg U3RvcmVUeXBlIHR5cGUpIHsKKysgIGJhaWxvdXQoa0F0b21pY3MsICJBdG9taWNBZGQiKTsKKyt9 CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpBdG9taWNTdWIoUmVnaXN0ZXIgZHN0X2FkZHIs IFJlZ2lzdGVyIG9mZnNldF9yZWcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3Qgb2Zmc2V0X2ltbSwgTGlmdG9mZlJlZ2lzdGVyIHZhbHVlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByZXN1bHQsIFN0b3JlVHlwZSB0 eXBlKSB7CisrICBiYWlsb3V0KGtBdG9taWNzLCAiQXRvbWljU3ViIik7CisrfQorKworK3ZvaWQg TGlmdG9mZkFzc2VtYmxlcjo6QXRvbWljQW5kKFJlZ2lzdGVyIGRzdF9hZGRyLCBSZWdpc3RlciBv ZmZzZXRfcmVnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG9m ZnNldF9pbW0sIExpZnRvZmZSZWdpc3RlciB2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmVzdWx0LCBTdG9yZVR5cGUgdHlwZSkgeworKyAg YmFpbG91dChrQXRvbWljcywgIkF0b21pY0FuZCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3Nl bWJsZXI6OkF0b21pY09yKFJlZ2lzdGVyIGRzdF9hZGRyLCBSZWdpc3RlciBvZmZzZXRfcmVnLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0X2ltbSwgTGlm dG9mZlJlZ2lzdGVyIHZhbHVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIHJlc3VsdCwgU3RvcmVUeXBlIHR5cGUpIHsKKysgIGJhaWxvdXQoa0F0b21p Y3MsICJBdG9taWNPciIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OkF0b21pY1hv cihSZWdpc3RlciBkc3RfYWRkciwgUmVnaXN0ZXIgb2Zmc2V0X3JlZywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvZmZzZXRfaW1tLCBMaWZ0b2ZmUmVnaXN0ZXIg dmFsdWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVy IHJlc3VsdCwgU3RvcmVUeXBlIHR5cGUpIHsKKysgIGJhaWxvdXQoa0F0b21pY3MsICJBdG9taWNY b3IiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpBdG9taWNFeGNoYW5nZShSZWdp c3RlciBkc3RfYWRkciwgUmVnaXN0ZXIgb2Zmc2V0X3JlZywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG9mZnNldF9pbW0sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgdmFsdWUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmVzdWx0LCBTdG9y ZVR5cGUgdHlwZSkgeworKyAgYmFpbG91dChrQXRvbWljcywgIkF0b21pY0V4Y2hhbmdlIik7Cisr fQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6QXRvbWljQ29tcGFyZUV4Y2hhbmdlKAorKyAg ICBSZWdpc3RlciBkc3RfYWRkciwgUmVnaXN0ZXIgb2Zmc2V0X3JlZywgdWludDMyX3Qgb2Zmc2V0 X2ltbSwKKysgICAgTGlmdG9mZlJlZ2lzdGVyIGV4cGVjdGVkLCBMaWZ0b2ZmUmVnaXN0ZXIgbmV3 X3ZhbHVlLCBMaWZ0b2ZmUmVnaXN0ZXIgcmVzdWx0LAorKyAgICBTdG9yZVR5cGUgdHlwZSkgewor KyAgYmFpbG91dChrQXRvbWljcywgIkF0b21pY0NvbXBhcmVFeGNoYW5nZSIpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OkF0b21pY0ZlbmNlKCkgeyBzeW5jKCk7IH0KKysKKyt2b2lk IExpZnRvZmZBc3NlbWJsZXI6OkxvYWRDYWxsZXJGcmFtZVNsb3QoTGlmdG9mZlJlZ2lzdGVyIGRz dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg Y2FsbGVyX3Nsb3RfaWR4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWYWx1ZVR5cGUgdHlwZSkgeworKyAgTWVtT3BlcmFuZCBzcmMoZnAsIGtTeXN0ZW1Qb2lu dGVyU2l6ZSAqIChjYWxsZXJfc2xvdF9pZHggKyAxKSk7CisrICBsaWZ0b2ZmOjpMb2FkKHRoaXMs IGRzdCwgc3JjLCB0eXBlKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpTdG9yZUNh bGxlckZyYW1lU2xvdChMaWZ0b2ZmUmVnaXN0ZXIgc3JjLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2FsbGVyX3Nsb3RfaWR4LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVUeXBlIHR5cGUpIHsK KysgIGludDMyX3Qgb2Zmc2V0ID0ga1N5c3RlbVBvaW50ZXJTaXplICogKGNhbGxlcl9zbG90X2lk eCArIDEpOworKyAgbGlmdG9mZjo6U3RvcmUodGhpcywgZnAsIG9mZnNldCwgc3JjLCB0eXBlKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpMb2FkUmV0dXJuU3RhY2tTbG90KExpZnRv ZmZSZWdpc3RlciBkc3QsIGludCBvZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZhbHVlVHlwZSB0eXBlKSB7CisrICBsaWZ0b2ZmOjpMb2FkKHRoaXMs IGRzdCwgTWVtT3BlcmFuZChzcCwgb2Zmc2V0KSwgdHlwZSk7CisrfQorKworK3ZvaWQgTGlmdG9m ZkFzc2VtYmxlcjo6TW92ZVN0YWNrVmFsdWUodWludDMyX3QgZHN0X29mZnNldCwgdWludDMyX3Qg c3JjX29mZnNldCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVl VHlwZSB0eXBlKSB7CisrICBEQ0hFQ0tfTkUoZHN0X29mZnNldCwgc3JjX29mZnNldCk7CisrICBM aWZ0b2ZmUmVnaXN0ZXIgcmVnID0gR2V0VW51c2VkUmVnaXN0ZXIocmVnX2NsYXNzX2Zvcih0eXBl KSwge30pOworKyAgRmlsbChyZWcsIHNyY19vZmZzZXQsIHR5cGUpOworKyAgU3BpbGwoZHN0X29m ZnNldCwgcmVnLCB0eXBlKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpNb3ZlKFJl Z2lzdGVyIGRzdCwgUmVnaXN0ZXIgc3JjLCBWYWx1ZVR5cGUgdHlwZSkgeworKyAgRENIRUNLX05F KGRzdCwgc3JjKTsKKysgIC8vIFRPRE8oa3NyZXRlbik6IEhhbmRsZSBkaWZmZXJlbnQgc2l6ZXMg aGVyZS4KKysgIFR1cmJvQXNzZW1ibGVyOjpNb3ZlKGRzdCwgc3JjKTsKKyt9CisrCisrdm9pZCBM aWZ0b2ZmQXNzZW1ibGVyOjpNb3ZlKERvdWJsZVJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIg c3JjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZVR5cGUgdHlwZSkgeworKyAg RENIRUNLX05FKGRzdCwgc3JjKTsKKysgIFR1cmJvQXNzZW1ibGVyOjpNb3ZlKGRzdCwgc3JjKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpTcGlsbChpbnQgb2Zmc2V0LCBMaWZ0b2Zm UmVnaXN0ZXIgcmVnLCBWYWx1ZVR5cGUgdHlwZSkgeworKyAgUmVjb3JkVXNlZFNwaWxsT2Zmc2V0 KG9mZnNldCk7CisrICBNZW1PcGVyYW5kIGRzdCA9IGxpZnRvZmY6OkdldFN0YWNrU2xvdChvZmZz ZXQpOworKyAgc3dpdGNoICh0eXBlLmtpbmQoKSkgeworKyAgICBjYXNlIFZhbHVlVHlwZTo6a0kz MjoKKysgICAgICBTdyhyZWcuZ3AoKSwgZHN0KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBW YWx1ZVR5cGU6OmtJNjQ6CisrICAgICAgU2QocmVnLmdwKCksIGRzdCk7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2UgVmFsdWVUeXBlOjprRjMyOgorKyAgICAgIFN0b3JlRmxvYXQocmVnLmZwKCks IGRzdCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprRjY0OgorKyAgICAg IFR1cmJvQXNzZW1ibGVyOjpTdG9yZURvdWJsZShyZWcuZnAoKSwgZHN0KTsKKysgICAgICBicmVh azsKKysgICAgZGVmYXVsdDoKKysgICAgICBVTlJFQUNIQUJMRSgpOworKyAgfQorK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OlNwaWxsKGludCBvZmZzZXQsIFdhc21WYWx1ZSB2YWx1ZSkg eworKyAgUmVjb3JkVXNlZFNwaWxsT2Zmc2V0KG9mZnNldCk7CisrICBNZW1PcGVyYW5kIGRzdCA9 IGxpZnRvZmY6OkdldFN0YWNrU2xvdChvZmZzZXQpOworKyAgc3dpdGNoICh2YWx1ZS50eXBlKCku a2luZCgpKSB7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprSTMyOiB7CisrICAgICAgTGlmdG9mZlJl Z2lzdGVyIHRtcCA9IEdldFVudXNlZFJlZ2lzdGVyKGtHcFJlZywge30pOworKyAgICAgIFR1cmJv QXNzZW1ibGVyOjpsaSh0bXAuZ3AoKSwgT3BlcmFuZCh2YWx1ZS50b19pMzIoKSkpOworKyAgICAg IFN3KHRtcC5ncCgpLCBkc3QpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgVmFs dWVUeXBlOjprSTY0OiB7CisrICAgICAgTGlmdG9mZlJlZ2lzdGVyIHRtcCA9IEdldFVudXNlZFJl Z2lzdGVyKGtHcFJlZywge30pOworKyAgICAgIFR1cmJvQXNzZW1ibGVyOjpsaSh0bXAuZ3AoKSwg dmFsdWUudG9faTY0KCkpOworKyAgICAgIFNkKHRtcC5ncCgpLCBkc3QpOworKyAgICAgIGJyZWFr OworKyAgICB9CisrICAgIGRlZmF1bHQ6CisrICAgICAgLy8ga1dhc21GMzIgYW5kIGtXYXNtRjY0 IGFyZSB1bnJlYWNoYWJsZSwgc2luY2UgdGhvc2UKKysgICAgICAvLyBjb25zdGFudHMgYXJlIG5v dCB0cmFja2VkLgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9CisrfQorKworK3ZvaWQgTGlm dG9mZkFzc2VtYmxlcjo6RmlsbChMaWZ0b2ZmUmVnaXN0ZXIgcmVnLCBpbnQgb2Zmc2V0LCBWYWx1 ZVR5cGUgdHlwZSkgeworKyAgTWVtT3BlcmFuZCBzcmMgPSBsaWZ0b2ZmOjpHZXRTdGFja1Nsb3Qo b2Zmc2V0KTsKKysgIHN3aXRjaCAodHlwZS5raW5kKCkpIHsKKysgICAgY2FzZSBWYWx1ZVR5cGU6 OmtJMzI6CisrICAgICAgTHcocmVnLmdwKCksIHNyYyk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgVmFsdWVUeXBlOjprSTY0OgorKyAgICAgIExkKHJlZy5ncCgpLCBzcmMpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIFZhbHVlVHlwZTo6a0YzMjoKKysgICAgICBMb2FkRmxvYXQocmVnLmZw KCksIHNyYyk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgVmFsdWVUeXBlOjprRjY0OgorKyAg ICAgIFR1cmJvQXNzZW1ibGVyOjpMb2FkRG91YmxlKHJlZy5mcCgpLCBzcmMpOworKyAgICAgIGJy ZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIFVOUkVBQ0hBQkxFKCk7CisrICB9CisrfQorKwor K3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6RmlsbEk2NEhhbGYoUmVnaXN0ZXIsIGludCBvZmZzZXQs IFJlZ1BhaXJIYWxmKSB7CisrICBVTlJFQUNIQUJMRSgpOworK30KKysKKyt2b2lkIExpZnRvZmZB c3NlbWJsZXI6OkZpbGxTdGFja1Nsb3RzV2l0aFplcm8oaW50IHN0YXJ0LCBpbnQgc2l6ZSkgewor KyAgRENIRUNLX0xUKDAsIHNpemUpOworKyAgUmVjb3JkVXNlZFNwaWxsT2Zmc2V0KHN0YXJ0ICsg c2l6ZSk7CisrCisrICBpZiAoc2l6ZSA8PSAxMiAqIGtTdGFja1Nsb3RTaXplKSB7CisrICAgIC8v IFNwZWNpYWwgc3RyYWlnaHQtbGluZSBjb2RlIGZvciB1cCB0byAxMiBzbG90cy4gR2VuZXJhdGVz IG9uZQorKyAgICAvLyBpbnN0cnVjdGlvbiBwZXIgc2xvdCAoPD0gMTIgaW5zdHJ1Y3Rpb25zIHRv dGFsKS4KKysgICAgdWludDMyX3QgcmVtYWluZGVyID0gc2l6ZTsKKysgICAgZm9yICg7IHJlbWFp bmRlciA+PSBrU3RhY2tTbG90U2l6ZTsgcmVtYWluZGVyIC09IGtTdGFja1Nsb3RTaXplKSB7Cisr ICAgICAgU2QoemVyb19yZWcsIGxpZnRvZmY6OkdldFN0YWNrU2xvdChzdGFydCArIHJlbWFpbmRl cikpOworKyAgICB9CisrICAgIERDSEVDSyhyZW1haW5kZXIgPT0gNCB8fCByZW1haW5kZXIgPT0g MCk7CisrICAgIGlmIChyZW1haW5kZXIpIHsKKysgICAgICBTdyh6ZXJvX3JlZywgbGlmdG9mZjo6 R2V0U3RhY2tTbG90KHN0YXJ0ICsgcmVtYWluZGVyKSk7CisrICAgIH0KKysgIH0gZWxzZSB7Cisr ICAgIC8vIEdlbmVyYWwgY2FzZSBmb3IgYmlnZ2VyIGNvdW50cyAoMTIgaW5zdHJ1Y3Rpb25zKS4K KysgICAgLy8gVXNlIGEwIGZvciBzdGFydCBhZGRyZXNzIChpbmNsdXNpdmUpLCBhMSBmb3IgZW5k IGFkZHJlc3MgKGV4Y2x1c2l2ZSkuCisrICAgIFB1c2goYTEsIGEwKTsKKysgICAgQWRkNjQoYTAs IGZwLCBPcGVyYW5kKC1zdGFydCAtIHNpemUpKTsKKysgICAgQWRkNjQoYTEsIGZwLCBPcGVyYW5k KC1zdGFydCkpOworKworKyAgICBMYWJlbCBsb29wOworKyAgICBiaW5kKCZsb29wKTsKKysgICAg U2QoemVyb19yZWcsIE1lbU9wZXJhbmQoYTApKTsKKysgICAgYWRkaShhMCwgYTAsIGtTeXN0ZW1Q b2ludGVyU2l6ZSk7CisrICAgIEJyYW5jaFNob3J0KCZsb29wLCBuZSwgYTAsIE9wZXJhbmQoYTEp KTsKKysKKysgICAgUG9wKGExLCBhMCk7CisrICB9CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2Vt Ymxlcjo6ZW1pdF9pNjRfY2x6KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBz cmMpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpDbHo2NChkc3QuZ3AoKSwgc3JjLmdwKCkpOworK30K KysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0X2N0eihMaWZ0b2ZmUmVnaXN0ZXIg ZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBUdXJib0Fzc2VtYmxlcjo6Q3R6NjQoZHN0 LmdwKCksIHNyYy5ncCgpKTsKKyt9CisrCisrYm9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2 NF9wb3BjbnQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBUdXJib0Fzc2VtYmxlcjo6 UG9wY250NjQoZHN0LmdwKCksIHNyYy5ncCgpKTsKKysgIHJldHVybiB0cnVlOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyX211bChSZWdpc3RlciBkc3QsIFJlZ2lzdGVy IGxocywgUmVnaXN0ZXIgcmhzKSB7CisrICBUdXJib0Fzc2VtYmxlcjo6TXVsMzIoZHN0LCBsaHMs IHJocyk7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJfZGl2cyhSZWdp c3RlciBkc3QsIFJlZ2lzdGVyIGxocywgUmVnaXN0ZXIgcmhzLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYWJlbCogdHJhcF9kaXZfYnlfemVybywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIHRyYXBfZGl2X3VucmVwcmVzZW50YWJs ZSkgeworKyAgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaCh0cmFwX2Rpdl9ieV96ZXJvLCBlcSwgcmhz LCBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICAvLyBDaGVjayBpZiBsaHMgPT0ga01pbkludCBh bmQgcmhzID09IC0xLCBzaW5jZSB0aGlzIGNhc2UgaXMgdW5yZXByZXNlbnRhYmxlLgorKyAgVHVy Ym9Bc3NlbWJsZXI6OkNvbXBhcmVJKGtTY3JhdGNoUmVnLCBsaHMsIE9wZXJhbmQoa01pbkludCks IG5lKTsKKysgIFR1cmJvQXNzZW1ibGVyOjpDb21wYXJlSShrU2NyYXRjaFJlZzIsIHJocywgT3Bl cmFuZCgtMSksIG5lKTsKKysgIGFkZChrU2NyYXRjaFJlZywga1NjcmF0Y2hSZWcsIGtTY3JhdGNo UmVnMik7CisrICBUdXJib0Fzc2VtYmxlcjo6QnJhbmNoKHRyYXBfZGl2X3VucmVwcmVzZW50YWJs ZSwgZXEsIGtTY3JhdGNoUmVnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYW5kKHpl cm9fcmVnKSk7CisrCisrICBUdXJib0Fzc2VtYmxlcjo6RGl2MzIoZHN0LCBsaHMsIHJocyk7Cisr fQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJfZGl2dShSZWdpc3RlciBkc3Qs IFJlZ2lzdGVyIGxocywgUmVnaXN0ZXIgcmhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMYWJlbCogdHJhcF9kaXZfYnlfemVybykgeworKyAgVHVyYm9Bc3NlbWJsZXI6 OkJyYW5jaCh0cmFwX2Rpdl9ieV96ZXJvLCBlcSwgcmhzLCBPcGVyYW5kKHplcm9fcmVnKSk7Cisr ICBUdXJib0Fzc2VtYmxlcjo6RGl2dTMyKGRzdCwgbGhzLCByaHMpOworK30KKysKKyt2b2lkIExp ZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyX3JlbXMoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBsaHMs IFJlZ2lzdGVyIHJocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFi ZWwqIHRyYXBfZGl2X2J5X3plcm8pIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2godHJhcF9k aXZfYnlfemVybywgZXEsIHJocywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgVHVyYm9Bc3NlbWJs ZXI6Ok1vZDMyKGRzdCwgbGhzLCByaHMpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6 OmVtaXRfaTMyX3JlbXUoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBsaHMsIFJlZ2lzdGVyIHJocywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIHRyYXBfZGl2X2J5 X3plcm8pIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2godHJhcF9kaXZfYnlfemVybywgZXEs IHJocywgT3BlcmFuZCh6ZXJvX3JlZykpOworKyAgVHVyYm9Bc3NlbWJsZXI6Ok1vZHUzMihkc3Qs IGxocywgcmhzKTsKKyt9CisrCisrI2RlZmluZSBJMzJfQklOT1AobmFtZSwgaW5zdHJ1Y3Rpb24p ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X2kzMl8jI25hbWUoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBsaHMsIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJocykgeyAgICAg ICAgICAgICBcCisrICAgIGluc3RydWN0aW9uKGRzdCwgbGhzLCByaHMpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgfQorKworKy8vIGNsYW5nLWZvcm1hdCBvZmYK KytJMzJfQklOT1AoYWRkLCBhZGR3KQorK0kzMl9CSU5PUChzdWIsIHN1YncpCisrSTMyX0JJTk9Q KGFuZCwgYW5kXykKKytJMzJfQklOT1Aob3IsIG9yXykKKytJMzJfQklOT1AoeG9yLCB4b3JfKQor Ky8vIGNsYW5nLWZvcm1hdCBvbgorKworKyN1bmRlZiBJMzJfQklOT1AKKysKKysjZGVmaW5lIEkz Ml9CSU5PUF9JKG5hbWUsIGluc3RydWN0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICB2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyXyMjbmFtZSMjaShSZWdp c3RlciBkc3QsIFJlZ2lzdGVyIGxocywgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50MzJfdCBpbW0pIHsgICAgICAgICAgICAgIFwKKysgICAgaW5zdHJ1 Y3Rpb24oZHN0LCBsaHMsIE9wZXJhbmQoaW1tKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICB9CisrCisrLy8gY2xhbmctZm9ybWF0IG9mZgorK0kzMl9CSU5PUF9JKGFkZCwg QWRkMzIpCisrSTMyX0JJTk9QX0koYW5kLCBBbmQpCisrSTMyX0JJTk9QX0kob3IsIE9yKQorK0kz Ml9CSU5PUF9JKHhvciwgWG9yKQorKy8vIGNsYW5nLWZvcm1hdCBvbgorKworKyN1bmRlZiBJMzJf QklOT1BfSQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJfY2x6KFJlZ2lzdGVy IGRzdCwgUmVnaXN0ZXIgc3JjKSB7CisrICBUdXJib0Fzc2VtYmxlcjo6Q2x6MzIoZHN0LCBzcmMp OworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyX2N0eihSZWdpc3RlciBk c3QsIFJlZ2lzdGVyIHNyYykgeworKyAgVHVyYm9Bc3NlbWJsZXI6OkN0ejMyKGRzdCwgc3JjKTsK Kyt9CisrCisrYm9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMl9wb3BjbnQoUmVnaXN0ZXIg ZHN0LCBSZWdpc3RlciBzcmMpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpQb3BjbnQzMihkc3QsIHNy Yyk7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrI2RlZmluZSBJMzJfU0hJRlRPUChuYW1lLCBp bnN0cnVjdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgdm9pZCBMaWZ0 b2ZmQXNzZW1ibGVyOjplbWl0X2kzMl8jI25hbWUoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMs IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGFt b3VudCkgeyAgICAgICAgICBcCisrICAgIGluc3RydWN0aW9uKGRzdCwgc3JjLCBhbW91bnQpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgfQorKyNkZWZpbmUgSTMyX1NI SUZUT1BfSShuYW1lLCBpbnN0cnVjdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIHZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJfIyNuYW1lIyNpKFJlZ2lzdGVy IGRzdCwgUmVnaXN0ZXIgc3JjLCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgYW1vdW50KSB7ICAgICAgICAgICAgICAgXAorKyAgICBpbnN0cnVjdGlv bihkc3QsIHNyYywgYW1vdW50KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysgIH0KKysKKytJMzJfU0hJRlRPUChzaGwsIHNsbHcpCisrSTMyX1NISUZUT1Aoc2FyLCBz cmF3KQorK0kzMl9TSElGVE9QKHNociwgc3JsdykKKysKKytJMzJfU0hJRlRPUF9JKHNobCwgc2xs aXcpCisrSTMyX1NISUZUT1BfSShzYXIsIHNyYWl3KQorK0kzMl9TSElGVE9QX0koc2hyLCBzcmxp dykKKysKKysjdW5kZWYgSTMyX1NISUZUT1AKKysjdW5kZWYgSTMyX1NISUZUT1BfSQorKworK3Zv aWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pNjRfbXVsKExpZnRvZmZSZWdpc3RlciBkc3QsIExp ZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgVHVyYm9Bc3NlbWJsZXI6Ok11bDY0KGRzdC5ncCgp LCBsaHMuZ3AoKSwgcmhzLmdwKCkpOworK30KKysKKytib29sIExpZnRvZmZBc3NlbWJsZXI6OmVt aXRfaTY0X2RpdnMoTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIHRyYXBfZGl2X2J5 X3plcm8sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiB0cmFw X2Rpdl91bnJlcHJlc2VudGFibGUpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2godHJhcF9k aXZfYnlfemVybywgZXEsIHJocy5ncCgpLCBPcGVyYW5kKHplcm9fcmVnKSk7CisrCisrICAvLyBD aGVjayBpZiBsaHMgPT0gTWluSW50NjQgYW5kIHJocyA9PSAtMSwgc2luY2UgdGhpcyBjYXNlIGlz IHVucmVwcmVzZW50YWJsZS4KKysgIFR1cmJvQXNzZW1ibGVyOjpDb21wYXJlSShrU2NyYXRjaFJl ZywgbGhzLmdwKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmFuZChzdGQ6Om51 bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSksIG5lKTsKKysgIFR1cmJvQXNzZW1ibGVyOjpD b21wYXJlSShrU2NyYXRjaFJlZzIsIHJocy5ncCgpLCBPcGVyYW5kKC0xKSwgbmUpOworKyAgYWRk KGtTY3JhdGNoUmVnLCBrU2NyYXRjaFJlZywga1NjcmF0Y2hSZWcyKTsKKysgIFR1cmJvQXNzZW1i bGVyOjpCcmFuY2godHJhcF9kaXZfdW5yZXByZXNlbnRhYmxlLCBlcSwga1NjcmF0Y2hSZWcsCisr ICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhbmQoemVyb19yZWcpKTsKKysKKysgIFR1cmJv QXNzZW1ibGVyOjpEaXY2NChkc3QuZ3AoKSwgbGhzLmdwKCksIHJocy5ncCgpKTsKKysgIHJldHVy biB0cnVlOworK30KKysKKytib29sIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0X2RpdnUoTGlm dG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIHRyYXBfZGl2X2J5X3plcm8pIHsKKysgIFR1 cmJvQXNzZW1ibGVyOjpCcmFuY2godHJhcF9kaXZfYnlfemVybywgZXEsIHJocy5ncCgpLCBPcGVy YW5kKHplcm9fcmVnKSk7CisrICBUdXJib0Fzc2VtYmxlcjo6RGl2dTY0KGRzdC5ncCgpLCBsaHMu Z3AoKSwgcmhzLmdwKCkpOworKyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgTGlmdG9mZkFz c2VtYmxlcjo6ZW1pdF9pNjRfcmVtcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0 ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVn aXN0ZXIgcmhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCog dHJhcF9kaXZfYnlfemVybykgeworKyAgVHVyYm9Bc3NlbWJsZXI6OkJyYW5jaCh0cmFwX2Rpdl9i eV96ZXJvLCBlcSwgcmhzLmdwKCksIE9wZXJhbmQoemVyb19yZWcpKTsKKysgIFR1cmJvQXNzZW1i bGVyOjpNb2Q2NChkc3QuZ3AoKSwgbGhzLmdwKCksIHJocy5ncCgpKTsKKysgIHJldHVybiB0cnVl OworK30KKysKKytib29sIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0X3JlbXUoTGlmdG9mZlJl Z2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGFiZWwqIHRyYXBfZGl2X2J5X3plcm8pIHsKKysgIFR1cmJvQXNz ZW1ibGVyOjpCcmFuY2godHJhcF9kaXZfYnlfemVybywgZXEsIHJocy5ncCgpLCBPcGVyYW5kKHpl cm9fcmVnKSk7CisrICBUdXJib0Fzc2VtYmxlcjo6TW9kdTY0KGRzdC5ncCgpLCBsaHMuZ3AoKSwg cmhzLmdwKCkpOworKyAgcmV0dXJuIHRydWU7CisrfQorKworKyNkZWZpbmUgSTY0X0JJTk9QKG5h bWUsIGluc3RydWN0aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg dm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NF8jI25hbWUoICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgICAgIExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3Rl ciBsaHMsIExpZnRvZmZSZWdpc3RlciByaHMpIHsgXAorKyAgICBpbnN0cnVjdGlvbihkc3QuZ3Ao KSwgbGhzLmdwKCksIHJocy5ncCgpKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgfQor KworKy8vIGNsYW5nLWZvcm1hdCBvZmYKKytJNjRfQklOT1AoYWRkLCBhZGQpCisrSTY0X0JJTk9Q KHN1Yiwgc3ViKQorK0k2NF9CSU5PUChhbmQsIGFuZF8pCisrSTY0X0JJTk9QKG9yLCBvcl8pCisr STY0X0JJTk9QKHhvciwgeG9yXykKKysvLyBjbGFuZy1mb3JtYXQgb24KKysKKysjdW5kZWYgSTY0 X0JJTk9QCisrCisrI2RlZmluZSBJNjRfQklOT1BfSShuYW1lLCBpbnN0cnVjdGlvbikgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NF8j I25hbWUjI2koICAgICAgICAgICAgICAgICAgIFwKKysgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgZHN0 LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLCBpbnQzMl90IGltbSkgeyBcCisrICAgIGluc3RydWN0aW9u KGRzdC5ncCgpLCBsaHMuZ3AoKSwgT3BlcmFuZChpbW0pKTsgICAgICAgICAgICAgXAorKyAgfQor KworKy8vIGNsYW5nLWZvcm1hdCBvZmYKKytJNjRfQklOT1BfSShhZGQsIEFkZDY0KQorK0k2NF9C SU5PUF9JKGFuZCwgQW5kKQorK0k2NF9CSU5PUF9JKG9yLCBPcikKKytJNjRfQklOT1BfSSh4b3Is IFhvcikKKysvLyBjbGFuZy1mb3JtYXQgb24KKysKKysjdW5kZWYgSTY0X0JJTk9QX0kKKysKKysj ZGVmaW5lIEk2NF9TSElGVE9QKG5hbWUsIGluc3RydWN0aW9uKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NF8jI25hbWUoICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlm dG9mZlJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgYW1vdW50KSB7IFwKKysgICAgaW5zdHJ1Y3Rpb24o ZHN0LmdwKCksIHNyYy5ncCgpLCBhbW91bnQpOyAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg fQorKyNkZWZpbmUgSTY0X1NISUZUT1BfSShuYW1lLCBpbnN0cnVjdGlvbikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICB2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVt aXRfaTY0XyMjbmFtZSMjaShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCAgICAgICAgICAgICAgIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3Rl ciBzcmMsIGludCBhbW91bnQpIHsgXAorKyAgICBEQ0hFQ0soaXNfdWludDYoYW1vdW50KSk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIGlu c3RydWN0aW9uKGRzdC5ncCgpLCBzcmMuZ3AoKSwgYW1vdW50KTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgIH0KKysKKytJNjRfU0hJRlRPUChzaGwsIHNsbCkKKytJNjRf U0hJRlRPUChzYXIsIHNyYSkKKytJNjRfU0hJRlRPUChzaHIsIHNybCkKKysKKytJNjRfU0hJRlRP UF9JKHNobCwgc2xsaSkKKytJNjRfU0hJRlRPUF9JKHNhciwgc3JhaSkKKytJNjRfU0hJRlRPUF9J KHNociwgc3JsaSkKKysKKysjdW5kZWYgSTY0X1NISUZUT1AKKysjdW5kZWYgSTY0X1NISUZUT1Bf SQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF91MzJfdG9faW50cHRyKFJlZ2lzdGVy IGRzdCwgUmVnaXN0ZXIgc3JjKSB7CisrICBhZGR3KGRzdCwgc3JjLCB6ZXJvX3JlZyk7CisrfQor KworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mMzJfbmVnKERvdWJsZVJlZ2lzdGVyIGRz dCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7CisrICBUdXJib0Fzc2VtYmxlcjo6TmVnX3MoZHN0LCBz cmMpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjY0X25lZyhEb3VibGVS ZWdpc3RlciBkc3QsIERvdWJsZVJlZ2lzdGVyIHNyYykgeworKyAgVHVyYm9Bc3NlbWJsZXI6Ok5l Z19kKGRzdCwgc3JjKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMl9t aW4oRG91YmxlUmVnaXN0ZXIgZHN0LCBEb3VibGVSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIgcmhzKSB7CisrICBUdXJib0Fz c2VtYmxlcjo6RmxvYXQzMk1pbihkc3QsIGxocywgcmhzKTsKKyt9CisrCisrdm9pZCBMaWZ0b2Zm QXNzZW1ibGVyOjplbWl0X2YzMl9tYXgoRG91YmxlUmVnaXN0ZXIgZHN0LCBEb3VibGVSZWdpc3Rl ciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0 ZXIgcmhzKSB7CisrICBUdXJib0Fzc2VtYmxlcjo6RmxvYXQzMk1heChkc3QsIGxocywgcmhzKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMl9jb3B5c2lnbihEb3VibGVS ZWdpc3RlciBkc3QsIERvdWJsZVJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERvdWJsZVJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrQ29t cGxleE9wZXJhdGlvbiwgImYzMl9jb3B5c2lnbiIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3Nl bWJsZXI6OmVtaXRfZjY0X21pbihEb3VibGVSZWdpc3RlciBkc3QsIERvdWJsZVJlZ2lzdGVyIGxo cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciBy aHMpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpGbG9hdDY0TWluKGRzdCwgbGhzLCByaHMpOworK30K KysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjY0X21heChEb3VibGVSZWdpc3RlciBk c3QsIERvdWJsZVJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEb3VibGVSZWdpc3RlciByaHMpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpGbG9hdDY0TWF4 KGRzdCwgbGhzLCByaHMpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjY0 X2NvcHlzaWduKERvdWJsZVJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgbGhzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIgcmhzKSB7 CisrICBiYWlsb3V0KGtDb21wbGV4T3BlcmF0aW9uLCAiZjY0X2NvcHlzaWduIik7CisrfQorKwor KyNkZWZpbmUgRlBfQklOT1AobmFtZSwgaW5zdHJ1Y3Rpb24pICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0XyMj bmFtZShEb3VibGVSZWdpc3RlciBkc3QsIERvdWJsZVJlZ2lzdGVyIGxocywgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciByaHMpIHsgICAgICAg ICAgICAgICAgICAgXAorKyAgICBpbnN0cnVjdGlvbihkc3QsIGxocywgcmhzKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgfQorKyNkZWZpbmUgRlBf VU5PUChuYW1lLCBpbnN0cnVjdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICB2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfIyNuYW1lKERvdWJs ZVJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7IFwKKysgICAgaW5zdHJ1Y3Rpb24o ZHN0LCBzcmMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgfQorKyNkZWZpbmUgRlBfVU5PUF9SRVRVUk5fVFJVRShuYW1lLCBpbnN0cnVj dGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICBib29sIExpZnRvZmZB c3NlbWJsZXI6OmVtaXRfIyNuYW1lKERvdWJsZVJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIg c3JjKSB7IFwKKysgICAgaW5zdHJ1Y3Rpb24oZHN0LCBzcmMsIGtTY3JhdGNoRG91YmxlUmVnKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICByZXR1cm4gdHJ1ZTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICB9CisrCisrRlBfQklOT1AoZjMyX2FkZCwgZmFkZF9zKQorK0ZQX0JJTk9QKGYzMl9z dWIsIGZzdWJfcykKKytGUF9CSU5PUChmMzJfbXVsLCBmbXVsX3MpCisrRlBfQklOT1AoZjMyX2Rp diwgZmRpdl9zKQorK0ZQX1VOT1AoZjMyX2FicywgZmFic19zKQorK0ZQX1VOT1BfUkVUVVJOX1RS VUUoZjMyX2NlaWwsIENlaWxfc19zKQorK0ZQX1VOT1BfUkVUVVJOX1RSVUUoZjMyX2Zsb29yLCBG bG9vcl9zX3MpCisrRlBfVU5PUF9SRVRVUk5fVFJVRShmMzJfdHJ1bmMsIFRydW5jX3NfcykKKytG UF9VTk9QX1JFVFVSTl9UUlVFKGYzMl9uZWFyZXN0X2ludCwgUm91bmRfc19zKQorK0ZQX1VOT1Ao ZjMyX3NxcnQsIGZzcXJ0X3MpCisrRlBfQklOT1AoZjY0X2FkZCwgZmFkZF9kKQorK0ZQX0JJTk9Q KGY2NF9zdWIsIGZzdWJfZCkKKytGUF9CSU5PUChmNjRfbXVsLCBmbXVsX2QpCisrRlBfQklOT1Ao ZjY0X2RpdiwgZmRpdl9kKQorK0ZQX1VOT1AoZjY0X2FicywgZmFic19kKQorK0ZQX1VOT1BfUkVU VVJOX1RSVUUoZjY0X2NlaWwsIENlaWxfZF9kKQorK0ZQX1VOT1BfUkVUVVJOX1RSVUUoZjY0X2Zs b29yLCBGbG9vcl9kX2QpCisrRlBfVU5PUF9SRVRVUk5fVFJVRShmNjRfdHJ1bmMsIFRydW5jX2Rf ZCkKKytGUF9VTk9QX1JFVFVSTl9UUlVFKGY2NF9uZWFyZXN0X2ludCwgUm91bmRfZF9kKQorK0ZQ X1VOT1AoZjY0X3NxcnQsIGZzcXJ0X2QpCisrCisrI3VuZGVmIEZQX0JJTk9QCisrI3VuZGVmIEZQ X1VOT1AKKysjdW5kZWYgRlBfVU5PUF9SRVRVUk5fVFJVRQorKworK2Jvb2wgTGlmdG9mZkFzc2Vt Ymxlcjo6ZW1pdF90eXBlX2NvbnZlcnNpb24oV2FzbU9wY29kZSBvcGNvZGUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lz dGVyIHNyYywgTGFiZWwqIHRyYXApIHsKKysgIHN3aXRjaCAob3Bjb2RlKSB7CisrICAgIGNhc2Ug a0V4cHJJMzJDb252ZXJ0STY0OgorKyAgICAgIC8vIEFjY29yZGluZyB0byBXZWJBc3NlbWJseSBz cGVjLCBpZiBJNjQgdmFsdWUgZG9lcyBub3QgZml0IHRoZSByYW5nZSBvZgorKyAgICAgIC8vIEkz MiwgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZC4gVGhlcmVmb3JlLCBXZSB1c2Ugc2lnbiBleHRlbnNp b24gdG8KKysgICAgICAvLyBpbXBsZW1lbnQgSTY0IHRvIEkzMiB0cnVuY2F0aW9uCisrICAgICAg VHVyYm9Bc3NlbWJsZXI6OlNpZ25FeHRlbmRXb3JkKGRzdC5ncCgpLCBzcmMuZ3AoKSk7CisrICAg ICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJMzJTQ29udmVydEYzMjoKKysgICAgY2Fz ZSBrRXhwckkzMlVDb252ZXJ0RjMyOgorKyAgICBjYXNlIGtFeHBySTMyU0NvbnZlcnRGNjQ6Cisr ICAgIGNhc2Uga0V4cHJJMzJVQ29udmVydEY2NDoKKysgICAgY2FzZSBrRXhwckk2NFNDb252ZXJ0 RjMyOgorKyAgICBjYXNlIGtFeHBySTY0VUNvbnZlcnRGMzI6CisrICAgIGNhc2Uga0V4cHJJNjRT Q29udmVydEY2NDoKKysgICAgY2FzZSBrRXhwckk2NFVDb252ZXJ0RjY0OgorKyAgICBjYXNlIGtF eHByRjMyQ29udmVydEY2NDogeworKyAgICAgIC8vIHJlYWwgY29udmVyc2lvbiwgaWYgc3JjIGlz IG91dC1vZi1ib3VuZCBvZiB0YXJnZXQgaW50ZWdlciB0eXBlcywKKysgICAgICAvLyBrU2NyYXRj aFJlZyBpcyBzZXQgdG8gMAorKyAgICAgIHN3aXRjaCAob3Bjb2RlKSB7CisrICAgICAgICBjYXNl IGtFeHBySTMyU0NvbnZlcnRGMzI6CisrICAgICAgICAgIFRydW5jX3dfcyhkc3QuZ3AoKSwgc3Jj LmZwKCksIGtTY3JhdGNoUmVnKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGtF eHBySTMyVUNvbnZlcnRGMzI6CisrICAgICAgICAgIFRydW5jX3V3X3MoZHN0LmdwKCksIHNyYy5m cCgpLCBrU2NyYXRjaFJlZyk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBrRXhw ckkzMlNDb252ZXJ0RjY0OgorKyAgICAgICAgICBUcnVuY193X2QoZHN0LmdwKCksIHNyYy5mcCgp LCBrU2NyYXRjaFJlZyk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBrRXhwckkz MlVDb252ZXJ0RjY0OgorKyAgICAgICAgICBUcnVuY191d19kKGRzdC5ncCgpLCBzcmMuZnAoKSwg a1NjcmF0Y2hSZWcpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2Uga0V4cHJJNjRT Q29udmVydEYzMjoKKysgICAgICAgICAgVHJ1bmNfbF9zKGRzdC5ncCgpLCBzcmMuZnAoKSwga1Nj cmF0Y2hSZWcpOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2Uga0V4cHJJNjRVQ29u dmVydEYzMjoKKysgICAgICAgICAgVHJ1bmNfdWxfcyhkc3QuZ3AoKSwgc3JjLmZwKCksIGtTY3Jh dGNoUmVnKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGtFeHBySTY0U0NvbnZl cnRGNjQ6CisrICAgICAgICAgIFRydW5jX2xfZChkc3QuZ3AoKSwgc3JjLmZwKCksIGtTY3JhdGNo UmVnKTsKKysgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGtFeHBySTY0VUNvbnZlcnRG NjQ6CisrICAgICAgICAgIFRydW5jX3VsX2QoZHN0LmdwKCksIHNyYy5mcCgpLCBrU2NyYXRjaFJl Zyk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBrRXhwckYzMkNvbnZlcnRGNjQ6 CisrICAgICAgICAgIGZjdnRfc19kKGRzdC5mcCgpLCBzcmMuZnAoKSk7CisrICAgICAgICAgIC8v IEZJWE1FICg/KTogd2hhdCBpZiBkb3VibGUgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGZsb2F0 PworKyAgICAgICAgICAvLyBUcnVuY19zX2QoZHN0LmdwKCksIHNyYy5mcCgpLCBrU2NyYXRjaFJl Zyk7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZGVmYXVsdDoKKysgICAgICAgICAgVU5S RUFDSEFCTEUoKTsKKysgICAgICB9CisrCisrICAgICAgLy8gQ2hlY2tpbmcgaWYgdHJhcC4KKysg ICAgICBUdXJib0Fzc2VtYmxlcjo6QnJhbmNoKHRyYXAsIGVxLCBrU2NyYXRjaFJlZywgT3BlcmFu ZCh6ZXJvX3JlZykpOworKworKyAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrICAgIGNhc2Ug a0V4cHJJMzJSZWludGVycHJldEYzMjoKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6RXh0cmFjdExv d1dvcmRGcm9tRjY0KGRzdC5ncCgpLCBzcmMuZnAoKSk7CisrICAgICAgcmV0dXJuIHRydWU7Cisr ICAgIGNhc2Uga0V4cHJJNjRTQ29udmVydEkzMjoKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6U2ln bkV4dGVuZFdvcmQoZHN0LmdwKCksIHNyYy5ncCgpKTsKKysgICAgICByZXR1cm4gdHJ1ZTsKKysg ICAgY2FzZSBrRXhwckk2NFVDb252ZXJ0STMyOgorKyAgICAgIFR1cmJvQXNzZW1ibGVyOjpaZXJv RXh0ZW5kV29yZChkc3QuZ3AoKSwgc3JjLmdwKCkpOworKyAgICAgIHJldHVybiB0cnVlOworKyAg ICBjYXNlIGtFeHBySTY0UmVpbnRlcnByZXRGNjQ6CisrICAgICAgZm12X3hfZChkc3QuZ3AoKSwg c3JjLmZwKCkpOworKyAgICAgIHJldHVybiB0cnVlOworKyAgICBjYXNlIGtFeHByRjMyU0NvbnZl cnRJMzI6IHsKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6Q3Z0X3Nfdyhkc3QuZnAoKSwgc3JjLmdw KCkpOworKyAgICAgIHJldHVybiB0cnVlOworKyAgICB9CisrICAgIGNhc2Uga0V4cHJGMzJVQ29u dmVydEkzMjoKKysgICAgICBUdXJib0Fzc2VtYmxlcjo6Q3Z0X3NfdXcoZHN0LmZwKCksIHNyYy5n cCgpKTsKKysgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgY2FzZSBrRXhwckYzMlJlaW50ZXJwcmV0 STMyOgorKyAgICAgIGZtdl93X3goZHN0LmZwKCksIHNyYy5ncCgpKTsKKysgICAgICByZXR1cm4g dHJ1ZTsKKysgICAgY2FzZSBrRXhwckY2NFNDb252ZXJ0STMyOiB7CisrICAgICAgVHVyYm9Bc3Nl bWJsZXI6OkN2dF9kX3coZHN0LmZwKCksIHNyYy5ncCgpKTsKKysgICAgICByZXR1cm4gdHJ1ZTsK KysgICAgfQorKyAgICBjYXNlIGtFeHByRjY0VUNvbnZlcnRJMzI6CisrICAgICAgVHVyYm9Bc3Nl bWJsZXI6OkN2dF9kX3V3KGRzdC5mcCgpLCBzcmMuZ3AoKSk7CisrICAgICAgcmV0dXJuIHRydWU7 CisrICAgIGNhc2Uga0V4cHJGNjRDb252ZXJ0RjMyOgorKyAgICAgIGZjdnRfZF9zKGRzdC5mcCgp LCBzcmMuZnAoKSk7CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJGNjRSZWlu dGVycHJldEk2NDoKKysgICAgICBmbXZfZF94KGRzdC5mcCgpLCBzcmMuZ3AoKSk7CisrICAgICAg cmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJMzJTQ29udmVydFNhdEYzMjoKKysgICAgICBi YWlsb3V0KGtOb25UcmFwcGluZ0Zsb2F0VG9JbnQsICJrRXhwckkzMlNDb252ZXJ0U2F0RjMyIik7 CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJMzJVQ29udmVydFNhdEYzMjoK KysgICAgICBiYWlsb3V0KGtOb25UcmFwcGluZ0Zsb2F0VG9JbnQsICJrRXhwckkzMlVDb252ZXJ0 U2F0RjMyIik7CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJMzJTQ29udmVy dFNhdEY2NDoKKysgICAgICBiYWlsb3V0KGtOb25UcmFwcGluZ0Zsb2F0VG9JbnQsICJrRXhwckkz MlNDb252ZXJ0U2F0RjY0Iik7CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJ MzJVQ29udmVydFNhdEY2NDoKKysgICAgICBiYWlsb3V0KGtOb25UcmFwcGluZ0Zsb2F0VG9JbnQs ICJrRXhwckkzMlVDb252ZXJ0U2F0RjY0Iik7CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNh c2Uga0V4cHJJNjRTQ29udmVydFNhdEYzMjoKKysgICAgICBiYWlsb3V0KGtOb25UcmFwcGluZ0Zs b2F0VG9JbnQsICJrRXhwckk2NFNDb252ZXJ0U2F0RjMyIik7CisrICAgICAgcmV0dXJuIHRydWU7 CisrICAgIGNhc2Uga0V4cHJJNjRVQ29udmVydFNhdEYzMjoKKysgICAgICBiYWlsb3V0KGtOb25U cmFwcGluZ0Zsb2F0VG9JbnQsICJrRXhwckk2NFVDb252ZXJ0U2F0RjMyIik7CisrICAgICAgcmV0 dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJNjRTQ29udmVydFNhdEY2NDoKKysgICAgICBiYWls b3V0KGtOb25UcmFwcGluZ0Zsb2F0VG9JbnQsICJrRXhwckk2NFNDb252ZXJ0U2F0RjY0Iik7Cisr ICAgICAgcmV0dXJuIHRydWU7CisrICAgIGNhc2Uga0V4cHJJNjRVQ29udmVydFNhdEY2NDoKKysg ICAgICBiYWlsb3V0KGtOb25UcmFwcGluZ0Zsb2F0VG9JbnQsICJrRXhwckk2NFVDb252ZXJ0U2F0 RjY0Iik7CisrICAgICAgcmV0dXJuIHRydWU7CisrICAgIGRlZmF1bHQ6CisrICAgICAgcmV0dXJu IGZhbHNlOworKyAgfQorK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyX3Np Z25leHRlbmRfaTgoUmVnaXN0ZXIgZHN0LCBSZWdpc3RlciBzcmMpIHsKKysgIHNsbGl3KGRzdCwg c3JjLCAzMiAtIDgpOworKyAgc3JhaXcoZHN0LCBkc3QsIDMyIC0gOCk7CisrfQorKworK3ZvaWQg TGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJfc2lnbmV4dGVuZF9pMTYoUmVnaXN0ZXIgZHN0LCBS ZWdpc3RlciBzcmMpIHsKKysgIHNsbGl3KGRzdCwgc3JjLCAzMiAtIDE2KTsKKysgIHNyYWl3KGRz dCwgZHN0LCAzMiAtIDE2KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2 NF9zaWduZXh0ZW5kX2k4KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIHNs bGkoZHN0LmdwKCksIHNyYy5ncCgpLCA2NCAtIDgpOworKyAgc3JhaShkc3QuZ3AoKSwgZHN0Lmdw KCksIDY0IC0gOCk7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pNjRfc2ln bmV4dGVuZF9pMTYoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIHNsbGko ZHN0LmdwKCksIHNyYy5ncCgpLCA2NCAtIDE2KTsKKysgIHNyYWkoZHN0LmdwKCksIGRzdC5ncCgp LCA2NCAtIDE2KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NF9zaWdu ZXh0ZW5kX2kzMihMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAgc2xsaShk c3QuZ3AoKSwgc3JjLmdwKCksIDY0IC0gMzIpOworKyAgc3JhaShkc3QuZ3AoKSwgZHN0LmdwKCks IDY0IC0gMzIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfanVtcChMYWJl bCogbGFiZWwpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2gobGFiZWwpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfanVtcChSZWdpc3RlciB0YXJnZXQpIHsKKysgIFR1 cmJvQXNzZW1ibGVyOjpKdW1wKHRhcmdldCk7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxl cjo6ZW1pdF9jb25kX2p1bXAoQ29uZGl0aW9uIGNvbmQsIExhYmVsKiBsYWJlbCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZSB0eXBlLCBSZWdpc3RlciBs aHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByaHMp IHsKKysgIGlmIChyaHMgIT0gbm9fcmVnKSB7CisrICAgIFR1cmJvQXNzZW1ibGVyOjpCcmFuY2go bGFiZWwsIGNvbmQsIGxocywgT3BlcmFuZChyaHMpKTsKKysgIH0gZWxzZSB7CisrICAgIFR1cmJv QXNzZW1ibGVyOjpCcmFuY2gobGFiZWwsIGNvbmQsIGxocywgT3BlcmFuZCh6ZXJvX3JlZykpOwor KyAgfQorK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyX2VxeihSZWdpc3Rl ciBkc3QsIFJlZ2lzdGVyIHNyYykgeworKyAgVHVyYm9Bc3NlbWJsZXI6OlNsdHUoZHN0LCBzcmMs IDEpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyX3NldF9jb25kKENv bmRpdGlvbiBjb25kLCBSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlciBsaHMsIFJlZ2lzdGVyIHJocykgeworKyAgVHVyYm9Bc3Nl bWJsZXI6OkNvbXBhcmVJKGRzdCwgbGhzLCBPcGVyYW5kKHJocyksIGNvbmQpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0X2VxeihSZWdpc3RlciBkc3QsIExpZnRvZmZS ZWdpc3RlciBzcmMpIHsKKysgIFR1cmJvQXNzZW1ibGVyOjpTbHR1KGRzdCwgc3JjLmdwKCksIDEp OworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0X3NldF9jb25kKENvbmRp dGlvbiBjb25kLCBSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgVHVyYm9Bc3NlbWJs ZXI6OkNvbXBhcmVJKGRzdCwgbGhzLmdwKCksIE9wZXJhbmQocmhzLmdwKCkpLCBjb25kKTsKKyt9 CisrCisrc3RhdGljIEZQVUNvbmRpdGlvbiBDb25kaXRpb25Ub0NvbmRpdGlvbkNtcEZQVShDb25k aXRpb24gY29uZGl0aW9uKSB7CisrICBzd2l0Y2ggKGNvbmRpdGlvbikgeworKyAgICBjYXNlIGtF cXVhbDoKKysgICAgICByZXR1cm4gRVE7CisrICAgIGNhc2Uga1VuZXF1YWw6CisrICAgICAgcmV0 dXJuIE5FOworKyAgICBjYXNlIGtVbnNpZ25lZExlc3NUaGFuOgorKyAgICAgIHJldHVybiBMVDsK KysgICAgY2FzZSBrVW5zaWduZWRHcmVhdGVyRXF1YWw6CisrICAgICAgcmV0dXJuIEdFOworKyAg ICBjYXNlIGtVbnNpZ25lZExlc3NFcXVhbDoKKysgICAgICByZXR1cm4gTEU7CisrICAgIGNhc2Ug a1Vuc2lnbmVkR3JlYXRlclRoYW46CisrICAgICAgcmV0dXJuIEdUOworKyAgICBkZWZhdWx0Ogor KyAgICAgIGJyZWFrOworKyAgfQorKyAgVU5SRUFDSEFCTEUoKTsKKyt9CisrCisrdm9pZCBMaWZ0 b2ZmQXNzZW1ibGVyOjplbWl0X2YzMl9zZXRfY29uZChDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIg ZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVn aXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91 YmxlUmVnaXN0ZXIgcmhzKSB7CisrICBGUFVDb25kaXRpb24gZmNvbmQgPSBDb25kaXRpb25Ub0Nv bmRpdGlvbkNtcEZQVShjb25kKTsKKysgIFR1cmJvQXNzZW1ibGVyOjpDb21wYXJlRjMyKGRzdCwg ZmNvbmQsIGxocywgcmhzKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2 NF9zZXRfY29uZChDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIgbGhzLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIgcmhzKSB7Cisr ICBGUFVDb25kaXRpb24gZmNvbmQgPSBDb25kaXRpb25Ub0NvbmRpdGlvbkNtcEZQVShjb25kKTsK KysgIFR1cmJvQXNzZW1ibGVyOjpDb21wYXJlRjY0KGRzdCwgZmNvbmQsIGxocywgcmhzKTsKKyt9 CisrCisrYm9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X3NlbGVjdChMaWZ0b2ZmUmVnaXN0ZXIg ZHN0LCBSZWdpc3RlciBjb25kaXRpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaWZ0b2ZmUmVnaXN0ZXIgdHJ1ZV92YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBmYWxzZV92YWx1ZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZSB0eXBlKSB7CisrICByZXR1cm4gZmFsc2U7 CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6TG9hZFRyYW5zZm9ybShMaWZ0b2ZmUmVn aXN0ZXIgZHN0LCBSZWdpc3RlciBzcmNfYWRkciwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0X3JlZywgdWludDMyX3Qgb2Zmc2V0X2ltbSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZFR5cGUgdHlwZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZFRyYW5zZm9ybWF0aW9uS2luZCB0 cmFuc2Zvcm0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 KiBwcm90ZWN0ZWRfbG9hZF9wYykgeworKyAgYmFpbG91dChrU2ltZCwgImxvYWQgZXh0ZW5kIGFu ZCBsb2FkIHNwbGF0IHVuaW1wbGVtZW50ZWQiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X2k4eDE2X3NodWZmbGUoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBy aHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlu dDhfdCBzaHVmZmxlWzE2XSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGlzX3N3aXp6bGUpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X3No dWZmbGUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X3N3aXp6 bGUoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1Np bWQsICJlbWl0X2k4eDE2X3N3aXp6bGUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVy OjplbWl0X2k4eDE2X3NwbGF0KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxv dXQoa1NpbWQsICJlbWl0X2k4eDE2X3NwbGF0Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2Vt Ymxlcjo6ZW1pdF9pMTZ4OF9zcGxhdChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9zcGxhdCIpOworK30KKysKKyt2b2lkIExpZnRvZmZB c3NlbWJsZXI6OmVtaXRfaTMyeDRfc3BsYXQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgewor KyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfc3BsYXQiKTsKKyt9CisrCisrdm9pZCBMaWZ0 b2ZmQXNzZW1ibGVyOjplbWl0X2k2NHgyX3NwbGF0KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMp IHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k2NHgyX3NwbGF0Iik7CisrfQorKworK3ZvaWQg TGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mMzJ4NF9zcGxhdChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg c3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9zcGxhdCIpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjY0eDJfc3BsYXQoTGlmdG9mZlJlZ2lzdGVyIGRz dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lz dGVyIHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjY0eDJfc3BsYXQiKTsKKyt9Cisr Cisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X2VxKExpZnRvZmZSZWdpc3RlciBk c3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4 eDE2X2VxIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pOHgxNl9uZShM aWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0 KGtTaW1kLCAiZW1pdF9pOHgxNl9uZSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6 OmVtaXRfaTh4MTZfZ3RfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3Rl ciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X2d0X3MiKTsKKyt9CisrCisr dm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X2d0X3UoTGlmdG9mZlJlZ2lzdGVyIGRz dCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9p OHgxNl9ndF91Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pOHgxNl9n ZV9zKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAg YmFpbG91dChrU2ltZCwgImVtaXRfaTh4MTZfZ2VfcyIpOworK30KKysKKyt2b2lkIExpZnRvZmZB c3NlbWJsZXI6OmVtaXRfaTh4MTZfZ2VfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVn aXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRv ZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X2dlX3UiKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4X2VxKExpZnRvZmZSZWdp c3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJl bWl0X2kxNng4X2VxIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMTZ4 OF9uZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9uZSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3Nl bWJsZXI6OmVtaXRfaTE2eDhfZ3RfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0 ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZS ZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kxNng4X2d0X3MiKTsKKyt9 CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4X2d0X3UoTGlmdG9mZlJlZ2lz dGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAi ZW1pdF9pMTZ4OF9ndF91Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9p MTZ4OF9nZV9zKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykg eworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfZ2VfcyIpOworK30KKysKKyt2b2lkIExp ZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfZ2VfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0 b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kxNng4X2dl X3UiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X2VxKExpZnRv ZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1Np bWQsICJlbWl0X2kzMng0X2VxIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1p dF9pMzJ4NF9uZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7 CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9uZSIpOworK30KKysKKyt2b2lkIExpZnRv ZmZBc3NlbWJsZXI6OmVtaXRfaTMyeDRfZ3RfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2Zm UmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp ZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kzMng0X2d0X3Mi KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X2d0X3UoTGlmdG9m ZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtT aW1kLCAiZW1pdF9pMzJ4NF9ndF91Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6 ZW1pdF9pMzJ4NF9nZV9zKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVy IHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfZ2VfcyIpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyeDRfZ2VfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0 LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kz Mng0X2dlX3UiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMng0X2Vx KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxv dXQoa1NpbWQsICJlbWl0X2YzMng0X2VxIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxl cjo6ZW1pdF9mMzJ4NF9uZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg cmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9uZSIpOworK30KKysKKyt2b2lk IExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjMyeDRfbHQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlm dG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjMyeDRfbHQi KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMng0X2xlKExpZnRvZmZS ZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQs ICJlbWl0X2YzMng0X2xlIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9m NjR4Ml9lcShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7Cisr ICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4Ml9lcSIpOworK30KKysKKyt2b2lkIExpZnRvZmZB c3NlbWJsZXI6OmVtaXRfZjY0eDJfbmUoTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lz dGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJl Z2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjY0eDJfbmUiKTsKKyt9Cisr Cisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX2x0KExpZnRvZmZSZWdpc3RlciBk c3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2Y2 NHgyX2x0Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mNjR4Ml9sZShM aWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0 KGtTaW1kLCAiZW1pdF9mNjR4Ml9sZSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6 OmVtaXRfczEyOF9jb25zdChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgaW1tc1sxNl0pIHsKKysgIGJhaWxv dXQoa1NpbWQsICJlbWl0X3MxMjhfY29uc3QiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X3MxMjhfbm90KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBz cmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X3MxMjhfbm90Iik7CisrfQorKworK3ZvaWQg TGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9zMTI4X2FuZChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0 b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9zMTI4X2FuZCIp OworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfczEyOF9vcihMaWZ0b2ZmUmVn aXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJl bWl0X3MxMjhfb3IiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X3MxMjhf eG9yKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJh aWxvdXQoa1NpbWQsICJlbWl0X3MxMjhfeG9yIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2Vt Ymxlcjo6ZW1pdF9zMTI4X2FuZF9ub3QoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhz KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9zMTI4X2FuZF9ub3QiKTsKKyt9CisrCisrdm9p ZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X3MxMjhfc2VsZWN0KExpZnRvZmZSZWdpc3RlciBkc3Qs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3Rl ciBzcmMxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2Zm UmVnaXN0ZXIgc3JjMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlmdG9mZlJlZ2lzdGVyIG1hc2spIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X3MxMjhfc2Vs ZWN0Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pOHgxNl9uZWcoTGlm dG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X25l ZyIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfdjh4MTZfYW55dHJ1ZShM aWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4 eDE2X2FueXRydWUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X3Y4eDE2 X2FsbHRydWUoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1k LCAiZW1pdF9pOHgxNl9hbGx0cnVlIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6 ZW1pdF9pOHgxNl9iaXRtYXNrKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAgYmFp bG91dChrU2ltZCwgImVtaXRfaTh4MTZfYml0bWFzayIpOworK30KKysKKyt2b2lkIExpZnRvZmZB c3NlbWJsZXI6OmVtaXRfaTh4MTZfc2hsKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdp c3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2Zm UmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9zaGwiKTsKKyt9 CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X3NobGkoTGlmdG9mZlJlZ2lz dGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQzMl90IHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTh4 MTZfc2hsaSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTh4MTZfc2hy X3MoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwg ImVtaXRfaTh4MTZfc2hyX3MiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0 X2k4eDE2X3NocmlfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywgaW50MzJfdCByaHMpIHsK KysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X3NocmlfcyIpOworK30KKysKKyt2b2lkIExp ZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTh4MTZfc2hyX3UoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxo cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lz dGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTh4MTZfc2hyX3UiKTsKKyt9Cisr Cisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X3NocmlfdShMaWZ0b2ZmUmVnaXN0 ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9m ZlJlZ2lzdGVyIGxocywgaW50MzJfdCByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4 eDE2X3NocmlfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTh4MTZf YWRkKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9hZGQiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNz ZW1ibGVyOjplbWl0X2k4eDE2X2FkZF9zYXR1cmF0ZV9zKExpZnRvZmZSZWdpc3RlciBkc3QsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZS ZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4 eDE2X2FkZF9zYXR1cmF0ZV9zIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1p dF9pOHgxNl9hZGRfc2F0dXJhdGVfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0 b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9hZGRfc2F0 dXJhdGVfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTh4MTZfc3Vi KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWls b3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9zdWIiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X2k4eDE2X3N1Yl9zYXR1cmF0ZV9zKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdp c3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2 X3N1Yl9zYXR1cmF0ZV9zIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9p OHgxNl9zdWJfc2F0dXJhdGVfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2Zm UmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9zdWJfc2F0dXJh dGVfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTh4MTZfbXVsKExp ZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0 KGtTaW1kLCAiZW1pdF9pOHgxNl9tdWwiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVy OjplbWl0X2k4eDE2X21pbl9zKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysg IGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X21pbl9zIik7CisrfQorKworK3ZvaWQgTGlmdG9m ZkFzc2VtYmxlcjo6ZW1pdF9pOHgxNl9taW5fdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg cmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9taW5fdSIpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTh4MTZfbWF4X3MoTGlmdG9mZlJlZ2lzdGVyIGRz dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lz dGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9m ZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTh4MTZfbWF4X3MiKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X21heF91KExpZnRvZmZS ZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp ZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2 X21heF91Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMTZ4OF9uZWco TGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kxNng4 X25lZyIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfdjE2eDhfYW55dHJ1 ZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0 X2kxNng4X2FueXRydWUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X3Yx Nng4X2FsbHRydWUoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtT aW1kLCAiZW1pdF9pMTZ4OF9hbGx0cnVlIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxl cjo6ZW1pdF9pMTZ4OF9iaXRtYXNrKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAg YmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfYml0bWFzayIpOworK30KKysKKyt2b2lkIExpZnRv ZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfc2hsKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZS ZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0 b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9zaGwiKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4X3NobGkoTGlmdG9mZlJl Z2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQzMl90IHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRf aTE2eDhfc2hsaSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhf c2hyX3MoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2lt ZCwgImVtaXRfaTE2eDhfc2hyX3MiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpl bWl0X2kxNng4X3NocmlfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywgaW50MzJfdCByaHMp IHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kxNng4X3NocmlfcyIpOworK30KKysKKyt2b2lk IExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfc2hyX3UoTGlmdG9mZlJlZ2lzdGVyIGRzdCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVy IGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJl Z2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfc2hyX3UiKTsKKyt9 CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4X3NocmlfdShMaWZ0b2ZmUmVn aXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIGxocywgaW50MzJfdCByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0 X2kxNng4X3NocmlfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2 eDhfYWRkKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7Cisr ICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9hZGQiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2Zm QXNzZW1ibGVyOjplbWl0X2kxNng4X2FkZF9zYXR1cmF0ZV9zKExpZnRvZmZSZWdpc3RlciBkc3Qs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRv ZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0 X2kxNng4X2FkZF9zYXR1cmF0ZV9zIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6 ZW1pdF9pMTZ4OF9hZGRfc2F0dXJhdGVfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg bGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9hZGRf c2F0dXJhdGVfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhf c3ViKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9zdWIiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNz ZW1ibGVyOjplbWl0X2kxNng4X3N1Yl9zYXR1cmF0ZV9zKExpZnRvZmZSZWdpc3RlciBkc3QsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZS ZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kx Nng4X3N1Yl9zYXR1cmF0ZV9zIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1p dF9pMTZ4OF9zdWJfc2F0dXJhdGVfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0 b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9zdWJfc2F0 dXJhdGVfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfbXVs KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWls b3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9tdWwiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X2kxNng4X21pbl9zKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsK KysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kxNng4X21pbl9zIik7CisrfQorKworK3ZvaWQgTGlm dG9mZkFzc2VtYmxlcjo6ZW1pdF9pMTZ4OF9taW5fdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0 ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9taW5fdSIpOworK30KKysK Kyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfbWF4X3MoTGlmdG9mZlJlZ2lzdGVy IGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJl Z2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfbWF4X3Mi KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4X21heF91KExpZnRv ZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kx Nng4X21heF91Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJ4NF9u ZWcoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kz Mng0X25lZyIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfdjMyeDRfYW55 dHJ1ZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJl bWl0X3YzMng0X2FueXRydWUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0 X3YzMng0X2FsbHRydWUoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0 KGtTaW1kLCAiZW1pdF92MzJ4NF9hbGx0cnVlIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2Vt Ymxlcjo6ZW1pdF9pMzJ4NF9iaXRtYXNrKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgewor KyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfYml0bWFzayIpOworK30KKysKKyt2b2lkIExp ZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyeDRfc2hsKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRv ZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9zaGwi KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X3NobGkoTGlmdG9m ZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVt aXRfaTMyeDRfc2hsaSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMy eDRfc2hyX3MoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChr U2ltZCwgImVtaXRfaTMyeDRfc2hyX3MiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVy OjplbWl0X2kzMng0X3NocmlfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywgaW50MzJfdCBy aHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kzMng0X3NocmlfcyIpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyeDRfc2hyX3UoTGlmdG9mZlJlZ2lzdGVyIGRz dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lz dGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9m ZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfc2hyX3UiKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X3NocmlfdShMaWZ0b2Zm UmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlmdG9mZlJlZ2lzdGVyIGxocywgaW50MzJfdCByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJl bWl0X2kzMng0X3NocmlfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRf aTMyeDRfYWRkKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7 CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9hZGQiKTsKKyt9CisrCisrdm9pZCBMaWZ0 b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X3N1YihMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2Zm UmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfc3ViIik7 CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJ4NF9tdWwoTGlmdG9mZlJl Z2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQs ICJlbWl0X2kzMng0X211bCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRf aTMyeDRfbWluX3MoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91 dChrU2ltZCwgImVtaXRfaTMyeDRfbWluX3MiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X2kzMng0X21pbl91KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsK KysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kzMng0X21pbl91Iik7CisrfQorKworK3ZvaWQgTGlm dG9mZkFzc2VtYmxlcjo6ZW1pdF9pMzJ4NF9tYXhfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0 ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9tYXhfcyIpOworK30KKysK Kyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyeDRfbWF4X3UoTGlmdG9mZlJlZ2lzdGVy IGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJl Z2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfbWF4X3Ui KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NHgyX25lZyhMaWZ0b2Zm UmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTY0eDJfbmVnIik7 CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pNjR4Ml9zaGwoTGlmdG9mZlJl Z2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQs ICJlbWl0X2k2NHgyX3NobCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRf aTY0eDJfc2hsaShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcmhzKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9pNjR4Ml9zaGxpIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFz c2VtYmxlcjo6ZW1pdF9pNjR4Ml9zaHJfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhz KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pNjR4Ml9zaHJfcyIpOworK30KKysKKyt2b2lk IExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0eDJfc2hyaV9zKExpZnRvZmZSZWdpc3RlciBkc3Qs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0 ZXIgbGhzLCBpbnQzMl90IHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTY0eDJfc2hy aV9zIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pNjR4Ml9zaHJfdShM aWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1p dF9pNjR4Ml9zaHJfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0 eDJfc2hyaV91KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLCBpbnQzMl90IHJocykgeworKyAg YmFpbG91dChrU2ltZCwgImVtaXRfaTY0eDJfc2hyaV91Iik7CisrfQorKworK3ZvaWQgTGlmdG9m ZkFzc2VtYmxlcjo6ZW1pdF9pNjR4Ml9hZGQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJl Z2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRv ZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k2NHgyX2FkZCIpOwor K30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTY0eDJfc3ViKExpZnRvZmZSZWdp c3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAi ZW1pdF9pNjR4Ml9zdWIiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2 NHgyX211bChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgewor KyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTY0eDJfbXVsIik7CisrfQorKworK3ZvaWQgTGlmdG9m ZkFzc2VtYmxlcjo6ZW1pdF9mMzJ4NF9hYnMoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysg IGJhaWxvdXQoa1NpbWQsICJlbWl0X2YzMng0X2FicyIpOworK30KKysKKyt2b2lkIExpZnRvZmZB c3NlbWJsZXI6OmVtaXRfZjMyeDRfbmVnKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9uZWciKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNz ZW1ibGVyOjplbWl0X2YzMng0X3NxcnQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9zcXJ0Iik7CisrfQorKworK2Jvb2wgTGlmdG9mZkFz c2VtYmxlcjo6ZW1pdF9mMzJ4NF9jZWlsKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAg YmFpbG91dChrU2ltZCwgImVtaXRfZjMyeDRfY2VpbCIpOworKyAgcmV0dXJuIHRydWU7CisrfQor KworK2Jvb2wgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mMzJ4NF9mbG9vcihMaWZ0b2ZmUmVnaXN0 ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2Zm UmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9mbG9vciIpOwor KyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mMzJ4 NF90cnVuYyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAi ZW1pdF9mMzJ4NF90cnVuYyIpOworKyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgTGlmdG9m ZkFzc2VtYmxlcjo6ZW1pdF9mMzJ4NF9uZWFyZXN0X2ludChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVn aXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9uZWFyZXN0X2ludCIp OworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9m MzJ4NF9hZGQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsK KysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2YzMng0X2FkZCIpOworK30KKysKKyt2b2lkIExpZnRv ZmZBc3NlbWJsZXI6OmVtaXRfZjMyeDRfc3ViKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZS ZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0 b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9zdWIiKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMng0X211bChMaWZ0b2ZmUmVn aXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwg ImVtaXRfZjMyeDRfbXVsIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9m MzJ4NF9kaXYoTGlmdG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsK KysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2YzMng0X2RpdiIpOworK30KKysKKyt2b2lkIExpZnRv ZmZBc3NlbWJsZXI6OmVtaXRfZjMyeDRfbWluKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZS ZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0 b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9taW4iKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMng0X21heChMaWZ0b2ZmUmVn aXN0ZXIgZHN0LCBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwg ImVtaXRfZjMyeDRfbWF4Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9m MzJ4NF9wbWluKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykg eworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjMyeDRfcG1pbiIpOworK30KKysKKyt2b2lkIExp ZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjMyeDRfcG1heChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBMaWZ0 b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2YzMng0X3Bt YXgiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX2FicyhMaWZ0 b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjY0eDJfYWJz Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mNjR4Ml9uZWcoTGlmdG9m ZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp ZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2Y2NHgyX25lZyIp OworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjY0eDJfc3FydChMaWZ0b2Zm UmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp ZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2Y2NHgyX3NxcnQi KTsKKyt9CisrCisrYm9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX2NlaWwoTGlmdG9m ZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4Ml9jZWls Iik7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0 X2Y2NHgyX2Zsb29yKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1Np bWQsICJlbWl0X2Y2NHgyX2Zsb29yIik7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBM aWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX3RydW5jKExpZnRvZmZSZWdpc3RlciBkc3QsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBz cmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2Y2NHgyX3RydW5jIik7CisrICByZXR1cm4g dHJ1ZTsKKyt9CisrCisrYm9vbCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX25lYXJlc3Rf aW50KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQs ICJlbWl0X2Y2NHgyX25lYXJlc3RfaW50Iik7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdm9p ZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX2FkZChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBM aWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjY0eDJf YWRkIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mNjR4Ml9zdWIoTGlm dG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQo a1NpbWQsICJlbWl0X2Y2NHgyX3N1YiIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6 OmVtaXRfZjY0eDJfbXVsKExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg cmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4Ml9tdWwiKTsKKyt9CisrCisrdm9p ZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX2RpdihMaWZ0b2ZmUmVnaXN0ZXIgZHN0LCBM aWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfZjY0eDJf ZGl2Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mNjR4Ml9taW4oTGlm dG9mZlJlZ2lzdGVyIGRzdCwgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQo a1NpbWQsICJlbWl0X2Y2NHgyX21pbiIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6 OmVtaXRfZjY0eDJfbWF4KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg cmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4Ml9tYXgiKTsKKyt9CisrCisrdm9p ZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX3BtaW4oTGlmdG9mZlJlZ2lzdGVyIGRzdCwg TGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4 Ml9wbWluIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9mNjR4Ml9wbWF4 KExpZnRvZmZSZWdpc3RlciBkc3QsIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFp bG91dChrU2ltZCwgImVtaXRfZjY0eDJfcG1heCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3Nl bWJsZXI6OmVtaXRfaTMyeDRfc2NvbnZlcnRfZjMyeDQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJl Z2lzdGVyIHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTMyeDRfc2NvbnZlcnRfZjMy eDQiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X3Vjb252ZXJ0 X2YzMng0KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQo a1NpbWQsICJlbWl0X2kzMng0X3Vjb252ZXJ0X2YzMng0Iik7CisrfQorKworK3ZvaWQgTGlmdG9m ZkFzc2VtYmxlcjo6ZW1pdF9mMzJ4NF9zY29udmVydF9pMzJ4NChMaWZ0b2ZmUmVnaXN0ZXIgZHN0 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0 b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9zY29udmVy dF9pMzJ4NCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfZjMyeDRfdWNv bnZlcnRfaTMyeDQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAgYmFp bG91dChrU2ltZCwgImVtaXRfZjMyeDRfdWNvbnZlcnRfaTMyeDQiKTsKKyt9CisrCisrdm9pZCBM aWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X3Njb252ZXJ0X2kxNng4KExpZnRvZmZSZWdpc3Rl ciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQs ICJlbWl0X2k4eDE2X3Njb252ZXJ0X2kxNng4Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2Vt Ymxlcjo6ZW1pdF9pOHgxNl91Y29udmVydF9pMTZ4OChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVn aXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmhzKSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgx Nl91Y29udmVydF9pMTZ4OCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRf aTE2eDhfc2NvbnZlcnRfaTMyeDQoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9m ZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfc2NvbnZlcnRf aTMyeDQiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4X3Vjb252 ZXJ0X2kzMng0KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBy aHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kxNng4X3Vjb252ZXJ0X2kzMng0Iik7Cisr fQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMTZ4OF9zY29udmVydF9pOHgxNl9s b3coTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQo a1NpbWQsICJlbWl0X2kxNng4X3Njb252ZXJ0X2k4eDE2X2xvdyIpOworK30KKysKKyt2b2lkIExp ZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfc2NvbnZlcnRfaTh4MTZfaGlnaChMaWZ0b2ZmUmVn aXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0 X2kxNng4X3Njb252ZXJ0X2k4eDE2X2hpZ2giKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1i bGVyOjplbWl0X2kxNng4X3Vjb252ZXJ0X2k4eDE2X2xvdyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlm dG9mZlJlZ2lzdGVyIHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfdWNvbnZl cnRfaTh4MTZfbG93Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMTZ4 OF91Y29udmVydF9pOHgxNl9oaWdoKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVy IHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhfdWNvbnZlcnRfaTh4MTZfaGln aCIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTMyeDRfc2NvbnZlcnRf aTE2eDhfbG93KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBi YWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9zY29udmVydF9pMTZ4OF9sb3ciKTsKKyt9CisrCisr dm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X3Njb252ZXJ0X2kxNng4X2hpZ2goTGlm dG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1k LCAiZW1pdF9pMzJ4NF9zY29udmVydF9pMTZ4OF9oaWdoIik7CisrfQorKworK3ZvaWQgTGlmdG9m ZkFzc2VtYmxlcjo6ZW1pdF9pMzJ4NF91Y29udmVydF9pMTZ4OF9sb3coTGlmdG9mZlJlZ2lzdGVy IGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kzMng0 X3Vjb252ZXJ0X2kxNng4X2xvdyIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVt aXRfaTMyeDRfdWNvbnZlcnRfaTE2eDhfaGlnaChMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZS ZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2kzMng0X3Vjb252ZXJ0X2kx Nng4X2hpZ2giKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X3Jv dW5kaW5nX2F2ZXJhZ2VfdShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp ZnRvZmZSZWdpc3RlciByaHMpIHsKKysgIGJhaWxvdXQoa1NpbWQsICJlbWl0X2k4eDE2X3JvdW5k aW5nX2F2ZXJhZ2VfdSIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2 eDhfcm91bmRpbmdfYXZlcmFnZV91KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg bGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlmdG9mZlJlZ2lzdGVyIHJocykgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTE2eDhf cm91bmRpbmdfYXZlcmFnZV91Iik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1p dF9pOHgxNl9hYnMoTGlmdG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBzcmMpIHsKKysgIGJhaWxvdXQoa1NpbWQs ICJlbWl0X2k4eDE2X2FicyIpOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRf aTE2eDhfYWJzKExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjKSB7CisrICBiYWlsb3V0KGtTaW1kLCAi ZW1pdF9pMTZ4OF9hYnMiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kz Mng0X2FicyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYykgeworKyAgYmFpbG91dChrU2ltZCwgImVt aXRfaTMyeDRfYWJzIik7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pOHgx Nl9leHRyYWN0X2xhbmVfcyhMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGlt bV9sYW5lX2lkeCkgeworKyAgYmFpbG91dChrU2ltZCwgImVtaXRfaTh4MTZfZXh0cmFjdF9sYW5l X3MiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4eDE2X2V4dHJhY3Rf bGFuZV91KExpZnRvZmZSZWdpc3RlciBkc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpZnRvZmZSZWdpc3RlciBsaHMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW1tX2xhbmVfaWR4 KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9leHRyYWN0X2xhbmVfdSIpOworK30K KysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OmVtaXRfaTE2eDhfZXh0cmFjdF9sYW5lX3MoTGlm dG9mZlJlZ2lzdGVyIGRzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBpbW1fbGFuZV9pZHgpIHsKKysgIGJh aWxvdXQoa1NpbWQsICJlbWl0X2kxNng4X2V4dHJhY3RfbGFuZV9zIik7CisrfQorKworK3ZvaWQg TGlmdG9mZkFzc2VtYmxlcjo6ZW1pdF9pMTZ4OF9leHRyYWN0X2xhbmVfdShMaWZ0b2ZmUmVnaXN0 ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaWZ0b2ZmUmVnaXN0ZXIgbGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50OF90IGltbV9sYW5lX2lkeCkgeworKyAgYmFpbG91dChrU2lt ZCwgImVtaXRfaTE2eDhfZXh0cmFjdF9sYW5lX3UiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNz ZW1ibGVyOjplbWl0X2kzMng0X2V4dHJhY3RfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lz dGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQ4X3QgaW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9l eHRyYWN0X2xhbmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NHgy X2V4dHJhY3RfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW1tX2xhbmVf aWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pNjR4Ml9leHRyYWN0X2xhbmUiKTsKKyt9 CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMng0X2V4dHJhY3RfbGFuZShMaWZ0 b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0 KGtTaW1kLCAiZW1pdF9mMzJ4NF9leHRyYWN0X2xhbmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2Zm QXNzZW1ibGVyOjplbWl0X2Y2NHgyX2V4dHJhY3RfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJl Z2lzdGVyIGxocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ4X3QgaW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4 Ml9leHRyYWN0X2xhbmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k4 eDE2X3JlcGxhY2VfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYzEsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0 ZXIgc3JjMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQ4X3QgaW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pOHgxNl9y ZXBsYWNlX2xhbmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kxNng4 X3JlcGxhY2VfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYzEsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIg c3JjMiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ4X3QgaW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMTZ4OF9yZXBs YWNlX2xhbmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2kzMng0X3Jl cGxhY2VfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYzEsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3Jj MiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4 X3QgaW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pMzJ4NF9yZXBsYWNl X2xhbmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2k2NHgyX3JlcGxh Y2VfbGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYzEsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjMiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg aW1tX2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9pNjR4Ml9yZXBsYWNlX2xh bmUiKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2YzMng0X3JlcGxhY2Vf bGFuZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYzEsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjMiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW1t X2xhbmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mMzJ4NF9yZXBsYWNlX2xhbmUi KTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjplbWl0X2Y2NHgyX3JlcGxhY2VfbGFu ZShMaWZ0b2ZmUmVnaXN0ZXIgZHN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlmdG9mZlJlZ2lzdGVyIHNyYzEsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgc3JjMiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW1tX2xh bmVfaWR4KSB7CisrICBiYWlsb3V0KGtTaW1kLCAiZW1pdF9mNjR4Ml9yZXBsYWNlX2xhbmUiKTsK Kyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpTdGFja0NoZWNrKExhYmVsKiBvb2xfY29k ZSwgUmVnaXN0ZXIgbGltaXRfYWRkcmVzcykgeworKyAgVHVyYm9Bc3NlbWJsZXI6OlVsZChsaW1p dF9hZGRyZXNzLCBNZW1PcGVyYW5kKGxpbWl0X2FkZHJlc3MpKTsKKysgIFR1cmJvQXNzZW1ibGVy OjpCcmFuY2gob29sX2NvZGUsIHVsZSwgc3AsIE9wZXJhbmQobGltaXRfYWRkcmVzcykpOworK30K KysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OkNhbGxUcmFwQ2FsbGJhY2tGb3JUZXN0aW5nKCkg eworKyAgUHJlcGFyZUNhbGxDRnVuY3Rpb24oMCwgR2V0VW51c2VkUmVnaXN0ZXIoa0dwUmVnLCB7 fSkuZ3AoKSk7CisrICBDYWxsQ0Z1bmN0aW9uKEV4dGVybmFsUmVmZXJlbmNlOjp3YXNtX2NhbGxf dHJhcF9jYWxsYmFja19mb3JfdGVzdGluZygpLCAwKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNz ZW1ibGVyOjpBc3NlcnRVbnJlYWNoYWJsZShBYm9ydFJlYXNvbiByZWFzb24pIHsKKysgIGlmIChl bWl0X2RlYnVnX2NvZGUoKSkgQWJvcnQocmVhc29uKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNz ZW1ibGVyOjpQdXNoUmVnaXN0ZXJzKExpZnRvZmZSZWdMaXN0IHJlZ3MpIHsKKysgIExpZnRvZmZS ZWdMaXN0IGdwX3JlZ3MgPSByZWdzICYga0dwQ2FjaGVSZWdMaXN0OworKyAgdW5zaWduZWQgbnVt X2dwX3JlZ3MgPSBncF9yZWdzLkdldE51bVJlZ3NTZXQoKTsKKysgIGlmIChudW1fZ3BfcmVncykg eworKyAgICB1bnNpZ25lZCBvZmZzZXQgPSBudW1fZ3BfcmVncyAqIGtTeXN0ZW1Qb2ludGVyU2l6 ZTsKKysgICAgQWRkNjQoc3AsIHNwLCBPcGVyYW5kKC1vZmZzZXQpKTsKKysgICAgd2hpbGUgKCFn cF9yZWdzLmlzX2VtcHR5KCkpIHsKKysgICAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmVnID0gZ3BfcmVn cy5HZXRGaXJzdFJlZ1NldCgpOworKyAgICAgIG9mZnNldCAtPSBrU3lzdGVtUG9pbnRlclNpemU7 CisrICAgICAgU2QocmVnLmdwKCksIE1lbU9wZXJhbmQoc3AsIG9mZnNldCkpOworKyAgICAgIGdw X3JlZ3MuY2xlYXIocmVnKTsKKysgICAgfQorKyAgICBEQ0hFQ0tfRVEob2Zmc2V0LCAwKTsKKysg IH0KKysgIExpZnRvZmZSZWdMaXN0IGZwX3JlZ3MgPSByZWdzICYga0ZwQ2FjaGVSZWdMaXN0Owor KyAgdW5zaWduZWQgbnVtX2ZwX3JlZ3MgPSBmcF9yZWdzLkdldE51bVJlZ3NTZXQoKTsKKysgIGlm IChudW1fZnBfcmVncykgeworKyAgICBBZGQ2NChzcCwgc3AsIE9wZXJhbmQoLShudW1fZnBfcmVn cyAqIGtTdGFja1Nsb3RTaXplKSkpOworKyAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOworKyAgICB3 aGlsZSAoIWZwX3JlZ3MuaXNfZW1wdHkoKSkgeworKyAgICAgIExpZnRvZmZSZWdpc3RlciByZWcg PSBmcF9yZWdzLkdldEZpcnN0UmVnU2V0KCk7CisrICAgICAgVHVyYm9Bc3NlbWJsZXI6OlN0b3Jl RG91YmxlKHJlZy5mcCgpLCBNZW1PcGVyYW5kKHNwLCBvZmZzZXQpKTsKKysgICAgICBmcF9yZWdz LmNsZWFyKHJlZyk7CisrICAgICAgb2Zmc2V0ICs9IHNpemVvZihkb3VibGUpOworKyAgICB9Cisr ICAgIERDSEVDS19FUShvZmZzZXQsIG51bV9mcF9yZWdzICogc2l6ZW9mKGRvdWJsZSkpOworKyAg fQorK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6OlBvcFJlZ2lzdGVycyhMaWZ0b2ZmUmVn TGlzdCByZWdzKSB7CisrICBMaWZ0b2ZmUmVnTGlzdCBmcF9yZWdzID0gcmVncyAmIGtGcENhY2hl UmVnTGlzdDsKKysgIHVuc2lnbmVkIGZwX29mZnNldCA9IDA7CisrICB3aGlsZSAoIWZwX3JlZ3Mu aXNfZW1wdHkoKSkgeworKyAgICBMaWZ0b2ZmUmVnaXN0ZXIgcmVnID0gZnBfcmVncy5HZXRGaXJz dFJlZ1NldCgpOworKyAgICBUdXJib0Fzc2VtYmxlcjo6TG9hZERvdWJsZShyZWcuZnAoKSwgTWVt T3BlcmFuZChzcCwgZnBfb2Zmc2V0KSk7CisrICAgIGZwX3JlZ3MuY2xlYXIocmVnKTsKKysgICAg ZnBfb2Zmc2V0ICs9IHNpemVvZihkb3VibGUpOworKyAgfQorKyAgaWYgKGZwX29mZnNldCkgQWRk NjQoc3AsIHNwLCBPcGVyYW5kKGZwX29mZnNldCkpOworKyAgTGlmdG9mZlJlZ0xpc3QgZ3BfcmVn cyA9IHJlZ3MgJiBrR3BDYWNoZVJlZ0xpc3Q7CisrICB1bnNpZ25lZCBncF9vZmZzZXQgPSAwOwor KyAgd2hpbGUgKCFncF9yZWdzLmlzX2VtcHR5KCkpIHsKKysgICAgTGlmdG9mZlJlZ2lzdGVyIHJl ZyA9IGdwX3JlZ3MuR2V0TGFzdFJlZ1NldCgpOworKyAgICBMZChyZWcuZ3AoKSwgTWVtT3BlcmFu ZChzcCwgZ3Bfb2Zmc2V0KSk7CisrICAgIGdwX3JlZ3MuY2xlYXIocmVnKTsKKysgICAgZ3Bfb2Zm c2V0ICs9IGtTeXN0ZW1Qb2ludGVyU2l6ZTsKKysgIH0KKysgIEFkZDY0KHNwLCBzcCwgT3BlcmFu ZChncF9vZmZzZXQpKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmQXNzZW1ibGVyOjpEcm9wU3RhY2tT bG90c0FuZFJldCh1aW50MzJfdCBudW1fc3RhY2tfc2xvdHMpIHsKKysgIFR1cmJvQXNzZW1ibGVy OjpEcm9wQW5kUmV0KHN0YXRpY19jYXN0PGludD4obnVtX3N0YWNrX3Nsb3RzKSk7CisrfQorKwor K3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6Q2FsbEMoY29uc3Qgd2FzbTo6RnVuY3Rpb25TaWcqIHNp ZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExpZnRvZmZSZWdpc3Rlciog YXJncywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExpZnRvZmZSZWdpc3Rl ciogcmV0cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZSBvdXRfYXJn dW1lbnRfdHlwZSwgaW50IHN0YWNrX2J5dGVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRXh0ZXJuYWxSZWZlcmVuY2UgZXh0X3JlZikgeworKyAgQWRkNjQoc3AsIHNwLCBPcGVyYW5k KC1zdGFja19ieXRlcykpOworKworKyAgaW50IGFyZ19ieXRlcyA9IDA7CisrICBmb3IgKFZhbHVl VHlwZSBwYXJhbV90eXBlIDogc2lnLT5wYXJhbWV0ZXJzKCkpIHsKKysgICAgbGlmdG9mZjo6U3Rv cmUodGhpcywgc3AsIGFyZ19ieXRlcywgKmFyZ3MrKywgcGFyYW1fdHlwZSk7CisrICAgIGFyZ19i eXRlcyArPSBwYXJhbV90eXBlLmVsZW1lbnRfc2l6ZV9ieXRlcygpOworKyAgfQorKyAgRENIRUNL X0xFKGFyZ19ieXRlcywgc3RhY2tfYnl0ZXMpOworKworKyAgLy8gUGFzcyBhIHBvaW50ZXIgdG8g dGhlIGJ1ZmZlciB3aXRoIHRoZSBhcmd1bWVudHMgdG8gdGhlIEMgZnVuY3Rpb24uCisrICAvLyBP biBSSVNDLVYsIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBwYXNzZWQgaW4ge2EwfS4KKysgIGNvbnN0 ZXhwciBSZWdpc3RlciBrRmlyc3RBcmdSZWcgPSBhMDsKKysgIG12KGtGaXJzdEFyZ1JlZywgc3Ap OworKworKyAgLy8gTm93IGNhbGwgdGhlIEMgZnVuY3Rpb24uCisrICBjb25zdGV4cHIgaW50IGtO dW1DQ2FsbEFyZ3MgPSAxOworKyAgUHJlcGFyZUNhbGxDRnVuY3Rpb24oa051bUNDYWxsQXJncywg a1NjcmF0Y2hSZWcpOworKyAgQ2FsbENGdW5jdGlvbihleHRfcmVmLCBrTnVtQ0NhbGxBcmdzKTsK KysKKysgIC8vIE1vdmUgcmV0dXJuIHZhbHVlIHRvIHRoZSByaWdodCByZWdpc3Rlci4KKysgIGNv bnN0IExpZnRvZmZSZWdpc3RlciogbmV4dF9yZXN1bHRfcmVnID0gcmV0czsKKysgIGlmIChzaWct PnJldHVybl9jb3VudCgpID4gMCkgeworKyAgICBEQ0hFQ0tfRVEoMSwgc2lnLT5yZXR1cm5fY291 bnQoKSk7CisrICAgIGNvbnN0ZXhwciBSZWdpc3RlciBrUmV0dXJuUmVnID0gYTA7CisrICAgIGlm IChrUmV0dXJuUmVnICE9IG5leHRfcmVzdWx0X3JlZy0+Z3AoKSkgeworKyAgICAgIE1vdmUoKm5l eHRfcmVzdWx0X3JlZywgTGlmdG9mZlJlZ2lzdGVyKGtSZXR1cm5SZWcpLCBzaWctPkdldFJldHVy bigwKSk7CisrICAgIH0KKysgICAgKytuZXh0X3Jlc3VsdF9yZWc7CisrICB9CisrCisrICAvLyBM b2FkIHBvdGVudGlhbCBvdXRwdXQgdmFsdWUgZnJvbSB0aGUgYnVmZmVyIG9uIHRoZSBzdGFjay4K KysgIGlmIChvdXRfYXJndW1lbnRfdHlwZSAhPSBrV2FzbVN0bXQpIHsKKysgICAgbGlmdG9mZjo6 TG9hZCh0aGlzLCAqbmV4dF9yZXN1bHRfcmVnLCBNZW1PcGVyYW5kKHNwLCAwKSwgb3V0X2FyZ3Vt ZW50X3R5cGUpOworKyAgfQorKworKyAgQWRkNjQoc3AsIHNwLCBPcGVyYW5kKHN0YWNrX2J5dGVz KSk7CisrfQorKworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6Q2FsbE5hdGl2ZVdhc21Db2RlKEFk ZHJlc3MgYWRkcikgeworKyAgQ2FsbChhZGRyLCBSZWxvY0luZm86OldBU01fQ0FMTCk7CisrfQor KworK3ZvaWQgTGlmdG9mZkFzc2VtYmxlcjo6VGFpbENhbGxOYXRpdmVXYXNtQ29kZShBZGRyZXNz IGFkZHIpIHsKKysgIEp1bXAoYWRkciwgUmVsb2NJbmZvOjpXQVNNX0NBTEwpOworK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OkNhbGxJbmRpcmVjdChjb25zdCB3YXNtOjpGdW5jdGlvblNp Zyogc2lnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVyOjpD YWxsRGVzY3JpcHRvciogY2FsbF9kZXNjcmlwdG9yLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlZ2lzdGVyIHRhcmdldCkgeworKyAgaWYgKHRhcmdldCA9PSBub19yZWcp IHsKKysgICAgcG9wKGtTY3JhdGNoUmVnKTsKKysgICAgQ2FsbChrU2NyYXRjaFJlZyk7CisrICB9 IGVsc2UgeworKyAgICBDYWxsKHRhcmdldCk7CisrICB9CisrfQorKworK3ZvaWQgTGlmdG9mZkFz c2VtYmxlcjo6VGFpbENhbGxJbmRpcmVjdChSZWdpc3RlciB0YXJnZXQpIHsKKysgIGlmICh0YXJn ZXQgPT0gbm9fcmVnKSB7CisrICAgIFBvcChrU2NyYXRjaFJlZyk7CisrICAgIEp1bXAoa1NjcmF0 Y2hSZWcpOworKyAgfSBlbHNlIHsKKysgICAgSnVtcCh0YXJnZXQpOworKyAgfQorK30KKysKKyt2 b2lkIExpZnRvZmZBc3NlbWJsZXI6OkNhbGxSdW50aW1lU3R1YihXYXNtQ29kZTo6UnVudGltZVN0 dWJJZCBzaWQpIHsKKysgIC8vIEEgZGlyZWN0IGNhbGwgdG8gYSB3YXNtIHJ1bnRpbWUgc3R1YiBk ZWZpbmVkIGluIHRoaXMgbW9kdWxlLgorKyAgLy8gSnVzdCBlbmNvZGUgdGhlIHN0dWIgaW5kZXgu IFRoaXMgd2lsbCBiZSBwYXRjaGVkIGF0IHJlbG9jYXRpb24uCisrICBDYWxsKHN0YXRpY19jYXN0 PEFkZHJlc3M+KHNpZCksIFJlbG9jSW5mbzo6V0FTTV9TVFVCX0NBTEwpOworK30KKysKKyt2b2lk IExpZnRvZmZBc3NlbWJsZXI6OkFsbG9jYXRlU3RhY2tTbG90KFJlZ2lzdGVyIGFkZHIsIHVpbnQz Ml90IHNpemUpIHsKKysgIEFkZDY0KHNwLCBzcCwgT3BlcmFuZCgtc2l6ZSkpOworKyAgVHVyYm9B c3NlbWJsZXI6Ok1vdmUoYWRkciwgc3ApOworK30KKysKKyt2b2lkIExpZnRvZmZBc3NlbWJsZXI6 OkRlYWxsb2NhdGVTdGFja1Nsb3QodWludDMyX3Qgc2l6ZSkgeworKyAgQWRkNjQoc3AsIHNwLCBP cGVyYW5kKHNpemUpKTsKKyt9CisrCisrdm9pZCBMaWZ0b2ZmU3RhY2tTbG90czo6Q29uc3RydWN0 KCkgeworKyAgZm9yIChhdXRvJiBzbG90IDogc2xvdHNfKSB7CisrICAgIGNvbnN0IExpZnRvZmZB c3NlbWJsZXI6OlZhclN0YXRlJiBzcmMgPSBzbG90LnNyY187CisrICAgIHN3aXRjaCAoc3JjLmxv YygpKSB7CisrICAgICAgY2FzZSBMaWZ0b2ZmQXNzZW1ibGVyOjpWYXJTdGF0ZTo6a1N0YWNrOgor KyAgICAgICAgYXNtXy0+TGQoa1NjcmF0Y2hSZWcsIGxpZnRvZmY6OkdldFN0YWNrU2xvdChzbG90 LnNyY19vZmZzZXRfKSk7CisrICAgICAgICBhc21fLT5wdXNoKGtTY3JhdGNoUmVnKTsKKysgICAg ICAgIGJyZWFrOworKyAgICAgIGNhc2UgTGlmdG9mZkFzc2VtYmxlcjo6VmFyU3RhdGU6OmtSZWdp c3RlcjoKKysgICAgICAgIGxpZnRvZmY6OnB1c2goYXNtXywgc3JjLnJlZygpLCBzcmMudHlwZSgp KTsKKysgICAgICAgIGJyZWFrOworKyAgICAgIGNhc2UgTGlmdG9mZkFzc2VtYmxlcjo6VmFyU3Rh dGU6OmtJbnRDb25zdDogeworKyAgICAgICAgYXNtXy0+bGkoa1NjcmF0Y2hSZWcsIE9wZXJhbmQo c3JjLmkzMl9jb25zdCgpKSk7CisrICAgICAgICBhc21fLT5wdXNoKGtTY3JhdGNoUmVnKTsKKysg ICAgICAgIGJyZWFrOworKyAgICAgIH0KKysgICAgfQorKyAgfQorK30KKysKKyt9ICAvLyBuYW1l c3BhY2Ugd2FzbQorK30gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorK30gIC8vIG5hbWVzcGFjZSB2 OAorKworKyNlbmRpZiAgLy8gVjhfV0FTTV9CQVNFTElORV9SSVNDVl9MSUZUT0ZGX0FTU0VNQkxF Ul9SSVNDVl9IXworSW5kZXg6IHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3dhc20vanVtcC10YWJsZS1hc3NlbWJsZXIuY2MKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3dhc20vanVtcC10YWJsZS1hc3NlbWJsZXIuY2MKKysr KyBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L3NyYy93YXNtL2p1bXAtdGFibGUtYXNzZW1ibGVyLmNjCitAQCAtMzA3LDYgKzMwNyw0MCBA QCB2b2lkIEp1bXBUYWJsZUFzc2VtYmxlcjo6Tm9wQnl0ZXMoaW50IGJ5CisgICB9CisgfQorIAor KyNlbGlmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKyt2b2lkIEp1bXBUYWJsZUFzc2VtYmxlcjo6 RW1pdExhenlDb21waWxlSnVtcFNsb3QodWludDMyX3QgZnVuY19pbmRleCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyBsYXp5X2NvbXBp bGVfdGFyZ2V0KSB7CisrICBpbnQgc3RhcnQgPSBwY19vZmZzZXQoKTsKKysgIGxpKGtXYXNtQ29t cGlsZUxhenlGdW5jSW5kZXhSZWdpc3RlciwgZnVuY19pbmRleCk7ICAvLyBtYXguIDIgaW5zdHIK KysgIC8vIEp1bXAgcHJvZHVjZXMgbWF4LiA5IGluc3RydWN0aW9ucyAoOCBmb3IgbGkgKyAxIGZv ciBqcikKKysgIEp1bXAobGF6eV9jb21waWxlX3RhcmdldCwgUmVsb2NJbmZvOjpOT05FKTsKKysg IGludCBub3BfYnl0ZXMgPSBzdGFydCArIGtMYXp5Q29tcGlsZVRhYmxlU2xvdFNpemUgLSBwY19v ZmZzZXQoKTsKKysgIERDSEVDS19FUShub3BfYnl0ZXMgJSBrSW5zdHJTaXplLCAwKTsKKysgIGZv ciAoaW50IGkgPSAwOyBpIDwgbm9wX2J5dGVzOyBpICs9IGtJbnN0clNpemUpIG5vcCgpOworK30K KysKKytib29sIEp1bXBUYWJsZUFzc2VtYmxlcjo6RW1pdEp1bXBTbG90KEFkZHJlc3MgdGFyZ2V0 KSB7CisrICBQYXRjaEFuZEp1bXAodGFyZ2V0KTsKKysgIHJldHVybiB0cnVlOworK30KKysKKyt2 b2lkIEp1bXBUYWJsZUFzc2VtYmxlcjo6RW1pdEZhckp1bXBTbG90KEFkZHJlc3MgdGFyZ2V0KSB7 CisrICBKdW1wVG9JbnN0cnVjdGlvblN0cmVhbSh0YXJnZXQpOworK30KKysKKysvLyBzdGF0aWMK Kyt2b2lkIEp1bXBUYWJsZUFzc2VtYmxlcjo6UGF0Y2hGYXJKdW1wU2xvdChBZGRyZXNzIHNsb3Qs IEFkZHJlc3MgdGFyZ2V0KSB7CisrICBVTlJFQUNIQUJMRSgpOworK30KKysKKyt2b2lkIEp1bXBU YWJsZUFzc2VtYmxlcjo6Tm9wQnl0ZXMoaW50IGJ5dGVzKSB7CisrICBEQ0hFQ0tfTEUoMCwgYnl0 ZXMpOworKyAgRENIRUNLX0VRKDAsIGJ5dGVzICUga0luc3RyU2l6ZSk7CisrICBmb3IgKDsgYnl0 ZXMgPiAwOyBieXRlcyAtPSBrSW5zdHJTaXplKSB7CisrICAgIG5vcCgpOworKyAgfQorK30KKysK KyAjZWxzZQorICNlcnJvciBVbmtub3duIGFyY2hpdGVjdHVyZS4KKyAjZW5kaWYKK0luZGV4OiBx dHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4 L3NyYy93YXNtL2p1bXAtdGFibGUtYXNzZW1ibGVyLmgKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBxdHdlYmVu Z2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgv c3JjL3dhc20vanVtcC10YWJsZS1hc3NlbWJsZXIuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hl cmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL3dhc20vanVtcC10YWJs ZS1hc3NlbWJsZXIuaAorQEAgLTIxNSw2ICsyMTUsMTEgQEAgY2xhc3MgVjhfRVhQT1JUX1BSSVZB VEUgSnVtcFRhYmxlQXNzZW1ibAorICAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0p1bXBUYWJsZVNs b3RTaXplID0gOCAqIGtJbnN0clNpemU7CisgICBzdGF0aWMgY29uc3RleHByIGludCBrRmFySnVt cFRhYmxlU2xvdFNpemUgPSA2ICoga0luc3RyU2l6ZTsKKyAgIHN0YXRpYyBjb25zdGV4cHIgaW50 IGtMYXp5Q29tcGlsZVRhYmxlU2xvdFNpemUgPSA4ICoga0luc3RyU2l6ZTsKKysjZWxpZiBWOF9U QVJHRVRfQVJDSF9SSVNDVjY0CisrICBzdGF0aWMgY29uc3RleHByIGludCBrSnVtcFRhYmxlTGlu ZVNpemUgPSA2ICoga0luc3RyU2l6ZTsKKysgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtKdW1wVGFi bGVTbG90U2l6ZSA9IDYgKiBrSW5zdHJTaXplOworKyAgc3RhdGljIGNvbnN0ZXhwciBpbnQga0Zh ckp1bXBUYWJsZVNsb3RTaXplID0gOSAqIGtJbnN0clNpemU7CisrICBzdGF0aWMgY29uc3RleHBy IGludCBrTGF6eUNvbXBpbGVUYWJsZVNsb3RTaXplID0gOSAqIGtJbnN0clNpemU7CisgI2Vsc2UK KyAjZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1cmUuCisgI2VuZGlmCitJbmRleDogcXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtNS4xNS4zL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvd2Fz bS93YXNtLWxpbmthZ2UuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUt c3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvd2FzbS93YXNtLWxp bmthZ2UuaAorKysrIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdjgvc3JjL3dhc20vd2FzbS1saW5rYWdlLmgKK0BAIC0xMDIsNiArMTAyLDIy IEBAIGNvbnN0ZXhwciBSZWdpc3RlciBrR3BSZXR1cm5SZWdpc3RlcnNbXQorIGNvbnN0ZXhwciBE b3VibGVSZWdpc3RlciBrRnBQYXJhbVJlZ2lzdGVyc1tdID0ge2QwLCBkMn07CisgY29uc3RleHBy IERvdWJsZVJlZ2lzdGVyIGtGcFJldHVyblJlZ2lzdGVyc1tdID0ge2QwLCBkMn07CisgCisrI2Vs aWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NAorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09 IHJpc2N2NjQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyBOb3RlIHRoYXQg a0dwUGFyYW1SZWdpc3RlcnMgYW5kIGtGcFBhcmFtUmVnaXN0ZXJzIGFyZSB1c2VkIGluCisrLy8g QnVpbHRpbnM6OkdlbmVyYXRlX1dhc21Db21waWxlTGF6eSAoYnVpbHRpbnMtcmlzY3Y2NC5jYykK Kytjb25zdGV4cHIgUmVnaXN0ZXIga0dwUGFyYW1SZWdpc3RlcnNbXSA9IHthMCwgYTIsIGEzLCBh NCwgYTUsIGE2LCBhN307CisrY29uc3RleHByIFJlZ2lzdGVyIGtHcFJldHVyblJlZ2lzdGVyc1td ID0ge2EwLCBhMX07CisrY29uc3RleHByIERvdWJsZVJlZ2lzdGVyIGtGcFBhcmFtUmVnaXN0ZXJz W10gPSB7ZmEwLCBmYTEsIGZhMiwgZmEzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZhNCwgZmE1LCBmYTZ9OworK2NvbnN0ZXhwciBEb3VibGVSZWdp c3RlciBrRnBSZXR1cm5SZWdpc3RlcnNbXSA9IHtmYTAsIGZhMX07CisrCisrI2VsaWYgVjhfVEFS R0VUX0FSQ0hfUklTQ1YKKysKKysjZXJyb3IgUklTQ1YoMzIpIGFyY2hpdGVjdHVyZSBub3Qgc3Vw cG9ydGVkCisrCisgI2Vsc2UKKyAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAvLyA9PSB1bmtub3du ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KK0luZGV4OiBxdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy93YXNtL3dhc20tc2VyaWFsaXphdGlvbi5jYworPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIHF0d2ViZW5naW5lLWV2ZXJ5d2hlcmUtc3JjLTUuMTUuMy5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvd2FzbS93YXNtLXNlcmlhbGl6YXRpb24uY2MKKysrKyBxdHdl YmVuZ2luZS1ldmVyeXdoZXJlLXNyYy01LjE1LjMvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Ny Yy93YXNtL3dhc20tc2VyaWFsaXphdGlvbi5jYworQEAgLTM2OCw3ICszNjgsOCBAQCBib29sIE5h dGl2ZU1vZHVsZVNlcmlhbGl6ZXI6OldyaXRlQ29kZShjCisgICB3cml0ZXItPldyaXRlVmVjdG9y KGNvZGUtPnNvdXJjZV9wb3NpdGlvbnMoKSk7CisgICB3cml0ZXItPldyaXRlVmVjdG9yKGNvZGUt PnByb3RlY3RlZF9pbnN0cnVjdGlvbnNfZGF0YSgpKTsKKyAjaWYgVjhfVEFSR0VUX0FSQ0hfTUlQ UyB8fCBWOF9UQVJHRVRfQVJDSF9NSVBTNjQgfHwgVjhfVEFSR0VUX0FSQ0hfQVJNIHx8IFwKKy0g ICAgVjhfVEFSR0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1BQQzY0IHx8IFY4X1RBUkdF VF9BUkNIX1MzOTBYCisrICAgIFY4X1RBUkdFVF9BUkNIX1BQQyB8fCBWOF9UQVJHRVRfQVJDSF9Q UEM2NCB8fCBWOF9UQVJHRVRfQVJDSF9TMzkwWCB8fCBcCisrICAgIFY4X1RBUkdFVF9BUkNIX1JJ U0NWNjQgfHwgVjhfVEFSR0VUX0FSQ0hfUklTQ1YzMgorICAgLy8gT24gcGxhdGZvcm1zIHRoYXQg ZG9uJ3Qgc3VwcG9ydCBtaXNhbGlnbmVkIHdvcmQgc3RvcmVzLCBjb3B5IHRvIGFuIGFsaWduZWQK KyAgIC8vIGJ1ZmZlciBpZiBuZWNlc3Nhcnkgc28gd2UgY2FuIHJlbG9jYXRlIHRoZSBzZXJpYWxp emVkIGNvZGUuCisgICBzdGQ6OnVuaXF1ZV9wdHI8Ynl0ZVtdPiBhbGlnbmVkX2J1ZmZlcjsKCkZy b20gMzY1MzMxODQ4MGI2MGE4YThkNzE2ZjFkZTQ5YzhlYWQ5NmRiN2U1ZCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDMx IE1hciAyMDIzIDE1OjQxOjExICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNDkvMTg5XSBEaXJlY3RY U2hhZGVyQ29tcGlsZXI6IHVwZGF0ZSB0byAxLjcuMjIxMi4xLgoKLS0tCiBzcmNwa2dzL0RpcmVj dFhTaGFkZXJDb21waWxlci90ZW1wbGF0ZSB8IDQ0ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9EaXJlY3RYU2hhZGVyQ29tcGlsZXIvdGVtcGxhdGUgYi9zcmNwa2dz L0RpcmVjdFhTaGFkZXJDb21waWxlci90ZW1wbGF0ZQppbmRleCA4NDA5MTI0ZmY1NTliLi4yZjgy MDczZjBlNTViIDEwMDY0NAotLS0gYS9zcmNwa2dzL0RpcmVjdFhTaGFkZXJDb21waWxlci90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL0RpcmVjdFhTaGFkZXJDb21waWxlci90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ0RpcmVjdFhTaGFkZXJDb21waWxlcicKIHBr Z25hbWU9RGlyZWN0WFNoYWRlckNvbXBpbGVyCi12ZXJzaW9uPTEuNy4yMjA3Cit2ZXJzaW9uPTEu Ny4yMjEyLjEKIHJldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIGk2ODYqIgogYnVpbGRfc3R5bGU9 Y21ha2UKQEAgLTEwLDIwICsxMCwyMyBAQCBzaG9ydF9kZXNjPSJEaXJlY3RYIFNoYWRlciBDb21w aWxlciBiYXNlZCBvbiBMTFZNL0NsYW5nLiAiCiBtYWludGFpbmVyPSJKb3NodWEgV29vZGllIDxq b3NodWEudC53b29kaWVAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkxMVk0iCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9EaXJlY3RYU2hhZGVyQ29tcGlsZXIiCi1fU1BJUlZf SGVhZGVyc19jb21taXQ9YjJhMTU2ZTFjMDQzNGJjOGM5OWFhZWJiYTFjN2JlOThiZTdhYzU4MAot X1NQSVJWX1Rvb2xzX2NvbW1pdD1iOTMwZTczNGVhMTk4YjdhYWJiYmYwNGVlMTU2MmNmNmY1Nzk2 MmYwCi1fcmUyX2NvbW1pdD0zZTk2MjJlMGNkOTRlYmJhNmUwNGQ1YzUwYjdhZjMyMDI5ZTMzMGQ4 Ci1fZWZmY2VlX2NvbW1pdD1kZGY1ZTJiYjkyOTU3ZGM4YTEyYzUzOTJmODQ5NTMzM2Q2ODQ0MTMz CitfU1BJUlZfSGVhZGVyc19jb21taXQ9MWQzMWExMDA0MDVjZjg3ODNjYTdhMzFlMzFjZGQ3Mjdj OWZjNTRjMworX1NQSVJWX1Rvb2xzX2NvbW1pdD00MGY1YmY1OWM2YWNiNDc1NGEwYmZmZDNjNTNh NzE1NzMyODgzYTEyCitfcmUyX2NvbW1pdD00YmUyNDA3ODlkNWIzMjJkZjlmMDJiN2UxOWM4NjUx ZjNjY2JmMjA1CitfZWZmY2VlX2NvbW1pdD0zNTkxMmUxYjc3NzhlYzJkZGNmZjdlNzE4ODE3Nzc2 MTUzOWU1OWUwCitfRGlyZWN0WF9IZWFkZXJzX2NvbW1pdD05ODA5NzFlODM1ODc2ZGMwY2RlNDE1 ZThmOWJjNjQ2ZTY0NjY3YmY3CiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3Nv ZnQvRGlyZWN0WFNoYWRlckNvbXBpbGVyL2FyY2hpdmUvcmVmcy90YWdzL3Yke3ZlcnNpb259LnRh ci5negogIGh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvU1BJUlYtSGVhZGVycy9hcmNo aXZlLyR7X1NQSVJWX0hlYWRlcnNfY29tbWl0fS50YXIuZ3oKICBodHRwczovL2dpdGh1Yi5jb20v S2hyb25vc0dyb3VwL1NQSVJWLVRvb2xzL2FyY2hpdmUvJHtfU1BJUlZfVG9vbHNfY29tbWl0fS50 YXIuZ3oKICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3JlMi9hcmNoaXZlLyR7X3JlMl9jb21t aXR9LnRhci5negotIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZWZmY2VlL2FyY2hpdmUvJHtf ZWZmY2VlX2NvbW1pdH0udGFyLmd6IgotY2hlY2tzdW09ImE1MmFhZDM4MzBiNGQzZTM5NzM0NDU1 YWQ3ZjI4OGFkMjRlMzJjMDA2ZTI1NmQ5ODdhMGVkNDRmYzU0ZmJkMjYKLSBiMjAwOTkwZTFjMDc4 OTQ5MDZlMjk4MzY4ZTdlNTZkNWFiOWQ3MjhkODUxZjkyOTI1ODdlYzc0MGMyYjRkNDA5Ci0gOWNk ZGM4NDVmOTlkN2RhYTY1OTQwZmY5ZGViNjc1NGNkNzFiNjc5ODdlYzk4NjBiYjBlZjJhZjhhODcz MmM4NAotIDIxOGUwZjhkMTAwYmEwOWEwODk1ODJkZTdhNTRhZTBlYmZhMDhmZDhlNDNiNGM4MDM1 ZWYyZmFhNWUwZDI4NGEKLSA1ODA5YjJmODBiNjdkYzIzMWM1MmRhNzQzYmUzN2JiNDZjNWNlNGE1 OWRkZTM0NDc2MWY3YzQyOTUxMTk3NTBjIgorIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZWZm Y2VlL2FyY2hpdmUvJHtfZWZmY2VlX2NvbW1pdH0udGFyLmd6CisgaHR0cHM6Ly9naXRodWIuY29t L21pY3Jvc29mdC9EaXJlY3RYLUhlYWRlcnMvYXJjaGl2ZS8ke19EaXJlY3RYX0hlYWRlcnNfY29t bWl0fS50YXIuZ3oiCitjaGVja3N1bT0iZjM0NWE1NTVhYTAyZDE2Y2YyYWM2ZTZlNzJiZjM0MGYy MDYyNjg0OWVjZTZiYTM3MDBhZTE3YTFjYTZmYzZiNworIGVjMDliNjgyYzkzYmZmYzZlM2Q1ODQ1 OTg0MGEwMzA2YjZiOTM2MGU1NmU3OTdjNDI0M2QyZDdiNzg1ZGVhNzQKKyBiOTljOTEzMDdhNGI0 NjY3NTRmZmVhYWFhNjA4NmJkYTU1NzgwY2NmMTU1NzU5MjAwNGExNzM2ZmI5YWE3Y2U3CisgZGE1 YzIzZWNkYjlhNTVjODJkNjgwMmVlNTU4MTJkZmI5OWEwMzVhNDgzODI4N2MwYjdjMDA1MWJkMGZk YjlmYworIDNlOWQxMDZiOGNiMDE4ZGI2ZGZmYjNmMzg3NDhmNmIxNjIyNjZiNTMwNzQzM2ZlMzZk MGFmMjZiYjIzNmJlZmIKKyBiNWE0YjZkODgwNmZmN2YyOWYxOTg3OWY4M2QwMTVkYmU4NzQwNjc2 ZDRjYTBiNDg2NDdhNzg5Y2M3NzczYzRlIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAi bXVzbCIgXTsgdGhlbgogCSMgVGVzdHMgb24gbXVzbCB3b3VsZCByZXF1aXJlIHNvbWUgcGF0Y2hp bmcgdG8gYmUgZG9uZQpAQCAtMzMsMTQgKzM2LDE3IEBAIGZpCiBub2Nyb3NzPSJmdW4gd2l0aCBj bWFrZSBhbmQgYnVubGRlZCBsbHZtIgogCiBwb3N0X2V4dHJhY3QoKSB7Ci0Jcm1kaXIgLXYgJHt3 cmtzcmN9L2V4dGVybmFsL1NQSVJWLUhlYWRlcnMKLQltdiAke3dya3NyY30vLi4vU1BJUlYtSGVh ZGVycy0ke19TUElSVl9IZWFkZXJzX2NvbW1pdH0gJHt3cmtzcmN9L2V4dGVybmFsL1NQSVJWLUhl YWRlcnMKLQlybWRpciAtdiAke3dya3NyY30vZXh0ZXJuYWwvU1BJUlYtVG9vbHMKLQltdiAke3dy a3NyY30vLi4vU1BJUlYtVG9vbHMtJHtfU1BJUlZfVG9vbHNfY29tbWl0fSAke3dya3NyY30vZXh0 ZXJuYWwvU1BJUlYtVG9vbHMKLQlybWRpciAtdiAke3dya3NyY30vZXh0ZXJuYWwvcmUyCi0JbXYg JHt3cmtzcmN9Ly4uL3JlMi0ke19yZTJfY29tbWl0fSAke3dya3NyY30vZXh0ZXJuYWwvcmUyCi0J cm1kaXIgLXYgJHt3cmtzcmN9L2V4dGVybmFsL2VmZmNlZQotCW12ICR7d3Jrc3JjfS8uLi9lZmZj ZWUtJHtfZWZmY2VlX2NvbW1pdH0gJHt3cmtzcmN9L2V4dGVybmFsL2VmZmNlZQorCW12ICIkcGtn bmFtZS0kdmVyc2lvbiIvKiAuCisJcm1kaXIgLXYgZXh0ZXJuYWwvU1BJUlYtSGVhZGVycworCW12 IFNQSVJWLUhlYWRlcnMtJHtfU1BJUlZfSGVhZGVyc19jb21taXR9IGV4dGVybmFsL1NQSVJWLUhl YWRlcnMKKwlybWRpciAtdiBleHRlcm5hbC9TUElSVi1Ub29scworCW12IFNQSVJWLVRvb2xzLSR7 X1NQSVJWX1Rvb2xzX2NvbW1pdH0gZXh0ZXJuYWwvU1BJUlYtVG9vbHMKKwlybWRpciAtdiBleHRl cm5hbC9yZTIKKwltdiByZTItJHtfcmUyX2NvbW1pdH0gZXh0ZXJuYWwvcmUyCisJcm1kaXIgLXYg ZXh0ZXJuYWwvZWZmY2VlCisJbXYgZWZmY2VlLSR7X2VmZmNlZV9jb21taXR9IGV4dGVybmFsL2Vm ZmNlZQorCXJtZGlyIC12IGV4dGVybmFsL0RpcmVjdFgtSGVhZGVycworCW12IERpcmVjdFgtSGVh ZGVycy0ke19EaXJlY3RYX0hlYWRlcnNfY29tbWl0fSBleHRlcm5hbC9EaXJlY3RYLUhlYWRlcnMK IH0KIAogZG9faW5zdGFsbCgpIHsKCkZyb20gOWUxZDNlNTQ3Njg3MmQ5YWYyMDk5MjY3YjY2YmRj ZTQ2MzVjMjk2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PgpEYXRlOiBXZWQsIDUgQXByIDIwMjMgMDE6NTA6MDAgKzAyMDAKU3ViamVjdDog W1BBVENIIDE1MC8xODldIGxpbnV4Ni4yOiBhZGQgcGF0Y2ggZm9yIGxvZ2l0ZWNoIGxpZ2h0cHNl ZWQgcmVjaWV2ZXIKCi0tLQogLi4uaGUtbmV3LWxpZ2h0c3BlZWQtcmVjZWl2ZXItaXRlcmF0aW9u LnBhdGNoIHwgMjc2ICsrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI3NiBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzEt Mi1ISUQtbG9naXRlY2gtZGotYWRkLXN1cHBvcnQtZm9yLXRoZS1uZXctbGlnaHRzcGVlZC1yZWNl aXZlci1pdGVyYXRpb24ucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNo ZXMvMS0yLUhJRC1sb2dpdGVjaC1kai1hZGQtc3VwcG9ydC1mb3ItdGhlLW5ldy1saWdodHNwZWVk LXJlY2VpdmVyLWl0ZXJhdGlvbi5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8xLTIt SElELWxvZ2l0ZWNoLWRqLWFkZC1zdXBwb3J0LWZvci10aGUtbmV3LWxpZ2h0c3BlZWQtcmVjZWl2 ZXItaXRlcmF0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAuLjMwMDU0ZjY5N2Q0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4yL3Bh dGNoZXMvMS0yLUhJRC1sb2dpdGVjaC1kai1hZGQtc3VwcG9ydC1mb3ItdGhlLW5ldy1saWdodHNw ZWVkLXJlY2VpdmVyLWl0ZXJhdGlvbi5wYXRjaApAQCAtMCwwICsxLDI3NiBAQAorRnJvbSBwYXRj aHdvcmsgU2F0IEphbiAyMyAxODowMzozMyAyMDIxCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9InV0Zi04IgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKK1gtUGF0Y2h3b3JrLVN1Ym1pdHRlcjogPT91dGYtOD9xP0ZpbGlwZV9MYT1D Mz1BRG5zPz0gPGxhaW5zQGFyY2hsaW51eC5vcmc+CitYLVBhdGNod29yay1JZDogMTIwNDE3NjEK K1gtUGF0Y2h3b3JrLURlbGVnYXRlOiBqaWtvc0BqaWtvcy5jegorUmV0dXJuLVBhdGg6IDxsaW51 eC1pbnB1dC1vd25lckBrZXJuZWwub3JnPgorWC1TcGFtLUNoZWNrZXItVmVyc2lvbjogU3BhbUFz c2Fzc2luIDMuNC4wICgyMDE0LTAyLTA3KSBvbgorCWF3cy11cy13ZXN0LTIta29yZy1sa21sLTEu d2ViLmNvZGVhdXJvcmEub3JnCitYLVNwYW0tTGV2ZWw6IAorWC1TcGFtLVN0YXR1czogTm8sIHNj b3JlPS0yMy45IHJlcXVpcmVkPTMuMCB0ZXN0cz1CQVlFU18wMCxES0lNV0xfV0xfSElHSCwKKwlE S0lNX1NJR05FRCxES0lNX1ZBTElELERLSU1fVkFMSURfQVUsSEVBREVSX0ZST01fRElGRkVSRU5U X0RPTUFJTlMsCisJSU5DTFVERVNfQ1JfVFJBSUxFUixJTkNMVURFU19QQVRDSCxNQUlMSU5HX0xJ U1RfTVVMVEksTUVOVElPTlNfR0lUX0hPU1RJTkcsCisJU1BGX0hFTE9fTk9ORSxTUEZfUEFTUyxV UklCTF9CTE9DS0VELFVTRVJfQUdFTlRfR0lUIGF1dG9sZWFybj1oYW0KKwlhdXRvbGVhcm5fZm9y Y2U9bm8gdmVyc2lvbj0zLjQuMAorUmVjZWl2ZWQ6IGZyb20gbWFpbC5rZXJuZWwub3JnIChtYWls Lmtlcm5lbC5vcmcgWzE5OC4xNDUuMjkuOTldKQorCWJ5IHNtdHAubG9yZS5rZXJuZWwub3JnIChQ b3N0Zml4KSB3aXRoIEVTTVRQIGlkIENBQTZCQzQzM0UwCisJZm9yIDxsaW51eC1pbnB1dEBhcmNo aXZlci5rZXJuZWwub3JnPjsgU2F0LCAyMyBKYW4gMjAyMSAxODowNDo1NCArMDAwMCAoVVRDKQor UmVjZWl2ZWQ6IGZyb20gdmdlci5rZXJuZWwub3JnICh2Z2VyLmtlcm5lbC5vcmcgWzIzLjEyOC45 Ni4xOF0pCisJYnkgbWFpbC5rZXJuZWwub3JnIChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIDkyNzRC MjJERkEKKwlmb3IgPGxpbnV4LWlucHV0QGFyY2hpdmVyLmtlcm5lbC5vcmc+OyBTYXQsIDIzIEph biAyMDIxIDE4OjA0OjU0ICswMDAwIChVVEMpCitSZWNlaXZlZDogKG1ham9yZG9tb0B2Z2VyLmtl cm5lbC5vcmcpIGJ5IHZnZXIua2VybmVsLm9yZyB2aWEgbGlzdGV4cGFuZAorICAgICAgICBpZCBT MTcyNjE1MUFiaEFXU0VnIChPUkNQVCA8cmZjODIyO2xpbnV4LWlucHV0QGFyY2hpdmVyLmtlcm5l bC5vcmc+KTsKKyAgICAgICAgU2F0LCAyMyBKYW4gMjAyMSAxMzowNDozNiAtMDUwMAorUmVjZWl2 ZWQ6IGZyb20gbWFpbC5hcmNobGludXgub3JnIChbOTUuMjE2LjE4OS42MV06MzQzODggIkVITE8K KyAgICAgICAgbWFpbC5hcmNobGludXgub3JnIiByaG9zdC1mbGFncy1PSy1PSy1PSy1PSykgYnkg dmdlci5rZXJuZWwub3JnCisgICAgICAgIHdpdGggRVNNVFAgaWQgUzE3MjYxMzFBYmhBV1NFZCAo T1JDUFQKKyAgICAgICAgPHJmYzgyMjtsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmc+KTsKKyAg ICAgICAgU2F0LCAyMyBKYW4gMjAyMSAxMzowNDozMyAtMDUwMAorUmVjZWl2ZWQ6IGZyb20gbG9j YWxob3N0LmxvY2FsZG9tYWluICh1bmtub3duCisgW0lQdjY6MjAwMTo4YTA6ZjI2ODplNjAwOjU3 NTE6ZTNlNDo3ODgwOmVjOWNdKQorICAgICAgICAodXNpbmcgVExTdjEuMyB3aXRoIGNpcGhlciBU TFNfQUVTXzI1Nl9HQ01fU0hBMzg0ICgyNTYvMjU2IGJpdHMpCisgICAgICAgICBrZXktZXhjaGFu Z2UgRUNESEUgKFAtMzg0KSBzZXJ2ZXItc2lnbmF0dXJlIFJTQS1QU1MgKDQwOTYgYml0cykKKyBz ZXJ2ZXItZGlnZXN0IFNIQTI1NikKKyAgICAgICAgKE5vIGNsaWVudCBjZXJ0aWZpY2F0ZSByZXF1 ZXN0ZWQpCisgICAgICAgIChBdXRoZW50aWNhdGVkIHNlbmRlcjogZmZ5MDApCisgICAgICAgIGJ5 IG1haWwuYXJjaGxpbnV4Lm9yZyAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDZEOTA5MzhGOTM5 OworICAgICAgICBTYXQsIDIzIEphbiAyMDIxIDE4OjAzOjQ4ICswMDAwIChVVEMpCitES0lNLVNp Z25hdHVyZTogdj0xOyBhPWVkMjU1MTktc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1hcmNo bGludXgub3JnOworICAgICAgICBzPWRraW0tZWQyNTUxOTsgdD0xNjExNDI1MDI4OworICAgICAg ICBoPWZyb206ZnJvbTpyZXBseS10bzpzdWJqZWN0OnN1YmplY3Q6ZGF0ZTpkYXRlOm1lc3NhZ2Ut aWQ6bWVzc2FnZS1pZDoKKyAgICAgICAgIHRvOnRvOmNjOmNjOm1pbWUtdmVyc2lvbjptaW1lLXZl cnNpb246Y29udGVudC10eXBlOmNvbnRlbnQtdHlwZToKKyAgICAgICAgIGNvbnRlbnQtdHJhbnNm ZXItZW5jb2Rpbmc6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKKyAgICAgICAgYmg9UTQyS1Zn VEZQUjhyQlpxc3IxWTlXSC9CN1Nmb0NSRzRhWFRyQ2RCanZ1WT07CisgICAgICAgIGI9SXBwS0Za SDR5R3BtSGgwM28zMHJFd25LUmdIall0QmsrbldwSGZmRDA4S0hiTUc4eXJpbXJKTEgyZ2FuTjY5 anFFbXdjVworICAgICAgICBaK2RVTVJLY1lMQzNpQkRBPT0KK0RLSU0tU2lnbmF0dXJlOiB2PTE7 IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9YXJjaGxpbnV4Lm9yZzsKKyAgICAg ICAgcz1ka2ltLXJzYTsgdD0xNjExNDI1MDI4OworICAgICAgICBoPWZyb206ZnJvbTpyZXBseS10 bzpzdWJqZWN0OnN1YmplY3Q6ZGF0ZTpkYXRlOm1lc3NhZ2UtaWQ6bWVzc2FnZS1pZDoKKyAgICAg ICAgIHRvOnRvOmNjOmNjOm1pbWUtdmVyc2lvbjptaW1lLXZlcnNpb246Y29udGVudC10eXBlOmNv bnRlbnQtdHlwZToKKyAgICAgICAgIGNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10 cmFuc2Zlci1lbmNvZGluZzsKKyAgICAgICAgYmg9UTQyS1ZnVEZQUjhyQlpxc3IxWTlXSC9CN1Nm b0NSRzRhWFRyQ2RCanZ1WT07CisgICAgICAgIGI9aFY3MHkveXhkWnlOTEVWc1VlWFNzTEltYzds R08zYWtOU3dKbjNoTE54OTN1ZmE2T0tpN2JWcTREZjk2RTZNcjduMTdESQorICAgICAgICBGR3U2 Qk5qZXF5a2VzMmhZVnVBblF4L01FWE1CR00rdDRSenpoclNwa1ZZNDVmY2JtNnVaTEhFL3RyWXZr ckZHQzNkVmovCisgICAgICAgIDBEbk9yT3VHVW5JdlRKZitHbWZlRVN1Wk5xcEdGaHBQYnlpVEpy VVNTc01JaExQUWVwRURWYXp3Ulhqb3JjMHZRelpXQS8KKyAgICAgICAgbVJuVGdXVXFPL1VqYVU1 ZzMrdWlLU1J4TTRnbGNKaDNHM29mcWpWZFdGMG95MCsxZmVUZlB5Qm15Q0N0dGc1ZTVFaDhOOAor ICAgICAgICAwZmFlNmFUSEx3NGdsR2JvY1JacW55REt4TWtaZVFuQ1I5aWN1SjFYN2dqVFV0OThN ZmJReUtsMnJxQW40ZXB6RG93aEc1CisgICAgICAgIG5VYU9VQ2lHZTlpY1czUnMrclV2TUNvWDI2 UkZhbmlDdlNjRkhzT29QRlJZMWF2d2hFSE5oeThrVTR3UG8rZTdiSHFRQUEKKyAgICAgICAgMmRw dHR3TkNCWUJLZ1FLNzRTNEZIaXY1dHFZU1QvREMxSnh3RW1NSDlTa0pYMUt3T3hJUGxJWko0aVc4 K2VHcTk1NDUxYgorICAgICAgICBPQ0g0TjE3empLK3BYMktMRldqd2Jsa3dNbUY4M0lBSVBqZm5w UFJpdDJrN0xRTnh5SmJTQWFSd1pIWndZQUpGWjdOWUhVCisgICAgICAgIEhwdkNnbU8zc2ZoZE0v R2l4bmo1VkJuZG5STmc3cWluYXZXVVZNOFlHTzZsWk1FdC9sMWx4ZWdkUVhpKzRnWEF4VXYvVmQK KyAgICAgICAgMVI5WGQzODJWRytkckpuUFV1ZTdhYUdzUGNWM1REeGo4V3ZQYTczY0FpbGRoUW9G a3E0RnM9CitGcm9tOiA9P3V0Zi04P3E/RmlsaXBlX0xhPUMzPUFEbnM/PSA8bGFpbnNAYXJjaGxp bnV4Lm9yZz4KK1RvOiBKaXJpIEtvc2luYSA8amlrb3NAa2VybmVsLm9yZz4sCisgICAgICAgIEJl bmphbWluIFRpc3NvaXJlcyA8YmVuamFtaW4udGlzc29pcmVzQHJlZGhhdC5jb20+LAorICAgICAg ICBsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmcsIGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5v cmcKK0NjOiA9P3V0Zi04P3E/RmlsaXBlX0xhPUMzPUFEbnM/PSA8bGFpbnNAcmlzZXVwLm5ldD4K K1N1YmplY3Q6IFtQQVRDSCAxLzJdIEhJRDogbG9naXRlY2gtZGo6IGFkZCBzdXBwb3J0IGZvciB0 aGUgbmV3IGxpZ2h0c3BlZWQKKyByZWNlaXZlciBpdGVyYXRpb24KK0RhdGU6IFNhdCwgMjMgSmFu IDIwMjEgMTg6MDM6MzMgKzAwMDAKK01lc3NhZ2UtSWQ6IDwyMDIxMDEyMzE4MDMzNC4zMDYyOTk1 LTEtbGFpbnNAYXJjaGxpbnV4Lm9yZz4KK1gtTWFpbGVyOiBnaXQtc2VuZC1lbWFpbCAyLjMwLjAK K01JTUUtVmVyc2lvbjogMS4wCitBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBtYWlsLmFyY2hsaW51 eC5vcmc7CisgICAgICAgIGF1dGg9cGFzcyBzbXRwLmF1dGg9ZmZ5MDAgc210cC5tYWlsZnJvbT1s YWluc0BhcmNobGludXgub3JnCitQcmVjZWRlbmNlOiBidWxrCitMaXN0LUlEOiA8bGludXgtaW5w dXQudmdlci5rZXJuZWwub3JnPgorWC1NYWlsaW5nLUxpc3Q6IGxpbnV4LWlucHV0QHZnZXIua2Vy bmVsLm9yZworCitGcm9tOiBGaWxpcGUgTGHDrW5zIDxsYWluc0ByaXNldXAubmV0PgorCitUZXN0 ZWQgd2l0aCB0aGUgRyBQcm8gWCBTdXBlcmxpZ2h0LiBsaWJyYXRiYWcgc2VlcyB0aGUgZGV2aWNl LCBhcworZXhwZWN0ZWQsIGFuZCBpbnB1dCBldmVudHMgYXJlIHBhc3NpbmcgdHJvdWdoLgorCito dHRwczovL2dpdGh1Yi5jb20vbGlicmF0YmFnL2xpYnJhdGJhZy9wdWxsLzExMjIKKworVGhlIHJl Y2VpdmVyIGhhcyBhIHF1aXJrIHdoZXJlIHRoZSBtb3VzZWQgaW50ZXJmYWNlIGRvZXNuJ3QgaGF2 ZSBhCityZXBvcnQgSUQsIEkgYW0gbm90IHN1cmUgd2h5LCBwZXJoYXBzIHRoZXkgZm9yZ290LiBB bGwgb3RoZXIgaW50ZXJmYWNlcworaGF2ZSByZXBvcnQgSURzIHNvIEkgYW0gbGVmdCBzY3JhdGNo aW5nIG15IGhlYWQuCitTaW5jZSB0aGlzIGRyaXZlciBkb2Vzbid0IGhhdmUgYSBxdWlyayBzeXN0 ZW0sIEkgc2ltcGx5IGltcGxlbWVudGVkIGl0CithcyBhIGRpZmZlcmVudCByZWNlaXZlciB0eXBl LCB3aGljaCBpcyB0cnVlLCBpdCBqdXN0IHdvdWxkbid0IGJlIHRoZQorcHJlZmVyZWQgYXBwcm9h Y2ggOlAKKworU2lnbmVkLW9mZi1ieTogRmlsaXBlIExhw61ucyA8bGFpbnNAcmlzZXVwLm5ldD4K Ky0tLQorIGRyaXZlcnMvaGlkL2hpZC1pZHMuaCAgICAgICAgIHwgIDEgKworIGRyaXZlcnMvaGlk L2hpZC1sb2dpdGVjaC1kai5jIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KKyAyIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQor CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oIGIvZHJpdmVycy9oaWQvaGlkLWlk cy5oCitpbmRleCA0YzVmMjM2NDBmOWMuLjhlYWMzYzkzZmEzOCAxMDA2NDQKKy0tLSBhL2RyaXZl cnMvaGlkL2hpZC1pZHMuaAorKysrIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oCitAQCAtODAzLDYg KzgwMyw3IEBACisgI2RlZmluZSBVU0JfREVWSUNFX0lEX0xPR0lURUNIX05BTk9fUkVDRUlWRVJf TElHSFRTUEVFRF8xCTB4YzUzOQorICNkZWZpbmUgVVNCX0RFVklDRV9JRF9MT0dJVEVDSF9OQU5P X1JFQ0VJVkVSX0xJR0hUU1BFRURfMV8xCTB4YzUzZgorICNkZWZpbmUgVVNCX0RFVklDRV9JRF9M T0dJVEVDSF9OQU5PX1JFQ0VJVkVSX1BPV0VSUExBWQkweGM1M2EKKysjZGVmaW5lIFVTQl9ERVZJ Q0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl9MSUdIVFNQRUVEXzFfMgkweGM1NDcKKyAjZGVm aW5lIFVTQl9ERVZJQ0VfSURfU1BBQ0VUUkFWRUxMRVIJMHhjNjIzCisgI2RlZmluZSBVU0JfREVW SUNFX0lEX1NQQUNFTkFWSUdBVE9SCTB4YzYyNgorICNkZWZpbmUgVVNCX0RFVklDRV9JRF9ESU5P Vk9fREVTS1RPUAkweGM3MDQKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtbG9naXRlY2gt ZGouYyBiL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5jCitpbmRleCAxNDAxZWUyMDY3Y2Eu LjY1OTZjODE5NDdhOCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5j CisrKysgYi9kcml2ZXJzL2hpZC9oaWQtbG9naXRlY2gtZGouYworQEAgLTExNCw2ICsxMTQsNyBA QCBlbnVtIHJlY3ZyX3R5cGUgeworIAlyZWN2cl90eXBlX2RqLAorIAlyZWN2cl90eXBlX2hpZHBw LAorIAlyZWN2cl90eXBlX2dhbWluZ19oaWRwcCwKKysJcmVjdnJfdHlwZV9nYW1pbmdfaGlkcHBf bWlzc2luZ19tc2VfcmVwb3J0X2lkLCAgLyogbGlnaHRzcGVlZCByZWNlaXZlciBtaXNzaW5nIHRo ZSBtb3VzZSByZXBvcnQgSUQgKi8KKyAJcmVjdnJfdHlwZV9tb3VzZV9vbmx5LAorIAlyZWN2cl90 eXBlXzI3bWh6LAorIAlyZWN2cl90eXBlX2JsdWV0b290aCwKK0BAIC0xMzYwLDYgKzEzNjEsNyBA QCBzdGF0aWMgaW50IGxvZ2lfZGpfbGxfcGFyc2Uoc3RydWN0IGhpZF9kZXZpY2UgKmhpZCkKKyAJ CWRiZ19oaWQoIiVzOiBzZW5kaW5nIGEgbW91c2UgZGVzY3JpcHRvciwgcmVwb3J0c19zdXBwb3J0 ZWQ6ICVsbHhcbiIsCisgCQkJX19mdW5jX18sIGRqZGV2LT5yZXBvcnRzX3N1cHBvcnRlZCk7Cisg CQlpZiAoZGpkZXYtPmRqX3JlY2VpdmVyX2Rldi0+dHlwZSA9PSByZWN2cl90eXBlX2dhbWluZ19o aWRwcCB8fAorKwkJICAgIGRqZGV2LT5kal9yZWNlaXZlcl9kZXYtPnR5cGUgPT0gcmVjdnJfdHlw ZV9nYW1pbmdfaGlkcHBfbWlzc2luZ19tc2VfcmVwb3J0X2lkIHx8CisgCQkgICAgZGpkZXYtPmRq X3JlY2VpdmVyX2Rldi0+dHlwZSA9PSByZWN2cl90eXBlX21vdXNlX29ubHkpCisgCQkJcmRjYXQo cmRlc2MsICZyc2l6ZSwgbXNlX2hpZ2hfcmVzX2Rlc2NyaXB0b3IsCisgCQkJICAgICAgc2l6ZW9m KG1zZV9oaWdoX3Jlc19kZXNjcmlwdG9yKSk7CitAQCAtMTY5MiwxMSArMTY5MiwxMiBAQAorIAkJ fQorIAkJLyoKKyAJCSAqIE1vdXNlLW9ubHkgcmVjZWl2ZXJzIHNlbmQgdW5udW1iZXJlZCBtb3Vz ZSBkYXRhLiBUaGUgMjcgTUh6CistCQkgKiByZWNlaXZlciB1c2VzIDYgYnl0ZSBwYWNrZXRzLCB0 aGUgbmFubyByZWNlaXZlciA4IGJ5dGVzLgorKwkJICogcmVjZWl2ZXIgdXNlcyA2IGJ5dGUgcGFj a2V0cywgdGhlIG5hbm8gcmVjZWl2ZXIgOCBieXRlcy4gYW5kCisrCQkgKiBzb21lIGdhbWluZyBv bmVzIGFyZSB1c2luZyAxNiBieXRlcy4KKyAJCSAqLworIAkJaWYgKGRqcmN2X2Rldi0+dW5udW1i ZXJlZF9hcHBsaWNhdGlvbiA9PSBISURfR0RfTU9VU0UgJiYKKy0JCSAgICBzaXplIDw9IDgpIHsK Ky0JCQl1OCBtb3VzZV9yZXBvcnRbOV07CisrCQkgICAgc2l6ZSA8PSAxNikgeworKwkJCXU4IG1v dXNlX3JlcG9ydFsxN107CisgCisgCQkJLyogUHJlcGVuZCByZXBvcnQgaWQgKi8KKyAJCQltb3Vz ZV9yZXBvcnRbMF0gPSBSRVBPUlRfVFlQRV9NT1VTRTsKK0BAIC0xNjg4LDYgKzE3MDYsNyBAQCBz dGF0aWMgaW50IGxvZ2lfZGpfcHJvYmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCisgCWNhc2Ug cmVjdnJfdHlwZV9kajoJCW5vX2RqX2ludGVyZmFjZXMgPSAzOyBicmVhazsKKyAJY2FzZSByZWN2 cl90eXBlX2hpZHBwOgkJbm9fZGpfaW50ZXJmYWNlcyA9IDI7IGJyZWFrOworIAljYXNlIHJlY3Zy X3R5cGVfZ2FtaW5nX2hpZHBwOglub19kal9pbnRlcmZhY2VzID0gMzsgYnJlYWs7CisrCWNhc2Ug cmVjdnJfdHlwZV9nYW1pbmdfaGlkcHBfbWlzc2luZ19tc2VfcmVwb3J0X2lkOiBub19kal9pbnRl cmZhY2VzID0gMzsgYnJlYWs7CisgCWNhc2UgcmVjdnJfdHlwZV9tb3VzZV9vbmx5Oglub19kal9p bnRlcmZhY2VzID0gMjsgYnJlYWs7CisgCWNhc2UgcmVjdnJfdHlwZV8yN21oejoJCW5vX2RqX2lu dGVyZmFjZXMgPSAyOyBicmVhazsKKyAJY2FzZSByZWN2cl90eXBlX2JsdWV0b290aDoJbm9fZGpf aW50ZXJmYWNlcyA9IDI7IGJyZWFrOworQEAgLTE5ODQsNiArMTk4NCwxMCBAQAorIAkgIEhJRF9V U0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTE9HSVRFQ0gsCisgCQlVU0JfREVWSUNFX0lEX0xPR0lU RUNIX05BTk9fUkVDRUlWRVJfTElHSFRTUEVFRF8xXzEpLAorIAkgLmRyaXZlcl9kYXRhID0gcmVj dnJfdHlwZV9nYW1pbmdfaGlkcHB9LAorKwl7IC8qIExvZ2l0ZWNoIGxpZ2h0c3BlZWQgcmVjZWl2 ZXIgKDB4YzU0NykgKi8KKysJIEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTE9HSVRFQ0gs CisrCQlVU0JfREVWSUNFX0lEX0xPR0lURUNIX05BTk9fUkVDRUlWRVJfTElHSFRTUEVFRF8xXzIp LAorKwkgLmRyaXZlcl9kYXRhID0gcmVjdnJfdHlwZV9nYW1pbmdfaGlkcHBfbWlzc2luZ19tc2Vf cmVwb3J0X2lkfSwKKyAKKyAJeyAvKiBMb2dpdGVjaCAyNyBNSHogSElEKysgMS4wIHJlY2VpdmVy ICgweGM1MTMpICovCisgCSAgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9MT0dJVEVDSCwg VVNCX0RFVklDRV9JRF9NWDMwMDBfUkVDRUlWRVIpLAorRnJvbSBwYXRjaHdvcmsgU2F0IEphbiAy MyAxODowMzozNCAyMDIxCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04 IgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKK1gt UGF0Y2h3b3JrLVN1Ym1pdHRlcjogPT91dGYtOD9xP0ZpbGlwZV9MYT1DMz1BRG5zPz0gPGxhaW5z QGFyY2hsaW51eC5vcmc+CitYLVBhdGNod29yay1JZDogMTIwNDE3NjMKK1gtUGF0Y2h3b3JrLURl bGVnYXRlOiBqaWtvc0BqaWtvcy5jegorUmV0dXJuLVBhdGg6IDxsaW51eC1pbnB1dC1vd25lckBr ZXJuZWwub3JnPgorWC1TcGFtLUNoZWNrZXItVmVyc2lvbjogU3BhbUFzc2Fzc2luIDMuNC4wICgy MDE0LTAyLTA3KSBvbgorCWF3cy11cy13ZXN0LTIta29yZy1sa21sLTEud2ViLmNvZGVhdXJvcmEu b3JnCitYLVNwYW0tTGV2ZWw6IAorWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xOC45IHJlcXVp cmVkPTMuMCB0ZXN0cz1CQVlFU18wMCxES0lNV0xfV0xfSElHSCwKKwlES0lNX1NJR05FRCxES0lN X1ZBTElELERLSU1fVkFMSURfQVUsSEVBREVSX0ZST01fRElGRkVSRU5UX0RPTUFJTlMsCisJSU5D TFVERVNfQ1JfVFJBSUxFUixJTkNMVURFU19QQVRDSCxNQUlMSU5HX0xJU1RfTVVMVEksU1BGX0hF TE9fTk9ORSxTUEZfUEFTUywKKwlVUklCTF9CTE9DS0VELFVTRVJfQUdFTlRfR0lUIGF1dG9sZWFy bj1oYW0gYXV0b2xlYXJuX2ZvcmNlPW5vIHZlcnNpb249My40LjAKK1JlY2VpdmVkOiBmcm9tIG1h aWwua2VybmVsLm9yZyAobWFpbC5rZXJuZWwub3JnIFsxOTguMTQ1LjI5Ljk5XSkKKwlieSBzbXRw LmxvcmUua2VybmVsLm9yZyAoUG9zdGZpeCkgd2l0aCBFU01UUCBpZCBEOUM3OEM0MzNEQgorCWZv ciA8bGludXgtaW5wdXRAYXJjaGl2ZXIua2VybmVsLm9yZz47IFNhdCwgMjMgSmFuIDIwMjEgMTg6 MDQ6NTQgKzAwMDAgKFVUQykKK1JlY2VpdmVkOiBmcm9tIHZnZXIua2VybmVsLm9yZyAodmdlci5r ZXJuZWwub3JnIFsyMy4xMjguOTYuMThdKQorCWJ5IG1haWwua2VybmVsLm9yZyAoUG9zdGZpeCkg d2l0aCBFU01UUCBpZCBBRDFDNDIzMEZDCisJZm9yIDxsaW51eC1pbnB1dEBhcmNoaXZlci5rZXJu ZWwub3JnPjsgU2F0LCAyMyBKYW4gMjAyMSAxODowNDo1NCArMDAwMCAoVVRDKQorUmVjZWl2ZWQ6 IChtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnKSBieSB2Z2VyLmtlcm5lbC5vcmcgdmlhIGxpc3Rl eHBhbmQKKyAgICAgICAgaWQgUzE3MjYxOThBYmhBV1NFbCAoT1JDUFQgPHJmYzgyMjtsaW51eC1p bnB1dEBhcmNoaXZlci5rZXJuZWwub3JnPik7CisgICAgICAgIFNhdCwgMjMgSmFuIDIwMjEgMTM6 MDQ6NDEgLTA1MDAKK1JlY2VpdmVkOiBmcm9tIGxpbmRiZXJnaC5tb25rZXlibGFkZS5uZXQgKFsy My4xMjguOTYuMTldOjQwMjU2ICJFSExPCisgICAgICAgIGxpbmRiZXJnaC5tb25rZXlibGFkZS5u ZXQiIHJob3N0LWZsYWdzLU9LLU9LLU9LLU9LKSBieSB2Z2VyLmtlcm5lbC5vcmcKKyAgICAgICAg d2l0aCBFU01UUCBpZCBTMTcyNTc2NUFiaEFXU0VmIChPUkNQVAorICAgICAgICA8cmZjODIyO2xp bnV4LWlucHV0QHZnZXIua2VybmVsLm9yZz4pOworICAgICAgICBTYXQsIDIzIEphbiAyMDIxIDEz OjA0OjM1IC0wNTAwCitSZWNlaXZlZDogZnJvbSBtYWlsLmFyY2hsaW51eC5vcmcgKG1haWwuYXJj aGxpbnV4Lm9yZworIFtJUHY2OjJhMDE6NGY5OmMwMTA6MzA1Mjo6MV0pCisgICAgICAgIGJ5IGxp bmRiZXJnaC5tb25rZXlibGFkZS5uZXQgKFBvc3RmaXgpIHdpdGggRVNNVFBTIGlkIEQ1QkRCQzA2 MTc0QTsKKyAgICAgICAgU2F0LCAyMyBKYW4gMjAyMSAxMDowMzo1NCAtMDgwMCAoUFNUKQorUmVj ZWl2ZWQ6IGZyb20gbG9jYWxob3N0LmxvY2FsZG9tYWluICh1bmtub3duCisgW0lQdjY6MjAwMTo4 YTA6ZjI2ODplNjAwOjU3NTE6ZTNlNDo3ODgwOmVjOWNdKQorICAgICAgICAodXNpbmcgVExTdjEu MyB3aXRoIGNpcGhlciBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0ICgyNTYvMjU2IGJpdHMpCisgICAg ICAgICBrZXktZXhjaGFuZ2UgRUNESEUgKFAtMzg0KSBzZXJ2ZXItc2lnbmF0dXJlIFJTQS1QU1Mg KDQwOTYgYml0cykKKyBzZXJ2ZXItZGlnZXN0IFNIQTI1NikKKyAgICAgICAgKE5vIGNsaWVudCBj ZXJ0aWZpY2F0ZSByZXF1ZXN0ZWQpCisgICAgICAgIChBdXRoZW50aWNhdGVkIHNlbmRlcjogZmZ5 MDApCisgICAgICAgIGJ5IG1haWwuYXJjaGxpbnV4Lm9yZyAoUG9zdGZpeCkgd2l0aCBFU01UUFNB IGlkIDhDNDZBMzhGOTNBOworICAgICAgICBTYXQsIDIzIEphbiAyMDIxIDE4OjAzOjUwICswMDAw IChVVEMpCitES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxh eGVkOyBkPWFyY2hsaW51eC5vcmc7CisgICAgICAgIHM9ZGtpbS1yc2E7IHQ9MTYxMTQyNTAzMTsK KyAgICAgICAgaD1mcm9tOmZyb206cmVwbHktdG86c3ViamVjdDpzdWJqZWN0OmRhdGU6ZGF0ZTpt ZXNzYWdlLWlkOm1lc3NhZ2UtaWQ6CisgICAgICAgICB0bzp0bzpjYzpjYzptaW1lLXZlcnNpb246 bWltZS12ZXJzaW9uOmNvbnRlbnQtdHlwZTpjb250ZW50LXR5cGU6CisgICAgICAgICBjb250ZW50 LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6CisgICAgICAgICBp bi1yZXBseS10bzppbi1yZXBseS10bzpyZWZlcmVuY2VzOnJlZmVyZW5jZXM7CisgICAgICAgIGJo PXBVeTVHUm42aUFkMDc3NCt6cnZ0L3h4THNMeTVHZnBoN0k4ODdCbFp6Tms9OworICAgICAgICBi PVVaZ2M2T3k1WlRLQVo4Sy83Q3RsOXM0eGFhbFVRMC85cm5oVW9RS1E5ZE4vcE9kK2dTSUxxODZG eFRsRjM3M1lxOTVXVEUKKyAgICAgICAgTThCNHFBKytwc05HQ3BvTkJ6QU9KMlJZWVk0VG9NcnF5 VzNxYjBCUlM1WFdNRG1KSUtOT1lQREZXVTZCNFZoME02TVFScAorICAgICAgICBPQVdhSW5wVFE1 b0t2UnQwUXFUb1BwU2N2SHJCRHZPRmwvTE5wbjVyY0I5QUFYNVB2ZFpkOElzeGFvb0hqQzI5a0l0 N3ZjCisgICAgICAgIFloem5FbjB2QzU1QlRPRkpDVUdha3VtODVTd2VGNi9sZDhUM2hNRUp1SmFK U0Y1bGg2SmFTT3VDcDdsUFYycXlVVDFhK1gKKyAgICAgICAgR3duM1dyQTA4K3hVYy9mVFo2SkpG QWxzWFhRdzNRdmtzTlE4N0RJN24yS2FqT1MzMU4yMm9rd05BeUNqaVdwQ3ZsaXJRUAorICAgICAg ICBEV0J5Ym94TlR4WGFueklFTVdsUXpJKzMxbEVSc1Nac0JlZE81VTdhSEhNaDJXbURkdXV0dE9D MXQzS2tEbnlMaUgyN1hQCisgICAgICAgIEZSL0haR2d1cjczY1RoaG9WQkhQZ1A4UmQ3NXNjWjVa M05vY0Y4Sy9WdTFvb2ozTjdyL0pHN3ZHd2xtOEtsalR4d09OSVAKKyAgICAgICAgMXVIcjlJMTd3 M0dpMzY5WTZFQ2J5dXZ3cWw1eUMzOWwyaTZsWHR0NjN4R3A4N1dJM2ErMU1uWS8vTHFkY2pZdElx cXZXTQorICAgICAgICBIcTcxUkhTWW1FUmhmR0w0TDBvM1RsRGxoTDRwSG9BMGROWkF4MUZiUm81 cUFHLzNOVk9zdVJuM001NWFUTnBxTVRGSUg2CisgICAgICAgIE1SN2s3NXZYZ0ZUY0hlZVJkRjN5 WHRWMmN3T2hFRzQ5endSc1dOMHFmVC9JYXBNUXRpUUlNPQorREtJTS1TaWduYXR1cmU6IHY9MTsg YT1lZDI1NTE5LXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9YXJjaGxpbnV4Lm9yZzsKKyAg ICAgICAgcz1ka2ltLWVkMjU1MTk7IHQ9MTYxMTQyNTAzMTsKKyAgICAgICAgaD1mcm9tOmZyb206 cmVwbHktdG86c3ViamVjdDpzdWJqZWN0OmRhdGU6ZGF0ZTptZXNzYWdlLWlkOm1lc3NhZ2UtaWQ6 CisgICAgICAgICB0bzp0bzpjYzpjYzptaW1lLXZlcnNpb246bWltZS12ZXJzaW9uOmNvbnRlbnQt dHlwZTpjb250ZW50LXR5cGU6CisgICAgICAgICBjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNv bnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6CisgICAgICAgICBpbi1yZXBseS10bzppbi1yZXBseS10 bzpyZWZlcmVuY2VzOnJlZmVyZW5jZXM7CisgICAgICAgIGJoPXBVeTVHUm42aUFkMDc3NCt6cnZ0 L3h4THNMeTVHZnBoN0k4ODdCbFp6Tms9OworICAgICAgICBiPW5vQy83eDRyZFZJRjZUSUlwUEg2 Z1JEbktLdmR3VjhEaDF2MVFoZFJSQytteTNJRXhNd0grQXVqckxXMjJtWDZMWEtqTTAKKyAgICAg ICAgaElpL1luS2kydVJuMlNBdz09CitGcm9tOiA9P3V0Zi04P3E/RmlsaXBlX0xhPUMzPUFEbnM/ PSA8bGFpbnNAYXJjaGxpbnV4Lm9yZz4KK1RvOiBKaXJpIEtvc2luYSA8amlrb3NAa2VybmVsLm9y Zz4sCisgICAgICAgIEJlbmphbWluIFRpc3NvaXJlcyA8YmVuamFtaW4udGlzc29pcmVzQHJlZGhh dC5jb20+LAorICAgICAgICBsaW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmcsIGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmcKK0NjOiA9P3V0Zi04P3E/RmlsaXBlX0xhPUMzPUFEbnM/PSA8bGFp bnNAcmlzZXVwLm5ldD4KK1N1YmplY3Q6IFtQQVRDSCAyLzJdIEhJRDogbG9naXRlY2gtaGlkcHA6 IGFkZCBzdXBwb3J0IGZvciB0aGUgRyBQcm8gWAorIFN1cGVybGlnaHQgb3ZlciBVU0IKK0RhdGU6 IFNhdCwgMjMgSmFuIDIwMjEgMTg6MDM6MzQgKzAwMDAKK01lc3NhZ2UtSWQ6IDwyMDIxMDEyMzE4 MDMzNC4zMDYyOTk1LTItbGFpbnNAYXJjaGxpbnV4Lm9yZz4KK1gtTWFpbGVyOiBnaXQtc2VuZC1l bWFpbCAyLjMwLjAKK0luLVJlcGx5LVRvOiA8MjAyMTAxMjMxODAzMzQuMzA2Mjk5NS0xLWxhaW5z QGFyY2hsaW51eC5vcmc+CitSZWZlcmVuY2VzOiA8MjAyMTAxMjMxODAzMzQuMzA2Mjk5NS0xLWxh aW5zQGFyY2hsaW51eC5vcmc+CitNSU1FLVZlcnNpb246IDEuMAorQXV0aGVudGljYXRpb24tUmVz dWx0czogbWFpbC5hcmNobGludXgub3JnOworICAgICAgICBhdXRoPXBhc3Mgc210cC5hdXRoPWZm eTAwIHNtdHAubWFpbGZyb209bGFpbnNAYXJjaGxpbnV4Lm9yZworUHJlY2VkZW5jZTogYnVsawor TGlzdC1JRDogPGxpbnV4LWlucHV0LnZnZXIua2VybmVsLm9yZz4KK1gtTWFpbGluZy1MaXN0OiBs aW51eC1pbnB1dEB2Z2VyLmtlcm5lbC5vcmcKKworRnJvbTogRmlsaXBlIExhw61ucyA8bGFpbnNA cmlzZXVwLm5ldD4KKworVGVzdGVkIGFuZCBpcyB3b3JraW5nIDopCisKK1NpZ25lZC1vZmYtYnk6 IEZpbGlwZSBMYcOtbnMgPGxhaW5zQHJpc2V1cC5uZXQ+CistLS0KKyBkcml2ZXJzL2hpZC9oaWQt bG9naXRlY2gtaGlkcHAuYyB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtbG9naXRlY2gtaGlkcHAuYyBiL2RyaXZl cnMvaGlkL2hpZC1sb2dpdGVjaC1oaWRwcC5jCitpbmRleCAyOTFjNmI0ZDI2YjcuLjU0YTI4OTUx MGE3ZCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1oaWRwcC5jCisrKysg Yi9kcml2ZXJzL2hpZC9oaWQtbG9naXRlY2gtaGlkcHAuYworQEAgLTQyNjgsNiArNDI2OCw4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2RldmljZV9pZCBoaWRwcF9kZXZpY2VzW10gPSB7Cisg CQkuZHJpdmVyX2RhdGEgPSBISURQUF9RVUlSS19DTEFTU19HOTIwIHwgSElEUFBfUVVJUktfRk9S Q0VfT1VUUFVUX1JFUE9SVFN9LAorIAl7IC8qIExvZ2l0ZWNoIEcgUHJvIEdhbWluZyBNb3VzZSBv dmVyIFVTQiAqLworIAkgIEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTE9HSVRFQ0gsIDB4 QzA4OCkgfSwKKysJeyAvKiBMb2dpdGVjaCBHIFBybyBYIFN1cGVybGlnaHQgR2FtaW5nIE1vdXNl IG92ZXIgVVNCICovCisrCSAgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9MT0dJVEVDSCwg MHhDMDk0KSB9LAorIAorIAl7IC8qIE1YNTAwMCBrZXlib2FyZCBvdmVyIEJsdWV0b290aCAqLwor IAkgIEhJRF9CTFVFVE9PVEhfREVWSUNFKFVTQl9WRU5ET1JfSURfTE9HSVRFQ0gsIDB4YjMwNSks CgpGcm9tIGNhZTk5ZTFkOTlmNDM2Y2YwNTNmZGM5ZWQ1NmEzYmQ5N2Q2MGM0MDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogV2Vk LCA1IEFwciAyMDIzIDEzOjM3OjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNTEvMTg5XSB3ZWJr aXQyZ3RrOiBlbmFibGUgaml0IG9uIHJpc2N2NjQKCi0tLQogLi4uL3BhdGNoZXMvZml4LXJpc2N2 NjQtYnVpbGQucGF0Y2ggICAgICAgICAgIHwgMjggKysrKysrKysrKysrKysrKysrKwogc3JjcGtn cy93ZWJraXQyZ3RrL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMg Y2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3Mvd2Via2l0Mmd0ay9wYXRjaGVzL2ZpeC1yaXNjdjY0LWJ1aWxkLnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZml4LXJpc2N2NjQtYnVpbGQu cGF0Y2ggYi9zcmNwa2dzL3dlYmtpdDJndGsvcGF0Y2hlcy9maXgtcmlzY3Y2NC1idWlsZC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4zZjU5OWVhM2M1Njk4 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZml4LXJpc2N2 NjQtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2N2NjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv b2ZmbGluZWFzbS9yaXNjdjY0LnJiCitpbmRleCA4MWYzNTZkMDRhZTEuLjRhYmIxNzYxNTA5ZCAx MDA2NDQKKy0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2N2NjQucmIK KysrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jpc2N2NjQucmIKK0BAIC0x NTIzLDcgKzE1MjMsOCBAQCBkZWYgcmlzY3Y2NEdlbmVyYXRlV0FTTVBsYWNlaG9sZGVycyhsaXN0 KQorICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgIGNhc2Ug bm9kZS5vcGNvZGUKKyAgICAgICAgICAgICB3aGVuICJsb2FkbGlua2FjcWIiLCAibG9hZGxpbmth Y3FoIiwgImxvYWRsaW5rYWNxaSIsICJsb2FkbGlua2FjcXEiLAorLSAgICAgICAgICAgICAgICAg InN0b3JlY29uZHJlbGIiLCAic3RvcmVjb25kcmVsaCIsICJzdG9yZWNvbmRyZWxpIiwgInN0b3Jl Y29uZHJlbHEiCisrICAgICAgICAgICAgICAgICAic3RvcmVjb25kcmVsYiIsICJzdG9yZWNvbmRy ZWxoIiwgInN0b3JlY29uZHJlbGkiLCAic3RvcmVjb25kcmVscSIsCisrICAgICAgICAgICAgICAg ICAibG9hZHYiLCAic3RvcmV2IgorICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0 aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJydl9lYnJlYWsiLCBbXSwgIldlYkFzc2VtYmx5IHBs YWNlaG9sZGVyIGZvciBvcGNvZGUgI3tub2RlLm9wY29kZX0iKQorICAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCitkaWZmIC0tZ2l0IGEvU291cmNlL1dU Ri93dGYvUGxhdGZvcm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgK K2luZGV4IGUzMGEzZDhjZTA3Ny4uOTM3ZmRkNDQ3ZjkyIDEwMDY0NAorLS0tIGEvU291cmNlL1dU Ri93dGYvUGxhdGZvcm1FbmFibGUuaAorKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi bGUuaAorQEAgLTYxNiw3ICs2MTYsNyBAQAorICN1bmRlZiBFTkFCTEVfV0VCQVNTRU1CTFkKKyAj ZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCisgI3VuZGVmIEVOQUJMRV9XRUJBU1NFTUJMWV9C M0pJVAorLSNkZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0IzSklUIDAKKysjZGVmaW5lIEVOQUJM RV9XRUJBU1NFTUJMWV9CM0pJVCAxCisgI3VuZGVmIEVOQUJMRV9XRUJBU1NFTUJMWV9CQlFKSVQK KyAjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWV9CQlFKSVQgMAorICNlbmRpZgorCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3dlYmtpdDJndGsvdGVtcGxhdGUgYi9zcmNwa2dzL3dlYmtpdDJndGsvdGVt cGxhdGUKaW5kZXggNDIxZmE4YjJkMGM4My4uOWU4OTVmMzJjYTYzYyAxMDA2NDQKLS0tIGEvc3Jj cGtncy93ZWJraXQyZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvd2Via2l0Mmd0ay90ZW1wbGF0 ZQpAQCAtODcsNyArODcsNyBAQCBmaQogCiAjIG9ubHkgYSBmZXcgcGxhdGZvcm0gc3VwcG9ydCBK SVQKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCWFhcmNoNjQqfHg4Nl82NCopCisJ YWFyY2g2NCp8eDg2XzY0KnxyaXNjdjY0KikKIAkJYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGpp dCIKIAkJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gImdsaWJjIiBdOyB0aGVuCiAJCQlidWls ZF9vcHRpb25zX2RlZmF1bHQrPSIgc2FtcGxpbmdfcHJvZmlsZXIiCgpGcm9tIDVlMGY0MjY3M2Vi YjNiMzkwYTRiYWY2MjFiOGVhMjBjZDVhMjE5OWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogVGh1LCA2IEFwciAyMDIzIDIxOjI5 OjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNTIvMTg5XSBidWlsZC1zdHlsZS96aWctYnVpbGQ6 IHdvcmthcm91bmQgYnVnIGluIGJpbnV0aWxzCgotLS0KIGNvbW1vbi9lbnZpcm9ubWVudC9idWls ZC1zdHlsZS96aWctYnVpbGQuc2ggICAgfCAgOSArKysrKysrKysKIC4uLi8wMTA4LWNocm9taXVt LWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2ggICAgfCAxOCArKysrKysrKysrKysrKysrKysKIDIg ZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tY3Vyc2VkXlVzY29wZWRfZmls ZS5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS96aWct YnVpbGQuc2ggYi9jb21tb24vZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvemlnLWJ1aWxkLnNoCmlu ZGV4IDA0OWI3Y2Q0MzdkNTMuLjQ1MTdkOTcyMmY4OTcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9lbnZp cm9ubWVudC9idWlsZC1zdHlsZS96aWctYnVpbGQuc2gKKysrIGIvY29tbW9uL2Vudmlyb25tZW50 L2J1aWxkLXN0eWxlL3ppZy1idWlsZC5zaApAQCAtMSArMSwxMCBAQAogaG9zdG1ha2VkZXBlbmRz Kz0iIHppZyIKKworIyBHTlUgQmludXRpbHMgZmFpbHMgb24gcHJvZ3JhbXMgY29tcGlsZWQvbGlu a2VkICg/KSB3aXRoIGxsdm0KKyMgU2VlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxh Ly9zaG93X2J1Zy5jZ2k/aWQ9MzAyMzcKKyMKK2lmIFsgIiR7WEJQU19UQVJHRVRfTUFDSElORS8t bXVzbC99IiA9ICJyaXNjdjY0IiBdOyB0aGVuCisJaG9zdG1ha2VkZXBlbmRzKz0iIGxsdm0iCisJ T0JKQ09QWT0ibGx2bS1vYmpjb3B5IgorCVNUUklQPSJsbHZtLXN0cmlwIgorZmkKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tY3Vyc2VkXlVz Y29wZWRfZmlsZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hy b21pdW0tY3Vyc2VkXlVzY29wZWRfZmlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi5kZDMxZGE5NzkwYWRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxl LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2NvcGVkX2ZpbGVfbGludXguY2MKKysrKyBx dDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL3Njb3Bl ZF9maWxlX2xpbnV4LmNjCitAQCAtNzcsMTUgKzc3LDMgQEAgYm9vbCBJc0ZET3duZWQoaW50IGZk KSB7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSBiYXNlCistCistZXh0ZXJuICJDIiB7CistCist aW50IF9fY2xvc2UoaW50KTsKKy0KKy1fX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0 IiksIG5vaW5saW5lKSkgaW50IGNsb3NlKGludCBmZCkgeworLSAgaWYgKGJhc2U6OklzRkRPd25l ZChmZCkgJiYgZ19pc19vd25lcnNoaXBfZW5mb3JjZWQpCistICAgIENyYXNoT25GZE93bmVyc2hp cFZpb2xhdGlvbigpOworLSAgcmV0dXJuIF9fY2xvc2UoZmQpOworLX0KKy0KKy19ICAvLyBleHRl cm4gIkMiCgpGcm9tIDExMzMxYjNlZDFkN2NkYjY2NzI4ODAwN2E0MDc5NTEzMjRkMWJkMWUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0 ZTogU2F0LCA4IEFwciAyMDIzIDAxOjQ2OjE4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNTMvMTg5 XSBmbGFzaHJvbTogdXBkYXRlIHRvIDEuMy4wLgoKLS0tCiBzcmNwa2dzL2ZsYXNocm9tL3RlbXBs YXRlIHwgNDIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dz L2xpYmZsYXNocm9tICAgICAgIHwgIDEgKwogc3JjcGtncy9saWJmbGFzaHJvbS1kZXZlbCB8ICAx ICsKIDMgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJmbGFzaHJvbQogY3JlYXRlIG1vZGUgMTIwMDAw IHNyY3BrZ3MvbGliZmxhc2hyb20tZGV2ZWwKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsYXNocm9t L3RlbXBsYXRlIGIvc3JjcGtncy9mbGFzaHJvbS90ZW1wbGF0ZQppbmRleCBhZjFlMGQ0MjQ2MDMw Li40N2Q3ZWI2MDQ0MTBkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZsYXNocm9tL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZmxhc2hyb20vdGVtcGxhdGUKQEAgLTEsOCArMSw4IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdmbGFzaHJvbScKIHBrZ25hbWU9Zmxhc2hyb20KLXZlcnNpb249MS4yCi1yZXZp c2lvbj0zCi1idWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKK3ZlcnNpb249MS4zLjAKK3JldmlzaW9u PTEKK2J1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBtYWtl ZGVwZW5kcz0icGNpdXRpbHMtZGV2ZWwgbGlidXNiLWNvbXBhdC1kZXZlbCBsaWJmdGRpMS1kZXZl bCIKIHNob3J0X2Rlc2M9IlV0aWxpdHkgZm9yIHJlYWRpbmcsIHdyaXRpbmcsIGVyYXNpbmcgYW5k IHZlcmlmeWluZyBmbGFzaCBST00gY2hpcHMiCkBAIC0xMCwyNSArMTAsMjEgQEAgbWFpbnRhaW5l cj0idGVsZHJhIDx0ZWxkcmFAcm90Y2UuZGU+IgogbGljZW5zZT0iR1BMLTIuMC1vbmx5IgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3LmZsYXNocm9tLm9yZyIKIGRpc3RmaWxlcz1odHRwczovL2dpdGh1 Yi5jb20vZmxhc2hyb20vZmxhc2hyb20vYXJjaGl2ZS92JHZlcnNpb24udGFyLmd6Ci1jaGVja3N1 bT1hNWJhYzQxMmNlZmI4N2JiNDI2OTEyZmVkNDZjY2MzODc5OWQwODhhOWI5MmRiZTdiYWMzOGM1 ZGYwMTZkOWIyCitjaGVja3N1bT05MWQzYWUyMzllNDM1NjgyNTYxOTY2MzUwZDAwODkwYjhiZjVh ZTFhOTQ3YWYxZjY0NzE5OGFhMzkxMTk2ODkwCiAKLXBvc3RfcGF0Y2goKSB7Ci0JIyBUaGUgTWFr ZWZpbGUgZGV0ZWN0aW9uIGlzIGZyYWdpbGUhISEKLQkjIEl0IGRvZXNuJ3QgZGVmZW5kIGFnYWlu c3QgX19hdHRyaWJ1dGVfXygic29tZXRoaW5nIikKLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KLQkJeDg2XzY0KiB8IGk2ODYqKSBfYXJjaD14ODYgOzsKLQkJYWFyY2g2NCogfCBhcm0q KSBfYXJjaD1hcm0gOzsKLQkJcHBjKikgICAgICAgICAgICBfYXJjaD1wcGMgOzsKLQkJbWlwcyop ICAgICAgICAgICBfYXJjaD1taXBzIDs7Ci0JCSopIG1zZ19lcnJvciAiVW5rbm93biBhcmNoXG4i IDs7Ci0JZXNhYwotCWNhc2UgIiRYQlBTX1RBUkdFVF9FTkRJQU4iIGluCi0JCWJlKSBfZW5kaWFu PWJpZyA7OwotCQlsZSkgX2VuZGlhbj1saXR0bGUgOzsKLQllc2FjCi0JdnNlZCAtaSAtZSAncy9e b3ZlcnJpZGUgVEFSR0VUX09TIDo9LiovVEFSR0VUX09TIDo9IExpbnV4LycgXAotCQktZSAicy9e b3ZlcnJpZGUgQVJDSCA6PS4qL0FSQ0ggOj0gJF9hcmNoLyIgXAotCQktZSAicy9eb3ZlcnJpZGUg RU5ESUFOIDo9LiovRU5ESUFOIDo9ICRfZW5kaWFuLyIgXAotCQktZSAncy9zYmluL2Jpbi8nIFwK LQkJTWFrZWZpbGUKK2xpYmZsYXNocm9tX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxp YnJhcnkgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliLyouc28uKiIK Kwl9Cit9CisKK2xpYmZsYXNocm9tLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAt IGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmZsYXNocm9tPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92 ZSAidXNyL2xpYi8qLmEiCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJfQogfQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9saWJmbGFzaHJvbSBiL3NyY3BrZ3MvbGliZmxhc2hyb20KbmV3IGZpbGUgbW9k ZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwMC4uMTgzYzdmNDNhNDFjOAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGliZmxhc2hyb20KQEAgLTAsMCArMSBAQAorZmxhc2hyb20KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmZsYXNocm9tLWRl dmVsIGIvc3JjcGtncy9saWJmbGFzaHJvbS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRl eCAwMDAwMDAwMDAwMDAwLi4xODNjN2Y0M2E0MWM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9saWJmbGFzaHJvbS1kZXZlbApAQCAtMCwwICsxIEBACitmbGFzaHJvbQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKCkZyb20gNzA4NzA0ZWU5NTc0Y2NhOTdmYmU1ZjIxNWUzMGRkZjQ0N2Jm ZTk0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBTYXQsIDggQXByIDIwMjMgMTM6MzA6MTggKzAyMDAKU3ViamVjdDogW1BBVENI IDE1NC8xODldIGRlcDogbWFyayBicm9rZW4gb24gcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL2RlcC90 ZW1wbGF0ZSB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZGVwL3RlbXBsYXRlIGIvc3JjcGtncy9kZXAvdGVtcGxhdGUKaW5kZXgg NTNkMmNhMDljMTg3My4uY2Q1Y2MyMTlkZWM2MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9kZXAvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9kZXAvdGVtcGxhdGUKQEAgLTE0LDYgKzE0LDEwIEBAIGhvbWVw YWdlPSJodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nL2RlcCIKIGRpc3RmaWxlcz0iJHtob21lcGFn ZX0vYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT05MjljOGY3NTk4MzhmOTgz MjMyMTFiYTQwOGE4MzFlYTgwZDkzYjc1YmVkYTg1ODRiNmQ5NTBmMzkzYTMyOThhCiAKK2Nhc2Ug JFhCUFNfVEFSR0VUX01BQ0hJTkUgaW4KKwlyaXNjdjY0KikgYnJva2VuPSJVc2VzIGJvbHRkYiI7 OworZXNhYworCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSBi NGQzZmNhODg5YmM3ZjNhMDJkOWY2YWZkY2U3YmJmZjU1Zjg0Y2NiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgOCBBcHIg MjAyMyAxMzozNTozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTU1LzE4OV0gZ28tamlyYTogbWFy ayBicm9rZW4gb24gcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL2dvLWppcmEvdGVtcGxhdGUgfCA1ICsr KysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nby1qaXJhL3RlbXBsYXRlIGIvc3JjcGtncy9nby1qaXJhL3RlbXBsYXRlCmluZGV4IDVlODBh YjQxNDQ1Y2QuLjA3YzBiNDhiNmJmM2QgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ28tamlyYS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2dvLWppcmEvdGVtcGxhdGUKQEAgLTEyLDMgKzEyLDggQEAgbGlj ZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZ28tamlyYS9q aXJhIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZ28tamlyYS9qaXJhL2FyY2hpdmUv diR2ZXJzaW9uLnRhci5neiIKIGNoZWNrc3VtPTE3OWFiZTkwNDU4MjgxMTc1YTQ4MmNiZDJlMWFk NjYyYmRmNTYzZWY1YWNmYzJjYWRmMjE1YWUzMmUwYmQxZTYKKworCitjYXNlICRYQlBTX1RBUkdF VF9NQUNISU5FIGluCisJcmlzY3Y2NCopIGJyb2tlbj0iT3V0ZGF0ZWQgdW5peCBkZXAiOzsKK2Vz YWMKCkZyb20gNTc1MDM1MzEyNWRlNzU3YzRjOTBmZDA0YzkyOGY4YzdlMmQ4ZjkwYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBT YXQsIDggQXByIDIwMjMgMTM6NTk6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDE1Ni8xODldIE5v aXNlVG9yY2g6IGFkZCByaXNjdjY0IHBhdGNoCgotLS0KIHNyY3BrZ3MvTm9pc2VUb3JjaC9wYXRj aGVzL3Jpc2N2LnBhdGNoLm9sZCB8IDExICsrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvTm9pc2VUb3JjaC9wYXRj aGVzL3Jpc2N2LnBhdGNoLm9sZAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvTm9pc2VUb3JjaC9wYXRj aGVzL3Jpc2N2LnBhdGNoLm9sZCBiL3NyY3BrZ3MvTm9pc2VUb3JjaC9wYXRjaGVzL3Jpc2N2LnBh dGNoLm9sZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi43MzlhMGY2 N2QwODYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9Ob2lzZVRvcmNoL3BhdGNoZXMvcmlz Y3YucGF0Y2gub2xkCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL3ZlbmRvci9nb2xhbmcub3JnL3gv ZXhwL3NoaW55L2RyaXZlci94MTFkcml2ZXIvc2htX3NobW9wZW5fc3lzY2FsbC5nbwkyMDIxLTA5 LTI4IDE2OjI3OjU3LjAwMDAwMDAwMCArMDIwMAorKysrIC0JMjAyMy0wNC0wOCAxMzo0MjozOS4z NTg3Mjg4NzMgKzAyMDAKK0BAIC0zLDcgKzMsNyBAQAorIC8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUg Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAKKyAvLyArYnVpbGQgbGludXggZHJhZ29uZmx5 CistLy8gK2J1aWxkIGFtZDY0IGFybSBhcm02NCBtaXBzNjQgbWlwczY0bGUKKysvLyArYnVpbGQg YW1kNjQgYXJtIGFybTY0IG1pcHM2NCBtaXBzNjRsZSByaXNjdjY0CisgCisgcGFja2FnZSB4MTFk cml2ZXIKKyAKCkZyb20gNjUxODAwMzVlNTRjNTAxODYyYTVjNTg0MjE2Mjc2MjI5MTljNmZkOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpE YXRlOiBTYXQsIDggQXByIDIwMjMgMTQ6MDY6MTggKzAyMDAKU3ViamVjdDogW1BBVENIIDE1Ny8x ODldIGtvZGktYWRkb24taW5wdXRzdHJlYW0tYWRhcHRpdmU6IGFkZCByaXNjdjY0IHBhdGNoCgot LS0KIC4uLi9wYXRjaGVzL3Jpc2N2LnBhdGNoICAgICAgICAgICAgICAgICAgICAgICB8IDIwICsr KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9rb2RpLWFkZG9uLWlucHV0c3RyZWFtLWFkYXB0aXZlL3Bh dGNoZXMvcmlzY3YucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2tvZGktYWRkb24taW5wdXRz dHJlYW0tYWRhcHRpdmUvcGF0Y2hlcy9yaXNjdi5wYXRjaCBiL3NyY3BrZ3Mva29kaS1hZGRvbi1p bnB1dHN0cmVhbS1hZGFwdGl2ZS9wYXRjaGVzL3Jpc2N2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjY0NjAxODI5NzI5NTAKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2tvZGktYWRkb24taW5wdXRzdHJlYW0tYWRhcHRpdmUvcGF0Y2hlcy9yaXNjdi5w YXRjaApAQCAtMCwwICsxLDIwIEBACistLS0ga29kaS1hZGRvbi1pbnB1dHN0cmVhbS1hZGFwdGl2 ZS0yLjYuNy93dmRlY3J5cHRlci9jZG0vYnVpbGQvYnVpbGRfY29uZmlnLmgJMjAyMS0wMi0xMCAy MToyMzoxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyAtCTIwMjMtMDQtMDggMTQ6MDU6NTEuNTgzNjQz MTI2ICswMjAwCitAQCAtMTM4LDYgKzEzOCwxNyBAQAorICNkZWZpbmUgQVJDSF9DUFVfMzJfQklU UyAxCisgI2RlZmluZSBBUkNIX0NQVV9MSVRUTEVfRU5ESUFOIDEKKyAjZW5kaWYKKysjZWxpZiBk ZWZpbmVkKF9fcmlzY3YpIHx8IGRlZmluZWQoX19yaXNjdl9fKQorKyNkZWZpbmUgQVJDSF9DUFVf UklTQ1ZfRkFNSUxZIDEKKysjZGVmaW5lIEFSQ0hfQ1BVX1JJU0NWIDEKKysjZGVmaW5lIEFSQ0hf Q1BVX0xJVFRMRV9FTkRJQU4gMQorKyNpZiBkZWZpbmVkKF9fcmlzY3ZfeGxlbikKKysjIGlmIChf X3Jpc2N2X3hsZW4gPT0gNjQpCisrIyAgZGVmaW5lIEFSQ0hfQ1BVXzY0X0JJVFMgMQorKyMgZWxz ZQorKyMgIGRlZmluZSBBUkNIX0NQVV8zMl9CSVRTIDEKKysjIGVuZGlmCisrI2VuZGlmCisgI2Vs c2UKKyAjZXJyb3IgUGxlYXNlIGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBi dWlsZC9idWlsZF9jb25maWcuaAorICNlbmRpZgoKRnJvbSBhZTZhMGJkY2VhNzhmNjBiNmRlNmMw MjIxZmFkOWIyYjg2Y2RmMDQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgOCBBcHIgMjAyMyAxNDowOTowNSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTU4LzE4OV0gcmlwZ3JlcDogbWFyayBicm9rZW4gb24gcmlzY3Y2NC1t dXNsCgotLS0KIHNyY3BrZ3MvcmlwZ3JlcC90ZW1wbGF0ZSB8IDQgKysrKwogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmlwZ3JlcC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcmlwZ3JlcC90ZW1wbGF0ZQppbmRleCA4ODNjZDEwNTg3MmZjLi4wMGI3YzA3 ZDM5M2M5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3JpcGdyZXAvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9yaXBncmVwL3RlbXBsYXRlCkBAIC0xMyw2ICsxMywxMCBAQCBob21lcGFnZT0iaHR0cHM6Ly9n aXRodWIuY29tL0J1cm50U3VzaGkvcmlwZ3JlcC8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHVi LmNvbS9CdXJudFN1c2hpLyR7cGtnbmFtZX0vYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKIGNo ZWNrc3VtPTBmYjE3YWFmMjg1YjNlZWU4ZGRhYjE3YjgzM2FmMWUxOTBkNzNkZTMxN2ZmOTY0ODc1 MWFiMDY2MGQ3NjNlZDIKIAorY2FzZSAkWEJQU19UQVJHRVRfTUFDSElORSBpbgorCXJpc2N2NjQt bXVzbCkgYnJva2VuPSJqZW1hbGxvYyI7OworZXNhYworCiBwcmVfYnVpbGQoKSB7CiAJIyBOZXdl ciBsaWJjIG5lZWRlZCBmb3IgcmlzY3Y2NAogCWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliYyAt LXByZWNpc2UgMC4yLjEzOQoKRnJvbSBhMTAxNjdmNTliYmY3ODczNmMxNzEyZmYxMDYwYThmYTlj MzI4NGRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRv ci5kZXY+CkRhdGU6IFNhdCwgOCBBcHIgMjAyMyAxNDoxNDoxMSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMTU5LzE4OV0gcHl0aG9uMy1weXNpZGUyOiB1cGRhdGUgdG8gNS4xNS45LgoKLS0tCiAuLi4v cHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvcHl0aG9uLWltcG9ydGxpYi5wYXRjaCAgIHwgMTIgKysr KysrKysrKysrCiBzcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi9wYXRjaGVzL3B5dGhvbjMuMTEucGF0 Y2ggICAgIHwgMTEgKysrKysrKysrKysKIHNyY3BrZ3MvcHl0aG9uMy1weXNpZGUyL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjYgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5 dGhvbjMtcHlzaWRlMi9wYXRjaGVzL3B5dGhvbi1pbXBvcnRsaWIucGF0Y2gKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi9wYXRjaGVzL3B5dGhvbi1pbXBvcnRsaWIucGF0Y2gg Yi9zcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi9wYXRjaGVzL3B5dGhvbi1pbXBvcnRsaWIucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZjIyMDI3OTk0ZTY5OAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvcHl0aG9u LWltcG9ydGxpYi5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC1ydSBweXNpZGUtc2V0dXAt b3BlbnNvdXJjZS1zcmMtNS4xNS42Lm9yaWcvc291cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4v ZW1iZWQvc2lnbmF0dXJlX2Jvb3RzdHJhcC5weSBweXNpZGUtc2V0dXAtb3BlbnNvdXJjZS1zcmMt NS4xNS42L3NvdXJjZXMvc2hpYm9rZW4yL2xpYnNoaWJva2VuL2VtYmVkL3NpZ25hdHVyZV9ib290 c3RyYXAucHkKKy0tLSBweXNpZGUtc2V0dXAtb3BlbnNvdXJjZS1zcmMtNS4xNS42Lm9yaWcvc291 cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4vZW1iZWQvc2lnbmF0dXJlX2Jvb3RzdHJhcC5weQky MDIyLTA5LTA4IDIzOjU0OjE5LjQxOTcyNDg2NCArMDIwMAorKysrIHB5c2lkZS1zZXR1cC1vcGVu c291cmNlLXNyYy01LjE1LjYvc291cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4vZW1iZWQvc2ln bmF0dXJlX2Jvb3RzdHJhcC5weQkyMDIyLTA5LTA4IDIzOjU1OjA0LjQ5NDI3NzYwNiArMDIwMAor QEAgLTIxMSw3ICsyMTEsNyBAQAorICAgICAgICAgcmV0dXJuIHNlbGYgaWYgc2VsZi5fbW9kMnBh dGguZ2V0KGZ1bGxuYW1lKSBlbHNlIE5vbmUKKyAKKyAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYs IGZ1bGxuYW1lKToKKy0gICAgICAgIGltcG9ydCBpbXBvcnRsaWIKKysgICAgICAgIGltcG9ydCBp bXBvcnRsaWIubWFjaGluZXJ5CisgICAgICAgICBpbXBvcnQgc3lzCisgCisgICAgICAgICBmaWxl bmFtZSA9IHNlbGYuX21vZDJwYXRoLmdldChmdWxsbmFtZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvcHl0aG9uMy4xMS5wYXRjaCBiL3NyY3BrZ3MvcHl0aG9u My1weXNpZGUyL3BhdGNoZXMvcHl0aG9uMy4xMS5wYXRjaAppbmRleCAzNTIyZjRlODE3ZTA0Li5l YTc3YjZkYWE4MjdhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi9wYXRjaGVz L3B5dGhvbjMuMTEucGF0Y2gKKysrIGIvc3JjcGtncy9weXRob24zLXB5c2lkZTIvcGF0Y2hlcy9w eXRob24zLjExLnBhdGNoCkBAIC0yMDksMyArMjA5LDE0IEBAIGRpZmYgLXJVMyBweXNpZGUtc2V0 dXAtb3BlbnNvdXJjZS1zcmMtNS4xNS4yLW9yaWcvYnVpbGRfc2NyaXB0cy9jb25maWcucHkgcHlz aWRlCiAgICAgICAgICBdCiAgCiAgICAgICAgICBzZWxmLnNldHVwX3NjcmlwdF9kaXIgPSBOb25l CistLS0gcHlzaWRlLXNldHVwLW9wZW5zb3VyY2Utc3JjLTUuMTUuNy9zb3VyY2VzL3NoaWJva2Vu Mi9saWJzaGlib2tlbi9wZXAzODRpbXBsLmNwcAkyMDIyLTA5LTIzIDA4OjQ3OjIwLjAwMDAwMDAw MCArMDIwMAorKysrIHB5c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy01LjE1Ljgvc291cmNlcy9z aGlib2tlbjIvbGlic2hpYm9rZW4vcGVwMzg0aW1wbC5jcHAJMjAyMy0wMS0wNCAwODowNzoxNy4w MDAwMDAwMDAgKzAxMDAKK0BAIC03NTEsNyArNzUxLDcgQEAKKyAjZW5kaWYgLy8gSVNfUFkyCisg ICAgIFNoaWJva2VuOjpBdXRvRGVjUmVmIHByaXZhdGVvYmooUHlPYmplY3RfR2V0QXR0cigKKyAg ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UHlPYmplY3QgKj4oUHlfVFlQRShzZWxmKSksIFNoaWJv a2VuOjpQeU1hZ2ljTmFtZTo6bmFtZSgpKSk7CistI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorKyNp ZiAhZGVmaW5lZChQeV9MSU1JVEVEX0FQSSkgJiYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDEwMDAw CisgICAgIHJldHVybiBfUHlfTWFuZ2xlKHByaXZhdGVvYmosIG5hbWUpOworICNlbHNlCisgICAg IC8vIFBZU0lERS0xNDM2OiBfUHlfTWFuZ2xlIGlzIG5vIGxvbmdlciBleHBvc2VkOyBpbXBsZW1l bnQgaXQgYWx3YXlzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLXB5c2lkZTIvdGVtcGxh dGUgYi9zcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi90ZW1wbGF0ZQppbmRleCA1MGU2ZmYyNjBkM2I1 Li41YjE2MDYxZDUxNTc3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHlzaWRlMi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtcHlzaWRlMicKIHBrZ25hbWU9cHl0aG9u My1weXNpZGUyCi12ZXJzaW9uPTUuMTUuNQotcmV2aXNpb249MgordmVyc2lvbj01LjE1LjkKK3Jl dmlzaW9uPTEKIF9wa2duYW1lPSJweXNpZGUtc2V0dXAtb3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9u fSIKIGJ1aWxkX3dya3NyYz0ic291cmNlcy9weXNpZGUyIgogYnVpbGRfc3R5bGU9Y21ha2UKQEAg LTIzLDcgKzIzLDcgQEAgbWFpbnRhaW5lcj0ieW9waXRvIDxwaWVycmUuYm91cmdpbkBmcmVlLmZy PiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5x dC5pby9RdF9mb3JfUHl0aG9uIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29m ZmljaWFsX3JlbGVhc2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIvUHlTaWRlMi0ke3ZlcnNpb259LXNy Yy8ke19wa2duYW1lfS50YXIueHoiCi1jaGVja3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZm NzBmMWZiOTc1YzVlN2VmYTIyZTlkNTEyMjI1ODg5MjhjZTE5YjMzCitjaGVja3N1bT0yZWE1OTE3 NjUyMDM2YTkwMDdkNjZiYTRkYzBhYTc1ZjM4MWEzYTI1Y2NmMGZhNzBmYTJkOWU5YzhjOWRhY2Fl CiAKIGJ1aWxkX29wdGlvbnM9IndlYmVuZ2luZSIKIGRlc2Nfb3B0aW9uX3dlYmVuZ2luZT0iQnVp bGQgUXQ1IFdlYkVuZ2luZSBiaW5kaW5ncyIKCkZyb20gM2E4MDk4NzAzNGU2ODdjZGMyZGUzNGVi MjgxNDRiMDU5Y2MyYTNlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVA am9obm55bmF0b3IuZGV2PgpEYXRlOiBTYXQsIDggQXByIDIwMjMgMTQ6MzQ6MTggKzAyMDAKU3Vi amVjdDogW1BBVENIIDE2MC8xODldIHNoaWJva2VuMjogdXBkYXRlIHRvIDUuMTUuOS4KCi0tLQog c3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zaGlib2tl bjIvdGVtcGxhdGUgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQppbmRleCAwODRlY2MzYmEx ZTFjLi45YjM3Njc0NjM3NTQwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicKIHBrZ25hbWU9c2hpYm9rZW4yCi12ZXJzaW9uPTUu MTUuNwordmVyc2lvbj01LjE1LjkKIHJldmlzaW9uPTEKIF9wa2duYW1lPSJweXNpZGUtc2V0dXAt b3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3dya3NyYz0ic291cmNlcy9zaGlib2tl bjIiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJnaW5A ZnJlZS5mcj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5xdC5pby9RdF9mb3JfUHl0aG9uL1NoaWJva2VuIgogZGlzdGZpbGVzPSJodHRwczovL2Rv d25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIvUHlTaWRl Mi0ke3ZlcnNpb259LXNyYy8ke19wa2duYW1lfS50YXIueHoiCi1jaGVja3N1bT1mNjEyMTBhZTI0 ZTY4ODJkNWQwY2EwMDU5MjI5ZTVkYzRmMzVlMmJjYTkyZGQ2Y2FmOTZjMGY0MTk0M2E4Mjk0Citj aGVja3N1bT0yZWE1OTE3NjUyMDM2YTkwMDdkNjZiYTRkYzBhYTc1ZjM4MWEzYTI1Y2NmMGZhNzBm YTJkOWU5YzhjOWRhY2FlCiAKIHB5dGhvbl92ZXJzaW9uPTMKIGV4cG9ydCBDTEFOR19JTlNUQUxM X0RJUj0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyCgpGcm9tIGRmNmZkYWE3ZjU1Mzc4N2M5OGFmOWRl ODI2ZjlkMzJjOTM5ODFmMjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCA5IEFwciAyMDIzIDEzOjM5OjMzICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxNjEvMTg5XSBweS1zcHk6IGFkZCByaXNjdjY0IHBhdGNoCgotLS0KIHNy Y3BrZ3MvcHktc3B5L3BhdGNoZXMvcmlzY3YucGF0Y2ggfCAxMyArKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cHktc3B5L3BhdGNoZXMvcmlzY3YucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5LXNweS9w YXRjaGVzL3Jpc2N2LnBhdGNoIGIvc3JjcGtncy9weS1zcHkvcGF0Y2hlcy9yaXNjdi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5kODUzMzk1NTM1MDkzCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9weS1zcHkvcGF0Y2hlcy9yaXNjdi5wYXRjaApAQCAt MCwwICsxLDEzIEBACitkaWZmIC0tZ2l0IGEvc3JjL3B5dGhvbl9iaW5kaW5ncy9tb2QucnMgYi9z cmMvcHl0aG9uX2JpbmRpbmdzL21vZC5ycworaW5kZXggZTY5MTU2YS4uMmRlMGIzZCAxMDA2NDQK Ky0tLSBhL3NyYy9weXRob25fYmluZGluZ3MvbW9kLnJzCisrKysgYi9zcmMvcHl0aG9uX2JpbmRp bmdzL21vZC5ycworQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWIgbW9kIHB5cnVudGltZSB7CisgICAg ICAgICB9CisgICAgIH0KKyAKKy0gICAgI1tjZmcoYWxsKHRhcmdldF9vcz0ibGludXgiLCB0YXJn ZXRfYXJjaD0ieDg2XzY0IikpXQorKyAgICAjW2NmZyhhbGwodGFyZ2V0X29zPSJsaW51eCIsIGFu eSh0YXJnZXRfYXJjaD0ieDg2XzY0IiwgdGFyZ2V0X2FyY2g9InJpc2N2NjQiKSkpXQorICAgICBw dWIgZm4gZ2V0X3RzdGF0ZV9jdXJyZW50X29mZnNldCh2ZXJzaW9uOiAmVmVyc2lvbikgLT4gT3B0 aW9uPHVzaXplPiB7CisgICAgICAgICBtYXRjaCB2ZXJzaW9uIHsKKyAgICAgICAgICAgICBWZXJz aW9ue21ham9yOiAzLCBtaW5vcjogNywgcGF0Y2g6IDAuLj0zLCAuLn0gPT4gU29tZSgxMzkyKSwK CkZyb20gNzVlZTZhYTQ5NWI4NTE4N2NjNzkzZTJjNTZkZGNhMmZlNGU5OWE0NyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4s IDkgQXByIDIwMjMgMTM6NDI6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2Mi8xODldIGt1YmVy bmV0ZXMtaGVsbTogbWFyayBicm9rZW4gb24gcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL2t1YmVybmV0 ZXMtaGVsbS90ZW1wbGF0ZSB8IDUgKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2t1YmVybmV0ZXMtaGVsbS90ZW1wbGF0ZSBiL3NyY3Br Z3Mva3ViZXJuZXRlcy1oZWxtL3RlbXBsYXRlCmluZGV4IDdmYmNkYzJjOWI2M2EuLjRmYzc2MWE1 YzEzNTMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva3ViZXJuZXRlcy1oZWxtL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3Mva3ViZXJuZXRlcy1oZWxtL3RlbXBsYXRlCkBAIC0xMiw2ICsxMiwxMCBAQCBjaGVj a3N1bT0zMjAwNzZiYTQ3YmZkZjMxZjc1M2U5MmZlODQ2NGExMzE0NjAwZmYzNjVhY2NlM2IzNjFl MDY3NDg4MzY0YjMzCiBjb25mbGljdHM9ImhlbG0iCiBub3BpZT10cnVlCiAKK2Nhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCXJpc2N2NjQqKSBicm9rZW49ImdveCBqdXN0IHNpbGVudGx5 IHNraXBzIHVua293biBhcmNocz8iOzsKK2VzYWMKKwogX2NvbnZlcnRfYXJjaCgpIHsKIAljYXNl ICIkMSIgaW4KIAkJYWFyY2g2NCopIGVjaG8gYXJtNjQ7OwpAQCAtMjAsNiArMjQsNyBAQCBfY29u dmVydF9hcmNoKCkgewogCQlpNjg2KikgZWNobyAzODY7OwogCQl4ODZfNjQqKSBlY2hvIGFtZDY0 OzsKIAkJcHBjNjRsZSopIGVjaG8gcHBjNjRsZTs7CisJCXJpc2N2NjQqKSBlY2hvIHJpc2N2NjQ7 OwogCWVzYWMKIH0KIAoKRnJvbSAyNzY5OTYxZGNmZjAzNDMyZjU5ODIwYzdiZmVjYmEwMzllZDAx NTk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+CkRhdGU6IFN1biwgOSBBcHIgMjAyMyAxMzo1MDoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MTYzLzE4OV0gTmV0QXV0aDogbWFyayBicm9rZW4gb24gcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL05l dEF1dGgvdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmNwa2dzL05ldEF1dGgvdGVtcGxhdGUgYi9zcmNwa2dzL05ldEF1dGgv dGVtcGxhdGUKaW5kZXggMDhkNWY3OGQwZGE4OC4uNTZmMWM3MjYxZjc0NyAxMDA2NDQKLS0tIGEv c3JjcGtncy9OZXRBdXRoL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvTmV0QXV0aC90ZW1wbGF0ZQpA QCAtMTUsNiArMTUsMTAgQEAgaG9tZXBhZ2U9Imh0dHBzOi8vbmV0YXV0aC5vcmciCiBkaXN0Zmls ZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9OZXRBdXRoL05ldEF1dGgvYXJjaGl2ZS92JHZlcnNpb24u dGFyLmd6IgogY2hlY2tzdW09Y2Y4NGIyZTYzYjdhNTllYzZlNDE1ZWFkMWE5NDk5NGIwNDBiMzBm ZWUyYjI3ZTQ4MjA3MzM3MWNmYjBmYjQ0NAogCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwlyaXNjdjY0KikgYnJva2VuPSJib2x0ZGIiOzsKK2VzYWMKKwogcG9zdF9pbnN0YWxsKCkg ewogCWZvciBzaCBpbiBiYXNoIHpzaDsgZG8KIAkJdnRhcmdldHJ1biAke0RFU1RESVJ9L3Vzci9i aW4vbmV0YXV0aCBzeXN0ZW0gY2xpICR7c2h9IG5ldGF1dGguJHtzaH0KCkZyb20gNDU0NDYzNTNm YjkyNThiYzlkZGZhZDQ5YWYyOGIxNGY1OGZjZTY3ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXByIDIwMjMgMTM6 NTY6MjggKzAyMDAKU3ViamVjdDogW1BBVENIIDE2NC8xODldIGdvbWF0cml4OiBtYXJrIGJyb2tl biBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3MvZ29tYXRyaXgvdGVtcGxhdGUgfCA0ICsrKysKIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbWF0 cml4L3RlbXBsYXRlIGIvc3JjcGtncy9nb21hdHJpeC90ZW1wbGF0ZQppbmRleCBjNzg4OTNlZjEz MzdhLi5mMzZkYjAzY2FmOWI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dvbWF0cml4L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ29tYXRyaXgvdGVtcGxhdGUKQEAgLTExLDYgKzExLDEwIEBAIGhvbWVw YWdlPSJodHRwczovL2dpdGh1Yi5jb20vR2VlcnRKb2hhbi9nb21hdHJpeCIKIGRpc3RmaWxlcz0i aHR0cHM6Ly9naXRodWIuY29tL0dlZXJ0Sm9oYW4vZ29tYXRyaXgvYXJjaGl2ZS92JHt2ZXJzaW9u fS50YXIuZ3oiCiBjaGVja3N1bT00ZDcxZDI1MDlhYzg0ZjIzNDA1MzdkNWU2ZjBlYjk4MTBiNDE3 MzcwNmYxM2NkNmZlNWU1ZThlZTVhNjlhNTBjCiAKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgorCXJpc2N2NjQqKSBicm9rZW49Ik9sZCBzeXMgZGVwZW5kZW5jeSI7OworZXNhYworCiBw b3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSA3MGJmNzAyYTM0YjJm YzZiZWM5YTFjYWFhZGQ3NzI2Y2VjMTZiOThiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgOSBBcHIgMjAyMyAxMzo1ODoz MiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTY1LzE4OV0gbmV0bnM6IG1hcmsgYnJva2VuIG9uIHJp c2N2NjQKCi0tLQogc3JjcGtncy9uZXRucy90ZW1wbGF0ZSB8IDQgKysrKwogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbmV0bnMvdGVtcGxhdGUg Yi9zcmNwa2dzL25ldG5zL3RlbXBsYXRlCmluZGV4IDcxMjg3ZjcyY2UzZGEuLmI5ZjFhNWUxZDU1 YWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbmV0bnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9uZXRu cy90ZW1wbGF0ZQpAQCAtMTEsNiArMTEsMTAgQEAgaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNv bS9nZW51aW5ldG9vbHMvbmV0bnMiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9nZW51 aW5ldG9vbHMvbmV0bnMvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT0zYTU1 ZTk2ZTcxMDY3OTg5OTAyYjY1YTZkZTc0ZjFlYmJiNjNlYTNmNmZjODUxODQ1MjNlOGQyODliMGVi MzVkCiAKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXJpc2N2NjQqKSBicm9rZW49 IlNvbWUgcmF0aGVyIG9sdCBldGNkLmlvL2Jib2x0IGRlcCI7OworZXNhYworCiBwb3N0X2luc3Rh bGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSA0YTRkOTk1MzhkNDBiNWUyYWI3MGJj NTQ4NDA3NzNiYTU2OWM1ZGY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgOSBBcHIgMjAyMyAxMzo1OTozMiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTY2LzE4OV0gZ3BlcmZ0b29sczogdXBkYXRlIHRvIDIuMTAuCgotLS0K IC4uLi9wYXRjaGVzL3NpZ2V2X25vdGlmeV90aHJlYWRfaWQucGF0Y2ggICAgICB8IDY1IC0tLS0t LS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ3BlcmZ0b29scy90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICB8ICA2ICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNjggZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ncGVyZnRvb2xzL3BhdGNoZXMvc2ln ZXZfbm90aWZ5X3RocmVhZF9pZC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3BlcmZ0b29s cy9wYXRjaGVzL3NpZ2V2X25vdGlmeV90aHJlYWRfaWQucGF0Y2ggYi9zcmNwa2dzL2dwZXJmdG9v bHMvcGF0Y2hlcy9zaWdldl9ub3RpZnlfdGhyZWFkX2lkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBhMjc1ZWI1OWJiZWI4Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Z3BlcmZ0b29scy9wYXRjaGVzL3NpZ2V2X25vdGlmeV90aHJlYWRfaWQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw2NSArMCwwIEBACi1Gcm9tIGQ5YzRjM2I0ODFlNjQxYjcxOWQzZDc5MDk4N2Vk N2QwOTQxNTdiZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/PUM0 PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KLSA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDEyIEZlYiAyMDIxIDE5OjIxOjE4ICswNzAwCi1T dWJqZWN0OiBbUEFUQ0hdIHByb2ZpbGUtaGFuZGxlcjogdXNlIGRvY3VtZW50ZWQgc2lnZXZfbm90 aWZ5X3RocmVhZF9pZCBpbgotIHNpZ2V2ZW50Ci0KLXNpZ2V2ZW50KDcpIGlzIGRvY3VtZW50ZWQg dG8gaGF2ZSBzaWdldl9ub3RpZnlfdGhyZWFkX2lkIGFzIGl0cyBtZW1iZXIuCi1JbiBnbGliYyBz eXN0ZW0sIGl0J3MgYSBtYWNybyBleHBhbmRlZCB0byB0aGUgbGVnYWN5IF9zaWdldl91bi5fdGlk LAotX3NpZ2V2X3VuLl90aWQgaXMgb2J2aW91c2x5IGFuIGludGVybmFsIGltcGxlbWVudGF0aW9u IGRldGFpbCBhcwotc2lnbmFsZWQgYnkgaXRzIHVuZGVyc2NvcmUgcHJlZml4LiBBbmQgdGhpcyBt YWNybyB3YXMgaGlkZGVuIGluc2lkZQotbGludXgvc2lnbmFsLmggaW4gb2xkZXIgdmVyc2lvbiBv ZiBnbGliYy4KLQotT24gTGludXggdGhhdCB1c2UgbXVzbCBsaWJjLCBzaWdldl9ub3RpZnlfdGhy ZWFkX2lkIGlzIGFsc28gYSBtYWNybywgYnV0Ci1pdCdzIGV4cGFuZGVkIHRvIF9fc2V2X2ZpZWxk cy5zaWdldl9ub3RpZnlfdGhyZWFkX2lkCi0KLVthbGtvbmRyYXRlbmtvQGdtYWlsLmNvbTogYW1w dXRhdGVkIGJyb2tlbiBsaW51eC9zaWduYWwuaCBkZXBlbmRlbmN5XQotW2Fsa29uZHJhdGVua29A Z21haWwuY29tOiBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9w dWxsLzEyNTBdCi1TaWduZWQtb2ZmLWJ5OiBBbGlha3NleSBLYW5kcmF0c2Vua2EgPGFsa29uZHJh dGVua29AZ21haWwuY29tPgotLS0tCi0gc3JjL3Byb2ZpbGUtaGFuZGxlci5jYyB8IDE3ICsrKysr KysrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKLQotZGlmZiAtLWdpdCBzcmMvcHJvZmlsZS1oYW5kbGVyLmNjIHNyYy9wcm9maWxlLWhh bmRsZXIuY2MKLWluZGV4IDdmZGNiNjkzLi5mZTM3MTViMSAxMDA2NDQKLS0tLSBhL3NyYy9wcm9m aWxlLWhhbmRsZXIuY2MKLSsrKyBiL3NyYy9wcm9maWxlLWhhbmRsZXIuY2MKLUBAIC00OSw2ICs0 OSw5IEBACi0gI2lmIEhBVkVfTElOVVhfU0lHRVZfVEhSRUFEX0lECi0gLy8gZm9yIHRpbWVyX3tj cmVhdGUsc2V0dGltZX0gYW5kIGFzc29jaWF0ZWQgdHlwZWRlZnMgJiBjb25zdGFudHMKLSAjaW5j bHVkZSA8dGltZS5oPgotKy8vIGZvciBzaWdldmVudAotKyNpbmNsdWRlIDxzaWduYWwuaD4KLSsK LSAvLyBmb3Igc3lzX2dldHRpZAotICNpbmNsdWRlICJiYXNlL2xpbnV4X3N5c2NhbGxfc3VwcG9y dC5oIgotIC8vIGZvciBwZXJmdG9vbHNfcHRocmVhZF9rZXlfY3JlYXRlCi1AQCAtNjEsNiArNjQs MTggQEAKLSAjaW5jbHVkZSAiYmFzZS9zcGlubG9jay5oIgotICNpbmNsdWRlICJtYXliZV90aHJl YWRzLmgiCi0gCi0rLy8gU29tZSBMaW51eCBzeXN0ZW1zIGRvbid0IGhhdmUgc2lnZXZfbm90aWZ5 X3RocmVhZF9pZCBkZWZpbmVkIGluCi0rLy8gc2lnbmFsLmggKGRlc3BpdGUgaGF2aW5nIFNJR0VW X1RIUkVBRF9JRCBkZWZpbmVkKSBhbmQgYWxzbyBsYWNrCi0rLy8gd29ya2luZyBsaW51eC9zaWdu YWwuaC4gU28gbGV0cyB3b3JrYXJvdW5kLiBOb3RlLCB3ZSBrbm93IHRoYXQgYXQKLSsvLyBsZWFz dCBvbiBMaW51eCBzaWdldl9ub3RpZnlfdGhyZWFkX2lkIGlzIG1hY3JvLgotKy8vCi0rLy8gU2Vl IGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI3NDE3IGFu ZAotKy8vIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMDgx Ci0rLy8KLSsjaWYgX19saW51eF9fICYmIEhBVkVfTElOVVhfU0lHRVZfVEhSRUFEX0lEICYmICFk ZWZpbmVkKHNpZ2V2X25vdGlmeV90aHJlYWRfaWQpCi0rI2RlZmluZSBzaWdldl9ub3RpZnlfdGhy ZWFkX2lkIF9zaWdldl91bi5fdGlkCi0rI2VuZGlmCi0rCi0gdXNpbmcgc3RkOjpsaXN0OwotIHVz aW5nIHN0ZDo6c3RyaW5nOwotIAotQEAgLTI3Miw3ICsyODcsNyBAQCBzdGF0aWMgdm9pZCBTdGFy dExpbnV4VGhyZWFkVGltZXIoaW50IHRpbWVyX3R5cGUsIGludCBzaWduYWxfbnVtYmVyLAotICAg c3RydWN0IGl0aW1lcnNwZWMgaXRzOwotICAgbWVtc2V0KCZzZXZwLCAwLCBzaXplb2Yoc2V2cCkp OwotICAgc2V2cC5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQURfSUQ7Ci0tICBzZXZwLl9zaWdl dl91bi5fdGlkID0gc3lzX2dldHRpZCgpOwotKyAgc2V2cC5zaWdldl9ub3RpZnlfdGhyZWFkX2lk ID0gc3lzX2dldHRpZCgpOwotICAgc2V2cC5zaWdldl9zaWdubyA9IHNpZ25hbF9udW1iZXI7Ci0g ICBjbG9ja2lkX3QgY2xvY2sgPSBDTE9DS19USFJFQURfQ1BVVElNRV9JRDsKLSAgIGlmICh0aW1l cl90eXBlID09IElUSU1FUl9SRUFMKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dwZXJmdG9vbHMv dGVtcGxhdGUgYi9zcmNwa2dzL2dwZXJmdG9vbHMvdGVtcGxhdGUKaW5kZXggZGU3ZTk0MjNkMzQz Yi4uOTYyNzkzOGM1NjgzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ncGVyZnRvb2xzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ3BlcmZ0b29scy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dwZXJmdG9vbHMnCiBwa2duYW1lPWdwZXJmdG9vbHMKLXZlcnNpb249 Mi44Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuMTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iYXV0b21ha2UgbGlidG9vbCIKIG1ha2VkZXBl bmRzPSJsaWJ1bndpbmQtZGV2ZWwiCkBAIC0xMSw3ICsxMSw3IEBAIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL2dwZXJmdG9vbHMvZ3BlcmZ0b29scyIKIGRpc3Rm aWxlcz0iJHtob21lcGFnZX0vcmVsZWFzZXMvZG93bmxvYWQvJHtwa2duYW1lfS0ke3ZlcnNpb259 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0yNDBkZWFjZGQ2MjhiNjQ1 OTY3MWI4M2ViMGM0ZGI4ZTk3YmFhZGY2NTlmMjViOTJlOWEwNzhkNTM2YmQ1MTNlCitjaGVja3N1 bT04M2UzYmZkZDI4YjhiY2Y1MzIyMmMzNzk4ZDRkMzk1ZDUyZGFkYmJhZTU5ZTg3MzBjNGE2ZDMx YTljMzczMmQ4CiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJ IyBuZWVkZWQgYnkgc29tZSBuZXdseSBlbmFibGVkIGNvZGUKCkZyb20gOGUxYzc2MGY0OGY1Yjkx NjAwYTAyOWMzMzEwNmU0NWM2MWI5YmZlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXByIDIwMjMgMTQ6MDg6Mjcg KzAyMDAKU3ViamVjdDogW1BBVENIIDE2Ny8xODldIGdycGM6IG1hcmsgYnJva2VuIG9uIHJpc2N2 NjQKCi0tLQogc3JjcGtncy9ncnBjL3RlbXBsYXRlIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ncnBjL3RlbXBsYXRlIGIvc3Jj cGtncy9ncnBjL3RlbXBsYXRlCmluZGV4IGQ3Y2JmNDQxZDQ0ZGUuLjZjMjYzYzhkZGVmZjUgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ3JwYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dycGMvdGVtcGxh dGUKQEAgLTMwLDYgKzMwLDEwIEBAIHNraXBfZXh0cmFjdGlvbj0iCiAgb3BlbmNlbnN1cy1wcm90 by12JHtfb3BlbmNlbnN1c30udGFyLmd6CiAgeGRzLSR7X3hkc30udGFyLmd6IgogCitjYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlyaXNjdjY0KikgYnJva2VuPSJTbXRoIHdpdGggYWJz ZWlsPyI7OworZXNhYworCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAkjIG5lZWQgaG9z dCBncnBjX2NwcF9wbHVnaW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgZ3JwYyIKCkZyb20gYzM1YjUx OTY3MjE4ODFiYTFkZDgzNmZiZTdjNTk1OGY1ZTQ1MTE4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXByIDIwMjMg MTQ6MTI6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2OC8xODldIGNyaS1vOiBtYXJrIGJyb2tl biBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3MvY3JpLW8vdGVtcGxhdGUgfCA0ICsrKysKIDEgZmls ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NyaS1vL3Rl bXBsYXRlIGIvc3JjcGtncy9jcmktby90ZW1wbGF0ZQppbmRleCA0N2NiMjg2NWQwOWM2Li40ZTJl Njc4YzRjYTNlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2NyaS1vL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvY3JpLW8vdGVtcGxhdGUKQEAgLTIyLDYgKzIyLDEwIEBAIGlmIFsgIiRDUk9TU19CVUlMRCIg XTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBjcmktby1kZXZlbCIKIGZpCiAKK2Nhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXJpc2N2NjQqKSBicm9rZW49IlNvbWUgb2xkIHZlbmRv cmVkIGxpYiA6c2hydWc6Ijs7Citlc2FjCisKIHBvc3RfYnVpbGQoKSB7CiAJY2QgY29ubW9uCiAJ aWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9tIDQ1NjI2ODYyYzFmN2FmNmJlZTk3OTNm ZWUxODU1NTEwMWVkMGVjZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCA5IEFwciAyMDIzIDE0OjE0OjU2ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxNjkvMTg5XSB4aS1lZGl0b3I6IG1hcmsgYnJva2VuIG9uIHJpc2N2NjQK Ci0tLQogc3JjcGtncy94aS1lZGl0b3IvdGVtcGxhdGUgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy94aS1lZGl0b3IvdGVtcGxh dGUgYi9zcmNwa2dzL3hpLWVkaXRvci90ZW1wbGF0ZQppbmRleCBjYzNmNjU4Y2NkZjJmLi5kMTI4 MDFmN2VkODRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3hpLWVkaXRvci90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3hpLWVkaXRvci90ZW1wbGF0ZQpAQCAtMTAsMyArMTAsOCBAQCBsaWNlbnNlPSJBcGFj aGUtMi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS94aS1lZGl0b3IveGktZWRpdG9y IgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20veGktZWRpdG9yL3hpLWVkaXRvci9hcmNo aXZlL3Yke3ZlcnNpb259LnRhci5neiIKIGNoZWNrc3VtPWU0Mjk5OGFkOWI2ZDZkZjBmNzk3YWZk MDA1ZjljMTI4NmFhZDI0YzMwYTc3ZDBkZDM4MDczMGMyNDgyNzRiOGQKKworIyBYaSBlZGl0b3Ig aXMgZGlzY29udGludWVkCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlyaXNjdjY0 KikgYnJva2VuPSJPbGQgbGliYyBjcmVhdGUiOzsKK2VzYWMKCkZyb20gOTllZjk5Njg5M2VmMDlm OTAxOTVjMjdhOTE3MDEwZTc1OGY4YjI2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXByIDIwMjMgMTQ6MTU6NTMg KzAyMDAKU3ViamVjdDogW1BBVENIIDE3MC8xODldIGZpcmVmb3gtZXNyOiBtYXJrIGJyb2tlbiBv biByaXNjdjY0IGZvciBub3cKCi0tLQogc3JjcGtncy9maXJlZm94LWVzci90ZW1wbGF0ZSB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m aXJlZm94LWVzci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvdGVtcGxhdGUKaW5kZXgg MmRkY2M0MTFiOTJlYi4uYmI3NDU2MGY3NDljOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9maXJlZm94 LWVzci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3RlbXBsYXRlCkBAIC00MCw2 ICs0MCw3IEBAIGNhc2UgJFhCUFNfVEFSR0VUX01BQ0hJTkUgaW4KIAlhcm12WzU2XSopIGJyb2tl bj0icmVxdWlyZWQgTkVPTiBleHRlbnNpb25zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIGFybXY2IiA7 OwogCXBwYzY0KikgOzsKIAlwcGMqKSBicm9rZW49InhwdGNhbGwgYml0cm90IiA7OworCXJpc2N2 NjQqKSBicm9rZW49Ik5vdCBzdXBwb3J0ZWQgeWV0Ijs7CiBlc2FjCiAKICMgd2UgbmVlZCB0aGlz IGJlY2F1c2UgY2FyZ28gdmVyaWZpZXMgY2hlY2tzdW1zIG9mIGFsbCBmaWxlcyBpbiB2ZW5kb3IK CkZyb20gNjQ2ZGE1YzczYTc2NTM0ZDU5ZmIxNjVjNDhlZTY2YjQ3Y2E3NTBiOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4s IDkgQXByIDIwMjMgMTQ6MTc6MjggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3MS8xODldIGtjZ2k6 IG1hcmsgYnJva2VuIG9uIHJpc2N2NjQKCi0tLQogc3JjcGtncy9rY2dpL3RlbXBsYXRlIHwgNCAr KysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9rY2dpL3RlbXBsYXRlIGIvc3JjcGtncy9rY2dpL3RlbXBsYXRlCmluZGV4IDdkNzUyNWU0M2Fi ZTQuLjJiOTM1YTNjZjdkMjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2NnaS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2tjZ2kvdGVtcGxhdGUKQEAgLTE5LDYgKzE5LDEwIEBAIGNoZWNrc3VtPWQ4ODZl NTcwMGY1ZWM3MmIwMGNiNjY4ZTlmMDZiN2IzOTA2YjZjY2RjNWJhYjRjODllNDM2ZDRjYzRjMGM3 YTEKIAogZXhwb3J0IENGTEFHUz0iLURFTkFCTEVfU0VDQ09NUF9GSUxURVI9MSIKIAorY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcmlzY3Y2NCopIGJyb2tlbj0iICNlcnJvciBVbmtu b3duIHNlY2NvbXAgYXJjaDogcGxlYXNlIGNvbnRhY3QgdXMgd2l0aCB5b3VyIHVuYW1lIC1tIjs7 Citlc2FjCisKIHNlY2NvbXBfYXVkaXRfZ2V0X3N1ZmZpeCgpIHsKIAljYXNlICIkMSIgaW4KIAkJ aTY4NiopIGVjaG8gIlg4NiIgOzsKCkZyb20gODBhMmY1OWFiNmRhZjc0NjBlOGU2ZjM4ODc4NzA0 NmVlNGUzYjkyNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXByIDIwMjMgMTQ6MjA6MDUgKzAyMDAKU3ViamVjdDog W1BBVENIIDE3Mi8xODldIG5vbWFkOiBtYXJrIGJyb2tlbiBvbiByaXNjdjY0CgotLS0KIHNyY3Br Z3Mvbm9tYWQvdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25vbWFkL3RlbXBsYXRlIGIvc3JjcGtncy9ub21hZC90 ZW1wbGF0ZQppbmRleCAxMjFlZGIwZGRlMmRhLi5hZjY4Mzc2ZjZiNzkwIDEwMDY0NAotLS0gYS9z cmNwa2dzL25vbWFkL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvbm9tYWQvdGVtcGxhdGUKQEAgLTE3 LDYgKzE3LDEwIEBAIGNoZWNrc3VtPTIxYmIzNzg1ODRhM2YwZTNiZjM3MzFmODliNjQ2NThmZWRm MjBjODI5ZGU4ZWVkYmE5YTY3NzNjZGRmYTBjM2UKIG1ha2VfZGlycz0iL2V0Yy9ub21hZC5kIDA3 NTUgcm9vdCByb290CiAgL3Zhci9saWIvbm9tYWQgMDc1NSByb290IHJvb3QiCiAKK2Nhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXJpc2N2NjQqKSBicm9rZW49ImJvbHRkYiIKK2VzYWMK KwogcG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIExJQ0VOU0UKIAl2c3Ygbm9tYWQKCkZyb20g YWEyMzViZWIxYmQwNzkyNDFiZDNkZTFjZGYwYjlkNWE1NTI5MmZkNSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXBy IDIwMjMgMTk6Mjk6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3My8xODldIGhvYmJpdHM6IHNl dCBmc2lnbmVkIGZvciByaXNjdjY0CgotLS0KIHNyY3BrZ3MvaG9iYml0cy90ZW1wbGF0ZSB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvaG9iYml0cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvaG9iYml0cy90ZW1wbGF0 ZQppbmRleCBjNGMwMDhlMDIxZmYzLi5kNTgyN2M3NDBiNzhmIDEwMDY0NAotLS0gYS9zcmNwa2dz L2hvYmJpdHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ob2JiaXRzL3RlbXBsYXRlCkBAIC0zMCw3 ICszMCw3IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogZXNhYwogCiBjYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQlhcm0qfGFhcmNoNjQqfHBwYyopIENYWEZMQUdTKz0i IC1mc2lnbmVkLWNoYXIiCisJYXJtKnxhYXJjaDY0KnxwcGMqfHJpc2N2NjQqKSBDWFhGTEFHUys9 IiAtZnNpZ25lZC1jaGFyIgogZXNhYwogCiBwb3N0X2V4dHJhY3QoKSB7CgpGcm9tIGQxNjYxZWRl ODU4OTk1MTZkMmE1MDEyNjA4N2IzY2ViYjllNzhmZTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4KRGF0ZTogU3VuLCA5IEFwciAyMDIzIDE5 OjM2OjExICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNzQvMTg5XSB1bmljb3JuOiBtYXJrIGJyb2tl biBvbiByaXNjdjY0IGZvciBub3cKCi0tLQogc3JjcGtncy91bmljb3JuL3RlbXBsYXRlIHwgNCAr KysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy91bmljb3JuL3RlbXBsYXRlIGIvc3JjcGtncy91bmljb3JuL3RlbXBsYXRlCmluZGV4IDNhZmRj ODZiN2FkNmQuLjY1ZTVhNjhmZTNiN2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdW5pY29ybi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3VuaWNvcm4vdGVtcGxhdGUKQEAgLTEwLDYgKzEwLDEwIEBAIGhv bWVwYWdlPSJodHRwczovL3d3dy51bmljb3JuLWVuZ2luZS5vcmcvIgogZGlzdGZpbGVzPSJodHRw czovL2dpdGh1Yi5jb20vdW5pY29ybi1lbmdpbmUvdW5pY29ybi9hcmNoaXZlLyR7dmVyc2lvbn0u dGFyLmd6IgogY2hlY2tzdW09NjQwMGUxNmY5MjExNDg2ZmE1MzUzYjE4NzBlNmE4MmY4YWEzNDJl NDI5NzE4ZDFjYmNhMDhkNjA5YWFhZGM1MgogCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwlyaXNjdjY0KikgYnJva2VuPSJXYWl0IGZvciB1cGRhdGUiOzsKK2VzYWMKKwogcG9zdF9w YXRjaCgpIHsKIAkjIGRvbid0IGJ1aWxkIHRoZSBzYW1wbGVzCiAJZWNobyAiY2xlYW46IiA+IHNh bXBsZXMvTWFrZWZpbGUKCkZyb20gZDc4YjE5NDFiMDhiOWZmYzEwMGVlY2RlNDYxMmQzNDRkZDVm NGVlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3Iu ZGV2PgpEYXRlOiBTdW4sIDkgQXByIDIwMjMgMTk6NDA6MDcgKzAyMDAKU3ViamVjdDogW1BBVENI IDE3NS8xODldIGluZmx1eGRiOiBtYXJrIGJyb2tlbiBvbiByaXNjdjY0CgotLS0KIHNyY3BrZ3Mv aW5mbHV4ZGIvdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2luZmx1eGRiL3RlbXBsYXRlIGIvc3JjcGtncy9pbmZs dXhkYi90ZW1wbGF0ZQppbmRleCA3MDU0NGU3NDZmODY0Li5lY2JlM2EyNGM0MWEwIDEwMDY0NAot LS0gYS9zcmNwa2dzL2luZmx1eGRiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaW5mbHV4ZGIvdGVt cGxhdGUKQEAgLTI0LDYgKzI0LDEwIEBAIF9pbmZsdXhkYl9ob21lZGlyPSIvdmFyL2xpYi9pbmZs dXhkYiIKIG1ha2VfZGlycz0iJHtfaW5mbHV4ZGJfaG9tZWRpcn0gMDc1NSBfaW5mbHV4ZGIgX2lu Zmx1eGRiIgogY29uZl9maWxlcz0iL2V0Yy8ke3BrZ25hbWV9LyR7cGtnbmFtZX0uY29uZiIKIAor Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcmlzY3Y2NCopIGJyb2tlbj0iYm9sdGRi Ijs7Citlc2FjCisKIHBvc3RfYnVpbGQoKSB7CiAJbWFrZSAtQyBtYW4gYnVpbGQKIH0KCkZyb20g Zjc3YTQwMjU0YjNhMTQ1MmY1MDY0NGExMjMwMTM2ZTA0NTEwNzJiOSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDkgQXBy IDIwMjMgMTk6NDM6MjggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3Ni8xODldIG15c3FsKys6IG5v Y3Jvc3MKCi0tLQogc3JjcGtncy9teXNxbCsrL3RlbXBsYXRlIHwgMTEgKysrKysrLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9teXNxbCsrL3RlbXBsYXRlIGIvc3JjcGtncy9teXNxbCsrL3RlbXBsYXRlCmlu ZGV4IDJlMjZhMzIyZDM5MjkuLmFkMzY2NWI4YTdiMzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbXlz cWwrKy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL215c3FsKysvdGVtcGxhdGUKQEAgLTI2LDggKzI2 LDkgQEAgbXlzcWwrKy1kZXZlbF9wYWNrYWdlKCkgewogCX0KIH0KIAotY2FzZSAiJHtYQlBTX1RB UkdFVF9NQUNISU5FfSIgaW4KLQlhcm0qfGFhcmNoNjQqfG1pcHMqKQotCQlicm9rZW49IiR7WEJQ U19UQVJHRVRfTUFDSElORX0gbm90IHN1cHBvcnRlZCB5ZXQiCi0JOzsKLWVzYWMKK25vY3Jvc3M9 eWVzICMgSXQgYnVpbGRzIGp1c3QgZmluZQorI2Nhc2UgIiR7WEJQU19UQVJHRVRfTUFDSElORX0i IGluCisjCWFybSp8YWFyY2g2NCp8bWlwcyopCisjCQlicm9rZW49IiR7WEJQU19UQVJHRVRfTUFD SElORX0gbm90IHN1cHBvcnRlZCB5ZXQiCisjCTs7CisjZXNhYwoKRnJvbSA0NjVlOTZjMDE0YWFh YzA1OTAzY2U3MThmY2RhYjZmYTMxMGMwODZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFRodSwgMTMgQXByIDIwMjMgMTg6NTY6 NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3Ny8xODldIHhicHM6IHNldCByaXNjdjY0IHJlcG9z CgotLS0KIHNyY3BrZ3MveGJwcy90ZW1wbGF0ZSB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg NiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy94YnBzL3RlbXBsYXRlIGIvc3Jj cGtncy94YnBzL3RlbXBsYXRlCmluZGV4IDJkMDJhNTYyYjQ5NTQuLmJkMGVlOWMyNGY1MDAgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MveGJwcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3hicHMvdGVtcGxh dGUKQEAgLTQyLDYgKzQyLDEyIEBAIHBvc3RfaW5zdGFsbCgpIHsKIAkJYWFyY2g2NCopICAgICBz dWZmaXg9Ii9hYXJjaDY0Ijs7CiAJCSotbXVzbCkgICAgICAgc3VmZml4PSIvbXVzbCI7OwogCWVz YWMKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcmlzY3Y2NCkgICAgIHJlcG89 Imh0dHBzOi8vdm9pZC5qb2hubnluYXRvci5kZXYvY3VycmVudCIKKwkJCSAgICAgIHN1ZmZpeD0i cmlzY3Y2NC8iOzsKKwkJcmlzY3Y2NC1tdXNsKSByZXBvPSJodHRwczovL3ZvaWQuam9obm55bmF0 b3IuZGV2L2N1cnJlbnQiCisJCQkgICAgICBzdWZmaXg9InJpc2N2NjQtbXVzbC8iOzsKKwllc2Fj CiAKIAllY2hvICJyZXBvc2l0b3J5PSR7cmVwb30ke3N1ZmZpeH0iID4gXAogCQkke0RFU1RESVJ9 L3Vzci9zaGFyZS94YnBzLmQvMDAtcmVwb3NpdG9yeS1tYWluLmNvbmYKCkZyb20gMTk3Y2VkOTZk ZTdjOGYzNWYxMTdkMTQ2YTRjNTc0NjU4MWRmNzJkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDE0IEFwciAyMDIzIDAx OjI5OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNzgvMTg5XSBhbWJlcjogbWFyayBicm9rZW4g Zm9yIG5vdwoKLS0tCiBzcmNwa2dzL2FtYmVyL3RlbXBsYXRlIHwgNCArKysrCiAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbWJlci90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYW1iZXIvdGVtcGxhdGUKaW5kZXggMGQ4ZjIzNTE0ODI3OS4uMmZkYWRlZTM0 NzEwYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9hbWJlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Ft YmVyL3RlbXBsYXRlCkBAIC0xMCw2ICsxMCwxMCBAQCBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIu Y29tL2RhbGFuY2UvYW1iZXIiCiBkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2FyY2hpdmUvdiR7dmVy c2lvbn0udGFyLmd6IgogY2hlY2tzdW09YmY5NzRlOTk3ZmZmYTBkNTQ0NjNmYzg1ZTQ0ZjA1NDU2 MzM3MmNhNGRhZGU1MDA5OWZiNmVjZWMwY2E4YzQ4MwogCitjYXNlICRYQlBTX1RBUkdFVF9NQUNI SU5FIGluCisJcmlzY3Y2NCopIGJyb2tlbj0iOnNocnVnOiI7OworZXNhYworCiBwb3N0X2luc3Rh bGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQogfQoKRnJvbSBmNDM4MWZjNTM4OGQxYTE3NTQ4ZTYz M2Q3MDY3ZjZjODlkMmYyZjVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IEZyaSwgMTQgQXByIDIwMjMgMDE6MzA6NTUgKzAyMDAK U3ViamVjdDogW1BBVENIIDE3OS8xODldIGdub21lLWF1dGhlbnRpY2F0b3IvOiBtYXJrIGJyb2tl biBmb3Igbm93CgotLS0KIHNyY3BrZ3MvZ25vbWUtYXV0aGVudGljYXRvci90ZW1wbGF0ZSB8IDQg KysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtYXV0aGVudGljYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYXV0aGVudGlj YXRvci90ZW1wbGF0ZQppbmRleCBjMmFhMmM4YzA4NjYwLi5jN2M5YTk1ZWE0MjNjIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dub21lLWF1dGhlbnRpY2F0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1hdXRoZW50aWNhdG9yL3RlbXBsYXRlCkBAIC0xOSw2ICsxOSwxMCBAQCBtYWtlX2NoZWNr PWNpLXNraXAgIyBUZXN0IHRpbWVvdXQgd2hpbGUgY29tcGlsaW5nIHRlc3RzCiAKIGV4cG9ydCBC SU5ER0VOX0VYVFJBX0NMQU5HX0FSR1M9IiR7QklOREdFTl9FWFRSQV9DTEFOR19BUkdTfSAtRFBX X0VOQUJMRV9ERVBSRUNBVEVEIgogCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwly aXNjdjY0KikgYnJva2VuPSJTb21ldGhpbmcgcHVsbHMgaW4gYW4gb2xkIHVuc3VwcG9ydGVkIG5p eCBjcmF0ZSI7OworZXNhYworCiBwb3N0X3BhdGNoKCkgewogCVsgLXogIiRDUk9TU19CVUlMRCIg XSAmJiByZXR1cm4gMAogCXZzZWQgLWkgc3JjL21lc29uLmJ1aWxkIFwKCkZyb20gZDMxYTBmMDY2 OWIzODc2NTQxZjVhZWJmZjlmM2JiNDczYjNmZTUxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDE0IEFwciAyMDIzIDAx OjMyOjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxODAvMTg5XSBvcno6IG1hcmsgYnJva2VuIGZv ciBub3cKCi0tLQogc3JjcGtncy9vcnovdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29yei90ZW1wbGF0ZSBiL3Ny Y3BrZ3Mvb3J6L3RlbXBsYXRlCmluZGV4IDMzNWU5NGY2YjMyZDMuLjU3MjdmZjg1MDllMDYgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3Mvb3J6L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3J6L3RlbXBsYXRl CkBAIC0xMCw2ICsxMCwxMCBAQCBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL3JpY2hveC9v cnoiCiBkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6Igog Y2hlY2tzdW09ZmY5ZjhkNzcwODRmMDUxMGNmYjQ5NjZiZTdjZjAyYTAwYzRhMTc3MTU4NzlkZmRi ODVlYWExMzgwMDIzYTdjNwogCitjYXNlICRYQlBTX1RBUkdFVF9NQUNISU5FIGluCisJcmlzY3Y2 NCopIGJyb2tlbj0iOnNocnVnOiI7OworZXNhYworCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vu c2UgTElDRU5TRQogfQoKRnJvbSA5MzU3N2E4MjQ2MzI0NTQ4MTk4NGU5ZjI0MTJlZWVmOTEwYzQ4 MmJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+CkRhdGU6IEZyaSwgMTQgQXByIDIwMjMgMDE6MzI6NTggKzAyMDAKU3ViamVjdDogW1BBVENI IDE4MS8xODldIHRvZG9pc3Q6IGRvIG5vdCBidWlsZCBvbiByaXNjdjY0IHlldAoKLS0tCiBzcmNw a2dzL3RvZG9pc3QvdGVtcGxhdGUgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdG9kb2lzdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdG9kb2lz dC90ZW1wbGF0ZQppbmRleCAxNWEyZmJhODg2NGQ2Li41Zjk5ODY2OWZlMGMyIDEwMDY0NAotLS0g YS9zcmNwa2dzL3RvZG9pc3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90b2RvaXN0L3RlbXBsYXRl CkBAIC0zLDYgKzMsNyBAQCBwa2duYW1lPXRvZG9pc3QKIHZlcnNpb249MC4yMC4wCiByZXZpc2lv bj0yCiBidWlsZF9zdHlsZT1nbworYXJjaHM9In5yaXNjdjY0KiIKIGdvX2ltcG9ydF9wYXRoPSJn aXRodWIuY29tL3NhY2hhb3MvdG9kb2lzdCIKIHNob3J0X2Rlc2M9IlRvZG9pc3QgQ0xJIENsaWVu dCIKIG1haW50YWluZXI9IkdlcmFyZG8gRGkgSW9yaW8gPGFyZXRlNzRAZ21haWwuY29tPiIKCkZy b20gMmIzNWMyNzlkNzY1ODVhNWYyMzBhNDhmM2I1MjMzNTg4NGU3ZjI4NCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDE0 IEFwciAyMDIzIDAxOjQzOjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxODIvMTg5XSBhbGVydC1h ZnRlcjogYnVtcCBsaWJjIGNyYXRlIGZvciByaXNjdjY0CgotLS0KIHNyY3BrZ3MvYWxlcnQtYWZ0 ZXIvdGVtcGxhdGUgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2FsZXJ0LWFmdGVyL3RlbXBsYXRlIGIvc3JjcGtncy9hbGVydC1h ZnRlci90ZW1wbGF0ZQppbmRleCA4MzQ1ZGM1MTk2MjQxLi45YjFmZDQxMzUyY2I3IDEwMDY0NAot LS0gYS9zcmNwa2dzL2FsZXJ0LWFmdGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYWxlcnQtYWZ0 ZXIvdGVtcGxhdGUKQEAgLTExLDMgKzExLDcgQEAgbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVw YWdlPSJodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvYWxlcnQtYWZ0ZXIiCiBkaXN0ZmlsZXM9Imh0 dHBzOi8vZ2l0aHViLmNvbS9mcmV3c3hjdi9hbGVydC1hZnRlci9hcmNoaXZlLyR7dmVyc2lvbn0u dGFyLmd6IgogY2hlY2tzdW09ZjQwZGQ0M2Y2Njc3MzU3NDFiZTk1Zjc1M2U1MmQzZWMzNjczMWZj YjNjMzIxNzA4NGFkMDdlNzBkYmFjN2EyYQorCitwb3N0X3BhdGNoKCkgeworCWNhcmdvIHVwZGF0 ZSAtLXBhY2thZ2UgbGliY0AwLjIuNTEgLS1wcmVjaXNlIDAuMi4xMzkKK30KCkZyb20gMjVlNjYw NzNjODhkNzhhODM0YmJiMjliZjFlMzcyNGM2NGFmMjcyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDE0IEFwciAyMDIz IDAyOjQzOjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxODMvMTg5XSB0bXBsZ2VuOiB1cGRhdGUg bGliYyBjcmF0ZSBmb3IgcmlzY3Y2NAoKLS0tCiBzcmNwa2dzL3RtcGxnZW4vdGVtcGxhdGUgfCA0 ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3RtcGxnZW4vdGVtcGxhdGUgYi9zcmNwa2dzL3RtcGxnZW4vdGVtcGxhdGUKaW5kZXggZjUx Y2NlZDNiMDc3Zi4uNDI4ODdlNTNlODFjZiAxMDA2NDQKLS0tIGEvc3JjcGtncy90bXBsZ2VuL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvdG1wbGdlbi90ZW1wbGF0ZQpAQCAtMTQsNiArMTQsMTAgQEAg Y2hlY2tzdW09OGM4YWE1YjY1MDQ1NjE0NTI5NjI2OTc4ODUyNDE2YTk2NWQ1N2M3N2RkNTk1M2Jl NThiYzg0ZjhkOGIyN2Y5YgogIyBjYmEgZm9yIG5vdywgdGVzdHMgd2VyZW4ndCBzaGlwcGVkIGlu IHRoZSBwcmV2aW91cyB0YXJiYWxscwogbWFrZV9jaGVjaz1ubwogCitwb3N0X3BhdGNoKCkgewor CWNhcmdvIHVwZGF0ZSAtLXBhY2thZ2UgbGliY0AwLjIuNDkgLS1wcmVjaXNlIDAuMi4xMzkKK30K KwogcG9zdF9pbnN0YWxsKCkgewogCXZtYW4gbWFuL3RtcGxnZW4uMQogfQoKRnJvbSBhYmVkOWM3 NjNlMTFiOWEzYmEyNTVhYWY0ODZjYWNmNzc1NGJjYTQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwgMiBKdWwgMjAyMyAw MTozODoxMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTg0LzE4OV0gZml4dXAhIGZsYXRwYWs6IGFk ZCBtaXNzaW5nIC1kZXZlbCBkZXBlbmRlbmN5CgotLS0KIHNyY3BrZ3MvZmxhdHBhay90ZW1wbGF0 ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmxhdHBhay90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmxhdHBhay90 ZW1wbGF0ZQppbmRleCAyZjdiNmIwMTg3OTIxLi5mYThlYWY4YjdiOTE5IDEwMDY0NAotLS0gYS9z cmNwa2dzL2ZsYXRwYWsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mbGF0cGFrL3RlbXBsYXRlCkBA IC00OCw3ICs0OCw3IEBAIGZsYXRwYWstZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259 XyR7cmV2aXNpb259IGxpYmdsaWItZGV2ZWwgbGlib3N0cmVlLWRldmVsCiAJIGxpYmN1cmwtZGV2 ZWwgbGliYXJjaGl2ZS1kZXZlbCBqc29uLWdsaWItZGV2ZWwgZGNvbmYtZGV2ZWwgbGlic2VjY29t cC1kZXZlbAotCSBncGdtZS1kZXZlbCIKKwkgZ3BnbWUtZGV2ZWwgcG9sa2l0LWRldmVsIgogCXBr Z19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2Nv bmZpZwoKRnJvbSA5OWQzZTRiMzEzZTk3YjU1MjA1NjQ3OWNiNjRlMDE2ZDZkNWNjNDY0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6 IFR1ZSwgMTEgSnVsIDIwMjMgMDg6NTk6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE4NS8xODld IGxpbnV4Ni4zOiBhZGQgcmlzY3Y2NCBiaXRzCgotLS0KIHNyY3BrZ3MvbGludXg2LjMvZmlsZXMv cmlzY3YtZG90Y29uZmlnICAgICAgICB8IDEwNTk1ICsrKysrKysrKysrKysrKysKIC4uLmstQWRk LVN0YXJGaXZlLUpINzExMC1zeXN0ZW0tY2xvY2stYS5wYXRjaCB8ICAgNTMyICsKIC4uLmstQWRk LVN0YXJGaXZlLUpINzExMC1hbHdheXMtb24tY2xvYy5wYXRjaCB8ICAgMTg0ICsKIC4uLmxhY2Ut U09DX1NUQVJGSVZFLXdpdGgtQVJDSF9TVEFSRklWRS5wYXRjaCB8ICAgIDU3ICsKIC4uLnRvci1v dXQtY29tbW9uLUpINzEwMC1hbmQtSkg3MTEwLWNvZC5wYXRjaCB8ICAgNzYwICsrCiAuLi5hbWUt Y2xrLXN0YXJmaXZlLWpoNzEwMC5oLXRvLWNsay1zdGEucGF0Y2ggfCAgICA2NyArCiAuLi5hbWUt amg3MTAwLXRvLWpoNzF4MC1mb3ItdGhlLWNvbW1vbi0ucGF0Y2ggfCAgMTI1OCArKwogLi4uZXBs YWNlLVNPQ19TVEFSRklWRS13aXRoLUFSQ0hfU1RBUkZJLnBhdGNoIHwgICAgMzMgKwogLi4udGUt c3ViZGlyZWN0b3J5LWZvci1TdGFyRml2ZS1kcml2ZXJzLnBhdGNoIHwgICAgOTkgKwogLi4uLUZh Y3Rvci1vdXQtY29tbW9uLUpINzFYMC1yZXNldC1jb2RlLnBhdGNoIHwgICA0MDMgKwogLi4uRXh0 cmFjdC10aGUtY29tbW9uLUpINzFYMC1yZXNldC1jb2RlLnBhdGNoIHwgICAyMjIgKwogLi4uZW5h bWUtamg3MTAwLXRvLWpoNzF4MC1mb3ItdGhlLWNvbW1vLnBhdGNoIHwgICAxNzQgKwogLi4uaDcx eDAtVXNlLTMyYml0LUktTy1vbi0zMmJpdC1yZWdpc3RlLnBhdGNoIHwgICAxNTMgKwogLi4uLVN0 YXJGaXZlLUpINzExMC1zeXN0ZW0tY2xvY2stZHJpdmVyLnBhdGNoIHwgICA1NjcgKwogLi4uLVN0 YXJGaXZlLUpINzExMC1hbHdheXMtb24tY2xvY2stZHJpLnBhdGNoIHwgICAyMTQgKwogLi4uaXZl LUFkZC1TdGFyRml2ZS1KSDcxMTAtcmVzZXQtZHJpdmVyLnBhdGNoIHwgICAxMjEgKwogLi4uaW5n cy10aW1lci1BZGQtU3RhckZpdmUtSkg3MTEwLWNsaW50LnBhdGNoIHwgICAgMzAgKwogLi4ucnJ1 cHQtY29udHJvbGxlci1BZGQtU3RhckZpdmUtSkg3MTEwLnBhdGNoIHwgICAgMzEgKwogLi4uZGlu Z3MtcmlzY3YtQWRkLVNpRml2ZS1TNy1jb21wYXRpYmxlLnBhdGNoIHwgICAgMzAgKwogLi4udmUt QWRkLWluaXRpYWwtU3RhckZpdmUtSkg3MTEwLWRldmljLnBhdGNoIHwgICA1MzkgKwogLi4udmUt QWRkLVN0YXJGaXZlLUpINzExMC1waW4tZnVuY3Rpb24tLnBhdGNoIHwgICAzMzUgKwogLi4udmUt QWRkLVN0YXJGaXZlLUpINzExMC1WaXNpb25GaXZlLTItLnBhdGNoIHwgICAzMDIgKwogLi4udmUt amg3MTEwLUNvcnJlY3QtdGhlLXByb3BlcnRpZXMtb2YtLnBhdGNoIHwgICAgNDMgKwogLi4uaGRv Zy1BZGQtd2F0Y2hkb2ctZm9yLVN0YXJGaXZlLUpINzEwLnBhdGNoIHwgICAgOTcgKwogLi4uYXRj aGRvZy1BZGQtU3RhckZpdmUtV2F0Y2hkb2ctZHJpdmVyLnBhdGNoIHwgICA2ODcgKwogLi4udHMt c3RhcmZpdmUtamg3MTAwLUFkZC13YXRjaGRvZy1ub2RlLnBhdGNoIHwgICAgMzYgKwogLi4uZXIt QWRkLXRpbWVyLWZvci1TdGFyRml2ZS1KSDcxMTAtU29DLnBhdGNoIHwgICAxMTkgKwogLi4ubG9j a3NvdXJjZS1BZGQtU3RhckZpdmUtdGltZXItZHJpdmVyLnBhdGNoIHwgICA1NzIgKwogLi4udi1k dHMtamg3MTEwLXN0YXJmaXZlLUFkZC10aW1lci1ub2RlLnBhdGNoIHwgICAgNDYgKwogLi4uZGlu Z3MtaHdtb24tQWRkLXN0YXJmaXZlLWpoNzF4MC10ZW1wLnBhdGNoIHwgICAgOTUgKwogLi4uZC1T dGFyRml2ZS1KSDcxeDAtdGVtcGVyYXR1cmUtc2Vuc29yLnBhdGNoIHwgICA0NjcgKwogLi4uLWNk bnMtcXNwaS1ub3ItY29uc3RyYWluLW1pbkl0ZW1zLW1hLnBhdGNoIHwgICAgODMgKwogLi4uc3Bp LUFkZC1zdXBwb3J0LWZvci1TdGFyRml2ZS1KSDcxMTAtLnBhdGNoIHwgICAgODYgKwogLi4uaXZl LUVuYWJsZS1heHAxNTA2MC1wbWljLWZvci1jcHVmcmVxLnBhdGNoIHwgICAgNDIgKwogLi4udGRl di1BZGQtSkg3MTEwLVNPQy10by10aGUtYWxsb3dsaXN0LnBhdGNoIHwgICAgMjkgKwogLi4ucmZp dmUtQWRkLWNwdS1zY2FsaW5nLWZvci1KSDcxMTAtU29DLnBhdGNoIHwgICAxMTMgKwogLi4uay1B ZGQtU3RhckZpdmUtSkg3MTEwLVN5c3RlbS1Ub3AtR3JvLnBhdGNoIHwgICAyMDMgKwogLi4uLVN0 YXJGaXZlLUpINzExMC1TeXN0ZW0tVG9wLUdyb3VwLWNsLnBhdGNoIHwgICAyMjggKwogLi4uay1B ZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25hbC1QLnBhdGNoIHwgICAxNjYgKwogLi4uLVN0 YXJGaXZlLUpINzExMC1JbWFnZS1TaWduYWwtUHJvY2VzLnBhdGNoIHwgICAzMDUgKwogLi4uay1B ZGQtU3RhckZpdmUtSkg3MTEwLVZpZGVvLU91dHB1dC1jLnBhdGNoIHwgICAxNzMgKwogLi4uLVN0 YXJGaXZlLUpINzExMC1WaWRlby1PdXRwdXQtY2xvY2stLnBhdGNoIHwgICAyOTQgKwogLi4udGUt bWFpbnRhaW5lci1vZi1KSDcxeDAtY2xvY2stZHJpdmVyLnBhdGNoIHwgICAgMjggKwogLi4uaDcx MTAtQWRkLVN0YXJGaXZlLVNURy1JU1AtVk9VVC1yZXNlLnBhdGNoIHwgICAgNjYgKwogLi4udmUt amg3MTEwLUFkZC1EVlAtYW5kLUhETUktVFgtcGl4ZWwtLnBhdGNoIHwgICAgNzQgKwogLi4udmUt amg3MTEwLUFkZC1TVEdDUkctSVNQQ1JHLVZPVVRDUkctLnBhdGNoIHwgICAgOTggKwogLi4uZ3Mt Y3J5cHRvLUFkZC1TdGFyRml2ZS1jcnlwdG8tbW9kdWxlLnBhdGNoIHwgICAgOTUgKwogLi4uby1z dGFyZml2ZS1BZGQtY3J5cHRvLWVuZ2luZS1zdXBwb3J0LnBhdGNoIHwgICAzNTUgKwogLi4udmUt QWRkLWNyeXB0by1hbmQtRE1BLW5vZGUtZm9yLVZpc2lvLnBhdGNoIHwgICAgNTggKwogLi4uby1z dGFyZml2ZS1BZGQtaGFzaC1hbmQtSE1BQy1zdXBwb3J0LnBhdGNoIHwgIDExNDkgKysKIC4uLmJp bmRpbmdzLVBXTS1BZGQtU3RhckZpdmUtUFdNLW1vZHVsZS5wYXRjaCB8ICAgIDc3ICsKIC4uLi1w d20tc3RhcmZpdmUtQWRkLVBXTS1kcml2ZXItc3VwcG9ydC5wYXRjaCB8ICAgMzA0ICsKIC4uLmV0 LXNucHMtZHdtYWMtQWRkLWR3bWFjLTUuMjAtdmVyc2lvbi5wYXRjaCB8ICAgIDUzICsKIC4uLm9y bS1BZGQtc25wcy1kd21hYy01LjIwLUlQLWNvbXBhdGlibC5wYXRjaCB8ICAgIDMzICsKIC4uLi1z bnBzLWR3bWFjLUFkZC1haGItcmVzZXQtcmVzZXQtbmFtZS5wYXRjaCB8ICAgIDUwICsKIC4uLmRp bmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1kd21hYy5wYXRjaCB8ICAgMTgxICsKIC4uLmQt Z2x1ZS1sYXllci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaCB8ICAgMTg1ICsKIC4uLi1z dGFyZml2ZS1BZGQtcGh5LWludGVyZmFjZS1zZXR0aW5ncy5wYXRjaCB8ICAgIDk2ICsKIC4uLmlu Z3MtcGh5LUFkZC1TdGFyRml2ZS1KSDcxMTAtVVNCLVBIWS5wYXRjaCB8ICAgIDc0ICsKIC4uLm5n cy1waHktQWRkLVN0YXJGaXZlLUpINzExMC1QQ0llLVBIWS5wYXRjaCB8ICAgIDgzICsKIC4uLmFy Zml2ZS1BZGQtSkg3MTEwLVVTQi0yLjAtUEhZLWRyaXZlci5wYXRjaCB8ICAgMTg1ICsKIC4uLnJm aXZlLUFkZC1KSDcxMTAtUENJRS0yLjAtUEhZLWRyaXZlci5wYXRjaCB8ICAgMjI2ICsKIC4uLmIt QWRkLVN0YXJGaXZlLUpINzExMC1VU0ItY29udHJvbGxlci5wYXRjaCB8ICAgMTU3ICsKIC4uLmNk bnMzLUFkZC1TdGFyRml2ZS1KSDcxMTAtVVNCLWRyaXZlci5wYXRjaCB8ICAgNDY3ICsKIC4uLnZl LUFkZC1VU0ItZHRzLWNvbmZpZ3VyYXRpb24tZm9yLUpINy5wYXRjaCB8ICAgIDkxICsKIC4uLmst QWRkLVN0YXJGaXZlLUpINzExMC1QTEwtY2xvY2stZ2VuZS5wYXRjaCB8ICAgIDg4ICsKIC4uLkFk ZC1TdGFyRml2ZS1KSDcxMTAtUExMLWNsb2NrLWRyaXZlci5wYXRjaCB8ICAgNzA0ICsKIC4uLmst amg3MTEwLXN5c2NyZy1BZGQtUExMLWNsb2NrLWlucHV0cy5wYXRjaCB8ICAgIDc5ICsKIC4uLi1q aDcxMTAtc3lzLU1vZGlmeS1QTEwtY2xvY2tzLXNvdXJjZS5wYXRjaCB8ICAgIDc4ICsKIC4uLi1z dGFyZml2ZS1BZGQtU3RhckZpdmUtc3lzY29uLW1vZHVsZS5wYXRjaCB8ICAgIDkyICsKIC4uLmR0 cy1zdGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi1ub2Rlcy5wYXRjaCB8ICAgIDYwICsKIC4uLnZl LWpoNzExMC1BZGQtUExMLWNsb2NrLW5vZGUtYW5kLW1vZC5wYXRjaCB8ICAgIDUzICsKIC4uLnNu cHMtZHctYXhpLWRtYWMtY29uc3RyYWluLXRoZS1pdGVtcy5wYXRjaCB8ICAgIDY3ICsKIC4uLi1k bWFjLUFkZC1zdXBwb3J0LWZvci1TdGFyRml2ZS1KSDcxMS5wYXRjaCB8ICAgMTI4ICsKIC4uLi1k bWFjLUluY3JlYXNlLXBvbGxpbmctdGltZS10by1ETUEtdC5wYXRjaCB8ICAgIDM0ICsKIC4uLmR0 cy1zdGFyZml2ZS1hZGQtZG1hLWNvbnRyb2xsZXItbm9kZS5wYXRjaCB8ICAgIDQ1ICsKIC4uLi1B ZGQtVERNLWNvbnRyb2xsZXItYmluZGluZ3MtZm9yLVN0YS5wYXRjaCB8ICAgMTIzICsKIC4uLi1B U29DLXN0YXJmaXZlLUFkZC1KSDcxMTAtVERNLWRyaXZlci5wYXRjaCB8ICAgNzk5ICsrCiAuLi52 ZS1hZGQtdGhlLW5vZGUtYW5kLXBpbnMtY29uZmlndXJhdGkucGF0Y2ggfCAgIDEwNSArCiAuLi5h ZGQtSkg3MTEwLVBDSWUtZHQtYmluZGluZy1kb2N1bWVudHMucGF0Y2ggfCAgIDE4NiArCiAuLi5m aXZlLWFkZC1TdGFyRml2ZS1KSDcxMTAtUENJZS1kcml2ZXIucGF0Y2ggfCAgMTAxNCArKwogLi4u dmUtYWRkLVBDSWUtZHRzLWNvbmZpZ3VyYXRpb24tZm9yLUpILnBhdGNoIHwgICAxODggKwogLi4u ZHRzLXN0YXJmaXZlLWFkZC1wbXUtY29udHJvbGxlci1ub2RlLnBhdGNoIHwgICAgMzQgKwogLi4u L3BhdGNoZXMvMDA4My1hZGQtbWlzc2luZy1pbmNsdWRlLnBhdGNoICAgIHwgICAgMjQgKwogLi4u by1oYXNoLUFkZC1zdGF0ZXNpemUtdG8tY3J5cHRvX2FoYXNoLnBhdGNoIHwgICAgNzAgKwogLi4u aGUtbmV3LWxpZ2h0c3BlZWQtcmVjZWl2ZXItaXRlcmF0aW9uLnBhdGNoIHwgICAyNzYgKwogc3Jj cGtncy9saW51eDYuMy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIgKy0KIDg3 IGZpbGVzIGNoYW5nZWQsIDI5MDIzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL2ZpbGVzL3Jpc2N2LWRvdGNvbmZpZwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDAxLWR0LWJpbmRpbmdz LWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtc3lzdGVtLWNsb2NrLWEucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwMi1kdC1iaW5kaW5ncy1jbG9j ay1BZGQtU3RhckZpdmUtSkg3MTEwLWFsd2F5cy1vbi1jbG9jLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMDMtY2xrLXN0YXJmaXZlLVJlcGxhY2Ut U09DX1NUQVJGSVZFLXdpdGgtQVJDSF9TVEFSRklWRS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDA0LWNsay1zdGFyZml2ZS1GYWN0b3Itb3V0LWNv bW1vbi1KSDcxMDAtYW5kLUpINzExMC1jb2QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwNS1jbGstc3RhcmZpdmUtUmVuYW1lLWNsay1zdGFyZml2 ZS1qaDcxMDAuaC10by1jbGstc3RhLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwMDYtY2xrLXN0YXJmaXZlLVJlbmFtZS1qaDcxMDAtdG8tamg3MXgw LWZvci10aGUtY29tbW9uLS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2 LjMvcGF0Y2hlcy8wMDA3LXJlc2V0LXN0YXJmaXZlLVJlcGxhY2UtU09DX1NUQVJGSVZFLXdpdGgt QVJDSF9TVEFSRkkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3Bh dGNoZXMvMDAwOC1yZXNldC1DcmVhdGUtc3ViZGlyZWN0b3J5LWZvci1TdGFyRml2ZS1kcml2ZXJz LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMDkt cmVzZXQtc3RhcmZpdmUtRmFjdG9yLW91dC1jb21tb24tSkg3MVgwLXJlc2V0LWNvZGUucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxMC1yZXNldC1z dGFyZml2ZS1FeHRyYWN0LXRoZS1jb21tb24tSkg3MVgwLXJlc2V0LWNvZGUucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxMS1yZXNldC1zdGFyZml2 ZS1SZW5hbWUtamg3MTAwLXRvLWpoNzF4MC1mb3ItdGhlLWNvbW1vLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTItcmVzZXQtc3RhcmZpdmUtamg3 MXgwLVVzZS0zMmJpdC1JLU8tb24tMzJiaXQtcmVnaXN0ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDEzLWNsay1zdGFyZml2ZS1BZGQtU3RhckZp dmUtSkg3MTEwLXN5c3RlbS1jbG9jay1kcml2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxNC1jbGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpI NzExMC1hbHdheXMtb24tY2xvY2stZHJpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwMTUtcmVzZXQtc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzEx MC1yZXNldC1kcml2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDAxNi1kdC1iaW5kaW5ncy10aW1lci1BZGQtU3RhckZpdmUtSkg3MTEwLWNsaW50 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTct ZHQtYmluZGluZ3MtaW50ZXJydXB0LWNvbnRyb2xsZXItQWRkLVN0YXJGaXZlLUpINzExMC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDE4LWR0LWJp bmRpbmdzLXJpc2N2LUFkZC1TaUZpdmUtUzctY29tcGF0aWJsZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDE5LXJpc2N2LWR0cy1zdGFyZml2ZS1B ZGQtaW5pdGlhbC1TdGFyRml2ZS1KSDcxMTAtZGV2aWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyMC1yaXNjdi1kdHMtc3RhcmZpdmUtQWRkLVN0 YXJGaXZlLUpINzExMC1waW4tZnVuY3Rpb24tLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjEtcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1TdGFyRml2 ZS1KSDcxMTAtVmlzaW9uRml2ZS0yLS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDIyLXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQ29ycmVjdC10 aGUtcHJvcGVydGllcy1vZi0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4 Ni4zL3BhdGNoZXMvMDAyMy1kdC1iaW5kaW5ncy13YXRjaGRvZy1BZGQtd2F0Y2hkb2ctZm9yLVN0 YXJGaXZlLUpINzEwLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwMjQtZHJpdmVycy13YXRjaGRvZy1BZGQtU3RhckZpdmUtV2F0Y2hkb2ctZHJpdmVy LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjUt cmlzY3YtZHRzLXN0YXJmaXZlLWpoNzEwMC1BZGQtd2F0Y2hkb2ctbm9kZS5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDI2LWR0LWJpbmRpbmdzLXRp bWVyLUFkZC10aW1lci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDI3LWNsb2Nrc291cmNlLUFkZC1TdGFy Rml2ZS10aW1lci1kcml2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4 Ni4zL3BhdGNoZXMvMDAyOC1yaXNjdi1kdHMtamg3MTEwLXN0YXJmaXZlLUFkZC10aW1lci1ub2Rl LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjkt ZHQtYmluZGluZ3MtaHdtb24tQWRkLXN0YXJmaXZlLWpoNzF4MC10ZW1wLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMzAtaHdtb24tc2ZjdGVtcC1B ZGQtU3RhckZpdmUtSkg3MXgwLXRlbXBlcmF0dXJlLXNlbnNvci5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMxLWR0LWJpbmRpbmdzLXFzcGktY2Ru cy1xc3BpLW5vci1jb25zdHJhaW4tbWluSXRlbXMtbWEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzMi1zcGktY2FkZW5jZS1xdWFkc3BpLUFkZC1z dXBwb3J0LWZvci1TdGFyRml2ZS1KSDcxMTAtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwMzMtcmlzY3YtZHRzLXN0YXJmaXZlLUVuYWJsZS1heHAx NTA2MC1wbWljLWZvci1jcHVmcmVxLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwMzQtY3B1ZnJlcS1kdC1wbGF0ZGV2LUFkZC1KSDcxMTAtU09DLXRv LXRoZS1hbGxvd2xpc3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDAzNS1yaXNjdi1kdHMtc3RhcmZpdmUtQWRkLWNwdS1zY2FsaW5nLWZvci1KSDcx MTAtU29DLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwMzYtZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1TeXN0ZW0tVG9wLUdy by5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDM3 LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVN5c3RlbS1Ub3AtR3JvdXAtY2wucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzOC1kdC1i aW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25hbC1QLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMzktY2xrLXN0YXJm aXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtSW1hZ2UtU2lnbmFsLVByb2Nlcy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQwLWR0LWJpbmRpbmdzLWNs b2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWMucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0MS1jbGstc3RhcmZpdmUtQWRkLVN0 YXJGaXZlLUpINzExMC1WaWRlby1PdXRwdXQtY2xvY2stLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNDItTUFJTlRBSU5FUlMtVXBkYXRlLW1haW50 YWluZXItb2YtSkg3MXgwLWNsb2NrLWRyaXZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQzLXJlc2V0LXN0YXJmaXZlLWpoNzExMC1BZGQtU3Rh ckZpdmUtU1RHLUlTUC1WT1VULXJlc2UucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xpbnV4Ni4zL3BhdGNoZXMvMDA0NC1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFkZC1EVlAt YW5kLUhETUktVFgtcGl4ZWwtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51 eDYuMy9wYXRjaGVzLzAwNDUtcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzExMC1BZGQtU1RHQ1JHLUlT UENSRy1WT1VUQ1JHLS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDQ2LWR0LWJpbmRpbmdzLWNyeXB0by1BZGQtU3RhckZpdmUtY3J5cHRvLW1vZHVs ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQ3 LWNyeXB0by1zdGFyZml2ZS1BZGQtY3J5cHRvLWVuZ2luZS1zdXBwb3J0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNDgtcmlzY3YtZHRzLXN0YXJm aXZlLUFkZC1jcnlwdG8tYW5kLURNQS1ub2RlLWZvci1WaXNpby5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQ5LWNyeXB0by1zdGFyZml2ZS1BZGQt aGFzaC1hbmQtSE1BQy1zdXBwb3J0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwNTAtZHQtYmluZGluZ3MtUFdNLUFkZC1TdGFyRml2ZS1QV00tbW9k dWxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw NTEtcHdtLXN0YXJmaXZlLUFkZC1QV00tZHJpdmVyLXN1cHBvcnQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1Mi1kdC1iaW5kaW5ncy1uZXQtc25w cy1kd21hYy1BZGQtZHdtYWMtNS4yMC12ZXJzaW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTMtbmV0LXN0bW1hYy1wbGF0Zm9ybS1BZGQtc25w cy1kd21hYy01LjIwLUlQLWNvbXBhdGlibC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGludXg2LjMvcGF0Y2hlcy8wMDU0LWR0LWJpbmRpbmdzLW5ldC1zbnBzLWR3bWFjLUFkZC1h aGItcmVzZXQtcmVzZXQtbmFtZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDU1LWR0LWJpbmRpbmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1k d21hYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDU2LW5ldC1zdG1tYWMtQWRkLWdsdWUtbGF5ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1Ny1uZXQt c3RtbWFjLWR3bWFjLXN0YXJmaXZlLUFkZC1waHktaW50ZXJmYWNlLXNldHRpbmdzLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTgtZHQtYmluZGlu Z3MtcGh5LUFkZC1TdGFyRml2ZS1KSDcxMTAtVVNCLVBIWS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDU5LWR0LWJpbmRpbmdzLXBoeS1BZGQtU3Rh ckZpdmUtSkg3MTEwLVBDSWUtUEhZLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwNjAtcGh5LXN0YXJmaXZlLUFkZC1KSDcxMTAtVVNCLTIuMC1QSFkt ZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwNjEtcGh5LXN0YXJmaXZlLUFkZC1KSDcxMTAtUENJRS0yLjAtUEhZLWRyaXZlci5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDYyLWR0LWJpbmRp bmdzLXVzYi1BZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1jb250cm9sbGVyLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjMtdXNiLWNkbnMzLUFkZC1T dGFyRml2ZS1KSDcxMTAtVVNCLWRyaXZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGludXg2LjMvcGF0Y2hlcy8wMDY0LXJpc2N2LWR0cy1zdGFyZml2ZS1BZGQtVVNCLWR0cy1j b25maWd1cmF0aW9uLWZvci1KSDcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDA2NS1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEw LVBMTC1jbG9jay1nZW5lLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYu My9wYXRjaGVzLzAwNjYtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtUExMLWNsb2Nr LWRyaXZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hl cy8wMDY3LWR0LWJpbmRpbmdzLWNsb2NrLWpoNzExMC1zeXNjcmctQWRkLVBMTC1jbG9jay1pbnB1 dHMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2 OC1jbGstc3RhcmZpdmUtamg3MTEwLXN5cy1Nb2RpZnktUExMLWNsb2Nrcy1zb3VyY2UucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2OS1kdC1iaW5k aW5ncy1zb2Mtc3RhcmZpdmUtQWRkLVN0YXJGaXZlLXN5c2Nvbi1tb2R1bGUucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA3MC1yaXNjdi1kdHMtc3Rh cmZpdmUtamg3MTEwLUFkZC1zeXNjb24tbm9kZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA3MS1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFk ZC1QTEwtY2xvY2stbm9kZS1hbmQtbW9kLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwNzItZHQtYmluZGluZ3MtZG1hLXNucHMtZHctYXhpLWRtYWMt Y29uc3RyYWluLXRoZS1pdGVtcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDczLWRtYWVuZ2luZS1kdy1heGktZG1hYy1BZGQtc3VwcG9ydC1mb3It U3RhckZpdmUtSkg3MTEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDA3NC1kbWFlbmdpbmUtZHctYXhpLWRtYWMtSW5jcmVhc2UtcG9sbGluZy10aW1l LXRvLURNQS10LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRj aGVzLzAwNzUtcmlzY3YtZHRzLXN0YXJmaXZlLWFkZC1kbWEtY29udHJvbGxlci1ub2RlLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNzYtQVNvQy1k dC1iaW5kaW5ncy1BZGQtVERNLWNvbnRyb2xsZXItYmluZGluZ3MtZm9yLVN0YS5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDc3LUFTb0Mtc3RhcmZp dmUtQWRkLUpINzExMC1URE0tZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwNzgtcmlzY3YtZHRzLXN0YXJmaXZlLWFkZC10aGUtbm9kZS1h bmQtcGlucy1jb25maWd1cmF0aS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDc5LWR0LWJpbmRpbmctcGNpLWFkZC1KSDcxMTAtUENJZS1kdC1iaW5k aW5nLWRvY3VtZW50cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDgwLXBjaWUtc3RhcmZpdmUtYWRkLVN0YXJGaXZlLUpINzExMC1QQ0llLWRyaXZl ci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDgx LXJpc2N2LWR0cy1zdGFyZml2ZS1hZGQtUENJZS1kdHMtY29uZmlndXJhdGlvbi1mb3ItSkgucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA4Mi1yaXNj di1kdHMtc3RhcmZpdmUtYWRkLXBtdS1jb250cm9sbGVyLW5vZGUucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA4My1hZGQtbWlzc2luZy1pbmNsdWRl LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwODQt Y3J5cHRvLWhhc2gtQWRkLXN0YXRlc2l6ZS10by1jcnlwdG9fYWhhc2gucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMS0yLUhJRC1sb2dpdGVjaC1kai1h ZGQtc3VwcG9ydC1mb3ItdGhlLW5ldy1saWdodHNwZWVkLXJlY2VpdmVyLWl0ZXJhdGlvbi5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvZmlsZXMvcmlzY3YtZG90Y29uZmlnIGIv c3JjcGtncy9saW51eDYuMy9maWxlcy9yaXNjdi1kb3Rjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYThmN2MyOGI4NjE1MwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGludXg2LjMvZmlsZXMvcmlzY3YtZG90Y29uZmlnCkBAIC0wLDAgKzEsMTA1OTUg QEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZmlsZTsgRE8gTk9UIEVESVQuCisjIExp bnV4L3Jpc2N2IDYuMy4zIEtlcm5lbCBDb25maWd1cmF0aW9uCisjCitDT05GSUdfQ0NfVkVSU0lP Tl9URVhUPSJyaXNjdjY0LWxpbnV4LW11c2wtZ2NjIChHQ0MpIDEyLjIuMCIKK0NPTkZJR19DQ19J U19HQ0M9eQorQ09ORklHX0dDQ19WRVJTSU9OPTEyMDIwMAorQ09ORklHX0NMQU5HX1ZFUlNJT049 MAorQ09ORklHX0FTX0lTX0dOVT15CitDT05GSUdfQVNfVkVSU0lPTj0yMzkwMAorQ09ORklHX0xE X0lTX0JGRD15CitDT05GSUdfTERfVkVSU0lPTj0yMzkwMAorQ09ORklHX0xMRF9WRVJTSU9OPTAK K0NPTkZJR19DQ19DQU5fTElOSz15CitDT05GSUdfQ0NfQ0FOX0xJTktfU1RBVElDPXkKK0NPTkZJ R19DQ19IQVNfQVNNX0dPVE9fT1VUUFVUPXkKK0NPTkZJR19DQ19IQVNfQVNNX0dPVE9fVElFRF9P VVRQVVQ9eQorQ09ORklHX0NDX0hBU19BU01fSU5MSU5FPXkKK0NPTkZJR19DQ19IQVNfTk9fUFJP RklMRV9GTl9BVFRSPXkKK0NPTkZJR19QQUhPTEVfVkVSU0lPTj0xMjUKK0NPTkZJR19JUlFfV09S Sz15CitDT05GSUdfQlVJTERUSU1FX1RBQkxFX1NPUlQ9eQorQ09ORklHX1RIUkVBRF9JTkZPX0lO X1RBU0s9eQorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19JTklUX0VOVl9BUkdfTElN SVQ9MzIKKyMgQ09ORklHX0NPTVBJTEVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19XRVJST1Ig aXMgbm90IHNldAorQ09ORklHX0xPQ0FMVkVSU0lPTj0iXzEiCisjIENPTkZJR19MT0NBTFZFUlNJ T05fQVVUTyBpcyBub3Qgc2V0CitDT05GSUdfQlVJTERfU0FMVD0iIgorQ09ORklHX0RFRkFVTFRf SU5JVD0iIgorQ09ORklHX0RFRkFVTFRfSE9TVE5BTUU9Iihub25lKSIKK0NPTkZJR19TWVNWSVBD PXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CitDT05GSUdfU1lTVklQQ19DT01QQVQ9eQorQ09O RklHX1BPU0lYX01RVUVVRT15CitDT05GSUdfUE9TSVhfTVFVRVVFX1NZU0NUTD15CitDT05GSUdf V0FUQ0hfUVVFVUU9eQorQ09ORklHX0NST1NTX01FTU9SWV9BVFRBQ0g9eQorIyBDT05GSUdfVVNF TElCIGlzIG5vdCBzZXQKK0NPTkZJR19BVURJVD15CitDT05GSUdfSEFWRV9BUkNIX0FVRElUU1lT Q0FMTD15CitDT05GSUdfQVVESVRTWVNDQUxMPXkKKworIworIyBJUlEgc3Vic3lzdGVtCisjCitD T05GSUdfR0VORVJJQ19JUlFfU0hPVz15CitDT05GSUdfR0VORVJJQ19JUlFfU0hPV19MRVZFTD15 CitDT05GSUdfR0VORVJJQ19JUlFfRUZGRUNUSVZFX0FGRl9NQVNLPXkKK0NPTkZJR19HRU5FUklD X0lSUV9NSUdSQVRJT049eQorQ09ORklHX0dFTkVSSUNfSVJRX0lOSkVDVElPTj15CitDT05GSUdf SEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9DSElQPXkKK0NPTkZJR19J UlFfRE9NQUlOPXkKK0NPTkZJR19JUlFfU0lNPXkKK0NPTkZJR19JUlFfRE9NQUlOX0hJRVJBUkNI WT15CitDT05GSUdfR0VORVJJQ19NU0lfSVJRPXkKK0NPTkZJR19JUlFfRk9SQ0VEX1RIUkVBRElO Rz15CitDT05GSUdfU1BBUlNFX0lSUT15CisjIENPTkZJR19HRU5FUklDX0lSUV9ERUJVR0ZTIGlz IG5vdCBzZXQKKyMgZW5kIG9mIElSUSBzdWJzeXN0ZW0KKworQ09ORklHX0dFTkVSSUNfSVJRX01V TFRJX0hBTkRMRVI9eQorQ09ORklHX0dFTkVSSUNfVElNRV9WU1lTQ0FMTD15CitDT05GSUdfR0VO RVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfQVJDSF9IQVNfVElDS19CUk9BRENBU1Q9eQorQ09O RklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURDQVNUPXkKK0NPTkZJR19IQVZFX1BPU0lYX0NQ VV9USU1FUlNfVEFTS19XT1JLPXkKK0NPTkZJR19QT1NJWF9DUFVfVElNRVJTX1RBU0tfV09SSz15 CitDT05GSUdfQ09OVEVYVF9UUkFDS0lORz15CitDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19JRExF PXkKKworIworIyBUaW1lcnMgc3Vic3lzdGVtCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NP TkZJR19OT19IWl9DT01NT049eQorIyBDT05GSUdfSFpfUEVSSU9ESUMgaXMgbm90IHNldAorIyBD T05GSUdfTk9fSFpfSURMRSBpcyBub3Qgc2V0CitDT05GSUdfTk9fSFpfRlVMTD15CitDT05GSUdf Q09OVEVYVF9UUkFDS0lOR19VU0VSPXkKK0NPTkZJR19DT05URVhUX1RSQUNLSU5HX1VTRVJfRk9S Q0U9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorIyBlbmQgb2Yg VGltZXJzIHN1YnN5c3RlbQorCitDT05GSUdfQlBGPXkKK0NPTkZJR19IQVZFX0VCUEZfSklUPXkK KworIworIyBCUEYgc3Vic3lzdGVtCisjCitDT05GSUdfQlBGX1NZU0NBTEw9eQorQ09ORklHX0JQ Rl9KSVQ9eQorQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OPXkKK0NPTkZJR19CUEZfSklUX0RFRkFV TFRfT049eQorQ09ORklHX0JQRl9VTlBSSVZfREVGQVVMVF9PRkY9eQorQ09ORklHX1VTRVJNT0RF X0RSSVZFUj15CisjIENPTkZJR19CUEZfUFJFTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfQlBGX0xT TT15CisjIGVuZCBvZiBCUEYgc3Vic3lzdGVtCisKK0NPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWV9C VUlMRD15CisjIENPTkZJR19QUkVFTVBUX05PTkUgaXMgbm90IHNldAorQ09ORklHX1BSRUVNUFRf Vk9MVU5UQVJZPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorCisjCisjIENQVS9UYXNr IHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKKyMKK0NPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5H PXkKK0NPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HX0dFTj15CisjIENPTkZJR19JUlFfVElNRV9B Q0NPVU5USU5HIGlzIG5vdCBzZXQKK0NPTkZJR19CU0RfUFJPQ0VTU19BQ0NUPXkKK0NPTkZJR19C U0RfUFJPQ0VTU19BQ0NUX1YzPXkKK0NPTkZJR19UQVNLU1RBVFM9eQorQ09ORklHX1RBU0tfREVM QVlfQUNDVD15CitDT05GSUdfVEFTS19YQUNDVD15CitDT05GSUdfVEFTS19JT19BQ0NPVU5USU5H PXkKK0NPTkZJR19QU0k9eQorQ09ORklHX1BTSV9ERUZBVUxUX0RJU0FCTEVEPXkKKyMgZW5kIG9m IENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKKworQ09ORklHX0NQVV9JU09MQVRJ T049eQorCisjCisjIFJDVSBTdWJzeXN0ZW0KKyMKK0NPTkZJR19UUkVFX1JDVT15CisjIENPTkZJ R19SQ1VfRVhQRVJUIGlzIG5vdCBzZXQKK0NPTkZJR19TUkNVPXkKK0NPTkZJR19UUkVFX1NSQ1U9 eQorQ09ORklHX1RBU0tTX1JDVV9HRU5FUklDPXkKK0NPTkZJR19UQVNLU19SVURFX1JDVT15CitD T05GSUdfVEFTS1NfVFJBQ0VfUkNVPXkKK0NPTkZJR19SQ1VfU1RBTExfQ09NTU9OPXkKK0NPTkZJ R19SQ1VfTkVFRF9TRUdDQkxJU1Q9eQorQ09ORklHX1JDVV9OT0NCX0NQVT15CisjIENPTkZJR19S Q1VfTk9DQl9DUFVfREVGQVVMVF9BTEwgaXMgbm90IHNldAorQ09ORklHX1JDVV9MQVpZPXkKKyMg ZW5kIG9mIFJDVSBTdWJzeXN0ZW0KKworQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJ R19QUk9DPXkKK0NPTkZJR19JS0hFQURFUlM9bQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTgKK0NP TkZJR19MT0dfQ1BVX01BWF9CVUZfU0hJRlQ9MTIKK0NPTkZJR19QUklOVEtfU0FGRV9MT0dfQlVG X1NISUZUPTEzCisjIENPTkZJR19QUklOVEtfSU5ERVggaXMgbm90IHNldAorQ09ORklHX0dFTkVS SUNfU0NIRURfQ0xPQ0s9eQorCisjCisjIFNjaGVkdWxlciBmZWF0dXJlcworIworIyBDT05GSUdf VUNMQU1QX1RBU0sgaXMgbm90IHNldAorIyBlbmQgb2YgU2NoZWR1bGVyIGZlYXR1cmVzCisKK0NP TkZJR19BUkNIX1NVUFBPUlRTX05VTUFfQkFMQU5DSU5HPXkKK0NPTkZJR19DQ19IQVNfSU5UMTI4 PXkKK0NPTkZJR19DQ19JTVBMSUNJVF9GQUxMVEhST1VHSD0iLVdpbXBsaWNpdC1mYWxsdGhyb3Vn aD01IgorQ09ORklHX0dDQzExX05PX0FSUkFZX0JPVU5EUz15CitDT05GSUdfQ0NfTk9fQVJSQVlf Qk9VTkRTPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0lOVDEyOD15CitDT05GSUdfTlVNQV9CQUxB TkNJTkc9eQorQ09ORklHX05VTUFfQkFMQU5DSU5HX0RFRkFVTFRfRU5BQkxFRD15CitDT05GSUdf Q0dST1VQUz15CitDT05GSUdfUEFHRV9DT1VOVEVSPXkKKyMgQ09ORklHX0NHUk9VUF9GQVZPUl9E WU5NT0RTIGlzIG5vdCBzZXQKK0NPTkZJR19NRU1DRz15CitDT05GSUdfTUVNQ0dfS01FTT15CitD T05GSUdfQkxLX0NHUk9VUD15CitDT05GSUdfQ0dST1VQX1dSSVRFQkFDSz15CitDT05GSUdfQ0dS T1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19DRlNfQkFORFdJ RFRIPXkKK0NPTkZJR19SVF9HUk9VUF9TQ0hFRD15CitDT05GSUdfU0NIRURfTU1fQ0lEPXkKK0NP TkZJR19DR1JPVVBfUElEUz15CitDT05GSUdfQ0dST1VQX1JETUE9eQorQ09ORklHX0NHUk9VUF9G UkVFWkVSPXkKK0NPTkZJR19DR1JPVVBfSFVHRVRMQj15CitDT05GSUdfQ1BVU0VUUz15CitDT05G SUdfUFJPQ19QSURfQ1BVU0VUPXkKK0NPTkZJR19DR1JPVVBfREVWSUNFPXkKK0NPTkZJR19DR1JP VVBfQ1BVQUNDVD15CitDT05GSUdfQ0dST1VQX1BFUkY9eQorQ09ORklHX0NHUk9VUF9CUEY9eQor Q09ORklHX0NHUk9VUF9NSVNDPXkKKyMgQ09ORklHX0NHUk9VUF9ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfU09DS19DR1JPVVBfREFUQT15CitDT05GSUdfTkFNRVNQQUNFUz15CitDT05GSUdfVVRT X05TPXkKK0NPTkZJR19USU1FX05TPXkKK0NPTkZJR19JUENfTlM9eQorQ09ORklHX1VTRVJfTlM9 eQorQ09ORklHX1BJRF9OUz15CitDT05GSUdfTkVUX05TPXkKK0NPTkZJR19DSEVDS1BPSU5UX1JF U1RPUkU9eQorIyBDT05GSUdfU0NIRURfQVVUT0dST1VQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZ U0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAorQ09ORklHX1JFTEFZPXkKK0NPTkZJR19CTEtfREVW X0lOSVRSRD15CitDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX1JEX0daSVA9eQor Q09ORklHX1JEX0JaSVAyPXkKK0NPTkZJR19SRF9MWk1BPXkKK0NPTkZJR19SRF9YWj15CitDT05G SUdfUkRfTFpPPXkKK0NPTkZJR19SRF9MWjQ9eQorQ09ORklHX1JEX1pTVEQ9eQorQ09ORklHX0JP T1RfQ09ORklHPXkKKyMgQ09ORklHX0JPT1RfQ09ORklHX0ZPUkNFIGlzIG5vdCBzZXQKKyMgQ09O RklHX0JPT1RfQ09ORklHX0VNQkVEIGlzIG5vdCBzZXQKK0NPTkZJR19JTklUUkFNRlNfUFJFU0VS VkVfTVRJTUU9eQorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRT15CisjIENPTkZJ R19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfTERfT1JQSEFOX1dBUk49 eQorQ09ORklHX0xEX09SUEhBTl9XQVJOX0xFVkVMPSJ3YXJuIgorQ09ORklHX1NZU0NUTD15CitD T05GSUdfU1lTQ1RMX0VYQ0VQVElPTl9UUkFDRT15CitDT05GSUdfRVhQRVJUPXkKK0NPTkZJR19N VUxUSVVTRVI9eQorIyBDT05GSUdfU0dFVE1BU0tfU1lTQ0FMTCBpcyBub3Qgc2V0CitDT05GSUdf U1lTRlNfU1lTQ0FMTD15CitDT05GSUdfRkhBTkRMRT15CitDT05GSUdfUE9TSVhfVElNRVJTPXkK K0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklH X0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0ZVVEVYX1BJPXkKK0NPTkZJR19F UE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5U RkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19BSU89eQorQ09ORklHX0lPX1VSSU5HPXkKK0NP TkZJR19BRFZJU0VfU1lTQ0FMTFM9eQorQ09ORklHX01FTUJBUlJJRVI9eQorQ09ORklHX0tBTExT WU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19LQUxM U1lNU19BTEw9eQorQ09ORklHX0tBTExTWU1TX0JBU0VfUkVMQVRJVkU9eQorQ09ORklHX0tDTVA9 eQorQ09ORklHX1JTRVE9eQorIyBDT05GSUdfREVCVUdfUlNFUSBpcyBub3Qgc2V0CisjIENPTkZJ R19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9QRVJGX0VWRU5UUz15CisjIENPTkZJ R19QQzEwNCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIFBlcmZvcm1hbmNlIEV2ZW50cyBBbmQg Q291bnRlcnMKKyMKK0NPTkZJR19QRVJGX0VWRU5UUz15CisjIENPTkZJR19ERUJVR19QRVJGX1VT RV9WTUFMTE9DIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEtlcm5lbCBQZXJmb3JtYW5jZSBFdmVudHMg QW5kIENvdW50ZXJzCisKK0NPTkZJR19TWVNURU1fREFUQV9WRVJJRklDQVRJT049eQorQ09ORklH X1BST0ZJTElORz15CitDT05GSUdfVFJBQ0VQT0lOVFM9eQorIyBlbmQgb2YgR2VuZXJhbCBzZXR1 cAorCitDT05GSUdfNjRCSVQ9eQorQ09ORklHX1JJU0NWPXkKK0NPTkZJR19BUkNIX01NQVBfUk5E X0JJVFNfTUlOPTE4CitDT05GSUdfQVJDSF9NTUFQX1JORF9DT01QQVRfQklUU19NSU49OAorQ09O RklHX0FSQ0hfTU1BUF9STkRfQklUU19NQVg9MjQKK0NPTkZJR19BUkNIX01NQVBfUk5EX0NPTVBB VF9CSVRTX01BWD0xNworQ09ORklHX1JJU0NWX1NCST15CitDT05GSUdfTU1VPXkKK0NPTkZJR19Q QUdFX09GRlNFVD0weGZmNjAwMDAwMDAwMDAwMDAKK0NPTkZJR19BUkNIX1NQQVJTRU1FTV9FTkFC TEU9eQorQ09ORklHX0FSQ0hfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfQVJDSF9TVVBQ T1JUU19VUFJPQkVTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0dFTkVS SUNfQlVHPXkKK0NPTkZJR19HRU5FUklDX0JVR19SRUxBVElWRV9QT0lOVEVSUz15CitDT05GSUdf R0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfQ1NVTT15CitDT05GSUdf R0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19GSVhfRUFSTFlDT05fTUVNPXkKK0NPTkZJR19QR1RB QkxFX0xFVkVMUz01CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19SSVNDVl9ETUFf Tk9OQ09IRVJFTlQ9eQorQ09ORklHX0FTX0hBU19JTlNOPXkKKworIworIyBTb0Mgc2VsZWN0aW9u CisjCitDT05GSUdfQVJDSF9NSUNST0NISVBfUE9MQVJGSVJFPXkKK0NPTkZJR19TT0NfTUlDUk9D SElQX1BPTEFSRklSRT15CitDT05GSUdfQVJDSF9SRU5FU0FTPXkKK0NPTkZJR19BUkNIX1NJRklW RT15CitDT05GSUdfU09DX1NJRklWRT15CitDT05GSUdfQVJDSF9TVEFSRklWRT15CitDT05GSUdf U09DX1NUQVJGSVZFPXkKK0NPTkZJR19BUkNIX1NVTlhJPXkKK0NPTkZJR19BUkNIX1ZJUlQ9eQor Q09ORklHX1NPQ19WSVJUPXkKKyMgZW5kIG9mIFNvQyBzZWxlY3Rpb24KKworIworIyBDUFUgZXJy YXRhIHNlbGVjdGlvbgorIworQ09ORklHX0VSUkFUQV9TSUZJVkU9eQorQ09ORklHX0VSUkFUQV9T SUZJVkVfQ0lQXzQ1Mz15CitDT05GSUdfRVJSQVRBX1NJRklWRV9DSVBfMTIwMD15CitDT05GSUdf RVJSQVRBX1RIRUFEPXkKK0NPTkZJR19FUlJBVEFfVEhFQURfUEJNVD15CitDT05GSUdfRVJSQVRB X1RIRUFEX0NNTz15CitDT05GSUdfRVJSQVRBX1RIRUFEX1BNVT15CisjIGVuZCBvZiBDUFUgZXJy YXRhIHNlbGVjdGlvbgorCisjCisjIFBsYXRmb3JtIHR5cGUKKyMKKyMgQ09ORklHX05PTlBPUlRB QkxFIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1JWNjRJPXkKKyMgQ09ORklHX0NNT0RFTF9NRURM T1cgaXMgbm90IHNldAorQ09ORklHX0NNT0RFTF9NRURBTlk9eQorQ09ORklHX01PRFVMRV9TRUNU SU9OUz15CitDT05GSUdfU01QPXkKK0NPTkZJR19OUl9DUFVTPTQ4MAorQ09ORklHX0hPVFBMVUdf Q1BVPXkKK0NPTkZJR19UVU5FX0dFTkVSSUM9eQorQ09ORklHX05VTUE9eQorQ09ORklHX05PREVT X1NISUZUPTYKK0NPTkZJR19SSVNDVl9BTFRFUk5BVElWRT15CitDT05GSUdfUklTQ1ZfQUxURVJO QVRJVkVfRUFSTFk9eQorQ09ORklHX1JJU0NWX0lTQV9DPXkKK0NPTkZJR19SSVNDVl9JU0FfU1ZQ Qk1UPXkKK0NPTkZJR19UT09MQ0hBSU5fSEFTX1pCQj15CitDT05GSUdfUklTQ1ZfSVNBX1pCQj15 CitDT05GSUdfUklTQ1ZfSVNBX1pJQ0JPTT15CitDT05GSUdfVE9PTENIQUlOX0hBU19aSUhJTlRQ QVVTRT15CitDT05GSUdfVE9PTENIQUlOX05FRURTX0VYUExJQ0lUX1pJQ1NSX1pJRkVOQ0VJPXkK K0NPTkZJR19GUFU9eQorIyBlbmQgb2YgUGxhdGZvcm0gdHlwZQorCisjCisjIEtlcm5lbCBmZWF0 dXJlcworIworIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKK0NPTkZJR19IWl8yNTA9eQorIyBD T05GSUdfSFpfMzAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0haXzEwMDAgaXMgbm90IHNldAorQ09O RklHX0haPTI1MAorQ09ORklHX1NDSEVEX0hSVElDSz15CisjIENPTkZJR19SSVNDVl9TQklfVjAx IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JJU0NWX0JPT1RfU1BJTldBSVQgaXMgbm90IHNldAorQ09O RklHX0tFWEVDPXkKKyMgQ09ORklHX0tFWEVDX0ZJTEUgaXMgbm90IHNldAorQ09ORklHX0NSQVNI X0RVTVA9eQorQ09ORklHX0NPTVBBVD15CisjIGVuZCBvZiBLZXJuZWwgZmVhdHVyZXMKKworIwor IyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19DTURMSU5FPSIiCitDT05GSUdfRUZJX1NUVUI9eQor Q09ORklHX0VGST15CitDT05GSUdfQ0NfSEFWRV9TVEFDS1BST1RFQ1RPUl9UTFM9eQorQ09ORklH X1NUQUNLUFJPVEVDVE9SX1BFUl9UQVNLPXkKKyMgZW5kIG9mIEJvb3Qgb3B0aW9ucworCitDT05G SUdfUE9SVEFCTEU9eQorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklH X1BNPXkKK0NPTkZJR19QTV9ERUJVRz15CitDT05GSUdfUE1fQURWQU5DRURfREVCVUc9eQorQ09O RklHX0RQTV9XQVRDSERPRz15CitDT05GSUdfRFBNX1dBVENIRE9HX1RJTUVPVVQ9NjAKK0NPTkZJ R19QTV9DTEs9eQorQ09ORklHX1BNX0dFTkVSSUNfRE9NQUlOUz15CisjIENPTkZJR19XUV9QT1dF Ul9FRkZJQ0lFTlRfREVGQVVMVCBpcyBub3Qgc2V0CitDT05GSUdfUE1fR0VORVJJQ19ET01BSU5T X09GPXkKK0NPTkZJR19DUFVfUE09eQorQ09ORklHX0VORVJHWV9NT0RFTD15CisjIGVuZCBvZiBQ b3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKworIworIyBDUFUgUG93ZXIgTWFuYWdlbWVudAorIwor CisjCisjIENQVSBJZGxlCisjCitDT05GSUdfQ1BVX0lETEU9eQorQ09ORklHX0NQVV9JRExFX01V TFRJUExFX0RSSVZFUlM9eQorQ09ORklHX0NQVV9JRExFX0dPVl9MQURERVI9eQorQ09ORklHX0NQ VV9JRExFX0dPVl9NRU5VPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfVEVPPXkKK0NPTkZJR19EVF9J RExFX1NUQVRFUz15CitDT05GSUdfRFRfSURMRV9HRU5QRD15CisKKyMKKyMgUklTQy1WIENQVSBJ ZGxlIERyaXZlcnMKKyMKK0NPTkZJR19SSVNDVl9TQklfQ1BVSURMRT15CisjIGVuZCBvZiBSSVND LVYgQ1BVIElkbGUgRHJpdmVycworIyBlbmQgb2YgQ1BVIElkbGUKKworIworIyBDUFUgRnJlcXVl bmN5IHNjYWxpbmcKKyMKK0NPTkZJR19DUFVfRlJFUT15CitDT05GSUdfQ1BVX0ZSRVFfR09WX0FU VFJfU0VUPXkKK0NPTkZJR19DUFVfRlJFUV9HT1ZfQ09NTU9OPXkKK0NPTkZJR19DUFVfRlJFUV9T VEFUPXkKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0Cisj IENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAorQ09ORklH X0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EPXkKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFV TFRfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxU X0dPVl9TQ0hFRFVUSUwgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5D RT15CitDT05GSUdfQ1BVX0ZSRVFfR09WX1BPV0VSU0FWRT15CitDT05GSUdfQ1BVX0ZSRVFfR09W X1VTRVJTUEFDRT1tCitDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5EPXkKK0NPTkZJR19DUFVf RlJFUV9HT1ZfQ09OU0VSVkFUSVZFPW0KK0NPTkZJR19DUFVfRlJFUV9HT1ZfU0NIRURVVElMPXkK KworIworIyBDUFUgZnJlcXVlbmN5IHNjYWxpbmcgZHJpdmVycworIworQ09ORklHX0NQVUZSRVFf RFQ9bQorQ09ORklHX0NQVUZSRVFfRFRfUExBVERFVj15CisjIGVuZCBvZiBDUFUgRnJlcXVlbmN5 IHNjYWxpbmcKKyMgZW5kIG9mIENQVSBQb3dlciBNYW5hZ2VtZW50CisKK0NPTkZJR19IQVZFX0tW TV9FVkVOVEZEPXkKK0NPTkZJR19LVk1fTU1JTz15CitDT05GSUdfS1ZNX0dFTkVSSUNfRElSVFlM T0dfUkVBRF9QUk9URUNUPXkKK0NPTkZJR19IQVZFX0tWTV9WQ1BVX0FTWU5DX0lPQ1RMPXkKK0NP TkZJR19LVk1fWEZFUl9UT19HVUVTVF9XT1JLPXkKK0NPTkZJR19LVk1fR0VORVJJQ19IQVJEV0FS RV9FTkFCTElORz15CitDT05GSUdfVklSVFVBTElaQVRJT049eQorQ09ORklHX0tWTT15CisKKyMK KyMgR2VuZXJhbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IG9wdGlvbnMKKyMKK0NPTkZJR19DUkFT SF9DT1JFPXkKK0NPTkZJR19LRVhFQ19DT1JFPXkKK0NPTkZJR19LUFJPQkVTPXkKK0NPTkZJR19K VU1QX0xBQkVMPXkKKyMgQ09ORklHX1NUQVRJQ19LRVlTX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NP TkZJR19LUFJPQkVTX09OX0ZUUkFDRT15CitDT05GSUdfVVBST0JFUz15CitDT05GSUdfSEFWRV82 NEJJVF9BTElHTkVEX0FDQ0VTUz15CitDT05GSUdfS1JFVFBST0JFUz15CitDT05GSUdfS1JFVFBS T0JFX09OX1JFVEhPT0s9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVU UFJPQkVTPXkKK0NPTkZJR19IQVZFX0tQUk9CRVNfT05fRlRSQUNFPXkKK0NPTkZJR19IQVZFX0ZV TkNUSU9OX0VSUk9SX0lOSkVDVElPTj15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15 CitDT05GSUdfSEFWRV9BUkNIX1RSQUNFSE9PSz15CitDT05GSUdfSEFWRV9ETUFfQ09OVElHVU9V Uz15CitDT05GSUdfR0VORVJJQ19TTVBfSURMRV9USFJFQUQ9eQorQ09ORklHX0dFTkVSSUNfSURM RV9QT0xMX1NFVFVQPXkKK0NPTkZJR19BUkNIX0hBU19GT1JUSUZZX1NPVVJDRT15CitDT05GSUdf QVJDSF9IQVNfU0VUX01FTU9SWT15CitDT05GSUdfQVJDSF9IQVNfU0VUX0RJUkVDVF9NQVA9eQor Q09ORklHX0hBVkVfQVJDSF9USFJFQURfU1RSVUNUX1dISVRFTElTVD15CitDT05GSUdfSEFWRV9B U01fTU9EVkVSU0lPTlM9eQorQ09ORklHX0hBVkVfUkVHU19BTkRfU1RBQ0tfQUNDRVNTX0FQST15 CitDT05GSUdfSEFWRV9SU0VRPXkKK0NPTkZJR19IQVZFX0ZVTkNUSU9OX0FSR19BQ0NFU1NfQVBJ PXkKK0NPTkZJR19IQVZFX1BFUkZfUkVHUz15CitDT05GSUdfSEFWRV9QRVJGX1VTRVJfU1RBQ0tf RFVNUD15CitDT05GSUdfSEFWRV9BUkNIX0pVTVBfTEFCRUw9eQorQ09ORklHX0hBVkVfQVJDSF9K VU1QX0xBQkVMX1JFTEFUSVZFPXkKK0NPTkZJR19IQVZFX0FSQ0hfU0VDQ09NUD15CitDT05GSUdf SEFWRV9BUkNIX1NFQ0NPTVBfRklMVEVSPXkKK0NPTkZJR19TRUNDT01QPXkKK0NPTkZJR19TRUND T01QX0ZJTFRFUj15CisjIENPTkZJR19TRUNDT01QX0NBQ0hFX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19IQVZFX1NUQUNLUFJPVEVDVE9SPXkKK0NPTkZJR19TVEFDS1BST1RFQ1RPUj15CitDT05G SUdfU1RBQ0tQUk9URUNUT1JfU1RST05HPXkKK0NPTkZJR19MVE9fTk9ORT15CitDT05GSUdfSEFW RV9DT05URVhUX1RSQUNLSU5HX1VTRVI9eQorQ09ORklHX0hBVkVfVklSVF9DUFVfQUNDT1VOVElO R19HRU49eQorQ09ORklHX0hBVkVfSVJRX1RJTUVfQUNDT1VOVElORz15CitDT05GSUdfSEFWRV9N T1ZFX1BVRD15CitDT05GSUdfSEFWRV9NT1ZFX1BNRD15CitDT05GSUdfSEFWRV9BUkNIX1RSQU5T UEFSRU5UX0hVR0VQQUdFPXkKK0NPTkZJR19IQVZFX0FSQ0hfSFVHRV9WTUFQPXkKK0NPTkZJR19I QVZFX0FSQ0hfSFVHRV9WTUFMTE9DPXkKK0NPTkZJR19BUkNIX1dBTlRfSFVHRV9QTURfU0hBUkU9 eQorQ09ORklHX0hBVkVfTU9EX0FSQ0hfU1BFQ0lGSUM9eQorQ09ORklHX01PRFVMRVNfVVNFX0VM Rl9SRUxBPXkKK0NPTkZJR19BUkNIX0hBU19FTEZfUkFORE9NSVpFPXkKK0NPTkZJR19IQVZFX0FS Q0hfTU1BUF9STkRfQklUUz15CitDT05GSUdfQVJDSF9NTUFQX1JORF9CSVRTPTE4CitDT05GSUdf SEFWRV9BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTPXkKK0NPTkZJR19BUkNIX01NQVBfUk5EX0NP TVBBVF9CSVRTPTExCitDT05GSUdfUEFHRV9TSVpFX0xFU1NfVEhBTl82NEtCPXkKK0NPTkZJR19Q QUdFX1NJWkVfTEVTU19USEFOXzI1NktCPXkKK0NPTkZJR19BUkNIX1dBTlRfREVGQVVMVF9UT1BE T1dOX01NQVBfTEFZT1VUPXkKK0NPTkZJR19DTE9ORV9CQUNLV0FSRFM9eQorQ09ORklHX0NPTVBB VF8zMkJJVF9USU1FPXkKK0NPTkZJR19IQVZFX0FSQ0hfVk1BUF9TVEFDSz15CitDT05GSUdfVk1B UF9TVEFDSz15CitDT05GSUdfQVJDSF9PUFRJT05BTF9LRVJORUxfUldYPXkKK0NPTkZJR19BUkNI X09QVElPTkFMX0tFUk5FTF9SV1hfREVGQVVMVD15CitDT05GSUdfQVJDSF9IQVNfU1RSSUNUX0tF Uk5FTF9SV1g9eQorQ09ORklHX1NUUklDVF9LRVJORUxfUldYPXkKK0NPTkZJR19BUkNIX0hBU19T VFJJQ1RfTU9EVUxFX1JXWD15CitDT05GSUdfU1RSSUNUX01PRFVMRV9SV1g9eQorQ09ORklHX0FS Q0hfVVNFX01FTVJFTUFQX1BST1Q9eQorIyBDT05GSUdfTE9DS19FVkVOVF9DT1VOVFMgaXMgbm90 IHNldAorQ09ORklHX0FSQ0hfV0FOVF9MRF9PUlBIQU5fV0FSTj15CitDT05GSUdfQVJDSF9TVVBQ T1JUU19ERUJVR19QQUdFQUxMT0M9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfUEFHRV9UQUJMRV9D SEVDSz15CisKKyMKKyMgR0NPVi1iYXNlZCBrZXJuZWwgcHJvZmlsaW5nCisjCisjIENPTkZJR19H Q09WX0tFUk5FTCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfR0NPVl9QUk9GSUxFX0FMTD15 CisjIGVuZCBvZiBHQ09WLWJhc2VkIGtlcm5lbCBwcm9maWxpbmcKKworQ09ORklHX0hBVkVfR0ND X1BMVUdJTlM9eQorIyBDT05GSUdfR0NDX1BMVUdJTlMgaXMgbm90IHNldAorQ09ORklHX0ZVTkNU SU9OX0FMSUdOTUVOVD0wCisjIGVuZCBvZiBHZW5lcmFsIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQg b3B0aW9ucworCitDT05GSUdfUlRfTVVURVhFUz15CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05G SUdfTU9EVUxFUz15CitDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQ9eQorQ09ORklHX01PRFVMRV9V TkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJ R19NT0RVTEVfVU5MT0FEX1RBSU5UX1RSQUNLSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RWRVJT SU9OUz15CitDT05GSUdfQVNNX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJT SU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU0lHIGlzIG5vdCBzZXQKK0NPTkZJ R19NT0RVTEVfQ09NUFJFU1NfTk9ORT15CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1NfR1pJUCBp cyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1NfWFogaXMgbm90IHNldAorIyBDT05G SUdfTU9EVUxFX0NPTVBSRVNTX1pTVEQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX0FMTE9X X01JU1NJTkdfTkFNRVNQQUNFX0lNUE9SVFMgaXMgbm90IHNldAorQ09ORklHX01PRFBST0JFX1BB VEg9Ii9zYmluL21vZHByb2JlIgorIyBDT05GSUdfVFJJTV9VTlVTRURfS1NZTVMgaXMgbm90IHNl dAorQ09ORklHX01PRFVMRVNfVFJFRV9MT09LVVA9eQorQ09ORklHX0JMT0NLPXkKK0NPTkZJR19C TE9DS19MRUdBQ1lfQVVUT0xPQUQ9eQorQ09ORklHX0JMS19SUV9BTExPQ19USU1FPXkKK0NPTkZJ R19CTEtfQ0dST1VQX1JXU1RBVD15CitDT05GSUdfQkxLX0RFVl9CU0dfQ09NTU9OPXkKK0NPTkZJ R19CTEtfSUNRPXkKK0NPTkZJR19CTEtfREVWX0JTR0xJQj15CitDT05GSUdfQkxLX0RFVl9JTlRF R1JJVFk9eQorQ09ORklHX0JMS19ERVZfSU5URUdSSVRZX1QxMD15CitDT05GSUdfQkxLX0RFVl9a T05FRD15CitDT05GSUdfQkxLX0RFVl9USFJPVFRMSU5HPXkKKyMgQ09ORklHX0JMS19ERVZfVEhS T1RUTElOR19MT1cgaXMgbm90IHNldAorQ09ORklHX0JMS19XQlQ9eQorQ09ORklHX0JMS19XQlRf TVE9eQorQ09ORklHX0JMS19DR1JPVVBfSU9MQVRFTkNZPXkKKyMgQ09ORklHX0JMS19DR1JPVVBf RkNfQVBQSUQgaXMgbm90IHNldAorQ09ORklHX0JMS19DR1JPVVBfSU9DT1NUPXkKK0NPTkZJR19C TEtfQ0dST1VQX0lPUFJJTz15CitDT05GSUdfQkxLX0RFQlVHX0ZTPXkKK0NPTkZJR19CTEtfREVC VUdfRlNfWk9ORUQ9eQorIyBDT05GSUdfQkxLX1NFRF9PUEFMIGlzIG5vdCBzZXQKK0NPTkZJR19C TEtfSU5MSU5FX0VOQ1JZUFRJT049eQorQ09ORklHX0JMS19JTkxJTkVfRU5DUllQVElPTl9GQUxM QkFDSz15CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFO Q0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BSVhf UEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19PU0ZfUEFSVElUSU9OPXkKKyMgQ09ORklHX0FN SUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQVRBUklfUEFSVElUSU9OPXkKK0NPTkZJ R19NQUNfUEFSVElUSU9OPXkKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX0JTRF9E SVNLTEFCRUw9eQorIyBDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJ R19TT0xBUklTX1g4Nl9QQVJUSVRJT049eQorQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15CitD T05GSUdfTERNX1BBUlRJVElPTj15CisjIENPTkZJR19MRE1fREVCVUcgaXMgbm90IHNldAorQ09O RklHX1NHSV9QQVJUSVRJT049eQorQ09ORklHX1VMVFJJWF9QQVJUSVRJT049eQorQ09ORklHX1NV Tl9QQVJUSVRJT049eQorQ09ORklHX0tBUk1BX1BBUlRJVElPTj15CitDT05GSUdfRUZJX1BBUlRJ VElPTj15CitDT05GSUdfU1lTVjY4X1BBUlRJVElPTj15CisjIENPTkZJR19DTURMSU5FX1BBUlRJ VElPTiBpcyBub3Qgc2V0CisjIGVuZCBvZiBQYXJ0aXRpb24gVHlwZXMKKworQ09ORklHX0JMS19N UV9QQ0k9eQorQ09ORklHX0JMS19NUV9WSVJUSU89eQorQ09ORklHX0JMS19NUV9SRE1BPXkKK0NP TkZJR19CTEtfUE09eQorQ09ORklHX0JMT0NLX0hPTERFUl9ERVBSRUNBVEVEPXkKK0NPTkZJR19C TEtfTVFfU1RBQ0tJTkc9eQorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19NUV9JT1ND SEVEX0RFQURMSU5FPXkKK0NPTkZJR19NUV9JT1NDSEVEX0tZQkVSPXkKK0NPTkZJR19JT1NDSEVE X0JGUT15CitDT05GSUdfQkZRX0dST1VQX0lPU0NIRUQ9eQorIyBDT05GSUdfQkZRX0NHUk9VUF9E RUJVRyBpcyBub3Qgc2V0CisjIGVuZCBvZiBJTyBTY2hlZHVsZXJzCisKK0NPTkZJR19QUkVFTVBU X05PVElGSUVSUz15CitDT05GSUdfUEFEQVRBPXkKK0NPTkZJR19BU04xPXkKK0NPTkZJR19JTkxJ TkVfU1BJTl9VTkxPQ0tfSVJRPXkKK0NPTkZJR19JTkxJTkVfUkVBRF9VTkxPQ0s9eQorQ09ORklH X0lOTElORV9SRUFEX1VOTE9DS19JUlE9eQorQ09ORklHX0lOTElORV9XUklURV9VTkxPQ0s9eQor Q09ORklHX0lOTElORV9XUklURV9VTkxPQ0tfSVJRPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FU T01JQ19STVc9eQorQ09ORklHX01VVEVYX1NQSU5fT05fT1dORVI9eQorQ09ORklHX1JXU0VNX1NQ SU5fT05fT1dORVI9eQorQ09ORklHX0xPQ0tfU1BJTl9PTl9PV05FUj15CitDT05GSUdfQVJDSF9V U0VfUVVFVUVEX1JXTE9DS1M9eQorQ09ORklHX1FVRVVFRF9SV0xPQ0tTPXkKK0NPTkZJR19BUkNI X0hBU19NTUlPV0I9eQorQ09ORklHX01NSU9XQj15CitDT05GSUdfRlJFRVpFUj15CisKKyMKKyMg RXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKK0NPTkZJR19D T01QQVRfQklORk1UX0VMRj15CitDT05GSUdfRUxGQ09SRT15CitDT05GSUdfQ09SRV9EVU1QX0RF RkFVTFRfRUxGX0hFQURFUlM9eQorQ09ORklHX0JJTkZNVF9TQ1JJUFQ9eQorQ09ORklHX0FSQ0hf SEFTX0JJTkZNVF9GTEFUPXkKKyMgQ09ORklHX0JJTkZNVF9GTEFUIGlzIG5vdCBzZXQKK0NPTkZJ R19CSU5GTVRfTUlTQz1tCitDT05GSUdfQ09SRURVTVA9eQorIyBlbmQgb2YgRXhlY3V0YWJsZSBm aWxlIGZvcm1hdHMKKworIworIyBNZW1vcnkgTWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdf WlBPT0w9eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1pTV0FQPXkKKyMgQ09ORklHX1pTV0FQX0RF RkFVTFRfT04gaXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX0RF RkxBVEUgaXMgbm90IHNldAorQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9MWk89eQor IyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUXzg0MiBpcyBub3Qgc2V0CisjIENPTkZJ R19aU1dBUF9DT01QUkVTU09SX0RFRkFVTFRfTFo0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQ X0NPTVBSRVNTT1JfREVGQVVMVF9MWjRIQyBpcyBub3Qgc2V0CisjIENPTkZJR19aU1dBUF9DT01Q UkVTU09SX0RFRkFVTFRfWlNURCBpcyBub3Qgc2V0CitDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9E RUZBVUxUPSJsem8iCitDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9aQlVEPXkKKyMgQ09ORklH X1pTV0FQX1pQT09MX0RFRkFVTFRfWjNGT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX1pQ T09MX0RFRkFVTFRfWlNNQUxMT0MgaXMgbm90IHNldAorQ09ORklHX1pTV0FQX1pQT09MX0RFRkFV TFQ9InpidWQiCitDT05GSUdfWkJVRD15CitDT05GSUdfWjNGT0xEPW0KK0NPTkZJR19aU01BTExP Qz15CisjIENPTkZJR19aU01BTExPQ19TVEFUIGlzIG5vdCBzZXQKK0NPTkZJR19aU01BTExPQ19D SEFJTl9TSVpFPTgKKworIworIyBTTEFCIGFsbG9jYXRvciBvcHRpb25zCisjCisjIENPTkZJR19T TEFCIGlzIG5vdCBzZXQKK0NPTkZJR19TTFVCPXkKKyMgQ09ORklHX1NMT0JfREVQUkVDQVRFRCBp cyBub3Qgc2V0CisjIENPTkZJR19TTFVCX1RJTlkgaXMgbm90IHNldAorQ09ORklHX1NMQUJfTUVS R0VfREVGQVVMVD15CitDT05GSUdfU0xBQl9GUkVFTElTVF9SQU5ET009eQorQ09ORklHX1NMQUJf RlJFRUxJU1RfSEFSREVORUQ9eQorIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CitDT05G SUdfU0xVQl9DUFVfUEFSVElBTD15CisjIGVuZCBvZiBTTEFCIGFsbG9jYXRvciBvcHRpb25zCisK K0NPTkZJR19TSFVGRkxFX1BBR0VfQUxMT0NBVE9SPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMg bm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX1NQQVJTRU1FTV9N QU5VQUw9eQorQ09ORklHX1NQQVJTRU1FTT15CitDT05GSUdfU1BBUlNFTUVNX0VYVFJFTUU9eQor Q09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRT15CitDT05GSUdfU1BBUlNFTUVNX1ZNRU1N QVA9eQorQ09ORklHX01FTU9SWV9JU09MQVRJT049eQorQ09ORklHX0VYQ0xVU0lWRV9TWVNURU1f UkFNPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CitDT05GSUdfQVJDSF9FTkFCTEVfU1BM SVRfUE1EX1BUTE9DSz15CitDT05GSUdfTUVNT1JZX0JBTExPT049eQorQ09ORklHX0JBTExPT05f Q09NUEFDVElPTj15CitDT05GSUdfQ09NUEFDVElPTj15CitDT05GSUdfQ09NUEFDVF9VTkVWSUNU QUJMRV9ERUZBVUxUPTEKK0NPTkZJR19QQUdFX1JFUE9SVElORz15CitDT05GSUdfTUlHUkFUSU9O PXkKK0NPTkZJR19BUkNIX0VOQUJMRV9IVUdFUEFHRV9NSUdSQVRJT049eQorQ09ORklHX0FSQ0hf RU5BQkxFX1RIUF9NSUdSQVRJT049eQorQ09ORklHX0NPTlRJR19BTExPQz15CitDT05GSUdfUEhZ U19BRERSX1RfNjRCSVQ9eQorQ09ORklHX01NVV9OT1RJRklFUj15CitDT05GSUdfS1NNPXkKK0NP TkZJR19ERUZBVUxUX01NQVBfTUlOX0FERFI9NjU1MzYKK0NPTkZJR19BUkNIX1dBTlRfR0VORVJB TF9IVUdFVExCPXkKK0NPTkZJR19BUkNIX1dBTlRTX1RIUF9TV0FQPXkKK0NPTkZJR19UUkFOU1BB UkVOVF9IVUdFUEFHRT15CisjIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRV9BTFdBWVMgaXMg bm90IHNldAorQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFX01BRFZJU0U9eQorQ09ORklHX1RI UF9TV0FQPXkKK0NPTkZJR19SRUFEX09OTFlfVEhQX0ZPUl9GUz15CitDT05GSUdfTkVFRF9QRVJf Q1BVX0VNQkVEX0ZJUlNUX0NIVU5LPXkKK0NPTkZJR19VU0VfUEVSQ1BVX05VTUFfTk9ERV9JRD15 CitDT05GSUdfRlJPTlRTV0FQPXkKK0NPTkZJR19DTUE9eQorIyBDT05GSUdfQ01BX0RFQlVHIGlz IG5vdCBzZXQKKyMgQ09ORklHX0NNQV9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19DTUFfU1lT RlM9eQorQ09ORklHX0NNQV9BUkVBUz03CitDT05GSUdfR0VORVJJQ19FQVJMWV9JT1JFTUFQPXkK K0NPTkZJR19ERUZFUlJFRF9TVFJVQ1RfUEFHRV9JTklUPXkKK0NPTkZJR19QQUdFX0lETEVfRkxB Rz15CisjIENPTkZJR19JRExFX1BBR0VfVFJBQ0tJTkcgaXMgbm90IHNldAorQ09ORklHX0FSQ0hf SEFTX0NVUlJFTlRfU1RBQ0tfUE9JTlRFUj15CitDT05GSUdfWk9ORV9ETUEzMj15CitDT05GSUdf SE1NX01JUlJPUj15CitDT05GSUdfR0VUX0ZSRUVfUkVHSU9OPXkKK0NPTkZJR19WTV9FVkVOVF9D T1VOVEVSUz15CisjIENPTkZJR19QRVJDUFVfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfR1VQ X1RFU1QgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX1BURV9TUEVDSUFMPXkKK0NPTkZJR19T RUNSRVRNRU09eQorQ09ORklHX0FOT05fVk1BX05BTUU9eQorQ09ORklHX1VTRVJGQVVMVEZEPXkK K0NPTkZJR19MUlVfR0VOPXkKKyMgQ09ORklHX0xSVV9HRU5fRU5BQkxFRCBpcyBub3Qgc2V0Cisj IENPTkZJR19MUlVfR0VOX1NUQVRTIGlzIG5vdCBzZXQKKworIworIyBEYXRhIEFjY2VzcyBNb25p dG9yaW5nCisjCitDT05GSUdfREFNT049eQorQ09ORklHX0RBTU9OX1ZBRERSPXkKK0NPTkZJR19E QU1PTl9QQUREUj15CitDT05GSUdfREFNT05fU1lTRlM9eQorQ09ORklHX0RBTU9OX0RCR0ZTPXkK K0NPTkZJR19EQU1PTl9SRUNMQUlNPXkKKyMgQ09ORklHX0RBTU9OX0xSVV9TT1JUIGlzIG5vdCBz ZXQKKyMgZW5kIG9mIERhdGEgQWNjZXNzIE1vbml0b3JpbmcKKyMgZW5kIG9mIE1lbW9yeSBNYW5h Z2VtZW50IG9wdGlvbnMKKworQ09ORklHX05FVD15CitDT05GSUdfQ09NUEFUX05FVExJTktfTUVT U0FHRVM9eQorQ09ORklHX05FVF9JTkdSRVNTPXkKK0NPTkZJR19ORVRfRUdSRVNTPXkKK0NPTkZJ R19ORVRfUkVESVJFQ1Q9eQorQ09ORklHX1NLQl9FWFRFTlNJT05TPXkKKworIworIyBOZXR3b3Jr aW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9bQorQ09ORklHX1BBQ0tFVF9ESUFHPW0KK0NP TkZJR19VTklYPXkKK0NPTkZJR19VTklYX1NDTT15CitDT05GSUdfQUZfVU5JWF9PT0I9eQorQ09O RklHX1VOSVhfRElBRz1tCitDT05GSUdfVExTPW0KK0NPTkZJR19UTFNfREVWSUNFPXkKKyMgQ09O RklHX1RMU19UT0UgaXMgbm90IHNldAorQ09ORklHX1hGUk09eQorQ09ORklHX1hGUk1fT0ZGTE9B RD15CitDT05GSUdfWEZSTV9BTEdPPW0KK0NPTkZJR19YRlJNX1VTRVI9bQorQ09ORklHX1hGUk1f SU5URVJGQUNFPW0KK0NPTkZJR19YRlJNX1NVQl9QT0xJQ1k9eQorQ09ORklHX1hGUk1fTUlHUkFU RT15CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorQ09ORklHX1hGUk1fQUg9 bQorQ09ORklHX1hGUk1fRVNQPW0KK0NPTkZJR19YRlJNX0lQQ09NUD1tCitDT05GSUdfTkVUX0tF WT1tCitDT05GSUdfTkVUX0tFWV9NSUdSQVRFPXkKK0NPTkZJR19YRlJNX0VTUElOVENQPXkKK0NP TkZJR19TTUM9bQorQ09ORklHX1NNQ19ESUFHPW0KK0NPTkZJR19YRFBfU09DS0VUUz15CitDT05G SUdfWERQX1NPQ0tFVFNfRElBRz1tCitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNU PXkKK0NPTkZJR19JUF9BRFZBTkNFRF9ST1VURVI9eQorIyBDT05GSUdfSVBfRklCX1RSSUVfU1RB VFMgaXMgbm90IHNldAorQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15CitDT05GSUdfSVBfUk9V VEVfTVVMVElQQVRIPXkKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19JUF9ST1VU RV9DTEFTU0lEPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKK0NPTkZJ R19JUF9QTlBfQk9PVFA9eQorQ09ORklHX0lQX1BOUF9SQVJQPXkKK0NPTkZJR19ORVRfSVBJUD1t CitDT05GSUdfTkVUX0lQR1JFX0RFTVVYPW0KK0NPTkZJR19ORVRfSVBfVFVOTkVMPW0KK0NPTkZJ R19ORVRfSVBHUkU9bQorQ09ORklHX05FVF9JUEdSRV9CUk9BRENBU1Q9eQorQ09ORklHX0lQX01S T1VURV9DT01NT049eQorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfTVJPVVRFX01VTFRJ UExFX1RBQkxFUz15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkK K0NPTkZJR19TWU5fQ09PS0lFUz15CitDT05GSUdfTkVUX0lQVlRJPW0KK0NPTkZJR19ORVRfVURQ X1RVTk5FTD1tCitDT05GSUdfTkVUX0ZPVT1tCitDT05GSUdfTkVUX0ZPVV9JUF9UVU5ORUxTPXkK K0NPTkZJR19JTkVUX0FIPW0KK0NPTkZJR19JTkVUX0VTUD1tCitDT05GSUdfSU5FVF9FU1BfT0ZG TE9BRD1tCitDT05GSUdfSU5FVF9FU1BJTlRDUD15CitDT05GSUdfSU5FVF9JUENPTVA9bQorQ09O RklHX0lORVRfVEFCTEVfUEVSVFVSQl9PUkRFUj0xNgorQ09ORklHX0lORVRfWEZSTV9UVU5ORUw9 bQorQ09ORklHX0lORVRfVFVOTkVMPW0KK0NPTkZJR19JTkVUX0RJQUc9bQorQ09ORklHX0lORVRf VENQX0RJQUc9bQorQ09ORklHX0lORVRfVURQX0RJQUc9bQorQ09ORklHX0lORVRfUkFXX0RJQUc9 bQorIyBDT05GSUdfSU5FVF9ESUFHX0RFU1RST1kgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05H X0FEVkFOQ0VEPXkKK0NPTkZJR19UQ1BfQ09OR19CSUM9bQorQ09ORklHX1RDUF9DT05HX0NVQklD PXkKK0NPTkZJR19UQ1BfQ09OR19XRVNUV09PRD1tCitDT05GSUdfVENQX0NPTkdfSFRDUD1tCitD T05GSUdfVENQX0NPTkdfSFNUQ1A9bQorQ09ORklHX1RDUF9DT05HX0hZQkxBPW0KK0NPTkZJR19U Q1BfQ09OR19WRUdBUz1tCitDT05GSUdfVENQX0NPTkdfTlY9bQorQ09ORklHX1RDUF9DT05HX1ND QUxBQkxFPW0KK0NPTkZJR19UQ1BfQ09OR19MUD1tCitDT05GSUdfVENQX0NPTkdfVkVOTz1tCitD T05GSUdfVENQX0NPTkdfWUVBSD1tCitDT05GSUdfVENQX0NPTkdfSUxMSU5PSVM9bQorQ09ORklH X1RDUF9DT05HX0RDVENQPW0KK0NPTkZJR19UQ1BfQ09OR19DREc9bQorQ09ORklHX1RDUF9DT05H X0JCUj1tCitDT05GSUdfREVGQVVMVF9DVUJJQz15CisjIENPTkZJR19ERUZBVUxUX1JFTk8gaXMg bm90IHNldAorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorQ09ORklHX1RDUF9NRDVT SUc9eQorQ09ORklHX0lQVjY9eQorQ09ORklHX0lQVjZfUk9VVEVSX1BSRUY9eQorQ09ORklHX0lQ VjZfUk9VVEVfSU5GTz15CisjIENPTkZJR19JUFY2X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQK K0NPTkZJR19JTkVUNl9BSD1tCitDT05GSUdfSU5FVDZfRVNQPW0KK0NPTkZJR19JTkVUNl9FU1Bf T0ZGTE9BRD1tCitDT05GSUdfSU5FVDZfRVNQSU5UQ1A9eQorQ09ORklHX0lORVQ2X0lQQ09NUD1t CitDT05GSUdfSVBWNl9NSVA2PW0KK0NPTkZJR19JUFY2X0lMQT1tCitDT05GSUdfSU5FVDZfWEZS TV9UVU5ORUw9bQorQ09ORklHX0lORVQ2X1RVTk5FTD1tCitDT05GSUdfSVBWNl9WVEk9bQorQ09O RklHX0lQVjZfU0lUPW0KK0NPTkZJR19JUFY2X1NJVF82UkQ9eQorQ09ORklHX0lQVjZfTkRJU0Nf Tk9ERVRZUEU9eQorQ09ORklHX0lQVjZfVFVOTkVMPW0KK0NPTkZJR19JUFY2X0dSRT1tCitDT05G SUdfSVBWNl9GT1U9bQorQ09ORklHX0lQVjZfRk9VX1RVTk5FTD1tCitDT05GSUdfSVBWNl9NVUxU SVBMRV9UQUJMRVM9eQorQ09ORklHX0lQVjZfU1VCVFJFRVM9eQorQ09ORklHX0lQVjZfTVJPVVRF PXkKK0NPTkZJR19JUFY2X01ST1VURV9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQVjZfUElN U01fVjI9eQorQ09ORklHX0lQVjZfU0VHNl9MV1RVTk5FTD15CitDT05GSUdfSVBWNl9TRUc2X0hN QUM9eQorQ09ORklHX0lQVjZfU0VHNl9CUEY9eQorQ09ORklHX0lQVjZfUlBMX0xXVFVOTkVMPXkK K0NPTkZJR19JUFY2X0lPQU02X0xXVFVOTkVMPXkKK0NPTkZJR19ORVRMQUJFTD15CitDT05GSUdf TVBUQ1A9eQorQ09ORklHX0lORVRfTVBUQ1BfRElBRz1tCitDT05GSUdfTVBUQ1BfSVBWNj15CitD T05GSUdfTkVUV09SS19TRUNNQVJLPXkKK0NPTkZJR19ORVRfUFRQX0NMQVNTSUZZPXkKKyMgQ09O RklHX05FVFdPUktfUEhZX1RJTUVTVEFNUElORyBpcyBub3Qgc2V0CitDT05GSUdfTkVURklMVEVS PXkKK0NPTkZJR19ORVRGSUxURVJfQURWQU5DRUQ9eQorQ09ORklHX0JSSURHRV9ORVRGSUxURVI9 bQorCisjCisjIENvcmUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORVRGSUxU RVJfSU5HUkVTUz15CitDT05GSUdfTkVURklMVEVSX0VHUkVTUz15CitDT05GSUdfTkVURklMVEVS X1NLSVBfRUdSRVNTPXkKK0NPTkZJR19ORVRGSUxURVJfTkVUTElOSz1tCitDT05GSUdfTkVURklM VEVSX0ZBTUlMWV9CUklER0U9eQorQ09ORklHX05FVEZJTFRFUl9GQU1JTFlfQVJQPXkKK0NPTkZJ R19ORVRGSUxURVJfTkVUTElOS19IT09LPW0KK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19BQ0NU PW0KK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19RVUVVRT1tCitDT05GSUdfTkVURklMVEVSX05F VExJTktfTE9HPW0KK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19PU0Y9bQorQ09ORklHX05GX0NP Tk5UUkFDSz1tCitDT05GSUdfTkZfTE9HX1NZU0xPRz1tCitDT05GSUdfTkVURklMVEVSX0NPTk5D T1VOVD1tCitDT05GSUdfTkZfQ09OTlRSQUNLX01BUks9eQorQ09ORklHX05GX0NPTk5UUkFDS19T RUNNQVJLPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfWk9ORVM9eQorQ09ORklHX05GX0NPTk5UUkFD S19QUk9DRlM9eQorQ09ORklHX05GX0NPTk5UUkFDS19FVkVOVFM9eQorQ09ORklHX05GX0NPTk5U UkFDS19USU1FT1VUPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfVElNRVNUQU1QPXkKK0NPTkZJR19O Rl9DT05OVFJBQ0tfTEFCRUxTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfT1ZTPXkKK0NPTkZJR19O Rl9DVF9QUk9UT19EQ0NQPXkKK0NPTkZJR19ORl9DVF9QUk9UT19HUkU9eQorQ09ORklHX05GX0NU X1BST1RPX1NDVFA9eQorQ09ORklHX05GX0NUX1BST1RPX1VEUExJVEU9eQorQ09ORklHX05GX0NP Tk5UUkFDS19BTUFOREE9bQorQ09ORklHX05GX0NPTk5UUkFDS19GVFA9bQorQ09ORklHX05GX0NP Tk5UUkFDS19IMzIzPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfSVJDPW0KK0NPTkZJR19ORl9DT05O VFJBQ0tfQlJPQURDQVNUPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfTkVUQklPU19OUz1tCitDT05G SUdfTkZfQ09OTlRSQUNLX1NOTVA9bQorQ09ORklHX05GX0NPTk5UUkFDS19QUFRQPW0KK0NPTkZJ R19ORl9DT05OVFJBQ0tfU0FORT1tCitDT05GSUdfTkZfQ09OTlRSQUNLX1NJUD1tCitDT05GSUdf TkZfQ09OTlRSQUNLX1RGVFA9bQorQ09ORklHX05GX0NUX05FVExJTks9bQorQ09ORklHX05GX0NU X05FVExJTktfVElNRU9VVD1tCitDT05GSUdfTkZfQ1RfTkVUTElOS19IRUxQRVI9bQorQ09ORklH X05FVEZJTFRFUl9ORVRMSU5LX0dMVUVfQ1Q9eQorQ09ORklHX05GX05BVD1tCitDT05GSUdfTkZf TkFUX0FNQU5EQT1tCitDT05GSUdfTkZfTkFUX0ZUUD1tCitDT05GSUdfTkZfTkFUX0lSQz1tCitD T05GSUdfTkZfTkFUX1NJUD1tCitDT05GSUdfTkZfTkFUX1RGVFA9bQorQ09ORklHX05GX05BVF9S RURJUkVDVD15CitDT05GSUdfTkZfTkFUX01BU1FVRVJBREU9eQorQ09ORklHX05GX05BVF9PVlM9 eQorQ09ORklHX05FVEZJTFRFUl9TWU5QUk9YWT1tCitDT05GSUdfTkZfVEFCTEVTPW0KK0NPTkZJ R19ORl9UQUJMRVNfSU5FVD15CitDT05GSUdfTkZfVEFCTEVTX05FVERFVj15CitDT05GSUdfTkZU X05VTUdFTj1tCitDT05GSUdfTkZUX0NUPW0KK0NPTkZJR19ORlRfRkxPV19PRkZMT0FEPW0KK0NP TkZJR19ORlRfQ09OTkxJTUlUPW0KK0NPTkZJR19ORlRfTE9HPW0KK0NPTkZJR19ORlRfTElNSVQ9 bQorQ09ORklHX05GVF9NQVNRPW0KK0NPTkZJR19ORlRfUkVESVI9bQorQ09ORklHX05GVF9OQVQ9 bQorQ09ORklHX05GVF9UVU5ORUw9bQorQ09ORklHX05GVF9RVUVVRT1tCitDT05GSUdfTkZUX1FV T1RBPW0KK0NPTkZJR19ORlRfUkVKRUNUPW0KK0NPTkZJR19ORlRfUkVKRUNUX0lORVQ9bQorQ09O RklHX05GVF9DT01QQVQ9bQorQ09ORklHX05GVF9IQVNIPW0KK0NPTkZJR19ORlRfRklCPW0KK0NP TkZJR19ORlRfRklCX0lORVQ9bQorQ09ORklHX05GVF9YRlJNPW0KK0NPTkZJR19ORlRfU09DS0VU PW0KK0NPTkZJR19ORlRfT1NGPW0KK0NPTkZJR19ORlRfVFBST1hZPW0KK0NPTkZJR19ORlRfU1lO UFJPWFk9bQorQ09ORklHX05GX0RVUF9ORVRERVY9bQorQ09ORklHX05GVF9EVVBfTkVUREVWPW0K K0NPTkZJR19ORlRfRldEX05FVERFVj1tCitDT05GSUdfTkZUX0ZJQl9ORVRERVY9bQorQ09ORklH X05GVF9SRUpFQ1RfTkVUREVWPW0KK0NPTkZJR19ORl9GTE9XX1RBQkxFX0lORVQ9bQorQ09ORklH X05GX0ZMT1dfVEFCTEU9bQorIyBDT05GSUdfTkZfRkxPV19UQUJMRV9QUk9DRlMgaXMgbm90IHNl dAorQ09ORklHX05FVEZJTFRFUl9YVEFCTEVTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRBQkxFU19D T01QQVQ9eQorCisjCisjIFh0YWJsZXMgY29tYmluZWQgbW9kdWxlcworIworQ09ORklHX05FVEZJ TFRFUl9YVF9NQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfQ09OTk1BUks9bQorQ09ORklHX05F VEZJTFRFUl9YVF9TRVQ9bQorCisjCisjIFh0YWJsZXMgdGFyZ2V0cworIworQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfQVVESVQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ0hFQ0tT VU09bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ0xBU1NJRlk9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfQ09OTk1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ09O TlNFQ01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ1Q9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9UQVJHRVRfRFNDUD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ITD1tCitD T05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ITUFSSz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RB UkdFVF9JRExFVElNRVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTEVEPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfVEFSR0VUX0xPRz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9N QVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTkFUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFS R0VUX05FVE1BUD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORkxPRz1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9ORlFVRVVFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VU X05PVFJBQ0s9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfUkFURUVTVD1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9SRURJUkVDVD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdF VF9NQVNRVUVSQURFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RFRT1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9UUFJPWFk9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRf VFJBQ0U9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfU0VDTUFSSz1tCitDT05GSUdfTkVU RklMVEVSX1hUX1RBUkdFVF9UQ1BNU1M9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVENQ T1BUU1RSSVA9bQorCisjCisjIFh0YWJsZXMgbWF0Y2hlcworIworQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9BRERSVFlQRT1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0JQRj1tCitDT05G SUdfTkVURklMVEVSX1hUX01BVENIX0NHUk9VUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENI X0NMVVNURVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT01NRU5UPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfTUFUQ0hfQ09OTkJZVEVTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf Q09OTkxBQkVMPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTkxJTUlUPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTk1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9DT05OVFJBQ0s9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DUFU9bQorQ09ORklHX05F VEZJTFRFUl9YVF9NQVRDSF9EQ0NQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfREVWR1JP VVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9EU0NQPW0KK0NPTkZJR19ORVRGSUxURVJf WFRfTUFUQ0hfRUNOPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRVNQPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfTUFUQ0hfSEFTSExJTUlUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf SEVMUEVSPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSEw9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9NQVRDSF9JUENPTVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9JUFJBTkdFPW0K K0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSVBWUz1tCitDT05GSUdfTkVURklMVEVSX1hUX01B VENIX0wyVFA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9MRU5HVEg9bQorQ09ORklHX05F VEZJTFRFUl9YVF9NQVRDSF9MSU1JVD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BQz1t CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9N QVRDSF9NVUxUSVBPUlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9ORkFDQ1Q9bQorQ09O RklHX05FVEZJTFRFUl9YVF9NQVRDSF9PU0Y9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9P V05FUj1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BPTElDWT1tCitDT05GSUdfTkVURklM VEVSX1hUX01BVENIX1BIWVNERVY9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9QS1RUWVBF PW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUVVPVEE9bQorQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9SQVRFRVNUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUkVBTE09bQorQ09O RklHX05FVEZJTFRFUl9YVF9NQVRDSF9SRUNFTlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9TQ1RQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU09DS0VUPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfTUFUQ0hfU1RBVEU9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFUSVNU SUM9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVFJJTkc9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9NQVRDSF9UQ1BNU1M9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9USU1FPW0KK0NP TkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfVTMyPW0KKyMgZW5kIG9mIENvcmUgTmV0ZmlsdGVyIENv bmZpZ3VyYXRpb24KKworQ09ORklHX0lQX1NFVD1tCitDT05GSUdfSVBfU0VUX01BWD0yNTYKK0NP TkZJR19JUF9TRVRfQklUTUFQX0lQPW0KK0NPTkZJR19JUF9TRVRfQklUTUFQX0lQTUFDPW0KK0NP TkZJR19JUF9TRVRfQklUTUFQX1BPUlQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQPW0KK0NPTkZJ R19JUF9TRVRfSEFTSF9JUE1BUks9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQUE9SVD1tCitDT05G SUdfSVBfU0VUX0hBU0hfSVBQT1JUSVA9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQUE9SVE5FVD1t CitDT05GSUdfSVBfU0VUX0hBU0hfSVBNQUM9bQorQ09ORklHX0lQX1NFVF9IQVNIX01BQz1tCitD T05GSUdfSVBfU0VUX0hBU0hfTkVUUE9SVE5FVD1tCitDT05GSUdfSVBfU0VUX0hBU0hfTkVUPW0K K0NPTkZJR19JUF9TRVRfSEFTSF9ORVRORVQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVFBPUlQ9 bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVElGQUNFPW0KK0NPTkZJR19JUF9TRVRfTElTVF9TRVQ9 bQorQ09ORklHX0lQX1ZTPW0KK0NPTkZJR19JUF9WU19JUFY2PXkKKyMgQ09ORklHX0lQX1ZTX0RF QlVHIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9WU19UQUJfQklUUz0xMgorCisjCisjIElQVlMgdHJh bnNwb3J0IHByb3RvY29sIGxvYWQgYmFsYW5jaW5nIHN1cHBvcnQKKyMKK0NPTkZJR19JUF9WU19Q Uk9UT19UQ1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX1VEUD15CitDT05GSUdfSVBfVlNfUFJPVE9f QUhfRVNQPXkKK0NPTkZJR19JUF9WU19QUk9UT19FU1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX0FI PXkKK0NPTkZJR19JUF9WU19QUk9UT19TQ1RQPXkKKworIworIyBJUFZTIHNjaGVkdWxlcgorIwor Q09ORklHX0lQX1ZTX1JSPW0KK0NPTkZJR19JUF9WU19XUlI9bQorQ09ORklHX0lQX1ZTX0xDPW0K K0NPTkZJR19JUF9WU19XTEM9bQorQ09ORklHX0lQX1ZTX0ZPPW0KK0NPTkZJR19JUF9WU19PVkY9 bQorQ09ORklHX0lQX1ZTX0xCTEM9bQorQ09ORklHX0lQX1ZTX0xCTENSPW0KK0NPTkZJR19JUF9W U19ESD1tCitDT05GSUdfSVBfVlNfU0g9bQorQ09ORklHX0lQX1ZTX01IPW0KK0NPTkZJR19JUF9W U19TRUQ9bQorQ09ORklHX0lQX1ZTX05RPW0KK0NPTkZJR19JUF9WU19UV09TPW0KKworIworIyBJ UFZTIFNIIHNjaGVkdWxlcgorIworQ09ORklHX0lQX1ZTX1NIX1RBQl9CSVRTPTgKKworIworIyBJ UFZTIE1IIHNjaGVkdWxlcgorIworQ09ORklHX0lQX1ZTX01IX1RBQl9JTkRFWD0xMgorCisjCisj IElQVlMgYXBwbGljYXRpb24gaGVscGVyCisjCitDT05GSUdfSVBfVlNfRlRQPW0KK0NPTkZJR19J UF9WU19ORkNUPXkKK0NPTkZJR19JUF9WU19QRV9TSVA9bQorCisjCisjIElQOiBOZXRmaWx0ZXIg Q29uZmlndXJhdGlvbgorIworQ09ORklHX05GX0RFRlJBR19JUFY0PW0KK0NPTkZJR19ORl9TT0NL RVRfSVBWND1tCitDT05GSUdfTkZfVFBST1hZX0lQVjQ9bQorQ09ORklHX05GX1RBQkxFU19JUFY0 PXkKK0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bQorQ09ORklHX05GVF9EVVBfSVBWND1tCitDT05G SUdfTkZUX0ZJQl9JUFY0PW0KK0NPTkZJR19ORl9UQUJMRVNfQVJQPXkKK0NPTkZJR19ORl9EVVBf SVBWND1tCitDT05GSUdfTkZfTE9HX0FSUD1tCitDT05GSUdfTkZfTE9HX0lQVjQ9bQorQ09ORklH X05GX1JFSkVDVF9JUFY0PW0KK0NPTkZJR19ORl9OQVRfU05NUF9CQVNJQz1tCitDT05GSUdfTkZf TkFUX1BQVFA9bQorQ09ORklHX05GX05BVF9IMzIzPW0KK0NPTkZJR19JUF9ORl9JUFRBQkxFUz1t CitDT05GSUdfSVBfTkZfTUFUQ0hfQUg9bQorQ09ORklHX0lQX05GX01BVENIX0VDTj1tCitDT05G SUdfSVBfTkZfTUFUQ0hfUlBGSUxURVI9bQorQ09ORklHX0lQX05GX01BVENIX1RUTD1tCitDT05G SUdfSVBfTkZfRklMVEVSPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfUkVKRUNUPW0KK0NPTkZJR19J UF9ORl9UQVJHRVRfU1lOUFJPWFk9bQorQ09ORklHX0lQX05GX05BVD1tCitDT05GSUdfSVBfTkZf VEFSR0VUX01BU1FVRVJBREU9bQorQ09ORklHX0lQX05GX1RBUkdFVF9ORVRNQVA9bQorQ09ORklH X0lQX05GX1RBUkdFVF9SRURJUkVDVD1tCitDT05GSUdfSVBfTkZfTUFOR0xFPW0KK0NPTkZJR19J UF9ORl9UQVJHRVRfRUNOPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfVFRMPW0KK0NPTkZJR19JUF9O Rl9SQVc9bQorQ09ORklHX0lQX05GX1NFQ1VSSVRZPW0KK0NPTkZJR19JUF9ORl9BUlBUQUJMRVM9 bQorQ09ORklHX0lQX05GX0FSUEZJTFRFUj1tCitDT05GSUdfSVBfTkZfQVJQX01BTkdMRT1tCisj IGVuZCBvZiBJUDogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKworIworIyBJUHY2OiBOZXRmaWx0 ZXIgQ29uZmlndXJhdGlvbgorIworQ09ORklHX05GX1NPQ0tFVF9JUFY2PW0KK0NPTkZJR19ORl9U UFJPWFlfSVBWNj1tCitDT05GSUdfTkZfVEFCTEVTX0lQVjY9eQorQ09ORklHX05GVF9SRUpFQ1Rf SVBWNj1tCitDT05GSUdfTkZUX0RVUF9JUFY2PW0KK0NPTkZJR19ORlRfRklCX0lQVjY9bQorQ09O RklHX05GX0RVUF9JUFY2PW0KK0NPTkZJR19ORl9SRUpFQ1RfSVBWNj1tCitDT05GSUdfTkZfTE9H X0lQVjY9bQorQ09ORklHX0lQNl9ORl9JUFRBQkxFUz1tCitDT05GSUdfSVA2X05GX01BVENIX0FI PW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfRVVJNjQ9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9GUkFH PW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfT1BUUz1tCitDT05GSUdfSVA2X05GX01BVENIX0hMPW0K K0NPTkZJR19JUDZfTkZfTUFUQ0hfSVBWNkhFQURFUj1tCitDT05GSUdfSVA2X05GX01BVENIX01I PW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfUlBGSUxURVI9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9S VD1tCitDT05GSUdfSVA2X05GX01BVENIX1NSSD1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9ITD1t CitDT05GSUdfSVA2X05GX0ZJTFRFUj1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9SRUpFQ1Q9bQor Q09ORklHX0lQNl9ORl9UQVJHRVRfU1lOUFJPWFk9bQorQ09ORklHX0lQNl9ORl9NQU5HTEU9bQor Q09ORklHX0lQNl9ORl9SQVc9bQorQ09ORklHX0lQNl9ORl9TRUNVUklUWT1tCitDT05GSUdfSVA2 X05GX05BVD1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9NQVNRVUVSQURFPW0KK0NPTkZJR19JUDZf TkZfVEFSR0VUX05QVD1tCisjIGVuZCBvZiBJUHY2OiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgor CitDT05GSUdfTkZfREVGUkFHX0lQVjY9bQorQ09ORklHX05GX1RBQkxFU19CUklER0U9bQorQ09O RklHX05GVF9CUklER0VfTUVUQT1tCitDT05GSUdfTkZUX0JSSURHRV9SRUpFQ1Q9bQorQ09ORklH X05GX0NPTk5UUkFDS19CUklER0U9bQorQ09ORklHX0JSSURHRV9ORl9FQlRBQkxFUz1tCitDT05G SUdfQlJJREdFX0VCVF9CUk9VVEU9bQorQ09ORklHX0JSSURHRV9FQlRfVF9GSUxURVI9bQorQ09O RklHX0JSSURHRV9FQlRfVF9OQVQ9bQorQ09ORklHX0JSSURHRV9FQlRfODAyXzM9bQorQ09ORklH X0JSSURHRV9FQlRfQU1PTkc9bQorQ09ORklHX0JSSURHRV9FQlRfQVJQPW0KK0NPTkZJR19CUklE R0VfRUJUX0lQPW0KK0NPTkZJR19CUklER0VfRUJUX0lQNj1tCitDT05GSUdfQlJJREdFX0VCVF9M SU1JVD1tCitDT05GSUdfQlJJREdFX0VCVF9NQVJLPW0KK0NPTkZJR19CUklER0VfRUJUX1BLVFRZ UEU9bQorQ09ORklHX0JSSURHRV9FQlRfU1RQPW0KK0NPTkZJR19CUklER0VfRUJUX1ZMQU49bQor Q09ORklHX0JSSURHRV9FQlRfQVJQUkVQTFk9bQorQ09ORklHX0JSSURHRV9FQlRfRE5BVD1tCitD T05GSUdfQlJJREdFX0VCVF9NQVJLX1Q9bQorQ09ORklHX0JSSURHRV9FQlRfUkVESVJFQ1Q9bQor Q09ORklHX0JSSURHRV9FQlRfU05BVD1tCitDT05GSUdfQlJJREdFX0VCVF9MT0c9bQorQ09ORklH X0JSSURHRV9FQlRfTkZMT0c9bQorQ09ORklHX0JQRklMVEVSPXkKKyMgQ09ORklHX0JQRklMVEVS X1VNSCBpcyBub3Qgc2V0CitDT05GSUdfSVBfRENDUD1tCitDT05GSUdfSU5FVF9EQ0NQX0RJQUc9 bQorCisjCisjIERDQ1AgQ0NJRHMgQ29uZmlndXJhdGlvbgorIworIyBDT05GSUdfSVBfRENDUF9D Q0lEMl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSVBfRENDUF9DQ0lEMz15CisjIENPTkZJR19J UF9EQ0NQX0NDSUQzX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9EQ0NQX1RGUkNfTElCPXkK KyMgZW5kIG9mIERDQ1AgQ0NJRHMgQ29uZmlndXJhdGlvbgorCisjCisjIERDQ1AgS2VybmVsIEhh Y2tpbmcKKyMKKyMgQ09ORklHX0lQX0RDQ1BfREVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgREND UCBLZXJuZWwgSGFja2luZworCitDT05GSUdfSVBfU0NUUD1tCisjIENPTkZJR19TQ1RQX0RCR19P QkpDTlQgaXMgbm90IHNldAorQ09ORklHX1NDVFBfREVGQVVMVF9DT09LSUVfSE1BQ19NRDU9eQor IyBDT05GSUdfU0NUUF9ERUZBVUxUX0NPT0tJRV9ITUFDX1NIQTEgaXMgbm90IHNldAorIyBDT05G SUdfU0NUUF9ERUZBVUxUX0NPT0tJRV9ITUFDX05PTkUgaXMgbm90IHNldAorQ09ORklHX1NDVFBf Q09PS0lFX0hNQUNfTUQ1PXkKKyMgQ09ORklHX1NDVFBfQ09PS0lFX0hNQUNfU0hBMSBpcyBub3Qg c2V0CitDT05GSUdfSU5FVF9TQ1RQX0RJQUc9bQorQ09ORklHX1JEUz1tCitDT05GSUdfUkRTX1JE TUE9bQorQ09ORklHX1JEU19UQ1A9bQorIyBDT05GSUdfUkRTX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19USVBDPW0KKyMgQ09ORklHX1RJUENfTUVESUFfSUIgaXMgbm90IHNldAorQ09ORklHX1RJ UENfTUVESUFfVURQPXkKK0NPTkZJR19USVBDX0NSWVBUTz15CitDT05GSUdfVElQQ19ESUFHPW0K K0NPTkZJR19BVE09bQorQ09ORklHX0FUTV9DTElQPW0KKyMgQ09ORklHX0FUTV9DTElQX05PX0lD TVAgaXMgbm90IHNldAorQ09ORklHX0FUTV9MQU5FPW0KK0NPTkZJR19BVE1fTVBPQT1tCitDT05G SUdfQVRNX0JSMjY4ND1tCisjIENPTkZJR19BVE1fQlIyNjg0X0lQRklMVEVSIGlzIG5vdCBzZXQK K0NPTkZJR19MMlRQPW0KK0NPTkZJR19MMlRQX0RFQlVHRlM9bQorQ09ORklHX0wyVFBfVjM9eQor Q09ORklHX0wyVFBfSVA9bQorQ09ORklHX0wyVFBfRVRIPW0KK0NPTkZJR19TVFA9bQorQ09ORklH X0dBUlA9bQorQ09ORklHX01SUD1tCitDT05GSUdfQlJJREdFPW0KK0NPTkZJR19CUklER0VfSUdN UF9TTk9PUElORz15CitDT05GSUdfQlJJREdFX1ZMQU5fRklMVEVSSU5HPXkKK0NPTkZJR19CUklE R0VfTVJQPXkKKyMgQ09ORklHX0JSSURHRV9DRk0gaXMgbm90IHNldAorQ09ORklHX05FVF9EU0E9 bQorQ09ORklHX05FVF9EU0FfVEFHX05PTkU9bQorQ09ORklHX05FVF9EU0FfVEFHX0FSOTMzMT1t CitDT05GSUdfTkVUX0RTQV9UQUdfQlJDTV9DT01NT049bQorQ09ORklHX05FVF9EU0FfVEFHX0JS Q009bQorQ09ORklHX05FVF9EU0FfVEFHX0JSQ01fTEVHQUNZPW0KK0NPTkZJR19ORVRfRFNBX1RB R19CUkNNX1BSRVBFTkQ9bQorQ09ORklHX05FVF9EU0FfVEFHX0hFTExDUkVFSz1tCitDT05GSUdf TkVUX0RTQV9UQUdfR1NXSVA9bQorQ09ORklHX05FVF9EU0FfVEFHX0RTQV9DT01NT049bQorQ09O RklHX05FVF9EU0FfVEFHX0RTQT1tCitDT05GSUdfTkVUX0RTQV9UQUdfRURTQT1tCitDT05GSUdf TkVUX0RTQV9UQUdfTVRLPW0KK0NPTkZJR19ORVRfRFNBX1RBR19LU1o9bQorQ09ORklHX05FVF9E U0FfVEFHX09DRUxPVD1tCitDT05GSUdfTkVUX0RTQV9UQUdfT0NFTE9UXzgwMjFRPW0KK0NPTkZJ R19ORVRfRFNBX1RBR19RQ0E9bQorQ09ORklHX05FVF9EU0FfVEFHX1JUTDRfQT1tCitDT05GSUdf TkVUX0RTQV9UQUdfUlRMOF80PW0KKyMgQ09ORklHX05FVF9EU0FfVEFHX1JaTjFfQTVQU1cgaXMg bm90IHNldAorQ09ORklHX05FVF9EU0FfVEFHX0xBTjkzMDM9bQorQ09ORklHX05FVF9EU0FfVEFH X1NKQTExMDU9bQorQ09ORklHX05FVF9EU0FfVEFHX1RSQUlMRVI9bQorQ09ORklHX05FVF9EU0Ff VEFHX1hSUzcwMFg9bQorQ09ORklHX1ZMQU5fODAyMVE9bQorQ09ORklHX1ZMQU5fODAyMVFfR1ZS UD15CitDT05GSUdfVkxBTl84MDIxUV9NVlJQPXkKK0NPTkZJR19MTEM9bQorQ09ORklHX0xMQzI9 bQorQ09ORklHX0FUQUxLPW0KK0NPTkZJR19ERVZfQVBQTEVUQUxLPW0KK0NPTkZJR19JUEREUD1t CitDT05GSUdfSVBERFBfRU5DQVA9eQorQ09ORklHX1gyNT1tCitDT05GSUdfTEFQQj1tCitDT05G SUdfUEhPTkVUPW0KK0NPTkZJR182TE9XUEFOPW0KKyMgQ09ORklHXzZMT1dQQU5fREVCVUdGUyBp cyBub3Qgc2V0CitDT05GSUdfNkxPV1BBTl9OSEM9bQorQ09ORklHXzZMT1dQQU5fTkhDX0RFU1Q9 bQorQ09ORklHXzZMT1dQQU5fTkhDX0ZSQUdNRU5UPW0KK0NPTkZJR182TE9XUEFOX05IQ19IT1A9 bQorQ09ORklHXzZMT1dQQU5fTkhDX0lQVjY9bQorQ09ORklHXzZMT1dQQU5fTkhDX01PQklMSVRZ PW0KK0NPTkZJR182TE9XUEFOX05IQ19ST1VUSU5HPW0KK0NPTkZJR182TE9XUEFOX05IQ19VRFA9 bQorQ09ORklHXzZMT1dQQU5fR0hDX0VYVF9IRFJfSE9QPW0KK0NPTkZJR182TE9XUEFOX0dIQ19V RFA9bQorQ09ORklHXzZMT1dQQU5fR0hDX0lDTVBWNj1tCitDT05GSUdfNkxPV1BBTl9HSENfRVhU X0hEUl9ERVNUPW0KK0NPTkZJR182TE9XUEFOX0dIQ19FWFRfSERSX0ZSQUc9bQorQ09ORklHXzZM T1dQQU5fR0hDX0VYVF9IRFJfUk9VVEU9bQorQ09ORklHX0lFRUU4MDIxNTQ9bQorQ09ORklHX0lF RUU4MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19JRUVFODAyMTU0X1NPQ0tF VD1tCitDT05GSUdfSUVFRTgwMjE1NF82TE9XUEFOPW0KK0NPTkZJR19NQUM4MDIxNTQ9bQorQ09O RklHX05FVF9TQ0hFRD15CisKKyMKKyMgUXVldWVpbmcvU2NoZWR1bGluZworIworQ09ORklHX05F VF9TQ0hfSFRCPW0KK0NPTkZJR19ORVRfU0NIX0hGU0M9bQorQ09ORklHX05FVF9TQ0hfUFJJTz1t CitDT05GSUdfTkVUX1NDSF9NVUxUSVE9bQorQ09ORklHX05FVF9TQ0hfUkVEPW0KK0NPTkZJR19O RVRfU0NIX1NGQj1tCitDT05GSUdfTkVUX1NDSF9TRlE9bQorQ09ORklHX05FVF9TQ0hfVEVRTD1t CitDT05GSUdfTkVUX1NDSF9UQkY9bQorQ09ORklHX05FVF9TQ0hfQ0JTPW0KK0NPTkZJR19ORVRf U0NIX0VURj1tCitDT05GSUdfTkVUX1NDSF9NUVBSSU9fTElCPW0KK0NPTkZJR19ORVRfU0NIX1RB UFJJTz1tCitDT05GSUdfTkVUX1NDSF9HUkVEPW0KK0NPTkZJR19ORVRfU0NIX05FVEVNPW0KK0NP TkZJR19ORVRfU0NIX0RSUj1tCitDT05GSUdfTkVUX1NDSF9NUVBSSU89bQorQ09ORklHX05FVF9T Q0hfU0tCUFJJTz1tCitDT05GSUdfTkVUX1NDSF9DSE9LRT1tCitDT05GSUdfTkVUX1NDSF9RRlE9 bQorQ09ORklHX05FVF9TQ0hfQ09ERUw9bQorQ09ORklHX05FVF9TQ0hfRlFfQ09ERUw9bQorQ09O RklHX05FVF9TQ0hfQ0FLRT1tCitDT05GSUdfTkVUX1NDSF9GUT1tCitDT05GSUdfTkVUX1NDSF9I SEY9bQorQ09ORklHX05FVF9TQ0hfUElFPW0KK0NPTkZJR19ORVRfU0NIX0ZRX1BJRT1tCitDT05G SUdfTkVUX1NDSF9JTkdSRVNTPW0KK0NPTkZJR19ORVRfU0NIX1BMVUc9bQorQ09ORklHX05FVF9T Q0hfRVRTPW0KKyMgQ09ORklHX05FVF9TQ0hfREVGQVVMVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2xh c3NpZmljYXRpb24KKyMKK0NPTkZJR19ORVRfQ0xTPXkKK0NPTkZJR19ORVRfQ0xTX0JBU0lDPW0K K0NPTkZJR19ORVRfQ0xTX1JPVVRFND1tCitDT05GSUdfTkVUX0NMU19GVz1tCitDT05GSUdfTkVU X0NMU19VMzI9bQorQ09ORklHX0NMU19VMzJfUEVSRj15CitDT05GSUdfQ0xTX1UzMl9NQVJLPXkK K0NPTkZJR19ORVRfQ0xTX0ZMT1c9bQorQ09ORklHX05FVF9DTFNfQ0dST1VQPW0KK0NPTkZJR19O RVRfQ0xTX0JQRj1tCitDT05GSUdfTkVUX0NMU19GTE9XRVI9bQorQ09ORklHX05FVF9DTFNfTUFU Q0hBTEw9bQorQ09ORklHX05FVF9FTUFUQ0g9eQorQ09ORklHX05FVF9FTUFUQ0hfU1RBQ0s9MzIK K0NPTkZJR19ORVRfRU1BVENIX0NNUD1tCitDT05GSUdfTkVUX0VNQVRDSF9OQllURT1tCitDT05G SUdfTkVUX0VNQVRDSF9VMzI9bQorQ09ORklHX05FVF9FTUFUQ0hfTUVUQT1tCitDT05GSUdfTkVU X0VNQVRDSF9URVhUPW0KK0NPTkZJR19ORVRfRU1BVENIX0NBTklEPW0KK0NPTkZJR19ORVRfRU1B VENIX0lQU0VUPW0KK0NPTkZJR19ORVRfRU1BVENIX0lQVD1tCitDT05GSUdfTkVUX0NMU19BQ1Q9 eQorQ09ORklHX05FVF9BQ1RfUE9MSUNFPW0KK0NPTkZJR19ORVRfQUNUX0dBQ1Q9bQorQ09ORklH X0dBQ1RfUFJPQj15CitDT05GSUdfTkVUX0FDVF9NSVJSRUQ9bQorQ09ORklHX05FVF9BQ1RfU0FN UExFPW0KK0NPTkZJR19ORVRfQUNUX0lQVD1tCitDT05GSUdfTkVUX0FDVF9OQVQ9bQorQ09ORklH X05FVF9BQ1RfUEVESVQ9bQorQ09ORklHX05FVF9BQ1RfU0lNUD1tCitDT05GSUdfTkVUX0FDVF9T S0JFRElUPW0KK0NPTkZJR19ORVRfQUNUX0NTVU09bQorQ09ORklHX05FVF9BQ1RfTVBMUz1tCitD T05GSUdfTkVUX0FDVF9WTEFOPW0KK0NPTkZJR19ORVRfQUNUX0JQRj1tCitDT05GSUdfTkVUX0FD VF9DT05OTUFSSz1tCitDT05GSUdfTkVUX0FDVF9DVElORk89bQorQ09ORklHX05FVF9BQ1RfU0tC TU9EPW0KK0NPTkZJR19ORVRfQUNUX0lGRT1tCitDT05GSUdfTkVUX0FDVF9UVU5ORUxfS0VZPW0K K0NPTkZJR19ORVRfQUNUX0NUPW0KK0NPTkZJR19ORVRfQUNUX0dBVEU9bQorQ09ORklHX05FVF9J RkVfU0tCTUFSSz1tCitDT05GSUdfTkVUX0lGRV9TS0JQUklPPW0KK0NPTkZJR19ORVRfSUZFX1NL QlRDSU5ERVg9bQorQ09ORklHX05FVF9UQ19TS0JfRVhUPXkKK0NPTkZJR19ORVRfU0NIX0ZJRk89 eQorQ09ORklHX0RDQj15CitDT05GSUdfRE5TX1JFU09MVkVSPW0KK0NPTkZJR19CQVRNQU5fQURW PW0KK0NPTkZJR19CQVRNQU5fQURWX0JBVE1BTl9WPXkKK0NPTkZJR19CQVRNQU5fQURWX0JMQT15 CitDT05GSUdfQkFUTUFOX0FEVl9EQVQ9eQorQ09ORklHX0JBVE1BTl9BRFZfTkM9eQorQ09ORklH X0JBVE1BTl9BRFZfTUNBU1Q9eQorQ09ORklHX0JBVE1BTl9BRFZfREVCVUc9eQorIyBDT05GSUdf QkFUTUFOX0FEVl9UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19PUEVOVlNXSVRDSD1tCitDT05G SUdfT1BFTlZTV0lUQ0hfR1JFPW0KK0NPTkZJR19PUEVOVlNXSVRDSF9WWExBTj1tCitDT05GSUdf T1BFTlZTV0lUQ0hfR0VORVZFPW0KK0NPTkZJR19WU09DS0VUUz1tCitDT05GSUdfVlNPQ0tFVFNf RElBRz1tCitDT05GSUdfVlNPQ0tFVFNfTE9PUEJBQ0s9bQorQ09ORklHX1ZJUlRJT19WU09DS0VU Uz1tCitDT05GSUdfVklSVElPX1ZTT0NLRVRTX0NPTU1PTj1tCitDT05GSUdfTkVUTElOS19ESUFH PW0KK0NPTkZJR19NUExTPXkKK0NPTkZJR19ORVRfTVBMU19HU089bQorQ09ORklHX01QTFNfUk9V VElORz1tCitDT05GSUdfTVBMU19JUFRVTk5FTD1tCitDT05GSUdfTkVUX05TSD1tCitDT05GSUdf SFNSPW0KK0NPTkZJR19ORVRfU1dJVENIREVWPXkKK0NPTkZJR19ORVRfTDNfTUFTVEVSX0RFVj15 CitDT05GSUdfUVJUUj1tCitDT05GSUdfUVJUUl9TTUQ9bQorQ09ORklHX1FSVFJfVFVOPW0KK0NP TkZJR19RUlRSX01IST1tCitDT05GSUdfTkVUX05DU0k9eQorQ09ORklHX05DU0lfT0VNX0NNRF9H RVRfTUFDPXkKKyMgQ09ORklHX05DU0lfT0VNX0NNRF9LRUVQX1BIWSBpcyBub3Qgc2V0CitDT05G SUdfUENQVV9ERVZfUkVGQ05UPXkKK0NPTkZJR19SUFM9eQorQ09ORklHX1JGU19BQ0NFTD15CitD T05GSUdfU09DS19SWF9RVUVVRV9NQVBQSU5HPXkKK0NPTkZJR19YUFM9eQorQ09ORklHX0NHUk9V UF9ORVRfUFJJTz15CitDT05GSUdfQ0dST1VQX05FVF9DTEFTU0lEPXkKK0NPTkZJR19ORVRfUlhf QlVTWV9QT0xMPXkKK0NPTkZJR19CUUw9eQorQ09ORklHX0JQRl9TVFJFQU1fUEFSU0VSPXkKK0NP TkZJR19ORVRfRkxPV19MSU1JVD15CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05GSUdf TkVUX1BLVEdFTj1tCitDT05GSUdfTkVUX0RST1BfTU9OSVRPUj15CisjIGVuZCBvZiBOZXR3b3Jr IHRlc3RpbmcKKyMgZW5kIG9mIE5ldHdvcmtpbmcgb3B0aW9ucworCitDT05GSUdfSEFNUkFESU89 eQorCisjCisjIFBhY2tldCBSYWRpbyBwcm90b2NvbHMKKyMKK0NPTkZJR19BWDI1PW0KK0NPTkZJ R19BWDI1X0RBTUFfU0xBVkU9eQorQ09ORklHX05FVFJPTT1tCitDT05GSUdfUk9TRT1tCisKKyMK KyMgQVguMjUgbmV0d29yayBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01LSVNTPW0KK0NPTkZJ R182UEFDSz1tCitDT05GSUdfQlBRRVRIRVI9bQorQ09ORklHX0JBWUNPTV9TRVJfRkRYPW0KK0NP TkZJR19CQVlDT01fU0VSX0hEWD1tCitDT05GSUdfQkFZQ09NX1BBUj1tCitDT05GSUdfWUFNPW0K KyMgZW5kIG9mIEFYLjI1IG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX0NBTj1tCitD T05GSUdfQ0FOX1JBVz1tCitDT05GSUdfQ0FOX0JDTT1tCitDT05GSUdfQ0FOX0dXPW0KK0NPTkZJ R19DQU5fSjE5Mzk9bQorQ09ORklHX0NBTl9JU09UUD1tCitDT05GSUdfQlQ9bQorQ09ORklHX0JU X0JSRURSPXkKK0NPTkZJR19CVF9SRkNPTU09bQorQ09ORklHX0JUX1JGQ09NTV9UVFk9eQorQ09O RklHX0JUX0JORVA9bQorQ09ORklHX0JUX0JORVBfTUNfRklMVEVSPXkKK0NPTkZJR19CVF9CTkVQ X1BST1RPX0ZJTFRFUj15CitDT05GSUdfQlRfSElEUD1tCitDT05GSUdfQlRfSFM9eQorQ09ORklH X0JUX0xFPXkKK0NPTkZJR19CVF9MRV9MMkNBUF9FQ1JFRD15CitDT05GSUdfQlRfNkxPV1BBTj1t CitDT05GSUdfQlRfTEVEUz15CitDT05GSUdfQlRfTVNGVEVYVD15CitDT05GSUdfQlRfQU9TUEVY VD15CisjIENPTkZJR19CVF9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX1NFTEZURVNU IGlzIG5vdCBzZXQKKworIworIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19C VF9JTlRFTD1tCitDT05GSUdfQlRfQkNNPW0KK0NPTkZJR19CVF9SVEw9bQorQ09ORklHX0JUX1FD QT1tCitDT05GSUdfQlRfTVRLPW0KK0NPTkZJR19CVF9IQ0lCVFVTQj1tCitDT05GSUdfQlRfSENJ QlRVU0JfQVVUT1NVU1BFTkQ9eQorQ09ORklHX0JUX0hDSUJUVVNCX1BPTExfU1lOQz15CitDT05G SUdfQlRfSENJQlRVU0JfQkNNPXkKK0NPTkZJR19CVF9IQ0lCVFVTQl9NVEs9eQorQ09ORklHX0JU X0hDSUJUVVNCX1JUTD15CitDT05GSUdfQlRfSENJQlRTRElPPW0KK0NPTkZJR19CVF9IQ0lVQVJU PW0KK0NPTkZJR19CVF9IQ0lVQVJUX1NFUkRFVj15CitDT05GSUdfQlRfSENJVUFSVF9IND15CitD T05GSUdfQlRfSENJVUFSVF9OT0tJQT1tCitDT05GSUdfQlRfSENJVUFSVF9CQ1NQPXkKK0NPTkZJ R19CVF9IQ0lVQVJUX0FUSDNLPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0xMPXkKK0NPTkZJR19CVF9I Q0lVQVJUXzNXSVJFPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0lOVEVMPXkKK0NPTkZJR19CVF9IQ0lV QVJUX0JDTT15CitDT05GSUdfQlRfSENJVUFSVF9SVEw9eQorQ09ORklHX0JUX0hDSVVBUlRfUUNB PXkKK0NPTkZJR19CVF9IQ0lVQVJUX0FHNlhYPXkKK0NPTkZJR19CVF9IQ0lVQVJUX01SVkw9eQor Q09ORklHX0JUX0hDSUJDTTIwM1g9bQorQ09ORklHX0JUX0hDSUJDTTQzNzc9bQorQ09ORklHX0JU X0hDSUJQQTEwWD1tCitDT05GSUdfQlRfSENJQkZVU0I9bQorQ09ORklHX0JUX0hDSURUTDE9bQor Q09ORklHX0JUX0hDSUJUM0M9bQorQ09ORklHX0JUX0hDSUJMVUVDQVJEPW0KK0NPTkZJR19CVF9I Q0lWSENJPW0KK0NPTkZJR19CVF9NUlZMPW0KK0NPTkZJR19CVF9NUlZMX1NESU89bQorQ09ORklH X0JUX0FUSDNLPW0KK0NPTkZJR19CVF9NVEtTRElPPW0KK0NPTkZJR19CVF9NVEtVQVJUPW0KK0NP TkZJR19CVF9IQ0lSU0k9bQorQ09ORklHX0JUX1ZJUlRJTz1tCisjIGVuZCBvZiBCbHVldG9vdGgg ZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX0FGX1JYUlBDPW0KK0NPTkZJR19BRl9SWFJQQ19JUFY2 PXkKKyMgQ09ORklHX0FGX1JYUlBDX0lOSkVDVF9MT1NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FG X1JYUlBDX0lOSkVDVF9SWF9ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQ19ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfUlhLQUQ9eQorIyBDT05GSUdfUlhQRVJGIGlzIG5vdCBzZXQK K0NPTkZJR19BRl9LQ009bQorQ09ORklHX1NUUkVBTV9QQVJTRVI9eQorQ09ORklHX01DVFA9eQor Q09ORklHX01DVFBfRkxPV1M9eQorQ09ORklHX0ZJQl9SVUxFUz15CitDT05GSUdfV0lSRUxFU1M9 eQorQ09ORklHX1dJUkVMRVNTX0VYVD15CitDT05GSUdfV0VYVF9DT1JFPXkKK0NPTkZJR19XRVhU X1BST0M9eQorQ09ORklHX1dFWFRfU1BZPXkKK0NPTkZJR19XRVhUX1BSSVY9eQorQ09ORklHX0NG RzgwMjExPW0KKyMgQ09ORklHX05MODAyMTFfVEVTVE1PREUgaXMgbm90IHNldAorIyBDT05GSUdf Q0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NGRzgwMjEx X0NFUlRJRklDQVRJT05fT05VUyBpcyBub3Qgc2V0CitDT05GSUdfQ0ZHODAyMTFfUkVRVUlSRV9T SUdORURfUkVHREI9eQorQ09ORklHX0NGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZUz15CitD T05GSUdfQ0ZHODAyMTFfREVGQVVMVF9QUz15CisjIENPTkZJR19DRkc4MDIxMV9ERUJVR0ZTIGlz IG5vdCBzZXQKK0NPTkZJR19DRkc4MDIxMV9DUkRBX1NVUFBPUlQ9eQorQ09ORklHX0NGRzgwMjEx X1dFWFQ9eQorQ09ORklHX0NGRzgwMjExX1dFWFRfRVhQT1JUPXkKK0NPTkZJR19MSUI4MDIxMT1t CitDT05GSUdfTElCODAyMTFfQ1JZUFRfV0VQPW0KK0NPTkZJR19MSUI4MDIxMV9DUllQVF9DQ01Q PW0KK0NPTkZJR19MSUI4MDIxMV9DUllQVF9US0lQPW0KKyMgQ09ORklHX0xJQjgwMjExX0RFQlVH IGlzIG5vdCBzZXQKK0NPTkZJR19NQUM4MDIxMT1tCitDT05GSUdfTUFDODAyMTFfSEFTX1JDPXkK K0NPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTD15CitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVM VF9NSU5TVFJFTD15CitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVD0ibWluc3RyZWxfaHQiCitD T05GSUdfTUFDODAyMTFfTUVTSD15CitDT05GSUdfTUFDODAyMTFfTEVEUz15CitDT05GSUdfTUFD ODAyMTFfREVCVUdGUz15CisjIENPTkZJR19NQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkcgaXMgbm90 IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfTUVOVSBpcyBub3Qgc2V0CitDT05GSUdfTUFD ODAyMTFfU1RBX0hBU0hfTUFYX1NJWkU9MAorQ09ORklHX1JGS0lMTD1tCitDT05GSUdfUkZLSUxM X0xFRFM9eQorQ09ORklHX1JGS0lMTF9JTlBVVD15CitDT05GSUdfUkZLSUxMX0dQSU89bQorQ09O RklHX05FVF85UD1tCitDT05GSUdfTkVUXzlQX0ZEPW0KK0NPTkZJR19ORVRfOVBfVklSVElPPW0K K0NPTkZJR19ORVRfOVBfUkRNQT1tCisjIENPTkZJR19ORVRfOVBfREVCVUcgaXMgbm90IHNldAor Q09ORklHX0NBSUY9bQorIyBDT05GSUdfQ0FJRl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ0FJ Rl9ORVRERVY9bQorQ09ORklHX0NBSUZfVVNCPW0KK0NPTkZJR19DRVBIX0xJQj1tCitDT05GSUdf Q0VQSF9MSUJfUFJFVFRZREVCVUc9eQorIyBDT05GSUdfQ0VQSF9MSUJfVVNFX0ROU19SRVNPTFZF UiBpcyBub3Qgc2V0CitDT05GSUdfTkZDPW0KK0NPTkZJR19ORkNfRElHSVRBTD1tCitDT05GSUdf TkZDX05DST1tCisjIENPTkZJR19ORkNfTkNJX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTkZDX05D SV9VQVJUPW0KK0NPTkZJR19ORkNfSENJPW0KK0NPTkZJR19ORkNfU0hETEM9eQorCisjCisjIE5l YXIgRmllbGQgQ29tbXVuaWNhdGlvbiAoTkZDKSBkZXZpY2VzCisjCisjIENPTkZJR19ORkNfVFJG Nzk3MEEgaXMgbm90IHNldAorQ09ORklHX05GQ19TSU09bQorQ09ORklHX05GQ19QT1JUMTAwPW0K K0NPTkZJR19ORkNfVklSVFVBTF9OQ0k9bQorIyBDT05GSUdfTkZDX0ZEUCBpcyBub3Qgc2V0CitD T05GSUdfTkZDX1BONTQ0PW0KK0NPTkZJR19ORkNfUE41NDRfSTJDPW0KK0NPTkZJR19ORkNfUE41 MzM9bQorQ09ORklHX05GQ19QTjUzM19VU0I9bQorQ09ORklHX05GQ19QTjUzM19JMkM9bQorQ09O RklHX05GQ19QTjUzMl9VQVJUPW0KK0NPTkZJR19ORkNfTUlDUk9SRUFEPW0KK0NPTkZJR19ORkNf TUlDUk9SRUFEX0kyQz1tCitDT05GSUdfTkZDX01SVkw9bQorQ09ORklHX05GQ19NUlZMX1VTQj1t CitDT05GSUdfTkZDX01SVkxfVUFSVD1tCitDT05GSUdfTkZDX01SVkxfSTJDPW0KK0NPTkZJR19O RkNfU1QyMU5GQ0E9bQorQ09ORklHX05GQ19TVDIxTkZDQV9JMkM9bQorQ09ORklHX05GQ19TVF9O Q0k9bQorQ09ORklHX05GQ19TVF9OQ0lfSTJDPW0KK0NPTkZJR19ORkNfU1RfTkNJX1NQST1tCitD T05GSUdfTkZDX05YUF9OQ0k9bQorQ09ORklHX05GQ19OWFBfTkNJX0kyQz1tCitDT05GSUdfTkZD X1MzRldSTjU9bQorQ09ORklHX05GQ19TM0ZXUk41X0kyQz1tCitDT05GSUdfTkZDX1MzRldSTjgy X1VBUlQ9bQorQ09ORklHX05GQ19TVDk1SEY9bQorIyBlbmQgb2YgTmVhciBGaWVsZCBDb21tdW5p Y2F0aW9uIChORkMpIGRldmljZXMKKworQ09ORklHX1BTQU1QTEU9bQorQ09ORklHX05FVF9JRkU9 bQorQ09ORklHX0xXVFVOTkVMPXkKK0NPTkZJR19MV1RVTk5FTF9CUEY9eQorQ09ORklHX0RTVF9D QUNIRT15CitDT05GSUdfR1JPX0NFTExTPXkKK0NPTkZJR19TT0NLX1ZBTElEQVRFX1hNSVQ9eQor Q09ORklHX05FVF9TRUxGVEVTVFM9eQorQ09ORklHX05FVF9TT0NLX01TRz15CitDT05GSUdfTkVU X0RFVkxJTks9eQorQ09ORklHX1BBR0VfUE9PTD15CitDT05GSUdfUEFHRV9QT09MX1NUQVRTPXkK K0NPTkZJR19GQUlMT1ZFUj1tCitDT05GSUdfRVRIVE9PTF9ORVRMSU5LPXkKKworIworIyBEZXZp Y2UgRHJpdmVycworIworQ09ORklHX0FSTV9BTUJBPXkKK0NPTkZJR19IQVZFX1BDST15CitDT05G SUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CitDT05GSUdfUENJX0RPTUFJTlNfR0VORVJJ Qz15CitDT05GSUdfUENJRVBPUlRCVVM9eQorQ09ORklHX0hPVFBMVUdfUENJX1BDSUU9eQorQ09O RklHX1BDSUVBRVI9eQorQ09ORklHX1BDSUVBRVJfSU5KRUNUPW0KKyMgQ09ORklHX1BDSUVfRUNS QyBpcyBub3Qgc2V0CitDT05GSUdfUENJRUFTUE09eQorQ09ORklHX1BDSUVBU1BNX0RFRkFVTFQ9 eQorIyBDT05GSUdfUENJRUFTUE1fUE9XRVJTQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSUVB U1BNX1BPV0VSX1NVUEVSU0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0lFQVNQTV9QRVJGT1JN QU5DRSBpcyBub3Qgc2V0CitDT05GSUdfUENJRV9QTUU9eQorQ09ORklHX1BDSUVfRFBDPXkKK0NP TkZJR19QQ0lFX1BUTT15CitDT05GSUdfUENJX01TST15CitDT05GSUdfUENJX1FVSVJLUz15Cisj IENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENJX1JFQUxMT0NfRU5BQkxF X0FVVE8gaXMgbm90IHNldAorQ09ORklHX1BDSV9TVFVCPXkKK0NPTkZJR19QQ0lfUEZfU1RVQj1t CitDT05GSUdfUENJX0FUUz15CitDT05GSUdfUENJX0RPRT15CitDT05GSUdfUENJX0VDQU09eQor Q09ORklHX1BDSV9JT1Y9eQorQ09ORklHX1BDSV9QUkk9eQorQ09ORklHX1BDSV9QQVNJRD15Cisj IENPTkZJR19QQ0lFX0JVU19UVU5FX09GRiBpcyBub3Qgc2V0CitDT05GSUdfUENJRV9CVVNfREVG QVVMVD15CisjIENPTkZJR19QQ0lFX0JVU19TQUZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSUVf QlVTX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSUVfQlVTX1BFRVIyUEVFUiBp cyBub3Qgc2V0CitDT05GSUdfVkdBX0FSQj15CitDT05GSUdfVkdBX0FSQl9NQVhfR1BVUz0xNgor Q09ORklHX0hPVFBMVUdfUENJPXkKK0NPTkZJR19IT1RQTFVHX1BDSV9DUENJPXkKK0NPTkZJR19I T1RQTFVHX1BDSV9TSFBDPXkKKworIworIyBQQ0kgY29udHJvbGxlciBkcml2ZXJzCisjCitDT05G SUdfUENJX0ZUUENJMTAwPXkKK0NPTkZJR19QQ0lFX1JDQVJfSE9TVD15CitDT05GSUdfUENJRV9S Q0FSX0VQPXkKK0NPTkZJR19QQ0lfSE9TVF9DT01NT049eQorQ09ORklHX1BDSV9IT1NUX0dFTkVS SUM9eQorQ09ORklHX1BDSUVfWElMSU5YPXkKK0NPTkZJR19QQ0lFX01JQ1JPQ0hJUF9IT1NUPXkK K0NPTkZJR19QQ0lFX1NUQVJGSVZFPW0KKworIworIyBEZXNpZ25XYXJlIFBDSSBDb3JlIFN1cHBv cnQKKyMKK0NPTkZJR19QQ0lFX0RXPXkKK0NPTkZJR19QQ0lFX0RXX0hPU1Q9eQorQ09ORklHX1BD SUVfRFdfRVA9eQorQ09ORklHX1BDSUVfRFdfUExBVD15CitDT05GSUdfUENJRV9EV19QTEFUX0hP U1Q9eQorQ09ORklHX1BDSUVfRFdfUExBVF9FUD15CitDT05GSUdfUENJX01FU09OPXkKK0NPTkZJ R19QQ0lFX0ZVNzQwPXkKKyMgZW5kIG9mIERlc2lnbldhcmUgUENJIENvcmUgU3VwcG9ydAorCisj CisjIE1vYml2ZWlsIFBDSWUgQ29yZSBTdXBwb3J0CisjCisjIGVuZCBvZiBNb2JpdmVpbCBQQ0ll IENvcmUgU3VwcG9ydAorCisjCisjIENhZGVuY2UgUENJZSBjb250cm9sbGVycyBzdXBwb3J0Cisj CitDT05GSUdfUENJRV9DQURFTkNFPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfSE9TVD15CitDT05G SUdfUENJRV9DQURFTkNFX0VQPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfUExBVD15CitDT05GSUdf UENJRV9DQURFTkNFX1BMQVRfSE9TVD15CitDT05GSUdfUENJRV9DQURFTkNFX1BMQVRfRVA9eQor Q09ORklHX1BDSV9KNzIxRT15CitDT05GSUdfUENJX0o3MjFFX0hPU1Q9eQorQ09ORklHX1BDSV9K NzIxRV9FUD15CisjIGVuZCBvZiBDYWRlbmNlIFBDSWUgY29udHJvbGxlcnMgc3VwcG9ydAorIyBl bmQgb2YgUENJIGNvbnRyb2xsZXIgZHJpdmVycworCisjCisjIFBDSSBFbmRwb2ludAorIworQ09O RklHX1BDSV9FTkRQT0lOVD15CitDT05GSUdfUENJX0VORFBPSU5UX0NPTkZJR0ZTPXkKK0NPTkZJ R19QQ0lfRVBGX1RFU1Q9bQorQ09ORklHX1BDSV9FUEZfTlRCPW0KK0NPTkZJR19QQ0lfRVBGX1ZO VEI9bQorIyBlbmQgb2YgUENJIEVuZHBvaW50CisKKyMKKyMgUENJIHN3aXRjaCBjb250cm9sbGVy IGRyaXZlcnMKKyMKK0NPTkZJR19QQ0lfU1dfU1dJVENIVEVDPW0KKyMgZW5kIG9mIFBDSSBzd2l0 Y2ggY29udHJvbGxlciBkcml2ZXJzCisKK0NPTkZJR19DWExfQlVTPW0KK0NPTkZJR19DWExfUENJ PW0KKyMgQ09ORklHX0NYTF9NRU1fUkFXX0NPTU1BTkRTIGlzIG5vdCBzZXQKK0NPTkZJR19DWExf UE1FTT1tCitDT05GSUdfQ1hMX01FTT1tCitDT05GSUdfQ1hMX1BPUlQ9bQorQ09ORklHX0NYTF9S RUdJT049eQorIyBDT05GSUdfQ1hMX1JFR0lPTl9JTlZBTElEQVRJT05fVEVTVCBpcyBub3Qgc2V0 CitDT05GSUdfUENDQVJEPW0KK0NPTkZJR19QQ01DSUE9bQorQ09ORklHX1BDTUNJQV9MT0FEX0NJ Uz15CitDT05GSUdfQ0FSREJVUz15CisKKyMKKyMgUEMtY2FyZCBicmlkZ2VzCisjCitDT05GSUdf WUVOVEE9bQorQ09ORklHX1lFTlRBX08yPXkKK0NPTkZJR19ZRU5UQV9SSUNPSD15CitDT05GSUdf WUVOVEFfVEk9eQorQ09ORklHX1lFTlRBX0VORV9UVU5FPXkKK0NPTkZJR19ZRU5UQV9UT1NISUJB PXkKK0NPTkZJR19QRDY3Mjk9bQorQ09ORklHX0k4MjA5Mj1tCitDT05GSUdfUENDQVJEX05PTlNU QVRJQz15CitDT05GSUdfUkFQSURJTz1tCitDT05GSUdfUkFQSURJT19UU0k3MjE9bQorQ09ORklH X1JBUElESU9fRElTQ19USU1FT1VUPTMwCisjIENPTkZJR19SQVBJRElPX0VOQUJMRV9SWF9UWF9Q T1JUUyBpcyBub3Qgc2V0CitDT05GSUdfUkFQSURJT19ETUFfRU5HSU5FPXkKKyMgQ09ORklHX1JB UElESU9fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1JBUElESU9fRU5VTV9CQVNJQz1tCitDT05G SUdfUkFQSURJT19DSE1BTj1tCitDT05GSUdfUkFQSURJT19NUE9SVF9DREVWPW0KKworIworIyBS YXBpZElPIFN3aXRjaCBkcml2ZXJzCisjCitDT05GSUdfUkFQSURJT19DUFNfWFg9bQorQ09ORklH X1JBUElESU9fQ1BTX0dFTjI9bQorQ09ORklHX1JBUElESU9fUlhTX0dFTjM9bQorIyBlbmQgb2Yg UmFwaWRJTyBTd2l0Y2ggZHJpdmVycworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMK K0NPTkZJR19BVVhJTElBUllfQlVTPXkKK0NPTkZJR19VRVZFTlRfSEVMUEVSPXkKK0NPTkZJR19V RVZFTlRfSEVMUEVSX1BBVEg9IiIKK0NPTkZJR19ERVZUTVBGUz15CitDT05GSUdfREVWVE1QRlNf TU9VTlQ9eQorQ09ORklHX0RFVlRNUEZTX1NBRkU9eQorIyBDT05GSUdfU1RBTkRBTE9ORSBpcyBu b3Qgc2V0CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CisKKyMKKyMgRmlybXdhcmUg bG9hZGVyCisjCitDT05GSUdfRldfTE9BREVSPXkKK0NPTkZJR19GV19MT0FERVJfUEFHRURfQlVG PXkKK0NPTkZJR19GV19MT0FERVJfU1lTRlM9eQorQ09ORklHX0VYVFJBX0ZJUk1XQVJFPSIiCitD T05GSUdfRldfTE9BREVSX1VTRVJfSEVMUEVSPXkKKyMgQ09ORklHX0ZXX0xPQURFUl9VU0VSX0hF TFBFUl9GQUxMQkFDSyBpcyBub3Qgc2V0CitDT05GSUdfRldfTE9BREVSX0NPTVBSRVNTPXkKK0NP TkZJR19GV19MT0FERVJfQ09NUFJFU1NfWFo9eQorQ09ORklHX0ZXX0xPQURFUl9DT01QUkVTU19a U1REPXkKK0NPTkZJR19GV19VUExPQUQ9eQorIyBlbmQgb2YgRmlybXdhcmUgbG9hZGVyCisKK0NP TkZJR19XQU5UX0RFVl9DT1JFRFVNUD15CitDT05GSUdfQUxMT1dfREVWX0NPUkVEVU1QPXkKK0NP TkZJR19ERVZfQ09SRURVTVA9eQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMg Q09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19URVNUX0RSSVZF Ul9SRU1PVkUgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9BU1lOQ19EUklWRVJfUFJPQkUgaXMg bm90IHNldAorQ09ORklHX1NPQ19CVVM9eQorQ09ORklHX1JFR01BUD15CitDT05GSUdfUkVHTUFQ X0kyQz15CitDT05GSUdfUkVHTUFQX1NQST1tCitDT05GSUdfUkVHTUFQX1NQTUk9bQorQ09ORklH X1JFR01BUF9XMT1tCitDT05GSUdfUkVHTUFQX01NSU89eQorQ09ORklHX1JFR01BUF9JUlE9eQor Q09ORklHX1JFR01BUF9TT1VORFdJUkU9bQorQ09ORklHX1JFR01BUF9TT1VORFdJUkVfTUJRPW0K K0NPTkZJR19SRUdNQVBfU0NDQj1tCitDT05GSUdfUkVHTUFQX0kzQz1tCitDT05GSUdfUkVHTUFQ X1NQSV9BVk1NPW0KK0NPTkZJR19ETUFfU0hBUkVEX0JVRkZFUj15CisjIENPTkZJR19ETUFfRkVO Q0VfVFJBQ0UgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQVJDSF9UT1BPTE9HWT15CitDT05G SUdfR0VORVJJQ19BUkNIX05VTUE9eQorIyBlbmQgb2YgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwor CisjCisjIEJ1cyBkZXZpY2VzCisjCitDT05GSUdfTU9YVEVUPW0KK0NPTkZJR19TVU41MElfREUy X0JVUz15CitDT05GSUdfU1VOWElfUlNCPW0KK0NPTkZJR19NSElfQlVTPW0KKyMgQ09ORklHX01I SV9CVVNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX01ISV9CVVNfUENJX0dFTkVSSUM9bQorQ09O RklHX01ISV9CVVNfRVA9bQorIyBlbmQgb2YgQnVzIGRldmljZXMKKworQ09ORklHX0NPTk5FQ1RP Uj15CitDT05GSUdfUFJPQ19FVkVOVFM9eQorCisjCisjIEZpcm13YXJlIERyaXZlcnMKKyMKKwor IworIyBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJmYWNlIFByb3RvY29s CisjCisjIGVuZCBvZiBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJmYWNl IFByb3RvY29sCisKK0NPTkZJR19GSVJNV0FSRV9NRU1NQVA9eQorQ09ORklHX1NZU0ZCPXkKKyMg Q09ORklHX1NZU0ZCX1NJTVBMRUZCIGlzIG5vdCBzZXQKK0NPTkZJR19GV19DU19EU1A9bQorIyBD T05GSUdfR09PR0xFX0ZJUk1XQVJFIGlzIG5vdCBzZXQKKworIworIyBFRkkgKEV4dGVuc2libGUg RmlybXdhcmUgSW50ZXJmYWNlKSBTdXBwb3J0CisjCitDT05GSUdfRUZJX0VTUlQ9eQorQ09ORklH X0VGSV9WQVJTX1BTVE9SRT1tCisjIENPTkZJR19FRklfVkFSU19QU1RPUkVfREVGQVVMVF9ESVNB QkxFIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfUEFSQU1TX0ZST01fRkRUPXkKK0NPTkZJR19FRklf UlVOVElNRV9XUkFQUEVSUz15CitDT05GSUdfRUZJX0dFTkVSSUNfU1RVQj15CisjIENPTkZJR19F RklfWkJPT1QgaXMgbm90IHNldAorQ09ORklHX0VGSV9CT09UTE9BREVSX0NPTlRST0w9bQorQ09O RklHX0VGSV9DQVBTVUxFX0xPQURFUj1tCisjIENPTkZJR19FRklfVEVTVCBpcyBub3Qgc2V0Cisj IENPTkZJR19SRVNFVF9BVFRBQ0tfTUlUSUdBVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19FRklf RElTQUJMRV9QQ0lfRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfRUFSTFlDT049eQorIyBDT05G SUdfRUZJX0RJU0FCTEVfUlVOVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19FRklfQ09DT19TRUNS RVQgaXMgbm90IHNldAorIyBlbmQgb2YgRUZJIChFeHRlbnNpYmxlIEZpcm13YXJlIEludGVyZmFj ZSkgU3VwcG9ydAorCisjCisjIFRlZ3JhIGZpcm13YXJlIGRyaXZlcgorIworIyBlbmQgb2YgVGVn cmEgZmlybXdhcmUgZHJpdmVyCisjIGVuZCBvZiBGaXJtd2FyZSBEcml2ZXJzCisKK0NPTkZJR19H TlNTPW0KK0NPTkZJR19HTlNTX1NFUklBTD1tCitDT05GSUdfR05TU19NVEtfU0VSSUFMPW0KK0NP TkZJR19HTlNTX1NJUkZfU0VSSUFMPW0KK0NPTkZJR19HTlNTX1VCWF9TRVJJQUw9bQorQ09ORklH X0dOU1NfVVNCPW0KK0NPTkZJR19NVEQ9bQorQ09ORklHX01URF9URVNUUz1tCisKKyMKKyMgUGFy dGl0aW9uIHBhcnNlcnMKKyMKK0NPTkZJR19NVERfQVI3X1BBUlRTPW0KK0NPTkZJR19NVERfQ01E TElORV9QQVJUUz1tCitDT05GSUdfTVREX09GX1BBUlRTPW0KK0NPTkZJR19NVERfUkVEQk9PVF9Q QVJUUz1tCitDT05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0xCisjIENPTkZJR19N VERfUkVEQk9PVF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkVE Qk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBQYXJ0aXRpb24gcGFyc2Vy cworCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdf TVREX0JMS0RFVlM9bQorQ09ORklHX01URF9CTE9DSz1tCitDT05GSUdfTVREX0JMT0NLX1JPPW0K KworIworIyBOb3RlIHRoYXQgaW4gc29tZSBjYXNlcyBVQkkgYmxvY2sgaXMgcHJlZmVycmVkLiBT ZWUgTVREX1VCSV9CTE9DSy4KKyMKK0NPTkZJR19GVEw9bQorQ09ORklHX05GVEw9bQorQ09ORklH X05GVExfUlc9eQorQ09ORklHX0lORlRMPW0KK0NPTkZJR19SRkRfRlRMPW0KK0NPTkZJR19TU0ZE Qz1tCisjIENPTkZJR19TTV9GVEwgaXMgbm90IHNldAorQ09ORklHX01URF9PT1BTPW0KKyMgQ09O RklHX01URF9QU1RPUkUgaXMgbm90IHNldAorQ09ORklHX01URF9TV0FQPW0KK0NPTkZJR19NVERf UEFSVElUSU9ORURfTUFTVEVSPXkKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycwor IworQ09ORklHX01URF9DRkk9bQorQ09ORklHX01URF9KRURFQ1BST0JFPW0KK0NPTkZJR19NVERf R0VOX1BST0JFPW0KK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJ X05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENP TkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9N RVRSWT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFO S19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CitDT05GSUdfTVREX01B UF9CQU5LX1dJRFRIXzg9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNj15CitDT05GSUdf TVREX01BUF9CQU5LX1dJRFRIXzMyPXkKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERf Q0ZJX0kyPXkKK0NPTkZJR19NVERfQ0ZJX0k0PXkKK0NPTkZJR19NVERfQ0ZJX0k4PXkKK0NPTkZJ R19NVERfT1RQPXkKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPW0KK0NPTkZJR19NVERfQ0ZJX0FN RFNURD1tCitDT05GSUdfTVREX0NGSV9TVEFBPW0KK0NPTkZJR19NVERfQ0ZJX1VUSUw9bQorQ09O RklHX01URF9SQU09bQorQ09ORklHX01URF9ST009bQorQ09ORklHX01URF9BQlNFTlQ9bQorIyBl bmQgb2YgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKworIworIyBNYXBwaW5nIGRyaXZlcnMg Zm9yIGNoaXAgYWNjZXNzCisjCitDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1M9eQorQ09ORklH X01URF9QSFlTTUFQPW0KKyMgQ09ORklHX01URF9QSFlTTUFQX0NPTVBBVCBpcyBub3Qgc2V0CitD T05GSUdfTVREX1BIWVNNQVBfT0Y9eQorIyBDT05GSUdfTVREX1BIWVNNQVBfVkVSU0FUSUxFIGlz IG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFlTTUFQX0dFTUlOSSBpcyBub3Qgc2V0CitDT05GSUdf TVREX1BIWVNNQVBfR1BJT19BRERSPXkKK0NPTkZJR19NVERfUENJPW0KK0NPTkZJR19NVERfUENN Q0lBPW0KKyMgQ09ORklHX01URF9QQ01DSUFfQU5PTllNT1VTIGlzIG5vdCBzZXQKK0NPTkZJR19N VERfSU5URUxfVlJfTk9SPW0KK0NPTkZJR19NVERfUExBVFJBTT1tCisjIGVuZCBvZiBNYXBwaW5n IGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmlj ZSBkcml2ZXJzCisjCitDT05GSUdfTVREX1BNQzU1MT1tCitDT05GSUdfTVREX1BNQzU1MV9CVUdG SVg9eQorIyBDT05GSUdfTVREX1BNQzU1MV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERf REFUQUZMQVNIIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUNIUDIzSzI1Nj1tCitDT05GSUdfTVRE X01DSFA0OEw2NDA9bQorIyBDT05GSUdfTVREX1NTVDI1TCBpcyBub3Qgc2V0CitDT05GSUdfTVRE X1NMUkFNPW0KK0NPTkZJR19NVERfUEhSQU09bQorQ09ORklHX01URF9NVERSQU09bQorQ09ORklH X01URFJBTV9UT1RBTF9TSVpFPTQwOTYKK0NPTkZJR19NVERSQU1fRVJBU0VfU0laRT0xMjgKK0NP TkZJR19NVERfQkxPQ0syTVREPW0KKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMK KyMKKyMgQ09ORklHX01URF9ET0NHMyBpcyBub3Qgc2V0CisjIGVuZCBvZiBTZWxmLWNvbnRhaW5l ZCBNVEQgZGV2aWNlIGRyaXZlcnMKKworIworIyBOQU5ECisjCitDT05GSUdfTVREX05BTkRfQ09S RT1tCitDT05GSUdfTVREX09ORU5BTkQ9bQorQ09ORklHX01URF9PTkVOQU5EX1ZFUklGWV9XUklU RT15CitDT05GSUdfTVREX09ORU5BTkRfR0VORVJJQz1tCitDT05GSUdfTVREX09ORU5BTkRfT1RQ PXkKK0NPTkZJR19NVERfT05FTkFORF8yWF9QUk9HUkFNPXkKK0NPTkZJR19NVERfUkFXX05BTkQ9 bQorCisjCisjIFJhdy9wYXJhbGxlbCBOQU5EIGZsYXNoIGNvbnRyb2xsZXJzCisjCitDT05GSUdf TVREX05BTkRfREVOQUxJPW0KKyMgQ09ORklHX01URF9OQU5EX0RFTkFMSV9QQ0kgaXMgbm90IHNl dAorQ09ORklHX01URF9OQU5EX0RFTkFMSV9EVD1tCitDT05GSUdfTVREX05BTkRfQ0FGRT1tCitD T05GSUdfTVREX05BTkRfU1VOWEk9bQorQ09ORklHX01URF9OQU5EX01YSUM9bQorQ09ORklHX01U RF9OQU5EX0dQSU89bQorQ09ORklHX01URF9OQU5EX1BMQVRGT1JNPW0KK0NPTkZJR19NVERfTkFO RF9DQURFTkNFPW0KK0NPTkZJR19NVERfTkFORF9BUkFTQU49bQorQ09ORklHX01URF9OQU5EX0lO VEVMX0xHTT1tCitDT05GSUdfTVREX05BTkRfUkVORVNBUz1tCisKKyMKKyMgTWlzYworIworQ09O RklHX01URF9TTV9DT01NT049bQorQ09ORklHX01URF9OQU5EX05BTkRTSU09bQorQ09ORklHX01U RF9OQU5EX1JJQ09IPW0KK0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQPW0KK0NPTkZJR19NVERf TkFORF9ESVNLT05DSElQX1BST0JFX0FEVkFOQ0VEPXkKK0NPTkZJR19NVERfTkFORF9ESVNLT05D SElQX1BST0JFX0FERFJFU1M9MHgwCitDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUF9QUk9CRV9I SUdIPXkKK0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQX0JCVFdSSVRFPXkKK0NPTkZJR19NVERf U1BJX05BTkQ9bQorCisjCisjIEVDQyBlbmdpbmUgc3VwcG9ydAorIworQ09ORklHX01URF9OQU5E X0VDQz15CitDT05GSUdfTVREX05BTkRfRUNDX1NXX0hBTU1JTkc9eQorIyBDT05GSUdfTVREX05B TkRfRUNDX1NXX0hBTU1JTkdfU01DIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9FQ0NfU1df QkNIPXkKK0NPTkZJR19NVERfTkFORF9FQ0NfTVhJQz15CisjIGVuZCBvZiBFQ0MgZW5naW5lIHN1 cHBvcnQKKyMgZW5kIG9mIE5BTkQKKworIworIyBMUEREUiAmIExQRERSMiBQQ00gbWVtb3J5IGRy aXZlcnMKKyMKK0NPTkZJR19NVERfTFBERFI9bQorQ09ORklHX01URF9RSU5GT19QUk9CRT1tCisj IGVuZCBvZiBMUEREUiAmIExQRERSMiBQQ00gbWVtb3J5IGRyaXZlcnMKKworQ09ORklHX01URF9T UElfTk9SPW0KK0NPTkZJR19NVERfU1BJX05PUl9VU0VfNEtfU0VDVE9SUz15CisjIENPTkZJR19N VERfU1BJX05PUl9TV1BfRElTQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX1NQSV9OT1JfU1dQ X0RJU0FCTEVfT05fVk9MQVRJTEU9eQorIyBDT05GSUdfTVREX1NQSV9OT1JfU1dQX0tFRVAgaXMg bm90IHNldAorQ09ORklHX01URF9VQkk9bQorQ09ORklHX01URF9VQklfV0xfVEhSRVNIT0xEPTQw OTYKK0NPTkZJR19NVERfVUJJX0JFQl9MSU1JVD0yMAorIyBDT05GSUdfTVREX1VCSV9GQVNUTUFQ IGlzIG5vdCBzZXQKK0NPTkZJR19NVERfVUJJX0dMVUVCST1tCitDT05GSUdfTVREX1VCSV9CTE9D Sz15CitDT05GSUdfTVREX0hZUEVSQlVTPW0KK0NPTkZJR19EVEM9eQorQ09ORklHX09GPXkKKyMg Q09ORklHX09GX1VOSVRURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19PRl9GTEFUVFJFRT15CitDT05G SUdfT0ZfRUFSTFlfRkxBVFRSRUU9eQorQ09ORklHX09GX0tPQko9eQorQ09ORklHX09GX0RZTkFN SUM9eQorQ09ORklHX09GX0FERFJFU1M9eQorQ09ORklHX09GX0lSUT15CitDT05GSUdfT0ZfUkVT RVJWRURfTUVNPXkKK0NPTkZJR19PRl9SRVNPTFZFPXkKK0NPTkZJR19PRl9PVkVSTEFZPXkKK0NP TkZJR19PRl9OVU1BPXkKK0NPTkZJR19PRl9ETUFfREVGQVVMVF9DT0hFUkVOVD15CitDT05GSUdf UEFSUE9SVD1tCisjIENPTkZJR19QQVJQT1JUX1BDIGlzIG5vdCBzZXQKK0NPTkZJR19QQVJQT1JU XzEyODQ9eQorQ09ORklHX1BBUlBPUlRfTk9UX1BDPXkKK0NPTkZJR19CTEtfREVWPXkKK0NPTkZJ R19CTEtfREVWX05VTExfQkxLPW0KK0NPTkZJR19DRFJPTT1tCitDT05GSUdfQkxLX0RFVl9QQ0lF U1NEX01USVAzMlhYPW0KK0NPTkZJR19aUkFNPW0KK0NPTkZJR19aUkFNX0RFRl9DT01QX0xaT1JM RT15CisjIENPTkZJR19aUkFNX0RFRl9DT01QX1pTVEQgaXMgbm90IHNldAorIyBDT05GSUdfWlJB TV9ERUZfQ09NUF9MWjQgaXMgbm90IHNldAorIyBDT05GSUdfWlJBTV9ERUZfQ09NUF9MWk8gaXMg bm90IHNldAorIyBDT05GSUdfWlJBTV9ERUZfQ09NUF9MWjRIQyBpcyBub3Qgc2V0CisjIENPTkZJ R19aUkFNX0RFRl9DT01QXzg0MiBpcyBub3Qgc2V0CitDT05GSUdfWlJBTV9ERUZfQ09NUD0ibHpv LXJsZSIKK0NPTkZJR19aUkFNX1dSSVRFQkFDSz15CisjIENPTkZJR19aUkFNX01FTU9SWV9UUkFD S0lORyBpcyBub3Qgc2V0CitDT05GSUdfWlJBTV9NVUxUSV9DT01QPXkKK0NPTkZJR19CTEtfREVW X0xPT1A9bQorQ09ORklHX0JMS19ERVZfTE9PUF9NSU5fQ09VTlQ9OAorQ09ORklHX0JMS19ERVZf RFJCRD1tCisjIENPTkZJR19EUkJEX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CitDT05GSUdf QkxLX0RFVl9OQkQ9bQorQ09ORklHX0JMS19ERVZfUkFNPW0KK0NPTkZJR19CTEtfREVWX1JBTV9D T1VOVD0xNgorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MTMxMDcyCitDT05GSUdfQ0RST01fUEtU Q0RWRD1tCitDT05GSUdfQ0RST01fUEtUQ0RWRF9CVUZGRVJTPTgKK0NPTkZJR19DRFJPTV9QS1RD RFZEX1dDQUNIRT15CitDT05GSUdfQVRBX09WRVJfRVRIPW0KK0NPTkZJR19WSVJUSU9fQkxLPW0K K0NPTkZJR19CTEtfREVWX1JCRD1tCisjIENPTkZJR19CTEtfREVWX1VCTEsgaXMgbm90IHNldAor Q09ORklHX0JMS19ERVZfUk5CRD15CitDT05GSUdfQkxLX0RFVl9STkJEX0NMSUVOVD1tCitDT05G SUdfQkxLX0RFVl9STkJEX1NFUlZFUj1tCisKKyMKKyMgTlZNRSBTdXBwb3J0CisjCitDT05GSUdf TlZNRV9DT1JFPW0KK0NPTkZJR19CTEtfREVWX05WTUU9bQorQ09ORklHX05WTUVfTVVMVElQQVRI PXkKK0NPTkZJR19OVk1FX1ZFUkJPU0VfRVJST1JTPXkKK0NPTkZJR19OVk1FX0hXTU9OPXkKK0NP TkZJR19OVk1FX0ZBQlJJQ1M9bQorQ09ORklHX05WTUVfUkRNQT1tCitDT05GSUdfTlZNRV9GQz1t CitDT05GSUdfTlZNRV9UQ1A9bQorIyBDT05GSUdfTlZNRV9BVVRIIGlzIG5vdCBzZXQKK0NPTkZJ R19OVk1FX1RBUkdFVD1tCitDT05GSUdfTlZNRV9UQVJHRVRfUEFTU1RIUlU9eQorQ09ORklHX05W TUVfVEFSR0VUX0xPT1A9bQorQ09ORklHX05WTUVfVEFSR0VUX1JETUE9bQorQ09ORklHX05WTUVf VEFSR0VUX0ZDPW0KK0NPTkZJR19OVk1FX1RBUkdFVF9GQ0xPT1A9bQorQ09ORklHX05WTUVfVEFS R0VUX1RDUD1tCisjIENPTkZJR19OVk1FX1RBUkdFVF9BVVRIIGlzIG5vdCBzZXQKKyMgZW5kIG9m IE5WTUUgU3VwcG9ydAorCisjCisjIE1pc2MgZGV2aWNlcworIworQ09ORklHX1NFTlNPUlNfTElT M0xWMDJEPXkKK0NPTkZJR19BRDUyNVhfRFBPVD1tCitDT05GSUdfQUQ1MjVYX0RQT1RfSTJDPW0K KyMgQ09ORklHX0FENTI1WF9EUE9UX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfSVJRPW0K K0NPTkZJR19QSEFOVE9NPW0KK0NPTkZJR19USUZNX0NPUkU9bQorQ09ORklHX1RJRk1fN1hYMT1t CitDT05GSUdfSUNTOTMyUzQwMT1tCitDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTPW0KK0NPTkZJ R19TTVBST19FUlJNT049bQorQ09ORklHX1NNUFJPX01JU0M9bQorQ09ORklHX0hJNjQyMVY2MDBf SVJRPW0KK0NPTkZJR19IUF9JTE89bQorIyBDT05GSUdfQVBEUzk4MDJBTFMgaXMgbm90IHNldAor IyBDT05GSUdfSVNMMjkwMDMgaXMgbm90IHNldAorQ09ORklHX0lTTDI5MDIwPW0KK0NPTkZJR19T RU5TT1JTX1RTTDI1NTA9bQorQ09ORklHX1NFTlNPUlNfQkgxNzcwPW0KK0NPTkZJR19TRU5TT1JT X0FQRFM5OTBYPW0KK0NPTkZJR19ITUM2MzUyPW0KK0NPTkZJR19EUzE2ODI9bQorIyBDT05GSUdf TEFUVElDRV9FQ1AzX0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfU1JBTT15CitDT05GSUdfRFdf WERBVEFfUENJRT1tCitDT05GSUdfUENJX0VORFBPSU5UX1RFU1Q9bQorQ09ORklHX1hJTElOWF9T REZFQz1tCitDT05GSUdfTUlTQ19SVFNYPW0KK0NPTkZJR19ISVNJX0hJS0VZX1VTQj1tCitDT05G SUdfT1BFTl9ESUNFPW0KK0NPTkZJR19WQ1BVX1NUQUxMX0RFVEVDVE9SPW0KK0NPTkZJR19DMlBP UlQ9bQorCisjCisjIEVFUFJPTSBzdXBwb3J0CisjCitDT05GSUdfRUVQUk9NX0FUMjQ9bQorIyBD T05GSUdfRUVQUk9NX0FUMjUgaXMgbm90IHNldAorQ09ORklHX0VFUFJPTV9MRUdBQ1k9bQorQ09O RklHX0VFUFJPTV9NQVg2ODc1PW0KK0NPTkZJR19FRVBST01fOTNDWDY9bQorIyBDT05GSUdfRUVQ Uk9NXzkzWFg0NiBpcyBub3Qgc2V0CitDT05GSUdfRUVQUk9NX0lEVF84OUhQRVNYPW0KK0NPTkZJ R19FRVBST01fRUUxMDA0PW0KKyMgZW5kIG9mIEVFUFJPTSBzdXBwb3J0CisKK0NPTkZJR19DQjcx MF9DT1JFPW0KKyMgQ09ORklHX0NCNzEwX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DQjcxMF9E RUJVR19BU1NVTVBUSU9OUz15CisKKyMKKyMgVGV4YXMgSW5zdHJ1bWVudHMgc2hhcmVkIHRyYW5z cG9ydCBsaW5lIGRpc2NpcGxpbmUKKyMKK0NPTkZJR19USV9TVD1tCisjIGVuZCBvZiBUZXhhcyBJ bnN0cnVtZW50cyBzaGFyZWQgdHJhbnNwb3J0IGxpbmUgZGlzY2lwbGluZQorCitDT05GSUdfU0VO U09SU19MSVMzX1NQST15CitDT05GSUdfU0VOU09SU19MSVMzX0kyQz1tCitDT05GSUdfQUxURVJB X1NUQVBMPW0KK0NPTkZJR19HRU5XUUU9bQorQ09ORklHX0dFTldRRV9QTEFURk9STV9FUlJPUl9S RUNPVkVSWT0wCitDT05GSUdfRUNITz1tCitDT05GSUdfQkNNX1ZLPW0KKyMgQ09ORklHX0JDTV9W S19UVFkgaXMgbm90IHNldAorQ09ORklHX01JU0NfQUxDT1JfUENJPW0KK0NPTkZJR19NSVNDX1JU U1hfUENJPW0KK0NPTkZJR19NSVNDX1JUU1hfVVNCPW0KK0NPTkZJR19VQUNDRT1tCitDT05GSUdf UFZQQU5JQz15CitDT05GSUdfUFZQQU5JQ19NTUlPPW0KK0NPTkZJR19QVlBBTklDX1BDST1tCitD T05GSUdfR1BfUENJMVhYWFg9bQorIyBlbmQgb2YgTWlzYyBkZXZpY2VzCisKKyMKKyMgU0NTSSBk ZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX1NDU0lfTU9EPXkKK0NPTkZJR19SQUlEX0FUVFJTPW0K K0NPTkZJR19TQ1NJX0NPTU1PTj15CitDT05GSUdfU0NTST15CitDT05GSUdfU0NTSV9ETUE9eQor Q09ORklHX1NDU0lfTkVUTElOSz15CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJ IHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9 eQorQ09ORklHX0NIUl9ERVZfU1Q9bQorQ09ORklHX0JMS19ERVZfU1I9bQorQ09ORklHX0NIUl9E RVZfU0c9bQorQ09ORklHX0JMS19ERVZfQlNHPXkKK0NPTkZJR19DSFJfREVWX1NDSD1tCitDT05G SUdfU0NTSV9FTkNMT1NVUkU9bQorQ09ORklHX1NDU0lfQ09OU1RBTlRTPXkKK0NPTkZJR19TQ1NJ X0xPR0dJTkc9eQorQ09ORklHX1NDU0lfU0NBTl9BU1lOQz15CisKKyMKKyMgU0NTSSBUcmFuc3Bv cnRzCisjCitDT05GSUdfU0NTSV9TUElfQVRUUlM9bQorQ09ORklHX1NDU0lfRkNfQVRUUlM9bQor Q09ORklHX1NDU0lfSVNDU0lfQVRUUlM9bQorQ09ORklHX1NDU0lfU0FTX0FUVFJTPW0KK0NPTkZJ R19TQ1NJX1NBU19MSUJTQVM9bQorQ09ORklHX1NDU0lfU0FTX0FUQT15CitDT05GSUdfU0NTSV9T QVNfSE9TVF9TTVA9eQorQ09ORklHX1NDU0lfU1JQX0FUVFJTPW0KKyMgZW5kIG9mIFNDU0kgVHJh bnNwb3J0cworCitDT05GSUdfU0NTSV9MT1dMRVZFTD15CitDT05GSUdfSVNDU0lfVENQPW0KK0NP TkZJR19JU0NTSV9CT09UX1NZU0ZTPW0KK0NPTkZJR19TQ1NJX0NYR0IzX0lTQ1NJPW0KK0NPTkZJ R19TQ1NJX0NYR0I0X0lTQ1NJPW0KK0NPTkZJR19TQ1NJX0JOWDJfSVNDU0k9bQorQ09ORklHX1ND U0lfQk5YMlhfRkNPRT1tCitDT05GSUdfQkUySVNDU0k9bQorQ09ORklHX0JMS19ERVZfM1dfWFhY WF9SQUlEPW0KK0NPTkZJR19TQ1NJX0hQU0E9bQorQ09ORklHX1NDU0lfM1dfOVhYWD1tCitDT05G SUdfU0NTSV8zV19TQVM9bQorQ09ORklHX1NDU0lfQUNBUkQ9bQorQ09ORklHX1NDU0lfQUFDUkFJ RD1tCitDT05GSUdfU0NTSV9BSUM3WFhYPW0KK0NPTkZJR19BSUM3WFhYX0NNRFNfUEVSX0RFVklD RT0zMgorQ09ORklHX0FJQzdYWFhfUkVTRVRfREVMQVlfTVM9MTUwMDAKKyMgQ09ORklHX0FJQzdY WFhfREVCVUdfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19BSUM3WFhYX0RFQlVHX01BU0s9MAor Q09ORklHX0FJQzdYWFhfUkVHX1BSRVRUWV9QUklOVD15CitDT05GSUdfU0NTSV9BSUM3OVhYPW0K K0NPTkZJR19BSUM3OVhYX0NNRFNfUEVSX0RFVklDRT0zMgorQ09ORklHX0FJQzc5WFhfUkVTRVRf REVMQVlfTVM9NTAwMAorIyBDT05GSUdfQUlDNzlYWF9ERUJVR19FTkFCTEUgaXMgbm90IHNldAor Q09ORklHX0FJQzc5WFhfREVCVUdfTUFTSz0wCitDT05GSUdfQUlDNzlYWF9SRUdfUFJFVFRZX1BS SU5UPXkKK0NPTkZJR19TQ1NJX0FJQzk0WFg9bQorIyBDT05GSUdfQUlDOTRYWF9ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfU0NTSV9NVlNBUz1tCisjIENPTkZJR19TQ1NJX01WU0FTX0RFQlVHIGlz IG5vdCBzZXQKK0NPTkZJR19TQ1NJX01WU0FTX1RBU0tMRVQ9eQorQ09ORklHX1NDU0lfTVZVTUk9 bQorQ09ORklHX1NDU0lfQURWQU5TWVM9bQorQ09ORklHX1NDU0lfQVJDTVNSPW0KK0NPTkZJR19T Q1NJX0VTQVMyUj1tCitDT05GSUdfTUVHQVJBSURfTkVXR0VOPXkKK0NPTkZJR19NRUdBUkFJRF9N TT1tCitDT05GSUdfTUVHQVJBSURfTUFJTEJPWD1tCitDT05GSUdfTUVHQVJBSURfTEVHQUNZPW0K K0NPTkZJR19NRUdBUkFJRF9TQVM9bQorQ09ORklHX1NDU0lfTVBUM1NBUz1tCitDT05GSUdfU0NT SV9NUFQyU0FTX01BWF9TR0U9MTI4CitDT05GSUdfU0NTSV9NUFQzU0FTX01BWF9TR0U9MTI4CitD T05GSUdfU0NTSV9NUFQyU0FTPW0KK0NPTkZJR19TQ1NJX01QSTNNUj1tCitDT05GSUdfU0NTSV9T TUFSVFBRST1tCitDT05GSUdfU0NTSV9IUFRJT1A9bQorQ09ORklHX1NDU0lfQlVTTE9HSUM9bQor IyBDT05GSUdfU0NTSV9GTEFTSFBPSU5UIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX01ZUkI9bQor Q09ORklHX1NDU0lfTVlSUz1tCitDT05GSUdfTElCRkM9bQorQ09ORklHX0xJQkZDT0U9bQorQ09O RklHX0ZDT0U9bQorQ09ORklHX1NDU0lfU05JQz1tCisjIENPTkZJR19TQ1NJX1NOSUNfREVCVUdf RlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfRE1YMzE5MUQ9bQorQ09ORklHX1NDU0lfRkRPTUFJ Tj1tCitDT05GSUdfU0NTSV9GRE9NQUlOX1BDST1tCitDT05GSUdfU0NTSV9JUFM9bQorQ09ORklH X1NDU0lfSU5JVElPPW0KK0NPTkZJR19TQ1NJX0lOSUExMDA9bQorQ09ORklHX1NDU0lfU1RFWD1t CitDT05GSUdfU0NTSV9TWU01M0M4WFhfMj1tCitDT05GSUdfU0NTSV9TWU01M0M4WFhfRE1BX0FE RFJFU1NJTkdfTU9ERT0xCitDT05GSUdfU0NTSV9TWU01M0M4WFhfREVGQVVMVF9UQUdTPTE2CitD T05GSUdfU0NTSV9TWU01M0M4WFhfTUFYX1RBR1M9NjQKK0NPTkZJR19TQ1NJX1NZTTUzQzhYWF9N TUlPPXkKK0NPTkZJR19TQ1NJX0lQUj1tCitDT05GSUdfU0NTSV9JUFJfVFJBQ0U9eQorQ09ORklH X1NDU0lfSVBSX0RVTVA9eQorQ09ORklHX1NDU0lfUUxPR0lDXzEyODA9bQorQ09ORklHX1NDU0lf UUxBX0ZDPW0KK0NPTkZJR19UQ01fUUxBMlhYWD1tCisjIENPTkZJR19UQ01fUUxBMlhYWF9ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9RTEFfSVNDU0k9bQorQ09ORklHX1FFREk9bQorQ09O RklHX1FFREY9bQorQ09ORklHX1NDU0lfTFBGQz1tCisjIENPTkZJR19TQ1NJX0xQRkNfREVCVUdf RlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfRUZDVD1tCitDT05GSUdfU0NTSV9EQzM5NXg9bQor Q09ORklHX1NDU0lfQU01M0M5NzQ9bQorQ09ORklHX1NDU0lfV0Q3MTlYPW0KK0NPTkZJR19TQ1NJ X0RFQlVHPW0KK0NPTkZJR19TQ1NJX1BNQ1JBSUQ9bQorQ09ORklHX1NDU0lfUE04MDAxPW0KK0NP TkZJR19TQ1NJX0JGQV9GQz1tCitDT05GSUdfU0NTSV9WSVJUSU89bQorQ09ORklHX1NDU0lfQ0hF TFNJT19GQ09FPW0KK0NPTkZJR19TQ1NJX0xPV0xFVkVMX1BDTUNJQT15CitDT05GSUdfUENNQ0lB X0FIQTE1Mlg9bQorQ09ORklHX1BDTUNJQV9GRE9NQUlOPW0KK0NPTkZJR19QQ01DSUFfUUxPR0lD PW0KK0NPTkZJR19QQ01DSUFfU1lNNTNDNTAwPW0KK0NPTkZJR19TQ1NJX0RIPXkKK0NPTkZJR19T Q1NJX0RIX1JEQUM9bQorQ09ORklHX1NDU0lfREhfSFBfU1c9bQorQ09ORklHX1NDU0lfREhfRU1D PW0KK0NPTkZJR19TQ1NJX0RIX0FMVUE9bQorIyBlbmQgb2YgU0NTSSBkZXZpY2Ugc3VwcG9ydAor CitDT05GSUdfQVRBPXkKK0NPTkZJR19TQVRBX0hPU1Q9eQorQ09ORklHX1BBVEFfVElNSU5HUz15 CitDT05GSUdfQVRBX1ZFUkJPU0VfRVJST1I9eQorQ09ORklHX0FUQV9GT1JDRT15CitDT05GSUdf U0FUQV9QTVA9eQorCisjCisjIENvbnRyb2xsZXJzIHdpdGggbm9uLVNGRiBuYXRpdmUgaW50ZXJm YWNlCisjCitDT05GSUdfU0FUQV9BSENJPXkKK0NPTkZJR19TQVRBX01PQklMRV9MUE1fUE9MSUNZ PTAKK0NPTkZJR19TQVRBX0FIQ0lfUExBVEZPUk09bQorQ09ORklHX0FIQ0lfRFdDPW0KK0NPTkZJ R19BSENJX0NFVkE9bQorQ09ORklHX0FIQ0lfU1VOWEk9bQorQ09ORklHX0FIQ0lfUU9SSVE9bQor Q09ORklHX1NBVEFfSU5JQzE2Mlg9bQorQ09ORklHX1NBVEFfQUNBUkRfQUhDST1tCitDT05GSUdf U0FUQV9TSUwyND1tCitDT05GSUdfQVRBX1NGRj15CisKKyMKKyMgU0ZGIGNvbnRyb2xsZXJzIHdp dGggY3VzdG9tIERNQSBpbnRlcmZhY2UKKyMKK0NPTkZJR19QRENfQURNQT1tCitDT05GSUdfU0FU QV9RU1RPUj1tCitDT05GSUdfU0FUQV9TWDQ9bQorQ09ORklHX0FUQV9CTURNQT15CisKKyMKKyMg U0FUQSBTRkYgY29udHJvbGxlcnMgd2l0aCBCTURNQQorIworQ09ORklHX0FUQV9QSUlYPW0KK0NP TkZJR19TQVRBX0RXQz1tCitDT05GSUdfU0FUQV9EV0NfT0xEX0RNQT15CitDT05GSUdfU0FUQV9N Vj1tCitDT05GSUdfU0FUQV9OVj1tCitDT05GSUdfU0FUQV9QUk9NSVNFPW0KK0NPTkZJR19TQVRB X1JDQVI9bQorQ09ORklHX1NBVEFfU0lMPW0KK0NPTkZJR19TQVRBX1NJUz1tCitDT05GSUdfU0FU QV9TVlc9bQorQ09ORklHX1NBVEFfVUxJPW0KK0NPTkZJR19TQVRBX1ZJQT1tCitDT05GSUdfU0FU QV9WSVRFU1NFPW0KKworIworIyBQQVRBIFNGRiBjb250cm9sbGVycyB3aXRoIEJNRE1BCisjCitD T05GSUdfUEFUQV9BTEk9bQorQ09ORklHX1BBVEFfQU1EPW0KK0NPTkZJR19QQVRBX0FSVE9QPW0K K0NPTkZJR19QQVRBX0FUSUlYUD1tCitDT05GSUdfUEFUQV9BVFA4NjdYPW0KK0NPTkZJR19QQVRB X0NNRDY0WD1tCitDT05GSUdfUEFUQV9DWVBSRVNTPW0KK0NPTkZJR19QQVRBX0VGQVI9bQorQ09O RklHX1BBVEFfSFBUMzY2PW0KK0NPTkZJR19QQVRBX0hQVDM3WD1tCitDT05GSUdfUEFUQV9IUFQz WDJOPW0KK0NPTkZJR19QQVRBX0hQVDNYMz1tCisjIENPTkZJR19QQVRBX0hQVDNYM19ETUEgaXMg bm90IHNldAorQ09ORklHX1BBVEFfSVQ4MjEzPW0KK0NPTkZJR19QQVRBX0lUODIxWD1tCitDT05G SUdfUEFUQV9KTUlDUk9OPW0KK0NPTkZJR19QQVRBX01BUlZFTEw9bQorQ09ORklHX1BBVEFfTkVU Q0VMTD1tCitDT05GSUdfUEFUQV9OSU5KQTMyPW0KK0NPTkZJR19QQVRBX05TODc0MTU9bQorQ09O RklHX1BBVEFfT0xEUElJWD1tCitDT05GSUdfUEFUQV9PUFRJRE1BPW0KK0NPTkZJR19QQVRBX1BE QzIwMjdYPW0KK0NPTkZJR19QQVRBX1BEQ19PTEQ9bQorQ09ORklHX1BBVEFfUkFESVNZUz1tCitD T05GSUdfUEFUQV9SREM9bQorQ09ORklHX1BBVEFfU0NIPW0KK0NPTkZJR19QQVRBX1NFUlZFUldP UktTPW0KK0NPTkZJR19QQVRBX1NJTDY4MD1tCitDT05GSUdfUEFUQV9TSVM9bQorQ09ORklHX1BB VEFfVE9TSElCQT1tCitDT05GSUdfUEFUQV9UUklGTEVYPW0KK0NPTkZJR19QQVRBX1ZJQT1tCitD T05GSUdfUEFUQV9XSU5CT05EPW0KKworIworIyBQSU8tb25seSBTRkYgY29udHJvbGxlcnMKKyMK K0NPTkZJR19QQVRBX0NNRDY0MF9QQ0k9bQorQ09ORklHX1BBVEFfTVBJSVg9bQorQ09ORklHX1BB VEFfTlM4NzQxMD1tCitDT05GSUdfUEFUQV9PUFRJPW0KK0NPTkZJR19QQVRBX1BDTUNJQT1tCisj IENPTkZJR19QQVRBX09GX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX1JaMTAwMD1t CisKKyMKKyMgR2VuZXJpYyBmYWxsYmFjayAvIGxlZ2FjeSBkcml2ZXJzCisjCitDT05GSUdfQVRB X0dFTkVSSUM9bQorIyBDT05GSUdfUEFUQV9MRUdBQ1kgaXMgbm90IHNldAorQ09ORklHX01EPXkK K0NPTkZJR19CTEtfREVWX01EPW0KK0NPTkZJR19NRF9MSU5FQVI9bQorQ09ORklHX01EX1JBSUQw PW0KK0NPTkZJR19NRF9SQUlEMT1tCitDT05GSUdfTURfUkFJRDEwPW0KK0NPTkZJR19NRF9SQUlE NDU2PW0KK0NPTkZJR19NRF9NVUxUSVBBVEg9bQorQ09ORklHX01EX0ZBVUxUWT1tCitDT05GSUdf TURfQ0xVU1RFUj1tCitDT05GSUdfQkNBQ0hFPW0KKyMgQ09ORklHX0JDQUNIRV9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19CQ0FDSEVfQ0xPU1VSRVNfREVCVUcgaXMgbm90IHNldAorIyBDT05G SUdfQkNBQ0hFX0FTWU5DX1JFR0lTVFJBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9E TV9CVUlMVElOPXkKK0NPTkZJR19CTEtfREVWX0RNPW0KKyMgQ09ORklHX0RNX0RFQlVHIGlzIG5v dCBzZXQKK0NPTkZJR19ETV9CVUZJTz1tCisjIENPTkZJR19ETV9ERUJVR19CTE9DS19NQU5BR0VS X0xPQ0tJTkcgaXMgbm90IHNldAorQ09ORklHX0RNX0JJT19QUklTT049bQorQ09ORklHX0RNX1BF UlNJU1RFTlRfREFUQT1tCitDT05GSUdfRE1fVU5TVFJJUEVEPW0KK0NPTkZJR19ETV9DUllQVD1t CitDT05GSUdfRE1fU05BUFNIT1Q9bQorQ09ORklHX0RNX1RISU5fUFJPVklTSU9OSU5HPW0KK0NP TkZJR19ETV9DQUNIRT1tCitDT05GSUdfRE1fQ0FDSEVfU01RPW0KK0NPTkZJR19ETV9XUklURUNB Q0hFPW0KK0NPTkZJR19ETV9FQlM9bQorQ09ORklHX0RNX0VSQT1tCitDT05GSUdfRE1fQ0xPTkU9 bQorQ09ORklHX0RNX01JUlJPUj1tCitDT05GSUdfRE1fTE9HX1VTRVJTUEFDRT1tCitDT05GSUdf RE1fUkFJRD1tCitDT05GSUdfRE1fWkVSTz1tCitDT05GSUdfRE1fTVVMVElQQVRIPW0KK0NPTkZJ R19ETV9NVUxUSVBBVEhfUUw9bQorQ09ORklHX0RNX01VTFRJUEFUSF9TVD1tCitDT05GSUdfRE1f TVVMVElQQVRIX0hTVD1tCitDT05GSUdfRE1fTVVMVElQQVRIX0lPQT1tCitDT05GSUdfRE1fREVM QVk9bQorQ09ORklHX0RNX0RVU1Q9bQorQ09ORklHX0RNX1VFVkVOVD15CitDT05GSUdfRE1fRkxB S0VZPW0KK0NPTkZJR19ETV9WRVJJVFk9bQorIyBDT05GSUdfRE1fVkVSSVRZX1ZFUklGWV9ST09U SEFTSF9TSUcgaXMgbm90IHNldAorQ09ORklHX0RNX1ZFUklUWV9GRUM9eQorQ09ORklHX0RNX1NX SVRDSD1tCitDT05GSUdfRE1fTE9HX1dSSVRFUz1tCitDT05GSUdfRE1fSU5URUdSSVRZPW0KK0NP TkZJR19ETV9aT05FRD1tCitDT05GSUdfRE1fQVVESVQ9eQorQ09ORklHX1RBUkdFVF9DT1JFPW0K K0NPTkZJR19UQ01fSUJMT0NLPW0KK0NPTkZJR19UQ01fRklMRUlPPW0KK0NPTkZJR19UQ01fUFND U0k9bQorQ09ORklHX1RDTV9VU0VSMj1tCitDT05GSUdfTE9PUEJBQ0tfVEFSR0VUPW0KK0NPTkZJ R19UQ01fRkM9bQorQ09ORklHX0lTQ1NJX1RBUkdFVD1tCitDT05GSUdfSVNDU0lfVEFSR0VUX0NY R0I0PW0KK0NPTkZJR19TQlBfVEFSR0VUPW0KK0NPTkZJR19GVVNJT049eQorQ09ORklHX0ZVU0lP Tl9TUEk9bQorQ09ORklHX0ZVU0lPTl9GQz1tCitDT05GSUdfRlVTSU9OX1NBUz1tCitDT05GSUdf RlVTSU9OX01BWF9TR0U9MTI4CitDT05GSUdfRlVTSU9OX0NUTD1tCitDT05GSUdfRlVTSU9OX0xB Tj1tCisjIENPTkZJR19GVVNJT05fTE9HR0lORyBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0 IChGaXJlV2lyZSkgc3VwcG9ydAorIworQ09ORklHX0ZJUkVXSVJFPW0KK0NPTkZJR19GSVJFV0lS RV9PSENJPW0KK0NPTkZJR19GSVJFV0lSRV9TQlAyPW0KK0NPTkZJR19GSVJFV0lSRV9ORVQ9bQor Q09ORklHX0ZJUkVXSVJFX05PU1k9bQorIyBlbmQgb2YgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3Vw cG9ydAorCitDT05GSUdfTkVUREVWSUNFUz15CitDT05GSUdfTUlJPW0KK0NPTkZJR19ORVRfQ09S RT15CitDT05GSUdfQk9ORElORz1tCitDT05GSUdfRFVNTVk9bQorQ09ORklHX1dJUkVHVUFSRD1t CisjIENPTkZJR19XSVJFR1VBUkRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VRVUFMSVpFUj1t CitDT05GSUdfTkVUX0ZDPXkKK0NPTkZJR19JRkI9bQorQ09ORklHX05FVF9URUFNPW0KK0NPTkZJ R19ORVRfVEVBTV9NT0RFX0JST0FEQ0FTVD1tCitDT05GSUdfTkVUX1RFQU1fTU9ERV9ST1VORFJP QklOPW0KK0NPTkZJR19ORVRfVEVBTV9NT0RFX1JBTkRPTT1tCitDT05GSUdfTkVUX1RFQU1fTU9E RV9BQ1RJVkVCQUNLVVA9bQorQ09ORklHX05FVF9URUFNX01PREVfTE9BREJBTEFOQ0U9bQorQ09O RklHX01BQ1ZMQU49bQorQ09ORklHX01BQ1ZUQVA9bQorQ09ORklHX0lQVkxBTl9MM1M9eQorQ09O RklHX0lQVkxBTj1tCitDT05GSUdfSVBWVEFQPW0KK0NPTkZJR19WWExBTj1tCitDT05GSUdfR0VO RVZFPW0KK0NPTkZJR19CQVJFVURQPW0KK0NPTkZJR19HVFA9bQorQ09ORklHX0FNVD1tCitDT05G SUdfTUFDU0VDPW0KK0NPTkZJR19ORVRDT05TT0xFPW0KK0NPTkZJR19ORVRDT05TT0xFX0RZTkFN SUM9eQorQ09ORklHX05FVFBPTEw9eQorQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVI9eQorQ09O RklHX05UQl9ORVRERVY9bQorQ09ORklHX1JJT05FVD1tCitDT05GSUdfUklPTkVUX1RYX1NJWkU9 MTI4CitDT05GSUdfUklPTkVUX1JYX1NJWkU9MTI4CitDT05GSUdfVFVOPW0KK0NPTkZJR19UQVA9 bQorIyBDT05GSUdfVFVOX1ZORVRfQ1JPU1NfTEUgaXMgbm90IHNldAorQ09ORklHX1ZFVEg9bQor Q09ORklHX1ZJUlRJT19ORVQ9bQorQ09ORklHX05MTU9OPW0KK0NPTkZJR19ORVRfVlJGPW0KK0NP TkZJR19WU09DS01PTj1tCitDT05GSUdfTUhJX05FVD1tCitDT05GSUdfU1VOR0VNX1BIWT1tCisj IENPTkZJR19BUkNORVQgaXMgbm90IHNldAorQ09ORklHX0FUTV9EUklWRVJTPXkKK0NPTkZJR19B VE1fRFVNTVk9bQorQ09ORklHX0FUTV9UQ1A9bQorQ09ORklHX0FUTV9MQU5BST1tCitDT05GSUdf QVRNX0VOST1tCisjIENPTkZJR19BVE1fRU5JX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BVE1f RU5JX1RVTkVfQlVSU1Q9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfVFhfMTZXPXkKK0NPTkZJR19B VE1fRU5JX0JVUlNUX1RYXzhXPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNUX1RYXzRXPXkKK0NPTkZJ R19BVE1fRU5JX0JVUlNUX1RYXzJXPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNUX1JYXzE2Vz15CitD T05GSUdfQVRNX0VOSV9CVVJTVF9SWF84Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF80Vz15 CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF8yVz15CitDT05GSUdfQVRNX05JQ1NUQVI9bQorQ09O RklHX0FUTV9OSUNTVEFSX1VTRV9TVU5JPXkKK0NPTkZJR19BVE1fTklDU1RBUl9VU0VfSURUNzcx MDU9eQorQ09ORklHX0FUTV9JRFQ3NzI1Mj1tCisjIENPTkZJR19BVE1fSURUNzcyNTJfREVCVUcg aXMgbm90IHNldAorIyBDT05GSUdfQVRNX0lEVDc3MjUyX1JDVl9BTEwgaXMgbm90IHNldAorQ09O RklHX0FUTV9JRFQ3NzI1Ml9VU0VfU1VOST15CitDT05GSUdfQVRNX0lBPW0KKyMgQ09ORklHX0FU TV9JQV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQVRNX0ZPUkUyMDBFPW0KK0NPTkZJR19BVE1f Rk9SRTIwMEVfVVNFX1RBU0tMRVQ9eQorQ09ORklHX0FUTV9GT1JFMjAwRV9UWF9SRVRSWT0xNgor Q09ORklHX0FUTV9GT1JFMjAwRV9ERUJVRz0wCitDT05GSUdfQVRNX0hFPW0KK0NPTkZJR19BVE1f SEVfVVNFX1NVTkk9eQorQ09ORklHX0FUTV9TT0xPUz1tCisjIENPTkZJR19DQUlGX0RSSVZFUlMg aXMgbm90IHNldAorCisjCisjIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUgZHJpdmVy cworIworQ09ORklHX0I1Mz1tCitDT05GSUdfQjUzX1NQSV9EUklWRVI9bQorQ09ORklHX0I1M19N RElPX0RSSVZFUj1tCitDT05GSUdfQjUzX01NQVBfRFJJVkVSPW0KK0NPTkZJR19CNTNfU1JBQl9E UklWRVI9bQorQ09ORklHX0I1M19TRVJERVM9bQorQ09ORklHX05FVF9EU0FfQkNNX1NGMj1tCitD T05GSUdfTkVUX0RTQV9MT09QPW0KK0NPTkZJR19ORVRfRFNBX0hJUlNDSE1BTk5fSEVMTENSRUVL PW0KK0NPTkZJR19ORVRfRFNBX0xBTlRJUV9HU1dJUD1tCitDT05GSUdfTkVUX0RTQV9NVDc1MzA9 bQorQ09ORklHX05FVF9EU0FfTVY4OEU2MDYwPW0KK0NPTkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9L U1pfQ09NTU9OPW0KK0NPTkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9LU1o5NDc3X0kyQz1tCisjIENP TkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9LU1pfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRFNB X01JQ1JPQ0hJUF9LU1pfUFRQPXkKK0NPTkZJR19ORVRfRFNBX01JQ1JPQ0hJUF9LU1o4ODYzX1NN ST1tCitDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFg9bQorQ09ORklHX05FVF9EU0FfTVY4OEU2WFhY X1BUUD15CitDT05GSUdfTkVUX0RTQV9NU0NDX0ZFTElYX0RTQV9MSUI9bQorQ09ORklHX05FVF9E U0FfTVNDQ19PQ0VMT1RfRVhUPW0KK0NPTkZJR19ORVRfRFNBX01TQ0NfU0VWSUxMRT1tCisjIENP TkZJR19ORVRfRFNBX0FSOTMzMSBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0RTQV9RQ0E4Sz1tCitD T05GSUdfTkVUX0RTQV9TSkExMTA1PW0KK0NPTkZJR19ORVRfRFNBX1NKQTExMDVfUFRQPXkKK0NP TkZJR19ORVRfRFNBX1NKQTExMDVfVEFTPXkKK0NPTkZJR19ORVRfRFNBX1NKQTExMDVfVkw9eQor Q09ORklHX05FVF9EU0FfWFJTNzAwWD1tCitDT05GSUdfTkVUX0RTQV9YUlM3MDBYX0kyQz1tCitD T05GSUdfTkVUX0RTQV9YUlM3MDBYX01ESU89bQorQ09ORklHX05FVF9EU0FfUkVBTFRFSz1tCitD T05GSUdfTkVUX0RTQV9SRUFMVEVLX01ESU89bQorQ09ORklHX05FVF9EU0FfUkVBTFRFS19TTUk9 bQorQ09ORklHX05FVF9EU0FfUkVBTFRFS19SVEw4MzY1TUI9bQorQ09ORklHX05FVF9EU0FfUkVB TFRFS19SVEw4MzY2UkI9bQorQ09ORklHX05FVF9EU0FfU01TQ19MQU45MzAzPW0KK0NPTkZJR19O RVRfRFNBX1NNU0NfTEFOOTMwM19JMkM9bQorQ09ORklHX05FVF9EU0FfU01TQ19MQU45MzAzX01E SU89bQorQ09ORklHX05FVF9EU0FfVklURVNTRV9WU0M3M1hYPW0KK0NPTkZJR19ORVRfRFNBX1ZJ VEVTU0VfVlNDNzNYWF9TUEk9bQorQ09ORklHX05FVF9EU0FfVklURVNTRV9WU0M3M1hYX1BMQVRG T1JNPW0KKyMgZW5kIG9mIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUgZHJpdmVycwor CitDT05GSUdfRVRIRVJORVQ9eQorQ09ORklHX01ESU89bQorQ09ORklHX05FVF9WRU5ET1JfM0NP TT15CitDT05GSUdfUENNQ0lBXzNDNTc0PW0KK0NPTkZJR19QQ01DSUFfM0M1ODk9bQorQ09ORklH X1ZPUlRFWD1tCitDT05GSUdfVFlQSE9PTj1tCitDT05GSUdfTkVUX1ZFTkRPUl9BREFQVEVDPXkK K0NPTkZJR19BREFQVEVDX1NUQVJGSVJFPW0KK0NPTkZJR19ORVRfVkVORE9SX0FHRVJFPXkKK0NP TkZJR19FVDEzMVg9bQorQ09ORklHX05FVF9WRU5ET1JfQUxBQ1JJVEVDSD15CitDT05GSUdfU0xJ Q09TUz1tCitDT05GSUdfTkVUX1ZFTkRPUl9BTExXSU5ORVI9eQorQ09ORklHX1NVTjRJX0VNQUM9 bQorQ09ORklHX05FVF9WRU5ET1JfQUxURU9OPXkKK0NPTkZJR19BQ0VOSUM9bQorIyBDT05GSUdf QUNFTklDX09NSVRfVElHT05fSSBpcyBub3Qgc2V0CisjIENPTkZJR19BTFRFUkFfVFNFIGlzIG5v dCBzZXQKK0NPTkZJR19ORVRfVkVORE9SX0FNQVpPTj15CitDT05GSUdfRU5BX0VUSEVSTkVUPW0K K0NPTkZJR19ORVRfVkVORE9SX0FNRD15CitDT05GSUdfQU1EODExMV9FVEg9bQorQ09ORklHX1BD TkVUMzI9bQorQ09ORklHX1BDTUNJQV9OTUNMQU49bQorQ09ORklHX05FVF9WRU5ET1JfQVFVQU5U SUE9eQorQ09ORklHX0FRVElPTj1tCitDT05GSUdfTkVUX1ZFTkRPUl9BUkM9eQorQ09ORklHX05F VF9WRU5ET1JfQVNJWD15CitDT05GSUdfU1BJX0FYODg3OTZDPW0KKyMgQ09ORklHX1NQSV9BWDg4 Nzk2Q19DT01QUkVTU0lPTiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9BVEhFUk9TPXkK K0NPTkZJR19BVEwyPW0KK0NPTkZJR19BVEwxPW0KK0NPTkZJR19BVEwxRT1tCitDT05GSUdfQVRM MUM9bQorQ09ORklHX0FMWD1tCitDT05GSUdfTkVUX1ZFTkRPUl9CUk9BRENPTT15CitDT05GSUdf QjQ0PW0KK0NPTkZJR19CNDRfUENJX0FVVE9TRUxFQ1Q9eQorQ09ORklHX0I0NF9QQ0lDT1JFX0FV VE9TRUxFQ1Q9eQorQ09ORklHX0I0NF9QQ0k9eQorQ09ORklHX0JDTUdFTkVUPW0KK0NPTkZJR19C TlgyPW0KK0NPTkZJR19DTklDPW0KK0NPTkZJR19USUdPTjM9bQorQ09ORklHX1RJR09OM19IV01P Tj15CitDT05GSUdfQk5YMlg9bQorQ09ORklHX0JOWDJYX1NSSU9WPXkKK0NPTkZJR19TWVNURU1Q T1JUPW0KK0NPTkZJR19CTlhUPW0KK0NPTkZJR19CTlhUX1NSSU9WPXkKK0NPTkZJR19CTlhUX0ZM T1dFUl9PRkZMT0FEPXkKK0NPTkZJR19CTlhUX0RDQj15CitDT05GSUdfQk5YVF9IV01PTj15CitD T05GSUdfTkVUX1ZFTkRPUl9DQURFTkNFPXkKK0NPTkZJR19NQUNCPW0KK0NPTkZJR19NQUNCX1VT RV9IV1NUQU1QPXkKK0NPTkZJR19NQUNCX1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9DQVZJVU09 eQorQ09ORklHX1RIVU5ERVJfTklDX1BGPW0KK0NPTkZJR19USFVOREVSX05JQ19WRj1tCitDT05G SUdfVEhVTkRFUl9OSUNfQkdYPW0KK0NPTkZJR19USFVOREVSX05JQ19SR1g9bQorQ09ORklHX0NB VklVTV9QVFA9bQorQ09ORklHX0xJUVVJRElPPW0KK0NPTkZJR19MSVFVSURJT19WRj1tCitDT05G SUdfTkVUX1ZFTkRPUl9DSEVMU0lPPXkKK0NPTkZJR19DSEVMU0lPX1QxPW0KK0NPTkZJR19DSEVM U0lPX1QxXzFHPXkKK0NPTkZJR19DSEVMU0lPX1QzPW0KK0NPTkZJR19DSEVMU0lPX1Q0PW0KK0NP TkZJR19DSEVMU0lPX1Q0X0RDQj15CitDT05GSUdfQ0hFTFNJT19UNF9GQ09FPXkKK0NPTkZJR19D SEVMU0lPX1Q0VkY9bQorQ09ORklHX0NIRUxTSU9fTElCPW0KK0NPTkZJR19DSEVMU0lPX0lOTElO RV9DUllQVE89eQorQ09ORklHX0NIRUxTSU9fSVBTRUNfSU5MSU5FPW0KK0NPTkZJR19DSEVMU0lP X1RMU19ERVZJQ0U9bQorQ09ORklHX05FVF9WRU5ET1JfQ0lTQ089eQorQ09ORklHX0VOSUM9bQor Q09ORklHX05FVF9WRU5ET1JfQ09SVElOQT15CitDT05GSUdfR0VNSU5JX0VUSEVSTkVUPW0KK0NP TkZJR19ORVRfVkVORE9SX0RBVklDT009eQorQ09ORklHX0RNOTA1MT1tCitDT05GSUdfRE5FVD1t CitDT05GSUdfTkVUX1ZFTkRPUl9ERUM9eQorQ09ORklHX05FVF9UVUxJUD15CitDT05GSUdfREUy MTA0WD1tCitDT05GSUdfREUyMTA0WF9EU0w9MAorQ09ORklHX1RVTElQPW0KKyMgQ09ORklHX1RV TElQX01XSSBpcyBub3Qgc2V0CisjIENPTkZJR19UVUxJUF9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJ R19UVUxJUF9OQVBJPXkKK0NPTkZJR19UVUxJUF9OQVBJX0hXX01JVElHQVRJT049eQorQ09ORklH X1dJTkJPTkRfODQwPW0KK0NPTkZJR19ETTkxMDI9bQorQ09ORklHX1VMSTUyNlg9bQorQ09ORklH X1BDTUNJQV9YSVJDT009bQorQ09ORklHX05FVF9WRU5ET1JfRExJTks9eQorQ09ORklHX0RMMks9 bQorQ09ORklHX1NVTkRBTkNFPW0KKyMgQ09ORklHX1NVTkRBTkNFX01NSU8gaXMgbm90IHNldAor Q09ORklHX05FVF9WRU5ET1JfRU1VTEVYPXkKK0NPTkZJR19CRTJORVQ9bQorQ09ORklHX0JFMk5F VF9IV01PTj15CitDT05GSUdfQkUyTkVUX0JFMj15CitDT05GSUdfQkUyTkVUX0JFMz15CitDT05G SUdfQkUyTkVUX0xBTkNFUj15CitDT05GSUdfQkUyTkVUX1NLWUhBV0s9eQorQ09ORklHX05FVF9W RU5ET1JfRU5HTEVERVI9eQorQ09ORklHX1RTTkVQPW0KKyMgQ09ORklHX1RTTkVQX1NFTEZURVNU UyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9FWkNISVA9eQorQ09ORklHX0VaQ0hJUF9O UFNfTUFOQUdFTUVOVF9FTkVUPW0KK0NPTkZJR19ORVRfVkVORE9SX0ZVSklUU1U9eQorQ09ORklH X1BDTUNJQV9GTVZKMThYPW0KK0NPTkZJR19ORVRfVkVORE9SX0ZVTkdJQkxFPXkKK0NPTkZJR19G VU5fQ09SRT1tCitDT05GSUdfRlVOX0VUSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9HT09HTEU9eQor Q09ORklHX05FVF9WRU5ET1JfSFVBV0VJPXkKK0NPTkZJR19ORVRfVkVORE9SX0k4MjVYWD15CitD T05GSUdfTkVUX1ZFTkRPUl9JTlRFTD15CitDT05GSUdfRTEwMD1tCitDT05GSUdfRTEwMDA9bQor Q09ORklHX0UxMDAwRT1tCitDT05GSUdfSUdCPW0KK0NPTkZJR19JR0JfSFdNT049eQorQ09ORklH X0lHQlZGPW0KK0NPTkZJR19JWEdCPW0KK0NPTkZJR19JWEdCRT1tCitDT05GSUdfSVhHQkVfSFdN T049eQorQ09ORklHX0lYR0JFX0RDQj15CitDT05GSUdfSVhHQkVfSVBTRUM9eQorQ09ORklHX0lY R0JFVkY9bQorQ09ORklHX0lYR0JFVkZfSVBTRUM9eQorQ09ORklHX0k0MEU9bQorQ09ORklHX0k0 MEVfRENCPXkKK0NPTkZJR19JQVZGPW0KK0NPTkZJR19JNDBFVkY9bQorQ09ORklHX0lDRT1tCitD T05GSUdfSUNFX1NXSVRDSERFVj15CitDT05GSUdfRk0xMEs9bQorQ09ORklHX0lHQz1tCitDT05G SUdfTkVUX1ZFTkRPUl9XQU5HWFVOPXkKK0NPTkZJR19MSUJXWD1tCitDT05GSUdfTkdCRT1tCisj IENPTkZJR19UWEdCRSBpcyBub3Qgc2V0CitDT05GSUdfSk1FPW0KK0NPTkZJR19ORVRfVkVORE9S X0FEST15CitDT05GSUdfQURJTjExMTA9bQorQ09ORklHX05FVF9WRU5ET1JfTElURVg9eQorQ09O RklHX0xJVEVYX0xJVEVFVEg9bQorQ09ORklHX05FVF9WRU5ET1JfTUFSVkVMTD15CitDT05GSUdf TVZNRElPPW0KK0NPTkZJR19TS0dFPW0KKyMgQ09ORklHX1NLR0VfREVCVUcgaXMgbm90IHNldAor Q09ORklHX1NLR0VfR0VORVNJUz15CitDT05GSUdfU0tZMj1tCisjIENPTkZJR19TS1kyX0RFQlVH IGlzIG5vdCBzZXQKKyMgQ09ORklHX09DVEVPTl9FUCBpcyBub3Qgc2V0CitDT05GSUdfUFJFU1RF UkE9bQorQ09ORklHX1BSRVNURVJBX1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9NRUxMQU5PWD15 CitDT05GSUdfTUxYNF9FTj1tCitDT05GSUdfTUxYNF9FTl9EQ0I9eQorQ09ORklHX01MWDRfQ09S RT1tCitDT05GSUdfTUxYNF9ERUJVRz15CitDT05GSUdfTUxYNF9DT1JFX0dFTjI9eQorQ09ORklH X01MWDVfQ09SRT1tCitDT05GSUdfTUxYNV9GUEdBPXkKK0NPTkZJR19NTFg1X0NPUkVfRU49eQor Q09ORklHX01MWDVfRU5fQVJGUz15CitDT05GSUdfTUxYNV9FTl9SWE5GQz15CitDT05GSUdfTUxY NV9NUEZTPXkKK0NPTkZJR19NTFg1X0VTV0lUQ0g9eQorQ09ORklHX01MWDVfQlJJREdFPXkKK0NP TkZJR19NTFg1X0NMU19BQ1Q9eQorQ09ORklHX01MWDVfVENfQ1Q9eQorQ09ORklHX01MWDVfVENf U0FNUExFPXkKK0NPTkZJR19NTFg1X0NPUkVfRU5fRENCPXkKK0NPTkZJR19NTFg1X0NPUkVfSVBP SUI9eQorIyBDT05GSUdfTUxYNV9FTl9NQUNTRUMgaXMgbm90IHNldAorQ09ORklHX01MWDVfRU5f SVBTRUM9eQorQ09ORklHX01MWDVfRU5fVExTPXkKK0NPTkZJR19NTFg1X1NXX1NURUVSSU5HPXkK K0NPTkZJR19NTFg1X1NGPXkKK0NPTkZJR19NTFg1X1NGX01BTkFHRVI9eQorQ09ORklHX01MWFNX X0NPUkU9bQorQ09ORklHX01MWFNXX0NPUkVfSFdNT049eQorQ09ORklHX01MWFNXX0NPUkVfVEhF Uk1BTD15CitDT05GSUdfTUxYU1dfUENJPW0KK0NPTkZJR19NTFhTV19JMkM9bQorQ09ORklHX01M WFNXX1NQRUNUUlVNPW0KK0NPTkZJR19NTFhTV19TUEVDVFJVTV9EQ0I9eQorQ09ORklHX01MWFNX X01JTklNQUw9bQorQ09ORklHX01MWEZXPW0KK0NPTkZJR19ORVRfVkVORE9SX01JQ1JFTD15CitD T05GSUdfS1M4ODQyPW0KK0NPTkZJR19LUzg4NTE9bQorQ09ORklHX0tTODg1MV9NTEw9bQorQ09O RklHX0tTWjg4NFhfUENJPW0KK0NPTkZJR19ORVRfVkVORE9SX01JQ1JPQ0hJUD15CitDT05GSUdf RU5DMjhKNjA9bQorIyBDT05GSUdfRU5DMjhKNjBfV1JJVEVWRVJJRlkgaXMgbm90IHNldAorQ09O RklHX0VOQ1gyNEo2MDA9bQorQ09ORklHX0xBTjc0M1g9bQorQ09ORklHX0xBTjk2NlhfU1dJVENI PW0KK0NPTkZJR19WQ0FQPXkKK0NPTkZJR19ORVRfVkVORE9SX01JQ1JPU0VNST15CitDT05GSUdf TVNDQ19PQ0VMT1RfU1dJVENIX0xJQj1tCitDT05GSUdfTVNDQ19PQ0VMT1RfU1dJVENIPW0KK0NP TkZJR19ORVRfVkVORE9SX01JQ1JPU09GVD15CitDT05GSUdfTkVUX1ZFTkRPUl9NWVJJPXkKK0NP TkZJR19NWVJJMTBHRT1tCitDT05GSUdfRkVBTE5YPW0KK0NPTkZJR19ORVRfVkVORE9SX05JPXkK K0NPTkZJR19OSV9YR0VfTUFOQUdFTUVOVF9FTkVUPW0KK0NPTkZJR19ORVRfVkVORE9SX05BVFNF TUk9eQorQ09ORklHX05BVFNFTUk9bQorQ09ORklHX05TODM4MjA9bQorQ09ORklHX05FVF9WRU5E T1JfTkVURVJJT049eQorQ09ORklHX1MySU89bQorQ09ORklHX05FVF9WRU5ET1JfTkVUUk9OT01F PXkKK0NPTkZJR19ORlA9bQorQ09ORklHX05GUF9BUFBfRkxPV0VSPXkKK0NPTkZJR19ORlBfQVBQ X0FCTV9OSUM9eQorQ09ORklHX05GUF9ORVRfSVBTRUM9eQorIyBDT05GSUdfTkZQX0RFQlVHIGlz IG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9SXzgzOTA9eQorQ09ORklHX1BDTUNJQV9BWE5FVD1t CitDT05GSUdfTkUyS19QQ0k9bQorQ09ORklHX1BDTUNJQV9QQ05FVD1tCitDT05GSUdfTkVUX1ZF TkRPUl9OVklESUE9eQorQ09ORklHX0ZPUkNFREVUSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9PS0k9 eQorQ09ORklHX0VUSE9DPW0KK0NPTkZJR19ORVRfVkVORE9SX1BBQ0tFVF9FTkdJTkVTPXkKK0NP TkZJR19IQU1BQ0hJPW0KK0NPTkZJR19ZRUxMT1dGSU49bQorQ09ORklHX05FVF9WRU5ET1JfUEVO U0FORE89eQorQ09ORklHX0lPTklDPW0KK0NPTkZJR19ORVRfVkVORE9SX1FMT0dJQz15CitDT05G SUdfUUxBM1hYWD1tCitDT05GSUdfUUxDTklDPW0KK0NPTkZJR19RTENOSUNfU1JJT1Y9eQorQ09O RklHX1FMQ05JQ19EQ0I9eQorQ09ORklHX1FMQ05JQ19IV01PTj15CitDT05GSUdfTkVUWEVOX05J Qz1tCitDT05GSUdfUUVEPW0KK0NPTkZJR19RRURfTEwyPXkKK0NPTkZJR19RRURfU1JJT1Y9eQor Q09ORklHX1FFREU9bQorQ09ORklHX1FFRF9SRE1BPXkKK0NPTkZJR19RRURfSVNDU0k9eQorQ09O RklHX1FFRF9GQ09FPXkKK0NPTkZJR19RRURfT09PPXkKK0NPTkZJR19ORVRfVkVORE9SX0JST0NB REU9eQorQ09ORklHX0JOQT1tCitDT05GSUdfTkVUX1ZFTkRPUl9RVUFMQ09NTT15CitDT05GSUdf UUNBNzAwMD1tCitDT05GSUdfUUNBNzAwMF9TUEk9bQorQ09ORklHX1FDQTcwMDBfVUFSVD1tCitD T05GSUdfUUNPTV9FTUFDPW0KK0NPTkZJR19STU5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl9SREM9 eQorQ09ORklHX1I2MDQwPW0KK0NPTkZJR19ORVRfVkVORE9SX1JFQUxURUs9eQorQ09ORklHXzgx MzlDUD1tCitDT05GSUdfODEzOVRPTz1tCisjIENPTkZJR184MTM5VE9PX1BJTyBpcyBub3Qgc2V0 CisjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qgc2V0CitDT05GSUdfODEzOVRP T184MTI5PXkKKyMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKK0NPTkZJR19S ODE2OT1tCitDT05GSUdfTkVUX1ZFTkRPUl9SRU5FU0FTPXkKK0NPTkZJR19TSF9FVEg9bQorQ09O RklHX1JBVkI9bQorQ09ORklHX1JFTkVTQVNfRVRIRVJfU1dJVENIPW0KK0NPTkZJR19ORVRfVkVO RE9SX1JPQ0tFUj15CitDT05GSUdfUk9DS0VSPW0KK0NPTkZJR19ORVRfVkVORE9SX1NBTVNVTkc9 eQorQ09ORklHX1NYR0JFX0VUSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9TRUVRPXkKK0NPTkZJR19O RVRfVkVORE9SX1NJTEFOPXkKK0NPTkZJR19TQzkyMDMxPW0KK0NPTkZJR19ORVRfVkVORE9SX1NJ Uz15CitDT05GSUdfU0lTOTAwPW0KK0NPTkZJR19TSVMxOTA9bQorQ09ORklHX05FVF9WRU5ET1Jf U09MQVJGTEFSRT15CitDT05GSUdfU0ZDPW0KK0NPTkZJR19TRkNfTVREPXkKK0NPTkZJR19TRkNf TUNESV9NT049eQorQ09ORklHX1NGQ19TUklPVj15CitDT05GSUdfU0ZDX01DRElfTE9HR0lORz15 CitDT05GSUdfU0ZDX0ZBTENPTj1tCitDT05GSUdfU0ZDX0ZBTENPTl9NVEQ9eQorIyBDT05GSUdf U0ZDX1NJRU5BIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9SX1NNU0M9eQorQ09ORklHX1BD TUNJQV9TTUM5MUM5Mj1tCitDT05GSUdfRVBJQzEwMD1tCitDT05GSUdfU01TQzkxMVg9bQorQ09O RklHX1NNU0M5NDIwPW0KK0NPTkZJR19ORVRfVkVORE9SX1NPQ0lPTkVYVD15CitDT05GSUdfTkVU X1ZFTkRPUl9TVE1JQ1JPPXkKK0NPTkZJR19TVE1NQUNfRVRIPW0KKyMgQ09ORklHX1NUTU1BQ19T RUxGVEVTVFMgaXMgbm90IHNldAorQ09ORklHX1NUTU1BQ19QTEFURk9STT1tCitDT05GSUdfRFdN QUNfRFdDX1FPU19FVEg9bQorQ09ORklHX0RXTUFDX0dFTkVSSUM9bQorQ09ORklHX0RXTUFDX1NU QVJGSVZFPW0KK0NPTkZJR19EV01BQ19TVU5YST1tCitDT05GSUdfRFdNQUNfU1VOOEk9bQorQ09O RklHX0RXTUFDX0lOVEVMX1BMQVQ9bQorQ09ORklHX0RXTUFDX0xPT05HU09OPW0KK0NPTkZJR19T VE1NQUNfUENJPW0KK0NPTkZJR19ORVRfVkVORE9SX1NVTj15CitDT05GSUdfSEFQUFlNRUFMPW0K K0NPTkZJR19TVU5HRU09bQorQ09ORklHX0NBU1NJTkk9bQorQ09ORklHX05JVT1tCitDT05GSUdf TkVUX1ZFTkRPUl9TWU5PUFNZUz15CitDT05GSUdfRFdDX1hMR01BQz1tCitDT05GSUdfRFdDX1hM R01BQ19QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfVEVIVVRJPXkKK0NPTkZJR19URUhVVEk9bQor Q09ORklHX05FVF9WRU5ET1JfVEk9eQorIyBDT05GSUdfVElfQ1BTV19QSFlfU0VMIGlzIG5vdCBz ZXQKK0NPTkZJR19UTEFOPW0KK0NPTkZJR19ORVRfVkVORE9SX1ZFUlRFWENPTT15CitDT05GSUdf TVNFMTAyWD1tCitDT05GSUdfTkVUX1ZFTkRPUl9WSUE9eQorQ09ORklHX1ZJQV9SSElORT1tCitD T05GSUdfVklBX1JISU5FX01NSU89eQorQ09ORklHX1ZJQV9WRUxPQ0lUWT1tCitDT05GSUdfTkVU X1ZFTkRPUl9XSVpORVQ9eQorQ09ORklHX1dJWk5FVF9XNTEwMD1tCitDT05GSUdfV0laTkVUX1c1 MzAwPW0KKyMgQ09ORklHX1dJWk5FVF9CVVNfRElSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJ Wk5FVF9CVVNfSU5ESVJFQ1QgaXMgbm90IHNldAorQ09ORklHX1dJWk5FVF9CVVNfQU5ZPXkKK0NP TkZJR19XSVpORVRfVzUxMDBfU1BJPW0KK0NPTkZJR19ORVRfVkVORE9SX1hJTElOWD15CitDT05G SUdfWElMSU5YX0VNQUNMSVRFPW0KK0NPTkZJR19YSUxJTlhfQVhJX0VNQUM9bQorQ09ORklHX1hJ TElOWF9MTF9URU1BQz1tCitDT05GSUdfTkVUX1ZFTkRPUl9YSVJDT009eQorQ09ORklHX1BDTUNJ QV9YSVJDMlBTPW0KK0NPTkZJR19GRERJPW0KK0NPTkZJR19ERUZYWD1tCitDT05GSUdfU0tGUD1t CitDT05GSUdfSElQUEk9eQorQ09ORklHX1JPQURSVU5ORVI9bQorIyBDT05GSUdfUk9BRFJVTk5F Ul9MQVJHRV9SSU5HUyBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElOSz1tCitDT05GSUdfUEhZTElC PXkKK0NPTkZJR19TV1BIWT15CitDT05GSUdfTEVEX1RSSUdHRVJfUEhZPXkKK0NPTkZJR19GSVhF RF9QSFk9eQorQ09ORklHX1NGUD1tCisKKyMKKyMgTUlJIFBIWSBkZXZpY2UgZHJpdmVycworIwor Q09ORklHX0FNRF9QSFk9bQorQ09ORklHX0FESU5fUEhZPW0KKyMgQ09ORklHX0FESU4xMTAwX1BI WSBpcyBub3Qgc2V0CitDT05GSUdfQVFVQU5USUFfUEhZPW0KK0NPTkZJR19BWDg4Nzk2Ql9QSFk9 bQorQ09ORklHX0JST0FEQ09NX1BIWT1tCitDT05GSUdfQkNNNTQxNDBfUEhZPW0KK0NPTkZJR19C Q003WFhYX1BIWT1tCitDT05GSUdfQkNNODQ4ODFfUEhZPXkKK0NPTkZJR19CQ004N1hYX1BIWT1t CitDT05GSUdfQkNNX05FVF9QSFlMSUI9bQorQ09ORklHX0NJQ0FEQV9QSFk9bQorQ09ORklHX0NP UlRJTkFfUEhZPW0KK0NPTkZJR19EQVZJQ09NX1BIWT1tCitDT05GSUdfSUNQTFVTX1BIWT1tCitD T05GSUdfTFhUX1BIWT1tCitDT05GSUdfSU5URUxfWFdBWV9QSFk9bQorQ09ORklHX0xTSV9FVDEw MTFDX1BIWT1tCitDT05GSUdfTUFSVkVMTF9QSFk9bQorQ09ORklHX01BUlZFTExfMTBHX1BIWT1t CitDT05GSUdfTUFSVkVMTF84OFgyMjIyX1BIWT1tCitDT05GSUdfTUFYTElORUFSX0dQSFk9bQor Q09ORklHX01FRElBVEVLX0dFX1BIWT1tCitDT05GSUdfTUlDUkVMX1BIWT1tCitDT05GSUdfTUlD Uk9DSElQX1BIWT1tCitDT05GSUdfTUlDUk9DSElQX1QxX1BIWT1tCitDT05GSUdfTUlDUk9TRU1J X1BIWT1tCitDT05GSUdfTU9UT1JDT01NX1BIWT1tCitDT05GSUdfTkFUSU9OQUxfUEhZPW0KK0NP TkZJR19OWFBfQzQ1X1RKQTExWFhfUEhZPW0KK0NPTkZJR19OWFBfVEpBMTFYWF9QSFk9bQorQ09O RklHX05DTjI2MDAwX1BIWT1tCitDT05GSUdfQVQ4MDNYX1BIWT1tCitDT05GSUdfUVNFTUlfUEhZ PW0KK0NPTkZJR19SRUFMVEVLX1BIWT1tCitDT05GSUdfUkVORVNBU19QSFk9bQorQ09ORklHX1JP Q0tDSElQX1BIWT1tCitDT05GSUdfU01TQ19QSFk9bQorQ09ORklHX1NURTEwWFA9bQorQ09ORklH X1RFUkFORVRJQ1NfUEhZPW0KK0NPTkZJR19EUDgzODIyX1BIWT1tCitDT05GSUdfRFA4M1RDODEx X1BIWT1tCitDT05GSUdfRFA4Mzg0OF9QSFk9bQorQ09ORklHX0RQODM4NjdfUEhZPW0KK0NPTkZJ R19EUDgzODY5X1BIWT1tCisjIENPTkZJR19EUDgzVEQ1MTBfUEhZIGlzIG5vdCBzZXQKK0NPTkZJ R19WSVRFU1NFX1BIWT1tCitDT05GSUdfWElMSU5YX0dNSUkyUkdNSUk9bQorQ09ORklHX01JQ1JF TF9LUzg5OTVNQT1tCisjIENPTkZJR19QU0VfQ09OVFJPTExFUiBpcyBub3Qgc2V0CitDT05GSUdf Q0FOX0RFVj1tCitDT05GSUdfQ0FOX1ZDQU49bQorQ09ORklHX0NBTl9WWENBTj1tCitDT05GSUdf Q0FOX05FVExJTks9eQorQ09ORklHX0NBTl9DQUxDX0JJVFRJTUlORz15CitDT05GSUdfQ0FOX1JY X09GRkxPQUQ9eQorIyBDT05GSUdfQ0FOX0NBTjMyNyBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0ZM RVhDQU49bQorIyBDT05GSUdfQ0FOX0dSQ0FOIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fS1ZBU0VS X1BDSUVGRD1tCitDT05GSUdfQ0FOX1NMQ0FOPW0KK0NPTkZJR19DQU5fQ19DQU49bQorIyBDT05G SUdfQ0FOX0NfQ0FOX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fQ19DQU5fUENJPW0K KyMgQ09ORklHX0NBTl9DQzc3MCBpcyBub3Qgc2V0CisjIENPTkZJR19DQU5fQ1RVQ0FORkRfUENJ IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTl9DVFVDQU5GRF9QTEFURk9STSBpcyBub3Qgc2V0CitD T05GSUdfQ0FOX0lGSV9DQU5GRD1tCitDT05GSUdfQ0FOX01fQ0FOPW0KK0NPTkZJR19DQU5fTV9D QU5fUENJPW0KK0NPTkZJR19DQU5fTV9DQU5fUExBVEZPUk09bQorQ09ORklHX0NBTl9NX0NBTl9U Q0FONFg1WD1tCitDT05GSUdfQ0FOX1BFQUtfUENJRUZEPW0KK0NPTkZJR19DQU5fUkNBUj1tCitD T05GSUdfQ0FOX1JDQVJfQ0FORkQ9bQorQ09ORklHX0NBTl9TSkExMDAwPW0KK0NPTkZJR19DQU5f RU1TX1BDST1tCitDT05GSUdfQ0FOX0VNU19QQ01DSUE9bQorQ09ORklHX0NBTl9GODE2MDE9bQor Q09ORklHX0NBTl9LVkFTRVJfUENJPW0KK0NPTkZJR19DQU5fUEVBS19QQ0k9bQorQ09ORklHX0NB Tl9QRUFLX1BDSUVDPXkKK0NPTkZJR19DQU5fUEVBS19QQ01DSUE9bQorQ09ORklHX0NBTl9QTFhf UENJPW0KKyMgQ09ORklHX0NBTl9TSkExMDAwX0lTQSBpcyBub3Qgc2V0CisjIENPTkZJR19DQU5f U0pBMTAwMF9QTEFURk9STSBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX1NPRlRJTkc9bQorQ09ORklH X0NBTl9TT0ZUSU5HX0NTPW0KKworIworIyBDQU4gU1BJIGludGVyZmFjZXMKKyMKK0NPTkZJR19D QU5fSEkzMTFYPW0KKyMgQ09ORklHX0NBTl9NQ1AyNTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NB Tl9NQ1AyNTFYRkQgaXMgbm90IHNldAorIyBlbmQgb2YgQ0FOIFNQSSBpbnRlcmZhY2VzCisKKyMK KyMgQ0FOIFVTQiBpbnRlcmZhY2VzCisjCitDT05GSUdfQ0FOXzhERVZfVVNCPW0KK0NPTkZJR19D QU5fRU1TX1VTQj1tCisjIENPTkZJR19DQU5fRVNEX1VTQiBpcyBub3Qgc2V0CitDT05GSUdfQ0FO X0VUQVNfRVM1OFg9bQorQ09ORklHX0NBTl9HU19VU0I9bQorQ09ORklHX0NBTl9LVkFTRVJfVVNC PW0KK0NPTkZJR19DQU5fTUNCQV9VU0I9bQorQ09ORklHX0NBTl9QRUFLX1VTQj1tCitDT05GSUdf Q0FOX1VDQU49bQorIyBlbmQgb2YgQ0FOIFVTQiBpbnRlcmZhY2VzCisKKyMgQ09ORklHX0NBTl9E RUJVR19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNQ1RQIERldmljZSBEcml2ZXJzCisjCitD T05GSUdfTUNUUF9TRVJJQUw9bQorQ09ORklHX01DVFBfVFJBTlNQT1JUX0kyQz1tCisjIGVuZCBv ZiBNQ1RQIERldmljZSBEcml2ZXJzCisKK0NPTkZJR19NRElPX0RFVklDRT15CitDT05GSUdfTURJ T19CVVM9eQorQ09ORklHX0ZXTk9ERV9NRElPPXkKK0NPTkZJR19PRl9NRElPPXkKK0NPTkZJR19N RElPX0RFVlJFUz15CitDT05GSUdfTURJT19TVU40ST1tCitDT05GSUdfTURJT19CSVRCQU5HPW0K K0NPTkZJR19NRElPX0JDTV9VTklNQUM9bQorQ09ORklHX01ESU9fQ0FWSVVNPW0KK0NPTkZJR19N RElPX0dQSU89bQorQ09ORklHX01ESU9fSElTSV9GRU1BQz1tCitDT05GSUdfTURJT19JMkM9bQor Q09ORklHX01ESU9fTVZVU0I9bQorQ09ORklHX01ESU9fTVNDQ19NSUlNPW0KK0NPTkZJR19NRElP X09DVEVPTj1tCitDT05GSUdfTURJT19JUFE0MDE5PW0KK0NPTkZJR19NRElPX0lQUTgwNjQ9bQor Q09ORklHX01ESU9fVEhVTkRFUj1tCisKKyMKKyMgTURJTyBNdWx0aXBsZXhlcnMKKyMKK0NPTkZJ R19NRElPX0JVU19NVVg9bQorQ09ORklHX01ESU9fQlVTX01VWF9HUElPPW0KK0NPTkZJR19NRElP X0JVU19NVVhfTVVMVElQTEVYRVI9bQorQ09ORklHX01ESU9fQlVTX01VWF9NTUlPUkVHPW0KKwor IworIyBQQ1MgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19QQ1NfWFBDUz1tCitDT05GSUdfUENT X0xZTlg9bQorIyBlbmQgb2YgUENTIGRldmljZSBkcml2ZXJzCisKK0NPTkZJR19QTElQPW0KK0NP TkZJR19QUFA9bQorQ09ORklHX1BQUF9CU0RDT01QPW0KK0NPTkZJR19QUFBfREVGTEFURT1tCitD T05GSUdfUFBQX0ZJTFRFUj15CitDT05GSUdfUFBQX01QUEU9bQorQ09ORklHX1BQUF9NVUxUSUxJ Tks9eQorQ09ORklHX1BQUE9BVE09bQorQ09ORklHX1BQUE9FPW0KK0NPTkZJR19QUFRQPW0KK0NP TkZJR19QUFBPTDJUUD1tCitDT05GSUdfUFBQX0FTWU5DPW0KK0NPTkZJR19QUFBfU1lOQ19UVFk9 bQorQ09ORklHX1NMSVA9bQorQ09ORklHX1NMSEM9bQorQ09ORklHX1NMSVBfQ09NUFJFU1NFRD15 CitDT05GSUdfU0xJUF9TTUFSVD15CitDT05GSUdfU0xJUF9NT0RFX1NMSVA2PXkKKworIworIyBI b3N0LXNpZGUgVVNCIHN1cHBvcnQgaXMgbmVlZGVkIGZvciBVU0IgTmV0d29yayBBZGFwdGVyIHN1 cHBvcnQKKyMKK0NPTkZJR19VU0JfTkVUX0RSSVZFUlM9bQorQ09ORklHX1VTQl9DQVRDPW0KK0NP TkZJR19VU0JfS0FXRVRIPW0KK0NPTkZJR19VU0JfUEVHQVNVUz1tCitDT05GSUdfVVNCX1JUTDgx NTA9bQorQ09ORklHX1VTQl9SVEw4MTUyPW0KK0NPTkZJR19VU0JfTEFONzhYWD1tCitDT05GSUdf VVNCX1VTQk5FVD1tCitDT05GSUdfVVNCX05FVF9BWDg4MTdYPW0KK0NPTkZJR19VU0JfTkVUX0FY ODgxNzlfMTc4QT1tCitDT05GSUdfVVNCX05FVF9DRENFVEhFUj1tCitDT05GSUdfVVNCX05FVF9D RENfRUVNPW0KK0NPTkZJR19VU0JfTkVUX0NEQ19OQ009bQorQ09ORklHX1VTQl9ORVRfSFVBV0VJ X0NEQ19OQ009bQorQ09ORklHX1VTQl9ORVRfQ0RDX01CSU09bQorQ09ORklHX1VTQl9ORVRfRE05 NjAxPW0KK0NPTkZJR19VU0JfTkVUX1NSOTcwMD1tCitDT05GSUdfVVNCX05FVF9TUjk4MDA9bQor Q09ORklHX1VTQl9ORVRfU01TQzc1WFg9bQorQ09ORklHX1VTQl9ORVRfU01TQzk1WFg9bQorQ09O RklHX1VTQl9ORVRfR0w2MjBBPW0KK0NPTkZJR19VU0JfTkVUX05FVDEwODA9bQorQ09ORklHX1VT Ql9ORVRfUExVU0I9bQorQ09ORklHX1VTQl9ORVRfTUNTNzgzMD1tCitDT05GSUdfVVNCX05FVF9S TkRJU19IT1NUPW0KK0NPTkZJR19VU0JfTkVUX0NEQ19TVUJTRVRfRU5BQkxFPW0KK0NPTkZJR19V U0JfTkVUX0NEQ19TVUJTRVQ9bQorQ09ORklHX1VTQl9BTElfTTU2MzI9eQorQ09ORklHX1VTQl9B TjI3MjA9eQorQ09ORklHX1VTQl9CRUxLSU49eQorQ09ORklHX1VTQl9BUk1MSU5VWD15CitDT05G SUdfVVNCX0VQU09OMjg4OD15CitDT05GSUdfVVNCX0tDMjE5MD15CitDT05GSUdfVVNCX05FVF9a QVVSVVM9bQorQ09ORklHX1VTQl9ORVRfQ1g4MjMxMF9FVEg9bQorQ09ORklHX1VTQl9ORVRfS0FM TUlBPW0KK0NPTkZJR19VU0JfTkVUX1FNSV9XV0FOPW0KK0NPTkZJR19VU0JfSFNPPW0KK0NPTkZJ R19VU0JfTkVUX0lOVDUxWDE9bQorQ09ORklHX1VTQl9DRENfUEhPTkVUPW0KK0NPTkZJR19VU0Jf SVBIRVRIPW0KK0NPTkZJR19VU0JfU0lFUlJBX05FVD1tCitDT05GSUdfVVNCX1ZMNjAwPW0KK0NP TkZJR19VU0JfTkVUX0NIOTIwMD1tCitDT05GSUdfVVNCX05FVF9BUUMxMTE9bQorQ09ORklHX1VT Ql9SVEw4MTUzX0VDTT1tCitDT05GSUdfV0xBTj15CitDT05GSUdfV0xBTl9WRU5ET1JfQURNVEVL PXkKK0NPTkZJR19BRE04MjExPW0KK0NPTkZJR19BVEhfQ09NTU9OPW0KK0NPTkZJR19XTEFOX1ZF TkRPUl9BVEg9eQorIyBDT05GSUdfQVRIX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BVEg1Sz1t CisjIENPTkZJR19BVEg1S19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEg1S19UUkFDRVIg aXMgbm90IHNldAorQ09ORklHX0FUSDVLX1BDST15CitDT05GSUdfQVRIOUtfSFc9bQorQ09ORklH X0FUSDlLX0NPTU1PTj1tCitDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQ9eQorQ09ORklHX0FU SDlLPW0KK0NPTkZJR19BVEg5S19QQ0k9eQorIyBDT05GSUdfQVRIOUtfQUhCIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FUSDlLX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVRIOUtfRFlOQUNL IGlzIG5vdCBzZXQKK0NPTkZJR19BVEg5S19XT1c9eQorQ09ORklHX0FUSDlLX1JGS0lMTD15CitD T05GSUdfQVRIOUtfQ0hBTk5FTF9DT05URVhUPXkKK0NPTkZJR19BVEg5S19QQ09FTT15CitDT05G SUdfQVRIOUtfUENJX05PX0VFUFJPTT1tCitDT05GSUdfQVRIOUtfSFRDPW0KKyMgQ09ORklHX0FU SDlLX0hUQ19ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19BVEg5S19IV1JORz15CitDT05GSUdf Q0FSTDkxNzA9bQorQ09ORklHX0NBUkw5MTcwX0xFRFM9eQorIyBDT05GSUdfQ0FSTDkxNzBfREVC VUdGUyBpcyBub3Qgc2V0CitDT05GSUdfQ0FSTDkxNzBfV1BDPXkKK0NPTkZJR19DQVJMOTE3MF9I V1JORz15CitDT05GSUdfQVRINktMPW0KK0NPTkZJR19BVEg2S0xfU0RJTz1tCitDT05GSUdfQVRI NktMX1VTQj1tCisjIENPTkZJR19BVEg2S0xfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQVRI NktMX1RSQUNJTkcgaXMgbm90IHNldAorQ09ORklHX0FSNTUyMz1tCitDT05GSUdfV0lMNjIxMD1t CitDT05GSUdfV0lMNjIxMF9JU1JfQ09SPXkKK0NPTkZJR19XSUw2MjEwX1RSQUNJTkc9eQorIyBD T05GSUdfV0lMNjIxMF9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19BVEgxMEs9bQorQ09ORklH X0FUSDEwS19DRT15CitDT05GSUdfQVRIMTBLX1BDST1tCitDT05GSUdfQVRIMTBLX0FIQj15CitD T05GSUdfQVRIMTBLX1NESU89bQorQ09ORklHX0FUSDEwS19VU0I9bQorIyBDT05GSUdfQVRIMTBL X0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUSDEwS19ERUJVR0ZTIGlzIG5vdCBzZXQKKyMg Q09ORklHX0FUSDEwS19UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19XQ04zNlhYPW0KKyMgQ09O RklHX1dDTjM2WFhfREVCVUdGUyBpcyBub3Qgc2V0CitDT05GSUdfQVRIMTFLPW0KK0NPTkZJR19B VEgxMUtfQUhCPW0KK0NPTkZJR19BVEgxMUtfUENJPW0KKyMgQ09ORklHX0FUSDExS19ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfQVRIMTFLX0RFQlVHRlM9eQorIyBDT05GSUdfQVRIMTFLX1RSQUNJ TkcgaXMgbm90IHNldAorQ09ORklHX0FUSDExS19TUEVDVFJBTD15CitDT05GSUdfQVRIMTJLPW0K K0NPTkZJR19BVEgxMktfREVCVUc9eQorQ09ORklHX0FUSDEyS19UUkFDSU5HPXkKK0NPTkZJR19X TEFOX1ZFTkRPUl9BVE1FTD15CitDT05GSUdfQVRNRUw9bQorQ09ORklHX1BDSV9BVE1FTD1tCitD T05GSUdfUENNQ0lBX0FUTUVMPW0KK0NPTkZJR19BVDc2QzUwWF9VU0I9bQorQ09ORklHX1dMQU5f VkVORE9SX0JST0FEQ09NPXkKK0NPTkZJR19CNDM9bQorQ09ORklHX0I0M19CQ01BPXkKK0NPTkZJ R19CNDNfU1NCPXkKK0NPTkZJR19CNDNfQlVTRVNfQkNNQV9BTkRfU1NCPXkKKyMgQ09ORklHX0I0 M19CVVNFU19CQ01BIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M19CVVNFU19TU0IgaXMgbm90IHNl dAorQ09ORklHX0I0M19QQ0lfQVVUT1NFTEVDVD15CitDT05GSUdfQjQzX1BDSUNPUkVfQVVUT1NF TEVDVD15CitDT05GSUdfQjQzX1NESU89eQorQ09ORklHX0I0M19CQ01BX1BJTz15CitDT05GSUdf QjQzX1BJTz15CitDT05GSUdfQjQzX1BIWV9HPXkKK0NPTkZJR19CNDNfUEhZX049eQorQ09ORklH X0I0M19QSFlfTFA9eQorQ09ORklHX0I0M19QSFlfSFQ9eQorQ09ORklHX0I0M19MRURTPXkKK0NP TkZJR19CNDNfSFdSTkc9eQorIyBDT05GSUdfQjQzX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19C NDNMRUdBQ1k9bQorQ09ORklHX0I0M0xFR0FDWV9QQ0lfQVVUT1NFTEVDVD15CitDT05GSUdfQjQz TEVHQUNZX1BDSUNPUkVfQVVUT1NFTEVDVD15CitDT05GSUdfQjQzTEVHQUNZX0xFRFM9eQorQ09O RklHX0I0M0xFR0FDWV9IV1JORz15CisjIENPTkZJR19CNDNMRUdBQ1lfREVCVUcgaXMgbm90IHNl dAorQ09ORklHX0I0M0xFR0FDWV9ETUE9eQorQ09ORklHX0I0M0xFR0FDWV9QSU89eQorQ09ORklH X0I0M0xFR0FDWV9ETUFfQU5EX1BJT19NT0RFPXkKKyMgQ09ORklHX0I0M0xFR0FDWV9ETUFfTU9E RSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDNMRUdBQ1lfUElPX01PREUgaXMgbm90IHNldAorQ09O RklHX0JSQ01VVElMPW0KK0NPTkZJR19CUkNNU01BQz1tCitDT05GSUdfQlJDTVNNQUNfTEVEUz15 CitDT05GSUdfQlJDTUZNQUM9bQorQ09ORklHX0JSQ01GTUFDX1BST1RPX0JDREM9eQorQ09ORklH X0JSQ01GTUFDX1BST1RPX01TR0JVRj15CitDT05GSUdfQlJDTUZNQUNfU0RJTz15CitDT05GSUdf QlJDTUZNQUNfVVNCPXkKK0NPTkZJR19CUkNNRk1BQ19QQ0lFPXkKKyMgQ09ORklHX0JSQ01fVFJB Q0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19CUkNNREJHIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFO X1ZFTkRPUl9DSVNDTz15CitDT05GSUdfQUlST19DUz1tCitDT05GSUdfV0xBTl9WRU5ET1JfSU5U RUw9eQorQ09ORklHX0lQVzIxMDA9bQorQ09ORklHX0lQVzIxMDBfTU9OSVRPUj15CitDT05GSUdf SVBXMjEwMF9ERUJVRz15CitDT05GSUdfSVBXMjIwMD1tCitDT05GSUdfSVBXMjIwMF9NT05JVE9S PXkKK0NPTkZJR19JUFcyMjAwX1JBRElPVEFQPXkKK0NPTkZJR19JUFcyMjAwX1BST01JU0NVT1VT PXkKK0NPTkZJR19JUFcyMjAwX1FPUz15CitDT05GSUdfSVBXMjIwMF9ERUJVRz15CitDT05GSUdf TElCSVBXPW0KK0NPTkZJR19MSUJJUFdfREVCVUc9eQorQ09ORklHX0lXTEVHQUNZPW0KK0NPTkZJ R19JV0w0OTY1PW0KK0NPTkZJR19JV0wzOTQ1PW0KKworIworIyBpd2wzOTQ1IC8gaXdsNDk2NSBE ZWJ1Z2dpbmcgT3B0aW9ucworIworIyBDT05GSUdfSVdMRUdBQ1lfREVCVUcgaXMgbm90IHNldAor IyBDT05GSUdfSVdMRUdBQ1lfREVCVUdGUyBpcyBub3Qgc2V0CisjIGVuZCBvZiBpd2wzOTQ1IC8g aXdsNDk2NSBEZWJ1Z2dpbmcgT3B0aW9ucworCitDT05GSUdfSVdMV0lGST1tCitDT05GSUdfSVdM V0lGSV9MRURTPXkKK0NPTkZJR19JV0xEVk09bQorQ09ORklHX0lXTE1WTT1tCitDT05GSUdfSVdM V0lGSV9PUE1PREVfTU9EVUxBUj15CisKKyMKKyMgRGVidWdnaW5nIE9wdGlvbnMKKyMKK0NPTkZJ R19JV0xXSUZJX0RFQlVHPXkKK0NPTkZJR19JV0xXSUZJX0RFQlVHRlM9eQorIyBDT05GSUdfSVdM V0lGSV9ERVZJQ0VfVFJBQ0lORyBpcyBub3Qgc2V0CisjIGVuZCBvZiBEZWJ1Z2dpbmcgT3B0aW9u cworCitDT05GSUdfV0xBTl9WRU5ET1JfSU5URVJTSUw9eQorQ09ORklHX0hPU1RBUD1tCitDT05G SUdfSE9TVEFQX0ZJUk1XQVJFPXkKK0NPTkZJR19IT1NUQVBfRklSTVdBUkVfTlZSQU09eQorQ09O RklHX0hPU1RBUF9QTFg9bQorQ09ORklHX0hPU1RBUF9QQ0k9bQorQ09ORklHX0hPU1RBUF9DUz1t CitDT05GSUdfSEVSTUVTPW0KK0NPTkZJR19IRVJNRVNfUFJJU009eQorQ09ORklHX0hFUk1FU19D QUNIRV9GV19PTl9JTklUPXkKK0NPTkZJR19QTFhfSEVSTUVTPW0KK0NPTkZJR19UTURfSEVSTUVT PW0KK0NPTkZJR19OT1JURUxfSEVSTUVTPW0KK0NPTkZJR19QQ0lfSEVSTUVTPW0KK0NPTkZJR19Q Q01DSUFfSEVSTUVTPW0KK0NPTkZJR19QQ01DSUFfU1BFQ1RSVU09bQorQ09ORklHX09SSU5PQ09f VVNCPW0KK0NPTkZJR19QNTRfQ09NTU9OPW0KK0NPTkZJR19QNTRfVVNCPW0KK0NPTkZJR19QNTRf UENJPW0KKyMgQ09ORklHX1A1NF9TUEkgaXMgbm90IHNldAorQ09ORklHX1A1NF9MRURTPXkKK0NP TkZJR19XTEFOX1ZFTkRPUl9NQVJWRUxMPXkKK0NPTkZJR19MSUJFUlRBUz1tCitDT05GSUdfTElC RVJUQVNfVVNCPW0KK0NPTkZJR19MSUJFUlRBU19DUz1tCitDT05GSUdfTElCRVJUQVNfU0RJTz1t CisjIENPTkZJR19MSUJFUlRBU19TUEkgaXMgbm90IHNldAorIyBDT05GSUdfTElCRVJUQVNfREVC VUcgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTX01FU0g9eQorQ09ORklHX0xJQkVSVEFTX1RI SU5GSVJNPW0KKyMgQ09ORklHX0xJQkVSVEFTX1RISU5GSVJNX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19MSUJFUlRBU19USElORklSTV9VU0I9bQorQ09ORklHX01XSUZJRVg9bQorQ09ORklHX01X SUZJRVhfU0RJTz1tCitDT05GSUdfTVdJRklFWF9QQ0lFPW0KK0NPTkZJR19NV0lGSUVYX1VTQj1t CitDT05GSUdfTVdMOEs9bQorQ09ORklHX1dMQU5fVkVORE9SX01FRElBVEVLPXkKK0NPTkZJR19N VDc2MDFVPW0KK0NPTkZJR19NVDc2X0NPUkU9bQorQ09ORklHX01UNzZfTEVEUz15CitDT05GSUdf TVQ3Nl9VU0I9bQorQ09ORklHX01UNzZfU0RJTz1tCitDT05GSUdfTVQ3NngwMl9MSUI9bQorQ09O RklHX01UNzZ4MDJfVVNCPW0KK0NPTkZJR19NVDc2X0NPTk5BQ19MSUI9bQorQ09ORklHX01UNzZ4 MF9DT01NT049bQorQ09ORklHX01UNzZ4MFU9bQorQ09ORklHX01UNzZ4MEU9bQorQ09ORklHX01U NzZ4Ml9DT01NT049bQorQ09ORklHX01UNzZ4MkU9bQorQ09ORklHX01UNzZ4MlU9bQorQ09ORklH X01UNzYwM0U9bQorQ09ORklHX01UNzYxNV9DT01NT049bQorQ09ORklHX01UNzYxNUU9bQorQ09O RklHX01UNzY2M19VU0JfU0RJT19DT01NT049bQorQ09ORklHX01UNzY2M1U9bQorQ09ORklHX01U NzY2M1M9bQorQ09ORklHX01UNzkxNUU9bQorQ09ORklHX01UNzkyMV9DT01NT049bQorQ09ORklH X01UNzkyMUU9bQorQ09ORklHX01UNzkyMVM9bQorQ09ORklHX01UNzkyMVU9bQorQ09ORklHX01U Nzk5NkU9bQorQ09ORklHX1dMQU5fVkVORE9SX01JQ1JPQ0hJUD15CisjIENPTkZJR19XSUxDMTAw MF9TRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJTEMxMDAwX1NQSSBpcyBub3Qgc2V0CitDT05G SUdfV0xBTl9WRU5ET1JfUFVSRUxJRkk9eQorIyBDT05GSUdfUExGWExDIGlzIG5vdCBzZXQKK0NP TkZJR19XTEFOX1ZFTkRPUl9SQUxJTks9eQorQ09ORklHX1JUMlgwMD1tCitDT05GSUdfUlQyNDAw UENJPW0KK0NPTkZJR19SVDI1MDBQQ0k9bQorQ09ORklHX1JUNjFQQ0k9bQorQ09ORklHX1JUMjgw MFBDST1tCitDT05GSUdfUlQyODAwUENJX1JUMzNYWD15CitDT05GSUdfUlQyODAwUENJX1JUMzVY WD15CitDT05GSUdfUlQyODAwUENJX1JUNTNYWD15CitDT05GSUdfUlQyODAwUENJX1JUMzI5MD15 CitDT05GSUdfUlQyNTAwVVNCPW0KK0NPTkZJR19SVDczVVNCPW0KK0NPTkZJR19SVDI4MDBVU0I9 bQorQ09ORklHX1JUMjgwMFVTQl9SVDMzWFg9eQorQ09ORklHX1JUMjgwMFVTQl9SVDM1WFg9eQor Q09ORklHX1JUMjgwMFVTQl9SVDM1NzM9eQorQ09ORklHX1JUMjgwMFVTQl9SVDUzWFg9eQorQ09O RklHX1JUMjgwMFVTQl9SVDU1WFg9eQorQ09ORklHX1JUMjgwMFVTQl9VTktOT1dOPXkKK0NPTkZJ R19SVDI4MDBfTElCPW0KK0NPTkZJR19SVDI4MDBfTElCX01NSU89bQorQ09ORklHX1JUMlgwMF9M SUJfTU1JTz1tCitDT05GSUdfUlQyWDAwX0xJQl9QQ0k9bQorQ09ORklHX1JUMlgwMF9MSUJfVVNC PW0KK0NPTkZJR19SVDJYMDBfTElCPW0KK0NPTkZJR19SVDJYMDBfTElCX0ZJUk1XQVJFPXkKK0NP TkZJR19SVDJYMDBfTElCX0NSWVBUTz15CitDT05GSUdfUlQyWDAwX0xJQl9MRURTPXkKKyMgQ09O RklHX1JUMlgwMF9MSUJfREVCVUdGUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVDJYMDBfREVCVUcg aXMgbm90IHNldAorQ09ORklHX1dMQU5fVkVORE9SX1JFQUxURUs9eQorQ09ORklHX1JUTDgxODA9 bQorQ09ORklHX1JUTDgxODc9bQorQ09ORklHX1JUTDgxODdfTEVEUz15CitDT05GSUdfUlRMX0NB UkRTPW0KK0NPTkZJR19SVEw4MTkyQ0U9bQorQ09ORklHX1JUTDgxOTJTRT1tCitDT05GSUdfUlRM ODE5MkRFPW0KK0NPTkZJR19SVEw4NzIzQUU9bQorQ09ORklHX1JUTDg3MjNCRT1tCitDT05GSUdf UlRMODE4OEVFPW0KK0NPTkZJR19SVEw4MTkyRUU9bQorQ09ORklHX1JUTDg4MjFBRT1tCitDT05G SUdfUlRMODE5MkNVPW0KK0NPTkZJR19SVExXSUZJPW0KK0NPTkZJR19SVExXSUZJX1BDST1tCitD T05GSUdfUlRMV0lGSV9VU0I9bQorQ09ORklHX1JUTFdJRklfREVCVUc9eQorQ09ORklHX1JUTDgx OTJDX0NPTU1PTj1tCitDT05GSUdfUlRMODcyM19DT01NT049bQorQ09ORklHX1JUTEJUQ09FWElT VD1tCitDT05GSUdfUlRMOFhYWFU9bQorQ09ORklHX1JUTDhYWFhVX1VOVEVTVEVEPXkKK0NPTkZJ R19SVFc4OD1tCitDT05GSUdfUlRXODhfQ09SRT1tCitDT05GSUdfUlRXODhfUENJPW0KK0NPTkZJ R19SVFc4OF9VU0I9bQorQ09ORklHX1JUVzg4Xzg4MjJCPW0KK0NPTkZJR19SVFc4OF84ODIyQz1t CitDT05GSUdfUlRXODhfODcyM0Q9bQorQ09ORklHX1JUVzg4Xzg4MjFDPW0KK0NPTkZJR19SVFc4 OF84ODIyQkU9bQorQ09ORklHX1JUVzg4Xzg4MjJCVT1tCitDT05GSUdfUlRXODhfODgyMkNFPW0K K0NPTkZJR19SVFc4OF84ODIyQ1U9bQorQ09ORklHX1JUVzg4Xzg3MjNERT1tCitDT05GSUdfUlRX ODhfODcyM0RVPW0KK0NPTkZJR19SVFc4OF84ODIxQ0U9bQorQ09ORklHX1JUVzg4Xzg4MjFDVT1t CisjIENPTkZJR19SVFc4OF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19SVFc4OF9ERUJVR0ZT IGlzIG5vdCBzZXQKK0NPTkZJR19SVFc4OT1tCitDT05GSUdfUlRXODlfQ09SRT1tCitDT05GSUdf UlRXODlfUENJPW0KK0NPTkZJR19SVFc4OV84ODUyQT1tCitDT05GSUdfUlRXODlfODg1MkI9bQor Q09ORklHX1JUVzg5Xzg4NTJDPW0KK0NPTkZJR19SVFc4OV84ODUyQUU9bQorQ09ORklHX1JUVzg5 Xzg4NTJCRT1tCitDT05GSUdfUlRXODlfODg1MkNFPW0KKyMgQ09ORklHX1JUVzg5X0RFQlVHTVNH IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUVzg5X0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX1dM QU5fVkVORE9SX1JTST15CitDT05GSUdfUlNJXzkxWD1tCisjIENPTkZJR19SU0lfREVCVUdGUyBp cyBub3Qgc2V0CitDT05GSUdfUlNJX1NESU89bQorQ09ORklHX1JTSV9VU0I9bQorQ09ORklHX1JT SV9DT0VYPXkKK0NPTkZJR19XTEFOX1ZFTkRPUl9TSUxBQlM9eQorQ09ORklHX1dGWD1tCitDT05G SUdfV0xBTl9WRU5ET1JfU1Q9eQorQ09ORklHX0NXMTIwMD1tCitDT05GSUdfQ1cxMjAwX1dMQU5f U0RJTz1tCisjIENPTkZJR19DVzEyMDBfV0xBTl9TUEkgaXMgbm90IHNldAorQ09ORklHX1dMQU5f VkVORE9SX1RJPXkKK0NPTkZJR19XTDEyNTE9bQorIyBDT05GSUdfV0wxMjUxX1NQSSBpcyBub3Qg c2V0CitDT05GSUdfV0wxMjUxX1NESU89bQorQ09ORklHX1dMMTJYWD1tCitDT05GSUdfV0wxOFhY PW0KK0NPTkZJR19XTENPUkU9bQorIyBDT05GSUdfV0xDT1JFX1NQSSBpcyBub3Qgc2V0CitDT05G SUdfV0xDT1JFX1NESU89bQorQ09ORklHX1dMQU5fVkVORE9SX1pZREFTPXkKK0NPTkZJR19VU0Jf WkQxMjAxPW0KK0NPTkZJR19aRDEyMTFSVz1tCisjIENPTkZJR19aRDEyMTFSV19ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfV0xBTl9WRU5ET1JfUVVBTlRFTk5BPXkKK0NPTkZJR19RVE5GTUFDPW0K K0NPTkZJR19RVE5GTUFDX1BDSUU9bQorQ09ORklHX1BDTUNJQV9SQVlDUz1tCitDT05GSUdfUENN Q0lBX1dMMzUwMT1tCitDT05GSUdfTUFDODAyMTFfSFdTSU09bQorQ09ORklHX1VTQl9ORVRfUk5E SVNfV0xBTj1tCitDT05GSUdfVklSVF9XSUZJPW0KKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CitD T05GSUdfSUVFRTgwMjE1NF9EUklWRVJTPW0KK0NPTkZJR19JRUVFODAyMTU0X0ZBS0VMQj1tCisj IENPTkZJR19JRUVFODAyMTU0X0FUODZSRjIzMCBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAy MTU0X01SRjI0SjQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxNTRfQ0MyNTIwIGlzIG5v dCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxNTRfQVRVU0IgaXMgbm90IHNldAorQ09ORklHX0lFRUU4 MDIxNTRfQURGNzI0Mj1tCitDT05GSUdfSUVFRTgwMjE1NF9DQTgyMTA9bQorQ09ORklHX0lFRUU4 MDIxNTRfQ0E4MjEwX0RFQlVHRlM9eQorQ09ORklHX0lFRUU4MDIxNTRfTUNSMjBBPW0KK0NPTkZJ R19JRUVFODAyMTU0X0hXU0lNPW0KKworIworIyBXaXJlbGVzcyBXQU4KKyMKK0NPTkZJR19XV0FO PXkKK0NPTkZJR19XV0FOX0RFQlVHRlM9eQorQ09ORklHX1dXQU5fSFdTSU09bQorQ09ORklHX01I SV9XV0FOX0NUUkw9bQorQ09ORklHX01ISV9XV0FOX01CSU09bQorQ09ORklHX1JQTVNHX1dXQU5f Q1RSTD1tCisjIENPTkZJR19JT1NNIGlzIG5vdCBzZXQKK0NPTkZJR19NVEtfVDdYWD1tCisjIGVu ZCBvZiBXaXJlbGVzcyBXQU4KKworQ09ORklHX1ZNWE5FVDM9bQorQ09ORklHX1VTQjRfTkVUPW0K K0NPTkZJR19ORVRERVZTSU09bQorQ09ORklHX05FVF9GQUlMT1ZFUj1tCisjIENPTkZJR19JU0RO IGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVU PXkKK0NPTkZJR19JTlBVVF9MRURTPXkKK0NPTkZJR19JTlBVVF9GRl9NRU1MRVNTPW0KK0NPTkZJ R19JTlBVVF9TUEFSU0VLTUFQPW0KK0NPTkZJR19JTlBVVF9NQVRSSVhLTUFQPW0KK0NPTkZJR19J TlBVVF9WSVZBTERJRk1BUD15CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklH X0lOUFVUX01PVVNFREVWPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15CitDT05GSUdf SU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVF Tl9ZPTc2OAorQ09ORklHX0lOUFVUX0pPWURFVj1tCitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBD T05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJz CisjCitDT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQorIyBDT05GSUdfS0VZQk9BUkRfQURDIGlzIG5v dCBzZXQKK0NPTkZJR19LRVlCT0FSRF9BRFA1NTg4PW0KK0NPTkZJR19LRVlCT0FSRF9BRFA1NTg5 PW0KK0NPTkZJR19LRVlCT0FSRF9BVEtCRD15CitDT05GSUdfS0VZQk9BUkRfUVQxMDUwPW0KK0NP TkZJR19LRVlCT0FSRF9RVDEwNzA9bQorQ09ORklHX0tFWUJPQVJEX1FUMjE2MD1tCitDT05GSUdf S0VZQk9BUkRfRExJTktfRElSNjg1PW0KKyMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBz ZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPW0KK0NPTkZJR19LRVlCT0FSRF9HUElPX1BPTExFRD1t CitDT05GSUdfS0VZQk9BUkRfVENBNjQxNj1tCitDT05GSUdfS0VZQk9BUkRfVENBODQxOD1tCitD T05GSUdfS0VZQk9BUkRfTUFUUklYPW0KK0NPTkZJR19LRVlCT0FSRF9MTTgzMjM9bQorQ09ORklH X0tFWUJPQVJEX0xNODMzMz1tCitDT05GSUdfS0VZQk9BUkRfTUFYNzM1OT1tCitDT05GSUdfS0VZ Qk9BUkRfTUNTPW0KK0NPTkZJR19LRVlCT0FSRF9NUFIxMjE9bQorQ09ORklHX0tFWUJPQVJEX05F V1RPTj1tCitDT05GSUdfS0VZQk9BUkRfT1BFTkNPUkVTPW0KK0NPTkZJR19LRVlCT0FSRF9QSU5F UEhPTkU9bQorIyBDT05GSUdfS0VZQk9BUkRfU0FNU1VORyBpcyBub3Qgc2V0CitDT05GSUdfS0VZ Qk9BUkRfR09MREZJU0hfRVZFTlRTPXkKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5v dCBzZXQKK0NPTkZJR19LRVlCT0FSRF9TVU5LQkQ9bQorQ09ORklHX0tFWUJPQVJEX1NVTjRJX0xS QURDPW0KK0NPTkZJR19LRVlCT0FSRF9JUVM2Mlg9bQorIyBDT05GSUdfS0VZQk9BUkRfT01BUDQg aXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX1RNMl9UT1VDSEtFWT1tCitDT05GSUdfS0VZQk9B UkRfWFRLQkQ9bQorQ09ORklHX0tFWUJPQVJEX0NBUDExWFg9bQorIyBDT05GSUdfS0VZQk9BUkRf QkNNIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9DWVBSRVNTX1NGPW0KK0NPTkZJR19JTlBV VF9NT1VTRT15CitDT05GSUdfTU9VU0VfUFMyPXkKK0NPTkZJR19NT1VTRV9QUzJfQUxQUz15CitD T05GSUdfTU9VU0VfUFMyX0JZRD15CitDT05GSUdfTU9VU0VfUFMyX0xPR0lQUzJQUD15CitDT05G SUdfTU9VU0VfUFMyX1NZTkFQVElDUz15CitDT05GSUdfTU9VU0VfUFMyX1NZTkFQVElDU19TTUJV Uz15CitDT05GSUdfTU9VU0VfUFMyX0NZUFJFU1M9eQorQ09ORklHX01PVVNFX1BTMl9UUkFDS1BP SU5UPXkKK0NPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0g9eQorQ09ORklHX01PVVNFX1BTMl9FTEFO VEVDSF9TTUJVUz15CitDT05GSUdfTU9VU0VfUFMyX1NFTlRFTElDPXkKK0NPTkZJR19NT1VTRV9Q UzJfVE9VQ0hLSVQ9eQorQ09ORklHX01PVVNFX1BTMl9GT0NBTFRFQ0g9eQorQ09ORklHX01PVVNF X1BTMl9TTUJVUz15CitDT05GSUdfTU9VU0VfU0VSSUFMPW0KK0NPTkZJR19NT1VTRV9BUFBMRVRP VUNIPW0KK0NPTkZJR19NT1VTRV9CQ001OTc0PW0KK0NPTkZJR19NT1VTRV9DWUFQQT1tCitDT05G SUdfTU9VU0VfRUxBTl9JMkM9bQorQ09ORklHX01PVVNFX0VMQU5fSTJDX0kyQz15CitDT05GSUdf TU9VU0VfRUxBTl9JMkNfU01CVVM9eQorQ09ORklHX01PVVNFX1ZTWFhYQUE9bQorQ09ORklHX01P VVNFX0dQSU89bQorQ09ORklHX01PVVNFX1NZTkFQVElDU19JMkM9bQorQ09ORklHX01PVVNFX1NZ TkFQVElDU19VU0I9bQorQ09ORklHX0lOUFVUX0pPWVNUSUNLPXkKK0NPTkZJR19KT1lTVElDS19B TkFMT0c9bQorQ09ORklHX0pPWVNUSUNLX0EzRD1tCitDT05GSUdfSk9ZU1RJQ0tfQURDPW0KK0NP TkZJR19KT1lTVElDS19BREk9bQorQ09ORklHX0pPWVNUSUNLX0NPQlJBPW0KK0NPTkZJR19KT1lT VElDS19HRjJLPW0KK0NPTkZJR19KT1lTVElDS19HUklQPW0KK0NPTkZJR19KT1lTVElDS19HUklQ X01QPW0KK0NPTkZJR19KT1lTVElDS19HVUlMTEVNT1Q9bQorQ09ORklHX0pPWVNUSUNLX0lOVEVS QUNUPW0KK0NPTkZJR19KT1lTVElDS19TSURFV0lOREVSPW0KK0NPTkZJR19KT1lTVElDS19UTURD PW0KK0NPTkZJR19KT1lTVElDS19JRk9SQ0U9bQorQ09ORklHX0pPWVNUSUNLX0lGT1JDRV9VU0I9 bQorQ09ORklHX0pPWVNUSUNLX0lGT1JDRV8yMzI9bQorQ09ORklHX0pPWVNUSUNLX1dBUlJJT1I9 bQorQ09ORklHX0pPWVNUSUNLX01BR0VMTEFOPW0KK0NPTkZJR19KT1lTVElDS19TUEFDRU9SQj1t CitDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VCQUxMPW0KK0NPTkZJR19KT1lTVElDS19TVElOR0VSPW0K K0NPTkZJR19KT1lTVElDS19UV0lESk9ZPW0KK0NPTkZJR19KT1lTVElDS19aSEVOSFVBPW0KK0NP TkZJR19KT1lTVElDS19EQjk9bQorQ09ORklHX0pPWVNUSUNLX0dBTUVDT049bQorQ09ORklHX0pP WVNUSUNLX1RVUkJPR1JBRlg9bQorQ09ORklHX0pPWVNUSUNLX0FTNTAxMT1tCitDT05GSUdfSk9Z U1RJQ0tfSk9ZRFVNUD1tCitDT05GSUdfSk9ZU1RJQ0tfWFBBRD1tCitDT05GSUdfSk9ZU1RJQ0tf WFBBRF9GRj15CitDT05GSUdfSk9ZU1RJQ0tfWFBBRF9MRURTPXkKK0NPTkZJR19KT1lTVElDS19X QUxLRVJBMDcwMT1tCitDT05GSUdfSk9ZU1RJQ0tfUFNYUEFEX1NQST1tCitDT05GSUdfSk9ZU1RJ Q0tfUFNYUEFEX1NQSV9GRj15CitDT05GSUdfSk9ZU1RJQ0tfUFhSQz1tCitDT05GSUdfSk9ZU1RJ Q0tfUVdJSUM9bQorQ09ORklHX0pPWVNUSUNLX0ZTSUE2Qj1tCisjIENPTkZJR19KT1lTVElDS19T RU5TRUhBVCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVEFCTEVUPXkKK0NPTkZJR19UQUJMRVRf VVNCX0FDRUNBRD1tCitDT05GSUdfVEFCTEVUX1VTQl9BSVBURUs9bQorQ09ORklHX1RBQkxFVF9V U0JfSEFOV0FORz1tCitDT05GSUdfVEFCTEVUX1VTQl9LQlRBQj1tCitDT05GSUdfVEFCTEVUX1VT Ql9QRUdBU1VTPW0KK0NPTkZJR19UQUJMRVRfU0VSSUFMX1dBQ09NND1tCitDT05GSUdfSU5QVVRf VE9VQ0hTQ1JFRU49eQorQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDY9bQorIyBDT05GSUdfVE9V Q0hTQ1JFRU5fQUQ3ODc3IGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9BRDc4Nzk9bQor Q09ORklHX1RPVUNIU0NSRUVOX0FENzg3OV9JMkM9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fQUQ3 ODc5X1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fQURDPW0KK0NPTkZJR19UT1VD SFNDUkVFTl9BUjEwMjFfSTJDPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9BVE1FTF9NWFQ9bQorQ09O RklHX1RPVUNIU0NSRUVOX0FUTUVMX01YVF9UMzc9eQorQ09ORklHX1RPVUNIU0NSRUVOX0FVT19Q SVhDSVI9bQorQ09ORklHX1RPVUNIU0NSRUVOX0JVMjEwMTM9bQorQ09ORklHX1RPVUNIU0NSRUVO X0JVMjEwMjk9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NISVBPTkVfSUNOODMxOD1tCitDT05GSUdf VE9VQ0hTQ1JFRU5fQ1k4Q1RNQTE0MD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1k4Q1RNRzExMD1t CitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQX0NPUkU9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NZ VFRTUF9JMkM9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQX1NQSSBpcyBub3Qgc2V0CitD T05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQNF9DT1JFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9DWVRU U1A0X0kyQz1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1A0X1NQSSBpcyBub3Qgc2V0CitD T05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQNT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRFlOQVBSTz1t CitDT05GSUdfVE9VQ0hTQ1JFRU5fSEFNUFNISVJFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9FRVRJ PW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX0VHQUxBWCBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hT Q1JFRU5fRUdBTEFYX1NFUklBTD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRVhDMzAwMD1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fR09PRElYPW0KK0NP TkZJR19UT1VDSFNDUkVFTl9ISURFRVA9bQorQ09ORklHX1RPVUNIU0NSRUVOX0hZQ09OX0hZNDZY WD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSFlOSVRST05fQ1NUWFhYPW0KK0NPTkZJR19UT1VDSFND UkVFTl9JTEkyMTBYPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9JTElURUs9bQorQ09ORklHX1RPVUNI U0NSRUVOX1M2U1k3NjE9bQorQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFPW0KK0NPTkZJR19UT1VD SFNDUkVFTl9FS1RGMjEyNz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRUxBTj1tCitDT05GSUdfVE9V Q0hTQ1JFRU5fRUxPPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9XQUNPTV9XODAwMT1tCitDT05GSUdf VE9VQ0hTQ1JFRU5fV0FDT01fSTJDPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9NQVgxMTgwMT1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fTUNTNTAwMD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTU1TMTE0PW0K K0NPTkZJR19UT1VDSFNDUkVFTl9NRUxGQVNfTUlQND1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTVNH MjYzOD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9J TUFHSVM9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fSU1YNlVMX1RTQyBpcyBub3Qgc2V0CitDT05G SUdfVE9VQ0hTQ1JFRU5fSU5FWElPPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9NSzcxMj1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fUEVOTU9VTlQ9bQorQ09ORklHX1RPVUNIU0NSRUVOX0VEVF9GVDVYMDY9 bQorQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQ9bQorQ09ORklHX1RPVUNIU0NSRUVOX1RP VUNIV0lOPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RJX0FNMzM1WF9UU0MgaXMgbm90IHNldAor Q09ORklHX1RPVUNIU0NSRUVOX1BJWENJUj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV0RUODdYWF9J MkM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1dNOTdYWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV005 NzA1PXkKK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3MTI9eQorQ09ORklHX1RPVUNIU0NSRUVOX1dN OTcxMz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURT1tCitDT05GSUdfVE9VQ0hT Q1JFRU5fVVNCX0VHQUxBWD15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX1BBTkpJVD15CitDT05G SUdfVE9VQ0hTQ1JFRU5fVVNCXzNNPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfSVRNPXkKK0NP TkZJR19UT1VDSFNDUkVFTl9VU0JfRVRVUkJPPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfR1VO WkU9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9ETUNfVFNDMTA9eQorQ09ORklHX1RPVUNIU0NS RUVOX1VTQl9JUlRPVUNIPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfSURFQUxURUs9eQorQ09O RklHX1RPVUNIU0NSRUVOX1VTQl9HRU5FUkFMX1RPVUNIPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9V U0JfR09UT1A9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9KQVNURUM9eQorQ09ORklHX1RPVUNI U0NSRUVOX1VTQl9FTE89eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9FMkk9eQorQ09ORklHX1RP VUNIU0NSRUVOX1VTQl9aWVRST05JQz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VUVF9UQzQ1 VVNCPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfTkVYSU89eQorQ09ORklHX1RPVUNIU0NSRUVO X1VTQl9FQVNZVE9VQ0g9eQorQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNISVQyMTM9bQorQ09ORklH X1RPVUNIU0NSRUVOX1RTQ19TRVJJTz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwWF9DT1JF PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9UU0MyMDA0PW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RT QzIwMDUgaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX1RTQzIwMDc9bQorQ09ORklHX1RP VUNIU0NSRUVOX1RTQzIwMDdfSUlPPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9STV9UUz1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fU0lMRUFEPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TSVNfSTJDPW0KK0NP TkZJR19UT1VDSFNDUkVFTl9TVDEyMzI9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NUTUZUUz1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fU1VONEk9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NVUjQwPW0KKyMg Q09ORklHX1RPVUNIU0NSRUVOX1NVUkZBQ0UzX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hT Q1JFRU5fU1g4NjU0PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9UUFM2NTA3WD1tCitDT05GSUdfVE9V Q0hTQ1JFRU5fWkVUNjIyMz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWkZPUkNFPW0KK0NPTkZJR19U T1VDSFNDUkVFTl9DT0xJQlJJX1ZGNTA9bQorQ09ORklHX1RPVUNIU0NSRUVOX1JPSE1fQlUyMTAy Mz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSVFTNVhYPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9aSU5J VElYPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9ISU1BWF9IWDgzMTEyQj1tCitDT05GSUdfSU5QVVRf TUlTQz15CitDT05GSUdfSU5QVVRfQUQ3MTRYPW0KK0NPTkZJR19JTlBVVF9BRDcxNFhfSTJDPW0K KyMgQ09ORklHX0lOUFVUX0FENzE0WF9TUEkgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0FUQzI2 MFhfT05LRVk9bQorQ09ORklHX0lOUFVUX0FUTUVMX0NBUFRPVUNIPW0KK0NPTkZJR19JTlBVVF9C TUExNTA9bQorIyBDT05GSUdfSU5QVVRfRTNYMF9CVVRUT04gaXMgbm90IHNldAorQ09ORklHX0lO UFVUX01BWDc3NjUwX09OS0VZPW0KK0NPTkZJR19JTlBVVF9NTUE4NDUwPW0KKyMgQ09ORklHX0lO UFVUX0dQSU9fQkVFUEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9HUElPX0RFQ09ERVI9bQor Q09ORklHX0lOUFVUX0dQSU9fVklCUkE9bQorQ09ORklHX0lOUFVUX0NQQ0FQX1BXUkJVVFRPTj1t CitDT05GSUdfSU5QVVRfQVRJX1JFTU9URTI9bQorQ09ORklHX0lOUFVUX0tFWVNQQU5fUkVNT1RF PW0KK0NPTkZJR19JTlBVVF9LWFRKOT1tCitDT05GSUdfSU5QVVRfUE9XRVJNQVRFPW0KK0NPTkZJ R19JTlBVVF9ZRUFMSU5LPW0KK0NPTkZJR19JTlBVVF9DTTEwOT1tCitDT05GSUdfSU5QVVRfUkVH VUxBVE9SX0hBUFRJQz1tCitDT05GSUdfSU5QVVRfVFBTNjUyMTlfUFdSQlVUVE9OPW0KK0NPTkZJ R19JTlBVVF9BWFAyMFhfUEVLPW0KK0NPTkZJR19JTlBVVF9VSU5QVVQ9bQorQ09ORklHX0lOUFVU X1BDRjg1NzQ9bQorQ09ORklHX0lOUFVUX1BXTV9CRUVQRVI9bQorQ09ORklHX0lOUFVUX1BXTV9W SUJSQT1tCitDT05GSUdfSU5QVVRfUks4MDVfUFdSS0VZPW0KK0NPTkZJR19JTlBVVF9HUElPX1JP VEFSWV9FTkNPREVSPW0KK0NPTkZJR19JTlBVVF9EQTcyODBfSEFQVElDUz1tCitDT05GSUdfSU5Q VVRfQURYTDM0WD1tCitDT05GSUdfSU5QVVRfQURYTDM0WF9JMkM9bQorQ09ORklHX0lOUFVUX0FE WEwzNFhfU1BJPW0KK0NPTkZJR19JTlBVVF9JQk1fUEFORUw9bQorQ09ORklHX0lOUFVUX0lNU19Q Q1U9bQorQ09ORklHX0lOUFVUX0lRUzI2OUE9bQorQ09ORklHX0lOUFVUX0lRUzYyNkE9bQorIyBD T05GSUdfSU5QVVRfSVFTNzIyMiBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfQ01BMzAwMD1tCitD T05GSUdfSU5QVVRfQ01BMzAwMF9JMkM9bQorQ09ORklHX0lOUFVUX0RSVjI2MFhfSEFQVElDUz1t CitDT05GSUdfSU5QVVRfRFJWMjY2NV9IQVBUSUNTPW0KK0NPTkZJR19JTlBVVF9EUlYyNjY3X0hB UFRJQ1M9bQorQ09ORklHX0lOUFVUX1JUNTEyMF9QV1JLRVk9bQorQ09ORklHX0lOUFVUX1NUUE1J QzFfT05LRVk9bQorQ09ORklHX1JNSTRfQ09SRT1tCitDT05GSUdfUk1JNF9JMkM9bQorQ09ORklH X1JNSTRfU1BJPW0KK0NPTkZJR19STUk0X1NNQj1tCitDT05GSUdfUk1JNF9GMDM9eQorQ09ORklH X1JNSTRfRjAzX1NFUklPPW0KK0NPTkZJR19STUk0XzJEX1NFTlNPUj15CitDT05GSUdfUk1JNF9G MTE9eQorQ09ORklHX1JNSTRfRjEyPXkKK0NPTkZJR19STUk0X0YzMD15CitDT05GSUdfUk1JNF9G MzQ9eQorQ09ORklHX1JNSTRfRjNBPXkKK0NPTkZJR19STUk0X0Y1ND15CitDT05GSUdfUk1JNF9G NTU9eQorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworQ09ORklHX1NFUklPPXkKK0NPTkZJ R19TRVJJT19TRVJQT1JUPW0KK0NPTkZJR19TRVJJT19QQVJLQkQ9bQorQ09ORklHX1NFUklPX0FN QkFLTUk9bQorQ09ORklHX1NFUklPX1BDSVBTMj1tCitDT05GSUdfU0VSSU9fTElCUFMyPXkKK0NP TkZJR19TRVJJT19SQVc9bQorQ09ORklHX1NFUklPX0FMVEVSQV9QUzI9bQorQ09ORklHX1NFUklP X1BTMk1VTFQ9bQorIyBDT05GSUdfU0VSSU9fQVJDX1BTMiBpcyBub3Qgc2V0CitDT05GSUdfU0VS SU9fQVBCUFMyPW0KK0NPTkZJR19TRVJJT19TVU40SV9QUzI9bQorQ09ORklHX1NFUklPX0dQSU9f UFMyPW0KK0NPTkZJR19VU0VSSU89bQorQ09ORklHX0dBTUVQT1JUPW0KK0NPTkZJR19HQU1FUE9S VF9OUzU1OD1tCitDT05GSUdfR0FNRVBPUlRfTDQ9bQorQ09ORklHX0dBTUVQT1JUX0VNVTEwSzE9 bQorQ09ORklHX0dBTUVQT1JUX0ZNODAxPW0KKyMgZW5kIG9mIEhhcmR3YXJlIEkvTyBwb3J0cwor IyBlbmQgb2YgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcwor IworQ09ORklHX1RUWT15CitDT05GSUdfVlQ9eQorQ09ORklHX0NPTlNPTEVfVFJBTlNMQVRJT05T PXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKK0NPTkZJR19WVF9I V19DT05TT0xFX0JJTkRJTkc9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lf UFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0wCitDT05GSUdfTEVHQUNZX1RJT0NTVEk9 eQorQ09ORklHX0xESVNDX0FVVE9MT0FEPXkKKworIworIyBTZXJpYWwgZHJpdmVycworIworQ09O RklHX1NFUklBTF9FQVJMWUNPTj15CitDT05GSUdfU0VSSUFMXzgyNTA9eQorIyBDT05GSUdfU0VS SUFMXzgyNTBfREVQUkVDQVRFRF9PUFRJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF84 MjUwXzE2NTUwQV9WQVJJQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfODI1MF9GSU5U RUsgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorQ09ORklHX1NFUklB TF84MjUwX0RNQT15CitDT05GSUdfU0VSSUFMXzgyNTBfUENJTElCPXkKK0NPTkZJR19TRVJJQUxf ODI1MF9QQ0k9eQorQ09ORklHX1NFUklBTF84MjUwX0VYQVI9eQorQ09ORklHX1NFUklBTF84MjUw X0NTPW0KK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz0zMgorQ09ORklHX1NFUklBTF84MjUw X1JVTlRJTUVfVUFSVFM9MzIKK0NPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRD15CisjIENPTkZJ R19TRVJJQUxfODI1MF9NQU5ZX1BPUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9Q Q0kxWFhYWD1tCitDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJRPXkKKyMgQ09ORklHX1NFUklB TF84MjUwX0RFVEVDVF9JUlEgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMXzgyNTBfUlNBIGlz IG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9EV0xJQj15CitDT05GSUdfU0VSSUFMXzgyNTBf REZMPW0KK0NPTkZJR19TRVJJQUxfODI1MF9EVz15CitDT05GSUdfU0VSSUFMXzgyNTBfRU09bQor IyBDT05GSUdfU0VSSUFMXzgyNTBfUlQyODhYIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1 MF9QRVJJQ09NPW0KK0NPTkZJR19TRVJJQUxfT0ZfUExBVEZPUk09eQorCisjCisjIE5vbi04MjUw IHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfQU1CQV9QTDAxMD1tCitDT05G SUdfU0VSSUFMX0FNQkFfUEwwMTE9bQorQ09ORklHX1NFUklBTF9FQVJMWUNPTl9TRU1JSE9TVD15 CisjIENPTkZJR19TRVJJQUxfS0dEQl9OTUkgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX01B WDMxMDAgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX01BWDMxMFggaXMgbm90IHNldAorIyBD T05GSUdfU0VSSUFMX1VBUlRMSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU0hfU0NJPW0K K0NPTkZJR19TRVJJQUxfU0hfU0NJX05SX1VBUlRTPTE4CitDT05GSUdfU0VSSUFMX1NIX1NDSV9E TUE9eQorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkK K0NPTkZJR19DT05TT0xFX1BPTEw9eQorQ09ORklHX1NFUklBTF9KU009bQorQ09ORklHX1NFUklB TF9TSUZJVkU9eQorQ09ORklHX1NFUklBTF9TSUZJVkVfQ09OU09MRT15CisjIENPTkZJR19TRVJJ QUxfU0NDTlhQIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU0MxNklTN1hYX0NPUkU9bQorQ09O RklHX1NFUklBTF9TQzE2SVM3WFg9bQorQ09ORklHX1NFUklBTF9TQzE2SVM3WFhfSTJDPXkKK0NP TkZJR19TRVJJQUxfU0MxNklTN1hYX1NQST15CisjIENPTkZJR19TRVJJQUxfQUxURVJBX0pUQUdV QVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9BTFRFUkFfVUFSVCBpcyBub3Qgc2V0CitD T05GSUdfU0VSSUFMX1hJTElOWF9QU19VQVJUPXkKK0NPTkZJR19TRVJJQUxfWElMSU5YX1BTX1VB UlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVJDIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJ QUxfUlAyPW0KK0NPTkZJR19TRVJJQUxfUlAyX05SX1VBUlRTPTMyCitDT05GSUdfU0VSSUFMX0ZT TF9MUFVBUlQ9bQorQ09ORklHX1NFUklBTF9GU0xfTElORkxFWFVBUlQ9eQorQ09ORklHX1NFUklB TF9GU0xfTElORkxFWFVBUlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQ09ORVhBTlRfRElH SUNPTE9SIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU1BSRD15CitDT05GSUdfU0VSSUFMX1NQ UkRfQ09OU09MRT15CisjIGVuZCBvZiBTZXJpYWwgZHJpdmVycworCitDT05GSUdfU0VSSUFMX01D VFJMX0dQSU89eQorQ09ORklHX1NFUklBTF9OT05TVEFOREFSRD15CitDT05GSUdfTU9YQV9JTlRF TExJTz1tCitDT05GSUdfTU9YQV9TTUFSVElPPW0KK0NPTkZJR19TWU5DTElOS19HVD1tCitDT05G SUdfTl9IRExDPW0KK0NPTkZJR19HT0xERklTSF9UVFk9eQorQ09ORklHX0dPTERGSVNIX1RUWV9F QVJMWV9DT05TT0xFPXkKK0NPTkZJR19OX0dTTT1tCitDT05GSUdfTk9aT01JPW0KK0NPTkZJR19O VUxMX1RUWT1tCitDT05GSUdfSFZDX0RSSVZFUj15CitDT05GSUdfUlBNU0dfVFRZPW0KK0NPTkZJ R19TRVJJQUxfREVWX0JVUz15CitDT05GSUdfU0VSSUFMX0RFVl9DVFJMX1RUWVBPUlQ9eQorIyBD T05GSUdfVFRZX1BSSU5USyBpcyBub3Qgc2V0CitDT05GSUdfUFJJTlRFUj1tCisjIENPTkZJR19M UF9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19QUERFVj1tCitDT05GSUdfVklSVElPX0NPTlNP TEU9eQorQ09ORklHX0lQTUlfSEFORExFUj1tCitDT05GSUdfSVBNSV9QTEFUX0RBVEE9eQorQ09O RklHX0lQTUlfUEFOSUNfRVZFTlQ9eQorIyBDT05GSUdfSVBNSV9QQU5JQ19TVFJJTkcgaXMgbm90 IHNldAorQ09ORklHX0lQTUlfREVWSUNFX0lOVEVSRkFDRT1tCitDT05GSUdfSVBNSV9TST1tCitD T05GSUdfSVBNSV9TU0lGPW0KK0NPTkZJR19JUE1JX0lQTUI9bQorQ09ORklHX0lQTUlfV0FUQ0hE T0c9bQorQ09ORklHX0lQTUlfUE9XRVJPRkY9bQorQ09ORklHX1NTSUZfSVBNSV9CTUM9bQorQ09O RklHX0lQTUJfREVWSUNFX0lOVEVSRkFDRT1tCitDT05GSUdfSFdfUkFORE9NPXkKK0NPTkZJR19I V19SQU5ET01fVElNRVJJT01FTT1tCitDT05GSUdfSFdfUkFORE9NX0JBNDMxPW0KK0NPTkZJR19I V19SQU5ET01fVklSVElPPW0KK0NPTkZJR19IV19SQU5ET01fUE9MQVJGSVJFX1NPQz1tCitDT05G SUdfSFdfUkFORE9NX0NDVFJORz1tCitDT05GSUdfSFdfUkFORE9NX1hJUEhFUkE9bQorQ09ORklH X0hXX1JBTkRPTV9KSDcxMTA9bQorQ09ORklHX0FQUExJQ09NPW0KKworIworIyBQQ01DSUEgY2hh cmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19TWU5DTElOS19DUz1tCitDT05GSUdfQ0FSRE1BTl80 MDAwPW0KK0NPTkZJR19DQVJETUFOXzQwNDA9bQorQ09ORklHX1NDUjI0WD1tCitDT05GSUdfSVBX SVJFTEVTUz1tCisjIGVuZCBvZiBQQ01DSUEgY2hhcmFjdGVyIGRldmljZXMKKworQ09ORklHX0RF Vk1FTT15CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfVENHX1RQTT15CitDT05GSUdfSFdfUkFO RE9NX1RQTT15CitDT05GSUdfVENHX1RJU19DT1JFPXkKK0NPTkZJR19UQ0dfVElTPXkKK0NPTkZJ R19UQ0dfVElTX1NQST1tCitDT05GSUdfVENHX1RJU19TUElfQ1I1MD15CitDT05GSUdfVENHX1RJ U19JMkM9bQorQ09ORklHX1RDR19USVNfSTJDX0NSNTA9bQorQ09ORklHX1RDR19USVNfSTJDX0FU TUVMPW0KK0NPTkZJR19UQ0dfVElTX0kyQ19JTkZJTkVPTj1tCitDT05GSUdfVENHX1RJU19JMkNf TlVWT1RPTj1tCitDT05GSUdfVENHX0FUTUVMPW0KK0NPTkZJR19UQ0dfVlRQTV9QUk9YWT1tCitD T05GSUdfVENHX1RJU19TVDMzWlAyND1tCitDT05GSUdfVENHX1RJU19TVDMzWlAyNF9JMkM9bQor Q09ORklHX1RDR19USVNfU1QzM1pQMjRfU1BJPW0KK0NPTkZJR19YSUxMWUJVU19DTEFTUz1tCitD T05GSUdfWElMTFlCVVM9bQorQ09ORklHX1hJTExZQlVTX1BDSUU9bQorQ09ORklHX1hJTExZQlVT X09GPW0KK0NPTkZJR19YSUxMWVVTQj1tCisjIGVuZCBvZiBDaGFyYWN0ZXIgZGV2aWNlcworCisj CisjIEkyQyBzdXBwb3J0CisjCitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkK KyMgQ09ORklHX0kyQ19DT01QQVQgaXMgbm90IHNldAorQ09ORklHX0kyQ19DSEFSREVWPW0KK0NP TkZJR19JMkNfTVVYPW0KKworIworIyBNdWx0aXBsZXhlciBJMkMgQ2hpcCBzdXBwb3J0CisjCisj IENPTkZJR19JMkNfQVJCX0dQSU9fQ0hBTExFTkdFIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfTVVY X0dQSU89bQorQ09ORklHX0kyQ19NVVhfR1BNVVg9bQorQ09ORklHX0kyQ19NVVhfTFRDNDMwNj1t CitDT05GSUdfSTJDX01VWF9QQ0E5NTQxPW0KK0NPTkZJR19JMkNfTVVYX1BDQTk1NHg9bQorIyBD T05GSUdfSTJDX01VWF9QSU5DVFJMIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfTVVYX1JFRz1tCitD T05GSUdfSTJDX0RFTVVYX1BJTkNUUkw9bQorQ09ORklHX0kyQ19NVVhfTUxYQ1BMRD1tCisjIGVu ZCBvZiBNdWx0aXBsZXhlciBJMkMgQ2hpcCBzdXBwb3J0CisKK0NPTkZJR19JMkNfSEVMUEVSX0FV VE89eQorQ09ORklHX0kyQ19TTUJVUz1tCitDT05GSUdfSTJDX0FMR09CSVQ9bQorQ09ORklHX0ky Q19BTEdPUENBPW0KKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKworIworIyBQ QyBTTUJ1cyBob3N0IGNvbnRyb2xsZXIgZHJpdmVycworIworQ09ORklHX0kyQ19DQ0dYX1VDU0k9 bQorQ09ORklHX0kyQ19BTEkxNTM1PW0KK0NPTkZJR19JMkNfQUxJMTU2Mz1tCitDT05GSUdfSTJD X0FMSTE1WDM9bQorQ09ORklHX0kyQ19BTUQ3NTY9bQorQ09ORklHX0kyQ19BTUQ4MTExPW0KK0NP TkZJR19JMkNfSTgwMT1tCitDT05GSUdfSTJDX0lTQ0g9bQorQ09ORklHX0kyQ19QSUlYND1tCitD T05GSUdfSTJDX05GT1JDRTI9bQorQ09ORklHX0kyQ19OVklESUFfR1BVPW0KK0NPTkZJR19JMkNf U0lTNTU5NT1tCitDT05GSUdfSTJDX1NJUzYzMD1tCitDT05GSUdfSTJDX1NJUzk2WD1tCisjIENP TkZJR19JMkNfVklBIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfVklBUFJPPW0KKworIworIyBJMkMg c3lzdGVtIGJ1cyBkcml2ZXJzIChtb3N0bHkgZW1iZWRkZWQgLyBzeXN0ZW0tb24tY2hpcCkKKyMK K0NPTkZJR19JMkNfQ0JVU19HUElPPW0KK0NPTkZJR19JMkNfREVTSUdOV0FSRV9DT1JFPXkKK0NP TkZJR19JMkNfREVTSUdOV0FSRV9TTEFWRT15CitDT05GSUdfSTJDX0RFU0lHTldBUkVfUExBVEZP Uk09eQorQ09ORklHX0kyQ19ERVNJR05XQVJFX1BDST1tCisjIENPTkZJR19JMkNfRU1FVjIgaXMg bm90IHNldAorQ09ORklHX0kyQ19HUElPPW0KKyMgQ09ORklHX0kyQ19HUElPX0ZBVUxUX0lOSkVD VE9SIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfS0VNUExEPW0KK0NPTkZJR19JMkNfTUlDUk9DSElQ X0NPUkU9eQorQ09ORklHX0kyQ19NVjY0WFhYPW0KK0NPTkZJR19JMkNfTk9NQURJSz1tCitDT05G SUdfSTJDX09DT1JFUz1tCitDT05GSUdfSTJDX1BDQV9QTEFURk9STT1tCitDT05GSUdfSTJDX1JJ SUM9bQorQ09ORklHX0kyQ19SSzNYPW0KK0NPTkZJR19JMkNfUlpWMk09bQorQ09ORklHX0kyQ19T SF9NT0JJTEU9bQorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1hJ TElOWD1tCitDT05GSUdfSTJDX1JDQVI9bQorCisjCisjIEV4dGVybmFsIEkyQy9TTUJ1cyBhZGFw dGVyIGRyaXZlcnMKKyMKK0NPTkZJR19JMkNfRElPTEFOX1UyQz1tCitDT05GSUdfSTJDX0RMTjI9 bQorQ09ORklHX0kyQ19DUDI2MTU9bQorQ09ORklHX0kyQ19QQVJQT1JUPW0KK0NPTkZJR19JMkNf UENJMVhYWFg9bQorQ09ORklHX0kyQ19ST0JPVEZVWlpfT1NJRj1tCitDT05GSUdfSTJDX1RBT1Nf RVZNPW0KK0NPTkZJR19JMkNfVElOWV9VU0I9bQorQ09ORklHX0kyQ19WSVBFUkJPQVJEPW0KKwor IworIyBPdGhlciBJMkMvU01CdXMgYnVzIGRyaXZlcnMKKyMKK0NPTkZJR19JMkNfVklSVElPPW0K KyMgZW5kIG9mIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorCitDT05GSUdfSTJDX1NUVUI9bQor Q09ORklHX0kyQ19TTEFWRT15CitDT05GSUdfSTJDX1NMQVZFX0VFUFJPTT1tCitDT05GSUdfSTJD X1NMQVZFX1RFU1RVTklUPW0KKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMg Q09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMg aXMgbm90IHNldAorIyBlbmQgb2YgSTJDIHN1cHBvcnQKKworQ09ORklHX0kzQz1tCitDT05GSUdf Q0ROU19JM0NfTUFTVEVSPW0KK0NPTkZJR19EV19JM0NfTUFTVEVSPW0KK0NPTkZJR19TVkNfSTND X01BU1RFUj1tCitDT05GSUdfTUlQSV9JM0NfSENJPW0KK0NPTkZJR19TUEk9eQorIyBDT05GSUdf U1BJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKK0NPTkZJR19TUElfTUVN PXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfU1BJ X0FMVEVSQSBpcyBub3Qgc2V0CitDT05GSUdfU1BJX0FMVEVSQV9DT1JFPW0KK0NPTkZJR19TUElf QUxURVJBX0RGTD1tCisjIENPTkZJR19TUElfQVhJX1NQSV9FTkdJTkUgaXMgbm90IHNldAorQ09O RklHX1NQSV9CSVRCQU5HPW0KKyMgQ09ORklHX1NQSV9CVVRURVJGTFkgaXMgbm90IHNldAorQ09O RklHX1NQSV9DQURFTkNFPW0KK0NPTkZJR19TUElfQ0FERU5DRV9RVUFEU1BJPW0KK0NPTkZJR19T UElfQ0FERU5DRV9YU1BJPW0KK0NPTkZJR19TUElfREVTSUdOV0FSRT1tCitDT05GSUdfU1BJX0RX X0RNQT15CitDT05GSUdfU1BJX0RXX1BDST1tCitDT05GSUdfU1BJX0RXX01NSU89bQorQ09ORklH X1NQSV9ETE4yPW0KK0NPTkZJR19TUElfTlhQX0ZMRVhTUEk9bQorQ09ORklHX1NQSV9HUElPPW0K KyMgQ09ORklHX1NQSV9MTTcwX0xMUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJX0ZTTF9MSUI9eQor Q09ORklHX1NQSV9GU0xfU1BJPXkKK0NPTkZJR19TUElfTUlDUk9DSElQX0NPUkU9bQorQ09ORklH X1NQSV9NSUNST0NISVBfQ09SRV9RU1BJPW0KK0NPTkZJR19TUElfT0NfVElOWT1tCitDT05GSUdf U1BJX1BDSTFYWFhYPW0KK0NPTkZJR19TUElfUEwwMjI9bQorIyBDT05GSUdfU1BJX1BYQTJYWCBp cyBub3Qgc2V0CitDT05GSUdfU1BJX1JPQ0tDSElQPW0KK0NPTkZJR19TUElfUlBDSUY9bQorQ09O RklHX1NQSV9SU1BJPW0KK0NPTkZJR19TUElfU0MxOElTNjAyPW0KK0NPTkZJR19TUElfU0hfTVNJ T0Y9bQorQ09ORklHX1NQSV9TSF9IU1BJPW0KK0NPTkZJR19TUElfU0lGSVZFPW0KK0NPTkZJR19T UElfU05fRl9PU1BJPW0KK0NPTkZJR19TUElfU1VONEk9bQorQ09ORklHX1NQSV9TVU42ST1tCitD T05GSUdfU1BJX01YSUM9bQorQ09ORklHX1NQSV9YQ09NTT1tCitDT05GSUdfU1BJX1hJTElOWD1t CitDT05GSUdfU1BJX1pZTlFNUF9HUVNQST1tCitDT05GSUdfU1BJX0FNRD1tCisKKyMKKyMgU1BJ IE11bHRpcGxleGVyIHN1cHBvcnQKKyMKK0NPTkZJR19TUElfTVVYPW0KKworIworIyBTUEkgUHJv dG9jb2wgTWFzdGVycworIworQ09ORklHX1NQSV9TUElERVY9bQorQ09ORklHX1NQSV9MT09QQkFD S19URVNUPW0KKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfU0xB VkU9eQorQ09ORklHX1NQSV9TTEFWRV9USU1FPW0KK0NPTkZJR19TUElfU0xBVkVfU1lTVEVNX0NP TlRST0w9bQorQ09ORklHX1NQSV9EWU5BTUlDPXkKK0NPTkZJR19TUE1JPW0KK0NPTkZJR19TUE1J X0hJU0kzNjcwPW0KK0NPTkZJR19IU0k9bQorQ09ORklHX0hTSV9CT0FSRElORk89eQorCisjCisj IEhTSSBjb250cm9sbGVycworIworCisjCisjIEhTSSBjbGllbnRzCisjCitDT05GSUdfSFNJX0NI QVI9bQorQ09ORklHX1BQUz15CisjIENPTkZJR19QUFNfREVCVUcgaXMgbm90IHNldAorCisjCisj IFBQUyBjbGllbnRzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BQU19DTElFTlRfS1RJTUVSIGlzIG5v dCBzZXQKK0NPTkZJR19QUFNfQ0xJRU5UX0xESVNDPW0KK0NPTkZJR19QUFNfQ0xJRU5UX1BBUlBP UlQ9bQorQ09ORklHX1BQU19DTElFTlRfR1BJTz1tCisKKyMKKyMgUFBTIGdlbmVyYXRvcnMgc3Vw cG9ydAorIworCisjCisjIFBUUCBjbG9jayBzdXBwb3J0CisjCitDT05GSUdfUFRQXzE1ODhfQ0xP Q0s9eQorQ09ORklHX1BUUF8xNTg4X0NMT0NLX09QVElPTkFMPXkKKworIworIyBFbmFibGUgUEhZ TElCIGFuZCBORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcgdG8gc2VlIHRoZSBhZGRpdGlvbmFsIGNs b2Nrcy4KKyMKK0NPTkZJR19QVFBfMTU4OF9DTE9DS19JRFQ4MlAzMz1tCitDT05GSUdfUFRQXzE1 ODhfQ0xPQ0tfSURUQ009bQorQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUD1tCisjIGVuZCBvZiBQ VFAgY2xvY2sgc3VwcG9ydAorCitDT05GSUdfUElOQ1RSTD15CitDT05GSUdfR0VORVJJQ19QSU5D VFJMX0dST1VQUz15CitDT05GSUdfUElOTVVYPXkKK0NPTkZJR19HRU5FUklDX1BJTk1VWF9GVU5D VElPTlM9eQorQ09ORklHX1BJTkNPTkY9eQorQ09ORklHX0dFTkVSSUNfUElOQ09ORj15CisjIENP TkZJR19ERUJVR19QSU5DVFJMIGlzIG5vdCBzZXQKK0NPTkZJR19QSU5DVFJMX0FYUDIwOT1tCitD T05GSUdfUElOQ1RSTF9DWThDOTVYMD1tCitDT05GSUdfUElOQ1RSTF9NQVg3NzYyMD1tCitDT05G SUdfUElOQ1RSTF9NQ1AyM1MwOF9JMkM9bQorQ09ORklHX1BJTkNUUkxfTUNQMjNTMDhfU1BJPW0K K0NPTkZJR19QSU5DVFJMX01DUDIzUzA4PW0KK0NPTkZJR19QSU5DVFJMX01JQ1JPQ0hJUF9TR1BJ Tz15CisjIENPTkZJR19QSU5DVFJMX09DRUxPVCBpcyBub3Qgc2V0CitDT05GSUdfUElOQ1RSTF9S SzgwNT1tCitDT05GSUdfUElOQ1RSTF9TSU5HTEU9eQorQ09ORklHX1BJTkNUUkxfU1RNRlg9bQor Q09ORklHX1BJTkNUUkxfU1gxNTBYPXkKK0NPTkZJR19QSU5DVFJMX0xPQ0hOQUdBUj1tCitDT05G SUdfUElOQ1RSTF9NQURFUkE9bQorQ09ORklHX1BJTkNUUkxfQ1M0N0wxNT15CitDT05GSUdfUElO Q1RSTF9DUzQ3TDM1PXkKK0NPTkZJR19QSU5DVFJMX0NTNDdMODU9eQorQ09ORklHX1BJTkNUUkxf Q1M0N0w5MD15CitDT05GSUdfUElOQ1RSTF9DUzQ3TDkyPXkKKworIworIyBSZW5lc2FzIHBpbmN0 cmwgZHJpdmVycworIworQ09ORklHX1BJTkNUUkxfUkVORVNBUz15CitDT05GSUdfUElOQ1RSTF9S WkcyTD15CisjIGVuZCBvZiBSZW5lc2FzIHBpbmN0cmwgZHJpdmVycworCitDT05GSUdfUElOQ1RS TF9TVEFSRklWRV9KSDcxMDA9eQorQ09ORklHX1BJTkNUUkxfU1RBUkZJVkVfSkg3MTEwPXkKK0NP TkZJR19QSU5DVFJMX1NUQVJGSVZFX0pINzExMF9TWVM9eQorQ09ORklHX1BJTkNUUkxfU1RBUkZJ VkVfSkg3MTEwX0FPTj1tCitDT05GSUdfUElOQ1RSTF9TVU5YST15CitDT05GSUdfUElOQ1RSTF9T VU40SV9BMTA9eQorQ09ORklHX1BJTkNUUkxfU1VONUk9eQorQ09ORklHX1BJTkNUUkxfU1VONklf QTMxPXkKK0NPTkZJR19QSU5DVFJMX1NVTjZJX0EzMV9SPXkKK0NPTkZJR19QSU5DVFJMX1NVTjhJ X0EyMz15CitDT05GSUdfUElOQ1RSTF9TVU44SV9BMzM9eQorQ09ORklHX1BJTkNUUkxfU1VOOElf QTgzVD15CitDT05GSUdfUElOQ1RSTF9TVU44SV9BODNUX1I9eQorQ09ORklHX1BJTkNUUkxfU1VO OElfQTIzX1I9eQorQ09ORklHX1BJTkNUUkxfU1VOOElfSDM9eQorQ09ORklHX1BJTkNUUkxfU1VO OElfSDNfUj15CitDT05GSUdfUElOQ1RSTF9TVU44SV9WM1M9eQorIyBDT05GSUdfUElOQ1RSTF9T VU45SV9BODAgaXMgbm90IHNldAorQ09ORklHX1BJTkNUUkxfU1VOOUlfQTgwX1I9eQorQ09ORklH X1BJTkNUUkxfU1VOMjBJX0QxPXkKK0NPTkZJR19QSU5DVFJMX1NVTjUwSV9BNjQ9eQorQ09ORklH X1BJTkNUUkxfU1VONTBJX0E2NF9SPXkKK0NPTkZJR19QSU5DVFJMX1NVTjUwSV9BMTAwPXkKK0NP TkZJR19QSU5DVFJMX1NVTjUwSV9BMTAwX1I9eQorQ09ORklHX1BJTkNUUkxfU1VONTBJX0g1PXkK K0NPTkZJR19QSU5DVFJMX1NVTjUwSV9INj15CitDT05GSUdfUElOQ1RSTF9TVU41MElfSDZfUj15 CitDT05GSUdfUElOQ1RSTF9TVU41MElfSDYxNj15CitDT05GSUdfUElOQ1RSTF9TVU41MElfSDYx Nl9SPXkKK0NPTkZJR19HUElPTElCPXkKK0NPTkZJR19HUElPTElCX0ZBU1RQQVRIX0xJTUlUPTUx MgorQ09ORklHX09GX0dQSU89eQorQ09ORklHX0dQSU9MSUJfSVJRQ0hJUD15CisjIENPTkZJR19E RUJVR19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1NZU0ZTPXkKK0NPTkZJR19HUElPX0NE RVY9eQorQ09ORklHX0dQSU9fQ0RFVl9WMT15CitDT05GSUdfR1BJT19HRU5FUklDPXkKK0NPTkZJ R19HUElPX01BWDczMFg9bQorQ09ORklHX0dQSU9fSURJT18xNj1tCisKKyMKKyMgTWVtb3J5IG1h cHBlZCBHUElPIGRyaXZlcnMKKyMKK0NPTkZJR19HUElPXzc0WFhfTU1JTz1tCisjIENPTkZJR19H UElPX0FMVEVSQSBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19DQURFTkNFPW0KK0NPTkZJR19HUElP X0RXQVBCPW0KKyMgQ09ORklHX0dQSU9fRVhBUiBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19GVEdQ SU8wMTA9eQorQ09ORklHX0dQSU9fR0VORVJJQ19QTEFURk9STT15CitDT05GSUdfR1BJT19HUkdQ SU89bQorIyBDT05GSUdfR1BJT19ITFdEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9fTE9HSUNW QyBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19NQjg2UzdYPW0KK0NPTkZJR19HUElPX1BMMDYxPW0K K0NPTkZJR19HUElPX1JDQVI9bQorIyBDT05GSUdfR1BJT19TSUZJVkUgaXMgbm90IHNldAorQ09O RklHX0dQSU9fU1lTQ09OPW0KK0NPTkZJR19HUElPX1hJTElOWD1tCisjIENPTkZJR19HUElPX0FN RF9GQ0ggaXMgbm90IHNldAorIyBlbmQgb2YgTWVtb3J5IG1hcHBlZCBHUElPIGRyaXZlcnMKKwor IworIyBJMkMgR1BJTyBleHBhbmRlcnMKKyMKKyMgQ09ORklHX0dQSU9fQUROUCBpcyBub3Qgc2V0 CitDT05GSUdfR1BJT19HV19QTEQ9bQorQ09ORklHX0dQSU9fTUFYNzMwMD1tCitDT05GSUdfR1BJ T19NQVg3MzJYPW0KK0NPTkZJR19HUElPX1BDQTk1M1g9bQorQ09ORklHX0dQSU9fUENBOTUzWF9J UlE9eQorQ09ORklHX0dQSU9fUENBOTU3MD1tCitDT05GSUdfR1BJT19QQ0Y4NTdYPW0KK0NPTkZJ R19HUElPX1RQSUMyODEwPW0KKyMgZW5kIG9mIEkyQyBHUElPIGV4cGFuZGVycworCisjCisjIE1G RCBHUElPIGV4cGFuZGVycworIworQ09ORklHX0dQSU9fQkQ3MTgxNT1tCitDT05GSUdfR1BJT19C RDcxODI4PW0KK0NPTkZJR19HUElPX0JEOTU3MU1XVj1tCitDT05GSUdfR1BJT19ETE4yPW0KK0NP TkZJR19HUElPX0tFTVBMRD1tCitDT05GSUdfR1BJT19MUDM5NDM9bQorQ09ORklHX0dQSU9fTFA4 NzNYPW0KK0NPTkZJR19HUElPX0xQODc1NjU9bQorQ09ORklHX0dQSU9fTUFERVJBPW0KK0NPTkZJ R19HUElPX01BWDc3NjIwPW0KK0NPTkZJR19HUElPX01BWDc3NjUwPW0KK0NPTkZJR19HUElPX1RR TVg4Nj1tCisjIENPTkZJR19HUElPX1dNODk5NCBpcyBub3Qgc2V0CisjIGVuZCBvZiBNRkQgR1BJ TyBleHBhbmRlcnMKKworIworIyBQQ0kgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1BD SV9JRElPXzE2PW0KK0NPTkZJR19HUElPX1BDSUVfSURJT18yND1tCisjIENPTkZJR19HUElPX1JE QzMyMVggaXMgbm90IHNldAorIyBlbmQgb2YgUENJIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgU1BJ IEdQSU8gZXhwYW5kZXJzCisjCisjIENPTkZJR19HUElPXzc0WDE2NCBpcyBub3Qgc2V0CitDT05G SUdfR1BJT19NQVgzMTkxWD1tCisjIENPTkZJR19HUElPX01BWDczMDEgaXMgbm90IHNldAorIyBD T05GSUdfR1BJT19NQzMzODgwIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1BJU09TUj1tCitDT05G SUdfR1BJT19YUkExNDAzPW0KK0NPTkZJR19HUElPX01PWFRFVD1tCisjIGVuZCBvZiBTUEkgR1BJ TyBleHBhbmRlcnMKKworIworIyBVU0IgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1ZJ UEVSQk9BUkQ9bQorIyBlbmQgb2YgVVNCIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgVmlydHVhbCBH UElPIGRyaXZlcnMKKyMKK0NPTkZJR19HUElPX0FHR1JFR0FUT1I9bQorQ09ORklHX0dQSU9fTEFU Q0g9bQorQ09ORklHX0dQSU9fTU9DS1VQPW0KK0NPTkZJR19HUElPX1ZJUlRJTz1tCitDT05GSUdf R1BJT19TSU09bQorIyBlbmQgb2YgVmlydHVhbCBHUElPIGRyaXZlcnMKKworQ09ORklHX1cxPW0K K0NPTkZJR19XMV9DT049eQorCisjCisjIDEtd2lyZSBCdXMgTWFzdGVycworIworQ09ORklHX1cx X01BU1RFUl9NQVRST1g9bQorQ09ORklHX1cxX01BU1RFUl9EUzI0OTA9bQorQ09ORklHX1cxX01B U1RFUl9EUzI0ODI9bQorQ09ORklHX1cxX01BU1RFUl9HUElPPW0KKyMgQ09ORklHX1cxX01BU1RF Ul9TR0kgaXMgbm90IHNldAorIyBlbmQgb2YgMS13aXJlIEJ1cyBNYXN0ZXJzCisKKyMKKyMgMS13 aXJlIFNsYXZlcworIworQ09ORklHX1cxX1NMQVZFX1RIRVJNPW0KK0NPTkZJR19XMV9TTEFWRV9T TUVNPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MDU9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQwOD1t CitDT05GSUdfVzFfU0xBVkVfRFMyNDA4X1JFQURCQUNLPXkKK0NPTkZJR19XMV9TTEFWRV9EUzI0 MTM9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQwNj1tCitDT05GSUdfVzFfU0xBVkVfRFMyNDIzPW0K K0NPTkZJR19XMV9TTEFWRV9EUzI4MDU9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQzMD1tCitDT05G SUdfVzFfU0xBVkVfRFMyNDMxPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MzM9bQorQ09ORklHX1cx X1NMQVZFX0RTMjQzM19DUkM9eQorQ09ORklHX1cxX1NMQVZFX0RTMjQzOD1tCitDT05GSUdfVzFf U0xBVkVfRFMyNTBYPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI3ODA9bQorQ09ORklHX1cxX1NMQVZF X0RTMjc4MT1tCitDT05GSUdfVzFfU0xBVkVfRFMyOEUwND1tCitDT05GSUdfVzFfU0xBVkVfRFMy OEUxNz1tCisjIGVuZCBvZiAxLXdpcmUgU2xhdmVzCisKK0NPTkZJR19QT1dFUl9SRVNFVD15CitD T05GSUdfUE9XRVJfUkVTRVRfQVRDMjYwWD1tCitDT05GSUdfUE9XRVJfUkVTRVRfR1BJTz15CitD T05GSUdfUE9XRVJfUkVTRVRfR1BJT19SRVNUQVJUPXkKK0NPTkZJR19QT1dFUl9SRVNFVF9MVEMy OTUyPXkKK0NPTkZJR19QT1dFUl9SRVNFVF9SRUdVTEFUT1I9eQorQ09ORklHX1BPV0VSX1JFU0VU X1JFU1RBUlQ9eQorQ09ORklHX1BPV0VSX1JFU0VUX1NZU0NPTj15CitDT05GSUdfUE9XRVJfUkVT RVRfU1lTQ09OX1BPV0VST0ZGPXkKK0NPTkZJR19SRUJPT1RfTU9ERT1tCitDT05GSUdfU1lTQ09O X1JFQk9PVF9NT0RFPW0KK0NPTkZJR19OVk1FTV9SRUJPT1RfTU9ERT1tCitDT05GSUdfUE9XRVJf U1VQUExZPXkKKyMgQ09ORklHX1BPV0VSX1NVUFBMWV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdf UE9XRVJfU1VQUExZX0hXTU9OPXkKKyMgQ09ORklHX0dFTkVSSUNfQURDX0JBVFRFUlkgaXMgbm90 IHNldAorQ09ORklHX0lQNVhYWF9QT1dFUj1tCisjIENPTkZJR19URVNUX1BPV0VSIGlzIG5vdCBz ZXQKK0NPTkZJR19DSEFSR0VSX0FEUDUwNjE9bQorQ09ORklHX0JBVFRFUllfQ1BDQVA9bQorQ09O RklHX0JBVFRFUllfQ1cyMDE1PW0KK0NPTkZJR19CQVRURVJZX0RTMjc2MD1tCitDT05GSUdfQkFU VEVSWV9EUzI3ODA9bQorQ09ORklHX0JBVFRFUllfRFMyNzgxPW0KK0NPTkZJR19CQVRURVJZX0RT Mjc4Mj1tCitDT05GSUdfQkFUVEVSWV9RQ09NX0JBVFRNR1I9bQorIyBDT05GSUdfQkFUVEVSWV9T QU1TVU5HX1NESSBpcyBub3Qgc2V0CitDT05GSUdfQkFUVEVSWV9TQlM9bQorQ09ORklHX0NIQVJH RVJfU0JTPW0KK0NPTkZJR19NQU5BR0VSX1NCUz1tCitDT05GSUdfQkFUVEVSWV9CUTI3WFhYPW0K K0NPTkZJR19CQVRURVJZX0JRMjdYWFhfSTJDPW0KK0NPTkZJR19CQVRURVJZX0JRMjdYWFhfSERR PW0KKyMgQ09ORklHX0JBVFRFUllfQlEyN1hYWF9EVF9VUERBVEVTX05WTSBpcyBub3Qgc2V0CitD T05GSUdfQ0hBUkdFUl9BWFAyMFg9bQorQ09ORklHX0JBVFRFUllfQVhQMjBYPW0KK0NPTkZJR19B WFAyMFhfUE9XRVI9bQorQ09ORklHX0JBVFRFUllfTUFYMTcwNDA9bQorQ09ORklHX0JBVFRFUllf TUFYMTcwNDI9bQorQ09ORklHX0JBVFRFUllfTUFYMTcyMVg9bQorQ09ORklHX0NIQVJHRVJfSVNQ MTcwND1tCitDT05GSUdfQ0hBUkdFUl9NQVg4OTAzPW0KK0NPTkZJR19DSEFSR0VSX0xQODcyNz1t CitDT05GSUdfQ0hBUkdFUl9HUElPPW0KKyMgQ09ORklHX0NIQVJHRVJfTUFOQUdFUiBpcyBub3Qg c2V0CitDT05GSUdfQ0hBUkdFUl9MVDM2NTE9bQorQ09ORklHX0NIQVJHRVJfTFRDNDE2Mkw9bQor Q09ORklHX0NIQVJHRVJfREVURUNUT1JfTUFYMTQ2NTY9bQorQ09ORklHX0NIQVJHRVJfTUFYNzc2 NTA9bQorQ09ORklHX0NIQVJHRVJfTUFYNzc5NzY9bQorQ09ORklHX0NIQVJHRVJfTVAyNjI5PW0K K0NPTkZJR19DSEFSR0VSX01UNjM3MD1tCisjIENPTkZJR19DSEFSR0VSX0JRMjQxNVggaXMgbm90 IHNldAorQ09ORklHX0NIQVJHRVJfQlEyNDE5MD1tCitDT05GSUdfQ0hBUkdFUl9CUTI0MjU3PW0K K0NPTkZJR19DSEFSR0VSX0JRMjQ3MzU9bQorQ09ORklHX0NIQVJHRVJfQlEyNTE1WD1tCitDT05G SUdfQ0hBUkdFUl9CUTI1ODkwPW0KK0NPTkZJR19DSEFSR0VSX0JRMjU5ODA9bQorQ09ORklHX0NI QVJHRVJfQlEyNTZYWD1tCitDT05GSUdfQ0hBUkdFUl9SSzgxNz1tCitDT05GSUdfQ0hBUkdFUl9T TUIzNDc9bQorIyBDT05GSUdfQkFUVEVSWV9HQVVHRV9MVEMyOTQxIGlzIG5vdCBzZXQKKyMgQ09O RklHX0JBVFRFUllfR09MREZJU0ggaXMgbm90IHNldAorQ09ORklHX0JBVFRFUllfUlQ1MDMzPW0K K0NPTkZJR19DSEFSR0VSX1JUOTQ1NT1tCitDT05GSUdfQ0hBUkdFUl9SVDk0Njc9bQorQ09ORklH X0NIQVJHRVJfUlQ5NDcxPW0KK0NPTkZJR19DSEFSR0VSX1VDUzEwMDI9bQorQ09ORklHX0NIQVJH RVJfQkQ5OTk1ND1tCitDT05GSUdfQkFUVEVSWV9VRzMxMDU9bQorQ09ORklHX0hXTU9OPXkKK0NP TkZJR19IV01PTl9WSUQ9bQorIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisK KyMKKyMgTmF0aXZlIGRyaXZlcnMKKyMKK0NPTkZJR19TRU5TT1JTX1NNUFJPPW0KKyMgQ09ORklH X1NFTlNPUlNfQUQ3MzE0IGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0FENzQxND1tCitDT05G SUdfU0VOU09SU19BRDc0MTg9bQorQ09ORklHX1NFTlNPUlNfQURNMTAyNT1tCitDT05GSUdfU0VO U09SU19BRE0xMDI2PW0KK0NPTkZJR19TRU5TT1JTX0FETTEwMjk9bQorQ09ORklHX1NFTlNPUlNf QURNMTAzMT1tCitDT05GSUdfU0VOU09SU19BRE0xMTc3PW0KK0NPTkZJR19TRU5TT1JTX0FETTky NDA9bQorQ09ORklHX1NFTlNPUlNfQURUN1gxMD1tCisjIENPTkZJR19TRU5TT1JTX0FEVDczMTAg aXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfQURUNzQxMD1tCitDT05GSUdfU0VOU09SU19BRFQ3 NDExPW0KK0NPTkZJR19TRU5TT1JTX0FEVDc0NjI9bQorQ09ORklHX1NFTlNPUlNfQURUNzQ3MD1t CitDT05GSUdfU0VOU09SU19BRFQ3NDc1PW0KK0NPTkZJR19TRU5TT1JTX0FIVDEwPW0KK0NPTkZJ R19TRU5TT1JTX0FRVUFDT01QVVRFUl9ENU5FWFQ9bQorQ09ORklHX1NFTlNPUlNfQVMzNzA9bQor Q09ORklHX1NFTlNPUlNfQVNDNzYyMT1tCitDT05GSUdfU0VOU09SU19BWElfRkFOX0NPTlRST0w9 bQorQ09ORklHX1NFTlNPUlNfQVRYUDE9bQorQ09ORklHX1NFTlNPUlNfQ09SU0FJUl9DUFJPPW0K K0NPTkZJR19TRU5TT1JTX0NPUlNBSVJfUFNVPW0KK0NPTkZJR19TRU5TT1JTX0RSSVZFVEVNUD1t CitDT05GSUdfU0VOU09SU19EUzYyMD1tCitDT05GSUdfU0VOU09SU19EUzE2MjE9bQorQ09ORklH X1NFTlNPUlNfSTVLX0FNQj1tCitDT05GSUdfU0VOU09SU19GNzE4MDVGPW0KK0NPTkZJR19TRU5T T1JTX0Y3MTg4MkZHPW0KK0NPTkZJR19TRU5TT1JTX0Y3NTM3NVM9bQorQ09ORklHX1NFTlNPUlNf R1NDPW0KK0NPTkZJR19TRU5TT1JTX0ZUU1RFVVRBVEVTPW0KK0NPTkZJR19TRU5TT1JTX0dMNTE4 U009bQorQ09ORklHX1NFTlNPUlNfR0w1MjBTTT1tCitDT05GSUdfU0VOU09SU19HNzYwQT1tCitD T05GSUdfU0VOU09SU19HNzYyPW0KK0NPTkZJR19TRU5TT1JTX0dQSU9fRkFOPW0KK0NPTkZJR19T RU5TT1JTX0hJSDYxMzA9bQorQ09ORklHX1NFTlNPUlNfSUJNQUVNPW0KK0NPTkZJR19TRU5TT1JT X0lCTVBFWD1tCisjIENPTkZJR19TRU5TT1JTX0lJT19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdf U0VOU09SU19JVDg3PW0KK0NPTkZJR19TRU5TT1JTX0pDNDI9bQorQ09ORklHX1NFTlNPUlNfUE9X UjEyMjA9bQorQ09ORklHX1NFTlNPUlNfTElORUFHRT1tCitDT05GSUdfU0VOU09SU19MT0NITkFH QVI9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk0NT1tCitDT05GSUdfU0VOU09SU19MVEMyOTQ3PW0K K0NPTkZJR19TRU5TT1JTX0xUQzI5NDdfSTJDPW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5NDdfU1BJ PW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5OTA9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk5Mj1tCitD T05GSUdfU0VOU09SU19MVEM0MTUxPW0KK0NPTkZJR19TRU5TT1JTX0xUQzQyMTU9bQorQ09ORklH X1NFTlNPUlNfTFRDNDIyMj1tCitDT05GSUdfU0VOU09SU19MVEM0MjQ1PW0KK0NPTkZJR19TRU5T T1JTX0xUQzQyNjA9bQorQ09ORklHX1NFTlNPUlNfTFRDNDI2MT1tCisjIENPTkZJR19TRU5TT1JT X01BWDExMTEgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTUFYMTI3PW0KK0NPTkZJR19TRU5T T1JTX01BWDE2MDY1PW0KK0NPTkZJR19TRU5TT1JTX01BWDE2MTk9bQorQ09ORklHX1NFTlNPUlNf TUFYMTY2OD1tCisjIENPTkZJR19TRU5TT1JTX01BWDE5NyBpcyBub3Qgc2V0CitDT05GSUdfU0VO U09SU19NQVgzMTcyMj1tCitDT05GSUdfU0VOU09SU19NQVgzMTczMD1tCitDT05GSUdfU0VOU09S U19NQVgzMTc2MD1tCitDT05GSUdfU0VOU09SU19NQVg2NjIwPW0KK0NPTkZJR19TRU5TT1JTX01B WDY2MjE9bQorQ09ORklHX1NFTlNPUlNfTUFYNjYzOT1tCitDT05GSUdfU0VOU09SU19NQVg2NjUw PW0KK0NPTkZJR19TRU5TT1JTX01BWDY2OTc9bQorQ09ORklHX1NFTlNPUlNfTUFYMzE3OTA9bQor Q09ORklHX1NFTlNPUlNfTUMzNFZSNTAwPW0KK0NPTkZJR19TRU5TT1JTX01DUDMwMjE9bQorQ09O RklHX1NFTlNPUlNfVEM2NTQ9bQorQ09ORklHX1NFTlNPUlNfVFBTMjM4NjE9bQorIyBDT05GSUdf U0VOU09SU19NRU5GMjFCTUNfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTVI3NTIw Mz1tCisjIENPTkZJR19TRU5TT1JTX0FEQ1hYIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0xN NjM9bQorIyBDT05GSUdfU0VOU09SU19MTTcwIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0xN NzM9bQorQ09ORklHX1NFTlNPUlNfTE03NT1tCitDT05GSUdfU0VOU09SU19MTTc3PW0KK0NPTkZJ R19TRU5TT1JTX0xNNzg9bQorQ09ORklHX1NFTlNPUlNfTE04MD1tCitDT05GSUdfU0VOU09SU19M TTgzPW0KK0NPTkZJR19TRU5TT1JTX0xNODU9bQorQ09ORklHX1NFTlNPUlNfTE04Nz1tCitDT05G SUdfU0VOU09SU19MTTkwPW0KK0NPTkZJR19TRU5TT1JTX0xNOTI9bQorQ09ORklHX1NFTlNPUlNf TE05Mz1tCitDT05GSUdfU0VOU09SU19MTTk1MjM0PW0KK0NPTkZJR19TRU5TT1JTX0xNOTUyNDE9 bQorQ09ORklHX1NFTlNPUlNfTE05NTI0NT1tCitDT05GSUdfU0VOU09SU19QQzg3MzYwPW0KK0NP TkZJR19TRU5TT1JTX1BDODc0Mjc9bQorIyBDT05GSUdfU0VOU09SU19OVENfVEhFUk1JU1RPUiBp cyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19OQ1Q2NjgzPW0KKyMgQ09ORklHX1NFTlNPUlNfTkNU Njc3NV9JMkMgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTkNUNzgwMj1tCitDT05GSUdfU0VO U09SU19OQ1Q3OTA0PW0KK0NPTkZJR19TRU5TT1JTX05QQ003WFg9bQorQ09ORklHX1NFTlNPUlNf TlpYVF9LUkFLRU4yPW0KK0NPTkZJR19TRU5TT1JTX05aWFRfU01BUlQyPW0KK0NPTkZJR19TRU5T T1JTX09DQ19QOF9JMkM9bQorQ09ORklHX1NFTlNPUlNfT0NDPW0KK0NPTkZJR19TRU5TT1JTX1BD Rjg1OTE9bQorQ09ORklHX1NFTlNPUlNfUEVDSV9DUFVURU1QPW0KK0NPTkZJR19TRU5TT1JTX1BF Q0lfRElNTVRFTVA9bQorQ09ORklHX1NFTlNPUlNfUEVDST1tCitDT05GSUdfUE1CVVM9bQorQ09O RklHX1NFTlNPUlNfUE1CVVM9bQorQ09ORklHX1NFTlNPUlNfQURNMTI2Nj1tCitDT05GSUdfU0VO U09SU19BRE0xMjc1PW0KK0NPTkZJR19TRU5TT1JTX0JFTF9QRkU9bQorQ09ORklHX1NFTlNPUlNf QlBBX1JTNjAwPW0KK0NPTkZJR19TRU5TT1JTX0RFTFRBX0FIRTUwRENfRkFOPW0KK0NPTkZJR19T RU5TT1JTX0ZTUF8zWT1tCisjIENPTkZJR19TRU5TT1JTX0lCTV9DRkZQUyBpcyBub3Qgc2V0CitD T05GSUdfU0VOU09SU19EUFM5MjBBQj1tCitDT05GSUdfU0VOU09SU19JTlNQVVJfSVBTUFM9bQor Q09ORklHX1NFTlNPUlNfSVIzNTIyMT1tCitDT05GSUdfU0VOU09SU19JUjM2MDIxPW0KK0NPTkZJ R19TRU5TT1JTX0lSMzgwNjQ9bQorIyBDT05GSUdfU0VOU09SU19JUjM4MDY0X1JFR1VMQVRPUiBp cyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19JUlBTNTQwMT1tCitDT05GSUdfU0VOU09SU19JU0w2 ODEzNz1tCitDT05GSUdfU0VOU09SU19MTTI1MDY2PW0KK0NPTkZJR19TRU5TT1JTX0xNMjUwNjZf UkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX0xUNzE4MlM9bQorQ09ORklHX1NFTlNPUlNfTFRD Mjk3OD1tCisjIENPTkZJR19TRU5TT1JTX0xUQzI5NzhfUkVHVUxBVE9SIGlzIG5vdCBzZXQKK0NP TkZJR19TRU5TT1JTX0xUQzM4MTU9bQorQ09ORklHX1NFTlNPUlNfTUFYMTUzMDE9bQorQ09ORklH X1NFTlNPUlNfTUFYMTYwNjQ9bQorQ09ORklHX1NFTlNPUlNfTUFYMTY2MDE9bQorQ09ORklHX1NF TlNPUlNfTUFYMjA3MzA9bQorQ09ORklHX1NFTlNPUlNfTUFYMjA3NTE9bQorQ09ORklHX1NFTlNP UlNfTUFYMzE3ODU9bQorQ09ORklHX1NFTlNPUlNfTUFYMzQ0NDA9bQorQ09ORklHX1NFTlNPUlNf TUFYODY4OD1tCitDT05GSUdfU0VOU09SU19NUDI4ODg9bQorQ09ORklHX1NFTlNPUlNfTVAyOTc1 PW0KK0NPTkZJR19TRU5TT1JTX01QNTAyMz1tCitDT05GSUdfU0VOU09SU19NUFE3OTMyX1JFR1VM QVRPUj15CitDT05GSUdfU0VOU09SU19NUFE3OTMyPW0KK0NPTkZJR19TRU5TT1JTX1BJTTQzMjg9 bQorQ09ORklHX1NFTlNPUlNfUExJMTIwOUJDPW0KK0NPTkZJR19TRU5TT1JTX1BMSTEyMDlCQ19S RUdVTEFUT1I9eQorQ09ORklHX1NFTlNPUlNfUE02NzY0VFI9bQorQ09ORklHX1NFTlNPUlNfUFhF MTYxMD1tCitDT05GSUdfU0VOU09SU19RNTRTSjEwOEEyPW0KK0NPTkZJR19TRU5TT1JTX1NUUERE QzYwPW0KK0NPTkZJR19TRU5TT1JTX1REQTM4NjQwPW0KK0NPTkZJR19TRU5TT1JTX1REQTM4NjQw X1JFR1VMQVRPUj15CitDT05GSUdfU0VOU09SU19UUFM0MDQyMj1tCitDT05GSUdfU0VOU09SU19U UFM1MzY3OT1tCitDT05GSUdfU0VOU09SU19UUFM1NDZEMjQ9bQorQ09ORklHX1NFTlNPUlNfVUNE OTAwMD1tCitDT05GSUdfU0VOU09SU19VQ0Q5MjAwPW0KKyMgQ09ORklHX1NFTlNPUlNfWERQRTE1 MiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19YRFBFMTIyPW0KK0NPTkZJR19TRU5TT1JTX1hE UEUxMjJfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX1pMNjEwMD1tCitDT05GSUdfU0VOU09S U19QV01fRkFOPW0KK0NPTkZJR19TRU5TT1JTX1NCVFNJPW0KK0NPTkZJR19TRU5TT1JTX1NCUk1J PW0KK0NPTkZJR19TRU5TT1JTX1NIVDE1PW0KK0NPTkZJR19TRU5TT1JTX1NIVDIxPW0KK0NPTkZJ R19TRU5TT1JTX1NIVDN4PW0KK0NPTkZJR19TRU5TT1JTX1NIVDR4PW0KK0NPTkZJR19TRU5TT1JT X1NIVEMxPW0KK0NPTkZJR19TRU5TT1JTX1NJUzU1OTU9bQorQ09ORklHX1NFTlNPUlNfU1k3NjM2 QT1tCitDT05GSUdfU0VOU09SU19ETUUxNzM3PW0KK0NPTkZJR19TRU5TT1JTX0VNQzE0MDM9bQor Q09ORklHX1NFTlNPUlNfRU1DMjEwMz1tCitDT05GSUdfU0VOU09SU19FTUMyMzA1PW0KK0NPTkZJ R19TRU5TT1JTX0VNQzZXMjAxPW0KK0NPTkZJR19TRU5TT1JTX1NNU0M0N00xPW0KK0NPTkZJR19T RU5TT1JTX1NNU0M0N00xOTI9bQorQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5Nz1tCitDT05GSUdf U0VOU09SU19TQ0g1NlhYX0NPTU1PTj1tCitDT05GSUdfU0VOU09SU19TQ0g1NjI3PW0KK0NPTkZJ R19TRU5TT1JTX1NDSDU2MzY9bQorQ09ORklHX1NFTlNPUlNfU1RUUzc1MT1tCitDT05GSUdfU0VO U09SU19TRkNURU1QPW0KK0NPTkZJR19TRU5TT1JTX1NNTTY2NT1tCitDT05GSUdfU0VOU09SU19B REMxMjhEODE4PW0KK0NPTkZJR19TRU5TT1JTX0FEUzc4Mjg9bQorIyBDT05GSUdfU0VOU09SU19B RFM3ODcxIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0FNQzY4MjE9bQorQ09ORklHX1NFTlNP UlNfSU5BMjA5PW0KK0NPTkZJR19TRU5TT1JTX0lOQTJYWD1tCitDT05GSUdfU0VOU09SU19JTkEy Mzg9bQorQ09ORklHX1NFTlNPUlNfSU5BMzIyMT1tCitDT05GSUdfU0VOU09SU19UQzc0PW0KK0NP TkZJR19TRU5TT1JTX1RITUM1MD1tCitDT05GSUdfU0VOU09SU19UTVAxMDI9bQorQ09ORklHX1NF TlNPUlNfVE1QMTAzPW0KK0NPTkZJR19TRU5TT1JTX1RNUDEwOD1tCitDT05GSUdfU0VOU09SU19U TVA0MDE9bQorQ09ORklHX1NFTlNPUlNfVE1QNDIxPW0KK0NPTkZJR19TRU5TT1JTX1RNUDQ2ND1t CitDT05GSUdfU0VOU09SU19UTVA1MTM9bQorQ09ORklHX1NFTlNPUlNfVklBNjg2QT1tCitDT05G SUdfU0VOU09SU19WVDEyMTE9bQorQ09ORklHX1NFTlNPUlNfVlQ4MjMxPW0KK0NPTkZJR19TRU5T T1JTX1c4Mzc3M0c9bQorQ09ORklHX1NFTlNPUlNfVzgzNzgxRD1tCitDT05GSUdfU0VOU09SU19X ODM3OTFEPW0KK0NPTkZJR19TRU5TT1JTX1c4Mzc5MkQ9bQorQ09ORklHX1NFTlNPUlNfVzgzNzkz PW0KK0NPTkZJR19TRU5TT1JTX1c4Mzc5NT1tCisjIENPTkZJR19TRU5TT1JTX1c4Mzc5NV9GQU5D VFJMIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX1c4M0w3ODVUUz1tCitDT05GSUdfU0VOU09S U19XODNMNzg2Tkc9bQorQ09ORklHX1NFTlNPUlNfVzgzNjI3SEY9bQorQ09ORklHX1NFTlNPUlNf VzgzNjI3RUhGPW0KK0NPTkZJR19TRU5TT1JTX0lOVEVMX00xMF9CTUNfSFdNT049bQorQ09ORklH X1RIRVJNQUw9eQorQ09ORklHX1RIRVJNQUxfTkVUTElOSz15CitDT05GSUdfVEhFUk1BTF9TVEFU SVNUSUNTPXkKK0NPTkZJR19USEVSTUFMX0VNRVJHRU5DWV9QT1dFUk9GRl9ERUxBWV9NUz0wCitD T05GSUdfVEhFUk1BTF9IV01PTj15CitDT05GSUdfVEhFUk1BTF9PRj15CisjIENPTkZJR19USEVS TUFMX1dSSVRBQkxFX1RSSVBTIGlzIG5vdCBzZXQKK0NPTkZJR19USEVSTUFMX0RFRkFVTFRfR09W X1NURVBfV0lTRT15CisjIENPTkZJR19USEVSTUFMX0RFRkFVTFRfR09WX0ZBSVJfU0hBUkUgaXMg bm90IHNldAorIyBDT05GSUdfVEhFUk1BTF9ERUZBVUxUX0dPVl9VU0VSX1NQQUNFIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfUE9XRVJfQUxMT0NBVE9SIGlzIG5vdCBz ZXQKK0NPTkZJR19USEVSTUFMX0dPVl9GQUlSX1NIQVJFPXkKK0NPTkZJR19USEVSTUFMX0dPVl9T VEVQX1dJU0U9eQorQ09ORklHX1RIRVJNQUxfR09WX0JBTkdfQkFORz15CitDT05GSUdfVEhFUk1B TF9HT1ZfVVNFUl9TUEFDRT15CitDT05GSUdfVEhFUk1BTF9HT1ZfUE9XRVJfQUxMT0NBVE9SPXkK K0NPTkZJR19DUFVfVEhFUk1BTD15CitDT05GSUdfQ1BVX0ZSRVFfVEhFUk1BTD15CisjIENPTkZJ R19DUFVfSURMRV9USEVSTUFMIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZGUkVRX1RIRVJNQUw9eQor IyBDT05GSUdfVEhFUk1BTF9FTVVMQVRJT04gaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUxfTU1J Tz1tCitDT05GSUdfTUFYNzc2MjBfVEhFUk1BTD1tCitDT05GSUdfU1VOOElfVEhFUk1BTD1tCitD T05GSUdfUkNBUl9USEVSTUFMPW0KK0NPTkZJR19SQ0FSX0dFTjNfVEhFUk1BTD1tCitDT05GSUdf UlpHMkxfVEhFUk1BTD1tCitDT05GSUdfR0VORVJJQ19BRENfVEhFUk1BTD1tCitDT05GSUdfV0FU Q0hET0c9eQorQ09ORklHX1dBVENIRE9HX0NPUkU9eQorIyBDT05GSUdfV0FUQ0hET0dfTk9XQVlP VVQgaXMgbm90IHNldAorQ09ORklHX1dBVENIRE9HX0hBTkRMRV9CT09UX0VOQUJMRUQ9eQorQ09O RklHX1dBVENIRE9HX09QRU5fVElNRU9VVD0wCisjIENPTkZJR19XQVRDSERPR19TWVNGUyBpcyBu b3Qgc2V0CisjIENPTkZJR19XQVRDSERPR19IUlRJTUVSX1BSRVRJTUVPVVQgaXMgbm90IHNldAor CisjCisjIFdhdGNoZG9nIFByZXRpbWVvdXQgR292ZXJub3JzCisjCitDT05GSUdfV0FUQ0hET0df UFJFVElNRU9VVF9HT1Y9eQorQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfR09WX1NFTD1tCitD T05GSUdfV0FUQ0hET0dfUFJFVElNRU9VVF9HT1ZfTk9PUD15CitDT05GSUdfV0FUQ0hET0dfUFJF VElNRU9VVF9HT1ZfUEFOSUM9bQorQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfREVGQVVMVF9H T1ZfTk9PUD15CisjIENPTkZJR19XQVRDSERPR19QUkVUSU1FT1VUX0RFRkFVTFRfR09WX1BBTklD IGlzIG5vdCBzZXQKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworQ09ORklHX1NP RlRfV0FUQ0hET0c9bQorQ09ORklHX1NPRlRfV0FUQ0hET0dfUFJFVElNRU9VVD15CitDT05GSUdf QkQ5NTdYTVVGX1dBVENIRE9HPW0KKyMgQ09ORklHX0dQSU9fV0FUQ0hET0cgaXMgbm90IHNldAor IyBDT05GSUdfTUVORjIxQk1DX1dBVENIRE9HIGlzIG5vdCBzZXQKK0NPTkZJR19YSUxJTlhfV0FU Q0hET0c9bQorQ09ORklHX1pJSVJBVkVfV0FUQ0hET0c9bQorQ09ORklHX0NBREVOQ0VfV0FUQ0hE T0c9bQorQ09ORklHX0RXX1dBVENIRE9HPW0KK0NPTkZJR19TVU5YSV9XQVRDSERPRz1tCisjIENP TkZJR19NQVg2M1hYX1dBVENIRE9HIGlzIG5vdCBzZXQKK0NPTkZJR19NQVg3NzYyMF9XQVRDSERP Rz1tCitDT05GSUdfUkVORVNBU19XRFQ9bQorQ09ORklHX1JFTkVTQVNfUlpBV0RUPW0KK0NPTkZJ R19SRU5FU0FTX1JaTjFXRFQ9bQorQ09ORklHX1JFTkVTQVNfUlpHMkxXRFQ9bQorQ09ORklHX1NU UE1JQzFfV0FUQ0hET0c9bQorQ09ORklHX0FMSU03MTAxX1dEVD1tCitDT05GSUdfSTYzMDBFU0Jf V0RUPW0KK0NPTkZJR19LRU1QTERfV0RUPW0KK0NPTkZJR19NRU5fQTIxX1dEVD1tCitDT05GSUdf U1RBUkZJVkVfV0FUQ0hET0c9bQorCisjCisjIFBDSS1iYXNlZCBXYXRjaGRvZyBDYXJkcworIwor Q09ORklHX1BDSVBDV0FUQ0hET0c9bQorQ09ORklHX1dEVFBDST1tCisKKyMKKyMgVVNCLWJhc2Vk IFdhdGNoZG9nIENhcmRzCisjCitDT05GSUdfVVNCUENXQVRDSERPRz1tCitDT05GSUdfU1NCX1BP U1NJQkxFPXkKK0NPTkZJR19TU0I9bQorQ09ORklHX1NTQl9TUFJPTT15CitDT05GSUdfU1NCX0JM T0NLSU89eQorQ09ORklHX1NTQl9QQ0lIT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfUENJSE9T VD15CitDT05GSUdfU1NCX0I0M19QQ0lfQlJJREdFPXkKK0NPTkZJR19TU0JfUENNQ0lBSE9TVF9Q T1NTSUJMRT15CitDT05GSUdfU1NCX1BDTUNJQUhPU1Q9eQorQ09ORklHX1NTQl9TRElPSE9TVF9Q T1NTSUJMRT15CitDT05GSUdfU1NCX1NESU9IT1NUPXkKK0NPTkZJR19TU0JfRFJJVkVSX1BDSUNP UkVfUE9TU0lCTEU9eQorQ09ORklHX1NTQl9EUklWRVJfUENJQ09SRT15CitDT05GSUdfU1NCX0RS SVZFUl9HUElPPXkKK0NPTkZJR19CQ01BX1BPU1NJQkxFPXkKK0NPTkZJR19CQ01BPW0KK0NPTkZJ R19CQ01BX0JMT0NLSU89eQorQ09ORklHX0JDTUFfSE9TVF9QQ0lfUE9TU0lCTEU9eQorQ09ORklH X0JDTUFfSE9TVF9QQ0k9eQorQ09ORklHX0JDTUFfSE9TVF9TT0M9eQorQ09ORklHX0JDTUFfRFJJ VkVSX1BDST15CitDT05GSUdfQkNNQV9TRkxBU0g9eQorQ09ORklHX0JDTUFfRFJJVkVSX0dNQUNf Q01OPXkKK0NPTkZJR19CQ01BX0RSSVZFUl9HUElPPXkKKyMgQ09ORklHX0JDTUFfREVCVUcgaXMg bm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19N RkRfQ09SRT15CisjIENPTkZJR19NRkRfQUNUODk0NUEgaXMgbm90IHNldAorQ09ORklHX01GRF9T VU40SV9HUEFEQz1tCisjIENPTkZJR19NRkRfQVMzNzExIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRf U01QUk89bQorIyBDT05GSUdfTUZEX0FTMzcyMiBpcyBub3Qgc2V0CisjIENPTkZJR19QTUlDX0FE UDU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FBVDI4NzBfQ09SRSBpcyBub3Qgc2V0Cisj IENPTkZJR19NRkRfQVRNRUxfRkxFWENPTSBpcyBub3Qgc2V0CitDT05GSUdfTUZEX0FUTUVMX0hM Q0RDPW0KKyMgQ09ORklHX01GRF9CQ001OTBYWCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX0JEOTU3 MU1XVj1tCitDT05GSUdfTUZEX0FDMTAwPW0KK0NPTkZJR19NRkRfQVhQMjBYPW0KK0NPTkZJR19N RkRfQVhQMjBYX0kyQz1tCitDT05GSUdfTUZEX0FYUDIwWF9SU0I9bQorQ09ORklHX01GRF9NQURF UkE9bQorQ09ORklHX01GRF9NQURFUkFfSTJDPW0KK0NPTkZJR19NRkRfTUFERVJBX1NQST1tCitD T05GSUdfTUZEX0NTNDdMMTU9eQorQ09ORklHX01GRF9DUzQ3TDM1PXkKK0NPTkZJR19NRkRfQ1M0 N0w4NT15CitDT05GSUdfTUZEX0NTNDdMOTA9eQorQ09ORklHX01GRF9DUzQ3TDkyPXkKKyMgQ09O RklHX1BNSUNfREE5MDNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9EQTkwNTJfU1BJIGlzIG5v dCBzZXQKKyMgQ09ORklHX01GRF9EQTkwNTJfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9E QTkwNTUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0RBOTA2MiBpcyBub3Qgc2V0CisjIENPTkZJ R19NRkRfREE5MDYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9EQTkxNTAgaXMgbm90IHNldAor Q09ORklHX01GRF9ETE4yPW0KK0NPTkZJR19NRkRfR0FURVdPUktTX0dTQz1tCisjIENPTkZJR19N RkRfTUMxM1hYWF9TUEkgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01DMTNYWFhfSTJDIGlzIG5v dCBzZXQKK0NPTkZJR19NRkRfTVAyNjI5PW0KK0NPTkZJR19NRkRfSEk2NDIxX1BNSUM9bQorQ09O RklHX01GRF9ISTY0MjFfU1BNST1tCitDT05GSUdfTFBDX0lDSD1tCitDT05GSUdfTFBDX1NDSD1t CitDT05GSUdfTUZEX0lRUzYyWD1tCisjIENPTkZJR19NRkRfSkFOWl9DTU9ESU8gaXMgbm90IHNl dAorQ09ORklHX01GRF9LRU1QTEQ9bQorIyBDT05GSUdfTUZEXzg4UE04MDAgaXMgbm90IHNldAor IyBDT05GSUdfTUZEXzg4UE04MDUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEXzg4UE04NjBYIGlz IG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVgxNDU3NyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX01B WDc3NjIwPXkKK0NPTkZJR19NRkRfTUFYNzc2NTA9bQorIyBDT05GSUdfTUZEX01BWDc3Njg2IGlz IG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg3NzY5MyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRf TUFYNzc3MTQgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01BWDc3ODQzIGlzIG5vdCBzZXQKKyMg Q09ORklHX01GRF9NQVg4OTA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTI1IGlzIG5v dCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4 OTk4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NVDYzNjAgaXMgbm90IHNldAorQ09ORklHX01G RF9NVDYzNzA9bQorIyBDT05GSUdfTUZEX01UNjM5NyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX01F TkYyMUJNQz1tCitDT05GSUdfTUZEX09DRUxPVD1tCisjIENPTkZJR19FWlhfUENBUCBpcyBub3Qg c2V0CitDT05GSUdfTUZEX0NQQ0FQPW0KK0NPTkZJR19NRkRfVklQRVJCT0FSRD1tCitDT05GSUdf TUZEX05UWEVDPW0KKyMgQ09ORklHX01GRF9SRVRVIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9Q Q0Y1MDYzMyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1NZNzYzNkE9bQorIyBDT05GSUdfTUZEX1JE QzMyMVggaXMgbm90IHNldAorQ09ORklHX01GRF9SVDQ4MzE9bQorIyBDT05GSUdfTUZEX1JUNTAz MyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1JUNTEyMD1tCisjIENPTkZJR19NRkRfUkM1VDU4MyBp cyBub3Qgc2V0CitDT05GSUdfTUZEX1JLODA4PW0KKyMgQ09ORklHX01GRF9STjVUNjE4IGlzIG5v dCBzZXQKKyMgQ09ORklHX01GRF9TRUNfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfU0k0 NzZYX0NPUkUgaXMgbm90IHNldAorQ09ORklHX01GRF9TSU1QTEVfTUZEX0kyQz1tCisjIENPTkZJ R19NRkRfU001MDEgaXMgbm90IHNldAorQ09ORklHX01GRF9TS1k4MTQ1Mj1tCisjIENPTkZJR19N RkRfU1RNUEUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1NVTjZJX1BSQ00gaXMgbm90IHNldAor Q09ORklHX01GRF9TWVNDT049eQorQ09ORklHX01GRF9USV9BTTMzNVhfVFNDQURDPW0KK0NPTkZJ R19NRkRfTFAzOTQzPW0KKyMgQ09ORklHX01GRF9MUDg3ODggaXMgbm90IHNldAorQ09ORklHX01G RF9USV9MTVU9bQorIyBDT05GSUdfTUZEX1BBTE1BUyBpcyBub3Qgc2V0CisjIENPTkZJR19UUFM2 MTA1WCBpcyBub3Qgc2V0CitDT05GSUdfVFBTNjUwMTA9bQorQ09ORklHX1RQUzY1MDdYPW0KKyMg Q09ORklHX01GRF9UUFM2NTA4NiBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfVFBTNjUwOTAgaXMg bm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1MjE3IGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfVElf TFA4NzNYPW0KK0NPTkZJR19NRkRfVElfTFA4NzU2NT1tCisjIENPTkZJR19NRkRfVFBTNjUyMTgg aXMgbm90IHNldAorQ09ORklHX01GRF9UUFM2NTIxOT1tCisjIENPTkZJR19NRkRfVFBTNjU4Nlgg aXMgbm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1OTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01G RF9UUFM2NTkxMl9JMkMgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1OTEyX1NQSSBpcyBu b3Qgc2V0CisjIENPTkZJR19UV0w0MDMwX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVFdMNjA0 MF9DT1JFIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfV0wxMjczX0NPUkU9bQorQ09ORklHX01GRF9M TTM1MzM9bQorIyBDT05GSUdfTUZEX1RDMzU4OVggaXMgbm90IHNldAorQ09ORklHX01GRF9UUU1Y ODY9bQorQ09ORklHX01GRF9WWDg1NT1tCitDT05GSUdfTUZEX0xPQ0hOQUdBUj15CisjIENPTkZJ R19NRkRfQVJJWk9OQV9JMkMgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FSSVpPTkFfU1BJIGlz IG5vdCBzZXQKKyMgQ09ORklHX01GRF9XTTg0MDAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1dN ODMxWF9JMkMgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1dNODMxWF9TUEkgaXMgbm90IHNldAor IyBDT05GSUdfTUZEX1dNODM1MF9JMkMgaXMgbm90IHNldAorQ09ORklHX01GRF9XTTg5OTQ9bQor Q09ORklHX01GRF9ST0hNX0JENzE4WFg9bQorQ09ORklHX01GRF9ST0hNX0JENzE4Mjg9bQorQ09O RklHX01GRF9ST0hNX0JEOTU3WE1VRj1tCitDT05GSUdfTUZEX1NUUE1JQzE9bQorQ09ORklHX01G RF9TVE1GWD1tCitDT05GSUdfTUZEX0FUQzI2MFg9bQorQ09ORklHX01GRF9BVEMyNjBYX0kyQz1t CitDT05GSUdfTUZEX1FDT01fUE04MDA4PW0KKyMgQ09ORklHX1JBVkVfU1BfQ09SRSBpcyBub3Qg c2V0CitDT05GSUdfTUZEX0lOVEVMX00xMF9CTUNfQ09SRT1tCitDT05GSUdfTUZEX0lOVEVMX00x MF9CTUNfU1BJPW0KK0NPTkZJR19NRkRfSU5URUxfTTEwX0JNQ19QTUNJPW0KK0NPTkZJR19NRkRf UlNNVV9JMkM9bQorQ09ORklHX01GRF9SU01VX1NQST1tCisjIGVuZCBvZiBNdWx0aWZ1bmN0aW9u IGRldmljZSBkcml2ZXJzCisKK0NPTkZJR19SRUdVTEFUT1I9eQorIyBDT05GSUdfUkVHVUxBVE9S X0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfRklYRURfVk9MVEFHRT1tCisjIENP TkZJR19SRUdVTEFUT1JfVklSVFVBTF9DT05TVU1FUiBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdV TEFUT1JfVVNFUlNQQUNFX0NPTlNVTUVSIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfODhQ Rzg2WD1tCisjIENPTkZJR19SRUdVTEFUT1JfQUNUODg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19S RUdVTEFUT1JfQUQ1Mzk4IGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfQVJJWk9OQV9MRE8x PW0KK0NPTkZJR19SRUdVTEFUT1JfQVJJWk9OQV9NSUNTVVBQPW0KK0NPTkZJR19SRUdVTEFUT1Jf QVRDMjYwWD1tCitDT05GSUdfUkVHVUxBVE9SX0FYUDIwWD1tCitDT05GSUdfUkVHVUxBVE9SX0JE NzE4MTU9bQorQ09ORklHX1JFR1VMQVRPUl9CRDcxODI4PW0KK0NPTkZJR19SRUdVTEFUT1JfQkQ3 MThYWD1tCitDT05GSUdfUkVHVUxBVE9SX0JEOTU3MU1XVj1tCitDT05GSUdfUkVHVUxBVE9SX0JE OTU3WE1VRj1tCitDT05GSUdfUkVHVUxBVE9SX0NQQ0FQPW0KK0NPTkZJR19SRUdVTEFUT1JfREE5 MTIxPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9EQTkyMTAgaXMgbm90IHNldAorIyBDT05GSUdfUkVH VUxBVE9SX0RBOTIxMSBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0ZBTjUzNTU1PW0KK0NP TkZJR19SRUdVTEFUT1JfRkFONTM4ODA9bQorQ09ORklHX1JFR1VMQVRPUl9HUElPPW0KK0NPTkZJ R19SRUdVTEFUT1JfSEk2NDIxPW0KK0NPTkZJR19SRUdVTEFUT1JfSEk2NDIxVjUzMD1tCitDT05G SUdfUkVHVUxBVE9SX0hJNjQyMVY2MDA9bQorQ09ORklHX1JFR1VMQVRPUl9JU0w5MzA1PW0KKyMg Q09ORklHX1JFR1VMQVRPUl9JU0w2MjcxQSBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0xN MzYzWD1tCitDT05GSUdfUkVHVUxBVE9SX0xPQ0hOQUdBUj1tCisjIENPTkZJR19SRUdVTEFUT1Jf TFAzOTcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9MUDM5NzIgaXMgbm90IHNldAor IyBDT05GSUdfUkVHVUxBVE9SX0xQODcyWCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0xQ ODczWD1tCisjIENPTkZJR19SRUdVTEFUT1JfTFA4NzU1IGlzIG5vdCBzZXQKK0NPTkZJR19SRUdV TEFUT1JfTFA4NzU2NT1tCitDT05GSUdfUkVHVUxBVE9SX0xUQzM1ODk9bQorQ09ORklHX1JFR1VM QVRPUl9MVEMzNjc2PW0KKyMgQ09ORklHX1JFR1VMQVRPUl9NQVgxNTg2IGlzIG5vdCBzZXQKK0NP TkZJR19SRUdVTEFUT1JfTUFYNzc2MjA9bQorQ09ORklHX1JFR1VMQVRPUl9NQVg3NzY1MD1tCisj IENPTkZJR19SRUdVTEFUT1JfTUFYODY0OSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1Jf TUFYODY2MCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX01BWDg4OTM9bQorIyBDT05GSUdf UkVHVUxBVE9SX01BWDg5NTIgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX01BWDg5NzMg aXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX01BWDIwMDg2IGlzIG5vdCBzZXQKK0NPTkZJ R19SRUdVTEFUT1JfTUFYMjA0MTE9bQorIyBDT05GSUdfUkVHVUxBVE9SX01BWDc3ODI2IGlzIG5v dCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfTUNQMTY1MDI9bQorQ09ORklHX1JFR1VMQVRPUl9NUDU0 MTY9bQorQ09ORklHX1JFR1VMQVRPUl9NUDg4NTk9bQorQ09ORklHX1JFR1VMQVRPUl9NUDg4Nlg9 bQorQ09ORklHX1JFR1VMQVRPUl9NUFE3OTIwPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9NVDYzMTEg aXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9NVDYzMTU9bQorQ09ORklHX1JFR1VMQVRPUl9N VDYzNzA9bQorQ09ORklHX1JFR1VMQVRPUl9QQ0E5NDUwPW0KK0NPTkZJR19SRUdVTEFUT1JfUEY4 WDAwPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9QRlVaRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19S RUdVTEFUT1JfUFY4ODA2MCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfUFY4ODA4MCBp cyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfUFY4ODA5MCBpcyBub3Qgc2V0CitDT05GSUdf UkVHVUxBVE9SX1BXTT1tCitDT05GSUdfUkVHVUxBVE9SX1FDT01fU1BNST1tCitDT05GSUdfUkVH VUxBVE9SX1FDT01fVVNCX1ZCVVM9bQorQ09ORklHX1JFR1VMQVRPUl9SQVNQQkVSUllQSV9UT1VD SFNDUkVFTl9BVFRJTlk9bQorQ09ORklHX1JFR1VMQVRPUl9SSzgwOD1tCitDT05GSUdfUkVHVUxB VE9SX1JPSE09bQorQ09ORklHX1JFR1VMQVRPUl9SVDQ4MDE9bQorQ09ORklHX1JFR1VMQVRPUl9S VDQ4MzE9bQorQ09ORklHX1JFR1VMQVRPUl9SVDUxMjA9bQorQ09ORklHX1JFR1VMQVRPUl9SVDUx OTBBPW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ1NzU5PW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ2MTYw PW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ2MTkwPW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ2MjQ1PW0K K0NPTkZJR19SRUdVTEFUT1JfUlRRMjEzND1tCitDT05GSUdfUkVHVUxBVE9SX1JUTVYyMD1tCitD T05GSUdfUkVHVUxBVE9SX1JUUTY3NTI9bQorQ09ORklHX1JFR1VMQVRPUl9TS1k4MTQ1Mj1tCitD T05GSUdfUkVHVUxBVE9SX1NMRzUxMDAwPW0KK0NPTkZJR19SRUdVTEFUT1JfU1RQTUlDMT1tCitD T05GSUdfUkVHVUxBVE9SX1NZNzYzNkE9bQorQ09ORklHX1JFR1VMQVRPUl9TWTgxMDZBPW0KK0NP TkZJR19SRUdVTEFUT1JfU1k4ODI0WD1tCitDT05GSUdfUkVHVUxBVE9SX1NZODgyN049bQorIyBD T05GSUdfUkVHVUxBVE9SX1RQUzUxNjMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9U UFM2MjM2MCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfVFBTNjI4NlggaXMgbm90IHNl dAorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDIzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VM QVRPUl9UUFM2NTA3WCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX1RQUzY1MTMyPW0KK0NP TkZJR19SRUdVTEFUT1JfVFBTNjUyMTk9bQorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MjRYIGlz IG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfVkNUUkw9bQorQ09ORklHX1JFR1VMQVRPUl9XTTg5 OTQ9bQorQ09ORklHX1JFR1VMQVRPUl9RQ09NX0xBQklCQj1tCitDT05GSUdfUkNfQ09SRT1tCitD T05GSUdfTElSQz15CitDT05GSUdfUkNfTUFQPW0KK0NPTkZJR19SQ19ERUNPREVSUz15CitDT05G SUdfSVJfSU1PTl9ERUNPREVSPW0KK0NPTkZJR19JUl9KVkNfREVDT0RFUj1tCitDT05GSUdfSVJf TUNFX0tCRF9ERUNPREVSPW0KK0NPTkZJR19JUl9ORUNfREVDT0RFUj1tCitDT05GSUdfSVJfUkM1 X0RFQ09ERVI9bQorQ09ORklHX0lSX1JDNl9ERUNPREVSPW0KK0NPTkZJR19JUl9SQ01NX0RFQ09E RVI9bQorQ09ORklHX0lSX1NBTllPX0RFQ09ERVI9bQorQ09ORklHX0lSX1NIQVJQX0RFQ09ERVI9 bQorQ09ORklHX0lSX1NPTllfREVDT0RFUj1tCitDT05GSUdfSVJfWE1QX0RFQ09ERVI9bQorQ09O RklHX1JDX0RFVklDRVM9eQorQ09ORklHX0lSX0dQSU9fQ0lSPW0KK0NPTkZJR19JUl9HUElPX1RY PW0KK0NPTkZJR19JUl9ISVg1SEQyPW0KK0NPTkZJR19JUl9JR09SUExVR1VTQj1tCitDT05GSUdf SVJfSUdVQU5BPW0KK0NPTkZJR19JUl9JTU9OPW0KK0NPTkZJR19JUl9JTU9OX1JBVz1tCitDT05G SUdfSVJfTUNFVVNCPW0KK0NPTkZJR19JUl9QV01fVFg9bQorQ09ORklHX0lSX1JFRFJBVDM9bQor Q09ORklHX0lSX1NFUklBTD1tCitDT05GSUdfSVJfU0VSSUFMX1RSQU5TTUlUVEVSPXkKK0NPTkZJ R19JUl9TUEk9bQorQ09ORklHX0lSX1NUUkVBTVpBUD1tCitDT05GSUdfSVJfU1VOWEk9bQorQ09O RklHX0lSX1RPWT1tCitDT05GSUdfSVJfVFRVU0JJUj1tCitDT05GSUdfUkNfQVRJX1JFTU9URT1t CitDT05GSUdfUkNfTE9PUEJBQ0s9bQorQ09ORklHX1JDX1hCT1hfRFZEPW0KK0NPTkZJR19DRUNf Q09SRT1tCitDT05GSUdfQ0VDX05PVElGSUVSPXkKKworIworIyBDRUMgc3VwcG9ydAorIworQ09O RklHX01FRElBX0NFQ19SQz15CitDT05GSUdfTUVESUFfQ0VDX1NVUFBPUlQ9eQorQ09ORklHX0NF Q19DSDczMjI9bQorQ09ORklHX1VTQl9QVUxTRThfQ0VDPW0KK0NPTkZJR19VU0JfUkFJTlNIQURP V19DRUM9bQorIyBlbmQgb2YgQ0VDIHN1cHBvcnQKKworQ09ORklHX01FRElBX1NVUFBPUlQ9bQor IyBDT05GSUdfTUVESUFfU1VQUE9SVF9GSUxURVIgaXMgbm90IHNldAorQ09ORklHX01FRElBX1NV QkRSVl9BVVRPU0VMRUNUPXkKKworIworIyBNZWRpYSBkZXZpY2UgdHlwZXMKKyMKK0NPTkZJR19N RURJQV9DQU1FUkFfU1VQUE9SVD15CitDT05GSUdfTUVESUFfQU5BTE9HX1RWX1NVUFBPUlQ9eQor Q09ORklHX01FRElBX0RJR0lUQUxfVFZfU1VQUE9SVD15CitDT05GSUdfTUVESUFfUkFESU9fU1VQ UE9SVD15CitDT05GSUdfTUVESUFfU0RSX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX1BMQVRGT1JN X1NVUFBPUlQ9eQorQ09ORklHX01FRElBX1RFU1RfU1VQUE9SVD15CisjIGVuZCBvZiBNZWRpYSBk ZXZpY2UgdHlwZXMKKworIworIyBNZWRpYSBjb3JlIHN1cHBvcnQKKyMKK0NPTkZJR19WSURFT19E RVY9bQorQ09ORklHX01FRElBX0NPTlRST0xMRVI9eQorQ09ORklHX0RWQl9DT1JFPW0KKyMgZW5k IG9mIE1lZGlhIGNvcmUgc3VwcG9ydAorCisjCisjIFZpZGVvNExpbnV4IG9wdGlvbnMKKyMKK0NP TkZJR19WSURFT19WNEwyX0kyQz15CitDT05GSUdfVklERU9fVjRMMl9TVUJERVZfQVBJPXkKKyMg Q09ORklHX1ZJREVPX0FEVl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19GSVhFRF9N SU5PUl9SQU5HRVMgaXMgbm90IHNldAorQ09ORklHX1ZJREVPX1RVTkVSPW0KK0NPTkZJR19WNEwy X0gyNjQ9bQorQ09ORklHX1Y0TDJfVlA5PW0KK0NPTkZJR19WNEwyX01FTTJNRU1fREVWPW0KK0NP TkZJR19WNEwyX0ZMQVNIX0xFRF9DTEFTUz1tCitDT05GSUdfVjRMMl9GV05PREU9bQorQ09ORklH X1Y0TDJfQVNZTkM9bQorQ09ORklHX1ZJREVPQlVGX0dFTj1tCitDT05GSUdfVklERU9CVUZfRE1B X1NHPW0KK0NPTkZJR19WSURFT0JVRl9WTUFMTE9DPW0KKyMgZW5kIG9mIFZpZGVvNExpbnV4IG9w dGlvbnMKKworIworIyBNZWRpYSBjb250cm9sbGVyIG9wdGlvbnMKKyMKK0NPTkZJR19NRURJQV9D T05UUk9MTEVSX0RWQj15CitDT05GSUdfTUVESUFfQ09OVFJPTExFUl9SRVFVRVNUX0FQST15Cisj IGVuZCBvZiBNZWRpYSBjb250cm9sbGVyIG9wdGlvbnMKKworIworIyBEaWdpdGFsIFRWIG9wdGlv bnMKKyMKKyMgQ09ORklHX0RWQl9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19EVkJfTkVUPXkKK0NP TkZJR19EVkJfTUFYX0FEQVBURVJTPTgKK0NPTkZJR19EVkJfRFlOQU1JQ19NSU5PUlM9eQorIyBD T05GSUdfRFZCX0RFTVVYX1NFQ1RJT05fTE9TU19MT0cgaXMgbm90IHNldAorIyBDT05GSUdfRFZC X1VMRV9ERUJVRyBpcyBub3Qgc2V0CisjIGVuZCBvZiBEaWdpdGFsIFRWIG9wdGlvbnMKKworIwor IyBNZWRpYSBkcml2ZXJzCisjCisKKyMKKyMgTWVkaWEgZHJpdmVycworIworQ09ORklHX01FRElB X1VTQl9TVVBQT1JUPXkKKworIworIyBXZWJjYW0gZGV2aWNlcworIworQ09ORklHX1VTQl9HU1BD QT1tCitDT05GSUdfVVNCX0dTUENBX0JFTlE9bQorQ09ORklHX1VTQl9HU1BDQV9DT05FWD1tCitD T05GSUdfVVNCX0dTUENBX0NQSUExPW0KK0NPTkZJR19VU0JfR1NQQ0FfRFRDUzAzMz1tCitDT05G SUdfVVNCX0dTUENBX0VUT01TPW0KK0NPTkZJR19VU0JfR1NQQ0FfRklORVBJWD1tCitDT05GSUdf VVNCX0dTUENBX0pFSUxJTko9bQorQ09ORklHX1VTQl9HU1BDQV9KTDIwMDVCQ0Q9bQorQ09ORklH X1VTQl9HU1BDQV9LSU5FQ1Q9bQorQ09ORklHX1VTQl9HU1BDQV9LT05JQ0E9bQorQ09ORklHX1VT Ql9HU1BDQV9NQVJTPW0KK0NPTkZJR19VU0JfR1NQQ0FfTVI5NzMxMEE9bQorQ09ORklHX1VTQl9H U1BDQV9OVzgwWD1tCitDT05GSUdfVVNCX0dTUENBX09WNTE5PW0KK0NPTkZJR19VU0JfR1NQQ0Ff T1Y1MzQ9bQorQ09ORklHX1VTQl9HU1BDQV9PVjUzNF85PW0KK0NPTkZJR19VU0JfR1NQQ0FfUEFD MjA3PW0KK0NPTkZJR19VU0JfR1NQQ0FfUEFDNzMwMj1tCitDT05GSUdfVVNCX0dTUENBX1BBQzcz MTE9bQorQ09ORklHX1VTQl9HU1BDQV9TRTQwMT1tCitDT05GSUdfVVNCX0dTUENBX1NOOUMyMDI4 PW0KK0NPTkZJR19VU0JfR1NQQ0FfU045QzIwWD1tCitDT05GSUdfVVNCX0dTUENBX1NPTklYQj1t CitDT05GSUdfVVNCX0dTUENBX1NPTklYSj1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0ExNTI4PW0K K0NPTkZJR19VU0JfR1NQQ0FfU1BDQTUwMD1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0E1MDE9bQor Q09ORklHX1VTQl9HU1BDQV9TUENBNTA1PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BDQTUwNj1tCitD T05GSUdfVVNCX0dTUENBX1NQQ0E1MDg9bQorQ09ORklHX1VTQl9HU1BDQV9TUENBNTYxPW0KK0NP TkZJR19VU0JfR1NQQ0FfU1E5MDU9bQorQ09ORklHX1VTQl9HU1BDQV9TUTkwNUM9bQorQ09ORklH X1VTQl9HU1BDQV9TUTkzMFg9bQorQ09ORklHX1VTQl9HU1BDQV9TVEswMTQ9bQorQ09ORklHX1VT Ql9HU1BDQV9TVEsxMTM1PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1RWMDY4MD1tCitDT05GSUdfVVNC X0dTUENBX1NVTlBMVVM9bQorQ09ORklHX1VTQl9HU1BDQV9UNjEzPW0KK0NPTkZJR19VU0JfR1NQ Q0FfVE9QUk89bQorQ09ORklHX1VTQl9HU1BDQV9UT1VQVEVLPW0KK0NPTkZJR19VU0JfR1NQQ0Ff VFY4NTMyPW0KK0NPTkZJR19VU0JfR1NQQ0FfVkMwMzJYPW0KK0NPTkZJR19VU0JfR1NQQ0FfVklD QU09bQorQ09ORklHX1VTQl9HU1BDQV9YSVJMSU5LX0NJVD1tCitDT05GSUdfVVNCX0dTUENBX1pD M1hYPW0KK0NPTkZJR19VU0JfR0w4NjA9bQorQ09ORklHX1VTQl9NNTYwMj1tCitDT05GSUdfVVNC X1NUVjA2WFg9bQorQ09ORklHX1VTQl9QV0M9bQorIyBDT05GSUdfVVNCX1BXQ19ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfVVNCX1BXQ19JTlBVVF9FVkRFVj15CitDT05GSUdfVVNCX1MyMjU1PW0K K0NPTkZJR19WSURFT19VU0JUVj1tCitDT05GSUdfVVNCX1ZJREVPX0NMQVNTPW0KK0NPTkZJR19V U0JfVklERU9fQ0xBU1NfSU5QVVRfRVZERVY9eQorCisjCisjIEFuYWxvZyBUViBVU0IgZGV2aWNl cworIworQ09ORklHX1ZJREVPX0dPNzAwNz1tCitDT05GSUdfVklERU9fR083MDA3X1VTQj1tCitD T05GSUdfVklERU9fR083MDA3X0xPQURFUj1tCitDT05GSUdfVklERU9fR083MDA3X1VTQl9TMjI1 MF9CT0FSRD1tCitDT05GSUdfVklERU9fSERQVlI9bQorQ09ORklHX1ZJREVPX1BWUlVTQjI9bQor Q09ORklHX1ZJREVPX1BWUlVTQjJfU1lTRlM9eQorQ09ORklHX1ZJREVPX1BWUlVTQjJfRFZCPXkK KyMgQ09ORklHX1ZJREVPX1BWUlVTQjJfREVCVUdJRkMgaXMgbm90IHNldAorQ09ORklHX1ZJREVP X1NUSzExNjBfQ09NTU9OPW0KK0NPTkZJR19WSURFT19TVEsxMTYwPW0KKworIworIyBBbmFsb2cv ZGlnaXRhbCBUViBVU0IgZGV2aWNlcworIworQ09ORklHX1ZJREVPX0FVMDgyOD1tCitDT05GSUdf VklERU9fQVUwODI4X1Y0TDI9eQorQ09ORklHX1ZJREVPX0FVMDgyOF9SQz15CitDT05GSUdfVklE RU9fQ1gyMzFYWD1tCitDT05GSUdfVklERU9fQ1gyMzFYWF9SQz15CitDT05GSUdfVklERU9fQ1gy MzFYWF9BTFNBPW0KK0NPTkZJR19WSURFT19DWDIzMVhYX0RWQj1tCisKKyMKKyMgRGlnaXRhbCBU ViBVU0IgZGV2aWNlcworIworQ09ORklHX0RWQl9BUzEwMj1tCitDT05GSUdfRFZCX0IyQzJfRkxF WENPUF9VU0I9bQorIyBDT05GSUdfRFZCX0IyQzJfRkxFWENPUF9VU0JfREVCVUcgaXMgbm90IHNl dAorQ09ORklHX0RWQl9VU0JfVjI9bQorQ09ORklHX0RWQl9VU0JfQUY5MDE1PW0KK0NPTkZJR19E VkJfVVNCX0FGOTAzNT1tCitDT05GSUdfRFZCX1VTQl9BTllTRUU9bQorQ09ORklHX0RWQl9VU0Jf QVU2NjEwPW0KK0NPTkZJR19EVkJfVVNCX0FaNjAwNz1tCitDT05GSUdfRFZCX1VTQl9DRTYyMzA9 bQorQ09ORklHX0RWQl9VU0JfRFZCU0tZPW0KK0NPTkZJR19EVkJfVVNCX0VDMTY4PW0KK0NPTkZJ R19EVkJfVVNCX0dMODYxPW0KK0NPTkZJR19EVkJfVVNCX0xNRTI1MTA9bQorQ09ORklHX0RWQl9V U0JfTVhMMTExU0Y9bQorQ09ORklHX0RWQl9VU0JfUlRMMjhYWFU9bQorQ09ORklHX0RWQl9VU0Jf WkQxMzAxPW0KK0NPTkZJR19EVkJfVVNCPW0KKyMgQ09ORklHX0RWQl9VU0JfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX0RWQl9VU0JfQTgwMD1tCitDT05GSUdfRFZCX1VTQl9BRjkwMDU9bQorQ09O RklHX0RWQl9VU0JfQUY5MDA1X1JFTU9URT1tCitDT05GSUdfRFZCX1VTQl9BWjYwMjc9bQorQ09O RklHX0RWQl9VU0JfQ0lORVJHWV9UMj1tCitDT05GSUdfRFZCX1VTQl9DWFVTQj1tCitDT05GSUdf RFZCX1VTQl9DWFVTQl9BTkFMT0c9eQorQ09ORklHX0RWQl9VU0JfRElCMDcwMD1tCitDT05GSUdf RFZCX1VTQl9ESUIzMDAwTUM9bQorQ09ORklHX0RWQl9VU0JfRElCVVNCX01CPW0KKyMgQ09ORklH X0RWQl9VU0JfRElCVVNCX01CX0ZBVUxUWSBpcyBub3Qgc2V0CitDT05GSUdfRFZCX1VTQl9ESUJV U0JfTUM9bQorQ09ORklHX0RWQl9VU0JfRElHSVRWPW0KK0NPTkZJR19EVkJfVVNCX0RUVDIwMFU9 bQorQ09ORklHX0RWQl9VU0JfRFRWNTEwMD1tCitDT05GSUdfRFZCX1VTQl9EVzIxMDI9bQorQ09O RklHX0RWQl9VU0JfR1A4UFNLPW0KK0NPTkZJR19EVkJfVVNCX005MjBYPW0KK0NPTkZJR19EVkJf VVNCX05PVkFfVF9VU0IyPW0KK0NPTkZJR19EVkJfVVNCX09QRVJBMT1tCitDT05GSUdfRFZCX1VT Ql9QQ1RWNDUyRT1tCitDT05GSUdfRFZCX1VTQl9URUNITklTQVRfVVNCMj1tCitDT05GSUdfRFZC X1VTQl9UVFVTQjI9bQorQ09ORklHX0RWQl9VU0JfVU1UXzAxMD1tCitDT05GSUdfRFZCX1VTQl9W UDcwMlg9bQorQ09ORklHX0RWQl9VU0JfVlA3MDQ1PW0KK0NPTkZJR19TTVNfVVNCX0RSVj1tCitD T05GSUdfRFZCX1RUVVNCX0JVREdFVD1tCitDT05GSUdfRFZCX1RUVVNCX0RFQz1tCisKKyMKKyMg V2ViY2FtLCBUViAoYW5hbG9nL2RpZ2l0YWwpIFVTQiBkZXZpY2VzCisjCitDT05GSUdfVklERU9f RU0yOFhYPW0KK0NPTkZJR19WSURFT19FTTI4WFhfVjRMMj1tCitDT05GSUdfVklERU9fRU0yOFhY X0FMU0E9bQorQ09ORklHX1ZJREVPX0VNMjhYWF9EVkI9bQorQ09ORklHX1ZJREVPX0VNMjhYWF9S Qz1tCisKKyMKKyMgU29mdHdhcmUgZGVmaW5lZCByYWRpbyBVU0IgZGV2aWNlcworIworQ09ORklH X1VTQl9BSVJTUFk9bQorQ09ORklHX1VTQl9IQUNLUkY9bQorQ09ORklHX1VTQl9NU0kyNTAwPW0K K0NPTkZJR19NRURJQV9QQ0lfU1VQUE9SVD15CisKKyMKKyMgTWVkaWEgY2FwdHVyZSBzdXBwb3J0 CisjCitDT05GSUdfVklERU9fU09MTzZYMTA9bQorQ09ORklHX1ZJREVPX1RXNTg2ND1tCitDT05G SUdfVklERU9fVFc2OD1tCitDT05GSUdfVklERU9fVFc2ODZYPW0KKyMgQ09ORklHX1ZJREVPX1pP UkFOIGlzIG5vdCBzZXQKKworIworIyBNZWRpYSBjYXB0dXJlL2FuYWxvZyBUViBzdXBwb3J0Cisj CitDT05GSUdfVklERU9fRFQzMTU1PW0KK0NPTkZJR19WSURFT19JVlRWPW0KK0NPTkZJR19WSURF T19JVlRWX0FMU0E9bQorQ09ORklHX1ZJREVPX0ZCX0lWVFY9bQorQ09ORklHX1ZJREVPX0hFWElV TV9HRU1JTkk9bQorQ09ORklHX1ZJREVPX0hFWElVTV9PUklPTj1tCitDT05GSUdfVklERU9fTVhC PW0KKworIworIyBNZWRpYSBjYXB0dXJlL2FuYWxvZy9oeWJyaWQgVFYgc3VwcG9ydAorIworQ09O RklHX1ZJREVPX0JUODQ4PW0KK0NPTkZJR19EVkJfQlQ4WFg9bQorQ09ORklHX1ZJREVPX0NYMTg9 bQorQ09ORklHX1ZJREVPX0NYMThfQUxTQT1tCitDT05GSUdfVklERU9fQ1gyMzg4NT1tCitDT05G SUdfTUVESUFfQUxURVJBX0NJPW0KK0NPTkZJR19WSURFT19DWDI1ODIxPW0KK0NPTkZJR19WSURF T19DWDI1ODIxX0FMU0E9bQorQ09ORklHX1ZJREVPX0NYODg9bQorQ09ORklHX1ZJREVPX0NYODhf QUxTQT1tCitDT05GSUdfVklERU9fQ1g4OF9CTEFDS0JJUkQ9bQorQ09ORklHX1ZJREVPX0NYODhf RFZCPW0KK0NPTkZJR19WSURFT19DWDg4X0VOQUJMRV9WUDMwNTQ9eQorQ09ORklHX1ZJREVPX0NY ODhfVlAzMDU0PW0KK0NPTkZJR19WSURFT19DWDg4X01QRUc9bQorQ09ORklHX1ZJREVPX1NBQTcx MzQ9bQorQ09ORklHX1ZJREVPX1NBQTcxMzRfQUxTQT1tCitDT05GSUdfVklERU9fU0FBNzEzNF9S Qz15CitDT05GSUdfVklERU9fU0FBNzEzNF9EVkI9bQorQ09ORklHX1ZJREVPX1NBQTcxMzRfR083 MDA3PW0KK0NPTkZJR19WSURFT19TQUE3MTY0PW0KKworIworIyBNZWRpYSBkaWdpdGFsIFRWIFBD SSBBZGFwdGVycworIworQ09ORklHX0RWQl9CMkMyX0ZMRVhDT1BfUENJPW0KKyMgQ09ORklHX0RW Ql9CMkMyX0ZMRVhDT1BfUENJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19EVkJfRERCUklER0U9 bQorIyBDT05GSUdfRFZCX0REQlJJREdFX01TSUVOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfRFZC X0RNMTEwNT1tCitDT05GSUdfTUFOVElTX0NPUkU9bQorQ09ORklHX0RWQl9NQU5USVM9bQorQ09O RklHX0RWQl9IT1BQRVI9bQorQ09ORklHX0RWQl9ORVRVUF9VTklEVkI9bQorQ09ORklHX0RWQl9O R0VORT1tCitDT05GSUdfRFZCX1BMVVRPMj1tCitDT05GSUdfRFZCX1BUMT1tCitDT05GSUdfRFZC X1BUMz1tCitDT05GSUdfRFZCX1NNSVBDSUU9bQorQ09ORklHX0RWQl9CVURHRVRfQ09SRT1tCitD T05GSUdfRFZCX0JVREdFVD1tCitDT05GSUdfRFZCX0JVREdFVF9DST1tCitDT05GSUdfRFZCX0JV REdFVF9BVj1tCitDT05GSUdfUkFESU9fQURBUFRFUlM9bQorQ09ORklHX1JBRElPX01BWElSQURJ Tz1tCitDT05GSUdfUkFESU9fU0FBNzcwNkg9bQorQ09ORklHX1JBRElPX1NIQVJLPW0KK0NPTkZJ R19SQURJT19TSEFSSzI9bQorQ09ORklHX1JBRElPX1NJNDcxMz1tCitDT05GSUdfUkFESU9fVEVB NTc1WD1tCitDT05GSUdfUkFESU9fVEVBNTc2ND1tCitDT05GSUdfUkFESU9fVEVGNjg2Mj1tCitD T05GSUdfUkFESU9fV0wxMjczPW0KK0NPTkZJR19VU0JfRFNCUj1tCitDT05GSUdfVVNCX0tFRU5F PW0KK0NPTkZJR19VU0JfTUE5MDE9bQorQ09ORklHX1VTQl9NUjgwMD1tCitDT05GSUdfVVNCX1JB UkVNT05PPW0KK0NPTkZJR19SQURJT19TSTQ3MFg9bQorQ09ORklHX1VTQl9TSTQ3MFg9bQorIyBD T05GSUdfSTJDX1NJNDcwWCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NJNDcxMz1tCitDT05GSUdf UExBVEZPUk1fU0k0NzEzPW0KK0NPTkZJR19JMkNfU0k0NzEzPW0KK0NPTkZJR19SQURJT19XTDEy OFg9bQorQ09ORklHX01FRElBX1BMQVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX1Y0TF9QTEFURk9S TV9EUklWRVJTPXkKK0NPTkZJR19TRFJfUExBVEZPUk1fRFJJVkVSUz15CitDT05GSUdfRFZCX1BM QVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX1Y0TF9NRU0yTUVNX0RSSVZFUlM9eQorQ09ORklHX1ZJ REVPX01FTTJNRU1fREVJTlRFUkxBQ0U9bQorQ09ORklHX1ZJREVPX01VWD1tCisKKyMKKyMgQWxs ZWdybyBEVlQgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIEFtbG9naWMgbWVkaWEg cGxhdGZvcm0gZHJpdmVycworIworCisjCisjIEFtcGhpb24gZHJpdmVycworIworCisjCisjIEFz cGVlZCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgQXRtZWwgbWVkaWEgcGxhdGZv cm0gZHJpdmVycworIworCisjCisjIENhZGVuY2UgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIwor Q09ORklHX1ZJREVPX0NBREVOQ0VfQ1NJMlJYPW0KK0NPTkZJR19WSURFT19DQURFTkNFX0NTSTJU WD1tCisKKyMKKyMgQ2hpcHMmTWVkaWEgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisj IEludGVsIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBNYXJ2ZWxsIG1lZGlhIHBs YXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19DQUZFX0NDSUM9bQorCisjCisjIE1lZGlh dGVrIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBNaWNyb2NoaXAgVGVjaG5vbG9n eSwgSW5jLiBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgTlZpZGlhIG1lZGlhIHBs YXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBOWFAgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIwor CisjCisjIFF1YWxjb21tIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBSZW5lc2Fz IG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19SQ0FSX0lTUD1tCitDT05G SUdfVklERU9fUkNBUl9DU0kyPW0KK0NPTkZJR19WSURFT19SQ0FSX1ZJTj1tCitDT05GSUdfVklE RU9fUlpHMkxfQ1NJMj1tCitDT05GSUdfVklERU9fUlpHMkxfQ1JVPW0KK0NPTkZJR19WSURFT19S RU5FU0FTX0ZDUD1tCitDT05GSUdfVklERU9fUkVORVNBU19GRFAxPW0KK0NPTkZJR19WSURFT19S RU5FU0FTX0pQVT1tCitDT05GSUdfVklERU9fUkVORVNBU19WU1AxPW0KK0NPTkZJR19WSURFT19S Q0FSX0RSSUY9bQorCisjCisjIFJvY2tjaGlwIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKwor IworIyBTYW1zdW5nIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBTVE1pY3JvZWxl Y3Ryb25pY3MgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIFN1bnhpIG1lZGlhIHBs YXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19TVU40SV9DU0k9bQorQ09ORklHX1ZJREVP X1NVTjZJX0NTST1tCitDT05GSUdfVklERU9fU1VONklfTUlQSV9DU0kyPW0KK0NPTkZJR19WSURF T19TVU44SV9BODNUX01JUElfQ1NJMj1tCitDT05GSUdfVklERU9fU1VOOElfREVJTlRFUkxBQ0U9 bQorQ09ORklHX1ZJREVPX1NVTjhJX1JPVEFURT1tCisKKyMKKyMgVGV4YXMgSW5zdHJ1bWVudHMg ZHJpdmVycworIworCisjCisjIFZlcmlzaWxpY29uIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMK K0NPTkZJR19WSURFT19IQU5UUk89bQorQ09ORklHX1ZJREVPX0hBTlRST19TVU5YST15CisKKyMK KyMgVklBIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBYaWxpbnggbWVkaWEgcGxh dGZvcm0gZHJpdmVycworIworQ09ORklHX1ZJREVPX1hJTElOWD1tCitDT05GSUdfVklERU9fWElM SU5YX0NTSTJSWFNTPW0KK0NPTkZJR19WSURFT19YSUxJTlhfVFBHPW0KK0NPTkZJR19WSURFT19Y SUxJTlhfVlRDPW0KKworIworIyBNTUMvU0RJTyBEVkIgYWRhcHRlcnMKKyMKK0NPTkZJR19TTVNf U0RJT19EUlY9bQorQ09ORklHX1Y0TF9URVNUX0RSSVZFUlM9eQorQ09ORklHX1ZJREVPX1ZJTTJN PW0KK0NPTkZJR19WSURFT19WSUNPREVDPW0KK0NPTkZJR19WSURFT19WSU1DPW0KK0NPTkZJR19W SURFT19WSVZJRD1tCitDT05GSUdfVklERU9fVklWSURfQ0VDPXkKK0NPTkZJR19WSURFT19WSVZJ RF9NQVhfREVWUz02NAorQ09ORklHX1ZJREVPX1ZJU0w9bQorIyBDT05GSUdfVklTTF9ERUJVR0ZT IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9URVNUX0RSSVZFUlMgaXMgbm90IHNldAorCisjCisj IEZpcmVXaXJlIChJRUVFIDEzOTQpIEFkYXB0ZXJzCisjCitDT05GSUdfRFZCX0ZJUkVEVFY9bQor Q09ORklHX0RWQl9GSVJFRFRWX0lOUFVUPXkKK0NPTkZJR19NRURJQV9DT01NT05fT1BUSU9OUz15 CisKKyMKKyMgY29tbW9uIGRyaXZlciBvcHRpb25zCisjCitDT05GSUdfQ1lQUkVTU19GSVJNV0FS RT1tCitDT05GSUdfVFRQQ0lfRUVQUk9NPW0KK0NPTkZJR19VVkNfQ09NTU9OPW0KK0NPTkZJR19W SURFT19DWDIzNDFYPW0KK0NPTkZJR19WSURFT19UVkVFUFJPTT1tCitDT05GSUdfRFZCX0IyQzJf RkxFWENPUD1tCitDT05GSUdfVklERU9fU0FBNzE0Nj1tCitDT05GSUdfVklERU9fU0FBNzE0Nl9W Vj1tCitDT05GSUdfU01TX1NJQU5PX01EVFY9bQorQ09ORklHX1NNU19TSUFOT19SQz15CisjIENP TkZJR19TTVNfU0lBTk9fREVCVUdGUyBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fVjRMMl9UUEc9 bQorQ09ORklHX1ZJREVPQlVGMl9DT1JFPW0KK0NPTkZJR19WSURFT0JVRjJfVjRMMj1tCitDT05G SUdfVklERU9CVUYyX01FTU9QUz1tCitDT05GSUdfVklERU9CVUYyX0RNQV9DT05USUc9bQorQ09O RklHX1ZJREVPQlVGMl9WTUFMTE9DPW0KK0NPTkZJR19WSURFT0JVRjJfRE1BX1NHPW0KK0NPTkZJ R19WSURFT0JVRjJfRFZCPW0KKyMgZW5kIG9mIE1lZGlhIGRyaXZlcnMKKworIworIyBNZWRpYSBh bmNpbGxhcnkgZHJpdmVycworIworQ09ORklHX01FRElBX0FUVEFDSD15CisKKyMKKyMgSVIgSTJD IGRyaXZlciBhdXRvLXNlbGVjdGVkIGJ5ICdBdXRvc2VsZWN0IGFuY2lsbGFyeSBkcml2ZXJzJwor IworQ09ORklHX1ZJREVPX0lSX0kyQz1tCisKKyMKKyMgQ2FtZXJhIHNlbnNvciBkZXZpY2VzCisj CitDT05GSUdfVklERU9fQVBUSU5BX1BMTD1tCitDT05GSUdfVklERU9fQ0NTX1BMTD1tCitDT05G SUdfVklERU9fQVIwNTIxPW0KK0NPTkZJR19WSURFT19ISTU1Nj1tCitDT05GSUdfVklERU9fSEk4 NDY9bQorQ09ORklHX1ZJREVPX0hJODQ3PW0KK0NPTkZJR19WSURFT19JTVgyMDg9bQorQ09ORklH X1ZJREVPX0lNWDIxND1tCitDT05GSUdfVklERU9fSU1YMjE5PW0KK0NPTkZJR19WSURFT19JTVgy NTg9bQorQ09ORklHX1ZJREVPX0lNWDI3ND1tCitDT05GSUdfVklERU9fSU1YMjkwPW0KK0NPTkZJ R19WSURFT19JTVgyOTY9bQorQ09ORklHX1ZJREVPX0lNWDMxOT1tCitDT05GSUdfVklERU9fSU1Y MzM0PW0KK0NPTkZJR19WSURFT19JTVgzMzU9bQorQ09ORklHX1ZJREVPX0lNWDM1NT1tCitDT05G SUdfVklERU9fSU1YNDEyPW0KK0NPTkZJR19WSURFT19JTVg0MTU9bQorQ09ORklHX1ZJREVPX01B WDkyNzFfTElCPW0KK0NPTkZJR19WSURFT19NVDlNMDAxPW0KK0NPTkZJR19WSURFT19NVDlNMDMy PW0KK0NPTkZJR19WSURFT19NVDlNMTExPW0KK0NPTkZJR19WSURFT19NVDlQMDMxPW0KK0NPTkZJ R19WSURFT19NVDlUMDAxPW0KK0NPTkZJR19WSURFT19NVDlUMTEyPW0KK0NPTkZJR19WSURFT19N VDlWMDExPW0KK0NPTkZJR19WSURFT19NVDlWMDMyPW0KK0NPTkZJR19WSURFT19NVDlWMTExPW0K K0NPTkZJR19WSURFT19OT09OMDEwUEMzMD1tCitDT05GSUdfVklERU9fT0cwMUExQj1tCitDT05G SUdfVklERU9fT1YwMkExMD1tCitDT05GSUdfVklERU9fT1YwOEQxMD1tCitDT05GSUdfVklERU9f T1YwOFg0MD1tCitDT05GSUdfVklERU9fT1YxMzg1OD1tCitDT05GSUdfVklERU9fT1YxM0IxMD1t CitDT05GSUdfVklERU9fT1YyNjQwPW0KK0NPTkZJR19WSURFT19PVjI2NTk9bQorQ09ORklHX1ZJ REVPX09WMjY4MD1tCitDT05GSUdfVklERU9fT1YyNjg1PW0KK0NPTkZJR19WSURFT19PVjQ2ODk9 bQorQ09ORklHX1ZJREVPX09WNTY0MD1tCitDT05GSUdfVklERU9fT1Y1NjQ1PW0KK0NPTkZJR19W SURFT19PVjU2NDc9bQorQ09ORklHX1ZJREVPX09WNTY0OD1tCitDT05GSUdfVklERU9fT1Y1Njcw PW0KK0NPTkZJR19WSURFT19PVjU2NzU9bQorQ09ORklHX1ZJREVPX09WNTY5Mz1tCitDT05GSUdf VklERU9fT1Y1Njk1PW0KK0NPTkZJR19WSURFT19PVjY2NTA9bQorQ09ORklHX1ZJREVPX09WNzI1 MT1tCitDT05GSUdfVklERU9fT1Y3NjQwPW0KK0NPTkZJR19WSURFT19PVjc2NzA9bQorQ09ORklH X1ZJREVPX09WNzcyWD1tCitDT05GSUdfVklERU9fT1Y3NzQwPW0KK0NPTkZJR19WSURFT19PVjg4 NTY9bQorQ09ORklHX1ZJREVPX09WODg1OD1tCitDT05GSUdfVklERU9fT1Y4ODY1PW0KK0NPTkZJ R19WSURFT19PVjkyODI9bQorQ09ORklHX1ZJREVPX09WOTY0MD1tCitDT05GSUdfVklERU9fT1Y5 NjUwPW0KK0NPTkZJR19WSURFT19SREFDTTIwPW0KK0NPTkZJR19WSURFT19SREFDTTIxPW0KK0NP TkZJR19WSURFT19SSjU0TjE9bQorQ09ORklHX1ZJREVPX1M1QzczTTM9bQorQ09ORklHX1ZJREVP X1M1SzVCQUY9bQorQ09ORklHX1ZJREVPX1M1SzZBMz1tCitDT05GSUdfVklERU9fUzVLNkFBPW0K K0NPTkZJR19WSURFT19TUjAzMFBDMzA9bQorQ09ORklHX1ZJREVPX1NUX1ZHWFk2MT1tCitDT05G SUdfVklERU9fVlM2NjI0PW0KK0NPTkZJR19WSURFT19DQ1M9bQorQ09ORklHX1ZJREVPX0VUOEVL OD1tCitDT05GSUdfVklERU9fTTVNT0xTPW0KKyMgZW5kIG9mIENhbWVyYSBzZW5zb3IgZGV2aWNl cworCisjCisjIExlbnMgZHJpdmVycworIworQ09ORklHX1ZJREVPX0FENTgyMD1tCitDT05GSUdf VklERU9fQUs3Mzc1PW0KK0NPTkZJR19WSURFT19EVzk3MTQ9bQorQ09ORklHX1ZJREVPX0RXOTc2 OD1tCitDT05GSUdfVklERU9fRFc5ODA3X1ZDTT1tCisjIGVuZCBvZiBMZW5zIGRyaXZlcnMKKwor IworIyBGbGFzaCBkZXZpY2VzCisjCitDT05GSUdfVklERU9fQURQMTY1Mz1tCitDT05GSUdfVklE RU9fTE0zNTYwPW0KK0NPTkZJR19WSURFT19MTTM2NDY9bQorIyBlbmQgb2YgRmxhc2ggZGV2aWNl cworCisjCisjIEF1ZGlvIGRlY29kZXJzLCBwcm9jZXNzb3JzIGFuZCBtaXhlcnMKKyMKK0NPTkZJ R19WSURFT19DUzMzMDg9bQorQ09ORklHX1ZJREVPX0NTNTM0NT1tCitDT05GSUdfVklERU9fQ1M1 M0wzMkE9bQorQ09ORklHX1ZJREVPX01TUDM0MDA9bQorQ09ORklHX1ZJREVPX1NPTllfQlRGX01Q WD1tCitDT05GSUdfVklERU9fVERBMTk5N1g9bQorQ09ORklHX1ZJREVPX1REQTc0MzI9bQorQ09O RklHX1ZJREVPX1REQTk4NDA9bQorQ09ORklHX1ZJREVPX1RFQTY0MTVDPW0KK0NPTkZJR19WSURF T19URUE2NDIwPW0KK0NPTkZJR19WSURFT19UTFYzMjBBSUMyM0I9bQorQ09ORklHX1ZJREVPX1RW QVVESU89bQorQ09ORklHX1ZJREVPX1VEQTEzNDI9bQorQ09ORklHX1ZJREVPX1ZQMjdTTVBYPW0K K0NPTkZJR19WSURFT19XTTg3Mzk9bQorQ09ORklHX1ZJREVPX1dNODc3NT1tCisjIGVuZCBvZiBB dWRpbyBkZWNvZGVycywgcHJvY2Vzc29ycyBhbmQgbWl4ZXJzCisKKyMKKyMgUkRTIGRlY29kZXJz CisjCitDT05GSUdfVklERU9fU0FBNjU4OD1tCisjIGVuZCBvZiBSRFMgZGVjb2RlcnMKKworIwor IyBWaWRlbyBkZWNvZGVycworIworQ09ORklHX1ZJREVPX0FEVjcxODA9bQorQ09ORklHX1ZJREVP X0FEVjcxODM9bQorQ09ORklHX1ZJREVPX0FEVjc0OFg9bQorQ09ORklHX1ZJREVPX0FEVjc2MDQ9 bQorQ09ORklHX1ZJREVPX0FEVjc2MDRfQ0VDPXkKK0NPTkZJR19WSURFT19BRFY3ODQyPW0KK0NP TkZJR19WSURFT19BRFY3ODQyX0NFQz15CitDT05GSUdfVklERU9fQlQ4MTk9bQorQ09ORklHX1ZJ REVPX0JUODU2PW0KK0NPTkZJR19WSURFT19CVDg2Nj1tCitDT05GSUdfVklERU9fSVNMNzk5OFg9 bQorQ09ORklHX1ZJREVPX0tTMDEyNz1tCitDT05GSUdfVklERU9fTUFYOTI4Nj1tCitDT05GSUdf VklERU9fTUw4NlY3NjY3PW0KK0NPTkZJR19WSURFT19TQUE3MTEwPW0KK0NPTkZJR19WSURFT19T QUE3MTFYPW0KK0NPTkZJR19WSURFT19UQzM1ODc0Mz1tCitDT05GSUdfVklERU9fVEMzNTg3NDNf Q0VDPXkKK0NPTkZJR19WSURFT19UQzM1ODc0Nj1tCitDT05GSUdfVklERU9fVFZQNTE0WD1tCitD T05GSUdfVklERU9fVFZQNTE1MD1tCitDT05GSUdfVklERU9fVFZQNzAwMj1tCitDT05GSUdfVklE RU9fVFcyODA0PW0KK0NPTkZJR19WSURFT19UVzk5MDM9bQorQ09ORklHX1ZJREVPX1RXOTkwNj1t CitDT05GSUdfVklERU9fVFc5OTEwPW0KK0NPTkZJR19WSURFT19WUFgzMjIwPW0KKworIworIyBW aWRlbyBhbmQgYXVkaW8gZGVjb2RlcnMKKyMKK0NPTkZJR19WSURFT19TQUE3MTdYPW0KK0NPTkZJ R19WSURFT19DWDI1ODQwPW0KKyMgZW5kIG9mIFZpZGVvIGRlY29kZXJzCisKKyMKKyMgVmlkZW8g ZW5jb2RlcnMKKyMKK0NPTkZJR19WSURFT19BRDkzODlCPW0KK0NPTkZJR19WSURFT19BRFY3MTcw PW0KK0NPTkZJR19WSURFT19BRFY3MTc1PW0KK0NPTkZJR19WSURFT19BRFY3MzQzPW0KK0NPTkZJ R19WSURFT19BRFY3MzkzPW0KK0NPTkZJR19WSURFT19BSzg4MVg9bQorQ09ORklHX1ZJREVPX1NB QTcxMjc9bQorQ09ORklHX1ZJREVPX1NBQTcxODU9bQorQ09ORklHX1ZJREVPX1RIUzgyMDA9bQor IyBlbmQgb2YgVmlkZW8gZW5jb2RlcnMKKworIworIyBWaWRlbyBpbXByb3ZlbWVudCBjaGlwcwor IworQ09ORklHX1ZJREVPX1VQRDY0MDMxQT1tCitDT05GSUdfVklERU9fVVBENjQwODM9bQorIyBl bmQgb2YgVmlkZW8gaW1wcm92ZW1lbnQgY2hpcHMKKworIworIyBBdWRpby9WaWRlbyBjb21wcmVz c2lvbiBjaGlwcworIworQ09ORklHX1ZJREVPX1NBQTY3NTJIUz1tCisjIGVuZCBvZiBBdWRpby9W aWRlbyBjb21wcmVzc2lvbiBjaGlwcworCisjCisjIFNEUiB0dW5lciBjaGlwcworIworQ09ORklH X1NEUl9NQVgyMTc1PW0KKyMgZW5kIG9mIFNEUiB0dW5lciBjaGlwcworCisjCisjIE1pc2NlbGxh bmVvdXMgaGVscGVyIGNoaXBzCisjCitDT05GSUdfVklERU9fSTJDPW0KK0NPTkZJR19WSURFT19N NTI3OTA9bQorQ09ORklHX1ZJREVPX1NUX01JUElEMDI9bQorQ09ORklHX1ZJREVPX1RIUzczMDM9 bQorIyBlbmQgb2YgTWlzY2VsbGFuZW91cyBoZWxwZXIgY2hpcHMKKworIworIyBNZWRpYSBTUEkg QWRhcHRlcnMKKyMKK0NPTkZJR19DWEQyODgwX1NQSV9EUlY9bQorQ09ORklHX1ZJREVPX0dTMTY2 Mj1tCisjIGVuZCBvZiBNZWRpYSBTUEkgQWRhcHRlcnMKKworQ09ORklHX01FRElBX1RVTkVSPW0K KworIworIyBDdXN0b21pemUgVFYgdHVuZXJzCisjCitDT05GSUdfTUVESUFfVFVORVJfRTQwMDA9 bQorQ09ORklHX01FRElBX1RVTkVSX0ZDMDAxMT1tCitDT05GSUdfTUVESUFfVFVORVJfRkMwMDEy PW0KK0NPTkZJR19NRURJQV9UVU5FUl9GQzAwMTM9bQorQ09ORklHX01FRElBX1RVTkVSX0ZDMjU4 MD1tCitDT05GSUdfTUVESUFfVFVORVJfSVQ5MTNYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NODhS UzYwMDBUPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NQVgyMTY1PW0KK0NPTkZJR19NRURJQV9UVU5F Ul9NQzQ0UzgwMz1tCitDT05GSUdfTUVESUFfVFVORVJfTVNJMDAxPW0KK0NPTkZJR19NRURJQV9U VU5FUl9NVDIwNjA9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjA2Mz1tCitDT05GSUdfTUVESUFf VFVORVJfTVQyMFhYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NVDIxMzE9bQorQ09ORklHX01FRElB X1RVTkVSX01UMjI2Nj1tCitDT05GSUdfTUVESUFfVFVORVJfTVhMMzAxUkY9bQorQ09ORklHX01F RElBX1RVTkVSX01YTDUwMDVTPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NWEw1MDA3VD1tCitDT05G SUdfTUVESUFfVFVORVJfUU0xRDFCMDAwND1tCitDT05GSUdfTUVESUFfVFVORVJfUU0xRDFDMDA0 Mj1tCitDT05GSUdfTUVESUFfVFVORVJfUVQxMDEwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9SODIw VD1tCitDT05GSUdfTUVESUFfVFVORVJfU0kyMTU3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9TSU1Q TEU9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjEyPW0KK0NPTkZJR19NRURJQV9UVU5FUl9U REExODIxOD1tCitDT05GSUdfTUVESUFfVFVORVJfVERBMTgyNTA9bQorQ09ORklHX01FRElBX1RV TkVSX1REQTE4MjcxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE4MjdYPW0KK0NPTkZJR19NRURJ QV9UVU5FUl9UREE4MjkwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3PW0KK0NPTkZJR19N RURJQV9UVU5FUl9URUE1NzYxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9URUE1NzY3PW0KK0NPTkZJ R19NRURJQV9UVU5FUl9UVUE5MDAxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9bQorQ09O RklHX01FRElBX1RVTkVSX1hDNDAwMD1tCitDT05GSUdfTUVESUFfVFVORVJfWEM1MDAwPW0KKyMg ZW5kIG9mIEN1c3RvbWl6ZSBUViB0dW5lcnMKKworIworIyBDdXN0b21pc2UgRFZCIEZyb250ZW5k cworIworCisjCisjIE11bHRpc3RhbmRhcmQgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCisjCitDT05G SUdfRFZCX004OERTMzEwMz1tCitDT05GSUdfRFZCX01YTDVYWD1tCitDT05GSUdfRFZCX1NUQjA4 OTk9bQorQ09ORklHX0RWQl9TVEI2MTAwPW0KK0NPTkZJR19EVkJfU1RWMDkweD1tCitDT05GSUdf RFZCX1NUVjA5MTA9bQorQ09ORklHX0RWQl9TVFY2MTEweD1tCitDT05GSUdfRFZCX1NUVjYxMTE9 bQorCisjCisjIE11bHRpc3RhbmRhcmQgKGNhYmxlICsgdGVycmVzdHJpYWwpIGZyb250ZW5kcwor IworQ09ORklHX0RWQl9EUlhLPW0KK0NPTkZJR19EVkJfTU44ODQ3Mj1tCitDT05GSUdfRFZCX01O ODg0NzM9bQorQ09ORklHX0RWQl9TSTIxNjU9bQorQ09ORklHX0RWQl9UREExODI3MUMyREQ9bQor CisjCisjIERWQi1TIChzYXRlbGxpdGUpIGZyb250ZW5kcworIworQ09ORklHX0RWQl9DWDI0MTEw PW0KK0NPTkZJR19EVkJfQ1gyNDExNj1tCitDT05GSUdfRFZCX0NYMjQxMTc9bQorQ09ORklHX0RW Ql9DWDI0MTIwPW0KK0NPTkZJR19EVkJfQ1gyNDEyMz1tCitDT05GSUdfRFZCX0RTMzAwMD1tCitD T05GSUdfRFZCX01CODZBMTY9bQorQ09ORklHX0RWQl9NVDMxMj1tCitDT05GSUdfRFZCX1M1SDE0 MjA9bQorQ09ORklHX0RWQl9TSTIxWFg9bQorQ09ORklHX0RWQl9TVEI2MDAwPW0KK0NPTkZJR19E VkJfU1RWMDI4OD1tCitDT05GSUdfRFZCX1NUVjAyOTk9bQorQ09ORklHX0RWQl9TVFYwOTAwPW0K K0NPTkZJR19EVkJfU1RWNjExMD1tCitDT05GSUdfRFZCX1REQTEwMDcxPW0KK0NPTkZJR19EVkJf VERBMTAwODY9bQorQ09ORklHX0RWQl9UREE4MDgzPW0KK0NPTkZJR19EVkJfVERBODI2MT1tCitD T05GSUdfRFZCX1REQTgyNlg9bQorQ09ORklHX0RWQl9UUzIwMjA9bQorQ09ORklHX0RWQl9UVUE2 MTAwPW0KK0NPTkZJR19EVkJfVFVORVJfQ1gyNDExMz1tCitDT05GSUdfRFZCX1RVTkVSX0lURDEw MDA9bQorQ09ORklHX0RWQl9WRVMxWDkzPW0KK0NPTkZJR19EVkJfWkwxMDAzNj1tCitDT05GSUdf RFZCX1pMMTAwMzk9bQorCisjCisjIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisjCitD T05GSUdfRFZCX0FGOTAxMz1tCitDT05GSUdfRFZCX0FTMTAyX0ZFPW0KK0NPTkZJR19EVkJfQ1gy MjcwMD1tCitDT05GSUdfRFZCX0NYMjI3MDI9bQorQ09ORklHX0RWQl9DWEQyODIwUj1tCitDT05G SUdfRFZCX0NYRDI4NDFFUj1tCitDT05GSUdfRFZCX0RJQjMwMDBNQj1tCitDT05GSUdfRFZCX0RJ QjMwMDBNQz1tCitDT05GSUdfRFZCX0RJQjcwMDBNPW0KK0NPTkZJR19EVkJfRElCNzAwMFA9bQor Q09ORklHX0RWQl9ESUI5MDAwPW0KK0NPTkZJR19EVkJfRFJYRD1tCitDT05GSUdfRFZCX0VDMTAw PW0KK0NPTkZJR19EVkJfR1A4UFNLX0ZFPW0KK0NPTkZJR19EVkJfTDY0NzgxPW0KK0NPTkZJR19E VkJfTVQzNTI9bQorQ09ORklHX0RWQl9OWFQ2MDAwPW0KK0NPTkZJR19EVkJfUlRMMjgzMD1tCitD T05GSUdfRFZCX1JUTDI4MzI9bQorQ09ORklHX0RWQl9SVEwyODMyX1NEUj1tCitDT05GSUdfRFZC X1M1SDE0MzI9bQorQ09ORklHX0RWQl9TSTIxNjg9bQorQ09ORklHX0RWQl9TUDg4N1g9bQorQ09O RklHX0RWQl9TVFYwMzY3PW0KK0NPTkZJR19EVkJfVERBMTAwNDg9bQorQ09ORklHX0RWQl9UREEx MDA0WD1tCitDT05GSUdfRFZCX1pEMTMwMV9ERU1PRD1tCitDT05GSUdfRFZCX1pMMTAzNTM9bQor Q09ORklHX0RWQl9DWEQyODgwPW0KKworIworIyBEVkItQyAoY2FibGUpIGZyb250ZW5kcworIwor Q09ORklHX0RWQl9TVFYwMjk3PW0KK0NPTkZJR19EVkJfVERBMTAwMjE9bQorQ09ORklHX0RWQl9U REExMDAyMz1tCitDT05GSUdfRFZCX1ZFUzE4MjA9bQorCisjCisjIEFUU0MgKE5vcnRoIEFtZXJp Y2FuL0tvcmVhbiBUZXJyZXN0cmlhbC9DYWJsZSBEVFYpIGZyb250ZW5kcworIworQ09ORklHX0RW Ql9BVTg1MjI9bQorQ09ORklHX0RWQl9BVTg1MjJfRFRWPW0KK0NPTkZJR19EVkJfQVU4NTIyX1Y0 TD1tCitDT05GSUdfRFZCX0JDTTM1MTA9bQorQ09ORklHX0RWQl9MRzIxNjA9bQorQ09ORklHX0RW Ql9MR0RUMzMwNT1tCitDT05GSUdfRFZCX0xHRFQzMzA2QT1tCitDT05GSUdfRFZCX0xHRFQzMzBY PW0KK0NPTkZJR19EVkJfTVhMNjkyPW0KK0NPTkZJR19EVkJfTlhUMjAwWD1tCitDT05GSUdfRFZC X09SNTExMzI9bQorQ09ORklHX0RWQl9PUjUxMjExPW0KK0NPTkZJR19EVkJfUzVIMTQwOT1tCitD T05GSUdfRFZCX1M1SDE0MTE9bQorCisjCisjIElTREItVCAodGVycmVzdHJpYWwpIGZyb250ZW5k cworIworQ09ORklHX0RWQl9ESUI4MDAwPW0KK0NPTkZJR19EVkJfTUI4NkEyMFM9bQorQ09ORklH X0RWQl9TOTIxPW0KKworIworIyBJU0RCLVMgKHNhdGVsbGl0ZSkgJiBJU0RCLVQgKHRlcnJlc3Ry aWFsKSBmcm9udGVuZHMKKyMKK0NPTkZJR19EVkJfTU44ODQ0M1g9bQorQ09ORklHX0RWQl9UQzkw NTIyPW0KKworIworIyBEaWdpdGFsIHRlcnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAorIworQ09O RklHX0RWQl9QTEw9bQorQ09ORklHX0RWQl9UVU5FUl9ESUIwMDcwPW0KK0NPTkZJR19EVkJfVFVO RVJfRElCMDA5MD1tCisKKyMKKyMgU0VDIGNvbnRyb2wgZGV2aWNlcyBmb3IgRFZCLVMKKyMKK0NP TkZJR19EVkJfQTgyOTM9bQorQ09ORklHX0RWQl9BRjkwMzM9bQorQ09ORklHX0RWQl9BU0NPVDJF PW0KK0NPTkZJR19EVkJfQVRCTTg4MzA9bQorQ09ORklHX0RWQl9IRUxFTkU9bQorQ09ORklHX0RW Ql9IT1JVUzNBPW0KK0NPTkZJR19EVkJfSVNMNjQwNT1tCitDT05GSUdfRFZCX0lTTDY0MjE9bQor Q09ORklHX0RWQl9JU0w2NDIzPW0KK0NPTkZJR19EVkJfSVgyNTA1Vj1tCitDT05GSUdfRFZCX0xH UzhHTDU9bQorQ09ORklHX0RWQl9MR1M4R1hYPW0KK0NPTkZJR19EVkJfTE5CSDI1PW0KK0NPTkZJ R19EVkJfTE5CSDI5PW0KK0NPTkZJR19EVkJfTE5CUDIxPW0KK0NPTkZJR19EVkJfTE5CUDIyPW0K K0NPTkZJR19EVkJfTTg4UlMyMDAwPW0KK0NPTkZJR19EVkJfVERBNjY1eD1tCitDT05GSUdfRFZC X0RSWDM5WFlKPW0KKworIworIyBDb21tb24gSW50ZXJmYWNlIChFTjUwMjIxKSBjb250cm9sbGVy IGRyaXZlcnMKKyMKK0NPTkZJR19EVkJfQ1hEMjA5OT1tCitDT05GSUdfRFZCX1NQMj1tCisjIGVu ZCBvZiBDdXN0b21pc2UgRFZCIEZyb250ZW5kcworCisjCisjIFRvb2xzIHRvIGRldmVsb3AgbmV3 IGZyb250ZW5kcworIworQ09ORklHX0RWQl9EVU1NWV9GRT1tCisjIGVuZCBvZiBNZWRpYSBhbmNp bGxhcnkgZHJpdmVycworCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKK0NPTkZJR19BUEVSVFVS RV9IRUxQRVJTPXkKK0NPTkZJR19WSURFT19OT01PREVTRVQ9eQorQ09ORklHX0RSTT1tCitDT05G SUdfRFJNX01JUElfREJJPW0KK0NPTkZJR19EUk1fTUlQSV9EU0k9eQorQ09ORklHX0RSTV9LTVNf SEVMUEVSPW0KKyMgQ09ORklHX0RSTV9ERUJVR19EUF9NU1RfVE9QT0xPR1lfUkVGUyBpcyBub3Qg c2V0CisjIENPTkZJR19EUk1fREVCVUdfTU9ERVNFVF9MT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19E Uk1fRkJERVZfRU1VTEFUSU9OPXkKK0NPTkZJR19EUk1fRkJERVZfT1ZFUkFMTE9DPTEwMAorIyBD T05GSUdfRFJNX0ZCREVWX0xFQUtfUEhZU19TTUVNIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fTE9B RF9FRElEX0ZJUk1XQVJFPXkKK0NPTkZJR19EUk1fRFBfQVVYX0JVUz1tCitDT05GSUdfRFJNX0RJ U1BMQVlfSEVMUEVSPW0KK0NPTkZJR19EUk1fRElTUExBWV9EUF9IRUxQRVI9eQorQ09ORklHX0RS TV9ESVNQTEFZX0hEQ1BfSEVMUEVSPXkKK0NPTkZJR19EUk1fRElTUExBWV9IRE1JX0hFTFBFUj15 CitDT05GSUdfRFJNX0RQX0FVWF9DSEFSREVWPXkKK0NPTkZJR19EUk1fRFBfQ0VDPXkKK0NPTkZJ R19EUk1fVFRNPW0KK0NPTkZJR19EUk1fQlVERFk9bQorQ09ORklHX0RSTV9WUkFNX0hFTFBFUj1t CitDT05GSUdfRFJNX1RUTV9IRUxQRVI9bQorQ09ORklHX0RSTV9HRU1fRE1BX0hFTFBFUj1tCitD T05GSUdfRFJNX0dFTV9TSE1FTV9IRUxQRVI9bQorQ09ORklHX0RSTV9TQ0hFRD1tCisKKyMKKyMg STJDIGVuY29kZXIgb3IgaGVscGVyIGNoaXBzCisjCitDT05GSUdfRFJNX0kyQ19DSDcwMDY9bQor Q09ORklHX0RSTV9JMkNfU0lMMTY0PW0KK0NPTkZJR19EUk1fSTJDX05YUF9UREE5OThYPW0KK0NP TkZJR19EUk1fSTJDX05YUF9UREE5OTUwPW0KKyMgZW5kIG9mIEkyQyBlbmNvZGVyIG9yIGhlbHBl ciBjaGlwcworCisjCisjIEFSTSBkZXZpY2VzCisjCitDT05GSUdfRFJNX0tPTUVEQT1tCisjIGVu ZCBvZiBBUk0gZGV2aWNlcworCitDT05GSUdfRFJNX1JBREVPTj1tCitDT05GSUdfRFJNX1JBREVP Tl9VU0VSUFRSPXkKK0NPTkZJR19EUk1fQU1ER1BVPW0KK0NPTkZJR19EUk1fQU1ER1BVX1NJPXkK K0NPTkZJR19EUk1fQU1ER1BVX0NJSz15CitDT05GSUdfRFJNX0FNREdQVV9VU0VSUFRSPXkKKwor IworIyBBQ1AgKEF1ZGlvIENvUHJvY2Vzc29yKSBDb25maWd1cmF0aW9uCisjCitDT05GSUdfRFJN X0FNRF9BQ1A9eQorIyBlbmQgb2YgQUNQIChBdWRpbyBDb1Byb2Nlc3NvcikgQ29uZmlndXJhdGlv bgorCisjCisjIERpc3BsYXkgRW5naW5lIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19EUk1fQU1E X0RDPXkKKyMgQ09ORklHX0RSTV9BTURfRENfSERDUCBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0FN RF9EQ19TST15CisjIENPTkZJR19ERUJVR19LRVJORUxfREMgaXMgbm90IHNldAorIyBlbmQgb2Yg RGlzcGxheSBFbmdpbmUgQ29uZmlndXJhdGlvbgorCitDT05GSUdfRFJNX05PVVZFQVU9bQorQ09O RklHX05PVVZFQVVfREVCVUc9NQorQ09ORklHX05PVVZFQVVfREVCVUdfREVGQVVMVD0zCisjIENP TkZJR19OT1VWRUFVX0RFQlVHX01NVSBpcyBub3Qgc2V0CisjIENPTkZJR19OT1VWRUFVX0RFQlVH X1BVU0ggaXMgbm90IHNldAorQ09ORklHX0RSTV9OT1VWRUFVX0JBQ0tMSUdIVD15CisjIENPTkZJ R19EUk1fVkdFTSBpcyBub3Qgc2V0CitDT05GSUdfRFJNX1ZLTVM9bQorQ09ORklHX0RSTV9VREw9 bQorQ09ORklHX0RSTV9BU1Q9bQorQ09ORklHX0RSTV9NR0FHMjAwPW0KK0NPTkZJR19EUk1fUlpH MkxfTUlQSV9EU0k9bQorQ09ORklHX0RSTV9TVU40ST1tCitDT05GSUdfRFJNX1NVTjZJX0RTST1t CitDT05GSUdfRFJNX1NVTjhJX0RXX0hETUk9bQorQ09ORklHX0RSTV9TVU44SV9NSVhFUj1tCitD T05GSUdfRFJNX1NVTjhJX1RDT05fVE9QPW0KK0NPTkZJR19EUk1fUVhMPW0KK0NPTkZJR19EUk1f VklSVElPX0dQVT1tCitDT05GSUdfRFJNX1BBTkVMPXkKKworIworIyBEaXNwbGF5IFBhbmVscwor IworQ09ORklHX0RSTV9QQU5FTF9BQlRfWTAzMFhYMDY3QT1tCitDT05GSUdfRFJNX1BBTkVMX0FS TV9WRVJTQVRJTEU9bQorQ09ORklHX0RSTV9QQU5FTF9BU1VTX1owMFRfVE01UDVfTlQzNTU5Nj1t CitDT05GSUdfRFJNX1BBTkVMX0FVT19BMDMwSlROMDE9bQorQ09ORklHX0RSTV9QQU5FTF9CT0Vf QkYwNjBZOE1fQUowPW0KK0NPTkZJR19EUk1fUEFORUxfQk9FX0hJTUFYODI3OUQ9bQorQ09ORklH X0RSTV9QQU5FTF9CT0VfVFYxMDFXVU1fTkw2PW0KK0NPTkZJR19EUk1fUEFORUxfRFNJX0NNPW0K K0NPTkZJR19EUk1fUEFORUxfTFZEUz1tCitDT05GSUdfRFJNX1BBTkVMX1NJTVBMRT1tCitDT05G SUdfRFJNX1BBTkVMX0VEUD1tCitDT05GSUdfRFJNX1BBTkVMX0VCQkdfRlQ4NzE5PW0KK0NPTkZJ R19EUk1fUEFORUxfRUxJREFfS0QzNVQxMzM9bQorQ09ORklHX0RSTV9QQU5FTF9GRUlYSU5fSzEw MV9JTTJCQTAyPW0KK0NPTkZJR19EUk1fUEFORUxfRkVJWUFOR19GWTA3MDI0REkyNkEzMEQ9bQor Q09ORklHX0RSTV9QQU5FTF9ISU1BWF9IWDgzOTQ9bQorQ09ORklHX0RSTV9QQU5FTF9JTElURUtf SUw5MzIyPW0KK0NPTkZJR19EUk1fUEFORUxfSUxJVEVLX0lMSTkzNDE9bQorQ09ORklHX0RSTV9Q QU5FTF9JTElURUtfSUxJOTg4MUM9bQorQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX0VKMDMwTkE9 bQorQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX1AwNzlaQ0E9bQorQ09ORklHX0RSTV9QQU5FTF9K QURBUkRfSkQ5MzY1REFfSDM9bQorQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1MDAwPW0K K0NPTkZJR19EUk1fUEFORUxfSkRJX1I2MzQ1Mj1tCitDT05GSUdfRFJNX1BBTkVMX0tIQURBU19U UzA1MD1tCitDT05GSUdfRFJNX1BBTkVMX0tJTkdESVNQTEFZX0tEMDk3RDA0PW0KK0NPTkZJR19E Uk1fUEFORUxfTEVBRFRFS19MVEswNTBIMzE0Nlc9bQorQ09ORklHX0RSTV9QQU5FTF9MRUFEVEVL X0xUSzUwMEhEMTgyOT1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfTEQ5MDQwPW0KK0NPTkZJ R19EUk1fUEFORUxfTEdfTEIwMzVRMDI9bQorQ09ORklHX0RSTV9QQU5FTF9MR19MRzQ1NzM9bQor Q09ORklHX0RSTV9QQU5FTF9ORUNfTkw4MDQ4SEwxMT1tCitDT05GSUdfRFJNX1BBTkVMX05FV1ZJ U0lPTl9OVjMwNTFEPW0KK0NPTkZJR19EUk1fUEFORUxfTkVXVklTSU9OX05WMzA1MkM9bQorQ09O RklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU1MTA9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVL X05UMzU1NjA9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU5NTA9bQorQ09ORklHX0RS TV9QQU5FTF9OT1ZBVEVLX05UMzY2NzJBPW0KK0NPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM5 MDE2PW0KK0NPTkZJR19EUk1fUEFORUxfTUFOVElYX01MQUYwNTdXRTUxPW0KK0NPTkZJR19EUk1f UEFORUxfT0xJTUVYX0xDRF9PTElOVVhJTk89bQorQ09ORklHX0RSTV9QQU5FTF9PUklTRVRFQ0hf T1RBNTYwMUE9bQorQ09ORklHX0RSTV9QQU5FTF9PUklTRVRFQ0hfT1RNODAwOUE9bQorQ09ORklH X0RSTV9QQU5FTF9PU0RfT1NEMTAxVDI1ODdfNTNUUz1tCitDT05GSUdfRFJNX1BBTkVMX1BBTkFT T05JQ19WVlgxMEYwMzROMDA9bQorQ09ORklHX0RSTV9QQU5FTF9SQVNQQkVSUllQSV9UT1VDSFND UkVFTj1tCitDT05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02NzE5MT1tCitDT05GSUdfRFJNX1BB TkVMX1JBWURJVU1fUk02ODIwMD1tCitDT05GSUdfRFJNX1BBTkVMX1JPTkJPX1JCMDcwRDMwPW0K K0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19BVE5BMzNYQzIwPW0KK0NPTkZJR19EUk1fUEFORUxf U0FNU1VOR19EQjc0MzA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RDE2RDA9bQorQ09O RklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RDI3QTE9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5H X1M2RTNIQTI9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzSjBYMDM9bQorQ09ORklH X0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzTTA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2 RTYzTTBfU1BJPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU2M00wX0RTST1tCitDT05G SUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFODhBMF9BTVM0NTJFRjAxPW0KK0NPTkZJR19EUk1fUEFO RUxfU0FNU1VOR19TNkU4QUEwPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TT0ZFRjAwPW0K K0NPTkZJR19EUk1fUEFORUxfU0VJS09fNDNXVkYxRz1tCitDT05GSUdfRFJNX1BBTkVMX1NIQVJQ X0xRMTAxUjFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwMzdWN0RXMDE9bQorQ09O RklHX0RSTV9QQU5FTF9TSEFSUF9MUzA0M1QxTEUwMT1tCitDT05GSUdfRFJNX1BBTkVMX1NIQVJQ X0xTMDYwVDFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3NzAxPW0KK0NPTkZJ R19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3NzAzPW0KK0NPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhf U1Q3Nzg5Vj1tCitDT05GSUdfRFJNX1BBTkVMX1NPTllfQUNYNTY1QUtNPW0KK0NPTkZJR19EUk1f UEFORUxfU09OWV9UVUxJUF9UUlVMWV9OVDM1NTIxPW0KK0NPTkZJR19EUk1fUEFORUxfVERPX1RM MDcwV1NIMzA9bQorQ09ORklHX0RSTV9QQU5FTF9UUE9fVEQwMjhUVEVDMT1tCitDT05GSUdfRFJN X1BBTkVMX1RQT19URDA0M01URUExPW0KK0NPTkZJR19EUk1fUEFORUxfVFBPX1RQRzExMD1tCitD T05GSUdfRFJNX1BBTkVMX1RSVUxZX05UMzU1OTdfV1FYR0E9bQorQ09ORklHX0RSTV9QQU5FTF9W SVNJT05PWF9STTY5Mjk5PW0KK0NPTkZJR19EUk1fUEFORUxfVklTSU9OT1hfVlREUjYxMzA9bQor Q09ORklHX0RSTV9QQU5FTF9XSURFQ0hJUFNfV1MyNDAxPW0KK0NPTkZJR19EUk1fUEFORUxfWElO UEVOR19YUFAwNTVDMjcyPW0KKyMgZW5kIG9mIERpc3BsYXkgUGFuZWxzCisKK0NPTkZJR19EUk1f QlJJREdFPXkKK0NPTkZJR19EUk1fUEFORUxfQlJJREdFPXkKKworIworIyBEaXNwbGF5IEludGVy ZmFjZSBCcmlkZ2VzCisjCitDT05GSUdfRFJNX0NISVBPTkVfSUNONjIxMT1tCitDT05GSUdfRFJN X0NIUk9OVEVMX0NINzAzMz1tCitDT05GSUdfRFJNX0RJU1BMQVlfQ09OTkVDVE9SPW0KK0NPTkZJ R19EUk1fSVRFX0lUNjUwNT1tCitDT05GSUdfRFJNX0xPTlRJVU1fTFQ4OTEyQj1tCisjIENPTkZJ R19EUk1fTE9OVElVTV9MVDkyMTEgaXMgbm90IHNldAorQ09ORklHX0RSTV9MT05USVVNX0xUOTYx MT1tCitDT05GSUdfRFJNX0xPTlRJVU1fTFQ5NjExVVhDPW0KK0NPTkZJR19EUk1fSVRFX0lUNjYx MjE9bQorQ09ORklHX0RSTV9MVkRTX0NPREVDPW0KK0NPTkZJR19EUk1fTUVHQUNISVBTX1NURFBY WFhYX0dFX0I4NTBWM19GVz1tCitDT05GSUdfRFJNX05XTF9NSVBJX0RTST1tCitDT05GSUdfRFJN X05YUF9QVE4zNDYwPW0KK0NPTkZJR19EUk1fUEFSQURFX1BTODYyMj1tCitDT05GSUdfRFJNX1BB UkFERV9QUzg2NDA9bQorQ09ORklHX0RSTV9TSUxfU0lJODYyMD1tCitDT05GSUdfRFJNX1NJSTkw Mlg9bQorQ09ORklHX0RSTV9TSUk5MjM0PW0KK0NPTkZJR19EUk1fU0lNUExFX0JSSURHRT1tCitD T05GSUdfRFJNX1RISU5FX1RIQzYzTFZEMTAyND1tCitDT05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3 NjI9bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzY0PW0KK0NPTkZJR19EUk1fVE9TSElCQV9U QzM1ODc2Nz1tCitDT05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3Njg9bQorQ09ORklHX0RSTV9UT1NI SUJBX1RDMzU4Nzc1PW0KK0NPTkZJR19EUk1fVElfRExQQzM0MzM9bQorQ09ORklHX0RSTV9USV9U RlA0MTA9bQorQ09ORklHX0RSTV9USV9TTjY1RFNJODM9bQorQ09ORklHX0RSTV9USV9TTjY1RFNJ ODY9bQorQ09ORklHX0RSTV9USV9UUEQxMlMwMTU9bQorQ09ORklHX0RSTV9BTkFMT0dJWF9BTlg2 MzQ1PW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzhYWD1tCitDT05GSUdfRFJNX0FOQUxPR0lY X0RQPW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzYyNT1tCitDT05GSUdfRFJNX0kyQ19BRFY3 NTExPW0KK0NPTkZJR19EUk1fSTJDX0FEVjc1MTFfQVVESU89eQorQ09ORklHX0RSTV9JMkNfQURW NzUxMV9DRUM9eQorQ09ORklHX0RSTV9DRE5TX0RTST1tCitDT05GSUdfRFJNX0NETlNfRFNJX0o3 MjFFPXkKK0NPTkZJR19EUk1fQ0ROU19NSERQODU0Nj1tCitDT05GSUdfRFJNX0RXX0hETUk9bQor Q09ORklHX0RSTV9EV19IRE1JX0FIQl9BVURJTz1tCitDT05GSUdfRFJNX0RXX0hETUlfSTJTX0FV RElPPW0KKyMgQ09ORklHX0RSTV9EV19IRE1JX0dQX0FVRElPIGlzIG5vdCBzZXQKK0NPTkZJR19E Uk1fRFdfSERNSV9DRUM9bQorIyBlbmQgb2YgRGlzcGxheSBJbnRlcmZhY2UgQnJpZGdlcworCitD T05GSUdfRFJNX0VUTkFWSVY9bQorQ09ORklHX0RSTV9FVE5BVklWX1RIRVJNQUw9eQorQ09ORklH X0RSTV9MT0dJQ1ZDPW0KKyMgQ09ORklHX0RSTV9BUkNQR1UgaXMgbm90IHNldAorQ09ORklHX0RS TV9CT0NIUz1tCitDT05GSUdfRFJNX0NJUlJVU19RRU1VPW0KK0NPTkZJR19EUk1fR00xMlUzMjA9 bQorQ09ORklHX0RSTV9QQU5FTF9NSVBJX0RCST1tCitDT05GSUdfRFJNX1NJTVBMRURSTT1tCitD T05GSUdfVElOWURSTV9IWDgzNTdEPW0KK0NPTkZJR19USU5ZRFJNX0lMSTkxNjM9bQorQ09ORklH X1RJTllEUk1fSUxJOTIyNT1tCitDT05GSUdfVElOWURSTV9JTEk5MzQxPW0KK0NPTkZJR19USU5Z RFJNX0lMSTk0ODY9bQorQ09ORklHX1RJTllEUk1fTUkwMjgzUVQ9bQorQ09ORklHX1RJTllEUk1f UkVQQVBFUj1tCitDT05GSUdfVElOWURSTV9TVDc1ODY9bQorQ09ORklHX1RJTllEUk1fU1Q3NzM1 Uj1tCitDT05GSUdfRFJNX0dVRD1tCitDT05GSUdfRFJNX1NTRDEzMFg9bQorQ09ORklHX0RSTV9T U0QxMzBYX0kyQz1tCitDT05GSUdfRFJNX1NTRDEzMFhfU1BJPW0KKyMgQ09ORklHX0RSTV9MRUdB Q1kgaXMgbm90IHNldAorQ09ORklHX0RSTV9QQU5FTF9PUklFTlRBVElPTl9RVUlSS1M9eQorCisj CisjIEZyYW1lIGJ1ZmZlciBEZXZpY2VzCisjCitDT05GSUdfRkJfQ01ETElORT15CitDT05GSUdf RkJfTk9USUZZPXkKK0NPTkZJR19GQj15CitDT05GSUdfRklSTVdBUkVfRURJRD15CitDT05GSUdf RkJfRERDPW0KK0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJF QT15CitDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CitDT05GSUdfRkJfU1lTX0ZJTExSRUNUPW0K K0NPTkZJR19GQl9TWVNfQ09QWUFSRUE9bQorQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQ9bQorIyBD T05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorQ09ORklHX0ZCX1NZU19GT1BTPW0K K0NPTkZJR19GQl9ERUZFUlJFRF9JTz15CitDT05GSUdfRkJfQkFDS0xJR0hUPW0KK0NPTkZJR19G Ql9NT0RFX0hFTFBFUlM9eQorQ09ORklHX0ZCX1RJTEVCTElUVElORz15CisKKyMKKyMgRnJhbWUg YnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5v dCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RU IGlzIG5vdCBzZXQKK0NPTkZJR19GQl9VVkVTQT1tCitDT05GSUdfRkJfRUZJPXkKKyMgQ09ORklH X0ZCX09QRU5DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9OVklESUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUklWQSBpcyBub3Qg c2V0CitDT05GSUdfRkJfSTc0MD1tCisjIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldAorIyBD T05GSUdfRkJfUkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9BVFkgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzMgaXMgbm90IHNldAor IyBDT05GSUdfRkJfU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9ORU9NQUdJQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9LWVJPIGlzIG5v dCBzZXQKKyMgQ09ORklHX0ZCXzNERlggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVk9PRE9PMSBp cyBub3Qgc2V0CisjIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVFJJ REVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BUksgaXMgbm90IHNldAorIyBDT05GSUdfRkJf UE0zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NBUk1JTkUgaXMgbm90IHNldAorQ09ORklHX0ZC X1NIX01PQklMRV9MQ0RDPW0KK0NPTkZJR19GQl9TTVNDVUZYPW0KKyMgQ09ORklHX0ZCX1VETCBp cyBub3Qgc2V0CisjIENPTkZJR19GQl9JQk1fR1hUNDUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19G Ql9HT0xERklTSCBpcyBub3Qgc2V0CitDT05GSUdfRkJfVklSVFVBTD1tCitDT05GSUdfRkJfTUVU Uk9OT01FPW0KK0NPTkZJR19GQl9NQjg2MlhYPW0KK0NPTkZJR19GQl9NQjg2MlhYX1BDSV9HREM9 eQorQ09ORklHX0ZCX01CODYyWFhfSTJDPXkKKyMgQ09ORklHX0ZCX1NJTVBMRSBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9TU0QxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NNNzEyIGlzIG5v dCBzZXQKKyMgZW5kIG9mIEZyYW1lIGJ1ZmZlciBEZXZpY2VzCisKKyMKKyMgQmFja2xpZ2h0ICYg TENEIGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfTENEX0NMQVNTX0RFVklDRT1tCisjIENPTkZJ R19MQ0RfTDRGMDAyNDJUMDMgaXMgbm90IHNldAorIyBDT05GSUdfTENEX0xNUzI4M0dGMDUgaXMg bm90IHNldAorIyBDT05GSUdfTENEX0xUVjM1MFFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9J TEk5MjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9JTEk5MzIwIGlzIG5vdCBzZXQKKyMgQ09O RklHX0xDRF9URE8yNE0gaXMgbm90IHNldAorIyBDT05GSUdfTENEX1ZHRzI0MzJBNCBpcyBub3Qg c2V0CitDT05GSUdfTENEX1BMQVRGT1JNPW0KKyMgQ09ORklHX0xDRF9BTVMzNjlGRzA2IGlzIG5v dCBzZXQKKyMgQ09ORklHX0xDRF9MTVM1MDFLRjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9I WDgzNTcgaXMgbm90IHNldAorQ09ORklHX0xDRF9PVE0zMjI1QT1tCitDT05GSUdfQkFDS0xJR0hU X0NMQVNTX0RFVklDRT15CitDT05GSUdfQkFDS0xJR0hUX0tURDI1Mz1tCitDT05GSUdfQkFDS0xJ R0hUX0tUWjg4NjY9bQorQ09ORklHX0JBQ0tMSUdIVF9MTTM1MzM9bQorQ09ORklHX0JBQ0tMSUdI VF9QV009bQorQ09ORklHX0JBQ0tMSUdIVF9NVDYzNzA9bQorQ09ORklHX0JBQ0tMSUdIVF9RQ09N X1dMRUQ9bQorQ09ORklHX0JBQ0tMSUdIVF9SVDQ4MzE9bQorQ09ORklHX0JBQ0tMSUdIVF9BRFA4 ODYwPW0KK0NPTkZJR19CQUNLTElHSFRfQURQODg3MD1tCitDT05GSUdfQkFDS0xJR0hUX0xNMzYz MEE9bQorQ09ORklHX0JBQ0tMSUdIVF9MTTM2Mzk9bQorQ09ORklHX0JBQ0tMSUdIVF9MUDg1NVg9 bQorQ09ORklHX0JBQ0tMSUdIVF9TS1k4MTQ1Mj1tCitDT05GSUdfQkFDS0xJR0hUX0dQSU89bQor Q09ORklHX0JBQ0tMSUdIVF9MVjUyMDdMUD1tCitDT05GSUdfQkFDS0xJR0hUX0JENjEwNz1tCitD T05GSUdfQkFDS0xJR0hUX0FSQ1hDTk49bQorQ09ORklHX0JBQ0tMSUdIVF9MRUQ9bQorIyBlbmQg b2YgQmFja2xpZ2h0ICYgTENEIGRldmljZSBzdXBwb3J0CisKK0NPTkZJR19WR0FTVEFURT1tCitD T05GSUdfVklERU9NT0RFX0hFTFBFUlM9eQorQ09ORklHX0hETUk9eQorCisjCisjIENvbnNvbGUg ZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworQ09ORklHX1ZHQV9DT05TT0xFPXkKK0NPTkZJR19E VU1NWV9DT05TT0xFPXkKK0NPTkZJR19EVU1NWV9DT05TT0xFX0NPTFVNTlM9ODAKK0NPTkZJR19E VU1NWV9DT05TT0xFX1JPV1M9MjUKK0NPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKK0NPTkZJ R19GUkFNRUJVRkZFUl9DT05TT0xFX0xFR0FDWV9BQ0NFTEVSQVRJT049eQorQ09ORklHX0ZSQU1F QlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlk9eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNP TEVfUk9UQVRJT049eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERUZFUlJFRF9UQUtF T1ZFUiBpcyBub3Qgc2V0CisjIGVuZCBvZiBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQK KworIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CisjIGVuZCBvZiBHcmFwaGljcyBzdXBwb3J0CisK K0NPTkZJR19EUk1fQUNDRUw9eQorQ09ORklHX1NPVU5EPW0KK0NPTkZJR19TT1VORF9PU1NfQ09S RT15CisjIENPTkZJR19TT1VORF9PU1NfQ09SRV9QUkVDTEFJTSBpcyBub3Qgc2V0CitDT05GSUdf U05EPW0KK0NPTkZJR19TTkRfVElNRVI9bQorQ09ORklHX1NORF9QQ009bQorQ09ORklHX1NORF9Q Q01fRUxEPXkKK0NPTkZJR19TTkRfUENNX0lFQzk1OD15CitDT05GSUdfU05EX0RNQUVOR0lORV9Q Q009bQorQ09ORklHX1NORF9IV0RFUD1tCitDT05GSUdfU05EX1NFUV9ERVZJQ0U9bQorQ09ORklH X1NORF9SQVdNSURJPW0KK0NPTkZJR19TTkRfQ09NUFJFU1NfT0ZGTE9BRD1tCitDT05GSUdfU05E X0pBQ0s9eQorQ09ORklHX1NORF9KQUNLX0lOUFVUX0RFVj15CitDT05GSUdfU05EX09TU0VNVUw9 eQorQ09ORklHX1NORF9NSVhFUl9PU1M9bQorQ09ORklHX1NORF9QQ01fT1NTPW0KK0NPTkZJR19T TkRfUENNX09TU19QTFVHSU5TPXkKK0NPTkZJR19TTkRfUENNX1RJTUVSPXkKK0NPTkZJR19TTkRf SFJUSU1FUj1tCitDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTPXkKK0NPTkZJR19TTkRfTUFYX0NB UkRTPTMyCitDT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15CitDT05GSUdfU05EX1BST0NfRlM9 eQorQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15CitDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRL PXkKK0NPTkZJR19TTkRfQ1RMX0ZBU1RfTE9PS1VQPXkKK0NPTkZJR19TTkRfREVCVUc9eQorIyBD T05GSUdfU05EX0RFQlVHX1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX1NORF9QQ01fWFJVTl9E RUJVRz15CisjIENPTkZJR19TTkRfQ1RMX0lOUFVUX1ZBTElEQVRJT04gaXMgbm90IHNldAorIyBD T05GSUdfU05EX0NUTF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSkFDS19JTkpFQ1RJ T05fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NORF9WTUFTVEVSPXkKK0NPTkZJR19TTkRfQ1RM X0xFRD1tCitDT05GSUdfU05EX1NFUVVFTkNFUj1tCitDT05GSUdfU05EX1NFUV9EVU1NWT1tCitD T05GSUdfU05EX1NFUVVFTkNFUl9PU1M9bQorQ09ORklHX1NORF9TRVFfSFJUSU1FUl9ERUZBVUxU PXkKK0NPTkZJR19TTkRfU0VRX01JRElfRVZFTlQ9bQorQ09ORklHX1NORF9TRVFfTUlEST1tCitD T05GSUdfU05EX1NFUV9NSURJX0VNVUw9bQorQ09ORklHX1NORF9TRVFfVklSTUlEST1tCitDT05G SUdfU05EX01QVTQwMV9VQVJUPW0KK0NPTkZJR19TTkRfT1BMM19MSUI9bQorQ09ORklHX1NORF9P UEwzX0xJQl9TRVE9bQorQ09ORklHX1NORF9WWF9MSUI9bQorQ09ORklHX1NORF9BQzk3X0NPREVD PW0KK0NPTkZJR19TTkRfRFJJVkVSUz15CitDT05GSUdfU05EX0RVTU1ZPW0KK0NPTkZJR19TTkRf QUxPT1A9bQorQ09ORklHX1NORF9WSVJNSURJPW0KK0NPTkZJR19TTkRfTVRQQVY9bQorQ09ORklH X1NORF9NVFM2ND1tCitDT05GSUdfU05EX1NFUklBTF9VMTY1NTA9bQorQ09ORklHX1NORF9TRVJJ QUxfR0VORVJJQz1tCitDT05GSUdfU05EX01QVTQwMT1tCitDT05GSUdfU05EX1BPUlRNQU4yWDQ9 bQorQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkU9eQorQ09ORklHX1NORF9BQzk3X1BPV0VSX1NB VkVfREVGQVVMVD0wCitDT05GSUdfU05EX1BDST15CitDT05GSUdfU05EX0FEMTg4OT1tCitDT05G SUdfU05EX0FUSUlYUD1tCitDT05GSUdfU05EX0FUSUlYUF9NT0RFTT1tCitDT05GSUdfU05EX0FV ODgxMD1tCitDT05GSUdfU05EX0FVODgyMD1tCitDT05GSUdfU05EX0FVODgzMD1tCitDT05GSUdf U05EX0FXMj1tCitDT05GSUdfU05EX0JUODdYPW0KKyMgQ09ORklHX1NORF9CVDg3WF9PVkVSQ0xP Q0sgaXMgbm90IHNldAorQ09ORklHX1NORF9DQTAxMDY9bQorQ09ORklHX1NORF9DTUlQQ0k9bQor Q09ORklHX1NORF9PWFlHRU5fTElCPW0KK0NPTkZJR19TTkRfT1hZR0VOPW0KK0NPTkZJR19TTkRf Q1M0MjgxPW0KK0NPTkZJR19TTkRfQ1M0NlhYPW0KK0NPTkZJR19TTkRfQ1M0NlhYX05FV19EU1A9 eQorQ09ORklHX1NORF9DVFhGST1tCitDT05GSUdfU05EX0RBUkxBMjA9bQorQ09ORklHX1NORF9H SU5BMjA9bQorQ09ORklHX1NORF9MQVlMQTIwPW0KK0NPTkZJR19TTkRfREFSTEEyND1tCitDT05G SUdfU05EX0dJTkEyND1tCitDT05GSUdfU05EX0xBWUxBMjQ9bQorQ09ORklHX1NORF9NT05BPW0K K0NPTkZJR19TTkRfTUlBPW0KK0NPTkZJR19TTkRfRUNITzNHPW0KK0NPTkZJR19TTkRfSU5ESUdP PW0KK0NPTkZJR19TTkRfSU5ESUdPSU89bQorQ09ORklHX1NORF9JTkRJR09ESj1tCitDT05GSUdf U05EX0lORElHT0lPWD1tCitDT05GSUdfU05EX0lORElHT0RKWD1tCitDT05GSUdfU05EX0VOUzEz NzA9bQorQ09ORklHX1NORF9FTlMxMzcxPW0KK0NPTkZJR19TTkRfRk04MDE9bQorQ09ORklHX1NO RF9GTTgwMV9URUE1NzVYX0JPT0w9eQorQ09ORklHX1NORF9IRFNQPW0KK0NPTkZJR19TTkRfSERT UE09bQorQ09ORklHX1NORF9JQ0UxNzI0PW0KK0NPTkZJR19TTkRfSU5URUw4WDA9bQorQ09ORklH X1NORF9JTlRFTDhYME09bQorQ09ORklHX1NORF9LT1JHMTIxMj1tCitDT05GSUdfU05EX0xPTEE9 bQorQ09ORklHX1NORF9MWDY0NjRFUz1tCitDT05GSUdfU05EX01JWEFSVD1tCitDT05GSUdfU05E X05NMjU2PW0KK0NPTkZJR19TTkRfUENYSFI9bQorQ09ORklHX1NORF9SSVBUSURFPW0KK0NPTkZJ R19TTkRfUk1FMzI9bQorQ09ORklHX1NORF9STUU5Nj1tCitDT05GSUdfU05EX1JNRTk2NTI9bQor Q09ORklHX1NORF9WSUE4MlhYPW0KK0NPTkZJR19TTkRfVklBODJYWF9NT0RFTT1tCitDT05GSUdf U05EX1ZJUlRVT1NPPW0KK0NPTkZJR19TTkRfVlgyMjI9bQorQ09ORklHX1NORF9ZTUZQQ0k9bQor CisjCisjIEhELUF1ZGlvCisjCitDT05GSUdfU05EX0hEQT1tCitDT05GSUdfU05EX0hEQV9HRU5F UklDX0xFRFM9eQorQ09ORklHX1NORF9IREFfSU5URUw9bQorQ09ORklHX1NORF9IREFfSFdERVA9 eQorQ09ORklHX1NORF9IREFfUkVDT05GSUc9eQorQ09ORklHX1NORF9IREFfSU5QVVRfQkVFUD15 CitDT05GSUdfU05EX0hEQV9JTlBVVF9CRUVQX01PREU9MQorQ09ORklHX1NORF9IREFfUEFUQ0hf TE9BREVSPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1JFQUxURUs9bQorQ09ORklHX1NORF9IREFf Q09ERUNfQU5BTE9HPW0KK0NPTkZJR19TTkRfSERBX0NPREVDX1NJR01BVEVMPW0KK0NPTkZJR19T TkRfSERBX0NPREVDX1ZJQT1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19IRE1JPW0KK0NPTkZJR19T TkRfSERBX0NPREVDX0NJUlJVUz1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DUzg0MDk9bQorQ09O RklHX1NORF9IREFfQ09ERUNfQ09ORVhBTlQ9bQorQ09ORklHX1NORF9IREFfQ09ERUNfQ0EwMTEw PW0KK0NPTkZJR19TTkRfSERBX0NPREVDX0NBMDEzMj1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19D QTAxMzJfRFNQPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0NNRURJQT1tCitDT05GSUdfU05EX0hE QV9DT0RFQ19TSTMwNTQ9bQorQ09ORklHX1NORF9IREFfR0VORVJJQz1tCitDT05GSUdfU05EX0hE QV9QT1dFUl9TQVZFX0RFRkFVTFQ9MQorQ09ORklHX1NORF9IREFfSU5URUxfSERNSV9TSUxFTlRf U1RSRUFNPXkKKyMgQ09ORklHX1NORF9IREFfQ1RMX0RFVl9JRCBpcyBub3Qgc2V0CisjIGVuZCBv ZiBIRC1BdWRpbworCitDT05GSUdfU05EX0hEQV9DT1JFPW0KK0NPTkZJR19TTkRfSERBX0RTUF9M T0FERVI9eQorQ09ORklHX1NORF9IREFfQ09NUE9ORU5UPXkKK0NPTkZJR19TTkRfSERBX0VYVF9D T1JFPW0KK0NPTkZJR19TTkRfSERBX1BSRUFMTE9DX1NJWkU9MTAyNAorQ09ORklHX1NORF9JTlRF TF9EU1BfQ09ORklHPW0KK0NPTkZJR19TTkRfU1BJPXkKK0NPTkZJR19TTkRfVVNCPXkKK0NPTkZJ R19TTkRfVVNCX0FVRElPPW0KK0NPTkZJR19TTkRfVVNCX0FVRElPX1VTRV9NRURJQV9DT05UUk9M TEVSPXkKK0NPTkZJR19TTkRfVVNCX1VBMTAxPW0KK0NPTkZJR19TTkRfVVNCX0NBSUFRPW0KK0NP TkZJR19TTkRfVVNCX0NBSUFRX0lOUFVUPXkKK0NPTkZJR19TTkRfVVNCXzZGSVJFPW0KK0NPTkZJ R19TTkRfVVNCX0hJRkFDRT1tCitDT05GSUdfU05EX0JDRDIwMDA9bQorQ09ORklHX1NORF9VU0Jf TElORTY9bQorQ09ORklHX1NORF9VU0JfUE9EPW0KK0NPTkZJR19TTkRfVVNCX1BPREhEPW0KK0NP TkZJR19TTkRfVVNCX1RPTkVQT1JUPW0KK0NPTkZJR19TTkRfVVNCX1ZBUklBWD1tCitDT05GSUdf U05EX0ZJUkVXSVJFPXkKK0NPTkZJR19TTkRfRklSRVdJUkVfTElCPW0KK0NPTkZJR19TTkRfRElD RT1tCitDT05GSUdfU05EX09YRlc9bQorQ09ORklHX1NORF9JU0lHSFQ9bQorQ09ORklHX1NORF9G SVJFV09SS1M9bQorQ09ORklHX1NORF9CRUJPQj1tCitDT05GSUdfU05EX0ZJUkVXSVJFX0RJR0kw MFg9bQorQ09ORklHX1NORF9GSVJFV0lSRV9UQVNDQU09bQorQ09ORklHX1NORF9GSVJFV0lSRV9N T1RVPW0KK0NPTkZJR19TTkRfRklSRUZBQ0U9bQorQ09ORklHX1NORF9QQ01DSUE9eQorQ09ORklH X1NORF9WWFBPQ0tFVD1tCitDT05GSUdfU05EX1BEQVVESU9DRj1tCitDT05GSUdfU05EX1NPQz1t CitDT05GSUdfU05EX1NPQ19BQzk3X0JVUz15CitDT05GSUdfU05EX1NPQ19HRU5FUklDX0RNQUVO R0lORV9QQ009eQorQ09ORklHX1NORF9TT0NfQ09NUFJFU1M9eQorQ09ORklHX1NORF9TT0NfQURJ PW0KK0NPTkZJR19TTkRfU09DX0FESV9BWElfSTJTPW0KK0NPTkZJR19TTkRfU09DX0FESV9BWElf U1BESUY9bQorQ09ORklHX1NORF9TT0NfQU1EX0FDUD1tCitDT05GSUdfU05EX1NPQ19BTURfQ1pf UlQ1NjQ1X01BQ0g9bQorQ09ORklHX1NORF9BTURfQUNQX0NPTkZJRz1tCisjIENPTkZJR19TTkRf QVRNRUxfU09DIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfQkNNNjNYWF9JMlNfV0hJU1RMRVI9bQor Q09ORklHX1NORF9ERVNJR05XQVJFX0kyUz1tCitDT05GSUdfU05EX0RFU0lHTldBUkVfUENNPXkK KworIworIyBTb0MgQXVkaW8gZm9yIEZyZWVzY2FsZSBDUFVzCisjCisKKyMKKyMgQ29tbW9uIFNv QyBBdWRpbyBvcHRpb25zIGZvciBGcmVlc2NhbGUgQ1BVczoKKyMKK0NPTkZJR19TTkRfU09DX0ZT TF9BU1JDPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9TQUk9bQorQ09ORklHX1NORF9TT0NfRlNMX01R Uz1tCitDT05GSUdfU05EX1NPQ19GU0xfQVVETUlYPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9TU0k9 bQorQ09ORklHX1NORF9TT0NfRlNMX1NQRElGPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9FU0FJPW0K K0NPTkZJR19TTkRfU09DX0ZTTF9NSUNGSUw9bQorQ09ORklHX1NORF9TT0NfRlNMX0VBU1JDPW0K K0NPTkZJR19TTkRfU09DX0ZTTF9YQ1ZSPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9VVElMUz1tCitD T05GSUdfU05EX1NPQ19GU0xfUlBNU0c9bQorQ09ORklHX1NORF9TT0NfSU1YX0FVRE1VWD1tCisj IGVuZCBvZiBTb0MgQXVkaW8gZm9yIEZyZWVzY2FsZSBDUFVzCisKK0NPTkZJR19TTkRfSTJTX0hJ NjIxMF9JMlM9bQorIyBDT05GSUdfU05EX1NPQ19JTUcgaXMgbm90IHNldAorQ09ORklHX1NORF9T T0NfTVRLX0JUQ1ZTRD1tCisKKyMKKyMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFJlbmVzYXMgU29D cworIworQ09ORklHX1NORF9TT0NfU0g0X0ZTST1tCitDT05GSUdfU05EX1NPQ19SQ0FSPW0KK0NP TkZJR19TTkRfU09DX1JaPW0KKyMgZW5kIG9mIFNvQyBBdWRpbyBzdXBwb3J0IGZvciBSZW5lc2Fz IFNvQ3MKKworQ09ORklHX1NORF9TT0NfU09GX1RPUExFVkVMPXkKK0NPTkZJR19TTkRfU09DX1NP Rl9QQ0k9bQorQ09ORklHX1NORF9TT0NfU09GX09GPW0KK0NPTkZJR19TTkRfU09DX1NUQVJGSVZF PW0KK0NPTkZJR19TTkRfU09DX0pINzExMF9URE09bQorCisjCisjIFNUTWljcm9lbGVjdHJvbmlj cyBTVE0zMiBTT0MgYXVkaW8gc3VwcG9ydAorIworIyBlbmQgb2YgU1RNaWNyb2VsZWN0cm9uaWNz IFNUTTMyIFNPQyBhdWRpbyBzdXBwb3J0CisKKyMKKyMgQWxsd2lubmVyIFNvQyBBdWRpbyBzdXBw b3J0CisjCitDT05GSUdfU05EX1NVTjRJX0NPREVDPW0KK0NPTkZJR19TTkRfU1VONElfSTJTPW0K K0NPTkZJR19TTkRfU1VONElfU1BESUY9bQorQ09ORklHX1NORF9TVU41MElfRE1JQz1tCisjIGVu ZCBvZiBBbGx3aW5uZXIgU29DIEF1ZGlvIHN1cHBvcnQKKworQ09ORklHX1NORF9TT0NfWElMSU5Y X0kyUz1tCitDT05GSUdfU05EX1NPQ19YSUxJTlhfQVVESU9fRk9STUFUVEVSPW0KK0NPTkZJR19T TkRfU09DX1hJTElOWF9TUERJRj1tCitDT05GSUdfU05EX1NPQ19YVEZQR0FfSTJTPW0KK0NPTkZJ R19TTkRfU09DX0kyQ19BTkRfU1BJPW0KKworIworIyBDT0RFQyBkcml2ZXJzCisjCitDT05GSUdf U05EX1NPQ19XTV9BRFNQPW0KK0NPTkZJR19TTkRfU09DX0FDOTdfQ09ERUM9bQorQ09ORklHX1NO RF9TT0NfQURBVV9VVElMUz1tCitDT05GSUdfU05EX1NPQ19BREFVMTM3Mj1tCitDT05GSUdfU05E X1NPQ19BREFVMTM3Ml9JMkM9bQorQ09ORklHX1NORF9TT0NfQURBVTEzNzJfU1BJPW0KK0NPTkZJ R19TTkRfU09DX0FEQVUxNzAxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxN1gxPW0KK0NPTkZJR19T TkRfU09DX0FEQVUxNzYxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzYxX0kyQz1tCitDT05GSUdf U05EX1NPQ19BREFVMTc2MV9TUEk9bQorQ09ORklHX1NORF9TT0NfQURBVTcwMDI9bQorQ09ORklH X1NORF9TT0NfQURBVTcxMTg9bQorQ09ORklHX1NORF9TT0NfQURBVTcxMThfSFc9bQorQ09ORklH X1NORF9TT0NfQURBVTcxMThfSTJDPW0KK0NPTkZJR19TTkRfU09DX0FLNDEwND1tCitDT05GSUdf U05EX1NPQ19BSzQxMTg9bQorQ09ORklHX1NORF9TT0NfQUs0Mzc1PW0KK0NPTkZJR19TTkRfU09D X0FLNDQ1OD1tCitDT05GSUdfU05EX1NPQ19BSzQ1NTQ9bQorQ09ORklHX1NORF9TT0NfQUs0NjEz PW0KK0NPTkZJR19TTkRfU09DX0FLNDY0Mj1tCitDT05GSUdfU05EX1NPQ19BSzUzODY9bQorQ09O RklHX1NORF9TT0NfQUs1NTU4PW0KK0NPTkZJR19TTkRfU09DX0FMQzU2MjM9bQorQ09ORklHX1NO RF9TT0NfQVc4NzM4PW0KKyMgQ09ORklHX1NORF9TT0NfQVc4ODM5NSBpcyBub3Qgc2V0CitDT05G SUdfU05EX1NPQ19CRDI4NjIzPW0KK0NPTkZJR19TTkRfU09DX0JUX1NDTz1tCitDT05GSUdfU05E X1NPQ19DUENBUD1tCitDT05GSUdfU05EX1NPQ19DUzM1TDMyPW0KK0NPTkZJR19TTkRfU09DX0NT MzVMMzM9bQorQ09ORklHX1NORF9TT0NfQ1MzNUwzND1tCitDT05GSUdfU05EX1NPQ19DUzM1TDM1 PW0KK0NPTkZJR19TTkRfU09DX0NTMzVMMzY9bQorQ09ORklHX1NORF9TT0NfQ1MzNUw0MV9MSUI9 bQorQ09ORklHX1NORF9TT0NfQ1MzNUw0MT1tCitDT05GSUdfU05EX1NPQ19DUzM1TDQxX1NQST1t CitDT05GSUdfU05EX1NPQ19DUzM1TDQxX0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzM1TDQ1PW0K K0NPTkZJR19TTkRfU09DX0NTMzVMNDVfU1BJPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNDVfSTJD PW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNDJfQ09SRT1tCitDT05GSUdfU05EX1NPQ19DUzQyTDQy PW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNDJfU0RXPW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNTE9 bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw1MV9JMkM9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw1Mj1t CitDT05GSUdfU05EX1NPQ19DUzQyTDU2PW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNzM9bQorQ09O RklHX1NORF9TT0NfQ1M0Mkw4Mz1tCitDT05GSUdfU05EX1NPQ19DUzQyMzQ9bQorQ09ORklHX1NO RF9TT0NfQ1M0MjY1PW0KK0NPTkZJR19TTkRfU09DX0NTNDI3MD1tCitDT05GSUdfU05EX1NPQ19D UzQyNzE9bQorQ09ORklHX1NORF9TT0NfQ1M0MjcxX0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzQy NzFfU1BJPW0KK0NPTkZJR19TTkRfU09DX0NTNDJYWDg9bQorQ09ORklHX1NORF9TT0NfQ1M0MlhY OF9JMkM9bQorQ09ORklHX1NORF9TT0NfQ1M0MzEzMD1tCitDT05GSUdfU05EX1NPQ19DUzQzNDE9 bQorQ09ORklHX1NORF9TT0NfQ1M0MzQ5PW0KK0NPTkZJR19TTkRfU09DX0NTNTNMMzA9bQorQ09O RklHX1NORF9TT0NfQ1gyMDcyWD1tCitDT05GSUdfU05EX1NPQ19EQTcyMTM9bQorQ09ORklHX1NO RF9TT0NfRE1JQz1tCitDT05GSUdfU05EX1NPQ19IRE1JX0NPREVDPW0KK0NPTkZJR19TTkRfU09D X0VTNzEzND1tCitDT05GSUdfU05EX1NPQ19FUzcyNDE9bQorQ09ORklHX1NORF9TT0NfRVM4MzE2 PW0KK0NPTkZJR19TTkRfU09DX0VTODMyNj1tCitDT05GSUdfU05EX1NPQ19FUzgzMjg9bQorQ09O RklHX1NORF9TT0NfRVM4MzI4X0kyQz1tCitDT05GSUdfU05EX1NPQ19FUzgzMjhfU1BJPW0KK0NP TkZJR19TTkRfU09DX0dUTTYwMT1tCitDT05GSUdfU05EX1NPQ19IREE9bQorQ09ORklHX1NORF9T T0NfSUNTNDM0MzI9bQorQ09ORklHX1NORF9TT0NfSURUODIxMDM0PW0KKyMgQ09ORklHX1NORF9T T0NfSU5OT19SSzMwMzYgaXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfTE9DSE5BR0FSX1NDPW0K K0NPTkZJR19TTkRfU09DX01BWDk4MDg4PW0KK0NPTkZJR19TTkRfU09DX01BWDk4MzU3QT1tCitD T05GSUdfU05EX1NPQ19NQVg5ODUwND1tCitDT05GSUdfU05EX1NPQ19NQVg5ODY3PW0KK0NPTkZJ R19TTkRfU09DX01BWDk4OTI3PW0KK0NPTkZJR19TTkRfU09DX01BWDk4NTIwPW0KK0NPTkZJR19T TkRfU09DX01BWDk4MzczPW0KK0NPTkZJR19TTkRfU09DX01BWDk4MzczX0kyQz1tCitDT05GSUdf U05EX1NPQ19NQVg5ODM3M19TRFc9bQorQ09ORklHX1NORF9TT0NfTUFYOTgzOTA9bQorQ09ORklH X1NORF9TT0NfTUFYOTgzOTY9bQorQ09ORklHX1NORF9TT0NfTUFYOTg2MD1tCisjIENPTkZJR19T TkRfU09DX01TTTg5MTZfV0NEX0FOQUxPRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX01T TTg5MTZfV0NEX0RJR0lUQUwgaXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfUENNMTY4MT1tCitD T05GSUdfU05EX1NPQ19QQ00xNzg5PW0KK0NPTkZJR19TTkRfU09DX1BDTTE3ODlfSTJDPW0KK0NP TkZJR19TTkRfU09DX1BDTTE3OVg9bQorQ09ORklHX1NORF9TT0NfUENNMTc5WF9JMkM9bQorQ09O RklHX1NORF9TT0NfUENNMTc5WF9TUEk9bQorQ09ORklHX1NORF9TT0NfUENNMTg2WD1tCitDT05G SUdfU05EX1NPQ19QQ00xODZYX0kyQz1tCitDT05GSUdfU05EX1NPQ19QQ00xODZYX1NQST1tCitD T05GSUdfU05EX1NPQ19QQ00zMDYwPW0KK0NPTkZJR19TTkRfU09DX1BDTTMwNjBfSTJDPW0KK0NP TkZJR19TTkRfU09DX1BDTTMwNjBfU1BJPW0KKyMgQ09ORklHX1NORF9TT0NfUENNMzE2OEFfSTJD IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfUENNMzE2OEFfU1BJIGlzIG5vdCBzZXQKK0NP TkZJR19TTkRfU09DX1BDTTUxMDJBPW0KK0NPTkZJR19TTkRfU09DX1BDTTUxMng9bQorQ09ORklH X1NORF9TT0NfUENNNTEyeF9JMkM9bQorQ09ORklHX1NORF9TT0NfUENNNTEyeF9TUEk9bQorQ09O RklHX1NORF9TT0NfUEVCMjQ2Nj1tCitDT05GSUdfU05EX1NPQ19SSzMzMjg9bQorQ09ORklHX1NO RF9TT0NfUks4MTc9bQorQ09ORklHX1NORF9TT0NfUkw2MjMxPW0KK0NPTkZJR19TTkRfU09DX1JU MTMwOF9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQxMzE2X1NEVz1tCitDT05GSUdfU05EX1NPQ19S VDEzMThfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNTYxNj1tCitDT05GSUdfU05EX1NPQ19SVDU2 MzE9bQorQ09ORklHX1NORF9TT0NfUlQ1NjQwPW0KK0NPTkZJR19TTkRfU09DX1JUNTY0NT1tCitD T05GSUdfU05EX1NPQ19SVDU2NTk9bQorQ09ORklHX1NORF9TT0NfUlQ1NjgyPW0KK0NPTkZJR19T TkRfU09DX1JUNTY4Ml9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ3MDA9bQorQ09ORklHX1NORF9T T0NfUlQ3MDBfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNzExPW0KK0NPTkZJR19TTkRfU09DX1JU NzExX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDcxMV9TRENBX1NEVz1tCitDT05GSUdfU05EX1NP Q19SVDcxMl9TRENBX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDcxNT1tCitDT05GSUdfU05EX1NP Q19SVDcxNV9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ3MTVfU0RDQV9TRFc9bQorQ09ORklHX1NO RF9TT0NfUlQ5MTIwPW0KK0NPTkZJR19TTkRfU09DX1NEV19NT0NLVVA9bQorQ09ORklHX1NORF9T T0NfU0dUTDUwMDA9bQorQ09ORklHX1NORF9TT0NfU0lHTUFEU1A9bQorQ09ORklHX1NORF9TT0Nf U0lHTUFEU1BfSTJDPW0KK0NPTkZJR19TTkRfU09DX1NJR01BRFNQX1JFR01BUD1tCitDT05GSUdf U05EX1NPQ19TSU1QTEVfQU1QTElGSUVSPW0KK0NPTkZJR19TTkRfU09DX1NJTVBMRV9NVVg9bQor Q09ORklHX1NORF9TT0NfU01BMTMwMz1tCitDT05GSUdfU05EX1NPQ19TUERJRj1tCitDT05GSUdf U05EX1NPQ19TUkM0WFhYX0kyQz1tCitDT05GSUdfU05EX1NPQ19TUkM0WFhYPW0KK0NPTkZJR19T TkRfU09DX1NTTTIzMDU9bQorQ09ORklHX1NORF9TT0NfU1NNMjUxOD1tCitDT05GSUdfU05EX1NP Q19TU00yNjAyPW0KK0NPTkZJR19TTkRfU09DX1NTTTI2MDJfU1BJPW0KK0NPTkZJR19TTkRfU09D X1NTTTI2MDJfSTJDPW0KK0NPTkZJR19TTkRfU09DX1NTTTQ1Njc9bQorQ09ORklHX1NORF9TT0Nf U1RBMzJYPW0KK0NPTkZJR19TTkRfU09DX1NUQTM1MD1tCitDT05GSUdfU05EX1NPQ19TVElfU0FT PW0KK0NPTkZJR19TTkRfU09DX1RBUzI1NTI9bQorQ09ORklHX1NORF9TT0NfVEFTMjU2Mj1tCitD T05GSUdfU05EX1NPQ19UQVMyNzY0PW0KK0NPTkZJR19TTkRfU09DX1RBUzI3NzA9bQorQ09ORklH X1NORF9TT0NfVEFTMjc4MD1tCitDT05GSUdfU05EX1NPQ19UQVM1MDg2PW0KK0NPTkZJR19TTkRf U09DX1RBUzU3MVg9bQorQ09ORklHX1NORF9TT0NfVEFTNTcyMD1tCitDT05GSUdfU05EX1NPQ19U QVM1ODA1TT1tCitDT05GSUdfU05EX1NPQ19UQVM2NDI0PW0KK0NPTkZJR19TTkRfU09DX1REQTc0 MTk9bQorQ09ORklHX1NORF9TT0NfVEZBOTg3OT1tCitDT05GSUdfU05EX1NPQ19URkE5ODlYPW0K K0NPTkZJR19TTkRfU09DX1RMVjMyMEFEQzNYWFg9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlD MjM9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMjNfSTJDPW0KK0NPTkZJR19TTkRfU09DX1RM VjMyMEFJQzIzX1NQST1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMzMVhYPW0KK0NPTkZJR19T TkRfU09DX1RMVjMyMEFJQzMyWDQ9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMzJYNF9JMkM9 bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMzJYNF9TUEk9bQorQ09ORklHX1NORF9TT0NfVExW MzIwQUlDM1g9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDM1hfSTJDPW0KK0NPTkZJR19TTkRf U09DX1RMVjMyMEFJQzNYX1NQST1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBRENYMTQwPW0KK0NP TkZJR19TTkRfU09DX1RTM0EyMjdFPW0KK0NPTkZJR19TTkRfU09DX1RTQ1M0MlhYPW0KK0NPTkZJ R19TTkRfU09DX1RTQ1M0NTQ9bQorQ09ORklHX1NORF9TT0NfVURBMTMzND1tCitDT05GSUdfU05E X1NPQ19XQ0RfTUJIQz1tCitDT05GSUdfU05EX1NPQ19XQ0Q5MzhYPW0KK0NPTkZJR19TTkRfU09D X1dDRDkzOFhfU0RXPW0KK0NPTkZJR19TTkRfU09DX1dNODUxMD1tCitDT05GSUdfU05EX1NPQ19X TTg1MjM9bQorQ09ORklHX1NORF9TT0NfV004NTI0PW0KK0NPTkZJR19TTkRfU09DX1dNODU4MD1t CitDT05GSUdfU05EX1NPQ19XTTg3MTE9bQorQ09ORklHX1NORF9TT0NfV004NzI4PW0KK0NPTkZJ R19TTkRfU09DX1dNODczMT1tCitDT05GSUdfU05EX1NPQ19XTTg3MzFfSTJDPW0KK0NPTkZJR19T TkRfU09DX1dNODczMV9TUEk9bQorQ09ORklHX1NORF9TT0NfV004NzM3PW0KK0NPTkZJR19TTkRf U09DX1dNODc0MT1tCitDT05GSUdfU05EX1NPQ19XTTg3NTA9bQorQ09ORklHX1NORF9TT0NfV004 NzUzPW0KK0NPTkZJR19TTkRfU09DX1dNODc3MD1tCitDT05GSUdfU05EX1NPQ19XTTg3NzY9bQor Q09ORklHX1NORF9TT0NfV004NzgyPW0KK0NPTkZJR19TTkRfU09DX1dNODgwND1tCitDT05GSUdf U05EX1NPQ19XTTg4MDRfSTJDPW0KK0NPTkZJR19TTkRfU09DX1dNODgwNF9TUEk9bQorQ09ORklH X1NORF9TT0NfV004OTAzPW0KK0NPTkZJR19TTkRfU09DX1dNODkwND1tCitDT05GSUdfU05EX1NP Q19XTTg5NDA9bQorQ09ORklHX1NORF9TT0NfV004OTYwPW0KK0NPTkZJR19TTkRfU09DX1dNODk2 MT1tCitDT05GSUdfU05EX1NPQ19XTTg5NjI9bQorQ09ORklHX1NORF9TT0NfV004OTc0PW0KK0NP TkZJR19TTkRfU09DX1dNODk3OD1tCitDT05GSUdfU05EX1NPQ19XTTg5ODU9bQorQ09ORklHX1NO RF9TT0NfV1NBODgxWD1tCitDT05GSUdfU05EX1NPQ19XU0E4ODNYPW0KK0NPTkZJR19TTkRfU09D X1pMMzgwNjA9bQorQ09ORklHX1NORF9TT0NfTUFYOTc1OT1tCitDT05GSUdfU05EX1NPQ19NVDYz NTE9bQorQ09ORklHX1NORF9TT0NfTVQ2MzU4PW0KK0NPTkZJR19TTkRfU09DX01UNjY2MD1tCitD T05GSUdfU05EX1NPQ19OQVU4MzE1PW0KK0NPTkZJR19TTkRfU09DX05BVTg1NDA9bQorQ09ORklH X1NORF9TT0NfTkFVODgxMD1tCitDT05GSUdfU05EX1NPQ19OQVU4ODIxPW0KK0NPTkZJR19TTkRf U09DX05BVTg4MjI9bQorQ09ORklHX1NORF9TT0NfTkFVODgyND1tCitDT05GSUdfU05EX1NPQ19U UEE2MTMwQTI9bQorQ09ORklHX1NORF9TT0NfTFBBU1NfTUFDUk9fQ09NTU9OPW0KK0NPTkZJR19T TkRfU09DX0xQQVNTX1dTQV9NQUNSTz1tCitDT05GSUdfU05EX1NPQ19MUEFTU19WQV9NQUNSTz1t CitDT05GSUdfU05EX1NPQ19MUEFTU19SWF9NQUNSTz1tCitDT05GSUdfU05EX1NPQ19MUEFTU19U WF9NQUNSTz1tCisjIGVuZCBvZiBDT0RFQyBkcml2ZXJzCisKK0NPTkZJR19TTkRfU0lNUExFX0NB UkRfVVRJTFM9bQorQ09ORklHX1NORF9TSU1QTEVfQ0FSRD1tCitDT05GSUdfU05EX0FVRElPX0dS QVBIX0NBUkQ9bQorQ09ORklHX1NORF9BVURJT19HUkFQSF9DQVJEMj1tCitDT05GSUdfU05EX0FV RElPX0dSQVBIX0NBUkQyX0NVU1RPTV9TQU1QTEU9bQorQ09ORklHX1NORF9URVNUX0NPTVBPTkVO VD1tCitDT05GSUdfU05EX1ZJUlRJTz1tCitDT05GSUdfQUM5N19CVVM9bQorQ09ORklHX0hJRF9T VVBQT1JUPXkKK0NPTkZJR19ISUQ9eQorQ09ORklHX0hJRF9CQVRURVJZX1NUUkVOR1RIPXkKK0NP TkZJR19ISURSQVc9eQorQ09ORklHX1VISUQ9bQorQ09ORklHX0hJRF9HRU5FUklDPW0KKworIwor IyBTcGVjaWFsIEhJRCBkcml2ZXJzCisjCitDT05GSUdfSElEX0E0VEVDSD1tCitDT05GSUdfSElE X0FDQ1VUT1VDSD1tCitDT05GSUdfSElEX0FDUlVYPW0KK0NPTkZJR19ISURfQUNSVVhfRkY9eQor Q09ORklHX0hJRF9BUFBMRT1tCitDT05GSUdfSElEX0FQUExFSVI9bQorQ09ORklHX0hJRF9BU1VT PW0KK0NPTkZJR19ISURfQVVSRUFMPW0KK0NPTkZJR19ISURfQkVMS0lOPW0KK0NPTkZJR19ISURf QkVUT1BfRkY9bQorQ09ORklHX0hJRF9CSUdCRU5fRkY9bQorQ09ORklHX0hJRF9DSEVSUlk9bQor Q09ORklHX0hJRF9DSElDT05ZPW0KK0NPTkZJR19ISURfQ09SU0FJUj1tCitDT05GSUdfSElEX0NP VUdBUj1tCitDT05GSUdfSElEX01BQ0FMTFk9bQorQ09ORklHX0hJRF9QUk9ESUtFWVM9bQorIyBD T05GSUdfSElEX0NNRURJQSBpcyBub3Qgc2V0CitDT05GSUdfSElEX0NQMjExMj1tCitDT05GSUdf SElEX0NSRUFUSVZFX1NCMDU0MD1tCitDT05GSUdfSElEX0NZUFJFU1M9bQorQ09ORklHX0hJRF9E UkFHT05SSVNFPW0KK0NPTkZJR19EUkFHT05SSVNFX0ZGPXkKK0NPTkZJR19ISURfRU1TX0ZGPW0K K0NPTkZJR19ISURfRUxBTj1tCitDT05GSUdfSElEX0VMRUNPTT1tCitDT05GSUdfSElEX0VMTz1t CitDT05GSUdfSElEX0VWSVNJT049bQorQ09ORklHX0hJRF9FWktFWT1tCitDT05GSUdfSElEX0ZU MjYwPW0KK0NPTkZJR19ISURfR0VNQklSRD1tCitDT05GSUdfSElEX0dGUk09bQorQ09ORklHX0hJ RF9HTE9SSU9VUz1tCitDT05GSUdfSElEX0hPTFRFSz1tCitDT05GSUdfSE9MVEVLX0ZGPXkKK0NP TkZJR19ISURfVklWQUxESV9DT01NT049bQorQ09ORklHX0hJRF9WSVZBTERJPW0KK0NPTkZJR19I SURfR1Q2ODNSPW0KK0NPTkZJR19ISURfS0VZVE9VQ0g9bQorQ09ORklHX0hJRF9LWUU9bQorQ09O RklHX0hJRF9VQ0xPR0lDPW0KK0NPTkZJR19ISURfV0FMVE9QPW0KK0NPTkZJR19ISURfVklFV1NP TklDPW0KK0NPTkZJR19ISURfVlJDMj1tCitDT05GSUdfSElEX1hJQU9NST1tCitDT05GSUdfSElE X0dZUkFUSU9OPW0KK0NPTkZJR19ISURfSUNBREU9bQorQ09ORklHX0hJRF9JVEU9bQorQ09ORklH X0hJRF9KQUJSQT1tCitDT05GSUdfSElEX1RXSU5IQU49bQorQ09ORklHX0hJRF9LRU5TSU5HVE9O PW0KK0NPTkZJR19ISURfTENQT1dFUj1tCitDT05GSUdfSElEX0xFRD1tCitDT05GSUdfSElEX0xF Tk9WTz1tCitDT05GSUdfSElEX0xFVFNLRVRDSD1tCitDT05GSUdfSElEX0xPR0lURUNIPW0KK0NP TkZJR19ISURfTE9HSVRFQ0hfREo9bQorQ09ORklHX0hJRF9MT0dJVEVDSF9ISURQUD1tCitDT05G SUdfTE9HSVRFQ0hfRkY9eQorQ09ORklHX0xPR0lSVU1CTEVQQUQyX0ZGPXkKK0NPTkZJR19MT0dJ Rzk0MF9GRj15CitDT05GSUdfTE9HSVdIRUVMU19GRj15CitDT05GSUdfSElEX01BR0lDTU9VU0U9 bQorQ09ORklHX0hJRF9NQUxUUk9OPW0KK0NPTkZJR19ISURfTUFZRkxBU0g9bQorQ09ORklHX0hJ RF9NRUdBV09STERfRkY9bQorQ09ORklHX0hJRF9SRURSQUdPTj1tCitDT05GSUdfSElEX01JQ1JP U09GVD1tCitDT05GSUdfSElEX01PTlRFUkVZPW0KK0NPTkZJR19ISURfTVVMVElUT1VDSD1tCitD T05GSUdfSElEX05JTlRFTkRPPW0KK0NPTkZJR19OSU5URU5ET19GRj15CitDT05GSUdfSElEX05U ST1tCitDT05GSUdfSElEX05UUklHPW0KK0NPTkZJR19ISURfT1JURUs9bQorQ09ORklHX0hJRF9Q QU5USEVSTE9SRD1tCitDT05GSUdfUEFOVEhFUkxPUkRfRkY9eQorQ09ORklHX0hJRF9QRU5NT1VO VD1tCitDT05GSUdfSElEX1BFVEFMWU5YPW0KK0NPTkZJR19ISURfUElDT0xDRD1tCitDT05GSUdf SElEX1BJQ09MQ0RfRkI9eQorQ09ORklHX0hJRF9QSUNPTENEX0JBQ0tMSUdIVD15CitDT05GSUdf SElEX1BJQ09MQ0RfTENEPXkKK0NPTkZJR19ISURfUElDT0xDRF9MRURTPXkKK0NPTkZJR19ISURf UElDT0xDRF9DSVI9eQorQ09ORklHX0hJRF9QTEFOVFJPTklDUz1tCitDT05GSUdfSElEX1BMQVlT VEFUSU9OPW0KK0NPTkZJR19QTEFZU1RBVElPTl9GRj15CitDT05GSUdfSElEX1BYUkM9bQorQ09O RklHX0hJRF9SQVpFUj1tCitDT05GSUdfSElEX1BSSU1BWD1tCitDT05GSUdfSElEX1JFVFJPREU9 bQorQ09ORklHX0hJRF9ST0NDQVQ9bQorQ09ORklHX0hJRF9TQUlURUs9bQorQ09ORklHX0hJRF9T QU1TVU5HPW0KK0NPTkZJR19ISURfU0VNSVRFSz1tCitDT05GSUdfSElEX1NJR01BTUlDUk89bQor Q09ORklHX0hJRF9TT05ZPW0KK0NPTkZJR19TT05ZX0ZGPXkKK0NPTkZJR19ISURfU1BFRURMSU5L PW0KK0NPTkZJR19ISURfU1RFQU09bQorQ09ORklHX1NURUFNX0ZGPXkKK0NPTkZJR19ISURfU1RF RUxTRVJJRVM9bQorQ09ORklHX0hJRF9TVU5QTFVTPW0KK0NPTkZJR19ISURfUk1JPW0KK0NPTkZJ R19ISURfR1JFRU5BU0lBPW0KK0NPTkZJR19HUkVFTkFTSUFfRkY9eQorQ09ORklHX0hJRF9TTUFS VEpPWVBMVVM9bQorQ09ORklHX1NNQVJUSk9ZUExVU19GRj15CitDT05GSUdfSElEX1RJVk89bQor Q09ORklHX0hJRF9UT1BTRUVEPW0KK0NPTkZJR19ISURfVE9QUkU9bQorQ09ORklHX0hJRF9USElO R009bQorQ09ORklHX0hJRF9USFJVU1RNQVNURVI9bQorQ09ORklHX1RIUlVTVE1BU1RFUl9GRj15 CitDT05GSUdfSElEX1VEUkFXX1BTMz1tCitDT05GSUdfSElEX1UyRlpFUk89bQorQ09ORklHX0hJ RF9XQUNPTT1tCitDT05GSUdfSElEX1dJSU1PVEU9bQorQ09ORklHX0hJRF9YSU5NTz1tCitDT05G SUdfSElEX1pFUk9QTFVTPW0KK0NPTkZJR19aRVJPUExVU19GRj15CitDT05GSUdfSElEX1pZREFD Uk9OPW0KK0NPTkZJR19ISURfU0VOU09SX0hVQj1tCitDT05GSUdfSElEX1NFTlNPUl9DVVNUT01f U0VOU09SPW0KK0NPTkZJR19ISURfQUxQUz1tCitDT05GSUdfSElEX01DUDIyMjE9bQorIyBlbmQg b2YgU3BlY2lhbCBISUQgZHJpdmVycworCisjCisjIEhJRC1CUEYgc3VwcG9ydAorIworIyBlbmQg b2YgSElELUJQRiBzdXBwb3J0CisKKyMKKyMgVVNCIEhJRCBzdXBwb3J0CisjCitDT05GSUdfVVNC X0hJRD1tCitDT05GSUdfSElEX1BJRD15CitDT05GSUdfVVNCX0hJRERFVj15CisKKyMKKyMgVVNC IEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNl dAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFVTQiBISUQgQm9vdCBQ cm90b2NvbCBkcml2ZXJzCisjIGVuZCBvZiBVU0IgSElEIHN1cHBvcnQKKworQ09ORklHX0kyQ19I SUQ9bQorQ09ORklHX0kyQ19ISURfT0Y9bQorQ09ORklHX0kyQ19ISURfT0ZfRUxBTj1tCitDT05G SUdfSTJDX0hJRF9PRl9HT09ESVg9bQorQ09ORklHX0kyQ19ISURfQ09SRT1tCitDT05GSUdfVVNC X09IQ0lfTElUVExFX0VORElBTj15CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9D T01NT049bQorQ09ORklHX1VTQl9MRURfVFJJRz15CitDT05GSUdfVVNCX1VMUElfQlVTPW0KK0NP TkZJR19VU0JfQ09OTl9HUElPPW0KK0NPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKK0NPTkZJR19V U0I9bQorQ09ORklHX1VTQl9QQ0k9eQorQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUz15 CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERUZBVUxU X1BFUlNJU1Q9eQorIyBDT05GSUdfVVNCX0ZFV19JTklUX1JFVFJJRVMgaXMgbm90IHNldAorIyBD T05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT1RHPXkKKyMg Q09ORklHX1VTQl9PVEdfUFJPRFVDVExJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19E SVNBQkxFX0VYVEVSTkFMX0hVQiBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09UR19GU009bQorQ09O RklHX1VTQl9MRURTX1RSSUdHRVJfVVNCUE9SVD1tCitDT05GSUdfVVNCX0FVVE9TVVNQRU5EX0RF TEFZPTIKK0NPTkZJR19VU0JfTU9OPW0KKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZl cnMKKyMKK0NPTkZJR19VU0JfQzY3WDAwX0hDRD1tCitDT05GSUdfVVNCX1hIQ0lfSENEPW0KKyMg Q09ORklHX1VTQl9YSENJX0RCR0NBUCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1hIQ0lfUENJPW0K K0NPTkZJR19VU0JfWEhDSV9QQ0lfUkVORVNBUz1tCitDT05GSUdfVVNCX1hIQ0lfUExBVEZPUk09 bQorQ09ORklHX1VTQl9YSENJX1JDQVI9bQorQ09ORklHX1VTQl9FSENJX0hDRD1tCitDT05GSUdf VVNCX0VIQ0lfUk9PVF9IVUJfVFQ9eQorQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEPXkKK0NP TkZJR19VU0JfRUhDSV9QQ0k9bQorQ09ORklHX1VTQl9FSENJX0ZTTD1tCitDT05GSUdfVVNCX0VI Q0lfSENEX1BMQVRGT1JNPW0KK0NPTkZJR19VU0JfT1hVMjEwSFBfSENEPW0KK0NPTkZJR19VU0Jf SVNQMTE2WF9IQ0Q9bQorQ09ORklHX1VTQl9NQVgzNDIxX0hDRD1tCitDT05GSUdfVVNCX09IQ0lf SENEPW0KK0NPTkZJR19VU0JfT0hDSV9IQ0RfUENJPW0KK0NPTkZJR19VU0JfT0hDSV9IQ0RfU1NC PXkKK0NPTkZJR19VU0JfT0hDSV9IQ0RfUExBVEZPUk09bQorQ09ORklHX1VTQl9VSENJX0hDRD1t CitDT05GSUdfVVNCX1UxMzJfSENEPW0KK0NPTkZJR19VU0JfU0w4MTFfSENEPW0KKyMgQ09ORklH X1VTQl9TTDgxMV9IQ0RfSVNPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU0w4MTFfQ1M9bQorQ09O RklHX1VTQl9SOEE2NjU5N19IQ0Q9bQorQ09ORklHX1VTQl9SRU5FU0FTX1VTQkhTX0hDRD1tCitD T05GSUdfVVNCX0hDRF9CQ01BPW0KK0NPTkZJR19VU0JfSENEX1NTQj1tCisjIENPTkZJR19VU0Jf SENEX1RFU1RfTU9ERSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1JFTkVTQVNfVVNCSFM9bQorCisj CisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworQ09ORklHX1VTQl9BQ009bQorQ09ORklH X1VTQl9QUklOVEVSPW0KK0NPTkZJR19VU0JfV0RNPW0KK0NPTkZJR19VU0JfVE1DPW0KKworIwor IyBOT1RFOiBVU0JfU1RPUkFHRSBkZXBlbmRzIG9uIFNDU0kgYnV0IEJMS19ERVZfU0QgbWF5Cisj CisKKyMKKyMgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGlu Zm8KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT1tCisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfUkVBTFRFSz1tCitDT05GSUdfUkVBTFRFS19B VVRPUE09eQorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9bQorQ09ORklHX1VTQl9TVE9SQUdF X0ZSRUVDT009bQorQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMD1tCitDT05GSUdfVVNCX1NUT1JB R0VfVVNCQVQ9bQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOT1tCitDT05GSUdfVVNCX1NUT1JB R0VfU0REUjU1PW0KK0NPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVD1tCitDT05GSUdfVVNCX1NU T1JBR0VfQUxBVURBPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSD1tCitDT05GSUdfVVNC X1NUT1JBR0VfS0FSTUE9bQorQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0I9bQorQ09O RklHX1VTQl9TVE9SQUdFX0VORV9VQjYyNTA9bQorQ09ORklHX1VTQl9VQVM9bQorCisjCisjIFVT QiBJbWFnaW5nIGRldmljZXMKKyMKK0NPTkZJR19VU0JfTURDODAwPW0KK0NPTkZJR19VU0JfTUlD Uk9URUs9bQorQ09ORklHX1VTQklQX0NPUkU9bQorQ09ORklHX1VTQklQX1ZIQ0lfSENEPW0KK0NP TkZJR19VU0JJUF9WSENJX0hDX1BPUlRTPTgKK0NPTkZJR19VU0JJUF9WSENJX05SX0hDUz0xCitD T05GSUdfVVNCSVBfSE9TVD1tCitDT05GSUdfVVNCSVBfVlVEQz1tCisjIENPTkZJR19VU0JJUF9E RUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIGR1YWwtbW9kZSBjb250cm9sbGVyIGRyaXZlcnMK KyMKK0NPTkZJR19VU0JfQ0ROU19TVVBQT1JUPW0KK0NPTkZJR19VU0JfQ0ROU19IT1NUPXkKK0NP TkZJR19VU0JfQ0ROUzM9bQorQ09ORklHX1VTQl9DRE5TM19HQURHRVQ9eQorQ09ORklHX1VTQl9D RE5TM19IT1NUPXkKK0NPTkZJR19VU0JfQ0ROUzNfU1RBUkZJVkU9bQorQ09ORklHX1VTQl9NVVNC X0hEUkM9bQorQ09ORklHX1VTQl9NVVNCX0hPU1Q9eQorIyBDT05GSUdfVVNCX01VU0JfR0FER0VU IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NVVNCX0RVQUxfUk9MRSBpcyBub3Qgc2V0CisKKyMK KyMgUGxhdGZvcm0gR2x1ZSBMYXllcgorIworQ09ORklHX1VTQl9NVVNCX1NVTlhJPW0KK0NPTkZJ R19VU0JfTVVTQl9QT0xBUkZJUkVfU09DPW0KKworIworIyBNVVNCIERNQSBtb2RlCisjCitDT05G SUdfTVVTQl9QSU9fT05MWT15CitDT05GSUdfVVNCX0RXQzM9bQorQ09ORklHX1VTQl9EV0MzX1VM UEk9eQorIyBDT05GSUdfVVNCX0RXQzNfSE9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRFdD M19HQURHRVQgaXMgbm90IHNldAorQ09ORklHX1VTQl9EV0MzX0RVQUxfUk9MRT15CisKKyMKKyMg UGxhdGZvcm0gR2x1ZSBEcml2ZXIgU3VwcG9ydAorIworQ09ORklHX1VTQl9EV0MzX0hBUFM9bQor Q09ORklHX1VTQl9EV0MzX09GX1NJTVBMRT1tCitDT05GSUdfVVNCX0RXQzI9bQorIyBDT05GSUdf VVNCX0RXQzJfSE9TVCBpcyBub3Qgc2V0CisKKyMKKyMgR2FkZ2V0L0R1YWwtcm9sZSBtb2RlIHJl cXVpcmVzIFVTQiBHYWRnZXQgc3VwcG9ydCB0byBiZSBlbmFibGVkCisjCisjIENPTkZJR19VU0Jf RFdDMl9QRVJJUEhFUkFMIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRFdDMl9EVUFMX1JPTEU9eQor Q09ORklHX1VTQl9EV0MyX1BDST1tCisjIENPTkZJR19VU0JfRFdDMl9ERUJVRyBpcyBub3Qgc2V0 CisjIENPTkZJR19VU0JfRFdDMl9UUkFDS19NSVNTRURfU09GUyBpcyBub3Qgc2V0CitDT05GSUdf VVNCX0NISVBJREVBPW0KKyMgQ09ORklHX1VTQl9DSElQSURFQV9VREMgaXMgbm90IHNldAorQ09O RklHX1VTQl9DSElQSURFQV9IT1NUPXkKK0NPTkZJR19VU0JfQ0hJUElERUFfUENJPW0KK0NPTkZJ R19VU0JfQ0hJUElERUFfTVNNPW0KK0NPTkZJR19VU0JfQ0hJUElERUFfSU1YPW0KK0NPTkZJR19V U0JfQ0hJUElERUFfR0VORVJJQz1tCitDT05GSUdfVVNCX0NISVBJREVBX1RFR1JBPW0KK0NPTkZJ R19VU0JfSVNQMTc2MD1tCitDT05GSUdfVVNCX0lTUDE3NjBfSENEPXkKK0NPTkZJR19VU0JfSVNQ MTc2MF9IT1NUX1JPTEU9eQorIyBDT05GSUdfVVNCX0lTUDE3NjBfR0FER0VUX1JPTEUgaXMgbm90 IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfRFVBTF9ST0xFIGlzIG5vdCBzZXQKKworIworIyBV U0IgcG9ydCBkcml2ZXJzCisjCitDT05GSUdfVVNCX1VTUzcyMD1tCitDT05GSUdfVVNCX1NFUklB TD1tCitDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDPXkKK0NPTkZJR19VU0JfU0VSSUFMX1NJTVBM RT1tCitDT05GSUdfVVNCX1NFUklBTF9BSVJDQUJMRT1tCitDT05GSUdfVVNCX1NFUklBTF9BUksz MTE2PW0KK0NPTkZJR19VU0JfU0VSSUFMX0JFTEtJTj1tCitDT05GSUdfVVNCX1NFUklBTF9DSDM0 MT1tCitDT05GSUdfVVNCX1NFUklBTF9XSElURUhFQVQ9bQorQ09ORklHX1VTQl9TRVJJQUxfRElH SV9BQ0NFTEVQT1JUPW0KK0NPTkZJR19VU0JfU0VSSUFMX0NQMjEwWD1tCitDT05GSUdfVVNCX1NF UklBTF9DWVBSRVNTX004PW0KK0NPTkZJR19VU0JfU0VSSUFMX0VNUEVHPW0KK0NPTkZJR19VU0Jf U0VSSUFMX0ZURElfU0lPPW0KK0NPTkZJR19VU0JfU0VSSUFMX1ZJU09SPW0KK0NPTkZJR19VU0Jf U0VSSUFMX0lQQVE9bQorQ09ORklHX1VTQl9TRVJJQUxfSVI9bQorQ09ORklHX1VTQl9TRVJJQUxf RURHRVBPUlQ9bQorQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEk9bQorQ09ORklHX1VTQl9T RVJJQUxfRjgxMjMyPW0KK0NPTkZJR19VU0JfU0VSSUFMX0Y4MTUzWD1tCitDT05GSUdfVVNCX1NF UklBTF9HQVJNSU49bQorQ09ORklHX1VTQl9TRVJJQUxfSVBXPW0KK0NPTkZJR19VU0JfU0VSSUFM X0lVVT1tCitDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQT1tCitDT05GSUdfVVNCX1NFUklB TF9LRVlTUEFOPW0KK0NPTkZJR19VU0JfU0VSSUFMX0tMU0k9bQorQ09ORklHX1VTQl9TRVJJQUxf S09CSUxfU0NUPW0KK0NPTkZJR19VU0JfU0VSSUFMX01DVF9VMjMyPW0KK0NPTkZJR19VU0JfU0VS SUFMX01FVFJPPW0KK0NPTkZJR19VU0JfU0VSSUFMX01PUzc3MjA9bQorQ09ORklHX1VTQl9TRVJJ QUxfTU9TNzcxNV9QQVJQT1JUPXkKK0NPTkZJR19VU0JfU0VSSUFMX01PUzc4NDA9bQorQ09ORklH X1VTQl9TRVJJQUxfTVhVUE9SVD1tCitDT05GSUdfVVNCX1NFUklBTF9OQVZNQU49bQorQ09ORklH X1VTQl9TRVJJQUxfUEwyMzAzPW0KK0NPTkZJR19VU0JfU0VSSUFMX09USTY4NTg9bQorQ09ORklH X1VTQl9TRVJJQUxfUUNBVVg9bQorQ09ORklHX1VTQl9TRVJJQUxfUVVBTENPTU09bQorQ09ORklH X1VTQl9TRVJJQUxfU1BDUDhYNT1tCitDT05GSUdfVVNCX1NFUklBTF9TQUZFPW0KK0NPTkZJR19V U0JfU0VSSUFMX1NBRkVfUEFEREVEPXkKK0NPTkZJR19VU0JfU0VSSUFMX1NJRVJSQVdJUkVMRVNT PW0KK0NPTkZJR19VU0JfU0VSSUFMX1NZTUJPTD1tCitDT05GSUdfVVNCX1NFUklBTF9UST1tCitD T05GSUdfVVNCX1NFUklBTF9DWUJFUkpBQ0s9bQorQ09ORklHX1VTQl9TRVJJQUxfV1dBTj1tCitD T05GSUdfVVNCX1NFUklBTF9PUFRJT049bQorQ09ORklHX1VTQl9TRVJJQUxfT01OSU5FVD1tCitD T05GSUdfVVNCX1NFUklBTF9PUFRJQ09OPW0KK0NPTkZJR19VU0JfU0VSSUFMX1hTRU5TX01UPW0K K0NPTkZJR19VU0JfU0VSSUFMX1dJU0hCT05FPW0KK0NPTkZJR19VU0JfU0VSSUFMX1NTVTEwMD1t CitDT05GSUdfVVNCX1NFUklBTF9RVDI9bQorQ09ORklHX1VTQl9TRVJJQUxfVVBENzhGMDczMD1t CitDT05GSUdfVVNCX1NFUklBTF9YUj1tCitDT05GSUdfVVNCX1NFUklBTF9ERUJVRz1tCisKKyMK KyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworQ09ORklHX1VTQl9FTUk2Mj1tCitDT05G SUdfVVNCX0VNSTI2PW0KK0NPTkZJR19VU0JfQURVVFVYPW0KK0NPTkZJR19VU0JfU0VWU0VHPW0K K0NPTkZJR19VU0JfTEVHT1RPV0VSPW0KK0NPTkZJR19VU0JfTENEPW0KK0NPTkZJR19VU0JfQ1lQ UkVTU19DWTdDNjM9bQorQ09ORklHX1VTQl9DWVRIRVJNPW0KK0NPTkZJR19VU0JfSURNT1VTRT1t CitDT05GSUdfVVNCX0ZURElfRUxBTj1tCitDT05GSUdfVVNCX0FQUExFRElTUExBWT1tCitDT05G SUdfQVBQTEVfTUZJX0ZBU1RDSEFSR0U9bQorQ09ORklHX1VTQl9TSVNVU0JWR0E9bQorQ09ORklH X1VTQl9MRD1tCitDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SPW0KK0NPTkZJR19VU0JfSU9XQVJS SU9SPW0KKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhTRVRfVEVT VF9GSVhUVVJFPW0KK0NPTkZJR19VU0JfSVNJR0hURlc9bQorQ09ORklHX1VTQl9ZVVJFWD1tCitD T05GSUdfVVNCX0VaVVNCX0ZYMj1tCitDT05GSUdfVVNCX0hVQl9VU0IyNTFYQj1tCitDT05GSUdf VVNCX0hTSUNfVVNCMzUwMz1tCitDT05GSUdfVVNCX0hTSUNfVVNCNDYwND1tCitDT05GSUdfVVNC X0xJTktfTEFZRVJfVEVTVD1tCisjIENPTkZJR19VU0JfQ0hBT1NLRVkgaXMgbm90IHNldAorQ09O RklHX1VTQl9PTkJPQVJEX0hVQj1tCitDT05GSUdfVVNCX0FUTT1tCitDT05GSUdfVVNCX1NQRUVE VE9VQ0g9bQorQ09ORklHX1VTQl9DWEFDUlU9bQorQ09ORklHX1VTQl9VRUFHTEVBVE09bQorQ09O RklHX1VTQl9YVVNCQVRNPW0KKworIworIyBVU0IgUGh5c2ljYWwgTGF5ZXIgZHJpdmVycworIwor Q09ORklHX1VTQl9QSFk9eQorQ09ORklHX05PUF9VU0JfWENFSVY9bQorIyBDT05GSUdfVVNCX0dQ SU9fVkJVUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0lTUDEzMDE9bQorIyBlbmQgb2YgVVNCIFBo eXNpY2FsIExheWVyIGRyaXZlcnMKKworQ09ORklHX1VTQl9HQURHRVQ9bQorIyBDT05GSUdfVVNC X0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVT IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRlMgaXMgbm90IHNldAorQ09O RklHX1VTQl9HQURHRVRfVkJVU19EUkFXPTIKK0NPTkZJR19VU0JfR0FER0VUX1NUT1JBR0VfTlVN X0JVRkZFUlM9MgorQ09ORklHX1VfU0VSSUFMX0NPTlNPTEU9eQorCisjCisjIFVTQiBQZXJpcGhl cmFsIENvbnRyb2xsZXIKKyMKKyMgQ09ORklHX1VTQl9HUl9VREMgaXMgbm90IHNldAorIyBDT05G SUdfVVNCX1I4QTY2NTk3IGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfUkVORVNBU19VU0JIU19VREM9 bQorQ09ORklHX1VTQl9SRU5FU0FTX1VTQjM9bQorQ09ORklHX1VTQl9SRU5FU0FTX1VTQkY9bQor IyBDT05GSUdfVVNCX1BYQTI3WCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTVZfVURDIGlzIG5v dCBzZXQKKyMgQ09ORklHX1VTQl9NVl9VM0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9TTlBfQ09S RT1tCitDT05GSUdfVVNCX1NOUF9VRENfUExBVD1tCisjIENPTkZJR19VU0JfTTY2NTkyIGlzIG5v dCBzZXQKK0NPTkZJR19VU0JfQkRDX1VEQz1tCisjIENPTkZJR19VU0JfQU1ENTUzNlVEQyBpcyBu b3Qgc2V0CisjIENPTkZJR19VU0JfTkVUMjI3MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTkVU MjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR09LVSBpcyBub3Qgc2V0CisjIENPTkZJR19V U0JfRUcyMFQgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfWElMSU5YPW0KK0NPTkZJR19V U0JfTUFYMzQyMF9VREM9bQorIyBDT05GSUdfVVNCX0RVTU1ZX0hDRCBpcyBub3Qgc2V0CisjIGVu ZCBvZiBVU0IgUGVyaXBoZXJhbCBDb250cm9sbGVyCisKK0NPTkZJR19VU0JfTElCQ09NUE9TSVRF PW0KK0NPTkZJR19VU0JfRl9BQ009bQorQ09ORklHX1VTQl9GX1NTX0xCPW0KK0NPTkZJR19VU0Jf VV9TRVJJQUw9bQorQ09ORklHX1VTQl9VX0VUSEVSPW0KK0NPTkZJR19VU0JfVV9BVURJTz1tCitD T05GSUdfVVNCX0ZfU0VSSUFMPW0KK0NPTkZJR19VU0JfRl9PQkVYPW0KK0NPTkZJR19VU0JfRl9O Q009bQorQ09ORklHX1VTQl9GX0VDTT1tCitDT05GSUdfVVNCX0ZfUEhPTkVUPW0KK0NPTkZJR19V U0JfRl9FRU09bQorQ09ORklHX1VTQl9GX1NVQlNFVD1tCitDT05GSUdfVVNCX0ZfUk5ESVM9bQor Q09ORklHX1VTQl9GX01BU1NfU1RPUkFHRT1tCitDT05GSUdfVVNCX0ZfRlM9bQorQ09ORklHX1VT Ql9GX1VBQzE9bQorQ09ORklHX1VTQl9GX1VBQzI9bQorQ09ORklHX1VTQl9GX1VWQz1tCitDT05G SUdfVVNCX0ZfTUlEST1tCitDT05GSUdfVVNCX0ZfSElEPW0KK0NPTkZJR19VU0JfRl9QUklOVEVS PW0KK0NPTkZJR19VU0JfRl9UQ009bQorQ09ORklHX1VTQl9DT05GSUdGUz1tCitDT05GSUdfVVNC X0NPTkZJR0ZTX1NFUklBTD15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0FDTT15CitDT05GSUdfVVNC X0NPTkZJR0ZTX09CRVg9eQorQ09ORklHX1VTQl9DT05GSUdGU19OQ009eQorQ09ORklHX1VTQl9D T05GSUdGU19FQ009eQorQ09ORklHX1VTQl9DT05GSUdGU19FQ01fU1VCU0VUPXkKK0NPTkZJR19V U0JfQ09ORklHRlNfUk5ESVM9eQorQ09ORklHX1VTQl9DT05GSUdGU19FRU09eQorQ09ORklHX1VT Ql9DT05GSUdGU19QSE9ORVQ9eQorQ09ORklHX1VTQl9DT05GSUdGU19NQVNTX1NUT1JBR0U9eQor Q09ORklHX1VTQl9DT05GSUdGU19GX0xCX1NTPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9GUz15 CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfVUFDMT15CisjIENPTkZJR19VU0JfQ09ORklHRlNfRl9V QUMxX0xFR0FDWSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfVUFDMj15CitDT05G SUdfVVNCX0NPTkZJR0ZTX0ZfTUlEST15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfSElEPXkKK0NP TkZJR19VU0JfQ09ORklHRlNfRl9VVkM9eQorQ09ORklHX1VTQl9DT05GSUdGU19GX1BSSU5URVI9 eQorQ09ORklHX1VTQl9DT05GSUdGU19GX1RDTT15CisKKyMKKyMgVVNCIEdhZGdldCBwcmVjb21w b3NlZCBjb25maWd1cmF0aW9ucworIworIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09O RklHX1VTQl9BVURJTz1tCisjIENPTkZJR19HQURHRVRfVUFDMSBpcyBub3Qgc2V0CitDT05GSUdf VVNCX0VUSD1tCitDT05GSUdfVVNCX0VUSF9STkRJUz15CitDT05GSUdfVVNCX0VUSF9FRU09eQor Q09ORklHX1VTQl9HX05DTT1tCitDT05GSUdfVVNCX0dBREdFVEZTPW0KK0NPTkZJR19VU0JfRlVO Q1RJT05GUz1tCitDT05GSUdfVVNCX0ZVTkNUSU9ORlNfRVRIPXkKK0NPTkZJR19VU0JfRlVOQ1RJ T05GU19STkRJUz15CitDT05GSUdfVVNCX0ZVTkNUSU9ORlNfR0VORVJJQz15CitDT05GSUdfVVNC X01BU1NfU1RPUkFHRT1tCitDT05GSUdfVVNCX0dBREdFVF9UQVJHRVQ9bQorQ09ORklHX1VTQl9H X1NFUklBTD1tCitDT05GSUdfVVNCX01JRElfR0FER0VUPW0KK0NPTkZJR19VU0JfR19QUklOVEVS PW0KK0NPTkZJR19VU0JfQ0RDX0NPTVBPU0lURT1tCitDT05GSUdfVVNCX0dfTk9LSUE9bQorQ09O RklHX1VTQl9HX0FDTV9NUz1tCitDT05GSUdfVVNCX0dfTVVMVEk9bQorQ09ORklHX1VTQl9HX01V TFRJX1JORElTPXkKK0NPTkZJR19VU0JfR19NVUxUSV9DREM9eQorQ09ORklHX1VTQl9HX0hJRD1t CitDT05GSUdfVVNCX0dfREJHUD1tCisjIENPTkZJR19VU0JfR19EQkdQX1BSSU5USyBpcyBub3Qg c2V0CitDT05GSUdfVVNCX0dfREJHUF9TRVJJQUw9eQorQ09ORklHX1VTQl9HX1dFQkNBTT1tCitD T05GSUdfVVNCX1JBV19HQURHRVQ9bQorIyBlbmQgb2YgVVNCIEdhZGdldCBwcmVjb21wb3NlZCBj b25maWd1cmF0aW9ucworCitDT05GSUdfVFlQRUM9bQorQ09ORklHX1RZUEVDX1RDUE09bQorQ09O RklHX1RZUEVDX1RDUENJPW0KK0NPTkZJR19UWVBFQ19SVDE3MTFIPW0KK0NPTkZJR19UWVBFQ19U Q1BDSV9NVDYzNzA9bQorQ09ORklHX1RZUEVDX1RDUENJX01BWElNPW0KK0NPTkZJR19UWVBFQ19G VVNCMzAyPW0KK0NPTkZJR19UWVBFQ19VQ1NJPW0KK0NPTkZJR19VQ1NJX0NDRz1tCitDT05GSUdf VUNTSV9TVE0zMkcwPW0KK0NPTkZJR19UWVBFQ19UUFM2NTk4WD1tCitDT05GSUdfVFlQRUNfQU5Y NzQxMT1tCitDT05GSUdfVFlQRUNfUlQxNzE5PW0KK0NPTkZJR19UWVBFQ19IRDNTUzMyMjA9bQor Q09ORklHX1RZUEVDX1NUVVNCMTYwWD1tCitDT05GSUdfVFlQRUNfV1VTQjM4MDE9bQorCisjCisj IFVTQiBUeXBlLUMgTXVsdGlwbGV4ZXIvRGVNdWx0aXBsZXhlciBTd2l0Y2ggc3VwcG9ydAorIwor Q09ORklHX1RZUEVDX01VWF9GU0E0NDgwPW0KK0NPTkZJR19UWVBFQ19NVVhfR1BJT19TQlU9bQor Q09ORklHX1RZUEVDX01VWF9QSTNVU0IzMDUzMj1tCisjIGVuZCBvZiBVU0IgVHlwZS1DIE11bHRp cGxleGVyL0RlTXVsdGlwbGV4ZXIgU3dpdGNoIHN1cHBvcnQKKworIworIyBVU0IgVHlwZS1DIEFs dGVybmF0ZSBNb2RlIGRyaXZlcnMKKyMKK0NPTkZJR19UWVBFQ19EUF9BTFRNT0RFPW0KK0NPTkZJ R19UWVBFQ19OVklESUFfQUxUTU9ERT1tCisjIGVuZCBvZiBVU0IgVHlwZS1DIEFsdGVybmF0ZSBN b2RlIGRyaXZlcnMKKworQ09ORklHX1VTQl9ST0xFX1NXSVRDSD1tCitDT05GSUdfTU1DPW0KK0NP TkZJR19QV1JTRVFfRU1NQz1tCitDT05GSUdfUFdSU0VRX1NEODc4Nz1tCitDT05GSUdfUFdSU0VR X1NJTVBMRT1tCitDT05GSUdfTU1DX0JMT0NLPW0KK0NPTkZJR19NTUNfQkxPQ0tfTUlOT1JTPTgK K0NPTkZJR19TRElPX1VBUlQ9bQorIyBDT05GSUdfTU1DX1RFU1QgaXMgbm90IHNldAorQ09ORklH X01NQ19DUllQVE89eQorCisjCisjIE1NQy9TRC9TRElPIEhvc3QgQ29udHJvbGxlciBEcml2ZXJz CisjCisjIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX01NQ19BUk1NTUNJPW0K K0NPTkZJR19NTUNfU1RNMzJfU0RNTUM9eQorQ09ORklHX01NQ19TREhDST1tCitDT05GSUdfTU1D X1NESENJX0lPX0FDQ0VTU09SUz15CitDT05GSUdfTU1DX1NESENJX1BDST1tCitDT05GSUdfTU1D X1JJQ09IX01NQz15CitDT05GSUdfTU1DX1NESENJX1BMVEZNPW0KK0NPTkZJR19NTUNfU0RIQ0lf T0ZfQVJBU0FOPW0KKyMgQ09ORklHX01NQ19TREhDSV9PRl9BVDkxIGlzIG5vdCBzZXQKK0NPTkZJ R19NTUNfU0RIQ0lfT0ZfRFdDTVNIQz1tCitDT05GSUdfTU1DX1NESENJX0NBREVOQ0U9bQorQ09O RklHX01NQ19TREhDSV9GX1NESDMwPW0KKyMgQ09ORklHX01NQ19TREhDSV9NSUxCRUFVVCBpcyBu b3Qgc2V0CitDT05GSUdfTU1DX0FMQ09SPW0KK0NPTkZJR19NTUNfVElGTV9TRD1tCisjIENPTkZJ R19NTUNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfU0RSSUNPSF9DUz1tCitDT05GSUdfTU1D X1RNSU9fQ09SRT1tCitDT05GSUdfTU1DX1NESEk9bQorQ09ORklHX01NQ19TREhJX1NZU19ETUFD PW0KK0NPTkZJR19NTUNfQ0I3MTA9bQorQ09ORklHX01NQ19WSUFfU0RNTUM9bQorQ09ORklHX01N Q19EVz1tCitDT05GSUdfTU1DX0RXX1BMVEZNPW0KK0NPTkZJR19NTUNfRFdfQkxVRUZJRUxEPW0K K0NPTkZJR19NTUNfRFdfRVhZTk9TPW0KK0NPTkZJR19NTUNfRFdfSEkzNzk4Q1YyMDA9bQorQ09O RklHX01NQ19EV19LMz1tCitDT05GSUdfTU1DX0RXX1BDST1tCitDT05GSUdfTU1DX0RXX1NUQVJG SVZFPW0KK0NPTkZJR19NTUNfU0hfTU1DSUY9bQorQ09ORklHX01NQ19WVUIzMDA9bQorQ09ORklH X01NQ19VU0hDPW0KK0NPTkZJR19NTUNfVVNESEk2Uk9MMD1tCitDT05GSUdfTU1DX1JFQUxURUtf UENJPW0KK0NPTkZJR19NTUNfUkVBTFRFS19VU0I9bQorQ09ORklHX01NQ19TVU5YST1tCitDT05G SUdfTU1DX0NRSENJPW0KK0NPTkZJR19NTUNfSFNRPW0KK0NPTkZJR19NTUNfVE9TSElCQV9QQ0k9 bQorQ09ORklHX01NQ19NVEs9bQorQ09ORklHX01NQ19TREhDSV9YRU5PTj1tCisjIENPTkZJR19N TUNfU0RIQ0lfT01BUCBpcyBub3Qgc2V0CitDT05GSUdfTU1DX1NESENJX0FNNjU0PW0KK0NPTkZJ R19TQ1NJX1VGU0hDRD1tCitDT05GSUdfU0NTSV9VRlNfQlNHPXkKK0NPTkZJR19TQ1NJX1VGU19D UllQVE89eQorQ09ORklHX1NDU0lfVUZTX0hQQj15CitDT05GSUdfU0NTSV9VRlNfSFdNT049eQor Q09ORklHX1NDU0lfVUZTSENEX1BDST1tCisjIENPTkZJR19TQ1NJX1VGU19EV0NfVENfUENJIGlz IG5vdCBzZXQKK0NPTkZJR19TQ1NJX1VGU0hDRF9QTEFURk9STT1tCitDT05GSUdfU0NTSV9VRlNf Q0ROU19QTEFURk9STT1tCisjIENPTkZJR19TQ1NJX1VGU19EV0NfVENfUExBVEZPUk0gaXMgbm90 IHNldAorQ09ORklHX1NDU0lfVUZTX1JFTkVTQVM9bQorQ09ORklHX01FTVNUSUNLPW0KKyMgQ09O RklHX01FTVNUSUNLX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBNZW1vcnlTdGljayBkcml2ZXJz CisjCisjIENPTkZJR19NRU1TVElDS19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKK0NPTkZJR19N U1BST19CTE9DSz1tCitDT05GSUdfTVNfQkxPQ0s9bQorCisjCisjIE1lbW9yeVN0aWNrIEhvc3Qg Q29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfTUVNU1RJQ0tfVElGTV9NUz1tCitDT05GSUdf TUVNU1RJQ0tfSk1JQ1JPTl8zOFg9bQorQ09ORklHX01FTVNUSUNLX1I1OTI9bQorQ09ORklHX01F TVNUSUNLX1JFQUxURUtfUENJPW0KK0NPTkZJR19NRU1TVElDS19SRUFMVEVLX1VTQj1tCitDT05G SUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorQ09ORklHX0xFRFNfQ0xBU1NfRkxB U0g9bQorQ09ORklHX0xFRFNfQ0xBU1NfTVVMVElDT0xPUj1tCitDT05GSUdfTEVEU19CUklHSFRO RVNTX0hXX0NIQU5HRUQ9eQorCisjCisjIExFRCBkcml2ZXJzCisjCitDT05GSUdfTEVEU19BTjMw MjU5QT1tCitDT05GSUdfTEVEU19BVzIwMTM9bQorIyBDT05GSUdfTEVEU19CQ002MzI4IGlzIG5v dCBzZXQKKyMgQ09ORklHX0xFRFNfQkNNNjM1OCBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19DUENB UD1tCitDT05GSUdfTEVEU19DUjAwMTQxMTQ9bQorQ09ORklHX0xFRFNfRUwxNTIwMzAwMD1tCitD T05GSUdfTEVEU19MTTM1MzA9bQorQ09ORklHX0xFRFNfTE0zNTMyPW0KK0NPTkZJR19MRURTX0xN MzUzMz1tCitDT05GSUdfTEVEU19MTTM2NDI9bQorQ09ORklHX0xFRFNfTE0zNjkyWD1tCitDT05G SUdfTEVEU19QQ0E5NTMyPW0KK0NPTkZJR19MRURTX1BDQTk1MzJfR1BJTz15CitDT05GSUdfTEVE U19HUElPPW0KK0NPTkZJR19MRURTX0xQMzk0ND1tCitDT05GSUdfTEVEU19MUDM5NTI9bQorQ09O RklHX0xFRFNfTFA1MFhYPW0KK0NPTkZJR19MRURTX0xQNTVYWF9DT01NT049bQorQ09ORklHX0xF RFNfTFA1NTIxPW0KK0NPTkZJR19MRURTX0xQNTUyMz1tCitDT05GSUdfTEVEU19MUDU1NjI9bQor Q09ORklHX0xFRFNfTFA4NTAxPW0KK0NPTkZJR19MRURTX0xQODg2MD1tCitDT05GSUdfTEVEU19Q Q0E5NTVYPW0KK0NPTkZJR19MRURTX1BDQTk1NVhfR1BJTz15CitDT05GSUdfTEVEU19QQ0E5NjNY PW0KKyMgQ09ORklHX0xFRFNfREFDMTI0UzA4NSBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19QV009 bQorIyBDT05GSUdfTEVEU19SRUdVTEFUT1IgaXMgbm90IHNldAorQ09ORklHX0xFRFNfQkQyODAy PW0KK0NPTkZJR19MRURTX0xUMzU5Mz1tCitDT05GSUdfTEVEU19UQ0E2NTA3PW0KKyMgQ09ORklH X0xFRFNfVExDNTkxWFggaXMgbm90IHNldAorQ09ORklHX0xFRFNfTUFYNzc2NTA9bQorQ09ORklH X0xFRFNfTE0zNTV4PW0KK0NPTkZJR19MRURTX01FTkYyMUJNQz1tCitDT05GSUdfTEVEU19JUzMx RkwzMTlYPW0KK0NPTkZJR19MRURTX0lTMzFGTDMyWFg9bQorCisjCisjIExFRCBkcml2ZXIgZm9y IGJsaW5rKDEpIFVTQiBSR0IgTEVEIGlzIHVuZGVyIFNwZWNpYWwgSElEIGRyaXZlcnMgKEhJRF9U SElOR00pCisjCitDT05GSUdfTEVEU19CTElOS009bQorQ09ORklHX0xFRFNfU1lTQ09OPXkKK0NP TkZJR19MRURTX01MWFJFRz1tCitDT05GSUdfTEVEU19VU0VSPW0KK0NPTkZJR19MRURTX1NQSV9C WVRFPW0KK0NPTkZJR19MRURTX1RJX0xNVV9DT01NT049bQorQ09ORklHX0xFRFNfTE0zNjk3PW0K K0NPTkZJR19MRURTX0xNMzYyNzQ9bQorCisjCisjIEZsYXNoIGFuZCBUb3JjaCBMRUQgZHJpdmVy cworIworIyBDT05GSUdfTEVEU19BQVQxMjkwIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0FTMzY0 NUE9bQorIyBDT05GSUdfTEVEU19LVEQyNjkyIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0xNMzYw MVg9bQorQ09ORklHX0xFRFNfUlQ0NTA1PW0KK0NPTkZJR19MRURTX1JUODUxNT1tCitDT05GSUdf TEVEU19TR00zMTQwPW0KKworIworIyBSR0IgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19MRURTX1BX TV9NVUxUSUNPTE9SPW0KK0NPTkZJR19MRURTX1FDT01fTFBHPW0KKworIworIyBMRUQgVHJpZ2dl cnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9 bQorQ09ORklHX0xFRFNfVFJJR0dFUl9PTkVTSE9UPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfRElT Sz15CitDT05GSUdfTEVEU19UUklHR0VSX01URD15CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJU QkVBVD1tCitDT05GSUdfTEVEU19UUklHR0VSX0JBQ0tMSUdIVD1tCitDT05GSUdfTEVEU19UUklH R0VSX0NQVT15CitDT05GSUdfTEVEU19UUklHR0VSX0FDVElWSVRZPW0KK0NPTkZJR19MRURTX1RS SUdHRVJfR1BJTz1tCitDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT049bQorCisjCisjIGlw dGFibGVzIHRyaWdnZXIgaXMgdW5kZXIgTmV0ZmlsdGVyIGNvbmZpZyAoTEVEIHRhcmdldCkKKyMK K0NPTkZJR19MRURTX1RSSUdHRVJfVFJBTlNJRU5UPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfQ0FN RVJBPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfUEFOSUM9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9O RVRERVY9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9QQVRURVJOPW0KK0NPTkZJR19MRURTX1RSSUdH RVJfQVVESU89bQorQ09ORklHX0xFRFNfVFJJR0dFUl9UVFk9bQorCisjCisjIFNpbXBsZSBMRUQg ZHJpdmVycworIworQ09ORklHX0FDQ0VTU0lCSUxJVFk9eQorQ09ORklHX0ExMVlfQlJBSUxMRV9D T05TT0xFPXkKKworIworIyBTcGVha3VwIGNvbnNvbGUgc3BlZWNoCisjCitDT05GSUdfU1BFQUtV UD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9BQ05UU0E9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhf QVBPTExPPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0FVRFBUUj1tCitDT05GSUdfU1BFQUtVUF9T WU5USF9CTlM9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfREVDVExLPW0KK0NPTkZJR19TUEVBS1VQ X1NZTlRIX0RFQ0VYVD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9MVExLPW0KK0NPTkZJR19TUEVB S1VQX1NZTlRIX1NPRlQ9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfU1BLT1VUPW0KK0NPTkZJR19T UEVBS1VQX1NZTlRIX1RYUFJUPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0RVTU1ZPW0KKyMgZW5k IG9mIFNwZWFrdXAgY29uc29sZSBzcGVlY2gKKworQ09ORklHX0lORklOSUJBTkQ9bQorQ09ORklH X0lORklOSUJBTkRfVVNFUl9NQUQ9bQorQ09ORklHX0lORklOSUJBTkRfVVNFUl9BQ0NFU1M9bQor Q09ORklHX0lORklOSUJBTkRfVVNFUl9NRU09eQorQ09ORklHX0lORklOSUJBTkRfT05fREVNQU5E X1BBR0lORz15CitDT05GSUdfSU5GSU5JQkFORF9BRERSX1RSQU5TPXkKK0NPTkZJR19JTkZJTklC QU5EX0FERFJfVFJBTlNfQ09ORklHRlM9eQorQ09ORklHX0lORklOSUJBTkRfVklSVF9ETUE9eQor Q09ORklHX0lORklOSUJBTkRfQk5YVF9SRT1tCitDT05GSUdfSU5GSU5JQkFORF9DWEdCND1tCitD T05GSUdfSU5GSU5JQkFORF9FRkE9bQorQ09ORklHX0lORklOSUJBTkRfRVJETUE9bQorQ09ORklH X0lORklOSUJBTkRfSVJETUE9bQorQ09ORklHX01MWDRfSU5GSU5JQkFORD1tCitDT05GSUdfTUxY NV9JTkZJTklCQU5EPW0KK0NPTkZJR19JTkZJTklCQU5EX01USENBPW0KK0NPTkZJR19JTkZJTklC QU5EX01USENBX0RFQlVHPXkKK0NPTkZJR19JTkZJTklCQU5EX09DUkRNQT1tCitDT05GSUdfSU5G SU5JQkFORF9RRURSPW0KKyMgQ09ORklHX0lORklOSUJBTkRfVk1XQVJFX1BWUkRNQSBpcyBub3Qg c2V0CitDT05GSUdfUkRNQV9SWEU9bQorQ09ORklHX1JETUFfU0lXPW0KK0NPTkZJR19JTkZJTklC QU5EX0lQT0lCPW0KK0NPTkZJR19JTkZJTklCQU5EX0lQT0lCX0NNPXkKK0NPTkZJR19JTkZJTklC QU5EX0lQT0lCX0RFQlVHPXkKKyMgQ09ORklHX0lORklOSUJBTkRfSVBPSUJfREVCVUdfREFUQSBp cyBub3Qgc2V0CitDT05GSUdfSU5GSU5JQkFORF9TUlA9bQorQ09ORklHX0lORklOSUJBTkRfU1JQ VD1tCitDT05GSUdfSU5GSU5JQkFORF9JU0VSPW0KK0NPTkZJR19JTkZJTklCQU5EX0lTRVJUPW0K K0NPTkZJR19JTkZJTklCQU5EX1JUUlM9bQorQ09ORklHX0lORklOSUJBTkRfUlRSU19DTElFTlQ9 bQorQ09ORklHX0lORklOSUJBTkRfUlRSU19TRVJWRVI9bQorQ09ORklHX0VEQUNfU1VQUE9SVD15 CitDT05GSUdfRURBQz15CitDT05GSUdfRURBQ19MRUdBQ1lfU1lTRlM9eQorQ09ORklHX0VEQUNf REVCVUc9eQorQ09ORklHX0VEQUNfU0lGSVZFPXkKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19S VENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJ Q0U9InJ0YzAiCitDT05GSUdfUlRDX1NZU1RPSEM9eQorQ09ORklHX1JUQ19TWVNUT0hDX0RFVklD RT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX05WTUVN PXkKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NP TkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRD X0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBu b3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9BQkI1WkVT Mz1tCitDT05GSUdfUlRDX0RSVl9BQkVPWjk9bQorQ09ORklHX1JUQ19EUlZfQUJYODBYPW0KK0NP TkZJR19SVENfRFJWX0FDMTAwPW0KK0NPTkZJR19SVENfRFJWX0RTMTMwNz1tCitDT05GSUdfUlRD X0RSVl9EUzEzMDdfQ0VOVFVSWT15CitDT05GSUdfUlRDX0RSVl9EUzEzNzQ9bQorQ09ORklHX1JU Q19EUlZfRFMxMzc0X1dEVD15CitDT05GSUdfUlRDX0RSVl9EUzE2NzI9bQorIyBDT05GSUdfUlRD X0RSVl9IWU04NTYzIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX01BWDY5MDA9bQorQ09ORklH X1JUQ19EUlZfTUFYNzc2ODY9bQorQ09ORklHX1JUQ19EUlZfTkNUMzAxOFk9bQorQ09ORklHX1JU Q19EUlZfUks4MDg9bQorQ09ORklHX1JUQ19EUlZfUlM1QzM3Mj1tCitDT05GSUdfUlRDX0RSVl9J U0wxMjA4PW0KKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwMjIgaXMgbm90IHNldAorQ09ORklHX1JU Q19EUlZfSVNMMTIwMjY9bQorQ09ORklHX1JUQ19EUlZfWDEyMDU9bQorQ09ORklHX1JUQ19EUlZf UENGODUyMz1tCitDT05GSUdfUlRDX0RSVl9QQ0Y4NTA2Mz1tCitDT05GSUdfUlRDX0RSVl9QQ0Y4 NTM2Mz1tCitDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzPW0KK0NPTkZJR19SVENfRFJWX1BDRjg1ODM9 bQorQ09ORklHX1JUQ19EUlZfTTQxVDgwPW0KK0NPTkZJR19SVENfRFJWX000MVQ4MF9XRFQ9eQor Q09ORklHX1JUQ19EUlZfQkQ3MDUyOD1tCisjIENPTkZJR19SVENfRFJWX0JRMzJLIGlzIG5vdCBz ZXQKK0NPTkZJR19SVENfRFJWX1MzNTM5MEE9bQorQ09ORklHX1JUQ19EUlZfRk0zMTMwPW0KK0NP TkZJR19SVENfRFJWX1JYODAxMD1tCisjIENPTkZJR19SVENfRFJWX1JYODU4MSBpcyBub3Qgc2V0 CisjIENPTkZJR19SVENfRFJWX1JYODAyNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0VN MzAyNyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9SVjMwMjg9bQorQ09ORklHX1JUQ19EUlZf UlYzMDMyPW0KK0NPTkZJR19SVENfRFJWX1JWODgwMz15CitDT05GSUdfUlRDX0RSVl9TRDMwNzg9 bQorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9NNDFUOTMgaXMg bm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUOTQgaXMgbm90IHNldAorIyBDT05GSUdfUlRD X0RSVl9EUzEzMDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzMDUgaXMgbm90IHNl dAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNDMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9E UzEzNDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzOTAgaXMgbm90IHNldAorQ09O RklHX1JUQ19EUlZfTUFYNjkxNj1tCisjIENPTkZJR19SVENfRFJWX1I5NzAxIGlzIG5vdCBzZXQK KyMgQ09ORklHX1JUQ19EUlZfUlg0NTgxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1 QzM0OCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBD T05GSUdfUlRDX0RSVl9QQ0YyMTIzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUNQNzk1 IGlzIG5vdCBzZXQKK0NPTkZJR19SVENfSTJDX0FORF9TUEk9eQorCisjCisjIFNQSSBhbmQgSTJD IFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9EUzMyMzI9bQorQ09ORklHX1JUQ19EUlZf RFMzMjMyX0hXTU9OPXkKK0NPTkZJR19SVENfRFJWX1BDRjIxMjc9bQorIyBDT05GSUdfUlRDX0RS Vl9SVjMwMjlDMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JYNjExMCBpcyBub3Qgc2V0 CisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMjg2 IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklH X1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX0RTMTY4NV9GQU1JTFk9 bQorQ09ORklHX1JUQ19EUlZfRFMxNjg1PXkKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjg5IGlzIG5v dCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENf RFJWX0RTMTc0ODUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3ODg1IGlzIG5vdCBz ZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZf RFMyNDA0IGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX0VGST15CisjIENPTkZJR19SVENfRFJW X1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQK KyMgQ09ORklHX1JUQ19EUlZfTTQ4VDM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4 VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTVNNNjI0MiBpcyBub3Qgc2V0CisjIENP TkZJR19SVENfRFJWX0JRNDgwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JQNUMwMSBp cyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9aWU5RTVA9eQorQ09ORklHX1JUQ19EUlZfTlRYRUM9 bQorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfU0g9bQorQ09O RklHX1JUQ19EUlZfUEwwMzA9bQorQ09ORklHX1JUQ19EUlZfUEwwMzE9bQorQ09ORklHX1JUQ19E UlZfU1VONkk9eQorQ09ORklHX1JUQ19EUlZfQ0FERU5DRT1tCitDT05GSUdfUlRDX0RSVl9GVFJU QzAxMD1tCitDT05GSUdfUlRDX0RSVl9SNzMwMT1tCitDT05GSUdfUlRDX0RSVl9DUENBUD1tCisK KyMKKyMgSElEIFNlbnNvciBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfSElEX1NFTlNP Ul9USU1FPW0KK0NPTkZJR19SVENfRFJWX0dPTERGSVNIPXkKK0NPTkZJR19SVENfRFJWX1BPTEFS RklSRV9TT0M9bQorQ09ORklHX0RNQURFVklDRVM9eQorIyBDT05GSUdfRE1BREVWSUNFU19ERUJV RyBpcyBub3Qgc2V0CisKKyMKKyMgRE1BIERldmljZXMKKyMKK0NPTkZJR19ETUFfRU5HSU5FPXkK K0NPTkZJR19ETUFfVklSVFVBTF9DSEFOTkVMUz15CitDT05GSUdfRE1BX09GPXkKK0NPTkZJR19B TFRFUkFfTVNHRE1BPW0KK0NPTkZJR19BTUJBX1BMMDhYPXkKK0NPTkZJR19ETUFfU1VONkk9bQor Q09ORklHX0RXX0FYSV9ETUFDPW0KK0NPTkZJR19GU0xfRURNQT1tCisjIENPTkZJR19JTlRFTF9J RE1BNjQgaXMgbm90IHNldAorIyBDT05GSUdfUEwzMzBfRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19Q TFhfRE1BPW0KK0NPTkZJR19YSUxJTlhfWERNQT1tCitDT05GSUdfWElMSU5YX1pZTlFNUF9EUERN QT1tCitDT05GSUdfUUNPTV9ISURNQV9NR01UPW0KK0NPTkZJR19RQ09NX0hJRE1BPW0KK0NPTkZJ R19EV19ETUFDX0NPUkU9bQorIyBDT05GSUdfRFdfRE1BQyBpcyBub3Qgc2V0CitDT05GSUdfRFdf RE1BQ19QQ0k9bQorQ09ORklHX0RXX0VETUE9bQorQ09ORklHX0RXX0VETUFfUENJRT1tCisjIENP TkZJR19TRl9QRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19SRU5FU0FTX0RNQT15CitDT05GSUdfUkNB Ul9ETUFDPW0KK0NPTkZJR19SRU5FU0FTX1VTQl9ETUFDPW0KK0NPTkZJR19SWl9ETUFDPW0KKwor IworIyBETUEgQ2xpZW50cworIworQ09ORklHX0FTWU5DX1RYX0RNQT15CisjIENPTkZJR19ETUFU RVNUIGlzIG5vdCBzZXQKKworIworIyBETUFCVUYgb3B0aW9ucworIworQ09ORklHX1NZTkNfRklM RT15CitDT05GSUdfU1dfU1lOQz15CitDT05GSUdfVURNQUJVRj15CisjIENPTkZJR19ETUFCVUZf TU9WRV9OT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfRE1BQlVGX0RFQlVHIGlzIG5vdCBzZXQK KyMgQ09ORklHX0RNQUJVRl9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfRE1BQlVGX0hF QVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNQUJVRl9TWVNGU19TVEFUUyBpcyBub3Qgc2V0Cisj IGVuZCBvZiBETUFCVUYgb3B0aW9ucworCitDT05GSUdfQVVYRElTUExBWT15CitDT05GSUdfQ0hB UkxDRD1tCitDT05GSUdfTElORURJU1A9bQorQ09ORklHX0hENDQ3ODBfQ09NTU9OPW0KK0NPTkZJ R19IRDQ0NzgwPW0KKyMgQ09ORklHX0lNR19BU0NJSV9MQ0QgaXMgbm90IHNldAorQ09ORklHX0hU MTZLMzM9bQorQ09ORklHX0xDRDJTPW0KK0NPTkZJR19QQVJQT1JUX1BBTkVMPW0KK0NPTkZJR19Q QU5FTF9QQVJQT1JUPTAKK0NPTkZJR19QQU5FTF9QUk9GSUxFPTUKKyMgQ09ORklHX1BBTkVMX0NI QU5HRV9NRVNTQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIQVJMQ0RfQkxfT0ZGIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NIQVJMQ0RfQkxfT04gaXMgbm90IHNldAorQ09ORklHX0NIQVJMQ0RfQkxf RkxBU0g9eQorQ09ORklHX1BBTkVMPW0KK0NPTkZJR19VSU89bQorQ09ORklHX1VJT19DSUY9bQor Q09ORklHX1VJT19QRFJWX0dFTklSUT1tCitDT05GSUdfVUlPX0RNRU1fR0VOSVJRPW0KK0NPTkZJ R19VSU9fQUVDPW0KK0NPTkZJR19VSU9fU0VSQ09TMz1tCitDT05GSUdfVUlPX1BDSV9HRU5FUklD PW0KK0NPTkZJR19VSU9fTkVUWD1tCisjIENPTkZJR19VSU9fUFJVU1MgaXMgbm90IHNldAorQ09O RklHX1VJT19NRjYyND1tCitDT05GSUdfVUlPX0RGTD1tCitDT05GSUdfVkZJTz1tCitDT05GSUdf VkZJT19DT05UQUlORVI9eQorIyBDT05GSUdfVkZJT19OT0lPTU1VIGlzIG5vdCBzZXQKK0NPTkZJ R19WRklPX1ZJUlFGRD15CitDT05GSUdfVkZJT19QQ0lfQ09SRT1tCitDT05GSUdfVkZJT19QQ0lf TU1BUD15CitDT05GSUdfVkZJT19QQ0lfSU5UWD15CitDT05GSUdfVkZJT19QQ0k9bQorQ09ORklH X01MWDVfVkZJT19QQ0k9bQorQ09ORklHX0lSUV9CWVBBU1NfTUFOQUdFUj1tCitDT05GSUdfVklS VF9EUklWRVJTPXkKK0NPTkZJR19WSVJUSU9fQU5DSE9SPXkKK0NPTkZJR19WSVJUSU89eQorQ09O RklHX1ZJUlRJT19QQ0lfTElCPXkKK0NPTkZJR19WSVJUSU9fUENJX0xJQl9MRUdBQ1k9eQorQ09O RklHX1ZJUlRJT19NRU5VPXkKK0NPTkZJR19WSVJUSU9fUENJPXkKK0NPTkZJR19WSVJUSU9fUENJ X0xFR0FDWT15CitDT05GSUdfVklSVElPX1ZEUEE9bQorQ09ORklHX1ZJUlRJT19QTUVNPW0KK0NP TkZJR19WSVJUSU9fQkFMTE9PTj1tCitDT05GSUdfVklSVElPX0lOUFVUPW0KK0NPTkZJR19WSVJU SU9fTU1JTz1tCisjIENPTkZJR19WSVJUSU9fTU1JT19DTURMSU5FX0RFVklDRVMgaXMgbm90IHNl dAorQ09ORklHX1ZJUlRJT19ETUFfU0hBUkVEX0JVRkZFUj1tCitDT05GSUdfVkRQQT1tCitDT05G SUdfVkRQQV9TSU09bQorQ09ORklHX1ZEUEFfU0lNX05FVD1tCitDT05GSUdfVkRQQV9TSU1fQkxP Q0s9bQorQ09ORklHX1ZEUEFfVVNFUj1tCitDT05GSUdfSUZDVkY9bQorQ09ORklHX01MWDVfVkRQ QT15CitDT05GSUdfTUxYNV9WRFBBX05FVD1tCisjIENPTkZJR19NTFg1X1ZEUEFfU1RFRVJJTkdf REVCVUcgaXMgbm90IHNldAorQ09ORklHX1ZQX1ZEUEE9bQorQ09ORklHX1NORVRfVkRQQT1tCitD T05GSUdfVkhPU1RfSU9UTEI9bQorQ09ORklHX1ZIT1NUX1JJTkc9bQorQ09ORklHX1ZIT1NUPW0K K0NPTkZJR19WSE9TVF9NRU5VPXkKK0NPTkZJR19WSE9TVF9ORVQ9bQorQ09ORklHX1ZIT1NUX1ND U0k9bQorQ09ORklHX1ZIT1NUX1ZTT0NLPW0KK0NPTkZJR19WSE9TVF9WRFBBPW0KKyMgQ09ORklH X1ZIT1NUX0NST1NTX0VORElBTl9MRUdBQ1kgaXMgbm90IHNldAorCisjCisjIE1pY3Jvc29mdCBI eXBlci1WIGd1ZXN0IHN1cHBvcnQKKyMKKyMgZW5kIG9mIE1pY3Jvc29mdCBIeXBlci1WIGd1ZXN0 IHN1cHBvcnQKKworIyBDT05GSUdfR1JFWUJVUyBpcyBub3Qgc2V0CitDT05GSUdfQ09NRURJPW0K KyMgQ09ORklHX0NPTUVESV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ09NRURJX0RFRkFVTFRf QlVGX1NJWkVfS0I9MjA0OAorQ09ORklHX0NPTUVESV9ERUZBVUxUX0JVRl9NQVhTSVpFX0tCPTIw NDgwCisjIENPTkZJR19DT01FRElfTUlTQ19EUklWRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NP TUVESV9JU0FfRFJJVkVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT01FRElfUENJX0RSSVZFUlMg aXMgbm90IHNldAorQ09ORklHX0NPTUVESV9QQ01DSUFfRFJJVkVSUz1tCitDT05GSUdfQ09NRURJ X0NCX0RBUzE2X0NTPW0KK0NPTkZJR19DT01FRElfREFTMDhfQ1M9bQorQ09ORklHX0NPTUVESV9O SV9EQVFfNzAwX0NTPW0KK0NPTkZJR19DT01FRElfTklfREFRX0RJTzI0X0NTPW0KK0NPTkZJR19D T01FRElfTklfTEFCUENfQ1M9bQorQ09ORklHX0NPTUVESV9OSV9NSU9fQ1M9bQorQ09ORklHX0NP TUVESV9RVUFURUNIX0RBUVBfQ1M9bQorQ09ORklHX0NPTUVESV9VU0JfRFJJVkVSUz1tCitDT05G SUdfQ09NRURJX0RUOTgxMj1tCitDT05GSUdfQ09NRURJX05JX1VTQjY1MDE9bQorQ09ORklHX0NP TUVESV9VU0JEVVg9bQorQ09ORklHX0NPTUVESV9VU0JEVVhGQVNUPW0KK0NPTkZJR19DT01FRElf VVNCRFVYU0lHTUE9bQorQ09ORklHX0NPTUVESV9WTUs4MFhYPW0KK0NPTkZJR19DT01FRElfODI1 ND1tCitDT05GSUdfQ09NRURJXzgyNTU9bQorQ09ORklHX0NPTUVESV84MjU1X1NBPW0KK0NPTkZJ R19DT01FRElfS0NPTUVESUxJQj1tCitDT05GSUdfQ09NRURJX0RBUzA4PW0KK0NPTkZJR19DT01F RElfTklfTEFCUEM9bQorQ09ORklHX0NPTUVESV9OSV9USU89bQorQ09ORklHX0NPTUVESV9OSV9S T1VUSU5HPW0KKyMgQ09ORklHX0NPTUVESV9URVNUUyBpcyBub3Qgc2V0CitDT05GSUdfU1RBR0lO Rz15CitDT05GSUdfUFJJU00yX1VTQj1tCitDT05GSUdfUlRMODE5MlU9bQorQ09ORklHX1JUTExJ Qj1tCitDT05GSUdfUlRMTElCX0NSWVBUT19DQ01QPW0KK0NPTkZJR19SVExMSUJfQ1JZUFRPX1RL SVA9bQorQ09ORklHX1JUTExJQl9DUllQVE9fV0VQPW0KK0NPTkZJR19SVEw4MTkyRT1tCitDT05G SUdfUlRMODcyM0JTPW0KK0NPTkZJR19SODcxMlU9bQorQ09ORklHX1JUUzUyMDg9bQorQ09ORklH X1ZUNjY1NT1tCitDT05GSUdfVlQ2NjU2PW0KKworIworIyBJSU8gc3RhZ2luZyBkcml2ZXJzCisj CisKKyMKKyMgQWNjZWxlcm9tZXRlcnMKKyMKKyMgQ09ORklHX0FESVMxNjIwMyBpcyBub3Qgc2V0 CisjIENPTkZJR19BRElTMTYyNDAgaXMgbm90IHNldAorIyBlbmQgb2YgQWNjZWxlcm9tZXRlcnMK KworIworIyBBbmFsb2cgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDc4MTYg aXMgbm90IHNldAorIyBlbmQgb2YgQW5hbG9nIHRvIGRpZ2l0YWwgY29udmVydGVycworCisjCisj IEFuYWxvZyBkaWdpdGFsIGJpLWRpcmVjdGlvbiBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRFQ3 MzE2IGlzIG5vdCBzZXQKKyMgZW5kIG9mIEFuYWxvZyBkaWdpdGFsIGJpLWRpcmVjdGlvbiBjb252 ZXJ0ZXJzCisKKyMKKyMgRGlyZWN0IERpZ2l0YWwgU3ludGhlc2lzCisjCisjIENPTkZJR19BRDk4 MzIgaXMgbm90IHNldAorIyBDT05GSUdfQUQ5ODM0IGlzIG5vdCBzZXQKKyMgZW5kIG9mIERpcmVj dCBEaWdpdGFsIFN5bnRoZXNpcworCisjCisjIE5ldHdvcmsgQW5hbHl6ZXIsIEltcGVkYW5jZSBD b252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDU5MzMgaXMgbm90IHNldAorIyBlbmQgb2YgTmV0d29y ayBBbmFseXplciwgSW1wZWRhbmNlIENvbnZlcnRlcnMKKworIworIyBBY3RpdmUgZW5lcmd5IG1l dGVyaW5nIElDCisjCisjIENPTkZJR19BREU3ODU0IGlzIG5vdCBzZXQKKyMgZW5kIG9mIEFjdGl2 ZSBlbmVyZ3kgbWV0ZXJpbmcgSUMKKworIworIyBSZXNvbHZlciB0byBkaWdpdGFsIGNvbnZlcnRl cnMKKyMKKyMgQ09ORklHX0FEMlMxMjEwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFJlc29sdmVyIHRv IGRpZ2l0YWwgY29udmVydGVycworIyBlbmQgb2YgSUlPIHN0YWdpbmcgZHJpdmVycworCitDT05G SUdfRkJfU003NTA9bQorQ09ORklHX1VTQl9FTVhYPW0KK0NPTkZJR19TVEFHSU5HX01FRElBPXkK K0NPTkZJR19EVkJfQVY3MTEwX0lSPXkKK0NPTkZJR19EVkJfQVY3MTEwPW0KK0NPTkZJR19EVkJf QVY3MTEwX09TRD15CitDT05GSUdfRFZCX0JVREdFVF9QQVRDSD1tCitDT05GSUdfRFZCX1NQODg3 MD1tCitDT05GSUdfVklERU9fTUFYOTY3MTI9bQorQ09ORklHX1ZJREVPX1NVTlhJPXkKK0NPTkZJ R19WSURFT19TVU5YSV9DRURSVVM9bQorQ09ORklHX1ZJREVPX1NVTjZJX0lTUD1tCisjIENPTkZJ R19TVEFHSU5HX01FRElBX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfU1RBR0lOR19C T0FSRCBpcyBub3Qgc2V0CitDT05GSUdfTFRFX0dETTcyNFg9bQorQ09ORklHX0ZCX1RGVD1tCitD T05GSUdfRkJfVEZUX0FHTTEyNjRLX0ZMPW0KK0NPTkZJR19GQl9URlRfQkQ2NjM0NzQ9bQorQ09O RklHX0ZCX1RGVF9IWDgzNDBCTj1tCitDT05GSUdfRkJfVEZUX0hYODM0N0Q9bQorQ09ORklHX0ZC X1RGVF9IWDgzNTNEPW0KK0NPTkZJR19GQl9URlRfSFg4MzU3RD1tCitDT05GSUdfRkJfVEZUX0lM STkxNjM9bQorQ09ORklHX0ZCX1RGVF9JTEk5MzIwPW0KK0NPTkZJR19GQl9URlRfSUxJOTMyNT1t CitDT05GSUdfRkJfVEZUX0lMSTkzNDA9bQorQ09ORklHX0ZCX1RGVF9JTEk5MzQxPW0KK0NPTkZJ R19GQl9URlRfSUxJOTQ4MT1tCitDT05GSUdfRkJfVEZUX0lMSTk0ODY9bQorQ09ORklHX0ZCX1RG VF9QQ0Q4NTQ0PW0KK0NPTkZJR19GQl9URlRfUkE4ODc1PW0KK0NPTkZJR19GQl9URlRfUzZEMDJB MT1tCitDT05GSUdfRkJfVEZUX1M2RDExMjE9bQorQ09ORklHX0ZCX1RGVF9TRVBTNTI1PW0KK0NP TkZJR19GQl9URlRfU0gxMTA2PW0KK0NPTkZJR19GQl9URlRfU1NEMTI4OT1tCitDT05GSUdfRkJf VEZUX1NTRDEzMDU9bQorQ09ORklHX0ZCX1RGVF9TU0QxMzA2PW0KK0NPTkZJR19GQl9URlRfU1NE MTMzMT1tCitDT05GSUdfRkJfVEZUX1NTRDEzNTE9bQorQ09ORklHX0ZCX1RGVF9TVDc3MzVSPW0K K0NPTkZJR19GQl9URlRfU1Q3Nzg5Vj1tCitDT05GSUdfRkJfVEZUX1RJTllMQ0Q9bQorQ09ORklH X0ZCX1RGVF9UTFM4MjA0PW0KK0NPTkZJR19GQl9URlRfVUMxNjExPW0KK0NPTkZJR19GQl9URlRf VUMxNzAxPW0KK0NPTkZJR19GQl9URlRfVVBEMTYxNzA0PW0KK0NPTkZJR19LUzcwMTA9bQorQ09O RklHX1BJNDMzPW0KK0NPTkZJR19YSUxfQVhJU19GSUZPPW0KK0NPTkZJR19GSUVMREJVU19ERVY9 bQorQ09ORklHX0hNU19BTllCVVNTX0JVUz1tCitDT05GSUdfQVJDWF9BTllCVVNfQ09OVFJPTExF Uj1tCitDT05GSUdfSE1TX1BST0ZJTkVUPW0KK0NPTkZJR19RTEdFPW0KKyMgQ09ORklHX1ZNRV9C VVMgaXMgbm90IHNldAorQ09ORklHX0dPTERGSVNIPXkKK0NPTkZJR19HT0xERklTSF9QSVBFPW0K K0NPTkZJR19IQVZFX0NMSz15CitDT05GSUdfSEFWRV9DTEtfUFJFUEFSRT15CitDT05GSUdfQ09N TU9OX0NMSz15CitDT05GSUdfTE1LMDQ4MzI9bQorQ09ORklHX0NPTU1PTl9DTEtfTUFYNzc2ODY9 bQorQ09ORklHX0NPTU1PTl9DTEtfTUFYOTQ4NT1tCitDT05GSUdfQ09NTU9OX0NMS19SSzgwOD1t CitDT05GSUdfQ09NTU9OX0NMS19TSTUzNDE9bQorIyBDT05GSUdfQ09NTU9OX0NMS19TSTUzNTEg aXMgbm90IHNldAorQ09ORklHX0NPTU1PTl9DTEtfU0k1MTQ9bQorQ09ORklHX0NPTU1PTl9DTEtf U0k1NDQ9bQorIyBDT05GSUdfQ09NTU9OX0NMS19TSTU3MCBpcyBub3Qgc2V0CitDT05GSUdfQ09N TU9OX0NMS19DRENFNzA2PW0KK0NPTkZJR19DT01NT05fQ0xLX0NEQ0U5MjU9bQorQ09ORklHX0NP TU1PTl9DTEtfQ1MyMDAwX0NQPW0KK0NPTkZJR19DT01NT05fQ0xLX0FYSV9DTEtHRU49bQorQ09O RklHX0NPTU1PTl9DTEtfTE9DSE5BR0FSPW0KK0NPTkZJR19DT01NT05fQ0xLX1BXTT1tCitDT05G SUdfQ09NTU9OX0NMS19SUzlfUENJRT1tCitDT05GSUdfQ09NTU9OX0NMS19WQzU9bQorQ09ORklH X0NPTU1PTl9DTEtfVkM3PW0KK0NPTkZJR19DT01NT05fQ0xLX0JENzE4WFg9bQorQ09ORklHX0NP TU1PTl9DTEtfRklYRURfTU1JTz15CitDT05GSUdfQ0xLX0FOQUxPR0JJVFNfV1JQTExfQ0xOMjhI UEM9eQorQ09ORklHX01DSFBfQ0xLX01QRlM9eQorQ09ORklHX0NMS19SRU5FU0FTPXkKK0NPTkZJ R19DTEtfUjlBMDdHMDQzPXkKKyMgQ09ORklHX0NMS19SQ0FSX1VTQjJfQ0xPQ0tfU0VMIGlzIG5v dCBzZXQKK0NPTkZJR19DTEtfUlpHMkw9eQorQ09ORklHX0NMS19TSUZJVkU9eQorQ09ORklHX0NM S19TSUZJVkVfUFJDST15CitDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzFYMD15CitDT05GSUdfQ0xL X1NUQVJGSVZFX0pINzEwMD15CitDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzEwMF9BVURJTz15CitD T05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9QTEw9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcx MTBfU1lTPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX0FPTj15CitDT05GSUdfQ0xLX1NU QVJGSVZFX0pINzExMF9TVEc9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfSVNQPXkKK0NP TkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1ZPVVQ9eQorQ09ORklHX1NVTlhJX0NDVT1tCitDT05G SUdfU1VOMjBJX0QxX0NDVT1tCitDT05GSUdfU1VOMjBJX0QxX1JfQ0NVPW0KK0NPTkZJR19TVU42 SV9SVENfQ0NVPW0KK0NPTkZJR19TVU44SV9ERTJfQ0NVPW0KK0NPTkZJR19YSUxJTlhfVkNVPW0K KyMgQ09ORklHX0NPTU1PTl9DTEtfWExOWF9DTEtXWlJEIGlzIG5vdCBzZXQKK0NPTkZJR19IV1NQ SU5MT0NLPXkKK0NPTkZJR19IV1NQSU5MT0NLX1NVTjZJPW0KKworIworIyBDbG9jayBTb3VyY2Ug ZHJpdmVycworIworQ09ORklHX1RJTUVSX09GPXkKK0NPTkZJR19USU1FUl9QUk9CRT15CitDT05G SUdfQ0xLU1JDX01NSU89eQorQ09ORklHX1NVTjRJX1RJTUVSPXkKK0NPTkZJR19SRU5FU0FTX09T VE09eQorQ09ORklHX1JJU0NWX1RJTUVSPXkKK0NPTkZJR19TVEFSRklWRV9USU1FUj15CisjIGVu ZCBvZiBDbG9jayBTb3VyY2UgZHJpdmVycworCitDT05GSUdfTUFJTEJPWD15CitDT05GSUdfQVJN X01IVT1tCitDT05GSUdfQVJNX01IVV9WMj1tCitDT05GSUdfUExBVEZPUk1fTUhVPW0KKyMgQ09O RklHX1BMMzIwX01CT1ggaXMgbm90IHNldAorIyBDT05GSUdfQUxURVJBX01CT1ggaXMgbm90IHNl dAorIyBDT05GSUdfTUFJTEJPWF9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19QT0xBUkZJUkVfU09D X01BSUxCT1g9bQorQ09ORklHX1NVTjZJX01TR0JPWD1tCitDT05GSUdfSU9NTVVfSU9WQT1tCitD T05GSUdfSU9NTVVfQVBJPXkKK0NPTkZJR19JT01NVV9TVVBQT1JUPXkKKworIworIyBHZW5lcmlj IElPTU1VIFBhZ2V0YWJsZSBTdXBwb3J0CisjCisjIGVuZCBvZiBHZW5lcmljIElPTU1VIFBhZ2V0 YWJsZSBTdXBwb3J0CisKKyMgQ09ORklHX0lPTU1VX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05G SUdfSU9NTVVfREVGQVVMVF9ETUFfU1RSSUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPTU1VX0RF RkFVTFRfRE1BX0xBWlkgaXMgbm90IHNldAorQ09ORklHX0lPTU1VX0RFRkFVTFRfUEFTU1RIUk9V R0g9eQorQ09ORklHX09GX0lPTU1VPXkKK0NPTkZJR19JT01NVUZEPW0KK0NPTkZJR19TVU41MElf SU9NTVU9eQorIyBDT05GSUdfSVBNTVVfVk1TQSBpcyBub3Qgc2V0CisKKyMKKyMgUmVtb3RlcHJv YyBkcml2ZXJzCisjCitDT05GSUdfUkVNT1RFUFJPQz15CitDT05GSUdfUkVNT1RFUFJPQ19DREVW PXkKK0NPTkZJR19SQ0FSX1JFTU9URVBST0M9bQorIyBlbmQgb2YgUmVtb3RlcHJvYyBkcml2ZXJz CisKKyMKKyMgUnBtc2cgZHJpdmVycworIworQ09ORklHX1JQTVNHPW0KK0NPTkZJR19SUE1TR19D SEFSPW0KK0NPTkZJR19SUE1TR19DVFJMPW0KK0NPTkZJR19SUE1TR19OUz1tCitDT05GSUdfUlBN U0dfUUNPTV9HTElOSz1tCitDT05GSUdfUlBNU0dfUUNPTV9HTElOS19SUE09bQorQ09ORklHX1JQ TVNHX1ZJUlRJTz1tCisjIGVuZCBvZiBScG1zZyBkcml2ZXJzCisKK0NPTkZJR19TT1VORFdJUkU9 eQorCisjCisjIFNvdW5kV2lyZSBEZXZpY2VzCisjCitDT05GSUdfU09VTkRXSVJFX1FDT009bQor CisjCisjIFNPQyAoU3lzdGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMKKyMKKworIworIyBB bWxvZ2ljIFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBBbWxvZ2ljIFNvQyBkcml2ZXJzCisKKyMK KyMgQnJvYWRjb20gU29DIGRyaXZlcnMKKyMKKyMgZW5kIG9mIEJyb2FkY29tIFNvQyBkcml2ZXJz CisKKyMKKyMgTlhQL0ZyZWVzY2FsZSBRb3JJUSBTb0MgZHJpdmVycworIworIyBlbmQgb2YgTlhQ L0ZyZWVzY2FsZSBRb3JJUSBTb0MgZHJpdmVycworCisjCisjIGZ1aml0c3UgU29DIGRyaXZlcnMK KyMKKyMgZW5kIG9mIGZ1aml0c3UgU29DIGRyaXZlcnMKKworIworIyBpLk1YIFNvQyBkcml2ZXJz CisjCisjIGVuZCBvZiBpLk1YIFNvQyBkcml2ZXJzCisKKyMKKyMgRW5hYmxlIExpdGVYIFNvQyBC dWlsZGVyIHNwZWNpZmljIGRyaXZlcnMKKyMKKyMgQ09ORklHX0xJVEVYX1NPQ19DT05UUk9MTEVS IGlzIG5vdCBzZXQKKyMgZW5kIG9mIEVuYWJsZSBMaXRlWCBTb0MgQnVpbGRlciBzcGVjaWZpYyBk cml2ZXJzCisKK0NPTkZJR19QT0xBUkZJUkVfU09DX1NZU19DVFJMPW0KK0NPTkZJR19XUENNNDUw X1NPQz1tCisKKyMKKyMgUXVhbGNvbW0gU29DIGRyaXZlcnMKKyMKK0NPTkZJR19RQ09NX1BEUl9I RUxQRVJTPW0KK0NPTkZJR19RQ09NX1BNSUNfR0xJTks9bQorQ09ORklHX1FDT01fUU1JX0hFTFBF UlM9bQorIyBlbmQgb2YgUXVhbGNvbW0gU29DIGRyaXZlcnMKKworQ09ORklHX1NPQ19SRU5FU0FT PXkKK0NPTkZJR19BUkNIX1JaRzJMPXkKK0NPTkZJR19BUkNIX1I5QTA3RzA0Mz15CitDT05GSUdf U0lGSVZFX0NDQUNIRT15CitDT05GSUdfSkg3MVhYX1BNVT15CitDT05GSUdfU1VOWElfU1JBTT15 CitDT05GSUdfU1VOMjBJX1BQVT15CitDT05GSUdfU09DX1RJPXkKKworIworIyBYaWxpbnggU29D IGRyaXZlcnMKKyMKKyMgZW5kIG9mIFhpbGlueCBTb0MgZHJpdmVycworIyBlbmQgb2YgU09DIChT eXN0ZW0gT24gQ2hpcCkgc3BlY2lmaWMgRHJpdmVycworCitDT05GSUdfUE1fREVWRlJFUT15CisK KyMKKyMgREVWRlJFUSBHb3Zlcm5vcnMKKyMKK0NPTkZJR19ERVZGUkVRX0dPVl9TSU1QTEVfT05E RU1BTkQ9eQorQ09ORklHX0RFVkZSRVFfR09WX1BFUkZPUk1BTkNFPW0KK0NPTkZJR19ERVZGUkVR X0dPVl9QT1dFUlNBVkU9bQorQ09ORklHX0RFVkZSRVFfR09WX1VTRVJTUEFDRT1tCitDT05GSUdf REVWRlJFUV9HT1ZfUEFTU0lWRT15CisKKyMKKyMgREVWRlJFUSBEcml2ZXJzCisjCitDT05GSUdf QVJNX1NVTjhJX0EzM19NQlVTX0RFVkZSRVE9bQorQ09ORklHX1BNX0RFVkZSRVFfRVZFTlQ9eQor Q09ORklHX0VYVENPTj15CisKKyMKKyMgRXh0Y29uIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJ R19FWFRDT05fQURDX0pBQ0sgaXMgbm90IHNldAorQ09ORklHX0VYVENPTl9GU0E5NDgwPW0KK0NP TkZJR19FWFRDT05fR1BJTz1tCitDT05GSUdfRVhUQ09OX01BWDMzNTU9bQorQ09ORklHX0VYVENP Tl9QVE41MTUwPW0KKyMgQ09ORklHX0VYVENPTl9SVDg5NzNBIGlzIG5vdCBzZXQKK0NPTkZJR19F WFRDT05fU001NTAyPW0KKyMgQ09ORklHX0VYVENPTl9VU0JfR1BJTyBpcyBub3Qgc2V0CitDT05G SUdfRVhUQ09OX1VTQkNfVFVTQjMyMD1tCitDT05GSUdfTUVNT1JZPXkKK0NPTkZJR19BUk1fUEwx NzJfTVBNQz1tCitDT05GSUdfRlBHQV9ERkxfRU1JRj1tCitDT05GSUdfUkVORVNBU19SUENJRj1t CitDT05GSUdfSUlPPW0KK0NPTkZJR19JSU9fQlVGRkVSPXkKK0NPTkZJR19JSU9fQlVGRkVSX0NC PW0KK0NPTkZJR19JSU9fQlVGRkVSX0RNQT1tCitDT05GSUdfSUlPX0JVRkZFUl9ETUFFTkdJTkU9 bQorQ09ORklHX0lJT19CVUZGRVJfSFdfQ09OU1VNRVI9bQorQ09ORklHX0lJT19LRklGT19CVUY9 bQorQ09ORklHX0lJT19UUklHR0VSRURfQlVGRkVSPW0KK0NPTkZJR19JSU9fQ09ORklHRlM9bQor Q09ORklHX0lJT19UUklHR0VSPXkKK0NPTkZJR19JSU9fQ09OU1VNRVJTX1BFUl9UUklHR0VSPTIK K0NPTkZJR19JSU9fU1dfREVWSUNFPW0KK0NPTkZJR19JSU9fU1dfVFJJR0dFUj1tCitDT05GSUdf SUlPX1RSSUdHRVJFRF9FVkVOVD1tCisKKyMKKyMgQWNjZWxlcm9tZXRlcnMKKyMKKyMgQ09ORklH X0FESVMxNjIwMSBpcyBub3Qgc2V0CisjIENPTkZJR19BRElTMTYyMDkgaXMgbm90IHNldAorQ09O RklHX0FEWEwzMTM9bQorQ09ORklHX0FEWEwzMTNfSTJDPW0KK0NPTkZJR19BRFhMMzEzX1NQST1t CitDT05GSUdfQURYTDM1NT1tCitDT05GSUdfQURYTDM1NV9JMkM9bQorQ09ORklHX0FEWEwzNTVf U1BJPW0KK0NPTkZJR19BRFhMMzY3PW0KK0NPTkZJR19BRFhMMzY3X1NQST1tCitDT05GSUdfQURY TDM2N19JMkM9bQorQ09ORklHX0FEWEwzNzI9bQorQ09ORklHX0FEWEwzNzJfU1BJPW0KK0NPTkZJ R19BRFhMMzcyX0kyQz1tCitDT05GSUdfQk1BMjIwPW0KK0NPTkZJR19CTUE0MDA9bQorQ09ORklH X0JNQTQwMF9JMkM9bQorQ09ORklHX0JNQTQwMF9TUEk9bQorQ09ORklHX0JNQzE1MF9BQ0NFTD1t CitDT05GSUdfQk1DMTUwX0FDQ0VMX0kyQz1tCitDT05GSUdfQk1DMTUwX0FDQ0VMX1NQST1tCitD T05GSUdfQk1JMDg4X0FDQ0VMPW0KK0NPTkZJR19CTUkwODhfQUNDRUxfU1BJPW0KK0NPTkZJR19E QTI4MD1tCitDT05GSUdfREEzMTE9bQorQ09ORklHX0RNQVJEMDY9bQorQ09ORklHX0RNQVJEMDk9 bQorQ09ORklHX0RNQVJEMTA9bQorQ09ORklHX0ZYTFM4OTYyQUY9bQorQ09ORklHX0ZYTFM4OTYy QUZfSTJDPW0KK0NPTkZJR19GWExTODk2MkFGX1NQST1tCitDT05GSUdfSElEX1NFTlNPUl9BQ0NF TF8zRD1tCitDT05GSUdfSUlPX0tYMDIyQT1tCitDT05GSUdfSUlPX0tYMDIyQV9TUEk9bQorQ09O RklHX0lJT19LWDAyMkFfSTJDPW0KKyMgQ09ORklHX0tYU0Q5IGlzIG5vdCBzZXQKKyMgQ09ORklH X0tYQ0pLMTAxMyBpcyBub3Qgc2V0CitDT05GSUdfTUMzMjMwPW0KK0NPTkZJR19NTUE3NDU1PW0K K0NPTkZJR19NTUE3NDU1X0kyQz1tCitDT05GSUdfTU1BNzQ1NV9TUEk9bQorQ09ORklHX01NQTc2 NjA9bQorIyBDT05GSUdfTU1BODQ1MiBpcyBub3Qgc2V0CitDT05GSUdfTU1BOTU1MV9DT1JFPW0K K0NPTkZJR19NTUE5NTUxPW0KK0NPTkZJR19NTUE5NTUzPW0KK0NPTkZJR19NU0EzMTE9bQorQ09O RklHX01YQzQwMDU9bQorQ09ORklHX01YQzYyNTU9bQorIyBDT05GSUdfU0NBMzAwMCBpcyBub3Qg c2V0CitDT05GSUdfU0NBMzMwMD1tCitDT05GSUdfU1RLODMxMj1tCitDT05GSUdfU1RLOEJBNTA9 bQorIyBlbmQgb2YgQWNjZWxlcm9tZXRlcnMKKworIworIyBBbmFsb2cgdG8gZGlnaXRhbCBjb252 ZXJ0ZXJzCisjCitDT05GSUdfQURfU0lHTUFfREVMVEE9bQorQ09ORklHX0FENDEzMD1tCitDT05G SUdfQUQ3MDkxUjU9bQorQ09ORklHX0FENzEyND1tCisjIENPTkZJR19BRDcxOTIgaXMgbm90IHNl dAorIyBDT05GSUdfQUQ3MjY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzI4MCBpcyBub3Qgc2V0 CisjIENPTkZJR19BRDcyOTEgaXMgbm90IHNldAorQ09ORklHX0FENzI5Mj1tCisjIENPTkZJR19B RDcyOTggaXMgbm90IHNldAorIyBDT05GSUdfQUQ3NDc2IGlzIG5vdCBzZXQKK0NPTkZJR19BRDc2 MDY9bQorQ09ORklHX0FENzYwNl9JRkFDRV9QQVJBTExFTD1tCitDT05GSUdfQUQ3NjA2X0lGQUNF X1NQST1tCitDT05GSUdfQUQ3NzY2PW0KK0NPTkZJR19BRDc3NjhfMT1tCisjIENPTkZJR19BRDc3 ODAgaXMgbm90IHNldAorIyBDT05GSUdfQUQ3NzkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzc5 MyBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc4ODcgaXMgbm90IHNldAorIyBDT05GSUdfQUQ3OTIz IGlzIG5vdCBzZXQKK0NPTkZJR19BRDc5NDk9bQorIyBDT05GSUdfQUQ3OTlYIGlzIG5vdCBzZXQK K0NPTkZJR19BRDk0Njc9bQorQ09ORklHX0FESV9BWElfQURDPW0KK0NPTkZJR19BWFAyMFhfQURD PW0KK0NPTkZJR19BWFAyODhfQURDPW0KKyMgQ09ORklHX0NDMTAwMDFfQURDIGlzIG5vdCBzZXQK K0NPTkZJR19DUENBUF9BREM9bQorQ09ORklHX0RMTjJfQURDPW0KK0NPTkZJR19FTlZFTE9QRV9E RVRFQ1RPUj1tCitDT05GSUdfSEk4NDM1PW0KK0NPTkZJR19IWDcxMT1tCitDT05GSUdfSU5BMlhY X0FEQz1tCitDT05GSUdfTFRDMjQ3MT1tCitDT05GSUdfTFRDMjQ4NT1tCitDT05GSUdfTFRDMjQ5 Nj1tCitDT05GSUdfTFRDMjQ5Nz1tCisjIENPTkZJR19NQVgxMDI3IGlzIG5vdCBzZXQKK0NPTkZJ R19NQVgxMTEwMD1tCitDT05GSUdfTUFYMTExOD1tCitDT05GSUdfTUFYMTEyMDU9bQorQ09ORklH X01BWDExNDEwPW0KK0NPTkZJR19NQVgxMjQxPW0KKyMgQ09ORklHX01BWDEzNjMgaXMgbm90IHNl dAorQ09ORklHX01BWDk2MTE9bQorIyBDT05GSUdfTUNQMzIwWCBpcyBub3Qgc2V0CisjIENPTkZJ R19NQ1AzNDIyIGlzIG5vdCBzZXQKK0NPTkZJR19NQ1AzOTExPW0KK0NPTkZJR19NRURJQVRFS19N VDYzNzBfQURDPW0KK0NPTkZJR19NUDI2MjlfQURDPW0KKyMgQ09ORklHX05BVTc4MDIgaXMgbm90 IHNldAorQ09ORklHX1FDT01fVkFEQ19DT01NT049bQorIyBDT05GSUdfUUNPTV9TUE1JX0lBREMg aXMgbm90IHNldAorIyBDT05GSUdfUUNPTV9TUE1JX1ZBREMgaXMgbm90IHNldAorQ09ORklHX1FD T01fU1BNSV9BREM1PW0KK0NPTkZJR19SSUNIVEVLX1JUUTYwNTY9bQorQ09ORklHX1JaRzJMX0FE Qz1tCitDT05GSUdfU0RfQURDX01PRFVMQVRPUj1tCitDT05GSUdfU1VONElfR1BBREM9bQorIyBD T05GSUdfVElfQURDMDgxQyBpcyBub3Qgc2V0CitDT05GSUdfVElfQURDMDgzMj1tCitDT05GSUdf VElfQURDMDg0UzAyMT1tCitDT05GSUdfVElfQURDMTIxMzg9bQorQ09ORklHX1RJX0FEQzEwOFMx MDI9bQorIyBDT05GSUdfVElfQURDMTI4UzA1MiBpcyBub3Qgc2V0CitDT05GSUdfVElfQURDMTYx UzYyNj1tCitDT05GSUdfVElfQURTMTAxNT1tCitDT05GSUdfVElfQURTNzkyND1tCitDT05GSUdf VElfQURTNzk1MD1tCitDT05GSUdfVElfQURTODM0ND1tCisjIENPTkZJR19USV9BRFM4Njg4IGlz IG5vdCBzZXQKK0NPTkZJR19USV9BRFMxMjRTMDg9bQorQ09ORklHX1RJX0FEUzEzMUUwOD1tCisj IENPTkZJR19USV9BTTMzNVhfQURDIGlzIG5vdCBzZXQKK0NPTkZJR19USV9MTVA5MjA2ND1tCitD T05GSUdfVElfVExDNDU0MT1tCitDT05GSUdfVElfVFNDMjA0Nj1tCisjIENPTkZJR19WRjYxMF9B REMgaXMgbm90IHNldAorIyBDT05GSUdfVklQRVJCT0FSRF9BREMgaXMgbm90IHNldAorQ09ORklH X1hJTElOWF9YQURDPW0KKyMgZW5kIG9mIEFuYWxvZyB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKwor IworIyBBbmFsb2cgdG8gZGlnaXRhbCBhbmQgZGlnaXRhbCB0byBhbmFsb2cgY29udmVydGVycwor IworQ09ORklHX0FENzQxMTU9bQorQ09ORklHX0FENzQ0MTNSPW0KKyMgZW5kIG9mIEFuYWxvZyB0 byBkaWdpdGFsIGFuZCBkaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCisKKyMKKyMgQW5hbG9n IEZyb250IEVuZHMKKyMKK0NPTkZJR19JSU9fUkVTQ0FMRT1tCisjIGVuZCBvZiBBbmFsb2cgRnJv bnQgRW5kcworCisjCisjIEFtcGxpZmllcnMKKyMKKyMgQ09ORklHX0FEODM2NiBpcyBub3Qgc2V0 CitDT05GSUdfQURBNDI1MD1tCitDT05GSUdfSE1DNDI1PW0KKyMgZW5kIG9mIEFtcGxpZmllcnMK KworIworIyBDYXBhY2l0YW5jZSB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKKyMgQ09ORklHX0FE NzE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc3NDYgaXMgbm90IHNldAorIyBlbmQgb2YgQ2Fw YWNpdGFuY2UgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisKKyMKKyMgQ2hlbWljYWwgU2Vuc29ycwor IworQ09ORklHX0FUTEFTX1BIX1NFTlNPUj1tCitDT05GSUdfQVRMQVNfRVpPX1NFTlNPUj1tCitD T05GSUdfQk1FNjgwPW0KK0NPTkZJR19CTUU2ODBfSTJDPW0KK0NPTkZJR19CTUU2ODBfU1BJPW0K K0NPTkZJR19DQ1M4MTE9bQorQ09ORklHX0lBUUNPUkU9bQorQ09ORklHX1BNUzcwMDM9bQorQ09O RklHX1NDRDMwX0NPUkU9bQorQ09ORklHX1NDRDMwX0kyQz1tCitDT05GSUdfU0NEMzBfU0VSSUFM PW0KK0NPTkZJR19TQ0Q0WD1tCisjIENPTkZJR19TRU5TSVJJT05fU0dQMzAgaXMgbm90IHNldAor IyBDT05GSUdfU0VOU0lSSU9OX1NHUDQwIGlzIG5vdCBzZXQKK0NPTkZJR19TUFMzMD1tCitDT05G SUdfU1BTMzBfSTJDPW0KK0NPTkZJR19TUFMzMF9TRVJJQUw9bQorQ09ORklHX1NFTlNFQUlSX1NV TlJJU0VfQ08yPW0KK0NPTkZJR19WWjg5WD1tCisjIGVuZCBvZiBDaGVtaWNhbCBTZW5zb3JzCisK KyMKKyMgSGlkIFNlbnNvciBJSU8gQ29tbW9uCisjCitDT05GSUdfSElEX1NFTlNPUl9JSU9fQ09N TU9OPW0KK0NPTkZJR19ISURfU0VOU09SX0lJT19UUklHR0VSPW0KKyMgZW5kIG9mIEhpZCBTZW5z b3IgSUlPIENvbW1vbgorCitDT05GSUdfSUlPX01TX1NFTlNPUlNfSTJDPW0KKworIworIyBJSU8g U0NNSSBTZW5zb3JzCisjCisjIGVuZCBvZiBJSU8gU0NNSSBTZW5zb3JzCisKKyMKKyMgU1NQIFNl bnNvciBDb21tb24KKyMKKyMgQ09ORklHX0lJT19TU1BfU0VOU09SSFVCIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIFNTUCBTZW5zb3IgQ29tbW9uCisKK0NPTkZJR19JSU9fU1RfU0VOU09SU19JMkM9bQor Q09ORklHX0lJT19TVF9TRU5TT1JTX1NQST1tCitDT05GSUdfSUlPX1NUX1NFTlNPUlNfQ09SRT1t CisKKyMKKyMgRGlnaXRhbCB0byBhbmFsb2cgY29udmVydGVycworIworQ09ORklHX0FEMzU1MlI9 bQorIyBDT05GSUdfQUQ1MDY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTM2MCBpcyBub3Qgc2V0 CisjIENPTkZJR19BRDUzODAgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1NDIxIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FENTQ0NiBpcyBub3Qgc2V0CisjIENPTkZJR19BRDU0NDkgaXMgbm90IHNldAor Q09ORklHX0FENTU5MlJfQkFTRT1tCitDT05GSUdfQUQ1NTkyUj1tCisjIENPTkZJR19BRDU1OTNS IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTUwNCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDU2MjRS X1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTFRDMjY4OD1tCitDT05GSUdfQUQ1Njg2PW0KK0NPTkZJ R19BRDU2ODZfU1BJPW0KK0NPTkZJR19BRDU2OTZfSTJDPW0KKyMgQ09ORklHX0FENTc1NSBpcyBu b3Qgc2V0CitDT05GSUdfQUQ1NzU4PW0KK0NPTkZJR19BRDU3NjE9bQorIyBDT05GSUdfQUQ1NzY0 IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTc2NiBpcyBub3Qgc2V0CitDT05GSUdfQUQ1NzcwUj1t CisjIENPTkZJR19BRDU3OTEgaXMgbm90IHNldAorQ09ORklHX0FENzI5Mz1tCisjIENPTkZJR19B RDczMDMgaXMgbm90IHNldAorQ09ORklHX0FEODgwMT1tCitDT05GSUdfRFBPVF9EQUM9bQorQ09O RklHX0RTNDQyND1tCitDT05GSUdfTFRDMTY2MD1tCitDT05GSUdfTFRDMjYzMj1tCitDT05GSUdf TTYyMzMyPW0KKyMgQ09ORklHX01BWDUxNyBpcyBub3Qgc2V0CitDT05GSUdfTUFYNTUyMj1tCisj IENPTkZJR19NQVg1ODIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01DUDQ3MjUgaXMgbm90IHNldAor IyBDT05GSUdfTUNQNDkyMiBpcyBub3Qgc2V0CitDT05GSUdfVElfREFDMDgyUzA4NT1tCitDT05G SUdfVElfREFDNTU3MT1tCitDT05GSUdfVElfREFDNzMxMT1tCitDT05GSUdfVElfREFDNzYxMj1t CisjIENPTkZJR19WRjYxMF9EQUMgaXMgbm90IHNldAorIyBlbmQgb2YgRGlnaXRhbCB0byBhbmFs b2cgY29udmVydGVycworCisjCisjIElJTyBkdW1teSBkcml2ZXIKKyMKKyMgQ09ORklHX0lJT19T SU1QTEVfRFVNTVkgaXMgbm90IHNldAorIyBlbmQgb2YgSUlPIGR1bW15IGRyaXZlcgorCisjCisj IEZpbHRlcnMKKyMKK0NPTkZJR19BRE1WODgxOD1tCisjIGVuZCBvZiBGaWx0ZXJzCisKKyMKKyMg RnJlcXVlbmN5IFN5bnRoZXNpemVycyBERFMvUExMCisjCisKKyMKKyMgQ2xvY2sgR2VuZXJhdG9y L0Rpc3RyaWJ1dGlvbgorIworIyBDT05GSUdfQUQ5NTIzIGlzIG5vdCBzZXQKKyMgZW5kIG9mIENs b2NrIEdlbmVyYXRvci9EaXN0cmlidXRpb24KKworIworIyBQaGFzZS1Mb2NrZWQgTG9vcCAoUExM KSBmcmVxdWVuY3kgc3ludGhlc2l6ZXJzCisjCisjIENPTkZJR19BREY0MzUwIGlzIG5vdCBzZXQK K0NPTkZJR19BREY0MzcxPW0KK0NPTkZJR19BREY0Mzc3PW0KK0NPTkZJR19BRE1WMTAxMz1tCitD T05GSUdfQURNVjEwMTQ9bQorQ09ORklHX0FETVY0NDIwPW0KKyMgQ09ORklHX0FEUkY2NzgwIGlz IG5vdCBzZXQKKyMgZW5kIG9mIFBoYXNlLUxvY2tlZCBMb29wIChQTEwpIGZyZXF1ZW5jeSBzeW50 aGVzaXplcnMKKyMgZW5kIG9mIEZyZXF1ZW5jeSBTeW50aGVzaXplcnMgRERTL1BMTAorCisjCisj IERpZ2l0YWwgZ3lyb3Njb3BlIHNlbnNvcnMKKyMKKyMgQ09ORklHX0FESVMxNjA4MCBpcyBub3Qg c2V0CisjIENPTkZJR19BRElTMTYxMzAgaXMgbm90IHNldAorIyBDT05GSUdfQURJUzE2MTM2IGlz IG5vdCBzZXQKKyMgQ09ORklHX0FESVMxNjI2MCBpcyBub3Qgc2V0CitDT05GSUdfQURYUlMyOTA9 bQorIyBDT05GSUdfQURYUlM0NTAgaXMgbm90IHNldAorIyBDT05GSUdfQk1HMTYwIGlzIG5vdCBz ZXQKK0NPTkZJR19GWEFTMjEwMDJDPW0KK0NPTkZJR19GWEFTMjEwMDJDX0kyQz1tCitDT05GSUdf RlhBUzIxMDAyQ19TUEk9bQorQ09ORklHX0hJRF9TRU5TT1JfR1lST18zRD1tCitDT05GSUdfTVBV MzA1MD1tCitDT05GSUdfTVBVMzA1MF9JMkM9bQorIyBDT05GSUdfSUlPX1NUX0dZUk9fM0FYSVMg aXMgbm90IHNldAorIyBDT05GSUdfSVRHMzIwMCBpcyBub3Qgc2V0CisjIGVuZCBvZiBEaWdpdGFs IGd5cm9zY29wZSBzZW5zb3JzCisKKyMKKyMgSGVhbHRoIFNlbnNvcnMKKyMKKworIworIyBIZWFy dCBSYXRlIE1vbml0b3JzCisjCitDT05GSUdfQUZFNDQwMz1tCitDT05GSUdfQUZFNDQwND1tCitD T05GSUdfTUFYMzAxMDA9bQorQ09ORklHX01BWDMwMTAyPW0KKyMgZW5kIG9mIEhlYXJ0IFJhdGUg TW9uaXRvcnMKKyMgZW5kIG9mIEhlYWx0aCBTZW5zb3JzCisKKyMKKyMgSHVtaWRpdHkgc2Vuc29y cworIworQ09ORklHX0FNMjMxNT1tCisjIENPTkZJR19ESFQxMSBpcyBub3Qgc2V0CitDT05GSUdf SERDMTAwWD1tCitDT05GSUdfSERDMjAxMD1tCitDT05GSUdfSElEX1NFTlNPUl9IVU1JRElUWT1t CitDT05GSUdfSFRTMjIxPW0KK0NPTkZJR19IVFMyMjFfSTJDPW0KK0NPTkZJR19IVFMyMjFfU1BJ PW0KK0NPTkZJR19IVFUyMT1tCisjIENPTkZJR19TSTcwMDUgaXMgbm90IHNldAorIyBDT05GSUdf U0k3MDIwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEh1bWlkaXR5IHNlbnNvcnMKKworIworIyBJbmVy dGlhbCBtZWFzdXJlbWVudCB1bml0cworIworIyBDT05GSUdfQURJUzE2NDAwIGlzIG5vdCBzZXQK K0NPTkZJR19BRElTMTY0NjA9bQorQ09ORklHX0FESVMxNjQ3NT1tCisjIENPTkZJR19BRElTMTY0 ODAgaXMgbm90IHNldAorQ09ORklHX0JNSTE2MD1tCitDT05GSUdfQk1JMTYwX0kyQz1tCitDT05G SUdfQk1JMTYwX1NQST1tCitDT05GSUdfQk9TQ0hfQk5PMDU1PW0KK0NPTkZJR19CT1NDSF9CTk8w NTVfU0VSSUFMPW0KK0NPTkZJR19CT1NDSF9CTk8wNTVfSTJDPW0KK0NPTkZJR19GWE9TODcwMD1t CitDT05GSUdfRlhPUzg3MDBfSTJDPW0KK0NPTkZJR19GWE9TODcwMF9TUEk9bQorQ09ORklHX0tN WDYxPW0KK0NPTkZJR19JTlZfSUNNNDI2MDA9bQorQ09ORklHX0lOVl9JQ000MjYwMF9JMkM9bQor Q09ORklHX0lOVl9JQ000MjYwMF9TUEk9bQorQ09ORklHX0lOVl9NUFU2MDUwX0lJTz1tCitDT05G SUdfSU5WX01QVTYwNTBfSTJDPW0KK0NPTkZJR19JTlZfTVBVNjA1MF9TUEk9bQorQ09ORklHX0lJ T19TVF9MU002RFNYPW0KK0NPTkZJR19JSU9fU1RfTFNNNkRTWF9JMkM9bQorQ09ORklHX0lJT19T VF9MU002RFNYX1NQST1tCitDT05GSUdfSUlPX1NUX0xTTTZEU1hfSTNDPW0KKyMgZW5kIG9mIElu ZXJ0aWFsIG1lYXN1cmVtZW50IHVuaXRzCisKK0NPTkZJR19JSU9fQURJU19MSUI9bQorQ09ORklH X0lJT19BRElTX0xJQl9CVUZGRVI9eQorCisjCisjIExpZ2h0IHNlbnNvcnMKKyMKKyMgQ09ORklH X0FESkRfUzMxMSBpcyBub3Qgc2V0CitDT05GSUdfQURVWDEwMjA9bQorQ09ORklHX0FMMzAxMD1t CisjIENPTkZJR19BTDMzMjBBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FQRFM5MzAwIGlzIG5vdCBz ZXQKK0NPTkZJR19BUERTOTk2MD1tCitDT05GSUdfQVM3MzIxMT1tCisjIENPTkZJR19CSDE3NTAg aXMgbm90IHNldAorIyBDT05GSUdfQkgxNzgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NNMzIxODEg aXMgbm90IHNldAorQ09ORklHX0NNMzIzMj1tCitDT05GSUdfQ00zMzIzPW0KK0NPTkZJR19DTTM2 MDU9bQorIyBDT05GSUdfQ00zNjY1MSBpcyBub3Qgc2V0CitDT05GSUdfR1AyQVAwMDI9bQorIyBD T05GSUdfR1AyQVAwMjBBMDBGIGlzIG5vdCBzZXQKK0NPTkZJR19JUVM2MjFfQUxTPW0KKyMgQ09O RklHX1NFTlNPUlNfSVNMMjkwMTggaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19JU0wyOTAy OCBpcyBub3Qgc2V0CisjIENPTkZJR19JU0wyOTEyNSBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NF TlNPUl9BTFM9bQorQ09ORklHX0hJRF9TRU5TT1JfUFJPWD1tCitDT05GSUdfSlNBMTIxMj1tCitD T05GSUdfUlBSMDUyMT1tCisjIENPTkZJR19TRU5TT1JTX0xNMzUzMyBpcyBub3Qgc2V0CisjIENP TkZJR19MVFI1MDEgaXMgbm90IHNldAorQ09ORklHX0xUUkYyMTZBPW0KK0NPTkZJR19MVjAxMDRD Uz1tCisjIENPTkZJR19NQVg0NDAwMCBpcyBub3Qgc2V0CitDT05GSUdfTUFYNDQwMDk9bQorQ09O RklHX05PQTEzMDU9bQorQ09ORklHX09QVDMwMDE9bQorQ09ORklHX1BBMTIyMDMwMDE9bQorQ09O RklHX1NJMTEzMz1tCitDT05GSUdfU0kxMTQ1PW0KKyMgQ09ORklHX1NUSzMzMTAgaXMgbm90IHNl dAorQ09ORklHX1NUX1VWSVMyNT1tCitDT05GSUdfU1RfVVZJUzI1X0kyQz1tCitDT05GSUdfU1Rf VVZJUzI1X1NQST1tCisjIENPTkZJR19UQ1MzNDE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUzM0 NzIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTYzIGlzIG5vdCBzZXQKKyMgQ09O RklHX1RTTDI1ODMgaXMgbm90IHNldAorQ09ORklHX1RTTDI1OTE9bQorQ09ORklHX1RTTDI3NzI9 bQorIyBDT05GSUdfVFNMNDUzMSBpcyBub3Qgc2V0CitDT05GSUdfVVM1MTgyRD1tCisjIENPTkZJ R19WQ05MNDAwMCBpcyBub3Qgc2V0CitDT05GSUdfVkNOTDQwMzU9bQorQ09ORklHX1ZFTUw2MDMw PW0KKyMgQ09ORklHX1ZFTUw2MDcwIGlzIG5vdCBzZXQKK0NPTkZJR19WTDYxODA9bQorQ09ORklH X1pPUFQyMjAxPW0KKyMgZW5kIG9mIExpZ2h0IHNlbnNvcnMKKworIworIyBNYWduZXRvbWV0ZXIg c2Vuc29ycworIworQ09ORklHX0FLODk3ND1tCisjIENPTkZJR19BSzg5NzUgaXMgbm90IHNldAor IyBDT05GSUdfQUswOTkxMSBpcyBub3Qgc2V0CisjIENPTkZJR19CTUMxNTBfTUFHTl9JMkMgaXMg bm90IHNldAorIyBDT05GSUdfQk1DMTUwX01BR05fU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01B RzMxMTAgaXMgbm90IHNldAorQ09ORklHX0hJRF9TRU5TT1JfTUFHTkVUT01FVEVSXzNEPW0KKyMg Q09ORklHX01NQzM1MjQwIGlzIG5vdCBzZXQKK0NPTkZJR19JSU9fU1RfTUFHTl8zQVhJUz1tCitD T05GSUdfSUlPX1NUX01BR05fSTJDXzNBWElTPW0KK0NPTkZJR19JSU9fU1RfTUFHTl9TUElfM0FY SVM9bQorIyBDT05GSUdfU0VOU09SU19ITUM1ODQzX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19T RU5TT1JTX0hNQzU4NDNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX1JNMzEwMD1tCitD T05GSUdfU0VOU09SU19STTMxMDBfSTJDPW0KK0NPTkZJR19TRU5TT1JTX1JNMzEwMF9TUEk9bQor Q09ORklHX1RJX1RNQUc1MjczPW0KKyMgQ09ORklHX1lBTUFIQV9ZQVM1MzAgaXMgbm90IHNldAor IyBlbmQgb2YgTWFnbmV0b21ldGVyIHNlbnNvcnMKKworIworIyBNdWx0aXBsZXhlcnMKKyMKK0NP TkZJR19JSU9fTVVYPW0KKyMgZW5kIG9mIE11bHRpcGxleGVycworCisjCisjIEluY2xpbm9tZXRl ciBzZW5zb3JzCisjCitDT05GSUdfSElEX1NFTlNPUl9JTkNMSU5PTUVURVJfM0Q9bQorQ09ORklH X0hJRF9TRU5TT1JfREVWSUNFX1JPVEFUSU9OPW0KKyMgZW5kIG9mIEluY2xpbm9tZXRlciBzZW5z b3JzCisKKyMKKyMgVHJpZ2dlcnMgLSBzdGFuZGFsb25lCisjCitDT05GSUdfSUlPX0hSVElNRVJf VFJJR0dFUj1tCisjIENPTkZJR19JSU9fSU5URVJSVVBUX1RSSUdHRVIgaXMgbm90IHNldAorQ09O RklHX0lJT19USUdIVExPT1BfVFJJR0dFUj1tCisjIENPTkZJR19JSU9fU1lTRlNfVFJJR0dFUiBp cyBub3Qgc2V0CisjIGVuZCBvZiBUcmlnZ2VycyAtIHN0YW5kYWxvbmUKKworIworIyBMaW5lYXIg YW5kIGFuZ3VsYXIgcG9zaXRpb24gc2Vuc29ycworIworQ09ORklHX0lRUzYyNF9QT1M9bQorIyBD T05GSUdfSElEX1NFTlNPUl9DVVNUT01fSU5URUxfSElOR0UgaXMgbm90IHNldAorIyBlbmQgb2Yg TGluZWFyIGFuZCBhbmd1bGFyIHBvc2l0aW9uIHNlbnNvcnMKKworIworIyBEaWdpdGFsIHBvdGVu dGlvbWV0ZXJzCisjCitDT05GSUdfQUQ1MTEwPW0KK0NPTkZJR19BRDUyNzI9bQorIyBDT05GSUdf RFMxODAzIGlzIG5vdCBzZXQKK0NPTkZJR19NQVg1NDMyPW0KK0NPTkZJR19NQVg1NDgxPW0KK0NP TkZJR19NQVg1NDg3PW0KK0NPTkZJR19NQ1A0MDE4PW0KKyMgQ09ORklHX01DUDQxMzEgaXMgbm90 IHNldAorQ09ORklHX01DUDQ1MzE9bQorQ09ORklHX01DUDQxMDEwPW0KK0NPTkZJR19UUEwwMTAy PW0KKyMgZW5kIG9mIERpZ2l0YWwgcG90ZW50aW9tZXRlcnMKKworIworIyBEaWdpdGFsIHBvdGVu dGlvc3RhdHMKKyMKK0NPTkZJR19MTVA5MTAwMD1tCisjIGVuZCBvZiBEaWdpdGFsIHBvdGVudGlv c3RhdHMKKworIworIyBQcmVzc3VyZSBzZW5zb3JzCisjCitDT05GSUdfQUJQMDYwTUc9bQorQ09O RklHX0JNUDI4MD1tCitDT05GSUdfQk1QMjgwX0kyQz1tCitDT05GSUdfQk1QMjgwX1NQST1tCitD T05GSUdfRExITDYwRD1tCitDT05GSUdfRFBTMzEwPW0KK0NPTkZJR19ISURfU0VOU09SX1BSRVNT PW0KKyMgQ09ORklHX0hQMDMgaXMgbm90IHNldAorQ09ORklHX0lDUDEwMTAwPW0KK0NPTkZJR19N UEwxMTU9bQorQ09ORklHX01QTDExNV9JMkM9bQorQ09ORklHX01QTDExNV9TUEk9bQorIyBDT05G SUdfTVBMMzExNSBpcyBub3Qgc2V0CisjIENPTkZJR19NUzU2MTEgaXMgbm90IHNldAorQ09ORklH X01TNTYzNz1tCitDT05GSUdfSUlPX1NUX1BSRVNTPW0KK0NPTkZJR19JSU9fU1RfUFJFU1NfSTJD PW0KK0NPTkZJR19JSU9fU1RfUFJFU1NfU1BJPW0KKyMgQ09ORklHX1Q1NDAzIGlzIG5vdCBzZXQK KyMgQ09ORklHX0hQMjA2QyBpcyBub3Qgc2V0CitDT05GSUdfWlBBMjMyNj1tCitDT05GSUdfWlBB MjMyNl9JMkM9bQorQ09ORklHX1pQQTIzMjZfU1BJPW0KKyMgZW5kIG9mIFByZXNzdXJlIHNlbnNv cnMKKworIworIyBMaWdodG5pbmcgc2Vuc29ycworIworIyBDT05GSUdfQVMzOTM1IGlzIG5vdCBz ZXQKKyMgZW5kIG9mIExpZ2h0bmluZyBzZW5zb3JzCisKKyMKKyMgUHJveGltaXR5IGFuZCBkaXN0 YW5jZSBzZW5zb3JzCisjCitDT05GSUdfSVNMMjk1MDE9bQorQ09ORklHX0xJREFSX0xJVEVfVjI9 bQorQ09ORklHX01CMTIzMj1tCitDT05GSUdfUElORz1tCitDT05GSUdfUkZENzc0MDI9bQorQ09O RklHX1NSRjA0PW0KK0NPTkZJR19TWF9DT01NT049bQorQ09ORklHX1NYOTMxMD1tCitDT05GSUdf U1g5MzI0PW0KK0NPTkZJR19TWDkzNjA9bQorQ09ORklHX1NYOTUwMD1tCitDT05GSUdfU1JGMDg9 bQorQ09ORklHX1ZDTkwzMDIwPW0KK0NPTkZJR19WTDUzTDBYX0kyQz1tCisjIGVuZCBvZiBQcm94 aW1pdHkgYW5kIGRpc3RhbmNlIHNlbnNvcnMKKworIworIyBSZXNvbHZlciB0byBkaWdpdGFsIGNv bnZlcnRlcnMKKyMKKyMgQ09ORklHX0FEMlM5MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDJTMTIw MCBpcyBub3Qgc2V0CisjIGVuZCBvZiBSZXNvbHZlciB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKwor IworIyBUZW1wZXJhdHVyZSBzZW5zb3JzCisjCitDT05GSUdfSVFTNjIwQVRfVEVNUD1tCitDT05G SUdfTFRDMjk4Mz1tCitDT05GSUdfTUFYSU1fVEhFUk1PQ09VUExFPW0KK0NPTkZJR19ISURfU0VO U09SX1RFTVA9bQorIyBDT05GSUdfTUxYOTA2MTQgaXMgbm90IHNldAorQ09ORklHX01MWDkwNjMy PW0KKyMgQ09ORklHX1RNUDAwNiBpcyBub3Qgc2V0CitDT05GSUdfVE1QMDA3PW0KK0NPTkZJR19U TVAxMTc9bQorQ09ORklHX1RTWVMwMT1tCitDT05GSUdfVFNZUzAyRD1tCitDT05GSUdfTUFYMzAy MDg9bQorQ09ORklHX01BWDMxODU2PW0KK0NPTkZJR19NQVgzMTg2NT1tCisjIGVuZCBvZiBUZW1w ZXJhdHVyZSBzZW5zb3JzCisKK0NPTkZJR19OVEI9eQorQ09ORklHX05UQl9NU0k9eQorQ09ORklH X05UQl9JRFQ9bQorIyBDT05GSUdfTlRCX0VQRiBpcyBub3Qgc2V0CitDT05GSUdfTlRCX1NXSVRD SFRFQz1tCisjIENPTkZJR19OVEJfUElOR1BPTkcgaXMgbm90IHNldAorIyBDT05GSUdfTlRCX1RP T0wgaXMgbm90IHNldAorQ09ORklHX05UQl9QRVJGPW0KKyMgQ09ORklHX05UQl9NU0lfVEVTVCBp cyBub3Qgc2V0CitDT05GSUdfTlRCX1RSQU5TUE9SVD1tCitDT05GSUdfUFdNPXkKK0NPTkZJR19Q V01fU1lTRlM9eQorIyBDT05GSUdfUFdNX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QV01fQVRN RUxfSExDRENfUFdNPW0KK0NPTkZJR19QV01fQVRNRUxfVENCPW0KK0NPTkZJR19QV01fQ0xLPW0K K0NPTkZJR19QV01fRFdDPW0KKyMgQ09ORklHX1BXTV9GU0xfRlRNIGlzIG5vdCBzZXQKK0NPTkZJ R19QV01fSVFTNjIwQT1tCitDT05GSUdfUFdNX0xQMzk0Mz1tCitDT05GSUdfUFdNX05UWEVDPW0K KyMgQ09ORklHX1BXTV9QQ0E5Njg1IGlzIG5vdCBzZXQKK0NPTkZJR19QV01fUkNBUj1tCitDT05G SUdfUFdNX1JFTkVTQVNfVFBVPW0KK0NPTkZJR19QV01fU0lGSVZFPW0KK0NPTkZJR19QV01fU1RB UkZJVkVfUFRDPW0KK0NPTkZJR19QV01fU1VONEk9bQorQ09ORklHX1BXTV9YSUxJTlg9bQorCisj CisjIElSUSBjaGlwIHN1cHBvcnQKKyMKK0NPTkZJR19JUlFDSElQPXkKK0NPTkZJR19BTF9GSUM9 eQorQ09ORklHX01BREVSQV9JUlE9bQorQ09ORklHX1JFTkVTQVNfUlpHMkxfSVJRQz15CisjIENP TkZJR19YSUxJTlhfSU5UQyBpcyBub3Qgc2V0CitDT05GSUdfUklTQ1ZfSU5UQz15CitDT05GSUdf U0lGSVZFX1BMSUM9eQorIyBlbmQgb2YgSVJRIGNoaXAgc3VwcG9ydAorCitDT05GSUdfSVBBQ0tf QlVTPW0KK0NPTkZJR19CT0FSRF9UUENJMjAwPW0KK0NPTkZJR19TRVJJQUxfSVBPQ1RBTD1tCitD T05GSUdfUkVTRVRfQ09OVFJPTExFUj15CitDT05GSUdfUkVTRVRfUE9MQVJGSVJFX1NPQz15CitD T05GSUdfUkVTRVRfUlpHMkxfVVNCUEhZX0NUUkw9bQorQ09ORklHX1JFU0VUX1NJTVBMRT15CitD T05GSUdfUkVTRVRfU1VOWEk9eQorQ09ORklHX1JFU0VUX1RJX1NZU0NPTj1tCitDT05GSUdfUkVT RVRfVElfVFBTMzgwWD1tCitDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MVgwPXkKK0NPTkZJR19S RVNFVF9TVEFSRklWRV9KSDcxMDA9eQorQ09ORklHX1JFU0VUX1NUQVJGSVZFX0pINzExMD15CisK KyMKKyMgUEhZIFN1YnN5c3RlbQorIworQ09ORklHX0dFTkVSSUNfUEhZPXkKK0NPTkZJR19HRU5F UklDX1BIWV9NSVBJX0RQSFk9eQorQ09ORklHX1BIWV9DQU5fVFJBTlNDRUlWRVI9bQorQ09ORklH X1BIWV9TVU40SV9VU0I9bQorQ09ORklHX1BIWV9TVU42SV9NSVBJX0RQSFk9bQorQ09ORklHX1BI WV9TVU45SV9VU0I9bQorQ09ORklHX1BIWV9TVU41MElfVVNCMz1tCisKKyMKKyMgUEhZIGRyaXZl cnMgZm9yIEJyb2FkY29tIHBsYXRmb3JtcworIworQ09ORklHX0JDTV9LT05BX1VTQjJfUEhZPW0K KyMgZW5kIG9mIFBIWSBkcml2ZXJzIGZvciBCcm9hZGNvbSBwbGF0Zm9ybXMKKworQ09ORklHX1BI WV9DQURFTkNFX1RPUlJFTlQ9bQorQ09ORklHX1BIWV9DQURFTkNFX0RQSFk9bQorQ09ORklHX1BI WV9DQURFTkNFX0RQSFlfUlg9bQorQ09ORklHX1BIWV9DQURFTkNFX1NJRVJSQT1tCitDT05GSUdf UEhZX0NBREVOQ0VfU0FMVk89bQorQ09ORklHX1BIWV9QWEFfMjhOTV9IU0lDPW0KK0NPTkZJR19Q SFlfUFhBXzI4Tk1fVVNCMj1tCitDT05GSUdfUEhZX0xBTjk2NlhfU0VSREVTPW0KK0NPTkZJR19Q SFlfQ1BDQVBfVVNCPW0KK0NPTkZJR19QSFlfTUFQUEhPTkVfTURNNjYwMD1tCitDT05GSUdfUEhZ X09DRUxPVF9TRVJERVM9bQorQ09ORklHX1BIWV9RQ09NX1VTQl9IUz1tCitDT05GSUdfUEhZX1FD T01fVVNCX0hTSUM9bQorQ09ORklHX1BIWV9SOEE3NzlGMF9FVEhFUk5FVF9TRVJERVM9bQorQ09O RklHX1BIWV9SQ0FSX0dFTjI9bQorQ09ORklHX1BIWV9SQ0FSX0dFTjNfUENJRT1tCitDT05GSUdf UEhZX1JDQVJfR0VOM19VU0IyPW0KK0NPTkZJR19QSFlfUkNBUl9HRU4zX1VTQjM9bQorIyBDT05G SUdfUEhZX1NBTVNVTkdfVVNCMiBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlfVFVTQjEyMTAgaXMg bm90IHNldAorIyBlbmQgb2YgUEhZIFN1YnN5c3RlbQorCitDT05GSUdfUE9XRVJDQVA9eQorQ09O RklHX0lETEVfSU5KRUNUPXkKKyMgQ09ORklHX0RUUE0gaXMgbm90IHNldAorIyBDT05GSUdfTUNC IGlzIG5vdCBzZXQKKworIworIyBQZXJmb3JtYW5jZSBtb25pdG9yIHN1cHBvcnQKKyMKK0NPTkZJ R19SSVNDVl9QTVU9eQorQ09ORklHX1JJU0NWX1BNVV9MRUdBQ1k9eQorQ09ORklHX1JJU0NWX1BN VV9TQkk9eQorIyBlbmQgb2YgUGVyZm9ybWFuY2UgbW9uaXRvciBzdXBwb3J0CisKK0NPTkZJR19S QVM9eQorQ09ORklHX1VTQjQ9bQorIyBDT05GSUdfVVNCNF9ERUJVR0ZTX1dSSVRFIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1VTQjRfRE1BX1RFU1QgaXMgbm90IHNldAorCisjCisjIEFuZHJvaWQKKyMK K0NPTkZJR19BTkRST0lEX0JJTkRFUl9JUEM9eQorQ09ORklHX0FORFJPSURfQklOREVSRlM9eQor Q09ORklHX0FORFJPSURfQklOREVSX0RFVklDRVM9IiIKKyMgQ09ORklHX0FORFJPSURfQklOREVS X0lQQ19TRUxGVEVTVCBpcyBub3Qgc2V0CisjIGVuZCBvZiBBbmRyb2lkCisKK0NPTkZJR19MSUJO VkRJTU09bQorQ09ORklHX0JMS19ERVZfUE1FTT1tCitDT05GSUdfTkRfQ0xBSU09eQorQ09ORklH X05EX0JUVD1tCitDT05GSUdfQlRUPXkKK0NPTkZJR19PRl9QTUVNPW0KK0NPTkZJR19OVkRJTU1f S0VZUz15CisjIENPTkZJR19OVkRJTU1fU0VDVVJJVFlfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdf REFYPXkKK0NPTkZJR19ERVZfREFYPW0KK0NPTkZJR19ERVZfREFYX0NYTD1tCitDT05GSUdfTlZN RU09eQorQ09ORklHX05WTUVNX1NZU0ZTPXkKKyMgQ09ORklHX05WTUVNX1JNRU0gaXMgbm90IHNl dAorQ09ORklHX05WTUVNX1NQTUlfU0RBTT1tCitDT05GSUdfTlZNRU1fU1VOWElfU0lEPW0KK0NP TkZJR19OVk1FTV9VX0JPT1RfRU5WPW0KKworIworIyBIVyB0cmFjaW5nIHN1cHBvcnQKKyMKK0NP TkZJR19TVE09eQorQ09ORklHX1NUTV9QUk9UT19CQVNJQz1tCitDT05GSUdfU1RNX1BST1RPX1NZ U19UPW0KKyMgQ09ORklHX1NUTV9EVU1NWSBpcyBub3Qgc2V0CitDT05GSUdfU1RNX1NPVVJDRV9D T05TT0xFPXkKKyMgQ09ORklHX1NUTV9TT1VSQ0VfSEVBUlRCRUFUIGlzIG5vdCBzZXQKK0NPTkZJ R19TVE1fU09VUkNFX0ZUUkFDRT1tCisjIENPTkZJR19JTlRFTF9USCBpcyBub3Qgc2V0CisjIGVu ZCBvZiBIVyB0cmFjaW5nIHN1cHBvcnQKKworQ09ORklHX0ZQR0E9bQorQ09ORklHX0FMVEVSQV9Q Ul9JUF9DT1JFPW0KK0NPTkZJR19BTFRFUkFfUFJfSVBfQ09SRV9QTEFUPW0KK0NPTkZJR19GUEdB X01HUl9BTFRFUkFfUFNfU1BJPW0KK0NPTkZJR19GUEdBX01HUl9BTFRFUkFfQ1ZQPW0KK0NPTkZJ R19GUEdBX01HUl9YSUxJTlhfU1BJPW0KK0NPTkZJR19GUEdBX01HUl9JQ0U0MF9TUEk9bQorQ09O RklHX0ZQR0FfTUdSX01BQ0hYTzJfU1BJPW0KK0NPTkZJR19GUEdBX0JSSURHRT1tCitDT05GSUdf QUxURVJBX0ZSRUVaRV9CUklER0U9bQorQ09ORklHX1hJTElOWF9QUl9ERUNPVVBMRVI9bQorQ09O RklHX0ZQR0FfUkVHSU9OPW0KK0NPTkZJR19PRl9GUEdBX1JFR0lPTj1tCitDT05GSUdfRlBHQV9E Rkw9bQorQ09ORklHX0ZQR0FfREZMX0ZNRT1tCitDT05GSUdfRlBHQV9ERkxfRk1FX01HUj1tCitD T05GSUdfRlBHQV9ERkxfRk1FX0JSSURHRT1tCitDT05GSUdfRlBHQV9ERkxfRk1FX1JFR0lPTj1t CitDT05GSUdfRlBHQV9ERkxfQUZVPW0KKyMgQ09ORklHX0ZQR0FfREZMX05JT1NfSU5URUxfUEFD X04zMDAwIGlzIG5vdCBzZXQKK0NPTkZJR19GUEdBX0RGTF9QQ0k9bQorQ09ORklHX0ZQR0FfTTEw X0JNQ19TRUNfVVBEQVRFPW0KK0NPTkZJR19GUEdBX01HUl9NSUNST0NISVBfU1BJPW0KK0NPTkZJ R19GUEdBX01HUl9MQVRUSUNFX1NZU0NPTkZJRz1tCitDT05GSUdfRlBHQV9NR1JfTEFUVElDRV9T WVNDT05GSUdfU1BJPW0KKyMgQ09ORklHX0ZTSSBpcyBub3Qgc2V0CitDT05GSUdfTVVMVElQTEVY RVI9bQorCisjCisjIE11bHRpcGxleGVyIGRyaXZlcnMKKyMKK0NPTkZJR19NVVhfQURHNzkyQT1t CitDT05GSUdfTVVYX0FER1MxNDA4PW0KK0NPTkZJR19NVVhfR1BJTz1tCitDT05GSUdfTVVYX01N SU89bQorIyBlbmQgb2YgTXVsdGlwbGV4ZXIgZHJpdmVycworCitDT05GSUdfUE1fT1BQPXkKKyMg Q09ORklHX1NJT1ggaXMgbm90IHNldAorIyBDT05GSUdfU0xJTUJVUyBpcyBub3Qgc2V0CitDT05G SUdfSU5URVJDT05ORUNUPXkKKyMgQ09ORklHX0NPVU5URVIgaXMgbm90IHNldAorIyBDT05GSUdf TU9TVCBpcyBub3Qgc2V0CitDT05GSUdfUEVDST1tCitDT05GSUdfUEVDSV9DUFU9bQorQ09ORklH X0hURT15CisjIGVuZCBvZiBEZXZpY2UgRHJpdmVycworCisjCisjIEZpbGUgc3lzdGVtcworIwor Q09ORklHX1ZBTElEQVRFX0ZTX1BBUlNFUj15CitDT05GSUdfRlNfSU9NQVA9eQorQ09ORklHX0xF R0FDWV9ESVJFQ1RfSU89eQorIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19F WFQzX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQ0X0ZTPXkKK0NPTkZJR19FWFQ0X1VTRV9GT1Jf RVhUMj15CitDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VYVDRfRlNfU0VDVVJJ VFk9eQorIyBDT05GSUdfRVhUNF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSkJEMj15CisjIENP TkZJR19KQkQyX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19GU19NQkNBQ0hFPXkKK0NPTkZJR19S RUlTRVJGU19GUz1tCisjIENPTkZJR19SRUlTRVJGU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJ R19SRUlTRVJGU19QUk9DX0lORk8gaXMgbm90IHNldAorQ09ORklHX1JFSVNFUkZTX0ZTX1hBVFRS PXkKK0NPTkZJR19SRUlTRVJGU19GU19QT1NJWF9BQ0w9eQorQ09ORklHX1JFSVNFUkZTX0ZTX1NF Q1VSSVRZPXkKK0NPTkZJR19KRlNfRlM9bQorQ09ORklHX0pGU19QT1NJWF9BQ0w9eQorQ09ORklH X0pGU19TRUNVUklUWT15CisjIENPTkZJR19KRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdf SkZTX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorQ09ORklHX1hGU19GUz1tCitDT05GSUdfWEZTX1NV UFBPUlRfVjQ9eQorQ09ORklHX1hGU19RVU9UQT15CitDT05GSUdfWEZTX1BPU0lYX0FDTD15Cisj IENPTkZJR19YRlNfUlQgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX09OTElORV9TQ1JVQiBpcyBu b3Qgc2V0CisjIENPTkZJR19YRlNfV0FSTiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfREVCVUcg aXMgbm90IHNldAorQ09ORklHX0dGUzJfRlM9bQorQ09ORklHX0dGUzJfRlNfTE9DS0lOR19ETE09 eQorQ09ORklHX09DRlMyX0ZTPW0KK0NPTkZJR19PQ0ZTMl9GU19PMkNCPW0KK0NPTkZJR19PQ0ZT Ml9GU19VU0VSU1BBQ0VfQ0xVU1RFUj1tCitDT05GSUdfT0NGUzJfRlNfU1RBVFM9eQorIyBDT05G SUdfT0NGUzJfREVCVUdfTUFTS0xPRyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9ERUJVR19G UyBpcyBub3Qgc2V0CitDT05GSUdfQlRSRlNfRlM9bQorQ09ORklHX0JUUkZTX0ZTX1BPU0lYX0FD TD15CisjIENPTkZJR19CVFJGU19GU19DSEVDS19JTlRFR1JJVFkgaXMgbm90IHNldAorIyBDT05G SUdfQlRSRlNfRlNfUlVOX1NBTklUWV9URVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19CVFJGU19E RUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19CVFJGU19BU1NFUlQgaXMgbm90IHNldAorIyBDT05G SUdfQlRSRlNfRlNfUkVGX1ZFUklGWSBpcyBub3Qgc2V0CitDT05GSUdfTklMRlMyX0ZTPW0KK0NP TkZJR19GMkZTX0ZTPW0KK0NPTkZJR19GMkZTX1NUQVRfRlM9eQorQ09ORklHX0YyRlNfRlNfWEFU VFI9eQorQ09ORklHX0YyRlNfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19GMkZTX0ZTX1NFQ1VSSVRZ PXkKKyMgQ09ORklHX0YyRlNfQ0hFQ0tfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRjJGU19GQVVM VF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfRjJGU19GU19DT01QUkVTU0lPTiBpcyBu b3Qgc2V0CitDT05GSUdfRjJGU19JT1NUQVQ9eQorQ09ORklHX0YyRlNfVU5GQUlSX1JXU0VNPXkK K0NPTkZJR19aT05FRlNfRlM9bQorQ09ORklHX0ZTX1BPU0lYX0FDTD15CitDT05GSUdfRVhQT1JU RlM9eQorQ09ORklHX0VYUE9SVEZTX0JMT0NLX09QUz15CitDT05GSUdfRklMRV9MT0NLSU5HPXkK K0NPTkZJR19GU19FTkNSWVBUSU9OPXkKK0NPTkZJR19GU19FTkNSWVBUSU9OX0FMR1M9eQorQ09O RklHX0ZTX0VOQ1JZUFRJT05fSU5MSU5FX0NSWVBUPXkKKyMgQ09ORklHX0ZTX1ZFUklUWSBpcyBu b3Qgc2V0CitDT05GSUdfRlNOT1RJRlk9eQorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJ RllfVVNFUj15CitDT05GSUdfRkFOT1RJRlk9eQorQ09ORklHX0ZBTk9USUZZX0FDQ0VTU19QRVJN SVNTSU9OUz15CitDT05GSUdfUVVPVEE9eQorQ09ORklHX1FVT1RBX05FVExJTktfSU5URVJGQUNF PXkKKyMgQ09ORklHX1BSSU5UX1FVT1RBX1dBUk5JTkcgaXMgbm90IHNldAorIyBDT05GSUdfUVVP VEFfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1FVT1RBX1RSRUU9bQorQ09ORklHX1FGTVRfVjE9 bQorQ09ORklHX1FGTVRfVjI9bQorQ09ORklHX1FVT1RBQ1RMPXkKK0NPTkZJR19BVVRPRlM0X0ZT PXkKK0NPTkZJR19BVVRPRlNfRlM9eQorQ09ORklHX0ZVU0VfRlM9bQorQ09ORklHX0NVU0U9bQor Q09ORklHX1ZJUlRJT19GUz1tCitDT05GSUdfT1ZFUkxBWV9GUz1tCisjIENPTkZJR19PVkVSTEFZ X0ZTX1JFRElSRUNUX0RJUiBpcyBub3Qgc2V0CitDT05GSUdfT1ZFUkxBWV9GU19SRURJUkVDVF9B TFdBWVNfRk9MTE9XPXkKKyMgQ09ORklHX09WRVJMQVlfRlNfSU5ERVggaXMgbm90IHNldAorIyBD T05GSUdfT1ZFUkxBWV9GU19YSU5PX0FVVE8gaXMgbm90IHNldAorIyBDT05GSUdfT1ZFUkxBWV9G U19NRVRBQ09QWSBpcyBub3Qgc2V0CisKKyMKKyMgQ2FjaGVzCisjCitDT05GSUdfTkVURlNfU1VQ UE9SVD1tCitDT05GSUdfTkVURlNfU1RBVFM9eQorQ09ORklHX0ZTQ0FDSEU9bQorQ09ORklHX0ZT Q0FDSEVfU1RBVFM9eQorIyBDT05GSUdfRlNDQUNIRV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdf Q0FDSEVGSUxFUz1tCisjIENPTkZJR19DQUNIRUZJTEVTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09O RklHX0NBQ0hFRklMRVNfRVJST1JfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBQ0hF RklMRVNfT05ERU1BTkQgaXMgbm90IHNldAorIyBlbmQgb2YgQ2FjaGVzCisKKyMKKyMgQ0QtUk9N L0RWRCBGaWxlc3lzdGVtcworIworQ09ORklHX0lTTzk2NjBfRlM9bQorQ09ORklHX0pPTElFVD15 CitDT05GSUdfWklTT0ZTPXkKK0NPTkZJR19VREZfRlM9bQorIyBlbmQgb2YgQ0QtUk9NL0RWRCBG aWxlc3lzdGVtcworCisjCisjIERPUy9GQVQvRVhGQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJ R19GQVRfRlM9bQorQ09ORklHX01TRE9TX0ZTPW0KK0NPTkZJR19WRkFUX0ZTPW0KK0NPTkZJR19G QVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlz bzg4NTktMSIKKyMgQ09ORklHX0ZBVF9ERUZBVUxUX1VURjggaXMgbm90IHNldAorQ09ORklHX0VY RkFUX0ZTPW0KK0NPTkZJR19FWEZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0idXRmOCIKK0NPTkZJR19O VEZTX0ZTPW0KKyMgQ09ORklHX05URlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19S VyBpcyBub3Qgc2V0CitDT05GSUdfTlRGUzNfRlM9bQorIyBDT05GSUdfTlRGUzNfNjRCSVRfQ0xV U1RFUiBpcyBub3Qgc2V0CitDT05GSUdfTlRGUzNfTFpYX1hQUkVTUz15CisjIENPTkZJR19OVEZT M19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBlbmQgb2YgRE9TL0ZBVC9FWEZBVC9OVCBGaWxl c3lzdGVtcworCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQor Q09ORklHX1BST0NfS0NPUkU9eQorQ09ORklHX1BST0NfVk1DT1JFPXkKKyMgQ09ORklHX1BST0Nf Vk1DT1JFX0RFVklDRV9EVU1QIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05G SUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1BST0NfQ0hJTERSRU49eQorQ09ORklHX0tF Uk5GUz15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKK0NPTkZJR19UTVBGU19QT1NJ WF9BQ0w9eQorQ09ORklHX1RNUEZTX1hBVFRSPXkKK0NPTkZJR19UTVBGU19JTk9ERTY0PXkKK0NP TkZJR19BUkNIX1NVUFBPUlRTX0hVR0VUTEJGUz15CitDT05GSUdfSFVHRVRMQkZTPXkKK0NPTkZJ R19IVUdFVExCX1BBR0U9eQorQ09ORklHX0FSQ0hfV0FOVF9IVUdFVExCX1BBR0VfT1BUSU1JWkVf Vk1FTU1BUD15CitDT05GSUdfSFVHRVRMQl9QQUdFX09QVElNSVpFX1ZNRU1NQVA9eQorIyBDT05G SUdfSFVHRVRMQl9QQUdFX09QVElNSVpFX1ZNRU1NQVBfREVGQVVMVF9PTiBpcyBub3Qgc2V0CitD T05GSUdfTUVNRkRfQ1JFQVRFPXkKK0NPTkZJR19BUkNIX0hBU19HSUdBTlRJQ19QQUdFPXkKK0NP TkZJR19DT05GSUdGU19GUz15CitDT05GSUdfRUZJVkFSX0ZTPW0KKyMgZW5kIG9mIFBzZXVkbyBm aWxlc3lzdGVtcworCitDT05GSUdfTUlTQ19GSUxFU1lTVEVNUz15CisjIENPTkZJR19PUkFOR0VG U19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19BRkZT X0ZTPW0KK0NPTkZJR19FQ1JZUFRfRlM9bQorIyBDT05GSUdfRUNSWVBUX0ZTX01FU1NBR0lORyBp cyBub3Qgc2V0CitDT05GSUdfSEZTX0ZTPW0KK0NPTkZJR19IRlNQTFVTX0ZTPW0KK0NPTkZJR19C RUZTX0ZTPW0KKyMgQ09ORklHX0JFRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZT IGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9G UyBpcyBub3Qgc2V0CisjIENPTkZJR19VQklGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZT PW0KK0NPTkZJR19DUkFNRlNfQkxPQ0tERVY9eQorQ09ORklHX0NSQU1GU19NVEQ9eQorQ09ORklH X1NRVUFTSEZTPW0KK0NPTkZJR19TUVVBU0hGU19GSUxFX0NBQ0hFPXkKKyMgQ09ORklHX1NRVUFT SEZTX0ZJTEVfRElSRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19TUVVBU0hGU19ERUNPTVBfU0lOR0xF PXkKK0NPTkZJR19TUVVBU0hGU19ERUNPTVBfTVVMVEk9eQorQ09ORklHX1NRVUFTSEZTX0RFQ09N UF9NVUxUSV9QRVJDUFU9eQorQ09ORklHX1NRVUFTSEZTX0NIT0lDRV9ERUNPTVBfQllfTU9VTlQ9 eQorQ09ORklHX1NRVUFTSEZTX01PVU5UX0RFQ09NUF9USFJFQURTPXkKK0NPTkZJR19TUVVBU0hG U19YQVRUUj15CitDT05GSUdfU1FVQVNIRlNfWkxJQj15CitDT05GSUdfU1FVQVNIRlNfTFo0PXkK K0NPTkZJR19TUVVBU0hGU19MWk89eQorQ09ORklHX1NRVUFTSEZTX1haPXkKK0NPTkZJR19TUVVB U0hGU19aU1REPXkKKyMgQ09ORklHX1NRVUFTSEZTXzRLX0RFVkJMS19TSVpFIGlzIG5vdCBzZXQK KyMgQ09ORklHX1NRVUFTSEZTX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19TUVVBU0hGU19G UkFHTUVOVF9DQUNIRV9TSVpFPTMKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05G SUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT01GU19GUyBpcyBub3Qgc2V0CitDT05G SUdfSFBGU19GUz1tCisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1FOWDZG U19GUz1tCisjIENPTkZJR19RTlg2RlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZT PW0KKyMgQ09ORklHX1JPTUZTX0JBQ0tFRF9CWV9CTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19S T01GU19CQUNLRURfQllfTVREIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19CQUNLRURfQllfQk9U SD15CitDT05GSUdfUk9NRlNfT05fQkxPQ0s9eQorQ09ORklHX1JPTUZTX09OX01URD15CitDT05G SUdfUFNUT1JFPXkKK0NPTkZJR19QU1RPUkVfREVGQVVMVF9LTVNHX0JZVEVTPTEwMjQwCitDT05G SUdfUFNUT1JFX0RFRkxBVEVfQ09NUFJFU1M9bQorIyBDT05GSUdfUFNUT1JFX0xaT19DT01QUkVT UyBpcyBub3Qgc2V0CisjIENPTkZJR19QU1RPUkVfTFo0X0NPTVBSRVNTIGlzIG5vdCBzZXQKK0NP TkZJR19QU1RPUkVfTFo0SENfQ09NUFJFU1M9bQorIyBDT05GSUdfUFNUT1JFXzg0Ml9DT01QUkVT UyBpcyBub3Qgc2V0CitDT05GSUdfUFNUT1JFX1pTVERfQ09NUFJFU1M9eQorQ09ORklHX1BTVE9S RV9DT01QUkVTUz15CitDT05GSUdfUFNUT1JFX0RFRkxBVEVfQ09NUFJFU1NfREVGQVVMVD15Cisj IENPTkZJR19QU1RPUkVfTFo0SENfQ09NUFJFU1NfREVGQVVMVCBpcyBub3Qgc2V0CisjIENPTkZJ R19QU1RPUkVfWlNURF9DT01QUkVTU19ERUZBVUxUIGlzIG5vdCBzZXQKK0NPTkZJR19QU1RPUkVf Q09NUFJFU1NfREVGQVVMVD0iZGVmbGF0ZSIKKyMgQ09ORklHX1BTVE9SRV9DT05TT0xFIGlzIG5v dCBzZXQKKyMgQ09ORklHX1BTVE9SRV9QTVNHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BTVE9SRV9G VFJBQ0UgaXMgbm90IHNldAorQ09ORklHX1BTVE9SRV9SQU09bQorQ09ORklHX1BTVE9SRV9aT05F PW0KK0NPTkZJR19QU1RPUkVfQkxLPW0KK0NPTkZJR19QU1RPUkVfQkxLX0JMS0RFVj0iIgorQ09O RklHX1BTVE9SRV9CTEtfS01TR19TSVpFPTY0CitDT05GSUdfUFNUT1JFX0JMS19NQVhfUkVBU09O PTIKK0NPTkZJR19TWVNWX0ZTPW0KK0NPTkZJR19VRlNfRlM9bQorIyBDT05GSUdfVUZTX0ZTX1dS SVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRVJP RlNfRlM9bQorIyBDT05GSUdfRVJPRlNfRlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VST0ZT X0ZTX1hBVFRSPXkKK0NPTkZJR19FUk9GU19GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VST0ZTX0ZT X1NFQ1VSSVRZPXkKK0NPTkZJR19FUk9GU19GU19aSVA9eQorQ09ORklHX0VST0ZTX0ZTX1pJUF9M Wk1BPXkKK0NPTkZJR19FUk9GU19GU19QQ1BVX0tUSFJFQUQ9eQorQ09ORklHX0VST0ZTX0ZTX1BD UFVfS1RIUkVBRF9ISVBSST15CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdf TkZTX0ZTPW0KK0NPTkZJR19ORlNfVjI9bQorQ09ORklHX05GU19WMz1tCitDT05GSUdfTkZTX1Yz X0FDTD15CitDT05GSUdfTkZTX1Y0PW0KK0NPTkZJR19ORlNfU1dBUD15CitDT05GSUdfTkZTX1Y0 XzE9eQorQ09ORklHX05GU19WNF8yPXkKK0NPTkZJR19QTkZTX0ZJTEVfTEFZT1VUPW0KK0NPTkZJ R19QTkZTX0JMT0NLPW0KK0NPTkZJR19QTkZTX0ZMRVhGSUxFX0xBWU9VVD1tCitDT05GSUdfTkZT X1Y0XzFfSU1QTEVNRU5UQVRJT05fSURfRE9NQUlOPSJrZXJuZWwub3JnIgorIyBDT05GSUdfTkZT X1Y0XzFfTUlHUkFUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19ORlNfVjRfU0VDVVJJVFlfTEFCRUw9 eQorQ09ORklHX05GU19GU0NBQ0hFPXkKKyMgQ09ORklHX05GU19VU0VfTEVHQUNZX0ROUyBpcyBu b3Qgc2V0CitDT05GSUdfTkZTX1VTRV9LRVJORUxfRE5TPXkKK0NPTkZJR19ORlNfREVCVUc9eQor Q09ORklHX05GU19ESVNBQkxFX1VEUF9TVVBQT1JUPXkKKyMgQ09ORklHX05GU19WNF8yX1JFQURf UExVUyBpcyBub3Qgc2V0CitDT05GSUdfTkZTRD1tCisjIENPTkZJR19ORlNEX1YyIGlzIG5vdCBz ZXQKK0NPTkZJR19ORlNEX1YzX0FDTD15CitDT05GSUdfTkZTRF9WND15CitDT05GSUdfTkZTRF9Q TkZTPXkKK0NPTkZJR19ORlNEX0JMT0NLTEFZT1VUPXkKK0NPTkZJR19ORlNEX1NDU0lMQVlPVVQ9 eQorQ09ORklHX05GU0RfRkxFWEZJTEVMQVlPVVQ9eQorQ09ORklHX05GU0RfVjRfMl9JTlRFUl9T U0M9eQorQ09ORklHX05GU0RfVjRfU0VDVVJJVFlfTEFCRUw9eQorQ09ORklHX0dSQUNFX1BFUklP RD1tCitDT05GSUdfTE9DS0Q9bQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQUNMX1NV UFBPUlQ9bQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX05GU19WNF8yX1NTQ19IRUxQRVI9 eQorQ09ORklHX1NVTlJQQz1tCitDT05GSUdfU1VOUlBDX0dTUz1tCitDT05GSUdfU1VOUlBDX0JB Q0tDSEFOTkVMPXkKK0NPTkZJR19TVU5SUENfU1dBUD15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1 PW0KK0NPTkZJR19SUENTRUNfR1NTX0tSQjVfQ1JZUFRPU1lTVEVNPXkKKyMgQ09ORklHX1JQQ1NF Q19HU1NfS1JCNV9FTkNUWVBFU19ERVMgaXMgbm90IHNldAorQ09ORklHX1JQQ1NFQ19HU1NfS1JC NV9FTkNUWVBFU19BRVNfU0hBMT15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1X0VOQ1RZUEVTX0NB TUVMTElBPXkKK0NPTkZJR19SUENTRUNfR1NTX0tSQjVfRU5DVFlQRVNfQUVTX1NIQTI9eQorQ09O RklHX1NVTlJQQ19ERUJVRz15CitDT05GSUdfU1VOUlBDX1hQUlRfUkRNQT1tCitDT05GSUdfQ0VQ SF9GUz1tCitDT05GSUdfQ0VQSF9GU0NBQ0hFPXkKK0NPTkZJR19DRVBIX0ZTX1BPU0lYX0FDTD15 CisjIENPTkZJR19DRVBIX0ZTX1NFQ1VSSVRZX0xBQkVMIGlzIG5vdCBzZXQKK0NPTkZJR19DSUZT PW0KKyMgQ09ORklHX0NJRlNfU1RBVFMyIGlzIG5vdCBzZXQKK0NPTkZJR19DSUZTX0FMTE9XX0lO U0VDVVJFX0xFR0FDWT15CitDT05GSUdfQ0lGU19VUENBTEw9eQorQ09ORklHX0NJRlNfWEFUVFI9 eQorQ09ORklHX0NJRlNfUE9TSVg9eQorQ09ORklHX0NJRlNfREVCVUc9eQorIyBDT05GSUdfQ0lG U19ERUJVRzIgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGU19ERUJVR19EVU1QX0tFWVMgaXMgbm90 IHNldAorQ09ORklHX0NJRlNfREZTX1VQQ0FMTD15CitDT05GSUdfQ0lGU19TV05fVVBDQUxMPXkK KyMgQ09ORklHX0NJRlNfU01CX0RJUkVDVCBpcyBub3Qgc2V0CitDT05GSUdfQ0lGU19GU0NBQ0hF PXkKKyMgQ09ORklHX1NNQl9TRVJWRVIgaXMgbm90IHNldAorQ09ORklHX1NNQkZTX0NPTU1PTj1t CitDT05GSUdfQ09EQV9GUz1tCisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorQ09ORklHXzlQ X0ZTPW0KK0NPTkZJR185UF9GU0NBQ0hFPXkKK0NPTkZJR185UF9GU19QT1NJWF9BQ0w9eQorQ09O RklHXzlQX0ZTX1NFQ1VSSVRZPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJ1 dGY4IgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9bQorQ09ORklHX05MU19DT0RFUEFHRV83Mzc9 bQorQ09ORklHX05MU19DT0RFUEFHRV83NzU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTA9bQor Q09ORklHX05MU19DT0RFUEFHRV84NTI9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTU9bQorQ09O RklHX05MU19DT0RFUEFHRV84NTc9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjA9bQorQ09ORklH X05MU19DT0RFUEFHRV84NjE9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjI9bQorQ09ORklHX05M U19DT0RFUEFHRV84NjM9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjQ9bQorQ09ORklHX05MU19D T0RFUEFHRV84NjU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjY9bQorQ09ORklHX05MU19DT0RF UEFHRV84Njk9bQorQ09ORklHX05MU19DT0RFUEFHRV85MzY9bQorQ09ORklHX05MU19DT0RFUEFH RV85NTA9bQorQ09ORklHX05MU19DT0RFUEFHRV85MzI9bQorQ09ORklHX05MU19DT0RFUEFHRV85 NDk9bQorQ09ORklHX05MU19DT0RFUEFHRV84NzQ9bQorQ09ORklHX05MU19JU084ODU5Xzg9bQor Q09ORklHX05MU19DT0RFUEFHRV8xMjUwPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfMTI1MT1tCitD T05GSUdfTkxTX0FTQ0lJPW0KK0NPTkZJR19OTFNfSVNPODg1OV8xPW0KK0NPTkZJR19OTFNfSVNP ODg1OV8yPW0KK0NPTkZJR19OTFNfSVNPODg1OV8zPW0KK0NPTkZJR19OTFNfSVNPODg1OV80PW0K K0NPTkZJR19OTFNfSVNPODg1OV81PW0KK0NPTkZJR19OTFNfSVNPODg1OV82PW0KK0NPTkZJR19O TFNfSVNPODg1OV83PW0KK0NPTkZJR19OTFNfSVNPODg1OV85PW0KK0NPTkZJR19OTFNfSVNPODg1 OV8xMz1tCitDT05GSUdfTkxTX0lTTzg4NTlfMTQ9bQorQ09ORklHX05MU19JU084ODU5XzE1PW0K K0NPTkZJR19OTFNfS09JOF9SPW0KK0NPTkZJR19OTFNfS09JOF9VPW0KK0NPTkZJR19OTFNfTUFD X1JPTUFOPW0KK0NPTkZJR19OTFNfTUFDX0NFTFRJQz1tCitDT05GSUdfTkxTX01BQ19DRU5URVVS Tz1tCitDT05GSUdfTkxTX01BQ19DUk9BVElBTj1tCitDT05GSUdfTkxTX01BQ19DWVJJTExJQz1t CitDT05GSUdfTkxTX01BQ19HQUVMSUM9bQorQ09ORklHX05MU19NQUNfR1JFRUs9bQorQ09ORklH X05MU19NQUNfSUNFTEFORD1tCitDT05GSUdfTkxTX01BQ19JTlVJVD1tCitDT05GSUdfTkxTX01B Q19ST01BTklBTj1tCitDT05GSUdfTkxTX01BQ19UVVJLSVNIPW0KK0NPTkZJR19OTFNfVVRGOD1t CitDT05GSUdfRExNPW0KKyMgQ09ORklHX0RMTV9ERVBSRUNBVEVEX0FQSSBpcyBub3Qgc2V0CitD T05GSUdfRExNX0RFQlVHPXkKK0NPTkZJR19VTklDT0RFPXkKKyMgQ09ORklHX1VOSUNPREVfTk9S TUFMSVpBVElPTl9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfSU9fV1E9eQorIyBlbmQgb2Yg RmlsZSBzeXN0ZW1zCisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworQ09ORklHX0tFWVM9eQor IyBDT05GSUdfS0VZU19SRVFVRVNUX0NBQ0hFIGlzIG5vdCBzZXQKK0NPTkZJR19QRVJTSVNURU5U X0tFWVJJTkdTPXkKK0NPTkZJR19UUlVTVEVEX0tFWVM9bQorQ09ORklHX1RSVVNURURfS0VZU19U UE09eQorQ09ORklHX0VOQ1JZUFRFRF9LRVlTPXkKKyMgQ09ORklHX1VTRVJfREVDUllQVEVEX0RB VEEgaXMgbm90IHNldAorQ09ORklHX0tFWV9ESF9PUEVSQVRJT05TPXkKK0NPTkZJR19LRVlfTk9U SUZJQ0FUSU9OUz15CitDT05GSUdfU0VDVVJJVFlfRE1FU0dfUkVTVFJJQ1Q9eQorQ09ORklHX1NF Q1VSSVRZPXkKK0NPTkZJR19TRUNVUklUWUZTPXkKK0NPTkZJR19TRUNVUklUWV9ORVRXT1JLPXkK KyMgQ09ORklHX1NFQ1VSSVRZX0lORklOSUJBTkQgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJ VFlfTkVUV09SS19YRlJNIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9QQVRIPXkKK0NPTkZJ R19IQVZFX0hBUkRFTkVEX1VTRVJDT1BZX0FMTE9DQVRPUj15CitDT05GSUdfSEFSREVORURfVVNF UkNPUFk9eQorQ09ORklHX0ZPUlRJRllfU09VUkNFPXkKKyMgQ09ORklHX1NUQVRJQ19VU0VSTU9E RUhFTFBFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9TRUxJTlVYIGlzIG5vdCBzZXQK KyMgQ09ORklHX1NFQ1VSSVRZX1NNQUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX1RP TU9ZTyBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfQVBQQVJNT1I9eQorIyBDT05GSUdfU0VD VVJJVFlfQVBQQVJNT1JfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0FQUEFSTU9S X0lOVFJPU1BFQ1RfUE9MSUNZPXkKK0NPTkZJR19TRUNVUklUWV9BUFBBUk1PUl9IQVNIPXkKK0NP TkZJR19TRUNVUklUWV9BUFBBUk1PUl9IQVNIX0RFRkFVTFQ9eQorQ09ORklHX1NFQ1VSSVRZX0FQ UEFSTU9SX0VYUE9SVF9CSU5BUlk9eQorQ09ORklHX1NFQ1VSSVRZX0FQUEFSTU9SX1BBUkFOT0lE X0xPQUQ9eQorIyBDT05GSUdfU0VDVVJJVFlfTE9BRFBJTiBpcyBub3Qgc2V0CitDT05GSUdfU0VD VVJJVFlfWUFNQT15CisjIENPTkZJR19TRUNVUklUWV9TQUZFU0VUSUQgaXMgbm90IHNldAorIyBD T05GSUdfU0VDVVJJVFlfTE9DS0RPV05fTFNNIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9M QU5ETE9DSz15CitDT05GSUdfSU5URUdSSVRZPXkKKyMgQ09ORklHX0lOVEVHUklUWV9TSUdOQVRV UkUgaXMgbm90IHNldAorQ09ORklHX0lOVEVHUklUWV9BVURJVD15CisjIENPTkZJR19JTUEgaXMg bm90IHNldAorIyBDT05GSUdfRVZNIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX1NFQ1VSSVRZ X0FQUEFSTU9SPXkKKyMgQ09ORklHX0RFRkFVTFRfU0VDVVJJVFlfREFDIGlzIG5vdCBzZXQKK0NP TkZJR19MU009ImxhbmRsb2NrLHlhbWEsbG9hZHBpbixzYWZlc2V0aWQsaW50ZWdyaXR5IgorCisj CisjIEtlcm5lbCBoYXJkZW5pbmcgb3B0aW9ucworIworCisjCisjIE1lbW9yeSBpbml0aWFsaXph dGlvbgorIworQ09ORklHX0NDX0hBU19BVVRPX1ZBUl9JTklUX1BBVFRFUk49eQorQ09ORklHX0ND X0hBU19BVVRPX1ZBUl9JTklUX1pFUk9fQkFSRT15CitDT05GSUdfQ0NfSEFTX0FVVE9fVkFSX0lO SVRfWkVSTz15CitDT05GSUdfSU5JVF9TVEFDS19OT05FPXkKKyMgQ09ORklHX0lOSVRfU1RBQ0tf QUxMX1BBVFRFUk4gaXMgbm90IHNldAorIyBDT05GSUdfSU5JVF9TVEFDS19BTExfWkVSTyBpcyBu b3Qgc2V0CitDT05GSUdfSU5JVF9PTl9BTExPQ19ERUZBVUxUX09OPXkKKyMgQ09ORklHX0lOSVRf T05fRlJFRV9ERUZBVUxUX09OIGlzIG5vdCBzZXQKK0NPTkZJR19DQ19IQVNfWkVST19DQUxMX1VT RURfUkVHUz15CisjIENPTkZJR19aRVJPX0NBTExfVVNFRF9SRUdTIGlzIG5vdCBzZXQKKyMgZW5k IG9mIE1lbW9yeSBpbml0aWFsaXphdGlvbgorCitDT05GSUdfUkFORFNUUlVDVF9OT05FPXkKKyMg ZW5kIG9mIEtlcm5lbCBoYXJkZW5pbmcgb3B0aW9ucworIyBlbmQgb2YgU2VjdXJpdHkgb3B0aW9u cworCitDT05GSUdfWE9SX0JMT0NLUz1tCitDT05GSUdfQVNZTkNfQ09SRT1tCitDT05GSUdfQVNZ TkNfTUVNQ1BZPW0KK0NPTkZJR19BU1lOQ19YT1I9bQorQ09ORklHX0FTWU5DX1BRPW0KK0NPTkZJ R19BU1lOQ19SQUlENl9SRUNPVj1tCitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29y ZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQUxH QVBJMj15CitDT05GSUdfQ1JZUFRPX0FFQUQ9eQorQ09ORklHX0NSWVBUT19BRUFEMj15CitDT05G SUdfQ1JZUFRPX1NLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fU0tDSVBIRVIyPXkKK0NPTkZJR19D UllQVE9fSEFTSD15CitDT05GSUdfQ1JZUFRPX0hBU0gyPXkKK0NPTkZJR19DUllQVE9fUk5HPXkK K0NPTkZJR19DUllQVE9fUk5HMj15CitDT05GSUdfQ1JZUFRPX1JOR19ERUZBVUxUPXkKK0NPTkZJ R19DUllQVE9fQUtDSVBIRVIyPXkKK0NPTkZJR19DUllQVE9fQUtDSVBIRVI9eQorQ09ORklHX0NS WVBUT19LUFAyPXkKK0NPTkZJR19DUllQVE9fS1BQPXkKK0NPTkZJR19DUllQVE9fQUNPTVAyPXkK K0NPTkZJR19DUllQVE9fTUFOQUdFUj15CitDT05GSUdfQ1JZUFRPX01BTkFHRVIyPXkKK0NPTkZJ R19DUllQVE9fVVNFUj1tCitDT05GSUdfQ1JZUFRPX01BTkFHRVJfRElTQUJMRV9URVNUUz15CitD T05GSUdfQ1JZUFRPX05VTEw9eQorQ09ORklHX0NSWVBUT19OVUxMMj15CitDT05GSUdfQ1JZUFRP X1BDUllQVD1tCitDT05GSUdfQ1JZUFRPX0NSWVBURD1tCitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9 bQorQ09ORklHX0NSWVBUT19URVNUPW0KK0NPTkZJR19DUllQVE9fRU5HSU5FPW0KKyMgZW5kIG9m IENyeXB0byBjb3JlIG9yIGhlbHBlcgorCisjCisjIFB1YmxpYy1rZXkgY3J5cHRvZ3JhcGh5Cisj CitDT05GSUdfQ1JZUFRPX1JTQT15CitDT05GSUdfQ1JZUFRPX0RIPXkKK0NPTkZJR19DUllQVE9f REhfUkZDNzkxOV9HUk9VUFM9eQorQ09ORklHX0NSWVBUT19FQ0M9bQorQ09ORklHX0NSWVBUT19F Q0RIPW0KK0NPTkZJR19DUllQVE9fRUNEU0E9bQorQ09ORklHX0NSWVBUT19FQ1JEU0E9bQorQ09O RklHX0NSWVBUT19TTTI9bQorQ09ORklHX0NSWVBUT19DVVJWRTI1NTE5PW0KKyMgZW5kIG9mIFB1 YmxpYy1rZXkgY3J5cHRvZ3JhcGh5CisKKyMKKyMgQmxvY2sgY2lwaGVycworIworQ09ORklHX0NS WVBUT19BRVM9eQorQ09ORklHX0NSWVBUT19BRVNfVEk9bQorQ09ORklHX0NSWVBUT19BTlVCSVM9 bQorQ09ORklHX0NSWVBUT19BUklBPW0KK0NPTkZJR19DUllQVE9fQkxPV0ZJU0g9bQorQ09ORklH X0NSWVBUT19CTE9XRklTSF9DT01NT049bQorQ09ORklHX0NSWVBUT19DQU1FTExJQT1tCitDT05G SUdfQ1JZUFRPX0NBU1RfQ09NTU9OPW0KK0NPTkZJR19DUllQVE9fQ0FTVDU9bQorQ09ORklHX0NS WVBUT19DQVNUNj1tCitDT05GSUdfQ1JZUFRPX0RFUz1tCitDT05GSUdfQ1JZUFRPX0ZDUllQVD1t CitDT05GSUdfQ1JZUFRPX0tIQVpBRD1tCitDT05GSUdfQ1JZUFRPX1NFRUQ9bQorQ09ORklHX0NS WVBUT19TRVJQRU5UPW0KK0NPTkZJR19DUllQVE9fU000PW0KK0NPTkZJR19DUllQVE9fU000X0dF TkVSSUM9bQorQ09ORklHX0NSWVBUT19URUE9bQorQ09ORklHX0NSWVBUT19UV09GSVNIPW0KK0NP TkZJR19DUllQVE9fVFdPRklTSF9DT01NT049bQorIyBlbmQgb2YgQmxvY2sgY2lwaGVycworCisj CisjIExlbmd0aC1wcmVzZXJ2aW5nIGNpcGhlcnMgYW5kIG1vZGVzCisjCitDT05GSUdfQ1JZUFRP X0FESUFOVFVNPW0KK0NPTkZJR19DUllQVE9fQVJDND1tCitDT05GSUdfQ1JZUFRPX0NIQUNIQTIw PW0KK0NPTkZJR19DUllQVE9fQ0JDPXkKK0NPTkZJR19DUllQVE9fQ0ZCPW0KK0NPTkZJR19DUllQ VE9fQ1RSPXkKK0NPTkZJR19DUllQVE9fQ1RTPXkKK0NPTkZJR19DUllQVE9fRUNCPXkKK0NPTkZJ R19DUllQVE9fSENUUjI9bQorQ09ORklHX0NSWVBUT19LRVlXUkFQPW0KK0NPTkZJR19DUllQVE9f TFJXPW0KK0NPTkZJR19DUllQVE9fT0ZCPW0KK0NPTkZJR19DUllQVE9fUENCQz1tCitDT05GSUdf Q1JZUFRPX1hDVFI9bQorQ09ORklHX0NSWVBUT19YVFM9eQorQ09ORklHX0NSWVBUT19OSFBPTFkx MzA1PW0KKyMgZW5kIG9mIExlbmd0aC1wcmVzZXJ2aW5nIGNpcGhlcnMgYW5kIG1vZGVzCisKKyMK KyMgQUVBRCAoYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIHdpdGggYXNzb2NpYXRlZCBkYXRhKSBj aXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVHSVMxMjggaXMgbm90IHNldAorQ09ORklHX0NS WVBUT19DSEFDSEEyMFBPTFkxMzA1PW0KK0NPTkZJR19DUllQVE9fQ0NNPW0KK0NPTkZJR19DUllQ VE9fR0NNPXkKK0NPTkZJR19DUllQVE9fU0VRSVY9eQorQ09ORklHX0NSWVBUT19FQ0hBSU5JVj1t CitDT05GSUdfQ1JZUFRPX0VTU0lWPW0KKyMgZW5kIG9mIEFFQUQgKGF1dGhlbnRpY2F0ZWQgZW5j cnlwdGlvbiB3aXRoIGFzc29jaWF0ZWQgZGF0YSkgY2lwaGVycworCisjCisjIEhhc2hlcywgZGln ZXN0cywgYW5kIE1BQ3MKKyMKK0NPTkZJR19DUllQVE9fQkxBS0UyQj1tCitDT05GSUdfQ1JZUFRP X0NNQUM9bQorQ09ORklHX0NSWVBUT19HSEFTSD15CitDT05GSUdfQ1JZUFRPX0hNQUM9eQorQ09O RklHX0NSWVBUT19NRDQ9bQorQ09ORklHX0NSWVBUT19NRDU9eQorQ09ORklHX0NSWVBUT19NSUNI QUVMX01JQz1tCitDT05GSUdfQ1JZUFRPX1BPTFlWQUw9bQorQ09ORklHX0NSWVBUT19QT0xZMTMw NT1tCitDT05GSUdfQ1JZUFRPX1JNRDE2MD1tCitDT05GSUdfQ1JZUFRPX1NIQTE9eQorQ09ORklH X0NSWVBUT19TSEEyNTY9eQorQ09ORklHX0NSWVBUT19TSEE1MTI9eQorQ09ORklHX0NSWVBUT19T SEEzPW0KK0NPTkZJR19DUllQVE9fU00zPW0KK0NPTkZJR19DUllQVE9fU00zX0dFTkVSSUM9bQor Q09ORklHX0NSWVBUT19TVFJFRUJPRz1tCitDT05GSUdfQ1JZUFRPX1ZNQUM9bQorQ09ORklHX0NS WVBUT19XUDUxMj1tCitDT05GSUdfQ1JZUFRPX1hDQkM9bQorQ09ORklHX0NSWVBUT19YWEhBU0g9 bQorIyBlbmQgb2YgSGFzaGVzLCBkaWdlc3RzLCBhbmQgTUFDcworCisjCisjIENSQ3MgKGN5Y2xp YyByZWR1bmRhbmN5IGNoZWNrcykKKyMKK0NPTkZJR19DUllQVE9fQ1JDMzJDPXkKK0NPTkZJR19D UllQVE9fQ1JDMzI9bQorQ09ORklHX0NSWVBUT19DUkNUMTBESUY9eQorQ09ORklHX0NSWVBUT19D UkM2NF9ST0NLU09GVD15CisjIGVuZCBvZiBDUkNzIChjeWNsaWMgcmVkdW5kYW5jeSBjaGVja3Mp CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKK0NPTkZJR19DUllQVE9fREVGTEFURT1tCitDT05GSUdf Q1JZUFRPX0xaTz15CitDT05GSUdfQ1JZUFRPXzg0Mj15CitDT05GSUdfQ1JZUFRPX0xaND1tCitD T05GSUdfQ1JZUFRPX0xaNEhDPW0KK0NPTkZJR19DUllQVE9fWlNURD15CisjIGVuZCBvZiBDb21w cmVzc2lvbgorCisjCisjIFJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbgorIworQ09ORklHX0NSWVBU T19BTlNJX0NQUk5HPW0KK0NPTkZJR19DUllQVE9fRFJCR19NRU5VPXkKK0NPTkZJR19DUllQVE9f RFJCR19ITUFDPXkKK0NPTkZJR19DUllQVE9fRFJCR19IQVNIPXkKK0NPTkZJR19DUllQVE9fRFJC R19DVFI9eQorQ09ORklHX0NSWVBUT19EUkJHPXkKK0NPTkZJR19DUllQVE9fSklUVEVSRU5UUk9Q WT15CitDT05GSUdfQ1JZUFRPX0tERjgwMDEwOF9DVFI9eQorIyBlbmQgb2YgUmFuZG9tIG51bWJl ciBnZW5lcmF0aW9uCisKKyMKKyMgVXNlcnNwYWNlIGludGVyZmFjZQorIworQ09ORklHX0NSWVBU T19VU0VSX0FQST1tCitDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX0hBU0g9bQorQ09ORklHX0NSWVBU T19VU0VSX0FQSV9TS0NJUEhFUj1tCitDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX1JORz1tCisjIENP TkZJR19DUllQVE9fVVNFUl9BUElfUk5HX0NBVlAgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19V U0VSX0FQSV9BRUFEPW0KK0NPTkZJR19DUllQVE9fVVNFUl9BUElfRU5BQkxFX09CU09MRVRFPXkK KyMgQ09ORklHX0NSWVBUT19TVEFUUyBpcyBub3Qgc2V0CisjIGVuZCBvZiBVc2Vyc3BhY2UgaW50 ZXJmYWNlCisKK0NPTkZJR19DUllQVE9fSEFTSF9JTkZPPXkKK0NPTkZJR19DUllQVE9fSFc9eQor Q09ORklHX0NSWVBUT19ERVZfQUxMV0lOTkVSPXkKK0NPTkZJR19DUllQVE9fREVWX1NVTjRJX1NT PW0KK0NPTkZJR19DUllQVE9fREVWX1NVTjRJX1NTX1BSTkc9eQorIyBDT05GSUdfQ1JZUFRPX0RF Vl9TVU40SV9TU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFVl9TVU44SV9DRT1t CisjIENPTkZJR19DUllQVE9fREVWX1NVTjhJX0NFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19D UllQVE9fREVWX1NVTjhJX0NFX0hBU0g9eQorQ09ORklHX0NSWVBUT19ERVZfU1VOOElfQ0VfUFJO Rz15CitDT05GSUdfQ1JZUFRPX0RFVl9TVU44SV9DRV9UUk5HPXkKK0NPTkZJR19DUllQVE9fREVW X1NVTjhJX1NTPW0KKyMgQ09ORklHX0NSWVBUT19ERVZfU1VOOElfU1NfREVCVUcgaXMgbm90IHNl dAorQ09ORklHX0NSWVBUT19ERVZfU1VOOElfU1NfUFJORz15CitDT05GSUdfQ1JZUFRPX0RFVl9T VU44SV9TU19IQVNIPXkKK0NPTkZJR19DUllQVE9fREVWX0FUTUVMX0kyQz1tCitDT05GSUdfQ1JZ UFRPX0RFVl9BVE1FTF9FQ0M9bQorQ09ORklHX0NSWVBUT19ERVZfQVRNRUxfU0hBMjA0QT1tCitD T05GSUdfQ1JZUFRPX0RFVl9RQVQ9bQorQ09ORklHX0NSWVBUT19ERVZfUUFUX0RIODk1eENDPW0K K0NPTkZJR19DUllQVE9fREVWX1FBVF9DM1hYWD1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRfQzYy WD1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRfNFhYWD1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRf REg4OTV4Q0NWRj1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRfQzNYWFhWRj1tCitDT05GSUdfQ1JZ UFRPX0RFVl9RQVRfQzYyWFZGPW0KK0NPTkZJR19DUllQVE9fREVWX05JVFJPWD1tCitDT05GSUdf Q1JZUFRPX0RFVl9OSVRST1hfQ05ONTVYWD1tCitDT05GSUdfQ1JZUFRPX0RFVl9DSEVMU0lPPW0K K0NPTkZJR19DUllQVE9fREVWX1ZJUlRJTz1tCitDT05GSUdfQ1JZUFRPX0RFVl9TQUZFWENFTD1t CitDT05GSUdfQ1JZUFRPX0RFVl9DQ1JFRT1tCitDT05GSUdfQ1JZUFRPX0RFVl9BTUxPR0lDX0dY TD1tCisjIENPTkZJR19DUllQVE9fREVWX0FNTE9HSUNfR1hMX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19DUllQVE9fREVWX0pINzExMD1tCitDT05GSUdfQVNZTU1FVFJJQ19LRVlfVFlQRT15CitD T05GSUdfQVNZTU1FVFJJQ19QVUJMSUNfS0VZX1NVQlRZUEU9eQorQ09ORklHX1g1MDlfQ0VSVElG SUNBVEVfUEFSU0VSPXkKK0NPTkZJR19QS0NTOF9QUklWQVRFX0tFWV9QQVJTRVI9bQorQ09ORklH X1BLQ1M3X01FU1NBR0VfUEFSU0VSPXkKKyMgQ09ORklHX1BLQ1M3X1RFU1RfS0VZIGlzIG5vdCBz ZXQKK0NPTkZJR19TSUdORURfUEVfRklMRV9WRVJJRklDQVRJT049eQorIyBDT05GSUdfRklQU19T SUdOQVRVUkVfU0VMRlRFU1QgaXMgbm90IHNldAorCisjCisjIENlcnRpZmljYXRlcyBmb3Igc2ln bmF0dXJlIGNoZWNraW5nCisjCitDT05GSUdfU1lTVEVNX1RSVVNURURfS0VZUklORz15CitDT05G SUdfU1lTVEVNX1RSVVNURURfS0VZUz0iIgorIyBDT05GSUdfU1lTVEVNX0VYVFJBX0NFUlRJRklD QVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ09OREFSWV9UUlVTVEVEX0tFWVJJTkcgaXMgbm90 IHNldAorIyBDT05GSUdfU1lTVEVNX0JMQUNLTElTVF9LRVlSSU5HIGlzIG5vdCBzZXQKKyMgZW5k IG9mIENlcnRpZmljYXRlcyBmb3Igc2lnbmF0dXJlIGNoZWNraW5nCisKK0NPTkZJR19CSU5BUllf UFJJTlRGPXkKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfUkFJRDZfUFE9bQor Q09ORklHX1JBSUQ2X1BRX0JFTkNITUFSSz15CitDT05GSUdfTElORUFSX1JBTkdFUz15CitDT05G SUdfUEFDS0lORz15CitDT05GSUdfQklUUkVWRVJTRT15CitDT05GSUdfR0VORVJJQ19TVFJOQ1BZ X0ZST01fVVNFUj15CitDT05GSUdfR0VORVJJQ19TVFJOTEVOX1VTRVI9eQorQ09ORklHX0dFTkVS SUNfTkVUX1VUSUxTPXkKK0NPTkZJR19DT1JESUM9bQorIyBDT05GSUdfUFJJTUVfTlVNQkVSUyBp cyBub3Qgc2V0CitDT05GSUdfUkFUSU9OQUw9eQorQ09ORklHX0dFTkVSSUNfUENJX0lPTUFQPXkK KworIworIyBDcnlwdG8gbGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0NSWVBUT19MSUJfVVRJ TFM9eQorQ09ORklHX0NSWVBUT19MSUJfQUVTPXkKK0NPTkZJR19DUllQVE9fTElCX0FSQzQ9bQor Q09ORklHX0NSWVBUT19MSUJfR0YxMjhNVUw9eQorQ09ORklHX0NSWVBUT19MSUJfQkxBS0UyU19H RU5FUklDPXkKK0NPTkZJR19DUllQVE9fTElCX0NIQUNIQV9HRU5FUklDPW0KK0NPTkZJR19DUllQ VE9fTElCX0NIQUNIQT1tCitDT05GSUdfQ1JZUFRPX0xJQl9DVVJWRTI1NTE5X0dFTkVSSUM9bQor Q09ORklHX0NSWVBUT19MSUJfQ1VSVkUyNTUxOT1tCitDT05GSUdfQ1JZUFRPX0xJQl9ERVM9bQor Q09ORklHX0NSWVBUT19MSUJfUE9MWTEzMDVfUlNJWkU9MQorQ09ORklHX0NSWVBUT19MSUJfUE9M WTEzMDVfR0VORVJJQz1tCitDT05GSUdfQ1JZUFRPX0xJQl9QT0xZMTMwNT1tCitDT05GSUdfQ1JZ UFRPX0xJQl9DSEFDSEEyMFBPTFkxMzA1PW0KK0NPTkZJR19DUllQVE9fTElCX1NIQTE9eQorQ09O RklHX0NSWVBUT19MSUJfU0hBMjU2PXkKKyMgZW5kIG9mIENyeXB0byBsaWJyYXJ5IHJvdXRpbmVz CisKK0NPTkZJR19DUkNfQ0NJVFQ9eQorQ09ORklHX0NSQzE2PXkKK0NPTkZJR19DUkNfVDEwRElG PXkKK0NPTkZJR19DUkM2NF9ST0NLU09GVD15CitDT05GSUdfQ1JDX0lUVV9UPW0KK0NPTkZJR19D UkMzMj15CisjIENPTkZJR19DUkMzMl9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzJf U0xJQ0VCWTg9eQorIyBDT05GSUdfQ1JDMzJfU0xJQ0VCWTQgaXMgbm90IHNldAorIyBDT05GSUdf Q1JDMzJfU0FSV0FURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMzMl9CSVQgaXMgbm90IHNldAor Q09ORklHX0NSQzY0PXkKK0NPTkZJR19DUkM0PW0KK0NPTkZJR19DUkM3PW0KK0NPTkZJR19MSUJD UkMzMkM9bQorQ09ORklHX0NSQzg9eQorQ09ORklHX1hYSEFTSD15CitDT05GSUdfQVVESVRfR0VO RVJJQz15CisjIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfODQy X0NPTVBSRVNTPXkKK0NPTkZJR184NDJfREVDT01QUkVTUz15CitDT05GSUdfWkxJQl9JTkZMQVRF PXkKK0NPTkZJR19aTElCX0RFRkxBVEU9bQorQ09ORklHX0xaT19DT01QUkVTUz15CitDT05GSUdf TFpPX0RFQ09NUFJFU1M9eQorQ09ORklHX0xaNF9DT01QUkVTUz1tCitDT05GSUdfTFo0SENfQ09N UFJFU1M9bQorQ09ORklHX0xaNF9ERUNPTVBSRVNTPXkKK0NPTkZJR19aU1REX0NPTU1PTj15CitD T05GSUdfWlNURF9DT01QUkVTUz15CitDT05GSUdfWlNURF9ERUNPTVBSRVNTPXkKK0NPTkZJR19Y Wl9ERUM9eQorQ09ORklHX1haX0RFQ19YODY9eQorQ09ORklHX1haX0RFQ19QT1dFUlBDPXkKK0NP TkZJR19YWl9ERUNfSUE2ND15CitDT05GSUdfWFpfREVDX0FSTT15CitDT05GSUdfWFpfREVDX0FS TVRIVU1CPXkKK0NPTkZJR19YWl9ERUNfU1BBUkM9eQorQ09ORklHX1haX0RFQ19NSUNST0xaTUE9 eQorQ09ORklHX1haX0RFQ19CQ0o9eQorIyBDT05GSUdfWFpfREVDX1RFU1QgaXMgbm90IHNldAor Q09ORklHX0RFQ09NUFJFU1NfR1pJUD15CitDT05GSUdfREVDT01QUkVTU19CWklQMj15CitDT05G SUdfREVDT01QUkVTU19MWk1BPXkKK0NPTkZJR19ERUNPTVBSRVNTX1haPXkKK0NPTkZJR19ERUNP TVBSRVNTX0xaTz15CitDT05GSUdfREVDT01QUkVTU19MWjQ9eQorQ09ORklHX0RFQ09NUFJFU1Nf WlNURD15CitDT05GSUdfR0VORVJJQ19BTExPQ0FUT1I9eQorQ09ORklHX1JFRURfU09MT01PTj1t CitDT05GSUdfUkVFRF9TT0xPTU9OX0VOQzg9eQorQ09ORklHX1JFRURfU09MT01PTl9ERUM4PXkK K0NPTkZJR19SRUVEX1NPTE9NT05fREVDMTY9eQorQ09ORklHX0JDSD1tCitDT05GSUdfVEVYVFNF QVJDSD15CitDT05GSUdfVEVYVFNFQVJDSF9LTVA9bQorQ09ORklHX1RFWFRTRUFSQ0hfQk09bQor Q09ORklHX1RFWFRTRUFSQ0hfRlNNPW0KK0NPTkZJR19CVFJFRT15CitDT05GSUdfSU5URVJWQUxf VFJFRT15CitDT05GSUdfSU5URVJWQUxfVFJFRV9TUEFOX0lURVI9eQorQ09ORklHX1hBUlJBWV9N VUxUST15CitDT05GSUdfQVNTT0NJQVRJVkVfQVJSQVk9eQorQ09ORklHX0hBU19JT01FTT15CitD T05GSUdfSEFTX0lPUE9SVF9NQVA9eQorQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0RNQV9PUFM9 eQorQ09ORklHX05FRURfRE1BX01BUF9TVEFURT15CitDT05GSUdfQVJDSF9ETUFfQUREUl9UXzY0 QklUPXkKK0NPTkZJR19ETUFfREVDTEFSRV9DT0hFUkVOVD15CitDT05GSUdfQVJDSF9IQVNfU0VU VVBfRE1BX09QUz15CitDT05GSUdfQVJDSF9IQVNfU1lOQ19ETUFfRk9SX0RFVklDRT15CitDT05G SUdfQVJDSF9IQVNfU1lOQ19ETUFfRk9SX0NQVT15CitDT05GSUdfQVJDSF9IQVNfRE1BX1BSRVBf Q09IRVJFTlQ9eQorQ09ORklHX1NXSU9UTEI9eQorIyBDT05GSUdfRE1BX1JFU1RSSUNURURfUE9P TCBpcyBub3Qgc2V0CitDT05GSUdfRE1BX05PTkNPSEVSRU5UX01NQVA9eQorQ09ORklHX0RNQV9D T0hFUkVOVF9QT09MPXkKK0NPTkZJR19ETUFfRElSRUNUX1JFTUFQPXkKK0NPTkZJR19ETUFfQ01B PXkKK0NPTkZJR19ETUFfUEVSTlVNQV9DTUE9eQorCisjCisjIERlZmF1bHQgY29udGlndW91cyBt ZW1vcnkgYXJlYSBzaXplOgorIworQ09ORklHX0NNQV9TSVpFX01CWVRFUz0wCitDT05GSUdfQ01B X1NJWkVfU0VMX01CWVRFUz15CisjIENPTkZJR19DTUFfU0laRV9TRUxfUEVSQ0VOVEFHRSBpcyBu b3Qgc2V0CisjIENPTkZJR19DTUFfU0laRV9TRUxfTUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NN QV9TSVpFX1NFTF9NQVggaXMgbm90IHNldAorQ09ORklHX0NNQV9BTElHTk1FTlQ9OAorIyBDT05G SUdfRE1BX0FQSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ETUFfTUFQX0JFTkNITUFSSyBp cyBub3Qgc2V0CitDT05GSUdfU0dMX0FMTE9DPXkKK0NPTkZJR19DSEVDS19TSUdOQVRVUkU9eQor IyBDT05GSUdfRk9SQ0VfTlJfQ1BVUyBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX1JNQVA9eQorQ09O RklHX0RRTD15CitDT05GSUdfR0xPQj15CisjIENPTkZJR19HTE9CX1NFTEZURVNUIGlzIG5vdCBz ZXQKK0NPTkZJR19OTEFUVFI9eQorQ09ORklHX0xSVV9DQUNIRT1tCitDT05GSUdfQ0xaX1RBQj15 CitDT05GSUdfSVJRX1BPTEw9eQorQ09ORklHX01QSUxJQj15CitDT05GSUdfRElNTElCPXkKK0NP TkZJR19MSUJGRFQ9eQorQ09ORklHX09JRF9SRUdJU1RSWT15CitDT05GSUdfVUNTMl9TVFJJTkc9 eQorQ09ORklHX0hBVkVfR0VORVJJQ19WRFNPPXkKK0NPTkZJR19HRU5FUklDX0dFVFRJTUVPRkRB WT15CitDT05GSUdfR0VORVJJQ19WRFNPX1RJTUVfTlM9eQorQ09ORklHX0ZPTlRfU1VQUE9SVD15 CitDT05GSUdfRk9OVFM9eQorQ09ORklHX0ZPTlRfOHg4PXkKK0NPTkZJR19GT05UXzh4MTY9eQor IyBDT05GSUdfRk9OVF82eDExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfN3gxNCBpcyBub3Qg c2V0CisjIENPTkZJR19GT05UX1BFQVJMXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX0FD T1JOXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX01JTklfNHg2IGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZPTlRfNngxMCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UXzEweDE4IGlzIG5vdCBz ZXQKKyMgQ09ORklHX0ZPTlRfU1VOOHgxNiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1NVTjEy eDIyIGlzIG5vdCBzZXQKK0NPTkZJR19GT05UX1RFUjE2eDMyPXkKKyMgQ09ORklHX0ZPTlRfNng4 IGlzIG5vdCBzZXQKK0NPTkZJR19TR19QT09MPXkKK0NPTkZJR19BUkNIX0hBU19QTUVNX0FQST15 CitDT05GSUdfTUVNUkVHSU9OPXkKK0NPTkZJR19BUkNIX1NUQUNLV0FMSz15CitDT05GSUdfU1RB Q0tERVBPVD15CitDT05GSUdfU0JJVE1BUD15CitDT05GSUdfUEFSTUFOPW0KK0NPTkZJR19PQkpB R0c9bQorIyBlbmQgb2YgTGlicmFyeSByb3V0aW5lcworCitDT05GSUdfR0VORVJJQ19JT1JFTUFQ PXkKK0NPTkZJR19HRU5FUklDX0xJQl9ERVZNRU1fSVNfQUxMT1dFRD15CitDT05GSUdfUExETUZX PXkKK0NPTkZJR19BU04xX0VOQ09ERVI9bQorQ09ORklHX1BPTFlOT01JQUw9bQorCisjCisjIEtl cm5lbCBoYWNraW5nCisjCisKKyMKKyMgcHJpbnRrIGFuZCBkbWVzZyBvcHRpb25zCisjCitDT05G SUdfUFJJTlRLX1RJTUU9eQorIyBDT05GSUdfUFJJTlRLX0NBTExFUiBpcyBub3Qgc2V0CisjIENP TkZJR19TVEFDS1RSQUNFX0JVSUxEX0lEIGlzIG5vdCBzZXQKK0NPTkZJR19DT05TT0xFX0xPR0xF VkVMX0RFRkFVTFQ9NworQ09ORklHX0NPTlNPTEVfTE9HTEVWRUxfUVVJRVQ9NAorQ09ORklHX01F U1NBR0VfTE9HTEVWRUxfREVGQVVMVD00CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBu b3Qgc2V0CitDT05GSUdfRFlOQU1JQ19ERUJVRz15CitDT05GSUdfRFlOQU1JQ19ERUJVR19DT1JF PXkKK0NPTkZJR19TWU1CT0xJQ19FUlJOQU1FPXkKK0NPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkK KyMgZW5kIG9mIHByaW50ayBhbmQgZG1lc2cgb3B0aW9ucworCitDT05GSUdfREVCVUdfS0VSTkVM PXkKK0NPTkZJR19ERUJVR19NSVNDPXkKKworIworIyBDb21waWxlLXRpbWUgY2hlY2tzIGFuZCBj b21waWxlciBvcHRpb25zCisjCitDT05GSUdfREVCVUdfSU5GTz15CisjIENPTkZJR19ERUJVR19J TkZPX05PTkUgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0lORk9fRFdBUkZfVE9PTENIQUlOX0RF RkFVTFQ9eQorIyBDT05GSUdfREVCVUdfSU5GT19EV0FSRjQgaXMgbm90IHNldAorIyBDT05GSUdf REVCVUdfSU5GT19EV0FSRjUgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfSU5GT19SRURVQ0VE IGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPX0NPTVBSRVNTRURfTk9ORT15CisjIENPTkZJ R19ERUJVR19JTkZPX0NPTVBSRVNTRURfWkxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19J TkZPX1NQTElUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPX0JURj15CitDT05GSUdfUEFI T0xFX0hBU19TUExJVF9CVEY9eQorQ09ORklHX1BBSE9MRV9IQVNfTEFOR19FWENMVURFPXkKK0NP TkZJR19ERUJVR19JTkZPX0JURl9NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9BTExPV19CVEZf TUlTTUFUQ0ggaXMgbm90IHNldAorIyBDT05GSUdfR0RCX1NDUklQVFMgaXMgbm90IHNldAorQ09O RklHX0ZSQU1FX1dBUk49MjA0OAorQ09ORklHX1NUUklQX0FTTV9TWU1TPXkKKyMgQ09ORklHX1JF QURBQkxFX0FTTSBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0lOU1RBTEwgaXMgbm90IHNl dAorQ09ORklHX0RFQlVHX1NFQ1RJT05fTUlTTUFUQ0g9eQorQ09ORklHX1NFQ1RJT05fTUlTTUFU Q0hfV0FSTl9PTkxZPXkKK0NPTkZJR19BUkNIX1dBTlRfRlJBTUVfUE9JTlRFUlM9eQorQ09ORklH X0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfVk1MSU5VWF9NQVAgaXMgbm90IHNldAorQ09ORklH X0RFQlVHX0ZPUkNFX1dFQUtfUEVSX0NQVT15CisjIGVuZCBvZiBDb21waWxlLXRpbWUgY2hlY2tz IGFuZCBjb21waWxlciBvcHRpb25zCisKKyMKKyMgR2VuZXJpYyBLZXJuZWwgRGVidWdnaW5nIElu c3RydW1lbnRzCisjCitDT05GSUdfTUFHSUNfU1lTUlE9eQorQ09ORklHX01BR0lDX1NZU1JRX0RF RkFVTFRfRU5BQkxFPTB4MQorQ09ORklHX01BR0lDX1NZU1JRX1NFUklBTD15CitDT05GSUdfTUFH SUNfU1lTUlFfU0VSSUFMX1NFUVVFTkNFPSIiCitDT05GSUdfREVCVUdfRlM9eQorQ09ORklHX0RF QlVHX0ZTX0FMTE9XX0FMTD15CisjIENPTkZJR19ERUJVR19GU19ESVNBTExPV19NT1VOVCBpcyBu b3Qgc2V0CisjIENPTkZJR19ERUJVR19GU19BTExPV19OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19I QVZFX0FSQ0hfS0dEQj15CitDT05GSUdfSEFWRV9BUkNIX0tHREJfUVhGRVJfUEtUPXkKK0NPTkZJ R19LR0RCPXkKK0NPTkZJR19LR0RCX0hPTk9VUl9CTE9DS0xJU1Q9eQorQ09ORklHX0tHREJfU0VS SUFMX0NPTlNPTEU9eQorIyBDT05GSUdfS0dEQl9URVNUUyBpcyBub3Qgc2V0CitDT05GSUdfS0dE Ql9LREI9eQorQ09ORklHX0tEQl9ERUZBVUxUX0VOQUJMRT0weDEKK0NPTkZJR19LREJfS0VZQk9B UkQ9eQorQ09ORklHX0tEQl9DT05USU5VRV9DQVRBU1RST1BISUM9MAorQ09ORklHX0FSQ0hfSEFT X1VCU0FOX1NBTklUSVpFX0FMTD15CisjIENPTkZJR19VQlNBTiBpcyBub3Qgc2V0CitDT05GSUdf SEFWRV9LQ1NBTl9DT01QSUxFUj15CisjIGVuZCBvZiBHZW5lcmljIEtlcm5lbCBEZWJ1Z2dpbmcg SW5zdHJ1bWVudHMKKworIworIyBOZXR3b3JraW5nIERlYnVnZ2luZworIworIyBDT05GSUdfTkVU X0RFVl9SRUZDTlRfVFJBQ0tFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfTlNfUkVGQ05UX1RS QUNLRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTkVUIGlzIG5vdCBzZXQKKyMgZW5kIG9m IE5ldHdvcmtpbmcgRGVidWdnaW5nCisKKyMKKyMgTWVtb3J5IERlYnVnZ2luZworIworQ09ORklH X1BBR0VfRVhURU5TSU9OPXkKKyMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CitD T05GSUdfU0xVQl9ERUJVRz15CisjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKK0NP TkZJR19QQUdFX09XTkVSPXkKKyMgQ09ORklHX1BBR0VfVEFCTEVfQ0hFQ0sgaXMgbm90IHNldAor Q09ORklHX1BBR0VfUE9JU09OSU5HPXkKKyMgQ09ORklHX0RFQlVHX1BBR0VfUkVGIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0RFQlVHX1JPREFUQV9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hB U19ERUJVR19XWD15CitDT05GSUdfREVCVUdfV1g9eQorQ09ORklHX0dFTkVSSUNfUFREVU1QPXkK K0NPTkZJR19QVERVTVBfQ09SRT15CisjIENPTkZJR19QVERVTVBfREVCVUdGUyBpcyBub3Qgc2V0 CitDT05GSUdfSEFWRV9ERUJVR19LTUVNTEVBSz15CisjIENPTkZJR19ERUJVR19LTUVNTEVBSyBp cyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NI UklOS0VSX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5v dCBzZXQKK0NPTkZJR19TQ0hFRF9TVEFDS19FTkRfQ0hFQ0s9eQorQ09ORklHX0FSQ0hfSEFTX0RF QlVHX1ZNX1BHVEFCTEU9eQorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdf REVCVUdfVk1fUEdUQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfREVCVUdfVklSVFVB TD15CisjIENPTkZJR19ERUJVR19WSVJUVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19NRU1P UllfSU5JVD15CisjIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgaXMgbm90IHNldAorQ09ORklH X0hBVkVfQVJDSF9LQVNBTj15CitDT05GSUdfSEFWRV9BUkNIX0tBU0FOX1ZNQUxMT0M9eQorQ09O RklHX0NDX0hBU19LQVNBTl9HRU5FUklDPXkKK0NPTkZJR19DQ19IQVNfV09SS0lOR19OT1NBTklU SVpFX0FERFJFU1M9eQorIyBDT05GSUdfS0FTQU4gaXMgbm90IHNldAorQ09ORklHX0hBVkVfQVJD SF9LRkVOQ0U9eQorIyBDT05GSUdfS0ZFTkNFIGlzIG5vdCBzZXQKKyMgZW5kIG9mIE1lbW9yeSBE ZWJ1Z2dpbmcKKworIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorCisjCisjIERlYnVn IE9vcHMsIExvY2t1cHMgYW5kIEhhbmdzCisjCisjIENPTkZJR19QQU5JQ19PTl9PT1BTIGlzIG5v dCBzZXQKK0NPTkZJR19QQU5JQ19PTl9PT1BTX1ZBTFVFPTAKK0NPTkZJR19QQU5JQ19USU1FT1VU PTAKK0NPTkZJR19MT0NLVVBfREVURUNUT1I9eQorQ09ORklHX1NPRlRMT0NLVVBfREVURUNUT1I9 eQorIyBDT05GSUdfQk9PVFBBUkFNX1NPRlRMT0NLVVBfUEFOSUMgaXMgbm90IHNldAorQ09ORklH X0RFVEVDVF9IVU5HX1RBU0s9eQorQ09ORklHX0RFRkFVTFRfSFVOR19UQVNLX1RJTUVPVVQ9MTIw CisjIENPTkZJR19CT09UUEFSQU1fSFVOR19UQVNLX1BBTklDIGlzIG5vdCBzZXQKKyMgQ09ORklH X1dRX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTE9DS1VQIGlzIG5vdCBzZXQK KyMgZW5kIG9mIERlYnVnIE9vcHMsIExvY2t1cHMgYW5kIEhhbmdzCisKKyMKKyMgU2NoZWR1bGVy IERlYnVnZ2luZworIworQ09ORklHX1NDSEVEX0RFQlVHPXkKK0NPTkZJR19TQ0hFRF9JTkZPPXkK K0NPTkZJR19TQ0hFRFNUQVRTPXkKKyMgZW5kIG9mIFNjaGVkdWxlciBEZWJ1Z2dpbmcKKworIyBD T05GSUdfREVCVUdfVElNRUtFRVBJTkcgaXMgbm90IHNldAorCisjCisjIExvY2sgRGVidWdnaW5n IChzcGlubG9ja3MsIG11dGV4ZXMsIGV0Yy4uLikKKyMKK0NPTkZJR19MT0NLX0RFQlVHR0lOR19T VVBQT1JUPXkKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTE9D S19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAor IyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTVVURVhF UyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XV19NVVRFWF9TTE9XUEFUSCBpcyBub3Qgc2V0 CisjIENPTkZJR19ERUJVR19SV1NFTVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19B TExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19BVE9NSUNfU0xFRVAgaXMgbm90IHNldAor IyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklH X0xPQ0tfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dXX01VVEVYX1NFTEZURVNU IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDRl9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05G SUdfQ1NEX0xPQ0tfV0FJVF9ERUJVRyBpcyBub3Qgc2V0CisjIGVuZCBvZiBMb2NrIERlYnVnZ2lu ZyAoc3BpbmxvY2tzLCBtdXRleGVzLCBldGMuLi4pCisKKyMgQ09ORklHX0RFQlVHX0lSUUZMQUdT IGlzIG5vdCBzZXQKK0NPTkZJR19TVEFDS1RSQUNFPXkKKyMgQ09ORklHX1dBUk5fQUxMX1VOU0VF REVEX1JBTkRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQK KworIworIyBEZWJ1ZyBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzCisjCisjIENPTkZJR19ERUJVR19M SVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1BMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklH X0RFQlVHX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX05PVElGSUVSUyBpcyBub3Qgc2V0 CisjIENPTkZJR19CVUdfT05fREFUQV9DT1JSVVBUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RF QlVHX01BUExFX1RSRUUgaXMgbm90IHNldAorIyBlbmQgb2YgRGVidWcga2VybmVsIGRhdGEgc3Ry dWN0dXJlcworCisjIENPTkZJR19ERUJVR19DUkVERU5USUFMUyBpcyBub3Qgc2V0CisKKyMKKyMg UkNVIERlYnVnZ2luZworIworQ09ORklHX1RPUlRVUkVfVEVTVD1tCisjIENPTkZJR19SQ1VfU0NB TEVfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfUkNVX1RPUlRVUkVfVEVTVD1tCitDT05GSUdfUkNV X1JFRl9TQ0FMRV9URVNUPW0KK0NPTkZJR19SQ1VfQ1BVX1NUQUxMX1RJTUVPVVQ9NjAKK0NPTkZJ R19SQ1VfRVhQX0NQVV9TVEFMTF9USU1FT1VUPTAKKyMgQ09ORklHX1JDVV9DUFVfU1RBTExfQ1BV VElNRSBpcyBub3Qgc2V0CitDT05GSUdfUkNVX1RSQUNFPXkKKyMgQ09ORklHX1JDVV9FUVNfREVC VUcgaXMgbm90IHNldAorIyBlbmQgb2YgUkNVIERlYnVnZ2luZworCisjIENPTkZJR19ERUJVR19X UV9GT1JDRV9SUl9DUFUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0hPVFBMVUdfU1RBVEVfQ09O VFJPTCBpcyBub3Qgc2V0CitDT05GSUdfTEFURU5DWVRPUD15CisjIENPTkZJR19ERUJVR19DR1JP VVBfUkVGIGlzIG5vdCBzZXQKK0NPTkZJR19OT1BfVFJBQ0VSPXkKK0NPTkZJR19IQVZFX1JFVEhP T0s9eQorQ09ORklHX1JFVEhPT0s9eQorQ09ORklHX0hBVkVfRlVOQ1RJT05fVFJBQ0VSPXkKK0NP TkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15CitDT05GSUdfSEFWRV9EWU5BTUlDX0ZU UkFDRT15CitDT05GSUdfSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX1JFR1M9eQorQ09ORklHX0hB VkVfRlRSQUNFX01DT1VOVF9SRUNPUkQ9eQorQ09ORklHX0hBVkVfU1lTQ0FMTF9UUkFDRVBPSU5U Uz15CitDT05GSUdfVFJBQ0VSX01BWF9UUkFDRT15CitDT05GSUdfVFJBQ0VfQ0xPQ0s9eQorQ09O RklHX1JJTkdfQlVGRkVSPXkKK0NPTkZJR19FVkVOVF9UUkFDSU5HPXkKK0NPTkZJR19DT05URVhU X1NXSVRDSF9UUkFDRVI9eQorQ09ORklHX1JJTkdfQlVGRkVSX0FMTE9XX1NXQVA9eQorQ09ORklH X1RSQUNJTkc9eQorQ09ORklHX0dFTkVSSUNfVFJBQ0VSPXkKK0NPTkZJR19UUkFDSU5HX1NVUFBP UlQ9eQorQ09ORklHX0ZUUkFDRT15CitDT05GSUdfQk9PVFRJTUVfVFJBQ0lORz15CitDT05GSUdf RlVOQ1RJT05fVFJBQ0VSPXkKK0NPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVI9eQorQ09ORklH X0RZTkFNSUNfRlRSQUNFPXkKK0NPTkZJR19EWU5BTUlDX0ZUUkFDRV9XSVRIX1JFR1M9eQorQ09O RklHX0ZQUk9CRT15CitDT05GSUdfRlVOQ1RJT05fUFJPRklMRVI9eQorQ09ORklHX1NUQUNLX1RS QUNFUj15CisjIENPTkZJR19JUlFTT0ZGX1RSQUNFUiBpcyBub3Qgc2V0CitDT05GSUdfU0NIRURf VFJBQ0VSPXkKK0NPTkZJR19IV0xBVF9UUkFDRVI9eQorQ09ORklHX09TTk9JU0VfVFJBQ0VSPXkK K0NPTkZJR19USU1FUkxBVF9UUkFDRVI9eQorQ09ORklHX0ZUUkFDRV9TWVNDQUxMUz15CitDT05G SUdfVFJBQ0VSX1NOQVBTSE9UPXkKK0NPTkZJR19UUkFDRVJfU05BUFNIT1RfUEVSX0NQVV9TV0FQ PXkKK0NPTkZJR19CUkFOQ0hfUFJPRklMRV9OT05FPXkKKyMgQ09ORklHX1BST0ZJTEVfQU5OT1RB VEVEX0JSQU5DSEVTIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lPX1RSQUNFPXkKK0NPTkZJ R19LUFJPQkVfRVZFTlRTPXkKKyMgQ09ORklHX0tQUk9CRV9FVkVOVFNfT05fTk9UUkFDRSBpcyBu b3Qgc2V0CitDT05GSUdfVVBST0JFX0VWRU5UUz15CitDT05GSUdfQlBGX0VWRU5UUz15CitDT05G SUdfRFlOQU1JQ19FVkVOVFM9eQorQ09ORklHX1BST0JFX0VWRU5UUz15CitDT05GSUdfQlBGX0tQ Uk9CRV9PVkVSUklERT15CitDT05GSUdfRlRSQUNFX01DT1VOVF9SRUNPUkQ9eQorQ09ORklHX0ZU UkFDRV9NQ09VTlRfVVNFX1JFQ09SRE1DT1VOVD15CitDT05GSUdfU1lOVEhfRVZFTlRTPXkKKyMg Q09ORklHX1RSQUNFX0VWRU5UX0lOSkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UUkFDRVBPSU5U X0JFTkNITUFSSyBpcyBub3Qgc2V0CitDT05GSUdfUklOR19CVUZGRVJfQkVOQ0hNQVJLPW0KKyMg Q09ORklHX1RSQUNFX0VWQUxfTUFQX0ZJTEUgaXMgbm90IHNldAorIyBDT05GSUdfRlRSQUNFX1JF Q09SRF9SRUNVUlNJT04gaXMgbm90IHNldAorIyBDT05GSUdfRlRSQUNFX1NUQVJUVVBfVEVTVCBp cyBub3Qgc2V0CisjIENPTkZJR19SSU5HX0JVRkZFUl9TVEFSVFVQX1RFU1QgaXMgbm90IHNldAor IyBDT05GSUdfUklOR19CVUZGRVJfVkFMSURBVEVfVElNRV9ERUxUQVMgaXMgbm90IHNldAorIyBD T05GSUdfUFJFRU1QVElSUV9ERUxBWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTlRIX0VW RU5UX0dFTl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRV9FVkVOVF9HRU5fVEVTVCBp cyBub3Qgc2V0CisjIENPTkZJR19SViBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5v dCBzZXQKK0NPTkZJR19TVFJJQ1RfREVWTUVNPXkKK0NPTkZJR19JT19TVFJJQ1RfREVWTUVNPXkK KworIworIyByaXNjdiBEZWJ1Z2dpbmcKKyMKKyMgZW5kIG9mIHJpc2N2IERlYnVnZ2luZworCisj CisjIEtlcm5lbCBUZXN0aW5nIGFuZCBDb3ZlcmFnZQorIworIyBDT05GSUdfS1VOSVQgaXMgbm90 IHNldAorIyBDT05GSUdfTk9USUZJRVJfRVJST1JfSU5KRUNUSU9OIGlzIG5vdCBzZXQKK0NPTkZJ R19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT049eQorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlz IG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19LQ09WPXkKK0NPTkZJR19DQ19IQVNfU0FOQ09WX1RS QUNFX1BDPXkKKyMgQ09ORklHX0tDT1YgaXMgbm90IHNldAorQ09ORklHX1JVTlRJTUVfVEVTVElO R19NRU5VPXkKKyMgQ09ORklHX1RFU1RfREhSWSBpcyBub3Qgc2V0CisjIENPTkZJR19MS0RUTSBp cyBub3Qgc2V0CisjIENPTkZJR19URVNUX01JTl9IRUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RF U1RfRElWNjQgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qg c2V0CisjIENPTkZJR19URVNUX1JFRl9UUkFDS0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JCVFJF RV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFRURfU09MT01PTl9URVNUIGlzIG5vdCBzZXQK KyMgQ09ORklHX0lOVEVSVkFMX1RSRUVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19QRVJDUFVf VEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19BVE9NSUM2NF9TRUxGVEVTVCBpcyBub3Qgc2V0CitD T05GSUdfQVNZTkNfUkFJRDZfVEVTVD1tCisjIENPTkZJR19URVNUX0hFWERVTVAgaXMgbm90IHNl dAorIyBDT05GSUdfU1RSSU5HX1NFTEZURVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfU1RS SU5HX0hFTFBFUlMgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9LU1RSVE9YIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RFU1RfUFJJTlRGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfU0NBTkYgaXMg bm90IHNldAorIyBDT05GSUdfVEVTVF9CSVRNQVAgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9V VUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfWEFSUkFZIGlzIG5vdCBzZXQKKyMgQ09ORklH X1RFU1RfTUFQTEVfVFJFRSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1JIQVNIVEFCTEUgaXMg bm90IHNldAorIyBDT05GSUdfVEVTVF9JREEgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9QQVJN QU4gaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9MS00gaXMgbm90IHNldAorIyBDT05GSUdfVEVT VF9CSVRPUFMgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9WTUFMTE9DIGlzIG5vdCBzZXQKKyMg Q09ORklHX1RFU1RfVVNFUl9DT1BZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfQlBGIGlzIG5v dCBzZXQKKyMgQ09ORklHX1RFU1RfQkxBQ0tIT0xFX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19G SU5EX0JJVF9CRU5DSE1BUksgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9GSVJNV0FSRSBpcyBu b3Qgc2V0CisjIENPTkZJR19URVNUX1NZU0NUTCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1VE RUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1NUQVRJQ19LRVlTIGlzIG5vdCBzZXQKKyMg Q09ORklHX1RFU1RfRFlOQU1JQ19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0tNT0Qg aXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9NRU1DQVRfUCBpcyBub3Qgc2V0CisjIENPTkZJR19U RVNUX09CSkFHRyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX01FTUlOSVQgaXMgbm90IHNldAor IyBDT05GSUdfVEVTVF9GUkVFX1BBR0VTIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1VTRV9NRU1U RVNUPXkKK0NPTkZJR19NRU1URVNUPXkKKyMgZW5kIG9mIEtlcm5lbCBUZXN0aW5nIGFuZCBDb3Zl cmFnZQorCisjCisjIFJ1c3QgaGFja2luZworIworIyBlbmQgb2YgUnVzdCBoYWNraW5nCisjIGVu ZCBvZiBLZXJuZWwgaGFja2luZwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwMDEtZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1zeXN0ZW0tY2xvY2st YS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDAxLWR0LWJpbmRpbmdzLWNsb2Nr LUFkZC1TdGFyRml2ZS1KSDcxMTAtc3lzdGVtLWNsb2NrLWEucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYTY4NWY4NGJmMDU2MQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDAxLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1T dGFyRml2ZS1KSDcxMTAtc3lzdGVtLWNsb2NrLWEucGF0Y2gKQEAgLTAsMCArMSw1MzIgQEAKK0Zy b20gZDBlNDVkMmI1MWExMmNkMTRjYmY0MDFiYWI0NzQxNjJlMjIyMGYyYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+ CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MTMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAw MS84NF0gZHQtYmluZGluZ3M6IGNsb2NrOiBBZGQgU3RhckZpdmUgSkg3MTEwIHN5c3RlbSBjbG9j aworIGFuZCByZXNldCBnZW5lcmF0b3IKKworQWRkIGJpbmRpbmdzIGZvciB0aGUgc3lzdGVtIGNs b2NrIGFuZCByZXNldCBnZW5lcmF0b3IgKFNZU0NSRykgb24gdGhlCitKSDcxMTAgUklTQy1WIFNv QyBieSBTdGFyRml2ZSBMdGQuCisKK1Jldmlld2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRv b2xleUBtaWNyb2NoaXAuY29tPgorUmV2aWV3ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5l bC5vcmc+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWls LmRrPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+ CistLS0KKyAuLi4vY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55YW1sICAgICAgICAgfCAx MDQgKysrKysrKysrCisgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE2ICstCisgLi4uL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcu aCAgIHwgMjAzICsrKysrKysrKysrKysrKysrKworIC4uLi9kdC1iaW5kaW5ncy9yZXNldC9zdGFy Zml2ZSxqaDcxMTAtY3JnLmggICB8IDE0MiArKysrKysrKysrKysKKyA0IGZpbGVzIGNoYW5nZWQs IDQ1OCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBE b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5 c2NyZy55YW1sCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2sv c3RhcmZpdmUsamg3MTEwLWNyZy5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHQtYmlu ZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55 YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpo NzExMC1zeXNjcmcueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAw MC4uODQzNzNhZTMxNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55YW1sCitAQCAtMCww ICsxLDEwNCBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSBPUiBC U0QtMi1DbGF1c2UKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9y Zy9zY2hlbWFzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1zeXNjcmcueWFtbCMKKyskc2NoZW1hOiBo dHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTog U3RhckZpdmUgSkg3MTEwIFN5c3RlbSBDbG9jayBhbmQgUmVzZXQgR2VuZXJhdG9yCisrCisrbWFp bnRhaW5lcnM6CisrICAtIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Cisr CisrcHJvcGVydGllczoKKysgIGNvbXBhdGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcx MTAtc3lzY3JnCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBjbG9ja3M6Cisr ICAgIG9uZU9mOgorKyAgICAgIC0gaXRlbXM6CisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1h aW4gT3NjaWxsYXRvciAoMjQgTUh6KQorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBHTUFDMSBS TUlJIHJlZmVyZW5jZSBvciBHTUFDMSBSR01JSSBSWAorKyAgICAgICAgICAtIGRlc2NyaXB0aW9u OiBFeHRlcm5hbCBJMlMgVFggYml0IGNsb2NrCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IEV4 dGVybmFsIEkyUyBUWCBsZWZ0L3JpZ2h0IGNoYW5uZWwgY2xvY2sKKysgICAgICAgICAgLSBkZXNj cmlwdGlvbjogRXh0ZXJuYWwgSTJTIFJYIGJpdCBjbG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0 aW9uOiBFeHRlcm5hbCBJMlMgUlggbGVmdC9yaWdodCBjaGFubmVsIGNsb2NrCisrICAgICAgICAg IC0gZGVzY3JpcHRpb246IEV4dGVybmFsIFRETSBjbG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0 aW9uOiBFeHRlcm5hbCBhdWRpbyBtYXN0ZXIgY2xvY2sKKysKKysgICAgICAtIGl0ZW1zOgorKyAg ICAgICAgICAtIGRlc2NyaXB0aW9uOiBNYWluIE9zY2lsbGF0b3IgKDI0IE1IeikKKysgICAgICAg ICAgLSBkZXNjcmlwdGlvbjogR01BQzEgUk1JSSByZWZlcmVuY2UKKysgICAgICAgICAgLSBkZXNj cmlwdGlvbjogR01BQzEgUkdNSUkgUlgKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogRXh0ZXJu YWwgSTJTIFRYIGJpdCBjbG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBJ MlMgVFggbGVmdC9yaWdodCBjaGFubmVsIGNsb2NrCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246 IEV4dGVybmFsIEkyUyBSWCBiaXQgY2xvY2sKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogRXh0 ZXJuYWwgSTJTIFJYIGxlZnQvcmlnaHQgY2hhbm5lbCBjbG9jaworKyAgICAgICAgICAtIGRlc2Ny aXB0aW9uOiBFeHRlcm5hbCBURE0gY2xvY2sKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogRXh0 ZXJuYWwgYXVkaW8gbWFzdGVyIGNsb2NrCisrCisrICBjbG9jay1uYW1lczoKKysgICAgb25lT2Y6 CisrICAgICAgLSBpdGVtczoKKysgICAgICAgICAgLSBjb25zdDogb3NjCisrICAgICAgICAgIC0g ZW51bToKKysgICAgICAgICAgICAgIC0gZ21hYzFfcm1paV9yZWZpbgorKyAgICAgICAgICAgICAg LSBnbWFjMV9yZ21paV9yeGluCisrICAgICAgICAgIC0gY29uc3Q6IGkyc3R4X2JjbGtfZXh0Cisr ICAgICAgICAgIC0gY29uc3Q6IGkyc3R4X2xyY2tfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IGky c3J4X2JjbGtfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3J4X2xyY2tfZXh0CisrICAgICAg ICAgIC0gY29uc3Q6IHRkbV9leHQKKysgICAgICAgICAgLSBjb25zdDogbWNsa19leHQKKysKKysg ICAgICAtIGl0ZW1zOgorKyAgICAgICAgICAtIGNvbnN0OiBvc2MKKysgICAgICAgICAgLSBjb25z dDogZ21hYzFfcm1paV9yZWZpbgorKyAgICAgICAgICAtIGNvbnN0OiBnbWFjMV9yZ21paV9yeGlu CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3R4X2JjbGtfZXh0CisrICAgICAgICAgIC0gY29uc3Q6 IGkyc3R4X2xyY2tfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3J4X2JjbGtfZXh0CisrICAg ICAgICAgIC0gY29uc3Q6IGkyc3J4X2xyY2tfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IHRkbV9l eHQKKysgICAgICAgICAgLSBjb25zdDogbWNsa19leHQKKysKKysgICcjY2xvY2stY2VsbHMnOgor KyAgICBjb25zdDogMQorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBTZWUgPGR0LWJpbmRpbmdz L2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaD4gZm9yIHZhbGlkIGluZGljZXMuCisrCisrICAn I3Jlc2V0LWNlbGxzJzoKKysgICAgY29uc3Q6IDEKKysgICAgZGVzY3JpcHRpb246CisrICAgICAg U2VlIDxkdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+IGZvciB2YWxpZCBp bmRpY2VzLgorKworK3JlcXVpcmVkOgorKyAgLSBjb21wYXRpYmxlCisrICAtIHJlZworKyAgLSBj bG9ja3MKKysgIC0gY2xvY2stbmFtZXMKKysgIC0gJyNjbG9jay1jZWxscycKKysgIC0gJyNyZXNl dC1jZWxscycKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoK KysgIC0gfAorKyAgICBjbG9jay1jb250cm9sbGVyQDEzMDIwMDAwIHsKKysgICAgICAgIGNvbXBh dGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXN5c2NyZyI7CisrICAgICAgICByZWcgPSA8MHgxMzAy MDAwMCAweDEwMDAwPjsKKysgICAgICAgIGNsb2NrcyA9IDwmb3NjPiwgPCZnbWFjMV9ybWlpX3Jl ZmluPiwKKysgICAgICAgICAgICAgICAgIDwmZ21hYzFfcmdtaWlfcnhpbj4sCisrICAgICAgICAg ICAgICAgICA8Jmkyc3R4X2JjbGtfZXh0PiwgPCZpMnN0eF9scmNrX2V4dD4sCisrICAgICAgICAg ICAgICAgICA8Jmkyc3J4X2JjbGtfZXh0PiwgPCZpMnNyeF9scmNrX2V4dD4sCisrICAgICAgICAg ICAgICAgICA8JnRkbV9leHQ+LCA8Jm1jbGtfZXh0PjsKKysgICAgICAgIGNsb2NrLW5hbWVzID0g Im9zYyIsICJnbWFjMV9ybWlpX3JlZmluIiwKKysgICAgICAgICAgICAgICAgICAgICAgImdtYWMx X3JnbWlpX3J4aW4iLAorKyAgICAgICAgICAgICAgICAgICAgICAiaTJzdHhfYmNsa19leHQiLCAi aTJzdHhfbHJja19leHQiLAorKyAgICAgICAgICAgICAgICAgICAgICAiaTJzcnhfYmNsa19leHQi LCAiaTJzcnhfbHJja19leHQiLAorKyAgICAgICAgICAgICAgICAgICAgICAidGRtX2V4dCIsICJt Y2xrX2V4dCI7CisrICAgICAgICAjY2xvY2stY2VsbHMgPSA8MT47CisrICAgICAgICAjcmVzZXQt Y2VsbHMgPSA8MT47CisrICAgIH07CitkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJ TkVSUworaW5kZXggYzY1NDVlYjU0MTA0Li5hYzFiZDFjM2IwZDcgMTAwNjQ0CistLS0gYS9NQUlO VEFJTkVSUworKysrIGIvTUFJTlRBSU5FUlMKK0BAIC0xOTkwMywxMiArMTk5MDMsMTMgQEAgTToJ RW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKyBTOglNYWludGFpbmVkCisg RjoJYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS8KKyAKKy1TVEFSRklWRSBKSDcxMDAgQ0xP Q0sgRFJJVkVSUworK1NUQVJGSVZFIEpINzFYMCBDTE9DSyBEUklWRVJTCisgTToJRW1pbCBSZW5u ZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKytNOglIYWwgRmVuZyA8aGFsLmZlbmdAc3Rh cmZpdmV0ZWNoLmNvbT4KKyBTOglNYWludGFpbmVkCistRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzEwMC0qLnlhbWwKKy1GOglkcml2ZXJzL2Ns ay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwKgorLUY6CWluY2x1ZGUvZHQtYmluZGluZ3Mv Y2xvY2svc3RhcmZpdmUtamg3MTAwKi5oCisrRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzEqLnlhbWwKKytGOglkcml2ZXJzL2Nsay9zdGFyZml2 ZS9jbGstc3RhcmZpdmUtamg3MSoKKytGOglpbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJm aXZlP2poNzEqLmgKKyAKKyBTVEFSRklWRSBKSDcxMTAgTU1DL1NEL1NESU8gRFJJVkVSCisgTToJ V2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CitAQCAtMTk5MjYsMTIg KzE5OTI3LDEzIEBAIEY6CWRyaXZlcnMvcGluY3RybC9zdGFyZml2ZS9waW5jdHJsLXN0YXJmaXZl LWpoNzEqCisgRjoJaW5jbHVkZS9kdC1iaW5kaW5ncy9waW5jdHJsL3BpbmN0cmwtc3RhcmZpdmUt amg3MTAwLmgKKyBGOglpbmNsdWRlL2R0LWJpbmRpbmdzL3BpbmN0cmwvc3RhcmZpdmUsamg3MTEw LXBpbmN0cmwuaAorIAorLVNUQVJGSVZFIEpINzEwMCBSRVNFVCBDT05UUk9MTEVSIERSSVZFUgor K1NUQVJGSVZFIEpINzFYMCBSRVNFVCBDT05UUk9MTEVSIERSSVZFUgorIE06CUVtaWwgUmVubmVy IEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrTToJSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJm aXZldGVjaC5jb20+CisgUzoJTWFpbnRhaW5lZAorIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMDAtcmVzZXQueWFtbAorLUY6CWRyaXZlcnMv cmVzZXQvcmVzZXQtc3RhcmZpdmUtamg3MTAwLmMKKy1GOglpbmNsdWRlL2R0LWJpbmRpbmdzL3Jl c2V0L3N0YXJmaXZlLWpoNzEwMC5oCisrRjoJZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1z dGFyZml2ZS1qaDcxKgorK0Y6CWluY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmU/amg3 MSouaAorIAorIFNUQVJGSVZFIEpINzFYWCBQTVUgQ09OVFJPTExFUiBEUklWRVIKKyBNOglXYWxr ZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KK2RpZmYgLS1naXQgYS9pbmNs dWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaCBiL2luY2x1ZGUvZHQt YmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMDAwLi5mZGQxODUyZTM0Y2MKKy0tLSAvZGV2L251bGwKKysrKyBi L2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCitAQCAtMCww ICsxLDIwMyBAQAorKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVCAq LworKy8qCisrICogQ29weXJpZ2h0IDIwMjIgRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBl c21pbC5kaz4KKysgKi8KKysKKysjaWZuZGVmIF9fRFRfQklORElOR1NfQ0xPQ0tfU1RBUkZJVkVf Skg3MTEwX0NSR19IX18KKysjZGVmaW5lIF9fRFRfQklORElOR1NfQ0xPQ0tfU1RBUkZJVkVfSkg3 MTEwX0NSR19IX18KKysKKysvKiBTWVNDUkcgY2xvY2tzICovCisrI2RlZmluZSBKSDcxMTBfU1lT Q0xLX0NQVV9ST09UCQkJMAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19DUFVfQ09SRQkJCTEKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfQ1BVX0JVUwkJCTIKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf R1BVX1JPT1QJCQkzCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1BFUkhfUk9PVAkJCTQKKysjZGVm aW5lIEpINzExMF9TWVNDTEtfQlVTX1JPT1QJCQk1CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX05P Q1NUR19CVVMJCTYKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQVhJX0NGRzAJCQk3CisrI2RlZmlu ZSBKSDcxMTBfU1lTQ0xLX1NUR19BWElBSEIJCTgKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQUhC MAkJCTkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQUhCMQkJCTEwCisrI2RlZmluZSBKSDcxMTBf U1lTQ0xLX0FQQl9CVVMJCQkxMQorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19BUEIwCQkJMTIKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfUExMMF9ESVYyCQkJMTMKKysjZGVmaW5lIEpINzExMF9TWVND TEtfUExMMV9ESVYyCQkJMTQKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfUExMMl9ESVYyCQkJMTUK KysjZGVmaW5lIEpINzExMF9TWVNDTEtfQVVESU9fUk9PVAkJMTYKKysjZGVmaW5lIEpINzExMF9T WVNDTEtfTUNMS19JTk5FUgkJMTcKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfTUNMSwkJCTE4Cisr I2RlZmluZSBKSDcxMTBfU1lTQ0xLX01DTEtfT1VUCQkJMTkKKysjZGVmaW5lIEpINzExMF9TWVND TEtfSVNQXzJYCQkJMjAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSVNQX0FYSQkJCTIxCisrI2Rl ZmluZSBKSDcxMTBfU1lTQ0xLX0dDTEswCQkJMjIKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfR0NM SzEJCQkyMworKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19HQ0xLMgkJCTI0CisrI2RlZmluZSBKSDcx MTBfU1lTQ0xLX0NPUkUJCQkyNQorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19DT1JFMQkJCTI2Cisr I2RlZmluZSBKSDcxMTBfU1lTQ0xLX0NPUkUyCQkJMjcKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf Q09SRTMJCQkyOAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19DT1JFNAkJCTI5CisrI2RlZmluZSBK SDcxMTBfU1lTQ0xLX0RFQlVHCQkJMzAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfUlRDX1RPR0dM RQkJMzEKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVFJBQ0UwCQkJMzIKKysjZGVmaW5lIEpINzEx MF9TWVNDTEtfVFJBQ0UxCQkJMzMKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVFJBQ0UyCQkJMzQK KysjZGVmaW5lIEpINzExMF9TWVNDTEtfVFJBQ0UzCQkJMzUKKysjZGVmaW5lIEpINzExMF9TWVND TEtfVFJBQ0U0CQkJMzYKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVFJBQ0VfQ09NCQkJMzcKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfTk9DX0JVU19DUFVfQVhJCQkzOAorKyNkZWZpbmUgSkg3MTEw X1NZU0NMS19OT0NfQlVTX0FYSUNGRzBfQVhJCTM5CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX09T Q19ESVYyCQkJNDAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfUExMMV9ESVY0CQkJNDEKKysjZGVm aW5lIEpINzExMF9TWVNDTEtfUExMMV9ESVY4CQkJNDIKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf RERSX0JVUwkJCTQzCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0REUl9BWEkJCQk0NAorKyNkZWZp bmUgSkg3MTEwX1NZU0NMS19HUFVfQ09SRQkJCTQ1CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dQ VV9DT1JFX0NMSwkJNDYKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfR1BVX1NZU19DTEsJCTQ3Cisr I2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dQVV9BUEIJCQk0OAorKyNkZWZpbmUgSkg3MTEwX1NZU0NM S19HUFVfUlRDX1RPR0dMRQkJNDkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfTk9DX0JVU19HUFVf QVhJCQk1MAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19JU1BfVE9QX0NPUkUJCTUxCisrI2RlZmlu ZSBKSDcxMTBfU1lTQ0xLX0lTUF9UT1BfQVhJCQk1MgorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19O T0NfQlVTX0lTUF9BWEkJCTUzCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0hJRkk0X0NPUkUJCTU0 CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0hJRkk0X0FYSQkJCTU1CisrI2RlZmluZSBKSDcxMTBf U1lTQ0xLX0FYSV9DRkcxX01BSU4JCTU2CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0FYSV9DRkcx X0FIQgkJNTcKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVk9VVF9TUkMJCQk1OAorKyNkZWZpbmUg Skg3MTEwX1NZU0NMS19WT1VUX0FYSQkJCTU5CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX05PQ19C VVNfRElTUF9BWEkJCTYwCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1ZPVVRfVE9QX0FIQgkJNjEK KysjZGVmaW5lIEpINzExMF9TWVNDTEtfVk9VVF9UT1BfQVhJCQk2MgorKyNkZWZpbmUgSkg3MTEw X1NZU0NMS19WT1VUX1RPUF9IRE1JVFgwX01DTEsJNjMKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf Vk9VVF9UT1BfTUlQSVBIWV9SRUYJNjQKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSlBFR0NfQVhJ CQkJNjUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQ09EQUoxMl9BWEkJCTY2CisrI2RlZmluZSBK SDcxMTBfU1lTQ0xLX0NPREFKMTJfQ09SRQkJNjcKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQ09E QUoxMl9BUEIJCTY4CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1ZERUNfQVhJCQkJNjkKKysjZGVm aW5lIEpINzExMF9TWVNDTEtfV0FWRTUxMV9BWEkJCTcwCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xL X1dBVkU1MTFfQlBVCQk3MQorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19XQVZFNTExX1ZDRQkJNzIK KysjZGVmaW5lIEpINzExMF9TWVNDTEtfV0FWRTUxMV9BUEIJCTczCisrI2RlZmluZSBKSDcxMTBf U1lTQ0xLX1ZERUNfSlBHCQkJNzQKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVkRFQ19NQUlOCQkJ NzUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfTk9DX0JVU19WREVDX0FYSQkJNzYKKysjZGVmaW5l IEpINzExMF9TWVNDTEtfVkVOQ19BWEkJCQk3NworKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19XQVZF NDIwTF9BWEkJCTc4CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1dBVkU0MjBMX0JQVQkJNzkKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfV0FWRTQyMExfVkNFCQk4MAorKyNkZWZpbmUgSkg3MTEwX1NZ U0NMS19XQVZFNDIwTF9BUEIJCTgxCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX05PQ19CVVNfVkVO Q19BWEkJCTgyCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0FYSV9DRkcwX01BSU5fRElWCQk4Mwor KyNkZWZpbmUgSkg3MTEwX1NZU0NMS19BWElfQ0ZHMF9NQUlOCQk4NAorKyNkZWZpbmUgSkg3MTEw X1NZU0NMS19BWElfQ0ZHMF9ISUZJNAkJODUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQVhJTUVN Ml9BWEkJCTg2CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1FTUElfQUhCCQkJODcKKysjZGVmaW5l IEpINzExMF9TWVNDTEtfUVNQSV9BUEIJCQk4OAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19RU1BJ X1JFRl9TUkMJCTg5CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1FTUElfUkVGCQkJOTAKKysjZGVm aW5lIEpINzExMF9TWVNDTEtfU0RJTzBfQUhCCQkJOTEKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf U0RJTzFfQUhCCQkJOTIKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfU0RJTzBfU0RDQVJECQk5Mwor KyNkZWZpbmUgSkg3MTEwX1NZU0NMS19TRElPMV9TRENBUkQJCTk0CisrI2RlZmluZSBKSDcxMTBf U1lTQ0xLX1VTQl8xMjVNCQkJOTUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfTk9DX0JVU19TVEdf QVhJCQk5NgorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19HTUFDMV9BSEIJCQk5NworKyNkZWZpbmUg Skg3MTEwX1NZU0NMS19HTUFDMV9BWEkJCQk5OAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19HTUFD X1NSQwkJCTk5CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dNQUMxX0dUWENMSwkJMTAwCisrI2Rl ZmluZSBKSDcxMTBfU1lTQ0xLX0dNQUMxX1JNSUlfUlRYCQkxMDEKKysjZGVmaW5lIEpINzExMF9T WVNDTEtfR01BQzFfUFRQCQkJMTAyCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dNQUMxX1JYCQkJ MTAzCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dNQUMxX1JYX0lOVgkJMTA0CisrI2RlZmluZSBK SDcxMTBfU1lTQ0xLX0dNQUMxX1RYCQkJMTA1CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dNQUMx X1RYX0lOVgkJMTA2CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0dNQUMxX0dUWEMJCTEwNworKyNk ZWZpbmUgSkg3MTEwX1NZU0NMS19HTUFDMF9HVFhDTEsJCTEwOAorKyNkZWZpbmUgSkg3MTEwX1NZ U0NMS19HTUFDMF9QVFAJCQkxMDkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfR01BQ19QSFkJCQkx MTAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfR01BQzBfR1RYQwkJMTExCisrI2RlZmluZSBKSDcx MTBfU1lTQ0xLX0lPTVVYX0FQQgkJCTExMgorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19NQUlMQk9Y X0FQQgkJMTEzCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0lOVF9DVFJMX0FQQgkJMTE0CisrI2Rl ZmluZSBKSDcxMTBfU1lTQ0xLX0NBTjBfQVBCCQkJMTE1CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xL X0NBTjBfVElNRVIJCTExNgorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19DQU4wX0NBTgkJCTExNwor KyNkZWZpbmUgSkg3MTEwX1NZU0NMS19DQU4xX0FQQgkJCTExOAorKyNkZWZpbmUgSkg3MTEwX1NZ U0NMS19DQU4xX1RJTUVSCQkxMTkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfQ0FOMV9DQU4JCQkx MjAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfUFdNX0FQQgkJCTEyMQorKyNkZWZpbmUgSkg3MTEw X1NZU0NMS19XRFRfQVBCCQkJMTIyCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1dEVF9DT1JFCQkJ MTIzCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1RJTUVSX0FQQgkJCTEyNAorKyNkZWZpbmUgSkg3 MTEwX1NZU0NMS19USU1FUjAJCQkxMjUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVElNRVIxCQkJ MTI2CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1RJTUVSMgkJCTEyNworKyNkZWZpbmUgSkg3MTEw X1NZU0NMS19USU1FUjMJCQkxMjgKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVEVNUF9BUEIJCQkx MjkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVEVNUF9DT1JFCQkJMTMwCisrI2RlZmluZSBKSDcx MTBfU1lTQ0xLX1NQSTBfQVBCCQkJMTMxCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1NQSTFfQVBC CQkJMTMyCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1NQSTJfQVBCCQkJMTMzCisrI2RlZmluZSBK SDcxMTBfU1lTQ0xLX1NQSTNfQVBCCQkJMTM0CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1NQSTRf QVBCCQkJMTM1CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1NQSTVfQVBCCQkJMTM2CisrI2RlZmlu ZSBKSDcxMTBfU1lTQ0xLX1NQSTZfQVBCCQkJMTM3CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0ky QzBfQVBCCQkJMTM4CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyQzFfQVBCCQkJMTM5CisrI2Rl ZmluZSBKSDcxMTBfU1lTQ0xLX0kyQzJfQVBCCQkJMTQwCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xL X0kyQzNfQVBCCQkJMTQxCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyQzRfQVBCCQkJMTQyCisr I2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyQzVfQVBCCQkJMTQzCisrI2RlZmluZSBKSDcxMTBfU1lT Q0xLX0kyQzZfQVBCCQkJMTQ0CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1VBUlQwX0FQQgkJCTE0 NQorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19VQVJUMF9DT1JFCQkxNDYKKysjZGVmaW5lIEpINzEx MF9TWVNDTEtfVUFSVDFfQVBCCQkJMTQ3CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1VBUlQxX0NP UkUJCTE0OAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19VQVJUMl9BUEIJCQkxNDkKKysjZGVmaW5l IEpINzExMF9TWVNDTEtfVUFSVDJfQ09SRQkJMTUwCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1VB UlQzX0FQQgkJCTE1MQorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19VQVJUM19DT1JFCQkxNTIKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfVUFSVDRfQVBCCQkJMTUzCisrI2RlZmluZSBKSDcxMTBfU1lT Q0xLX1VBUlQ0X0NPUkUJCTE1NAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19VQVJUNV9BUEIJCQkx NTUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVUFSVDVfQ09SRQkJMTU2CisrI2RlZmluZSBKSDcx MTBfU1lTQ0xLX1BXTURBQ19BUEIJCTE1NworKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19QV01EQUNf Q09SRQkJMTU4CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1NQRElGX0FQQgkJCTE1OQorKyNkZWZp bmUgSkg3MTEwX1NZU0NMS19TUERJRl9DT1JFCQkxNjAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf STJTVFgwX0FQQgkJMTYxCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyU1RYMF9CQ0xLX01TVAkJ MTYyCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyU1RYMF9CQ0xLX01TVF9JTlYJMTYzCisrI2Rl ZmluZSBKSDcxMTBfU1lTQ0xLX0kyU1RYMF9MUkNLX01TVAkJMTY0CisrI2RlZmluZSBKSDcxMTBf U1lTQ0xLX0kyU1RYMF9CQ0xLCQkxNjUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTVFgwX0JD TEtfSU5WCQkxNjYKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTVFgwX0xSQ0sJCTE2NworKyNk ZWZpbmUgSkg3MTEwX1NZU0NMS19JMlNUWDFfQVBCCQkxNjgKKysjZGVmaW5lIEpINzExMF9TWVND TEtfSTJTVFgxX0JDTEtfTVNUCQkxNjkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTVFgxX0JD TEtfTVNUX0lOVgkxNzAKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTVFgxX0xSQ0tfTVNUCQkx NzEKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTVFgxX0JDTEsJCTE3MgorKyNkZWZpbmUgSkg3 MTEwX1NZU0NMS19JMlNUWDFfQkNMS19JTlYJCTE3MworKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19J MlNUWDFfTFJDSwkJMTc0CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyU1JYX0FQQgkJCTE3NQor KyNkZWZpbmUgSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xLX01TVAkJMTc2CisrI2RlZmluZSBKSDcx MTBfU1lTQ0xLX0kyU1JYX0JDTEtfTVNUX0lOVgkxNzcKKysjZGVmaW5lIEpINzExMF9TWVNDTEtf STJTUlhfTFJDS19NU1QJCTE3OAorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xLCQkx NzkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTUlhfQkNMS19JTlYJCTE4MAorKyNkZWZpbmUg Skg3MTEwX1NZU0NMS19JMlNSWF9MUkNLCQkxODEKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfUERN X0RNSUMJCQkxODIKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfUERNX0FQQgkJCTE4MworKyNkZWZp bmUgSkg3MTEwX1NZU0NMS19URE1fQUhCCQkJMTg0CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX1RE TV9BUEIJCQkxODUKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfVERNX0lOVEVSTkFMCQkxODYKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfVERNX1RETQkJCTE4NworKyNkZWZpbmUgSkg3MTEwX1NZU0NM S19URE1fVERNX0lOVgkJMTg4CisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0pUQUdfQ0VSVElGSUNB VElPTl9UUk5HCTE4OQorKworKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19FTkQJCQkxOTAKKysKKysj ZW5kaWYgLyogX19EVF9CSU5ESU5HU19DTE9DS19TVEFSRklWRV9KSDcxMTBfQ1JHX0hfXyAqLwor ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNy Zy5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmgKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmI4ODIxNmE0ZmU0MAorLS0t IC9kZXYvbnVsbAorKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcx MTAtY3JnLmgKK0BAIC0wLDAgKzEsMTQyIEBACisrLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAgT1IgTUlUICovCisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgRW1pbCBSZW5u ZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKysgKi8KKysKKysjaWZuZGVmIF9fRFRfQklO RElOR1NfUkVTRVRfU1RBUkZJVkVfSkg3MTEwX0NSR19IX18KKysjZGVmaW5lIF9fRFRfQklORElO R1NfUkVTRVRfU1RBUkZJVkVfSkg3MTEwX0NSR19IX18KKysKKysvKiBTWVNDUkcgcmVzZXRzICov CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0pUQUdfQVBCCQkJMAorKyNkZWZpbmUgSkg3MTEwX1NZ U1JTVF9TWVNDT05fQVBCCQkxCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0lPTVVYX0FQQgkJCTIK KysjZGVmaW5lIEpINzExMF9TWVNSU1RfQlVTCQkJMworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9E RUJVRwkJCTQKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfQ09SRTAJCQk1CisrI2RlZmluZSBKSDcx MTBfU1lTUlNUX0NPUkUxCQkJNgorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9DT1JFMgkJCTcKKysj ZGVmaW5lIEpINzExMF9TWVNSU1RfQ09SRTMJCQk4CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0NP UkU0CQkJOQorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9DT1JFMF9TVAkJCTEwCisrI2RlZmluZSBK SDcxMTBfU1lTUlNUX0NPUkUxX1NUCQkJMTEKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfQ09SRTJf U1QJCQkxMgorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9DT1JFM19TVAkJCTEzCisrI2RlZmluZSBK SDcxMTBfU1lTUlNUX0NPUkU0X1NUCQkJMTQKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfVFJBQ0Uw CQkJMTUKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfVFJBQ0UxCQkJMTYKKysjZGVmaW5lIEpINzEx MF9TWVNSU1RfVFJBQ0UyCQkJMTcKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfVFJBQ0UzCQkJMTgK KysjZGVmaW5lIEpINzExMF9TWVNSU1RfVFJBQ0U0CQkJMTkKKysjZGVmaW5lIEpINzExMF9TWVNS U1RfVFJBQ0VfQ09NCQkJMjAKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfR1BVX0FQQgkJCTIxCisr I2RlZmluZSBKSDcxMTBfU1lTUlNUX0dQVV9ET01BCQkJMjIKKysjZGVmaW5lIEpINzExMF9TWVNS U1RfTk9DX0JVU19BUEIJCTIzCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX05PQ19CVVNfQVhJQ0ZH MF9BWEkJMjQKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfTk9DX0JVU19DUFVfQVhJCQkyNQorKyNk ZWZpbmUgSkg3MTEwX1NZU1JTVF9OT0NfQlVTX0RJU1BfQVhJCQkyNgorKyNkZWZpbmUgSkg3MTEw X1NZU1JTVF9OT0NfQlVTX0dQVV9BWEkJCTI3CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX05PQ19C VVNfSVNQX0FYSQkJMjgKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfTk9DX0JVU19ERFJDCQkyOQor KyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9OT0NfQlVTX1NUR19BWEkJCTMwCisrI2RlZmluZSBKSDcx MTBfU1lTUlNUX05PQ19CVVNfVkRFQ19BWEkJCTMxCisrCisrI2RlZmluZSBKSDcxMTBfU1lTUlNU X05PQ19CVVNfVkVOQ19BWEkJCTMyCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0FYSV9DRkcxX0FI QgkJMzMKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfQVhJX0NGRzFfTUFJTgkJMzQKKysjZGVmaW5l IEpINzExMF9TWVNSU1RfQVhJX0NGRzBfTUFJTgkJMzUKKysjZGVmaW5lIEpINzExMF9TWVNSU1Rf QVhJX0NGRzBfTUFJTl9ESVYJCTM2CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0FYSV9DRkcwX0hJ Rkk0CQkzNworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9ERFJfQVhJCQkJMzgKKysjZGVmaW5lIEpI NzExMF9TWVNSU1RfRERSX09TQwkJCTM5CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0REUl9BUEIJ CQk0MAorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9JU1BfVE9QCQkJNDEKKysjZGVmaW5lIEpINzEx MF9TWVNSU1RfSVNQX1RPUF9BWEkJCTQyCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1ZPVVRfVE9Q X1NSQwkJNDMKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfQ09EQUoxMl9BWEkJCTQ0CisrI2RlZmlu ZSBKSDcxMTBfU1lTUlNUX0NPREFKMTJfQ09SRQkJNDUKKysjZGVmaW5lIEpINzExMF9TWVNSU1Rf Q09EQUoxMl9BUEIJCTQ2CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1dBVkU1MTFfQVhJCQk0Nwor KyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9XQVZFNTExX0JQVQkJNDgKKysjZGVmaW5lIEpINzExMF9T WVNSU1RfV0FWRTUxMV9WQ0UJCTQ5CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1dBVkU1MTFfQVBC CQk1MAorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9WREVDX0pQRwkJCTUxCisrI2RlZmluZSBKSDcx MTBfU1lTUlNUX1ZERUNfTUFJTgkJCTUyCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0FYSU1FTTBf QVhJCQk1MworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9XQVZFNDIwTF9BWEkJCTU0CisrI2RlZmlu ZSBKSDcxMTBfU1lTUlNUX1dBVkU0MjBMX0JQVQkJNTUKKysjZGVmaW5lIEpINzExMF9TWVNSU1Rf V0FWRTQyMExfVkNFCQk1NgorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9XQVZFNDIwTF9BUEIJCTU3 CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0FYSU1FTTFfQVhJCQk1OAorKyNkZWZpbmUgSkg3MTEw X1NZU1JTVF9BWElNRU0yX0FYSQkJNTkKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfSU5UTUVNCQkJ NjAKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfUVNQSV9BSEIJCQk2MQorKyNkZWZpbmUgSkg3MTEw X1NZU1JTVF9RU1BJX0FQQgkJCTYyCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1FTUElfUkVGCQkJ NjMKKysKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfU0RJTzBfQUhCCQkJNjQKKysjZGVmaW5lIEpI NzExMF9TWVNSU1RfU0RJTzFfQUhCCQkJNjUKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfR01BQzFf QVhJCQkJNjYKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfR01BQzFfQUhCCQkJNjcKKysjZGVmaW5l IEpINzExMF9TWVNSU1RfTUFJTEJPWF9BUEIJCTY4CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1NQ STBfQVBCCQkJNjkKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfU1BJMV9BUEIJCQk3MAorKyNkZWZp bmUgSkg3MTEwX1NZU1JTVF9TUEkyX0FQQgkJCTcxCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1NQ STNfQVBCCQkJNzIKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfU1BJNF9BUEIJCQk3MworKyNkZWZp bmUgSkg3MTEwX1NZU1JTVF9TUEk1X0FQQgkJCTc0CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1NQ STZfQVBCCQkJNzUKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfSTJDMF9BUEIJCQk3NgorKyNkZWZp bmUgSkg3MTEwX1NZU1JTVF9JMkMxX0FQQgkJCTc3CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0ky QzJfQVBCCQkJNzgKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfSTJDM19BUEIJCQk3OQorKyNkZWZp bmUgSkg3MTEwX1NZU1JTVF9JMkM0X0FQQgkJCTgwCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0ky QzVfQVBCCQkJODEKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfSTJDNl9BUEIJCQk4MgorKyNkZWZp bmUgSkg3MTEwX1NZU1JTVF9VQVJUMF9BUEIJCQk4MworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9V QVJUMF9DT1JFCQk4NAorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUMV9BUEIJCQk4NQorKyNk ZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUMV9DT1JFCQk4NgorKyNkZWZpbmUgSkg3MTEwX1NZU1JT VF9VQVJUMl9BUEIJCQk4NworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUMl9DT1JFCQk4OAor KyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUM19BUEIJCQk4OQorKyNkZWZpbmUgSkg3MTEwX1NZ U1JTVF9VQVJUM19DT1JFCQk5MAorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUNF9BUEIJCQk5 MQorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUNF9DT1JFCQk5MgorKyNkZWZpbmUgSkg3MTEw X1NZU1JTVF9VQVJUNV9BUEIJCQk5MworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9VQVJUNV9DT1JF CQk5NAorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9TUERJRl9BUEIJCQk5NQorKworKyNkZWZpbmUg Skg3MTEwX1NZU1JTVF9QV01EQUNfQVBCCQk5NgorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9QRE1f RE1JQwkJCTk3CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1BETV9BUEIJCQk5OAorKyNkZWZpbmUg Skg3MTEwX1NZU1JTVF9JMlNSWF9BUEIJCQk5OQorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9JMlNS WF9CQ0xLCQkxMDAKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfSTJTVFgwX0FQQgkJMTAxCisrI2Rl ZmluZSBKSDcxMTBfU1lTUlNUX0kyU1RYMF9CQ0xLCQkxMDIKKysjZGVmaW5lIEpINzExMF9TWVNS U1RfSTJTVFgxX0FQQgkJMTAzCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0kyU1RYMV9CQ0xLCQkx MDQKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfVERNX0FIQgkJCTEwNQorKyNkZWZpbmUgSkg3MTEw X1NZU1JTVF9URE1fQ09SRQkJCTEwNgorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9URE1fQVBCCQkJ MTA3CisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX1BXTV9BUEIJCQkxMDgKKysjZGVmaW5lIEpINzEx MF9TWVNSU1RfV0RUX0FQQgkJCTEwOQorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9XRFRfQ09SRQkJ CTExMAorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9DQU4wX0FQQgkJCTExMQorKyNkZWZpbmUgSkg3 MTEwX1NZU1JTVF9DQU4wX0NPUkUJCQkxMTIKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfQ0FOMF9U SU1FUgkJMTEzCisrI2RlZmluZSBKSDcxMTBfU1lTUlNUX0NBTjFfQVBCCQkJMTE0CisrI2RlZmlu ZSBKSDcxMTBfU1lTUlNUX0NBTjFfQ09SRQkJCTExNQorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9D QU4xX1RJTUVSCQkxMTYKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfVElNRVJfQVBCCQkJMTE3Cisr I2RlZmluZSBKSDcxMTBfU1lTUlNUX1RJTUVSMAkJCTExOAorKyNkZWZpbmUgSkg3MTEwX1NZU1JT VF9USU1FUjEJCQkxMTkKKysjZGVmaW5lIEpINzExMF9TWVNSU1RfVElNRVIyCQkJMTIwCisrI2Rl ZmluZSBKSDcxMTBfU1lTUlNUX1RJTUVSMwkJCTEyMQorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9J TlRfQ1RSTF9BUEIJCTEyMgorKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9URU1QX0FQQgkJCTEyMwor KyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9URU1QX0NPUkUJCQkxMjQKKysjZGVmaW5lIEpINzExMF9T WVNSU1RfSlRBR19DRVJUSUZJQ0FUSU9OCTEyNQorKworKyNkZWZpbmUgSkg3MTEwX1NZU1JTVF9F TkQJCQkxMjYKKysKKysjZW5kaWYgLyogX19EVF9CSU5ESU5HU19SRVNFVF9TVEFSRklWRV9KSDcx MTBfQ1JHX0hfXyAqLworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYu My9wYXRjaGVzLzAwMDItZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1hbHdh eXMtb24tY2xvYy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDAyLWR0LWJpbmRp bmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtYWx3YXlzLW9uLWNsb2MucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMzBhMTIyNzFkNGEyMQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDAyLWR0LWJpbmRpbmdzLWNs b2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtYWx3YXlzLW9uLWNsb2MucGF0Y2gKQEAgLTAsMCArMSwx ODQgQEAKK0Zyb20gYTA5MTBlZmNjZGJjODM3NDQyYmEyNTRlZDNlNmZmYWU5YTMyMTIxNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxA ZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MTQgKzA4MDAKK1N1YmplY3Q6 IFtQQVRDSCAwMi84NF0gZHQtYmluZGluZ3M6IGNsb2NrOiBBZGQgU3RhckZpdmUgSkg3MTEwIGFs d2F5cy1vbiBjbG9jaworIGFuZCByZXNldCBnZW5lcmF0b3IKKworQWRkIGJpbmRpbmdzIGZvciB0 aGUgYWx3YXlzLW9uIGNsb2NrIGFuZCByZXNldCBnZW5lcmF0b3IgKEFPTkNSRykgb24gdGhlCitK SDcxMTAgUklTQy1WIFNvQyBieSBTdGFyRml2ZSBMdGQuCisKK1Jldmlld2VkLWJ5OiBDb25vciBE b29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgorUmV2aWV3ZWQtYnk6IFJvYiBIZXJy aW5nIDxyb2JoQGtlcm5lbC5vcmc+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGlu ZyA8a2VybmVsQGVzbWlsLmRrPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0 YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vY2xvY2svc3RhcmZpdmUsamg3MTEwLWFvbmNyZy55 YW1sICAgICAgICAgfCAxMDcgKysrKysrKysrKysrKysrKysrCisgLi4uL2R0LWJpbmRpbmdzL2Ns b2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaCAgIHwgIDE4ICsrKworIC4uLi9kdC1iaW5kaW5ncy9y ZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmggICB8ICAxMiArKworIDMgZmlsZXMgY2hhbmdlZCwg MTM3IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1hb25jcmcueWFtbAorCitkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZl LGpoNzExMC1hb25jcmcueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9j bG9jay9zdGFyZml2ZSxqaDcxMTAtYW9uY3JnLnlhbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAwMDAuLjkyMzY4MGE0NGFlZgorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1hb25j cmcueWFtbAorQEAgLTAsMCArMSwxMDcgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRw Oi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtYW9uY3JnLnlh bWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlh bWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBBbHdheXMtT24gQ2xvY2sgYW5kIFJlc2V0 IEdlbmVyYXRvcgorKworK21haW50YWluZXJzOgorKyAgLSBFbWlsIFJlbm5lciBCZXJ0aGluZyA8 a2VybmVsQGVzbWlsLmRrPgorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBj b25zdDogc3RhcmZpdmUsamg3MTEwLWFvbmNyZworKworKyAgcmVnOgorKyAgICBtYXhJdGVtczog MQorKworKyAgY2xvY2tzOgorKyAgICBvbmVPZjoKKysgICAgICAtIGl0ZW1zOgorKyAgICAgICAg ICAtIGRlc2NyaXB0aW9uOiBNYWluIE9zY2lsbGF0b3IgKDI0IE1IeikKKysgICAgICAgICAgLSBk ZXNjcmlwdGlvbjogR01BQzAgUk1JSSByZWZlcmVuY2Ugb3IgR01BQzAgUkdNSUkgUlgKKysgICAg ICAgICAgLSBkZXNjcmlwdGlvbjogU1RHIEFYSS9BSEIKKysgICAgICAgICAgLSBkZXNjcmlwdGlv bjogQVBCIEJ1cworKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBHTUFDMCBHVFgKKysKKysgICAg ICAtIGl0ZW1zOgorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNYWluIE9zY2lsbGF0b3IgKDI0 IE1IeikKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogR01BQzAgUk1JSSByZWZlcmVuY2Ugb3Ig R01BQzAgUkdNSUkgUlgKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogU1RHIEFYSS9BSEIgb3Ig R01BQzAgUkdNSUkgUlgKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogQVBCIEJ1cyBvciBTVEcg QVhJL0FIQgorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBHTUFDMCBHVFggb3IgQVBCIEJ1cwor KyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSVEMgT3NjaWxsYXRvciAoMzIuNzY4IGtIeikgb3Ig R01BQzAgR1RYCisrCisrICAgICAgLSBpdGVtczoKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjog TWFpbiBPc2NpbGxhdG9yICgyNCBNSHopCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IEdNQUMw IFJNSUkgcmVmZXJlbmNlCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IEdNQUMwIFJHTUlJIFJY CisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IFNURyBBWEkvQUhCCisrICAgICAgICAgIC0gZGVz Y3JpcHRpb246IEFQQiBCdXMKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogR01BQzAgR1RYCisr ICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJUQyBPc2NpbGxhdG9yICgzMi43Njgga0h6KQorKwor KyAgY2xvY2stbmFtZXM6CisrICAgIG9uZU9mOgorKyAgICAgIC0gbWluSXRlbXM6IDUKKysgICAg ICAgIGl0ZW1zOgorKyAgICAgICAgICAtIGNvbnN0OiBvc2MKKysgICAgICAgICAgLSBlbnVtOgor KyAgICAgICAgICAgICAgLSBnbWFjMF9ybWlpX3JlZmluCisrICAgICAgICAgICAgICAtIGdtYWMw X3JnbWlpX3J4aW4KKysgICAgICAgICAgLSBjb25zdDogc3RnX2F4aWFoYgorKyAgICAgICAgICAt IGNvbnN0OiBhcGJfYnVzCisrICAgICAgICAgIC0gY29uc3Q6IGdtYWMwX2d0eGNsaworKyAgICAg ICAgICAtIGNvbnN0OiBydGNfb3NjCisrCisrICAgICAgLSBtaW5JdGVtczogNgorKyAgICAgICAg aXRlbXM6CisrICAgICAgICAgIC0gY29uc3Q6IG9zYworKyAgICAgICAgICAtIGNvbnN0OiBnbWFj MF9ybWlpX3JlZmluCisrICAgICAgICAgIC0gY29uc3Q6IGdtYWMwX3JnbWlpX3J4aW4KKysgICAg ICAgICAgLSBjb25zdDogc3RnX2F4aWFoYgorKyAgICAgICAgICAtIGNvbnN0OiBhcGJfYnVzCisr ICAgICAgICAgIC0gY29uc3Q6IGdtYWMwX2d0eGNsaworKyAgICAgICAgICAtIGNvbnN0OiBydGNf b3NjCisrCisrICAnI2Nsb2NrLWNlbGxzJzoKKysgICAgY29uc3Q6IDEKKysgICAgZGVzY3JpcHRp b246CisrICAgICAgU2VlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+ IGZvciB2YWxpZCBpbmRpY2VzLgorKworKyAgJyNyZXNldC1jZWxscyc6CisrICAgIGNvbnN0OiAx CisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFNlZSA8ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZp dmUsamg3MTEwLWNyZy5oPiBmb3IgdmFsaWQgaW5kaWNlcy4KKysKKytyZXF1aXJlZDoKKysgIC0g Y29tcGF0aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAt ICcjY2xvY2stY2VsbHMnCisrICAtICcjcmVzZXQtY2VsbHMnCisrCisrYWRkaXRpb25hbFByb3Bl cnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgI2luY2x1ZGUgPGR0LWJp bmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaD4KKysKKysgICAgY2xvY2stY29udHJv bGxlckAxNzAwMDAwMCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1h b25jcmciOworKyAgICAgICAgcmVnID0gPDB4MTcwMDAwMDAgMHgxMDAwMD47CisrICAgICAgICBj bG9ja3MgPSA8Jm9zYz4sIDwmZ21hYzBfcm1paV9yZWZpbj4sCisrICAgICAgICAgICAgICAgICA8 JmdtYWMwX3JnbWlpX3J4aW4+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZ U0NMS19TVEdfQVhJQUhCPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVND TEtfQVBCX0JVUz4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dN QUMwX0dUWENMSz4sCisrICAgICAgICAgICAgICAgICA8JnJ0Y19vc2M+OworKyAgICAgICAgY2xv Y2stbmFtZXMgPSAib3NjIiwgImdtYWMwX3JtaWlfcmVmaW4iLAorKyAgICAgICAgICAgICAgICAg ICAgICAiZ21hYzBfcmdtaWlfcnhpbiIsICJzdGdfYXhpYWhiIiwKKysgICAgICAgICAgICAgICAg ICAgICAgImFwYl9idXMiLCAiZ21hYzBfZ3R4Y2xrIiwKKysgICAgICAgICAgICAgICAgICAgICAg InJ0Y19vc2MiOworKyAgICAgICAgI2Nsb2NrLWNlbGxzID0gPDE+OworKyAgICAgICAgI3Jlc2V0 LWNlbGxzID0gPDE+OworKyAgICB9OworZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3Mv Y2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9z dGFyZml2ZSxqaDcxMTAtY3JnLmgKK2luZGV4IGZkZDE4NTJlMzRjYy4uMDYyNTdiZmQ5YWMxIDEw MDY0NAorLS0tIGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3Jn LmgKKysrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5o CitAQCAtMjAwLDQgKzIwMCwyMiBAQAorIAorICNkZWZpbmUgSkg3MTEwX1NZU0NMS19FTkQJCQkx OTAKKyAKKysvKiBBT05DUkcgY2xvY2tzICovCisrI2RlZmluZSBKSDcxMTBfQU9OQ0xLX09TQ19E SVY0CQkJMAorKyNkZWZpbmUgSkg3MTEwX0FPTkNMS19BUEJfRlVOQwkJCTEKKysjZGVmaW5lIEpI NzExMF9BT05DTEtfR01BQzBfQUhCCQkJMgorKyNkZWZpbmUgSkg3MTEwX0FPTkNMS19HTUFDMF9B WEkJCQkzCisrI2RlZmluZSBKSDcxMTBfQU9OQ0xLX0dNQUMwX1JNSUlfUlRYCQk0CisrI2RlZmlu ZSBKSDcxMTBfQU9OQ0xLX0dNQUMwX1RYCQkJNQorKyNkZWZpbmUgSkg3MTEwX0FPTkNMS19HTUFD MF9UWF9JTlYJCTYKKysjZGVmaW5lIEpINzExMF9BT05DTEtfR01BQzBfUlgJCQk3CisrI2RlZmlu ZSBKSDcxMTBfQU9OQ0xLX0dNQUMwX1JYX0lOVgkJOAorKyNkZWZpbmUgSkg3MTEwX0FPTkNMS19P VFBDX0FQQgkJCTkKKysjZGVmaW5lIEpINzExMF9BT05DTEtfUlRDX0FQQgkJCTEwCisrI2RlZmlu ZSBKSDcxMTBfQU9OQ0xLX1JUQ19JTlRFUk5BTAkJMTEKKysjZGVmaW5lIEpINzExMF9BT05DTEtf UlRDXzMySwkJCTEyCisrI2RlZmluZSBKSDcxMTBfQU9OQ0xLX1JUQ19DQUwJCQkxMworKworKyNk ZWZpbmUgSkg3MTEwX0FPTkNMS19FTkQJCQkxNAorKworICNlbmRpZiAvKiBfX0RUX0JJTkRJTkdT X0NMT0NLX1NUQVJGSVZFX0pINzExMF9DUkdfSF9fICovCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k dC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmggYi9pbmNsdWRlL2R0LWJpbmRp bmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaAoraW5kZXggYjg4MjE2YTRmZTQwLi5kNzhl Mzg2OTBjZWIgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZl LGpoNzExMC1jcmcuaAorKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxq aDcxMTAtY3JnLmgKK0BAIC0xMzksNCArMTM5LDE2IEBACisgCisgI2RlZmluZSBKSDcxMTBfU1lT UlNUX0VORAkJCTEyNgorIAorKy8qIEFPTkNSRyByZXNldHMgKi8KKysjZGVmaW5lIEpINzExMF9B T05SU1RfR01BQzBfQVhJCQkJMAorKyNkZWZpbmUgSkg3MTEwX0FPTlJTVF9HTUFDMF9BSEIJCQkx CisrI2RlZmluZSBKSDcxMTBfQU9OUlNUX0lPTVVYCQkJMgorKyNkZWZpbmUgSkg3MTEwX0FPTlJT VF9QTVVfQVBCCQkJMworKyNkZWZpbmUgSkg3MTEwX0FPTlJTVF9QTVVfV0tVUAkJCTQKKysjZGVm aW5lIEpINzExMF9BT05SU1RfUlRDX0FQQgkJCTUKKysjZGVmaW5lIEpINzExMF9BT05SU1RfUlRD X0NBTAkJCTYKKysjZGVmaW5lIEpINzExMF9BT05SU1RfUlRDXzMySwkJCTcKKysKKysjZGVmaW5l IEpINzExMF9BT05SU1RfRU5ECQkJOAorKworICNlbmRpZiAvKiBfX0RUX0JJTkRJTkdTX1JFU0VU X1NUQVJGSVZFX0pINzExMF9DUkdfSF9fICovCistLSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwMy1jbGstc3RhcmZpdmUtUmVwbGFjZS1TT0NfU1RB UkZJVkUtd2l0aC1BUkNIX1NUQVJGSVZFLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwMDMtY2xrLXN0YXJmaXZlLVJlcGxhY2UtU09DX1NUQVJGSVZFLXdpdGgtQVJDSF9TVEFSRklW RS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi43Y2JkYmJm ZjI0YTM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMDMt Y2xrLXN0YXJmaXZlLVJlcGxhY2UtU09DX1NUQVJGSVZFLXdpdGgtQVJDSF9TVEFSRklWRS5wYXRj aApAQCAtMCwwICsxLDU3IEBACitGcm9tIGYzY2UzMjE0ZmM3ZDkxMWFlZDlmOTE3MGNhZDk5YTkx OTE4YjU3MjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIYWwgRmVuZyA8aGFsLmZl bmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFNhdCwgMSBBcHIgMjAyMyAxOToxOToxNSArMDgw MAorU3ViamVjdDogW1BBVENIIDAzLzg0XSBjbGs6IHN0YXJmaXZlOiBSZXBsYWNlIFNPQ19TVEFS RklWRSB3aXRoIEFSQ0hfU1RBUkZJVkUKKworVXNpbmcgQVJDSF9GT08gc3ltYm9sIGlzIHByZWZl cnJlZCB0aGFuIFNPQ19GT08uCitTZXQgb2JqLXkgZm9yIHN0YXJmaXZlLyBpbiBNYWtlZmlsZSwg c28gdGhlIFN0YXJGaXZlIGRyaXZlcnMKK2NhbiBiZSBjb21waWxlZCB3aXRoIENPTVBJTEVfVEVT VD15IGJ1dCBBUkNIX1NUQVJGSVZFPW4uCisKK1Jldmlld2VkLWJ5OiBDb25vciBEb29sZXkgPGNv bm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5m ZW5nQHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1ieTogSGVpa28gU3R1ZWJuZXIgPGhlaWtv LnN0dWVibmVyQHZydWxsLmV1PgorLS0tCisgZHJpdmVycy9jbGsvTWFrZWZpbGUgICAgICAgICB8 IDIgKy0KKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnIHwgNiArKystLS0KKyAyIGZpbGVz IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL01ha2VmaWxlIGIvZHJpdmVycy9jbGsvTWFrZWZpbGUKK2luZGV4IGUzY2Ew ZDA1OGEyNS4uM2JlZDg4ZDY3YTNhIDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbGsvTWFrZWZpbGUK KysrKyBiL2RyaXZlcnMvY2xrL01ha2VmaWxlCitAQCAtMTE3LDcgKzExNyw3IEBAIG9iai0kKENP TkZJR19QTEFUX1NQRUFSKQkJKz0gc3BlYXIvCisgb2JqLXkJCQkJCSs9IHNwcmQvCisgb2JqLSQo Q09ORklHX0FSQ0hfU1RJKQkJCSs9IHN0LworIG9iai0kKENPTkZJR19BUkNIX1NUTTMyKQkJKz0g c3RtMzIvCistb2JqLSQoQ09ORklHX1NPQ19TVEFSRklWRSkJCSs9IHN0YXJmaXZlLworK29iai15 CQkJCQkrPSBzdGFyZml2ZS8KKyBvYmotJChDT05GSUdfQVJDSF9TVU5YSSkJCSs9IHN1bnhpLwor IG9iai15CQkJCQkrPSBzdW54aS1uZy8KKyBvYmotJChDT05GSUdfQVJDSF9URUdSQSkJCSs9IHRl Z3JhLworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJz L2Nsay9zdGFyZml2ZS9LY29uZmlnCitpbmRleCAwMDNiZDJkNTZjZTcuLmVmMzUxN2Y0YTI3NiAx MDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcKKysrKyBiL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL0tjb25maWcKK0BAIC0yLDggKzIsOCBAQAorIAorIGNvbmZpZyBDTEtfU1RB UkZJVkVfSkg3MTAwCisgCWJvb2wgIlN0YXJGaXZlIEpINzEwMCBjbG9jayBzdXBwb3J0IgorLQlk ZXBlbmRzIG9uIFNPQ19TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKy0JZGVmYXVsdCBTT0NfU1RB UkZJVkUKKysJZGVwZW5kcyBvbiBBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVAorKwlkZWZh dWx0IEFSQ0hfU1RBUkZJVkUKKyAJaGVscAorIAkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRo ZSBjbG9jayBjb250cm9sbGVyIG9uIHRoZSBTdGFyRml2ZSBKSDcxMDAKKyAJICBTb0MuCitAQCAt MTEsNyArMTEsNyBAQCBjb25maWcgQ0xLX1NUQVJGSVZFX0pINzEwMAorIGNvbmZpZyBDTEtfU1RB UkZJVkVfSkg3MTAwX0FVRElPCisgCXRyaXN0YXRlICJTdGFyRml2ZSBKSDcxMDAgYXVkaW8gY2xv Y2sgc3VwcG9ydCIKKyAJZGVwZW5kcyBvbiBDTEtfU1RBUkZJVkVfSkg3MTAwCistCWRlZmF1bHQg bSBpZiBTT0NfU1RBUkZJVkUKKysJZGVmYXVsdCBtIGlmIEFSQ0hfU1RBUkZJVkUKKyAJaGVscAor IAkgIFNheSBZIG9yIE0gaGVyZSB0byBzdXBwb3J0IHRoZSBhdWRpbyBjbG9ja3Mgb24gdGhlIFN0 YXJGaXZlIEpINzEwMAorIAkgIFNvQy4KKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGludXg2LjMvcGF0Y2hlcy8wMDA0LWNsay1zdGFyZml2ZS1GYWN0b3Itb3V0LWNvbW1vbi1K SDcxMDAtYW5kLUpINzExMC1jb2QucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAw NC1jbGstc3RhcmZpdmUtRmFjdG9yLW91dC1jb21tb24tSkg3MTAwLWFuZC1KSDcxMTAtY29kLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmNjZTM5YTQ1ZGQx ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwNC1jbGst c3RhcmZpdmUtRmFjdG9yLW91dC1jb21tb24tSkg3MTAwLWFuZC1KSDcxMTAtY29kLnBhdGNoCkBA IC0wLDAgKzEsNzYwIEBACitGcm9tIDVjNDlhNDk2ODI0ZDhkZmVkM2JmZTI1OTY1ZWE4ZTU1MmVj ZDNjODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFbWlsIFJlbm5lciBCZXJ0aGlu ZyA8a2VybmVsQGVzbWlsLmRrPgorRGF0ZTogU2F0LCAxIEFwciAyMDIzIDE5OjE5OjE2ICswODAw CitTdWJqZWN0OiBbUEFUQ0ggMDQvODRdIGNsazogc3RhcmZpdmU6IEZhY3RvciBvdXQgY29tbW9u IEpINzEwMCBhbmQgSkg3MTEwIGNvZGUKKworVGhlIGNsb2NrIGNvbnRyb2wgcmVnaXN0ZXJzIG9u IHRoZSBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCB3b3JrCitpZGVudGljYWxseSwgc28gZmFj dG9yIG91dCB0aGUgY29kZSB0aGVuIGRyaXZlcnMgZm9yIHRoZSB0d28gU29DcworY2FuIHNoYXJl IGl0IHdpdGhvdXQgZGVwZW5kaW5nIG9uIGVhY2ggb3RoZXIuIE5vIGZ1bmN0aW9uYWwgY2hhbmdl LgorCitUZXN0ZWQtYnk6IFRvbW1hc28gTWVyY2lhaSA8dG9tbS5tZXJjaWFpQGdtYWlsLmNvbT4K K1Jldmlld2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgor U2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK1Np Z25lZC1vZmYtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisg ZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICA1ICsKKyBkcml2 ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgIDMgKy0KKyBkcml2ZXJz L2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLmMgfCAzMjUgLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLmggfCAgIDIg KworIGRyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxeDAuYyB8IDMzMyArKysr KysrKysrKysrKysrKysrKysKKyA1IGZpbGVzIGNoYW5nZWQsIDM0MiBpbnNlcnRpb25zKCspLCAz MjYgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL3N0YXJmaXZl L2Nsay1zdGFyZml2ZS1qaDcxeDAuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZp dmUvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcKK2luZGV4IGVmMzUxN2Y0 YTI3Ni4uM2NlZWIxOWI1ZWRhIDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2Nv bmZpZworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworQEAgLTEsOCArMSwxMiBA QAorICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyAKKytjb25maWcgQ0xLX1NU QVJGSVZFX0pINzFYMAorKwlib29sCisrCisgY29uZmlnIENMS19TVEFSRklWRV9KSDcxMDAKKyAJ Ym9vbCAiU3RhckZpdmUgSkg3MTAwIGNsb2NrIHN1cHBvcnQiCisgCWRlcGVuZHMgb24gQVJDSF9T VEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKysJc2VsZWN0IENMS19TVEFSRklWRV9KSDcxWDAKKyAJ ZGVmYXVsdCBBUkNIX1NUQVJGSVZFCisgCWhlbHAKKyAJICBTYXkgeWVzIGhlcmUgdG8gc3VwcG9y dCB0aGUgY2xvY2sgY29udHJvbGxlciBvbiB0aGUgU3RhckZpdmUgSkg3MTAwCitAQCAtMTEsNiAr MTUsNyBAQCBjb25maWcgQ0xLX1NUQVJGSVZFX0pINzEwMAorIGNvbmZpZyBDTEtfU1RBUkZJVkVf Skg3MTAwX0FVRElPCisgCXRyaXN0YXRlICJTdGFyRml2ZSBKSDcxMDAgYXVkaW8gY2xvY2sgc3Vw cG9ydCIKKyAJZGVwZW5kcyBvbiBDTEtfU1RBUkZJVkVfSkg3MTAwCisrCXNlbGVjdCBDTEtfU1RB UkZJVkVfSkg3MVgwCisgCWRlZmF1bHQgbSBpZiBBUkNIX1NUQVJGSVZFCisgCWhlbHAKKyAJICBT YXkgWSBvciBNIGhlcmUgdG8gc3VwcG9ydCB0aGUgYXVkaW8gY2xvY2tzIG9uIHRoZSBTdGFyRml2 ZSBKSDcxMDAKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZSBiL2Ry aXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCitpbmRleCAwZmE4ZWNiOWVjMWMuLjgyZWRmYTlm OWNiOCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCisrKysgYi9k cml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZQorQEAgLTEsNCArMSw1IEBACisgIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLSMgU3RhckZpdmUgQ2xvY2sKKytvYmotJChDT05G SUdfQ0xLX1NUQVJGSVZFX0pINzFYMCkJKz0gY2xrLXN0YXJmaXZlLWpoNzF4MC5vCisrCisgb2Jq LSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMDApCSs9IGNsay1zdGFyZml2ZS1qaDcxMDAubwor IG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTAwX0FVRElPKQkrPSBjbGstc3RhcmZpdmUt amg3MTAwLWF1ZGlvLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3Rh cmZpdmUtamg3MTAwLmMgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAw LmMKK2luZGV4IDY5MWFlZWJjNzA5Mi4uZWVhNTJmMTZhZjBkIDEwMDY0NAorLS0tIGEvZHJpdmVy cy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEwMC5jCisrKysgYi9kcml2ZXJzL2Nsay9z dGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLmMKK0BAIC03LDE1ICs3LDEwIEBACisgICogQ29w eXJpZ2h0IChDKSAyMDIxIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Cisg ICovCisgCistI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KKyAjaW5jbHVkZSA8bGludXgvY2xrLXBy b3ZpZGVyLmg+CistI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyAjaW5jbHVkZSA8bGludXgv ZGV2aWNlLmg+CisgI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKy0jaW5jbHVkZSA8bGludXgvaW8u aD4KKy0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisgI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZp Y2V0YWJsZS5oPgorLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyAjaW5jbHVkZSA8bGludXgv cGxhdGZvcm1fZGV2aWNlLmg+CisgCisgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N0YXJm aXZlLWpoNzEwMC5oPgorQEAgLTI2OSwzMjYgKzI2NCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg amg3MTAwX2Nsa19kYXRhIGpoNzEwMF9jbGtfZGF0YVtdIF9faW5pdGNvbnN0ID0geworIAlKSDcx MDBfR0FURShKSDcxMDBfQ0xLX1NZU0VSUl9BUEIsICJzeXNlcnJfYXBiIiwgMCwgSkg3MTAwX0NM S19BUEIyX0JVUyksCisgfTsKKyAKKy1zdGF0aWMgc3RydWN0IGpoNzEwMF9jbGsgKmpoNzEwMF9j bGtfZnJvbShzdHJ1Y3QgY2xrX2h3ICpodykKKy17CistCXJldHVybiBjb250YWluZXJfb2YoaHcs IHN0cnVjdCBqaDcxMDBfY2xrLCBodyk7CistfQorLQorLXN0YXRpYyBzdHJ1Y3Qgamg3MTAwX2Ns a19wcml2ICpqaDcxMDBfcHJpdl9mcm9tKHN0cnVjdCBqaDcxMDBfY2xrICpjbGspCisteworLQly ZXR1cm4gY29udGFpbmVyX29mKGNsaywgc3RydWN0IGpoNzEwMF9jbGtfcHJpdiwgcmVnW2Nsay0+ aWR4XSk7CistfQorLQorLXN0YXRpYyB1MzIgamg3MTAwX2Nsa19yZWdfZ2V0KHN0cnVjdCBqaDcx MDBfY2xrICpjbGspCisteworLQlzdHJ1Y3Qgamg3MTAwX2Nsa19wcml2ICpwcml2ID0gamg3MTAw X3ByaXZfZnJvbShjbGspOworLQl2b2lkIF9faW9tZW0gKnJlZyA9IHByaXYtPmJhc2UgKyA0ICog Y2xrLT5pZHg7CistCistCXJldHVybiByZWFkbF9yZWxheGVkKHJlZyk7CistfQorLQorLXN0YXRp YyB2b2lkIGpoNzEwMF9jbGtfcmVnX3JtdyhzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrLCB1MzIgbWFz aywgdTMyIHZhbHVlKQorLXsKKy0Jc3RydWN0IGpoNzEwMF9jbGtfcHJpdiAqcHJpdiA9IGpoNzEw MF9wcml2X2Zyb20oY2xrKTsKKy0Jdm9pZCBfX2lvbWVtICpyZWcgPSBwcml2LT5iYXNlICsgNCAq IGNsay0+aWR4OworLQl1bnNpZ25lZCBsb25nIGZsYWdzOworLQorLQlzcGluX2xvY2tfaXJxc2F2 ZSgmcHJpdi0+cm13X2xvY2ssIGZsYWdzKTsKKy0JdmFsdWUgfD0gcmVhZGxfcmVsYXhlZChyZWcp ICYgfm1hc2s7CistCXdyaXRlbF9yZWxheGVkKHZhbHVlLCByZWcpOworLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZwcml2LT5ybXdfbG9jaywgZmxhZ3MpOworLX0KKy0KKy1zdGF0aWMgaW50IGpo NzEwMF9jbGtfZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQorLXsKKy0Jc3RydWN0IGpoNzEwMF9j bGsgKmNsayA9IGpoNzEwMF9jbGtfZnJvbShodyk7CistCistCWpoNzEwMF9jbGtfcmVnX3Jtdyhj bGssIEpINzEwMF9DTEtfRU5BQkxFLCBKSDcxMDBfQ0xLX0VOQUJMRSk7CistCXJldHVybiAwOwor LX0KKy0KKy1zdGF0aWMgdm9pZCBqaDcxMDBfY2xrX2Rpc2FibGUoc3RydWN0IGNsa19odyAqaHcp CisteworLQlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19mcm9tKGh3KTsKKy0K Ky0Jamg3MTAwX2Nsa19yZWdfcm13KGNsaywgSkg3MTAwX0NMS19FTkFCTEUsIDApOworLX0KKy0K Ky1zdGF0aWMgaW50IGpoNzEwMF9jbGtfaXNfZW5hYmxlZChzdHJ1Y3QgY2xrX2h3ICpodykKKy17 CistCXN0cnVjdCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworLQorLQly ZXR1cm4gISEoamg3MTAwX2Nsa19yZWdfZ2V0KGNsaykgJiBKSDcxMDBfQ0xLX0VOQUJMRSk7Cist fQorLQorLXN0YXRpYyB1bnNpZ25lZCBsb25nIGpoNzEwMF9jbGtfcmVjYWxjX3JhdGUoc3RydWN0 IGNsa19odyAqaHcsCistCQkJCQkgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKKy17Cist CXN0cnVjdCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworLQl1MzIgZGl2 ID0gamg3MTAwX2Nsa19yZWdfZ2V0KGNsaykgJiBKSDcxMDBfQ0xLX0RJVl9NQVNLOworLQorLQly ZXR1cm4gZGl2ID8gcGFyZW50X3JhdGUgLyBkaXYgOiAwOworLX0KKy0KKy1zdGF0aWMgaW50IGpo NzEwMF9jbGtfZGV0ZXJtaW5lX3JhdGUoc3RydWN0IGNsa19odyAqaHcsCistCQkJCSAgICAgc3Ry dWN0IGNsa19yYXRlX3JlcXVlc3QgKnJlcSkKKy17CistCXN0cnVjdCBqaDcxMDBfY2xrICpjbGsg PSBqaDcxMDBfY2xrX2Zyb20oaHcpOworLQl1bnNpZ25lZCBsb25nIHBhcmVudCA9IHJlcS0+YmVz dF9wYXJlbnRfcmF0ZTsKKy0JdW5zaWduZWQgbG9uZyByYXRlID0gY2xhbXAocmVxLT5yYXRlLCBy ZXEtPm1pbl9yYXRlLCByZXEtPm1heF9yYXRlKTsKKy0JdW5zaWduZWQgbG9uZyBkaXYgPSBtaW5f dCh1bnNpZ25lZCBsb25nLCBESVZfUk9VTkRfVVAocGFyZW50LCByYXRlKSwgY2xrLT5tYXhfZGl2 KTsKKy0JdW5zaWduZWQgbG9uZyByZXN1bHQgPSBwYXJlbnQgLyBkaXY7CistCistCS8qCistCSAq IHdlIHdhbnQgdGhlIHJlc3VsdCBjbGFtcGVkIGJ5IG1pbl9yYXRlIGFuZCBtYXhfcmF0ZSBpZiBw b3NzaWJsZToKKy0JICogY2FzZSAxOiBkaXYgaGl0cyB0aGUgbWF4IGRpdmlkZXIgdmFsdWUsIHdo aWNoIG1lYW5zIGl0J3MgbGVzcyB0aGFuCistCSAqIHBhcmVudCAvIHJhdGUsIHNvIHRoZSByZXN1 bHQgaXMgZ3JlYXRlciB0aGFuIHJhdGUgYW5kIG1pbl9yYXRlIGluCistCSAqIHBhcnRpY3VsYXIu IHdlIGNhbid0IGRvIGFueXRoaW5nIGFib3V0IHJlc3VsdCA+IG1heF9yYXRlIGJlY2F1c2UgdGhl CistCSAqIGRpdmlkZXIgZG9lc24ndCBnbyBhbnkgZnVydGhlci4KKy0JICogY2FzZSAyOiBkaXYg PSBESVZfUk9VTkRfVVAocGFyZW50LCByYXRlKSB3aGljaCBtZWFucyB0aGUgcmVzdWx0IGlzCist CSAqIGFsd2F5cyBsb3dlciBvciBlcXVhbCB0byByYXRlIGFuZCBtYXhfcmF0ZS4gaG93ZXZlciB0 aGUgcmVzdWx0IG1heQorLQkgKiB0dXJuIG91dCBsb3dlciB0aGFuIG1pbl9yYXRlLCBidXQgdGhl biB0aGUgbmV4dCBoaWdoZXIgcmF0ZSBpcyBmaW5lOgorLQkgKiAgIGRpdiAtIDEgPSBjZWlsKHBh cmVudCAvIHJhdGUpIC0gMSA8IHBhcmVudCAvIHJhdGUKKy0JICogYW5kIHRodXMKKy0JICogICBt aW5fcmF0ZSA8PSByYXRlIDwgcGFyZW50IC8gKGRpdiAtIDEpCistCSAqLworLQlpZiAocmVzdWx0 IDwgcmVxLT5taW5fcmF0ZSAmJiBkaXYgPiAxKQorLQkJcmVzdWx0ID0gcGFyZW50IC8gKGRpdiAt IDEpOworLQorLQlyZXEtPnJhdGUgPSByZXN1bHQ7CistCXJldHVybiAwOworLX0KKy0KKy1zdGF0 aWMgaW50IGpoNzEwMF9jbGtfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsCistCQkJICAgICAg IHVuc2lnbmVkIGxvbmcgcmF0ZSwKKy0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0 ZSkKKy17CistCXN0cnVjdCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOwor LQl1bnNpZ25lZCBsb25nIGRpdiA9IGNsYW1wKERJVl9ST1VORF9DTE9TRVNUKHBhcmVudF9yYXRl LCByYXRlKSwKKy0JCQkJICAxVUwsICh1bnNpZ25lZCBsb25nKWNsay0+bWF4X2Rpdik7CistCist CWpoNzEwMF9jbGtfcmVnX3JtdyhjbGssIEpINzEwMF9DTEtfRElWX01BU0ssIGRpdik7CistCXJl dHVybiAwOworLX0KKy0KKy1zdGF0aWMgdW5zaWduZWQgbG9uZyBqaDcxMDBfY2xrX2ZyYWNfcmVj YWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsCistCQkJCQkJIHVuc2lnbmVkIGxvbmcgcGFyZW50 X3JhdGUpCisteworLQlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19mcm9tKGh3 KTsKKy0JdTMyIHJlZyA9IGpoNzEwMF9jbGtfcmVnX2dldChjbGspOworLQl1bnNpZ25lZCBsb25n IGRpdjEwMCA9IDEwMCAqIChyZWcgJiBKSDcxMDBfQ0xLX0lOVF9NQVNLKSArCistCQkJICAgICAg ICgocmVnICYgSkg3MTAwX0NMS19GUkFDX01BU0spID4+IEpINzEwMF9DTEtfRlJBQ19TSElGVCk7 CistCistCXJldHVybiAoZGl2MTAwID49IEpINzEwMF9DTEtfRlJBQ19NSU4pID8gMTAwICogcGFy ZW50X3JhdGUgLyBkaXYxMDAgOiAwOworLX0KKy0KKy1zdGF0aWMgaW50IGpoNzEwMF9jbGtfZnJh Y19kZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKKy0JCQkJCSAgc3RydWN0IGNsa19y YXRlX3JlcXVlc3QgKnJlcSkKKy17CistCXVuc2lnbmVkIGxvbmcgcGFyZW50MTAwID0gMTAwICog cmVxLT5iZXN0X3BhcmVudF9yYXRlOworLQl1bnNpZ25lZCBsb25nIHJhdGUgPSBjbGFtcChyZXEt PnJhdGUsIHJlcS0+bWluX3JhdGUsIHJlcS0+bWF4X3JhdGUpOworLQl1bnNpZ25lZCBsb25nIGRp djEwMCA9IGNsYW1wKERJVl9ST1VORF9DTE9TRVNUKHBhcmVudDEwMCwgcmF0ZSksCistCQkJCSAg ICAgSkg3MTAwX0NMS19GUkFDX01JTiwgSkg3MTAwX0NMS19GUkFDX01BWCk7CistCXVuc2lnbmVk IGxvbmcgcmVzdWx0ID0gcGFyZW50MTAwIC8gZGl2MTAwOworLQorLQkvKiBjbGFtcCB0aGUgcmVz dWx0IGFzIGluIGpoNzEwMF9jbGtfZGV0ZXJtaW5lX3JhdGUoKSBhYm92ZSAqLworLQlpZiAocmVz dWx0ID4gcmVxLT5tYXhfcmF0ZSAmJiBkaXYxMDAgPCBKSDcxMDBfQ0xLX0ZSQUNfTUFYKQorLQkJ cmVzdWx0ID0gcGFyZW50MTAwIC8gKGRpdjEwMCArIDEpOworLQlpZiAocmVzdWx0IDwgcmVxLT5t aW5fcmF0ZSAmJiBkaXYxMDAgPiBKSDcxMDBfQ0xLX0ZSQUNfTUlOKQorLQkJcmVzdWx0ID0gcGFy ZW50MTAwIC8gKGRpdjEwMCAtIDEpOworLQorLQlyZXEtPnJhdGUgPSByZXN1bHQ7CistCXJldHVy biAwOworLX0KKy0KKy1zdGF0aWMgaW50IGpoNzEwMF9jbGtfZnJhY19zZXRfcmF0ZShzdHJ1Y3Qg Y2xrX2h3ICpodywKKy0JCQkJICAgIHVuc2lnbmVkIGxvbmcgcmF0ZSwKKy0JCQkJICAgIHVuc2ln bmVkIGxvbmcgcGFyZW50X3JhdGUpCisteworLQlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3 MTAwX2Nsa19mcm9tKGh3KTsKKy0JdW5zaWduZWQgbG9uZyBkaXYxMDAgPSBjbGFtcChESVZfUk9V TkRfQ0xPU0VTVCgxMDAgKiBwYXJlbnRfcmF0ZSwgcmF0ZSksCistCQkJCSAgICAgSkg3MTAwX0NM S19GUkFDX01JTiwgSkg3MTAwX0NMS19GUkFDX01BWCk7CistCXUzMiB2YWx1ZSA9ICgoZGl2MTAw ICUgMTAwKSA8PCBKSDcxMDBfQ0xLX0ZSQUNfU0hJRlQpIHwgKGRpdjEwMCAvIDEwMCk7CistCist CWpoNzEwMF9jbGtfcmVnX3JtdyhjbGssIEpINzEwMF9DTEtfRElWX01BU0ssIHZhbHVlKTsKKy0J cmV0dXJuIDA7CistfQorLQorLXN0YXRpYyB1OCBqaDcxMDBfY2xrX2dldF9wYXJlbnQoc3RydWN0 IGNsa19odyAqaHcpCisteworLQlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19m cm9tKGh3KTsKKy0JdTMyIHZhbHVlID0gamg3MTAwX2Nsa19yZWdfZ2V0KGNsayk7CistCistCXJl dHVybiAodmFsdWUgJiBKSDcxMDBfQ0xLX01VWF9NQVNLKSA+PiBKSDcxMDBfQ0xLX01VWF9TSElG VDsKKy19CistCistc3RhdGljIGludCBqaDcxMDBfY2xrX3NldF9wYXJlbnQoc3RydWN0IGNsa19o dyAqaHcsIHU4IGluZGV4KQorLXsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpoNzEwMF9j bGtfZnJvbShodyk7CistCXUzMiB2YWx1ZSA9ICh1MzIpaW5kZXggPDwgSkg3MTAwX0NMS19NVVhf U0hJRlQ7CistCistCWpoNzEwMF9jbGtfcmVnX3JtdyhjbGssIEpINzEwMF9DTEtfTVVYX01BU0ss IHZhbHVlKTsKKy0JcmV0dXJuIDA7CistfQorLQorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19tdXhf ZGV0ZXJtaW5lX3JhdGUoc3RydWN0IGNsa19odyAqaHcsCistCQkJCQkgc3RydWN0IGNsa19yYXRl X3JlcXVlc3QgKnJlcSkKKy17CistCXJldHVybiBjbGtfbXV4X2RldGVybWluZV9yYXRlX2ZsYWdz KGh3LCByZXEsIDApOworLX0KKy0KKy1zdGF0aWMgaW50IGpoNzEwMF9jbGtfZ2V0X3BoYXNlKHN0 cnVjdCBjbGtfaHcgKmh3KQorLXsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpoNzEwMF9j bGtfZnJvbShodyk7CistCXUzMiB2YWx1ZSA9IGpoNzEwMF9jbGtfcmVnX2dldChjbGspOworLQor LQlyZXR1cm4gKHZhbHVlICYgSkg3MTAwX0NMS19JTlZFUlQpID8gMTgwIDogMDsKKy19CistCist c3RhdGljIGludCBqaDcxMDBfY2xrX3NldF9waGFzZShzdHJ1Y3QgY2xrX2h3ICpodywgaW50IGRl Z3JlZXMpCisteworLQlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19mcm9tKGh3 KTsKKy0JdTMyIHZhbHVlOworLQorLQlpZiAoZGVncmVlcyA9PSAwKQorLQkJdmFsdWUgPSAwOwor LQllbHNlIGlmIChkZWdyZWVzID09IDE4MCkKKy0JCXZhbHVlID0gSkg3MTAwX0NMS19JTlZFUlQ7 CistCWVsc2UKKy0JCXJldHVybiAtRUlOVkFMOworLQorLQlqaDcxMDBfY2xrX3JlZ19ybXcoY2xr LCBKSDcxMDBfQ0xLX0lOVkVSVCwgdmFsdWUpOworLQlyZXR1cm4gMDsKKy19CistCistI2lmZGVm IENPTkZJR19ERUJVR19GUworLXN0YXRpYyB2b2lkIGpoNzEwMF9jbGtfZGVidWdfaW5pdChzdHJ1 Y3QgY2xrX2h3ICpodywgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQorLXsKKy0Jc3RhdGljIGNvbnN0 IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyIGpoNzEwMF9jbGtfcmVnID0geworLQkJLm5hbWUgPSAiQ1RS TCIsCistCQkub2Zmc2V0ID0gMCwKKy0JfTsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpo NzEwMF9jbGtfZnJvbShodyk7CistCXN0cnVjdCBqaDcxMDBfY2xrX3ByaXYgKnByaXYgPSBqaDcx MDBfcHJpdl9mcm9tKGNsayk7CistCXN0cnVjdCBkZWJ1Z2ZzX3JlZ3NldDMyICpyZWdzZXQ7Cist CistCXJlZ3NldCA9IGRldm1fa3phbGxvYyhwcml2LT5kZXYsIHNpemVvZigqcmVnc2V0KSwgR0ZQ X0tFUk5FTCk7CistCWlmICghcmVnc2V0KQorLQkJcmV0dXJuOworLQorLQlyZWdzZXQtPnJlZ3Mg PSAmamg3MTAwX2Nsa19yZWc7CistCXJlZ3NldC0+bnJlZ3MgPSAxOworLQlyZWdzZXQtPmJhc2Ug PSBwcml2LT5iYXNlICsgNCAqIGNsay0+aWR4OworLQorLQlkZWJ1Z2ZzX2NyZWF0ZV9yZWdzZXQz MigicmVnaXN0ZXJzIiwgMDQwMCwgZGVudHJ5LCByZWdzZXQpOworLX0KKy0jZWxzZQorLSNkZWZp bmUgamg3MTAwX2Nsa19kZWJ1Z19pbml0IE5VTEwKKy0jZW5kaWYKKy0KKy1zdGF0aWMgY29uc3Qg c3RydWN0IGNsa19vcHMgamg3MTAwX2Nsa19nYXRlX29wcyA9IHsKKy0JLmVuYWJsZSA9IGpoNzEw MF9jbGtfZW5hYmxlLAorLQkuZGlzYWJsZSA9IGpoNzEwMF9jbGtfZGlzYWJsZSwKKy0JLmlzX2Vu YWJsZWQgPSBqaDcxMDBfY2xrX2lzX2VuYWJsZWQsCistCS5kZWJ1Z19pbml0ID0gamg3MTAwX2Ns a19kZWJ1Z19pbml0LAorLX07CistCistc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEw MF9jbGtfZGl2X29wcyA9IHsKKy0JLnJlY2FsY19yYXRlID0gamg3MTAwX2Nsa19yZWNhbGNfcmF0 ZSwKKy0JLmRldGVybWluZV9yYXRlID0gamg3MTAwX2Nsa19kZXRlcm1pbmVfcmF0ZSwKKy0JLnNl dF9yYXRlID0gamg3MTAwX2Nsa19zZXRfcmF0ZSwKKy0JLmRlYnVnX2luaXQgPSBqaDcxMDBfY2xr X2RlYnVnX2luaXQsCistfTsKKy0KKy1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTAw X2Nsa19mZGl2X29wcyA9IHsKKy0JLnJlY2FsY19yYXRlID0gamg3MTAwX2Nsa19mcmFjX3JlY2Fs Y19yYXRlLAorLQkuZGV0ZXJtaW5lX3JhdGUgPSBqaDcxMDBfY2xrX2ZyYWNfZGV0ZXJtaW5lX3Jh dGUsCistCS5zZXRfcmF0ZSA9IGpoNzEwMF9jbGtfZnJhY19zZXRfcmF0ZSwKKy0JLmRlYnVnX2lu aXQgPSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCistfTsKKy0KKy1zdGF0aWMgY29uc3Qgc3RydWN0 IGNsa19vcHMgamg3MTAwX2Nsa19nZGl2X29wcyA9IHsKKy0JLmVuYWJsZSA9IGpoNzEwMF9jbGtf ZW5hYmxlLAorLQkuZGlzYWJsZSA9IGpoNzEwMF9jbGtfZGlzYWJsZSwKKy0JLmlzX2VuYWJsZWQg PSBqaDcxMDBfY2xrX2lzX2VuYWJsZWQsCistCS5yZWNhbGNfcmF0ZSA9IGpoNzEwMF9jbGtfcmVj YWxjX3JhdGUsCistCS5kZXRlcm1pbmVfcmF0ZSA9IGpoNzEwMF9jbGtfZGV0ZXJtaW5lX3JhdGUs CistCS5zZXRfcmF0ZSA9IGpoNzEwMF9jbGtfc2V0X3JhdGUsCistCS5kZWJ1Z19pbml0ID0gamg3 MTAwX2Nsa19kZWJ1Z19pbml0LAorLX07CistCistc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3Bz IGpoNzEwMF9jbGtfbXV4X29wcyA9IHsKKy0JLmRldGVybWluZV9yYXRlID0gamg3MTAwX2Nsa19t dXhfZGV0ZXJtaW5lX3JhdGUsCistCS5zZXRfcGFyZW50ID0gamg3MTAwX2Nsa19zZXRfcGFyZW50 LAorLQkuZ2V0X3BhcmVudCA9IGpoNzEwMF9jbGtfZ2V0X3BhcmVudCwKKy0JLmRlYnVnX2luaXQg PSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCistfTsKKy0KKy1zdGF0aWMgY29uc3Qgc3RydWN0IGNs a19vcHMgamg3MTAwX2Nsa19nbXV4X29wcyA9IHsKKy0JLmVuYWJsZSA9IGpoNzEwMF9jbGtfZW5h YmxlLAorLQkuZGlzYWJsZSA9IGpoNzEwMF9jbGtfZGlzYWJsZSwKKy0JLmlzX2VuYWJsZWQgPSBq aDcxMDBfY2xrX2lzX2VuYWJsZWQsCistCS5kZXRlcm1pbmVfcmF0ZSA9IGpoNzEwMF9jbGtfbXV4 X2RldGVybWluZV9yYXRlLAorLQkuc2V0X3BhcmVudCA9IGpoNzEwMF9jbGtfc2V0X3BhcmVudCwK Ky0JLmdldF9wYXJlbnQgPSBqaDcxMDBfY2xrX2dldF9wYXJlbnQsCistCS5kZWJ1Z19pbml0ID0g amg3MTAwX2Nsa19kZWJ1Z19pbml0LAorLX07CistCistc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf b3BzIGpoNzEwMF9jbGtfbWRpdl9vcHMgPSB7CistCS5yZWNhbGNfcmF0ZSA9IGpoNzEwMF9jbGtf cmVjYWxjX3JhdGUsCistCS5kZXRlcm1pbmVfcmF0ZSA9IGpoNzEwMF9jbGtfZGV0ZXJtaW5lX3Jh dGUsCistCS5nZXRfcGFyZW50ID0gamg3MTAwX2Nsa19nZXRfcGFyZW50LAorLQkuc2V0X3BhcmVu dCA9IGpoNzEwMF9jbGtfc2V0X3BhcmVudCwKKy0JLnNldF9yYXRlID0gamg3MTAwX2Nsa19zZXRf cmF0ZSwKKy0JLmRlYnVnX2luaXQgPSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCistfTsKKy0KKy1z dGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTAwX2Nsa19nbWRfb3BzID0geworLQkuZW5h YmxlID0gamg3MTAwX2Nsa19lbmFibGUsCistCS5kaXNhYmxlID0gamg3MTAwX2Nsa19kaXNhYmxl LAorLQkuaXNfZW5hYmxlZCA9IGpoNzEwMF9jbGtfaXNfZW5hYmxlZCwKKy0JLnJlY2FsY19yYXRl ID0gamg3MTAwX2Nsa19yZWNhbGNfcmF0ZSwKKy0JLmRldGVybWluZV9yYXRlID0gamg3MTAwX2Ns a19kZXRlcm1pbmVfcmF0ZSwKKy0JLmdldF9wYXJlbnQgPSBqaDcxMDBfY2xrX2dldF9wYXJlbnQs CistCS5zZXRfcGFyZW50ID0gamg3MTAwX2Nsa19zZXRfcGFyZW50LAorLQkuc2V0X3JhdGUgPSBq aDcxMDBfY2xrX3NldF9yYXRlLAorLQkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5p dCwKKy19OworLQorLXN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMDBfY2xrX2ludl9v cHMgPSB7CistCS5nZXRfcGhhc2UgPSBqaDcxMDBfY2xrX2dldF9waGFzZSwKKy0JLnNldF9waGFz ZSA9IGpoNzEwMF9jbGtfc2V0X3BoYXNlLAorLQkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVi dWdfaW5pdCwKKy19OworLQorLWNvbnN0IHN0cnVjdCBjbGtfb3BzICpzdGFyZml2ZV9qaDcxMDBf Y2xrX29wcyh1MzIgbWF4KQorLXsKKy0JaWYgKG1heCAmIEpINzEwMF9DTEtfRElWX01BU0spIHsK Ky0JCWlmIChtYXggJiBKSDcxMDBfQ0xLX01VWF9NQVNLKSB7CistCQkJaWYgKG1heCAmIEpINzEw MF9DTEtfRU5BQkxFKQorLQkJCQlyZXR1cm4gJmpoNzEwMF9jbGtfZ21kX29wczsKKy0JCQlyZXR1 cm4gJmpoNzEwMF9jbGtfbWRpdl9vcHM7CistCQl9CistCQlpZiAobWF4ICYgSkg3MTAwX0NMS19F TkFCTEUpCistCQkJcmV0dXJuICZqaDcxMDBfY2xrX2dkaXZfb3BzOworLQkJaWYgKG1heCA9PSBK SDcxMDBfQ0xLX0ZSQUNfTUFYKQorLQkJCXJldHVybiAmamg3MTAwX2Nsa19mZGl2X29wczsKKy0J CXJldHVybiAmamg3MTAwX2Nsa19kaXZfb3BzOworLQl9CistCistCWlmIChtYXggJiBKSDcxMDBf Q0xLX01VWF9NQVNLKSB7CistCQlpZiAobWF4ICYgSkg3MTAwX0NMS19FTkFCTEUpCistCQkJcmV0 dXJuICZqaDcxMDBfY2xrX2dtdXhfb3BzOworLQkJcmV0dXJuICZqaDcxMDBfY2xrX211eF9vcHM7 CistCX0KKy0KKy0JaWYgKG1heCAmIEpINzEwMF9DTEtfRU5BQkxFKQorLQkJcmV0dXJuICZqaDcx MDBfY2xrX2dhdGVfb3BzOworLQorLQlyZXR1cm4gJmpoNzEwMF9jbGtfaW52X29wczsKKy19Cist RVhQT1JUX1NZTUJPTF9HUEwoc3RhcmZpdmVfamg3MTAwX2Nsa19vcHMpOworLQorIHN0YXRpYyBz dHJ1Y3QgY2xrX2h3ICpqaDcxMDBfY2xrX2dldChzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpjbGtz cGVjLCB2b2lkICpkYXRhKQorIHsKKyAJc3RydWN0IGpoNzEwMF9jbGtfcHJpdiAqcHJpdiA9IGRh dGE7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEw MC5oIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEwMC5oCitpbmRleCBm MTE2YmU1NzQwYTUuLmE4YmE2ZTI1YjVjZSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJm aXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAuaAorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xr LXN0YXJmaXZlLWpoNzEwMC5oCitAQCAtNCw2ICs0LDggQEAKKyAKKyAjaW5jbHVkZSA8bGludXgv Yml0cy5oPgorICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKysjaW5jbHVkZSA8bGlu dXgvZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisgCisgLyogcmVnaXN0 ZXIgZmllbGRzICovCisgI2RlZmluZSBKSDcxMDBfQ0xLX0VOQUJMRQlCSVQoMzEpCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzF4MC5jIGIvZHJpdmVy cy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzF4MC5jCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMDAwLi42YzA3YjYxYjRhMzIKKy0tLSAvZGV2L251bGwKKysrKyBi L2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxeDAuYworQEAgLTAsMCArMSwz MzMgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKy8qCisrICogU3Rh ckZpdmUgSkg3MTAwIENsb2NrIEdlbmVyYXRvciBEcml2ZXIKKysgKgorKyAqIENvcHlyaWdodCAo QykgMjAyMS0yMDIyIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrICov CisrCisrI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorKyNpbmNsdWRlIDxsaW51eC9k ZWJ1Z2ZzLmg+CisrI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9p by5oPgorKworKyNpbmNsdWRlICJjbGstc3RhcmZpdmUtamg3MTAwLmgiCisrCisrc3RhdGljIHN0 cnVjdCBqaDcxMDBfY2xrICpqaDcxMDBfY2xrX2Zyb20oc3RydWN0IGNsa19odyAqaHcpCisrewor KwlyZXR1cm4gY29udGFpbmVyX29mKGh3LCBzdHJ1Y3Qgamg3MTAwX2NsaywgaHcpOworK30KKysK KytzdGF0aWMgc3RydWN0IGpoNzEwMF9jbGtfcHJpdiAqamg3MTAwX3ByaXZfZnJvbShzdHJ1Y3Qg amg3MTAwX2NsayAqY2xrKQorK3sKKysJcmV0dXJuIGNvbnRhaW5lcl9vZihjbGssIHN0cnVjdCBq aDcxMDBfY2xrX3ByaXYsIHJlZ1tjbGstPmlkeF0pOworK30KKysKKytzdGF0aWMgdTMyIGpoNzEw MF9jbGtfcmVnX2dldChzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrKQorK3sKKysJc3RydWN0IGpoNzEw MF9jbGtfcHJpdiAqcHJpdiA9IGpoNzEwMF9wcml2X2Zyb20oY2xrKTsKKysJdm9pZCBfX2lvbWVt ICpyZWcgPSBwcml2LT5iYXNlICsgNCAqIGNsay0+aWR4OworKworKwlyZXR1cm4gcmVhZGxfcmVs YXhlZChyZWcpOworK30KKysKKytzdGF0aWMgdm9pZCBqaDcxMDBfY2xrX3JlZ19ybXcoc3RydWN0 IGpoNzEwMF9jbGsgKmNsaywgdTMyIG1hc2ssIHUzMiB2YWx1ZSkKKyt7CisrCXN0cnVjdCBqaDcx MDBfY2xrX3ByaXYgKnByaXYgPSBqaDcxMDBfcHJpdl9mcm9tKGNsayk7CisrCXZvaWQgX19pb21l bSAqcmVnID0gcHJpdi0+YmFzZSArIDQgKiBjbGstPmlkeDsKKysJdW5zaWduZWQgbG9uZyBmbGFn czsKKysKKysJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPnJtd19sb2NrLCBmbGFncyk7CisrCXZh bHVlIHw9IHJlYWRsX3JlbGF4ZWQocmVnKSAmIH5tYXNrOworKwl3cml0ZWxfcmVsYXhlZCh2YWx1 ZSwgcmVnKTsKKysJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+cm13X2xvY2ssIGZsYWdz KTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBfY2xrX2VuYWJsZShzdHJ1Y3QgY2xrX2h3ICpo dykKKyt7CisrCXN0cnVjdCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOwor KworKwlqaDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBfQ0xLX0VOQUJMRSwgSkg3MTAwX0NM S19FTkFCTEUpOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgamg3MTAwX2Nsa19k aXNhYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQorK3sKKysJc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9 IGpoNzEwMF9jbGtfZnJvbShodyk7CisrCisrCWpoNzEwMF9jbGtfcmVnX3JtdyhjbGssIEpINzEw MF9DTEtfRU5BQkxFLCAwKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBfY2xrX2lzX2VuYWJs ZWQoc3RydWN0IGNsa19odyAqaHcpCisreworKwlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3 MTAwX2Nsa19mcm9tKGh3KTsKKysKKysJcmV0dXJuICEhKGpoNzEwMF9jbGtfcmVnX2dldChjbGsp ICYgSkg3MTAwX0NMS19FTkFCTEUpOworK30KKysKKytzdGF0aWMgdW5zaWduZWQgbG9uZyBqaDcx MDBfY2xrX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAorKwkJCQkJICAgIHVuc2lnbmVk IGxvbmcgcGFyZW50X3JhdGUpCisreworKwlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAw X2Nsa19mcm9tKGh3KTsKKysJdTMyIGRpdiA9IGpoNzEwMF9jbGtfcmVnX2dldChjbGspICYgSkg3 MTAwX0NMS19ESVZfTUFTSzsKKysKKysJcmV0dXJuIGRpdiA/IHBhcmVudF9yYXRlIC8gZGl2IDog MDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBfY2xrX2RldGVybWluZV9yYXRlKHN0cnVjdCBj bGtfaHcgKmh3LAorKwkJCQkgICAgIHN0cnVjdCBjbGtfcmF0ZV9yZXF1ZXN0ICpyZXEpCisrewor KwlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19mcm9tKGh3KTsKKysJdW5zaWdu ZWQgbG9uZyBwYXJlbnQgPSByZXEtPmJlc3RfcGFyZW50X3JhdGU7CisrCXVuc2lnbmVkIGxvbmcg cmF0ZSA9IGNsYW1wKHJlcS0+cmF0ZSwgcmVxLT5taW5fcmF0ZSwgcmVxLT5tYXhfcmF0ZSk7Cisr CXVuc2lnbmVkIGxvbmcgZGl2ID0gbWluX3QodW5zaWduZWQgbG9uZywgRElWX1JPVU5EX1VQKHBh cmVudCwgcmF0ZSksIGNsay0+bWF4X2Rpdik7CisrCXVuc2lnbmVkIGxvbmcgcmVzdWx0ID0gcGFy ZW50IC8gZGl2OworKworKwkvKgorKwkgKiB3ZSB3YW50IHRoZSByZXN1bHQgY2xhbXBlZCBieSBt aW5fcmF0ZSBhbmQgbWF4X3JhdGUgaWYgcG9zc2libGU6CisrCSAqIGNhc2UgMTogZGl2IGhpdHMg dGhlIG1heCBkaXZpZGVyIHZhbHVlLCB3aGljaCBtZWFucyBpdCdzIGxlc3MgdGhhbgorKwkgKiBw YXJlbnQgLyByYXRlLCBzbyB0aGUgcmVzdWx0IGlzIGdyZWF0ZXIgdGhhbiByYXRlIGFuZCBtaW5f cmF0ZSBpbgorKwkgKiBwYXJ0aWN1bGFyLiB3ZSBjYW4ndCBkbyBhbnl0aGluZyBhYm91dCByZXN1 bHQgPiBtYXhfcmF0ZSBiZWNhdXNlIHRoZQorKwkgKiBkaXZpZGVyIGRvZXNuJ3QgZ28gYW55IGZ1 cnRoZXIuCisrCSAqIGNhc2UgMjogZGl2ID0gRElWX1JPVU5EX1VQKHBhcmVudCwgcmF0ZSkgd2hp Y2ggbWVhbnMgdGhlIHJlc3VsdCBpcworKwkgKiBhbHdheXMgbG93ZXIgb3IgZXF1YWwgdG8gcmF0 ZSBhbmQgbWF4X3JhdGUuIGhvd2V2ZXIgdGhlIHJlc3VsdCBtYXkKKysJICogdHVybiBvdXQgbG93 ZXIgdGhhbiBtaW5fcmF0ZSwgYnV0IHRoZW4gdGhlIG5leHQgaGlnaGVyIHJhdGUgaXMgZmluZToK KysJICogICBkaXYgLSAxID0gY2VpbChwYXJlbnQgLyByYXRlKSAtIDEgPCBwYXJlbnQgLyByYXRl CisrCSAqIGFuZCB0aHVzCisrCSAqICAgbWluX3JhdGUgPD0gcmF0ZSA8IHBhcmVudCAvIChkaXYg LSAxKQorKwkgKi8KKysJaWYgKHJlc3VsdCA8IHJlcS0+bWluX3JhdGUgJiYgZGl2ID4gMSkKKysJ CXJlc3VsdCA9IHBhcmVudCAvIChkaXYgLSAxKTsKKysKKysJcmVxLT5yYXRlID0gcmVzdWx0Owor KwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBfY2xrX3NldF9yYXRlKHN0cnVj dCBjbGtfaHcgKmh3LAorKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIHJhdGUsCisrCQkJICAgICAg IHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCisreworKwlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xr ID0gamg3MTAwX2Nsa19mcm9tKGh3KTsKKysJdW5zaWduZWQgbG9uZyBkaXYgPSBjbGFtcChESVZf Uk9VTkRfQ0xPU0VTVChwYXJlbnRfcmF0ZSwgcmF0ZSksCisrCQkJCSAgMVVMLCAodW5zaWduZWQg bG9uZyljbGstPm1heF9kaXYpOworKworKwlqaDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBf Q0xLX0RJVl9NQVNLLCBkaXYpOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHVuc2lnbmVk IGxvbmcgamg3MTAwX2Nsa19mcmFjX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAorKwkJ CQkJCSB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQorK3sKKysJc3RydWN0IGpoNzEwMF9jbGsg KmNsayA9IGpoNzEwMF9jbGtfZnJvbShodyk7CisrCXUzMiByZWcgPSBqaDcxMDBfY2xrX3JlZ19n ZXQoY2xrKTsKKysJdW5zaWduZWQgbG9uZyBkaXYxMDAgPSAxMDAgKiAocmVnICYgSkg3MTAwX0NM S19JTlRfTUFTSykgKworKwkJCSAgICAgICAoKHJlZyAmIEpINzEwMF9DTEtfRlJBQ19NQVNLKSA+ PiBKSDcxMDBfQ0xLX0ZSQUNfU0hJRlQpOworKworKwlyZXR1cm4gKGRpdjEwMCA+PSBKSDcxMDBf Q0xLX0ZSQUNfTUlOKSA/IDEwMCAqIHBhcmVudF9yYXRlIC8gZGl2MTAwIDogMDsKKyt9CisrCisr c3RhdGljIGludCBqaDcxMDBfY2xrX2ZyYWNfZGV0ZXJtaW5lX3JhdGUoc3RydWN0IGNsa19odyAq aHcsCisrCQkJCQkgIHN0cnVjdCBjbGtfcmF0ZV9yZXF1ZXN0ICpyZXEpCisreworKwl1bnNpZ25l ZCBsb25nIHBhcmVudDEwMCA9IDEwMCAqIHJlcS0+YmVzdF9wYXJlbnRfcmF0ZTsKKysJdW5zaWdu ZWQgbG9uZyByYXRlID0gY2xhbXAocmVxLT5yYXRlLCByZXEtPm1pbl9yYXRlLCByZXEtPm1heF9y YXRlKTsKKysJdW5zaWduZWQgbG9uZyBkaXYxMDAgPSBjbGFtcChESVZfUk9VTkRfQ0xPU0VTVChw YXJlbnQxMDAsIHJhdGUpLAorKwkJCQkgICAgIEpINzEwMF9DTEtfRlJBQ19NSU4sIEpINzEwMF9D TEtfRlJBQ19NQVgpOworKwl1bnNpZ25lZCBsb25nIHJlc3VsdCA9IHBhcmVudDEwMCAvIGRpdjEw MDsKKysKKysJLyogY2xhbXAgdGhlIHJlc3VsdCBhcyBpbiBqaDcxMDBfY2xrX2RldGVybWluZV9y YXRlKCkgYWJvdmUgKi8KKysJaWYgKHJlc3VsdCA+IHJlcS0+bWF4X3JhdGUgJiYgZGl2MTAwIDwg Skg3MTAwX0NMS19GUkFDX01BWCkKKysJCXJlc3VsdCA9IHBhcmVudDEwMCAvIChkaXYxMDAgKyAx KTsKKysJaWYgKHJlc3VsdCA8IHJlcS0+bWluX3JhdGUgJiYgZGl2MTAwID4gSkg3MTAwX0NMS19G UkFDX01JTikKKysJCXJlc3VsdCA9IHBhcmVudDEwMCAvIChkaXYxMDAgLSAxKTsKKysKKysJcmVx LT5yYXRlID0gcmVzdWx0OworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBf Y2xrX2ZyYWNfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsCisrCQkJCSAgICB1bnNpZ25lZCBs b25nIHJhdGUsCisrCQkJCSAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQorK3sKKysJc3Ry dWN0IGpoNzEwMF9jbGsgKmNsayA9IGpoNzEwMF9jbGtfZnJvbShodyk7CisrCXVuc2lnbmVkIGxv bmcgZGl2MTAwID0gY2xhbXAoRElWX1JPVU5EX0NMT1NFU1QoMTAwICogcGFyZW50X3JhdGUsIHJh dGUpLAorKwkJCQkgICAgIEpINzEwMF9DTEtfRlJBQ19NSU4sIEpINzEwMF9DTEtfRlJBQ19NQVgp OworKwl1MzIgdmFsdWUgPSAoKGRpdjEwMCAlIDEwMCkgPDwgSkg3MTAwX0NMS19GUkFDX1NISUZU KSB8IChkaXYxMDAgLyAxMDApOworKworKwlqaDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBf Q0xLX0RJVl9NQVNLLCB2YWx1ZSk7CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgdTggamg3 MTAwX2Nsa19nZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3KQorK3sKKysJc3RydWN0IGpoNzEw MF9jbGsgKmNsayA9IGpoNzEwMF9jbGtfZnJvbShodyk7CisrCXUzMiB2YWx1ZSA9IGpoNzEwMF9j bGtfcmVnX2dldChjbGspOworKworKwlyZXR1cm4gKHZhbHVlICYgSkg3MTAwX0NMS19NVVhfTUFT SykgPj4gSkg3MTAwX0NMS19NVVhfU0hJRlQ7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTAwX2Ns a19zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3LCB1OCBpbmRleCkKKyt7CisrCXN0cnVjdCBq aDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworKwl1MzIgdmFsdWUgPSAodTMy KWluZGV4IDw8IEpINzEwMF9DTEtfTVVYX1NISUZUOworKworKwlqaDcxMDBfY2xrX3JlZ19ybXco Y2xrLCBKSDcxMDBfQ0xLX01VWF9NQVNLLCB2YWx1ZSk7CisrCXJldHVybiAwOworK30KKysKKytz dGF0aWMgaW50IGpoNzEwMF9jbGtfbXV4X2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3 LAorKwkJCQkJIHN0cnVjdCBjbGtfcmF0ZV9yZXF1ZXN0ICpyZXEpCisreworKwlyZXR1cm4gY2xr X211eF9kZXRlcm1pbmVfcmF0ZV9mbGFncyhodywgcmVxLCAwKTsKKyt9CisrCisrc3RhdGljIGlu dCBqaDcxMDBfY2xrX2dldF9waGFzZShzdHJ1Y3QgY2xrX2h3ICpodykKKyt7CisrCXN0cnVjdCBq aDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworKwl1MzIgdmFsdWUgPSBqaDcx MDBfY2xrX3JlZ19nZXQoY2xrKTsKKysKKysJcmV0dXJuICh2YWx1ZSAmIEpINzEwMF9DTEtfSU5W RVJUKSA/IDE4MCA6IDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTAwX2Nsa19zZXRfcGhhc2Uo c3RydWN0IGNsa19odyAqaHcsIGludCBkZWdyZWVzKQorK3sKKysJc3RydWN0IGpoNzEwMF9jbGsg KmNsayA9IGpoNzEwMF9jbGtfZnJvbShodyk7CisrCXUzMiB2YWx1ZTsKKysKKysJaWYgKGRlZ3Jl ZXMgPT0gMCkKKysJCXZhbHVlID0gMDsKKysJZWxzZSBpZiAoZGVncmVlcyA9PSAxODApCisrCQl2 YWx1ZSA9IEpINzEwMF9DTEtfSU5WRVJUOworKwllbHNlCisrCQlyZXR1cm4gLUVJTlZBTDsKKysK KysJamg3MTAwX2Nsa19yZWdfcm13KGNsaywgSkg3MTAwX0NMS19JTlZFUlQsIHZhbHVlKTsKKysJ cmV0dXJuIDA7CisrfQorKworKyNpZmRlZiBDT05GSUdfREVCVUdfRlMKKytzdGF0aWMgdm9pZCBq aDcxMDBfY2xrX2RlYnVnX2luaXQoc3RydWN0IGNsa19odyAqaHcsIHN0cnVjdCBkZW50cnkgKmRl bnRyeSkKKyt7CisrCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVidWdmc19yZWczMiBqaDcxMDBfY2xr X3JlZyA9IHsKKysJCS5uYW1lID0gIkNUUkwiLAorKwkJLm9mZnNldCA9IDAsCisrCX07CisrCXN0 cnVjdCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworKwlzdHJ1Y3Qgamg3 MTAwX2Nsa19wcml2ICpwcml2ID0gamg3MTAwX3ByaXZfZnJvbShjbGspOworKwlzdHJ1Y3QgZGVi dWdmc19yZWdzZXQzMiAqcmVnc2V0OworKworKwlyZWdzZXQgPSBkZXZtX2t6YWxsb2MocHJpdi0+ ZGV2LCBzaXplb2YoKnJlZ3NldCksIEdGUF9LRVJORUwpOworKwlpZiAoIXJlZ3NldCkKKysJCXJl dHVybjsKKysKKysJcmVnc2V0LT5yZWdzID0gJmpoNzEwMF9jbGtfcmVnOworKwlyZWdzZXQtPm5y ZWdzID0gMTsKKysJcmVnc2V0LT5iYXNlID0gcHJpdi0+YmFzZSArIDQgKiBjbGstPmlkeDsKKysK KysJZGVidWdmc19jcmVhdGVfcmVnc2V0MzIoInJlZ2lzdGVycyIsIDA0MDAsIGRlbnRyeSwgcmVn c2V0KTsKKyt9CisrI2Vsc2UKKysjZGVmaW5lIGpoNzEwMF9jbGtfZGVidWdfaW5pdCBOVUxMCisr I2VuZGlmCisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEwMF9jbGtfZ2F0ZV9v cHMgPSB7CisrCS5lbmFibGUgPSBqaDcxMDBfY2xrX2VuYWJsZSwKKysJLmRpc2FibGUgPSBqaDcx MDBfY2xrX2Rpc2FibGUsCisrCS5pc19lbmFibGVkID0gamg3MTAwX2Nsa19pc19lbmFibGVkLAor KwkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5pdCwKKyt9OworKworK3N0YXRpYyBj b25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMDBfY2xrX2Rpdl9vcHMgPSB7CisrCS5yZWNhbGNfcmF0 ZSA9IGpoNzEwMF9jbGtfcmVjYWxjX3JhdGUsCisrCS5kZXRlcm1pbmVfcmF0ZSA9IGpoNzEwMF9j bGtfZGV0ZXJtaW5lX3JhdGUsCisrCS5zZXRfcmF0ZSA9IGpoNzEwMF9jbGtfc2V0X3JhdGUsCisr CS5kZWJ1Z19pbml0ID0gamg3MTAwX2Nsa19kZWJ1Z19pbml0LAorK307CisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEwMF9jbGtfZmRpdl9vcHMgPSB7CisrCS5yZWNhbGNfcmF0 ZSA9IGpoNzEwMF9jbGtfZnJhY19yZWNhbGNfcmF0ZSwKKysJLmRldGVybWluZV9yYXRlID0gamg3 MTAwX2Nsa19mcmFjX2RldGVybWluZV9yYXRlLAorKwkuc2V0X3JhdGUgPSBqaDcxMDBfY2xrX2Zy YWNfc2V0X3JhdGUsCisrCS5kZWJ1Z19pbml0ID0gamg3MTAwX2Nsa19kZWJ1Z19pbml0LAorK307 CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEwMF9jbGtfZ2Rpdl9vcHMgPSB7 CisrCS5lbmFibGUgPSBqaDcxMDBfY2xrX2VuYWJsZSwKKysJLmRpc2FibGUgPSBqaDcxMDBfY2xr X2Rpc2FibGUsCisrCS5pc19lbmFibGVkID0gamg3MTAwX2Nsa19pc19lbmFibGVkLAorKwkucmVj YWxjX3JhdGUgPSBqaDcxMDBfY2xrX3JlY2FsY19yYXRlLAorKwkuZGV0ZXJtaW5lX3JhdGUgPSBq aDcxMDBfY2xrX2RldGVybWluZV9yYXRlLAorKwkuc2V0X3JhdGUgPSBqaDcxMDBfY2xrX3NldF9y YXRlLAorKwkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5pdCwKKyt9OworKworK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMDBfY2xrX211eF9vcHMgPSB7CisrCS5kZXRl cm1pbmVfcmF0ZSA9IGpoNzEwMF9jbGtfbXV4X2RldGVybWluZV9yYXRlLAorKwkuc2V0X3BhcmVu dCA9IGpoNzEwMF9jbGtfc2V0X3BhcmVudCwKKysJLmdldF9wYXJlbnQgPSBqaDcxMDBfY2xrX2dl dF9wYXJlbnQsCisrCS5kZWJ1Z19pbml0ID0gamg3MTAwX2Nsa19kZWJ1Z19pbml0LAorK307Cisr Cisrc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEwMF9jbGtfZ211eF9vcHMgPSB7Cisr CS5lbmFibGUgPSBqaDcxMDBfY2xrX2VuYWJsZSwKKysJLmRpc2FibGUgPSBqaDcxMDBfY2xrX2Rp c2FibGUsCisrCS5pc19lbmFibGVkID0gamg3MTAwX2Nsa19pc19lbmFibGVkLAorKwkuZGV0ZXJt aW5lX3JhdGUgPSBqaDcxMDBfY2xrX211eF9kZXRlcm1pbmVfcmF0ZSwKKysJLnNldF9wYXJlbnQg PSBqaDcxMDBfY2xrX3NldF9wYXJlbnQsCisrCS5nZXRfcGFyZW50ID0gamg3MTAwX2Nsa19nZXRf cGFyZW50LAorKwkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5pdCwKKyt9OworKwor K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMDBfY2xrX21kaXZfb3BzID0geworKwku cmVjYWxjX3JhdGUgPSBqaDcxMDBfY2xrX3JlY2FsY19yYXRlLAorKwkuZGV0ZXJtaW5lX3JhdGUg PSBqaDcxMDBfY2xrX2RldGVybWluZV9yYXRlLAorKwkuZ2V0X3BhcmVudCA9IGpoNzEwMF9jbGtf Z2V0X3BhcmVudCwKKysJLnNldF9wYXJlbnQgPSBqaDcxMDBfY2xrX3NldF9wYXJlbnQsCisrCS5z ZXRfcmF0ZSA9IGpoNzEwMF9jbGtfc2V0X3JhdGUsCisrCS5kZWJ1Z19pbml0ID0gamg3MTAwX2Ns a19kZWJ1Z19pbml0LAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEw MF9jbGtfZ21kX29wcyA9IHsKKysJLmVuYWJsZSA9IGpoNzEwMF9jbGtfZW5hYmxlLAorKwkuZGlz YWJsZSA9IGpoNzEwMF9jbGtfZGlzYWJsZSwKKysJLmlzX2VuYWJsZWQgPSBqaDcxMDBfY2xrX2lz X2VuYWJsZWQsCisrCS5yZWNhbGNfcmF0ZSA9IGpoNzEwMF9jbGtfcmVjYWxjX3JhdGUsCisrCS5k ZXRlcm1pbmVfcmF0ZSA9IGpoNzEwMF9jbGtfZGV0ZXJtaW5lX3JhdGUsCisrCS5nZXRfcGFyZW50 ID0gamg3MTAwX2Nsa19nZXRfcGFyZW50LAorKwkuc2V0X3BhcmVudCA9IGpoNzEwMF9jbGtfc2V0 X3BhcmVudCwKKysJLnNldF9yYXRlID0gamg3MTAwX2Nsa19zZXRfcmF0ZSwKKysJLmRlYnVnX2lu aXQgPSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0 IGNsa19vcHMgamg3MTAwX2Nsa19pbnZfb3BzID0geworKwkuZ2V0X3BoYXNlID0gamg3MTAwX2Ns a19nZXRfcGhhc2UsCisrCS5zZXRfcGhhc2UgPSBqaDcxMDBfY2xrX3NldF9waGFzZSwKKysJLmRl YnVnX2luaXQgPSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCisrfTsKKysKKytjb25zdCBzdHJ1Y3Qg Y2xrX29wcyAqc3RhcmZpdmVfamg3MTAwX2Nsa19vcHModTMyIG1heCkKKyt7CisrCWlmIChtYXgg JiBKSDcxMDBfQ0xLX0RJVl9NQVNLKSB7CisrCQlpZiAobWF4ICYgSkg3MTAwX0NMS19NVVhfTUFT SykgeworKwkJCWlmIChtYXggJiBKSDcxMDBfQ0xLX0VOQUJMRSkKKysJCQkJcmV0dXJuICZqaDcx MDBfY2xrX2dtZF9vcHM7CisrCQkJcmV0dXJuICZqaDcxMDBfY2xrX21kaXZfb3BzOworKwkJfQor KwkJaWYgKG1heCAmIEpINzEwMF9DTEtfRU5BQkxFKQorKwkJCXJldHVybiAmamg3MTAwX2Nsa19n ZGl2X29wczsKKysJCWlmIChtYXggPT0gSkg3MTAwX0NMS19GUkFDX01BWCkKKysJCQlyZXR1cm4g JmpoNzEwMF9jbGtfZmRpdl9vcHM7CisrCQlyZXR1cm4gJmpoNzEwMF9jbGtfZGl2X29wczsKKysJ fQorKworKwlpZiAobWF4ICYgSkg3MTAwX0NMS19NVVhfTUFTSykgeworKwkJaWYgKG1heCAmIEpI NzEwMF9DTEtfRU5BQkxFKQorKwkJCXJldHVybiAmamg3MTAwX2Nsa19nbXV4X29wczsKKysJCXJl dHVybiAmamg3MTAwX2Nsa19tdXhfb3BzOworKwl9CisrCisrCWlmIChtYXggJiBKSDcxMDBfQ0xL X0VOQUJMRSkKKysJCXJldHVybiAmamg3MTAwX2Nsa19nYXRlX29wczsKKysKKysJcmV0dXJuICZq aDcxMDBfY2xrX2ludl9vcHM7CisrfQorK0VYUE9SVF9TWU1CT0xfR1BMKHN0YXJmaXZlX2poNzEw MF9jbGtfb3BzKTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDA1LWNsay1zdGFyZml2ZS1SZW5hbWUtY2xrLXN0YXJmaXZlLWpoNzEwMC5oLXRv LWNsay1zdGEucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwNS1jbGstc3RhcmZp dmUtUmVuYW1lLWNsay1zdGFyZml2ZS1qaDcxMDAuaC10by1jbGstc3RhLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjAwNjE3MmI4YzA3OGYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwNS1jbGstc3RhcmZpdmUtUmVu YW1lLWNsay1zdGFyZml2ZS1qaDcxMDAuaC10by1jbGstc3RhLnBhdGNoCkBAIC0wLDAgKzEsNjcg QEAKK0Zyb20gOWQ4MDQwYTIyYTJiMjNmMDQwY2ZlZTY3MDEzM2I5NTdhYTVkYTNlNyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNt aWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MTcgKzA4MDAKK1N1YmplY3Q6IFtQ QVRDSCAwNS84NF0gY2xrOiBzdGFyZml2ZTogUmVuYW1lIGNsay1zdGFyZml2ZS1qaDcxMDAuaCB0 bworIGNsay1zdGFyZml2ZS1qaDcxeDAuaAorCitSZW5hbWUgY2xrLXN0YXJmaXZlLWpoNzEwMC5o IHRvIGNsay1zdGFyZml2ZS1qaDcxeDAuaCBmb3IgbWFraW5nCit0aGUgY29kZSB0byBiZSBjb21t b24uCisKK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJjaWFpIDx0b21tLm1lcmNpYWlAZ21haWwuY29t PgorUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20+ CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgor U2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CistLS0K KyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLWF1ZGlvLmMgICAgICAg ICAgICAgICAgfCAyICstCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEw MC5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQorIGRyaXZlcnMvY2xrL3N0YXJmaXZlL2Ns ay1zdGFyZml2ZS1qaDcxeDAuYyAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KKyAuLi4vc3Rh cmZpdmUve2Nsay1zdGFyZml2ZS1qaDcxMDAuaCA9PiBjbGstc3RhcmZpdmUtamg3MXgwLmh9ICAg fCAwCisgNCBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisg cmVuYW1lIGRyaXZlcnMvY2xrL3N0YXJmaXZlL3tjbGstc3RhcmZpdmUtamg3MTAwLmggPT4gY2xr LXN0YXJmaXZlLWpoNzF4MC5ofSAoMTAwJSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAtYXVkaW8uYyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZl L2Nsay1zdGFyZml2ZS1qaDcxMDAtYXVkaW8uYworaW5kZXggODQ3M2E2NWUyMTliLi5kYjBkOTUz M2JkOWMgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3 MTAwLWF1ZGlvLmMKKysrKyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcx MDAtYXVkaW8uYworQEAgLTE2LDcgKzE2LDcgQEAKKyAKKyAjaW5jbHVkZSA8ZHQtYmluZGluZ3Mv Y2xvY2svc3RhcmZpdmUtamg3MTAwLWF1ZGlvLmg+CisgCistI2luY2x1ZGUgImNsay1zdGFyZml2 ZS1qaDcxMDAuaCIKKysjaW5jbHVkZSAiY2xrLXN0YXJmaXZlLWpoNzF4MC5oIgorIAorIC8qIGV4 dGVybmFsIGNsb2NrcyAqLworICNkZWZpbmUgSkg3MTAwX0FVRENMS19BVURJT19TUkMJCQkoSkg3 MTAwX0FVRENMS19FTkQgKyAwKQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Ns ay1zdGFyZml2ZS1qaDcxMDAuYyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1q aDcxMDAuYworaW5kZXggZWVhNTJmMTZhZjBkLi42NjJlYjhmNzRjMTIgMTAwNjQ0CistLS0gYS9k cml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLmMKKysrKyBiL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAuYworQEAgLTE1LDcgKzE1LDcgQEAKKyAK KyAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUtamg3MTAwLmg+CisgCistI2lu Y2x1ZGUgImNsay1zdGFyZml2ZS1qaDcxMDAuaCIKKysjaW5jbHVkZSAiY2xrLXN0YXJmaXZlLWpo NzF4MC5oIgorIAorIC8qIGV4dGVybmFsIGNsb2NrcyAqLworICNkZWZpbmUgSkg3MTAwX0NMS19P U0NfU1lTCQkoSkg3MTAwX0NMS19FTkQgKyAwKQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxeDAuYyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1z dGFyZml2ZS1qaDcxeDAuYworaW5kZXggNmMwN2I2MWI0YTMyLi4wMTQwYmRmMjdhMDEgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MXgwLmMKKysrKyBi L2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxeDAuYworQEAgLTEwLDcgKzEw LDcgQEAKKyAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lvLmg+ CisgCistI2luY2x1ZGUgImNsay1zdGFyZml2ZS1qaDcxMDAuaCIKKysjaW5jbHVkZSAiY2xrLXN0 YXJmaXZlLWpoNzF4MC5oIgorIAorIHN0YXRpYyBzdHJ1Y3Qgamg3MTAwX2NsayAqamg3MTAwX2Ns a19mcm9tKHN0cnVjdCBjbGtfaHcgKmh3KQorIHsKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9z dGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLmggYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGst c3RhcmZpdmUtamg3MXgwLmgKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gZHJp dmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEwMC5oCityZW5hbWUgdG8gZHJpdmVy cy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzF4MC5oCistLSAKKzIuNDAuMQorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAwNi1jbGstc3RhcmZpdmUtUmVuYW1l LWpoNzEwMC10by1qaDcxeDAtZm9yLXRoZS1jb21tb24tLnBhdGNoIGIvc3JjcGtncy9saW51eDYu My9wYXRjaGVzLzAwMDYtY2xrLXN0YXJmaXZlLVJlbmFtZS1qaDcxMDAtdG8tamg3MXgwLWZvci10 aGUtY29tbW9uLS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw Li5iNmRlYjcyYWQ4YWZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRj aGVzLzAwMDYtY2xrLXN0YXJmaXZlLVJlbmFtZS1qaDcxMDAtdG8tamg3MXgwLWZvci10aGUtY29t bW9uLS5wYXRjaApAQCAtMCwwICsxLDEyNTggQEAKK0Zyb20gNTA5OTliMzRkOTU2MGFhOTU5YTdi ZTM4NmExNzJjM2Q4YjhlYjk4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwg UmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMg MTk6MTk6MTggKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAwNi84NF0gY2xrOiBzdGFyZml2ZTogUmVu YW1lICJqaDcxMDAiIHRvICJqaDcxeDAiIGZvciB0aGUKKyBjb21tb24gY29kZQorCitSZW5hbWUg c29tZSB2YXJpYWJsZXMgZnJvbSAiamg3MTAwIiBvciAiSkg3MTAwIiB0byAiamg3MXgwIgorb3Ig IkpINzFYMCIuCisKK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJjaWFpIDx0b21tLm1lcmNpYWlAZ21h aWwuY29tPgorUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3IuZG9vbGV5QG1pY3JvY2hp cC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWls LmRrPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+ CistLS0KKyAuLi4vY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAtYXVkaW8uYyAgfCAg NzIgKystLQorIGRyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAuYyAgICB8 IDM4OSArKysrKysrKystLS0tLS0tLS0KKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZp dmUtamg3MXgwLmMgICAgfCAyODIgKysrKysrLS0tLS0tLQorIGRyaXZlcnMvY2xrL3N0YXJmaXZl L2Nsay1zdGFyZml2ZS1qaDcxeDAuaCAgICB8ICA4MSArKy0tCisgNCBmaWxlcyBjaGFuZ2VkLCA0 MTggaW5zZXJ0aW9ucygrKSwgNDA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEwMC1hdWRpby5jIGIvZHJpdmVycy9jbGsv c3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzEwMC1hdWRpby5jCitpbmRleCBkYjBkOTUzM2JkOWMu LjAyYWVmYjcyNjRmOCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFy Zml2ZS1qaDcxMDAtYXVkaW8uYworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJm aXZlLWpoNzEwMC1hdWRpby5jCitAQCAtMjgsNjYgKzI4LDY2IEBACisgI2RlZmluZSBKSDcxMDBf QVVEQ0xLX0kyU0RBQ19MUkNMS19JT1BBRAkoSkg3MTAwX0FVRENMS19FTkQgKyA2KQorICNkZWZp bmUgSkg3MTAwX0FVRENMS19WQURfSU5UTUVNICAgICAgICAgICAgICAgIChKSDcxMDBfQVVEQ0xL X0VORCArIDcpCisgCistc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxMDBfY2xrX2RhdGEgamg3MTAw X2F1ZGNsa19kYXRhW10gPSB7CistCUpINzEwMF9fR01EKEpINzEwMF9BVURDTEtfQURDX01DTEss ICJhZGNfbWNsayIsIDAsIDE1LCAyLAorK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MXgwX2Nsa19k YXRhIGpoNzEwMF9hdWRjbGtfZGF0YVtdID0geworKwlKSDcxWDBfX0dNRChKSDcxMDBfQVVEQ0xL X0FEQ19NQ0xLLCAiYWRjX21jbGsiLCAwLCAxNSwgMiwKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0FV RElPX1NSQywKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0FVRElPXzEyMjg4KSwKKy0JSkg3MTAwX19H TUQoSkg3MTAwX0FVRENMS19JMlMxX01DTEssICJpMnMxX21jbGsiLCAwLCAxNSwgMiwKKysJSkg3 MVgwX19HTUQoSkg3MTAwX0FVRENMS19JMlMxX01DTEssICJpMnMxX21jbGsiLCAwLCAxNSwgMiwK KyAJCSAgICBKSDcxMDBfQVVEQ0xLX0FVRElPX1NSQywKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0FV RElPXzEyMjg4KSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0FVRENMS19JMlNBRENfQVBCLCAiaTJz YWRjX2FwYiIsIDAsIEpINzEwMF9BVURDTEtfQVBCMF9CVVMpLAorLQlKSDcxMDBfTURJVihKSDcx MDBfQVVEQ0xLX0kyU0FEQ19CQ0xLLCAiaTJzYWRjX2JjbGsiLCAzMSwgMiwKKysJSkg3MVgwX0dB VEUoSkg3MTAwX0FVRENMS19JMlNBRENfQVBCLCAiaTJzYWRjX2FwYiIsIDAsIEpINzEwMF9BVURD TEtfQVBCMF9CVVMpLAorKwlKSDcxWDBfTURJVihKSDcxMDBfQVVEQ0xLX0kyU0FEQ19CQ0xLLCAi aTJzYWRjX2JjbGsiLCAzMSwgMiwKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0FEQ19NQ0xLLAorIAkJ ICAgIEpINzEwMF9BVURDTEtfSTJTQURDX0JDTEtfSU9QQUQpLAorLQlKSDcxMDBfX0lOVihKSDcx MDBfQVVEQ0xLX0kyU0FEQ19CQ0xLX04sICJpMnNhZGNfYmNsa19uIiwgSkg3MTAwX0FVRENMS19J MlNBRENfQkNMSyksCistCUpINzEwMF9NRElWKEpINzEwMF9BVURDTEtfSTJTQURDX0xSQ0xLLCAi aTJzYWRjX2xyY2xrIiwgNjMsIDMsCisrCUpINzFYMF9fSU5WKEpINzEwMF9BVURDTEtfSTJTQURD X0JDTEtfTiwgImkyc2FkY19iY2xrX24iLCBKSDcxMDBfQVVEQ0xLX0kyU0FEQ19CQ0xLKSwKKysJ Skg3MVgwX01ESVYoSkg3MTAwX0FVRENMS19JMlNBRENfTFJDTEssICJpMnNhZGNfbHJjbGsiLCA2 MywgMywKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0kyU0FEQ19CQ0xLX04sCisgCQkgICAgSkg3MTAw X0FVRENMS19JMlNBRENfTFJDTEtfSU9QQUQsCisgCQkgICAgSkg3MTAwX0FVRENMS19JMlNBRENf QkNMSyksCistCUpINzEwMF9HQVRFKEpINzEwMF9BVURDTEtfUERNX0FQQiwgInBkbV9hcGIiLCAw LCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVTKSwKKy0JSkg3MTAwX19HTUQoSkg3MTAwX0FVRENMS19Q RE1fTUNMSywgInBkbV9tY2xrIiwgMCwgMTUsIDIsCisrCUpINzFYMF9HQVRFKEpINzEwMF9BVURD TEtfUERNX0FQQiwgInBkbV9hcGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVTKSwKKysJSkg3 MVgwX19HTUQoSkg3MTAwX0FVRENMS19QRE1fTUNMSywgInBkbV9tY2xrIiwgMCwgMTUsIDIsCisg CQkgICAgSkg3MTAwX0FVRENMS19BVURJT19TUkMsCisgCQkgICAgSkg3MTAwX0FVRENMS19BVURJ T18xMjI4OCksCistCUpINzEwMF9HQVRFKEpINzEwMF9BVURDTEtfSTJTVkFEX0FQQiwgImkyc3Zh ZF9hcGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVTKSwKKy0JSkg3MTAwX19HTUQoSkg3MTAw X0FVRENMS19TUERJRiwgInNwZGlmIiwgMCwgMTUsIDIsCisrCUpINzFYMF9HQVRFKEpINzEwMF9B VURDTEtfSTJTVkFEX0FQQiwgImkyc3ZhZF9hcGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVT KSwKKysJSkg3MVgwX19HTUQoSkg3MTAwX0FVRENMS19TUERJRiwgInNwZGlmIiwgMCwgMTUsIDIs CisgCQkgICAgSkg3MTAwX0FVRENMS19BVURJT19TUkMsCisgCQkgICAgSkg3MTAwX0FVRENMS19B VURJT18xMjI4OCksCistCUpINzEwMF9HQVRFKEpINzEwMF9BVURDTEtfU1BESUZfQVBCLCAic3Bk aWZfYXBiIiwgMCwgSkg3MTAwX0FVRENMS19BUEIwX0JVUyksCistCUpINzEwMF9HQVRFKEpINzEw MF9BVURDTEtfUFdNREFDX0FQQiwgInB3bWRhY19hcGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0FQQjBf QlVTKSwKKy0JSkg3MTAwX19HTUQoSkg3MTAwX0FVRENMS19EQUNfTUNMSywgImRhY19tY2xrIiwg MCwgMTUsIDIsCisrCUpINzFYMF9HQVRFKEpINzEwMF9BVURDTEtfU1BESUZfQVBCLCAic3BkaWZf YXBiIiwgMCwgSkg3MTAwX0FVRENMS19BUEIwX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9B VURDTEtfUFdNREFDX0FQQiwgInB3bWRhY19hcGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVT KSwKKysJSkg3MVgwX19HTUQoSkg3MTAwX0FVRENMS19EQUNfTUNMSywgImRhY19tY2xrIiwgMCwg MTUsIDIsCisgCQkgICAgSkg3MTAwX0FVRENMS19BVURJT19TUkMsCisgCQkgICAgSkg3MTAwX0FV RENMS19BVURJT18xMjI4OCksCistCUpINzEwMF9HQVRFKEpINzEwMF9BVURDTEtfSTJTREFDX0FQ QiwgImkyc2RhY19hcGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVTKSwKKy0JSkg3MTAwX01E SVYoSkg3MTAwX0FVRENMS19JMlNEQUNfQkNMSywgImkyc2RhY19iY2xrIiwgMzEsIDIsCisrCUpI NzFYMF9HQVRFKEpINzEwMF9BVURDTEtfSTJTREFDX0FQQiwgImkyc2RhY19hcGIiLCAwLCBKSDcx MDBfQVVEQ0xLX0FQQjBfQlVTKSwKKysJSkg3MVgwX01ESVYoSkg3MTAwX0FVRENMS19JMlNEQUNf QkNMSywgImkyc2RhY19iY2xrIiwgMzEsIDIsCisgCQkgICAgSkg3MTAwX0FVRENMS19EQUNfTUNM SywKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0kyU0RBQ19CQ0xLX0lPUEFEKSwKKy0JSkg3MTAwX19J TlYoSkg3MTAwX0FVRENMS19JMlNEQUNfQkNMS19OLCAiaTJzZGFjX2JjbGtfbiIsIEpINzEwMF9B VURDTEtfSTJTREFDX0JDTEspLAorLQlKSDcxMDBfTURJVihKSDcxMDBfQVVEQ0xLX0kyU0RBQ19M UkNMSywgImkyc2RhY19scmNsayIsIDMxLCAyLAorKwlKSDcxWDBfX0lOVihKSDcxMDBfQVVEQ0xL X0kyU0RBQ19CQ0xLX04sICJpMnNkYWNfYmNsa19uIiwgSkg3MTAwX0FVRENMS19JMlNEQUNfQkNM SyksCisrCUpINzFYMF9NRElWKEpINzEwMF9BVURDTEtfSTJTREFDX0xSQ0xLLCAiaTJzZGFjX2xy Y2xrIiwgMzEsIDIsCisgCQkgICAgSkg3MTAwX0FVRENMS19JMlMxX01DTEssCisgCQkgICAgSkg3 MTAwX0FVRENMS19JMlNEQUNfQkNMS19JT1BBRCksCistCUpINzEwMF9HQVRFKEpINzEwMF9BVURD TEtfSTJTMV9BUEIsICJpMnMxX2FwYiIsIDAsIEpINzEwMF9BVURDTEtfQVBCMF9CVVMpLAorLQlK SDcxMDBfTURJVihKSDcxMDBfQVVEQ0xLX0kyUzFfQkNMSywgImkyczFfYmNsayIsIDMxLCAyLAor KwlKSDcxWDBfR0FURShKSDcxMDBfQVVEQ0xLX0kyUzFfQVBCLCAiaTJzMV9hcGIiLCAwLCBKSDcx MDBfQVVEQ0xLX0FQQjBfQlVTKSwKKysJSkg3MVgwX01ESVYoSkg3MTAwX0FVRENMS19JMlMxX0JD TEssICJpMnMxX2JjbGsiLCAzMSwgMiwKKyAJCSAgICBKSDcxMDBfQVVEQ0xLX0kyUzFfTUNMSywK KyAJCSAgICBKSDcxMDBfQVVEQ0xLX0kyU0RBQ19CQ0xLX0lPUEFEKSwKKy0JSkg3MTAwX19JTlYo Skg3MTAwX0FVRENMS19JMlMxX0JDTEtfTiwgImkyczFfYmNsa19uIiwgSkg3MTAwX0FVRENMS19J MlMxX0JDTEspLAorLQlKSDcxMDBfTURJVihKSDcxMDBfQVVEQ0xLX0kyUzFfTFJDTEssICJpMnMx X2xyY2xrIiwgNjMsIDMsCisrCUpINzFYMF9fSU5WKEpINzEwMF9BVURDTEtfSTJTMV9CQ0xLX04s ICJpMnMxX2JjbGtfbiIsIEpINzEwMF9BVURDTEtfSTJTMV9CQ0xLKSwKKysJSkg3MVgwX01ESVYo Skg3MTAwX0FVRENMS19JMlMxX0xSQ0xLLCAiaTJzMV9scmNsayIsIDYzLCAzLAorIAkJICAgIEpI NzEwMF9BVURDTEtfSTJTMV9CQ0xLX04sCisgCQkgICAgSkg3MTAwX0FVRENMS19JMlNEQUNfTFJD TEtfSU9QQUQpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQVVEQ0xLX0kyU0RBQzE2S19BUEIsICJp MnMxZGFjMTZrX2FwYiIsIDAsIEpINzEwMF9BVURDTEtfQVBCMF9CVVMpLAorLQlKSDcxMDBfX0RJ VihKSDcxMDBfQVVEQ0xLX0FQQjBfQlVTLCAiYXBiMF9idXMiLCA4LCBKSDcxMDBfQVVEQ0xLX0RP TTdBSEJfQlVTKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0FVRENMS19ETUExUF9BSEIsICJkbWEx cF9haGIiLCAwLCBKSDcxMDBfQVVEQ0xLX0RPTTdBSEJfQlVTKSwKKy0JSkg3MTAwX0dBVEUoSkg3 MTAwX0FVRENMS19VU0JfQVBCLCAidXNiX2FwYiIsIENMS19JR05PUkVfVU5VU0VELCBKSDcxMDBf QVVEQ0xLX0FQQl9FTiksCistCUpINzEwMF9HRElWKEpINzEwMF9BVURDTEtfVVNCX0xQTSwgInVz Yl9scG0iLCBDTEtfSUdOT1JFX1VOVVNFRCwgNCwgSkg3MTAwX0FVRENMS19VU0JfQVBCKSwKKy0J Skg3MTAwX0dESVYoSkg3MTAwX0FVRENMS19VU0JfU1RCLCAidXNiX3N0YiIsIENMS19JR05PUkVf VU5VU0VELCAzLCBKSDcxMDBfQVVEQ0xLX1VTQl9BUEIpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBf QVVEQ0xLX0FQQl9FTiwgImFwYl9lbiIsIDgsIEpINzEwMF9BVURDTEtfRE9NN0FIQl9CVVMpLAor LQlKSDcxMDBfX01VWChKSDcxMDBfQVVEQ0xLX1ZBRF9NRU0sICJ2YWRfbWVtIiwgMiwKKysJSkg3 MVgwX0dBVEUoSkg3MTAwX0FVRENMS19JMlNEQUMxNktfQVBCLCAiaTJzMWRhYzE2a19hcGIiLCAw LCBKSDcxMDBfQVVEQ0xLX0FQQjBfQlVTKSwKKysJSkg3MVgwX19ESVYoSkg3MTAwX0FVRENMS19B UEIwX0JVUywgImFwYjBfYnVzIiwgOCwgSkg3MTAwX0FVRENMS19ET003QUhCX0JVUyksCisrCUpI NzFYMF9HQVRFKEpINzEwMF9BVURDTEtfRE1BMVBfQUhCLCAiZG1hMXBfYWhiIiwgMCwgSkg3MTAw X0FVRENMS19ET003QUhCX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9BVURDTEtfVVNCX0FQ QiwgInVzYl9hcGIiLCBDTEtfSUdOT1JFX1VOVVNFRCwgSkg3MTAwX0FVRENMS19BUEJfRU4pLAor KwlKSDcxWDBfR0RJVihKSDcxMDBfQVVEQ0xLX1VTQl9MUE0sICJ1c2JfbHBtIiwgQ0xLX0lHTk9S RV9VTlVTRUQsIDQsIEpINzEwMF9BVURDTEtfVVNCX0FQQiksCisrCUpINzFYMF9HRElWKEpINzEw MF9BVURDTEtfVVNCX1NUQiwgInVzYl9zdGIiLCBDTEtfSUdOT1JFX1VOVVNFRCwgMywgSkg3MTAw X0FVRENMS19VU0JfQVBCKSwKKysJSkg3MVgwX19ESVYoSkg3MTAwX0FVRENMS19BUEJfRU4sICJh cGJfZW4iLCA4LCBKSDcxMDBfQVVEQ0xLX0RPTTdBSEJfQlVTKSwKKysJSkg3MVgwX19NVVgoSkg3 MTAwX0FVRENMS19WQURfTUVNLCAidmFkX21lbSIsIDIsCisgCQkgICAgSkg3MTAwX0FVRENMS19W QURfSU5UTUVNLAorIAkJICAgIEpINzEwMF9BVURDTEtfQVVESU9fMTIyODgpLAorIH07CisgCisg c3RhdGljIHN0cnVjdCBjbGtfaHcgKmpoNzEwMF9hdWRjbGtfZ2V0KHN0cnVjdCBvZl9waGFuZGxl X2FyZ3MgKmNsa3NwZWMsIHZvaWQgKmRhdGEpCisgeworLQlzdHJ1Y3Qgamg3MTAwX2Nsa19wcml2 ICpwcml2ID0gZGF0YTsKKysJc3RydWN0IGpoNzF4MF9jbGtfcHJpdiAqcHJpdiA9IGRhdGE7Cisg CXVuc2lnbmVkIGludCBpZHggPSBjbGtzcGVjLT5hcmdzWzBdOworIAorIAlpZiAoaWR4IDwgSkg3 MTAwX0FVRENMS19FTkQpCitAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19odyAq amg3MTAwX2F1ZGNsa19nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywgdm9pZCAq ZAorIAorIHN0YXRpYyBpbnQgamg3MTAwX2F1ZGNsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGtfcHJpdiAqcHJpdjsKKysJc3RydWN0 IGpoNzF4MF9jbGtfcHJpdiAqcHJpdjsKKyAJdW5zaWduZWQgaW50IGlkeDsKKyAJaW50IHJldDsK KyAKK0BAIC0xMTcsMTIgKzExNywxMiBAQCBzdGF0aWMgaW50IGpoNzEwMF9hdWRjbGtfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyAJCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEg cGFyZW50c1s0XSA9IHt9OworIAkJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdCA9IHsKKyAJCQku bmFtZSA9IGpoNzEwMF9hdWRjbGtfZGF0YVtpZHhdLm5hbWUsCistCQkJLm9wcyA9IHN0YXJmaXZl X2poNzEwMF9jbGtfb3BzKG1heCksCisrCQkJLm9wcyA9IHN0YXJmaXZlX2poNzF4MF9jbGtfb3Bz KG1heCksCisgCQkJLnBhcmVudF9kYXRhID0gcGFyZW50cywKKy0JCQkubnVtX3BhcmVudHMgPSAo KG1heCAmIEpINzEwMF9DTEtfTVVYX01BU0spID4+IEpINzEwMF9DTEtfTVVYX1NISUZUKSArIDEs CisrCQkJLm51bV9wYXJlbnRzID0gKChtYXggJiBKSDcxWDBfQ0xLX01VWF9NQVNLKSA+PiBKSDcx WDBfQ0xLX01VWF9TSElGVCkgKyAxLAorIAkJCS5mbGFncyA9IGpoNzEwMF9hdWRjbGtfZGF0YVtp ZHhdLmZsYWdzLAorIAkJfTsKKy0JCXN0cnVjdCBqaDcxMDBfY2xrICpjbGsgPSAmcHJpdi0+cmVn W2lkeF07CisrCQlzdHJ1Y3Qgamg3MXgwX2NsayAqY2xrID0gJnByaXYtPnJlZ1tpZHhdOworIAkJ dW5zaWduZWQgaW50IGk7CisgCisgCQlmb3IgKGkgPSAwOyBpIDwgaW5pdC5udW1fcGFyZW50czsg aSsrKSB7CitAQCAtMTQwLDcgKzE0MCw3IEBAIHN0YXRpYyBpbnQgamg3MTAwX2F1ZGNsa19wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAorIAkJY2xrLT5ody5pbml0ID0gJmlu aXQ7CisgCQljbGstPmlkeCA9IGlkeDsKKy0JCWNsay0+bWF4X2RpdiA9IG1heCAmIEpINzEwMF9D TEtfRElWX01BU0s7CisrCQljbGstPm1heF9kaXYgPSBtYXggJiBKSDcxWDBfQ0xLX0RJVl9NQVNL OworIAorIAkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIocHJpdi0+ZGV2LCAmY2xrLT5odyk7 CisgCQlpZiAocmV0KQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFy Zml2ZS1qaDcxMDAuYyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAu YworaW5kZXggNjYyZWI4Zjc0YzEyLi42OWNjMTFlYTdlMzMgMTAwNjQ0CistLS0gYS9kcml2ZXJz L2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTAwLmMKKysrKyBiL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMDAuYworQEAgLTIzLDI1MCArMjMsMjUzIEBACisgI2Rl ZmluZSBKSDcxMDBfQ0xLX0dNQUNfUk1JSV9SRUYJKEpINzEwMF9DTEtfRU5EICsgMikKKyAjZGVm aW5lIEpINzEwMF9DTEtfR01BQ19HUl9NSUlfUlgJKEpINzEwMF9DTEtfRU5EICsgMykKKyAKKy1z dGF0aWMgY29uc3Qgc3RydWN0IGpoNzEwMF9jbGtfZGF0YSBqaDcxMDBfY2xrX2RhdGFbXSBfX2lu aXRjb25zdCA9IHsKKy0JSkg3MTAwX19NVVgoSkg3MTAwX0NMS19DUFVOREJVU19ST09ULCAiY3B1 bmRidXNfcm9vdCIsIDQsCisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxeDBfY2xrX2RhdGEgamg3 MTAwX2Nsa19kYXRhW10gX19pbml0Y29uc3QgPSB7CisrCUpINzFYMF9fTVVYKEpINzEwMF9DTEtf Q1BVTkRCVVNfUk9PVCwgImNwdW5kYnVzX3Jvb3QiLCA0LAorIAkJICAgIEpINzEwMF9DTEtfT1ND X1NZUywKKyAJCSAgICBKSDcxMDBfQ0xLX1BMTDBfT1VULAorIAkJICAgIEpINzEwMF9DTEtfUExM MV9PVVQsCisgCQkgICAgSkg3MTAwX0NMS19QTEwyX09VVCksCistCUpINzEwMF9fTVVYKEpINzEw MF9DTEtfRExBX1JPT1QsICJkbGFfcm9vdCIsIDMsCisrCUpINzFYMF9fTVVYKEpINzEwMF9DTEtf RExBX1JPT1QsICJkbGFfcm9vdCIsIDMsCisgCQkgICAgSkg3MTAwX0NMS19PU0NfU1lTLAorIAkJ ICAgIEpINzEwMF9DTEtfUExMMV9PVVQsCisgCQkgICAgSkg3MTAwX0NMS19QTEwyX09VVCksCist CUpINzEwMF9fTVVYKEpINzEwMF9DTEtfRFNQX1JPT1QsICJkc3Bfcm9vdCIsIDQsCisrCUpINzFY MF9fTVVYKEpINzEwMF9DTEtfRFNQX1JPT1QsICJkc3Bfcm9vdCIsIDQsCisgCQkgICAgSkg3MTAw X0NMS19PU0NfU1lTLAorIAkJICAgIEpINzEwMF9DTEtfUExMMF9PVVQsCisgCQkgICAgSkg3MTAw X0NMS19QTEwxX09VVCwKKyAJCSAgICBKSDcxMDBfQ0xLX1BMTDJfT1VUKSwKKy0JSkg3MTAwX19N VVgoSkg3MTAwX0NMS19HTUFDVVNCX1JPT1QsICJnbWFjdXNiX3Jvb3QiLCAzLAorKwlKSDcxWDBf X01VWChKSDcxMDBfQ0xLX0dNQUNVU0JfUk9PVCwgImdtYWN1c2Jfcm9vdCIsIDMsCisgCQkgICAg Skg3MTAwX0NMS19PU0NfU1lTLAorIAkJICAgIEpINzEwMF9DTEtfUExMMF9PVVQsCisgCQkgICAg Skg3MTAwX0NMS19QTEwyX09VVCksCistCUpINzEwMF9fTVVYKEpINzEwMF9DTEtfUEVSSDBfUk9P VCwgInBlcmgwX3Jvb3QiLCAyLAorKwlKSDcxWDBfX01VWChKSDcxMDBfQ0xLX1BFUkgwX1JPT1Qs ICJwZXJoMF9yb290IiwgMiwKKyAJCSAgICBKSDcxMDBfQ0xLX09TQ19TWVMsCisgCQkgICAgSkg3 MTAwX0NMS19QTEwwX09VVCksCistCUpINzEwMF9fTVVYKEpINzEwMF9DTEtfUEVSSDFfUk9PVCwg InBlcmgxX3Jvb3QiLCAyLAorKwlKSDcxWDBfX01VWChKSDcxMDBfQ0xLX1BFUkgxX1JPT1QsICJw ZXJoMV9yb290IiwgMiwKKyAJCSAgICBKSDcxMDBfQ0xLX09TQ19TWVMsCisgCQkgICAgSkg3MTAw X0NMS19QTEwyX09VVCksCistCUpINzEwMF9fTVVYKEpINzEwMF9DTEtfVklOX1JPT1QsICJ2aW5f cm9vdCIsIDMsCisrCUpINzFYMF9fTVVYKEpINzEwMF9DTEtfVklOX1JPT1QsICJ2aW5fcm9vdCIs IDMsCisgCQkgICAgSkg3MTAwX0NMS19PU0NfU1lTLAorIAkJICAgIEpINzEwMF9DTEtfUExMMV9P VVQsCisgCQkgICAgSkg3MTAwX0NMS19QTEwyX09VVCksCistCUpINzEwMF9fTVVYKEpINzEwMF9D TEtfVk9VVF9ST09ULCAidm91dF9yb290IiwgMywKKysJSkg3MVgwX19NVVgoSkg3MTAwX0NMS19W T1VUX1JPT1QsICJ2b3V0X3Jvb3QiLCAzLAorIAkJICAgIEpINzEwMF9DTEtfT1NDX0FVRCwKKyAJ CSAgICBKSDcxMDBfQ0xLX1BMTDBfT1VULAorIAkJICAgIEpINzEwMF9DTEtfUExMMl9PVVQpLAor LQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX0FVRElPX1JPT1QsICJhdWRpb19yb290IiwgMCwgOCwg Skg3MTAwX0NMS19QTEwwX09VVCksCistCUpINzEwMF9fTVVYKEpINzEwMF9DTEtfQ0RFQ0hJRkk0 X1JPT1QsICJjZGVjaGlmaTRfcm9vdCIsIDMsCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfQVVE SU9fUk9PVCwgImF1ZGlvX3Jvb3QiLCAwLCA4LCBKSDcxMDBfQ0xLX1BMTDBfT1VUKSwKKysJSkg3 MVgwX19NVVgoSkg3MTAwX0NMS19DREVDSElGSTRfUk9PVCwgImNkZWNoaWZpNF9yb290IiwgMywK KyAJCSAgICBKSDcxMDBfQ0xLX09TQ19TWVMsCisgCQkgICAgSkg3MTAwX0NMS19QTEwxX09VVCwK KyAJCSAgICBKSDcxMDBfQ0xLX1BMTDJfT1VUKSwKKy0JSkg3MTAwX19NVVgoSkg3MTAwX0NMS19D REVDX1JPT1QsICJjZGVjX3Jvb3QiLCAzLAorKwlKSDcxWDBfX01VWChKSDcxMDBfQ0xLX0NERUNf Uk9PVCwgImNkZWNfcm9vdCIsIDMsCisgCQkgICAgSkg3MTAwX0NMS19PU0NfU1lTLAorIAkJICAg IEpINzEwMF9DTEtfUExMMF9PVVQsCisgCQkgICAgSkg3MTAwX0NMS19QTEwxX09VVCksCistCUpI NzEwMF9fTVVYKEpINzEwMF9DTEtfVk9VVEJVU19ST09ULCAidm91dGJ1c19yb290IiwgMywKKysJ Skg3MVgwX19NVVgoSkg3MTAwX0NMS19WT1VUQlVTX1JPT1QsICJ2b3V0YnVzX3Jvb3QiLCAzLAor IAkJICAgIEpINzEwMF9DTEtfT1NDX0FVRCwKKyAJCSAgICBKSDcxMDBfQ0xLX1BMTDBfT1VULAor IAkJICAgIEpINzEwMF9DTEtfUExMMl9PVVQpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBfQ0xLX0NQ VU5CVVNfUk9PVF9ESVYsICJjcHVuYnVzX3Jvb3RfZGl2IiwgMiwgSkg3MTAwX0NMS19DUFVOREJV U19ST09UKSwKKy0JSkg3MTAwX19ESVYoSkg3MTAwX0NMS19EU1BfUk9PVF9ESVYsICJkc3Bfcm9v dF9kaXYiLCA0LCBKSDcxMDBfQ0xLX0RTUF9ST09UKSwKKy0JSkg3MTAwX19ESVYoSkg3MTAwX0NM S19QRVJIMF9TUkMsICJwZXJoMF9zcmMiLCA0LCBKSDcxMDBfQ0xLX1BFUkgwX1JPT1QpLAorLQlK SDcxMDBfX0RJVihKSDcxMDBfQ0xLX1BFUkgxX1NSQywgInBlcmgxX3NyYyIsIDQsIEpINzEwMF9D TEtfUEVSSDFfUk9PVCksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfUExMMF9URVNUT1VULCAi cGxsMF90ZXN0b3V0IiwgMCwgMzEsIEpINzEwMF9DTEtfUEVSSDBfU1JDKSwKKy0JSkg3MTAwX0dE SVYoSkg3MTAwX0NMS19QTEwxX1RFU1RPVVQsICJwbGwxX3Rlc3RvdXQiLCAwLCAzMSwgSkg3MTAw X0NMS19ETEFfUk9PVCksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfUExMMl9URVNUT1VULCAi cGxsMl90ZXN0b3V0IiwgMCwgMzEsIEpINzEwMF9DTEtfUEVSSDFfU1JDKSwKKy0JSkg3MTAwX19N VVgoSkg3MTAwX0NMS19QTEwyX1JFRiwgInBsbDJfcmVmY2xrIiwgMiwKKysJSkg3MVgwX19ESVYo Skg3MTAwX0NMS19DUFVOQlVTX1JPT1RfRElWLCAiY3B1bmJ1c19yb290X2RpdiIsIDIsIEpINzEw MF9DTEtfQ1BVTkRCVVNfUk9PVCksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfRFNQX1JPT1Rf RElWLCAiZHNwX3Jvb3RfZGl2IiwgNCwgSkg3MTAwX0NMS19EU1BfUk9PVCksCisrCUpINzFYMF9f RElWKEpINzEwMF9DTEtfUEVSSDBfU1JDLCAicGVyaDBfc3JjIiwgNCwgSkg3MTAwX0NMS19QRVJI MF9ST09UKSwKKysJSkg3MVgwX19ESVYoSkg3MTAwX0NMS19QRVJIMV9TUkMsICJwZXJoMV9zcmMi LCA0LCBKSDcxMDBfQ0xLX1BFUkgxX1JPT1QpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1BM TDBfVEVTVE9VVCwgInBsbDBfdGVzdG91dCIsIDAsIDMxLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyks CisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfUExMMV9URVNUT1VULCAicGxsMV90ZXN0b3V0Iiwg MCwgMzEsIEpINzEwMF9DTEtfRExBX1JPT1QpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1BM TDJfVEVTVE9VVCwgInBsbDJfdGVzdG91dCIsIDAsIDMxLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyks CisrCUpINzFYMF9fTVVYKEpINzEwMF9DTEtfUExMMl9SRUYsICJwbGwyX3JlZmNsayIsIDIsCisg CQkgICAgSkg3MTAwX0NMS19PU0NfU1lTLAorIAkJICAgIEpINzEwMF9DTEtfT1NDX0FVRCksCist CUpINzEwMF9fRElWKEpINzEwMF9DTEtfQ1BVX0NPUkUsICJjcHVfY29yZSIsIDgsIEpINzEwMF9D TEtfQ1BVTkJVU19ST09UX0RJViksCistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfQ1BVX0FYSSwg ImNwdV9heGkiLCA4LCBKSDcxMDBfQ0xLX0NQVV9DT1JFKSwKKy0JSkg3MTAwX19ESVYoSkg3MTAw X0NMS19BSEJfQlVTLCAiYWhiX2J1cyIsIDgsIEpINzEwMF9DTEtfQ1BVTkJVU19ST09UX0RJViks CistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfQVBCMV9CVVMsICJhcGIxX2J1cyIsIDgsIEpINzEw MF9DTEtfQUhCX0JVUyksCistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfQVBCMl9CVVMsICJhcGIy X2J1cyIsIDgsIEpINzEwMF9DTEtfQUhCX0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtf RE9NM0FIQl9CVVMsICJkb20zYWhiX2J1cyIsIENMS19JU19DUklUSUNBTCwgSkg3MTAwX0NMS19B SEJfQlVTKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19ET003QUhCX0JVUywgImRvbTdhaGJf YnVzIiwgQ0xLX0lTX0NSSVRJQ0FMLCBKSDcxMDBfQ0xLX0FIQl9CVVMpLAorLQlKSDcxMDBfR0FU RShKSDcxMDBfQ0xLX1U3NF9DT1JFMCwgInU3NF9jb3JlMCIsIENMS19JU19DUklUSUNBTCwgSkg3 MTAwX0NMS19DUFVfQ09SRSksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfVTc0X0NPUkUxLCAi dTc0X2NvcmUxIiwgQ0xLX0lTX0NSSVRJQ0FMLCA4LCBKSDcxMDBfQ0xLX0NQVV9DT1JFKSwKKy0J Skg3MTAwX0dBVEUoSkg3MTAwX0NMS19VNzRfQVhJLCAidTc0X2F4aSIsIENMS19JU19DUklUSUNB TCwgSkg3MTAwX0NMS19DUFVfQVhJKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19VNzRSVENf VE9HR0xFLCAidTc0cnRjX3RvZ2dsZSIsIENMS19JU19DUklUSUNBTCwgSkg3MTAwX0NMS19PU0Nf U1lTKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19TR0RNQTJQX0FYSSwgInNnZG1hMnBfYXhp IiwgMCwgSkg3MTAwX0NMS19DUFVfQVhJKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19ETUEy UE5PQ19BWEksICJkbWEycG5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX0NQVV9BWEkpLAorLQlKSDcx MDBfR0FURShKSDcxMDBfQ0xLX1NHRE1BMlBfQUhCLCAic2dkbWEycF9haGIiLCAwLCBKSDcxMDBf Q0xLX0FIQl9CVVMpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBfQ0xLX0RMQV9CVVMsICJkbGFfYnVz IiwgNCwgSkg3MTAwX0NMS19ETEFfUk9PVCksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfRExB X0FYSSwgImRsYV9heGkiLCAwLCBKSDcxMDBfQ0xLX0RMQV9CVVMpLAorLQlKSDcxMDBfR0FURShK SDcxMDBfQ0xLX0RMQU5PQ19BWEksICJkbGFub2NfYXhpIiwgMCwgSkg3MTAwX0NMS19ETEFfQlVT KSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19ETEFfQVBCLCAiZGxhX2FwYiIsIDAsIEpINzEw MF9DTEtfQVBCMV9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1ZQNl9DT1JFLCAidnA2 X2NvcmUiLCAwLCA0LCBKSDcxMDBfQ0xLX0RTUF9ST09UX0RJViksCistCUpINzEwMF9fRElWKEpI NzEwMF9DTEtfVlA2QlVTX1NSQywgInZwNmJ1c19zcmMiLCA0LCBKSDcxMDBfQ0xLX0RTUF9ST09U KSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19WUDZfQVhJLCAidnA2X2F4aSIsIDAsIDQsIEpI NzEwMF9DTEtfVlA2QlVTX1NSQyksCistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfVkNERUNCVVNf U1JDLCAidmNkZWNidXNfc3JjIiwgNCwgSkg3MTAwX0NMS19DREVDSElGSTRfUk9PVCksCistCUpI NzEwMF9fRElWKEpINzEwMF9DTEtfVkRFQ19CVVMsICJ2ZGVjX2J1cyIsIDgsIEpINzEwMF9DTEtf VkNERUNCVVNfU1JDKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19WREVDX0FYSSwgInZkZWNf YXhpIiwgMCwgSkg3MTAwX0NMS19WREVDX0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtf VkRFQ0JSR19NQUlOLCAidmRlY2JyZ19tYWluY2xrIiwgMCwgSkg3MTAwX0NMS19WREVDX0JVUyks CistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfVkRFQ19CQ0xLLCAidmRlY19iY2xrIiwgMCwgOCwg Skg3MTAwX0NMS19WQ0RFQ0JVU19TUkMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1ZERUNf Q0NMSywgInZkZWNfY2NsayIsIDAsIDgsIEpINzEwMF9DTEtfQ0RFQ19ST09UKSwKKy0JSkg3MTAw X0dBVEUoSkg3MTAwX0NMS19WREVDX0FQQiwgInZkZWNfYXBiIiwgMCwgSkg3MTAwX0NMS19BUEIx X0JVUyksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfSlBFR19BWEksICJqcGVnX2F4aSIsIDAs IDgsIEpINzEwMF9DTEtfQ1BVTkJVU19ST09UX0RJViksCistCUpINzEwMF9HRElWKEpINzEwMF9D TEtfSlBFR19DQ0xLLCAianBlZ19jY2xrIiwgMCwgOCwgSkg3MTAwX0NMS19DUFVOQlVTX1JPT1Rf RElWKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19KUEVHX0FQQiwgImpwZWdfYXBiIiwgMCwg Skg3MTAwX0NMS19BUEIxX0JVUyksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfR0MzMDBfMlgs ICJnYzMwMF8yeCIsIDAsIDgsIEpINzEwMF9DTEtfQ0RFQ0hJRkk0X1JPT1QpLAorLQlKSDcxMDBf R0FURShKSDcxMDBfQ0xLX0dDMzAwX0FIQiwgImdjMzAwX2FoYiIsIDAsIEpINzEwMF9DTEtfQUhC X0JVUyksCistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfSlBDR0MzMDBfQVhJQlVTLCAianBjZ2Mz MDBfYXhpYnVzIiwgOCwgSkg3MTAwX0NMS19WQ0RFQ0JVU19TUkMpLAorLQlKSDcxMDBfR0FURShK SDcxMDBfQ0xLX0dDMzAwX0FYSSwgImdjMzAwX2F4aSIsIDAsIEpINzEwMF9DTEtfSlBDR0MzMDBf QVhJQlVTKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19KUENHQzMwMF9NQUlOLCAianBjZ2Mz MDBfbWFpbmNsayIsIDAsIEpINzEwMF9DTEtfSlBDR0MzMDBfQVhJQlVTKSwKKy0JSkg3MTAwX19E SVYoSkg3MTAwX0NMS19WRU5DX0JVUywgInZlbmNfYnVzIiwgOCwgSkg3MTAwX0NMS19WQ0RFQ0JV U19TUkMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1ZFTkNfQVhJLCAidmVuY19heGkiLCAw LCBKSDcxMDBfQ0xLX1ZFTkNfQlVTKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19WRU5DQlJH X01BSU4sICJ2ZW5jYnJnX21haW5jbGsiLCAwLCBKSDcxMDBfQ0xLX1ZFTkNfQlVTKSwKKy0JSkg3 MTAwX0dESVYoSkg3MTAwX0NMS19WRU5DX0JDTEssICJ2ZW5jX2JjbGsiLCAwLCA4LCBKSDcxMDBf Q0xLX1ZDREVDQlVTX1NSQyksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfVkVOQ19DQ0xLLCAi dmVuY19jY2xrIiwgMCwgOCwgSkg3MTAwX0NMS19DREVDX1JPT1QpLAorLQlKSDcxMDBfR0FURShK SDcxMDBfQ0xLX1ZFTkNfQVBCLCAidmVuY19hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjFfQlVTKSwK Ky0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19ERFJQTExfRElWMiwgImRkcnBsbF9kaXYyIiwgQ0xL X0lTX0NSSVRJQ0FMLCAyLCBKSDcxMDBfQ0xLX1BMTDFfT1VUKSwKKy0JSkg3MTAwX0dESVYoSkg3 MTAwX0NMS19ERFJQTExfRElWNCwgImRkcnBsbF9kaXY0IiwgQ0xLX0lTX0NSSVRJQ0FMLCAyLCBK SDcxMDBfQ0xLX0REUlBMTF9ESVYyKSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19ERFJQTExf RElWOCwgImRkcnBsbF9kaXY4IiwgQ0xLX0lTX0NSSVRJQ0FMLCAyLCBKSDcxMDBfQ0xLX0REUlBM TF9ESVY0KSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19ERFJPU0NfRElWMiwgImRkcm9zY19k aXYyIiwgQ0xLX0lTX0NSSVRJQ0FMLCAyLCBKSDcxMDBfQ0xLX09TQ19TWVMpLAorLQlKSDcxMDBf R01VWChKSDcxMDBfQ0xLX0REUkMwLCAiZGRyYzAiLCBDTEtfSVNfQ1JJVElDQUwsIDQsCisrCUpI NzFYMF9fRElWKEpINzEwMF9DTEtfQ1BVX0NPUkUsICJjcHVfY29yZSIsIDgsIEpINzEwMF9DTEtf Q1BVTkJVU19ST09UX0RJViksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfQ1BVX0FYSSwgImNw dV9heGkiLCA4LCBKSDcxMDBfQ0xLX0NQVV9DT1JFKSwKKysJSkg3MVgwX19ESVYoSkg3MTAwX0NM S19BSEJfQlVTLCAiYWhiX2J1cyIsIDgsIEpINzEwMF9DTEtfQ1BVTkJVU19ST09UX0RJViksCisr CUpINzFYMF9fRElWKEpINzEwMF9DTEtfQVBCMV9CVVMsICJhcGIxX2J1cyIsIDgsIEpINzEwMF9D TEtfQUhCX0JVUyksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfQVBCMl9CVVMsICJhcGIyX2J1 cyIsIDgsIEpINzEwMF9DTEtfQUhCX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfRE9N M0FIQl9CVVMsICJkb20zYWhiX2J1cyIsIENMS19JU19DUklUSUNBTCwgSkg3MTAwX0NMS19BSEJf QlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19ET003QUhCX0JVUywgImRvbTdhaGJfYnVz IiwgQ0xLX0lTX0NSSVRJQ0FMLCBKSDcxMDBfQ0xLX0FIQl9CVVMpLAorKwlKSDcxWDBfR0FURShK SDcxMDBfQ0xLX1U3NF9DT1JFMCwgInU3NF9jb3JlMCIsIENMS19JU19DUklUSUNBTCwgSkg3MTAw X0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfVTc0X0NPUkUxLCAidTc0 X2NvcmUxIiwgQ0xLX0lTX0NSSVRJQ0FMLCA4LCBKSDcxMDBfQ0xLX0NQVV9DT1JFKSwKKysJSkg3 MVgwX0dBVEUoSkg3MTAwX0NMS19VNzRfQVhJLCAidTc0X2F4aSIsIENMS19JU19DUklUSUNBTCwg Skg3MTAwX0NMS19DUFVfQVhJKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19VNzRSVENfVE9H R0xFLCAidTc0cnRjX3RvZ2dsZSIsIENMS19JU19DUklUSUNBTCwgSkg3MTAwX0NMS19PU0NfU1lT KSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19TR0RNQTJQX0FYSSwgInNnZG1hMnBfYXhpIiwg MCwgSkg3MTAwX0NMS19DUFVfQVhJKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19ETUEyUE5P Q19BWEksICJkbWEycG5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX0NQVV9BWEkpLAorKwlKSDcxWDBf R0FURShKSDcxMDBfQ0xLX1NHRE1BMlBfQUhCLCAic2dkbWEycF9haGIiLCAwLCBKSDcxMDBfQ0xL X0FIQl9CVVMpLAorKwlKSDcxWDBfX0RJVihKSDcxMDBfQ0xLX0RMQV9CVVMsICJkbGFfYnVzIiwg NCwgSkg3MTAwX0NMS19ETEFfUk9PVCksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfRExBX0FY SSwgImRsYV9heGkiLCAwLCBKSDcxMDBfQ0xLX0RMQV9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcx MDBfQ0xLX0RMQU5PQ19BWEksICJkbGFub2NfYXhpIiwgMCwgSkg3MTAwX0NMS19ETEFfQlVTKSwK KysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19ETEFfQVBCLCAiZGxhX2FwYiIsIDAsIEpINzEwMF9D TEtfQVBCMV9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1ZQNl9DT1JFLCAidnA2X2Nv cmUiLCAwLCA0LCBKSDcxMDBfQ0xLX0RTUF9ST09UX0RJViksCisrCUpINzFYMF9fRElWKEpINzEw MF9DTEtfVlA2QlVTX1NSQywgInZwNmJ1c19zcmMiLCA0LCBKSDcxMDBfQ0xLX0RTUF9ST09UKSwK KysJSkg3MVgwX0dESVYoSkg3MTAwX0NMS19WUDZfQVhJLCAidnA2X2F4aSIsIDAsIDQsIEpINzEw MF9DTEtfVlA2QlVTX1NSQyksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfVkNERUNCVVNfU1JD LCAidmNkZWNidXNfc3JjIiwgNCwgSkg3MTAwX0NMS19DREVDSElGSTRfUk9PVCksCisrCUpINzFY MF9fRElWKEpINzEwMF9DTEtfVkRFQ19CVVMsICJ2ZGVjX2J1cyIsIDgsIEpINzEwMF9DTEtfVkNE RUNCVVNfU1JDKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19WREVDX0FYSSwgInZkZWNfYXhp IiwgMCwgSkg3MTAwX0NMS19WREVDX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfVkRF Q0JSR19NQUlOLCAidmRlY2JyZ19tYWluY2xrIiwgMCwgSkg3MTAwX0NMS19WREVDX0JVUyksCisr CUpINzFYMF9HRElWKEpINzEwMF9DTEtfVkRFQ19CQ0xLLCAidmRlY19iY2xrIiwgMCwgOCwgSkg3 MTAwX0NMS19WQ0RFQ0JVU19TUkMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1ZERUNfQ0NM SywgInZkZWNfY2NsayIsIDAsIDgsIEpINzEwMF9DTEtfQ0RFQ19ST09UKSwKKysJSkg3MVgwX0dB VEUoSkg3MTAwX0NMS19WREVDX0FQQiwgInZkZWNfYXBiIiwgMCwgSkg3MTAwX0NMS19BUEIxX0JV UyksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfSlBFR19BWEksICJqcGVnX2F4aSIsIDAsIDgs IEpINzEwMF9DTEtfQ1BVTkJVU19ST09UX0RJViksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtf SlBFR19DQ0xLLCAianBlZ19jY2xrIiwgMCwgOCwgSkg3MTAwX0NMS19DUFVOQlVTX1JPT1RfRElW KSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19KUEVHX0FQQiwgImpwZWdfYXBiIiwgMCwgSkg3 MTAwX0NMS19BUEIxX0JVUyksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfR0MzMDBfMlgsICJn YzMwMF8yeCIsIDAsIDgsIEpINzEwMF9DTEtfQ0RFQ0hJRkk0X1JPT1QpLAorKwlKSDcxWDBfR0FU RShKSDcxMDBfQ0xLX0dDMzAwX0FIQiwgImdjMzAwX2FoYiIsIDAsIEpINzEwMF9DTEtfQUhCX0JV UyksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfSlBDR0MzMDBfQVhJQlVTLCAianBjZ2MzMDBf YXhpYnVzIiwgOCwgSkg3MTAwX0NMS19WQ0RFQ0JVU19TUkMpLAorKwlKSDcxWDBfR0FURShKSDcx MDBfQ0xLX0dDMzAwX0FYSSwgImdjMzAwX2F4aSIsIDAsIEpINzEwMF9DTEtfSlBDR0MzMDBfQVhJ QlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19KUENHQzMwMF9NQUlOLCAianBjZ2MzMDBf bWFpbmNsayIsIDAsIEpINzEwMF9DTEtfSlBDR0MzMDBfQVhJQlVTKSwKKysJSkg3MVgwX19ESVYo Skg3MTAwX0NMS19WRU5DX0JVUywgInZlbmNfYnVzIiwgOCwgSkg3MTAwX0NMS19WQ0RFQ0JVU19T UkMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX1ZFTkNfQVhJLCAidmVuY19heGkiLCAwLCBK SDcxMDBfQ0xLX1ZFTkNfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19WRU5DQlJHX01B SU4sICJ2ZW5jYnJnX21haW5jbGsiLCAwLCBKSDcxMDBfQ0xLX1ZFTkNfQlVTKSwKKysJSkg3MVgw X0dESVYoSkg3MTAwX0NMS19WRU5DX0JDTEssICJ2ZW5jX2JjbGsiLCAwLCA4LCBKSDcxMDBfQ0xL X1ZDREVDQlVTX1NSQyksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfVkVOQ19DQ0xLLCAidmVu Y19jY2xrIiwgMCwgOCwgSkg3MTAwX0NMS19DREVDX1JPT1QpLAorKwlKSDcxWDBfR0FURShKSDcx MDBfQ0xLX1ZFTkNfQVBCLCAidmVuY19hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjFfQlVTKSwKKysJ Skg3MVgwX0dESVYoSkg3MTAwX0NMS19ERFJQTExfRElWMiwgImRkcnBsbF9kaXYyIiwgQ0xLX0lT X0NSSVRJQ0FMLCAyLCBKSDcxMDBfQ0xLX1BMTDFfT1VUKSwKKysJSkg3MVgwX0dESVYoSkg3MTAw X0NMS19ERFJQTExfRElWNCwgImRkcnBsbF9kaXY0IiwgQ0xLX0lTX0NSSVRJQ0FMLCAyLAorKwkJ ICAgIEpINzEwMF9DTEtfRERSUExMX0RJVjIpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX0RE UlBMTF9ESVY4LCAiZGRycGxsX2RpdjgiLCBDTEtfSVNfQ1JJVElDQUwsIDIsCisrCQkgICAgSkg3 MTAwX0NMS19ERFJQTExfRElWNCksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfRERST1NDX0RJ VjIsICJkZHJvc2NfZGl2MiIsIENMS19JU19DUklUSUNBTCwgMiwgSkg3MTAwX0NMS19PU0NfU1lT KSwKKysJSkg3MVgwX0dNVVgoSkg3MTAwX0NMS19ERFJDMCwgImRkcmMwIiwgQ0xLX0lTX0NSSVRJ Q0FMLCA0LAorIAkJICAgIEpINzEwMF9DTEtfRERST1NDX0RJVjIsCisgCQkgICAgSkg3MTAwX0NM S19ERFJQTExfRElWMiwKKyAJCSAgICBKSDcxMDBfQ0xLX0REUlBMTF9ESVY0LAorIAkJICAgIEpI NzEwMF9DTEtfRERSUExMX0RJVjgpLAorLQlKSDcxMDBfR01VWChKSDcxMDBfQ0xLX0REUkMxLCAi ZGRyYzEiLCBDTEtfSVNfQ1JJVElDQUwsIDQsCisrCUpINzFYMF9HTVVYKEpINzEwMF9DTEtfRERS QzEsICJkZHJjMSIsIENMS19JU19DUklUSUNBTCwgNCwKKyAJCSAgICBKSDcxMDBfQ0xLX0REUk9T Q19ESVYyLAorIAkJICAgIEpINzEwMF9DTEtfRERSUExMX0RJVjIsCisgCQkgICAgSkg3MTAwX0NM S19ERFJQTExfRElWNCwKKyAJCSAgICBKSDcxMDBfQ0xLX0REUlBMTF9ESVY4KSwKKy0JSkg3MTAw X0dBVEUoSkg3MTAwX0NMS19ERFJQSFlfQVBCLCAiZGRycGh5X2FwYiIsIDAsIEpINzEwMF9DTEtf QVBCMV9CVVMpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBfQ0xLX05PQ19ST0IsICJub2Nfcm9iIiwg OCwgSkg3MTAwX0NMS19DUFVOQlVTX1JPT1RfRElWKSwKKy0JSkg3MTAwX19ESVYoSkg3MTAwX0NM S19OT0NfQ09HLCAibm9jX2NvZyIsIDgsIEpINzEwMF9DTEtfRExBX1JPT1QpLAorLQlKSDcxMDBf R0FURShKSDcxMDBfQ0xLX05ORV9BSEIsICJubmVfYWhiIiwgMCwgSkg3MTAwX0NMS19BSEJfQlVT KSwKKy0JSkg3MTAwX19ESVYoSkg3MTAwX0NMS19OTkVCVVNfU1JDMSwgIm5uZWJ1c19zcmMxIiwg NCwgSkg3MTAwX0NMS19EU1BfUk9PVCksCistCUpINzEwMF9fTVVYKEpINzEwMF9DTEtfTk5FX0JV UywgIm5uZV9idXMiLCAyLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX0REUlBIWV9BUEIsICJk ZHJwaHlfYXBiIiwgMCwgSkg3MTAwX0NMS19BUEIxX0JVUyksCisrCUpINzFYMF9fRElWKEpINzEw MF9DTEtfTk9DX1JPQiwgIm5vY19yb2IiLCA4LCBKSDcxMDBfQ0xLX0NQVU5CVVNfUk9PVF9ESVYp LAorKwlKSDcxWDBfX0RJVihKSDcxMDBfQ0xLX05PQ19DT0csICJub2NfY29nIiwgOCwgSkg3MTAw X0NMS19ETEFfUk9PVCksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfTk5FX0FIQiwgIm5uZV9h aGIiLCAwLCBKSDcxMDBfQ0xLX0FIQl9CVVMpLAorKwlKSDcxWDBfX0RJVihKSDcxMDBfQ0xLX05O RUJVU19TUkMxLCAibm5lYnVzX3NyYzEiLCA0LCBKSDcxMDBfQ0xLX0RTUF9ST09UKSwKKysJSkg3 MVgwX19NVVgoSkg3MTAwX0NMS19OTkVfQlVTLCAibm5lX2J1cyIsIDIsCisgCQkgICAgSkg3MTAw X0NMS19DUFVfQVhJLAorIAkJICAgIEpINzEwMF9DTEtfTk5FQlVTX1NSQzEpLAorLQlKSDcxMDBf R0FURShKSDcxMDBfQ0xLX05ORV9BWEksICJubmVfYXhpIiwgMCwgSkg3MTAwX0NMS19OTkVfQlVT KSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19OTkVOT0NfQVhJLCAibm5lbm9jX2F4aSIsIDAs IEpINzEwMF9DTEtfTk5FX0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfRExBU0xWX0FY SSwgImRsYXNsdl9heGkiLCAwLCBKSDcxMDBfQ0xLX05ORV9CVVMpLAorLQlKSDcxMDBfR0FURShK SDcxMDBfQ0xLX0RTUFgyQ19BWEksICJkc3B4MmNfYXhpIiwgQ0xLX0lTX0NSSVRJQ0FMLCBKSDcx MDBfQ0xLX05ORV9CVVMpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBfQ0xLX0hJRkk0X1NSQywgImhp Zmk0X3NyYyIsIDQsIEpINzEwMF9DTEtfQ0RFQ0hJRkk0X1JPT1QpLAorLQlKSDcxMDBfX0RJVihK SDcxMDBfQ0xLX0hJRkk0X0NPUkVGUkVFLCAiaGlmaTRfY29yZWZyZWUiLCA4LCBKSDcxMDBfQ0xL X0hJRkk0X1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfSElGSTRfQ09SRSwgImhpZmk0 X2NvcmUiLCAwLCBKSDcxMDBfQ0xLX0hJRkk0X0NPUkVGUkVFKSwKKy0JSkg3MTAwX19ESVYoSkg3 MTAwX0NMS19ISUZJNF9CVVMsICJoaWZpNF9idXMiLCA4LCBKSDcxMDBfQ0xLX0hJRkk0X0NPUkVG UkVFKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19ISUZJNF9BWEksICJoaWZpNF9heGkiLCAw LCBKSDcxMDBfQ0xLX0hJRkk0X0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfSElGSTRO T0NfQVhJLCAiaGlmaTRub2NfYXhpIiwgMCwgSkg3MTAwX0NMS19ISUZJNF9CVVMpLAorLQlKSDcx MDBfX0RJVihKSDcxMDBfQ0xLX1NHRE1BMVBfQlVTLCAic2dkbWExcF9idXMiLCA4LCBKSDcxMDBf Q0xLX0NQVU5CVVNfUk9PVF9ESVYpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1NHRE1BMVBf QVhJLCAic2dkbWExcF9heGkiLCAwLCBKSDcxMDBfQ0xLX1NHRE1BMVBfQlVTKSwKKy0JSkg3MTAw X0dBVEUoSkg3MTAwX0NMS19ETUExUF9BWEksICJkbWExcF9heGkiLCAwLCBKSDcxMDBfQ0xLX1NH RE1BMVBfQlVTKSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19YMkNfQVhJLCAieDJjX2F4aSIs IENMS19JU19DUklUSUNBTCwgOCwgSkg3MTAwX0NMS19DUFVOQlVTX1JPT1RfRElWKSwKKy0JSkg3 MTAwX19ESVYoSkg3MTAwX0NMS19VU0JfQlVTLCAidXNiX2J1cyIsIDgsIEpINzEwMF9DTEtfQ1BV TkJVU19ST09UX0RJViksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfVVNCX0FYSSwgInVzYl9h eGkiLCAwLCBKSDcxMDBfQ0xLX1VTQl9CVVMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1VT Qk5PQ19BWEksICJ1c2Jub2NfYXhpIiwgMCwgSkg3MTAwX0NMS19VU0JfQlVTKSwKKy0JSkg3MTAw X19ESVYoSkg3MTAwX0NMS19VU0JQSFlfUk9PVERJViwgInVzYnBoeV9yb290ZGl2IiwgNCwgSkg3 MTAwX0NMS19HTUFDVVNCX1JPT1QpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1VTQlBIWV8x MjVNLCAidXNicGh5XzEyNW0iLCAwLCA4LCBKSDcxMDBfQ0xLX1VTQlBIWV9ST09URElWKSwKKy0J Skg3MTAwX0dESVYoSkg3MTAwX0NMS19VU0JQSFlfUExMRElWMjVNLCAidXNicGh5X3BsbGRpdjI1 bSIsIDAsIDMyLCBKSDcxMDBfQ0xLX1VTQlBIWV9ST09URElWKSwKKy0JSkg3MTAwX19NVVgoSkg3 MTAwX0NMS19VU0JQSFlfMjVNLCAidXNicGh5XzI1bSIsIDIsCisrCUpINzFYMF9HQVRFKEpINzEw MF9DTEtfTk5FX0FYSSwgIm5uZV9heGkiLCAwLCBKSDcxMDBfQ0xLX05ORV9CVVMpLAorKwlKSDcx WDBfR0FURShKSDcxMDBfQ0xLX05ORU5PQ19BWEksICJubmVub2NfYXhpIiwgMCwgSkg3MTAwX0NM S19OTkVfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19ETEFTTFZfQVhJLCAiZGxhc2x2 X2F4aSIsIDAsIEpINzEwMF9DTEtfTk5FX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtf RFNQWDJDX0FYSSwgImRzcHgyY19heGkiLCBDTEtfSVNfQ1JJVElDQUwsIEpINzEwMF9DTEtfTk5F X0JVUyksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfSElGSTRfU1JDLCAiaGlmaTRfc3JjIiwg NCwgSkg3MTAwX0NMS19DREVDSElGSTRfUk9PVCksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtf SElGSTRfQ09SRUZSRUUsICJoaWZpNF9jb3JlZnJlZSIsIDgsIEpINzEwMF9DTEtfSElGSTRfU1JD KSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19ISUZJNF9DT1JFLCAiaGlmaTRfY29yZSIsIDAs IEpINzEwMF9DTEtfSElGSTRfQ09SRUZSRUUpLAorKwlKSDcxWDBfX0RJVihKSDcxMDBfQ0xLX0hJ Rkk0X0JVUywgImhpZmk0X2J1cyIsIDgsIEpINzEwMF9DTEtfSElGSTRfQ09SRUZSRUUpLAorKwlK SDcxWDBfR0FURShKSDcxMDBfQ0xLX0hJRkk0X0FYSSwgImhpZmk0X2F4aSIsIDAsIEpINzEwMF9D TEtfSElGSTRfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19ISUZJNE5PQ19BWEksICJo aWZpNG5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX0hJRkk0X0JVUyksCisrCUpINzFYMF9fRElWKEpI NzEwMF9DTEtfU0dETUExUF9CVVMsICJzZ2RtYTFwX2J1cyIsIDgsIEpINzEwMF9DTEtfQ1BVTkJV U19ST09UX0RJViksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfU0dETUExUF9BWEksICJzZ2Rt YTFwX2F4aSIsIDAsIEpINzEwMF9DTEtfU0dETUExUF9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcx MDBfQ0xLX0RNQTFQX0FYSSwgImRtYTFwX2F4aSIsIDAsIEpINzEwMF9DTEtfU0dETUExUF9CVVMp LAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1gyQ19BWEksICJ4MmNfYXhpIiwgQ0xLX0lTX0NS SVRJQ0FMLCA4LCBKSDcxMDBfQ0xLX0NQVU5CVVNfUk9PVF9ESVYpLAorKwlKSDcxWDBfX0RJVihK SDcxMDBfQ0xLX1VTQl9CVVMsICJ1c2JfYnVzIiwgOCwgSkg3MTAwX0NMS19DUFVOQlVTX1JPT1Rf RElWKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19VU0JfQVhJLCAidXNiX2F4aSIsIDAsIEpI NzEwMF9DTEtfVVNCX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfVVNCTk9DX0FYSSwg InVzYm5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX1VTQl9CVVMpLAorKwlKSDcxWDBfX0RJVihKSDcx MDBfQ0xLX1VTQlBIWV9ST09URElWLCAidXNicGh5X3Jvb3RkaXYiLCA0LCBKSDcxMDBfQ0xLX0dN QUNVU0JfUk9PVCksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfVVNCUEhZXzEyNU0sICJ1c2Jw aHlfMTI1bSIsIDAsIDgsIEpINzEwMF9DTEtfVVNCUEhZX1JPT1RESVYpLAorKwlKSDcxWDBfR0RJ VihKSDcxMDBfQ0xLX1VTQlBIWV9QTExESVYyNU0sICJ1c2JwaHlfcGxsZGl2MjVtIiwgMCwgMzIs CisrCQkgICAgSkg3MTAwX0NMS19VU0JQSFlfUk9PVERJViksCisrCUpINzFYMF9fTVVYKEpINzEw MF9DTEtfVVNCUEhZXzI1TSwgInVzYnBoeV8yNW0iLCAyLAorIAkJICAgIEpINzEwMF9DTEtfT1ND X1NZUywKKyAJCSAgICBKSDcxMDBfQ0xLX1VTQlBIWV9QTExESVYyNU0pLAorLQlKSDcxMDBfRkRJ VihKSDcxMDBfQ0xLX0FVRElPX0RJViwgImF1ZGlvX2RpdiIsIEpINzEwMF9DTEtfQVVESU9fUk9P VCksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfQVVESU9fU1JDLCAiYXVkaW9fc3JjIiwgMCwg Skg3MTAwX0NMS19BVURJT19ESVYpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX0FVRElPXzEy Mjg4LCAiYXVkaW9fMTIyODgiLCAwLCBKSDcxMDBfQ0xLX09TQ19BVUQpLAorLQlKSDcxMDBfR0RJ VihKSDcxMDBfQ0xLX1ZJTl9TUkMsICJ2aW5fc3JjIiwgMCwgNCwgSkg3MTAwX0NMS19WSU5fUk9P VCksCistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfSVNQMF9CVVMsICJpc3AwX2J1cyIsIDgsIEpI NzEwMF9DTEtfVklOX1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfSVNQMF9BWEksICJp c3AwX2F4aSIsIDAsIEpINzEwMF9DTEtfSVNQMF9CVVMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBf Q0xLX0lTUDBOT0NfQVhJLCAiaXNwMG5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX0lTUDBfQlVTKSwK Ky0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19JU1BTTFZfQVhJLCAiaXNwc2x2X2F4aSIsIDAsIEpI NzEwMF9DTEtfSVNQMF9CVVMpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBfQ0xLX0lTUDFfQlVTLCAi aXNwMV9idXMiLCA4LCBKSDcxMDBfQ0xLX1ZJTl9TUkMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBf Q0xLX0lTUDFfQVhJLCAiaXNwMV9heGkiLCAwLCBKSDcxMDBfQ0xLX0lTUDFfQlVTKSwKKy0JSkg3 MTAwX0dBVEUoSkg3MTAwX0NMS19JU1AxTk9DX0FYSSwgImlzcDFub2NfYXhpIiwgMCwgSkg3MTAw X0NMS19JU1AxX0JVUyksCistCUpINzEwMF9fRElWKEpINzEwMF9DTEtfVklOX0JVUywgInZpbl9i dXMiLCA4LCBKSDcxMDBfQ0xLX1ZJTl9TUkMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1ZJ Tl9BWEksICJ2aW5fYXhpIiwgMCwgSkg3MTAwX0NMS19WSU5fQlVTKSwKKy0JSkg3MTAwX0dBVEUo Skg3MTAwX0NMS19WSU5OT0NfQVhJLCAidmlubm9jX2F4aSIsIDAsIEpINzEwMF9DTEtfVklOX0JV UyksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfVk9VVF9TUkMsICJ2b3V0X3NyYyIsIDAsIDQs IEpINzEwMF9DTEtfVk9VVF9ST09UKSwKKy0JSkg3MTAwX19ESVYoSkg3MTAwX0NMS19ESVNQQlVT X1NSQywgImRpc3BidXNfc3JjIiwgNCwgSkg3MTAwX0NMS19WT1VUQlVTX1JPT1QpLAorLQlKSDcx MDBfX0RJVihKSDcxMDBfQ0xLX0RJU1BfQlVTLCAiZGlzcF9idXMiLCA0LCBKSDcxMDBfQ0xLX0RJ U1BCVVNfU1JDKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19ESVNQX0FYSSwgImRpc3BfYXhp IiwgMCwgSkg3MTAwX0NMS19ESVNQX0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfRElT UE5PQ19BWEksICJkaXNwbm9jX2F4aSIsIDAsIEpINzEwMF9DTEtfRElTUF9CVVMpLAorLQlKSDcx MDBfR0FURShKSDcxMDBfQ0xLX1NESU8wX0FIQiwgInNkaW8wX2FoYiIsIDAsIEpINzEwMF9DTEtf QUhCX0JVUyksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfU0RJTzBfQ0NMS0lOVCwgInNkaW8w X2NjbGtpbnQiLCAwLCAyNCwgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorLQlKSDcxMDBfX0lOVihK SDcxMDBfQ0xLX1NESU8wX0NDTEtJTlRfSU5WLCAic2RpbzBfY2Nsa2ludF9pbnYiLCBKSDcxMDBf Q0xLX1NESU8wX0NDTEtJTlQpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1NESU8xX0FIQiwg InNkaW8xX2FoYiIsIDAsIEpINzEwMF9DTEtfQUhCX0JVUyksCistCUpINzEwMF9HRElWKEpINzEw MF9DTEtfU0RJTzFfQ0NMS0lOVCwgInNkaW8xX2NjbGtpbnQiLCAwLCAyNCwgSkg3MTAwX0NMS19Q RVJIMV9TUkMpLAorLQlKSDcxMDBfX0lOVihKSDcxMDBfQ0xLX1NESU8xX0NDTEtJTlRfSU5WLCAi c2RpbzFfY2Nsa2ludF9pbnYiLCBKSDcxMDBfQ0xLX1NESU8xX0NDTEtJTlQpLAorLQlKSDcxMDBf R0FURShKSDcxMDBfQ0xLX0dNQUNfQUhCLCAiZ21hY19haGIiLCAwLCBKSDcxMDBfQ0xLX0FIQl9C VVMpLAorLQlKSDcxMDBfX0RJVihKSDcxMDBfQ0xLX0dNQUNfUk9PVF9ESVYsICJnbWFjX3Jvb3Rf ZGl2IiwgOCwgSkg3MTAwX0NMS19HTUFDVVNCX1JPT1QpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBf Q0xLX0dNQUNfUFRQX1JFRiwgImdtYWNfcHRwX3JlZmNsayIsIDAsIDMxLCBKSDcxMDBfQ0xLX0dN QUNfUk9PVF9ESVYpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX0dNQUNfR1RYLCAiZ21hY19n dHhjbGsiLCAwLCAyNTUsIEpINzEwMF9DTEtfR01BQ19ST09UX0RJViksCistCUpINzEwMF9HRElW KEpINzEwMF9DTEtfR01BQ19STUlJX1RYLCAiZ21hY19ybWlpX3R4Y2xrIiwgMCwgOCwgSkg3MTAw X0NMS19HTUFDX1JNSUlfUkVGKSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19HTUFDX1JNSUlf UlgsICJnbWFjX3JtaWlfcnhjbGsiLCAwLCA4LCBKSDcxMDBfQ0xLX0dNQUNfUk1JSV9SRUYpLAor LQlKSDcxMDBfX01VWChKSDcxMDBfQ0xLX0dNQUNfVFgsICJnbWFjX3R4IiwgMywKKysJSkg3MVgw X0ZESVYoSkg3MTAwX0NMS19BVURJT19ESVYsICJhdWRpb19kaXYiLCBKSDcxMDBfQ0xLX0FVRElP X1JPT1QpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX0FVRElPX1NSQywgImF1ZGlvX3NyYyIs IDAsIEpINzEwMF9DTEtfQVVESU9fRElWKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19BVURJ T18xMjI4OCwgImF1ZGlvXzEyMjg4IiwgMCwgSkg3MTAwX0NMS19PU0NfQVVEKSwKKysJSkg3MVgw X0dESVYoSkg3MTAwX0NMS19WSU5fU1JDLCAidmluX3NyYyIsIDAsIDQsIEpINzEwMF9DTEtfVklO X1JPT1QpLAorKwlKSDcxWDBfX0RJVihKSDcxMDBfQ0xLX0lTUDBfQlVTLCAiaXNwMF9idXMiLCA4 LCBKSDcxMDBfQ0xLX1ZJTl9TUkMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX0lTUDBfQVhJ LCAiaXNwMF9heGkiLCAwLCBKSDcxMDBfQ0xLX0lTUDBfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTAwX0NMS19JU1AwTk9DX0FYSSwgImlzcDBub2NfYXhpIiwgMCwgSkg3MTAwX0NMS19JU1AwX0JV UyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfSVNQU0xWX0FYSSwgImlzcHNsdl9heGkiLCAw LCBKSDcxMDBfQ0xLX0lTUDBfQlVTKSwKKysJSkg3MVgwX19ESVYoSkg3MTAwX0NMS19JU1AxX0JV UywgImlzcDFfYnVzIiwgOCwgSkg3MTAwX0NMS19WSU5fU1JDKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTAwX0NMS19JU1AxX0FYSSwgImlzcDFfYXhpIiwgMCwgSkg3MTAwX0NMS19JU1AxX0JVUyksCisr CUpINzFYMF9HQVRFKEpINzEwMF9DTEtfSVNQMU5PQ19BWEksICJpc3Axbm9jX2F4aSIsIDAsIEpI NzEwMF9DTEtfSVNQMV9CVVMpLAorKwlKSDcxWDBfX0RJVihKSDcxMDBfQ0xLX1ZJTl9CVVMsICJ2 aW5fYnVzIiwgOCwgSkg3MTAwX0NMS19WSU5fU1JDKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NM S19WSU5fQVhJLCAidmluX2F4aSIsIDAsIEpINzEwMF9DTEtfVklOX0JVUyksCisrCUpINzFYMF9H QVRFKEpINzEwMF9DTEtfVklOTk9DX0FYSSwgInZpbm5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX1ZJ Tl9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1ZPVVRfU1JDLCAidm91dF9zcmMiLCAw LCA0LCBKSDcxMDBfQ0xLX1ZPVVRfUk9PVCksCisrCUpINzFYMF9fRElWKEpINzEwMF9DTEtfRElT UEJVU19TUkMsICJkaXNwYnVzX3NyYyIsIDQsIEpINzEwMF9DTEtfVk9VVEJVU19ST09UKSwKKysJ Skg3MVgwX19ESVYoSkg3MTAwX0NMS19ESVNQX0JVUywgImRpc3BfYnVzIiwgNCwgSkg3MTAwX0NM S19ESVNQQlVTX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfRElTUF9BWEksICJkaXNw X2F4aSIsIDAsIEpINzEwMF9DTEtfRElTUF9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xL X0RJU1BOT0NfQVhJLCAiZGlzcG5vY19heGkiLCAwLCBKSDcxMDBfQ0xLX0RJU1BfQlVTKSwKKysJ Skg3MVgwX0dBVEUoSkg3MTAwX0NMS19TRElPMF9BSEIsICJzZGlvMF9haGIiLCAwLCBKSDcxMDBf Q0xLX0FIQl9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1NESU8wX0NDTEtJTlQsICJz ZGlvMF9jY2xraW50IiwgMCwgMjQsIEpINzEwMF9DTEtfUEVSSDBfU1JDKSwKKysJSkg3MVgwX19J TlYoSkg3MTAwX0NMS19TRElPMF9DQ0xLSU5UX0lOViwgInNkaW8wX2NjbGtpbnRfaW52IiwgSkg3 MTAwX0NMS19TRElPMF9DQ0xLSU5UKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19TRElPMV9B SEIsICJzZGlvMV9haGIiLCAwLCBKSDcxMDBfQ0xLX0FIQl9CVVMpLAorKwlKSDcxWDBfR0RJVihK SDcxMDBfQ0xLX1NESU8xX0NDTEtJTlQsICJzZGlvMV9jY2xraW50IiwgMCwgMjQsIEpINzEwMF9D TEtfUEVSSDFfU1JDKSwKKysJSkg3MVgwX19JTlYoSkg3MTAwX0NMS19TRElPMV9DQ0xLSU5UX0lO ViwgInNkaW8xX2NjbGtpbnRfaW52IiwgSkg3MTAwX0NMS19TRElPMV9DQ0xLSU5UKSwKKysJSkg3 MVgwX0dBVEUoSkg3MTAwX0NMS19HTUFDX0FIQiwgImdtYWNfYWhiIiwgMCwgSkg3MTAwX0NMS19B SEJfQlVTKSwKKysJSkg3MVgwX19ESVYoSkg3MTAwX0NMS19HTUFDX1JPT1RfRElWLCAiZ21hY19y b290X2RpdiIsIDgsIEpINzEwMF9DTEtfR01BQ1VTQl9ST09UKSwKKysJSkg3MVgwX0dESVYoSkg3 MTAwX0NMS19HTUFDX1BUUF9SRUYsICJnbWFjX3B0cF9yZWZjbGsiLCAwLCAzMSwgSkg3MTAwX0NM S19HTUFDX1JPT1RfRElWKSwKKysJSkg3MVgwX0dESVYoSkg3MTAwX0NMS19HTUFDX0dUWCwgImdt YWNfZ3R4Y2xrIiwgMCwgMjU1LCBKSDcxMDBfQ0xLX0dNQUNfUk9PVF9ESVYpLAorKwlKSDcxWDBf R0RJVihKSDcxMDBfQ0xLX0dNQUNfUk1JSV9UWCwgImdtYWNfcm1paV90eGNsayIsIDAsIDgsIEpI NzEwMF9DTEtfR01BQ19STUlJX1JFRiksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfR01BQ19S TUlJX1JYLCAiZ21hY19ybWlpX3J4Y2xrIiwgMCwgOCwgSkg3MTAwX0NMS19HTUFDX1JNSUlfUkVG KSwKKysJSkg3MVgwX19NVVgoSkg3MTAwX0NMS19HTUFDX1RYLCAiZ21hY190eCIsIDMsCisgCQkg ICAgSkg3MTAwX0NMS19HTUFDX0dUWCwKKyAJCSAgICBKSDcxMDBfQ0xLX0dNQUNfVFhfSU5WLAor IAkJICAgIEpINzEwMF9DTEtfR01BQ19STUlJX1RYKSwKKy0JSkg3MTAwX19JTlYoSkg3MTAwX0NM S19HTUFDX1RYX0lOViwgImdtYWNfdHhfaW52IiwgSkg3MTAwX0NMS19HTUFDX1RYKSwKKy0JSkg3 MTAwX19NVVgoSkg3MTAwX0NMS19HTUFDX1JYX1BSRSwgImdtYWNfcnhfcHJlIiwgMiwKKysJSkg3 MVgwX19JTlYoSkg3MTAwX0NMS19HTUFDX1RYX0lOViwgImdtYWNfdHhfaW52IiwgSkg3MTAwX0NM S19HTUFDX1RYKSwKKysJSkg3MVgwX19NVVgoSkg3MTAwX0NMS19HTUFDX1JYX1BSRSwgImdtYWNf cnhfcHJlIiwgMiwKKyAJCSAgICBKSDcxMDBfQ0xLX0dNQUNfR1JfTUlJX1JYLAorIAkJICAgIEpI NzEwMF9DTEtfR01BQ19STUlJX1JYKSwKKy0JSkg3MTAwX19JTlYoSkg3MTAwX0NMS19HTUFDX1JY X0lOViwgImdtYWNfcnhfaW52IiwgSkg3MTAwX0NMS19HTUFDX1JYX1BSRSksCistCUpINzEwMF9H QVRFKEpINzEwMF9DTEtfR01BQ19STUlJLCAiZ21hY19ybWlpIiwgMCwgSkg3MTAwX0NMS19HTUFD X1JNSUlfUkVGKSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19HTUFDX1RPUEhZUkVGLCAiZ21h Y190b3BoeXJlZiIsIDAsIDEyNywgSkg3MTAwX0NMS19HTUFDX1JPT1RfRElWKSwKKy0JSkg3MTAw X0dBVEUoSkg3MTAwX0NMS19TUEkyQUhCX0FIQiwgInNwaTJhaGJfYWhiIiwgMCwgSkg3MTAwX0NM S19BSEJfQlVTKSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19TUEkyQUhCX0NPUkUsICJzcGky YWhiX2NvcmUiLCAwLCAzMSwgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorLQlKSDcxMDBfR0FURShK SDcxMDBfQ0xLX0VaTUFTVEVSX0FIQiwgImV6bWFzdGVyX2FoYiIsIDAsIEpINzEwMF9DTEtfQUhC X0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfRTI0X0FIQiwgImUyNF9haGIiLCAwLCBK SDcxMDBfQ0xLX0FIQl9CVVMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX0UyNFJUQ19UT0dH TEUsICJlMjRydGNfdG9nZ2xlIiwgMCwgSkg3MTAwX0NMS19PU0NfU1lTKSwKKy0JSkg3MTAwX0dB VEUoSkg3MTAwX0NMS19RU1BJX0FIQiwgInFzcGlfYWhiIiwgMCwgSkg3MTAwX0NMS19BSEJfQlVT KSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19RU1BJX0FQQiwgInFzcGlfYXBiIiwgMCwgSkg3 MTAwX0NMS19BUEIxX0JVUyksCistCUpINzEwMF9HRElWKEpINzEwMF9DTEtfUVNQSV9SRUYsICJx c3BpX3JlZmNsayIsIDAsIDMxLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCistCUpINzEwMF9HQVRF KEpINzEwMF9DTEtfU0VDX0FIQiwgInNlY19haGIiLCAwLCBKSDcxMDBfQ0xLX0FIQl9CVVMpLAor LQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX0FFUywgImFlc19jbGsiLCAwLCBKSDcxMDBfQ0xLX1NF Q19BSEIpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1NIQSwgInNoYV9jbGsiLCAwLCBKSDcx MDBfQ0xLX1NFQ19BSEIpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1BLQSwgInBrYV9jbGsi LCAwLCBKSDcxMDBfQ0xLX1NFQ19BSEIpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1RSTkdf QVBCLCAidHJuZ19hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjFfQlVTKSwKKy0JSkg3MTAwX0dBVEUo Skg3MTAwX0NMS19PVFBfQVBCLCAib3RwX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAor LQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1VBUlQwX0FQQiwgInVhcnQwX2FwYiIsIDAsIEpINzEw MF9DTEtfQVBCMV9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1VBUlQwX0NPUkUsICJ1 YXJ0MF9jb3JlIiwgMCwgNjMsIEpINzEwMF9DTEtfUEVSSDFfU1JDKSwKKy0JSkg3MTAwX0dBVEUo Skg3MTAwX0NMS19VQVJUMV9BUEIsICJ1YXJ0MV9hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjFfQlVT KSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NMS19VQVJUMV9DT1JFLCAidWFydDFfY29yZSIsIDAs IDYzLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfU1BJ MF9BUEIsICJzcGkwX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorLQlKSDcxMDBfR0RJ VihKSDcxMDBfQ0xLX1NQSTBfQ09SRSwgInNwaTBfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BF UkgxX1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfU1BJMV9BUEIsICJzcGkxX2FwYiIs IDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1NQSTFf Q09SRSwgInNwaTFfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyksCistCUpINzEw MF9HQVRFKEpINzEwMF9DTEtfSTJDMF9BUEIsICJpMmMwX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBC MV9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX0kyQzBfQ09SRSwgImkyYzBfY29yZSIs IDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtf STJDMV9BUEIsICJpMmMxX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorLQlKSDcxMDBf R0RJVihKSDcxMDBfQ0xLX0kyQzFfQ09SRSwgImkyYzFfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xL X1BFUkgxX1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfR1BJT19BUEIsICJncGlvX2Fw YiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1VB UlQyX0FQQiwgInVhcnQyX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorLQlKSDcxMDBf R0RJVihKSDcxMDBfQ0xLX1VBUlQyX0NPUkUsICJ1YXJ0Ml9jb3JlIiwgMCwgNjMsIEpINzEwMF9D TEtfUEVSSDBfU1JDKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAwX0NMS19VQVJUM19BUEIsICJ1YXJ0 M19hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjJfQlVTKSwKKy0JSkg3MTAwX0dESVYoSkg3MTAwX0NM S19VQVJUM19DT1JFLCAidWFydDNfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyks CistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfU1BJMl9BUEIsICJzcGkyX2FwYiIsIDAsIEpINzEw MF9DTEtfQVBCMl9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1NQSTJfQ09SRSwgInNw aTJfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCistCUpINzEwMF9HQVRFKEpI NzEwMF9DTEtfU1BJM19BUEIsICJzcGkzX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAor LQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1NQSTNfQ09SRSwgInNwaTNfY29yZSIsIDAsIDYzLCBK SDcxMDBfQ0xLX1BFUkgwX1NSQyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfSTJDMl9BUEIs ICJpMmMyX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcx MDBfQ0xLX0kyQzJfQ09SRSwgImkyYzJfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NS QyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfSTJDM19BUEIsICJpMmMzX2FwYiIsIDAsIEpI NzEwMF9DTEtfQVBCMl9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX0kyQzNfQ09SRSwg ImkyYzNfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCistCUpINzEwMF9HQVRF KEpINzEwMF9DTEtfV0RUSU1FUl9BUEIsICJ3ZHRpbWVyX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBC Ml9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1dEVF9DT1JFLCAid2R0X2NvcmVjbGsi LCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xL X1RJTUVSMF9DT1JFLCAidGltZXIwX2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9T UkMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSMV9DT1JFLCAidGltZXIxX2NvcmVj bGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBf Q0xLX1RJTUVSMl9DT1JFLCAidGltZXIyX2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJI MF9TUkMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSM19DT1JFLCAidGltZXIzX2Nv cmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorLQlKSDcxMDBfR0RJVihKSDcx MDBfQ0xLX1RJTUVSNF9DT1JFLCAidGltZXI0X2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19Q RVJIMF9TUkMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSNV9DT1JFLCAidGltZXI1 X2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorLQlKSDcxMDBfR0RJVihK SDcxMDBfQ0xLX1RJTUVSNl9DT1JFLCAidGltZXI2X2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NM S19QRVJIMF9TUkMpLAorLQlKSDcxMDBfR0FURShKSDcxMDBfQ0xLX1ZQNklOVENfQVBCLCAidnA2 aW50Y19hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjJfQlVTKSwKKy0JSkg3MTAwX0dBVEUoSkg3MTAw X0NMS19QV01fQVBCLCAicHdtX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorLQlKSDcx MDBfR0FURShKSDcxMDBfQ0xLX01TSV9BUEIsICJtc2lfYXBiIiwgMCwgSkg3MTAwX0NMS19BUEIy X0JVUyksCistCUpINzEwMF9HQVRFKEpINzEwMF9DTEtfVEVNUF9BUEIsICJ0ZW1wX2FwYiIsIDAs IEpINzEwMF9DTEtfQVBCMl9CVVMpLAorLQlKSDcxMDBfR0RJVihKSDcxMDBfQ0xLX1RFTVBfU0VO U0UsICJ0ZW1wX3NlbnNlIiwgMCwgMzEsIEpINzEwMF9DTEtfT1NDX1NZUyksCistCUpINzEwMF9H QVRFKEpINzEwMF9DTEtfU1lTRVJSX0FQQiwgInN5c2Vycl9hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQ QjJfQlVTKSwKKysJSkg3MVgwX19JTlYoSkg3MTAwX0NMS19HTUFDX1JYX0lOViwgImdtYWNfcnhf aW52IiwgSkg3MTAwX0NMS19HTUFDX1JYX1BSRSksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtf R01BQ19STUlJLCAiZ21hY19ybWlpIiwgMCwgSkg3MTAwX0NMS19HTUFDX1JNSUlfUkVGKSwKKysJ Skg3MVgwX0dESVYoSkg3MTAwX0NMS19HTUFDX1RPUEhZUkVGLCAiZ21hY190b3BoeXJlZiIsIDAs IDEyNywgSkg3MTAwX0NMS19HTUFDX1JPT1RfRElWKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NM S19TUEkyQUhCX0FIQiwgInNwaTJhaGJfYWhiIiwgMCwgSkg3MTAwX0NMS19BSEJfQlVTKSwKKysJ Skg3MVgwX0dESVYoSkg3MTAwX0NMS19TUEkyQUhCX0NPUkUsICJzcGkyYWhiX2NvcmUiLCAwLCAz MSwgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX0VaTUFT VEVSX0FIQiwgImV6bWFzdGVyX2FoYiIsIDAsIEpINzEwMF9DTEtfQUhCX0JVUyksCisrCUpINzFY MF9HQVRFKEpINzEwMF9DTEtfRTI0X0FIQiwgImUyNF9haGIiLCAwLCBKSDcxMDBfQ0xLX0FIQl9C VVMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX0UyNFJUQ19UT0dHTEUsICJlMjRydGNfdG9n Z2xlIiwgMCwgSkg3MTAwX0NMS19PU0NfU1lTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19R U1BJX0FIQiwgInFzcGlfYWhiIiwgMCwgSkg3MTAwX0NMS19BSEJfQlVTKSwKKysJSkg3MVgwX0dB VEUoSkg3MTAwX0NMS19RU1BJX0FQQiwgInFzcGlfYXBiIiwgMCwgSkg3MTAwX0NMS19BUEIxX0JV UyksCisrCUpINzFYMF9HRElWKEpINzEwMF9DTEtfUVNQSV9SRUYsICJxc3BpX3JlZmNsayIsIDAs IDMxLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfU0VD X0FIQiwgInNlY19haGIiLCAwLCBKSDcxMDBfQ0xLX0FIQl9CVVMpLAorKwlKSDcxWDBfR0FURShK SDcxMDBfQ0xLX0FFUywgImFlc19jbGsiLCAwLCBKSDcxMDBfQ0xLX1NFQ19BSEIpLAorKwlKSDcx WDBfR0FURShKSDcxMDBfQ0xLX1NIQSwgInNoYV9jbGsiLCAwLCBKSDcxMDBfQ0xLX1NFQ19BSEIp LAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX1BLQSwgInBrYV9jbGsiLCAwLCBKSDcxMDBfQ0xL X1NFQ19BSEIpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX1RSTkdfQVBCLCAidHJuZ19hcGIi LCAwLCBKSDcxMDBfQ0xLX0FQQjFfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19PVFBf QVBCLCAib3RwX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorKwlKSDcxWDBfR0FURShK SDcxMDBfQ0xLX1VBUlQwX0FQQiwgInVhcnQwX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMp LAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1VBUlQwX0NPUkUsICJ1YXJ0MF9jb3JlIiwgMCwg NjMsIEpINzEwMF9DTEtfUEVSSDFfU1JDKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19VQVJU MV9BUEIsICJ1YXJ0MV9hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjFfQlVTKSwKKysJSkg3MVgwX0dE SVYoSkg3MTAwX0NMS19VQVJUMV9DT1JFLCAidWFydDFfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xL X1BFUkgxX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfU1BJMF9BUEIsICJzcGkwX2Fw YiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1NQ STBfQ09SRSwgInNwaTBfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyksCisrCUpI NzFYMF9HQVRFKEpINzEwMF9DTEtfU1BJMV9BUEIsICJzcGkxX2FwYiIsIDAsIEpINzEwMF9DTEtf QVBCMV9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1NQSTFfQ09SRSwgInNwaTFfY29y ZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9D TEtfSTJDMF9BUEIsICJpMmMwX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorKwlKSDcx WDBfR0RJVihKSDcxMDBfQ0xLX0kyQzBfQ09SRSwgImkyYzBfY29yZSIsIDAsIDYzLCBKSDcxMDBf Q0xLX1BFUkgxX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfSTJDMV9BUEIsICJpMmMx X2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMV9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xL X0kyQzFfQ09SRSwgImkyYzFfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgxX1NSQyksCisr CUpINzFYMF9HQVRFKEpINzEwMF9DTEtfR1BJT19BUEIsICJncGlvX2FwYiIsIDAsIEpINzEwMF9D TEtfQVBCMV9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX1VBUlQyX0FQQiwgInVhcnQy X2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xL X1VBUlQyX0NPUkUsICJ1YXJ0Ml9jb3JlIiwgMCwgNjMsIEpINzEwMF9DTEtfUEVSSDBfU1JDKSwK KysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19VQVJUM19BUEIsICJ1YXJ0M19hcGIiLCAwLCBKSDcx MDBfQ0xLX0FQQjJfQlVTKSwKKysJSkg3MVgwX0dESVYoSkg3MTAwX0NMS19VQVJUM19DT1JFLCAi dWFydDNfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCisrCUpINzFYMF9HQVRF KEpINzEwMF9DTEtfU1BJMl9BUEIsICJzcGkyX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMp LAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1NQSTJfQ09SRSwgInNwaTJfY29yZSIsIDAsIDYz LCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfU1BJM19B UEIsICJzcGkzX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorKwlKSDcxWDBfR0RJVihK SDcxMDBfQ0xLX1NQSTNfQ09SRSwgInNwaTNfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgw X1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfSTJDMl9BUEIsICJpMmMyX2FwYiIsIDAs IEpINzEwMF9DTEtfQVBCMl9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX0kyQzJfQ09S RSwgImkyYzJfY29yZSIsIDAsIDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCisrCUpINzFYMF9H QVRFKEpINzEwMF9DTEtfSTJDM19BUEIsICJpMmMzX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9C VVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX0kyQzNfQ09SRSwgImkyYzNfY29yZSIsIDAs IDYzLCBKSDcxMDBfQ0xLX1BFUkgwX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtfV0RU SU1FUl9BUEIsICJ3ZHRpbWVyX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorKwlKSDcx WDBfR0RJVihKSDcxMDBfQ0xLX1dEVF9DT1JFLCAid2R0X2NvcmVjbGsiLCAwLCA2MywgSkg3MTAw X0NMS19QRVJIMF9TUkMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSMF9DT1JFLCAi dGltZXIwX2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorKwlKSDcxWDBf R0RJVihKSDcxMDBfQ0xLX1RJTUVSMV9DT1JFLCAidGltZXIxX2NvcmVjbGsiLCAwLCA2MywgSkg3 MTAwX0NMS19QRVJIMF9TUkMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSMl9DT1JF LCAidGltZXIyX2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorKwlKSDcx WDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSM19DT1JFLCAidGltZXIzX2NvcmVjbGsiLCAwLCA2Mywg Skg3MTAwX0NMS19QRVJIMF9TUkMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSNF9D T1JFLCAidGltZXI0X2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorKwlK SDcxWDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVSNV9DT1JFLCAidGltZXI1X2NvcmVjbGsiLCAwLCA2 MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1RJTUVS Nl9DT1JFLCAidGltZXI2X2NvcmVjbGsiLCAwLCA2MywgSkg3MTAwX0NMS19QRVJIMF9TUkMpLAor KwlKSDcxWDBfR0FURShKSDcxMDBfQ0xLX1ZQNklOVENfQVBCLCAidnA2aW50Y19hcGIiLCAwLCBK SDcxMDBfQ0xLX0FQQjJfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTAwX0NMS19QV01fQVBCLCAi cHdtX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBCMl9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMDBf Q0xLX01TSV9BUEIsICJtc2lfYXBiIiwgMCwgSkg3MTAwX0NMS19BUEIyX0JVUyksCisrCUpINzFY MF9HQVRFKEpINzEwMF9DTEtfVEVNUF9BUEIsICJ0ZW1wX2FwYiIsIDAsIEpINzEwMF9DTEtfQVBC Ml9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMDBfQ0xLX1RFTVBfU0VOU0UsICJ0ZW1wX3NlbnNl IiwgMCwgMzEsIEpINzEwMF9DTEtfT1NDX1NZUyksCisrCUpINzFYMF9HQVRFKEpINzEwMF9DTEtf U1lTRVJSX0FQQiwgInN5c2Vycl9hcGIiLCAwLCBKSDcxMDBfQ0xLX0FQQjJfQlVTKSwKKyB9Owor IAorIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3ICpqaDcxMDBfY2xrX2dldChzdHJ1Y3Qgb2ZfcGhhbmRs ZV9hcmdzICpjbGtzcGVjLCB2b2lkICpkYXRhKQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGtfcHJp diAqcHJpdiA9IGRhdGE7CisrCXN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXYgPSBkYXRhOwor IAl1bnNpZ25lZCBpbnQgaWR4ID0gY2xrc3BlYy0+YXJnc1swXTsKKyAKKyAJaWYgKGlkeCA8IEpI NzEwMF9DTEtfUExMMF9PVVQpCitAQCAtMjgwLDcgKzI4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3ICpqaDcxMDBfY2xrX2dldChzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpjbGtzcGVjLCB2b2lk ICpkYXRhCisgCisgc3RhdGljIGludCBfX2luaXQgY2xrX3N0YXJmaXZlX2poNzEwMF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGtfcHJp diAqcHJpdjsKKysJc3RydWN0IGpoNzF4MF9jbGtfcHJpdiAqcHJpdjsKKyAJdW5zaWduZWQgaW50 IGlkeDsKKyAJaW50IHJldDsKKyAKK0BAIC0zMTQsMTIgKzMxNywxMiBAQCBzdGF0aWMgaW50IF9f aW5pdCBjbGtfc3RhcmZpdmVfamg3MTAwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCisgCQlzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIHBhcmVudHNbNF0gPSB7fTsKKyAJCXN0cnVj dCBjbGtfaW5pdF9kYXRhIGluaXQgPSB7CisgCQkJLm5hbWUgPSBqaDcxMDBfY2xrX2RhdGFbaWR4 XS5uYW1lLAorLQkJCS5vcHMgPSBzdGFyZml2ZV9qaDcxMDBfY2xrX29wcyhtYXgpLAorKwkJCS5v cHMgPSBzdGFyZml2ZV9qaDcxeDBfY2xrX29wcyhtYXgpLAorIAkJCS5wYXJlbnRfZGF0YSA9IHBh cmVudHMsCistCQkJLm51bV9wYXJlbnRzID0gKChtYXggJiBKSDcxMDBfQ0xLX01VWF9NQVNLKSA+ PiBKSDcxMDBfQ0xLX01VWF9TSElGVCkgKyAxLAorKwkJCS5udW1fcGFyZW50cyA9ICgobWF4ICYg Skg3MVgwX0NMS19NVVhfTUFTSykgPj4gSkg3MVgwX0NMS19NVVhfU0hJRlQpICsgMSwKKyAJCQku ZmxhZ3MgPSBqaDcxMDBfY2xrX2RhdGFbaWR4XS5mbGFncywKKyAJCX07CistCQlzdHJ1Y3Qgamg3 MTAwX2NsayAqY2xrID0gJnByaXYtPnJlZ1tpZHhdOworKwkJc3RydWN0IGpoNzF4MF9jbGsgKmNs ayA9ICZwcml2LT5yZWdbaWR4XTsKKyAJCXVuc2lnbmVkIGludCBpOworIAorIAkJZm9yIChpID0g MDsgaSA8IGluaXQubnVtX3BhcmVudHM7IGkrKykgeworQEAgLTM0MSw3ICszNDQsNyBAQCBzdGF0 aWMgaW50IF9faW5pdCBjbGtfc3RhcmZpdmVfamg3MTAwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCisgCisgCQljbGstPmh3LmluaXQgPSAmaW5pdDsKKyAJCWNsay0+aWR4ID0g aWR4OworLQkJY2xrLT5tYXhfZGl2ID0gbWF4ICYgSkg3MTAwX0NMS19ESVZfTUFTSzsKKysJCWNs ay0+bWF4X2RpdiA9IG1heCAmIEpINzFYMF9DTEtfRElWX01BU0s7CisgCisgCQlyZXQgPSBkZXZt X2Nsa19od19yZWdpc3Rlcihwcml2LT5kZXYsICZjbGstPmh3KTsKKyAJCWlmIChyZXQpCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzF4MC5jIGIvZHJp dmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzF4MC5jCitpbmRleCAwMTQwYmRmMjdh MDEuLmIzNzIwODNkMTFjMyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1z dGFyZml2ZS1qaDcxeDAuYworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZl LWpoNzF4MC5jCitAQCAtMSw2ICsxLDYgQEAKKyAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAorIC8qCistICogU3RhckZpdmUgSkg3MTAwIENsb2NrIEdlbmVyYXRvciBEcml2ZXIK KysgKiBTdGFyRml2ZSBKSDcxWDAgQ2xvY2sgR2VuZXJhdG9yIERyaXZlcgorICAqCisgICogQ29w eXJpZ2h0IChDKSAyMDIxLTIwMjIgRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5k az4KKyAgKi8KK0BAIC0xMiwyNyArMTIsMjcgQEAKKyAKKyAjaW5jbHVkZSAiY2xrLXN0YXJmaXZl LWpoNzF4MC5oIgorIAorLXN0YXRpYyBzdHJ1Y3Qgamg3MTAwX2NsayAqamg3MTAwX2Nsa19mcm9t KHN0cnVjdCBjbGtfaHcgKmh3KQorK3N0YXRpYyBzdHJ1Y3Qgamg3MXgwX2NsayAqamg3MXgwX2Ns a19mcm9tKHN0cnVjdCBjbGtfaHcgKmh3KQorIHsKKy0JcmV0dXJuIGNvbnRhaW5lcl9vZihodywg c3RydWN0IGpoNzEwMF9jbGssIGh3KTsKKysJcmV0dXJuIGNvbnRhaW5lcl9vZihodywgc3RydWN0 IGpoNzF4MF9jbGssIGh3KTsKKyB9CisgCistc3RhdGljIHN0cnVjdCBqaDcxMDBfY2xrX3ByaXYg KmpoNzEwMF9wcml2X2Zyb20oc3RydWN0IGpoNzEwMF9jbGsgKmNsaykKKytzdGF0aWMgc3RydWN0 IGpoNzF4MF9jbGtfcHJpdiAqamg3MXgwX3ByaXZfZnJvbShzdHJ1Y3Qgamg3MXgwX2NsayAqY2xr KQorIHsKKy0JcmV0dXJuIGNvbnRhaW5lcl9vZihjbGssIHN0cnVjdCBqaDcxMDBfY2xrX3ByaXYs IHJlZ1tjbGstPmlkeF0pOworKwlyZXR1cm4gY29udGFpbmVyX29mKGNsaywgc3RydWN0IGpoNzF4 MF9jbGtfcHJpdiwgcmVnW2Nsay0+aWR4XSk7CisgfQorIAorLXN0YXRpYyB1MzIgamg3MTAwX2Ns a19yZWdfZ2V0KHN0cnVjdCBqaDcxMDBfY2xrICpjbGspCisrc3RhdGljIHUzMiBqaDcxeDBfY2xr X3JlZ19nZXQoc3RydWN0IGpoNzF4MF9jbGsgKmNsaykKKyB7CistCXN0cnVjdCBqaDcxMDBfY2xr X3ByaXYgKnByaXYgPSBqaDcxMDBfcHJpdl9mcm9tKGNsayk7CisrCXN0cnVjdCBqaDcxeDBfY2xr X3ByaXYgKnByaXYgPSBqaDcxeDBfcHJpdl9mcm9tKGNsayk7CisgCXZvaWQgX19pb21lbSAqcmVn ID0gcHJpdi0+YmFzZSArIDQgKiBjbGstPmlkeDsKKyAKKyAJcmV0dXJuIHJlYWRsX3JlbGF4ZWQo cmVnKTsKKyB9CisgCistc3RhdGljIHZvaWQgamg3MTAwX2Nsa19yZWdfcm13KHN0cnVjdCBqaDcx MDBfY2xrICpjbGssIHUzMiBtYXNrLCB1MzIgdmFsdWUpCisrc3RhdGljIHZvaWQgamg3MXgwX2Ns a19yZWdfcm13KHN0cnVjdCBqaDcxeDBfY2xrICpjbGssIHUzMiBtYXNrLCB1MzIgdmFsdWUpCisg eworLQlzdHJ1Y3Qgamg3MTAwX2Nsa19wcml2ICpwcml2ID0gamg3MTAwX3ByaXZfZnJvbShjbGsp OworKwlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2ID0gamg3MXgwX3ByaXZfZnJvbShjbGsp OworIAl2b2lkIF9faW9tZW0gKnJlZyA9IHByaXYtPmJhc2UgKyA0ICogY2xrLT5pZHg7CisgCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CisgCitAQCAtNDIsNDEgKzQyLDQxIEBAIHN0YXRpYyB2b2lkIGpo NzEwMF9jbGtfcmVnX3JtdyhzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrLCB1MzIgbWFzaywgdTMyIHZh bHVlKQorIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5ybXdfbG9jaywgZmxhZ3MpOwor IH0KKyAKKy1zdGF0aWMgaW50IGpoNzEwMF9jbGtfZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQor K3N0YXRpYyBpbnQgamg3MXgwX2Nsa19lbmFibGUoc3RydWN0IGNsa19odyAqaHcpCisgeworLQlz dHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19mcm9tKGh3KTsKKysJc3RydWN0IGpo NzF4MF9jbGsgKmNsayA9IGpoNzF4MF9jbGtfZnJvbShodyk7CisgCistCWpoNzEwMF9jbGtfcmVn X3JtdyhjbGssIEpINzEwMF9DTEtfRU5BQkxFLCBKSDcxMDBfQ0xLX0VOQUJMRSk7CisrCWpoNzF4 MF9jbGtfcmVnX3JtdyhjbGssIEpINzFYMF9DTEtfRU5BQkxFLCBKSDcxWDBfQ0xLX0VOQUJMRSk7 CisgCXJldHVybiAwOworIH0KKyAKKy1zdGF0aWMgdm9pZCBqaDcxMDBfY2xrX2Rpc2FibGUoc3Ry dWN0IGNsa19odyAqaHcpCisrc3RhdGljIHZvaWQgamg3MXgwX2Nsa19kaXNhYmxlKHN0cnVjdCBj bGtfaHcgKmh3KQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpoNzEwMF9jbGtfZnJv bShodyk7CisrCXN0cnVjdCBqaDcxeDBfY2xrICpjbGsgPSBqaDcxeDBfY2xrX2Zyb20oaHcpOwor IAorLQlqaDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBfQ0xLX0VOQUJMRSwgMCk7CisrCWpo NzF4MF9jbGtfcmVnX3JtdyhjbGssIEpINzFYMF9DTEtfRU5BQkxFLCAwKTsKKyB9CisgCistc3Rh dGljIGludCBqaDcxMDBfY2xrX2lzX2VuYWJsZWQoc3RydWN0IGNsa19odyAqaHcpCisrc3RhdGlj IGludCBqaDcxeDBfY2xrX2lzX2VuYWJsZWQoc3RydWN0IGNsa19odyAqaHcpCisgeworLQlzdHJ1 Y3Qgamg3MTAwX2NsayAqY2xrID0gamg3MTAwX2Nsa19mcm9tKGh3KTsKKysJc3RydWN0IGpoNzF4 MF9jbGsgKmNsayA9IGpoNzF4MF9jbGtfZnJvbShodyk7CisgCistCXJldHVybiAhIShqaDcxMDBf Y2xrX3JlZ19nZXQoY2xrKSAmIEpINzEwMF9DTEtfRU5BQkxFKTsKKysJcmV0dXJuICEhKGpoNzF4 MF9jbGtfcmVnX2dldChjbGspICYgSkg3MVgwX0NMS19FTkFCTEUpOworIH0KKyAKKy1zdGF0aWMg dW5zaWduZWQgbG9uZyBqaDcxMDBfY2xrX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAor K3N0YXRpYyB1bnNpZ25lZCBsb25nIGpoNzF4MF9jbGtfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19o dyAqaHcsCisgCQkJCQkgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKKyB7CistCXN0cnVj dCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworLQl1MzIgZGl2ID0gamg3 MTAwX2Nsa19yZWdfZ2V0KGNsaykgJiBKSDcxMDBfQ0xLX0RJVl9NQVNLOworKwlzdHJ1Y3Qgamg3 MXgwX2NsayAqY2xrID0gamg3MXgwX2Nsa19mcm9tKGh3KTsKKysJdTMyIGRpdiA9IGpoNzF4MF9j bGtfcmVnX2dldChjbGspICYgSkg3MVgwX0NMS19ESVZfTUFTSzsKKyAKKyAJcmV0dXJuIGRpdiA/ IHBhcmVudF9yYXRlIC8gZGl2IDogMDsKKyB9CisgCistc3RhdGljIGludCBqaDcxMDBfY2xrX2Rl dGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAorK3N0YXRpYyBpbnQgamg3MXgwX2Nsa19k ZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKKyAJCQkJICAgICBzdHJ1Y3QgY2xrX3Jh dGVfcmVxdWVzdCAqcmVxKQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpoNzEwMF9j bGtfZnJvbShodyk7CisrCXN0cnVjdCBqaDcxeDBfY2xrICpjbGsgPSBqaDcxeDBfY2xrX2Zyb20o aHcpOworIAl1bnNpZ25lZCBsb25nIHBhcmVudCA9IHJlcS0+YmVzdF9wYXJlbnRfcmF0ZTsKKyAJ dW5zaWduZWQgbG9uZyByYXRlID0gY2xhbXAocmVxLT5yYXRlLCByZXEtPm1pbl9yYXRlLCByZXEt Pm1heF9yYXRlKTsKKyAJdW5zaWduZWQgbG9uZyBkaXYgPSBtaW5fdCh1bnNpZ25lZCBsb25nLCBE SVZfUk9VTkRfVVAocGFyZW50LCByYXRlKSwgY2xrLT5tYXhfZGl2KTsKK0BAIC0xMDIsMjMyICsx MDIsMjMyIEBAIHN0YXRpYyBpbnQgamg3MTAwX2Nsa19kZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xr X2h3ICpodywKKyAJcmV0dXJuIDA7CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19zZXRf cmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKKytzdGF0aWMgaW50IGpoNzF4MF9jbGtfc2V0X3JhdGUo c3RydWN0IGNsa19odyAqaHcsCisgCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgcmF0ZSwKKyAJCQkg ICAgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKKyB7CistCXN0cnVjdCBqaDcxMDBfY2xr ICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworKwlzdHJ1Y3Qgamg3MXgwX2NsayAqY2xrID0g amg3MXgwX2Nsa19mcm9tKGh3KTsKKyAJdW5zaWduZWQgbG9uZyBkaXYgPSBjbGFtcChESVZfUk9V TkRfQ0xPU0VTVChwYXJlbnRfcmF0ZSwgcmF0ZSksCisgCQkJCSAgMVVMLCAodW5zaWduZWQgbG9u ZyljbGstPm1heF9kaXYpOworIAorLQlqaDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBfQ0xL X0RJVl9NQVNLLCBkaXYpOworKwlqaDcxeDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxWDBfQ0xLX0RJ Vl9NQVNLLCBkaXYpOworIAlyZXR1cm4gMDsKKyB9CisgCistc3RhdGljIHVuc2lnbmVkIGxvbmcg amg3MTAwX2Nsa19mcmFjX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAorK3N0YXRpYyB1 bnNpZ25lZCBsb25nIGpoNzF4MF9jbGtfZnJhY19yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpo dywKKyAJCQkJCQkgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKKyB7CistCXN0cnVjdCBqaDcx MDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworLQl1MzIgcmVnID0gamg3MTAwX2Ns a19yZWdfZ2V0KGNsayk7CistCXVuc2lnbmVkIGxvbmcgZGl2MTAwID0gMTAwICogKHJlZyAmIEpI NzEwMF9DTEtfSU5UX01BU0spICsKKy0JCQkgICAgICAgKChyZWcgJiBKSDcxMDBfQ0xLX0ZSQUNf TUFTSykgPj4gSkg3MTAwX0NMS19GUkFDX1NISUZUKTsKKysJc3RydWN0IGpoNzF4MF9jbGsgKmNs ayA9IGpoNzF4MF9jbGtfZnJvbShodyk7CisrCXUzMiByZWcgPSBqaDcxeDBfY2xrX3JlZ19nZXQo Y2xrKTsKKysJdW5zaWduZWQgbG9uZyBkaXYxMDAgPSAxMDAgKiAocmVnICYgSkg3MVgwX0NMS19J TlRfTUFTSykgKworKwkJCSAgICAgICAoKHJlZyAmIEpINzFYMF9DTEtfRlJBQ19NQVNLKSA+PiBK SDcxWDBfQ0xLX0ZSQUNfU0hJRlQpOworIAorLQlyZXR1cm4gKGRpdjEwMCA+PSBKSDcxMDBfQ0xL X0ZSQUNfTUlOKSA/IDEwMCAqIHBhcmVudF9yYXRlIC8gZGl2MTAwIDogMDsKKysJcmV0dXJuIChk aXYxMDAgPj0gSkg3MVgwX0NMS19GUkFDX01JTikgPyAxMDAgKiBwYXJlbnRfcmF0ZSAvIGRpdjEw MCA6IDA7CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19mcmFjX2RldGVybWluZV9yYXRl KHN0cnVjdCBjbGtfaHcgKmh3LAorK3N0YXRpYyBpbnQgamg3MXgwX2Nsa19mcmFjX2RldGVybWlu ZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAorIAkJCQkJICBzdHJ1Y3QgY2xrX3JhdGVfcmVxdWVz dCAqcmVxKQorIHsKKyAJdW5zaWduZWQgbG9uZyBwYXJlbnQxMDAgPSAxMDAgKiByZXEtPmJlc3Rf cGFyZW50X3JhdGU7CisgCXVuc2lnbmVkIGxvbmcgcmF0ZSA9IGNsYW1wKHJlcS0+cmF0ZSwgcmVx LT5taW5fcmF0ZSwgcmVxLT5tYXhfcmF0ZSk7CisgCXVuc2lnbmVkIGxvbmcgZGl2MTAwID0gY2xh bXAoRElWX1JPVU5EX0NMT1NFU1QocGFyZW50MTAwLCByYXRlKSwKKy0JCQkJICAgICBKSDcxMDBf Q0xLX0ZSQUNfTUlOLCBKSDcxMDBfQ0xLX0ZSQUNfTUFYKTsKKysJCQkJICAgICBKSDcxWDBfQ0xL X0ZSQUNfTUlOLCBKSDcxWDBfQ0xLX0ZSQUNfTUFYKTsKKyAJdW5zaWduZWQgbG9uZyByZXN1bHQg PSBwYXJlbnQxMDAgLyBkaXYxMDA7CisgCistCS8qIGNsYW1wIHRoZSByZXN1bHQgYXMgaW4gamg3 MTAwX2Nsa19kZXRlcm1pbmVfcmF0ZSgpIGFib3ZlICovCistCWlmIChyZXN1bHQgPiByZXEtPm1h eF9yYXRlICYmIGRpdjEwMCA8IEpINzEwMF9DTEtfRlJBQ19NQVgpCisrCS8qIGNsYW1wIHRoZSBy ZXN1bHQgYXMgaW4gamg3MXgwX2Nsa19kZXRlcm1pbmVfcmF0ZSgpIGFib3ZlICovCisrCWlmIChy ZXN1bHQgPiByZXEtPm1heF9yYXRlICYmIGRpdjEwMCA8IEpINzFYMF9DTEtfRlJBQ19NQVgpCisg CQlyZXN1bHQgPSBwYXJlbnQxMDAgLyAoZGl2MTAwICsgMSk7CistCWlmIChyZXN1bHQgPCByZXEt Pm1pbl9yYXRlICYmIGRpdjEwMCA+IEpINzEwMF9DTEtfRlJBQ19NSU4pCisrCWlmIChyZXN1bHQg PCByZXEtPm1pbl9yYXRlICYmIGRpdjEwMCA+IEpINzFYMF9DTEtfRlJBQ19NSU4pCisgCQlyZXN1 bHQgPSBwYXJlbnQxMDAgLyAoZGl2MTAwIC0gMSk7CisgCisgCXJlcS0+cmF0ZSA9IHJlc3VsdDsK KyAJcmV0dXJuIDA7CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19mcmFjX3NldF9yYXRl KHN0cnVjdCBjbGtfaHcgKmh3LAorK3N0YXRpYyBpbnQgamg3MXgwX2Nsa19mcmFjX3NldF9yYXRl KHN0cnVjdCBjbGtfaHcgKmh3LAorIAkJCQkgICAgdW5zaWduZWQgbG9uZyByYXRlLAorIAkJCQkg ICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKKyB7CistCXN0cnVjdCBqaDcxMDBfY2xrICpj bGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOworKwlzdHJ1Y3Qgamg3MXgwX2NsayAqY2xrID0gamg3 MXgwX2Nsa19mcm9tKGh3KTsKKyAJdW5zaWduZWQgbG9uZyBkaXYxMDAgPSBjbGFtcChESVZfUk9V TkRfQ0xPU0VTVCgxMDAgKiBwYXJlbnRfcmF0ZSwgcmF0ZSksCistCQkJCSAgICAgSkg3MTAwX0NM S19GUkFDX01JTiwgSkg3MTAwX0NMS19GUkFDX01BWCk7CistCXUzMiB2YWx1ZSA9ICgoZGl2MTAw ICUgMTAwKSA8PCBKSDcxMDBfQ0xLX0ZSQUNfU0hJRlQpIHwgKGRpdjEwMCAvIDEwMCk7CisrCQkJ CSAgICAgSkg3MVgwX0NMS19GUkFDX01JTiwgSkg3MVgwX0NMS19GUkFDX01BWCk7CisrCXUzMiB2 YWx1ZSA9ICgoZGl2MTAwICUgMTAwKSA8PCBKSDcxWDBfQ0xLX0ZSQUNfU0hJRlQpIHwgKGRpdjEw MCAvIDEwMCk7CisgCistCWpoNzEwMF9jbGtfcmVnX3JtdyhjbGssIEpINzEwMF9DTEtfRElWX01B U0ssIHZhbHVlKTsKKysJamg3MXgwX2Nsa19yZWdfcm13KGNsaywgSkg3MVgwX0NMS19ESVZfTUFT SywgdmFsdWUpOworIAlyZXR1cm4gMDsKKyB9CisgCistc3RhdGljIHU4IGpoNzEwMF9jbGtfZ2V0 X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodykKKytzdGF0aWMgdTggamg3MXgwX2Nsa19nZXRfcGFy ZW50KHN0cnVjdCBjbGtfaHcgKmh3KQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpo NzEwMF9jbGtfZnJvbShodyk7CistCXUzMiB2YWx1ZSA9IGpoNzEwMF9jbGtfcmVnX2dldChjbGsp OworKwlzdHJ1Y3Qgamg3MXgwX2NsayAqY2xrID0gamg3MXgwX2Nsa19mcm9tKGh3KTsKKysJdTMy IHZhbHVlID0gamg3MXgwX2Nsa19yZWdfZ2V0KGNsayk7CisgCistCXJldHVybiAodmFsdWUgJiBK SDcxMDBfQ0xLX01VWF9NQVNLKSA+PiBKSDcxMDBfQ0xLX01VWF9TSElGVDsKKysJcmV0dXJuICh2 YWx1ZSAmIEpINzFYMF9DTEtfTVVYX01BU0spID4+IEpINzFYMF9DTEtfTVVYX1NISUZUOworIH0K KyAKKy1zdGF0aWMgaW50IGpoNzEwMF9jbGtfc2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodywg dTggaW5kZXgpCisrc3RhdGljIGludCBqaDcxeDBfY2xrX3NldF9wYXJlbnQoc3RydWN0IGNsa19o dyAqaHcsIHU4IGluZGV4KQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9IGpoNzEwMF9j bGtfZnJvbShodyk7CistCXUzMiB2YWx1ZSA9ICh1MzIpaW5kZXggPDwgSkg3MTAwX0NMS19NVVhf U0hJRlQ7CisrCXN0cnVjdCBqaDcxeDBfY2xrICpjbGsgPSBqaDcxeDBfY2xrX2Zyb20oaHcpOwor Kwl1MzIgdmFsdWUgPSAodTMyKWluZGV4IDw8IEpINzFYMF9DTEtfTVVYX1NISUZUOworIAorLQlq aDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBfQ0xLX01VWF9NQVNLLCB2YWx1ZSk7CisrCWpo NzF4MF9jbGtfcmVnX3JtdyhjbGssIEpINzFYMF9DTEtfTVVYX01BU0ssIHZhbHVlKTsKKyAJcmV0 dXJuIDA7CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19tdXhfZGV0ZXJtaW5lX3JhdGUo c3RydWN0IGNsa19odyAqaHcsCisrc3RhdGljIGludCBqaDcxeDBfY2xrX211eF9kZXRlcm1pbmVf cmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKKyAJCQkJCSBzdHJ1Y3QgY2xrX3JhdGVfcmVxdWVzdCAq cmVxKQorIHsKKyAJcmV0dXJuIGNsa19tdXhfZGV0ZXJtaW5lX3JhdGVfZmxhZ3MoaHcsIHJlcSwg MCk7CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19nZXRfcGhhc2Uoc3RydWN0IGNsa19o dyAqaHcpCisrc3RhdGljIGludCBqaDcxeDBfY2xrX2dldF9waGFzZShzdHJ1Y3QgY2xrX2h3ICpo dykKKyB7CistCXN0cnVjdCBqaDcxMDBfY2xrICpjbGsgPSBqaDcxMDBfY2xrX2Zyb20oaHcpOwor LQl1MzIgdmFsdWUgPSBqaDcxMDBfY2xrX3JlZ19nZXQoY2xrKTsKKysJc3RydWN0IGpoNzF4MF9j bGsgKmNsayA9IGpoNzF4MF9jbGtfZnJvbShodyk7CisrCXUzMiB2YWx1ZSA9IGpoNzF4MF9jbGtf cmVnX2dldChjbGspOworIAorLQlyZXR1cm4gKHZhbHVlICYgSkg3MTAwX0NMS19JTlZFUlQpID8g MTgwIDogMDsKKysJcmV0dXJuICh2YWx1ZSAmIEpINzFYMF9DTEtfSU5WRVJUKSA/IDE4MCA6IDA7 CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX2Nsa19zZXRfcGhhc2Uoc3RydWN0IGNsa19odyAq aHcsIGludCBkZWdyZWVzKQorK3N0YXRpYyBpbnQgamg3MXgwX2Nsa19zZXRfcGhhc2Uoc3RydWN0 IGNsa19odyAqaHcsIGludCBkZWdyZWVzKQorIHsKKy0Jc3RydWN0IGpoNzEwMF9jbGsgKmNsayA9 IGpoNzEwMF9jbGtfZnJvbShodyk7CisrCXN0cnVjdCBqaDcxeDBfY2xrICpjbGsgPSBqaDcxeDBf Y2xrX2Zyb20oaHcpOworIAl1MzIgdmFsdWU7CisgCisgCWlmIChkZWdyZWVzID09IDApCisgCQl2 YWx1ZSA9IDA7CisgCWVsc2UgaWYgKGRlZ3JlZXMgPT0gMTgwKQorLQkJdmFsdWUgPSBKSDcxMDBf Q0xLX0lOVkVSVDsKKysJCXZhbHVlID0gSkg3MVgwX0NMS19JTlZFUlQ7CisgCWVsc2UKKyAJCXJl dHVybiAtRUlOVkFMOworIAorLQlqaDcxMDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxMDBfQ0xLX0lO VkVSVCwgdmFsdWUpOworKwlqaDcxeDBfY2xrX3JlZ19ybXcoY2xrLCBKSDcxWDBfQ0xLX0lOVkVS VCwgdmFsdWUpOworIAlyZXR1cm4gMDsKKyB9CisgCisgI2lmZGVmIENPTkZJR19ERUJVR19GUwor LXN0YXRpYyB2b2lkIGpoNzEwMF9jbGtfZGVidWdfaW5pdChzdHJ1Y3QgY2xrX2h3ICpodywgc3Ry dWN0IGRlbnRyeSAqZGVudHJ5KQorK3N0YXRpYyB2b2lkIGpoNzF4MF9jbGtfZGVidWdfaW5pdChz dHJ1Y3QgY2xrX2h3ICpodywgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQorIHsKKy0Jc3RhdGljIGNv bnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyIGpoNzEwMF9jbGtfcmVnID0geworKwlzdGF0aWMgY29u c3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgamg3MXgwX2Nsa19yZWcgPSB7CisgCQkubmFtZSA9ICJD VFJMIiwKKyAJCS5vZmZzZXQgPSAwLAorIAl9OworLQlzdHJ1Y3Qgamg3MTAwX2NsayAqY2xrID0g amg3MTAwX2Nsa19mcm9tKGh3KTsKKy0Jc3RydWN0IGpoNzEwMF9jbGtfcHJpdiAqcHJpdiA9IGpo NzEwMF9wcml2X2Zyb20oY2xrKTsKKysJc3RydWN0IGpoNzF4MF9jbGsgKmNsayA9IGpoNzF4MF9j bGtfZnJvbShodyk7CisrCXN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXYgPSBqaDcxeDBfcHJp dl9mcm9tKGNsayk7CisgCXN0cnVjdCBkZWJ1Z2ZzX3JlZ3NldDMyICpyZWdzZXQ7CisgCisgCXJl Z3NldCA9IGRldm1fa3phbGxvYyhwcml2LT5kZXYsIHNpemVvZigqcmVnc2V0KSwgR0ZQX0tFUk5F TCk7CisgCWlmICghcmVnc2V0KQorIAkJcmV0dXJuOworIAorLQlyZWdzZXQtPnJlZ3MgPSAmamg3 MTAwX2Nsa19yZWc7CisrCXJlZ3NldC0+cmVncyA9ICZqaDcxeDBfY2xrX3JlZzsKKyAJcmVnc2V0 LT5ucmVncyA9IDE7CisgCXJlZ3NldC0+YmFzZSA9IHByaXYtPmJhc2UgKyA0ICogY2xrLT5pZHg7 CisgCisgCWRlYnVnZnNfY3JlYXRlX3JlZ3NldDMyKCJyZWdpc3RlcnMiLCAwNDAwLCBkZW50cnks IHJlZ3NldCk7CisgfQorICNlbHNlCistI2RlZmluZSBqaDcxMDBfY2xrX2RlYnVnX2luaXQgTlVM TAorKyNkZWZpbmUgamg3MXgwX2Nsa19kZWJ1Z19pbml0IE5VTEwKKyAjZW5kaWYKKyAKKy1zdGF0 aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTAwX2Nsa19nYXRlX29wcyA9IHsKKy0JLmVuYWJs ZSA9IGpoNzEwMF9jbGtfZW5hYmxlLAorLQkuZGlzYWJsZSA9IGpoNzEwMF9jbGtfZGlzYWJsZSwK Ky0JLmlzX2VuYWJsZWQgPSBqaDcxMDBfY2xrX2lzX2VuYWJsZWQsCistCS5kZWJ1Z19pbml0ID0g amg3MTAwX2Nsa19kZWJ1Z19pbml0LAorK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcx eDBfY2xrX2dhdGVfb3BzID0geworKwkuZW5hYmxlID0gamg3MXgwX2Nsa19lbmFibGUsCisrCS5k aXNhYmxlID0gamg3MXgwX2Nsa19kaXNhYmxlLAorKwkuaXNfZW5hYmxlZCA9IGpoNzF4MF9jbGtf aXNfZW5hYmxlZCwKKysJLmRlYnVnX2luaXQgPSBqaDcxeDBfY2xrX2RlYnVnX2luaXQsCisgfTsK KyAKKy1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTAwX2Nsa19kaXZfb3BzID0gewor LQkucmVjYWxjX3JhdGUgPSBqaDcxMDBfY2xrX3JlY2FsY19yYXRlLAorLQkuZGV0ZXJtaW5lX3Jh dGUgPSBqaDcxMDBfY2xrX2RldGVybWluZV9yYXRlLAorLQkuc2V0X3JhdGUgPSBqaDcxMDBfY2xr X3NldF9yYXRlLAorLQkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5pdCwKKytzdGF0 aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MXgwX2Nsa19kaXZfb3BzID0geworKwkucmVjYWxj X3JhdGUgPSBqaDcxeDBfY2xrX3JlY2FsY19yYXRlLAorKwkuZGV0ZXJtaW5lX3JhdGUgPSBqaDcx eDBfY2xrX2RldGVybWluZV9yYXRlLAorKwkuc2V0X3JhdGUgPSBqaDcxeDBfY2xrX3NldF9yYXRl LAorKwkuZGVidWdfaW5pdCA9IGpoNzF4MF9jbGtfZGVidWdfaW5pdCwKKyB9OworIAorLXN0YXRp YyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMDBfY2xrX2ZkaXZfb3BzID0geworLQkucmVjYWxj X3JhdGUgPSBqaDcxMDBfY2xrX2ZyYWNfcmVjYWxjX3JhdGUsCistCS5kZXRlcm1pbmVfcmF0ZSA9 IGpoNzEwMF9jbGtfZnJhY19kZXRlcm1pbmVfcmF0ZSwKKy0JLnNldF9yYXRlID0gamg3MTAwX2Ns a19mcmFjX3NldF9yYXRlLAorLQkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5pdCwK KytzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MXgwX2Nsa19mZGl2X29wcyA9IHsKKysJ LnJlY2FsY19yYXRlID0gamg3MXgwX2Nsa19mcmFjX3JlY2FsY19yYXRlLAorKwkuZGV0ZXJtaW5l X3JhdGUgPSBqaDcxeDBfY2xrX2ZyYWNfZGV0ZXJtaW5lX3JhdGUsCisrCS5zZXRfcmF0ZSA9IGpo NzF4MF9jbGtfZnJhY19zZXRfcmF0ZSwKKysJLmRlYnVnX2luaXQgPSBqaDcxeDBfY2xrX2RlYnVn X2luaXQsCisgfTsKKyAKKy1zdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTAwX2Nsa19n ZGl2X29wcyA9IHsKKy0JLmVuYWJsZSA9IGpoNzEwMF9jbGtfZW5hYmxlLAorLQkuZGlzYWJsZSA9 IGpoNzEwMF9jbGtfZGlzYWJsZSwKKy0JLmlzX2VuYWJsZWQgPSBqaDcxMDBfY2xrX2lzX2VuYWJs ZWQsCistCS5yZWNhbGNfcmF0ZSA9IGpoNzEwMF9jbGtfcmVjYWxjX3JhdGUsCistCS5kZXRlcm1p bmVfcmF0ZSA9IGpoNzEwMF9jbGtfZGV0ZXJtaW5lX3JhdGUsCistCS5zZXRfcmF0ZSA9IGpoNzEw MF9jbGtfc2V0X3JhdGUsCistCS5kZWJ1Z19pbml0ID0gamg3MTAwX2Nsa19kZWJ1Z19pbml0LAor K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxeDBfY2xrX2dkaXZfb3BzID0geworKwku ZW5hYmxlID0gamg3MXgwX2Nsa19lbmFibGUsCisrCS5kaXNhYmxlID0gamg3MXgwX2Nsa19kaXNh YmxlLAorKwkuaXNfZW5hYmxlZCA9IGpoNzF4MF9jbGtfaXNfZW5hYmxlZCwKKysJLnJlY2FsY19y YXRlID0gamg3MXgwX2Nsa19yZWNhbGNfcmF0ZSwKKysJLmRldGVybWluZV9yYXRlID0gamg3MXgw X2Nsa19kZXRlcm1pbmVfcmF0ZSwKKysJLnNldF9yYXRlID0gamg3MXgwX2Nsa19zZXRfcmF0ZSwK KysJLmRlYnVnX2luaXQgPSBqaDcxeDBfY2xrX2RlYnVnX2luaXQsCisgfTsKKyAKKy1zdGF0aWMg Y29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTAwX2Nsa19tdXhfb3BzID0geworLQkuZGV0ZXJtaW5l X3JhdGUgPSBqaDcxMDBfY2xrX211eF9kZXRlcm1pbmVfcmF0ZSwKKy0JLnNldF9wYXJlbnQgPSBq aDcxMDBfY2xrX3NldF9wYXJlbnQsCistCS5nZXRfcGFyZW50ID0gamg3MTAwX2Nsa19nZXRfcGFy ZW50LAorLQkuZGVidWdfaW5pdCA9IGpoNzEwMF9jbGtfZGVidWdfaW5pdCwKKytzdGF0aWMgY29u c3Qgc3RydWN0IGNsa19vcHMgamg3MXgwX2Nsa19tdXhfb3BzID0geworKwkuZGV0ZXJtaW5lX3Jh dGUgPSBqaDcxeDBfY2xrX211eF9kZXRlcm1pbmVfcmF0ZSwKKysJLnNldF9wYXJlbnQgPSBqaDcx eDBfY2xrX3NldF9wYXJlbnQsCisrCS5nZXRfcGFyZW50ID0gamg3MXgwX2Nsa19nZXRfcGFyZW50 LAorKwkuZGVidWdfaW5pdCA9IGpoNzF4MF9jbGtfZGVidWdfaW5pdCwKKyB9OworIAorLXN0YXRp YyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMDBfY2xrX2dtdXhfb3BzID0geworLQkuZW5hYmxl ID0gamg3MTAwX2Nsa19lbmFibGUsCistCS5kaXNhYmxlID0gamg3MTAwX2Nsa19kaXNhYmxlLAor LQkuaXNfZW5hYmxlZCA9IGpoNzEwMF9jbGtfaXNfZW5hYmxlZCwKKy0JLmRldGVybWluZV9yYXRl ID0gamg3MTAwX2Nsa19tdXhfZGV0ZXJtaW5lX3JhdGUsCistCS5zZXRfcGFyZW50ID0gamg3MTAw X2Nsa19zZXRfcGFyZW50LAorLQkuZ2V0X3BhcmVudCA9IGpoNzEwMF9jbGtfZ2V0X3BhcmVudCwK Ky0JLmRlYnVnX2luaXQgPSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCisrc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtfb3BzIGpoNzF4MF9jbGtfZ211eF9vcHMgPSB7CisrCS5lbmFibGUgPSBqaDcxeDBf Y2xrX2VuYWJsZSwKKysJLmRpc2FibGUgPSBqaDcxeDBfY2xrX2Rpc2FibGUsCisrCS5pc19lbmFi bGVkID0gamg3MXgwX2Nsa19pc19lbmFibGVkLAorKwkuZGV0ZXJtaW5lX3JhdGUgPSBqaDcxeDBf Y2xrX211eF9kZXRlcm1pbmVfcmF0ZSwKKysJLnNldF9wYXJlbnQgPSBqaDcxeDBfY2xrX3NldF9w YXJlbnQsCisrCS5nZXRfcGFyZW50ID0gamg3MXgwX2Nsa19nZXRfcGFyZW50LAorKwkuZGVidWdf aW5pdCA9IGpoNzF4MF9jbGtfZGVidWdfaW5pdCwKKyB9OworIAorLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgY2xrX29wcyBqaDcxMDBfY2xrX21kaXZfb3BzID0geworLQkucmVjYWxjX3JhdGUgPSBqaDcx MDBfY2xrX3JlY2FsY19yYXRlLAorLQkuZGV0ZXJtaW5lX3JhdGUgPSBqaDcxMDBfY2xrX2RldGVy bWluZV9yYXRlLAorLQkuZ2V0X3BhcmVudCA9IGpoNzEwMF9jbGtfZ2V0X3BhcmVudCwKKy0JLnNl dF9wYXJlbnQgPSBqaDcxMDBfY2xrX3NldF9wYXJlbnQsCistCS5zZXRfcmF0ZSA9IGpoNzEwMF9j bGtfc2V0X3JhdGUsCistCS5kZWJ1Z19pbml0ID0gamg3MTAwX2Nsa19kZWJ1Z19pbml0LAorK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxeDBfY2xrX21kaXZfb3BzID0geworKwkucmVj YWxjX3JhdGUgPSBqaDcxeDBfY2xrX3JlY2FsY19yYXRlLAorKwkuZGV0ZXJtaW5lX3JhdGUgPSBq aDcxeDBfY2xrX2RldGVybWluZV9yYXRlLAorKwkuZ2V0X3BhcmVudCA9IGpoNzF4MF9jbGtfZ2V0 X3BhcmVudCwKKysJLnNldF9wYXJlbnQgPSBqaDcxeDBfY2xrX3NldF9wYXJlbnQsCisrCS5zZXRf cmF0ZSA9IGpoNzF4MF9jbGtfc2V0X3JhdGUsCisrCS5kZWJ1Z19pbml0ID0gamg3MXgwX2Nsa19k ZWJ1Z19pbml0LAorIH07CisgCistc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpoNzEwMF9j bGtfZ21kX29wcyA9IHsKKy0JLmVuYWJsZSA9IGpoNzEwMF9jbGtfZW5hYmxlLAorLQkuZGlzYWJs ZSA9IGpoNzEwMF9jbGtfZGlzYWJsZSwKKy0JLmlzX2VuYWJsZWQgPSBqaDcxMDBfY2xrX2lzX2Vu YWJsZWQsCistCS5yZWNhbGNfcmF0ZSA9IGpoNzEwMF9jbGtfcmVjYWxjX3JhdGUsCistCS5kZXRl cm1pbmVfcmF0ZSA9IGpoNzEwMF9jbGtfZGV0ZXJtaW5lX3JhdGUsCistCS5nZXRfcGFyZW50ID0g amg3MTAwX2Nsa19nZXRfcGFyZW50LAorLQkuc2V0X3BhcmVudCA9IGpoNzEwMF9jbGtfc2V0X3Bh cmVudCwKKy0JLnNldF9yYXRlID0gamg3MTAwX2Nsa19zZXRfcmF0ZSwKKy0JLmRlYnVnX2luaXQg PSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCisrc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGpo NzF4MF9jbGtfZ21kX29wcyA9IHsKKysJLmVuYWJsZSA9IGpoNzF4MF9jbGtfZW5hYmxlLAorKwku ZGlzYWJsZSA9IGpoNzF4MF9jbGtfZGlzYWJsZSwKKysJLmlzX2VuYWJsZWQgPSBqaDcxeDBfY2xr X2lzX2VuYWJsZWQsCisrCS5yZWNhbGNfcmF0ZSA9IGpoNzF4MF9jbGtfcmVjYWxjX3JhdGUsCisr CS5kZXRlcm1pbmVfcmF0ZSA9IGpoNzF4MF9jbGtfZGV0ZXJtaW5lX3JhdGUsCisrCS5nZXRfcGFy ZW50ID0gamg3MXgwX2Nsa19nZXRfcGFyZW50LAorKwkuc2V0X3BhcmVudCA9IGpoNzF4MF9jbGtf c2V0X3BhcmVudCwKKysJLnNldF9yYXRlID0gamg3MXgwX2Nsa19zZXRfcmF0ZSwKKysJLmRlYnVn X2luaXQgPSBqaDcxeDBfY2xrX2RlYnVnX2luaXQsCisgfTsKKyAKKy1zdGF0aWMgY29uc3Qgc3Ry dWN0IGNsa19vcHMgamg3MTAwX2Nsa19pbnZfb3BzID0geworLQkuZ2V0X3BoYXNlID0gamg3MTAw X2Nsa19nZXRfcGhhc2UsCistCS5zZXRfcGhhc2UgPSBqaDcxMDBfY2xrX3NldF9waGFzZSwKKy0J LmRlYnVnX2luaXQgPSBqaDcxMDBfY2xrX2RlYnVnX2luaXQsCisrc3RhdGljIGNvbnN0IHN0cnVj dCBjbGtfb3BzIGpoNzF4MF9jbGtfaW52X29wcyA9IHsKKysJLmdldF9waGFzZSA9IGpoNzF4MF9j bGtfZ2V0X3BoYXNlLAorKwkuc2V0X3BoYXNlID0gamg3MXgwX2Nsa19zZXRfcGhhc2UsCisrCS5k ZWJ1Z19pbml0ID0gamg3MXgwX2Nsa19kZWJ1Z19pbml0LAorIH07CisgCistY29uc3Qgc3RydWN0 IGNsa19vcHMgKnN0YXJmaXZlX2poNzEwMF9jbGtfb3BzKHUzMiBtYXgpCisrY29uc3Qgc3RydWN0 IGNsa19vcHMgKnN0YXJmaXZlX2poNzF4MF9jbGtfb3BzKHUzMiBtYXgpCisgeworLQlpZiAobWF4 ICYgSkg3MTAwX0NMS19ESVZfTUFTSykgeworLQkJaWYgKG1heCAmIEpINzEwMF9DTEtfTVVYX01B U0spIHsKKy0JCQlpZiAobWF4ICYgSkg3MTAwX0NMS19FTkFCTEUpCistCQkJCXJldHVybiAmamg3 MTAwX2Nsa19nbWRfb3BzOworLQkJCXJldHVybiAmamg3MTAwX2Nsa19tZGl2X29wczsKKysJaWYg KG1heCAmIEpINzFYMF9DTEtfRElWX01BU0spIHsKKysJCWlmIChtYXggJiBKSDcxWDBfQ0xLX01V WF9NQVNLKSB7CisrCQkJaWYgKG1heCAmIEpINzFYMF9DTEtfRU5BQkxFKQorKwkJCQlyZXR1cm4g JmpoNzF4MF9jbGtfZ21kX29wczsKKysJCQlyZXR1cm4gJmpoNzF4MF9jbGtfbWRpdl9vcHM7Cisg CQl9CistCQlpZiAobWF4ICYgSkg3MTAwX0NMS19FTkFCTEUpCistCQkJcmV0dXJuICZqaDcxMDBf Y2xrX2dkaXZfb3BzOworLQkJaWYgKG1heCA9PSBKSDcxMDBfQ0xLX0ZSQUNfTUFYKQorLQkJCXJl dHVybiAmamg3MTAwX2Nsa19mZGl2X29wczsKKy0JCXJldHVybiAmamg3MTAwX2Nsa19kaXZfb3Bz OworKwkJaWYgKG1heCAmIEpINzFYMF9DTEtfRU5BQkxFKQorKwkJCXJldHVybiAmamg3MXgwX2Ns a19nZGl2X29wczsKKysJCWlmIChtYXggPT0gSkg3MVgwX0NMS19GUkFDX01BWCkKKysJCQlyZXR1 cm4gJmpoNzF4MF9jbGtfZmRpdl9vcHM7CisrCQlyZXR1cm4gJmpoNzF4MF9jbGtfZGl2X29wczsK KyAJfQorIAorLQlpZiAobWF4ICYgSkg3MTAwX0NMS19NVVhfTUFTSykgeworLQkJaWYgKG1heCAm IEpINzEwMF9DTEtfRU5BQkxFKQorLQkJCXJldHVybiAmamg3MTAwX2Nsa19nbXV4X29wczsKKy0J CXJldHVybiAmamg3MTAwX2Nsa19tdXhfb3BzOworKwlpZiAobWF4ICYgSkg3MVgwX0NMS19NVVhf TUFTSykgeworKwkJaWYgKG1heCAmIEpINzFYMF9DTEtfRU5BQkxFKQorKwkJCXJldHVybiAmamg3 MXgwX2Nsa19nbXV4X29wczsKKysJCXJldHVybiAmamg3MXgwX2Nsa19tdXhfb3BzOworIAl9Cisg CistCWlmIChtYXggJiBKSDcxMDBfQ0xLX0VOQUJMRSkKKy0JCXJldHVybiAmamg3MTAwX2Nsa19n YXRlX29wczsKKysJaWYgKG1heCAmIEpINzFYMF9DTEtfRU5BQkxFKQorKwkJcmV0dXJuICZqaDcx eDBfY2xrX2dhdGVfb3BzOworIAorLQlyZXR1cm4gJmpoNzEwMF9jbGtfaW52X29wczsKKysJcmV0 dXJuICZqaDcxeDBfY2xrX2ludl9vcHM7CisgfQorLUVYUE9SVF9TWU1CT0xfR1BMKHN0YXJmaXZl X2poNzEwMF9jbGtfb3BzKTsKKytFWFBPUlRfU1lNQk9MX0dQTChzdGFyZml2ZV9qaDcxeDBfY2xr X29wcyk7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpo NzF4MC5oIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzF4MC5oCitpbmRl eCBhOGJhNmUyNWI1Y2UuLjM0YmIxMWM3MmViNyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxeDAuaAorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv Y2xrLXN0YXJmaXZlLWpoNzF4MC5oCitAQCAtMSw2ICsxLDYgQEAKKyAvKiBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMCAqLworLSNpZm5kZWYgX19DTEtfU1RBUkZJVkVfSkg3MTAwX0gK Ky0jZGVmaW5lIF9fQ0xLX1NUQVJGSVZFX0pINzEwMF9ICisrI2lmbmRlZiBfX0NMS19TVEFSRklW RV9KSDcxWDBfSAorKyNkZWZpbmUgX19DTEtfU1RBUkZJVkVfSkg3MVgwX0gKKyAKKyAjaW5jbHVk ZSA8bGludXgvYml0cy5oPgorICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KK0BAIC04 LDEwNyArOCwxMTYgQEAKKyAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyAKKyAvKiByZWdp c3RlciBmaWVsZHMgKi8KKy0jZGVmaW5lIEpINzEwMF9DTEtfRU5BQkxFCUJJVCgzMSkKKy0jZGVm aW5lIEpINzEwMF9DTEtfSU5WRVJUCUJJVCgzMCkKKy0jZGVmaW5lIEpINzEwMF9DTEtfTVVYX01B U0sJR0VOTUFTSygyNywgMjQpCistI2RlZmluZSBKSDcxMDBfQ0xLX01VWF9TSElGVAkyNAorLSNk ZWZpbmUgSkg3MTAwX0NMS19ESVZfTUFTSwlHRU5NQVNLKDIzLCAwKQorLSNkZWZpbmUgSkg3MTAw X0NMS19GUkFDX01BU0sJR0VOTUFTSygxNSwgOCkKKy0jZGVmaW5lIEpINzEwMF9DTEtfRlJBQ19T SElGVAk4CistI2RlZmluZSBKSDcxMDBfQ0xLX0lOVF9NQVNLCUdFTk1BU0soNywgMCkKKysjZGVm aW5lIEpINzFYMF9DTEtfRU5BQkxFCUJJVCgzMSkKKysjZGVmaW5lIEpINzFYMF9DTEtfSU5WRVJU CUJJVCgzMCkKKysjZGVmaW5lIEpINzFYMF9DTEtfTVVYX01BU0sJR0VOTUFTSygyNywgMjQpCisr I2RlZmluZSBKSDcxWDBfQ0xLX01VWF9TSElGVAkyNAorKyNkZWZpbmUgSkg3MVgwX0NMS19ESVZf TUFTSwlHRU5NQVNLKDIzLCAwKQorKyNkZWZpbmUgSkg3MVgwX0NMS19GUkFDX01BU0sJR0VOTUFT SygxNSwgOCkKKysjZGVmaW5lIEpINzFYMF9DTEtfRlJBQ19TSElGVAk4CisrI2RlZmluZSBKSDcx WDBfQ0xLX0lOVF9NQVNLCUdFTk1BU0soNywgMCkKKyAKKyAvKiBmcmFjdGlvbmFsIGRpdmlkZXIg bWluL21heCAqLworLSNkZWZpbmUgSkg3MTAwX0NMS19GUkFDX01JTgkxMDBVTAorLSNkZWZpbmUg Skg3MTAwX0NMS19GUkFDX01BWAkyNTU5OVVMCisrI2RlZmluZSBKSDcxWDBfQ0xLX0ZSQUNfTUlO CTEwMFVMCisrI2RlZmluZSBKSDcxWDBfQ0xLX0ZSQUNfTUFYCTI1NTk5VUwKKyAKKyAvKiBjbG9j ayBkYXRhICovCistc3RydWN0IGpoNzEwMF9jbGtfZGF0YSB7Cisrc3RydWN0IGpoNzF4MF9jbGtf ZGF0YSB7CisgCWNvbnN0IGNoYXIgKm5hbWU7CisgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisgCXUz MiBtYXg7CisgCXU4IHBhcmVudHNbNF07CisgfTsKKyAKKy0jZGVmaW5lIEpINzEwMF9HQVRFKF9p ZHgsIF9uYW1lLCBfZmxhZ3MsIF9wYXJlbnQpIFtfaWR4XSA9IHsJCQlcCisrI2RlZmluZSBKSDcx WDBfR0FURShfaWR4LCBfbmFtZSwgX2ZsYWdzLCBfcGFyZW50KQkJCQlcCisrW19pZHhdID0gewkJ CQkJCQkJCVwKKyAJLm5hbWUgPSBfbmFtZSwJCQkJCQkJCVwKKyAJLmZsYWdzID0gQ0xLX1NFVF9S QVRFX1BBUkVOVCB8IChfZmxhZ3MpLAkJCQlcCistCS5tYXggPSBKSDcxMDBfQ0xLX0VOQUJMRSwJ CQkJCQlcCisrCS5tYXggPSBKSDcxWDBfQ0xLX0VOQUJMRSwJCQkJCQlcCisgCS5wYXJlbnRzID0g eyBbMF0gPSBfcGFyZW50IH0sCQkJCQkJXAorIH0KKyAKKy0jZGVmaW5lIEpINzEwMF9fRElWKF9p ZHgsIF9uYW1lLCBfbWF4LCBfcGFyZW50KSBbX2lkeF0gPSB7CQkJXAorKyNkZWZpbmUgSkg3MVgw X19ESVYoX2lkeCwgX25hbWUsIF9tYXgsIF9wYXJlbnQpCQkJCQlcCisrW19pZHhdID0gewkJCQkJ CQkJCVwKKyAJLm5hbWUgPSBfbmFtZSwJCQkJCQkJCVwKKyAJLmZsYWdzID0gMCwJCQkJCQkJCVwK KyAJLm1heCA9IF9tYXgsCQkJCQkJCQlcCisgCS5wYXJlbnRzID0geyBbMF0gPSBfcGFyZW50IH0s CQkJCQkJXAorIH0KKyAKKy0jZGVmaW5lIEpINzEwMF9HRElWKF9pZHgsIF9uYW1lLCBfZmxhZ3Ms IF9tYXgsIF9wYXJlbnQpIFtfaWR4XSA9IHsJCVwKKysjZGVmaW5lIEpINzFYMF9HRElWKF9pZHgs IF9uYW1lLCBfZmxhZ3MsIF9tYXgsIF9wYXJlbnQpCQkJCVwKKytbX2lkeF0gPSB7CQkJCQkJCQkJ XAorIAkubmFtZSA9IF9uYW1lLAkJCQkJCQkJXAorIAkuZmxhZ3MgPSBfZmxhZ3MsCQkJCQkJCVwK Ky0JLm1heCA9IEpINzEwMF9DTEtfRU5BQkxFIHwgKF9tYXgpLAkJCQkJXAorKwkubWF4ID0gSkg3 MVgwX0NMS19FTkFCTEUgfCAoX21heCksCQkJCQlcCisgCS5wYXJlbnRzID0geyBbMF0gPSBfcGFy ZW50IH0sCQkJCQkJXAorIH0KKyAKKy0jZGVmaW5lIEpINzEwMF9GRElWKF9pZHgsIF9uYW1lLCBf cGFyZW50KSBbX2lkeF0gPSB7CQkJCVwKKysjZGVmaW5lIEpINzFYMF9GRElWKF9pZHgsIF9uYW1l LCBfcGFyZW50KQkJCQkJXAorK1tfaWR4XSA9IHsJCQkJCQkJCQlcCisgCS5uYW1lID0gX25hbWUs CQkJCQkJCQlcCisgCS5mbGFncyA9IDAsCQkJCQkJCQlcCistCS5tYXggPSBKSDcxMDBfQ0xLX0ZS QUNfTUFYLAkJCQkJCVwKKysJLm1heCA9IEpINzFYMF9DTEtfRlJBQ19NQVgsCQkJCQkJXAorIAku cGFyZW50cyA9IHsgWzBdID0gX3BhcmVudCB9LAkJCQkJCVwKKyB9CisgCistI2RlZmluZSBKSDcx MDBfX01VWChfaWR4LCBfbmFtZSwgX25wYXJlbnRzLCAuLi4pIFtfaWR4XSA9IHsJCQlcCisrI2Rl ZmluZSBKSDcxWDBfX01VWChfaWR4LCBfbmFtZSwgX25wYXJlbnRzLCAuLi4pCQkJCVwKKytbX2lk eF0gPSB7CQkJCQkJCQkJXAorIAkubmFtZSA9IF9uYW1lLAkJCQkJCQkJXAorIAkuZmxhZ3MgPSAw LAkJCQkJCQkJXAorLQkubWF4ID0gKChfbnBhcmVudHMpIC0gMSkgPDwgSkg3MTAwX0NMS19NVVhf U0hJRlQsCQkJXAorKwkubWF4ID0gKChfbnBhcmVudHMpIC0gMSkgPDwgSkg3MVgwX0NMS19NVVhf U0hJRlQsCQkJXAorIAkucGFyZW50cyA9IHsgX19WQV9BUkdTX18gfSwJCQkJCQlcCisgfQorIAor LSNkZWZpbmUgSkg3MTAwX0dNVVgoX2lkeCwgX25hbWUsIF9mbGFncywgX25wYXJlbnRzLCAuLi4p IFtfaWR4XSA9IHsJCVwKKysjZGVmaW5lIEpINzFYMF9HTVVYKF9pZHgsIF9uYW1lLCBfZmxhZ3Ms IF9ucGFyZW50cywgLi4uKQkJCVwKKytbX2lkeF0gPSB7CQkJCQkJCQkJXAorIAkubmFtZSA9IF9u YW1lLAkJCQkJCQkJXAorIAkuZmxhZ3MgPSBfZmxhZ3MsCQkJCQkJCVwKKy0JLm1heCA9IEpINzEw MF9DTEtfRU5BQkxFIHwJCQkJCQlcCistCQkoKChfbnBhcmVudHMpIC0gMSkgPDwgSkg3MTAwX0NM S19NVVhfU0hJRlQpLAkJCVwKKysJLm1heCA9IEpINzFYMF9DTEtfRU5BQkxFIHwJCQkJCQlcCisr CQkoKChfbnBhcmVudHMpIC0gMSkgPDwgSkg3MVgwX0NMS19NVVhfU0hJRlQpLAkJCVwKKyAJLnBh cmVudHMgPSB7IF9fVkFfQVJHU19fIH0sCQkJCQkJXAorIH0KKyAKKy0jZGVmaW5lIEpINzEwMF9N RElWKF9pZHgsIF9uYW1lLCBfbWF4LCBfbnBhcmVudHMsIC4uLikgW19pZHhdID0gewkJXAorKyNk ZWZpbmUgSkg3MVgwX01ESVYoX2lkeCwgX25hbWUsIF9tYXgsIF9ucGFyZW50cywgLi4uKQkJCQlc CisrW19pZHhdID0gewkJCQkJCQkJCVwKKyAJLm5hbWUgPSBfbmFtZSwJCQkJCQkJCVwKKyAJLmZs YWdzID0gMCwJCQkJCQkJCVwKKy0JLm1heCA9ICgoKF9ucGFyZW50cykgLSAxKSA8PCBKSDcxMDBf Q0xLX01VWF9TSElGVCkgfCAoX21heCksCQlcCisrCS5tYXggPSAoKChfbnBhcmVudHMpIC0gMSkg PDwgSkg3MVgwX0NMS19NVVhfU0hJRlQpIHwgKF9tYXgpLAkJXAorIAkucGFyZW50cyA9IHsgX19W QV9BUkdTX18gfSwJCQkJCQlcCisgfQorIAorLSNkZWZpbmUgSkg3MTAwX19HTUQoX2lkeCwgX25h bWUsIF9mbGFncywgX21heCwgX25wYXJlbnRzLCAuLi4pIFtfaWR4XSA9IHsJXAorKyNkZWZpbmUg Skg3MVgwX19HTUQoX2lkeCwgX25hbWUsIF9mbGFncywgX21heCwgX25wYXJlbnRzLCAuLi4pCQkJ XAorK1tfaWR4XSA9IHsJCQkJCQkJCQlcCisgCS5uYW1lID0gX25hbWUsCQkJCQkJCQlcCisgCS5m bGFncyA9IF9mbGFncywJCQkJCQkJXAorLQkubWF4ID0gSkg3MTAwX0NMS19FTkFCTEUgfAkJCQkJ CVwKKy0JCSgoKF9ucGFyZW50cykgLSAxKSA8PCBKSDcxMDBfQ0xLX01VWF9TSElGVCkgfCAoX21h eCksCQlcCisrCS5tYXggPSBKSDcxWDBfQ0xLX0VOQUJMRSB8CQkJCQkJXAorKwkJKCgoX25wYXJl bnRzKSAtIDEpIDw8IEpINzFYMF9DTEtfTVVYX1NISUZUKSB8IChfbWF4KSwJCVwKKyAJLnBhcmVu dHMgPSB7IF9fVkFfQVJHU19fIH0sCQkJCQkJXAorIH0KKyAKKy0jZGVmaW5lIEpINzEwMF9fSU5W KF9pZHgsIF9uYW1lLCBfcGFyZW50KSBbX2lkeF0gPSB7CQkJCVwKKysjZGVmaW5lIEpINzFYMF9f SU5WKF9pZHgsIF9uYW1lLCBfcGFyZW50KQkJCQkJXAorK1tfaWR4XSA9IHsJCQkJCQkJCQlcCisg CS5uYW1lID0gX25hbWUsCQkJCQkJCQlcCisgCS5mbGFncyA9IENMS19TRVRfUkFURV9QQVJFTlQs CQkJCQkJXAorLQkubWF4ID0gSkg3MTAwX0NMS19JTlZFUlQsCQkJCQkJXAorKwkubWF4ID0gSkg3 MVgwX0NMS19JTlZFUlQsCQkJCQkJXAorIAkucGFyZW50cyA9IHsgWzBdID0gX3BhcmVudCB9LAkJ CQkJCVwKKyB9CisgCistc3RydWN0IGpoNzEwMF9jbGsgeworK3N0cnVjdCBqaDcxeDBfY2xrIHsK KyAJc3RydWN0IGNsa19odyBodzsKKyAJdW5zaWduZWQgaW50IGlkeDsKKyAJdW5zaWduZWQgaW50 IG1heF9kaXY7CisgfTsKKyAKKy1zdHJ1Y3Qgamg3MTAwX2Nsa19wcml2IHsKKytzdHJ1Y3Qgamg3 MXgwX2Nsa19wcml2IHsKKyAJLyogcHJvdGVjdCBjbGsgZW5hYmxlIGFuZCBzZXQgcmF0ZS9wYXJl bnQgZnJvbSBoYXBwZW5pbmcgYXQgdGhlIHNhbWUgdGltZSAqLworIAlzcGlubG9ja190IHJtd19s b2NrOworIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CisgCXZvaWQgX19pb21lbSAqYmFzZTsKKyAJc3Ry dWN0IGNsa19odyAqcGxsWzNdOworLQlzdHJ1Y3Qgamg3MTAwX2NsayByZWdbXTsKKysJc3RydWN0 IGpoNzF4MF9jbGsgcmVnW107CisgfTsKKyAKKy1jb25zdCBzdHJ1Y3QgY2xrX29wcyAqc3RhcmZp dmVfamg3MTAwX2Nsa19vcHModTMyIG1heCk7CisrY29uc3Qgc3RydWN0IGNsa19vcHMgKnN0YXJm aXZlX2poNzF4MF9jbGtfb3BzKHUzMiBtYXgpOworIAorICNlbmRpZgorLS0gCisyLjQwLjEKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMDctcmVzZXQtc3RhcmZpdmUt UmVwbGFjZS1TT0NfU1RBUkZJVkUtd2l0aC1BUkNIX1NUQVJGSS5wYXRjaCBiL3NyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDA3LXJlc2V0LXN0YXJmaXZlLVJlcGxhY2UtU09DX1NUQVJGSVZFLXdp dGgtQVJDSF9TVEFSRkkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uNGZlZDllMDdlNGIzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDA3LXJlc2V0LXN0YXJmaXZlLVJlcGxhY2UtU09DX1NUQVJGSVZFLXdpdGgtQVJD SF9TVEFSRkkucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorRnJvbSBlOTAzYmViZTJlMzUyNTc3YmYw YmNiOGZkZmUxMGQxYWJiODZhZmU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSGFs IEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMg MTk6MTk6MTkgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAwNy84NF0gcmVzZXQ6IHN0YXJmaXZlOiBS ZXBsYWNlIFNPQ19TVEFSRklWRSB3aXRoCisgQVJDSF9TVEFSRklWRQorCitVc2luZyBBUkNIX0ZP TyBzeW1ib2wgaXMgcHJlZmVycmVkIHRoYW4gU09DX0ZPTy4KKworUmV2aWV3ZWQtYnk6IFBoaWxp cHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+CitSZXZpZXdlZC1ieTogQ29ub3IgRG9v bGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEhhbCBGZW5n IDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9yZXNldC9LY29uZmln IHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvS2NvbmZpZyBiL2RyaXZlcnMvcmVzZXQv S2NvbmZpZworaW5kZXggMmE1MmM5OTBkNGZlLi42YWU1YWE0NmE2YjIgMTAwNjQ0CistLS0gYS9k cml2ZXJzL3Jlc2V0L0tjb25maWcKKysrKyBiL2RyaXZlcnMvcmVzZXQvS2NvbmZpZworQEAgLTIz NCw4ICsyMzQsOCBAQCBjb25maWcgUkVTRVRfU09DRlBHQQorIAorIGNvbmZpZyBSRVNFVF9TVEFS RklWRV9KSDcxMDAKKyAJYm9vbCAiU3RhckZpdmUgSkg3MTAwIFJlc2V0IERyaXZlciIKKy0JZGVw ZW5kcyBvbiBTT0NfU1RBUkZJVkUgfHwgQ09NUElMRV9URVNUCistCWRlZmF1bHQgU09DX1NUQVJG SVZFCisrCWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKysJZGVmYXVs dCBBUkNIX1NUQVJGSVZFCisgCWhlbHAKKyAJICBUaGlzIGVuYWJsZXMgdGhlIHJlc2V0IGNvbnRy b2xsZXIgZHJpdmVyIGZvciB0aGUgU3RhckZpdmUgSkg3MTAwIFNvQy4KKyAKKy0tIAorMi40MC4x CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDA4LXJlc2V0LUNyZWF0 ZS1zdWJkaXJlY3RvcnktZm9yLVN0YXJGaXZlLWRyaXZlcnMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4 Ni4zL3BhdGNoZXMvMDAwOC1yZXNldC1DcmVhdGUtc3ViZGlyZWN0b3J5LWZvci1TdGFyRml2ZS1k cml2ZXJzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjE5 OWMzYjcxYTY1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMv MDAwOC1yZXNldC1DcmVhdGUtc3ViZGlyZWN0b3J5LWZvci1TdGFyRml2ZS1kcml2ZXJzLnBhdGNo CkBAIC0wLDAgKzEsOTkgQEAKK0Zyb20gMzQxYzZhNGY2NmFiNDA0YTc3NWU2YTNhNWE2MmZhOGQx MGQ3ZDkwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRo aW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MjAgKzA4 MDAKK1N1YmplY3Q6IFtQQVRDSCAwOC84NF0gcmVzZXQ6IENyZWF0ZSBzdWJkaXJlY3RvcnkgZm9y IFN0YXJGaXZlIGRyaXZlcnMKKworVGhpcyBtb3ZlcyB0aGUgU3RhckZpdmUgSkg3MTAwIHJlc2V0 IGRyaXZlciB0byBhIG5ldyBzdWJkaXJlY3RvcnkgaW4KK3ByZXBhcmF0aW9uIGZvciBhZGRpbmcg bW9yZSBTdGFyRml2ZSByZXNldCBkcml2ZXJzLgorCitSZXZpZXdlZC1ieTogUGhpbGlwcCBaYWJl bCA8cC56YWJlbEBwZW5ndXRyb25peC5kZT4KK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJjaWFpIDx0 b21tLm1lcmNpYWlAZ21haWwuY29tPgorUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3Iu ZG9vbGV5QG1pY3JvY2hpcC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGlu ZyA8a2VybmVsQGVzbWlsLmRrPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0 YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL3Jlc2V0L0tjb25maWcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgOCArLS0tLS0tLQorIGRyaXZlcnMvcmVzZXQvTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCisgZHJpdmVycy9yZXNldC9zdGFy Zml2ZS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICB8IDggKysrKysrKysKKyBkcml2ZXJz L3Jlc2V0L3N0YXJmaXZlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgIHwgMiArKworIGRy aXZlcnMvcmVzZXQveyA9PiBzdGFyZml2ZX0vcmVzZXQtc3RhcmZpdmUtamg3MTAwLmMgfCAwCisg NSBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL0tjb25maWcKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9yZXNldC9zdGFyZml2ZS9NYWtlZmlsZQorIHJlbmFtZSBkcml2ZXJz L3Jlc2V0L3sgPT4gc3RhcmZpdmV9L3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jICgxMDAlKQorCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9LY29uZmlnIGIvZHJpdmVycy9yZXNldC9LY29uZmln CitpbmRleCA2YWU1YWE0NmE2YjIuLjZhYThmMjQzYjMwYyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv cmVzZXQvS2NvbmZpZworKysrIGIvZHJpdmVycy9yZXNldC9LY29uZmlnCitAQCAtMjMyLDEzICsy MzIsNiBAQCBjb25maWcgUkVTRVRfU09DRlBHQQorIAkgIFRoaXMgZW5hYmxlcyB0aGUgcmVzZXQg ZHJpdmVyIGZvciB0aGUgU29DRlBHQSBBUk12NyBwbGF0Zm9ybXMuIFRoaXMKKyAJICBkcml2ZXIg Z2V0cyBpbml0aWFsaXplZCBlYXJseSBkdXJpbmcgcGxhdGZvcm0gaW5pdCBjYWxscy4KKyAKKy1j b25maWcgUkVTRVRfU1RBUkZJVkVfSkg3MTAwCistCWJvb2wgIlN0YXJGaXZlIEpINzEwMCBSZXNl dCBEcml2ZXIiCistCWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKy0J ZGVmYXVsdCBBUkNIX1NUQVJGSVZFCistCWhlbHAKKy0JICBUaGlzIGVuYWJsZXMgdGhlIHJlc2V0 IGNvbnRyb2xsZXIgZHJpdmVyIGZvciB0aGUgU3RhckZpdmUgSkg3MTAwIFNvQy4KKy0KKyBjb25m aWcgUkVTRVRfU1VOUExVUworIAlib29sICJTdW5wbHVzIFNvQ3MgUmVzZXQgRHJpdmVyIiBpZiBD T01QSUxFX1RFU1QKKyAJZGVmYXVsdCBBUkNIX1NVTlBMVVMKK0BAIC0zMjAsNiArMzEzLDcgQEAg Y29uZmlnIFJFU0VUX1pZTlEKKyAJaGVscAorIAkgIFRoaXMgZW5hYmxlcyB0aGUgcmVzZXQgY29u dHJvbGxlciBkcml2ZXIgZm9yIFhpbGlueCBaeW5xIFNvQ3MuCisgCisrc291cmNlICJkcml2ZXJz L3Jlc2V0L3N0YXJmaXZlL0tjb25maWciCisgc291cmNlICJkcml2ZXJzL3Jlc2V0L3N0aS9LY29u ZmlnIgorIHNvdXJjZSAiZHJpdmVycy9yZXNldC9oaXNpbGljb24vS2NvbmZpZyIKKyBzb3VyY2Ug ImRyaXZlcnMvcmVzZXQvdGVncmEvS2NvbmZpZyIKK2RpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0 L01ha2VmaWxlIGIvZHJpdmVycy9yZXNldC9NYWtlZmlsZQoraW5kZXggM2U3ZTVmZDYzM2E4Li43 ZmVjNWFmNmM5NjQgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3Jlc2V0L01ha2VmaWxlCisrKysgYi9k cml2ZXJzL3Jlc2V0L01ha2VmaWxlCitAQCAtMSw2ICsxLDcgQEAKKyAjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCisgb2JqLXkgKz0gY29yZS5vCisgb2JqLXkgKz0gaGlzaWxpY29u LworK29iai15ICs9IHN0YXJmaXZlLworIG9iai0kKENPTkZJR19BUkNIX1NUSSkgKz0gc3RpLwor IG9iai0kKENPTkZJR19BUkNIX1RFR1JBKSArPSB0ZWdyYS8KKyBvYmotJChDT05GSUdfUkVTRVRf QTEwU1IpICs9IHJlc2V0LWExMHNyLm8KK0BAIC0zMCw3ICszMSw2IEBAIG9iai0kKENPTkZJR19S RVNFVF9SWkcyTF9VU0JQSFlfQ1RSTCkgKz0gcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwubworIG9i ai0kKENPTkZJR19SRVNFVF9TQ01JKSArPSByZXNldC1zY21pLm8KKyBvYmotJChDT05GSUdfUkVT RVRfU0lNUExFKSArPSByZXNldC1zaW1wbGUubworIG9iai0kKENPTkZJR19SRVNFVF9TT0NGUEdB KSArPSByZXNldC1zb2NmcGdhLm8KKy1vYmotJChDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MTAw KSArPSByZXNldC1zdGFyZml2ZS1qaDcxMDAubworIG9iai0kKENPTkZJR19SRVNFVF9TVU5QTFVT KSArPSByZXNldC1zdW5wbHVzLm8KKyBvYmotJChDT05GSUdfUkVTRVRfU1VOWEkpICs9IHJlc2V0 LXN1bnhpLm8KKyBvYmotJChDT05GSUdfUkVTRVRfVElfU0NJKSArPSByZXNldC10aS1zY2kubwor ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvS2NvbmZpZyBiL2RyaXZlcnMvcmVz ZXQvc3RhcmZpdmUvS2NvbmZpZworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uYWJiZjBjNTJkMDNlCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3Jlc2V0L3N0 YXJmaXZlL0tjb25maWcKK0BAIC0wLDAgKzEsOCBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAtb25seQorKworK2NvbmZpZyBSRVNFVF9TVEFSRklWRV9KSDcxMDAKKysJYm9v bCAiU3RhckZpdmUgSkg3MTAwIFJlc2V0IERyaXZlciIKKysJZGVwZW5kcyBvbiBBUkNIX1NUQVJG SVZFIHx8IENPTVBJTEVfVEVTVAorKwlkZWZhdWx0IEFSQ0hfU1RBUkZJVkUKKysJaGVscAorKwkg IFRoaXMgZW5hYmxlcyB0aGUgcmVzZXQgY29udHJvbGxlciBkcml2ZXIgZm9yIHRoZSBTdGFyRml2 ZSBKSDcxMDAgU29DLgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvTWFrZWZp bGUgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL01ha2VmaWxlCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMDAwLi42NzBkMDQ5NDIzZjUKKy0tLSAvZGV2L251bGwKKysrKyBi L2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0wLDAgKzEsMiBAQAorKyMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKytvYmotJChDT05GSUdfUkVTRVRfU1RBUkZJ VkVfSkg3MTAwKQkJKz0gcmVzZXQtc3RhcmZpdmUtamg3MTAwLm8KK2RpZmYgLS1naXQgYS9kcml2 ZXJzL3Jlc2V0L3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jIGIvZHJpdmVycy9yZXNldC9zdGFyZml2 ZS9yZXNldC1zdGFyZml2ZS1qaDcxMDAuYworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUg ZnJvbSBkcml2ZXJzL3Jlc2V0L3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jCityZW5hbWUgdG8gZHJp dmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxMDAuYworLS0gCisyLjQwLjEK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMDktcmVzZXQtc3RhcmZp dmUtRmFjdG9yLW91dC1jb21tb24tSkg3MVgwLXJlc2V0LWNvZGUucGF0Y2ggYi9zcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDAwOS1yZXNldC1zdGFyZml2ZS1GYWN0b3Itb3V0LWNvbW1vbi1KSDcx WDAtcmVzZXQtY29kZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwLi5hYTczYjNiODBhZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwMDktcmVzZXQtc3RhcmZpdmUtRmFjdG9yLW91dC1jb21tb24tSkg3MVgwLXJlc2V0 LWNvZGUucGF0Y2gKQEAgLTAsMCArMSw0MDMgQEAKK0Zyb20gM2JjNjkzOWRiNjE0YmMyZDg4MDAx Y2ZiZTk4NTExNDRmZGM4YTQzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwg UmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMg MTk6MTk6MjEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAwOS84NF0gcmVzZXQ6IHN0YXJmaXZlOiBG YWN0b3Igb3V0IGNvbW1vbiBKSDcxWDAgcmVzZXQgY29kZQorCitUaGUgU3RhckZpdmUgSkg3MTAw IFNvQyBoYXMgYWRkaXRpb25hbCByZXNldCBjb250cm9sbGVycyBmb3IgYXVkaW8gYW5kCit2aWRl bywgYnV0IHRoZSByZWdpc3RlcnMgZm9sbG93IHRoZSBzYW1lIHN0cnVjdHVyZS4gT24gdGhlIEpI NzExMCB0aGUKK3Jlc2V0IHJlZ2lzdGVycyBkb24ndCBnZXQgdGhlaXIgb3duIG1lbW9yeSByYW5n ZSwgYnV0IGluc3RlYWQgZm9sbG93IHRoZQorY2xvY2sgY29udHJvbCByZWdpc3RlcnMuIFRoZSBy ZWdpc3RlcnMgc3RpbGwgZm9sbG93IHRoZSBzYW1lIHN0cnVjdHVyZQordGhvdWdoLCBzbyBsZXQn cyBmYWN0b3Igb3V0IHRoZSBjb21tb24gY29kZSB0byBoYW5kbGUgYWxsIHRoZXNlIGNhc2VzLgor CitUZXN0ZWQtYnk6IFRvbW1hc28gTWVyY2lhaSA8dG9tbS5tZXJjaWFpQGdtYWlsLmNvbT4KK1Jl dmlld2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgorU2ln bmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK1NpZ25l ZC1vZmYtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJp dmVycy9yZXNldC9zdGFyZml2ZS9LY29uZmlnICAgICAgICAgICAgICAgIHwgICA0ICsKKyBkcml2 ZXJzL3Jlc2V0L3N0YXJmaXZlL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDIgKworIC4uLi9y ZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxMDAuYyAgICB8IDE1MCArLS0tLS0tLS0t LS0tLS0tCisgLi4uL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4MC5jICAgIHwg MTYyICsrKysrKysrKysrKysrKysrKworIC4uLi9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2 ZS1qaDcxeDAuaCAgICB8ICAxMSArKworIDUgZmlsZXMgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMo KyksIDE0OSBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9yZXNldC9z dGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4MC5oCisKK2RpZmYgLS1naXQg YS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZl L0tjb25maWcKK2luZGV4IGFiYmYwYzUyZDAzZS4uMTkyN2E1YTNiNTNhIDEwMDY0NAorLS0tIGEv ZHJpdmVycy9yZXNldC9zdGFyZml2ZS9LY29uZmlnCisrKysgYi9kcml2ZXJzL3Jlc2V0L3N0YXJm aXZlL0tjb25maWcKK0BAIC0xLDggKzEsMTIgQEAKKyAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkKKyAKKytjb25maWcgUkVTRVRfU1RBUkZJVkVfSkg3MVgwCisrCWJvb2wK KysKKyBjb25maWcgUkVTRVRfU1RBUkZJVkVfSkg3MTAwCisgCWJvb2wgIlN0YXJGaXZlIEpINzEw MCBSZXNldCBEcml2ZXIiCisgCWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RF U1QKKysJc2VsZWN0IFJFU0VUX1NUQVJGSVZFX0pINzFYMAorIAlkZWZhdWx0IEFSQ0hfU1RBUkZJ VkUKKyAJaGVscAorIAkgIFRoaXMgZW5hYmxlcyB0aGUgcmVzZXQgY29udHJvbGxlciBkcml2ZXIg Zm9yIHRoZSBTdGFyRml2ZSBKSDcxMDAgU29DLgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQv c3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL01ha2VmaWxlCitpbmRl eCA2NzBkMDQ5NDIzZjUuLmY2YWExMjQ2NmZhZCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcmVzZXQv c3RhcmZpdmUvTWFrZWZpbGUKKysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvTWFrZWZpbGUK K0BAIC0xLDIgKzEsNCBAQAorICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKytv YmotJChDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MVgwKQkJKz0gcmVzZXQtc3RhcmZpdmUtamg3 MXgwLm8KKysKKyBvYmotJChDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MTAwKQkJKz0gcmVzZXQt c3RhcmZpdmUtamg3MTAwLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jl c2V0LXN0YXJmaXZlLWpoNzEwMC5jIGIvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFy Zml2ZS1qaDcxMDAuYworaW5kZXggZmM0NGIyZmIzZTAzLi41YTY4MzI3YzFmNmEgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jCisrKysg Yi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jCitAQCAtNSwx NTggKzUsMTAgQEAKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgRW1pbCBSZW5uZXIgQmVydGhpbmcg PGtlcm5lbEBlc21pbC5kaz4KKyAgKi8KKyAKKy0jaW5jbHVkZSA8bGludXgvYml0bWFwLmg+Cist I2luY2x1ZGUgPGxpbnV4L2lvLmg+CistI2luY2x1ZGUgPGxpbnV4L2lvLTY0LW5vbmF0b21pYy1s by1oaS5oPgorLSNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KKyAjaW5jbHVkZSA8bGludXgvbW9k X2RldmljZXRhYmxlLmg+CisgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorLSNp bmNsdWRlIDxsaW51eC9yZXNldC1jb250cm9sbGVyLmg+CistI2luY2x1ZGUgPGxpbnV4L3NwaW5s b2NrLmg+CisgCistI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLWpoNzEwMC5o PgorLQorLS8qIHJlZ2lzdGVyIG9mZnNldHMgKi8KKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NF UlQwCTB4MDAKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQxCTB4MDQKKy0jZGVmaW5lIEpI NzEwMF9SRVNFVF9BU1NFUlQyCTB4MDgKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQzCTB4 MGMKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMwCTB4MTAKKy0jZGVmaW5lIEpINzEwMF9S RVNFVF9TVEFUVVMxCTB4MTQKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMyCTB4MTgKKy0j ZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMzCTB4MWMKKy0KKy0vKgorLSAqIFdyaXRpbmcgYSAx IHRvIHRoZSBuJ3RoIGJpdCBvZiB0aGUgbSd0aCBBU1NFUlQgcmVnaXN0ZXIgYXNzZXJ0cworLSAq IGxpbmUgMzJtICsgbiwgYW5kIHdyaXRpbmcgYSAwIGRlYXNzZXJ0cyB0aGUgc2FtZSBsaW5lLgor LSAqIE1vc3QgcmVzZXQgbGluZXMgaGF2ZSB0aGVpciBzdGF0dXMgaW52ZXJ0ZWQgc28gYSAwIGJp dCBpbiB0aGUgU1RBVFVTCistICogcmVnaXN0ZXIgbWVhbnMgdGhlIGxpbmUgaXMgYXNzZXJ0ZWQg YW5kIGEgMSBtZWFucyBpdCdzIGRlYXNzZXJ0ZWQuIEEgZmV3CistICogbGluZXMgZG9uJ3QgdGhv dWdoLCBzbyBzdG9yZSB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIHN0YXR1cyByZWdpc3RlcnMg d2hlbgorLSAqIGFsbCBsaW5lcyBhcmUgYXNzZXJ0ZWQuCistICovCistc3RhdGljIGNvbnN0IHU2 NCBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbMl0gPSB7CistCS8qIFNUQVRVUzAgKi8KKy0JQklUX1VM TF9NQVNLKEpINzEwMF9SU1RfVTc0KSB8CistCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX1ZQNl9E UkVTRVQpIHwKKy0JQklUX1VMTF9NQVNLKEpINzEwMF9SU1RfVlA2X0JSRVNFVCkgfAorLQkvKiBT VEFUVVMxICovCistCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0hJRkk0X0RSRVNFVCkgfAorLQlC SVRfVUxMX01BU0soSkg3MTAwX1JTVF9ISUZJNF9CUkVTRVQpLAorLQkvKiBTVEFUVVMyICovCist CUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0UyNCkgfAorLQkvKiBTVEFUVVMzICovCistCTAsCist fTsKKy0KKy1zdHJ1Y3Qgamg3MTAwX3Jlc2V0IHsKKy0Jc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJf ZGV2IHJjZGV2OworLQkvKiBwcm90ZWN0IHJlZ2lzdGVycyBhZ2FpbnN0IGNvbmN1cnJlbnQgcmVh ZC1tb2RpZnktd3JpdGUgKi8KKy0Jc3BpbmxvY2tfdCBsb2NrOworLQl2b2lkIF9faW9tZW0gKmJh c2U7CistfTsKKy0KKy1zdGF0aWMgaW5saW5lIHN0cnVjdCBqaDcxMDBfcmVzZXQgKgorLWpoNzEw MF9yZXNldF9mcm9tKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYpCisteworLQly ZXR1cm4gY29udGFpbmVyX29mKHJjZGV2LCBzdHJ1Y3Qgamg3MTAwX3Jlc2V0LCByY2Rldik7Cist fQorLQorLXN0YXRpYyBpbnQgamg3MTAwX3Jlc2V0X3VwZGF0ZShzdHJ1Y3QgcmVzZXRfY29udHJv bGxlcl9kZXYgKnJjZGV2LAorLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGlkLCBib29sIGFzc2Vy dCkKKy17CistCXN0cnVjdCBqaDcxMDBfcmVzZXQgKmRhdGEgPSBqaDcxMDBfcmVzZXRfZnJvbShy Y2Rldik7CistCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gQklUX1VMTF9XT1JEKGlkKTsKKy0JdTY0 IG1hc2sgPSBCSVRfVUxMX01BU0soaWQpOworLQl2b2lkIF9faW9tZW0gKnJlZ19hc3NlcnQgPSBk YXRhLT5iYXNlICsgSkg3MTAwX1JFU0VUX0FTU0VSVDAgKyBvZmZzZXQgKiBzaXplb2YodTY0KTsK Ky0Jdm9pZCBfX2lvbWVtICpyZWdfc3RhdHVzID0gZGF0YS0+YmFzZSArIEpINzEwMF9SRVNFVF9T VEFUVVMwICsgb2Zmc2V0ICogc2l6ZW9mKHU2NCk7CistCXU2NCBkb25lID0gamg3MTAwX3Jlc2V0 X2Fzc2VydGVkW29mZnNldF0gJiBtYXNrOworLQl1NjQgdmFsdWU7CistCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7CistCWludCByZXQ7CistCistCWlmICghYXNzZXJ0KQorLQkJZG9uZSBePSBtYXNrOwor LQorLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGF0YS0+bG9jaywgZmxhZ3MpOworLQorLQl2YWx1ZSA9 IHJlYWRxKHJlZ19hc3NlcnQpOworLQlpZiAoYXNzZXJ0KQorLQkJdmFsdWUgfD0gbWFzazsKKy0J ZWxzZQorLQkJdmFsdWUgJj0gfm1hc2s7CistCXdyaXRlcSh2YWx1ZSwgcmVnX2Fzc2VydCk7Cist CistCS8qIGlmIHRoZSBhc3NvY2lhdGVkIGNsb2NrIGlzIGdhdGVkLCBkZWFzc2VydGluZyBtaWdo dCBvdGhlcndpc2UgaGFuZyBmb3JldmVyICovCistCXJldCA9IHJlYWRxX3BvbGxfdGltZW91dF9h dG9taWMocmVnX3N0YXR1cywgdmFsdWUsICh2YWx1ZSAmIG1hc2spID09IGRvbmUsIDAsIDEwMDAp OworLQorLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkYXRhLT5sb2NrLCBmbGFncyk7CistCXJl dHVybiByZXQ7CistfQorLQorLXN0YXRpYyBpbnQgamg3MTAwX3Jlc2V0X2Fzc2VydChzdHJ1Y3Qg cmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGlk KQorLXsKKy0JcmV0dXJuIGpoNzEwMF9yZXNldF91cGRhdGUocmNkZXYsIGlkLCB0cnVlKTsKKy19 CistCistc3RhdGljIGludCBqaDcxMDBfcmVzZXRfZGVhc3NlcnQoc3RydWN0IHJlc2V0X2NvbnRy b2xsZXJfZGV2ICpyY2RldiwKKy0JCQkJIHVuc2lnbmVkIGxvbmcgaWQpCisteworLQlyZXR1cm4g amg3MTAwX3Jlc2V0X3VwZGF0ZShyY2RldiwgaWQsIGZhbHNlKTsKKy19CistCistc3RhdGljIGlu dCBqaDcxMDBfcmVzZXRfcmVzZXQoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwK Ky0JCQkgICAgICB1bnNpZ25lZCBsb25nIGlkKQorLXsKKy0JaW50IHJldDsKKy0KKy0JcmV0ID0g amg3MTAwX3Jlc2V0X2Fzc2VydChyY2RldiwgaWQpOworLQlpZiAocmV0KQorLQkJcmV0dXJuIHJl dDsKKy0KKy0JcmV0dXJuIGpoNzEwMF9yZXNldF9kZWFzc2VydChyY2RldiwgaWQpOworLX0KKy0K Ky1zdGF0aWMgaW50IGpoNzEwMF9yZXNldF9zdGF0dXMoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJf ZGV2ICpyY2RldiwKKy0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBpZCkKKy17CistCXN0cnVjdCBq aDcxMDBfcmVzZXQgKmRhdGEgPSBqaDcxMDBfcmVzZXRfZnJvbShyY2Rldik7CistCXVuc2lnbmVk IGxvbmcgb2Zmc2V0ID0gQklUX1VMTF9XT1JEKGlkKTsKKy0JdTY0IG1hc2sgPSBCSVRfVUxMX01B U0soaWQpOworLQl2b2lkIF9faW9tZW0gKnJlZ19zdGF0dXMgPSBkYXRhLT5iYXNlICsgSkg3MTAw X1JFU0VUX1NUQVRVUzAgKyBvZmZzZXQgKiBzaXplb2YodTY0KTsKKy0JdTY0IHZhbHVlID0gcmVh ZHEocmVnX3N0YXR1cyk7CistCistCXJldHVybiAhKCh2YWx1ZSBeIGpoNzEwMF9yZXNldF9hc3Nl cnRlZFtvZmZzZXRdKSAmIG1hc2spOworLX0KKy0KKy1zdGF0aWMgY29uc3Qgc3RydWN0IHJlc2V0 X2NvbnRyb2xfb3BzIGpoNzEwMF9yZXNldF9vcHMgPSB7CistCS5hc3NlcnQJCT0gamg3MTAwX3Jl c2V0X2Fzc2VydCwKKy0JLmRlYXNzZXJ0CT0gamg3MTAwX3Jlc2V0X2RlYXNzZXJ0LAorLQkucmVz ZXQJCT0gamg3MTAwX3Jlc2V0X3Jlc2V0LAorLQkuc3RhdHVzCQk9IGpoNzEwMF9yZXNldF9zdGF0 dXMsCistfTsKKy0KKy1zdGF0aWMgaW50IF9faW5pdCBqaDcxMDBfcmVzZXRfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKy17CistCXN0cnVjdCBqaDcxMDBfcmVzZXQgKmRhdGE7 CistCistCWRhdGEgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQ X0tFUk5FTCk7CistCWlmICghZGF0YSkKKy0JCXJldHVybiAtRU5PTUVNOworLQorLQlkYXRhLT5i YXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworLQlpZiAoSVNf RVJSKGRhdGEtPmJhc2UpKQorLQkJcmV0dXJuIFBUUl9FUlIoZGF0YS0+YmFzZSk7CistCistCWRh dGEtPnJjZGV2Lm9wcyA9ICZqaDcxMDBfcmVzZXRfb3BzOworLQlkYXRhLT5yY2Rldi5vd25lciA9 IFRISVNfTU9EVUxFOworLQlkYXRhLT5yY2Rldi5ucl9yZXNldHMgPSBKSDcxMDBfUlNUTl9FTkQ7 CistCWRhdGEtPnJjZGV2LmRldiA9ICZwZGV2LT5kZXY7CistCWRhdGEtPnJjZGV2Lm9mX25vZGUg PSBwZGV2LT5kZXYub2Zfbm9kZTsKKy0Jc3Bpbl9sb2NrX2luaXQoJmRhdGEtPmxvY2spOworLQor LQlyZXR1cm4gZGV2bV9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKCZwZGV2LT5kZXYsICZkYXRh LT5yY2Rldik7CistfQorKyNpbmNsdWRlICJyZXNldC1zdGFyZml2ZS1qaDcxeDAuaCIKKyAKKyBz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBqaDcxMDBfcmVzZXRfZHRfaWRzW10gPSB7 CisgCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTAwLXJlc2V0IiB9LAorZGlmZiAtLWdp dCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmMgYi9kcml2 ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4MC5jCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4xMTRhMTNjNGI4YTYKKy0tLSAvZGV2L251bGwK KysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmMKK0BA IC0wLDAgKzEsMTYyIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3It bGF0ZXIKKysvKgorKyAqIFJlc2V0IGRyaXZlciBmb3IgdGhlIFN0YXJGaXZlIEpINzEwMCBTb0MK KysgKgorKyAqIENvcHlyaWdodCAoQykgMjAyMSBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVs QGVzbWlsLmRrPgorKyAqLworKworKyNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KKysjaW5jbHVk ZSA8bGludXgvZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisrI2luY2x1ZGUgPGxp bnV4L2lvLTY0LW5vbmF0b21pYy1sby1oaS5oPgorKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4K KysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3Jl c2V0LWNvbnRyb2xsZXIuaD4KKysjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKysKKysjaW5j bHVkZSAicmVzZXQtc3RhcmZpdmUtamg3MXgwLmgiCisrCisrI2luY2x1ZGUgPGR0LWJpbmRpbmdz L3Jlc2V0L3N0YXJmaXZlLWpoNzEwMC5oPgorKworKy8qIHJlZ2lzdGVyIG9mZnNldHMgKi8KKysj ZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQwCTB4MDAKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9B U1NFUlQxCTB4MDQKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQyCTB4MDgKKysjZGVmaW5l IEpINzEwMF9SRVNFVF9BU1NFUlQzCTB4MGMKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMw CTB4MTAKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMxCTB4MTQKKysjZGVmaW5lIEpINzEw MF9SRVNFVF9TVEFUVVMyCTB4MTgKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMzCTB4MWMK KysKKysvKgorKyAqIFdyaXRpbmcgYSAxIHRvIHRoZSBuJ3RoIGJpdCBvZiB0aGUgbSd0aCBBU1NF UlQgcmVnaXN0ZXIgYXNzZXJ0cworKyAqIGxpbmUgMzJtICsgbiwgYW5kIHdyaXRpbmcgYSAwIGRl YXNzZXJ0cyB0aGUgc2FtZSBsaW5lLgorKyAqIE1vc3QgcmVzZXQgbGluZXMgaGF2ZSB0aGVpciBz dGF0dXMgaW52ZXJ0ZWQgc28gYSAwIGJpdCBpbiB0aGUgU1RBVFVTCisrICogcmVnaXN0ZXIgbWVh bnMgdGhlIGxpbmUgaXMgYXNzZXJ0ZWQgYW5kIGEgMSBtZWFucyBpdCdzIGRlYXNzZXJ0ZWQuIEEg ZmV3CisrICogbGluZXMgZG9uJ3QgdGhvdWdoLCBzbyBzdG9yZSB0aGUgZXhwZWN0ZWQgdmFsdWUg b2YgdGhlIHN0YXR1cyByZWdpc3RlcnMgd2hlbgorKyAqIGFsbCBsaW5lcyBhcmUgYXNzZXJ0ZWQu CisrICovCisrc3RhdGljIGNvbnN0IHU2NCBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbMl0gPSB7Cisr CS8qIFNUQVRVUzAgKi8KKysJQklUX1VMTF9NQVNLKEpINzEwMF9SU1RfVTc0KSB8CisrCUJJVF9V TExfTUFTSyhKSDcxMDBfUlNUX1ZQNl9EUkVTRVQpIHwKKysJQklUX1VMTF9NQVNLKEpINzEwMF9S U1RfVlA2X0JSRVNFVCkgfAorKwkvKiBTVEFUVVMxICovCisrCUJJVF9VTExfTUFTSyhKSDcxMDBf UlNUX0hJRkk0X0RSRVNFVCkgfAorKwlCSVRfVUxMX01BU0soSkg3MTAwX1JTVF9ISUZJNF9CUkVT RVQpLAorKwkvKiBTVEFUVVMyICovCisrCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0UyNCkgfAor KwkvKiBTVEFUVVMzICovCisrCTAsCisrfTsKKysKKytzdHJ1Y3Qgamg3MTAwX3Jlc2V0IHsKKysJ c3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2IHJjZGV2OworKwkvKiBwcm90ZWN0IHJlZ2lzdGVy cyBhZ2FpbnN0IGNvbmN1cnJlbnQgcmVhZC1tb2RpZnktd3JpdGUgKi8KKysJc3BpbmxvY2tfdCBs b2NrOworKwl2b2lkIF9faW9tZW0gKmJhc2U7CisrfTsKKysKKytzdGF0aWMgaW5saW5lIHN0cnVj dCBqaDcxMDBfcmVzZXQgKgorK2poNzEwMF9yZXNldF9mcm9tKHN0cnVjdCByZXNldF9jb250cm9s bGVyX2RldiAqcmNkZXYpCisreworKwlyZXR1cm4gY29udGFpbmVyX29mKHJjZGV2LCBzdHJ1Y3Qg amg3MTAwX3Jlc2V0LCByY2Rldik7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTAwX3Jlc2V0X3Vw ZGF0ZShzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorKwkJCSAgICAgICB1bnNp Z25lZCBsb25nIGlkLCBib29sIGFzc2VydCkKKyt7CisrCXN0cnVjdCBqaDcxMDBfcmVzZXQgKmRh dGEgPSBqaDcxMDBfcmVzZXRfZnJvbShyY2Rldik7CisrCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0g QklUX1VMTF9XT1JEKGlkKTsKKysJdTY0IG1hc2sgPSBCSVRfVUxMX01BU0soaWQpOworKwl2b2lk IF9faW9tZW0gKnJlZ19hc3NlcnQgPSBkYXRhLT5iYXNlICsgSkg3MTAwX1JFU0VUX0FTU0VSVDAg KyBvZmZzZXQgKiBzaXplb2YodTY0KTsKKysJdm9pZCBfX2lvbWVtICpyZWdfc3RhdHVzID0gZGF0 YS0+YmFzZSArIEpINzEwMF9SRVNFVF9TVEFUVVMwICsgb2Zmc2V0ICogc2l6ZW9mKHU2NCk7Cisr CXU2NCBkb25lID0gamg3MTAwX3Jlc2V0X2Fzc2VydGVkW29mZnNldF0gJiBtYXNrOworKwl1NjQg dmFsdWU7CisrCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisrCWludCByZXQ7CisrCisrCWlmICghYXNz ZXJ0KQorKwkJZG9uZSBePSBtYXNrOworKworKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGF0YS0+bG9j aywgZmxhZ3MpOworKworKwl2YWx1ZSA9IHJlYWRxKHJlZ19hc3NlcnQpOworKwlpZiAoYXNzZXJ0 KQorKwkJdmFsdWUgfD0gbWFzazsKKysJZWxzZQorKwkJdmFsdWUgJj0gfm1hc2s7CisrCXdyaXRl cSh2YWx1ZSwgcmVnX2Fzc2VydCk7CisrCisrCS8qIGlmIHRoZSBhc3NvY2lhdGVkIGNsb2NrIGlz IGdhdGVkLCBkZWFzc2VydGluZyBtaWdodCBvdGhlcndpc2UgaGFuZyBmb3JldmVyICovCisrCXJl dCA9IHJlYWRxX3BvbGxfdGltZW91dF9hdG9taWMocmVnX3N0YXR1cywgdmFsdWUsICh2YWx1ZSAm IG1hc2spID09IGRvbmUsIDAsIDEwMDApOworKworKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZk YXRhLT5sb2NrLCBmbGFncyk7CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgamg3 MTAwX3Jlc2V0X2Fzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorKwkJ CSAgICAgICB1bnNpZ25lZCBsb25nIGlkKQorK3sKKysJcmV0dXJuIGpoNzEwMF9yZXNldF91cGRh dGUocmNkZXYsIGlkLCB0cnVlKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBfcmVzZXRfZGVh c3NlcnQoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKysJCQkJIHVuc2lnbmVk IGxvbmcgaWQpCisreworKwlyZXR1cm4gamg3MTAwX3Jlc2V0X3VwZGF0ZShyY2RldiwgaWQsIGZh bHNlKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMDBfcmVzZXRfcmVzZXQoc3RydWN0IHJlc2V0 X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKysJCQkgICAgICB1bnNpZ25lZCBsb25nIGlkKQorK3sK KysJaW50IHJldDsKKysKKysJcmV0ID0gamg3MTAwX3Jlc2V0X2Fzc2VydChyY2RldiwgaWQpOwor KwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcmV0dXJuIGpoNzEwMF9yZXNldF9kZWFz c2VydChyY2RldiwgaWQpOworK30KKysKKytzdGF0aWMgaW50IGpoNzEwMF9yZXNldF9zdGF0dXMo c3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKysJCQkgICAgICAgdW5zaWduZWQg bG9uZyBpZCkKKyt7CisrCXN0cnVjdCBqaDcxMDBfcmVzZXQgKmRhdGEgPSBqaDcxMDBfcmVzZXRf ZnJvbShyY2Rldik7CisrCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gQklUX1VMTF9XT1JEKGlkKTsK KysJdTY0IG1hc2sgPSBCSVRfVUxMX01BU0soaWQpOworKwl2b2lkIF9faW9tZW0gKnJlZ19zdGF0 dXMgPSBkYXRhLT5iYXNlICsgSkg3MTAwX1JFU0VUX1NUQVRVUzAgKyBvZmZzZXQgKiBzaXplb2Yo dTY0KTsKKysJdTY0IHZhbHVlID0gcmVhZHEocmVnX3N0YXR1cyk7CisrCisrCXJldHVybiAhKCh2 YWx1ZSBeIGpoNzEwMF9yZXNldF9hc3NlcnRlZFtvZmZzZXRdKSAmIG1hc2spOworK30KKysKKytz dGF0aWMgY29uc3Qgc3RydWN0IHJlc2V0X2NvbnRyb2xfb3BzIGpoNzEwMF9yZXNldF9vcHMgPSB7 CisrCS5hc3NlcnQJCT0gamg3MTAwX3Jlc2V0X2Fzc2VydCwKKysJLmRlYXNzZXJ0CT0gamg3MTAw X3Jlc2V0X2RlYXNzZXJ0LAorKwkucmVzZXQJCT0gamg3MTAwX3Jlc2V0X3Jlc2V0LAorKwkuc3Rh dHVzCQk9IGpoNzEwMF9yZXNldF9zdGF0dXMsCisrfTsKKysKKytpbnQgamg3MTAwX3Jlc2V0X3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgamg3MTAwX3Jl c2V0ICpkYXRhOworKworKwlkYXRhID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigq ZGF0YSksIEdGUF9LRVJORUwpOworKwlpZiAoIWRhdGEpCisrCQlyZXR1cm4gLUVOT01FTTsKKysK KysJZGF0YS0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsK KysJaWYgKElTX0VSUihkYXRhLT5iYXNlKSkKKysJCXJldHVybiBQVFJfRVJSKGRhdGEtPmJhc2Up OworKworKwlkYXRhLT5yY2Rldi5vcHMgPSAmamg3MTAwX3Jlc2V0X29wczsKKysJZGF0YS0+cmNk ZXYub3duZXIgPSBUSElTX01PRFVMRTsKKysJZGF0YS0+cmNkZXYubnJfcmVzZXRzID0gSkg3MTAw X1JTVE5fRU5EOworKwlkYXRhLT5yY2Rldi5kZXYgPSAmcGRldi0+ZGV2OworKwlkYXRhLT5yY2Rl di5vZl9ub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7CisrCXNwaW5fbG9ja19pbml0KCZkYXRhLT5s b2NrKTsKKysKKysJcmV0dXJuIGRldm1fcmVzZXRfY29udHJvbGxlcl9yZWdpc3RlcigmcGRldi0+ ZGV2LCAmZGF0YS0+cmNkZXYpOworK30KKytFWFBPUlRfU1lNQk9MX0dQTChqaDcxMDBfcmVzZXRf cHJvYmUpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZp dmUtamg3MXgwLmggYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4 MC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4zMThkN2EwZTA5 NmEKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3Rh cmZpdmUtamg3MXgwLmgKK0BAIC0wLDAgKzEsMTEgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vci1sYXRlciAqLworKy8qCisrICogQ29weXJpZ2h0IChDKSAyMDIxIEVt aWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrICovCisrCisrI2lmbmRlZiBf X1JFU0VUX1NUQVJGSVZFX0pINzFYMF9ICisrI2RlZmluZSBfX1JFU0VUX1NUQVJGSVZFX0pINzFY MF9ICisrCisraW50IGpoNzEwMF9yZXNldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KTsKKysKKysjZW5kaWYgLyogX19SRVNFVF9TVEFSRklWRV9KSDcxWDBfSCAqLworLS0gCisy LjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTAtcmVzZXQt c3RhcmZpdmUtRXh0cmFjdC10aGUtY29tbW9uLUpINzFYMC1yZXNldC1jb2RlLnBhdGNoIGIvc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTAtcmVzZXQtc3RhcmZpdmUtRXh0cmFjdC10aGUtY29t bW9uLUpINzFYMC1yZXNldC1jb2RlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAuLjk2ZDgxYmU4YWVlNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDAxMC1yZXNldC1zdGFyZml2ZS1FeHRyYWN0LXRoZS1jb21tb24tSkg3 MVgwLXJlc2V0LWNvZGUucGF0Y2gKQEAgLTAsMCArMSwyMjIgQEAKK0Zyb20gODc0NjRhNTM3ZThl OGMxNWMyMTc5MTlhY2I3MDA4Y2M1Nzk5Y2YzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEg QXByIDIwMjMgMTk6MTk6MjIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxMC84NF0gcmVzZXQ6IHN0 YXJmaXZlOiBFeHRyYWN0IHRoZSBjb21tb24gSkg3MVgwIHJlc2V0IGNvZGUKKworRXh0cmFjdCB0 aGUgY29tbW9uIEpINzFYMCByZXNldCBjb2RlIGZvciByZXVzaW5nIHRoZW0gdG8KK3N1cHBvcnQg Skg3MTEwIFNvQy4KKworVGVzdGVkLWJ5OiBUb21tYXNvIE1lcmNpYWkgPHRvbW0ubWVyY2lhaUBn bWFpbC5jb20+CitSZXZpZXdlZC1ieTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9j aGlwLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNt aWwuZGs+CitTaWduZWQtb2ZmLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNv bT4KKy0tLQorIC4uLi9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxMDAuYyAgICB8 IDQ5ICsrKysrKysrKysrKworIC4uLi9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcx eDAuYyAgICB8IDc2ICsrKysrKy0tLS0tLS0tLS0tLS0KKyAuLi4vcmVzZXQvc3RhcmZpdmUvcmVz ZXQtc3RhcmZpdmUtamg3MXgwLmggICAgfCAgNSArLQorIDMgZmlsZXMgY2hhbmdlZCwgNzYgaW5z ZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0 L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jIGIvZHJpdmVycy9yZXNldC9zdGFyZml2 ZS9yZXNldC1zdGFyZml2ZS1qaDcxMDAuYworaW5kZXggNWE2ODMyN2MxZjZhLi45ZDdjYjRlZDg4 NjkgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpo NzEwMC5jCisrKysgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzEw MC5jCitAQCAtMTAsNiArMTAsNTUgQEAKKyAKKyAjaW5jbHVkZSAicmVzZXQtc3RhcmZpdmUtamg3 MXgwLmgiCisgCisrI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLWpoNzEwMC5o PgorKworKy8qIHJlZ2lzdGVyIG9mZnNldHMgKi8KKysjZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NF UlQwCTB4MDAKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQxCTB4MDQKKysjZGVmaW5lIEpI NzEwMF9SRVNFVF9BU1NFUlQyCTB4MDgKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQzCTB4 MGMKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMwCTB4MTAKKysjZGVmaW5lIEpINzEwMF9S RVNFVF9TVEFUVVMxCTB4MTQKKysjZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMyCTB4MTgKKysj ZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMzCTB4MWMKKysKKysvKgorKyAqIFdyaXRpbmcgYSAx IHRvIHRoZSBuJ3RoIGJpdCBvZiB0aGUgbSd0aCBBU1NFUlQgcmVnaXN0ZXIgYXNzZXJ0cworKyAq IGxpbmUgMzJtICsgbiwgYW5kIHdyaXRpbmcgYSAwIGRlYXNzZXJ0cyB0aGUgc2FtZSBsaW5lLgor KyAqIE1vc3QgcmVzZXQgbGluZXMgaGF2ZSB0aGVpciBzdGF0dXMgaW52ZXJ0ZWQgc28gYSAwIGJp dCBpbiB0aGUgU1RBVFVTCisrICogcmVnaXN0ZXIgbWVhbnMgdGhlIGxpbmUgaXMgYXNzZXJ0ZWQg YW5kIGEgMSBtZWFucyBpdCdzIGRlYXNzZXJ0ZWQuIEEgZmV3CisrICogbGluZXMgZG9uJ3QgdGhv dWdoLCBzbyBzdG9yZSB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIHN0YXR1cyByZWdpc3RlcnMg d2hlbgorKyAqIGFsbCBsaW5lcyBhcmUgYXNzZXJ0ZWQuCisrICovCisrc3RhdGljIGNvbnN0IHU2 NCBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbMl0gPSB7CisrCS8qIFNUQVRVUzAgKi8KKysJQklUX1VM TF9NQVNLKEpINzEwMF9SU1RfVTc0KSB8CisrCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX1ZQNl9E UkVTRVQpIHwKKysJQklUX1VMTF9NQVNLKEpINzEwMF9SU1RfVlA2X0JSRVNFVCkgfAorKwkvKiBT VEFUVVMxICovCisrCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0hJRkk0X0RSRVNFVCkgfAorKwlC SVRfVUxMX01BU0soSkg3MTAwX1JTVF9ISUZJNF9CUkVTRVQpLAorKwkvKiBTVEFUVVMyICovCisr CUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0UyNCkgfAorKwkvKiBTVEFUVVMzICovCisrCTAsCisr fTsKKysKKytzdGF0aWMgaW50IF9faW5pdCBqaDcxMDBfcmVzZXRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKKyt7CisrCXZvaWQgX19pb21lbSAqYmFzZSA9IGRldm1fcGxhdGZv cm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKysKKysJaWYgKElTX0VSUihiYXNlKSkKKysJ CXJldHVybiBQVFJfRVJSKGJhc2UpOworKworKwlyZXR1cm4gcmVzZXRfc3RhcmZpdmVfamg3MTAw X3JlZ2lzdGVyKCZwZGV2LT5kZXYsIHBkZXYtPmRldi5vZl9ub2RlLAorKwkJCQkJICAgICAgYmFz ZSArIEpINzEwMF9SRVNFVF9BU1NFUlQwLAorKwkJCQkJICAgICAgYmFzZSArIEpINzEwMF9SRVNF VF9TVEFUVVMwLAorKwkJCQkJICAgICAgamg3MTAwX3Jlc2V0X2Fzc2VydGVkLAorKwkJCQkJICAg ICAgSkg3MTAwX1JTVE5fRU5ELAorKwkJCQkJICAgICAgVEhJU19NT0RVTEUpOworK30KKysKKyBz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBqaDcxMDBfcmVzZXRfZHRfaWRzW10gPSB7 CisgCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTAwLXJlc2V0IiB9LAorIAl7IC8qIHNl bnRpbmVsICovIH0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0 YXJmaXZlLWpoNzF4MC5jIGIvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1q aDcxeDAuYworaW5kZXggMTE0YTEzYzRiOGE2Li4zNTc3NDQ0YTg5YzYgMTAwNjQ0CistLS0gYS9k cml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4MC5jCisrKysgYi9kcml2 ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4MC5jCitAQCAtMTAsNTEgKzEw LDE4IEBACisgI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lvLTY0LW5v bmF0b21pYy1sby1oaS5oPgorICNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KKy0jaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisgI2luY2x1ZGUgPGxpbnV4L3Jlc2V0LWNvbnRyb2xs ZXIuaD4KKyAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyAKKyAjaW5jbHVkZSAicmVzZXQt c3RhcmZpdmUtamg3MXgwLmgiCisgCistI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L3N0YXJm aXZlLWpoNzEwMC5oPgorLQorLS8qIHJlZ2lzdGVyIG9mZnNldHMgKi8KKy0jZGVmaW5lIEpINzEw MF9SRVNFVF9BU1NFUlQwCTB4MDAKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQxCTB4MDQK Ky0jZGVmaW5lIEpINzEwMF9SRVNFVF9BU1NFUlQyCTB4MDgKKy0jZGVmaW5lIEpINzEwMF9SRVNF VF9BU1NFUlQzCTB4MGMKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMwCTB4MTAKKy0jZGVm aW5lIEpINzEwMF9SRVNFVF9TVEFUVVMxCTB4MTQKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFU VVMyCTB4MTgKKy0jZGVmaW5lIEpINzEwMF9SRVNFVF9TVEFUVVMzCTB4MWMKKy0KKy0vKgorLSAq IFdyaXRpbmcgYSAxIHRvIHRoZSBuJ3RoIGJpdCBvZiB0aGUgbSd0aCBBU1NFUlQgcmVnaXN0ZXIg YXNzZXJ0cworLSAqIGxpbmUgMzJtICsgbiwgYW5kIHdyaXRpbmcgYSAwIGRlYXNzZXJ0cyB0aGUg c2FtZSBsaW5lLgorLSAqIE1vc3QgcmVzZXQgbGluZXMgaGF2ZSB0aGVpciBzdGF0dXMgaW52ZXJ0 ZWQgc28gYSAwIGJpdCBpbiB0aGUgU1RBVFVTCistICogcmVnaXN0ZXIgbWVhbnMgdGhlIGxpbmUg aXMgYXNzZXJ0ZWQgYW5kIGEgMSBtZWFucyBpdCdzIGRlYXNzZXJ0ZWQuIEEgZmV3CistICogbGlu ZXMgZG9uJ3QgdGhvdWdoLCBzbyBzdG9yZSB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIHN0YXR1 cyByZWdpc3RlcnMgd2hlbgorLSAqIGFsbCBsaW5lcyBhcmUgYXNzZXJ0ZWQuCistICovCistc3Rh dGljIGNvbnN0IHU2NCBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbMl0gPSB7CistCS8qIFNUQVRVUzAg Ki8KKy0JQklUX1VMTF9NQVNLKEpINzEwMF9SU1RfVTc0KSB8CistCUJJVF9VTExfTUFTSyhKSDcx MDBfUlNUX1ZQNl9EUkVTRVQpIHwKKy0JQklUX1VMTF9NQVNLKEpINzEwMF9SU1RfVlA2X0JSRVNF VCkgfAorLQkvKiBTVEFUVVMxICovCistCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0hJRkk0X0RS RVNFVCkgfAorLQlCSVRfVUxMX01BU0soSkg3MTAwX1JTVF9ISUZJNF9CUkVTRVQpLAorLQkvKiBT VEFUVVMyICovCistCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0UyNCkgfAorLQkvKiBTVEFUVVMz ICovCistCTAsCistfTsKKy0KKyBzdHJ1Y3Qgamg3MTAwX3Jlc2V0IHsKKyAJc3RydWN0IHJlc2V0 X2NvbnRyb2xsZXJfZGV2IHJjZGV2OworIAkvKiBwcm90ZWN0IHJlZ2lzdGVycyBhZ2FpbnN0IGNv bmN1cnJlbnQgcmVhZC1tb2RpZnktd3JpdGUgKi8KKyAJc3BpbmxvY2tfdCBsb2NrOworLQl2b2lk IF9faW9tZW0gKmJhc2U7CisrCXZvaWQgX19pb21lbSAqYXNzZXJ0OworKwl2b2lkIF9faW9tZW0g KnN0YXR1czsKKysJY29uc3QgdTY0ICphc3NlcnRlZDsKKyB9OworIAorIHN0YXRpYyBpbmxpbmUg c3RydWN0IGpoNzEwMF9yZXNldCAqCitAQCAtNjksOSArMzYsOSBAQCBzdGF0aWMgaW50IGpoNzEw MF9yZXNldF91cGRhdGUoc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpyY2RldiwKKyAJc3Ry dWN0IGpoNzEwMF9yZXNldCAqZGF0YSA9IGpoNzEwMF9yZXNldF9mcm9tKHJjZGV2KTsKKyAJdW5z aWduZWQgbG9uZyBvZmZzZXQgPSBCSVRfVUxMX1dPUkQoaWQpOworIAl1NjQgbWFzayA9IEJJVF9V TExfTUFTSyhpZCk7CistCXZvaWQgX19pb21lbSAqcmVnX2Fzc2VydCA9IGRhdGEtPmJhc2UgKyBK SDcxMDBfUkVTRVRfQVNTRVJUMCArIG9mZnNldCAqIHNpemVvZih1NjQpOworLQl2b2lkIF9faW9t ZW0gKnJlZ19zdGF0dXMgPSBkYXRhLT5iYXNlICsgSkg3MTAwX1JFU0VUX1NUQVRVUzAgKyBvZmZz ZXQgKiBzaXplb2YodTY0KTsKKy0JdTY0IGRvbmUgPSBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbb2Zm c2V0XSAmIG1hc2s7CisrCXZvaWQgX19pb21lbSAqcmVnX2Fzc2VydCA9IGRhdGEtPmFzc2VydCAr IG9mZnNldCAqIHNpemVvZih1NjQpOworKwl2b2lkIF9faW9tZW0gKnJlZ19zdGF0dXMgPSBkYXRh LT5zdGF0dXMgKyBvZmZzZXQgKiBzaXplb2YodTY0KTsKKysJdTY0IGRvbmUgPSBkYXRhLT5hc3Nl cnRlZCA/IGRhdGEtPmFzc2VydGVkW29mZnNldF0gJiBtYXNrIDogMDsKKyAJdTY0IHZhbHVlOwor IAl1bnNpZ25lZCBsb25nIGZsYWdzOworIAlpbnQgcmV0OworQEAgLTEyNSwxMCArOTIsMTAgQEAg c3RhdGljIGludCBqaDcxMDBfcmVzZXRfc3RhdHVzKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2Rl diAqcmNkZXYsCisgCXN0cnVjdCBqaDcxMDBfcmVzZXQgKmRhdGEgPSBqaDcxMDBfcmVzZXRfZnJv bShyY2Rldik7CisgCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gQklUX1VMTF9XT1JEKGlkKTsKKyAJ dTY0IG1hc2sgPSBCSVRfVUxMX01BU0soaWQpOworLQl2b2lkIF9faW9tZW0gKnJlZ19zdGF0dXMg PSBkYXRhLT5iYXNlICsgSkg3MTAwX1JFU0VUX1NUQVRVUzAgKyBvZmZzZXQgKiBzaXplb2YodTY0 KTsKKysJdm9pZCBfX2lvbWVtICpyZWdfc3RhdHVzID0gZGF0YS0+c3RhdHVzICsgb2Zmc2V0ICog c2l6ZW9mKHU2NCk7CisgCXU2NCB2YWx1ZSA9IHJlYWRxKHJlZ19zdGF0dXMpOworIAorLQlyZXR1 cm4gISgodmFsdWUgXiBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbb2Zmc2V0XSkgJiBtYXNrKTsKKysJ cmV0dXJuICEoKHZhbHVlIF4gZGF0YS0+YXNzZXJ0ZWRbb2Zmc2V0XSkgJiBtYXNrKTsKKyB9Cisg Cisgc3RhdGljIGNvbnN0IHN0cnVjdCByZXNldF9jb250cm9sX29wcyBqaDcxMDBfcmVzZXRfb3Bz ID0geworQEAgLTEzOCwyNSArMTA1LDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzZXRfY29u dHJvbF9vcHMgamg3MTAwX3Jlc2V0X29wcyA9IHsKKyAJLnN0YXR1cwkJPSBqaDcxMDBfcmVzZXRf c3RhdHVzLAorIH07CisgCistaW50IGpoNzEwMF9yZXNldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQorK2ludCByZXNldF9zdGFyZml2ZV9qaDcxMDBfcmVnaXN0ZXIoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUsCisrCQkJCSAgIHZvaWQg X19pb21lbSAqYXNzZXJ0LCB2b2lkIF9faW9tZW0gKnN0YXR1cywKKysJCQkJICAgY29uc3QgdTY0 ICphc3NlcnRlZCwgdW5zaWduZWQgaW50IG5yX3Jlc2V0cywKKysJCQkJICAgc3RydWN0IG1vZHVs ZSAqb3duZXIpCisgeworIAlzdHJ1Y3Qgamg3MTAwX3Jlc2V0ICpkYXRhOworIAorLQlkYXRhID0g ZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOworKwlk YXRhID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisgCWlm ICghZGF0YSkKKyAJCXJldHVybiAtRU5PTUVNOworIAorLQlkYXRhLT5iYXNlID0gZGV2bV9wbGF0 Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworLQlpZiAoSVNfRVJSKGRhdGEtPmJhc2Up KQorLQkJcmV0dXJuIFBUUl9FUlIoZGF0YS0+YmFzZSk7CistCisgCWRhdGEtPnJjZGV2Lm9wcyA9 ICZqaDcxMDBfcmVzZXRfb3BzOworLQlkYXRhLT5yY2Rldi5vd25lciA9IFRISVNfTU9EVUxFOwor LQlkYXRhLT5yY2Rldi5ucl9yZXNldHMgPSBKSDcxMDBfUlNUTl9FTkQ7CistCWRhdGEtPnJjZGV2 LmRldiA9ICZwZGV2LT5kZXY7CistCWRhdGEtPnJjZGV2Lm9mX25vZGUgPSBwZGV2LT5kZXYub2Zf bm9kZTsKKysJZGF0YS0+cmNkZXYub3duZXIgPSBvd25lcjsKKysJZGF0YS0+cmNkZXYubnJfcmVz ZXRzID0gbnJfcmVzZXRzOworKwlkYXRhLT5yY2Rldi5kZXYgPSBkZXY7CisrCWRhdGEtPnJjZGV2 Lm9mX25vZGUgPSBvZl9ub2RlOworKworIAlzcGluX2xvY2tfaW5pdCgmZGF0YS0+bG9jayk7Cisr CWRhdGEtPmFzc2VydCA9IGFzc2VydDsKKysJZGF0YS0+c3RhdHVzID0gc3RhdHVzOworKwlkYXRh LT5hc3NlcnRlZCA9IGFzc2VydGVkOworIAorLQlyZXR1cm4gZGV2bV9yZXNldF9jb250cm9sbGVy X3JlZ2lzdGVyKCZwZGV2LT5kZXYsICZkYXRhLT5yY2Rldik7CisrCXJldHVybiBkZXZtX3Jlc2V0 X2NvbnRyb2xsZXJfcmVnaXN0ZXIoZGV2LCAmZGF0YS0+cmNkZXYpOworIH0KKy1FWFBPUlRfU1lN Qk9MX0dQTChqaDcxMDBfcmVzZXRfcHJvYmUpOworK0VYUE9SVF9TWU1CT0xfR1BMKHJlc2V0X3N0 YXJmaXZlX2poNzEwMF9yZWdpc3Rlcik7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9zdGFy Zml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuaCBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVz ZXQtc3RhcmZpdmUtamg3MXgwLmgKK2luZGV4IDMxOGQ3YTBlMDk2YS4uMWZjNWE2NDhjOGQ4IDEw MDY0NAorLS0tIGEvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAu aAorKysrIGIvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuaAor QEAgLTYsNiArNiw5IEBACisgI2lmbmRlZiBfX1JFU0VUX1NUQVJGSVZFX0pINzFYMF9ICisgI2Rl ZmluZSBfX1JFU0VUX1NUQVJGSVZFX0pINzFYMF9ICisgCistaW50IGpoNzEwMF9yZXNldF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKKytpbnQgcmVzZXRfc3RhcmZpdmVfamg3 MTAwX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpvZl9u b2RlLAorKwkJCQkgICB2b2lkIF9faW9tZW0gKmFzc2VydCwgdm9pZCBfX2lvbWVtICpzdGF0dXMs CisrCQkJCSAgIGNvbnN0IHU2NCAqYXNzZXJ0ZWQsIHVuc2lnbmVkIGludCBucl9yZXNldHMsCisr CQkJCSAgIHN0cnVjdCBtb2R1bGUgKm93bmVyKTsKKyAKKyAjZW5kaWYgLyogX19SRVNFVF9TVEFS RklWRV9KSDcxWDBfSCAqLworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51 eDYuMy9wYXRjaGVzLzAwMTEtcmVzZXQtc3RhcmZpdmUtUmVuYW1lLWpoNzEwMC10by1qaDcxeDAt Zm9yLXRoZS1jb21tby5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDExLXJlc2V0 LXN0YXJmaXZlLVJlbmFtZS1qaDcxMDAtdG8tamg3MXgwLWZvci10aGUtY29tbW8ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDRiMGZlNzhjNzJmYQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDExLXJlc2V0LXN0YXJm aXZlLVJlbmFtZS1qaDcxMDAtdG8tamg3MXgwLWZvci10aGUtY29tbW8ucGF0Y2gKQEAgLTAsMCAr MSwxNzQgQEAKK0Zyb20gMTcxODVlYTE4MjQ4Mzk4Yjc1YzIzMzc5YWFjMjdmOGU5MTFmMDY4NSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJu ZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MjMgKzA4MDAKK1N1Ympl Y3Q6IFtQQVRDSCAxMS84NF0gcmVzZXQ6IHN0YXJmaXZlOiBSZW5hbWUgImpoNzEwMCIgdG8gImpo NzF4MCIgZm9yIHRoZQorIGNvbW1vbiBjb2RlCisKK0ZvciB0aGUgY29tbW9uIGNvZGUgd2lsbCBi ZSBzaGFyZWQgd2l0aCB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KKworVGVzdGVkLWJ5OiBUb21t YXNvIE1lcmNpYWkgPHRvbW0ubWVyY2lhaUBnbWFpbC5jb20+CitSZXZpZXdlZC1ieTogQ29ub3Ig RG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEVtaWwg UmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitTaWduZWQtb2ZmLWJ5OiBIYWwgRmVu ZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9yZXNldC9zdGFyZml2ZS9y ZXNldC1zdGFyZml2ZS1qaDcxMDAuYyAgICB8ICAyICstCisgLi4uL3Jlc2V0L3N0YXJmaXZlL3Jl c2V0LXN0YXJmaXZlLWpoNzF4MC5jICAgIHwgNTAgKysrKysrKysrLS0tLS0tLS0tLQorIC4uLi9y ZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuaCAgICB8ICAyICstCisgMyBmaWxl cyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MTAwLmMgYi9kcml2 ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jCitpbmRleCA5ZDdjYjRl ZDg4NjkuLjVmMDZlNWFlMzM0NiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUv cmVzZXQtc3RhcmZpdmUtamg3MTAwLmMKKysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVz ZXQtc3RhcmZpdmUtamg3MTAwLmMKK0BAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IGpoNzEwMF9yZXNldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAlpZiAo SVNfRVJSKGJhc2UpKQorIAkJcmV0dXJuIFBUUl9FUlIoYmFzZSk7CisgCistCXJldHVybiByZXNl dF9zdGFyZml2ZV9qaDcxMDBfcmVnaXN0ZXIoJnBkZXYtPmRldiwgcGRldi0+ZGV2Lm9mX25vZGUs CisrCXJldHVybiByZXNldF9zdGFyZml2ZV9qaDcxeDBfcmVnaXN0ZXIoJnBkZXYtPmRldiwgcGRl di0+ZGV2Lm9mX25vZGUsCisgCQkJCQkgICAgICBiYXNlICsgSkg3MTAwX1JFU0VUX0FTU0VSVDAs CisgCQkJCQkgICAgICBiYXNlICsgSkg3MTAwX1JFU0VUX1NUQVRVUzAsCisgCQkJCQkgICAgICBq aDcxMDBfcmVzZXRfYXNzZXJ0ZWQsCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9zdGFyZml2 ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuYyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQt c3RhcmZpdmUtamg3MXgwLmMKK2luZGV4IDM1Nzc0NDRhODljNi4uYTY4OWY0NzMwZWQ3IDEwMDY0 NAorLS0tIGEvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuYwor KysrIGIvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuYworQEAg LTEsNiArMSw2IEBACisgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0 ZXIKKyAvKgorLSAqIFJlc2V0IGRyaXZlciBmb3IgdGhlIFN0YXJGaXZlIEpINzEwMCBTb0MKKysg KiBSZXNldCBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBKSDcxWDAgU29DcworICAqCisgICogQ29w eXJpZ2h0IChDKSAyMDIxIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Cisg ICovCitAQCAtMTUsNyArMTUsNyBAQAorIAorICNpbmNsdWRlICJyZXNldC1zdGFyZml2ZS1qaDcx eDAuaCIKKyAKKy1zdHJ1Y3Qgamg3MTAwX3Jlc2V0IHsKKytzdHJ1Y3Qgamg3MXgwX3Jlc2V0IHsK KyAJc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2IHJjZGV2OworIAkvKiBwcm90ZWN0IHJlZ2lz dGVycyBhZ2FpbnN0IGNvbmN1cnJlbnQgcmVhZC1tb2RpZnktd3JpdGUgKi8KKyAJc3BpbmxvY2tf dCBsb2NrOworQEAgLTI0LDE2ICsyNCwxNiBAQCBzdHJ1Y3Qgamg3MTAwX3Jlc2V0IHsKKyAJY29u c3QgdTY0ICphc3NlcnRlZDsKKyB9OworIAorLXN0YXRpYyBpbmxpbmUgc3RydWN0IGpoNzEwMF9y ZXNldCAqCistamg3MTAwX3Jlc2V0X2Zyb20oc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJfZGV2ICpy Y2RldikKKytzdGF0aWMgaW5saW5lIHN0cnVjdCBqaDcxeDBfcmVzZXQgKgorK2poNzF4MF9yZXNl dF9mcm9tKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYpCisgeworLQlyZXR1cm4g Y29udGFpbmVyX29mKHJjZGV2LCBzdHJ1Y3Qgamg3MTAwX3Jlc2V0LCByY2Rldik7CisrCXJldHVy biBjb250YWluZXJfb2YocmNkZXYsIHN0cnVjdCBqaDcxeDBfcmVzZXQsIHJjZGV2KTsKKyB9Cisg Cistc3RhdGljIGludCBqaDcxMDBfcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNldF9jb250cm9sbGVy X2RldiAqcmNkZXYsCisrc3RhdGljIGludCBqaDcxeDBfcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNl dF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisgCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgaWQsIGJv b2wgYXNzZXJ0KQorIHsKKy0Jc3RydWN0IGpoNzEwMF9yZXNldCAqZGF0YSA9IGpoNzEwMF9yZXNl dF9mcm9tKHJjZGV2KTsKKysJc3RydWN0IGpoNzF4MF9yZXNldCAqZGF0YSA9IGpoNzF4MF9yZXNl dF9mcm9tKHJjZGV2KTsKKyAJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBCSVRfVUxMX1dPUkQoaWQp OworIAl1NjQgbWFzayA9IEJJVF9VTExfTUFTSyhpZCk7CisgCXZvaWQgX19pb21lbSAqcmVnX2Fz c2VydCA9IGRhdGEtPmFzc2VydCArIG9mZnNldCAqIHNpemVvZih1NjQpOworQEAgLTYyLDM0ICs2 MiwzNCBAQCBzdGF0aWMgaW50IGpoNzEwMF9yZXNldF91cGRhdGUoc3RydWN0IHJlc2V0X2NvbnRy b2xsZXJfZGV2ICpyY2RldiwKKyAJcmV0dXJuIHJldDsKKyB9CisgCistc3RhdGljIGludCBqaDcx MDBfcmVzZXRfYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisrc3Rh dGljIGludCBqaDcxeDBfcmVzZXRfYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAq cmNkZXYsCisgCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgaWQpCisgeworLQlyZXR1cm4gamg3MTAw X3Jlc2V0X3VwZGF0ZShyY2RldiwgaWQsIHRydWUpOworKwlyZXR1cm4gamg3MXgwX3Jlc2V0X3Vw ZGF0ZShyY2RldiwgaWQsIHRydWUpOworIH0KKyAKKy1zdGF0aWMgaW50IGpoNzEwMF9yZXNldF9k ZWFzc2VydChzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorK3N0YXRpYyBpbnQg amg3MXgwX3Jlc2V0X2RlYXNzZXJ0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYs CisgCQkJCSB1bnNpZ25lZCBsb25nIGlkKQorIHsKKy0JcmV0dXJuIGpoNzEwMF9yZXNldF91cGRh dGUocmNkZXYsIGlkLCBmYWxzZSk7CisrCXJldHVybiBqaDcxeDBfcmVzZXRfdXBkYXRlKHJjZGV2 LCBpZCwgZmFsc2UpOworIH0KKyAKKy1zdGF0aWMgaW50IGpoNzEwMF9yZXNldF9yZXNldChzdHJ1 Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorK3N0YXRpYyBpbnQgamg3MXgwX3Jlc2V0 X3Jlc2V0KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsCisgCQkJICAgICAgdW5z aWduZWQgbG9uZyBpZCkKKyB7CisgCWludCByZXQ7CisgCistCXJldCA9IGpoNzEwMF9yZXNldF9h c3NlcnQocmNkZXYsIGlkKTsKKysJcmV0ID0gamg3MXgwX3Jlc2V0X2Fzc2VydChyY2RldiwgaWQp OworIAlpZiAocmV0KQorIAkJcmV0dXJuIHJldDsKKyAKKy0JcmV0dXJuIGpoNzEwMF9yZXNldF9k ZWFzc2VydChyY2RldiwgaWQpOworKwlyZXR1cm4gamg3MXgwX3Jlc2V0X2RlYXNzZXJ0KHJjZGV2 LCBpZCk7CisgfQorIAorLXN0YXRpYyBpbnQgamg3MTAwX3Jlc2V0X3N0YXR1cyhzdHJ1Y3QgcmVz ZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorK3N0YXRpYyBpbnQgamg3MXgwX3Jlc2V0X3N0YXR1 cyhzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorIAkJCSAgICAgICB1bnNpZ25l ZCBsb25nIGlkKQorIHsKKy0Jc3RydWN0IGpoNzEwMF9yZXNldCAqZGF0YSA9IGpoNzEwMF9yZXNl dF9mcm9tKHJjZGV2KTsKKysJc3RydWN0IGpoNzF4MF9yZXNldCAqZGF0YSA9IGpoNzF4MF9yZXNl dF9mcm9tKHJjZGV2KTsKKyAJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBCSVRfVUxMX1dPUkQoaWQp OworIAl1NjQgbWFzayA9IEJJVF9VTExfTUFTSyhpZCk7CisgCXZvaWQgX19pb21lbSAqcmVnX3N0 YXR1cyA9IGRhdGEtPnN0YXR1cyArIG9mZnNldCAqIHNpemVvZih1NjQpOworQEAgLTk4LDI1ICs5 OCwyNSBAQCBzdGF0aWMgaW50IGpoNzEwMF9yZXNldF9zdGF0dXMoc3RydWN0IHJlc2V0X2NvbnRy b2xsZXJfZGV2ICpyY2RldiwKKyAJcmV0dXJuICEoKHZhbHVlIF4gZGF0YS0+YXNzZXJ0ZWRbb2Zm c2V0XSkgJiBtYXNrKTsKKyB9CisgCistc3RhdGljIGNvbnN0IHN0cnVjdCByZXNldF9jb250cm9s X29wcyBqaDcxMDBfcmVzZXRfb3BzID0geworLQkuYXNzZXJ0CQk9IGpoNzEwMF9yZXNldF9hc3Nl cnQsCistCS5kZWFzc2VydAk9IGpoNzEwMF9yZXNldF9kZWFzc2VydCwKKy0JLnJlc2V0CQk9IGpo NzEwMF9yZXNldF9yZXNldCwKKy0JLnN0YXR1cwkJPSBqaDcxMDBfcmVzZXRfc3RhdHVzLAorK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgcmVzZXRfY29udHJvbF9vcHMgamg3MXgwX3Jlc2V0X29wcyA9IHsK KysJLmFzc2VydAkJPSBqaDcxeDBfcmVzZXRfYXNzZXJ0LAorKwkuZGVhc3NlcnQJPSBqaDcxeDBf cmVzZXRfZGVhc3NlcnQsCisrCS5yZXNldAkJPSBqaDcxeDBfcmVzZXRfcmVzZXQsCisrCS5zdGF0 dXMJCT0gamg3MXgwX3Jlc2V0X3N0YXR1cywKKyB9OworIAorLWludCByZXNldF9zdGFyZml2ZV9q aDcxMDBfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9m X25vZGUsCisraW50IHJlc2V0X3N0YXJmaXZlX2poNzF4MF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZSwKKyAJCQkJICAgdm9pZCBfX2lvbWVt ICphc3NlcnQsIHZvaWQgX19pb21lbSAqc3RhdHVzLAorIAkJCQkgICBjb25zdCB1NjQgKmFzc2Vy dGVkLCB1bnNpZ25lZCBpbnQgbnJfcmVzZXRzLAorIAkJCQkgICBzdHJ1Y3QgbW9kdWxlICpvd25l cikKKyB7CistCXN0cnVjdCBqaDcxMDBfcmVzZXQgKmRhdGE7CisrCXN0cnVjdCBqaDcxeDBfcmVz ZXQgKmRhdGE7CisgCisgCWRhdGEgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRhdGEpLCBH RlBfS0VSTkVMKTsKKyAJaWYgKCFkYXRhKQorIAkJcmV0dXJuIC1FTk9NRU07CisgCistCWRhdGEt PnJjZGV2Lm9wcyA9ICZqaDcxMDBfcmVzZXRfb3BzOworKwlkYXRhLT5yY2Rldi5vcHMgPSAmamg3 MXgwX3Jlc2V0X29wczsKKyAJZGF0YS0+cmNkZXYub3duZXIgPSBvd25lcjsKKyAJZGF0YS0+cmNk ZXYubnJfcmVzZXRzID0gbnJfcmVzZXRzOworIAlkYXRhLT5yY2Rldi5kZXYgPSBkZXY7CitAQCAt MTI5LDQgKzEyOSw0IEBAIGludCByZXNldF9zdGFyZml2ZV9qaDcxMDBfcmVnaXN0ZXIoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vCisgCisgCXJldHVybiBkZXZt X3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIoZGV2LCAmZGF0YS0+cmNkZXYpOworIH0KKy1FWFBP UlRfU1lNQk9MX0dQTChyZXNldF9zdGFyZml2ZV9qaDcxMDBfcmVnaXN0ZXIpOworK0VYUE9SVF9T WU1CT0xfR1BMKHJlc2V0X3N0YXJmaXZlX2poNzF4MF9yZWdpc3Rlcik7CitkaWZmIC0tZ2l0IGEv ZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxeDAuaCBiL2RyaXZlcnMv cmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmgKK2luZGV4IDFmYzVhNjQ4Yzhk OC4uYWM5ZTgwZGQzZjU5IDEwMDY0NAorLS0tIGEvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNl dC1zdGFyZml2ZS1qaDcxeDAuaAorKysrIGIvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1z dGFyZml2ZS1qaDcxeDAuaAorQEAgLTYsNyArNiw3IEBACisgI2lmbmRlZiBfX1JFU0VUX1NUQVJG SVZFX0pINzFYMF9ICisgI2RlZmluZSBfX1JFU0VUX1NUQVJGSVZFX0pINzFYMF9ICisgCistaW50 IHJlc2V0X3N0YXJmaXZlX2poNzEwMF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZSwKKytpbnQgcmVzZXRfc3RhcmZpdmVfamg3MXgwX3JlZ2lz dGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpvZl9ub2RlLAorIAkJ CQkgICB2b2lkIF9faW9tZW0gKmFzc2VydCwgdm9pZCBfX2lvbWVtICpzdGF0dXMsCisgCQkJCSAg IGNvbnN0IHU2NCAqYXNzZXJ0ZWQsIHVuc2lnbmVkIGludCBucl9yZXNldHMsCisgCQkJCSAgIHN0 cnVjdCBtb2R1bGUgKm93bmVyKTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDEyLXJlc2V0LXN0YXJmaXZlLWpoNzF4MC1Vc2UtMzJiaXQtSS1P LW9uLTMyYml0LXJlZ2lzdGUucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxMi1y ZXNldC1zdGFyZml2ZS1qaDcxeDAtVXNlLTMyYml0LUktTy1vbi0zMmJpdC1yZWdpc3RlLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmFhNmUxNDAyZjVmYjIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxMi1yZXNldC1z dGFyZml2ZS1qaDcxeDAtVXNlLTMyYml0LUktTy1vbi0zMmJpdC1yZWdpc3RlLnBhdGNoCkBAIC0w LDAgKzEsMTUzIEBACitGcm9tIGU2Y2ZlNmIxM2FlYmUxMzRlZWFhYmQyOWUyNTkxMzEzZjliMmM0 OWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8 a2VybmVsQGVzbWlsLmRrPgorRGF0ZTogU2F0LCAxIEFwciAyMDIzIDE5OjE5OjI0ICswODAwCitT dWJqZWN0OiBbUEFUQ0ggMTIvODRdIHJlc2V0OiBzdGFyZml2ZTogamg3MXgwOiBVc2UgMzJiaXQg SS9PIG9uIDMyYml0CisgcmVnaXN0ZXJzCisKK1dlIGN1cnJlbnRseSB1c2UgNjRiaXQgSS9PIG9u IHRoZSAzMmJpdCByZWdpc3RlcnMuIFRoaXMgd29ya3MgYmVjYXVzZQordGhlcmUgYXJlIGFuIGV2 ZW4gbnVtYmVyIG9mIGFzc2VydCBhbmQgc3RhdHVzIHJlZ2lzdGVycywgc28gdGhleSdyZSBvbmx5 CitldmVyIGFjY2Vzc2VkIGluIHBhaXJzIG9uIDY0Yml0IGJvdW5kYXJpZXMuCisKK1RoZXJlIGFy ZSBob3dldmVyIG90aGVyIHJlc2V0IGNvbnRyb2xsZXJzIGZvciBhdWRpbyBhbmQgdmlkZW8gb24g dGhlCitKSDcxMDAgU29DIHdpdGggb25seSBvbmUgc3RhdHVzIHJlZ2lzdGVyIHRoYXQgaXNuJ3Qg NjRiaXQgYWxpZ25lZCBzbworNjRiaXQgSS9PIHJlc3VsdHMgaW4gYW4gdW5hbGlnbmVkIGFjY2Vz cyBleGNlcHRpb24uCisKK1N3aXRjaCB0byAzMmJpdCBJL08gaW4gcHJlcGFyYXRpb24gZm9yIHN1 cHBvcnRpbmcgdGhlc2UgcmVzZXRzIHRvby4KKworVGVzdGVkLWJ5OiBUb21tYXNvIE1lcmNpYWkg PHRvbW0ubWVyY2lhaUBnbWFpbC5jb20+CitSZXZpZXdlZC1ieTogQ29ub3IgRG9vbGV5IDxjb25v ci5kb29sZXlAbWljcm9jaGlwLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRo aW5nIDxrZXJuZWxAZXNtaWwuZGs+CitTaWduZWQtb2ZmLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdA c3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2 ZS1qaDcxMDAuYyAgICB8IDE0ICsrKystLS0tLQorIC4uLi9yZXNldC9zdGFyZml2ZS9yZXNldC1z dGFyZml2ZS1qaDcxeDAuYyAgICB8IDMxICsrKysrKysrKy0tLS0tLS0tLS0KKyAuLi4vcmVzZXQv c3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmggICAgfCAgMiArLQorIDMgZmlsZXMgY2hh bmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9k cml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzEwMC5jIGIvZHJpdmVycy9y ZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1qaDcxMDAuYworaW5kZXggNWYwNmU1YWUzMzQ2 Li4yYTU2ZjdmZDRiYTcgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0 LXN0YXJmaXZlLWpoNzEwMC5jCisrKysgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0 YXJmaXZlLWpoNzEwMC5jCitAQCAtMzAsMTYgKzMwLDE2IEBACisgICogbGluZXMgZG9uJ3QgdGhv dWdoLCBzbyBzdG9yZSB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIHN0YXR1cyByZWdpc3RlcnMg d2hlbgorICAqIGFsbCBsaW5lcyBhcmUgYXNzZXJ0ZWQuCisgICovCistc3RhdGljIGNvbnN0IHU2 NCBqaDcxMDBfcmVzZXRfYXNzZXJ0ZWRbMl0gPSB7Cisrc3RhdGljIGNvbnN0IHUzMiBqaDcxMDBf cmVzZXRfYXNzZXJ0ZWRbNF0gPSB7CisgCS8qIFNUQVRVUzAgKi8KKy0JQklUX1VMTF9NQVNLKEpI NzEwMF9SU1RfVTc0KSB8CistCUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX1ZQNl9EUkVTRVQpIHwK Ky0JQklUX1VMTF9NQVNLKEpINzEwMF9SU1RfVlA2X0JSRVNFVCkgfAorKwlCSVQoSkg3MTAwX1JT VF9VNzQgJSAzMikgfAorKwlCSVQoSkg3MTAwX1JTVF9WUDZfRFJFU0VUICUgMzIpIHwKKysJQklU KEpINzEwMF9SU1RfVlA2X0JSRVNFVCAlIDMyKSwKKyAJLyogU1RBVFVTMSAqLworLQlCSVRfVUxM X01BU0soSkg3MTAwX1JTVF9ISUZJNF9EUkVTRVQpIHwKKy0JQklUX1VMTF9NQVNLKEpINzEwMF9S U1RfSElGSTRfQlJFU0VUKSwKKysJQklUKEpINzEwMF9SU1RfSElGSTRfRFJFU0VUICUgMzIpIHwK KysJQklUKEpINzEwMF9SU1RfSElGSTRfQlJFU0VUICUgMzIpLAorIAkvKiBTVEFUVVMyICovCist CUJJVF9VTExfTUFTSyhKSDcxMDBfUlNUX0UyNCkgfAorKwlCSVQoSkg3MTAwX1JTVF9FMjQgJSAz MiksCisgCS8qIFNUQVRVUzMgKi8KKyAJMCwKKyB9OworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVz ZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmMgYi9kcml2ZXJzL3Jlc2V0L3N0YXJm aXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzF4MC5jCitpbmRleCBhNjg5ZjQ3MzBlZDcuLjU1YmJiZDJk ZTUyYyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUt amg3MXgwLmMKKysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3 MXgwLmMKK0BAIC04LDcgKzgsNiBAQAorICNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KKyAjaW5j bHVkZSA8bGludXgvZGV2aWNlLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lvLmg+CistI2luY2x1ZGUg PGxpbnV4L2lvLTY0LW5vbmF0b21pYy1sby1oaS5oPgorICNpbmNsdWRlIDxsaW51eC9pb3BvbGwu aD4KKyAjaW5jbHVkZSA8bGludXgvcmVzZXQtY29udHJvbGxlci5oPgorICNpbmNsdWRlIDxsaW51 eC9zcGlubG9jay5oPgorQEAgLTIxLDcgKzIwLDcgQEAgc3RydWN0IGpoNzF4MF9yZXNldCB7Cisg CXNwaW5sb2NrX3QgbG9jazsKKyAJdm9pZCBfX2lvbWVtICphc3NlcnQ7CisgCXZvaWQgX19pb21l bSAqc3RhdHVzOworLQljb25zdCB1NjQgKmFzc2VydGVkOworKwljb25zdCB1MzIgKmFzc2VydGVk OworIH07CisgCisgc3RhdGljIGlubGluZSBzdHJ1Y3Qgamg3MXgwX3Jlc2V0ICoKK0BAIC0zNCwx MiArMzMsMTIgQEAgc3RhdGljIGludCBqaDcxeDBfcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNldF9j b250cm9sbGVyX2RldiAqcmNkZXYsCisgCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgaWQsIGJvb2wg YXNzZXJ0KQorIHsKKyAJc3RydWN0IGpoNzF4MF9yZXNldCAqZGF0YSA9IGpoNzF4MF9yZXNldF9m cm9tKHJjZGV2KTsKKy0JdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBCSVRfVUxMX1dPUkQoaWQpOwor LQl1NjQgbWFzayA9IEJJVF9VTExfTUFTSyhpZCk7CistCXZvaWQgX19pb21lbSAqcmVnX2Fzc2Vy dCA9IGRhdGEtPmFzc2VydCArIG9mZnNldCAqIHNpemVvZih1NjQpOworLQl2b2lkIF9faW9tZW0g KnJlZ19zdGF0dXMgPSBkYXRhLT5zdGF0dXMgKyBvZmZzZXQgKiBzaXplb2YodTY0KTsKKy0JdTY0 IGRvbmUgPSBkYXRhLT5hc3NlcnRlZCA/IGRhdGEtPmFzc2VydGVkW29mZnNldF0gJiBtYXNrIDog MDsKKy0JdTY0IHZhbHVlOworKwl1bnNpZ25lZCBsb25nIG9mZnNldCA9IGlkIC8gMzI7CisrCXUz MiBtYXNrID0gQklUKGlkICUgMzIpOworKwl2b2lkIF9faW9tZW0gKnJlZ19hc3NlcnQgPSBkYXRh LT5hc3NlcnQgKyBvZmZzZXQgKiBzaXplb2YodTMyKTsKKysJdm9pZCBfX2lvbWVtICpyZWdfc3Rh dHVzID0gZGF0YS0+c3RhdHVzICsgb2Zmc2V0ICogc2l6ZW9mKHUzMik7CisrCXUzMiBkb25lID0g ZGF0YS0+YXNzZXJ0ZWQgPyBkYXRhLT5hc3NlcnRlZFtvZmZzZXRdICYgbWFzayA6IDA7CisrCXUz MiB2YWx1ZTsKKyAJdW5zaWduZWQgbG9uZyBmbGFnczsKKyAJaW50IHJldDsKKyAKK0BAIC00OCwx NSArNDcsMTUgQEAgc3RhdGljIGludCBqaDcxeDBfcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNldF9j b250cm9sbGVyX2RldiAqcmNkZXYsCisgCisgCXNwaW5fbG9ja19pcnFzYXZlKCZkYXRhLT5sb2Nr LCBmbGFncyk7CisgCistCXZhbHVlID0gcmVhZHEocmVnX2Fzc2VydCk7CisrCXZhbHVlID0gcmVh ZGwocmVnX2Fzc2VydCk7CisgCWlmIChhc3NlcnQpCisgCQl2YWx1ZSB8PSBtYXNrOworIAllbHNl CisgCQl2YWx1ZSAmPSB+bWFzazsKKy0Jd3JpdGVxKHZhbHVlLCByZWdfYXNzZXJ0KTsKKysJd3Jp dGVsKHZhbHVlLCByZWdfYXNzZXJ0KTsKKyAKKyAJLyogaWYgdGhlIGFzc29jaWF0ZWQgY2xvY2sg aXMgZ2F0ZWQsIGRlYXNzZXJ0aW5nIG1pZ2h0IG90aGVyd2lzZSBoYW5nIGZvcmV2ZXIgKi8KKy0J cmV0ID0gcmVhZHFfcG9sbF90aW1lb3V0X2F0b21pYyhyZWdfc3RhdHVzLCB2YWx1ZSwgKHZhbHVl ICYgbWFzaykgPT0gZG9uZSwgMCwgMTAwMCk7CisrCXJldCA9IHJlYWRsX3BvbGxfdGltZW91dF9h dG9taWMocmVnX3N0YXR1cywgdmFsdWUsICh2YWx1ZSAmIG1hc2spID09IGRvbmUsIDAsIDEwMDAp OworIAorIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkYXRhLT5sb2NrLCBmbGFncyk7CisgCXJl dHVybiByZXQ7CitAQCAtOTAsMTAgKzg5LDEwIEBAIHN0YXRpYyBpbnQgamg3MXgwX3Jlc2V0X3N0 YXR1cyhzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LAorIAkJCSAgICAgICB1bnNp Z25lZCBsb25nIGlkKQorIHsKKyAJc3RydWN0IGpoNzF4MF9yZXNldCAqZGF0YSA9IGpoNzF4MF9y ZXNldF9mcm9tKHJjZGV2KTsKKy0JdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBCSVRfVUxMX1dPUkQo aWQpOworLQl1NjQgbWFzayA9IEJJVF9VTExfTUFTSyhpZCk7CistCXZvaWQgX19pb21lbSAqcmVn X3N0YXR1cyA9IGRhdGEtPnN0YXR1cyArIG9mZnNldCAqIHNpemVvZih1NjQpOworLQl1NjQgdmFs dWUgPSByZWFkcShyZWdfc3RhdHVzKTsKKysJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBpZCAvIDMy OworKwl1MzIgbWFzayA9IEJJVChpZCAlIDMyKTsKKysJdm9pZCBfX2lvbWVtICpyZWdfc3RhdHVz ID0gZGF0YS0+c3RhdHVzICsgb2Zmc2V0ICogc2l6ZW9mKHUzMik7CisrCXUzMiB2YWx1ZSA9IHJl YWRsKHJlZ19zdGF0dXMpOworIAorIAlyZXR1cm4gISgodmFsdWUgXiBkYXRhLT5hc3NlcnRlZFtv ZmZzZXRdKSAmIG1hc2spOworIH0KK0BAIC0xMDcsNyArMTA2LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCByZXNldF9jb250cm9sX29wcyBqaDcxeDBfcmVzZXRfb3BzID0geworIAorIGludCByZXNl dF9zdGFyZml2ZV9qaDcxeDBfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlX25vZGUgKm9mX25vZGUsCisgCQkJCSAgIHZvaWQgX19pb21lbSAqYXNzZXJ0LCB2b2lkIF9f aW9tZW0gKnN0YXR1cywKKy0JCQkJICAgY29uc3QgdTY0ICphc3NlcnRlZCwgdW5zaWduZWQgaW50 IG5yX3Jlc2V0cywKKysJCQkJICAgY29uc3QgdTMyICphc3NlcnRlZCwgdW5zaWduZWQgaW50IG5y X3Jlc2V0cywKKyAJCQkJICAgc3RydWN0IG1vZHVsZSAqb3duZXIpCisgeworIAlzdHJ1Y3Qgamg3 MXgwX3Jlc2V0ICpkYXRhOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVz ZXQtc3RhcmZpdmUtamg3MXgwLmggYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJm aXZlLWpoNzF4MC5oCitpbmRleCBhYzllODBkZDNmNTkuLmRiN2QzOWE4N2Y4NyAxMDA2NDQKKy0t LSBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmgKKysrKyBi L2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MXgwLmgKK0BAIC04LDcg KzgsNyBAQAorIAorIGludCByZXNldF9zdGFyZml2ZV9qaDcxeDBfcmVnaXN0ZXIoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUsCisgCQkJCSAgIHZvaWQgX19p b21lbSAqYXNzZXJ0LCB2b2lkIF9faW9tZW0gKnN0YXR1cywKKy0JCQkJICAgY29uc3QgdTY0ICph c3NlcnRlZCwgdW5zaWduZWQgaW50IG5yX3Jlc2V0cywKKysJCQkJICAgY29uc3QgdTMyICphc3Nl cnRlZCwgdW5zaWduZWQgaW50IG5yX3Jlc2V0cywKKyAJCQkJICAgc3RydWN0IG1vZHVsZSAqb3du ZXIpOworIAorICNlbmRpZiAvKiBfX1JFU0VUX1NUQVJGSVZFX0pINzFYMF9IICovCistLSAKKzIu NDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxMy1jbGstc3Rh cmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1zeXN0ZW0tY2xvY2stZHJpdmVyLnBhdGNoIGIvc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTMtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcx MTAtc3lzdGVtLWNsb2NrLWRyaXZlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi4wM2Q1MDVjZTkzZmVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwMTMtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtc3lz dGVtLWNsb2NrLWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDU2NyBAQAorRnJvbSA3ZTMyMzA3ZTEz NzY2MjcwZmY2YjQ5MmM4ZDU5ZGY0ZTJjMTRhZDM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK0RhdGU6IFNhdCwg MSBBcHIgMjAyMyAxOToxOToyNSArMDgwMAorU3ViamVjdDogW1BBVENIIDEzLzg0XSBjbGs6IHN0 YXJmaXZlOiBBZGQgU3RhckZpdmUgSkg3MTEwIHN5c3RlbSBjbG9jayBkcml2ZXIKKworQWRkIGRy aXZlciBmb3IgdGhlIFN0YXJGaXZlIEpINzExMCBzeXN0ZW0gY2xvY2sgY29udHJvbGxlciBhbmQK K3JlZ2lzdGVyIGFuIGF1eGlsaWFyeSBkZXZpY2UgZm9yIHN5c3RlbSByZXNldCBjb250cm9sbGVy IHdoaWNoCitpcyBuYW1lZCBhcyAicmVzZXQtc3lzIi4KKworVGVzdGVkLWJ5OiBUb21tYXNvIE1l cmNpYWkgPHRvbW0ubWVyY2lhaUBnbWFpbC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5l ciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorQ28tZGV2ZWxvcGVkLWJ5OiBIYWwgRmVuZyA8 aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEhhbCBGZW5nIDxoYWwu ZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZp ZyAgICAgICAgICAgICAgICAgIHwgIDExICsKKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmls ZSAgICAgICAgICAgICAgICAgfCAgIDIgKworIC4uLi9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZl LWpoNzExMC1zeXMuYyAgICB8IDQ5MCArKysrKysrKysrKysrKysrKysKKyBkcml2ZXJzL2Nsay9z dGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLmggICAgfCAgMTEgKworIDQgZmlsZXMgY2hhbmdl ZCwgNTE0IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3Rh cmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zeXMuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLmgKKworZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmln CitpbmRleCAzY2VlYjE5YjVlZGEuLjY3MGM1MDg0YWViOCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL0tjb25maWcKKysrKyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcK K0BAIC0yMCwzICsyMCwxNCBAQCBjb25maWcgQ0xLX1NUQVJGSVZFX0pINzEwMF9BVURJTworIAlo ZWxwCisgCSAgU2F5IFkgb3IgTSBoZXJlIHRvIHN1cHBvcnQgdGhlIGF1ZGlvIGNsb2NrcyBvbiB0 aGUgU3RhckZpdmUgSkg3MTAwCisgCSAgU29DLgorKworK2NvbmZpZyBDTEtfU1RBUkZJVkVfSkg3 MTEwX1NZUworKwlib29sICJTdGFyRml2ZSBKSDcxMTAgc3lzdGVtIGNsb2NrIHN1cHBvcnQiCisr CWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKysJc2VsZWN0IEFVWElM SUFSWV9CVVMKKysJc2VsZWN0IENMS19TVEFSRklWRV9KSDcxWDAKKysJc2VsZWN0IFJFU0VUX1NU QVJGSVZFX0pINzExMAorKwlkZWZhdWx0IEFSQ0hfU1RBUkZJVkUKKysJaGVscAorKwkgIFNheSB5 ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBzeXN0ZW0gY2xvY2sgY29udHJvbGxlciBvbiB0aGUKKysJ ICBTdGFyRml2ZSBKSDcxMTAgU29DLgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZl L01ha2VmaWxlIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUKK2luZGV4IDgyZWRmYTlm OWNiOC4uNWNhNGU4ODdmYjljIDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFr ZWZpbGUKKysrKyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCitAQCAtMywzICszLDUg QEAgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxWDApCSs9IGNsay1zdGFyZml2ZS1qaDcx eDAubworIAorIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTAwKQkrPSBjbGstc3RhcmZp dmUtamg3MTAwLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzEwMF9BVURJTykJKz0g Y2xrLXN0YXJmaXZlLWpoNzEwMC1hdWRpby5vCisrCisrb2JqLSQoQ09ORklHX0NMS19TVEFSRklW RV9KSDcxMTBfU1lTKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLXN5cy5vCitkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zeXMuYyBiL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtc3lzLmMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjVlYzIxMDY0NGUxZAorLS0tIC9kZXYvbnVsbAorKysr IGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zeXMuYworQEAgLTAs MCArMSw0OTAgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKy8qCisr ICogU3RhckZpdmUgSkg3MTEwIFN5c3RlbSBDbG9jayBEcml2ZXIKKysgKgorKyAqIENvcHlyaWdo dCAoQykgMjAyMiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorKyAqIENv cHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqLworKwor KyNpbmNsdWRlIDxsaW51eC9hdXhpbGlhcnlfYnVzLmg+CisrI2luY2x1ZGUgPGxpbnV4L2Nsay1w cm92aWRlci5oPgorKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2lv Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKworKyNpbmNsdWRlIDxk dC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+CisrCisrI2luY2x1ZGUgImNs ay1zdGFyZml2ZS1qaDcxMTAuaCIKKysKKysvKiBleHRlcm5hbCBjbG9ja3MgKi8KKysjZGVmaW5l IEpINzExMF9TWVNDTEtfT1NDCQkJKEpINzExMF9TWVNDTEtfRU5EICsgMCkKKysjZGVmaW5lIEpI NzExMF9TWVNDTEtfR01BQzFfUk1JSV9SRUZJTgkJKEpINzExMF9TWVNDTEtfRU5EICsgMSkKKysj ZGVmaW5lIEpINzExMF9TWVNDTEtfR01BQzFfUkdNSUlfUlhJTgkJKEpINzExMF9TWVNDTEtfRU5E ICsgMikKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTVFhfQkNMS19FWFQJCShKSDcxMTBfU1lT Q0xLX0VORCArIDMpCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xLX0kyU1RYX0xSQ0tfRVhUCQkoSkg3 MTEwX1NZU0NMS19FTkQgKyA0KQorKyNkZWZpbmUgSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xLX0VY VAkJKEpINzExMF9TWVNDTEtfRU5EICsgNSkKKysjZGVmaW5lIEpINzExMF9TWVNDTEtfSTJTUlhf TFJDS19FWFQJCShKSDcxMTBfU1lTQ0xLX0VORCArIDYpCisrI2RlZmluZSBKSDcxMTBfU1lTQ0xL X1RETV9FWFQJCQkoSkg3MTEwX1NZU0NMS19FTkQgKyA3KQorKyNkZWZpbmUgSkg3MTEwX1NZU0NM S19NQ0xLX0VYVAkJCShKSDcxMTBfU1lTQ0xLX0VORCArIDgpCisrI2RlZmluZSBKSDcxMTBfU1lT Q0xLX1BMTDBfT1VUCQkJKEpINzExMF9TWVNDTEtfRU5EICsgOSkKKysjZGVmaW5lIEpINzExMF9T WVNDTEtfUExMMV9PVVQJCQkoSkg3MTEwX1NZU0NMS19FTkQgKyAxMCkKKysjZGVmaW5lIEpINzEx MF9TWVNDTEtfUExMMl9PVVQJCQkoSkg3MTEwX1NZU0NMS19FTkQgKyAxMSkKKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IGpoNzF4MF9jbGtfZGF0YSBqaDcxMTBfc3lzY2xrX2RhdGFbXSBfX2luaXRj b25zdCA9IHsKKysJLyogcm9vdCAqLworKwlKSDcxWDBfX01VWChKSDcxMTBfU1lTQ0xLX0NQVV9S T09ULCAiY3B1X3Jvb3QiLCAyLAorKwkJICAgIEpINzExMF9TWVNDTEtfT1NDLAorKwkJICAgIEpI NzExMF9TWVNDTEtfUExMMF9PVVQpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX0NQVV9D T1JFLCAiY3B1X2NvcmUiLCA3LCBKSDcxMTBfU1lTQ0xLX0NQVV9ST09UKSwKKysJSkg3MVgwX19E SVYoSkg3MTEwX1NZU0NMS19DUFVfQlVTLCAiY3B1X2J1cyIsIDIsIEpINzExMF9TWVNDTEtfQ1BV X0NPUkUpLAorKwlKSDcxWDBfX01VWChKSDcxMTBfU1lTQ0xLX0dQVV9ST09ULCAiZ3B1X3Jvb3Qi LCAyLAorKwkJICAgIEpINzExMF9TWVNDTEtfUExMMl9PVVQsCisrCQkgICAgSkg3MTEwX1NZU0NM S19QTEwxX09VVCksCisrCUpINzFYMF9NRElWKEpINzExMF9TWVNDTEtfUEVSSF9ST09ULCAicGVy aF9yb290IiwgMiwgMiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX1BMTDBfT1VULAorKwkJICAgIEpI NzExMF9TWVNDTEtfUExMMl9PVVQpLAorKwlKSDcxWDBfX01VWChKSDcxMTBfU1lTQ0xLX0JVU19S T09ULCAiYnVzX3Jvb3QiLCAyLAorKwkJICAgIEpINzExMF9TWVNDTEtfT1NDLAorKwkJICAgIEpI NzExMF9TWVNDTEtfUExMMl9PVVQpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX05PQ1NU R19CVVMsICJub2NzdGdfYnVzIiwgMywgSkg3MTEwX1NZU0NMS19CVVNfUk9PVCksCisrCUpINzFY MF9fRElWKEpINzExMF9TWVNDTEtfQVhJX0NGRzAsICJheGlfY2ZnMCIsIDMsIEpINzExMF9TWVND TEtfQlVTX1JPT1QpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX1NUR19BWElBSEIsICJz dGdfYXhpYWhiIiwgMiwgSkg3MTEwX1NZU0NMS19BWElfQ0ZHMCksCisrCUpINzFYMF9HQVRFKEpI NzExMF9TWVNDTEtfQUhCMCwgImFoYjAiLCBDTEtfSVNfQ1JJVElDQUwsIEpINzExMF9TWVNDTEtf U1RHX0FYSUFIQiksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfQUhCMSwgImFoYjEiLCBD TEtfSVNfQ1JJVElDQUwsIEpINzExMF9TWVNDTEtfU1RHX0FYSUFIQiksCisrCUpINzFYMF9fRElW KEpINzExMF9TWVNDTEtfQVBCX0JVUywgImFwYl9idXMiLCA4LCBKSDcxMTBfU1lTQ0xLX1NUR19B WElBSEIpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX0FQQjAsICJhcGIwIiwgQ0xLX0lT X0NSSVRJQ0FMLCBKSDcxMTBfU1lTQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBf U1lTQ0xLX1BMTDBfRElWMiwgInBsbDBfZGl2MiIsIDIsIEpINzExMF9TWVNDTEtfUExMMF9PVVQp LAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX1BMTDFfRElWMiwgInBsbDFfZGl2MiIsIDIs IEpINzExMF9TWVNDTEtfUExMMV9PVVQpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX1BM TDJfRElWMiwgInBsbDJfZGl2MiIsIDIsIEpINzExMF9TWVNDTEtfUExMMl9PVVQpLAorKwlKSDcx WDBfX0RJVihKSDcxMTBfU1lTQ0xLX0FVRElPX1JPT1QsICJhdWRpb19yb290IiwgOCwgSkg3MTEw X1NZU0NMS19QTEwyX09VVCksCisrCUpINzFYMF9fRElWKEpINzExMF9TWVNDTEtfTUNMS19JTk5F UiwgIm1jbGtfaW5uZXIiLCA2NCwgSkg3MTEwX1NZU0NMS19BVURJT19ST09UKSwKKysJSkg3MVgw X19NVVgoSkg3MTEwX1NZU0NMS19NQ0xLLCAibWNsayIsIDIsCisrCQkgICAgSkg3MTEwX1NZU0NM S19NQ0xLX0lOTkVSLAorKwkJICAgIEpINzExMF9TWVNDTEtfTUNMS19FWFQpLAorKwlKSDcxWDBf R0FURShKSDcxMTBfU1lTQ0xLX01DTEtfT1VULCAibWNsa19vdXQiLCAwLCBKSDcxMTBfU1lTQ0xL X01DTEtfSU5ORVIpLAorKwlKSDcxWDBfTURJVihKSDcxMTBfU1lTQ0xLX0lTUF8yWCwgImlzcF8y eCIsIDgsIDIsCisrCQkgICAgSkg3MTEwX1NZU0NMS19QTEwyX09VVCwKKysJCSAgICBKSDcxMTBf U1lTQ0xLX1BMTDFfT1VUKSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX1NZU0NMS19JU1BfQVhJLCAi aXNwX2F4aSIsIDQsIEpINzExMF9TWVNDTEtfSVNQXzJYKSwKKysJSkg3MVgwX0dESVYoSkg3MTEw X1NZU0NMS19HQ0xLMCwgImdjbGswIiwgMCwgNjIsIEpINzExMF9TWVNDTEtfUExMMF9ESVYyKSwK KysJSkg3MVgwX0dESVYoSkg3MTEwX1NZU0NMS19HQ0xLMSwgImdjbGsxIiwgMCwgNjIsIEpINzEx MF9TWVNDTEtfUExMMV9ESVYyKSwKKysJSkg3MVgwX0dESVYoSkg3MTEwX1NZU0NMS19HQ0xLMiwg ImdjbGsyIiwgMCwgNjIsIEpINzExMF9TWVNDTEtfUExMMl9ESVYyKSwKKysJLyogY29yZXMgKi8K KysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19DT1JFLCAiY29yZSIsIENMS19JU19DUklUSUNB TCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtf Q09SRTEsICJjb3JlMSIsIENMS19JU19DUklUSUNBTCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSks CisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfQ09SRTIsICJjb3JlMiIsIENMS19JU19DUklU SUNBTCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVND TEtfQ09SRTMsICJjb3JlMyIsIENMS19JU19DUklUSUNBTCwgSkg3MTEwX1NZU0NMS19DUFVfQ09S RSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfQ09SRTQsICJjb3JlNCIsIENMS19JU19D UklUSUNBTCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9T WVNDTEtfREVCVUcsICJkZWJ1ZyIsIDAsIEpINzExMF9TWVNDTEtfQ1BVX0JVUyksCisrCUpINzFY MF9fRElWKEpINzExMF9TWVNDTEtfUlRDX1RPR0dMRSwgInJ0Y190b2dnbGUiLCA2LCBKSDcxMTBf U1lTQ0xLX09TQyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfVFJBQ0UwLCAidHJhY2Uw IiwgMCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVND TEtfVFJBQ0UxLCAidHJhY2UxIiwgMCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFY MF9HQVRFKEpINzExMF9TWVNDTEtfVFJBQ0UyLCAidHJhY2UyIiwgMCwgSkg3MTEwX1NZU0NMS19D UFVfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfVFJBQ0UzLCAidHJhY2UzIiwg MCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtf VFJBQ0U0LCAidHJhY2U0IiwgMCwgSkg3MTEwX1NZU0NMS19DUFVfQ09SRSksCisrCUpINzFYMF9H QVRFKEpINzExMF9TWVNDTEtfVFJBQ0VfQ09NLCAidHJhY2VfY29tIiwgMCwgSkg3MTEwX1NZU0NM S19DUFVfQlVTKSwKKysJLyogbm9jICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfTk9D X0JVU19DUFVfQVhJLCAibm9jX2J1c19jcHVfYXhpIiwgQ0xLX0lTX0NSSVRJQ0FMLAorKwkJICAg IEpINzExMF9TWVNDTEtfQ1BVX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfTk9D X0JVU19BWElDRkcwX0FYSSwgIm5vY19idXNfYXhpY2ZnMF9heGkiLCBDTEtfSVNfQ1JJVElDQUws CisrCQkgICAgSkg3MTEwX1NZU0NMS19BWElfQ0ZHMCksCisrCS8qIGRkciAqLworKwlKSDcxWDBf X0RJVihKSDcxMTBfU1lTQ0xLX09TQ19ESVYyLCAib3NjX2RpdjIiLCAyLCBKSDcxMTBfU1lTQ0xL X09TQyksCisrCUpINzFYMF9fRElWKEpINzExMF9TWVNDTEtfUExMMV9ESVY0LCAicGxsMV9kaXY0 IiwgMiwgSkg3MTEwX1NZU0NMS19QTEwxX0RJVjIpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lT Q0xLX1BMTDFfRElWOCwgInBsbDFfZGl2OCIsIDIsIEpINzExMF9TWVNDTEtfUExMMV9ESVY0KSwK KysJSkg3MVgwX19NVVgoSkg3MTEwX1NZU0NMS19ERFJfQlVTLCAiZGRyX2J1cyIsIDQsCisrCQkg ICAgSkg3MTEwX1NZU0NMS19PU0NfRElWMiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX1BMTDFfRElW MiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX1BMTDFfRElWNCwKKysJCSAgICBKSDcxMTBfU1lTQ0xL X1BMTDFfRElWOCksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfRERSX0FYSSwgImRkcl9h eGkiLCBDTEtfSVNfQ1JJVElDQUwsIEpINzExMF9TWVNDTEtfRERSX0JVUyksCisrCS8qIGdwdSAq LworKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX0dQVV9DT1JFLCAiZ3B1X2NvcmUiLCA3LCBK SDcxMTBfU1lTQ0xLX0dQVV9ST09UKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19HUFVf Q09SRV9DTEssICJncHVfY29yZV9jbGsiLCAwLCBKSDcxMTBfU1lTQ0xLX0dQVV9DT1JFKSwKKysJ Skg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19HUFVfU1lTX0NMSywgImdwdV9zeXNfY2xrIiwgMCwg Skg3MTEwX1NZU0NMS19JU1BfQVhJKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19HUFVf QVBCLCAiZ3B1X2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCX0JVUyksCisrCUpINzFYMF9HRElW KEpINzExMF9TWVNDTEtfR1BVX1JUQ19UT0dHTEUsICJncHVfcnRjX3RvZ2dsZSIsIDAsIDEyLCBK SDcxMTBfU1lTQ0xLX09TQyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfTk9DX0JVU19H UFVfQVhJLCAibm9jX2J1c19ncHVfYXhpIiwgMCwgSkg3MTEwX1NZU0NMS19HUFVfQ09SRSksCisr CS8qIGlzcCAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX0lTUF9UT1BfQ09SRSwgImlz cF90b3BfY29yZSIsIDAsIEpINzExMF9TWVNDTEtfSVNQXzJYKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTEwX1NZU0NMS19JU1BfVE9QX0FYSSwgImlzcF90b3BfYXhpIiwgMCwgSkg3MTEwX1NZU0NMS19J U1BfQVhJKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19OT0NfQlVTX0lTUF9BWEksICJu b2NfYnVzX2lzcF9heGkiLCBDTEtfSVNfQ1JJVElDQUwsCisrCQkgICAgSkg3MTEwX1NZU0NMS19J U1BfQVhJKSwKKysJLyogaGlmaTQgKi8KKysJSkg3MVgwX19ESVYoSkg3MTEwX1NZU0NMS19ISUZJ NF9DT1JFLCAiaGlmaTRfY29yZSIsIDE1LCBKSDcxMTBfU1lTQ0xLX0JVU19ST09UKSwKKysJSkg3 MVgwX19ESVYoSkg3MTEwX1NZU0NMS19ISUZJNF9BWEksICJoaWZpNF9heGkiLCAyLCBKSDcxMTBf U1lTQ0xLX0hJRkk0X0NPUkUpLAorKwkvKiBheGlfY2ZnMSAqLworKwlKSDcxWDBfR0FURShKSDcx MTBfU1lTQ0xLX0FYSV9DRkcxX01BSU4sICJheGlfY2ZnMV9tYWluIiwgQ0xLX0lTX0NSSVRJQ0FM LAorKwkJICAgIEpINzExMF9TWVNDTEtfSVNQX0FYSSksCisrCUpINzFYMF9HQVRFKEpINzExMF9T WVNDTEtfQVhJX0NGRzFfQUhCLCAiYXhpX2NmZzFfYWhiIiwgQ0xLX0lTX0NSSVRJQ0FMLAorKwkJ ICAgIEpINzExMF9TWVNDTEtfQUhCMCksCisrCS8qIHZvdXQgKi8KKysJSkg3MVgwX0dBVEUoSkg3 MTEwX1NZU0NMS19WT1VUX1NSQywgInZvdXRfc3JjIiwgMCwgSkg3MTEwX1NZU0NMS19QTEwyX09V VCksCisrCUpINzFYMF9fRElWKEpINzExMF9TWVNDTEtfVk9VVF9BWEksICJ2b3V0X2F4aSIsIDcs IEpINzExMF9TWVNDTEtfUExMMl9PVVQpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX05P Q19CVVNfRElTUF9BWEksICJub2NfYnVzX2Rpc3BfYXhpIiwgMCwgSkg3MTEwX1NZU0NMS19WT1VU X0FYSSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfVk9VVF9UT1BfQUhCLCAidm91dF90 b3BfYWhiIiwgMCwgSkg3MTEwX1NZU0NMS19BSEIxKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZ U0NMS19WT1VUX1RPUF9BWEksICJ2b3V0X3RvcF9heGkiLCAwLCBKSDcxMTBfU1lTQ0xLX1ZPVVRf QVhJKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19WT1VUX1RPUF9IRE1JVFgwX01DTEss ICJ2b3V0X3RvcF9oZG1pdHgwX21jbGsiLCAwLAorKwkJICAgIEpINzExMF9TWVNDTEtfTUNMSyks CisrCUpINzFYMF9fRElWKEpINzExMF9TWVNDTEtfVk9VVF9UT1BfTUlQSVBIWV9SRUYsICJ2b3V0 X3RvcF9taXBpcGh5X3JlZiIsIDIsCisrCQkgICAgSkg3MTEwX1NZU0NMS19PU0MpLAorKwkvKiBq cGVnYyAqLworKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX0pQRUdDX0FYSSwgImpwZWdjX2F4 aSIsIDE2LCBKSDcxMTBfU1lTQ0xLX1BMTDJfT1VUKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZ U0NMS19DT0RBSjEyX0FYSSwgImNvZGFqMTJfYXhpIiwgMCwgSkg3MTEwX1NZU0NMS19KUEVHQ19B WEkpLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xLX0NPREFKMTJfQ09SRSwgImNvZGFqMTJf Y29yZSIsIDAsIDE2LCBKSDcxMTBfU1lTQ0xLX1BMTDJfT1VUKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTEwX1NZU0NMS19DT0RBSjEyX0FQQiwgImNvZGFqMTJfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19B UEJfQlVTKSwKKysJLyogdmRlYyAqLworKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX1ZERUNf QVhJLCAidmRlY19heGkiLCA3LCBKSDcxMTBfU1lTQ0xLX0JVU19ST09UKSwKKysJSkg3MVgwX0dB VEUoSkg3MTEwX1NZU0NMS19XQVZFNTExX0FYSSwgIndhdmU1MTFfYXhpIiwgMCwgSkg3MTEwX1NZ U0NMS19WREVDX0FYSSksCisrCUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfV0FWRTUxMV9CUFUs ICJ3YXZlNTExX2JwdSIsIDAsIDcsIEpINzExMF9TWVNDTEtfQlVTX1JPT1QpLAorKwlKSDcxWDBf R0RJVihKSDcxMTBfU1lTQ0xLX1dBVkU1MTFfVkNFLCAid2F2ZTUxMV92Y2UiLCAwLCA3LCBKSDcx MTBfU1lTQ0xLX1BMTDBfT1VUKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19XQVZFNTEx X0FQQiwgIndhdmU1MTFfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEJfQlVTKSwKKysJSkg3MVgw X0dBVEUoSkg3MTEwX1NZU0NMS19WREVDX0pQRywgInZkZWNfanBnIiwgMCwgSkg3MTEwX1NZU0NM S19KUEVHQ19BWEkpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1ZERUNfTUFJTiwgInZk ZWNfbWFpbiIsIDAsIEpINzExMF9TWVNDTEtfVkRFQ19BWEkpLAorKwlKSDcxWDBfR0FURShKSDcx MTBfU1lTQ0xLX05PQ19CVVNfVkRFQ19BWEksICJub2NfYnVzX3ZkZWNfYXhpIiwgMCwgSkg3MTEw X1NZU0NMS19WREVDX0FYSSksCisrCS8qIHZlbmMgKi8KKysJSkg3MVgwX19ESVYoSkg3MTEwX1NZ U0NMS19WRU5DX0FYSSwgInZlbmNfYXhpIiwgMTUsIEpINzExMF9TWVNDTEtfUExMMl9PVVQpLAor KwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1dBVkU0MjBMX0FYSSwgIndhdmU0MjBsX2F4aSIs IDAsIEpINzExMF9TWVNDTEtfVkVOQ19BWEkpLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xL X1dBVkU0MjBMX0JQVSwgIndhdmU0MjBsX2JwdSIsIDAsIDE1LCBKSDcxMTBfU1lTQ0xLX1BMTDJf T1VUKSwKKysJSkg3MVgwX0dESVYoSkg3MTEwX1NZU0NMS19XQVZFNDIwTF9WQ0UsICJ3YXZlNDIw bF92Y2UiLCAwLCAxNSwgSkg3MTEwX1NZU0NMS19QTEwyX09VVCksCisrCUpINzFYMF9HQVRFKEpI NzExMF9TWVNDTEtfV0FWRTQyMExfQVBCLCAid2F2ZTQyMGxfYXBiIiwgMCwgSkg3MTEwX1NZU0NM S19BUEJfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19OT0NfQlVTX1ZFTkNfQVhJ LCAibm9jX2J1c192ZW5jX2F4aSIsIDAsIEpINzExMF9TWVNDTEtfVkVOQ19BWEkpLAorKwkvKiBh eGlfY2ZnMCAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX0FYSV9DRkcwX01BSU5fRElW LCAiYXhpX2NmZzBfbWFpbl9kaXYiLCBDTEtfSVNfQ1JJVElDQUwsCisrCQkgICAgSkg3MTEwX1NZ U0NMS19BSEIxKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19BWElfQ0ZHMF9NQUlOLCAi YXhpX2NmZzBfbWFpbiIsIENMS19JU19DUklUSUNBTCwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0FY SV9DRkcwKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19BWElfQ0ZHMF9ISUZJNCwgImF4 aV9jZmcwX2hpZmk0IiwgQ0xLX0lTX0NSSVRJQ0FMLAorKwkJICAgIEpINzExMF9TWVNDTEtfSElG STRfQVhJKSwKKysJLyogaW50bWVtICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfQVhJ TUVNMl9BWEksICJheGltZW0yX2F4aSIsIDAsIEpINzExMF9TWVNDTEtfQVhJX0NGRzApLAorKwkv KiBxc3BpICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfUVNQSV9BSEIsICJxc3BpX2Fo YiIsIDAsIEpINzExMF9TWVNDTEtfQUhCMSksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtf UVNQSV9BUEIsICJxc3BpX2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCX0JVUyksCisrCUpINzFY MF9fRElWKEpINzExMF9TWVNDTEtfUVNQSV9SRUZfU1JDLCAicXNwaV9yZWZfc3JjIiwgMTYsIEpI NzExMF9TWVNDTEtfUExMMF9PVVQpLAorKwlKSDcxWDBfR01VWChKSDcxMTBfU1lTQ0xLX1FTUElf UkVGLCAicXNwaV9yZWYiLCAwLCAyLAorKwkJICAgIEpINzExMF9TWVNDTEtfT1NDLAorKwkJICAg IEpINzExMF9TWVNDTEtfUVNQSV9SRUZfU1JDKSwKKysJLyogc2RpbyAqLworKwlKSDcxWDBfR0FU RShKSDcxMTBfU1lTQ0xLX1NESU8wX0FIQiwgInNkaW8wX2FoYiIsIDAsIEpINzExMF9TWVNDTEtf QUhCMCksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfU0RJTzFfQUhCLCAic2RpbzFfYWhi IiwgMCwgSkg3MTEwX1NZU0NMS19BSEIwKSwKKysJSkg3MVgwX0dESVYoSkg3MTEwX1NZU0NMS19T RElPMF9TRENBUkQsICJzZGlvMF9zZGNhcmQiLCAwLCAxNSwgSkg3MTEwX1NZU0NMS19BWElfQ0ZH MCksCisrCUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfU0RJTzFfU0RDQVJELCAic2RpbzFfc2Rj YXJkIiwgMCwgMTUsIEpINzExMF9TWVNDTEtfQVhJX0NGRzApLAorKwkvKiBzdGcgKi8KKysJSkg3 MVgwX19ESVYoSkg3MTEwX1NZU0NMS19VU0JfMTI1TSwgInVzYl8xMjVtIiwgMTUsIEpINzExMF9T WVNDTEtfUExMMF9PVVQpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX05PQ19CVVNfU1RH X0FYSSwgIm5vY19idXNfc3RnX2F4aSIsIENMS19JU19DUklUSUNBTCwKKysJCSAgICBKSDcxMTBf U1lTQ0xLX05PQ1NUR19CVVMpLAorKwkvKiBnbWFjMSAqLworKwlKSDcxWDBfR0FURShKSDcxMTBf U1lTQ0xLX0dNQUMxX0FIQiwgImdtYWMxX2FoYiIsIDAsIEpINzExMF9TWVNDTEtfQUhCMCksCisr CUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfR01BQzFfQVhJLCAiZ21hYzFfYXhpIiwgMCwgSkg3 MTEwX1NZU0NMS19TVEdfQVhJQUhCKSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX1NZU0NMS19HTUFD X1NSQywgImdtYWNfc3JjIiwgNywgSkg3MTEwX1NZU0NMS19QTEwwX09VVCksCisrCUpINzFYMF9f RElWKEpINzExMF9TWVNDTEtfR01BQzFfR1RYQ0xLLCAiZ21hYzFfZ3R4Y2xrIiwgMTUsIEpINzEx MF9TWVNDTEtfUExMMF9PVVQpLAorKwlKSDcxWDBfX0RJVihKSDcxMTBfU1lTQ0xLX0dNQUMxX1JN SUlfUlRYLCAiZ21hYzFfcm1paV9ydHgiLCAzMCwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0dNQUMx X1JNSUlfUkVGSU4pLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xLX0dNQUMxX1BUUCwgImdt YWMxX3B0cCIsIDAsIDMxLCBKSDcxMTBfU1lTQ0xLX0dNQUNfU1JDKSwKKysJSkg3MVgwX19NVVgo Skg3MTEwX1NZU0NMS19HTUFDMV9SWCwgImdtYWMxX3J4IiwgMiwKKysJCSAgICBKSDcxMTBfU1lT Q0xLX0dNQUMxX1JHTUlJX1JYSU4sCisrCQkgICAgSkg3MTEwX1NZU0NMS19HTUFDMV9STUlJX1JU WCksCisrCUpINzFYMF9fSU5WKEpINzExMF9TWVNDTEtfR01BQzFfUlhfSU5WLCAiZ21hYzFfcnhf aW52IiwgSkg3MTEwX1NZU0NMS19HTUFDMV9SWCksCisrCUpINzFYMF9HTVVYKEpINzExMF9TWVND TEtfR01BQzFfVFgsICJnbWFjMV90eCIsCisrCQkgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCB8IENM S19TRVRfUkFURV9OT19SRVBBUkVOVCwgMiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0dNQUMxX0dU WENMSywKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0dNQUMxX1JNSUlfUlRYKSwKKysJSkg3MVgwX19J TlYoSkg3MTEwX1NZU0NMS19HTUFDMV9UWF9JTlYsICJnbWFjMV90eF9pbnYiLCBKSDcxMTBfU1lT Q0xLX0dNQUMxX1RYKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19HTUFDMV9HVFhDLCAi Z21hYzFfZ3R4YyIsIDAsIEpINzExMF9TWVNDTEtfR01BQzFfR1RYQ0xLKSwKKysJLyogZ21hYzAg Ki8KKysJSkg3MVgwX0dESVYoSkg3MTEwX1NZU0NMS19HTUFDMF9HVFhDTEssICJnbWFjMF9ndHhj bGsiLCAwLCAxNSwgSkg3MTEwX1NZU0NMS19QTEwwX09VVCksCisrCUpINzFYMF9HRElWKEpINzEx MF9TWVNDTEtfR01BQzBfUFRQLCAiZ21hYzBfcHRwIiwgMCwgMzEsIEpINzExMF9TWVNDTEtfR01B Q19TUkMpLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xLX0dNQUNfUEhZLCAiZ21hY19waHki LCAwLCAzMSwgSkg3MTEwX1NZU0NMS19HTUFDX1NSQyksCisrCUpINzFYMF9HQVRFKEpINzExMF9T WVNDTEtfR01BQzBfR1RYQywgImdtYWMwX2d0eGMiLCAwLCBKSDcxMTBfU1lTQ0xLX0dNQUMwX0dU WENMSyksCisrCS8qIGFwYiBtaXNjICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfSU9N VVhfQVBCLCAiaW9tdXhfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEJfQlVTKSwKKysJSkg3MVgw X0dBVEUoSkg3MTEwX1NZU0NMS19NQUlMQk9YX0FQQiwgIm1haWxib3hfYXBiIiwgMCwgSkg3MTEw X1NZU0NMS19BUEJfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19JTlRfQ1RSTF9B UEIsICJpbnRfY3RybF9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQl9CVVMpLAorKwkvKiBjYW4w ICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfQ0FOMF9BUEIsICJjYW4wX2FwYiIsIDAs IEpINzExMF9TWVNDTEtfQVBCX0JVUyksCisrCUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfQ0FO MF9USU1FUiwgImNhbjBfdGltZXIiLCAwLCAyNCwgSkg3MTEwX1NZU0NMS19PU0MpLAorKwlKSDcx WDBfR0RJVihKSDcxMTBfU1lTQ0xLX0NBTjBfQ0FOLCAiY2FuMF9jYW4iLCAwLCA2MywgSkg3MTEw X1NZU0NMS19QRVJIX1JPT1QpLAorKwkvKiBjYW4xICovCisrCUpINzFYMF9HQVRFKEpINzExMF9T WVNDTEtfQ0FOMV9BUEIsICJjYW4xX2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCX0JVUyksCisr CUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfQ0FOMV9USU1FUiwgImNhbjFfdGltZXIiLCAwLCAy NCwgSkg3MTEwX1NZU0NMS19PU0MpLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xLX0NBTjFf Q0FOLCAiY2FuMV9jYW4iLCAwLCA2MywgSkg3MTEwX1NZU0NMS19QRVJIX1JPT1QpLAorKwkvKiBw d20gKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19QV01fQVBCLCAicHdtX2FwYiIsIDAs IEpINzExMF9TWVNDTEtfQVBCX0JVUyksCisrCS8qIHdkdCAqLworKwlKSDcxWDBfR0FURShKSDcx MTBfU1lTQ0xLX1dEVF9BUEIsICJ3ZHRfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEJfQlVTKSwK KysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19XRFRfQ09SRSwgIndkdF9jb3JlIiwgMCwgSkg3 MTEwX1NZU0NMS19PU0MpLAorKwkvKiB0aW1lciAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1lT Q0xLX1RJTUVSX0FQQiwgInRpbWVyX2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCX0JVUyksCisr CUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfVElNRVIwLCAidGltZXIwIiwgMCwgSkg3MTEwX1NZ U0NMS19PU0MpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1RJTUVSMSwgInRpbWVyMSIs IDAsIEpINzExMF9TWVNDTEtfT1NDKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19USU1F UjIsICJ0aW1lcjIiLCAwLCBKSDcxMTBfU1lTQ0xLX09TQyksCisrCUpINzFYMF9HQVRFKEpINzEx MF9TWVNDTEtfVElNRVIzLCAidGltZXIzIiwgMCwgSkg3MTEwX1NZU0NMS19PU0MpLAorKwkvKiB0 ZW1wIHNlbnNvciAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1RFTVBfQVBCLCAidGVt cF9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfR0RJVihKSDcxMTBf U1lTQ0xLX1RFTVBfQ09SRSwgInRlbXBfY29yZSIsIDAsIDI0LCBKSDcxMTBfU1lTQ0xLX09TQyks CisrCS8qIHNwaSAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1NQSTBfQVBCLCAic3Bp MF9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQjApLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lT Q0xLX1NQSTFfQVBCLCAic3BpMV9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQjApLAorKwlKSDcx WDBfR0FURShKSDcxMTBfU1lTQ0xLX1NQSTJfQVBCLCAic3BpMl9hcGIiLCAwLCBKSDcxMTBfU1lT Q0xLX0FQQjApLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1NQSTNfQVBCLCAic3BpM19h cGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lT Q0xLX1NQSTRfQVBCLCAic3BpNF9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQl9CVVMpLAorKwlK SDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1NQSTVfQVBCLCAic3BpNV9hcGIiLCAwLCBKSDcxMTBf U1lTQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1NQSTZfQVBCLCAi c3BpNl9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQl9CVVMpLAorKwkvKiBpMmMgKi8KKysJSkg3 MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19JMkMwX0FQQiwgImkyYzBfYXBiIiwgMCwgSkg3MTEwX1NZ U0NMS19BUEIwKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19JMkMxX0FQQiwgImkyYzFf YXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEIwKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NM S19JMkMyX0FQQiwgImkyYzJfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEIwKSwKKysJSkg3MVgw X0dBVEUoSkg3MTEwX1NZU0NMS19JMkMzX0FQQiwgImkyYzNfYXBiIiwgMCwgSkg3MTEwX1NZU0NM S19BUEJfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19JMkM0X0FQQiwgImkyYzRf YXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEJfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZ U0NMS19JMkM1X0FQQiwgImkyYzVfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEJfQlVTKSwKKysJ Skg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19JMkM2X0FQQiwgImkyYzZfYXBiIiwgMCwgSkg3MTEw X1NZU0NMS19BUEJfQlVTKSwKKysJLyogdWFydCAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1lT Q0xLX1VBUlQwX0FQQiwgInVhcnQwX2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCMCksCisrCUpI NzFYMF9HQVRFKEpINzExMF9TWVNDTEtfVUFSVDBfQ09SRSwgInVhcnQwX2NvcmUiLCAwLCBKSDcx MTBfU1lTQ0xLX09TQyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfVUFSVDFfQVBCLCAi dWFydDFfYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEIwKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEw X1NZU0NMS19VQVJUMV9DT1JFLCAidWFydDFfY29yZSIsIDAsIEpINzExMF9TWVNDTEtfT1NDKSwK KysJSkg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19VQVJUMl9BUEIsICJ1YXJ0Ml9hcGIiLCAwLCBK SDcxMTBfU1lTQ0xLX0FQQjApLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1VBUlQyX0NP UkUsICJ1YXJ0Ml9jb3JlIiwgMCwgSkg3MTEwX1NZU0NMS19PU0MpLAorKwlKSDcxWDBfR0FURShK SDcxMTBfU1lTQ0xLX1VBUlQzX0FQQiwgInVhcnQzX2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBC MCksCisrCUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfVUFSVDNfQ09SRSwgInVhcnQzX2NvcmUi LCAwLCAxMCwgSkg3MTEwX1NZU0NMS19QRVJIX1JPT1QpLAorKwlKSDcxWDBfR0FURShKSDcxMTBf U1lTQ0xLX1VBUlQ0X0FQQiwgInVhcnQ0X2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCMCksCisr CUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfVUFSVDRfQ09SRSwgInVhcnQ0X2NvcmUiLCAwLCAx MCwgSkg3MTEwX1NZU0NMS19QRVJIX1JPT1QpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xL X1VBUlQ1X0FQQiwgInVhcnQ1X2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBCMCksCisrCUpINzFY MF9HRElWKEpINzExMF9TWVNDTEtfVUFSVDVfQ09SRSwgInVhcnQ1X2NvcmUiLCAwLCAxMCwgSkg3 MTEwX1NZU0NMS19QRVJIX1JPT1QpLAorKwkvKiBwd21kYWMgKi8KKysJSkg3MVgwX0dBVEUoSkg3 MTEwX1NZU0NMS19QV01EQUNfQVBCLCAicHdtZGFjX2FwYiIsIDAsIEpINzExMF9TWVNDTEtfQVBC MCksCisrCUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfUFdNREFDX0NPUkUsICJwd21kYWNfY29y ZSIsIDAsIDI1NiwgSkg3MTEwX1NZU0NMS19BVURJT19ST09UKSwKKysJLyogc3BkaWYgKi8KKysJ Skg3MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19TUERJRl9BUEIsICJzcGRpZl9hcGIiLCAwLCBKSDcx MTBfU1lTQ0xLX0FQQjApLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1NQRElGX0NPUkUs ICJzcGRpZl9jb3JlIiwgMCwgSkg3MTEwX1NZU0NMS19NQ0xLKSwKKysJLyogaTJzdHgwICovCisr CUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfSTJTVFgwX0FQQiwgImkyc3R4MF9hcGIiLCAwLCBK SDcxMTBfU1lTQ0xLX0FQQjApLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xLX0kyU1RYMF9C Q0xLX01TVCwgImkyc3R4MF9iY2xrX21zdCIsIDAsIDMyLCBKSDcxMTBfU1lTQ0xLX01DTEspLAor KwlKSDcxWDBfX0lOVihKSDcxMTBfU1lTQ0xLX0kyU1RYMF9CQ0xLX01TVF9JTlYsICJpMnN0eDBf YmNsa19tc3RfaW52IiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1RYMF9CQ0xLX01TVCksCisr CUpINzFYMF9NRElWKEpINzExMF9TWVNDTEtfSTJTVFgwX0xSQ0tfTVNULCAiaTJzdHgwX2xyY2tf bXN0IiwgNjQsIDIsCisrCQkgICAgSkg3MTEwX1NZU0NMS19JMlNUWDBfQkNMS19NU1RfSU5WLAor KwkJICAgIEpINzExMF9TWVNDTEtfSTJTVFgwX0JDTEtfTVNUKSwKKysJSkg3MVgwX19NVVgoSkg3 MTEwX1NZU0NMS19JMlNUWDBfQkNMSywgImkyc3R4MF9iY2xrIiwJMiwKKysJCSAgICBKSDcxMTBf U1lTQ0xLX0kyU1RYMF9CQ0xLX01TVCwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1RYX0JDTEtf RVhUKSwKKysJSkg3MVgwX19JTlYoSkg3MTEwX1NZU0NMS19JMlNUWDBfQkNMS19JTlYsICJpMnN0 eDBfYmNsa19pbnYiLCBKSDcxMTBfU1lTQ0xLX0kyU1RYMF9CQ0xLKSwKKysJSkg3MVgwX19NVVgo Skg3MTEwX1NZU0NMS19JMlNUWDBfTFJDSywgImkyc3R4MF9scmNrIiwgMiwKKysJCSAgICBKSDcx MTBfU1lTQ0xLX0kyU1RYMF9MUkNLX01TVCwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1RYX0xS Q0tfRVhUKSwKKysJLyogaTJzdHgxICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TWVNDTEtfSTJT VFgxX0FQQiwgImkyc3R4MV9hcGIiLCAwLCBKSDcxMTBfU1lTQ0xLX0FQQjApLAorKwlKSDcxWDBf R0RJVihKSDcxMTBfU1lTQ0xLX0kyU1RYMV9CQ0xLX01TVCwgImkyc3R4MV9iY2xrX21zdCIsIDAs IDMyLCBKSDcxMTBfU1lTQ0xLX01DTEspLAorKwlKSDcxWDBfX0lOVihKSDcxMTBfU1lTQ0xLX0ky U1RYMV9CQ0xLX01TVF9JTlYsICJpMnN0eDFfYmNsa19tc3RfaW52IiwKKysJCSAgICBKSDcxMTBf U1lTQ0xLX0kyU1RYMV9CQ0xLX01TVCksCisrCUpINzFYMF9NRElWKEpINzExMF9TWVNDTEtfSTJT VFgxX0xSQ0tfTVNULCAiaTJzdHgxX2xyY2tfbXN0IiwgNjQsIDIsCisrCQkgICAgSkg3MTEwX1NZ U0NMS19JMlNUWDFfQkNMS19NU1RfSU5WLAorKwkJICAgIEpINzExMF9TWVNDTEtfSTJTVFgxX0JD TEtfTVNUKSwKKysJSkg3MVgwX19NVVgoSkg3MTEwX1NZU0NMS19JMlNUWDFfQkNMSywgImkyc3R4 MV9iY2xrIiwgMiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1RYMV9CQ0xLX01TVCwKKysJCSAg ICBKSDcxMTBfU1lTQ0xLX0kyU1RYX0JDTEtfRVhUKSwKKysJSkg3MVgwX19JTlYoSkg3MTEwX1NZ U0NMS19JMlNUWDFfQkNMS19JTlYsICJpMnN0eDFfYmNsa19pbnYiLCBKSDcxMTBfU1lTQ0xLX0ky U1RYMV9CQ0xLKSwKKysJSkg3MVgwX19NVVgoSkg3MTEwX1NZU0NMS19JMlNUWDFfTFJDSywgImky c3R4MV9scmNrIiwgMiwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1RYMV9MUkNLX01TVCwKKysJ CSAgICBKSDcxMTBfU1lTQ0xLX0kyU1RYX0xSQ0tfRVhUKSwKKysJLyogaTJzcnggKi8KKysJSkg3 MVgwX0dBVEUoSkg3MTEwX1NZU0NMS19JMlNSWF9BUEIsICJpMnNyeF9hcGIiLCAwLCBKSDcxMTBf U1lTQ0xLX0FQQjApLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1lTQ0xLX0kyU1JYX0JDTEtfTVNU LCAiaTJzcnhfYmNsa19tc3QiLCAwLCAzMiwgSkg3MTEwX1NZU0NMS19NQ0xLKSwKKysJSkg3MVgw X19JTlYoSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xLX01TVF9JTlYsICJpMnNyeF9iY2xrX21zdF9p bnYiLAorKwkJICAgIEpINzExMF9TWVNDTEtfSTJTUlhfQkNMS19NU1QpLAorKwlKSDcxWDBfTURJ VihKSDcxMTBfU1lTQ0xLX0kyU1JYX0xSQ0tfTVNULCAiaTJzcnhfbHJja19tc3QiLCA2NCwgMiwK KysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1JYX0JDTEtfTVNUX0lOViwKKysJCSAgICBKSDcxMTBf U1lTQ0xLX0kyU1JYX0JDTEtfTVNUKSwKKysJSkg3MVgwX19NVVgoSkg3MTEwX1NZU0NMS19JMlNS WF9CQ0xLLCAiaTJzcnhfYmNsayIsIDIsCisrCQkgICAgSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xL X01TVCwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1JYX0JDTEtfRVhUKSwKKysJSkg3MVgwX19J TlYoSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xLX0lOViwgImkyc3J4X2JjbGtfaW52IiwgSkg3MTEw X1NZU0NMS19JMlNSWF9CQ0xLKSwKKysJSkg3MVgwX19NVVgoSkg3MTEwX1NZU0NMS19JMlNSWF9M UkNLLCAiaTJzcnhfbHJjayIsIDIsCisrCQkgICAgSkg3MTEwX1NZU0NMS19JMlNSWF9MUkNLX01T VCwKKysJCSAgICBKSDcxMTBfU1lTQ0xLX0kyU1JYX0xSQ0tfRVhUKSwKKysJLyogcGRtICovCisr CUpINzFYMF9HRElWKEpINzExMF9TWVNDTEtfUERNX0RNSUMsICJwZG1fZG1pYyIsIDAsIDY0LCBK SDcxMTBfU1lTQ0xLX01DTEspLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1BETV9BUEIs ICJwZG1fYXBiIiwgMCwgSkg3MTEwX1NZU0NMS19BUEIwKSwKKysJLyogdGRtICovCisrCUpINzFY MF9HQVRFKEpINzExMF9TWVNDTEtfVERNX0FIQiwgInRkbV9haGIiLCAwLCBKSDcxMTBfU1lTQ0xL X0FIQjApLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1lTQ0xLX1RETV9BUEIsICJ0ZG1fYXBiIiwg MCwgSkg3MTEwX1NZU0NMS19BUEIwKSwKKysJSkg3MVgwX0dESVYoSkg3MTEwX1NZU0NMS19URE1f SU5URVJOQUwsICJ0ZG1faW50ZXJuYWwiLCAwLCA2NCwgSkg3MTEwX1NZU0NMS19NQ0xLKSwKKysJ Skg3MVgwX19NVVgoSkg3MTEwX1NZU0NMS19URE1fVERNLCAidGRtX3RkbSIsIDIsCisrCQkgICAg Skg3MTEwX1NZU0NMS19URE1fSU5URVJOQUwsCisrCQkgICAgSkg3MTEwX1NZU0NMS19URE1fRVhU KSwKKysJSkg3MVgwX19JTlYoSkg3MTEwX1NZU0NMS19URE1fVERNX0lOViwgInRkbV90ZG1faW52 IiwgSkg3MTEwX1NZU0NMS19URE1fVERNKSwKKysJLyoganRhZyAqLworKwlKSDcxWDBfX0RJVihK SDcxMTBfU1lTQ0xLX0pUQUdfQ0VSVElGSUNBVElPTl9UUk5HLCAianRhZ19jZXJ0aWZpY2F0aW9u X3RybmciLCA0LAorKwkJICAgIEpINzExMF9TWVNDTEtfT1NDKSwKKyt9OworKworK3N0YXRpYyBz dHJ1Y3QgY2xrX2h3ICpqaDcxMTBfc3lzY2xrX2dldChzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICpj bGtzcGVjLCB2b2lkICpkYXRhKQorK3sKKysJc3RydWN0IGpoNzF4MF9jbGtfcHJpdiAqcHJpdiA9 IGRhdGE7CisrCXVuc2lnbmVkIGludCBpZHggPSBjbGtzcGVjLT5hcmdzWzBdOworKworKwlpZiAo aWR4IDwgSkg3MTEwX1NZU0NMS19FTkQpCisrCQlyZXR1cm4gJnByaXYtPnJlZ1tpZHhdLmh3Owor KworKwlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKyt9CisrCisrc3RhdGljIHZvaWQgamg3MTEw X3Jlc2V0X3VucmVnaXN0ZXJfYWRldih2b2lkICpfYWRldikKKyt7CisrCXN0cnVjdCBhdXhpbGlh cnlfZGV2aWNlICphZGV2ID0gX2FkZXY7CisrCisrCWF1eGlsaWFyeV9kZXZpY2VfZGVsZXRlKGFk ZXYpOworK30KKysKKytzdGF0aWMgdm9pZCBqaDcxMTBfcmVzZXRfYWRldl9yZWxlYXNlKHN0cnVj dCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2ID0gdG9f YXV4aWxpYXJ5X2RldihkZXYpOworKworKwlhdXhpbGlhcnlfZGV2aWNlX3VuaW5pdChhZGV2KTsK Kyt9CisrCisraW50IGpoNzExMF9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKHN0cnVjdCBqaDcx eDBfY2xrX3ByaXYgKnByaXYsCisrCQkJCSAgICAgY29uc3QgY2hhciAqYWRldl9uYW1lLAorKwkJ CQkgICAgIHUzMiBhZGV2X2lkKQorK3sKKysJc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXY7 CisrCWludCByZXQ7CisrCisrCWFkZXYgPSBkZXZtX2t6YWxsb2MocHJpdi0+ZGV2LCBzaXplb2Yo KmFkZXYpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFhZGV2KQorKwkJcmV0dXJuIC1FTk9NRU07Cisr CisrCWFkZXYtPm5hbWUgPSBhZGV2X25hbWU7CisrCWFkZXYtPmRldi5wYXJlbnQgPSBwcml2LT5k ZXY7CisrCWFkZXYtPmRldi5yZWxlYXNlID0gamg3MTEwX3Jlc2V0X2FkZXZfcmVsZWFzZTsKKysJ YWRldi0+aWQgPSBhZGV2X2lkOworKworKwlyZXQgPSBhdXhpbGlhcnlfZGV2aWNlX2luaXQoYWRl dik7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlyZXQgPSBhdXhpbGlhcnlfZGV2 aWNlX2FkZChhZGV2KTsKKysJaWYgKHJldCkgeworKwkJYXV4aWxpYXJ5X2RldmljZV91bmluaXQo YWRldik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJldHVybiBkZXZtX2FkZF9hY3Rpb25f b3JfcmVzZXQocHJpdi0+ZGV2LAorKwkJCQkJamg3MTEwX3Jlc2V0X3VucmVnaXN0ZXJfYWRldiwg YWRldik7CisrfQorK0VYUE9SVF9TWU1CT0xfR1BMKGpoNzExMF9yZXNldF9jb250cm9sbGVyX3Jl Z2lzdGVyKTsKKysKKytzdGF0aWMgaW50IF9faW5pdCBqaDcxMTBfc3lzY3JnX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpw cml2OworKwl1bnNpZ25lZCBpbnQgaWR4OworKwlpbnQgcmV0OworKworKwlwcml2ID0gZGV2bV9r emFsbG9jKCZwZGV2LT5kZXYsCisrCQkJICAgIHN0cnVjdF9zaXplKHByaXYsIHJlZywgSkg3MTEw X1NZU0NMS19FTkQpLAorKwkJCSAgICBHRlBfS0VSTkVMKTsKKysJaWYgKCFwcml2KQorKwkJcmV0 dXJuIC1FTk9NRU07CisrCisrCXNwaW5fbG9ja19pbml0KCZwcml2LT5ybXdfbG9jayk7CisrCXBy aXYtPmRldiA9ICZwZGV2LT5kZXY7CisrCXByaXYtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVt YXBfcmVzb3VyY2UocGRldiwgMCk7CisrCWlmIChJU19FUlIocHJpdi0+YmFzZSkpCisrCQlyZXR1 cm4gUFRSX0VSUihwcml2LT5iYXNlKTsKKysKKysJZGV2X3NldF9kcnZkYXRhKHByaXYtPmRldiwg KHZvaWQgKikoJnByaXYtPmJhc2UpKTsKKysKKysJLyoKKysJICogVGhlc2UgUExMIGNsb2NrcyBh cmUgbm90IGFjdHVhbGx5IGZpeGVkIGZhY3RvciBjbG9ja3MgYW5kIGNhbiBiZQorKwkgKiBjb250 cm9sbGVkIGJ5IHRoZSBzeXNjb24gcmVnaXN0ZXJzIG9mIEpINzExMC4gVGhleSB3aWxsIGJlIGRy b3BwZWQKKysJICogYW5kIHJlZ2lzdGVyZWQgaW4gdGhlIFBMTCBjbG9jayBkcml2ZXIgaW5zdGVh ZC4KKysJICovCisrCS8qIDI0TUh6IC0+IDEwMDAuME1IeiAqLworKwlwcml2LT5wbGxbMF0gPSBk ZXZtX2Nsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3IocHJpdi0+ZGV2LCAicGxsMF9vdXQiLAor KwkJCQkJCQkgIm9zYyIsIDAsIDEyNSwgMyk7CisrCWlmIChJU19FUlIocHJpdi0+cGxsWzBdKSkK KysJCXJldHVybiBQVFJfRVJSKHByaXYtPnBsbFswXSk7CisrCisrCS8qIDI0TUh6IC0+IDEwNjYu ME1IeiAqLworKwlwcml2LT5wbGxbMV0gPSBkZXZtX2Nsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0 b3IocHJpdi0+ZGV2LCAicGxsMV9vdXQiLAorKwkJCQkJCQkgIm9zYyIsIDAsIDUzMywgMTIpOwor KwlpZiAoSVNfRVJSKHByaXYtPnBsbFsxXSkpCisrCQlyZXR1cm4gUFRSX0VSUihwcml2LT5wbGxb MV0pOworKworKwkvKiAyNE1IeiAtPiAxMTg4LjBNSHogKi8KKysJcHJpdi0+cGxsWzJdID0gZGV2 bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKHByaXYtPmRldiwgInBsbDJfb3V0IiwKKysJ CQkJCQkJICJvc2MiLCAwLCA5OSwgMik7CisrCWlmIChJU19FUlIocHJpdi0+cGxsWzJdKSkKKysJ CXJldHVybiBQVFJfRVJSKHByaXYtPnBsbFsyXSk7CisrCisrCWZvciAoaWR4ID0gMDsgaWR4IDwg Skg3MTEwX1NZU0NMS19FTkQ7IGlkeCsrKSB7CisrCQl1MzIgbWF4ID0gamg3MTEwX3N5c2Nsa19k YXRhW2lkeF0ubWF4OworKwkJc3RydWN0IGNsa19wYXJlbnRfZGF0YSBwYXJlbnRzWzRdID0ge307 CisrCQlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0ID0geworKwkJCS5uYW1lID0gamg3MTEwX3N5 c2Nsa19kYXRhW2lkeF0ubmFtZSwKKysJCQkub3BzID0gc3RhcmZpdmVfamg3MXgwX2Nsa19vcHMo bWF4KSwKKysJCQkucGFyZW50X2RhdGEgPSBwYXJlbnRzLAorKwkJCS5udW1fcGFyZW50cyA9Cisr CQkJCSgobWF4ICYgSkg3MVgwX0NMS19NVVhfTUFTSykgPj4gSkg3MVgwX0NMS19NVVhfU0hJRlQp ICsgMSwKKysJCQkuZmxhZ3MgPSBqaDcxMTBfc3lzY2xrX2RhdGFbaWR4XS5mbGFncywKKysJCX07 CisrCQlzdHJ1Y3Qgamg3MXgwX2NsayAqY2xrID0gJnByaXYtPnJlZ1tpZHhdOworKwkJdW5zaWdu ZWQgaW50IGk7CisrCisrCQlmb3IgKGkgPSAwOyBpIDwgaW5pdC5udW1fcGFyZW50czsgaSsrKSB7 CisrCQkJdW5zaWduZWQgaW50IHBpZHggPSBqaDcxMTBfc3lzY2xrX2RhdGFbaWR4XS5wYXJlbnRz W2ldOworKworKwkJCWlmIChwaWR4IDwgSkg3MTEwX1NZU0NMS19FTkQpCisrCQkJCXBhcmVudHNb aV0uaHcgPSAmcHJpdi0+cmVnW3BpZHhdLmh3OworKwkJCWVsc2UgaWYgKHBpZHggPT0gSkg3MTEw X1NZU0NMS19PU0MpCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJvc2MiOworKwkJCWVsc2Ug aWYgKHBpZHggPT0gSkg3MTEwX1NZU0NMS19HTUFDMV9STUlJX1JFRklOKQorKwkJCQlwYXJlbnRz W2ldLmZ3X25hbWUgPSAiZ21hYzFfcm1paV9yZWZpbiI7CisrCQkJZWxzZSBpZiAocGlkeCA9PSBK SDcxMTBfU1lTQ0xLX0dNQUMxX1JHTUlJX1JYSU4pCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9 ICJnbWFjMV9yZ21paV9yeGluIjsKKysJCQllbHNlIGlmIChwaWR4ID09IEpINzExMF9TWVNDTEtf STJTVFhfQkNMS19FWFQpCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJpMnN0eF9iY2xrX2V4 dCI7CisrCQkJZWxzZSBpZiAocGlkeCA9PSBKSDcxMTBfU1lTQ0xLX0kyU1RYX0xSQ0tfRVhUKQor KwkJCQlwYXJlbnRzW2ldLmZ3X25hbWUgPSAiaTJzdHhfbHJja19leHQiOworKwkJCWVsc2UgaWYg KHBpZHggPT0gSkg3MTEwX1NZU0NMS19JMlNSWF9CQ0xLX0VYVCkKKysJCQkJcGFyZW50c1tpXS5m d19uYW1lID0gImkyc3J4X2JjbGtfZXh0IjsKKysJCQllbHNlIGlmIChwaWR4ID09IEpINzExMF9T WVNDTEtfSTJTUlhfTFJDS19FWFQpCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJpMnNyeF9s cmNrX2V4dCI7CisrCQkJZWxzZSBpZiAocGlkeCA9PSBKSDcxMTBfU1lTQ0xLX1RETV9FWFQpCisr CQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJ0ZG1fZXh0IjsKKysJCQllbHNlIGlmIChwaWR4ID09 IEpINzExMF9TWVNDTEtfTUNMS19FWFQpCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJtY2xr X2V4dCI7CisrCQkJZWxzZQorKwkJCQlwYXJlbnRzW2ldLmh3ID0gcHJpdi0+cGxsW3BpZHggLSBK SDcxMTBfU1lTQ0xLX1BMTDBfT1VUXTsKKysJCX0KKysKKysJCWNsay0+aHcuaW5pdCA9ICZpbml0 OworKwkJY2xrLT5pZHggPSBpZHg7CisrCQljbGstPm1heF9kaXYgPSBtYXggJiBKSDcxWDBfQ0xL X0RJVl9NQVNLOworKworKwkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoJnBkZXYtPmRldiwg JmNsay0+aHcpOworKwkJaWYgKHJldCkKKysJCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJldCA9 IGRldm1fb2ZfY2xrX2FkZF9od19wcm92aWRlcigmcGRldi0+ZGV2LCBqaDcxMTBfc3lzY2xrX2dl dCwgcHJpdik7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlyZXR1cm4gamg3MTEw X3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIocHJpdiwgInJzdC1zeXMiLCAwKTsKKyt9CisrCisr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgamg3MTEwX3N5c2NyZ19tYXRjaFtdID0g eworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1zeXNjcmciIH0sCisrCXsgLyog c2VudGluZWwgKi8gfQorK307CisrCisrc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgamg3 MTEwX3N5c2NyZ19kcml2ZXIgPSB7CisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJjbGstc3Rh cmZpdmUtamg3MTEwLXN5cyIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBqaDcxMTBfc3lzY3JnX21h dGNoLAorKwkJLnN1cHByZXNzX2JpbmRfYXR0cnMgPSB0cnVlLAorKwl9LAorK307CisrYnVpbHRp bl9wbGF0Zm9ybV9kcml2ZXJfcHJvYmUoamg3MTEwX3N5c2NyZ19kcml2ZXIsIGpoNzExMF9zeXNj cmdfcHJvYmUpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2 ZS1qaDcxMTAuaCBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAuaAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZjI5NjgyYjhkNDAwCist LS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3 MTEwLmgKK0BAIC0wLDAgKzEsMTEgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCAqLworKyNpZm5kZWYgX19DTEtfU1RBUkZJVkVfSkg3MTEwX0gKKysjZGVmaW5lIF9fQ0xL X1NUQVJGSVZFX0pINzExMF9ICisrCisrI2luY2x1ZGUgImNsay1zdGFyZml2ZS1qaDcxeDAuaCIK KysKKytpbnQgamg3MTEwX3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIoc3RydWN0IGpoNzF4MF9j bGtfcHJpdiAqcHJpdiwKKysJCQkJICAgICBjb25zdCBjaGFyICphZGV2X25hbWUsCisrCQkJCSAg ICAgdTMyIGFkZXZfaWQpOworKworKyNlbmRpZgorLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTQtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1K SDcxMTAtYWx3YXlzLW9uLWNsb2NrLWRyaS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hl cy8wMDE0LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLWFsd2F5cy1vbi1jbG9jay1k cmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNjU5OGEz ZjFjNWVjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDE0 LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLWFsd2F5cy1vbi1jbG9jay1kcmkucGF0 Y2gKQEAgLTAsMCArMSwyMTQgQEAKK0Zyb20gNjE2YWVlMzllZDBhNWQ3MDY1NDJmNzQwZGQzMmM1 MmQ2YTFiMzlhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJl cnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MjYg KzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxNC84NF0gY2xrOiBzdGFyZml2ZTogQWRkIFN0YXJGaXZl IEpINzExMCBhbHdheXMtb24gY2xvY2sKKyBkcml2ZXIKKworQWRkIGRyaXZlciBmb3IgdGhlIFN0 YXJGaXZlIEpINzExMCBhbHdheXMtb24gY2xvY2sgY29udHJvbGxlcgorYW5kIHJlZ2lzdGVyIGFu IGF1eGlsaWFyeSBkZXZpY2UgZm9yIGFsd2F5cy1vbiByZXNldCBjb250cm9sbGVyCit3aGljaCBp cyBuYW1lZCBhcyAicmVzZXQtYW9uIi4KKworVGVzdGVkLWJ5OiBUb21tYXNvIE1lcmNpYWkgPHRv bW0ubWVyY2lhaUBnbWFpbC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGlu ZyA8a2VybmVsQGVzbWlsLmRrPgorQ28tZGV2ZWxvcGVkLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdA c3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFy Zml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZyAgICAgICAg ICAgICAgICAgIHwgIDExICsrCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUgICAgICAg ICAgICAgICAgIHwgICAxICsKKyAuLi4vY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAt YW9uLmMgICAgfCAxNTYgKysrKysrKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxNjgg aW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdGFyZml2ZS9j bGstc3RhcmZpdmUtamg3MTEwLWFvbi5jCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFy Zml2ZS9LY29uZmlnIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworaW5kZXggNjcwYzUw ODRhZWI4Li43MWMxMTQ4ZWU1ZjYgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9L Y29uZmlnCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCitAQCAtMzEsMyArMzEs MTQgQEAgY29uZmlnIENMS19TVEFSRklWRV9KSDcxMTBfU1lTCisgCWhlbHAKKyAJICBTYXkgeWVz IGhlcmUgdG8gc3VwcG9ydCB0aGUgc3lzdGVtIGNsb2NrIGNvbnRyb2xsZXIgb24gdGhlCisgCSAg U3RhckZpdmUgSkg3MTEwIFNvQy4KKysKKytjb25maWcgQ0xLX1NUQVJGSVZFX0pINzExMF9BT04K KysJdHJpc3RhdGUgIlN0YXJGaXZlIEpINzExMCBhbHdheXMtb24gY2xvY2sgc3VwcG9ydCIKKysJ ZGVwZW5kcyBvbiBDTEtfU1RBUkZJVkVfSkg3MTEwX1NZUworKwlzZWxlY3QgQVVYSUxJQVJZX0JV UworKwlzZWxlY3QgQ0xLX1NUQVJGSVZFX0pINzFYMAorKwlzZWxlY3QgUkVTRVRfU1RBUkZJVkVf Skg3MTEwCisrCWRlZmF1bHQgbSBpZiBBUkNIX1NUQVJGSVZFCisrCWhlbHAKKysJICBTYXkgeWVz IGhlcmUgdG8gc3VwcG9ydCB0aGUgYWx3YXlzLW9uIGNsb2NrIGNvbnRyb2xsZXIgb24gdGhlCisr CSAgU3RhckZpdmUgSkg3MTEwIFNvQy4KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2 ZS9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCitpbmRleCA1Y2E0ZTg4 N2ZiOWMuLmYzZGY3ZDk1N2IxZSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01h a2VmaWxlCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZQorQEAgLTUsMyArNSw0 IEBAIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTAwKQkrPSBjbGstc3RhcmZpdmUtamg3 MTAwLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzEwMF9BVURJTykJKz0gY2xrLXN0 YXJmaXZlLWpoNzEwMC1hdWRpby5vCisgCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcx MTBfU1lTKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLXN5cy5vCisrb2JqLSQoQ09ORklHX0NMS19T VEFSRklWRV9KSDcxMTBfQU9OKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLWFvbi5vCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1hb24uYyBiL2Ry aXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtYW9uLmMKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmEyNzk5ZmU4YTIzNAorLS0tIC9kZXYvbnVs bAorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1hb24uYwor QEAgLTAsMCArMSwxNTYgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor Ky8qCisrICogU3RhckZpdmUgSkg3MTEwIEFsd2F5cy1PbiBDbG9jayBEcml2ZXIKKysgKgorKyAq IENvcHlyaWdodCAoQykgMjAyMiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRr PgorKyAqIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgor KyAqLworKworKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKysjaW5jbHVkZSA8bGlu dXgvaW8uaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrCisrI2luY2x1 ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaD4KKysKKysjaW5jbHVk ZSAiY2xrLXN0YXJmaXZlLWpoNzExMC5oIgorKworKy8qIGV4dGVybmFsIGNsb2NrcyAqLworKyNk ZWZpbmUgSkg3MTEwX0FPTkNMS19PU0MJCShKSDcxMTBfQU9OQ0xLX0VORCArIDApCisrI2RlZmlu ZSBKSDcxMTBfQU9OQ0xLX0dNQUMwX1JNSUlfUkVGSU4JKEpINzExMF9BT05DTEtfRU5EICsgMSkK KysjZGVmaW5lIEpINzExMF9BT05DTEtfR01BQzBfUkdNSUlfUlhJTgkoSkg3MTEwX0FPTkNMS19F TkQgKyAyKQorKyNkZWZpbmUgSkg3MTEwX0FPTkNMS19TVEdfQVhJQUhCCShKSDcxMTBfQU9OQ0xL X0VORCArIDMpCisrI2RlZmluZSBKSDcxMTBfQU9OQ0xLX0FQQl9CVVMJCShKSDcxMTBfQU9OQ0xL X0VORCArIDQpCisrI2RlZmluZSBKSDcxMTBfQU9OQ0xLX0dNQUMwX0dUWENMSwkoSkg3MTEwX0FP TkNMS19FTkQgKyA1KQorKyNkZWZpbmUgSkg3MTEwX0FPTkNMS19SVENfT1NDCQkoSkg3MTEwX0FP TkNMS19FTkQgKyA2KQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MXgwX2Nsa19kYXRhIGpo NzExMF9hb25jbGtfZGF0YVtdID0geworKwkvKiBzb3VyY2UgKi8KKysJSkg3MVgwX19ESVYoSkg3 MTEwX0FPTkNMS19PU0NfRElWNCwgIm9zY19kaXY0IiwgNCwgSkg3MTEwX0FPTkNMS19PU0MpLAor KwlKSDcxWDBfX01VWChKSDcxMTBfQU9OQ0xLX0FQQl9GVU5DLCAiYXBiX2Z1bmMiLCAyLAorKwkJ ICAgIEpINzExMF9BT05DTEtfT1NDX0RJVjQsCisrCQkgICAgSkg3MTEwX0FPTkNMS19PU0MpLAor KwkvKiBnbWFjMCAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfQU9OQ0xLX0dNQUMwX0FIQiwgImdt YWMwX2FoYiIsIDAsIEpINzExMF9BT05DTEtfU1RHX0FYSUFIQiksCisrCUpINzFYMF9HQVRFKEpI NzExMF9BT05DTEtfR01BQzBfQVhJLCAiZ21hYzBfYXhpIiwgMCwgSkg3MTEwX0FPTkNMS19TVEdf QVhJQUhCKSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX0FPTkNMS19HTUFDMF9STUlJX1JUWCwgImdt YWMwX3JtaWlfcnR4IiwgMzAsCisrCQkgICAgSkg3MTEwX0FPTkNMS19HTUFDMF9STUlJX1JFRklO KSwKKysJSkg3MVgwX0dNVVgoSkg3MTEwX0FPTkNMS19HTUFDMF9UWCwgImdtYWMwX3R4IiwKKysJ CSAgICBDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5ULCAyLAor KwkJICAgIEpINzExMF9BT05DTEtfR01BQzBfR1RYQ0xLLAorKwkJICAgIEpINzExMF9BT05DTEtf R01BQzBfUk1JSV9SVFgpLAorKwlKSDcxWDBfX0lOVihKSDcxMTBfQU9OQ0xLX0dNQUMwX1RYX0lO ViwgImdtYWMwX3R4X2ludiIsIEpINzExMF9BT05DTEtfR01BQzBfVFgpLAorKwlKSDcxWDBfX01V WChKSDcxMTBfQU9OQ0xLX0dNQUMwX1JYLCAiZ21hYzBfcngiLCAyLAorKwkJICAgIEpINzExMF9B T05DTEtfR01BQzBfUkdNSUlfUlhJTiwKKysJCSAgICBKSDcxMTBfQU9OQ0xLX0dNQUMwX1JNSUlf UlRYKSwKKysJSkg3MVgwX19JTlYoSkg3MTEwX0FPTkNMS19HTUFDMF9SWF9JTlYsICJnbWFjMF9y eF9pbnYiLCBKSDcxMTBfQU9OQ0xLX0dNQUMwX1JYKSwKKysJLyogb3RwYyAqLworKwlKSDcxWDBf R0FURShKSDcxMTBfQU9OQ0xLX09UUENfQVBCLCAib3RwY19hcGIiLCAwLCBKSDcxMTBfQU9OQ0xL X0FQQl9CVVMpLAorKwkvKiBydGMgKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX0FPTkNMS19SVENf QVBCLCAicnRjX2FwYiIsIDAsIEpINzExMF9BT05DTEtfQVBCX0JVUyksCisrCUpINzFYMF9fRElW KEpINzExMF9BT05DTEtfUlRDX0lOVEVSTkFMLCAicnRjX2ludGVybmFsIiwgMTAyMiwgSkg3MTEw X0FPTkNMS19PU0MpLAorKwlKSDcxWDBfX01VWChKSDcxMTBfQU9OQ0xLX1JUQ18zMkssICJydGNf MzJrIiwgMiwKKysJCSAgICBKSDcxMTBfQU9OQ0xLX1JUQ19PU0MsCisrCQkgICAgSkg3MTEwX0FP TkNMS19SVENfSU5URVJOQUwpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfQU9OQ0xLX1JUQ19DQUws ICJydGNfY2FsIiwgMCwgSkg3MTEwX0FPTkNMS19PU0MpLAorK307CisrCisrc3RhdGljIHN0cnVj dCBjbGtfaHcgKmpoNzExMF9hb25jbGtfZ2V0KHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmNsa3Nw ZWMsIHZvaWQgKmRhdGEpCisreworKwlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2ID0gZGF0 YTsKKysJdW5zaWduZWQgaW50IGlkeCA9IGNsa3NwZWMtPmFyZ3NbMF07CisrCisrCWlmIChpZHgg PCBKSDcxMTBfQU9OQ0xLX0VORCkKKysJCXJldHVybiAmcHJpdi0+cmVnW2lkeF0uaHc7CisrCisr CXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9hb25j cmdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBqaDcx eDBfY2xrX3ByaXYgKnByaXY7CisrCXVuc2lnbmVkIGludCBpZHg7CisrCWludCByZXQ7CisrCisr CXByaXYgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwKKysJCQkgICAgc3RydWN0X3NpemUocHJp diwgcmVnLCBKSDcxMTBfQU9OQ0xLX0VORCksCisrCQkJICAgIEdGUF9LRVJORUwpOworKwlpZiAo IXByaXYpCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnJt d19sb2NrKTsKKysJcHJpdi0+ZGV2ID0gJnBkZXYtPmRldjsKKysJcHJpdi0+YmFzZSA9IGRldm1f cGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKysJaWYgKElTX0VSUihwcml2LT5i YXNlKSkKKysJCXJldHVybiBQVFJfRVJSKHByaXYtPmJhc2UpOworKworKwlkZXZfc2V0X2RydmRh dGEocHJpdi0+ZGV2LCAodm9pZCAqKSgmcHJpdi0+YmFzZSkpOworKworKwlmb3IgKGlkeCA9IDA7 IGlkeCA8IEpINzExMF9BT05DTEtfRU5EOyBpZHgrKykgeworKwkJdTMyIG1heCA9IGpoNzExMF9h b25jbGtfZGF0YVtpZHhdLm1heDsKKysJCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEgcGFyZW50c1s0 XSA9IHt9OworKwkJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdCA9IHsKKysJCQkubmFtZSA9IGpo NzExMF9hb25jbGtfZGF0YVtpZHhdLm5hbWUsCisrCQkJLm9wcyA9IHN0YXJmaXZlX2poNzF4MF9j bGtfb3BzKG1heCksCisrCQkJLnBhcmVudF9kYXRhID0gcGFyZW50cywKKysJCQkubnVtX3BhcmVu dHMgPQorKwkJCQkoKG1heCAmIEpINzFYMF9DTEtfTVVYX01BU0spID4+IEpINzFYMF9DTEtfTVVY X1NISUZUKSArIDEsCisrCQkJLmZsYWdzID0gamg3MTEwX2FvbmNsa19kYXRhW2lkeF0uZmxhZ3Ms CisrCQl9OworKwkJc3RydWN0IGpoNzF4MF9jbGsgKmNsayA9ICZwcml2LT5yZWdbaWR4XTsKKysJ CXVuc2lnbmVkIGludCBpOworKworKwkJZm9yIChpID0gMDsgaSA8IGluaXQubnVtX3BhcmVudHM7 IGkrKykgeworKwkJCXVuc2lnbmVkIGludCBwaWR4ID0gamg3MTEwX2FvbmNsa19kYXRhW2lkeF0u cGFyZW50c1tpXTsKKysKKysJCQlpZiAocGlkeCA8IEpINzExMF9BT05DTEtfRU5EKQorKwkJCQlw YXJlbnRzW2ldLmh3ID0gJnByaXYtPnJlZ1twaWR4XS5odzsKKysJCQllbHNlIGlmIChwaWR4ID09 IEpINzExMF9BT05DTEtfT1NDKQorKwkJCQlwYXJlbnRzW2ldLmZ3X25hbWUgPSAib3NjIjsKKysJ CQllbHNlIGlmIChwaWR4ID09IEpINzExMF9BT05DTEtfR01BQzBfUk1JSV9SRUZJTikKKysJCQkJ cGFyZW50c1tpXS5md19uYW1lID0gImdtYWMwX3JtaWlfcmVmaW4iOworKwkJCWVsc2UgaWYgKHBp ZHggPT0gSkg3MTEwX0FPTkNMS19HTUFDMF9SR01JSV9SWElOKQorKwkJCQlwYXJlbnRzW2ldLmZ3 X25hbWUgPSAiZ21hYzBfcmdtaWlfcnhpbiI7CisrCQkJZWxzZSBpZiAocGlkeCA9PSBKSDcxMTBf QU9OQ0xLX1NUR19BWElBSEIpCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJzdGdfYXhpYWhi IjsKKysJCQllbHNlIGlmIChwaWR4ID09IEpINzExMF9BT05DTEtfQVBCX0JVUykKKysJCQkJcGFy ZW50c1tpXS5md19uYW1lID0gImFwYl9idXMiOworKwkJCWVsc2UgaWYgKHBpZHggPT0gSkg3MTEw X0FPTkNMS19HTUFDMF9HVFhDTEspCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJnbWFjMF9n dHhjbGsiOworKwkJCWVsc2UgaWYgKHBpZHggPT0gSkg3MTEwX0FPTkNMS19SVENfT1NDKQorKwkJ CQlwYXJlbnRzW2ldLmZ3X25hbWUgPSAicnRjX29zYyI7CisrCQl9CisrCisrCQljbGstPmh3Lmlu aXQgPSAmaW5pdDsKKysJCWNsay0+aWR4ID0gaWR4OworKwkJY2xrLT5tYXhfZGl2ID0gbWF4ICYg Skg3MVgwX0NMS19ESVZfTUFTSzsKKysKKysJCXJldCA9IGRldm1fY2xrX2h3X3JlZ2lzdGVyKCZw ZGV2LT5kZXYsICZjbGstPmh3KTsKKysJCWlmIChyZXQpCisrCQkJcmV0dXJuIHJldDsKKysJfQor KworKwlyZXQgPSBkZXZtX29mX2Nsa19hZGRfaHdfcHJvdmlkZXIoJnBkZXYtPmRldiwgamg3MTEw X2FvbmNsa19nZXQsIHByaXYpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcmV0 dXJuIGpoNzExMF9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKHByaXYsICJyc3QtYW9uIiwgMSk7 CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF9hb25jcmdf bWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtYW9uY3JnIiB9 LAorKwl7IC8qIHNlbnRpbmVsICovIH0KKyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGpo NzExMF9hb25jcmdfbWF0Y2gpOworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGpo NzExMF9hb25jcmdfZHJpdmVyID0geworKwkucHJvYmUgPSBqaDcxMTBfYW9uY3JnX3Byb2JlLAor KwkuZHJpdmVyID0geworKwkJLm5hbWUgPSAiY2xrLXN0YXJmaXZlLWpoNzExMC1hb24iLAorKwkJ Lm9mX21hdGNoX3RhYmxlID0gamg3MTEwX2FvbmNyZ19tYXRjaCwKKysJfSwKKyt9OworK21vZHVs ZV9wbGF0Zm9ybV9kcml2ZXIoamg3MTEwX2FvbmNyZ19kcml2ZXIpOworKworK01PRFVMRV9BVVRI T1IoIkVtaWwgUmVubmVyIEJlcnRoaW5nIik7CisrTU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2 ZSBKSDcxMTAgYWx3YXlzLW9uIGNsb2NrIGRyaXZlciIpOworK01PRFVMRV9MSUNFTlNFKCJHUEwi KTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDE1LXJlc2V0LXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtcmVzZXQtZHJpdmVyLnBhdGNo IGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTUtcmVzZXQtc3RhcmZpdmUtQWRkLVN0YXJG aXZlLUpINzExMC1yZXNldC1kcml2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uY2FkNTk5NTAyODQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDE1LXJlc2V0LXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAt cmVzZXQtZHJpdmVyLnBhdGNoCkBAIC0wLDAgKzEsMTIxIEBACitGcm9tIDg1Y2ZmNDg4ODllNWVl ZDU5Y2E0MzUzYzEyMzM3NzI5NGMzOGRhMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFNhdCwgMSBBcHIg MjAyMyAxOToxOToyNyArMDgwMAorU3ViamVjdDogW1BBVENIIDE1Lzg0XSByZXNldDogc3RhcmZp dmU6IEFkZCBTdGFyRml2ZSBKSDcxMTAgcmVzZXQgZHJpdmVyCisKK0FkZCBhdXhpbGlhcnkgZHJp dmVyIHRvIHN1cHBvcnQgU3RhckZpdmUgSkg3MTEwIHN5c3RlbQorYW5kIGFsd2F5cy1vbiByZXNl dHMuCisKK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJjaWFpIDx0b21tLm1lcmNpYWlAZ21haWwuY29t PgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+Cist LS0KKyBkcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL0tjb25maWcgICAgICAgICAgICAgICAgfCAgOCAr KysKKyBkcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgMSAr CisgLi4uL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpoNzExMC5jICAgIHwgNzAgKysr KysrKysrKysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKQorIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZlLWpo NzExMC5jCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL0tjb25maWcgYi9k cml2ZXJzL3Jlc2V0L3N0YXJmaXZlL0tjb25maWcKK2luZGV4IDE5MjdhNWEzYjUzYS4uMWZhNzA2 YTJjM2RjIDEwMDY0NAorLS0tIGEvZHJpdmVycy9yZXNldC9zdGFyZml2ZS9LY29uZmlnCisrKysg Yi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL0tjb25maWcKK0BAIC0xMCwzICsxMCwxMSBAQCBjb25m aWcgUkVTRVRfU1RBUkZJVkVfSkg3MTAwCisgCWRlZmF1bHQgQVJDSF9TVEFSRklWRQorIAloZWxw CisgCSAgVGhpcyBlbmFibGVzIHRoZSByZXNldCBjb250cm9sbGVyIGRyaXZlciBmb3IgdGhlIFN0 YXJGaXZlIEpINzEwMCBTb0MuCisrCisrY29uZmlnIFJFU0VUX1NUQVJGSVZFX0pINzExMAorKwli b29sICJTdGFyRml2ZSBKSDcxMTAgUmVzZXQgRHJpdmVyIgorKwlkZXBlbmRzIG9uIEFVWElMSUFS WV9CVVMgJiYgQ0xLX1NUQVJGSVZFX0pINzExMF9TWVMKKysJc2VsZWN0IFJFU0VUX1NUQVJGSVZF X0pINzFYMAorKwlkZWZhdWx0IEFSQ0hfU1RBUkZJVkUKKysJaGVscAorKwkgIFRoaXMgZW5hYmxl cyB0aGUgcmVzZXQgY29udHJvbGxlciBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29D LgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJz L3Jlc2V0L3N0YXJmaXZlL01ha2VmaWxlCitpbmRleCBmNmFhMTI0NjZmYWQuLjdhNDRiNjZmYjlk NSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvTWFrZWZpbGUKKysrKyBiL2Ry aXZlcnMvcmVzZXQvc3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0yLDMgKzIsNCBAQAorIG9iai0kKENP TkZJR19SRVNFVF9TVEFSRklWRV9KSDcxWDApCQkrPSByZXNldC1zdGFyZml2ZS1qaDcxeDAubwor IAorIG9iai0kKENPTkZJR19SRVNFVF9TVEFSRklWRV9KSDcxMDApCQkrPSByZXNldC1zdGFyZml2 ZS1qaDcxMDAubworK29iai0kKENPTkZJR19SRVNFVF9TVEFSRklWRV9KSDcxMTApCQkrPSByZXNl dC1zdGFyZml2ZS1qaDcxMTAubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUv cmVzZXQtc3RhcmZpdmUtamg3MTEwLmMgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0 YXJmaXZlLWpoNzExMC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAw Li5jMWIzYTQ5MGQ5NTEKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZp dmUvcmVzZXQtc3RhcmZpdmUtamg3MTEwLmMKK0BAIC0wLDAgKzEsNzAgQEAKKysvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorKy8qCisrICogUmVzZXQgZHJpdmVy IGZvciB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQworKyAqCisrICogQ29weXJpZ2h0IChDKSAyMDIy IFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4 L2F1eGlsaWFyeV9idXMuaD4KKysKKysjaW5jbHVkZSAicmVzZXQtc3RhcmZpdmUtamg3MXgwLmgi CisrCisrI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaD4K KysKKytzdHJ1Y3Qgamg3MTEwX3Jlc2V0X2luZm8geworKwl1bnNpZ25lZCBpbnQgbnJfcmVzZXRz OworKwl1bnNpZ25lZCBpbnQgYXNzZXJ0X29mZnNldDsKKysJdW5zaWduZWQgaW50IHN0YXR1c19v ZmZzZXQ7CisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9yZXNldF9pbmZvIGpo NzExMF9zeXNfaW5mbyA9IHsKKysJLm5yX3Jlc2V0cyA9IEpINzExMF9TWVNSU1RfRU5ELAorKwku YXNzZXJ0X29mZnNldCA9IDB4MkY4LAorKwkuc3RhdHVzX29mZnNldCA9IDB4MzA4LAorK307Cisr Cisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxMTBfcmVzZXRfaW5mbyBqaDcxMTBfYW9uX2luZm8g PSB7CisrCS5ucl9yZXNldHMgPSBKSDcxMTBfQU9OUlNUX0VORCwKKysJLmFzc2VydF9vZmZzZXQg PSAweDM4LAorKwkuc3RhdHVzX29mZnNldCA9IDB4M0MsCisrfTsKKysKKytzdGF0aWMgaW50IGpo NzExMF9yZXNldF9wcm9iZShzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldiwKKysJCQkgICAg ICBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZV9pZCAqaWQpCisreworKwlzdHJ1Y3Qgamg3 MTEwX3Jlc2V0X2luZm8gKmluZm8gPSAoc3RydWN0IGpoNzExMF9yZXNldF9pbmZvICopKGlkLT5k cml2ZXJfZGF0YSk7CisrCXZvaWQgX19pb21lbSAqKmJhc2UgPSAodm9pZCBfX2lvbWVtICoqKWRl dl9nZXRfZHJ2ZGF0YShhZGV2LT5kZXYucGFyZW50KTsKKysKKysJaWYgKCFpbmZvIHx8ICFiYXNl KQorKwkJcmV0dXJuIC1FTk9ERVY7CisrCisrCXJldHVybiByZXNldF9zdGFyZml2ZV9qaDcxeDBf cmVnaXN0ZXIoJmFkZXYtPmRldiwgYWRldi0+ZGV2LnBhcmVudC0+b2Zfbm9kZSwKKysJCQkJCSAg ICAgICpiYXNlICsgaW5mby0+YXNzZXJ0X29mZnNldCwKKysJCQkJCSAgICAgICpiYXNlICsgaW5m by0+c3RhdHVzX29mZnNldCwKKysJCQkJCSAgICAgIE5VTEwsCisrCQkJCQkgICAgICBpbmZvLT5u cl9yZXNldHMsCisrCQkJCQkgICAgICBOVUxMKTsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVj dCBhdXhpbGlhcnlfZGV2aWNlX2lkIGpoNzExMF9yZXNldF9pZHNbXSA9IHsKKysJeworKwkJLm5h bWUgPSAiY2xrX3N0YXJmaXZlX2poNzExMF9zeXMucnN0LXN5cyIsCisrCQkuZHJpdmVyX2RhdGEg PSAoa2VybmVsX3Vsb25nX3QpJmpoNzExMF9zeXNfaW5mbywKKysJfSwKKysJeworKwkJLm5hbWUg PSAiY2xrX3N0YXJmaXZlX2poNzExMF9zeXMucnN0LWFvbiIsCisrCQkuZHJpdmVyX2RhdGEgPSAo a2VybmVsX3Vsb25nX3QpJmpoNzExMF9hb25faW5mbywKKysJfSwKKysJeyAvKiBzZW50aW5lbCAq LyB9CisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxFKGF1eGlsaWFyeSwgamg3MTEwX3Jlc2V0X2lk cyk7CisrCisrc3RhdGljIHN0cnVjdCBhdXhpbGlhcnlfZHJpdmVyIGpoNzExMF9yZXNldF9kcml2 ZXIgPSB7CisrCS5wcm9iZQkJPSBqaDcxMTBfcmVzZXRfcHJvYmUsCisrCS5pZF90YWJsZQk9IGpo NzExMF9yZXNldF9pZHMsCisrfTsKKyttb2R1bGVfYXV4aWxpYXJ5X2RyaXZlcihqaDcxMTBfcmVz ZXRfZHJpdmVyKTsKKysKKytNT0RVTEVfQVVUSE9SKCJIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZp dmV0ZWNoLmNvbT4iKTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIEpINzExMCByZXNl dCBkcml2ZXIiKTsKKytNT0RVTEVfTElDRU5TRSgiR1BMIik7CistLSAKKzIuNDAuMQorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxNi1kdC1iaW5kaW5ncy10aW1lci1B ZGQtU3RhckZpdmUtSkg3MTEwLWNsaW50LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwMTYtZHQtYmluZGluZ3MtdGltZXItQWRkLVN0YXJGaXZlLUpINzExMC1jbGludC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi44ZTZhYjY2YWZlOTEwCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTYtZHQtYmluZGlu Z3MtdGltZXItQWRkLVN0YXJGaXZlLUpINzExMC1jbGludC5wYXRjaApAQCAtMCwwICsxLDMwIEBA CitGcm9tIGNhNjY1ZDM5NmI3MTI1NWU4OTQ2OTI4MjhmZTljMzlhZTE3MmIzMzMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWls LmRrPgorRGF0ZTogU2F0LCAxIEFwciAyMDIzIDE5OjE5OjI4ICswODAwCitTdWJqZWN0OiBbUEFU Q0ggMTYvODRdIGR0LWJpbmRpbmdzOiB0aW1lcjogQWRkIFN0YXJGaXZlIEpINzExMCBjbGludAor CitBZGQgY29tcGF0aWJsZSBzdHJpbmcgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgY2xpbnQuCisK K1Jldmlld2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgor QWNrZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyenlzenRvZi5rb3psb3dza2lAbGluYXJv Lm9yZz4KK1NpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwu ZGs+CitTaWduZWQtb2ZmLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4K Ky0tLQorIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9zaWZpdmUsY2xp bnQueWFtbCB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVyL3NpZml2ZSxjbGlu dC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVyL3NpZml2ZSxj bGludC55YW1sCitpbmRleCBhYWRhNjk1NzIxNmMuLjk0YmVmOTQyNGRmMSAxMDA2NDQKKy0tLSBh L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9zaWZpdmUsY2xpbnQueWFt bAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVyL3NpZml2ZSxj bGludC55YW1sCitAQCAtMzEsNiArMzEsNyBAQCBwcm9wZXJ0aWVzOgorICAgICAgICAgICAtIGVu dW06CisgICAgICAgICAgICAgICAtIHNpZml2ZSxmdTU0MC1jMDAwLWNsaW50CisgICAgICAgICAg ICAgICAtIHN0YXJmaXZlLGpoNzEwMC1jbGludAorKyAgICAgICAgICAgICAgLSBzdGFyZml2ZSxq aDcxMTAtY2xpbnQKKyAgICAgICAgICAgICAgIC0gY2FuYWFuLGsyMTAtY2xpbnQKKyAgICAgICAg ICAgLSBjb25zdDogc2lmaXZlLGNsaW50MAorICAgICAgIC0gaXRlbXM6CistLSAKKzIuNDAuMQor CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxNy1kdC1iaW5kaW5ncy1p bnRlcnJ1cHQtY29udHJvbGxlci1BZGQtU3RhckZpdmUtSkg3MTEwLnBhdGNoIGIvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwMTctZHQtYmluZGluZ3MtaW50ZXJydXB0LWNvbnRyb2xsZXItQWRk LVN0YXJGaXZlLUpINzExMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi44N2Q2OWNkYjEzZGJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYu My9wYXRjaGVzLzAwMTctZHQtYmluZGluZ3MtaW50ZXJydXB0LWNvbnRyb2xsZXItQWRkLVN0YXJG aXZlLUpINzExMC5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIDIwYTBlMmE5YmFhOGVhYTQ3 YjA5MGU1NzY0ZWI1NmRjM2Q2YTExZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBF bWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorRGF0ZTogU2F0LCAxIEFwciAy MDIzIDE5OjE5OjI5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMTcvODRdIGR0LWJpbmRpbmdzOiBp bnRlcnJ1cHQtY29udHJvbGxlcjogQWRkIFN0YXJGaXZlIEpINzExMAorIHBsaWMKKworQWRkIGNv bXBhdGlibGUgc3RyaW5nIGZvciBTdGFyRml2ZSBKSDcxMTAgcGxpYy4KKworUmV2aWV3ZWQtYnk6 IENvbm9yIERvb2xleSA8Y29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20+CitBY2tlZC1ieTogS3J6 eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgorU2lnbmVk LW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK1NpZ25lZC1v ZmYtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2Jp bmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL3NpZml2ZSxwbGljLTEuMC4wLnlhbWwgICAgICAg ICB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL3Np Zml2ZSxwbGljLTEuMC4wLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv aW50ZXJydXB0LWNvbnRyb2xsZXIvc2lmaXZlLHBsaWMtMS4wLjAueWFtbAoraW5kZXggNjNiYzg5 ZTEzNDgwLi40ZTk4MjYxZjI5NDggMTAwNjQ0CistLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRy ZWUvYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvc2lmaXZlLHBsaWMtMS4wLjAueWFtbAor KysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ludGVycnVwdC1jb250cm9s bGVyL3NpZml2ZSxwbGljLTEuMC4wLnlhbWwKK0BAIC01OSw2ICs1OSw3IEBAIHByb3BlcnRpZXM6 CisgICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgIC0gc2lmaXZlLGZ1NTQwLWMwMDAt cGxpYworICAgICAgICAgICAgICAgLSBzdGFyZml2ZSxqaDcxMDAtcGxpYworKyAgICAgICAgICAg ICAgLSBzdGFyZml2ZSxqaDcxMTAtcGxpYworICAgICAgICAgICAgICAgLSBjYW5hYW4sazIxMC1w bGljCisgICAgICAgICAgIC0gY29uc3Q6IHNpZml2ZSxwbGljLTEuMC4wCisgICAgICAgLSBpdGVt czoKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDE4LWR0LWJpbmRpbmdzLXJpc2N2LUFkZC1TaUZpdmUtUzctY29tcGF0aWJsZS5wYXRjaCBiL3Ny Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDE4LWR0LWJpbmRpbmdzLXJpc2N2LUFkZC1TaUZpdmUt UzctY29tcGF0aWJsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwLi42Y2Q5NjhlMWY2MTAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwMTgtZHQtYmluZGluZ3MtcmlzY3YtQWRkLVNpRml2ZS1TNy1jb21wYXRpYmxlLnBh dGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20gMDZjNmJhYmEzNDhjZDljOTY2MTQwNzBkMTZkOTVh YTg2YTZkNjU5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEhhbCBGZW5nIDxoYWwu ZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogU2F0LCAxIEFwciAyMDIzIDE5OjE5OjMwICsw ODAwCitTdWJqZWN0OiBbUEFUQ0ggMTgvODRdIGR0LWJpbmRpbmdzOiByaXNjdjogQWRkIFNpRml2 ZSBTNyBjb21wYXRpYmxlCisKK0FkZCBhIG5ldyBjb21wYXRpYmxlIHN0cmluZyBpbiBjcHUueWFt bCBmb3IgU2lGaXZlIFM3IENQVQorY29yZSB3aGljaCBpcyB1c2VkIG9uIFNpRml2ZSBVNzQtTUMg Y29yZSBjb21wbGV4IGV0Yy4KKworUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3IuZG9v bGV5QG1pY3JvY2hpcC5jb20+CitBY2tlZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6 dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5m ZW5nQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvcmlzY3YvY3B1cy55YW1sIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvcmlz Y3YvY3B1cy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jpc2N2L2Nw dXMueWFtbAoraW5kZXggMDAxOTMxZDUyNmVjLi4xNGI1YjdlYTBjZTAgMTAwNjQ0CistLS0gYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmlzY3YvY3B1cy55YW1sCisrKysgYi9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmlzY3YvY3B1cy55YW1sCitAQCAtMzUs NiArMzUsNyBAQCBwcm9wZXJ0aWVzOgorICAgICAgICAgICAgICAgLSBzaWZpdmUsZTcKKyAgICAg ICAgICAgICAgIC0gc2lmaXZlLGU3MQorICAgICAgICAgICAgICAgLSBzaWZpdmUscm9ja2V0MAor KyAgICAgICAgICAgICAgLSBzaWZpdmUsczcKKyAgICAgICAgICAgICAgIC0gc2lmaXZlLHU1Cisg ICAgICAgICAgICAgICAtIHNpZml2ZSx1NTQKKyAgICAgICAgICAgICAgIC0gc2lmaXZlLHU3Cist LSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAxOS1y aXNjdi1kdHMtc3RhcmZpdmUtQWRkLWluaXRpYWwtU3RhckZpdmUtSkg3MTEwLWRldmljLnBhdGNo IGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTktcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1p bml0aWFsLVN0YXJGaXZlLUpINzExMC1kZXZpYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwLi5mMGU5OGQ1YWIyY2RmCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwMTktcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1pbml0aWFs LVN0YXJGaXZlLUpINzExMC1kZXZpYy5wYXRjaApAQCAtMCwwICsxLDUzOSBAQAorRnJvbSA1MWY5 OTFlMDVlYjg3NDIyNTQxN2NiM2I1YTJiMWRkZGRjNzBlMTcwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK0RhdGU6 IFNhdCwgMSBBcHIgMjAyMyAxOToxOTozMSArMDgwMAorU3ViamVjdDogW1BBVENIIDE5Lzg0XSBy aXNjdjogZHRzOiBzdGFyZml2ZTogQWRkIGluaXRpYWwgU3RhckZpdmUgSkg3MTEwCisgZGV2aWNl IHRyZWUKKworQWRkIGluaXRpYWwgZGV2aWNlIHRyZWUgZm9yIHRoZSBKSDcxMTAgUklTQy1WIFNv QyBieSBTdGFyRml2ZQorVGVjaG5vbG9neSBMdGQuCisKK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJj aWFpIDx0b21tLm1lcmNpYWlAZ21haWwuY29tPgorUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8 Y29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBC ZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorQ28tZGV2ZWxvcGVkLWJ5OiBKaWFubG9uZyBIdWFu ZyA8amlhbmxvbmcuaHVhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEppYW5s b25nIEh1YW5nIDxqaWFubG9uZy5odWFuZ0BzdGFyZml2ZXRlY2guY29tPgorQ28tZGV2ZWxvcGVk LWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgYXJjaC9yaXNjdi9i b290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSB8IDUwOSArKysrKysrKysrKysrKysrKysrKysr KworIDEgZmlsZSBjaGFuZ2VkLCA1MDkgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCisKK2RpZmYgLS1naXQg YS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIGIvYXJjaC9yaXNjdi9i b290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwMDAwMC4uZDQ4NGVjZGY5M2Y3CistLS0gL2Rldi9udWxsCisrKysgYi9hcmNoL3Jp c2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitAQCAtMCwwICsxLDUwOSBAQAorKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVAorKy8qCisrICogQ29weXJp Z2h0IChDKSAyMDIyIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICogQ29weXJpZ2h0 IChDKSAyMDIyIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrICovCisr CisrL2R0cy12MS87CisrI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzEx MC1jcmcuaD4KKysjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNy Zy5oPgorKworKy8geworKwljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMCI7CisrCSNhZGRy ZXNzLWNlbGxzID0gPDI+OworKwkjc2l6ZS1jZWxscyA9IDwyPjsKKysKKysJY3B1cyB7CisrCQkj YWRkcmVzcy1jZWxscyA9IDwxPjsKKysJCSNzaXplLWNlbGxzID0gPDA+OworKworKwkJUzdfMDog Y3B1QDAgeworKwkJCWNvbXBhdGlibGUgPSAic2lmaXZlLHM3IiwgInJpc2N2IjsKKysJCQlyZWcg PSA8MD47CisrCQkJZC1jYWNoZS1ibG9jay1zaXplID0gPDY0PjsKKysJCQlkLWNhY2hlLXNldHMg PSA8NjQ+OworKwkJCWQtY2FjaGUtc2l6ZSA9IDw4MTkyPjsKKysJCQlkLXRsYi1zZXRzID0gPDE+ OworKwkJCWQtdGxiLXNpemUgPSA8NDA+OworKwkJCWRldmljZV90eXBlID0gImNwdSI7CisrCQkJ aS1jYWNoZS1ibG9jay1zaXplID0gPDY0PjsKKysJCQlpLWNhY2hlLXNldHMgPSA8NjQ+OworKwkJ CWktY2FjaGUtc2l6ZSA9IDwxNjM4ND47CisrCQkJaS10bGItc2V0cyA9IDwxPjsKKysJCQlpLXRs Yi1zaXplID0gPDQwPjsKKysJCQltbXUtdHlwZSA9ICJyaXNjdixzdjM5IjsKKysJCQluZXh0LWxl dmVsLWNhY2hlID0gPCZjY2FjaGU+OworKwkJCXJpc2N2LGlzYSA9ICJydjY0aW1hY196YmFfemJi IjsKKysJCQl0bGItc3BsaXQ7CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysKKysJCQljcHUw X2ludGM6IGludGVycnVwdC1jb250cm9sbGVyIHsKKysJCQkJY29tcGF0aWJsZSA9ICJyaXNjdixj cHUtaW50YyI7CisrCQkJCWludGVycnVwdC1jb250cm9sbGVyOworKwkJCQkjaW50ZXJydXB0LWNl bGxzID0gPDE+OworKwkJCX07CisrCQl9OworKworKwkJVTc0XzE6IGNwdUAxIHsKKysJCQljb21w YXRpYmxlID0gInNpZml2ZSx1NzQtbWMiLCAicmlzY3YiOworKwkJCXJlZyA9IDwxPjsKKysJCQlk LWNhY2hlLWJsb2NrLXNpemUgPSA8NjQ+OworKwkJCWQtY2FjaGUtc2V0cyA9IDw2ND47CisrCQkJ ZC1jYWNoZS1zaXplID0gPDMyNzY4PjsKKysJCQlkLXRsYi1zZXRzID0gPDE+OworKwkJCWQtdGxi LXNpemUgPSA8NDA+OworKwkJCWRldmljZV90eXBlID0gImNwdSI7CisrCQkJaS1jYWNoZS1ibG9j ay1zaXplID0gPDY0PjsKKysJCQlpLWNhY2hlLXNldHMgPSA8NjQ+OworKwkJCWktY2FjaGUtc2l6 ZSA9IDwzMjc2OD47CisrCQkJaS10bGItc2V0cyA9IDwxPjsKKysJCQlpLXRsYi1zaXplID0gPDQw PjsKKysJCQltbXUtdHlwZSA9ICJyaXNjdixzdjM5IjsKKysJCQluZXh0LWxldmVsLWNhY2hlID0g PCZjY2FjaGU+OworKwkJCXJpc2N2LGlzYSA9ICJydjY0aW1hZmRjX3piYV96YmIiOworKwkJCXRs Yi1zcGxpdDsKKysKKysJCQljcHUxX2ludGM6IGludGVycnVwdC1jb250cm9sbGVyIHsKKysJCQkJ Y29tcGF0aWJsZSA9ICJyaXNjdixjcHUtaW50YyI7CisrCQkJCWludGVycnVwdC1jb250cm9sbGVy OworKwkJCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworKwkJCX07CisrCQl9OworKworKwkJVTc0 XzI6IGNwdUAyIHsKKysJCQljb21wYXRpYmxlID0gInNpZml2ZSx1NzQtbWMiLCAicmlzY3YiOwor KwkJCXJlZyA9IDwyPjsKKysJCQlkLWNhY2hlLWJsb2NrLXNpemUgPSA8NjQ+OworKwkJCWQtY2Fj aGUtc2V0cyA9IDw2ND47CisrCQkJZC1jYWNoZS1zaXplID0gPDMyNzY4PjsKKysJCQlkLXRsYi1z ZXRzID0gPDE+OworKwkJCWQtdGxiLXNpemUgPSA8NDA+OworKwkJCWRldmljZV90eXBlID0gImNw dSI7CisrCQkJaS1jYWNoZS1ibG9jay1zaXplID0gPDY0PjsKKysJCQlpLWNhY2hlLXNldHMgPSA8 NjQ+OworKwkJCWktY2FjaGUtc2l6ZSA9IDwzMjc2OD47CisrCQkJaS10bGItc2V0cyA9IDwxPjsK KysJCQlpLXRsYi1zaXplID0gPDQwPjsKKysJCQltbXUtdHlwZSA9ICJyaXNjdixzdjM5IjsKKysJ CQluZXh0LWxldmVsLWNhY2hlID0gPCZjY2FjaGU+OworKwkJCXJpc2N2LGlzYSA9ICJydjY0aW1h ZmRjX3piYV96YmIiOworKwkJCXRsYi1zcGxpdDsKKysKKysJCQljcHUyX2ludGM6IGludGVycnVw dC1jb250cm9sbGVyIHsKKysJCQkJY29tcGF0aWJsZSA9ICJyaXNjdixjcHUtaW50YyI7CisrCQkJ CWludGVycnVwdC1jb250cm9sbGVyOworKwkJCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworKwkJ CX07CisrCQl9OworKworKwkJVTc0XzM6IGNwdUAzIHsKKysJCQljb21wYXRpYmxlID0gInNpZml2 ZSx1NzQtbWMiLCAicmlzY3YiOworKwkJCXJlZyA9IDwzPjsKKysJCQlkLWNhY2hlLWJsb2NrLXNp emUgPSA8NjQ+OworKwkJCWQtY2FjaGUtc2V0cyA9IDw2ND47CisrCQkJZC1jYWNoZS1zaXplID0g PDMyNzY4PjsKKysJCQlkLXRsYi1zZXRzID0gPDE+OworKwkJCWQtdGxiLXNpemUgPSA8NDA+Owor KwkJCWRldmljZV90eXBlID0gImNwdSI7CisrCQkJaS1jYWNoZS1ibG9jay1zaXplID0gPDY0PjsK KysJCQlpLWNhY2hlLXNldHMgPSA8NjQ+OworKwkJCWktY2FjaGUtc2l6ZSA9IDwzMjc2OD47Cisr CQkJaS10bGItc2V0cyA9IDwxPjsKKysJCQlpLXRsYi1zaXplID0gPDQwPjsKKysJCQltbXUtdHlw ZSA9ICJyaXNjdixzdjM5IjsKKysJCQluZXh0LWxldmVsLWNhY2hlID0gPCZjY2FjaGU+OworKwkJ CXJpc2N2LGlzYSA9ICJydjY0aW1hZmRjX3piYV96YmIiOworKwkJCXRsYi1zcGxpdDsKKysKKysJ CQljcHUzX2ludGM6IGludGVycnVwdC1jb250cm9sbGVyIHsKKysJCQkJY29tcGF0aWJsZSA9ICJy aXNjdixjcHUtaW50YyI7CisrCQkJCWludGVycnVwdC1jb250cm9sbGVyOworKwkJCQkjaW50ZXJy dXB0LWNlbGxzID0gPDE+OworKwkJCX07CisrCQl9OworKworKwkJVTc0XzQ6IGNwdUA0IHsKKysJ CQljb21wYXRpYmxlID0gInNpZml2ZSx1NzQtbWMiLCAicmlzY3YiOworKwkJCXJlZyA9IDw0PjsK KysJCQlkLWNhY2hlLWJsb2NrLXNpemUgPSA8NjQ+OworKwkJCWQtY2FjaGUtc2V0cyA9IDw2ND47 CisrCQkJZC1jYWNoZS1zaXplID0gPDMyNzY4PjsKKysJCQlkLXRsYi1zZXRzID0gPDE+OworKwkJ CWQtdGxiLXNpemUgPSA8NDA+OworKwkJCWRldmljZV90eXBlID0gImNwdSI7CisrCQkJaS1jYWNo ZS1ibG9jay1zaXplID0gPDY0PjsKKysJCQlpLWNhY2hlLXNldHMgPSA8NjQ+OworKwkJCWktY2Fj aGUtc2l6ZSA9IDwzMjc2OD47CisrCQkJaS10bGItc2V0cyA9IDwxPjsKKysJCQlpLXRsYi1zaXpl ID0gPDQwPjsKKysJCQltbXUtdHlwZSA9ICJyaXNjdixzdjM5IjsKKysJCQluZXh0LWxldmVsLWNh Y2hlID0gPCZjY2FjaGU+OworKwkJCXJpc2N2LGlzYSA9ICJydjY0aW1hZmRjX3piYV96YmIiOwor KwkJCXRsYi1zcGxpdDsKKysKKysJCQljcHU0X2ludGM6IGludGVycnVwdC1jb250cm9sbGVyIHsK KysJCQkJY29tcGF0aWJsZSA9ICJyaXNjdixjcHUtaW50YyI7CisrCQkJCWludGVycnVwdC1jb250 cm9sbGVyOworKwkJCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworKwkJCX07CisrCQl9OworKwor KwkJY3B1LW1hcCB7CisrCQkJY2x1c3RlcjAgeworKwkJCQljb3JlMCB7CisrCQkJCQljcHUgPSA8 JlM3XzA+OworKwkJCQl9OworKworKwkJCQljb3JlMSB7CisrCQkJCQljcHUgPSA8JlU3NF8xPjsK KysJCQkJfTsKKysKKysJCQkJY29yZTIgeworKwkJCQkJY3B1ID0gPCZVNzRfMj47CisrCQkJCX07 CisrCisrCQkJCWNvcmUzIHsKKysJCQkJCWNwdSA9IDwmVTc0XzM+OworKwkJCQl9OworKworKwkJ CQljb3JlNCB7CisrCQkJCQljcHUgPSA8JlU3NF80PjsKKysJCQkJfTsKKysJCQl9OworKwkJfTsK KysJfTsKKysKKysJZ21hYzBfcmdtaWlfcnhpbjogZ21hYzAtcmdtaWktcnhpbi1jbG9jayB7Cisr CQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKKysJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJn bWFjMF9yZ21paV9yeGluIjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysKKysJZ21h YzBfcm1paV9yZWZpbjogZ21hYzAtcm1paS1yZWZpbi1jbG9jayB7CisrCQljb21wYXRpYmxlID0g ImZpeGVkLWNsb2NrIjsKKysJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJnbWFjMF9ybWlpX3JlZmlu IjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysKKysJZ21hYzFfcmdtaWlfcnhpbjog Z21hYzEtcmdtaWktcnhpbi1jbG9jayB7CisrCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsK KysJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJnbWFjMV9yZ21paV9yeGluIjsKKysJCSNjbG9jay1j ZWxscyA9IDwwPjsKKysJfTsKKysKKysJZ21hYzFfcm1paV9yZWZpbjogZ21hYzEtcm1paS1yZWZp bi1jbG9jayB7CisrCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKKysJCWNsb2NrLW91dHB1 dC1uYW1lcyA9ICJnbWFjMV9ybWlpX3JlZmluIjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJ fTsKKysKKysJaTJzcnhfYmNsa19leHQ6IGkyc3J4LWJjbGstZXh0LWNsb2NrIHsKKysJCWNvbXBh dGlibGUgPSAiZml4ZWQtY2xvY2siOworKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gImkyc3J4X2Jj bGtfZXh0IjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysKKysJaTJzcnhfbHJja19l eHQ6IGkyc3J4LWxyY2stZXh0LWNsb2NrIHsKKysJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2si OworKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gImkyc3J4X2xyY2tfZXh0IjsKKysJCSNjbG9jay1j ZWxscyA9IDwwPjsKKysJfTsKKysKKysJaTJzdHhfYmNsa19leHQ6IGkyc3R4LWJjbGstZXh0LWNs b2NrIHsKKysJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworKwkJY2xvY2stb3V0cHV0LW5h bWVzID0gImkyc3R4X2JjbGtfZXh0IjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysK KysJaTJzdHhfbHJja19leHQ6IGkyc3R4LWxyY2stZXh0LWNsb2NrIHsKKysJCWNvbXBhdGlibGUg PSAiZml4ZWQtY2xvY2siOworKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gImkyc3R4X2xyY2tfZXh0 IjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysKKysJbWNsa19leHQ6IG1jbGstZXh0 LWNsb2NrIHsKKysJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworKwkJY2xvY2stb3V0cHV0 LW5hbWVzID0gIm1jbGtfZXh0IjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysKKysJ b3NjOiBvc2NpbGxhdG9yIHsKKysJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworKwkJY2xv Y2stb3V0cHV0LW5hbWVzID0gIm9zYyI7CisrCQkjY2xvY2stY2VsbHMgPSA8MD47CisrCX07Cisr CisrCXJ0Y19vc2M6IHJ0Yy1vc2NpbGxhdG9yIHsKKysJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xv Y2siOworKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gInJ0Y19vc2MiOworKwkJI2Nsb2NrLWNlbGxz ID0gPDA+OworKwl9OworKworKwl0ZG1fZXh0OiB0ZG0tZXh0LWNsb2NrIHsKKysJCWNvbXBhdGli bGUgPSAiZml4ZWQtY2xvY2siOworKwkJY2xvY2stb3V0cHV0LW5hbWVzID0gInRkbV9leHQiOwor KwkJI2Nsb2NrLWNlbGxzID0gPDA+OworKwl9OworKworKwlzb2MgeworKwkJY29tcGF0aWJsZSA9 ICJzaW1wbGUtYnVzIjsKKysJCWludGVycnVwdC1wYXJlbnQgPSA8JnBsaWM+OworKwkJI2FkZHJl c3MtY2VsbHMgPSA8Mj47CisrCQkjc2l6ZS1jZWxscyA9IDwyPjsKKysJCXJhbmdlczsKKysKKysJ CWNsaW50OiB0aW1lckAyMDAwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC1jbGludCIsICJzaWZpdmUsY2xpbnQwIjsKKysJCQlyZWcgPSA8MHgwIDB4MjAwMDAwMCAweDAg MHgxMDAwMD47CisrCQkJaW50ZXJydXB0cy1leHRlbmRlZCA9IDwmY3B1MF9pbnRjIDM+LCA8JmNw dTBfaW50YyA3PiwKKysJCQkJCSAgICAgIDwmY3B1MV9pbnRjIDM+LCA8JmNwdTFfaW50YyA3PiwK KysJCQkJCSAgICAgIDwmY3B1Ml9pbnRjIDM+LCA8JmNwdTJfaW50YyA3PiwKKysJCQkJCSAgICAg IDwmY3B1M19pbnRjIDM+LCA8JmNwdTNfaW50YyA3PiwKKysJCQkJCSAgICAgIDwmY3B1NF9pbnRj IDM+LCA8JmNwdTRfaW50YyA3PjsKKysJCX07CisrCisrCQljY2FjaGU6IGNhY2hlLWNvbnRyb2xs ZXJAMjAxMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtY2NhY2hlIiwg InNpZml2ZSxjY2FjaGUwIiwgImNhY2hlIjsKKysJCQlyZWcgPSA8MHgwIDB4MjAxMDAwMCAweDAg MHg0MDAwPjsKKysJCQlpbnRlcnJ1cHRzID0gPDE+LCA8Mz4sIDw0PiwgPDI+OworKwkJCWNhY2hl LWJsb2NrLXNpemUgPSA8NjQ+OworKwkJCWNhY2hlLWxldmVsID0gPDI+OworKwkJCWNhY2hlLXNl dHMgPSA8MjA0OD47CisrCQkJY2FjaGUtc2l6ZSA9IDwyMDk3MTUyPjsKKysJCQljYWNoZS11bmlm aWVkOworKwkJfTsKKysKKysJCXBsaWM6IGludGVycnVwdC1jb250cm9sbGVyQGMwMDAwMDAgewor KwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXBsaWMiLCAic2lmaXZlLHBsaWMtMS4w LjAiOworKwkJCXJlZyA9IDwweDAgMHhjMDAwMDAwIDB4MCAweDQwMDAwMDA+OworKwkJCWludGVy cnVwdHMtZXh0ZW5kZWQgPSA8JmNwdTBfaW50YyAxMT4sCisrCQkJCQkgICAgICA8JmNwdTFfaW50 YyAxMT4sIDwmY3B1MV9pbnRjIDk+LAorKwkJCQkJICAgICAgPCZjcHUyX2ludGMgMTE+LCA8JmNw dTJfaW50YyA5PiwKKysJCQkJCSAgICAgIDwmY3B1M19pbnRjIDExPiwgPCZjcHUzX2ludGMgOT4s CisrCQkJCQkgICAgICA8JmNwdTRfaW50YyAxMT4sIDwmY3B1NF9pbnRjIDk+OworKwkJCWludGVy cnVwdC1jb250cm9sbGVyOworKwkJCSNpbnRlcnJ1cHQtY2VsbHMgPSA8MT47CisrCQkJI2FkZHJl c3MtY2VsbHMgPSA8MD47CisrCQkJcmlzY3YsbmRldiA9IDwxMzY+OworKwkJfTsKKysKKysJCXVh cnQwOiBzZXJpYWxAMTAwMDAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic25wcyxkdy1hcGItdWFy dCI7CisrCQkJcmVnID0gPDB4MCAweDEwMDAwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3Mg PSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1VBUlQwX0NPUkU+LAorKwkJCQkgPCZzeXNjcmcgSkg3 MTEwX1NZU0NMS19VQVJUMF9BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gImJhdWRjbGsiLCAiYXBi X3BjbGsiOworKwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVUFSVDBfQVBCPjsK KysJCQlpbnRlcnJ1cHRzID0gPDMyPjsKKysJCQlyZWctaW8td2lkdGggPSA8ND47CisrCQkJcmVn LXNoaWZ0ID0gPDI+OworKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisrCQl9OworKworKwkJdWFy dDE6IHNlcmlhbEAxMDAxMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzbnBzLGR3LWFwYi11YXJ0 IjsKKysJCQlyZWcgPSA8MHgwIDB4MTAwMTAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9 IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVUFSVDFfQ09SRT4sCisrCQkJCSA8JnN5c2NyZyBKSDcx MTBfU1lTQ0xLX1VBUlQxX0FQQj47CisrCQkJY2xvY2stbmFtZXMgPSAiYmF1ZGNsayIsICJhcGJf cGNsayI7CisrCQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9VQVJUMV9BUEI+Owor KwkJCWludGVycnVwdHMgPSA8MzM+OworKwkJCXJlZy1pby13aWR0aCA9IDw0PjsKKysJCQlyZWct c2hpZnQgPSA8Mj47CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisrCQl1YXJ0 Mjogc2VyaWFsQDEwMDIwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInNucHMsZHctYXBiLXVhcnQi OworKwkJCXJlZyA9IDwweDAgMHgxMDAyMDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0g PCZzeXNjcmcgSkg3MTEwX1NZU0NMS19VQVJUMl9DT1JFPiwKKysJCQkJIDwmc3lzY3JnIEpINzEx MF9TWVNDTEtfVUFSVDJfQVBCPjsKKysJCQljbG9jay1uYW1lcyA9ICJiYXVkY2xrIiwgImFwYl9w Y2xrIjsKKysJCQlyZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1VBUlQyX0FQQj47Cisr CQkJaW50ZXJydXB0cyA9IDwzND47CisrCQkJcmVnLWlvLXdpZHRoID0gPDQ+OworKwkJCXJlZy1z aGlmdCA9IDwyPjsKKysJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworKwkJfTsKKysKKysJCWkyYzA6 IGkyY0AxMDAzMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzbnBzLGRlc2lnbndhcmUtaTJjIjsK KysJCQlyZWcgPSA8MHgwIDB4MTAwMzAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwm c3lzY3JnIEpINzExMF9TWVNDTEtfSTJDMF9BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gInJlZiI7 CisrCQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9JMkMwX0FQQj47CisrCQkJaW50 ZXJydXB0cyA9IDwzNT47CisrCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisrCQkJI3NpemUtY2Vs bHMgPSA8MD47CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisrCQlpMmMxOiBp MmNAMTAwNDAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic25wcyxkZXNpZ253YXJlLWkyYyI7Cisr CQkJcmVnID0gPDB4MCAweDEwMDQwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN5 c2NyZyBKSDcxMTBfU1lTQ0xLX0kyQzFfQVBCPjsKKysJCQljbG9jay1uYW1lcyA9ICJyZWYiOwor KwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfSTJDMV9BUEI+OworKwkJCWludGVy cnVwdHMgPSA8MzY+OworKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworKwkJCSNzaXplLWNlbGxz ID0gPDA+OworKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisrCQl9OworKworKwkJaTJjMjogaTJj QDEwMDUwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInNucHMsZGVzaWdud2FyZS1pMmMiOworKwkJ CXJlZyA9IDwweDAgMHgxMDA1MDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZzeXNj cmcgSkg3MTEwX1NZU0NMS19JMkMyX0FQQj47CisrCQkJY2xvY2stbmFtZXMgPSAicmVmIjsKKysJ CQlyZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX0kyQzJfQVBCPjsKKysJCQlpbnRlcnJ1 cHRzID0gPDM3PjsKKysJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKysJCQkjc2l6ZS1jZWxscyA9 IDwwPjsKKysJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworKwkJfTsKKysKKysJCXVhcnQzOiBzZXJp YWxAMTIwMDAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic25wcyxkdy1hcGItdWFydCI7CisrCQkJ cmVnID0gPDB4MCAweDEyMDAwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN5c2Ny ZyBKSDcxMTBfU1lTQ0xLX1VBUlQzX0NPUkU+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NM S19VQVJUM19BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gImJhdWRjbGsiLCAiYXBiX3BjbGsiOwor KwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVUFSVDNfQVBCPjsKKysJCQlpbnRl cnJ1cHRzID0gPDQ1PjsKKysJCQlyZWctaW8td2lkdGggPSA8ND47CisrCQkJcmVnLXNoaWZ0ID0g PDI+OworKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisrCQl9OworKworKwkJdWFydDQ6IHNlcmlh bEAxMjAxMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzbnBzLGR3LWFwYi11YXJ0IjsKKysJCQly ZWcgPSA8MHgwIDB4MTIwMTAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3Jn IEpINzExMF9TWVNDTEtfVUFSVDRfQ09SRT4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xL X1VBUlQ0X0FQQj47CisrCQkJY2xvY2stbmFtZXMgPSAiYmF1ZGNsayIsICJhcGJfcGNsayI7Cisr CQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9VQVJUNF9BUEI+OworKwkJCWludGVy cnVwdHMgPSA8NDY+OworKwkJCXJlZy1pby13aWR0aCA9IDw0PjsKKysJCQlyZWctc2hpZnQgPSA8 Mj47CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisrCQl1YXJ0NTogc2VyaWFs QDEyMDIwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInNucHMsZHctYXBiLXVhcnQiOworKwkJCXJl ZyA9IDwweDAgMHgxMjAyMDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZzeXNjcmcg Skg3MTEwX1NZU0NMS19VQVJUNV9DT1JFPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtf VUFSVDVfQVBCPjsKKysJCQljbG9jay1uYW1lcyA9ICJiYXVkY2xrIiwgImFwYl9wY2xrIjsKKysJ CQlyZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1VBUlQ1X0FQQj47CisrCQkJaW50ZXJy dXB0cyA9IDw0Nz47CisrCQkJcmVnLWlvLXdpZHRoID0gPDQ+OworKwkJCXJlZy1zaGlmdCA9IDwy PjsKKysJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworKwkJfTsKKysKKysJCWkyYzM6IGkyY0AxMjAz MDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzbnBzLGRlc2lnbndhcmUtaTJjIjsKKysJCQlyZWcg PSA8MHgwIDB4MTIwMzAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpI NzExMF9TWVNDTEtfSTJDM19BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gInJlZiI7CisrCQkJcmVz ZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9JMkMzX0FQQj47CisrCQkJaW50ZXJydXB0cyA9 IDw0OD47CisrCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisrCQkJI3NpemUtY2VsbHMgPSA8MD47 CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisrCQlpMmM0OiBpMmNAMTIwNDAw MDAgeworKwkJCWNvbXBhdGlibGUgPSAic25wcyxkZXNpZ253YXJlLWkyYyI7CisrCQkJcmVnID0g PDB4MCAweDEyMDQwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcx MTBfU1lTQ0xLX0kyQzRfQVBCPjsKKysJCQljbG9jay1uYW1lcyA9ICJyZWYiOworKwkJCXJlc2V0 cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfSTJDNF9BUEI+OworKwkJCWludGVycnVwdHMgPSA8 NDk+OworKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworKwkJCSNzaXplLWNlbGxzID0gPDA+Owor KwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisrCQl9OworKworKwkJaTJjNTogaTJjQDEyMDUwMDAw IHsKKysJCQljb21wYXRpYmxlID0gInNucHMsZGVzaWdud2FyZS1pMmMiOworKwkJCXJlZyA9IDww eDAgMHgxMjA1MDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19JMkM1X0FQQj47CisrCQkJY2xvY2stbmFtZXMgPSAicmVmIjsKKysJCQlyZXNldHMg PSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX0kyQzVfQVBCPjsKKysJCQlpbnRlcnJ1cHRzID0gPDUw PjsKKysJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKysJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKysJ CQlzdGF0dXMgPSAiZGlzYWJsZWQiOworKwkJfTsKKysKKysJCWkyYzY6IGkyY0AxMjA2MDAwMCB7 CisrCQkJY29tcGF0aWJsZSA9ICJzbnBzLGRlc2lnbndhcmUtaTJjIjsKKysJCQlyZWcgPSA8MHgw IDB4MTIwNjAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9T WVNDTEtfSTJDNl9BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gInJlZiI7CisrCQkJcmVzZXRzID0g PCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9JMkM2X0FQQj47CisrCQkJaW50ZXJydXB0cyA9IDw1MT47 CisrCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisrCQkJI3NpemUtY2VsbHMgPSA8MD47CisrCQkJ c3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisrCQlzeXNjcmc6IGNsb2NrLWNvbnRyb2xs ZXJAMTMwMjAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXN5c2NyZyI7 CisrCQkJcmVnID0gPDB4MCAweDEzMDIwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8 Jm9zYz4sIDwmZ21hYzFfcm1paV9yZWZpbj4sCisrCQkJCSA8JmdtYWMxX3JnbWlpX3J4aW4+LAor KwkJCQkgPCZpMnN0eF9iY2xrX2V4dD4sIDwmaTJzdHhfbHJja19leHQ+LAorKwkJCQkgPCZpMnNy eF9iY2xrX2V4dD4sIDwmaTJzcnhfbHJja19leHQ+LAorKwkJCQkgPCZ0ZG1fZXh0PiwgPCZtY2xr X2V4dD47CisrCQkJY2xvY2stbmFtZXMgPSAib3NjIiwgImdtYWMxX3JtaWlfcmVmaW4iLAorKwkJ CQkgICAgICAiZ21hYzFfcmdtaWlfcnhpbiIsCisrCQkJCSAgICAgICJpMnN0eF9iY2xrX2V4dCIs ICJpMnN0eF9scmNrX2V4dCIsCisrCQkJCSAgICAgICJpMnNyeF9iY2xrX2V4dCIsICJpMnNyeF9s cmNrX2V4dCIsCisrCQkJCSAgICAgICJ0ZG1fZXh0IiwgIm1jbGtfZXh0IjsKKysJCQkjY2xvY2st Y2VsbHMgPSA8MT47CisrCQkJI3Jlc2V0LWNlbGxzID0gPDE+OworKwkJfTsKKysKKysJCXN5c2dw aW86IHBpbmN0cmxAMTMwNDAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEw LXN5cy1waW5jdHJsIjsKKysJCQlyZWcgPSA8MHgwIDB4MTMwNDAwMDAgMHgwIDB4MTAwMDA+Owor KwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSU9NVVhfQVBCPjsKKysJCQlyZXNl dHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX0lPTVVYX0FQQj47CisrCQkJaW50ZXJydXB0cyA9 IDw4Nj47CisrCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisrCQkJI2ludGVycnVwdC1jZWxscyA9 IDwyPjsKKysJCQlncGlvLWNvbnRyb2xsZXI7CisrCQkJI2dwaW8tY2VsbHMgPSA8Mj47CisrCQl9 OworKworKwkJYW9uY3JnOiBjbG9jay1jb250cm9sbGVyQDE3MDAwMDAwIHsKKysJCQljb21wYXRp YmxlID0gInN0YXJmaXZlLGpoNzExMC1hb25jcmciOworKwkJCXJlZyA9IDwweDAgMHgxNzAwMDAw MCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZvc2M+LCA8JmdtYWMwX3JtaWlfcmVmaW4+ LAorKwkJCQkgPCZnbWFjMF9yZ21paV9yeGluPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVND TEtfU1RHX0FYSUFIQj4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0FQQl9CVVM+LAor KwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMF9HVFhDTEs+LAorKwkJCQkgPCZydGNf b3NjPjsKKysJCQljbG9jay1uYW1lcyA9ICJvc2MiLCAiZ21hYzBfcm1paV9yZWZpbiIsCisrCQkJ CSAgICAgICJnbWFjMF9yZ21paV9yeGluIiwgInN0Z19heGlhaGIiLAorKwkJCQkgICAgICAiYXBi X2J1cyIsICJnbWFjMF9ndHhjbGsiLAorKwkJCQkgICAgICAicnRjX29zYyI7CisrCQkJI2Nsb2Nr LWNlbGxzID0gPDE+OworKwkJCSNyZXNldC1jZWxscyA9IDwxPjsKKysJCX07CisrCisrCQlhb25n cGlvOiBwaW5jdHJsQDE3MDIwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC1hb24tcGluY3RybCI7CisrCQkJcmVnID0gPDB4MCAweDE3MDIwMDAwIDB4MCAweDEwMDAwPjsK KysJCQlyZXNldHMgPSA8JmFvbmNyZyBKSDcxMTBfQU9OUlNUX0lPTVVYPjsKKysJCQlpbnRlcnJ1 cHRzID0gPDg1PjsKKysJCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKKysJCQkjaW50ZXJydXB0LWNl bGxzID0gPDI+OworKwkJCWdwaW8tY29udHJvbGxlcjsKKysJCQkjZ3Bpby1jZWxscyA9IDwyPjsK KysJCX07CisrCX07CisrfTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDIwLXJpc2N2LWR0cy1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEw LXBpbi1mdW5jdGlvbi0ucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyMC1yaXNj di1kdHMtc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1waW4tZnVuY3Rpb24tLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjI0YWI5MjM1ZGViOGMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyMC1yaXNjdi1kdHMt c3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1waW4tZnVuY3Rpb24tLnBhdGNoCkBAIC0wLDAg KzEsMzM1IEBACitGcm9tIDMyYWEzY2UwMmNkNWFlNzQ4ODBhYjU3ZTFiZmJhZDI1ZGFhMDdhZmQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaWFubG9uZyBIdWFuZyA8amlhbmxvbmcu aHVhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFNhdCwgMSBBcHIgMjAyMyAxOToxOTozMiAr MDgwMAorU3ViamVjdDogW1BBVENIIDIwLzg0XSByaXNjdjogZHRzOiBzdGFyZml2ZTogQWRkIFN0 YXJGaXZlIEpINzExMCBwaW4gZnVuY3Rpb24KKyBkZWZpbml0aW9ucworCitBZGQgcGluIGZ1bmN0 aW9uIGRlZmluaXRpb25zIGZvciBTdGFyRml2ZSBKSDcxMTAgU29DLgorCitUZXN0ZWQtYnk6IFRv bW1hc28gTWVyY2lhaSA8dG9tbS5tZXJjaWFpQGdtYWlsLmNvbT4KK0NvLWRldmVsb3BlZC1ieTog RW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK1NpZ25lZC1vZmYtYnk6IEVt aWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitTaWduZWQtb2ZmLWJ5OiBKaWFu bG9uZyBIdWFuZyA8amlhbmxvbmcuaHVhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYt Ynk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgYXJjaC9yaXNj di9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtcGluZnVuYy5oIHwgMzA4ICsrKysrKysrKysrKysr KysrKworIDEgZmlsZSBjaGFuZ2VkLCAzMDggaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1waW5mdW5jLmgKKworZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXBpbmZ1bmMuaCBi L2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXBpbmZ1bmMuaAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZmIwMTM5YjU2NzIzCistLS0gL2Rldi9u dWxsCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1waW5mdW5jLmgK K0BAIC0wLDAgKzEsMzA4IEBACisrLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAg T1IgTUlUICovCisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgRW1pbCBSZW5uZXIgQmVydGhp bmcgPGtlcm5lbEBlc21pbC5kaz4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgU3RhckZpdmUgVGVj aG5vbG9neSBDby4sIEx0ZC4KKysgKi8KKysKKysjaWZuZGVmIF9fSkg3MTEwX1BJTkZVTkNfSF9f CisrI2RlZmluZSBfX0pINzExMF9QSU5GVU5DX0hfXworKworKy8qCisrICogbXV4IGJpdHM6Cisr ICogIHwgMzEgLSAyNCB8IDIzIC0gMTYgfCAxNSAtIDEwIHwgIDkgLSA4ICAgfCAgNyAtIDAgIHwK KysgKiAgfCAgZGluICAgIHwgIGRvdXQgICB8ICBkb2VuICAgfCBmdW5jdGlvbiB8IGdwaW8gbnIg fAorKyAqCisrICogZG91dDogICAgIG91dHB1dCBzaWduYWwKKysgKiBkb2VuOiAgICAgb3V0cHV0 IGVuYWJsZSBzaWduYWwKKysgKiBkaW46ICAgICAgb3B0aW9uYWwgaW5wdXQgc2lnbmFsLCAweGZm ID0gbm9uZQorKyAqIGZ1bmN0aW9uOiBmdW5jdGlvbiBzZWxlY3RvcgorKyAqIGdwaW8gbnI6ICBn cGlvIG51bWJlciwgMCAtIDYzCisrICovCisrI2RlZmluZSBHUElPTVVYKG4sIGRvdXQsIGRvZW4s IGRpbikgKCBcCisrCQkoKChkaW4pICAmIDB4ZmYpIDw8IDI0KSB8IFwKKysJCSgoKGRvdXQpICYg MHhmZikgPDwgMTYpIHwgXAorKwkJKCgoZG9lbikgJiAweDNmKSA8PCAxMCkgfCBcCisrCQkoKG4p ICYgMHgzZikpCisrCisrI2RlZmluZSBQSU5NVVgobiwgZnVuYykgKCgxIDw8IDEwKSB8ICgoKGZ1 bmMpICYgMHgzKSA8PCA4KSB8ICgobikgJiAweGZmKSkKKysKKysvKiBzeXNfaW9tdXggZG91dCAq LworKyNkZWZpbmUgR1BPVVRfTE9XCQkJCTAKKysjZGVmaW5lIEdQT1VUX0hJR0gJCQkJMQorKyNk ZWZpbmUgR1BPVVRfU1lTX1dBVkU1MTFfVUFSVF9UWAkJMgorKyNkZWZpbmUgR1BPVVRfU1lTX0NB TjBfU1RCWQkJCTMKKysjZGVmaW5lIEdQT1VUX1NZU19DQU4wX1RTVF9ORVhUX0JJVAkJNAorKyNk ZWZpbmUgR1BPVVRfU1lTX0NBTjBfVFNUX1NBTVBMRV9QT0lOVAkJNQorKyNkZWZpbmUgR1BPVVRf U1lTX0NBTjBfVFhECQkJNgorKyNkZWZpbmUgR1BPVVRfU1lTX1VTQl9EUklWRV9WQlVTCQk3Cisr I2RlZmluZSBHUE9VVF9TWVNfUVNQSV9DUzEJCQk4CisrI2RlZmluZSBHUE9VVF9TWVNfU1BESUYJ CQkJOQorKyNkZWZpbmUgR1BPVVRfU1lTX0hETUlfQ0VDX1NEQQkJCTEwCisrI2RlZmluZSBHUE9V VF9TWVNfSERNSV9ERENfU0NMCQkJMTEKKysjZGVmaW5lIEdQT1VUX1NZU19IRE1JX0REQ19TREEJ CQkxMgorKyNkZWZpbmUgR1BPVVRfU1lTX1dBVENIRE9HCQkJMTMKKysjZGVmaW5lIEdQT1VUX1NZ U19JMkMwX0NMSwkJCTE0CisrI2RlZmluZSBHUE9VVF9TWVNfSTJDMF9EQVRBCQkJMTUKKysjZGVm aW5lIEdQT1VUX1NZU19TRElPMF9CQUNLX0VORF9QT1dFUgkJMTYKKysjZGVmaW5lIEdQT1VUX1NZ U19TRElPMF9DQVJEX1BPV0VSX0VOCQkxNworKyNkZWZpbmUgR1BPVVRfU1lTX1NESU8wX0NDTURf T0RfUFVMTFVQX0VOCTE4CisrI2RlZmluZSBHUE9VVF9TWVNfU0RJTzBfUlNUCQkJMTkKKysjZGVm aW5lIEdQT1VUX1NZU19VQVJUMF9UWAkJCTIwCisrI2RlZmluZSBHUE9VVF9TWVNfSElGSTRfSlRB R19URE8JCTIxCisrI2RlZmluZSBHUE9VVF9TWVNfSlRBR19URE8JCQkyMgorKyNkZWZpbmUgR1BP VVRfU1lTX1BETV9NQ0xLCQkJMjMKKysjZGVmaW5lIEdQT1VUX1NZU19QV01fQ0hBTk5FTDAJCQky NAorKyNkZWZpbmUgR1BPVVRfU1lTX1BXTV9DSEFOTkVMMQkJCTI1CisrI2RlZmluZSBHUE9VVF9T WVNfUFdNX0NIQU5ORUwyCQkJMjYKKysjZGVmaW5lIEdQT1VUX1NZU19QV01fQ0hBTk5FTDMJCQky NworKyNkZWZpbmUgR1BPVVRfU1lTX1BXTURBQ19MRUZUCQkJMjgKKysjZGVmaW5lIEdQT1VUX1NZ U19QV01EQUNfUklHSFQJCQkyOQorKyNkZWZpbmUgR1BPVVRfU1lTX1NQSTBfQ0xLCQkJMzAKKysj ZGVmaW5lIEdQT1VUX1NZU19TUEkwX0ZTUwkJCTMxCisrI2RlZmluZSBHUE9VVF9TWVNfU1BJMF9U WEQJCQkzMgorKyNkZWZpbmUgR1BPVVRfU1lTX0dNQUNfUEhZQ0xLCQkJMzMKKysjZGVmaW5lIEdQ T1VUX1NZU19JMlNSWF9CQ0xLCQkJMzQKKysjZGVmaW5lIEdQT1VUX1NZU19JMlNSWF9MUkNLCQkJ MzUKKysjZGVmaW5lIEdQT1VUX1NZU19JMlNUWDBfQkNMSwkJCTM2CisrI2RlZmluZSBHUE9VVF9T WVNfSTJTVFgwX0xSQ0sJCQkzNworKyNkZWZpbmUgR1BPVVRfU1lTX01DTEsJCQkJMzgKKysjZGVm aW5lIEdQT1VUX1NZU19URE1fQ0xLCQkJMzkKKysjZGVmaW5lIEdQT1VUX1NZU19URE1fU1lOQwkJ CTQwCisrI2RlZmluZSBHUE9VVF9TWVNfVERNX1RYRAkJCTQxCisrI2RlZmluZSBHUE9VVF9TWVNf VFJBQ0VfREFUQTAJCQk0MgorKyNkZWZpbmUgR1BPVVRfU1lTX1RSQUNFX0RBVEExCQkJNDMKKysj ZGVmaW5lIEdQT1VUX1NZU19UUkFDRV9EQVRBMgkJCTQ0CisrI2RlZmluZSBHUE9VVF9TWVNfVFJB Q0VfREFUQTMJCQk0NQorKyNkZWZpbmUgR1BPVVRfU1lTX1RSQUNFX1JFRgkJCTQ2CisrI2RlZmlu ZSBHUE9VVF9TWVNfQ0FOMV9TVEJZCQkJNDcKKysjZGVmaW5lIEdQT1VUX1NZU19DQU4xX1RTVF9O RVhUX0JJVAkJNDgKKysjZGVmaW5lIEdQT1VUX1NZU19DQU4xX1RTVF9TQU1QTEVfUE9JTlQJCTQ5 CisrI2RlZmluZSBHUE9VVF9TWVNfQ0FOMV9UWEQJCQk1MAorKyNkZWZpbmUgR1BPVVRfU1lTX0ky QzFfQ0xLCQkJNTEKKysjZGVmaW5lIEdQT1VUX1NZU19JMkMxX0RBVEEJCQk1MgorKyNkZWZpbmUg R1BPVVRfU1lTX1NESU8xX0JBQ0tfRU5EX1BPV0VSCQk1MworKyNkZWZpbmUgR1BPVVRfU1lTX1NE SU8xX0NBUkRfUE9XRVJfRU4JCTU0CisrI2RlZmluZSBHUE9VVF9TWVNfU0RJTzFfQ0xLCQkJNTUK KysjZGVmaW5lIEdQT1VUX1NZU19TRElPMV9DTURfT0RfUFVMTFVQX0VOCTU2CisrI2RlZmluZSBH UE9VVF9TWVNfU0RJTzFfQ01ECQkJNTcKKysjZGVmaW5lIEdQT1VUX1NZU19TRElPMV9EQVRBMAkJ CTU4CisrI2RlZmluZSBHUE9VVF9TWVNfU0RJTzFfREFUQTEJCQk1OQorKyNkZWZpbmUgR1BPVVRf U1lTX1NESU8xX0RBVEEyCQkJNjAKKysjZGVmaW5lIEdQT1VUX1NZU19TRElPMV9EQVRBMwkJCTYx CisrI2RlZmluZSBHUE9VVF9TWVNfU0RJTzFfREFUQTQJCQk2MworKyNkZWZpbmUgR1BPVVRfU1lT X1NESU8xX0RBVEE1CQkJNjMKKysjZGVmaW5lIEdQT1VUX1NZU19TRElPMV9EQVRBNgkJCTY0Cisr I2RlZmluZSBHUE9VVF9TWVNfU0RJTzFfREFUQTcJCQk2NQorKyNkZWZpbmUgR1BPVVRfU1lTX1NE SU8xX1JTVAkJCTY2CisrI2RlZmluZSBHUE9VVF9TWVNfVUFSVDFfUlRTCQkJNjcKKysjZGVmaW5l IEdQT1VUX1NZU19VQVJUMV9UWAkJCTY4CisrI2RlZmluZSBHUE9VVF9TWVNfSTJTVFgxX1NETzAJ CQk2OQorKyNkZWZpbmUgR1BPVVRfU1lTX0kyU1RYMV9TRE8xCQkJNzAKKysjZGVmaW5lIEdQT1VU X1NZU19JMlNUWDFfU0RPMgkJCTcxCisrI2RlZmluZSBHUE9VVF9TWVNfSTJTVFgxX1NETzMJCQk3 MgorKyNkZWZpbmUgR1BPVVRfU1lTX1NQSTFfQ0xLCQkJNzMKKysjZGVmaW5lIEdQT1VUX1NZU19T UEkxX0ZTUwkJCTc0CisrI2RlZmluZSBHUE9VVF9TWVNfU1BJMV9UWEQJCQk3NQorKyNkZWZpbmUg R1BPVVRfU1lTX0kyQzJfQ0xLCQkJNzYKKysjZGVmaW5lIEdQT1VUX1NZU19JMkMyX0RBVEEJCQk3 NworKyNkZWZpbmUgR1BPVVRfU1lTX1VBUlQyX1JUUwkJCTc4CisrI2RlZmluZSBHUE9VVF9TWVNf VUFSVDJfVFgJCQk3OQorKyNkZWZpbmUgR1BPVVRfU1lTX1NQSTJfQ0xLCQkJODAKKysjZGVmaW5l IEdQT1VUX1NZU19TUEkyX0ZTUwkJCTgxCisrI2RlZmluZSBHUE9VVF9TWVNfU1BJMl9UWEQJCQk4 MgorKyNkZWZpbmUgR1BPVVRfU1lTX0kyQzNfQ0xLCQkJODMKKysjZGVmaW5lIEdQT1VUX1NZU19J MkMzX0RBVEEJCQk4NAorKyNkZWZpbmUgR1BPVVRfU1lTX1VBUlQzX1RYCQkJODUKKysjZGVmaW5l IEdQT1VUX1NZU19TUEkzX0NMSwkJCTg2CisrI2RlZmluZSBHUE9VVF9TWVNfU1BJM19GU1MJCQk4 NworKyNkZWZpbmUgR1BPVVRfU1lTX1NQSTNfVFhECQkJODgKKysjZGVmaW5lIEdQT1VUX1NZU19J MkM0X0NMSwkJCTg5CisrI2RlZmluZSBHUE9VVF9TWVNfSTJDNF9EQVRBCQkJOTAKKysjZGVmaW5l IEdQT1VUX1NZU19VQVJUNF9SVFMJCQk5MQorKyNkZWZpbmUgR1BPVVRfU1lTX1VBUlQ0X1RYCQkJ OTIKKysjZGVmaW5lIEdQT1VUX1NZU19TUEk0X0NMSwkJCTkzCisrI2RlZmluZSBHUE9VVF9TWVNf U1BJNF9GU1MJCQk5NAorKyNkZWZpbmUgR1BPVVRfU1lTX1NQSTRfVFhECQkJOTUKKysjZGVmaW5l IEdQT1VUX1NZU19JMkM1X0NMSwkJCTk2CisrI2RlZmluZSBHUE9VVF9TWVNfSTJDNV9EQVRBCQkJ OTcKKysjZGVmaW5lIEdQT1VUX1NZU19VQVJUNV9SVFMJCQk5OAorKyNkZWZpbmUgR1BPVVRfU1lT X1VBUlQ1X1RYCQkJOTkKKysjZGVmaW5lIEdQT1VUX1NZU19TUEk1X0NMSwkJCTEwMAorKyNkZWZp bmUgR1BPVVRfU1lTX1NQSTVfRlNTCQkJMTAxCisrI2RlZmluZSBHUE9VVF9TWVNfU1BJNV9UWEQJ CQkxMDIKKysjZGVmaW5lIEdQT1VUX1NZU19JMkM2X0NMSwkJCTEwMworKyNkZWZpbmUgR1BPVVRf U1lTX0kyQzZfREFUQQkJCTEwNAorKyNkZWZpbmUgR1BPVVRfU1lTX1NQSTZfQ0xLCQkJMTA1Cisr I2RlZmluZSBHUE9VVF9TWVNfU1BJNl9GU1MJCQkxMDYKKysjZGVmaW5lIEdQT1VUX1NZU19TUEk2 X1RYRAkJCTEwNworKworKy8qIGFvbl9pb211eCBkb3V0ICovCisrI2RlZmluZSBHUE9VVF9BT05f Q0xLXzMyS19PVVQJCQkyCisrI2RlZmluZSBHUE9VVF9BT05fUFRDMF9QV000CQkJMworKyNkZWZp bmUgR1BPVVRfQU9OX1BUQzBfUFdNNQkJCTQKKysjZGVmaW5lIEdQT1VUX0FPTl9QVEMwX1BXTTYJ CQk1CisrI2RlZmluZSBHUE9VVF9BT05fUFRDMF9QV003CQkJNgorKyNkZWZpbmUgR1BPVVRfQU9O X0NMS19HQ0xLMAkJCTcKKysjZGVmaW5lIEdQT1VUX0FPTl9DTEtfR0NMSzEJCQk4CisrI2RlZmlu ZSBHUE9VVF9BT05fQ0xLX0dDTEsyCQkJOQorKworKy8qIHN5c19pb211eCBkb2VuICovCisrI2Rl ZmluZSBHUE9FTl9FTkFCTEUJCQkJMAorKyNkZWZpbmUgR1BPRU5fRElTQUJMRQkJCQkxCisrI2Rl ZmluZSBHUE9FTl9TWVNfSERNSV9DRUNfU0RBCQkJMgorKyNkZWZpbmUgR1BPRU5fU1lTX0hETUlf RERDX1NDTAkJCTMKKysjZGVmaW5lIEdQT0VOX1NZU19IRE1JX0REQ19TREEJCQk0CisrI2RlZmlu ZSBHUE9FTl9TWVNfSTJDMF9DTEsJCQk1CisrI2RlZmluZSBHUE9FTl9TWVNfSTJDMF9EQVRBCQkJ NgorKyNkZWZpbmUgR1BPRU5fU1lTX0hJRkk0X0pUQUdfVERPCQk3CisrI2RlZmluZSBHUE9FTl9T WVNfSlRBR19URE8JCQk4CisrI2RlZmluZSBHUE9FTl9TWVNfUFdNMF9DSEFOTkVMMAkJCTkKKysj ZGVmaW5lIEdQT0VOX1NZU19QV00wX0NIQU5ORUwxCQkJMTAKKysjZGVmaW5lIEdQT0VOX1NZU19Q V00wX0NIQU5ORUwyCQkJMTEKKysjZGVmaW5lIEdQT0VOX1NZU19QV00wX0NIQU5ORUwzCQkJMTIK KysjZGVmaW5lIEdQT0VOX1NZU19TUEkwX05TU1BDVEwJCQkxMworKyNkZWZpbmUgR1BPRU5fU1lT X1NQSTBfTlNTUAkJCTE0CisrI2RlZmluZSBHUE9FTl9TWVNfVERNX1NZTkMJCQkxNQorKyNkZWZp bmUgR1BPRU5fU1lTX1RETV9UWEQJCQkxNgorKyNkZWZpbmUgR1BPRU5fU1lTX0kyQzFfQ0xLCQkJ MTcKKysjZGVmaW5lIEdQT0VOX1NZU19JMkMxX0RBVEEJCQkxOAorKyNkZWZpbmUgR1BPRU5fU1lT X1NESU8xX0NNRAkJCTE5CisrI2RlZmluZSBHUE9FTl9TWVNfU0RJTzFfREFUQTAJCQkyMAorKyNk ZWZpbmUgR1BPRU5fU1lTX1NESU8xX0RBVEExCQkJMjEKKysjZGVmaW5lIEdQT0VOX1NZU19TRElP MV9EQVRBMgkJCTIyCisrI2RlZmluZSBHUE9FTl9TWVNfU0RJTzFfREFUQTMJCQkyMworKyNkZWZp bmUgR1BPRU5fU1lTX1NESU8xX0RBVEE0CQkJMjQKKysjZGVmaW5lIEdQT0VOX1NZU19TRElPMV9E QVRBNQkJCTI1CisrI2RlZmluZSBHUE9FTl9TWVNfU0RJTzFfREFUQTYJCQkyNgorKyNkZWZpbmUg R1BPRU5fU1lTX1NESU8xX0RBVEE3CQkJMjcKKysjZGVmaW5lIEdQT0VOX1NZU19TUEkxX05TU1BD VEwJCQkyOAorKyNkZWZpbmUgR1BPRU5fU1lTX1NQSTFfTlNTUAkJCTI5CisrI2RlZmluZSBHUE9F Tl9TWVNfSTJDMl9DTEsJCQkzMAorKyNkZWZpbmUgR1BPRU5fU1lTX0kyQzJfREFUQQkJCTMxCisr I2RlZmluZSBHUE9FTl9TWVNfU1BJMl9OU1NQQ1RMCQkJMzIKKysjZGVmaW5lIEdQT0VOX1NZU19T UEkyX05TU1AJCQkzMworKyNkZWZpbmUgR1BPRU5fU1lTX0kyQzNfQ0xLCQkJMzQKKysjZGVmaW5l IEdQT0VOX1NZU19JMkMzX0RBVEEJCQkzNQorKyNkZWZpbmUgR1BPRU5fU1lTX1NQSTNfTlNTUENU TAkJCTM2CisrI2RlZmluZSBHUE9FTl9TWVNfU1BJM19OU1NQCQkJMzcKKysjZGVmaW5lIEdQT0VO X1NZU19JMkM0X0NMSwkJCTM4CisrI2RlZmluZSBHUE9FTl9TWVNfSTJDNF9EQVRBCQkJMzkKKysj ZGVmaW5lIEdQT0VOX1NZU19TUEk0X05TU1BDVEwJCQk0MAorKyNkZWZpbmUgR1BPRU5fU1lTX1NQ STRfTlNTUAkJCTQxCisrI2RlZmluZSBHUE9FTl9TWVNfSTJDNV9DTEsJCQk0MgorKyNkZWZpbmUg R1BPRU5fU1lTX0kyQzVfREFUQQkJCTQzCisrI2RlZmluZSBHUE9FTl9TWVNfU1BJNV9OU1NQQ1RM CQkJNDQKKysjZGVmaW5lIEdQT0VOX1NZU19TUEk1X05TU1AJCQk0NQorKyNkZWZpbmUgR1BPRU5f U1lTX0kyQzZfQ0xLCQkJNDYKKysjZGVmaW5lIEdQT0VOX1NZU19JMkM2X0RBVEEJCQk0NworKyNk ZWZpbmUgR1BPRU5fU1lTX1NQSTZfTlNTUENUTAkJCTQ4CisrI2RlZmluZSBHUE9FTl9TWVNfU1BJ Nl9OU1NQCQkJNDkKKysKKysvKiBhb25faW9tdXggZG9lbiAqLworKyNkZWZpbmUgR1BPRU5fQU9O X1BUQzBfT0VfTl80CQkJMgorKyNkZWZpbmUgR1BPRU5fQU9OX1BUQzBfT0VfTl81CQkJMworKyNk ZWZpbmUgR1BPRU5fQU9OX1BUQzBfT0VfTl82CQkJNAorKyNkZWZpbmUgR1BPRU5fQU9OX1BUQzBf T0VfTl83CQkJNQorKworKy8qIHN5c19pb211eCBnaW4gKi8KKysjZGVmaW5lIEdQSV9OT05FCQkJ CTI1NQorKworKyNkZWZpbmUgR1BJX1NZU19XQVZFNTExX1VBUlRfUlgJCQkwCisrI2RlZmluZSBH UElfU1lTX0NBTjBfUlhECQkJMQorKyNkZWZpbmUgR1BJX1NZU19VU0JfT1ZFUkNVUlJFTlQJCQky CisrI2RlZmluZSBHUElfU1lTX1NQRElGCQkJCTMKKysjZGVmaW5lIEdQSV9TWVNfSlRBR19SU1QJ CQk0CisrI2RlZmluZSBHUElfU1lTX0hETUlfQ0VDX1NEQQkJCTUKKysjZGVmaW5lIEdQSV9TWVNf SERNSV9ERENfU0NMCQkJNgorKyNkZWZpbmUgR1BJX1NZU19IRE1JX0REQ19TREEJCQk3CisrI2Rl ZmluZSBHUElfU1lTX0hETUlfSFBECQkJOAorKyNkZWZpbmUgR1BJX1NZU19JMkMwX0NMSwkJCTkK KysjZGVmaW5lIEdQSV9TWVNfSTJDMF9EQVRBCQkJMTAKKysjZGVmaW5lIEdQSV9TWVNfU0RJTzBf Q0QJCQkxMQorKyNkZWZpbmUgR1BJX1NZU19TRElPMF9JTlQJCQkxMgorKyNkZWZpbmUgR1BJX1NZ U19TRElPMF9XUAkJCTEzCisrI2RlZmluZSBHUElfU1lTX1VBUlQwX1JYCQkJMTQKKysjZGVmaW5l IEdQSV9TWVNfSElGSTRfSlRBR19UQ0sJCQkxNQorKyNkZWZpbmUgR1BJX1NZU19ISUZJNF9KVEFH X1RESQkJCTE2CisrI2RlZmluZSBHUElfU1lTX0hJRkk0X0pUQUdfVE1TCQkJMTcKKysjZGVmaW5l IEdQSV9TWVNfSElGSTRfSlRBR19SU1QJCQkxOAorKyNkZWZpbmUgR1BJX1NZU19KVEFHX1RESQkJ CTE5CisrI2RlZmluZSBHUElfU1lTX0pUQUdfVE1TCQkJMjAKKysjZGVmaW5lIEdQSV9TWVNfUERN X0RNSUMwCQkJMjEKKysjZGVmaW5lIEdQSV9TWVNfUERNX0RNSUMxCQkJMjIKKysjZGVmaW5lIEdQ SV9TWVNfSTJTUlhfU0RJTjAJCQkyMworKyNkZWZpbmUgR1BJX1NZU19JMlNSWF9TRElOMQkJCTI0 CisrI2RlZmluZSBHUElfU1lTX0kyU1JYX1NESU4yCQkJMjUKKysjZGVmaW5lIEdQSV9TWVNfU1BJ MF9DTEsJCQkyNgorKyNkZWZpbmUgR1BJX1NZU19TUEkwX0ZTUwkJCTI3CisrI2RlZmluZSBHUElf U1lTX1NQSTBfUlhECQkJMjgKKysjZGVmaW5lIEdQSV9TWVNfSlRBR19UQ0sJCQkyOQorKyNkZWZp bmUgR1BJX1NZU19NQ0xLX0VYVAkJCTMwCisrI2RlZmluZSBHUElfU1lTX0kyU1JYX0JDTEsJCQkz MQorKyNkZWZpbmUgR1BJX1NZU19JMlNSWF9MUkNLCQkJMzIKKysjZGVmaW5lIEdQSV9TWVNfSTJT VFgwX0JDTEsJCQkzMworKyNkZWZpbmUgR1BJX1NZU19JMlNUWDBfTFJDSwkJCTM0CisrI2RlZmlu ZSBHUElfU1lTX1RETV9DTEsJCQkJMzUKKysjZGVmaW5lIEdQSV9TWVNfVERNX1JYRAkJCQkzNgor KyNkZWZpbmUgR1BJX1NZU19URE1fU1lOQwkJCTM3CisrI2RlZmluZSBHUElfU1lTX0NBTjFfUlhE CQkJMzgKKysjZGVmaW5lIEdQSV9TWVNfSTJDMV9DTEsJCQkzOQorKyNkZWZpbmUgR1BJX1NZU19J MkMxX0RBVEEJCQk0MAorKyNkZWZpbmUgR1BJX1NZU19TRElPMV9DRAkJCTQxCisrI2RlZmluZSBH UElfU1lTX1NESU8xX0lOVAkJCTQyCisrI2RlZmluZSBHUElfU1lTX1NESU8xX1dQCQkJNDMKKysj ZGVmaW5lIEdQSV9TWVNfU0RJTzFfQ01ECQkJNDQKKysjZGVmaW5lIEdQSV9TWVNfU0RJTzFfREFU QTAJCQk0NQorKyNkZWZpbmUgR1BJX1NZU19TRElPMV9EQVRBMQkJCTQ2CisrI2RlZmluZSBHUElf U1lTX1NESU8xX0RBVEEyCQkJNDcKKysjZGVmaW5lIEdQSV9TWVNfU0RJTzFfREFUQTMJCQk0OAor KyNkZWZpbmUgR1BJX1NZU19TRElPMV9EQVRBNAkJCTQ5CisrI2RlZmluZSBHUElfU1lTX1NESU8x X0RBVEE1CQkJNTAKKysjZGVmaW5lIEdQSV9TWVNfU0RJTzFfREFUQTYJCQk1MQorKyNkZWZpbmUg R1BJX1NZU19TRElPMV9EQVRBNwkJCTUyCisrI2RlZmluZSBHUElfU1lTX1NESU8xX1NUUkIJCQk1 MworKyNkZWZpbmUgR1BJX1NZU19VQVJUMV9DVFMJCQk1NAorKyNkZWZpbmUgR1BJX1NZU19VQVJU MV9SWAkJCTU1CisrI2RlZmluZSBHUElfU1lTX1NQSTFfQ0xLCQkJNTYKKysjZGVmaW5lIEdQSV9T WVNfU1BJMV9GU1MJCQk1NworKyNkZWZpbmUgR1BJX1NZU19TUEkxX1JYRAkJCTU4CisrI2RlZmlu ZSBHUElfU1lTX0kyQzJfQ0xLCQkJNTkKKysjZGVmaW5lIEdQSV9TWVNfSTJDMl9EQVRBCQkJNjAK KysjZGVmaW5lIEdQSV9TWVNfVUFSVDJfQ1RTCQkJNjEKKysjZGVmaW5lIEdQSV9TWVNfVUFSVDJf UlgJCQk2MgorKyNkZWZpbmUgR1BJX1NZU19TUEkyX0NMSwkJCTYzCisrI2RlZmluZSBHUElfU1lT X1NQSTJfRlNTCQkJNjQKKysjZGVmaW5lIEdQSV9TWVNfU1BJMl9SWEQJCQk2NQorKyNkZWZpbmUg R1BJX1NZU19JMkMzX0NMSwkJCTY2CisrI2RlZmluZSBHUElfU1lTX0kyQzNfREFUQQkJCTY3Cisr I2RlZmluZSBHUElfU1lTX1VBUlQzX1JYCQkJNjgKKysjZGVmaW5lIEdQSV9TWVNfU1BJM19DTEsJ CQk2OQorKyNkZWZpbmUgR1BJX1NZU19TUEkzX0ZTUwkJCTcwCisrI2RlZmluZSBHUElfU1lTX1NQ STNfUlhECQkJNzEKKysjZGVmaW5lIEdQSV9TWVNfSTJDNF9DTEsJCQk3MgorKyNkZWZpbmUgR1BJ X1NZU19JMkM0X0RBVEEJCQk3MworKyNkZWZpbmUgR1BJX1NZU19VQVJUNF9DVFMJCQk3NAorKyNk ZWZpbmUgR1BJX1NZU19VQVJUNF9SWAkJCTc1CisrI2RlZmluZSBHUElfU1lTX1NQSTRfQ0xLCQkJ NzYKKysjZGVmaW5lIEdQSV9TWVNfU1BJNF9GU1MJCQk3NworKyNkZWZpbmUgR1BJX1NZU19TUEk0 X1JYRAkJCTc4CisrI2RlZmluZSBHUElfU1lTX0kyQzVfQ0xLCQkJNzkKKysjZGVmaW5lIEdQSV9T WVNfSTJDNV9EQVRBCQkJODAKKysjZGVmaW5lIEdQSV9TWVNfVUFSVDVfQ1RTCQkJODEKKysjZGVm aW5lIEdQSV9TWVNfVUFSVDVfUlgJCQk4MgorKyNkZWZpbmUgR1BJX1NZU19TUEk1X0NMSwkJCTgz CisrI2RlZmluZSBHUElfU1lTX1NQSTVfRlNTCQkJODQKKysjZGVmaW5lIEdQSV9TWVNfU1BJNV9S WEQJCQk4NQorKyNkZWZpbmUgR1BJX1NZU19JMkM2X0NMSwkJCTg2CisrI2RlZmluZSBHUElfU1lT X0kyQzZfREFUQQkJCTg3CisrI2RlZmluZSBHUElfU1lTX1NQSTZfQ0xLCQkJODgKKysjZGVmaW5l IEdQSV9TWVNfU1BJNl9GU1MJCQk4OQorKyNkZWZpbmUgR1BJX1NZU19TUEk2X1JYRAkJCTkwCisr CisrLyogYW9uX2lvbXV4IGdpbiAqLworKyNkZWZpbmUgR1BJX0FPTl9QTVVfR1BJT19XQUtFVVBf MAkJMAorKyNkZWZpbmUgR1BJX0FPTl9QTVVfR1BJT19XQUtFVVBfMQkJMQorKyNkZWZpbmUgR1BJ X0FPTl9QTVVfR1BJT19XQUtFVVBfMgkJMgorKyNkZWZpbmUgR1BJX0FPTl9QTVVfR1BJT19XQUtF VVBfMwkJMworKworKyNlbmRpZgorLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwMjEtcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcx MTAtVmlzaW9uRml2ZS0yLS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDIxLXJp c2N2LWR0cy1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVZpc2lvbkZpdmUtMi0ucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNDAwOTEwN2QxYjRjMAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDIxLXJpc2N2LWR0 cy1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVZpc2lvbkZpdmUtMi0ucGF0Y2gKQEAgLTAs MCArMSwzMDIgQEAKK0Zyb20gZDg2ZjRjZWI4NzZhODJkMTgxYTNjNGE0OGIxOTg5OWI2MTBjNmY0 YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxr ZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBTYXQsIDEgQXByIDIwMjMgMTk6MTk6MzMgKzA4MDAKK1N1 YmplY3Q6IFtQQVRDSCAyMS84NF0gcmlzY3Y6IGR0czogc3RhcmZpdmU6IEFkZCBTdGFyRml2ZSBK SDcxMTAgVmlzaW9uRml2ZSAyCisgYm9hcmQgZGV2aWNlIHRyZWUKKworQWRkIGEgbWluaW1hbCBk ZXZpY2UgdHJlZSBmb3IgU3RhckZpdmUgSkg3MTEwIFZpc2lvbkZpdmUgMiBib2FyZAord2hpY2gg aGFzIHZlcnNpb24gQSBhbmQgdmVyc2lvbiBCLiBTdXBwb3J0IGJvb3RpbmcgYW5kIGJhc2ljCitj bG9jay9yZXNldC9waW5jdHJsL3VhcnQgZHJpdmVycy4KKworVGVzdGVkLWJ5OiBUb21tYXNvIE1l cmNpYWkgPHRvbW0ubWVyY2lhaUBnbWFpbC5jb20+CitSZXZpZXdlZC1ieTogQ29ub3IgRG9vbGV5 IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KK0Fja2VkLWJ5OiBDb25vciBEb29sZXkgPGNv bm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgorU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVy dGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KK0NvLWRldmVsb3BlZC1ieTogSmlhbmxvbmcgSHVhbmcg PGppYW5sb25nLmh1YW5nQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBKaWFubG9u ZyBIdWFuZyA8amlhbmxvbmcuaHVhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0NvLWRldmVsb3BlZC1i eTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBI YWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGFyY2gvcmlzY3YvYm9v dC9kdHMvc3RhcmZpdmUvTWFrZWZpbGUgICAgICAgICB8ICAgNiArLQorIC4uLi9qaDcxMTAtc3Rh cmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJhLmR0cyAgICB8ICAxMyArKworIC4uLi9qaDcxMTAtc3Rh cmZpdmUtdmlzaW9uZml2ZS0yLXYxLjNiLmR0cyAgICB8ICAxMyArKworIC4uLi9qaDcxMTAtc3Rh cmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kgICAgICAgICB8IDIxNSArKysrKysrKysrKysrKysrKysK KyA0IGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJm aXZlLXZpc2lvbmZpdmUtMi12MS4yYS5kdHMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9yaXNj di9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjNiLmR0 cworIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9i b290L2R0cy9zdGFyZml2ZS9NYWtlZmlsZSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUv TWFrZWZpbGUKK2luZGV4IDdiMDBhNDg1ODBjYS4uMTcwOTU2ODQ2ZDQ5IDEwMDY0NAorLS0tIGEv YXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9NYWtlZmlsZQorKysrIGIvYXJjaC9yaXNjdi9i b290L2R0cy9zdGFyZml2ZS9NYWtlZmlsZQorQEAgLTEsMiArMSw2IEBACisgIyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMAorLWR0Yi0kKENPTkZJR19BUkNIX1NUQVJGSVZFKSArPSBq aDcxMDAtYmVhZ2xldi1zdGFybGlnaHQuZHRiIGpoNzEwMC1zdGFyZml2ZS12aXNpb25maXZlLXYx LmR0YgorK2R0Yi0kKENPTkZJR19BUkNIX1NUQVJGSVZFKSArPSBqaDcxMDAtYmVhZ2xldi1zdGFy bGlnaHQuZHRiCisrZHRiLSQoQ09ORklHX0FSQ0hfU1RBUkZJVkUpICs9IGpoNzEwMC1zdGFyZml2 ZS12aXNpb25maXZlLXYxLmR0YgorKworK2R0Yi0kKENPTkZJR19BUkNIX1NUQVJGSVZFKSArPSBq aDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJhLmR0YgorK2R0Yi0kKENPTkZJR19BUkNI X1NUQVJGSVZFKSArPSBqaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjNiLmR0YgorZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZp c2lvbmZpdmUtMi12MS4yYS5kdHMgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuMmEuZHRzCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAwMDAwLi40YWYzMzAwZjNjZjMKKy0tLSAvZGV2L251bGwKKysrKyBiL2Fy Y2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12 MS4yYS5kdHMKK0BAIC0wLDAgKzEsMTMgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCBPUiBNSVQKKysvKgorKyAqIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNo bm9sb2d5IENvLiwgTHRkLgorKyAqIENvcHlyaWdodCAoQykgMjAyMiBFbWlsIFJlbm5lciBCZXJ0 aGluZyA8a2VybmVsQGVzbWlsLmRrPgorKyAqLworKworKy9kdHMtdjEvOworKyNpbmNsdWRlICJq aDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kiCisrCisrLyB7CisrCW1vZGVsID0gIlN0 YXJGaXZlIFZpc2lvbkZpdmUgMiB2MS4yQSI7CisrCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsdmlz aW9uZml2ZS0yLXYxLjJhIiwgInN0YXJmaXZlLGpoNzExMCI7CisrfTsKK2RpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIt djEuM2IuZHRzIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUt dmlzaW9uZml2ZS0yLXYxLjNiLmR0cworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAwMC4uOTIzMGNjM2Q4OTQ2CistLS0gL2Rldi9udWxsCisrKysgYi9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuM2IuZHRzCitA QCAtMCwwICsxLDEzIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1Ig TUlUCisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgU3RhckZpdmUgVGVjaG5vbG9neSBDby4s IEx0ZC4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMjIgRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5l bEBlc21pbC5kaz4KKysgKi8KKysKKysvZHRzLXYxLzsKKysjaW5jbHVkZSAiamg3MTEwLXN0YXJm aXZlLXZpc2lvbmZpdmUtMi5kdHNpIgorKworKy8geworKwltb2RlbCA9ICJTdGFyRml2ZSBWaXNp b25GaXZlIDIgdjEuM0IiOworKwljb21wYXRpYmxlID0gInN0YXJmaXZlLHZpc2lvbmZpdmUtMi12 MS4zYiIsICJzdGFyZml2ZSxqaDcxMTAiOworK307CitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9i b290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kgYi9hcmNo L3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRz aQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uMmE2ZDgxNjA5Mjg0 CistLS0gL2Rldi9udWxsCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorQEAgLTAsMCArMSwyMTUgQEAKKysvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQKKysvKgorKyAqIENvcHlyaWdodCAo QykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqIENvcHlyaWdodCAoQykg MjAyMiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorKyAqLworKworKy9k dHMtdjEvOworKyNpbmNsdWRlICJqaDcxMTAuZHRzaSIKKysjaW5jbHVkZSAiamg3MTEwLXBpbmZ1 bmMuaCIKKysjaW5jbHVkZSA8ZHQtYmluZGluZ3MvZ3Bpby9ncGlvLmg+CisrCisrLyB7CisrCWFs aWFzZXMgeworKwkJaTJjMCA9ICZpMmMwOworKwkJaTJjMiA9ICZpMmMyOworKwkJaTJjNSA9ICZp MmM1OworKwkJaTJjNiA9ICZpMmM2OworKwkJc2VyaWFsMCA9ICZ1YXJ0MDsKKysJfTsKKysKKysJ Y2hvc2VuIHsKKysJCXN0ZG91dC1wYXRoID0gInNlcmlhbDA6MTE1MjAwbjgiOworKwl9OworKwor KwljcHVzIHsKKysJCXRpbWViYXNlLWZyZXF1ZW5jeSA9IDw0MDAwMDAwPjsKKysJfTsKKysKKysJ bWVtb3J5QDQwMDAwMDAwIHsKKysJCWRldmljZV90eXBlID0gIm1lbW9yeSI7CisrCQlyZWcgPSA8 MHgwIDB4NDAwMDAwMDAgMHgxIDB4MD47CisrCX07CisrCisrCWdwaW8tcmVzdGFydCB7CisrCQlj b21wYXRpYmxlID0gImdwaW8tcmVzdGFydCI7CisrCQlncGlvcyA9IDwmc3lzZ3BpbyAzNSBHUElP X0FDVElWRV9ISUdIPjsKKysJCXByaW9yaXR5ID0gPDIyND47CisrCX07CisrfTsKKysKKysmZ21h YzBfcmdtaWlfcnhpbiB7CisrCWNsb2NrLWZyZXF1ZW5jeSA9IDwxMjUwMDAwMDA+OworK307Cisr CisrJmdtYWMwX3JtaWlfcmVmaW4geworKwljbG9jay1mcmVxdWVuY3kgPSA8NTAwMDAwMDA+Owor K307CisrCisrJmdtYWMxX3JnbWlpX3J4aW4geworKwljbG9jay1mcmVxdWVuY3kgPSA8MTI1MDAw MDAwPjsKKyt9OworKworKyZnbWFjMV9ybWlpX3JlZmluIHsKKysJY2xvY2stZnJlcXVlbmN5ID0g PDUwMDAwMDAwPjsKKyt9OworKworKyZpMnNyeF9iY2xrX2V4dCB7CisrCWNsb2NrLWZyZXF1ZW5j eSA9IDwxMjI4ODAwMD47CisrfTsKKysKKysmaTJzcnhfbHJja19leHQgeworKwljbG9jay1mcmVx dWVuY3kgPSA8MTkyMDAwPjsKKyt9OworKworKyZpMnN0eF9iY2xrX2V4dCB7CisrCWNsb2NrLWZy ZXF1ZW5jeSA9IDwxMjI4ODAwMD47CisrfTsKKysKKysmaTJzdHhfbHJja19leHQgeworKwljbG9j ay1mcmVxdWVuY3kgPSA8MTkyMDAwPjsKKyt9OworKworKyZtY2xrX2V4dCB7CisrCWNsb2NrLWZy ZXF1ZW5jeSA9IDwxMjI4ODAwMD47CisrfTsKKysKKysmb3NjIHsKKysJY2xvY2stZnJlcXVlbmN5 ID0gPDI0MDAwMDAwPjsKKyt9OworKworKyZydGNfb3NjIHsKKysJY2xvY2stZnJlcXVlbmN5ID0g PDMyNzY4PjsKKyt9OworKworKyZ0ZG1fZXh0IHsKKysJY2xvY2stZnJlcXVlbmN5ID0gPDQ5MTUy MDAwPjsKKyt9OworKworKyZpMmMwIHsKKysJY2xvY2stZnJlcXVlbmN5ID0gPDEwMDAwMD47Cisr CWkyYy1zZGEtaG9sZC10aW1lLW5zID0gPDMwMD47CisrCWkyYy1zZGEtZmFsbGluZy10aW1lLW5z ID0gPDUxMD47CisrCWkyYy1zY2wtZmFsbGluZy10aW1lLW5zID0gPDUxMD47CisrCXBpbmN0cmwt bmFtZXMgPSAiZGVmYXVsdCI7CisrCXBpbmN0cmwtMCA9IDwmaTJjMF9waW5zPjsKKysJc3RhdHVz ID0gIm9rYXkiOworK307CisrCisrJmkyYzIgeworKwljbG9jay1mcmVxdWVuY3kgPSA8MTAwMDAw PjsKKysJaTJjLXNkYS1ob2xkLXRpbWUtbnMgPSA8MzAwPjsKKysJaTJjLXNkYS1mYWxsaW5nLXRp bWUtbnMgPSA8NTEwPjsKKysJaTJjLXNjbC1mYWxsaW5nLXRpbWUtbnMgPSA8NTEwPjsKKysJcGlu Y3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKysJcGluY3RybC0wID0gPCZpMmMyX3BpbnM+OworKwlz dGF0dXMgPSAib2theSI7CisrfTsKKysKKysmaTJjNSB7CisrCWNsb2NrLWZyZXF1ZW5jeSA9IDwx MDAwMDA+OworKwlpMmMtc2RhLWhvbGQtdGltZS1ucyA9IDwzMDA+OworKwlpMmMtc2RhLWZhbGxp bmctdGltZS1ucyA9IDw1MTA+OworKwlpMmMtc2NsLWZhbGxpbmctdGltZS1ucyA9IDw1MTA+Owor KwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworKwlwaW5jdHJsLTAgPSA8JmkyYzVfcGlucz47 CisrCXN0YXR1cyA9ICJva2F5IjsKKyt9OworKworKyZpMmM2IHsKKysJY2xvY2stZnJlcXVlbmN5 ID0gPDEwMDAwMD47CisrCWkyYy1zZGEtaG9sZC10aW1lLW5zID0gPDMwMD47CisrCWkyYy1zZGEt ZmFsbGluZy10aW1lLW5zID0gPDUxMD47CisrCWkyYy1zY2wtZmFsbGluZy10aW1lLW5zID0gPDUx MD47CisrCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisrCXBpbmN0cmwtMCA9IDwmaTJjNl9w aW5zPjsKKysJc3RhdHVzID0gIm9rYXkiOworK307CisrCisrJnN5c2dwaW8geworKwlpMmMwX3Bp bnM6IGkyYzAtMCB7CisrCQlpMmMtcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoNTcsIEdQ T1VUX0xPVywKKysJCQkJCSAgICAgIEdQT0VOX1NZU19JMkMwX0NMSywKKysJCQkJCSAgICAgIEdQ SV9TWVNfSTJDMF9DTEspPiwKKysJCQkJIDxHUElPTVVYKDU4LCBHUE9VVF9MT1csCisrCQkJCQkg ICAgICBHUE9FTl9TWVNfSTJDMF9EQVRBLAorKwkJCQkJICAgICAgR1BJX1NZU19JMkMwX0RBVEEp PjsKKysJCQliaWFzLWRpc2FibGU7IC8qIGV4dGVybmFsIHB1bGwtdXAgKi8KKysJCQlpbnB1dC1l bmFibGU7CisrCQkJaW5wdXQtc2NobWl0dC1lbmFibGU7CisrCQl9OworKwl9OworKworKwlpMmMy X3BpbnM6IGkyYzItMCB7CisrCQlpMmMtcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoMywg R1BPVVRfTE9XLAorKwkJCQkJICAgICBHUE9FTl9TWVNfSTJDMl9DTEssCisrCQkJCQkgICAgIEdQ SV9TWVNfSTJDMl9DTEspPiwKKysJCQkJIDxHUElPTVVYKDIsIEdQT1VUX0xPVywKKysJCQkJCSAg ICAgR1BPRU5fU1lTX0kyQzJfREFUQSwKKysJCQkJCSAgICAgR1BJX1NZU19JMkMyX0RBVEEpPjsK KysJCQliaWFzLWRpc2FibGU7IC8qIGV4dGVybmFsIHB1bGwtdXAgKi8KKysJCQlpbnB1dC1lbmFi bGU7CisrCQkJaW5wdXQtc2NobWl0dC1lbmFibGU7CisrCQl9OworKwl9OworKworKwlpMmM1X3Bp bnM6IGkyYzUtMCB7CisrCQlpMmMtcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoMTksIEdQ T1VUX0xPVywKKysJCQkJCSAgICAgIEdQT0VOX1NZU19JMkM1X0NMSywKKysJCQkJCSAgICAgIEdQ SV9TWVNfSTJDNV9DTEspPiwKKysJCQkJIDxHUElPTVVYKDIwLCBHUE9VVF9MT1csCisrCQkJCQkg ICAgICBHUE9FTl9TWVNfSTJDNV9EQVRBLAorKwkJCQkJICAgICAgR1BJX1NZU19JMkM1X0RBVEEp PjsKKysJCQliaWFzLWRpc2FibGU7IC8qIGV4dGVybmFsIHB1bGwtdXAgKi8KKysJCQlpbnB1dC1l bmFibGU7CisrCQkJaW5wdXQtc2NobWl0dC1lbmFibGU7CisrCQl9OworKwl9OworKworKwlpMmM2 X3BpbnM6IGkyYzYtMCB7CisrCQlpMmMtcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoMTYs IEdQT1VUX0xPVywKKysJCQkJCSAgICAgIEdQT0VOX1NZU19JMkM2X0NMSywKKysJCQkJCSAgICAg IEdQSV9TWVNfSTJDNl9DTEspPiwKKysJCQkJIDxHUElPTVVYKDE3LCBHUE9VVF9MT1csCisrCQkJ CQkgICAgICBHUE9FTl9TWVNfSTJDNl9EQVRBLAorKwkJCQkJICAgICAgR1BJX1NZU19JMkM2X0RB VEEpPjsKKysJCQliaWFzLWRpc2FibGU7IC8qIGV4dGVybmFsIHB1bGwtdXAgKi8KKysJCQlpbnB1 dC1lbmFibGU7CisrCQkJaW5wdXQtc2NobWl0dC1lbmFibGU7CisrCQl9OworKwl9OworKworKwl1 YXJ0MF9waW5zOiB1YXJ0MC0wIHsKKysJCXR4LXBpbnMgeworKwkJCXBpbm11eCA9IDxHUElPTVVY KDUsIEdQT1VUX1NZU19VQVJUMF9UWCwKKysJCQkJCSAgICAgR1BPRU5fRU5BQkxFLAorKwkJCQkJ ICAgICBHUElfTk9ORSk+OworKwkJCWJpYXMtZGlzYWJsZTsKKysJCQlkcml2ZS1zdHJlbmd0aCA9 IDwxMj47CisrCQkJaW5wdXQtZGlzYWJsZTsKKysJCQlpbnB1dC1zY2htaXR0LWRpc2FibGU7Cisr CQkJc2xldy1yYXRlID0gPDA+OworKwkJfTsKKysKKysJCXJ4LXBpbnMgeworKwkJCXBpbm11eCA9 IDxHUElPTVVYKDYsIEdQT1VUX0xPVywKKysJCQkJCSAgICAgR1BPRU5fRElTQUJMRSwKKysJCQkJ CSAgICAgR1BJX1NZU19VQVJUMF9SWCk+OworKwkJCWJpYXMtZGlzYWJsZTsgLyogZXh0ZXJuYWwg cHVsbC11cCAqLworKwkJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworKwkJCWlucHV0LWVuYWJsZTsK KysJCQlpbnB1dC1zY2htaXR0LWVuYWJsZTsKKysJCQlzbGV3LXJhdGUgPSA8MD47CisrCQl9Owor Kwl9OworK307CisrCisrJnVhcnQwIHsKKysJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKysJ cGluY3RybC0wID0gPCZ1YXJ0MF9waW5zPjsKKysJc3RhdHVzID0gIm9rYXkiOworK307CistLSAK KzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyMi1yaXNj di1kdHMtc3RhcmZpdmUtamg3MTEwLUNvcnJlY3QtdGhlLXByb3BlcnRpZXMtb2YtLnBhdGNoIGIv c3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjItcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzExMC1D b3JyZWN0LXRoZS1wcm9wZXJ0aWVzLW9mLS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi40YTk1ZjFiYWY0ZjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwMjItcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzExMC1Db3JyZWN0 LXRoZS1wcm9wZXJ0aWVzLW9mLS5wYXRjaApAQCAtMCwwICsxLDQzIEBACitGcm9tIDA4ODk5NGY4 ZmQxMWZkNTAyMDg4NTA2NjZjNDM1YWJmNWYyNzA4ZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFNhdCwg MSBBcHIgMjAyMyAxOToxOTozNCArMDgwMAorU3ViamVjdDogW1BBVENIIDIyLzg0XSByaXNjdjog ZHRzOiBzdGFyZml2ZTogamg3MTEwOiBDb3JyZWN0IHRoZSBwcm9wZXJ0aWVzIG9mCisgUzcgY29y ZQorCitUaGUgUzcgY29yZSBoYXMgbm8gTDEgZGF0YSBjYWNoZSBhbmQgTU1VLCBzbyBkZWxldGUg c29tZQorcmVsYXRlZCBwcm9wZXJ0aWVzLgorCitTaWduZWQtb2ZmLWJ5OiBIYWwgRmVuZyA8aGFs LmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGFyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZp dmUvamg3MTEwLmR0c2kgfCA5IC0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA5IGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAu ZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK2luZGV4IGQ0 ODRlY2RmOTNmNy4uNGM1ZmRiOTA1ZGE4IDEwMDY0NAorLS0tIGEvYXJjaC9yaXNjdi9ib290L2R0 cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2 ZS9qaDcxMTAuZHRzaQorQEAgLTIwLDIxICsyMCwxMiBAQCBjcHVzIHsKKyAJCVM3XzA6IGNwdUAw IHsKKyAJCQljb21wYXRpYmxlID0gInNpZml2ZSxzNyIsICJyaXNjdiI7CisgCQkJcmVnID0gPDA+ OworLQkJCWQtY2FjaGUtYmxvY2stc2l6ZSA9IDw2ND47CistCQkJZC1jYWNoZS1zZXRzID0gPDY0 PjsKKy0JCQlkLWNhY2hlLXNpemUgPSA8ODE5Mj47CistCQkJZC10bGItc2V0cyA9IDwxPjsKKy0J CQlkLXRsYi1zaXplID0gPDQwPjsKKyAJCQlkZXZpY2VfdHlwZSA9ICJjcHUiOworIAkJCWktY2Fj aGUtYmxvY2stc2l6ZSA9IDw2ND47CisgCQkJaS1jYWNoZS1zZXRzID0gPDY0PjsKKyAJCQlpLWNh Y2hlLXNpemUgPSA8MTYzODQ+OworLQkJCWktdGxiLXNldHMgPSA8MT47CistCQkJaS10bGItc2l6 ZSA9IDw0MD47CistCQkJbW11LXR5cGUgPSAicmlzY3Ysc3YzOSI7CisgCQkJbmV4dC1sZXZlbC1j YWNoZSA9IDwmY2NhY2hlPjsKKyAJCQlyaXNjdixpc2EgPSAicnY2NGltYWNfemJhX3piYiI7Cist CQkJdGxiLXNwbGl0OworIAkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisgCisgCQkJY3B1MF9pbnRj OiBpbnRlcnJ1cHQtY29udHJvbGxlciB7CistLSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyMy1kdC1iaW5kaW5ncy13YXRjaGRvZy1BZGQtd2F0Y2hk b2ctZm9yLVN0YXJGaXZlLUpINzEwLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw MjMtZHQtYmluZGluZ3Mtd2F0Y2hkb2ctQWRkLXdhdGNoZG9nLWZvci1TdGFyRml2ZS1KSDcxMC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5mYmQzMjYxMTVm NzE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjMtZHQt YmluZGluZ3Mtd2F0Y2hkb2ctQWRkLXdhdGNoZG9nLWZvci1TdGFyRml2ZS1KSDcxMC5wYXRjaApA QCAtMCwwICsxLDk3IEBACitGcm9tIDk4NDliMTJjNDhjMjUwZDQ1MDg5OGVmMjg5MTI5NDFjMTQ3 N2Q2MmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53 dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVHVlLCAxNCBNYXIgMjAyMyAyMToyNDozNSArMDgw MAorU3ViamVjdDogW1BBVENIIDIzLzg0XSBkdC1iaW5kaW5nczogd2F0Y2hkb2c6IEFkZCB3YXRj aGRvZyBmb3IgU3RhckZpdmUgSkg3MTAwCisgYW5kIEpINzExMAorCitBZGQgYmluZGluZ3MgdG8g ZGVzY3JpYmUgdGhlIHdhdGNoZG9nIGZvciB0aGUgU3RhckZpdmUgSkg3MTAwL0pINzExMCBTb0Mu CitBbmQgVXNlIEpINzEwMCBhcyBmaXJzdCBTdGFyRml2ZSBTb0Mgd2l0aCB3YXRjaGRvZy4KKwor U2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK1Jl dmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5c3p0b2Yua296bG93c2tpQGxpbmFy by5vcmc+CitSZXZpZXdlZC1ieTogR3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMubmV0Pgor LS0tCisgLi4uL3dhdGNoZG9nL3N0YXJmaXZlLGpoNzEwMC13ZHQueWFtbCAgICAgICAgIHwgNzEg KysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRj aGRvZy9zdGFyZml2ZSxqaDcxMDAtd2R0LnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9zdGFyZml2ZSxqaDcxMDAtd2R0LnlhbWwg Yi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvc3RhcmZpdmUsamg3 MTAwLXdkdC55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi42 OGYzZjZmZDA4YTYKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy93YXRjaGRvZy9zdGFyZml2ZSxqaDcxMDAtd2R0LnlhbWwKK0BAIC0wLDAgKzEs NzEgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0y LUNsYXVzZSkKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9z Y2hlbWFzL3dhdGNoZG9nL3N0YXJmaXZlLGpoNzEwMC13ZHQueWFtbCMKKyskc2NoZW1hOiBodHRw Oi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3Rh ckZpdmUgV2F0Y2hkb2cgZm9yIEpINzEwMCBhbmQgSkg3MTEwIFNvQworKworK21haW50YWluZXJz OgorKyAgLSBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorKyAgLSBTYW1p biBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorKworK2Rlc2NyaXB0aW9uOgorKyAg VGhlIEpINzEwMCBhbmQgSkg3MTEwIHdhdGNoZG9nIGJvdGggYXJlIDMyIGJpdCBjb3VudGVycy4g Skg3MTAwIHdhdGNoZG9nCisrICBoYXMgb25seSBvbmUgdGltZW91dCBwaGFzZSBhbmQgcmVib290 cy4gQW5kIEpINzExMCB3YXRjaGRvZyBoYXMgdHdvCisrICB0aW1lb3V0IHBoYXNlcy4gQXQgdGhl IGZpcnN0IHBoYXNlLCB0aGUgc2lnbmFsIG9mIHdhdGNoZG9nIGludGVycnVwdAorKyAgb3V0cHV0 KFdET0dJTlQpIHdpbGwgcmlzZSB3aGVuIGNvdW50ZXIgaXMgMC4gVGhlIGNvdW50ZXIgd2lsbCBy ZWxvYWQKKysgIHRoZSB0aW1lb3V0IHZhbHVlLiBBbmQgdGhlbiwgaWYgY291bnRlciBkZWNyZWFz ZXMgdG8gMCBhZ2FpbiBhbmQgV0RPR0lOVAorKyAgaXNuJ3QgY2xlYXJlZCwgdGhlIHdhdGNoZG9n IHdpbGwgcmVzZXQgdGhlIHN5c3RlbSB1bmxlc3MgdGhlIHdhdGNoZG9nCisrICByZXNldCBpcyBk aXNhYmxlZC4KKysKKythbGxPZjoKKysgIC0gJHJlZjogd2F0Y2hkb2cueWFtbCMKKysKKytwcm9w ZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgZW51bToKKysgICAgICAtIHN0YXJmaXZlLGpo NzEwMC13ZHQKKysgICAgICAtIHN0YXJmaXZlLGpoNzExMC13ZHQKKysKKysgIHJlZzoKKysgICAg bWF4SXRlbXM6IDEKKysKKysgIGludGVycnVwdHM6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBj bG9ja3M6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9jaworKyAg ICAgIC0gZGVzY3JpcHRpb246IENvcmUgY2xvY2sKKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBp dGVtczoKKysgICAgICAtIGNvbnN0OiBhcGIKKysgICAgICAtIGNvbnN0OiBjb3JlCisrCisrICBy ZXNldHM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IEFQQiByZXNldAorKyAg ICAgIC0gZGVzY3JpcHRpb246IENvcmUgcmVzZXQKKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0 aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtIHJlc2V0 cworKworK3VuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0g fAorKyAgICB3YXRjaGRvZ0AxMjQ4MDAwMCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0YXJm aXZlLGpoNzEwMC13ZHQiOworKyAgICAgICAgcmVnID0gPDB4MTI0ODAwMDAgMHgxMDAwMD47Cisr ICAgICAgICBjbG9ja3MgPSA8JmNsayAxNzE+LAorKyAgICAgICAgICAgICAgICAgPCZjbGsgMTcy PjsKKysgICAgICAgIGNsb2NrLW5hbWVzID0gImFwYiIsICJjb3JlIjsKKysgICAgICAgIHJlc2V0 cyA9IDwmcnN0IDk5PiwKKysgICAgICAgICAgICAgICAgIDwmcnN0IDEwMD47CisrICAgIH07Cist LSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyNC1k cml2ZXJzLXdhdGNoZG9nLUFkZC1TdGFyRml2ZS1XYXRjaGRvZy1kcml2ZXIucGF0Y2ggYi9zcmNw a2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyNC1kcml2ZXJzLXdhdGNoZG9nLUFkZC1TdGFyRml2ZS1X YXRjaGRvZy1kcml2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uM2UwNjE4N2ZlMzg1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDI0LWRyaXZlcnMtd2F0Y2hkb2ctQWRkLVN0YXJGaXZlLVdhdGNoZG9nLWRyaXZl ci5wYXRjaApAQCAtMCwwICsxLDY4NyBAQAorRnJvbSBkMjExYWJmYWY1NDkyMjM2N2E5Mjg1ZDc2 MTdkOTEzZjViZDY2ZTk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1IFd1 IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwgMTQgTWFyIDIwMjMgMjE6 MjQ6MzYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAyNC84NF0gZHJpdmVyczogd2F0Y2hkb2c6IEFk ZCBTdGFyRml2ZSBXYXRjaGRvZyBkcml2ZXIKKworQWRkIHdhdGNoZG9nIGRyaXZlciBmb3IgdGhl IFN0YXJGaXZlIEpINzEwMCBhbmQgSkg3MTEwIFNvQy4KKworU2lnbmVkLW9mZi1ieTogWGluZ3l1 IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK1Jldmlld2VkLWJ5OiBFbWlsIFJlbm5l ciBCZXJ0aGluZyA8ZW1pbC5yZW5uZXIuYmVydGhpbmdAY2Fub25pY2FsLmNvbT4KK1Jldmlld2Vk LWJ5OiBHdWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+CistLS0KKyBNQUlOVEFJTkVS UyAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsKKyBkcml2ZXJzL3dhdGNoZG9nL0tjb25maWcg ICAgICAgIHwgIDExICsKKyBkcml2ZXJzL3dhdGNoZG9nL01ha2VmaWxlICAgICAgIHwgICAzICsK KyBkcml2ZXJzL3dhdGNoZG9nL3N0YXJmaXZlLXdkdC5jIHwgNjA2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCA2MjcgaW5zZXJ0aW9ucygrKQorIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3dhdGNoZG9nL3N0YXJmaXZlLXdkdC5jCisKK2RpZmYg LS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCitpbmRleCBhYzFiZDFjM2IwZDcuLmIz ZmRlYzU3OWMzOSAxMDA2NDQKKy0tLSBhL01BSU5UQUlORVJTCisrKysgYi9NQUlOVEFJTkVSUwor QEAgLTE5OTU0LDYgKzE5OTU0LDEzIEBAIFM6CVN1cHBvcnRlZAorIEY6CURvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9ybmcvc3RhcmZpdmUqCisgRjoJZHJpdmVycy9jaGFyL2h3X3Jh bmRvbS9qaDcxMTAtdHJuZy5jCisgCisrU1RBUkZJVkUgV0FUQ0hET0cgRFJJVkVSCisrTToJWGlu Z3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKytNOglTYW1pbiBHdW8gPHNhbWlu Lmd1b0BzdGFyZml2ZXRlY2guY29tPgorK1M6CVN1cHBvcnRlZAorK0Y6CURvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9zdGFyZml2ZSoKKytGOglkcml2ZXJzL3dhdGNo ZG9nL3N0YXJmaXZlLXdkdC5jCisrCisgU1RBVElDIEJSQU5DSC9DQUxMCisgTToJUGV0ZXIgWmlq bHN0cmEgPHBldGVyekBpbmZyYWRlYWQub3JnPgorIE06CUpvc2ggUG9pbWJvZXVmIDxqcG9pbWJv ZUBrZXJuZWwub3JnPgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvS2NvbmZpZyBiL2Ry aXZlcnMvd2F0Y2hkb2cvS2NvbmZpZworaW5kZXggZjA4NzI5NzBkYWY5Li5mMjIxMzg3MDliZjUg MTAwNjQ0CistLS0gYS9kcml2ZXJzL3dhdGNoZG9nL0tjb25maWcKKysrKyBiL2RyaXZlcnMvd2F0 Y2hkb2cvS2NvbmZpZworQEAgLTE5OTksNiArMTk5OSwxNyBAQCBjb25maWcgV0FUQ0hET0dfUlRB UworIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUu IFRoZSBtb2R1bGUKKyAJICB3aWxsIGJlIGNhbGxlZCB3ZHJ0YXMuCisgCisrIyBSSVNDLVYgQXJj aGl0ZWN0dXJlCisrCisrY29uZmlnIFNUQVJGSVZFX1dBVENIRE9HCisrCXRyaXN0YXRlICJTdGFy Rml2ZSBXYXRjaGRvZyBzdXBwb3J0IgorKwlkZXBlbmRzIG9uIEFSQ0hfU1RBUkZJVkUgfHwgQ09N UElMRV9URVNUCisrCXNlbGVjdCBXQVRDSERPR19DT1JFCisrCWRlZmF1bHQgQVJDSF9TVEFSRklW RQorKwloZWxwCisrCSAgU2F5IFkgaGVyZSB0byBzdXBwb3J0IHRoZSB3YXRjaGRvZyBvZiBTdGFy Rml2ZSBKSDcxMDAgYW5kIEpINzExMAorKwkgIFNvQy4gVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUg YnVpbHQgYXMgYSBtb2R1bGUgaWYgY2hvb3NlIE0uCisrCisgIyBTMzkwIEFyY2hpdGVjdHVyZQor IAorIGNvbmZpZyBESUFHMjg4X1dBVENIRE9HCitkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRv Zy9NYWtlZmlsZSBiL2RyaXZlcnMvd2F0Y2hkb2cvTWFrZWZpbGUKK2luZGV4IDljYmY2NTgwZjE2 Yy4uYjRjNGNjZjJkNzAzIDEwMDY0NAorLS0tIGEvZHJpdmVycy93YXRjaGRvZy9NYWtlZmlsZQor KysrIGIvZHJpdmVycy93YXRjaGRvZy9NYWtlZmlsZQorQEAgLTE5Miw2ICsxOTIsOSBAQCBvYmot JChDT05GSUdfTUVOX0EyMV9XRFQpICs9IG1lbmEyMV93ZHQubworIG9iai0kKENPTkZJR19QU0VS SUVTX1dEVCkgKz0gcHNlcmllcy13ZHQubworIG9iai0kKENPTkZJR19XQVRDSERPR19SVEFTKSAr PSB3ZHJ0YXMubworIAorKyMgUklTQy1WIEFyY2hpdGVjdHVyZQorK29iai0kKENPTkZJR19TVEFS RklWRV9XQVRDSERPRykgKz0gc3RhcmZpdmUtd2R0Lm8KKysKKyAjIFMzOTAgQXJjaGl0ZWN0dXJl Cisgb2JqLSQoQ09ORklHX0RJQUcyODhfV0FUQ0hET0cpICs9IGRpYWcyODhfd2R0Lm8KKyAKK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL3N0YXJmaXZlLXdkdC5jIGIvZHJpdmVycy93YXRj aGRvZy9zdGFyZml2ZS13ZHQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uMTk5NWNjZWNhNTFlCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3dhdGNoZG9n L3N0YXJmaXZlLXdkdC5jCitAQCAtMCwwICsxLDYwNiBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBTdGFyZml2ZSBXYXRjaGRvZyBkcml2ZXIKKysgKgor KyAqIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAq LworKworKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+ CisrI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2Uu aD4KKysjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNl dC5oPgorKyNpbmNsdWRlIDxsaW51eC93YXRjaGRvZy5oPgorKworKy8qIEpINzEwMCBXYXRjaGRv ZyByZWdpc3RlciBkZWZpbmUgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9KSDcxMDBfSU5UU1RB VVMJMHgwMDAKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9KSDcxMDBfQ09OVFJPTAkweDEwNAorKyNk ZWZpbmUgU1RBUkZJVkVfV0RUX0pINzEwMF9MT0FECTB4MTA4CisrI2RlZmluZSBTVEFSRklWRV9X RFRfSkg3MTAwX0VOCQkweDExMAorKyNkZWZpbmUgU1RBUkZJVkVfV0RUX0pINzEwMF9SRUxPQUQJ MHgxMTQJLyogV3JpdGUgMCBvciAxIHRvIHJlbG9hZCBwcmVzZXQgdmFsdWUgKi8KKysjZGVmaW5l IFNUQVJGSVZFX1dEVF9KSDcxMDBfVkFMVUUJMHgxMTgKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9K SDcxMDBfSU5UQ0xSCTB4MTIwCS8qCisrCQkJCQkJICogWzBdOiBXcml0ZSAxIHRvIGNsZWFyIGlu dGVycnVwdAorKwkJCQkJCSAqIFsxXTogMSBtZWFuIGNsZWFyaW5nIGFuZCAwIG1lYW4gY29tcGxl dGUKKysJCQkJCQkgKiBbMzE6Ml06IHJlc2VydmVkLgorKwkJCQkJCSAqLworKyNkZWZpbmUgU1RB UkZJVkVfV0RUX0pINzEwMF9MT0NLCTB4MTNjCS8qIHdyaXRlIDB4Mzc4ZjA3NjUgdG8gdW5sb2Nr ICovCisrCisrLyogSkg3MTEwIFdhdGNoZG9nIHJlZ2lzdGVyIGRlZmluZSAqLworKyNkZWZpbmUg U1RBUkZJVkVfV0RUX0pINzExMF9MT0FECTB4MDAwCisrI2RlZmluZSBTVEFSRklWRV9XRFRfSkg3 MTEwX1ZBTFVFCTB4MDA0CisrI2RlZmluZSBTVEFSRklWRV9XRFRfSkg3MTEwX0NPTlRST0wJMHgw MDgJLyoKKysJCQkJCQkgKiBbMF06IHJlc2V0IGVuYWJsZTsKKysJCQkJCQkgKiBbMV06IGludGVy cnVwdCBlbmFibGUgJiYgd2F0Y2hkb2cgZW5hYmxlCisrCQkJCQkJICogWzMxOjJdOiByZXNlcnZl ZC4KKysJCQkJCQkgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9KSDcxMTBfSU5UQ0xSCTB4MDBj CS8qIGNsZWFyIGludHRlcnVwdCBhbmQgcmVsb2FkIHRoZSBjb3VudGVyICovCisrI2RlZmluZSBT VEFSRklWRV9XRFRfSkg3MTEwX0lNUwkJMHgwMTQKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9KSDcx MTBfTE9DSwkweGMwMAkvKiB3cml0ZSAweDFBQ0NFNTUxIHRvIHVubG9jayAqLworKworKy8qIFdE T0dDT05UUk9MICovCisrI2RlZmluZSBTVEFSRklWRV9XRFRfRU5BQkxFCQkJMHgxCisrI2RlZmlu ZSBTVEFSRklWRV9XRFRfRU5fU0hJRlQJCQkwCisrI2RlZmluZSBTVEFSRklWRV9XRFRfUkVTRVRf RU4JCQkweDEKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9KSDcxMDBfUlNUX0VOX1NISUZUCTAKKysj ZGVmaW5lIFNUQVJGSVZFX1dEVF9KSDcxMTBfUlNUX0VOX1NISUZUCTEKKysKKysvKiBXRE9HTE9D SyAqLworKyNkZWZpbmUgU1RBUkZJVkVfV0RUX0pINzEwMF9VTkxPQ0tfS0VZCQkweDM3OGYwNzY1 CisrI2RlZmluZSBTVEFSRklWRV9XRFRfSkg3MTEwX1VOTE9DS19LRVkJCTB4MWFjY2U1NTEKKysK KysvKiBXRE9HSU5UQ0xSICovCisrI2RlZmluZSBTVEFSRklWRV9XRFRfSU5UQ0xSCQkJMHgxCisr I2RlZmluZSBTVEFSRklWRV9XRFRfSkg3MTAwX0lOVENMUl9BVkFfU0hJRlQJMQkvKiBXYXRjaGRv ZyBjYW4gY2xlYXIgaW50ZXJydXB0IHdoZW4gMCAqLworKworKyNkZWZpbmUgU1RBUkZJVkVfV0RU X01BWENOVAkJCTB4ZmZmZmZmZmYKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9ERUZBVUxUX1RJTUUJ CSgxNSkKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9ERUxBWV9VUwkJCTAKKysjZGVmaW5lIFNUQVJG SVZFX1dEVF9USU1FT1VUX1VTCQkJMTAwMDAKKysKKysvKiBtb2R1bGUgcGFyYW1ldGVyICovCisr I2RlZmluZSBTVEFSRklWRV9XRFRfRUFSTFlfRU5BCQkJMAorKworK3N0YXRpYyBib29sIG5vd2F5 b3V0ID0gV0FUQ0hET0dfTk9XQVlPVVQ7Cisrc3RhdGljIGludCBoZWFydGJlYXQ7Cisrc3RhdGlj IGJvb2wgZWFybHlfZW5hYmxlID0gU1RBUkZJVkVfV0RUX0VBUkxZX0VOQTsKKysKKyttb2R1bGVf cGFyYW0oaGVhcnRiZWF0LCBpbnQsIDApOworK21vZHVsZV9wYXJhbShlYXJseV9lbmFibGUsIGJv b2wsIDApOworK21vZHVsZV9wYXJhbShub3dheW91dCwgYm9vbCwgMCk7CisrCisrTU9EVUxFX1BB Uk1fREVTQyhoZWFydGJlYXQsICJXYXRjaGRvZyBoZWFydGJlYXQgaW4gc2Vjb25kcy4gKGRlZmF1 bHQ9IgorKwkJIF9fTU9EVUxFX1NUUklORyhTVEFSRklWRV9XRFRfREVGQVVMVF9USU1FKSAiKSIp OworK01PRFVMRV9QQVJNX0RFU0MoZWFybHlfZW5hYmxlLAorKwkJICJXYXRjaGRvZyBpcyBzdGFy dGVkIGF0IGJvb3QgdGltZSBpZiBzZXQgdG8gMSwgZGVmYXVsdD0iCisrCQkgX19NT0RVTEVfU1RS SU5HKFNUQVJGSVZFX1dEVF9FQVJMWV9FTkEpKTsKKytNT0RVTEVfUEFSTV9ERVNDKG5vd2F5b3V0 LCAiV2F0Y2hkb2cgY2Fubm90IGJlIHN0b3BwZWQgb25jZSBzdGFydGVkIChkZWZhdWx0PSIKKysJ CSBfX01PRFVMRV9TVFJJTkcoV0FUQ0hET0dfTk9XQVlPVVQpICIpIik7CisrCisrc3RydWN0IHN0 YXJmaXZlX3dkdF92YXJpYW50IHsKKysJdW5zaWduZWQgaW50IGNvbnRyb2w7CQkvKiBXYXRjaGRv ZyBDb250cm9sIFJlc2dpc3RlciBmb3IgcmVzZXQgZW5hYmxlICovCisrCXVuc2lnbmVkIGludCBs b2FkOwkJLyogV2F0Y2hkb2cgTG9hZCByZWdpc3RlciAqLworKwl1bnNpZ25lZCBpbnQgcmVsb2Fk OwkJLyogV2F0Y2hkb2cgUmVsb2FkIENvbnRyb2wgcmVnaXN0ZXIgKi8KKysJdW5zaWduZWQgaW50 IGVuYWJsZTsJCS8qIFdhdGNoZG9nIEVuYWJsZSBSZWdpc3RlciAqLworKwl1bnNpZ25lZCBpbnQg dmFsdWU7CQkvKiBXYXRjaGRvZyBDb3VudGVyIFZhbHVlIFJlZ2lzdGVyICovCisrCXVuc2lnbmVk IGludCBpbnRfY2xyOwkJLyogV2F0Y2hkb2cgSW50ZXJydXB0IENsZWFyIFJlZ2lzdGVyICovCisr CXVuc2lnbmVkIGludCB1bmxvY2s7CQkvKiBXYXRjaGRvZyBMb2NrIFJlZ2lzdGVyICovCisrCXVu c2lnbmVkIGludCBpbnRfc3RhdHVzOwkvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lz dGVyICovCisrCisrCXUzMiB1bmxvY2tfa2V5OworKwljaGFyIGVucnN0X3NoaWZ0OworKwljaGFy IGVuX3NoaWZ0OworKwlib29sIGludGNscl9jaGVjazsJCS8qICB3aGV0aGVyIG5lZWQgdG8gY2hl Y2sgaXQgYmVmb3JlIGNsZWFyaW5nIGludGVycnVwdCAqLworKwljaGFyIGludGNscl9hdmFfc2hp ZnQ7CisrCWJvb2wgZG91YmxlX3RpbWVvdXQ7CQkvKiBUaGUgd2F0Y2hkb2cgbmVlZCB0d2ljZSB0 aW1lb3V0IHRvIHJlYm9vdCAqLworK307CisrCisrc3RydWN0IHN0YXJmaXZlX3dkdCB7CisrCXN0 cnVjdCB3YXRjaGRvZ19kZXZpY2Ugd2RkOworKwlzcGlubG9ja190IGxvY2s7CQkvKiBzcGlubG9j ayBmb3IgcmVnaXN0ZXIgaGFuZGxpbmcgKi8KKysJdm9pZCBfX2lvbWVtICpiYXNlOworKwlzdHJ1 Y3QgY2xrICpjb3JlX2NsazsKKysJc3RydWN0IGNsayAqYXBiX2NsazsKKysJY29uc3Qgc3RydWN0 IHN0YXJmaXZlX3dkdF92YXJpYW50ICp2YXJpYW50OworKwl1bnNpZ25lZCBsb25nIGZyZXE7Cisr CXUzMiBjb3VudDsJCQkvKiBjb3VudCBvZiB0aW1lb3V0ICovCisrCXUzMiByZWxvYWQ7CQkJLyog cmVzdG9yZSB0aGUgY291bnQgKi8KKyt9OworKworKy8qIFJlZ2lzdGVyIGxheW91dCBhbmQgY29u ZmlndXJhdGlvbiBmb3IgdGhlIEpINzEwMCAqLworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RhcmZp dmVfd2R0X3ZhcmlhbnQgc3RhcmZpdmVfd2R0X2poNzEwMF92YXJpYW50ID0geworKwkuY29udHJv bCA9IFNUQVJGSVZFX1dEVF9KSDcxMDBfQ09OVFJPTCwKKysJLmxvYWQgPSBTVEFSRklWRV9XRFRf Skg3MTAwX0xPQUQsCisrCS5yZWxvYWQgPSBTVEFSRklWRV9XRFRfSkg3MTAwX1JFTE9BRCwKKysJ LmVuYWJsZSA9IFNUQVJGSVZFX1dEVF9KSDcxMDBfRU4sCisrCS52YWx1ZSA9IFNUQVJGSVZFX1dE VF9KSDcxMDBfVkFMVUUsCisrCS5pbnRfY2xyID0gU1RBUkZJVkVfV0RUX0pINzEwMF9JTlRDTFIs CisrCS51bmxvY2sgPSBTVEFSRklWRV9XRFRfSkg3MTAwX0xPQ0ssCisrCS51bmxvY2tfa2V5ID0g U1RBUkZJVkVfV0RUX0pINzEwMF9VTkxPQ0tfS0VZLAorKwkuaW50X3N0YXR1cyA9IFNUQVJGSVZF X1dEVF9KSDcxMDBfSU5UU1RBVVMsCisrCS5lbnJzdF9zaGlmdCA9IFNUQVJGSVZFX1dEVF9KSDcx MDBfUlNUX0VOX1NISUZULAorKwkuZW5fc2hpZnQgPSBTVEFSRklWRV9XRFRfRU5fU0hJRlQsCisr CS5pbnRjbHJfY2hlY2sgPSB0cnVlLAorKwkuaW50Y2xyX2F2YV9zaGlmdCA9IFNUQVJGSVZFX1dE VF9KSDcxMDBfSU5UQ0xSX0FWQV9TSElGVCwKKysJLmRvdWJsZV90aW1lb3V0ID0gZmFsc2UsCisr fTsKKysKKysvKiBSZWdpc3RlciBsYXlvdXQgYW5kIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBKSDcx MTAgKi8KKytzdGF0aWMgY29uc3Qgc3RydWN0IHN0YXJmaXZlX3dkdF92YXJpYW50IHN0YXJmaXZl X3dkdF9qaDcxMTBfdmFyaWFudCA9IHsKKysJLmNvbnRyb2wgPSBTVEFSRklWRV9XRFRfSkg3MTEw X0NPTlRST0wsCisrCS5sb2FkID0gU1RBUkZJVkVfV0RUX0pINzExMF9MT0FELAorKwkuZW5hYmxl ID0gU1RBUkZJVkVfV0RUX0pINzExMF9DT05UUk9MLAorKwkudmFsdWUgPSBTVEFSRklWRV9XRFRf Skg3MTEwX1ZBTFVFLAorKwkuaW50X2NsciA9IFNUQVJGSVZFX1dEVF9KSDcxMTBfSU5UQ0xSLAor KwkudW5sb2NrID0gU1RBUkZJVkVfV0RUX0pINzExMF9MT0NLLAorKwkudW5sb2NrX2tleSA9IFNU QVJGSVZFX1dEVF9KSDcxMTBfVU5MT0NLX0tFWSwKKysJLmludF9zdGF0dXMgPSBTVEFSRklWRV9X RFRfSkg3MTEwX0lNUywKKysJLmVucnN0X3NoaWZ0ID0gU1RBUkZJVkVfV0RUX0pINzExMF9SU1Rf RU5fU0hJRlQsCisrCS5lbl9zaGlmdCA9IFNUQVJGSVZFX1dEVF9FTl9TSElGVCwKKysJLmludGNs cl9jaGVjayA9IGZhbHNlLAorKwkuZG91YmxlX3RpbWVvdXQgPSB0cnVlLAorK307CisrCisrc3Rh dGljIGludCBzdGFyZml2ZV93ZHRfZW5hYmxlX2Nsb2NrKHN0cnVjdCBzdGFyZml2ZV93ZHQgKndk dCkKKyt7CisrCWludCByZXQ7CisrCisrCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZSh3ZHQtPmFw Yl9jbGspOworKwlpZiAocmV0KQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUod2R0LT53ZGQucGFy ZW50LCByZXQsICJmYWlsZWQgdG8gZW5hYmxlIGFwYiBjbG9ja1xuIik7CisrCisrCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZSh3ZHQtPmNvcmVfY2xrKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBk ZXZfZXJyX3Byb2JlKHdkdC0+d2RkLnBhcmVudCwgcmV0LCAiZmFpbGVkIHRvIGVuYWJsZSBjb3Jl IGNsb2NrXG4iKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZl X3dkdF9kaXNhYmxlX2Nsb2NrKHN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCkKKyt7CisrCWNsa19k aXNhYmxlX3VucHJlcGFyZSh3ZHQtPmNvcmVfY2xrKTsKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJl KHdkdC0+YXBiX2Nsayk7CisrfQorKworK3N0YXRpYyBpbmxpbmUgaW50IHN0YXJmaXZlX3dkdF9n ZXRfY2xvY2soc3RydWN0IHN0YXJmaXZlX3dkdCAqd2R0KQorK3sKKysJc3RydWN0IGRldmljZSAq ZGV2ID0gd2R0LT53ZGQucGFyZW50OworKworKwl3ZHQtPmFwYl9jbGsgPSBkZXZtX2Nsa19nZXQo ZGV2LCAiYXBiIik7CisrCWlmIChJU19FUlIod2R0LT5hcGJfY2xrKSkKKysJCXJldHVybiBkZXZf ZXJyX3Byb2JlKGRldiwgUFRSX0VSUih3ZHQtPmFwYl9jbGspLCAiZmFpbGVkIHRvIGdldCBhcGIg Y2xvY2tcbiIpOworKworKwl3ZHQtPmNvcmVfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImNvcmUi KTsKKysJaWYgKElTX0VSUih3ZHQtPmNvcmVfY2xrKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2Jl KGRldiwgUFRSX0VSUih3ZHQtPmNvcmVfY2xrKSwgImZhaWxlZCB0byBnZXQgY29yZSBjbG9ja1xu Iik7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW5saW5lIGludCBzdGFyZml2ZV93 ZHRfcmVzZXRfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgcmVzZXRfY29u dHJvbCAqcnN0czsKKysJaW50IHJldDsKKysKKysJcnN0cyA9IGRldm1fcmVzZXRfY29udHJvbF9h cnJheV9nZXRfZXhjbHVzaXZlKGRldik7CisrCWlmIChJU19FUlIocnN0cykpCisrCQlyZXR1cm4g ZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocnN0cyksICJmYWlsZWQgdG8gZ2V0IHJlc2V0c1xu Iik7CisrCisrCXJldCA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocnN0cyk7CisrCWlmIChyZXQp CisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImZhaWxlZCB0byBkZWFzc2VydCBy ZXNldHNcbiIpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHUzMiBzdGFyZml2ZV93 ZHRfdGlja3NfdG9fc2VjKHN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCwgdTMyIHRpY2tzKQorK3sK KysJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKHRpY2tzLCB3ZHQtPmZyZXEpOworK30KKysKKysv KiBXcml0ZSB1bmxvY2sta2V5IHRvIHVubG9jay4gV3JpdGUgb3RoZXIgdmFsdWUgdG8gbG9jay4g Ki8KKytzdGF0aWMgdm9pZCBzdGFyZml2ZV93ZHRfdW5sb2NrKHN0cnVjdCBzdGFyZml2ZV93ZHQg KndkdCkKKyt7CisrCXNwaW5fbG9jaygmd2R0LT5sb2NrKTsKKysJd3JpdGVsKHdkdC0+dmFyaWFu dC0+dW5sb2NrX2tleSwgd2R0LT5iYXNlICsgd2R0LT52YXJpYW50LT51bmxvY2spOworK30KKysK KytzdGF0aWMgdm9pZCBzdGFyZml2ZV93ZHRfbG9jayhzdHJ1Y3Qgc3RhcmZpdmVfd2R0ICp3ZHQp CisreworKwl3cml0ZWwofndkdC0+dmFyaWFudC0+dW5sb2NrX2tleSwgd2R0LT5iYXNlICsgd2R0 LT52YXJpYW50LT51bmxvY2spOworKwlzcGluX3VubG9jaygmd2R0LT5sb2NrKTsKKyt9CisrCisr LyogZW5hYmxlIHdhdGNoZG9nIGludGVycnVwdCB0byByZXNldC9yZWJvb3QgKi8KKytzdGF0aWMg dm9pZCBzdGFyZml2ZV93ZHRfZW5hYmxlX3Jlc2V0KHN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCkK Kyt7CisrCXUzMiB2YWw7CisrCisrCXZhbCA9IHJlYWRsKHdkdC0+YmFzZSArIHdkdC0+dmFyaWFu dC0+Y29udHJvbCk7CisrCXZhbCB8PSBTVEFSRklWRV9XRFRfUkVTRVRfRU4gPDwgd2R0LT52YXJp YW50LT5lbnJzdF9zaGlmdDsKKysJd3JpdGVsKHZhbCwgd2R0LT5iYXNlICsgd2R0LT52YXJpYW50 LT5jb250cm9sKTsKKyt9CisrCisrLyogaW50ZXJydXB0IHN0YXR1cyB3aGV0aGVyIGhhcyBiZWVu IHJhaXNlZCBmcm9tIHRoZSBjb3VudGVyICovCisrc3RhdGljIGJvb2wgc3RhcmZpdmVfd2R0X3Jh aXNlX2lycV9zdGF0dXMoc3RydWN0IHN0YXJmaXZlX3dkdCAqd2R0KQorK3sKKysJcmV0dXJuICEh cmVhZGwod2R0LT5iYXNlICsgd2R0LT52YXJpYW50LT5pbnRfc3RhdHVzKTsKKyt9CisrCisrLyog d2FpdGluZyBpbnRlcnJ1cHQgY2FuIGJlIGZyZWUgdG8gY2xlYXIgKi8KKytzdGF0aWMgaW50IHN0 YXJmaXZlX3dkdF93YWl0X2ludF9mcmVlKHN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCkKKyt7Cisr CXUzMiB2YWx1ZTsKKysKKysJcmV0dXJuIHJlYWRsX3BvbGxfdGltZW91dF9hdG9taWMod2R0LT5i YXNlICsgd2R0LT52YXJpYW50LT5pbnRfY2xyLCB2YWx1ZSwKKysJCQkJCSAhKHZhbHVlICYgQklU KHdkdC0+dmFyaWFudC0+aW50Y2xyX2F2YV9zaGlmdCkpLAorKwkJCQkJIFNUQVJGSVZFX1dEVF9E RUxBWV9VUywgU1RBUkZJVkVfV0RUX1RJTUVPVVRfVVMpOworK30KKysKKysvKiBjbGVhciBpbnRl cnJ1cHQgc2lnbmFsIGJlZm9yZSBpbml0aWFsaXphdGlvbiBvciByZWxvYWQgKi8KKytzdGF0aWMg aW50IHN0YXJmaXZlX3dkdF9pbnRfY2xyKHN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCkKKyt7Cisr CWludCByZXQ7CisrCisrCWlmICh3ZHQtPnZhcmlhbnQtPmludGNscl9jaGVjaykgeworKwkJcmV0 ID0gc3RhcmZpdmVfd2R0X3dhaXRfaW50X2ZyZWUod2R0KTsKKysJCWlmIChyZXQpCisrCQkJcmV0 dXJuIGRldl9lcnJfcHJvYmUod2R0LT53ZGQucGFyZW50LCByZXQsCisrCQkJCQkgICAgICJ3YXRj aGRvZyBpcyBub3QgcmVhZHkgdG8gY2xlYXIgaW50ZXJydXB0LlxuIik7CisrCX0KKysJd3JpdGVs KFNUQVJGSVZFX1dEVF9JTlRDTFIsIHdkdC0+YmFzZSArIHdkdC0+dmFyaWFudC0+aW50X2Nscik7 CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW5saW5lIHZvaWQgc3RhcmZpdmVfd2R0 X3NldF9jb3VudChzdHJ1Y3Qgc3RhcmZpdmVfd2R0ICp3ZHQsIHUzMiB2YWwpCisreworKwl3cml0 ZWwodmFsLCB3ZHQtPmJhc2UgKyB3ZHQtPnZhcmlhbnQtPmxvYWQpOworK30KKysKKytzdGF0aWMg aW5saW5lIHUzMiBzdGFyZml2ZV93ZHRfZ2V0X2NvdW50KHN0cnVjdCBzdGFyZml2ZV93ZHQgKndk dCkKKyt7CisrCXJldHVybiByZWFkbCh3ZHQtPmJhc2UgKyB3ZHQtPnZhcmlhbnQtPnZhbHVlKTsK Kyt9CisrCisrLyogZW5hYmxlIHdhdGNoZG9nICovCisrc3RhdGljIGlubGluZSB2b2lkIHN0YXJm aXZlX3dkdF9lbmFibGUoc3RydWN0IHN0YXJmaXZlX3dkdCAqd2R0KQorK3sKKysJdTMyIHZhbDsK KysKKysJdmFsID0gcmVhZGwod2R0LT5iYXNlICsgd2R0LT52YXJpYW50LT5lbmFibGUpOworKwl2 YWwgfD0gU1RBUkZJVkVfV0RUX0VOQUJMRSA8PCB3ZHQtPnZhcmlhbnQtPmVuX3NoaWZ0OworKwl3 cml0ZWwodmFsLCB3ZHQtPmJhc2UgKyB3ZHQtPnZhcmlhbnQtPmVuYWJsZSk7CisrfQorKworKy8q IGRpc2FibGUgd2F0Y2hkb2cgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQgc3RhcmZpdmVfd2R0X2Rp c2FibGUoc3RydWN0IHN0YXJmaXZlX3dkdCAqd2R0KQorK3sKKysJdTMyIHZhbDsKKysKKysJdmFs ID0gcmVhZGwod2R0LT5iYXNlICsgd2R0LT52YXJpYW50LT5lbmFibGUpOworKwl2YWwgJj0gfihT VEFSRklWRV9XRFRfRU5BQkxFIDw8IHdkdC0+dmFyaWFudC0+ZW5fc2hpZnQpOworKwl3cml0ZWwo dmFsLCB3ZHQtPmJhc2UgKyB3ZHQtPnZhcmlhbnQtPmVuYWJsZSk7CisrfQorKworK3N0YXRpYyBp bmxpbmUgdm9pZCBzdGFyZml2ZV93ZHRfc2V0X3JlbG9hZF9jb3VudChzdHJ1Y3Qgc3RhcmZpdmVf d2R0ICp3ZHQsIHUzMiBjb3VudCkKKyt7CisrCXN0YXJmaXZlX3dkdF9zZXRfY291bnQod2R0LCBj b3VudCk7CisrCisrCS8qIDcxMDAgbmVlZCBzZXQgYW55IHZhbHVlIHRvIHJlbG9hZCByZWdpc3Rl ciBhbmQgY291bGQgcmVsb2FkIHZhbHVlIHRvIGNvdW50ZXIgKi8KKysJaWYgKHdkdC0+dmFyaWFu dC0+cmVsb2FkKQorKwkJd3JpdGVsKDB4MSwgd2R0LT5iYXNlICsgd2R0LT52YXJpYW50LT5yZWxv YWQpOworK30KKysKKytzdGF0aWMgdW5zaWduZWQgaW50IHN0YXJmaXZlX3dkdF9tYXhfdGltZW91 dChzdHJ1Y3Qgc3RhcmZpdmVfd2R0ICp3ZHQpCisreworKwlpZiAod2R0LT52YXJpYW50LT5kb3Vi bGVfdGltZW91dCkKKysJCXJldHVybiBESVZfUk9VTkRfVVAoU1RBUkZJVkVfV0RUX01BWENOVCwg KHdkdC0+ZnJlcSAvIDIpKSAtIDE7CisrCisrCXJldHVybiBESVZfUk9VTkRfVVAoU1RBUkZJVkVf V0RUX01BWENOVCwgd2R0LT5mcmVxKSAtIDE7CisrfQorKworK3N0YXRpYyB1bnNpZ25lZCBpbnQg c3RhcmZpdmVfd2R0X2dldF90aW1lbGVmdChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQpCisr eworKwlzdHJ1Y3Qgc3RhcmZpdmVfd2R0ICp3ZHQgPSB3YXRjaGRvZ19nZXRfZHJ2ZGF0YSh3ZGQp OworKwl1MzIgY291bnQ7CisrCisrCS8qCisrCSAqIElmIHRoZSB3YXRjaGRvZyB0YWtlcyB0d2lj ZSB0aW1lb3V0IGFuZCBzZXQgaGFsZiBjb3VudCB2YWx1ZSwKKysJICogdGltZWxlZnQgdmFsdWUg c2hvdWxkIGFkZCB0aGUgY291bnQgdmFsdWUgYmVmb3JlIGZpcnN0IHRpbWVvdXQuCisrCSAqLwor Kwljb3VudCA9IHN0YXJmaXZlX3dkdF9nZXRfY291bnQod2R0KTsKKysJaWYgKHdkdC0+dmFyaWFu dC0+ZG91YmxlX3RpbWVvdXQgJiYgIXN0YXJmaXZlX3dkdF9yYWlzZV9pcnFfc3RhdHVzKHdkdCkp CisrCQljb3VudCArPSB3ZHQtPmNvdW50OworKworKwlyZXR1cm4gc3RhcmZpdmVfd2R0X3RpY2tz X3RvX3NlYyh3ZHQsIGNvdW50KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV93ZHRfa2Vl cGFsaXZlKHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCkKKyt7CisrCXN0cnVjdCBzdGFyZml2 ZV93ZHQgKndkdCA9IHdhdGNoZG9nX2dldF9kcnZkYXRhKHdkZCk7CisrCWludCByZXQ7CisrCisr CXN0YXJmaXZlX3dkdF91bmxvY2sod2R0KTsKKysJcmV0ID0gc3RhcmZpdmVfd2R0X2ludF9jbHIo d2R0KTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXhpdDsKKysKKysJc3RhcmZpdmVfd2R0X3NldF9y ZWxvYWRfY291bnQod2R0LCB3ZHQtPmNvdW50KTsKKysKKytleGl0OgorKwkvKiBleGl0IHdpdGgg cmVsZWFzaW5nIHNwaW5sb2NrIGFuZCBsb2NraW5nIHJlZ2lzdGVycyAqLworKwlzdGFyZml2ZV93 ZHRfbG9jayh3ZHQpOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZl X3dkdF9zdGFydChzdHJ1Y3Qgc3RhcmZpdmVfd2R0ICp3ZHQpCisreworKwlpbnQgcmV0OworKwor KwlzdGFyZml2ZV93ZHRfdW5sb2NrKHdkdCk7CisrCS8qIGRpc2FibGUgd2F0Y2hkb2csIHRvIGJl IHNhZmUgKi8KKysJc3RhcmZpdmVfd2R0X2Rpc2FibGUod2R0KTsKKysKKysJc3RhcmZpdmVfd2R0 X2VuYWJsZV9yZXNldCh3ZHQpOworKwlyZXQgPSBzdGFyZml2ZV93ZHRfaW50X2Nscih3ZHQpOwor KwlpZiAocmV0KQorKwkJZ290byBleGl0OworKworKwlzdGFyZml2ZV93ZHRfc2V0X2NvdW50KHdk dCwgd2R0LT5jb3VudCk7CisrCXN0YXJmaXZlX3dkdF9lbmFibGUod2R0KTsKKysKKytleGl0Ogor KwlzdGFyZml2ZV93ZHRfbG9jayh3ZHQpOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMg dm9pZCBzdGFyZml2ZV93ZHRfc3RvcChzdHJ1Y3Qgc3RhcmZpdmVfd2R0ICp3ZHQpCisreworKwlz dGFyZml2ZV93ZHRfdW5sb2NrKHdkdCk7CisrCXN0YXJmaXZlX3dkdF9kaXNhYmxlKHdkdCk7Cisr CXN0YXJmaXZlX3dkdF9sb2NrKHdkdCk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfd2R0 X3BtX3N0YXJ0KHN0cnVjdCB3YXRjaGRvZ19kZXZpY2UgKndkZCkKKyt7CisrCXN0cnVjdCBzdGFy Zml2ZV93ZHQgKndkdCA9IHdhdGNoZG9nX2dldF9kcnZkYXRhKHdkZCk7CisrCWludCByZXQgPSBw bV9ydW50aW1lX2dldF9zeW5jKHdkZC0+cGFyZW50KTsKKysKKysJaWYgKHJldCA8IDApCisrCQly ZXR1cm4gcmV0OworKworKwlyZXR1cm4gc3RhcmZpdmVfd2R0X3N0YXJ0KHdkdCk7CisrfQorKwor K3N0YXRpYyBpbnQgc3RhcmZpdmVfd2R0X3BtX3N0b3Aoc3RydWN0IHdhdGNoZG9nX2RldmljZSAq d2RkKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX3dkdCAqd2R0ID0gd2F0Y2hkb2dfZ2V0X2RydmRh dGEod2RkKTsKKysKKysJc3RhcmZpdmVfd2R0X3N0b3Aod2R0KTsKKysJcmV0dXJuIHBtX3J1bnRp bWVfcHV0X3N5bmMod2RkLT5wYXJlbnQpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3dk dF9zZXRfdGltZW91dChzdHJ1Y3Qgd2F0Y2hkb2dfZGV2aWNlICp3ZGQsCisrCQkJCSAgICB1bnNp Z25lZCBpbnQgdGltZW91dCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCA9IHdhdGNo ZG9nX2dldF9kcnZkYXRhKHdkZCk7CisrCXVuc2lnbmVkIGxvbmcgY291bnQgPSB0aW1lb3V0ICog d2R0LT5mcmVxOworKworKwkvKiBzb21lIHdhdGNoZG9ncyB0YWtlIHR3byB0aW1lb3V0cyB0byBy ZXNldCAqLworKwlpZiAod2R0LT52YXJpYW50LT5kb3VibGVfdGltZW91dCkKKysJCWNvdW50IC89 IDI7CisrCisrCXdkdC0+Y291bnQgPSBjb3VudDsKKysJd2RkLT50aW1lb3V0ID0gdGltZW91dDsK KysKKysJc3RhcmZpdmVfd2R0X3VubG9jayh3ZHQpOworKwlzdGFyZml2ZV93ZHRfZGlzYWJsZSh3 ZHQpOworKwlzdGFyZml2ZV93ZHRfc2V0X3JlbG9hZF9jb3VudCh3ZHQsIHdkdC0+Y291bnQpOwor KwlzdGFyZml2ZV93ZHRfZW5hYmxlKHdkdCk7CisrCXN0YXJmaXZlX3dkdF9sb2NrKHdkdCk7Cisr CisrCXJldHVybiAwOworK30KKysKKysjZGVmaW5lIFNUQVJGSVZFX1dEVF9PUFRJT05TIChXRElP Rl9TRVRUSU1FT1VUIHwgV0RJT0ZfS0VFUEFMSVZFUElORyB8IFdESU9GX01BR0lDQ0xPU0UpCisr Cisrc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19pbmZvIHN0YXJmaXZlX3dkdF9pbmZvID0g eworKwkub3B0aW9ucyA9IFNUQVJGSVZFX1dEVF9PUFRJT05TLAorKwkuaWRlbnRpdHkgPSAiU3Rh ckZpdmUgV2F0Y2hkb2ciLAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB3YXRjaGRvZ19v cHMgc3RhcmZpdmVfd2R0X29wcyA9IHsKKysJLm93bmVyID0gVEhJU19NT0RVTEUsCisrCS5zdGFy dCA9IHN0YXJmaXZlX3dkdF9wbV9zdGFydCwKKysJLnN0b3AgPSBzdGFyZml2ZV93ZHRfcG1fc3Rv cCwKKysJLnBpbmcgPSBzdGFyZml2ZV93ZHRfa2VlcGFsaXZlLAorKwkuc2V0X3RpbWVvdXQgPSBz dGFyZml2ZV93ZHRfc2V0X3RpbWVvdXQsCisrCS5nZXRfdGltZWxlZnQgPSBzdGFyZml2ZV93ZHRf Z2V0X3RpbWVsZWZ0LAorK307CisrCisrc3RhdGljIGludCBzdGFyZml2ZV93ZHRfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV93ZHQgKndk dDsKKysJaW50IHJldDsKKysKKysJd2R0ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVv Zigqd2R0KSwgR0ZQX0tFUk5FTCk7CisrCWlmICghd2R0KQorKwkJcmV0dXJuIC1FTk9NRU07Cisr CisrCXdkdC0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsK KysJaWYgKElTX0VSUih3ZHQtPmJhc2UpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYt PmRldiwgUFRSX0VSUih3ZHQtPmJhc2UpLCAiZXJyb3IgbWFwcGluZyByZWdpc3RlcnNcbiIpOwor KworKwl3ZHQtPndkZC5wYXJlbnQgPSAmcGRldi0+ZGV2OworKwlyZXQgPSBzdGFyZml2ZV93ZHRf Z2V0X2Nsb2NrKHdkdCk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlwbGF0Zm9y bV9zZXRfZHJ2ZGF0YShwZGV2LCB3ZHQpOworKwlwbV9ydW50aW1lX2VuYWJsZSgmcGRldi0+ZGV2 KTsKKysJaWYgKHBtX3J1bnRpbWVfZW5hYmxlZCgmcGRldi0+ZGV2KSkgeworKwkJcmV0ID0gcG1f cnVudGltZV9nZXRfc3luYygmcGRldi0+ZGV2KTsKKysJCWlmIChyZXQgPCAwKQorKwkJCXJldHVy biByZXQ7CisrCX0gZWxzZSB7CisrCQkvKiBydW50aW1lIFBNIGlzIGRpc2FibGVkIGJ1dCBjbG9j a3MgbmVlZCB0byBiZSBlbmFibGVkICovCisrCQlyZXQgPSBzdGFyZml2ZV93ZHRfZW5hYmxlX2Ns b2NrKHdkdCk7CisrCQlpZiAocmV0KQorKwkJCXJldHVybiByZXQ7CisrCX0KKysKKysJcmV0ID0g c3RhcmZpdmVfd2R0X3Jlc2V0X2luaXQoJnBkZXYtPmRldik7CisrCWlmIChyZXQpCisrCQlnb3Rv IGVycl9leGl0OworKworKwl3YXRjaGRvZ19zZXRfZHJ2ZGF0YSgmd2R0LT53ZGQsIHdkdCk7Cisr CXdkdC0+d2RkLmluZm8gPSAmc3RhcmZpdmVfd2R0X2luZm87CisrCXdkdC0+d2RkLm9wcyA9ICZz dGFyZml2ZV93ZHRfb3BzOworKwl3ZHQtPnZhcmlhbnQgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2Rh dGEoJnBkZXYtPmRldik7CisrCXNwaW5fbG9ja19pbml0KCZ3ZHQtPmxvY2spOworKworKwl3ZHQt PmZyZXEgPSBjbGtfZ2V0X3JhdGUod2R0LT5jb3JlX2Nsayk7CisrCWlmICghd2R0LT5mcmVxKSB7 CisrCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJnZXQgY2xvY2sgcmF0ZSBmYWlsZWQuXG4iKTsKKysJ CXJldCA9IC1FSU5WQUw7CisrCQlnb3RvIGVycl9leGl0OworKwl9CisrCisrCXdkdC0+d2RkLm1p bl90aW1lb3V0ID0gMTsKKysJd2R0LT53ZGQubWF4X3RpbWVvdXQgPSBzdGFyZml2ZV93ZHRfbWF4 X3RpbWVvdXQod2R0KTsKKysJd2R0LT53ZGQudGltZW91dCA9IFNUQVJGSVZFX1dEVF9ERUZBVUxU X1RJTUU7CisrCXdhdGNoZG9nX2luaXRfdGltZW91dCgmd2R0LT53ZGQsIGhlYXJ0YmVhdCwgJnBk ZXYtPmRldik7CisrCXN0YXJmaXZlX3dkdF9zZXRfdGltZW91dCgmd2R0LT53ZGQsIHdkdC0+d2Rk LnRpbWVvdXQpOworKworKwl3YXRjaGRvZ19zZXRfbm93YXlvdXQoJndkdC0+d2RkLCBub3dheW91 dCk7CisrCXdhdGNoZG9nX3N0b3Bfb25fcmVib290KCZ3ZHQtPndkZCk7CisrCXdhdGNoZG9nX3N0 b3Bfb25fdW5yZWdpc3Rlcigmd2R0LT53ZGQpOworKworKwlpZiAoZWFybHlfZW5hYmxlKSB7Cisr CQlyZXQgPSBzdGFyZml2ZV93ZHRfc3RhcnQod2R0KTsKKysJCWlmIChyZXQpCisrCQkJZ290byBl cnJfZXhpdDsKKysJCXNldF9iaXQoV0RPR19IV19SVU5OSU5HLCAmd2R0LT53ZGQuc3RhdHVzKTsK KysJfSBlbHNlIHsKKysJCXN0YXJmaXZlX3dkdF9zdG9wKHdkdCk7CisrCX0KKysKKysJcmV0ID0g d2F0Y2hkb2dfcmVnaXN0ZXJfZGV2aWNlKCZ3ZHQtPndkZCk7CisrCWlmIChyZXQpCisrCQlnb3Rv IGVycl9leGl0OworKworKwlpZiAoIWVhcmx5X2VuYWJsZSkKKysJCXJldHVybiBwbV9ydW50aW1l X3B1dF9zeW5jKCZwZGV2LT5kZXYpOworKworKwlyZXR1cm4gMDsKKysKKytlcnJfZXhpdDoKKysJ c3RhcmZpdmVfd2R0X2Rpc2FibGVfY2xvY2sod2R0KTsKKysJcG1fcnVudGltZV9kaXNhYmxlKCZw ZGV2LT5kZXYpOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZl X3dkdF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBz dGFyZml2ZV93ZHQgKndkdCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworKworKwlzdGFy Zml2ZV93ZHRfc3RvcCh3ZHQpOworKwl3YXRjaGRvZ191bnJlZ2lzdGVyX2RldmljZSgmd2R0LT53 ZGQpOworKworKwlpZiAocG1fcnVudGltZV9lbmFibGVkKCZwZGV2LT5kZXYpKQorKwkJcG1fcnVu dGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOworKwllbHNlCisrCQkvKiBkaXNhYmxlIGNsb2NrIHdp dGhvdXQgUE0gKi8KKysJCXN0YXJmaXZlX3dkdF9kaXNhYmxlX2Nsb2NrKHdkdCk7CisrCisrCXJl dHVybiAwOworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV93ZHRfc2h1dGRvd24oc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCA9 IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworKworKwlzdGFyZml2ZV93ZHRfcG1fc3RvcCgm d2R0LT53ZGQpOworK30KKysKKysjaWZkZWYgQ09ORklHX1BNX1NMRUVQCisrc3RhdGljIGludCBz dGFyZml2ZV93ZHRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3Qgc3Rh cmZpdmVfd2R0ICp3ZHQgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJLyogU2F2ZSB3YXRj aGRvZyBzdGF0ZSwgYW5kIHR1cm4gaXQgb2ZmLiAqLworKwl3ZHQtPnJlbG9hZCA9IHN0YXJmaXZl X3dkdF9nZXRfY291bnQod2R0KTsKKysKKysJLyogTm90ZSB0aGF0IFdUQ05UIGRvZXNuJ3QgbmVl ZCB0byBiZSBzYXZlZC4gKi8KKysJc3RhcmZpdmVfd2R0X3N0b3Aod2R0KTsKKysKKysJcmV0dXJu IHBtX3J1bnRpbWVfZm9yY2Vfc3VzcGVuZChkZXYpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJm aXZlX3dkdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IHN0YXJmaXZl X3dkdCAqd2R0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCWludCByZXQ7CisrCisrCXJldCA9 IHBtX3J1bnRpbWVfZm9yY2VfcmVzdW1lKGRldik7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0 OworKworKwlzdGFyZml2ZV93ZHRfdW5sb2NrKHdkdCk7CisrCS8qIFJlc3RvcmUgd2F0Y2hkb2cg c3RhdGUuICovCisrCXN0YXJmaXZlX3dkdF9zZXRfcmVsb2FkX2NvdW50KHdkdCwgd2R0LT5yZWxv YWQpOworKwlzdGFyZml2ZV93ZHRfbG9jayh3ZHQpOworKworKwlyZXR1cm4gc3RhcmZpdmVfd2R0 X3N0YXJ0KHdkdCk7CisrfQorKyNlbmRpZiAvKiBDT05GSUdfUE1fU0xFRVAgKi8KKysKKysjaWZk ZWYgQ09ORklHX1BNCisrc3RhdGljIGludCBzdGFyZml2ZV93ZHRfcnVudGltZV9zdXNwZW5kKHN0 cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV93ZHQgKndkdCA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOworKworKwlzdGFyZml2ZV93ZHRfZGlzYWJsZV9jbG9jayh3ZHQpOwor KworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV93ZHRfcnVudGltZV9y ZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX3dkdCAqd2R0 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCXJldHVybiBzdGFyZml2ZV93ZHRfZW5hYmxl X2Nsb2NrKHdkdCk7CisrfQorKyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KKysKKytzdGF0aWMgY29u c3Qgc3RydWN0IGRldl9wbV9vcHMgc3RhcmZpdmVfd2R0X3BtX29wcyA9IHsKKysJU0VUX1JVTlRJ TUVfUE1fT1BTKHN0YXJmaXZlX3dkdF9ydW50aW1lX3N1c3BlbmQsIHN0YXJmaXZlX3dkdF9ydW50 aW1lX3Jlc3VtZSwgTlVMTCkKKysJU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMoc3RhcmZpdmVfd2R0 X3N1c3BlbmQsIHN0YXJmaXZlX3dkdF9yZXN1bWUpCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV93ZHRfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMDAtd2R0IiwgLmRhdGEgPSAmc3RhcmZpdmVfd2R0X2poNzEwMF92 YXJpYW50IH0sCisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXdkdCIsIC5kYXRh ID0gJnN0YXJmaXZlX3dkdF9qaDcxMTBfdmFyaWFudCB9LAorKwl7IC8qIHNlbnRpbmVsICovIH0K Kyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX3dkdF9tYXRjaCk7CisrCisr c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3RhcmZpdmVfd2R0X2RyaXZlciA9IHsKKysJ LnByb2JlID0gc3RhcmZpdmVfd2R0X3Byb2JlLAorKwkucmVtb3ZlID0gc3RhcmZpdmVfd2R0X3Jl bW92ZSwKKysJLnNodXRkb3duID0gc3RhcmZpdmVfd2R0X3NodXRkb3duLAorKwkuZHJpdmVyID0g eworKwkJLm5hbWUgPSAic3RhcmZpdmUtd2R0IiwKKysJCS5wbSA9ICZzdGFyZml2ZV93ZHRfcG1f b3BzLAorKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKHN0YXJmaXZlX3dkdF9tYXRj aCksCisrCX0sCisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0YXJmaXZlX3dkdF9kcml2 ZXIpOworKworK01PRFVMRV9BVVRIT1IoIlhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVj aC5jb20+Iik7CisrTU9EVUxFX0FVVEhPUigiU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0 ZWNoLmNvbT4iKTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIFdhdGNoZG9nIERldmlj ZSBEcml2ZXIiKTsKKytNT0RVTEVfTElDRU5TRSgiR1BMIik7CistLSAKKzIuNDAuMQorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyNS1yaXNjdi1kdHMtc3RhcmZpdmUt amg3MTAwLUFkZC13YXRjaGRvZy1ub2RlLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwMjUtcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzEwMC1BZGQtd2F0Y2hkb2ctbm9kZS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5hYTkwMTNkM2FhYWJhCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjUtcmlzY3YtZHRz LXN0YXJmaXZlLWpoNzEwMC1BZGQtd2F0Y2hkb2ctbm9kZS5wYXRjaApAQCAtMCwwICsxLDM2IEBA CitGcm9tIDc4NDFlZDkxYWMzMTE4ZGIxMTgyNmM1MDJjYWYxZTdmZjI5OTYwNDEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2gu Y29tPgorRGF0ZTogVHVlLCAxNCBNYXIgMjAyMyAyMToyNDozNyArMDgwMAorU3ViamVjdDogW1BB VENIIDI1Lzg0XSByaXNjdjogZHRzOiBzdGFyZml2ZTogamg3MTAwOiBBZGQgd2F0Y2hkb2cgbm9k ZQorCitBZGQgd2F0Y2hkb2cgbm9kZSBmb3IgdGhlIFN0YXJGaXZlIEpINzEwMCBSSVNDLVYgU29D LgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29t PgorUmV2aWV3ZWQtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxlbWlsLnJlbm5lci5iZXJ0aGlu Z0BjYW5vbmljYWwuY29tPgorLS0tCisgYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcx MDAuZHRzaSB8IDEwICsrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMDAuZHRz aSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTAwLmR0c2kKK2luZGV4IDAwMDQ0 NzQ4MmFjYS4uNDIxODYyMWVhM2I5IDEwMDY0NAorLS0tIGEvYXJjaC9yaXNjdi9ib290L2R0cy9z dGFyZml2ZS9qaDcxMDAuZHRzaQorKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9q aDcxMDAuZHRzaQorQEAgLTIzOCw1ICsyMzgsMTUgQEAgaTJjMzogaTJjQDEyNDYwMDAwIHsKKyAJ CQkjc2l6ZS1jZWxscyA9IDwwPjsKKyAJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworIAkJfTsKKysK KysJCXdhdGNoZG9nQDEyNDgwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEw MC13ZHQiOworKwkJCXJlZyA9IDwweDAgMHgxMjQ4MDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xv Y2tzID0gPCZjbGtnZW4gSkg3MTAwX0NMS19XRFRJTUVSX0FQQj4sCisrCQkJCSA8JmNsa2dlbiBK SDcxMDBfQ0xLX1dEVF9DT1JFPjsKKysJCQljbG9jay1uYW1lcyA9ICJhcGIiLCAiY29yZSI7Cisr CQkJcmVzZXRzID0gPCZyc3RnZW4gSkg3MTAwX1JTVE5fV0RUSU1FUl9BUEI+LAorKwkJCQkgPCZy c3RnZW4gSkg3MTAwX1JTVE5fV0RUPjsKKysJCX07CisgCX07CisgfTsKKy0tIAorMi40MC4xCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDI2LWR0LWJpbmRpbmdzLXRp bWVyLUFkZC10aW1lci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaCBiL3NyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDI2LWR0LWJpbmRpbmdzLXRpbWVyLUFkZC10aW1lci1mb3ItU3RhckZp dmUtSkg3MTEwLVNvQy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAwLi5kOTNmMDBiYWVkYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwMjYtZHQtYmluZGluZ3MtdGltZXItQWRkLXRpbWVyLWZvci1TdGFyRml2ZS1KSDcx MTAtU29DLnBhdGNoCkBAIC0wLDAgKzEsMTE5IEBACitGcm9tIDhlN2Y4ZTEyYjQ2ZDE2OWVjZGY0 NDI0OWRlNmYxZTBjNmExYjg4M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5n eXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogTW9uLCAyMCBNYXIgMjAy MyAyMTo1NDozMSArMDgwMAorU3ViamVjdDogW1BBVENIIDI2Lzg0XSBkdC1iaW5kaW5nczogdGlt ZXI6IEFkZCB0aW1lciBmb3IgU3RhckZpdmUgSkg3MTEwIFNvQworCitBZGQgYmluZGluZ3MgZm9y IHRoZSB0aW1lciBvbiB0aGUgSkg3MTEwIFJJU0MtViBTb0MKK2J5IFN0YXJGaXZlIFRlY2hub2xv Z3kgTHRkLgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRl Y2guY29tPgorUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyenlzenRvZi5rb3ps b3dza2lAbGluYXJvLm9yZz4KKy0tLQorIC4uLi9iaW5kaW5ncy90aW1lci9zdGFyZml2ZSxqaDcx MTAtdGltZXIueWFtbCB8IDk1ICsrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg OTUgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvdGltZXIvc3RhcmZpdmUsamg3MTEwLXRpbWVyLnlhbWwKKworZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1lci9zdGFyZml2ZSxq aDcxMTAtdGltZXIueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90aW1l ci9zdGFyZml2ZSxqaDcxMTAtdGltZXIueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwMDAwMC4uMjRiMzQ2MThmMmM4CistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdGltZXIvc3RhcmZpdmUsamg3MTEwLXRpbWVyLnlh bWwKK0BAIC0wLDAgKzEsOTUgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIu MC1vbmx5IE9SIEJTRC0yLUNsYXVzZSkKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9k ZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3RpbWVyL3N0YXJmaXZlLGpoNzExMC10aW1lci55YW1sIwor KyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIwor KworK3RpdGxlOiBTdGFyRml2ZSBKSDcxMTAgVGltZXIKKyttYWludGFpbmVyczoKKysgIC0gWGlu Z3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKysgIC0gU2FtaW4gR3VvIDxzYW1p bi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKysKKytkZXNjcmlwdGlvbjoKKysgIFRoaXMgdGltZXIg aGFzIGZvdXIgZnJlZS1ydW5uaW5nIDMyIGJpdCBjb3VudGVycyBpbiBTdGFyRml2ZSBKSDcxMTAg U29DLgorKyAgQW5kIGVhY2ggY2hhbm5lbChjb3VudGVyKSB0cmlnZ2VycyBhbiBpbnRlcnJ1cHQg d2hlbiB0aW1lb3V0LiBUaGV5IHN1cHBvcnQKKysgIG9uZS1zaG90IG1vZGUgYW5kIGNvbnRpbnVv dXMtcnVuIG1vZGUuCisrCisrcHJvcGVydGllczoKKysgIGNvbXBhdGlibGU6CisrICAgIGNvbnN0 OiBzdGFyZml2ZSxqaDcxMTAtdGltZXIKKysKKysgIHJlZzoKKysgICAgbWF4SXRlbXM6IDEKKysK KysgIGludGVycnVwdHM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IGNoYW5u ZWwgMAorKyAgICAgIC0gZGVzY3JpcHRpb246IGNoYW5uZWwgMQorKyAgICAgIC0gZGVzY3JpcHRp b246IGNoYW5uZWwgMgorKyAgICAgIC0gZGVzY3JpcHRpb246IGNoYW5uZWwgMworKworKyAgY2xv Y2tzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiB0aW1lciBBUEIKKysgICAg ICAtIGRlc2NyaXB0aW9uOiBjaGFubmVsIDAKKysgICAgICAtIGRlc2NyaXB0aW9uOiBjaGFubmVs IDEKKysgICAgICAtIGRlc2NyaXB0aW9uOiBjaGFubmVsIDIKKysgICAgICAtIGRlc2NyaXB0aW9u OiBjaGFubmVsIDMKKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNv bnN0OiBhcGIKKysgICAgICAtIGNvbnN0OiBjaDAKKysgICAgICAtIGNvbnN0OiBjaDEKKysgICAg ICAtIGNvbnN0OiBjaDIKKysgICAgICAtIGNvbnN0OiBjaDMKKysKKysgIHJlc2V0czoKKysgICAg aXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogdGltZXIgQVBCCisrICAgICAgLSBkZXNjcmlw dGlvbjogY2hhbm5lbCAwCisrICAgICAgLSBkZXNjcmlwdGlvbjogY2hhbm5lbCAxCisrICAgICAg LSBkZXNjcmlwdGlvbjogY2hhbm5lbCAyCisrICAgICAgLSBkZXNjcmlwdGlvbjogY2hhbm5lbCAz CisrCisrICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogYXBiCisr ICAgICAgLSBjb25zdDogY2gwCisrICAgICAgLSBjb25zdDogY2gxCisrICAgICAgLSBjb25zdDog Y2gyCisrICAgICAgLSBjb25zdDogY2gzCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUK KysgIC0gcmVnCisrICAtIGludGVycnVwdHMKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVz CisrICAtIHJlc2V0cworKyAgLSByZXNldC1uYW1lcworKworK2FkZGl0aW9uYWxQcm9wZXJ0aWVz OiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIHRpbWVyQDEzMDUwMDAwIHsKKysg ICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXRpbWVyIjsKKysgICAgICAgIHJl ZyA9IDwweDEzMDUwMDAwIDB4MTAwMDA+OworKyAgICAgICAgaW50ZXJydXB0cyA9IDw2OT4sIDw3 MD4sIDw3MT4gLDw3Mj47CisrICAgICAgICBjbG9ja3MgPSA8JmNsayAxMjQ+LAorKyAgICAgICAg ICAgICAgICAgPCZjbGsgMTI1PiwKKysgICAgICAgICAgICAgICAgIDwmY2xrIDEyNj4sCisrICAg ICAgICAgICAgICAgICA8JmNsayAxMjc+LAorKyAgICAgICAgICAgICAgICAgPCZjbGsgMTI4PjsK KysgICAgICAgIGNsb2NrLW5hbWVzID0gImFwYiIsICJjaDAiLCAiY2gxIiwKKysgICAgICAgICAg ICAgICAgICAgICAgImNoMiIsICJjaDMiOworKyAgICAgICAgcmVzZXRzID0gPCZyc3QgMTE3PiwK KysgICAgICAgICAgICAgICAgIDwmcnN0IDExOD4sCisrICAgICAgICAgICAgICAgICA8JnJzdCAx MTk+LAorKyAgICAgICAgICAgICAgICAgPCZyc3QgMTIwPiwKKysgICAgICAgICAgICAgICAgIDwm cnN0IDEyMT47CisrICAgICAgICByZXNldC1uYW1lcyA9ICJhcGIiLCAiY2gwIiwgImNoMSIsCisr ICAgICAgICAgICAgICAgICAgICAgICJjaDIiLCAiY2gzIjsKKysgICAgfTsKKysKKy0tIAorMi40 MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDI3LWNsb2Nrc291 cmNlLUFkZC1TdGFyRml2ZS10aW1lci1kcml2ZXIucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3Bh dGNoZXMvMDAyNy1jbG9ja3NvdXJjZS1BZGQtU3RhckZpdmUtdGltZXItZHJpdmVyLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjM1MzM5YmY0ZjNkZTMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAyNy1jbG9ja3NvdXJj ZS1BZGQtU3RhckZpdmUtdGltZXItZHJpdmVyLnBhdGNoCkBAIC0wLDAgKzEsNTcyIEBACitGcm9t IGVmMjYwNzliNTNjMTNkYzhmYzNhM2E1NWU3OTFjMWFlMGQxYjExMjggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgor RGF0ZTogTW9uLCAyMCBNYXIgMjAyMyAyMTo1NDozMiArMDgwMAorU3ViamVjdDogW1BBVENIIDI3 Lzg0XSBjbG9ja3NvdXJjZTogQWRkIFN0YXJGaXZlIHRpbWVyIGRyaXZlcgorCitBZGQgdGltZXIg ZHJpdmVyIGZvciB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KKworU2lnbmVkLW9mZi1ieTogWGlu Z3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIE1BSU5UQUlORVJTICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArCisgZHJpdmVycy9jbG9ja3NvdXJjZS9LY29u ZmlnICAgICAgICAgIHwgIDEyICsKKyBkcml2ZXJzL2Nsb2Nrc291cmNlL01ha2VmaWxlICAgICAg ICAgfCAgIDEgKworIGRyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItc3RhcmZpdmUuYyB8IDM5MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysKKyBkcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLXN0 YXJmaXZlLmggfCAgOTYgKysrKysrKworIDUgZmlsZXMgY2hhbmdlZCwgNTA2IGluc2VydGlvbnMo KykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1zdGFyZml2 ZS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItc3RhcmZp dmUuaAorCitkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUworaW5kZXggYjNm ZGVjNTc5YzM5Li5kOGZhNzFjNjA5OWUgMTAwNjQ0CistLS0gYS9NQUlOVEFJTkVSUworKysrIGIv TUFJTlRBSU5FUlMKK0BAIC0xOTk0OCw2ICsxOTk0OCwxMyBAQCBTOglNYWludGFpbmVkCisgVDoJ Z2l0IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Nvbm9y L2xpbnV4LmdpdC8KKyBGOglkcml2ZXJzL3NvYy9zdGFyZml2ZS8KKyAKKytTVEFSRklWRSBUSU1F UiBEUklWRVIKKytNOglTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorK006 CVhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CisrUzoJU3VwcG9ydGVkCisr RjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVyL3N0YXJmaXZlKgorK0Y6 CWRyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItc3RhcmZpdmUqCisrCisgU1RBUkZJVkUgVFJORyBE UklWRVIKKyBNOglKaWEgSmllIEhvIDxqaWFqaWUuaG9Ac3RhcmZpdmV0ZWNoLmNvbT4KKyBTOglT dXBwb3J0ZWQKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL0tjb25maWcgYi9kcml2 ZXJzL2Nsb2Nrc291cmNlL0tjb25maWcKK2luZGV4IDVmYzhmMGU3ZmIzOC4uMzVkYWYwN2Q0ZGI3 IDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnCisrKysgYi9kcml2ZXJz L2Nsb2Nrc291cmNlL0tjb25maWcKK0BAIC02MzAsNiArNjMwLDE4IEBAIGNvbmZpZyBSSVNDVl9U SU1FUgorIAkgIGlzIGFjY2Vzc2VkIHZpYSBib3RoIHRoZSBTQkkgYW5kIHRoZSByZGN5Y2xlIGlu c3RydWN0aW9uLiAgVGhpcyBpcworIAkgIHJlcXVpcmVkIGZvciBhbGwgUklTQy1WIHN5c3RlbXMu CisgCisrY29uZmlnIFNUQVJGSVZFX1RJTUVSCisrCWJvb2wgIlRpbWVyIGZvciB0aGUgU1RBUkZJ VkUgU29DcyIKKysJZGVwZW5kcyBvbiBBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVAorKwlz ZWxlY3QgVElNRVJfT0YKKysJc2VsZWN0IENMS1NSQ19NTUlPCisrCWRlZmF1bHQgQVJDSF9TVEFS RklWRQorKwloZWxwCisrCSAgVGhpcyBlbmFibGVzIHRoZSB0aW1lciBmb3IgU3RhckZpdmUgU29D cy4gT24gUklTQy1WIHBsYXRmb3JtLAorKwkgIHRoZSBzeXN0ZW0gaGFzIHN0YXJ0ZWQgUklTQ1Zf VElNRVIuIEJ1dCB5b3UgY2FuIGFsc28gdXNlIHRoaXMgdGltZXIKKysJICB0byBkbyBhIGxvdCBt b3JlIG9uIFN0YXJGaXZlIFNvQ3MuIFRoaXMgdGltZXIgY2FuIHByb3ZpZGUgaGlnaAorKwkgIHBy ZWNpc2lvbiBhbmQgZm91ciBjaGFubmVscyB0byB1c2UgaW4gSkg3MTEwIFNvQy4KKysKKyBjb25m aWcgQ0xJTlRfVElNRVIKKyAJYm9vbCAiQ0xJTlQgVGltZXIgZm9yIHRoZSBSSVNDLVYgcGxhdGZv cm0iIGlmIENPTVBJTEVfVEVTVAorIAlkZXBlbmRzIG9uIEdFTkVSSUNfU0NIRURfQ0xPQ0sgJiYg UklTQ1YKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nrc291cmNlL01ha2VmaWxlIGIvZHJpdmVy cy9jbG9ja3NvdXJjZS9NYWtlZmlsZQoraW5kZXggNjRhYjU0N2RlOTdiLi4yNzY2OTVkOTVjZGMg MTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsb2Nrc291cmNlL01ha2VmaWxlCisrKysgYi9kcml2ZXJz L2Nsb2Nrc291cmNlL01ha2VmaWxlCitAQCAtODAsNiArODAsNyBAQCBvYmotJChDT05GSUdfSU5H RU5JQ19USU1FUikJCSs9IGluZ2VuaWMtdGltZXIubworIG9iai0kKENPTkZJR19DTEtTUkNfU1Rf TFBDKQkJKz0gY2xrc3JjX3N0X2xwYy5vCisgb2JqLSQoQ09ORklHX1g4Nl9OVU1BQ0hJUCkJCSs9 IG51bWFjaGlwLm8KKyBvYmotJChDT05GSUdfUklTQ1ZfVElNRVIpCQkrPSB0aW1lci1yaXNjdi5v Cisrb2JqLSQoQ09ORklHX1NUQVJGSVZFX1RJTUVSKQkJKz0gdGltZXItc3RhcmZpdmUubworIG9i ai0kKENPTkZJR19DTElOVF9USU1FUikJCSs9IHRpbWVyLWNsaW50Lm8KKyBvYmotJChDT05GSUdf Q1NLWV9NUF9USU1FUikJCSs9IHRpbWVyLW1wLWNza3kubworIG9iai0kKENPTkZJR19HWDY2MDVT X1RJTUVSKQkJKz0gdGltZXItZ3g2NjA1cy5vCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3Nv dXJjZS90aW1lci1zdGFyZml2ZS5jIGIvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1zdGFyZml2 ZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi41MzE2Mzk0OGVk ODYKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItc3RhcmZp dmUuYworQEAgLTAsMCArMSwzOTAgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMAorKy8qCisrICogU3RhcmZpdmUgVGltZXIgZHJpdmVyCisrICoKKysgKiBDb3B5cmlnaHQg KEMpIDIwMjIgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKgorKyAqIEF1dGhvcjoK KysgKiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorKyAqIFNhbWluIEd1 byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4 L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+CisrI2luY2x1ZGUgPGxpbnV4 L2Nsb2Nrc291cmNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorKyNpbmNsdWRlIDxsaW51 eC9pbnRlcnJ1cHQuaD4KKysjaW5jbHVkZSA8bGludXgvaW8uaD4KKysjaW5jbHVkZSA8bGludXgv aW9wb2xsLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorKyNpbmNsdWRlIDxsaW51eC9rZXJu ZWwuaD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mLmg+ CisrI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KKysjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKysjaW5jbHVkZSA8bGludXgv c2NoZWRfY2xvY2suaD4KKysKKysjaW5jbHVkZSAidGltZXItc3RhcmZpdmUuaCIKKysKKytzdGF0 aWMgY29uc3Qgc3RydWN0IHN0YXJmaXZlX3RpbWVyX2NoYW5fYmFzZSBzdGFyZml2ZV90aW1lcl9q aDcxMTBfYmFzZSA9IHsKKysJLmN0cmwJCT0gU1RBUkZJVkVfVElNRVJfSkg3MTEwX0NUTCwKKysJ LmxvYWQJCT0gU1RBUkZJVkVfVElNRVJfSkg3MTEwX0xPQUQsCisrCS5lbmFibGUJCT0gU1RBUkZJ VkVfVElNRVJfSkg3MTEwX0VOQUJMRSwKKysJLnJlbG9hZAkJPSBTVEFSRklWRV9USU1FUl9KSDcx MTBfUkVMT0FELAorKwkudmFsdWUJCT0gU1RBUkZJVkVfVElNRVJfSkg3MTEwX1ZBTFVFLAorKwku aW50Y2xyCQk9IFNUQVJGSVZFX1RJTUVSX0pINzExMF9JTlRfQ0xSLAorKwkuaW50bWFzawk9IFNU QVJGSVZFX1RJTUVSX0pINzExMF9JTlRfTUFTSywKKysJLmNoYW5uZWxfbnVtCT0gU1RBUkZJVkVf VElNRVJfQ0hfNCwKKysJLmNoYW5uZWxfYmFzZQk9IHtTVEFSRklWRV9USU1FUl9DSF9CQVNFKDAp LCBTVEFSRklWRV9USU1FUl9DSF9CQVNFKDEpLAorKwkJCSAgIFNUQVJGSVZFX1RJTUVSX0NIX0JB U0UoMiksIFNUQVJGSVZFX1RJTUVSX0NIX0JBU0UoMyl9LAorK307CisrCisrc3RhdGljIGlubGlu ZSBzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICp0b19zdGFyZml2ZV9jbGtldnQoc3RydWN0IGNsb2Nr X2V2ZW50X2RldmljZSAqZXZ0KQorK3sKKysJcmV0dXJuIGNvbnRhaW5lcl9vZihldnQsIHN0cnVj dCBzdGFyZml2ZV9jbGtldnQsIGV2dCk7CisrfQorKworKy8qIDA6Y29udGludW91cy1ydW4gbW9k ZSwgMTpzaW5nbGUtcnVuIG1vZGUgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQgc3RhcmZpdmVfdGlt ZXJfc2V0X21vZChzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICpjbGtldnQsIGludCBtb2QpCisrewor Kwl3cml0ZWwobW9kLCBjbGtldnQtPmN0cmwpOworK30KKysKKysvKiBJbnRlcnJ1cHQgTWFzayBS ZWdpc3RlciwgMDpVbm1hc2ssIDE6TWFzayAqLworK3N0YXRpYyBpbmxpbmUgdm9pZCBzdGFyZml2 ZV90aW1lcl9pbnRfZW5hYmxlKHN0cnVjdCBzdGFyZml2ZV9jbGtldnQgKmNsa2V2dCkKKyt7Cisr CXdyaXRlbChTVEFSRklWRV9USU1FUl9JTlRNQVNLX0RJUywgY2xrZXZ0LT5pbnRtYXNrKTsKKyt9 CisrCisrc3RhdGljIGlubGluZSB2b2lkIHN0YXJmaXZlX3RpbWVyX2ludF9kaXNhYmxlKHN0cnVj dCBzdGFyZml2ZV9jbGtldnQgKmNsa2V2dCkKKyt7CisrCXdyaXRlbChTVEFSRklWRV9USU1FUl9J TlRNQVNLX0VOQSwgY2xrZXZ0LT5pbnRtYXNrKTsKKyt9CisrCisrLyoKKysgKiBCSVQoMCk6IFJl YWQgdmFsdWUgcmVwcmVzZW50IGNoYW5uZWwgaW50ciBzdGF0dXMuCisrICogV3JpdGUgMSB0byB0 aGlzIGJpdCB0byBjbGVhciBpbnRlcnJ1cHQuIFdyaXRlIDAgaGFzIG5vIGVmZmVjdHMuCisrICog QklUKDEpOiAiMSIgbWVhbnMgdGhhdCBpdCBpcyBjbGVhcmluZyBpbnRlcnJ1cHQuIEJJVCgwKSBj YW4gbm90IGJlIHdyaXR0ZW4uCisrICovCisrc3RhdGljIGlubGluZSBpbnQgc3RhcmZpdmVfdGlt ZXJfaW50X2NsZWFyKHN0cnVjdCBzdGFyZml2ZV9jbGtldnQgKmNsa2V2dCkKKyt7CisrCXUzMiB2 YWx1ZTsKKysJaW50IHJldDsKKysKKysJLyogd2FpdGluZyBpbnRlcnJ1cHQgY2FuIGJlIHRvIGNs ZWFyaW5nICovCisrCXJldCA9IHJlYWRsX3BvbGxfdGltZW91dF9hdG9taWMoY2xrZXZ0LT5pbnRj bHIsIHZhbHVlLAorKwkJCQkJISh2YWx1ZSAmIFNUQVJGSVZFX1RJTUVSX0pINzExMF9JTlRfQ0xS X0FWQV9NQVNLKSwKKysJCQkJCVNUQVJGSVZFX0RFTEFZX1VTLCBTVEFSRklWRV9USU1FT1VUX1VT KTsKKysJaWYgKCFyZXQpCisrCQl3cml0ZWwoMHgxLCBjbGtldnQtPmludGNscik7CisrCisrCXJl dHVybiByZXQ7CisrfQorKworKy8qCisrICogVGhlIGluaXRpYWwgdmFsdWUgdG8gYmUgbG9hZGVk IGludG8gdGhlCisrICogY291bnRlciBhbmQgaXMgYWxzbyB1c2VkIGFzIHRoZSByZWxvYWQgdmFs dWUuCisrICogdmFsID0gY2xvY2sgcmF0ZSAtLT4gMXMKKysgKi8KKytzdGF0aWMgaW5saW5lIHZv aWQgc3RhcmZpdmVfdGltZXJfc2V0X2xvYWQoc3RydWN0IHN0YXJmaXZlX2Nsa2V2dCAqY2xrZXZ0 LCB1MzIgdmFsKQorK3sKKysJd3JpdGVsKHZhbCwgY2xrZXZ0LT5sb2FkKTsKKyt9CisrCisrc3Rh dGljIGlubGluZSB1MzIgc3RhcmZpdmVfdGltZXJfZ2V0X3ZhbChzdHJ1Y3Qgc3RhcmZpdmVfY2xr ZXZ0ICpjbGtldnQpCisreworKwlyZXR1cm4gcmVhZGwoY2xrZXZ0LT52YWx1ZSk7CisrfQorKwor Ky8qCisrICogV3JpdGUgUkVMT0FEIHJlZ2lzdGVyIHRvIHJlbG9hZCBwcmVzZXQgdmFsdWUgdG8g Y291bnRlci4KKysgKiAoV3JpdGUgMCBhbmQgd3JpdGUgMSBhcmUgYm90aCBvaykKKysgKi8KKytz dGF0aWMgaW5saW5lIHZvaWQgc3RhcmZpdmVfdGltZXJfc2V0X3JlbG9hZChzdHJ1Y3Qgc3RhcmZp dmVfY2xrZXZ0ICpjbGtldnQpCisreworKwl3cml0ZWwoMCwgY2xrZXZ0LT5yZWxvYWQpOworK30K KysKKytzdGF0aWMgaW5saW5lIHZvaWQgc3RhcmZpdmVfdGltZXJfZW5hYmxlKHN0cnVjdCBzdGFy Zml2ZV9jbGtldnQgKmNsa2V2dCkKKyt7CisrCXdyaXRlbChTVEFSRklWRV9USU1FUl9FTkEsIGNs a2V2dC0+ZW5hYmxlKTsKKyt9CisrCisrc3RhdGljIGlubGluZSB2b2lkIHN0YXJmaXZlX3RpbWVy X2Rpc2FibGUoc3RydWN0IHN0YXJmaXZlX2Nsa2V2dCAqY2xrZXZ0KQorK3sKKysJd3JpdGVsKFNU QVJGSVZFX1RJTUVSX0RJUywgY2xrZXZ0LT5lbmFibGUpOworK30KKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX3RpbWVyX2ludF9pbml0X2VuYWJsZShzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICpjbGtl dnQpCisreworKwlpbnQgcmV0OworKworKwlzdGFyZml2ZV90aW1lcl9pbnRfZGlzYWJsZShjbGtl dnQpOworKwlyZXQgPSBzdGFyZml2ZV90aW1lcl9pbnRfY2xlYXIoY2xrZXZ0KTsKKysJaWYgKHJl dCkKKysJCXJldHVybiByZXQ7CisrCisrCXN0YXJmaXZlX3RpbWVyX2ludF9lbmFibGUoY2xrZXZ0 KTsKKysJc3RhcmZpdmVfdGltZXJfZW5hYmxlKGNsa2V2dCk7CisrCisrCXJldHVybiAwOworK30K KysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3RpbWVyX3NodXRkb3duKHN0cnVjdCBjbG9ja19ldmVu dF9kZXZpY2UgKmV2dCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jbGtldnQgKmNsa2V2dCA9IHRv X3N0YXJmaXZlX2Nsa2V2dChldnQpOworKworKwlzdGFyZml2ZV90aW1lcl9kaXNhYmxlKGNsa2V2 dCk7CisrCXJldHVybiBzdGFyZml2ZV90aW1lcl9pbnRfY2xlYXIoY2xrZXZ0KTsKKyt9CisrCisr c3RhdGljIHZvaWQgc3RhcmZpdmVfdGltZXJfc3VzcGVuZChzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2 aWNlICpldnQpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICpjbGtldnQgPSB0b19zdGFy Zml2ZV9jbGtldnQoZXZ0KTsKKysKKysJY2xrZXZ0LT5yZWxvYWRfdmFsID0gc3RhcmZpdmVfdGlt ZXJfZ2V0X3ZhbChjbGtldnQpOworKwlzdGFyZml2ZV90aW1lcl9zaHV0ZG93bihldnQpOworK30K KysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV90aW1lcl9yZXN1bWUoc3RydWN0IGNsb2NrX2V2ZW50 X2RldmljZSAqZXZ0KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2Nsa2V2dCAqY2xrZXZ0ID0gdG9f c3RhcmZpdmVfY2xrZXZ0KGV2dCk7CisrCisrCXN0YXJmaXZlX3RpbWVyX3NldF9sb2FkKGNsa2V2 dCwgY2xrZXZ0LT5yZWxvYWRfdmFsKTsKKysJc3RhcmZpdmVfdGltZXJfc2V0X3JlbG9hZChjbGtl dnQpOworKwlzdGFyZml2ZV90aW1lcl9pbnRfZW5hYmxlKGNsa2V2dCk7CisrCXN0YXJmaXZlX3Rp bWVyX2VuYWJsZShjbGtldnQpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3RpbWVyX3Rp Y2tfcmVzdW1lKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKKyt7CisrCXN0YXJmaXZl X3RpbWVyX3Jlc3VtZShldnQpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBz dGFyZml2ZV9jbG9ja3NvdXJjZV9pbml0KHN0cnVjdCBzdGFyZml2ZV9jbGtldnQgKmNsa2V2dCkK Kyt7CisrCWludCByZXQ7CisrCisrCXN0YXJmaXZlX3RpbWVyX3NldF9tb2QoY2xrZXZ0LCBTVEFS RklWRV9USU1FUl9NT0RfQ09OVElOKTsKKysJc3RhcmZpdmVfdGltZXJfc2V0X2xvYWQoY2xrZXZ0 LCBTVEFSRklWRV9USU1FUl9NQVhfVElDS1MpOworKwlyZXQgPSBzdGFyZml2ZV90aW1lcl9pbnRf aW5pdF9lbmFibGUoY2xrZXZ0KTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCXJl dHVybiBjbG9ja3NvdXJjZV9tbWlvX2luaXQoY2xrZXZ0LT52YWx1ZSwgY2xrZXZ0LT5uYW1lLCBj bGtldnQtPnJhdGUsCisrCQkJCSAgICAgU1RBUkZJVkVfQ0xPQ0tfU09VUkNFX1JBVElORywgU1RB UkZJVkVfVkFMSURfQklUUywKKysJCQkJICAgICBjbG9ja3NvdXJjZV9tbWlvX3JlYWRsX2Rvd24p OworK30KKysKKysvKiBJUlEgaGFuZGxlciBmb3IgdGhlIHRpbWVyICovCisrc3RhdGljIGlycXJl dHVybl90IHN0YXJmaXZlX3RpbWVyX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpwcml2KQorK3sK KysJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0ID0gKHN0cnVjdCBjbG9ja19ldmVudF9k ZXZpY2UgKilwcml2OworKwlzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICpjbGtldnQgPSB0b19zdGFy Zml2ZV9jbGtldnQoZXZ0KTsKKysKKysJaWYgKHN0YXJmaXZlX3RpbWVyX2ludF9jbGVhcihjbGtl dnQpKQorKwkJcmV0dXJuIElSUV9OT05FOworKworKwlpZiAoZXZ0LT5ldmVudF9oYW5kbGVyKQor KwkJZXZ0LT5ldmVudF9oYW5kbGVyKGV2dCk7CisrCisrCXJldHVybiBJUlFfSEFORExFRDsKKyt9 CisrCisrc3RhdGljIGludCBzdGFyZml2ZV90aW1lcl9zZXRfcGVyaW9kaWMoc3RydWN0IGNsb2Nr X2V2ZW50X2RldmljZSAqZXZ0KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2Nsa2V2dCAqY2xrZXZ0 ID0gdG9fc3RhcmZpdmVfY2xrZXZ0KGV2dCk7CisrCisrCXN0YXJmaXZlX3RpbWVyX2Rpc2FibGUo Y2xrZXZ0KTsKKysJc3RhcmZpdmVfdGltZXJfc2V0X21vZChjbGtldnQsIFNUQVJGSVZFX1RJTUVS X01PRF9DT05USU4pOworKwlzdGFyZml2ZV90aW1lcl9zZXRfbG9hZChjbGtldnQsIGNsa2V2dC0+ cGVyaW9kaWMpOworKworKwlyZXR1cm4gc3RhcmZpdmVfdGltZXJfaW50X2luaXRfZW5hYmxlKGNs a2V2dCk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfdGltZXJfc2V0X29uZXNob3Qoc3Ry dWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2Nsa2V2 dCAqY2xrZXZ0ID0gdG9fc3RhcmZpdmVfY2xrZXZ0KGV2dCk7CisrCisrCXN0YXJmaXZlX3RpbWVy X2Rpc2FibGUoY2xrZXZ0KTsKKysJc3RhcmZpdmVfdGltZXJfc2V0X21vZChjbGtldnQsIFNUQVJG SVZFX1RJTUVSX01PRF9TSU5HTEUpOworKwlzdGFyZml2ZV90aW1lcl9zZXRfbG9hZChjbGtldnQs IFNUQVJGSVZFX1RJTUVSX01BWF9USUNLUyk7CisrCisrCXJldHVybiBzdGFyZml2ZV90aW1lcl9p bnRfaW5pdF9lbmFibGUoY2xrZXZ0KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV90aW1l cl9zZXRfbmV4dF9ldmVudCh1bnNpZ25lZCBsb25nIG5leHQsCisrCQkJCQkgc3RydWN0IGNsb2Nr X2V2ZW50X2RldmljZSAqZXZ0KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2Nsa2V2dCAqY2xrZXZ0 ID0gdG9fc3RhcmZpdmVfY2xrZXZ0KGV2dCk7CisrCisrCXN0YXJmaXZlX3RpbWVyX2Rpc2FibGUo Y2xrZXZ0KTsKKysJc3RhcmZpdmVfdGltZXJfc2V0X21vZChjbGtldnQsIFNUQVJGSVZFX1RJTUVS X01PRF9TSU5HTEUpOworKwlzdGFyZml2ZV90aW1lcl9zZXRfbG9hZChjbGtldnQsIG5leHQpOwor KwlzdGFyZml2ZV90aW1lcl9lbmFibGUoY2xrZXZ0KTsKKysKKysJcmV0dXJuIDA7CisrfQorKwor K3N0YXRpYyB2b2lkIHN0YXJmaXZlX3NldF9jbG9ja2V2ZW50KHN0cnVjdCBjbG9ja19ldmVudF9k ZXZpY2UgKmV2dCkKKyt7CisrCWV2dC0+ZmVhdHVyZXMgPSBDTE9DS19FVlRfRkVBVF9QRVJJT0RJ QyB8CisrCQkJQ0xPQ0tfRVZUX0ZFQVRfT05FU0hPVCB8CisrCQkJQ0xPQ0tfRVZUX0ZFQVRfRFlO SVJROworKwlldnQtPnNldF9zdGF0ZV9zaHV0ZG93biA9IHN0YXJmaXZlX3RpbWVyX3NodXRkb3du OworKwlldnQtPnNldF9zdGF0ZV9wZXJpb2RpYyA9IHN0YXJmaXZlX3RpbWVyX3NldF9wZXJpb2Rp YzsKKysJZXZ0LT5zZXRfc3RhdGVfb25lc2hvdCA9IHN0YXJmaXZlX3RpbWVyX3NldF9vbmVzaG90 OworKwlldnQtPnNldF9zdGF0ZV9vbmVzaG90X3N0b3BwZWQgPSBzdGFyZml2ZV90aW1lcl9zaHV0 ZG93bjsKKysJZXZ0LT50aWNrX3Jlc3VtZSA9IHN0YXJmaXZlX3RpbWVyX3RpY2tfcmVzdW1lOwor KwlldnQtPnNldF9uZXh0X2V2ZW50ID0gc3RhcmZpdmVfdGltZXJfc2V0X25leHRfZXZlbnQ7Cisr CWV2dC0+c3VzcGVuZCA9IHN0YXJmaXZlX3RpbWVyX3N1c3BlbmQ7CisrCWV2dC0+cmVzdW1lID0g c3RhcmZpdmVfdGltZXJfcmVzdW1lOworKwlldnQtPnJhdGluZyA9IFNUQVJGSVZFX0NMT0NLRVZF TlRfUkFUSU5HOworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9jbG9ja2V2ZW50c19yZWdp c3RlcihzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICpjbGtldnQpCisreworKwljbGtldnQtPnJhdGUg PSBjbGtfZ2V0X3JhdGUoY2xrZXZ0LT5jbGspOworKwljbGtldnQtPnBlcmlvZGljID0gRElWX1JP VU5EX0NMT1NFU1QoY2xrZXZ0LT5yYXRlLCBIWik7CisrCisrCXN0YXJmaXZlX3NldF9jbG9ja2V2 ZW50KCZjbGtldnQtPmV2dCk7CisrCWNsa2V2dC0+ZXZ0Lm5hbWUgPSBjbGtldnQtPm5hbWU7Cisr CWNsa2V2dC0+ZXZ0LmlycSA9IGNsa2V2dC0+aXJxOworKwljbGtldnQtPmV2dC5jcHVtYXNrID0g Y3B1X3Bvc3NpYmxlX21hc2s7CisrCisrCWNsb2NrZXZlbnRzX2NvbmZpZ19hbmRfcmVnaXN0ZXIo JmNsa2V2dC0+ZXZ0LCBjbGtldnQtPnJhdGUsCisrCQkJCQlTVEFSRklWRV9USU1FUl9NSU5fVElD S1MsIFNUQVJGSVZFX1RJTUVSX01BWF9USUNLUyk7CisrfQorKworK3N0YXRpYyB2b2lkIF9faW5p dCBzdGFyZml2ZV9jbGtldnRfYmFzZV9pbml0KGNvbnN0IHN0cnVjdCBzdGFyZml2ZV90aW1lcl9j aGFuX2Jhc2UgKnRpbWVyLAorKwkJCQkJICAgICBzdHJ1Y3Qgc3RhcmZpdmVfY2xrZXZ0ICpjbGtl dnQsCisrCQkJCQkgICAgIHZvaWQgX19pb21lbSAqYmFzZSwgaW50IGNoKQorK3sKKysJdm9pZCBf X2lvbWVtICpjaGFubmVsX2Jhc2U7CisrCisrCWNoYW5uZWxfYmFzZSA9IGJhc2UgKyB0aW1lci0+ Y2hhbm5lbF9iYXNlW2NoXTsKKysJY2xrZXZ0LT5iYXNlID0gY2hhbm5lbF9iYXNlOworKwljbGtl dnQtPmN0cmwgPSBjaGFubmVsX2Jhc2UgKyB0aW1lci0+Y3RybDsKKysJY2xrZXZ0LT5sb2FkID0g Y2hhbm5lbF9iYXNlICsgdGltZXItPmxvYWQ7CisrCWNsa2V2dC0+ZW5hYmxlID0gY2hhbm5lbF9i YXNlICsgdGltZXItPmVuYWJsZTsKKysJY2xrZXZ0LT5yZWxvYWQgPSBjaGFubmVsX2Jhc2UgKyB0 aW1lci0+cmVsb2FkOworKwljbGtldnQtPnZhbHVlID0gY2hhbm5lbF9iYXNlICsgdGltZXItPnZh bHVlOworKwljbGtldnQtPmludGNsciA9IGNoYW5uZWxfYmFzZSArIHRpbWVyLT5pbnRjbHI7Cisr CWNsa2V2dC0+aW50bWFzayA9IGNoYW5uZWxfYmFzZSArIHRpbWVyLT5pbnRtYXNrOworK30KKysK KytzdGF0aWMgaW50IF9faW5pdCBzdGFyZml2ZV90aW1lcl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQorK3sKKysJY29uc3Qgc3RydWN0IHN0YXJmaXZlX3RpbWVyX2NoYW5fYmFz ZSAqdGltZXJfYmFzZSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKKysJ Y2hhciBuYW1lWzEwXTsKKysJc3RydWN0IHN0YXJmaXZlX3RpbWVyX3ByaXYgKnByaXY7CisrCXN0 cnVjdCBzdGFyZml2ZV9jbGtldnQgKmNsa2V2dDsKKysJc3RydWN0IGNsayAqcGNsazsKKysJc3Ry dWN0IHJlc2V0X2NvbnRyb2wgKnJzdDsKKysJaW50IGNoOworKwlpbnQgcmV0OworKworKwlwcml2 ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHN0cnVjdF9zaXplKHByaXYsIGNsa2V2dCwgdGlt ZXJfYmFzZS0+Y2hhbm5lbF9udW0pLAorKwkJCSAgICBHRlBfS0VSTkVMKTsKKysJaWYgKCFwcml2 KQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCXByaXYtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lv cmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CisrCWlmIChJU19FUlIocHJpdi0+YmFzZSkpCisrCQly ZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKHByaXYtPmJhc2UpLAorKwkJ CQkgICAgICJmYWlsZWQgdG8gbWFwIHJlZ2lzdGVyc1xuIik7CisrCisrCXJzdCA9IGRldm1fcmVz ZXRfY29udHJvbF9nZXRfZXhjbHVzaXZlKCZwZGV2LT5kZXYsICJhcGIiKTsKKysJaWYgKElTX0VS Uihyc3QpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihyc3Qp LCAiZmFpbGVkIHRvIGdldCBhcGIgcmVzZXRcbiIpOworKworKwlwY2xrID0gZGV2bV9jbGtfZ2V0 X2VuYWJsZWQoJnBkZXYtPmRldiwgImFwYiIpOworKwlpZiAoSVNfRVJSKHBjbGspKQorKwkJcmV0 dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihwY2xrKSwKKysJCQkJICAgICAi ZmFpbGVkIHRvIGdldCAmIGVuYWJsZSBhcGIgY2xvY2tcbiIpOworKworKwlyZXQgPSByZXNldF9j b250cm9sX2RlYXNzZXJ0KHJzdCk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycjsKKysKKysJcHJp di0+ZGV2ID0gJnBkZXYtPmRldjsKKysJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7 CisrCisrCWZvciAoY2ggPSAwOyBjaCA8IHRpbWVyX2Jhc2UtPmNoYW5uZWxfbnVtOyBjaCsrKSB7 CisrCQljbGtldnQgPSAmcHJpdi0+Y2xrZXZ0W2NoXTsKKysJCXNucHJpbnRmKG5hbWUsIHNpemVv ZihuYW1lKSwgImNoJWQiLCBjaCk7CisrCisrCQlzdGFyZml2ZV9jbGtldnRfYmFzZV9pbml0KHRp bWVyX2Jhc2UsIGNsa2V2dCwgcHJpdi0+YmFzZSwgY2gpOworKwkJLyogRW5zdXJlIHRpbWVycyBh cmUgZGlzYWJsZWQgKi8KKysJCXN0YXJmaXZlX3RpbWVyX2Rpc2FibGUoY2xrZXZ0KTsKKysKKysJ CXJzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfZXhjbHVzaXZlKCZwZGV2LT5kZXYsIG5hbWUp OworKwkJaWYgKElTX0VSUihyc3QpKSB7CisrCQkJcmV0ID0gUFRSX0VSUihyc3QpOworKwkJCWdv dG8gZXJyOworKwkJfQorKworKwkJY2xrZXZ0LT5jbGsgPSBkZXZtX2Nsa19nZXRfZW5hYmxlZCgm cGRldi0+ZGV2LCBuYW1lKTsKKysJCWlmIChJU19FUlIoY2xrZXZ0LT5jbGspKSB7CisrCQkJcmV0 ID0gUFRSX0VSUihjbGtldnQtPmNsayk7CisrCQkJZ290byBlcnI7CisrCQl9CisrCisrCQlyZXQg PSByZXNldF9jb250cm9sX2RlYXNzZXJ0KHJzdCk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8gY2hf ZXJyOworKworKwkJY2xrZXZ0LT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIGNoKTsKKysJ CWlmIChjbGtldnQtPmlycSA8IDApIHsKKysJCQlyZXQgPSBjbGtldnQtPmlycTsKKysJCQlnb3Rv IGNoX2VycjsKKysJCX0KKysKKysJCXNucHJpbnRmKGNsa2V2dC0+bmFtZSwgc2l6ZW9mKGNsa2V2 dC0+bmFtZSksICIlcy5jaCVkIiwgcGRldi0+bmFtZSwgY2gpOworKwkJc3RhcmZpdmVfY2xvY2tl dmVudHNfcmVnaXN0ZXIoY2xrZXZ0KTsKKysKKysJCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBk ZXYtPmRldiwgY2xrZXZ0LT5pcnEsIHN0YXJmaXZlX3RpbWVyX2ludGVycnVwdCwKKysJCQkJICAg ICAgIElSUUZfVElNRVIgfCBJUlFGX0lSUVBPTEwsCisrCQkJCSAgICAgICBjbGtldnQtPm5hbWUs ICZjbGtldnQtPmV2dCk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8gY2hfZXJyOworKworKwkJcmV0 ID0gc3RhcmZpdmVfY2xvY2tzb3VyY2VfaW5pdChjbGtldnQpOworKwkJaWYgKHJldCkKKysJCQln b3RvIGNoX2VycjsKKysJfQorKworKwlyZXR1cm4gMDsKKysKKytjaF9lcnI6CisrCS8qIE9ubHkg dW5yZWdpc3RlciB0aGUgZmFpbGVkIGNoYW5uZWwgYW5kIHRoZSByZXN0IHRpbWVyIGNoYW5uZWxz IGNvbnRpbnVlIHRvIHdvcmsuICovCisrCWNsa19kaXNhYmxlX3VucHJlcGFyZShjbGtldnQtPmNs ayk7CisrZXJyOgorKwkvKiBJZiBubyBvdGhlciBjaGFubmVsIHN1Y2Nlc3NmdWxseSByZWdpc3Rl cnMsIHBjbGsgc2hvdWxkIGJlIGRpc2FibGVkLiAqLworKwlpZiAoIWNoKQorKwkJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKHBjbGspOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV90aW1lcl9tYXRjaFtdID0geworKwl7IC5j b21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC10aW1lciIsIC5kYXRhID0gJnN0YXJmaXZlX3Rp bWVyX2poNzExMF9iYXNlIH0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307CisrTU9EVUxFX0RF VklDRV9UQUJMRShvZiwgc3RhcmZpdmVfdGltZXJfbWF0Y2gpOworKworK3N0YXRpYyBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIHN0YXJmaXZlX3RpbWVyX2RyaXZlciA9IHsKKysJLnByb2JlID0gc3Rh cmZpdmVfdGltZXJfcHJvYmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJzdGFyZml2ZS10 aW1lciIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBzdGFyZml2ZV90aW1lcl9tYXRjaCwKKysJfSwK Kyt9OworK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoc3RhcmZpdmVfdGltZXJfZHJpdmVyKTsKKysK KytNT0RVTEVfQVVUSE9SKCJYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPiIp OworK01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgdGltZXIgZHJpdmVyIik7CisrTU9EVUxF X0xJQ0VOU0UoIkdQTCIpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXIt c3RhcmZpdmUuaCBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItc3RhcmZpdmUuaAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNjJlYjYzMGNjOThkCistLS0gL2Rl di9udWxsCisrKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLXN0YXJmaXZlLmgKK0BAIC0w LDAgKzEsOTYgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworKy8q CisrICogQ29weXJpZ2h0IChDKSAyMDIyIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisr ICovCisrCisrI2lmbmRlZiBfX1NUQVJGSVZFX1RJTUVSX0hfXworKyNkZWZpbmUgX19TVEFSRklW RV9USU1FUl9IX18KKysKKysvKiBCaWFzOiBDaDAtMHgwLCBDaDEtMHg0MCwgQ2gyLTB4ODAsIGFu ZCBzbyBvbi4gKi8KKysjZGVmaW5lIFNUQVJGSVZFX1RJTUVSX0NIX0xFTgkJCTB4NDAKKysjZGVm aW5lIFNUQVJGSVZFX1RJTUVSX0NIX0JBU0UoeCkJCSgoU1RBUkZJVkVfVElNRVJfQ0hfIyN4KSAq IFNUQVJGSVZFX1RJTUVSX0NIX0xFTikKKysKKysjZGVmaW5lIFNUQVJGSVZFX0NMT0NLX1NPVVJD RV9SQVRJTkcJCTIwMAorKyNkZWZpbmUgU1RBUkZJVkVfVkFMSURfQklUUwkJCTMyCisrI2RlZmlu ZSBTVEFSRklWRV9ERUxBWV9VUwkJCTAKKysjZGVmaW5lIFNUQVJGSVZFX1RJTUVPVVRfVVMJCQkx MDAwMAorKyNkZWZpbmUgU1RBUkZJVkVfQ0xPQ0tFVkVOVF9SQVRJTkcJCTMwMAorKyNkZWZpbmUg U1RBUkZJVkVfVElNRVJfTUFYX1RJQ0tTCQkweGZmZmZmZmZmCisrI2RlZmluZSBTVEFSRklWRV9U SU1FUl9NSU5fVElDS1MJCTB4ZgorKworKyNkZWZpbmUgU1RBUkZJVkVfVElNRVJfSkg3MTEwX0lO VF9TVEFUVVMJMHgwMCAvKiBST1swOjRdOiBJbnRlcnJ1cHQgU3RhdHVzIGZvciBjaGFubmVsMH40 ICovCisrI2RlZmluZSBTVEFSRklWRV9USU1FUl9KSDcxMTBfQ1RMCQkweDA0IC8qIFJXWzBdOiAw LWNvbnRpbnVvdXMgcnVuLCAxLXNpbmdsZSBydW4gKi8KKysjZGVmaW5lIFNUQVJGSVZFX1RJTUVS X0pINzExMF9MT0FECQkweDA4IC8qIFJXOiBsb2FkIHZhbHVlIHRvIGNvdW50ZXIgKi8KKysjZGVm aW5lIFNUQVJGSVZFX1RJTUVSX0pINzExMF9FTkFCTEUJCTB4MTAgLyogUldbMF06IHRpbWVyIGVu YWJsZSByZWdpc3RlciAqLworKyNkZWZpbmUgU1RBUkZJVkVfVElNRVJfSkg3MTEwX1JFTE9BRAkJ MHgxNCAvKiBSVzogd3JpdGUgMSBvciAwIGJvdGggcmVsb2FkIGNvdW50ZXIgKi8KKysjZGVmaW5l IFNUQVJGSVZFX1RJTUVSX0pINzExMF9WQUxVRQkJMHgxOCAvKiBSTzogdGltZXIgdmFsdWUgcmVn aXN0ZXIgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1RJTUVSX0pINzExMF9JTlRfQ0xSCQkweDIwIC8q IFJXOiB0aW1lciBpbnRlcnJ1cHQgY2xlYXIgcmVnaXN0ZXIgKi8KKysjZGVmaW5lIFNUQVJGSVZF X1RJTUVSX0pINzExMF9JTlRfTUFTSwkJMHgyNCAvKiBSV1swXTogdGltZXIgaW50ZXJydXB0IG1h c2sgcmVnaXN0ZXIgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1RJTUVSX0pINzExMF9JTlRfQ0xSX0FW QV9NQVNLCUJJVCgxKQorKworK2VudW0gU1RBUkZJVkVfVElNRVJfQ0ggeworKwlTVEFSRklWRV9U SU1FUl9DSF8wID0gMCwKKysJU1RBUkZJVkVfVElNRVJfQ0hfMSwKKysJU1RBUkZJVkVfVElNRVJf Q0hfMiwKKysJU1RBUkZJVkVfVElNRVJfQ0hfMywKKysJU1RBUkZJVkVfVElNRVJfQ0hfNCwKKysJ U1RBUkZJVkVfVElNRVJfQ0hfNSwKKysJU1RBUkZJVkVfVElNRVJfQ0hfNiwKKysJU1RBUkZJVkVf VElNRVJfQ0hfNywKKysJU1RBUkZJVkVfVElNRVJfQ0hfTUFYCisrfTsKKysKKytlbnVtIFNUQVJG SVZFX1RJTUVSX0lOVE1BU0sgeworKwlTVEFSRklWRV9USU1FUl9JTlRNQVNLX0RJUyA9IDAsCisr CVNUQVJGSVZFX1RJTUVSX0lOVE1BU0tfRU5BID0gMQorK307CisrCisrZW51bSBTVEFSRklWRV9U SU1FUl9NT0QgeworKwlTVEFSRklWRV9USU1FUl9NT0RfQ09OVElOID0gMCwKKysJU1RBUkZJVkVf VElNRVJfTU9EX1NJTkdMRSA9IDEKKyt9OworKworK2VudW0gU1RBUkZJVkVfVElNRVJfQ1RMX0VO IHsKKysJU1RBUkZJVkVfVElNRVJfRElTID0gMCwKKysJU1RBUkZJVkVfVElNRVJfRU5BID0gMQor K307CisrCisrc3RydWN0IHN0YXJmaXZlX3RpbWVyX2NoYW5fYmFzZSB7CisrCS8qIFJlc2dpc3Rl ciAqLworKwl1bnNpZ25lZCBpbnQgY3RybDsKKysJdW5zaWduZWQgaW50IGxvYWQ7CisrCXVuc2ln bmVkIGludCBlbmFibGU7CisrCXVuc2lnbmVkIGludCByZWxvYWQ7CisrCXVuc2lnbmVkIGludCB2 YWx1ZTsKKysJdW5zaWduZWQgaW50IGludGNscjsKKysJdW5zaWduZWQgaW50IGludG1hc2s7Cisr CisrCXVuc2lnbmVkIGludCBjaGFubmVsX251bTsJLyogdGltZXIgY2hhbm5lbCBudW1iZXJzICov CisrCXVuc2lnbmVkIGludCBjaGFubmVsX2Jhc2VbXTsKKyt9OworKworK3N0cnVjdCBzdGFyZml2 ZV9jbGtldnQgeworKwlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlIGV2dDsKKysJc3RydWN0IGNs ayAqY2xrOworKwljaGFyIG5hbWVbMjBdOworKwlpbnQgaXJxOworKwl1MzIgcGVyaW9kaWM7Cisr CXUzMiByYXRlOworKwl1MzIgcmVsb2FkX3ZhbDsKKysJdm9pZCBfX2lvbWVtICpiYXNlOworKwl2 b2lkIF9faW9tZW0gKmN0cmw7CisrCXZvaWQgX19pb21lbSAqbG9hZDsKKysJdm9pZCBfX2lvbWVt ICplbmFibGU7CisrCXZvaWQgX19pb21lbSAqcmVsb2FkOworKwl2b2lkIF9faW9tZW0gKnZhbHVl OworKwl2b2lkIF9faW9tZW0gKmludGNscjsKKysJdm9pZCBfX2lvbWVtICppbnRtYXNrOworK307 CisrCisrc3RydWN0IHN0YXJmaXZlX3RpbWVyX3ByaXYgeworKwlzdHJ1Y3QgZGV2aWNlICpkZXY7 CisrCXZvaWQgX19pb21lbSAqYmFzZTsKKysJc3RydWN0IHN0YXJmaXZlX2Nsa2V2dCBjbGtldnRb XTsKKyt9OworKworKyNlbmRpZiAvKiBfX1NUQVJGSVZFX1RJTUVSX0hfXyAqLworLS0gCisyLjQw LjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMjgtcmlzY3YtZHRz LWpoNzExMC1zdGFyZml2ZS1BZGQtdGltZXItbm9kZS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDI4LXJpc2N2LWR0cy1qaDcxMTAtc3RhcmZpdmUtQWRkLXRpbWVyLW5vZGUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzM0MmE3Zjk3YWUw NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDI4LXJpc2N2 LWR0cy1qaDcxMTAtc3RhcmZpdmUtQWRkLXRpbWVyLW5vZGUucGF0Y2gKQEAgLTAsMCArMSw0NiBA QAorRnJvbSBmZGEzMGZjNjFiOGRlNDE0YWY2MTNlMDYwNzY4MGVjZjI3YjM0ODM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNo LmNvbT4KK0RhdGU6IE1vbiwgMjAgTWFyIDIwMjMgMjE6NTQ6MzMgKzA4MDAKK1N1YmplY3Q6IFtQ QVRDSCAyOC84NF0gcmlzY3Y6IGR0czogamg3MTEwOiBzdGFyZml2ZTogQWRkIHRpbWVyIG5vZGUK KworQWRkIHRoZSB0aW1lciBub2RlIGZvciB0aGUgU3RhcmZpdmUgSkg3MTEwIFNvQy4KKworU2ln bmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQor IGFyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgfCAyMCArKysrKysrKysr KysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1n aXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIGIvYXJjaC9yaXNj di9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQoraW5kZXggNGM1ZmRiOTA1ZGE4Li41ODdh YTY4MzBjNGIgMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC5kdHNpCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitA QCAtNDY5LDYgKzQ2OSwyNiBAQCBzeXNncGlvOiBwaW5jdHJsQDEzMDQwMDAwIHsKKyAJCQkjZ3Bp by1jZWxscyA9IDwyPjsKKyAJCX07CisgCisrCQl0aW1lckAxMzA1MDAwMCB7CisrCQkJY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtdGltZXIiOworKwkJCXJlZyA9IDwweDAgMHgxMzA1MDAw MCAweDAgMHgxMDAwMD47CisrCQkJaW50ZXJydXB0cyA9IDw2OT4sIDw3MD4sIDw3MT4gLDw3Mj47 CisrCQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUl9BUEI+LAorKwkJCQkg PCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUjA+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZ U0NMS19USU1FUjE+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUjI+LAorKwkJ CQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUjM+OworKwkJCWNsb2NrLW5hbWVzID0gImFw YiIsICJjaDAiLCAiY2gxIiwKKysJCQkJICAgICAgImNoMiIsICJjaDMiOworKwkJCXJlc2V0cyA9 IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElNRVJfQVBCPiwKKysJCQkJIDwmc3lzY3JnIEpINzEx MF9TWVNSU1RfVElNRVIwPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElNRVIxPiwK KysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElNRVIyPiwKKysJCQkJIDwmc3lzY3JnIEpI NzExMF9TWVNSU1RfVElNRVIzPjsKKysJCQlyZXNldC1uYW1lcyA9ICJhcGIiLCAiY2gwIiwgImNo MSIsCisrCQkJCSAgICAgICJjaDIiLCAiY2gzIjsKKysJCX07CisrCisgCQlhb25jcmc6IGNsb2Nr LWNvbnRyb2xsZXJAMTcwMDAwMDAgeworIAkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEw LWFvbmNyZyI7CisgCQkJcmVnID0gPDB4MCAweDE3MDAwMDAwIDB4MCAweDEwMDAwPjsKKy0tIAor Mi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDI5LWR0LWJp bmRpbmdzLWh3bW9uLUFkZC1zdGFyZml2ZS1qaDcxeDAtdGVtcC5wYXRjaCBiL3NyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8wMDI5LWR0LWJpbmRpbmdzLWh3bW9uLUFkZC1zdGFyZml2ZS1qaDcxeDAt dGVtcC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4yNmJk ZTM2NDMzYmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw MjktZHQtYmluZGluZ3MtaHdtb24tQWRkLXN0YXJmaXZlLWpoNzF4MC10ZW1wLnBhdGNoCkBAIC0w LDAgKzEsOTUgQEAKK0Zyb20gMWMwYTU3ZDdlZTIzZWIxNjNlN2M4ZDlkZDU4ZGFkZTQ4ZWM5OGEy NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxr ZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBUdWUsIDIxIE1hciAyMDIzIDEwOjI2OjQzICswODAwCitT dWJqZWN0OiBbUEFUQ0ggMjkvODRdIGR0LWJpbmRpbmdzOiBod21vbjogQWRkIHN0YXJmaXZlLGpo NzF4MC10ZW1wCisKK0FkZCBiaW5kaW5ncyBmb3IgdGhlIHRlbXBlcmF0dXJlIHNlbnNvciBvbiB0 aGUgU3RhckZpdmUgSkg3MTAwIGFuZAorSkg3MTEwIFNvQ3MuCisKK1NpZ25lZC1vZmYtYnk6IEVt aWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitTaWduZWQtb2ZmLWJ5OiBIYWwg RmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2IgSGVycmlu ZyA8cm9iaEBrZXJuZWwub3JnPgorLS0tCisgLi4uL2JpbmRpbmdzL2h3bW9uL3N0YXJmaXZlLGpo NzF4MC10ZW1wLnlhbWwgIHwgNzAgKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2Vk LCA3MCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55YW1sCisKK2RpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaHdtb24vc3RhcmZpdmUs amg3MXgwLXRlbXAueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9od21v bi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMDAwMDAwLi5mNWIzNDUyODkyOGQKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55YW1s CitAQCAtMCwwICsxLDcwIEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAt b25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2 aWNldHJlZS5vcmcvc2NoZW1hcy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55YW1sIworKyRz Y2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworKwor K3RpdGxlOiBTdGFyRml2ZSBKSDcxeDAgVGVtcGVyYXR1cmUgU2Vuc29yCisrCisrbWFpbnRhaW5l cnM6CisrICAtIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrCisrZGVz Y3JpcHRpb246IHwKKysgIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uIEpINzF4MCBlbWJlZGRlZCB0 ZW1wZXJhdHVyZSBzZW5zb3IKKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAg ZW51bToKKysgICAgICAtIHN0YXJmaXZlLGpoNzEwMC10ZW1wCisrICAgICAgLSBzdGFyZml2ZSxq aDcxMTAtdGVtcAorKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKworKyAgY2xvY2tzOgor KyAgICBtaW5JdGVtczogMgorKyAgICBtYXhJdGVtczogMgorKworKyAgY2xvY2stbmFtZXM6Cisr ICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6ICJzZW5zZSIKKysgICAgICAtIGNvbnN0OiAiYnVz IgorKworKyAgJyN0aGVybWFsLXNlbnNvci1jZWxscyc6CisrICAgIGNvbnN0OiAwCisrCisrICBy ZXNldHM6CisrICAgIG1pbkl0ZW1zOiAyCisrICAgIG1heEl0ZW1zOiAyCisrCisrICByZXNldC1u YW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogInNlbnNlIgorKyAgICAgIC0gY29u c3Q6ICJidXMiCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0gcmVnCisrICAt IGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSByZXNldHMKKysgIC0gcmVzZXQtbmFtZXMK KysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAor KyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUtamg3MTAwLmg+CisrICAg ICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZS1qaDcxMDAuaD4KKysKKysgICAg dGVtcGVyYXR1cmUtc2Vuc29yQDEyNGEwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAic3Rh cmZpdmUsamg3MTAwLXRlbXAiOworKyAgICAgICAgcmVnID0gPDB4MTI0YTAwMDAgMHgxMDAwMD47 CisrICAgICAgICBjbG9ja3MgPSA8JmNsa2dlbiBKSDcxMDBfQ0xLX1RFTVBfU0VOU0U+LAorKyAg ICAgICAgICAgICAgICAgPCZjbGtnZW4gSkg3MTAwX0NMS19URU1QX0FQQj47CisrICAgICAgICBj bG9jay1uYW1lcyA9ICJzZW5zZSIsICJidXMiOworKyAgICAgICAgI3RoZXJtYWwtc2Vuc29yLWNl bGxzID0gPDA+OworKyAgICAgICAgcmVzZXRzID0gPCZyc3RnZW4gSkg3MTAwX1JTVE5fVEVNUF9T RU5TRT4sCisrICAgICAgICAgICAgICAgICA8JnJzdGdlbiBKSDcxMDBfUlNUTl9URU1QX0FQQj47 CisrICAgICAgICByZXNldC1uYW1lcyA9ICJzZW5zZSIsICJidXMiOworKyAgICB9OworLS0gCisy LjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMzAtaHdtb24t c2ZjdGVtcC1BZGQtU3RhckZpdmUtSkg3MXgwLXRlbXBlcmF0dXJlLXNlbnNvci5wYXRjaCBiL3Ny Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMwLWh3bW9uLXNmY3RlbXAtQWRkLVN0YXJGaXZlLUpI NzF4MC10ZW1wZXJhdHVyZS1zZW5zb3IucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uYTYzM2UxZDNkOWRlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDMwLWh3bW9uLXNmY3RlbXAtQWRkLVN0YXJGaXZlLUpINzF4MC10 ZW1wZXJhdHVyZS1zZW5zb3IucGF0Y2gKQEAgLTAsMCArMSw0NjcgQEAKK0Zyb20gOWI2ZjdiNWUz YWRjMmViMmJmNjAyY2U1OGI2ZGE2NWEwNzIzZWJiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBUdWUs IDIxIE1hciAyMDIzIDEwOjI2OjQ0ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMzAvODRdIGh3bW9u OiAoc2ZjdGVtcCkgQWRkIFN0YXJGaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBzZW5zb3IKKworQWRk IGRyaXZlciBmb3IgdGhlIFN0YXJGaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBzZW5zb3IuIFlvdQor Y2FuIGVuYWJsZS9kaXNhYmxlIGl0IGFuZCByZWFkIHRlbXBlcmF0dXJlIGluIG1pbGxpIENlbGNp dXMKK3Rocm91Z2ggc3lzZnMuCisKK1NpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5n IDxrZXJuZWxAZXNtaWwuZGs+CitDby1kZXZlbG9wZWQtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3Vv QHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWluLmd1b0Bz dGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJm aXZldGVjaC5jb20+CistLS0KKyBEb2N1bWVudGF0aW9uL2h3bW9uL2luZGV4LnJzdCAgIHwgICAx ICsKKyBEb2N1bWVudGF0aW9uL2h3bW9uL3NmY3RlbXAucnN0IHwgIDMzICsrKysKKyBNQUlOVEFJ TkVSUyAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKKyBkcml2ZXJzL2h3bW9uL0tjb25maWcg ICAgICAgICAgIHwgIDEwICsKKyBkcml2ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgIHwgICAx ICsKKyBkcml2ZXJzL2h3bW9uL3NmY3RlbXAuYyAgICAgICAgIHwgMzMxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCisgNiBmaWxlcyBjaGFuZ2VkLCAzODQgaW5zZXJ0aW9ucygrKQor IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2h3bW9uL3NmY3RlbXAucnN0CisgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHdtb24vc2ZjdGVtcC5jCisKK2RpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2h3bW9uL2luZGV4LnJzdCBiL0RvY3VtZW50YXRpb24vaHdtb24vaW5kZXgu cnN0CitpbmRleCBmMWZlNzVmNTk2YTUuLmQ3MmJiMWRmNjQzMSAxMDA2NDQKKy0tLSBhL0RvY3Vt ZW50YXRpb24vaHdtb24vaW5kZXgucnN0CisrKysgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2luZGV4 LnJzdAorQEAgLTE4NCw2ICsxODQsNyBAQCBIYXJkd2FyZSBNb25pdG9yaW5nIEtlcm5lbCBEcml2 ZXJzCisgICAgc2NoNTYyNworICAgIHNjaDU2MzYKKyAgICBzY3BpLWh3bW9uCisrICAgc2ZjdGVt cAorICAgIHNodDE1CisgICAgc2h0MjEKKyAgICBzaHQzeAorZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vaHdtb24vc2ZjdGVtcC5yc3QgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3NmY3RlbXAucnN0 CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi45ZmJkNWJiMWYzNTYK Ky0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vaHdtb24vc2ZjdGVtcC5yc3QKK0BA IC0wLDAgKzEsMzMgQEAKKysuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKwor K0tlcm5lbCBkcml2ZXIgc2ZjdGVtcAorKz09PT09PT09PT09PT09PT09PT09PQorKworK1N1cHBv cnRlZCBjaGlwczoKKysgLSBTdGFyRml2ZSBKSDcxMDAKKysgLSBTdGFyRml2ZSBKSDcxMTAKKysK KytBdXRob3JzOgorKyAtIEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Cisr CisrRGVzY3JpcHRpb24KKystLS0tLS0tLS0tLQorKworK1RoaXMgZHJpdmVyIGFkZHMgc3VwcG9y dCBmb3IgcmVhZGluZyB0aGUgYnVpbHQtaW4gdGVtcGVyYXR1cmUgc2Vuc29yIG9uIHRoZQorK0pI NzEwMCBhbmQgSkg3MTEwIFJJU0MtViBTb0NzIGJ5IFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uIEx0 ZC4KKysKKytgYHN5c2ZzYGAgaW50ZXJmYWNlCisrLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK1Ro ZSB0ZW1wZXJhdHVyZSBzZW5zb3IgY2FuIGJlIGVuYWJsZWQsIGRpc2FibGVkIGFuZCBxdWVyaWVk IHZpYSB0aGUgc3RhbmRhcmQKKytod21vbiBpbnRlcmZhY2UgaW4gc3lzZnMgdW5kZXIgYGAvc3lz L2NsYXNzL2h3bW9uL2h3bW9uWGBgIGZvciBzb21lIHZhbHVlIG9mCisrYGBYYGA6CisrCisrPT09 PT09PT09PT09PT09PSA9PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorK05hbWUgICAgICAgICAgICAgUGVybSBEZXNjcmlwdGlvbgorKz09PT09PT09PT09 PT09PT0gPT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Kyt0ZW1wMV9lbmFibGUgICAgIFJXICAgRW5hYmxlIG9yIGRpc2FibGUgdGVtcGVyYXR1cmUgc2Vu c29yLgorKyAgICAgICAgICAgICAgICAgICAgICBBdXRvbWF0aWNhbGx5IGVuYWJsZWQgYnkgdGhl IGRyaXZlciwKKysgICAgICAgICAgICAgICAgICAgICAgYnV0IG1heSBiZSBkaXNhYmxlZCB0byBz YXZlIHBvd2VyLgorK3RlbXAxX2lucHV0ICAgICAgUk8gICBUZW1wZXJhdHVyZSByZWFkaW5nIGlu IG1pbGxpLWRlZ3JlZXMgQ2Vsc2l1cy4KKys9PT09PT09PT09PT09PT09ID09PT0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitkaWZmIC0tZ2l0IGEvTUFJTlRB SU5FUlMgYi9NQUlOVEFJTkVSUworaW5kZXggZDhmYTcxYzYwOTllLi44M2Q4OGE2ZmMxZDggMTAw NjQ0CistLS0gYS9NQUlOVEFJTkVSUworKysrIGIvTUFJTlRBSU5FUlMKK0BAIC0xODkwOSw2ICsx ODkwOSwxNCBAQCBTOglTdXBwb3J0ZWQKKyBGOglEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2 bGluay9zZmMucnN0CisgRjoJZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjLworIAorK1NGQ1RFTVAg SFdNT04gRFJJVkVSCisrTToJRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4K KytMOglsaW51eC1od21vbkB2Z2VyLmtlcm5lbC5vcmcKKytTOglNYWludGFpbmVkCisrRjoJRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2h3bW9uL3N0YXJmaXZlLGpoNzF4MC10ZW1w LnlhbWwKKytGOglEb2N1bWVudGF0aW9uL2h3bW9uL3NmY3RlbXAucnN0CisrRjoJZHJpdmVycy9o d21vbi9zZmN0ZW1wLmMKKysKKyBTRkYvU0ZQL1NGUCsgTU9EVUxFIFNVUFBPUlQKKyBNOglSdXNz ZWxsIEtpbmcgPGxpbnV4QGFybWxpbnV4Lm9yZy51az4KKyBMOgluZXRkZXZAdmdlci5rZXJuZWwu b3JnCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9LY29uZmlnIGIvZHJpdmVycy9od21vbi9L Y29uZmlnCitpbmRleCA1YjNiNzY0NzdiMGUuLmFiYjgyYTczZGJhZiAxMDA2NDQKKy0tLSBhL2Ry aXZlcnMvaHdtb24vS2NvbmZpZworKysrIGIvZHJpdmVycy9od21vbi9LY29uZmlnCitAQCAtMTky OSw2ICsxOTI5LDE2IEBAIGNvbmZpZyBTRU5TT1JTX1NUVFM3NTEKKyAJICBUaGlzIGRyaXZlciBj YW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUKKyAJICB3aWxs IGJlIGNhbGxlZCBzdHRzNzUxLgorIAorK2NvbmZpZyBTRU5TT1JTX1NGQ1RFTVAKKysJdHJpc3Rh dGUgIlN0YXJmaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBzZW5zb3IiCisrCWRlcGVuZHMgb24gQVJD SF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKysJaGVscAorKwkgIElmIHlvdSBzYXkgeWVzIGhl cmUgeW91IGdldCBzdXBwb3J0IGZvciB0ZW1wZXJhdHVyZSBzZW5zb3IKKysJICBvbiB0aGUgU3Rh cmZpdmUgSkg3MXgwIFNvQ3MuCisrCisrCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQg YXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorKwkgIHdpbGwgYmUgY2FsbGVkIHNmY3Rl bXAuCisrCisgY29uZmlnIFNFTlNPUlNfU01NNjY1CisgCXRyaXN0YXRlICJTdW1taXQgTWljcm9l bGVjdHJvbmljcyBTTU02NjUiCisgCWRlcGVuZHMgb24gSTJDCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKK2luZGV4IDg4NzEyYjUw MzFjOC4uMzg2ZjRkZWJlNjhiIDEwMDY0NAorLS0tIGEvZHJpdmVycy9od21vbi9NYWtlZmlsZQor KysrIGIvZHJpdmVycy9od21vbi9NYWtlZmlsZQorQEAgLTE4MSw2ICsxODEsNyBAQCBvYmotJChD T05GSUdfU0VOU09SU19TQlJNSSkJKz0gc2JybWkubworIG9iai0kKENPTkZJR19TRU5TT1JTX1ND SDU2WFhfQ09NTU9OKSs9IHNjaDU2eHgtY29tbW9uLm8KKyBvYmotJChDT05GSUdfU0VOU09SU19T Q0g1NjI3KQkrPSBzY2g1NjI3Lm8KKyBvYmotJChDT05GSUdfU0VOU09SU19TQ0g1NjM2KQkrPSBz Y2g1NjM2Lm8KKytvYmotJChDT05GSUdfU0VOU09SU19TRkNURU1QKQkrPSBzZmN0ZW1wLm8KKyBv YmotJChDT05GSUdfU0VOU09SU19TTDI4Q1BMRCkJKz0gc2wyOGNwbGQtaHdtb24ubworIG9iai0k KENPTkZJR19TRU5TT1JTX1NIVDE1KQkrPSBzaHQxNS5vCisgb2JqLSQoQ09ORklHX1NFTlNPUlNf U0hUMjEpCSs9IHNodDIxLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3NmY3RlbXAuYyBi L2RyaXZlcnMvaHdtb24vc2ZjdGVtcC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMDAwLi5kNzQ4NGUyYjgxMDAKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvaHdt b24vc2ZjdGVtcC5jCitAQCAtMCwwICsxLDMzMSBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wCisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjEgRW1pbCBSZW5uZXIgQmVy dGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMjEgU2FtaW4gR3Vv IDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgv Yml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGludXgvZGVsYXku aD4KKysjaW5jbHVkZSA8bGludXgvaHdtb24uaD4KKysjaW5jbHVkZSA8bGludXgvaW8uaD4KKysj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisrI2lu Y2x1ZGUgPGxpbnV4L29mLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgor KyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKworKy8qCisrICogVGVtcFNlbnNvciByZXNldC4g VGhlIFJTVE4gY2FuIGJlIGRlLWFzc2VydGVkIG9uY2UgdGhlIGFuYWxvZyBjb3JlIGhhcworKyAq IHBvd2VyZWQgdXAuIFRyc3QobWluIDEwMG5zKQorKyAqIDA6cmVzZXQgIDE6ZGUtYXNzZXJ0Cisr ICovCisrI2RlZmluZSBTRkNURU1QX1JTVE4JQklUKDApCisrCisrLyoKKysgKiBUZW1wU2Vuc29y IGFuYWxvZyBjb3JlIHBvd2VyIGRvd24uIFRoZSBhbmFsb2cgY29yZSB3aWxsIGJlIHBvd2VyZWQg dXAKKysgKiBUcHUobWluIDUwdXMpIGFmdGVyIFBEIGlzIGRlLWFzc2VydGVkLiBSU1ROIHNob3Vs ZCBiZSBoZWxkIGxvdyB1bnRpbCB0aGUKKysgKiBhbmFsb2cgY29yZSBpcyBwb3dlcmVkIHVwLgor KyAqIDA6cG93ZXIgdXAgIDE6cG93ZXIgZG93bgorKyAqLworKyNkZWZpbmUgU0ZDVEVNUF9QRAlC SVQoMSkKKysKKysvKgorKyAqIFRlbXBTZW5zb3Igc3RhcnQgY29udmVyc2lvbiBlbmFibGUuCisr ICogMDpkaXNhYmxlICAxOmVuYWJsZQorKyAqLworKyNkZWZpbmUgU0ZDVEVNUF9SVU4JQklUKDIp CisrCisrLyoKKysgKiBUZW1wU2Vuc29yIGNvbnZlcnNpb24gdmFsdWUgb3V0cHV0LgorKyAqIFRl bXAoQyk9RE9VVCpZLzQwOTQgLSBLCisrICovCisrI2RlZmluZSBTRkNURU1QX0RPVVRfUE9TCTE2 CisrI2RlZmluZSBTRkNURU1QX0RPVVRfTVNLCUdFTk1BU0soMjcsIDE2KQorKworKy8qIERPVVQg dG8gQ2VsY2l1cyBjb252ZXJzaW9uIGNvbnN0YW50cyAqLworKyNkZWZpbmUgU0ZDVEVNUF9ZMTAw MAkyMzc1MDBMCisrI2RlZmluZSBTRkNURU1QX1oJNDA5NEwKKysjZGVmaW5lIFNGQ1RFTVBfSzEw MDAJODExMDBMCisrCisrc3RydWN0IHNmY3RlbXAgeworKwkvKiBzZXJpYWxpemUgYWNjZXNzIHRv IGhhcmR3YXJlIHJlZ2lzdGVyIGFuZCBlbmFibGVkIGJlbG93ICovCisrCXN0cnVjdCBtdXRleCBs b2NrOworKwl2b2lkIF9faW9tZW0gKnJlZ3M7CisrCXN0cnVjdCBjbGsgKmNsa19zZW5zZTsKKysJ c3RydWN0IGNsayAqY2xrX2J1czsKKysJc3RydWN0IHJlc2V0X2NvbnRyb2wgKnJzdF9zZW5zZTsK KysJc3RydWN0IHJlc2V0X2NvbnRyb2wgKnJzdF9idXM7CisrCWJvb2wgZW5hYmxlZDsKKyt9Owor KworK3N0YXRpYyB2b2lkIHNmY3RlbXBfcG93ZXJfdXAoc3RydWN0IHNmY3RlbXAgKnNmY3RlbXAp CisreworKwkvKiBtYWtlIHN1cmUgd2UncmUgcG93ZXJlZCBkb3duIGZpcnN0ICovCisrCXdyaXRl bChTRkNURU1QX1BELCBzZmN0ZW1wLT5yZWdzKTsKKysJdWRlbGF5KDEpOworKworKwl3cml0ZWwo MCwgc2ZjdGVtcC0+cmVncyk7CisrCS8qIHdhaXQgdF9wdSg1MHVzKSArIHRfcnN0KDEwMG5zKSAq LworKwl1c2xlZXBfcmFuZ2UoNjAsIDIwMCk7CisrCisrCS8qIGRlLWFzc2VydCByZXNldCAqLwor Kwl3cml0ZWwoU0ZDVEVNUF9SU1ROLCBzZmN0ZW1wLT5yZWdzKTsKKysJdWRlbGF5KDEpOyAvKiB3 YWl0IHRfc3UoNTAwcHMpICovCisrfQorKworK3N0YXRpYyB2b2lkIHNmY3RlbXBfcG93ZXJfZG93 bihzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCkKKyt7CisrCXdyaXRlbChTRkNURU1QX1BELCBzZmN0 ZW1wLT5yZWdzKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc2ZjdGVtcF9ydW4oc3RydWN0IHNmY3Rl bXAgKnNmY3RlbXApCisreworKwl3cml0ZWwoU0ZDVEVNUF9SU1ROIHwgU0ZDVEVNUF9SVU4sIHNm Y3RlbXAtPnJlZ3MpOworKwl1ZGVsYXkoMSk7CisrfQorKworK3N0YXRpYyB2b2lkIHNmY3RlbXBf c3RvcChzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCkKKyt7CisrCXdyaXRlbChTRkNURU1QX1JTVE4s IHNmY3RlbXAtPnJlZ3MpOworK30KKysKKytzdGF0aWMgaW50IHNmY3RlbXBfZW5hYmxlKHN0cnVj dCBzZmN0ZW1wICpzZmN0ZW1wKQorK3sKKysJaW50IHJldCA9IDA7CisrCisrCW11dGV4X2xvY2so JnNmY3RlbXAtPmxvY2spOworKwlpZiAoc2ZjdGVtcC0+ZW5hYmxlZCkKKysJCWdvdG8gZG9uZTsK KysKKysJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHNmY3RlbXAtPmNsa19idXMpOworKwlpZiAo cmV0KQorKwkJZ290byBlcnI7CisrCXJldCA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoc2ZjdGVt cC0+cnN0X2J1cyk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9kaXNhYmxlX2J1czsKKysKKysJ cmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHNmY3RlbXAtPmNsa19zZW5zZSk7CisrCWlmIChyZXQp CisrCQlnb3RvIGVycl9hc3NlcnRfYnVzOworKwlyZXQgPSByZXNldF9jb250cm9sX2RlYXNzZXJ0 KHNmY3RlbXAtPnJzdF9zZW5zZSk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9kaXNhYmxlX3Nl bnNlOworKworKwlzZmN0ZW1wX3Bvd2VyX3VwKHNmY3RlbXApOworKwlzZmN0ZW1wX3J1bihzZmN0 ZW1wKTsKKysJc2ZjdGVtcC0+ZW5hYmxlZCA9IHRydWU7CisrZG9uZToKKysJbXV0ZXhfdW5sb2Nr KCZzZmN0ZW1wLT5sb2NrKTsKKysJcmV0dXJuIHJldDsKKysKKytlcnJfZGlzYWJsZV9zZW5zZToK KysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHNmY3RlbXAtPmNsa19zZW5zZSk7CisrZXJyX2Fzc2Vy dF9idXM6CisrCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHNmY3RlbXAtPnJzdF9idXMpOworK2Vycl9k aXNhYmxlX2J1czoKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHNmY3RlbXAtPmNsa19idXMpOwor K2VycjoKKysJbXV0ZXhfdW5sb2NrKCZzZmN0ZW1wLT5sb2NrKTsKKysJcmV0dXJuIHJldDsKKyt9 CisrCisrc3RhdGljIGludCBzZmN0ZW1wX2Rpc2FibGUoc3RydWN0IHNmY3RlbXAgKnNmY3RlbXAp CisreworKwltdXRleF9sb2NrKCZzZmN0ZW1wLT5sb2NrKTsKKysJaWYgKCFzZmN0ZW1wLT5lbmFi bGVkKQorKwkJZ290byBkb25lOworKworKwlzZmN0ZW1wX3N0b3Aoc2ZjdGVtcCk7CisrCXNmY3Rl bXBfcG93ZXJfZG93bihzZmN0ZW1wKTsKKysJcmVzZXRfY29udHJvbF9hc3NlcnQoc2ZjdGVtcC0+ cnN0X3NlbnNlKTsKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHNmY3RlbXAtPmNsa19zZW5zZSk7 CisrCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHNmY3RlbXAtPnJzdF9idXMpOworKwljbGtfZGlzYWJs ZV91bnByZXBhcmUoc2ZjdGVtcC0+Y2xrX2J1cyk7CisrCXNmY3RlbXAtPmVuYWJsZWQgPSBmYWxz ZTsKKytkb25lOgorKwltdXRleF91bmxvY2soJnNmY3RlbXAtPmxvY2spOworKwlyZXR1cm4gMDsK Kyt9CisrCisrc3RhdGljIHZvaWQgc2ZjdGVtcF9kaXNhYmxlX2FjdGlvbih2b2lkICpkYXRhKQor K3sKKysJc2ZjdGVtcF9kaXNhYmxlKGRhdGEpOworK30KKysKKytzdGF0aWMgaW50IHNmY3RlbXBf Y29udmVydChzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCwgbG9uZyAqdmFsKQorK3sKKysJaW50IHJl dDsKKysKKysJbXV0ZXhfbG9jaygmc2ZjdGVtcC0+bG9jayk7CisrCWlmICghc2ZjdGVtcC0+ZW5h YmxlZCkgeworKwkJcmV0ID0gLUVOT0RBVEE7CisrCQlnb3RvIG91dDsKKysJfQorKworKwkvKiBj YWxjdWxhdGUgdGVtcGVyYXR1cmUgaW4gbWlsbGkgQ2VsY2l1cyAqLworKwkqdmFsID0gKGxvbmcp KChyZWFkbChzZmN0ZW1wLT5yZWdzKSAmIFNGQ1RFTVBfRE9VVF9NU0spID4+IFNGQ1RFTVBfRE9V VF9QT1MpCisrCQkqIFNGQ1RFTVBfWTEwMDAgLyBTRkNURU1QX1ogLSBTRkNURU1QX0sxMDAwOwor KworKwlyZXQgPSAwOworK291dDoKKysJbXV0ZXhfdW5sb2NrKCZzZmN0ZW1wLT5sb2NrKTsKKysJ cmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIHVtb2RlX3Qgc2ZjdGVtcF9pc192aXNpYmxlKGNv bnN0IHZvaWQgKmRhdGEsIGVudW0gaHdtb25fc2Vuc29yX3R5cGVzIHR5cGUsCisrCQkJCSAgdTMy IGF0dHIsIGludCBjaGFubmVsKQorK3sKKysJc3dpdGNoICh0eXBlKSB7CisrCWNhc2UgaHdtb25f dGVtcDoKKysJCXN3aXRjaCAoYXR0cikgeworKwkJY2FzZSBod21vbl90ZW1wX2VuYWJsZToKKysJ CQlyZXR1cm4gMDY0NDsKKysJCWNhc2UgaHdtb25fdGVtcF9pbnB1dDoKKysJCQlyZXR1cm4gMDQ0 NDsKKysJCWRlZmF1bHQ6CisrCQkJcmV0dXJuIDA7CisrCQl9CisrCWRlZmF1bHQ6CisrCQlyZXR1 cm4gMDsKKysJfQorK30KKysKKytzdGF0aWMgaW50IHNmY3RlbXBfcmVhZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIGVudW0gaHdtb25fc2Vuc29yX3R5cGVzIHR5cGUsCisrCQkJdTMyIGF0dHIsIGludCBj aGFubmVsLCBsb25nICp2YWwpCisreworKwlzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOworKworKwlzd2l0Y2ggKHR5cGUpIHsKKysJY2FzZSBod21vbl90ZW1w OgorKwkJc3dpdGNoIChhdHRyKSB7CisrCQljYXNlIGh3bW9uX3RlbXBfZW5hYmxlOgorKwkJCSp2 YWwgPSBzZmN0ZW1wLT5lbmFibGVkOworKwkJCXJldHVybiAwOworKwkJY2FzZSBod21vbl90ZW1w X2lucHV0OgorKwkJCXJldHVybiBzZmN0ZW1wX2NvbnZlcnQoc2ZjdGVtcCwgdmFsKTsKKysJCWRl ZmF1bHQ6CisrCQkJcmV0dXJuIC1FSU5WQUw7CisrCQl9CisrCWRlZmF1bHQ6CisrCQlyZXR1cm4g LUVJTlZBTDsKKysJfQorK30KKysKKytzdGF0aWMgaW50IHNmY3RlbXBfd3JpdGUoc3RydWN0IGRl dmljZSAqZGV2LCBlbnVtIGh3bW9uX3NlbnNvcl90eXBlcyB0eXBlLAorKwkJCSB1MzIgYXR0ciwg aW50IGNoYW5uZWwsIGxvbmcgdmFsKQorK3sKKysJc3RydWN0IHNmY3RlbXAgKnNmY3RlbXAgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJc3dpdGNoICh0eXBlKSB7CisrCWNhc2UgaHdtb25f dGVtcDoKKysJCXN3aXRjaCAoYXR0cikgeworKwkJY2FzZSBod21vbl90ZW1wX2VuYWJsZToKKysJ CQlpZiAodmFsID09IDApCisrCQkJCXJldHVybiBzZmN0ZW1wX2Rpc2FibGUoc2ZjdGVtcCk7Cisr CQkJaWYgKHZhbCA9PSAxKQorKwkJCQlyZXR1cm4gc2ZjdGVtcF9lbmFibGUoc2ZjdGVtcCk7Cisr CQkJcmV0dXJuIC1FSU5WQUw7CisrCQlkZWZhdWx0OgorKwkJCXJldHVybiAtRUlOVkFMOworKwkJ fQorKwlkZWZhdWx0OgorKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKyt9CisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBod21vbl9jaGFubmVsX2luZm8gKnNmY3RlbXBfaW5mb1tdID0geworKwlIV01P Tl9DSEFOTkVMX0lORk8oY2hpcCwgSFdNT05fQ19SRUdJU1RFUl9UWiksCisrCUhXTU9OX0NIQU5O RUxfSU5GTyh0ZW1wLCBIV01PTl9UX0VOQUJMRSB8IEhXTU9OX1RfSU5QVVQpLAorKwlOVUxMCisr fTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGh3bW9uX29wcyBzZmN0ZW1wX2h3bW9uX29wcyA9 IHsKKysJLmlzX3Zpc2libGUgPSBzZmN0ZW1wX2lzX3Zpc2libGUsCisrCS5yZWFkID0gc2ZjdGVt cF9yZWFkLAorKwkud3JpdGUgPSBzZmN0ZW1wX3dyaXRlLAorK307CisrCisrc3RhdGljIGNvbnN0 IHN0cnVjdCBod21vbl9jaGlwX2luZm8gc2ZjdGVtcF9jaGlwX2luZm8gPSB7CisrCS5vcHMgPSAm c2ZjdGVtcF9od21vbl9vcHMsCisrCS5pbmZvID0gc2ZjdGVtcF9pbmZvLAorK307CisrCisrc3Rh dGljIGludCBzZmN0ZW1wX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisrewor KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworKwlzdHJ1Y3QgZGV2aWNlICpod21v bl9kZXY7CisrCXN0cnVjdCBzZmN0ZW1wICpzZmN0ZW1wOworKwlpbnQgcmV0OworKworKwlzZmN0 ZW1wID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpzZmN0ZW1wKSwgR0ZQX0tFUk5FTCk7Cisr CWlmICghc2ZjdGVtcCkKKysJCXJldHVybiAtRU5PTUVNOworKworKwlkZXZfc2V0X2RydmRhdGEo ZGV2LCBzZmN0ZW1wKTsKKysJbXV0ZXhfaW5pdCgmc2ZjdGVtcC0+bG9jayk7CisrCisrCXNmY3Rl bXAtPnJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7CisrCWlm IChJU19FUlIoc2ZjdGVtcC0+cmVncykpCisrCQlyZXR1cm4gUFRSX0VSUihzZmN0ZW1wLT5yZWdz KTsKKysKKysJc2ZjdGVtcC0+Y2xrX3NlbnNlID0gZGV2bV9jbGtfZ2V0KGRldiwgInNlbnNlIik7 CisrCWlmIChJU19FUlIoc2ZjdGVtcC0+Y2xrX3NlbnNlKSkKKysJCXJldHVybiBkZXZfZXJyX3By b2JlKGRldiwgUFRSX0VSUihzZmN0ZW1wLT5jbGtfc2Vuc2UpLAorKwkJCQkgICAgICJlcnJvciBn ZXR0aW5nIHNlbnNlIGNsb2NrXG4iKTsKKysKKysJc2ZjdGVtcC0+Y2xrX2J1cyA9IGRldm1fY2xr X2dldChkZXYsICJidXMiKTsKKysJaWYgKElTX0VSUihzZmN0ZW1wLT5jbGtfYnVzKSkKKysJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihzZmN0ZW1wLT5jbGtfYnVzKSwKKysJCQkJ ICAgICAiZXJyb3IgZ2V0dGluZyBidXMgY2xvY2tcbiIpOworKworKwlzZmN0ZW1wLT5yc3Rfc2Vu c2UgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X2V4Y2x1c2l2ZShkZXYsICJzZW5zZSIpOworKwlp ZiAoSVNfRVJSKHNmY3RlbXAtPnJzdF9zZW5zZSkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShk ZXYsIFBUUl9FUlIoc2ZjdGVtcC0+cnN0X3NlbnNlKSwKKysJCQkJICAgICAiZXJyb3IgZ2V0dGlu ZyBzZW5zZSByZXNldFxuIik7CisrCisrCXNmY3RlbXAtPnJzdF9idXMgPSBkZXZtX3Jlc2V0X2Nv bnRyb2xfZ2V0X2V4Y2x1c2l2ZShkZXYsICJidXMiKTsKKysJaWYgKElTX0VSUihzZmN0ZW1wLT5y c3RfYnVzKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihzZmN0ZW1wLT5y c3RfYnVzKSwKKysJCQkJICAgICAiZXJyb3IgZ2V0dGluZyBidXNyZXNldFxuIik7CisrCisrCXJl dCA9IHJlc2V0X2NvbnRyb2xfYXNzZXJ0KHNmY3RlbXAtPnJzdF9zZW5zZSk7CisrCWlmIChyZXQp CisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9yIGFzc2VydGluZyBzZW5z ZSByZXNldFxuIik7CisrCisrCXJldCA9IHJlc2V0X2NvbnRyb2xfYXNzZXJ0KHNmY3RlbXAtPnJz dF9idXMpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJl cnJvciBhc3NlcnRpbmcgYnVzIHJlc2V0XG4iKTsKKysKKysJcmV0ID0gZGV2bV9hZGRfYWN0aW9u KGRldiwgc2ZjdGVtcF9kaXNhYmxlX2FjdGlvbiwgc2ZjdGVtcCk7CisrCWlmIChyZXQpCisrCQly ZXR1cm4gcmV0OworKworKwlyZXQgPSBzZmN0ZW1wX2VuYWJsZShzZmN0ZW1wKTsKKysJaWYgKHJl dCkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZXJyb3IgZW5hYmxpbmcgdGVt cGVyYXR1cmUgc2Vuc29yOiAlZFxuIiwgcmV0KTsKKysKKysJaHdtb25fZGV2ID0gZGV2bV9od21v bl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9pbmZvKGRldiwgInNmY3RlbXAiLCBzZmN0ZW1wLAorKwkJ CQkJCQkgJnNmY3RlbXBfY2hpcF9pbmZvLCBOVUxMKTsKKysJcmV0dXJuIFBUUl9FUlJfT1JfWkVS Tyhod21vbl9kZXYpOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBz ZmN0ZW1wX29mX21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTAw LXRlbXAiIH0sCisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXRlbXAiIH0sCisr CXsgLyogc2VudGluZWwgKi8gfQorK307CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc2ZjdGVt cF9vZl9tYXRjaCk7CisrCisrc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc2ZjdGVtcF9k cml2ZXIgPSB7CisrCS5wcm9iZSAgPSBzZmN0ZW1wX3Byb2JlLAorKwkuZHJpdmVyID0geworKwkJ Lm5hbWUgPSAic2ZjdGVtcCIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBzZmN0ZW1wX29mX21hdGNo LAorKwl9LAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzZmN0ZW1wX2RyaXZlcik7Cisr CisrTU9EVUxFX0FVVEhPUigiRW1pbCBSZW5uZXIgQmVydGhpbmciKTsKKytNT0RVTEVfREVTQ1JJ UFRJT04oIlN0YXJGaXZlIEpINzF4MCB0ZW1wZXJhdHVyZSBzZW5zb3IgZHJpdmVyIik7CisrTU9E VUxFX0xJQ0VOU0UoIkdQTCIpOworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwMzEtZHQtYmluZGluZ3MtcXNwaS1jZG5zLXFzcGktbm9yLWNvbnN0 cmFpbi1taW5JdGVtcy1tYS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMxLWR0 LWJpbmRpbmdzLXFzcGktY2Rucy1xc3BpLW5vci1jb25zdHJhaW4tbWluSXRlbXMtbWEucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZmQ1OGQ3NzEzYzM3NQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMxLWR0LWJpbmRp bmdzLXFzcGktY2Rucy1xc3BpLW5vci1jb25zdHJhaW4tbWluSXRlbXMtbWEucGF0Y2gKQEAgLTAs MCArMSw4MyBAQAorRnJvbSAxZjI4MzlhMmM0NzZiODI2MWViNTliMTQ4NzEyOGQ1MmE5NDc4ZmZh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1 QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDIgTWFyIDIwMjMgMTg6NTI6MjAgKzA4MDAK K1N1YmplY3Q6IFtQQVRDSCAzMS84NF0gZHQtYmluZGluZ3M6IHFzcGk6IGNkbnMscXNwaS1ub3I6 IGNvbnN0cmFpbgorIG1pbkl0ZW1zL21heEl0ZW1zIG9mIHJlc2V0cworCitUaGUgUVNQSSBjb250 cm9sbGVyIG5lZWRzIHRocmVlIHJlc2V0IGl0ZW1zIHRvIHdvcmsgcHJvcGVybHkgb24gSkg3MTEw IFNvQywKK3NvIHRoZXJlIGlzIG5lZWQgdG8gY2hhbmdlIHRoZSBtYXhJdGVtcydzIHZhbHVlIHRv IDMgYW5kIGFkZCBtaW5JdGVtcword2hvc2UgdmFsdWUgaXMgZXF1YWwgdG8gMi4gT3RoZXIgcGxh dGZvcm1zIGRvIG5vdCBoYXZlIHRoaXMgY29uc3RyYWludC4KKworU2lnbmVkLW9mZi1ieTogV2ls bGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vYmluZGlu Z3Mvc3BpL2NkbnMscXNwaS1ub3IueWFtbCAgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKysr Ky0tCisgMSBmaWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc3BpL2NkbnMs cXNwaS1ub3IueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvY2Ru cyxxc3BpLW5vci55YW1sCitpbmRleCA1YzAxZGIxMjhiZTAuLmIzMTAwNjk3NjJkZCAxMDA2NDQK Ky0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zcGkvY2Rucyxxc3BpLW5v ci55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc3BpL2NkbnMs cXNwaS1ub3IueWFtbAorQEAgLTE5LDYgKzE5LDMzIEBAIGFsbE9mOgorICAgICB0aGVuOgorICAg ICAgIHJlcXVpcmVkOgorICAgICAgICAgLSBwb3dlci1kb21haW5zCisrICAtIGlmOgorKyAgICAg IHByb3BlcnRpZXM6CisrICAgICAgICBjb21wYXRpYmxlOgorKyAgICAgICAgICBjb250YWluczoK KysgICAgICAgICAgICBjb25zdDogc3RhcmZpdmUsamg3MTEwLXFzcGkKKysgICAgdGhlbjoKKysg ICAgICBwcm9wZXJ0aWVzOgorKyAgICAgICAgcmVzZXRzOgorKyAgICAgICAgICBtaW5JdGVtczog MgorKyAgICAgICAgICBtYXhJdGVtczogMworKworKyAgICAgICAgcmVzZXQtbmFtZXM6CisrICAg ICAgICAgIG1pbkl0ZW1zOiAyCisrICAgICAgICAgIG1heEl0ZW1zOiAzCisrICAgICAgICAgIGl0 ZW1zOgorKyAgICAgICAgICAgIGVudW06IFsgcXNwaSwgcXNwaS1vY3AsIHJzdGNfcmVmIF0KKysK KysgICAgZWxzZToKKysgICAgICBwcm9wZXJ0aWVzOgorKyAgICAgICAgcmVzZXRzOgorKyAgICAg ICAgICBtYXhJdGVtczogMgorKworKyAgICAgICAgcmVzZXQtbmFtZXM6CisrICAgICAgICAgIG1p bkl0ZW1zOiAxCisrICAgICAgICAgIG1heEl0ZW1zOiAyCisrICAgICAgICAgIGl0ZW1zOgorKyAg ICAgICAgICAgIGVudW06IFsgcXNwaSwgcXNwaS1vY3AgXQorIAorIHByb3BlcnRpZXM6CisgICBj b21wYXRpYmxlOgorQEAgLTMwLDYgKzU3LDcgQEAgcHJvcGVydGllczoKKyAgICAgICAgICAgICAg IC0gaW50ZWwsbGdtLXFzcGkKKyAgICAgICAgICAgICAgIC0geGxueCx2ZXJzYWwtb3NwaS0xLjAK KyAgICAgICAgICAgICAgIC0gaW50ZWwsc29jZnBnYS1xc3BpCisrICAgICAgICAgICAgICAtIHN0 YXJmaXZlLGpoNzExMC1xc3BpCisgICAgICAgICAgIC0gY29uc3Q6IGNkbnMscXNwaS1ub3IKKyAg ICAgICAtIGNvbnN0OiBjZG5zLHFzcGktbm9yCisgCitAQCAtNzksMTMgKzEwNywxNCBAQCBwcm9w ZXJ0aWVzOgorICAgICBtYXhJdGVtczogMQorIAorICAgcmVzZXRzOgorLSAgICBtYXhJdGVtczog MgorKyAgICBtaW5JdGVtczogMgorKyAgICBtYXhJdGVtczogMworIAorICAgcmVzZXQtbmFtZXM6 CistICAgIG1pbkl0ZW1zOiAxCistICAgIG1heEl0ZW1zOiAyCisrICAgIG1pbkl0ZW1zOiAyCisr ICAgIG1heEl0ZW1zOiAzCisgICAgIGl0ZW1zOgorLSAgICAgIGVudW06IFsgcXNwaSwgcXNwaS1v Y3AgXQorKyAgICAgIGVudW06IFsgcXNwaSwgcXNwaS1vY3AsIHJzdGNfcmVmIF0KKyAKKyByZXF1 aXJlZDoKKyAgIC0gY29tcGF0aWJsZQorLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwMzItc3BpLWNhZGVuY2UtcXVhZHNwaS1BZGQtc3VwcG9ydC1m b3ItU3RhckZpdmUtSkg3MTEwLS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMy LXNwaS1jYWRlbmNlLXF1YWRzcGktQWRkLXN1cHBvcnQtZm9yLVN0YXJGaXZlLUpINzExMC0ucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZWQ5M2Q3NmNkOWNk NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMyLXNwaS1j YWRlbmNlLXF1YWRzcGktQWRkLXN1cHBvcnQtZm9yLVN0YXJGaXZlLUpINzExMC0ucGF0Y2gKQEAg LTAsMCArMSw4NiBAQAorRnJvbSBhYjM4MGY1OTRmYjNmOTkyNzZiOGQxMzg5YWM2YWU5OGVkMTQy YzYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2lsbGlhbSBRaXUgPHdpbGxpYW0u cWl1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDIgTWFyIDIwMjMgMTg6NTI6MjEgKzA4 MDAKK1N1YmplY3Q6IFtQQVRDSCAzMi84NF0gc3BpOiBjYWRlbmNlLXF1YWRzcGk6IEFkZCBzdXBw b3J0IGZvciBTdGFyRml2ZSBKSDcxMTAKKyBRU1BJCisKK0FkZCBRU1BJIHJlc2V0IG9wZXJhdGlv biBpbiBkZXZpY2UgcHJvYmUgYW5kIGFkZCBSSVNDViBzdXBwb3J0IHRvCitRVUFEIFNQSSBLY29u ZmlnLgorCitDby1kZXZlbG9wZWQtYnk6IFppdiBYdSA8eml2Lnh1QHN0YXJmaXZldGVjaC5jb20+ CitTaWduZWQtb2ZmLWJ5OiBaaXYgWHUgPHppdi54dUBzdGFyZml2ZXRlY2guY29tPgorU2lnbmVk LW9mZi1ieTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CistLS0K KyBkcml2ZXJzL3NwaS9LY29uZmlnICAgICAgICAgICAgICAgfCAgMiArLQorIGRyaXZlcnMvc3Bp L3NwaS1jYWRlbmNlLXF1YWRzcGkuYyB8IDIxICsrKysrKysrKysrKysrKysrKysrLQorIDIgZmls ZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3BpL0tjb25maWcgYi9kcml2ZXJzL3NwaS9LY29uZmlnCitpbmRleCA0N2Ji YmEwNGZlM2EuLjgzOWQ0MjZhNzQxYyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvc3BpL0tjb25maWcK KysrKyBiL2RyaXZlcnMvc3BpL0tjb25maWcKK0BAIC0yMzksNyArMjM5LDcgQEAgY29uZmlnIFNQ SV9DQURFTkNFCisgCisgY29uZmlnIFNQSV9DQURFTkNFX1FVQURTUEkKKyAJdHJpc3RhdGUgIkNh ZGVuY2UgUXVhZCBTUEkgY29udHJvbGxlciIKKy0JZGVwZW5kcyBvbiBPRiAmJiAoQVJNIHx8IEFS TTY0IHx8IFg4NiB8fCBDT01QSUxFX1RFU1QpCisrCWRlcGVuZHMgb24gT0YgJiYgKEFSTSB8fCBB Uk02NCB8fCBYODYgfHwgUklTQ1YgfHwgQ09NUElMRV9URVNUKQorIAloZWxwCisgCSAgRW5hYmxl IHN1cHBvcnQgZm9yIHRoZSBDYWRlbmNlIFF1YWQgU1BJIEZsYXNoIGNvbnRyb2xsZXIuCisgCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jIGIvZHJpdmVycy9z cGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jCitpbmRleCA2NGI2YTQ2MGQ3MzkuLmM3ODlmYTllMjE3 NyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLXF1YWRzcGkuYworKysrIGIv ZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jCitAQCAtMTYxNSw3ICsxNjE1LDcgQEAg c3RhdGljIGludCBjcXNwaV9zZXR1cF9mbGFzaChzdHJ1Y3QgY3FzcGlfc3QgKmNxc3BpKQorIHN0 YXRpYyBpbnQgY3FzcGlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyB7Cisg CWNvbnN0IHN0cnVjdCBjcXNwaV9kcml2ZXJfcGxhdGRhdGEgKmRkYXRhOworLQlzdHJ1Y3QgcmVz ZXRfY29udHJvbCAqcnN0YywgKnJzdGNfb2NwOworKwlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqcnN0 YywgKnJzdGNfb2NwLCAqcnN0Y19yZWY7CisgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5k ZXY7CisgCXN0cnVjdCBzcGlfbWFzdGVyICptYXN0ZXI7CisgCXN0cnVjdCByZXNvdXJjZSAqcmVz X2FoYjsKK0BAIC0xNzA1LDYgKzE3MDUsMTcgQEAgc3RhdGljIGludCBjcXNwaV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAkJZ290byBwcm9iZV9yZXNldF9mYWlsZWQ7Cisg CX0KKyAKKysJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKHBkZXYtPmRldi5vZl9ub2RlLCAi c3RhcmZpdmUsamg3MTEwLXFzcGkiKSkgeworKwkJcnN0Y19yZWYgPSBkZXZtX3Jlc2V0X2NvbnRy b2xfZ2V0X29wdGlvbmFsX2V4Y2x1c2l2ZShkZXYsICJyc3RjX3JlZiIpOworKwkJaWYgKElTX0VS Uihyc3RjX3JlZikpIHsKKysJCQlyZXQgPSBQVFJfRVJSKHJzdGNfcmVmKTsKKysJCQlkZXZfZXJy KGRldiwgIkNhbm5vdCBnZXQgUVNQSSBSRUYgcmVzZXQuXG4iKTsKKysJCQlnb3RvIHByb2JlX3Jl c2V0X2ZhaWxlZDsKKysJCX0KKysJCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHJzdGNfcmVmKTsKKysJ CXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocnN0Y19yZWYpOworKwl9CisrCisgCXJlc2V0X2NvbnRy b2xfYXNzZXJ0KHJzdGMpOworIAlyZXNldF9jb250cm9sX2RlYXNzZXJ0KHJzdGMpOworIAorQEAg LTE4NTksNiArMTg3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNxc3BpX2RyaXZlcl9wbGF0 ZGF0YSB2ZXJzYWxfb3NwaSA9IHsKKyAJLmdldF9kbWFfc3RhdHVzID0gY3FzcGlfZ2V0X3ZlcnNh bF9kbWFfc3RhdHVzLAorIH07CisgCisrc3RhdGljIGNvbnN0IHN0cnVjdCBjcXNwaV9kcml2ZXJf cGxhdGRhdGEgamg3MTEwX3FzcGkgPSB7CisrCS5xdWlya3MgPSBDUVNQSV9ESVNBQkxFX0RBQ19N T0RFLAorK307CisrCisgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY3FzcGlfZHRf aWRzW10gPSB7CisgCXsKKyAJCS5jb21wYXRpYmxlID0gImNkbnMscXNwaS1ub3IiLAorQEAgLTE4 ODQsNiArMTg5OSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBjcXNwaV9k dF9pZHNbXSA9IHsKKyAJCS5jb21wYXRpYmxlID0gImludGVsLHNvY2ZwZ2EtcXNwaSIsCisgCQku ZGF0YSA9ICZzb2NmcGdhX3FzcGksCisgCX0sCisrCXsKKysJCS5jb21wYXRpYmxlID0gInN0YXJm aXZlLGpoNzExMC1xc3BpIiwKKysJCS5kYXRhID0gJmpoNzExMF9xc3BpLAorKwl9LAorIAl7IC8q IGVuZCBvZiB0YWJsZSAqLyB9CisgfTsKKyAKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDMzLXJpc2N2LWR0cy1zdGFyZml2ZS1FbmFibGUtYXhw MTUwNjAtcG1pYy1mb3ItY3B1ZnJlcS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDMzLXJpc2N2LWR0cy1zdGFyZml2ZS1FbmFibGUtYXhwMTUwNjAtcG1pYy1mb3ItY3B1ZnJlcS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wMTZjMTBmNTRm ZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwMzMtcmlz Y3YtZHRzLXN0YXJmaXZlLUVuYWJsZS1heHAxNTA2MC1wbWljLWZvci1jcHVmcmVxLnBhdGNoCkBA IC0wLDAgKzEsNDIgQEAKK0Zyb20gM2Q1Zjg5MmE0N2I5Y2U5YzQzMjAwZWVmNTNmMTdmMTNjZTdh ZmQ2MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hc29uIEh1byA8bWFzb24uaHVv QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDIxIEFwciAyMDIzIDExOjE0OjI5ICswODAw CitTdWJqZWN0OiBbUEFUQ0ggMzMvODRdIHJpc2N2OiBkdHM6IHN0YXJmaXZlOiBFbmFibGUgYXhw MTUwNjAgcG1pYyBmb3IgY3B1ZnJlcQorCitUaGUgVmlzaW9uRml2ZSAyIGJvYXJkIGhhcyBhbiBl bWJlZGRlZCBwbWljIGF4cDE1MDYwLAord2hpY2ggc3VwcG9ydHMgdGhlIGNwdSBEVkZTIHRocm91 Z2ggdGhlIGRjZGMyIHJlZ3VsYXRvci4KK1RoaXMgcGF0Y2ggZW5hYmxlcyBheHAxNTA2MCBwbWlj IGFuZCBjb25maWdzIHRoZSBkY2RjMi4KKworU2lnbmVkLW9mZi1ieTogTWFzb24gSHVvIDxtYXNv bi5odW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9kdHMvc3RhcmZpdmUvamg3MTEwLXN0 YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpIHwgMTQgKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hh bmdlZCwgMTQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0 cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kgYi9hcmNoL3Jpc2N2 L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQoraW5k ZXggMmE2ZDgxNjA5Mjg0Li5jY2ExYzgwNDA4MDEgMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorKysrIGIv YXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0y LmR0c2kKK0BAIC0xMTQsNiArMTE0LDIwIEBAICZpMmM1IHsKKyAJcGluY3RybC1uYW1lcyA9ICJk ZWZhdWx0IjsKKyAJcGluY3RybC0wID0gPCZpMmM1X3BpbnM+OworIAlzdGF0dXMgPSAib2theSI7 CisrCisrCWF4cDE1MDYwOiBwbWljQDM2IHsKKysJCWNvbXBhdGlibGUgPSAieC1wb3dlcnMsYXhw MTUwNjAiOworKwkJcmVnID0gPDB4MzY+OworKworKwkJcmVndWxhdG9ycyB7CisrCQkJdmRkX2Nw dTogZGNkYzIgeworKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworKwkJCQlyZWd1bGF0b3ItbWlu LW1pY3Jvdm9sdCA9IDw1MDAwMDA+OworKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwx NTQwMDAwPjsKKysJCQkJcmVndWxhdG9yLW5hbWUgPSAidmRkLWNwdSI7CisrCQkJfTsKKysJCX07 CisrCX07CisgfTsKKyAKKyAmaTJjNiB7CistLSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzNC1jcHVmcmVxLWR0LXBsYXRkZXYtQWRkLUpINzExMC1T T0MtdG8tdGhlLWFsbG93bGlzdC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDM0 LWNwdWZyZXEtZHQtcGxhdGRldi1BZGQtSkg3MTEwLVNPQy10by10aGUtYWxsb3dsaXN0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmIyMjExNzA2NjgzZWQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzNC1jcHVmcmVx LWR0LXBsYXRkZXYtQWRkLUpINzExMC1TT0MtdG8tdGhlLWFsbG93bGlzdC5wYXRjaApAQCAtMCww ICsxLDI5IEBACitGcm9tIDJhNjkzZmViMDk1MDA2NTYyNGFhMWJlNGE0ZjAyY2Y2NDlmNzZkNjUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXNvbiBIdW8gPG1hc29uLmh1b0BzdGFy Zml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAyMSBBcHIgMjAyMyAxMToxNDozMCArMDgwMAorU3Vi amVjdDogW1BBVENIIDM0Lzg0XSBjcHVmcmVxOiBkdC1wbGF0ZGV2OiBBZGQgSkg3MTEwIFNPQyB0 byB0aGUgYWxsb3dsaXN0CisKK0FkZCB0aGUgY29tcGF0aWJsZSBzdHJpbmdzIGZvciBzdXBwb3J0 aW5nIHRoZSBnZW5lcmljCitjcHVmcmVxIGRyaXZlciBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNv Qy4KKworU2lnbmVkLW9mZi1ieTogTWFzb24gSHVvIDxtYXNvbi5odW9Ac3RhcmZpdmV0ZWNoLmNv bT4KKy0tLQorIGRyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxLWR0LXBsYXRkZXYuYyB8IDIgKysKKyAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nw dWZyZXEvY3B1ZnJlcS1kdC1wbGF0ZGV2LmMgYi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS1kdC1w bGF0ZGV2LmMKK2luZGV4IGU4NTcwMzY1MTA5OC4uNzk1MzdkMGVkN2NmIDEwMDY0NAorLS0tIGEv ZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEtZHQtcGxhdGRldi5jCisrKysgYi9kcml2ZXJzL2NwdWZy ZXEvY3B1ZnJlcS1kdC1wbGF0ZGV2LmMKK0BAIC04Niw2ICs4Niw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFsbG93bGlzdFtdIF9faW5pdGNvbnN0ID0geworIAl7IC5jb21w YXRpYmxlID0gInN0LWVyaWNzc29uLHU5NTAwIiwgfSwKKyAJeyAuY29tcGF0aWJsZSA9ICJzdC1l cmljc3Nvbix1OTU0MCIsIH0sCisgCisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEw IiwgfSwKKysKKyAJeyAuY29tcGF0aWJsZSA9ICJ0aSxvbWFwMiIsIH0sCisgCXsgLmNvbXBhdGli bGUgPSAidGksb21hcDQiLCB9LAorIAl7IC5jb21wYXRpYmxlID0gInRpLG9tYXA1IiwgfSwKKy0t IAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDM1LXJp c2N2LWR0cy1zdGFyZml2ZS1BZGQtY3B1LXNjYWxpbmctZm9yLUpINzExMC1Tb0MucGF0Y2ggYi9z cmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzNS1yaXNjdi1kdHMtc3RhcmZpdmUtQWRkLWNwdS1z Y2FsaW5nLWZvci1KSDcxMTAtU29DLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAuLjUzYTdkYjViZTJkMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDAzNS1yaXNjdi1kdHMtc3RhcmZpdmUtQWRkLWNwdS1zY2FsaW5nLWZv ci1KSDcxMTAtU29DLnBhdGNoCkBAIC0wLDAgKzEsMTEzIEBACitGcm9tIGM4MzJmOGQxMDMxN2Yx YjMxNDVlZDVlMTM4ZjgwMWZkZDk0YzgzMTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBNYXNvbiBIdW8gPG1hc29uLmh1b0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAyMSBB cHIgMjAyMyAxMToxNDozMSArMDgwMAorU3ViamVjdDogW1BBVENIIDM1Lzg0XSByaXNjdjogZHRz OiBzdGFyZml2ZTogQWRkIGNwdSBzY2FsaW5nIGZvciBKSDcxMTAgU29DCisKK0FkZCB0aGUgb3Bl cmF0aW5nLXBvaW50cy12MiB0byBzdXBwb3J0IGNwdSBzY2FsaW5nIG9uIFN0YXJGaXZlIEpINzEx MCBTb0MuCitJdCBzdXBwb3J0cyB1cCB0byA0IGNwdSBmcmVxdWVuY3kgbG9hZHMuCisKK1NpZ25l ZC1vZmYtYnk6IE1hc29uIEh1byA8bWFzb24uaHVvQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAu Li4vamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpICAgICAgICAgfCAxNiArKysrKysr KysKKyBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpICAgICAgfCAzMyAr KysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspCisK K2RpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2 ZS12aXNpb25maXZlLTIuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEw LXN0YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpCitpbmRleCBjY2ExYzgwNDA4MDEuLjQzYTlkYmI4 MzlkMiAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0 YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJm aXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorQEAgLTIyNywzICsyMjcsMTkg QEAgJnVhcnQwIHsKKyAJcGluY3RybC0wID0gPCZ1YXJ0MF9waW5zPjsKKyAJc3RhdHVzID0gIm9r YXkiOworIH07CisrCisrJlU3NF8xIHsKKysJY3B1LXN1cHBseSA9IDwmdmRkX2NwdT47CisrfTsK KysKKysmVTc0XzIgeworKwljcHUtc3VwcGx5ID0gPCZ2ZGRfY3B1PjsKKyt9OworKworKyZVNzRf MyB7CisrCWNwdS1zdXBwbHkgPSA8JnZkZF9jcHU+OworK307CisrCisrJlU3NF80IHsKKysJY3B1 LXN1cHBseSA9IDwmdmRkX2NwdT47CisrfTsKK2RpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3Qv ZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9q aDcxMTAuZHRzaQoraW5kZXggNTg3YWE2ODMwYzRiLi45MGZkMGViNTIwMDQgMTAwNjQ0CistLS0g YS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCisrKysgYi9hcmNoL3Jp c2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitAQCAtNTMsNiArNTMsOSBAQCBVNzRf MTogY3B1QDEgeworIAkJCW5leHQtbGV2ZWwtY2FjaGUgPSA8JmNjYWNoZT47CisgCQkJcmlzY3Ys aXNhID0gInJ2NjRpbWFmZGNfemJhX3piYiI7CisgCQkJdGxiLXNwbGl0OworKwkJCW9wZXJhdGlu Zy1wb2ludHMtdjIgPSA8JmNwdV9vcHA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9T WVNDTEtfQ1BVX0NPUkU+OworKwkJCWNsb2NrLW5hbWVzID0gImNwdSI7CisgCisgCQkJY3B1MV9p bnRjOiBpbnRlcnJ1cHQtY29udHJvbGxlciB7CisgCQkJCWNvbXBhdGlibGUgPSAicmlzY3YsY3B1 LWludGMiOworQEAgLTc5LDYgKzgyLDkgQEAgVTc0XzI6IGNwdUAyIHsKKyAJCQluZXh0LWxldmVs LWNhY2hlID0gPCZjY2FjaGU+OworIAkJCXJpc2N2LGlzYSA9ICJydjY0aW1hZmRjX3piYV96YmIi OworIAkJCXRsYi1zcGxpdDsKKysJCQlvcGVyYXRpbmctcG9pbnRzLXYyID0gPCZjcHVfb3BwPjsK KysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0NQVV9DT1JFPjsKKysJCQljbG9j ay1uYW1lcyA9ICJjcHUiOworIAorIAkJCWNwdTJfaW50YzogaW50ZXJydXB0LWNvbnRyb2xsZXIg eworIAkJCQljb21wYXRpYmxlID0gInJpc2N2LGNwdS1pbnRjIjsKK0BAIC0xMDUsNiArMTExLDkg QEAgVTc0XzM6IGNwdUAzIHsKKyAJCQluZXh0LWxldmVsLWNhY2hlID0gPCZjY2FjaGU+OworIAkJ CXJpc2N2LGlzYSA9ICJydjY0aW1hZmRjX3piYV96YmIiOworIAkJCXRsYi1zcGxpdDsKKysJCQlv cGVyYXRpbmctcG9pbnRzLXYyID0gPCZjcHVfb3BwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBK SDcxMTBfU1lTQ0xLX0NQVV9DT1JFPjsKKysJCQljbG9jay1uYW1lcyA9ICJjcHUiOworIAorIAkJ CWNwdTNfaW50YzogaW50ZXJydXB0LWNvbnRyb2xsZXIgeworIAkJCQljb21wYXRpYmxlID0gInJp c2N2LGNwdS1pbnRjIjsKK0BAIC0xMzEsNiArMTQwLDkgQEAgVTc0XzQ6IGNwdUA0IHsKKyAJCQlu ZXh0LWxldmVsLWNhY2hlID0gPCZjY2FjaGU+OworIAkJCXJpc2N2LGlzYSA9ICJydjY0aW1hZmRj X3piYV96YmIiOworIAkJCXRsYi1zcGxpdDsKKysJCQlvcGVyYXRpbmctcG9pbnRzLXYyID0gPCZj cHVfb3BwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0NQVV9DT1JFPjsK KysJCQljbG9jay1uYW1lcyA9ICJjcHUiOworIAorIAkJCWNwdTRfaW50YzogaW50ZXJydXB0LWNv bnRyb2xsZXIgeworIAkJCQljb21wYXRpYmxlID0gInJpc2N2LGNwdS1pbnRjIjsKK0BAIC0xNjQs NiArMTc2LDI3IEBAIGNvcmU0IHsKKyAJCX07CisgCX07CisgCisrCWNwdV9vcHA6IG9wcC10YWJs ZS0wIHsKKysJCQljb21wYXRpYmxlID0gIm9wZXJhdGluZy1wb2ludHMtdjIiOworKwkJCW9wcC1z aGFyZWQ7CisrCQkJb3BwLTM3NTAwMDAwMCB7CisrCQkJCQlvcHAtaHogPSAvYml0cy8gNjQgPDM3 NTAwMDAwMD47CisrCQkJCQlvcHAtbWljcm92b2x0ID0gPDgwMDAwMD47CisrCQkJfTsKKysJCQlv cHAtNTAwMDAwMDAwIHsKKysJCQkJCW9wcC1oeiA9IC9iaXRzLyA2NCA8NTAwMDAwMDAwPjsKKysJ CQkJCW9wcC1taWNyb3ZvbHQgPSA8ODAwMDAwPjsKKysJCQl9OworKwkJCW9wcC03NTAwMDAwMDAg eworKwkJCQkJb3BwLWh6ID0gL2JpdHMvIDY0IDw3NTAwMDAwMDA+OworKwkJCQkJb3BwLW1pY3Jv dm9sdCA9IDw4MDAwMDA+OworKwkJCX07CisrCQkJb3BwLTE1MDAwMDAwMDAgeworKwkJCQkJb3Bw LWh6ID0gL2JpdHMvIDY0IDwxNTAwMDAwMDAwPjsKKysJCQkJCW9wcC1taWNyb3ZvbHQgPSA8MTA0 MDAwMD47CisrCQkJfTsKKysJfTsKKysKKyAJZ21hYzBfcmdtaWlfcnhpbjogZ21hYzAtcmdtaWkt cnhpbi1jbG9jayB7CisgCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2NrIjsKKyAJCWNsb2NrLW91 dHB1dC1uYW1lcyA9ICJnbWFjMF9yZ21paV9yeGluIjsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDM2LWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1T dGFyRml2ZS1KSDcxMTAtU3lzdGVtLVRvcC1Hcm8ucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3Bh dGNoZXMvMDAzNi1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLVN5c3RlbS1U b3AtR3JvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjk0 MmZiZTI4MzA0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMv MDAzNi1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLVN5c3RlbS1Ub3AtR3Jv LnBhdGNoCkBAIC0wLDAgKzEsMjAzIEBACitGcm9tIGI5NGI2NzE5NmUwN2JlMzI1OTA0MWViZjhm NTkzODBlMDY3YzYxYjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3Ug PHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogTW9uLCAyNCBBcHIgMjAyMyAyMTo1 NDowMCArMDgwMAorU3ViamVjdDogW1BBVENIIDM2Lzg0XSBkdC1iaW5kaW5nczogY2xvY2s6IEFk ZCBTdGFyRml2ZSBKSDcxMTAKKyBTeXN0ZW0tVG9wLUdyb3VwIGNsb2NrIGFuZCByZXNldCBnZW5l cmF0b3IKKworQWRkIGJpbmRpbmdzIGZvciB0aGUgU3lzdGVtLVRvcC1Hcm91cCBjbG9jayBhbmQg cmVzZXQgZ2VuZXJhdG9yIChTVEdDUkcpCitvbiB0aGUgSkg3MTEwIFJJU0MtViBTb0MgYnkgU3Rh ckZpdmUgTHRkLgorCitSZXZpZXdlZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9m Lmtvemxvd3NraUBsaW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUu d3VAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9jbG9jay9zdGFyZml2ZSxqaDcxMTAtc3Rn Y3JnLnlhbWwgICAgICAgICB8IDgyICsrKysrKysrKysrKysrKysrKysKKyAuLi4vZHQtYmluZGlu Z3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oICAgfCAzNCArKysrKysrKworIC4uLi9kdC1i aW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmggICB8IDI4ICsrKysrKysKKyAzIGZp bGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtc3RnY3Jn LnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9j bG9jay9zdGFyZml2ZSxqaDcxMTAtc3RnY3JnLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRy ZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN0Z2NyZy55YW1sCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5iNjRjY2Q4NDIwMGEKKy0tLSAvZGV2L251 bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2 ZSxqaDcxMTAtc3RnY3JnLnlhbWwKK0BAIC0wLDAgKzEsODIgQEAKKysjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlCisrJVlBTUwgMS4yCisrLS0t CisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9jbG9jay9zdGFyZml2ZSxqaDcx MTAtc3RnY3JnLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2No ZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBTeXN0ZW0tVG9wLUdy b3VwIENsb2NrIGFuZCBSZXNldCBHZW5lcmF0b3IKKysKKyttYWludGFpbmVyczoKKysgIC0gWGlu Z3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKysKKytwcm9wZXJ0aWVzOgorKyAg Y29tcGF0aWJsZToKKysgICAgY29uc3Q6IHN0YXJmaXZlLGpoNzExMC1zdGdjcmcKKysKKysgIHJl ZzoKKysgICAgbWF4SXRlbXM6IDEKKysKKysgIGNsb2NrczoKKysgICAgaXRlbXM6CisrICAgICAg LSBkZXNjcmlwdGlvbjogTWFpbiBPc2NpbGxhdG9yICgyNCBNSHopCisrICAgICAgLSBkZXNjcmlw dGlvbjogSElGSTQgY29yZQorKyAgICAgIC0gZGVzY3JpcHRpb246IFNURyBBWEkvQUhCCisrICAg ICAgLSBkZXNjcmlwdGlvbjogVVNCICgxMjUgTUh6KQorKyAgICAgIC0gZGVzY3JpcHRpb246IENQ VSBCdXMKKysgICAgICAtIGRlc2NyaXB0aW9uOiBISUZJNCBBeGkKKysgICAgICAtIGRlc2NyaXB0 aW9uOiBOT0MgU1RHIEJ1cworKyAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBCdXMKKysKKysgIGNs b2NrLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBvc2MKKysgICAgICAtIGNv bnN0OiBoaWZpNF9jb3JlCisrICAgICAgLSBjb25zdDogc3RnX2F4aWFoYgorKyAgICAgIC0gY29u c3Q6IHVzYl8xMjVtCisrICAgICAgLSBjb25zdDogY3B1X2J1cworKyAgICAgIC0gY29uc3Q6IGhp Zmk0X2F4aQorKyAgICAgIC0gY29uc3Q6IG5vY3N0Z19idXMKKysgICAgICAtIGNvbnN0OiBhcGJf YnVzCisrCisrICAnI2Nsb2NrLWNlbGxzJzoKKysgICAgY29uc3Q6IDEKKysgICAgZGVzY3JpcHRp b246CisrICAgICAgU2VlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+ IGZvciB2YWxpZCBpbmRpY2VzLgorKworKyAgJyNyZXNldC1jZWxscyc6CisrICAgIGNvbnN0OiAx CisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFNlZSA8ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZp dmUsamg3MTEwLWNyZy5oPiBmb3IgdmFsaWQgaW5kaWNlcy4KKysKKytyZXF1aXJlZDoKKysgIC0g Y29tcGF0aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAt ICcjY2xvY2stY2VsbHMnCisrICAtICcjcmVzZXQtY2VsbHMnCisrCisrYWRkaXRpb25hbFByb3Bl cnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgI2luY2x1ZGUgPGR0LWJp bmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaD4KKysKKysgICAgc3RnY3JnOiBjbG9j ay1jb250cm9sbGVyQDEwMjMwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUs amg3MTEwLXN0Z2NyZyI7CisrICAgICAgICByZWcgPSA8MHgxMDIzMDAwMCAweDEwMDAwPjsKKysg ICAgICAgIGNsb2NrcyA9IDwmb3NjPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzEx MF9TWVNDTEtfSElGSTRfQ09SRT4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBf U1lTQ0xLX1NUR19BWElBSEI+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZ U0NMS19VU0JfMTI1TT4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xL X0NQVV9CVVM+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19ISUZJ NF9BWEk+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19OT0NTVEdf QlVTPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfQVBCX0JVUz47 CisrICAgICAgICBjbG9jay1uYW1lcyA9ICJvc2MiLCAiaGlmaTRfY29yZSIsCisrICAgICAgICAg ICAgICAgICAgICAgICJzdGdfYXhpYWhiIiwgInVzYl8xMjVtIiwKKysgICAgICAgICAgICAgICAg ICAgICAgImNwdV9idXMiLCAiaGlmaTRfYXhpIiwKKysgICAgICAgICAgICAgICAgICAgICAgIm5v Y3N0Z19idXMiLCAiYXBiX2J1cyI7CisrICAgICAgICAjY2xvY2stY2VsbHMgPSA8MT47CisrICAg ICAgICAjcmVzZXQtY2VsbHMgPSA8MT47CisrICAgIH07CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k dC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmggYi9pbmNsdWRlL2R0LWJpbmRp bmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAoraW5kZXggMDYyNTdiZmQ5YWMxLi42Yzhl OGI0Y2YxZjYgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZl LGpoNzExMC1jcmcuaAorKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxq aDcxMTAtY3JnLmgKK0BAIC0xLDYgKzEsNyBAQAorIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wIE9SIE1JVCAqLworIC8qCisgICogQ29weXJpZ2h0IDIwMjIgRW1pbCBSZW5uZXIg QmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKysgKiBDb3B5cmlnaHQgMjAyMiBTdGFyRml2ZSBU ZWNobm9sb2d5IENvLiwgTHRkLgorICAqLworIAorICNpZm5kZWYgX19EVF9CSU5ESU5HU19DTE9D S19TVEFSRklWRV9KSDcxMTBfQ1JHX0hfXworQEAgLTIxOCw0ICsyMTksMzcgQEAKKyAKKyAjZGVm aW5lIEpINzExMF9BT05DTEtfRU5ECQkJMTQKKyAKKysvKiBTVEdDUkcgY2xvY2tzICovCisrI2Rl ZmluZSBKSDcxMTBfU1RHQ0xLX0hJRkk0X0NMS19DT1JFCQkwCisrI2RlZmluZSBKSDcxMTBfU1RH Q0xLX1VTQjBfQVBCCQkJMQorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19VU0IwX1VUTUlfQVBCCQky CisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX1VTQjBfQVhJCQkJMworKyNkZWZpbmUgSkg3MTEwX1NU R0NMS19VU0IwX0xQTQkJCTQKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfVVNCMF9TVEIJCQk1Cisr I2RlZmluZSBKSDcxMTBfU1RHQ0xLX1VTQjBfQVBQXzEyNQkJNgorKyNkZWZpbmUgSkg3MTEwX1NU R0NMS19VU0IwX1JFRkNMSwkJNworKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19QQ0lFMF9BWElfTVNU MAkJOAorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19QQ0lFMF9BUEIJCQk5CisrI2RlZmluZSBKSDcx MTBfU1RHQ0xLX1BDSUUwX1RMCQkJMTAKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfUENJRTFfQVhJ X01TVDAJCTExCisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX1BDSUUxX0FQQgkJCTEyCisrI2RlZmlu ZSBKSDcxMTBfU1RHQ0xLX1BDSUUxX1RMCQkJMTMKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfUENJ RV9TTFZfTUFJTgkJMTQKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfU0VDX0FIQgkJCTE1CisrI2Rl ZmluZSBKSDcxMTBfU1RHQ0xLX1NFQ19NSVNDX0FIQgkJMTYKKysjZGVmaW5lIEpINzExMF9TVEdD TEtfR1JQMF9NQUlOCQkJMTcKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfR1JQMF9CVVMJCQkxOAor KyNkZWZpbmUgSkg3MTEwX1NUR0NMS19HUlAwX1NURwkJCTE5CisrI2RlZmluZSBKSDcxMTBfU1RH Q0xLX0dSUDFfTUFJTgkJCTIwCisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX0dSUDFfQlVTCQkJMjEK KysjZGVmaW5lIEpINzExMF9TVEdDTEtfR1JQMV9TVEcJCQkyMgorKyNkZWZpbmUgSkg3MTEwX1NU R0NMS19HUlAxX0hJRkkJCQkyMworKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19FMl9SVEMJCQkyNAor KyNkZWZpbmUgSkg3MTEwX1NUR0NMS19FMl9DT1JFCQkJMjUKKysjZGVmaW5lIEpINzExMF9TVEdD TEtfRTJfREJHCQkJMjYKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfRE1BMVBfQVhJCQkJMjcKKysj ZGVmaW5lIEpINzExMF9TVEdDTEtfRE1BMVBfQUhCCQkJMjgKKysKKysjZGVmaW5lIEpINzExMF9T VEdDTEtfRU5ECQkJMjkKKysKKyAjZW5kaWYgLyogX19EVF9CSU5ESU5HU19DTE9DS19TVEFSRklW RV9KSDcxMTBfQ1JHX0hfXyAqLworZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVz ZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFy Zml2ZSxqaDcxMTAtY3JnLmgKK2luZGV4IGQ3OGUzODY5MGNlYi4uNGU5NmFiODFkZDhlIDEwMDY0 NAorLS0tIGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmgK KysrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oCitA QCAtMSw2ICsxLDcgQEAKKyAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBN SVQgKi8KKyAvKgorICAqIENvcHlyaWdodCAoQykgMjAyMiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8 a2VybmVsQGVzbWlsLmRrPgorKyAqIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9s b2d5IENvLiwgTHRkLgorICAqLworIAorICNpZm5kZWYgX19EVF9CSU5ESU5HU19SRVNFVF9TVEFS RklWRV9KSDcxMTBfQ1JHX0hfXworQEAgLTE1MSw0ICsxNTIsMzEgQEAKKyAKKyAjZGVmaW5lIEpI NzExMF9BT05SU1RfRU5ECQkJOAorIAorKy8qIFNUR0NSRyByZXNldHMgKi8KKysjZGVmaW5lIEpI NzExMF9TVEdSU1RfU1lTQ09OCQkJMAorKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9ISUZJNF9DT1JF CQkxCisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX0hJRkk0X0FYSQkJCTIKKysjZGVmaW5lIEpINzEx MF9TVEdSU1RfU0VDX0FIQgkJCTMKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfRTI0X0NPUkUJCQk0 CisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX0RNQTFQX0FYSQkJCTUKKysjZGVmaW5lIEpINzExMF9T VEdSU1RfRE1BMVBfQUhCCQkJNgorKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9VU0IwX0FYSQkJCTcK KysjZGVmaW5lIEpINzExMF9TVEdSU1RfVVNCMF9BUEIJCQk4CisrI2RlZmluZSBKSDcxMTBfU1RH UlNUX1VTQjBfVVRNSV9BUEIJCTkKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfVVNCMF9QV1JVUAkJ MTAKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfUENJRTBfQVhJX01TVDAJCTExCisrI2RlZmluZSBK SDcxMTBfU1RHUlNUX1BDSUUwX0FYSV9TTFYwCQkxMgorKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9Q Q0lFMF9BWElfU0xWCQkxMworKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9QQ0lFMF9CUkcJCQkxNAor KyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9QQ0lFMF9DT1JFCQkxNQorKyNkZWZpbmUgSkg3MTEwX1NU R1JTVF9QQ0lFMF9BUEIJCQkxNgorKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9QQ0lFMV9BWElfTVNU MAkJMTcKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfUENJRTFfQVhJX1NMVjAJCTE4CisrI2RlZmlu ZSBKSDcxMTBfU1RHUlNUX1BDSUUxX0FYSV9TTFYJCTE5CisrI2RlZmluZSBKSDcxMTBfU1RHUlNU X1BDSUUxX0JSRwkJCTIwCisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX1BDSUUxX0NPUkUJCTIxCisr I2RlZmluZSBKSDcxMTBfU1RHUlNUX1BDSUUxX0FQQgkJCTIyCisrCisrI2RlZmluZSBKSDcxMTBf U1RHUlNUX0VORAkJCTIzCisrCisgI2VuZGlmIC8qIF9fRFRfQklORElOR1NfUkVTRVRfU1RBUkZJ VkVfSkg3MTEwX0NSR19IX18gKi8KKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDM3LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVN5 c3RlbS1Ub3AtR3JvdXAtY2wucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzNy1j bGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1TeXN0ZW0tVG9wLUdyb3VwLWNsLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmE1NDgwMTM1YjIwMmMK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzNy1jbGstc3Rh cmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1TeXN0ZW0tVG9wLUdyb3VwLWNsLnBhdGNoCkBAIC0w LDAgKzEsMjI4IEBACitGcm9tIGY1YzExMGYyN2Q4OTRlYmFmOGMxMDJhMzEyOTJhNTFmZWRhN2Vk ODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8 ZW1pbC5yZW5uZXIuYmVydGhpbmdAY2Fub25pY2FsLmNvbT4KK0RhdGU6IE1vbiwgMjQgQXByIDIw MjMgMjE6NTQ6MDEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAzNy84NF0gY2xrOiBzdGFyZml2ZTog QWRkIFN0YXJGaXZlIEpINzExMCBTeXN0ZW0tVG9wLUdyb3VwCisgY2xvY2sgZHJpdmVyCisKK0Fk ZCBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgU3lzdGVtLVRvcC1Hcm91cCBjbG9jayBj b250cm9sbGVyLgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2 ZXRlY2guY29tPgorQ28tZGV2ZWxvcGVkLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2 ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGVtaWwucmVu bmVyLmJlcnRoaW5nQGNhbm9uaWNhbC5jb20+CistLS0KKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9L Y29uZmlnICAgICAgICAgICAgICAgICAgfCAgMTEgKysKKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9N YWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKworIC4uLi9jbGsvc3RhcmZpdmUvY2xrLXN0 YXJmaXZlLWpoNzExMC1zdGcuYyAgICB8IDE3MyArKysrKysrKysrKysrKysrKysKKyAzIGZpbGVz IGNoYW5nZWQsIDE4NSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Y2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtc3RnLmMKKworZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmln CitpbmRleCA3MWMxMTQ4ZWU1ZjYuLmE2MGFiZWQyMTY1MCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL0tjb25maWcKKysrKyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcK K0BAIC00MiwzICs0MiwxNCBAQCBjb25maWcgQ0xLX1NUQVJGSVZFX0pINzExMF9BT04KKyAJaGVs cAorIAkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBhbHdheXMtb24gY2xvY2sgY29udHJv bGxlciBvbiB0aGUKKyAJICBTdGFyRml2ZSBKSDcxMTAgU29DLgorKworK2NvbmZpZyBDTEtfU1RB UkZJVkVfSkg3MTEwX1NURworKwl0cmlzdGF0ZSAiU3RhckZpdmUgSkg3MTEwIFN5c3RlbS1Ub3At R3JvdXAgY2xvY2sgc3VwcG9ydCIKKysJZGVwZW5kcyBvbiBDTEtfU1RBUkZJVkVfSkg3MTEwX1NZ UworKwlzZWxlY3QgQVVYSUxJQVJZX0JVUworKwlzZWxlY3QgQ0xLX1NUQVJGSVZFX0pINzFYMAor KwlzZWxlY3QgUkVTRVRfU1RBUkZJVkVfSkg3MTEwCisrCWRlZmF1bHQgbSBpZiBBUkNIX1NUQVJG SVZFCisrCWhlbHAKKysJICBTYXkgeWVzIGhlcmUgdG8gc3VwcG9ydCB0aGUgU3lzdGVtLVRvcC1H cm91cCBjbG9jayBjb250cm9sbGVyCisrCSAgb24gdGhlIFN0YXJGaXZlIEpINzExMCBTb0MuCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9z dGFyZml2ZS9NYWtlZmlsZQoraW5kZXggZjNkZjdkOTU3YjFlLi5iODFlOTdlZTI2NTkgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9jbGsv c3RhcmZpdmUvTWFrZWZpbGUKK0BAIC02LDMgKzYsNCBAQCBvYmotJChDT05GSUdfQ0xLX1NUQVJG SVZFX0pINzEwMF9BVURJTykJKz0gY2xrLXN0YXJmaXZlLWpoNzEwMC1hdWRpby5vCisgCisgb2Jq LSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfU1lTKQkrPSBjbGstc3RhcmZpdmUtamg3MTEw LXN5cy5vCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfQU9OKQkrPSBjbGstc3Rh cmZpdmUtamg3MTEwLWFvbi5vCisrb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfU1RH KQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLXN0Zy5vCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv c3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zdGcuYyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZl L2Nsay1zdGFyZml2ZS1qaDcxMTAtc3RnLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMDAuLmRhZmNiNzE5MDU5MgorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9j bGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zdGcuYworQEAgLTAsMCArMSwxNzMgQEAK KysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKy8qCisrICogU3RhckZpdmUg Skg3MTEwIFN5c3RlbS1Ub3AtR3JvdXAgQ2xvY2sgRHJpdmVyCisrICoKKysgKiBDb3B5cmlnaHQg KEMpIDIwMjIgRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KKysgKiBDb3B5 cmlnaHQgKEMpIDIwMjIgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKi8KKysKKysj aW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cisr I2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKworKyNpbmNsdWRlIDxkdC1iaW5k aW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+CisrCisrI2luY2x1ZGUgImNsay1zdGFy Zml2ZS1qaDcxMTAuaCIKKysKKysvKiBleHRlcm5hbCBjbG9ja3MgKi8KKysjZGVmaW5lIEpINzEx MF9TVEdDTEtfT1NDCQkJKEpINzExMF9TVEdDTEtfRU5EICsgMCkKKysjZGVmaW5lIEpINzExMF9T VEdDTEtfSElGSTRfQ09SRQkJKEpINzExMF9TVEdDTEtfRU5EICsgMSkKKysjZGVmaW5lIEpINzEx MF9TVEdDTEtfU1RHX0FYSUFIQgkJKEpINzExMF9TVEdDTEtfRU5EICsgMikKKysjZGVmaW5lIEpI NzExMF9TVEdDTEtfVVNCXzEyNU0JCQkoSkg3MTEwX1NUR0NMS19FTkQgKyAzKQorKyNkZWZpbmUg Skg3MTEwX1NUR0NMS19DUFVfQlVTCQkJKEpINzExMF9TVEdDTEtfRU5EICsgNCkKKysjZGVmaW5l IEpINzExMF9TVEdDTEtfSElGSTRfQVhJCQkJKEpINzExMF9TVEdDTEtfRU5EICsgNSkKKysjZGVm aW5lIEpINzExMF9TVEdDTEtfTk9DU1RHX0JVUwkJKEpINzExMF9TVEdDTEtfRU5EICsgNikKKysj ZGVmaW5lIEpINzExMF9TVEdDTEtfQVBCX0JVUwkJCShKSDcxMTBfU1RHQ0xLX0VORCArIDcpCisr I2RlZmluZSBKSDcxMTBfU1RHQ0xLX0VYVF9FTkQJCQkoSkg3MTEwX1NUR0NMS19FTkQgKyA4KQor KworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MXgwX2Nsa19kYXRhIGpoNzExMF9zdGdjbGtfZGF0 YVtdID0geworKwkvKiBoaWZpNCAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX0hJRkk0 X0NMS19DT1JFLCAiaGlmaTRfY2xrX2NvcmUiLCAwLAorKwkJICAgIEpINzExMF9TVEdDTEtfSElG STRfQ09SRSksCisrCS8qIHVzYiAqLworKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX1VTQjBf QVBCLCAidXNiMF9hcGIiLCAwLCBKSDcxMTBfU1RHQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfR0FU RShKSDcxMTBfU1RHQ0xLX1VTQjBfVVRNSV9BUEIsICJ1c2IwX3V0bWlfYXBiIiwgMCwgSkg3MTEw X1NUR0NMS19BUEJfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19VU0IwX0FYSSwg InVzYjBfYXhpIiwgMCwgSkg3MTEwX1NUR0NMS19TVEdfQVhJQUhCKSwKKysJSkg3MVgwX0dESVYo Skg3MTEwX1NUR0NMS19VU0IwX0xQTSwgInVzYjBfbHBtIiwgMCwgMiwgSkg3MTEwX1NUR0NMS19P U0MpLAorKwlKSDcxWDBfR0RJVihKSDcxMTBfU1RHQ0xLX1VTQjBfU1RCLCAidXNiMF9zdGIiLCAw LCA0LCBKSDcxMTBfU1RHQ0xLX09TQyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfVVNC MF9BUFBfMTI1LCAidXNiMF9hcHBfMTI1IiwgMCwgSkg3MTEwX1NUR0NMS19VU0JfMTI1TSksCisr CUpINzFYMF9fRElWKEpINzExMF9TVEdDTEtfVVNCMF9SRUZDTEssICJ1c2IwX3JlZmNsayIsIDIs IEpINzExMF9TVEdDTEtfT1NDKSwKKysJLyogcGNpLWUgKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEw X1NUR0NMS19QQ0lFMF9BWElfTVNUMCwgInBjaWUwX2F4aV9tc3QwIiwgMCwKKysJCSAgICBKSDcx MTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX1BDSUUw X0FQQiwgInBjaWUwX2FwYiIsIDAsIEpINzExMF9TVEdDTEtfQVBCX0JVUyksCisrCUpINzFYMF9H QVRFKEpINzExMF9TVEdDTEtfUENJRTBfVEwsICJwY2llMF90bCIsIDAsIEpINzExMF9TVEdDTEtf U1RHX0FYSUFIQiksCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfUENJRTFfQVhJX01TVDAs ICJwY2llMV9heGlfbXN0MCIsIDAsCisrCQkgICAgSkg3MTEwX1NUR0NMS19TVEdfQVhJQUhCKSwK KysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19QQ0lFMV9BUEIsICJwY2llMV9hcGIiLCAwLCBK SDcxMTBfU1RHQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX1BDSUUx X1RMLCAicGNpZTFfdGwiLCAwLCBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcxWDBf R0FURShKSDcxMTBfU1RHQ0xLX1BDSUVfU0xWX01BSU4sICJwY2llX3Nsdl9tYWluIiwgQ0xLX0lT X0NSSVRJQ0FMLAorKwkJICAgIEpINzExMF9TVEdDTEtfU1RHX0FYSUFIQiksCisrCS8qIHNlY3Vy aXR5ICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfU0VDX0FIQiwgInNlY19haGIiLCAw LCBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xL X1NFQ19NSVNDX0FIQiwgInNlY19taXNjX2FoYiIsIDAsIEpINzExMF9TVEdDTEtfU1RHX0FYSUFI QiksCisrCS8qIHN0ZyBtdHJ4ICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfR1JQMF9N QUlOLCAibXRyeF9ncnAwX21haW4iLCBDTEtfSVNfQ1JJVElDQUwsCisrCQkgICAgSkg3MTEwX1NU R0NMS19DUFVfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19HUlAwX0JVUywgIm10 cnhfZ3JwMF9idXMiLCBDTEtfSVNfQ1JJVElDQUwsCisrCQkgICAgSkg3MTEwX1NUR0NMS19OT0NT VEdfQlVTKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19HUlAwX1NURywgIm10cnhfZ3Jw MF9zdGciLCBDTEtfSVNfQ1JJVElDQUwsCisrCQkgICAgSkg3MTEwX1NUR0NMS19TVEdfQVhJQUhC KSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19HUlAxX01BSU4sICJtdHJ4X2dycDFfbWFp biIsIENMS19JU19DUklUSUNBTCwKKysJCSAgICBKSDcxMTBfU1RHQ0xLX0NQVV9CVVMpLAorKwlK SDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX0dSUDFfQlVTLCAibXRyeF9ncnAxX2J1cyIsIENMS19J U19DUklUSUNBTCwKKysJCSAgICBKSDcxMTBfU1RHQ0xLX05PQ1NUR19CVVMpLAorKwlKSDcxWDBf R0FURShKSDcxMTBfU1RHQ0xLX0dSUDFfU1RHLCAibXRyeF9ncnAxX3N0ZyIsIENMS19JU19DUklU SUNBTCwKKysJCSAgICBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcxWDBfR0FURShK SDcxMTBfU1RHQ0xLX0dSUDFfSElGSSwgIm10cnhfZ3JwMV9oaWZpIiwgQ0xLX0lTX0NSSVRJQ0FM LAorKwkJICAgIEpINzExMF9TVEdDTEtfSElGSTRfQVhJKSwKKysJLyogZTI0X3J2cGkgKi8KKysJ Skg3MVgwX0dESVYoSkg3MTEwX1NUR0NMS19FMl9SVEMsICJlMl9ydGMiLCAwLCAyNCwgSkg3MTEw X1NUR0NMS19PU0MpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX0UyX0NPUkUsICJlMl9j b3JlIiwgMCwgSkg3MTEwX1NUR0NMS19TVEdfQVhJQUhCKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEw X1NUR0NMS19FMl9EQkcsICJlMl9kYmciLCAwLCBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAor KwkvKiBkd19zZ2RtYTFwICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfRE1BMVBfQVhJ LCAiZG1hMXBfYXhpIiwgMCwgSkg3MTEwX1NUR0NMS19TVEdfQVhJQUhCKSwKKysJSkg3MVgwX0dB VEUoSkg3MTEwX1NUR0NMS19ETUExUF9BSEIsICJkbWExcF9haGIiLCAwLCBKSDcxMTBfU1RHQ0xL X1NUR19BWElBSEIpLAorK307CisrCisrc3RhdGljIHN0cnVjdCBjbGtfaHcgKmpoNzExMF9zdGdj bGtfZ2V0KHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMsIHZvaWQgKmRhdGEpCisrewor KwlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2ID0gZGF0YTsKKysJdW5zaWduZWQgaW50IGlk eCA9IGNsa3NwZWMtPmFyZ3NbMF07CisrCisrCWlmIChpZHggPCBKSDcxMTBfU1RHQ0xLX0VORCkK KysJCXJldHVybiAmcHJpdi0+cmVnW2lkeF0uaHc7CisrCisrCXJldHVybiBFUlJfUFRSKC1FSU5W QUwpOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9zdGdjcmdfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXY7Cisr CXVuc2lnbmVkIGludCBpZHg7CisrCWludCByZXQ7CisrCisrCXByaXYgPSBkZXZtX2t6YWxsb2Mo JnBkZXYtPmRldiwgc3RydWN0X3NpemUocHJpdiwgcmVnLCBKSDcxMTBfU1RHQ0xLX0VORCksCisr CQkJICAgIEdGUF9LRVJORUwpOworKwlpZiAoIXByaXYpCisrCQlyZXR1cm4gLUVOT01FTTsKKysK KysJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnJtd19sb2NrKTsKKysJcHJpdi0+ZGV2ID0gJnBkZXYt PmRldjsKKysJcHJpdi0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2 LCAwKTsKKysJaWYgKElTX0VSUihwcml2LT5iYXNlKSkKKysJCXJldHVybiBQVFJfRVJSKHByaXYt PmJhc2UpOworKworKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEpINzExMF9TVEdDTEtfRU5EOyBpZHgr KykgeworKwkJdTMyIG1heCA9IGpoNzExMF9zdGdjbGtfZGF0YVtpZHhdLm1heDsKKysJCXN0cnVj dCBjbGtfcGFyZW50X2RhdGEgcGFyZW50c1s0XSA9IHt9OworKwkJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdCA9IHsKKysJCQkubmFtZSA9IGpoNzExMF9zdGdjbGtfZGF0YVtpZHhdLm5hbWUsCisr CQkJLm9wcyA9IHN0YXJmaXZlX2poNzF4MF9jbGtfb3BzKG1heCksCisrCQkJLnBhcmVudF9kYXRh ID0gcGFyZW50cywKKysJCQkubnVtX3BhcmVudHMgPQorKwkJCQkoKG1heCAmIEpINzFYMF9DTEtf TVVYX01BU0spID4+IEpINzFYMF9DTEtfTVVYX1NISUZUKSArIDEsCisrCQkJLmZsYWdzID0gamg3 MTEwX3N0Z2Nsa19kYXRhW2lkeF0uZmxhZ3MsCisrCQl9OworKwkJc3RydWN0IGpoNzF4MF9jbGsg KmNsayA9ICZwcml2LT5yZWdbaWR4XTsKKysJCWNvbnN0IGNoYXIgKmZ3X25hbWVbSkg3MTEwX1NU R0NMS19FWFRfRU5EIC0gSkg3MTEwX1NUR0NMS19FTkRdID0geworKwkJCSJvc2MiLAorKwkJCSJo aWZpNF9jb3JlIiwKKysJCQkic3RnX2F4aWFoYiIsCisrCQkJInVzYl8xMjVtIiwKKysJCQkiY3B1 X2J1cyIsCisrCQkJImhpZmk0X2F4aSIsCisrCQkJIm5vY3N0Z19idXMiLAorKwkJCSJhcGJfYnVz IgorKwkJfTsKKysJCXVuc2lnbmVkIGludCBpOworKworKwkJZm9yIChpID0gMDsgaSA8IGluaXQu bnVtX3BhcmVudHM7IGkrKykgeworKwkJCXVuc2lnbmVkIGludCBwaWR4ID0gamg3MTEwX3N0Z2Ns a19kYXRhW2lkeF0ucGFyZW50c1tpXTsKKysKKysJCQlpZiAocGlkeCA8IEpINzExMF9TVEdDTEtf RU5EKQorKwkJCQlwYXJlbnRzW2ldLmh3ID0gJnByaXYtPnJlZ1twaWR4XS5odzsKKysJCQllbHNl IGlmIChwaWR4IDwgSkg3MTEwX1NUR0NMS19FWFRfRU5EKQorKwkJCQlwYXJlbnRzW2ldLmZ3X25h bWUgPSBmd19uYW1lW3BpZHggLSBKSDcxMTBfU1RHQ0xLX0VORF07CisrCQl9CisrCisrCQljbGst Pmh3LmluaXQgPSAmaW5pdDsKKysJCWNsay0+aWR4ID0gaWR4OworKwkJY2xrLT5tYXhfZGl2ID0g bWF4ICYgSkg3MVgwX0NMS19ESVZfTUFTSzsKKysKKysJCXJldCA9IGRldm1fY2xrX2h3X3JlZ2lz dGVyKCZwZGV2LT5kZXYsICZjbGstPmh3KTsKKysJCWlmIChyZXQpCisrCQkJcmV0dXJuIHJldDsK KysJfQorKworKwlyZXQgPSBkZXZtX29mX2Nsa19hZGRfaHdfcHJvdmlkZXIoJnBkZXYtPmRldiwg amg3MTEwX3N0Z2Nsa19nZXQsIHByaXYpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysK KysJcmV0dXJuIGpoNzExMF9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKHByaXYsICJyc3Qtc3Rn IiwgMik7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF9z dGdjcmdfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtc3Rn Y3JnIiB9LAorKwl7IC8qIHNlbnRpbmVsICovIH0KKyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUo b2YsIGpoNzExMF9zdGdjcmdfbWF0Y2gpOworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJp dmVyIGpoNzExMF9zdGdjcmdfZHJpdmVyID0geworKwkucHJvYmUgPSBqaDcxMTBfc3RnY3JnX3By b2JlLAorKwkuZHJpdmVyID0geworKwkJLm5hbWUgPSAiY2xrLXN0YXJmaXZlLWpoNzExMC1zdGci LAorKwkJLm9mX21hdGNoX3RhYmxlID0gamg3MTEwX3N0Z2NyZ19tYXRjaCwKKysJfSwKKyt9Owor K21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoamg3MTEwX3N0Z2NyZ19kcml2ZXIpOworKworK01PRFVM RV9BVVRIT1IoIlhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9E VUxFX0FVVEhPUigiRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4iKTsKKytN T0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIEpINzExMCBTeXN0ZW0tVG9wLUdyb3VwIGNsb2Nr IGRyaXZlciIpOworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MC4xCisKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDM4LWR0LWJpbmRpbmdzLWNsb2NrLUFk ZC1TdGFyRml2ZS1KSDcxMTAtSW1hZ2UtU2lnbmFsLVAucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDAzOC1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLUltYWdl LVNpZ25hbC1QLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LmM3OGQzNWU0MTExNWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNo ZXMvMDAzOC1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25h bC1QLnBhdGNoCkBAIC0wLDAgKzEsMTY2IEBACitGcm9tIGM5YTkwNzdmM2JiNDgzMDRhOWI4MDA1 NzQ2YzE0YTVkNGIzNzRjNTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUg V3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogTW9uLCAyNCBBcHIgMjAyMyAy MTo1NDowMiArMDgwMAorU3ViamVjdDogW1BBVENIIDM4Lzg0XSBkdC1iaW5kaW5nczogY2xvY2s6 IEFkZCBTdGFyRml2ZSBKSDcxMTAKKyBJbWFnZS1TaWduYWwtUHJvY2VzcyBjbG9jayBhbmQgcmVz ZXQgZ2VuZXJhdG9yCisKK0FkZCBiaW5kaW5ncyBmb3IgdGhlIEltYWdlLVNpZ25hbC1Qcm9jZXNz IGNsb2NrIGFuZCByZXNldAorZ2VuZXJhdG9yIChJU1BDUkcpIG9uIHRoZSBKSDcxMTAgUklTQy1W IFNvQyBieSBTdGFyRml2ZSBMdGQuCisKK1Jldmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tp IDxrcnp5c3p0b2Yua296bG93c2tpQGxpbmFyby5vcmc+CitTaWduZWQtb2ZmLWJ5OiBYaW5neXUg V3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2Nsb2NrL3N0YXJmaXZl LGpoNzExMC1pc3BjcmcueWFtbCAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrKworIC4u Li9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmggICB8IDE4ICsrKysKKyAu Li4vZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oICAgfCAxNiArKysrCisg MyBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBE b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWlz cGNyZy55YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWlzcGNyZy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1pc3BjcmcueWFtbAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uM2I4Yjg1YmU1Y2QwCistLS0gL2Rl di9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3Rh cmZpdmUsamg3MTEwLWlzcGNyZy55YW1sCitAQCAtMCwwICsxLDg3IEBACisrIyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZQorKyVZQU1MIDEuMgor Ky0tLQorKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvY2xvY2svc3RhcmZpdmUs amg3MTEwLWlzcGNyZy55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRh LXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBTdGFyRml2ZSBKSDcxMTAgSW1hZ2UtU2ln bmFsLVByb2Nlc3MgQ2xvY2sgYW5kIFJlc2V0IEdlbmVyYXRvcgorKworK21haW50YWluZXJzOgor KyAgLSBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorKworK3Byb3BlcnRp ZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3MTEwLWlzcGNyZwor KworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKworKyAgY2xvY2tzOgorKyAgICBpdGVtczoK KysgICAgICAtIGRlc2NyaXB0aW9uOiBJU1AgVG9wIGNvcmUKKysgICAgICAtIGRlc2NyaXB0aW9u OiBJU1AgVG9wIEF4aQorKyAgICAgIC0gZGVzY3JpcHRpb246IE5PQyBJU1AgQnVzCisrICAgICAg LSBkZXNjcmlwdGlvbjogZXh0ZXJuYWwgRFZQCisrCisrICBjbG9jay1uYW1lczoKKysgICAgaXRl bXM6CisrICAgICAgLSBjb25zdDogaXNwX3RvcF9jb3JlCisrICAgICAgLSBjb25zdDogaXNwX3Rv cF9heGkKKysgICAgICAtIGNvbnN0OiBub2NfYnVzX2lzcF9heGkKKysgICAgICAtIGNvbnN0OiBk dnBfY2xrCisrCisrICByZXNldHM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246 IElTUCBUb3AgY29yZQorKyAgICAgIC0gZGVzY3JpcHRpb246IElTUCBUb3AgQXhpCisrICAgICAg LSBkZXNjcmlwdGlvbjogTk9DIElTUCBCdXMKKysKKysgICcjY2xvY2stY2VsbHMnOgorKyAgICBj b25zdDogMQorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBTZWUgPGR0LWJpbmRpbmdzL2Nsb2Nr L3N0YXJmaXZlLGpoNzExMC1jcmcuaD4gZm9yIHZhbGlkIGluZGljZXMuCisrCisrICAnI3Jlc2V0 LWNlbGxzJzoKKysgICAgY29uc3Q6IDEKKysgICAgZGVzY3JpcHRpb246CisrICAgICAgU2VlIDxk dC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+IGZvciB2YWxpZCBpbmRpY2Vz LgorKworKyAgcG93ZXItZG9tYWluczoKKysgICAgbWF4SXRlbXM6IDEKKysgICAgZGVzY3JpcHRp b246CisrICAgICAgSVNQIGRvbWFpbiBwb3dlcgorKworK3JlcXVpcmVkOgorKyAgLSBjb21wYXRp YmxlCisrICAtIHJlZworKyAgLSBjbG9ja3MKKysgIC0gY2xvY2stbmFtZXMKKysgIC0gcmVzZXRz CisrICAtICcjY2xvY2stY2VsbHMnCisrICAtICcjcmVzZXQtY2VsbHMnCisrICAtIHBvd2VyLWRv bWFpbnMKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysg IC0gfAorKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNy Zy5oPgorKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZpdmUsamg3MTEwLXBt dS5oPgorKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNy Zy5oPgorKworKyAgICBpc3Bjcmc6IGNsb2NrLWNvbnRyb2xsZXJAMTk4MTAwMDAgeworKyAgICAg ICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtaXNwY3JnIjsKKysgICAgICAgIHJlZyA9 IDwweDE5ODEwMDAwIDB4MTAwMDA+OworKyAgICAgICAgY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19JU1BfVE9QX0NPUkU+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19JU1BfVE9QX0FYST4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBf U1lTQ0xLX05PQ19CVVNfSVNQX0FYST4sCisrICAgICAgICAgICAgICAgICA8JmR2cF9jbGs+Owor KyAgICAgICAgY2xvY2stbmFtZXMgPSAiaXNwX3RvcF9jb3JlIiwgImlzcF90b3BfYXhpIiwKKysg ICAgICAgICAgICAgICAgICAgICAgIm5vY19idXNfaXNwX2F4aSIsICJkdnBfY2xrIjsKKysgICAg ICAgIHJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfSVNQX1RPUD4sCisrICAgICAgICAg ICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX0lTUF9UT1BfQVhJPiwKKysgICAgICAgICAg ICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfTk9DX0JVU19JU1BfQVhJPjsKKysgICAgICAg ICNjbG9jay1jZWxscyA9IDwxPjsKKysgICAgICAgICNyZXNldC1jZWxscyA9IDwxPjsKKysgICAg ICAgIHBvd2VyLWRvbWFpbnMgPSA8JnB3cmMgSkg3MTEwX1BEX0lTUD47CisrICAgIH07CitkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmgg Yi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAoraW5kZXgg NmM4ZThiNGNmMWY2Li4zOWFjZjMwZGI0OTEgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2R0LWJpbmRp bmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAorKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5n cy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmgKK0BAIC0yNTIsNCArMjUyLDIyIEBACisgCisg I2RlZmluZSBKSDcxMTBfU1RHQ0xLX0VORAkJCTI5CisgCisrLyogSVNQQ1JHIGNsb2NrcyAqLwor KyNkZWZpbmUgSkg3MTEwX0lTUENMS19ET000X0FQQl9GVU5DCQkwCisrI2RlZmluZSBKSDcxMTBf SVNQQ0xLX01JUElfUlgwX1BYTAkJMQorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19EVlBfSU5WCQkJ MgorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19NMzFEUEhZX0NGR19JTgkJMworKyNkZWZpbmUgSkg3 MTEwX0lTUENMS19NMzFEUEhZX1JFRl9JTgkJNAorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19NMzFE UEhZX1RYX0VTQ19MQU4wCTUKKysjZGVmaW5lIEpINzExMF9JU1BDTEtfVklOX0FQQgkJCTYKKysj ZGVmaW5lIEpINzExMF9JU1BDTEtfVklOX1NZUwkJCTcKKysjZGVmaW5lIEpINzExMF9JU1BDTEtf VklOX1BJWEVMX0lGMAkJOAorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19WSU5fUElYRUxfSUYxCQk5 CisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX1ZJTl9QSVhFTF9JRjIJCTEwCisrI2RlZmluZSBKSDcx MTBfSVNQQ0xLX1ZJTl9QSVhFTF9JRjMJCTExCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX1ZJTl9Q X0FYSV9XUgkJMTIKKysjZGVmaW5lIEpINzExMF9JU1BDTEtfSVNQVjJfVE9QX1dSQVBQRVJfQwkx MworKworKyNkZWZpbmUgSkg3MTEwX0lTUENMS19FTkQJCQkxNAorKworICNlbmRpZiAvKiBfX0RU X0JJTkRJTkdTX0NMT0NLX1NUQVJGSVZFX0pINzExMF9DUkdfSF9fICovCitkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmggYi9pbmNsdWRl L2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaAoraW5kZXggNGU5NmFiODFk ZDhlLi4yYzVkOWRjZWZmZmEgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0 L3N0YXJmaXZlLGpoNzExMC1jcmcuaAorKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9z dGFyZml2ZSxqaDcxMTAtY3JnLmgKK0BAIC0xNzksNCArMTc5LDIwIEBACisgCisgI2RlZmluZSBK SDcxMTBfU1RHUlNUX0VORAkJCTIzCisgCisrLyogSVNQQ1JHIHJlc2V0cyAqLworKyNkZWZpbmUg Skg3MTEwX0lTUFJTVF9JU1BWMl9UT1BfV1JBUFBFUl9QCTAKKysjZGVmaW5lIEpINzExMF9JU1BS U1RfSVNQVjJfVE9QX1dSQVBQRVJfQwkxCisrI2RlZmluZSBKSDcxMTBfSVNQUlNUX00zMURQSFlf SFcJCTIKKysjZGVmaW5lIEpINzExMF9JU1BSU1RfTTMxRFBIWV9CMDlfQU9OCQkzCisrI2RlZmlu ZSBKSDcxMTBfSVNQUlNUX1ZJTl9BUEIJCQk0CisrI2RlZmluZSBKSDcxMTBfSVNQUlNUX1ZJTl9Q SVhFTF9JRjAJCTUKKysjZGVmaW5lIEpINzExMF9JU1BSU1RfVklOX1BJWEVMX0lGMQkJNgorKyNk ZWZpbmUgSkg3MTEwX0lTUFJTVF9WSU5fUElYRUxfSUYyCQk3CisrI2RlZmluZSBKSDcxMTBfSVNQ UlNUX1ZJTl9QSVhFTF9JRjMJCTgKKysjZGVmaW5lIEpINzExMF9JU1BSU1RfVklOX1NZUwkJCTkK KysjZGVmaW5lIEpINzExMF9JU1BSU1RfVklOX1BfQVhJX1JECQkxMAorKyNkZWZpbmUgSkg3MTEw X0lTUFJTVF9WSU5fUF9BWElfV1IJCTExCisrCisrI2RlZmluZSBKSDcxMTBfSVNQUlNUX0VORAkJ CTEyCisrCisgI2VuZGlmIC8qIF9fRFRfQklORElOR1NfUkVTRVRfU1RBUkZJVkVfSkg3MTEwX0NS R19IX18gKi8KKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0 Y2hlcy8wMDM5LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25hbC1Q cm9jZXMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzOS1jbGstc3RhcmZpdmUt QWRkLVN0YXJGaXZlLUpINzExMC1JbWFnZS1TaWduYWwtUHJvY2VzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjZjNTBhZmE2ZDAzN2YKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDAzOS1jbGstc3RhcmZpdmUtQWRkLVN0 YXJGaXZlLUpINzExMC1JbWFnZS1TaWduYWwtUHJvY2VzLnBhdGNoCkBAIC0wLDAgKzEsMzA1IEBA CitGcm9tIDk5OTU1MWU1YjAwZGM0ZDlhNzIzNzM5ZTgyOGNiMjhkYWRmNjkyYTAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2gu Y29tPgorRGF0ZTogTW9uLCAyNCBBcHIgMjAyMyAyMTo1NDowMyArMDgwMAorU3ViamVjdDogW1BB VENIIDM5Lzg0XSBjbGs6IHN0YXJmaXZlOiBBZGQgU3RhckZpdmUgSkg3MTEwIEltYWdlLVNpZ25h bC1Qcm9jZXNzCisgY2xvY2sgZHJpdmVyCisKK0FkZCBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBK SDcxMTAgSW1hZ2UtU2lnbmFsLVByb2Nlc3MgY2xvY2sgY29udHJvbGxlci4KK0FuZCB0aGVzZSBj bG9jayBjb250cm9sbGVycyBzaG91bGQgcG93ZXIgb24gYW5kIGVuYWJsZSB0aGUgY2xvY2tzIGZy b20KK1NZU0NSRyBmaXJzdCBiZWZvcmUgcmVnaXN0ZXJpbmcuCisKK1NpZ25lZC1vZmYtYnk6IFhp bmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL2Nsay9z dGFyZml2ZS9LY29uZmlnICAgICAgICAgICAgICAgICAgfCAgMTEgKworIGRyaXZlcnMvY2xrL3N0 YXJmaXZlL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCisgLi4uL2Nsay9zdGFyZml2 ZS9jbGstc3RhcmZpdmUtamg3MTEwLWlzcC5jICAgIHwgMjMyICsrKysrKysrKysrKysrKysrKwor IGRyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAuaCAgICB8ICAgNiArCisg NCBmaWxlcyBjaGFuZ2VkLCAyNTAgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLWlzcC5jCisKK2RpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv S2NvbmZpZworaW5kZXggYTYwYWJlZDIxNjUwLi5iZTAyZWFiZWJlZmYgMTAwNjQ0CistLS0gYS9k cml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9L Y29uZmlnCitAQCAtNTMsMyArNTMsMTQgQEAgY29uZmlnIENMS19TVEFSRklWRV9KSDcxMTBfU1RH CisgCWhlbHAKKyAJICBTYXkgeWVzIGhlcmUgdG8gc3VwcG9ydCB0aGUgU3lzdGVtLVRvcC1Hcm91 cCBjbG9jayBjb250cm9sbGVyCisgCSAgb24gdGhlIFN0YXJGaXZlIEpINzExMCBTb0MuCisrCisr Y29uZmlnIENMS19TVEFSRklWRV9KSDcxMTBfSVNQCisrCXRyaXN0YXRlICJTdGFyRml2ZSBKSDcx MTAgSW1hZ2UtU2lnbmFsLVByb2Nlc3MgY2xvY2sgc3VwcG9ydCIKKysJZGVwZW5kcyBvbiBDTEtf U1RBUkZJVkVfSkg3MTEwX1NZUyAmJiBKSDcxWFhfUE1VCisrCXNlbGVjdCBBVVhJTElBUllfQlVT CisrCXNlbGVjdCBDTEtfU1RBUkZJVkVfSkg3MVgwCisrCXNlbGVjdCBSRVNFVF9TVEFSRklWRV9K SDcxMTAKKysJZGVmYXVsdCBtIGlmIEFSQ0hfU1RBUkZJVkUKKysJaGVscAorKwkgIFNheSB5ZXMg aGVyZSB0byBzdXBwb3J0IHRoZSBJbWFnZS1TaWduYWwtUHJvY2VzcyBjbG9jayBjb250cm9sbGVy CisrCSAgb24gdGhlIFN0YXJGaXZlIEpINzExMCBTb0MuCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZQoraW5k ZXggYjgxZTk3ZWUyNjU5Li43NmZiOWY4ZDYyOGIgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9z dGFyZml2ZS9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUKK0BA IC03LDMgKzcsNCBAQCBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzEwMF9BVURJTykJKz0g Y2xrLXN0YXJmaXZlLWpoNzEwMC1hdWRpby5vCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9K SDcxMTBfU1lTKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLXN5cy5vCisgb2JqLSQoQ09ORklHX0NM S19TVEFSRklWRV9KSDcxMTBfQU9OKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLWFvbi5vCisgb2Jq LSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfU1RHKQkrPSBjbGstc3RhcmZpdmUtamg3MTEw LXN0Zy5vCisrb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfSVNQKQkrPSBjbGstc3Rh cmZpdmUtamg3MTEwLWlzcC5vCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xr LXN0YXJmaXZlLWpoNzExMC1pc3AuYyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2 ZS1qaDcxMTAtaXNwLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAu LjdlNTE0NDcwNjBmZQorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv Y2xrLXN0YXJmaXZlLWpoNzExMC1pc3AuYworQEAgLTAsMCArMSwyMzIgQEAKKysvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKy8qCisrICogU3RhckZpdmUgSkg3MTEwIEltYWdl LVNpZ25hbC1Qcm9jZXNzIENsb2NrIERyaXZlcgorKyAqCisrICogQ29weXJpZ2h0IChDKSAyMDIy LTIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKi8KKysKKysjaW5jbHVkZSA8 bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgorKyNpbmNsdWRl IDxsaW51eC9pby5oPgorKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKysjaW5j bHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKwor KyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+CisrCisr I2luY2x1ZGUgImNsay1zdGFyZml2ZS1qaDcxMTAuaCIKKysKKysvKiBleHRlcm5hbCBjbG9ja3Mg Ki8KKysjZGVmaW5lIEpINzExMF9JU1BDTEtfSVNQX1RPUF9DT1JFCQkoSkg3MTEwX0lTUENMS19F TkQgKyAwKQorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19JU1BfVE9QX0FYSQkJKEpINzExMF9JU1BD TEtfRU5EICsgMSkKKysjZGVmaW5lIEpINzExMF9JU1BDTEtfTk9DX0JVU19JU1BfQVhJCQkoSkg3 MTEwX0lTUENMS19FTkQgKyAyKQorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19EVlBfQ0xLCQkJKEpI NzExMF9JU1BDTEtfRU5EICsgMykKKysjZGVmaW5lIEpINzExMF9JU1BDTEtfRVhUX0VORAkJCShK SDcxMTBfSVNQQ0xLX0VORCArIDQpCisrCisrc3RhdGljIHN0cnVjdCBjbGtfYnVsa19kYXRhIGpo NzExMF9pc3BfdG9wX2Nsa3NbXSA9IHsKKysJeyAuaWQgPSAiaXNwX3RvcF9jb3JlIiB9LAorKwl7 IC5pZCA9ICJpc3BfdG9wX2F4aSIgfQorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcx eDBfY2xrX2RhdGEgamg3MTEwX2lzcGNsa19kYXRhW10gPSB7CisrCS8qIHN5c2NvbiAqLworKwlK SDcxWDBfX0RJVihKSDcxMTBfSVNQQ0xLX0RPTTRfQVBCX0ZVTkMsICJkb200X2FwYl9mdW5jIiwg MTUsCisrCQkgICAgSkg3MTEwX0lTUENMS19JU1BfVE9QX0FYSSksCisrCUpINzFYMF9fRElWKEpI NzExMF9JU1BDTEtfTUlQSV9SWDBfUFhMLCAibWlwaV9yeDBfcHhsIiwgOCwKKysJCSAgICBKSDcx MTBfSVNQQ0xLX0lTUF9UT1BfQ09SRSksCisrCUpINzFYMF9fSU5WKEpINzExMF9JU1BDTEtfRFZQ X0lOViwgImR2cF9pbnYiLCBKSDcxMTBfSVNQQ0xLX0RWUF9DTEspLAorKwkvKiB2aW4gKi8KKysJ Skg3MVgwX19ESVYoSkg3MTEwX0lTUENMS19NMzFEUEhZX0NGR19JTiwgIm0zMWRwaHlfY2ZnX2lu IiwgMTYsCisrCQkgICAgSkg3MTEwX0lTUENMS19JU1BfVE9QX0NPUkUpLAorKwlKSDcxWDBfX0RJ VihKSDcxMTBfSVNQQ0xLX00zMURQSFlfUkVGX0lOLCAibTMxZHBoeV9yZWZfaW4iLCAxNiwKKysJ CSAgICBKSDcxMTBfSVNQQ0xLX0lTUF9UT1BfQ09SRSksCisrCUpINzFYMF9fRElWKEpINzExMF9J U1BDTEtfTTMxRFBIWV9UWF9FU0NfTEFOMCwgIm0zMWRwaHlfdHhfZXNjX2xhbjAiLCA2MCwKKysJ CSAgICBKSDcxMTBfSVNQQ0xLX0lTUF9UT1BfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9J U1BDTEtfVklOX0FQQiwgInZpbl9hcGIiLCAwLAorKwkJICAgIEpINzExMF9JU1BDTEtfRE9NNF9B UEJfRlVOQyksCisrCUpINzFYMF9fRElWKEpINzExMF9JU1BDTEtfVklOX1NZUywgInZpbl9zeXMi LCA4LCBKSDcxMTBfSVNQQ0xLX0lTUF9UT1BfQ09SRSksCisrCUpINzFYMF9HQVRFKEpINzExMF9J U1BDTEtfVklOX1BJWEVMX0lGMCwgInZpbl9waXhlbF9pZjAiLCAwLAorKwkJICAgIEpINzExMF9J U1BDTEtfTUlQSV9SWDBfUFhMKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX0lTUENMS19WSU5fUElY RUxfSUYxLCAidmluX3BpeGVsX2lmMSIsIDAsCisrCQkgICAgSkg3MTEwX0lTUENMS19NSVBJX1JY MF9QWEwpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfSVNQQ0xLX1ZJTl9QSVhFTF9JRjIsICJ2aW5f cGl4ZWxfaWYyIiwgMCwKKysJCSAgICBKSDcxMTBfSVNQQ0xLX01JUElfUlgwX1BYTCksCisrCUpI NzFYMF9HQVRFKEpINzExMF9JU1BDTEtfVklOX1BJWEVMX0lGMywgInZpbl9waXhlbF9pZjMiLCAw LAorKwkJICAgIEpINzExMF9JU1BDTEtfTUlQSV9SWDBfUFhMKSwKKysJSkg3MVgwX19NVVgoSkg3 MTEwX0lTUENMS19WSU5fUF9BWElfV1IsICJ2aW5fcF9heGlfd3IiLCAyLAorKwkJICAgIEpINzEx MF9JU1BDTEtfTUlQSV9SWDBfUFhMLAorKwkJICAgIEpINzExMF9JU1BDTEtfRFZQX0lOViksCisr CS8qIGlzcHYyX3RvcF93cmFwcGVyICovCisrCUpINzFYMF9HTVVYKEpINzExMF9JU1BDTEtfSVNQ VjJfVE9QX1dSQVBQRVJfQywgImlzcHYyX3RvcF93cmFwcGVyX2MiLCAwLCAyLAorKwkJICAgIEpI NzExMF9JU1BDTEtfTUlQSV9SWDBfUFhMLAorKwkJICAgIEpINzExMF9JU1BDTEtfRFZQX0lOViks CisrfTsKKysKKytzdGF0aWMgaW5saW5lIGludCBqaDcxMTBfaXNwX3RvcF9yc3RfaW5pdChzdHJ1 Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2KQorK3sKKysJc3RydWN0IHJlc2V0X2NvbnRyb2wgKnRv cF9yc3RzOworKworKwkvKiBUaGUgcmVzZXRzIHNob3VsZCBiZSBzaGFyZWQgYW5kIG90aGVyIElT UCBtb2R1bGVzIHdpbGwgdXNlIGl0cy4gKi8KKysJdG9wX3JzdHMgPSBkZXZtX3Jlc2V0X2NvbnRy b2xfYXJyYXlfZ2V0X3NoYXJlZChwcml2LT5kZXYpOworKwlpZiAoSVNfRVJSKHRvcF9yc3RzKSkK KysJCXJldHVybiBkZXZfZXJyX3Byb2JlKHByaXYtPmRldiwgUFRSX0VSUih0b3BfcnN0cyksCisr CQkJCSAgICAgImZhaWxlZCB0byBnZXQgdG9wIHJlc2V0c1xuIik7CisrCisrCXJldHVybiByZXNl dF9jb250cm9sX2RlYXNzZXJ0KHRvcF9yc3RzKTsKKyt9CisrCisrc3RhdGljIHN0cnVjdCBjbGtf aHcgKmpoNzExMF9pc3BjbGtfZ2V0KHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMsIHZv aWQgKmRhdGEpCisreworKwlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2ID0gZGF0YTsKKysJ dW5zaWduZWQgaW50IGlkeCA9IGNsa3NwZWMtPmFyZ3NbMF07CisrCisrCWlmIChpZHggPCBKSDcx MTBfSVNQQ0xLX0VORCkKKysJCXJldHVybiAmcHJpdi0+cmVnW2lkeF0uaHc7CisrCisrCXJldHVy biBFUlJfUFRSKC1FSU5WQUwpOworK30KKysKKysjaWZkZWYgQ09ORklHX1BNCisrc3RhdGljIGlu dCBqaDcxMTBfaXNwY3JnX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0 IHRvcF9zeXNjbGsgKnRvcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwljbGtfYnVsa19k aXNhYmxlX3VucHJlcGFyZSh0b3AtPnRvcF9jbGtzX251bSwgdG9wLT50b3BfY2xrcyk7CisrCisr CXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9pc3BjcmdfcmVzdW1lKHN0cnVj dCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCB0b3Bfc3lzY2xrICp0b3AgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKKysKKysJcmV0dXJuIGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKHRvcC0+dG9w X2Nsa3NfbnVtLCB0b3AtPnRvcF9jbGtzKTsKKyt9CisrI2VuZGlmCisrCisrc3RhdGljIGNvbnN0 IHN0cnVjdCBkZXZfcG1fb3BzIGpoNzExMF9pc3BjcmdfcG1fb3BzID0geworKwlTRVRfUlVOVElN RV9QTV9PUFMoamg3MTEwX2lzcGNyZ19zdXNwZW5kLCBqaDcxMTBfaXNwY3JnX3Jlc3VtZSwgTlVM TCkKKyt9OworKworK3N0YXRpYyBpbnQgamg3MTEwX2lzcGNyZ19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGpoNzF4MF9jbGtfcHJpdiAqcHJpdjsKKysJ c3RydWN0IHRvcF9zeXNjbGsgKnRvcDsKKysJdW5zaWduZWQgaW50IGlkeDsKKysJaW50IHJldDsK KysKKysJcHJpdiA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LAorKwkJCSAgICBzdHJ1Y3Rfc2l6 ZShwcml2LCByZWcsIEpINzExMF9JU1BDTEtfRU5EKSwKKysJCQkgICAgR0ZQX0tFUk5FTCk7Cisr CWlmICghcHJpdikKKysJCXJldHVybiAtRU5PTUVNOworKworKwl0b3AgPSBkZXZtX2t6YWxsb2Mo JnBkZXYtPmRldiwgc2l6ZW9mKCp0b3ApLCBHRlBfS0VSTkVMKTsKKysJaWYgKCF0b3ApCisrCQly ZXR1cm4gLUVOT01FTTsKKysKKysJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnJtd19sb2NrKTsKKysJ cHJpdi0+ZGV2ID0gJnBkZXYtPmRldjsKKysJcHJpdi0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9y ZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKysJaWYgKElTX0VSUihwcml2LT5iYXNlKSkKKysJCXJl dHVybiBQVFJfRVJSKHByaXYtPmJhc2UpOworKworKwl0b3AtPnRvcF9jbGtzID0gamg3MTEwX2lz cF90b3BfY2xrczsKKysJdG9wLT50b3BfY2xrc19udW0gPSBBUlJBWV9TSVpFKGpoNzExMF9pc3Bf dG9wX2Nsa3MpOworKwlyZXQgPSBkZXZtX2Nsa19idWxrX2dldChwcml2LT5kZXYsIHRvcC0+dG9w X2Nsa3NfbnVtLCB0b3AtPnRvcF9jbGtzKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBkZXZfZXJy X3Byb2JlKHByaXYtPmRldiwgcmV0LCAiZmFpbGVkIHRvIGdldCBtYWluIGNsb2Nrc1xuIik7Cisr CWRldl9zZXRfZHJ2ZGF0YShwcml2LT5kZXYsIHRvcCk7CisrCisrCS8qIGVuYWJsZSBwb3dlciBk b21haW4gYW5kIGNsb2NrcyAqLworKwlwbV9ydW50aW1lX2VuYWJsZShwcml2LT5kZXYpOworKwly ZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKHByaXYtPmRldik7CisrCWlmIChyZXQgPCAwKQorKwkJ cmV0dXJuIGRldl9lcnJfcHJvYmUocHJpdi0+ZGV2LCByZXQsICJmYWlsZWQgdG8gdHVybiBvbiBw b3dlclxuIik7CisrCisrCXJldCA9IGpoNzExMF9pc3BfdG9wX3JzdF9pbml0KHByaXYpOworKwlp ZiAocmV0KQorKwkJZ290byBlcnJfZXhpdDsKKysKKysJZm9yIChpZHggPSAwOyBpZHggPCBKSDcx MTBfSVNQQ0xLX0VORDsgaWR4KyspIHsKKysJCXUzMiBtYXggPSBqaDcxMTBfaXNwY2xrX2RhdGFb aWR4XS5tYXg7CisrCQlzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIHBhcmVudHNbNF0gPSB7fTsKKysJ CXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQgPSB7CisrCQkJLm5hbWUgPSBqaDcxMTBfaXNwY2xr X2RhdGFbaWR4XS5uYW1lLAorKwkJCS5vcHMgPSBzdGFyZml2ZV9qaDcxeDBfY2xrX29wcyhtYXgp LAorKwkJCS5wYXJlbnRfZGF0YSA9IHBhcmVudHMsCisrCQkJLm51bV9wYXJlbnRzID0KKysJCQkJ KChtYXggJiBKSDcxWDBfQ0xLX01VWF9NQVNLKSA+PiBKSDcxWDBfQ0xLX01VWF9TSElGVCkgKyAx LAorKwkJCS5mbGFncyA9IGpoNzExMF9pc3BjbGtfZGF0YVtpZHhdLmZsYWdzLAorKwkJfTsKKysJ CXN0cnVjdCBqaDcxeDBfY2xrICpjbGsgPSAmcHJpdi0+cmVnW2lkeF07CisrCQl1bnNpZ25lZCBp bnQgaTsKKysJCWNvbnN0IGNoYXIgKmZ3X25hbWVbSkg3MTEwX0lTUENMS19FWFRfRU5EIC0gSkg3 MTEwX0lTUENMS19FTkRdID0geworKwkJCSJpc3BfdG9wX2NvcmUiLAorKwkJCSJpc3BfdG9wX2F4 aSIsCisrCQkJIm5vY19idXNfaXNwX2F4aSIsCisrCQkJImR2cF9jbGsiCisrCQl9OworKworKwkJ Zm9yIChpID0gMDsgaSA8IGluaXQubnVtX3BhcmVudHM7IGkrKykgeworKwkJCXVuc2lnbmVkIGlu dCBwaWR4ID0gamg3MTEwX2lzcGNsa19kYXRhW2lkeF0ucGFyZW50c1tpXTsKKysKKysJCQlpZiAo cGlkeCA8IEpINzExMF9JU1BDTEtfRU5EKQorKwkJCQlwYXJlbnRzW2ldLmh3ID0gJnByaXYtPnJl Z1twaWR4XS5odzsKKysJCQllbHNlCisrCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9IGZ3X25hbWVb cGlkeCAtIEpINzExMF9JU1BDTEtfRU5EXTsKKysJCX0KKysKKysJCWNsay0+aHcuaW5pdCA9ICZp bml0OworKwkJY2xrLT5pZHggPSBpZHg7CisrCQljbGstPm1heF9kaXYgPSBtYXggJiBKSDcxWDBf Q0xLX0RJVl9NQVNLOworKworKwkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoJnBkZXYtPmRl diwgJmNsay0+aHcpOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGVycl9leGl0OworKwl9CisrCisr CXJldCA9IGRldm1fb2ZfY2xrX2FkZF9od19wcm92aWRlcigmcGRldi0+ZGV2LCBqaDcxMTBfaXNw Y2xrX2dldCwgcHJpdik7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9leGl0OworKworKwlyZXQg PSBqaDcxMTBfcmVzZXRfY29udHJvbGxlcl9yZWdpc3Rlcihwcml2LCAicnN0LWlzcCIsIDMpOwor KwlpZiAocmV0KQorKwkJZ290byBlcnJfZXhpdDsKKysKKysJcmV0dXJuIDA7CisrCisrZXJyX2V4 aXQ6CisrCXBtX3J1bnRpbWVfcHV0X3N5bmMocHJpdi0+ZGV2KTsKKysJcG1fcnVudGltZV9kaXNh YmxlKHByaXYtPmRldik7CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEw X2lzcGNyZ19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXBtX3J1 bnRpbWVfcHV0X3N5bmMoJnBkZXYtPmRldik7CisrCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ ZGV2KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIGpoNzExMF9pc3BjcmdfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFy Zml2ZSxqaDcxMTAtaXNwY3JnIiB9LAorKwl7IC8qIHNlbnRpbmVsICovIH0KKyt9OworK01PRFVM RV9ERVZJQ0VfVEFCTEUob2YsIGpoNzExMF9pc3BjcmdfbWF0Y2gpOworKworK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIGpoNzExMF9pc3BjcmdfZHJpdmVyID0geworKwkucHJvYmUgPSBq aDcxMTBfaXNwY3JnX3Byb2JlLAorKwkucmVtb3ZlID0gamg3MTEwX2lzcGNyZ19yZW1vdmUsCisr CS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJjbGstc3RhcmZpdmUtamg3MTEwLWlzcCIsCisrCQku b2ZfbWF0Y2hfdGFibGUgPSBqaDcxMTBfaXNwY3JnX21hdGNoLAorKwkJLnBtID0gJmpoNzExMF9p c3BjcmdfcG1fb3BzLAorKwl9LAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBf aXNwY3JnX2RyaXZlcik7CisrCisrTU9EVUxFX0FVVEhPUigiWGluZ3l1IFd1IDx4aW5neXUud3VA c3RhcmZpdmV0ZWNoLmNvbT4iKTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIEpINzEx MCBJbWFnZS1TaWduYWwtUHJvY2VzcyBjbG9jayBkcml2ZXIiKTsKKytNT0RVTEVfTElDRU5TRSgi R1BMIik7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpo NzExMC5oIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC5oCitpbmRl eCBmMjk2ODJiOGQ0MDAuLjU0MjVmZDg5Mzk0YSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAuaAorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv Y2xrLXN0YXJmaXZlLWpoNzExMC5oCitAQCAtNCw2ICs0LDEyIEBACisgCisgI2luY2x1ZGUgImNs ay1zdGFyZml2ZS1qaDcxeDAuaCIKKyAKKysvKiB0b3AgY2xvY2tzIG9mIElTUC9WT1VUIGRvbWFp biBmcm9tIFNZU0NSRyAqLworK3N0cnVjdCB0b3Bfc3lzY2xrIHsKKysJc3RydWN0IGNsa19idWxr X2RhdGEgKnRvcF9jbGtzOworKwlpbnQgdG9wX2Nsa3NfbnVtOworK307CisrCisgaW50IGpoNzEx MF9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKHN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXYs CisgCQkJCSAgICAgY29uc3QgY2hhciAqYWRldl9uYW1lLAorIAkJCQkgICAgIHUzMiBhZGV2X2lk KTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDQwLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWMu cGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0MC1kdC1iaW5kaW5ncy1jbG9jay1B ZGQtU3RhckZpdmUtSkg3MTEwLVZpZGVvLU91dHB1dC1jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmIwYmU5ZDljYWEyMmYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0MC1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3Rh ckZpdmUtSkg3MTEwLVZpZGVvLU91dHB1dC1jLnBhdGNoCkBAIC0wLDAgKzEsMTczIEBACitGcm9t IDNmN2I5NGNlZDkwODA1NzEwNjMyZDgyZTAzNTU2MWM5NjkyOWFhNWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgor RGF0ZTogTW9uLCAyNCBBcHIgMjAyMyAyMTo1NDowNCArMDgwMAorU3ViamVjdDogW1BBVENIIDQw Lzg0XSBkdC1iaW5kaW5nczogY2xvY2s6IEFkZCBTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0cHV0 CisgY2xvY2sgYW5kIHJlc2V0IGdlbmVyYXRvcgorCitBZGQgYmluZGluZ3MgZm9yIHRoZSBWaWRl by1PdXRwdXQgY2xvY2sgYW5kIHJlc2V0IGdlbmVyYXRvciAoVk9VVENSRykKK29uIHRoZSBKSDcx MTAgUklTQy1WIFNvQyBieSBTdGFyRml2ZSBMdGQuCisKK1Jldmlld2VkLWJ5OiBLcnp5c3p0b2Yg S296bG93c2tpIDxrcnp5c3p0b2Yua296bG93c2tpQGxpbmFyby5vcmc+CitTaWduZWQtb2ZmLWJ5 OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2Nsb2Nr L3N0YXJmaXZlLGpoNzExMC12b3V0Y3JnLnlhbWwgICAgICAgIHwgOTAgKysrKysrKysrKysrKysr KysrKworIC4uLi9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmggICB8IDIy ICsrKysrCisgLi4uL2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaCAgIHwg MTYgKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTI4IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZl LGpoNzExMC12b3V0Y3JnLnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtdm91dGNyZy55YW1sIGIvRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC12b3V0Y3Jn LnlhbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmFmNzdiZDhj ODZiMQorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC12b3V0Y3JnLnlhbWwKK0BAIC0wLDAgKzEsOTAgQEAK KysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNl CisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9j bG9jay9zdGFyZml2ZSxqaDcxMTAtdm91dGNyZy55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZp Y2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBTdGFyRml2ZSBK SDcxMTAgVmlkZW8tT3V0cHV0IENsb2NrIGFuZCBSZXNldCBHZW5lcmF0b3IKKysKKyttYWludGFp bmVyczoKKysgIC0gWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKysKKytw cm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgY29uc3Q6IHN0YXJmaXZlLGpoNzExMC12 b3V0Y3JnCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBjbG9ja3M6CisrICAg IGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IFZvdXQgVG9wIGNvcmUKKysgICAgICAtIGRl c2NyaXB0aW9uOiBWb3V0IFRvcCBBaGIKKysgICAgICAtIGRlc2NyaXB0aW9uOiBWb3V0IFRvcCBB eGkKKysgICAgICAtIGRlc2NyaXB0aW9uOiBWb3V0IFRvcCBIRE1JIE1DTEsKKysgICAgICAtIGRl c2NyaXB0aW9uOiBJMlNUWDAgQkNMSworKyAgICAgIC0gZGVzY3JpcHRpb246IGV4dGVybmFsIEhE TUkgcGl4ZWwKKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0 OiB2b3V0X3NyYworKyAgICAgIC0gY29uc3Q6IHZvdXRfdG9wX2FoYgorKyAgICAgIC0gY29uc3Q6 IHZvdXRfdG9wX2F4aQorKyAgICAgIC0gY29uc3Q6IHZvdXRfdG9wX2hkbWl0eDBfbWNsaworKyAg ICAgIC0gY29uc3Q6IGkyc3R4MF9iY2xrCisrICAgICAgLSBjb25zdDogaGRtaXR4MF9waXhlbGNs aworKworKyAgcmVzZXRzOgorKyAgICBtYXhJdGVtczogMQorKyAgICBkZXNjcmlwdGlvbjogVm91 dCBUb3AgY29yZQorKworKyAgJyNjbG9jay1jZWxscyc6CisrICAgIGNvbnN0OiAxCisrICAgIGRl c2NyaXB0aW9uOgorKyAgICAgIFNlZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEw LWNyZy5oPiBmb3IgdmFsaWQgaW5kaWNlcy4KKysKKysgICcjcmVzZXQtY2VsbHMnOgorKyAgICBj b25zdDogMQorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBTZWUgPGR0LWJpbmRpbmdzL3Jlc2V0 L3N0YXJmaXZlLGpoNzExMC1jcmcuaD4gZm9yIHZhbGlkIGluZGljZXMuCisrCisrICBwb3dlci1k b21haW5zOgorKyAgICBtYXhJdGVtczogMQorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBWb3V0 IGRvbWFpbiBwb3dlcgorKworK3JlcXVpcmVkOgorKyAgLSBjb21wYXRpYmxlCisrICAtIHJlZwor KyAgLSBjbG9ja3MKKysgIC0gY2xvY2stbmFtZXMKKysgIC0gcmVzZXRzCisrICAtICcjY2xvY2st Y2VsbHMnCisrICAtICcjcmVzZXQtY2VsbHMnCisrICAtIHBvd2VyLWRvbWFpbnMKKysKKythZGRp dGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAorKyAgICAjaW5j bHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oPgorKyAgICAjaW5j bHVkZSA8ZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZpdmUsamg3MTEwLXBtdS5oPgorKyAgICAjaW5j bHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oPgorKworKyAgICB2 b3V0Y3JnOiBjbG9jay1jb250cm9sbGVyQDI5NUMwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUg PSAic3RhcmZpdmUsamg3MTEwLXZvdXRjcmciOworKyAgICAgICAgcmVnID0gPDB4Mjk1QzAwMDAg MHgxMDAwMD47CisrICAgICAgICBjbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1ZPVVRf U1JDPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVk9VVF9UT1Bf QUhCPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVk9VVF9UT1Bf QVhJPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVk9VVF9UT1Bf SERNSVRYMF9NQ0xLPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNDTEtf STJTVFgwX0JDTEs+LAorKyAgICAgICAgICAgICAgICAgPCZoZG1pdHgwX3BpeGVsY2xrPjsKKysg ICAgICAgIGNsb2NrLW5hbWVzID0gInZvdXRfc3JjIiwgInZvdXRfdG9wX2FoYiIsCisrICAgICAg ICAgICAgICAgICAgICAgICJ2b3V0X3RvcF9heGkiLCAidm91dF90b3BfaGRtaXR4MF9tY2xrIiwK KysgICAgICAgICAgICAgICAgICAgICAgImkyc3R4MF9iY2xrIiwgImhkbWl0eDBfcGl4ZWxjbGsi OworKyAgICAgICAgcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9WT1VUX1RPUF9TUkM+ OworKyAgICAgICAgI2Nsb2NrLWNlbGxzID0gPDE+OworKyAgICAgICAgI3Jlc2V0LWNlbGxzID0g PDE+OworKyAgICAgICAgcG93ZXItZG9tYWlucyA9IDwmcHdyYyBKSDcxMTBfUERfVk9VVD47Cisr ICAgIH07CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxq aDcxMTAtY3JnLmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1j cmcuaAoraW5kZXggMzlhY2YzMGRiNDkxLi4wMTYyMjdjNjRhMjcgMTAwNjQ0CistLS0gYS9pbmNs dWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAorKysrIGIvaW5jbHVk ZS9kdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmgKK0BAIC0yNzAsNCArMjcw LDI2IEBACisgCisgI2RlZmluZSBKSDcxMTBfSVNQQ0xLX0VORAkJCTE0CisgCisrLyogVk9VVENS RyBjbG9ja3MgKi8KKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0FQQgkJCTAKKysjZGVmaW5lIEpI NzExMF9WT1VUQ0xLX0RDODIwMF9QSVgJCTEKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RTSV9T WVMJCQkyCisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19UWF9FU0MJCQkzCisrI2RlZmluZSBKSDcx MTBfVk9VVENMS19EQzgyMDBfQVhJCQk0CisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19EQzgyMDBf Q09SRQkJNQorKyNkZWZpbmUgSkg3MTEwX1ZPVVRDTEtfREM4MjAwX0FIQgkJNgorKyNkZWZpbmUg Skg3MTEwX1ZPVVRDTEtfREM4MjAwX1BJWDAJCTcKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RD ODIwMF9QSVgxCQk4CisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19ET01fVk9VVF9UT1BfTENECQk5 CisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19EU0lUWF9BUEIJCTEwCisrI2RlZmluZSBKSDcxMTBf Vk9VVENMS19EU0lUWF9TWVMJCTExCisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19EU0lUWF9EUEkJ CTEyCisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19EU0lUWF9UWEVTQwkJMTMKKysjZGVmaW5lIEpI NzExMF9WT1VUQ0xLX01JUElUWF9EUEhZX1RYRVNDCTE0CisrI2RlZmluZSBKSDcxMTBfVk9VVENM S19IRE1JX1RYX01DTEsJCTE1CisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19IRE1JX1RYX0JDTEsJ CTE2CisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19IRE1JX1RYX1NZUwkJMTcKKysKKysjZGVmaW5l IEpINzExMF9WT1VUQ0xLX0VORAkJCTE4CisrCisgI2VuZGlmIC8qIF9fRFRfQklORElOR1NfQ0xP Q0tfU1RBUkZJVkVfSkg3MTEwX0NSR19IX18gKi8KK2RpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJp bmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3Mv cmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oCitpbmRleCAyYzVkOWRjZWZmZmEuLmVhZjRhMGQ4 NGY2YSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3 MTEwLWNyZy5oCisrKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzEx MC1jcmcuaAorQEAgLTE5NSw0ICsxOTUsMjAgQEAKKyAKKyAjZGVmaW5lIEpINzExMF9JU1BSU1Rf RU5ECQkJMTIKKyAKKysvKiBWT1VUQ1JHIHJlc2V0cyAqLworKyNkZWZpbmUgSkg3MTEwX1ZPVVRS U1RfREM4MjAwX0FYSQkJMAorKyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1RfREM4MjAwX0FIQgkJMQor KyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1RfREM4MjAwX0NPUkUJCTIKKysjZGVmaW5lIEpINzExMF9W T1VUUlNUX0RTSVRYX0RQSQkJMworKyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1RfRFNJVFhfQVBCCQk0 CisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9EU0lUWF9SWEVTQwkJNQorKyNkZWZpbmUgSkg3MTEw X1ZPVVRSU1RfRFNJVFhfU1lTCQk2CisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9EU0lUWF9UWEJZ VEVIUwkJNworKyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1RfRFNJVFhfVFhFU0MJCTgKKysjZGVmaW5l IEpINzExMF9WT1VUUlNUX0hETUlfVFhfSERNSQkJOQorKyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1Rf TUlQSVRYX0RQSFlfU1lTCQkxMAorKyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1RfTUlQSVRYX0RQSFlf VFhCWVRFSFMJMTEKKysKKysjZGVmaW5lIEpINzExMF9WT1VUUlNUX0VORAkJCTEyCisrCisgI2Vu ZGlmIC8qIF9fRFRfQklORElOR1NfUkVTRVRfU1RBUkZJVkVfSkg3MTEwX0NSR19IX18gKi8KKy0t IAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQxLWNs ay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVZpZGVvLU91dHB1dC1jbG9jay0ucGF0Y2gg Yi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0MS1jbGstc3RhcmZpdmUtQWRkLVN0YXJGaXZl LUpINzExMC1WaWRlby1PdXRwdXQtY2xvY2stLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjlmYTFiM2M5NzJlZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0MS1jbGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzEx MC1WaWRlby1PdXRwdXQtY2xvY2stLnBhdGNoCkBAIC0wLDAgKzEsMjk0IEBACitGcm9tIDI5OWMz NjcyNTY2MWUxODc4NGQ2ZGM2MWZhMWIyNmNkNWEyOWE5MWMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTog TW9uLCAyNCBBcHIgMjAyMyAyMTo1NDowNSArMDgwMAorU3ViamVjdDogW1BBVENIIDQxLzg0XSBj bGs6IHN0YXJmaXZlOiBBZGQgU3RhckZpdmUgSkg3MTEwIFZpZGVvLU91dHB1dCBjbG9jaworIGRy aXZlcgorCitBZGQgZHJpdmVyIGZvciB0aGUgU3RhckZpdmUgSkg3MTEwIFZpZGVvLU91dHB1dCBj bG9jayBjb250cm9sbGVyLgorQW5kIHRoZXNlIGNsb2NrIGNvbnRyb2xsZXJzIHNob3VsZCBwb3dl ciBvbiBhbmQgZW5hYmxlIHRoZSBjbG9ja3MgZnJvbQorU1lTQ1JHIGZpcnN0IGJlZm9yZSByZWdp c3RlcmluZy4KKworU2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0 ZWNoLmNvbT4KKy0tLQorIGRyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcgICAgICAgICAgICAg ICAgICB8ICAxMSArCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUgICAgICAgICAgICAg ICAgIHwgICAxICsKKyAuLi4vY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtdm91dC5j ICAgfCAyMzkgKysrKysrKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAyNTEgaW5zZXJ0 aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3Rh cmZpdmUtamg3MTEwLXZvdXQuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUv S2NvbmZpZyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcKK2luZGV4IGJlMDJlYWJlYmVm Zi4uYjBjNzc0NDk2NWQ3IDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZp ZworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworQEAgLTY0LDMgKzY0LDE0IEBA IGNvbmZpZyBDTEtfU1RBUkZJVkVfSkg3MTEwX0lTUAorIAloZWxwCisgCSAgU2F5IHllcyBoZXJl IHRvIHN1cHBvcnQgdGhlIEltYWdlLVNpZ25hbC1Qcm9jZXNzIGNsb2NrIGNvbnRyb2xsZXIKKyAJ ICBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KKysKKytjb25maWcgQ0xLX1NUQVJGSVZFX0pI NzExMF9WT1VUCisrCXRyaXN0YXRlICJTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0cHV0IGNsb2Nr IHN1cHBvcnQiCisrCWRlcGVuZHMgb24gQ0xLX1NUQVJGSVZFX0pINzExMF9TWVMgJiYgSkg3MVhY X1BNVQorKwlzZWxlY3QgQVVYSUxJQVJZX0JVUworKwlzZWxlY3QgQ0xLX1NUQVJGSVZFX0pINzFY MAorKwlzZWxlY3QgUkVTRVRfU1RBUkZJVkVfSkg3MTEwCisrCWRlZmF1bHQgbSBpZiBBUkNIX1NU QVJGSVZFCisrCWhlbHAKKysJICBTYXkgeWVzIGhlcmUgdG8gc3VwcG9ydCB0aGUgVmlkZW8tT3V0 cHV0IGNsb2NrIGNvbnRyb2xsZXIKKysJICBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL01ha2VmaWxlCitpbmRleCA3NmZiOWY4ZDYyOGIuLjg0MTM3N2U0NWJiNiAxMDA2NDQK Ky0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCisrKysgYi9kcml2ZXJzL2Nsay9z dGFyZml2ZS9NYWtlZmlsZQorQEAgLTgsMyArOCw0IEBAIG9iai0kKENPTkZJR19DTEtfU1RBUkZJ VkVfSkg3MTEwX1NZUykJKz0gY2xrLXN0YXJmaXZlLWpoNzExMC1zeXMubworIG9iai0kKENPTkZJ R19DTEtfU1RBUkZJVkVfSkg3MTEwX0FPTikJKz0gY2xrLXN0YXJmaXZlLWpoNzExMC1hb24ubwor IG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1NURykJKz0gY2xrLXN0YXJmaXZlLWpo NzExMC1zdGcubworIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX0lTUCkJKz0gY2xr LXN0YXJmaXZlLWpoNzExMC1pc3AubworK29iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEw X1ZPVVQpCSs9IGNsay1zdGFyZml2ZS1qaDcxMTAtdm91dC5vCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC12b3V0LmMgYi9kcml2ZXJzL2Nsay9z dGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXZvdXQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAwMC4uZTVlZjBjOGMwNDk0CistLS0gL2Rldi9udWxsCisrKysgYi9k cml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXZvdXQuYworQEAgLTAsMCAr MSwyMzkgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKy8qCisrICog U3RhckZpdmUgSkg3MTEwIFZpZGVvLU91dHB1dCBDbG9jayBEcml2ZXIKKysgKgorKyAqIENvcHly aWdodCAoQykgMjAyMi0yMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICovCisr CisrI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIu aD4KKysjaW5jbHVkZSA8bGludXgvaW8uaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKysjaW5jbHVkZSA8bGludXgv cmVzZXQuaD4KKysKKysjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEw LWNyZy5oPgorKworKyNpbmNsdWRlICJjbGstc3RhcmZpdmUtamg3MTEwLmgiCisrCisrLyogZXh0 ZXJuYWwgY2xvY2tzICovCisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19WT1VUX1NSQwkJCShKSDcx MTBfVk9VVENMS19FTkQgKyAwKQorKyNkZWZpbmUgSkg3MTEwX1ZPVVRDTEtfVk9VVF9UT1BfQUhC CQkoSkg3MTEwX1ZPVVRDTEtfRU5EICsgMSkKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX1ZPVVRf VE9QX0FYSQkJKEpINzExMF9WT1VUQ0xLX0VORCArIDIpCisrI2RlZmluZSBKSDcxMTBfVk9VVENM S19WT1VUX1RPUF9IRE1JVFgwX01DTEsJKEpINzExMF9WT1VUQ0xLX0VORCArIDMpCisrI2RlZmlu ZSBKSDcxMTBfVk9VVENMS19JMlNUWDBfQkNMSwkJKEpINzExMF9WT1VUQ0xLX0VORCArIDQpCisr I2RlZmluZSBKSDcxMTBfVk9VVENMS19IRE1JVFgwX1BJWEVMQ0xLCQkoSkg3MTEwX1ZPVVRDTEtf RU5EICsgNSkKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0VYVF9FTkQJCQkoSkg3MTEwX1ZPVVRD TEtfRU5EICsgNikKKysKKytzdGF0aWMgc3RydWN0IGNsa19idWxrX2RhdGEgamg3MTEwX3ZvdXRf dG9wX2Nsa3NbXSA9IHsKKysJeyAuaWQgPSAidm91dF9zcmMiIH0sCisrCXsgLmlkID0gInZvdXRf dG9wX2FoYiIgfQorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxeDBfY2xrX2RhdGEg amg3MTEwX3ZvdXRjbGtfZGF0YVtdID0geworKwkvKiBkaXZpZGVyICovCisrCUpINzFYMF9fRElW KEpINzExMF9WT1VUQ0xLX0FQQiwgImFwYiIsIDgsIEpINzExMF9WT1VUQ0xLX1ZPVVRfVE9QX0FI QiksCisrCUpINzFYMF9fRElWKEpINzExMF9WT1VUQ0xLX0RDODIwMF9QSVgsICJkYzgyMDBfcGl4 IiwgNjMsIEpINzExMF9WT1VUQ0xLX1ZPVVRfU1JDKSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX1ZP VVRDTEtfRFNJX1NZUywgImRzaV9zeXMiLCAzMSwgSkg3MTEwX1ZPVVRDTEtfVk9VVF9TUkMpLAor KwlKSDcxWDBfX0RJVihKSDcxMTBfVk9VVENMS19UWF9FU0MsICJ0eF9lc2MiLCAzMSwgSkg3MTEw X1ZPVVRDTEtfVk9VVF9UT1BfQUhCKSwKKysJLyogZGM4MjAwICovCisrCUpINzFYMF9HQVRFKEpI NzExMF9WT1VUQ0xLX0RDODIwMF9BWEksICJkYzgyMDBfYXhpIiwgMCwgSkg3MTEwX1ZPVVRDTEtf Vk9VVF9UT1BfQVhJKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1ZPVVRDTEtfREM4MjAwX0NPUkUs ICJkYzgyMDBfY29yZSIsIDAsIEpINzExMF9WT1VUQ0xLX1ZPVVRfVE9QX0FYSSksCisrCUpINzFY MF9HQVRFKEpINzExMF9WT1VUQ0xLX0RDODIwMF9BSEIsICJkYzgyMDBfYWhiIiwgMCwgSkg3MTEw X1ZPVVRDTEtfVk9VVF9UT1BfQUhCKSwKKysJSkg3MVgwX0dNVVgoSkg3MTEwX1ZPVVRDTEtfREM4 MjAwX1BJWDAsICJkYzgyMDBfcGl4MCIsIDAsIDIsCisrCQkgICAgSkg3MTEwX1ZPVVRDTEtfREM4 MjAwX1BJWCwKKysJCSAgICBKSDcxMTBfVk9VVENMS19IRE1JVFgwX1BJWEVMQ0xLKSwKKysJSkg3 MVgwX0dNVVgoSkg3MTEwX1ZPVVRDTEtfREM4MjAwX1BJWDEsICJkYzgyMDBfcGl4MSIsIDAsIDIs CisrCQkgICAgSkg3MTEwX1ZPVVRDTEtfREM4MjAwX1BJWCwKKysJCSAgICBKSDcxMTBfVk9VVENM S19IRE1JVFgwX1BJWEVMQ0xLKSwKKysJLyogTENEICovCisrCUpINzFYMF9HTVVYKEpINzExMF9W T1VUQ0xLX0RPTV9WT1VUX1RPUF9MQ0QsICJkb21fdm91dF90b3BfbGNkIiwgMCwgMiwKKysJCSAg ICBKSDcxMTBfVk9VVENMS19EQzgyMDBfUElYMCwKKysJCSAgICBKSDcxMTBfVk9VVENMS19EQzgy MDBfUElYMSksCisrCS8qIGRzaVR4ICovCisrCUpINzFYMF9HQVRFKEpINzExMF9WT1VUQ0xLX0RT SVRYX0FQQiwgImRzaVR4X2FwYiIsIDAsIEpINzExMF9WT1VUQ0xLX0RTSV9TWVMpLAorKwlKSDcx WDBfR0FURShKSDcxMTBfVk9VVENMS19EU0lUWF9TWVMsICJkc2lUeF9zeXMiLCAwLCBKSDcxMTBf Vk9VVENMS19EU0lfU1lTKSwKKysJSkg3MVgwX0dNVVgoSkg3MTEwX1ZPVVRDTEtfRFNJVFhfRFBJ LCAiZHNpVHhfZHBpIiwgMCwgMiwKKysJCSAgICBKSDcxMTBfVk9VVENMS19EQzgyMDBfUElYLAor KwkJICAgIEpINzExMF9WT1VUQ0xLX0hETUlUWDBfUElYRUxDTEspLAorKwlKSDcxWDBfR0FURShK SDcxMTBfVk9VVENMS19EU0lUWF9UWEVTQywgImRzaVR4X3R4ZXNjIiwgMCwgSkg3MTEwX1ZPVVRD TEtfVFhfRVNDKSwKKysJLyogbWlwaXR4IERQSFkgKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX1ZP VVRDTEtfTUlQSVRYX0RQSFlfVFhFU0MsICJtaXBpdHhfZHBoeV90eGVzYyIsIDAsCisrCQkgICAg Skg3MTEwX1ZPVVRDTEtfVFhfRVNDKSwKKysJLyogaGRtaSAqLworKwlKSDcxWDBfR0FURShKSDcx MTBfVk9VVENMS19IRE1JX1RYX01DTEssICJoZG1pX3R4X21jbGsiLCAwLAorKwkJICAgIEpINzEx MF9WT1VUQ0xLX1ZPVVRfVE9QX0hETUlUWDBfTUNMSyksCisrCUpINzFYMF9HQVRFKEpINzExMF9W T1VUQ0xLX0hETUlfVFhfQkNMSywgImhkbWlfdHhfYmNsayIsIDAsCisrCQkgICAgSkg3MTEwX1ZP VVRDTEtfSTJTVFgwX0JDTEspLAorKwlKSDcxWDBfR0FURShKSDcxMTBfVk9VVENMS19IRE1JX1RY X1NZUywgImhkbWlfdHhfc3lzIiwgMCwgSkg3MTEwX1ZPVVRDTEtfQVBCKSwKKyt9OworKworK3N0 YXRpYyBpbnQgamg3MTEwX3ZvdXRfdG9wX3JzdF9pbml0KHN0cnVjdCBqaDcxeDBfY2xrX3ByaXYg KnByaXYpCisreworKwlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqdG9wX3JzdDsKKysKKysJLyogVGhl IHJlc2V0IHNob3VsZCBiZSBzaGFyZWQgYW5kIG90aGVyIFZvdXQgbW9kdWxlcyB3aWxsIHVzZSBp dHMuICovCisrCXRvcF9yc3QgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X3NoYXJlZChwcml2LT5k ZXYsIE5VTEwpOworKwlpZiAoSVNfRVJSKHRvcF9yc3QpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJv YmUocHJpdi0+ZGV2LCBQVFJfRVJSKHRvcF9yc3QpLCAiZmFpbGVkIHRvIGdldCB0b3AgcmVzZXRc biIpOworKworKwlyZXR1cm4gcmVzZXRfY29udHJvbF9kZWFzc2VydCh0b3BfcnN0KTsKKyt9Cisr Cisrc3RhdGljIHN0cnVjdCBjbGtfaHcgKmpoNzExMF92b3V0Y2xrX2dldChzdHJ1Y3Qgb2ZfcGhh bmRsZV9hcmdzICpjbGtzcGVjLCB2b2lkICpkYXRhKQorK3sKKysJc3RydWN0IGpoNzF4MF9jbGtf cHJpdiAqcHJpdiA9IGRhdGE7CisrCXVuc2lnbmVkIGludCBpZHggPSBjbGtzcGVjLT5hcmdzWzBd OworKworKwlpZiAoaWR4IDwgSkg3MTEwX1ZPVVRDTEtfRU5EKQorKwkJcmV0dXJuICZwcml2LT5y ZWdbaWR4XS5odzsKKysKKysJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisrfQorKworKyNpZmRl ZiBDT05GSUdfUE0KKytzdGF0aWMgaW50IGpoNzExMF92b3V0Y3JnX3N1c3BlbmQoc3RydWN0IGRl dmljZSAqZGV2KQorK3sKKysJc3RydWN0IHRvcF9zeXNjbGsgKnRvcCA9IGRldl9nZXRfZHJ2ZGF0 YShkZXYpOworKworKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZSh0b3AtPnRvcF9jbGtzX251 bSwgdG9wLT50b3BfY2xrcyk7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGpo NzExMF92b3V0Y3JnX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgdG9w X3N5c2NsayAqdG9wID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCXJldHVybiBjbGtfYnVs a19wcmVwYXJlX2VuYWJsZSh0b3AtPnRvcF9jbGtzX251bSwgdG9wLT50b3BfY2xrcyk7CisrfQor KyNlbmRpZgorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBqaDcxMTBfdm91dGNy Z19wbV9vcHMgPSB7CisrCVNFVF9SVU5USU1FX1BNX09QUyhqaDcxMTBfdm91dGNyZ19zdXNwZW5k LCBqaDcxMTBfdm91dGNyZ19yZXN1bWUsIE5VTEwpCisrfTsKKysKKytzdGF0aWMgaW50IGpoNzEx MF92b3V0Y3JnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1 Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2OworKwlzdHJ1Y3QgdG9wX3N5c2NsayAqdG9wOworKwl1 bnNpZ25lZCBpbnQgaWR4OworKwlpbnQgcmV0OworKworKwlwcml2ID0gZGV2bV9remFsbG9jKCZw ZGV2LT5kZXYsCisrCQkJICAgIHN0cnVjdF9zaXplKHByaXYsIHJlZywgSkg3MTEwX1ZPVVRDTEtf RU5EKSwKKysJCQkgICAgR0ZQX0tFUk5FTCk7CisrCWlmICghcHJpdikKKysJCXJldHVybiAtRU5P TUVNOworKworKwl0b3AgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCp0b3ApLCBH RlBfS0VSTkVMKTsKKysJaWYgKCF0b3ApCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJc3Bpbl9s b2NrX2luaXQoJnByaXYtPnJtd19sb2NrKTsKKysJcHJpdi0+ZGV2ID0gJnBkZXYtPmRldjsKKysJ cHJpdi0+YmFzZSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKysJ aWYgKElTX0VSUihwcml2LT5iYXNlKSkKKysJCXJldHVybiBQVFJfRVJSKHByaXYtPmJhc2UpOwor KworKwl0b3AtPnRvcF9jbGtzID0gamg3MTEwX3ZvdXRfdG9wX2Nsa3M7CisrCXRvcC0+dG9wX2Ns a3NfbnVtID0gQVJSQVlfU0laRShqaDcxMTBfdm91dF90b3BfY2xrcyk7CisrCXJldCA9IGRldm1f Y2xrX2J1bGtfZ2V0KHByaXYtPmRldiwgdG9wLT50b3BfY2xrc19udW0sIHRvcC0+dG9wX2Nsa3Mp OworKwlpZiAocmV0KQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUocHJpdi0+ZGV2LCByZXQsICJm YWlsZWQgdG8gZ2V0IHRvcCBjbG9ja3NcbiIpOworKwlkZXZfc2V0X2RydmRhdGEocHJpdi0+ZGV2 LCB0b3ApOworKworKwkvKiBlbmFibGUgcG93ZXIgZG9tYWluIGFuZCBjbG9ja3MgKi8KKysJcG1f cnVudGltZV9lbmFibGUocHJpdi0+ZGV2KTsKKysJcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYyhw cml2LT5kZXYpOworKwlpZiAocmV0IDwgMCkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKHByaXYt PmRldiwgcmV0LCAiZmFpbGVkIHRvIHR1cm4gb24gcG93ZXJcbiIpOworKworKwlyZXQgPSBqaDcx MTBfdm91dF90b3BfcnN0X2luaXQocHJpdik7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9leGl0 OworKworKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEpINzExMF9WT1VUQ0xLX0VORDsgaWR4KyspIHsK KysJCXUzMiBtYXggPSBqaDcxMTBfdm91dGNsa19kYXRhW2lkeF0ubWF4OworKwkJc3RydWN0IGNs a19wYXJlbnRfZGF0YSBwYXJlbnRzWzRdID0ge307CisrCQlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBp bml0ID0geworKwkJCS5uYW1lID0gamg3MTEwX3ZvdXRjbGtfZGF0YVtpZHhdLm5hbWUsCisrCQkJ Lm9wcyA9IHN0YXJmaXZlX2poNzF4MF9jbGtfb3BzKG1heCksCisrCQkJLnBhcmVudF9kYXRhID0g cGFyZW50cywKKysJCQkubnVtX3BhcmVudHMgPQorKwkJCQkoKG1heCAmIEpINzFYMF9DTEtfTVVY X01BU0spID4+IEpINzFYMF9DTEtfTVVYX1NISUZUKSArIDEsCisrCQkJLmZsYWdzID0gamg3MTEw X3ZvdXRjbGtfZGF0YVtpZHhdLmZsYWdzLAorKwkJfTsKKysJCXN0cnVjdCBqaDcxeDBfY2xrICpj bGsgPSAmcHJpdi0+cmVnW2lkeF07CisrCQl1bnNpZ25lZCBpbnQgaTsKKysJCWNvbnN0IGNoYXIg KmZ3X25hbWVbSkg3MTEwX1ZPVVRDTEtfRVhUX0VORCAtIEpINzExMF9WT1VUQ0xLX0VORF0gPSB7 CisrCQkJInZvdXRfc3JjIiwKKysJCQkidm91dF90b3BfYWhiIiwKKysJCQkidm91dF90b3BfYXhp IiwKKysJCQkidm91dF90b3BfaGRtaXR4MF9tY2xrIiwKKysJCQkiaTJzdHgwX2JjbGsiLAorKwkJ CSJoZG1pdHgwX3BpeGVsY2xrIgorKwkJfTsKKysKKysJCWZvciAoaSA9IDA7IGkgPCBpbml0Lm51 bV9wYXJlbnRzOyBpKyspIHsKKysJCQl1bnNpZ25lZCBpbnQgcGlkeCA9IGpoNzExMF92b3V0Y2xr X2RhdGFbaWR4XS5wYXJlbnRzW2ldOworKworKwkJCWlmIChwaWR4IDwgSkg3MTEwX1ZPVVRDTEtf RU5EKQorKwkJCQlwYXJlbnRzW2ldLmh3ID0gJnByaXYtPnJlZ1twaWR4XS5odzsKKysJCQllbHNl IGlmIChwaWR4IDwgSkg3MTEwX1ZPVVRDTEtfRVhUX0VORCkKKysJCQkJcGFyZW50c1tpXS5md19u YW1lID0gZndfbmFtZVtwaWR4IC0gSkg3MTEwX1ZPVVRDTEtfRU5EXTsKKysJCX0KKysKKysJCWNs ay0+aHcuaW5pdCA9ICZpbml0OworKwkJY2xrLT5pZHggPSBpZHg7CisrCQljbGstPm1heF9kaXYg PSBtYXggJiBKSDcxWDBfQ0xLX0RJVl9NQVNLOworKworKwkJcmV0ID0gZGV2bV9jbGtfaHdfcmVn aXN0ZXIoJnBkZXYtPmRldiwgJmNsay0+aHcpOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGVycl9l eGl0OworKwl9CisrCisrCXJldCA9IGRldm1fb2ZfY2xrX2FkZF9od19wcm92aWRlcigmcGRldi0+ ZGV2LCBqaDcxMTBfdm91dGNsa19nZXQsIHByaXYpOworKwlpZiAocmV0KQorKwkJZ290byBlcnJf ZXhpdDsKKysKKysJcmV0ID0gamg3MTEwX3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIocHJpdiwg InJzdC12b3V0IiwgNCk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9leGl0OworKworKwlyZXR1 cm4gMDsKKysKKytlcnJfZXhpdDoKKysJcG1fcnVudGltZV9wdXRfc3luYyhwcml2LT5kZXYpOwor KwlwbV9ydW50aW1lX2Rpc2FibGUocHJpdi0+ZGV2KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisr c3RhdGljIGludCBqaDcxMTBfdm91dGNyZ19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKKyt7CisrCXBtX3J1bnRpbWVfcHV0X3N5bmMoJnBkZXYtPmRldik7CisrCXBtX3J1bnRp bWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBj b25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF92b3V0Y3JnX21hdGNoW10gPSB7CisrCXsg LmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXZvdXRjcmciIH0sCisrCXsgLyogc2VudGlu ZWwgKi8gfQorK307CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3MTEwX3ZvdXRjcmdfbWF0 Y2gpOworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGpoNzExMF92b3V0Y3JnX2Ry aXZlciA9IHsKKysJLnByb2JlID0gamg3MTEwX3ZvdXRjcmdfcHJvYmUsCisrCS5yZW1vdmUgPSBq aDcxMTBfdm91dGNyZ19yZW1vdmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJjbGstc3Rh cmZpdmUtamg3MTEwLXZvdXQiLAorKwkJLm9mX21hdGNoX3RhYmxlID0gamg3MTEwX3ZvdXRjcmdf bWF0Y2gsCisrCQkucG0gPSAmamg3MTEwX3ZvdXRjcmdfcG1fb3BzLAorKwl9LAorK307CisrbW9k dWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBfdm91dGNyZ19kcml2ZXIpOworKworK01PRFVMRV9B VVRIT1IoIlhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxF X0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0cHV0IGNsb2NrIGRyaXZlciIp OworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQyLU1BSU5UQUlORVJTLVVwZGF0ZS1tYWludGFpbmVy LW9mLUpINzF4MC1jbG9jay1kcml2ZXIucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMv MDA0Mi1NQUlOVEFJTkVSUy1VcGRhdGUtbWFpbnRhaW5lci1vZi1KSDcxeDAtY2xvY2stZHJpdmVy LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjliYmRjZmRm M2Q4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0Mi1N QUlOVEFJTkVSUy1VcGRhdGUtbWFpbnRhaW5lci1vZi1KSDcxeDAtY2xvY2stZHJpdmVyLnBhdGNo CkBAIC0wLDAgKzEsMjggQEAKK0Zyb20gNmFiMGZiNmUzZTU0NWQwNDM5MTI2OTFkNzExMjcyZjNl ZWY1ZTE4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1 Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBNb24sIDI0IEFwciAyMDIzIDIxOjU0OjA2ICsw ODAwCitTdWJqZWN0OiBbUEFUQ0ggNDIvODRdIE1BSU5UQUlORVJTOiBVcGRhdGUgbWFpbnRhaW5l ciBvZiBKSDcxeDAgY2xvY2sgZHJpdmVycworCitBZGQgYSBuZXcgbWFpbnRhaW5lciB3aGljaCBp cyBpbiBjaGFyZ2Ugb2YgU3RhckZpdmUgSkg3MTEwCitTVEcvSVNQL1ZPVVQgY2xvY2sgZHJpdmVy cy4KKworU2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNv bT4KKy0tLQorIE1BSU5UQUlORVJTIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCisKK2RpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCitpbmRleCA4M2Q4 OGE2ZmMxZDguLjYyNWQyNTk5MzdlOSAxMDA2NDQKKy0tLSBhL01BSU5UQUlORVJTCisrKysgYi9N QUlOVEFJTkVSUworQEAgLTE5OTE0LDYgKzE5OTE0LDcgQEAgRjoJYXJjaC9yaXNjdi9ib290L2R0 cy9zdGFyZml2ZS8KKyBTVEFSRklWRSBKSDcxWDAgQ0xPQ0sgRFJJVkVSUworIE06CUVtaWwgUmVu bmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisgTToJSGFsIEZlbmcgPGhhbC5mZW5nQHN0 YXJmaXZldGVjaC5jb20+CisrTToJWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNv bT4KKyBTOglNYWludGFpbmVkCisgRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2Nsb2NrL3N0YXJmaXZlLGpoNzEqLnlhbWwKKyBGOglkcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGst c3RhcmZpdmUtamg3MSoKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2 LjMvcGF0Y2hlcy8wMDQzLXJlc2V0LXN0YXJmaXZlLWpoNzExMC1BZGQtU3RhckZpdmUtU1RHLUlT UC1WT1VULXJlc2UucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0My1yZXNldC1z dGFyZml2ZS1qaDcxMTAtQWRkLVN0YXJGaXZlLVNURy1JU1AtVk9VVC1yZXNlLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmJkZDcxY2VhNWNhYmMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0My1yZXNldC1zdGFyZml2 ZS1qaDcxMTAtQWRkLVN0YXJGaXZlLVNURy1JU1AtVk9VVC1yZXNlLnBhdGNoCkBAIC0wLDAgKzEs NjYgQEAKK0Zyb20gNTkyOWNjYzMxYTk4NDEzMmRiZWFkYjZkMDU1ZGIzZGMyZDNiMjc0NyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBNb24sIDI0IEFwciAyMDIzIDIxOjU0OjA3ICswODAwCitTdWJqZWN0 OiBbUEFUQ0ggNDMvODRdIHJlc2V0OiBzdGFyZml2ZTogamg3MTEwOiBBZGQgU3RhckZpdmUgU1RH L0lTUC9WT1VUCisgcmVzZXRzIHN1cHBvcnQKKworQWRkIG5ldyBzdHJ1Y3QgbWVtYmVycyBhbmQg YXV4aWxpYXJ5X2RldmljZV9pZCBvZiByZXNldHMgdG8gc3VwcG9ydAorU3lzdGVtLVRvcC1Hcm91 cCwgSW1hZ2UtU2lnbmFsLVByb2Nlc3MgYW5kIFZpZGVvLU91dHB1dCBvbiB0aGUgU3RhckZpdmUK K0pINzExMCBTb0MuCisKK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJm aXZldGVjaC5jb20+CistLS0KKyAuLi4vcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3 MTEwLmMgICAgfCAzMCArKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDMwIGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQt c3RhcmZpdmUtamg3MTEwLmMgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZlL3Jlc2V0LXN0YXJmaXZl LWpoNzExMC5jCitpbmRleCBjMWIzYTQ5MGQ5NTEuLjRlYjJkYTRhMjJjNCAxMDA2NDQKKy0tLSBh L2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MTEwLmMKKysrKyBiL2Ry aXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MTEwLmMKK0BAIC0yOSw2ICsy OSwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9yZXNldF9pbmZvIGpoNzExMF9hb25f aW5mbyA9IHsKKyAJLnN0YXR1c19vZmZzZXQgPSAweDNDLAorIH07CisgCisrc3RhdGljIGNvbnN0 IHN0cnVjdCBqaDcxMTBfcmVzZXRfaW5mbyBqaDcxMTBfc3RnX2luZm8gPSB7CisrCS5ucl9yZXNl dHMgPSBKSDcxMTBfU1RHUlNUX0VORCwKKysJLmFzc2VydF9vZmZzZXQgPSAweDc0LAorKwkuc3Rh dHVzX29mZnNldCA9IDB4NzgsCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9y ZXNldF9pbmZvIGpoNzExMF9pc3BfaW5mbyA9IHsKKysJLm5yX3Jlc2V0cyA9IEpINzExMF9JU1BS U1RfRU5ELAorKwkuYXNzZXJ0X29mZnNldCA9IDB4MzgsCisrCS5zdGF0dXNfb2Zmc2V0ID0gMHgz QywKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MTEwX3Jlc2V0X2luZm8gamg3MTEw X3ZvdXRfaW5mbyA9IHsKKysJLm5yX3Jlc2V0cyA9IEpINzExMF9WT1VUUlNUX0VORCwKKysJLmFz c2VydF9vZmZzZXQgPSAweDQ4LAorKwkuc3RhdHVzX29mZnNldCA9IDB4NEMsCisrfTsKKysKKyBz dGF0aWMgaW50IGpoNzExMF9yZXNldF9wcm9iZShzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRl diwKKyAJCQkgICAgICBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZV9pZCAqaWQpCisgewor QEAgLTU1LDYgKzczLDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZV9p ZCBqaDcxMTBfcmVzZXRfaWRzW10gPSB7CisgCQkubmFtZSA9ICJjbGtfc3RhcmZpdmVfamg3MTEw X3N5cy5yc3QtYW9uIiwKKyAJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmamg3MTEw X2Fvbl9pbmZvLAorIAl9LAorKwl7CisrCQkubmFtZSA9ICJjbGtfc3RhcmZpdmVfamg3MTEwX3N5 cy5yc3Qtc3RnIiwKKysJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmamg3MTEwX3N0 Z19pbmZvLAorKwl9LAorKwl7CisrCQkubmFtZSA9ICJjbGtfc3RhcmZpdmVfamg3MTEwX3N5cy5y c3QtaXNwIiwKKysJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdCkmamg3MTEwX2lzcF9p bmZvLAorKwl9LAorKwl7CisrCQkubmFtZSA9ICJjbGtfc3RhcmZpdmVfamg3MTEwX3N5cy5yc3Qt dm91dCIsCisrCQkuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJmpoNzExMF92b3V0X2lu Zm8sCisrCX0sCisgCXsgLyogc2VudGluZWwgKi8gfQorIH07CisgTU9EVUxFX0RFVklDRV9UQUJM RShhdXhpbGlhcnksIGpoNzExMF9yZXNldF9pZHMpOworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNDQtcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzEx MC1BZGQtRFZQLWFuZC1IRE1JLVRYLXBpeGVsLS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0 Y2hlcy8wMDQ0LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLURWUC1hbmQtSERNSS1UWC1w aXhlbC0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZjdl MGJiZWJiOGRjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDQ0LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLURWUC1hbmQtSERNSS1UWC1waXhlbC0u cGF0Y2gKQEAgLTAsMCArMSw3NCBAQAorRnJvbSA0OGRlNmM1MGE3ZTc2ODM2MWZkNjA0NTc0YWNm ODQwM2E2OGU5MDRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1IFd1IDx4 aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IE1vbiwgMjQgQXByIDIwMjMgMjE6NTQ6 MDggKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA0NC84NF0gcmlzY3Y6IGR0czogc3RhcmZpdmU6IGpo NzExMDogQWRkIERWUCBhbmQgSERNSSBUWCBwaXhlbAorIGV4dGVybmFsIGNsb2NrcworCitBZGQg RFZQIGFuZCBIRE1JIFRYIHBpeGVsIGV4dGVybmFsIGZpeGVkIGNsb2NrcyBhbmQgdGhlIHJhdGVz IGFyZQorNzQuMjVNSHogYW5kIDI5N01Iei4KKworU2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4 aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9kdHMvc3RhcmZpdmUvamg3MTEw LXN0YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpICAgfCAgOCArKysrKysrKworIGFyY2gvcmlzY3Yv Ym9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgICAgICAgICAgICAgfCAxMiArKysrKysrKysr KysKKyAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi5k dHNpIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9u Zml2ZS0yLmR0c2kKK2luZGV4IDQzYTlkYmI4MzlkMi4uNGNkOWIxMzNkMGRkIDEwMDY0NAorLS0t IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2 ZS0yLmR0c2kKKysrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJm aXZlLXZpc2lvbmZpdmUtMi5kdHNpCitAQCAtMzgsNiArMzgsMTAgQEAgZ3Bpby1yZXN0YXJ0IHsK KyAJfTsKKyB9OworIAorKyZkdnBfY2xrIHsKKysJY2xvY2stZnJlcXVlbmN5ID0gPDc0MjUwMDAw PjsKKyt9OworKworICZnbWFjMF9yZ21paV9yeGluIHsKKyAJY2xvY2stZnJlcXVlbmN5ID0gPDEy NTAwMDAwMD47CisgfTsKK0BAIC01NCw2ICs1OCwxMCBAQCAmZ21hYzFfcm1paV9yZWZpbiB7Cisg CWNsb2NrLWZyZXF1ZW5jeSA9IDw1MDAwMDAwMD47CisgfTsKKyAKKysmaGRtaXR4MF9waXhlbGNs ayB7CisrCWNsb2NrLWZyZXF1ZW5jeSA9IDwyOTcwMDAwMDA+OworK307CisrCisgJmkyc3J4X2Jj bGtfZXh0IHsKKyAJY2xvY2stZnJlcXVlbmN5ID0gPDEyMjg4MDAwPjsKKyB9OworZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgYi9hcmNoL3Jpc2N2 L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitpbmRleCA5MGZkMGViNTIwMDQuLmM0NTIy MmM2MjMwYSAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEw LmR0c2kKKysrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK0BA IC0xOTcsNiArMTk3LDEyIEBAIG9wcC0xNTAwMDAwMDAwIHsKKyAJCQl9OworIAl9OworIAorKwlk dnBfY2xrOiBkdnAtY2xvY2sgeworKwkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7CisrCQlj bG9jay1vdXRwdXQtbmFtZXMgPSAiZHZwX2NsayI7CisrCQkjY2xvY2stY2VsbHMgPSA8MD47Cisr CX07CisrCisgCWdtYWMwX3JnbWlpX3J4aW46IGdtYWMwLXJnbWlpLXJ4aW4tY2xvY2sgeworIAkJ Y29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7CisgCQljbG9jay1vdXRwdXQtbmFtZXMgPSAiZ21h YzBfcmdtaWlfcnhpbiI7CitAQCAtMjIxLDYgKzIyNywxMiBAQCBnbWFjMV9ybWlpX3JlZmluOiBn bWFjMS1ybWlpLXJlZmluLWNsb2NrIHsKKyAJCSNjbG9jay1jZWxscyA9IDwwPjsKKyAJfTsKKyAK KysJaGRtaXR4MF9waXhlbGNsazogaGRtaXR4MC1waXhlbC1jbG9jayB7CisrCQljb21wYXRpYmxl ID0gImZpeGVkLWNsb2NrIjsKKysJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJoZG1pdHgwX3BpeGVs Y2xrIjsKKysJCSNjbG9jay1jZWxscyA9IDwwPjsKKysJfTsKKysKKyAJaTJzcnhfYmNsa19leHQ6 IGkyc3J4LWJjbGstZXh0LWNsb2NrIHsKKyAJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOwor IAkJY2xvY2stb3V0cHV0LW5hbWVzID0gImkyc3J4X2JjbGtfZXh0IjsKKy0tIAorMi40MC4xCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQ1LXJpc2N2LWR0cy1zdGFy Zml2ZS1qaDcxMTAtQWRkLVNUR0NSRy1JU1BDUkctVk9VVENSRy0ucGF0Y2ggYi9zcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDA0NS1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFkZC1TVEdDUkct SVNQQ1JHLVZPVVRDUkctLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAuLjA5OTQwODljMGU4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDA0NS1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFkZC1TVEdDUkctSVNQQ1JH LVZPVVRDUkctLnBhdGNoCkBAIC0wLDAgKzEsOTggQEAKK0Zyb20gNjVmZjk0MDRmYThmOTI3YmQ5 OTQ3NjQ1Nzc3NWNjZWE3YTMyMGU3YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhp bmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBNb24sIDI0IEFwciAy MDIzIDIxOjU0OjA5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNDUvODRdIHJpc2N2OiBkdHM6IHN0 YXJmaXZlOiBqaDcxMTA6IEFkZCBTVEdDUkcvSVNQQ1JHL1ZPVVRDUkcKKyBub2RlcworCitBZGQg U1RHQ1JHL0lTUENSRy9WT1VUQ1JHIG5ldyBub2RlIHRvIHN1cHBvcnQgSkg3MTEwCitTeXN0ZW0t VG9wLUdyb3VwLCBJbWFnZS1TaWduYWwtUHJvY2VzcyBhbmQgVmlkZW8tT3V0cHV0CitjbG9jayBh bmQgcmVzZXQgZHJpdmVycyBmb3IgdGhlIEpINzExMCBSSVNDLVYgU29DLgorCitSZXZpZXdlZC1i eTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KK1NpZ25lZC1vZmYt Ynk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBhcmNoL3Jp c2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIHwgNTUgKysrKysrKysrKysrKysrKysr KysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgYi9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitpbmRleCBjNDUyMjJjNjIzMGEuLjdkZjYwOTRk ZDE1MSAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0 c2kKKysrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK0BAIC02 LDYgKzYsNyBAQAorIAorIC9kdHMtdjEvOworICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9z dGFyZml2ZSxqaDcxMTAtY3JnLmg+CisrI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Bvd2VyL3N0YXJm aXZlLGpoNzExMC1wbXUuaD4KKyAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUs amg3MTEwLWNyZy5oPgorIAorIC8geworQEAgLTM5OCw2ICszOTksMjUgQEAgaTJjMjogaTJjQDEw MDUwMDAwIHsKKyAJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworIAkJfTsKKyAKKysJCXN0Z2NyZzog Y2xvY2stY29udHJvbGxlckAxMDIzMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxq aDcxMTAtc3RnY3JnIjsKKysJCQlyZWcgPSA8MHgwIDB4MTAyMzAwMDAgMHgwIDB4MTAwMDA+Owor KwkJCWNsb2NrcyA9IDwmb3NjPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSElGSTRf Q09SRT4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1NUR19BWElBSEI+LAorKwkJCQkg PCZzeXNjcmcgSkg3MTEwX1NZU0NMS19VU0JfMTI1TT4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBf U1lTQ0xLX0NQVV9CVVM+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19ISUZJNF9BWEk+ LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19OT0NTVEdfQlVTPiwKKysJCQkJIDwmc3lz Y3JnIEpINzExMF9TWVNDTEtfQVBCX0JVUz47CisrCQkJY2xvY2stbmFtZXMgPSAib3NjIiwgImhp Zmk0X2NvcmUiLAorKwkJCQkgICAgICAic3RnX2F4aWFoYiIsICJ1c2JfMTI1bSIsCisrCQkJCSAg ICAgICJjcHVfYnVzIiwgImhpZmk0X2F4aSIsCisrCQkJCSAgICAgICJub2NzdGdfYnVzIiwgImFw Yl9idXMiOworKwkJCSNjbG9jay1jZWxscyA9IDwxPjsKKysJCQkjcmVzZXQtY2VsbHMgPSA8MT47 CisrCQl9OworKworIAkJdWFydDM6IHNlcmlhbEAxMjAwMDAwMCB7CisgCQkJY29tcGF0aWJsZSA9 ICJzbnBzLGR3LWFwYi11YXJ0IjsKKyAJCQlyZWcgPSA8MHgwIDB4MTIwMDAwMDAgMHgwIDB4MTAw MDA+OworQEAgLTU2MSw1ICs1ODEsNDAgQEAgYW9uZ3BpbzogcGluY3RybEAxNzAyMDAwMCB7Cisg CQkJZ3Bpby1jb250cm9sbGVyOworIAkJCSNncGlvLWNlbGxzID0gPDI+OworIAkJfTsKKysKKysJ CWlzcGNyZzogY2xvY2stY29udHJvbGxlckAxOTgxMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJz dGFyZml2ZSxqaDcxMTAtaXNwY3JnIjsKKysJCQlyZWcgPSA8MHgwIDB4MTk4MTAwMDAgMHgwIDB4 MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSVNQX1RPUF9DT1JF PiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSVNQX1RPUF9BWEk+LAorKwkJCQkgPCZz eXNjcmcgSkg3MTEwX1NZU0NMS19OT0NfQlVTX0lTUF9BWEk+LAorKwkJCQkgPCZkdnBfY2xrPjsK KysJCQljbG9jay1uYW1lcyA9ICJpc3BfdG9wX2NvcmUiLCAiaXNwX3RvcF9heGkiLAorKwkJCQkg ICAgICAibm9jX2J1c19pc3BfYXhpIiwgImR2cF9jbGsiOworKwkJCXJlc2V0cyA9IDwmc3lzY3Jn IEpINzExMF9TWVNSU1RfSVNQX1RPUD4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX0lT UF9UT1BfQVhJPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfTk9DX0JVU19JU1BfQVhJ PjsKKysJCQkjY2xvY2stY2VsbHMgPSA8MT47CisrCQkJI3Jlc2V0LWNlbGxzID0gPDE+OworKwkJ CXBvd2VyLWRvbWFpbnMgPSA8JnB3cmMgSkg3MTEwX1BEX0lTUD47CisrCQl9OworKworKwkJdm91 dGNyZzogY2xvY2stY29udHJvbGxlckAyOTVjMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFy Zml2ZSxqaDcxMTAtdm91dGNyZyI7CisrCQkJcmVnID0gPDB4MCAweDI5NWMwMDAwIDB4MCAweDEw MDAwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1ZPVVRfU1JDPiwKKysJ CQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVk9VVF9UT1BfQUhCPiwKKysJCQkJIDwmc3lzY3Jn IEpINzExMF9TWVNDTEtfVk9VVF9UT1BfQVhJPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVND TEtfVk9VVF9UT1BfSERNSVRYMF9NQ0xLPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtf STJTVFgwX0JDTEs+LAorKwkJCQkgPCZoZG1pdHgwX3BpeGVsY2xrPjsKKysJCQljbG9jay1uYW1l cyA9ICJ2b3V0X3NyYyIsICJ2b3V0X3RvcF9haGIiLAorKwkJCQkgICAgICAidm91dF90b3BfYXhp IiwgInZvdXRfdG9wX2hkbWl0eDBfbWNsayIsCisrCQkJCSAgICAgICJpMnN0eDBfYmNsayIsICJo ZG1pdHgwX3BpeGVsY2xrIjsKKysJCQlyZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1ZP VVRfVE9QX1NSQz47CisrCQkJI2Nsb2NrLWNlbGxzID0gPDE+OworKwkJCSNyZXNldC1jZWxscyA9 IDwxPjsKKysJCQlwb3dlci1kb21haW5zID0gPCZwd3JjIEpINzExMF9QRF9WT1VUPjsKKysJCX07 CisgCX07CisgfTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDQ2LWR0LWJpbmRpbmdzLWNyeXB0by1BZGQtU3RhckZpdmUtY3J5cHRvLW1vZHVs ZS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQ2LWR0LWJpbmRpbmdzLWNyeXB0 by1BZGQtU3RhckZpdmUtY3J5cHRvLW1vZHVsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwLi4wMzNmMThlYzc0YWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwNDYtZHQtYmluZGluZ3MtY3J5cHRvLUFkZC1TdGFyRml2 ZS1jcnlwdG8tbW9kdWxlLnBhdGNoCkBAIC0wLDAgKzEsOTUgQEAKK0Zyb20gNGIyMGZjNWZhODI5 MDAzNzc3MjMxOTQ0ZGI0NTIzYWUwN2I2NDFiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEppYSBKaWUgSG8gPGppYWppZS5ob0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCA0 IE1heSAyMDIzIDE1OjMzOjU3ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNDYvODRdIGR0LWJpbmRp bmdzOiBjcnlwdG86IEFkZCBTdGFyRml2ZSBjcnlwdG8gbW9kdWxlCisKK0FkZCBkb2N1bWVudGF0 aW9uIHRvIGRlc2NyaWJlIFN0YXJGaXZlIGNyeXB0b2dyYXBoaWMgZW5naW5lLgorCitDby1kZXZl bG9wZWQtYnk6IEh1YW4gRmVuZyA8aHVhbi5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQt b2ZmLWJ5OiBIdWFuIEZlbmcgPGh1YW4uZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9m Zi1ieTogSmlhIEppZSBIbyA8amlhamllLmhvQHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1i eTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KKy0tLQorIC4uLi9jcnlwdG8vc3RhcmZp dmUsamg3MTEwLWNyeXB0by55YW1sICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysrKysKKyAx IGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRvL3N0YXJmaXZlLGpoNzExMC1jcnlw dG8ueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2NyeXB0by9zdGFyZml2ZSxqaDcxMTAtY3J5cHRvLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvY3J5cHRvL3N0YXJmaXZlLGpoNzExMC1jcnlwdG8ueWFtbAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNzFhMjg3NmJkNmU0CistLS0gL2Rl di9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRvL3N0 YXJmaXZlLGpoNzExMC1jcnlwdG8ueWFtbAorQEAgLTAsMCArMSw3MCBAQAorKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlKQorKyVZQU1MIDEu MgorKy0tLQorKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvY3J5cHRvL3N0YXJm aXZlLGpoNzExMC1jcnlwdG8ueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcv bWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgQ3J5cHRvZ3JhcGhp YyBNb2R1bGUKKysKKyttYWludGFpbmVyczoKKysgIC0gSmlhIEppZSBIbyA8amlhamllLmhvQHN0 YXJmaXZldGVjaC5jb20+CisrICAtIFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRl Y2guY29tPgorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3Rh cmZpdmUsamg3MTEwLWNyeXB0bworKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKworKyAg Y2xvY2tzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBIYXJkd2FyZSByZWZl cmVuY2UgY2xvY2sKKysgICAgICAtIGRlc2NyaXB0aW9uOiBBSEIgcmVmZXJlbmNlIGNsb2NrCisr CisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogaGNsaworKyAg ICAgIC0gY29uc3Q6IGFoYgorKworKyAgaW50ZXJydXB0czoKKysgICAgbWF4SXRlbXM6IDEKKysK KysgIHJlc2V0czoKKysgICAgbWF4SXRlbXM6IDEKKysKKysgIGRtYXM6CisrICAgIGl0ZW1zOgor KyAgICAgIC0gZGVzY3JpcHRpb246IFRYIERNQSBjaGFubmVsCisrICAgICAgLSBkZXNjcmlwdGlv bjogUlggRE1BIGNoYW5uZWwKKysKKysgIGRtYS1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAg LSBjb25zdDogdHgKKysgICAgICAtIGNvbnN0OiByeAorKworK3JlcXVpcmVkOgorKyAgLSBjb21w YXRpYmxlCisrICAtIHJlZworKyAgLSBjbG9ja3MKKysgIC0gY2xvY2stbmFtZXMKKysgIC0gcmVz ZXRzCisrICAtIGRtYXMKKysgIC0gZG1hLW5hbWVzCisrCisrYWRkaXRpb25hbFByb3BlcnRpZXM6 IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgY3J5cHRvOiBjcnlwdG9AMTYwMDAw MDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtY3J5cHRvIjsKKysg ICAgICAgIHJlZyA9IDwweDE2MDAwMDAwIDB4NDAwMD47CisrICAgICAgICBjbG9ja3MgPSA8JmNs ayAxNT4sIDwmY2xrIDE2PjsKKysgICAgICAgIGNsb2NrLW5hbWVzID0gImhjbGsiLCAiYWhiIjsK KysgICAgICAgIGludGVycnVwdHMgPSA8Mjg+OworKyAgICAgICAgcmVzZXRzID0gPCZyZXNldCAz PjsKKysgICAgICAgIGRtYXMgPSA8JmRtYSAxIDI+LAorKyAgICAgICAgICAgICAgIDwmZG1hIDAg Mj47CisrICAgICAgICBkbWEtbmFtZXMgPSAidHgiLCAicngiOworKyAgICB9OworKy4uLgorLS0g CisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNDctY3J5 cHRvLXN0YXJmaXZlLUFkZC1jcnlwdG8tZW5naW5lLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDA0Ny1jcnlwdG8tc3RhcmZpdmUtQWRkLWNyeXB0by1lbmdpbmUtc3Vw cG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5hZGYz MTNlMTY4MzUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw NDctY3J5cHRvLXN0YXJmaXZlLUFkZC1jcnlwdG8tZW5naW5lLXN1cHBvcnQucGF0Y2gKQEAgLTAs MCArMSwzNTUgQEAKK0Zyb20gM2FlZDY2NjI1ZjVlMmQ0YmU2YzViNDcwNGM4ZTVjNWRhMDhmYmI3 MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEppYSBKaWUgSG8gPGppYWppZS5ob0Bz dGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCA0IE1heSAyMDIzIDE1OjMzOjU4ICswODAwCitT dWJqZWN0OiBbUEFUQ0ggNDcvODRdIGNyeXB0bzogc3RhcmZpdmUgLSBBZGQgY3J5cHRvIGVuZ2lu ZSBzdXBwb3J0CisKK0FkZGluZyBkZXZpY2UgcHJvYmUgYW5kIERNQSBpbml0IGZvciBTdGFyRml2 ZSBjcnlwdG9ncmFwaGljIG1vZHVsZS4KKworQ28tZGV2ZWxvcGVkLWJ5OiBIdWFuIEZlbmcgPGh1 YW4uZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogSHVhbiBGZW5nIDxodWFu LmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEppYSBKaWUgSG8gPGppYWpp ZS5ob0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9jcnlwdG8vS2NvbmZpZyAgICAg ICAgICAgICAgICB8ICAgMSArCisgZHJpdmVycy9jcnlwdG8vTWFrZWZpbGUgICAgICAgICAgICAg ICB8ICAgMSArCisgZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvS2NvbmZpZyAgICAgICB8ICAxNyAr KysKKyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZSAgICAgIHwgICA0ICsKKyBkcml2 ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5jIHwgMjAxICsrKysrKysrKysrKysrKysr KysrKysrKysrCisgZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWNyeXAuaCB8ICA2MyAr KysrKysrKworIDYgZmlsZXMgY2hhbmdlZCwgMjg3IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvS2NvbmZpZworIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5jCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgKKworZGlmZiAtLWdpdCBh L2RyaXZlcnMvY3J5cHRvL0tjb25maWcgYi9kcml2ZXJzL2NyeXB0by9LY29uZmlnCitpbmRleCAz YjI1MTZkMTQzM2YuLmM5YjZhODc0N2ZhMSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3J5cHRvL0tj b25maWcKKysrKyBiL2RyaXZlcnMvY3J5cHRvL0tjb25maWcKK0BAIC04MjIsNSArODIyLDYgQEAg Y29uZmlnIENSWVBUT19ERVZfU0EyVUwKKyAKKyBzb3VyY2UgImRyaXZlcnMvY3J5cHRvL2tlZW1i YXkvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvY3J5cHRvL2FzcGVlZC9LY29uZmlnIgorK3Nv dXJjZSAiZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvS2NvbmZpZyIKKyAKKyBlbmRpZiAjIENSWVBU T19IVworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxlIGIvZHJpdmVycy9jcnlw dG8vTWFrZWZpbGUKK2luZGV4IDQ3NmYxYTI1Y2EzMi4uNWZmNTI0MmExODI0IDEwMDY0NAorLS0t IGEvZHJpdmVycy9jcnlwdG8vTWFrZWZpbGUKKysrKyBiL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxl CitAQCAtNTIsMyArNTIsNCBAQCBvYmoteSArPSB4aWxpbngvCisgb2JqLXkgKz0gaGlzaWxpY29u LworIG9iai0kKENPTkZJR19DUllQVE9fREVWX0FNTE9HSUNfR1hMKSArPSBhbWxvZ2ljLworIG9i ai15ICs9IGtlZW1iYXkvCisrb2JqLXkgKz0gc3RhcmZpdmUvCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jcnlwdG8vc3RhcmZpdmUvS2NvbmZpZyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL0tjb25m aWcKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjI0MzZlOTNkMjdl ZgorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvS2NvbmZpZwor QEAgLTAsMCArMSwxNyBAQAorKyMKKysjIFN0YXJGaXZlIGNyeXB0byBkcml2ZXJzIGNvbmZpZ3Vy YXRpb24KKysjCisrCisrY29uZmlnIENSWVBUT19ERVZfSkg3MTEwCisrCXRyaXN0YXRlICJTdGFy Rml2ZSBKSDcxMTAgY3J5cHRvZ3JhcGhpYyBlbmdpbmUgZHJpdmVyIgorKwlkZXBlbmRzIG9uIFNP Q19TVEFSRklWRQorKwlzZWxlY3QgQ1JZUFRPX0VOR0lORQorKwlzZWxlY3QgQVJNX0FNQkEKKysJ c2VsZWN0IERNQURFVklDRVMKKysJc2VsZWN0IEFNQkFfUEwwOFgKKysJaGVscAorKwkgIFN1cHBv cnQgZm9yIFN0YXJGaXZlIEpINzExMCBjcnlwdG8gaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGVuZ2lu ZS4KKysJICBUaGlzIG1vZHVsZSBwcm92aWRlcyBhY2NlbGVyYXRpb24gZm9yIHB1YmxpYyBrZXkg YWxnbywKKysJICBza2NpcGhlcnMsIEFFQUQgYW5kIGhhc2ggZnVuY3Rpb25zLgorKworKwkgIElm IHlvdSBjaG9vc2UgJ00nIGhlcmUsIHRoaXMgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGpoNzExMC1j cnlwdG8uCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZpbGUgYi9k cml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwMDAwMC4uNDEyMjFhY2FlZTM5CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2 ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZQorQEAgLTAsMCArMSw0IEBACisrIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKworK29iai0kKENPTkZJR19DUllQVE9fREVWX0pI NzExMCkgKz0gamg3MTEwLWNyeXB0by5vCisramg3MTEwLWNyeXB0by1vYmpzIDo9IGpoNzExMC1j cnlwLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5j IGIvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWNyeXAuYworbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNGIyNTA1YzIzMTY4CistLS0gL2Rldi9udWxsCisr KysgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5jCitAQCAtMCwwICsxLDIw MSBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBDcnlw dG9ncmFwaGljIEFQSS4KKysgKgorKyAqIFN1cHBvcnQgZm9yIFN0YXJGaXZlIGhhcmR3YXJlIGNy eXB0b2dyYXBoaWMgZW5naW5lLgorKyAqIENvcHlyaWdodCAoYykgMjAyMiBTdGFyRml2ZSBUZWNo bm9sb2d5CisrICoKKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUg PGxpbnV4L2RlbGF5Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorKyNpbmNsdWRl IDxsaW51eC9pb3BvbGwuaD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUg PGxpbnV4L29mX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4K KysjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5o PgorKworKyNpbmNsdWRlICJqaDcxMTAtY3J5cC5oIgorKworKyNkZWZpbmUgRFJJVkVSX05BTUUg ICAgICAgICAgICAgImpoNzExMC1jcnlwdG8iCisrCisrc3RydWN0IHN0YXJmaXZlX2Rldl9saXN0 IHsKKysJc3RydWN0IGxpc3RfaGVhZCAgICAgICAgZGV2X2xpc3Q7CisrCXNwaW5sb2NrX3QgICAg ICAgICAgICAgIGxvY2s7IC8qIHByb3RlY3QgZGV2X2xpc3QgKi8KKyt9OworKworK3N0YXRpYyBz dHJ1Y3Qgc3RhcmZpdmVfZGV2X2xpc3QgZGV2X2xpc3QgPSB7CisrCS5kZXZfbGlzdCA9IExJU1Rf SEVBRF9JTklUKGRldl9saXN0LmRldl9saXN0KSwKKysJLmxvY2sgICAgID0gX19TUElOX0xPQ0tf VU5MT0NLRUQoZGV2X2xpc3QubG9jayksCisrfTsKKysKKytzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9k ZXYgKnN0YXJmaXZlX2NyeXBfZmluZF9kZXYoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHgp CisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNyeXAgPSBOVUxMLCAqdG1wOworKwor KwlzcGluX2xvY2tfYmgoJmRldl9saXN0LmxvY2spOworKwlpZiAoIWN0eC0+Y3J5cCkgeworKwkJ bGlzdF9mb3JfZWFjaF9lbnRyeSh0bXAsICZkZXZfbGlzdC5kZXZfbGlzdCwgbGlzdCkgeworKwkJ CWNyeXAgPSB0bXA7CisrCQkJYnJlYWs7CisrCQl9CisrCQljdHgtPmNyeXAgPSBjcnlwOworKwl9 IGVsc2UgeworKwkJY3J5cCA9IGN0eC0+Y3J5cDsKKysJfQorKworKwlzcGluX3VubG9ja19iaCgm ZGV2X2xpc3QubG9jayk7CisrCisrCXJldHVybiBjcnlwOworK30KKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX2RtYV9pbml0KHN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5cCkKKyt7CisrCWRt YV9jYXBfbWFza190IG1hc2s7CisrCisrCWRtYV9jYXBfemVybyhtYXNrKTsKKysJZG1hX2NhcF9z ZXQoRE1BX1NMQVZFLCBtYXNrKTsKKysKKysJY3J5cC0+dHggPSBkbWFfcmVxdWVzdF9jaGFuKGNy eXAtPmRldiwgInR4Iik7CisrCWlmIChJU19FUlIoY3J5cC0+dHgpKQorKwkJcmV0dXJuIGRldl9l cnJfcHJvYmUoY3J5cC0+ZGV2LCBQVFJfRVJSKGNyeXAtPnR4KSwKKysJCQkJICAgICAiRXJyb3Ig cmVxdWVzdGluZyB0eCBkbWEgY2hhbm5lbC5cbiIpOworKworKwljcnlwLT5yeCA9IGRtYV9yZXF1 ZXN0X2NoYW4oY3J5cC0+ZGV2LCAicngiKTsKKysJaWYgKElTX0VSUihjcnlwLT5yeCkpIHsKKysJ CWRtYV9yZWxlYXNlX2NoYW5uZWwoY3J5cC0+dHgpOworKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUo Y3J5cC0+ZGV2LCBQVFJfRVJSKGNyeXAtPnJ4KSwKKysJCQkJICAgICAiRXJyb3IgcmVxdWVzdGlu ZyByeCBkbWEgY2hhbm5lbC5cbiIpOworKwl9CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0 aWMgdm9pZCBzdGFyZml2ZV9kbWFfY2xlYW51cChzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNy eXApCisreworKwlkbWFfcmVsZWFzZV9jaGFubmVsKGNyeXAtPnR4KTsKKysJZG1hX3JlbGVhc2Vf Y2hhbm5lbChjcnlwLT5yeCk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2Ny eXBfZGV2ICpjcnlwOworKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKysJaW50IHJldDsKKysKKysJ Y3J5cCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmNyeXApLCBHRlBfS0VSTkVM KTsKKysJaWYgKCFjcnlwKQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCXBsYXRmb3JtX3NldF9k cnZkYXRhKHBkZXYsIGNyeXApOworKwljcnlwLT5kZXYgPSAmcGRldi0+ZGV2OworKworKwljcnlw LT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9nZXRfYW5kX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCwg JnJlcyk7CisrCWlmIChJU19FUlIoY3J5cC0+YmFzZSkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9i ZSgmcGRldi0+ZGV2LCBQVFJfRVJSKGNyeXAtPmJhc2UpLAorKwkJCQkgICAgICJFcnJvciByZW1h cHBpbmcgbWVtb3J5IGZvciBwbGF0Zm9ybSBkZXZpY2VcbiIpOworKworKwljcnlwLT5waHlzX2Jh c2UgPSByZXMtPnN0YXJ0OworKwljcnlwLT5kbWFfbWF4YnVyc3QgPSAzMjsKKysKKysJY3J5cC0+ aGNsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCAiaGNsayIpOworKwlpZiAoSVNfRVJSKGNy eXAtPmhjbGspKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihj cnlwLT5oY2xrKSwKKysJCQkJICAgICAiRXJyb3IgZ2V0dGluZyBoYXJkd2FyZSByZWZlcmVuY2Ug Y2xvY2tcbiIpOworKworKwljcnlwLT5haGIgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgImFo YiIpOworKwlpZiAoSVNfRVJSKGNyeXAtPmFoYikpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgm cGRldi0+ZGV2LCBQVFJfRVJSKGNyeXAtPmFoYiksCisrCQkJCSAgICAgIkVycm9yIGdldHRpbmcg YWhiIHJlZmVyZW5jZSBjbG9ja1xuIik7CisrCisrCWNyeXAtPnJzdCA9IGRldm1fcmVzZXRfY29u dHJvbF9nZXRfc2hhcmVkKGNyeXAtPmRldiwgTlVMTCk7CisrCWlmIChJU19FUlIoY3J5cC0+cnN0 KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoY3J5cC0+cnN0 KSwKKysJCQkJICAgICAiRXJyb3IgZ2V0dGluZyBoYXJkd2FyZSByZXNldCBsaW5lXG4iKTsKKysK KysJY2xrX3ByZXBhcmVfZW5hYmxlKGNyeXAtPmhjbGspOworKwljbGtfcHJlcGFyZV9lbmFibGUo Y3J5cC0+YWhiKTsKKysJcmVzZXRfY29udHJvbF9kZWFzc2VydChjcnlwLT5yc3QpOworKworKwlz cGluX2xvY2soJmRldl9saXN0LmxvY2spOworKwlsaXN0X2FkZCgmY3J5cC0+bGlzdCwgJmRldl9s aXN0LmRldl9saXN0KTsKKysJc3Bpbl91bmxvY2soJmRldl9saXN0LmxvY2spOworKworKwlyZXQg PSBzdGFyZml2ZV9kbWFfaW5pdChjcnlwKTsKKysJaWYgKHJldCkgeworKwkJaWYgKHJldCA9PSAt RVBST0JFX0RFRkVSKQorKwkJCWdvdG8gZXJyX3Byb2JlX2RlZmVyOworKwkJZWxzZQorKwkJCWdv dG8gZXJyX2RtYV9pbml0OworKwl9CisrCisrCS8qIEluaXRpYWxpemUgY3J5cHRvIGVuZ2luZSAq LworKwljcnlwLT5lbmdpbmUgPSBjcnlwdG9fZW5naW5lX2FsbG9jX2luaXQoJnBkZXYtPmRldiwg MSk7CisrCWlmICghY3J5cC0+ZW5naW5lKSB7CisrCQlyZXQgPSAtRU5PTUVNOworKwkJZ290byBl cnJfZW5naW5lOworKwl9CisrCisrCXJldCA9IGNyeXB0b19lbmdpbmVfc3RhcnQoY3J5cC0+ZW5n aW5lKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2VuZ2luZV9zdGFydDsKKysKKysJcmV0dXJu IDA7CisrCisrZXJyX2VuZ2luZV9zdGFydDoKKysJY3J5cHRvX2VuZ2luZV9leGl0KGNyeXAtPmVu Z2luZSk7CisrZXJyX2VuZ2luZToKKysJc3RhcmZpdmVfZG1hX2NsZWFudXAoY3J5cCk7CisrZXJy X2RtYV9pbml0OgorKwlzcGluX2xvY2soJmRldl9saXN0LmxvY2spOworKwlsaXN0X2RlbCgmY3J5 cC0+bGlzdCk7CisrCXNwaW5fdW5sb2NrKCZkZXZfbGlzdC5sb2NrKTsKKysKKysJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKGNyeXAtPmhjbGspOworKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3J5cC0+ YWhiKTsKKysJcmVzZXRfY29udHJvbF9hc3NlcnQoY3J5cC0+cnN0KTsKKytlcnJfcHJvYmVfZGVm ZXI6CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9yZW1v dmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9j cnlwX2RldiAqY3J5cCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworKworKwljcnlwdG9f ZW5naW5lX3N0b3AoY3J5cC0+ZW5naW5lKTsKKysJY3J5cHRvX2VuZ2luZV9leGl0KGNyeXAtPmVu Z2luZSk7CisrCisrCXN0YXJmaXZlX2RtYV9jbGVhbnVwKGNyeXApOworKworKwlzcGluX2xvY2so JmRldl9saXN0LmxvY2spOworKwlsaXN0X2RlbCgmY3J5cC0+bGlzdCk7CisrCXNwaW5fdW5sb2Nr KCZkZXZfbGlzdC5sb2NrKTsKKysKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNyeXAtPmhjbGsp OworKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3J5cC0+YWhiKTsKKysJcmVzZXRfY29udHJvbF9h c3NlcnQoY3J5cC0+cnN0KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJmaXZlX2R0X2lkc1tdIF9fbWF5YmVfdW51c2VkID0gewor Kwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1jcnlwdG8iLCAuZGF0YSA9IE5VTEx9 LAorKwl7fSwKKyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX2R0X2lkcyk7 CisrCisrc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3RhcmZpdmVfY3J5cF9kcml2ZXIg PSB7CisrCS5wcm9iZSAgPSBzdGFyZml2ZV9jcnlwX3Byb2JlLAorKwkucmVtb3ZlID0gc3RhcmZp dmVfY3J5cF9yZW1vdmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSAgICAgICAgICAgPSBEUklW RVJfTkFNRSwKKysJCS5vZl9tYXRjaF90YWJsZSA9IHN0YXJmaXZlX2R0X2lkcywKKysJfSwKKyt9 OworKworK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoc3RhcmZpdmVfY3J5cF9kcml2ZXIpOworKwor K01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIEpI NzExMCBDcnlwdG9ncmFwaGljIE1vZHVsZSIpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRv L3N0YXJmaXZlL2poNzExMC1jcnlwLmggYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAt Y3J5cC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4zOTNlZmQz OGIwOTgKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzEx MC1jcnlwLmgKK0BAIC0wLDAgKzEsNjMgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCAqLworKyNpZm5kZWYgX19TVEFSRklWRV9TVFJfSF9fCisrI2RlZmluZSBfX1NUQVJG SVZFX1NUUl9IX18KKysKKysjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKysjaW5jbHVkZSA8bGlu dXgvZG1hLW1hcHBpbmcuaD4KKysjaW5jbHVkZSA8bGludXgvZG1hZW5naW5lLmg+CisrCisrI2lu Y2x1ZGUgPGNyeXB0by9lbmdpbmUuaD4KKysKKysjZGVmaW5lIFNUQVJGSVZFX0FMR19DUl9PRkZT RVQJCQkweDAKKysjZGVmaW5lIFNUQVJGSVZFX0FMR19GSUZPX09GRlNFVAkJMHg0CisrI2RlZmlu ZSBTVEFSRklWRV9JRV9NQVNLX09GRlNFVAkJCTB4OAorKyNkZWZpbmUgU1RBUkZJVkVfSUVfRkxB R19PRkZTRVQJCQkweGMKKysjZGVmaW5lIFNUQVJGSVZFX0RNQV9JTl9MRU5fT0ZGU0VUCQkweDEw CisrI2RlZmluZSBTVEFSRklWRV9ETUFfT1VUX0xFTl9PRkZTRVQJCTB4MTQKKysKKysjZGVmaW5l IFNUQVJGSVZFX01TR19CVUZGRVJfU0laRQkJU1pfMTZLCisrCisrdW5pb24gc3RhcmZpdmVfYWxn X2NyIHsKKysJdTMyIHY7CisrCXN0cnVjdCB7CisrCQl1MzIgc3RhcnQJCQk6MTsKKysJCXUzMiBh ZXNfZG1hX2VuCQkJOjE7CisrCQl1MzIgcnN2ZF8wCQkJOjE7CisrCQl1MzIgaGFzaF9kbWFfZW4J CQk6MTsKKysJCXUzMiBhbGdfZG9uZQkJCToxOworKwkJdTMyIHJzdmRfMQkJCTozOworKwkJdTMy IGNsZWFyCQkJOjE7CisrCQl1MzIgcnN2ZF8yCQkJOjIzOworKwl9OworK307CisrCisrc3RydWN0 IHN0YXJmaXZlX2NyeXBfY3R4IHsKKysJc3RydWN0IGNyeXB0b19lbmdpbmVfY3R4CQllbmdpbmVj dHg7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldgkJKmNyeXA7CisrfTsKKysKKytzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9kZXYgeworKwlzdHJ1Y3QgbGlzdF9oZWFkCQkJbGlzdDsKKysJc3RydWN0 IGRldmljZQkJCQkqZGV2OworKworKwlzdHJ1Y3QgY2xrCQkJCSpoY2xrOworKwlzdHJ1Y3QgY2xr CQkJCSphaGI7CisrCXN0cnVjdCByZXNldF9jb250cm9sCQkJKnJzdDsKKysKKysJdm9pZCBfX2lv bWVtCQkJCSpiYXNlOworKwlwaHlzX2FkZHJfdAkJCQlwaHlzX2Jhc2U7CisrCisrCXUzMgkJCQkJ ZG1hX21heGJ1cnN0OworKwlzdHJ1Y3QgZG1hX2NoYW4JCQkJKnR4OworKwlzdHJ1Y3QgZG1hX2No YW4JCQkJKnJ4OworKwlzdHJ1Y3QgZG1hX3NsYXZlX2NvbmZpZwkJCWNmZ19pbjsKKysJc3RydWN0 IGRtYV9zbGF2ZV9jb25maWcJCQljZmdfb3V0OworKworKwlzdHJ1Y3QgY3J5cHRvX2VuZ2luZQkJ CSplbmdpbmU7CisrCisrCXVuaW9uIHN0YXJmaXZlX2FsZ19jcgkJCWFsZ19jcjsKKyt9OworKwor K3N0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqc3RhcmZpdmVfY3J5cF9maW5kX2RldihzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9jdHggKmN0eCk7CisrCisrI2VuZGlmCistLSAKKzIuNDAuMQorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA0OC1yaXNjdi1kdHMtc3RhcmZpdmUt QWRkLWNyeXB0by1hbmQtRE1BLW5vZGUtZm9yLVZpc2lvLnBhdGNoIGIvc3JjcGtncy9saW51eDYu My9wYXRjaGVzLzAwNDgtcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1jcnlwdG8tYW5kLURNQS1ub2Rl LWZvci1WaXNpby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw Li40OGMzOGE5OTM2YjcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRj aGVzLzAwNDgtcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1jcnlwdG8tYW5kLURNQS1ub2RlLWZvci1W aXNpby5wYXRjaApAQCAtMCwwICsxLDU4IEBACitGcm9tIGFhMjBkMmFlOWVlYWM2MzNmZjc5MWM0 NjE3Njg5ZTM1ZGZmMTkwZjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaWEgSmll IEhvIDxqaWFqaWUuaG9Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFRodSwgNCBNYXkgMjAyMyAx NTozMzo1OSArMDgwMAorU3ViamVjdDogW1BBVENIIDQ4Lzg0XSByaXNjdjogZHRzOiBzdGFyZml2 ZTogQWRkIGNyeXB0byBhbmQgRE1BIG5vZGUgZm9yCisgVmlzaW9uRml2ZSAyCisKK0FkZCBTdGFy Rml2ZSBjcnlwdG9ncmFwaGljIG1vZHVsZSBhbmQgZGVkaWNhdGVkIERNQSBjb250cm9sbGVyIG5v ZGUgdG8KK1Zpc2lvbkZpdmUgMiBTb0NzLgorCitDby1kZXZlbG9wZWQtYnk6IEh1YW4gRmVuZyA8 aHVhbi5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBIdWFuIEZlbmcgPGh1 YW4uZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogSmlhIEppZSBIbyA8amlh amllLmhvQHN0YXJmaXZldGVjaC5jb20+CitBY2tlZC1ieTogUGFsbWVyIERhYmJlbHQgPHBhbG1l ckByaXZvc2luYy5jb20+CistLS0KKyBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC5kdHNpIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDI4 IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZp dmUvamg3MTEwLmR0c2kgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNp CitpbmRleCA3ZGY2MDk0ZGQxNTEuLmRmN2E5MTJiNzNiNyAxMDA2NDQKKy0tLSBhL2FyY2gvcmlz Y3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKKysrKyBiL2FyY2gvcmlzY3YvYm9vdC9k dHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK0BAIC02MTYsNSArNjE2LDMzIEBAIHZvdXRjcmc6IGNs b2NrLWNvbnRyb2xsZXJAMjk1YzAwMDAgeworIAkJCSNyZXNldC1jZWxscyA9IDwxPjsKKyAJCQlw b3dlci1kb21haW5zID0gPCZwd3JjIEpINzExMF9QRF9WT1VUPjsKKyAJCX07CisrCisrCQlzZG1h OiBkbWFAMTYwMDgwMDAgeworKwkJCWNvbXBhdGlibGUgPSAiYXJtLHBsMDgwIiwgImFybSxwcmlt ZWNlbGwiOworKwkJCWFybSxwcmltZWNlbGwtcGVyaXBoaWQgPSA8MHgwMDA0MTA4MD47CisrCQkJ cmVnID0gPDB4MCAweDE2MDA4MDAwIDB4MCAweDQwMDA+OworKwkJCWludGVycnVwdHMgPSA8Mjk+ OworKwkJCWNsb2NrcyA9IDwmc3RnY3JnIEpINzExMF9TVEdDTEtfU0VDX0FIQj4sCisrCQkJCSA8 JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1NFQ19NSVNDX0FIQj47CisrCQkJY2xvY2stbmFtZXMgPSAi aGNsayIsICJhcGJfcGNsayI7CisrCQkJcmVzZXRzID0gPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9T RUNfQUhCPjsKKysJCQlsbGktYnVzLWludGVyZmFjZS1haGIxOworKwkJCW1lbS1idXMtaW50ZXJm YWNlLWFoYjE7CisrCQkJbWVtY3B5LWJ1cnN0LXNpemUgPSA8MjU2PjsKKysJCQltZW1jcHktYnVz LXdpZHRoID0gPDMyPjsKKysJCQkjZG1hLWNlbGxzID0gPDI+OworKwkJfTsKKysKKysJCWNyeXB0 bzogY3J5cHRvQDE2MDAwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1j cnlwdG8iOworKwkJCXJlZyA9IDwweDAgMHgxNjAwMDAwMCAweDAgMHg0MDAwPjsKKysJCQljbG9j a3MgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1NFQ19BSEI+LAorKwkJCQkgPCZzdGdjcmcgSkg3 MTEwX1NUR0NMS19TRUNfTUlTQ19BSEI+OworKwkJCWNsb2NrLW5hbWVzID0gImhjbGsiLCAiYWhi IjsKKysJCQlpbnRlcnJ1cHRzID0gPDI4PjsKKysJCQlyZXNldHMgPSA8JnN0Z2NyZyBKSDcxMTBf U1RHUlNUX1NFQ19BSEI+OworKwkJCWRtYXMgPSA8JnNkbWEgMSAyPiwgPCZzZG1hIDAgMj47Cisr CQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKKysJCX07CisgCX07CisgfTsKKy0tIAorMi40MC4x CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQ5LWNyeXB0by1zdGFy Zml2ZS1BZGQtaGFzaC1hbmQtSE1BQy1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwNDktY3J5cHRvLXN0YXJmaXZlLUFkZC1oYXNoLWFuZC1ITUFDLXN1cHBvcnQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYzkxMjVmYjkxMjM3 YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDQ5LWNyeXB0 by1zdGFyZml2ZS1BZGQtaGFzaC1hbmQtSE1BQy1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsMTE0 OSBAQAorRnJvbSBkMmFmMWE1MWRiNTIyYmM0NjcxZjBjMGRkMzFhYWMxMGRlYWNlZWFmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmlhIEppZSBIbyA8amlhamllLmhvQHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBUaHUsIDQgTWF5IDIwMjMgMTU6MzQ6MDAgKzA4MDAKK1N1YmplY3Q6 IFtQQVRDSCA0OS84NF0gY3J5cHRvOiBzdGFyZml2ZSAtIEFkZCBoYXNoIGFuZCBITUFDIHN1cHBv cnQKKworQWRkaW5nIGhhc2gvSE1BQyBzdXBwb3J0IGZvciBTSEEtMiBhbmQgU00zIHRvIFN0YXJG aXZlIGNyeXB0b2dyYXBoaWMKK21vZHVsZS4KKworQ28tZGV2ZWxvcGVkLWJ5OiBIdWFuIEZlbmcg PGh1YW4uZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogSHVhbiBGZW5nIDxo dWFuLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEppYSBKaWUgSG8gPGpp YWppZS5ob0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUv S2NvbmZpZyAgICAgICB8ICAgNCArCisgZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZpbGUg ICAgICB8ICAgMiArLQorIGRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmMgfCAg MzkgKysKKyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5oIHwgIDcwICstCisg ZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWhhc2guYyB8IDg5MiArKysrKysrKysrKysr KysrKysrKysrKysrKworIDUgZmlsZXMgY2hhbmdlZCwgMTAwMyBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9q aDcxMTAtaGFzaC5jCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29u ZmlnIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvS2NvbmZpZworaW5kZXggMjQzNmU5M2QyN2Vm Li44Nzk1YjJmZGRiNGUgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29u ZmlnCisrKysgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnCitAQCAtNiw2ICs2LDEw IEBAIGNvbmZpZyBDUllQVE9fREVWX0pINzExMAorIAl0cmlzdGF0ZSAiU3RhckZpdmUgSkg3MTEw IGNyeXB0b2dyYXBoaWMgZW5naW5lIGRyaXZlciIKKyAJZGVwZW5kcyBvbiBTT0NfU1RBUkZJVkUK KyAJc2VsZWN0IENSWVBUT19FTkdJTkUKKysJc2VsZWN0IENSWVBUT19ITUFDCisrCXNlbGVjdCBD UllQVE9fU0hBMjU2CisrCXNlbGVjdCBDUllQVE9fU0hBNTEyCisrCXNlbGVjdCBDUllQVE9fU00z X0dFTkVSSUMKKyAJc2VsZWN0IEFSTV9BTUJBCisgCXNlbGVjdCBETUFERVZJQ0VTCisgCXNlbGVj dCBBTUJBX1BMMDhYCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZp bGUgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZQoraW5kZXggNDEyMjFhY2FlZTM5 Li4yYWY0OTA2MmUzNmQgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtl ZmlsZQorKysrIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0xLDQgKzEs NCBAQAorICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyAKKyBvYmotJChDT05G SUdfQ1JZUFRPX0RFVl9KSDcxMTApICs9IGpoNzExMC1jcnlwdG8ubworLWpoNzExMC1jcnlwdG8t b2JqcyA6PSBqaDcxMTAtY3J5cC5vCisramg3MTEwLWNyeXB0by1vYmpzIDo9IGpoNzExMC1jcnlw Lm8gamg3MTEwLWhhc2gubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2po NzExMC1jcnlwLmMgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5jCitpbmRl eCA0YjI1MDVjMjMxNjguLjI3OWIxOWY1MWNiNCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3J5cHRv L3N0YXJmaXZlL2poNzExMC1jcnlwLmMKKysrKyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2po NzExMC1jcnlwLmMKK0BAIC03OSwxMCArNzksMjUgQEAgc3RhdGljIHZvaWQgc3RhcmZpdmVfZG1h X2NsZWFudXAoc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwKQorIAlkbWFfcmVsZWFzZV9j aGFubmVsKGNyeXAtPnJ4KTsKKyB9CisgCisrc3RhdGljIGlycXJldHVybl90IHN0YXJmaXZlX2Ny eXBfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpCisreworKwl1MzIgc3RhdHVzOworKwlzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9kZXYgKmNyeXAgPSAoc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICopcHJp djsKKysKKysJc3RhdHVzID0gcmVhZGwoY3J5cC0+YmFzZSArIFNUQVJGSVZFX0lFX0ZMQUdfT0ZG U0VUKTsKKysJaWYgKHN0YXR1cyAmIFNUQVJGSVZFX0lFX0ZMQUdfSEFTSF9ET05FKSB7CisrCQl3 cml0ZWwoU1RBUkZJVkVfSUVfTUFTS19IQVNIX0RPTkUsIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9J RV9NQVNLX09GRlNFVCk7CisrCQl0YXNrbGV0X3NjaGVkdWxlKCZjcnlwLT5oYXNoX2RvbmUpOwor Kwl9CisrCisrCXJldHVybiBJUlFfSEFORExFRDsKKyt9CisrCisgc3RhdGljIGludCBzdGFyZml2 ZV9jcnlwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgeworIAlzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9kZXYgKmNyeXA7CisgCXN0cnVjdCByZXNvdXJjZSAqcmVzOworKwlpbnQg aXJxOworIAlpbnQgcmV0OworIAorIAljcnlwID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNp emVvZigqY3J5cCksIEdGUF9LRVJORUwpOworQEAgLTk3LDYgKzExMiw4IEBAIHN0YXRpYyBpbnQg c3RhcmZpdmVfY3J5cF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAkJcmV0 dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihjcnlwLT5iYXNlKSwKKyAJCQkJ ICAgICAiRXJyb3IgcmVtYXBwaW5nIG1lbW9yeSBmb3IgcGxhdGZvcm0gZGV2aWNlXG4iKTsKKyAK KysJdGFza2xldF9pbml0KCZjcnlwLT5oYXNoX2RvbmUsIHN0YXJmaXZlX2hhc2hfZG9uZV90YXNr LCAodW5zaWduZWQgbG9uZyljcnlwKTsKKysKKyAJY3J5cC0+cGh5c19iYXNlID0gcmVzLT5zdGFy dDsKKyAJY3J5cC0+ZG1hX21heGJ1cnN0ID0gMzI7CisgCitAQCAtMTE1LDYgKzEzMiwxNiBAQCBz dGF0aWMgaW50IHN0YXJmaXZlX2NyeXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKKyAJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoY3J5cC0+cnN0 KSwKKyAJCQkJICAgICAiRXJyb3IgZ2V0dGluZyBoYXJkd2FyZSByZXNldCBsaW5lXG4iKTsKKyAK KysJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKysJaWYgKGlycSA8IDApCisrCQly ZXR1cm4gaXJxOworKworKwlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGlycSwg c3RhcmZpdmVfY3J5cF9pcnEsIDAsIHBkZXYtPm5hbWUsCisrCQkJICAgICAgICh2b2lkICopY3J5 cCk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBpcnEs CisrCQkJCSAgICAgIkZhaWxlZCB0byByZWdpc3RlciBpbnRlcnJ1cHQgaGFuZGxlclxuIik7Cisr CisgCWNsa19wcmVwYXJlX2VuYWJsZShjcnlwLT5oY2xrKTsKKyAJY2xrX3ByZXBhcmVfZW5hYmxl KGNyeXAtPmFoYik7CisgCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoY3J5cC0+cnN0KTsKK0BAIC0x NDIsOCArMTY5LDE0IEBAIHN0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQorIAlpZiAocmV0KQorIAkJZ290byBlcnJfZW5naW5lX3N0YXJ0 OworIAorKwlyZXQgPSBzdGFyZml2ZV9oYXNoX3JlZ2lzdGVyX2FsZ3MoKTsKKysJaWYgKHJldCkK KysJCWdvdG8gZXJyX2FsZ3NfaGFzaDsKKysKKyAJcmV0dXJuIDA7CisgCisrZXJyX2FsZ3NfaGFz aDoKKysJY3J5cHRvX2VuZ2luZV9zdG9wKGNyeXAtPmVuZ2luZSk7CisgZXJyX2VuZ2luZV9zdGFy dDoKKyAJY3J5cHRvX2VuZ2luZV9leGl0KGNyeXAtPmVuZ2luZSk7CisgZXJyX2VuZ2luZToKK0BA IC0xNTYsNiArMTg5LDggQEAgc3RhdGljIGludCBzdGFyZml2ZV9jcnlwX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgCWNsa19kaXNhYmxlX3VucHJlcGFyZShjcnlwLT5oY2xr KTsKKyAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNyeXAtPmFoYik7CisgCXJlc2V0X2NvbnRyb2xf YXNzZXJ0KGNyeXAtPnJzdCk7CisrCisrCXRhc2tsZXRfa2lsbCgmY3J5cC0+aGFzaF9kb25lKTsK KyBlcnJfcHJvYmVfZGVmZXI6CisgCXJldHVybiByZXQ7CisgfQorQEAgLTE2NCw2ICsxOTksMTAg QEAgc3RhdGljIGludCBzdGFyZml2ZV9jcnlwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQorIHsKKyAJc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwID0gcGxhdGZvcm1f Z2V0X2RydmRhdGEocGRldik7CisgCisrCXN0YXJmaXZlX2hhc2hfdW5yZWdpc3Rlcl9hbGdzKCk7 CisrCisrCXRhc2tsZXRfa2lsbCgmY3J5cC0+aGFzaF9kb25lKTsKKysKKyAJY3J5cHRvX2VuZ2lu ZV9zdG9wKGNyeXAtPmVuZ2luZSk7CisgCWNyeXB0b19lbmdpbmVfZXhpdChjcnlwLT5lbmdpbmUp OworIAorZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgg Yi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5oCitpbmRleCAzOTNlZmQzOGIw OTguLjdhNTg5ZjZlY2ExNCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2po NzExMC1jcnlwLmgKKysrKyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgK K0BAIC03LDYgKzcsOCBAQAorICNpbmNsdWRlIDxsaW51eC9kbWFlbmdpbmUuaD4KKyAKKyAjaW5j bHVkZSA8Y3J5cHRvL2VuZ2luZS5oPgorKyNpbmNsdWRlIDxjcnlwdG8vc2hhMi5oPgorKyNpbmNs dWRlIDxjcnlwdG8vc20zLmg+CisgCisgI2RlZmluZSBTVEFSRklWRV9BTEdfQ1JfT0ZGU0VUCQkJ MHgwCisgI2RlZmluZSBTVEFSRklWRV9BTEdfRklGT19PRkZTRVQJCTB4NAorQEAgLTE1LDcgKzE3 LDQzIEBACisgI2RlZmluZSBTVEFSRklWRV9ETUFfSU5fTEVOX09GRlNFVAkJMHgxMAorICNkZWZp bmUgU1RBUkZJVkVfRE1BX09VVF9MRU5fT0ZGU0VUCQkweDE0CisgCisrI2RlZmluZSBTVEFSRklW RV9JRV9NQVNLX0hBU0hfRE9ORQkJQklUKDIpCisrI2RlZmluZSBTVEFSRklWRV9JRV9GTEFHX0hB U0hfRE9ORQkJQklUKDIpCisrCisgI2RlZmluZSBTVEFSRklWRV9NU0dfQlVGRkVSX1NJWkUJCVNa XzE2SworKyNkZWZpbmUgTUFYX0tFWV9TSVpFCQkJCVNIQTUxMl9CTE9DS19TSVpFCisrCisrdW5p b24gc3RhcmZpdmVfaGFzaF9jc3IgeworKwl1MzIgdjsKKysJc3RydWN0IHsKKysJCXUzMiBzdGFy dAkJCToxOworKwkJdTMyIHJlc2V0CQkJOjE7CisrCQl1MzIgaWUJCQkJOjE7CisrCQl1MzIgZmly c3RiCQkJOjE7CisrI2RlZmluZSBTVEFSRklWRV9IQVNIX1NNMwkJCTB4MAorKyNkZWZpbmUgU1RB UkZJVkVfSEFTSF9TSEEyMjQJCQkweDMKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBMjU2CQkJ MHg0CisrI2RlZmluZSBTVEFSRklWRV9IQVNIX1NIQTM4NAkJCTB4NQorKyNkZWZpbmUgU1RBUkZJ VkVfSEFTSF9TSEE1MTIJCQkweDYKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfTU9ERV9NQVNLCQkJ MHg3CisrCQl1MzIgbW9kZQkJCTozOworKwkJdTMyIHJzdmRfMQkJCToxOworKwkJdTMyIGZpbmFs CQkJOjE7CisrCQl1MzIgcnN2ZF8yCQkJOjI7CisrI2RlZmluZSBTVEFSRklWRV9IQVNIX0hNQUNf RkxBR1MJCTB4ODAwCisrCQl1MzIgaG1hYwkJCToxOworKwkJdTMyIHJzdmRfMwkJCToxOworKyNk ZWZpbmUgU1RBUkZJVkVfSEFTSF9LRVlfRE9ORQkJCUJJVCgxMykKKysJCXUzMiBrZXlfZG9uZQkJ CToxOworKwkJdTMyIGtleV9mbGFnCQkJOjE7CisrCQl1MzIgaG1hY19kb25lCQkJOjE7CisrI2Rl ZmluZSBTVEFSRklWRV9IQVNIX0JVU1kJCQlCSVQoMTYpCisrCQl1MzIgYnVzeQkJCToxOworKwkJ dTMyIGhhc2hkb25lCQkJOjE7CisrCQl1MzIgcnN2ZF80CQkJOjE0OworKwl9OworK307CisrCisg CisgdW5pb24gc3RhcmZpdmVfYWxnX2NyIHsKKyAJdTMyIHY7CitAQCAtMzQsMTIgKzcyLDE4IEBA IHVuaW9uIHN0YXJmaXZlX2FsZ19jciB7Cisgc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4IHsKKyAJ c3RydWN0IGNyeXB0b19lbmdpbmVfY3R4CQllbmdpbmVjdHg7CisgCXN0cnVjdCBzdGFyZml2ZV9j cnlwX2RldgkJKmNyeXA7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4CSpyY3R4 OworKworKwl1bnNpZ25lZCBpbnQJCQkJaGFzaF9tb2RlOworKwl1OAkJCQkJa2V5W01BWF9LRVlf U0laRV07CisrCWludAkJCQkJa2V5bGVuOworKwlib29sCQkJCQlpc19obWFjOworKwlzdHJ1Y3Qg Y3J5cHRvX2FoYXNoCQkJKmFoYXNoX2ZiazsKKyB9OworIAorIHN0cnVjdCBzdGFyZml2ZV9jcnlw X2RldiB7CisgCXN0cnVjdCBsaXN0X2hlYWQJCQlsaXN0OworIAlzdHJ1Y3QgZGV2aWNlCQkJCSpk ZXY7CistCisgCXN0cnVjdCBjbGsJCQkJKmhjbGs7CisgCXN0cnVjdCBjbGsJCQkJKmFoYjsKKyAJ c3RydWN0IHJlc2V0X2NvbnRyb2wJCQkqcnN0OworQEAgLTUyLDEyICs5NiwzMiBAQCBzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9kZXYgeworIAlzdHJ1Y3QgZG1hX2NoYW4JCQkJKnJ4OworIAlzdHJ1Y3Qg ZG1hX3NsYXZlX2NvbmZpZwkJCWNmZ19pbjsKKyAJc3RydWN0IGRtYV9zbGF2ZV9jb25maWcJCQlj Zmdfb3V0OworLQorIAlzdHJ1Y3QgY3J5cHRvX2VuZ2luZQkJCSplbmdpbmU7CistCisrCXN0cnVj dCB0YXNrbGV0X3N0cnVjdAkJCWhhc2hfZG9uZTsKKysJaW50CQkJCQllcnI7CisgCXVuaW9uIHN0 YXJmaXZlX2FsZ19jcgkJCWFsZ19jcjsKKysJdW5pb24geworKwkJc3RydWN0IGFoYXNoX3JlcXVl c3QJCSpocmVxOworKwl9IHJlcTsKKyt9OworKworK3N0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVl c3RfY3R4IHsKKysJdW5pb24geworKwkJdW5pb24gc3RhcmZpdmVfaGFzaF9jc3IJCWhhc2g7Cisr CX0gY3NyOworKworKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QJCQkqaW5fc2c7CisrCXN0cnVjdCBhaGFz aF9yZXF1ZXN0CQkJYWhhc2hfZmJrX3JlcTsKKysJc2l6ZV90CQkJCQl0b3RhbDsKKysJdW5zaWdu ZWQgaW50CQkJCWJsa3NpemU7CisrCXVuc2lnbmVkIGludAkJCQlkaWdzaXplOworKwl1bnNpZ25l ZCBsb25nCQkJCWluX3NnX2xlbjsKKyB9OworIAorIHN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAq c3RhcmZpdmVfY3J5cF9maW5kX2RldihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCk7Cisg CisraW50IHN0YXJmaXZlX2hhc2hfcmVnaXN0ZXJfYWxncyh2b2lkKTsKKyt2b2lkIHN0YXJmaXZl X2hhc2hfdW5yZWdpc3Rlcl9hbGdzKHZvaWQpOworKworK3ZvaWQgc3RhcmZpdmVfaGFzaF9kb25l X3Rhc2sodW5zaWduZWQgbG9uZyBwYXJhbSk7CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWhhc2guYyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZl L2poNzExMC1oYXNoLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAu LjM4MDFlNDRmMmYzMworLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZp dmUvamg3MTEwLWhhc2guYworQEAgLTAsMCArMSw4OTIgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMAorKy8qCisrICogSGFzaCBmdW5jdGlvbiBhbmQgSE1BQyBzdXBwb3J0 IGZvciBTdGFyRml2ZSBkcml2ZXIKKysgKgorKyAqIENvcHlyaWdodCAoYykgMjAyMiBTdGFyRml2 ZSBUZWNobm9sb2d5CisrICoKKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2lu Y2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorKyNpbmNsdWRlIDxsaW51eC9kbWEtZGlyZWN0Lmg+Cisr I2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorKyNpbmNsdWRlIDxsaW51eC9pby5oPgorKyNp bmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KKysjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisrI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKysj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1 bnRpbWUuaD4KKysjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKysjaW5jbHVkZSA8bGludXgvYW1i YS9wbDA4MC5oPgorKworKyNpbmNsdWRlIDxjcnlwdG8vaGFzaC5oPgorKyNpbmNsdWRlIDxjcnlw dG8vc2NhdHRlcndhbGsuaD4KKysjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KKysK KysjaW5jbHVkZSAiamg3MTEwLWNyeXAuaCIKKysKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfUkVH U19PRkZTRVQJMHgzMDAKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBQ1NSCQkoU1RBUkZJVkVf SEFTSF9SRUdTX09GRlNFVCArIDB4MCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0RSCQko U1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4NCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hf U0hBUkRSCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4OCkKKysjZGVmaW5lIFNUQVJG SVZFX0hBU0hfU0hBV1NSCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4QykKKysjZGVm aW5lIFNUQVJGSVZFX0hBU0hfU0hBV0xFTjMJCShTVEFSRklWRV9IQVNIX1JFR1NfT0ZGU0VUICsg MHgxMCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0xFTjIJCShTVEFSRklWRV9IQVNIX1JF R1NfT0ZGU0VUICsgMHgxNCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0xFTjEJCShTVEFS RklWRV9IQVNIX1JFR1NfT0ZGU0VUICsgMHgxOCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hB V0xFTjAJCShTVEFSRklWRV9IQVNIX1JFR1NfT0ZGU0VUICsgMHgxQykKKysjZGVmaW5lIFNUQVJG SVZFX0hBU0hfU0hBV0tSCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4MjApCisrI2Rl ZmluZSBTVEFSRklWRV9IQVNIX1NIQVdLTEVOCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCAr IDB4MjQpCisrCisrI2RlZmluZSBTVEFSRklWRV9IQVNIX0JVRkxFTgkJU0hBNTEyX0JMT0NLX1NJ WkUKKysKKytzdGF0aWMgaW5saW5lIGludCBzdGFyZml2ZV9oYXNoX3dhaXRfYnVzeShzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9jdHggKmN0eCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAq Y3J5cCA9IGN0eC0+Y3J5cDsKKysJdTMyIHN0YXR1czsKKysKKysJcmV0dXJuIHJlYWRsX3JlbGF4 ZWRfcG9sbF90aW1lb3V0KGNyeXAtPmJhc2UgKyBTVEFSRklWRV9IQVNIX1NIQUNTUiwgc3RhdHVz LAorKwkJCQkJICAhKHN0YXR1cyAmIFNUQVJGSVZFX0hBU0hfQlVTWSksIDEwLCAxMDAwMDApOwor K30KKysKKytzdGF0aWMgaW5saW5lIGludCBzdGFyZml2ZV9oYXNoX3dhaXRfa2V5X2RvbmUoc3Ry dWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHgpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9k ZXYgKmNyeXAgPSBjdHgtPmNyeXA7CisrCXUzMiBzdGF0dXM7CisrCisrCXJldHVybiByZWFkbF9y ZWxheGVkX3BvbGxfdGltZW91dChjcnlwLT5iYXNlICsgU1RBUkZJVkVfSEFTSF9TSEFDU1IsIHN0 YXR1cywKKysJCQkJCSAgKHN0YXR1cyAmIFNUQVJGSVZFX0hBU0hfS0VZX0RPTkUpLCAxMCwgMTAw MDAwKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX2htYWNfa2V5KHN0cnVjdCBz dGFyZml2ZV9jcnlwX2N0eCAqY3R4KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfcmVxdWVz dF9jdHggKnJjdHggPSBjdHgtPnJjdHg7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5 cCA9IGN0eC0+Y3J5cDsKKysJaW50IGtsZW4gPSBjdHgtPmtleWxlbiwgbG9vcDsKKysJdW5zaWdu ZWQgaW50ICprZXkgPSAodW5zaWduZWQgaW50ICopY3R4LT5rZXk7CisrCXVuc2lnbmVkIGNoYXIg KmNsOworKworKwl3cml0ZWwoY3R4LT5rZXlsZW4sIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9IQVNI X1NIQVdLTEVOKTsKKysKKysJcmN0eC0+Y3NyLmhhc2guaG1hYyA9IDE7CisrCXJjdHgtPmNzci5o YXNoLmtleV9mbGFnID0gMTsKKysKKysJd3JpdGVsKHJjdHgtPmNzci5oYXNoLnYsIGNyeXAtPmJh c2UgKyBTVEFSRklWRV9IQVNIX1NIQUNTUik7CisrCisrCWZvciAobG9vcCA9IDA7IGxvb3AgPCBr bGVuIC8gc2l6ZW9mKHVuc2lnbmVkIGludCk7IGxvb3ArKywga2V5KyspCisrCQl3cml0ZWwoKmtl eSwgY3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBV0tSKTsKKysKKysJaWYgKGtsZW4gJiAw eDMpIHsKKysJCWNsID0gKHVuc2lnbmVkIGNoYXIgKilrZXk7CisrCQlmb3IgKGxvb3AgPSAwOyBs b29wIDwgKGtsZW4gJiAweDMpOyBsb29wKyssIGNsKyspCisrCQkJd3JpdGViKCpjbCwgY3J5cC0+ YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBV0tSKTsKKysJfQorKworKwlpZiAoc3RhcmZpdmVfaGFz aF93YWl0X2tleV9kb25lKGN0eCkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShjcnlwLT5kZXYs IC1FVElNRURPVVQsICJzdGFyZml2ZV9oYXNoX3dhaXRfa2V5X2RvbmUgZXJyb3JcbiIpOworKwor KwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfaGFzaF9zdGFydCh2b2lk ICpwYXJhbSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gcGFyYW07Cisr CXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gY3R4LT5yY3R4OworKwlz dHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNyeXAgPSBjdHgtPmNyeXA7CisrCXVuaW9uIHN0YXJm aXZlX2FsZ19jciBhbGdfY3I7CisrCXVuaW9uIHN0YXJmaXZlX2hhc2hfY3NyIGNzcjsKKysKKysJ ZG1hX3VubWFwX3NnKGNyeXAtPmRldiwgcmN0eC0+aW5fc2csIHJjdHgtPmluX3NnX2xlbiwgRE1B X1RPX0RFVklDRSk7CisrCisrCWFsZ19jci52ID0gMDsKKysJYWxnX2NyLmNsZWFyID0gMTsKKysK KysJd3JpdGVsKGFsZ19jci52LCBjcnlwLT5iYXNlICsgU1RBUkZJVkVfQUxHX0NSX09GRlNFVCk7 CisrCisrCWNzci52ID0gcmVhZGwoY3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBQ1NSKTsK KysJY3NyLmZpcnN0YiA9IDA7CisrCWNzci5maW5hbCA9IDE7CisrCisrCXdyaXRlbCh+U1RBUkZJ VkVfSUVfTUFTS19IQVNIX0RPTkUsIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9JRV9NQVNLX09GRlNF VCk7CisrCXdyaXRlbChjc3IudiwgY3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBQ1NSKTsK Kyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX3htaXRfZG1hKHN0cnVjdCBzdGFyZml2 ZV9jcnlwX2N0eCAqY3R4KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfcmVxdWVzdF9jdHgg KnJjdHggPSBjdHgtPnJjdHg7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5cCA9IGN0 eC0+Y3J5cDsKKysJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yCSppbl9kZXNjOworKwl1 bmlvbiAgc3RhcmZpdmVfYWxnX2NyIGFsZ19jcjsKKysJaW50IHRvdGFsX2xlbjsKKysJaW50IHJl dDsKKysKKysJaWYgKCFyY3R4LT50b3RhbCkgeworKwkJc3RhcmZpdmVfaGFzaF9zdGFydChjdHgp OworKwkJcmV0dXJuIDA7CisrCX0KKysKKysJd3JpdGVsKHJjdHgtPnRvdGFsLCBjcnlwLT5iYXNl ICsgU1RBUkZJVkVfRE1BX0lOX0xFTl9PRkZTRVQpOworKworKwl0b3RhbF9sZW4gPSByY3R4LT50 b3RhbDsKKysJdG90YWxfbGVuID0gKHRvdGFsX2xlbiAmIDB4MykgPyAoKCh0b3RhbF9sZW4gPj4g MikgKyAxKSA8PCAyKSA6IHRvdGFsX2xlbjsKKysJc2dfZG1hX2xlbihyY3R4LT5pbl9zZykgPSB0 b3RhbF9sZW47CisrCisrCWFsZ19jci52ID0gMDsKKysJYWxnX2NyLnN0YXJ0ID0gMTsKKysJYWxn X2NyLmhhc2hfZG1hX2VuID0gMTsKKysKKysJd3JpdGVsKGFsZ19jci52LCBjcnlwLT5iYXNlICsg U1RBUkZJVkVfQUxHX0NSX09GRlNFVCk7CisrCisrCXJldCA9IGRtYV9tYXBfc2coY3J5cC0+ZGV2 LCByY3R4LT5pbl9zZywgcmN0eC0+aW5fc2dfbGVuLCBETUFfVE9fREVWSUNFKTsKKysJaWYgKCFy ZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShjcnlwLT5kZXYsIC1FSU5WQUwsICJkbWFfbWFw X3NnKCkgZXJyb3JcbiIpOworKworKwljcnlwLT5jZmdfaW4uZGlyZWN0aW9uID0gRE1BX01FTV9U T19ERVY7CisrCWNyeXAtPmNmZ19pbi5zcmNfYWRkcl93aWR0aCA9IERNQV9TTEFWRV9CVVNXSURU SF80X0JZVEVTOworKwljcnlwLT5jZmdfaW4uZHN0X2FkZHJfd2lkdGggPSBETUFfU0xBVkVfQlVT V0lEVEhfNF9CWVRFUzsKKysJY3J5cC0+Y2ZnX2luLnNyY19tYXhidXJzdCA9IGNyeXAtPmRtYV9t YXhidXJzdDsKKysJY3J5cC0+Y2ZnX2luLmRzdF9tYXhidXJzdCA9IGNyeXAtPmRtYV9tYXhidXJz dDsKKysJY3J5cC0+Y2ZnX2luLmRzdF9hZGRyID0gY3J5cC0+cGh5c19iYXNlICsgU1RBUkZJVkVf QUxHX0ZJRk9fT0ZGU0VUOworKworKwlkbWFlbmdpbmVfc2xhdmVfY29uZmlnKGNyeXAtPnR4LCAm Y3J5cC0+Y2ZnX2luKTsKKysKKysJaW5fZGVzYyA9IGRtYWVuZ2luZV9wcmVwX3NsYXZlX3NnKGNy eXAtPnR4LCByY3R4LT5pbl9zZywKKysJCQkJCSAgcmV0LCBETUFfTUVNX1RPX0RFViwKKysJCQkJ CSAgRE1BX1BSRVBfSU5URVJSVVBUICB8ICBETUFfQ1RSTF9BQ0spOworKworKwlpZiAoIWluX2Rl c2MpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJaW5fZGVzYy0+Y2FsbGJhY2sgPSBzdGFyZml2 ZV9oYXNoX3N0YXJ0OworKwlpbl9kZXNjLT5jYWxsYmFja19wYXJhbSA9IGN0eDsKKysKKysJZG1h ZW5naW5lX3N1Ym1pdChpbl9kZXNjKTsKKysJZG1hX2FzeW5jX2lzc3VlX3BlbmRpbmcoY3J5cC0+ dHgpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX3ht aXQoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHgpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVf Y3J5cF9yZXF1ZXN0X2N0eCAqcmN0eCA9IGN0eC0+cmN0eDsKKysJc3RydWN0IHN0YXJmaXZlX2Ny eXBfZGV2ICpjcnlwID0gY3R4LT5jcnlwOworKwlpbnQgcmV0ID0gMDsKKysKKysJcmN0eC0+Y3Ny Lmhhc2gudiA9IDA7CisrCXJjdHgtPmNzci5oYXNoLnJlc2V0ID0gMTsKKysJd3JpdGVsKHJjdHgt PmNzci5oYXNoLnYsIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9IQVNIX1NIQUNTUik7CisrCisrCWlm IChzdGFyZml2ZV9oYXNoX3dhaXRfYnVzeShjdHgpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUo Y3J5cC0+ZGV2LCAtRVRJTUVET1VULCAiRXJyb3IgcmVzZXR0aW5nIGVuZ2luZS5cbiIpOworKwor KwlyY3R4LT5jc3IuaGFzaC52ID0gMDsKKysJcmN0eC0+Y3NyLmhhc2gubW9kZSA9IGN0eC0+aGFz aF9tb2RlOworKwlyY3R4LT5jc3IuaGFzaC5pZSA9IDE7CisrCisrCWlmIChjdHgtPmlzX2htYWMp IHsKKysJCXJldCA9IHN0YXJmaXZlX2hhc2hfaG1hY19rZXkoY3R4KTsKKysJCWlmIChyZXQpCisr CQkJcmV0dXJuIHJldDsKKysJfSBlbHNlIHsKKysJCXJjdHgtPmNzci5oYXNoLnN0YXJ0ID0gMTsK KysJCXJjdHgtPmNzci5oYXNoLmZpcnN0YiA9IDE7CisrCQl3cml0ZWwocmN0eC0+Y3NyLmhhc2gu diwgY3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBQ1NSKTsKKysJfQorKworKwlyZXR1cm4g c3RhcmZpdmVfaGFzaF94bWl0X2RtYShjdHgpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZl X2hhc2hfY29weV9oYXNoKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCisreworKwlzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9yZXF1ZXN0X2N0eCAqcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7 CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChjcnlw dG9fYWhhc2hfcmVxdGZtKHJlcSkpOworKwlpbnQgY291bnQsICpkYXRhOworKwlpbnQgbWxlbjsK KysKKysJaWYgKCFyZXEtPnJlc3VsdCkKKysJCXJldHVybiAwOworKworKwltbGVuID0gcmN0eC0+ ZGlnc2l6ZSAvIHNpemVvZih1MzIpOworKwlkYXRhID0gKHUzMiAqKXJlcS0+cmVzdWx0OworKwor Kwlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBtbGVuOyBjb3VudCsrKQorKwkJZGF0YVtjb3VudF0g PSByZWFkbChjdHgtPmNyeXAtPmJhc2UgKyBTVEFSRklWRV9IQVNIX1NIQVJEUik7CisrCisrCXJl dHVybiAwOworK30KKysKKyt2b2lkIHN0YXJmaXZlX2hhc2hfZG9uZV90YXNrKHVuc2lnbmVkIGxv bmcgcGFyYW0pCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNyeXAgPSAoc3RydWN0 IHN0YXJmaXZlX2NyeXBfZGV2ICopcGFyYW07CisrCWludCBlcnIgPSBjcnlwLT5lcnI7CisrCisr CWlmICghZXJyKQorKwkJZXJyID0gc3RhcmZpdmVfaGFzaF9jb3B5X2hhc2goY3J5cC0+cmVxLmhy ZXEpOworKworKwljcnlwdG9fZmluYWxpemVfaGFzaF9yZXF1ZXN0KGNyeXAtPmVuZ2luZSwgY3J5 cC0+cmVxLmhyZXEsIGVycik7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaGFzaF9jaGVj a19hbGlnbmVkKHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIHNpemVfdCB0b3RhbCwgc2l6ZV90IGFs aWduKQorK3sKKysJaW50IGxlbiA9IDA7CisrCisrCWlmICghdG90YWwpCisrCQlyZXR1cm4gMDsK KysKKysJaWYgKCFJU19BTElHTkVEKHRvdGFsLCBhbGlnbikpCisrCQlyZXR1cm4gLUVJTlZBTDsK KysKKysJd2hpbGUgKHNnKSB7CisrCQlpZiAoIUlTX0FMSUdORUQoc2ctPm9mZnNldCwgc2l6ZW9m KHUzMikpKQorKwkJCXJldHVybiAtRUlOVkFMOworKworKwkJaWYgKCFJU19BTElHTkVEKHNnLT5s ZW5ndGgsIGFsaWduKSkKKysJCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJCWxlbiArPSBzZy0+bGVu Z3RoOworKwkJc2cgPSBzZ19uZXh0KHNnKTsKKysJfQorKworKwlpZiAobGVuICE9IHRvdGFsKQor KwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX2hhc2hfb25lX3JlcXVlc3Qoc3RydWN0IGNyeXB0b19lbmdpbmUgKmVuZ2luZSwgdm9p ZCAqYXJlcSkKKyt7CisrCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2Yo YXJlcSwgc3RydWN0IGFoYXNoX3JlcXVlc3QsCisrCQkJCQkJIGJhc2UpOworKwlzdHJ1Y3Qgc3Rh cmZpdmVfY3J5cF9jdHggKmN0eCA9IGNyeXB0b19haGFzaF9jdHgoY3J5cHRvX2FoYXNoX3JlcXRm bShyZXEpKTsKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwID0gY3R4LT5jcnlwOwor KworKwlpZiAoIWNyeXApCisrCQlyZXR1cm4gLUVOT0RFVjsKKysKKysJcmV0dXJuIHN0YXJmaXZl X2hhc2hfeG1pdChjdHgpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfaW5pdChz dHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQorK3sKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZt ID0gY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9yZXF1 ZXN0X2N0eCAqcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisrCXN0cnVjdCBzdGFyZml2 ZV9jcnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eCh0Zm0pOworKworKwlhaGFzaF9yZXF1 ZXN0X3NldF90Zm0oJnJjdHgtPmFoYXNoX2Zia19yZXEsIGN0eC0+YWhhc2hfZmJrKTsKKysJYWhh c2hfcmVxdWVzdF9zZXRfY2FsbGJhY2soJnJjdHgtPmFoYXNoX2Zia19yZXEsCisrCQkJCSAgIHJl cS0+YmFzZS5mbGFncyAmIENSWVBUT19URk1fUkVRX01BWV9TTEVFUCwKKysJCQkJICAgcmVxLT5i YXNlLmNvbXBsZXRlLCByZXEtPmJhc2UuZGF0YSk7CisrCisrCWFoYXNoX3JlcXVlc3Rfc2V0X2Ny eXB0KCZyY3R4LT5haGFzaF9mYmtfcmVxLCByZXEtPnNyYywKKysJCQkJcmVxLT5yZXN1bHQsIHJl cS0+bmJ5dGVzKTsKKysKKysJcmV0dXJuIGNyeXB0b19haGFzaF9pbml0KCZyY3R4LT5haGFzaF9m YmtfcmVxKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX3VwZGF0ZShzdHJ1Y3Qg YWhhc2hfcmVxdWVzdCAqcmVxKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfcmVxdWVzdF9j dHggKnJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEpOworKwlzdHJ1Y3QgY3J5cHRvX2FoYXNo ICp0Zm0gPSBjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSk7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlw X2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eCh0Zm0pOworKworKwlhaGFzaF9yZXF1ZXN0X3Nl dF90Zm0oJnJjdHgtPmFoYXNoX2Zia19yZXEsIGN0eC0+YWhhc2hfZmJrKTsKKysJYWhhc2hfcmVx dWVzdF9zZXRfY2FsbGJhY2soJnJjdHgtPmFoYXNoX2Zia19yZXEsCisrCQkJCSAgIHJlcS0+YmFz ZS5mbGFncyAmIENSWVBUT19URk1fUkVRX01BWV9TTEVFUCwKKysJCQkJICAgcmVxLT5iYXNlLmNv bXBsZXRlLCByZXEtPmJhc2UuZGF0YSk7CisrCisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KCZy Y3R4LT5haGFzaF9mYmtfcmVxLCByZXEtPnNyYywKKysJCQkJcmVxLT5yZXN1bHQsIHJlcS0+bmJ5 dGVzKTsKKysKKysJcmV0dXJuIGNyeXB0b19haGFzaF91cGRhdGUoJnJjdHgtPmFoYXNoX2Zia19y ZXEpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfZmluYWwoc3RydWN0IGFoYXNo X3JlcXVlc3QgKnJlcSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpy Y3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZt ID0gY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgg KmN0eCA9IGNyeXB0b19haGFzaF9jdHgodGZtKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZt KCZyY3R4LT5haGFzaF9mYmtfcmVxLCBjdHgtPmFoYXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rf c2V0X2NhbGxiYWNrKCZyY3R4LT5haGFzaF9mYmtfcmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxh Z3MgJiBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVAsCisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0 ZSwgcmVxLT5iYXNlLmRhdGEpOworKworKwlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdCgmcmN0eC0+ YWhhc2hfZmJrX3JlcSwgcmVxLT5zcmMsCisrCQkJCXJlcS0+cmVzdWx0LCByZXEtPm5ieXRlcyk7 CisrCisrCXJldHVybiBjcnlwdG9fYWhhc2hfZmluYWwoJnJjdHgtPmFoYXNoX2Zia19yZXEpOwor K30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfZmludXAoc3RydWN0IGFoYXNoX3JlcXVl c3QgKnJlcSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0g YWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5 cHRvX2FoYXNoX3JlcXRmbShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9 IGNyeXB0b19haGFzaF9jdHgodGZtKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZyY3R4 LT5haGFzaF9mYmtfcmVxLCBjdHgtPmFoYXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rfc2V0X2Nh bGxiYWNrKCZyY3R4LT5haGFzaF9mYmtfcmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxhZ3MgJiBD UllQVE9fVEZNX1JFUV9NQVlfU0xFRVAsCisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVx LT5iYXNlLmRhdGEpOworKworKwlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdCgmcmN0eC0+YWhhc2hf ZmJrX3JlcSwgcmVxLT5zcmMsCisrCQkJCXJlcS0+cmVzdWx0LCByZXEtPm5ieXRlcyk7CisrCisr CXJldHVybiBjcnlwdG9fYWhhc2hfZmludXAoJnJjdHgtPmFoYXNoX2Zia19yZXEpOworK30KKysK KytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfZGlnZXN0X2ZiKHN0cnVjdCBhaGFzaF9yZXF1ZXN0 ICpyZXEpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9yZXF1ZXN0X2N0eCAqcmN0eCA9IGFo YXNoX3JlcXVlc3RfY3R4KHJlcSk7CisrCXN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSA9IGNyeXB0 b19haGFzaF9yZXF0Zm0ocmVxKTsKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBj cnlwdG9fYWhhc2hfY3R4KHRmbSk7CisrCisrCWFoYXNoX3JlcXVlc3Rfc2V0X3RmbSgmcmN0eC0+ YWhhc2hfZmJrX3JlcSwgY3R4LT5haGFzaF9mYmspOworKwlhaGFzaF9yZXF1ZXN0X3NldF9jYWxs YmFjaygmcmN0eC0+YWhhc2hfZmJrX3JlcSwgcmVxLT5iYXNlLmZsYWdzLAorKwkJCQkgICByZXEt PmJhc2UuY29tcGxldGUsIHJlcS0+YmFzZS5kYXRhKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRf Y3J5cHQoJnJjdHgtPmFoYXNoX2Zia19yZXEsIHJlcS0+c3JjLAorKwkJCQlyZXEtPnJlc3VsdCwg cmVxLT5uYnl0ZXMpOworKworKwlyZXR1cm4gY3J5cHRvX2FoYXNoX2RpZ2VzdCgmcmN0eC0+YWhh c2hfZmJrX3JlcSk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaGFzaF9kaWdlc3Qoc3Ry dWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKKyt7CisrCXN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSA9 IGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKTsKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpj dHggPSBjcnlwdG9fYWhhc2hfY3R4KHRmbSk7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVl c3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IHN0YXJmaXZl X2NyeXBfZGV2ICpjcnlwID0gY3R4LT5jcnlwOworKworKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9m KHN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4KSk7CisrCisrCWNyeXAtPnJlcS5ocmVx ID0gcmVxOworKwlyY3R4LT50b3RhbCA9IHJlcS0+bmJ5dGVzOworKwlyY3R4LT5pbl9zZyA9IHJl cS0+c3JjOworKwlyY3R4LT5ibGtzaXplID0gY3J5cHRvX3RmbV9hbGdfYmxvY2tzaXplKGNyeXB0 b19haGFzaF90Zm0odGZtKSk7CisrCXJjdHgtPmRpZ3NpemUgPSBjcnlwdG9fYWhhc2hfZGlnZXN0 c2l6ZSh0Zm0pOworKwlyY3R4LT5pbl9zZ19sZW4gPSBzZ19uZW50c19mb3JfbGVuKHJjdHgtPmlu X3NnLCByY3R4LT50b3RhbCk7CisrCWN0eC0+cmN0eCA9IHJjdHg7CisrCisrCWlmIChzdGFyZml2 ZV9oYXNoX2NoZWNrX2FsaWduZWQocmN0eC0+aW5fc2csIHJjdHgtPnRvdGFsLCByY3R4LT5ibGtz aXplKSkKKysJCXJldHVybiBzdGFyZml2ZV9oYXNoX2RpZ2VzdF9mYihyZXEpOworKworKwlyZXR1 cm4gY3J5cHRvX3RyYW5zZmVyX2hhc2hfcmVxdWVzdF90b19lbmdpbmUoY3J5cC0+ZW5naW5lLCBy ZXEpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfZXhwb3J0KHN0cnVjdCBhaGFz aF9yZXF1ZXN0ICpyZXEsIHZvaWQgKm91dCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3Jl cXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IGNyeXB0 b19haGFzaCAqdGZtID0gY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZp dmVfY3J5cF9jdHggKmN0eCA9IGNyeXB0b19haGFzaF9jdHgodGZtKTsKKysKKysJYWhhc2hfcmVx dWVzdF9zZXRfdGZtKCZyY3R4LT5haGFzaF9mYmtfcmVxLCBjdHgtPmFoYXNoX2Ziayk7CisrCWFo YXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKCZyY3R4LT5haGFzaF9mYmtfcmVxLAorKwkJCQkgICBy ZXEtPmJhc2UuZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVAsCisrCQkJCSAgIHJlcS0+ YmFzZS5jb21wbGV0ZSwgcmVxLT5iYXNlLmRhdGEpOworKworKwlyZXR1cm4gY3J5cHRvX2FoYXNo X2V4cG9ydCgmcmN0eC0+YWhhc2hfZmJrX3JlcSwgb3V0KTsKKyt9CisrCisrc3RhdGljIGludCBz dGFyZml2ZV9oYXNoX2ltcG9ydChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLCBjb25zdCB2b2lk ICppbikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhh c2hfcmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRv X2FoYXNoX3JlcXRmbShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9IGNy eXB0b19haGFzaF9jdHgodGZtKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZyY3R4LT5h aGFzaF9mYmtfcmVxLCBjdHgtPmFoYXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxi YWNrKCZyY3R4LT5haGFzaF9mYmtfcmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxhZ3MgJiBDUllQ VE9fVEZNX1JFUV9NQVlfU0xFRVAsCisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVxLT5i YXNlLmRhdGEpOworKworKwlyZXR1cm4gY3J5cHRvX2FoYXNoX2ltcG9ydCgmcmN0eC0+YWhhc2hf ZmJrX3JlcSwgaW4pOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfaW5pdF90Zm0o c3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCwKKysJCQkJICBjb25zdCBjaGFyICphbGdfbmFtZSwK KysJCQkJICB1bnNpZ25lZCBpbnQgbW9kZSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0 eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChoYXNoKTsKKysKKysJY3R4LT5jcnlwID0gc3RhcmZp dmVfY3J5cF9maW5kX2RldihjdHgpOworKworKwlpZiAoIWN0eC0+Y3J5cCkKKysJCXJldHVybiAt RU5PREVWOworKworKwljdHgtPmFoYXNoX2ZiayA9IGNyeXB0b19hbGxvY19haGFzaChhbGdfbmFt ZSwgMCwKKysJCQkJCSAgICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0spOworKworKwlpZiAoSVNf RVJSKGN0eC0+YWhhc2hfZmJrKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGN0eC0+Y3J5cC0+ ZGV2LCBQVFJfRVJSKGN0eC0+YWhhc2hfZmJrKSwKKysJCQkJICAgICAic3RhcmZpdmVfaGFzaDog Q291bGQgbm90IGxvYWQgZmFsbGJhY2sgZHJpdmVyLlxuIik7CisrCisrCWNyeXB0b19haGFzaF9z ZXRfc3RhdGVzaXplKGhhc2gsIGNyeXB0b19haGFzaF9zdGF0ZXNpemUoY3R4LT5haGFzaF9mYmsp KTsKKysJY3J5cHRvX2FoYXNoX3NldF9yZXFzaXplKGhhc2gsIHNpemVvZihzdHJ1Y3Qgc3RhcmZp dmVfY3J5cF9yZXF1ZXN0X2N0eCkgKworKwkJCQkgY3J5cHRvX2FoYXNoX3JlcXNpemUoY3R4LT5h aGFzaF9mYmspKTsKKysKKysJY3R4LT5rZXlsZW4gPSAwOworKwljdHgtPmhhc2hfbW9kZSA9IG1v ZGU7CisrCisrCWN0eC0+ZW5naW5lY3R4Lm9wLmRvX29uZV9yZXF1ZXN0ID0gc3RhcmZpdmVfaGFz aF9vbmVfcmVxdWVzdDsKKysJY3R4LT5lbmdpbmVjdHgub3AucHJlcGFyZV9yZXF1ZXN0ID0gTlVM TDsKKysJY3R4LT5lbmdpbmVjdHgub3AudW5wcmVwYXJlX3JlcXVlc3QgPSBOVUxMOworKworKwly ZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfaGFzaF9leGl0X3RmbShzdHJ1 Y3QgY3J5cHRvX2FoYXNoICpoYXNoKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpj dHggPSBjcnlwdG9fYWhhc2hfY3R4KGhhc2gpOworKworKwljcnlwdG9fZnJlZV9haGFzaChjdHgt PmFoYXNoX2Ziayk7CisrCisrCWN0eC0+YWhhc2hfZmJrID0gTlVMTDsKKysJY3R4LT5lbmdpbmVj dHgub3AuZG9fb25lX3JlcXVlc3QgPSBOVUxMOworKwljdHgtPmVuZ2luZWN0eC5vcC5wcmVwYXJl X3JlcXVlc3QgPSBOVUxMOworKwljdHgtPmVuZ2luZWN0eC5vcC51bnByZXBhcmVfcmVxdWVzdCA9 IE5VTEw7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaGFzaF9sb25nX3NldGtleShzdHJ1 Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCwKKysJCQkJICAgICBjb25zdCB1OCAqa2V5LCB1bnNp Z25lZCBpbnQga2V5bGVuLAorKwkJCQkgICAgIGNvbnN0IGNoYXIgKmFsZ19uYW1lKQorK3sKKysJ c3RydWN0IGNyeXB0b193YWl0IHdhaXQ7CisrCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXE7Cisr CXN0cnVjdCBzY2F0dGVybGlzdCBzZzsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqYWhhc2hfdGZt OworKwl1OCAqYnVmOworKwlpbnQgcmV0OworKworKwlhaGFzaF90Zm0gPSBjcnlwdG9fYWxsb2Nf YWhhc2goYWxnX25hbWUsIDAsIDApOworKwlpZiAoSVNfRVJSKGFoYXNoX3RmbSkpCisrCQlyZXR1 cm4gUFRSX0VSUihhaGFzaF90Zm0pOworKworKwlyZXEgPSBhaGFzaF9yZXF1ZXN0X2FsbG9jKGFo YXNoX3RmbSwgR0ZQX0tFUk5FTCk7CisrCWlmICghcmVxKSB7CisrCQlyZXQgPSAtRU5PTUVNOwor KwkJZ290byBlcnJfZnJlZV9haGFzaDsKKysJfQorKworKwljcnlwdG9faW5pdF93YWl0KCZ3YWl0 KTsKKysJYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2socmVxLCBDUllQVE9fVEZNX1JFUV9NQVlf QkFDS0xPRywKKysJCQkJICAgY3J5cHRvX3JlcV9kb25lLCAmd2FpdCk7CisrCWNyeXB0b19haGFz aF9jbGVhcl9mbGFncyhhaGFzaF90Zm0sIH4wKTsKKysKKysJYnVmID0ga3phbGxvYyhrZXlsZW4g KyBTVEFSRklWRV9IQVNIX0JVRkxFTiwgR0ZQX0tFUk5FTCk7CisrCWlmICghYnVmKSB7CisrCQly ZXQgPSAtRU5PTUVNOworKwkJZ290byBlcnJfZnJlZV9yZXE7CisrCX0KKysKKysJbWVtY3B5KGJ1 Ziwga2V5LCBrZXlsZW4pOworKwlzZ19pbml0X29uZSgmc2csIGJ1Ziwga2V5bGVuKTsKKysJYWhh c2hfcmVxdWVzdF9zZXRfY3J5cHQocmVxLCAmc2csIGN0eC0+a2V5LCBrZXlsZW4pOworKworKwly ZXQgPSBjcnlwdG9fd2FpdF9yZXEoY3J5cHRvX2FoYXNoX2RpZ2VzdChyZXEpLCAmd2FpdCk7Cisr CisrCWtmcmVlKGJ1Zik7CisrZXJyX2ZyZWVfcmVxOgorKwlhaGFzaF9yZXF1ZXN0X2ZyZWUocmVx KTsKKytlcnJfZnJlZV9haGFzaDoKKysJY3J5cHRvX2ZyZWVfYWhhc2goYWhhc2hfdGZtKTsKKysJ cmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX3NldGtleShzdHJ1 Y3QgY3J5cHRvX2FoYXNoICpoYXNoLAorKwkJCQljb25zdCB1OCAqa2V5LCB1bnNpZ25lZCBpbnQg a2V5bGVuKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhh c2hfY3R4KGhhc2gpOworKwl1bnNpZ25lZCBpbnQgZGlnZXN0c2l6ZSA9IGNyeXB0b19haGFzaF9k aWdlc3RzaXplKGhhc2gpOworKwl1bnNpZ25lZCBpbnQgYmxvY2tzaXplID0gY3J5cHRvX2FoYXNo X2Jsb2Nrc2l6ZShoYXNoKTsKKysJY29uc3QgY2hhciAqYWxnX25hbWU7CisrCisrCWNyeXB0b19h aGFzaF9zZXRrZXkoY3R4LT5haGFzaF9mYmssIGtleSwga2V5bGVuKTsKKysKKysJaWYgKGtleWxl biA8PSBibG9ja3NpemUpIHsKKysJCW1lbWNweShjdHgtPmtleSwga2V5LCBrZXlsZW4pOworKwkJ Y3R4LT5rZXlsZW4gPSBrZXlsZW47CisrCQlyZXR1cm4gMDsKKysJfQorKworKwljdHgtPmtleWxl biA9IGRpZ2VzdHNpemU7CisrCisrCXN3aXRjaCAoZGlnZXN0c2l6ZSkgeworKwljYXNlIFNIQTIy NF9ESUdFU1RfU0laRToKKysJCWFsZ19uYW1lID0gInNoYTIyNC1zdGFyZml2ZSI7CisrCQlicmVh azsKKysJY2FzZSBTSEEyNTZfRElHRVNUX1NJWkU6CisrCQlpZiAoY3R4LT5oYXNoX21vZGUgPT0g U1RBUkZJVkVfSEFTSF9TTTMpCisrCQkJYWxnX25hbWUgPSAic20zLXN0YXJmaXZlIjsKKysJCWVs c2UKKysJCQlhbGdfbmFtZSA9ICJzaGEyNTYtc3RhcmZpdmUiOworKwkJYnJlYWs7CisrCWNhc2Ug U0hBMzg0X0RJR0VTVF9TSVpFOgorKwkJYWxnX25hbWUgPSAic2hhMzg0LXN0YXJmaXZlIjsKKysJ CWJyZWFrOworKwljYXNlIFNIQTUxMl9ESUdFU1RfU0laRToKKysJCWFsZ19uYW1lID0gInNoYTUx Mi1zdGFyZml2ZSI7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCXJldHVybiAtRUlOVkFMOwor Kwl9CisrCisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2xvbmdfc2V0a2V5KGN0eCwga2V5LCBrZXls ZW4sIGFsZ19uYW1lKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9zaGEyMjRfaW5pdF90 Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNo X2luaXRfdGZtKGhhc2gsICJzaGEyMjQtZ2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hB U0hfU0hBMjI0KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9zaGEyNTZfaW5pdF90Zm0o c3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2lu aXRfdGZtKGhhc2gsICJzaGEyNTYtZ2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hf U0hBMjU2KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9zaGEzODRfaW5pdF90Zm0oc3Ry dWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRf dGZtKGhhc2gsICJzaGEzODQtZ2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hB Mzg0KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9zaGE1MTJfaW5pdF90Zm0oc3RydWN0 IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZt KGhhc2gsICJzaGE1MTItZ2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBNTEy KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9zbTNfaW5pdF90Zm0oc3RydWN0IGNyeXB0 b19haGFzaCAqaGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gs ICJzbTMtZ2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU00zKTsKKyt9CisrCisr c3RhdGljIGludCBzdGFyZml2ZV9obWFjX3NoYTIyNF9pbml0X3RmbShzdHJ1Y3QgY3J5cHRvX2Fo YXNoICpoYXNoKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9f YWhhc2hfY3R4KGhhc2gpOworKworKwljdHgtPmlzX2htYWMgPSB0cnVlOworKworKwlyZXR1cm4g c3RhcmZpdmVfaGFzaF9pbml0X3RmbShoYXNoLCAiaG1hYyhzaGEyMjQtZ2VuZXJpYykiLAorKwkJ CQkgICAgICBTVEFSRklWRV9IQVNIX1NIQTIyNCk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZp dmVfaG1hY19zaGEyNTZfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7Cisr CXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChoYXNoKTsK KysKKysJY3R4LT5pc19obWFjID0gdHJ1ZTsKKysKKysJcmV0dXJuIHN0YXJmaXZlX2hhc2hfaW5p dF90Zm0oaGFzaCwgImhtYWMoc2hhMjU2LWdlbmVyaWMpIiwKKysJCQkJICAgICAgU1RBUkZJVkVf SEFTSF9TSEEyNTYpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2htYWNfc2hhMzg0X2lu aXRfdGZtKHN0cnVjdCBjcnlwdG9fYWhhc2ggKmhhc2gpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVf Y3J5cF9jdHggKmN0eCA9IGNyeXB0b19haGFzaF9jdHgoaGFzaCk7CisrCisrCWN0eC0+aXNfaG1h YyA9IHRydWU7CisrCisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJobWFj KHNoYTM4NC1nZW5lcmljKSIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBMzg0KTsKKyt9 CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9obWFjX3NoYTUxMl9pbml0X3RmbShzdHJ1Y3QgY3J5 cHRvX2FoYXNoICpoYXNoKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBj cnlwdG9fYWhhc2hfY3R4KGhhc2gpOworKworKwljdHgtPmlzX2htYWMgPSB0cnVlOworKworKwly ZXR1cm4gc3RhcmZpdmVfaGFzaF9pbml0X3RmbShoYXNoLCAiaG1hYyhzaGE1MTItZ2VuZXJpYyki LAorKwkJCQkgICAgICBTVEFSRklWRV9IQVNIX1NIQTUxMik7CisrfQorKworK3N0YXRpYyBpbnQg c3RhcmZpdmVfaG1hY19zbTNfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7 CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChoYXNo KTsKKysKKysJY3R4LT5pc19obWFjID0gdHJ1ZTsKKysKKysJcmV0dXJuIHN0YXJmaXZlX2hhc2hf aW5pdF90Zm0oaGFzaCwgImhtYWMoc20zLWdlbmVyaWMpIiwKKysJCQkJICAgICAgU1RBUkZJVkVf SEFTSF9TTTMpOworK30KKysKKytzdGF0aWMgc3RydWN0IGFoYXNoX2FsZyBhbGdzX3NoYTJfc20z W10gPSB7CisreworKwkuaW5pdCAgICAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUg ICA9IHN0YXJmaXZlX2hhc2hfdXBkYXRlLAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2Zp bmFsLAorKwkuZmludXAgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBz dGFyZml2ZV9oYXNoX2RpZ2VzdCwKKysJLmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQs CisrCS5pbXBvcnQgICA9IHN0YXJmaXZlX2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFy Zml2ZV9zaGEyMjRfaW5pdF90Zm0sCisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90 Zm0sCisrCS5oYWxnID0geworKwkJLmRpZ2VzdHNpemUgPSBTSEEyMjRfRElHRVNUX1NJWkUsCisr CQkuc3RhdGVzaXplICA9IHNpemVvZihzdHJ1Y3Qgc2hhMjU2X3N0YXRlKSwKKysJCS5iYXNlID0g eworKwkJCS5jcmFfbmFtZQkJPSAic2hhMjI0IiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNo YTIyNC1zdGFyZml2ZSIsCisrCQkJLmNyYV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFn cwkJPSBDUllQVE9fQUxHX0FTWU5DIHwKKysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8 CisrCQkJCQkJICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJ CT0gU0hBMjI0X0JMT0NLX1NJWkUsCisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9t b2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0 YXJmaXZlX2hhc2hfaW5pdCwKKysJLnVwZGF0ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisr CS5maW5hbCAgICA9IHN0YXJmaXZlX2hhc2hfZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZl X2hhc2hfZmludXAsCisrCS5kaWdlc3QgICA9IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhw b3J0ICAgPSBzdGFyZml2ZV9oYXNoX2V4cG9ydCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFz aF9pbXBvcnQsCisrCS5pbml0X3RmbSA9IHN0YXJmaXZlX2htYWNfc2hhMjI0X2luaXRfdGZtLAor KwkuZXhpdF90Zm0gPSBzdGFyZml2ZV9oYXNoX2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFy Zml2ZV9oYXNoX3NldGtleSwKKysJLmhhbGcgPSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTIyNF9E SUdFU1RfU0laRSwKKysJCS5zdGF0ZXNpemUgID0gc2l6ZW9mKHN0cnVjdCBzaGEyNTZfc3RhdGUp LAorKwkJLmJhc2UgPSB7CisrCQkJLmNyYV9uYW1lCQk9ICJobWFjKHNoYTIyNCkiLAorKwkJCS5j cmFfZHJpdmVyX25hbWUJPSAic2hhMjI0LWhtYWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3Jp dHkJCT0gMjAwLAorKwkJCS5jcmFfZmxhZ3MJCT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJ ICBDUllQVE9fQUxHX1RZUEVfQUhBU0ggfAorKwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExC QUNLLAorKwkJCS5jcmFfYmxvY2tzaXplCQk9IFNIQTIyNF9CTE9DS19TSVpFLAorKwkJCS5jcmFf Y3R4c2l6ZQkJPSBzaXplb2Yoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2Fs aWdubWFzawkJPSAzLAorKwkJCS5jcmFfbW9kdWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9 CisrfSwgeworKwkuaW5pdCAgICAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9 IHN0YXJmaXZlX2hhc2hfdXBkYXRlLAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFs LAorKwkuZmludXAgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFy Zml2ZV9oYXNoX2RpZ2VzdCwKKysJLmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisr CS5pbXBvcnQgICA9IHN0YXJmaXZlX2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2 ZV9zaGEyNTZfaW5pdF90Zm0sCisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0s CisrCS5oYWxnID0geworKwkJLmRpZ2VzdHNpemUgPSBTSEEyNTZfRElHRVNUX1NJWkUsCisrCQku c3RhdGVzaXplICA9IHNpemVvZihzdHJ1Y3Qgc2hhMjU2X3N0YXRlKSwKKysJCS5iYXNlID0gewor KwkJCS5jcmFfbmFtZQkJPSAic2hhMjU2IiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTI1 Ni1zdGFyZml2ZSIsCisrCQkJLmNyYV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJ PSBDUllQVE9fQUxHX0FTWU5DIHwKKysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8Cisr CQkJCQkJICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0g U0hBMjU2X0JMT0NLX1NJWkUsCisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3Rh cmZpdmVfY3J5cF9jdHgpLAorKwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1 bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJm aXZlX2hhc2hfaW5pdCwKKysJLnVwZGF0ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5m aW5hbCAgICA9IHN0YXJmaXZlX2hhc2hfZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hh c2hfZmludXAsCisrCS5kaWdlc3QgICA9IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0 ICAgPSBzdGFyZml2ZV9oYXNoX2V4cG9ydCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9p bXBvcnQsCisrCS5pbml0X3RmbSA9IHN0YXJmaXZlX2htYWNfc2hhMjU2X2luaXRfdGZtLAorKwku ZXhpdF90Zm0gPSBzdGFyZml2ZV9oYXNoX2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2 ZV9oYXNoX3NldGtleSwKKysJLmhhbGcgPSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTI1Nl9ESUdF U1RfU0laRSwKKysJCS5zdGF0ZXNpemUgID0gc2l6ZW9mKHN0cnVjdCBzaGEyNTZfc3RhdGUpLAor KwkJLmJhc2UgPSB7CisrCQkJLmNyYV9uYW1lCQk9ICJobWFjKHNoYTI1NikiLAorKwkJCS5jcmFf ZHJpdmVyX25hbWUJPSAic2hhMjU2LWhtYWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJ CT0gMjAwLAorKwkJCS5jcmFfZmxhZ3MJCT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBD UllQVE9fQUxHX1RZUEVfQUhBU0ggfAorKwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNL LAorKwkJCS5jcmFfYmxvY2tzaXplCQk9IFNIQTI1Nl9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4 c2l6ZQkJPSBzaXplb2Yoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdu bWFzawkJPSAzLAorKwkJCS5jcmFfbW9kdWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9Cisr fSwgeworKwkuaW5pdCAgICAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0 YXJmaXZlX2hhc2hfdXBkYXRlLAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAor KwkuZmludXAgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2 ZV9oYXNoX2RpZ2VzdCwKKysJLmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5p bXBvcnQgICA9IHN0YXJmaXZlX2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9z aGEzODRfaW5pdF90Zm0sCisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisr CS5oYWxnID0geworKwkJLmRpZ2VzdHNpemUgPSBTSEEzODRfRElHRVNUX1NJWkUsCisrCQkuc3Rh dGVzaXplICA9IHNpemVvZihzdHJ1Y3Qgc2hhNTEyX3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJ CS5jcmFfbmFtZQkJPSAic2hhMzg0IiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTM4NC1z dGFyZml2ZSIsCisrCQkJLmNyYV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBD UllQVE9fQUxHX0FTWU5DIHwKKysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJ CQkJICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU0hB Mzg0X0JMT0NLX1NJWkUsCisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZp dmVfY3J5cF9jdHgpLAorKwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJ CT0gVEhJU19NT0RVTEUsCisrCQl9CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJmaXZl X2hhc2hfaW5pdCwKKysJLnVwZGF0ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5maW5h bCAgICA9IHN0YXJmaXZlX2hhc2hfZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hhc2hf ZmludXAsCisrCS5kaWdlc3QgICA9IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0ICAg PSBzdGFyZml2ZV9oYXNoX2V4cG9ydCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9pbXBv cnQsCisrCS5pbml0X3RmbSA9IHN0YXJmaXZlX2htYWNfc2hhMzg0X2luaXRfdGZtLAorKwkuZXhp dF90Zm0gPSBzdGFyZml2ZV9oYXNoX2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2ZV9o YXNoX3NldGtleSwKKysJLmhhbGcgPSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTM4NF9ESUdFU1Rf U0laRSwKKysJCS5zdGF0ZXNpemUgID0gc2l6ZW9mKHN0cnVjdCBzaGE1MTJfc3RhdGUpLAorKwkJ LmJhc2UgPSB7CisrCQkJLmNyYV9uYW1lCQk9ICJobWFjKHNoYTM4NCkiLAorKwkJCS5jcmFfZHJp dmVyX25hbWUJPSAic2hhMzg0LWhtYWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJCT0g MjAwLAorKwkJCS5jcmFfZmxhZ3MJCT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBDUllQ VE9fQUxHX1RZUEVfQUhBU0ggfAorKwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNLLAor KwkJCS5jcmFfYmxvY2tzaXplCQk9IFNIQTM4NF9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4c2l6 ZQkJPSBzaXplb2Yoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdubWFz awkJPSAzLAorKwkJCS5jcmFfbW9kdWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9CisrfSwg eworKwkuaW5pdCAgICAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJm aXZlX2hhc2hfdXBkYXRlLAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwku ZmludXAgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9o YXNoX2RpZ2VzdCwKKysJLmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBv cnQgICA9IHN0YXJmaXZlX2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zaGE1 MTJfaW5pdF90Zm0sCisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5o YWxnID0geworKwkJLmRpZ2VzdHNpemUgPSBTSEE1MTJfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVz aXplICA9IHNpemVvZihzdHJ1Y3Qgc2hhNTEyX3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJCS5j cmFfbmFtZQkJPSAic2hhNTEyIiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTUxMi1zdGFy Zml2ZSIsCisrCQkJLmNyYV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQ VE9fQUxHX0FTWU5DIHwKKysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJ ICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU0hBNTEy X0JMT0NLX1NJWkUsCisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVf Y3J5cF9jdHgpLAorKwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0g VEhJU19NT0RVTEUsCisrCQl9CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJmaXZlX2hh c2hfaW5pdCwKKysJLnVwZGF0ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5maW5hbCAg ICA9IHN0YXJmaXZlX2hhc2hfZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hhc2hfZmlu dXAsCisrCS5kaWdlc3QgICA9IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0ICAgPSBz dGFyZml2ZV9oYXNoX2V4cG9ydCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9pbXBvcnQs CisrCS5pbml0X3RmbSA9IHN0YXJmaXZlX2htYWNfc2hhNTEyX2luaXRfdGZtLAorKwkuZXhpdF90 Zm0gPSBzdGFyZml2ZV9oYXNoX2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2ZV9oYXNo X3NldGtleSwKKysJLmhhbGcgPSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTUxMl9ESUdFU1RfU0la RSwKKysJCS5zdGF0ZXNpemUgID0gc2l6ZW9mKHN0cnVjdCBzaGE1MTJfc3RhdGUpLAorKwkJLmJh c2UgPSB7CisrCQkJLmNyYV9uYW1lCQk9ICJobWFjKHNoYTUxMikiLAorKwkJCS5jcmFfZHJpdmVy X25hbWUJPSAic2hhNTEyLWhtYWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJCT0gMjAw LAorKwkJCS5jcmFfZmxhZ3MJCT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBDUllQVE9f QUxHX1RZUEVfQUhBU0ggfAorKwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNLLAorKwkJ CS5jcmFfYmxvY2tzaXplCQk9IFNIQTUxMl9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4c2l6ZQkJ PSBzaXplb2Yoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdubWFzawkJ PSAzLAorKwkJCS5jcmFfbW9kdWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9CisrfSwgewor KwkuaW5pdCAgICAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJmaXZl X2hhc2hfdXBkYXRlLAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwkuZmlu dXAgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9oYXNo X2RpZ2VzdCwKKysJLmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBvcnQg ICA9IHN0YXJmaXZlX2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zbTNfaW5p dF90Zm0sCisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5oYWxnID0g eworKwkJLmRpZ2VzdHNpemUgPSBTTTNfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVzaXplICA9IHNp emVvZihzdHJ1Y3Qgc20zX3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJCS5jcmFfbmFtZQkJPSAi c20zIiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNtMy1zdGFyZml2ZSIsCisrCQkJLmNyYV9w cmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwKKysJ CQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05FRURf RkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU00zX0JMT0NLX1NJWkUsCisrCQkJLmNy YV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5jcmFf YWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9Cisr CX0KKyt9LCB7CisrCS5pbml0CSAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUJICA9 IHN0YXJmaXZlX2hhc2hfdXBkYXRlLAorKwkuZmluYWwJICA9IHN0YXJmaXZlX2hhc2hfZmluYWws CisrCS5maW51cAkgID0gc3RhcmZpdmVfaGFzaF9maW51cCwKKysJLmRpZ2VzdAkgID0gc3RhcmZp dmVfaGFzaF9kaWdlc3QsCisrCS5leHBvcnQJICA9IHN0YXJmaXZlX2hhc2hfZXhwb3J0LAorKwku aW1wb3J0CSAgPSBzdGFyZml2ZV9oYXNoX2ltcG9ydCwKKysJLmluaXRfdGZtID0gc3RhcmZpdmVf aG1hY19zbTNfaW5pdF90Zm0sCisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0s CisrCS5zZXRrZXkJICA9IHN0YXJmaXZlX2hhc2hfc2V0a2V5LAorKwkuaGFsZyA9IHsKKysJCS5k aWdlc3RzaXplID0gU00zX0RJR0VTVF9TSVpFLAorKwkJLnN0YXRlc2l6ZSAgPSBzaXplb2Yoc3Ry dWN0IHNtM19zdGF0ZSksCisrCQkuYmFzZSA9IHsKKysJCQkuY3JhX25hbWUJCT0gImhtYWMoc20z KSIsCisrCQkJLmNyYV9kcml2ZXJfbmFtZQk9ICJzbTMtaG1hYy1zdGFyZml2ZSIsCisrCQkJLmNy YV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwK KysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05F RURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU00zX0JMT0NLX1NJWkUsCisrCQkJ LmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5j cmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9 CisrCX0KKyt9LAorK307CisrCisraW50IHN0YXJmaXZlX2hhc2hfcmVnaXN0ZXJfYWxncyh2b2lk KQorK3sKKysJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9haGFzaGVzKGFsZ3Nfc2hhMl9zbTMsIEFS UkFZX1NJWkUoYWxnc19zaGEyX3NtMykpOworK30KKysKKyt2b2lkIHN0YXJmaXZlX2hhc2hfdW5y ZWdpc3Rlcl9hbGdzKHZvaWQpCisreworKwljcnlwdG9fdW5yZWdpc3Rlcl9haGFzaGVzKGFsZ3Nf c2hhMl9zbTMsIEFSUkFZX1NJWkUoYWxnc19zaGEyX3NtMykpOworK30KKy0tIAorMi40MC4xCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDUwLWR0LWJpbmRpbmdzLVBX TS1BZGQtU3RhckZpdmUtUFdNLW1vZHVsZS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hl cy8wMDUwLWR0LWJpbmRpbmdzLVBXTS1BZGQtU3RhckZpdmUtUFdNLW1vZHVsZS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5mMGZlMGQ2MzQ3M2FkCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTAtZHQtYmluZGluZ3Mt UFdNLUFkZC1TdGFyRml2ZS1QV00tbW9kdWxlLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKK0Zyb20g ZDcyZTQzOWViMmRjMWNhMGVhNzJhNmQ5MTk5MmRmMTM1NTczZGZlYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRlY2guY29t PgorRGF0ZTogVHVlLCAyMSBNYXIgMjAyMyAxMzo1MjoyNyArMDgwMAorU3ViamVjdDogW1BBVENI IDUwLzg0XSBkdC1iaW5kaW5nczogUFdNOiBBZGQgU3RhckZpdmUgUFdNIG1vZHVsZQorCitBZGQg ZG9jdW1lbnRhdGlvbiB0byBkZXNjcmliZSBTdGFyRml2ZSBQdWxzZSBXaWR0aCBNb2R1bGF0aW9u Citjb250cm9sbGVyIGRyaXZlci4KKworU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBRaXUgPHdpbGxp YW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1ieTogS3J6eXN6dG9mIEtvemxvd3Nr aSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgorLS0tCisgLi4uL2JpbmRpbmdzL3B3 bS9zdGFyZml2ZSxqaDcxMTAtcHdtLnlhbWwgICAgIHwgNTMgKysrKysrKysrKysrKysrKysrKwor IDEgZmlsZSBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wd20vc3RhcmZpdmUsamg3MTEwLXB3bS55 YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdt L3N0YXJmaXZlLGpoNzExMC1wd20ueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9wd20vc3RhcmZpdmUsamg3MTEwLXB3bS55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAwMDAwLi4wODJiMzc3OWZhNjEKKy0tLSAvZGV2L251bGwKKysrKyBiL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wd20vc3RhcmZpdmUsamg3MTEwLXB3bS55 YW1sCitAQCAtMCwwICsxLDUzIEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vbmx5IE9SIEJTRC0yLUNsYXVzZQorKyVZQU1MIDEuMgorKy0tLQorKyRpZDogaHR0cDovL2Rl dmljZXRyZWUub3JnL3NjaGVtYXMvcHdtL3N0YXJmaXZlLGpoNzExMC1wd20ueWFtbCMKKyskc2No ZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0 aXRsZTogU3RhckZpdmUgUFdNIGNvbnRyb2xsZXIKKysKKyttYWludGFpbmVyczoKKysgIC0gV2ls bGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CisrCisrZGVzY3JpcHRpb246 CisrICBTdGFyRml2ZSBTb0NzIGNvbnRhaW4gUFdNIGFuZCB3aGVuIG9wZXJhdGluZyBpbiBQV00g bW9kZSwgdGhlIFBUQyBjb3JlIGdlbmVyYXRlcworKyAgYmluYXJ5IHNpZ25hbCB3aXRoIHVzZXIt cHJvZ3JhbW1hYmxlIGxvdyBhbmQgaGlnaCBwZXJpb2RzLiBDbG9jayBzb3VyY2UgZm9yIHRoZQor KyAgUFdNIGNhbiBiZSBlaXRoZXIgc3lzdGVtIGNsb2Nrb3IgZXh0ZXJuYWwgY2xvY2suIEVhY2gg UFdNIHRpbWVyIGJsb2NrIHByb3ZpZGVzIDgKKysgIFBXTSBjaGFubmVscy4KKysKKythbGxPZjoK KysgIC0gJHJlZjogcHdtLnlhbWwjCisrCisrcHJvcGVydGllczoKKysgIGNvbXBhdGlibGU6Cisr ICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtcHdtCisrCisrICByZWc6CisrICAgIG1heEl0ZW1z OiAxCisrCisrICBjbG9ja3M6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICByZXNldHM6CisrICAg IG1heEl0ZW1zOiAxCisrCisrICAiI3B3bS1jZWxscyI6CisrICAgIGNvbnN0OiAzCisrCisrcmVx dWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0gcmVnCisrICAtIGNsb2NrcworKyAgLSByZXNl dHMKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0g fAorKyAgICBwd21AMTIwZDAwMDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxq aDcxMTAtcHdtIjsKKysgICAgICAgIHJlZyA9IDwweDEyMGQwMDAwIDB4MTAwMDA+OworKyAgICAg ICAgY2xvY2tzID0gPCZzeXNjcmcgMTIxPjsKKysgICAgICAgIHJlc2V0cyA9IDwmc3lzY3JnIDEw OD47CisrICAgICAgICAjcHdtLWNlbGxzID0gPDM+OworKyAgICB9OworLS0gCisyLjQwLjEKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTEtcHdtLXN0YXJmaXZlLUFk ZC1QV00tZHJpdmVyLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1 MS1wd20tc3RhcmZpdmUtQWRkLVBXTS1kcml2ZXItc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lYjljZmNlOTU3ZjE1Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTEtcHdtLXN0YXJmaXZlLUFkZC1QV00t ZHJpdmVyLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwzMDQgQEAKK0Zyb20gMWRiY2ZjNDIwYzMy NTFiMjIxNTAyNzFiMGIzYWViMjRlMjliNTEzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVHVl LCAyMSBNYXIgMjAyMyAxMzo1MjoyOCArMDgwMAorU3ViamVjdDogW1BBVENIIDUxLzg0XSBwd206 IHN0YXJmaXZlOiBBZGQgUFdNIGRyaXZlciBzdXBwb3J0CisKK0FkZCBQdWxzZSBXaWR0aCBNb2R1 bGF0aW9uIGRyaXZlciBzdXBwb3J0IGZvciBTdGFyRml2ZQorSkg3MTEwIHNvYy4KKworU2lnbmVk LW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2Zm LWJ5OiBXaWxsaWFtIFFpdSA8d2lsbGlhbS5xaXVAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGRy aXZlcnMvcHdtL0tjb25maWcgICAgICAgICAgICB8ICAxMCArKworIGRyaXZlcnMvcHdtL01ha2Vm aWxlICAgICAgICAgICB8ICAgMSArCisgZHJpdmVycy9wd20vcHdtLXN0YXJmaXZlLXB0Yy5jIHwg MjQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwg MjU2IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9wd20vcHdtLXN0 YXJmaXZlLXB0Yy5jCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9LY29uZmlnIGIvZHJpdmVy cy9wd20vS2NvbmZpZworaW5kZXggZGFlMDIzZDc4M2EyLi4yMzA3YTAwOTk5OTQgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL3B3bS9LY29uZmlnCisrKysgYi9kcml2ZXJzL3B3bS9LY29uZmlnCitAQCAt NTM2LDYgKzUzNiwxNiBAQCBjb25maWcgUFdNX1NQUkQKKyAJICBUbyBjb21waWxlIHRoaXMgZHJp dmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCisgCSAgd2lsbCBiZSBj YWxsZWQgcHdtLXNwcmQuCisgCisrY29uZmlnIFBXTV9TVEFSRklWRV9QVEMKKysJdHJpc3RhdGUg IlN0YXJGaXZlIFBXTSBQVEMgc3VwcG9ydCIKKysJZGVwZW5kcyBvbiBPRgorKwlkZXBlbmRzIG9u IENPTU1PTl9DTEsKKysJaGVscAorKwkgIEdlbmVyaWMgUFdNIGZyYW1ld29yayBkcml2ZXIgZm9y IFN0YXJGaXZlIFNvQ3MuCisrCisrCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVs ZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQorKwkgIHdpbGwgYmUgY2FsbGVkIHB3bS1zdGFy Zml2ZS1wdGMuCisrCisgY29uZmlnIFBXTV9TVEkKKyAJdHJpc3RhdGUgIlNUaUg0eHggUFdNIHN1 cHBvcnQiCisgCWRlcGVuZHMgb24gQVJDSF9TVEkgfHwgQ09NUElMRV9URVNUCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9wd20vTWFrZWZpbGUgYi9kcml2ZXJzL3B3bS9NYWtlZmlsZQoraW5kZXggN2Jm MWEyOWYwMmI4Li41NzdmNjk5MDRiYWEgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3B3bS9NYWtlZmls ZQorKysrIGIvZHJpdmVycy9wd20vTWFrZWZpbGUKK0BAIC00OSw2ICs0OSw3IEBAIG9iai0kKENP TkZJR19QV01fU0lGSVZFKQkrPSBwd20tc2lmaXZlLm8KKyBvYmotJChDT05GSUdfUFdNX1NMMjhD UExEKQkrPSBwd20tc2wyOGNwbGQubworIG9iai0kKENPTkZJR19QV01fU1BFQVIpCQkrPSBwd20t c3BlYXIubworIG9iai0kKENPTkZJR19QV01fU1BSRCkJCSs9IHB3bS1zcHJkLm8KKytvYmotJChD T05GSUdfUFdNX1NUQVJGSVZFX1BUQykJKz0gcHdtLXN0YXJmaXZlLXB0Yy5vCisgb2JqLSQoQ09O RklHX1BXTV9TVEkpCQkrPSBwd20tc3RpLm8KKyBvYmotJChDT05GSUdfUFdNX1NUTTMyKQkJKz0g cHdtLXN0bTMyLm8KKyBvYmotJChDT05GSUdfUFdNX1NUTTMyX0xQKQkrPSBwd20tc3RtMzItbHAu bworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1zdGFyZml2ZS1wdGMuYyBiL2RyaXZlcnMv cHdtL3B3bS1zdGFyZml2ZS1wdGMuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAwMC4uMjM5ZGY3OTZkMjQwCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3B3bS9w d20tc3RhcmZpdmUtcHRjLmMKK0BAIC0wLDAgKzEsMjQ1IEBACisrLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAKKysvKgorKyAqIFBXTSBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBK SDcxMTAgU29DCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMTggU3RhckZpdmUgVGVjaG5vbG9n eSBDby4sIEx0ZC4KKysgKi8KKysKKysjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcHdtL3B3bS5oPgor KyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3B3bS5oPgorKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ CisrI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKyNp bmNsdWRlIDxsaW51eC9pby5oPgorKworKy8qIGhvdyBtYW55IHBhcmFtZXRlcnMgY2FuIGJlIHRy YW5zZmVycmVkIHRvIHB0YyAqLworKyNkZWZpbmUgT0ZfUFdNX05fQ0VMTFMJCQkzCisrCisrLyog UFRDIFJlZ2lzdGVyIG9mZnNldHMgKi8KKysjZGVmaW5lIFJFR19SUFRDX0NOVFIJCQkweDAKKysj ZGVmaW5lIFJFR19SUFRDX0hSQwkJCTB4NAorKyNkZWZpbmUgUkVHX1JQVENfTFJDCQkJMHg4Cisr I2RlZmluZSBSRUdfUlBUQ19DVFJMCQkJMHhDCisrCisrLyogQml0IGZvciBQV00gY2xvY2sgKi8K KysjZGVmaW5lIEJJVF9QV01fQ0xPQ0tfRU4JCTMxCisrCisrLyogQml0IGZvciBjbG9jayBnZW4g c29mdCByZXNldCAqLworKyNkZWZpbmUgQklUX0NMS19HRU5fU09GVF9SRVNFVAkJMTMKKysKKysj ZGVmaW5lIE5TX1BFUl9TRUNPTkQJCQkxMDAwMDAwMDAwCisrCisrLyoKKysgKiBBY2Nlc3MgUFRD IHJlZ2lzdGVyIChjbnRyIGhyYyBscmMgYW5kIGN0cmwpLAorKyAqIG5lZWQgdG8gcmVwbGFjZSBQ V01fQkFTRV9BRERSCisrICovCisrI2RlZmluZSBSRUdfUFRDX0JBU0VfQUREUl9TVUIoYmFzZSwg TikJXAorKygoYmFzZSkgKyAoKChOKSA+IDMpID8gKCgoTikgJSA0KSAqIDB4MTAgKyAoMSA8PCAx NSkpIDogKChOKSAqIDB4MTApKSkKKysjZGVmaW5lIFJFR19QVENfUlBUQ19DTlRSKGJhc2UsIE4p CShSRUdfUFRDX0JBU0VfQUREUl9TVUIoYmFzZSwgTikpCisrI2RlZmluZSBSRUdfUFRDX1JQVENf SFJDKGJhc2UsIE4pCShSRUdfUFRDX0JBU0VfQUREUl9TVUIoYmFzZSwgTikgKyAweDQpCisrI2Rl ZmluZSBSRUdfUFRDX1JQVENfTFJDKGJhc2UsIE4pCShSRUdfUFRDX0JBU0VfQUREUl9TVUIoYmFz ZSwgTikgKyAweDgpCisrI2RlZmluZSBSRUdfUFRDX1JQVENfQ1RSTChiYXNlLCBOKQkoUkVHX1BU Q19CQVNFX0FERFJfU1VCKGJhc2UsIE4pICsgMHhDKQorKworKy8qIFBUQ19SUFRDX0NUUkwgKi8K KysjZGVmaW5lIFBUQ19FTiAgICAgIEJJVCgwKQorKyNkZWZpbmUgUFRDX0VDTEsgICAgQklUKDEp CisrI2RlZmluZSBQVENfTkVDICAgICBCSVQoMikKKysjZGVmaW5lIFBUQ19PRSAgICAgIEJJVCgz KQorKyNkZWZpbmUgUFRDX1NJR05MRSAgQklUKDQpCisrI2RlZmluZSBQVENfSU5URSAgICBCSVQo NSkKKysjZGVmaW5lIFBUQ19JTlQgICAgIEJJVCg2KQorKyNkZWZpbmUgUFRDX0NOVFJSU1QgQklU KDcpCisrI2RlZmluZSBQVENfQ0FQVEUgICBCSVQoOCkKKysKKytzdHJ1Y3Qgc3RhcmZpdmVfcHdt X3B0Y19kZXZpY2UgeworKwlzdHJ1Y3QgcHdtX2NoaXAJCWNoaXA7CisrCXN0cnVjdCBjbGsJCSpj bGs7CisrCXN0cnVjdCByZXNldF9jb250cm9sCSpyc3Q7CisrCXZvaWQgX19pb21lbQkJKnJlZ3M7 CisrCWludAkJCWlycTsKKysJdW5zaWduZWQgaW50CQlhcHByb3hfZnJlcTsvKnB3bSBhcGIgY2xv Y2sgZnJlcXVlbmN5Ki8KKyt9OworKworK3N0YXRpYyBpbmxpbmUKKytzdHJ1Y3Qgc3RhcmZpdmVf cHdtX3B0Y19kZXZpY2UgKmNoaXBfdG9fc3RhcmZpdmVfcHRjKHN0cnVjdCBwd21fY2hpcCAqYykK Kyt7CisrCXJldHVybiBjb250YWluZXJfb2YoYywgc3RydWN0IHN0YXJmaXZlX3B3bV9wdGNfZGV2 aWNlLCBjaGlwKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9wd21fcHRjX2dldF9zdGF0 ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCisrCQkJCSAgICAgICBzdHJ1Y3QgcHdtX2RldmljZSAq ZGV2LAorKwkJCQkgICAgICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisreworKwlzdHJ1Y3Qg c3RhcmZpdmVfcHdtX3B0Y19kZXZpY2UgKnB3bSA9IGNoaXBfdG9fc3RhcmZpdmVfcHRjKGNoaXAp OworKwl1MzIgZGF0YV9scmMsIGRhdGFfaHJjOworKwl1MzIgcHdtX2Nsa19ucyA9IDA7CisrCisr CWRhdGFfbHJjID0gaW9yZWFkMzIoUkVHX1BUQ19SUFRDX0xSQyhwd20tPnJlZ3MsIGRldi0+aHdw d20pKTsKKysJZGF0YV9ocmMgPSBpb3JlYWQzMihSRUdfUFRDX1JQVENfSFJDKHB3bS0+cmVncywg ZGV2LT5od3B3bSkpOworKworKwlwd21fY2xrX25zID0gTlNfUEVSX1NFQ09ORCAvIHB3bS0+YXBw cm94X2ZyZXE7CisrCisrCXN0YXRlLT5wZXJpb2QgPSBkYXRhX2xyYyAqIHB3bV9jbGtfbnM7Cisr CXN0YXRlLT5kdXR5X2N5Y2xlID0gZGF0YV9ocmMgKiBwd21fY2xrX25zOworKwlzdGF0ZS0+cG9s YXJpdHkgPSBQV01fUE9MQVJJVFlfTk9STUFMOworKwlzdGF0ZS0+ZW5hYmxlZCA9IDE7CisrCisr CXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3B3bV9wdGNfYXBwbHkoc3Ry dWN0IHB3bV9jaGlwICpjaGlwLAorKwkJCQkgIHN0cnVjdCBwd21fZGV2aWNlICpkZXYsCisrCQkJ CSAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfcHdtX3B0 Y19kZXZpY2UgKnB3bSA9IGNoaXBfdG9fc3RhcmZpdmVfcHRjKGNoaXApOworKwl1MzIgZGF0YV9o cmMgPSAwOworKwl1MzIgZGF0YV9scmMgPSAwOworKwl1MzIgcGVyaW9kX2RhdGEgPSAwOworKwl1 MzIgZHV0eV9kYXRhID0gMDsKKysJczY0IG11bHRpID0gcHdtLT5hcHByb3hfZnJlcTsKKysJczY0 IGRpdiA9IE5TX1BFUl9TRUNPTkQ7CisrCXZvaWQgX19pb21lbSAqcmVnX2FkZHI7CisrCisrCWlm IChzdGF0ZS0+ZHV0eV9jeWNsZSA+IHN0YXRlLT5wZXJpb2QpCisrCQlzdGF0ZS0+ZHV0eV9jeWNs ZSA9IHN0YXRlLT5wZXJpb2Q7CisrCisrCXdoaWxlIChtdWx0aSAlIDEwID09IDAgJiYgZGl2ICUg MTAgPT0gMCAmJiBtdWx0aSA+IDAgJiYgZGl2ID4gMCkgeworKwkJbXVsdGkgLz0gMTA7CisrCQlk aXYgLz0gMTA7CisrCX0KKysKKysJcGVyaW9kX2RhdGEgPSAodTMyKShzdGF0ZS0+cGVyaW9kICog bXVsdGkgLyBkaXYpOworKwlpZiAoYWJzKHBlcmlvZF9kYXRhICogZGl2IC8gbXVsdGkgLSBzdGF0 ZS0+cGVyaW9kKQorKwkgICAgPiBhYnMoKHBlcmlvZF9kYXRhICsgMSkgKiBkaXYgLyBtdWx0aSAt IHN0YXRlLT5wZXJpb2QpIHx8CisrCSAgICAoc3RhdGUtPnBlcmlvZCA+IDAgJiYgcGVyaW9kX2Rh dGEgPT0gMCkpCisrCQlwZXJpb2RfZGF0YSArPSAxOworKworKwlpZiAoc3RhdGUtPmVuYWJsZWQp IHsKKysJCWR1dHlfZGF0YSA9ICh1MzIpKHN0YXRlLT5kdXR5X2N5Y2xlICogbXVsdGkgLyBkaXYp OworKwkJaWYgKGFicyhkdXR5X2RhdGEgKiBkaXYgLyBtdWx0aSAtIHN0YXRlLT5kdXR5X2N5Y2xl KQorKwkJCT4gYWJzKChkdXR5X2RhdGEgKyAxKSAqIGRpdiAvIG11bHRpIC0gc3RhdGUtPmR1dHlf Y3ljbGUpIHx8CisrCQkJKHN0YXRlLT5kdXR5X2N5Y2xlID4gMCAmJiBkdXR5X2RhdGEgPT0gMCkp CisrCQkJZHV0eV9kYXRhICs9IDE7CisrCX0gZWxzZSB7CisrCQlkdXR5X2RhdGEgPSAwOworKwl9 CisrCisrCWlmIChzdGF0ZS0+cG9sYXJpdHkgPT0gUFdNX1BPTEFSSVRZX05PUk1BTCkKKysJCWRh dGFfaHJjID0gcGVyaW9kX2RhdGEgLSBkdXR5X2RhdGE7CisrCWVsc2UKKysJCWRhdGFfaHJjID0g ZHV0eV9kYXRhOworKworKwlkYXRhX2xyYyA9IHBlcmlvZF9kYXRhOworKworKwlyZWdfYWRkciA9 IFJFR19QVENfUlBUQ19IUkMocHdtLT5yZWdzLCBkZXYtPmh3cHdtKTsKKysJaW93cml0ZTMyKGRh dGFfaHJjLCByZWdfYWRkcik7CisrCisrCXJlZ19hZGRyID0gUkVHX1BUQ19SUFRDX0xSQyhwd20t PnJlZ3MsIGRldi0+aHdwd20pOworKwlpb3dyaXRlMzIoZGF0YV9scmMsIHJlZ19hZGRyKTsKKysK KysJcmVnX2FkZHIgPSBSRUdfUFRDX1JQVENfQ05UUihwd20tPnJlZ3MsIGRldi0+aHdwd20pOwor Kwlpb3dyaXRlMzIoMCwgcmVnX2FkZHIpOworKworKwlyZWdfYWRkciA9IFJFR19QVENfUlBUQ19D VFJMKHB3bS0+cmVncywgZGV2LT5od3B3bSk7CisrCWlvd3JpdGUzMihQVENfRU4gfCBQVENfT0Us IHJlZ19hZGRyKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cHdtX29wcyBzdGFyZml2ZV9wd21fcHRjX29wcyA9IHsKKysJLmdldF9zdGF0ZQk9IHN0YXJmaXZl X3B3bV9wdGNfZ2V0X3N0YXRlLAorKwkuYXBwbHkJCT0gKHZvaWQgKilzdGFyZml2ZV9wd21fcHRj X2FwcGx5LAorKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisrfTsKKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX3B3bV9wdGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7Cisr CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisrCXN0cnVjdCBzdGFyZml2ZV9wd21f cHRjX2RldmljZSAqcHdtOworKwlzdHJ1Y3QgcHdtX2NoaXAgKmNoaXA7CisrCWludCByZXQ7Cisr CisrCXB3bSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHdtKSwgR0ZQX0tFUk5FTCk7Cisr CWlmICghcHdtKQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCWNoaXAgPSAmcHdtLT5jaGlwOwor KwljaGlwLT5kZXYgPSBkZXY7CisrCWNoaXAtPm9wcyA9ICZzdGFyZml2ZV9wd21fcHRjX29wczsK KysJY2hpcC0+bnB3bSA9IDg7CisrCisrCWNoaXAtPm9mX3B3bV9uX2NlbGxzID0gT0ZfUFdNX05f Q0VMTFM7CisrCWNoaXAtPmJhc2UgPSAtMTsKKysKKysJcHdtLT5yZWdzID0gZGV2bV9wbGF0Zm9y bV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHB3bS0+cmVncykpCisr CQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHdtLT5yZWdzKSwKKysJCQkJCSJV bmFibGUgdG8gbWFwIElPIHJlc291cmNlc1xuIik7CisrCisrCXB3bS0+Y2xrID0gZGV2bV9jbGtf Z2V0KGRldiwgTlVMTCk7CisrCWlmIChJU19FUlIocHdtLT5jbGspKQorKwkJcmV0dXJuIGRldl9l cnJfcHJvYmUoZGV2LCBQVFJfRVJSKHB3bS0+Y2xrKSwKKysJCQkJCSJVbmFibGUgdG8gZ2V0IHB3 bSBjbG9ja1xuIik7CisrCisrCXB3bS0+cnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNs dXNpdmUoZGV2LCBOVUxMKTsKKysJaWYgKElTX0VSUihwd20tPnJzdCkpCisrCQlyZXR1cm4gZGV2 X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHdtLT5yc3QpLAorKwkJCQkJIlVuYWJsZSB0byBnZXQg cHdtIHJlc2V0XG4iKTsKKysKKysJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHB3bS0+Y2xrKTsK KysJaWYgKHJldCkgeworKwkJZGV2X2VycihkZXYsCisrCQkJIkZhaWxlZCB0byBlbmFibGUgcHdt IGNsb2NrLCAlZFxuIiwgcmV0KTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJcmVzZXRfY29u dHJvbF9kZWFzc2VydChwd20tPnJzdCk7CisrCisrCXB3bS0+YXBwcm94X2ZyZXEgPSAodW5zaWdu ZWQgaW50KWNsa19nZXRfcmF0ZShwd20tPmNsayk7CisrCWlmICghcHdtLT5hcHByb3hfZnJlcSkK KysJCWRldl9lcnIoZGV2LCAiZ2V0IHB3bSBhcGIgY2xvY2sgcmF0ZSBmYWlsZWQuXG4iKTsKKysK KysJcmV0ID0gZGV2bV9wd21jaGlwX2FkZChkZXYsIGNoaXApOworKwlpZiAocmV0IDwgMCkgewor KwkJZGV2X2VycihkZXYsICJjYW5ub3QgcmVnaXN0ZXIgUFRDOiAlZFxuIiwgcmV0KTsKKysJCWNs a19kaXNhYmxlX3VucHJlcGFyZShwd20tPmNsayk7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisr CXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHB3bSk7CisrCisrCXJldHVybiAwOworK30KKysK KytzdGF0aWMgaW50IHN0YXJmaXZlX3B3bV9wdGNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKmRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9wd21fcHRjX2RldmljZSAqcHdtID0gcGxh dGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKKysJc3RydWN0IHB3bV9jaGlwICpjaGlwID0gJnB3bS0+ Y2hpcDsKKysKKysJcHdtY2hpcF9yZW1vdmUoY2hpcCk7CisrCisrCXJldHVybiAwOworK30KKysK KytzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV9wd21fcHRjX29mX21h dGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXB3bSIgfSwKKysJ e30sCisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGFyZml2ZV9wd21fcHRjX29mX21h dGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzdGFyZml2ZV9wd21fcHRj X2RyaXZlciA9IHsKKysJLnByb2JlID0gc3RhcmZpdmVfcHdtX3B0Y19wcm9iZSwKKysJLnJlbW92 ZSA9IHN0YXJmaXZlX3B3bV9wdGNfcmVtb3ZlLAorKwkuZHJpdmVyID0geworKwkJLm5hbWUgPSAi cHdtLXN0YXJmaXZlLXB0YyIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBzdGFyZml2ZV9wd21fcHRj X29mX21hdGNoLAorKwl9LAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzdGFyZml2ZV9w d21fcHRjX2RyaXZlcik7CisrCisrTU9EVUxFX0FVVEhPUigiSmVubnkgWmhhbmcgPGplbm55Lnpo YW5nQHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0FVVEhPUigiSGFsIEZlbmcgPGhhbC5m ZW5nQHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBQ V00gUFRDIGRyaXZlciIpOworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MC4xCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDUyLWR0LWJpbmRpbmdzLW5l dC1zbnBzLWR3bWFjLUFkZC1kd21hYy01LjIwLXZlcnNpb24ucGF0Y2ggYi9zcmNwa2dzL2xpbnV4 Ni4zL3BhdGNoZXMvMDA1Mi1kdC1iaW5kaW5ncy1uZXQtc25wcy1kd21hYy1BZGQtZHdtYWMtNS4y MC12ZXJzaW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu LmZlN2RhZDU5ZmQ1NGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNo ZXMvMDA1Mi1kdC1iaW5kaW5ncy1uZXQtc25wcy1kd21hYy1BZGQtZHdtYWMtNS4yMC12ZXJzaW9u LnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKK0Zyb20gNDFkYmNhOWI0ZjJlZTY3ZDU3NTI2YWE1OGY3 OWRlODhmNzNkNmU5OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVy IEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitEYXRlOiBNb24sIDE3IEFwciAyMDIzIDE4OjAy OjQ2ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNTIvODRdIGR0LWJpbmRpbmdzOiBuZXQ6IHNucHMs ZHdtYWM6IEFkZCBkd21hYy01LjIwIHZlcnNpb24KKworQWRkIGR3bWFjLTUuMjAgSVAgdmVyc2lv biB0byBzbnBzLmR3bWFjLnlhbWwKKworQWNrZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGty enlzenRvZi5rb3psb3dza2lAbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVy IEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitTaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNh bWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sCitpbmRleCAxNmI3ZDI5MDQ2OTYuLjAxYjA1NmFi NzFmNyAxMDA2NDQKKy0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQv c25wcyxkd21hYy55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv bmV0L3NucHMsZHdtYWMueWFtbAorQEAgLTMwLDYgKzMwLDcgQEAgc2VsZWN0OgorICAgICAgICAg ICAtIHNucHMsZHdtYWMtNC4xMGEKKyAgICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhCisgICAg ICAgICAgIC0gc25wcyxkd21hYy01LjEwYQorKyAgICAgICAgICAtIHNucHMsZHdtYWMtNS4yMAor ICAgICAgICAgICAtIHNucHMsZHd4Z21hYworICAgICAgICAgICAtIHNucHMsZHd4Z21hYy0yLjEw CisgCitAQCAtODcsNiArODgsNyBAQCBwcm9wZXJ0aWVzOgorICAgICAgICAgLSBzbnBzLGR3bWFj LTQuMTBhCisgICAgICAgICAtIHNucHMsZHdtYWMtNC4yMGEKKyAgICAgICAgIC0gc25wcyxkd21h Yy01LjEwYQorKyAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjAKKyAgICAgICAgIC0gc25wcyxkd3hn bWFjCisgICAgICAgICAtIHNucHMsZHd4Z21hYy0yLjEwCisgCitAQCAtNTc1LDYgKzU3Nyw3IEBA IGFsbE9mOgorICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTMuNTBhCisgICAgICAgICAgICAg ICAtIHNucHMsZHdtYWMtNC4xMGEKKyAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy00LjIwYQor KyAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjAKKyAgICAgICAgICAgICAgIC0gc25wcyxk d3hnbWFjCisgICAgICAgICAgICAgICAtIHNucHMsZHd4Z21hYy0yLjEwCisgICAgICAgICAgICAg ICAtIHN0LHNwZWFyNjAwLWdtYWMKK0BAIC02MjksNiArNjMyLDcgQEAgYWxsT2Y6CisgICAgICAg ICAgICAgICAtIHNucHMsZHdtYWMtNC4xMGEKKyAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy00 LjIwYQorICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMTBhCisrICAgICAgICAgICAgICAt IHNucHMsZHdtYWMtNS4yMAorICAgICAgICAgICAgICAgLSBzbnBzLGR3eGdtYWMKKyAgICAgICAg ICAgICAgIC0gc25wcyxkd3hnbWFjLTIuMTAKKyAgICAgICAgICAgICAgIC0gc3Qsc3BlYXI2MDAt Z21hYworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwNTMtbmV0LXN0bW1hYy1wbGF0Zm9ybS1BZGQtc25wcy1kd21hYy01LjIwLUlQLWNvbXBhdGli bC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDUzLW5ldC1zdG1tYWMtcGxhdGZv cm0tQWRkLXNucHMtZHdtYWMtNS4yMC1JUC1jb21wYXRpYmwucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzFmMzA4NTgxYmE1OQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDUzLW5ldC1zdG1tYWMtcGxhdGZvcm0tQWRk LXNucHMtZHdtYWMtNS4yMC1JUC1jb21wYXRpYmwucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorRnJv bSAyYmRhMmQ4M2YzM2M1Zjg5MjFjMTJkMWEyNjVkZDYyMDE0MTcyMDY3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4K K0RhdGU6IE1vbiwgMTcgQXByIDIwMjMgMTg6MDI6NDcgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1 My84NF0gbmV0OiBzdG1tYWM6IHBsYXRmb3JtOiBBZGQgc25wcyxkd21hYy01LjIwIElQCisgY29t cGF0aWJsZSBzdHJpbmcKKworQWRkICJzbnBzLGR3bWFjLTUuMjAiIGNvbXBhdGlibGUgc3RyaW5n IGZvciA1LjIwIHZlcnNpb24gdGhhdCBjYW4gYXZvaWQKK3RvIGRlZmluZSBzb21lIHBsYXRmb3Jt IGRhdGEgaW4gdGhlIGdsdWUgbGF5ZXIuCisKK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJjaWFpIDx0 b21tLm1lcmNpYWlAZ21haWwuY29tPgorU2lnbmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhp bmcgPGtlcm5lbEBlc21pbC5kaz4KK1NpZ25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3Vv QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfcGxhdGZvcm0uYyB8IDMgKystCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYworaW5kZXggMDY3YTQwZmUwYTIzLi5l YjBiMjg5OGRhYTMgMTAwNjQ0CistLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfcGxhdGZvcm0uYworKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMKK0BAIC01MTksNyArNTE5LDggQEAgc3RtbWFjX3By b2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKQorIAlp ZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzbnBzLGR3bWFjLTQuMDAiKSB8fAorIAkg ICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzbnBzLGR3bWFjLTQuMTBhIikgfHwKKyAJ ICAgIG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAic25wcyxkd21hYy00LjIwYSIpIHx8Cist CSAgICBvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgInNucHMsZHdtYWMtNS4xMGEiKSkgewor KwkgICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzbnBzLGR3bWFjLTUuMTBhIikgfHwK KysJICAgIG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAic25wcyxkd21hYy01LjIwIikpIHsK KyAJCXBsYXQtPmhhc19nbWFjNCA9IDE7CisgCQlwbGF0LT5oYXNfZ21hYyA9IDA7CisgCQlwbGF0 LT5wbXQgPSAxOworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwNTQtZHQtYmluZGluZ3MtbmV0LXNucHMtZHdtYWMtQWRkLWFoYi1yZXNldC1yZXNl dC1uYW1lLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTQtZHQtYmluZGluZ3Mt bmV0LXNucHMtZHdtYWMtQWRkLWFoYi1yZXNldC1yZXNldC1uYW1lLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjk2ZWE1NWMzNDg0NWYKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1NC1kdC1iaW5kaW5ncy1uZXQtc25w cy1kd21hYy1BZGQtYWhiLXJlc2V0LXJlc2V0LW5hbWUucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAor RnJvbSBhNDg5MTc3MjkzYTI5NGFlN2IyMDQwMDkzM2QzYmQzYzA2MjhmZGY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNv bT4KK0RhdGU6IE1vbiwgMTcgQXByIDIwMjMgMTg6MDI6NDggKzA4MDAKK1N1YmplY3Q6IFtQQVRD SCA1NC84NF0gZHQtYmluZGluZ3M6IG5ldDogc25wcyxkd21hYzogQWRkICdhaGInCisgcmVzZXQv cmVzZXQtbmFtZQorCitBY2NvcmRpbmcgdG86CitzdG1tYWNfcGxhdGZvcm0uYzogc3RtbWFjX3By b2JlX2NvbmZpZ19kdAorc3RtbWFjX21haW4uYzogc3RtbWFjX2R2cl9wcm9iZQorCitkd21hYyBj b250cm9sbGVyIG1heSByZXF1aXJlIG9uZSAoc3RtbWFjZXRoKSBvciB0d28gKHN0bW1hY2V0aCth aGIpCityZXNldCBzaWduYWxzLCBhbmQgdGhlIG1heEl0ZW1zIG9mIHJlc2V0cy9yZXNldC1uYW1l cyBpcyBnb2luZyB0byBiZSAyLgorCitUaGUgZ21hYyBvZiBTdGFyZml2ZSBKaDcxMTAgU09DIG11 c3QgaGF2ZSB0d28gcmVzZXRzLgoraXQgdXNlcyBzbnBzLGR3bWFjLTUuMjAgSVAuCisKK1Jldmll d2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5c3p0b2Yua296bG93c2tpQGxpbmFyby5v cmc+CitTaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29t PgorLS0tCisgLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbCAgICAg ICAgICB8IDEyICsrKysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sCitpbmRleCAwMWIwNTZhYjcxZjcuLmU0NTE5Y2Y3 MjJhYiAxMDA2NDQKKy0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQv c25wcyxkd21hYy55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv bmV0L3NucHMsZHdtYWMueWFtbAorQEAgLTEzMywxMiArMTMzLDE2IEBAIHByb3BlcnRpZXM6Cisg ICAgICAgICAtIHB0cF9yZWYKKyAKKyAgIHJlc2V0czoKKy0gICAgbWF4SXRlbXM6IDEKKy0gICAg ZGVzY3JpcHRpb246CistICAgICAgTUFDIFJlc2V0IHNpZ25hbC4KKysgICAgbWluSXRlbXM6IDEK KysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogR01BQyBzdG1tYWNldGggcmVzZXQK KysgICAgICAtIGRlc2NyaXB0aW9uOiBBSEIgcmVzZXQKKyAKKyAgIHJlc2V0LW5hbWVzOgorLSAg ICBjb25zdDogc3RtbWFjZXRoCisrICAgIG1pbkl0ZW1zOiAxCisrICAgIGl0ZW1zOgorKyAgICAg IC0gY29uc3Q6IHN0bW1hY2V0aAorKyAgICAgIC0gY29uc3Q6IGFoYgorIAorICAgcG93ZXItZG9t YWluczoKKyAgICAgbWF4SXRlbXM6IDEKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGludXg2LjMvcGF0Y2hlcy8wMDU1LWR0LWJpbmRpbmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFy Rml2ZS1kd21hYy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDU1LWR0LWJpbmRp bmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1kd21hYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5jNDg5NjA0OTBhNDVmCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTUtZHQtYmluZGluZ3MtbmV0LUFkZC1zdXBw b3J0LVN0YXJGaXZlLWR3bWFjLnBhdGNoCkBAIC0wLDAgKzEsMTgxIEBACitGcm9tIDYwMDE5Yjlk MWU1Yjk2MjZlYTRmNWZkZDE4YzFlMzFiNGM1OWFlYzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBZYW5ob25nIFdhbmcgPHlhbmhvbmcud2FuZ0BzdGFyZml2ZXRlY2guY29tPgorRGF0 ZTogTW9uLCAxNyBBcHIgMjAyMyAxODowMjo0OSArMDgwMAorU3ViamVjdDogW1BBVENIIDU1Lzg0 XSBkdC1iaW5kaW5nczogbmV0OiBBZGQgc3VwcG9ydCBTdGFyRml2ZSBkd21hYworCitBZGQgZG9j dW1lbnRhdGlvbiB0byBkZXNjcmliZSBTdGFyRml2ZSBkd21hYyBkcml2ZXIoR01BQykuCisKK1Np Z25lZC1vZmYtYnk6IFlhbmhvbmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+ CitSZXZpZXdlZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBs aW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0 ZWNoLmNvbT4KKy0tLQorIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlh bWwgICB8ICAgMSArCisgLi4uL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFt bCAgIHwgMTQ0ICsrKysrKysrKysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2Vy dGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwgYi9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbAoraW5kZXgg ZTQ1MTljZjcyMmFiLi4yNDVmN2Q3MTMyNjEgMTAwNjQ0CistLS0gYS9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbAorKysrIGIvRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKK0BAIC05MSw2ICs5MSw3 IEBAIHByb3BlcnRpZXM6CisgICAgICAgICAtIHNucHMsZHdtYWMtNS4yMAorICAgICAgICAgLSBz bnBzLGR3eGdtYWMKKyAgICAgICAgIC0gc25wcyxkd3hnbWFjLTIuMTAKKysgICAgICAgIC0gc3Rh cmZpdmUsamg3MTEwLWR3bWFjCisgCisgICByZWc6CisgICAgIG1pbkl0ZW1zOiAxCitkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcx MTAtZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3Rh cmZpdmUsamg3MTEwLWR3bWFjLnlhbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMDAwMDAuLjVlN2NmYmJlYmNlNgorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbAorQEAg LTAsMCArMSwxNDQgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5 IE9SIEJTRC0yLUNsYXVzZSkKKysjIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9s b2d5IENvLiwgTHRkLgorKyVZQU1MIDEuMgorKy0tLQorKyRpZDogaHR0cDovL2RldmljZXRyZWUu b3JnL3NjaGVtYXMvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sIworKyRzY2hlbWE6IGh0 dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBT dGFyRml2ZSBKSDcxMTAgRFdNQUMgZ2x1ZSBsYXllcgorKworK21haW50YWluZXJzOgorKyAgLSBF bWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorKyAgLSBTYW1pbiBHdW8gPHNh bWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorKworK3NlbGVjdDoKKysgIHByb3BlcnRpZXM6Cisr ICAgIGNvbXBhdGlibGU6CisrICAgICAgY29udGFpbnM6CisrICAgICAgICBlbnVtOgorKyAgICAg ICAgICAtIHN0YXJmaXZlLGpoNzExMC1kd21hYworKyAgcmVxdWlyZWQ6CisrICAgIC0gY29tcGF0 aWJsZQorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBpdGVtczoKKysgICAg ICAtIGVudW06CisrICAgICAgICAgIC0gc3RhcmZpdmUsamg3MTEwLWR3bWFjCisrICAgICAgLSBj b25zdDogc25wcyxkd21hYy01LjIwCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisr ICBjbG9ja3M6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IEdNQUMgbWFpbiBj bG9jaworKyAgICAgIC0gZGVzY3JpcHRpb246IEdNQUMgQUhCIGNsb2NrCisrICAgICAgLSBkZXNj cmlwdGlvbjogUFRQIGNsb2NrCisrICAgICAgLSBkZXNjcmlwdGlvbjogVFggY2xvY2sKKysgICAg ICAtIGRlc2NyaXB0aW9uOiBHVFggY2xvY2sKKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBpdGVt czoKKysgICAgICAtIGNvbnN0OiBzdG1tYWNldGgKKysgICAgICAtIGNvbnN0OiBwY2xrCisrICAg ICAgLSBjb25zdDogcHRwX3JlZgorKyAgICAgIC0gY29uc3Q6IHR4CisrICAgICAgLSBjb25zdDog Z3R4CisrCisrICBpbnRlcnJ1cHRzOgorKyAgICBtaW5JdGVtczogMworKyAgICBtYXhJdGVtczog MworKworKyAgaW50ZXJydXB0LW5hbWVzOgorKyAgICBtaW5JdGVtczogMworKyAgICBtYXhJdGVt czogMworKworKyAgcmVzZXRzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBN QUMgUmVzZXQgc2lnbmFsLgorKyAgICAgIC0gZGVzY3JpcHRpb246IEFIQiBSZXNldCBzaWduYWwu CisrCisrICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogc3RtbWFj ZXRoCisrICAgICAgLSBjb25zdDogYWhiCisrCisrICBzdGFyZml2ZSx0eC11c2UtcmdtaWktY2xr OgorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBUeCBjbG9jayBpcyBwcm92aWRlZCBieSBleHRl cm5hbCByZ21paSBjbG9jay4KKysgICAgdHlwZTogYm9vbGVhbgorKworKyAgc3RhcmZpdmUsc3lz Y29uOgorKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxl LWFycmF5CisrICAgIGl0ZW1zOgorKyAgICAgIC0gaXRlbXM6CisrICAgICAgICAgIC0gZGVzY3Jp cHRpb246IHBoYW5kbGUgdG8gc3lzY29uIHRoYXQgY29uZmlndXJlcyBwaHkgbW9kZQorKyAgICAg ICAgICAtIGRlc2NyaXB0aW9uOiBPZmZzZXQgb2YgcGh5IG1vZGUgc2VsZWN0aW9uCisrICAgICAg ICAgIC0gZGVzY3JpcHRpb246IFNoaWZ0IG9mIHBoeSBtb2RlIHNlbGVjdGlvbgorKyAgICBkZXNj cmlwdGlvbjoKKysgICAgICBBIHBoYW5kbGUgdG8gc3lzY29uIHdpdGggdHdvIGFyZ3VtZW50cyB0 aGF0IGNvbmZpZ3VyZSBwaHkgbW9kZS4KKysgICAgICBUaGUgYXJndW1lbnQgb25lIGlzIHRoZSBv ZmZzZXQgb2YgcGh5IG1vZGUgc2VsZWN0aW9uLCB0aGUKKysgICAgICBhcmd1bWVudCB0d28gaXMg dGhlIHNoaWZ0IG9mIHBoeSBtb2RlIHNlbGVjdGlvbi4KKysKKytyZXF1aXJlZDoKKysgIC0gY29t cGF0aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtIGlu dGVycnVwdHMKKysgIC0gaW50ZXJydXB0LW5hbWVzCisrICAtIHJlc2V0cworKyAgLSByZXNldC1u YW1lcworKworK2FsbE9mOgorKyAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjCisrCisrdW5ldmFs dWF0ZWRQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIGV0aGVy bmV0QDE2MDMwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWR3 bWFjIiwgInNucHMsZHdtYWMtNS4yMCI7CisrICAgICAgICByZWcgPSA8MHgxNjAzMDAwMCAweDEw MDAwPjsKKysgICAgICAgIGNsb2NrcyA9IDwmY2xrIDM+LCA8JmNsayAyPiwgPCZjbGsgMTA5PiwK KysgICAgICAgICAgICAgICAgIDwmY2xrIDY+LCA8JmNsayAxMTE+OworKyAgICAgICAgY2xvY2st bmFtZXMgPSAic3RtbWFjZXRoIiwgInBjbGsiLCAicHRwX3JlZiIsCisrICAgICAgICAgICAgICAg ICAgICAgICJ0eCIsICJndHgiOworKyAgICAgICAgcmVzZXRzID0gPCZyc3QgMT4sIDwmcnN0IDI+ OworKyAgICAgICAgcmVzZXQtbmFtZXMgPSAic3RtbWFjZXRoIiwgImFoYiI7CisrICAgICAgICBp bnRlcnJ1cHRzID0gPDc+LCA8Nj4sIDw1PjsKKysgICAgICAgIGludGVycnVwdC1uYW1lcyA9ICJt YWNpcnEiLCAiZXRoX3dha2VfaXJxIiwgImV0aF9scGkiOworKyAgICAgICAgcGh5LW1vZGUgPSAi cmdtaWktaWQiOworKyAgICAgICAgc25wcyxtdWx0aWNhc3QtZmlsdGVyLWJpbnMgPSA8NjQ+Owor KyAgICAgICAgc25wcyxwZXJmZWN0LWZpbHRlci1lbnRyaWVzID0gPDg+OworKyAgICAgICAgcngt Zmlmby1kZXB0aCA9IDwyMDQ4PjsKKysgICAgICAgIHR4LWZpZm8tZGVwdGggPSA8MjA0OD47Cisr ICAgICAgICBzbnBzLGZpeGVkLWJ1cnN0OworKyAgICAgICAgc25wcyxuby1wYmwteDg7CisrICAg ICAgICBzbnBzLHRzbzsKKysgICAgICAgIHNucHMsZm9yY2VfdGhyZXNoX2RtYV9tb2RlOworKyAg ICAgICAgc25wcyxheGktY29uZmlnID0gPCZzdG1tYWNfYXhpX3NldHVwPjsKKysgICAgICAgIHNu cHMsZW4tdHgtbHBpLWNsb2NrZ2F0aW5nOworKyAgICAgICAgc25wcyx0eHBibCA9IDwxNj47Cisr ICAgICAgICBzbnBzLHJ4cGJsID0gPDE2PjsKKysgICAgICAgIHN0YXJmaXZlLHN5c2NvbiA9IDwm YW9uX3N5c2NvbiAweGMgMHgxMj47CisrICAgICAgICBwaHktaGFuZGxlID0gPCZwaHkwPjsKKysK KysgICAgICAgIG1kaW8geworKyAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPDE+OworKyAg ICAgICAgICAgICNzaXplLWNlbGxzID0gPDA+OworKyAgICAgICAgICAgIGNvbXBhdGlibGUgPSAi c25wcyxkd21hYy1tZGlvIjsKKysKKysgICAgICAgICAgICBwaHkwOiBldGhlcm5ldC1waHlAMCB7 CisrICAgICAgICAgICAgICAgIHJlZyA9IDwwPjsKKysgICAgICAgICAgICB9OworKyAgICAgICAg fTsKKysKKysgICAgICAgIHN0bW1hY19heGlfc2V0dXA6IHN0bW1hYy1heGktY29uZmlnIHsKKysg ICAgICAgICAgICBzbnBzLGxwaV9lbjsKKysgICAgICAgICAgICBzbnBzLHdyX29zcl9sbXQgPSA8 ND47CisrICAgICAgICAgICAgc25wcyxyZF9vc3JfbG10ID0gPDQ+OworKyAgICAgICAgICAgIHNu cHMsYmxlbiA9IDwyNTYgMTI4IDY0IDMyIDAgMCAwPjsKKysgICAgICAgIH07CisrICAgIH07Cist LSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1Ni1u ZXQtc3RtbWFjLUFkZC1nbHVlLWxheWVyLWZvci1TdGFyRml2ZS1KSDcxMTAtU29DLnBhdGNoIGIv c3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTYtbmV0LXN0bW1hYy1BZGQtZ2x1ZS1sYXllci1m b3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5lYmM5NTYxMTNjZDlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwNTYtbmV0LXN0bW1hYy1BZGQtZ2x1ZS1sYXllci1mb3ItU3RhckZp dmUtSkg3MTEwLVNvQy5wYXRjaApAQCAtMCwwICsxLDE4NSBAQAorRnJvbSA4ZmZiM2YzMzZkNTZm ZTM3YmM5ZDcxZjNmZjRlMzcxZjAzMzAxOWU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IE1vbiwgMTcg QXByIDIwMjMgMTg6MDI6NTAgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ni84NF0gbmV0OiBzdG1t YWM6IEFkZCBnbHVlIGxheWVyIGZvciBTdGFyRml2ZSBKSDcxMTAgU29DCisKK1RoaXMgYWRkcyBT dGFyRml2ZSBkd21hYyBkcml2ZXIgc3VwcG9ydCBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4K KworVGVzdGVkLWJ5OiBUb21tYXNvIE1lcmNpYWkgPHRvbW0ubWVyY2lhaUBnbWFpbC5jb20+CitD by1kZXZlbG9wZWQtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CitT aWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorU2ln bmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQor IGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcgICB8ICAxMiArKwor IGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlICB8ICAgMSArCisg Li4uL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMgIHwgMTIzICsrKysr KysrKysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKykKKyBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMt c3RhcmZpdmUuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25m aWcKK2luZGV4IGY3NzUxMWZlNGU4Ny4uNWY1YTk5N2YyMWYzIDEwMDY0NAorLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZworKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZworQEAgLTE2NSw2ICsxNjUsMTggQEAgY29u ZmlnIERXTUFDX1NPQ0ZQR0EKKyAJICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlz IGRyaXZlciBpcyB1c2VkIGZvcgorIAkgIGFycmlhNSBhbmQgY3ljbG9uZTUgRlBHQSBTb0NzLgor IAorK2NvbmZpZyBEV01BQ19TVEFSRklWRQorKwl0cmlzdGF0ZSAiU3RhckZpdmUgZHdtYWMgc3Vw cG9ydCIKKysJZGVwZW5kcyBvbiBPRiAmJiAoQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1Qp CisrCXNlbGVjdCBNRkRfU1lTQ09OCisrCWRlZmF1bHQgbSBpZiBBUkNIX1NUQVJGSVZFCisrCWhl bHAKKysJICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVycyBvbiBTdGFyRml2ZSBSSVND LVYgU29DcworKworKwkgIFRoaXMgc2VsZWN0cyB0aGUgU3RhckZpdmUgcGxhdGZvcm0gc3BlY2lm aWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvcgorKwkgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4g VGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgU3RhckZpdmUgSkg3MTEwCisrCSAgZXRoZXJuZXQgY29u dHJvbGxlci4KKysKKyBjb25maWcgRFdNQUNfU1RJCisgCXRyaXN0YXRlICJTVGkgR01BQyBzdXBw b3J0IgorIAlkZWZhdWx0IEFSQ0hfU1RJCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9NYWtlZmlsZQoraW5kZXggMDU3ZTRiYWI1YzA4Li44NzM4ZmRiYjRiMmQgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQorKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUKK0BAIC0yMyw2 ICsyMyw3IEBAIG9iai0kKENPTkZJR19EV01BQ19PWE5BUykJKz0gZHdtYWMtb3huYXMubworIG9i ai0kKENPTkZJR19EV01BQ19RQ09NX0VUSFFPUykJKz0gZHdtYWMtcWNvbS1ldGhxb3MubworIG9i ai0kKENPTkZJR19EV01BQ19ST0NLQ0hJUCkJKz0gZHdtYWMtcmsubworIG9iai0kKENPTkZJR19E V01BQ19TT0NGUEdBKQkrPSBkd21hYy1hbHRyLXNvY2ZwZ2EubworK29iai0kKENPTkZJR19EV01B Q19TVEFSRklWRSkJKz0gZHdtYWMtc3RhcmZpdmUubworIG9iai0kKENPTkZJR19EV01BQ19TVEkp CQkrPSBkd21hYy1zdGkubworIG9iai0kKENPTkZJR19EV01BQ19TVE0zMikJKz0gZHdtYWMtc3Rt MzIubworIG9iai0kKENPTkZJR19EV01BQ19TVU5YSSkJKz0gZHdtYWMtc3VueGkubworZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZl LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5j CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi40OTYzZDQwMDg0ODUK Ky0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L2R3bWFjLXN0YXJmaXZlLmMKK0BAIC0wLDAgKzEsMTIzIEBACisrLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjArCisrLyoKKysgKiBTdGFyRml2ZSBEV01BQyBwbGF0Zm9ybSBkcml2 ZXIKKysgKgorKyAqIENvcHlyaWdodCAoQykgMjAyMSBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2Vy bmVsQGVzbWlsLmRrPgorKyAqIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5 IENvLiwgTHRkLgorKyAqCisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4K KysjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5o PgorKworKyNpbmNsdWRlICJzdG1tYWNfcGxhdGZvcm0uaCIKKysKKytzdHJ1Y3Qgc3RhcmZpdmVf ZHdtYWMgeworKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisrCXN0cnVjdCBjbGsgKmNsa190eDsKKyt9 OworKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX2R3bWFjX2ZpeF9tYWNfc3BlZWQodm9pZCAqcHJp diwgdW5zaWduZWQgaW50IHNwZWVkKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2R3bWFjICpkd21h YyA9IHByaXY7CisrCXVuc2lnbmVkIGxvbmcgcmF0ZTsKKysJaW50IGVycjsKKysKKysJcmF0ZSA9 IGNsa19nZXRfcmF0ZShkd21hYy0+Y2xrX3R4KTsKKysKKysJc3dpdGNoIChzcGVlZCkgeworKwlj YXNlIFNQRUVEXzEwMDA6CisrCQlyYXRlID0gMTI1MDAwMDAwOworKwkJYnJlYWs7CisrCWNhc2Ug U1BFRURfMTAwOgorKwkJcmF0ZSA9IDI1MDAwMDAwOworKwkJYnJlYWs7CisrCWNhc2UgU1BFRURf MTA6CisrCQlyYXRlID0gMjUwMDAwMDsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJZGV2X2Vy cihkd21hYy0+ZGV2LCAiaW52YWxpZCBzcGVlZCAldVxuIiwgc3BlZWQpOworKwkJYnJlYWs7Cisr CX0KKysKKysJZXJyID0gY2xrX3NldF9yYXRlKGR3bWFjLT5jbGtfdHgsIHJhdGUpOworKwlpZiAo ZXJyKQorKwkJZGV2X2Vycihkd21hYy0+ZGV2LCAiZmFpbGVkIHRvIHNldCB0eCByYXRlICVsdVxu IiwgcmF0ZSk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfZHdtYWNfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0 YSAqcGxhdF9kYXQ7CisrCXN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7CisrCXN0 cnVjdCBzdGFyZml2ZV9kd21hYyAqZHdtYWM7CisrCXN0cnVjdCBjbGsgKmNsa19ndHg7CisrCWlu dCBlcnI7CisrCisrCWVyciA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsICZz dG1tYWNfcmVzKTsKKysJaWYgKGVycikKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5k ZXYsIGVyciwKKysJCQkJICAgICAiZmFpbGVkIHRvIGdldCByZXNvdXJjZXNcbiIpOworKworKwlw bGF0X2RhdCA9IHN0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpOwor KwlpZiAoSVNfRVJSKHBsYXRfZGF0KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5k ZXYsIFBUUl9FUlIocGxhdF9kYXQpLAorKwkJCQkgICAgICJkdCBjb25maWd1cmF0aW9uIGZhaWxl ZFxuIik7CisrCisrCWR3bWFjID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqZHdt YWMpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFkd21hYykKKysJCXJldHVybiAtRU5PTUVNOworKwor Kwlkd21hYy0+Y2xrX3R4ID0gZGV2bV9jbGtfZ2V0X2VuYWJsZWQoJnBkZXYtPmRldiwgInR4Iik7 CisrCWlmIChJU19FUlIoZHdtYWMtPmNsa190eCkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgm cGRldi0+ZGV2LCBQVFJfRVJSKGR3bWFjLT5jbGtfdHgpLAorKwkJCQkgICAgICJlcnJvciBnZXR0 aW5nIHR4IGNsb2NrXG4iKTsKKysKKysJY2xrX2d0eCA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZw ZGV2LT5kZXYsICJndHgiKTsKKysJaWYgKElTX0VSUihjbGtfZ3R4KSkKKysJCXJldHVybiBkZXZf ZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoY2xrX2d0eCksCisrCQkJCSAgICAgImVycm9y IGdldHRpbmcgZ3R4IGNsb2NrXG4iKTsKKysKKysJLyogR2VuZXJhbGx5LCB0aGUgcmdtaWlfdHgg Y2xvY2sgaXMgcHJvdmlkZWQgYnkgdGhlIGludGVybmFsIGNsb2NrLAorKwkgKiB3aGljaCBuZWVk cyB0byBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBjbG9jayBmcmVxdWVuY3kgYWNjb3JkaW5nCisr CSAqIHRvIGRpZmZlcmVudCBzcGVlZHMuIElmIHRoZSByZ21paV90eCBjbG9jayBpcyBwcm92aWRl ZCBieSB0aGUKKysJICogZXh0ZXJuYWwgcmdtaWlfcnhpbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBj b25maWd1cmUgdGhlIGNsb2NrCisrCSAqIGludGVybmFsbHksIGJlY2F1c2UgcmdtaWlfcnhpbiB3 aWxsIGJlIGFkYXB0aXZlbHkgYWRqdXN0ZWQuCisrCSAqLworKwlpZiAoIWRldmljZV9wcm9wZXJ0 eV9yZWFkX2Jvb2woJnBkZXYtPmRldiwgInN0YXJmaXZlLHR4LXVzZS1yZ21paS1jbGsiKSkKKysJ CXBsYXRfZGF0LT5maXhfbWFjX3NwZWVkID0gc3RhcmZpdmVfZHdtYWNfZml4X21hY19zcGVlZDsK KysKKysJZHdtYWMtPmRldiA9ICZwZGV2LT5kZXY7CisrCXBsYXRfZGF0LT5ic3BfcHJpdiA9IGR3 bWFjOworKwlwbGF0X2RhdC0+ZG1hX2NmZy0+ZGNoZSA9IHRydWU7CisrCisrCWVyciA9IHN0bW1h Y19kdnJfcHJvYmUoJnBkZXYtPmRldiwgcGxhdF9kYXQsICZzdG1tYWNfcmVzKTsKKysJaWYgKGVy cikgeworKwkJc3RtbWFjX3JlbW92ZV9jb25maWdfZHQocGRldiwgcGxhdF9kYXQpOworKwkJcmV0 dXJuIGVycjsKKysJfQorKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgc3RhcmZpdmVfZHdtYWNfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMTAtZHdtYWMiCX0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307 CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RhcmZpdmVfZHdtYWNfbWF0Y2gpOworKworK3N0 YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN0YXJmaXZlX2R3bWFjX2RyaXZlciA9IHsKKysJ LnByb2JlICA9IHN0YXJmaXZlX2R3bWFjX3Byb2JlLAorKwkucmVtb3ZlID0gc3RtbWFjX3BsdGZy X3JlbW92ZSwKKysJLmRyaXZlciA9IHsKKysJCS5uYW1lID0gInN0YXJmaXZlLWR3bWFjIiwKKysJ CS5wbSA9ICZzdG1tYWNfcGx0ZnJfcG1fb3BzLAorKwkJLm9mX21hdGNoX3RhYmxlID0gc3RhcmZp dmVfZHdtYWNfbWF0Y2gsCisrCX0sCisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0YXJm aXZlX2R3bWFjX2RyaXZlcik7CisrCisrTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworK01PRFVMRV9E RVNDUklQVElPTigiU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyIik7CisrTU9EVUxFX0FV VEhPUigiRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4iKTsKKytNT0RVTEVf QVVUSE9SKCJTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPiIpOworLS0gCisy LjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTctbmV0LXN0 bW1hYy1kd21hYy1zdGFyZml2ZS1BZGQtcGh5LWludGVyZmFjZS1zZXR0aW5ncy5wYXRjaCBiL3Ny Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDU3LW5ldC1zdG1tYWMtZHdtYWMtc3RhcmZpdmUtQWRk LXBoeS1pbnRlcmZhY2Utc2V0dGluZ3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uYzA2YjgxYmNjMWU0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDU3LW5ldC1zdG1tYWMtZHdtYWMtc3RhcmZpdmUtQWRkLXBoeS1p bnRlcmZhY2Utc2V0dGluZ3MucGF0Y2gKQEAgLTAsMCArMSw5NiBAQAorRnJvbSAwMWU4ZGI0ZjBk NGJiMjlhNGU4NmZjYzY4NmQ3OWU2ZjJiYWU3NWVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IE1vbiwg MTcgQXByIDIwMjMgMTg6MDI6NTEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ny84NF0gbmV0OiBz dG1tYWM6IGR3bWFjLXN0YXJmaXZlOiBBZGQgcGh5IGludGVyZmFjZSBzZXR0aW5ncworCitkd21h YyBzdXBwb3J0cyBtdWx0aXBsZSBtb2Rlc3MuIFdoZW4gd29ya2luZyB1bmRlciBybWlpIGFuZCBy Z21paSwKK3lvdSBuZWVkIHRvIHNldCBkaWZmZXJlbnQgcGh5IGludGVyZmFjZXMuCisKK0FjY29y ZGluZyB0byB0aGUgZHdtYWMgZG9jdW1lbnQsIHdoZW4gd29ya2luZyBpbiBybWlpLCBpdCBuZWVk cyB0byBiZQorc2V0IHRvIDB4NCwgYW5kIHJnbWlpIG5lZWRzIHRvIGJlIHNldCB0byAweDEuCisK K1RoZSBwaHkgaW50ZXJmYWNlIG5lZWRzIHRvIGJlIHNldCBpbiBzeXNjb24sIHRoZSBmb3JtYXQg aXMgYXMgZm9sbG93czoKK3N0YXJmaXZlLHN5c2NvbjogPCZzeXNjb24sIG9mZnNldCwgc2hpZnQ+ CisKK1Rlc3RlZC1ieTogVG9tbWFzbyBNZXJjaWFpIDx0b21tLm1lcmNpYWlAZ21haWwuY29tPgor U2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0t LQorIC4uLi9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jICB8IDQ4ICsr KysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKQorCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3Rh cmZpdmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJm aXZlLmMKK2luZGV4IDQ5NjNkNDAwODQ4NS4uNGY1MWE3ODg5NjQyIDEwMDY0NAorLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYworKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYworQEAg LTEzLDYgKzEzLDEwIEBACisgCisgI2luY2x1ZGUgInN0bW1hY19wbGF0Zm9ybS5oIgorIAorKyNk ZWZpbmUgU1RBUkZJVkVfRFdNQUNfUEhZX0lORlRfUkdNSUkJMHgxCisrI2RlZmluZSBTVEFSRklW RV9EV01BQ19QSFlfSU5GVF9STUlJCTB4NAorKyNkZWZpbmUgU1RBUkZJVkVfRFdNQUNfUEhZX0lO RlRfRklFTEQJMHg3VQorKworIHN0cnVjdCBzdGFyZml2ZV9kd21hYyB7CisgCXN0cnVjdCBkZXZp Y2UgKmRldjsKKyAJc3RydWN0IGNsayAqY2xrX3R4OworQEAgLTQ2LDYgKzUwLDQ2IEBAIHN0YXRp YyB2b2lkIHN0YXJmaXZlX2R3bWFjX2ZpeF9tYWNfc3BlZWQodm9pZCAqcHJpdiwgdW5zaWduZWQg aW50IHNwZWVkKQorIAkJZGV2X2Vycihkd21hYy0+ZGV2LCAiZmFpbGVkIHRvIHNldCB0eCByYXRl ICVsdVxuIiwgcmF0ZSk7CisgfQorIAorK3N0YXRpYyBpbnQgc3RhcmZpdmVfZHdtYWNfc2V0X21v ZGUoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCkKKyt7CisrCXN0cnVjdCBz dGFyZml2ZV9kd21hYyAqZHdtYWMgPSBwbGF0X2RhdC0+YnNwX3ByaXY7CisrCXN0cnVjdCByZWdt YXAgKnJlZ21hcDsKKysJdW5zaWduZWQgaW50IGFyZ3NbMl07CisrCXVuc2lnbmVkIGludCBtb2Rl OworKwlpbnQgZXJyOworKworKwlzd2l0Y2ggKHBsYXRfZGF0LT5pbnRlcmZhY2UpIHsKKysJY2Fz ZSBQSFlfSU5URVJGQUNFX01PREVfUk1JSToKKysJCW1vZGUgPSBTVEFSRklWRV9EV01BQ19QSFlf SU5GVF9STUlJOworKwkJYnJlYWs7CisrCisrCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJ OgorKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDoKKysJCW1vZGUgPSBTVEFSRklW RV9EV01BQ19QSFlfSU5GVF9SR01JSTsKKysJCWJyZWFrOworKworKwlkZWZhdWx0OgorKwkJZGV2 X2Vycihkd21hYy0+ZGV2LCAidW5zdXBwb3J0ZWQgaW50ZXJmYWNlICVkXG4iLAorKwkJCXBsYXRf ZGF0LT5pbnRlcmZhY2UpOworKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKysKKysJcmVnbWFwID0g c3lzY29uX3JlZ21hcF9sb29rdXBfYnlfcGhhbmRsZV9hcmdzKGR3bWFjLT5kZXYtPm9mX25vZGUs CisrCQkJCQkJICAgICAgInN0YXJmaXZlLHN5c2NvbiIsCisrCQkJCQkJICAgICAgMiwgYXJncyk7 CisrCWlmIChJU19FUlIocmVnbWFwKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGR3bWFjLT5k ZXYsIFBUUl9FUlIocmVnbWFwKSwgImdldHRpbmcgdGhlIHJlZ21hcCBmYWlsZWRcbiIpOworKwor KwkvKiBhcmdzWzBdOm9mZnNldCAgYXJnc1sxXTogc2hpZnQgKi8KKysJZXJyID0gcmVnbWFwX3Vw ZGF0ZV9iaXRzKHJlZ21hcCwgYXJnc1swXSwKKysJCQkJIFNUQVJGSVZFX0RXTUFDX1BIWV9JTkZU X0ZJRUxEIDw8IGFyZ3NbMV0sCisrCQkJCSBtb2RlIDw8IGFyZ3NbMV0pOworKwlpZiAoZXJyKQor KwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZHdtYWMtPmRldiwgZXJyLCAiZXJyb3Igc2V0dGluZyBw aHkgbW9kZVxuIik7CisrCisrCXJldHVybiAwOworK30KKysKKyBzdGF0aWMgaW50IHN0YXJmaXZl X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgeworIAlzdHJ1Y3Qg cGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0OworQEAgLTkxLDYgKzEzNSwxMCBAQCBzdGF0 aWMgaW50IHN0YXJmaXZlX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CisgCXBsYXRfZGF0LT5ic3BfcHJpdiA9IGR3bWFjOworIAlwbGF0X2RhdC0+ZG1hX2NmZy0+ZGNo ZSA9IHRydWU7CisgCisrCWVyciA9IHN0YXJmaXZlX2R3bWFjX3NldF9tb2RlKHBsYXRfZGF0KTsK KysJaWYgKGVycikKKysJCXJldHVybiBlcnI7CisrCisgCWVyciA9IHN0bW1hY19kdnJfcHJvYmUo JnBkZXYtPmRldiwgcGxhdF9kYXQsICZzdG1tYWNfcmVzKTsKKyAJaWYgKGVycikgeworIAkJc3Rt bWFjX3JlbW92ZV9jb25maWdfZHQocGRldiwgcGxhdF9kYXQpOworLS0gCisyLjQwLjEKKwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNTgtZHQtYmluZGluZ3MtcGh5LUFk ZC1TdGFyRml2ZS1KSDcxMTAtVVNCLVBIWS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hl cy8wMDU4LWR0LWJpbmRpbmdzLXBoeS1BZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1QSFkucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNDE2ZDc0NDczZTlkOAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDU4LWR0LWJpbmRp bmdzLXBoeS1BZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1QSFkucGF0Y2gKQEAgLTAsMCArMSw3NCBA QAorRnJvbSA4NWYxYjBmZGU5ZDU3MGUzN2Y5YjU4MGQ5Zjg1MmEzZjNlOWM3YmJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRl Y2guY29tPgorRGF0ZTogVGh1LCAyMCBBcHIgMjAyMyAxOTowMDo0NiArMDgwMAorU3ViamVjdDog W1BBVENIIDU4Lzg0XSBkdC1iaW5kaW5nczogcGh5OiBBZGQgU3RhckZpdmUgSkg3MTEwIFVTQiBQ SFkKKworQWRkIFN0YXJGaXZlIEpINzExMCBTb0MgVVNCIDIuMCBQSFkgZHQtYmluZGluZy4KKwor U2lnbmVkLW9mZi1ieTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgor UmV2aWV3ZWQtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorUmV2aWV3 ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+CistLS0KKyAuLi4vYmluZGluZ3Mv cGh5L3N0YXJmaXZlLGpoNzExMC11c2ItcGh5LnlhbWwgfCA1MCArKysrKysrKysrKysrKysrKysr CisgMSBmaWxlIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQg RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9zdGFyZml2ZSxqaDcxMTAtdXNi LXBoeS55YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvcGh5L3N0YXJmaXZlLGpoNzExMC11c2ItcGh5LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpoNzExMC11c2ItcGh5LnlhbWwKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjI2OWU5ZjlmMTJiNgorLS0tIC9kZXYv bnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9zdGFyZml2 ZSxqaDcxMTAtdXNiLXBoeS55YW1sCitAQCAtMCwwICsxLDUwIEBACisrIyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisr LS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9waHkvc3RhcmZpdmUsamg3 MTEwLXVzYi1waHkueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1z Y2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIFVTQiAyLjAgUEhZ CisrCisrbWFpbnRhaW5lcnM6CisrICAtIE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0 ZWNoLmNvbT4KKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgY29uc3Q6IHN0 YXJmaXZlLGpoNzExMC11c2ItcGh5CisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisr ICAiI3BoeS1jZWxscyI6CisrICAgIGNvbnN0OiAwCisrCisrICBjbG9ja3M6CisrICAgIGl0ZW1z OgorKyAgICAgIC0gZGVzY3JpcHRpb246IFBIWSAxMjVtCisrICAgICAgLSBkZXNjcmlwdGlvbjog YXBwIDEyNW0KKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0 OiAxMjVtCisrICAgICAgLSBjb25zdDogYXBwXzEyNW0KKysKKytyZXF1aXJlZDoKKysgIC0gY29t cGF0aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtICIj cGh5LWNlbGxzIgorKworK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVz OgorKyAgLSB8CisrICAgIHBoeUAxMDIwMDAwMCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0 YXJmaXZlLGpoNzExMC11c2ItcGh5IjsKKysgICAgICAgIHJlZyA9IDwweDEwMjAwMDAwIDB4MTAw MDA+OworKyAgICAgICAgY2xvY2tzID0gPCZzeXNjcmcgOTU+LAorKyAgICAgICAgICAgICAgICAg PCZzdGdjcmcgNj47CisrICAgICAgICBjbG9jay1uYW1lcyA9ICIxMjVtIiwgImFwcF8xMjVtIjsK KysgICAgICAgICNwaHktY2VsbHMgPSA8MD47CisrICAgIH07CistLSAKKzIuNDAuMQorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1OS1kdC1iaW5kaW5ncy1waHktQWRk LVN0YXJGaXZlLUpINzExMC1QQ0llLVBIWS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hl cy8wMDU5LWR0LWJpbmRpbmdzLXBoeS1BZGQtU3RhckZpdmUtSkg3MTEwLVBDSWUtUEhZLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjQ3ZmEyMjA1ZWYwN2QK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA1OS1kdC1iaW5k aW5ncy1waHktQWRkLVN0YXJGaXZlLUpINzExMC1QQ0llLVBIWS5wYXRjaApAQCAtMCwwICsxLDgz IEBACitGcm9tIDhiZDg2ZGQ2N2RiMzVjNGJhNTVkM2JmOGVkZjI3NjkwMWU1NWQwZGYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBUaHUsIDIwIEFwciAyMDIzIDE5OjAwOjQ3ICswODAwCitTdWJqZWN0 OiBbUEFUQ0ggNTkvODRdIGR0LWJpbmRpbmdzOiBwaHk6IEFkZCBTdGFyRml2ZSBKSDcxMTAgUENJ ZSBQSFkKKworQWRkIFN0YXJGaXZlIEpINzExMCBTb0MgUENJZSAyLjAgUEhZIGR0LWJpbmRpbmcu CitQQ0llIFBIWTAgKHBoeUAxMDIxMDAwMCkgY2FuIGJlIHVzZWQgYXMgVVNCIDMuMCBQSFkuCisK K1NpZ25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4K K1Jldmlld2VkLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1Jldmll d2VkLWJ5OiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgorLS0tCisgLi4uL3BoeS9zdGFy Zml2ZSxqaDcxMTAtcGNpZS1waHkueWFtbCAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysr KworIDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvc3RhcmZpdmUsamg3MTEwLXBj aWUtcGh5LnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9waHkvc3RhcmZpdmUsamg3MTEwLXBjaWUtcGh5LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpoNzExMC1wY2llLXBoeS55YW1sCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4yZTgzYTYxNjRjZDEKKy0tLSAv ZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvc3Rh cmZpdmUsamg3MTEwLXBjaWUtcGh5LnlhbWwKK0BAIC0wLDAgKzEsNTggQEAKKysjIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZSkKKyslWUFNTCAx LjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BoeS9zdGFyZml2 ZSxqaDcxMTAtcGNpZS1waHkueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcv bWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIFBDSWUg Mi4wIFBIWQorKworK21haW50YWluZXJzOgorKyAgLSBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0 YXJmaXZldGVjaC5jb20+CisrCisrcHJvcGVydGllczoKKysgIGNvbXBhdGlibGU6CisrICAgIGNv bnN0OiBzdGFyZml2ZSxqaDcxMTAtcGNpZS1waHkKKysKKysgIHJlZzoKKysgICAgbWF4SXRlbXM6 IDEKKysKKysgICIjcGh5LWNlbGxzIjoKKysgICAgY29uc3Q6IDAKKysKKysgIHN0YXJmaXZlLHN5 cy1zeXNjb246CisrICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3Bo YW5kbGUtYXJyYXkKKysgICAgaXRlbXM6CisrICAgICAgLSBpdGVtczoKKysgICAgICAgICAgLSBk ZXNjcmlwdGlvbjogcGhhbmRsZSB0byBTeXN0ZW0gUmVnaXN0ZXIgQ29udHJvbGxlciBzeXNfc3lz Y29uIG5vZGUuCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBIWSBjb25uZWN0IG9mZnNldCBv ZiBTWVNfU1lTQ09OU0FJRl9fU1lTQ0ZHIHJlZ2lzdGVyIGZvciBVU0IgUEhZLgorKyAgICBkZXNj cmlwdGlvbjoKKysgICAgICBUaGUgcGhhbmRsZSB0byBTeXN0ZW0gUmVnaXN0ZXIgQ29udHJvbGxl ciBzeXNjb24gbm9kZSBhbmQgdGhlIFBIWSBjb25uZWN0IG9mZnNldAorKyAgICAgIG9mIFNZU19T WVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIuIENvbm5lY3QgUEhZIHRvIFVTQjMgY29udHJvbGxl ci4KKysKKysgIHN0YXJmaXZlLHN0Zy1zeXNjb246CisrICAgICRyZWY6IC9zY2hlbWFzL3R5cGVz LnlhbWwjL2RlZmluaXRpb25zL3BoYW5kbGUtYXJyYXkKKysgICAgaXRlbXM6CisrICAgICAgLSBp dGVtczoKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogcGhhbmRsZSB0byBTeXN0ZW0gUmVnaXN0 ZXIgQ29udHJvbGxlciBzdGdfc3lzY29uIG5vZGUuCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246 IFBIWSBtb2RlIG9mZnNldCBvZiBTVEdfU1lTQ09OU0FJRl9fU1lTQ0ZHIHJlZ2lzdGVyLgorKyAg ICAgICAgICAtIGRlc2NyaXB0aW9uOiBQSFkgZW5hYmxlIGZvciBVU0Igb2Zmc2V0IG9mIFNUR19T WVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIuCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFRo ZSBwaGFuZGxlIHRvIFN5c3RlbSBSZWdpc3RlciBDb250cm9sbGVyIHN5c2NvbiBub2RlIGFuZCB0 aGUgb2Zmc2V0CisrICAgICAgb2YgU1RHX1NZU0NPTlNBSUZfX1NZU0NGRyByZWdpc3RlciBmb3Ig UENJZSBQSFkuIFRvdGFsIDIgcmVnc2lzdGVycyBvZmZzZXQuCisrCisrcmVxdWlyZWQ6CisrICAt IGNvbXBhdGlibGUKKysgIC0gcmVnCisrICAtICIjcGh5LWNlbGxzIgorKworK2FkZGl0aW9uYWxQ cm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIHBoeUAxMDIxMDAw MCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wY2llLXBoeSI7Cisr ICAgICAgICByZWcgPSA8MHgxMDIxMDAwMCAweDEwMDAwPjsKKysgICAgICAgICNwaHktY2VsbHMg PSA8MD47CisrICAgICAgICBzdGFyZml2ZSxzeXMtc3lzY29uID0gPCZzeXNfc3lzY29uIDB4MTg+ OworKyAgICAgICAgc3RhcmZpdmUsc3RnLXN5c2NvbiA9IDwmc3RnX3N5c2NvbiAweDE0OCAweDFm ND47CisrICAgIH07CistLSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDA2MC1waHktc3RhcmZpdmUtQWRkLUpINzExMC1VU0ItMi4wLVBIWS1kcml2ZXIu cGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2MC1waHktc3RhcmZpdmUtQWRkLUpI NzExMC1VU0ItMi4wLVBIWS1kcml2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uOGRjZjJiODIwZTNlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8wMDYwLXBoeS1zdGFyZml2ZS1BZGQtSkg3MTEwLVVTQi0yLjAtUEhZ LWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDE4NSBAQAorRnJvbSAxZGY0Y2I2OTJmM2I3MmRmMWIx NmNkMGJmZGYzM2YyYzNlMTFjZjJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWlu ZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCAyMCBBcHIg MjAyMyAxOTowMDo0OCArMDgwMAorU3ViamVjdDogW1BBVENIIDYwLzg0XSBwaHk6IHN0YXJmaXZl OiBBZGQgSkg3MTEwIFVTQiAyLjAgUEhZIGRyaXZlcgorCitBZGQgU3RhcmZpdmUgSkg3MTEwIFNv QyBVU0IgMi4wIFBIWSBkcml2ZXIgc3VwcG9ydC4KK1VTQiAyLjAgUEhZIGRlZmF1bHQgY29ubmVj dCB0byBDYWRlbmNlIFVTQiBjb250cm9sbGVyLgorCitTaWduZWQtb2ZmLWJ5OiBNaW5kYSBDaGVu IDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL3BoeS9zdGFyZml2 ZS9waHktamg3MTEwLXVzYi5jIHwgMTYyICsrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBm aWxlIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvcGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtdXNiLmMKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtdXNiLmMgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9waHkt amg3MTEwLXVzYi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi40 YTEyZGYwNjkyY2QKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvcGh5L3N0YXJmaXZlL3Bo eS1qaDcxMTAtdXNiLmMKK0BAIC0wLDAgKzEsMTYyIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjArCisrLyoKKysgKiBTdGFyRml2ZSBKSDcxMTAgVVNCIDIuMCBQSFkgZHJp dmVyCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4s IEx0ZC4KKysgKiBBdXRob3I6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNv bT4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9j bGsuaD4KKysjaW5jbHVkZSA8bGludXgvZXJyLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cisr I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+Cisr I2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC91c2Iv b2YuaD4KKysKKysjZGVmaW5lIFVTQl8xMjVNX0NMS19SQVRFCQkxMjUwMDAwMDAKKysjZGVmaW5l IFVTQl9MU19LRUVQQUxJVkVfT0ZGCQkweDQKKysjZGVmaW5lIFVTQl9MU19LRUVQQUxJVkVfRU5B QkxFCQlCSVQoNCkKKysKKytzdHJ1Y3Qgamg3MTEwX3VzYjJfcGh5IHsKKysJc3RydWN0IHBoeSAq cGh5OworKwl2b2lkIF9faW9tZW0gKnJlZ3M7CisrCXN0cnVjdCBjbGsgKnVzYl8xMjVtX2NsazsK KysJc3RydWN0IGNsayAqYXBwXzEyNW07CisrCWVudW0gcGh5X21vZGUgbW9kZTsKKyt9OworKwor K3N0YXRpYyB2b2lkIGpoNzExMF91c2IyX21vZGVfc2V0KHN0cnVjdCBqaDcxMTBfdXNiMl9waHkg KnBoeSkKKyt7CisrCXVuc2lnbmVkIGludCB2YWw7CisrCisrCWlmIChwaHktPm1vZGUgIT0gUEhZ X01PREVfVVNCX0hPU1QpIHsKKysJCS8qIEVuYWJsZSB0aGUgTFMgc3BlZWQga2VlcC1hbGl2ZSBz aWduYWwgKi8KKysJCXZhbCA9IHJlYWRsKHBoeS0+cmVncyArIFVTQl9MU19LRUVQQUxJVkVfT0ZG KTsKKysJCXZhbCB8PSBVU0JfTFNfS0VFUEFMSVZFX0VOQUJMRTsKKysJCXdyaXRlbCh2YWwsIHBo eS0+cmVncyArIFVTQl9MU19LRUVQQUxJVkVfT0ZGKTsKKysJfQorK30KKysKKytzdGF0aWMgaW50 IGpoNzExMF91c2IyX3BoeV9zZXRfbW9kZShzdHJ1Y3QgcGh5ICpfcGh5LAorKwkJCQkgICAgZW51 bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfdXNiMl9w aHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShfcGh5KTsKKysKKysJc3dpdGNoIChtb2RlKSB7Cisr CWNhc2UgUEhZX01PREVfVVNCX0hPU1Q6CisrCWNhc2UgUEhZX01PREVfVVNCX0RFVklDRToKKysJ Y2FzZSBQSFlfTU9ERV9VU0JfT1RHOgorKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlyZXR1cm4g LUVJTlZBTDsKKysJfQorKworKwlpZiAobW9kZSAhPSBwaHktPm1vZGUpIHsKKysJCWRldl9pbmZv KCZfcGh5LT5kZXYsICJDaGFuZ2luZyBwaHkgdG8gJWRcbiIsIG1vZGUpOworKwkJcGh5LT5tb2Rl ID0gbW9kZTsKKysJCWpoNzExMF91c2IyX21vZGVfc2V0KHBoeSk7CisrCX0KKysKKysJcmV0dXJu IDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3VzYjJfcGh5X2luaXQoc3RydWN0IHBoeSAq X3BoeSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfdXNiMl9waHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0 YShfcGh5KTsKKysJaW50IHJldDsKKysKKysJcmV0ID0gY2xrX3NldF9yYXRlKHBoeS0+dXNiXzEy NW1fY2xrLCBVU0JfMTI1TV9DTEtfUkFURSk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0Owor KworKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocGh5LT5hcHBfMTI1bSk7CisrCWlmIChyZXQp CisrCQlyZXR1cm4gcmV0OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBqaDcx MTBfdXNiMl9waHlfZXhpdChzdHJ1Y3QgcGh5ICpfcGh5KQorK3sKKysJc3RydWN0IGpoNzExMF91 c2IyX3BoeSAqcGh5ID0gcGh5X2dldF9kcnZkYXRhKF9waHkpOworKworKwljbGtfZGlzYWJsZV91 bnByZXBhcmUocGh5LT5hcHBfMTI1bSk7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IHBoeV9vcHMgamg3MTEwX3VzYjJfcGh5X29wcyA9IHsKKysJLmluaXQJCT0g amg3MTEwX3VzYjJfcGh5X2luaXQsCisrCS5leGl0CQk9IGpoNzExMF91c2IyX3BoeV9leGl0LAor Kwkuc2V0X21vZGUJPSBqaDcxMTBfdXNiMl9waHlfc2V0X21vZGUsCisrCS5vd25lcgkJPSBUSElT X01PRFVMRSwKKyt9OworKworK3N0YXRpYyBpbnQgamg3MTEwX3VzYl9waHlfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBqaDcxMTBfdXNiMl9waHkgKnBo eTsKKysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKysJc3RydWN0IHBoeV9wcm92 aWRlciAqcGh5X3Byb3ZpZGVyOworKworKwlwaHkgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2Yo KnBoeSksIEdGUF9LRVJORUwpOworKwlpZiAoIXBoeSkKKysJCXJldHVybiAtRU5PTUVNOworKwor KwlwaHktPnVzYl8xMjVtX2NsayA9IGRldm1fY2xrX2dldChkZXYsICIxMjVtIik7CisrCWlmIChJ U19FUlIocGh5LT51c2JfMTI1bV9jbGspKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQ VFJfRVJSKHBoeS0+dXNiXzEyNW1fY2xrKSwKKysJCQkiRmFpbGVkIHRvIGdldCAxMjVtIGNsb2Nr XG4iKTsKKysKKysJcGh5LT5hcHBfMTI1bSA9IGRldm1fY2xrX2dldChkZXYsICJhcHBfMTI1bSIp OworKwlpZiAoSVNfRVJSKHBoeS0+YXBwXzEyNW0pKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUo ZGV2LCBQVFJfRVJSKHBoeS0+YXBwXzEyNW0pLAorKwkJCSJGYWlsZWQgdG8gZ2V0IGFwcCAxMjVt IGNsb2NrXG4iKTsKKysKKysJcGh5LT5yZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291 cmNlKHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHBoeS0+cmVncykpCisrCQlyZXR1cm4gZGV2X2Vy cl9wcm9iZShkZXYsIFBUUl9FUlIocGh5LT5yZWdzKSwKKysJCQkiRmFpbGVkIHRvIG1hcCBwaHkg YmFzZVxuIik7CisrCisrCXBoeS0+cGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgTlVMTCwgJmpo NzExMF91c2IyX3BoeV9vcHMpOworKwlpZiAoSVNfRVJSKHBoeS0+cGh5KSkKKysJCXJldHVybiBk ZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwaHktPnBoeSksCisrCQkJIkZhaWxlZCB0byBjcmVh dGUgcGh5XG4iKTsKKysKKysJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcGh5KTsKKysJcGh5 X3NldF9kcnZkYXRhKHBoeS0+cGh5LCBwaHkpOworKwlwaHlfcHJvdmlkZXIgPSBkZXZtX29mX3Bo eV9wcm92aWRlcl9yZWdpc3RlcihkZXYsIG9mX3BoeV9zaW1wbGVfeGxhdGUpOworKworKwlyZXR1 cm4gUFRSX0VSUl9PUl9aRVJPKHBoeV9wcm92aWRlcik7CisrfQorKworK3N0YXRpYyBpbnQgamg3 MTEwX3VzYl9waHlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlz dHJ1Y3Qgamg3MTEwX3VzYjJfcGh5ICpwaHkgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsK KysKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBoeS0+YXBwXzEyNW0pOworKwlwbGF0Zm9ybV9z ZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBj b25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF91c2JfcGh5X29mX21hdGNoW10gPSB7Cisr CXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXVzYi1waHkiIH0sCisrCXsgLyogc2Vu dGluZWwgKi8gfSwKKyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGpoNzExMF91c2JfcGh5 X29mX21hdGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBqaDcxMTBfdXNi X3BoeV9kcml2ZXIgPSB7CisrCS5wcm9iZQk9IGpoNzExMF91c2JfcGh5X3Byb2JlLAorKwkucmVt b3ZlCT0gamg3MTEwX3VzYl9waHlfcmVtb3ZlLAorKwkuZHJpdmVyID0geworKwkJLm9mX21hdGNo X3RhYmxlCT0gamg3MTEwX3VzYl9waHlfb2ZfbWF0Y2gsCisrCQkubmFtZSAgPSAiamg3MTEwLXVz Yi1waHkiLAorKwl9CisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGpoNzExMF91c2JfcGh5 X2RyaXZlcik7CisrCisrTU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAgVVNCIDIu MCBQSFkgZHJpdmVyIik7CisrTU9EVUxFX0FVVEhPUigiTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBz dGFyZml2ZXRlY2guY29tPiIpOworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MC4x CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDYxLXBoeS1zdGFyZml2 ZS1BZGQtSkg3MTEwLVBDSUUtMi4wLVBIWS1kcml2ZXIucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDA2MS1waHktc3RhcmZpdmUtQWRkLUpINzExMC1QQ0lFLTIuMC1QSFktZHJpdmVy LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmQyNTFlNzA2 ZTkyOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2MS1w aHktc3RhcmZpdmUtQWRkLUpINzExMC1QQ0lFLTIuMC1QSFktZHJpdmVyLnBhdGNoCkBAIC0wLDAg KzEsMjI2IEBACitGcm9tIGZjZGM4Y2FhZmNmYmFjMzY3OGEzYjhhZWUxYjI0MWY0ZDVkMzdhMDkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0 YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDIwIEFwciAyMDIzIDE5OjAwOjQ5ICswODAwCitT dWJqZWN0OiBbUEFUQ0ggNjEvODRdIHBoeTogc3RhcmZpdmU6IEFkZCBKSDcxMTAgUENJRSAyLjAg UEhZIGRyaXZlcgorCitBZGQgU3RhcmZpdmUgSkg3MTEwIFNvQyBQQ0llIDIuMCBQSFkgZHJpdmVy IHN1cHBvcnQuCitQQ0llIDIuMCBQSFkgZGVmYXVsdCBjb25uZWN0IHRvIFBDSWUgY29udHJvbGxl ci4KK0J1dCBwY2llMCBQSFkgY2FuIGNvbm5lY3QgdG8gVVNCIDMuMCBjb250cm9sbGxlci4KKwor U2lnbmVkLW9mZi1ieTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgor LS0tCisgZHJpdmVycy9waHkvc3RhcmZpdmUvcGh5LWpoNzExMC1wY2llLmMgfCAyMDIgKysrKysr KysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKQor IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktamg3MTEwLXBjaWUu YworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvc3RhcmZpdmUvcGh5LWpoNzExMC1wY2llLmMg Yi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktamg3MTEwLXBjaWUuYworbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZmUwMjlkYWVmNjJlCistLS0gL2Rldi9udWxsCisr KysgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktamg3MTEwLXBjaWUuYworQEAgLTAsMCArMSwy MDIgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKysvKgorKyAqIFN0 YXJGaXZlIEpINzExMCBQQ0llIDIuMCBQSFkgZHJpdmVyCisrICoKKysgKiBDb3B5cmlnaHQgKEMp IDIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKiBBdXRob3I6IE1pbmRhIENo ZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKysgKi8KKysKKysjaW5jbHVkZSA8bGlu dXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGludXgvZXJy Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisrI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgor KyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BoeS9waHku aD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4 L3JlZ21hcC5oPgorKworKyNkZWZpbmUgUENJRV9LVkNPX0xFVkVMX09GRgkJKDB4MjgpCisrI2Rl ZmluZSBQQ0lFX1VTQjNfUEhZX1BMTF9DVExfT0ZGCSgweDdjKQorKyNkZWZpbmUgUENJRV9LVkNP X1RVTkVfU0lHTkFMX09GRgkoMHg4MCkKKysjZGVmaW5lIFBDSUVfVVNCM19QSFlfRU5BQkxFCQlC SVQoNCkKKysjZGVmaW5lIFBIWV9LVkNPX0ZJTkVfVFVORV9MRVZFTAkweDkxCisrI2RlZmluZSBQ SFlfS1ZDT19GSU5FX1RVTkVfU0lHTkFMUwkweGMKKysKKysjZGVmaW5lIFVTQl9QRFJTVE5fU1BM SVQJCUJJVCgxNykKKysKKysjZGVmaW5lIFBDSUVfUEhZX01PREUJCQlCSVQoMjApCisrI2RlZmlu ZSBQQ0lFX1BIWV9NT0RFX01BU0sJCUdFTk1BU0soMjEsIDIwKQorKyNkZWZpbmUgUENJRV9VU0Iz X0JVU19XSURUSF9NQVNLCUdFTk1BU0soMywgMikKKysjZGVmaW5lIFBDSUVfVVNCM19SQVRFX01B U0sJCUdFTk1BU0soNiwgNSkKKysjZGVmaW5lIFBDSUVfVVNCM19SWF9TVEFOREJZX01BU0sJQklU KDcpCisrI2RlZmluZSBQQ0lFX1VTQjNfUEhZX0VOQUJMRQkJQklUKDQpCisrCisrc3RydWN0IGpo NzExMF9wY2llX3BoeSB7CisrCXN0cnVjdCBwaHkgKnBoeTsKKysJc3RydWN0IHJlZ21hcCAqc3Rn X3N5c2NvbjsKKysJc3RydWN0IHJlZ21hcCAqc3lzX3N5c2NvbjsKKysJdm9pZCBfX2lvbWVtICpy ZWdzOworKwl1MzIgc3lzX3BoeV9jb25uZWN0OworKwl1MzIgc3RnX3BjaWVfbW9kZTsKKysJdTMy IHN0Z19wY2llX3VzYjsKKysJZW51bSBwaHlfbW9kZSBtb2RlOworK307CisrCisrc3RhdGljIGlu dCBqaDcxMTBfdXNiM19tb2RlX3NldChzdHJ1Y3Qgamg3MTEwX3BjaWVfcGh5ICpkYXRhKQorK3sK KysJaWYgKCFkYXRhLT5zdGdfc3lzY29uIHx8ICFkYXRhLT5zeXNfc3lzY29uKSB7CisrCQlkZXZf aW5mbygmZGF0YS0+cGh5LT5kZXYsICJkb24ndCBzdXBwb3J0IHVzYjMgbW9kZVxuIik7CisrCQly ZXR1cm4gLUVJTlZBTDsKKysJfQorKworKwlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+c3RnX3N5 c2NvbiwgZGF0YS0+c3RnX3BjaWVfbW9kZSwKKysJCQkgICBQQ0lFX1BIWV9NT0RFX01BU0ssIFBD SUVfUEhZX01PREUpOworKwlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+c3RnX3N5c2NvbiwgZGF0 YS0+c3RnX3BjaWVfdXNiLAorKwkJCSAgIFBDSUVfVVNCM19CVVNfV0lEVEhfTUFTSywgMCk7Cisr CXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lzY29uLCBkYXRhLT5zdGdfcGNpZV91c2Is CisrCQkJICAgUENJRV9VU0IzX1JBVEVfTUFTSywgMCk7CisrCXJlZ21hcF91cGRhdGVfYml0cyhk YXRhLT5zdGdfc3lzY29uLCBkYXRhLT5zdGdfcGNpZV91c2IsCisrCQkJICAgUENJRV9VU0IzX1JY X1NUQU5EQllfTUFTSywgMCk7CisrCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lzY29u LCBkYXRhLT5zdGdfcGNpZV91c2IsCisrCQkJICAgUENJRV9VU0IzX1BIWV9FTkFCTEUsIFBDSUVf VVNCM19QSFlfRU5BQkxFKTsKKysKKysJLyogQ29ubmVjdCB1c2IgMy4wIHBoeSBtb2RlICovCisr CXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zeXNfc3lzY29uLCBkYXRhLT5zeXNfcGh5X2Nvbm5l Y3QsCisrCQkJICAgVVNCX1BEUlNUTl9TUExJVCwgMCk7CisrCisrCS8qIENvbmZpZ3VhcmUgc3By ZWFkLXNwZWN0cnVtIG1vZGU6IGRvd24tc3ByZWFkLXNwZWN0cnVtICovCisrCXdyaXRlbChQQ0lF X1VTQjNfUEhZX0VOQUJMRSwgZGF0YS0+cmVncyArIFBDSUVfVVNCM19QSFlfUExMX0NUTF9PRkYp OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgamg3MTEwX3BjaWVfbW9kZV9z ZXQoc3RydWN0IGpoNzExMF9wY2llX3BoeSAqcGh5KQorK3sKKysJLyogUENJZSBNdWx0aS1QSFkg UExMIEtWQ08gR2FpbiBmaW5lIHR1bmUgc2V0dGluZ3M6ICovCisrCXdyaXRlbChQSFlfS1ZDT19G SU5FX1RVTkVfTEVWRUwsIHBoeS0+cmVncyArIFBDSUVfS1ZDT19MRVZFTF9PRkYpOworKwl3cml0 ZWwoUEhZX0tWQ09fRklORV9UVU5FX1NJR05BTFMsIHBoeS0+cmVncyArIFBDSUVfS1ZDT19UVU5F X1NJR05BTF9PRkYpOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wY2llX3BoeV9zZXRfbW9k ZShzdHJ1Y3QgcGh5ICpfcGh5LAorKwkJCQkgICAgZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3Vi bW9kZSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfcGNpZV9waHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0 YShfcGh5KTsKKysJaW50IHJldDsKKysKKysJaWYgKG1vZGUgPT0gcGh5LT5tb2RlKQorKwkJcmV0 dXJuIDA7CisrCisrCXN3aXRjaCAobW9kZSkgeworKwljYXNlIFBIWV9NT0RFX1VTQl9IT1NUOgor KwljYXNlIFBIWV9NT0RFX1VTQl9ERVZJQ0U6CisrCWNhc2UgUEhZX01PREVfVVNCX09URzoKKysJ CXJldCA9IGpoNzExMF91c2IzX21vZGVfc2V0KHBoeSk7CisrCQlpZiAocmV0KQorKwkJCXJldHVy biByZXQ7CisrCQlicmVhazsKKysJY2FzZSBQSFlfTU9ERV9QQ0lFOgorKwkJamg3MTEwX3BjaWVf bW9kZV9zZXQocGh5KTsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJcmV0dXJuIC1FSU5WQUw7 CisrCX0KKysKKysJZGV2X2luZm8oJl9waHktPmRldiwgIkNoYW5naW5nIHBoeSBtb2RlIHRvICVk XG4iLCBtb2RlKTsKKysJcGh5LT5tb2RlID0gbW9kZTsKKysKKysJcmV0dXJuIDA7CisrfQorKwor K3N0YXRpYyBpbnQgamg3MTEwX3BjaWVfcGh5X2luaXQoc3RydWN0IHBoeSAqX3BoeSkKKyt7Cisr CXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wY2llX3BoeV9leGl0KHN0cnVj dCBwaHkgKl9waHkpCisreworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVj dCBwaHlfb3BzIGpoNzExMF9wY2llX3BoeV9vcHMgPSB7CisrCS5pbml0CQk9IGpoNzExMF9wY2ll X3BoeV9pbml0LAorKwkuZXhpdAkJPSBqaDcxMTBfcGNpZV9waHlfZXhpdCwKKysJLnNldF9tb2Rl CT0gamg3MTEwX3BjaWVfcGh5X3NldF9tb2RlLAorKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisr fTsKKysKKytzdGF0aWMgaW50IGpoNzExMF9wY2llX3BoeV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGpoNzExMF9wY2llX3BoeSAqcGh5OworKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworKwlzdHJ1Y3QgcGh5X3Byb3ZpZGVyICpwaHlf cHJvdmlkZXI7CisrCXUzMiBhcmdzWzJdOworKworKwlwaHkgPSBkZXZtX2t6YWxsb2MoZGV2LCBz aXplb2YoKnBoeSksIEdGUF9LRVJORUwpOworKwlpZiAoIXBoeSkKKysJCXJldHVybiAtRU5PTUVN OworKworKwlwaHktPnJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwg MCk7CisrCWlmIChJU19FUlIocGh5LT5yZWdzKSkKKysJCXJldHVybiBQVFJfRVJSKHBoeS0+cmVn cyk7CisrCisrCXBoeS0+cGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgTlVMTCwgJmpoNzExMF9w Y2llX3BoeV9vcHMpOworKwlpZiAoSVNfRVJSKHBoeS0+cGh5KSkKKysJCXJldHVybiBkZXZfZXJy X3Byb2JlKGRldiwgUFRSX0VSUihwaHktPnJlZ3MpLAorKwkJCSJGYWlsZWQgdG8gbWFwIHBoeSBi YXNlXG4iKTsKKysKKysJcGh5LT5zeXNfc3lzY29uID0KKysJCXN5c2Nvbl9yZWdtYXBfbG9va3Vw X2J5X3BoYW5kbGVfYXJncyhwZGV2LT5kZXYub2Zfbm9kZSwKKysJCQkJCQkgICAgICJzdGFyZml2 ZSxzeXMtc3lzY29uIiwKKysJCQkJCQkgICAgIDEsIGFyZ3MpOworKworKwlpZiAoIUlTX0VSUl9P Ul9OVUxMKHBoeS0+c3lzX3N5c2NvbikpCisrCQlwaHktPnN5c19waHlfY29ubmVjdCA9IGFyZ3Nb MF07CisrCWVsc2UKKysJCXBoeS0+c3lzX3N5c2NvbiA9IE5VTEw7CisrCisrCXBoeS0+c3RnX3N5 c2NvbiA9CisrCQlzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlX2FyZ3MocGRldi0+ZGV2 Lm9mX25vZGUsCisrCQkJCQkJICAgICAic3RhcmZpdmUsc3RnLXN5c2NvbiIsCisrCQkJCQkJICAg ICAyLCBhcmdzKTsKKysKKysJaWYgKCFJU19FUlJfT1JfTlVMTChwaHktPnN0Z19zeXNjb24pKSB7 CisrCQlwaHktPnN0Z19wY2llX21vZGUgPSBhcmdzWzBdOworKwkJcGh5LT5zdGdfcGNpZV91c2Ig PSBhcmdzWzFdOworKwl9IGVsc2UgeworKwkJcGh5LT5zdGdfc3lzY29uID0gTlVMTDsKKysJfQor KworKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwaHkpOworKwlwaHlfc2V0X2RydmRhdGEo cGh5LT5waHksIHBoeSk7CisrCXBoeV9wcm92aWRlciA9IGRldm1fb2ZfcGh5X3Byb3ZpZGVyX3Jl Z2lzdGVyKGRldiwgb2ZfcGh5X3NpbXBsZV94bGF0ZSk7CisrCisrCXJldHVybiBQVFJfRVJSX09S X1pFUk8ocGh5X3Byb3ZpZGVyKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcGNpZV9waHlf cmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlwbGF0Zm9ybV9zZXRf ZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF9wY2llX3BoeV9vZl9tYXRjaFtdID0geworKwl7 IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wY2llLXBoeSIgfSwKKysJeyAvKiBzZW50 aW5lbCAqLyB9LAorK307CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3MTEwX3BjaWVfcGh5 X29mX21hdGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBqaDcxMTBfcGNp ZV9waHlfZHJpdmVyID0geworKwkucHJvYmUJPSBqaDcxMTBfcGNpZV9waHlfcHJvYmUsCisrCS5y ZW1vdmUJPSBqaDcxMTBfcGNpZV9waHlfcmVtb3ZlLAorKwkuZHJpdmVyID0geworKwkJLm9mX21h dGNoX3RhYmxlCT0gamg3MTEwX3BjaWVfcGh5X29mX21hdGNoLAorKwkJLm5hbWUgID0gImpoNzEx MC1wY2llLXBoeSIsCisrCX0KKyt9OworK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoamg3MTEwX3Bj aWVfcGh5X2RyaXZlcik7CisrCisrTU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAg UENJZSAyLjAgUEhZIGRyaXZlciIpOworK01PRFVMRV9BVVRIT1IoIk1pbmRhIENoZW4gPG1pbmRh LmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4iKTsKKytNT0RVTEVfTElDRU5TRSgiR1BMIik7CistLSAK KzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2Mi1kdC1i aW5kaW5ncy11c2ItQWRkLVN0YXJGaXZlLUpINzExMC1VU0ItY29udHJvbGxlci5wYXRjaCBiL3Ny Y3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDYyLWR0LWJpbmRpbmdzLXVzYi1BZGQtU3RhckZpdmUt Skg3MTEwLVVTQi1jb250cm9sbGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAuLjJjNDViNmMzZDA1ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp bnV4Ni4zL3BhdGNoZXMvMDA2Mi1kdC1iaW5kaW5ncy11c2ItQWRkLVN0YXJGaXZlLUpINzExMC1V U0ItY29udHJvbGxlci5wYXRjaApAQCAtMCwwICsxLDE1NyBAQAorRnJvbSBhMWYxZTc1YTE0ZTNi ODNmZjIzOGI3NzA2MTI5Y2I0YTRkMzljZmEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCAy MCBBcHIgMjAyMyAxOTowMDo1MCArMDgwMAorU3ViamVjdDogW1BBVENIIDYyLzg0XSBkdC1iaW5k aW5nczogdXNiOiBBZGQgU3RhckZpdmUgSkg3MTEwIFVTQiBjb250cm9sbGVyCisKK1N0YXJGaXZl IEpINzExMCBwbGF0Zm9ybXMgVVNCIGhhdmUgYSB3cmFwcGVyIG1vZHVsZSBhcm91bmQKK3RoZSBD YWRlbmNlIFVTQlNTLURSRCBjb250cm9sbGVyLiBBZGQgYmluZGluZyBpbmZvcm1hdGlvbiBkb2MK K2ZvciB0aGF0LgorCitTaWduZWQtb2ZmLWJ5OiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJm aXZldGVjaC5jb20+CitSZXZpZXdlZC1ieTogUGV0ZXIgQ2hlbiA8cGV0ZXIuY2hlbkBrZXJuZWwu b3JnPgorUmV2aWV3ZWQtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgor LS0tCisgLi4uL2JpbmRpbmdzL3VzYi9zdGFyZml2ZSxqaDcxMTAtdXNiLnlhbWwgICAgIHwgMTMx ICsrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKQor IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNi L3N0YXJmaXZlLGpoNzExMC11c2IueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9zdGFyZml2ZSxqaDcxMTAtdXNiLnlhbWwgYi9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNiL3N0YXJmaXZlLGpoNzExMC11c2IueWFtbAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZTZiZDhhNTgzZGEzCist LS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNi L3N0YXJmaXZlLGpoNzExMC11c2IueWFtbAorQEAgLTAsMCArMSwxMzEgQEAKKysjIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZSkKKyslWUFNTCAx LjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3VzYi9zdGFyZml2 ZSxqaDcxMTAtdXNiLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEt c2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBDYWRlbmNlIFVT QlNTLURSRCBTb0MgY29udHJvbGxlcgorKworK21haW50YWluZXJzOgorKyAgLSBNaW5kYSBDaGVu IDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CisrCisrcHJvcGVydGllczoKKysgIGNvbXBh dGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtdXNiCisrCisrICByZWc6CisrICAg IGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IE9URyBjb250cm9sbGVyIHJlZ2lzdGVycwor KyAgICAgIC0gZGVzY3JpcHRpb246IFhIQ0kgSG9zdCBjb250cm9sbGVyIHJlZ2lzdGVycworKyAg ICAgIC0gZGVzY3JpcHRpb246IERFVklDRSBjb250cm9sbGVyIHJlZ2lzdGVycworKworKyAgcmVn LW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBvdGcKKysgICAgICAtIGNvbnN0 OiB4aGNpCisrICAgICAgLSBjb25zdDogZGV2CisrCisrICBpbnRlcnJ1cHRzOgorKyAgICBpdGVt czoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBYSENJIGhvc3QgY29udHJvbGxlciBpbnRlcnJ1cHQK KysgICAgICAtIGRlc2NyaXB0aW9uOiBEZXZpY2UgY29udHJvbGxlciBpbnRlcnJ1cHQKKysgICAg ICAtIGRlc2NyaXB0aW9uOiBPVEcvRFJEIGNvbnRyb2xsZXIgaW50ZXJydXB0CisrCisrICBpbnRl cnJ1cHQtbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IGhvc3QKKysgICAgICAt IGNvbnN0OiBwZXJpcGhlcmFsCisrICAgICAgLSBjb25zdDogb3RnCisrCisrICBjbG9ja3M6Cisr ICAgIGl0ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IGxvdyBwb3dlciBjbG9jaworKyAgICAg IC0gZGVzY3JpcHRpb246IFNUQiBjbG9jaworKyAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9j aworKyAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9jaworKyAgICAgIC0gZGVzY3JpcHRpb246 IFVUTUkgQVBCIGNsb2NrCisrCisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAg LSBjb25zdDogbHBtCisrICAgICAgLSBjb25zdDogc3RiCisrICAgICAgLSBjb25zdDogYXBiCisr ICAgICAgLSBjb25zdDogYXhpCisrICAgICAgLSBjb25zdDogdXRtaV9hcGIKKysKKysgIHJlc2V0 czoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogUG93ZXIgdXAgcmVzZXQKKysg ICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2sgcmVzZXQKKysgICAgICAtIGRlc2NyaXB0aW9u OiBBWEkgY2xvY2sgcmVzZXQKKysgICAgICAtIGRlc2NyaXB0aW9uOiBVVE1JIEFQQiBjbG9jayBy ZXNldAorKworKyAgcmVzZXQtbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHB3 cnVwCisrICAgICAgLSBjb25zdDogYXBiCisrICAgICAgLSBjb25zdDogYXhpCisrICAgICAgLSBj b25zdDogdXRtaV9hcGIKKysKKysgIHN0YXJmaXZlLHN0Zy1zeXNjb246CisrICAgICRyZWY6IC9z Y2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3BoYW5kbGUtYXJyYXkKKysgICAgaXRlbXM6 CisrICAgICAgLSAgaXRlbXM6CisrICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBwaGFuZGxlIHRv IFN5c3RlbSBSZWdpc3RlciBDb250cm9sbGVyIHN0Z19zeXNjb24gbm9kZS4KKysgICAgICAgICAg IC0gZGVzY3JpcHRpb246IGRyIG1vZGUgcmVnaXN0ZXIgb2Zmc2V0IG9mIFNUR19TWVNDT05TQUlG X19TWVNDRkcgcmVnaXN0ZXIgZm9yIFVTQi4KKysgICAgZGVzY3JpcHRpb246CisrICAgICAgVGhl IHBoYW5kbGUgdG8gU3lzdGVtIFJlZ2lzdGVyIENvbnRyb2xsZXIgc3lzY29uIG5vZGUgYW5kIHRo ZSBvZmZzZXQKKysgICAgICBvZiBTVEdfU1lTQ09OU0FJRl9fU1lTQ0ZHIHJlZ2lzdGVyIGZvciBV U0IuCisrCisrICBkcl9tb2RlOgorKyAgICBlbnVtOiBbaG9zdCwgb3RnLCBwZXJpcGhlcmFsXQor KworKyAgcGh5czoKKysgICAgbWluSXRlbXM6IDEKKysgICAgbWF4SXRlbXM6IDIKKysKKysgIHBo eS1uYW1lczoKKysgICAgbWluSXRlbXM6IDEKKysgICAgbWF4SXRlbXM6IDIKKysgICAgaXRlbXM6 CisrICAgICAgYW55T2Y6CisrICAgICAgICAtIGNvbnN0OiB1c2IyCisrICAgICAgICAtIGNvbnN0 OiB1c2IzCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0gcmVnCisrICAtIHJl Zy1uYW1lcworKyAgLSBpbnRlcnJ1cHRzCisrICAtIGludGVycnVwdC1uYW1lcworKyAgLSBjbG9j a3MKKysgIC0gcmVzZXRzCisrICAtIHN0YXJmaXZlLHN0Zy1zeXNjb24KKysgIC0gZHJfbW9kZQor KworK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8Cisr ICAgIHVzYkAxMDEwMDAwMCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC11c2IiOworKyAgICAgICAgcmVnID0gPDB4MTAxMDAwMDAgMHgxMDAwMD4sCisrICAgICAgICAg ICAgICA8MHgxMDExMDAwMCAweDEwMDAwPiwKKysgICAgICAgICAgICAgIDwweDEwMTIwMDAwIDB4 MTAwMDA+OworKyAgICAgICAgcmVnLW5hbWVzID0gIm90ZyIsICJ4aGNpIiwgImRldiI7CisrICAg ICAgICBpbnRlcnJ1cHRzID0gPDEwMD4sIDwxMDg+LCA8MTEwPjsKKysgICAgICAgIGludGVycnVw dC1uYW1lcyA9ICJob3N0IiwgInBlcmlwaGVyYWwiLCAib3RnIjsKKysgICAgICAgIGNsb2NrcyA9 IDwmc3lzY3JnIDQ+LAorKyAgICAgICAgICAgICAgICAgPCZzdGdjcmcgNT4sCisrICAgICAgICAg ICAgICAgICA8JnN0Z2NyZyAxPiwKKysgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDM+LAorKyAg ICAgICAgICAgICAgICAgPCZzdGdjcmcgMj47CisrICAgICAgICBjbG9jay1uYW1lcyA9ICJscG0i LCAic3RiIiwgImFwYiIsICJheGkiLCAidXRtaV9hcGIiOworKyAgICAgICAgcmVzZXRzID0gPCZz dGdjcmcgMTA+LAorKyAgICAgICAgICAgICAgICAgPCZzdGdjcmcgOD4sCisrICAgICAgICAgICAg ICAgICA8JnN0Z2NyZyA3PiwKKysgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDk+OworKyAgICAg ICAgcmVzZXQtbmFtZXMgPSAicHdydXAiLCAiYXBiIiwgImF4aSIsICJ1dG1pX2FwYiI7CisrICAg ICAgICBzdGFyZml2ZSxzdGctc3lzY29uID0gPCZzdGdfc3lzY29uIDB4ND47CisrICAgICAgICBk cl9tb2RlID0gImhvc3QiOworKyAgICB9OworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjMtdXNiLWNkbnMzLUFkZC1TdGFyRml2ZS1KSDcxMTAt VVNCLWRyaXZlci5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDYzLXVzYi1jZG5z My1BZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1kcml2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOTRhNDBhMzU3MTRiMgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDYzLXVzYi1jZG5zMy1BZGQtU3RhckZpdmUtSkg3 MTEwLVVTQi1kcml2ZXIucGF0Y2gKQEAgLTAsMCArMSw0NjcgQEAKK0Zyb20gNWZkMWQ1OGM0YjA2 ZjVhNWNjY2M5YzQ3MTYwNmRkZjZkYTRhZGJiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFRodSwg MjAgQXByIDIwMjMgMTk6MDA6NTEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2My84NF0gdXNiOiBj ZG5zMzogQWRkIFN0YXJGaXZlIEpINzExMCBVU0IgZHJpdmVyCisKK0FkZHMgU3BlY2lmaWMgR2x1 ZSBsYXllciB0byBzdXBwb3J0IFVTQiBwZXJpcGhlcmFscyBvbgorU3RhckZpdmUgSkg3MTEwIFNv Qy4KK1RoZXJlIGlzIGEgQ2FkZW5jZSBVU0IzIGNvcmUgZm9yIEpINzExMCBTb0NzLCB0aGUgY2Ru cworY29yZSBpcyB0aGUgY2hpbGQgb2YgdGhpcyBVU0Igd3JhcHBlciBtb2R1bGUgZGV2aWNlLgor CitTaWduZWQtb2ZmLWJ5OiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+ CitBY2tlZC1ieTogUGV0ZXIgQ2hlbiA8cGV0ZXIuY2hlbkBrZXJuZWwub3JnPgorLS0tCisgZHJp dmVycy91c2IvY2RuczMvS2NvbmZpZyAgICAgICAgICB8ICAxMSArCisgZHJpdmVycy91c2IvY2Ru czMvTWFrZWZpbGUgICAgICAgICB8ICAgMSArCisgZHJpdmVycy91c2IvY2RuczMvY2RuczMtc3Rh cmZpdmUuYyB8IDM5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGRyaXZlcnMvdXNi L2NkbnMzL2NvcmUuaCAgICAgICAgICAgfCAgIDMgKworIDQgZmlsZXMgY2hhbmdlZCwgNDA1IGlu c2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy91c2IvY2RuczMvY2RuczMt c3RhcmZpdmUuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2RuczMvS2NvbmZpZyBiL2Ry aXZlcnMvdXNiL2NkbnMzL0tjb25maWcKK2luZGV4IGI5OGNhMGExMzUyYS4uMGE1MTRiNTkxNTI3 IDEwMDY0NAorLS0tIGEvZHJpdmVycy91c2IvY2RuczMvS2NvbmZpZworKysrIGIvZHJpdmVycy91 c2IvY2RuczMvS2NvbmZpZworQEAgLTc4LDYgKzc4LDE3IEBAIGNvbmZpZyBVU0JfQ0ROUzNfSU1Y CisgCisgCSAgRm9yIGV4YW1wbGUsIGlteDhxbSBhbmQgaW14OHF4cC4KKyAKKytjb25maWcgVVNC X0NETlMzX1NUQVJGSVZFCisrCXRyaXN0YXRlICJDYWRlbmNlIFVTQjMgc3VwcG9ydCBvbiBTdGFy Rml2ZSBTb0MgcGxhdGZvcm1zIgorKwlkZXBlbmRzIG9uIEFSQ0hfU1RBUkZJVkUgfHwgQ09NUElM RV9URVNUCisrCWhlbHAKKysJICBTYXkgJ1knIG9yICdNJyBoZXJlIGlmIHlvdSBhcmUgYnVpbGRp bmcgZm9yIFN0YXJGaXZlIFNvQ3MKKysJICBwbGF0Zm9ybXMgdGhhdCBjb250YWluIENhZGVuY2Ug VVNCMyBjb250cm9sbGVyIGNvcmUuCisrCisrCSAgZS5nLiBKSDcxMTAuCisrCisrCSAgSWYgeW91 IGNob29zZSB0byBidWlsZCB0aGlzIGRyaXZlciBhcyBtb2R1bGUgaXQgd2lsbAorKwkgIGJlIGR5 bmFtaWNhbGx5IGxpbmtlZCBhbmQgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGNkbnMzLXN0YXJmaXZl LmtvCisgZW5kaWYKKyAKKyBpZiBVU0JfQ0ROU19TVVBQT1JUCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvY2RuczMvTWFrZWZpbGUgYi9kcml2ZXJzL3VzYi9jZG5zMy9NYWtlZmlsZQoraW5kZXgg NjFlZGIyZjg5Mjc2Li40OGRmYWU3NWI1YWEgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3VzYi9jZG5z My9NYWtlZmlsZQorKysrIGIvZHJpdmVycy91c2IvY2RuczMvTWFrZWZpbGUKK0BAIC0yNCw2ICsy NCw3IEBAIGVuZGlmCisgb2JqLSQoQ09ORklHX1VTQl9DRE5TM19QQ0lfV1JBUCkJCSs9IGNkbnMz LXBjaS13cmFwLm8KKyBvYmotJChDT05GSUdfVVNCX0NETlMzX1RJKQkJCSs9IGNkbnMzLXRpLm8K KyBvYmotJChDT05GSUdfVVNCX0NETlMzX0lNWCkJCQkrPSBjZG5zMy1pbXgubworK29iai0kKENP TkZJR19VU0JfQ0ROUzNfU1RBUkZJVkUpCQkrPSBjZG5zMy1zdGFyZml2ZS5vCisgCisgY2Ruc3At dWRjLXBjaS15CQkJCQk6PSBjZG5zcC1wY2kubworIAorZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L2NkbnMzL2NkbnMzLXN0YXJmaXZlLmMgYi9kcml2ZXJzL3VzYi9jZG5zMy9jZG5zMy1zdGFyZml2 ZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5hZmUxYzY2NTI2 NjAKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NkbnMzLXN0YXJmaXZl LmMKK0BAIC0wLDAgKzEsMzkwIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAKKysvKioKKysgKiBjZG5zMy1zdGFyZml2ZS5jIC0gU3RhckZpdmUgc3BlY2lmaWMgR2x1ZSBs YXllciBmb3IgQ2FkZW5jZSBVU0IgQ29udHJvbGxlcgorKyAqCisrICogQ29weXJpZ2h0IChDKSAy MDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICoKKysgKiBBdXRob3I6CVlhbmhv bmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+CisrICogQXV0aG9yOglNYXNv biBIdW8gPG1hc29uLmh1b0BzdGFyZml2ZXRlY2guY29tPgorKyAqIEF1dGhvcjoJTWluZGEgQ2hl biA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorKyAqLworKworKyNpbmNsdWRlIDxsaW51 eC9iaXRzLmg+CisrI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KKysjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorKyNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1ZGUg PGxpbnV4L2lvLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisrI2luY2x1ZGUg PGxpbnV4L3JlZ21hcC5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKyNpbmNsdWRlIDxs aW51eC91c2Ivb3RnLmg+CisrI2luY2x1ZGUgImNvcmUuaCIKKysKKysjZGVmaW5lIFVTQl9TVFJB UF9IT1NUCQkJQklUKDE3KQorKyNkZWZpbmUgVVNCX1NUUkFQX0RFVklDRQkJQklUKDE4KQorKyNk ZWZpbmUgVVNCX1NUUkFQX01BU0sJCQlHRU5NQVNLKDE4LCAxNikKKysKKysjZGVmaW5lIFVTQl9T VVNQRU5ETV9IT1NUCQlCSVQoMTkpCisrI2RlZmluZSBVU0JfU1VTUEVORE1fTUFTSwkJQklUKDE5 KQorKyNkZWZpbmUgQ0ROU19JUlFfV0FLRVVQX0lOREVYCQkzCisrCisrc3RydWN0IGNkbnNfc3Rh cmZpdmUgeworKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisrCXN0cnVjdCBwaHkgKnVzYjJfcGh5Owor KwlzdHJ1Y3QgcGh5ICp1c2IzX3BoeTsKKysJc3RydWN0IHJlZ21hcCAqc3RnX3N5c2NvbjsKKysJ c3RydWN0IHJlc2V0X2NvbnRyb2wgKnJlc2V0czsKKysJc3RydWN0IGNsa19idWxrX2RhdGEgKmNs a3M7CisrCWludCBudW1fY2xrczsKKysJZW51bSBwaHlfbW9kZSBwaHlfbW9kZTsKKysJdTMyIHN0 Z191c2JfbW9kZTsKKyt9OworKworK3N0YXRpYyBpbnQgc2V0X3BoeV9wb3dlcl9vbihzdHJ1Y3Qg Y2Ruc19zdGFyZml2ZSAqZGF0YSkKKyt7CisrCWludCByZXQ7CisrCisrCXJldCA9IHBoeV9wb3dl cl9vbihkYXRhLT51c2IyX3BoeSk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwly ZXQgPSBwaHlfcG93ZXJfb24oZGF0YS0+dXNiM19waHkpOworKwlpZiAocmV0KQorKwkJcGh5X3Bv d2VyX29mZihkYXRhLT51c2IyX3BoeSk7CisrCisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRp YyB2b2lkIGNkbnNfbW9kZV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisrCQkJ ICAgc3RydWN0IGNkbnNfc3RhcmZpdmUgKmRhdGEpCisreworKwllbnVtIHVzYl9kcl9tb2RlIG1v ZGU7CisrCisrCW1vZGUgPSB1c2JfZ2V0X2RyX21vZGUoJnBkZXYtPmRldik7CisrCisrCXN3aXRj aCAobW9kZSkgeworKwljYXNlIFVTQl9EUl9NT0RFX0hPU1Q6CisrCQlyZWdtYXBfdXBkYXRlX2Jp dHMoZGF0YS0+c3RnX3N5c2NvbiwKKysJCQkJICAgZGF0YS0+c3RnX3VzYl9tb2RlLAorKwkJCQkg ICBVU0JfU1RSQVBfTUFTSywKKysJCQkJICAgVVNCX1NUUkFQX0hPU1QpOworKwkJcmVnbWFwX3Vw ZGF0ZV9iaXRzKGRhdGEtPnN0Z19zeXNjb24sCisrCQkJCSAgIGRhdGEtPnN0Z191c2JfbW9kZSwK KysJCQkJICAgVVNCX1NVU1BFTkRNX01BU0ssCisrCQkJCSAgIFVTQl9TVVNQRU5ETV9IT1NUKTsK KysJCWRhdGEtPnBoeV9tb2RlID0gUEhZX01PREVfVVNCX0hPU1Q7CisrCQlicmVhazsKKysKKysJ Y2FzZSBVU0JfRFJfTU9ERV9QRVJJUEhFUkFMOgorKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEt PnN0Z19zeXNjb24sIGRhdGEtPnN0Z191c2JfbW9kZSwKKysJCQkJICAgVVNCX1NUUkFQX01BU0ss IFVTQl9TVFJBUF9ERVZJQ0UpOworKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnN0Z19zeXNj b24sIGRhdGEtPnN0Z191c2JfbW9kZSwKKysJCQkJICAgVVNCX1NVU1BFTkRNX01BU0ssIDApOwor KwkJZGF0YS0+cGh5X21vZGUgPSBQSFlfTU9ERV9VU0JfREVWSUNFOworKwkJYnJlYWs7CisrCisr CWNhc2UgVVNCX0RSX01PREVfT1RHOgorKwkJZGF0YS0+cGh5X21vZGUgPSBQSFlfTU9ERV9VU0Jf T1RHOworKwlkZWZhdWx0OgorKwkJYnJlYWs7CisrCX0KKyt9CisrCisrc3RhdGljIGludCBjZG5z X2Nsa19yc3RfaW5pdChzdHJ1Y3QgY2Ruc19zdGFyZml2ZSAqZGF0YSkKKyt7CisrCWludCByZXQ7 CisrCisrCXJldCA9IGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKGRhdGEtPm51bV9jbGtzLCBkYXRh LT5jbGtzKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRhdGEtPmRldiwg cmV0LAorKwkJCQkgICAgICJmYWlsZWQgdG8gZW5hYmxlIGNsb2Nrc1xuIik7CisrCisrCXJldCA9 IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoZGF0YS0+cmVzZXRzKTsKKysJaWYgKHJldCkgeworKwkJ ZGV2X2VycihkYXRhLT5kZXYsICJmYWlsZWQgdG8gcmVzZXQgY2xvY2tzXG4iKTsKKysJCWdvdG8g ZXJyX2Nsa19pbml0OworKwl9CisrCisrCXJldHVybiByZXQ7CisrCisrZXJyX2Nsa19pbml0Ogor KwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhLT5udW1fY2xrcywgZGF0YS0+Y2xrcyk7 CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyB2b2lkIGNkbnNfY2xrX3JzdF9kZWluaXQo c3RydWN0IGNkbnNfc3RhcmZpdmUgKmRhdGEpCisreworKwlyZXNldF9jb250cm9sX2Fzc2VydChk YXRhLT5yZXNldHMpOworKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhLT5udW1fY2xr cywgZGF0YS0+Y2xrcyk7CisrfQorKworK3N0YXRpYyBpbnQgY2Ruc19zdGFyZml2ZV9waHlfaW5p dChzdHJ1Y3QgY2Ruc19zdGFyZml2ZSAqZGF0YSkKKyt7CisrCWludCByZXQ7CisrCisrCXJldCA9 IHBoeV9pbml0KGRhdGEtPnVzYjJfcGh5KTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7Cisr CisrCXJldCA9IHBoeV9pbml0KGRhdGEtPnVzYjNfcGh5KTsKKysJaWYgKHJldCkKKysJCWdvdG8g ZXJyX3BoeTNfaW5pdDsKKysKKysJcGh5X3NldF9tb2RlKGRhdGEtPnVzYjJfcGh5LCBkYXRhLT5w aHlfbW9kZSk7CisrCXBoeV9zZXRfbW9kZShkYXRhLT51c2IzX3BoeSwgZGF0YS0+cGh5X21vZGUp OworKworKwlyZXQgPSBzZXRfcGh5X3Bvd2VyX29uKGRhdGEpOworKwlpZiAocmV0KQorKwkJZ290 byBlcnJfcGh5X3Bvd2VyX29uOworKworKwlyZXR1cm4gMDsKKysKKytlcnJfcGh5X3Bvd2VyX29u OgorKwlwaHlfZXhpdChkYXRhLT51c2IzX3BoeSk7CisrZXJyX3BoeTNfaW5pdDoKKysJcGh5X2V4 aXQoZGF0YS0+dXNiMl9waHkpOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9pZCBj ZG5zX3N0YXJmaXZlX3BoeV9kZWluaXQoc3RydWN0IGNkbnNfc3RhcmZpdmUgKmRhdGEpCisrewor KwlwaHlfcG93ZXJfb2ZmKGRhdGEtPnVzYjNfcGh5KTsKKysJcGh5X3Bvd2VyX29mZihkYXRhLT51 c2IyX3BoeSk7CisrCXBoeV9leGl0KGRhdGEtPnVzYjNfcGh5KTsKKysJcGh5X2V4aXQoZGF0YS0+ dXNiMl9waHkpOworK30KKysKKytzdGF0aWMgaW50IGNkbnNfc3RhcmZpdmVfcGxhdGZvcm1fZGV2 aWNlX2FkZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorKwkJCQkJICAgICBzdHJ1Y3Qg Y2Ruc19zdGFyZml2ZSAqZGF0YSkKKyt7CisrCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNkbnMz OworKwlzdHJ1Y3QgcmVzb3VyY2UJY2Ruc19yZXNbQ0ROU19SRVNPVVJDRVNfTlVNXSwgKnJlczsK KysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKysJY29uc3QgY2hhciAqcmVnX25h bWVbQ0ROU19JT01FTV9SRVNPVVJDRVNfTlVNXSA9IHsib3RnIiwgInhoY2kiLCAiZGV2In07Cisr CWNvbnN0IGNoYXIgKmlycV9uYW1lW0NETlNfSVJRX1JFU09VUkNFU19OVU1dID0geyJob3N0Iiwg InBlcmlwaGVyYWwiLCAib3RnIiwgIndha2V1cCJ9OworKwlpbnQgaSwgcmV0LCByZXNfaWR4ID0g MDsKKysKKysJY2RuczMgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoImNkbnMtdXNiMyIsIFBMQVRG T1JNX0RFVklEX0FVVE8pOworKwlpZiAoIWNkbnMzKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUo ZGV2LCAtRU5PTUVNLAorKwkJCQkgICAgICJjb3VsZG4ndCBhbGxvYyBjZG5zMyB1c2IgZGV2aWNl XG4iKTsKKysKKysJY2RuczMtPmRldi5wYXJlbnQgPSBkZXY7CisrCW1lbXNldChjZG5zX3Jlcywg MCwgc2l6ZW9mKGNkbnNfcmVzKSk7CisrCisrCWZvciAoaSA9IDA7IGkgPCBDRE5TX0lPTUVNX1JF U09VUkNFU19OVU07IGkrKykgeworKwkJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFt ZShwZGV2LCBJT1JFU09VUkNFX01FTSwgcmVnX25hbWVbaV0pOworKwkJaWYgKCFyZXMpIHsKKysJ CQlyZXQgPSBkZXZfZXJyX3Byb2JlKGRldiwKKysJCQkJCSAgICAtRU5YSU8sCisrCQkJCQkgICAg ImNvdWxkbid0IGdldCAlcyByZWcgcmVzb3VyY2VcbiIsCisrCQkJCQkgICAgcmVnX25hbWVbaV0p OworKwkJCWdvdG8gZnJlZV9tZW1vcnk7CisrCQl9CisrCQljZG5zX3Jlc1tyZXNfaWR4XSA9ICpy ZXM7CisrCQlyZXNfaWR4Kys7CisrCX0KKysKKysJZm9yIChpID0gMDsgaSA8IENETlNfSVJRX1JF U09VUkNFU19OVU07IGkrKykgeworKwkJaWYgKGkgPT0gQ0ROU19JUlFfV0FLRVVQX0lOREVYKSB7 CisrCQkJcmV0ID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWVfb3B0aW9uYWwocGRldiwgaXJxX25h bWVbaV0pOworKwkJCWlmIChyZXQgPCAwKQorKwkJCQljb250aW51ZTsKKysJCX0gZWxzZSB7Cisr CQkJcmV0ID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUocGRldiwgaXJxX25hbWVbaV0pOworKwkJ CWlmIChyZXQgPCAwKSB7CisrCQkJCWRldl9lcnIoZGV2LCAiY291bGRuJ3QgZ2V0ICVzIGlycVxu IiwgaXJxX25hbWVbaV0pOworKwkJCQlnb3RvIGZyZWVfbWVtb3J5OworKwkJCX0KKysJCX0KKysJ CWNkbnNfcmVzW3Jlc19pZHhdLnN0YXJ0ID0gcmV0OworKwkJY2Ruc19yZXNbcmVzX2lkeF0uZW5k ID0gcmV0OworKwkJY2Ruc19yZXNbcmVzX2lkeF0uZmxhZ3MgPSBJT1JFU09VUkNFX0lSUTsKKysJ CWNkbnNfcmVzW3Jlc19pZHhdLm5hbWUgPSBpcnFfbmFtZVtpXTsKKysJCXJlc19pZHgrKzsKKysJ fQorKworKwlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhjZG5zMywgY2Ruc19y ZXMsIHJlc19pZHgpOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgImNvdWxkbid0IGFk ZCByZXMgdG8gY2RuczMgZGV2aWNlXG4iKTsKKysJCWdvdG8gZnJlZV9tZW1vcnk7CisrCX0KKysK KysJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChjZG5zMyk7CisrCWlmIChyZXQpIHsKKysJCWRl dl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGNkbnMzIGRldmljZVxuIik7CisrCQlnb3Rv IGZyZWVfbWVtb3J5OworKwl9CisrCisrCXJldHVybiByZXQ7CisrZnJlZV9tZW1vcnk6CisrCXBs YXRmb3JtX2RldmljZV9wdXQoY2RuczMpOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMg aW50IGNkbnNfc3RhcmZpdmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7 CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisrCXN0cnVjdCBjZG5zX3N0YXJm aXZlICpkYXRhOworKwl1bnNpZ25lZCBpbnQgYXJnczsKKysJaW50IHJldDsKKysKKysJZGF0YSA9 IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOworKwlpZiAoIWRh dGEpCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwg ZGF0YSk7CisrCisrCWRhdGEtPmRldiA9IGRldjsKKysKKysJZGF0YS0+c3RnX3N5c2NvbiA9Cisr CQlzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlX2FyZ3MocGRldi0+ZGV2Lm9mX25vZGUs CisrCQkJCQkJICAgICAic3RhcmZpdmUsc3RnLXN5c2NvbiIsIDEsICZhcmdzKTsKKysKKysJaWYg KElTX0VSUihkYXRhLT5zdGdfc3lzY29uKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwg UFRSX0VSUihkYXRhLT5zdGdfc3lzY29uKSwKKysJCQkJICAgICAiRmFpbGVkIHRvIHBhcnNlIHN0 YXJmaXZlLHN0Zy1zeXNjb25cbiIpOworKworKwlkYXRhLT5zdGdfdXNiX21vZGUgPSBhcmdzOwor KworKwlkYXRhLT5udW1fY2xrcyA9IGRldm1fY2xrX2J1bGtfZ2V0X2FsbChkYXRhLT5kZXYsICZk YXRhLT5jbGtzKTsKKysJaWYgKGRhdGEtPm51bV9jbGtzIDwgMCkKKysJCXJldHVybiBkZXZfZXJy X3Byb2JlKGRhdGEtPmRldiwgLUVOT0RFViwKKysJCQkJICAgICAiRmFpbGVkIHRvIGdldCBjbG9j a3NcbiIpOworKworKwlkYXRhLT5yZXNldHMgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfYXJyYXlfZ2V0 X2V4Y2x1c2l2ZShkYXRhLT5kZXYpOworKwlpZiAoSVNfRVJSKGRhdGEtPnJlc2V0cykpCisrCQly ZXR1cm4gZGV2X2Vycl9wcm9iZShkYXRhLT5kZXYsIFBUUl9FUlIoZGF0YS0+cmVzZXRzKSwKKysJ CQkJICAgICAiRmFpbGVkIHRvIGdldCByZXNldHMiKTsKKysKKysJZGF0YS0+dXNiMl9waHkgPSBk ZXZtX3BoeV9vcHRpb25hbF9nZXQoZGV2LCAidXNiMiIpOworKwlpZiAoSVNfRVJSKGRhdGEtPnVz YjJfcGh5KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihkYXRhLT51c2Iy X3BoeSksCisrCQkJCSAgICAiRmFpbGVkIHRvIHBhcnNlIHVzYjIgUEhZXG4iKTsKKysKKysJZGF0 YS0+dXNiM19waHkgPSBkZXZtX3BoeV9vcHRpb25hbF9nZXQoZGV2LCAidXNiMyIpOworKwlpZiAo SVNfRVJSKGRhdGEtPnVzYjNfcGh5KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRS X0VSUihkYXRhLT51c2IzX3BoeSksCisrCQkJCSAgICAiRmFpbGVkIHRvIHBhcnNlIHVzYjMgUEhZ XG4iKTsKKysKKysJY2Ruc19tb2RlX2luaXQocGRldiwgZGF0YSk7CisrCisrCXJldCA9IGNkbnNf Y2xrX3JzdF9pbml0KGRhdGEpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcmV0 ID0gY2Ruc19zdGFyZml2ZV9waHlfaW5pdChkYXRhKTsKKysJaWYgKHJldCkgeworKwkJZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gaW5pdCBQSFlcbiIpOworKwkJZ290byBlcnJfY2xrX2luaXQ7Cisr CX0KKysKKysJcmV0ID0gY2Ruc19zdGFyZml2ZV9wbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYsIGRh dGEpOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBjcmVhdGUgY2hp bGRyZW5cbiIpOworKwkJZ290byBlcnJfcGh5X2luaXQ7CisrCX0KKysKKysJZGV2aWNlX3NldF93 YWtldXBfY2FwYWJsZShkZXYsIHRydWUpOworKwlwbV9ydW50aW1lX3NldF9hY3RpdmUoZGV2KTsK KysJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKKysKKysJZGV2X2luZm8oZGV2LCAidXNiIG1vZGUg JWQgcHJvYmUgc3VjY2Vzc1xuIiwgZGF0YS0+cGh5X21vZGUpOworKworKwlyZXR1cm4gMDsKKysK KytlcnJfcGh5X2luaXQ6CisrCWNkbnNfc3RhcmZpdmVfcGh5X2RlaW5pdChkYXRhKTsKKytlcnJf Y2xrX2luaXQ6CisrCWNkbnNfY2xrX3JzdF9kZWluaXQoZGF0YSk7CisrCXJldHVybiByZXQ7Cisr fQorKworK3N0YXRpYyBpbnQgY2Ruc19zdGFyZml2ZV9yZW1vdmVfY29yZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIHZvaWQgKmMpCisreworKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9f cGxhdGZvcm1fZGV2aWNlKGRldik7CisrCisrCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHBk ZXYpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBjZG5zX3N0YXJmaXZlX3Jl bW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGRldmljZSAq ZGV2ID0gJnBkZXYtPmRldjsKKysJc3RydWN0IGNkbnNfc3RhcmZpdmUgKmRhdGEgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKKysKKysJcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOworKwlkZXZpY2Vf Zm9yX2VhY2hfY2hpbGQoZGV2LCBOVUxMLCBjZG5zX3N0YXJmaXZlX3JlbW92ZV9jb3JlKTsKKysK KysJY2Ruc19zdGFyZml2ZV9waHlfZGVpbml0KGRhdGEpOworKwljZG5zX2Nsa19yc3RfZGVpbml0 KGRhdGEpOworKwlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKKysJcG1fcnVudGltZV9wdXRfbm9p ZGxlKGRldik7CisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworKworKwlyZXR1 cm4gMDsKKyt9CisrCisrI2lmZGVmIENPTkZJR19QTQorK3N0YXRpYyBpbnQgY2Ruc19zdGFyZml2 ZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGNkbnNfc3RhcmZpdmUg KmRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJaW50IHJldDsKKysKKysJcmV0ID0gY2xr X2J1bGtfcHJlcGFyZV9lbmFibGUoZGF0YS0+bnVtX2Nsa3MsIGRhdGEtPmNsa3MpOworKwlpZiAo cmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChk YXRhLT5yZXNldHMpOworKwlpZiAocmV0KSB7CisrCQljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFy ZShkYXRhLT5udW1fY2xrcywgZGF0YS0+Y2xrcyk7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisr CXJldCA9IGNkbnNfc3RhcmZpdmVfcGh5X2luaXQoZGF0YSk7CisrCWlmIChyZXQpCisrCQljZG5z X2Nsa19yc3RfZGVpbml0KGRhdGEpOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMg aW50IGNkbnNfc3RhcmZpdmVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1 Y3QgY2Ruc19zdGFyZml2ZSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwljZG5z X3N0YXJmaXZlX3BoeV9kZWluaXQoZGF0YSk7CisrCWNkbnNfY2xrX3JzdF9kZWluaXQoZGF0YSk7 CisrCXJldHVybiAwOworK30KKysjZW5kaWYKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9w bV9vcHMgY2Ruc19zdGFyZml2ZV9wbV9vcHMgPSB7CisrCVNFVF9SVU5USU1FX1BNX09QUyhjZG5z X3N0YXJmaXZlX3N1c3BlbmQsIGNkbnNfc3RhcmZpdmVfcmVzdW1lLCBOVUxMKQorKwlTRVRfU1lT VEVNX1NMRUVQX1BNX09QUyhjZG5zX3N0YXJmaXZlX3N1c3BlbmQsIGNkbnNfc3RhcmZpdmVfcmVz dW1lKQorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY2Ruc19zdGFy Zml2ZV9vZl9tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC11 c2IiLCB9LAorKwl7IC8qIHNlbnRpbmVsICovIH0KKyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUo b2YsIGNkbnNfc3RhcmZpdmVfb2ZfbWF0Y2gpOworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGNkbnNfc3RhcmZpdmVfZHJpdmVyID0geworKwkucHJvYmUJCT0gY2Ruc19zdGFyZml2 ZV9wcm9iZSwKKysJLnJlbW92ZQkJPSBjZG5zX3N0YXJmaXZlX3JlbW92ZSwKKysJLmRyaXZlcgkJ PSB7CisrCQkubmFtZQk9ICJjZG5zMy1zdGFyZml2ZSIsCisrCQkub2ZfbWF0Y2hfdGFibGUJPSBj ZG5zX3N0YXJmaXZlX29mX21hdGNoLAorKwkJLnBtCT0gJmNkbnNfc3RhcmZpdmVfcG1fb3BzLAor Kwl9LAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjZG5zX3N0YXJmaXZlX2RyaXZlcik7 CisrCisrTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpjZG5zMy1zdGFyZml2ZSIpOworK01PRFVMRV9B VVRIT1IoIllhbkhvbmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+Iik7Cisr TU9EVUxFX0FVVEhPUigiTWFzb24gSHVvIDxtYXNvbi5odW9Ac3RhcmZpdmV0ZWNoLmNvbT4iKTsK KytNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CisrTU9EVUxFX0RFU0NSSVBUSU9OKCJDYWRlbmNl IFVTQjMgU3RhckZpdmUgR2x1ZSBMYXllciIpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2Nk bnMzL2NvcmUuaCBiL2RyaXZlcnMvdXNiL2NkbnMzL2NvcmUuaAoraW5kZXggMmQzMzJhNzg4ODcx Li44ZDQ0YWI1MDQ4OTggMTAwNjQ0CistLS0gYS9kcml2ZXJzL3VzYi9jZG5zMy9jb3JlLmgKKysr KyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NvcmUuaAorQEAgLTM4LDYgKzM4LDkgQEAgc3RydWN0IGNk bnNfcm9sZV9kcml2ZXIgeworIH07CisgCisgI2RlZmluZSBDRE5TX1hIQ0lfUkVTT1VSQ0VTX05V TQkyCisrI2RlZmluZSBDRE5TX0lPTUVNX1JFU09VUkNFU19OVU0JMworKyNkZWZpbmUgQ0ROU19J UlFfUkVTT1VSQ0VTX05VTQkJNAorKyNkZWZpbmUgQ0ROU19SRVNPVVJDRVNfTlVNCShDRE5TX0lP TUVNX1JFU09VUkNFU19OVU0gKyBDRE5TX0lSUV9SRVNPVVJDRVNfTlVNKQorIAorIHN0cnVjdCBj ZG5zM19wbGF0Zm9ybV9kYXRhIHsKKyAJaW50ICgqcGxhdGZvcm1fc3VzcGVuZCkoc3RydWN0IGRl dmljZSAqZGV2LAorLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzAwNjQtcmlzY3YtZHRzLXN0YXJmaXZlLUFkZC1VU0ItZHRzLWNvbmZpZ3VyYXRpb24t Zm9yLUpINy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDY0LXJpc2N2LWR0cy1z dGFyZml2ZS1BZGQtVVNCLWR0cy1jb25maWd1cmF0aW9uLWZvci1KSDcucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNDZkYjZkOGNlZTFkNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDY0LXJpc2N2LWR0cy1zdGFyZml2 ZS1BZGQtVVNCLWR0cy1jb25maWd1cmF0aW9uLWZvci1KSDcucGF0Y2gKQEAgLTAsMCArMSw5MSBA QAorRnJvbSBiMDM1N2I2ODNlMzdmZDgyMWI4NTQ4OGY5Y2U3YWI0NTc4NTdmOTJhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRl Y2guY29tPgorRGF0ZTogVGh1LCAyMCBBcHIgMjAyMyAxOTowMDo1MiArMDgwMAorU3ViamVjdDog W1BBVENIIDY0Lzg0XSByaXNjdjogZHRzOiBzdGFyZml2ZTogQWRkIFVTQiBkdHMgY29uZmlndXJh dGlvbiBmb3IKKyBKSDcxMTAKKworQWRkIFVTQiB3cmFwcGVyIGxheWVyIGFuZCBDYWRlbmNlIFVT QjMgY29udHJvbGxlciBkdHMKK2NvbmZpZ3VyYXRpb24gZm9yIFN0YXJGaXZlIEpINzExMCBTb0Mg YW5kIFZpc2lvbkZpdmUyCitCb2FyZC4KK1VTQiBjb250cm9sbGVyIGNvbm5lY3QgdG8gUEhZLCBU aGUgUEhZIGR0cyBjb25maWd1cmF0aW9uCithcmUgYWxzbyBhZGRlZC4KKworU2lnbmVkLW9mZi1i eTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2po NzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaSAgICAgICAgIHwgIDcgKysrCisgYXJjaC9y aXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSAgICAgIHwgNDQgKysrKysrKysrKysr KysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0 IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2 ZS0yLmR0c2kgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12 aXNpb25maXZlLTIuZHRzaQoraW5kZXggNGNkOWIxMzNkMGRkLi4zMTQ1NGUxNWFjZmMgMTAwNjQ0 CistLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNp b25maXZlLTIuZHRzaQorKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAt c3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kKK0BAIC0yNTEsMyArMjUxLDEwIEBAICZVNzRfMyB7 CisgJlU3NF80IHsKKyAJY3B1LXN1cHBseSA9IDwmdmRkX2NwdT47CisgfTsKKysKKysmdXNiMCB7 CisrCXBoeXMgPSA8JnVzYnBoeTA+OworKwlwaHktbmFtZXMgPSAidXNiMiI7CisrCWRyX21vZGUg PSAicGVyaXBoZXJhbCI7CisrCXN0YXR1cyA9ICJva2F5IjsKKyt9OworZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgYi9hcmNoL3Jpc2N2L2Jvb3Qv ZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitpbmRleCBkZjdhOTEyYjczYjcuLmQxMmVjYmJhMzgw MyAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kK KysrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK0BAIC0zOTks NiArMzk5LDUwIEBAIGkyYzI6IGkyY0AxMDA1MDAwMCB7CisgCQkJc3RhdHVzID0gImRpc2FibGVk IjsKKyAJCX07CisgCisrCQl1c2IwOiB1c2JAMTAxMDAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAi c3RhcmZpdmUsamg3MTEwLXVzYiI7CisrCQkJcmVnID0gPDB4MCAweDEwMTAwMDAwIDB4MCAweDEw MDAwPiwKKysJCQkgICAgICA8MHgwIDB4MTAxMTAwMDAgMHgwIDB4MTAwMDA+LAorKwkJCSAgICAg IDwweDAgMHgxMDEyMDAwMCAweDAgMHgxMDAwMD47CisrCQkJcmVnLW5hbWVzID0gIm90ZyIsICJ4 aGNpIiwgImRldiI7CisrCQkJaW50ZXJydXB0cyA9IDwxMDA+LCA8MTA4PiwgPDExMD47CisrCQkJ aW50ZXJydXB0LW5hbWVzID0gImhvc3QiLCAicGVyaXBoZXJhbCIsICJvdGciOworKwkJCWNsb2Nr cyA9IDwmc3RnY3JnIEpINzExMF9TVEdDTEtfVVNCMF9MUE0+LAorKwkJCQkgPCZzdGdjcmcgSkg3 MTEwX1NUR0NMS19VU0IwX1NUQj4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1VTQjBf QVBCPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfVVNCMF9BWEk+LAorKwkJCQkgPCZz dGdjcmcgSkg3MTEwX1NUR0NMS19VU0IwX1VUTUlfQVBCPjsKKysJCQljbG9jay1uYW1lcyA9ICJs cG0iLCAic3RiIiwgImFwYiIsICJheGkiLCAidXRtaV9hcGIiOworKwkJCXJlc2V0cyA9IDwmc3Rn Y3JnIEpINzExMF9TVEdSU1RfVVNCMF9QV1JVUD4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RH UlNUX1VTQjBfQVBCPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1RfVVNCMF9BWEk+LAor KwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9VU0IwX1VUTUlfQVBCPjsKKysJCQlyZXNldC1u YW1lcyA9ICJwd3J1cCIsICJhcGIiLCAiYXhpIiwgInV0bWlfYXBiIjsKKysJCQlzdGFyZml2ZSxz dGctc3lzY29uID0gPCZzdGdfc3lzY29uIDB4ND47CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsK KysJCX07CisrCisrCQl1c2JwaHkwOiBwaHlAMTAyMDAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAi c3RhcmZpdmUsamg3MTEwLXVzYi1waHkiOworKwkJCXJlZyA9IDwweDAgMHgxMDIwMDAwMCAweDAg MHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19VU0JfMTI1TT4s CisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1VTQjBfQVBQXzEyNT47CisrCQkJY2xvY2st bmFtZXMgPSAiMTI1bSIsICJhcHBfMTI1bSI7CisrCQkJI3BoeS1jZWxscyA9IDwwPjsKKysJCX07 CisrCisrCQlwY2llcGh5MDogcGh5QDEwMjEwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJm aXZlLGpoNzExMC1wY2llLXBoeSI7CisrCQkJcmVnID0gPDB4MCAweDEwMjEwMDAwIDB4MCAweDEw MDAwPjsKKysJCQkjcGh5LWNlbGxzID0gPDA+OworKwkJfTsKKysKKysJCXBjaWVwaHkxOiBwaHlA MTAyMjAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXBjaWUtcGh5IjsK KysJCQlyZWcgPSA8MHgwIDB4MTAyMjAwMDAgMHgwIDB4MTAwMDA+OworKwkJCSNwaHktY2VsbHMg PSA8MD47CisrCQl9OworKworIAkJc3RnY3JnOiBjbG9jay1jb250cm9sbGVyQDEwMjMwMDAwIHsK KyAJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1zdGdjcmciOworIAkJCXJlZyA9IDww eDAgMHgxMDIzMDAwMCAweDAgMHgxMDAwMD47CistLSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2NS1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZp dmUtSkg3MTEwLVBMTC1jbG9jay1nZW5lLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVz LzAwNjUtZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1QTEwtY2xvY2stZ2Vu ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41OWY4YmUy NjlkZjMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjUt ZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1QTEwtY2xvY2stZ2VuZS5wYXRj aApAQCAtMCwwICsxLDg4IEBACitGcm9tIDJlMjMxOTJjNWFkODVkMzI2MjVlMzFlZTI4MTM1MDc1 MjgwYzdiZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5 dS53dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAxMiBNYXkgMjAyMyAxMDoyMDozMCAr MDgwMAorU3ViamVjdDogW1BBVENIIDY1Lzg0XSBkdC1iaW5kaW5nczogY2xvY2s6IEFkZCBTdGFy Rml2ZSBKSDcxMTAgUExMIGNsb2NrCisgZ2VuZXJhdG9yCisKK0FkZCBiaW5kaW5ncyBmb3IgdGhl IFBMTCBjbG9jayBnZW5lcmF0b3Igb24gdGhlIEpINzExMCBSSVNDLVYgU29DLgorCitSZXZpZXdl ZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3Jn PgorU2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4K Ky0tLQorIC4uLi9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtcGxsLnlhbWwgICB8IDQ2 ICsrKysrKysrKysrKysrKysrKysKKyAuLi4vZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3 MTEwLWNyZy5oICAgfCAgNiArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKykK KyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Ns b2NrL3N0YXJmaXZlLGpoNzExMC1wbGwueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1wbGwueWFtbCBiL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtcGxs LnlhbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjhhYThjN2I4 ZTQyZgorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1wbGwueWFtbAorQEAgLTAsMCArMSw0NiBAQAorKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UKKysl WUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Nsb2Nr L3N0YXJmaXZlLGpoNzExMC1wbGwueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5v cmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIFBM TCBDbG9jayBHZW5lcmF0b3IKKysKKytkZXNjcmlwdGlvbjoKKysgIFRoaXMgUExMIGFyZSBoaWdo IHNwZWVkLCBsb3cgaml0dGVyIGZyZXF1ZW5jeSBzeW50aGVzaXplcnMgaW4gSkg3MTEwLgorKyAg RWFjaCBQTEwgY2xvY2tzIHdvcmsgaW4gaW50ZWdlciBtb2RlIG9yIGZyYWN0aW9uIG1vZGUgYnkg c29tZSBkaXZpZGVycywKKysgIGFuZCB0aGUgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgYW5kIGRp dmlkZXJzIGFyZSBzZXQgaW4gc2V2ZXJhbCBzeXNjb24KKysgIHJlZ2lzdGVycy4gU28gcGxsIG5v ZGUgc2hvdWxkIGJlIGEgY2hpbGQgb2YgU1lTLVNZU0NPTiBub2RlLgorKyAgVGhlIGZvcm11bGEg Zm9yIGNhbGN1bGF0aW5nIGZyZXF1ZW5jeSBpcyB0aGF0LAorKyAgRnZjbyA9IEZyZWYgKiAoTkkg KyBORikgLyBNIC8gUTEKKysKKyttYWludGFpbmVyczoKKysgIC0gWGluZ3l1IFd1IDx4aW5neXUu d3VAc3RhcmZpdmV0ZWNoLmNvbT4KKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysg ICAgY29uc3Q6IHN0YXJmaXZlLGpoNzExMC1wbGwKKysKKysgIGNsb2NrczoKKysgICAgbWF4SXRl bXM6IDEKKysgICAgZGVzY3JpcHRpb246IE1haW4gT3NjaWxsYXRvciAoMjQgTUh6KQorKworKyAg JyNjbG9jay1jZWxscyc6CisrICAgIGNvbnN0OiAxCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAg IFNlZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oPiBmb3IgdmFsaWQg aW5kaWNlcy4KKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0aWJsZQorKyAgLSBjbG9ja3MKKysg IC0gJyNjbG9jay1jZWxscycKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytl eGFtcGxlczoKKysgIC0gfAorKyAgICBwbGwtY2xvY2stY29udHJvbGxlciB7CisrICAgICAgY29t cGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcGxsIjsKKysgICAgICBjbG9ja3MgPSA8Jm9zYz47 CisrICAgICAgI2Nsb2NrLWNlbGxzID0gPDE+OworKyAgICB9OworZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oIGIvaW5jbHVkZS9kdC1i aW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmgKK2luZGV4IDAxNjIyN2M2NGEyNy4u ZWNiNWY4MGQ2ZjIzIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9jbG9jay9zdGFy Zml2ZSxqaDcxMTAtY3JnLmgKKysrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZp dmUsamg3MTEwLWNyZy5oCitAQCAtNyw2ICs3LDEyIEBACisgI2lmbmRlZiBfX0RUX0JJTkRJTkdT X0NMT0NLX1NUQVJGSVZFX0pINzExMF9DUkdfSF9fCisgI2RlZmluZSBfX0RUX0JJTkRJTkdTX0NM T0NLX1NUQVJGSVZFX0pINzExMF9DUkdfSF9fCisgCisrLyogUExMIGNsb2NrcyAqLworKyNkZWZp bmUgSkg3MTEwX0NMS19QTEwwX09VVAkJCTAKKysjZGVmaW5lIEpINzExMF9DTEtfUExMMV9PVVQJ CQkxCisrI2RlZmluZSBKSDcxMTBfQ0xLX1BMTDJfT1VUCQkJMgorKyNkZWZpbmUgSkg3MTEwX1BM TENMS19FTkQJCQkzCisrCisgLyogU1lTQ1JHIGNsb2NrcyAqLworICNkZWZpbmUgSkg3MTEwX1NZ U0NMS19DUFVfUk9PVAkJCTAKKyAjZGVmaW5lIEpINzExMF9TWVNDTEtfQ1BVX0NPUkUJCQkxCist LSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA2Ni1j bGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1QTEwtY2xvY2stZHJpdmVyLnBhdGNoIGIv c3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjYtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1K SDcxMTAtUExMLWNsb2NrLWRyaXZlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi4wZjkyZDRmOTFiYTA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwNjYtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtUExM LWNsb2NrLWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDcwNCBAQAorRnJvbSAyYzJkYmFkYzUxYjEy YmZlOGRkMDJiMDNjMTU4ZTA4NzllMWRjYzMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IEZyaSwgMTIg TWF5IDIwMjMgMTA6MjA6MzEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2Ni84NF0gY2xrOiBzdGFy Zml2ZTogQWRkIFN0YXJGaXZlIEpINzExMCBQTEwgY2xvY2sgZHJpdmVyCisKK0FkZCBkcml2ZXIg Zm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgUExMIGNsb2NrIGNvbnRyb2xsZXIKK2FuZCB0aGV5IHdv cmsgYnkgcmVhZGluZyBhbmQgc2V0dGluZyBzeXNjb24gcmVnaXN0ZXJzLgorCitTaWduZWQtb2Zm LWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVy cy9jbGsvc3RhcmZpdmUvS2NvbmZpZyAgICAgICAgICAgICAgICAgIHwgICA4ICsKKyBkcml2ZXJz L2Nsay9zdGFyZml2ZS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKworIC4uLi9jbGsv c3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuYyAgICB8IDMwOSArKysrKysrKysrKysr KysrCisgLi4uL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXBsbC5oICAgIHwgMzMx ICsrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgNjQ5IGluc2VydGlvbnMoKykK KyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpo NzExMC1wbGwuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGst c3RhcmZpdmUtamg3MTEwLXBsbC5oCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2 ZS9LY29uZmlnIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworaW5kZXggYjBjNzc0NDk2 NWQ3Li5hYmUxZGUxZWFmYTcgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29u ZmlnCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCitAQCAtMjEsNiArMjEsMTQg QEAgY29uZmlnIENMS19TVEFSRklWRV9KSDcxMDBfQVVESU8KKyAJICBTYXkgWSBvciBNIGhlcmUg dG8gc3VwcG9ydCB0aGUgYXVkaW8gY2xvY2tzIG9uIHRoZSBTdGFyRml2ZSBKSDcxMDAKKyAJICBT b0MuCisgCisrY29uZmlnIENMS19TVEFSRklWRV9KSDcxMTBfUExMCisrCWJvb2wgIlN0YXJGaXZl IEpINzExMCBQTEwgY2xvY2sgc3VwcG9ydCIKKysJZGVwZW5kcyBvbiBBUkNIX1NUQVJGSVZFIHx8 IENPTVBJTEVfVEVTVAorKwlkZWZhdWx0IEFSQ0hfU1RBUkZJVkUKKysJaGVscAorKwkgIFNheSB5 ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBQTEwgY2xvY2sgY29udHJvbGxlciBvbiB0aGUKKysJICBT dGFyRml2ZSBKSDcxMTAgU29DLgorKworIGNvbmZpZyBDTEtfU1RBUkZJVkVfSkg3MTEwX1NZUwor IAlib29sICJTdGFyRml2ZSBKSDcxMTAgc3lzdGVtIGNsb2NrIHN1cHBvcnQiCisgCWRlcGVuZHMg b24gQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9zdGFyZml2ZS9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCitpbmRl eCA4NDEzNzdlNDViYjYuLjE5OWFjMGYzN2EyZiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL01ha2VmaWxlCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZQorQEAg LTQsNiArNCw3IEBAIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MVgwKQkrPSBjbGstc3Rh cmZpdmUtamg3MXgwLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzEwMCkJKz0gY2xr LXN0YXJmaXZlLWpoNzEwMC5vCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMDBfQVVE SU8pCSs9IGNsay1zdGFyZml2ZS1qaDcxMDAtYXVkaW8ubworIAorK29iai0kKENPTkZJR19DTEtf U1RBUkZJVkVfSkg3MTEwX1BMTCkJKz0gY2xrLXN0YXJmaXZlLWpoNzExMC1wbGwubworIG9iai0k KENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1NZUykJKz0gY2xrLXN0YXJmaXZlLWpoNzExMC1z eXMubworIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX0FPTikJKz0gY2xrLXN0YXJm aXZlLWpoNzExMC1hb24ubworIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1NURykJ Kz0gY2xrLXN0YXJmaXZlLWpoNzExMC1zdGcubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtcGxsLmMgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9j bGstc3RhcmZpdmUtamg3MTEwLXBsbC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMDAwLi5mODZkZWRkZDRiZWYKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvY2xr L3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtcGxsLmMKK0BAIC0wLDAgKzEsMzA5IEBACisr Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysvKgorKyAqIFN0YXJGaXZlIEpI NzExMCBQTEwgQ2xvY2sgR2VuZXJhdG9yIERyaXZlcgorKyAqCisrICogQ29weXJpZ2h0IChDKSAy MDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICoKKysgKiBUaGlzIGRyaXZlciBp cyBhYm91dCB0byByZWdpc3RlciBKSDcxMTAgUExMIGNsb2NrIGdlbmVyYXRvciBhbmQgc3VwcG9y dCBvcHMuCisrICogVGhlIEpINzExMCBoYXZlIHRocmVlIFBMTCBjbG9jaywgUExMMCwgUExMMSBh bmQgUExMMi4KKysgKiBFYWNoIFBMTCBjbG9ja3Mgd29yayBpbiBpbnRlZ2VyIG1vZGUgb3IgZnJh Y3Rpb24gbW9kZSBieSBzb21lIGRpdmlkZXJzLAorKyAqIGFuZCB0aGUgY29uZmlndXJhdGlvbiBy ZWdpc3RlcnMgYW5kIGRpdmlkZXJzIGFyZSBzZXQgaW4gc2V2ZXJhbCBzeXNjb24gcmVnaXN0ZXJz LgorKyAqIFRoZSBmb3JtdWxhIGZvciBjYWxjdWxhdGluZyBmcmVxdWVuY3kgaXM6CisrICogRnZj byA9IEZyZWYgKiAoTkkgKyBORikgLyBNIC8gUTEKKysgKiBGcmVmOiBPU0Mgc291cmNlIGNsb2Nr IHJhdGUKKysgKiBOSTogaW50ZWdlciBmcmVxdWVuY3kgZGl2aWRpbmcgcmF0aW8gb2YgZmVlZGJh Y2sgZGl2aWRlciwgc2V0IGJ5IGZiZGl2WzExOjBdLgorKyAqIE5GOiBmcmFjdGlvbmFsIGZyZXF1 ZW5jeSBkaXZpZGluZyByYXRpbywgc2V0IGJ5IGZyYWNbMjM6MF0uIE5GID0gZnJhY1syMzowXSAv IDJeMjQgPSAwIH4gMC45OTkuCisrICogTTogZnJlcXVlbmN5IGRpdmlkaW5nIHJhdGlvIG9mIHBy ZS1kaXZpZGVyLCBzZXQgYnkgcHJlZGl2WzU6MF0uCisrICogUTE6IGZyZXF1ZW5jeSBkaXZpZGlu ZyByYXRpbyBvZiBwb3N0IGRpdmlkZXIsIHNldCBieSBwb3N0ZGl2MVsxOjBdLCBRMT0gMSwyLDQs OC4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisrI2luY2x1ZGUg PGxpbnV4L2RlYnVnZnMuaD4KKysjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisrI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgorKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CisrI2luY2x1 ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4K KysKKysjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oPgor KworKyNpbmNsdWRlICJjbGstc3RhcmZpdmUtamg3MTEwLXBsbC5oIgorKworK3N0cnVjdCBqaDcx MTBfcGxsX2NvbmZfdmFyaWFudCB7CisrCXVuc2lnbmVkIGludCBwbGxfbnVtczsKKysJc3RydWN0 IGpoNzExMF9wbGxfc3lzY29uX2NvbmYgY29uZltdOworK307CisrCisrc3RhdGljIGNvbnN0IHN0 cnVjdCBqaDcxMTBfcGxsX2NvbmZfdmFyaWFudCBqaDcxMTBfcGxsX3ZhcmlhbnQgPSB7CisrCS5w bGxfbnVtcyA9IEpINzExMF9QTExDTEtfRU5ELAorKwkuY29uZiA9IHsKKysJCUpINzExMF9QTEwo Skg3MTEwX0NMS19QTEwwX09VVCwgInBsbDBfb3V0IiwKKysJCQkgICBKSDcxMTBfUExMMF9GUkVR X01BWCwgamg3MTEwX3BsbDBfc3lzY29uX3ZhbF9wcmVzZXQpLAorKwkJSkg3MTEwX1BMTChKSDcx MTBfQ0xLX1BMTDFfT1VULCAicGxsMV9vdXQiLAorKwkJCSAgIEpINzExMF9QTEwxX0ZSRVFfTUFY LCBqaDcxMTBfcGxsMV9zeXNjb25fdmFsX3ByZXNldCksCisrCQlKSDcxMTBfUExMKEpINzExMF9D TEtfUExMMl9PVVQsICJwbGwyX291dCIsCisrCQkJICAgSkg3MTEwX1BMTDJfRlJFUV9NQVgsIGpo NzExMF9wbGwyX3N5c2Nvbl92YWxfcHJlc2V0KSwKKysJfSwKKyt9OworKworK3N0YXRpYyBzdHJ1 Y3Qgamg3MTEwX2Nsa19wbGxfZGF0YSAqamg3MTEwX3BsbF9kYXRhX2Zyb20oc3RydWN0IGNsa19o dyAqaHcpCisreworKwlyZXR1cm4gY29udGFpbmVyX29mKGh3LCBzdHJ1Y3Qgamg3MTEwX2Nsa19w bGxfZGF0YSwgaHcpOworK30KKysKKytzdGF0aWMgc3RydWN0IGpoNzExMF9jbGtfcGxsX3ByaXYg KmpoNzExMF9wbGxfcHJpdl9mcm9tKHN0cnVjdCBqaDcxMTBfY2xrX3BsbF9kYXRhICpkYXRhKQor K3sKKysJcmV0dXJuIGNvbnRhaW5lcl9vZihkYXRhLCBzdHJ1Y3Qgamg3MTEwX2Nsa19wbGxfcHJp diwgZGF0YVtkYXRhLT5pZHhdKTsKKyt9CisrCisrLyogUmVhZCByZWdpc3RlciB2YWx1ZSBmcm9t IHN5c2NvbiBhbmQgY2FsY3VsYXRlIFBMTCh4KSBmcmVxdWVuY3kgKi8KKytzdGF0aWMgdW5zaWdu ZWQgbG9uZyBqaDcxMTBfcGxsX2dldF9mcmVxKHN0cnVjdCBqaDcxMTBfY2xrX3BsbF9kYXRhICpk YXRhLAorKwkJCQkJIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCisreworKwlzdHJ1Y3Qgamg3 MTEwX2Nsa19wbGxfcHJpdiAqcHJpdiA9IGpoNzExMF9wbGxfcHJpdl9mcm9tKGRhdGEpOworKwlz dHJ1Y3Qgamg3MTEwX3BsbF9zeXNjb25fb2Zmc2V0ICpvZmZzZXQgPSAmZGF0YS0+Y29uZi5vZmZz ZXRzOworKwlzdHJ1Y3Qgamg3MTEwX3BsbF9zeXNjb25fbWFzayAqbWFzayA9ICZkYXRhLT5jb25m Lm1hc2tzOworKwlzdHJ1Y3Qgamg3MTEwX3BsbF9zeXNjb25fc2hpZnQgKnNoaWZ0ID0gJmRhdGEt PmNvbmYuc2hpZnRzOworKwl1bnNpZ25lZCBsb25nIGZyYWNfY2FsOworKwl1MzIgZGFjcGQ7Cisr CXUzMiBkc21wZDsKKysJdTMyIGZiZGl2OworKwl1MzIgcHJlZGl2OworKwl1MzIgcG9zdGRpdjE7 CisrCXUzMiBmcmFjOworKwl1MzIgcmVnX3ZhbDsKKysKKysJcmVnbWFwX3JlYWQocHJpdi0+c3lz Y29uX3JlZ21hcCwgb2Zmc2V0LT5kYWNwZCwgJnJlZ192YWwpOworKwlkYWNwZCA9IChyZWdfdmFs ICYgbWFzay0+ZGFjcGQpID4+IHNoaWZ0LT5kYWNwZDsKKysKKysJcmVnbWFwX3JlYWQocHJpdi0+ c3lzY29uX3JlZ21hcCwgb2Zmc2V0LT5kc21wZCwgJnJlZ192YWwpOworKwlkc21wZCA9IChyZWdf dmFsICYgbWFzay0+ZHNtcGQpID4+IHNoaWZ0LT5kc21wZDsKKysKKysJcmVnbWFwX3JlYWQocHJp di0+c3lzY29uX3JlZ21hcCwgb2Zmc2V0LT5mYmRpdiwgJnJlZ192YWwpOworKwlmYmRpdiA9IChy ZWdfdmFsICYgbWFzay0+ZmJkaXYpID4+IHNoaWZ0LT5mYmRpdjsKKysKKysJcmVnbWFwX3JlYWQo cHJpdi0+c3lzY29uX3JlZ21hcCwgb2Zmc2V0LT5wcmVkaXYsICZyZWdfdmFsKTsKKysJcHJlZGl2 ID0gKHJlZ192YWwgJiBtYXNrLT5wcmVkaXYpID4+IHNoaWZ0LT5wcmVkaXY7CisrCisrCXJlZ21h cF9yZWFkKHByaXYtPnN5c2Nvbl9yZWdtYXAsIG9mZnNldC0+cG9zdGRpdjEsICZyZWdfdmFsKTsK KysJLyogcG9zdGRpdjEgPSAyIF4gcmVnX3ZhbCAqLworKwlwb3N0ZGl2MSA9IDEgPDwgKChyZWdf dmFsICYgbWFzay0+cG9zdGRpdjEpID4+IHNoaWZ0LT5wb3N0ZGl2MSk7CisrCisrCXJlZ21hcF9y ZWFkKHByaXYtPnN5c2Nvbl9yZWdtYXAsIG9mZnNldC0+ZnJhYywgJnJlZ192YWwpOworKwlmcmFj ID0gKHJlZ192YWwgJiBtYXNrLT5mcmFjKSA+PiBzaGlmdC0+ZnJhYzsKKysKKysJLyoKKysJICog SW50ZWdlciBNb2RlIChCb3RoIDEpIG9yIEZyYWN0aW9uIE1vZGUgKEJvdGggMCkuCisrCSAqIEFu ZCB0aGUgZGVjaW1hbCBwbGFjZXMgYXJlIGNvdW50ZWQgYnkgZXhwYW5kaW5nIHRoZW0gYnkKKysJ ICogYSBmYWN0b3Igb2YgU1RBUkZJVkVfUExMX0ZSQUNfUEFUUl9TSVpFLgorKwkgKi8KKysJaWYg KGRhY3BkID09IDEgJiYgZHNtcGQgPT0gMSkKKysJCWZyYWNfY2FsID0gMDsKKysJZWxzZSBpZiAo ZGFjcGQgPT0gMCAmJiBkc21wZCA9PSAwKQorKwkJZnJhY19jYWwgPSAodW5zaWduZWQgbG9uZylm cmFjICogU1RBUkZJVkVfUExMX0ZSQUNfUEFUUl9TSVpFIC8gKDEgPDwgMjQpOworKwllbHNlCisr CQlyZXR1cm4gMDsKKysKKysJLyogRnZjbyA9IEZyZWYgKiAoTkkgKyBORikgLyBNIC8gUTEgKi8K KysJcmV0dXJuIChwYXJlbnRfcmF0ZSAvIFNUQVJGSVZFX1BMTF9GUkFDX1BBVFJfU0laRSAqCisr CQkoZmJkaXYgKiBTVEFSRklWRV9QTExfRlJBQ19QQVRSX1NJWkUgKyBmcmFjX2NhbCkgLyBwcmVk aXYgLyBwb3N0ZGl2MSk7CisrfQorKworK3N0YXRpYyB1bnNpZ25lZCBsb25nIGpoNzExMF9wbGxf cmF0ZV9zdWJfZmFicyh1bnNpZ25lZCBsb25nIHJhdGUxLCB1bnNpZ25lZCBsb25nIHJhdGUyKQor K3sKKysJcmV0dXJuIHJhdGUxID4gcmF0ZTIgPyAocmF0ZTEgLSByYXRlMikgOiAocmF0ZTIgLSBy YXRlMSk7CisrfQorKworKy8qIFNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgZnJlcXVlbmN5IGZyb20g dGhlIGFscmVhZHkgY29uZmlndXJlZCByZWdpc3RlcnMgdmFsdWUgKi8KKytzdGF0aWMgdm9pZCBq aDcxMTBfcGxsX3NlbGVjdF9uZWFyX2ZyZXFfaWQoc3RydWN0IGpoNzExMF9jbGtfcGxsX2RhdGEg KmRhdGEsCisrCQkJCQkgICB1bnNpZ25lZCBsb25nIHJhdGUpCisreworKwljb25zdCBzdHJ1Y3Qg amg3MTEwX3BsbF9zeXNjb25fdmFsICp2YWw7CisrCXVuc2lnbmVkIGludCBpZDsKKysJdW5zaWdu ZWQgbG9uZyByYXRlX2RpZmY7CisrCisrCS8qIGNvbXBhcmUgdGhlIGZyZXF1ZW5jeSBvbmUgYnkg b25lIGZyb20gc21hbGwgdG8gbGFyZ2UgaW4gb3JkZXIgKi8KKysJZm9yIChpZCA9IDA7IGlkIDwg ZGF0YS0+Y29uZi5wcmVzZXRfdmFsX251bXM7IGlkKyspIHsKKysJCXZhbCA9ICZkYXRhLT5jb25m LnByZXNldF92YWxbaWRdOworKworKwkJaWYgKHJhdGUgPT0gdmFsLT5mcmVxKQorKwkJCWdvdG8g bWF0Y2hfZW5kOworKworKwkJLyogc2VsZWN0IG5lYXIgZnJlcXVlbmN5ICovCisrCQlpZiAocmF0 ZSA8IHZhbC0+ZnJlcSkgeworKwkJCS8qIFRoZSBsYXN0IGZyZXF1ZW5jeSBpcyBjbG9zZXIgdG8g dGhlIHRhcmdldCByYXRlIHRoYW4gdGhpcyB0aW1lLiAqLworKwkJCWlmIChpZCA+IDApCisrCQkJ CWlmIChyYXRlX2RpZmYgPCBqaDcxMTBfcGxsX3JhdGVfc3ViX2ZhYnMocmF0ZSwgdmFsLT5mcmVx KSkKKysJCQkJCWlkLS07CisrCisrCQkJZ290byBtYXRjaF9lbmQ7CisrCQl9IGVsc2UgeworKwkJ CXJhdGVfZGlmZiA9IGpoNzExMF9wbGxfcmF0ZV9zdWJfZmFicyhyYXRlLCB2YWwtPmZyZXEpOwor KwkJfQorKwl9CisrCisrbWF0Y2hfZW5kOgorKwlkYXRhLT5mcmVxX3NlbGVjdF9pZHggPSBpZDsK Kyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcGxsX3NldF9mcmVxX3N5c2NvbihzdHJ1Y3Qgamg3 MTEwX2Nsa19wbGxfZGF0YSAqZGF0YSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfY2xrX3BsbF9wcml2 ICpwcml2ID0gamg3MTEwX3BsbF9wcml2X2Zyb20oZGF0YSk7CisrCXN0cnVjdCBqaDcxMTBfcGxs X3N5c2Nvbl9vZmZzZXQgKm9mZnNldCA9ICZkYXRhLT5jb25mLm9mZnNldHM7CisrCXN0cnVjdCBq aDcxMTBfcGxsX3N5c2Nvbl9tYXNrICptYXNrID0gJmRhdGEtPmNvbmYubWFza3M7CisrCXN0cnVj dCBqaDcxMTBfcGxsX3N5c2Nvbl9zaGlmdCAqc2hpZnQgPSAmZGF0YS0+Y29uZi5zaGlmdHM7Cisr CWNvbnN0IHN0cnVjdCBqaDcxMTBfcGxsX3N5c2Nvbl92YWwgKnZhbCA9ICZkYXRhLT5jb25mLnBy ZXNldF92YWxbZGF0YS0+ZnJlcV9zZWxlY3RfaWR4XTsKKysKKysJLyogZnJhYzogSW50ZWdlciBN b2RlIChCb3RoIDEpIG9yIEZyYWN0aW9uIE1vZGUgKEJvdGggMCkgKi8KKysJaWYgKHZhbC0+ZGFj cGQgPT0gMCAmJiB2YWwtPmRzbXBkID09IDApCisrCQlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+ c3lzY29uX3JlZ21hcCwgb2Zmc2V0LT5mcmFjLCBtYXNrLT5mcmFjLAorKwkJCQkgICAodmFsLT5m cmFjIDw8IHNoaWZ0LT5mcmFjKSk7CisrCWVsc2UgaWYgKHZhbC0+ZGFjcGQgIT0gdmFsLT5kc21w ZCkKKysJCXJldHVybiAtRUlOVkFMOworKworKwkvKiBmYmRpdiB2YWx1ZSBzaG91bGQgYmUgOCB0 byA0MDk1ICovCisrCWlmICh2YWwtPmZiZGl2IDwgOCkKKysJCXJldHVybiAtRUlOVkFMOworKwor KwlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+c3lzY29uX3JlZ21hcCwgb2Zmc2V0LT5kYWNwZCwg bWFzay0+ZGFjcGQsCisrCQkJICAgKHZhbC0+ZGFjcGQgPDwgc2hpZnQtPmRhY3BkKSk7CisrCXJl Z21hcF91cGRhdGVfYml0cyhwcml2LT5zeXNjb25fcmVnbWFwLCBvZmZzZXQtPmRzbXBkLCBtYXNr LT5kc21wZCwKKysJCQkgICAodmFsLT5kc21wZCA8PCBzaGlmdC0+ZHNtcGQpKTsKKysJcmVnbWFw X3VwZGF0ZV9iaXRzKHByaXYtPnN5c2Nvbl9yZWdtYXAsIG9mZnNldC0+cHJlZGl2LCBtYXNrLT5w cmVkaXYsCisrCQkJICAgKHZhbC0+cHJlZGl2IDw8IHNoaWZ0LT5wcmVkaXYpKTsKKysJcmVnbWFw X3VwZGF0ZV9iaXRzKHByaXYtPnN5c2Nvbl9yZWdtYXAsIG9mZnNldC0+ZmJkaXYsIG1hc2stPmZi ZGl2LAorKwkJCSAgICh2YWwtPmZiZGl2IDw8IHNoaWZ0LT5mYmRpdikpOworKwlyZWdtYXBfdXBk YXRlX2JpdHMocHJpdi0+c3lzY29uX3JlZ21hcCwgb2Zmc2V0LT5wb3N0ZGl2MSwgbWFzay0+cG9z dGRpdjEsCisrCQkJICAgKCh2YWwtPnBvc3RkaXYxID4+IDEpIDw8IHNoaWZ0LT5wb3N0ZGl2MSkp OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHVuc2lnbmVkIGxvbmcgamg3MTEwX3Bs bF9yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0 ZSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfY2xrX3BsbF9kYXRhICpkYXRhID0gamg3MTEwX3BsbF9k YXRhX2Zyb20oaHcpOworKworKwlyZXR1cm4gamg3MTEwX3BsbF9nZXRfZnJlcShkYXRhLCBwYXJl bnRfcmF0ZSk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3BsbF9kZXRlcm1pbmVfcmF0ZShz dHJ1Y3QgY2xrX2h3ICpodywgc3RydWN0IGNsa19yYXRlX3JlcXVlc3QgKnJlcSkKKyt7CisrCXN0 cnVjdCBqaDcxMTBfY2xrX3BsbF9kYXRhICpkYXRhID0gamg3MTEwX3BsbF9kYXRhX2Zyb20oaHcp OworKworKwlqaDcxMTBfcGxsX3NlbGVjdF9uZWFyX2ZyZXFfaWQoZGF0YSwgcmVxLT5yYXRlKTsK KysJcmVxLT5yYXRlID0gZGF0YS0+Y29uZi5wcmVzZXRfdmFsW2RhdGEtPmZyZXFfc2VsZWN0X2lk eF0uZnJlcTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3BsbF9z ZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAorKwkJCSAgICAg ICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQorK3sKKysJc3RydWN0IGpoNzExMF9jbGtfcGxs X2RhdGEgKmRhdGEgPSBqaDcxMTBfcGxsX2RhdGFfZnJvbShodyk7CisrCisrCXJldHVybiBqaDcx MTBfcGxsX3NldF9mcmVxX3N5c2NvbihkYXRhKTsKKyt9CisrCisrI2lmZGVmIENPTkZJR19ERUJV R19GUworK3N0YXRpYyB2b2lkIGpoNzExMF9wbGxfZGVidWdfaW5pdChzdHJ1Y3QgY2xrX2h3ICpo dywgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQorK3sKKysJc3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1 Z2ZzX3JlZzMyIGpoNzExMF9jbGtfcGxsX3JlZyA9IHsKKysJCS5uYW1lID0gIkNUUkwiLAorKwkJ Lm9mZnNldCA9IDAsCisrCX07CisrCXN0cnVjdCBqaDcxMTBfY2xrX3BsbF9kYXRhICpkYXRhID0g amg3MTEwX3BsbF9kYXRhX2Zyb20oaHcpOworKwlzdHJ1Y3Qgamg3MTEwX2Nsa19wbGxfcHJpdiAq cHJpdiA9IGpoNzExMF9wbGxfcHJpdl9mcm9tKGRhdGEpOworKwlzdHJ1Y3QgZGVidWdmc19yZWdz ZXQzMiAqcmVnc2V0OworKworKwlyZWdzZXQgPSBkZXZtX2t6YWxsb2MocHJpdi0+ZGV2LCBzaXpl b2YoKnJlZ3NldCksIEdGUF9LRVJORUwpOworKwlpZiAoIXJlZ3NldCkKKysJCXJldHVybjsKKysK KysJcmVnc2V0LT5yZWdzID0gJmpoNzExMF9jbGtfcGxsX3JlZzsKKysJcmVnc2V0LT5ucmVncyA9 IDE7CisrCisrCWRlYnVnZnNfY3JlYXRlX3JlZ3NldDMyKCJyZWdpc3RlcnMiLCAwNDAwLCBkZW50 cnksIHJlZ3NldCk7CisrfQorKyNlbHNlCisrI2RlZmluZSBqaDcxMTBfcGxsX2RlYnVnX2luaXQg TlVMTAorKyNlbmRpZgorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBqaDcxMTBfcGxs X29wcyA9IHsKKysJLnJlY2FsY19yYXRlID0gamg3MTEwX3BsbF9yZWNhbGNfcmF0ZSwKKysJLmRl dGVybWluZV9yYXRlID0gamg3MTEwX3BsbF9kZXRlcm1pbmVfcmF0ZSwKKysJLnNldF9yYXRlID0g amg3MTEwX3BsbF9zZXRfcmF0ZSwKKysJLmRlYnVnX2luaXQgPSBqaDcxMTBfcGxsX2RlYnVnX2lu aXQsCisrfTsKKysKKytzdGF0aWMgc3RydWN0IGNsa19odyAqamg3MTEwX3BsbF9nZXQoc3RydWN0 IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywgdm9pZCAqZGF0YSkKKyt7CisrCXN0cnVjdCBqaDcx MTBfY2xrX3BsbF9wcml2ICpwcml2ID0gZGF0YTsKKysJdW5zaWduZWQgaW50IGlkeCA9IGNsa3Nw ZWMtPmFyZ3NbMF07CisrCisrCWlmIChpZHggPCBwcml2LT5wbGxfbnVtcykKKysJCXJldHVybiAm cHJpdi0+ZGF0YVtpZHhdLmh3OworKworKwlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKyt9Cisr Cisrc3RhdGljIGludCBqaDcxMTBfcGxsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCisreworKwljb25zdCBzdHJ1Y3Qgamg3MTEwX3BsbF9jb25mX3ZhcmlhbnQgKnZhcmlhbnQ7 CisrCXN0cnVjdCBqaDcxMTBfY2xrX3BsbF9wcml2ICpwcml2OworKwlzdHJ1Y3Qgamg3MTEwX2Ns a19wbGxfZGF0YSAqZGF0YTsKKysJaW50IHJldDsKKysJdW5zaWduZWQgaW50IGlkeDsKKysKKysJ dmFyaWFudCA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKKysJaWYgKCF2 YXJpYW50KQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCXByaXYgPSBkZXZtX2t6YWxsb2MoJnBk ZXYtPmRldiwgc3RydWN0X3NpemUocHJpdiwgZGF0YSwgdmFyaWFudC0+cGxsX251bXMpLAorKwkJ CSAgICBHRlBfS0VSTkVMKTsKKysJaWYgKCFwcml2KQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisr CXByaXYtPmRldiA9ICZwZGV2LT5kZXY7CisrCXByaXYtPnN5c2Nvbl9yZWdtYXAgPSBzeXNjb25f bm9kZV90b19yZWdtYXAocHJpdi0+ZGV2LT5vZl9ub2RlLT5wYXJlbnQpOworKwlpZiAoSVNfRVJS KHByaXYtPnN5c2Nvbl9yZWdtYXApKQorKwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+c3lzY29uX3Jl Z21hcCk7CisrCisrCXByaXYtPnBsbF9udW1zID0gdmFyaWFudC0+cGxsX251bXM7CisrCWZvciAo aWR4ID0gMDsgaWR4IDwgcHJpdi0+cGxsX251bXM7IGlkeCsrKSB7CisrCQlzdHJ1Y3QgY2xrX3Bh cmVudF9kYXRhIHBhcmVudHMgPSB7CisrCQkJLmluZGV4ID0gMCwKKysJCX07CisrCQlzdHJ1Y3Qg Y2xrX2luaXRfZGF0YSBpbml0ID0geworKwkJCS5uYW1lID0gdmFyaWFudC0+Y29uZltpZHhdLm5h bWUsCisrCQkJLm9wcyA9ICZqaDcxMTBfcGxsX29wcywKKysJCQkucGFyZW50X2RhdGEgPSAmcGFy ZW50cywKKysJCQkubnVtX3BhcmVudHMgPSAxLAorKwkJCS5mbGFncyA9IDAsCisrCQl9OworKwor KwkJZGF0YSA9ICZwcml2LT5kYXRhW2lkeF07CisrCQlkYXRhLT5jb25mID0gdmFyaWFudC0+Y29u ZltpZHhdOworKwkJZGF0YS0+aHcuaW5pdCA9ICZpbml0OworKwkJZGF0YS0+aWR4ID0gaWR4Owor KworKwkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoJnBkZXYtPmRldiwgJmRhdGEtPmh3KTsK KysJCWlmIChyZXQpCisrCQkJcmV0dXJuIHJldDsKKysJfQorKworKwlyZXR1cm4gZGV2bV9vZl9j bGtfYWRkX2h3X3Byb3ZpZGVyKCZwZGV2LT5kZXYsIGpoNzExMF9wbGxfZ2V0LCBwcml2KTsKKyt9 CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgamg3MTEwX3BsbF9tYXRjaFtd ID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wbGwiLCAuZGF0YSA9ICZq aDcxMTBfcGxsX3ZhcmlhbnQgfSwKKysJeyAvKiBzZW50aW5lbCAqLyB9CisrfTsKKytNT0RVTEVf REVWSUNFX1RBQkxFKG9mLCBqaDcxMTBfcGxsX21hdGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBs YXRmb3JtX2RyaXZlciBqaDcxMTBfcGxsX2RyaXZlciA9IHsKKysJLmRyaXZlciA9IHsKKysJCS5u YW1lID0gImNsay1zdGFyZml2ZS1qaDcxMTAtcGxsIiwKKysJCS5vZl9tYXRjaF90YWJsZSA9IGpo NzExMF9wbGxfbWF0Y2gsCisrCX0sCisrfTsKKytidWlsdGluX3BsYXRmb3JtX2RyaXZlcl9wcm9i ZShqaDcxMTBfcGxsX2RyaXZlciwgamg3MTEwX3BsbF9wcm9iZSk7CitkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuaCBiL2RyaXZlcnMvY2xr L3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtcGxsLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMDAwMDAuLjUyNmYyMTY3MGZlMworLS0tIC9kZXYvbnVsbAorKysrIGIv ZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuaAorQEAgLTAsMCAr MSwzMzEgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQgKi8K KysvKgorKyAqIFN0YXJGaXZlIEpINzExMCBQTEwgQ2xvY2sgR2VuZXJhdG9yIERyaXZlcgorKyAq CisrICogQ29weXJpZ2h0IChDKSAyMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisr ICovCisrCisrI2lmbmRlZiBfQ0xLX1NUQVJGSVZFX0pINzExMF9QTExfSF8KKysjZGVmaW5lIF9D TEtfU1RBUkZJVkVfSkg3MTEwX1BMTF9IXworKworKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+Cisr CisrLyogVGhlIGRlY2ltYWwgcGxhY2VzIGFyZSBjb3VudGVkIGJ5IGV4cGFuZGluZyB0aGVtIGJ5 IGEgZmFjdG9yIG9mIFNUQVJGSVZFX1BMTF9GUkFDX1BBVFJfU0laRSAqLworKyNkZWZpbmUgU1RB UkZJVkVfUExMX0ZSQUNfUEFUUl9TSVpFCQkxMDAwCisrCisrI2RlZmluZSBTVEFSRklWRV9KSDcx MTBfQ0xLX1BMTDBfT1VUX0RBQ1BEX09GRlNFVAkweDE4CisrI2RlZmluZSBTVEFSRklWRV9KSDcx MTBfQ0xLX1BMTDBfT1VUX0RBQ1BEX1NISUZUCTI0CisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBf Q0xLX1BMTDBfT1VUX0RBQ1BEX01BU0sJCUJJVCgyNCkKKysjZGVmaW5lIFNUQVJGSVZFX0pINzEx MF9DTEtfUExMMF9PVVRfRFNNUERfT0ZGU0VUCTB4MTgKKysjZGVmaW5lIFNUQVJGSVZFX0pINzEx MF9DTEtfUExMMF9PVVRfRFNNUERfU0hJRlQJMjUKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9D TEtfUExMMF9PVVRfRFNNUERfTUFTSwkJQklUKDI1KQorKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEw X0NMS19QTEwwX09VVF9GQkRJVl9PRkZTRVQJMHgxYworKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEw X0NMS19QTEwwX09VVF9GQkRJVl9TSElGVAkwCisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xL X1BMTDBfT1VUX0ZCRElWX01BU0sJCUdFTk1BU0soMTEsIDApCisrI2RlZmluZSBTVEFSRklWRV9K SDcxMTBfQ0xLX1BMTDBfT1VUX0ZSQUNfT0ZGU0VUCTB4MjAKKysjZGVmaW5lIFNUQVJGSVZFX0pI NzExMF9DTEtfUExMMF9PVVRfRlJBQ19TSElGVAkJMAorKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEw X0NMS19QTEwwX09VVF9GUkFDX01BU0sJCUdFTk1BU0soMjMsIDApCisrI2RlZmluZSBTVEFSRklW RV9KSDcxMTBfQ0xLX1BMTDBfT1VUX1BPU1RESVYxX09GRlNFVAkweDIwCisrI2RlZmluZSBTVEFS RklWRV9KSDcxMTBfQ0xLX1BMTDBfT1VUX1BPU1RESVYxX1NISUZUCTI4CisrI2RlZmluZSBTVEFS RklWRV9KSDcxMTBfQ0xLX1BMTDBfT1VUX1BPU1RESVYxX01BU0sJR0VOTUFTSygyOSwgMjgpCisr I2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xLX1BMTDBfT1VUX1BSRURJVl9PRkZTRVQJMHgyNAor KyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwwX09VVF9QUkVESVZfU0hJRlQJMAorKyNk ZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwwX09VVF9QUkVESVZfTUFTSwlHRU5NQVNLKDUs IDApCisrCisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xLX1BMTDFfT1VUX0RBQ1BEX09GRlNF VAkweDI0CisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xLX1BMTDFfT1VUX0RBQ1BEX1NISUZU CTE1CisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xLX1BMTDFfT1VUX0RBQ1BEX01BU0sJCUJJ VCgxNSkKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRfRFNNUERfT0ZGU0VU CTB4MjQKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRfRFNNUERfU0hJRlQJ MTYKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRfRFNNUERfTUFTSwkJQklU KDE2KQorKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwxX09VVF9GQkRJVl9PRkZTRVQJ MHgyNAorKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwxX09VVF9GQkRJVl9TSElGVAkx NworKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwxX09VVF9GQkRJVl9NQVNLCQlHRU5N QVNLKDI4LCAxNykKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRfRlJBQ19P RkZTRVQJMHgyOAorKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwxX09VVF9GUkFDX1NI SUZUCQkwCisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xLX1BMTDFfT1VUX0ZSQUNfTUFTSwkJ R0VOTUFTSygyMywgMCkKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRfUE9T VERJVjFfT0ZGU0VUCTB4MjgKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRf UE9TVERJVjFfU0hJRlQJMjgKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMV9PVVRf UE9TVERJVjFfTUFTSwlHRU5NQVNLKDI5LCAyOCkKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9D TEtfUExMMV9PVVRfUFJFRElWX09GRlNFVAkweDJjCisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBf Q0xLX1BMTDFfT1VUX1BSRURJVl9TSElGVAkwCisrI2RlZmluZSBTVEFSRklWRV9KSDcxMTBfQ0xL X1BMTDFfT1VUX1BSRURJVl9NQVNLCUdFTk1BU0soNSwgMCkKKysKKysjZGVmaW5lIFNUQVJGSVZF X0pINzExMF9DTEtfUExMMl9PVVRfREFDUERfT0ZGU0VUCTB4MmMKKysjZGVmaW5lIFNUQVJGSVZF X0pINzExMF9DTEtfUExMMl9PVVRfREFDUERfU0hJRlQJMTUKKysjZGVmaW5lIFNUQVJGSVZFX0pI NzExMF9DTEtfUExMMl9PVVRfREFDUERfTUFTSwkJQklUKDE1KQorKyNkZWZpbmUgU1RBUkZJVkVf Skg3MTEwX0NMS19QTEwyX09VVF9EU01QRF9PRkZTRVQJMHgyYworKyNkZWZpbmUgU1RBUkZJVkVf Skg3MTEwX0NMS19QTEwyX09VVF9EU01QRF9TSElGVAkxNgorKyNkZWZpbmUgU1RBUkZJVkVfSkg3 MTEwX0NMS19QTEwyX09VVF9EU01QRF9NQVNLCQlCSVQoMTYpCisrI2RlZmluZSBTVEFSRklWRV9K SDcxMTBfQ0xLX1BMTDJfT1VUX0ZCRElWX09GRlNFVAkweDJjCisrI2RlZmluZSBTVEFSRklWRV9K SDcxMTBfQ0xLX1BMTDJfT1VUX0ZCRElWX1NISUZUCTE3CisrI2RlZmluZSBTVEFSRklWRV9KSDcx MTBfQ0xLX1BMTDJfT1VUX0ZCRElWX01BU0sJCUdFTk1BU0soMjgsIDE3KQorKyNkZWZpbmUgU1RB UkZJVkVfSkg3MTEwX0NMS19QTEwyX09VVF9GUkFDX09GRlNFVAkweDMwCisrI2RlZmluZSBTVEFS RklWRV9KSDcxMTBfQ0xLX1BMTDJfT1VUX0ZSQUNfU0hJRlQJCTAKKysjZGVmaW5lIFNUQVJGSVZF X0pINzExMF9DTEtfUExMMl9PVVRfRlJBQ19NQVNLCQlHRU5NQVNLKDIzLCAwKQorKyNkZWZpbmUg U1RBUkZJVkVfSkg3MTEwX0NMS19QTEwyX09VVF9QT1NURElWMV9PRkZTRVQJMHgzMAorKyNkZWZp bmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwyX09VVF9QT1NURElWMV9TSElGVAkyOAorKyNkZWZp bmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwyX09VVF9QT1NURElWMV9NQVNLCUdFTk1BU0soMjks IDI4KQorKyNkZWZpbmUgU1RBUkZJVkVfSkg3MTEwX0NMS19QTEwyX09VVF9QUkVESVZfT0ZGU0VU CTB4MzQKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMl9PVVRfUFJFRElWX1NISUZU CTAKKysjZGVmaW5lIFNUQVJGSVZFX0pINzExMF9DTEtfUExMMl9PVVRfUFJFRElWX01BU0sJR0VO TUFTSyg1LCAwKQorKworKyNkZWZpbmUgSkg3MTEwX1BMTChfaWR4LCBfbmFtZSwgX251bXMsIF92 YWwpCQkJXAorK1tfaWR4XSA9IHsJCQkJCQkJXAorKwkubmFtZSA9IF9uYW1lLAkJCQkJCVwKKysJ Lm9mZnNldHMgPSB7CQkJCQkJXAorKwkJLmRhY3BkID0gU1RBUkZJVkVfIyNfaWR4IyNfREFDUERf T0ZGU0VULAlcCisrCQkuZHNtcGQgPSBTVEFSRklWRV8jI19pZHgjI19EU01QRF9PRkZTRVQsCVwK KysJCS5mYmRpdiA9IFNUQVJGSVZFXyMjX2lkeCMjX0ZCRElWX09GRlNFVCwJXAorKwkJLmZyYWMg PSBTVEFSRklWRV8jI19pZHgjI19GUkFDX09GRlNFVCwJCVwKKysJCS5wcmVkaXYgPSBTVEFSRklW RV8jI19pZHgjI19QUkVESVZfT0ZGU0VULAlcCisrCQkucG9zdGRpdjEgPSBTVEFSRklWRV8jI19p ZHgjI19QT1NURElWMV9PRkZTRVQsCVwKKysJfSwJCQkJCQkJXAorKwkubWFza3MgPSB7CQkJCQkJ XAorKwkJLmRhY3BkID0gU1RBUkZJVkVfIyNfaWR4IyNfREFDUERfTUFTSywJCVwKKysJCS5kc21w ZCA9IFNUQVJGSVZFXyMjX2lkeCMjX0RTTVBEX01BU0ssCQlcCisrCQkuZmJkaXYgPSBTVEFSRklW RV8jI19pZHgjI19GQkRJVl9NQVNLLAkJXAorKwkJLmZyYWMgPSBTVEFSRklWRV8jI19pZHgjI19G UkFDX01BU0ssCQlcCisrCQkucHJlZGl2ID0gU1RBUkZJVkVfIyNfaWR4IyNfUFJFRElWX01BU0ss CVwKKysJCS5wb3N0ZGl2MSA9IFNUQVJGSVZFXyMjX2lkeCMjX1BPU1RESVYxX01BU0ssCVwKKysJ fSwJCQkJCQkJXAorKwkuc2hpZnRzID0gewkJCQkJCVwKKysJCS5kYWNwZCA9IFNUQVJGSVZFXyMj X2lkeCMjX0RBQ1BEX1NISUZULAkJXAorKwkJLmRzbXBkID0gU1RBUkZJVkVfIyNfaWR4IyNfRFNN UERfU0hJRlQsCQlcCisrCQkuZmJkaXYgPSBTVEFSRklWRV8jI19pZHgjI19GQkRJVl9TSElGVCwJ CVwKKysJCS5mcmFjID0gU1RBUkZJVkVfIyNfaWR4IyNfRlJBQ19TSElGVCwJCVwKKysJCS5wcmVk aXYgPSBTVEFSRklWRV8jI19pZHgjI19QUkVESVZfU0hJRlQsCVwKKysJCS5wb3N0ZGl2MSA9IFNU QVJGSVZFXyMjX2lkeCMjX1BPU1RESVYxX1NISUZULAlcCisrCX0sCQkJCQkJCVwKKysJLnByZXNl dF92YWxfbnVtcyA9IF9udW1zLAkJCQlcCisrCS5wcmVzZXRfdmFsID0gX3ZhbCwJCQkJCVwKKyt9 CisrCisrc3RydWN0IGpoNzExMF9wbGxfc3lzY29uX29mZnNldCB7CisrCXVuc2lnbmVkIGludCBk YWNwZDsKKysJdW5zaWduZWQgaW50IGRzbXBkOworKwl1bnNpZ25lZCBpbnQgZmJkaXY7CisrCXVu c2lnbmVkIGludCBmcmFjOworKwl1bnNpZ25lZCBpbnQgcHJlZGl2OworKwl1bnNpZ25lZCBpbnQg cG9zdGRpdjE7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX3BsbF9zeXNjb25fbWFzayB7CisrCXUz MiBkYWNwZDsKKysJdTMyIGRzbXBkOworKwl1MzIgZmJkaXY7CisrCXUzMiBmcmFjOworKwl1MzIg cHJlZGl2OworKwl1MzIgcG9zdGRpdjE7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX3BsbF9zeXNj b25fc2hpZnQgeworKwljaGFyIGRhY3BkOworKwljaGFyIGRzbXBkOworKwljaGFyIGZiZGl2Owor KwljaGFyIGZyYWM7CisrCWNoYXIgcHJlZGl2OworKwljaGFyIHBvc3RkaXYxOworK307CisrCisr c3RydWN0IGpoNzExMF9wbGxfc3lzY29uX3ZhbCB7CisrCXVuc2lnbmVkIGxvbmcgZnJlcTsKKysJ dTMyIHByZWRpdjsKKysJdTMyIGZiZGl2OworKwl1MzIgcG9zdGRpdjE7CisrLyogQm90aCBkYXhw ZCBhbmQgZHNtcGQgc2V0IDEgd2hpbGUgaW50ZWdlciBtb2RlICovCisrLyogQm90aCBkYXhwZCBh bmQgZHNtcGQgc2V0IDAgd2hpbGUgZnJhY3Rpb24gbW9kZSAqLworKwl1MzIgZGFjcGQ7CisrCXUz MiBkc21wZDsKKysvKiBmcmFjIHZhbHVlIHNob3VsZCBiZSBkZWNpbWFscyBtdWx0aXBsaWVkIGJ5 IDJeMjQgKi8KKysJdTMyIGZyYWM7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX3BsbF9zeXNjb25f Y29uZiB7CisrCWNoYXIgKm5hbWU7CisrCXN0cnVjdCBqaDcxMTBfcGxsX3N5c2Nvbl9vZmZzZXQg b2Zmc2V0czsKKysJc3RydWN0IGpoNzExMF9wbGxfc3lzY29uX21hc2sgbWFza3M7CisrCXN0cnVj dCBqaDcxMTBfcGxsX3N5c2Nvbl9zaGlmdCBzaGlmdHM7CisrCXVuc2lnbmVkIGludCBwcmVzZXRf dmFsX251bXM7CisrCWNvbnN0IHN0cnVjdCBqaDcxMTBfcGxsX3N5c2Nvbl92YWwgKnByZXNldF92 YWw7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX2Nsa19wbGxfZGF0YSB7CisrCXN0cnVjdCBjbGtf aHcgaHc7CisrCXVuc2lnbmVkIGludCBpZHg7CisrCXVuc2lnbmVkIGludCBmcmVxX3NlbGVjdF9p ZHg7CisrCXN0cnVjdCBqaDcxMTBfcGxsX3N5c2Nvbl9jb25mIGNvbmY7CisrfTsKKysKKytzdHJ1 Y3Qgamg3MTEwX2Nsa19wbGxfcHJpdiB7CisrCXVuc2lnbmVkIGludCBwbGxfbnVtczsKKysJc3Ry dWN0IGRldmljZSAqZGV2OworKwlzdHJ1Y3QgcmVnbWFwICpzeXNjb25fcmVnbWFwOworKwlzdHJ1 Y3Qgamg3MTEwX2Nsa19wbGxfZGF0YSBkYXRhW107CisrfTsKKysKKytlbnVtIGpoNzExMF9wbGww X2ZyZXFfaW5kZXggeworKwlKSDcxMTBfUExMMF9GUkVRXzM3NSA9IDAsCisrCUpINzExMF9QTEww X0ZSRVFfNTAwLAorKwlKSDcxMTBfUExMMF9GUkVRXzYyNSwKKysJSkg3MTEwX1BMTDBfRlJFUV83 NTAsCisrCUpINzExMF9QTEwwX0ZSRVFfODc1LAorKwlKSDcxMTBfUExMMF9GUkVRXzEwMDAsCisr CUpINzExMF9QTEwwX0ZSRVFfMTI1MCwKKysJSkg3MTEwX1BMTDBfRlJFUV8xMzc1LAorKwlKSDcx MTBfUExMMF9GUkVRXzE1MDAsCisrCUpINzExMF9QTEwwX0ZSRVFfTUFYCisrfTsKKysKKytlbnVt IGpoNzExMF9wbGwxX2ZyZXFfaW5kZXggeworKwlKSDcxMTBfUExMMV9GUkVRXzEwNjYgPSAwLAor KwlKSDcxMTBfUExMMV9GUkVRXzEyMDAsCisrCUpINzExMF9QTEwxX0ZSRVFfMTQwMCwKKysJSkg3 MTEwX1BMTDFfRlJFUV8xNjAwLAorKwlKSDcxMTBfUExMMV9GUkVRX01BWAorK307CisrCisrZW51 bSBqaDcxMTBfcGxsMl9mcmVxX2luZGV4IHsKKysJSkg3MTEwX1BMTDJfRlJFUV8xMTg4ID0gMCwK KysJSkg3MTEwX1BMTDJfRlJFUV8xMjI4OCwKKysJSkg3MTEwX1BMTDJfRlJFUV9NQVgKKyt9Owor KworKy8qCisrICogQmVjYXVzZSB0aGUgcGxsIGZyZXF1ZW5jeSBpcyByZWxhdGl2ZWx5IGZpeGVk LAorKyAqIGl0IGNhbm5vdCBiZSBzZXQgYXJiaXRyYXJpbHksIHNvIGl0IG5lZWRzIGEgc3BlY2lm aWMgY29uZmlndXJhdGlvbi4KKysgKiBQTEwwIGZyZXF1ZW5jeSBzaG91bGQgYmUgbXVsdGlwbGUg b2YgMTI1TUh6IChVU0IgZnJlcXVlbmN5KS4KKysgKi8KKytzdGF0aWMgY29uc3Qgc3RydWN0IGpo NzExMF9wbGxfc3lzY29uX3ZhbAorKwlqaDcxMTBfcGxsMF9zeXNjb25fdmFsX3ByZXNldFtdID0g eworKwlbSkg3MTEwX1BMTDBfRlJFUV8zNzVdID0geworKwkJLmZyZXEgPSAzNzUwMDAwMDAsCisr CQkucHJlZGl2ID0gOCwKKysJCS5mYmRpdiA9IDEyNSwKKysJCS5wb3N0ZGl2MSA9IDEsCisrCQku ZGFjcGQgPSAxLAorKwkJLmRzbXBkID0gMSwKKysJfSwKKysJW0pINzExMF9QTEwwX0ZSRVFfNTAw XSA9IHsKKysJCS5mcmVxID0gNTAwMDAwMDAwLAorKwkJLnByZWRpdiA9IDYsCisrCQkuZmJkaXYg PSAxMjUsCisrCQkucG9zdGRpdjEgPSAxLAorKwkJLmRhY3BkID0gMSwKKysJCS5kc21wZCA9IDEs CisrCX0sCisrCVtKSDcxMTBfUExMMF9GUkVRXzYyNV0gPSB7CisrCQkuZnJlcSA9IDYyNTAwMDAw MCwKKysJCS5wcmVkaXYgPSAyNCwKKysJCS5mYmRpdiA9IDYyNSwKKysJCS5wb3N0ZGl2MSA9IDEs CisrCQkuZGFjcGQgPSAxLAorKwkJLmRzbXBkID0gMSwKKysJfSwKKysJW0pINzExMF9QTEwwX0ZS RVFfNzUwXSA9IHsKKysJCS5mcmVxID0gNzUwMDAwMDAwLAorKwkJLnByZWRpdiA9IDQsCisrCQku ZmJkaXYgPSAxMjUsCisrCQkucG9zdGRpdjEgPSAxLAorKwkJLmRhY3BkID0gMSwKKysJCS5kc21w ZCA9IDEsCisrCX0sCisrCVtKSDcxMTBfUExMMF9GUkVRXzg3NV0gPSB7CisrCQkuZnJlcSA9IDg3 NTAwMDAwMCwKKysJCS5wcmVkaXYgPSAyNCwKKysJCS5mYmRpdiA9IDg3NSwKKysJCS5wb3N0ZGl2 MSA9IDEsCisrCQkuZGFjcGQgPSAxLAorKwkJLmRzbXBkID0gMSwKKysJfSwKKysJW0pINzExMF9Q TEwwX0ZSRVFfMTAwMF0gPSB7CisrCQkuZnJlcSA9IDEwMDAwMDAwMDAsCisrCQkucHJlZGl2ID0g MywKKysJCS5mYmRpdiA9IDEyNSwKKysJCS5wb3N0ZGl2MSA9IDEsCisrCQkuZGFjcGQgPSAxLAor KwkJLmRzbXBkID0gMSwKKysJfSwKKysJW0pINzExMF9QTEwwX0ZSRVFfMTI1MF0gPSB7CisrCQku ZnJlcSA9IDEyNTAwMDAwMDAsCisrCQkucHJlZGl2ID0gMTIsCisrCQkuZmJkaXYgPSA2MjUsCisr CQkucG9zdGRpdjEgPSAxLAorKwkJLmRhY3BkID0gMSwKKysJCS5kc21wZCA9IDEsCisrCX0sCisr CVtKSDcxMTBfUExMMF9GUkVRXzEzNzVdID0geworKwkJLmZyZXEgPSAxMzc1MDAwMDAwLAorKwkJ LnByZWRpdiA9IDI0LAorKwkJLmZiZGl2ID0gMTM3NSwKKysJCS5wb3N0ZGl2MSA9IDEsCisrCQku ZGFjcGQgPSAxLAorKwkJLmRzbXBkID0gMSwKKysJfSwKKysJW0pINzExMF9QTEwwX0ZSRVFfMTUw MF0gPSB7CisrCQkuZnJlcSA9IDE1MDAwMDAwMDAsCisrCQkucHJlZGl2ID0gMiwKKysJCS5mYmRp diA9IDEyNSwKKysJCS5wb3N0ZGl2MSA9IDEsCisrCQkuZGFjcGQgPSAxLAorKwkJLmRzbXBkID0g MSwKKysJfSwKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MTEwX3BsbF9zeXNjb25f dmFsCisrCWpoNzExMF9wbGwxX3N5c2Nvbl92YWxfcHJlc2V0W10gPSB7CisrCVtKSDcxMTBfUExM MV9GUkVRXzEwNjZdID0geworKwkJLmZyZXEgPSAxMDY2MDAwMDAwLAorKwkJLnByZWRpdiA9IDEy LAorKwkJLmZiZGl2ID0gNTMzLAorKwkJLnBvc3RkaXYxID0gMSwKKysJCS5kYWNwZCA9IDEsCisr CQkuZHNtcGQgPSAxLAorKwl9LAorKwlbSkg3MTEwX1BMTDFfRlJFUV8xMjAwXSA9IHsKKysJCS5m cmVxID0gMTIwMDAwMDAwMCwKKysJCS5wcmVkaXYgPSAxLAorKwkJLmZiZGl2ID0gNTAsCisrCQku cG9zdGRpdjEgPSAxLAorKwkJLmRhY3BkID0gMSwKKysJCS5kc21wZCA9IDEsCisrCX0sCisrCVtK SDcxMTBfUExMMV9GUkVRXzE0MDBdID0geworKwkJLmZyZXEgPSAxNDAwMDAwMDAwLAorKwkJLnBy ZWRpdiA9IDYsCisrCQkuZmJkaXYgPSAzNTAsCisrCQkucG9zdGRpdjEgPSAxLAorKwkJLmRhY3Bk ID0gMSwKKysJCS5kc21wZCA9IDEsCisrCX0sCisrCVtKSDcxMTBfUExMMV9GUkVRXzE2MDBdID0g eworKwkJLmZyZXEgPSAxNjAwMDAwMDAwLAorKwkJLnByZWRpdiA9IDMsCisrCQkuZmJkaXYgPSAy MDAsCisrCQkucG9zdGRpdjEgPSAxLAorKwkJLmRhY3BkID0gMSwKKysJCS5kc21wZCA9IDEsCisr CX0sCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9wbGxfc3lzY29uX3ZhbAor KwlqaDcxMTBfcGxsMl9zeXNjb25fdmFsX3ByZXNldFtdID0geworKwlbSkg3MTEwX1BMTDJfRlJF UV8xMTg4XSA9IHsKKysJCS5mcmVxID0gMTE4ODAwMDAwMCwKKysJCS5wcmVkaXYgPSAyLAorKwkJ LmZiZGl2ID0gOTksCisrCQkucG9zdGRpdjEgPSAxLAorKwkJLmRhY3BkID0gMSwKKysJCS5kc21w ZCA9IDEsCisrCX0sCisrCVtKSDcxMTBfUExMMl9GUkVRXzEyMjg4XSA9IHsKKysJCS5mcmVxID0g MTIyODgwMDAwMCwKKysJCS5wcmVkaXYgPSA1LAorKwkJLmZiZGl2ID0gMjU2LAorKwkJLnBvc3Rk aXYxID0gMSwKKysJCS5kYWNwZCA9IDEsCisrCQkuZHNtcGQgPSAxLAorKwl9LAorK307CisrCisr I2VuZGlmCistLSAKKzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNo ZXMvMDA2Ny1kdC1iaW5kaW5ncy1jbG9jay1qaDcxMTAtc3lzY3JnLUFkZC1QTEwtY2xvY2staW5w dXRzLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjctZHQtYmluZGluZ3MtY2xv Y2stamg3MTEwLXN5c2NyZy1BZGQtUExMLWNsb2NrLWlucHV0cy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wNmEwYjI4MTkxMmJkCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjctZHQtYmluZGluZ3MtY2xvY2stamg3 MTEwLXN5c2NyZy1BZGQtUExMLWNsb2NrLWlucHV0cy5wYXRjaApAQCAtMCwwICsxLDc5IEBACitG cm9tIDEzZGVmNDMyMWVlNjUyY2U1OTU3MWEzMTcxZTkxYjQ3YzkyZDEzZmMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29t PgorRGF0ZTogRnJpLCAxMiBNYXkgMjAyMyAxMDoyMDozMiArMDgwMAorU3ViamVjdDogW1BBVENI IDY3Lzg0XSBkdC1iaW5kaW5nczogY2xvY2s6IGpoNzExMC1zeXNjcmc6IEFkZCBQTEwgY2xvY2sg aW5wdXRzCisKK0FkZCBQTEwgY2xvY2sgaW5wdXRzIGZyb20gUExMIGNsb2NrIGdlbmVyYXRvci4K KworQWNrZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyenlzenRvZi5rb3psb3dza2lAbGlu YXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVj aC5jb20+CistLS0KKyAuLi4vY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55YW1sICAgICAg ICAgfCAyMCArKysrKysrKysrKysrKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55YW1sIGIvRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1zeXNjcmcu eWFtbAoraW5kZXggODQzNzNhZTMxNjQ0Li5mY2IzNjMzNTMwNTAgMTAwNjQ0CistLS0gYS9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2Ny Zy55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3Rh cmZpdmUsamg3MTEwLXN5c2NyZy55YW1sCitAQCAtMjcsNiArMjcsOSBAQCBwcm9wZXJ0aWVzOgor ICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBJMlMgUlggbGVmdC9yaWdodCBjaGFu bmVsIGNsb2NrCisgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEV4dGVybmFsIFRETSBjbG9jawor ICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBhdWRpbyBtYXN0ZXIgY2xvY2sKKysg ICAgICAgICAgLSBkZXNjcmlwdGlvbjogUExMMAorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQ TEwxCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBMTDIKKyAKKyAgICAgICAtIGl0ZW1zOgor ICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNYWluIE9zY2lsbGF0b3IgKDI0IE1IeikKK0BAIC0z OCw2ICs0MSw5IEBAIHByb3BlcnRpZXM6CisgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEV4dGVy bmFsIEkyUyBSWCBsZWZ0L3JpZ2h0IGNoYW5uZWwgY2xvY2sKKyAgICAgICAgICAgLSBkZXNjcmlw dGlvbjogRXh0ZXJuYWwgVERNIGNsb2NrCisgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEV4dGVy bmFsIGF1ZGlvIG1hc3RlciBjbG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQTEwwCisr ICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBMTDEKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjog UExMMgorIAorICAgY2xvY2stbmFtZXM6CisgICAgIG9uZU9mOgorQEAgLTUyLDYgKzU4LDkgQEAg cHJvcGVydGllczoKKyAgICAgICAgICAgLSBjb25zdDogaTJzcnhfbHJja19leHQKKyAgICAgICAg ICAgLSBjb25zdDogdGRtX2V4dAorICAgICAgICAgICAtIGNvbnN0OiBtY2xrX2V4dAorKyAgICAg ICAgICAtIGNvbnN0OiBwbGwwX291dAorKyAgICAgICAgICAtIGNvbnN0OiBwbGwxX291dAorKyAg ICAgICAgICAtIGNvbnN0OiBwbGwyX291dAorIAorICAgICAgIC0gaXRlbXM6CisgICAgICAgICAg IC0gY29uc3Q6IG9zYworQEAgLTYzLDYgKzcyLDkgQEAgcHJvcGVydGllczoKKyAgICAgICAgICAg LSBjb25zdDogaTJzcnhfbHJja19leHQKKyAgICAgICAgICAgLSBjb25zdDogdGRtX2V4dAorICAg ICAgICAgICAtIGNvbnN0OiBtY2xrX2V4dAorKyAgICAgICAgICAtIGNvbnN0OiBwbGwwX291dAor KyAgICAgICAgICAtIGNvbnN0OiBwbGwxX291dAorKyAgICAgICAgICAtIGNvbnN0OiBwbGwyX291 dAorIAorICAgJyNjbG9jay1jZWxscyc6CisgICAgIGNvbnN0OiAxCitAQCAtOTMsMTIgKzEwNSwx NiBAQCBleGFtcGxlczoKKyAgICAgICAgICAgICAgICAgIDwmZ21hYzFfcmdtaWlfcnhpbj4sCisg ICAgICAgICAgICAgICAgICA8Jmkyc3R4X2JjbGtfZXh0PiwgPCZpMnN0eF9scmNrX2V4dD4sCisg ICAgICAgICAgICAgICAgICA8Jmkyc3J4X2JjbGtfZXh0PiwgPCZpMnNyeF9scmNrX2V4dD4sCist ICAgICAgICAgICAgICAgICA8JnRkbV9leHQ+LCA8Jm1jbGtfZXh0PjsKKysgICAgICAgICAgICAg ICAgIDwmdGRtX2V4dD4sIDwmbWNsa19leHQ+LAorKyAgICAgICAgICAgICAgICAgPCZwbGxjbGsg MD4sCisrICAgICAgICAgICAgICAgICA8JnBsbGNsayAxPiwKKysgICAgICAgICAgICAgICAgIDwm cGxsY2xrIDI+OworICAgICAgICAgY2xvY2stbmFtZXMgPSAib3NjIiwgImdtYWMxX3JtaWlfcmVm aW4iLAorICAgICAgICAgICAgICAgICAgICAgICAiZ21hYzFfcmdtaWlfcnhpbiIsCisgICAgICAg ICAgICAgICAgICAgICAgICJpMnN0eF9iY2xrX2V4dCIsICJpMnN0eF9scmNrX2V4dCIsCisgICAg ICAgICAgICAgICAgICAgICAgICJpMnNyeF9iY2xrX2V4dCIsICJpMnNyeF9scmNrX2V4dCIsCist ICAgICAgICAgICAgICAgICAgICAgICJ0ZG1fZXh0IiwgIm1jbGtfZXh0IjsKKysgICAgICAgICAg ICAgICAgICAgICAgInRkbV9leHQiLCAibWNsa19leHQiLAorKyAgICAgICAgICAgICAgICAgICAg ICAicGxsMF9vdXQiLCAicGxsMV9vdXQiLCAicGxsMl9vdXQiOworICAgICAgICAgI2Nsb2NrLWNl bGxzID0gPDE+OworICAgICAgICAgI3Jlc2V0LWNlbGxzID0gPDE+OworICAgICB9OworLS0gCisy LjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjgtY2xrLXN0 YXJmaXZlLWpoNzExMC1zeXMtTW9kaWZ5LVBMTC1jbG9ja3Mtc291cmNlLnBhdGNoIGIvc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwNjgtY2xrLXN0YXJmaXZlLWpoNzExMC1zeXMtTW9kaWZ5LVBM TC1jbG9ja3Mtc291cmNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAuLjhjNTc1YTNjNzU2ODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4z L3BhdGNoZXMvMDA2OC1jbGstc3RhcmZpdmUtamg3MTEwLXN5cy1Nb2RpZnktUExMLWNsb2Nrcy1z b3VyY2UucGF0Y2gKQEAgLTAsMCArMSw3OCBAQAorRnJvbSBlNWYyYTRjY2JhYjE0MWE0MDc5YjVl ZThjOThjYjQyNjRkMzBiMDQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1 IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IEZyaSwgMTIgTWF5IDIwMjMg MTA6MjA6MzMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2OC84NF0gY2xrOiBzdGFyZml2ZTogamg3 MTEwLXN5czogTW9kaWZ5IFBMTCBjbG9ja3Mgc291cmNlCisKK01vZGlmeSBQTEwgY2xvY2tzIHNv dXJjZSB0byBiZSBnb3QgZnJvbSBkdHMgaW5zdGVhZCBvZgordGhlIGZpeGVkIGZhY3RvciBjbG9j a3MuCisKK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5j b20+CistLS0KKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnICAgICAgICAgICAgICAgICAg fCAgMSArCisgLi4uL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN5cy5jICAgIHwg MzEgKysrKy0tLS0tLS0tLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCAyNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tj b25maWcgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCitpbmRleCBhYmUxZGUxZWFmYTcu LjY4MThiZTUxYzA2NyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcK KysrKyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcKK0BAIC0zNSw2ICszNSw3IEBAIGNv bmZpZyBDTEtfU1RBUkZJVkVfSkg3MTEwX1NZUworIAlzZWxlY3QgQVVYSUxJQVJZX0JVUworIAlz ZWxlY3QgQ0xLX1NUQVJGSVZFX0pINzFYMAorIAlzZWxlY3QgUkVTRVRfU1RBUkZJVkVfSkg3MTEw CisrCXNlbGVjdCBDTEtfU1RBUkZJVkVfSkg3MTEwX1BMTAorIAlkZWZhdWx0IEFSQ0hfU1RBUkZJ VkUKKyAJaGVscAorIAkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBzeXN0ZW0gY2xvY2sg Y29udHJvbGxlciBvbiB0aGUKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGst c3RhcmZpdmUtamg3MTEwLXN5cy5jIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZl LWpoNzExMC1zeXMuYworaW5kZXggNWVjMjEwNjQ0ZTFkLi40Mzk5OTlkYzIxOTEgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN5cy5jCisrKysg Yi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN5cy5jCitAQCAtMzk1 LDI5ICszOTUsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBqaDcxMTBfc3lzY3JnX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgCisgCWRldl9zZXRfZHJ2ZGF0YShwcml2LT5kZXYs ICh2b2lkICopKCZwcml2LT5iYXNlKSk7CisgCistCS8qCistCSAqIFRoZXNlIFBMTCBjbG9ja3Mg YXJlIG5vdCBhY3R1YWxseSBmaXhlZCBmYWN0b3IgY2xvY2tzIGFuZCBjYW4gYmUKKy0JICogY29u dHJvbGxlZCBieSB0aGUgc3lzY29uIHJlZ2lzdGVycyBvZiBKSDcxMTAuIFRoZXkgd2lsbCBiZSBk cm9wcGVkCistCSAqIGFuZCByZWdpc3RlcmVkIGluIHRoZSBQTEwgY2xvY2sgZHJpdmVyIGluc3Rl YWQuCistCSAqLworLQkvKiAyNE1IeiAtPiAxMDAwLjBNSHogKi8KKy0JcHJpdi0+cGxsWzBdID0g ZGV2bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKHByaXYtPmRldiwgInBsbDBfb3V0IiwK Ky0JCQkJCQkJICJvc2MiLCAwLCAxMjUsIDMpOworLQlpZiAoSVNfRVJSKHByaXYtPnBsbFswXSkp CistCQlyZXR1cm4gUFRSX0VSUihwcml2LT5wbGxbMF0pOworLQorLQkvKiAyNE1IeiAtPiAxMDY2 LjBNSHogKi8KKy0JcHJpdi0+cGxsWzFdID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFj dG9yKHByaXYtPmRldiwgInBsbDFfb3V0IiwKKy0JCQkJCQkJICJvc2MiLCAwLCA1MzMsIDEyKTsK Ky0JaWYgKElTX0VSUihwcml2LT5wbGxbMV0pKQorLQkJcmV0dXJuIFBUUl9FUlIocHJpdi0+cGxs WzFdKTsKKy0KKy0JLyogMjRNSHogLT4gMTE4OC4wTUh6ICovCistCXByaXYtPnBsbFsyXSA9IGRl dm1fY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX2ZhY3Rvcihwcml2LT5kZXYsICJwbGwyX291dCIsCist CQkJCQkJCSAib3NjIiwgMCwgOTksIDIpOworLQlpZiAoSVNfRVJSKHByaXYtPnBsbFsyXSkpCist CQlyZXR1cm4gUFRSX0VSUihwcml2LT5wbGxbMl0pOworLQorIAlmb3IgKGlkeCA9IDA7IGlkeCA8 IEpINzExMF9TWVNDTEtfRU5EOyBpZHgrKykgeworIAkJdTMyIG1heCA9IGpoNzExMF9zeXNjbGtf ZGF0YVtpZHhdLm1heDsKKyAJCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEgcGFyZW50c1s0XSA9IHt9 OworQEAgLTQ1NSw4ICs0MzIsMTIgQEAgc3RhdGljIGludCBfX2luaXQgamg3MTEwX3N5c2NyZ19w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAkJCQlwYXJlbnRzW2ldLmZ3X25h bWUgPSAidGRtX2V4dCI7CisgCQkJZWxzZSBpZiAocGlkeCA9PSBKSDcxMTBfU1lTQ0xLX01DTEtf RVhUKQorIAkJCQlwYXJlbnRzW2ldLmZ3X25hbWUgPSAibWNsa19leHQiOworLQkJCWVsc2UKKy0J CQkJcGFyZW50c1tpXS5odyA9IHByaXYtPnBsbFtwaWR4IC0gSkg3MTEwX1NZU0NMS19QTEwwX09V VF07CisrCQkJZWxzZSBpZiAocGlkeCA9PSBKSDcxMTBfU1lTQ0xLX1BMTDBfT1VUKQorKwkJCQlw YXJlbnRzW2ldLmZ3X25hbWUgPSAicGxsMF9vdXQiOworKwkJCWVsc2UgaWYgKHBpZHggPT0gSkg3 MTEwX1NZU0NMS19QTEwxX09VVCkKKysJCQkJcGFyZW50c1tpXS5md19uYW1lID0gInBsbDFfb3V0 IjsKKysJCQllbHNlIGlmIChwaWR4ID09IEpINzExMF9TWVNDTEtfUExMMl9PVVQpCisrCQkJCXBh cmVudHNbaV0uZndfbmFtZSA9ICJwbGwyX291dCI7CisgCQl9CisgCisgCQljbGstPmh3LmluaXQg PSAmaW5pdDsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0 Y2hlcy8wMDY5LWR0LWJpbmRpbmdzLXNvYy1zdGFyZml2ZS1BZGQtU3RhckZpdmUtc3lzY29uLW1v ZHVsZS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDY5LWR0LWJpbmRpbmdzLXNv Yy1zdGFyZml2ZS1BZGQtU3RhckZpdmUtc3lzY29uLW1vZHVsZS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41MzY1YzY0NjQ0NGQ2Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNjktZHQtYmluZGluZ3Mtc29jLXN0YXJm aXZlLUFkZC1TdGFyRml2ZS1zeXNjb24tbW9kdWxlLnBhdGNoCkBAIC0wLDAgKzEsOTIgQEAKK0Zy b20gMGQ3MTQ0ZWFkZjdkNDM4ODAxNjM2ZjY1NjEzZDkxMGJlMzNiOTAxMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRlY2gu Y29tPgorRGF0ZTogRnJpLCAxMiBNYXkgMjAyMyAxMDoyMDozNCArMDgwMAorU3ViamVjdDogW1BB VENIIDY5Lzg0XSBkdC1iaW5kaW5nczogc29jOiBzdGFyZml2ZTogQWRkIFN0YXJGaXZlIHN5c2Nv biBtb2R1bGUKKworQWRkIGRvY3VtZW50YXRpb24gdG8gZGVzY3JpYmUgU3RhckZpdmUgU3lzdGVt IENvbnRyb2xsZXIgUmVnaXN0ZXJzLgorCitDby1kZXZlbG9wZWQtYnk6IFhpbmd5dSBXdSA8eGlu Z3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5 dS53dUBzdGFyZml2ZXRlY2guY29tPgorUmV2aWV3ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtl cm5lbC5vcmc+CitTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIFFpdSA8d2lsbGlhbS5xaXVAc3RhcmZp dmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9zb2Mvc3RhcmZpdmUvc3RhcmZpdmUsamg3MTEwLXN5c2Nv bi55YW1sICB8IDY3ICsrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNjcgaW5z ZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3Mvc29jL3N0YXJmaXZlL3N0YXJmaXZlLGpoNzExMC1zeXNjb24ueWFtbAorCitkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvYy9zdGFyZml2ZS9z dGFyZml2ZSxqaDcxMTAtc3lzY29uLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3Mvc29jL3N0YXJmaXZlL3N0YXJmaXZlLGpoNzExMC1zeXNjb24ueWFtbAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uMjZkYzk5Y2IwYzg5CistLS0gL2Rldi9u dWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc29jL3N0YXJmaXZl L3N0YXJmaXZlLGpoNzExMC1zeXNjb24ueWFtbAorQEAgLTAsMCArMSw2NyBAQAorKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyslWUFNTCAxLjIK KystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3NvYy9zdGFyZml2ZS9z dGFyZml2ZSxqaDcxMTAtc3lzY29uLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUu b3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBT b0Mgc3lzdGVtIGNvbnRyb2xsZXIKKysKKyttYWludGFpbmVyczoKKysgIC0gV2lsbGlhbSBRaXUg PHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CisrCisrZGVzY3JpcHRpb246IHwKKysgIFRo ZSBTdGFyRml2ZSBKSDcxMTAgU29DIHN5c3RlbSBjb250cm9sbGVyIHByb3ZpZGVzIHJlZ2lzdGVy IGluZm9ybWF0aW9uIHN1Y2gKKysgIGFzIG9mZnNldCwgbWFzayBhbmQgc2hpZnQgdG8gY29uZmln dXJlIHJlbGF0ZWQgbW9kdWxlcyBzdWNoIGFzIE1NQyBhbmQgUENJZS4KKysKKytwcm9wZXJ0aWVz OgorKyAgY29tcGF0aWJsZToKKysgICAgb25lT2Y6CisrICAgICAgLSBpdGVtczoKKysgICAgICAg ICAgLSBjb25zdDogc3RhcmZpdmUsamg3MTEwLXN5cy1zeXNjb24KKysgICAgICAgICAgLSBjb25z dDogc3lzY29uCisrICAgICAgICAgIC0gY29uc3Q6IHNpbXBsZS1tZmQKKysgICAgICAtIGl0ZW1z OgorKyAgICAgICAgICAtIGVudW06CisrICAgICAgICAgICAgICAtIHN0YXJmaXZlLGpoNzExMC1h b24tc3lzY29uCisrICAgICAgICAgICAgICAtIHN0YXJmaXZlLGpoNzExMC1zdGctc3lzY29uCisr ICAgICAgICAgIC0gY29uc3Q6IHN5c2NvbgorKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQor KworKyAgY2xvY2stY29udHJvbGxlcjoKKysgICAgJHJlZjogL3NjaGVtYXMvY2xvY2svc3RhcmZp dmUsamg3MTEwLXBsbC55YW1sIworKyAgICB0eXBlOiBvYmplY3QKKysKKysgICIjcG93ZXItZG9t YWluLWNlbGxzIjoKKysgICAgY29uc3Q6IDEKKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0aWJs ZQorKyAgLSByZWcKKysKKythbGxPZjoKKysgIC0gaWY6CisrICAgICAgcHJvcGVydGllczoKKysg ICAgICAgIGNvbXBhdGlibGU6CisrICAgICAgICAgIGNvbnRhaW5zOgorKyAgICAgICAgICAgIGNv bnN0OiBzdGFyZml2ZSxqaDcxMTAtYW9uLXN5c2NvbgorKyAgICB0aGVuOgorKyAgICAgIHJlcXVp cmVkOgorKyAgICAgICAgLSAiI3Bvd2VyLWRvbWFpbi1jZWxscyIKKysKKythZGRpdGlvbmFsUHJv cGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAorKyAgICBzeXNjb25AMTAyNDAw MDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtc3RnLXN5c2NvbiIs ICJzeXNjb24iOworKyAgICAgICAgcmVnID0gPDB4MTAyNDAwMDAgMHgxMDAwPjsKKysgICAgfTsK KysKKysgICAgc3lzY29uQDEzMDMwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZp dmUsamg3MTEwLXN5cy1zeXNjb24iLCAic3lzY29uIiwgInNpbXBsZS1tZmQiOworKyAgICAgICAg cmVnID0gPDB4MTMwMzAwMDAgMHgxMDAwPjsKKysgICAgfTsKKysKKysuLi4KKy0tIAorMi40MC4x CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDcwLXJpc2N2LWR0cy1z dGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi1ub2Rlcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDcwLXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi1ub2Rlcy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5kOWJlN2VmMDg0 ODViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNzAtcmlz Y3YtZHRzLXN0YXJmaXZlLWpoNzExMC1BZGQtc3lzY29uLW5vZGVzLnBhdGNoCkBAIC0wLDAgKzEs NjAgQEAKK0Zyb20gNmVmNDYxOThlZGQ1ODczNDkwYTU3NThlOGZlNGI3MDMwOWJkNzc2MiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFy Zml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAxMiBNYXkgMjAyMyAxMDoyMDozNSArMDgwMAorU3Vi amVjdDogW1BBVENIIDcwLzg0XSByaXNjdjogZHRzOiBzdGFyZml2ZTogamg3MTEwOiBBZGQgc3lz Y29uIG5vZGVzCisKK0FkZCBzdGdfc3lzY29uL3N5c19zeXNjb24vYW9uX3N5c2NvbiBub2RlcyBm b3IgSkg3MTEwIFNvYy4KKworQ28tZGV2ZWxvcGVkLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBz dGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3Rh cmZpdmV0ZWNoLmNvbT4KK1Jldmlld2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBt aWNyb2NoaXAuY29tPgorUmV2aWV3ZWQtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxlbWlsLnJl bm5lci5iZXJ0aGluZ0BjYW5vbmljYWwuY29tPgorU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBRaXUg PHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBhcmNoL3Jpc2N2L2Jvb3QvZHRz L3N0YXJmaXZlL2poNzExMC5kdHNpIHwgMTYgKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFu Z2VkLCAxNiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRz L3N0YXJmaXZlL2poNzExMC5kdHNpIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcx MTAuZHRzaQoraW5kZXggZDEyZWNiYmEzODAzLi41ZDI0ODU1OGU0MjEgMTAwNjQ0CistLS0gYS9h cmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCisrKysgYi9hcmNoL3Jpc2N2 L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitAQCAtNDYyLDYgKzQ2MiwxMSBAQCBzdGdj cmc6IGNsb2NrLWNvbnRyb2xsZXJAMTAyMzAwMDAgeworIAkJCSNyZXNldC1jZWxscyA9IDwxPjsK KyAJCX07CisgCisrCQlzdGdfc3lzY29uOiBzeXNjb25AMTAyNDAwMDAgeworKwkJCWNvbXBhdGli bGUgPSAic3RhcmZpdmUsamg3MTEwLXN0Zy1zeXNjb24iLCAic3lzY29uIjsKKysJCQlyZWcgPSA8 MHgwIDB4MTAyNDAwMDAgMHgwIDB4MTAwMD47CisrCQl9OworKworIAkJdWFydDM6IHNlcmlhbEAx MjAwMDAwMCB7CisgCQkJY29tcGF0aWJsZSA9ICJzbnBzLGR3LWFwYi11YXJ0IjsKKyAJCQlyZWcg PSA8MHgwIDB4MTIwMDAwMDAgMHgwIDB4MTAwMDA+OworQEAgLTU2Niw2ICs1NzEsMTEgQEAgc3lz Y3JnOiBjbG9jay1jb250cm9sbGVyQDEzMDIwMDAwIHsKKyAJCQkjcmVzZXQtY2VsbHMgPSA8MT47 CisgCQl9OworIAorKwkJc3lzX3N5c2Nvbjogc3lzY29uQDEzMDMwMDAwIHsKKysJCQljb21wYXRp YmxlID0gInN0YXJmaXZlLGpoNzExMC1zeXMtc3lzY29uIiwgInN5c2NvbiIsICJzaW1wbGUtbWZk IjsKKysJCQlyZWcgPSA8MHgwIDB4MTMwMzAwMDAgMHgwIDB4MTAwMD47CisrCQl9OworKworIAkJ c3lzZ3BpbzogcGluY3RybEAxMzA0MDAwMCB7CisgCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxq aDcxMTAtc3lzLXBpbmN0cmwiOworIAkJCXJlZyA9IDwweDAgMHgxMzA0MDAwMCAweDAgMHgxMDAw MD47CitAQCAtNjE1LDYgKzYyNSwxMiBAQCBhb25jcmc6IGNsb2NrLWNvbnRyb2xsZXJAMTcwMDAw MDAgeworIAkJCSNyZXNldC1jZWxscyA9IDwxPjsKKyAJCX07CisgCisrCQlhb25fc3lzY29uOiBz eXNjb25AMTcwMTAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWFvbi1z eXNjb24iLCAic3lzY29uIjsKKysJCQlyZWcgPSA8MHgwIDB4MTcwMTAwMDAgMHgwIDB4MTAwMD47 CisrCQkJI3Bvd2VyLWRvbWFpbi1jZWxscyA9IDwxPjsKKysJCX07CisrCisgCQlhb25ncGlvOiBw aW5jdHJsQDE3MDIwMDAwIHsKKyAJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1hb24t cGluY3RybCI7CisgCQkJcmVnID0gPDB4MCAweDE3MDIwMDAwIDB4MCAweDEwMDAwPjsKKy0tIAor Mi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDcxLXJpc2N2 LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLVBMTC1jbG9jay1ub2RlLWFuZC1tb2QucGF0Y2ggYi9z cmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA3MS1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFk ZC1QTEwtY2xvY2stbm9kZS1hbmQtbW9kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAuLjAxNDkzOTU2ZmFiNDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xpbnV4Ni4zL3BhdGNoZXMvMDA3MS1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEwLUFkZC1QTEwt Y2xvY2stbm9kZS1hbmQtbW9kLnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKK0Zyb20gNDA2YWZjYjUw NDJmNzk2MmQ2ODIwMmU1OTM0NTliOTZlYTRhZTNlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmks IDEyIE1heSAyMDIzIDEwOjIwOjM2ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNzEvODRdIHJpc2N2 OiBkdHM6IHN0YXJmaXZlOiBqaDcxMTA6IEFkZCBQTEwgY2xvY2sgbm9kZSBhbmQKKyBtb2RpZnkg c3lzY3JnIG5vZGUKKworQWRkIHRoZSBQTEwgY2xvY2sgbm9kZSBmb3IgdGhlIFN0YXJmaXZlIEpI NzExMCBTb0MgYW5kCittb2RpZnkgdGhlIFNZU0NSRyBub2RlIHRvIGFkZCBQTEwgY2xvY2tzIGlu cHV0LgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2gu Y29tPgorLS0tCisgYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSB8IDE0 ICsrKysrKysrKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2po NzExMC5kdHNpIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQoraW5k ZXggNWQyNDg1NThlNDIxLi42YTcyZDMzYjJmNWEgMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0 YXJmaXZlL2poNzExMC5kdHNpCitAQCAtNTYxLDEyICs1NjEsMTYgQEAgc3lzY3JnOiBjbG9jay1j b250cm9sbGVyQDEzMDIwMDAwIHsKKyAJCQkJIDwmZ21hYzFfcmdtaWlfcnhpbj4sCisgCQkJCSA8 Jmkyc3R4X2JjbGtfZXh0PiwgPCZpMnN0eF9scmNrX2V4dD4sCisgCQkJCSA8Jmkyc3J4X2JjbGtf ZXh0PiwgPCZpMnNyeF9scmNrX2V4dD4sCistCQkJCSA8JnRkbV9leHQ+LCA8Jm1jbGtfZXh0PjsK KysJCQkJIDwmdGRtX2V4dD4sIDwmbWNsa19leHQ+LAorKwkJCQkgPCZwbGxjbGsgSkg3MTEwX0NM S19QTEwwX09VVD4sCisrCQkJCSA8JnBsbGNsayBKSDcxMTBfQ0xLX1BMTDFfT1VUPiwKKysJCQkJ IDwmcGxsY2xrIEpINzExMF9DTEtfUExMMl9PVVQ+OworIAkJCWNsb2NrLW5hbWVzID0gIm9zYyIs ICJnbWFjMV9ybWlpX3JlZmluIiwKKyAJCQkJICAgICAgImdtYWMxX3JnbWlpX3J4aW4iLAorIAkJ CQkgICAgICAiaTJzdHhfYmNsa19leHQiLCAiaTJzdHhfbHJja19leHQiLAorIAkJCQkgICAgICAi aTJzcnhfYmNsa19leHQiLCAiaTJzcnhfbHJja19leHQiLAorLQkJCQkgICAgICAidGRtX2V4dCIs ICJtY2xrX2V4dCI7CisrCQkJCSAgICAgICJ0ZG1fZXh0IiwgIm1jbGtfZXh0IiwKKysJCQkJICAg ICAgInBsbDBfb3V0IiwgInBsbDFfb3V0IiwgInBsbDJfb3V0IjsKKyAJCQkjY2xvY2stY2VsbHMg PSA8MT47CisgCQkJI3Jlc2V0LWNlbGxzID0gPDE+OworIAkJfTsKK0BAIC01NzQsNiArNTc4LDEy IEBAIHN5c2NyZzogY2xvY2stY29udHJvbGxlckAxMzAyMDAwMCB7CisgCQlzeXNfc3lzY29uOiBz eXNjb25AMTMwMzAwMDAgeworIAkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXN5cy1z eXNjb24iLCAic3lzY29uIiwgInNpbXBsZS1tZmQiOworIAkJCXJlZyA9IDwweDAgMHgxMzAzMDAw MCAweDAgMHgxMDAwPjsKKysKKysJCQlwbGxjbGs6IGNsb2NrLWNvbnRyb2xsZXIgeworKwkJCQlj b21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wbGwiOworKwkJCQljbG9ja3MgPSA8Jm9zYz47 CisrCQkJCSNjbG9jay1jZWxscyA9IDwxPjsKKysJCQl9OworIAkJfTsKKyAKKyAJCXN5c2dwaW86 IHBpbmN0cmxAMTMwNDAwMDAgeworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwNzItZHQtYmluZGluZ3MtZG1hLXNucHMtZHctYXhpLWRtYWMtY29u c3RyYWluLXRoZS1pdGVtcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDcyLWR0 LWJpbmRpbmdzLWRtYS1zbnBzLWR3LWF4aS1kbWFjLWNvbnN0cmFpbi10aGUtaXRlbXMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMzFmNjEwMDM5M2I2Ygot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDcyLWR0LWJpbmRp bmdzLWRtYS1zbnBzLWR3LWF4aS1kbWFjLWNvbnN0cmFpbi10aGUtaXRlbXMucGF0Y2gKQEAgLTAs MCArMSw2NyBAQAorRnJvbSBhZDkyNzZkZTY1Y2NlZDgyNTdjYTdmZmRmZTAyZDliYmFjOTUxYjNj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVu QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBXZWQsIDIyIE1hciAyMDIzIDE3OjQ4OjE3ICswODAw CitTdWJqZWN0OiBbUEFUQ0ggNzIvODRdIGR0LWJpbmRpbmdzOiBkbWE6IHNucHMsZHctYXhpLWRt YWM6IGNvbnN0cmFpbiB0aGUgaXRlbXMKKyBvZiByZXNldHMgZm9yIEpINzExMCBkbWEKKworVGhl IERNQSBjb250cm9sbGVyIG5lZWRzIHR3byByZXNldCBpdGVtcyB0byB3b3JrIHByb3Blcmx5IG9u IEpINzExMCBTb0MsCitzbyB0aGVyZSBpcyBuZWVkIHRvIGNvbnN0cmFpbiB0aGUgaXRlbXMnIHZh bHVlIHRvIDIsIG90aGVyIHBsYXRmb3JtcworaGF2ZSAxIHJlc2V0IGl0ZW0gYXQgbW9zdC4KKwor UmV2aWV3ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+CitTaWduZWQtb2ZmLWJ5 OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9i aW5kaW5ncy9kbWEvc25wcyxkdy1heGktZG1hYy55YW1sICAgICAgICB8IDIzICsrKysrKysrKysr KysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9z bnBzLGR3LWF4aS1kbWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv ZG1hL3NucHMsZHctYXhpLWRtYWMueWFtbAoraW5kZXggNWM4MTE5NGUyMzAwLi4zNjNjZjhiZDE1 MGQgMTAwNjQ0CistLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZG1hL3Nu cHMsZHctYXhpLWRtYWMueWFtbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2RtYS9zbnBzLGR3LWF4aS1kbWFjLnlhbWwKK0BAIC0yMCw2ICsyMCw3IEBAIHByb3BlcnRp ZXM6CisgICAgIGVudW06CisgICAgICAgLSBzbnBzLGF4aS1kbWEtMS4wMWEKKyAgICAgICAtIGlu dGVsLGttYi1heGktZG1hCisrICAgICAgLSBzdGFyZml2ZSxqaDcxMTAtYXhpLWRtYQorIAorICAg cmVnOgorICAgICBtaW5JdGVtczogMQorQEAgLTU4LDcgKzU5LDggQEAgcHJvcGVydGllczoKKyAg ICAgbWF4aW11bTogOAorIAorICAgcmVzZXRzOgorLSAgICBtYXhJdGVtczogMQorKyAgICBtaW5J dGVtczogMQorKyAgICBtYXhJdGVtczogMgorIAorICAgc25wcyxkbWEtbWFzdGVyczoKKyAgICAg ZGVzY3JpcHRpb246IHwKK0BAIC0xMDksNiArMTExLDI1IEBAIHJlcXVpcmVkOgorICAgLSBzbnBz LHByaW9yaXR5CisgICAtIHNucHMsYmxvY2stc2l6ZQorIAorK2lmOgorKyAgcHJvcGVydGllczoK KysgICAgY29tcGF0aWJsZToKKysgICAgICBjb250YWluczoKKysgICAgICAgIGVudW06CisrICAg ICAgICAgIC0gc3RhcmZpdmUsamg3MTEwLWF4aS1kbWEKKyt0aGVuOgorKyAgcHJvcGVydGllczoK KysgICAgcmVzZXRzOgorKyAgICAgIG1pbkl0ZW1zOiAyCisrICAgICAgaXRlbXM6CisrICAgICAg ICAtIGRlc2NyaXB0aW9uOiBBWEkgcmVzZXQgbGluZQorKyAgICAgICAgLSBkZXNjcmlwdGlvbjog QUhCIHJlc2V0IGxpbmUKKysgICAgICAgIC0gZGVzY3JpcHRpb246IG1vZHVsZSByZXNldAorK2Vs c2U6CisrICBwcm9wZXJ0aWVzOgorKyAgICByZXNldHM6CisrICAgICAgbWF4SXRlbXM6IDEKKysK KyBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKyAKKyBleGFtcGxlczoKKy0tIAorMi40MC4x CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDczLWRtYWVuZ2luZS1k dy1heGktZG1hYy1BZGQtc3VwcG9ydC1mb3ItU3RhckZpdmUtSkg3MTEucGF0Y2ggYi9zcmNwa2dz L2xpbnV4Ni4zL3BhdGNoZXMvMDA3My1kbWFlbmdpbmUtZHctYXhpLWRtYWMtQWRkLXN1cHBvcnQt Zm9yLVN0YXJGaXZlLUpINzExLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLjhjNDUzYWIwNDAyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4 Ni4zL3BhdGNoZXMvMDA3My1kbWFlbmdpbmUtZHctYXhpLWRtYWMtQWRkLXN1cHBvcnQtZm9yLVN0 YXJGaXZlLUpINzExLnBhdGNoCkBAIC0wLDAgKzEsMTI4IEBACitGcm9tIDkwM2Y1NWRlOTAwZTQ5 OTgwMDVmY2M0ZGI0Y2FiNGVjZWI0NGE3ZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFdlZCwg MjIgTWFyIDIwMjMgMTc6NDg6MTggKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA3My84NF0gZG1hZW5n aW5lOiBkdy1heGktZG1hYzogQWRkIHN1cHBvcnQgZm9yIFN0YXJGaXZlIEpINzExMAorIERNQQor CitBZGQgRE1BIHJlc2V0IG9wZXJhdGlvbiBpbiBkZXZpY2UgcHJvYmUgYW5kIHVzZSBkaWZmZXJl bnQgY29uZmlndXJhdGlvbgorb24gQ0hfQ0ZHIHJlZ2lzdGVycyBhY2NvcmRpbmcgdG8gbWF0Y2gg ZGF0YS4gVXBkYXRlIGFsbCB1c2VzIG9mCitvZl9kZXZpY2VfaXNfY29tcGF0aWJsZSB3aXRoIG9m X2RldmljZV9nZXRfbWF0Y2hfZGF0YS4KKworU2lnbmVkLW9mZi1ieTogV2Fsa2VyIENoZW4gPHdh bGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1ieTogRW1pbCBSZW5uZXIgQmVy dGhpbmcgPGVtaWwucmVubmVyLmJlcnRoaW5nQGNhbm9uaWNhbC5jb20+CistLS0KKyAuLi4vZG1h L2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFjLXBsYXRmb3JtLmMgICAgfCAzOCArKysrKysrKysrKysr KysrLS0tCisgZHJpdmVycy9kbWEvZHctYXhpLWRtYWMvZHctYXhpLWRtYWMuaCAgICAgICAgIHwg IDEgKworIDIgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFjLXBsYXRm b3JtLmMgYi9kcml2ZXJzL2RtYS9kdy1heGktZG1hYy9kdy1heGktZG1hYy1wbGF0Zm9ybS5jCitp bmRleCA0MTY5ZTFkN2Q1Y2EuLjZjZmNiNTQxZDhjMyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZG1h L2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFjLXBsYXRmb3JtLmMKKysrKyBiL2RyaXZlcnMvZG1hL2R3 LWF4aS1kbWFjL2R3LWF4aS1kbWFjLXBsYXRmb3JtLmMKK0BAIC0yMSwxMCArMjEsMTIgQEAKKyAj aW5jbHVkZSA8bGludXgva2VybmVsLmg+CisgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorICNp bmNsdWRlIDxsaW51eC9vZi5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyAjaW5j bHVkZSA8bGludXgvb2ZfZG1hLmg+CisgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o PgorICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisgI2luY2x1ZGUgPGxpbnV4L3Byb3Bl cnR5Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisgI2luY2x1ZGUgPGxpbnV4L3NsYWIu aD4KKyAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyAKK0BAIC00Niw2ICs0OCwxMCBAQAorIAlE TUFfU0xBVkVfQlVTV0lEVEhfMzJfQllURVMJfCBcCisgCURNQV9TTEFWRV9CVVNXSURUSF82NF9C WVRFUykKKyAKKysjZGVmaW5lIEFYSV9ETUFfRkxBR19IQVNfQVBCX1JFR1MJQklUKDApCisrI2Rl ZmluZSBBWElfRE1BX0ZMQUdfSEFTX1JFU0VUUwkJQklUKDEpCisrI2RlZmluZSBBWElfRE1BX0ZM QUdfVVNFX0NGRzIJCUJJVCgyKQorKworIHN0YXRpYyBpbmxpbmUgdm9pZAorIGF4aV9kbWFfaW93 cml0ZTMyKHN0cnVjdCBheGlfZG1hX2NoaXAgKmNoaXAsIHUzMiByZWcsIHUzMiB2YWwpCisgewor QEAgLTg2LDcgKzkyLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGF4aV9jaGFuX2NvbmZpZ193cml0 ZShzdHJ1Y3QgYXhpX2RtYV9jaGFuICpjaGFuLAorIAorIAljZmdfbG8gPSAoY29uZmlnLT5kc3Rf bXVsdGJsa190eXBlIDw8IENIX0NGR19MX0RTVF9NVUxUQkxLX1RZUEVfUE9TIHwKKyAJCSAgY29u ZmlnLT5zcmNfbXVsdGJsa190eXBlIDw8IENIX0NGR19MX1NSQ19NVUxUQkxLX1RZUEVfUE9TKTsK Ky0JaWYgKGNoYW4tPmNoaXAtPmR3LT5oZGF0YS0+cmVnX21hcF84X2NoYW5uZWxzKSB7CisrCWlm IChjaGFuLT5jaGlwLT5kdy0+aGRhdGEtPnJlZ19tYXBfOF9jaGFubmVscyAmJgorKwkgICAgIWNo YW4tPmNoaXAtPmR3LT5oZGF0YS0+dXNlX2NmZzIpIHsKKyAJCWNmZ19oaSA9IGNvbmZpZy0+dHRf ZmMgPDwgQ0hfQ0ZHX0hfVFRfRkNfUE9TIHwKKyAJCQkgY29uZmlnLT5oc19zZWxfc3JjIDw8IENI X0NGR19IX0hTX1NFTF9TUkNfUE9TIHwKKyAJCQkgY29uZmlnLT5oc19zZWxfZHN0IDw8IENIX0NG R19IX0hTX1NFTF9EU1RfUE9TIHwKK0BAIC0xMzY3LDEwICsxMzc0LDExIEBAIHN0YXRpYyBpbnQg cGFyc2VfZGV2aWNlX3Byb3BlcnRpZXMoc3RydWN0IGF4aV9kbWFfY2hpcCAqY2hpcCkKKyAKKyBz dGF0aWMgaW50IGR3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgeworLQlz dHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUgPSBwZGV2LT5kZXYub2Zfbm9kZTsKKyAJc3RydWN0IGF4 aV9kbWFfY2hpcCAqY2hpcDsKKyAJc3RydWN0IGR3X2F4aV9kbWEgKmR3OworIAlzdHJ1Y3QgZHdf YXhpX2RtYV9oY2ZnICpoZGF0YTsKKysJc3RydWN0IHJlc2V0X2NvbnRyb2wgKnJlc2V0czsKKysJ dW5zaWduZWQgaW50IGZsYWdzOworIAl1MzIgaTsKKyAJaW50IHJldDsKKyAKK0BAIC0xMzk4LDEy ICsxNDA2LDI1IEBAIHN0YXRpYyBpbnQgZHdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKKyAJaWYgKElTX0VSUihjaGlwLT5yZWdzKSkKKyAJCXJldHVybiBQVFJfRVJSKGNoaXAt PnJlZ3MpOworIAorLQlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobm9kZSwgImludGVsLGtt Yi1heGktZG1hIikpIHsKKysJZmxhZ3MgPSAodWludHB0cl90KW9mX2RldmljZV9nZXRfbWF0Y2hf ZGF0YSgmcGRldi0+ZGV2KTsKKysJaWYgKGZsYWdzICYgQVhJX0RNQV9GTEFHX0hBU19BUEJfUkVH UykgeworIAkJY2hpcC0+YXBiX3JlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2Uo cGRldiwgMSk7CisgCQlpZiAoSVNfRVJSKGNoaXAtPmFwYl9yZWdzKSkKKyAJCQlyZXR1cm4gUFRS X0VSUihjaGlwLT5hcGJfcmVncyk7CisgCX0KKyAKKysJaWYgKGZsYWdzICYgQVhJX0RNQV9GTEFH X0hBU19SRVNFVFMpIHsKKysJCXJlc2V0cyA9IGRldm1fcmVzZXRfY29udHJvbF9hcnJheV9nZXRf ZXhjbHVzaXZlKCZwZGV2LT5kZXYpOworKwkJaWYgKElTX0VSUihyZXNldHMpKQorKwkJCXJldHVy biBQVFJfRVJSKHJlc2V0cyk7CisrCisrCQlyZXQgPSByZXNldF9jb250cm9sX2RlYXNzZXJ0KHJl c2V0cyk7CisrCQlpZiAocmV0KQorKwkJCXJldHVybiByZXQ7CisrCX0KKysKKysJY2hpcC0+ZHct PmhkYXRhLT51c2VfY2ZnMiA9ICEhKGZsYWdzICYgQVhJX0RNQV9GTEFHX1VTRV9DRkcyKTsKKysK KyAJY2hpcC0+Y29yZV9jbGsgPSBkZXZtX2Nsa19nZXQoY2hpcC0+ZGV2LCAiY29yZS1jbGsiKTsK KyAJaWYgKElTX0VSUihjaGlwLT5jb3JlX2NsaykpCisgCQlyZXR1cm4gUFRSX0VSUihjaGlwLT5j b3JlX2Nsayk7CitAQCAtMTU1NCw4ICsxNTc1LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2 X3BtX29wcyBkd19heGlfZG1hX3BtX29wcyA9IHsKKyB9OworIAorIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIGR3X2RtYV9vZl9pZF90YWJsZVtdID0geworLQl7IC5jb21wYXRpYmxl ID0gInNucHMsYXhpLWRtYS0xLjAxYSIgfSwKKy0JeyAuY29tcGF0aWJsZSA9ICJpbnRlbCxrbWIt YXhpLWRtYSIgfSwKKysJeworKwkJLmNvbXBhdGlibGUgPSAic25wcyxheGktZG1hLTEuMDFhIgor Kwl9LCB7CisrCQkuY29tcGF0aWJsZSA9ICJpbnRlbCxrbWItYXhpLWRtYSIsCisrCQkuZGF0YSA9 ICh2b2lkICopQVhJX0RNQV9GTEFHX0hBU19BUEJfUkVHUywKKysJfSwgeworKwkJLmNvbXBhdGli bGUgPSAic3RhcmZpdmUsamg3MTEwLWF4aS1kbWEiLAorKwkJLmRhdGEgPSAodm9pZCAqKShBWElf RE1BX0ZMQUdfSEFTX1JFU0VUUyB8IEFYSV9ETUFfRkxBR19VU0VfQ0ZHMiksCisrCX0sCisgCXt9 CisgfTsKKyBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd19kbWFfb2ZfaWRfdGFibGUpOworZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFjLmggYi9kcml2ZXJz L2RtYS9kdy1heGktZG1hYy9kdy1heGktZG1hYy5oCitpbmRleCBlOWQ1ZWIwZmQ1OTQuLmViMjY3 Y2IyNGY2NyAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZG1hL2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFj LmgKKysrKyBiL2RyaXZlcnMvZG1hL2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFjLmgKK0BAIC0zMyw2 ICszMyw3IEBAIHN0cnVjdCBkd19heGlfZG1hX2hjZmcgeworIAkvKiBSZWdpc3RlciBtYXAgZm9y IERNQVhfTlVNX0NIQU5ORUxTIDw9IDggKi8KKyAJYm9vbAlyZWdfbWFwXzhfY2hhbm5lbHM7Cisg CWJvb2wJcmVzdHJpY3RfYXhpX2J1cnN0X2xlbjsKKysJYm9vbAl1c2VfY2ZnMjsKKyB9OworIAor IHN0cnVjdCBheGlfZG1hX2NoYW4geworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwNzQtZG1hZW5naW5lLWR3LWF4aS1kbWFjLUluY3JlYXNlLXBv bGxpbmctdGltZS10by1ETUEtdC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDc0 LWRtYWVuZ2luZS1kdy1heGktZG1hYy1JbmNyZWFzZS1wb2xsaW5nLXRpbWUtdG8tRE1BLXQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTAzMjM4YWZjMjE2 YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDc0LWRtYWVu Z2luZS1kdy1heGktZG1hYy1JbmNyZWFzZS1wb2xsaW5nLXRpbWUtdG8tRE1BLXQucGF0Y2gKQEAg LTAsMCArMSwzNCBAQAorRnJvbSA1NzYyNWU5NzgxOGQxOWQwY2NiMzdjZTgzMWJmMTkzYjM1YTQx NjliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2Fsa2VyIENoZW4gPHdhbGtlci5j aGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBXZWQsIDIyIE1hciAyMDIzIDE3OjQ4OjE5ICsw ODAwCitTdWJqZWN0OiBbUEFUQ0ggNzQvODRdIGRtYWVuZ2luZTogZHctYXhpLWRtYWM6IEluY3Jl YXNlIHBvbGxpbmcgdGltZSB0byBETUEKKyB0cmFuc21pc3Npb24gY29tcGxldGlvbiBzdGF0dXMK KworVGhlIGJpdCBETUFDX0NIRU5bMF0gaXMgYXV0b21hdGljYWxseSBjbGVhcmVkIGJ5IGhhcmR3 YXJlIHRvIGRpc2FibGUgdGhlCitjaGFubmVsIGFmdGVyIHRoZSBsYXN0IEFNQkEgdHJhbnNmZXIg b2YgdGhlIERNQSB0cmFuc2ZlciB0byB0aGUKK2Rlc3RpbmF0aW9uIGhhcyBjb21wbGV0ZWQuIFNv ZnR3YXJlIGNhbiB0aGVyZWZvcmUgcG9sbCB0aGlzIGJpdCB0bworZGV0ZXJtaW5lIHdoZW4gdGhp cyBjaGFubmVsIGlzIGZyZWUgZm9yIGEgbmV3IERNQSB0cmFuc2Zlci4KK1RoaXMgdGltZSByZXF1 aXJlcyBhdCBsZWFzdCA0MCBtaWxsaXNlY29uZHMgb24gSkg3MTEwIFNvQywgb3RoZXJ3aXNlIGFu CitlcnJvciBtZXNzYWdlICdmYWlsZWQgdG8gc3RvcCcgd2lsbCBiZSByZXBvcnRlZC4KKworU2ln bmVkLW9mZi1ieTogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+Cist LS0KKyBkcml2ZXJzL2RtYS9kdy1heGktZG1hYy9kdy1heGktZG1hYy1wbGF0Zm9ybS5jIHwgMiAr LQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9kbWEvZHctYXhpLWRtYWMvZHctYXhpLWRtYWMtcGxhdGZvcm0uYyBi L2RyaXZlcnMvZG1hL2R3LWF4aS1kbWFjL2R3LWF4aS1kbWFjLXBsYXRmb3JtLmMKK2luZGV4IDZj ZmNiNTQxZDhjMy4uNjkzN2NjMGMwYjY1IDEwMDY0NAorLS0tIGEvZHJpdmVycy9kbWEvZHctYXhp LWRtYWMvZHctYXhpLWRtYWMtcGxhdGZvcm0uYworKysrIGIvZHJpdmVycy9kbWEvZHctYXhpLWRt YWMvZHctYXhpLWRtYWMtcGxhdGZvcm0uYworQEAgLTExNDcsNyArMTE0Nyw3IEBAIHN0YXRpYyBp bnQgZG1hX2NoYW5fdGVybWluYXRlX2FsbChzdHJ1Y3QgZG1hX2NoYW4gKmRjaGFuKQorIAlheGlf Y2hhbl9kaXNhYmxlKGNoYW4pOworIAorIAlyZXQgPSByZWFkbF9wb2xsX3RpbWVvdXRfYXRvbWlj KGNoYW4tPmNoaXAtPnJlZ3MgKyBETUFDX0NIRU4sIHZhbCwKKy0JCQkJCSEodmFsICYgY2hhbl9h Y3RpdmUpLCAxMDAwLCAxMDAwMCk7CisrCQkJCQkhKHZhbCAmIGNoYW5fYWN0aXZlKSwgMTAwMCwg NTAwMDApOworIAlpZiAocmV0ID09IC1FVElNRURPVVQpCisgCQlkZXZfd2FybihkY2hhbjJkZXYo ZGNoYW4pLAorIAkJCSAiJXMgZmFpbGVkIHRvIHN0b3BcbiIsIGF4aV9jaGFuX25hbWUoY2hhbikp OworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw NzUtcmlzY3YtZHRzLXN0YXJmaXZlLWFkZC1kbWEtY29udHJvbGxlci1ub2RlLnBhdGNoIGIvc3Jj cGtncy9saW51eDYuMy9wYXRjaGVzLzAwNzUtcmlzY3YtZHRzLXN0YXJmaXZlLWFkZC1kbWEtY29u dHJvbGxlci1ub2RlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAuLjViYmZiM2JkOWQ3NTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3Bh dGNoZXMvMDA3NS1yaXNjdi1kdHMtc3RhcmZpdmUtYWRkLWRtYS1jb250cm9sbGVyLW5vZGUucGF0 Y2gKQEAgLTAsMCArMSw0NSBAQAorRnJvbSA3MDFjNjk0MzRjNTRjMGJiMmIwZmRmOTQ1YjRhMDMw MjNhMmQ3MDU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2Fsa2VyIENoZW4gPHdh bGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBXZWQsIDIyIE1hciAyMDIzIDE3OjQ4 OjIwICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNzUvODRdIHJpc2N2OiBkdHM6IHN0YXJmaXZlOiBh ZGQgZG1hIGNvbnRyb2xsZXIgbm9kZQorCitBZGQgdGhlIGRtYSBjb250cm9sbGVyIG5vZGUgZm9y IHRoZSBTdGFyZml2ZSBKSDcxMTAgU29DLgorCitSZXZpZXdlZC1ieTogRW1pbCBSZW5uZXIgQmVy dGhpbmcgPGVtaWwucmVubmVyLmJlcnRoaW5nQGNhbm9uaWNhbC5jb20+CitTaWduZWQtb2ZmLWJ5 OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGFyY2gv cmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgfCAxOCArKysrKysrKysrKysrKysr KysKKyAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXJj aC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9k dHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK2luZGV4IDZhNzJkMzNiMmY1YS4uMTgwNjY1ZmZjNmZk IDEwMDY0NAorLS0tIGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQor KysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorQEAgLTYxOCw2 ICs2MTgsMjQgQEAgdGltZXJAMTMwNTAwMDAgeworIAkJCQkgICAgICAiY2gyIiwgImNoMyI7Cisg CQl9OworIAorKwkJZG1hOiBkbWEtY29udHJvbGxlckAxNjA1MDAwMCB7CisrCQkJY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMTAtYXhpLWRtYSI7CisrCQkJcmVnID0gPDB4MCAweDE2MDUwMDAw IDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX0RNQTFQ X0FYST4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX0RNQTFQX0FIQj47CisrCQkJY2xv Y2stbmFtZXMgPSAiY29yZS1jbGsiLCAiY2Znci1jbGsiOworKwkJCXJlc2V0cyA9IDwmc3RnY3Jn IEpINzExMF9TVEdSU1RfRE1BMVBfQVhJPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1Rf RE1BMVBfQUhCPjsKKysJCQlpbnRlcnJ1cHRzID0gPDczPjsKKysJCQkjZG1hLWNlbGxzID0gPDE+ OworKwkJCWRtYS1jaGFubmVscyA9IDw0PjsKKysJCQlzbnBzLGRtYS1tYXN0ZXJzID0gPDE+Owor KwkJCXNucHMsZGF0YS13aWR0aCA9IDwzPjsKKysJCQlzbnBzLGJsb2NrLXNpemUgPSA8NjU1MzYg NjU1MzYgNjU1MzYgNjU1MzY+OworKwkJCXNucHMscHJpb3JpdHkgPSA8MCAxIDIgMz47CisrCQkJ c25wcyxheGktbWF4LWJ1cnN0LWxlbiA9IDwxNj47CisrCQl9OworKworIAkJYW9uY3JnOiBjbG9j ay1jb250cm9sbGVyQDE3MDAwMDAwIHsKKyAJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC1hb25jcmciOworIAkJCXJlZyA9IDwweDAgMHgxNzAwMDAwMCAweDAgMHgxMDAwMD47CistLSAK KzIuNDAuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA3Ni1BU29D LWR0LWJpbmRpbmdzLUFkZC1URE0tY29udHJvbGxlci1iaW5kaW5ncy1mb3ItU3RhLnBhdGNoIGIv c3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNzYtQVNvQy1kdC1iaW5kaW5ncy1BZGQtVERNLWNv bnRyb2xsZXItYmluZGluZ3MtZm9yLVN0YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi43YzM4NThmNDA0ZDNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9saW51eDYuMy9wYXRjaGVzLzAwNzYtQVNvQy1kdC1iaW5kaW5ncy1BZGQtVERNLWNvbnRyb2xs ZXItYmluZGluZ3MtZm9yLVN0YS5wYXRjaApAQCAtMCwwICsxLDEyMyBAQAorRnJvbSA0YTllMmRj YTE5NDAyYzU0NWU2ZmVhMzY4ZTc3NzNhMjAwMjg5YWU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRl OiBUaHUsIDExIE1heSAyMDIzIDE3OjE1OjQ3ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNzYvODRd IEFTb0M6IGR0LWJpbmRpbmdzOiBBZGQgVERNIGNvbnRyb2xsZXIgYmluZGluZ3MgZm9yCisgU3Rh ckZpdmUgSkg3MTEwCisKK0FkZCBiaW5kaW5ncyBmb3IgVERNIGRyaXZlciB3aGljaCBzdXBwb3J0 cyBtdWx0aS1jaGFubmVsIGF1ZGlvIHBsYXliYWNrCithbmQgY2FwdHVyZSBvbiBKSDcxMTAgcGxh dGZvcm0uCisKK1Jldmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5c3p0b2Yua296 bG93c2tpQGxpbmFyby5vcmc+CitTaWduZWQtb2ZmLWJ5OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNo ZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9iaW5kaW5ncy9zb3VuZC9zdGFyZml2ZSxq aDcxMTAtdGRtLnlhbWwgICB8IDk4ICsrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdl ZCwgOTggaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3MTEwLXRkbS55YW1sCisKK2RpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUs amg3MTEwLXRkbS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5k L3N0YXJmaXZlLGpoNzExMC10ZG0ueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAwMDAwMC4uYWJiMzczZmJmYTI2CistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3MTEwLXRkbS55YW1sCitA QCAtMCwwICsxLDk4IEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25s eSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNl dHJlZS5vcmcvc2NoZW1hcy9zb3VuZC9zdGFyZml2ZSxqaDcxMTAtdGRtLnlhbWwjCisrJHNjaGVt YTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0 bGU6IFN0YXJGaXZlIEpINzExMCBURE0gQ29udHJvbGxlcgorKworK2Rlc2NyaXB0aW9uOiB8Cisr ICBUaGUgVERNIENvbnRyb2xsZXIgaXMgYSBUaW1lIERpdmlzaW9uIE11bHRpcGxleGVkIGF1ZGlv IGludGVyZmFjZQorKyAgaW50ZWdyYXRlZCBpbiBTdGFyRml2ZSBKSDcxMTAgU29DLCBhbGxvd2lu ZyB1cCB0byA4IGNoYW5uZWxzIG9mCisrICBhdWRpbyBvdmVyIGEgc2VyaWFsIGludGVyZmFjZS4g VGhlIFRETSBjb250cm9sbGVyIGNhbiBvcGVyYXRlIGJvdGgKKysgIGluIG1hc3RlciBhbmQgc2xh dmUgbW9kZS4KKysKKyttYWludGFpbmVyczoKKysgIC0gV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVu QHN0YXJmaXZldGVjaC5jb20+CisrCisrYWxsT2Y6CisrICAtICRyZWY6IGRhaS1jb21tb24ueWFt bCMKKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgZW51bToKKysgICAgICAt IHN0YXJmaXZlLGpoNzExMC10ZG0KKysKKysgIHJlZzoKKysgICAgbWF4SXRlbXM6IDEKKysKKysg IGNsb2NrczoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogVERNIEFIQiBDbG9j aworKyAgICAgIC0gZGVzY3JpcHRpb246IFRETSBBUEIgQ2xvY2sKKysgICAgICAtIGRlc2NyaXB0 aW9uOiBURE0gSW50ZXJuYWwgQ2xvY2sKKysgICAgICAtIGRlc2NyaXB0aW9uOiBURE0gQ2xvY2sK KysgICAgICAtIGRlc2NyaXB0aW9uOiBJbm5lciBNQ0xLCisrICAgICAgLSBkZXNjcmlwdGlvbjog VERNIEV4dGVybmFsIENsb2NrCisrCisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAg ICAgLSBjb25zdDogdGRtX2FoYgorKyAgICAgIC0gY29uc3Q6IHRkbV9hcGIKKysgICAgICAtIGNv bnN0OiB0ZG1faW50ZXJuYWwKKysgICAgICAtIGNvbnN0OiB0ZG0KKysgICAgICAtIGNvbnN0OiBt Y2xrX2lubmVyCisrICAgICAgLSBjb25zdDogdGRtX2V4dAorKworKyAgcmVzZXRzOgorKyAgICBp dGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiB0ZG0gYWhiIHJlc2V0IGxpbmUKKysgICAgICAt IGRlc2NyaXB0aW9uOiB0ZG0gYXBiIHJlc2V0IGxpbmUKKysgICAgICAtIGRlc2NyaXB0aW9uOiB0 ZG0gY29yZSByZXNldCBsaW5lCisrCisrICBkbWFzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRl c2NyaXB0aW9uOiBSWCBETUEgQ2hhbm5lbAorKyAgICAgIC0gZGVzY3JpcHRpb246IFRYIERNQSBD aGFubmVsCisrCisrICBkbWEtbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHJ4 CisrICAgICAgLSBjb25zdDogdHgKKysKKysgICIjc291bmQtZGFpLWNlbGxzIjoKKysgICAgY29u c3Q6IDAKKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0aWJsZQorKyAgLSByZWcKKysgIC0gY2xv Y2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtIHJlc2V0cworKyAgLSBkbWFzCisrICAtIGRtYS1u YW1lcworKyAgLSAiI3NvdW5kLWRhaS1jZWxscyIKKysKKythZGRpdGlvbmFsUHJvcGVydGllczog ZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAorKyAgICB0ZG1AMTAwOTAwMDAgeworKyAgICAg ICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtdGRtIjsKKysgICAgICAgIHJlZyA9IDww eDEwMDkwMDAwIDB4MTAwMD47CisrICAgICAgICBjbG9ja3MgPSA8JnN5c2NyZyAxODQ+LAorKyAg ICAgICAgICAgICAgICAgPCZzeXNjcmcgMTg1PiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3Jn IDE4Nj4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyAxODc+LAorKyAgICAgICAgICAgICAg ICAgPCZzeXNjcmcgMTc+LAorKyAgICAgICAgICAgICAgICAgPCZ0ZG1fZXh0PjsKKysgICAgICAg IGNsb2NrLW5hbWVzID0gInRkbV9haGIiLCAidGRtX2FwYiIsCisrICAgICAgICAgICAgICAgICAg ICAgICJ0ZG1faW50ZXJuYWwiLCAidGRtIiwKKysgICAgICAgICAgICAgICAgICAgICAgIm1jbGtf aW5uZXIiLCAidGRtX2V4dCI7CisrICAgICAgICByZXNldHMgPSA8JnN5c2NyZyAxMDU+LAorKyAg ICAgICAgICAgICAgICAgPCZzeXNjcmcgMTA3PiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3Jn IDEwNj47CisrICAgICAgICBkbWFzID0gPCZkbWEgMjA+LCA8JmRtYSAyMT47CisrICAgICAgICBk bWEtbmFtZXMgPSAicngiLCJ0eCI7CisrICAgICAgICAjc291bmQtZGFpLWNlbGxzID0gPDA+Owor KyAgICB9OworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRj aGVzLzAwNzctQVNvQy1zdGFyZml2ZS1BZGQtSkg3MTEwLVRETS1kcml2ZXIucGF0Y2ggYi9zcmNw a2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA3Ny1BU29DLXN0YXJmaXZlLUFkZC1KSDcxMTAtVERNLWRy aXZlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lYzc1 NzAzNTRmYjhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw NzctQVNvQy1zdGFyZml2ZS1BZGQtSkg3MTEwLVRETS1kcml2ZXIucGF0Y2gKQEAgLTAsMCArMSw3 OTkgQEAKK0Zyb20gMzNiOTAwMjViMTZhMjhiNWVlNzkyNGRmYjI0MDFiZmZmMTY4ZGI3ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdhbGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFy Zml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCAxMSBNYXkgMjAyMyAxNzoxNTo0OCArMDgwMAorU3Vi amVjdDogW1BBVENIIDc3Lzg0XSBBU29DOiBzdGFyZml2ZTogQWRkIEpINzExMCBURE0gZHJpdmVy CisKK0FkZCB0ZG0gZHJpdmVyIHN1cHBvcnQgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29DLgor CitTaWduZWQtb2ZmLWJ5OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNv bT4KKy0tLQorIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKworIHNvdW5k L3NvYy9LY29uZmlnICAgICAgICAgICAgICAgfCAgIDEgKworIHNvdW5kL3NvYy9NYWtlZmlsZSAg ICAgICAgICAgICAgfCAgIDEgKworIHNvdW5kL3NvYy9zdGFyZml2ZS9LY29uZmlnICAgICAgfCAg MTUgKworIHNvdW5kL3NvYy9zdGFyZml2ZS9NYWtlZmlsZSAgICAgfCAgIDIgKworIHNvdW5kL3Nv Yy9zdGFyZml2ZS9qaDcxMTBfdGRtLmMgfCA1NTQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKKyBzb3VuZC9zb2Mvc3RhcmZpdmUvamg3MTEwX3RkbS5oIHwgMTM4ICsrKysrKysrCisg NyBmaWxlcyBjaGFuZ2VkLCA3MTcgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBz b3VuZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZworIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3VuZC9zb2Mv c3RhcmZpdmUvTWFrZWZpbGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc291bmQvc29jL3N0YXJmaXZl L2poNzExMF90ZG0uYworIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3VuZC9zb2Mvc3RhcmZpdmUvamg3 MTEwX3RkbS5oCisKK2RpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCitpbmRl eCA2MjVkMjU5OTM3ZTkuLjE3ODMwYjNhMTk1ZCAxMDA2NDQKKy0tLSBhL01BSU5UQUlORVJTCisr KysgYi9NQUlOVEFJTkVSUworQEAgLTE5OTUxLDYgKzE5OTUxLDEyIEBAIEY6CURvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9wb3dlci9zdGFyZml2ZSoKKyBGOglkcml2ZXJzL3NvYy9z dGFyZml2ZS9qaDcxeHhfcG11LmMKKyBGOglpbmNsdWRlL2R0LWJpbmRpbmdzL3Bvd2VyL3N0YXJm aXZlLGpoNzExMC1wbXUuaAorIAorK1NUQVJGSVZFIEpINzExMCBURE0gRFJJVkVSUworK006CVdh bGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorK1M6CU1haW50YWluZWQK KytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3 MTEwLXRkbS55YW1sCisrRjoJc291bmQvc29jL3N0YXJmaXZlL2poNzExMC10ZG0uKgorKworIFNU QVJGSVZFIFNPQyBEUklWRVJTCisgTToJQ29ub3IgRG9vbGV5IDxjb25vckBrZXJuZWwub3JnPgor IFM6CU1haW50YWluZWQKK2RpZmYgLS1naXQgYS9zb3VuZC9zb2MvS2NvbmZpZyBiL3NvdW5kL3Nv Yy9LY29uZmlnCitpbmRleCA4NDhmYmFlMjZjM2IuLjhkMWQ5NDAxZWNmMiAxMDA2NDQKKy0tLSBh L3NvdW5kL3NvYy9LY29uZmlnCisrKysgYi9zb3VuZC9zb2MvS2NvbmZpZworQEAgLTkxLDYgKzkx LDcgQEAgc291cmNlICJzb3VuZC9zb2Mvc2gvS2NvbmZpZyIKKyBzb3VyY2UgInNvdW5kL3NvYy9z b2YvS2NvbmZpZyIKKyBzb3VyY2UgInNvdW5kL3NvYy9zcGVhci9LY29uZmlnIgorIHNvdXJjZSAi c291bmQvc29jL3NwcmQvS2NvbmZpZyIKKytzb3VyY2UgInNvdW5kL3NvYy9zdGFyZml2ZS9LY29u ZmlnIgorIHNvdXJjZSAic291bmQvc29jL3N0aS9LY29uZmlnIgorIHNvdXJjZSAic291bmQvc29j L3N0bS9LY29uZmlnIgorIHNvdXJjZSAic291bmQvc29jL3N1bnhpL0tjb25maWciCitkaWZmIC0t Z2l0IGEvc291bmQvc29jL01ha2VmaWxlIGIvc291bmQvc29jL01ha2VmaWxlCitpbmRleCA1MDdl YWVkMWQ2YTEuLjY1YWViNGVmNDA2OCAxMDA2NDQKKy0tLSBhL3NvdW5kL3NvYy9NYWtlZmlsZQor KysrIGIvc291bmQvc29jL01ha2VmaWxlCitAQCAtNTksNiArNTksNyBAQCBvYmotJChDT05GSUdf U05EX1NPQykJKz0gc2gvCisgb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IHNvZi8KKyBvYmotJChD T05GSUdfU05EX1NPQykJKz0gc3BlYXIvCisgb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IHNwcmQv Cisrb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IHN0YXJmaXZlLworIG9iai0kKENPTkZJR19TTkRf U09DKQkrPSBzdGkvCisgb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IHN0bS8KKyBvYmotJChDT05G SUdfU05EX1NPQykJKz0gc3VueGkvCitkaWZmIC0tZ2l0IGEvc291bmQvc29jL3N0YXJmaXZlL0tj b25maWcgYi9zb3VuZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZworbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAwMC4uZmFmYjY4MWY4YzBhCistLS0gL2Rldi9udWxsCisrKysgYi9z b3VuZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZworQEAgLTAsMCArMSwxNSBAQAorKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorK2NvbmZpZyBTTkRfU09DX1NUQVJGSVZFCisr CXRyaXN0YXRlICJBdWRpbyBzdXBwb3J0IGZvciBTdGFyRml2ZSBTb0MiCisrCWRlcGVuZHMgb24g Q09NUElMRV9URVNUIHx8IEFSQ0hfU1RBUkZJVkUKKysJaGVscAorKwkgIFNheSBZIG9yIE0gaWYg eW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bworKwkgIHRoZSBT dGFyZml2ZSBTb0NzJyBBdWRpbyBpbnRlcmZhY2VzLiBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8KKysJ ICBzZWxlY3QgdGhlIGF1ZGlvIGludGVyZmFjZXMgdG8gc3VwcG9ydCBiZWxvdy4KKysKKytjb25m aWcgU05EX1NPQ19KSDcxMTBfVERNCisrCXRyaXN0YXRlICJKSDcxMTAgVERNIGRldmljZSBkcml2 ZXIiCisrCWRlcGVuZHMgb24gSEFWRV9DTEsgJiYgU05EX1NPQ19TVEFSRklWRQorKwlzZWxlY3Qg U05EX1NPQ19HRU5FUklDX0RNQUVOR0lORV9QQ00KKysJaGVscAorKwkgIFNheSBZIG9yIE0gaWYg eW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIFN0YXJGaXZlIFRETSBkcml2ZXIuCitkaWZmIC0t Z2l0IGEvc291bmQvc29jL3N0YXJmaXZlL01ha2VmaWxlIGIvc291bmQvc29jL3N0YXJmaXZlL01h a2VmaWxlCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5mN2Q5NjAy MTFkNzIKKy0tLSAvZGV2L251bGwKKysrKyBiL3NvdW5kL3NvYy9zdGFyZml2ZS9NYWtlZmlsZQor QEAgLTAsMCArMSwyIEBACisrIyBTdGFyRml2ZSBQbGF0Zm9ybSBTdXBwb3J0Cisrb2JqLSQoQ09O RklHX1NORF9TT0NfSkg3MTEwX1RETSkgKz0gamg3MTEwX3RkbS5vCitkaWZmIC0tZ2l0IGEvc291 bmQvc29jL3N0YXJmaXZlL2poNzExMF90ZG0uYyBiL3NvdW5kL3NvYy9zdGFyZml2ZS9qaDcxMTBf dGRtLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjFmOTRjYzIx MDE0MAorLS0tIC9kZXYvbnVsbAorKysrIGIvc291bmQvc29jL3N0YXJmaXZlL2poNzExMF90ZG0u YworQEAgLTAsMCArMSw1NTQgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MAorKy8qCisrICogamg3MTEwX3RkbS5jIC0tIFN0YXJGaXZlIEpINzExMCBURE0gZHJpdmVyCisr ICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4K KysgKgorKyAqIEF1dGhvcjogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5j b20+CisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9k ZXZpY2UuaD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L29m X2lycS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgorKyNpbmNsdWRlIDxsaW51 eC9wbV9ydW50aW1lLmg+CisrI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorKyNpbmNsdWRlIDxs aW51eC9yZXNldC5oPgorKyNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CisrI2luY2x1ZGUgPHNv dW5kL3BjbV9wYXJhbXMuaD4KKysjaW5jbHVkZSA8c291bmQvc29jLmg+CisrI2luY2x1ZGUgPHNv dW5kL3NvYy1kYWkuaD4KKysjaW5jbHVkZSAiamg3MTEwX3RkbS5oIgorKworK3N0YXRpYyBpbmxp bmUgdTMyIGpoNzExMF90ZG1fcmVhZGwoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0sIHUxNiBy ZWcpCisreworKwlyZXR1cm4gcmVhZGxfcmVsYXhlZCh0ZG0tPnRkbV9iYXNlICsgcmVnKTsKKyt9 CisrCisrc3RhdGljIGlubGluZSB2b2lkIGpoNzExMF90ZG1fd3JpdGVsKHN0cnVjdCBqaDcxMTBf dGRtX2RldiAqdGRtLCB1MTYgcmVnLCB1MzIgdmFsKQorK3sKKysJd3JpdGVsX3JlbGF4ZWQodmFs LCB0ZG0tPnRkbV9iYXNlICsgcmVnKTsKKyt9CisrCisrc3RhdGljIHZvaWQgamg3MTEwX3RkbV9z YXZlX2NvbnRleHQoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0sCisrCQkJCSAgICBzdHJ1Y3Qg c25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKKyt7CisrCWlmIChzdWJzdHJlYW0tPnN0cmVh bSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQorKwkJdGRtLT5zYXZlZF9wY210eGNyID0g amg3MTEwX3RkbV9yZWFkbCh0ZG0sIFRETV9QQ01UWENSKTsKKysJZWxzZQorKwkJdGRtLT5zYXZl ZF9wY21yeGNyID0gamg3MTEwX3RkbV9yZWFkbCh0ZG0sIFRETV9QQ01SWENSKTsKKyt9CisrCisr c3RhdGljIHZvaWQgamg3MTEwX3RkbV9zdGFydChzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSwK KysJCQkgICAgIHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQorK3sKKysJdTMy IGRhdGE7CisrCisrCWRhdGEgPSBqaDcxMTBfdGRtX3JlYWRsKHRkbSwgVERNX1BDTUdCQ1IpOwor KwlqaDcxMTBfdGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01HQkNSLCBkYXRhIHwgUENNR0JDUl9FTkFC TEUpOworKworKwkvKiByZXN0b3JlIGNvbnRleHQgKi8KKysJaWYgKHN1YnN0cmVhbS0+c3RyZWFt ID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCisrCQlqaDcxMTBfdGRtX3dyaXRlbCh0ZG0s IFRETV9QQ01UWENSLCB0ZG0tPnNhdmVkX3BjbXR4Y3IgfCBQQ01UWENSX1RYRU4pOworKwllbHNl CisrCQlqaDcxMTBfdGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01SWENSLCB0ZG0tPnNhdmVkX3BjbXJ4 Y3IgfCBQQ01SWENSX1JYRU4pOworK30KKysKKytzdGF0aWMgdm9pZCBqaDcxMTBfdGRtX3N0b3Ao c3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0sCisrCQkJICAgIHN0cnVjdCBzbmRfcGNtX3N1YnN0 cmVhbSAqc3Vic3RyZWFtKQorK3sKKysJdW5zaWduZWQgaW50IHZhbDsKKysKKysJaWYgKHN1YnN0 cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spIHsKKysJCXZhbCA9IGpo NzExMF90ZG1fcmVhZGwodGRtLCBURE1fUENNVFhDUik7CisrCQl2YWwgJj0gflBDTVRYQ1JfVFhF TjsKKysJCWpoNzExMF90ZG1fd3JpdGVsKHRkbSwgVERNX1BDTVRYQ1IsIHZhbCk7CisrCX0gZWxz ZSB7CisrCQl2YWwgPSBqaDcxMTBfdGRtX3JlYWRsKHRkbSwgVERNX1BDTVJYQ1IpOworKwkJdmFs ICY9IH5QQ01SWENSX1JYRU47CisrCQlqaDcxMTBfdGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01SWENS LCB2YWwpOworKwl9CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9zeW5jZGl2KHN0cnVj dCBqaDcxMTBfdGRtX2RldiAqdGRtKQorK3sKKysJdTMyIHNsLCBzc2NhbGUsIHN5bmNkaXY7Cisr CisrCWlmICh0ZG0tPnJ4LnNsID49IHRkbS0+dHguc2wpCisrCQlzbCA9IHRkbS0+cnguc2w7Cisr CWVsc2UKKysJCXNsID0gdGRtLT50eC5zbDsKKysKKysJaWYgKHRkbS0+cnguc3NjYWxlID49IHRk bS0+dHguc3NjYWxlKQorKwkJc3NjYWxlID0gdGRtLT5yeC5zc2NhbGU7CisrCWVsc2UKKysJCXNz Y2FsZSA9IHRkbS0+dHguc3NjYWxlOworKworKwlzeW5jZGl2ID0gdGRtLT5wY21jbGsgLyB0ZG0t PnNhbXBsZXJhdGUgLSAxOworKworKwlpZiAoKHN5bmNkaXYgKyAxKSA8IChzbCAqIHNzY2FsZSkp IHsKKysJCWRldl9lcnIodGRtLT5kZXYsICJGYWlsZWQgdG8gc2V0IHN5bmNkaXYhXG4iKTsKKysJ CXJldHVybiAtRUlOVkFMOworKwl9CisrCisrCWlmICh0ZG0tPnN5bmNtID09IFRETV9TWU5DTV9M T05HICYmCisrCSAgICAodGRtLT5yeC5zc2NhbGUgPD0gMSB8fCB0ZG0tPnR4LnNzY2FsZSA8PSAx KSkgeworKwkJaWYgKChzeW5jZGl2ICsgMSkgPD0gc2wpIHsKKysJCQlkZXZfZXJyKHRkbS0+ZGV2 LCAiV3Jvbmcgc3luY2RpdiEgSXQgbXVzdCBiZSAoc3luY2RpdisxKSA+IG1heFt0eC5zbCwgcngu c2xdXG4iKTsKKysJCQlyZXR1cm4gLUVJTlZBTDsKKysJCX0KKysJfQorKworKwlqaDcxMTBfdGRt X3dyaXRlbCh0ZG0sIFRETV9QQ01ESVYsIHN5bmNkaXYpOworKwlyZXR1cm4gMDsKKyt9CisrCisr c3RhdGljIGludCBqaDcxMTBfdGRtX2NvbmZpZyhzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSwK KysJCQkgICAgIHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQorK3sKKysJdTMy IGRhdGFyeCwgZGF0YXR4OworKwlpbnQgcmV0OworKworKwlyZXQgPSBqaDcxMTBfdGRtX3N5bmNk aXYodGRtKTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCWRhdGFyeCA9ICh0ZG0t PnJ4LmlmbCA8PCBJRkxfQklUKSB8CisrCQkgICh0ZG0tPnJ4LndsIDw8IFdMX0JJVCkgfAorKwkJ ICAodGRtLT5yeC5zc2NhbGUgPDwgU1NDQUxFX0JJVCkgfAorKwkJICAodGRtLT5yeC5zbCA8PCBT TF9CSVQpIHwKKysJCSAgKHRkbS0+cngubHJqIDw8IExSSl9CSVQpOworKworKwlkYXRhdHggPSAo dGRtLT50eC5pZmwgPDwgSUZMX0JJVCkgfAorKwkJICAodGRtLT50eC53bCA8PCBXTF9CSVQpIHwK KysJCSAgKHRkbS0+dHguc3NjYWxlIDw8IFNTQ0FMRV9CSVQpIHwKKysJCSAgKHRkbS0+dHguc2wg PDwgU0xfQklUKSB8CisrCQkgICh0ZG0tPnR4LmxyaiA8PCBMUkpfQklUKTsKKysKKysJaWYgKHN1 YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCisrCQlqaDcxMTBf dGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01UWENSLCBkYXRhdHgpOworKwllbHNlCisrCQlqaDcxMTBf dGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01SWENSLCBkYXRhcngpOworKworKwlyZXR1cm4gMDsKKyt9 CisrCisrc3RhdGljIHZvaWQgamg3MTEwX3RkbV9jbGtfZGlzYWJsZShzdHJ1Y3Qgamg3MTEwX3Rk bV9kZXYgKnRkbSkKKyt7CisrCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKEFSUkFZX1NJWkUo dGRtLT5jbGtzKSwgdGRtLT5jbGtzKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRtX2Ns a19lbmFibGUoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0pCisreworKwlpbnQgcmV0OworKwor KwlyZXQgPSBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShBUlJBWV9TSVpFKHRkbS0+Y2xrcyksIHRk bS0+Y2xrcyk7CisrCWlmIChyZXQpIHsKKysJCWRldl9lcnIodGRtLT5kZXYsICJGYWlsZWQgdG8g ZW5hYmxlIHRkbSBjbG9ja3NcbiIpOworKwkJcmV0dXJuIHJldDsKKysJfQorKworKwlyZXQgPSBy ZXNldF9jb250cm9sX2RlYXNzZXJ0KHRkbS0+cmVzZXRzKTsKKysJaWYgKHJldCkgeworKwkJZGV2 X2Vycih0ZG0tPmRldiwgIkZhaWxlZCB0byBkZWFzc2VydCB0ZG0gcmVzZXRzXG4iKTsKKysJCWdv dG8gZGlzX3RkbV9jbGs7CisrCX0KKysKKysJLyogc2VsZWN0IHRkbV9leHQgY2xvY2sgYXMgdGhl IGNsb2NrIHNvdXJjZSBmb3IgdGRtICovCisrCXJldCA9IGNsa19zZXRfcGFyZW50KHRkbS0+Y2xr c1s1XS5jbGssIHRkbS0+Y2xrc1s0XS5jbGspOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKHRk bS0+ZGV2LCAiQ2FuJ3Qgc2V0IGNsb2NrIHNvdXJjZSBmb3IgY2xrX3RkbTogJWRcbiIsIHJldCk7 CisrCQlnb3RvIGRpc190ZG1fY2xrOworKwl9CisrCXJldHVybiAwOworKworK2Rpc190ZG1fY2xr OgorKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShBUlJBWV9TSVpFKHRkbS0+Y2xrcyksIHRk bS0+Y2xrcyk7CisrCisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3Rk bV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGpoNzEx MF90ZG1fZGV2ICp0ZG0gPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJamg3MTEwX3RkbV9j bGtfZGlzYWJsZSh0ZG0pOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBf dGRtX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBqaDcx MTBfdGRtX2RldiAqdGRtID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCXJldHVybiBqaDcx MTBfdGRtX2Nsa19lbmFibGUodGRtKTsKKyt9CisrCisrc3RhdGljIGludCBfX21heWJlX3VudXNl ZCBqaDcxMTBfdGRtX3N5c3RlbV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0 cnVjdCBqaDcxMTBfdGRtX2RldiAqdGRtID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCS8q IHNhdmUgY29udGV4dCAqLworKwl0ZG0tPnNhdmVkX3BjbWdiY3IgPSBqaDcxMTBfdGRtX3JlYWRs KHRkbSwgVERNX1BDTUdCQ1IpOworKwl0ZG0tPnNhdmVkX3BjbWRpdiA9IGpoNzExMF90ZG1fcmVh ZGwodGRtLCBURE1fUENNRElWKTsKKysKKysJcmV0dXJuIHBtX3J1bnRpbWVfZm9yY2Vfc3VzcGVu ZChkZXYpOworK30KKysKKytzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGpoNzExMF90ZG1fc3lz dGVtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9k ZXYgKnRkbSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwkvKiByZXN0b3JlIGNvbnRleHQg Ki8KKysJamg3MTEwX3RkbV93cml0ZWwodGRtLCBURE1fUENNR0JDUiwgdGRtLT5zYXZlZF9wY21n YmNyKTsKKysJamg3MTEwX3RkbV93cml0ZWwodGRtLCBURE1fUENNRElWLCB0ZG0tPnNhdmVkX3Bj bWRpdik7CisrCisrCXJldHVybiBwbV9ydW50aW1lX2ZvcmNlX3Jlc3VtZShkZXYpOworK30KKysK KytzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfY29tcG9uZW50X2RyaXZlciBqaDcxMTBfdGRt X2NvbXBvbmVudCA9IHsKKysJLm5hbWUgPSAiamg3MTEwLXRkbSIsCisrfTsKKysKKytzdGF0aWMg aW50IGpoNzExMF90ZG1fc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVh bSwKKysJCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCisreworKwlzdHJ1Y3Qg c25kX3NvY19wY21fcnVudGltZSAqcnRkID0gYXNvY19zdWJzdHJlYW1fdG9fcnRkKHN1YnN0cmVh bSk7CisrCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICpkYWlfbGluayA9IHJ0ZC0+ZGFpX2xpbms7 CisrCisrCWRhaV9saW5rLT5zdG9wX2RtYV9maXJzdCA9IDE7CisrCisrCXJldHVybiAwOworK30K KysKKytzdGF0aWMgaW50IGpoNzExMF90ZG1faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0 cmVhbSAqc3Vic3RyZWFtLAorKwkJCQlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcywK KysJCQkJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9k ZXYgKnRkbSA9IHNuZF9zb2NfZGFpX2dldF9kcnZkYXRhKGRhaSk7CisrCWludCBjaGFuX3dsLCBj aGFuX3NsLCBjaGFuX25yOworKwl1bnNpZ25lZCBpbnQgZGF0YV93aWR0aDsKKysJdW5zaWduZWQg aW50IGRtYV9idXNfd2lkdGg7CisrCXN0cnVjdCBzbmRfZG1hZW5naW5lX2RhaV9kbWFfZGF0YSAq ZG1hX2RhdGEgPSBOVUxMOworKwlpbnQgcmV0ID0gMDsKKysKKysJZGF0YV93aWR0aCA9IHBhcmFt c193aWR0aChwYXJhbXMpOworKworKwl0ZG0tPnNhbXBsZXJhdGUgPSBwYXJhbXNfcmF0ZShwYXJh bXMpOworKwl0ZG0tPnBjbWNsayA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMpICogdGRtLT5zYW1w bGVyYXRlICogZGF0YV93aWR0aDsKKysKKysJc3dpdGNoIChwYXJhbXNfZm9ybWF0KHBhcmFtcykp IHsKKysJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToKKysJCWNoYW5fd2wgPSBURE1fMTZC SVRfV09SRF9MRU47CisrCQljaGFuX3NsID0gVERNXzE2QklUX1NMT1RfTEVOOworKwkJZG1hX2J1 c193aWR0aCA9IERNQV9TTEFWRV9CVVNXSURUSF8yX0JZVEVTOworKwkJYnJlYWs7CisrCisrCWNh c2UgU05EUlZfUENNX0ZPUk1BVF9TMzJfTEU6CisrCQljaGFuX3dsID0gVERNXzMyQklUX1dPUkRf TEVOOworKwkJY2hhbl9zbCA9IFRETV8zMkJJVF9TTE9UX0xFTjsKKysJCWRtYV9idXNfd2lkdGgg PSBETUFfU0xBVkVfQlVTV0lEVEhfNF9CWVRFUzsKKysJCWJyZWFrOworKworKwlkZWZhdWx0Ogor KwkJZGV2X2Vycih0ZG0tPmRldiwgInRkbTogdW5zdXBwb3J0ZWQgUENNIGZtdCIpOworKwkJcmV0 dXJuIC1FSU5WQUw7CisrCX0KKysKKysJY2hhbl9uciA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMp OworKwlzd2l0Y2ggKGNoYW5fbnIpIHsKKysJY2FzZSAxOgorKwljYXNlIDI6CisrCWNhc2UgNDoK KysJY2FzZSA2OgorKwljYXNlIDg6CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCWRldl9lcnIo dGRtLT5kZXYsICJjaGFubmVsIG5vdCBzdXBwb3J0ZWRcbiIpOworKwkJcmV0dXJuIC1FSU5WQUw7 CisrCX0KKysKKysJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExB WUJBQ0spIHsKKysJCXRkbS0+dHgud2wgPSBjaGFuX3dsOworKwkJdGRtLT50eC5zbCA9IGNoYW5f c2w7CisrCQl0ZG0tPnR4LnNzY2FsZSA9IGNoYW5fbnI7CisrCQl0ZG0tPnBsYXlfZG1hX2RhdGEu YWRkcl93aWR0aCA9IGRtYV9idXNfd2lkdGg7CisrCQlkbWFfZGF0YSA9ICZ0ZG0tPnBsYXlfZG1h X2RhdGE7CisrCX0gZWxzZSB7CisrCQl0ZG0tPnJ4LndsID0gY2hhbl93bDsKKysJCXRkbS0+cngu c2wgPSBjaGFuX3NsOworKwkJdGRtLT5yeC5zc2NhbGUgPSBjaGFuX25yOworKwkJdGRtLT5jYXB0 dXJlX2RtYV9kYXRhLmFkZHJfd2lkdGggPSBkbWFfYnVzX3dpZHRoOworKwkJZG1hX2RhdGEgPSAm dGRtLT5jYXB0dXJlX2RtYV9kYXRhOworKwl9CisrCisrCXNuZF9zb2NfZGFpX3NldF9kbWFfZGF0 YShkYWksIHN1YnN0cmVhbSwgZG1hX2RhdGEpOworKworKwlyZXQgPSBqaDcxMTBfdGRtX2NvbmZp Zyh0ZG0sIHN1YnN0cmVhbSk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlqaDcx MTBfdGRtX3NhdmVfY29udGV4dCh0ZG0sIHN1YnN0cmVhbSk7CisrCXJldHVybiAwOworK30KKysK KytzdGF0aWMgaW50IGpoNzExMF90ZG1fdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0g KnN1YnN0cmVhbSwKKysJCQkgICAgICBpbnQgY21kLCBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkK Kyt7CisrCXN0cnVjdCBqaDcxMTBfdGRtX2RldiAqdGRtID0gc25kX3NvY19kYWlfZ2V0X2RydmRh dGEoZGFpKTsKKysJaW50IHJldCA9IDA7CisrCisrCXN3aXRjaCAoY21kKSB7CisrCWNhc2UgU05E UlZfUENNX1RSSUdHRVJfU1RBUlQ6CisrCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUkVTVU1FOgor KwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNFX1JFTEVBU0U6CisrCQlqaDcxMTBfdGRtX3N0 YXJ0KHRkbSwgc3Vic3RyZWFtKTsKKysJCWJyZWFrOworKworKwljYXNlIFNORFJWX1BDTV9UUklH R0VSX1NUT1A6CisrCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKKysJY2FzZSBTTkRS Vl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgorKwkJamg3MTEwX3RkbV9zdG9wKHRkbSwgc3Vic3Ry ZWFtKTsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJcmV0ID0gLUVJTlZBTDsKKysJCWJyZWFr OworKwl9CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9zZXRf ZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCisrCQkJCSAgdW5zaWduZWQgaW50 IGZtdCkKKyt7CisrCXN0cnVjdCBqaDcxMTBfdGRtX2RldiAqdGRtID0gc25kX3NvY19kYWlfZ2V0 X2RydmRhdGEoY3B1X2RhaSk7CisrCXVuc2lnbmVkIGludCBnYmNyOworKwlpbnQgcmV0ID0gMDsK KysKKysJLyogc2V0IG1hc3Rlci9zbGF2ZSBhdWRpbyBpbnRlcmZhY2UgKi8KKysJc3dpdGNoIChm bXQgJiBTTkRfU09DX0RBSUZNVF9DTE9DS19QUk9WSURFUl9NQVNLKSB7CisrCWNhc2UgU05EX1NP Q19EQUlGTVRfQlBfRlA6CisrCQkvKiBjcHUgaXMgbWFzdGVyICovCisrCQl0ZG0tPm1zX21vZGUg PSBURE1fQVNfTUFTVEVSOworKwkJYnJlYWs7CisrCWNhc2UgU05EX1NPQ19EQUlGTVRfQkNfRkM6 CisrCQkvKiBjb2RlYyBpcyBtYXN0ZXIgKi8KKysJCXRkbS0+bXNfbW9kZSA9IFRETV9BU19TTEFW RTsKKysJCWJyZWFrOworKwljYXNlIFNORF9TT0NfREFJRk1UX0JDX0ZQOgorKwljYXNlIFNORF9T T0NfREFJRk1UX0JQX0ZDOgorKwkJcmV0ID0gLUVJTlZBTDsKKysJCWJyZWFrOworKwlkZWZhdWx0 OgorKwkJZGV2X2RiZyh0ZG0tPmRldiwgImR3YyA6IEludmFsaWQgY2xvY2sgcHJvdmlkZXIgZm9y bWF0XG4iKTsKKysJCXJldCA9IC1FSU5WQUw7CisrCQlicmVhazsKKysJfQorKworKwlnYmNyID0g KHRkbS0+Y2xrcG9saXR5IDw8IENMS1BPTF9CSVQpIHwKKysJCSh0ZG0tPmVsbSA8PCBFTE1fQklU KSB8CisrCQkodGRtLT5zeW5jbSA8PCBTWU5DTV9CSVQpIHwKKysJCSh0ZG0tPm1zX21vZGUgPDwg TVNfQklUKTsKKysJamg3MTEwX3RkbV93cml0ZWwodGRtLCBURE1fUENNR0JDUiwgZ2Jjcik7Cisr CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYWlf b3BzIGpoNzExMF90ZG1fZGFpX29wcyA9IHsKKysJLnN0YXJ0dXAJPSBqaDcxMTBfdGRtX3N0YXJ0 dXAsCisrCS5od19wYXJhbXMJPSBqaDcxMTBfdGRtX2h3X3BhcmFtcywKKysJLnRyaWdnZXIJPSBq aDcxMTBfdGRtX3RyaWdnZXIsCisrCS5zZXRfZm10CT0gamg3MTEwX3RkbV9zZXRfZGFpX2ZtdCwK Kyt9OworKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9kYWlfcHJvYmUoc3RydWN0IHNuZF9zb2Nf ZGFpICpkYWkpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSA9IHNuZF9zb2NfZGFp X2dldF9kcnZkYXRhKGRhaSk7CisrCisrCXNuZF9zb2NfZGFpX2luaXRfZG1hX2RhdGEoZGFpLCAm dGRtLT5wbGF5X2RtYV9kYXRhLCAmdGRtLT5jYXB0dXJlX2RtYV9kYXRhKTsKKysJc25kX3NvY19k YWlfc2V0X2RydmRhdGEoZGFpLCB0ZG0pOworKwlyZXR1cm4gMDsKKyt9CisrCisrI2RlZmluZSBK SDcxMTBfVERNX1JBVEVTCVNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAKKysKKysjZGVmaW5lIEpI NzExMF9URE1fRk9STUFUUwkoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBcCisrCQkJCSBTTkRS Vl9QQ01fRk1UQklUX1MzMl9MRSkKKysKKytzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGFpX2RyaXZl ciBqaDcxMTBfdGRtX2RhaSA9IHsKKysJLm5hbWUgPSAic2ZfdGRtIiwKKysJLmlkID0gMCwKKysJ LnBsYXliYWNrID0geworKwkJLnN0cmVhbV9uYW1lICAgID0gIlBsYXliYWNrIiwKKysJCS5jaGFu bmVsc19taW4gICA9IDEsCisrCQkuY2hhbm5lbHNfbWF4ICAgPSA4LAorKwkJLnJhdGVzICAgICAg ICAgID0gSkg3MTEwX1RETV9SQVRFUywKKysJCS5mb3JtYXRzICAgICAgICA9IEpINzExMF9URE1f Rk9STUFUUywKKysJfSwKKysJLmNhcHR1cmUgPSB7CisrCQkuc3RyZWFtX25hbWUgICAgPSAiQ2Fw dHVyZSIsCisrCQkuY2hhbm5lbHNfbWluICAgPSAxLAorKwkJLmNoYW5uZWxzX21heCAgID0gOCwK KysJCS5yYXRlcyAgICAgICAgICA9IEpINzExMF9URE1fUkFURVMsCisrCQkuZm9ybWF0cyAgICAg ICAgPSBKSDcxMTBfVERNX0ZPUk1BVFMsCisrCX0sCisrCS5vcHMgPSAmamg3MTEwX3RkbV9kYWlf b3BzLAorKwkucHJvYmUgPSBqaDcxMTBfdGRtX2RhaV9wcm9iZSwKKysJLnN5bW1ldHJpY19yYXRl ID0gMSwKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBqaDcx MTBfcGNtX2hhcmR3YXJlID0geworKwkuaW5mbwkJCT0gKFNORFJWX1BDTV9JTkZPX01NQVAJCXwK KysJCQkJICAgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRAl8CisrCQkJCSAgIFNORFJWX1BDTV9J TkZPX1BBVVNFCQl8CisrCQkJCSAgIFNORFJWX1BDTV9JTkZPX1JFU1VNRQl8CisrCQkJCSAgIFNO RFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVECXwKKysJCQkJICAgU05EUlZfUENNX0lORk9fQkxPQ0tf VFJBTlNGRVIpLAorKwkuYnVmZmVyX2J5dGVzX21heAk9IDE5MjUxMiwKKysJLnBlcmlvZF9ieXRl c19taW4JPSA0MDk2LAorKwkucGVyaW9kX2J5dGVzX21heAk9IDMyNzY4LAorKwkucGVyaW9kc19t aW4JCT0gMSwKKysJLnBlcmlvZHNfbWF4CQk9IDQ4LAorKwkuZmlmb19zaXplCQk9IDE2LAorK307 CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfZG1hZW5naW5lX3BjbV9jb25maWcgamg3MTEw X2RtYWVuZ2luZV9wY21fY29uZmlnID0geworKwkucGNtX2hhcmR3YXJlID0gJmpoNzExMF9wY21f aGFyZHdhcmUsCisrCS5wcmVwYXJlX3NsYXZlX2NvbmZpZyA9IHNuZF9kbWFlbmdpbmVfcGNtX3By ZXBhcmVfc2xhdmVfY29uZmlnLAorKwkucHJlYWxsb2NfYnVmZmVyX3NpemUgPSAxOTI1MTIsCisr fTsKKysKKytzdGF0aWMgdm9pZCBqaDcxMTBfdGRtX2luaXRfcGFyYW1zKHN0cnVjdCBqaDcxMTBf dGRtX2RldiAqdGRtKQorK3sKKysJdGRtLT5jbGtwb2xpdHkgPSBURE1fVFhfUkFTSU5HX1JYX0ZB TExJTkc7CisrCXRkbS0+ZWxtID0gVERNX0VMTV9MQVRFOworKwl0ZG0tPnN5bmNtID0gVERNX1NZ TkNNX1NIT1JUOworKworKwl0ZG0tPnJ4LmlmbCA9IFRETV9GSUZPX0hBTEY7CisrCXRkbS0+dHgu aWZsID0gVERNX0ZJRk9fSEFMRjsKKysJdGRtLT5yeC53bCA9IFRETV8xNkJJVF9XT1JEX0xFTjsK KysJdGRtLT50eC53bCA9IFRETV8xNkJJVF9XT1JEX0xFTjsKKysJdGRtLT5yeC5zc2NhbGUgPSAy OworKwl0ZG0tPnR4LnNzY2FsZSA9IDI7CisrCXRkbS0+cngubHJqID0gVERNX0xFRlRfSlVTVElG VDsKKysJdGRtLT50eC5scmogPSBURE1fTEVGVF9KVVNUSUZUOworKworKwl0ZG0tPnBsYXlfZG1h X2RhdGEuYWRkciA9IEpINzExMF9URE1fRklGTzsKKysJdGRtLT5wbGF5X2RtYV9kYXRhLmFkZHJf d2lkdGggPSBETUFfU0xBVkVfQlVTV0lEVEhfMl9CWVRFUzsKKysJdGRtLT5wbGF5X2RtYV9kYXRh LmZpZm9fc2l6ZSA9IEpINzExMF9URE1fRklGT19ERVBUSCAvIDI7CisrCXRkbS0+cGxheV9kbWFf ZGF0YS5tYXhidXJzdCA9IDE2OworKworKwl0ZG0tPmNhcHR1cmVfZG1hX2RhdGEuYWRkciA9IEpI NzExMF9URE1fRklGTzsKKysJdGRtLT5jYXB0dXJlX2RtYV9kYXRhLmFkZHJfd2lkdGggPSBETUFf U0xBVkVfQlVTV0lEVEhfMl9CWVRFUzsKKysJdGRtLT5jYXB0dXJlX2RtYV9kYXRhLmZpZm9fc2l6 ZSA9IEpINzExMF9URE1fRklGT19ERVBUSCAvIDI7CisrCXRkbS0+Y2FwdHVyZV9kbWFfZGF0YS5t YXhidXJzdCA9IDg7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9jbGtfcmVzZXRfaW5p dChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorKwkJCQkgICAgIHN0cnVjdCBqaDcxMTBf dGRtX2RldiAqdGRtKQorK3sKKysJaW50IHJldDsKKysKKysJdGRtLT5jbGtzWzBdLmlkID0gIm1j bGtfaW5uZXIiOworKwl0ZG0tPmNsa3NbMV0uaWQgPSAidGRtX2FoYiI7CisrCXRkbS0+Y2xrc1sy XS5pZCA9ICJ0ZG1fYXBiIjsKKysJdGRtLT5jbGtzWzNdLmlkID0gInRkbV9pbnRlcm5hbCI7Cisr CXRkbS0+Y2xrc1s0XS5pZCA9ICJ0ZG1fZXh0IjsKKysJdGRtLT5jbGtzWzVdLmlkID0gInRkbSI7 CisrCisrCXJldCA9IGRldm1fY2xrX2J1bGtfZ2V0KCZwZGV2LT5kZXYsIEFSUkFZX1NJWkUodGRt LT5jbGtzKSwgdGRtLT5jbGtzKTsKKysJaWYgKHJldCkgeworKwkJZGV2X2VycigmcGRldi0+ZGV2 LCAiRmFpbGVkIHRvIGdldCB0ZG0gY2xvY2tzXG4iKTsKKysJCXJldHVybiByZXQ7CisrCX0KKysK KysJdGRtLT5yZXNldHMgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfYXJyYXlfZ2V0X2V4Y2x1c2l2ZSgm cGRldi0+ZGV2KTsKKysJaWYgKElTX0VSUih0ZG0tPnJlc2V0cykpIHsKKysJCXJldCA9IFBUUl9F UlIodGRtLT5yZXNldHMpOworKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCB0 ZG0gcmVzZXRzIik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJldHVybiBqaDcxMTBfdGRt X2Nsa19lbmFibGUodGRtKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRtX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYg KnRkbTsKKysJaW50IHJldDsKKysKKysJdGRtID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNp emVvZigqdGRtKSwgR0ZQX0tFUk5FTCk7CisrCWlmICghdGRtKQorKwkJcmV0dXJuIC1FTk9NRU07 CisrCisrCXRkbS0+dGRtX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRl diwgMCk7CisrCWlmIChJU19FUlIodGRtLT50ZG1fYmFzZSkpCisrCQlyZXR1cm4gUFRSX0VSUih0 ZG0tPnRkbV9iYXNlKTsKKysKKysJdGRtLT5kZXYgPSAmcGRldi0+ZGV2OworKworKwlyZXQgPSBq aDcxMTBfdGRtX2Nsa19yZXNldF9pbml0KHBkZXYsIHRkbSk7CisrCWlmIChyZXQpIHsKKysJCWRl dl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBlbmFibGUgYXVkaW8tdGRtIGNsb2NrXG4iKTsK KysJCXJldHVybiByZXQ7CisrCX0KKysKKysJamg3MTEwX3RkbV9pbml0X3BhcmFtcyh0ZG0pOwor KworKwlkZXZfc2V0X2RydmRhdGEoJnBkZXYtPmRldiwgdGRtKTsKKysJcmV0ID0gZGV2bV9zbmRf c29jX3JlZ2lzdGVyX2NvbXBvbmVudCgmcGRldi0+ZGV2LCAmamg3MTEwX3RkbV9jb21wb25lbnQs CisrCQkJCQkgICAgICAmamg3MTEwX3RkbV9kYWksIDEpOworKwlpZiAocmV0KSB7CisrCQlkZXZf ZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgZGFpXG4iKTsKKysJCXJldHVybiBy ZXQ7CisrCX0KKysKKysJcmV0ID0gZGV2bV9zbmRfZG1hZW5naW5lX3BjbV9yZWdpc3RlcigmcGRl di0+ZGV2LAorKwkJCQkJICAgICAgJmpoNzExMF9kbWFlbmdpbmVfcGNtX2NvbmZpZywKKysJCQkJ CSAgICAgIFNORF9ETUFFTkdJTkVfUENNX0ZMQUdfQ09NUEFUKTsKKysJaWYgKHJldCkgeworKwkJ ZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbm90IHJlZ2lzdGVyIHBjbTogJWRcbiIsIHJldCk7 CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXBtX3J1bnRpbWVfZW5hYmxlKCZwZGV2LT5kZXYp OworKyNpZmRlZiBDT05GSUdfUE0KKysJamg3MTEwX3RkbV9jbGtfZGlzYWJsZSh0ZG0pOworKyNl bmRpZgorKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRtX2Rldl9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXBtX3J1bnRpbWVfZGlz YWJsZSgmcGRldi0+ZGV2KTsKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF90ZG1fb2ZfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMTAtdGRtIiwgfSwKKysJe30KKyt9OworKworK01PRFVMRV9ERVZJ Q0VfVEFCTEUob2YsIGpoNzExMF90ZG1fb2ZfbWF0Y2gpOworKworK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGV2X3BtX29wcyBqaDcxMTBfdGRtX3BtX29wcyA9IHsKKysJU0VUX1JVTlRJTUVfUE1fT1BT KGpoNzExMF90ZG1fcnVudGltZV9zdXNwZW5kLAorKwkJCSAgIGpoNzExMF90ZG1fcnVudGltZV9y ZXN1bWUsIE5VTEwpCisrCVNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKGpoNzExMF90ZG1fc3lzdGVt X3N1c3BlbmQsCisrCQkJCWpoNzExMF90ZG1fc3lzdGVtX3Jlc3VtZSkKKyt9OworKworK3N0YXRp YyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGpoNzExMF90ZG1fZHJpdmVyID0geworKwkuZHJpdmVy ID0geworKwkJLm5hbWUgPSAiamg3MTEwLXRkbSIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBqaDcx MTBfdGRtX29mX21hdGNoLAorKwkJLnBtID0gJmpoNzExMF90ZG1fcG1fb3BzLAorKwl9LAorKwku cHJvYmUgPSBqaDcxMTBfdGRtX3Byb2JlLAorKwkucmVtb3ZlID0gamg3MTEwX3RkbV9kZXZfcmVt b3ZlLAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBfdGRtX2RyaXZlcik7Cisr CisrTU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAgVERNIEFTb0MgRHJpdmVyIik7 CisrTU9EVUxFX0FVVEhPUigiV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5j b20+Iik7CisrTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9z dGFyZml2ZS9qaDcxMTBfdGRtLmggYi9zb3VuZC9zb2Mvc3RhcmZpdmUvamg3MTEwX3RkbS5oCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4wYjdlNmQ2NTQzYzUKKy0t LSAvZGV2L251bGwKKysrKyBiL3NvdW5kL3NvYy9zdGFyZml2ZS9qaDcxMTBfdGRtLmgKK0BAIC0w LDAgKzEsMTM4IEBACisrLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysgKgor KyAqIFRETSBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29DCisrICoKKysgKiBDb3B5 cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKgorKyAqIEF1 dGhvcjogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+CisrICovCisr CisrI2lmbmRlZiBfX1NORF9TT0NfU1RBUkZJVkVfVERNX0gKKysjZGVmaW5lIF9fU05EX1NPQ19T VEFSRklWRV9URE1fSAorKworKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGlu dXgvZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisrI2luY2x1ZGUgPHNvdW5k L2RtYWVuZ2luZV9wY20uaD4KKysjaW5jbHVkZSA8c291bmQvcGNtLmg+CisrI2luY2x1ZGUgPGxp bnV4L2RtYWVuZ2luZS5oPgorKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorKworKyNkZWZpbmUg VERNX1BDTUdCQ1IJCQkweDAwCisrCSNkZWZpbmUgUENNR0JDUl9NQVNLCQkweDFlCisrCSNkZWZp bmUgUENNR0JDUl9FTkFCTEUJCUJJVCgwKQorKwkjZGVmaW5lIFBDTUdCQ1JfVFJJVFhFTgkJQklU KDQpCisrCSNkZWZpbmUgQ0xLUE9MX0JJVAkJNQorKwkjZGVmaW5lIFRSSVRYRU5fQklUCQk0Cisr CSNkZWZpbmUgRUxNX0JJVAkJCTMKKysJI2RlZmluZSBTWU5DTV9CSVQJCTIKKysJI2RlZmluZSBN U19CSVQJCQkxCisrI2RlZmluZSBURE1fUENNVFhDUgkJCTB4MDQKKysJI2RlZmluZSBQQ01UWENS X1RYRU4JCUJJVCgwKQorKwkjZGVmaW5lIElGTF9CSVQJCQkxMQorKwkjZGVmaW5lIFdMX0JJVAkJ CTgKKysJI2RlZmluZSBTU0NBTEVfQklUCQk0CisrCSNkZWZpbmUgU0xfQklUCQkJMgorKwkjZGVm aW5lIExSSl9CSVQJCQkxCisrI2RlZmluZSBURE1fUENNUlhDUgkJCTB4MDgKKysJI2RlZmluZSBQ Q01SWENSX1JYRU4JCUJJVCgwKQorKwkjZGVmaW5lIFBDTVJYQ1JfUlhTTF9NQVNLCTB4YworKwkj ZGVmaW5lIFBDTVJYQ1JfUlhTTF8xNkJJVAkweDQKKysJI2RlZmluZSBQQ01SWENSX1JYU0xfMzJC SVQJMHg4CisrCSNkZWZpbmUgUENNUlhDUl9TQ0FMRV9NQVNLCTB4ZjAKKysJI2RlZmluZSBQQ01S WENSX1NDQUxFXzFDSAkweDEwCisrI2RlZmluZSBURE1fUENNRElWCQkJMHgwYworKworKyNkZWZp bmUgSkg3MTEwX1RETV9GSUZPCQkJMHgxNzBjMDAwMAorKyNkZWZpbmUgSkg3MTEwX1RETV9GSUZP X0RFUFRICQkzMgorKworK2VudW0gVERNX01BU1RFUl9TTEFWRV9NT0RFIHsKKysJVERNX0FTX01B U1RFUiA9IDAsCisrCVRETV9BU19TTEFWRSwKKyt9OworKworK2VudW0gVERNX0NMS1BPTCB7Cisr CS8qIHR4IHJhaXNpbmcgYW5kIHJ4IGZhbGxpbmcgKi8KKysJVERNX1RYX1JBU0lOR19SWF9GQUxM SU5HID0gMCwKKysJLyogdHggZmFsbGluZyBhbmQgcnggcmFpc2luZyAqLworKwlURE1fVFhfRkFM TElOR19SWF9SQVNJTkcsCisrfTsKKysKKytlbnVtIFRETV9FTE0geworKwkvKiBvbmx5IHdvcmsg d2hpbGUgU1lOQ009MCAqLworKwlURE1fRUxNX0xBVEUgPSAwLAorKwlURE1fRUxNX0VBUkxZLAor K307CisrCisrZW51bSBURE1fU1lOQ00geworKwkvKiBzaG9ydCBmcmFtZSBzeW5jICovCisrCVRE TV9TWU5DTV9TSE9SVCA9IDAsCisrCS8qIGxvbmcgZnJhbWUgc3luYyAqLworKwlURE1fU1lOQ01f TE9ORywKKyt9OworKworK2VudW0gVERNX0lGTCB7CisrCS8qIEZJRk8gdG8gc2VuZCBvciByZWNl aXZlZCA6IGhhbGYtMS8yLCBRdWFydGVyLTEvNCAqLworKwlURE1fRklGT19IQUxGID0gMCwKKysJ VERNX0ZJRk9fUVVBUlRFUiwKKyt9OworKworK2VudW0gVERNX1dMIHsKKysJLyogc2VuZCBvciBy ZWNlaXZlZCB3b3JkIGxlbmd0aCAqLworKwlURE1fOEJJVF9XT1JEX0xFTiA9IDAsCisrCVRETV8x NkJJVF9XT1JEX0xFTiwKKysJVERNXzIwQklUX1dPUkRfTEVOLAorKwlURE1fMjRCSVRfV09SRF9M RU4sCisrCVRETV8zMkJJVF9XT1JEX0xFTiwKKyt9OworKworK2VudW0gVERNX1NMIHsKKysJLyog c2VuZCBvciByZWNlaXZlZCBzbG90IGxlbmd0aCAqLworKwlURE1fOEJJVF9TTE9UX0xFTiA9IDAs CisrCVRETV8xNkJJVF9TTE9UX0xFTiwKKysJVERNXzMyQklUX1NMT1RfTEVOLAorK307CisrCisr ZW51bSBURE1fTFJKIHsKKysJLyogbGVmdC1qdXN0aWZ5IG9yIHJpZ2h0LWp1c3RpZnkgKi8KKysJ VERNX1JJR0hUX0pVU1RJRlkgPSAwLAorKwlURE1fTEVGVF9KVVNUSUZULAorK307CisrCisrc3Ry dWN0IHRkbV9jaGFuX2NmZyB7CisrCWVudW0gVERNX0lGTCBpZmw7CisrCWVudW0gVERNX1dMICB3 bDsKKysJdW5zaWduZWQgY2hhciBzc2NhbGU7CisrCWVudW0gVERNX1NMICBzbDsKKysJZW51bSBU RE1fTFJKIGxyajsKKysJdW5zaWduZWQgY2hhciBlbmFibGU7CisrfTsKKysKKytzdHJ1Y3Qgamg3 MTEwX3RkbV9kZXYgeworKwl2b2lkIF9faW9tZW0gKnRkbV9iYXNlOworKwlzdHJ1Y3QgZGV2aWNl ICpkZXY7CisrCXN0cnVjdCBjbGtfYnVsa19kYXRhIGNsa3NbNl07CisrCXN0cnVjdCByZXNldF9j b250cm9sICpyZXNldHM7CisrCisrCWVudW0gVERNX0NMS1BPTCBjbGtwb2xpdHk7CisrCWVudW0g VERNX0VMTQllbG07CisrCWVudW0gVERNX1NZTkNNCXN5bmNtOworKwllbnVtIFRETV9NQVNURVJf U0xBVkVfTU9ERSBtc19tb2RlOworKworKwlzdHJ1Y3QgdGRtX2NoYW5fY2ZnIHR4OworKwlzdHJ1 Y3QgdGRtX2NoYW5fY2ZnIHJ4OworKworKwl1MTYgc3luY2RpdjsKKysJdTMyIHNhbXBsZXJhdGU7 CisrCXUzMiBwY21jbGs7CisrCisrCS8qIGRhdGEgcmVsYXRlZCB0byBETUEgdHJhbnNmZXJzIGIv dyB0ZG0gYW5kIERNQUMgKi8KKysJc3RydWN0IHNuZF9kbWFlbmdpbmVfZGFpX2RtYV9kYXRhIHBs YXlfZG1hX2RhdGE7CisrCXN0cnVjdCBzbmRfZG1hZW5naW5lX2RhaV9kbWFfZGF0YSBjYXB0dXJl X2RtYV9kYXRhOworKwl1MzIgc2F2ZWRfcGNtZ2JjcjsKKysJdTMyIHNhdmVkX3BjbXR4Y3I7Cisr CXUzMiBzYXZlZF9wY21yeGNyOworKwl1MzIgc2F2ZWRfcGNtZGl2OworK307CisrCisrI2VuZGlm CS8qIF9fU05EX1NPQ19TVEFSRklWRV9URE1fSCAqLworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNzgtcmlzY3YtZHRzLXN0YXJmaXZlLWFkZC10 aGUtbm9kZS1hbmQtcGlucy1jb25maWd1cmF0aS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0 Y2hlcy8wMDc4LXJpc2N2LWR0cy1zdGFyZml2ZS1hZGQtdGhlLW5vZGUtYW5kLXBpbnMtY29uZmln dXJhdGkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZmRj ZDE3OWZjYjc1ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8w MDc4LXJpc2N2LWR0cy1zdGFyZml2ZS1hZGQtdGhlLW5vZGUtYW5kLXBpbnMtY29uZmlndXJhdGku cGF0Y2gKQEAgLTAsMCArMSwxMDUgQEAKK0Zyb20gMjdhNTU0ZWZlNWRiZjNjN2QxZDdhODk1YjM3 ODdlY2FiMjUzYTQyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdhbGtlciBDaGVu IDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCAxMSBNYXkgMjAyMyAx NzoxNTo0OSArMDgwMAorU3ViamVjdDogW1BBVENIIDc4Lzg0XSByaXNjdjogZHRzOiBzdGFyZml2 ZTogYWRkIHRoZSBub2RlIGFuZCBwaW5zCisgY29uZmlndXJhdGlvbiBmb3IgdGRtCisKK0FkZCB0 aGUgdGRtIGNvbnRyb2xsZXIgbm9kZSBhbmQgcGlucyBjb25maWd1cmF0aW9uIG9mIHRkbSBmb3Ig dGhlCitTdGFyRml2ZSBKSDcxMTAgU29DLgorCitTaWduZWQtb2ZmLWJ5OiBXYWxrZXIgQ2hlbiA8 d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9qaDcxMTAtc3RhcmZpdmUt dmlzaW9uZml2ZS0yLmR0c2kgICAgICAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKKyBhcmNo L3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpICAgICAgfCAyMSArKysrKysrKysr CisgMiBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9hcmNo L3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRz aSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZp dmUtMi5kdHNpCitpbmRleCAzMTQ1NGUxNWFjZmMuLjRjY2QyMDMwM2FiNSAxMDA2NDQKKy0tLSBh L2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUt Mi5kdHNpCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2 ZS12aXNpb25maXZlLTIuZHRzaQorQEAgLTIyOCw2ICsyMjgsNDAgQEAgR1BPRU5fRElTQUJMRSwK KyAJCQlzbGV3LXJhdGUgPSA8MD47CisgCQl9OworIAl9OworKworKwl0ZG0wX3BpbnM6IHRkbTAt cGlucyB7CisrCQl0ZG0wLXBpbnMtdHggeworKwkJCXBpbm11eCA9IDxHUElPTVVYKDQ0LCBHUE9V VF9TWVNfVERNX1RYRCwKKysJCQkJCSAgICAgIEdQT0VOX0VOQUJMRSwKKysJCQkJCSAgICAgIEdQ SV9OT05FKT47CisrCQkJYmlhcy1wdWxsLXVwOworKwkJCWRyaXZlLXN0cmVuZ3RoID0gPDI+Owor KwkJCWlucHV0LWRpc2FibGU7CisrCQkJaW5wdXQtc2NobWl0dC1kaXNhYmxlOworKwkJCXNsZXct cmF0ZSA9IDwwPjsKKysJCX07CisrCisrCQl0ZG0wLXBpbnMtcnggeworKwkJCXBpbm11eCA9IDxH UElPTVVYKDYxLCBHUE9VVF9ISUdILAorKwkJCQkJICAgICAgR1BPRU5fRElTQUJMRSwKKysJCQkJ CSAgICAgIEdQSV9TWVNfVERNX1JYRCk+OworKwkJCWlucHV0LWVuYWJsZTsKKysJCX07CisrCisr CQl0ZG0wLXBpbnMtc3luYyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoNjMsIEdQT1VUX0hJR0gs CisrCQkJCQkgICAgICBHUE9FTl9ESVNBQkxFLAorKwkJCQkJICAgICAgR1BJX1NZU19URE1fU1lO Qyk+OworKwkJCWlucHV0LWVuYWJsZTsKKysJCX07CisrCisrCQl0ZG0wLXBpbnMtcGNtY2xrIHsK KysJCQlwaW5tdXggPSA8R1BJT01VWCgzOCwgR1BPVVRfSElHSCwKKysJCQkJCSAgICAgIEdQT0VO X0RJU0FCTEUsCisrCQkJCQkgICAgICBHUElfU1lTX1RETV9DTEspPjsKKysJCQlpbnB1dC1lbmFi bGU7CisrCQl9OworKwl9OworIH07CisgCisgJnVhcnQwIHsKK0BAIC0yNTgsMyArMjkyLDkgQEAg JnVzYjAgeworIAlkcl9tb2RlID0gInBlcmlwaGVyYWwiOworIAlzdGF0dXMgPSAib2theSI7Cisg fTsKKysKKysmdGRtIHsKKysJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKysJcGluY3RybC0w ID0gPCZ0ZG0wX3BpbnM+OworKwlzdGF0dXMgPSAib2theSI7CisrfTsKK2RpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIGIvYXJjaC9yaXNjdi9ib290 L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQoraW5kZXggMTgwNjY1ZmZjNmZkLi5kNTQ1Njg0OTU4 YzQgMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNp CisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCitAQCAtMzk5 LDYgKzM5OSwyNyBAQCBpMmMyOiBpMmNAMTAwNTAwMDAgeworIAkJCXN0YXR1cyA9ICJkaXNhYmxl ZCI7CisgCQl9OworIAorKwkJdGRtOiB0ZG1AMTAwOTAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAi c3RhcmZpdmUsamg3MTEwLXRkbSI7CisrCQkJcmVnID0gPDB4MCAweDEwMDkwMDAwIDB4MCAweDEw MDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVERNX0FIQj4sCisrCQkJ CSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1RETV9BUEI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19URE1fSU5URVJOQUw+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19URE1f VERNPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfTUNMS19JTk5FUj4sCisrCQkJCSA8 JnRkbV9leHQ+OworKwkJCWNsb2NrLW5hbWVzID0gInRkbV9haGIiLCAidGRtX2FwYiIsCisrCQkJ CSAgICAgICJ0ZG1faW50ZXJuYWwiLCAidGRtIiwKKysJCQkJICAgICAgIm1jbGtfaW5uZXIiLCAi dGRtX2V4dCI7CisrCQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9URE1fQUhCPiwK KysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVERNX0FQQj4sCisrCQkJCSA8JnN5c2NyZyBK SDcxMTBfU1lTUlNUX1RETV9DT1JFPjsKKysJCQlkbWFzID0gPCZkbWEgMjA+LCA8JmRtYSAyMT47 CisrCQkJZG1hLW5hbWVzID0gInJ4IiwidHgiOworKwkJCSNzb3VuZC1kYWktY2VsbHMgPSA8MD47 CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisgCQl1c2IwOiB1c2JAMTAxMDAw MDAgeworIAkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXVzYiI7CisgCQkJcmVnID0g PDB4MCAweDEwMTAwMDAwIDB4MCAweDEwMDAwPiwKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDc5LWR0LWJpbmRpbmctcGNpLWFkZC1KSDcxMTAt UENJZS1kdC1iaW5kaW5nLWRvY3VtZW50cy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hl cy8wMDc5LWR0LWJpbmRpbmctcGNpLWFkZC1KSDcxMTAtUENJZS1kdC1iaW5kaW5nLWRvY3VtZW50 cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5hNmI4N2Qz OTVkNWRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwNzkt ZHQtYmluZGluZy1wY2ktYWRkLUpINzExMC1QQ0llLWR0LWJpbmRpbmctZG9jdW1lbnRzLnBhdGNo CkBAIC0wLDAgKzEsMTg2IEBACitGcm9tIDk5ZmFjZjY4N2U0YmVkZjJlYmE0ZGVmYWRmODVkNDFm NmFlYWQ5Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVuIDxtaW5k YS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDYgQXByIDIwMjMgMTk6MTE6NDAg KzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA3OS84NF0gZHQtYmluZGluZzogcGNpOiBhZGQgSkg3MTEw IFBDSWUgZHQtYmluZGluZyBkb2N1bWVudHMuCisKK0FkZCBQQ0llIGNvbnRyb2xsZXIgZHJpdmVy IGR0LWJpbmRpbmcgZG9jdW1lbnRzCitmb3IgU3RhckZpdmUgSkg3MTEwIFNvQyBwbGF0Zm9ybS4K KworU2lnbmVkLW9mZi1ieTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29t PgorLS0tCisgLi4uL2JpbmRpbmdzL3BjaS9zdGFyZml2ZSxqaDcxMTAtcGNpZS55YW1sICAgIHwg MTYzICsrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygr KQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv cGNpL3N0YXJmaXZlLGpoNzExMC1wY2llLnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvc3RhcmZpdmUsamg3MTEwLXBjaWUueWFtbCBiL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvc3RhcmZpdmUsamg3MTEwLXBjaWUu eWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZmE0ODI5NzY2 MTk1CistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvcGNpL3N0YXJmaXZlLGpoNzExMC1wY2llLnlhbWwKK0BAIC0wLDAgKzEsMTYzIEBACisrIyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisr JVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9wY2kv c3RhcmZpdmUsamg3MTEwLXBjaWUueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5v cmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIFBD SWUgMi4wIGhvc3QgY29udHJvbGxlcgorKworK21haW50YWluZXJzOgorKyAgLSBNaW5kYSBDaGVu IDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CisrCisrYWxsT2Y6CisrICAtICRyZWY6IC9z Y2hlbWFzL3BjaS9wY2ktYnVzLnlhbWwjCisrICAtICRyZWY6IC9zY2hlbWFzL2ludGVycnVwdC1j b250cm9sbGVyL21zaS1jb250cm9sbGVyLnlhbWwjCisrCisrcHJvcGVydGllczoKKysgIGNvbXBh dGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtcGNpZQorKworKyAgcmVnOgorKyAg ICBtYXhJdGVtczogMgorKworKyAgcmVnLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNv bnN0OiByZWcKKysgICAgICAtIGNvbnN0OiBjb25maWcKKysKKysgIG1zaS1wYXJlbnQ6IHRydWUK KysKKysgIGludGVycnVwdHM6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBjbG9ja3M6CisrICAg IG1heEl0ZW1zOiA0CisrCisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBj b25zdDogbm9jCisrICAgICAgLSBjb25zdDogdGwKKysgICAgICAtIGNvbnN0OiBheGlfbXN0MAor KyAgICAgIC0gY29uc3Q6IGFwYgorKworKyAgcmVzZXRzOgorKyAgICBpdGVtczoKKysgICAgICAt IGRlc2NyaXB0aW9uOiBBWEkgTVNUMCByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBT TEFWRSByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBTTEFWRTAgcmVzZXQKKysgICAg ICAtIGRlc2NyaXB0aW9uOiBQQ0lFIEJSSURHRSByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246 IFBDSUUgQ09SRSByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IFBDSUUgQVBCIHJlc2V0Cisr CisrICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogbXN0MAorKyAg ICAgIC0gY29uc3Q6IHNsdjAKKysgICAgICAtIGNvbnN0OiBzbHYKKysgICAgICAtIGNvbnN0OiBi cmcKKysgICAgICAtIGNvbnN0OiBjb3JlCisrICAgICAgLSBjb25zdDogYXBiCisrCisrICBzdGFy Zml2ZSxzdGctc3lzY29uOgorKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0 aW9ucy9waGFuZGxlLWFycmF5CisrICAgIGl0ZW1zOgorKyAgICAgIGl0ZW1zOgorKyAgICAgICAg LSBkZXNjcmlwdGlvbjogcGhhbmRsZSB0byBTeXN0ZW0gUmVnaXN0ZXIgQ29udHJvbGxlciBzdGdf c3lzY29uIG5vZGUuCisrICAgICAgICAtIGRlc2NyaXB0aW9uOiByZWdpc3RlcjAgb2Zmc2V0IG9m IFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIgZm9yIFBDSWUuCisrICAgICAgICAtIGRl c2NyaXB0aW9uOiByZWdpc3RlcjEgb2Zmc2V0IG9mIFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVn aXN0ZXIgZm9yIFBDSWUuCisrICAgICAgICAtIGRlc2NyaXB0aW9uOiByZWdpc3RlcjIgb2Zmc2V0 IG9mIFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIgZm9yIFBDSWUuCisrICAgICAgICAt IGRlc2NyaXB0aW9uOiByZWdpc3RlcjMgb2Zmc2V0IG9mIFNUR19TWVNDT05TQUlGX19TWVNDRkcg cmVnaXN0ZXIgZm9yIFBDSWUuCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFRoZSBwaGFuZGxl IHRvIFN5c3RlbSBSZWdpc3RlciBDb250cm9sbGVyIHN5c2NvbiBub2RlIGFuZCB0aGUgb2Zmc2V0 CisrICAgICAgb2YgU1RHX1NZU0NPTlNBSUZfX1NZU0NGRyByZWdpc3RlciBmb3IgUENJZS4gVG90 YWwgNCByZWdzaXN0ZXJzIG9mZnNldAorKyAgICAgIGZvciBQQ0llLgorKworKyAgcHdyZW4tZ3Bp b3M6CisrICAgIGRlc2NyaXB0aW9uOiBTaG91bGQgc3BlY2lmeSB0aGUgR1BJTyBmb3IgY29udHJv bGxpbmcgdGhlIFBDSSBidXMgZGV2aWNlIHBvd2VyIG9uLgorKyAgICBtYXhJdGVtczogMQorKwor KyAgcmVzZXQtZ3Bpb3M6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBwaHlzOgorKyAgICBtYXhJ dGVtczogMQorKworKyAgaW50ZXJydXB0LWNvbnRyb2xsZXI6CisrICAgIHR5cGU6IG9iamVjdAor KyAgICBwcm9wZXJ0aWVzOgorKyAgICAgICcjYWRkcmVzcy1jZWxscyc6CisrICAgICAgICBjb25z dDogMAorKworKyAgICAgICcjaW50ZXJydXB0LWNlbGxzJzoKKysgICAgICAgIGNvbnN0OiAxCisr CisrICAgICAgaW50ZXJydXB0LWNvbnRyb2xsZXI6IHRydWUKKysKKysgICAgcmVxdWlyZWQ6Cisr ICAgICAgLSAnI2FkZHJlc3MtY2VsbHMnCisrICAgICAgLSAnI2ludGVycnVwdC1jZWxscycKKysg ICAgICAtIGludGVycnVwdC1jb250cm9sbGVyCisrCisrICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVz OiBmYWxzZQorKworK3JlcXVpcmVkOgorKyAgLSByZWcKKysgIC0gcmVnLW5hbWVzCisrICAtICIj aW50ZXJydXB0LWNlbGxzIgorKyAgLSBpbnRlcnJ1cHRzCisrICAtIGludGVycnVwdC1tYXAtbWFz aworKyAgLSBpbnRlcnJ1cHQtbWFwCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAg LSByZXNldHMKKysgIC0gbXNpLWNvbnRyb2xsZXIKKysKKyt1bmV2YWx1YXRlZFByb3BlcnRpZXM6 IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgYnVzIHsKKysgICAgICAgICNhZGRy ZXNzLWNlbGxzID0gPDI+OworKyAgICAgICAgI3NpemUtY2VsbHMgPSA8Mj47CisrCisrICAgICAg ICBwY2llMDogcGNpZUAyQjAwMDAwMCB7CisrICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFy Zml2ZSxqaDcxMTAtcGNpZSI7CisrICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8Mz47Cisr ICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8Mj47CisrICAgICAgICAgICAgI2ludGVycnVwdC1j ZWxscyA9IDwxPjsKKysgICAgICAgICAgICByZWcgPSA8MHgwIDB4MkIwMDAwMDAgMHgwIDB4MTAw MDAwMD4sCisrICAgICAgICAgICAgICAgICAgPDB4OSAweDQwMDAwMDAwIDB4MCAweDEwMDAwMDAw PjsKKysgICAgICAgICAgICByZWctbmFtZXMgPSAicmVnIiwgImNvbmZpZyI7CisrICAgICAgICAg ICAgZGV2aWNlX3R5cGUgPSAicGNpIjsKKysgICAgICAgICAgICBzdGFyZml2ZSxzdGctc3lzY29u ID0gPCZzdGdfc3lzY29uIDB4YzAgMHhjNCAweDEzMCAweDFiOD47CisrICAgICAgICAgICAgYnVz LXJhbmdlID0gPDB4MCAweGZmPjsKKysgICAgICAgICAgICByYW5nZXMgPSA8MHg4MjAwMDAwMCAg MHgwIDB4MzAwMDAwMDAgIDB4MCAweDMwMDAwMDAwIDB4MCAweDA4MDAwMDAwPiwKKysgICAgICAg ICAgICAgICAgICAgICA8MHhjMzAwMDAwMCAgMHg5IDB4MDAwMDAwMDAgIDB4OSAweDAwMDAwMDAw IDB4MCAweDQwMDAwMDAwPjsKKysgICAgICAgICAgICBpbnRlcnJ1cHQtcGFyZW50ID0gPCZwbGlj PjsKKysgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPDU2PjsKKysgICAgICAgICAgICBpbnRlcnJ1 cHQtbWFwLW1hc2sgPSA8MHgwIDB4MCAweDAgMHg3PjsKKysgICAgICAgICAgICBpbnRlcnJ1cHQt bWFwID0gPDB4MCAweDAgMHgwIDB4MSAmcGNpZV9pbnRjMCAweDE+LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8MHgwIDB4MCAweDAgMHgyICZwY2llX2ludGMwIDB4Mj4sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwweDAgMHgwIDB4MCAweDMgJnBjaWVfaW50YzAgMHgzPiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDB4MCAweDAgMHgwIDB4NCAmcGNpZV9pbnRj MCAweDQ+OworKyAgICAgICAgICAgIG1zaS1wYXJlbnQgPSA8JnBjaWUwPjsKKysgICAgICAgICAg ICBtc2ktY29udHJvbGxlcjsKKysgICAgICAgICAgICBjbG9ja3MgPSA8JnN5c2NyZyA4Nj4sCisr ICAgICAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMTA+LAorKyAgICAgICAgICAgICAgICAgICAg IDwmc3RnY3JnIDg+LAorKyAgICAgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDk+OworKyAgICAg ICAgICAgIGNsb2NrLW5hbWVzID0gIm5vYyIsICJ0bCIsICJheGlfbXN0MCIsICJhcGIiOworKyAg ICAgICAgICAgIHJlc2V0cyA9IDwmc3RnY3JnIDExPiwKKysgICAgICAgICAgICAgICAgICAgICA8 JnN0Z2NyZyAxMj4sCisrICAgICAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMTM+LAorKyAgICAg ICAgICAgICAgICAgICAgIDwmc3RnY3JnIDE0PiwKKysgICAgICAgICAgICAgICAgICAgICA8JnN0 Z2NyZyAxNT4sCisrICAgICAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMTY+OworKworKyAgICAg ICAgICAgIHBjaWVfaW50YzA6IGludGVycnVwdC1jb250cm9sbGVyIHsKKysgICAgICAgICAgICAg ICAgI2FkZHJlc3MtY2VsbHMgPSA8MD47CisrICAgICAgICAgICAgICAgICNpbnRlcnJ1cHQtY2Vs bHMgPSA8MT47CisrICAgICAgICAgICAgICAgIGludGVycnVwdC1jb250cm9sbGVyOworKyAgICAg ICAgICAgIH07CisrICAgICAgICB9OworKyAgICB9OworLS0gCisyLjQwLjEKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwODAtcGNpZS1zdGFyZml2ZS1hZGQtU3RhckZp dmUtSkg3MTEwLVBDSWUtZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAw ODAtcGNpZS1zdGFyZml2ZS1hZGQtU3RhckZpdmUtSkg3MTEwLVBDSWUtZHJpdmVyLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjk1ZGU1MWY2NzFkM2MKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMvMDA4MC1wY2llLXN0YXJm aXZlLWFkZC1TdGFyRml2ZS1KSDcxMTAtUENJZS1kcml2ZXIucGF0Y2gKQEAgLTAsMCArMSwxMDE0 IEBACitGcm9tIDQxZDA1NzZkZDdhN2I5MGM1NmQzNzA3YjdiNGMwMzc2ZDAzMTEzM2IgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBUaHUsIDYgQXByIDIwMjMgMTk6MTE6NDEgKzA4MDAKK1N1YmplY3Q6 IFtQQVRDSCA4MC84NF0gcGNpZTogc3RhcmZpdmU6IGFkZCBTdGFyRml2ZSBKSDcxMTAgUENJZSBk cml2ZXIuCisKK0FkZCBQQ0llIGNvbnRyb2xsZXIgZHJpdmVyIGZvciBTdGFyRml2ZSBKSDcxMTAK K1NvQyBwbGF0Zm9ybS4gVGhlIFBDSWUgY29udHJvbGxlciBpcyBQQ0llIDIuMCwgc2luZ2xlIGxh bmUuCisKK1NpZ25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNo LmNvbT4KKy0tLQorIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvS2NvbmZpZyAgICAgICAgIHwgICA4 ICsKKyBkcml2ZXJzL3BjaS9jb250cm9sbGVyL01ha2VmaWxlICAgICAgICB8ICAgMSArCisgZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2llLXN0YXJmaXZlLmMgfCA5NTggKysrKysrKysrKysrKysr KysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgOTY3IGluc2VydGlvbnMoKykKKyBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXN0YXJmaXZlLmMKKworZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvS2NvbmZpZyBiL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvS2NvbmZpZworaW5kZXggNDI2NTQwMzU2NTRhLi4zYjM5MDgwMDE4YTUgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL0tjb25maWcKKysrKyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvS2NvbmZpZworQEAgLTM0Miw2ICszNDIsMTQgQEAgY29uZmlnIFBDSUVfTVQ3 NjIxCisgCWhlbHAKKyAJICBUaGlzIHNlbGVjdHMgYSBkcml2ZXIgZm9yIHRoZSBNZWRpYVRlayBN VDc2MjEgUENJZSBDb250cm9sbGVyLgorIAorK2NvbmZpZyBQQ0lFX1NUQVJGSVZFCisrCXRyaXN0 YXRlICJTdGFyRml2ZSBKSDcxMTAgUENJZSBjb250cm9sbGVyIgorKwlkZXBlbmRzIG9uIFBDSV9N U0kgJiYgT0YKKysJc2VsZWN0IFBDSV9NU0lfSVJRX0RPTUFJTgorKwloZWxwCisrCSAgU2F5ICdZ JyBoZXJlIGlmIHlvdSB3YW50IGtlcm5lbCB0byBzdXBwb3J0IHRoZSBTdGFyRml2ZSBKSDcxMTAK KysJICBQQ0llIEhvc3QgZHJpdmVyLgorKworIHNvdXJjZSAiZHJpdmVycy9wY2kvY29udHJvbGxl ci9kd2MvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvbW9iaXZlaWwv S2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvY2FkZW5jZS9LY29uZmln IgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvTWFrZWZpbGUgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL01ha2VmaWxlCitpbmRleCAzN2M4NjYzZGU3ZmUuLjIzNzA4MjIyZGI4 YSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvTWFrZWZpbGUKKysrKyBiL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvTWFrZWZpbGUKK0BAIC0zOSw2ICszOSw3IEBAIG9iai0kKENP TkZJR19QQ0lfTE9PTkdTT04pICs9IHBjaS1sb29uZ3Nvbi5vCisgb2JqLSQoQ09ORklHX1BDSUVf SElTSV9FUlIpICs9IHBjaWUtaGlzaS1lcnJvci5vCisgb2JqLSQoQ09ORklHX1BDSUVfQVBQTEUp ICs9IHBjaWUtYXBwbGUubworIG9iai0kKENPTkZJR19QQ0lFX01UNzYyMSkgKz0gcGNpZS1tdDc2 MjEubworK29iai0kKENPTkZJR19QQ0lFX1NUQVJGSVZFKSArPSBwY2llLXN0YXJmaXZlLm8KKyAK KyAjIHBjaWUtaGlzaS5vIHF1aXJrcyBhcmUgbmVlZGVkIGV2ZW4gd2l0aG91dCBDT05GSUdfUENJ RV9EVworIG9iai15CQkJCSs9IGR3Yy8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9s bGVyL3BjaWUtc3RhcmZpdmUuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1zdGFyZml2 ZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5lMWRjOGVjYzc2 OWEKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1zdGFy Zml2ZS5jCitAQCAtMCwwICsxLDk1OCBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wKworKy8qCisrICogUENJZSBob3N0IGNvbnRyb2xsZXIgZHJpdmVyIGZvciBTdGFyZml2 ZSBKSDcxMTAgU29jLgorKyAqCisrICogQmFzZWQgb24gcGNpZS1hbHRlcmEuYywgcGNpZS1hbHRl cmEtbXNpLmMuCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28u LCBMdGQuCisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51 eC9kZWxheS5oPgorKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisrI2luY2x1ZGUg PGxpbnV4L2ludGVycnVwdC5oPgorKyNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJx Lmg+CisrI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKysjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L21zaS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRy ZXNzLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9w Y2kuaD4KKysjaW5jbHVkZSA8bGludXgvcGNpLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BjaS1lY2Ft Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KKysjaW5jbHVkZSA8bGludXgvcGluY3Ry bC9jb25zdW1lci5oPgorKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3BpbmN0cmwuaD4KKysjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRp bWUuaD4KKysjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisrI2luY2x1ZGUgPGxpbnV4L3Jlc2V0 Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKysjaW5jbHVkZSAiLi4vcGNpLmgiCisrCisr I2RlZmluZSBJTUFTS19MT0NBTAkJCTB4MTgwCisrI2RlZmluZSBJU1RBVFVTX0xPQ0FMCQkJMHgx ODQKKysjZGVmaW5lIElNU0lfQUREUgkJCTB4MTkwCisrI2RlZmluZSBJU1RBVFVTX01TSQkJCTB4 MTk0CisrI2RlZmluZSBHRU5fU0VUVElOR1MJCQkweDgwCisrI2RlZmluZSBQQ0lFX1BDSV9JRFMJ CQkweDlDCisrI2RlZmluZSBQQ0lFX1dJTlJPTQkJCTB4RkMKKysjZGVmaW5lIFBNU0dfU1VQUE9S VF9SWAkJCTB4M0YwCisrCisrI2RlZmluZSBQQ0lfTUlTQwkJCTB4QjQKKysKKysjZGVmaW5lIFJQ X0VOQUJMRQkJCTEKKysKKysjZGVmaW5lIElEU19DTEFTU19DT0RFX1NISUZUCQkxNgorKworKyNk ZWZpbmUgREFUQV9MSU5LX0FDVElWRQkJQklUKDUpCisrI2RlZmluZSBQUkVGX01FTV9XSU5fNjRf U1VQUE9SVAkJQklUKDMpCisrI2RlZmluZSBQTVNHX0xUUl9TVVBQT1JUCQlCSVQoMikKKysjZGVm aW5lIExJTktfU1BFRURfR0VOMgkJCUJJVCgxMikKKysjZGVmaW5lIFBIWV9GVU5DVElPTl9ESVMJ CUJJVCgxNSkKKysjZGVmaW5lIFBDSUVfRlVOQ19OVU0JCQk0CisrI2RlZmluZSBQSFlfRlVOQ19T SElGVAkJCTkKKysKKysjZGVmaW5lIFhSM1BDSV9BVFJfQVhJNF9TTFYwCQkweDgwMAorKyNkZWZp bmUgWFIzUENJX0FUUl9TUkNfQUREUl9MT1cJCTB4MAorKyNkZWZpbmUgWFIzUENJX0FUUl9TUkNf QUREUl9ISUdICTB4NAorKyNkZWZpbmUgWFIzUENJX0FUUl9UUlNMX0FERFJfTE9XCTB4OAorKyNk ZWZpbmUgWFIzUENJX0FUUl9UUlNMX0FERFJfSElHSAkweGMKKysjZGVmaW5lIFhSM1BDSV9BVFJf VFJTTF9QQVJBTQkJMHgxMAorKyNkZWZpbmUgWFIzUENJX0FUUl9UQUJMRV9PRkZTRVQJCTB4MjAK KysjZGVmaW5lIFhSM1BDSV9BVFJfTUFYX1RBQkxFX05VTQk4CisrCisrI2RlZmluZSBYUjNQQ0lf QVRSX1NSQ19XSU5fU0laRV9TSElGVAkxCisrI2RlZmluZSBYUjNQQ0lfQVRSX1NSQ19BRERSX01B U0sJR0VOTUFTSygzMSwgMTIpCisrI2RlZmluZSBYUjNQQ0lfQVRSX1RSU0xfQUREUl9NQVNLCUdF Tk1BU0soMzEsIDEyKQorKyNkZWZpbmUgWFIzUENJX0VDQU1fU0laRQkJQklUKDI4KQorKyNkZWZp bmUgWFIzUENJX0FUUl9UUlNMX0RJUgkJQklUKDIyKQorKy8qIElEcyB1c2VkIGluIHRoZSBYUjNQ Q0lfQVRSX1RSU0xfUEFSQU0gKi8KKysjZGVmaW5lIFhSM1BDSV9BVFJfVFJTTElEX1BDSUVfTUVN T1JZCTB4MAorKyNkZWZpbmUgWFIzUENJX0FUUl9UUlNMSURfUENJRV9DT05GSUcJMHgxCisrCisr I2RlZmluZSBJTlRfQVhJX1BPU1RfRVJST1IJCUJJVCgxNikKKysjZGVmaW5lIElOVF9BWElfRkVU Q0hfRVJST1IJCUJJVCgxNykKKysjZGVmaW5lIElOVF9BWElfRElTQ0FSRF9FUlJPUgkJQklUKDE4 KQorKyNkZWZpbmUgSU5UX1BDSUVfUE9TVF9FUlJPUgkJQklUKDIwKQorKyNkZWZpbmUgSU5UX1BD SUVfRkVUQ0hfRVJST1IJCUJJVCgyMSkKKysjZGVmaW5lIElOVF9QQ0lFX0RJU0NBUkRfRVJST1IJ CUJJVCgyMikKKysjZGVmaW5lIElOVF9FUlJPUlMJCShJTlRfQVhJX1BPU1RfRVJST1IgfCBJTlRf QVhJX0ZFVENIX0VSUk9SIHwgXAorKwkJCQkgSU5UX0FYSV9ESVNDQVJEX0VSUk9SIHwgSU5UX1BD SUVfUE9TVF9FUlJPUiB8IFwKKysJCQkJIElOVF9QQ0lFX0ZFVENIX0VSUk9SIHwgSU5UX1BDSUVf RElTQ0FSRF9FUlJPUikKKysKKysjZGVmaW5lIElOVEFfT0ZGU0VUCQkyNAorKyNkZWZpbmUgSU5U QQkJCUJJVCgyNCkKKysjZGVmaW5lIElOVEIJCQlCSVQoMjUpCisrI2RlZmluZSBJTlRDCQkJQklU KDI2KQorKyNkZWZpbmUgSU5URAkJCUJJVCgyNykKKysjZGVmaW5lIElOVF9NU0kJCQlCSVQoMjgp CisrI2RlZmluZSBJTlRfSU5UWF9NQVNLCQkoSU5UQSB8IElOVEIgfCBJTlRDIHwgSU5URCkKKysj ZGVmaW5lIElOVF9NQVNLCQkoSU5UX0lOVFhfTUFTSyB8IElOVF9NU0kgfCBJTlRfRVJST1JTKQor KworKyNkZWZpbmUgSU5UX1BDSV9NU0lfTlIJCTMyCisrCisrLyogc3lzdGVtIGNvbnRyb2wgKi8K KysjZGVmaW5lIFNUR19TWVNDT05fS19SUF9ORVAJCQlCSVQoOCkKKysjZGVmaW5lIFNUR19TWVND T05fQVhJNF9TTFZMX0FSRlVOQ19NQVNLCUdFTk1BU0soMjIsIDgpCisrI2RlZmluZSBTVEdfU1lT Q09OX0FYSTRfU0xWTF9BUkZVTkNfU0hJRlQJOAorKyNkZWZpbmUgU1RHX1NZU0NPTl9BWEk0X1NM VkxfQVdGVU5DX01BU0sJR0VOTUFTSygxNCwgMCkKKysjZGVmaW5lIFNUR19TWVNDT05fQ0xLUkVR CQkJQklUKDIyKQorKyNkZWZpbmUgU1RHX1NZU0NPTl9DS1JFRl9TUkNfU0hJRlQJCTE4CisrI2Rl ZmluZSBTVEdfU1lTQ09OX0NLUkVGX1NSQ19NQVNLCQlHRU5NQVNLKDE5LCAxOCkKKysKKysvKiBN U0kgaW5mb3JtYXRpb24gKi8KKytzdHJ1Y3Qgamg3MTEwX3BjaWVfbXNpIHsKKysJREVDTEFSRV9C SVRNQVAodXNlZCwgSU5UX1BDSV9NU0lfTlIpOworKwlzdHJ1Y3QgaXJxX2RvbWFpbiAqbXNpX2Rv bWFpbjsKKysJc3RydWN0IGlycV9kb21haW4gKmlubmVyX2RvbWFpbjsKKysJLyogUHJvdGVjdCBi aXRtYXAgdmFyaWFibGUgKi8KKysJc3RydWN0IG11dGV4IGxvY2s7CisrfTsKKysKKytzdHJ1Y3Qg c3RhcmZpdmVfamg3MTEwX3BjaWUgeworKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlCSpwZGV2Owor Kwl2b2lkIF9faW9tZW0JCSpyZWdfYmFzZTsKKysJdm9pZCBfX2lvbWVtCQkqY29uZmlnX2Jhc2U7 CisrCXBoeXNfYWRkcl90IGNvbmZpZ19waHlhZGRyOworKwlzdHJ1Y3QgcmVnbWFwICpyZWdfc3lz Y29uOworKwlzdHJ1Y3QgcGh5ICpwaHk7CisrCXUzMiBzdGdfYXJmdW47CisrCXUzMiBzdGdfYXdm dW47CisrCXUzMiBzdGdfcnBfbmVwOworKwl1MzIgc3RnX2xua3N0YTsKKysJaW50CQkJaXJxOwor KwlzdHJ1Y3QgaXJxX2RvbWFpbgkqbGVnYWN5X2lycV9kb21haW47CisrCXN0cnVjdCBwY2lfaG9z dF9icmlkZ2UgICpicmlkZ2U7CisrCXN0cnVjdCBqaDcxMTBfcGNpZV9tc2kJbXNpOworKwlzdHJ1 Y3QgcmVzZXRfY29udHJvbCAqcmVzZXRzOworKwlzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqY2xrczsK KysJaW50IG51bV9jbGtzOworKwlpbnQgYXRyX3RhYmxlX251bTsKKysJc3RydWN0IGdwaW9fZGVz YyAqcG93ZXJfZ3BpbzsKKysJc3RydWN0IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKKyt9OworKwor Ky8qCisrICogU3RhckZpdmUgUENJZSBwb3J0IHVzZXMgQkFSMC1CQVIxIG9mIFJDJ3MgY29uZmln dXJhdGlvbiBzcGFjZSBhcworKyAqIHRoZSB0cmFuc2xhdGlvbiBmcm9tIFBDSSBidXMgdG8gbmF0 aXZlIEJVUy4gIEVudGlyZSBERFIgcmVnaW9uCisrICogaXMgbWFwcGVkIGludG8gUENJZSBzcGFj ZSB1c2luZyB0aGVzZSByZWdpc3RlcnMsIHNvIGl0IGNhbiBiZQorKyAqIHJlYWNoZWQgYnkgRE1B IGZyb20gRVAgZGV2aWNlcy4gIFRoZSBCQVIwLzEgb2YgYnJpZGdlIHNob3VsZCBiZQorKyAqIGhp ZGRlbiBkdXJpbmcgZW51bWVyYXRpb24gdG8gYXZvaWQgdGhlIHNpemluZyBhbmQgcmVzb3VyY2Ug YWxsb2NhdGlvbgorKyAqIGJ5IFBDSWUgY29yZS4KKysgKi8KKytzdGF0aWMgYm9vbCBzdGFyZml2 ZV9wY2llX2hpZGVfcmNfYmFyKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCAgZGV2 Zm4sCisrCQkJCSAgaW50IG9mZnNldCkKKyt7CisrCWlmIChwY2lfaXNfcm9vdF9idXMoYnVzKSAm JiAoZGV2Zm4gPT0gMCkKKysJCSYmICgob2Zmc2V0ID09IFBDSV9CQVNFX0FERFJFU1NfMCkKKysJ CXx8IChvZmZzZXQgPT0gUENJX0JBU0VfQUREUkVTU18xKSkpCisrCQlyZXR1cm4gdHJ1ZTsKKysK KysJcmV0dXJuIGZhbHNlOworK30KKysKKyt2b2lkIF9faW9tZW0gKnN0YXJmaXZlX3BjaWVfbWFw X2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCisrCQkJICAgaW50 IHdoZXJlKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llID0gYnVzLT5z eXNkYXRhOworKworKwlyZXR1cm4gcGNpZS0+Y29uZmlnX2Jhc2UgKyBQQ0lFX0VDQU1fT0ZGU0VU KGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUpOworK30KKysKKytpbnQgc3RhcmZpdmVfcGNpZV9j b25maWdfd3JpdGUoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAorKwkJ CSAgIGludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWx1ZSkKKyt7CisrCWlmIChzdGFyZml2ZV9w Y2llX2hpZGVfcmNfYmFyKGJ1cywgZGV2Zm4sIHdoZXJlKSkKKysJCXJldHVybiBQQ0lCSU9TX0JB RF9SRUdJU1RFUl9OVU1CRVI7CisrCisrCXJldHVybiBwY2lfZ2VuZXJpY19jb25maWdfd3JpdGUo YnVzLCBkZXZmbiwgd2hlcmUsIHNpemUsIHZhbHVlKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3Rh cmZpdmVfcGNpZV9oYW5kbGVfbXNpX2lycShzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBj aWUpCisreworKwlzdHJ1Y3Qgamg3MTEwX3BjaWVfbXNpICptc2kgPSAmcGNpZS0+bXNpOworKwl1 MzIgYml0OworKwl1MzIgdmlycTsKKysJdW5zaWduZWQgbG9uZyBzdGF0dXMgPSByZWFkbChwY2ll LT5yZWdfYmFzZSArIElTVEFUVVNfTVNJKTsKKysKKysJZm9yX2VhY2hfc2V0X2JpdChiaXQsICZz dGF0dXMsIElOVF9QQ0lfTVNJX05SKSB7CisrCQkvKiBDbGVhciBpbnRlcnJ1cHRzICovCisrCQl3 cml0ZWwoMSA8PCBiaXQsIHBjaWUtPnJlZ19iYXNlICsgSVNUQVRVU19NU0kpOworKwkJdmlycSA9 IGlycV9maW5kX21hcHBpbmcobXNpLT5pbm5lcl9kb21haW4sIGJpdCk7CisrCQlpZiAodmlycSkg eworKwkJCWlmICh0ZXN0X2JpdChiaXQsIG1zaS0+dXNlZCkpCisrCQkJCWdlbmVyaWNfaGFuZGxl X2lycSh2aXJxKTsKKysJCQllbHNlCisrCQkJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwKKysJ CQkJCSJVbmhhbmRsZWQgTVNJLCBNU0klZCB2aXJxICVkXG4iLCBiaXQsCisrCQkJCQl2aXJxKTsK KysJCX0gZWxzZQorKwkJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwgIlVuZXhwZWN0ZWQgTVNJ LCBNU0klZFxuIiwKKysJCQkJYml0KTsKKysJfQorKwl3cml0ZWwoSU5UX01TSSwgcGNpZS0+cmVn X2Jhc2UgKyBJU1RBVFVTX0xPQ0FMKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfcGNp ZV9oYW5kbGVfaW50eF9pcnEoc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llLAorKwkJ CQkgICAgICB1bnNpZ25lZCBsb25nIHN0YXR1cykKKyt7CisrCXUzMiBiaXQ7CisrCXUzMiB2aXJx OworKworKwlzdGF0dXMgPj49IElOVEFfT0ZGU0VUOworKworKwlmb3JfZWFjaF9zZXRfYml0KGJp dCwgJnN0YXR1cywgUENJX05VTV9JTlRYKSB7CisrCQkvKiBDbGVhciBpbnRlcnJ1cHRzICovCisr CQl3cml0ZWwoMSA8PCAoYml0ICsgSU5UQV9PRkZTRVQpLCBwY2llLT5yZWdfYmFzZSArIElTVEFU VVNfTE9DQUwpOworKworKwkJdmlycSA9IGlycV9maW5kX21hcHBpbmcocGNpZS0+bGVnYWN5X2ly cV9kb21haW4sIGJpdCk7CisrCQlpZiAodmlycSkKKysJCQlnZW5lcmljX2hhbmRsZV9pcnEodmly cSk7CisrCQllbHNlCisrCQkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LAorKwkJCQkidW5leHBl Y3RlZCBJUlEsIElOVCVkXG4iLCBiaXQpOworKwl9CisrfQorKworK3N0YXRpYyB2b2lkIHN0YXJm aXZlX3BjaWVfaGFuZGxlX2Vycm9yc19pcnEoc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpw Y2llLCB1MzIgc3RhdHVzKQorK3sKKysJaWYgKHN0YXR1cyAmIElOVF9BWElfUE9TVF9FUlJPUikK KysJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwgIkFYSSBwb3N0IGVycm9yXG4iKTsKKysJaWYg KHN0YXR1cyAmIElOVF9BWElfRkVUQ0hfRVJST1IpCisrCQlkZXZfZXJyKCZwY2llLT5wZGV2LT5k ZXYsICJBWEkgZmV0Y2ggZXJyb3JcbiIpOworKwlpZiAoc3RhdHVzICYgSU5UX0FYSV9ESVNDQVJE X0VSUk9SKQorKwkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiQVhJIGRpc2NhcmQgZXJyb3Jc biIpOworKwlpZiAoc3RhdHVzICYgSU5UX1BDSUVfUE9TVF9FUlJPUikKKysJCWRldl9lcnIoJnBj aWUtPnBkZXYtPmRldiwgIlBDSWUgcG9zdCBlcnJvclxuIik7CisrCWlmIChzdGF0dXMgJiBJTlRf UENJRV9GRVRDSF9FUlJPUikKKysJCWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwgIlBDSWUgZmV0 Y2ggZXJyb3JcbiIpOworKwlpZiAoc3RhdHVzICYgSU5UX1BDSUVfRElTQ0FSRF9FUlJPUikKKysJ CWRldl9lcnIoJnBjaWUtPnBkZXYtPmRldiwgIlBDSWUgZGlzY2FyZCBlcnJvclxuIik7CisrCisr CXdyaXRlbChJTlRfRVJST1JTLCBwY2llLT5yZWdfYmFzZSArIElTVEFUVVNfTE9DQUwpOworK30K KysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9wY2llX2lzcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2Mp CisreworKwlzdHJ1Y3QgaXJxX2NoaXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsK KysJc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llOworKwl1MzIgc3RhdHVzOworKwor KwljaGFpbmVkX2lycV9lbnRlcihjaGlwLCBkZXNjKTsKKysJcGNpZSA9IGlycV9kZXNjX2dldF9o YW5kbGVyX2RhdGEoZGVzYyk7CisrCisrCXN0YXR1cyA9IHJlYWRsKHBjaWUtPnJlZ19iYXNlICsg SVNUQVRVU19MT0NBTCk7CisrCXdoaWxlICgoc3RhdHVzID0gKHJlYWRsKHBjaWUtPnJlZ19iYXNl ICsgSVNUQVRVU19MT0NBTCkgJiBJTlRfTUFTSykpKSB7CisrCQlpZiAoc3RhdHVzICYgSU5UX0lO VFhfTUFTSykKKysJCQlzdGFyZml2ZV9wY2llX2hhbmRsZV9pbnR4X2lycShwY2llLCBzdGF0dXMp OworKworKwkJaWYgKHN0YXR1cyAmIElOVF9NU0kpCisrCQkJc3RhcmZpdmVfcGNpZV9oYW5kbGVf bXNpX2lycShwY2llKTsKKysKKysJCWlmIChzdGF0dXMgJiBJTlRfRVJST1JTKQorKwkJCXN0YXJm aXZlX3BjaWVfaGFuZGxlX2Vycm9yc19pcnEocGNpZSwgc3RhdHVzKTsKKysJfQorKworKwljaGFp bmVkX2lycV9leGl0KGNoaXAsIGRlc2MpOworK30KKysKKysjaWZkZWYgQ09ORklHX1BDSV9NU0kK KytzdGF0aWMgc3RydWN0IGlycV9jaGlwIHN0YXJmaXZlX3BjaWVfbXNpX2lycV9jaGlwID0gewor KwkubmFtZSA9ICJTdGFyRml2ZSBQQ0llIE1TSSIsCisrCS5pcnFfbWFzayA9IHBjaV9tc2lfbWFz a19pcnEsCisrCS5pcnFfdW5tYXNrID0gcGNpX21zaV91bm1hc2tfaXJxLAorK307CisrCisrc3Rh dGljIHN0cnVjdCBtc2lfZG9tYWluX2luZm8gc3RhcmZpdmVfcGNpZV9tc2lfZG9tYWluX2luZm8g PSB7CisrCS5mbGFncyA9IChNU0lfRkxBR19VU0VfREVGX0RPTV9PUFMgfCBNU0lfRkxBR19VU0Vf REVGX0NISVBfT1BTIHwKKysJCSAgTVNJX0ZMQUdfUENJX01TSVgpLAorKwkuY2hpcCA9ICZzdGFy Zml2ZV9wY2llX21zaV9pcnFfY2hpcCwKKyt9OworKyNlbmRpZgorKworK3N0YXRpYyB2b2lkIHN0 YXJmaXZlX3BjaWVfY29tcG9zZV9tc2lfbXNnKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSwgc3RydWN0 IG1zaV9tc2cgKm1zZykKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSA9 IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOworKwlwaHlzX2FkZHJfdCBtc2lfYWRk ciA9IHJlYWRsKHBjaWUtPnJlZ19iYXNlICsgSU1TSV9BRERSKTsKKysKKysJbXNnLT5hZGRyZXNz X2xvID0gbG93ZXJfMzJfYml0cyhtc2lfYWRkcik7CisrCW1zZy0+YWRkcmVzc19oaSA9IHVwcGVy XzMyX2JpdHMobXNpX2FkZHIpOworKwltc2ctPmRhdGEgPSBkYXRhLT5od2lycTsKKysKKysJZGV2 X2luZm8oJnBjaWUtPnBkZXYtPmRldiwgIm1zaSMlZCBhZGRyZXNzX2hpICUjeCBhZGRyZXNzX2xv ICUjeFxuIiwKKysJCShpbnQpZGF0YS0+aHdpcnEsIG1zZy0+YWRkcmVzc19oaSwgbXNnLT5hZGRy ZXNzX2xvKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9wY2llX21zaV9zZXRfYWZmaW5p dHkoc3RydWN0IGlycV9kYXRhICppcnFfZGF0YSwKKysJCQkJIGNvbnN0IHN0cnVjdCBjcHVtYXNr ICptYXNrLCBib29sIGZvcmNlKQorK3sKKysJcmV0dXJuIC1FSU5WQUw7CisrfQorKworK3N0YXRp YyBzdHJ1Y3QgaXJxX2NoaXAgc3RhcmZpdmVfaXJxX2NoaXAgPSB7CisrCS5uYW1lID0gIlN0YXJG aXZlIE1TSSIsCisrCS5pcnFfY29tcG9zZV9tc2lfbXNnID0gc3RhcmZpdmVfcGNpZV9jb21wb3Nl X21zaV9tc2csCisrCS5pcnFfc2V0X2FmZmluaXR5ID0gc3RhcmZpdmVfcGNpZV9tc2lfc2V0X2Fm ZmluaXR5LAorK307CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9wY2llX21zaV9hbGxvYyhzdHJ1 Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgdmlycSwKKysJCQkgIHVuc2lnbmVk IGludCBucl9pcnFzLCB2b2lkICphcmdzKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2poNzExMF9w Y2llICpwY2llID0gZG9tYWluLT5ob3N0X2RhdGE7CisrCXN0cnVjdCBqaDcxMTBfcGNpZV9tc2kg Km1zaSA9ICZwY2llLT5tc2k7CisrCWludCBiaXQ7CisrCisrCVdBUk5fT04obnJfaXJxcyAhPSAx KTsKKysJbXV0ZXhfbG9jaygmbXNpLT5sb2NrKTsKKysKKysJYml0ID0gZmluZF9maXJzdF96ZXJv X2JpdChtc2ktPnVzZWQsIElOVF9QQ0lfTVNJX05SKTsKKysJaWYgKGJpdCA+PSBJTlRfUENJX01T SV9OUikgeworKwkJbXV0ZXhfdW5sb2NrKCZtc2ktPmxvY2spOworKwkJcmV0dXJuIC1FTk9TUEM7 CisrCX0KKysKKysJc2V0X2JpdChiaXQsIG1zaS0+dXNlZCk7CisrCisrCWlycV9kb21haW5fc2V0 X2luZm8oZG9tYWluLCB2aXJxLCBiaXQsICZzdGFyZml2ZV9pcnFfY2hpcCwKKysJCQkgICAgZG9t YWluLT5ob3N0X2RhdGEsIGhhbmRsZV9zaW1wbGVfaXJxLAorKwkJCSAgICBOVUxMLCBOVUxMKTsK KysJbXV0ZXhfdW5sb2NrKCZtc2ktPmxvY2spOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3Rh dGljIHZvaWQgc3RhcmZpdmVfcGNpZV9tc2lfZnJlZShzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWlu LCB1bnNpZ25lZCBpbnQgdmlycSwKKysJCQkgIHVuc2lnbmVkIGludCBucl9pcnFzKQorK3sKKysJ c3RydWN0IGlycV9kYXRhICpkYXRhID0gaXJxX2RvbWFpbl9nZXRfaXJxX2RhdGEoZG9tYWluLCB2 aXJxKTsKKysJc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llID0gaXJxX2RhdGFfZ2V0 X2lycV9jaGlwX2RhdGEoZGF0YSk7CisrCXN0cnVjdCBqaDcxMTBfcGNpZV9tc2kgKm1zaSA9ICZw Y2llLT5tc2k7CisrCisrCW11dGV4X2xvY2soJm1zaS0+bG9jayk7CisrCisrCWlmICghdGVzdF9i aXQoZGF0YS0+aHdpcnEsIG1zaS0+dXNlZCkpCisrCQlkZXZfZXJyKCZwY2llLT5wZGV2LT5kZXYs ICJUcnlpbmcgdG8gZnJlZSB1bnVzZWQgTVNJIyVsdVxuIiwKKysJCQlkYXRhLT5od2lycSk7Cisr CWVsc2UKKysJCV9fY2xlYXJfYml0KGRhdGEtPmh3aXJxLCBtc2ktPnVzZWQpOworKworKwl3cml0 ZWwoMHhmZmZmZmZmZiwgcGNpZS0+cmVnX2Jhc2UgKyBJU1RBVFVTX01TSSk7CisrCW11dGV4X3Vu bG9jaygmbXNpLT5sb2NrKTsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWlu X29wcyBkZXZfbXNpX2RvbWFpbl9vcHMgPSB7CisrCS5hbGxvYyAgPSBzdGFyZml2ZV9wY2llX21z aV9hbGxvYywKKysJLmZyZWUgICA9IHN0YXJmaXZlX3BjaWVfbXNpX2ZyZWUsCisrfTsKKysKKytz dGF0aWMgdm9pZCBzdGFyZml2ZV9wY2llX21zaV9mcmVlX2lycV9kb21haW4oc3RydWN0IHN0YXJm aXZlX2poNzExMF9wY2llICpwY2llKQorK3sKKysjaWZkZWYgQ09ORklHX1BDSV9NU0kKKysJc3Ry dWN0IGpoNzExMF9wY2llX21zaSAqbXNpID0gJnBjaWUtPm1zaTsKKysJdTMyIGlycTsKKysJaW50 IGk7CisrCisrCWZvciAoaSA9IDA7IGkgPCBJTlRfUENJX01TSV9OUjsgaSsrKSB7CisrCQlpcnEg PSBpcnFfZmluZF9tYXBwaW5nKG1zaS0+aW5uZXJfZG9tYWluLCBpKTsKKysJCWlmIChpcnEgPiAw KQorKwkJCWlycV9kaXNwb3NlX21hcHBpbmcoaXJxKTsKKysJfQorKworKwlpZiAobXNpLT5tc2lf ZG9tYWluKQorKwkJaXJxX2RvbWFpbl9yZW1vdmUobXNpLT5tc2lfZG9tYWluKTsKKysKKysJaWYg KG1zaS0+aW5uZXJfZG9tYWluKQorKwkJaXJxX2RvbWFpbl9yZW1vdmUobXNpLT5pbm5lcl9kb21h aW4pOworKyNlbmRpZgorK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9wY2llX2ZyZWVfaXJx X2RvbWFpbihzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisreworKwlpbnQgaTsK KysJdTMyIGlycTsKKysKKysJLyogRGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLworKwl3cml0ZWwo MCwgcGNpZS0+cmVnX2Jhc2UgKyBJTUFTS19MT0NBTCk7CisrCisrCWlmIChwY2llLT5sZWdhY3lf aXJxX2RvbWFpbikgeworKwkJZm9yIChpID0gMDsgaSA8IFBDSV9OVU1fSU5UWDsgaSsrKSB7Cisr CQkJaXJxID0gaXJxX2ZpbmRfbWFwcGluZyhwY2llLT5sZWdhY3lfaXJxX2RvbWFpbiwgaSk7Cisr CQkJaWYgKGlycSA+IDApCisrCQkJCWlycV9kaXNwb3NlX21hcHBpbmcoaXJxKTsKKysJCX0KKysJ CWlycV9kb21haW5fcmVtb3ZlKHBjaWUtPmxlZ2FjeV9pcnFfZG9tYWluKTsKKysJfQorKworKwlp ZiAocGNpX21zaV9lbmFibGVkKCkpCisrCQlzdGFyZml2ZV9wY2llX21zaV9mcmVlX2lycV9kb21h aW4ocGNpZSk7CisrCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9kYXRhKHBjaWUtPmlycSwg TlVMTCwgTlVMTCk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfcGNpZV9pbml0X21zaV9p cnFfZG9tYWluKHN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSkKKyt7CisrI2lmZGVm IENPTkZJR19QQ0lfTVNJCisrCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd24gPSBvZl9ub2RlX3Rv X2Z3bm9kZShwY2llLT5wZGV2LT5kZXYub2Zfbm9kZSk7CisrCXN0cnVjdCBqaDcxMTBfcGNpZV9t c2kgKm1zaSA9ICZwY2llLT5tc2k7CisrCisrCW1zaS0+aW5uZXJfZG9tYWluID0gaXJxX2RvbWFp bl9hZGRfbGluZWFyKE5VTEwsIElOVF9QQ0lfTVNJX05SLAorKwkJCQkJCSAgJmRldl9tc2lfZG9t YWluX29wcywgcGNpZSk7CisrCWlmICghbXNpLT5pbm5lcl9kb21haW4pIHsKKysJCWRldl9lcnIo JnBjaWUtPnBkZXYtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgZGV2IElSUSBkb21haW5cbiIpOwor KwkJcmV0dXJuIC1FTk9NRU07CisrCX0KKysJbXNpLT5tc2lfZG9tYWluID0gcGNpX21zaV9jcmVh dGVfaXJxX2RvbWFpbihmd24sICZzdGFyZml2ZV9wY2llX21zaV9kb21haW5faW5mbywKKysJCQkJ CQkgICAgbXNpLT5pbm5lcl9kb21haW4pOworKwlpZiAoIW1zaS0+bXNpX2RvbWFpbikgeworKwkJ ZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBtc2kgSVJRIGRvbWFp blxuIik7CisrCQlpcnFfZG9tYWluX3JlbW92ZShtc2ktPmlubmVyX2RvbWFpbik7CisrCQlyZXR1 cm4gLUVOT01FTTsKKysJfQorKyNlbmRpZgorKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGlu dCBzdGFyZml2ZV9wY2llX2VuYWJsZV9tc2koc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpw Y2llLCBzdHJ1Y3QgcGNpX2J1cyAqYnVzKQorK3sKKysJc3RydWN0IGpoNzExMF9wY2llX21zaSAq bXNpID0gJnBjaWUtPm1zaTsKKysJdTMyIHJlZzsKKysKKysJbXV0ZXhfaW5pdCgmbXNpLT5sb2Nr KTsKKysKKysJLyogRW5hYmxlIE1TSSAqLworKwlyZWcgPSByZWFkbChwY2llLT5yZWdfYmFzZSAr IElNQVNLX0xPQ0FMKTsKKysJcmVnIHw9IElOVF9NU0k7CisrCXdyaXRlbChyZWcsIHBjaWUtPnJl Z19iYXNlICsgSU1BU0tfTE9DQUwpOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBz dGFyZml2ZV9wY2llX2ludHhfbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sIHVuc2lnbmVk IGludCBpcnEsCisrCQkJICAgICAgaXJxX2h3X251bWJlcl90IGh3aXJxKQorK3sKKysJaXJxX3Nl dF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgJmR1bW15X2lycV9jaGlwLCBoYW5kbGVfc2ltcGxlX2ly cSk7CisrCWlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLT5ob3N0X2RhdGEpOworKworKwly ZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBpbnR4 X2RvbWFpbl9vcHMgPSB7CisrCS5tYXAgPSBzdGFyZml2ZV9wY2llX2ludHhfbWFwLAorKwkueGxh dGUgPSBwY2lfaXJxZF9pbnR4X3hsYXRlLAorK307CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9w Y2llX2luaXRfaXJxX2RvbWFpbihzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisr eworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGNpZS0+cGRldi0+ZGV2OworKwlzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5vZGUgPSBkZXYtPm9mX25vZGU7CisrCWludCByZXQ7CisrCisrCWlmIChwY2lf bXNpX2VuYWJsZWQoKSkgeworKwkJcmV0ID0gc3RhcmZpdmVfcGNpZV9pbml0X21zaV9pcnFfZG9t YWluKHBjaWUpOworKwkJaWYgKHJldCAhPSAwKQorKwkJCXJldHVybiAtRU5PTUVNOworKwl9Cisr CisrCS8qIFNldHVwIElOVHggKi8KKysJcGNpZS0+bGVnYWN5X2lycV9kb21haW4gPSBpcnFfZG9t YWluX2FkZF9saW5lYXIobm9kZSwgUENJX05VTV9JTlRYLAorKwkJCQkJJmludHhfZG9tYWluX29w cywgcGNpZSk7CisrCisrCWlmICghcGNpZS0+bGVnYWN5X2lycV9kb21haW4pIHsKKysJCWRldl9l cnIoZGV2LCAiRmFpbGVkIHRvIGdldCBhIElOVHggSVJRIGRvbWFpblxuIik7CisrCQlyZXR1cm4g LUVOT01FTTsKKysJfQorKworKwlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShwY2ll LT5pcnEsIHN0YXJmaXZlX3BjaWVfaXNyLCBwY2llKTsKKysKKysJcmV0dXJuIDA7CisrfQorKwor K3N0YXRpYyBpbnQgc3RhcmZpdmVfcGNpZV9wYXJzZV9kdChzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEw X3BjaWUgKnBjaWUpCisreworKwlzdHJ1Y3QgcmVzb3VyY2UgKmNmZ19yZXM7CisrCXN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSBwY2llLT5wZGV2OworKwl1bnNpZ25lZCBpbnQgYXJnc1s0 XTsKKysKKysJcGNpZS0+cmVnX2Jhc2UgPQorKwkJZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291 cmNlX2J5bmFtZShwZGV2LCAicmVnIik7CisrCisrCWlmIChJU19FUlIocGNpZS0+cmVnX2Jhc2Up KQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihwY2llLT5yZWdf YmFzZSksCisrCQkJIkZhaWxlZCB0byBtYXAgcmVnIG1lbW9yeVxuIik7CisrCisrCWNmZ19yZXMg PSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAiY29u ZmlnIik7CisrCWlmICghY2ZnX3JlcykKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5k ZXYsIC1FTk9ERVYsCisrCQkJIkZhaWxlZCB0byBnZXQgY29uZmlnIG1lbW9yeVxuIik7CisrCisr CXBjaWUtPmNvbmZpZ19iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIGNm Z19yZXMpOworKwlpZiAoSVNfRVJSKHBjaWUtPmNvbmZpZ19iYXNlKSkKKysJCXJldHVybiBkZXZf ZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIocGNpZS0+Y29uZmlnX2Jhc2UpLAorKwkJCSJG YWlsZWQgdG8gbWFwIGNvbmZpZyBtZW1vcnlcbiIpOworKworKwlwY2llLT5jb25maWdfcGh5YWRk ciA9IGNmZ19yZXMtPnN0YXJ0OworKworKwlwY2llLT5waHkgPSBkZXZtX3BoeV9vcHRpb25hbF9n ZXQoJnBkZXYtPmRldiwgTlVMTCk7CisrCWlmIChJU19FUlIocGNpZS0+cGh5KSkKKysJCXJldHVy biBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIocGNpZS0+cGh5KSwKKysJCQkiRmFp bGVkIHRvIGdldCBwY2llIHBoeVxuIik7CisrCisrCXBjaWUtPmlycSA9IHBsYXRmb3JtX2dldF9p cnEocGRldiwgMCk7CisrCWlmIChwY2llLT5pcnEgPCAwKQorKwkJcmV0dXJuIGRldl9lcnJfcHJv YmUoJnBkZXYtPmRldiwgLUVJTlZBTCwKKysJCQkiRmFpbGVkIHRvIGdldCBJUlE6ICVkXG4iLCBw Y2llLT5pcnEpOworKworKwlwY2llLT5yZWdfc3lzY29uID0gc3lzY29uX3JlZ21hcF9sb29rdXBf YnlfcGhhbmRsZV9hcmdzKHBkZXYtPmRldi5vZl9ub2RlLAorKwkJInN0YXJmaXZlLHN0Zy1zeXNj b24iLCA0LCBhcmdzKTsKKysKKysJaWYgKElTX0VSUihwY2llLT5yZWdfc3lzY29uKSkKKysJCXJl dHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIocGNpZS0+cmVnX3N5c2Nvbiks CisrCQkJIkZhaWxlZCB0byBwYXJzZSBzdGFyZml2ZSxzdGctc3lzY29uXG4iKTsKKysKKysJcGNp ZS0+c3RnX2FyZnVuID0gYXJnc1swXTsKKysJcGNpZS0+c3RnX2F3ZnVuID0gYXJnc1sxXTsKKysJ cGNpZS0+c3RnX3JwX25lcCA9IGFyZ3NbMl07CisrCXBjaWUtPnN0Z19sbmtzdGEgPSBhcmdzWzNd OworKworKwkvKiBDbGVhciBhbGwgaW50ZXJydXB0cyAqLworKwl3cml0ZWwoMHhmZmZmZmZmZiwg cGNpZS0+cmVnX2Jhc2UgKyBJU1RBVFVTX0xPQ0FMKTsKKysJd3JpdGVsKElOVF9JTlRYX01BU0sg fCBJTlRfRVJST1JTLCBwY2llLT5yZWdfYmFzZSArIElNQVNLX0xPQ0FMKTsKKysKKysJcmV0dXJu IDA7CisrfQorKworK3N0YXRpYyBzdHJ1Y3QgcGNpX29wcyBzdGFyZml2ZV9wY2llX29wcyA9IHsK KysJLm1hcF9idXMJPSBzdGFyZml2ZV9wY2llX21hcF9idXMsCisrCS5yZWFkICAgICAgICAgICA9 IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLAorKwkud3JpdGUgICAgICAgICAgPSBzdGFyZml2ZV9w Y2llX2NvbmZpZ193cml0ZSwKKyt9OworKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX3BjaWVfc2V0 X2F0cl9lbnRyeShzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUsCisrCQkJcGh5c19h ZGRyX3Qgc3JjX2FkZHIsIHBoeXNfYWRkcl90IHRyc2xfYWRkciwKKysJCQlzaXplX3Qgd2luZG93 X3NpemUsIGludCB0cnNsX3BhcmFtKQorK3sKKysJdm9pZCBfX2lvbWVtICpiYXNlID0KKysJCXBj aWUtPnJlZ19iYXNlICsgWFIzUENJX0FUUl9BWEk0X1NMVjA7CisrCisrCS8qIFN1cHBvcnQgQVhJ NCBTbGF2ZSAwIEFkZHJlc3MgVHJhbnNsYXRpb24gVGFibGVzIDAtNy4gKi8KKysJaWYgKHBjaWUt PmF0cl90YWJsZV9udW0gPj0gWFIzUENJX0FUUl9NQVhfVEFCTEVfTlVNKQorKwkJcGNpZS0+YXRy X3RhYmxlX251bSA9IFhSM1BDSV9BVFJfTUFYX1RBQkxFX05VTSAtIDE7CisrCWJhc2UgKz0gIFhS M1BDSV9BVFJfVEFCTEVfT0ZGU0VUICogcGNpZS0+YXRyX3RhYmxlX251bTsKKysJcGNpZS0+YXRy X3RhYmxlX251bSsrOworKworKwkvKgorKwkgKiBYM1BDSV9BVFJfU1JDX0FERFJfTE9XOgorKwkg KiAgIC0gYml0IDA6IGVuYWJsZSBlbnRyeSwKKysJICogICAtIGJpdHMgMS02OiBBVFIgd2luZG93 IHNpemU6IHRvdGFsIHNpemUgaW4gYnl0ZXM6IDJeKEFUUl9XU0laRSArIDEpCisrCSAqICAgLSBi aXRzIDctMTE6IHJlc2VydmVkCisrCSAqICAgLSBiaXRzIDEyLTMxOiBzdGFydCBvZiBzb3VyY2Ug YWRkcmVzcworKwkgKi8KKysJd3JpdGVsKChsb3dlcl8zMl9iaXRzKHNyY19hZGRyKSAmIFhSM1BD SV9BVFJfU1JDX0FERFJfTUFTSykgfAorKwkJCShmbHMod2luZG93X3NpemUpIC0gMSkgPDwgWFIz UENJX0FUUl9TUkNfV0lOX1NJWkVfU0hJRlQgfCAxLAorKwkJCWJhc2UgKyBYUjNQQ0lfQVRSX1NS Q19BRERSX0xPVyk7CisrCXdyaXRlbCh1cHBlcl8zMl9iaXRzKHNyY19hZGRyKSwgYmFzZSArIFhS M1BDSV9BVFJfU1JDX0FERFJfSElHSCk7CisrCXdyaXRlbCgobG93ZXJfMzJfYml0cyh0cnNsX2Fk ZHIpICYgWFIzUENJX0FUUl9UUlNMX0FERFJfTUFTSyksCisrCQkJYmFzZSArIFhSM1BDSV9BVFJf VFJTTF9BRERSX0xPVyk7CisrCXdyaXRlbCh1cHBlcl8zMl9iaXRzKHRyc2xfYWRkciksIGJhc2Ug KyBYUjNQQ0lfQVRSX1RSU0xfQUREUl9ISUdIKTsKKysJd3JpdGVsKHRyc2xfcGFyYW0sIGJhc2Ug KyBYUjNQQ0lfQVRSX1RSU0xfUEFSQU0pOworKworKwlkZXZfaW5mbygmcGNpZS0+cGRldi0+ZGV2 LCAiQVRSIGVudHJ5OiAweCUwMTBsbHggJXMgMHglMDEwbGx4IFsweCUwMTBsbHhdIChwYXJhbTog MHglMDZ4KVxuIiwKKysJICAgICAgIHNyY19hZGRyLCAodHJzbF9wYXJhbSAmIFhSM1BDSV9BVFJf VFJTTF9ESVIpID8gIjwtIiA6ICItPiIsCisrCSAgICAgICB0cnNsX2FkZHIsICh1NjQpd2luZG93 X3NpemUsIHRyc2xfcGFyYW0pOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3BjaWVfc2V0 dXBfd2luZG93cyhzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisreworKwlzdHJ1 Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UgPSBwY2llLT5icmlkZ2U7CisrCXN0cnVjdCByZXNv dXJjZV9lbnRyeSAqZW50cnk7CisrCXU2NCBwY2lfYWRkcjsKKysKKysJcmVzb3VyY2VfbGlzdF9m b3JfZWFjaF9lbnRyeShlbnRyeSwgJmJyaWRnZS0+d2luZG93cykgeworKwkJaWYgKHJlc291cmNl X3R5cGUoZW50cnktPnJlcykgPT0gSU9SRVNPVVJDRV9NRU0pIHsKKysJCQlwY2lfYWRkciA9IGVu dHJ5LT5yZXMtPnN0YXJ0IC0gZW50cnktPm9mZnNldDsKKysJCQlzdGFyZml2ZV9wY2llX3NldF9h dHJfZW50cnkocGNpZSwKKysJCQkJCQllbnRyeS0+cmVzLT5zdGFydCwgcGNpX2FkZHIsCisrCQkJ CQkJcmVzb3VyY2Vfc2l6ZShlbnRyeS0+cmVzKSwKKysJCQkJCQlYUjNQQ0lfQVRSX1RSU0xJRF9Q Q0lFX01FTU9SWSk7CisrCQl9CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBp bnQgc3RhcmZpdmVfcGNpZV9jbGtfcnN0X2luaXQoc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2ll ICpwY2llKQorK3sKKysJaW50IHJldDsKKysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBjaWUtPnBk ZXYtPmRldjsKKysKKysJcGNpZS0+bnVtX2Nsa3MgPSBkZXZtX2Nsa19idWxrX2dldF9hbGwoZGV2 LCAmcGNpZS0+Y2xrcyk7CisrCWlmIChwY2llLT5udW1fY2xrcyA8IDApCisrCQlyZXR1cm4gZGV2 X2Vycl9wcm9iZShkZXYsIC1FTk9ERVYsCisrCQkJIkZhaWxlZCB0byBnZXQgcGNpZSBjbG9ja3Nc biIpOworKworKwlyZXQgPSBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShwY2llLT5udW1fY2xrcywg cGNpZS0+Y2xrcyk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGNpZS0+ cGRldi0+ZGV2LCByZXQsCisrCQkJIkZhaWxlZCB0byBlbmFibGUgY2xvY2tzXG4iKTsKKysKKysJ cGNpZS0+cmVzZXRzID0gZGV2bV9yZXNldF9jb250cm9sX2FycmF5X2dldF9leGNsdXNpdmUoZGV2 KTsKKysJaWYgKElTX0VSUihwY2llLT5yZXNldHMpKSB7CisrCQljbGtfYnVsa19kaXNhYmxlX3Vu cHJlcGFyZShwY2llLT5udW1fY2xrcywgcGNpZS0+Y2xrcyk7CisrCQlyZXR1cm4gZGV2X2Vycl9w cm9iZShkZXYsIFBUUl9FUlIocGNpZS0+cmVzZXRzKSwKKysJCQkiRmFpbGVkIHRvIGdldCBwY2ll IHJlc2V0cyIpOworKwl9CisrCisrCXJldHVybiByZXNldF9jb250cm9sX2RlYXNzZXJ0KHBjaWUt PnJlc2V0cyk7CisrfQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX3BjaWVfY2xrX3JzdF9kZWlu aXQoc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llKQorK3sKKysJcmVzZXRfY29udHJv bF9hc3NlcnQocGNpZS0+cmVzZXRzKTsKKysJY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUocGNp ZS0+bnVtX2Nsa3MsIHBjaWUtPmNsa3MpOworK30KKysKKytpbnQgc3RhcmZpdmVfcGNpZV9ncGlv X2luaXQoc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llKQorK3sKKysJc3RydWN0IGRl dmljZSAqZGV2ID0gJnBjaWUtPnBkZXYtPmRldjsKKysKKysJcGNpZS0+cmVzZXRfZ3BpbyA9IGRl dm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOworKwlp ZiAoSVNfRVJSX09SX05VTEwocGNpZS0+cmVzZXRfZ3BpbykpIHsKKysJCWRldl93YXJuKGRldiwg IkZhaWxlZCB0byBnZXQgcmVzZXQtZ3Bpby5cbiIpOworKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0K KysKKysJcGNpZS0+cG93ZXJfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInBv d2VyIiwgR1BJT0RfT1VUX0xPVyk7CisrCWlmIChJU19FUlJfT1JfTlVMTChwY2llLT5wb3dlcl9n cGlvKSkKKysJCXBjaWUtPnBvd2VyX2dwaW8gPSBOVUxMOworKworKwlyZXR1cm4gMDsKKyt9Cisr Cisrc3RhdGljIHZvaWQgc3RhcmZpdmVfcGNpZV9od19pbml0KHN0cnVjdCBzdGFyZml2ZV9qaDcx MTBfcGNpZSAqcGNpZSkKKyt7CisrCXVuc2lnbmVkIGludCB2YWx1ZTsKKysJaW50IGk7CisrCisr CWlmIChwY2llLT5wb3dlcl9ncGlvKQorKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHBjaWUt PnBvd2VyX2dwaW8sIDEpOworKworKwlpZiAocGNpZS0+cmVzZXRfZ3BpbykKKysJCWdwaW9kX3Nl dF92YWx1ZV9jYW5zbGVlcChwY2llLT5yZXNldF9ncGlvLCAxKTsKKysKKysJLyogRGlzYWJsZSBw aHlzaWNhbCBmdW5jdGlvbnMgZXhjZXB0ICMwICovCisrCWZvciAoaSA9IDE7IGkgPCBQQ0lFX0ZV TkNfTlVNOyBpKyspIHsKKysJCXJlZ21hcF91cGRhdGVfYml0cyhwY2llLT5yZWdfc3lzY29uLAor KwkJCQlwY2llLT5zdGdfYXJmdW4sCisrCQkJCVNUR19TWVNDT05fQVhJNF9TTFZMX0FSRlVOQ19N QVNLLAorKwkJCQkoaSA8PCBQSFlfRlVOQ19TSElGVCkgPDwKKysJCQkJU1RHX1NZU0NPTl9BWEk0 X1NMVkxfQVJGVU5DX1NISUZUKTsKKysJCXJlZ21hcF91cGRhdGVfYml0cyhwY2llLT5yZWdfc3lz Y29uLAorKwkJCQlwY2llLT5zdGdfYXdmdW4sCisrCQkJCVNUR19TWVNDT05fQVhJNF9TTFZMX0FX RlVOQ19NQVNLLAorKwkJCQlpIDw8IFBIWV9GVU5DX1NISUZUKTsKKysKKysJCXZhbHVlID0gcmVh ZGwocGNpZS0+cmVnX2Jhc2UgKyBQQ0lfTUlTQyk7CisrCQl2YWx1ZSB8PSBQSFlfRlVOQ1RJT05f RElTOworKwkJd3JpdGVsKHZhbHVlLCBwY2llLT5yZWdfYmFzZSArIFBDSV9NSVNDKTsKKysJfQor KworKworKwlyZWdtYXBfdXBkYXRlX2JpdHMocGNpZS0+cmVnX3N5c2NvbiwKKysJCQkJcGNpZS0+ c3RnX2FyZnVuLAorKwkJCQlTVEdfU1lTQ09OX0FYSTRfU0xWTF9BUkZVTkNfTUFTSywKKysJCQkJ MCk7CisrCXJlZ21hcF91cGRhdGVfYml0cyhwY2llLT5yZWdfc3lzY29uLAorKwkJCQlwY2llLT5z dGdfYXdmdW4sCisrCQkJCVNUR19TWVNDT05fQVhJNF9TTFZMX0FXRlVOQ19NQVNLLAorKwkJCQkw KTsKKysKKysJLyogRW5hYmxlIHJvb3QgcG9ydCAqLworKwl2YWx1ZSA9IHJlYWRsKHBjaWUtPnJl Z19iYXNlICsgR0VOX1NFVFRJTkdTKTsKKysJdmFsdWUgfD0gUlBfRU5BQkxFOworKwl3cml0ZWwo dmFsdWUsIHBjaWUtPnJlZ19iYXNlICsgR0VOX1NFVFRJTkdTKTsKKysKKysJLyogUENJZSBQQ0kg U3RhbmRhcmQgQ29uZmlndXJhdGlvbiBJZGVudGlmaWNhdGlvbiBTZXR0aW5ncy4gKi8KKysJdmFs dWUgPSAoUENJX0NMQVNTX0JSSURHRV9QQ0kgPDwgSURTX0NMQVNTX0NPREVfU0hJRlQpOworKwl3 cml0ZWwodmFsdWUsIHBjaWUtPnJlZ19iYXNlICsgUENJRV9QQ0lfSURTKTsKKysKKysJLyoKKysJ ICogVGhlIExUUiBtZXNzYWdlIGZvcndhcmRpbmcgb2YgUENJZSBNZXNzYWdlIFJlY2VwdGlvbiB3 YXMgc2V0IGJ5IGNvcmUKKysJICogYXMgZGVmYXVsdCwgYnV0IHRoZSBmb3J3YXJkIGlkICYgYWRk ciBhcmUgYWxzbyBuZWVkIHRvIGJlIHJlc2V0LgorKwkgKiBJZiB3ZSBkbyBub3QgZGlzYWJsZSBM VFIgbWVzc2FnZSBmb3J3YXJkaW5nIGhlcmUsIG9yIHNldCBhIGxlZ2FsCisrCSAqIGZvcndhcmRp bmcgYWRkcmVzcywgdGhlIGtlcm5lbCB3aWxsIGdldCBzdHVjayBhZnRlciB0aGlzIGRyaXZlciBw cm9iZS4KKysJICogVG8gd29ya2Fyb3VuZCwgZGlzYWJsZSB0aGUgTFRSIG1lc3NhZ2UgZm9yd2Fy ZGluZyBzdXBwb3J0IG9uCisrCSAqIFBDSWUgTWVzc2FnZSBSZWNlcHRpb24uCisrCSAqLworKwl2 YWx1ZSA9IHJlYWRsKHBjaWUtPnJlZ19iYXNlICsgUE1TR19TVVBQT1JUX1JYKTsKKysJdmFsdWUg Jj0gflBNU0dfTFRSX1NVUFBPUlQ7CisrCXdyaXRlbCh2YWx1ZSwgcGNpZS0+cmVnX2Jhc2UgKyBQ TVNHX1NVUFBPUlRfUlgpOworKworKwkvKiBQcmVmZXRjaGFibGUgbWVtb3J5IHdpbmRvdyA2NC1i aXQgYWRkcmVzc2luZyBzdXBwb3J0ICovCisrCXZhbHVlID0gcmVhZGwocGNpZS0+cmVnX2Jhc2Ug KyBQQ0lFX1dJTlJPTSk7CisrCXZhbHVlIHw9IFBSRUZfTUVNX1dJTl82NF9TVVBQT1JUOworKwl3 cml0ZWwodmFsdWUsIHBjaWUtPnJlZ19iYXNlICsgUENJRV9XSU5ST00pOworKworKwkvKgorKwkg KiBBcyB0aGUgdHdvIGhvc3QgYnJpZGdlcyBpbiBKSDcxMTAgc29jIGhhdmUgdGhlIHNhbWUgZGVm YXVsdAorKwkgKiBhZGRyZXNzIHRyYW5zbGF0aW9uIHRhYmxlLCB0aGlzIGNhdXNlIHRoZSBzZWNv bmQgcm9vdCBwb3J0IGNhbid0CisrCSAqIGFjY2VzcyBpdCdzIGhvc3QgYnJpZGdlIGNvbmZpZyBz cGFjZSBjb3JyZWN0bHkuCisrCSAqIFRvIHdvcmthcm91bmQsIGNvbmZpZyB0aGUgQVRSIG9mIGhv c3QgYnJpZGdlIGNvbmZpZyBzcGFjZSBieSBTVy4KKysJICovCisrCXN0YXJmaXZlX3BjaWVfc2V0 X2F0cl9lbnRyeShwY2llLAorKwkJCXBjaWUtPmNvbmZpZ19waHlhZGRyLCAwLAorKwkJCVhSM1BD SV9FQ0FNX1NJWkUsCisrCQkJWFIzUENJX0FUUl9UUlNMSURfUENJRV9DT05GSUcpOworKworKwlz dGFyZml2ZV9wY2llX3NldHVwX3dpbmRvd3MocGNpZSk7CisrCisrCS8qIEVuc3VyZSB0aGF0IFBF UlNUIGhhcyBiZWVuIGFzc2VydGVkIGZvciBhdCBsZWFzdCAxMDAgbXMgKi8KKysJbXNsZWVwKDMw MCk7CisrCWlmIChwY2llLT5yZXNldF9ncGlvKQorKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVw KHBjaWUtPnJlc2V0X2dwaW8sIDApOworK30KKysKKytzdGF0aWMgYm9vbCBzdGFyZml2ZV9wY2ll X2lzX2xpbmtfdXAoc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llKQorK3sKKysJc3Ry dWN0IGRldmljZSAqZGV2ID0gJnBjaWUtPnBkZXYtPmRldjsKKysJaW50IHJldDsKKysJdTMyIHN0 Z19yZWdfdmFsOworKworKwkvKiAxMDBtcyB0aW1lb3V0IHZhbHVlIHNob3VsZCBiZSBlbm91Z2gg Zm9yIEdlbjEvMiB0cmFpbmluZyAqLworKwlyZXQgPSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQo cGNpZS0+cmVnX3N5c2NvbiwKKysJCQkJCXBjaWUtPnN0Z19sbmtzdGEsCisrCQkJCQlzdGdfcmVn X3ZhbCwKKysJCQkJCXN0Z19yZWdfdmFsICYgREFUQV9MSU5LX0FDVElWRSwKKysJCQkJCTEwICog MTAwMCwgMTAwICogMTAwMCk7CisrCisrCS8qIElmIHRoZSBsaW5rIGlzIGRvd24gKG5vIGRldmlj ZSBpbiBzbG90KSwgdGhlbiBleGl0LiAqLworKwlpZiAocmV0ID09IC1FVElNRURPVVQpIHsKKysJ CWRldl9pbmZvKGRldiwgIlBvcnQgbGluayBkb3duLCBleGl0LlxuIik7CisrCQlyZXR1cm4gZmFs c2U7CisrCX0gZWxzZSBpZiAocmV0ID09IDApIHsKKysJCWRldl9pbmZvKGRldiwgIlBvcnQgbGlu ayB1cC5cbiIpOworKwkJcmV0dXJuIHRydWU7CisrCX0KKysKKysJZGV2X3dhcm4oZGV2LCAiUmVh ZCBzdGdfbGlua3N0YSBmYWlsZWQuXG4iKTsKKysKKysJcmV0dXJuIGZhbHNlOworK30KKysKKytz dGF0aWMgaW50IHN0YXJmaXZlX3BjaWVfZW5hYmxlX3BoeShzdHJ1Y3QgZGV2aWNlICpkZXYsCisr CQlzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisreworKwlpbnQgcmV0OworKwor KwlpZiAoIXBjaWUtPnBoeSkKKysJCXJldHVybiAwOworKworKwlyZXQgPSBwaHlfaW5pdChwY2ll LT5waHkpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsCisr CQkJImZhaWxlZCB0byBpbml0aWFsaXplIHBjaWUgcGh5XG4iKTsKKysKKysJcmV0ID0gcGh5X3Nl dF9tb2RlKHBjaWUtPnBoeSwgUEhZX01PREVfUENJRSk7CisrCWlmIChyZXQpIHsKKysJCXJldCA9 IGRldl9lcnJfcHJvYmUoZGV2LCByZXQsCisrCQkJImZhaWxlZCB0byBzZXQgcGNpZSBtb2RlXG4i KTsKKysJCWdvdG8gZXJyX3BoeV9vbjsKKysJfQorKworKwlyZXQgPSBwaHlfcG93ZXJfb24ocGNp ZS0+cGh5KTsKKysJaWYgKHJldCkgeworKwkJcmV0ID0gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwg ImZhaWxlZCB0byBwb3dlciBvbiBwY2llIHBoeVxuIik7CisrCQlnb3RvIGVycl9waHlfb247Cisr CX0KKysKKysJcmV0dXJuIDA7CisrCisrZXJyX3BoeV9vbjoKKysJcGh5X2V4aXQocGNpZS0+cGh5 KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfcGNpZV9kaXNh YmxlX3BoeShzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisreworKwlwaHlfcG93 ZXJfb2ZmKHBjaWUtPnBoeSk7CisrCXBoeV9leGl0KHBjaWUtPnBoeSk7CisrfQorKworK3N0YXRp YyBpbnQgc3RhcmZpdmVfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQor K3sKKysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKysJc3RydWN0IHN0YXJmaXZl X2poNzExMF9wY2llICpwY2llOworKwlzdHJ1Y3QgcGNpX2J1cyAqYnVzOworKwlzdHJ1Y3QgcGNp X2hvc3RfYnJpZGdlICpicmlkZ2U7CisrCWludCByZXQ7CisrCisrCXBjaWUgPSBkZXZtX2t6YWxs b2MoZGV2LCBzaXplb2YoKnBjaWUpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFwY2llKQorKwkJcmV0 dXJuIC1FTk9NRU07CisrCisrCXBjaWUtPnBkZXYgPSBwZGV2OworKwlwY2llLT5hdHJfdGFibGVf bnVtID0gMDsKKysKKysJcmV0ID0gc3RhcmZpdmVfcGNpZV9wYXJzZV9kdChwY2llKTsKKysJaWYg KHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBj aWUpOworKworKwlyZXQgPSBzdGFyZml2ZV9wY2llX2dwaW9faW5pdChwY2llKTsKKysJaWYgKHJl dCkKKysJCXJldHVybiByZXQ7CisrCisrCXJlZ21hcF91cGRhdGVfYml0cyhwY2llLT5yZWdfc3lz Y29uLAorKwkJCQlwY2llLT5zdGdfcnBfbmVwLAorKwkJCQlTVEdfU1lTQ09OX0tfUlBfTkVQLAor KwkJCQlTVEdfU1lTQ09OX0tfUlBfTkVQKTsKKysKKysJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjaWUt PnJlZ19zeXNjb24sCisrCQkJCXBjaWUtPnN0Z19hd2Z1biwKKysJCQkJU1RHX1NZU0NPTl9DS1JF Rl9TUkNfTUFTSywKKysJCQkJMiA8PCBTVEdfU1lTQ09OX0NLUkVGX1NSQ19TSElGVCk7CisrCisr CXJlZ21hcF91cGRhdGVfYml0cyhwY2llLT5yZWdfc3lzY29uLAorKwkJCQlwY2llLT5zdGdfYXdm dW4sCisrCQkJCVNUR19TWVNDT05fQ0xLUkVRLAorKwkJCQlTVEdfU1lTQ09OX0NMS1JFUSk7Cisr CisrCXJldCA9IHN0YXJmaXZlX3BjaWVfY2xrX3JzdF9pbml0KHBjaWUpOworKwlpZiAocmV0KQor KwkJcmV0dXJuIHJldDsKKysKKysJcmV0ID0gc3RhcmZpdmVfcGNpZV9pbml0X2lycV9kb21haW4o cGNpZSk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlicmlkZ2UgPSBkZXZtX3Bj aV9hbGxvY19ob3N0X2JyaWRnZShkZXYsIDApOworKwlpZiAoIWJyaWRnZSkKKysJCXJldHVybiAt RU5PTUVNOworKworKwlwbV9ydW50aW1lX2VuYWJsZSgmcGRldi0+ZGV2KTsKKysJcG1fcnVudGlt ZV9nZXRfc3luYygmcGRldi0+ZGV2KTsKKysKKysJLyogU2V0IGRlZmF1bHQgYnVzIG9wcyAqLwor KwlicmlkZ2UtPm9wcyA9ICZzdGFyZml2ZV9wY2llX29wczsKKysJYnJpZGdlLT5zeXNkYXRhID0g cGNpZTsKKysJcGNpZS0+YnJpZGdlID0gYnJpZGdlOworKworKwlzdGFyZml2ZV9wY2llX2h3X2lu aXQocGNpZSk7CisrCisrCWlmIChzdGFyZml2ZV9wY2llX2lzX2xpbmtfdXAocGNpZSkgPT0gZmFs c2UpCisrCQlnb3RvIHJlbGVhc2U7CisrCisrCWlmIChJU19FTkFCTEVEKENPTkZJR19QQ0lfTVNJ KSkgeworKwkJcmV0ID0gc3RhcmZpdmVfcGNpZV9lbmFibGVfbXNpKHBjaWUsIGJ1cyk7CisrCQlp ZiAocmV0IDwgMCkgeworKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBNU0kgc3Vw cG9ydDogJWRcbiIsIHJldCk7CisrCQkJZ290byByZWxlYXNlOworKwkJfQorKwl9CisrCisrCXJl dCA9IHN0YXJmaXZlX3BjaWVfZW5hYmxlX3BoeShkZXYsIHBjaWUpOworKwlpZiAocmV0KQorKwkJ Z290byByZWxlYXNlOworKworKwlyZXQgPSBwY2lfaG9zdF9wcm9iZShicmlkZ2UpOworKwlpZiAo cmV0IDwgMCkgeworKwkJZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgIkZhaWxlZCB0byBwY2kgaG9z dCBwcm9iZTogJWRcbiIsIHJldCk7CisrCQlnb3RvIGVycl9waHlfb247CisrCX0KKysKKysJcmV0 dXJuIHJldDsKKysKKytlcnJfcGh5X29uOgorKwlzdGFyZml2ZV9wY2llX2Rpc2FibGVfcGh5KHBj aWUpOworK3JlbGVhc2U6CisrCWlmIChwY2llLT5wb3dlcl9ncGlvKQorKwkJZ3Bpb2Rfc2V0X3Zh bHVlX2NhbnNsZWVwKHBjaWUtPnBvd2VyX2dwaW8sIDApOworKworKwlzdGFyZml2ZV9wY2llX2Ns a19yc3RfZGVpbml0KHBjaWUpOworKworKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZwZGV2LT5kZXYp OworKwlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7CisrCisrCXBjaV9mcmVlX2hvc3Rf YnJpZGdlKHBjaWUtPmJyaWRnZSk7CisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwp OworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3BjaWVfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVf amg3MTEwX3BjaWUgKnBjaWUgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKysKKysJc3Rh cmZpdmVfcGNpZV9kaXNhYmxlX3BoeShwY2llKTsKKysJaWYgKHBjaWUtPnBvd2VyX2dwaW8pCisr CQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocGNpZS0+cG93ZXJfZ3BpbywgMCk7CisrCXN0YXJm aXZlX3BjaWVfZnJlZV9pcnFfZG9tYWluKHBjaWUpOworKwlzdGFyZml2ZV9wY2llX2Nsa19yc3Rf ZGVpbml0KHBjaWUpOworKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKysKKysJ cmV0dXJuIDA7CisrfQorKworKyNpZmRlZiBDT05GSUdfUE1fU0xFRVAKKytzdGF0aWMgaW50IF9f bWF5YmVfdW51c2VkIHN0YXJmaXZlX3BjaWVfc3VzcGVuZF9ub2lycShzdHJ1Y3QgZGV2aWNlICpk ZXYpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKKysKKysJaWYgKCFwY2llKQorKwkJcmV0dXJuIDA7CisrCisrCXN0YXJmaXZl X3BjaWVfZGlzYWJsZV9waHkocGNpZSk7CisrCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKHBj aWUtPm51bV9jbGtzLCBwY2llLT5jbGtzKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRp YyBpbnQgX19tYXliZV91bnVzZWQgc3RhcmZpdmVfcGNpZV9yZXN1bWVfbm9pcnEoc3RydWN0IGRl dmljZSAqZGV2KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CisrCWludCByZXQ7CisrCisrCWlmICghcGNpZSkKKysJCXJldHVy biAwOworKworKwlyZXQgPSBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShwY2llLT5udW1fY2xrcywg cGNpZS0+Y2xrcyk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJl dCwKKysJCQkiRmFpbGVkIHRvIGVuYWJsZSBjbG9ja3NcbiIpOworKworKwlyZXQgPSBzdGFyZml2 ZV9wY2llX2VuYWJsZV9waHkoZGV2LCBwY2llKTsKKysJaWYgKHJldCkKKysJCWNsa19idWxrX2Rp c2FibGVfdW5wcmVwYXJlKHBjaWUtPm51bV9jbGtzLCBwY2llLT5jbGtzKTsKKysKKysJcmV0dXJu IHJldDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHN0YXJmaXZlX3Bj aWVfcG1fb3BzID0geworKwlTRVRfTk9JUlFfU1lTVEVNX1NMRUVQX1BNX09QUyhzdGFyZml2ZV9w Y2llX3N1c3BlbmRfbm9pcnEsCisrCQkJCSAgICAgIHN0YXJmaXZlX3BjaWVfcmVzdW1lX25vaXJx KQorK307CisrI2VuZGlmCisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3Rh cmZpdmVfcGNpZV9vZl9tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpo NzExMC1wY2llIn0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307CisrTU9EVUxFX0RFVklDRV9U QUJMRShvZiwgc3RhcmZpdmVfcGNpZV9vZl9tYXRjaCk7CisrCisrc3RhdGljIHN0cnVjdCBwbGF0 Zm9ybV9kcml2ZXIgc3RhcmZpdmVfcGNpZV9kcml2ZXIgPSB7CisrCS5kcml2ZXIgPSB7CisrCQku bmFtZSA9ICJwY2llLXN0YXJmaXZlIiwKKysJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0 cihzdGFyZml2ZV9wY2llX29mX21hdGNoKSwKKysjaWZkZWYgQ09ORklHX1BNX1NMRUVQCisrCQku cG0gPSAmc3RhcmZpdmVfcGNpZV9wbV9vcHMsCisrI2VuZGlmCisrCX0sCisrCS5wcm9iZSA9IHN0 YXJmaXZlX3BjaWVfcHJvYmUsCisrCS5yZW1vdmUgPSBzdGFyZml2ZV9wY2llX3JlbW92ZSwKKyt9 OworK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoc3RhcmZpdmVfcGNpZV9kcml2ZXIpOworKworK01P RFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgSkg3MTEwIFBDSWUgaG9zdCBkcml2ZXIiKTsKKytN T0RVTEVfQVVUSE9SKCJNYXNvbiBIdW8gPG1hc29uLmh1b0BzdGFyZml2ZXRlY2guY29tPiIpOwor K01PRFVMRV9BVVRIT1IoIktldmluIFhpZSA8a2V2aW4ueGllQHN0YXJmaXZldGVjaC5jb20+Iik7 CisrTU9EVUxFX0FVVEhPUigiTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29t PiIpOworK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDgxLXJpc2N2LWR0cy1zdGFyZml2ZS1hZGQt UENJZS1kdHMtY29uZmlndXJhdGlvbi1mb3ItSkgucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4zL3Bh dGNoZXMvMDA4MS1yaXNjdi1kdHMtc3RhcmZpdmUtYWRkLVBDSWUtZHRzLWNvbmZpZ3VyYXRpb24t Zm9yLUpILnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmQ5 ODAzMWNhZjMzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni4zL3BhdGNoZXMv MDA4MS1yaXNjdi1kdHMtc3RhcmZpdmUtYWRkLVBDSWUtZHRzLWNvbmZpZ3VyYXRpb24tZm9yLUpI LnBhdGNoCkBAIC0wLDAgKzEsMTg4IEBACitGcm9tIGM0YzJlZTVlZGQ0MTFmNGNjZDc5NDc2MjFj ZmFmZDlhNTdkZGIyNzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVu IDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDYgQXByIDIwMjMgMTk6 MTE6NDIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA4MS84NF0gcmlzY3Y6IGR0czogc3RhcmZpdmU6 IGFkZCBQQ0llIGR0cyBjb25maWd1cmF0aW9uIGZvcgorIEpINzExMAorCitUaGUgUENJZSBpcyBh IFBDSWUyLCBzaW5nbGUgbGFuZSBQQ0llIGNvbXBsaWFudCBjb250cm9sbGVyLgorCitTaWduZWQt b2ZmLWJ5OiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAu Li4vamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNpICAgICAgICAgfCA1OCArKysrKysr KysrKysKKyBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpICAgICAgfCA4 OCArKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAxNDYgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3Rh cmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2po NzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQoraW5kZXggNGNjZDIwMzAzYWI1Li5hYmNh MmRlOTMxYmQgMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9z dGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kKK0BAIC0yMDUsNiArMjA1 LDUwIEBAIEdQT0VOX1NZU19JMkM2X0RBVEEsCisgCQl9OworIAl9OworIAorKwlwY2llMF93YWtl X2RlZmF1bHQ6IHBjaWUwX3dha2VfZGVmYXVsdCB7CisrCQl3YWtlLXBpbnMgeworKwkJCXBpbm11 eCA9IDxHUElPTVVYKDMyLCBHUE9VVF9ISUdILCBHUE9FTl9FTkFCTEUsIEdQSV9OT05FKT47Cisr CQkJYmlhcy1kaXNhYmxlOworKwkJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworKwkJCWlucHV0LWVu YWJsZTsKKysJCQlpbnB1dC1zY2htaXR0LWRpc2FibGU7CisrCQkJc2xldy1yYXRlID0gPDA+Owor KwkJfTsKKysJfTsKKysKKysJcGNpZTBfY2xrcmVxX2RlZmF1bHQ6IHBjaWUwX2Nsa3JlcV9kZWZh dWx0IHsKKysJCWNsa3JlcS1waW5zIHsKKysJCQliaWFzLWRpc2FibGU7CisrCQkJcGlubXV4ID0g PEdQSU9NVVgoMjcsIEdQT1VUX0hJR0gsIEdQT0VOX0VOQUJMRSwgR1BJX05PTkUpPjsKKysJCQlk cml2ZS1zdHJlbmd0aCA9IDwyPjsKKysJCQlpbnB1dC1lbmFibGU7CisrCQkJaW5wdXQtc2NobWl0 dC1kaXNhYmxlOworKwkJCXNsZXctcmF0ZSA9IDwwPjsKKysJCX07CisrCX07CisrCisrCXBjaWUx X3dha2VfZGVmYXVsdDogcGNpZTFfd2FrZV9kZWZhdWx0IHsKKysJCXdha2UtcGlucyB7CisrCQkJ Ymlhcy1kaXNhYmxlOworKwkJCXBpbm11eCA9IDxHUElPTVVYKDIxLCBHUE9VVF9ISUdILCBHUE9F Tl9FTkFCTEUsIEdQSV9OT05FKT47CisrCQkJZHJpdmUtc3RyZW5ndGggPSA8Mj47CisrCQkJaW5w dXQtZW5hYmxlOworKwkJCWlucHV0LXNjaG1pdHQtZGlzYWJsZTsKKysJCQlzbGV3LXJhdGUgPSA8 MD47CisrCQl9OworKwl9OworKworKwlwY2llMV9jbGtyZXFfZGVmYXVsdDogcGNpZTFfY2xrcmVx X2RlZmF1bHQgeworKwkJY2xrcmVxLXBpbnMgeworKwkJCWJpYXMtZGlzYWJsZTsKKysJCQlwaW5t dXggPSA8R1BJT01VWCgyOSwgR1BPVVRfSElHSCwgR1BPRU5fRU5BQkxFLCBHUElfTk9ORSk+Owor KwkJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworKwkJCWlucHV0LWVuYWJsZTsKKysJCQlpbnB1dC1z Y2htaXR0LWRpc2FibGU7CisrCQkJc2xldy1yYXRlID0gPDA+OworKwkJfTsKKysJfTsKKysKKyAJ dWFydDBfcGluczogdWFydDAtMCB7CisgCQl0eC1waW5zIHsKKyAJCQlwaW5tdXggPSA8R1BJT01V WCg1LCBHUE9VVF9TWVNfVUFSVDBfVFgsCitAQCAtMjk4LDMgKzM0MiwxNyBAQCAmdGRtIHsKKyAJ cGluY3RybC0wID0gPCZ0ZG0wX3BpbnM+OworIAlzdGF0dXMgPSAib2theSI7CisgfTsKKysKKysm cGNpZTAgeworKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworKwlyZXNldC1ncGlvcyA9IDwm c3lzZ3BpbyAyNiBHUElPX0FDVElWRV9MT1c+OworKwlwaHlzID0gPCZwY2llcGh5MD47CisrCXN0 YXR1cyA9ICJva2F5IjsKKyt9OworKworKyZwY2llMSB7CisrCXBpbmN0cmwtbmFtZXMgPSAiZGVm YXVsdCI7CisrCXJlc2V0LWdwaW9zID0gPCZzeXNncGlvIDI4IEdQSU9fQUNUSVZFX0xPVz47Cisr CXBoeXMgPSA8JnBjaWVwaHkxPjsKKysJc3RhdHVzID0gIm9rYXkiOworK307CitkaWZmIC0tZ2l0 IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSBiL2FyY2gvcmlzY3Yv Ym9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKK2luZGV4IGQ1NDU2ODQ5NThjNC4uNzQyZmMz N2MzYzVlIDEwMDY0NAorLS0tIGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAu ZHRzaQorKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorQEAg LTc1Myw1ICs3NTMsOTMgQEAgY3J5cHRvOiBjcnlwdG9AMTYwMDAwMDAgeworIAkJCWRtYXMgPSA8 JnNkbWEgMSAyPiwgPCZzZG1hIDAgMj47CisgCQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKKyAJ CX07CisrCisrCQlwY2llMDogcGNpZUAyQjAwMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFy Zml2ZSxqaDcxMTAtcGNpZSI7CisrCQkJI2FkZHJlc3MtY2VsbHMgPSA8Mz47CisrCQkJI3NpemUt Y2VsbHMgPSA8Mj47CisrCQkJI2ludGVycnVwdC1jZWxscyA9IDwxPjsKKysJCQlyZWcgPSA8MHgw IDB4MkIwMDAwMDAgMHgwIDB4MTAwMDAwMAorKwkJCSAgICAgICAweDkgMHg0MDAwMDAwMCAweDAg MHgxMDAwMDAwMD47CisrCQkJcmVnLW5hbWVzID0gInJlZyIsICJjb25maWciOworKwkJCWRldmlj ZV90eXBlID0gInBjaSI7CisrCQkJc3RhcmZpdmUsc3RnLXN5c2NvbiA9IDwmc3RnX3N5c2NvbiAw eGMwIDB4YzQgMHgxMzAgMHgxYjg+OworKwkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CisrCQkJ cmFuZ2VzID0gPDB4ODIwMDAwMDAgIDB4MCAweDMwMDAwMDAwICAweDAgMHgzMDAwMDAwMCAweDAg MHgwODAwMDAwMD4sCisrCQkJCSA8MHhjMzAwMDAwMCAgMHg5IDB4MDAwMDAwMDAgIDB4OSAweDAw MDAwMDAwIDB4MCAweDQwMDAwMDAwPjsKKysJCQlpbnRlcnJ1cHRzID0gPDU2PjsKKysJCQlpbnRl cnJ1cHQtcGFyZW50ID0gPCZwbGljPjsKKysJCQlpbnRlcnJ1cHQtbWFwLW1hc2sgPSA8MHgwIDB4 MCAweDAgMHg3PjsKKysJCQlpbnRlcnJ1cHQtbWFwID0gPDB4MCAweDAgMHgwIDB4MSAmcGNpZV9p bnRjMCAweDE+LAorKwkJCQkJPDB4MCAweDAgMHgwIDB4MiAmcGNpZV9pbnRjMCAweDI+LAorKwkJ CQkJPDB4MCAweDAgMHgwIDB4MyAmcGNpZV9pbnRjMCAweDM+LAorKwkJCQkJPDB4MCAweDAgMHgw IDB4NCAmcGNpZV9pbnRjMCAweDQ+OworKwkJCW1zaS1wYXJlbnQgPSA8JnBjaWUwPjsKKysJCQlt c2ktY29udHJvbGxlcjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX05PQ19C VVNfU1RHX0FYST4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1BDSUUwX1RMPiwKKysJ CQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfUENJRTBfQVhJX01TVDA+LAorKwkJCQkgPCZzdGdj cmcgSkg3MTEwX1NUR0NMS19QQ0lFMF9BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gIm5vYyIsICJ0 bCIsICJheGlfbXN0MCIsICJhcGIiOworKwkJCXJlc2V0cyA9IDwmc3RnY3JnIEpINzExMF9TVEdS U1RfUENJRTBfQVhJX01TVDA+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9QQ0lFMF9B WElfU0xWMD4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1BDSUUwX0FYSV9TTFY+LAor KwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9QQ0lFMF9CUkc+LAorKwkJCQkgPCZzdGdjcmcg Skg3MTEwX1NUR1JTVF9QQ0lFMF9DT1JFPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1Rf UENJRTBfQVBCPjsKKysJCQlyZXNldC1uYW1lcyA9ICJtc3QwIiwgInNsdjAiLCAic2x2IiwgImJy ZyIsCisrCQkJCSAgICAgICJjb3JlIiwgImFwYiI7CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsK KysKKysJCQlwY2llX2ludGMwOiBpbnRlcnJ1cHQtY29udHJvbGxlciB7CisrCQkJCSNhZGRyZXNz LWNlbGxzID0gPDA+OworKwkJCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworKwkJCQlpbnRlcnJ1 cHQtY29udHJvbGxlcjsKKysJCQl9OworKwkJfTsKKysKKysJCXBjaWUxOiBwY2llQDJDMDAwMDAw IHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wY2llIjsKKysJCQkjYWRkcmVz cy1jZWxscyA9IDwzPjsKKysJCQkjc2l6ZS1jZWxscyA9IDwyPjsKKysJCQkjaW50ZXJydXB0LWNl bGxzID0gPDE+OworKwkJCXJlZyA9IDwweDAgMHgyQzAwMDAwMCAweDAgMHgxMDAwMDAwCisrCQkJ ICAgICAgIDB4OSAweGMwMDAwMDAwIDB4MCAweDEwMDAwMDAwPjsKKysJCQlyZWctbmFtZXMgPSAi cmVnIiwgImNvbmZpZyI7CisrCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKKysJCQlzdGFyZml2ZSxz dGctc3lzY29uID0gPCZzdGdfc3lzY29uIDB4MjcwIDB4Mjc0IDB4MmUwIDB4MzY4PjsKKysJCQli dXMtcmFuZ2UgPSA8MHgwIDB4ZmY+OworKwkJCXJhbmdlcyA9IDwweDgyMDAwMDAwICAweDAgMHgz ODAwMDAwMCAgMHgwIDB4MzgwMDAwMDAgMHgwIDB4MDgwMDAwMDA+LAorKwkJCQkgPDB4YzMwMDAw MDAgIDB4OSAweDgwMDAwMDAwICAweDkgMHg4MDAwMDAwMCAweDAgMHg0MDAwMDAwMD47CisrCQkJ aW50ZXJydXB0cyA9IDw1Nz47CisrCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmcGxpYz47CisrCQkJ aW50ZXJydXB0LW1hcC1tYXNrID0gPDB4MCAweDAgMHgwIDB4Nz47CisrCQkJaW50ZXJydXB0LW1h cCA9IDwweDAgMHgwIDB4MCAweDEgJnBjaWVfaW50YzEgMHgxPiwKKysJCQkJCTwweDAgMHgwIDB4 MCAweDIgJnBjaWVfaW50YzEgMHgyPiwKKysJCQkJCTwweDAgMHgwIDB4MCAweDMgJnBjaWVfaW50 YzEgMHgzPiwKKysJCQkJCTwweDAgMHgwIDB4MCAweDQgJnBjaWVfaW50YzEgMHg0PjsKKysJCQlt c2ktcGFyZW50ID0gPCZwY2llMT47CisrCQkJbXNpLWNvbnRyb2xsZXI7CisrCQkJY2xvY2tzID0g PCZzeXNjcmcgSkg3MTEwX1NZU0NMS19OT0NfQlVTX1NUR19BWEk+LAorKwkJCQkgPCZzdGdjcmcg Skg3MTEwX1NUR0NMS19QQ0lFMV9UTD4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1BD SUUxX0FYSV9NU1QwPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfUENJRTFfQVBCPjsK KysJCQljbG9jay1uYW1lcyA9ICJub2MiLCAidGwiLCAiYXhpX21zdDAiLCAiYXBiIjsKKysJCQly ZXNldHMgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1BDSUUxX0FYSV9NU1QwPiwKKysJCQkJIDwm c3RnY3JnIEpINzExMF9TVEdSU1RfUENJRTFfQVhJX1NMVjA+LAorKwkJCQkgPCZzdGdjcmcgSkg3 MTEwX1NUR1JTVF9QQ0lFMV9BWElfU0xWPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1Rf UENJRTFfQlJHPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1RfUENJRTFfQ09SRT4sCisr CQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1BDSUUxX0FQQj47CisrCQkJcmVzZXQtbmFtZXMg PSAibXN0MCIsICJzbHYwIiwgInNsdiIsICJicmciLAorKwkJCQkgICAgICAiY29yZSIsICJhcGIi OworKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisrCisrCQkJcGNpZV9pbnRjMTogaW50ZXJydXB0 LWNvbnRyb2xsZXIgeworKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwwPjsKKysJCQkJI2ludGVycnVw dC1jZWxscyA9IDwxPjsKKysJCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisrCQkJfTsKKysJCX07 CisgCX07CisgfTsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMv cGF0Y2hlcy8wMDgyLXJpc2N2LWR0cy1zdGFyZml2ZS1hZGQtcG11LWNvbnRyb2xsZXItbm9kZS5w YXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDgyLXJpc2N2LWR0cy1zdGFyZml2ZS1h ZGQtcG11LWNvbnRyb2xsZXItbm9kZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5hMjdlNDZjYjM3ZThkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuMy9wYXRjaGVzLzAwODItcmlzY3YtZHRzLXN0YXJmaXZlLWFkZC1wbXUtY29udHJvbGxl ci1ub2RlLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gYWRiYmMzYjU2NWYyMjE0ZDYwMzU2 OTZlY2E2OWJmZGQ4OWI3MjkxMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdhbGtl ciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogTW9uLCAxNiBKYW4g MjAyMyAxNTo0Mjo1OSArMDgwMAorU3ViamVjdDogW1BBVENIIDgyLzg0XSByaXNjdjogZHRzOiBz dGFyZml2ZTogYWRkIHBtdSBjb250cm9sbGVyIG5vZGUKKworQWRkIHRoZSBwbXUgY29udHJvbGxl ciBub2RlIGZvciB0aGUgU3RhcmZpdmUgSkg3MTEwIFNvQy4gVGhlIFBNVSBuZWVkcwordG8gYmUg dXNlZCBieSBvdGhlciBtb2R1bGVzIHN1Y2ggYXMgVlBVLCBJU1AsIGV0Yy4KKworU2lnbmVkLW9m Zi1ieTogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBh cmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIHwgNyArKysrKysrCisgMSBm aWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9i b290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZp dmUvamg3MTEwLmR0c2kKK2luZGV4IDc0MmZjMzdjM2M1ZS4uN2ViNTNjODQxNzJlIDEwMDY0NAor LS0tIGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorKysrIGIvYXJj aC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQorQEAgLTY5MSw2ICs2OTEsMTMg QEAgYW9uZ3BpbzogcGluY3RybEAxNzAyMDAwMCB7CisgCQkJI2dwaW8tY2VsbHMgPSA8Mj47Cisg CQl9OworIAorKwkJcHdyYzogcG93ZXItY29udHJvbGxlckAxNzAzMDAwMCB7CisrCQkJY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcG11IjsKKysJCQlyZWcgPSA8MHgwIDB4MTcwMzAwMDAg MHgwIDB4MTAwMDA+OworKwkJCWludGVycnVwdHMgPSA8MTExPjsKKysJCQkjcG93ZXItZG9tYWlu LWNlbGxzID0gPDE+OworKwkJfTsKKysKKyAJCWlzcGNyZzogY2xvY2stY29udHJvbGxlckAxOTgx MDAwMCB7CisgCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtaXNwY3JnIjsKKyAJCQly ZWcgPSA8MHgwIDB4MTk4MTAwMDAgMHgwIDB4MTAwMDA+OworLS0gCisyLjQwLjEKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwODMtYWRkLW1pc3NpbmctaW5jbHVkZS5w YXRjaCBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDgzLWFkZC1taXNzaW5nLWluY2x1ZGUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMTkwNDg0MmUz ODAzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDgzLWFk ZC1taXNzaW5nLWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorRnJvbSBmZDkxMzM4YTBj NDI5YzVhMzkzYWJjNDQwODkzODNhNzkzNGM0NjQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogSm9obiBaaW1tZXJtYW5uIDxtZUBqb2hubnluYXRvci5kZXY+CitEYXRlOiBUaHUsIDE4 IE1heSAyMDIzIDAwOjIwOjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggODMvODRdIGFkZCBtaXNz aW5nIGluY2x1ZGUKKworLS0tCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpo NzExMC1wbGwuYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuYyBi L2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtcGxsLmMKK2luZGV4IGY4 NmRlZGRkNGJlZi4uYjM4MWM4MDdmMjZjIDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbGsvc3RhcmZp dmUvY2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuYworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv Y2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuYworQEAgLTIxLDYgKzIxLDcgQEAKKyAjaW5jbHVkZSA8 bGludXgvZGVidWdmcy5oPgorICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyAjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorICNpbmNsdWRl IDxsaW51eC9tZmQvc3lzY29uLmg+CisgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o PgorICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDg0LWNyeXB0by1oYXNoLUFkZC1zdGF0ZXNpemUt dG8tY3J5cHRvX2FoYXNoLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9wYXRjaGVzLzAwODQtY3J5 cHRvLWhhc2gtQWRkLXN0YXRlc2l6ZS10by1jcnlwdG9fYWhhc2gucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMWE4ZTRjOTI2OTM1OQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGludXg2LjMvcGF0Y2hlcy8wMDg0LWNyeXB0by1oYXNoLUFkZC1zdGF0 ZXNpemUtdG8tY3J5cHRvX2FoYXNoLnBhdGNoCkBAIC0wLDAgKzEsNzAgQEAKK0Zyb20gY2I3ZmE4 ODUwMzNlMzcwOTNjOGVlNmI5OGYyMDBmMzE3ZWY3YzViMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KK0RhdGU6 IFRodSwgMjAgQXByIDIwMjMgMTg6MDU6MTYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA4NC84NF0g Y3J5cHRvOiBoYXNoIC0gQWRkIHN0YXRlc2l6ZSB0byBjcnlwdG9fYWhhc2gKKworQXMgYWhhc2gg ZHJpdmVycyBtYXkgbmVlZCB0byB1c2UgZmFsbGJhY2tzLCB0aGVpciBzdGF0ZSBzaXplCitpcyB0 aHVzIHZhcmlhYmxlLiAgRGVhbCB3aXRoIHRoaXMgYnkgbWFraW5nIGl0IGFuIGF0dHJpYnV0ZQor b2YgY3J5cHRvX2FoYXNoLgorCitTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdv bmRvci5hcGFuYS5vcmcuYXU+CistLS0KKyBjcnlwdG8vYWhhc2guYyAgICAgICAgICAgICAgICAg fCAyICsrCisgaW5jbHVkZS9jcnlwdG8vaGFzaC5oICAgICAgICAgIHwgMyArKy0KKyBpbmNsdWRl L2NyeXB0by9pbnRlcm5hbC9oYXNoLmggfCA2ICsrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY3J5cHRvL2FoYXNo LmMgYi9jcnlwdG8vYWhhc2guYworaW5kZXggZmY4Yzc5ZDk3NWMxLi5kYjg2NTVjNDdhNjUgMTAw NjQ0CistLS0gYS9jcnlwdG8vYWhhc2guYworKysrIGIvY3J5cHRvL2FoYXNoLmMKK0BAIC00Mjgs NiArNDI4LDggQEAgc3RhdGljIGludCBjcnlwdG9fYWhhc2hfaW5pdF90Zm0oc3RydWN0IGNyeXB0 b190Zm0gKnRmbSkKKyAKKyAJaGFzaC0+c2V0a2V5ID0gYWhhc2hfbm9zZXRrZXk7CisgCisrCWNy eXB0b19haGFzaF9zZXRfc3RhdGVzaXplKGhhc2gsIGFsZy0+aGFsZy5zdGF0ZXNpemUpOworKwor IAlpZiAodGZtLT5fX2NydF9hbGctPmNyYV90eXBlICE9ICZjcnlwdG9fYWhhc2hfdHlwZSkKKyAJ CXJldHVybiBjcnlwdG9faW5pdF9zaGFzaF9vcHNfYXN5bmModGZtKTsKKyAKK2RpZmYgLS1naXQg YS9pbmNsdWRlL2NyeXB0by9oYXNoLmggYi9pbmNsdWRlL2NyeXB0by9oYXNoLmgKK2luZGV4IGY1 ODQxOTkyZGM5Yi4uMDg3OTk4ZGEwNTIwIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9jcnlwdG8vaGFz aC5oCisrKysgYi9pbmNsdWRlL2NyeXB0by9oYXNoLmgKK0BAIC0yMzIsNiArMjMyLDcgQEAgc3Ry dWN0IGNyeXB0b19haGFzaCB7CisgCWludCAoKnNldGtleSkoc3RydWN0IGNyeXB0b19haGFzaCAq dGZtLCBjb25zdCB1OCAqa2V5LAorIAkJICAgICAgdW5zaWduZWQgaW50IGtleWxlbik7CisgCisr CXVuc2lnbmVkIGludCBzdGF0ZXNpemU7CisgCXVuc2lnbmVkIGludCByZXFzaXplOworIAlzdHJ1 Y3QgY3J5cHRvX3RmbSBiYXNlOworIH07CitAQCAtMzcwLDcgKzM3MSw3IEBAIHN0YXRpYyBpbmxp bmUgdW5zaWduZWQgaW50IGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHN0cnVjdCBjcnlwdG9fYWhh c2ggKnRmbSkKKyAgKi8KKyBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcnlwdG9fYWhhc2hf c3RhdGVzaXplKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKKyB7CistCXJldHVybiBjcnlwdG9f aGFzaF9hbGdfY29tbW9uKHRmbSktPnN0YXRlc2l6ZTsKKysJcmV0dXJuIHRmbS0+c3RhdGVzaXpl OworIH0KKyAKKyBzdGF0aWMgaW5saW5lIHUzMiBjcnlwdG9fYWhhc2hfZ2V0X2ZsYWdzKHN0cnVj dCBjcnlwdG9fYWhhc2ggKnRmbSkKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NyeXB0by9pbnRlcm5h bC9oYXNoLmggYi9pbmNsdWRlL2NyeXB0by9pbnRlcm5hbC9oYXNoLmgKK2luZGV4IDBiMjU5ZGJi OTdhZi4uMDJjZWRiYTg0ZjFhIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9jcnlwdG8vaW50ZXJuYWwv aGFzaC5oCisrKysgYi9pbmNsdWRlL2NyeXB0by9pbnRlcm5hbC9oYXNoLmgKK0BAIC0xNTEsNiAr MTUxLDEyIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX2FsZyAqX19jcnlwdG9fYWhhc2hf YWxnKHN0cnVjdCBjcnlwdG9fYWxnICphbGcpCisgCQkJICAgIGhhbGcpOworIH0KKyAKKytzdGF0 aWMgaW5saW5lIHZvaWQgY3J5cHRvX2FoYXNoX3NldF9zdGF0ZXNpemUoc3RydWN0IGNyeXB0b19h aGFzaCAqdGZtLAorKwkJCQkJICAgICAgdW5zaWduZWQgaW50IHNpemUpCisreworKwl0Zm0tPnN0 YXRlc2l6ZSA9IHNpemU7CisrfQorKworIHN0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fYWhhc2hf c2V0X3JlcXNpemUoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLAorIAkJCQkJICAgIHVuc2lnbmVk IGludCByZXFzaXplKQorIHsKKy0tIAorMi40MC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlu dXg2LjMvcGF0Y2hlcy8xLTItSElELWxvZ2l0ZWNoLWRqLWFkZC1zdXBwb3J0LWZvci10aGUtbmV3 LWxpZ2h0c3BlZWQtcmVjZWl2ZXItaXRlcmF0aW9uLnBhdGNoIGIvc3JjcGtncy9saW51eDYuMy9w YXRjaGVzLzEtMi1ISUQtbG9naXRlY2gtZGotYWRkLXN1cHBvcnQtZm9yLXRoZS1uZXctbGlnaHRz cGVlZC1yZWNlaXZlci1pdGVyYXRpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uMzAwNTRmNjk3ZDQwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGludXg2LjMvcGF0Y2hlcy8xLTItSElELWxvZ2l0ZWNoLWRqLWFkZC1zdXBwb3J0LWZvci10aGUt bmV3LWxpZ2h0c3BlZWQtcmVjZWl2ZXItaXRlcmF0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMjc2IEBA CitGcm9tIHBhdGNod29yayBTYXQgSmFuIDIzIDE4OjAzOjMzIDIwMjEKK0NvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAorWC1QYXRjaHdvcmstU3VibWl0dGVyOiA9P3V0Zi04P3E/ RmlsaXBlX0xhPUMzPUFEbnM/PSA8bGFpbnNAYXJjaGxpbnV4Lm9yZz4KK1gtUGF0Y2h3b3JrLUlk OiAxMjA0MTc2MQorWC1QYXRjaHdvcmstRGVsZWdhdGU6IGppa29zQGppa29zLmN6CitSZXR1cm4t UGF0aDogPGxpbnV4LWlucHV0LW93bmVyQGtlcm5lbC5vcmc+CitYLVNwYW0tQ2hlY2tlci1WZXJz aW9uOiBTcGFtQXNzYXNzaW4gMy40LjAgKDIwMTQtMDItMDcpIG9uCisJYXdzLXVzLXdlc3QtMi1r b3JnLWxrbWwtMS53ZWIuY29kZWF1cm9yYS5vcmcKK1gtU3BhbS1MZXZlbDogCitYLVNwYW0tU3Rh dHVzOiBObywgc2NvcmU9LTIzLjkgcmVxdWlyZWQ9My4wIHRlc3RzPUJBWUVTXzAwLERLSU1XTF9X TF9ISUdILAorCURLSU1fU0lHTkVELERLSU1fVkFMSUQsREtJTV9WQUxJRF9BVSxIRUFERVJfRlJP TV9ESUZGRVJFTlRfRE9NQUlOUywKKwlJTkNMVURFU19DUl9UUkFJTEVSLElOQ0xVREVTX1BBVENI LE1BSUxJTkdfTElTVF9NVUxUSSxNRU5USU9OU19HSVRfSE9TVElORywKKwlTUEZfSEVMT19OT05F LFNQRl9QQVNTLFVSSUJMX0JMT0NLRUQsVVNFUl9BR0VOVF9HSVQgYXV0b2xlYXJuPWhhbQorCWF1 dG9sZWFybl9mb3JjZT1ubyB2ZXJzaW9uPTMuNC4wCitSZWNlaXZlZDogZnJvbSBtYWlsLmtlcm5l bC5vcmcgKG1haWwua2VybmVsLm9yZyBbMTk4LjE0NS4yOS45OV0pCisJYnkgc210cC5sb3JlLmtl cm5lbC5vcmcgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgQ0FBNkJDNDMzRTAKKwlmb3IgPGxpbnV4 LWlucHV0QGFyY2hpdmVyLmtlcm5lbC5vcmc+OyBTYXQsIDIzIEphbiAyMDIxIDE4OjA0OjU0ICsw MDAwIChVVEMpCitSZWNlaXZlZDogZnJvbSB2Z2VyLmtlcm5lbC5vcmcgKHZnZXIua2VybmVsLm9y ZyBbMjMuMTI4Ljk2LjE4XSkKKwlieSBtYWlsLmtlcm5lbC5vcmcgKFBvc3RmaXgpIHdpdGggRVNN VFAgaWQgOTI3NEIyMkRGQQorCWZvciA8bGludXgtaW5wdXRAYXJjaGl2ZXIua2VybmVsLm9yZz47 IFNhdCwgMjMgSmFuIDIwMjEgMTg6MDQ6NTQgKzAwMDAgKFVUQykKK1JlY2VpdmVkOiAobWFqb3Jk b21vQHZnZXIua2VybmVsLm9yZykgYnkgdmdlci5rZXJuZWwub3JnIHZpYSBsaXN0ZXhwYW5kCisg ICAgICAgIGlkIFMxNzI2MTUxQWJoQVdTRWcgKE9SQ1BUIDxyZmM4MjI7bGludXgtaW5wdXRAYXJj aGl2ZXIua2VybmVsLm9yZz4pOworICAgICAgICBTYXQsIDIzIEphbiAyMDIxIDEzOjA0OjM2IC0w NTAwCitSZWNlaXZlZDogZnJvbSBtYWlsLmFyY2hsaW51eC5vcmcgKFs5NS4yMTYuMTg5LjYxXToz NDM4OCAiRUhMTworICAgICAgICBtYWlsLmFyY2hsaW51eC5vcmciIHJob3N0LWZsYWdzLU9LLU9L LU9LLU9LKSBieSB2Z2VyLmtlcm5lbC5vcmcKKyAgICAgICAgd2l0aCBFU01UUCBpZCBTMTcyNjEz MUFiaEFXU0VkIChPUkNQVAorICAgICAgICA8cmZjODIyO2xpbnV4LWlucHV0QHZnZXIua2VybmVs Lm9yZz4pOworICAgICAgICBTYXQsIDIzIEphbiAyMDIxIDEzOjA0OjMzIC0wNTAwCitSZWNlaXZl ZDogZnJvbSBsb2NhbGhvc3QubG9jYWxkb21haW4gKHVua25vd24KKyBbSVB2NjoyMDAxOjhhMDpm MjY4OmU2MDA6NTc1MTplM2U0Ojc4ODA6ZWM5Y10pCisgICAgICAgICh1c2luZyBUTFN2MS4zIHdp dGggY2lwaGVyIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgKDI1Ni8yNTYgYml0cykKKyAgICAgICAg IGtleS1leGNoYW5nZSBFQ0RIRSAoUC0zODQpIHNlcnZlci1zaWduYXR1cmUgUlNBLVBTUyAoNDA5 NiBiaXRzKQorIHNlcnZlci1kaWdlc3QgU0hBMjU2KQorICAgICAgICAoTm8gY2xpZW50IGNlcnRp ZmljYXRlIHJlcXVlc3RlZCkKKyAgICAgICAgKEF1dGhlbnRpY2F0ZWQgc2VuZGVyOiBmZnkwMCkK KyAgICAgICAgYnkgbWFpbC5hcmNobGludXgub3JnIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQg NkQ5MDkzOEY5Mzk7CisgICAgICAgIFNhdCwgMjMgSmFuIDIwMjEgMTg6MDM6NDggKzAwMDAgKFVU QykKK0RLSU0tU2lnbmF0dXJlOiB2PTE7IGE9ZWQyNTUxOS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxh eGVkOyBkPWFyY2hsaW51eC5vcmc7CisgICAgICAgIHM9ZGtpbS1lZDI1NTE5OyB0PTE2MTE0MjUw Mjg7CisgICAgICAgIGg9ZnJvbTpmcm9tOnJlcGx5LXRvOnN1YmplY3Q6c3ViamVjdDpkYXRlOmRh dGU6bWVzc2FnZS1pZDptZXNzYWdlLWlkOgorICAgICAgICAgdG86dG86Y2M6Y2M6bWltZS12ZXJz aW9uOm1pbWUtdmVyc2lvbjpjb250ZW50LXR5cGU6Y29udGVudC10eXBlOgorICAgICAgICAgY29u dGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOworICAgICAg ICBiaD1RNDJLVmdURlBSOHJCWnFzcjFZOVdIL0I3U2ZvQ1JHNGFYVHJDZEJqdnVZPTsKKyAgICAg ICAgYj1JcHBLRlpINHlHcG1IaDAzbzMwckV3bktSZ0hqWXRCaytuV3BIZmZEMDhLSGJNRzh5cmlt ckpMSDJnYW5ONjlqcUVtd2NXCisgICAgICAgIForZFVNUktjWUxDM2lCREE9PQorREtJTS1TaWdu YXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1hcmNobGludXgu b3JnOworICAgICAgICBzPWRraW0tcnNhOyB0PTE2MTE0MjUwMjg7CisgICAgICAgIGg9ZnJvbTpm cm9tOnJlcGx5LXRvOnN1YmplY3Q6c3ViamVjdDpkYXRlOmRhdGU6bWVzc2FnZS1pZDptZXNzYWdl LWlkOgorICAgICAgICAgdG86dG86Y2M6Y2M6bWltZS12ZXJzaW9uOm1pbWUtdmVyc2lvbjpjb250 ZW50LXR5cGU6Y29udGVudC10eXBlOgorICAgICAgICAgY29udGVudC10cmFuc2Zlci1lbmNvZGlu Zzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOworICAgICAgICBiaD1RNDJLVmdURlBSOHJCWnFz cjFZOVdIL0I3U2ZvQ1JHNGFYVHJDZEJqdnVZPTsKKyAgICAgICAgYj1oVjcweS95eGRaeU5MRVZz VWVYU3NMSW1jN2xHTzNha05Td0puM2hMTng5M3VmYTZPS2k3YlZxNERmOTZFNk1yN24xN0RJCisg ICAgICAgIEZHdTZCTmplcXlrZXMyaFlWdUFuUXgvTUVYTUJHTSt0NFJ6emhyU3BrVlk0NWZjYm02 dVpMSEUvdHJZdmtyRkdDM2RWai8KKyAgICAgICAgMERuT3JPdUdVbkl2VEpmK0dtZmVFU3VaTnFw R0ZocFBieWlUSnJVU1NzTUloTFBRZXBFRFZhendSWGpvcmMwdlF6WldBLworICAgICAgICBtUm5U Z1dVcU8vVWphVTVnMyt1aUtTUnhNNGdsY0poM0czb2ZxalZkV0Ywb3kwKzFmZVRmUHlCbXlDQ3R0 ZzVlNUVoOE44CisgICAgICAgIDBmYWU2YVRITHc0Z2xHYm9jUlpxbnlES3hNa1plUW5DUjlpY3VK MVg3Z2pUVXQ5OE1mYlF5S2wycnFBbjRlcHpEb3doRzUKKyAgICAgICAgblVhT1VDaUdlOWljVzNS cytyVXZNQ29YMjZSRmFuaUN2U2NGSHNPb1BGUlkxYXZ3aEVITmh5OGtVNHdQbytlN2JIcVFBQQor ICAgICAgICAyZHB0dHdOQ0JZQktnUUs3NFM0RkhpdjV0cVlTVC9EQzFKeHdFbU1IOVNrSlgxS3dP eElQbElaSjRpVzgrZUdxOTU0NTFiCisgICAgICAgIE9DSDROMTd6aksrcFgyS0xGV2p3Ymxrd01t RjgzSUFJUGpmbnBQUml0Mms3TFFOeHlKYlNBYVJ3Wkhad1lBSkZaN05ZSFUKKyAgICAgICAgSHB2 Q2dtTzNzZmhkTS9HaXhuajVWQm5kblJOZzdxaW5hdldVVk04WUdPNmxaTUV0L2wxbHhlZ2RRWGkr NGdYQXhVdi9WZAorICAgICAgICAxUjlYZDM4MlZHK2RySm5QVXVlN2FhR3NQY1YzVER4ajhXdlBh NzNjQWlsZGhRb0ZrcTRGcz0KK0Zyb206ID0/dXRmLTg/cT9GaWxpcGVfTGE9QzM9QURucz89IDxs YWluc0BhcmNobGludXgub3JnPgorVG86IEppcmkgS29zaW5hIDxqaWtvc0BrZXJuZWwub3JnPiwK KyAgICAgICAgQmVuamFtaW4gVGlzc29pcmVzIDxiZW5qYW1pbi50aXNzb2lyZXNAcmVkaGF0LmNv bT4sCisgICAgICAgIGxpbnV4LWlucHV0QHZnZXIua2VybmVsLm9yZywgbGludXgta2VybmVsQHZn ZXIua2VybmVsLm9yZworQ2M6ID0/dXRmLTg/cT9GaWxpcGVfTGE9QzM9QURucz89IDxsYWluc0By aXNldXAubmV0PgorU3ViamVjdDogW1BBVENIIDEvMl0gSElEOiBsb2dpdGVjaC1kajogYWRkIHN1 cHBvcnQgZm9yIHRoZSBuZXcgbGlnaHRzcGVlZAorIHJlY2VpdmVyIGl0ZXJhdGlvbgorRGF0ZTog U2F0LCAyMyBKYW4gMjAyMSAxODowMzozMyArMDAwMAorTWVzc2FnZS1JZDogPDIwMjEwMTIzMTgw MzM0LjMwNjI5OTUtMS1sYWluc0BhcmNobGludXgub3JnPgorWC1NYWlsZXI6IGdpdC1zZW5kLWVt YWlsIDIuMzAuMAorTUlNRS1WZXJzaW9uOiAxLjAKK0F1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IG1h aWwuYXJjaGxpbnV4Lm9yZzsKKyAgICAgICAgYXV0aD1wYXNzIHNtdHAuYXV0aD1mZnkwMCBzbXRw Lm1haWxmcm9tPWxhaW5zQGFyY2hsaW51eC5vcmcKK1ByZWNlZGVuY2U6IGJ1bGsKK0xpc3QtSUQ6 IDxsaW51eC1pbnB1dC52Z2VyLmtlcm5lbC5vcmc+CitYLU1haWxpbmctTGlzdDogbGludXgtaW5w dXRAdmdlci5rZXJuZWwub3JnCisKK0Zyb206IEZpbGlwZSBMYcOtbnMgPGxhaW5zQHJpc2V1cC5u ZXQ+CisKK1Rlc3RlZCB3aXRoIHRoZSBHIFBybyBYIFN1cGVybGlnaHQuIGxpYnJhdGJhZyBzZWVz IHRoZSBkZXZpY2UsIGFzCitleHBlY3RlZCwgYW5kIGlucHV0IGV2ZW50cyBhcmUgcGFzc2luZyB0 cm91Z2guCisKK2h0dHBzOi8vZ2l0aHViLmNvbS9saWJyYXRiYWcvbGlicmF0YmFnL3B1bGwvMTEy MgorCitUaGUgcmVjZWl2ZXIgaGFzIGEgcXVpcmsgd2hlcmUgdGhlIG1vdXNlZCBpbnRlcmZhY2Ug ZG9lc24ndCBoYXZlIGEKK3JlcG9ydCBJRCwgSSBhbSBub3Qgc3VyZSB3aHksIHBlcmhhcHMgdGhl eSBmb3Jnb3QuIEFsbCBvdGhlciBpbnRlcmZhY2VzCitoYXZlIHJlcG9ydCBJRHMgc28gSSBhbSBs ZWZ0IHNjcmF0Y2hpbmcgbXkgaGVhZC4KK1NpbmNlIHRoaXMgZHJpdmVyIGRvZXNuJ3QgaGF2ZSBh IHF1aXJrIHN5c3RlbSwgSSBzaW1wbHkgaW1wbGVtZW50ZWQgaXQKK2FzIGEgZGlmZmVyZW50IHJl Y2VpdmVyIHR5cGUsIHdoaWNoIGlzIHRydWUsIGl0IGp1c3Qgd291bGRuJ3QgYmUgdGhlCitwcmVm ZXJlZCBhcHByb2FjaCA6UAorCitTaWduZWQtb2ZmLWJ5OiBGaWxpcGUgTGHDrW5zIDxsYWluc0By aXNldXAubmV0PgorLS0tCisgZHJpdmVycy9oaWQvaGlkLWlkcy5oICAgICAgICAgfCAgMSArCisg ZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMgfCA0OSArKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtaWRzLmggYi9kcml2ZXJz L2hpZC9oaWQtaWRzLmgKK2luZGV4IDRjNWYyMzY0MGY5Yy4uOGVhYzNjOTNmYTM4IDEwMDY0NAor LS0tIGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oCisrKysgYi9kcml2ZXJzL2hpZC9oaWQtaWRzLmgK K0BAIC04MDMsNiArODAzLDcgQEAKKyAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFO T19SRUNFSVZFUl9MSUdIVFNQRUVEXzEJMHhjNTM5CisgI2RlZmluZSBVU0JfREVWSUNFX0lEX0xP R0lURUNIX05BTk9fUkVDRUlWRVJfTElHSFRTUEVFRF8xXzEJMHhjNTNmCisgI2RlZmluZSBVU0Jf REVWSUNFX0lEX0xPR0lURUNIX05BTk9fUkVDRUlWRVJfUE9XRVJQTEFZCTB4YzUzYQorKyNkZWZp bmUgVVNCX0RFVklDRV9JRF9MT0dJVEVDSF9OQU5PX1JFQ0VJVkVSX0xJR0hUU1BFRURfMV8yCTB4 YzU0NworICNkZWZpbmUgVVNCX0RFVklDRV9JRF9TUEFDRVRSQVZFTExFUgkweGM2MjMKKyAjZGVm aW5lIFVTQl9ERVZJQ0VfSURfU1BBQ0VOQVZJR0FUT1IJMHhjNjI2CisgI2RlZmluZSBVU0JfREVW SUNFX0lEX0RJTk9WT19ERVNLVE9QCTB4YzcwNAorZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hp ZC1sb2dpdGVjaC1kai5jIGIvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMKK2luZGV4IDE0 MDFlZTIwNjdjYS4uNjU5NmM4MTk0N2E4IDEwMDY0NAorLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxv Z2l0ZWNoLWRqLmMKKysrKyBiL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5jCitAQCAtMTE0 LDYgKzExNCw3IEBAIGVudW0gcmVjdnJfdHlwZSB7CisgCXJlY3ZyX3R5cGVfZGosCisgCXJlY3Zy X3R5cGVfaGlkcHAsCisgCXJlY3ZyX3R5cGVfZ2FtaW5nX2hpZHBwLAorKwlyZWN2cl90eXBlX2dh bWluZ19oaWRwcF9taXNzaW5nX21zZV9yZXBvcnRfaWQsICAvKiBsaWdodHNwZWVkIHJlY2VpdmVy IG1pc3NpbmcgdGhlIG1vdXNlIHJlcG9ydCBJRCAqLworIAlyZWN2cl90eXBlX21vdXNlX29ubHks CisgCXJlY3ZyX3R5cGVfMjdtaHosCisgCXJlY3ZyX3R5cGVfYmx1ZXRvb3RoLAorQEAgLTEzNjAs NiArMTM2MSw3IEBAIHN0YXRpYyBpbnQgbG9naV9kal9sbF9wYXJzZShzdHJ1Y3QgaGlkX2Rldmlj ZSAqaGlkKQorIAkJZGJnX2hpZCgiJXM6IHNlbmRpbmcgYSBtb3VzZSBkZXNjcmlwdG9yLCByZXBv cnRzX3N1cHBvcnRlZDogJWxseFxuIiwKKyAJCQlfX2Z1bmNfXywgZGpkZXYtPnJlcG9ydHNfc3Vw cG9ydGVkKTsKKyAJCWlmIChkamRldi0+ZGpfcmVjZWl2ZXJfZGV2LT50eXBlID09IHJlY3ZyX3R5 cGVfZ2FtaW5nX2hpZHBwIHx8CisrCQkgICAgZGpkZXYtPmRqX3JlY2VpdmVyX2Rldi0+dHlwZSA9 PSByZWN2cl90eXBlX2dhbWluZ19oaWRwcF9taXNzaW5nX21zZV9yZXBvcnRfaWQgfHwKKyAJCSAg ICBkamRldi0+ZGpfcmVjZWl2ZXJfZGV2LT50eXBlID09IHJlY3ZyX3R5cGVfbW91c2Vfb25seSkK KyAJCQlyZGNhdChyZGVzYywgJnJzaXplLCBtc2VfaGlnaF9yZXNfZGVzY3JpcHRvciwKKyAJCQkg ICAgICBzaXplb2YobXNlX2hpZ2hfcmVzX2Rlc2NyaXB0b3IpKTsKK0BAIC0xNjkyLDExICsxNjky LDEyIEBACisgCQl9CisgCQkvKgorIAkJICogTW91c2Utb25seSByZWNlaXZlcnMgc2VuZCB1bm51 bWJlcmVkIG1vdXNlIGRhdGEuIFRoZSAyNyBNSHoKKy0JCSAqIHJlY2VpdmVyIHVzZXMgNiBieXRl IHBhY2tldHMsIHRoZSBuYW5vIHJlY2VpdmVyIDggYnl0ZXMuCisrCQkgKiByZWNlaXZlciB1c2Vz IDYgYnl0ZSBwYWNrZXRzLCB0aGUgbmFubyByZWNlaXZlciA4IGJ5dGVzLiBhbmQKKysJCSAqIHNv bWUgZ2FtaW5nIG9uZXMgYXJlIHVzaW5nIDE2IGJ5dGVzLgorIAkJICovCisgCQlpZiAoZGpyY3Zf ZGV2LT51bm51bWJlcmVkX2FwcGxpY2F0aW9uID09IEhJRF9HRF9NT1VTRSAmJgorLQkJICAgIHNp emUgPD0gOCkgeworLQkJCXU4IG1vdXNlX3JlcG9ydFs5XTsKKysJCSAgICBzaXplIDw9IDE2KSB7 CisrCQkJdTggbW91c2VfcmVwb3J0WzE3XTsKKyAKKyAJCQkvKiBQcmVwZW5kIHJlcG9ydCBpZCAq LworIAkJCW1vdXNlX3JlcG9ydFswXSA9IFJFUE9SVF9UWVBFX01PVVNFOworQEAgLTE2ODgsNiAr MTcwNiw3IEBAIHN0YXRpYyBpbnQgbG9naV9kal9wcm9iZShzdHJ1Y3QgaGlkX2RldmljZSAqaGRl diwKKyAJY2FzZSByZWN2cl90eXBlX2RqOgkJbm9fZGpfaW50ZXJmYWNlcyA9IDM7IGJyZWFrOwor IAljYXNlIHJlY3ZyX3R5cGVfaGlkcHA6CQlub19kal9pbnRlcmZhY2VzID0gMjsgYnJlYWs7Cisg CWNhc2UgcmVjdnJfdHlwZV9nYW1pbmdfaGlkcHA6CW5vX2RqX2ludGVyZmFjZXMgPSAzOyBicmVh azsKKysJY2FzZSByZWN2cl90eXBlX2dhbWluZ19oaWRwcF9taXNzaW5nX21zZV9yZXBvcnRfaWQ6 IG5vX2RqX2ludGVyZmFjZXMgPSAzOyBicmVhazsKKyAJY2FzZSByZWN2cl90eXBlX21vdXNlX29u bHk6CW5vX2RqX2ludGVyZmFjZXMgPSAyOyBicmVhazsKKyAJY2FzZSByZWN2cl90eXBlXzI3bWh6 OgkJbm9fZGpfaW50ZXJmYWNlcyA9IDI7IGJyZWFrOworIAljYXNlIHJlY3ZyX3R5cGVfYmx1ZXRv b3RoOglub19kal9pbnRlcmZhY2VzID0gMjsgYnJlYWs7CitAQCAtMTk4NCw2ICsxOTg0LDEwIEBA CisgCSAgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9MT0dJVEVDSCwKKyAJCVVTQl9ERVZJ Q0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl9MSUdIVFNQRUVEXzFfMSksCisgCSAuZHJpdmVy X2RhdGEgPSByZWN2cl90eXBlX2dhbWluZ19oaWRwcH0sCisrCXsgLyogTG9naXRlY2ggbGlnaHRz cGVlZCByZWNlaXZlciAoMHhjNTQ3KSAqLworKwkgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9J RF9MT0dJVEVDSCwKKysJCVVTQl9ERVZJQ0VfSURfTE9HSVRFQ0hfTkFOT19SRUNFSVZFUl9MSUdI VFNQRUVEXzFfMiksCisrCSAuZHJpdmVyX2RhdGEgPSByZWN2cl90eXBlX2dhbWluZ19oaWRwcF9t aXNzaW5nX21zZV9yZXBvcnRfaWR9LAorIAorIAl7IC8qIExvZ2l0ZWNoIDI3IE1IeiBISUQrKyAx LjAgcmVjZWl2ZXIgKDB4YzUxMykgKi8KKyAJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lE X0xPR0lURUNILCBVU0JfREVWSUNFX0lEX01YMzAwMF9SRUNFSVZFUiksCitGcm9tIHBhdGNod29y ayBTYXQgSmFuIDIzIDE4OjAzOjM0IDIwMjEKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD0idXRmLTgiCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAorWC1QYXRjaHdvcmstU3VibWl0dGVyOiA9P3V0Zi04P3E/RmlsaXBlX0xhPUMzPUFE bnM/PSA8bGFpbnNAYXJjaGxpbnV4Lm9yZz4KK1gtUGF0Y2h3b3JrLUlkOiAxMjA0MTc2MworWC1Q YXRjaHdvcmstRGVsZWdhdGU6IGppa29zQGppa29zLmN6CitSZXR1cm4tUGF0aDogPGxpbnV4LWlu cHV0LW93bmVyQGtlcm5lbC5vcmc+CitYLVNwYW0tQ2hlY2tlci1WZXJzaW9uOiBTcGFtQXNzYXNz aW4gMy40LjAgKDIwMTQtMDItMDcpIG9uCisJYXdzLXVzLXdlc3QtMi1rb3JnLWxrbWwtMS53ZWIu Y29kZWF1cm9yYS5vcmcKK1gtU3BhbS1MZXZlbDogCitYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9 LTE4LjkgcmVxdWlyZWQ9My4wIHRlc3RzPUJBWUVTXzAwLERLSU1XTF9XTF9ISUdILAorCURLSU1f U0lHTkVELERLSU1fVkFMSUQsREtJTV9WQUxJRF9BVSxIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9N QUlOUywKKwlJTkNMVURFU19DUl9UUkFJTEVSLElOQ0xVREVTX1BBVENILE1BSUxJTkdfTElTVF9N VUxUSSxTUEZfSEVMT19OT05FLFNQRl9QQVNTLAorCVVSSUJMX0JMT0NLRUQsVVNFUl9BR0VOVF9H SVQgYXV0b2xlYXJuPWhhbSBhdXRvbGVhcm5fZm9yY2U9bm8gdmVyc2lvbj0zLjQuMAorUmVjZWl2 ZWQ6IGZyb20gbWFpbC5rZXJuZWwub3JnIChtYWlsLmtlcm5lbC5vcmcgWzE5OC4xNDUuMjkuOTld KQorCWJ5IHNtdHAubG9yZS5rZXJuZWwub3JnIChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIEQ5Qzc4 QzQzM0RCCisJZm9yIDxsaW51eC1pbnB1dEBhcmNoaXZlci5rZXJuZWwub3JnPjsgU2F0LCAyMyBK YW4gMjAyMSAxODowNDo1NCArMDAwMCAoVVRDKQorUmVjZWl2ZWQ6IGZyb20gdmdlci5rZXJuZWwu b3JnICh2Z2VyLmtlcm5lbC5vcmcgWzIzLjEyOC45Ni4xOF0pCisJYnkgbWFpbC5rZXJuZWwub3Jn IChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIEFEMUM0MjMwRkMKKwlmb3IgPGxpbnV4LWlucHV0QGFy Y2hpdmVyLmtlcm5lbC5vcmc+OyBTYXQsIDIzIEphbiAyMDIxIDE4OjA0OjU0ICswMDAwIChVVEMp CitSZWNlaXZlZDogKG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcpIGJ5IHZnZXIua2VybmVsLm9y ZyB2aWEgbGlzdGV4cGFuZAorICAgICAgICBpZCBTMTcyNjE5OEFiaEFXU0VsIChPUkNQVCA8cmZj ODIyO2xpbnV4LWlucHV0QGFyY2hpdmVyLmtlcm5lbC5vcmc+KTsKKyAgICAgICAgU2F0LCAyMyBK YW4gMjAyMSAxMzowNDo0MSAtMDUwMAorUmVjZWl2ZWQ6IGZyb20gbGluZGJlcmdoLm1vbmtleWJs YWRlLm5ldCAoWzIzLjEyOC45Ni4xOV06NDAyNTYgIkVITE8KKyAgICAgICAgbGluZGJlcmdoLm1v bmtleWJsYWRlLm5ldCIgcmhvc3QtZmxhZ3MtT0stT0stT0stT0spIGJ5IHZnZXIua2VybmVsLm9y ZworICAgICAgICB3aXRoIEVTTVRQIGlkIFMxNzI1NzY1QWJoQVdTRWYgKE9SQ1BUCisgICAgICAg IDxyZmM4MjI7bGludXgtaW5wdXRAdmdlci5rZXJuZWwub3JnPik7CisgICAgICAgIFNhdCwgMjMg SmFuIDIwMjEgMTM6MDQ6MzUgLTA1MDAKK1JlY2VpdmVkOiBmcm9tIG1haWwuYXJjaGxpbnV4Lm9y ZyAobWFpbC5hcmNobGludXgub3JnCisgW0lQdjY6MmEwMTo0Zjk6YzAxMDozMDUyOjoxXSkKKyAg ICAgICAgYnkgbGluZGJlcmdoLm1vbmtleWJsYWRlLm5ldCAoUG9zdGZpeCkgd2l0aCBFU01UUFMg aWQgRDVCREJDMDYxNzRBOworICAgICAgICBTYXQsIDIzIEphbiAyMDIxIDEwOjAzOjU0IC0wODAw IChQU1QpCitSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QubG9jYWxkb21haW4gKHVua25vd24KKyBb SVB2NjoyMDAxOjhhMDpmMjY4OmU2MDA6NTc1MTplM2U0Ojc4ODA6ZWM5Y10pCisgICAgICAgICh1 c2luZyBUTFN2MS4zIHdpdGggY2lwaGVyIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgKDI1Ni8yNTYg Yml0cykKKyAgICAgICAgIGtleS1leGNoYW5nZSBFQ0RIRSAoUC0zODQpIHNlcnZlci1zaWduYXR1 cmUgUlNBLVBTUyAoNDA5NiBiaXRzKQorIHNlcnZlci1kaWdlc3QgU0hBMjU2KQorICAgICAgICAo Tm8gY2xpZW50IGNlcnRpZmljYXRlIHJlcXVlc3RlZCkKKyAgICAgICAgKEF1dGhlbnRpY2F0ZWQg c2VuZGVyOiBmZnkwMCkKKyAgICAgICAgYnkgbWFpbC5hcmNobGludXgub3JnIChQb3N0Zml4KSB3 aXRoIEVTTVRQU0EgaWQgOEM0NkEzOEY5M0E7CisgICAgICAgIFNhdCwgMjMgSmFuIDIwMjEgMTg6 MDM6NTAgKzAwMDAgKFVUQykKK0RLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1y ZWxheGVkL3JlbGF4ZWQ7IGQ9YXJjaGxpbnV4Lm9yZzsKKyAgICAgICAgcz1ka2ltLXJzYTsgdD0x NjExNDI1MDMxOworICAgICAgICBoPWZyb206ZnJvbTpyZXBseS10bzpzdWJqZWN0OnN1YmplY3Q6 ZGF0ZTpkYXRlOm1lc3NhZ2UtaWQ6bWVzc2FnZS1pZDoKKyAgICAgICAgIHRvOnRvOmNjOmNjOm1p bWUtdmVyc2lvbjptaW1lLXZlcnNpb246Y29udGVudC10eXBlOmNvbnRlbnQtdHlwZToKKyAgICAg ICAgIGNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzoK KyAgICAgICAgIGluLXJlcGx5LXRvOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6cmVmZXJlbmNlczsK KyAgICAgICAgYmg9cFV5NUdSbjZpQWQwNzc0K3pydnQveHhMc0x5NUdmcGg3STg4N0JsWnpOaz07 CisgICAgICAgIGI9VVpnYzZPeTVaVEtBWjhLLzdDdGw5czR4YWFsVVEwLzlybmhVb1FLUTlkTi9w T2QrZ1NJTHE4NkZ4VGxGMzczWXE5NVdURQorICAgICAgICBNOEI0cUErK3BzTkdDcG9OQnpBT0oy UllZWTRUb01ycXlXM3FiMEJSUzVYV01EbUpJS05PWVBERldVNkI0VmgwTTZNUVJwCisgICAgICAg IE9BV2FJbnBUUTVvS3ZSdDBRcVRvUHBTY3ZIckJEdk9GbC9MTnBuNXJjQjlBQVg1UHZkWmQ4SXN4 YW9vSGpDMjlrSXQ3dmMKKyAgICAgICAgWWh6bkVuMHZDNTVCVE9GSkNVR2FrdW04NVN3ZUY2L2xk OFQzaE1FSnVKYUpTRjVsaDZKYVNPdUNwN2xQVjJxeVVUMWErWAorICAgICAgICBHd24zV3JBMDgr eFVjL2ZUWjZKSkZBbHNYWFF3M1F2a3NOUTg3REk3bjJLYWpPUzMxTjIyb2t3TkF5Q2ppV3BDdmxp clFQCisgICAgICAgIERXQnlib3hOVHhYYW56SUVNV2xRekkrMzFsRVJzU1pzQmVkTzVVN2FISE1o MldtRGR1dXR0T0MxdDNLa0RueUxpSDI3WFAKKyAgICAgICAgRlIvSFpHZ3VyNzNjVGhob1ZCSFBn UDhSZDc1c2NaNVozTm9jRjhLL1Z1MW9vajNON3IvSkc3dkd3bG04S2xqVHh3T05JUAorICAgICAg ICAxdUhyOUkxN3czR2kzNjlZNkVDYnl1dndxbDV5QzM5bDJpNmxYdHQ2M3hHcDg3V0kzYSsxTW5Z Ly9McWRjall0SXFxdldNCisgICAgICAgIEhxNzFSSFNZbUVSaGZHTDRMMG8zVGxEbGhMNHBIb0Ew ZE5aQXgxRmJSbzVxQUcvM05WT3N1Um4zTTU1YVROcHFNVEZJSDYKKyAgICAgICAgTVI3azc1dlhn RlRjSGVlUmRGM3lYdFYyY3dPaEVHNDl6d1JzV04wcWZUL0lhcE1RdGlRSU09CitES0lNLVNpZ25h dHVyZTogdj0xOyBhPWVkMjU1MTktc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1hcmNobGlu dXgub3JnOworICAgICAgICBzPWRraW0tZWQyNTUxOTsgdD0xNjExNDI1MDMxOworICAgICAgICBo PWZyb206ZnJvbTpyZXBseS10bzpzdWJqZWN0OnN1YmplY3Q6ZGF0ZTpkYXRlOm1lc3NhZ2UtaWQ6 bWVzc2FnZS1pZDoKKyAgICAgICAgIHRvOnRvOmNjOmNjOm1pbWUtdmVyc2lvbjptaW1lLXZlcnNp b246Y29udGVudC10eXBlOmNvbnRlbnQtdHlwZToKKyAgICAgICAgIGNvbnRlbnQtdHJhbnNmZXIt ZW5jb2Rpbmc6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzoKKyAgICAgICAgIGluLXJlcGx5LXRv OmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6cmVmZXJlbmNlczsKKyAgICAgICAgYmg9cFV5NUdSbjZp QWQwNzc0K3pydnQveHhMc0x5NUdmcGg3STg4N0JsWnpOaz07CisgICAgICAgIGI9bm9DLzd4NHJk VklGNlRJSXBQSDZnUkRuS0t2ZHdWOERoMXYxUWhkUlJDK215M0lFeE13SCtBdWpyTFcyMm1YNkxY S2pNMAorICAgICAgICBoSWkvWW5LaTJ1Um4yU0F3PT0KK0Zyb206ID0/dXRmLTg/cT9GaWxpcGVf TGE9QzM9QURucz89IDxsYWluc0BhcmNobGludXgub3JnPgorVG86IEppcmkgS29zaW5hIDxqaWtv c0BrZXJuZWwub3JnPiwKKyAgICAgICAgQmVuamFtaW4gVGlzc29pcmVzIDxiZW5qYW1pbi50aXNz b2lyZXNAcmVkaGF0LmNvbT4sCisgICAgICAgIGxpbnV4LWlucHV0QHZnZXIua2VybmVsLm9yZywg bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZworQ2M6ID0/dXRmLTg/cT9GaWxpcGVfTGE9QzM9 QURucz89IDxsYWluc0ByaXNldXAubmV0PgorU3ViamVjdDogW1BBVENIIDIvMl0gSElEOiBsb2dp dGVjaC1oaWRwcDogYWRkIHN1cHBvcnQgZm9yIHRoZSBHIFBybyBYCisgU3VwZXJsaWdodCBvdmVy IFVTQgorRGF0ZTogU2F0LCAyMyBKYW4gMjAyMSAxODowMzozNCArMDAwMAorTWVzc2FnZS1JZDog PDIwMjEwMTIzMTgwMzM0LjMwNjI5OTUtMi1sYWluc0BhcmNobGludXgub3JnPgorWC1NYWlsZXI6 IGdpdC1zZW5kLWVtYWlsIDIuMzAuMAorSW4tUmVwbHktVG86IDwyMDIxMDEyMzE4MDMzNC4zMDYy OTk1LTEtbGFpbnNAYXJjaGxpbnV4Lm9yZz4KK1JlZmVyZW5jZXM6IDwyMDIxMDEyMzE4MDMzNC4z MDYyOTk1LTEtbGFpbnNAYXJjaGxpbnV4Lm9yZz4KK01JTUUtVmVyc2lvbjogMS4wCitBdXRoZW50 aWNhdGlvbi1SZXN1bHRzOiBtYWlsLmFyY2hsaW51eC5vcmc7CisgICAgICAgIGF1dGg9cGFzcyBz bXRwLmF1dGg9ZmZ5MDAgc210cC5tYWlsZnJvbT1sYWluc0BhcmNobGludXgub3JnCitQcmVjZWRl bmNlOiBidWxrCitMaXN0LUlEOiA8bGludXgtaW5wdXQudmdlci5rZXJuZWwub3JnPgorWC1NYWls aW5nLUxpc3Q6IGxpbnV4LWlucHV0QHZnZXIua2VybmVsLm9yZworCitGcm9tOiBGaWxpcGUgTGHD rW5zIDxsYWluc0ByaXNldXAubmV0PgorCitUZXN0ZWQgYW5kIGlzIHdvcmtpbmcgOikKKworU2ln bmVkLW9mZi1ieTogRmlsaXBlIExhw61ucyA8bGFpbnNAcmlzZXVwLm5ldD4KKy0tLQorIGRyaXZl cnMvaGlkL2hpZC1sb2dpdGVjaC1oaWRwcC5jIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1oaWRw cC5jIGIvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWhpZHBwLmMKK2luZGV4IDI5MWM2YjRkMjZi Ny4uNTRhMjg5NTEwYTdkIDEwMDY0NAorLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWhp ZHBwLmMKKysrKyBiL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1oaWRwcC5jCitAQCAtNDI2OCw2 ICs0MjY4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGhpZHBwX2Rldmlj ZXNbXSA9IHsKKyAJCS5kcml2ZXJfZGF0YSA9IEhJRFBQX1FVSVJLX0NMQVNTX0c5MjAgfCBISURQ UF9RVUlSS19GT1JDRV9PVVRQVVRfUkVQT1JUU30sCisgCXsgLyogTG9naXRlY2ggRyBQcm8gR2Ft aW5nIE1vdXNlIG92ZXIgVVNCICovCisgCSAgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9M T0dJVEVDSCwgMHhDMDg4KSB9LAorKwl7IC8qIExvZ2l0ZWNoIEcgUHJvIFggU3VwZXJsaWdodCBH YW1pbmcgTW91c2Ugb3ZlciBVU0IgKi8KKysJICBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lE X0xPR0lURUNILCAweEMwOTQpIH0sCisgCisgCXsgLyogTVg1MDAwIGtleWJvYXJkIG92ZXIgQmx1 ZXRvb3RoICovCisgCSAgSElEX0JMVUVUT09USF9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9MT0dJVEVD SCwgMHhiMzA1KSwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjMvdGVtcGxhdGUgYi9zcmNw a2dzL2xpbnV4Ni4zL3RlbXBsYXRlCmluZGV4IGYyZTM3M2Y1NTI3OGQuLmMzZTQ0OTMwYzYxZWMg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGludXg2LjMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saW51 eDYuMy90ZW1wbGF0ZQpAQCAtMTgsNyArMTgsNyBAQCBjaGVja3N1bT0iYmEzNDkxZjVlZDZiZDI3 MGEzNzBjNDQwNDM0ZTNkNjkwODVmY2RkNTI4OTIyZmEwMWU3M2Q3NjU3ZGI3M2IxZQogcHl0aG9u X3ZlcnNpb249MwogCiAjIFhYWCBSZXN0cmljdCBhcmNocyB1bnRpbCBhIHByb3BlciA8YXJjaD4t ZG90Y29uZmlnIGlzIGF2YWlsYWJsZSBpbiBGSUxFU0RJUi4KLWFyY2hzPSJ4ODZfNjQqIGk2ODYq IGFhcmNoNjQqIgorYXJjaHM9Ing4Nl82NCogaTY4NiogYWFyY2g2NCogcmlzY3Y2NCoiCiAKIG5v ZGVidWc9eWVzICAjIC1kYmcgcGFja2FnZSBpcyBnZW5lcmF0ZWQgYmVsb3cgbWFudWFsbHkKIG5v c3RyaXA9eWVzCgpGcm9tIDBkMDI5YzMyZDEwMGI4NDhjNThkY2ZmNmQxY2E3NjU3NjFiYmEwYmYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4K RGF0ZTogVHVlLCAxMSBKdWwgMjAyMyAwODo1OToyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTg2 LzE4OV0gbGludXg2LjI6IHJlbW92ZSByaXNjdjY0IHBhdGNoc2V0CgotLS0KIC4uLm9ybS1BZGQt c25wcy1kd21hYy01LjIwLUlQLWNvbXBhdGlibC5wYXRjaCB8ICAzMiAtLQogLi4uc25wcy1kd21h Yy1BZGQtYW4tb3B0aW9uYWwtcmVzZXRzLXNpLnBhdGNoIHwgIDQ4IC0tCiAuLi5pdmUtamg3MTEw LUFkZC1ldGhlcm5ldC1kZXZpY2Utbm9kZXMucGF0Y2ggfCAxMjUgLS0tLS0KIC4uLmQtZ2x1ZS1s YXllci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaCB8IDE5OSAtLS0tLS0tLQogLi4uc3Rh cmZpdmUtamg3MTEwLWR3bWFjLUFkZC1zdGFyZml2ZS1zLnBhdGNoIHwgIDQ3IC0tCiAuLi5maXZl X2RtYWMtQWRkLXBoeS1pbnRlcmZhY2Utc2V0dGluZ3MucGF0Y2ggfCAgOTcgLS0tLQogLi4udmUt amg3MTEwLUFkZC1zeXNjb24tdG8tc3VwcG9ydC1waHktLnBhdGNoIHwgIDM3IC0tCiAuLi52ZS12 aXNpb25maXZlLTItdjEuM2ItQWRkLWdtYWMtcGh5LXMucGF0Y2ggfCAgNTUgLS0tCiAuLi52ZS12 aXNpb25maXZlLTItdjEuMmEtQWRkLWdtYWMtcGh5LXMucGF0Y2ggfCAgNDEgLS0KIC4uLnZlLXZp c2lvbmZpdmUtMi1FbmFibGUtZ21hYy1kZXZpY2UtdC5wYXRjaCB8ICA0NSAtLQogLi4uZGluZ3Mt bmV0LUFkZC1zdXBwb3J0LVN0YXJGaXZlLWR3bWFjLnBhdGNoIHwgIDMxIC0tCiAuLi4tZ2x1ZS1s YXllci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQ3MucGF0Y2ggfCAxOTIgLS0tLS0tLQogLi4uZXQt QWRkLU1vdG9yY29tbS15dDh4eHgtZXRoZXJuZXQtcGh5LnBhdGNoIHwgMTY3IC0tLS0tLS0KIC4u Lm1hY3JvLWZvci1Nb3RvcmNvbW0teXQ4NTIxLXl0ODUzMS1naS5wYXRjaCB8IDExMSAtLS0tLQog Li4uc3VwcG9ydC1mb3ItTW90b3Jjb21tLXl0ODUyMS1naWdhYml0LnBhdGNoIHwgMzQ3IC0tLS0t LS0tLS0tLS0KIC4uLnN1cHBvcnQtZm9yLU1vdG9yY29tbS15dDg1MzFzLWdpZ2FiaS5wYXRjaCB8 IDEwNCAtLS0tCiAuLi5lci1mb3ItTW90b3Jjb21tLXl0ODUzMS1naWdhYml0LWV0aGUucGF0Y2gg fCAzMDggLS0tLS0tLS0tLS0tCiAuLi5kaW5ncy1od21vbi1BZGQtc3RhcmZpdmUtamg3MXgwLXRl bXAucGF0Y2ggfCAgOTUgLS0tLQogLi4uZC1TdGFyRml2ZS1KSDcxeDAtdGVtcGVyYXR1cmUtc2Vu c29yLnBhdGNoIHwgNDY3IC0tLS0tLS0tLS0tLS0tLS0tLQogMTkgZmlsZXMgY2hhbmdlZCwgMjU0 OCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNo ZXMvMDA1MS1uZXQtc3RtbWFjLXBsYXRmb3JtLUFkZC1zbnBzLWR3bWFjLTUuMjAtSVAtY29tcGF0 aWJsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAw NTItZHQtYmluZGluZ3MtbmV0LXNucHMtZHdtYWMtQWRkLWFuLW9wdGlvbmFsLXJlc2V0cy1zaS5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU0LXJp c2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLWV0aGVybmV0LWRldmljZS1ub2Rlcy5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU1LW5ldC1zdG1t YWMtQWRkLWdsdWUtbGF5ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1Ni1kdC1iaW5kaW5ncy1uZXQt c3RhcmZpdmUtamg3MTEwLWR3bWFjLUFkZC1zdGFyZml2ZS1zLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTctbmV0LXN0bW1hYy1zdGFyZml2ZV9k bWFjLUFkZC1waHktaW50ZXJmYWNlLXNldHRpbmdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTgtcmlzY3YtZHRzLXN0YXJmaXZlLWpoNzExMC1B ZGQtc3lzY29uLXRvLXN1cHBvcnQtcGh5LS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGludXg2LjIvcGF0Y2hlcy8wMDU5LXJpc2N2LWR0cy1zdGFyZml2ZS12aXNpb25maXZlLTIt djEuM2ItQWRkLWdtYWMtcGh5LXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xp bnV4Ni4yL3BhdGNoZXMvMDA2MC1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJh LUFkZC1nbWFjLXBoeS1zLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYu Mi9wYXRjaGVzLzAwNjEtcmlzY3YtZHRzLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi1FbmFibGUtZ21h Yy1kZXZpY2UtdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0 Y2hlcy8wMDYyLWR0LWJpbmRpbmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1kd21hYy5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYzLW5ldC1z dG1tYWMtQWRkLWdsdWUtbGF5ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0NzLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjQtZHQtYmluZGluZ3Mt bmV0LUFkZC1Nb3RvcmNvbW0teXQ4eHh4LWV0aGVybmV0LXBoeS5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY1LW5ldC1waHktQWRkLUJJVC1tYWNy by1mb3ItTW90b3Jjb21tLXl0ODUyMS15dDg1MzEtZ2kucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2Ni1uZXQtcGh5LUFkZC1kdHMtc3VwcG9ydC1m b3ItTW90b3Jjb21tLXl0ODUyMS1naWdhYml0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjctbmV0LXBoeS1BZGQtZHRzLXN1cHBvcnQtZm9yLU1v dG9yY29tbS15dDg1MzFzLWdpZ2FiaS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bGludXg2LjIvcGF0Y2hlcy8wMDY4LW5ldC1waHktQWRkLWRyaXZlci1mb3ItTW90b3Jjb21tLXl0 ODUzMS1naWdhYml0LWV0aGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4 Ni4yL3BhdGNoZXMvMDA2OS1kdC1iaW5kaW5ncy1od21vbi1BZGQtc3RhcmZpdmUtamg3MXgwLXRl bXAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA3 MC1od21vbi1zZmN0ZW1wLUFkZC1TdGFyRml2ZS1KSDcxeDAtdGVtcGVyYXR1cmUtc2Vuc29yLnBh dGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTEtbmV0LXN0bW1h Yy1wbGF0Zm9ybS1BZGQtc25wcy1kd21hYy01LjIwLUlQLWNvbXBhdGlibC5wYXRjaCBiL3NyY3Br Z3MvbGludXg2LjIvcGF0Y2hlcy8wMDUxLW5ldC1zdG1tYWMtcGxhdGZvcm0tQWRkLXNucHMtZHdt YWMtNS4yMC1JUC1jb21wYXRpYmwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDk4NGYwZmU1YTU4NjYuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9saW51eDYuMi9wYXRj aGVzLzAwNTEtbmV0LXN0bW1hYy1wbGF0Zm9ybS1BZGQtc25wcy1kd21hYy01LjIwLUlQLWNvbXBh dGlibC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUZyb20gMjM4ZjMxNWJi Y2ViZTlkNDE2OGI1ZDc1Y2ZmNGE5YWY3YjM4YmM3ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Ci1EYXRlOiBGcmks IDMgTWFyIDIwMjMgMTY6NTk6MTggKzA4MDAKLVN1YmplY3Q6IFtQQVRDSCA1MS83MF0gbmV0OiBz dG1tYWM6IHBsYXRmb3JtOiBBZGQgc25wcyxkd21hYy01LjIwIElQCi0gY29tcGF0aWJsZSBzdHJp bmcKLQotQWRkICJzbnBzLGR3bWFjLTUuMjAiIGNvbXBhdGlibGUgc3RyaW5nIGZvciA1LjIwIHZl cnNpb24gdGhhdCBjYW4gYXZvaWQKLXRvIGRlZmluZSBzb21lIHBsYXRmb3JtIGRhdGEgaW4gdGhl IGdsdWUgbGF5ZXIuCi0KLVNpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJu ZWxAZXNtaWwuZGs+Ci1TaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2 ZXRlY2guY29tPgotLS0tCi0gZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3Rt bWFjX3BsYXRmb3JtLmMgfCAzICsrLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWlj cm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMKLWluZGV4IDAwNDZhNGVlNmU2NC4uODA3ZWNhN2Vk ZjUzIDEwMDY0NAotLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3Rt bWFjX3BsYXRmb3JtLmMKLSsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L3N0bW1hY19wbGF0Zm9ybS5jCi1AQCAtNTE5LDcgKzUxOSw4IEBAIHN0bW1hY19wcm9iZV9jb25m aWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYykKLSAJaWYgKG9mX2Rl dmljZV9pc19jb21wYXRpYmxlKG5wLCAic25wcyxkd21hYy00LjAwIikgfHwKLSAJICAgIG9mX2Rl dmljZV9pc19jb21wYXRpYmxlKG5wLCAic25wcyxkd21hYy00LjEwYSIpIHx8Ci0gCSAgICBvZl9k ZXZpY2VfaXNfY29tcGF0aWJsZShucCwgInNucHMsZHdtYWMtNC4yMGEiKSB8fAotLQkgICAgb2Zf ZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzbnBzLGR3bWFjLTUuMTBhIikpIHsKLSsJICAgIG9m X2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAic25wcyxkd21hYy01LjEwYSIpIHx8Ci0rCSAgICBv Zl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgInNucHMsZHdtYWMtNS4yMCIpKSB7Ci0gCQlwbGF0 LT5oYXNfZ21hYzQgPSAxOwotIAkJcGxhdC0+aGFzX2dtYWMgPSAwOwotIAkJcGxhdC0+cG10ID0g MTsKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8w MDUyLWR0LWJpbmRpbmdzLW5ldC1zbnBzLWR3bWFjLUFkZC1hbi1vcHRpb25hbC1yZXNldHMtc2ku cGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1Mi1kdC1iaW5kaW5ncy1uZXQtc25w cy1kd21hYy1BZGQtYW4tb3B0aW9uYWwtcmVzZXRzLXNpLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA4YTQzMmMyMTk3MmJjLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bGludXg2LjIvcGF0Y2hlcy8wMDUyLWR0LWJpbmRpbmdzLW5ldC1zbnBzLWR3bWFjLUFkZC1hbi1v cHRpb25hbC1yZXNldHMtc2kucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1G cm9tIDRmNmE5YThhY2I5YjlkYTBmM2JlZTgwYzQ2ODAwZDc1OTNkYjg1MWQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29t PgotRGF0ZTogRnJpLCAzIE1hciAyMDIzIDE2OjU5OjE5ICswODAwCi1TdWJqZWN0OiBbUEFUQ0gg NTIvNzBdIGR0LWJpbmRpbmdzOiBuZXQ6IHNucHMsZHdtYWM6IEFkZCBhbiBvcHRpb25hbCByZXNl dHMKLSBzaW5nbGUgJ2FoYicKLQotQWNjb3JkaW5nIHRvOgotc3RtbWFjX3BsYXRmb3JtLmM6IHN0 bW1hY19wcm9iZV9jb25maWdfZHQKLXN0bW1hY19tYWluLmM6IHN0bW1hY19kdnJfcHJvYmUKLQot ZHdtYWMgY29udHJvbGxlciBtYXkgcmVxdWlyZSBvbmUgKHN0bW1hY2V0aCkgb3IgdHdvIChzdG1t YWNldGgrYWhiKQotcmVzZXQgc2lnbmFscywgYW5kIHRoZSBtYXhJdGVtcyBvZiByZXNldHMvcmVz ZXQtbmFtZXMgaXMgZ29pbmcgdG8gYmUgMi4KLQotU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxz YW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KLS0tLQotIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdz L25ldC9zbnBzLGR3bWFjLnlhbWwgICAgICAgIHwgMTQgKysrKysrKysrKy0tLS0KLSAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKLWlu ZGV4IGI0MTM1ZDUyOTdiNC4uODkwOTlhODg4ZjBiIDEwMDY0NAotLS0tIGEvRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKLSsrKyBiL0RvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sCi1AQCAtMTMzLDEy ICsxMzMsMTggQEAgcHJvcGVydGllczoKLSAgICAgICAgIC0gcHRwX3JlZgotIAotICAgcmVzZXRz OgotLSAgICBtYXhJdGVtczogMQotLSAgICBkZXNjcmlwdGlvbjoKLS0gICAgICBNQUMgUmVzZXQg c2lnbmFsLgotKyAgICBtaW5JdGVtczogMQotKyAgICBpdGVtczoKLSsgICAgICAtIGRlc2NyaXB0 aW9uOiBHTUFDIHN0bW1hY2V0aCByZXNldAotKyAgICAgIC0gZGVzY3JpcHRpb246IEFIQiByZXNl dAotIAotICAgcmVzZXQtbmFtZXM6Ci0tICAgIGNvbnN0OiBzdG1tYWNldGgKLSsgICAgbWluSXRl bXM6IDEKLSsgICAgbWF4SXRlbXM6IDIKLSsgICAgY29udGFpbnM6Ci0rICAgICAgZW51bToKLSsg ICAgICAgIC0gc3RtbWFjZXRoCi0rICAgICAgICAtIGFoYgotIAotICAgcG93ZXItZG9tYWluczoK LSAgICAgbWF4SXRlbXM6IDEKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlu dXg2LjIvcGF0Y2hlcy8wMDU0LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLWV0aGVybmV0 LWRldmljZS1ub2Rlcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU0LXJpc2N2 LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLWV0aGVybmV0LWRldmljZS1ub2Rlcy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU5YjI1NzU4YWQxMS4uMDAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1NC1yaXNjdi1kdHMtc3RhcmZpdmUtamg3 MTEwLUFkZC1ldGhlcm5ldC1kZXZpY2Utbm9kZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MjUgKzAsMCBAQAotRnJvbSA0NjM1NTgzMGEwMTBlMzBiMTFkMDJkYTkzOWQxYjcyMTRkZDBlNGUw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3Rh cmZpdmV0ZWNoLmNvbT4KLURhdGU6IEZyaSwgMyBNYXIgMjAyMyAxNjo1OToyMSArMDgwMAotU3Vi amVjdDogW1BBVENIIDU0LzcwXSByaXNjdjogZHRzOiBzdGFyZml2ZTogamg3MTEwOiBBZGQgZXRo ZXJuZXQgZGV2aWNlIG5vZGVzCi0KLUFkZCBKSDcxMTAgZXRoZXJuZXQgZGV2aWNlIG5vZGUgdG8g c3VwcG9ydCBnbWFjIGRyaXZlciBmb3IgdGhlIEpINzExMAotUklTQy1WIFNvQy4KLQotU2lnbmVk LW9mZi1ieTogWWFuaG9uZyBXYW5nIDx5YW5ob25nLndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KLVNp Z25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+Ci0tLS0K LSBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIHwgOTEgKysrKysrKysr KysrKysrKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKykKLQotZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kgYi9hcmNo L3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCi1pbmRleCAzNzI0YzJjOTAzNWEu LmIwZTg3MTk4ODA4YSAxMDA2NDQKLS0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUv amg3MTEwLmR0c2kKLSsrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0 c2kKLUBAIC0yMzQsNiArMjM0LDEzIEBAIGkyc3J4X2xyY2tfZXh0OiBpMnNyeC1scmNrLWV4dC1j bG9jayB7Ci0gCQkjY2xvY2stY2VsbHMgPSA8MD47Ci0gCX07Ci0gCi0rCXN0bW1hY19heGlfc2V0 dXA6IHN0bW1hYy1heGktY29uZmlnIHsKLSsJCXNucHMsbHBpX2VuOwotKwkJc25wcyx3cl9vc3Jf bG10ID0gPDQ+OwotKwkJc25wcyxyZF9vc3JfbG10ID0gPDQ+OwotKwkJc25wcyxibGVuID0gPDI1 NiAxMjggNjQgMzIgMCAwIDA+OwotKwl9OwotKwotIAl0ZG1fZXh0OiB0ZG0tZXh0LWNsb2NrIHsK LSAJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOwotIAkJY2xvY2stb3V0cHV0LW5hbWVzID0g InRkbV9leHQiOwotQEAgLTY1OCw1ICs2NjUsODkgQEAgbW1jMTogbW1jQDE2MDIwMDAwIHsKLSAJ CQlzdGFyZml2ZSxzeXNyZWcgPSA8JnN5c19zeXNjb24gMHg5YyAweDEgMHgzZT47Ci0gCQkJc3Rh dHVzID0gImRpc2FibGVkIjsKLSAJCX07Ci0rCi0rICAgICAgICAgICAgICAgZ21hYzA6IGV0aGVy bmV0QDE2MDMwMDAwIHsKLSsgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAic3Rh cmZpdmUsamg3MTEwLWR3bWFjIiwgInNucHMsZHdtYWMtNS4yMCI7Ci0rICAgICAgICAgICAgICAg ICAgICAgICByZWcgPSA8MHgwIDB4MTYwMzAwMDAgMHgwIDB4MTAwMDA+OwotKyAgICAgICAgICAg ICAgICAgICAgICAgY2xvY2tzID0gPCZhb25jcmcgSkg3MTEwX0FPTkNMS19HTUFDMF9BWEk+LAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZhb25jcmcgSkg3MTEwX0FPTkNMS19H TUFDMF9BSEI+LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3 MTEwX1NZU0NMS19HTUFDMF9QVFA+LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PCZhb25jcmcgSkg3MTEwX0FPTkNMS19HTUFDMF9UWF9JTlY+LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMF9HVFhDPjsKLSsgICAg ICAgICAgICAgICAgICAgICAgIGNsb2NrLW5hbWVzID0gInN0bW1hY2V0aCIsICJwY2xrIiwgInB0 cF9yZWYiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHgiLCAiZ3R4 IjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0cyA9IDwmYW9uY3JnIEpINzExMF9BT05S U1RfR01BQzBfQVhJPiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwmYW9uY3Jn IEpINzExMF9BT05SU1RfR01BQzBfQUhCPjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0 LW5hbWVzID0gInN0bW1hY2V0aCIsICJhaGIiOwotKyAgICAgICAgICAgICAgICAgICAgICAgaW50 ZXJydXB0cyA9IDw3PiwgPDY+LCA8NT47Ci0rICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1 cHQtbmFtZXMgPSAibWFjaXJxIiwgImV0aF93YWtlX2lycSIsICJldGhfbHBpIjsKLSsgICAgICAg ICAgICAgICAgICAgICAgIHBoeS1tb2RlID0gInJnbWlpLWlkIjsKLSsgICAgICAgICAgICAgICAg ICAgICAgIHNucHMsbXVsdGljYXN0LWZpbHRlci1iaW5zID0gPDY0PjsKLSsgICAgICAgICAgICAg ICAgICAgICAgIHNucHMscGVyZmVjdC1maWx0ZXItZW50cmllcyA9IDw4PjsKLSsgICAgICAgICAg ICAgICAgICAgICAgIHJ4LWZpZm8tZGVwdGggPSA8MjA0OD47Ci0rICAgICAgICAgICAgICAgICAg ICAgICB0eC1maWZvLWRlcHRoID0gPDIwNDg+OwotKyAgICAgICAgICAgICAgICAgICAgICAgc25w cyxmaXhlZC1idXJzdDsKLSsgICAgICAgICAgICAgICAgICAgICAgIHNucHMsbm8tcGJsLXg4Owot KyAgICAgICAgICAgICAgICAgICAgICAgc25wcyxmb3JjZV90aHJlc2hfZG1hX21vZGU7Ci0rICAg ICAgICAgICAgICAgICAgICAgICBzbnBzLGF4aS1jb25maWcgPSA8JnN0bW1hY19heGlfc2V0dXA+ OwotKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyx0c287Ci0rICAgICAgICAgICAgICAgICAg ICAgICBzbnBzLGVuLXR4LWxwaS1jbG9ja2dhdGluZzsKLSsgICAgICAgICAgICAgICAgICAgICAg IHNucHMsdHhwYmwgPSA8MTY+OwotKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyxyeHBibCA9 IDwxNj47Ci0rICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAiZGlzYWJsZWQiOwotKyAg ICAgICAgICAgICAgICAgICAgICAgcGh5LWhhbmRsZSA9IDwmcGh5MD47Ci0rCi0rICAgICAgICAg ICAgICAgICAgICAgICBtZGlvIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Fk ZHJlc3MtY2VsbHMgPSA8MT47Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzaXpl LWNlbGxzID0gPDA+OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxl ID0gInNucHMsZHdtYWMtbWRpbyI7Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBoeTA6IGV0aGVybmV0LXBoeUAwIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWcgPSA8MD47Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0r ICAgICAgICAgICAgICAgICAgICAgICB9OwotKyAgICAgICAgICAgICAgIH07Ci0rCi0rICAgICAg ICAgICAgICAgZ21hYzE6IGV0aGVybmV0QDE2MDQwMDAwIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWR3bWFjIiwgInNucHMsZHdtYWMtNS4y MCI7Ci0rICAgICAgICAgICAgICAgICAgICAgICByZWcgPSA8MHgwIDB4MTYwNDAwMDAgMHgwIDB4 MTAwMDA+OwotKyAgICAgICAgICAgICAgICAgICAgICAgY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19HTUFDMV9BWEk+LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZz eXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9BSEI+LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9QVFA+LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9UWF9JTlY+ LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NM S19HTUFDMV9HVFhDPjsKLSsgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLW5hbWVzID0gInN0 bW1hY2V0aCIsICJwY2xrIiwgInB0cF9yZWYiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAidHgiLCAiZ3R4IjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0cyA9 IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfR01BQzFfQVhJPiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfR01BQzFfQUhCPjsKLSsgICAgICAg ICAgICAgICAgICAgICAgIHJlc2V0LW5hbWVzID0gInN0bW1hY2V0aCIsICJhaGIiOwotKyAgICAg ICAgICAgICAgICAgICAgICAgaW50ZXJydXB0cyA9IDw3OD4sIDw3Nz4sIDw3Nj47Ci0rICAgICAg ICAgICAgICAgICAgICAgICBpbnRlcnJ1cHQtbmFtZXMgPSAibWFjaXJxIiwgImV0aF93YWtlX2ly cSIsICJldGhfbHBpIjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHBoeS1tb2RlID0gInJnbWlp LWlkIjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHNucHMsbXVsdGljYXN0LWZpbHRlci1iaW5z ID0gPDY0PjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHNucHMscGVyZmVjdC1maWx0ZXItZW50 cmllcyA9IDw4PjsKLSsgICAgICAgICAgICAgICAgICAgICAgIHJ4LWZpZm8tZGVwdGggPSA8MjA0 OD47Ci0rICAgICAgICAgICAgICAgICAgICAgICB0eC1maWZvLWRlcHRoID0gPDIwNDg+OwotKyAg ICAgICAgICAgICAgICAgICAgICAgc25wcyxmaXhlZC1idXJzdDsKLSsgICAgICAgICAgICAgICAg ICAgICAgIHNucHMsbm8tcGJsLXg4OwotKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyxmb3Jj ZV90aHJlc2hfZG1hX21vZGU7Ci0rICAgICAgICAgICAgICAgICAgICAgICBzbnBzLGF4aS1jb25m aWcgPSA8JnN0bW1hY19heGlfc2V0dXA+OwotKyAgICAgICAgICAgICAgICAgICAgICAgc25wcyx0 c287Ci0rICAgICAgICAgICAgICAgICAgICAgICBzbnBzLGVuLXR4LWxwaS1jbG9ja2dhdGluZzsK LSsgICAgICAgICAgICAgICAgICAgICAgIHNucHMsdHhwYmwgPSA8MTY+OwotKyAgICAgICAgICAg ICAgICAgICAgICAgc25wcyxyeHBibCA9IDwxNj47Ci0rICAgICAgICAgICAgICAgICAgICAgICBz dGF0dXMgPSAiZGlzYWJsZWQiOwotKyAgICAgICAgICAgICAgICAgICAgICAgcGh5LWhhbmRsZSA9 IDwmcGh5MT47Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICBtZGlvIHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICNzaXplLWNlbGxzID0gPDA+OwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wYXRpYmxlID0gInNucHMsZHdtYWMtbWRpbyI7Ci0rCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBoeTE6IGV0aGVybmV0LXBoeUAxIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWcgPSA8MD47Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH07Ci0rICAgICAgICAgICAgICAgICAgICAgICB9OwotKyAgICAg ICAgICAgICAgIH07Ci0gCX07Ci0gfTsKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGludXg2LjIvcGF0Y2hlcy8wMDU1LW5ldC1zdG1tYWMtQWRkLWdsdWUtbGF5ZXItZm9yLVN0 YXJGaXZlLUpINzExMC1Tb0MucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1NS1u ZXQtc3RtbWFjLUFkZC1nbHVlLWxheWVyLWZvci1TdGFyRml2ZS1KSDcxMTAtU29DLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2YxNTI3YjI3ZTFjLi4wMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU1LW5ldC1zdG1tYWMtQWRkLWdsdWUt bGF5ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx OTkgKzAsMCBAQAotRnJvbSBiZDEwNmRjOTIzNDgyZTljNmI4ZmM5NmUwNGVmMDNhYjNmMzdmNDdk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3Rh cmZpdmV0ZWNoLmNvbT4KLURhdGU6IEZyaSwgMyBNYXIgMjAyMyAxNjo1OToyMiArMDgwMAotU3Vi amVjdDogW1BBVENIIDU1LzcwXSBuZXQ6IHN0bW1hYzogQWRkIGdsdWUgbGF5ZXIgZm9yIFN0YXJG aXZlIEpINzExMCBTb0MKLQotVGhpcyBhZGRzIFN0YXJGaXZlIGR3bWFjIGRyaXZlciBzdXBwb3J0 IG9uIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29DLgotCi1Dby1kZXZlbG9wZWQtYnk6IEVtaWwgUmVu bmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Ci1TaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5l ciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgotU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxz YW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KLS0tLQotIE1BSU5UQUlORVJTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCi0gZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvS2NvbmZpZyAgIHwgIDEyICsrCi0gZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvTWFrZWZpbGUgIHwgICAxICsKLSAuLi4vZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvZHdtYWMtc3RhcmZpdmUuYyAgfCAxMjUgKysrKysrKysrKysrKysrKysrCi0gNCBmaWxlcyBj aGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jCi0KLWRpZmYgLS1naXQg YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCi1pbmRleCAzMTU2MGQxM2FmZWQuLjhmZjExMjE1 NmUxZiAxMDA2NDQKLS0tLSBhL01BSU5UQUlORVJTCi0rKysgYi9NQUlOVEFJTkVSUwotQEAgLTE5 OTE1LDYgKzE5OTE1LDcgQEAgU1RBUkZJVkUgRFdNQUMgR0xVRSBMQVlFUgotIE06CUVtaWwgUmVu bmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Ci0gTToJU2FtaW4gR3VvIDxzYW1pbi5ndW9A c3RhcmZpdmV0ZWNoLmNvbT4KLSBTOglNYWludGFpbmVkCi0rRjoJRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL25ldC9kd21hYy1zdGFyZml2ZS5jCi0gRjoJRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbAotIAotIFNU QVJGSVZFIEpINzFYMCBDTE9DSyBEUklWRVJTCi1kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWlj cm8vc3RtbWFjL0tjb25maWcKLWluZGV4IGY3NzUxMWZlNGU4Ny4uNDdmYmNjZWY5ZDA0IDEwMDY0 NAotLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZwotKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZwotQEAgLTE2NSw2 ICsxNjUsMTggQEAgY29uZmlnIERXTUFDX1NPQ0ZQR0EKLSAJICBmb3IgdGhlIHN0bW1hYyBkZXZp Y2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvcgotIAkgIGFycmlhNSBhbmQgY3ljbG9u ZTUgRlBHQSBTb0NzLgotIAotK2NvbmZpZyBEV01BQ19TVEFSRklWRQotKwl0cmlzdGF0ZSAiU3Rh ckZpdmUgZHdtYWMgc3VwcG9ydCIKLSsJZGVwZW5kcyBvbiBPRiAgJiYgKEFSQ0hfU1RBUkZJVkUg fHwgQ09NUElMRV9URVNUKQotKwlkZXBlbmRzIG9uIFNUTU1BQ19FVEgKLSsJZGVmYXVsdCBBUkNI X1NUQVJGSVZFCi0rCWhlbHAKLSsJICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVycyBv biBTdGFyRml2ZSBSSVNDLVYgU29DcwotKwotKwkgIFRoaXMgc2VsZWN0cyB0aGUgU3RhckZpdmUg cGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvcgotKwkgIHRoZSBzdG1tYWMg ZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgU3RhckZpdmUgSkg3MTEwCi0r CSAgZXRoZXJuZXQgY29udHJvbGxlci4KLSsKLSBjb25maWcgRFdNQUNfU1RJCi0gCXRyaXN0YXRl ICJTVGkgR01BQyBzdXBwb3J0IgotIAlkZWZhdWx0IEFSQ0hfU1RJCi1kaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQotaW5kZXggMDU3ZTRiYWI1YzA4Li44NzM4 ZmRiYjRiMmQgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1h Yy9NYWtlZmlsZQotKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFr ZWZpbGUKLUBAIC0yMyw2ICsyMyw3IEBAIG9iai0kKENPTkZJR19EV01BQ19PWE5BUykJKz0gZHdt YWMtb3huYXMubwotIG9iai0kKENPTkZJR19EV01BQ19RQ09NX0VUSFFPUykJKz0gZHdtYWMtcWNv bS1ldGhxb3MubwotIG9iai0kKENPTkZJR19EV01BQ19ST0NLQ0hJUCkJKz0gZHdtYWMtcmsubwot IG9iai0kKENPTkZJR19EV01BQ19TT0NGUEdBKQkrPSBkd21hYy1hbHRyLXNvY2ZwZ2EubwotK29i ai0kKENPTkZJR19EV01BQ19TVEFSRklWRSkJKz0gZHdtYWMtc3RhcmZpdmUubwotIG9iai0kKENP TkZJR19EV01BQ19TVEkpCQkrPSBkd21hYy1zdGkubwotIG9iai0kKENPTkZJR19EV01BQ19TVE0z MikJKz0gZHdtYWMtc3RtMzIubwotIG9iai0kKENPTkZJR19EV01BQ19TVU5YSSkJKz0gZHdtYWMt c3VueGkubwotZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFj L2R3bWFjLXN0YXJmaXZlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9k d21hYy1zdGFyZml2ZS5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAw Li41NjYzNzgzMDZmNjcKLS0tLSAvZGV2L251bGwKLSsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKLUBAIC0wLDAgKzEsMTI1IEBACi0rLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCi0rLyoKLSsgKiBTdGFyRml2ZSBEV01B QyBwbGF0Zm9ybSBkcml2ZXIKLSsgKgotKyAqIENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBU ZWNobm9sb2d5IENvLiwgTHRkLgotKyAqIENvcHlyaWdodCAoQykgMjAyMiBFbWlsIFJlbm5lciBC ZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgotKyAqCi0rICovCi0rCi0rI2luY2x1ZGUgPGxpbnV4 L29mX2RldmljZS5oPgotKwotKyNpbmNsdWRlICJzdG1tYWNfcGxhdGZvcm0uaCIKLSsKLStzdHJ1 Y3Qgc3RhcmZpdmVfZHdtYWMgewotKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0rCXN0cnVjdCBjbGsg KmNsa190eDsKLSsJc3RydWN0IGNsayAqY2xrX2d0eDsKLSsJYm9vbCB0eF91c2VfcmdtaWlfcnhp bl9jbGs7Ci0rfTsKLSsKLStzdGF0aWMgdm9pZCBzdGFyZml2ZV9ldGhfZml4X21hY19zcGVlZCh2 b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgc3BlZWQpCi0rewotKwlzdHJ1Y3Qgc3RhcmZpdmVfZHdt YWMgKmR3bWFjID0gcHJpdjsKLSsJdW5zaWduZWQgbG9uZyByYXRlOwotKwlpbnQgZXJyOwotKwot KwkvKiBHZW5lcmFsbHksIHRoZSByZ21paV90eCBjbG9jayBpcyBwcm92aWRlZCBieSB0aGUgaW50 ZXJuYWwgY2xvY2ssCi0rCSAqIHdoaWNoIG5lZWRzIHRvIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5n IGNsb2NrIGZyZXF1ZW5jeSBhY2NvcmRpbmcKLSsJICogdG8gZGlmZmVyZW50IHNwZWVkcy4gSWYg dGhlIHJnbWlpX3R4IGNsb2NrIGlzIHByb3ZpZGVkIGJ5IHRoZQotKwkgKiBleHRlcm5hbCByZ21p aV9yeGluLCB0aGVyZSBpcyBubyBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgY2xvY2sKLSsJICogaW50 ZXJuYWxseSwgYmVjYXVzZSByZ21paV9yeGluIHdpbGwgYmUgYWRhcHRpdmVseSBhZGp1c3RlZC4K LSsJICovCi0rCWlmIChkd21hYy0+dHhfdXNlX3JnbWlpX3J4aW5fY2xrKQotKwkJcmV0dXJuOwot KwotKwlzd2l0Y2ggKHNwZWVkKSB7Ci0rCWNhc2UgU1BFRURfMTAwMDoKLSsJCXJhdGUgPSAxMjUw MDAwMDA7Ci0rCQlicmVhazsKLSsJY2FzZSBTUEVFRF8xMDA6Ci0rCQlyYXRlID0gMjUwMDAwMDA7 Ci0rCQlicmVhazsKLSsJY2FzZSBTUEVFRF8xMDoKLSsJCXJhdGUgPSAyNTAwMDAwOwotKwkJYnJl YWs7Ci0rCWRlZmF1bHQ6Ci0rCQlkZXZfZXJyKGR3bWFjLT5kZXYsICJpbnZhbGlkIHNwZWVkICV1 XG4iLCBzcGVlZCk7Ci0rCQlicmVhazsKLSsJfQotKwotKwllcnIgPSBjbGtfc2V0X3JhdGUoZHdt YWMtPmNsa190eCwgcmF0ZSk7Ci0rCWlmIChlcnIpCi0rCQlkZXZfZXJyKGR3bWFjLT5kZXYsICJm YWlsZWQgdG8gc2V0IHR4IHJhdGUgJWx1XG4iLCByYXRlKTsKLSt9Ci0rCi0rc3RhdGljIGludCBz dGFyZml2ZV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotK3sKLSsJ c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDsKLSsJc3RydWN0IHN0bW1hY19y ZXNvdXJjZXMgc3RtbWFjX3JlczsKLSsJc3RydWN0IHN0YXJmaXZlX2R3bWFjICpkd21hYzsKLSsJ aW50IGVycjsKLSsKLSsJZXJyID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwg JnN0bW1hY19yZXMpOwotKwlpZiAoZXJyKQotKwkJcmV0dXJuIGVycjsKLSsKLSsJcGxhdF9kYXQg PSBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTsKLSsJaWYgKElT X0VSUihwbGF0X2RhdCkpIHsKLSsJCWRldl9lcnIoJnBkZXYtPmRldiwgImR0IGNvbmZpZ3VyYXRp b24gZmFpbGVkXG4iKTsKLSsJCXJldHVybiBQVFJfRVJSKHBsYXRfZGF0KTsKLSsJfQotKwotKwlk d21hYyA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmR3bWFjKSwgR0ZQX0tFUk5F TCk7Ci0rCWlmICghZHdtYWMpCi0rCQlyZXR1cm4gLUVOT01FTTsKLSsKLSsJZHdtYWMtPmNsa190 eCA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZwZGV2LT5kZXYsICJ0eCIpOwotKwlpZiAoSVNfRVJS KGR3bWFjLT5jbGtfdHgpKQotKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRS X0VSUihkd21hYy0+Y2xrX3R4KSwKLSsJCQkJICAgICJlcnJvciBnZXR0aW5nIHR4IGNsb2NrXG4i KTsKLSsKLSsJZHdtYWMtPmNsa19ndHggPSBkZXZtX2Nsa19nZXRfZW5hYmxlZCgmcGRldi0+ZGV2 LCAiZ3R4Iik7Ci0rCWlmIChJU19FUlIoZHdtYWMtPmNsa19ndHgpKQotKwkJcmV0dXJuIGRldl9l cnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihkd21hYy0+Y2xrX2d0eCksCi0rCQkJCSAgICAi ZXJyb3IgZ2V0dGluZyBndHggY2xvY2tcbiIpOwotKwotKwlpZiAoZGV2aWNlX3Byb3BlcnR5X3Jl YWRfYm9vbCgmcGRldi0+ZGV2LCAic3RhcmZpdmUsdHgtdXNlLXJnbWlpLWNsayIpKQotKwkJZHdt YWMtPnR4X3VzZV9yZ21paV9yeGluX2NsayA9IHRydWU7Ci0rCi0rCWR3bWFjLT5kZXYgPSAmcGRl di0+ZGV2OwotKwlwbGF0X2RhdC0+Zml4X21hY19zcGVlZCA9IHN0YXJmaXZlX2V0aF9maXhfbWFj X3NwZWVkOwotKwlwbGF0X2RhdC0+aW5pdCA9IE5VTEw7Ci0rCXBsYXRfZGF0LT5ic3BfcHJpdiA9 IGR3bWFjOwotKwlwbGF0X2RhdC0+ZG1hX2NmZy0+ZGNoZSA9IHRydWU7Ci0rCi0rCWVyciA9IHN0 bW1hY19kdnJfcHJvYmUoJnBkZXYtPmRldiwgcGxhdF9kYXQsICZzdG1tYWNfcmVzKTsKLSsJaWYg KGVycikgewotKwkJc3RtbWFjX3JlbW92ZV9jb25maWdfZHQocGRldiwgcGxhdF9kYXQpOwotKwkJ cmV0dXJuIGVycjsKLSsJfQotKwotKwlyZXR1cm4gMDsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IHN0 cnVjdCBvZl9kZXZpY2VfaWQgc3RhcmZpdmVfZHdtYWNfbWF0Y2hbXSA9IHsKLSsJeyAuY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtZHdtYWMiCX0sCi0rCXsgLyogc2VudGluZWwgKi8gfQot K307Ci0rTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RhcmZpdmVfZHdtYWNfbWF0Y2gpOwotKwot K3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN0YXJmaXZlX2R3bWFjX2RyaXZlciA9IHsK LSsJLnByb2JlICA9IHN0YXJmaXZlX2R3bWFjX3Byb2JlLAotKwkucmVtb3ZlID0gc3RtbWFjX3Bs dGZyX3JlbW92ZSwKLSsJLmRyaXZlciA9IHsKLSsJCS5uYW1lID0gInN0YXJmaXZlLWR3bWFjIiwK LSsJCS5wbSA9ICZzdG1tYWNfcGx0ZnJfcG1fb3BzLAotKwkJLm9mX21hdGNoX3RhYmxlID0gc3Rh cmZpdmVfZHdtYWNfbWF0Y2gsCi0rCX0sCi0rfTsKLSttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0 YXJmaXZlX2R3bWFjX2RyaXZlcik7Ci0rCi0rTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotK01PRFVM RV9ERVNDUklQVElPTigiU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyIik7Ci0rTU9EVUxF X0FVVEhPUigiRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4iKTsKLStNT0RV TEVfQVVUSE9SKCJTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPiIpOwotLS0g Ci0yLjM5LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTYtZHQt YmluZGluZ3MtbmV0LXN0YXJmaXZlLWpoNzExMC1kd21hYy1BZGQtc3RhcmZpdmUtcy5wYXRjaCBi L3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU2LWR0LWJpbmRpbmdzLW5ldC1zdGFyZml2ZS1q aDcxMTAtZHdtYWMtQWRkLXN0YXJmaXZlLXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDJkNzZhNDc1NjBhZDAuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9saW51eDYu Mi9wYXRjaGVzLzAwNTYtZHQtYmluZGluZ3MtbmV0LXN0YXJmaXZlLWpoNzExMC1kd21hYy1BZGQt c3RhcmZpdmUtcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLUZyb20gOGQ1 MzAwNDU3MWRhYTMwMDQ0YWE4M2IwZmE4MDY3NjJlYTYyOGIxYiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+Ci1EYXRl OiBGcmksIDMgTWFyIDIwMjMgMTY6NTk6MjMgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSCA1Ni83MF0g ZHQtYmluZGluZ3M6IG5ldDogc3RhcmZpdmUsamg3MTEwLWR3bWFjOiBBZGQKLSBzdGFyZml2ZSxz eXNjb24KLQotQSBwaGFuZGxlIHRvIHN5c2NvbiB3aXRoIHR3byBhcmd1bWVudHMgdGhhdCBjb25m aWd1cmUgcGh5IG1vZGUuCi0KLVNpZ25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0 YXJmaXZldGVjaC5jb20+Ci0tLS0KLSAuLi4vYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1k d21hYy55YW1sICAgICAgICAgfCAxMyArKysrKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDEz IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sCi1pbmRleCBl YjA3NjdkYTgzNGEuLmNkMzEzY2E4YjhjZiAxMDA2NDQKLS0tLSBhL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwKLSsrKyBiL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFj LnlhbWwKLUBAIC01NCw2ICs1NCwxOCBAQCBwcm9wZXJ0aWVzOgotICAgICAgIC0gY29uc3Q6IHN0 bW1hY2V0aAotICAgICAgIC0gY29uc3Q6IGFoYgotIAotKyAgc3RhcmZpdmUsc3lzY29uOgotKyAg ICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlLWFycmF5Ci0r ICAgIGl0ZW1zOgotKyAgICAgIC0gaXRlbXM6Ci0rICAgICAgICAgIC0gZGVzY3JpcHRpb246IHBo YW5kbGUgdG8gc3lzY29uIHRoYXQgY29uZmlndXJlcyBwaHkgbW9kZQotKyAgICAgICAgICAtIGRl c2NyaXB0aW9uOiBPZmZzZXQgb2YgcGh5IG1vZGUgc2VsZWN0aW9uCi0rICAgICAgICAgIC0gZGVz Y3JpcHRpb246IE1hc2sgb2YgcGh5IG1vZGUgc2VsZWN0aW9uCi0rICAgIGRlc2NyaXB0aW9uOgot KyAgICAgIEEgcGhhbmRsZSB0byBzeXNjb24gd2l0aCB0d28gYXJndW1lbnRzIHRoYXQgY29uZmln dXJlIHBoeSBtb2RlLgotKyAgICAgIFRoZSBhcmd1bWVudCBvbmUgaXMgdGhlIG9mZnNldCBvZiBw aHkgbW9kZSBzZWxlY3Rpb24sIHRoZQotKyAgICAgIGFyZ3VtZW50IHR3byBpcyB0aGUgbWFzayBv ZiBwaHkgbW9kZSBzZWxlY3Rpb24uCi0rCi0gYWxsT2Y6Ci0gICAtICRyZWY6IHNucHMsZHdtYWMu eWFtbCMKLSAKLUBAIC05Miw2ICsxMDQsNyBAQCBleGFtcGxlczoKLSAgICAgICAgIHNucHMsZW4t dHgtbHBpLWNsb2NrZ2F0aW5nOwotICAgICAgICAgc25wcyx0eHBibCA9IDwxNj47Ci0gICAgICAg ICBzbnBzLHJ4cGJsID0gPDE2PjsKLSsgICAgICAgIHN0YXJmaXZlLHN5c2NvbiA9IDwmYW9uX3N5 c2NvbiAweGMgMHgxYzAwMDA+OwotICAgICAgICAgcGh5LWhhbmRsZSA9IDwmcGh5MD47Ci0gCi0g ICAgICAgICBtZGlvIHsKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2 LjIvcGF0Y2hlcy8wMDU3LW5ldC1zdG1tYWMtc3RhcmZpdmVfZG1hYy1BZGQtcGh5LWludGVyZmFj ZS1zZXR0aW5ncy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU3LW5ldC1zdG1t YWMtc3RhcmZpdmVfZG1hYy1BZGQtcGh5LWludGVyZmFjZS1zZXR0aW5ncy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q2MDQ1NjA2NTY2NS4uMDAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1Ny1uZXQtc3RtbWFjLXN0YXJmaXZlX2RtYWMt QWRkLXBoeS1pbnRlcmZhY2Utc2V0dGluZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NyAr MCwwIEBACi1Gcm9tIDdmZTA3ZTNhMGQ4MWJhYmY2NzY3MmVmNDI4NzU2YzMwOThmMTJhMjIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2 ZXRlY2guY29tPgotRGF0ZTogRnJpLCAzIE1hciAyMDIzIDE2OjU5OjI0ICswODAwCi1TdWJqZWN0 OiBbUEFUQ0ggNTcvNzBdIG5ldDogc3RtbWFjOiBzdGFyZml2ZV9kbWFjOiBBZGQgcGh5IGludGVy ZmFjZSBzZXR0aW5ncwotCi1kd21hYyBzdXBwb3J0cyBtdWx0aXBsZSBtb2Rlc3MuIFdoZW4gd29y a2luZyB1bmRlciBybWlpIGFuZCByZ21paSwKLXlvdSBuZWVkIHRvIHNldCBkaWZmZXJlbnQgcGh5 IGludGVyZmFjZXMuCi0KLUFjY29yZGluZyB0byB0aGUgZHdtYWMgZG9jdW1lbnQsIHdoZW4gd29y a2luZyBpbiBybWlpLCBpdCBuZWVkcyB0byBiZQotc2V0IHRvIDB4NCwgYW5kIHJnbWlpIG5lZWRz IHRvIGJlIHNldCB0byAweDEuCi0KLVRoZSBwaHkgaW50ZXJmYWNlIG5lZWRzIHRvIGJlIHNldCBp biBzeXNjb24sIHRoZSBmb3JtYXQgaXMgYXMgZm9sbG93czoKLXN0YXJmaXZlLHN5c2NvbjogPCZz eXNjb24sIG9mZnNldCwgbWFzaz4KLQotU2lnbmVkLW9mZi1ieTogU2FtaW4gR3VvIDxzYW1pbi5n dW9Ac3RhcmZpdmV0ZWNoLmNvbT4KLS0tLQotIC4uLi9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9k d21hYy1zdGFyZml2ZS5jICB8IDQ2ICsrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdl ZCwgNDYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0 bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMKLWluZGV4IDU2NjM3ODMwNmY2Ny4uNDBmZGQ3 MDM2MTI3IDEwMDY0NAotLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv ZHdtYWMtc3RhcmZpdmUuYwotKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvZHdtYWMtc3RhcmZpdmUuYwotQEAgLTcsMTAgKzcsMTUgQEAKLSAgKgotICAqLwotIAotKyNp bmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5o PgotKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KLSAKLSAjaW5jbHVkZSAic3RtbWFjX3BsYXRm b3JtLmgiCi0gCi0rI2RlZmluZSBNQUNQSFlDX1BIWV9JTkZUX1JNSUkJMHg0Ci0rI2RlZmluZSBN QUNQSFlDX1BIWV9JTkZUX1JHTUlJCTB4MQotKwotIHN0cnVjdCBzdGFyZml2ZV9kd21hYyB7Ci0g CXN0cnVjdCBkZXZpY2UgKmRldjsKLSAJc3RydWN0IGNsayAqY2xrX3R4OwotQEAgLTUzLDYgKzU4 LDQ2IEBAIHN0YXRpYyB2b2lkIHN0YXJmaXZlX2V0aF9maXhfbWFjX3NwZWVkKHZvaWQgKnByaXYs IHVuc2lnbmVkIGludCBzcGVlZCkKLSAJCWRldl9lcnIoZHdtYWMtPmRldiwgImZhaWxlZCB0byBz ZXQgdHggcmF0ZSAlbHVcbiIsIHJhdGUpOwotIH0KLSAKLStzdGF0aWMgaW50IHN0YXJmaXZlX2R3 bWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpCi0rewot KwlzdHJ1Y3Qgc3RhcmZpdmVfZHdtYWMgKmR3bWFjID0gcGxhdF9kYXQtPmJzcF9wcml2OwotKwlz dHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzIGFyZ3M7Ci0rCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKLSsJ dW5zaWduZWQgaW50IHJlZywgbWFzaywgbW9kZTsKLSsJaW50IGVycjsKLSsKLSsJc3dpdGNoIChw bGF0X2RhdC0+aW50ZXJmYWNlKSB7Ci0rCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JNSUk6Ci0r CQltb2RlID0gTUFDUEhZQ19QSFlfSU5GVF9STUlJOwotKwkJYnJlYWs7Ci0rCi0rCWNhc2UgUEhZ X0lOVEVSRkFDRV9NT0RFX1JHTUlJOgotKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9J RDoKLSsJCW1vZGUgPSBNQUNQSFlDX1BIWV9JTkZUX1JHTUlJOwotKwkJYnJlYWs7Ci0rCi0rCWRl ZmF1bHQ6Ci0rCQlkZXZfZXJyKGR3bWFjLT5kZXYsICJVbnN1cHBvcnRlZCBpbnRlcmZhY2UgJWRc biIsCi0rCQkJcGxhdF9kYXQtPmludGVyZmFjZSk7Ci0rCX0KLSsKLSsJZXJyID0gb2ZfcGFyc2Vf cGhhbmRsZV93aXRoX2ZpeGVkX2FyZ3MoZHdtYWMtPmRldi0+b2Zfbm9kZSwKLSsJCQkJCSAgICAg ICAic3RhcmZpdmUsc3lzY29uIiwgMiwgMCwgJmFyZ3MpOwotKwlpZiAoZXJyKSB7Ci0rCQlkZXZf ZGJnKGR3bWFjLT5kZXYsICJzeXNjb24gcmVnIG5vdCBmb3VuZFxuIik7Ci0rCQlyZXR1cm4gLUVJ TlZBTDsKLSsJfQotKwotKwlyZWcgPSBhcmdzLmFyZ3NbMF07Ci0rCW1hc2sgPSBhcmdzLmFyZ3Nb MV07Ci0rCXJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChhcmdzLm5wKTsKLSsJb2Zfbm9k ZV9wdXQoYXJncy5ucCk7Ci0rCWlmIChJU19FUlIocmVnbWFwKSkKLSsJCXJldHVybiBQVFJfRVJS KHJlZ21hcCk7Ci0rCi0rCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCByZWcsIG1h c2ssIG1vZGUgPDwgX19mZnMobWFzaykpOwotK30KLSsKLSBzdGF0aWMgaW50IHN0YXJmaXZlX2R3 bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi0gewotIAlzdHJ1Y3QgcGxh dF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0OwotQEAgLTkzLDYgKzEzOCw3IEBAIHN0YXRpYyBp bnQgc3RhcmZpdmVfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLSAJ cGxhdF9kYXQtPmJzcF9wcml2ID0gZHdtYWM7Ci0gCXBsYXRfZGF0LT5kbWFfY2ZnLT5kY2hlID0g dHJ1ZTsKLSAKLSsJc3RhcmZpdmVfZHdtYWNfc2V0X21vZGUocGxhdF9kYXQpOwotIAllcnIgPSBz dG1tYWNfZHZyX3Byb2JlKCZwZGV2LT5kZXYsIHBsYXRfZGF0LCAmc3RtbWFjX3Jlcyk7Ci0gCWlm IChlcnIpIHsKLSAJCXN0bW1hY19yZW1vdmVfY29uZmlnX2R0KHBkZXYsIHBsYXRfZGF0KTsKLS0t IAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDU4LXJp c2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi10by1zdXBwb3J0LXBoeS0ucGF0Y2gg Yi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA1OC1yaXNjdi1kdHMtc3RhcmZpdmUtamg3MTEw LUFkZC1zeXNjb24tdG8tc3VwcG9ydC1waHktLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA1NGZmMDFhMmI1YzgzLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGludXg2 LjIvcGF0Y2hlcy8wMDU4LXJpc2N2LWR0cy1zdGFyZml2ZS1qaDcxMTAtQWRkLXN5c2Nvbi10by1z dXBwb3J0LXBoeS0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIDdh MGJhYzk0MzZlNjliMzBmNWIzYWFhZGY4ZDJhZDg3ZDhkMDQ1NTkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgotRGF0 ZTogRnJpLCAzIE1hciAyMDIzIDE2OjU5OjI1ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggNTgvNzBd IHJpc2N2OiBkdHM6IHN0YXJmaXZlOiBqaDcxMTA6IEFkZCBzeXNjb24gdG8gc3VwcG9ydCBwaHkK LSBpbnRlcmZhY2Ugc2V0dGluZ3MKLQotVGhlIHBoeSBpbnRlcmZhY2UgbmVlZHMgdG8gYmUgc2V0 IGluIHN5c2NvbiwgdGhlIGZvcm1hdCBpcyBhcyBmb2xsb3dzOgotc3RhcmZpdmUsc3lzY29uOiA8 JnN5c2Nvbiwgb2Zmc2V0LCBtYXNrPgotCi1TaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWlu Lmd1b0BzdGFyZml2ZXRlY2guY29tPgotLS0tCi0gYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2 ZS9qaDcxMTAuZHRzaSB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0K LWRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpIGIv YXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQotaW5kZXggYjBlODcxOTg4 MDhhLi44YjczZDAxYzIyNmMgMTAwNjQ0Ci0tLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJm aXZlL2poNzExMC5kdHNpCi0rKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzEx MC5kdHNpCi1AQCAtNjk0LDYgKzY5NCw3IEBAIGdtYWMwOiBldGhlcm5ldEAxNjAzMDAwMCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICBzbnBzLGVuLXR4LWxwaS1jbG9ja2dhdGluZzsKLSAgICAg ICAgICAgICAgICAgICAgICAgIHNucHMsdHhwYmwgPSA8MTY+OwotICAgICAgICAgICAgICAgICAg ICAgICAgc25wcyxyeHBibCA9IDwxNj47Ci0rCQkgICAgICAgc3RhcmZpdmUsc3lzY29uID0gPCZh b25fc3lzY29uIDB4YyAweDFjMDAwMD47Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMg PSAiZGlzYWJsZWQiOwotICAgICAgICAgICAgICAgICAgICAgICAgcGh5LWhhbmRsZSA9IDwmcGh5 MD47Ci0gCi1AQCAtNzM2LDYgKzczNyw3IEBAIGdtYWMxOiBldGhlcm5ldEAxNjA0MDAwMCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICBzbnBzLGVuLXR4LWxwaS1jbG9ja2dhdGluZzsKLSAgICAg ICAgICAgICAgICAgICAgICAgIHNucHMsdHhwYmwgPSA8MTY+OwotICAgICAgICAgICAgICAgICAg ICAgICAgc25wcyxyeHBibCA9IDwxNj47Ci0rCQkgICAgICAgc3RhcmZpdmUsc3lzY29uID0gPCZz eXNfc3lzY29uIDB4OTAgMHgxYz47Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSAi ZGlzYWJsZWQiOwotICAgICAgICAgICAgICAgICAgICAgICAgcGh5LWhhbmRsZSA9IDwmcGh5MT47 Ci0gCi0tLSAKLTIuMzkuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMv MDA1OS1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjNiLUFkZC1nbWFjLXBoeS1z LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNTktcmlzY3YtZHRzLXN0YXJmaXZl LXZpc2lvbmZpdmUtMi12MS4zYi1BZGQtZ21hYy1waHktcy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggYmI4N2M2ZjE3YmRmNi4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2xpbnV4Ni4yL3BhdGNoZXMvMDA1OS1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYx LjNiLUFkZC1nbWFjLXBoeS1zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAot RnJvbSAxMWY5NTEzYjA0NzVmYzdjODQxYTRmNTBlYTE1MjA3YTkwZTQ1OTQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNv bT4KLURhdGU6IEZyaSwgMyBNYXIgMjAyMyAxNjo1OToyNiArMDgwMAotU3ViamVjdDogW1BBVENI IDU5LzcwXSByaXNjdjogZHRzOiBzdGFyZml2ZTogdmlzaW9uZml2ZS0yLXYxLjNiOiBBZGQKLSBn bWFjK3BoeSdzIGRlbGF5IGNvbmZpZ3VyYXRpb24KLQotdjEuM0IgdXNlcyBtb3RvcmNvbW0gWVQ4 NTMxKHJnbWlpLWlkIHBoeSkgeDIsIG5lZWQgZGVsYXkgYW5kCi1pbnZlcnNlIGNvbmZpZ3VyYXRp b25zLgotCi1UaGUgdHhfY2xrIG9mIHYxLjNCIHVzZXMgYW4gZXh0ZXJuYWwgY2xvY2sgYW5kIG5l ZWRzIHRvIGJlCi1zd2l0Y2hlZCB0byBhbiBleHRlcm5hbCBjbG9jayBzb3VyY2UuCi0KLVNpZ25l ZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+Ci0tLS0KLSAu Li4vamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMgICAgfCAyNyArKysrKysr KysrKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKLQotZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lv bmZpdmUtMi12MS4zYi5kdHMgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1z dGFyZml2ZS12aXNpb25maXZlLTItdjEuM2IuZHRzCi1pbmRleCA5MjMwY2MzZDg5NDYuLjMyZmFl MGRlOWE0NCAxMDA2NDQKLS0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEw LXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMKLSsrKyBiL2FyY2gvcmlzY3YvYm9vdC9k dHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMKLUBAIC0x MSwzICsxMSwzMCBAQCAvIHsKLSAJbW9kZWwgPSAiU3RhckZpdmUgVmlzaW9uRml2ZSAyIHYxLjNC IjsKLSAJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSx2aXNpb25maXZlLTItdjEuM2IiLCAic3RhcmZp dmUsamg3MTEwIjsKLSB9OwotKwotKyZnbWFjMCB7Ci0rCXN0YXJmaXZlLHR4LXVzZS1yZ21paS1j bGs7Ci0rCWFzc2lnbmVkLWNsb2NrcyA9IDwmYW9uY3JnIEpINzExMF9BT05DTEtfR01BQzBfVFg+ OwotKwlhc3NpZ25lZC1jbG9jay1wYXJlbnRzID0gPCZhb25jcmcgSkg3MTEwX0FPTkNMS19HTUFD MF9STUlJX1JUWD47Ci0rfTsKLSsKLSsmZ21hYzEgewotKwlzdGFyZml2ZSx0eC11c2UtcmdtaWkt Y2xrOwotKwlhc3NpZ25lZC1jbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1RY PjsKLSsJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfR01B QzFfUk1JSV9SVFg+OwotK307Ci0rCi0rJnBoeTAgewotKwltb3RvcmNvbW0sdHgtY2xrLWFkai1l bmFibGVkOwotKwltb3RvcmNvbW0sdHgtY2xrLTEwMC1pbnZlcnRlZDsKLSsJbW90b3Jjb21tLHR4 LWNsay0xMDAwLWludmVydGVkOwotKwlyeC1pbnRlcm5hbC1kZWxheS1wcyA9IDwxOTAwPjsKLSsJ dHgtaW50ZXJuYWwtZGVsYXktcHMgPSA8MTUwMD47Ci0rfTsKLSsKLSsmcGh5MSB7Ci0rCW1vdG9y Y29tbSx0eC1jbGstYWRqLWVuYWJsZWQ7Ci0rCW1vdG9yY29tbSx0eC1jbGstMTAwLWludmVydGVk OwotKwlyeC1pbnRlcm5hbC1kZWxheS1wcyA9IDwwPjsKLSsJdHgtaW50ZXJuYWwtZGVsYXktcHMg PSA8MD47Ci0rfTsKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIv cGF0Y2hlcy8wMDYwLXJpc2N2LWR0cy1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuMmEtQWRkLWdt YWMtcGh5LXMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2MC1yaXNjdi1kdHMt c3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjJhLUFkZC1nbWFjLXBoeS1zLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjQzNDFmOGE0NzZjLi4wMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYwLXJpc2N2LWR0cy1zdGFyZml2ZS12aXNpb25m aXZlLTItdjEuMmEtQWRkLWdtYWMtcGh5LXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MSAr MCwwIEBACi1Gcm9tIGRlOTQ2MjVkMGI3N2M3MTdjZTc5NGE4MGM0MTU0MWJiOTViMGQyMWIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2 ZXRlY2guY29tPgotRGF0ZTogRnJpLCAzIE1hciAyMDIzIDE2OjU5OjI3ICswODAwCi1TdWJqZWN0 OiBbUEFUQ0ggNjAvNzBdIHJpc2N2OiBkdHM6IHN0YXJmaXZlOiB2aXNpb25maXZlLTItdjEuMmE6 IEFkZAotIGdtYWMrcGh5J3MgZGVsYXkgY29uZmlndXJhdGlvbgotCi12MS4yQSBnbWFjMCB1c2Vz IG1vdG9yY29tbSBZVDg1MzEocmdtaWktaWQpIFBIWSwgYW5kIG5lZWRzIGRlbGF5Ci1jb25maWd1 cmF0aW9ucy4KLQotdjEuMkEgZ21hYzEgdXNlcyBtb3RvcmNvbW0gWVQ4NTEyKHJtaWkpIFBIWSwg YW5kIG5lZWRzIHRvCi1zd2l0Y2ggcnggYW5kIHJ4IHRvIGV4dGVybmFsIGNsb2NrIHNvdXJjZXMu Ci0KLVNpZ25lZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+ Ci0tLS0KLSAuLi4vc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4yYS5k dHMgfCAxMyArKysrKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKykK LQotZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJm aXZlLXZpc2lvbmZpdmUtMi12MS4yYS5kdHMgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZl L2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuMmEuZHRzCi1pbmRleCA0YWYzMzAwZjNj ZjMuLjIwNWExM2Q4YzhiMSAxMDA2NDQKLS0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZp dmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4yYS5kdHMKLSsrKyBiL2FyY2gvcmlz Y3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4yYS5k dHMKLUBAIC0xMSwzICsxMSwxNiBAQCAvIHsKLSAJbW9kZWwgPSAiU3RhckZpdmUgVmlzaW9uRml2 ZSAyIHYxLjJBIjsKLSAJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSx2aXNpb25maXZlLTItdjEuMmEi LCAic3RhcmZpdmUsamg3MTEwIjsKLSB9OwotKwotKyZnbWFjMSB7Ci0rCXBoeS1tb2RlID0gInJt aWkiOwotKwlhc3NpZ25lZC1jbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1RY PiwKLSsJCQkgIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfR01BQzFfUlg+OwotKwlhc3NpZ25lZC1j bG9jay1wYXJlbnRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9STUlJX1JUWD4sCi0r CQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1JNSUlfUlRYPjsKLSt9OwotKwotKyZw aHkwIHsKLSsJcngtaW50ZXJuYWwtZGVsYXktcHMgPSA8MTkwMD47Ci0rCXR4LWludGVybmFsLWRl bGF5LXBzID0gPDEzNTA+OwotK307Ci0tLSAKLTIuMzkuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpbnV4Ni4yL3BhdGNoZXMvMDA2MS1yaXNjdi1kdHMtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLUVu YWJsZS1nbWFjLWRldmljZS10LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjEt cmlzY3YtZHRzLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi1FbmFibGUtZ21hYy1kZXZpY2UtdC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU5MWQwNTJjOTI0Ny4uMDAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2MS1yaXNjdi1kdHMtc3RhcmZp dmUtdmlzaW9uZml2ZS0yLUVuYWJsZS1nbWFjLWRldmljZS10LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDUgKzAsMCBAQAotRnJvbSA4NjhjOTNlNjAzNWIxYTUxMWZlMWQxMDVkODhiODZkNjZi ZDVhMmIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogWWFuaG9uZyBXYW5nIDx5YW5o b25nLndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KLURhdGU6IEZyaSwgMyBNYXIgMjAyMyAxNjo1OToy OCArMDgwMAotU3ViamVjdDogW1BBVENIIDYxLzcwXSByaXNjdjogZHRzOiBzdGFyZml2ZTogdmlz aW9uZml2ZSAyOiBFbmFibGUgZ21hYyBkZXZpY2UKLSB0cmVlIG5vZGUKLQotVXBkYXRlIGdtYWMg ZGV2aWNlIHRyZWUgbm9kZSBzdGF0dXMgdG8gb2theS4KLQotU2lnbmVkLW9mZi1ieTogWWFuaG9u ZyBXYW5nIDx5YW5ob25nLndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KLVNpZ25lZC1vZmYtYnk6IFNh bWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+Ci0tLS0KLSAuLi4vZHRzL3N0YXJm aXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaSAgICAgfCAxMCArKysrKysrKysr Ci0gMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2FyY2gv cmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi5kdHNp IGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2 ZS0yLmR0c2kKLWluZGV4IDI5NWFmNzNiMGQwOC4uM2MzZGMyYTk0ZmY2IDEwMDY0NAotLS0tIGEv YXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0y LmR0c2kKLSsrKyBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZl LXZpc2lvbmZpdmUtMi5kdHNpCi1AQCAtMTIsNiArMTIsOCBAQAotIC8gewotIAlhbGlhc2VzIHsK LSAJCXNlcmlhbDAgPSAmdWFydDA7Ci0rCQlldGhlcm5ldDAgPSAmZ21hYzA7Ci0rCQlldGhlcm5l dDEgPSAmZ21hYzE7Ci0gCQlpMmMwID0gJmkyYzA7Ci0gCQlpMmMyID0gJmkyYzI7Ci0gCQlpMmM1 ID0gJmkyYzU7Ci1AQCAtMTIzLDYgKzEyNSwxNCBAQCAmdWFydDAgewotIAlzdGF0dXMgPSAib2th eSI7Ci0gfTsKLSAKLSsmZ21hYzAgewotKwlzdGF0dXMgPSAib2theSI7Ci0rfTsKLSsKLSsmZ21h YzEgewotKwlzdGF0dXMgPSAib2theSI7Ci0rfTsKLSsKLSAmaTJjMCB7Ci0gCWNsb2NrLWZyZXF1 ZW5jeSA9IDwxMDAwMDA+OwotIAlpMmMtc2RhLWhvbGQtdGltZS1ucyA9IDwzMDA+OwotLS0gCi0y LjM5LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjItZHQtYmlu ZGluZ3MtbmV0LUFkZC1zdXBwb3J0LVN0YXJGaXZlLWR3bWFjLnBhdGNoIGIvc3JjcGtncy9saW51 eDYuMi9wYXRjaGVzLzAwNjItZHQtYmluZGluZ3MtbmV0LUFkZC1zdXBwb3J0LVN0YXJGaXZlLWR3 bWFjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGMwODc3ZDVmZTAzLi4w MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYyLWR0LWJpbmRp bmdzLW5ldC1BZGQtc3VwcG9ydC1TdGFyRml2ZS1kd21hYy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMxICswLDAgQEAKLUZyb20gOTM0NTc1OGI4ZWMzMTAwN2JkMmNlNmYxMTZjMDE1NGIzZjBj MWM1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFlhbmhvbmcgV2FuZyA8eWFuaG9u Zy53YW5nQHN0YXJmaXZldGVjaC5jb20+Ci1EYXRlOiBXZWQsIDE4IEphbiAyMDIzIDE0OjE2OjU4 ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggNjIvNzBdIGR0LWJpbmRpbmdzOiBuZXQ6IEFkZCBzdXBw b3J0IFN0YXJGaXZlIGR3bWFjCi0KLUFkZCBkb2N1bWVudGF0aW9uIHRvIGRlc2NyaWJlIFN0YXJG aXZlIGR3bWFjIGRyaXZlcihHTUFDKS4KLQotU2lnbmVkLW9mZi1ieTogWWFuaG9uZyBXYW5nIDx5 YW5ob25nLndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KLS0tLQotIE1BSU5UQUlORVJTIHwgNSArKysr KwotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL01BSU5U QUlORVJTIGIvTUFJTlRBSU5FUlMKLWluZGV4IDhmZjExMjE1NmUxZi4uYjI3NDUxZmY5NWViIDEw MDY0NAotLS0tIGEvTUFJTlRBSU5FUlMKLSsrKyBiL01BSU5UQUlORVJTCi1AQCAtMTk5NzcsNiAr MTk5NzcsMTEgQEAgRjogICAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wb3dl ci9zdGFyZml2ZSoKLSBGOiAgICAgZHJpdmVycy9zb2Mvc3RhcmZpdmUvamg3MXh4X3BtdS5jCi0g RjogICAgIGluY2x1ZGUvZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZpdmUsamg3MTEwLXBtdS5oCi0g Ci0rU1RBUkZJVkUgRFdNQUMgR0xVRSBMQVlFUgotK006ICAgICBZYW5ob25nIFdhbmcgPHlhbmhv bmcud2FuZ0BzdGFyZml2ZXRlY2guY29tPgotK1M6ICAgICBNYWludGFpbmVkCi0rRjogICAgIERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFj LnlhbWwKLSsKLSBTVEFUSUMgQlJBTkNIL0NBTEwKLSBNOglQZXRlciBaaWpsc3RyYSA8cGV0ZXJ6 QGluZnJhZGVhZC5vcmc+Ci0gTToJSm9zaCBQb2ltYm9ldWYgPGpwb2ltYm9lQGtlcm5lbC5vcmc+ Ci0tLSAKLTIuMzkuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2 My1uZXQtc3RtbWFjLUFkZC1nbHVlLWxheWVyLWZvci1TdGFyRml2ZS1KSDcxMTAtU29Dcy5wYXRj aCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDYzLW5ldC1zdG1tYWMtQWRkLWdsdWUtbGF5 ZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA2MDBiOWM4MTY1MjVhLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGludXg2 LjIvcGF0Y2hlcy8wMDYzLW5ldC1zdG1tYWMtQWRkLWdsdWUtbGF5ZXItZm9yLVN0YXJGaXZlLUpI NzExMC1Tb0NzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkyICswLDAgQEAKLUZyb20gMWI1 YjA0MGE1ZWFlYzA5MWZkNDZiNjQ0NTlkNDgyODk3MWIxN2I2NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFlhbmhvbmcgV2FuZyA8eWFuaG9uZy53YW5nQHN0YXJmaXZldGVjaC5jb20+ Ci1EYXRlOiBXZWQsIDE4IEphbiAyMDIzIDE0OjE2OjU5ICswODAwCi1TdWJqZWN0OiBbUEFUQ0gg NjMvNzBdIG5ldDogc3RtbWFjOiBBZGQgZ2x1ZSBsYXllciBmb3IgU3RhckZpdmUgSkg3MTEwIFNv Q3MKLQotVGhpcyBhZGRzIFN0YXJGaXZlIGR3bWFjIGRyaXZlciBzdXBwb3J0IG9uIHRoZSBTdGFy Rml2ZSBKSDcxMTAgU29Dcy4KLQotU2lnbmVkLW9mZi1ieTogWWFuaG9uZyBXYW5nIDx5YW5ob25n LndhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KLUNvLWRldmVsb3BlZC1ieTogRW1pbCBSZW5uZXIgQmVy dGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KLVNpZ25lZC1vZmYtYnk6IEVtaWwgUmVubmVyIEJlcnRo aW5nIDxrZXJuZWxAZXNtaWwuZGs+Ci0tLS0KLSBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwotIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL0tjb25maWcgICB8ICAxMiArKwotIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL01ha2VmaWxlICB8ICAgMSArCi0gLi4uL3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJm aXZlLXBsYXQuYyAgICAgIHwgMTE4ICsrKysrKysrKysrKysrKysrKwotIDQgZmlsZXMgY2hhbmdl ZCwgMTMyIGluc2VydGlvbnMoKykKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUtcGxhdC5jCi0KLWRpZmYgLS1naXQg YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCi1pbmRleCBiMjc0NTFmZjk1ZWIuLmJlZDJjMzNi ZTUxNyAxMDA2NDQKLS0tLSBhL01BSU5UQUlORVJTCi0rKysgYi9NQUlOVEFJTkVSUwotQEAgLTE5 OTgwLDYgKzE5OTgwLDcgQEAgRjogICAgIGluY2x1ZGUvZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZp dmUsamg3MTEwLXBtdS5oCi0gU1RBUkZJVkUgRFdNQUMgR0xVRSBMQVlFUgotIE06ICAgICBZYW5o b25nIFdhbmcgPHlhbmhvbmcud2FuZ0BzdGFyZml2ZXRlY2guY29tPgotIFM6ICAgICBNYWludGFp bmVkCi0rRjogICAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHdtYWMt c3RhcmZpdmUtcGxhdC5jCi0gRjogICAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwKLSAKLSBTVEFUSUMgQlJBTkNIL0NBTEwK LWRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmln IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZwotaW5kZXggNDdm YmNjZWY5ZDA0Li45OWY2NzE2ZDZkYzkgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnCi0rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9LY29uZmlnCi1AQCAtMjU2LDYgKzI1NiwxOCBAQCBjb25maWcgRFdNQUNfVEVH UkEKLSAJICBsYXllciBvbiB0b3Agb2YgdGhlIHN0bW1hYyBkcml2ZXIgcmVxdWlyZWQgZm9yIHRo ZXNlIE5WSURJQSBUZWdyYSBTb0MKLSAJICBkZXZpY2VzLgotIAotK2NvbmZpZyBEV01BQ19TVEFS RklWRV9QTEFUCi0rCXRyaXN0YXRlICJTdGFyRml2ZSBkd21hYyBzdXBwb3J0IgotKwlkZXBlbmRz IG9uIE9GICYmIENPTU1PTl9DTEsKLSsJZGVwZW5kcyBvbiBTVE1NQUNfRVRICi0rCWRlZmF1bHQg U09DX1NUQVJGSVZFCi0rCWhlbHAKLSsJICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVy cyBvbiBTdGFyRml2ZSBSSVNDLVYgU29DcwotKwotKwkgIFRoaXMgc2VsZWN0cyB0aGUgU3RhckZp dmUgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvcgotKwkgIHRoZSBzdG1t YWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgU3RhckZpdmUgSkg3MTEw Ci0rCSAgZXRoZXJuZXQgY29udHJvbGxlci4KLSsKLSBjb25maWcgRFdNQUNfVklTQ09OVEkKLSAJ dHJpc3RhdGUgIlRvc2hpYmEgVmlzY29udGkgRFdNQUMgc3VwcG9ydCIKLSAJZGVmYXVsdCBBUkNI X1ZJU0NPTlRJCi1kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmls ZQotaW5kZXggODczOGZkYmI0YjJkLi41NzZkOWM1Zjc5NTQgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZQotKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUKLUBAIC0zMiw2ICszMiw3IEBAIG9iai0k KENPTkZJR19EV01BQ19EV0NfUU9TX0VUSCkJKz0gZHdtYWMtZHdjLXFvcy1ldGgubwotIG9iai0k KENPTkZJR19EV01BQ19JTlRFTF9QTEFUKQkrPSBkd21hYy1pbnRlbC1wbGF0Lm8KLSBvYmotJChD T05GSUdfRFdNQUNfR0VORVJJQykJKz0gZHdtYWMtZ2VuZXJpYy5vCi0gb2JqLSQoQ09ORklHX0RX TUFDX0lNWDgpCSs9IGR3bWFjLWlteC5vCi0rb2JqLSQoQ09ORklHX0RXTUFDX1NUQVJGSVZFX1BM QVQpCSs9IGR3bWFjLXN0YXJmaXZlLXBsYXQubwotIG9iai0kKENPTkZJR19EV01BQ19URUdSQSkJ Kz0gZHdtYWMtdGVncmEubwotIG9iai0kKENPTkZJR19EV01BQ19WSVNDT05USSkJKz0gZHdtYWMt dmlzY29udGkubwotIHN0bW1hYy1wbGF0Zm9ybS1vYmpzOj0gc3RtbWFjX3BsYXRmb3JtLm8KLWRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFy Zml2ZS1wbGF0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1z dGFyZml2ZS1wbGF0LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMDAu LmU0NDFkOTIwOTMzYQotLS0tIC9kZXYvbnVsbAotKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv c3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUtcGxhdC5jCi1AQCAtMCwwICsxLDExOCBAQAot Ky8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwotKy8qCi0rICogU3RhckZpdmUg RFdNQUMgcGxhdGZvcm0gZHJpdmVyCi0rICoKLSsgKiBDb3B5cmlnaHQoQykgMjAyMiBTdGFyRml2 ZSBUZWNobm9sb2d5IENvLiwgTHRkLgotKyAqCi0rICovCi0rCi0rI2luY2x1ZGUgPGxpbnV4L29m X2RldmljZS5oPgotKwotKyNpbmNsdWRlICJzdG1tYWNfcGxhdGZvcm0uaCIKLSsKLStzdHJ1Y3Qg c3RhcmZpdmVfZHdtYWMgewotKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0rCXN0cnVjdCBjbGsgKmNs a190eDsKLSsJc3RydWN0IGNsayAqY2xrX2d0eDsKLSsJc3RydWN0IGNsayAqY2xrX2d0eGM7Ci0r fTsKLSsKLStzdGF0aWMgdm9pZCBzdGFyZml2ZV9ldGhfcGxhdF9maXhfbWFjX3NwZWVkKHZvaWQg KnByaXYsIHVuc2lnbmVkIGludCBzcGVlZCkKLSt7Ci0rCXN0cnVjdCBzdGFyZml2ZV9kd21hYyAq ZHdtYWMgPSBwcml2OwotKwl1bnNpZ25lZCBsb25nIHJhdGU7Ci0rCWludCBlcnI7Ci0rCi0rCXJh dGUgPSBjbGtfZ2V0X3JhdGUoZHdtYWMtPmNsa19ndHgpOwotKwotKwlzd2l0Y2ggKHNwZWVkKSB7 Ci0rCWNhc2UgU1BFRURfMTAwMDoKLSsJCXJhdGUgPSAxMjUwMDAwMDA7Ci0rCQlicmVhazsKLSsJ Y2FzZSBTUEVFRF8xMDA6Ci0rCQlyYXRlID0gMjUwMDAwMDA7Ci0rCQlicmVhazsKLSsJY2FzZSBT UEVFRF8xMDoKLSsJCXJhdGUgPSAyNTAwMDAwOwotKwkJYnJlYWs7Ci0rCWRlZmF1bHQ6Ci0rCQlk ZXZfZXJyKGR3bWFjLT5kZXYsICJpbnZhbGlkIHNwZWVkICV1XG4iLCBzcGVlZCk7Ci0rCQlicmVh azsKLSsJfQotKwotKwllcnIgPSBjbGtfc2V0X3JhdGUoZHdtYWMtPmNsa19ndHgsIHJhdGUpOwot KwlpZiAoZXJyKQotKwkJZGV2X2Vycihkd21hYy0+ZGV2LCAiZmFpbGVkIHRvIHNldCB0eCByYXRl ICVsdVxuIiwgcmF0ZSk7Ci0rfQotKwotK3N0YXRpYyBpbnQgc3RhcmZpdmVfZXRoX3BsYXRfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLSt7Ci0rCXN0cnVjdCBwbGF0X3N0bW1h Y2VuZXRfZGF0YSAqcGxhdF9kYXQ7Ci0rCXN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19y ZXM7Ci0rCXN0cnVjdCBzdGFyZml2ZV9kd21hYyAqZHdtYWM7Ci0rCWludCBlcnI7Ci0rCi0rCWVy ciA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsICZzdG1tYWNfcmVzKTsKLSsJ aWYgKGVycikKLSsJCXJldHVybiBlcnI7Ci0rCi0rCXBsYXRfZGF0ID0gc3RtbWFjX3Byb2JlX2Nv bmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7Ci0rCWlmIChJU19FUlIocGxhdF9kYXQpKSB7 Ci0rCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJkdCBjb25maWd1cmF0aW9uIGZhaWxlZFxuIik7Ci0r CQlyZXR1cm4gUFRSX0VSUihwbGF0X2RhdCk7Ci0rCX0KLSsKLSsJZHdtYWMgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkd21hYyksIEdGUF9LRVJORUwpOwotKwlpZiAoIWR3bWFj KQotKwkJcmV0dXJuIC1FTk9NRU07Ci0rCi0rCWR3bWFjLT5jbGtfdHggPSBkZXZtX2Nsa19nZXRf ZW5hYmxlZCgmcGRldi0+ZGV2LCAidHgiKTsKLSsJaWYgKElTX0VSUihkd21hYy0+Y2xrX3R4KSkK LSsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoZHdtYWMtPmNsa190 eCksCi0rCQkJCQkJImVycm9yIGdldHRpbmcgdHggY2xvY2tcbiIpOwotKwotKwlkd21hYy0+Y2xr X2d0eCA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZwZGV2LT5kZXYsICJndHgiKTsKLSsJaWYgKElT X0VSUihkd21hYy0+Y2xrX2d0eCkpCi0rCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2 LCBQVFJfRVJSKGR3bWFjLT5jbGtfZ3R4KSwKLSsJCQkJCQkiZXJyb3IgZ2V0dGluZyBndHggY2xv Y2tcbiIpOwotKwotKwlkd21hYy0+Y2xrX2d0eGMgPSBkZXZtX2Nsa19nZXRfZW5hYmxlZCgmcGRl di0+ZGV2LCAiZ3R4YyIpOwotKwlpZiAoSVNfRVJSKGR3bWFjLT5jbGtfZ3R4YykpCi0rCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKGR3bWFjLT5jbGtfZ3R4YyksCi0r CQkJCQkJImVycm9yIGdldHRpbmcgZ3R4YyBjbG9ja1xuIik7Ci0rCi0rCWR3bWFjLT5kZXYgPSAm cGRldi0+ZGV2OwotKwlwbGF0X2RhdC0+Zml4X21hY19zcGVlZCA9IHN0YXJmaXZlX2V0aF9wbGF0 X2ZpeF9tYWNfc3BlZWQ7Ci0rCXBsYXRfZGF0LT5pbml0ID0gTlVMTDsKLSsJcGxhdF9kYXQtPmJz cF9wcml2ID0gZHdtYWM7Ci0rCXBsYXRfZGF0LT5kbWFfY2ZnLT5kY2hlID0gdHJ1ZTsKLSsKLSsJ ZXJyID0gc3RtbWFjX2R2cl9wcm9iZSgmcGRldi0+ZGV2LCBwbGF0X2RhdCwgJnN0bW1hY19yZXMp OwotKwlpZiAoZXJyKSB7Ci0rCQlzdG1tYWNfcmVtb3ZlX2NvbmZpZ19kdChwZGV2LCBwbGF0X2Rh dCk7Ci0rCQlyZXR1cm4gZXJyOwotKwl9Ci0rCi0rCXJldHVybiAwOwotK30KLSsKLStzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV9ldGhfcGxhdF9tYXRjaFtdID0gewot Kwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1kd21hYyIJfSwKLSsJeyB9Ci0rfTsK LSsKLStzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzdGFyZml2ZV9ldGhfcGxhdF9kcml2 ZXIgPSB7Ci0rCS5wcm9iZSAgPSBzdGFyZml2ZV9ldGhfcGxhdF9wcm9iZSwKLSsJLnJlbW92ZSA9 IHN0bW1hY19wbHRmcl9yZW1vdmUsCi0rCS5kcml2ZXIgPSB7Ci0rCQkubmFtZSA9ICJzdGFyZml2 ZS1ldGgtcGxhdCIsCi0rCQkucG0gPSAmc3RtbWFjX3BsdGZyX3BtX29wcywKLSsJCS5vZl9tYXRj aF90YWJsZSA9IHN0YXJmaXZlX2V0aF9wbGF0X21hdGNoLAotKwl9LAotK307Ci0rCi0rbW9kdWxl X3BsYXRmb3JtX2RyaXZlcihzdGFyZml2ZV9ldGhfcGxhdF9kcml2ZXIpOwotKwotK01PRFVMRV9M SUNFTlNFKCJHUEwiKTsKLStNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIERXTUFDIHBsYXRm b3JtIGRyaXZlciIpOwotK01PRFVMRV9BVVRIT1IoIllhbmhvbmcgV2FuZyA8eWFuaG9uZy53YW5n QHN0YXJmaXZldGVjaC5jb20+Iik7Ci0tLSAKLTIuMzkuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpbnV4Ni4yL3BhdGNoZXMvMDA2NC1kdC1iaW5kaW5ncy1uZXQtQWRkLU1vdG9yY29tbS15dDh4 eHgtZXRoZXJuZXQtcGh5LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjQtZHQt YmluZGluZ3MtbmV0LUFkZC1Nb3RvcmNvbW0teXQ4eHh4LWV0aGVybmV0LXBoeS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzgxNzQ3YTljNTI4NC4uMDAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2NC1kdC1iaW5kaW5ncy1uZXQtQWRkLU1v dG9yY29tbS15dDh4eHgtZXRoZXJuZXQtcGh5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY3 ICswLDAgQEAKLUZyb20gMzM2NWI1OTk1YzZiMjRjZTZmZTI1Y2M3MDViODY0OTM2YTE5YjNiYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEZyYW5rIFNhZSA8RnJhbmsuU2FlQG1vdG9y LWNvbW0uY29tPgotRGF0ZTogVGh1LCAyIEZlYiAyMDIzIDExOjAwOjMzICswODAwCi1TdWJqZWN0 OiBbUEFUQ0ggNjQvNzBdIGR0LWJpbmRpbmdzOiBuZXQ6IEFkZCBNb3RvcmNvbW0geXQ4eHh4IGV0 aGVybmV0IHBoeQotCi1BZGQgYSBZQU1MIGJpbmRpbmcgZG9jdW1lbnQgZm9yIHRoZSBNb3RvcmNv bW0geXQ4eHh4IEV0aGVybmV0IHBoeS4KLQotU2lnbmVkLW9mZi1ieTogRnJhbmsgU2FlIDxGcmFu ay5TYWVAbW90b3ItY29tbS5jb20+Ci1SZXZpZXdlZC1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2Vy bmVsLm9yZz4KLS0tLQotIC4uLi9iaW5kaW5ncy9uZXQvbW90b3Jjb21tLHl0OHh4eC55YW1sICAg ICAgICB8IDExNyArKysrKysrKysrKysrKysrKysKLSAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy92 ZW5kb3ItcHJlZml4ZXMueWFtbCAgfCAgIDIgKwotIE1BSU5UQUlORVJTICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0 aW9ucygrKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvbmV0L21vdG9yY29tbSx5dDh4eHgueWFtbAotCi1kaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tb3RvcmNvbW0seXQ4eHh4LnlhbWwgYi9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21vdG9yY29tbSx5dDh4eHgueWFtbAot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwMC4uMTU3ZTNiYmNhZjZmCi0t LS0gL2Rldi9udWxsCi0rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0 L21vdG9yY29tbSx5dDh4eHgueWFtbAotQEAgLTAsMCArMSwxMTcgQEAKLSsjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZSkKLSslWUFNTCAxLjIK LSstLS0KLSskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC9tb3RvcmNvbW0s eXQ4eHh4LnlhbWwjCi0rJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1h cy9jb3JlLnlhbWwjCi0rCi0rdGl0bGU6IE1vdG9yQ29tbSB5dDh4eHggRXRoZXJuZXQgUEhZCi0r Ci0rbWFpbnRhaW5lcnM6Ci0rICAtIEZyYW5rIFNhZSA8ZnJhbmsuc2FlQG1vdG9yLWNvbW0uY29t PgotKwotK2FsbE9mOgotKyAgLSAkcmVmOiBldGhlcm5ldC1waHkueWFtbCMKLSsKLStwcm9wZXJ0 aWVzOgotKyAgY29tcGF0aWJsZToKLSsgICAgZW51bToKLSsgICAgICAtIGV0aGVybmV0LXBoeS1p ZDRmNTEuZTkxYQotKyAgICAgIC0gZXRoZXJuZXQtcGh5LWlkNGY1MS5lOTFiCi0rCi0rICByeC1p bnRlcm5hbC1kZWxheS1wczoKLSsgICAgZGVzY3JpcHRpb246IHwKLSsgICAgICBSR01JSSBSWCBD bG9jayBEZWxheSB1c2VkIG9ubHkgd2hlbiBQSFkgb3BlcmF0ZXMgaW4gUkdNSUkgbW9kZSB3aXRo Ci0rICAgICAgaW50ZXJuYWwgZGVsYXkgKHBoeS1tb2RlIGlzICdyZ21paS1pZCcgb3IgJ3JnbWlp LXJ4aWQnKSBpbiBwaWNvLXNlY29uZHMuCi0rICAgIGVudW06IFsgMCwgMTUwLCAzMDAsIDQ1MCwg NjAwLCA3NTAsIDkwMCwgMTA1MCwgMTIwMCwgMTM1MCwgMTUwMCwgMTY1MCwKLSsgICAgICAgICAg ICAxODAwLCAxOTAwLCAxOTUwLCAyMDUwLCAyMTAwLCAyMjAwLCAyMjUwLCAyMzUwLCAyNTAwLCAy NjUwLCAyODAwLAotKyAgICAgICAgICAgIDI5NTAsIDMxMDAsIDMyNTAsIDM0MDAsIDM1NTAsIDM3 MDAsIDM4NTAsIDQwMDAsIDQxNTAgXQotKyAgICBkZWZhdWx0OiAxOTUwCi0rCi0rICB0eC1pbnRl cm5hbC1kZWxheS1wczoKLSsgICAgZGVzY3JpcHRpb246IHwKLSsgICAgICBSR01JSSBUWCBDbG9j ayBEZWxheSB1c2VkIG9ubHkgd2hlbiBQSFkgb3BlcmF0ZXMgaW4gUkdNSUkgbW9kZSB3aXRoCi0r ICAgICAgaW50ZXJuYWwgZGVsYXkgKHBoeS1tb2RlIGlzICdyZ21paS1pZCcgb3IgJ3JnbWlpLXR4 aWQnKSBpbiBwaWNvLXNlY29uZHMuCi0rICAgIGVudW06IFsgMCwgMTUwLCAzMDAsIDQ1MCwgNjAw LCA3NTAsIDkwMCwgMTA1MCwgMTIwMCwgMTM1MCwgMTUwMCwgMTY1MCwgMTgwMCwKLSsgICAgICAg ICAgICAxOTUwLCAyMTAwLCAyMjUwIF0KLSsgICAgZGVmYXVsdDogMTk1MAotKwotKyAgbW90b3Jj b21tLGNsay1vdXQtZnJlcXVlbmN5LWh6OgotKyAgICBkZXNjcmlwdGlvbjogY2xvY2sgb3V0cHV0 IG9uIGNsb2NrIG91dHB1dCBwaW4uCi0rICAgIGVudW06IFswLCAyNTAwMDAwMCwgMTI1MDAwMDAw XQotKyAgICBkZWZhdWx0OiAwCi0rCi0rICBtb3RvcmNvbW0sa2VlcC1wbGwtZW5hYmxlZDoKLSsg ICAgZGVzY3JpcHRpb246IHwKLSsgICAgICBJZiBzZXQsIGtlZXAgdGhlIFBMTCBlbmFibGVkIGV2 ZW4gaWYgdGhlcmUgaXMgbm8gbGluay4gVXNlZnVsIGlmIHlvdQotKyAgICAgIHdhbnQgdG8gdXNl IHRoZSBjbG9jayBvdXRwdXQgd2l0aG91dCBhbiBldGhlcm5ldCBsaW5rLgotKyAgICB0eXBlOiBi b29sZWFuCi0rCi0rICBtb3RvcmNvbW0sYXV0by1zbGVlcC1kaXNhYmxlZDoKLSsgICAgZGVzY3Jp cHRpb246IHwKLSsgICAgICBJZiBzZXQsIFBIWSB3aWxsIG5vdCBlbnRlciBzbGVlcCBtb2RlIGFu ZCBjbG9zZSBBRkUgYWZ0ZXIgdW5wbHVnIGNhYmxlCi0rICAgICAgZm9yIGEgdGltZXIuCi0rICAg IHR5cGU6IGJvb2xlYW4KLSsKLSsgIG1vdG9yY29tbSx0eC1jbGstYWRqLWVuYWJsZWQ6Ci0rICAg IGRlc2NyaXB0aW9uOiB8Ci0rICAgICAgVGhpcyBjb25maWd1cmF0aW9uIGlzIG1haW5seSB0byBh ZGFwdCB0byBWRjIgd2l0aCBKSDcxMTAgU29DLgotKyAgICAgIFVzZWZ1bCBpZiB5b3Ugd2FudCB0 byB1c2UgdHgtY2xrLXh4eHgtaW52ZXJ0ZWQgdG8gYWRqIHRoZSBkZWxheSBvZiB0eCBjbGsuCi0r ICAgIHR5cGU6IGJvb2xlYW4KLSsKLSsgIG1vdG9yY29tbSx0eC1jbGstMTAtaW52ZXJ0ZWQ6Ci0r ICAgIGRlc2NyaXB0aW9uOiB8Ci0rICAgICAgVXNlIG9yaWdpbmFsIG9yIGludmVydGVkIFJHTUlJ IFRyYW5zbWl0IFBIWSBDbG9jayB0byBkcml2ZSB0aGUgUkdNSUkKLSsgICAgICBUcmFuc21pdCBQ SFkgQ2xvY2sgZGVsYXkgdHJhaW4gY29uZmlndXJhdGlvbiB3aGVuIHNwZWVkIGlzIDEwTWJwcy4K LSsgICAgdHlwZTogYm9vbGVhbgotKwotKyAgbW90b3Jjb21tLHR4LWNsay0xMDAtaW52ZXJ0ZWQ6 Ci0rICAgIGRlc2NyaXB0aW9uOiB8Ci0rICAgICAgVXNlIG9yaWdpbmFsIG9yIGludmVydGVkIFJH TUlJIFRyYW5zbWl0IFBIWSBDbG9jayB0byBkcml2ZSB0aGUgUkdNSUkKLSsgICAgICBUcmFuc21p dCBQSFkgQ2xvY2sgZGVsYXkgdHJhaW4gY29uZmlndXJhdGlvbiB3aGVuIHNwZWVkIGlzIDEwME1i cHMuCi0rICAgIHR5cGU6IGJvb2xlYW4KLSsKLSsgIG1vdG9yY29tbSx0eC1jbGstMTAwMC1pbnZl cnRlZDoKLSsgICAgZGVzY3JpcHRpb246IHwKLSsgICAgICBVc2Ugb3JpZ2luYWwgb3IgaW52ZXJ0 ZWQgUkdNSUkgVHJhbnNtaXQgUEhZIENsb2NrIHRvIGRyaXZlIHRoZSBSR01JSQotKyAgICAgIFRy YW5zbWl0IFBIWSBDbG9jayBkZWxheSB0cmFpbiBjb25maWd1cmF0aW9uIHdoZW4gc3BlZWQgaXMg MTAwME1icHMuCi0rICAgIHR5cGU6IGJvb2xlYW4KLSsKLSt1bmV2YWx1YXRlZFByb3BlcnRpZXM6 IGZhbHNlCi0rCi0rZXhhbXBsZXM6Ci0rICAtIHwKLSsgICAgbWRpbyB7Ci0rICAgICAgICAjYWRk cmVzcy1jZWxscyA9IDwxPjsKLSsgICAgICAgICNzaXplLWNlbGxzID0gPDA+OwotKyAgICAgICAg cGh5LW1vZGUgPSAicmdtaWktaWQiOwotKyAgICAgICAgZXRoZXJuZXQtcGh5QDQgewotKyAgICAg ICAgICAgIC8qICBPbmx5IG5lZWRlZCB0byBtYWtlIERUIGxpbnQgdG9vbHMgd29yay4gRG8gbm90 IGNvcHkvcGFzdGUKLSsgICAgICAgICAgICAgKiAgaW50byByZWFsIERUUyBmaWxlcy4KLSsgICAg ICAgICAgICAgKi8KLSsgICAgICAgICAgICBjb21wYXRpYmxlID0gImV0aGVybmV0LXBoeS1pZDRm NTEuZTkxYSI7Ci0rCi0rICAgICAgICAgICAgcmVnID0gPDQ+OwotKyAgICAgICAgICAgIHJ4LWlu dGVybmFsLWRlbGF5LXBzID0gPDIxMDA+OwotKyAgICAgICAgICAgIHR4LWludGVybmFsLWRlbGF5 LXBzID0gPDE1MD47Ci0rICAgICAgICAgICAgbW90b3Jjb21tLGNsay1vdXQtZnJlcXVlbmN5LWh6 ID0gPDA+OwotKyAgICAgICAgICAgIG1vdG9yY29tbSxrZWVwLXBsbC1lbmFibGVkOwotKyAgICAg ICAgICAgIG1vdG9yY29tbSxhdXRvLXNsZWVwLWRpc2FibGVkOwotKyAgICAgICAgfTsKLSsgICAg fTsKLSsgIC0gfAotKyAgICBtZGlvIHsKLSsgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPDE+Owot KyAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47Ci0rICAgICAgICBwaHktbW9kZSA9ICJyZ21paSI7 Ci0rICAgICAgICBldGhlcm5ldC1waHlANSB7Ci0rICAgICAgICAgICAgLyogIE9ubHkgbmVlZGVk IHRvIG1ha2UgRFQgbGludCB0b29scyB3b3JrLiBEbyBub3QgY29weS9wYXN0ZQotKyAgICAgICAg ICAgICAqICBpbnRvIHJlYWwgRFRTIGZpbGVzLgotKyAgICAgICAgICAgICAqLwotKyAgICAgICAg ICAgIGNvbXBhdGlibGUgPSAiZXRoZXJuZXQtcGh5LWlkNGY1MS5lOTFhIjsKLSsKLSsgICAgICAg ICAgICByZWcgPSA8NT47Ci0rICAgICAgICAgICAgbW90b3Jjb21tLGNsay1vdXQtZnJlcXVlbmN5 LWh6ID0gPDEyNTAwMDAwMD47Ci0rICAgICAgICAgICAgbW90b3Jjb21tLGtlZXAtcGxsLWVuYWJs ZWQ7Ci0rICAgICAgICAgICAgbW90b3Jjb21tLGF1dG8tc2xlZXAtZGlzYWJsZWQ7Ci0rICAgICAg ICB9OwotKyAgICB9OwotZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy92ZW5kb3ItcHJlZml4ZXMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy92ZW5kb3ItcHJlZml4ZXMueWFtbAotaW5kZXggNzBmZmIzNzgwNjIxLi44ZDE5MTU3ZTg1 YjcgMTAwNjQ0Ci0tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmVuZG9y LXByZWZpeGVzLnlhbWwKLSsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92 ZW5kb3ItcHJlZml4ZXMueWFtbAotQEAgLTg0NSw2ICs4NDUsOCBAQCBwYXR0ZXJuUHJvcGVydGll czoKLSAgICAgZGVzY3JpcHRpb246IE1vb3J0ZWMgU2VtaWNvbmR1Y3RvciBMdGQuCi0gICAiXm1v c2FpeHRlY2gsLioiOgotICAgICBkZXNjcmlwdGlvbjogTW9zYWl4IFRlY2hub2xvZ2llcywgSW5j LgotKyAgIl5tb3RvcmNvbW0sLioiOgotKyAgICBkZXNjcmlwdGlvbjogTW90b3JDb21tLCBJbmMu Ci0gICAiXm1vdG9yb2xhLC4qIjoKLSAgICAgZGVzY3JpcHRpb246IE1vdG9yb2xhLCBJbmMuCi0g ICAiXm1veGEsLioiOgotZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKLWlu ZGV4IGJlZDJjMzNiZTUxNy4uN2M3M2NkYmUxMjU5IDEwMDY0NAotLS0tIGEvTUFJTlRBSU5FUlMK LSsrKyBiL01BSU5UQUlORVJTCi1AQCAtMTQxNjksNiArMTQxNjksNyBAQCBNOglQZXRlciBHZWlz IDxwZ3dpcGVvdXRAZ21haWwuY29tPgotIE06CUZyYW5rIDxGcmFuay5TYWVAbW90b3ItY29tbS5j b20+Ci0gTDoJbmV0ZGV2QHZnZXIua2VybmVsLm9yZwotIFM6CU1haW50YWluZWQKLStGOglEb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21vdG9yY29tbSx5dDh4eHgueWFtbAot IEY6CWRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwotIAotIE1PWEEgU01BUlRJTy9JTkRVU1RJ Ty9JTlRFTExJTyBTRVJJQUwgQ0FSRAotLS0gCi0yLjM5LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9saW51eDYuMi9wYXRjaGVzLzAwNjUtbmV0LXBoeS1BZGQtQklULW1hY3JvLWZvci1Nb3RvcmNv bW0teXQ4NTIxLXl0ODUzMS1naS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY1 LW5ldC1waHktQWRkLUJJVC1tYWNyby1mb3ItTW90b3Jjb21tLXl0ODUyMS15dDg1MzEtZ2kucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZDI5NmY5ZjJmOTMuLjAwMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjUtbmV0LXBoeS1BZGQtQklU LW1hY3JvLWZvci1Nb3RvcmNvbW0teXQ4NTIxLXl0ODUzMS1naS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDExMSArMCwwIEBACi1Gcm9tIDVlNDE2MjA1YTg0NmZlZjMxNzRlYmUwNTA5ZjZhNDky NmU5NDc1ODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBGcmFuayBTYWUgPEZyYW5r LlNhZUBtb3Rvci1jb21tLmNvbT4KLURhdGU6IFRodSwgMiBGZWIgMjAyMyAxMTowMDozNCArMDgw MAotU3ViamVjdDogW1BBVENIIDY1LzcwXSBuZXQ6IHBoeTogQWRkIEJJVCBtYWNybyBmb3IgTW90 b3Jjb21tIHl0ODUyMS95dDg1MzEKLSBnaWdhYml0IGV0aGVybmV0IHBoeQotCi1BZGQgQklUIG1h Y3JvIGZvciBNb3RvcmNvbW0geXQ4NTIxL3l0ODUzMSBnaWdhYml0IGV0aGVybmV0IHBoeS4KLSBU aGlzIGlzIGEgcHJlcGFyYXRvcnkgcGF0Y2guIEFkZCBCSVQgbWFjcm8gZm9yIDB4QTAxMiByZWcs IGFuZAotIHN1cHBsZW1lbnQgZm9yIDB4QTAwMSBhbmQgMHhBMDAzIHJlZy4gVGhlc2Ugd2lsbCBi ZSB1c2VkIHRvIHN1cHBvcnQgZHRzLgotCi1TaWduZWQtb2ZmLWJ5OiBGcmFuayBTYWUgPEZyYW5r LlNhZUBtb3Rvci1jb21tLmNvbT4KLVJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1 bm4uY2g+Ci0tLS0KLSBkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgfCA1NSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUxIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90 b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKLWluZGV4IDY4NTE5MGRiNzJk ZS4uZDg1MjNlMzM0MjRkIDEwMDY0NAotLS0tIGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5j Ci0rKysgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKLUBAIC0xNjEsNiArMTYxLDExIEBA Ci0gCi0gI2RlZmluZSBZVDg1MjFfQ0hJUF9DT05GSUdfUkVHCQkJMHhBMDAxCi0gI2RlZmluZSBZ VDg1MjFfQ0NSX1NXX1JTVAkJCUJJVCgxNSkKLSsvKiAxYjAgZGlzYWJsZSAxLjlucyByeGMgY2xv Y2sgZGVsYXkgICpkZWZhdWx0KgotKyAqIDFiMSBlbmFibGUgMS45bnMgcnhjIGNsb2NrIGRlbGF5 Ci0rICovCi0rI2RlZmluZSBZVDg1MjFfQ0NSX1JYQ19ETFlfRU4JCQlCSVQoOCkKLSsjZGVmaW5l IFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUwkJMTkwMAotIAotICNkZWZpbmUgWVQ4NTIxX0ND Ul9NT0RFX1NFTF9NQVNLCQkoQklUKDIpIHwgQklUKDEpIHwgQklUKDApKQotICNkZWZpbmUgWVQ4 NTIxX0NDUl9NT0RFX1VUUF9UT19SR01JSQkJMAotQEAgLTE3OCwyMiArMTgzLDQxIEBACi0gI2Rl ZmluZSBZVDg1MjFfTU9ERV9QT0xMCQkJMHgzCi0gCi0gI2RlZmluZSBZVDg1MjFfUkdNSUlfQ09O RklHMV9SRUcJCTB4QTAwMwotLQotKy8qIDFiMCB1c2Ugb3JpZ2luYWwgdHhfY2xrX3JnbWlpICAq ZGVmYXVsdCoKLSsgKiAxYjEgdXNlIGludmVydGVkIHR4X2Nsa19yZ21paS4KLSsgKi8KLSsjZGVm aW5lIFlUODUyMV9SQzFSX1RYX0NMS19TRUxfSU5WRVJURUQJCUJJVCgxNCkKLSAvKiBUWCBHaWct RSBEZWxheSBpcyBiaXRzIDM6MCwgZGVmYXVsdCAweDEKLSAgKiBUWCBGYXN0LUUgRGVsYXkgaXMg Yml0cyA3OjQsIGRlZmF1bHQgMHhmCi0gICogUlggRGVsYXkgaXMgYml0cyAxMzoxMCwgZGVmYXVs dCAweDAKLSAgKiBEZWxheSA9IDE1MHBzICogTgotICAqIE9uID0gMjI1MHBzLCBvZmYgPSAwcHMK LSAgKi8KLS0jZGVmaW5lIFlUODUyMV9SQzFSX1JYX0RFTEFZX01BU0sJCSgweEYgPDwgMTApCi0r I2RlZmluZSBZVDg1MjFfUkMxUl9SWF9ERUxBWV9NQVNLCQlHRU5NQVNLKDEzLCAxMCkKLSAjZGVm aW5lIFlUODUyMV9SQzFSX1JYX0RFTEFZX0VOCQkJKDB4RiA8PCAxMCkKLSAjZGVmaW5lIFlUODUy MV9SQzFSX1JYX0RFTEFZX0RJUwkJKDB4MCA8PCAxMCkKLS0jZGVmaW5lIFlUODUyMV9SQzFSX0ZF X1RYX0RFTEFZX01BU0sJCSgweEYgPDwgNCkKLSsjZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RF TEFZX01BU0sJCUdFTk1BU0soNywgNCkKLSAjZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZ X0VOCQkoMHhGIDw8IDQpCi0gI2RlZmluZSBZVDg1MjFfUkMxUl9GRV9UWF9ERUxBWV9ESVMJCSgw eDAgPDwgNCkKLS0jZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01BU0sJCSgweEYgPDwg MCkKLSsjZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01BU0sJCUdFTk1BU0soMywgMCkK LSAjZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX0VOCQkoMHhGIDw8IDApCi0gI2RlZmlu ZSBZVDg1MjFfUkMxUl9HRV9UWF9ERUxBWV9ESVMJCSgweDAgPDwgMCkKLSsjZGVmaW5lIFlUODUy MV9SQzFSX1JHTUlJXzBfMDAwX05TCQkwCi0rI2RlZmluZSBZVDg1MjFfUkMxUl9SR01JSV8wXzE1 MF9OUwkJMQotKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMF8zMDBfTlMJCTIKLSsjZGVmaW5l IFlUODUyMV9SQzFSX1JHTUlJXzBfNDUwX05TCQkzCi0rI2RlZmluZSBZVDg1MjFfUkMxUl9SR01J SV8wXzYwMF9OUwkJNAotKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMF83NTBfTlMJCTUKLSsj ZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzBfOTAwX05TCQk2Ci0rI2RlZmluZSBZVDg1MjFfUkMx Ul9SR01JSV8xXzA1MF9OUwkJNwotKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMV8yMDBfTlMJ CTgKLSsjZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzFfMzUwX05TCQk5Ci0rI2RlZmluZSBZVDg1 MjFfUkMxUl9SR01JSV8xXzUwMF9OUwkJMTAKLSsjZGVmaW5lIFlUODUyMV9SQzFSX1JHTUlJXzFf NjUwX05TCQkxMQotKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMV84MDBfTlMJCTEyCi0rI2Rl ZmluZSBZVDg1MjFfUkMxUl9SR01JSV8xXzk1MF9OUwkJMTMKLSsjZGVmaW5lIFlUODUyMV9SQzFS X1JHTUlJXzJfMTAwX05TCQkxNAotKyNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMl8yNTBfTlMJ CTE1Ci0gCi0gI2RlZmluZSBZVFBIWV9NSVNDX0NPTkZJR19SRUcJCQkweEEwMDYKLSAjZGVmaW5l IFlUUEhZX01DUl9GSUJFUl9TUEVFRF9NQVNLCQlCSVQoMCkKLUBAIC0yMjIsNiArMjQ2LDI5IEBA Ci0gICovCi0gI2RlZmluZSBZVFBIWV9XQ1JfVFlQRV9QVUxTRQkJCUJJVCgwKQotIAotKyNkZWZp bmUgWVRQSFlfU1lOQ0VfQ0ZHX1JFRwkJCTB4QTAxMgotKyNkZWZpbmUgWVQ4NTIxX1NDUl9TWU5D RV9FTkFCTEUJCQlCSVQoNSkKLSsvKiAxYjAgb3V0cHV0IDI1bSBjbG9jawotKyAqIDFiMSBvdXRw dXQgMTI1bSBjbG9jayAgKmRlZmF1bHQqCi0rICovCi0rI2RlZmluZSBZVDg1MjFfU0NSX0NMS19G UkVfU0VMXzEyNU0JCUJJVCgzKQotKyNkZWZpbmUgWVQ4NTIxX1NDUl9DTEtfU1JDX01BU0sJCQlH RU5NQVNLKDIsIDEpCi0rI2RlZmluZSBZVDg1MjFfU0NSX0NMS19TUkNfUExMXzEyNU0JCTAKLSsj ZGVmaW5lIFlUODUyMV9TQ1JfQ0xLX1NSQ19VVFBfUlgJCTEKLSsjZGVmaW5lIFlUODUyMV9TQ1Jf Q0xLX1NSQ19TRFNfUlgJCTIKLSsjZGVmaW5lIFlUODUyMV9TQ1JfQ0xLX1NSQ19SRUZfMjVNCQkz Ci0rI2RlZmluZSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRQkJCUJJVCg2KQotKy8qIDFiMCBvdXRw dXQgMjVtIGNsb2NrICAgKmRlZmF1bHQqCi0rICogMWIxIG91dHB1dCAxMjVtIGNsb2NrCi0rICov Ci0rI2RlZmluZSBZVDg1MzFfU0NSX0NMS19GUkVfU0VMXzEyNU0JCUJJVCg0KQotKyNkZWZpbmUg WVQ4NTMxX1NDUl9DTEtfU1JDX01BU0sJCQlHRU5NQVNLKDMsIDEpCi0rI2RlZmluZSBZVDg1MzFf U0NSX0NMS19TUkNfUExMXzEyNU0JCTAKLSsjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19VVFBf UlgJCTEKLSsjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19TRFNfUlgJCTIKLSsjZGVmaW5lIFlU ODUzMV9TQ1JfQ0xLX1NSQ19DTE9DS19GUk9NX0RJR0lUQUwJMwotKyNkZWZpbmUgWVQ4NTMxX1ND Ul9DTEtfU1JDX1JFRl8yNU0JCTQKLSsjZGVmaW5lIFlUODUzMV9TQ1JfQ0xLX1NSQ19TU0NfMjVN CQk1Ci0gI2RlZmluZSBZVDg1MzFTX1NZTkNFX0NGR19SRUcJCQkweEEwMTIKLSAjZGVmaW5lIFlU ODUzMVNfU0NSX1NZTkNFX0VOQUJMRQkJQklUKDYpCi0gCi0tLSAKLTIuMzkuMgotCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2Ni1uZXQtcGh5LUFkZC1kdHMtc3VwcG9y dC1mb3ItTW90b3Jjb21tLXl0ODUyMS1naWdhYml0LnBhdGNoIGIvc3JjcGtncy9saW51eDYuMi9w YXRjaGVzLzAwNjYtbmV0LXBoeS1BZGQtZHRzLXN1cHBvcnQtZm9yLU1vdG9yY29tbS15dDg1MjEt Z2lnYWJpdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA2Y2VkYmNiZDIz ZS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2Ni1uZXQt cGh5LUFkZC1kdHMtc3VwcG9ydC1mb3ItTW90b3Jjb21tLXl0ODUyMS1naWdhYml0LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzQ3ICswLDAgQEAKLUZyb20gMWRkNThkYjdmMWNlNjBjMTM3NzFh MzJkNTUzYmU4MDExMjk2MjYwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEZyYW5r IFNhZSA8RnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tPgotRGF0ZTogVGh1LCAyIEZlYiAyMDIzIDEx OjAwOjM1ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggNjYvNzBdIG5ldDogcGh5OiBBZGQgZHRzIHN1 cHBvcnQgZm9yIE1vdG9yY29tbSB5dDg1MjEgZ2lnYWJpdAotIGV0aGVybmV0IHBoeQotCi1BZGQg ZHRzIHN1cHBvcnQgZm9yIE1vdG9yY29tbSB5dDg1MjEgZ2lnYWJpdCBldGhlcm5ldCBwaHkuCi0g QWRkIHl0cGh5X3JnbWlpX2Nsa19kZWxheV9jb25maWcgZnVuY3Rpb24gdG8gc3VwcG9ydCBkc3Qg Y29uZmlnIGZvcgotIHRoZSBkZWxheSBvZiByZ21paSBjbGsuIFRoaXMgZnVuY2lvbnQgaXMgY29t bW9uIGZvciB5dDg1MjEsIHl0ODUzMXMKLSBhbmQgeXQ4NTMxLgotIFRoaXMgcGF0Y2ggaGFzIGJl ZW4gdmVyaWZpZWQgb24gQU0zMzV4IHBsYXRmb3JtLgotCi1TaWduZWQtb2ZmLWJ5OiBGcmFuayBT YWUgPEZyYW5rLlNhZUBtb3Rvci1jb21tLmNvbT4KLVJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8 YW5kcmV3QGx1bm4uY2g+Ci0tLS0KLSBkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgfCAyNTMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE5 OSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BoeS9tb3RvcmNvbW0uYyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwotaW5kZXgg ZDg1MjNlMzM0MjRkLi5mYzA2ZmU2ZWY5YmEgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL25ldC9waHkv bW90b3Jjb21tLmMKLSsrKyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwotQEAgLTEwLDYg KzEwLDcgQEAKLSAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgotICNpbmNsdWRlIDxsaW51eC9waHkuaD4KLSsjaW5jbHVkZSA8bGludXgvb2YuaD4K LSAKLSAjZGVmaW5lIFBIWV9JRF9ZVDg1MTEJCTB4MDAwMDAxMGEKLSAjZGVmaW5lIFBIWV9JRF9Z VDg1MjEJCTB4MDAwMDAxMUEKLUBAIC0xODcsMjEgKzE4OCw5IEBACi0gICogMWIxIHVzZSBpbnZl cnRlZCB0eF9jbGtfcmdtaWkuCi0gICovCi0gI2RlZmluZSBZVDg1MjFfUkMxUl9UWF9DTEtfU0VM X0lOVkVSVEVECQlCSVQoMTQpCi0tLyogVFggR2lnLUUgRGVsYXkgaXMgYml0cyAzOjAsIGRlZmF1 bHQgMHgxCi0tICogVFggRmFzdC1FIERlbGF5IGlzIGJpdHMgNzo0LCBkZWZhdWx0IDB4ZgotLSAq IFJYIERlbGF5IGlzIGJpdHMgMTM6MTAsIGRlZmF1bHQgMHgwCi0tICogRGVsYXkgPSAxNTBwcyAq IE4KLS0gKiBPbiA9IDIyNTBwcywgb2ZmID0gMHBzCi0tICovCi0gI2RlZmluZSBZVDg1MjFfUkMx Ul9SWF9ERUxBWV9NQVNLCQlHRU5NQVNLKDEzLCAxMCkKLS0jZGVmaW5lIFlUODUyMV9SQzFSX1JY X0RFTEFZX0VOCQkJKDB4RiA8PCAxMCkKLS0jZGVmaW5lIFlUODUyMV9SQzFSX1JYX0RFTEFZX0RJ UwkJKDB4MCA8PCAxMCkKLSAjZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZX01BU0sJCUdF Tk1BU0soNywgNCkKLS0jZGVmaW5lIFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZX0VOCQkoMHhGIDw8 IDQpCi0tI2RlZmluZSBZVDg1MjFfUkMxUl9GRV9UWF9ERUxBWV9ESVMJCSgweDAgPDwgNCkKLSAj ZGVmaW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01BU0sJCUdFTk1BU0soMywgMCkKLS0jZGVm aW5lIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX0VOCQkoMHhGIDw8IDApCi0tI2RlZmluZSBZVDg1 MjFfUkMxUl9HRV9UWF9ERUxBWV9ESVMJCSgweDAgPDwgMCkKLSAjZGVmaW5lIFlUODUyMV9SQzFS X1JHTUlJXzBfMDAwX05TCQkwCi0gI2RlZmluZSBZVDg1MjFfUkMxUl9SR01JSV8wXzE1MF9OUwkJ MQotICNkZWZpbmUgWVQ4NTIxX1JDMVJfUkdNSUlfMF8zMDBfTlMJCTIKLUBAIC0yNzQsNiArMjYz LDEwIEBACi0gCi0gLyogRXh0ZW5kZWQgUmVnaXN0ZXIgIGVuZCAqLwotIAotKyNkZWZpbmUgWVRQ SFlfRFRTX09VVFBVVF9DTEtfRElTCQkwCi0rI2RlZmluZSBZVFBIWV9EVFNfT1VUUFVUX0NMS18y NU0JCTI1MDAwMDAwCi0rI2RlZmluZSBZVFBIWV9EVFNfT1VUUFVUX0NMS18xMjVNCQkxMjUwMDAw MDAKLSsKLSBzdHJ1Y3QgeXQ4NTIxX3ByaXYgewotIAkvKiBjb21ib19hZHZlcnRpc2luZyBpcyB1 c2VkIGZvciBjYXNlIG9mIFlUODUyMSBpbiBjb21ibyBtb2RlLAotIAkgKiB0aGlzIG1lYW5zIHRo YXQgeXQ4NTIxIG1heSB3b3JrIGluIHV0cCBvciBmaWJlciBtb2RlIHdoaWNoIGRlcGVuZHMKLUBA IC02NDAsNiArNjMzLDE0MiBAQCBzdGF0aWMgaW50IHl0ODUyMV93cml0ZV9wYWdlKHN0cnVjdCBw aHlfZGV2aWNlICpwaHlkZXYsIGludCBwYWdlKQotIAlyZXR1cm4geXRwaHlfbW9kaWZ5X2V4dChw aHlkZXYsIFlUODUyMV9SRUdfU1BBQ0VfU0VMRUNUX1JFRywgbWFzaywgc2V0KTsKLSB9OwotIAot Ky8qKgotKyAqIHN0cnVjdCB5dHBoeV9jZmdfcmVnX21hcCAtIG1hcCBhIGNvbmZpZyB2YWx1ZSB0 byBhIHJlZ2lzdGVyIHZhbHVlCi0rICogQGNmZzogdmFsdWUgaW4gZGV2aWNlIGNvbmZpZ3VyYXRp b24KLSsgKiBAcmVnOiB2YWx1ZSBpbiB0aGUgcmVnaXN0ZXIKLSsgKi8KLStzdHJ1Y3QgeXRwaHlf Y2ZnX3JlZ19tYXAgewotKwl1MzIgY2ZnOwotKwl1MzIgcmVnOwotK307Ci0rCi0rc3RhdGljIGNv bnN0IHN0cnVjdCB5dHBoeV9jZmdfcmVnX21hcCB5dHBoeV9yZ21paV9kZWxheXNbXSA9IHsKLSsJ LyogZm9yIHR4IGRlbGF5IC8gcnggZGVsYXkgd2l0aCBZVDg1MjFfQ0NSX1JYQ19ETFlfRU4gaXMg bm90IHNldC4gKi8KLSsJeyAwLAlZVDg1MjFfUkMxUl9SR01JSV8wXzAwMF9OUyB9LAotKwl7IDE1 MCwJWVQ4NTIxX1JDMVJfUkdNSUlfMF8xNTBfTlMgfSwKLSsJeyAzMDAsCVlUODUyMV9SQzFSX1JH TUlJXzBfMzAwX05TIH0sCi0rCXsgNDUwLAlZVDg1MjFfUkMxUl9SR01JSV8wXzQ1MF9OUyB9LAot Kwl7IDYwMCwJWVQ4NTIxX1JDMVJfUkdNSUlfMF82MDBfTlMgfSwKLSsJeyA3NTAsCVlUODUyMV9S QzFSX1JHTUlJXzBfNzUwX05TIH0sCi0rCXsgOTAwLAlZVDg1MjFfUkMxUl9SR01JSV8wXzkwMF9O UyB9LAotKwl7IDEwNTAsCVlUODUyMV9SQzFSX1JHTUlJXzFfMDUwX05TIH0sCi0rCXsgMTIwMCwJ WVQ4NTIxX1JDMVJfUkdNSUlfMV8yMDBfTlMgfSwKLSsJeyAxMzUwLAlZVDg1MjFfUkMxUl9SR01J SV8xXzM1MF9OUyB9LAotKwl7IDE1MDAsCVlUODUyMV9SQzFSX1JHTUlJXzFfNTAwX05TIH0sCi0r CXsgMTY1MCwJWVQ4NTIxX1JDMVJfUkdNSUlfMV82NTBfTlMgfSwKLSsJeyAxODAwLAlZVDg1MjFf UkMxUl9SR01JSV8xXzgwMF9OUyB9LAotKwl7IDE5NTAsCVlUODUyMV9SQzFSX1JHTUlJXzFfOTUw X05TIH0sCS8qIGRlZmF1bHQgdHgvcnggZGVsYXkgKi8KLSsJeyAyMTAwLAlZVDg1MjFfUkMxUl9S R01JSV8yXzEwMF9OUyB9LAotKwl7IDIyNTAsCVlUODUyMV9SQzFSX1JHTUlJXzJfMjUwX05TIH0s Ci0rCi0rCS8qIG9ubHkgZm9yIHJ4IGRlbGF5IHdpdGggWVQ4NTIxX0NDUl9SWENfRExZX0VOIGlz IHNldC4gKi8KLSsJeyAwICAgICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFf UkMxUl9SR01JSV8wXzAwMF9OUyB9LAotKwl7IDE1MCAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85 MDBfTlMsCVlUODUyMV9SQzFSX1JHTUlJXzBfMTUwX05TIH0sCi0rCXsgMzAwICArIFlUODUyMV9D Q1JfUlhDX0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JDMVJfUkdNSUlfMF8zMDBfTlMgfSwKLSsJeyA0 NTAgICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9SR01JSV8wXzQ1 MF9OUyB9LAotKwl7IDYwMCAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9S QzFSX1JHTUlJXzBfNjAwX05TIH0sCi0rCXsgNzUwICArIFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkw MF9OUywJWVQ4NTIxX1JDMVJfUkdNSUlfMF83NTBfTlMgfSwKLSsJeyA5MDAgICsgWVQ4NTIxX0ND Ul9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9SR01JSV8wXzkwMF9OUyB9LAotKwl7IDEw NTAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFSX1JHTUlJXzFfMDUw X05TIH0sCi0rCXsgMTIwMCArIFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JD MVJfUkdNSUlfMV8yMDBfTlMgfSwKLSsJeyAxMzUwICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAw X05TLAlZVDg1MjFfUkMxUl9SR01JSV8xXzM1MF9OUyB9LAotKwl7IDE1MDAgKyBZVDg1MjFfQ0NS X1JYQ19ETFlfMV85MDBfTlMsCVlUODUyMV9SQzFSX1JHTUlJXzFfNTAwX05TIH0sCi0rCXsgMTY1 MCArIFlUODUyMV9DQ1JfUlhDX0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JDMVJfUkdNSUlfMV82NTBf TlMgfSwKLSsJeyAxODAwICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMx Ul9SR01JSV8xXzgwMF9OUyB9LAotKwl7IDE5NTAgKyBZVDg1MjFfQ0NSX1JYQ19ETFlfMV85MDBf TlMsCVlUODUyMV9SQzFSX1JHTUlJXzFfOTUwX05TIH0sCi0rCXsgMjEwMCArIFlUODUyMV9DQ1Jf UlhDX0RMWV8xXzkwMF9OUywJWVQ4NTIxX1JDMVJfUkdNSUlfMl8xMDBfTlMgfSwKLSsJeyAyMjUw ICsgWVQ4NTIxX0NDUl9SWENfRExZXzFfOTAwX05TLAlZVDg1MjFfUkMxUl9SR01JSV8yXzI1MF9O UyB9Ci0rfTsKLSsKLStzdGF0aWMgdTMyIHl0cGh5X2dldF9kZWxheV9yZWdfdmFsdWUoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldiwKLSsJCQkJICAgICBjb25zdCBjaGFyICpwcm9wX25hbWUsCi0r CQkJCSAgICAgY29uc3Qgc3RydWN0IHl0cGh5X2NmZ19yZWdfbWFwICp0YmwsCi0rCQkJCSAgICAg aW50IHRiX3NpemUsCi0rCQkJCSAgICAgdTE2ICpyeGNfZGx5X2VuLAotKwkJCQkgICAgIHUzMiBk Zmx0KQotK3sKLSsJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gcGh5ZGV2LT5tZGlvLmRldi5v Zl9ub2RlOwotKwlpbnQgdGJfc2l6ZV9oYWxmID0gdGJfc2l6ZSAvIDI7Ci0rCXUzMiB2YWw7Ci0r CWludCBpOwotKwotKwlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgcHJvcF9uYW1lLCAm dmFsKSkKLSsJCWdvdG8gZXJyX2R0c192YWw7Ci0rCi0rCS8qIHdoZW4gcnhjX2RseV9lbiBpcyBO VUxMLCBpdCBpcyBnZXQgdGhlIGRlbGF5IGZvciB0eCwgb25seSBoYWxmIG9mCi0rCSAqIHRiX3Np emUgaXMgdmFsaWQuCi0rCSAqLwotKwlpZiAoIXJ4Y19kbHlfZW4pCi0rCQl0Yl9zaXplID0gdGJf c2l6ZV9oYWxmOwotKwotKwlmb3IgKGkgPSAwOyBpIDwgdGJfc2l6ZTsgaSsrKSB7Ci0rCQlpZiAo dGJsW2ldLmNmZyA9PSB2YWwpIHsKLSsJCQlpZiAocnhjX2RseV9lbiAmJiBpIDwgdGJfc2l6ZV9o YWxmKQotKwkJCQkqcnhjX2RseV9lbiA9IDA7Ci0rCQkJcmV0dXJuIHRibFtpXS5yZWc7Ci0rCQl9 Ci0rCX0KLSsKLSsJcGh5ZGV2X3dhcm4ocGh5ZGV2LCAiVW5zdXBwb3J0ZWQgdmFsdWUgJWQgZm9y ICVzIHVzaW5nIGRlZmF1bHQgKCV1KVxuIiwKLSsJCSAgICB2YWwsIHByb3BfbmFtZSwgZGZsdCk7 Ci0rCi0rZXJyX2R0c192YWw6Ci0rCS8qIHdoZW4gcnhjX2RseV9lbiBpcyBub3QgTlVMTCwgaXQg aXMgZ2V0IHRoZSBkZWxheSBmb3IgcnguCi0rCSAqIFRoZSByeCBkZWZhdWx0IGluIGR0cyBhbmQg eXRwaHlfcmdtaWlfY2xrX2RlbGF5X2NvbmZpZyBpcyAxOTUwIHBzLAotKwkgKiBzbyBZVDg1MjFf Q0NSX1JYQ19ETFlfRU4gc2hvdWxkIG5vdCBiZSBzZXQuCi0rCSAqLwotKwlpZiAocnhjX2RseV9l bikKLSsJCSpyeGNfZGx5X2VuID0gMDsKLSsKLSsJcmV0dXJuIGRmbHQ7Ci0rfQotKwotK3N0YXRp YyBpbnQgeXRwaHlfcmdtaWlfY2xrX2RlbGF5X2NvbmZpZyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5 ZGV2KQotK3sKLSsJaW50IHRiX3NpemUgPSBBUlJBWV9TSVpFKHl0cGh5X3JnbWlpX2RlbGF5cyk7 Ci0rCXUxNiByeGNfZGx5X2VuID0gWVQ4NTIxX0NDUl9SWENfRExZX0VOOwotKwl1MzIgcnhfcmVn LCB0eF9yZWc7Ci0rCXUxNiBtYXNrLCB2YWwgPSAwOwotKwlpbnQgcmV0OwotKwotKwlyeF9yZWcg PSB5dHBoeV9nZXRfZGVsYXlfcmVnX3ZhbHVlKHBoeWRldiwgInJ4LWludGVybmFsLWRlbGF5LXBz IiwKLSsJCQkJCSAgIHl0cGh5X3JnbWlpX2RlbGF5cywgdGJfc2l6ZSwKLSsJCQkJCSAgICZyeGNf ZGx5X2VuLAotKwkJCQkJICAgWVQ4NTIxX1JDMVJfUkdNSUlfMV85NTBfTlMpOwotKwl0eF9yZWcg PSB5dHBoeV9nZXRfZGVsYXlfcmVnX3ZhbHVlKHBoeWRldiwgInR4LWludGVybmFsLWRlbGF5LXBz IiwKLSsJCQkJCSAgIHl0cGh5X3JnbWlpX2RlbGF5cywgdGJfc2l6ZSwgTlVMTCwKLSsJCQkJCSAg IFlUODUyMV9SQzFSX1JHTUlJXzFfOTUwX05TKTsKLSsKLSsJc3dpdGNoIChwaHlkZXYtPmludGVy ZmFjZSkgewotKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSToKLSsJCXJ4Y19kbHlfZW4g PSAwOwotKwkJYnJlYWs7Ci0rCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1JYSUQ6Ci0r CQl2YWwgfD0gRklFTERfUFJFUChZVDg1MjFfUkMxUl9SWF9ERUxBWV9NQVNLLCByeF9yZWcpOwot KwkJYnJlYWs7Ci0rCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6Ci0rCQlyeGNf ZGx5X2VuID0gMDsKLSsJCXZhbCB8PSBGSUVMRF9QUkVQKFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZ X01BU0ssIHR4X3JlZyk7Ci0rCQlicmVhazsKLSsJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdN SUlfSUQ6Ci0rCQl2YWwgfD0gRklFTERfUFJFUChZVDg1MjFfUkMxUl9SWF9ERUxBWV9NQVNLLCBy eF9yZWcpIHwKLSsJCSAgICAgICBGSUVMRF9QUkVQKFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01B U0ssIHR4X3JlZyk7Ci0rCQlicmVhazsKLSsJZGVmYXVsdDogLyogZG8gbm90IHN1cHBvcnQgb3Ro ZXIgbW9kZXMgKi8KLSsJCXJldHVybiAtRU9QTk9UU1VQUDsKLSsJfQotKwotKwlyZXQgPSB5dHBo eV9tb2RpZnlfZXh0KHBoeWRldiwgWVQ4NTIxX0NISVBfQ09ORklHX1JFRywKLSsJCQkgICAgICAg WVQ4NTIxX0NDUl9SWENfRExZX0VOLCByeGNfZGx5X2VuKTsKLSsJaWYgKHJldCA8IDApCi0rCQly ZXR1cm4gcmV0OwotKwotKwkvKiBHZW5lcmFsbHksIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gYWRq dXN0IFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZICovCi0rCW1hc2sgPSBZVDg1MjFfUkMxUl9SWF9E RUxBWV9NQVNLIHwgWVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfTUFTSzsKLSsJcmV0dXJuIHl0cGh5 X21vZGlmeV9leHQocGh5ZGV2LCBZVDg1MjFfUkdNSUlfQ09ORklHMV9SRUcsIG1hc2ssIHZhbCk7 Ci0rfQotKwotIC8qKgotICAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVu IHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGUKLSAgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSAm c3RydWN0IHBoeV9kZXZpY2UKLUBAIC02NDgsOSArNzc3LDEyIEBAIHN0YXRpYyBpbnQgeXQ4NTIx X3dyaXRlX3BhZ2Uoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IHBhZ2UpCi0gICovCi0g c3RhdGljIGludCB5dDg1MjFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKLSB7Ci0r CXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9kZTsKLSAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBoeWRldi0+bWRpby5kZXY7Ci0gCXN0cnVjdCB5dDg1MjFf cHJpdiAqcHJpdjsKLSAJaW50IGNoaXBfY29uZmlnOwotKwl1MTYgbWFzaywgdmFsOwotKwl1MzIg ZnJlcTsKLSAJaW50IHJldDsKLSAKLSAJcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigq cHJpdiksIEdGUF9LRVJORUwpOwotQEAgLTY5NSw3ICs4MjcsNDUgQEAgc3RhdGljIGludCB5dDg1 MjFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKLSAJCQlyZXR1cm4gcmV0OwotIAl9 Ci0gCi0tCXJldHVybiAwOwotKwlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgIm1vdG9y Y29tbSxjbGstb3V0LWZyZXF1ZW5jeS1oeiIsICZmcmVxKSkKLSsJCWZyZXEgPSBZVFBIWV9EVFNf T1VUUFVUX0NMS19ESVM7Ci0rCi0rCWlmIChwaHlkZXYtPmRydi0+cGh5X2lkID09IFBIWV9JRF9Z VDg1MjEpIHsKLSsJCXN3aXRjaCAoZnJlcSkgewotKwkJY2FzZSBZVFBIWV9EVFNfT1VUUFVUX0NM S19ESVM6Ci0rCQkJbWFzayA9IFlUODUyMV9TQ1JfU1lOQ0VfRU5BQkxFOwotKwkJCXZhbCA9IDA7 Ci0rCQkJYnJlYWs7Ci0rCQljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzI1TToKLSsJCQltYXNr ID0gWVQ4NTIxX1NDUl9TWU5DRV9FTkFCTEUgfAotKwkJCSAgICAgICBZVDg1MjFfU0NSX0NMS19T UkNfTUFTSyB8Ci0rCQkJICAgICAgIFlUODUyMV9TQ1JfQ0xLX0ZSRV9TRUxfMTI1TTsKLSsJCQl2 YWwgPSBZVDg1MjFfU0NSX1NZTkNFX0VOQUJMRSB8Ci0rCQkJICAgICAgRklFTERfUFJFUChZVDg1 MjFfU0NSX0NMS19TUkNfTUFTSywKLSsJCQkJCSBZVDg1MjFfU0NSX0NMS19TUkNfUkVGXzI1TSk7 Ci0rCQkJYnJlYWs7Ci0rCQljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzEyNU06Ci0rCQkJbWFz ayA9IFlUODUyMV9TQ1JfU1lOQ0VfRU5BQkxFIHwKLSsJCQkgICAgICAgWVQ4NTIxX1NDUl9DTEtf U1JDX01BU0sgfAotKwkJCSAgICAgICBZVDg1MjFfU0NSX0NMS19GUkVfU0VMXzEyNU07Ci0rCQkJ dmFsID0gWVQ4NTIxX1NDUl9TWU5DRV9FTkFCTEUgfAotKwkJCSAgICAgIFlUODUyMV9TQ1JfQ0xL X0ZSRV9TRUxfMTI1TSB8Ci0rCQkJICAgICAgRklFTERfUFJFUChZVDg1MjFfU0NSX0NMS19TUkNf TUFTSywKLSsJCQkJCSBZVDg1MjFfU0NSX0NMS19TUkNfUExMXzEyNU0pOwotKwkJCWJyZWFrOwot KwkJZGVmYXVsdDoKLSsJCQlwaHlkZXZfd2FybihwaHlkZXYsICJGcmVxIGVycjoldVxuIiwgZnJl cSk7Ci0rCQkJcmV0dXJuIC1FSU5WQUw7Ci0rCQl9Ci0rCX0gZWxzZSBpZiAocGh5ZGV2LT5kcnYt PnBoeV9pZCA9PSBQSFlfSURfWVQ4NTMxUykgewotKwkJcmV0dXJuIDA7Ci0rCX0gZWxzZSB7Ci0r CQlwaHlkZXZfd2FybihwaHlkZXYsICJQSFkgaWQgZXJyXG4iKTsKLSsJCXJldHVybiAtRUlOVkFM OwotKwl9Ci0rCi0rCXJldHVybiB5dHBoeV9tb2RpZnlfZXh0X3dpdGhfbG9jayhwaHlkZXYsIFlU UEhZX1NZTkNFX0NGR19SRUcsIG1hc2ssCi0rCQkJCQkgIHZhbCk7Ci0gfQotIAotIC8qKgotQEAg LTExODAsNjEgKzEzNTAsMzYgQEAgc3RhdGljIGludCB5dDg1MjFfcmVzdW1lKHN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYpCi0gICovCi0gc3RhdGljIGludCB5dDg1MjFfY29uZmlnX2luaXQoc3Ry dWN0IHBoeV9kZXZpY2UgKnBoeWRldikKLSB7Ci0rCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9 IHBoeWRldi0+bWRpby5kZXYub2Zfbm9kZTsKLSAJaW50IG9sZF9wYWdlOwotIAlpbnQgcmV0ID0g MDsKLS0JdTE2IHZhbDsKLSAKLSAJb2xkX3BhZ2UgPSBwaHlfc2VsZWN0X3BhZ2UocGh5ZGV2LCBZ VDg1MjFfUlNTUl9VVFBfU1BBQ0UpOwotIAlpZiAob2xkX3BhZ2UgPCAwKQotIAkJZ290byBlcnJf cmVzdG9yZV9wYWdlOwotIAotLQlzd2l0Y2ggKHBoeWRldi0+aW50ZXJmYWNlKSB7Ci0tCWNhc2Ug UEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOgotLQkJdmFsID0gWVQ4NTIxX1JDMVJfR0VfVFhfREVM QVlfRElTIHwgWVQ4NTIxX1JDMVJfRkVfVFhfREVMQVlfRElTOwotLQkJdmFsIHw9IFlUODUyMV9S QzFSX1JYX0RFTEFZX0RJUzsKLS0JCWJyZWFrOwotLQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9S R01JSV9SWElEOgotLQkJdmFsID0gWVQ4NTIxX1JDMVJfR0VfVFhfREVMQVlfRElTIHwgWVQ4NTIx X1JDMVJfRkVfVFhfREVMQVlfRElTOwotLQkJdmFsIHw9IFlUODUyMV9SQzFSX1JYX0RFTEFZX0VO OwotLQkJYnJlYWs7Ci0tCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6Ci0tCQl2 YWwgPSBZVDg1MjFfUkMxUl9HRV9UWF9ERUxBWV9FTiB8IFlUODUyMV9SQzFSX0ZFX1RYX0RFTEFZ X0VOOwotLQkJdmFsIHw9IFlUODUyMV9SQzFSX1JYX0RFTEFZX0RJUzsKLS0JCWJyZWFrOwotLQlj YXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDoKLS0JCXZhbCA9IFlUODUyMV9SQzFSX0dF X1RYX0RFTEFZX0VOIHwgWVQ4NTIxX1JDMVJfRkVfVFhfREVMQVlfRU47Ci0tCQl2YWwgfD0gWVQ4 NTIxX1JDMVJfUlhfREVMQVlfRU47Ci0tCQlicmVhazsKLS0JY2FzZSBQSFlfSU5URVJGQUNFX01P REVfU0dNSUk6Ci0tCQlicmVhazsKLS0JZGVmYXVsdDogLyogZG8gbm90IHN1cHBvcnQgb3RoZXIg bW9kZXMgKi8KLS0JCXJldCA9IC1FT1BOT1RTVVBQOwotLQkJZ290byBlcnJfcmVzdG9yZV9wYWdl OwotLQl9Ci0tCi0gCS8qIHNldCByZ21paSBkZWxheSBtb2RlICovCi0gCWlmIChwaHlkZXYtPmlu dGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUkpIHsKLS0JCXJldCA9IHl0cGh5X21v ZGlmeV9leHQocGh5ZGV2LCBZVDg1MjFfUkdNSUlfQ09ORklHMV9SRUcsCi0tCQkJCSAgICAgICAo WVQ4NTIxX1JDMVJfUlhfREVMQVlfTUFTSyB8Ci0tCQkJCSAgICAgICBZVDg1MjFfUkMxUl9GRV9U WF9ERUxBWV9NQVNLIHwKLS0JCQkJICAgICAgIFlUODUyMV9SQzFSX0dFX1RYX0RFTEFZX01BU0sp LAotLQkJCQkgICAgICAgdmFsKTsKLSsJCXJldCA9IHl0cGh5X3JnbWlpX2Nsa19kZWxheV9jb25m aWcocGh5ZGV2KTsKLSAJCWlmIChyZXQgPCAwKQotIAkJCWdvdG8gZXJyX3Jlc3RvcmVfcGFnZTsK LSAJfQotIAotLQkvKiBkaXNhYmxlIGF1dG8gc2xlZXAgKi8KLS0JcmV0ID0geXRwaHlfbW9kaWZ5 X2V4dChwaHlkZXYsIFlUODUyMV9FWFRSRUdfU0xFRVBfQ09OVFJPTDFfUkVHLAotLQkJCSAgICAg ICBZVDg1MjFfRVNDMVJfU0xFRVBfU1csIDApOwotLQlpZiAocmV0IDwgMCkKLS0JCWdvdG8gZXJy X3Jlc3RvcmVfcGFnZTsKLS0KLS0JLyogZW5hYmxlIFJYQyBjbG9jayB3aGVuIG5vIHdpcmUgcGx1 ZyAqLwotLQlyZXQgPSB5dHBoeV9tb2RpZnlfZXh0KHBoeWRldiwgWVQ4NTIxX0NMT0NLX0dBVElO R19SRUcsCi0tCQkJICAgICAgIFlUODUyMV9DR1JfUlhfQ0xLX0VOLCAwKTsKLS0JaWYgKHJldCA8 IDApCi0tCQlnb3RvIGVycl9yZXN0b3JlX3BhZ2U7Ci0rCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jv b2wobm9kZSwgIm1vdG9yY29tbSxhdXRvLXNsZWVwLWRpc2FibGVkIikpIHsKLSsJCS8qIGRpc2Fi bGUgYXV0byBzbGVlcCAqLwotKwkJcmV0ID0geXRwaHlfbW9kaWZ5X2V4dChwaHlkZXYsIFlUODUy MV9FWFRSRUdfU0xFRVBfQ09OVFJPTDFfUkVHLAotKwkJCQkgICAgICAgWVQ4NTIxX0VTQzFSX1NM RUVQX1NXLCAwKTsKLSsJCWlmIChyZXQgPCAwKQotKwkJCWdvdG8gZXJyX3Jlc3RvcmVfcGFnZTsK LSsJfQotIAotKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJtb3RvcmNvbW0sa2Vl cC1wbGwtZW5hYmxlZCIpKSB7Ci0rCQkvKiBlbmFibGUgUlhDIGNsb2NrIHdoZW4gbm8gd2lyZSBw bHVnICovCi0rCQlyZXQgPSB5dHBoeV9tb2RpZnlfZXh0KHBoeWRldiwgWVQ4NTIxX0NMT0NLX0dB VElOR19SRUcsCi0rCQkJCSAgICAgICBZVDg1MjFfQ0dSX1JYX0NMS19FTiwgMCk7Ci0rCQlpZiAo cmV0IDwgMCkKLSsJCQlnb3RvIGVycl9yZXN0b3JlX3BhZ2U7Ci0rCX0KLSBlcnJfcmVzdG9yZV9w YWdlOgotIAlyZXR1cm4gcGh5X3Jlc3RvcmVfcGFnZShwaHlkZXYsIG9sZF9wYWdlLCByZXQpOwot IH0KLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8w MDY3LW5ldC1waHktQWRkLWR0cy1zdXBwb3J0LWZvci1Nb3RvcmNvbW0teXQ4NTMxcy1naWdhYmku cGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2Ny1uZXQtcGh5LUFkZC1kdHMtc3Vw cG9ydC1mb3ItTW90b3Jjb21tLXl0ODUzMXMtZ2lnYWJpLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAyYWFjOWFlYjI1ZmEzLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bGludXg2LjIvcGF0Y2hlcy8wMDY3LW5ldC1waHktQWRkLWR0cy1zdXBwb3J0LWZvci1Nb3RvcmNv bW0teXQ4NTMxcy1naWdhYmkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAot RnJvbSA1ZDk0MmVmZTAwNmM4ZDIyY2YwM2JlN2MxNDIzZTM3NjY3NTYwNzI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogRnJhbmsgU2FlIDxGcmFuay5TYWVAbW90b3ItY29tbS5jb20+ Ci1EYXRlOiBUaHUsIDIgRmViIDIwMjMgMTE6MDA6MzYgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSCA2 Ny83MF0gbmV0OiBwaHk6IEFkZCBkdHMgc3VwcG9ydCBmb3IgTW90b3Jjb21tIHl0ODUzMXMgZ2ln YWJpdAotIGV0aGVybmV0IHBoeQotCi1BZGQgZHRzIHN1cHBvcnQgZm9yIE1vdG9yY29tbSB5dDg1 MzFzIGdpZ2FiaXQgZXRoZXJuZXQgcGh5LgotIENoYW5nZSB5dDg1MjFfcHJvYmUgdG8gc3VwcG9y dCBjbGsgY29uZmlnIG9mIHl0ODUzMXMuIEJlY2FzZQotIHl0ODUyMV9wcm9iZSBkb2VzIHRoZSB0 aGluZ3Mgd2hpY2ggeXQ4NTMxcyBpcyBuZWVkZWQsIHNvCi0gcmVtb3ZlZCB5dDg1MzFzIGZ1bmN0 aW9uLgotIFRoaXMgcGF0Y2ggaGFzIGJlZW4gdmVyaWZpZWQgb24gQU0zMzV4IHBsYXRmb3JtIHdp dGggeXQ4NTMxcyBib2FyZC4KLQotU2lnbmVkLW9mZi1ieTogRnJhbmsgU2FlIDxGcmFuay5TYWVA bW90b3ItY29tbS5jb20+Ci1SZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNo PgotLS0tCi0gZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jIHwgNTEgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCsp LCAyNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNv bW0uYyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwotaW5kZXggZmMwNmZlNmVmOWJhLi43 ODM5MjE3NDUzNmIgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKLSsr KyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwotQEAgLTI1OCw4ICsyNTgsNiBAQAotICNk ZWZpbmUgWVQ4NTMxX1NDUl9DTEtfU1JDX0NMT0NLX0ZST01fRElHSVRBTAkzCi0gI2RlZmluZSBZ VDg1MzFfU0NSX0NMS19TUkNfUkVGXzI1TQkJNAotICNkZWZpbmUgWVQ4NTMxX1NDUl9DTEtfU1JD X1NTQ18yNU0JCTUKLS0jZGVmaW5lIFlUODUzMVNfU1lOQ0VfQ0ZHX1JFRwkJCTB4QTAxMgotLSNk ZWZpbmUgWVQ4NTMxU19TQ1JfU1lOQ0VfRU5BQkxFCQlCSVQoNikKLSAKLSAvKiBFeHRlbmRlZCBS ZWdpc3RlciAgZW5kICovCi0gCi1AQCAtODU4LDcgKzg1NiwzMiBAQCBzdGF0aWMgaW50IHl0ODUy MV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQotIAkJCXJldHVybiAtRUlOVkFMOwot IAkJfQotIAl9IGVsc2UgaWYgKHBoeWRldi0+ZHJ2LT5waHlfaWQgPT0gUEhZX0lEX1lUODUzMVMp IHsKLS0JCXJldHVybiAwOwotKwkJc3dpdGNoIChmcmVxKSB7Ci0rCQljYXNlIFlUUEhZX0RUU19P VVRQVVRfQ0xLX0RJUzoKLSsJCQltYXNrID0gWVQ4NTMxX1NDUl9TWU5DRV9FTkFCTEU7Ci0rCQkJ dmFsID0gMDsKLSsJCQlicmVhazsKLSsJCWNhc2UgWVRQSFlfRFRTX09VVFBVVF9DTEtfMjVNOgot KwkJCW1hc2sgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8Ci0rCQkJICAgICAgIFlUODUzMV9T Q1JfQ0xLX1NSQ19NQVNLIHwKLSsJCQkgICAgICAgWVQ4NTMxX1NDUl9DTEtfRlJFX1NFTF8xMjVN OwotKwkJCXZhbCA9IFlUODUzMV9TQ1JfU1lOQ0VfRU5BQkxFIHwKLSsJCQkgICAgICBGSUVMRF9Q UkVQKFlUODUzMV9TQ1JfQ0xLX1NSQ19NQVNLLAotKwkJCQkJIFlUODUzMV9TQ1JfQ0xLX1NSQ19S RUZfMjVNKTsKLSsJCQlicmVhazsKLSsJCWNhc2UgWVRQSFlfRFRTX09VVFBVVF9DTEtfMTI1TToK LSsJCQltYXNrID0gWVQ4NTMxX1NDUl9TWU5DRV9FTkFCTEUgfAotKwkJCSAgICAgICBZVDg1MzFf U0NSX0NMS19TUkNfTUFTSyB8Ci0rCQkJICAgICAgIFlUODUzMV9TQ1JfQ0xLX0ZSRV9TRUxfMTI1 TTsKLSsJCQl2YWwgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8Ci0rCQkJICAgICAgWVQ4NTMx X1NDUl9DTEtfRlJFX1NFTF8xMjVNIHwKLSsJCQkgICAgICBGSUVMRF9QUkVQKFlUODUzMV9TQ1Jf Q0xLX1NSQ19NQVNLLAotKwkJCQkJIFlUODUzMV9TQ1JfQ0xLX1NSQ19QTExfMTI1TSk7Ci0rCQkJ YnJlYWs7Ci0rCQlkZWZhdWx0OgotKwkJCXBoeWRldl93YXJuKHBoeWRldiwgIkZyZXEgZXJyOiV1 XG4iLCBmcmVxKTsKLSsJCQlyZXR1cm4gLUVJTlZBTDsKLSsJCX0KLSAJfSBlbHNlIHsKLSAJCXBo eWRldl93YXJuKHBoeWRldiwgIlBIWSBpZCBlcnJcbiIpOwotIAkJcmV0dXJuIC1FSU5WQUw7Ci1A QCAtODY4LDI2ICs4OTEsNiBAQCBzdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2Rl dmljZSAqcGh5ZGV2KQotIAkJCQkJICB2YWwpOwotIH0KLSAKLS0vKioKLS0gKiB5dDg1MzFzX3By b2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxpbmdfbW9kZQot LSAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhICZzdHJ1Y3QgcGh5X2RldmljZQotLSAqCi0tICog cmV0dXJucyAwIG9yIG5lZ2F0aXZlIGVycm5vIGNvZGUKLS0gKi8KLS1zdGF0aWMgaW50IHl0ODUz MXNfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKLS17Ci0tCWludCByZXQ7Ci0tCi0t CS8qIERpc2FibGUgU3luY0UgY2xvY2sgb3V0cHV0IGJ5IGRlZmF1bHQgKi8KLS0JcmV0ID0geXRw aHlfbW9kaWZ5X2V4dF93aXRoX2xvY2socGh5ZGV2LCBZVDg1MzFTX1NZTkNFX0NGR19SRUcsCi0t CQkJCQkgWVQ4NTMxU19TQ1JfU1lOQ0VfRU5BQkxFLCAwKTsKLS0JaWYgKHJldCA8IDApCi0tCQly ZXR1cm4gcmV0OwotLQotLQkvKiBzYW1lIGFzIHl0ODUyMV9wcm9iZSAqLwotLQlyZXR1cm4geXQ4 NTIxX3Byb2JlKHBoeWRldik7Ci0tfQotLQotIC8qKgotICAqIHl0cGh5X3V0cF9yZWFkX2xwYSgp IC0gcmVhZCBMUEEgdGhlbiBzZXR1cCBscF9hZHZlcnRpc2luZyBmb3IgdXRwCi0gICogQHBoeWRl djogYSBwb2ludGVyIHRvIGEgJnN0cnVjdCBwaHlfZGV2aWNlCi1AQCAtMTk3MCw3ICsxOTczLDcg QEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG1vdG9yY29tbV9waHlfZHJ2c1tdID0gewotIAkJ UEhZX0lEX01BVENIX0VYQUNUKFBIWV9JRF9ZVDg1MzFTKSwKLSAJCS5uYW1lCQk9ICJZVDg1MzFT IEdpZ2FiaXQgRXRoZXJuZXQiLAotIAkJLmdldF9mZWF0dXJlcwk9IHl0ODUyMV9nZXRfZmVhdHVy ZXMsCi0tCQkucHJvYmUJCT0geXQ4NTMxc19wcm9iZSwKLSsJCS5wcm9iZQkJPSB5dDg1MjFfcHJv YmUsCi0gCQkucmVhZF9wYWdlCT0geXQ4NTIxX3JlYWRfcGFnZSwKLSAJCS53cml0ZV9wYWdlCT0g eXQ4NTIxX3dyaXRlX3BhZ2UsCi0gCQkuZ2V0X3dvbAk9IHl0cGh5X2dldF93b2wsCi0tLSAKLTIu MzkuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA2OC1uZXQtcGh5 LUFkZC1kcml2ZXItZm9yLU1vdG9yY29tbS15dDg1MzEtZ2lnYWJpdC1ldGhlLnBhdGNoIGIvc3Jj cGtncy9saW51eDYuMi9wYXRjaGVzLzAwNjgtbmV0LXBoeS1BZGQtZHJpdmVyLWZvci1Nb3RvcmNv bW0teXQ4NTMxLWdpZ2FiaXQtZXRoZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggY2Q2M2U0OTY0NDhhOS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpbnV4Ni4yL3Bh dGNoZXMvMDA2OC1uZXQtcGh5LUFkZC1kcml2ZXItZm9yLU1vdG9yY29tbS15dDg1MzEtZ2lnYWJp dC1ldGhlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzA4ICswLDAgQEAKLUZyb20gNDA2N2M1 MzFkOWVkNGNjYWIwZDEzNGZiNjQ4NTZhNjJhYzkwNDRjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IEZyYW5rIFNhZSA8RnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tPgotRGF0ZTogVGh1 LCAyIEZlYiAyMDIzIDExOjAwOjM3ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggNjgvNzBdIG5ldDog cGh5OiBBZGQgZHJpdmVyIGZvciBNb3RvcmNvbW0geXQ4NTMxIGdpZ2FiaXQKLSBldGhlcm5ldCBw aHkKLQotQWRkIGEgZHJpdmVyIGZvciB0aGUgbW90b3Jjb21tIHl0ODUzMSBnaWdhYml0IGV0aGVy bmV0IHBoeS4gV2UgaGF2ZQotIHZlcmlmaWVkIHRoZSBkcml2ZXIgb24gQU0zMzV4IHBsYXRmb3Jt IHdpdGggeXQ4NTMxIGJvYXJkLiBPbiB0aGUKLSBib2FyZCwgeXQ4NTMxIGdpZ2FiaXQgZXRoZXJu ZXQgcGh5IHdvcmtzIGluIHV0cCBtb2RlLCBSR01JSQotIGludGVyZmFjZSwgc3VwcG9ydHMgMTAw ME0vMTAwTS8xME0gc3BlZWRzLCBhbmQgd29sKG1hZ2ljIHBhY2thZ2UpLgotCi1TaWduZWQtb2Zm LWJ5OiBGcmFuayBTYWUgPEZyYW5rLlNhZUBtb3Rvci1jb21tLmNvbT4KLVJldmlld2VkLWJ5OiBB bmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+Ci0tLS0KLSBkcml2ZXJzL25ldC9waHkvS2NvbmZp ZyAgICAgfCAgIDIgKy0KLSBkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgfCAyMDggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystCi0gMiBmaWxlcyBjaGFuZ2VkLCAyMDcgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Bo eS9LY29uZmlnIGIvZHJpdmVycy9uZXQvcGh5L0tjb25maWcKLWluZGV4IDEzMjcyOTBkZWNhYi4u NmJmNTU3ZWQwYzhlIDEwMDY0NAotLS0tIGEvZHJpdmVycy9uZXQvcGh5L0tjb25maWcKLSsrKyBi L2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIGNvbmZpZyBNT1RP UkNPTU1fUEhZCi0gCXRyaXN0YXRlICJNb3RvcmNvbW0gUEhZcyIKLSAJaGVscAotIAkgIEVuYWJs ZXMgc3VwcG9ydCBmb3IgTW90b3Jjb21tIG5ldHdvcmsgUEhZcy4KLS0JICBDdXJyZW50bHkgc3Vw cG9ydHMgdGhlIFlUODUxMSwgWVQ4NTIxLCBZVDg1MzFTIEdpZ2FiaXQgRXRoZXJuZXQgUEhZcy4K LSsJICBDdXJyZW50bHkgc3VwcG9ydHMgWVQ4NXh4IEdpZ2FiaXQgRXRoZXJuZXQgUEhZcy4KLSAK LSBjb25maWcgTkFUSU9OQUxfUEhZCi0gCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9y IFBIWXMiCi1kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jIGIvZHJpdmVy cy9uZXQvcGh5L21vdG9yY29tbS5jCi1pbmRleCA3ODM5MjE3NDUzNmIuLjNmOTY2NTljYWI4YyAx MDA2NDQKLS0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwotKysrIGIvZHJpdmVycy9u ZXQvcGh5L21vdG9yY29tbS5jCi1AQCAtMSw2ICsxLDYgQEAKLSAvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMCsKLSAvKgotLSAqIE1vdG9yY29tbSA4NTExLzg1MjEvODUzMVMgUEhZ IGRyaXZlci4KLSsgKiBNb3RvcmNvbW0gODUxMS84NTIxLzg1MzEvODUzMVMgUEhZIGRyaXZlci4K LSAgKgotICAqIEF1dGhvcjogUGV0ZXIgR2VpcyA8cGd3aXBlb3V0QGdtYWlsLmNvbT4KLSAgKiBB dXRob3I6IEZyYW5rIDxGcmFuay5TYWVAbW90b3ItY29tbS5jb20+Ci1AQCAtMTQsNiArMTQsNyBA QAotIAotICNkZWZpbmUgUEhZX0lEX1lUODUxMQkJMHgwMDAwMDEwYQotICNkZWZpbmUgUEhZX0lE X1lUODUyMQkJMHgwMDAwMDExQQotKyNkZWZpbmUgUEhZX0lEX1lUODUzMQkJMHg0RjUxRTkxQgot ICNkZWZpbmUgUEhZX0lEX1lUODUzMVMJCTB4NEY1MUU5MUEKLSAKLSAvKiBZVDg1MjEvWVQ4NTMx UyBSZWdpc3RlciBPdmVydmlldwotQEAgLTUxNyw2ICs1MTgsNjEgQEAgc3RhdGljIGludCB5dHBo eV9zZXRfd29sKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHN0cnVjdCBldGh0b29sX3dvbGlu Zm8gKndvbCkKLSAJcmV0dXJuIHBoeV9yZXN0b3JlX3BhZ2UocGh5ZGV2LCBvbGRfcGFnZSwgcmV0 KTsKLSB9Ci0gCi0rc3RhdGljIGludCB5dDg1MzFfc2V0X3dvbChzdHJ1Y3QgcGh5X2RldmljZSAq cGh5ZGV2LAotKwkJCSAgc3RydWN0IGV0aHRvb2xfd29saW5mbyAqd29sKQotK3sKLSsJY29uc3Qg dTE2IG1hY19hZGRyX3JlZ1tdID0gewotKwkJWVRQSFlfV09MX01BQ0FERFIyX1JFRywKLSsJCVlU UEhZX1dPTF9NQUNBRERSMV9SRUcsCi0rCQlZVFBIWV9XT0xfTUFDQUREUjBfUkVHLAotKwl9Owot Kwljb25zdCB1OCAqbWFjX2FkZHI7Ci0rCXUxNiBtYXNrLCB2YWw7Ci0rCWludCByZXQ7Ci0rCXU4 IGk7Ci0rCi0rCWlmICh3b2wtPndvbG9wdHMgJiBXQUtFX01BR0lDKSB7Ci0rCQltYWNfYWRkciA9 IHBoeWRldi0+YXR0YWNoZWRfZGV2LT5kZXZfYWRkcjsKLSsKLSsJCS8qIFN0b3JlIHRoZSBkZXZp Y2UgYWRkcmVzcyBmb3IgdGhlIG1hZ2ljIHBhY2tldCAqLwotKwkJZm9yIChpID0gMDsgaSA8IDM7 IGkrKykgewotKwkJCXJldCA9IHl0cGh5X3dyaXRlX2V4dF93aXRoX2xvY2socGh5ZGV2LCBtYWNf YWRkcl9yZWdbaV0sCi0rCQkJCQkJCSgobWFjX2FkZHJbaSAqIDJdIDw8IDgpKSB8Ci0rCQkJCQkJ CShtYWNfYWRkcltpICogMiArIDFdKSk7Ci0rCQkJaWYgKHJldCA8IDApCi0rCQkJCXJldHVybiBy ZXQ7Ci0rCQl9Ci0rCi0rCQkvKiBFbmFibGUgV09MIGZlYXR1cmUgKi8KLSsJCW1hc2sgPSBZVFBI WV9XQ1JfUFVMU0VfV0lEVEhfTUFTSyB8IFlUUEhZX1dDUl9JTlRSX1NFTDsKLSsJCXZhbCA9IFlU UEhZX1dDUl9FTkFCTEUgfCBZVFBIWV9XQ1JfSU5UUl9TRUw7Ci0rCQl2YWwgfD0gWVRQSFlfV0NS X1RZUEVfUFVMU0UgfCBZVFBIWV9XQ1JfUFVMU0VfV0lEVEhfNjcyTVM7Ci0rCQlyZXQgPSB5dHBo eV9tb2RpZnlfZXh0X3dpdGhfbG9jayhwaHlkZXYsIFlUUEhZX1dPTF9DT05GSUdfUkVHLAotKwkJ CQkJCSBtYXNrLCB2YWwpOwotKwkJaWYgKHJldCA8IDApCi0rCQkJcmV0dXJuIHJldDsKLSsKLSsJ CS8qIEVuYWJsZSBXT0wgaW50ZXJydXB0ICovCi0rCQlyZXQgPSBwaHlfbW9kaWZ5KHBoeWRldiwg WVRQSFlfSU5URVJSVVBUX0VOQUJMRV9SRUcsIDAsCi0rCQkJCSBZVFBIWV9JRVJfV09MKTsKLSsJ CWlmIChyZXQgPCAwKQotKwkJCXJldHVybiByZXQ7Ci0rCX0gZWxzZSB7Ci0rCQkvKiBEaXNhYmxl IFdPTCBmZWF0dXJlICovCi0rCQltYXNrID0gWVRQSFlfV0NSX0VOQUJMRSB8IFlUUEhZX1dDUl9J TlRSX1NFTDsKLSsJCXJldCA9IHl0cGh5X21vZGlmeV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVRQ SFlfV09MX0NPTkZJR19SRUcsCi0rCQkJCQkJIG1hc2ssIDApOwotKwotKwkJLyogRGlzYWJsZSBX T0wgaW50ZXJydXB0ICovCi0rCQlyZXQgPSBwaHlfbW9kaWZ5KHBoeWRldiwgWVRQSFlfSU5URVJS VVBUX0VOQUJMRV9SRUcsCi0rCQkJCSBZVFBIWV9JRVJfV09MLCAwKTsKLSsJCWlmIChyZXQgPCAw KQotKwkJCXJldHVybiByZXQ7Ci0rCX0KLSsKLSsJcmV0dXJuIDA7Ci0rfQotKwotIHN0YXRpYyBp bnQgeXQ4NTExX3JlYWRfcGFnZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQotIHsKLSAJcmV0 dXJuIF9fcGh5X3JlYWQocGh5ZGV2LCBZVDg1MTFfUEFHRV9TRUxFQ1QpOwotQEAgLTc2Nyw2ICs4 MjMsMTcgQEAgc3RhdGljIGludCB5dHBoeV9yZ21paV9jbGtfZGVsYXlfY29uZmlnKHN0cnVjdCBw aHlfZGV2aWNlICpwaHlkZXYpCi0gCXJldHVybiB5dHBoeV9tb2RpZnlfZXh0KHBoeWRldiwgWVQ4 NTIxX1JHTUlJX0NPTkZJRzFfUkVHLCBtYXNrLCB2YWwpOwotIH0KLSAKLStzdGF0aWMgaW50IHl0 cGh5X3JnbWlpX2Nsa19kZWxheV9jb25maWdfd2l0aF9sb2NrKHN0cnVjdCBwaHlfZGV2aWNlICpw aHlkZXYpCi0rewotKwlpbnQgcmV0OwotKwotKwlwaHlfbG9ja19tZGlvX2J1cyhwaHlkZXYpOwot KwlyZXQgPSB5dHBoeV9yZ21paV9jbGtfZGVsYXlfY29uZmlnKHBoeWRldik7Ci0rCXBoeV91bmxv Y2tfbWRpb19idXMocGh5ZGV2KTsKLSsKLSsJcmV0dXJuIHJldDsKLSt9Ci0rCi0gLyoqCi0gICog eXQ4NTIxX3Byb2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxp bmdfbW9kZQotICAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhICZzdHJ1Y3QgcGh5X2RldmljZQot QEAgLTg5MSw2ICs5NTgsNDMgQEAgc3RhdGljIGludCB5dDg1MjFfcHJvYmUoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldikKLSAJCQkJCSAgdmFsKTsKLSB9Ci0gCi0rc3RhdGljIGludCB5dDg1MzFf cHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKLSt7Ci0rCXN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9kZTsKLSsJdTE2IG1hc2ssIHZhbDsKLSsJ dTMyIGZyZXE7Ci0rCi0rCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAibW90b3Jjb21t LGNsay1vdXQtZnJlcXVlbmN5LWh6IiwgJmZyZXEpKQotKwkJZnJlcSA9IFlUUEhZX0RUU19PVVRQ VVRfQ0xLX0RJUzsKLSsKLSsJc3dpdGNoIChmcmVxKSB7Ci0rCWNhc2UgWVRQSFlfRFRTX09VVFBV VF9DTEtfRElTOgotKwkJbWFzayA9IFlUODUzMV9TQ1JfU1lOQ0VfRU5BQkxFOwotKwkJdmFsID0g MDsKLSsJCWJyZWFrOwotKwljYXNlIFlUUEhZX0RUU19PVVRQVVRfQ0xLXzI1TToKLSsJCW1hc2sg PSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8IFlUODUzMV9TQ1JfQ0xLX1NSQ19NQVNLIHwKLSsJ CSAgICAgICBZVDg1MzFfU0NSX0NMS19GUkVfU0VMXzEyNU07Ci0rCQl2YWwgPSBZVDg1MzFfU0NS X1NZTkNFX0VOQUJMRSB8Ci0rCQkgICAgICBGSUVMRF9QUkVQKFlUODUzMV9TQ1JfQ0xLX1NSQ19N QVNLLAotKwkJCQkgWVQ4NTMxX1NDUl9DTEtfU1JDX1JFRl8yNU0pOwotKwkJYnJlYWs7Ci0rCWNh c2UgWVRQSFlfRFRTX09VVFBVVF9DTEtfMTI1TToKLSsJCW1hc2sgPSBZVDg1MzFfU0NSX1NZTkNF X0VOQUJMRSB8IFlUODUzMV9TQ1JfQ0xLX1NSQ19NQVNLIHwKLSsJCSAgICAgICBZVDg1MzFfU0NS X0NMS19GUkVfU0VMXzEyNU07Ci0rCQl2YWwgPSBZVDg1MzFfU0NSX1NZTkNFX0VOQUJMRSB8IFlU ODUzMV9TQ1JfQ0xLX0ZSRV9TRUxfMTI1TSB8Ci0rCQkgICAgICBGSUVMRF9QUkVQKFlUODUzMV9T Q1JfQ0xLX1NSQ19NQVNLLAotKwkJCQkgWVQ4NTMxX1NDUl9DTEtfU1JDX1BMTF8xMjVNKTsKLSsJ CWJyZWFrOwotKwlkZWZhdWx0OgotKwkJcGh5ZGV2X3dhcm4ocGh5ZGV2LCAiRnJlcSBlcnI6JXVc biIsIGZyZXEpOwotKwkJcmV0dXJuIC1FSU5WQUw7Ci0rCX0KLSsKLSsJcmV0dXJuIHl0cGh5X21v ZGlmeV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVRQSFlfU1lOQ0VfQ0ZHX1JFRywgbWFzaywKLSsJ CQkJCSAgdmFsKTsKLSt9Ci0rCi0gLyoqCi0gICogeXRwaHlfdXRwX3JlYWRfbHBhKCkgLSByZWFk IExQQSB0aGVuIHNldHVwIGxwX2FkdmVydGlzaW5nIGZvciB1dHAKLSAgKiBAcGh5ZGV2OiBhIHBv aW50ZXIgdG8gYSAmc3RydWN0IHBoeV9kZXZpY2UKLUBAIC0xMzg3LDYgKzE0OTEsOTQgQEAgc3Rh dGljIGludCB5dDg1MjFfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKLSAJ cmV0dXJuIHBoeV9yZXN0b3JlX3BhZ2UocGh5ZGV2LCBvbGRfcGFnZSwgcmV0KTsKLSB9Ci0gCi0r c3RhdGljIGludCB5dDg1MzFfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikK LSt7Ci0rCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9k ZTsKLSsJaW50IHJldDsKLSsKLSsJcmV0ID0geXRwaHlfcmdtaWlfY2xrX2RlbGF5X2NvbmZpZ193 aXRoX2xvY2socGh5ZGV2KTsKLSsJaWYgKHJldCA8IDApCi0rCQlyZXR1cm4gcmV0OwotKwotKwlp ZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJtb3RvcmNvbW0sYXV0by1zbGVlcC1kaXNh YmxlZCIpKSB7Ci0rCQkvKiBkaXNhYmxlIGF1dG8gc2xlZXAgKi8KLSsJCXJldCA9IHl0cGh5X21v ZGlmeV9leHRfd2l0aF9sb2NrKHBoeWRldiwKLSsJCQkJCQkgWVQ4NTIxX0VYVFJFR19TTEVFUF9D T05UUk9MMV9SRUcsCi0rCQkJCQkJIFlUODUyMV9FU0MxUl9TTEVFUF9TVywgMCk7Ci0rCQlpZiAo cmV0IDwgMCkKLSsJCQlyZXR1cm4gcmV0OwotKwl9Ci0rCi0rCWlmIChvZl9wcm9wZXJ0eV9yZWFk X2Jvb2wobm9kZSwgIm1vdG9yY29tbSxrZWVwLXBsbC1lbmFibGVkIikpIHsKLSsJCS8qIGVuYWJs ZSBSWEMgY2xvY2sgd2hlbiBubyB3aXJlIHBsdWcgKi8KLSsJCXJldCA9IHl0cGh5X21vZGlmeV9l eHRfd2l0aF9sb2NrKHBoeWRldiwKLSsJCQkJCQkgWVQ4NTIxX0NMT0NLX0dBVElOR19SRUcsCi0r CQkJCQkJIFlUODUyMV9DR1JfUlhfQ0xLX0VOLCAwKTsKLSsJCWlmIChyZXQgPCAwKQotKwkJCXJl dHVybiByZXQ7Ci0rCX0KLSsKLSsJcmV0dXJuIDA7Ci0rfQotKwotKy8qKgotKyAqIHl0ODUzMV9s aW5rX2NoYW5nZV9ub3RpZnkoKSAtIEFkanVzdCB0aGUgdHggY2xvY2sgZGlyZWN0aW9uIGFjY29y ZGluZyB0bwotKyAqIHRoZSBjdXJyZW50IHNwZWVkIGFuZCBkdHMgY29uZmlnLgotKyAqIEBwaHlk ZXY6IGEgcG9pbnRlciB0byBhICZzdHJ1Y3QgcGh5X2RldmljZQotKyAqCi0rICogTk9URTogVGhp cyBmdW5jdGlvbiBpcyBvbmx5IHVzZWQgdG8gYWRhcHQgdG8gVkYyIHdpdGggSkg3MTEwIFNvQy4g UGxlYXNlCi0rICoga2VlcCAibW90b3Jjb21tLHR4LWNsay1hZGotZW5hYmxlZCIgbm90IGV4aXN0 IGluIGR0cyB3aGVuIHRoZSBzb2MgaXMgbm90Ci0rICogSkg3MTEwLgotKyAqLwotK3N0YXRpYyB2 b2lkIHl0ODUzMV9saW5rX2NoYW5nZV9ub3RpZnkoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikK LSt7Ci0rCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9k ZTsKLSsJYm9vbCB0eF9jbGtfYWRqX2VuYWJsZWQgPSBmYWxzZTsKLSsJYm9vbCB0eF9jbGtfMTAw MF9pbnZlcnRlZDsKLSsJYm9vbCB0eF9jbGtfMTAwX2ludmVydGVkOwotKwlib29sIHR4X2Nsa18x MF9pbnZlcnRlZDsKLSsJdTE2IHZhbCA9IDA7Ci0rCWludCByZXQ7Ci0rCi0rCWlmIChvZl9wcm9w ZXJ0eV9yZWFkX2Jvb2wobm9kZSwgIm1vdG9yY29tbSx0eC1jbGstYWRqLWVuYWJsZWQiKSkKLSsJ CXR4X2Nsa19hZGpfZW5hYmxlZCA9IHRydWU7Ci0rCi0rCWlmICghdHhfY2xrX2Fkal9lbmFibGVk KQotKwkJcmV0dXJuOwotKwotKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJtb3Rv cmNvbW0sdHgtY2xrLTEwLWludmVydGVkIikpCi0rCQl0eF9jbGtfMTBfaW52ZXJ0ZWQgPSB0cnVl OwotKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5vZGUsICJtb3RvcmNvbW0sdHgtY2xrLTEw MC1pbnZlcnRlZCIpKQotKwkJdHhfY2xrXzEwMF9pbnZlcnRlZCA9IHRydWU7Ci0rCWlmIChvZl9w cm9wZXJ0eV9yZWFkX2Jvb2wobm9kZSwgIm1vdG9yY29tbSx0eC1jbGstMTAwMC1pbnZlcnRlZCIp KQotKwkJdHhfY2xrXzEwMDBfaW52ZXJ0ZWQgPSB0cnVlOwotKwotKwlpZiAocGh5ZGV2LT5zcGVl ZCA8IDApCi0rCQlyZXR1cm47Ci0rCi0rCXN3aXRjaCAocGh5ZGV2LT5zcGVlZCkgewotKwljYXNl IFNQRUVEXzEwMDA6Ci0rCQlpZiAodHhfY2xrXzEwMDBfaW52ZXJ0ZWQpCi0rCQkJdmFsID0gWVQ4 NTIxX1JDMVJfVFhfQ0xLX1NFTF9JTlZFUlRFRDsKLSsJCWJyZWFrOwotKwljYXNlIFNQRUVEXzEw MDoKLSsJCWlmICh0eF9jbGtfMTAwX2ludmVydGVkKQotKwkJCXZhbCA9IFlUODUyMV9SQzFSX1RY X0NMS19TRUxfSU5WRVJURUQ7Ci0rCQlicmVhazsKLSsJY2FzZSBTUEVFRF8xMDoKLSsJCWlmICh0 eF9jbGtfMTBfaW52ZXJ0ZWQpCi0rCQkJdmFsID0gWVQ4NTIxX1JDMVJfVFhfQ0xLX1NFTF9JTlZF UlRFRDsKLSsJCWJyZWFrOwotKwlkZWZhdWx0OgotKwkJcmV0dXJuOwotKwl9Ci0rCi0rCXJldCA9 IHl0cGh5X21vZGlmeV9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVQ4NTIxX1JHTUlJX0NPTkZJRzFf UkVHLAotKwkJCQkJIFlUODUyMV9SQzFSX1RYX0NMS19TRUxfSU5WRVJURUQsIHZhbCk7Ci0rCWlm IChyZXQgPCAwKQotKwkJcGh5ZGV2X3dhcm4ocGh5ZGV2LCAiTW9kaWZ5IFRYX0NMS19TRUwgZXJy OiVkXG4iLCByZXQpOwotK30KLSsKLSAvKioKLSAgKiB5dDg1MjFfcHJlcGFyZV9maWJlcl9mZWF0 dXJlcygpIC0gIEEgc21hbGwgaGVscGVyIGZ1bmN0aW9uIHRoYXQgc2V0dXAKLSAgKiBmaWJlcidz IGZlYXR1cmVzLgotQEAgLTE5NjksNiArMjE2MSwxNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2 ZXIgbW90b3Jjb21tX3BoeV9kcnZzW10gPSB7Ci0gCQkuc3VzcGVuZAk9IHl0ODUyMV9zdXNwZW5k LAotIAkJLnJlc3VtZQkJPSB5dDg1MjFfcmVzdW1lLAotIAl9LAotKwl7Ci0rCQlQSFlfSURfTUFU Q0hfRVhBQ1QoUEhZX0lEX1lUODUzMSksCi0rCQkubmFtZQkJPSAiWVQ4NTMxIEdpZ2FiaXQgRXRo ZXJuZXQiLAotKwkJLnByb2JlCQk9IHl0ODUzMV9wcm9iZSwKLSsJCS5jb25maWdfaW5pdAk9IHl0 ODUzMV9jb25maWdfaW5pdCwKLSsJCS5zdXNwZW5kCT0gZ2VucGh5X3N1c3BlbmQsCi0rCQkucmVz dW1lCQk9IGdlbnBoeV9yZXN1bWUsCi0rCQkuZ2V0X3dvbAk9IHl0cGh5X2dldF93b2wsCi0rCQku c2V0X3dvbAk9IHl0ODUzMV9zZXRfd29sLAotKwkJLmxpbmtfY2hhbmdlX25vdGlmeSA9IHl0ODUz MV9saW5rX2NoYW5nZV9ub3RpZnksCi0rCX0sCi0gCXsKLSAJCVBIWV9JRF9NQVRDSF9FWEFDVChQ SFlfSURfWVQ4NTMxUyksCi0gCQkubmFtZQkJPSAiWVQ4NTMxUyBHaWdhYml0IEV0aGVybmV0IiwK LUBAIC0xOTkwLDcgKzIxOTMsNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21t X3BoeV9kcnZzW10gPSB7Ci0gCi0gbW9kdWxlX3BoeV9kcml2ZXIobW90b3Jjb21tX3BoeV9kcnZz KTsKLSAKLS1NT0RVTEVfREVTQ1JJUFRJT04oIk1vdG9yY29tbSA4NTExLzg1MjEvODUzMVMgUEhZ IGRyaXZlciIpOwotK01PRFVMRV9ERVNDUklQVElPTigiTW90b3Jjb21tIDg1MTEvODUyMS84NTMx Lzg1MzFTIFBIWSBkcml2ZXIiKTsKLSBNT0RVTEVfQVVUSE9SKCJQZXRlciBHZWlzIik7Ci0gTU9E VUxFX0FVVEhPUigiRnJhbmsiKTsKLSBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1AQCAtMTk5OCw2 ICsyMjAxLDcgQEAgTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bWRpb19kZXZpY2VfaWQgX19tYXliZV91bnVzZWQgbW90b3Jjb21tX3RibFtdID0gewotIAl7IFBI WV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4NTExKSB9LAotIAl7IFBIWV9JRF9NQVRDSF9FWEFD VChQSFlfSURfWVQ4NTIxKSB9LAotKwl7IFBIWV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4NTMx KSB9LAotIAl7IFBIWV9JRF9NQVRDSF9FWEFDVChQSFlfSURfWVQ4NTMxUykgfSwKLSAJeyAvKiBz ZW50aW5hbCAqLyB9Ci0gfTsKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlu dXg2LjIvcGF0Y2hlcy8wMDY5LWR0LWJpbmRpbmdzLWh3bW9uLUFkZC1zdGFyZml2ZS1qaDcxeDAt dGVtcC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDY5LWR0LWJpbmRpbmdzLWh3 bW9uLUFkZC1zdGFyZml2ZS1qaDcxeDAtdGVtcC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMWY5MjQ5YmRhMjIyOC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpbnV4 Ni4yL3BhdGNoZXMvMDA2OS1kdC1iaW5kaW5ncy1od21vbi1BZGQtc3RhcmZpdmUtamg3MXgwLXRl bXAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi1Gcm9tIDI0MGIxNzFlYTBk YzMzMjU1YmY1M2RhMWJhMDdjMDI0OThhY2I5YWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgotRGF0ZTogTW9uLCAy NyBGZWIgMjAyMyAyMTo0MToyNCArMDgwMAotU3ViamVjdDogW1BBVENIIDY5LzcwXSBkdC1iaW5k aW5nczogaHdtb246IEFkZCBzdGFyZml2ZSxqaDcxeDAtdGVtcAotCi1BZGQgYmluZGluZ3MgZm9y IHRoZSB0ZW1wZXJhdHVyZSBzZW5zb3Igb24gdGhlIFN0YXJGaXZlIEpINzEwMCBhbmQKLUpINzEx MCBTb0NzLgotCi1TaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVz bWlsLmRrPgotU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5j b20+Ci1SZXZpZXdlZC1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KLS0tLQotIC4u Li9iaW5kaW5ncy9od21vbi9zdGFyZml2ZSxqaDcxeDAtdGVtcC55YW1sICB8IDcwICsrKysrKysr KysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBt b2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaHdtb24vc3RhcmZp dmUsamg3MXgwLXRlbXAueWFtbAotCi1kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL2h3bW9uL3N0YXJmaXZlLGpoNzF4MC10ZW1wLnlhbWwgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaHdtb24vc3RhcmZpdmUsamg3MXgwLXRlbXAueWFtbAot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwMC4uZjViMzQ1Mjg5MjhkCi0t LS0gL2Rldi9udWxsCi0rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaHdt b24vc3RhcmZpdmUsamg3MXgwLXRlbXAueWFtbAotQEAgLTAsMCArMSw3MCBAQAotKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlKQotKyVZQU1M IDEuMgotKy0tLQotKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvaHdtb24vc3Rh cmZpdmUsamg3MXgwLXRlbXAueWFtbCMKLSskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcv bWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKLSsKLSt0aXRsZTogU3RhckZpdmUgSkg3MXgwIFRlbXBl cmF0dXJlIFNlbnNvcgotKwotK21haW50YWluZXJzOgotKyAgLSBFbWlsIFJlbm5lciBCZXJ0aGlu ZyA8a2VybmVsQGVzbWlsLmRrPgotKwotK2Rlc2NyaXB0aW9uOiB8Ci0rICBTdGFyRml2ZSBUZWNo bm9sb2d5IENvLiBKSDcxeDAgZW1iZWRkZWQgdGVtcGVyYXR1cmUgc2Vuc29yCi0rCi0rcHJvcGVy dGllczoKLSsgIGNvbXBhdGlibGU6Ci0rICAgIGVudW06Ci0rICAgICAgLSBzdGFyZml2ZSxqaDcx MDAtdGVtcAotKyAgICAgIC0gc3RhcmZpdmUsamg3MTEwLXRlbXAKLSsKLSsgIHJlZzoKLSsgICAg bWF4SXRlbXM6IDEKLSsKLSsgIGNsb2NrczoKLSsgICAgbWluSXRlbXM6IDIKLSsgICAgbWF4SXRl bXM6IDIKLSsKLSsgIGNsb2NrLW5hbWVzOgotKyAgICBpdGVtczoKLSsgICAgICAtIGNvbnN0OiAi c2Vuc2UiCi0rICAgICAgLSBjb25zdDogImJ1cyIKLSsKLSsgICcjdGhlcm1hbC1zZW5zb3ItY2Vs bHMnOgotKyAgICBjb25zdDogMAotKwotKyAgcmVzZXRzOgotKyAgICBtaW5JdGVtczogMgotKyAg ICBtYXhJdGVtczogMgotKwotKyAgcmVzZXQtbmFtZXM6Ci0rICAgIGl0ZW1zOgotKyAgICAgIC0g Y29uc3Q6ICJzZW5zZSIKLSsgICAgICAtIGNvbnN0OiAiYnVzIgotKwotK3JlcXVpcmVkOgotKyAg LSBjb21wYXRpYmxlCi0rICAtIHJlZwotKyAgLSBjbG9ja3MKLSsgIC0gY2xvY2stbmFtZXMKLSsg IC0gcmVzZXRzCi0rICAtIHJlc2V0LW5hbWVzCi0rCi0rYWRkaXRpb25hbFByb3BlcnRpZXM6IGZh bHNlCi0rCi0rZXhhbXBsZXM6Ci0rICAtIHwKLSsgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Ns b2NrL3N0YXJmaXZlLWpoNzEwMC5oPgotKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcmVzZXQv c3RhcmZpdmUtamg3MTAwLmg+Ci0rCi0rICAgIHRlbXBlcmF0dXJlLXNlbnNvckAxMjRhMDAwMCB7 Ci0rICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEwMC10ZW1wIjsKLSsgICAgICAg IHJlZyA9IDwweDEyNGEwMDAwIDB4MTAwMDA+OwotKyAgICAgICAgY2xvY2tzID0gPCZjbGtnZW4g Skg3MTAwX0NMS19URU1QX1NFTlNFPiwKLSsgICAgICAgICAgICAgICAgIDwmY2xrZ2VuIEpINzEw MF9DTEtfVEVNUF9BUEI+OwotKyAgICAgICAgY2xvY2stbmFtZXMgPSAic2Vuc2UiLCAiYnVzIjsK LSsgICAgICAgICN0aGVybWFsLXNlbnNvci1jZWxscyA9IDwwPjsKLSsgICAgICAgIHJlc2V0cyA9 IDwmcnN0Z2VuIEpINzEwMF9SU1ROX1RFTVBfU0VOU0U+LAotKyAgICAgICAgICAgICAgICAgPCZy c3RnZW4gSkg3MTAwX1JTVE5fVEVNUF9BUEI+OwotKyAgICAgICAgcmVzZXQtbmFtZXMgPSAic2Vu c2UiLCAiYnVzIjsKLSsgICAgfTsKLS0tIAotMi4zOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGludXg2LjIvcGF0Y2hlcy8wMDcwLWh3bW9uLXNmY3RlbXAtQWRkLVN0YXJGaXZlLUpINzF4MC10 ZW1wZXJhdHVyZS1zZW5zb3IucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni4yL3BhdGNoZXMvMDA3MC1o d21vbi1zZmN0ZW1wLUFkZC1TdGFyRml2ZS1KSDcxeDAtdGVtcGVyYXR1cmUtc2Vuc29yLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWEwMDVkODcyNjkxLi4wMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbGludXg2LjIvcGF0Y2hlcy8wMDcwLWh3bW9uLXNmY3RlbXAtQWRk LVN0YXJGaXZlLUpINzF4MC10ZW1wZXJhdHVyZS1zZW5zb3IucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0NjcgKzAsMCBAQAotRnJvbSBiZTI5MTdjZmE0ZjdiZWQ5MmViZmE4ZDQzOWE0ZjBmYjM2 MWYyOGEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRW1pbCBSZW5uZXIgQmVydGhp bmcgPGtlcm5lbEBlc21pbC5kaz4KLURhdGU6IE1vbiwgMjcgRmViIDIwMjMgMjE6NDE6MjUgKzA4 MDAKLVN1YmplY3Q6IFtQQVRDSCA3MC83MF0gaHdtb246IChzZmN0ZW1wKSBBZGQgU3RhckZpdmUg Skg3MXgwIHRlbXBlcmF0dXJlIHNlbnNvcgotCi1BZGQgZHJpdmVyIGZvciB0aGUgU3RhckZpdmUg Skg3MXgwIHRlbXBlcmF0dXJlIHNlbnNvci4gWW91Ci1jYW4gZW5hYmxlL2Rpc2FibGUgaXQgYW5k IHJlYWQgdGVtcGVyYXR1cmUgaW4gbWlsbGkgQ2VsY2l1cwotdGhyb3VnaCBzeXNmcy4KLQotU2ln bmVkLW9mZi1ieTogRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KLUNvLWRl dmVsb3BlZC1ieTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3RhcmZpdmV0ZWNoLmNvbT4KLVNpZ25l ZC1vZmYtYnk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+Ci1TaWduZWQt b2ZmLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KLS0tLQotIERvY3Vt ZW50YXRpb24vaHdtb24vaW5kZXgucnN0ICAgfCAgIDEgKwotIERvY3VtZW50YXRpb24vaHdtb24v c2ZjdGVtcC5yc3QgfCAgMzMgKysrKwotIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAg fCAgIDggKwotIGRyaXZlcnMvaHdtb24vS2NvbmZpZyAgICAgICAgICAgfCAgMTAgKwotIGRyaXZl cnMvaHdtb24vTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwotIGRyaXZlcnMvaHdtb24vc2ZjdGVt cC5jICAgICAgICAgfCAzMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSA2IGZp bGVzIGNoYW5nZWQsIDM4NCBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3Vt ZW50YXRpb24vaHdtb24vc2ZjdGVtcC5yc3QKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9o d21vbi9zZmN0ZW1wLmMKLQotZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vaW5kZXgu cnN0IGIvRG9jdW1lbnRhdGlvbi9od21vbi9pbmRleC5yc3QKLWluZGV4IGZlMmNjNmI3MzYzNC4u YTY2NmUzNzA2ZWEyIDEwMDY0NAotLS0tIGEvRG9jdW1lbnRhdGlvbi9od21vbi9pbmRleC5yc3QK LSsrKyBiL0RvY3VtZW50YXRpb24vaHdtb24vaW5kZXgucnN0Ci1AQCAtMTgwLDYgKzE4MCw3IEBA IEhhcmR3YXJlIE1vbml0b3JpbmcgS2VybmVsIERyaXZlcnMKLSAgICBzY2g1NjI3Ci0gICAgc2No NTYzNgotICAgIHNjcGktaHdtb24KLSsgICBzZmN0ZW1wCi0gICAgc2h0MTUKLSAgICBzaHQyMQot ICAgIHNodDN4Ci1kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9od21vbi9zZmN0ZW1wLnJzdCBi L0RvY3VtZW50YXRpb24vaHdtb24vc2ZjdGVtcC5yc3QKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1p bmRleCAwMDAwMDAwMDAwMDAuLjlmYmQ1YmIxZjM1NgotLS0tIC9kZXYvbnVsbAotKysrIGIvRG9j dW1lbnRhdGlvbi9od21vbi9zZmN0ZW1wLnJzdAotQEAgLTAsMCArMSwzMyBAQAotKy4uIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCi0rCi0rS2VybmVsIGRyaXZlciBzZmN0ZW1wCi0r PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rU3VwcG9ydGVkIGNoaXBzOgotKyAtIFN0YXJGaXZl IEpINzEwMAotKyAtIFN0YXJGaXZlIEpINzExMAotKwotK0F1dGhvcnM6Ci0rIC0gRW1pbCBSZW5u ZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KLSsKLStEZXNjcmlwdGlvbgotKy0tLS0tLS0t LS0tCi0rCi0rVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIHRoZSBidWlsdC1p biB0ZW1wZXJhdHVyZSBzZW5zb3Igb24gdGhlCi0rSkg3MTAwIGFuZCBKSDcxMTAgUklTQy1WIFNv Q3MgYnkgU3RhckZpdmUgVGVjaG5vbG9neSBDby4gTHRkLgotKwotK2Bgc3lzZnNgYCBpbnRlcmZh Y2UKLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rVGhlIHRlbXBlcmF0dXJlIHNlbnNvciBjYW4g YmUgZW5hYmxlZCwgZGlzYWJsZWQgYW5kIHF1ZXJpZWQgdmlhIHRoZSBzdGFuZGFyZAotK2h3bW9u IGludGVyZmFjZSBpbiBzeXNmcyB1bmRlciBgYC9zeXMvY2xhc3MvaHdtb24vaHdtb25YYGAgZm9y IHNvbWUgdmFsdWUgb2YKLStgYFhgYDoKLSsKLSs9PT09PT09PT09PT09PT09ID09PT0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rTmFtZSAgICAgICAgICAg ICBQZXJtIERlc2NyaXB0aW9uCi0rPT09PT09PT09PT09PT09PSA9PT09ID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotK3RlbXAxX2VuYWJsZSAgICAgUlcgICBF bmFibGUgb3IgZGlzYWJsZSB0ZW1wZXJhdHVyZSBzZW5zb3IuCi0rICAgICAgICAgICAgICAgICAg ICAgIEF1dG9tYXRpY2FsbHkgZW5hYmxlZCBieSB0aGUgZHJpdmVyLAotKyAgICAgICAgICAgICAg ICAgICAgICBidXQgbWF5IGJlIGRpc2FibGVkIHRvIHNhdmUgcG93ZXIuCi0rdGVtcDFfaW5wdXQg ICAgICBSTyAgIFRlbXBlcmF0dXJlIHJlYWRpbmcgaW4gbWlsbGktZGVncmVlcyBDZWxzaXVzLgot Kz09PT09PT09PT09PT09PT0gPT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLWRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCi1pbmRl eCA3YzczY2RiZTEyNTkuLmRiYzU3MGRkYTQ5NiAxMDA2NDQKLS0tLSBhL01BSU5UQUlORVJTCi0r KysgYi9NQUlOVEFJTkVSUwotQEAgLTE4OTE4LDYgKzE4OTE4LDE0IEBAIEw6CW5ldGRldkB2Z2Vy Lmtlcm5lbC5vcmcKLSBTOglTdXBwb3J0ZWQKLSBGOglkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMv Ci0gCi0rU0ZDVEVNUCBIV01PTiBEUklWRVIKLStNOglFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2Vy bmVsQGVzbWlsLmRrPgotK0w6CWxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZwotK1M6CU1haW50 YWluZWQKLStGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaHdtb24vc3RhcmZp dmUsamg3MXgwLXRlbXAueWFtbAotK0Y6CURvY3VtZW50YXRpb24vaHdtb24vc2ZjdGVtcC5yc3QK LStGOglkcml2ZXJzL2h3bW9uL3NmY3RlbXAuYwotKwotIFNGRi9TRlAvU0ZQKyBNT0RVTEUgU1VQ UE9SVAotIE06CVJ1c3NlbGwgS2luZyA8bGludXhAYXJtbGludXgub3JnLnVrPgotIEw6CW5ldGRl dkB2Z2VyLmtlcm5lbC5vcmcKLWRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL0tjb25maWcgYi9k cml2ZXJzL2h3bW9uL0tjb25maWcKLWluZGV4IDMxNzZjMzNhZjZjNi4uNTcyZTFiMjU0MWJiIDEw MDY0NAotLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCi0rKysgYi9kcml2ZXJzL2h3bW9uL0tj b25maWcKLUBAIC0xOTMwLDYgKzE5MzAsMTYgQEAgY29uZmlnIFNFTlNPUlNfU1RUUzc1MQotIAkg IFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1v ZHVsZQotIAkgIHdpbGwgYmUgY2FsbGVkIHN0dHM3NTEuCi0gCi0rY29uZmlnIFNFTlNPUlNfU0ZD VEVNUAotKwl0cmlzdGF0ZSAiU3RhcmZpdmUgSkg3MXgwIHRlbXBlcmF0dXJlIHNlbnNvciIKLSsJ ZGVwZW5kcyBvbiBTT0NfU1RBUkZJVkUgfHwgQ09NUElMRV9URVNUCi0rCWhlbHAKLSsJICBJZiB5 b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGVtcGVyYXR1cmUgc2Vuc29yCi0r CSAgb24gdGhlIFN0YXJmaXZlIEpINzF4MCBTb0NzLgotKwotKwkgIFRoaXMgZHJpdmVyIGNhbiBh bHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLSsJICB3aWxsIGJl IGNhbGxlZCBzZmN0ZW1wLgotKwotIGNvbmZpZyBTRU5TT1JTX1NNTTY2NQotIAl0cmlzdGF0ZSAi U3VtbWl0IE1pY3JvZWxlY3Ryb25pY3MgU01NNjY1IgotIAlkZXBlbmRzIG9uIEkyQwotZGlmZiAt LWdpdCBhL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCi1p bmRleCBlMmU0ZTg3YjI4MmYuLjMzN2UxYjE5Njc4YSAxMDA2NDQKLS0tLSBhL2RyaXZlcnMvaHdt b24vTWFrZWZpbGUKLSsrKyBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKLUBAIC0xODAsNiArMTgw LDcgQEAgb2JqLSQoQ09ORklHX1NFTlNPUlNfU0JSTUkpCSs9IHNicm1pLm8KLSBvYmotJChDT05G SUdfU0VOU09SU19TQ0g1NlhYX0NPTU1PTikrPSBzY2g1Nnh4LWNvbW1vbi5vCi0gb2JqLSQoQ09O RklHX1NFTlNPUlNfU0NINTYyNykJKz0gc2NoNTYyNy5vCi0gb2JqLSQoQ09ORklHX1NFTlNPUlNf U0NINTYzNikJKz0gc2NoNTYzNi5vCi0rb2JqLSQoQ09ORklHX1NFTlNPUlNfU0ZDVEVNUCkJKz0g c2ZjdGVtcC5vCi0gb2JqLSQoQ09ORklHX1NFTlNPUlNfU0wyOENQTEQpCSs9IHNsMjhjcGxkLWh3 bW9uLm8KLSBvYmotJChDT05GSUdfU0VOU09SU19TSFQxNSkJKz0gc2h0MTUubwotIG9iai0kKENP TkZJR19TRU5TT1JTX1NIVDIxKQkrPSBzaHQyMS5vCi1kaWZmIC0tZ2l0IGEvZHJpdmVycy9od21v bi9zZmN0ZW1wLmMgYi9kcml2ZXJzL2h3bW9uL3NmY3RlbXAuYwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAwMDAwMC4uZDc0ODRlMmI4MTAwCi0tLS0gL2Rldi9udWxsCi0rKysg Yi9kcml2ZXJzL2h3bW9uL3NmY3RlbXAuYwotQEAgLTAsMCArMSwzMzEgQEAKLSsvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAotKy8qCi0rICogQ29weXJpZ2h0IChDKSAyMDIxIEVt aWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+Ci0rICogQ29weXJpZ2h0IChDKSAy MDIxIFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+Ci0rICovCi0rCi0rI2lu Y2x1ZGUgPGxpbnV4L2JpdHMuaD4KLSsjaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0rI2luY2x1ZGUg PGxpbnV4L2RlbGF5Lmg+Ci0rI2luY2x1ZGUgPGxpbnV4L2h3bW9uLmg+Ci0rI2luY2x1ZGUgPGxp bnV4L2lvLmg+Ci0rI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotKyNpbmNsdWRlIDxsaW51eC9t dXRleC5oPgotKyNpbmNsdWRlIDxsaW51eC9vZi5oPgotKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KLSsjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KLSsKLSsvKgotKyAqIFRlbXBT ZW5zb3IgcmVzZXQuIFRoZSBSU1ROIGNhbiBiZSBkZS1hc3NlcnRlZCBvbmNlIHRoZSBhbmFsb2cg Y29yZSBoYXMKLSsgKiBwb3dlcmVkIHVwLiBUcnN0KG1pbiAxMDBucykKLSsgKiAwOnJlc2V0ICAx OmRlLWFzc2VydAotKyAqLwotKyNkZWZpbmUgU0ZDVEVNUF9SU1ROCUJJVCgwKQotKwotKy8qCi0r ICogVGVtcFNlbnNvciBhbmFsb2cgY29yZSBwb3dlciBkb3duLiBUaGUgYW5hbG9nIGNvcmUgd2ls bCBiZSBwb3dlcmVkIHVwCi0rICogVHB1KG1pbiA1MHVzKSBhZnRlciBQRCBpcyBkZS1hc3NlcnRl ZC4gUlNUTiBzaG91bGQgYmUgaGVsZCBsb3cgdW50aWwgdGhlCi0rICogYW5hbG9nIGNvcmUgaXMg cG93ZXJlZCB1cC4KLSsgKiAwOnBvd2VyIHVwICAxOnBvd2VyIGRvd24KLSsgKi8KLSsjZGVmaW5l IFNGQ1RFTVBfUEQJQklUKDEpCi0rCi0rLyoKLSsgKiBUZW1wU2Vuc29yIHN0YXJ0IGNvbnZlcnNp b24gZW5hYmxlLgotKyAqIDA6ZGlzYWJsZSAgMTplbmFibGUKLSsgKi8KLSsjZGVmaW5lIFNGQ1RF TVBfUlVOCUJJVCgyKQotKwotKy8qCi0rICogVGVtcFNlbnNvciBjb252ZXJzaW9uIHZhbHVlIG91 dHB1dC4KLSsgKiBUZW1wKEMpPURPVVQqWS80MDk0IC0gSwotKyAqLwotKyNkZWZpbmUgU0ZDVEVN UF9ET1VUX1BPUwkxNgotKyNkZWZpbmUgU0ZDVEVNUF9ET1VUX01TSwlHRU5NQVNLKDI3LCAxNikK LSsKLSsvKiBET1VUIHRvIENlbGNpdXMgY29udmVyc2lvbiBjb25zdGFudHMgKi8KLSsjZGVmaW5l IFNGQ1RFTVBfWTEwMDAJMjM3NTAwTAotKyNkZWZpbmUgU0ZDVEVNUF9aCTQwOTRMCi0rI2RlZmlu ZSBTRkNURU1QX0sxMDAwCTgxMTAwTAotKwotK3N0cnVjdCBzZmN0ZW1wIHsKLSsJLyogc2VyaWFs aXplIGFjY2VzcyB0byBoYXJkd2FyZSByZWdpc3RlciBhbmQgZW5hYmxlZCBiZWxvdyAqLwotKwlz dHJ1Y3QgbXV0ZXggbG9jazsKLSsJdm9pZCBfX2lvbWVtICpyZWdzOwotKwlzdHJ1Y3QgY2xrICpj bGtfc2Vuc2U7Ci0rCXN0cnVjdCBjbGsgKmNsa19idXM7Ci0rCXN0cnVjdCByZXNldF9jb250cm9s ICpyc3Rfc2Vuc2U7Ci0rCXN0cnVjdCByZXNldF9jb250cm9sICpyc3RfYnVzOwotKwlib29sIGVu YWJsZWQ7Ci0rfTsKLSsKLStzdGF0aWMgdm9pZCBzZmN0ZW1wX3Bvd2VyX3VwKHN0cnVjdCBzZmN0 ZW1wICpzZmN0ZW1wKQotK3sKLSsJLyogbWFrZSBzdXJlIHdlJ3JlIHBvd2VyZWQgZG93biBmaXJz dCAqLwotKwl3cml0ZWwoU0ZDVEVNUF9QRCwgc2ZjdGVtcC0+cmVncyk7Ci0rCXVkZWxheSgxKTsK LSsKLSsJd3JpdGVsKDAsIHNmY3RlbXAtPnJlZ3MpOwotKwkvKiB3YWl0IHRfcHUoNTB1cykgKyB0 X3JzdCgxMDBucykgKi8KLSsJdXNsZWVwX3JhbmdlKDYwLCAyMDApOwotKwotKwkvKiBkZS1hc3Nl cnQgcmVzZXQgKi8KLSsJd3JpdGVsKFNGQ1RFTVBfUlNUTiwgc2ZjdGVtcC0+cmVncyk7Ci0rCXVk ZWxheSgxKTsgLyogd2FpdCB0X3N1KDUwMHBzKSAqLwotK30KLSsKLStzdGF0aWMgdm9pZCBzZmN0 ZW1wX3Bvd2VyX2Rvd24oc3RydWN0IHNmY3RlbXAgKnNmY3RlbXApCi0rewotKwl3cml0ZWwoU0ZD VEVNUF9QRCwgc2ZjdGVtcC0+cmVncyk7Ci0rfQotKwotK3N0YXRpYyB2b2lkIHNmY3RlbXBfcnVu KHN0cnVjdCBzZmN0ZW1wICpzZmN0ZW1wKQotK3sKLSsJd3JpdGVsKFNGQ1RFTVBfUlNUTiB8IFNG Q1RFTVBfUlVOLCBzZmN0ZW1wLT5yZWdzKTsKLSsJdWRlbGF5KDEpOwotK30KLSsKLStzdGF0aWMg dm9pZCBzZmN0ZW1wX3N0b3Aoc3RydWN0IHNmY3RlbXAgKnNmY3RlbXApCi0rewotKwl3cml0ZWwo U0ZDVEVNUF9SU1ROLCBzZmN0ZW1wLT5yZWdzKTsKLSt9Ci0rCi0rc3RhdGljIGludCBzZmN0ZW1w X2VuYWJsZShzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcCkKLSt7Ci0rCWludCByZXQgPSAwOwotKwot KwltdXRleF9sb2NrKCZzZmN0ZW1wLT5sb2NrKTsKLSsJaWYgKHNmY3RlbXAtPmVuYWJsZWQpCi0r CQlnb3RvIGRvbmU7Ci0rCi0rCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShzZmN0ZW1wLT5jbGtf YnVzKTsKLSsJaWYgKHJldCkKLSsJCWdvdG8gZXJyOwotKwlyZXQgPSByZXNldF9jb250cm9sX2Rl YXNzZXJ0KHNmY3RlbXAtPnJzdF9idXMpOwotKwlpZiAocmV0KQotKwkJZ290byBlcnJfZGlzYWJs ZV9idXM7Ci0rCi0rCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShzZmN0ZW1wLT5jbGtfc2Vuc2Up OwotKwlpZiAocmV0KQotKwkJZ290byBlcnJfYXNzZXJ0X2J1czsKLSsJcmV0ID0gcmVzZXRfY29u dHJvbF9kZWFzc2VydChzZmN0ZW1wLT5yc3Rfc2Vuc2UpOwotKwlpZiAocmV0KQotKwkJZ290byBl cnJfZGlzYWJsZV9zZW5zZTsKLSsKLSsJc2ZjdGVtcF9wb3dlcl91cChzZmN0ZW1wKTsKLSsJc2Zj dGVtcF9ydW4oc2ZjdGVtcCk7Ci0rCXNmY3RlbXAtPmVuYWJsZWQgPSB0cnVlOwotK2RvbmU6Ci0r CW11dGV4X3VubG9jaygmc2ZjdGVtcC0+bG9jayk7Ci0rCXJldHVybiByZXQ7Ci0rCi0rZXJyX2Rp c2FibGVfc2Vuc2U6Ci0rCWNsa19kaXNhYmxlX3VucHJlcGFyZShzZmN0ZW1wLT5jbGtfc2Vuc2Up OwotK2Vycl9hc3NlcnRfYnVzOgotKwlyZXNldF9jb250cm9sX2Fzc2VydChzZmN0ZW1wLT5yc3Rf YnVzKTsKLStlcnJfZGlzYWJsZV9idXM6Ci0rCWNsa19kaXNhYmxlX3VucHJlcGFyZShzZmN0ZW1w LT5jbGtfYnVzKTsKLStlcnI6Ci0rCW11dGV4X3VubG9jaygmc2ZjdGVtcC0+bG9jayk7Ci0rCXJl dHVybiByZXQ7Ci0rfQotKwotK3N0YXRpYyBpbnQgc2ZjdGVtcF9kaXNhYmxlKHN0cnVjdCBzZmN0 ZW1wICpzZmN0ZW1wKQotK3sKLSsJbXV0ZXhfbG9jaygmc2ZjdGVtcC0+bG9jayk7Ci0rCWlmICgh c2ZjdGVtcC0+ZW5hYmxlZCkKLSsJCWdvdG8gZG9uZTsKLSsKLSsJc2ZjdGVtcF9zdG9wKHNmY3Rl bXApOwotKwlzZmN0ZW1wX3Bvd2VyX2Rvd24oc2ZjdGVtcCk7Ci0rCXJlc2V0X2NvbnRyb2xfYXNz ZXJ0KHNmY3RlbXAtPnJzdF9zZW5zZSk7Ci0rCWNsa19kaXNhYmxlX3VucHJlcGFyZShzZmN0ZW1w LT5jbGtfc2Vuc2UpOwotKwlyZXNldF9jb250cm9sX2Fzc2VydChzZmN0ZW1wLT5yc3RfYnVzKTsK LSsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHNmY3RlbXAtPmNsa19idXMpOwotKwlzZmN0ZW1wLT5l bmFibGVkID0gZmFsc2U7Ci0rZG9uZToKLSsJbXV0ZXhfdW5sb2NrKCZzZmN0ZW1wLT5sb2NrKTsK LSsJcmV0dXJuIDA7Ci0rfQotKwotK3N0YXRpYyB2b2lkIHNmY3RlbXBfZGlzYWJsZV9hY3Rpb24o dm9pZCAqZGF0YSkKLSt7Ci0rCXNmY3RlbXBfZGlzYWJsZShkYXRhKTsKLSt9Ci0rCi0rc3RhdGlj IGludCBzZmN0ZW1wX2NvbnZlcnQoc3RydWN0IHNmY3RlbXAgKnNmY3RlbXAsIGxvbmcgKnZhbCkK LSt7Ci0rCWludCByZXQ7Ci0rCi0rCW11dGV4X2xvY2soJnNmY3RlbXAtPmxvY2spOwotKwlpZiAo IXNmY3RlbXAtPmVuYWJsZWQpIHsKLSsJCXJldCA9IC1FTk9EQVRBOwotKwkJZ290byBvdXQ7Ci0r CX0KLSsKLSsJLyogY2FsY3VsYXRlIHRlbXBlcmF0dXJlIGluIG1pbGxpIENlbGNpdXMgKi8KLSsJ KnZhbCA9IChsb25nKSgocmVhZGwoc2ZjdGVtcC0+cmVncykgJiBTRkNURU1QX0RPVVRfTVNLKSA+ PiBTRkNURU1QX0RPVVRfUE9TKQotKwkJKiBTRkNURU1QX1kxMDAwIC8gU0ZDVEVNUF9aIC0gU0ZD VEVNUF9LMTAwMDsKLSsKLSsJcmV0ID0gMDsKLStvdXQ6Ci0rCW11dGV4X3VubG9jaygmc2ZjdGVt cC0+bG9jayk7Ci0rCXJldHVybiByZXQ7Ci0rfQotKwotK3N0YXRpYyB1bW9kZV90IHNmY3RlbXBf aXNfdmlzaWJsZShjb25zdCB2b2lkICpkYXRhLCBlbnVtIGh3bW9uX3NlbnNvcl90eXBlcyB0eXBl LAotKwkJCQkgIHUzMiBhdHRyLCBpbnQgY2hhbm5lbCkKLSt7Ci0rCXN3aXRjaCAodHlwZSkgewot KwljYXNlIGh3bW9uX3RlbXA6Ci0rCQlzd2l0Y2ggKGF0dHIpIHsKLSsJCWNhc2UgaHdtb25fdGVt cF9lbmFibGU6Ci0rCQkJcmV0dXJuIDA2NDQ7Ci0rCQljYXNlIGh3bW9uX3RlbXBfaW5wdXQ6Ci0r CQkJcmV0dXJuIDA0NDQ7Ci0rCQlkZWZhdWx0OgotKwkJCXJldHVybiAwOwotKwkJfQotKwlkZWZh dWx0OgotKwkJcmV0dXJuIDA7Ci0rCX0KLSt9Ci0rCi0rc3RhdGljIGludCBzZmN0ZW1wX3JlYWQo c3RydWN0IGRldmljZSAqZGV2LCBlbnVtIGh3bW9uX3NlbnNvcl90eXBlcyB0eXBlLAotKwkJCXUz MiBhdHRyLCBpbnQgY2hhbm5lbCwgbG9uZyAqdmFsKQotK3sKLSsJc3RydWN0IHNmY3RlbXAgKnNm Y3RlbXAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLSsKLSsJc3dpdGNoICh0eXBlKSB7Ci0rCWNh c2UgaHdtb25fdGVtcDoKLSsJCXN3aXRjaCAoYXR0cikgewotKwkJY2FzZSBod21vbl90ZW1wX2Vu YWJsZToKLSsJCQkqdmFsID0gc2ZjdGVtcC0+ZW5hYmxlZDsKLSsJCQlyZXR1cm4gMDsKLSsJCWNh c2UgaHdtb25fdGVtcF9pbnB1dDoKLSsJCQlyZXR1cm4gc2ZjdGVtcF9jb252ZXJ0KHNmY3RlbXAs IHZhbCk7Ci0rCQlkZWZhdWx0OgotKwkJCXJldHVybiAtRUlOVkFMOwotKwkJfQotKwlkZWZhdWx0 OgotKwkJcmV0dXJuIC1FSU5WQUw7Ci0rCX0KLSt9Ci0rCi0rc3RhdGljIGludCBzZmN0ZW1wX3dy aXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBod21vbl9zZW5zb3JfdHlwZXMgdHlwZSwKLSsJ CQkgdTMyIGF0dHIsIGludCBjaGFubmVsLCBsb25nIHZhbCkKLSt7Ci0rCXN0cnVjdCBzZmN0ZW1w ICpzZmN0ZW1wID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0rCi0rCXN3aXRjaCAodHlwZSkgewot KwljYXNlIGh3bW9uX3RlbXA6Ci0rCQlzd2l0Y2ggKGF0dHIpIHsKLSsJCWNhc2UgaHdtb25fdGVt cF9lbmFibGU6Ci0rCQkJaWYgKHZhbCA9PSAwKQotKwkJCQlyZXR1cm4gc2ZjdGVtcF9kaXNhYmxl KHNmY3RlbXApOwotKwkJCWlmICh2YWwgPT0gMSkKLSsJCQkJcmV0dXJuIHNmY3RlbXBfZW5hYmxl KHNmY3RlbXApOwotKwkJCXJldHVybiAtRUlOVkFMOwotKwkJZGVmYXVsdDoKLSsJCQlyZXR1cm4g LUVJTlZBTDsKLSsJCX0KLSsJZGVmYXVsdDoKLSsJCXJldHVybiAtRUlOVkFMOwotKwl9Ci0rfQot KwotK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fY2hhbm5lbF9pbmZvICpzZmN0ZW1wX2luZm9b XSA9IHsKLSsJSFdNT05fQ0hBTk5FTF9JTkZPKGNoaXAsIEhXTU9OX0NfUkVHSVNURVJfVFopLAot KwlIV01PTl9DSEFOTkVMX0lORk8odGVtcCwgSFdNT05fVF9FTkFCTEUgfCBIV01PTl9UX0lOUFVU KSwKLSsJTlVMTAotK307Ci0rCi0rc3RhdGljIGNvbnN0IHN0cnVjdCBod21vbl9vcHMgc2ZjdGVt cF9od21vbl9vcHMgPSB7Ci0rCS5pc192aXNpYmxlID0gc2ZjdGVtcF9pc192aXNpYmxlLAotKwku cmVhZCA9IHNmY3RlbXBfcmVhZCwKLSsJLndyaXRlID0gc2ZjdGVtcF93cml0ZSwKLSt9OwotKwot K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25fY2hpcF9pbmZvIHNmY3RlbXBfY2hpcF9pbmZvID0g ewotKwkub3BzID0gJnNmY3RlbXBfaHdtb25fb3BzLAotKwkuaW5mbyA9IHNmY3RlbXBfaW5mbywK LSt9OwotKwotK3N0YXRpYyBpbnQgc2ZjdGVtcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQotK3sKLSsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKLSsJc3RydWN0 IGRldmljZSAqaHdtb25fZGV2OwotKwlzdHJ1Y3Qgc2ZjdGVtcCAqc2ZjdGVtcDsKLSsJaW50IHJl dDsKLSsKLSsJc2ZjdGVtcCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqc2ZjdGVtcCksIEdG UF9LRVJORUwpOwotKwlpZiAoIXNmY3RlbXApCi0rCQlyZXR1cm4gLUVOT01FTTsKLSsKLSsJZGV2 X3NldF9kcnZkYXRhKGRldiwgc2ZjdGVtcCk7Ci0rCW11dGV4X2luaXQoJnNmY3RlbXAtPmxvY2sp OwotKwotKwlzZmN0ZW1wLT5yZWdzID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBk ZXYsIDApOwotKwlpZiAoSVNfRVJSKHNmY3RlbXAtPnJlZ3MpKQotKwkJcmV0dXJuIFBUUl9FUlIo c2ZjdGVtcC0+cmVncyk7Ci0rCi0rCXNmY3RlbXAtPmNsa19zZW5zZSA9IGRldm1fY2xrX2dldChk ZXYsICJzZW5zZSIpOwotKwlpZiAoSVNfRVJSKHNmY3RlbXAtPmNsa19zZW5zZSkpCi0rCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoc2ZjdGVtcC0+Y2xrX3NlbnNlKSwKLSsJCQkJ ICAgICAiZXJyb3IgZ2V0dGluZyBzZW5zZSBjbG9ja1xuIik7Ci0rCi0rCXNmY3RlbXAtPmNsa19i dXMgPSBkZXZtX2Nsa19nZXQoZGV2LCAiYnVzIik7Ci0rCWlmIChJU19FUlIoc2ZjdGVtcC0+Y2xr X2J1cykpCi0rCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoc2ZjdGVtcC0+Y2xr X2J1cyksCi0rCQkJCSAgICAgImVycm9yIGdldHRpbmcgYnVzIGNsb2NrXG4iKTsKLSsKLSsJc2Zj dGVtcC0+cnN0X3NlbnNlID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUoZGV2LCAi c2Vuc2UiKTsKLSsJaWYgKElTX0VSUihzZmN0ZW1wLT5yc3Rfc2Vuc2UpKQotKwkJcmV0dXJuIGRl dl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHNmY3RlbXAtPnJzdF9zZW5zZSksCi0rCQkJCSAgICAg ImVycm9yIGdldHRpbmcgc2Vuc2UgcmVzZXRcbiIpOwotKwotKwlzZmN0ZW1wLT5yc3RfYnVzID0g ZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUoZGV2LCAiYnVzIik7Ci0rCWlmIChJU19F UlIoc2ZjdGVtcC0+cnN0X2J1cykpCi0rCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9F UlIoc2ZjdGVtcC0+cnN0X2J1cyksCi0rCQkJCSAgICAgImVycm9yIGdldHRpbmcgYnVzcmVzZXRc biIpOwotKwotKwlyZXQgPSByZXNldF9jb250cm9sX2Fzc2VydChzZmN0ZW1wLT5yc3Rfc2Vuc2Up OwotKwlpZiAocmV0KQotKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJlcnJvciBh c3NlcnRpbmcgc2Vuc2UgcmVzZXRcbiIpOwotKwotKwlyZXQgPSByZXNldF9jb250cm9sX2Fzc2Vy dChzZmN0ZW1wLT5yc3RfYnVzKTsKLSsJaWYgKHJldCkKLSsJCXJldHVybiBkZXZfZXJyX3Byb2Jl KGRldiwgcmV0LCAiZXJyb3IgYXNzZXJ0aW5nIGJ1cyByZXNldFxuIik7Ci0rCi0rCXJldCA9IGRl dm1fYWRkX2FjdGlvbihkZXYsIHNmY3RlbXBfZGlzYWJsZV9hY3Rpb24sIHNmY3RlbXApOwotKwlp ZiAocmV0KQotKwkJcmV0dXJuIHJldDsKLSsKLSsJcmV0ID0gc2ZjdGVtcF9lbmFibGUoc2ZjdGVt cCk7Ci0rCWlmIChyZXQpCi0rCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImVycm9y IGVuYWJsaW5nIHRlbXBlcmF0dXJlIHNlbnNvcjogJWRcbiIsIHJldCk7Ci0rCi0rCWh3bW9uX2Rl diA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfaW5mbyhkZXYsICJzZmN0ZW1wIiwg c2ZjdGVtcCwKLSsJCQkJCQkJICZzZmN0ZW1wX2NoaXBfaW5mbywgTlVMTCk7Ci0rCXJldHVybiBQ VFJfRVJSX09SX1pFUk8oaHdtb25fZGV2KTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgc2ZjdGVtcF9vZl9tYXRjaFtdID0gewotKwl7IC5jb21wYXRpYmxlID0gInN0 YXJmaXZlLGpoNzEwMC10ZW1wIiB9LAotKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC10ZW1wIiB9LAotKwl7IC8qIHNlbnRpbmVsICovIH0KLSt9OwotK01PRFVMRV9ERVZJQ0VfVEFC TEUob2YsIHNmY3RlbXBfb2ZfbWF0Y2gpOwotKwotK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJp dmVyIHNmY3RlbXBfZHJpdmVyID0gewotKwkucHJvYmUgID0gc2ZjdGVtcF9wcm9iZSwKLSsJLmRy aXZlciA9IHsKLSsJCS5uYW1lID0gInNmY3RlbXAiLAotKwkJLm9mX21hdGNoX3RhYmxlID0gc2Zj dGVtcF9vZl9tYXRjaCwKLSsJfSwKLSt9OwotK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoc2ZjdGVt cF9kcml2ZXIpOwotKwotK01PRFVMRV9BVVRIT1IoIkVtaWwgUmVubmVyIEJlcnRoaW5nIik7Ci0r TU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxeDAgdGVtcGVyYXR1cmUgc2Vuc29yIGRy aXZlciIpOwotK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLS0tIAotMi4zOS4yCi0KCkZyb20gZmIw MDFhY2M1OTBlNTJmNGY0YTAwMjJiNDM0MzI3ZWIxN2NjNzBhYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTdW4sIDIzIEp1bCAy MDIzIDE1OjIzOjU3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxODcvMTg5XSBsaW51eDYuNDogYnJv a2VuIHJpc2N2NjQgYml0cwoKLS0tCiBzcmNwa2dzL2xpbnV4Ni40L2ZpbGVzL3Jpc2N2LWRvdGNv bmZpZyAgICAgICAgfCAxMDQxNCArKysrKysrKysrKysrKysKIC4uLi9saW51eDYuNC9maWxlcy9y aXNjdi1kb3Rjb25maWctY3VzdG9tLm9sZCB8ICAgMjI1ICsKIHNyY3BrZ3MvbGludXg2LjQvZmls ZXMvcmlzY3YtZG90Y29uZmlnLm9sZCAgICB8IDEwNjU3ICsrKysrKysrKysrKysrKysKIC4uLmst QWRkLVN0YXJGaXZlLUpINzExMC1TeXN0ZW0tVG9wLUdyby5wYXRjaCB8ICAgMjAzICsKIC4uLi1T dGFyRml2ZS1KSDcxMTAtU3lzdGVtLVRvcC1Hcm91cC1jbC5wYXRjaCB8ICAgMjI4ICsKIC4uLmst QWRkLVN0YXJGaXZlLUpINzExMC1JbWFnZS1TaWduYWwtUC5wYXRjaCB8ICAgMTY2ICsKIC4uLi1T dGFyRml2ZS1KSDcxMTAtSW1hZ2UtU2lnbmFsLVByb2Nlcy5wYXRjaCB8ICAgMzA1ICsKIC4uLmst QWRkLVN0YXJGaXZlLUpINzExMC1WaWRlby1PdXRwdXQtYy5wYXRjaCB8ICAgMTczICsKIC4uLi1T dGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWNsb2NrLS5wYXRjaCB8ICAgMjk0ICsKIC4uLmg3 MTEwLUFkZC1TdGFyRml2ZS1TVEctSVNQLVZPVVQtcmVzZS5wYXRjaCB8ICAgIDY2ICsKIC4uLmst QWRkLVN0YXJGaXZlLUpINzExMC1QTEwtY2xvY2stZ2VuZS5wYXRjaCB8ICAgIDg5ICsKIC4uLi1z dGFyZml2ZS1BZGQtU3RhckZpdmUtc3lzY29uLW1vZHVsZS5wYXRjaCB8ICAgIDg2ICsKIC4uLmst amg3MTEwLXN5c2NyZy1BZGQtUExMLWNsb2NrLWlucHV0cy5wYXRjaCB8ICAgIDg5ICsKIC4uLkFk ZC1TdGFyRml2ZS1KSDcxMTAtUExMLWNsb2NrLWRyaXZlci5wYXRjaCB8ICAgNTY1ICsKIC4uLjEx MC1zeXMtQWRkLVBMTC1jbG9ja3Mtc291cmNlLWZyb20tRC5wYXRjaCB8ICAgMTEzICsKIC4uLmVy LUFkZC10aW1lci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaCB8ICAgMTIwICsKIC4uLi1j bG9ja3NvdXJjZS1BZGQtSkg3MTEwLXRpbWVyLWRyaXZlci5wYXRjaCB8ICAgNTQzICsKIC4uLm1v dG9yY29tbS1BZGQtcGFkLWRyaXZlci1zdHJlbmd0aC1jZi5wYXRjaCB8ICAgIDQxICsKIC4uLm0t QWRkLXBhZC1kcml2ZS1zdHJlbmd0aC1jZmctc3VwcG9ydC5wYXRjaCB8ICAgIDg5ICsKIC4uLi1j ZG5zLXFzcGktbm9yLUFkZC1jbG9ja3MtZm9yLVN0YXJGaS5wYXRjaCB8ICAgIDY1ICsKIC4uLnNw aS1BZGQtY2xvY2stY29uZmlndXJhdGlvbi1mb3ItU3Rhci5wYXRjaCB8ICAgIDgwICsKIC4uLmJp bmRpbmdzLXB3bS1BZGQtU3RhckZpdmUtUFdNLW1vZHVsZS5wYXRjaCB8ICAgIDgwICsKIC4uLi1w d20tc3RhcmZpdmUtQWRkLVBXTS1kcml2ZXItc3VwcG9ydC5wYXRjaCB8ICAgMjUxICsKIC4uLm8t aGFzaC1BZGQtc3RhdGVzaXplLXRvLWNyeXB0b19haGFzaC5wYXRjaCB8ICAgIDc4ICsKIC4uLmdz LWNyeXB0by1BZGQtU3RhckZpdmUtY3J5cHRvLW1vZHVsZS5wYXRjaCB8ICAgIDk2ICsKIC4uLm8t c3RhcmZpdmUtQWRkLWNyeXB0by1lbmdpbmUtc3VwcG9ydC5wYXRjaCB8ICAgMzU2ICsKIC4uLm8t c3RhcmZpdmUtQWRkLWhhc2gtYW5kLUhNQUMtc3VwcG9ydC5wYXRjaCB8ICAxMTUwICsrCiAuLi5w dG8tc3RhcmZpdmUtRml4LWRyaXZlci1kZXBlbmRlbmNpZXMucGF0Y2ggfCAgICAzOCArCiAuLi4t QWRkLXNlbGVjdC1BUk1fQU1CQS10by1TT0NfU1RBUkZJVkUucGF0Y2ggfCAgICAyOCArCiAuLi4t QWRkLVRETS1jb250cm9sbGVyLWJpbmRpbmdzLWZvci1TdGEucGF0Y2ggfCAgIDEyMyArCiAuLi4t QVNvQy1zdGFyZml2ZS1BZGQtSkg3MTEwLVRETS1kcml2ZXIucGF0Y2ggfCAgIDc2MCArKwogLi4u LUFkZC1TdGFyRml2ZS1KSDcxMTAtZHVtbXktUFdNLURBQy10LnBhdGNoIHwgICAgNjEgKwogLi4u U3RhckZpdmUtSkg3MTEwLWR1bW15LVBXTS1EQUMtdHJhbnNtLnBhdGNoIHwgICAxNDIgKwogLi4u LUFkZC1TdGFyRml2ZS1KSDcxMTAtUFdNLURBQy1jb250cm9sLnBhdGNoIHwgICAxMDAgKwogLi4u Qy1zdGFyZml2ZS1BZGQtSkg3MTEwLVBXTS1EQUMtZHJpdmVyLnBhdGNoIHwgICA4MzkgKysKIC4u LnItQWRkLXBvd2VyLWRvbWFpbi1oZWFkZXItZm9yLUpINzExMC5wYXRjaCB8ICAgIDM2ICsKIC4u LmxhY2UtU09DX1NUQVJGSVZFLXdpdGgtQVJDSF9TVEFSRklWRS5wYXRjaCB8ICAgIDMyICsKIC4u Lnh0cmFjdC1KSDcxMTAtcG11LXByaXZhdGUtb3BlcmF0aW9ucy5wYXRjaCB8ICAgMTgwICsKIC4u Li1zdGFyZml2ZS1BZGQtSkg3MTEwLUFPTi1QTVUtc3VwcG9ydC5wYXRjaCB8ICAgMTIzICsKIC4u LmluZ3MtcGh5LUFkZC1zdGFyZml2ZS1qaDcxMTAtZHBoeS1yeC5wYXRjaCB8ICAgIDk0ICsKIC4u Lmh5LXN0YXJmaXZlLUFkZC1taXBpLWRwaHktcngtc3VwcG9ydC5wYXRjaCB8ICAgMzgwICsKIC4u LnMtY2FkZW5jZS1jc2kycngtQ29udmVydC10by1EVC1zY2hlbS5wYXRjaCB8ICAgMzE1ICsKIC4u LnMtY2FkZW5jZS1jc2kycngtQWRkLXJlc2V0cy1wcm9wZXJ0eS5wYXRjaCB8ICAgIDU5ICsKIC4u Lm1lZGlhLWNhZGVuY2UtQWRkLW9wZXJhdGlvbi1vbi1yZXNldC5wYXRjaCB8ICAgMTM0ICsKIC4u LmFkZW5jZS1BZGQtc3VwcG9ydC1mb3ItZXh0ZXJuYWwtZHBoeS5wYXRjaCB8ICAgMTQ2ICsKIC4u LmEtY2FkZW5jZS1BZGQtc3VwcG9ydC1mb3ItSkg3MTEwLVNvQy5wYXRjaCB8ICAgIDI4ICsKIC4u LmJpbmRpbmdzLUFkZC1KSDcxMTAtQ2FtZXJhLVN1YnN5c3RlbS5wYXRjaCB8ICAgMjA1ICsKIC4u LmUtQWRkLXN0YXJmaXZlX2NhbXNzLnJzdC1mb3ItU3RhcmZpdi5wYXRjaCB8ICAgMTE4ICsKIC4u LmVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLWJhc2ljLWRyaXZlci5wYXRjaCB8ICAgNjA0ICsKIC4u LmVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLXZpZGVvLWRyaXZlci5wYXRjaCB8ICAgODYxICsrCiAu Li4tbWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLUlTUC1kcml2ZXIucGF0Y2ggfCAgMTY3NCArKysK IC4uLi1tZWRpYS1zdGFyZml2ZS1jYW1zcy1BZGQtVklOLWRyaXZlci5wYXRjaCB8ICAxNTkzICsr KwogLi4ubGF5LUFkZC15YW1scy1mb3ItSkg3MTEwLWRpc3BsYXktc3ViLnBhdGNoIHwgICAzMDAg KwogLi4uZHJtLXZlcmlzaWxpY29uLUFkZC1iYXNpYy1kcm0tZHJpdmVyLnBhdGNoIHwgICA1ODEg KwogLi4uaWxpY29uLUFkZC1nZW0tZHJpdmVyLWZvci1KSDcxMTAtU29DLnBhdGNoIHwgICA1MjAg KwogLi4ucm0tdmVyaXNpbGljb24tQWRkLW1vZGUtY29uZmlnLWZ1bmNzLnBhdGNoIHwgICAyNjEg KwogLi4uNC1kcm0tdmVyaXNpbGljb24tQWRkLWRybS1jcnRjLWZ1bmNzLnBhdGNoIHwgICA1ODUg KwogLi4uLWRybS12ZXJpc2lsaWNvbi1BZGQtZHJtLXBsYW5lLWZ1bmNzLnBhdGNoIHwgICA1NTkg KwogLi4uQWRkLXZlcmlzaWxpY29uLWRjLWNvbnRyb2xsZXItZHJpdmVyLnBhdGNoIHwgIDM2ODkg KysrKysrCiAuLi52ZXJpc2lsaWNvbi1BZGQtc3RhcmZpdmUtaGRtaS1kcml2ZXIucGF0Y2ggfCAg MTMxOCArKwogLi4uYi1BZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1jb250cm9sbGVyLnBhdGNoIHwg ICAxNDEgKwogLi4uY2RuczMtQWRkLVN0YXJGaXZlLUpINzExMC1VU0ItZHJpdmVyLnBhdGNoIHwg ICAzMDggKwogLi4uaW5ncy1waHktQWRkLVN0YXJGaXZlLUpINzExMC1VU0ItUEhZLnBhdGNoIHwg ICAgNzUgKwogLi4ubmdzLXBoeS1BZGQtU3RhckZpdmUtSkg3MTEwLVBDSWUtUEhZLnBhdGNoIHwg ICAgODQgKwogLi4uYXJmaXZlLUFkZC1KSDcxMTAtVVNCLTIuMC1QSFktZHJpdmVyLnBhdGNoIHwg ICAyMDQgKwogLi4ucmZpdmUtQWRkLUpINzExMC1QQ0lFLTIuMC1QSFktZHJpdmVyLnBhdGNoIHwg ICAyNjEgKwogLi4uYWRkLUpINzExMC1QQ0llLWR0LWJpbmRpbmctZG9jdW1lbnRzLnBhdGNoIHwg ICAxODYgKwogLi4uZml2ZS1hZGQtU3RhckZpdmUtSkg3MTEwLVBDSWUtZHJpdmVyLnBhdGNoIHwg IDEwMTQgKysKIC4uLnRkZXYtQWRkLUpINzExMC1TT0MtdG8tdGhlLWFsbG93bGlzdC5wYXRjaCB8 ICAgIDI5ICsKIC4uLk5UQUlORVJTLVVwZGF0ZS1hbGwtU3RhckZpdmUtZW50cmllcy5wYXRjaCB8 ICAgMTY3ICsKIC4uLnZlLUFkZC1mdWxsLXN1cHBvcnQtZm9yLUpINzExMC1hbmQtVi5wYXRjaCB8 ICAxNDEzICsrCiAuLi5hZGQtbWlzc2luZy1udWxsLWVudHJ5LWluLXZzX2RybV9kdF8ucGF0Y2gg fCAgICAyNSArCiAuLi52ZXJpc2lsaWNvbi1pbXBvcnQtRE1BX0JVRi1uYW1lc3BhY2UucGF0Y2gg fCAgICAyMiArCiBzcmNwa2dzL2xpbnV4Ni40L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAg fCAgICAgMiArLQogNzQgZmlsZXMgY2hhbmdlZCwgNDcwMzggaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvZmlsZXMvcmlzY3Yt ZG90Y29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9maWxlcy9yaXNj di1kb3Rjb25maWctY3VzdG9tLm9sZAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2 LjQvZmlsZXMvcmlzY3YtZG90Y29uZmlnLm9sZAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bGludXg2LjQvcGF0Y2hlcy8wMDAxLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcx MTAtU3lzdGVtLVRvcC1Hcm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4 Ni40L3BhdGNoZXMvMDAwMi1jbGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1TeXN0ZW0t VG9wLUdyb3VwLWNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9w YXRjaGVzLzAwMDMtZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1JbWFnZS1T aWduYWwtUC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDA0LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25hbC1Qcm9j ZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAw NS1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLVZpZGVvLU91dHB1dC1jLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMDYtY2xr LXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWNsb2NrLS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA3LXJlc2V0LXN0 YXJmaXZlLWpoNzExMC1BZGQtU3RhckZpdmUtU1RHLUlTUC1WT1VULXJlc2UucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAwOC1kdC1iaW5kaW5ncy1j bG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLVBMTC1jbG9jay1nZW5lLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMDktZHQtYmluZGluZ3Mtc29jLXN0 YXJmaXZlLUFkZC1TdGFyRml2ZS1zeXNjb24tbW9kdWxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMTAtZHQtYmluZGluZ3MtY2xvY2stamg3MTEw LXN5c2NyZy1BZGQtUExMLWNsb2NrLWlucHV0cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDExLWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3 MTEwLVBMTC1jbG9jay1kcml2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDAxMi1jbGstc3RhcmZpdmUtamg3MTEwLXN5cy1BZGQtUExMLWNsb2Nr cy1zb3VyY2UtZnJvbS1ELnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwMTMtZHQtYmluZGluZ3MtdGltZXItQWRkLXRpbWVyLWZvci1TdGFyRml2ZS1K SDcxMTAtU29DLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRj aGVzLzAwMTQtY2xvY2tzb3VyY2UtQWRkLUpINzExMC10aW1lci1kcml2ZXIucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxNS1kdC1iaW5kaW5ncy1u ZXQtbW90b3Jjb21tLUFkZC1wYWQtZHJpdmVyLXN0cmVuZ3RoLWNmLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMTYtbmV0LXBoeS1tb3RvcmNvbW0t QWRkLXBhZC1kcml2ZS1zdHJlbmd0aC1jZmctc3VwcG9ydC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDE3LWR0LWJpbmRpbmdzLXFzcGktY2Rucy1x c3BpLW5vci1BZGQtY2xvY2tzLWZvci1TdGFyRmkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxOC1zcGktY2FkZW5jZS1xdWFkc3BpLUFkZC1jbG9j ay1jb25maWd1cmF0aW9uLWZvci1TdGFyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saW51eDYuNC9wYXRjaGVzLzAwMTktZHQtYmluZGluZ3MtcHdtLUFkZC1TdGFyRml2ZS1QV00t bW9kdWxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVz LzAwMjAtcHdtLXN0YXJmaXZlLUFkZC1QV00tZHJpdmVyLXN1cHBvcnQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAyMS1jcnlwdG8taGFzaC1BZGQt c3RhdGVzaXplLXRvLWNyeXB0b19haGFzaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGludXg2LjQvcGF0Y2hlcy8wMDIyLWR0LWJpbmRpbmdzLWNyeXB0by1BZGQtU3RhckZpdmUt Y3J5cHRvLW1vZHVsZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQv cGF0Y2hlcy8wMDIzLWNyeXB0by1zdGFyZml2ZS1BZGQtY3J5cHRvLWVuZ2luZS1zdXBwb3J0LnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjQtY3J5 cHRvLXN0YXJmaXZlLUFkZC1oYXNoLWFuZC1ITUFDLXN1cHBvcnQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAyNS1jcnlwdG8tc3RhcmZpdmUtRml4 LWRyaXZlci1kZXBlbmRlbmNpZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDAyNi1yaXNjdi1LY29uZmlnLUFkZC1zZWxlY3QtQVJNX0FNQkEtdG8t U09DX1NUQVJGSVZFLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9w YXRjaGVzLzAwMjctQVNvQy1kdC1iaW5kaW5ncy1BZGQtVERNLWNvbnRyb2xsZXItYmluZGluZ3Mt Zm9yLVN0YS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDI4LUFTb0Mtc3RhcmZpdmUtQWRkLUpINzExMC1URE0tZHJpdmVyLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjktQVNvQy1kdC1iaW5kaW5n cy1BZGQtU3RhckZpdmUtSkg3MTEwLWR1bW15LVBXTS1EQUMtdC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDMwLUFTb0MtY29kZWNzLUFkZC1TdGFy Rml2ZS1KSDcxMTAtZHVtbXktUFdNLURBQy10cmFuc20ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzMS1BU29DLWR0LWJpbmRpbmdzLUFkZC1TdGFy Rml2ZS1KSDcxMTAtUFdNLURBQy1jb250cm9sLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzItQVNvQy1zdGFyZml2ZS1BZGQtSkg3MTEwLVBXTS1E QUMtZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRj aGVzLzAwMzMtZHQtYmluZGluZ3MtcG93ZXItQWRkLXBvd2VyLWRvbWFpbi1oZWFkZXItZm9yLUpI NzExMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8w MDM0LXNvYy1zdGFyZml2ZS1SZXBsYWNlLVNPQ19TVEFSRklWRS13aXRoLUFSQ0hfU1RBUkZJVkUu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzNS1z b2Mtc3RhcmZpdmUtRXh0cmFjdC1KSDcxMTAtcG11LXByaXZhdGUtb3BlcmF0aW9ucy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDM2LXNvYy1zdGFy Zml2ZS1BZGQtSkg3MTEwLUFPTi1QTVUtc3VwcG9ydC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDM3LWR0LWJpbmRpbmdzLXBoeS1BZGQtc3RhcmZp dmUtamg3MTEwLWRwaHktcngucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4 Ni40L3BhdGNoZXMvMDAzOC1waHktc3RhcmZpdmUtQWRkLW1pcGktZHBoeS1yeC1zdXBwb3J0LnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzktbWVk aWEtZHQtYmluZGluZ3MtY2FkZW5jZS1jc2kycngtQ29udmVydC10by1EVC1zY2hlbS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQwLW1lZGlhLWR0 LWJpbmRpbmdzLWNhZGVuY2UtY3NpMnJ4LUFkZC1yZXNldHMtcHJvcGVydHkucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0MS1tZWRpYS1jYWRlbmNl LUFkZC1vcGVyYXRpb24tb24tcmVzZXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDA0Mi1tZWRpYS1jYWRlbmNlLUFkZC1zdXBwb3J0LWZvci1leHRl cm5hbC1kcGh5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRj aGVzLzAwNDMtbWVkaWEtY2FkZW5jZS1BZGQtc3VwcG9ydC1mb3ItSkg3MTEwLVNvQy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ0LW1lZGlhLWR0 LWJpbmRpbmdzLUFkZC1KSDcxMTAtQ2FtZXJhLVN1YnN5c3RlbS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ1LW1lZGlhLWFkbWluLWd1aWRlLUFk ZC1zdGFyZml2ZV9jYW1zcy5yc3QtZm9yLVN0YXJmaXYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0Ni1tZWRpYS1zdGFyZml2ZS1jYW1zcy1BZGQt YmFzaWMtZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9w YXRjaGVzLzAwNDctbWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLXZpZGVvLWRyaXZlci5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ4LW1lZGlhLXN0 YXJmaXZlLWNhbXNzLUFkZC1JU1AtZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saW51eDYuNC9wYXRjaGVzLzAwNDktbWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLVZJTi1k cml2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMv MDA1MC1kdC1iaW5kaW5ncy1kaXNwbGF5LUFkZC15YW1scy1mb3ItSkg3MTEwLWRpc3BsYXktc3Vi LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTEt ZHJtLXZlcmlzaWxpY29uLUFkZC1iYXNpYy1kcm0tZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTItZHJtLXZlcmlzaWxpY29uLUFkZC1n ZW0tZHJpdmVyLWZvci1KSDcxMTAtU29DLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saW51eDYuNC9wYXRjaGVzLzAwNTMtZHJtLXZlcmlzaWxpY29uLUFkZC1tb2RlLWNvbmZpZy1m dW5jcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8w MDU0LWRybS12ZXJpc2lsaWNvbi1BZGQtZHJtLWNydGMtZnVuY3MucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1NS1kcm0tdmVyaXNpbGljb24tQWRk LWRybS1wbGFuZS1mdW5jcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2 LjQvcGF0Y2hlcy8wMDU2LWRybS12ZXJpc2lsaWNvbi1BZGQtdmVyaXNpbGljb24tZGMtY29udHJv bGxlci1kcml2ZXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3Bh dGNoZXMvMDA1Ny1kcm0tdmVyaXNpbGljb24tQWRkLXN0YXJmaXZlLWhkbWktZHJpdmVyLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTgtZHQtYmlu ZGluZ3MtdXNiLUFkZC1TdGFyRml2ZS1KSDcxMTAtVVNCLWNvbnRyb2xsZXIucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1OS11c2ItY2RuczMtQWRk LVN0YXJGaXZlLUpINzExMC1VU0ItZHJpdmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjAtZHQtYmluZGluZ3MtcGh5LUFkZC1TdGFyRml2ZS1K SDcxMTAtVVNCLVBIWS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQv cGF0Y2hlcy8wMDYxLWR0LWJpbmRpbmdzLXBoeS1BZGQtU3RhckZpdmUtSkg3MTEwLVBDSWUtUEhZ LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjIt cGh5LXN0YXJmaXZlLUFkZC1KSDcxMTAtVVNCLTIuMC1QSFktZHJpdmVyLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjMtcGh5LXN0YXJmaXZlLUFk ZC1KSDcxMTAtUENJRS0yLjAtUEhZLWRyaXZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDY0LWR0LWJpbmRpbmctcGNpLWFkZC1KSDcxMTAtUENJ ZS1kdC1iaW5kaW5nLWRvY3VtZW50cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bGludXg2LjQvcGF0Y2hlcy8wMDY1LXBjaWUtc3RhcmZpdmUtYWRkLVN0YXJGaXZlLUpINzExMC1Q Q0llLWRyaXZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0 Y2hlcy8wMDY2LWNwdWZyZXEtZHQtcGxhdGRldi1BZGQtSkg3MTEwLVNPQy10by10aGUtYWxsb3ds aXN0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAw NjctTUFJTlRBSU5FUlMtVXBkYXRlLWFsbC1TdGFyRml2ZS1lbnRyaWVzLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjgtcmlzY3YtZHRzLXN0YXJm aXZlLUFkZC1mdWxsLXN1cHBvcnQtZm9yLUpINzExMC1hbmQtVi5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDcxLWRybS12ZXJpc2lsaWNvbi1hZGQt bWlzc2luZy1udWxsLWVudHJ5LWluLXZzX2RybV9kdF8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA3Mi1kcm0tdmVyaXNpbGljb24taW1wb3J0LURN QV9CVUYtbmFtZXNwYWNlLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9maWxl cy9yaXNjdi1kb3Rjb25maWcgYi9zcmNwa2dzL2xpbnV4Ni40L2ZpbGVzL3Jpc2N2LWRvdGNvbmZp ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41ZjY0MWNjZDhjNmM3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9maWxlcy9yaXNjdi1kb3Rjb25m aWcKQEAgLTAsMCArMSwxMDQxNCBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxl OyBETyBOT1QgRURJVC4KKyMgTGludXgvcmlzY3YgNi40LjMgS2VybmVsIENvbmZpZ3VyYXRpb24K KyMKK0NPTkZJR19DQ19WRVJTSU9OX1RFWFQ9InJpc2N2NjQtbGludXgtZ251LWdjYyAoR0NDKSAx Mi4yLjAiCitDT05GSUdfQ0NfSVNfR0NDPXkKK0NPTkZJR19HQ0NfVkVSU0lPTj0xMjAyMDAKK0NP TkZJR19DTEFOR19WRVJTSU9OPTAKK0NPTkZJR19BU19JU19HTlU9eQorQ09ORklHX0FTX1ZFUlNJ T049MjM5MDAKK0NPTkZJR19MRF9JU19CRkQ9eQorQ09ORklHX0xEX1ZFUlNJT049MjM5MDAKK0NP TkZJR19MTERfVkVSU0lPTj0wCitDT05GSUdfQ0NfQ0FOX0xJTks9eQorQ09ORklHX0NDX0NBTl9M SU5LX1NUQVRJQz15CitDT05GSUdfQ0NfSEFTX0FTTV9HT1RPX09VVFBVVD15CitDT05GSUdfQ0Nf SEFTX0FTTV9HT1RPX1RJRURfT1VUUFVUPXkKK0NPTkZJR19DQ19IQVNfQVNNX0lOTElORT15CitD T05GSUdfQ0NfSEFTX05PX1BST0ZJTEVfRk5fQVRUUj15CitDT05GSUdfUEFIT0xFX1ZFUlNJT049 MTI1CitDT05GSUdfSVJRX1dPUks9eQorQ09ORklHX0JVSUxEVElNRV9UQUJMRV9TT1JUPXkKK0NP TkZJR19USFJFQURfSU5GT19JTl9UQVNLPXkKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05G SUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCisjIENPTkZJR19DT01QSUxFX1RFU1QgaXMgbm90IHNl dAorIyBDT05GSUdfV0VSUk9SIGlzIG5vdCBzZXQKK0NPTkZJR19MT0NBTFZFUlNJT049Il8xIgor IyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorQ09ORklHX0JVSUxEX1NBTFQ9 IiIKK0NPTkZJR19ERUZBVUxUX0lOSVQ9IiIKK0NPTkZJR19ERUZBVUxUX0hPU1ROQU1FPSIobm9u ZSkiCitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorQ09ORklHX1NZ U1ZJUENfQ09NUEFUPXkKK0NPTkZJR19QT1NJWF9NUVVFVUU9eQorQ09ORklHX1BPU0lYX01RVUVV RV9TWVNDVEw9eQorQ09ORklHX1dBVENIX1FVRVVFPXkKK0NPTkZJR19DUk9TU19NRU1PUllfQVRU QUNIPXkKKyMgQ09ORklHX1VTRUxJQiBpcyBub3Qgc2V0CitDT05GSUdfQVVESVQ9eQorQ09ORklH X0hBVkVfQVJDSF9BVURJVFNZU0NBTEw9eQorQ09ORklHX0FVRElUU1lTQ0FMTD15CisKKyMKKyMg SVJRIHN1YnN5c3RlbQorIworQ09ORklHX0dFTkVSSUNfSVJRX1NIT1c9eQorQ09ORklHX0dFTkVS SUNfSVJRX1NIT1dfTEVWRUw9eQorQ09ORklHX0dFTkVSSUNfSVJRX0VGRkVDVElWRV9BRkZfTUFT Sz15CitDT05GSUdfR0VORVJJQ19JUlFfTUlHUkFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0lSUV9J TkpFQ1RJT049eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19J UlFfQ0hJUD15CitDT05GSUdfSVJRX0RPTUFJTj15CitDT05GSUdfSVJRX1NJTT15CitDT05GSUdf SVJRX0RPTUFJTl9ISUVSQVJDSFk9eQorQ09ORklHX0dFTkVSSUNfSVJRX0lQST15CitDT05GSUdf R0VORVJJQ19JUlFfSVBJX01VWD15CitDT05GSUdfR0VORVJJQ19NU0lfSVJRPXkKK0NPTkZJR19J UlFfRk9SQ0VEX1RIUkVBRElORz15CitDT05GSUdfU1BBUlNFX0lSUT15CisjIENPTkZJR19HRU5F UklDX0lSUV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIElSUSBzdWJzeXN0ZW0KKworQ09O RklHX0dFTkVSSUNfSVJRX01VTFRJX0hBTkRMRVI9eQorQ09ORklHX0dFTkVSSUNfVElNRV9WU1lT Q0FMTD15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfQVJDSF9IQVNfVElD S19CUk9BRENBU1Q9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURDQVNUPXkKK0NP TkZJR19IQVZFX1BPU0lYX0NQVV9USU1FUlNfVEFTS19XT1JLPXkKK0NPTkZJR19QT1NJWF9DUFVf VElNRVJTX1RBU0tfV09SSz15CitDT05GSUdfQ09OVEVYVF9UUkFDS0lORz15CitDT05GSUdfQ09O VEVYVF9UUkFDS0lOR19JRExFPXkKKworIworIyBUaW1lcnMgc3Vic3lzdGVtCisjCitDT05GSUdf VElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWl9DT01NT049eQorIyBDT05GSUdfSFpfUEVSSU9E SUMgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFpfSURMRSBpcyBub3Qgc2V0CitDT05GSUdfTk9f SFpfRlVMTD15CitDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19VU0VSPXkKK0NPTkZJR19DT05URVhU X1RSQUNLSU5HX1VTRVJfRk9SQ0U9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19U SU1FUlM9eQorIyBlbmQgb2YgVGltZXJzIHN1YnN5c3RlbQorCitDT05GSUdfQlBGPXkKK0NPTkZJ R19IQVZFX0VCUEZfSklUPXkKKworIworIyBCUEYgc3Vic3lzdGVtCisjCitDT05GSUdfQlBGX1NZ U0NBTEw9eQorQ09ORklHX0JQRl9KSVQ9eQorQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OPXkKK0NP TkZJR19CUEZfSklUX0RFRkFVTFRfT049eQorQ09ORklHX0JQRl9VTlBSSVZfREVGQVVMVF9PRkY9 eQorQ09ORklHX1VTRVJNT0RFX0RSSVZFUj15CisjIENPTkZJR19CUEZfUFJFTE9BRCBpcyBub3Qg c2V0CitDT05GSUdfQlBGX0xTTT15CisjIGVuZCBvZiBCUEYgc3Vic3lzdGVtCisKK0NPTkZJR19Q UkVFTVBUX1ZPTFVOVEFSWV9CVUlMRD15CisjIENPTkZJR19QUkVFTVBUX05PTkUgaXMgbm90IHNl dAorQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNl dAorCisjCisjIENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKKyMKK0NPTkZJR19W SVJUX0NQVV9BQ0NPVU5USU5HPXkKK0NPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HX0dFTj15Cisj IENPTkZJR19JUlFfVElNRV9BQ0NPVU5USU5HIGlzIG5vdCBzZXQKK0NPTkZJR19CU0RfUFJPQ0VT U19BQ0NUPXkKK0NPTkZJR19CU0RfUFJPQ0VTU19BQ0NUX1YzPXkKK0NPTkZJR19UQVNLU1RBVFM9 eQorQ09ORklHX1RBU0tfREVMQVlfQUNDVD15CitDT05GSUdfVEFTS19YQUNDVD15CitDT05GSUdf VEFTS19JT19BQ0NPVU5USU5HPXkKK0NPTkZJR19QU0k9eQorQ09ORklHX1BTSV9ERUZBVUxUX0RJ U0FCTEVEPXkKKyMgZW5kIG9mIENQVS9UYXNrIHRpbWUgYW5kIHN0YXRzIGFjY291bnRpbmcKKwor Q09ORklHX0NQVV9JU09MQVRJT049eQorCisjCisjIFJDVSBTdWJzeXN0ZW0KKyMKK0NPTkZJR19U UkVFX1JDVT15CisjIENPTkZJR19SQ1VfRVhQRVJUIGlzIG5vdCBzZXQKK0NPTkZJR19UUkVFX1NS Q1U9eQorQ09ORklHX1RBU0tTX1JDVV9HRU5FUklDPXkKK0NPTkZJR19UQVNLU19SVURFX1JDVT15 CitDT05GSUdfVEFTS1NfVFJBQ0VfUkNVPXkKK0NPTkZJR19SQ1VfU1RBTExfQ09NTU9OPXkKK0NP TkZJR19SQ1VfTkVFRF9TRUdDQkxJU1Q9eQorQ09ORklHX1JDVV9OT0NCX0NQVT15CisjIENPTkZJ R19SQ1VfTk9DQl9DUFVfREVGQVVMVF9BTEwgaXMgbm90IHNldAorQ09ORklHX1JDVV9MQVpZPXkK KyMgZW5kIG9mIFJDVSBTdWJzeXN0ZW0KKworQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NP TkZJR19QUk9DPXkKK0NPTkZJR19JS0hFQURFUlM9bQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTgK K0NPTkZJR19MT0dfQ1BVX01BWF9CVUZfU0hJRlQ9MTIKKyMgQ09ORklHX1BSSU5US19JTkRFWCBp cyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19TQ0hFRF9DTE9DSz15CisKKyMKKyMgU2NoZWR1bGVy IGZlYXR1cmVzCisjCisjIENPTkZJR19VQ0xBTVBfVEFTSyBpcyBub3Qgc2V0CisjIGVuZCBvZiBT Y2hlZHVsZXIgZmVhdHVyZXMKKworQ09ORklHX0NDX0hBU19JTlQxMjg9eQorQ09ORklHX0NDX0lN UExJQ0lUX0ZBTExUSFJPVUdIPSItV2ltcGxpY2l0LWZhbGx0aHJvdWdoPTUiCitDT05GSUdfR0ND MTFfTk9fQVJSQVlfQk9VTkRTPXkKK0NPTkZJR19DQ19OT19BUlJBWV9CT1VORFM9eQorQ09ORklH X0FSQ0hfU1VQUE9SVFNfSU5UMTI4PXkKK0NPTkZJR19DR1JPVVBTPXkKK0NPTkZJR19QQUdFX0NP VU5URVI9eQorIyBDT05GSUdfQ0dST1VQX0ZBVk9SX0RZTk1PRFMgaXMgbm90IHNldAorQ09ORklH X01FTUNHPXkKK0NPTkZJR19NRU1DR19LTUVNPXkKK0NPTkZJR19CTEtfQ0dST1VQPXkKK0NPTkZJ R19DR1JPVVBfV1JJVEVCQUNLPXkKK0NPTkZJR19DR1JPVVBfU0NIRUQ9eQorQ09ORklHX0ZBSVJf R1JPVVBfU0NIRUQ9eQorQ09ORklHX0NGU19CQU5EV0lEVEg9eQorQ09ORklHX1JUX0dST1VQX1ND SEVEPXkKK0NPTkZJR19TQ0hFRF9NTV9DSUQ9eQorQ09ORklHX0NHUk9VUF9QSURTPXkKK0NPTkZJ R19DR1JPVVBfUkRNQT15CitDT05GSUdfQ0dST1VQX0ZSRUVaRVI9eQorQ09ORklHX0NHUk9VUF9I VUdFVExCPXkKK0NPTkZJR19DUFVTRVRTPXkKK0NPTkZJR19QUk9DX1BJRF9DUFVTRVQ9eQorQ09O RklHX0NHUk9VUF9ERVZJQ0U9eQorQ09ORklHX0NHUk9VUF9DUFVBQ0NUPXkKK0NPTkZJR19DR1JP VVBfUEVSRj15CitDT05GSUdfQ0dST1VQX0JQRj15CitDT05GSUdfQ0dST1VQX01JU0M9eQorIyBD T05GSUdfQ0dST1VQX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TT0NLX0NHUk9VUF9EQVRBPXkK K0NPTkZJR19OQU1FU1BBQ0VTPXkKK0NPTkZJR19VVFNfTlM9eQorQ09ORklHX1RJTUVfTlM9eQor Q09ORklHX0lQQ19OUz15CitDT05GSUdfVVNFUl9OUz15CitDT05GSUdfUElEX05TPXkKK0NPTkZJ R19ORVRfTlM9eQorQ09ORklHX0NIRUNLUE9JTlRfUkVTVE9SRT15CisjIENPTkZJR19TQ0hFRF9B VVRPR1JPVVAgaXMgbm90IHNldAorQ09ORklHX1JFTEFZPXkKK0NPTkZJR19CTEtfREVWX0lOSVRS RD15CitDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX1JEX0daSVA9eQorQ09ORklH X1JEX0JaSVAyPXkKK0NPTkZJR19SRF9MWk1BPXkKK0NPTkZJR19SRF9YWj15CitDT05GSUdfUkRf TFpPPXkKK0NPTkZJR19SRF9MWjQ9eQorQ09ORklHX1JEX1pTVEQ9eQorQ09ORklHX0JPT1RfQ09O RklHPXkKKyMgQ09ORklHX0JPT1RfQ09ORklHX0ZPUkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JP T1RfQ09ORklHX0VNQkVEIGlzIG5vdCBzZXQKK0NPTkZJR19JTklUUkFNRlNfUFJFU0VSVkVfTVRJ TUU9eQorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRT15CisjIENPTkZJR19DQ19P UFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfTERfT1JQSEFOX1dBUk49eQorQ09O RklHX0xEX09SUEhBTl9XQVJOX0xFVkVMPSJ3YXJuIgorQ09ORklHX1NZU0NUTD15CitDT05GSUdf U1lTQ1RMX0VYQ0VQVElPTl9UUkFDRT15CitDT05GSUdfRVhQRVJUPXkKK0NPTkZJR19NVUxUSVVT RVI9eQorIyBDT05GSUdfU0dFVE1BU0tfU1lTQ0FMTCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNf U1lTQ0FMTD15CitDT05GSUdfRkhBTkRMRT15CitDT05GSUdfUE9TSVhfVElNRVJTPXkKK0NPTkZJ R19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0JBU0Vf RlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0ZVVEVYX1BJPXkKK0NPTkZJR19FUE9MTD15 CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQor Q09ORklHX1NITUVNPXkKK0NPTkZJR19BSU89eQorQ09ORklHX0lPX1VSSU5HPXkKK0NPTkZJR19B RFZJU0VfU1lTQ0FMTFM9eQorQ09ORklHX01FTUJBUlJJRVI9eQorQ09ORklHX0tBTExTWU1TPXkK KyMgQ09ORklHX0tBTExTWU1TX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19LQUxMU1lNU19B TEw9eQorQ09ORklHX0tBTExTWU1TX0JBU0VfUkVMQVRJVkU9eQorQ09ORklHX0tDTVA9eQorQ09O RklHX1JTRVE9eQorIyBDT05GSUdfREVCVUdfUlNFUSBpcyBub3Qgc2V0CisjIENPTkZJR19FTUJF RERFRCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9QRVJGX0VWRU5UUz15CisjIENPTkZJR19QQzEw NCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIFBlcmZvcm1hbmNlIEV2ZW50cyBBbmQgQ291bnRl cnMKKyMKK0NPTkZJR19QRVJGX0VWRU5UUz15CisjIENPTkZJR19ERUJVR19QRVJGX1VTRV9WTUFM TE9DIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEtlcm5lbCBQZXJmb3JtYW5jZSBFdmVudHMgQW5kIENv dW50ZXJzCisKK0NPTkZJR19TWVNURU1fREFUQV9WRVJJRklDQVRJT049eQorQ09ORklHX1BST0ZJ TElORz15CitDT05GSUdfVFJBQ0VQT0lOVFM9eQorIyBlbmQgb2YgR2VuZXJhbCBzZXR1cAorCitD T05GSUdfNjRCSVQ9eQorQ09ORklHX1JJU0NWPXkKK0NPTkZJR19HQ0NfU1VQUE9SVFNfRFlOQU1J Q19GVFJBQ0U9eQorQ09ORklHX0FSQ0hfTU1BUF9STkRfQklUU19NSU49MTgKK0NPTkZJR19BUkNI X01NQVBfUk5EX0NPTVBBVF9CSVRTX01JTj04CitDT05GSUdfQVJDSF9NTUFQX1JORF9CSVRTX01B WD0yNAorQ09ORklHX0FSQ0hfTU1BUF9STkRfQ09NUEFUX0JJVFNfTUFYPTE3CitDT05GSUdfUklT Q1ZfU0JJPXkKK0NPTkZJR19NTVU9eQorQ09ORklHX1BBR0VfT0ZGU0VUPTB4ZmY2MDAwMDAwMDAw MDAwMAorQ09ORklHX0FSQ0hfRkxBVE1FTV9FTkFCTEU9eQorQ09ORklHX0FSQ0hfU1BBUlNFTUVN X0VOQUJMRT15CitDT05GSUdfQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19BUkNI X1NVUFBPUlRTX1VQUk9CRVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdf R0VORVJJQ19CVUc9eQorQ09ORklHX0dFTkVSSUNfQlVHX1JFTEFUSVZFX1BPSU5URVJTPXkKK0NP TkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfR0VORVJJQ19DU1VNPXkKK0NP TkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0ZJWF9FQVJMWUNPTl9NRU09eQorQ09ORklH X1BHVEFCTEVfTEVWRUxTPTUKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1JJU0NW X0RNQV9OT05DT0hFUkVOVD15CitDT05GSUdfQVNfSEFTX0lOU049eQorCisjCisjIFNvQyBzZWxl Y3Rpb24KKyMKKyMgQ09ORklHX1NPQ19NSUNST0NISVBfUE9MQVJGSVJFIGlzIG5vdCBzZXQKKyMg Q09ORklHX0FSQ0hfUkVORVNBUyBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TSUZJVkU9eQorQ09O RklHX1NPQ19TSUZJVkU9eQorQ09ORklHX0FSQ0hfU1RBUkZJVkU9eQorQ09ORklHX1NPQ19TVEFS RklWRT15CisjIENPTkZJR19BUkNIX1NVTlhJIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1ZJUlQ9 eQorQ09ORklHX1NPQ19WSVJUPXkKKyMgZW5kIG9mIFNvQyBzZWxlY3Rpb24KKworIworIyBDUFUg ZXJyYXRhIHNlbGVjdGlvbgorIworQ09ORklHX0VSUkFUQV9TSUZJVkU9eQorQ09ORklHX0VSUkFU QV9TSUZJVkVfQ0lQXzQ1Mz15CitDT05GSUdfRVJSQVRBX1NJRklWRV9DSVBfMTIwMD15CitDT05G SUdfRVJSQVRBX1RIRUFEPXkKK0NPTkZJR19FUlJBVEFfVEhFQURfUEJNVD15CitDT05GSUdfRVJS QVRBX1RIRUFEX0NNTz15CitDT05GSUdfRVJSQVRBX1RIRUFEX1BNVT15CisjIGVuZCBvZiBDUFUg ZXJyYXRhIHNlbGVjdGlvbgorCisjCisjIFBsYXRmb3JtIHR5cGUKKyMKKyMgQ09ORklHX05PTlBP UlRBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1JWNjRJPXkKKyMgQ09ORklHX0NNT0RFTF9N RURMT1cgaXMgbm90IHNldAorQ09ORklHX0NNT0RFTF9NRURBTlk9eQorQ09ORklHX01PRFVMRV9T RUNUSU9OUz15CitDT05GSUdfU01QPXkKK0NPTkZJR19TQ0hFRF9NQz15CitDT05GSUdfTlJfQ1BV Uz00ODAKK0NPTkZJR19IT1RQTFVHX0NQVT15CitDT05GSUdfVFVORV9HRU5FUklDPXkKKyMgQ09O RklHX05VTUEgaXMgbm90IHNldAorQ09ORklHX1JJU0NWX0FMVEVSTkFUSVZFPXkKK0NPTkZJR19S SVNDVl9BTFRFUk5BVElWRV9FQVJMWT15CitDT05GSUdfUklTQ1ZfSVNBX0M9eQorIyBDT05GSUdf UklTQ1ZfSVNBX1NWTkFQT1QgaXMgbm90IHNldAorIyBDT05GSUdfUklTQ1ZfSVNBX1NWUEJNVCBp cyBub3Qgc2V0CitDT05GSUdfVE9PTENIQUlOX0hBU19aQkI9eQorQ09ORklHX1JJU0NWX0lTQV9a QkI9eQorIyBDT05GSUdfUklTQ1ZfSVNBX1pJQ0JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19SSVND Vl9JU0FfWklDQk9aIGlzIG5vdCBzZXQKK0NPTkZJR19UT09MQ0hBSU5fSEFTX1pJSElOVFBBVVNF PXkKK0NPTkZJR19UT09MQ0hBSU5fTkVFRFNfRVhQTElDSVRfWklDU1JfWklGRU5DRUk9eQorIyBD T05GSUdfRlBVIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFBsYXRmb3JtIHR5cGUKKworIworIyBLZXJu ZWwgZmVhdHVyZXMKKyMKKyMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CitDT05GSUdfSFpfMjUw PXkKKyMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0CisjIENPTkZJR19IWl8xMDAwIGlzIG5vdCBz ZXQKK0NPTkZJR19IWj0yNTAKK0NPTkZJR19TQ0hFRF9IUlRJQ0s9eQorIyBDT05GSUdfUklTQ1Zf U0JJX1YwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SSVNDVl9CT09UX1NQSU5XQUlUIGlzIG5vdCBz ZXQKK0NPTkZJR19LRVhFQz15CisjIENPTkZJR19LRVhFQ19GSUxFIGlzIG5vdCBzZXQKK0NPTkZJ R19DUkFTSF9EVU1QPXkKK0NPTkZJR19DT01QQVQ9eQorQ09ORklHX1JFTE9DQVRBQkxFPXkKKyMg ZW5kIG9mIEtlcm5lbCBmZWF0dXJlcworCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX0NN RExJTkU9IiIKK0NPTkZJR19FRklfU1RVQj15CitDT05GSUdfRUZJPXkKK0NPTkZJR19DQ19IQVZF X1NUQUNLUFJPVEVDVE9SX1RMUz15CitDT05GSUdfU1RBQ0tQUk9URUNUT1JfUEVSX1RBU0s9eQor IyBlbmQgb2YgQm9vdCBvcHRpb25zCisKK0NPTkZJR19QT1JUQUJMRT15CisKKyMKKyMgUG93ZXIg bWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdfUE09eQorQ09ORklHX1BNX0RFQlVHPXkKK0NP TkZJR19QTV9BRFZBTkNFRF9ERUJVRz15CitDT05GSUdfRFBNX1dBVENIRE9HPXkKK0NPTkZJR19E UE1fV0FUQ0hET0dfVElNRU9VVD02MAorQ09ORklHX1BNX0NMSz15CitDT05GSUdfUE1fR0VORVJJ Q19ET01BSU5TPXkKKyMgQ09ORklHX1dRX1BPV0VSX0VGRklDSUVOVF9ERUZBVUxUIGlzIG5vdCBz ZXQKK0NPTkZJR19QTV9HRU5FUklDX0RPTUFJTlNfT0Y9eQorQ09ORklHX0NQVV9QTT15CitDT05G SUdfRU5FUkdZX01PREVMPXkKKyMgZW5kIG9mIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworCisj CisjIENQVSBQb3dlciBNYW5hZ2VtZW50CisjCisKKyMKKyMgQ1BVIElkbGUKKyMKK0NPTkZJR19D UFVfSURMRT15CitDT05GSUdfQ1BVX0lETEVfTVVMVElQTEVfRFJJVkVSUz15CitDT05GSUdfQ1BV X0lETEVfR09WX0xBRERFUj15CitDT05GSUdfQ1BVX0lETEVfR09WX01FTlU9eQorQ09ORklHX0NQ VV9JRExFX0dPVl9URU89eQorQ09ORklHX0RUX0lETEVfU1RBVEVTPXkKK0NPTkZJR19EVF9JRExF X0dFTlBEPXkKKworIworIyBSSVNDLVYgQ1BVIElkbGUgRHJpdmVycworIworQ09ORklHX1JJU0NW X1NCSV9DUFVJRExFPXkKKyMgZW5kIG9mIFJJU0MtViBDUFUgSWRsZSBEcml2ZXJzCisjIGVuZCBv ZiBDUFUgSWRsZQorCisjCisjIENQVSBGcmVxdWVuY3kgc2NhbGluZworIworQ09ORklHX0NQVV9G UkVRPXkKK0NPTkZJR19DUFVfRlJFUV9HT1ZfQVRUUl9TRVQ9eQorQ09ORklHX0NQVV9GUkVRX0dP Vl9DT01NT049eQorQ09ORklHX0NQVV9GUkVRX1NUQVQ9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVG QVVMVF9HT1ZfUEVSRk9STUFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVM VF9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09W X1VTRVJTUEFDRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1B TkQ9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1NDSEVEVVRJTCBpcyBub3Qgc2V0CitD T05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFPXkKK0NPTkZJR19DUFVfRlJFUV9HT1ZfUE9X RVJTQVZFPXkKK0NPTkZJR19DUFVfRlJFUV9HT1ZfVVNFUlNQQUNFPW0KK0NPTkZJR19DUFVfRlJF UV9HT1ZfT05ERU1BTkQ9eQorQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkU9bQorQ09O RklHX0NQVV9GUkVRX0dPVl9TQ0hFRFVUSUw9eQorCisjCisjIENQVSBmcmVxdWVuY3kgc2NhbGlu ZyBkcml2ZXJzCisjCitDT05GSUdfQ1BVRlJFUV9EVD1tCitDT05GSUdfQ1BVRlJFUV9EVF9QTEFU REVWPXkKKyMgZW5kIG9mIENQVSBGcmVxdWVuY3kgc2NhbGluZworIyBlbmQgb2YgQ1BVIFBvd2Vy IE1hbmFnZW1lbnQKKworIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldAorCisjCisj IEdlbmVyYWwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCisjCitDT05GSUdfQ1JBU0hf Q09SRT15CitDT05GSUdfS0VYRUNfQ09SRT15CitDT05GSUdfR0VORVJJQ19FTlRSWT15CitDT05G SUdfS1BST0JFUz15CitDT05GSUdfSlVNUF9MQUJFTD15CisjIENPTkZJR19TVEFUSUNfS0VZU19T RUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfS1BST0JFU19PTl9GVFJBQ0U9eQorQ09ORklHX1VQ Uk9CRVM9eQorQ09ORklHX0hBVkVfNjRCSVRfQUxJR05FRF9BQ0NFU1M9eQorQ09ORklHX0tSRVRQ Uk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRV9PTl9SRVRIT09LPXkKK0NPTkZJR19IQVZFX0tQUk9C RVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTX09OX0ZU UkFDRT15CitDT05GSUdfSEFWRV9GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT049eQorQ09ORklHX1RS QUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBVkVfQVJDSF9UUkFDRUhPT0s9eQorQ09O RklHX0hBVkVfRE1BX0NPTlRJR1VPVVM9eQorQ09ORklHX0dFTkVSSUNfU01QX0lETEVfVEhSRUFE PXkKK0NPTkZJR19HRU5FUklDX0lETEVfUE9MTF9TRVRVUD15CitDT05GSUdfQVJDSF9IQVNfRk9S VElGWV9TT1VSQ0U9eQorQ09ORklHX0FSQ0hfSEFTX1NFVF9NRU1PUlk9eQorQ09ORklHX0FSQ0hf SEFTX1NFVF9ESVJFQ1RfTUFQPXkKK0NPTkZJR19IQVZFX0FSQ0hfVEhSRUFEX1NUUlVDVF9XSElU RUxJU1Q9eQorQ09ORklHX0hBVkVfQVNNX01PRFZFUlNJT05TPXkKK0NPTkZJR19IQVZFX1JFR1Nf QU5EX1NUQUNLX0FDQ0VTU19BUEk9eQorQ09ORklHX0hBVkVfUlNFUT15CitDT05GSUdfSEFWRV9G VU5DVElPTl9BUkdfQUNDRVNTX0FQST15CitDT05GSUdfSEFWRV9QRVJGX1JFR1M9eQorQ09ORklH X0hBVkVfUEVSRl9VU0VSX1NUQUNLX0RVTVA9eQorQ09ORklHX0hBVkVfQVJDSF9KVU1QX0xBQkVM PXkKK0NPTkZJR19IQVZFX0FSQ0hfSlVNUF9MQUJFTF9SRUxBVElWRT15CitDT05GSUdfTU1VX0xB WllfVExCX1JFRkNPVU5UPXkKK0NPTkZJR19IQVZFX0FSQ0hfU0VDQ09NUD15CitDT05GSUdfSEFW RV9BUkNIX1NFQ0NPTVBfRklMVEVSPXkKK0NPTkZJR19TRUNDT01QPXkKK0NPTkZJR19TRUNDT01Q X0ZJTFRFUj15CisjIENPTkZJR19TRUNDT01QX0NBQ0hFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJ R19IQVZFX1NUQUNLUFJPVEVDVE9SPXkKK0NPTkZJR19TVEFDS1BST1RFQ1RPUj15CitDT05GSUdf U1RBQ0tQUk9URUNUT1JfU1RST05HPXkKK0NPTkZJR19MVE9fTk9ORT15CitDT05GSUdfSEFWRV9D T05URVhUX1RSQUNLSU5HX1VTRVI9eQorQ09ORklHX0hBVkVfVklSVF9DUFVfQUNDT1VOVElOR19H RU49eQorQ09ORklHX0hBVkVfSVJRX1RJTUVfQUNDT1VOVElORz15CitDT05GSUdfSEFWRV9NT1ZF X1BVRD15CitDT05GSUdfSEFWRV9NT1ZFX1BNRD15CitDT05GSUdfSEFWRV9BUkNIX1RSQU5TUEFS RU5UX0hVR0VQQUdFPXkKK0NPTkZJR19IQVZFX0FSQ0hfSFVHRV9WTUFQPXkKK0NPTkZJR19IQVZF X0FSQ0hfSFVHRV9WTUFMTE9DPXkKK0NPTkZJR19BUkNIX1dBTlRfSFVHRV9QTURfU0hBUkU9eQor Q09ORklHX0hBVkVfTU9EX0FSQ0hfU1BFQ0lGSUM9eQorQ09ORklHX01PRFVMRVNfVVNFX0VMRl9S RUxBPXkKK0NPTkZJR19BUkNIX0hBU19FTEZfUkFORE9NSVpFPXkKK0NPTkZJR19IQVZFX0FSQ0hf TU1BUF9STkRfQklUUz15CitDT05GSUdfQVJDSF9NTUFQX1JORF9CSVRTPTE4CitDT05GSUdfSEFW RV9BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTPXkKK0NPTkZJR19BUkNIX01NQVBfUk5EX0NPTVBB VF9CSVRTPTExCitDT05GSUdfUEFHRV9TSVpFX0xFU1NfVEhBTl82NEtCPXkKK0NPTkZJR19QQUdF X1NJWkVfTEVTU19USEFOXzI1NktCPXkKK0NPTkZJR19BUkNIX1dBTlRfREVGQVVMVF9UT1BET1dO X01NQVBfTEFZT1VUPXkKK0NPTkZJR19DTE9ORV9CQUNLV0FSRFM9eQorQ09ORklHX0NPTVBBVF8z MkJJVF9USU1FPXkKK0NPTkZJR19IQVZFX0FSQ0hfVk1BUF9TVEFDSz15CitDT05GSUdfVk1BUF9T VEFDSz15CitDT05GSUdfQVJDSF9PUFRJT05BTF9LRVJORUxfUldYPXkKK0NPTkZJR19BUkNIX09Q VElPTkFMX0tFUk5FTF9SV1hfREVGQVVMVD15CitDT05GSUdfQVJDSF9IQVNfU1RSSUNUX0tFUk5F TF9SV1g9eQorQ09ORklHX1NUUklDVF9LRVJORUxfUldYPXkKK0NPTkZJR19BUkNIX0hBU19TVFJJ Q1RfTU9EVUxFX1JXWD15CitDT05GSUdfU1RSSUNUX01PRFVMRV9SV1g9eQorQ09ORklHX0FSQ0hf VVNFX01FTVJFTUFQX1BST1Q9eQorIyBDT05GSUdfTE9DS19FVkVOVF9DT1VOVFMgaXMgbm90IHNl dAorQ09ORklHX0FSQ0hfSEFTX1ZEU09fREFUQT15CitDT05GSUdfQVJDSF9XQU5UX0xEX09SUEhB Tl9XQVJOPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0RFQlVHX1BBR0VBTExPQz15CitDT05GSUdf QVJDSF9TVVBQT1JUU19QQUdFX1RBQkxFX0NIRUNLPXkKKworIworIyBHQ09WLWJhc2VkIGtlcm5l bCBwcm9maWxpbmcKKyMKKyMgQ09ORklHX0dDT1ZfS0VSTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19B UkNIX0hBU19HQ09WX1BST0ZJTEVfQUxMPXkKKyMgZW5kIG9mIEdDT1YtYmFzZWQga2VybmVsIHBy b2ZpbGluZworCitDT05GSUdfSEFWRV9HQ0NfUExVR0lOUz15CisjIENPTkZJR19HQ0NfUExVR0lO UyBpcyBub3Qgc2V0CitDT05GSUdfRlVOQ1RJT05fQUxJR05NRU5UPTAKKyMgZW5kIG9mIEdlbmVy YWwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCisKK0NPTkZJR19SVF9NVVRFWEVTPXkK K0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9E RUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQ9eQorQ09ORklHX01PRFVM RV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENP TkZJR19NT0RVTEVfVU5MT0FEX1RBSU5UX1RSQUNLSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RW RVJTSU9OUz15CitDT05GSUdfQVNNX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01PRFVMRV9TUkNW RVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU0lHIGlzIG5vdCBzZXQKK0NP TkZJR19NT0RVTEVfQ09NUFJFU1NfTk9ORT15CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1NfR1pJ UCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1NfWFogaXMgbm90IHNldAorIyBD T05GSUdfTU9EVUxFX0NPTVBSRVNTX1pTVEQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX0FM TE9XX01JU1NJTkdfTkFNRVNQQUNFX0lNUE9SVFMgaXMgbm90IHNldAorQ09ORklHX01PRFBST0JF X1BBVEg9Ii9zYmluL21vZHByb2JlIgorIyBDT05GSUdfVFJJTV9VTlVTRURfS1NZTVMgaXMgbm90 IHNldAorQ09ORklHX01PRFVMRVNfVFJFRV9MT09LVVA9eQorQ09ORklHX0JMT0NLPXkKK0NPTkZJ R19CTE9DS19MRUdBQ1lfQVVUT0xPQUQ9eQorQ09ORklHX0JMS19SUV9BTExPQ19USU1FPXkKK0NP TkZJR19CTEtfQ0dST1VQX1JXU1RBVD15CitDT05GSUdfQkxLX0NHUk9VUF9QVU5UX0JJTz15CitD T05GSUdfQkxLX0RFVl9CU0dfQ09NTU9OPXkKK0NPTkZJR19CTEtfSUNRPXkKK0NPTkZJR19CTEtf REVWX0JTR0xJQj15CitDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFk9eQorQ09ORklHX0JMS19ERVZf SU5URUdSSVRZX1QxMD15CitDT05GSUdfQkxLX0RFVl9aT05FRD15CitDT05GSUdfQkxLX0RFVl9U SFJPVFRMSU5HPXkKKyMgQ09ORklHX0JMS19ERVZfVEhST1RUTElOR19MT1cgaXMgbm90IHNldAor Q09ORklHX0JMS19XQlQ9eQorQ09ORklHX0JMS19XQlRfTVE9eQorQ09ORklHX0JMS19DR1JPVVBf SU9MQVRFTkNZPXkKKyMgQ09ORklHX0JMS19DR1JPVVBfRkNfQVBQSUQgaXMgbm90IHNldAorQ09O RklHX0JMS19DR1JPVVBfSU9DT1NUPXkKK0NPTkZJR19CTEtfQ0dST1VQX0lPUFJJTz15CitDT05G SUdfQkxLX0RFQlVHX0ZTPXkKK0NPTkZJR19CTEtfREVCVUdfRlNfWk9ORUQ9eQorIyBDT05GSUdf QkxLX1NFRF9PUEFMIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfSU5MSU5FX0VOQ1JZUFRJT049eQor Q09ORklHX0JMS19JTkxJTkVfRU5DUllQVElPTl9GQUxMQkFDSz15CisKKyMKKyMgUGFydGl0aW9u IFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BB UlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NP TkZJR19PU0ZfUEFSVElUSU9OPXkKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0 CitDT05GSUdfQVRBUklfUEFSVElUSU9OPXkKK0NPTkZJR19NQUNfUEFSVElUSU9OPXkKK0NPTkZJ R19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX0JTRF9ESVNLTEFCRUw9eQorIyBDT05GSUdfTUlO SVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT049 eQorQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15CitDT05GSUdfTERNX1BBUlRJVElPTj15Cisj IENPTkZJR19MRE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NHSV9QQVJUSVRJT049eQorQ09O RklHX1VMVFJJWF9QQVJUSVRJT049eQorQ09ORklHX1NVTl9QQVJUSVRJT049eQorQ09ORklHX0tB Uk1BX1BBUlRJVElPTj15CitDT05GSUdfRUZJX1BBUlRJVElPTj15CitDT05GSUdfU1lTVjY4X1BB UlRJVElPTj15CisjIENPTkZJR19DTURMSU5FX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIGVuZCBv ZiBQYXJ0aXRpb24gVHlwZXMKKworQ09ORklHX0JMS19NUV9QQ0k9eQorQ09ORklHX0JMS19NUV9W SVJUSU89eQorQ09ORklHX0JMS19QTT15CitDT05GSUdfQkxPQ0tfSE9MREVSX0RFUFJFQ0FURUQ9 eQorQ09ORklHX0JMS19NUV9TVEFDS0lORz15CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09O RklHX01RX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX01RX0lPU0NIRURfS1lCRVI9eQorQ09O RklHX0lPU0NIRURfQkZRPXkKK0NPTkZJR19CRlFfR1JPVVBfSU9TQ0hFRD15CisjIENPTkZJR19C RlFfQ0dST1VQX0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5kIG9mIElPIFNjaGVkdWxlcnMKKworQ09O RklHX1BBREFUQT15CitDT05GSUdfQVNOMT15CitDT05GSUdfSU5MSU5FX1NQSU5fVU5MT0NLX0lS UT15CitDT05GSUdfSU5MSU5FX1JFQURfVU5MT0NLPXkKK0NPTkZJR19JTkxJTkVfUkVBRF9VTkxP Q0tfSVJRPXkKK0NPTkZJR19JTkxJTkVfV1JJVEVfVU5MT0NLPXkKK0NPTkZJR19JTkxJTkVfV1JJ VEVfVU5MT0NLX0lSUT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BVE9NSUNfUk1XPXkKK0NPTkZJ R19NVVRFWF9TUElOX09OX09XTkVSPXkKK0NPTkZJR19SV1NFTV9TUElOX09OX09XTkVSPXkKK0NP TkZJR19MT0NLX1NQSU5fT05fT1dORVI9eQorQ09ORklHX0FSQ0hfVVNFX1FVRVVFRF9SV0xPQ0tT PXkKK0NPTkZJR19RVUVVRURfUldMT0NLUz15CitDT05GSUdfQVJDSF9IQVNfTU1JT1dCPXkKK0NP TkZJR19NTUlPV0I9eQorQ09ORklHX0FSQ0hfSEFTX05PTl9PVkVSTEFQUElOR19BRERSRVNTX1NQ QUNFPXkKK0NPTkZJR19GUkVFWkVSPXkKKworIworIyBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cwor IworQ09ORklHX0JJTkZNVF9FTEY9eQorQ09ORklHX0NPTVBBVF9CSU5GTVRfRUxGPXkKK0NPTkZJ R19FTEZDT1JFPXkKK0NPTkZJR19DT1JFX0RVTVBfREVGQVVMVF9FTEZfSEVBREVSUz15CitDT05G SUdfQklORk1UX1NDUklQVD15CitDT05GSUdfQVJDSF9IQVNfQklORk1UX0ZMQVQ9eQorIyBDT05G SUdfQklORk1UX0ZMQVQgaXMgbm90IHNldAorQ09ORklHX0JJTkZNVF9NSVNDPW0KK0NPTkZJR19D T1JFRFVNUD15CisjIGVuZCBvZiBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cworCisjCisjIE1lbW9y eSBNYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19aUE9PTD15CitDT05GSUdfU1dBUD15CitD T05GSUdfWlNXQVA9eQorIyBDT05GSUdfWlNXQVBfREVGQVVMVF9PTiBpcyBub3Qgc2V0CisjIENP TkZJR19aU1dBUF9DT01QUkVTU09SX0RFRkFVTFRfREVGTEFURSBpcyBub3Qgc2V0CitDT05GSUdf WlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX0xaTz15CisjIENPTkZJR19aU1dBUF9DT01QUkVTU09S X0RFRkFVTFRfODQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVM VF9MWjQgaXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX0xaNEhD IGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9aU1REIGlzIG5v dCBzZXQKK0NPTkZJR19aU1dBUF9DT01QUkVTU09SX0RFRkFVTFQ9Imx6byIKK0NPTkZJR19aU1dB UF9aUE9PTF9ERUZBVUxUX1pCVUQ9eQorIyBDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9aM0ZP TEQgaXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9aU01BTExPQyBpcyBu b3Qgc2V0CitDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVD0iemJ1ZCIKK0NPTkZJR19aQlVEPXkK K0NPTkZJR19aM0ZPTEQ9bQorQ09ORklHX1pTTUFMTE9DPXkKKyMgQ09ORklHX1pTTUFMTE9DX1NU QVQgaXMgbm90IHNldAorQ09ORklHX1pTTUFMTE9DX0NIQUlOX1NJWkU9OAorCisjCisjIFNMQUIg YWxsb2NhdG9yIG9wdGlvbnMKKyMKKyMgQ09ORklHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX1NM VUI9eQorIyBDT05GSUdfU0xVQl9USU5ZIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCX01FUkdFX0RF RkFVTFQ9eQorQ09ORklHX1NMQUJfRlJFRUxJU1RfUkFORE9NPXkKK0NPTkZJR19TTEFCX0ZSRUVM SVNUX0hBUkRFTkVEPXkKKyMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAorQ09ORklHX1NM VUJfQ1BVX1BBUlRJQUw9eQorIyBlbmQgb2YgU0xBQiBhbGxvY2F0b3Igb3B0aW9ucworCitDT05G SUdfU0hVRkZMRV9QQUdFX0FMTE9DQVRPUj15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBz ZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKKyMgQ09ORklHX0ZMQVRNRU1fTUFOVUFM IGlzIG5vdCBzZXQKK0NPTkZJR19TUEFSU0VNRU1fTUFOVUFMPXkKK0NPTkZJR19TUEFSU0VNRU09 eQorQ09ORklHX1NQQVJTRU1FTV9FWFRSRU1FPXkKK0NPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9F TkFCTEU9eQorQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQPXkKK0NPTkZJR19BUkNIX1dBTlRfT1BU SU1JWkVfVk1FTU1BUD15CitDT05GSUdfTUVNT1JZX0lTT0xBVElPTj15CitDT05GSUdfRVhDTFVT SVZFX1NZU1RFTV9SQU09eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKK0NPTkZJR19BUkNI X0VOQUJMRV9TUExJVF9QTURfUFRMT0NLPXkKK0NPTkZJR19NRU1PUllfQkFMTE9PTj15CitDT05G SUdfQkFMTE9PTl9DT01QQUNUSU9OPXkKK0NPTkZJR19DT01QQUNUSU9OPXkKK0NPTkZJR19DT01Q QUNUX1VORVZJQ1RBQkxFX0RFRkFVTFQ9MQorQ09ORklHX1BBR0VfUkVQT1JUSU5HPXkKK0NPTkZJ R19NSUdSQVRJT049eQorQ09ORklHX0FSQ0hfRU5BQkxFX0hVR0VQQUdFX01JR1JBVElPTj15CitD T05GSUdfQVJDSF9FTkFCTEVfVEhQX01JR1JBVElPTj15CitDT05GSUdfQ09OVElHX0FMTE9DPXkK K0NPTkZJR19QSFlTX0FERFJfVF82NEJJVD15CitDT05GSUdfTU1VX05PVElGSUVSPXkKK0NPTkZJ R19LU009eQorQ09ORklHX0RFRkFVTFRfTU1BUF9NSU5fQUREUj02NTUzNgorQ09ORklHX0FSQ0hf V0FOVF9HRU5FUkFMX0hVR0VUTEI9eQorQ09ORklHX0FSQ0hfV0FOVFNfVEhQX1NXQVA9eQorQ09O RklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFPXkKKyMgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdF X0FMV0FZUyBpcyBub3Qgc2V0CitDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFEVklTRT15 CitDT05GSUdfVEhQX1NXQVA9eQorQ09ORklHX1JFQURfT05MWV9USFBfRk9SX0ZTPXkKK0NPTkZJ R19GUk9OVFNXQVA9eQorQ09ORklHX0NNQT15CisjIENPTkZJR19DTUFfREVCVUcgaXMgbm90IHNl dAorIyBDT05GSUdfQ01BX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0NNQV9TWVNGUz15CitD T05GSUdfQ01BX0FSRUFTPTcKK0NPTkZJR19HRU5FUklDX0VBUkxZX0lPUkVNQVA9eQorQ09ORklH X0RFRkVSUkVEX1NUUlVDVF9QQUdFX0lOSVQ9eQorQ09ORklHX1BBR0VfSURMRV9GTEFHPXkKKyMg Q09ORklHX0lETEVfUEFHRV9UUkFDS0lORyBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfQ1VS UkVOVF9TVEFDS19QT0lOVEVSPXkKK0NPTkZJR19aT05FX0RNQTMyPXkKK0NPTkZJR19ITU1fTUlS Uk9SPXkKK0NPTkZJR19HRVRfRlJFRV9SRUdJT049eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJT PXkKKyMgQ09ORklHX1BFUkNQVV9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19HVVBfVEVTVCBp cyBub3Qgc2V0CisjIENPTkZJR19ETUFQT09MX1RFU1QgaXMgbm90IHNldAorQ09ORklHX0FSQ0hf SEFTX1BURV9TUEVDSUFMPXkKK0NPTkZJR19TRUNSRVRNRU09eQorQ09ORklHX0FOT05fVk1BX05B TUU9eQorQ09ORklHX1VTRVJGQVVMVEZEPXkKK0NPTkZJR19MUlVfR0VOPXkKKyMgQ09ORklHX0xS VV9HRU5fRU5BQkxFRCBpcyBub3Qgc2V0CisjIENPTkZJR19MUlVfR0VOX1NUQVRTIGlzIG5vdCBz ZXQKK0NPTkZJR19MT0NLX01NX0FORF9GSU5EX1ZNQT15CisKKyMKKyMgRGF0YSBBY2Nlc3MgTW9u aXRvcmluZworIworQ09ORklHX0RBTU9OPXkKK0NPTkZJR19EQU1PTl9WQUREUj15CitDT05GSUdf REFNT05fUEFERFI9eQorQ09ORklHX0RBTU9OX1NZU0ZTPXkKK0NPTkZJR19EQU1PTl9EQkdGUz15 CitDT05GSUdfREFNT05fUkVDTEFJTT15CisjIENPTkZJR19EQU1PTl9MUlVfU09SVCBpcyBub3Qg c2V0CisjIGVuZCBvZiBEYXRhIEFjY2VzcyBNb25pdG9yaW5nCisjIGVuZCBvZiBNZW1vcnkgTWFu YWdlbWVudCBvcHRpb25zCisKK0NPTkZJR19ORVQ9eQorQ09ORklHX0NPTVBBVF9ORVRMSU5LX01F U1NBR0VTPXkKK0NPTkZJR19ORVRfSU5HUkVTUz15CitDT05GSUdfTkVUX0VHUkVTUz15CitDT05G SUdfTkVUX1JFRElSRUNUPXkKK0NPTkZJR19TS0JfRVhURU5TSU9OUz15CisKKyMKKyMgTmV0d29y a2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPW0KK0NPTkZJR19QQUNLRVRfRElBRz1tCitD T05GSUdfVU5JWD15CitDT05GSUdfVU5JWF9TQ009eQorQ09ORklHX0FGX1VOSVhfT09CPXkKK0NP TkZJR19VTklYX0RJQUc9bQorQ09ORklHX1RMUz1tCitDT05GSUdfVExTX0RFVklDRT15CisjIENP TkZJR19UTFNfVE9FIGlzIG5vdCBzZXQKK0NPTkZJR19YRlJNPXkKK0NPTkZJR19YRlJNX09GRkxP QUQ9eQorQ09ORklHX1hGUk1fQUxHTz1tCitDT05GSUdfWEZSTV9VU0VSPW0KK0NPTkZJR19YRlJN X0lOVEVSRkFDRT1tCitDT05GSUdfWEZSTV9TVUJfUE9MSUNZPXkKK0NPTkZJR19YRlJNX01JR1JB VEU9eQorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKK0NPTkZJR19YRlJNX0FI PW0KK0NPTkZJR19YRlJNX0VTUD1tCitDT05GSUdfWEZSTV9JUENPTVA9bQorQ09ORklHX05FVF9L RVk9bQorQ09ORklHX05FVF9LRVlfTUlHUkFURT15CitDT05GSUdfWEZSTV9FU1BJTlRDUD15CitD T05GSUdfU01DPW0KK0NPTkZJR19TTUNfRElBRz1tCitDT05GSUdfWERQX1NPQ0tFVFM9eQorQ09O RklHX1hEUF9TT0NLRVRTX0RJQUc9bQorQ09ORklHX05FVF9IQU5EU0hBS0U9eQorQ09ORklHX0lO RVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkK KyMgQ09ORklHX0lQX0ZJQl9UUklFX1NUQVRTIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NVUxUSVBM RV9UQUJMRVM9eQorQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSD15CitDT05GSUdfSVBfUk9VVEVf VkVSQk9TRT15CitDT05GSUdfSVBfUk9VVEVfQ0xBU1NJRD15CitDT05GSUdfSVBfUE5QPXkKK0NP TkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKK0NPTkZJR19JUF9QTlBf UkFSUD15CitDT05GSUdfTkVUX0lQSVA9bQorQ09ORklHX05FVF9JUEdSRV9ERU1VWD1tCitDT05G SUdfTkVUX0lQX1RVTk5FTD1tCitDT05GSUdfTkVUX0lQR1JFPW0KK0NPTkZJR19ORVRfSVBHUkVf QlJPQURDQVNUPXkKK0NPTkZJR19JUF9NUk9VVEVfQ09NTU9OPXkKK0NPTkZJR19JUF9NUk9VVEU9 eQorQ09ORklHX0lQX01ST1VURV9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQX1BJTVNNX1Yx PXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CitDT05GSUdfU1lOX0NPT0tJRVM9eQorQ09ORklHX05F VF9JUFZUST1tCitDT05GSUdfTkVUX1VEUF9UVU5ORUw9bQorQ09ORklHX05FVF9GT1U9bQorQ09O RklHX05FVF9GT1VfSVBfVFVOTkVMUz15CitDT05GSUdfSU5FVF9BSD1tCitDT05GSUdfSU5FVF9F U1A9bQorQ09ORklHX0lORVRfRVNQX09GRkxPQUQ9bQorQ09ORklHX0lORVRfRVNQSU5UQ1A9eQor Q09ORklHX0lORVRfSVBDT01QPW0KK0NPTkZJR19JTkVUX1RBQkxFX1BFUlRVUkJfT1JERVI9MTYK K0NPTkZJR19JTkVUX1hGUk1fVFVOTkVMPW0KK0NPTkZJR19JTkVUX1RVTk5FTD1tCitDT05GSUdf SU5FVF9ESUFHPW0KK0NPTkZJR19JTkVUX1RDUF9ESUFHPW0KK0NPTkZJR19JTkVUX1VEUF9ESUFH PW0KK0NPTkZJR19JTkVUX1JBV19ESUFHPW0KKyMgQ09ORklHX0lORVRfRElBR19ERVNUUk9ZIGlz IG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19BRFZBTkNFRD15CitDT05GSUdfVENQX0NPTkdfQklD PW0KK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfVENQX0NPTkdfV0VTVFdPT0Q9bQor Q09ORklHX1RDUF9DT05HX0hUQ1A9bQorQ09ORklHX1RDUF9DT05HX0hTVENQPW0KK0NPTkZJR19U Q1BfQ09OR19IWUJMQT1tCitDT05GSUdfVENQX0NPTkdfVkVHQVM9bQorQ09ORklHX1RDUF9DT05H X05WPW0KK0NPTkZJR19UQ1BfQ09OR19TQ0FMQUJMRT1tCitDT05GSUdfVENQX0NPTkdfTFA9bQor Q09ORklHX1RDUF9DT05HX1ZFTk89bQorQ09ORklHX1RDUF9DT05HX1lFQUg9bQorQ09ORklHX1RD UF9DT05HX0lMTElOT0lTPW0KK0NPTkZJR19UQ1BfQ09OR19EQ1RDUD1tCitDT05GSUdfVENQX0NP TkdfQ0RHPW0KK0NPTkZJR19UQ1BfQ09OR19CQlI9bQorQ09ORklHX0RFRkFVTFRfQ1VCSUM9eQor IyBDT05GSUdfREVGQVVMVF9SRU5PIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05H PSJjdWJpYyIKK0NPTkZJR19UQ1BfTUQ1U0lHPXkKK0NPTkZJR19JUFY2PXkKK0NPTkZJR19JUFY2 X1JPVVRFUl9QUkVGPXkKK0NPTkZJR19JUFY2X1JPVVRFX0lORk89eQorIyBDT05GSUdfSVBWNl9P UFRJTUlTVElDX0RBRCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfQUg9bQorQ09ORklHX0lORVQ2 X0VTUD1tCitDT05GSUdfSU5FVDZfRVNQX09GRkxPQUQ9bQorQ09ORklHX0lORVQ2X0VTUElOVENQ PXkKK0NPTkZJR19JTkVUNl9JUENPTVA9bQorQ09ORklHX0lQVjZfTUlQNj1tCitDT05GSUdfSVBW Nl9JTEE9bQorQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMPW0KK0NPTkZJR19JTkVUNl9UVU5ORUw9 bQorQ09ORklHX0lQVjZfVlRJPW0KK0NPTkZJR19JUFY2X1NJVD1tCitDT05GSUdfSVBWNl9TSVRf NlJEPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKK0NPTkZJR19JUFY2X1RVTk5FTD1t CitDT05GSUdfSVBWNl9HUkU9bQorQ09ORklHX0lQVjZfRk9VPW0KK0NPTkZJR19JUFY2X0ZPVV9U VU5ORUw9bQorQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTPXkKK0NPTkZJR19JUFY2X1NVQlRS RUVTPXkKK0NPTkZJR19JUFY2X01ST1VURT15CitDT05GSUdfSVBWNl9NUk9VVEVfTVVMVElQTEVf VEFCTEVTPXkKK0NPTkZJR19JUFY2X1BJTVNNX1YyPXkKK0NPTkZJR19JUFY2X1NFRzZfTFdUVU5O RUw9eQorQ09ORklHX0lQVjZfU0VHNl9ITUFDPXkKK0NPTkZJR19JUFY2X1NFRzZfQlBGPXkKK0NP TkZJR19JUFY2X1JQTF9MV1RVTk5FTD15CitDT05GSUdfSVBWNl9JT0FNNl9MV1RVTk5FTD15CitD T05GSUdfTkVUTEFCRUw9eQorQ09ORklHX01QVENQPXkKK0NPTkZJR19JTkVUX01QVENQX0RJQUc9 bQorQ09ORklHX01QVENQX0lQVjY9eQorQ09ORklHX05FVFdPUktfU0VDTUFSSz15CitDT05GSUdf TkVUX1BUUF9DTEFTU0lGWT15CisjIENPTkZJR19ORVRXT1JLX1BIWV9USU1FU1RBTVBJTkcgaXMg bm90IHNldAorQ09ORklHX05FVEZJTFRFUj15CitDT05GSUdfTkVURklMVEVSX0FEVkFOQ0VEPXkK K0NPTkZJR19CUklER0VfTkVURklMVEVSPW0KKworIworIyBDb3JlIE5ldGZpbHRlciBDb25maWd1 cmF0aW9uCisjCitDT05GSUdfTkVURklMVEVSX0lOR1JFU1M9eQorQ09ORklHX05FVEZJTFRFUl9F R1JFU1M9eQorQ09ORklHX05FVEZJTFRFUl9TS0lQX0VHUkVTUz15CitDT05GSUdfTkVURklMVEVS X05FVExJTks9bQorQ09ORklHX05FVEZJTFRFUl9GQU1JTFlfQlJJREdFPXkKK0NPTkZJR19ORVRG SUxURVJfRkFNSUxZX0FSUD15CitDT05GSUdfTkVURklMVEVSX0JQRl9MSU5LPXkKK0NPTkZJR19O RVRGSUxURVJfTkVUTElOS19IT09LPW0KK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19BQ0NUPW0K K0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19RVUVVRT1tCitDT05GSUdfTkVURklMVEVSX05FVExJ TktfTE9HPW0KK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19PU0Y9bQorQ09ORklHX05GX0NPTk5U UkFDSz1tCitDT05GSUdfTkZfTE9HX1NZU0xPRz1tCitDT05GSUdfTkVURklMVEVSX0NPTk5DT1VO VD1tCitDT05GSUdfTkZfQ09OTlRSQUNLX01BUks9eQorQ09ORklHX05GX0NPTk5UUkFDS19TRUNN QVJLPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfWk9ORVM9eQorQ09ORklHX05GX0NPTk5UUkFDS19Q Uk9DRlM9eQorQ09ORklHX05GX0NPTk5UUkFDS19FVkVOVFM9eQorQ09ORklHX05GX0NPTk5UUkFD S19USU1FT1VUPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfVElNRVNUQU1QPXkKK0NPTkZJR19ORl9D T05OVFJBQ0tfTEFCRUxTPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfT1ZTPXkKK0NPTkZJR19ORl9D VF9QUk9UT19EQ0NQPXkKK0NPTkZJR19ORl9DVF9QUk9UT19HUkU9eQorQ09ORklHX05GX0NUX1BS T1RPX1NDVFA9eQorQ09ORklHX05GX0NUX1BST1RPX1VEUExJVEU9eQorQ09ORklHX05GX0NPTk5U UkFDS19BTUFOREE9bQorQ09ORklHX05GX0NPTk5UUkFDS19GVFA9bQorQ09ORklHX05GX0NPTk5U UkFDS19IMzIzPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfSVJDPW0KK0NPTkZJR19ORl9DT05OVFJB Q0tfQlJPQURDQVNUPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfTkVUQklPU19OUz1tCitDT05GSUdf TkZfQ09OTlRSQUNLX1NOTVA9bQorQ09ORklHX05GX0NPTk5UUkFDS19QUFRQPW0KK0NPTkZJR19O Rl9DT05OVFJBQ0tfU0FORT1tCitDT05GSUdfTkZfQ09OTlRSQUNLX1NJUD1tCitDT05GSUdfTkZf Q09OTlRSQUNLX1RGVFA9bQorQ09ORklHX05GX0NUX05FVExJTks9bQorQ09ORklHX05GX0NUX05F VExJTktfVElNRU9VVD1tCitDT05GSUdfTkZfQ1RfTkVUTElOS19IRUxQRVI9bQorQ09ORklHX05F VEZJTFRFUl9ORVRMSU5LX0dMVUVfQ1Q9eQorQ09ORklHX05GX05BVD1tCitDT05GSUdfTkZfTkFU X0FNQU5EQT1tCitDT05GSUdfTkZfTkFUX0ZUUD1tCitDT05GSUdfTkZfTkFUX0lSQz1tCitDT05G SUdfTkZfTkFUX1NJUD1tCitDT05GSUdfTkZfTkFUX1RGVFA9bQorQ09ORklHX05GX05BVF9SRURJ UkVDVD15CitDT05GSUdfTkZfTkFUX01BU1FVRVJBREU9eQorQ09ORklHX05GX05BVF9PVlM9eQor Q09ORklHX05FVEZJTFRFUl9TWU5QUk9YWT1tCitDT05GSUdfTkZfVEFCTEVTPW0KK0NPTkZJR19O Rl9UQUJMRVNfSU5FVD15CitDT05GSUdfTkZfVEFCTEVTX05FVERFVj15CitDT05GSUdfTkZUX05V TUdFTj1tCitDT05GSUdfTkZUX0NUPW0KK0NPTkZJR19ORlRfRkxPV19PRkZMT0FEPW0KK0NPTkZJ R19ORlRfQ09OTkxJTUlUPW0KK0NPTkZJR19ORlRfTE9HPW0KK0NPTkZJR19ORlRfTElNSVQ9bQor Q09ORklHX05GVF9NQVNRPW0KK0NPTkZJR19ORlRfUkVESVI9bQorQ09ORklHX05GVF9OQVQ9bQor Q09ORklHX05GVF9UVU5ORUw9bQorQ09ORklHX05GVF9RVUVVRT1tCitDT05GSUdfTkZUX1FVT1RB PW0KK0NPTkZJR19ORlRfUkVKRUNUPW0KK0NPTkZJR19ORlRfUkVKRUNUX0lORVQ9bQorQ09ORklH X05GVF9DT01QQVQ9bQorQ09ORklHX05GVF9IQVNIPW0KK0NPTkZJR19ORlRfRklCPW0KK0NPTkZJ R19ORlRfRklCX0lORVQ9bQorQ09ORklHX05GVF9YRlJNPW0KK0NPTkZJR19ORlRfU09DS0VUPW0K K0NPTkZJR19ORlRfT1NGPW0KK0NPTkZJR19ORlRfVFBST1hZPW0KK0NPTkZJR19ORlRfU1lOUFJP WFk9bQorQ09ORklHX05GX0RVUF9ORVRERVY9bQorQ09ORklHX05GVF9EVVBfTkVUREVWPW0KK0NP TkZJR19ORlRfRldEX05FVERFVj1tCitDT05GSUdfTkZUX0ZJQl9ORVRERVY9bQorQ09ORklHX05G VF9SRUpFQ1RfTkVUREVWPW0KK0NPTkZJR19ORl9GTE9XX1RBQkxFX0lORVQ9bQorQ09ORklHX05G X0ZMT1dfVEFCTEU9bQorIyBDT05GSUdfTkZfRkxPV19UQUJMRV9QUk9DRlMgaXMgbm90IHNldAor Q09ORklHX05FVEZJTFRFUl9YVEFCTEVTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRBQkxFU19DT01Q QVQ9eQorCisjCisjIFh0YWJsZXMgY29tYmluZWQgbW9kdWxlcworIworQ09ORklHX05FVEZJTFRF Ul9YVF9NQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfQ09OTk1BUks9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9TRVQ9bQorCisjCisjIFh0YWJsZXMgdGFyZ2V0cworIworQ09ORklHX05FVEZJTFRF Ul9YVF9UQVJHRVRfQVVESVQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ0hFQ0tTVU09 bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ0xBU1NJRlk9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9UQVJHRVRfQ09OTk1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ09OTlNF Q01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ1Q9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9UQVJHRVRfRFNDUD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ITD1tCitDT05G SUdfTkVURklMVEVSX1hUX1RBUkdFVF9ITUFSSz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdF VF9JRExFVElNRVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTEVEPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfVEFSR0VUX0xPRz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9NQVJL PW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTkFUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VU X05FVE1BUD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORkxPRz1tCitDT05GSUdfTkVU RklMVEVSX1hUX1RBUkdFVF9ORlFVRVVFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX05P VFJBQ0s9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfUkFURUVTVD1tCitDT05GSUdfTkVU RklMVEVSX1hUX1RBUkdFVF9SRURJUkVDVD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9N QVNRVUVSQURFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RFRT1tCitDT05GSUdfTkVU RklMVEVSX1hUX1RBUkdFVF9UUFJPWFk9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVFJB Q0U9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfU0VDTUFSSz1tCitDT05GSUdfTkVURklM VEVSX1hUX1RBUkdFVF9UQ1BNU1M9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVENQT1BU U1RSSVA9bQorCisjCisjIFh0YWJsZXMgbWF0Y2hlcworIworQ09ORklHX05FVEZJTFRFUl9YVF9N QVRDSF9BRERSVFlQRT1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0JQRj1tCitDT05GSUdf TkVURklMVEVSX1hUX01BVENIX0NHUk9VUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0NM VVNURVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT01NRU5UPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfTUFUQ0hfQ09OTkJZVEVTPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09O TkxBQkVMPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTkxJTUlUPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfTUFUQ0hfQ09OTk1BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9D T05OVFJBQ0s9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DUFU9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9NQVRDSF9EQ0NQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfREVWR1JPVVA9 bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9EU0NQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRf TUFUQ0hfRUNOPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRVNQPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfTUFUQ0hfSEFTSExJTUlUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSEVM UEVSPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSEw9bQorQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9JUENPTVA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9JUFJBTkdFPW0KK0NP TkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfSVBWUz1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENI X0wyVFA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9MRU5HVEg9bQorQ09ORklHX05FVEZJ TFRFUl9YVF9NQVRDSF9MSU1JVD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01BQz1tCitD T05GSUdfTkVURklMVEVSX1hUX01BVENIX01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9NVUxUSVBPUlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9ORkFDQ1Q9bQorQ09ORklH X05FVEZJTFRFUl9YVF9NQVRDSF9PU0Y9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9PV05F Uj1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BPTElDWT1tCitDT05GSUdfTkVURklMVEVS X1hUX01BVENIX1BIWVNERVY9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9QS1RUWVBFPW0K K0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUVVPVEE9bQorQ09ORklHX05FVEZJTFRFUl9YVF9N QVRDSF9SQVRFRVNUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUkVBTE09bQorQ09ORklH X05FVEZJTFRFUl9YVF9NQVRDSF9SRUNFTlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9T Q1RQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU09DS0VUPW0KK0NPTkZJR19ORVRGSUxU RVJfWFRfTUFUQ0hfU1RBVEU9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFUSVNUSUM9 bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVFJJTkc9bQorQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9UQ1BNU1M9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9USU1FPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfTUFUQ0hfVTMyPW0KKyMgZW5kIG9mIENvcmUgTmV0ZmlsdGVyIENvbmZp Z3VyYXRpb24KKworQ09ORklHX0lQX1NFVD1tCitDT05GSUdfSVBfU0VUX01BWD0yNTYKK0NPTkZJ R19JUF9TRVRfQklUTUFQX0lQPW0KK0NPTkZJR19JUF9TRVRfQklUTUFQX0lQTUFDPW0KK0NPTkZJ R19JUF9TRVRfQklUTUFQX1BPUlQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQPW0KK0NPTkZJR19J UF9TRVRfSEFTSF9JUE1BUks9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQUE9SVD1tCitDT05GSUdf SVBfU0VUX0hBU0hfSVBQT1JUSVA9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQUE9SVE5FVD1tCitD T05GSUdfSVBfU0VUX0hBU0hfSVBNQUM9bQorQ09ORklHX0lQX1NFVF9IQVNIX01BQz1tCitDT05G SUdfSVBfU0VUX0hBU0hfTkVUUE9SVE5FVD1tCitDT05GSUdfSVBfU0VUX0hBU0hfTkVUPW0KK0NP TkZJR19JUF9TRVRfSEFTSF9ORVRORVQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVFBPUlQ9bQor Q09ORklHX0lQX1NFVF9IQVNIX05FVElGQUNFPW0KK0NPTkZJR19JUF9TRVRfTElTVF9TRVQ9bQor Q09ORklHX0lQX1ZTPW0KK0NPTkZJR19JUF9WU19JUFY2PXkKKyMgQ09ORklHX0lQX1ZTX0RFQlVH IGlzIG5vdCBzZXQKK0NPTkZJR19JUF9WU19UQUJfQklUUz0xMgorCisjCisjIElQVlMgdHJhbnNw b3J0IHByb3RvY29sIGxvYWQgYmFsYW5jaW5nIHN1cHBvcnQKKyMKK0NPTkZJR19JUF9WU19QUk9U T19UQ1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX1VEUD15CitDT05GSUdfSVBfVlNfUFJPVE9fQUhf RVNQPXkKK0NPTkZJR19JUF9WU19QUk9UT19FU1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX0FIPXkK K0NPTkZJR19JUF9WU19QUk9UT19TQ1RQPXkKKworIworIyBJUFZTIHNjaGVkdWxlcgorIworQ09O RklHX0lQX1ZTX1JSPW0KK0NPTkZJR19JUF9WU19XUlI9bQorQ09ORklHX0lQX1ZTX0xDPW0KK0NP TkZJR19JUF9WU19XTEM9bQorQ09ORklHX0lQX1ZTX0ZPPW0KK0NPTkZJR19JUF9WU19PVkY9bQor Q09ORklHX0lQX1ZTX0xCTEM9bQorQ09ORklHX0lQX1ZTX0xCTENSPW0KK0NPTkZJR19JUF9WU19E SD1tCitDT05GSUdfSVBfVlNfU0g9bQorQ09ORklHX0lQX1ZTX01IPW0KK0NPTkZJR19JUF9WU19T RUQ9bQorQ09ORklHX0lQX1ZTX05RPW0KK0NPTkZJR19JUF9WU19UV09TPW0KKworIworIyBJUFZT IFNIIHNjaGVkdWxlcgorIworQ09ORklHX0lQX1ZTX1NIX1RBQl9CSVRTPTgKKworIworIyBJUFZT IE1IIHNjaGVkdWxlcgorIworQ09ORklHX0lQX1ZTX01IX1RBQl9JTkRFWD0xMgorCisjCisjIElQ VlMgYXBwbGljYXRpb24gaGVscGVyCisjCitDT05GSUdfSVBfVlNfRlRQPW0KK0NPTkZJR19JUF9W U19ORkNUPXkKK0NPTkZJR19JUF9WU19QRV9TSVA9bQorCisjCisjIElQOiBOZXRmaWx0ZXIgQ29u ZmlndXJhdGlvbgorIworQ09ORklHX05GX0RFRlJBR19JUFY0PW0KK0NPTkZJR19ORl9TT0NLRVRf SVBWND1tCitDT05GSUdfTkZfVFBST1hZX0lQVjQ9bQorQ09ORklHX05GX1RBQkxFU19JUFY0PXkK K0NPTkZJR19ORlRfUkVKRUNUX0lQVjQ9bQorQ09ORklHX05GVF9EVVBfSVBWND1tCitDT05GSUdf TkZUX0ZJQl9JUFY0PW0KK0NPTkZJR19ORl9UQUJMRVNfQVJQPXkKK0NPTkZJR19ORl9EVVBfSVBW ND1tCitDT05GSUdfTkZfTE9HX0FSUD1tCitDT05GSUdfTkZfTE9HX0lQVjQ9bQorQ09ORklHX05G X1JFSkVDVF9JUFY0PW0KK0NPTkZJR19ORl9OQVRfU05NUF9CQVNJQz1tCitDT05GSUdfTkZfTkFU X1BQVFA9bQorQ09ORklHX05GX05BVF9IMzIzPW0KK0NPTkZJR19JUF9ORl9JUFRBQkxFUz1tCitD T05GSUdfSVBfTkZfTUFUQ0hfQUg9bQorQ09ORklHX0lQX05GX01BVENIX0VDTj1tCitDT05GSUdf SVBfTkZfTUFUQ0hfUlBGSUxURVI9bQorQ09ORklHX0lQX05GX01BVENIX1RUTD1tCitDT05GSUdf SVBfTkZfRklMVEVSPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfUkVKRUNUPW0KK0NPTkZJR19JUF9O Rl9UQVJHRVRfU1lOUFJPWFk9bQorQ09ORklHX0lQX05GX05BVD1tCitDT05GSUdfSVBfTkZfVEFS R0VUX01BU1FVRVJBREU9bQorQ09ORklHX0lQX05GX1RBUkdFVF9ORVRNQVA9bQorQ09ORklHX0lQ X05GX1RBUkdFVF9SRURJUkVDVD1tCitDT05GSUdfSVBfTkZfTUFOR0xFPW0KK0NPTkZJR19JUF9O Rl9UQVJHRVRfRUNOPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfVFRMPW0KK0NPTkZJR19JUF9ORl9S QVc9bQorQ09ORklHX0lQX05GX1NFQ1VSSVRZPW0KK0NPTkZJR19JUF9ORl9BUlBUQUJMRVM9bQor Q09ORklHX0lQX05GX0FSUEZJTFRFUj1tCitDT05GSUdfSVBfTkZfQVJQX01BTkdMRT1tCisjIGVu ZCBvZiBJUDogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKworIworIyBJUHY2OiBOZXRmaWx0ZXIg Q29uZmlndXJhdGlvbgorIworQ09ORklHX05GX1NPQ0tFVF9JUFY2PW0KK0NPTkZJR19ORl9UUFJP WFlfSVBWNj1tCitDT05GSUdfTkZfVEFCTEVTX0lQVjY9eQorQ09ORklHX05GVF9SRUpFQ1RfSVBW Nj1tCitDT05GSUdfTkZUX0RVUF9JUFY2PW0KK0NPTkZJR19ORlRfRklCX0lQVjY9bQorQ09ORklH X05GX0RVUF9JUFY2PW0KK0NPTkZJR19ORl9SRUpFQ1RfSVBWNj1tCitDT05GSUdfTkZfTE9HX0lQ VjY9bQorQ09ORklHX0lQNl9ORl9JUFRBQkxFUz1tCitDT05GSUdfSVA2X05GX01BVENIX0FIPW0K K0NPTkZJR19JUDZfTkZfTUFUQ0hfRVVJNjQ9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9GUkFHPW0K K0NPTkZJR19JUDZfTkZfTUFUQ0hfT1BUUz1tCitDT05GSUdfSVA2X05GX01BVENIX0hMPW0KK0NP TkZJR19JUDZfTkZfTUFUQ0hfSVBWNkhFQURFUj1tCitDT05GSUdfSVA2X05GX01BVENIX01IPW0K K0NPTkZJR19JUDZfTkZfTUFUQ0hfUlBGSUxURVI9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9SVD1t CitDT05GSUdfSVA2X05GX01BVENIX1NSSD1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9ITD1tCitD T05GSUdfSVA2X05GX0ZJTFRFUj1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9SRUpFQ1Q9bQorQ09O RklHX0lQNl9ORl9UQVJHRVRfU1lOUFJPWFk9bQorQ09ORklHX0lQNl9ORl9NQU5HTEU9bQorQ09O RklHX0lQNl9ORl9SQVc9bQorQ09ORklHX0lQNl9ORl9TRUNVUklUWT1tCitDT05GSUdfSVA2X05G X05BVD1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9NQVNRVUVSQURFPW0KK0NPTkZJR19JUDZfTkZf VEFSR0VUX05QVD1tCisjIGVuZCBvZiBJUHY2OiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorCitD T05GSUdfTkZfREVGUkFHX0lQVjY9bQorQ09ORklHX05GX1RBQkxFU19CUklER0U9bQorQ09ORklH X05GVF9CUklER0VfTUVUQT1tCitDT05GSUdfTkZUX0JSSURHRV9SRUpFQ1Q9bQorQ09ORklHX05G X0NPTk5UUkFDS19CUklER0U9bQorQ09ORklHX0JSSURHRV9ORl9FQlRBQkxFUz1tCitDT05GSUdf QlJJREdFX0VCVF9CUk9VVEU9bQorQ09ORklHX0JSSURHRV9FQlRfVF9GSUxURVI9bQorQ09ORklH X0JSSURHRV9FQlRfVF9OQVQ9bQorQ09ORklHX0JSSURHRV9FQlRfODAyXzM9bQorQ09ORklHX0JS SURHRV9FQlRfQU1PTkc9bQorQ09ORklHX0JSSURHRV9FQlRfQVJQPW0KK0NPTkZJR19CUklER0Vf RUJUX0lQPW0KK0NPTkZJR19CUklER0VfRUJUX0lQNj1tCitDT05GSUdfQlJJREdFX0VCVF9MSU1J VD1tCitDT05GSUdfQlJJREdFX0VCVF9NQVJLPW0KK0NPTkZJR19CUklER0VfRUJUX1BLVFRZUEU9 bQorQ09ORklHX0JSSURHRV9FQlRfU1RQPW0KK0NPTkZJR19CUklER0VfRUJUX1ZMQU49bQorQ09O RklHX0JSSURHRV9FQlRfQVJQUkVQTFk9bQorQ09ORklHX0JSSURHRV9FQlRfRE5BVD1tCitDT05G SUdfQlJJREdFX0VCVF9NQVJLX1Q9bQorQ09ORklHX0JSSURHRV9FQlRfUkVESVJFQ1Q9bQorQ09O RklHX0JSSURHRV9FQlRfU05BVD1tCitDT05GSUdfQlJJREdFX0VCVF9MT0c9bQorQ09ORklHX0JS SURHRV9FQlRfTkZMT0c9bQorQ09ORklHX0JQRklMVEVSPXkKKyMgQ09ORklHX0JQRklMVEVSX1VN SCBpcyBub3Qgc2V0CitDT05GSUdfSVBfRENDUD1tCitDT05GSUdfSU5FVF9EQ0NQX0RJQUc9bQor CisjCisjIERDQ1AgQ0NJRHMgQ29uZmlndXJhdGlvbgorIworIyBDT05GSUdfSVBfRENDUF9DQ0lE Ml9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSVBfRENDUF9DQ0lEMz15CisjIENPTkZJR19JUF9E Q0NQX0NDSUQzX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9EQ0NQX1RGUkNfTElCPXkKKyMg ZW5kIG9mIERDQ1AgQ0NJRHMgQ29uZmlndXJhdGlvbgorCisjCisjIERDQ1AgS2VybmVsIEhhY2tp bmcKKyMKKyMgQ09ORklHX0lQX0RDQ1BfREVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgRENDUCBL ZXJuZWwgSGFja2luZworCitDT05GSUdfSVBfU0NUUD1tCisjIENPTkZJR19TQ1RQX0RCR19PQkpD TlQgaXMgbm90IHNldAorQ09ORklHX1NDVFBfREVGQVVMVF9DT09LSUVfSE1BQ19NRDU9eQorIyBD T05GSUdfU0NUUF9ERUZBVUxUX0NPT0tJRV9ITUFDX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdf U0NUUF9ERUZBVUxUX0NPT0tJRV9ITUFDX05PTkUgaXMgbm90IHNldAorQ09ORklHX1NDVFBfQ09P S0lFX0hNQUNfTUQ1PXkKKyMgQ09ORklHX1NDVFBfQ09PS0lFX0hNQUNfU0hBMSBpcyBub3Qgc2V0 CitDT05GSUdfSU5FVF9TQ1RQX0RJQUc9bQorQ09ORklHX1JEUz1tCitDT05GSUdfUkRTX1JETUE9 bQorQ09ORklHX1JEU19UQ1A9bQorIyBDT05GSUdfUkRTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJ R19USVBDPW0KKyMgQ09ORklHX1RJUENfTUVESUFfSUIgaXMgbm90IHNldAorQ09ORklHX1RJUENf TUVESUFfVURQPXkKK0NPTkZJR19USVBDX0NSWVBUTz15CitDT05GSUdfVElQQ19ESUFHPW0KK0NP TkZJR19BVE09bQorQ09ORklHX0FUTV9DTElQPW0KKyMgQ09ORklHX0FUTV9DTElQX05PX0lDTVAg aXMgbm90IHNldAorQ09ORklHX0FUTV9MQU5FPW0KK0NPTkZJR19BVE1fTVBPQT1tCitDT05GSUdf QVRNX0JSMjY4ND1tCisjIENPTkZJR19BVE1fQlIyNjg0X0lQRklMVEVSIGlzIG5vdCBzZXQKK0NP TkZJR19MMlRQPW0KK0NPTkZJR19MMlRQX0RFQlVHRlM9bQorQ09ORklHX0wyVFBfVjM9eQorQ09O RklHX0wyVFBfSVA9bQorQ09ORklHX0wyVFBfRVRIPW0KK0NPTkZJR19TVFA9bQorQ09ORklHX0dB UlA9bQorQ09ORklHX01SUD1tCitDT05GSUdfQlJJREdFPW0KK0NPTkZJR19CUklER0VfSUdNUF9T Tk9PUElORz15CitDT05GSUdfQlJJREdFX1ZMQU5fRklMVEVSSU5HPXkKK0NPTkZJR19CUklER0Vf TVJQPXkKKyMgQ09ORklHX0JSSURHRV9DRk0gaXMgbm90IHNldAorQ09ORklHX05FVF9EU0E9bQor Q09ORklHX05FVF9EU0FfVEFHX05PTkU9bQorQ09ORklHX05FVF9EU0FfVEFHX0FSOTMzMT1tCitD T05GSUdfTkVUX0RTQV9UQUdfQlJDTV9DT01NT049bQorQ09ORklHX05FVF9EU0FfVEFHX0JSQ009 bQorQ09ORklHX05FVF9EU0FfVEFHX0JSQ01fTEVHQUNZPW0KK0NPTkZJR19ORVRfRFNBX1RBR19C UkNNX1BSRVBFTkQ9bQorQ09ORklHX05FVF9EU0FfVEFHX0hFTExDUkVFSz1tCitDT05GSUdfTkVU X0RTQV9UQUdfR1NXSVA9bQorQ09ORklHX05FVF9EU0FfVEFHX0RTQV9DT01NT049bQorQ09ORklH X05FVF9EU0FfVEFHX0RTQT1tCitDT05GSUdfTkVUX0RTQV9UQUdfRURTQT1tCitDT05GSUdfTkVU X0RTQV9UQUdfTVRLPW0KK0NPTkZJR19ORVRfRFNBX1RBR19LU1o9bQorQ09ORklHX05FVF9EU0Ff VEFHX09DRUxPVD1tCitDT05GSUdfTkVUX0RTQV9UQUdfT0NFTE9UXzgwMjFRPW0KK0NPTkZJR19O RVRfRFNBX1RBR19RQ0E9bQorQ09ORklHX05FVF9EU0FfVEFHX1JUTDRfQT1tCitDT05GSUdfTkVU X0RTQV9UQUdfUlRMOF80PW0KKyMgQ09ORklHX05FVF9EU0FfVEFHX1JaTjFfQTVQU1cgaXMgbm90 IHNldAorQ09ORklHX05FVF9EU0FfVEFHX0xBTjkzMDM9bQorQ09ORklHX05FVF9EU0FfVEFHX1NK QTExMDU9bQorQ09ORklHX05FVF9EU0FfVEFHX1RSQUlMRVI9bQorQ09ORklHX05FVF9EU0FfVEFH X1hSUzcwMFg9bQorQ09ORklHX1ZMQU5fODAyMVE9bQorQ09ORklHX1ZMQU5fODAyMVFfR1ZSUD15 CitDT05GSUdfVkxBTl84MDIxUV9NVlJQPXkKK0NPTkZJR19MTEM9bQorQ09ORklHX0xMQzI9bQor Q09ORklHX0FUQUxLPW0KK0NPTkZJR19ERVZfQVBQTEVUQUxLPW0KK0NPTkZJR19JUEREUD1tCitD T05GSUdfSVBERFBfRU5DQVA9eQorQ09ORklHX1gyNT1tCitDT05GSUdfTEFQQj1tCitDT05GSUdf UEhPTkVUPW0KK0NPTkZJR182TE9XUEFOPW0KKyMgQ09ORklHXzZMT1dQQU5fREVCVUdGUyBpcyBu b3Qgc2V0CitDT05GSUdfNkxPV1BBTl9OSEM9bQorQ09ORklHXzZMT1dQQU5fTkhDX0RFU1Q9bQor Q09ORklHXzZMT1dQQU5fTkhDX0ZSQUdNRU5UPW0KK0NPTkZJR182TE9XUEFOX05IQ19IT1A9bQor Q09ORklHXzZMT1dQQU5fTkhDX0lQVjY9bQorQ09ORklHXzZMT1dQQU5fTkhDX01PQklMSVRZPW0K K0NPTkZJR182TE9XUEFOX05IQ19ST1VUSU5HPW0KK0NPTkZJR182TE9XUEFOX05IQ19VRFA9bQor Q09ORklHXzZMT1dQQU5fR0hDX0VYVF9IRFJfSE9QPW0KK0NPTkZJR182TE9XUEFOX0dIQ19VRFA9 bQorQ09ORklHXzZMT1dQQU5fR0hDX0lDTVBWNj1tCitDT05GSUdfNkxPV1BBTl9HSENfRVhUX0hE Ul9ERVNUPW0KK0NPTkZJR182TE9XUEFOX0dIQ19FWFRfSERSX0ZSQUc9bQorQ09ORklHXzZMT1dQ QU5fR0hDX0VYVF9IRFJfUk9VVEU9bQorQ09ORklHX0lFRUU4MDIxNTQ9bQorQ09ORklHX0lFRUU4 MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19JRUVFODAyMTU0X1NPQ0tFVD1t CitDT05GSUdfSUVFRTgwMjE1NF82TE9XUEFOPW0KK0NPTkZJR19NQUM4MDIxNTQ9bQorQ09ORklH X05FVF9TQ0hFRD15CisKKyMKKyMgUXVldWVpbmcvU2NoZWR1bGluZworIworQ09ORklHX05FVF9T Q0hfSFRCPW0KK0NPTkZJR19ORVRfU0NIX0hGU0M9bQorQ09ORklHX05FVF9TQ0hfUFJJTz1tCitD T05GSUdfTkVUX1NDSF9NVUxUSVE9bQorQ09ORklHX05FVF9TQ0hfUkVEPW0KK0NPTkZJR19ORVRf U0NIX1NGQj1tCitDT05GSUdfTkVUX1NDSF9TRlE9bQorQ09ORklHX05FVF9TQ0hfVEVRTD1tCitD T05GSUdfTkVUX1NDSF9UQkY9bQorQ09ORklHX05FVF9TQ0hfQ0JTPW0KK0NPTkZJR19ORVRfU0NI X0VURj1tCitDT05GSUdfTkVUX1NDSF9NUVBSSU9fTElCPW0KK0NPTkZJR19ORVRfU0NIX1RBUFJJ Tz1tCitDT05GSUdfTkVUX1NDSF9HUkVEPW0KK0NPTkZJR19ORVRfU0NIX05FVEVNPW0KK0NPTkZJ R19ORVRfU0NIX0RSUj1tCitDT05GSUdfTkVUX1NDSF9NUVBSSU89bQorQ09ORklHX05FVF9TQ0hf U0tCUFJJTz1tCitDT05GSUdfTkVUX1NDSF9DSE9LRT1tCitDT05GSUdfTkVUX1NDSF9RRlE9bQor Q09ORklHX05FVF9TQ0hfQ09ERUw9bQorQ09ORklHX05FVF9TQ0hfRlFfQ09ERUw9bQorQ09ORklH X05FVF9TQ0hfQ0FLRT1tCitDT05GSUdfTkVUX1NDSF9GUT1tCitDT05GSUdfTkVUX1NDSF9ISEY9 bQorQ09ORklHX05FVF9TQ0hfUElFPW0KK0NPTkZJR19ORVRfU0NIX0ZRX1BJRT1tCitDT05GSUdf TkVUX1NDSF9JTkdSRVNTPW0KK0NPTkZJR19ORVRfU0NIX1BMVUc9bQorQ09ORklHX05FVF9TQ0hf RVRTPW0KKyMgQ09ORklHX05FVF9TQ0hfREVGQVVMVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2xhc3Np ZmljYXRpb24KKyMKK0NPTkZJR19ORVRfQ0xTPXkKK0NPTkZJR19ORVRfQ0xTX0JBU0lDPW0KK0NP TkZJR19ORVRfQ0xTX1JPVVRFND1tCitDT05GSUdfTkVUX0NMU19GVz1tCitDT05GSUdfTkVUX0NM U19VMzI9bQorQ09ORklHX0NMU19VMzJfUEVSRj15CitDT05GSUdfQ0xTX1UzMl9NQVJLPXkKK0NP TkZJR19ORVRfQ0xTX0ZMT1c9bQorQ09ORklHX05FVF9DTFNfQ0dST1VQPW0KK0NPTkZJR19ORVRf Q0xTX0JQRj1tCitDT05GSUdfTkVUX0NMU19GTE9XRVI9bQorQ09ORklHX05FVF9DTFNfTUFUQ0hB TEw9bQorQ09ORklHX05FVF9FTUFUQ0g9eQorQ09ORklHX05FVF9FTUFUQ0hfU1RBQ0s9MzIKK0NP TkZJR19ORVRfRU1BVENIX0NNUD1tCitDT05GSUdfTkVUX0VNQVRDSF9OQllURT1tCitDT05GSUdf TkVUX0VNQVRDSF9VMzI9bQorQ09ORklHX05FVF9FTUFUQ0hfTUVUQT1tCitDT05GSUdfTkVUX0VN QVRDSF9URVhUPW0KK0NPTkZJR19ORVRfRU1BVENIX0NBTklEPW0KK0NPTkZJR19ORVRfRU1BVENI X0lQU0VUPW0KK0NPTkZJR19ORVRfRU1BVENIX0lQVD1tCitDT05GSUdfTkVUX0NMU19BQ1Q9eQor Q09ORklHX05FVF9BQ1RfUE9MSUNFPW0KK0NPTkZJR19ORVRfQUNUX0dBQ1Q9bQorQ09ORklHX0dB Q1RfUFJPQj15CitDT05GSUdfTkVUX0FDVF9NSVJSRUQ9bQorQ09ORklHX05FVF9BQ1RfU0FNUExF PW0KK0NPTkZJR19ORVRfQUNUX0lQVD1tCitDT05GSUdfTkVUX0FDVF9OQVQ9bQorQ09ORklHX05F VF9BQ1RfUEVESVQ9bQorQ09ORklHX05FVF9BQ1RfU0lNUD1tCitDT05GSUdfTkVUX0FDVF9TS0JF RElUPW0KK0NPTkZJR19ORVRfQUNUX0NTVU09bQorQ09ORklHX05FVF9BQ1RfTVBMUz1tCitDT05G SUdfTkVUX0FDVF9WTEFOPW0KK0NPTkZJR19ORVRfQUNUX0JQRj1tCitDT05GSUdfTkVUX0FDVF9D T05OTUFSSz1tCitDT05GSUdfTkVUX0FDVF9DVElORk89bQorQ09ORklHX05FVF9BQ1RfU0tCTU9E PW0KK0NPTkZJR19ORVRfQUNUX0lGRT1tCitDT05GSUdfTkVUX0FDVF9UVU5ORUxfS0VZPW0KK0NP TkZJR19ORVRfQUNUX0NUPW0KK0NPTkZJR19ORVRfQUNUX0dBVEU9bQorQ09ORklHX05FVF9JRkVf U0tCTUFSSz1tCitDT05GSUdfTkVUX0lGRV9TS0JQUklPPW0KK0NPTkZJR19ORVRfSUZFX1NLQlRD SU5ERVg9bQorQ09ORklHX05FVF9UQ19TS0JfRVhUPXkKK0NPTkZJR19ORVRfU0NIX0ZJRk89eQor Q09ORklHX0RDQj15CitDT05GSUdfRE5TX1JFU09MVkVSPW0KK0NPTkZJR19CQVRNQU5fQURWPW0K K0NPTkZJR19CQVRNQU5fQURWX0JBVE1BTl9WPXkKK0NPTkZJR19CQVRNQU5fQURWX0JMQT15CitD T05GSUdfQkFUTUFOX0FEVl9EQVQ9eQorQ09ORklHX0JBVE1BTl9BRFZfTkM9eQorQ09ORklHX0JB VE1BTl9BRFZfTUNBU1Q9eQorQ09ORklHX0JBVE1BTl9BRFZfREVCVUc9eQorIyBDT05GSUdfQkFU TUFOX0FEVl9UUkFDSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19PUEVOVlNXSVRDSD1tCitDT05GSUdf T1BFTlZTV0lUQ0hfR1JFPW0KK0NPTkZJR19PUEVOVlNXSVRDSF9WWExBTj1tCitDT05GSUdfT1BF TlZTV0lUQ0hfR0VORVZFPW0KK0NPTkZJR19WU09DS0VUUz1tCitDT05GSUdfVlNPQ0tFVFNfRElB Rz1tCitDT05GSUdfVlNPQ0tFVFNfTE9PUEJBQ0s9bQorQ09ORklHX1ZJUlRJT19WU09DS0VUUz1t CitDT05GSUdfVklSVElPX1ZTT0NLRVRTX0NPTU1PTj1tCitDT05GSUdfTkVUTElOS19ESUFHPW0K K0NPTkZJR19NUExTPXkKK0NPTkZJR19ORVRfTVBMU19HU089bQorQ09ORklHX01QTFNfUk9VVElO Rz1tCitDT05GSUdfTVBMU19JUFRVTk5FTD1tCitDT05GSUdfTkVUX05TSD1tCitDT05GSUdfSFNS PW0KK0NPTkZJR19ORVRfU1dJVENIREVWPXkKK0NPTkZJR19ORVRfTDNfTUFTVEVSX0RFVj15CitD T05GSUdfUVJUUj1tCitDT05GSUdfUVJUUl9TTUQ9bQorQ09ORklHX1FSVFJfVFVOPW0KK0NPTkZJ R19RUlRSX01IST1tCitDT05GSUdfTkVUX05DU0k9eQorQ09ORklHX05DU0lfT0VNX0NNRF9HRVRf TUFDPXkKKyMgQ09ORklHX05DU0lfT0VNX0NNRF9LRUVQX1BIWSBpcyBub3Qgc2V0CitDT05GSUdf UENQVV9ERVZfUkVGQ05UPXkKK0NPTkZJR19NQVhfU0tCX0ZSQUdTPTE3CitDT05GSUdfUlBTPXkK K0NPTkZJR19SRlNfQUNDRUw9eQorQ09ORklHX1NPQ0tfUlhfUVVFVUVfTUFQUElORz15CitDT05G SUdfWFBTPXkKK0NPTkZJR19DR1JPVVBfTkVUX1BSSU89eQorQ09ORklHX0NHUk9VUF9ORVRfQ0xB U1NJRD15CitDT05GSUdfTkVUX1JYX0JVU1lfUE9MTD15CitDT05GSUdfQlFMPXkKK0NPTkZJR19C UEZfU1RSRUFNX1BBUlNFUj15CitDT05GSUdfTkVUX0ZMT1dfTElNSVQ9eQorCisjCisjIE5ldHdv cmsgdGVzdGluZworIworQ09ORklHX05FVF9QS1RHRU49bQorQ09ORklHX05FVF9EUk9QX01PTklU T1I9eQorIyBlbmQgb2YgTmV0d29yayB0ZXN0aW5nCisjIGVuZCBvZiBOZXR3b3JraW5nIG9wdGlv bnMKKworQ09ORklHX0hBTVJBRElPPXkKKworIworIyBQYWNrZXQgUmFkaW8gcHJvdG9jb2xzCisj CitDT05GSUdfQVgyNT1tCitDT05GSUdfQVgyNV9EQU1BX1NMQVZFPXkKK0NPTkZJR19ORVRST009 bQorQ09ORklHX1JPU0U9bQorCisjCisjIEFYLjI1IG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMKKyMK K0NPTkZJR19NS0lTUz1tCitDT05GSUdfNlBBQ0s9bQorQ09ORklHX0JQUUVUSEVSPW0KK0NPTkZJ R19CQVlDT01fU0VSX0ZEWD1tCitDT05GSUdfQkFZQ09NX1NFUl9IRFg9bQorQ09ORklHX0JBWUNP TV9QQVI9bQorQ09ORklHX1lBTT1tCisjIGVuZCBvZiBBWC4yNSBuZXR3b3JrIGRldmljZSBkcml2 ZXJzCisKK0NPTkZJR19DQU49bQorQ09ORklHX0NBTl9SQVc9bQorQ09ORklHX0NBTl9CQ009bQor Q09ORklHX0NBTl9HVz1tCitDT05GSUdfQ0FOX0oxOTM5PW0KK0NPTkZJR19DQU5fSVNPVFA9bQor Q09ORklHX0JUPW0KK0NPTkZJR19CVF9CUkVEUj15CitDT05GSUdfQlRfUkZDT01NPW0KK0NPTkZJ R19CVF9SRkNPTU1fVFRZPXkKK0NPTkZJR19CVF9CTkVQPW0KK0NPTkZJR19CVF9CTkVQX01DX0ZJ TFRFUj15CitDT05GSUdfQlRfQk5FUF9QUk9UT19GSUxURVI9eQorQ09ORklHX0JUX0hJRFA9bQor Q09ORklHX0JUX0hTPXkKK0NPTkZJR19CVF9MRT15CitDT05GSUdfQlRfTEVfTDJDQVBfRUNSRUQ9 eQorQ09ORklHX0JUXzZMT1dQQU49bQorQ09ORklHX0JUX0xFRFM9eQorQ09ORklHX0JUX01TRlRF WFQ9eQorQ09ORklHX0JUX0FPU1BFWFQ9eQorIyBDT05GSUdfQlRfREVCVUdGUyBpcyBub3Qgc2V0 CisjIENPTkZJR19CVF9TRUxGVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQmx1ZXRvb3RoIGRldmlj ZSBkcml2ZXJzCisjCitDT05GSUdfQlRfSU5URUw9bQorQ09ORklHX0JUX0JDTT1tCitDT05GSUdf QlRfUlRMPW0KK0NPTkZJR19CVF9RQ0E9bQorQ09ORklHX0JUX01USz1tCitDT05GSUdfQlRfSENJ QlRVU0I9bQorQ09ORklHX0JUX0hDSUJUVVNCX0FVVE9TVVNQRU5EPXkKK0NPTkZJR19CVF9IQ0lC VFVTQl9QT0xMX1NZTkM9eQorQ09ORklHX0JUX0hDSUJUVVNCX0JDTT15CitDT05GSUdfQlRfSENJ QlRVU0JfTVRLPXkKK0NPTkZJR19CVF9IQ0lCVFVTQl9SVEw9eQorQ09ORklHX0JUX0hDSUJUU0RJ Tz1tCitDT05GSUdfQlRfSENJVUFSVD1tCitDT05GSUdfQlRfSENJVUFSVF9TRVJERVY9eQorQ09O RklHX0JUX0hDSVVBUlRfSDQ9eQorQ09ORklHX0JUX0hDSVVBUlRfTk9LSUE9bQorQ09ORklHX0JU X0hDSVVBUlRfQkNTUD15CitDT05GSUdfQlRfSENJVUFSVF9BVEgzSz15CitDT05GSUdfQlRfSENJ VUFSVF9MTD15CitDT05GSUdfQlRfSENJVUFSVF8zV0lSRT15CitDT05GSUdfQlRfSENJVUFSVF9J TlRFTD15CitDT05GSUdfQlRfSENJVUFSVF9CQ009eQorQ09ORklHX0JUX0hDSVVBUlRfUlRMPXkK K0NPTkZJR19CVF9IQ0lVQVJUX1FDQT15CitDT05GSUdfQlRfSENJVUFSVF9BRzZYWD15CitDT05G SUdfQlRfSENJVUFSVF9NUlZMPXkKK0NPTkZJR19CVF9IQ0lCQ00yMDNYPW0KK0NPTkZJR19CVF9I Q0lCQ000Mzc3PW0KK0NPTkZJR19CVF9IQ0lCUEExMFg9bQorQ09ORklHX0JUX0hDSUJGVVNCPW0K K0NPTkZJR19CVF9IQ0lEVEwxPW0KK0NPTkZJR19CVF9IQ0lCVDNDPW0KK0NPTkZJR19CVF9IQ0lC TFVFQ0FSRD1tCitDT05GSUdfQlRfSENJVkhDST1tCitDT05GSUdfQlRfTVJWTD1tCitDT05GSUdf QlRfTVJWTF9TRElPPW0KK0NPTkZJR19CVF9BVEgzSz1tCitDT05GSUdfQlRfTVRLU0RJTz1tCitD T05GSUdfQlRfTVRLVUFSVD1tCitDT05GSUdfQlRfSENJUlNJPW0KK0NPTkZJR19CVF9WSVJUSU89 bQorQ09ORklHX0JUX05YUFVBUlQ9bQorIyBlbmQgb2YgQmx1ZXRvb3RoIGRldmljZSBkcml2ZXJz CisKK0NPTkZJR19BRl9SWFJQQz1tCitDT05GSUdfQUZfUlhSUENfSVBWNj15CisjIENPTkZJR19B Rl9SWFJQQ19JTkpFQ1RfTE9TUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQ19JTkpFQ1Rf UlhfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUENfREVCVUcgaXMgbm90IHNldAor Q09ORklHX1JYS0FEPXkKKyMgQ09ORklHX1JYUEVSRiBpcyBub3Qgc2V0CitDT05GSUdfQUZfS0NN PW0KK0NPTkZJR19TVFJFQU1fUEFSU0VSPXkKK0NPTkZJR19NQ1RQPXkKK0NPTkZJR19NQ1RQX0ZM T1dTPXkKK0NPTkZJR19GSUJfUlVMRVM9eQorQ09ORklHX1dJUkVMRVNTPXkKK0NPTkZJR19XSVJF TEVTU19FWFQ9eQorQ09ORklHX1dFWFRfQ09SRT15CitDT05GSUdfV0VYVF9QUk9DPXkKK0NPTkZJ R19XRVhUX1NQWT15CitDT05GSUdfV0VYVF9QUklWPXkKK0NPTkZJR19DRkc4MDIxMT1tCisjIENP TkZJR19OTDgwMjExX1RFU1RNT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NGRzgwMjExX0RFVkVM T1BFUl9XQVJOSU5HUyBpcyBub3Qgc2V0CisjIENPTkZJR19DRkc4MDIxMV9DRVJUSUZJQ0FUSU9O X09OVVMgaXMgbm90IHNldAorQ09ORklHX0NGRzgwMjExX1JFUVVJUkVfU0lHTkVEX1JFR0RCPXkK K0NPTkZJR19DRkc4MDIxMV9VU0VfS0VSTkVMX1JFR0RCX0tFWVM9eQorQ09ORklHX0NGRzgwMjEx X0RFRkFVTFRfUFM9eQorIyBDT05GSUdfQ0ZHODAyMTFfREVCVUdGUyBpcyBub3Qgc2V0CitDT05G SUdfQ0ZHODAyMTFfQ1JEQV9TVVBQT1JUPXkKK0NPTkZJR19DRkc4MDIxMV9XRVhUPXkKK0NPTkZJ R19DRkc4MDIxMV9XRVhUX0VYUE9SVD15CitDT05GSUdfTElCODAyMTE9bQorQ09ORklHX0xJQjgw MjExX0NSWVBUX1dFUD1tCitDT05GSUdfTElCODAyMTFfQ1JZUFRfQ0NNUD1tCitDT05GSUdfTElC ODAyMTFfQ1JZUFRfVEtJUD1tCisjIENPTkZJR19MSUI4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfTUFDODAyMTE9bQorQ09ORklHX01BQzgwMjExX0hBU19SQz15CitDT05GSUdfTUFDODAy MTFfUkNfTUlOU1RSRUw9eQorQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUw9eQor Q09ORklHX01BQzgwMjExX1JDX0RFRkFVTFQ9Im1pbnN0cmVsX2h0IgorQ09ORklHX01BQzgwMjEx X01FU0g9eQorQ09ORklHX01BQzgwMjExX0xFRFM9eQorQ09ORklHX01BQzgwMjExX0RFQlVHRlM9 eQorIyBDT05GSUdfTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklH X01BQzgwMjExX0RFQlVHX01FTlUgaXMgbm90IHNldAorQ09ORklHX01BQzgwMjExX1NUQV9IQVNI X01BWF9TSVpFPTAKK0NPTkZJR19SRktJTEw9bQorQ09ORklHX1JGS0lMTF9MRURTPXkKK0NPTkZJ R19SRktJTExfSU5QVVQ9eQorQ09ORklHX1JGS0lMTF9HUElPPW0KK0NPTkZJR19ORVRfOVA9bQor Q09ORklHX05FVF85UF9GRD1tCitDT05GSUdfTkVUXzlQX1ZJUlRJTz1tCitDT05GSUdfTkVUXzlQ X1JETUE9bQorIyBDT05GSUdfTkVUXzlQX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DQUlGPW0K KyMgQ09ORklHX0NBSUZfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NBSUZfTkVUREVWPW0KK0NP TkZJR19DQUlGX1VTQj1tCitDT05GSUdfQ0VQSF9MSUI9bQorQ09ORklHX0NFUEhfTElCX1BSRVRU WURFQlVHPXkKKyMgQ09ORklHX0NFUEhfTElCX1VTRV9ETlNfUkVTT0xWRVIgaXMgbm90IHNldAor Q09ORklHX05GQz1tCitDT05GSUdfTkZDX0RJR0lUQUw9bQorQ09ORklHX05GQ19OQ0k9bQorIyBD T05GSUdfTkZDX05DSV9TUEkgaXMgbm90IHNldAorQ09ORklHX05GQ19OQ0lfVUFSVD1tCitDT05G SUdfTkZDX0hDST1tCitDT05GSUdfTkZDX1NIRExDPXkKKworIworIyBOZWFyIEZpZWxkIENvbW11 bmljYXRpb24gKE5GQykgZGV2aWNlcworIworIyBDT05GSUdfTkZDX1RSRjc5NzBBIGlzIG5vdCBz ZXQKK0NPTkZJR19ORkNfU0lNPW0KK0NPTkZJR19ORkNfUE9SVDEwMD1tCitDT05GSUdfTkZDX1ZJ UlRVQUxfTkNJPW0KKyMgQ09ORklHX05GQ19GRFAgaXMgbm90IHNldAorQ09ORklHX05GQ19QTjU0 ND1tCitDT05GSUdfTkZDX1BONTQ0X0kyQz1tCitDT05GSUdfTkZDX1BONTMzPW0KK0NPTkZJR19O RkNfUE41MzNfVVNCPW0KK0NPTkZJR19ORkNfUE41MzNfSTJDPW0KK0NPTkZJR19ORkNfUE41MzJf VUFSVD1tCitDT05GSUdfTkZDX01JQ1JPUkVBRD1tCitDT05GSUdfTkZDX01JQ1JPUkVBRF9JMkM9 bQorQ09ORklHX05GQ19NUlZMPW0KK0NPTkZJR19ORkNfTVJWTF9VU0I9bQorQ09ORklHX05GQ19N UlZMX1VBUlQ9bQorQ09ORklHX05GQ19NUlZMX0kyQz1tCitDT05GSUdfTkZDX1NUMjFORkNBPW0K K0NPTkZJR19ORkNfU1QyMU5GQ0FfSTJDPW0KK0NPTkZJR19ORkNfU1RfTkNJPW0KK0NPTkZJR19O RkNfU1RfTkNJX0kyQz1tCitDT05GSUdfTkZDX1NUX05DSV9TUEk9bQorQ09ORklHX05GQ19OWFBf TkNJPW0KK0NPTkZJR19ORkNfTlhQX05DSV9JMkM9bQorQ09ORklHX05GQ19TM0ZXUk41PW0KK0NP TkZJR19ORkNfUzNGV1JONV9JMkM9bQorQ09ORklHX05GQ19TM0ZXUk44Ml9VQVJUPW0KK0NPTkZJ R19ORkNfU1Q5NUhGPW0KKyMgZW5kIG9mIE5lYXIgRmllbGQgQ29tbXVuaWNhdGlvbiAoTkZDKSBk ZXZpY2VzCisKK0NPTkZJR19QU0FNUExFPW0KK0NPTkZJR19ORVRfSUZFPW0KK0NPTkZJR19MV1RV Tk5FTD15CitDT05GSUdfTFdUVU5ORUxfQlBGPXkKK0NPTkZJR19EU1RfQ0FDSEU9eQorQ09ORklH X0dST19DRUxMUz15CitDT05GSUdfU09DS19WQUxJREFURV9YTUlUPXkKK0NPTkZJR19ORVRfU0VM RlRFU1RTPXkKK0NPTkZJR19ORVRfU09DS19NU0c9eQorQ09ORklHX05FVF9ERVZMSU5LPXkKK0NP TkZJR19QQUdFX1BPT0w9eQorQ09ORklHX1BBR0VfUE9PTF9TVEFUUz15CitDT05GSUdfRkFJTE9W RVI9bQorQ09ORklHX0VUSFRPT0xfTkVUTElOSz15CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMK K0NPTkZJR19BUk1fQU1CQT15CitDT05GSUdfSEFWRV9QQ0k9eQorQ09ORklHX1BDST15CitDT05G SUdfUENJX0RPTUFJTlM9eQorQ09ORklHX1BDSV9ET01BSU5TX0dFTkVSSUM9eQorQ09ORklHX1BD SUVQT1JUQlVTPXkKK0NPTkZJR19IT1RQTFVHX1BDSV9QQ0lFPXkKK0NPTkZJR19QQ0lFQUVSPXkK K0NPTkZJR19QQ0lFQUVSX0lOSkVDVD1tCisjIENPTkZJR19QQ0lFX0VDUkMgaXMgbm90IHNldAor Q09ORklHX1BDSUVBU1BNPXkKK0NPTkZJR19QQ0lFQVNQTV9ERUZBVUxUPXkKKyMgQ09ORklHX1BD SUVBU1BNX1BPV0VSU0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0lFQVNQTV9QT1dFUl9TVVBF UlNBVkUgaXMgbm90IHNldAorIyBDT05GSUdfUENJRUFTUE1fUEVSRk9STUFOQ0UgaXMgbm90IHNl dAorQ09ORklHX1BDSUVfUE1FPXkKK0NPTkZJR19QQ0lFX0RQQz15CitDT05GSUdfUENJRV9QVE09 eQorQ09ORklHX1BDSV9NU0k9eQorQ09ORklHX1BDSV9RVUlSS1M9eQorIyBDT05GSUdfUENJX0RF QlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSV9SRUFMTE9DX0VOQUJMRV9BVVRPIGlzIG5vdCBz ZXQKK0NPTkZJR19QQ0lfU1RVQj15CitDT05GSUdfUENJX1BGX1NUVUI9bQorQ09ORklHX1BDSV9B VFM9eQorQ09ORklHX1BDSV9ET0U9eQorQ09ORklHX1BDSV9FQ0FNPXkKK0NPTkZJR19QQ0lfSU9W PXkKK0NPTkZJR19QQ0lfUFJJPXkKK0NPTkZJR19QQ0lfUEFTSUQ9eQorIyBDT05GSUdfUENJRV9C VVNfVFVORV9PRkYgaXMgbm90IHNldAorQ09ORklHX1BDSUVfQlVTX0RFRkFVTFQ9eQorIyBDT05G SUdfUENJRV9CVVNfU0FGRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0lFX0JVU19QRVJGT1JNQU5D RSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0lFX0JVU19QRUVSMlBFRVIgaXMgbm90IHNldAorQ09O RklHX1ZHQV9BUkI9eQorQ09ORklHX1ZHQV9BUkJfTUFYX0dQVVM9MTYKK0NPTkZJR19IT1RQTFVH X1BDST15CitDT05GSUdfSE9UUExVR19QQ0lfQ1BDST15CitDT05GSUdfSE9UUExVR19QQ0lfU0hQ Qz15CisKKyMKKyMgUENJIGNvbnRyb2xsZXIgZHJpdmVycworIworQ09ORklHX1BDSV9GVFBDSTEw MD15CitDT05GSUdfUENJX0hPU1RfQ09NTU9OPXkKK0NPTkZJR19QQ0lfSE9TVF9HRU5FUklDPXkK K0NPTkZJR19QQ0lFX01JQ1JPQ0hJUF9IT1NUPXkKK0NPTkZJR19QQ0lFX1hJTElOWD15CitDT05G SUdfUENJRV9TVEFSRklWRT1tCisKKyMKKyMgQ2FkZW5jZS1iYXNlZCBQQ0llIGNvbnRyb2xsZXJz CisjCitDT05GSUdfUENJRV9DQURFTkNFPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfSE9TVD15CitD T05GSUdfUENJRV9DQURFTkNFX0VQPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfUExBVD15CitDT05G SUdfUENJRV9DQURFTkNFX1BMQVRfSE9TVD15CitDT05GSUdfUENJRV9DQURFTkNFX1BMQVRfRVA9 eQorQ09ORklHX1BDSV9KNzIxRT15CitDT05GSUdfUENJX0o3MjFFX0hPU1Q9eQorQ09ORklHX1BD SV9KNzIxRV9FUD15CisjIGVuZCBvZiBDYWRlbmNlLWJhc2VkIFBDSWUgY29udHJvbGxlcnMKKwor IworIyBEZXNpZ25XYXJlLWJhc2VkIFBDSWUgY29udHJvbGxlcnMKKyMKK0NPTkZJR19QQ0lFX0RX PXkKK0NPTkZJR19QQ0lFX0RXX0hPU1Q9eQorQ09ORklHX1BDSUVfRFdfRVA9eQorQ09ORklHX1BD SV9NRVNPTj15CitDT05GSUdfUENJRV9EV19QTEFUPXkKK0NPTkZJR19QQ0lFX0RXX1BMQVRfSE9T VD15CitDT05GSUdfUENJRV9EV19QTEFUX0VQPXkKK0NPTkZJR19QQ0lFX0ZVNzQwPXkKKyMgZW5k IG9mIERlc2lnbldhcmUtYmFzZWQgUENJZSBjb250cm9sbGVycworCisjCisjIE1vYml2ZWlsLWJh c2VkIFBDSWUgY29udHJvbGxlcnMKKyMKKyMgZW5kIG9mIE1vYml2ZWlsLWJhc2VkIFBDSWUgY29u dHJvbGxlcnMKKyMgZW5kIG9mIFBDSSBjb250cm9sbGVyIGRyaXZlcnMKKworIworIyBQQ0kgRW5k cG9pbnQKKyMKK0NPTkZJR19QQ0lfRU5EUE9JTlQ9eQorQ09ORklHX1BDSV9FTkRQT0lOVF9DT05G SUdGUz15CitDT05GSUdfUENJX0VQRl9URVNUPW0KK0NPTkZJR19QQ0lfRVBGX05UQj1tCitDT05G SUdfUENJX0VQRl9WTlRCPW0KKyMgZW5kIG9mIFBDSSBFbmRwb2ludAorCisjCisjIFBDSSBzd2l0 Y2ggY29udHJvbGxlciBkcml2ZXJzCisjCitDT05GSUdfUENJX1NXX1NXSVRDSFRFQz1tCisjIGVu ZCBvZiBQQ0kgc3dpdGNoIGNvbnRyb2xsZXIgZHJpdmVycworCitDT05GSUdfQ1hMX0JVUz1tCitD T05GSUdfQ1hMX1BDST1tCisjIENPTkZJR19DWExfTUVNX1JBV19DT01NQU5EUyBpcyBub3Qgc2V0 CitDT05GSUdfQ1hMX1BNRU09bQorQ09ORklHX0NYTF9NRU09bQorQ09ORklHX0NYTF9QT1JUPW0K K0NPTkZJR19DWExfUkVHSU9OPXkKKyMgQ09ORklHX0NYTF9SRUdJT05fSU5WQUxJREFUSU9OX1RF U1QgaXMgbm90IHNldAorQ09ORklHX1BDQ0FSRD1tCitDT05GSUdfUENNQ0lBPW0KK0NPTkZJR19Q Q01DSUFfTE9BRF9DSVM9eQorQ09ORklHX0NBUkRCVVM9eQorCisjCisjIFBDLWNhcmQgYnJpZGdl cworIworQ09ORklHX1lFTlRBPW0KK0NPTkZJR19ZRU5UQV9PMj15CitDT05GSUdfWUVOVEFfUklD T0g9eQorQ09ORklHX1lFTlRBX1RJPXkKK0NPTkZJR19ZRU5UQV9FTkVfVFVORT15CitDT05GSUdf WUVOVEFfVE9TSElCQT15CitDT05GSUdfUEQ2NzI5PW0KK0NPTkZJR19JODIwOTI9bQorQ09ORklH X1BDQ0FSRF9OT05TVEFUSUM9eQorQ09ORklHX1JBUElESU89bQorQ09ORklHX1JBUElESU9fVFNJ NzIxPW0KK0NPTkZJR19SQVBJRElPX0RJU0NfVElNRU9VVD0zMAorIyBDT05GSUdfUkFQSURJT19F TkFCTEVfUlhfVFhfUE9SVFMgaXMgbm90IHNldAorQ09ORklHX1JBUElESU9fRE1BX0VOR0lORT15 CisjIENPTkZJR19SQVBJRElPX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19SQVBJRElPX0VOVU1f QkFTSUM9bQorQ09ORklHX1JBUElESU9fQ0hNQU49bQorQ09ORklHX1JBUElESU9fTVBPUlRfQ0RF Vj1tCisKKyMKKyMgUmFwaWRJTyBTd2l0Y2ggZHJpdmVycworIworQ09ORklHX1JBUElESU9fQ1BT X1hYPW0KK0NPTkZJR19SQVBJRElPX0NQU19HRU4yPW0KK0NPTkZJR19SQVBJRElPX1JYU19HRU4z PW0KKyMgZW5kIG9mIFJhcGlkSU8gU3dpdGNoIGRyaXZlcnMKKworIworIyBHZW5lcmljIERyaXZl ciBPcHRpb25zCisjCitDT05GSUdfQVVYSUxJQVJZX0JVUz15CitDT05GSUdfVUVWRU5UX0hFTFBF Uj15CitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIiCitDT05GSUdfREVWVE1QRlM9eQorQ09O RklHX0RFVlRNUEZTX01PVU5UPXkKK0NPTkZJR19ERVZUTVBGU19TQUZFPXkKKyMgQ09ORklHX1NU QU5EQUxPTkUgaXMgbm90IHNldAorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorCisj CisjIEZpcm13YXJlIGxvYWRlcgorIworQ09ORklHX0ZXX0xPQURFUj15CitDT05GSUdfRldfTE9B REVSX0RFQlVHPXkKK0NPTkZJR19GV19MT0FERVJfUEFHRURfQlVGPXkKK0NPTkZJR19GV19MT0FE RVJfU1lTRlM9eQorQ09ORklHX0VYVFJBX0ZJUk1XQVJFPSIiCitDT05GSUdfRldfTE9BREVSX1VT RVJfSEVMUEVSPXkKKyMgQ09ORklHX0ZXX0xPQURFUl9VU0VSX0hFTFBFUl9GQUxMQkFDSyBpcyBu b3Qgc2V0CitDT05GSUdfRldfTE9BREVSX0NPTVBSRVNTPXkKK0NPTkZJR19GV19MT0FERVJfQ09N UFJFU1NfWFo9eQorQ09ORklHX0ZXX0xPQURFUl9DT01QUkVTU19aU1REPXkKK0NPTkZJR19GV19V UExPQUQ9eQorIyBlbmQgb2YgRmlybXdhcmUgbG9hZGVyCisKK0NPTkZJR19XQU5UX0RFVl9DT1JF RFVNUD15CitDT05GSUdfQUxMT1dfREVWX0NPUkVEVU1QPXkKK0NPTkZJR19ERVZfQ09SRURVTVA9 eQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJF UyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19URVNUX0RSSVZFUl9SRU1PVkUgaXMgbm90IHNl dAorIyBDT05GSUdfVEVTVF9BU1lOQ19EUklWRVJfUFJPQkUgaXMgbm90IHNldAorQ09ORklHX1NP Q19CVVM9eQorQ09ORklHX1JFR01BUD15CitDT05GSUdfUkVHTUFQX0kyQz15CitDT05GSUdfUkVH TUFQX1NQST1tCitDT05GSUdfUkVHTUFQX1NQTUk9bQorQ09ORklHX1JFR01BUF9XMT1tCitDT05G SUdfUkVHTUFQX01NSU89eQorQ09ORklHX1JFR01BUF9JUlE9eQorQ09ORklHX1JFR01BUF9TT1VO RFdJUkU9bQorQ09ORklHX1JFR01BUF9TT1VORFdJUkVfTUJRPW0KK0NPTkZJR19SRUdNQVBfU0ND Qj1tCitDT05GSUdfUkVHTUFQX0kzQz1tCitDT05GSUdfUkVHTUFQX1NQSV9BVk1NPW0KK0NPTkZJ R19ETUFfU0hBUkVEX0JVRkZFUj15CisjIENPTkZJR19ETUFfRkVOQ0VfVFJBQ0UgaXMgbm90IHNl dAorQ09ORklHX0dFTkVSSUNfQVJDSF9UT1BPTE9HWT15CisjIENPTkZJR19GV19ERVZMSU5LX1NZ TkNfU1RBVEVfVElNRU9VVCBpcyBub3Qgc2V0CisjIGVuZCBvZiBHZW5lcmljIERyaXZlciBPcHRp b25zCisKKyMKKyMgQnVzIGRldmljZXMKKyMKK0NPTkZJR19NT1hURVQ9bQorQ09ORklHX01ISV9C VVM9bQorIyBDT05GSUdfTUhJX0JVU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTUhJX0JVU19Q Q0lfR0VORVJJQz1tCitDT05GSUdfTUhJX0JVU19FUD1tCisjIGVuZCBvZiBCdXMgZGV2aWNlcwor CitDT05GSUdfQ09OTkVDVE9SPXkKK0NPTkZJR19QUk9DX0VWRU5UUz15CisKKyMKKyMgRmlybXdh cmUgRHJpdmVycworIworCisjCisjIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgTWFuYWdlbWVudCBJ bnRlcmZhY2UgUHJvdG9jb2wKKyMKKyMgZW5kIG9mIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgTWFu YWdlbWVudCBJbnRlcmZhY2UgUHJvdG9jb2wKKworQ09ORklHX0ZJUk1XQVJFX01FTU1BUD15CitD T05GSUdfU1lTRkI9eQorIyBDT05GSUdfU1lTRkJfU0lNUExFRkIgaXMgbm90IHNldAorQ09ORklH X0ZXX0NTX0RTUD1tCisjIENPTkZJR19HT09HTEVfRklSTVdBUkUgaXMgbm90IHNldAorCisjCisj IEVGSSAoRXh0ZW5zaWJsZSBGaXJtd2FyZSBJbnRlcmZhY2UpIFN1cHBvcnQKKyMKK0NPTkZJR19F RklfRVNSVD15CitDT05GSUdfRUZJX1ZBUlNfUFNUT1JFPW0KKyMgQ09ORklHX0VGSV9WQVJTX1BT VE9SRV9ERUZBVUxUX0RJU0FCTEUgaXMgbm90IHNldAorQ09ORklHX0VGSV9QQVJBTVNfRlJPTV9G RFQ9eQorQ09ORklHX0VGSV9SVU5USU1FX1dSQVBQRVJTPXkKK0NPTkZJR19FRklfR0VORVJJQ19T VFVCPXkKKyMgQ09ORklHX0VGSV9aQk9PVCBpcyBub3Qgc2V0CitDT05GSUdfRUZJX0JPT1RMT0FE RVJfQ09OVFJPTD1tCitDT05GSUdfRUZJX0NBUFNVTEVfTE9BREVSPW0KKyMgQ09ORklHX0VGSV9U RVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFU0VUX0FUVEFDS19NSVRJR0FUSU9OIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0VGSV9ESVNBQkxFX1BDSV9ETUEgaXMgbm90IHNldAorQ09ORklHX0VGSV9F QVJMWUNPTj15CisjIENPTkZJR19FRklfRElTQUJMRV9SVU5USU1FIGlzIG5vdCBzZXQKKyMgQ09O RklHX0VGSV9DT0NPX1NFQ1JFVCBpcyBub3Qgc2V0CisjIGVuZCBvZiBFRkkgKEV4dGVuc2libGUg RmlybXdhcmUgSW50ZXJmYWNlKSBTdXBwb3J0CisKKyMKKyMgVGVncmEgZmlybXdhcmUgZHJpdmVy CisjCisjIGVuZCBvZiBUZWdyYSBmaXJtd2FyZSBkcml2ZXIKKyMgZW5kIG9mIEZpcm13YXJlIERy aXZlcnMKKworQ09ORklHX0dOU1M9bQorQ09ORklHX0dOU1NfU0VSSUFMPW0KK0NPTkZJR19HTlNT X01US19TRVJJQUw9bQorQ09ORklHX0dOU1NfU0lSRl9TRVJJQUw9bQorQ09ORklHX0dOU1NfVUJY X1NFUklBTD1tCitDT05GSUdfR05TU19VU0I9bQorQ09ORklHX01URD1tCitDT05GSUdfTVREX1RF U1RTPW0KKworIworIyBQYXJ0aXRpb24gcGFyc2VycworIworQ09ORklHX01URF9BUjdfUEFSVFM9 bQorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPW0KK0NPTkZJR19NVERfT0ZfUEFSVFM9bQorQ09O RklHX01URF9SRURCT09UX1BBUlRTPW0KK0NPTkZJR19NVERfUkVEQk9PVF9ESVJFQ1RPUllfQkxP Q0s9LTEKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1VOQUxMT0NBVEVEIGlzIG5vdCBzZXQK KyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKKyMgZW5kIG9m IFBhcnRpdGlvbiBwYXJzZXJzCisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBM YXllcnMKKyMKK0NPTkZJR19NVERfQkxLREVWUz1tCitDT05GSUdfTVREX0JMT0NLPW0KK0NPTkZJ R19NVERfQkxPQ0tfUk89bQorCisjCisjIE5vdGUgdGhhdCBpbiBzb21lIGNhc2VzIFVCSSBibG9j ayBpcyBwcmVmZXJyZWQuIFNlZSBNVERfVUJJX0JMT0NLLgorIworQ09ORklHX0ZUTD1tCitDT05G SUdfTkZUTD1tCitDT05GSUdfTkZUTF9SVz15CitDT05GSUdfSU5GVEw9bQorQ09ORklHX1JGRF9G VEw9bQorQ09ORklHX1NTRkRDPW0KKyMgQ09ORklHX1NNX0ZUTCBpcyBub3Qgc2V0CitDT05GSUdf TVREX09PUFM9bQorIyBDT05GSUdfTVREX1BTVE9SRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX1NX QVA9bQorQ09ORklHX01URF9QQVJUSVRJT05FRF9NQVNURVI9eQorCisjCisjIFJBTS9ST00vRmxh c2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST1tCitDT05GSUdfTVREX0pFREVDUFJP QkU9bQorQ09ORklHX01URF9HRU5fUFJPQkU9bQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9 eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQ IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKK0NP TkZJR19NVERfQ0ZJX0dFT01FVFJZPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitD T05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80 PXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOD15CitDT05GSUdfTVREX01BUF9CQU5LX1dJ RFRIXzE2PXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzI9eQorQ09ORklHX01URF9DRklf STE9eQorQ09ORklHX01URF9DRklfSTI9eQorQ09ORklHX01URF9DRklfSTQ9eQorQ09ORklHX01U RF9DRklfSTg9eQorQ09ORklHX01URF9PVFA9eQorQ09ORklHX01URF9DRklfSU5URUxFWFQ9bQor Q09ORklHX01URF9DRklfQU1EU1REPW0KK0NPTkZJR19NVERfQ0ZJX1NUQUE9bQorQ09ORklHX01U RF9DRklfVVRJTD1tCitDT05GSUdfTVREX1JBTT1tCitDT05GSUdfTVREX1JPTT1tCitDT05GSUdf TVREX0FCU0VOVD1tCisjIGVuZCBvZiBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworCisjCisj IE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKK0NPTkZJR19NVERfQ09NUExFWF9N QVBQSU5HUz15CitDT05GSUdfTVREX1BIWVNNQVA9bQorIyBDT05GSUdfTVREX1BIWVNNQVBfQ09N UEFUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUF9PRj15CisjIENPTkZJR19NVERfUEhZ U01BUF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIWVNNQVBfR0VNSU5JIGlz IG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUF9HUElPX0FERFI9eQorQ09ORklHX01URF9QQ0k9 bQorQ09ORklHX01URF9QQ01DSUE9bQorIyBDT05GSUdfTVREX1BDTUNJQV9BTk9OWU1PVVMgaXMg bm90IHNldAorQ09ORklHX01URF9JTlRFTF9WUl9OT1I9bQorQ09ORklHX01URF9QTEFUUkFNPW0K KyMgZW5kIG9mIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKworIworIyBTZWxmLWNv bnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfUE1DNTUxPW0KK0NPTkZJ R19NVERfUE1DNTUxX0JVR0ZJWD15CisjIENPTkZJR19NVERfUE1DNTUxX0RFQlVHIGlzIG5vdCBz ZXQKKyMgQ09ORklHX01URF9EQVRBRkxBU0ggaXMgbm90IHNldAorQ09ORklHX01URF9NQ0hQMjNL MjU2PW0KK0NPTkZJR19NVERfTUNIUDQ4TDY0MD1tCisjIENPTkZJR19NVERfU1NUMjVMIGlzIG5v dCBzZXQKK0NPTkZJR19NVERfU0xSQU09bQorQ09ORklHX01URF9QSFJBTT1tCitDT05GSUdfTVRE X01URFJBTT1tCitDT05GSUdfTVREUkFNX1RPVEFMX1NJWkU9NDA5NgorQ09ORklHX01URFJBTV9F UkFTRV9TSVpFPTEyOAorQ09ORklHX01URF9CTE9DSzJNVEQ9bQorCisjCisjIERpc2stT24tQ2hp cCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQ0czIGlzIG5vdCBzZXQKKyMgZW5k IG9mIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworCisjCisjIE5BTkQKKyMKK0NP TkZJR19NVERfTkFORF9DT1JFPW0KK0NPTkZJR19NVERfT05FTkFORD1tCitDT05GSUdfTVREX09O RU5BTkRfVkVSSUZZX1dSSVRFPXkKK0NPTkZJR19NVERfT05FTkFORF9HRU5FUklDPW0KK0NPTkZJ R19NVERfT05FTkFORF9PVFA9eQorQ09ORklHX01URF9PTkVOQU5EXzJYX1BST0dSQU09eQorQ09O RklHX01URF9SQVdfTkFORD1tCisKKyMKKyMgUmF3L3BhcmFsbGVsIE5BTkQgZmxhc2ggY29udHJv bGxlcnMKKyMKK0NPTkZJR19NVERfTkFORF9ERU5BTEk9bQorIyBDT05GSUdfTVREX05BTkRfREVO QUxJX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfREVOQUxJX0RUPW0KK0NPTkZJR19N VERfTkFORF9DQUZFPW0KK0NPTkZJR19NVERfTkFORF9NWElDPW0KK0NPTkZJR19NVERfTkFORF9H UElPPW0KK0NPTkZJR19NVERfTkFORF9QTEFURk9STT1tCitDT05GSUdfTVREX05BTkRfQ0FERU5D RT1tCitDT05GSUdfTVREX05BTkRfQVJBU0FOPW0KK0NPTkZJR19NVERfTkFORF9JTlRFTF9MR009 bQorCisjCisjIE1pc2MKKyMKK0NPTkZJR19NVERfU01fQ09NTU9OPW0KK0NPTkZJR19NVERfTkFO RF9OQU5EU0lNPW0KK0NPTkZJR19NVERfTkFORF9SSUNPSD1tCitDT05GSUdfTVREX05BTkRfRElT S09OQ0hJUD1tCitDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUF9QUk9CRV9BRFZBTkNFRD15CitD T05GSUdfTVREX05BTkRfRElTS09OQ0hJUF9QUk9CRV9BRERSRVNTPTB4MAorQ09ORklHX01URF9O QU5EX0RJU0tPTkNISVBfUFJPQkVfSElHSD15CitDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUF9C QlRXUklURT15CitDT05GSUdfTVREX1NQSV9OQU5EPW0KKworIworIyBFQ0MgZW5naW5lIHN1cHBv cnQKKyMKK0NPTkZJR19NVERfTkFORF9FQ0M9eQorQ09ORklHX01URF9OQU5EX0VDQ19TV19IQU1N SU5HPXkKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TV19IQU1NSU5HX1NNQyBpcyBub3Qgc2V0CitD T05GSUdfTVREX05BTkRfRUNDX1NXX0JDSD15CitDT05GSUdfTVREX05BTkRfRUNDX01YSUM9eQor IyBlbmQgb2YgRUNDIGVuZ2luZSBzdXBwb3J0CisjIGVuZCBvZiBOQU5ECisKKyMKKyMgTFBERFIg JiBMUEREUjIgUENNIG1lbW9yeSBkcml2ZXJzCisjCitDT05GSUdfTVREX0xQRERSPW0KK0NPTkZJ R19NVERfUUlORk9fUFJPQkU9bQorIyBlbmQgb2YgTFBERFIgJiBMUEREUjIgUENNIG1lbW9yeSBk cml2ZXJzCisKK0NPTkZJR19NVERfU1BJX05PUj1tCitDT05GSUdfTVREX1NQSV9OT1JfVVNFXzRL X1NFQ1RPUlM9eQorIyBDT05GSUdfTVREX1NQSV9OT1JfU1dQX0RJU0FCTEUgaXMgbm90IHNldAor Q09ORklHX01URF9TUElfTk9SX1NXUF9ESVNBQkxFX09OX1ZPTEFUSUxFPXkKKyMgQ09ORklHX01U RF9TUElfTk9SX1NXUF9LRUVQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfVUJJPW0KK0NPTkZJR19N VERfVUJJX1dMX1RIUkVTSE9MRD00MDk2CitDT05GSUdfTVREX1VCSV9CRUJfTElNSVQ9MjAKKyMg Q09ORklHX01URF9VQklfRkFTVE1BUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1VCSV9HTFVFQkk9 bQorQ09ORklHX01URF9VQklfQkxPQ0s9eQorQ09ORklHX01URF9IWVBFUkJVUz1tCitDT05GSUdf RFRDPXkKK0NPTkZJR19PRj15CisjIENPTkZJR19PRl9VTklUVEVTVCBpcyBub3Qgc2V0CitDT05G SUdfT0ZfRkxBVFRSRUU9eQorQ09ORklHX09GX0VBUkxZX0ZMQVRUUkVFPXkKK0NPTkZJR19PRl9L T0JKPXkKK0NPTkZJR19PRl9EWU5BTUlDPXkKK0NPTkZJR19PRl9BRERSRVNTPXkKK0NPTkZJR19P Rl9JUlE9eQorQ09ORklHX09GX1JFU0VSVkVEX01FTT15CitDT05GSUdfT0ZfUkVTT0xWRT15CitD T05GSUdfT0ZfT1ZFUkxBWT15CitDT05GSUdfUEFSUE9SVD1tCisjIENPTkZJR19QQVJQT1JUX1BD IGlzIG5vdCBzZXQKK0NPTkZJR19QQVJQT1JUXzEyODQ9eQorQ09ORklHX1BBUlBPUlRfTk9UX1BD PXkKK0NPTkZJR19CTEtfREVWPXkKK0NPTkZJR19CTEtfREVWX05VTExfQkxLPW0KK0NPTkZJR19D RFJPTT1tCitDT05GSUdfQkxLX0RFVl9QQ0lFU1NEX01USVAzMlhYPW0KK0NPTkZJR19aUkFNPW0K K0NPTkZJR19aUkFNX0RFRl9DT01QX0xaT1JMRT15CisjIENPTkZJR19aUkFNX0RFRl9DT01QX1pT VEQgaXMgbm90IHNldAorIyBDT05GSUdfWlJBTV9ERUZfQ09NUF9MWjQgaXMgbm90IHNldAorIyBD T05GSUdfWlJBTV9ERUZfQ09NUF9MWk8gaXMgbm90IHNldAorIyBDT05GSUdfWlJBTV9ERUZfQ09N UF9MWjRIQyBpcyBub3Qgc2V0CisjIENPTkZJR19aUkFNX0RFRl9DT01QXzg0MiBpcyBub3Qgc2V0 CitDT05GSUdfWlJBTV9ERUZfQ09NUD0ibHpvLXJsZSIKK0NPTkZJR19aUkFNX1dSSVRFQkFDSz15 CisjIENPTkZJR19aUkFNX01FTU9SWV9UUkFDS0lORyBpcyBub3Qgc2V0CitDT05GSUdfWlJBTV9N VUxUSV9DT01QPXkKK0NPTkZJR19CTEtfREVWX0xPT1A9bQorQ09ORklHX0JMS19ERVZfTE9PUF9N SU5fQ09VTlQ9OAorQ09ORklHX0JMS19ERVZfRFJCRD1tCisjIENPTkZJR19EUkJEX0ZBVUxUX0lO SkVDVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9OQkQ9bQorQ09ORklHX0JMS19ERVZf UkFNPW0KK0NPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgorQ09ORklHX0JMS19ERVZfUkFNX1NJ WkU9MTMxMDcyCitDT05GSUdfQ0RST01fUEtUQ0RWRD1tCitDT05GSUdfQ0RST01fUEtUQ0RWRF9C VUZGRVJTPTgKK0NPTkZJR19DRFJPTV9QS1RDRFZEX1dDQUNIRT15CitDT05GSUdfQVRBX09WRVJf RVRIPW0KK0NPTkZJR19WSVJUSU9fQkxLPW0KK0NPTkZJR19CTEtfREVWX1JCRD1tCisjIENPTkZJ R19CTEtfREVWX1VCTEsgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfUk5CRD15CitDT05GSUdf QkxLX0RFVl9STkJEX0NMSUVOVD1tCitDT05GSUdfQkxLX0RFVl9STkJEX1NFUlZFUj1tCisKKyMK KyMgTlZNRSBTdXBwb3J0CisjCitDT05GSUdfTlZNRV9DT1JFPW0KK0NPTkZJR19CTEtfREVWX05W TUU9bQorQ09ORklHX05WTUVfTVVMVElQQVRIPXkKK0NPTkZJR19OVk1FX1ZFUkJPU0VfRVJST1JT PXkKK0NPTkZJR19OVk1FX0hXTU9OPXkKK0NPTkZJR19OVk1FX0ZBQlJJQ1M9bQorQ09ORklHX05W TUVfUkRNQT1tCitDT05GSUdfTlZNRV9GQz1tCitDT05GSUdfTlZNRV9UQ1A9bQorIyBDT05GSUdf TlZNRV9BVVRIIGlzIG5vdCBzZXQKK0NPTkZJR19OVk1FX1RBUkdFVD1tCitDT05GSUdfTlZNRV9U QVJHRVRfUEFTU1RIUlU9eQorQ09ORklHX05WTUVfVEFSR0VUX0xPT1A9bQorQ09ORklHX05WTUVf VEFSR0VUX1JETUE9bQorQ09ORklHX05WTUVfVEFSR0VUX0ZDPW0KK0NPTkZJR19OVk1FX1RBUkdF VF9GQ0xPT1A9bQorQ09ORklHX05WTUVfVEFSR0VUX1RDUD1tCisjIENPTkZJR19OVk1FX1RBUkdF VF9BVVRIIGlzIG5vdCBzZXQKKyMgZW5kIG9mIE5WTUUgU3VwcG9ydAorCisjCisjIE1pc2MgZGV2 aWNlcworIworQ09ORklHX1NFTlNPUlNfTElTM0xWMDJEPXkKK0NPTkZJR19BRDUyNVhfRFBPVD1t CitDT05GSUdfQUQ1MjVYX0RQT1RfSTJDPW0KKyMgQ09ORklHX0FENTI1WF9EUE9UX1NQSSBpcyBu b3Qgc2V0CitDT05GSUdfRFVNTVlfSVJRPW0KK0NPTkZJR19QSEFOVE9NPW0KK0NPTkZJR19USUZN X0NPUkU9bQorQ09ORklHX1RJRk1fN1hYMT1tCitDT05GSUdfSUNTOTMyUzQwMT1tCitDT05GSUdf RU5DTE9TVVJFX1NFUlZJQ0VTPW0KK0NPTkZJR19TTVBST19FUlJNT049bQorQ09ORklHX1NNUFJP X01JU0M9bQorQ09ORklHX0hJNjQyMVY2MDBfSVJRPW0KK0NPTkZJR19IUF9JTE89bQorIyBDT05G SUdfQVBEUzk4MDJBTFMgaXMgbm90IHNldAorIyBDT05GSUdfSVNMMjkwMDMgaXMgbm90IHNldAor Q09ORklHX0lTTDI5MDIwPW0KK0NPTkZJR19TRU5TT1JTX1RTTDI1NTA9bQorQ09ORklHX1NFTlNP UlNfQkgxNzcwPW0KK0NPTkZJR19TRU5TT1JTX0FQRFM5OTBYPW0KK0NPTkZJR19ITUM2MzUyPW0K K0NPTkZJR19EUzE2ODI9bQorIyBDT05GSUdfTEFUVElDRV9FQ1AzX0NPTkZJRyBpcyBub3Qgc2V0 CitDT05GSUdfU1JBTT15CitDT05GSUdfRFdfWERBVEFfUENJRT1tCitDT05GSUdfUENJX0VORFBP SU5UX1RFU1Q9bQorQ09ORklHX1hJTElOWF9TREZFQz1tCitDT05GSUdfTUlTQ19SVFNYPW0KK0NP TkZJR19ISVNJX0hJS0VZX1VTQj1tCitDT05GSUdfT1BFTl9ESUNFPW0KK0NPTkZJR19WQ1BVX1NU QUxMX0RFVEVDVE9SPW0KK0NPTkZJR19DMlBPUlQ9bQorCisjCisjIEVFUFJPTSBzdXBwb3J0Cisj CitDT05GSUdfRUVQUk9NX0FUMjQ9bQorIyBDT05GSUdfRUVQUk9NX0FUMjUgaXMgbm90IHNldAor Q09ORklHX0VFUFJPTV9MRUdBQ1k9bQorQ09ORklHX0VFUFJPTV9NQVg2ODc1PW0KK0NPTkZJR19F RVBST01fOTNDWDY9bQorIyBDT05GSUdfRUVQUk9NXzkzWFg0NiBpcyBub3Qgc2V0CitDT05GSUdf RUVQUk9NX0lEVF84OUhQRVNYPW0KK0NPTkZJR19FRVBST01fRUUxMDA0PW0KKyMgZW5kIG9mIEVF UFJPTSBzdXBwb3J0CisKK0NPTkZJR19DQjcxMF9DT1JFPW0KKyMgQ09ORklHX0NCNzEwX0RFQlVH IGlzIG5vdCBzZXQKK0NPTkZJR19DQjcxMF9ERUJVR19BU1NVTVBUSU9OUz15CisKKyMKKyMgVGV4 YXMgSW5zdHJ1bWVudHMgc2hhcmVkIHRyYW5zcG9ydCBsaW5lIGRpc2NpcGxpbmUKKyMKK0NPTkZJ R19USV9TVD1tCisjIGVuZCBvZiBUZXhhcyBJbnN0cnVtZW50cyBzaGFyZWQgdHJhbnNwb3J0IGxp bmUgZGlzY2lwbGluZQorCitDT05GSUdfU0VOU09SU19MSVMzX1NQST15CitDT05GSUdfU0VOU09S U19MSVMzX0kyQz1tCitDT05GSUdfQUxURVJBX1NUQVBMPW0KK0NPTkZJR19HRU5XUUU9bQorQ09O RklHX0dFTldRRV9QTEFURk9STV9FUlJPUl9SRUNPVkVSWT0wCitDT05GSUdfRUNITz1tCitDT05G SUdfQkNNX1ZLPW0KKyMgQ09ORklHX0JDTV9WS19UVFkgaXMgbm90IHNldAorQ09ORklHX01JU0Nf QUxDT1JfUENJPW0KK0NPTkZJR19NSVNDX1JUU1hfUENJPW0KK0NPTkZJR19NSVNDX1JUU1hfVVNC PW0KK0NPTkZJR19VQUNDRT1tCitDT05GSUdfUFZQQU5JQz15CitDT05GSUdfUFZQQU5JQ19NTUlP PW0KK0NPTkZJR19QVlBBTklDX1BDST1tCitDT05GSUdfR1BfUENJMVhYWFg9bQorIyBlbmQgb2Yg TWlzYyBkZXZpY2VzCisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX1NDU0lf TU9EPXkKK0NPTkZJR19SQUlEX0FUVFJTPW0KK0NPTkZJR19TQ1NJX0NPTU1PTj15CitDT05GSUdf U0NTST15CitDT05GSUdfU0NTSV9ETUE9eQorQ09ORklHX1NDU0lfTkVUTElOSz15CitDT05GSUdf U0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0Qt Uk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorQ09ORklHX0NIUl9ERVZfU1Q9bQorQ09ORklH X0JMS19ERVZfU1I9bQorQ09ORklHX0NIUl9ERVZfU0c9bQorQ09ORklHX0JMS19ERVZfQlNHPXkK K0NPTkZJR19DSFJfREVWX1NDSD1tCitDT05GSUdfU0NTSV9FTkNMT1NVUkU9bQorQ09ORklHX1ND U0lfQ09OU1RBTlRTPXkKK0NPTkZJR19TQ1NJX0xPR0dJTkc9eQorQ09ORklHX1NDU0lfU0NBTl9B U1lOQz15CisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCitDT05GSUdfU0NTSV9TUElfQVRUUlM9 bQorQ09ORklHX1NDU0lfRkNfQVRUUlM9bQorQ09ORklHX1NDU0lfSVNDU0lfQVRUUlM9bQorQ09O RklHX1NDU0lfU0FTX0FUVFJTPW0KK0NPTkZJR19TQ1NJX1NBU19MSUJTQVM9bQorQ09ORklHX1ND U0lfU0FTX0FUQT15CitDT05GSUdfU0NTSV9TQVNfSE9TVF9TTVA9eQorQ09ORklHX1NDU0lfU1JQ X0FUVFJTPW0KKyMgZW5kIG9mIFNDU0kgVHJhbnNwb3J0cworCitDT05GSUdfU0NTSV9MT1dMRVZF TD15CitDT05GSUdfSVNDU0lfVENQPW0KK0NPTkZJR19JU0NTSV9CT09UX1NZU0ZTPW0KK0NPTkZJ R19TQ1NJX0NYR0IzX0lTQ1NJPW0KK0NPTkZJR19TQ1NJX0NYR0I0X0lTQ1NJPW0KK0NPTkZJR19T Q1NJX0JOWDJfSVNDU0k9bQorQ09ORklHX1NDU0lfQk5YMlhfRkNPRT1tCitDT05GSUdfQkUySVND U0k9bQorQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEPW0KK0NPTkZJR19TQ1NJX0hQU0E9bQor Q09ORklHX1NDU0lfM1dfOVhYWD1tCitDT05GSUdfU0NTSV8zV19TQVM9bQorQ09ORklHX1NDU0lf QUNBUkQ9bQorQ09ORklHX1NDU0lfQUFDUkFJRD1tCitDT05GSUdfU0NTSV9BSUM3WFhYPW0KK0NP TkZJR19BSUM3WFhYX0NNRFNfUEVSX0RFVklDRT0zMgorQ09ORklHX0FJQzdYWFhfUkVTRVRfREVM QVlfTVM9MTUwMDAKKyMgQ09ORklHX0FJQzdYWFhfREVCVUdfRU5BQkxFIGlzIG5vdCBzZXQKK0NP TkZJR19BSUM3WFhYX0RFQlVHX01BU0s9MAorQ09ORklHX0FJQzdYWFhfUkVHX1BSRVRUWV9QUklO VD15CitDT05GSUdfU0NTSV9BSUM3OVhYPW0KK0NPTkZJR19BSUM3OVhYX0NNRFNfUEVSX0RFVklD RT0zMgorQ09ORklHX0FJQzc5WFhfUkVTRVRfREVMQVlfTVM9NTAwMAorIyBDT05GSUdfQUlDNzlY WF9ERUJVR19FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX0FJQzc5WFhfREVCVUdfTUFTSz0wCitD T05GSUdfQUlDNzlYWF9SRUdfUFJFVFRZX1BSSU5UPXkKK0NPTkZJR19TQ1NJX0FJQzk0WFg9bQor IyBDT05GSUdfQUlDOTRYWF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9NVlNBUz1tCisj IENPTkZJR19TQ1NJX01WU0FTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX01WU0FTX1RB U0tMRVQ9eQorQ09ORklHX1NDU0lfTVZVTUk9bQorQ09ORklHX1NDU0lfQURWQU5TWVM9bQorQ09O RklHX1NDU0lfQVJDTVNSPW0KK0NPTkZJR19TQ1NJX0VTQVMyUj1tCitDT05GSUdfTUVHQVJBSURf TkVXR0VOPXkKK0NPTkZJR19NRUdBUkFJRF9NTT1tCitDT05GSUdfTUVHQVJBSURfTUFJTEJPWD1t CitDT05GSUdfTUVHQVJBSURfTEVHQUNZPW0KK0NPTkZJR19NRUdBUkFJRF9TQVM9bQorQ09ORklH X1NDU0lfTVBUM1NBUz1tCitDT05GSUdfU0NTSV9NUFQyU0FTX01BWF9TR0U9MTI4CitDT05GSUdf U0NTSV9NUFQzU0FTX01BWF9TR0U9MTI4CitDT05GSUdfU0NTSV9NUFQyU0FTPW0KK0NPTkZJR19T Q1NJX01QSTNNUj1tCitDT05GSUdfU0NTSV9TTUFSVFBRST1tCitDT05GSUdfU0NTSV9IUFRJT1A9 bQorQ09ORklHX1NDU0lfQlVTTE9HSUM9bQorIyBDT05GSUdfU0NTSV9GTEFTSFBPSU5UIGlzIG5v dCBzZXQKK0NPTkZJR19TQ1NJX01ZUkI9bQorQ09ORklHX1NDU0lfTVlSUz1tCitDT05GSUdfTElC RkM9bQorQ09ORklHX0xJQkZDT0U9bQorQ09ORklHX0ZDT0U9bQorQ09ORklHX1NDU0lfU05JQz1t CisjIENPTkZJR19TQ1NJX1NOSUNfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfRE1Y MzE5MUQ9bQorQ09ORklHX1NDU0lfRkRPTUFJTj1tCitDT05GSUdfU0NTSV9GRE9NQUlOX1BDST1t CitDT05GSUdfU0NTSV9JUFM9bQorQ09ORklHX1NDU0lfSU5JVElPPW0KK0NPTkZJR19TQ1NJX0lO SUExMDA9bQorQ09ORklHX1NDU0lfU1RFWD1tCitDT05GSUdfU0NTSV9TWU01M0M4WFhfMj1tCitD T05GSUdfU0NTSV9TWU01M0M4WFhfRE1BX0FERFJFU1NJTkdfTU9ERT0xCitDT05GSUdfU0NTSV9T WU01M0M4WFhfREVGQVVMVF9UQUdTPTE2CitDT05GSUdfU0NTSV9TWU01M0M4WFhfTUFYX1RBR1M9 NjQKK0NPTkZJR19TQ1NJX1NZTTUzQzhYWF9NTUlPPXkKK0NPTkZJR19TQ1NJX0lQUj1tCitDT05G SUdfU0NTSV9JUFJfVFJBQ0U9eQorQ09ORklHX1NDU0lfSVBSX0RVTVA9eQorQ09ORklHX1NDU0lf UUxPR0lDXzEyODA9bQorQ09ORklHX1NDU0lfUUxBX0ZDPW0KK0NPTkZJR19UQ01fUUxBMlhYWD1t CisjIENPTkZJR19UQ01fUUxBMlhYWF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9RTEFf SVNDU0k9bQorQ09ORklHX1FFREk9bQorQ09ORklHX1FFREY9bQorQ09ORklHX1NDU0lfTFBGQz1t CisjIENPTkZJR19TQ1NJX0xQRkNfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfRUZD VD1tCitDT05GSUdfU0NTSV9EQzM5NXg9bQorQ09ORklHX1NDU0lfQU01M0M5NzQ9bQorQ09ORklH X1NDU0lfV0Q3MTlYPW0KK0NPTkZJR19TQ1NJX0RFQlVHPW0KK0NPTkZJR19TQ1NJX1BNQ1JBSUQ9 bQorQ09ORklHX1NDU0lfUE04MDAxPW0KK0NPTkZJR19TQ1NJX0JGQV9GQz1tCitDT05GSUdfU0NT SV9WSVJUSU89bQorQ09ORklHX1NDU0lfQ0hFTFNJT19GQ09FPW0KK0NPTkZJR19TQ1NJX0xPV0xF VkVMX1BDTUNJQT15CitDT05GSUdfUENNQ0lBX0FIQTE1Mlg9bQorQ09ORklHX1BDTUNJQV9GRE9N QUlOPW0KK0NPTkZJR19QQ01DSUFfUUxPR0lDPW0KK0NPTkZJR19QQ01DSUFfU1lNNTNDNTAwPW0K K0NPTkZJR19TQ1NJX0RIPXkKK0NPTkZJR19TQ1NJX0RIX1JEQUM9bQorQ09ORklHX1NDU0lfREhf SFBfU1c9bQorQ09ORklHX1NDU0lfREhfRU1DPW0KK0NPTkZJR19TQ1NJX0RIX0FMVUE9bQorIyBl bmQgb2YgU0NTSSBkZXZpY2Ugc3VwcG9ydAorCitDT05GSUdfQVRBPXkKK0NPTkZJR19TQVRBX0hP U1Q9eQorQ09ORklHX1BBVEFfVElNSU5HUz15CitDT05GSUdfQVRBX1ZFUkJPU0VfRVJST1I9eQor Q09ORklHX0FUQV9GT1JDRT15CitDT05GSUdfU0FUQV9QTVA9eQorCisjCisjIENvbnRyb2xsZXJz IHdpdGggbm9uLVNGRiBuYXRpdmUgaW50ZXJmYWNlCisjCitDT05GSUdfU0FUQV9BSENJPXkKK0NP TkZJR19TQVRBX01PQklMRV9MUE1fUE9MSUNZPTAKK0NPTkZJR19TQVRBX0FIQ0lfUExBVEZPUk09 bQorQ09ORklHX0FIQ0lfRFdDPW0KK0NPTkZJR19BSENJX0NFVkE9bQorQ09ORklHX1NBVEFfSU5J QzE2Mlg9bQorQ09ORklHX1NBVEFfQUNBUkRfQUhDST1tCitDT05GSUdfU0FUQV9TSUwyND1tCitD T05GSUdfQVRBX1NGRj15CisKKyMKKyMgU0ZGIGNvbnRyb2xsZXJzIHdpdGggY3VzdG9tIERNQSBp bnRlcmZhY2UKKyMKK0NPTkZJR19QRENfQURNQT1tCitDT05GSUdfU0FUQV9RU1RPUj1tCitDT05G SUdfU0FUQV9TWDQ9bQorQ09ORklHX0FUQV9CTURNQT15CisKKyMKKyMgU0FUQSBTRkYgY29udHJv bGxlcnMgd2l0aCBCTURNQQorIworQ09ORklHX0FUQV9QSUlYPW0KK0NPTkZJR19TQVRBX0RXQz1t CitDT05GSUdfU0FUQV9EV0NfT0xEX0RNQT15CitDT05GSUdfU0FUQV9NVj1tCitDT05GSUdfU0FU QV9OVj1tCitDT05GSUdfU0FUQV9QUk9NSVNFPW0KK0NPTkZJR19TQVRBX1NJTD1tCitDT05GSUdf U0FUQV9TSVM9bQorQ09ORklHX1NBVEFfU1ZXPW0KK0NPTkZJR19TQVRBX1VMST1tCitDT05GSUdf U0FUQV9WSUE9bQorQ09ORklHX1NBVEFfVklURVNTRT1tCisKKyMKKyMgUEFUQSBTRkYgY29udHJv bGxlcnMgd2l0aCBCTURNQQorIworQ09ORklHX1BBVEFfQUxJPW0KK0NPTkZJR19QQVRBX0FNRD1t CitDT05GSUdfUEFUQV9BUlRPUD1tCitDT05GSUdfUEFUQV9BVElJWFA9bQorQ09ORklHX1BBVEFf QVRQODY3WD1tCitDT05GSUdfUEFUQV9DTUQ2NFg9bQorQ09ORklHX1BBVEFfQ1lQUkVTUz1tCitD T05GSUdfUEFUQV9FRkFSPW0KK0NPTkZJR19QQVRBX0hQVDM2Nj1tCitDT05GSUdfUEFUQV9IUFQz N1g9bQorQ09ORklHX1BBVEFfSFBUM1gyTj1tCitDT05GSUdfUEFUQV9IUFQzWDM9bQorIyBDT05G SUdfUEFUQV9IUFQzWDNfRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX0lUODIxMz1tCitDT05G SUdfUEFUQV9JVDgyMVg9bQorQ09ORklHX1BBVEFfSk1JQ1JPTj1tCitDT05GSUdfUEFUQV9NQVJW RUxMPW0KK0NPTkZJR19QQVRBX05FVENFTEw9bQorQ09ORklHX1BBVEFfTklOSkEzMj1tCitDT05G SUdfUEFUQV9OUzg3NDE1PW0KK0NPTkZJR19QQVRBX09MRFBJSVg9bQorQ09ORklHX1BBVEFfT1BU SURNQT1tCitDT05GSUdfUEFUQV9QREMyMDI3WD1tCitDT05GSUdfUEFUQV9QRENfT0xEPW0KK0NP TkZJR19QQVRBX1JBRElTWVM9bQorQ09ORklHX1BBVEFfUkRDPW0KK0NPTkZJR19QQVRBX1NDSD1t CitDT05GSUdfUEFUQV9TRVJWRVJXT1JLUz1tCitDT05GSUdfUEFUQV9TSUw2ODA9bQorQ09ORklH X1BBVEFfU0lTPW0KK0NPTkZJR19QQVRBX1RPU0hJQkE9bQorQ09ORklHX1BBVEFfVFJJRkxFWD1t CitDT05GSUdfUEFUQV9WSUE9bQorQ09ORklHX1BBVEFfV0lOQk9ORD1tCisKKyMKKyMgUElPLW9u bHkgU0ZGIGNvbnRyb2xsZXJzCisjCitDT05GSUdfUEFUQV9DTUQ2NDBfUENJPW0KK0NPTkZJR19Q QVRBX01QSUlYPW0KK0NPTkZJR19QQVRBX05TODc0MTA9bQorQ09ORklHX1BBVEFfT1BUST1tCitD T05GSUdfUEFUQV9QQ01DSUE9bQorIyBDT05GSUdfUEFUQV9PRl9QTEFURk9STSBpcyBub3Qgc2V0 CitDT05GSUdfUEFUQV9SWjEwMDA9bQorCisjCisjIEdlbmVyaWMgZmFsbGJhY2sgLyBsZWdhY3kg ZHJpdmVycworIworQ09ORklHX0FUQV9HRU5FUklDPW0KKyMgQ09ORklHX1BBVEFfTEVHQUNZIGlz IG5vdCBzZXQKK0NPTkZJR19NRD15CitDT05GSUdfQkxLX0RFVl9NRD1tCitDT05GSUdfTURfTElO RUFSPW0KK0NPTkZJR19NRF9SQUlEMD1tCitDT05GSUdfTURfUkFJRDE9bQorQ09ORklHX01EX1JB SUQxMD1tCitDT05GSUdfTURfUkFJRDQ1Nj1tCitDT05GSUdfTURfTVVMVElQQVRIPW0KK0NPTkZJ R19NRF9GQVVMVFk9bQorQ09ORklHX01EX0NMVVNURVI9bQorQ09ORklHX0JDQUNIRT1tCisjIENP TkZJR19CQ0FDSEVfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQkNBQ0hFX0NMT1NVUkVTX0RF QlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JDQUNIRV9BU1lOQ19SRUdJU1RSQVRJT04gaXMgbm90 IHNldAorQ09ORklHX0JMS19ERVZfRE1fQlVJTFRJTj15CitDT05GSUdfQkxLX0RFVl9ETT1tCisj IENPTkZJR19ETV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRE1fQlVGSU89bQorIyBDT05GSUdf RE1fREVCVUdfQkxPQ0tfTUFOQUdFUl9MT0NLSU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ETV9CSU9f UFJJU09OPW0KK0NPTkZJR19ETV9QRVJTSVNURU5UX0RBVEE9bQorQ09ORklHX0RNX1VOU1RSSVBF RD1tCitDT05GSUdfRE1fQ1JZUFQ9bQorQ09ORklHX0RNX1NOQVBTSE9UPW0KK0NPTkZJR19ETV9U SElOX1BST1ZJU0lPTklORz1tCitDT05GSUdfRE1fQ0FDSEU9bQorQ09ORklHX0RNX0NBQ0hFX1NN UT1tCitDT05GSUdfRE1fV1JJVEVDQUNIRT1tCitDT05GSUdfRE1fRUJTPW0KK0NPTkZJR19ETV9F UkE9bQorQ09ORklHX0RNX0NMT05FPW0KK0NPTkZJR19ETV9NSVJST1I9bQorQ09ORklHX0RNX0xP R19VU0VSU1BBQ0U9bQorQ09ORklHX0RNX1JBSUQ9bQorQ09ORklHX0RNX1pFUk89bQorQ09ORklH X0RNX01VTFRJUEFUSD1tCitDT05GSUdfRE1fTVVMVElQQVRIX1FMPW0KK0NPTkZJR19ETV9NVUxU SVBBVEhfU1Q9bQorQ09ORklHX0RNX01VTFRJUEFUSF9IU1Q9bQorQ09ORklHX0RNX01VTFRJUEFU SF9JT0E9bQorQ09ORklHX0RNX0RFTEFZPW0KK0NPTkZJR19ETV9EVVNUPW0KK0NPTkZJR19ETV9V RVZFTlQ9eQorQ09ORklHX0RNX0ZMQUtFWT1tCitDT05GSUdfRE1fVkVSSVRZPW0KKyMgQ09ORklH X0RNX1ZFUklUWV9WRVJJRllfUk9PVEhBU0hfU0lHIGlzIG5vdCBzZXQKK0NPTkZJR19ETV9WRVJJ VFlfRkVDPXkKK0NPTkZJR19ETV9TV0lUQ0g9bQorQ09ORklHX0RNX0xPR19XUklURVM9bQorQ09O RklHX0RNX0lOVEVHUklUWT1tCitDT05GSUdfRE1fWk9ORUQ9bQorQ09ORklHX0RNX0FVRElUPXkK K0NPTkZJR19UQVJHRVRfQ09SRT1tCitDT05GSUdfVENNX0lCTE9DSz1tCitDT05GSUdfVENNX0ZJ TEVJTz1tCitDT05GSUdfVENNX1BTQ1NJPW0KK0NPTkZJR19UQ01fVVNFUjI9bQorQ09ORklHX0xP T1BCQUNLX1RBUkdFVD1tCitDT05GSUdfVENNX0ZDPW0KK0NPTkZJR19JU0NTSV9UQVJHRVQ9bQor Q09ORklHX0lTQ1NJX1RBUkdFVF9DWEdCND1tCitDT05GSUdfU0JQX1RBUkdFVD1tCitDT05GSUdf UkVNT1RFX1RBUkdFVD1tCitDT05GSUdfRlVTSU9OPXkKK0NPTkZJR19GVVNJT05fU1BJPW0KK0NP TkZJR19GVVNJT05fRkM9bQorQ09ORklHX0ZVU0lPTl9TQVM9bQorQ09ORklHX0ZVU0lPTl9NQVhf U0dFPTEyOAorQ09ORklHX0ZVU0lPTl9DVEw9bQorQ09ORklHX0ZVU0lPTl9MQU49bQorIyBDT05G SUdfRlVTSU9OX0xPR0dJTkcgaXMgbm90IHNldAorCisjCisjIElFRUUgMTM5NCAoRmlyZVdpcmUp IHN1cHBvcnQKKyMKK0NPTkZJR19GSVJFV0lSRT1tCitDT05GSUdfRklSRVdJUkVfT0hDST1tCitD T05GSUdfRklSRVdJUkVfU0JQMj1tCitDT05GSUdfRklSRVdJUkVfTkVUPW0KK0NPTkZJR19GSVJF V0lSRV9OT1NZPW0KKyMgZW5kIG9mIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKKworQ09O RklHX05FVERFVklDRVM9eQorQ09ORklHX01JST1tCitDT05GSUdfTkVUX0NPUkU9eQorQ09ORklH X0JPTkRJTkc9bQorQ09ORklHX0RVTU1ZPW0KK0NPTkZJR19XSVJFR1VBUkQ9bQorIyBDT05GSUdf V0lSRUdVQVJEX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19FUVVBTElaRVI9bQorQ09ORklHX05F VF9GQz15CitDT05GSUdfSUZCPW0KK0NPTkZJR19ORVRfVEVBTT1tCitDT05GSUdfTkVUX1RFQU1f TU9ERV9CUk9BRENBU1Q9bQorQ09ORklHX05FVF9URUFNX01PREVfUk9VTkRST0JJTj1tCitDT05G SUdfTkVUX1RFQU1fTU9ERV9SQU5ET009bQorQ09ORklHX05FVF9URUFNX01PREVfQUNUSVZFQkFD S1VQPW0KK0NPTkZJR19ORVRfVEVBTV9NT0RFX0xPQURCQUxBTkNFPW0KK0NPTkZJR19NQUNWTEFO PW0KK0NPTkZJR19NQUNWVEFQPW0KK0NPTkZJR19JUFZMQU5fTDNTPXkKK0NPTkZJR19JUFZMQU49 bQorQ09ORklHX0lQVlRBUD1tCitDT05GSUdfVlhMQU49bQorQ09ORklHX0dFTkVWRT1tCitDT05G SUdfQkFSRVVEUD1tCitDT05GSUdfR1RQPW0KK0NPTkZJR19BTVQ9bQorQ09ORklHX01BQ1NFQz1t CitDT05GSUdfTkVUQ09OU09MRT1tCitDT05GSUdfTkVUQ09OU09MRV9EWU5BTUlDPXkKK0NPTkZJ R19ORVRQT0xMPXkKK0NPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSPXkKK0NPTkZJR19OVEJfTkVU REVWPW0KK0NPTkZJR19SSU9ORVQ9bQorQ09ORklHX1JJT05FVF9UWF9TSVpFPTEyOAorQ09ORklH X1JJT05FVF9SWF9TSVpFPTEyOAorQ09ORklHX1RVTj1tCitDT05GSUdfVEFQPW0KKyMgQ09ORklH X1RVTl9WTkVUX0NST1NTX0xFIGlzIG5vdCBzZXQKK0NPTkZJR19WRVRIPW0KK0NPTkZJR19WSVJU SU9fTkVUPW0KK0NPTkZJR19OTE1PTj1tCitDT05GSUdfTkVUX1ZSRj1tCitDT05GSUdfVlNPQ0tN T049bQorQ09ORklHX01ISV9ORVQ9bQorQ09ORklHX1NVTkdFTV9QSFk9bQorIyBDT05GSUdfQVJD TkVUIGlzIG5vdCBzZXQKK0NPTkZJR19BVE1fRFJJVkVSUz15CitDT05GSUdfQVRNX0RVTU1ZPW0K K0NPTkZJR19BVE1fVENQPW0KK0NPTkZJR19BVE1fTEFOQUk9bQorQ09ORklHX0FUTV9FTkk9bQor IyBDT05GSUdfQVRNX0VOSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQVRNX0VOSV9UVU5FX0JV UlNUPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNUX1RYXzE2Vz15CitDT05GSUdfQVRNX0VOSV9CVVJT VF9UWF84Vz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9UWF80Vz15CitDT05GSUdfQVRNX0VOSV9C VVJTVF9UWF8yVz15CitDT05GSUdfQVRNX0VOSV9CVVJTVF9SWF8xNlc9eQorQ09ORklHX0FUTV9F TklfQlVSU1RfUlhfOFc9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfUlhfNFc9eQorQ09ORklHX0FU TV9FTklfQlVSU1RfUlhfMlc9eQorQ09ORklHX0FUTV9OSUNTVEFSPW0KK0NPTkZJR19BVE1fTklD U1RBUl9VU0VfU1VOST15CitDT05GSUdfQVRNX05JQ1NUQVJfVVNFX0lEVDc3MTA1PXkKK0NPTkZJ R19BVE1fSURUNzcyNTI9bQorIyBDT05GSUdfQVRNX0lEVDc3MjUyX0RFQlVHIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FUTV9JRFQ3NzI1Ml9SQ1ZfQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19BVE1fSURU NzcyNTJfVVNFX1NVTkk9eQorQ09ORklHX0FUTV9JQT1tCisjIENPTkZJR19BVE1fSUFfREVCVUcg aXMgbm90IHNldAorQ09ORklHX0FUTV9GT1JFMjAwRT1tCitDT05GSUdfQVRNX0ZPUkUyMDBFX1VT RV9UQVNLTEVUPXkKK0NPTkZJR19BVE1fRk9SRTIwMEVfVFhfUkVUUlk9MTYKK0NPTkZJR19BVE1f Rk9SRTIwMEVfREVCVUc9MAorQ09ORklHX0FUTV9IRT1tCitDT05GSUdfQVRNX0hFX1VTRV9TVU5J PXkKK0NPTkZJR19BVE1fU09MT1M9bQorIyBDT05GSUdfQ0FJRl9EUklWRVJTIGlzIG5vdCBzZXQK KworIworIyBEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlIGRyaXZlcnMKKyMKK0NPTkZJ R19CNTM9bQorQ09ORklHX0I1M19TUElfRFJJVkVSPW0KK0NPTkZJR19CNTNfTURJT19EUklWRVI9 bQorQ09ORklHX0I1M19NTUFQX0RSSVZFUj1tCitDT05GSUdfQjUzX1NSQUJfRFJJVkVSPW0KK0NP TkZJR19CNTNfU0VSREVTPW0KK0NPTkZJR19ORVRfRFNBX0JDTV9TRjI9bQorQ09ORklHX05FVF9E U0FfTE9PUD1tCitDT05GSUdfTkVUX0RTQV9ISVJTQ0hNQU5OX0hFTExDUkVFSz1tCitDT05GSUdf TkVUX0RTQV9MQU5USVFfR1NXSVA9bQorQ09ORklHX05FVF9EU0FfTVQ3NTMwPW0KK0NPTkZJR19O RVRfRFNBX01UNzUzMF9NRElPPW0KK0NPTkZJR19ORVRfRFNBX01UNzUzMF9NTUlPPW0KK0NPTkZJ R19ORVRfRFNBX01WODhFNjA2MD1tCitDT05GSUdfTkVUX0RTQV9NSUNST0NISVBfS1NaX0NPTU1P Tj1tCitDT05GSUdfTkVUX0RTQV9NSUNST0NISVBfS1NaOTQ3N19JMkM9bQorIyBDT05GSUdfTkVU X0RTQV9NSUNST0NISVBfS1NaX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0RTQV9NSUNST0NI SVBfS1NaX1BUUD15CitDT05GSUdfTkVUX0RTQV9NSUNST0NISVBfS1NaODg2M19TTUk9bQorQ09O RklHX05FVF9EU0FfTVY4OEU2WFhYPW0KK0NPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFA9eQor Q09ORklHX05FVF9EU0FfTVNDQ19GRUxJWF9EU0FfTElCPW0KK0NPTkZJR19ORVRfRFNBX01TQ0Nf T0NFTE9UX0VYVD1tCitDT05GSUdfTkVUX0RTQV9NU0NDX1NFVklMTEU9bQorIyBDT05GSUdfTkVU X0RTQV9BUjkzMzEgaXMgbm90IHNldAorQ09ORklHX05FVF9EU0FfUUNBOEs9bQorQ09ORklHX05F VF9EU0FfUUNBOEtfTEVEU19TVVBQT1JUPXkKK0NPTkZJR19ORVRfRFNBX1NKQTExMDU9bQorQ09O RklHX05FVF9EU0FfU0pBMTEwNV9QVFA9eQorQ09ORklHX05FVF9EU0FfU0pBMTEwNV9UQVM9eQor Q09ORklHX05FVF9EU0FfU0pBMTEwNV9WTD15CitDT05GSUdfTkVUX0RTQV9YUlM3MDBYPW0KK0NP TkZJR19ORVRfRFNBX1hSUzcwMFhfSTJDPW0KK0NPTkZJR19ORVRfRFNBX1hSUzcwMFhfTURJTz1t CitDT05GSUdfTkVUX0RTQV9SRUFMVEVLPW0KK0NPTkZJR19ORVRfRFNBX1JFQUxURUtfTURJTz1t CitDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1NNST1tCitDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1JU TDgzNjVNQj1tCitDT05GSUdfTkVUX0RTQV9SRUFMVEVLX1JUTDgzNjZSQj1tCitDT05GSUdfTkVU X0RTQV9TTVNDX0xBTjkzMDM9bQorQ09ORklHX05FVF9EU0FfU01TQ19MQU45MzAzX0kyQz1tCitD T05GSUdfTkVUX0RTQV9TTVNDX0xBTjkzMDNfTURJTz1tCitDT05GSUdfTkVUX0RTQV9WSVRFU1NF X1ZTQzczWFg9bQorQ09ORklHX05FVF9EU0FfVklURVNTRV9WU0M3M1hYX1NQST1tCitDT05GSUdf TkVUX0RTQV9WSVRFU1NFX1ZTQzczWFhfUExBVEZPUk09bQorIyBlbmQgb2YgRGlzdHJpYnV0ZWQg U3dpdGNoIEFyY2hpdGVjdHVyZSBkcml2ZXJzCisKK0NPTkZJR19FVEhFUk5FVD15CitDT05GSUdf TURJTz1tCitDT05GSUdfTkVUX1ZFTkRPUl8zQ09NPXkKK0NPTkZJR19QQ01DSUFfM0M1NzQ9bQor Q09ORklHX1BDTUNJQV8zQzU4OT1tCitDT05GSUdfVk9SVEVYPW0KK0NPTkZJR19UWVBIT09OPW0K K0NPTkZJR19ORVRfVkVORE9SX0FEQVBURUM9eQorQ09ORklHX0FEQVBURUNfU1RBUkZJUkU9bQor Q09ORklHX05FVF9WRU5ET1JfQUdFUkU9eQorQ09ORklHX0VUMTMxWD1tCitDT05GSUdfTkVUX1ZF TkRPUl9BTEFDUklURUNIPXkKK0NPTkZJR19TTElDT1NTPW0KK0NPTkZJR19ORVRfVkVORE9SX0FM VEVPTj15CitDT05GSUdfQUNFTklDPW0KKyMgQ09ORklHX0FDRU5JQ19PTUlUX1RJR09OX0kgaXMg bm90IHNldAorIyBDT05GSUdfQUxURVJBX1RTRSBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRP Ul9BTUFaT049eQorQ09ORklHX0VOQV9FVEhFUk5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl9BTUQ9 eQorQ09ORklHX0FNRDgxMTFfRVRIPW0KK0NPTkZJR19QQ05FVDMyPW0KK0NPTkZJR19QQ01DSUFf Tk1DTEFOPW0KK0NPTkZJR19QRFNfQ09SRT1tCitDT05GSUdfTkVUX1ZFTkRPUl9BUVVBTlRJQT15 CitDT05GSUdfQVFUSU9OPW0KK0NPTkZJR19ORVRfVkVORE9SX0FSQz15CitDT05GSUdfTkVUX1ZF TkRPUl9BU0lYPXkKK0NPTkZJR19TUElfQVg4ODc5NkM9bQorIyBDT05GSUdfU1BJX0FYODg3OTZD X0NPTVBSRVNTSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9SX0FUSEVST1M9eQorQ09O RklHX0FUTDI9bQorQ09ORklHX0FUTDE9bQorQ09ORklHX0FUTDFFPW0KK0NPTkZJR19BVEwxQz1t CitDT05GSUdfQUxYPW0KK0NPTkZJR19ORVRfVkVORE9SX0JST0FEQ09NPXkKK0NPTkZJR19CNDQ9 bQorQ09ORklHX0I0NF9QQ0lfQVVUT1NFTEVDVD15CitDT05GSUdfQjQ0X1BDSUNPUkVfQVVUT1NF TEVDVD15CitDT05GSUdfQjQ0X1BDST15CitDT05GSUdfQkNNR0VORVQ9bQorQ09ORklHX0JOWDI9 bQorQ09ORklHX0NOSUM9bQorQ09ORklHX1RJR09OMz1tCitDT05GSUdfVElHT04zX0hXTU9OPXkK K0NPTkZJR19CTlgyWD1tCitDT05GSUdfQk5YMlhfU1JJT1Y9eQorQ09ORklHX1NZU1RFTVBPUlQ9 bQorQ09ORklHX0JOWFQ9bQorQ09ORklHX0JOWFRfU1JJT1Y9eQorQ09ORklHX0JOWFRfRkxPV0VS X09GRkxPQUQ9eQorQ09ORklHX0JOWFRfRENCPXkKK0NPTkZJR19CTlhUX0hXTU9OPXkKK0NPTkZJ R19ORVRfVkVORE9SX0NBREVOQ0U9eQorQ09ORklHX01BQ0I9bQorQ09ORklHX01BQ0JfVVNFX0hX U1RBTVA9eQorQ09ORklHX01BQ0JfUENJPW0KK0NPTkZJR19ORVRfVkVORE9SX0NBVklVTT15CitD T05GSUdfVEhVTkRFUl9OSUNfUEY9bQorQ09ORklHX1RIVU5ERVJfTklDX1ZGPW0KK0NPTkZJR19U SFVOREVSX05JQ19CR1g9bQorQ09ORklHX1RIVU5ERVJfTklDX1JHWD1tCitDT05GSUdfQ0FWSVVN X1BUUD1tCitDT05GSUdfTElRVUlESU89bQorQ09ORklHX0xJUVVJRElPX1ZGPW0KK0NPTkZJR19O RVRfVkVORE9SX0NIRUxTSU89eQorQ09ORklHX0NIRUxTSU9fVDE9bQorQ09ORklHX0NIRUxTSU9f VDFfMUc9eQorQ09ORklHX0NIRUxTSU9fVDM9bQorQ09ORklHX0NIRUxTSU9fVDQ9bQorQ09ORklH X0NIRUxTSU9fVDRfRENCPXkKK0NPTkZJR19DSEVMU0lPX1Q0X0ZDT0U9eQorQ09ORklHX0NIRUxT SU9fVDRWRj1tCitDT05GSUdfQ0hFTFNJT19MSUI9bQorQ09ORklHX0NIRUxTSU9fSU5MSU5FX0NS WVBUTz15CitDT05GSUdfQ0hFTFNJT19JUFNFQ19JTkxJTkU9bQorQ09ORklHX0NIRUxTSU9fVExT X0RFVklDRT1tCitDT05GSUdfTkVUX1ZFTkRPUl9DSVNDTz15CitDT05GSUdfRU5JQz1tCitDT05G SUdfTkVUX1ZFTkRPUl9DT1JUSU5BPXkKK0NPTkZJR19HRU1JTklfRVRIRVJORVQ9bQorQ09ORklH X05FVF9WRU5ET1JfREFWSUNPTT15CitDT05GSUdfRE05MDUxPW0KK0NPTkZJR19ETkVUPW0KK0NP TkZJR19ORVRfVkVORE9SX0RFQz15CitDT05GSUdfTkVUX1RVTElQPXkKK0NPTkZJR19ERTIxMDRY PW0KK0NPTkZJR19ERTIxMDRYX0RTTD0wCitDT05GSUdfVFVMSVA9bQorIyBDT05GSUdfVFVMSVBf TVdJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTElQX01NSU8gaXMgbm90IHNldAorQ09ORklHX1RV TElQX05BUEk9eQorQ09ORklHX1RVTElQX05BUElfSFdfTUlUSUdBVElPTj15CitDT05GSUdfV0lO Qk9ORF84NDA9bQorQ09ORklHX0RNOTEwMj1tCitDT05GSUdfVUxJNTI2WD1tCitDT05GSUdfUENN Q0lBX1hJUkNPTT1tCitDT05GSUdfTkVUX1ZFTkRPUl9ETElOSz15CitDT05GSUdfREwySz1tCitD T05GSUdfU1VOREFOQ0U9bQorIyBDT05GSUdfU1VOREFOQ0VfTU1JTyBpcyBub3Qgc2V0CitDT05G SUdfTkVUX1ZFTkRPUl9FTVVMRVg9eQorQ09ORklHX0JFMk5FVD1tCitDT05GSUdfQkUyTkVUX0hX TU9OPXkKK0NPTkZJR19CRTJORVRfQkUyPXkKK0NPTkZJR19CRTJORVRfQkUzPXkKK0NPTkZJR19C RTJORVRfTEFOQ0VSPXkKK0NPTkZJR19CRTJORVRfU0tZSEFXSz15CitDT05GSUdfTkVUX1ZFTkRP Ul9FTkdMRURFUj15CitDT05GSUdfVFNORVA9bQorIyBDT05GSUdfVFNORVBfU0VMRlRFU1RTIGlz IG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9SX0VaQ0hJUD15CitDT05GSUdfRVpDSElQX05QU19N QU5BR0VNRU5UX0VORVQ9bQorQ09ORklHX05FVF9WRU5ET1JfRlVKSVRTVT15CitDT05GSUdfUENN Q0lBX0ZNVkoxOFg9bQorQ09ORklHX05FVF9WRU5ET1JfRlVOR0lCTEU9eQorQ09ORklHX0ZVTl9D T1JFPW0KK0NPTkZJR19GVU5fRVRIPW0KK0NPTkZJR19ORVRfVkVORE9SX0dPT0dMRT15CitDT05G SUdfTkVUX1ZFTkRPUl9IVUFXRUk9eQorQ09ORklHX05FVF9WRU5ET1JfSTgyNVhYPXkKK0NPTkZJ R19ORVRfVkVORE9SX0lOVEVMPXkKK0NPTkZJR19FMTAwPW0KK0NPTkZJR19FMTAwMD1tCitDT05G SUdfRTEwMDBFPW0KK0NPTkZJR19JR0I9bQorQ09ORklHX0lHQl9IV01PTj15CitDT05GSUdfSUdC VkY9bQorQ09ORklHX0lYR0JFPW0KK0NPTkZJR19JWEdCRV9IV01PTj15CitDT05GSUdfSVhHQkVf RENCPXkKK0NPTkZJR19JWEdCRV9JUFNFQz15CitDT05GSUdfSVhHQkVWRj1tCitDT05GSUdfSVhH QkVWRl9JUFNFQz15CitDT05GSUdfSTQwRT1tCitDT05GSUdfSTQwRV9EQ0I9eQorQ09ORklHX0lB VkY9bQorQ09ORklHX0k0MEVWRj1tCitDT05GSUdfSUNFPW0KK0NPTkZJR19JQ0VfU1dJVENIREVW PXkKK0NPTkZJR19GTTEwSz1tCitDT05GSUdfSUdDPW0KK0NPTkZJR19KTUU9bQorQ09ORklHX05F VF9WRU5ET1JfQURJPXkKK0NPTkZJR19BRElOMTExMD1tCitDT05GSUdfTkVUX1ZFTkRPUl9MSVRF WD15CitDT05GSUdfTElURVhfTElURUVUSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9NQVJWRUxMPXkK K0NPTkZJR19NVk1ESU89bQorQ09ORklHX1NLR0U9bQorIyBDT05GSUdfU0tHRV9ERUJVRyBpcyBu b3Qgc2V0CitDT05GSUdfU0tHRV9HRU5FU0lTPXkKK0NPTkZJR19TS1kyPW0KKyMgQ09ORklHX1NL WTJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfT0NURU9OX0VQIGlzIG5vdCBzZXQKK0NPTkZJ R19QUkVTVEVSQT1tCitDT05GSUdfUFJFU1RFUkFfUENJPW0KK0NPTkZJR19ORVRfVkVORE9SX01F TExBTk9YPXkKK0NPTkZJR19NTFg0X0VOPW0KK0NPTkZJR19NTFg0X0VOX0RDQj15CitDT05GSUdf TUxYNF9DT1JFPW0KK0NPTkZJR19NTFg0X0RFQlVHPXkKK0NPTkZJR19NTFg0X0NPUkVfR0VOMj15 CitDT05GSUdfTUxYNV9DT1JFPW0KK0NPTkZJR19NTFg1X0ZQR0E9eQorQ09ORklHX01MWDVfQ09S RV9FTj15CitDT05GSUdfTUxYNV9FTl9BUkZTPXkKK0NPTkZJR19NTFg1X0VOX1JYTkZDPXkKK0NP TkZJR19NTFg1X01QRlM9eQorQ09ORklHX01MWDVfRVNXSVRDSD15CitDT05GSUdfTUxYNV9CUklE R0U9eQorQ09ORklHX01MWDVfQ0xTX0FDVD15CitDT05GSUdfTUxYNV9UQ19DVD15CitDT05GSUdf TUxYNV9UQ19TQU1QTEU9eQorQ09ORklHX01MWDVfQ09SRV9FTl9EQ0I9eQorQ09ORklHX01MWDVf Q09SRV9JUE9JQj15CisjIENPTkZJR19NTFg1X0VOX01BQ1NFQyBpcyBub3Qgc2V0CitDT05GSUdf TUxYNV9FTl9JUFNFQz15CitDT05GSUdfTUxYNV9FTl9UTFM9eQorQ09ORklHX01MWDVfU1dfU1RF RVJJTkc9eQorQ09ORklHX01MWDVfU0Y9eQorQ09ORklHX01MWDVfU0ZfTUFOQUdFUj15CitDT05G SUdfTUxYU1dfQ09SRT1tCitDT05GSUdfTUxYU1dfQ09SRV9IV01PTj15CitDT05GSUdfTUxYU1df Q09SRV9USEVSTUFMPXkKK0NPTkZJR19NTFhTV19QQ0k9bQorQ09ORklHX01MWFNXX0kyQz1tCitD T05GSUdfTUxYU1dfU1BFQ1RSVU09bQorQ09ORklHX01MWFNXX1NQRUNUUlVNX0RDQj15CitDT05G SUdfTUxYU1dfTUlOSU1BTD1tCitDT05GSUdfTUxYRlc9bQorQ09ORklHX05FVF9WRU5ET1JfTUlD UkVMPXkKK0NPTkZJR19LUzg4NDI9bQorQ09ORklHX0tTODg1MT1tCitDT05GSUdfS1M4ODUxX01M TD1tCitDT05GSUdfS1NaODg0WF9QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfTUlDUk9DSElQPXkK K0NPTkZJR19FTkMyOEo2MD1tCisjIENPTkZJR19FTkMyOEo2MF9XUklURVZFUklGWSBpcyBub3Qg c2V0CitDT05GSUdfRU5DWDI0SjYwMD1tCitDT05GSUdfTEFONzQzWD1tCitDT05GSUdfTEFOOTY2 WF9TV0lUQ0g9bQorQ09ORklHX1ZDQVA9eQorQ09ORklHX05FVF9WRU5ET1JfTUlDUk9TRU1JPXkK K0NPTkZJR19NU0NDX09DRUxPVF9TV0lUQ0hfTElCPW0KK0NPTkZJR19NU0NDX09DRUxPVF9TV0lU Q0g9bQorQ09ORklHX05FVF9WRU5ET1JfTUlDUk9TT0ZUPXkKK0NPTkZJR19ORVRfVkVORE9SX01Z Ukk9eQorQ09ORklHX01ZUkkxMEdFPW0KK0NPTkZJR19GRUFMTlg9bQorQ09ORklHX05FVF9WRU5E T1JfTkk9eQorQ09ORklHX05JX1hHRV9NQU5BR0VNRU5UX0VORVQ9bQorQ09ORklHX05FVF9WRU5E T1JfTkFUU0VNST15CitDT05GSUdfTkFUU0VNST1tCitDT05GSUdfTlM4MzgyMD1tCitDT05GSUdf TkVUX1ZFTkRPUl9ORVRFUklPTj15CitDT05GSUdfUzJJTz1tCitDT05GSUdfTkVUX1ZFTkRPUl9O RVRST05PTUU9eQorQ09ORklHX05GUD1tCitDT05GSUdfTkZQX0FQUF9GTE9XRVI9eQorQ09ORklH X05GUF9BUFBfQUJNX05JQz15CitDT05GSUdfTkZQX05FVF9JUFNFQz15CisjIENPTkZJR19ORlBf REVCVUcgaXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfODM5MD15CitDT05GSUdfUENNQ0lB X0FYTkVUPW0KK0NPTkZJR19ORTJLX1BDST1tCitDT05GSUdfUENNQ0lBX1BDTkVUPW0KK0NPTkZJ R19ORVRfVkVORE9SX05WSURJQT15CitDT05GSUdfRk9SQ0VERVRIPW0KK0NPTkZJR19ORVRfVkVO RE9SX09LST15CitDT05GSUdfRVRIT0M9bQorQ09ORklHX05FVF9WRU5ET1JfUEFDS0VUX0VOR0lO RVM9eQorQ09ORklHX0hBTUFDSEk9bQorQ09ORklHX1lFTExPV0ZJTj1tCitDT05GSUdfTkVUX1ZF TkRPUl9QRU5TQU5ETz15CitDT05GSUdfSU9OSUM9bQorQ09ORklHX05FVF9WRU5ET1JfUUxPR0lD PXkKK0NPTkZJR19RTEEzWFhYPW0KK0NPTkZJR19RTENOSUM9bQorQ09ORklHX1FMQ05JQ19TUklP Vj15CitDT05GSUdfUUxDTklDX0RDQj15CitDT05GSUdfUUxDTklDX0hXTU9OPXkKK0NPTkZJR19O RVRYRU5fTklDPW0KK0NPTkZJR19RRUQ9bQorQ09ORklHX1FFRF9MTDI9eQorQ09ORklHX1FFRF9T UklPVj15CitDT05GSUdfUUVERT1tCitDT05GSUdfUUVEX1JETUE9eQorQ09ORklHX1FFRF9JU0NT ST15CitDT05GSUdfUUVEX0ZDT0U9eQorQ09ORklHX1FFRF9PT089eQorQ09ORklHX05FVF9WRU5E T1JfQlJPQ0FERT15CitDT05GSUdfQk5BPW0KK0NPTkZJR19ORVRfVkVORE9SX1FVQUxDT01NPXkK K0NPTkZJR19RQ0E3MDAwPW0KK0NPTkZJR19RQ0E3MDAwX1NQST1tCitDT05GSUdfUUNBNzAwMF9V QVJUPW0KK0NPTkZJR19RQ09NX0VNQUM9bQorQ09ORklHX1JNTkVUPW0KK0NPTkZJR19ORVRfVkVO RE9SX1JEQz15CitDT05GSUdfUjYwNDA9bQorQ09ORklHX05FVF9WRU5ET1JfUkVBTFRFSz15CitD T05GSUdfODEzOUNQPW0KK0NPTkZJR184MTM5VE9PPW0KKyMgQ09ORklHXzgxMzlUT09fUElPIGlz IG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKK0NPTkZJ R184MTM5VE9PXzgxMjk9eQorIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMgbm90IHNldAor Q09ORklHX1I4MTY5PW0KK0NPTkZJR19ORVRfVkVORE9SX1JFTkVTQVM9eQorQ09ORklHX05FVF9W RU5ET1JfUk9DS0VSPXkKK0NPTkZJR19ST0NLRVI9bQorQ09ORklHX05FVF9WRU5ET1JfU0FNU1VO Rz15CitDT05GSUdfU1hHQkVfRVRIPW0KK0NPTkZJR19ORVRfVkVORE9SX1NFRVE9eQorQ09ORklH X05FVF9WRU5ET1JfU0lMQU49eQorQ09ORklHX1NDOTIwMzE9bQorQ09ORklHX05FVF9WRU5ET1Jf U0lTPXkKK0NPTkZJR19TSVM5MDA9bQorQ09ORklHX1NJUzE5MD1tCitDT05GSUdfTkVUX1ZFTkRP Ul9TT0xBUkZMQVJFPXkKK0NPTkZJR19TRkM9bQorQ09ORklHX1NGQ19NVEQ9eQorQ09ORklHX1NG Q19NQ0RJX01PTj15CitDT05GSUdfU0ZDX1NSSU9WPXkKK0NPTkZJR19TRkNfTUNESV9MT0dHSU5H PXkKK0NPTkZJR19TRkNfRkFMQ09OPW0KK0NPTkZJR19TRkNfRkFMQ09OX01URD15CisjIENPTkZJ R19TRkNfU0lFTkEgaXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfU01TQz15CitDT05GSUdf UENNQ0lBX1NNQzkxQzkyPW0KK0NPTkZJR19FUElDMTAwPW0KK0NPTkZJR19TTVNDOTExWD1tCitD T05GSUdfU01TQzk0MjA9bQorQ09ORklHX05FVF9WRU5ET1JfU09DSU9ORVhUPXkKK0NPTkZJR19O RVRfVkVORE9SX1NUTUlDUk89eQorQ09ORklHX1NUTU1BQ19FVEg9bQorIyBDT05GSUdfU1RNTUFD X1NFTEZURVNUUyBpcyBub3Qgc2V0CitDT05GSUdfU1RNTUFDX1BMQVRGT1JNPW0KK0NPTkZJR19E V01BQ19EV0NfUU9TX0VUSD1tCitDT05GSUdfRFdNQUNfR0VORVJJQz1tCitDT05GSUdfRFdNQUNf U1RBUkZJVkU9bQorQ09ORklHX0RXTUFDX0lOVEVMX1BMQVQ9bQorQ09ORklHX0RXTUFDX0xPT05H U09OPW0KK0NPTkZJR19TVE1NQUNfUENJPW0KK0NPTkZJR19ORVRfVkVORE9SX1NVTj15CitDT05G SUdfSEFQUFlNRUFMPW0KK0NPTkZJR19TVU5HRU09bQorQ09ORklHX0NBU1NJTkk9bQorQ09ORklH X05JVT1tCitDT05GSUdfTkVUX1ZFTkRPUl9TWU5PUFNZUz15CitDT05GSUdfRFdDX1hMR01BQz1t CitDT05GSUdfRFdDX1hMR01BQ19QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfVEVIVVRJPXkKK0NP TkZJR19URUhVVEk9bQorQ09ORklHX05FVF9WRU5ET1JfVEk9eQorIyBDT05GSUdfVElfQ1BTV19Q SFlfU0VMIGlzIG5vdCBzZXQKK0NPTkZJR19UTEFOPW0KK0NPTkZJR19ORVRfVkVORE9SX1ZFUlRF WENPTT15CitDT05GSUdfTVNFMTAyWD1tCitDT05GSUdfTkVUX1ZFTkRPUl9WSUE9eQorQ09ORklH X1ZJQV9SSElORT1tCitDT05GSUdfVklBX1JISU5FX01NSU89eQorQ09ORklHX1ZJQV9WRUxPQ0lU WT1tCitDT05GSUdfTkVUX1ZFTkRPUl9XQU5HWFVOPXkKK0NPTkZJR19MSUJXWD1tCitDT05GSUdf TkdCRT1tCisjIENPTkZJR19UWEdCRSBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9XSVpO RVQ9eQorQ09ORklHX1dJWk5FVF9XNTEwMD1tCitDT05GSUdfV0laTkVUX1c1MzAwPW0KKyMgQ09O RklHX1dJWk5FVF9CVVNfRElSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJWk5FVF9CVVNfSU5E SVJFQ1QgaXMgbm90IHNldAorQ09ORklHX1dJWk5FVF9CVVNfQU5ZPXkKK0NPTkZJR19XSVpORVRf VzUxMDBfU1BJPW0KK0NPTkZJR19ORVRfVkVORE9SX1hJTElOWD15CitDT05GSUdfWElMSU5YX0VN QUNMSVRFPW0KK0NPTkZJR19YSUxJTlhfQVhJX0VNQUM9bQorQ09ORklHX1hJTElOWF9MTF9URU1B Qz1tCitDT05GSUdfTkVUX1ZFTkRPUl9YSVJDT009eQorQ09ORklHX1BDTUNJQV9YSVJDMlBTPW0K K0NPTkZJR19GRERJPW0KK0NPTkZJR19ERUZYWD1tCitDT05GSUdfU0tGUD1tCitDT05GSUdfSElQ UEk9eQorQ09ORklHX1JPQURSVU5ORVI9bQorIyBDT05GSUdfUk9BRFJVTk5FUl9MQVJHRV9SSU5H UyBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElOSz1tCitDT05GSUdfUEhZTElCPXkKK0NPTkZJR19T V1BIWT15CitDT05GSUdfTEVEX1RSSUdHRVJfUEhZPXkKK0NPTkZJR19QSFlMSUJfTEVEUz15CitD T05GSUdfRklYRURfUEhZPXkKK0NPTkZJR19TRlA9bQorCisjCisjIE1JSSBQSFkgZGV2aWNlIGRy aXZlcnMKKyMKK0NPTkZJR19BTURfUEhZPW0KK0NPTkZJR19BRElOX1BIWT1tCisjIENPTkZJR19B RElOMTEwMF9QSFkgaXMgbm90IHNldAorQ09ORklHX0FRVUFOVElBX1BIWT1tCitDT05GSUdfQVg4 ODc5NkJfUEhZPW0KK0NPTkZJR19CUk9BRENPTV9QSFk9bQorQ09ORklHX0JDTTU0MTQwX1BIWT1t CitDT05GSUdfQkNNN1hYWF9QSFk9bQorQ09ORklHX0JDTTg0ODgxX1BIWT15CitDT05GSUdfQkNN ODdYWF9QSFk9bQorQ09ORklHX0JDTV9ORVRfUEhZTElCPW0KK0NPTkZJR19DSUNBREFfUEhZPW0K K0NPTkZJR19DT1JUSU5BX1BIWT1tCitDT05GSUdfREFWSUNPTV9QSFk9bQorQ09ORklHX0lDUExV U19QSFk9bQorQ09ORklHX0xYVF9QSFk9bQorQ09ORklHX0lOVEVMX1hXQVlfUEhZPW0KK0NPTkZJ R19MU0lfRVQxMDExQ19QSFk9bQorQ09ORklHX01BUlZFTExfUEhZPW0KK0NPTkZJR19NQVJWRUxM XzEwR19QSFk9bQorQ09ORklHX01BUlZFTExfODhYMjIyMl9QSFk9bQorQ09ORklHX01BWExJTkVB Ul9HUEhZPW0KK0NPTkZJR19NRURJQVRFS19HRV9QSFk9bQorQ09ORklHX01JQ1JFTF9QSFk9bQor Q09ORklHX01JQ1JPQ0hJUF9UMVNfUEhZPW0KK0NPTkZJR19NSUNST0NISVBfUEhZPW0KK0NPTkZJ R19NSUNST0NISVBfVDFfUEhZPW0KK0NPTkZJR19NSUNST1NFTUlfUEhZPW0KK0NPTkZJR19NT1RP UkNPTU1fUEhZPW0KK0NPTkZJR19OQVRJT05BTF9QSFk9bQorQ09ORklHX05YUF9DQlRYX1BIWT1t CitDT05GSUdfTlhQX0M0NV9USkExMVhYX1BIWT1tCitDT05GSUdfTlhQX1RKQTExWFhfUEhZPW0K K0NPTkZJR19OQ04yNjAwMF9QSFk9bQorQ09ORklHX0FUODAzWF9QSFk9bQorQ09ORklHX1FTRU1J X1BIWT1tCitDT05GSUdfUkVBTFRFS19QSFk9bQorQ09ORklHX1JFTkVTQVNfUEhZPW0KK0NPTkZJ R19ST0NLQ0hJUF9QSFk9bQorQ09ORklHX1NNU0NfUEhZPW0KK0NPTkZJR19TVEUxMFhQPW0KK0NP TkZJR19URVJBTkVUSUNTX1BIWT1tCitDT05GSUdfRFA4MzgyMl9QSFk9bQorQ09ORklHX0RQODNU QzgxMV9QSFk9bQorQ09ORklHX0RQODM4NDhfUEhZPW0KK0NPTkZJR19EUDgzODY3X1BIWT1tCitD T05GSUdfRFA4Mzg2OV9QSFk9bQorIyBDT05GSUdfRFA4M1RENTEwX1BIWSBpcyBub3Qgc2V0CitD T05GSUdfVklURVNTRV9QSFk9bQorQ09ORklHX1hJTElOWF9HTUlJMlJHTUlJPW0KK0NPTkZJR19N SUNSRUxfS1M4OTk1TUE9bQorIyBDT05GSUdfUFNFX0NPTlRST0xMRVIgaXMgbm90IHNldAorQ09O RklHX0NBTl9ERVY9bQorQ09ORklHX0NBTl9WQ0FOPW0KK0NPTkZJR19DQU5fVlhDQU49bQorQ09O RklHX0NBTl9ORVRMSU5LPXkKK0NPTkZJR19DQU5fQ0FMQ19CSVRUSU1JTkc9eQorQ09ORklHX0NB Tl9SWF9PRkZMT0FEPXkKKyMgQ09ORklHX0NBTl9DQU4zMjcgaXMgbm90IHNldAorQ09ORklHX0NB Tl9GTEVYQ0FOPW0KKyMgQ09ORklHX0NBTl9HUkNBTiBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0tW QVNFUl9QQ0lFRkQ9bQorQ09ORklHX0NBTl9TTENBTj1tCitDT05GSUdfQ0FOX0NfQ0FOPW0KKyMg Q09ORklHX0NBTl9DX0NBTl9QTEFURk9STSBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX0NfQ0FOX1BD ST1tCisjIENPTkZJR19DQU5fQ0M3NzAgaXMgbm90IHNldAorIyBDT05GSUdfQ0FOX0NUVUNBTkZE X1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19DQU5fQ1RVQ0FORkRfUExBVEZPUk0gaXMgbm90IHNl dAorQ09ORklHX0NBTl9JRklfQ0FORkQ9bQorQ09ORklHX0NBTl9NX0NBTj1tCitDT05GSUdfQ0FO X01fQ0FOX1BDST1tCitDT05GSUdfQ0FOX01fQ0FOX1BMQVRGT1JNPW0KK0NPTkZJR19DQU5fTV9D QU5fVENBTjRYNVg9bQorQ09ORklHX0NBTl9QRUFLX1BDSUVGRD1tCitDT05GSUdfQ0FOX1NKQTEw MDA9bQorQ09ORklHX0NBTl9FTVNfUENJPW0KK0NPTkZJR19DQU5fRU1TX1BDTUNJQT1tCitDT05G SUdfQ0FOX0Y4MTYwMT1tCitDT05GSUdfQ0FOX0tWQVNFUl9QQ0k9bQorQ09ORklHX0NBTl9QRUFL X1BDST1tCitDT05GSUdfQ0FOX1BFQUtfUENJRUM9eQorQ09ORklHX0NBTl9QRUFLX1BDTUNJQT1t CitDT05GSUdfQ0FOX1BMWF9QQ0k9bQorIyBDT05GSUdfQ0FOX1NKQTEwMDBfSVNBIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NBTl9TSkExMDAwX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5f U09GVElORz1tCitDT05GSUdfQ0FOX1NPRlRJTkdfQ1M9bQorCisjCisjIENBTiBTUEkgaW50ZXJm YWNlcworIworQ09ORklHX0NBTl9ISTMxMVg9bQorIyBDT05GSUdfQ0FOX01DUDI1MVggaXMgbm90 IHNldAorIyBDT05GSUdfQ0FOX01DUDI1MVhGRCBpcyBub3Qgc2V0CisjIGVuZCBvZiBDQU4gU1BJ IGludGVyZmFjZXMKKworIworIyBDQU4gVVNCIGludGVyZmFjZXMKKyMKK0NPTkZJR19DQU5fOERF Vl9VU0I9bQorQ09ORklHX0NBTl9FTVNfVVNCPW0KKyMgQ09ORklHX0NBTl9FU0RfVVNCIGlzIG5v dCBzZXQKK0NPTkZJR19DQU5fRVRBU19FUzU4WD1tCitDT05GSUdfQ0FOX0dTX1VTQj1tCitDT05G SUdfQ0FOX0tWQVNFUl9VU0I9bQorQ09ORklHX0NBTl9NQ0JBX1VTQj1tCitDT05GSUdfQ0FOX1BF QUtfVVNCPW0KK0NPTkZJR19DQU5fVUNBTj1tCisjIGVuZCBvZiBDQU4gVVNCIGludGVyZmFjZXMK KworIyBDT05GSUdfQ0FOX0RFQlVHX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1DVFAgRGV2 aWNlIERyaXZlcnMKKyMKK0NPTkZJR19NQ1RQX1NFUklBTD1tCitDT05GSUdfTUNUUF9UUkFOU1BP UlRfSTJDPW0KKyMgZW5kIG9mIE1DVFAgRGV2aWNlIERyaXZlcnMKKworQ09ORklHX01ESU9fREVW SUNFPXkKK0NPTkZJR19NRElPX0JVUz15CitDT05GSUdfRldOT0RFX01ESU89eQorQ09ORklHX09G X01ESU89eQorQ09ORklHX01ESU9fREVWUkVTPXkKK0NPTkZJR19NRElPX0JJVEJBTkc9bQorQ09O RklHX01ESU9fQkNNX1VOSU1BQz1tCitDT05GSUdfTURJT19DQVZJVU09bQorQ09ORklHX01ESU9f R1BJTz1tCitDT05GSUdfTURJT19ISVNJX0ZFTUFDPW0KK0NPTkZJR19NRElPX0kyQz1tCitDT05G SUdfTURJT19NVlVTQj1tCitDT05GSUdfTURJT19NU0NDX01JSU09bQorQ09ORklHX01ESU9fT0NU RU9OPW0KK0NPTkZJR19NRElPX0lQUTQwMTk9bQorQ09ORklHX01ESU9fSVBRODA2ND1tCitDT05G SUdfTURJT19USFVOREVSPW0KKworIworIyBNRElPIE11bHRpcGxleGVycworIworQ09ORklHX01E SU9fQlVTX01VWD1tCitDT05GSUdfTURJT19CVVNfTVVYX0dQSU89bQorQ09ORklHX01ESU9fQlVT X01VWF9NVUxUSVBMRVhFUj1tCitDT05GSUdfTURJT19CVVNfTVVYX01NSU9SRUc9bQorCisjCisj IFBDUyBkZXZpY2UgZHJpdmVycworIworQ09ORklHX1BDU19YUENTPW0KK0NPTkZJR19QQ1NfTFlO WD1tCitDT05GSUdfUENTX01US19MWU5YST1tCisjIGVuZCBvZiBQQ1MgZGV2aWNlIGRyaXZlcnMK KworQ09ORklHX1BMSVA9bQorQ09ORklHX1BQUD1tCitDT05GSUdfUFBQX0JTRENPTVA9bQorQ09O RklHX1BQUF9ERUZMQVRFPW0KK0NPTkZJR19QUFBfRklMVEVSPXkKK0NPTkZJR19QUFBfTVBQRT1t CitDT05GSUdfUFBQX01VTFRJTElOSz15CitDT05GSUdfUFBQT0FUTT1tCitDT05GSUdfUFBQT0U9 bQorQ09ORklHX1BQVFA9bQorQ09ORklHX1BQUE9MMlRQPW0KK0NPTkZJR19QUFBfQVNZTkM9bQor Q09ORklHX1BQUF9TWU5DX1RUWT1tCitDT05GSUdfU0xJUD1tCitDT05GSUdfU0xIQz1tCitDT05G SUdfU0xJUF9DT01QUkVTU0VEPXkKK0NPTkZJR19TTElQX1NNQVJUPXkKK0NPTkZJR19TTElQX01P REVfU0xJUDY9eQorCisjCisjIEhvc3Qtc2lkZSBVU0Igc3VwcG9ydCBpcyBuZWVkZWQgZm9yIFVT QiBOZXR3b3JrIEFkYXB0ZXIgc3VwcG9ydAorIworQ09ORklHX1VTQl9ORVRfRFJJVkVSUz1tCitD T05GSUdfVVNCX0NBVEM9bQorQ09ORklHX1VTQl9LQVdFVEg9bQorQ09ORklHX1VTQl9QRUdBU1VT PW0KK0NPTkZJR19VU0JfUlRMODE1MD1tCitDT05GSUdfVVNCX1JUTDgxNTI9bQorQ09ORklHX1VT Ql9MQU43OFhYPW0KK0NPTkZJR19VU0JfVVNCTkVUPW0KK0NPTkZJR19VU0JfTkVUX0FYODgxN1g9 bQorQ09ORklHX1VTQl9ORVRfQVg4ODE3OV8xNzhBPW0KK0NPTkZJR19VU0JfTkVUX0NEQ0VUSEVS PW0KK0NPTkZJR19VU0JfTkVUX0NEQ19FRU09bQorQ09ORklHX1VTQl9ORVRfQ0RDX05DTT1tCitD T05GSUdfVVNCX05FVF9IVUFXRUlfQ0RDX05DTT1tCitDT05GSUdfVVNCX05FVF9DRENfTUJJTT1t CitDT05GSUdfVVNCX05FVF9ETTk2MDE9bQorQ09ORklHX1VTQl9ORVRfU1I5NzAwPW0KK0NPTkZJ R19VU0JfTkVUX1NSOTgwMD1tCitDT05GSUdfVVNCX05FVF9TTVNDNzVYWD1tCitDT05GSUdfVVNC X05FVF9TTVNDOTVYWD1tCitDT05GSUdfVVNCX05FVF9HTDYyMEE9bQorQ09ORklHX1VTQl9ORVRf TkVUMTA4MD1tCitDT05GSUdfVVNCX05FVF9QTFVTQj1tCitDT05GSUdfVVNCX05FVF9NQ1M3ODMw PW0KK0NPTkZJR19VU0JfTkVUX1JORElTX0hPU1Q9bQorQ09ORklHX1VTQl9ORVRfQ0RDX1NVQlNF VF9FTkFCTEU9bQorQ09ORklHX1VTQl9ORVRfQ0RDX1NVQlNFVD1tCitDT05GSUdfVVNCX0FMSV9N NTYzMj15CitDT05GSUdfVVNCX0FOMjcyMD15CitDT05GSUdfVVNCX0JFTEtJTj15CitDT05GSUdf VVNCX0FSTUxJTlVYPXkKK0NPTkZJR19VU0JfRVBTT04yODg4PXkKK0NPTkZJR19VU0JfS0MyMTkw PXkKK0NPTkZJR19VU0JfTkVUX1pBVVJVUz1tCitDT05GSUdfVVNCX05FVF9DWDgyMzEwX0VUSD1t CitDT05GSUdfVVNCX05FVF9LQUxNSUE9bQorQ09ORklHX1VTQl9ORVRfUU1JX1dXQU49bQorQ09O RklHX1VTQl9IU089bQorQ09ORklHX1VTQl9ORVRfSU5UNTFYMT1tCitDT05GSUdfVVNCX0NEQ19Q SE9ORVQ9bQorQ09ORklHX1VTQl9JUEhFVEg9bQorQ09ORklHX1VTQl9TSUVSUkFfTkVUPW0KK0NP TkZJR19VU0JfVkw2MDA9bQorQ09ORklHX1VTQl9ORVRfQ0g5MjAwPW0KK0NPTkZJR19VU0JfTkVU X0FRQzExMT1tCitDT05GSUdfVVNCX1JUTDgxNTNfRUNNPW0KK0NPTkZJR19XTEFOPXkKK0NPTkZJ R19XTEFOX1ZFTkRPUl9BRE1URUs9eQorQ09ORklHX0FETTgyMTE9bQorQ09ORklHX0FUSF9DT01N T049bQorQ09ORklHX1dMQU5fVkVORE9SX0FUSD15CisjIENPTkZJR19BVEhfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX0FUSDVLPW0KKyMgQ09ORklHX0FUSDVLX0RFQlVHIGlzIG5vdCBzZXQKKyMg Q09ORklHX0FUSDVLX1RSQUNFUiBpcyBub3Qgc2V0CitDT05GSUdfQVRINUtfUENJPXkKK0NPTkZJ R19BVEg5S19IVz1tCitDT05GSUdfQVRIOUtfQ09NTU9OPW0KK0NPTkZJR19BVEg5S19CVENPRVhf U1VQUE9SVD15CitDT05GSUdfQVRIOUs9bQorQ09ORklHX0FUSDlLX1BDST15CisjIENPTkZJR19B VEg5S19BSEIgaXMgbm90IHNldAorIyBDT05GSUdfQVRIOUtfREVCVUdGUyBpcyBub3Qgc2V0Cisj IENPTkZJR19BVEg5S19EWU5BQ0sgaXMgbm90IHNldAorQ09ORklHX0FUSDlLX1dPVz15CitDT05G SUdfQVRIOUtfUkZLSUxMPXkKK0NPTkZJR19BVEg5S19DSEFOTkVMX0NPTlRFWFQ9eQorQ09ORklH X0FUSDlLX1BDT0VNPXkKK0NPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NPW0KK0NPTkZJR19BVEg5 S19IVEM9bQorIyBDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0FU SDlLX0hXUk5HPXkKK0NPTkZJR19DQVJMOTE3MD1tCitDT05GSUdfQ0FSTDkxNzBfTEVEUz15Cisj IENPTkZJR19DQVJMOTE3MF9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19DQVJMOTE3MF9XUEM9 eQorQ09ORklHX0NBUkw5MTcwX0hXUk5HPXkKK0NPTkZJR19BVEg2S0w9bQorQ09ORklHX0FUSDZL TF9TRElPPW0KK0NPTkZJR19BVEg2S0xfVVNCPW0KKyMgQ09ORklHX0FUSDZLTF9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19BVEg2S0xfVFJBQ0lORyBpcyBub3Qgc2V0CitDT05GSUdfQVI1NTIz PW0KK0NPTkZJR19XSUw2MjEwPW0KK0NPTkZJR19XSUw2MjEwX0lTUl9DT1I9eQorQ09ORklHX1dJ TDYyMTBfVFJBQ0lORz15CisjIENPTkZJR19XSUw2MjEwX0RFQlVHRlMgaXMgbm90IHNldAorQ09O RklHX0FUSDEwSz1tCitDT05GSUdfQVRIMTBLX0NFPXkKK0NPTkZJR19BVEgxMEtfUENJPW0KK0NP TkZJR19BVEgxMEtfQUhCPXkKK0NPTkZJR19BVEgxMEtfU0RJTz1tCitDT05GSUdfQVRIMTBLX1VT Qj1tCisjIENPTkZJR19BVEgxMEtfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQVRIMTBLX0RF QlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVRIMTBLX1RSQUNJTkcgaXMgbm90IHNldAorQ09O RklHX1dDTjM2WFg9bQorIyBDT05GSUdfV0NOMzZYWF9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJ R19BVEgxMUs9bQorQ09ORklHX0FUSDExS19BSEI9bQorQ09ORklHX0FUSDExS19QQ0k9bQorIyBD T05GSUdfQVRIMTFLX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BVEgxMUtfREVCVUdGUz15Cisj IENPTkZJR19BVEgxMUtfVFJBQ0lORyBpcyBub3Qgc2V0CitDT05GSUdfQVRIMTFLX1NQRUNUUkFM PXkKK0NPTkZJR19BVEgxMks9bQorQ09ORklHX0FUSDEyS19ERUJVRz15CitDT05GSUdfQVRIMTJL X1RSQUNJTkc9eQorQ09ORklHX1dMQU5fVkVORE9SX0FUTUVMPXkKK0NPTkZJR19BVE1FTD1tCitD T05GSUdfUENJX0FUTUVMPW0KK0NPTkZJR19QQ01DSUFfQVRNRUw9bQorQ09ORklHX0FUNzZDNTBY X1VTQj1tCitDT05GSUdfV0xBTl9WRU5ET1JfQlJPQURDT009eQorQ09ORklHX0I0Mz1tCitDT05G SUdfQjQzX0JDTUE9eQorQ09ORklHX0I0M19TU0I9eQorQ09ORklHX0I0M19CVVNFU19CQ01BX0FO RF9TU0I9eQorIyBDT05GSUdfQjQzX0JVU0VTX0JDTUEgaXMgbm90IHNldAorIyBDT05GSUdfQjQz X0JVU0VTX1NTQiBpcyBub3Qgc2V0CitDT05GSUdfQjQzX1BDSV9BVVRPU0VMRUNUPXkKK0NPTkZJ R19CNDNfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNfU0RJTz15CitDT05GSUdfQjQz X0JDTUFfUElPPXkKK0NPTkZJR19CNDNfUElPPXkKK0NPTkZJR19CNDNfUEhZX0c9eQorQ09ORklH X0I0M19QSFlfTj15CitDT05GSUdfQjQzX1BIWV9MUD15CitDT05GSUdfQjQzX1BIWV9IVD15CitD T05GSUdfQjQzX0xFRFM9eQorQ09ORklHX0I0M19IV1JORz15CisjIENPTkZJR19CNDNfREVCVUcg aXMgbm90IHNldAorQ09ORklHX0I0M0xFR0FDWT1tCitDT05GSUdfQjQzTEVHQUNZX1BDSV9BVVRP U0VMRUNUPXkKK0NPTkZJR19CNDNMRUdBQ1lfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19C NDNMRUdBQ1lfTEVEUz15CitDT05GSUdfQjQzTEVHQUNZX0hXUk5HPXkKKyMgQ09ORklHX0I0M0xF R0FDWV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQjQzTEVHQUNZX0RNQT15CitDT05GSUdfQjQz TEVHQUNZX1BJTz15CitDT05GSUdfQjQzTEVHQUNZX0RNQV9BTkRfUElPX01PREU9eQorIyBDT05G SUdfQjQzTEVHQUNZX0RNQV9NT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M0xFR0FDWV9QSU9f TU9ERSBpcyBub3Qgc2V0CitDT05GSUdfQlJDTVVUSUw9bQorQ09ORklHX0JSQ01TTUFDPW0KK0NP TkZJR19CUkNNU01BQ19MRURTPXkKK0NPTkZJR19CUkNNRk1BQz1tCitDT05GSUdfQlJDTUZNQUNf UFJPVE9fQkNEQz15CitDT05GSUdfQlJDTUZNQUNfUFJPVE9fTVNHQlVGPXkKK0NPTkZJR19CUkNN Rk1BQ19TRElPPXkKK0NPTkZJR19CUkNNRk1BQ19VU0I9eQorQ09ORklHX0JSQ01GTUFDX1BDSUU9 eQorIyBDT05GSUdfQlJDTV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSQ01EQkcgaXMg bm90IHNldAorQ09ORklHX1dMQU5fVkVORE9SX0NJU0NPPXkKK0NPTkZJR19BSVJPPW0KK0NPTkZJ R19BSVJPX0NTPW0KK0NPTkZJR19XTEFOX1ZFTkRPUl9JTlRFTD15CitDT05GSUdfSVBXMjEwMD1t CitDT05GSUdfSVBXMjEwMF9NT05JVE9SPXkKK0NPTkZJR19JUFcyMTAwX0RFQlVHPXkKK0NPTkZJ R19JUFcyMjAwPW0KK0NPTkZJR19JUFcyMjAwX01PTklUT1I9eQorQ09ORklHX0lQVzIyMDBfUkFE SU9UQVA9eQorQ09ORklHX0lQVzIyMDBfUFJPTUlTQ1VPVVM9eQorQ09ORklHX0lQVzIyMDBfUU9T PXkKK0NPTkZJR19JUFcyMjAwX0RFQlVHPXkKK0NPTkZJR19MSUJJUFc9bQorQ09ORklHX0xJQklQ V19ERUJVRz15CitDT05GSUdfSVdMRUdBQ1k9bQorQ09ORklHX0lXTDQ5NjU9bQorQ09ORklHX0lX TDM5NDU9bQorCisjCisjIGl3bDM5NDUgLyBpd2w0OTY1IERlYnVnZ2luZyBPcHRpb25zCisjCisj IENPTkZJR19JV0xFR0FDWV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xFR0FDWV9ERUJV R0ZTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIGl3bDM5NDUgLyBpd2w0OTY1IERlYnVnZ2luZyBPcHRp b25zCisKK0NPTkZJR19JV0xXSUZJPW0KK0NPTkZJR19JV0xXSUZJX0xFRFM9eQorQ09ORklHX0lX TERWTT1tCitDT05GSUdfSVdMTVZNPW0KK0NPTkZJR19JV0xXSUZJX09QTU9ERV9NT0RVTEFSPXkK KworIworIyBEZWJ1Z2dpbmcgT3B0aW9ucworIworQ09ORklHX0lXTFdJRklfREVCVUc9eQorQ09O RklHX0lXTFdJRklfREVCVUdGUz15CisjIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGlz IG5vdCBzZXQKKyMgZW5kIG9mIERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJR19XTEFOX1ZFTkRP Ul9JTlRFUlNJTD15CitDT05GSUdfSE9TVEFQPW0KK0NPTkZJR19IT1NUQVBfRklSTVdBUkU9eQor Q09ORklHX0hPU1RBUF9GSVJNV0FSRV9OVlJBTT15CitDT05GSUdfSE9TVEFQX1BMWD1tCitDT05G SUdfSE9TVEFQX1BDST1tCitDT05GSUdfSE9TVEFQX0NTPW0KK0NPTkZJR19IRVJNRVM9bQorQ09O RklHX0hFUk1FU19QUklTTT15CitDT05GSUdfSEVSTUVTX0NBQ0hFX0ZXX09OX0lOSVQ9eQorQ09O RklHX1BMWF9IRVJNRVM9bQorQ09ORklHX1RNRF9IRVJNRVM9bQorQ09ORklHX05PUlRFTF9IRVJN RVM9bQorQ09ORklHX1BDSV9IRVJNRVM9bQorQ09ORklHX1BDTUNJQV9IRVJNRVM9bQorQ09ORklH X1BDTUNJQV9TUEVDVFJVTT1tCitDT05GSUdfT1JJTk9DT19VU0I9bQorQ09ORklHX1A1NF9DT01N T049bQorQ09ORklHX1A1NF9VU0I9bQorQ09ORklHX1A1NF9QQ0k9bQorIyBDT05GSUdfUDU0X1NQ SSBpcyBub3Qgc2V0CitDT05GSUdfUDU0X0xFRFM9eQorQ09ORklHX1dMQU5fVkVORE9SX01BUlZF TEw9eQorQ09ORklHX0xJQkVSVEFTPW0KK0NPTkZJR19MSUJFUlRBU19VU0I9bQorQ09ORklHX0xJ QkVSVEFTX0NTPW0KK0NPTkZJR19MSUJFUlRBU19TRElPPW0KKyMgQ09ORklHX0xJQkVSVEFTX1NQ SSBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJFUlRBU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdf TElCRVJUQVNfTUVTSD15CitDT05GSUdfTElCRVJUQVNfVEhJTkZJUk09bQorIyBDT05GSUdfTElC RVJUQVNfVEhJTkZJUk1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTX1RISU5GSVJN X1VTQj1tCitDT05GSUdfTVdJRklFWD1tCitDT05GSUdfTVdJRklFWF9TRElPPW0KK0NPTkZJR19N V0lGSUVYX1BDSUU9bQorQ09ORklHX01XSUZJRVhfVVNCPW0KK0NPTkZJR19NV0w4Sz1tCitDT05G SUdfV0xBTl9WRU5ET1JfTUVESUFURUs9eQorQ09ORklHX01UNzYwMVU9bQorQ09ORklHX01UNzZf Q09SRT1tCitDT05GSUdfTVQ3Nl9MRURTPXkKK0NPTkZJR19NVDc2X1VTQj1tCitDT05GSUdfTVQ3 Nl9TRElPPW0KK0NPTkZJR19NVDc2eDAyX0xJQj1tCitDT05GSUdfTVQ3NngwMl9VU0I9bQorQ09O RklHX01UNzZfQ09OTkFDX0xJQj1tCitDT05GSUdfTVQ3NngwX0NPTU1PTj1tCitDT05GSUdfTVQ3 NngwVT1tCitDT05GSUdfTVQ3NngwRT1tCitDT05GSUdfTVQ3NngyX0NPTU1PTj1tCitDT05GSUdf TVQ3NngyRT1tCitDT05GSUdfTVQ3NngyVT1tCitDT05GSUdfTVQ3NjAzRT1tCitDT05GSUdfTVQ3 NjE1X0NPTU1PTj1tCitDT05GSUdfTVQ3NjE1RT1tCitDT05GSUdfTVQ3NjYzX1VTQl9TRElPX0NP TU1PTj1tCitDT05GSUdfTVQ3NjYzVT1tCitDT05GSUdfTVQ3NjYzUz1tCitDT05GSUdfTVQ3OTE1 RT1tCitDT05GSUdfTVQ3OTIxX0NPTU1PTj1tCitDT05GSUdfTVQ3OTIxRT1tCitDT05GSUdfTVQ3 OTIxUz1tCitDT05GSUdfTVQ3OTIxVT1tCitDT05GSUdfTVQ3OTk2RT1tCitDT05GSUdfV0xBTl9W RU5ET1JfTUlDUk9DSElQPXkKKyMgQ09ORklHX1dJTEMxMDAwX1NESU8gaXMgbm90IHNldAorIyBD T05GSUdfV0lMQzEwMDBfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9QVVJFTElG ST15CisjIENPTkZJR19QTEZYTEMgaXMgbm90IHNldAorQ09ORklHX1dMQU5fVkVORE9SX1JBTElO Sz15CitDT05GSUdfUlQyWDAwPW0KK0NPTkZJR19SVDI0MDBQQ0k9bQorQ09ORklHX1JUMjUwMFBD ST1tCitDT05GSUdfUlQ2MVBDST1tCitDT05GSUdfUlQyODAwUENJPW0KK0NPTkZJR19SVDI4MDBQ Q0lfUlQzM1hYPXkKK0NPTkZJR19SVDI4MDBQQ0lfUlQzNVhYPXkKK0NPTkZJR19SVDI4MDBQQ0lf UlQ1M1hYPXkKK0NPTkZJR19SVDI4MDBQQ0lfUlQzMjkwPXkKK0NPTkZJR19SVDI1MDBVU0I9bQor Q09ORklHX1JUNzNVU0I9bQorQ09ORklHX1JUMjgwMFVTQj1tCitDT05GSUdfUlQyODAwVVNCX1JU MzNYWD15CitDT05GSUdfUlQyODAwVVNCX1JUMzVYWD15CitDT05GSUdfUlQyODAwVVNCX1JUMzU3 Mz15CitDT05GSUdfUlQyODAwVVNCX1JUNTNYWD15CitDT05GSUdfUlQyODAwVVNCX1JUNTVYWD15 CitDT05GSUdfUlQyODAwVVNCX1VOS05PV049eQorQ09ORklHX1JUMjgwMF9MSUI9bQorQ09ORklH X1JUMjgwMF9MSUJfTU1JTz1tCitDT05GSUdfUlQyWDAwX0xJQl9NTUlPPW0KK0NPTkZJR19SVDJY MDBfTElCX1BDST1tCitDT05GSUdfUlQyWDAwX0xJQl9VU0I9bQorQ09ORklHX1JUMlgwMF9MSUI9 bQorQ09ORklHX1JUMlgwMF9MSUJfRklSTVdBUkU9eQorQ09ORklHX1JUMlgwMF9MSUJfQ1JZUFRP PXkKK0NPTkZJR19SVDJYMDBfTElCX0xFRFM9eQorIyBDT05GSUdfUlQyWDAwX0xJQl9ERUJVR0ZT IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUMlgwMF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfV0xB Tl9WRU5ET1JfUkVBTFRFSz15CitDT05GSUdfUlRMODE4MD1tCitDT05GSUdfUlRMODE4Nz1tCitD T05GSUdfUlRMODE4N19MRURTPXkKK0NPTkZJR19SVExfQ0FSRFM9bQorQ09ORklHX1JUTDgxOTJD RT1tCitDT05GSUdfUlRMODE5MlNFPW0KK0NPTkZJR19SVEw4MTkyREU9bQorQ09ORklHX1JUTDg3 MjNBRT1tCitDT05GSUdfUlRMODcyM0JFPW0KK0NPTkZJR19SVEw4MTg4RUU9bQorQ09ORklHX1JU TDgxOTJFRT1tCitDT05GSUdfUlRMODgyMUFFPW0KK0NPTkZJR19SVEw4MTkyQ1U9bQorQ09ORklH X1JUTFdJRkk9bQorQ09ORklHX1JUTFdJRklfUENJPW0KK0NPTkZJR19SVExXSUZJX1VTQj1tCitD T05GSUdfUlRMV0lGSV9ERUJVRz15CitDT05GSUdfUlRMODE5MkNfQ09NTU9OPW0KK0NPTkZJR19S VEw4NzIzX0NPTU1PTj1tCitDT05GSUdfUlRMQlRDT0VYSVNUPW0KK0NPTkZJR19SVEw4WFhYVT1t CitDT05GSUdfUlRMOFhYWFVfVU5URVNURUQ9eQorQ09ORklHX1JUVzg4PW0KK0NPTkZJR19SVFc4 OF9DT1JFPW0KK0NPTkZJR19SVFc4OF9QQ0k9bQorQ09ORklHX1JUVzg4X1NESU89bQorQ09ORklH X1JUVzg4X1VTQj1tCitDT05GSUdfUlRXODhfODgyMkI9bQorQ09ORklHX1JUVzg4Xzg4MjJDPW0K K0NPTkZJR19SVFc4OF84NzIzRD1tCitDT05GSUdfUlRXODhfODgyMUM9bQorQ09ORklHX1JUVzg4 Xzg4MjJCRT1tCitDT05GSUdfUlRXODhfODgyMkJTPW0KK0NPTkZJR19SVFc4OF84ODIyQlU9bQor Q09ORklHX1JUVzg4Xzg4MjJDRT1tCitDT05GSUdfUlRXODhfODgyMkNTPW0KK0NPTkZJR19SVFc4 OF84ODIyQ1U9bQorQ09ORklHX1JUVzg4Xzg3MjNERT1tCitDT05GSUdfUlRXODhfODcyM0RVPW0K K0NPTkZJR19SVFc4OF84ODIxQ0U9bQorQ09ORklHX1JUVzg4Xzg4MjFDUz1tCitDT05GSUdfUlRX ODhfODgyMUNVPW0KKyMgQ09ORklHX1JUVzg4X0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JU Vzg4X0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX1JUVzg5PW0KK0NPTkZJR19SVFc4OV9DT1JF PW0KK0NPTkZJR19SVFc4OV9QQ0k9bQorQ09ORklHX1JUVzg5Xzg4NTJBPW0KK0NPTkZJR19SVFc4 OV84ODUyQj1tCitDT05GSUdfUlRXODlfODg1MkM9bQorQ09ORklHX1JUVzg5Xzg4NTJBRT1tCitD T05GSUdfUlRXODlfODg1MkJFPW0KK0NPTkZJR19SVFc4OV84ODUyQ0U9bQorIyBDT05GSUdfUlRX ODlfREVCVUdNU0cgaXMgbm90IHNldAorIyBDT05GSUdfUlRXODlfREVCVUdGUyBpcyBub3Qgc2V0 CitDT05GSUdfV0xBTl9WRU5ET1JfUlNJPXkKK0NPTkZJR19SU0lfOTFYPW0KKyMgQ09ORklHX1JT SV9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19SU0lfU0RJTz1tCitDT05GSUdfUlNJX1VTQj1t CitDT05GSUdfUlNJX0NPRVg9eQorQ09ORklHX1dMQU5fVkVORE9SX1NJTEFCUz15CitDT05GSUdf V0ZYPW0KK0NPTkZJR19XTEFOX1ZFTkRPUl9TVD15CitDT05GSUdfQ1cxMjAwPW0KK0NPTkZJR19D VzEyMDBfV0xBTl9TRElPPW0KKyMgQ09ORklHX0NXMTIwMF9XTEFOX1NQSSBpcyBub3Qgc2V0CitD T05GSUdfV0xBTl9WRU5ET1JfVEk9eQorQ09ORklHX1dMMTI1MT1tCisjIENPTkZJR19XTDEyNTFf U1BJIGlzIG5vdCBzZXQKK0NPTkZJR19XTDEyNTFfU0RJTz1tCitDT05GSUdfV0wxMlhYPW0KK0NP TkZJR19XTDE4WFg9bQorQ09ORklHX1dMQ09SRT1tCisjIENPTkZJR19XTENPUkVfU1BJIGlzIG5v dCBzZXQKK0NPTkZJR19XTENPUkVfU0RJTz1tCitDT05GSUdfV0xBTl9WRU5ET1JfWllEQVM9eQor Q09ORklHX1VTQl9aRDEyMDE9bQorQ09ORklHX1pEMTIxMVJXPW0KKyMgQ09ORklHX1pEMTIxMVJX X0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9RVUFOVEVOTkE9eQorQ09ORklH X1FUTkZNQUM9bQorQ09ORklHX1FUTkZNQUNfUENJRT1tCitDT05GSUdfUENNQ0lBX1JBWUNTPW0K K0NPTkZJR19QQ01DSUFfV0wzNTAxPW0KK0NPTkZJR19VU0JfTkVUX1JORElTX1dMQU49bQorQ09O RklHX01BQzgwMjExX0hXU0lNPW0KK0NPTkZJR19WSVJUX1dJRkk9bQorIyBDT05GSUdfV0FOIGlz IG5vdCBzZXQKK0NPTkZJR19JRUVFODAyMTU0X0RSSVZFUlM9bQorQ09ORklHX0lFRUU4MDIxNTRf RkFLRUxCPW0KKyMgQ09ORklHX0lFRUU4MDIxNTRfQVQ4NlJGMjMwIGlzIG5vdCBzZXQKKyMgQ09O RklHX0lFRUU4MDIxNTRfTVJGMjRKNDAgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjE1NF9D QzI1MjAgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjE1NF9BVFVTQiBpcyBub3Qgc2V0CitD T05GSUdfSUVFRTgwMjE1NF9BREY3MjQyPW0KK0NPTkZJR19JRUVFODAyMTU0X0NBODIxMD1tCitD T05GSUdfSUVFRTgwMjE1NF9DQTgyMTBfREVCVUdGUz15CitDT05GSUdfSUVFRTgwMjE1NF9NQ1Iy MEE9bQorQ09ORklHX0lFRUU4MDIxNTRfSFdTSU09bQorCisjCisjIFdpcmVsZXNzIFdBTgorIwor Q09ORklHX1dXQU49eQorQ09ORklHX1dXQU5fREVCVUdGUz15CitDT05GSUdfV1dBTl9IV1NJTT1t CitDT05GSUdfTUhJX1dXQU5fQ1RSTD1tCitDT05GSUdfTUhJX1dXQU5fTUJJTT1tCitDT05GSUdf UlBNU0dfV1dBTl9DVFJMPW0KKyMgQ09ORklHX0lPU00gaXMgbm90IHNldAorQ09ORklHX01US19U N1hYPW0KKyMgZW5kIG9mIFdpcmVsZXNzIFdBTgorCitDT05GSUdfVk1YTkVUMz1tCitDT05GSUdf VVNCNF9ORVQ9bQorQ09ORklHX05FVERFVlNJTT1tCitDT05GSUdfTkVUX0ZBSUxPVkVSPW0KKyMg Q09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitD T05GSUdfSU5QVVQ9eQorQ09ORklHX0lOUFVUX0xFRFM9eQorQ09ORklHX0lOUFVUX0ZGX01FTUxF U1M9bQorQ09ORklHX0lOUFVUX1NQQVJTRUtNQVA9bQorQ09ORklHX0lOUFVUX01BVFJJWEtNQVA9 bQorQ09ORklHX0lOUFVUX1ZJVkFMRElGTUFQPXkKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2Vz CisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVY PXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9V U0VERVZfU0NSRUVOX1k9NzY4CitDT05GSUdfSU5QVVRfSk9ZREVWPW0KK0NPTkZJR19JTlBVVF9F VkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2 aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FS RF9BREMgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0FEUDU1ODg9bQorQ09ORklHX0tFWUJP QVJEX0FEUDU1ODk9bQorQ09ORklHX0tFWUJPQVJEX0FUS0JEPXkKK0NPTkZJR19LRVlCT0FSRF9R VDEwNTA9bQorQ09ORklHX0tFWUJPQVJEX1FUMTA3MD1tCitDT05GSUdfS0VZQk9BUkRfUVQyMTYw PW0KK0NPTkZJR19LRVlCT0FSRF9ETElOS19ESVI2ODU9bQorIyBDT05GSUdfS0VZQk9BUkRfTEtL QkQgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0dQSU89bQorQ09ORklHX0tFWUJPQVJEX0dQ SU9fUE9MTEVEPW0KK0NPTkZJR19LRVlCT0FSRF9UQ0E2NDE2PW0KK0NPTkZJR19LRVlCT0FSRF9U Q0E4NDE4PW0KK0NPTkZJR19LRVlCT0FSRF9NQVRSSVg9bQorQ09ORklHX0tFWUJPQVJEX0xNODMy Mz1tCitDT05GSUdfS0VZQk9BUkRfTE04MzMzPW0KK0NPTkZJR19LRVlCT0FSRF9NQVg3MzU5PW0K K0NPTkZJR19LRVlCT0FSRF9NQ1M9bQorQ09ORklHX0tFWUJPQVJEX01QUjEyMT1tCitDT05GSUdf S0VZQk9BUkRfTkVXVE9OPW0KK0NPTkZJR19LRVlCT0FSRF9PUEVOQ09SRVM9bQorQ09ORklHX0tF WUJPQVJEX1BJTkVQSE9ORT1tCisjIENPTkZJR19LRVlCT0FSRF9TQU1TVU5HIGlzIG5vdCBzZXQK K0NPTkZJR19LRVlCT0FSRF9HT0xERklTSF9FVkVOVFM9eQorIyBDT05GSUdfS0VZQk9BUkRfU1RP V0FXQVkgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX1NVTktCRD1tCitDT05GSUdfS0VZQk9B UkRfSVFTNjJYPW0KKyMgQ09ORklHX0tFWUJPQVJEX09NQVA0IGlzIG5vdCBzZXQKK0NPTkZJR19L RVlCT0FSRF9UTTJfVE9VQ0hLRVk9bQorQ09ORklHX0tFWUJPQVJEX1hUS0JEPW0KK0NPTkZJR19L RVlCT0FSRF9DQVAxMVhYPW0KKyMgQ09ORklHX0tFWUJPQVJEX0JDTSBpcyBub3Qgc2V0CitDT05G SUdfS0VZQk9BUkRfQ1lQUkVTU19TRj1tCitDT05GSUdfSU5QVVRfTU9VU0U9eQorQ09ORklHX01P VVNFX1BTMj15CitDT05GSUdfTU9VU0VfUFMyX0FMUFM9eQorQ09ORklHX01PVVNFX1BTMl9CWUQ9 eQorQ09ORklHX01PVVNFX1BTMl9MT0dJUFMyUFA9eQorQ09ORklHX01PVVNFX1BTMl9TWU5BUFRJ Q1M9eQorQ09ORklHX01PVVNFX1BTMl9TWU5BUFRJQ1NfU01CVVM9eQorQ09ORklHX01PVVNFX1BT Ml9DWVBSRVNTPXkKK0NPTkZJR19NT1VTRV9QUzJfVFJBQ0tQT0lOVD15CitDT05GSUdfTU9VU0Vf UFMyX0VMQU5URUNIPXkKK0NPTkZJR19NT1VTRV9QUzJfRUxBTlRFQ0hfU01CVVM9eQorQ09ORklH X01PVVNFX1BTMl9TRU5URUxJQz15CitDT05GSUdfTU9VU0VfUFMyX1RPVUNIS0lUPXkKK0NPTkZJ R19NT1VTRV9QUzJfRk9DQUxURUNIPXkKK0NPTkZJR19NT1VTRV9QUzJfU01CVVM9eQorQ09ORklH X01PVVNFX1NFUklBTD1tCitDT05GSUdfTU9VU0VfQVBQTEVUT1VDSD1tCitDT05GSUdfTU9VU0Vf QkNNNTk3ND1tCitDT05GSUdfTU9VU0VfQ1lBUEE9bQorQ09ORklHX01PVVNFX0VMQU5fSTJDPW0K K0NPTkZJR19NT1VTRV9FTEFOX0kyQ19JMkM9eQorQ09ORklHX01PVVNFX0VMQU5fSTJDX1NNQlVT PXkKK0NPTkZJR19NT1VTRV9WU1hYWEFBPW0KK0NPTkZJR19NT1VTRV9HUElPPW0KK0NPTkZJR19N T1VTRV9TWU5BUFRJQ1NfSTJDPW0KK0NPTkZJR19NT1VTRV9TWU5BUFRJQ1NfVVNCPW0KK0NPTkZJ R19JTlBVVF9KT1lTVElDSz15CitDT05GSUdfSk9ZU1RJQ0tfQU5BTE9HPW0KK0NPTkZJR19KT1lT VElDS19BM0Q9bQorQ09ORklHX0pPWVNUSUNLX0FEQz1tCitDT05GSUdfSk9ZU1RJQ0tfQURJPW0K K0NPTkZJR19KT1lTVElDS19DT0JSQT1tCitDT05GSUdfSk9ZU1RJQ0tfR0YySz1tCitDT05GSUdf Sk9ZU1RJQ0tfR1JJUD1tCitDT05GSUdfSk9ZU1RJQ0tfR1JJUF9NUD1tCitDT05GSUdfSk9ZU1RJ Q0tfR1VJTExFTU9UPW0KK0NPTkZJR19KT1lTVElDS19JTlRFUkFDVD1tCitDT05GSUdfSk9ZU1RJ Q0tfU0lERVdJTkRFUj1tCitDT05GSUdfSk9ZU1RJQ0tfVE1EQz1tCitDT05GSUdfSk9ZU1RJQ0tf SUZPUkNFPW0KK0NPTkZJR19KT1lTVElDS19JRk9SQ0VfVVNCPW0KK0NPTkZJR19KT1lTVElDS19J Rk9SQ0VfMjMyPW0KK0NPTkZJR19KT1lTVElDS19XQVJSSU9SPW0KK0NPTkZJR19KT1lTVElDS19N QUdFTExBTj1tCitDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VPUkI9bQorQ09ORklHX0pPWVNUSUNLX1NQ QUNFQkFMTD1tCitDT05GSUdfSk9ZU1RJQ0tfU1RJTkdFUj1tCitDT05GSUdfSk9ZU1RJQ0tfVFdJ REpPWT1tCitDT05GSUdfSk9ZU1RJQ0tfWkhFTkhVQT1tCitDT05GSUdfSk9ZU1RJQ0tfREI5PW0K K0NPTkZJR19KT1lTVElDS19HQU1FQ09OPW0KK0NPTkZJR19KT1lTVElDS19UVVJCT0dSQUZYPW0K K0NPTkZJR19KT1lTVElDS19BUzUwMTE9bQorQ09ORklHX0pPWVNUSUNLX0pPWURVTVA9bQorQ09O RklHX0pPWVNUSUNLX1hQQUQ9bQorQ09ORklHX0pPWVNUSUNLX1hQQURfRkY9eQorQ09ORklHX0pP WVNUSUNLX1hQQURfTEVEUz15CitDT05GSUdfSk9ZU1RJQ0tfV0FMS0VSQTA3MDE9bQorQ09ORklH X0pPWVNUSUNLX1BTWFBBRF9TUEk9bQorQ09ORklHX0pPWVNUSUNLX1BTWFBBRF9TUElfRkY9eQor Q09ORklHX0pPWVNUSUNLX1BYUkM9bQorQ09ORklHX0pPWVNUSUNLX1FXSUlDPW0KK0NPTkZJR19K T1lTVElDS19GU0lBNkI9bQorIyBDT05GSUdfSk9ZU1RJQ0tfU0VOU0VIQVQgaXMgbm90IHNldAor Q09ORklHX0lOUFVUX1RBQkxFVD15CitDT05GSUdfVEFCTEVUX1VTQl9BQ0VDQUQ9bQorQ09ORklH X1RBQkxFVF9VU0JfQUlQVEVLPW0KK0NPTkZJR19UQUJMRVRfVVNCX0hBTldBTkc9bQorQ09ORklH X1RBQkxFVF9VU0JfS0JUQUI9bQorQ09ORklHX1RBQkxFVF9VU0JfUEVHQVNVUz1tCitDT05GSUdf VEFCTEVUX1NFUklBTF9XQUNPTTQ9bQorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKK0NPTkZJ R19UT1VDSFNDUkVFTl9BRFM3ODQ2PW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX0FENzg3NyBpcyBu b3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fQUQ3ODc5PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9B RDc4NzlfSTJDPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX0FENzg3OV9TUEkgaXMgbm90IHNldAor Q09ORklHX1RPVUNIU0NSRUVOX0FEQz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQVIxMDIxX0kyQz1t CitDT05GSUdfVE9VQ0hTQ1JFRU5fQVRNRUxfTVhUPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9BVE1F TF9NWFRfVDM3PXkKK0NPTkZJR19UT1VDSFNDUkVFTl9BVU9fUElYQ0lSPW0KK0NPTkZJR19UT1VD SFNDUkVFTl9CVTIxMDEzPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9CVTIxMDI5PW0KK0NPTkZJR19U T1VDSFNDUkVFTl9DSElQT05FX0lDTjgzMTg9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NZOENUTUEx NDA9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NZOENUTUcxMTA9bQorQ09ORklHX1RPVUNIU0NSRUVO X0NZVFRTUF9DT1JFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1BfSTJDPW0KKyMgQ09ORklH X1RPVUNIU0NSRUVOX0NZVFRTUF9TUEkgaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX0NZ VFRTUDRfQ09SRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lUVFNQNF9JMkM9bQorIyBDT05GSUdf VE9VQ0hTQ1JFRU5fQ1lUVFNQNF9TUEkgaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX0NZ VFRTUDU9bQorQ09ORklHX1RPVUNIU0NSRUVOX0RZTkFQUk89bQorQ09ORklHX1RPVUNIU0NSRUVO X0hBTVBTSElSRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRUVUST1tCisjIENPTkZJR19UT1VDSFND UkVFTl9FR0FMQVggaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX0VHQUxBWF9TRVJJQUw9 bQorQ09ORklHX1RPVUNIU0NSRUVOX0VYQzMwMDA9bQorQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklU U1U9bQorQ09ORklHX1RPVUNIU0NSRUVOX0dPT0RJWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSElE RUVQPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9IWUNPTl9IWTQ2WFg9bQorQ09ORklHX1RPVUNIU0NS RUVOX0hZTklUUk9OX0NTVFhYWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSUxJMjEwWD1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fSUxJVEVLPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TNlNZNzYxPW0KK0NP TkZJR19UT1VDSFNDUkVFTl9HVU5aRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fRUtURjIxMjc9bQor Q09ORklHX1RPVUNIU0NSRUVOX0VMQU49bQorQ09ORklHX1RPVUNIU0NSRUVOX0VMTz1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fV0FDT01fVzgwMDE9bQorQ09ORklHX1RPVUNIU0NSRUVOX1dBQ09NX0ky Qz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTUFYMTE4MDE9bQorQ09ORklHX1RPVUNIU0NSRUVOX01D UzUwMDA9bQorQ09ORklHX1RPVUNIU0NSRUVOX01NUzExND1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f TUVMRkFTX01JUDQ9bQorQ09ORklHX1RPVUNIU0NSRUVOX01TRzI2Mzg9bQorQ09ORklHX1RPVUNI U0NSRUVOX01UT1VDSD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fTk9WQVRFS19OVlRfVFM9bQorQ09O RklHX1RPVUNIU0NSRUVOX0lNQUdJUz1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9JTVg2VUxfVFND IGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9JTkVYSU89bQorQ09ORklHX1RPVUNIU0NS RUVOX01LNzEyPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVD1tCitDT05GSUdfVE9VQ0hT Q1JFRU5fRURUX0ZUNVgwNj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hSSUdIVD1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU49bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVElfQU0zMzVY X1RTQyBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fUElYQ0lSPW0KK0NPTkZJR19UT1VD SFNDUkVFTl9XRFQ4N1hYX0kyQz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV005N1hYPW0KK0NPTkZJ R19UT1VDSFNDUkVFTl9XTTk3MDU9eQorQ09ORklHX1RPVUNIU0NSRUVOX1dNOTcxMj15CitDT05G SUdfVE9VQ0hTQ1JFRU5fV005NzEzPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRF PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfRUdBTEFYPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9V U0JfUEFOSklUPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfM009eQorQ09ORklHX1RPVUNIU0NS RUVOX1VTQl9JVE09eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9FVFVSQk89eQorQ09ORklHX1RP VUNIU0NSRUVOX1VTQl9HVU5aRT15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0RNQ19UU0MxMD15 CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0lSVE9VQ0g9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VT Ql9JREVBTFRFSz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0dFTkVSQUxfVE9VQ0g9eQorQ09O RklHX1RPVUNIU0NSRUVOX1VTQl9HT1RPUD15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0pBU1RF Qz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VMTz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNC X0UyST15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX1pZVFJPTklDPXkKK0NPTkZJR19UT1VDSFND UkVFTl9VU0JfRVRUX1RDNDVVU0I9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9ORVhJTz15CitD T05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VBU1lUT1VDSD15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVE9V Q0hJVDIxMz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDX1NFUklPPW0KK0NPTkZJR19UT1VDSFND UkVFTl9UU0MyMDBYX0NPUkU9bQorQ09ORklHX1RPVUNIU0NSRUVOX1RTQzIwMDQ9bQorIyBDT05G SUdfVE9VQ0hTQ1JFRU5fVFNDMjAwNSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fVFND MjAwNz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwN19JSU89eQorQ09ORklHX1RPVUNIU0NS RUVOX1JNX1RTPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TSUxFQUQ9bQorQ09ORklHX1RPVUNIU0NS RUVOX1NJU19JMkM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NUMTIzMj1tCitDT05GSUdfVE9VQ0hT Q1JFRU5fU1RNRlRTPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TVVI0MD1tCisjIENPTkZJR19UT1VD SFNDUkVFTl9TVVJGQUNFM19TUEkgaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX1NYODY1 ND1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFBTNjUwN1g9bQorQ09ORklHX1RPVUNIU0NSRUVOX1pF VDYyMjM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1pGT1JDRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f Q09MSUJSSV9WRjUwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9ST0hNX0JVMjEwMjM9bQorQ09ORklH X1RPVUNIU0NSRUVOX0lRUzVYWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWklOSVRJWD1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fSElNQVhfSFg4MzExMkI9bQorQ09ORklHX0lOUFVUX01JU0M9eQorQ09O RklHX0lOUFVUX0FENzE0WD1tCitDT05GSUdfSU5QVVRfQUQ3MTRYX0kyQz1tCisjIENPTkZJR19J TlBVVF9BRDcxNFhfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9BVEMyNjBYX09OS0VZPW0K K0NPTkZJR19JTlBVVF9BVE1FTF9DQVBUT1VDSD1tCitDT05GSUdfSU5QVVRfQk1BMTUwPW0KKyMg Q09ORklHX0lOUFVUX0UzWDBfQlVUVE9OIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NQVg3NzY1 MF9PTktFWT1tCitDT05GSUdfSU5QVVRfTU1BODQ1MD1tCisjIENPTkZJR19JTlBVVF9HUElPX0JF RVBFUiBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfR1BJT19ERUNPREVSPW0KK0NPTkZJR19JTlBV VF9HUElPX1ZJQlJBPW0KK0NPTkZJR19JTlBVVF9DUENBUF9QV1JCVVRUT049bQorQ09ORklHX0lO UFVUX0FUSV9SRU1PVEUyPW0KK0NPTkZJR19JTlBVVF9LRVlTUEFOX1JFTU9URT1tCitDT05GSUdf SU5QVVRfS1hUSjk9bQorQ09ORklHX0lOUFVUX1BPV0VSTUFURT1tCitDT05GSUdfSU5QVVRfWUVB TElOSz1tCitDT05GSUdfSU5QVVRfQ00xMDk9bQorQ09ORklHX0lOUFVUX1JFR1VMQVRPUl9IQVBU SUM9bQorQ09ORklHX0lOUFVUX1RQUzY1MjE5X1BXUkJVVFRPTj1tCitDT05GSUdfSU5QVVRfQVhQ MjBYX1BFSz1tCitDT05GSUdfSU5QVVRfVUlOUFVUPW0KK0NPTkZJR19JTlBVVF9QQ0Y4NTc0PW0K K0NPTkZJR19JTlBVVF9QV01fQkVFUEVSPW0KK0NPTkZJR19JTlBVVF9QV01fVklCUkE9bQorQ09O RklHX0lOUFVUX1JLODA1X1BXUktFWT1tCitDT05GSUdfSU5QVVRfR1BJT19ST1RBUllfRU5DT0RF Uj1tCitDT05GSUdfSU5QVVRfREE3MjgwX0hBUFRJQ1M9bQorQ09ORklHX0lOUFVUX0FEWEwzNFg9 bQorQ09ORklHX0lOUFVUX0FEWEwzNFhfSTJDPW0KK0NPTkZJR19JTlBVVF9BRFhMMzRYX1NQST1t CitDT05GSUdfSU5QVVRfSUJNX1BBTkVMPW0KK0NPTkZJR19JTlBVVF9JTVNfUENVPW0KK0NPTkZJ R19JTlBVVF9JUVMyNjlBPW0KK0NPTkZJR19JTlBVVF9JUVM2MjZBPW0KKyMgQ09ORklHX0lOUFVU X0lRUzcyMjIgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0NNQTMwMDA9bQorQ09ORklHX0lOUFVU X0NNQTMwMDBfSTJDPW0KK0NPTkZJR19JTlBVVF9EUlYyNjBYX0hBUFRJQ1M9bQorQ09ORklHX0lO UFVUX0RSVjI2NjVfSEFQVElDUz1tCitDT05GSUdfSU5QVVRfRFJWMjY2N19IQVBUSUNTPW0KK0NP TkZJR19JTlBVVF9SVDUxMjBfUFdSS0VZPW0KK0NPTkZJR19JTlBVVF9TVFBNSUMxX09OS0VZPW0K K0NPTkZJR19STUk0X0NPUkU9bQorQ09ORklHX1JNSTRfSTJDPW0KK0NPTkZJR19STUk0X1NQST1t CitDT05GSUdfUk1JNF9TTUI9bQorQ09ORklHX1JNSTRfRjAzPXkKK0NPTkZJR19STUk0X0YwM19T RVJJTz1tCitDT05GSUdfUk1JNF8yRF9TRU5TT1I9eQorQ09ORklHX1JNSTRfRjExPXkKK0NPTkZJ R19STUk0X0YxMj15CitDT05GSUdfUk1JNF9GMzA9eQorQ09ORklHX1JNSTRfRjM0PXkKK0NPTkZJ R19STUk0X0YzQT15CitDT05GSUdfUk1JNF9GNTQ9eQorQ09ORklHX1JNSTRfRjU1PXkKKworIwor IyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKK0NPTkZJR19TRVJJTz15CitDT05GSUdfU0VSSU9fU0VS UE9SVD1tCitDT05GSUdfU0VSSU9fUEFSS0JEPW0KK0NPTkZJR19TRVJJT19BTUJBS01JPW0KK0NP TkZJR19TRVJJT19QQ0lQUzI9bQorQ09ORklHX1NFUklPX0xJQlBTMj15CitDT05GSUdfU0VSSU9f UkFXPW0KK0NPTkZJR19TRVJJT19BTFRFUkFfUFMyPW0KK0NPTkZJR19TRVJJT19QUzJNVUxUPW0K KyMgQ09ORklHX1NFUklPX0FSQ19QUzIgaXMgbm90IHNldAorQ09ORklHX1NFUklPX0FQQlBTMj1t CitDT05GSUdfU0VSSU9fR1BJT19QUzI9bQorQ09ORklHX1VTRVJJTz1tCitDT05GSUdfR0FNRVBP UlQ9bQorQ09ORklHX0dBTUVQT1JUX05TNTU4PW0KK0NPTkZJR19HQU1FUE9SVF9MND1tCitDT05G SUdfR0FNRVBPUlRfRU1VMTBLMT1tCitDT05GSUdfR0FNRVBPUlRfRk04MDE9bQorIyBlbmQgb2Yg SGFyZHdhcmUgSS9PIHBvcnRzCisjIGVuZCBvZiBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorCisjCisj IENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVFRZPXkKK0NPTkZJR19WVD15CitDT05GSUdf Q09OU09MRV9UUkFOU0xBVElPTlM9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NP TlNPTEU9eQorQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORz15CitDT05GSUdfVU5JWDk4X1BU WVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTAKK0NP TkZJR19MRUdBQ1lfVElPQ1NUST15CitDT05GSUdfTERJU0NfQVVUT0xPQUQ9eQorCisjCisjIFNl cmlhbCBkcml2ZXJzCisjCitDT05GSUdfU0VSSUFMX0VBUkxZQ09OPXkKK0NPTkZJR19TRVJJQUxf ODI1MD15CisjIENPTkZJR19TRVJJQUxfODI1MF9ERVBSRUNBVEVEX09QVElPTlMgaXMgbm90IHNl dAorIyBDT05GSUdfU0VSSUFMXzgyNTBfMTY1NTBBX1ZBUklBTlRTIGlzIG5vdCBzZXQKKyMgQ09O RklHX1NFUklBTF84MjUwX0ZJTlRFSyBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfQ09O U09MRT15CitDT05GSUdfU0VSSUFMXzgyNTBfRE1BPXkKK0NPTkZJR19TRVJJQUxfODI1MF9QQ0lM SUI9eQorQ09ORklHX1NFUklBTF84MjUwX1BDST15CitDT05GSUdfU0VSSUFMXzgyNTBfRVhBUj15 CitDT05GSUdfU0VSSUFMXzgyNTBfQ1M9bQorQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTMy CitDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0zMgorQ09ORklHX1NFUklBTF84MjUw X0VYVEVOREVEPXkKKyMgQ09ORklHX1NFUklBTF84MjUwX01BTllfUE9SVFMgaXMgbm90IHNldAor Q09ORklHX1NFUklBTF84MjUwX1BDSTFYWFhYPW0KK0NPTkZJR19TRVJJQUxfODI1MF9TSEFSRV9J UlE9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfREVURUNUX0lSUSBpcyBub3Qgc2V0CisjIENPTkZJ R19TRVJJQUxfODI1MF9SU0EgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0RXTElCPXkK K0NPTkZJR19TRVJJQUxfODI1MF9ERkw9bQorQ09ORklHX1NFUklBTF84MjUwX0RXPXkKKyMgQ09O RklHX1NFUklBTF84MjUwX1JUMjg4WCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfUEVS SUNPTT1tCitDT05GSUdfU0VSSUFMX09GX1BMQVRGT1JNPXkKKworIworIyBOb24tODI1MCBzZXJp YWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FNQkFfUEwwMTA9bQorQ09ORklHX1NF UklBTF9BTUJBX1BMMDExPW0KK0NPTkZJR19TRVJJQUxfRUFSTFlDT05fU0VNSUhPU1Q9eQorIyBD T05GSUdfU0VSSUFMX0tHREJfTk1JIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9NQVgzMTAw IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9NQVgzMTBYIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NFUklBTF9VQVJUTElURSBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklH X1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX0NPTlNPTEVfUE9MTD15CitDT05GSUdfU0VS SUFMX0pTTT1tCitDT05GSUdfU0VSSUFMX1NJRklWRT15CitDT05GSUdfU0VSSUFMX1NJRklWRV9D T05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF9TQ0NOWFAgaXMgbm90IHNldAorQ09ORklHX1NFUklB TF9TQzE2SVM3WFhfQ09SRT1tCitDT05GSUdfU0VSSUFMX1NDMTZJUzdYWD1tCitDT05GSUdfU0VS SUFMX1NDMTZJUzdYWF9JMkM9eQorQ09ORklHX1NFUklBTF9TQzE2SVM3WFhfU1BJPXkKKyMgQ09O RklHX1NFUklBTF9BTFRFUkFfSlRBR1VBUlQgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX0FM VEVSQV9VQVJUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfWElMSU5YX1BTX1VBUlQ9eQorQ09O RklHX1NFUklBTF9YSUxJTlhfUFNfVUFSVF9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF9BUkMg aXMgbm90IHNldAorQ09ORklHX1NFUklBTF9SUDI9bQorQ09ORklHX1NFUklBTF9SUDJfTlJfVUFS VFM9MzIKK0NPTkZJR19TRVJJQUxfRlNMX0xQVUFSVD1tCitDT05GSUdfU0VSSUFMX0ZTTF9MSU5G TEVYVUFSVD15CitDT05GSUdfU0VSSUFMX0ZTTF9MSU5GTEVYVUFSVF9DT05TT0xFPXkKKyMgQ09O RklHX1NFUklBTF9DT05FWEFOVF9ESUdJQ09MT1IgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9T UFJEPXkKK0NPTkZJR19TRVJJQUxfU1BSRF9DT05TT0xFPXkKKyMgZW5kIG9mIFNlcmlhbCBkcml2 ZXJzCisKK0NPTkZJR19TRVJJQUxfTUNUUkxfR1BJTz15CitDT05GSUdfU0VSSUFMX05PTlNUQU5E QVJEPXkKK0NPTkZJR19NT1hBX0lOVEVMTElPPW0KK0NPTkZJR19NT1hBX1NNQVJUSU89bQorQ09O RklHX1NZTkNMSU5LX0dUPW0KK0NPTkZJR19OX0hETEM9bQorQ09ORklHX0dPTERGSVNIX1RUWT15 CitDT05GSUdfR09MREZJU0hfVFRZX0VBUkxZX0NPTlNPTEU9eQorQ09ORklHX0lQV0lSRUxFU1M9 bQorQ09ORklHX05fR1NNPW0KK0NPTkZJR19OT1pPTUk9bQorQ09ORklHX05VTExfVFRZPW0KK0NP TkZJR19IVkNfRFJJVkVSPXkKK0NPTkZJR19SUE1TR19UVFk9bQorQ09ORklHX1NFUklBTF9ERVZf QlVTPXkKK0NPTkZJR19TRVJJQUxfREVWX0NUUkxfVFRZUE9SVD15CisjIENPTkZJR19UVFlfUFJJ TlRLIGlzIG5vdCBzZXQKK0NPTkZJR19QUklOVEVSPW0KKyMgQ09ORklHX0xQX0NPTlNPTEUgaXMg bm90IHNldAorQ09ORklHX1BQREVWPW0KK0NPTkZJR19WSVJUSU9fQ09OU09MRT15CitDT05GSUdf SVBNSV9IQU5ETEVSPW0KK0NPTkZJR19JUE1JX1BMQVRfREFUQT15CitDT05GSUdfSVBNSV9QQU5J Q19FVkVOVD15CisjIENPTkZJR19JUE1JX1BBTklDX1NUUklORyBpcyBub3Qgc2V0CitDT05GSUdf SVBNSV9ERVZJQ0VfSU5URVJGQUNFPW0KK0NPTkZJR19JUE1JX1NJPW0KK0NPTkZJR19JUE1JX1NT SUY9bQorQ09ORklHX0lQTUlfSVBNQj1tCitDT05GSUdfSVBNSV9XQVRDSERPRz1tCitDT05GSUdf SVBNSV9QT1dFUk9GRj1tCitDT05GSUdfU1NJRl9JUE1JX0JNQz1tCitDT05GSUdfSVBNQl9ERVZJ Q0VfSU5URVJGQUNFPW0KK0NPTkZJR19IV19SQU5ET009eQorQ09ORklHX0hXX1JBTkRPTV9USU1F UklPTUVNPW0KK0NPTkZJR19IV19SQU5ET01fQkE0MzE9bQorQ09ORklHX0hXX1JBTkRPTV9WSVJU SU89bQorQ09ORklHX0hXX1JBTkRPTV9DQ1RSTkc9bQorQ09ORklHX0hXX1JBTkRPTV9YSVBIRVJB PW0KK0NPTkZJR19IV19SQU5ET01fSkg3MTEwPW0KK0NPTkZJR19BUFBMSUNPTT1tCitDT05GSUdf REVWTUVNPXkKK0NPTkZJR19ERVZQT1JUPXkKK0NPTkZJR19UQ0dfVFBNPXkKK0NPTkZJR19IV19S QU5ET01fVFBNPXkKK0NPTkZJR19UQ0dfVElTX0NPUkU9eQorQ09ORklHX1RDR19USVM9eQorQ09O RklHX1RDR19USVNfU1BJPW0KK0NPTkZJR19UQ0dfVElTX1NQSV9DUjUwPXkKK0NPTkZJR19UQ0df VElTX0kyQz1tCitDT05GSUdfVENHX1RJU19JMkNfQ1I1MD1tCitDT05GSUdfVENHX1RJU19JMkNf QVRNRUw9bQorQ09ORklHX1RDR19USVNfSTJDX0lORklORU9OPW0KK0NPTkZJR19UQ0dfVElTX0ky Q19OVVZPVE9OPW0KK0NPTkZJR19UQ0dfQVRNRUw9bQorQ09ORklHX1RDR19WVFBNX1BST1hZPW0K K0NPTkZJR19UQ0dfVElTX1NUMzNaUDI0PW0KK0NPTkZJR19UQ0dfVElTX1NUMzNaUDI0X0kyQz1t CitDT05GSUdfVENHX1RJU19TVDMzWlAyNF9TUEk9bQorQ09ORklHX1hJTExZQlVTX0NMQVNTPW0K K0NPTkZJR19YSUxMWUJVUz1tCitDT05GSUdfWElMTFlCVVNfUENJRT1tCitDT05GSUdfWElMTFlC VVNfT0Y9bQorQ09ORklHX1hJTExZVVNCPW0KKyMgZW5kIG9mIENoYXJhY3RlciBkZXZpY2VzCisK KyMKKyMgSTJDIHN1cHBvcnQKKyMKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89 eQorIyBDT05GSUdfSTJDX0NPTVBBVCBpcyBub3Qgc2V0CitDT05GSUdfSTJDX0NIQVJERVY9bQor Q09ORklHX0kyQ19NVVg9bQorCisjCisjIE11bHRpcGxleGVyIEkyQyBDaGlwIHN1cHBvcnQKKyMK KyMgQ09ORklHX0kyQ19BUkJfR1BJT19DSEFMTEVOR0UgaXMgbm90IHNldAorQ09ORklHX0kyQ19N VVhfR1BJTz1tCitDT05GSUdfSTJDX01VWF9HUE1VWD1tCitDT05GSUdfSTJDX01VWF9MVEM0MzA2 PW0KK0NPTkZJR19JMkNfTVVYX1BDQTk1NDE9bQorQ09ORklHX0kyQ19NVVhfUENBOTU0eD1tCisj IENPTkZJR19JMkNfTVVYX1BJTkNUUkwgaXMgbm90IHNldAorQ09ORklHX0kyQ19NVVhfUkVHPW0K K0NPTkZJR19JMkNfREVNVVhfUElOQ1RSTD1tCitDT05GSUdfSTJDX01VWF9NTFhDUExEPW0KKyMg ZW5kIG9mIE11bHRpcGxleGVyIEkyQyBDaGlwIHN1cHBvcnQKKworQ09ORklHX0kyQ19IRUxQRVJf QVVUTz15CitDT05GSUdfSTJDX1NNQlVTPW0KK0NPTkZJR19JMkNfQUxHT0JJVD1tCitDT05GSUdf STJDX0FMR09QQ0E9bQorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworCisjCisj IFBDIFNNQnVzIGhvc3QgY29udHJvbGxlciBkcml2ZXJzCisjCitDT05GSUdfSTJDX0NDR1hfVUNT ST1tCitDT05GSUdfSTJDX0FMSTE1MzU9bQorQ09ORklHX0kyQ19BTEkxNTYzPW0KK0NPTkZJR19J MkNfQUxJMTVYMz1tCitDT05GSUdfSTJDX0FNRDc1Nj1tCitDT05GSUdfSTJDX0FNRDgxMTE9bQor Q09ORklHX0kyQ19JODAxPW0KK0NPTkZJR19JMkNfSVNDSD1tCitDT05GSUdfSTJDX1BJSVg0PW0K K0NPTkZJR19JMkNfTkZPUkNFMj1tCitDT05GSUdfSTJDX05WSURJQV9HUFU9bQorQ09ORklHX0ky Q19TSVM1NTk1PW0KK0NPTkZJR19JMkNfU0lTNjMwPW0KK0NPTkZJR19JMkNfU0lTOTZYPW0KKyMg Q09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorQ09ORklHX0kyQ19WSUFQUk89bQorCisjCisjIEky QyBzeXN0ZW0gYnVzIGRyaXZlcnMgKG1vc3RseSBlbWJlZGRlZCAvIHN5c3RlbS1vbi1jaGlwKQor IworQ09ORklHX0kyQ19DQlVTX0dQSU89bQorQ09ORklHX0kyQ19ERVNJR05XQVJFX0NPUkU9eQor Q09ORklHX0kyQ19ERVNJR05XQVJFX1NMQVZFPXkKK0NPTkZJR19JMkNfREVTSUdOV0FSRV9QTEFU Rk9STT15CitDT05GSUdfSTJDX0RFU0lHTldBUkVfUENJPW0KKyMgQ09ORklHX0kyQ19FTUVWMiBp cyBub3Qgc2V0CitDT05GSUdfSTJDX0dQSU89bQorIyBDT05GSUdfSTJDX0dQSU9fRkFVTFRfSU5K RUNUT1IgaXMgbm90IHNldAorQ09ORklHX0kyQ19LRU1QTEQ9bQorQ09ORklHX0kyQ19OT01BRElL PW0KK0NPTkZJR19JMkNfT0NPUkVTPW0KK0NPTkZJR19JMkNfUENBX1BMQVRGT1JNPW0KK0NPTkZJ R19JMkNfUkszWD1tCisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNf WElMSU5YPW0KKworIworIyBFeHRlcm5hbCBJMkMvU01CdXMgYWRhcHRlciBkcml2ZXJzCisjCitD T05GSUdfSTJDX0RJT0xBTl9VMkM9bQorQ09ORklHX0kyQ19ETE4yPW0KK0NPTkZJR19JMkNfQ1Ay NjE1PW0KK0NPTkZJR19JMkNfUEFSUE9SVD1tCitDT05GSUdfSTJDX1BDSTFYWFhYPW0KK0NPTkZJ R19JMkNfUk9CT1RGVVpaX09TSUY9bQorQ09ORklHX0kyQ19UQU9TX0VWTT1tCitDT05GSUdfSTJD X1RJTllfVVNCPW0KK0NPTkZJR19JMkNfVklQRVJCT0FSRD1tCisKKyMKKyMgT3RoZXIgSTJDL1NN QnVzIGJ1cyBkcml2ZXJzCisjCitDT05GSUdfSTJDX1ZJUlRJTz1tCisjIGVuZCBvZiBJMkMgSGFy ZHdhcmUgQnVzIHN1cHBvcnQKKworQ09ORklHX0kyQ19TVFVCPW0KK0NPTkZJR19JMkNfU0xBVkU9 eQorQ09ORklHX0kyQ19TTEFWRV9FRVBST009bQorQ09ORklHX0kyQ19TTEFWRV9URVNUVU5JVD1t CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdf QUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgZW5k IG9mIEkyQyBzdXBwb3J0CisKK0NPTkZJR19JM0M9bQorQ09ORklHX0NETlNfSTNDX01BU1RFUj1t CitDT05GSUdfRFdfSTNDX01BU1RFUj1tCitDT05GSUdfU1ZDX0kzQ19NQVNURVI9bQorQ09ORklH X01JUElfSTNDX0hDST1tCitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfU1BJX01BU1RFUj15CitDT05GSUdfU1BJX01FTT15CisKKyMKKyMgU1BJIE1h c3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1NQSV9BTFRFUkEgaXMgbm90IHNl dAorQ09ORklHX1NQSV9BTFRFUkFfQ09SRT1tCitDT05GSUdfU1BJX0FMVEVSQV9ERkw9bQorIyBD T05GSUdfU1BJX0FYSV9TUElfRU5HSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfQklUQkFORz1t CisjIENPTkZJR19TUElfQlVUVEVSRkxZIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfQ0FERU5DRT1t CitDT05GSUdfU1BJX0NBREVOQ0VfUVVBRFNQST1tCitDT05GSUdfU1BJX0NBREVOQ0VfWFNQST1t CitDT05GSUdfU1BJX0RFU0lHTldBUkU9bQorQ09ORklHX1NQSV9EV19ETUE9eQorQ09ORklHX1NQ SV9EV19QQ0k9bQorQ09ORklHX1NQSV9EV19NTUlPPW0KK0NPTkZJR19TUElfRExOMj1tCitDT05G SUdfU1BJX0dQSU89bQorIyBDT05GSUdfU1BJX0xNNzBfTExQIGlzIG5vdCBzZXQKK0NPTkZJR19T UElfRlNMX0xJQj15CitDT05GSUdfU1BJX0ZTTF9TUEk9eQorQ09ORklHX1NQSV9NSUNST0NISVBf Q09SRT1tCitDT05GSUdfU1BJX01JQ1JPQ0hJUF9DT1JFX1FTUEk9bQorQ09ORklHX1NQSV9PQ19U SU5ZPW0KK0NPTkZJR19TUElfUENJMVhYWFg9bQorQ09ORklHX1NQSV9QTDAyMj1tCisjIENPTkZJ R19TUElfUFhBMlhYIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfU0MxOElTNjAyPW0KK0NPTkZJR19T UElfU0lGSVZFPW0KK0NPTkZJR19TUElfU05fRl9PU1BJPW0KK0NPTkZJR19TUElfTVhJQz1tCitD T05GSUdfU1BJX1hDT01NPW0KK0NPTkZJR19TUElfWElMSU5YPW0KK0NPTkZJR19TUElfWllOUU1Q X0dRU1BJPW0KK0NPTkZJR19TUElfQU1EPW0KKworIworIyBTUEkgTXVsdGlwbGV4ZXIgc3VwcG9y dAorIworQ09ORklHX1NQSV9NVVg9bQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCitD T05GSUdfU1BJX1NQSURFVj1tCitDT05GSUdfU1BJX0xPT1BCQUNLX1RFU1Q9bQorIyBDT05GSUdf U1BJX1RMRTYyWDAgaXMgbm90IHNldAorQ09ORklHX1NQSV9TTEFWRT15CitDT05GSUdfU1BJX1NM QVZFX1RJTUU9bQorQ09ORklHX1NQSV9TTEFWRV9TWVNURU1fQ09OVFJPTD1tCitDT05GSUdfU1BJ X0RZTkFNSUM9eQorQ09ORklHX1NQTUk9bQorQ09ORklHX1NQTUlfSElTSTM2NzA9bQorQ09ORklH X0hTST1tCitDT05GSUdfSFNJX0JPQVJESU5GTz15CisKKyMKKyMgSFNJIGNvbnRyb2xsZXJzCisj CisKKyMKKyMgSFNJIGNsaWVudHMKKyMKK0NPTkZJR19IU0lfQ0hBUj1tCitDT05GSUdfUFBTPXkK KyMgQ09ORklHX1BQU19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUFBTIGNsaWVudHMgc3VwcG9y dAorIworIyBDT05GSUdfUFBTX0NMSUVOVF9LVElNRVIgaXMgbm90IHNldAorQ09ORklHX1BQU19D TElFTlRfTERJU0M9bQorQ09ORklHX1BQU19DTElFTlRfUEFSUE9SVD1tCitDT05GSUdfUFBTX0NM SUVOVF9HUElPPW0KKworIworIyBQUFMgZ2VuZXJhdG9ycyBzdXBwb3J0CisjCisKKyMKKyMgUFRQ IGNsb2NrIHN1cHBvcnQKKyMKK0NPTkZJR19QVFBfMTU4OF9DTE9DSz15CitDT05GSUdfUFRQXzE1 ODhfQ0xPQ0tfT1BUSU9OQUw9eQorCisjCisjIEVuYWJsZSBQSFlMSUIgYW5kIE5FVFdPUktfUEhZ X1RJTUVTVEFNUElORyB0byBzZWUgdGhlIGFkZGl0aW9uYWwgY2xvY2tzLgorIworQ09ORklHX1BU UF8xNTg4X0NMT0NLX0lEVDgyUDMzPW0KK0NPTkZJR19QVFBfMTU4OF9DTE9DS19JRFRDTT1tCitD T05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQPW0KK0NPTkZJR19QVFBfREZMX1RPRD1tCisjIGVuZCBv ZiBQVFAgY2xvY2sgc3VwcG9ydAorCitDT05GSUdfUElOQ1RSTD15CitDT05GSUdfR0VORVJJQ19Q SU5DVFJMX0dST1VQUz15CitDT05GSUdfUElOTVVYPXkKK0NPTkZJR19HRU5FUklDX1BJTk1VWF9G VU5DVElPTlM9eQorQ09ORklHX1BJTkNPTkY9eQorQ09ORklHX0dFTkVSSUNfUElOQ09ORj15Cisj IENPTkZJR19ERUJVR19QSU5DVFJMIGlzIG5vdCBzZXQKK0NPTkZJR19QSU5DVFJMX0FYUDIwOT1t CitDT05GSUdfUElOQ1RSTF9DWThDOTVYMD1tCitDT05GSUdfUElOQ1RSTF9NQVg3NzYyMD1tCitD T05GSUdfUElOQ1RSTF9NQ1AyM1MwOF9JMkM9bQorQ09ORklHX1BJTkNUUkxfTUNQMjNTMDhfU1BJ PW0KK0NPTkZJR19QSU5DVFJMX01DUDIzUzA4PW0KK0NPTkZJR19QSU5DVFJMX01JQ1JPQ0hJUF9T R1BJTz15CisjIENPTkZJR19QSU5DVFJMX09DRUxPVCBpcyBub3Qgc2V0CitDT05GSUdfUElOQ1RS TF9SSzgwNT1tCitDT05GSUdfUElOQ1RSTF9TSU5HTEU9eQorQ09ORklHX1BJTkNUUkxfU1RNRlg9 bQorQ09ORklHX1BJTkNUUkxfU1gxNTBYPXkKK0NPTkZJR19QSU5DVFJMX0xPQ0hOQUdBUj1tCitD T05GSUdfUElOQ1RSTF9NQURFUkE9bQorQ09ORklHX1BJTkNUUkxfQ1M0N0wxNT15CitDT05GSUdf UElOQ1RSTF9DUzQ3TDM1PXkKK0NPTkZJR19QSU5DVFJMX0NTNDdMODU9eQorQ09ORklHX1BJTkNU UkxfQ1M0N0w5MD15CitDT05GSUdfUElOQ1RSTF9DUzQ3TDkyPXkKKworIworIyBSZW5lc2FzIHBp bmN0cmwgZHJpdmVycworIworIyBlbmQgb2YgUmVuZXNhcyBwaW5jdHJsIGRyaXZlcnMKKworQ09O RklHX1BJTkNUUkxfU1RBUkZJVkVfSkg3MTAwPXkKK0NPTkZJR19QSU5DVFJMX1NUQVJGSVZFX0pI NzExMD15CitDT05GSUdfUElOQ1RSTF9TVEFSRklWRV9KSDcxMTBfU1lTPXkKK0NPTkZJR19QSU5D VFJMX1NUQVJGSVZFX0pINzExMF9BT049bQorQ09ORklHX0dQSU9MSUI9eQorQ09ORklHX0dQSU9M SUJfRkFTVFBBVEhfTElNSVQ9NTEyCitDT05GSUdfT0ZfR1BJTz15CitDT05GSUdfR1BJT0xJQl9J UlFDSElQPXkKKyMgQ09ORklHX0RFQlVHX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0dQSU9fU1lT RlM9eQorQ09ORklHX0dQSU9fQ0RFVj15CitDT05GSUdfR1BJT19DREVWX1YxPXkKK0NPTkZJR19H UElPX0dFTkVSSUM9eQorQ09ORklHX0dQSU9fUkVHTUFQPW0KK0NPTkZJR19HUElPX01BWDczMFg9 bQorQ09ORklHX0dQSU9fSURJT18xNj1tCisKKyMKKyMgTWVtb3J5IG1hcHBlZCBHUElPIGRyaXZl cnMKKyMKK0NPTkZJR19HUElPXzc0WFhfTU1JTz1tCisjIENPTkZJR19HUElPX0FMVEVSQSBpcyBu b3Qgc2V0CitDT05GSUdfR1BJT19DQURFTkNFPW0KK0NPTkZJR19HUElPX0RXQVBCPW0KKyMgQ09O RklHX0dQSU9fRVhBUiBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19GVEdQSU8wMTA9eQorQ09ORklH X0dQSU9fR0VORVJJQ19QTEFURk9STT15CitDT05GSUdfR1BJT19HUkdQSU89bQorIyBDT05GSUdf R1BJT19ITFdEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9fTE9HSUNWQyBpcyBub3Qgc2V0CitD T05GSUdfR1BJT19NQjg2UzdYPW0KK0NPTkZJR19HUElPX1BMMDYxPW0KKyMgQ09ORklHX0dQSU9f U0lGSVZFIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1NZU0NPTj1tCitDT05GSUdfR1BJT19YSUxJ Tlg9bQorIyBDT05GSUdfR1BJT19BTURfRkNIIGlzIG5vdCBzZXQKKyMgZW5kIG9mIE1lbW9yeSBt YXBwZWQgR1BJTyBkcml2ZXJzCisKKyMKKyMgSTJDIEdQSU8gZXhwYW5kZXJzCisjCisjIENPTkZJ R19HUElPX0FETlAgaXMgbm90IHNldAorQ09ORklHX0dQSU9fRlhMNjQwOD1tCitDT05GSUdfR1BJ T19HV19QTEQ9bQorQ09ORklHX0dQSU9fTUFYNzMwMD1tCitDT05GSUdfR1BJT19NQVg3MzJYPW0K K0NPTkZJR19HUElPX1BDQTk1M1g9bQorQ09ORklHX0dQSU9fUENBOTUzWF9JUlE9eQorQ09ORklH X0dQSU9fUENBOTU3MD1tCitDT05GSUdfR1BJT19QQ0Y4NTdYPW0KK0NPTkZJR19HUElPX1RQSUMy ODEwPW0KKyMgZW5kIG9mIEkyQyBHUElPIGV4cGFuZGVycworCisjCisjIE1GRCBHUElPIGV4cGFu ZGVycworIworQ09ORklHX0dQSU9fQkQ3MTgxNT1tCitDT05GSUdfR1BJT19CRDcxODI4PW0KK0NP TkZJR19HUElPX0JEOTU3MU1XVj1tCitDT05GSUdfR1BJT19ETE4yPW0KK0NPTkZJR19HUElPX0tF TVBMRD1tCitDT05GSUdfR1BJT19MUDM5NDM9bQorQ09ORklHX0dQSU9fTFA4NzNYPW0KK0NPTkZJ R19HUElPX0xQODc1NjU9bQorQ09ORklHX0dQSU9fTUFERVJBPW0KK0NPTkZJR19HUElPX01BWDc3 NjIwPW0KK0NPTkZJR19HUElPX01BWDc3NjUwPW0KK0NPTkZJR19HUElPX1RRTVg4Nj1tCisjIENP TkZJR19HUElPX1dNODk5NCBpcyBub3Qgc2V0CisjIGVuZCBvZiBNRkQgR1BJTyBleHBhbmRlcnMK KworIworIyBQQ0kgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1BDSV9JRElPXzE2PW0K K0NPTkZJR19HUElPX1BDSUVfSURJT18yND1tCisjIENPTkZJR19HUElPX1JEQzMyMVggaXMgbm90 IHNldAorIyBlbmQgb2YgUENJIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgU1BJIEdQSU8gZXhwYW5k ZXJzCisjCisjIENPTkZJR19HUElPXzc0WDE2NCBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19NQVgz MTkxWD1tCisjIENPTkZJR19HUElPX01BWDczMDEgaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19N QzMzODgwIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX1BJU09TUj1tCitDT05GSUdfR1BJT19YUkEx NDAzPW0KK0NPTkZJR19HUElPX01PWFRFVD1tCisjIGVuZCBvZiBTUEkgR1BJTyBleHBhbmRlcnMK KworIworIyBVU0IgR1BJTyBleHBhbmRlcnMKKyMKK0NPTkZJR19HUElPX1ZJUEVSQk9BUkQ9bQor IyBlbmQgb2YgVVNCIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMgVmlydHVhbCBHUElPIGRyaXZlcnMK KyMKK0NPTkZJR19HUElPX0FHR1JFR0FUT1I9bQorQ09ORklHX0dQSU9fTEFUQ0g9bQorQ09ORklH X0dQSU9fTU9DS1VQPW0KK0NPTkZJR19HUElPX1ZJUlRJTz1tCitDT05GSUdfR1BJT19TSU09bQor IyBlbmQgb2YgVmlydHVhbCBHUElPIGRyaXZlcnMKKworQ09ORklHX1cxPW0KK0NPTkZJR19XMV9D T049eQorCisjCisjIDEtd2lyZSBCdXMgTWFzdGVycworIworQ09ORklHX1cxX01BU1RFUl9NQVRS T1g9bQorQ09ORklHX1cxX01BU1RFUl9EUzI0OTA9bQorQ09ORklHX1cxX01BU1RFUl9EUzI0ODI9 bQorQ09ORklHX1cxX01BU1RFUl9HUElPPW0KKyMgQ09ORklHX1cxX01BU1RFUl9TR0kgaXMgbm90 IHNldAorIyBlbmQgb2YgMS13aXJlIEJ1cyBNYXN0ZXJzCisKKyMKKyMgMS13aXJlIFNsYXZlcwor IworQ09ORklHX1cxX1NMQVZFX1RIRVJNPW0KK0NPTkZJR19XMV9TTEFWRV9TTUVNPW0KK0NPTkZJ R19XMV9TTEFWRV9EUzI0MDU9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQwOD1tCitDT05GSUdfVzFf U0xBVkVfRFMyNDA4X1JFQURCQUNLPXkKK0NPTkZJR19XMV9TTEFWRV9EUzI0MTM9bQorQ09ORklH X1cxX1NMQVZFX0RTMjQwNj1tCitDT05GSUdfVzFfU0xBVkVfRFMyNDIzPW0KK0NPTkZJR19XMV9T TEFWRV9EUzI4MDU9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQzMD1tCitDT05GSUdfVzFfU0xBVkVf RFMyNDMxPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MzM9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQz M19DUkM9eQorQ09ORklHX1cxX1NMQVZFX0RTMjQzOD1tCitDT05GSUdfVzFfU0xBVkVfRFMyNTBY PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI3ODA9bQorQ09ORklHX1cxX1NMQVZFX0RTMjc4MT1tCitD T05GSUdfVzFfU0xBVkVfRFMyOEUwND1tCitDT05GSUdfVzFfU0xBVkVfRFMyOEUxNz1tCisjIGVu ZCBvZiAxLXdpcmUgU2xhdmVzCisKK0NPTkZJR19QT1dFUl9SRVNFVD15CitDT05GSUdfUE9XRVJf UkVTRVRfQVRDMjYwWD1tCitDT05GSUdfUE9XRVJfUkVTRVRfR1BJTz15CitDT05GSUdfUE9XRVJf UkVTRVRfR1BJT19SRVNUQVJUPXkKK0NPTkZJR19QT1dFUl9SRVNFVF9MVEMyOTUyPXkKK0NPTkZJ R19QT1dFUl9SRVNFVF9SRUdVTEFUT1I9eQorQ09ORklHX1BPV0VSX1JFU0VUX1JFU1RBUlQ9eQor Q09ORklHX1BPV0VSX1JFU0VUX1NZU0NPTj15CitDT05GSUdfUE9XRVJfUkVTRVRfU1lTQ09OX1BP V0VST0ZGPXkKK0NPTkZJR19SRUJPT1RfTU9ERT1tCitDT05GSUdfU1lTQ09OX1JFQk9PVF9NT0RF PW0KK0NPTkZJR19OVk1FTV9SRUJPT1RfTU9ERT1tCitDT05GSUdfUE9XRVJfU1VQUExZPXkKKyMg Q09ORklHX1BPV0VSX1NVUFBMWV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE9XRVJfU1VQUExZ X0hXTU9OPXkKKyMgQ09ORklHX0dFTkVSSUNfQURDX0JBVFRFUlkgaXMgbm90IHNldAorQ09ORklH X0lQNVhYWF9QT1dFUj1tCisjIENPTkZJR19URVNUX1BPV0VSIGlzIG5vdCBzZXQKK0NPTkZJR19D SEFSR0VSX0FEUDUwNjE9bQorQ09ORklHX0JBVFRFUllfQ1BDQVA9bQorQ09ORklHX0JBVFRFUllf Q1cyMDE1PW0KK0NPTkZJR19CQVRURVJZX0RTMjc2MD1tCitDT05GSUdfQkFUVEVSWV9EUzI3ODA9 bQorQ09ORklHX0JBVFRFUllfRFMyNzgxPW0KK0NPTkZJR19CQVRURVJZX0RTMjc4Mj1tCitDT05G SUdfQkFUVEVSWV9RQ09NX0JBVFRNR1I9bQorIyBDT05GSUdfQkFUVEVSWV9TQU1TVU5HX1NESSBp cyBub3Qgc2V0CitDT05GSUdfQkFUVEVSWV9TQlM9bQorQ09ORklHX0NIQVJHRVJfU0JTPW0KK0NP TkZJR19NQU5BR0VSX1NCUz1tCitDT05GSUdfQkFUVEVSWV9CUTI3WFhYPW0KK0NPTkZJR19CQVRU RVJZX0JRMjdYWFhfSTJDPW0KK0NPTkZJR19CQVRURVJZX0JRMjdYWFhfSERRPW0KKyMgQ09ORklH X0JBVFRFUllfQlEyN1hYWF9EVF9VUERBVEVTX05WTSBpcyBub3Qgc2V0CitDT05GSUdfQ0hBUkdF Ul9BWFAyMFg9bQorQ09ORklHX0JBVFRFUllfQVhQMjBYPW0KK0NPTkZJR19BWFAyMFhfUE9XRVI9 bQorQ09ORklHX0JBVFRFUllfTUFYMTcwNDA9bQorQ09ORklHX0JBVFRFUllfTUFYMTcwNDI9bQor Q09ORklHX0JBVFRFUllfTUFYMTcyMVg9bQorQ09ORklHX0NIQVJHRVJfSVNQMTcwND1tCitDT05G SUdfQ0hBUkdFUl9NQVg4OTAzPW0KK0NPTkZJR19DSEFSR0VSX0xQODcyNz1tCitDT05GSUdfQ0hB UkdFUl9HUElPPW0KKyMgQ09ORklHX0NIQVJHRVJfTUFOQUdFUiBpcyBub3Qgc2V0CitDT05GSUdf Q0hBUkdFUl9MVDM2NTE9bQorQ09ORklHX0NIQVJHRVJfTFRDNDE2Mkw9bQorQ09ORklHX0NIQVJH RVJfREVURUNUT1JfTUFYMTQ2NTY9bQorQ09ORklHX0NIQVJHRVJfTUFYNzc2NTA9bQorQ09ORklH X0NIQVJHRVJfTUFYNzc5NzY9bQorQ09ORklHX0NIQVJHRVJfTVAyNjI5PW0KK0NPTkZJR19DSEFS R0VSX01UNjM3MD1tCisjIENPTkZJR19DSEFSR0VSX0JRMjQxNVggaXMgbm90IHNldAorQ09ORklH X0NIQVJHRVJfQlEyNDE5MD1tCitDT05GSUdfQ0hBUkdFUl9CUTI0MjU3PW0KK0NPTkZJR19DSEFS R0VSX0JRMjQ3MzU9bQorQ09ORklHX0NIQVJHRVJfQlEyNTE1WD1tCitDT05GSUdfQ0hBUkdFUl9C UTI1ODkwPW0KK0NPTkZJR19DSEFSR0VSX0JRMjU5ODA9bQorQ09ORklHX0NIQVJHRVJfQlEyNTZY WD1tCitDT05GSUdfQ0hBUkdFUl9SSzgxNz1tCitDT05GSUdfQ0hBUkdFUl9TTUIzNDc9bQorIyBD T05GSUdfQkFUVEVSWV9HQVVHRV9MVEMyOTQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBVFRFUllf R09MREZJU0ggaXMgbm90IHNldAorQ09ORklHX0JBVFRFUllfUlQ1MDMzPW0KK0NPTkZJR19DSEFS R0VSX1JUOTQ1NT1tCitDT05GSUdfQ0hBUkdFUl9SVDk0Njc9bQorQ09ORklHX0NIQVJHRVJfUlQ5 NDcxPW0KK0NPTkZJR19DSEFSR0VSX1VDUzEwMDI9bQorQ09ORklHX0NIQVJHRVJfQkQ5OTk1ND1t CitDT05GSUdfQkFUVEVSWV9VRzMxMDU9bQorQ09ORklHX0hXTU9OPXkKK0NPTkZJR19IV01PTl9W SUQ9bQorIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisKKyMKKyMgTmF0aXZl IGRyaXZlcnMKKyMKK0NPTkZJR19TRU5TT1JTX1NNUFJPPW0KKyMgQ09ORklHX1NFTlNPUlNfQUQ3 MzE0IGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0FENzQxND1tCitDT05GSUdfU0VOU09SU19B RDc0MTg9bQorQ09ORklHX1NFTlNPUlNfQURNMTAyNT1tCitDT05GSUdfU0VOU09SU19BRE0xMDI2 PW0KK0NPTkZJR19TRU5TT1JTX0FETTEwMjk9bQorQ09ORklHX1NFTlNPUlNfQURNMTAzMT1tCitD T05GSUdfU0VOU09SU19BRE0xMTc3PW0KK0NPTkZJR19TRU5TT1JTX0FETTkyNDA9bQorQ09ORklH X1NFTlNPUlNfQURUN1gxMD1tCisjIENPTkZJR19TRU5TT1JTX0FEVDczMTAgaXMgbm90IHNldAor Q09ORklHX1NFTlNPUlNfQURUNzQxMD1tCitDT05GSUdfU0VOU09SU19BRFQ3NDExPW0KK0NPTkZJ R19TRU5TT1JTX0FEVDc0NjI9bQorQ09ORklHX1NFTlNPUlNfQURUNzQ3MD1tCitDT05GSUdfU0VO U09SU19BRFQ3NDc1PW0KK0NPTkZJR19TRU5TT1JTX0FIVDEwPW0KK0NPTkZJR19TRU5TT1JTX0FR VUFDT01QVVRFUl9ENU5FWFQ9bQorQ09ORklHX1NFTlNPUlNfQVMzNzA9bQorQ09ORklHX1NFTlNP UlNfQVNDNzYyMT1tCitDT05GSUdfU0VOU09SU19BWElfRkFOX0NPTlRST0w9bQorQ09ORklHX1NF TlNPUlNfQVRYUDE9bQorQ09ORklHX1NFTlNPUlNfQ09SU0FJUl9DUFJPPW0KK0NPTkZJR19TRU5T T1JTX0NPUlNBSVJfUFNVPW0KK0NPTkZJR19TRU5TT1JTX0RSSVZFVEVNUD1tCitDT05GSUdfU0VO U09SU19EUzYyMD1tCitDT05GSUdfU0VOU09SU19EUzE2MjE9bQorQ09ORklHX1NFTlNPUlNfSTVL X0FNQj1tCitDT05GSUdfU0VOU09SU19GNzE4MDVGPW0KK0NPTkZJR19TRU5TT1JTX0Y3MTg4MkZH PW0KK0NPTkZJR19TRU5TT1JTX0Y3NTM3NVM9bQorQ09ORklHX1NFTlNPUlNfR1NDPW0KK0NPTkZJ R19TRU5TT1JTX0ZUU1RFVVRBVEVTPW0KK0NPTkZJR19TRU5TT1JTX0dMNTE4U009bQorQ09ORklH X1NFTlNPUlNfR0w1MjBTTT1tCitDT05GSUdfU0VOU09SU19HNzYwQT1tCitDT05GSUdfU0VOU09S U19HNzYyPW0KK0NPTkZJR19TRU5TT1JTX0dQSU9fRkFOPW0KK0NPTkZJR19TRU5TT1JTX0hJSDYx MzA9bQorQ09ORklHX1NFTlNPUlNfSUJNQUVNPW0KK0NPTkZJR19TRU5TT1JTX0lCTVBFWD1tCisj IENPTkZJR19TRU5TT1JTX0lJT19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19JVDg3 PW0KK0NPTkZJR19TRU5TT1JTX0pDNDI9bQorQ09ORklHX1NFTlNPUlNfUE9XUjEyMjA9bQorQ09O RklHX1NFTlNPUlNfTElORUFHRT1tCitDT05GSUdfU0VOU09SU19MT0NITkFHQVI9bQorQ09ORklH X1NFTlNPUlNfTFRDMjk0NT1tCitDT05GSUdfU0VOU09SU19MVEMyOTQ3PW0KK0NPTkZJR19TRU5T T1JTX0xUQzI5NDdfSTJDPW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5NDdfU1BJPW0KK0NPTkZJR19T RU5TT1JTX0xUQzI5OTA9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk5Mj1tCitDT05GSUdfU0VOU09S U19MVEM0MTUxPW0KK0NPTkZJR19TRU5TT1JTX0xUQzQyMTU9bQorQ09ORklHX1NFTlNPUlNfTFRD NDIyMj1tCitDT05GSUdfU0VOU09SU19MVEM0MjQ1PW0KK0NPTkZJR19TRU5TT1JTX0xUQzQyNjA9 bQorQ09ORklHX1NFTlNPUlNfTFRDNDI2MT1tCisjIENPTkZJR19TRU5TT1JTX01BWDExMTEgaXMg bm90IHNldAorQ09ORklHX1NFTlNPUlNfTUFYMTI3PW0KK0NPTkZJR19TRU5TT1JTX01BWDE2MDY1 PW0KK0NPTkZJR19TRU5TT1JTX01BWDE2MTk9bQorQ09ORklHX1NFTlNPUlNfTUFYMTY2OD1tCisj IENPTkZJR19TRU5TT1JTX01BWDE5NyBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19NQVgzMTcy Mj1tCitDT05GSUdfU0VOU09SU19NQVgzMTczMD1tCitDT05GSUdfU0VOU09SU19NQVgzMTc2MD1t CitDT05GSUdfU0VOU09SU19NQVg2NjIwPW0KK0NPTkZJR19TRU5TT1JTX01BWDY2MjE9bQorQ09O RklHX1NFTlNPUlNfTUFYNjYzOT1tCitDT05GSUdfU0VOU09SU19NQVg2NjUwPW0KK0NPTkZJR19T RU5TT1JTX01BWDY2OTc9bQorQ09ORklHX1NFTlNPUlNfTUFYMzE3OTA9bQorQ09ORklHX1NFTlNP UlNfTUMzNFZSNTAwPW0KK0NPTkZJR19TRU5TT1JTX01DUDMwMjE9bQorQ09ORklHX1NFTlNPUlNf VEM2NTQ9bQorQ09ORklHX1NFTlNPUlNfVFBTMjM4NjE9bQorIyBDT05GSUdfU0VOU09SU19NRU5G MjFCTUNfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTVI3NTIwMz1tCisjIENPTkZJ R19TRU5TT1JTX0FEQ1hYIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0xNNjM9bQorIyBDT05G SUdfU0VOU09SU19MTTcwIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0xNNzM9bQorQ09ORklH X1NFTlNPUlNfTE03NT1tCitDT05GSUdfU0VOU09SU19MTTc3PW0KK0NPTkZJR19TRU5TT1JTX0xN Nzg9bQorQ09ORklHX1NFTlNPUlNfTE04MD1tCitDT05GSUdfU0VOU09SU19MTTgzPW0KK0NPTkZJ R19TRU5TT1JTX0xNODU9bQorQ09ORklHX1NFTlNPUlNfTE04Nz1tCitDT05GSUdfU0VOU09SU19M TTkwPW0KK0NPTkZJR19TRU5TT1JTX0xNOTI9bQorQ09ORklHX1NFTlNPUlNfTE05Mz1tCitDT05G SUdfU0VOU09SU19MTTk1MjM0PW0KK0NPTkZJR19TRU5TT1JTX0xNOTUyNDE9bQorQ09ORklHX1NF TlNPUlNfTE05NTI0NT1tCitDT05GSUdfU0VOU09SU19QQzg3MzYwPW0KK0NPTkZJR19TRU5TT1JT X1BDODc0Mjc9bQorIyBDT05GSUdfU0VOU09SU19OVENfVEhFUk1JU1RPUiBpcyBub3Qgc2V0CitD T05GSUdfU0VOU09SU19OQ1Q2NjgzPW0KKyMgQ09ORklHX1NFTlNPUlNfTkNUNjc3NV9JMkMgaXMg bm90IHNldAorQ09ORklHX1NFTlNPUlNfTkNUNzgwMj1tCitDT05GSUdfU0VOU09SU19OQ1Q3OTA0 PW0KK0NPTkZJR19TRU5TT1JTX05QQ003WFg9bQorQ09ORklHX1NFTlNPUlNfTlpYVF9LUkFLRU4y PW0KK0NPTkZJR19TRU5TT1JTX05aWFRfU01BUlQyPW0KK0NPTkZJR19TRU5TT1JTX09DQ19QOF9J MkM9bQorQ09ORklHX1NFTlNPUlNfT0NDPW0KK0NPTkZJR19TRU5TT1JTX1BDRjg1OTE9bQorQ09O RklHX1NFTlNPUlNfUEVDSV9DUFVURU1QPW0KK0NPTkZJR19TRU5TT1JTX1BFQ0lfRElNTVRFTVA9 bQorQ09ORklHX1NFTlNPUlNfUEVDST1tCitDT05GSUdfUE1CVVM9bQorQ09ORklHX1NFTlNPUlNf UE1CVVM9bQorQ09ORklHX1NFTlNPUlNfQUNCRUxfRlNHMDMyPW0KK0NPTkZJR19TRU5TT1JTX0FE TTEyNjY9bQorQ09ORklHX1NFTlNPUlNfQURNMTI3NT1tCitDT05GSUdfU0VOU09SU19CRUxfUEZF PW0KK0NPTkZJR19TRU5TT1JTX0JQQV9SUzYwMD1tCitDT05GSUdfU0VOU09SU19ERUxUQV9BSEU1 MERDX0ZBTj1tCitDT05GSUdfU0VOU09SU19GU1BfM1k9bQorIyBDT05GSUdfU0VOU09SU19JQk1f Q0ZGUFMgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfRFBTOTIwQUI9bQorQ09ORklHX1NFTlNP UlNfSU5TUFVSX0lQU1BTPW0KK0NPTkZJR19TRU5TT1JTX0lSMzUyMjE9bQorQ09ORklHX1NFTlNP UlNfSVIzNjAyMT1tCitDT05GSUdfU0VOU09SU19JUjM4MDY0PW0KKyMgQ09ORklHX1NFTlNPUlNf SVIzODA2NF9SRUdVTEFUT1IgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfSVJQUzU0MDE9bQor Q09ORklHX1NFTlNPUlNfSVNMNjgxMzc9bQorQ09ORklHX1NFTlNPUlNfTE0yNTA2Nj1tCitDT05G SUdfU0VOU09SU19MTTI1MDY2X1JFR1VMQVRPUj15CitDT05GSUdfU0VOU09SU19MVDcxODJTPW0K K0NPTkZJR19TRU5TT1JTX0xUQzI5Nzg9bQorIyBDT05GSUdfU0VOU09SU19MVEMyOTc4X1JFR1VM QVRPUiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MVEMzODE1PW0KK0NPTkZJR19TRU5TT1JT X01BWDE1MzAxPW0KK0NPTkZJR19TRU5TT1JTX01BWDE2MDY0PW0KK0NPTkZJR19TRU5TT1JTX01B WDE2NjAxPW0KK0NPTkZJR19TRU5TT1JTX01BWDIwNzMwPW0KK0NPTkZJR19TRU5TT1JTX01BWDIw NzUxPW0KK0NPTkZJR19TRU5TT1JTX01BWDMxNzg1PW0KK0NPTkZJR19TRU5TT1JTX01BWDM0NDQw PW0KK0NPTkZJR19TRU5TT1JTX01BWDg2ODg9bQorQ09ORklHX1NFTlNPUlNfTVAyODg4PW0KK0NP TkZJR19TRU5TT1JTX01QMjk3NT1tCitDT05GSUdfU0VOU09SU19NUDUwMjM9bQorQ09ORklHX1NF TlNPUlNfTVBRNzkzMl9SRUdVTEFUT1I9eQorQ09ORklHX1NFTlNPUlNfTVBRNzkzMj1tCitDT05G SUdfU0VOU09SU19QSU00MzI4PW0KK0NPTkZJR19TRU5TT1JTX1BMSTEyMDlCQz1tCitDT05GSUdf U0VOU09SU19QTEkxMjA5QkNfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX1BNNjc2NFRSPW0K K0NPTkZJR19TRU5TT1JTX1BYRTE2MTA9bQorQ09ORklHX1NFTlNPUlNfUTU0U0oxMDhBMj1tCitD T05GSUdfU0VOU09SU19TVFBEREM2MD1tCitDT05GSUdfU0VOU09SU19UREEzODY0MD1tCitDT05G SUdfU0VOU09SU19UREEzODY0MF9SRUdVTEFUT1I9eQorQ09ORklHX1NFTlNPUlNfVFBTNDA0MjI9 bQorQ09ORklHX1NFTlNPUlNfVFBTNTM2Nzk9bQorQ09ORklHX1NFTlNPUlNfVFBTNTQ2RDI0PW0K K0NPTkZJR19TRU5TT1JTX1VDRDkwMDA9bQorQ09ORklHX1NFTlNPUlNfVUNEOTIwMD1tCisjIENP TkZJR19TRU5TT1JTX1hEUEUxNTIgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfWERQRTEyMj1t CitDT05GSUdfU0VOU09SU19YRFBFMTIyX1JFR1VMQVRPUj15CitDT05GSUdfU0VOU09SU19aTDYx MDA9bQorQ09ORklHX1NFTlNPUlNfUFdNX0ZBTj1tCitDT05GSUdfU0VOU09SU19TQlRTST1tCitD T05GSUdfU0VOU09SU19TQlJNST1tCitDT05GSUdfU0VOU09SU19TSFQxNT1tCitDT05GSUdfU0VO U09SU19TSFQyMT1tCitDT05GSUdfU0VOU09SU19TSFQzeD1tCitDT05GSUdfU0VOU09SU19TSFQ0 eD1tCitDT05GSUdfU0VOU09SU19TSFRDMT1tCitDT05GSUdfU0VOU09SU19TSVM1NTk1PW0KK0NP TkZJR19TRU5TT1JTX1NZNzYzNkE9bQorQ09ORklHX1NFTlNPUlNfRE1FMTczNz1tCitDT05GSUdf U0VOU09SU19FTUMxNDAzPW0KK0NPTkZJR19TRU5TT1JTX0VNQzIxMDM9bQorQ09ORklHX1NFTlNP UlNfRU1DMjMwNT1tCitDT05GSUdfU0VOU09SU19FTUM2VzIwMT1tCitDT05GSUdfU0VOU09SU19T TVNDNDdNMT1tCitDT05GSUdfU0VOU09SU19TTVNDNDdNMTkyPW0KK0NPTkZJR19TRU5TT1JTX1NN U0M0N0IzOTc9bQorQ09ORklHX1NFTlNPUlNfU0NINTZYWF9DT01NT049bQorQ09ORklHX1NFTlNP UlNfU0NINTYyNz1tCitDT05GSUdfU0VOU09SU19TQ0g1NjM2PW0KK0NPTkZJR19TRU5TT1JTX1NU VFM3NTE9bQorQ09ORklHX1NFTlNPUlNfU0ZDVEVNUD1tCitDT05GSUdfU0VOU09SU19TTU02NjU9 bQorQ09ORklHX1NFTlNPUlNfQURDMTI4RDgxOD1tCitDT05GSUdfU0VOU09SU19BRFM3ODI4PW0K KyMgQ09ORklHX1NFTlNPUlNfQURTNzg3MSBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19BTUM2 ODIxPW0KK0NPTkZJR19TRU5TT1JTX0lOQTIwOT1tCitDT05GSUdfU0VOU09SU19JTkEyWFg9bQor Q09ORklHX1NFTlNPUlNfSU5BMjM4PW0KK0NPTkZJR19TRU5TT1JTX0lOQTMyMjE9bQorQ09ORklH X1NFTlNPUlNfVEM3ND1tCitDT05GSUdfU0VOU09SU19USE1DNTA9bQorQ09ORklHX1NFTlNPUlNf VE1QMTAyPW0KK0NPTkZJR19TRU5TT1JTX1RNUDEwMz1tCitDT05GSUdfU0VOU09SU19UTVAxMDg9 bQorQ09ORklHX1NFTlNPUlNfVE1QNDAxPW0KK0NPTkZJR19TRU5TT1JTX1RNUDQyMT1tCitDT05G SUdfU0VOU09SU19UTVA0NjQ9bQorQ09ORklHX1NFTlNPUlNfVE1QNTEzPW0KK0NPTkZJR19TRU5T T1JTX1ZJQTY4NkE9bQorQ09ORklHX1NFTlNPUlNfVlQxMjExPW0KK0NPTkZJR19TRU5TT1JTX1ZU ODIzMT1tCitDT05GSUdfU0VOU09SU19XODM3NzNHPW0KK0NPTkZJR19TRU5TT1JTX1c4Mzc4MUQ9 bQorQ09ORklHX1NFTlNPUlNfVzgzNzkxRD1tCitDT05GSUdfU0VOU09SU19XODM3OTJEPW0KK0NP TkZJR19TRU5TT1JTX1c4Mzc5Mz1tCitDT05GSUdfU0VOU09SU19XODM3OTU9bQorIyBDT05GSUdf U0VOU09SU19XODM3OTVfRkFOQ1RSTCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19XODNMNzg1 VFM9bQorQ09ORklHX1NFTlNPUlNfVzgzTDc4Nk5HPW0KK0NPTkZJR19TRU5TT1JTX1c4MzYyN0hG PW0KK0NPTkZJR19TRU5TT1JTX1c4MzYyN0VIRj1tCitDT05GSUdfU0VOU09SU19JTlRFTF9NMTBf Qk1DX0hXTU9OPW0KK0NPTkZJR19USEVSTUFMPXkKK0NPTkZJR19USEVSTUFMX05FVExJTks9eQor Q09ORklHX1RIRVJNQUxfU1RBVElTVElDUz15CitDT05GSUdfVEhFUk1BTF9FTUVSR0VOQ1lfUE9X RVJPRkZfREVMQVlfTVM9MAorQ09ORklHX1RIRVJNQUxfSFdNT049eQorQ09ORklHX1RIRVJNQUxf T0Y9eQorIyBDT05GSUdfVEhFUk1BTF9XUklUQUJMRV9UUklQUyBpcyBub3Qgc2V0CitDT05GSUdf VEhFUk1BTF9ERUZBVUxUX0dPVl9TVEVQX1dJU0U9eQorIyBDT05GSUdfVEhFUk1BTF9ERUZBVUxU X0dPVl9GQUlSX1NIQVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1Zf VVNFUl9TUEFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19USEVSTUFMX0RFRkFVTFRfR09WX1BPV0VS X0FMTE9DQVRPUiBpcyBub3Qgc2V0CitDT05GSUdfVEhFUk1BTF9HT1ZfRkFJUl9TSEFSRT15CitD T05GSUdfVEhFUk1BTF9HT1ZfU1RFUF9XSVNFPXkKK0NPTkZJR19USEVSTUFMX0dPVl9CQU5HX0JB Tkc9eQorQ09ORklHX1RIRVJNQUxfR09WX1VTRVJfU1BBQ0U9eQorQ09ORklHX1RIRVJNQUxfR09W X1BPV0VSX0FMTE9DQVRPUj15CitDT05GSUdfQ1BVX1RIRVJNQUw9eQorQ09ORklHX0NQVV9GUkVR X1RIRVJNQUw9eQorIyBDT05GSUdfQ1BVX0lETEVfVEhFUk1BTCBpcyBub3Qgc2V0CitDT05GSUdf REVWRlJFUV9USEVSTUFMPXkKKyMgQ09ORklHX1RIRVJNQUxfRU1VTEFUSU9OIGlzIG5vdCBzZXQK K0NPTkZJR19USEVSTUFMX01NSU89bQorQ09ORklHX01BWDc3NjIwX1RIRVJNQUw9bQorQ09ORklH X0dFTkVSSUNfQURDX1RIRVJNQUw9bQorQ09ORklHX1dBVENIRE9HPXkKK0NPTkZJR19XQVRDSERP R19DT1JFPXkKKyMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKK0NPTkZJR19X QVRDSERPR19IQU5ETEVfQk9PVF9FTkFCTEVEPXkKK0NPTkZJR19XQVRDSERPR19PUEVOX1RJTUVP VVQ9MAorIyBDT05GSUdfV0FUQ0hET0dfU1lTRlMgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hE T0dfSFJUSU1FUl9QUkVUSU1FT1VUIGlzIG5vdCBzZXQKKworIworIyBXYXRjaGRvZyBQcmV0aW1l b3V0IEdvdmVybm9ycworIworQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfR09WPXkKK0NPTkZJ R19XQVRDSERPR19QUkVUSU1FT1VUX0dPVl9TRUw9bQorQ09ORklHX1dBVENIRE9HX1BSRVRJTUVP VVRfR09WX05PT1A9eQorQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfR09WX1BBTklDPW0KK0NP TkZJR19XQVRDSERPR19QUkVUSU1FT1VUX0RFRkFVTFRfR09WX05PT1A9eQorIyBDT05GSUdfV0FU Q0hET0dfUFJFVElNRU9VVF9ERUZBVUxUX0dPVl9QQU5JQyBpcyBub3Qgc2V0CisKKyMKKyMgV2F0 Y2hkb2cgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19TT0ZUX1dBVENIRE9HPW0KK0NPTkZJR19T T0ZUX1dBVENIRE9HX1BSRVRJTUVPVVQ9eQorQ09ORklHX0JEOTU3WE1VRl9XQVRDSERPRz1tCisj IENPTkZJR19HUElPX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTkYyMUJNQ19XQVRD SERPRyBpcyBub3Qgc2V0CitDT05GSUdfWElMSU5YX1dBVENIRE9HPW0KK0NPTkZJR19aSUlSQVZF X1dBVENIRE9HPW0KK0NPTkZJR19DQURFTkNFX1dBVENIRE9HPW0KK0NPTkZJR19EV19XQVRDSERP Rz1tCisjIENPTkZJR19NQVg2M1hYX1dBVENIRE9HIGlzIG5vdCBzZXQKK0NPTkZJR19NQVg3NzYy MF9XQVRDSERPRz1tCitDT05GSUdfU1RQTUlDMV9XQVRDSERPRz1tCitDT05GSUdfQUxJTTcxMDFf V0RUPW0KK0NPTkZJR19JNjMwMEVTQl9XRFQ9bQorQ09ORklHX0tFTVBMRF9XRFQ9bQorQ09ORklH X01FTl9BMjFfV0RUPW0KK0NPTkZJR19TVEFSRklWRV9XQVRDSERPRz1tCisKKyMKKyMgUENJLWJh c2VkIFdhdGNoZG9nIENhcmRzCisjCitDT05GSUdfUENJUENXQVRDSERPRz1tCitDT05GSUdfV0RU UENJPW0KKworIworIyBVU0ItYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKK0NPTkZJR19VU0JQQ1dB VENIRE9HPW0KK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorQ09ORklHX1NTQj1tCitDT05GSUdfU1NC X1NQUk9NPXkKK0NPTkZJR19TU0JfQkxPQ0tJTz15CitDT05GSUdfU1NCX1BDSUhPU1RfUE9TU0lC TEU9eQorQ09ORklHX1NTQl9QQ0lIT1NUPXkKK0NPTkZJR19TU0JfQjQzX1BDSV9CUklER0U9eQor Q09ORklHX1NTQl9QQ01DSUFIT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfUENNQ0lBSE9TVD15 CitDT05GSUdfU1NCX1NESU9IT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfU0RJT0hPU1Q9eQor Q09ORklHX1NTQl9EUklWRVJfUENJQ09SRV9QT1NTSUJMRT15CitDT05GSUdfU1NCX0RSSVZFUl9Q Q0lDT1JFPXkKK0NPTkZJR19TU0JfRFJJVkVSX0dQSU89eQorQ09ORklHX0JDTUFfUE9TU0lCTEU9 eQorQ09ORklHX0JDTUE9bQorQ09ORklHX0JDTUFfQkxPQ0tJTz15CitDT05GSUdfQkNNQV9IT1NU X1BDSV9QT1NTSUJMRT15CitDT05GSUdfQkNNQV9IT1NUX1BDST15CitDT05GSUdfQkNNQV9IT1NU X1NPQz15CitDT05GSUdfQkNNQV9EUklWRVJfUENJPXkKK0NPTkZJR19CQ01BX1NGTEFTSD15CitD T05GSUdfQkNNQV9EUklWRVJfR01BQ19DTU49eQorQ09ORklHX0JDTUFfRFJJVkVSX0dQSU89eQor IyBDT05GSUdfQkNNQV9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZp Y2UgZHJpdmVycworIworQ09ORklHX01GRF9DT1JFPXkKKyMgQ09ORklHX01GRF9BQ1Q4OTQ1QSBp cyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVMzNzExIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfU01Q Uk89bQorIyBDT05GSUdfTUZEX0FTMzcyMiBpcyBub3Qgc2V0CisjIENPTkZJR19QTUlDX0FEUDU1 MjAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FBVDI4NzBfQ09SRSBpcyBub3Qgc2V0CisjIENP TkZJR19NRkRfQVRNRUxfRkxFWENPTSBpcyBub3Qgc2V0CitDT05GSUdfTUZEX0FUTUVMX0hMQ0RD PW0KKyMgQ09ORklHX01GRF9CQ001OTBYWCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX0JEOTU3MU1X Vj1tCitDT05GSUdfTUZEX0FYUDIwWD1tCitDT05GSUdfTUZEX0FYUDIwWF9JMkM9bQorQ09ORklH X01GRF9NQURFUkE9bQorQ09ORklHX01GRF9NQURFUkFfSTJDPW0KK0NPTkZJR19NRkRfTUFERVJB X1NQST1tCitDT05GSUdfTUZEX01BWDU5N1g9bQorQ09ORklHX01GRF9DUzQ3TDE1PXkKK0NPTkZJ R19NRkRfQ1M0N0wzNT15CitDT05GSUdfTUZEX0NTNDdMODU9eQorQ09ORklHX01GRF9DUzQ3TDkw PXkKK0NPTkZJR19NRkRfQ1M0N0w5Mj15CisjIENPTkZJR19QTUlDX0RBOTAzWCBpcyBub3Qgc2V0 CisjIENPTkZJR19NRkRfREE5MDUyX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDUy X0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDU1IGlzIG5vdCBzZXQKKyMgQ09ORklH X01GRF9EQTkwNjIgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0RBOTA2MyBpcyBub3Qgc2V0Cisj IENPTkZJR19NRkRfREE5MTUwIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfRExOMj1tCitDT05GSUdf TUZEX0dBVEVXT1JLU19HU0M9bQorIyBDT05GSUdfTUZEX01DMTNYWFhfU1BJIGlzIG5vdCBzZXQK KyMgQ09ORklHX01GRF9NQzEzWFhYX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX01QMjYyOT1t CitDT05GSUdfTUZEX0hJNjQyMV9QTUlDPW0KK0NPTkZJR19NRkRfSEk2NDIxX1NQTUk9bQorQ09O RklHX0xQQ19JQ0g9bQorQ09ORklHX0xQQ19TQ0g9bQorQ09ORklHX01GRF9JUVM2Mlg9bQorIyBD T05GSUdfTUZEX0pBTlpfQ01PRElPIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfS0VNUExEPW0KKyMg Q09ORklHX01GRF84OFBNODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF84OFBNODA1IGlzIG5v dCBzZXQKKyMgQ09ORklHX01GRF84OFBNODYwWCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTUFY MTQ1NzcgaXMgbm90IHNldAorQ09ORklHX01GRF9NQVg3NzYyMD15CitDT05GSUdfTUZEX01BWDc3 NjUwPW0KKyMgQ09ORklHX01GRF9NQVg3NzY4NiBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTUFY Nzc2OTMgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX01BWDc3NzE0IGlzIG5vdCBzZXQKKyMgQ09O RklHX01GRF9NQVg3Nzg0MyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTUFYODkwNyBpcyBub3Qg c2V0CisjIENPTkZJR19NRkRfTUFYODkyNSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTUFYODk5 NyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTUFYODk5OCBpcyBub3Qgc2V0CisjIENPTkZJR19N RkRfTVQ2MzYwIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfTVQ2MzcwPW0KKyMgQ09ORklHX01GRF9N VDYzOTcgaXMgbm90IHNldAorQ09ORklHX01GRF9NRU5GMjFCTUM9bQorQ09ORklHX01GRF9PQ0VM T1Q9bQorIyBDT05GSUdfRVpYX1BDQVAgaXMgbm90IHNldAorQ09ORklHX01GRF9DUENBUD1tCitD T05GSUdfTUZEX1ZJUEVSQk9BUkQ9bQorQ09ORklHX01GRF9OVFhFQz1tCisjIENPTkZJR19NRkRf UkVUVSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfUENGNTA2MzMgaXMgbm90IHNldAorQ09ORklH X01GRF9TWTc2MzZBPW0KKyMgQ09ORklHX01GRF9SREMzMjFYIGlzIG5vdCBzZXQKK0NPTkZJR19N RkRfUlQ0ODMxPW0KKyMgQ09ORklHX01GRF9SVDUwMzMgaXMgbm90IHNldAorQ09ORklHX01GRF9S VDUxMjA9bQorIyBDT05GSUdfTUZEX1JDNVQ1ODMgaXMgbm90IHNldAorQ09ORklHX01GRF9SSzgw OD1tCisjIENPTkZJR19NRkRfUk41VDYxOCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfU0VDX0NP UkUgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1NJNDc2WF9DT1JFIGlzIG5vdCBzZXQKK0NPTkZJ R19NRkRfU0lNUExFX01GRF9JMkM9bQorIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKK0NP TkZJR19NRkRfU0tZODE0NTI9bQorIyBDT05GSUdfTUZEX1NUTVBFIGlzIG5vdCBzZXQKK0NPTkZJ R19NRkRfU1lTQ09OPXkKK0NPTkZJR19NRkRfVElfQU0zMzVYX1RTQ0FEQz1tCitDT05GSUdfTUZE X0xQMzk0Mz1tCisjIENPTkZJR19NRkRfTFA4Nzg4IGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfVElf TE1VPW0KKyMgQ09ORklHX01GRF9QQUxNQVMgaXMgbm90IHNldAorIyBDT05GSUdfVFBTNjEwNVgg aXMgbm90IHNldAorQ09ORklHX1RQUzY1MDEwPW0KK0NPTkZJR19UUFM2NTA3WD1tCisjIENPTkZJ R19NRkRfVFBTNjUwODYgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1RQUzY1MDkwIGlzIG5vdCBz ZXQKKyMgQ09ORklHX01GRF9UUFM2NTIxNyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1RJX0xQODcz WD1tCitDT05GSUdfTUZEX1RJX0xQODc1NjU9bQorIyBDT05GSUdfTUZEX1RQUzY1MjE4IGlzIG5v dCBzZXQKK0NPTkZJR19NRkRfVFBTNjUyMTk9bQorIyBDT05GSUdfTUZEX1RQUzY1ODZYIGlzIG5v dCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTkxMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfVFBT NjU5MTJfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTkxMl9TUEkgaXMgbm90IHNl dAorIyBDT05GSUdfVFdMNDAzMF9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RXTDYwNDBfQ09S RSBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1dMMTI3M19DT1JFPW0KK0NPTkZJR19NRkRfTE0zNTMz PW0KKyMgQ09ORklHX01GRF9UQzM1ODlYIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfVFFNWDg2PW0K K0NPTkZJR19NRkRfVlg4NTU9bQorQ09ORklHX01GRF9MT0NITkFHQVI9eQorIyBDT05GSUdfTUZE X0FSSVpPTkFfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BUklaT05BX1NQSSBpcyBub3Qg c2V0CisjIENPTkZJR19NRkRfV004NDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9XTTgzMVhf STJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9XTTgzMVhfU1BJIGlzIG5vdCBzZXQKKyMgQ09O RklHX01GRF9XTTgzNTBfSTJDIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfV004OTk0PW0KK0NPTkZJ R19NRkRfUk9ITV9CRDcxOFhYPW0KK0NPTkZJR19NRkRfUk9ITV9CRDcxODI4PW0KK0NPTkZJR19N RkRfUk9ITV9CRDk1N1hNVUY9bQorQ09ORklHX01GRF9TVFBNSUMxPW0KK0NPTkZJR19NRkRfU1RN Rlg9bQorQ09ORklHX01GRF9BVEMyNjBYPW0KK0NPTkZJR19NRkRfQVRDMjYwWF9JMkM9bQorQ09O RklHX01GRF9RQ09NX1BNODAwOD1tCisjIENPTkZJR19SQVZFX1NQX0NPUkUgaXMgbm90IHNldAor Q09ORklHX01GRF9JTlRFTF9NMTBfQk1DX0NPUkU9bQorQ09ORklHX01GRF9JTlRFTF9NMTBfQk1D X1NQST1tCitDT05GSUdfTUZEX0lOVEVMX00xMF9CTUNfUE1DST1tCitDT05GSUdfTUZEX1JTTVVf STJDPW0KK0NPTkZJR19NRkRfUlNNVV9TUEk9bQorIyBlbmQgb2YgTXVsdGlmdW5jdGlvbiBkZXZp Y2UgZHJpdmVycworCitDT05GSUdfUkVHVUxBVE9SPXkKKyMgQ09ORklHX1JFR1VMQVRPUl9ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0ZJWEVEX1ZPTFRBR0U9bQorIyBDT05GSUdf UkVHVUxBVE9SX1ZJUlRVQUxfQ09OU1VNRVIgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9S X1VTRVJTUEFDRV9DT05TVU1FUiBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SXzg4UEc4Nlg9 bQorIyBDT05GSUdfUkVHVUxBVE9SX0FDVDg4NjUgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxB VE9SX0FENTM5OCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX0FSSVpPTkFfTERPMT1tCitD T05GSUdfUkVHVUxBVE9SX0FSSVpPTkFfTUlDU1VQUD1tCitDT05GSUdfUkVHVUxBVE9SX0FUQzI2 MFg9bQorQ09ORklHX1JFR1VMQVRPUl9BWFAyMFg9bQorQ09ORklHX1JFR1VMQVRPUl9CRDcxODE1 PW0KK0NPTkZJR19SRUdVTEFUT1JfQkQ3MTgyOD1tCitDT05GSUdfUkVHVUxBVE9SX0JENzE4WFg9 bQorQ09ORklHX1JFR1VMQVRPUl9CRDk1NzFNV1Y9bQorQ09ORklHX1JFR1VMQVRPUl9CRDk1N1hN VUY9bQorQ09ORklHX1JFR1VMQVRPUl9DUENBUD1tCitDT05GSUdfUkVHVUxBVE9SX0RBOTEyMT1t CisjIENPTkZJR19SRUdVTEFUT1JfREE5MjEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRP Ul9EQTkyMTEgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9GQU41MzU1NT1tCitDT05GSUdf UkVHVUxBVE9SX0ZBTjUzODgwPW0KK0NPTkZJR19SRUdVTEFUT1JfR1BJTz1tCitDT05GSUdfUkVH VUxBVE9SX0hJNjQyMT1tCitDT05GSUdfUkVHVUxBVE9SX0hJNjQyMVY1MzA9bQorQ09ORklHX1JF R1VMQVRPUl9ISTY0MjFWNjAwPW0KK0NPTkZJR19SRUdVTEFUT1JfSVNMOTMwNT1tCisjIENPTkZJ R19SRUdVTEFUT1JfSVNMNjI3MUEgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9MTTM2M1g9 bQorQ09ORklHX1JFR1VMQVRPUl9MT0NITkFHQVI9bQorIyBDT05GSUdfUkVHVUxBVE9SX0xQMzk3 MSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfTFAzOTcyIGlzIG5vdCBzZXQKKyMgQ09O RklHX1JFR1VMQVRPUl9MUDg3MlggaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9MUDg3M1g9 bQorIyBDT05GSUdfUkVHVUxBVE9SX0xQODc1NSBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9S X0xQODc1NjU9bQorQ09ORklHX1JFR1VMQVRPUl9MVEMzNTg5PW0KK0NPTkZJR19SRUdVTEFUT1Jf TFRDMzY3Nj1tCisjIENPTkZJR19SRUdVTEFUT1JfTUFYMTU4NiBpcyBub3Qgc2V0CitDT05GSUdf UkVHVUxBVE9SX01BWDU5N1g9bQorQ09ORklHX1JFR1VMQVRPUl9NQVg3NzYyMD1tCitDT05GSUdf UkVHVUxBVE9SX01BWDc3NjUwPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9NQVg4NjQ5IGlzIG5vdCBz ZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9NQVg4NjYwIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFU T1JfTUFYODg5Mz1tCisjIENPTkZJR19SRUdVTEFUT1JfTUFYODk1MiBpcyBub3Qgc2V0CisjIENP TkZJR19SRUdVTEFUT1JfTUFYODk3MyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfTUFY MjAwODYgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9NQVgyMDQxMT1tCisjIENPTkZJR19S RUdVTEFUT1JfTUFYNzc4MjYgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9NQ1AxNjUwMj1t CitDT05GSUdfUkVHVUxBVE9SX01QNTQxNj1tCitDT05GSUdfUkVHVUxBVE9SX01QODg1OT1tCitD T05GSUdfUkVHVUxBVE9SX01QODg2WD1tCitDT05GSUdfUkVHVUxBVE9SX01QUTc5MjA9bQorIyBD T05GSUdfUkVHVUxBVE9SX01UNjMxMSBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX01UNjMx NT1tCitDT05GSUdfUkVHVUxBVE9SX01UNjM3MD1tCitDT05GSUdfUkVHVUxBVE9SX1BDQTk0NTA9 bQorQ09ORklHX1JFR1VMQVRPUl9QRjhYMDA9bQorIyBDT05GSUdfUkVHVUxBVE9SX1BGVVpFMTAw IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9QVjg4MDYwIGlzIG5vdCBzZXQKKyMgQ09O RklHX1JFR1VMQVRPUl9QVjg4MDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9QVjg4 MDkwIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfUFdNPW0KK0NPTkZJR19SRUdVTEFUT1Jf UUNPTV9TUE1JPW0KK0NPTkZJR19SRUdVTEFUT1JfUUNPTV9VU0JfVkJVUz1tCitDT05GSUdfUkVH VUxBVE9SX1JBU1BCRVJSWVBJX1RPVUNIU0NSRUVOX0FUVElOWT1tCitDT05GSUdfUkVHVUxBVE9S X1JLODA4PW0KK0NPTkZJR19SRUdVTEFUT1JfUk9ITT1tCitDT05GSUdfUkVHVUxBVE9SX1JUNDgw MT1tCitDT05GSUdfUkVHVUxBVE9SX1JUNDgwMz1tCitDT05GSUdfUkVHVUxBVE9SX1JUNDgzMT1t CitDT05GSUdfUkVHVUxBVE9SX1JUNTEyMD1tCitDT05GSUdfUkVHVUxBVE9SX1JUNTE5MEE9bQor Q09ORklHX1JFR1VMQVRPUl9SVDU3Mzk9bQorQ09ORklHX1JFR1VMQVRPUl9SVDU3NTk9bQorQ09O RklHX1JFR1VMQVRPUl9SVDYxNjA9bQorQ09ORklHX1JFR1VMQVRPUl9SVDYxOTA9bQorQ09ORklH X1JFR1VMQVRPUl9SVDYyNDU9bQorQ09ORklHX1JFR1VMQVRPUl9SVFEyMTM0PW0KK0NPTkZJR19S RUdVTEFUT1JfUlRNVjIwPW0KK0NPTkZJR19SRUdVTEFUT1JfUlRRNjc1Mj1tCitDT05GSUdfUkVH VUxBVE9SX1NLWTgxNDUyPW0KK0NPTkZJR19SRUdVTEFUT1JfU0xHNTEwMDA9bQorQ09ORklHX1JF R1VMQVRPUl9TVFBNSUMxPW0KK0NPTkZJR19SRUdVTEFUT1JfU1k3NjM2QT1tCitDT05GSUdfUkVH VUxBVE9SX1NZODEwNkE9bQorQ09ORklHX1JFR1VMQVRPUl9TWTg4MjRYPW0KK0NPTkZJR19SRUdV TEFUT1JfU1k4ODI3Tj1tCisjIENPTkZJR19SRUdVTEFUT1JfVFBTNTE2MzIgaXMgbm90IHNldAor IyBDT05GSUdfUkVHVUxBVE9SX1RQUzYyMzYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRP Ul9UUFM2Mjg2WCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfVFBTNjUwMjMgaXMgbm90 IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDdYIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdV TEFUT1JfVFBTNjUxMzI9bQorQ09ORklHX1JFR1VMQVRPUl9UUFM2NTIxOT1tCisjIENPTkZJR19S RUdVTEFUT1JfVFBTNjUyNFggaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9WQ1RSTD1tCitD T05GSUdfUkVHVUxBVE9SX1dNODk5ND1tCitDT05GSUdfUkVHVUxBVE9SX1FDT01fTEFCSUJCPW0K K0NPTkZJR19SQ19DT1JFPW0KK0NPTkZJR19MSVJDPXkKK0NPTkZJR19SQ19NQVA9bQorQ09ORklH X1JDX0RFQ09ERVJTPXkKK0NPTkZJR19JUl9JTU9OX0RFQ09ERVI9bQorQ09ORklHX0lSX0pWQ19E RUNPREVSPW0KK0NPTkZJR19JUl9NQ0VfS0JEX0RFQ09ERVI9bQorQ09ORklHX0lSX05FQ19ERUNP REVSPW0KK0NPTkZJR19JUl9SQzVfREVDT0RFUj1tCitDT05GSUdfSVJfUkM2X0RFQ09ERVI9bQor Q09ORklHX0lSX1JDTU1fREVDT0RFUj1tCitDT05GSUdfSVJfU0FOWU9fREVDT0RFUj1tCitDT05G SUdfSVJfU0hBUlBfREVDT0RFUj1tCitDT05GSUdfSVJfU09OWV9ERUNPREVSPW0KK0NPTkZJR19J Ul9YTVBfREVDT0RFUj1tCitDT05GSUdfUkNfREVWSUNFUz15CitDT05GSUdfSVJfR1BJT19DSVI9 bQorQ09ORklHX0lSX0dQSU9fVFg9bQorQ09ORklHX0lSX0hJWDVIRDI9bQorQ09ORklHX0lSX0lH T1JQTFVHVVNCPW0KK0NPTkZJR19JUl9JR1VBTkE9bQorQ09ORklHX0lSX0lNT049bQorQ09ORklH X0lSX0lNT05fUkFXPW0KK0NPTkZJR19JUl9NQ0VVU0I9bQorQ09ORklHX0lSX1BXTV9UWD1tCitD T05GSUdfSVJfUkVEUkFUMz1tCitDT05GSUdfSVJfU0VSSUFMPW0KK0NPTkZJR19JUl9TRVJJQUxf VFJBTlNNSVRURVI9eQorQ09ORklHX0lSX1NQST1tCitDT05GSUdfSVJfU1RSRUFNWkFQPW0KK0NP TkZJR19JUl9UT1k9bQorQ09ORklHX0lSX1RUVVNCSVI9bQorQ09ORklHX1JDX0FUSV9SRU1PVEU9 bQorQ09ORklHX1JDX0xPT1BCQUNLPW0KK0NPTkZJR19SQ19YQk9YX0RWRD1tCitDT05GSUdfQ0VD X0NPUkU9bQorQ09ORklHX0NFQ19OT1RJRklFUj15CisKKyMKKyMgQ0VDIHN1cHBvcnQKKyMKK0NP TkZJR19NRURJQV9DRUNfUkM9eQorQ09ORklHX01FRElBX0NFQ19TVVBQT1JUPXkKK0NPTkZJR19D RUNfQ0g3MzIyPW0KK0NPTkZJR19VU0JfUFVMU0U4X0NFQz1tCitDT05GSUdfVVNCX1JBSU5TSEFE T1dfQ0VDPW0KKyMgZW5kIG9mIENFQyBzdXBwb3J0CisKK0NPTkZJR19NRURJQV9TVVBQT1JUPW0K KyMgQ09ORklHX01FRElBX1NVUFBPUlRfRklMVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9T VUJEUlZfQVVUT1NFTEVDVD15CisKKyMKKyMgTWVkaWEgZGV2aWNlIHR5cGVzCisjCitDT05GSUdf TUVESUFfQ0FNRVJBX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX0FOQUxPR19UVl9TVVBQT1JUPXkK K0NPTkZJR19NRURJQV9ESUdJVEFMX1RWX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX1JBRElPX1NV UFBPUlQ9eQorQ09ORklHX01FRElBX1NEUl9TVVBQT1JUPXkKK0NPTkZJR19NRURJQV9QTEFURk9S TV9TVVBQT1JUPXkKK0NPTkZJR19NRURJQV9URVNUX1NVUFBPUlQ9eQorIyBlbmQgb2YgTWVkaWEg ZGV2aWNlIHR5cGVzCisKKyMKKyMgTWVkaWEgY29yZSBzdXBwb3J0CisjCitDT05GSUdfVklERU9f REVWPW0KK0NPTkZJR19NRURJQV9DT05UUk9MTEVSPXkKK0NPTkZJR19EVkJfQ09SRT1tCisjIGVu ZCBvZiBNZWRpYSBjb3JlIHN1cHBvcnQKKworIworIyBWaWRlbzRMaW51eCBvcHRpb25zCisjCitD T05GSUdfVklERU9fVjRMMl9JMkM9eQorQ09ORklHX1ZJREVPX1Y0TDJfU1VCREVWX0FQST15Cisj IENPTkZJR19WSURFT19BRFZfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fRklYRURf TUlOT1JfUkFOR0VTIGlzIG5vdCBzZXQKK0NPTkZJR19WSURFT19UVU5FUj1tCitDT05GSUdfVjRM Ml9NRU0yTUVNX0RFVj1tCitDT05GSUdfVjRMMl9GTEFTSF9MRURfQ0xBU1M9bQorQ09ORklHX1Y0 TDJfRldOT0RFPW0KK0NPTkZJR19WNEwyX0FTWU5DPW0KK0NPTkZJR19WSURFT0JVRl9HRU49bQor Q09ORklHX1ZJREVPQlVGX0RNQV9TRz1tCisjIGVuZCBvZiBWaWRlbzRMaW51eCBvcHRpb25zCisK KyMKKyMgTWVkaWEgY29udHJvbGxlciBvcHRpb25zCisjCitDT05GSUdfTUVESUFfQ09OVFJPTExF Ul9EVkI9eQorQ09ORklHX01FRElBX0NPTlRST0xMRVJfUkVRVUVTVF9BUEk9eQorIyBlbmQgb2Yg TWVkaWEgY29udHJvbGxlciBvcHRpb25zCisKKyMKKyMgRGlnaXRhbCBUViBvcHRpb25zCisjCisj IENPTkZJR19EVkJfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfRFZCX05FVD15CitDT05GSUdfRFZC X01BWF9BREFQVEVSUz04CitDT05GSUdfRFZCX0RZTkFNSUNfTUlOT1JTPXkKKyMgQ09ORklHX0RW Ql9ERU1VWF9TRUNUSU9OX0xPU1NfTE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9VTEVfREVC VUcgaXMgbm90IHNldAorIyBlbmQgb2YgRGlnaXRhbCBUViBvcHRpb25zCisKKyMKKyMgTWVkaWEg ZHJpdmVycworIworCisjCisjIE1lZGlhIGRyaXZlcnMKKyMKK0NPTkZJR19NRURJQV9VU0JfU1VQ UE9SVD15CisKKyMKKyMgV2ViY2FtIGRldmljZXMKKyMKK0NPTkZJR19VU0JfR1NQQ0E9bQorQ09O RklHX1VTQl9HU1BDQV9CRU5RPW0KK0NPTkZJR19VU0JfR1NQQ0FfQ09ORVg9bQorQ09ORklHX1VT Ql9HU1BDQV9DUElBMT1tCitDT05GSUdfVVNCX0dTUENBX0RUQ1MwMzM9bQorQ09ORklHX1VTQl9H U1BDQV9FVE9NUz1tCitDT05GSUdfVVNCX0dTUENBX0ZJTkVQSVg9bQorQ09ORklHX1VTQl9HU1BD QV9KRUlMSU5KPW0KK0NPTkZJR19VU0JfR1NQQ0FfSkwyMDA1QkNEPW0KK0NPTkZJR19VU0JfR1NQ Q0FfS0lORUNUPW0KK0NPTkZJR19VU0JfR1NQQ0FfS09OSUNBPW0KK0NPTkZJR19VU0JfR1NQQ0Ff TUFSUz1tCitDT05GSUdfVVNCX0dTUENBX01SOTczMTBBPW0KK0NPTkZJR19VU0JfR1NQQ0FfTlc4 MFg9bQorQ09ORklHX1VTQl9HU1BDQV9PVjUxOT1tCitDT05GSUdfVVNCX0dTUENBX09WNTM0PW0K K0NPTkZJR19VU0JfR1NQQ0FfT1Y1MzRfOT1tCitDT05GSUdfVVNCX0dTUENBX1BBQzIwNz1tCitD T05GSUdfVVNCX0dTUENBX1BBQzczMDI9bQorQ09ORklHX1VTQl9HU1BDQV9QQUM3MzExPW0KK0NP TkZJR19VU0JfR1NQQ0FfU0U0MDE9bQorQ09ORklHX1VTQl9HU1BDQV9TTjlDMjAyOD1tCitDT05G SUdfVVNCX0dTUENBX1NOOUMyMFg9bQorQ09ORklHX1VTQl9HU1BDQV9TT05JWEI9bQorQ09ORklH X1VTQl9HU1BDQV9TT05JWEo9bQorQ09ORklHX1VTQl9HU1BDQV9TUENBMTUyOD1tCitDT05GSUdf VVNCX0dTUENBX1NQQ0E1MDA9bQorQ09ORklHX1VTQl9HU1BDQV9TUENBNTAxPW0KK0NPTkZJR19V U0JfR1NQQ0FfU1BDQTUwNT1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0E1MDY9bQorQ09ORklHX1VT Ql9HU1BDQV9TUENBNTA4PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BDQTU2MT1tCitDT05GSUdfVVNC X0dTUENBX1NROTA1PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1E5MDVDPW0KK0NPTkZJR19VU0JfR1NQ Q0FfU1E5MzBYPW0KK0NPTkZJR19VU0JfR1NQQ0FfU1RLMDE0PW0KK0NPTkZJR19VU0JfR1NQQ0Ff U1RLMTEzNT1tCitDT05GSUdfVVNCX0dTUENBX1NUVjA2ODA9bQorQ09ORklHX1VTQl9HU1BDQV9T VU5QTFVTPW0KK0NPTkZJR19VU0JfR1NQQ0FfVDYxMz1tCitDT05GSUdfVVNCX0dTUENBX1RPUFJP PW0KK0NPTkZJR19VU0JfR1NQQ0FfVE9VUFRFSz1tCitDT05GSUdfVVNCX0dTUENBX1RWODUzMj1t CitDT05GSUdfVVNCX0dTUENBX1ZDMDMyWD1tCitDT05GSUdfVVNCX0dTUENBX1ZJQ0FNPW0KK0NP TkZJR19VU0JfR1NQQ0FfWElSTElOS19DSVQ9bQorQ09ORklHX1VTQl9HU1BDQV9aQzNYWD1tCitD T05GSUdfVVNCX0dMODYwPW0KK0NPTkZJR19VU0JfTTU2MDI9bQorQ09ORklHX1VTQl9TVFYwNlhY PW0KK0NPTkZJR19VU0JfUFdDPW0KKyMgQ09ORklHX1VTQl9QV0NfREVCVUcgaXMgbm90IHNldAor Q09ORklHX1VTQl9QV0NfSU5QVVRfRVZERVY9eQorQ09ORklHX1VTQl9TMjI1NT1tCitDT05GSUdf VklERU9fVVNCVFY9bQorQ09ORklHX1VTQl9WSURFT19DTEFTUz1tCitDT05GSUdfVVNCX1ZJREVP X0NMQVNTX0lOUFVUX0VWREVWPXkKKworIworIyBBbmFsb2cgVFYgVVNCIGRldmljZXMKKyMKK0NP TkZJR19WSURFT19HTzcwMDc9bQorQ09ORklHX1ZJREVPX0dPNzAwN19VU0I9bQorQ09ORklHX1ZJ REVPX0dPNzAwN19MT0FERVI9bQorQ09ORklHX1ZJREVPX0dPNzAwN19VU0JfUzIyNTBfQk9BUkQ9 bQorQ09ORklHX1ZJREVPX0hEUFZSPW0KK0NPTkZJR19WSURFT19QVlJVU0IyPW0KK0NPTkZJR19W SURFT19QVlJVU0IyX1NZU0ZTPXkKK0NPTkZJR19WSURFT19QVlJVU0IyX0RWQj15CisjIENPTkZJ R19WSURFT19QVlJVU0IyX0RFQlVHSUZDIGlzIG5vdCBzZXQKK0NPTkZJR19WSURFT19TVEsxMTYw X0NPTU1PTj1tCitDT05GSUdfVklERU9fU1RLMTE2MD1tCisKKyMKKyMgQW5hbG9nL2RpZ2l0YWwg VFYgVVNCIGRldmljZXMKKyMKK0NPTkZJR19WSURFT19BVTA4Mjg9bQorQ09ORklHX1ZJREVPX0FV MDgyOF9WNEwyPXkKK0NPTkZJR19WSURFT19BVTA4MjhfUkM9eQorQ09ORklHX1ZJREVPX0NYMjMx WFg9bQorQ09ORklHX1ZJREVPX0NYMjMxWFhfUkM9eQorQ09ORklHX1ZJREVPX0NYMjMxWFhfQUxT QT1tCitDT05GSUdfVklERU9fQ1gyMzFYWF9EVkI9bQorCisjCisjIERpZ2l0YWwgVFYgVVNCIGRl dmljZXMKKyMKK0NPTkZJR19EVkJfQVMxMDI9bQorQ09ORklHX0RWQl9CMkMyX0ZMRVhDT1BfVVNC PW0KKyMgQ09ORklHX0RWQl9CMkMyX0ZMRVhDT1BfVVNCX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJ R19EVkJfVVNCX1YyPW0KK0NPTkZJR19EVkJfVVNCX0FGOTAxNT1tCitDT05GSUdfRFZCX1VTQl9B RjkwMzU9bQorQ09ORklHX0RWQl9VU0JfQU5ZU0VFPW0KK0NPTkZJR19EVkJfVVNCX0FVNjYxMD1t CitDT05GSUdfRFZCX1VTQl9BWjYwMDc9bQorQ09ORklHX0RWQl9VU0JfQ0U2MjMwPW0KK0NPTkZJ R19EVkJfVVNCX0RWQlNLWT1tCitDT05GSUdfRFZCX1VTQl9FQzE2OD1tCitDT05GSUdfRFZCX1VT Ql9HTDg2MT1tCitDT05GSUdfRFZCX1VTQl9MTUUyNTEwPW0KK0NPTkZJR19EVkJfVVNCX01YTDEx MVNGPW0KK0NPTkZJR19EVkJfVVNCX1JUTDI4WFhVPW0KK0NPTkZJR19EVkJfVVNCX1pEMTMwMT1t CitDT05GSUdfRFZCX1VTQj1tCisjIENPTkZJR19EVkJfVVNCX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19EVkJfVVNCX0E4MDA9bQorQ09ORklHX0RWQl9VU0JfQUY5MDA1PW0KK0NPTkZJR19EVkJf VVNCX0FGOTAwNV9SRU1PVEU9bQorQ09ORklHX0RWQl9VU0JfQVo2MDI3PW0KK0NPTkZJR19EVkJf VVNCX0NJTkVSR1lfVDI9bQorQ09ORklHX0RWQl9VU0JfQ1hVU0I9bQorQ09ORklHX0RWQl9VU0Jf Q1hVU0JfQU5BTE9HPXkKK0NPTkZJR19EVkJfVVNCX0RJQjA3MDA9bQorQ09ORklHX0RWQl9VU0Jf RElCMzAwME1DPW0KK0NPTkZJR19EVkJfVVNCX0RJQlVTQl9NQj1tCisjIENPTkZJR19EVkJfVVNC X0RJQlVTQl9NQl9GQVVMVFkgaXMgbm90IHNldAorQ09ORklHX0RWQl9VU0JfRElCVVNCX01DPW0K K0NPTkZJR19EVkJfVVNCX0RJR0lUVj1tCitDT05GSUdfRFZCX1VTQl9EVFQyMDBVPW0KK0NPTkZJ R19EVkJfVVNCX0RUVjUxMDA9bQorQ09ORklHX0RWQl9VU0JfRFcyMTAyPW0KK0NPTkZJR19EVkJf VVNCX0dQOFBTSz1tCitDT05GSUdfRFZCX1VTQl9NOTIwWD1tCitDT05GSUdfRFZCX1VTQl9OT1ZB X1RfVVNCMj1tCitDT05GSUdfRFZCX1VTQl9PUEVSQTE9bQorQ09ORklHX0RWQl9VU0JfUENUVjQ1 MkU9bQorQ09ORklHX0RWQl9VU0JfVEVDSE5JU0FUX1VTQjI9bQorQ09ORklHX0RWQl9VU0JfVFRV U0IyPW0KK0NPTkZJR19EVkJfVVNCX1VNVF8wMTA9bQorQ09ORklHX0RWQl9VU0JfVlA3MDJYPW0K K0NPTkZJR19EVkJfVVNCX1ZQNzA0NT1tCitDT05GSUdfU01TX1VTQl9EUlY9bQorQ09ORklHX0RW Ql9UVFVTQl9CVURHRVQ9bQorQ09ORklHX0RWQl9UVFVTQl9ERUM9bQorCisjCisjIFdlYmNhbSwg VFYgKGFuYWxvZy9kaWdpdGFsKSBVU0IgZGV2aWNlcworIworQ09ORklHX1ZJREVPX0VNMjhYWD1t CitDT05GSUdfVklERU9fRU0yOFhYX1Y0TDI9bQorQ09ORklHX1ZJREVPX0VNMjhYWF9BTFNBPW0K K0NPTkZJR19WSURFT19FTTI4WFhfRFZCPW0KK0NPTkZJR19WSURFT19FTTI4WFhfUkM9bQorCisj CisjIFNvZnR3YXJlIGRlZmluZWQgcmFkaW8gVVNCIGRldmljZXMKKyMKK0NPTkZJR19VU0JfQUlS U1BZPW0KK0NPTkZJR19VU0JfSEFDS1JGPW0KK0NPTkZJR19VU0JfTVNJMjUwMD1tCitDT05GSUdf TUVESUFfUENJX1NVUFBPUlQ9eQorCisjCisjIE1lZGlhIGNhcHR1cmUgc3VwcG9ydAorIworQ09O RklHX1ZJREVPX1NPTE82WDEwPW0KK0NPTkZJR19WSURFT19UVzU4NjQ9bQorQ09ORklHX1ZJREVP X1RXNjg9bQorQ09ORklHX1ZJREVPX1RXNjg2WD1tCisjIENPTkZJR19WSURFT19aT1JBTiBpcyBu b3Qgc2V0CisKKyMKKyMgTWVkaWEgY2FwdHVyZS9hbmFsb2cgVFYgc3VwcG9ydAorIworQ09ORklH X1ZJREVPX0RUMzE1NT1tCitDT05GSUdfVklERU9fSVZUVj1tCitDT05GSUdfVklERU9fSVZUVl9B TFNBPW0KK0NPTkZJR19WSURFT19GQl9JVlRWPW0KK0NPTkZJR19WSURFT19IRVhJVU1fR0VNSU5J PW0KK0NPTkZJR19WSURFT19IRVhJVU1fT1JJT049bQorQ09ORklHX1ZJREVPX01YQj1tCisKKyMK KyMgTWVkaWEgY2FwdHVyZS9hbmFsb2cvaHlicmlkIFRWIHN1cHBvcnQKKyMKK0NPTkZJR19WSURF T19CVDg0OD1tCitDT05GSUdfRFZCX0JUOFhYPW0KK0NPTkZJR19WSURFT19DWDE4PW0KK0NPTkZJ R19WSURFT19DWDE4X0FMU0E9bQorQ09ORklHX1ZJREVPX0NYMjM4ODU9bQorQ09ORklHX01FRElB X0FMVEVSQV9DST1tCitDT05GSUdfVklERU9fQ1gyNTgyMT1tCitDT05GSUdfVklERU9fQ1gyNTgy MV9BTFNBPW0KK0NPTkZJR19WSURFT19DWDg4PW0KK0NPTkZJR19WSURFT19DWDg4X0FMU0E9bQor Q09ORklHX1ZJREVPX0NYODhfQkxBQ0tCSVJEPW0KK0NPTkZJR19WSURFT19DWDg4X0RWQj1tCitD T05GSUdfVklERU9fQ1g4OF9FTkFCTEVfVlAzMDU0PXkKK0NPTkZJR19WSURFT19DWDg4X1ZQMzA1 ND1tCitDT05GSUdfVklERU9fQ1g4OF9NUEVHPW0KK0NPTkZJR19WSURFT19TQUE3MTM0PW0KK0NP TkZJR19WSURFT19TQUE3MTM0X0FMU0E9bQorQ09ORklHX1ZJREVPX1NBQTcxMzRfUkM9eQorQ09O RklHX1ZJREVPX1NBQTcxMzRfRFZCPW0KK0NPTkZJR19WSURFT19TQUE3MTM0X0dPNzAwNz1tCitD T05GSUdfVklERU9fU0FBNzE2ND1tCisKKyMKKyMgTWVkaWEgZGlnaXRhbCBUViBQQ0kgQWRhcHRl cnMKKyMKK0NPTkZJR19EVkJfQjJDMl9GTEVYQ09QX1BDST1tCisjIENPTkZJR19EVkJfQjJDMl9G TEVYQ09QX1BDSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRFZCX0REQlJJREdFPW0KKyMgQ09O RklHX0RWQl9EREJSSURHRV9NU0lFTkFCTEUgaXMgbm90IHNldAorQ09ORklHX0RWQl9ETTExMDU9 bQorQ09ORklHX01BTlRJU19DT1JFPW0KK0NPTkZJR19EVkJfTUFOVElTPW0KK0NPTkZJR19EVkJf SE9QUEVSPW0KK0NPTkZJR19EVkJfTkVUVVBfVU5JRFZCPW0KK0NPTkZJR19EVkJfTkdFTkU9bQor Q09ORklHX0RWQl9QTFVUTzI9bQorQ09ORklHX0RWQl9QVDE9bQorQ09ORklHX0RWQl9QVDM9bQor Q09ORklHX0RWQl9TTUlQQ0lFPW0KK0NPTkZJR19EVkJfQlVER0VUX0NPUkU9bQorQ09ORklHX0RW Ql9CVURHRVQ9bQorQ09ORklHX0RWQl9CVURHRVRfQ0k9bQorQ09ORklHX0RWQl9CVURHRVRfQVY9 bQorQ09ORklHX1JBRElPX0FEQVBURVJTPW0KK0NPTkZJR19SQURJT19NQVhJUkFESU89bQorQ09O RklHX1JBRElPX1NBQTc3MDZIPW0KK0NPTkZJR19SQURJT19TSEFSSz1tCitDT05GSUdfUkFESU9f U0hBUksyPW0KK0NPTkZJR19SQURJT19TSTQ3MTM9bQorQ09ORklHX1JBRElPX1RFQTU3NVg9bQor Q09ORklHX1JBRElPX1RFQTU3NjQ9bQorQ09ORklHX1JBRElPX1RFRjY4NjI9bQorQ09ORklHX1JB RElPX1dMMTI3Mz1tCitDT05GSUdfVVNCX0RTQlI9bQorQ09ORklHX1VTQl9LRUVORT1tCitDT05G SUdfVVNCX01BOTAxPW0KK0NPTkZJR19VU0JfTVI4MDA9bQorQ09ORklHX1VTQl9SQVJFTU9OTz1t CitDT05GSUdfUkFESU9fU0k0NzBYPW0KK0NPTkZJR19VU0JfU0k0NzBYPW0KKyMgQ09ORklHX0ky Q19TSTQ3MFggaXMgbm90IHNldAorQ09ORklHX1VTQl9TSTQ3MTM9bQorQ09ORklHX1BMQVRGT1JN X1NJNDcxMz1tCitDT05GSUdfSTJDX1NJNDcxMz1tCitDT05GSUdfUkFESU9fV0wxMjhYPW0KK0NP TkZJR19NRURJQV9QTEFURk9STV9EUklWRVJTPXkKK0NPTkZJR19WNExfUExBVEZPUk1fRFJJVkVS Uz15CitDT05GSUdfU0RSX1BMQVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX0RWQl9QTEFURk9STV9E UklWRVJTPXkKK0NPTkZJR19WNExfTUVNMk1FTV9EUklWRVJTPXkKK0NPTkZJR19WSURFT19NRU0y TUVNX0RFSU5URVJMQUNFPW0KK0NPTkZJR19WSURFT19NVVg9bQorCisjCisjIEFsbGVncm8gRFZU IG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBBbWxvZ2ljIG1lZGlhIHBsYXRmb3Jt IGRyaXZlcnMKKyMKKworIworIyBBbXBoaW9uIGRyaXZlcnMKKyMKKworIworIyBBc3BlZWQgbWVk aWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIEF0bWVsIG1lZGlhIHBsYXRmb3JtIGRyaXZl cnMKKyMKKworIworIyBDYWRlbmNlIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19W SURFT19DQURFTkNFX0NTSTJSWD1tCitDT05GSUdfVklERU9fQ0FERU5DRV9DU0kyVFg9bQorCisj CisjIENoaXBzJk1lZGlhIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBJbnRlbCBt ZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgTWFydmVsbCBtZWRpYSBwbGF0Zm9ybSBk cml2ZXJzCisjCitDT05GSUdfVklERU9fQ0FGRV9DQ0lDPW0KKworIworIyBNZWRpYXRlayBtZWRp YSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgTWljcm9jaGlwIFRlY2hub2xvZ3ksIEluYy4g bWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIE5WaWRpYSBtZWRpYSBwbGF0Zm9ybSBk cml2ZXJzCisjCisKKyMKKyMgTlhQIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBR dWFsY29tbSBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgUmVuZXNhcyBtZWRpYSBw bGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgUm9ja2NoaXAgbWVkaWEgcGxhdGZvcm0gZHJpdmVy cworIworCisjCisjIFNhbXN1bmcgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIFNU TWljcm9lbGVjdHJvbmljcyBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgU3RhckZp dmUgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworQ09ORklHX1ZJREVPX1NUQVJGSVZFX0NBTVNT PW0KKworIworIyBTdW54aSBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgVGV4YXMg SW5zdHJ1bWVudHMgZHJpdmVycworIworCisjCisjIFZlcmlzaWxpY29uIG1lZGlhIHBsYXRmb3Jt IGRyaXZlcnMKKyMKKworIworIyBWSUEgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisj IFhpbGlueCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCitDT05GSUdfVklERU9fWElMSU5YPW0K K0NPTkZJR19WSURFT19YSUxJTlhfQ1NJMlJYU1M9bQorQ09ORklHX1ZJREVPX1hJTElOWF9UUEc9 bQorQ09ORklHX1ZJREVPX1hJTElOWF9WVEM9bQorCisjCisjIE1NQy9TRElPIERWQiBhZGFwdGVy cworIworQ09ORklHX1NNU19TRElPX0RSVj1tCitDT05GSUdfVjRMX1RFU1RfRFJJVkVSUz15CitD T05GSUdfVklERU9fVklNMk09bQorQ09ORklHX1ZJREVPX1ZJQ09ERUM9bQorQ09ORklHX1ZJREVP X1ZJTUM9bQorQ09ORklHX1ZJREVPX1ZJVklEPW0KK0NPTkZJR19WSURFT19WSVZJRF9DRUM9eQor Q09ORklHX1ZJREVPX1ZJVklEX01BWF9ERVZTPTY0CitDT05GSUdfVklERU9fVklTTD1tCisjIENP TkZJR19WSVNMX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RFU1RfRFJJVkVSUyBp cyBub3Qgc2V0CisKKyMKKyMgRmlyZVdpcmUgKElFRUUgMTM5NCkgQWRhcHRlcnMKKyMKK0NPTkZJ R19EVkJfRklSRURUVj1tCitDT05GSUdfRFZCX0ZJUkVEVFZfSU5QVVQ9eQorQ09ORklHX01FRElB X0NPTU1PTl9PUFRJT05TPXkKKworIworIyBjb21tb24gZHJpdmVyIG9wdGlvbnMKKyMKK0NPTkZJ R19DWVBSRVNTX0ZJUk1XQVJFPW0KK0NPTkZJR19UVFBDSV9FRVBST009bQorQ09ORklHX1VWQ19D T01NT049bQorQ09ORklHX1ZJREVPX0NYMjM0MVg9bQorQ09ORklHX1ZJREVPX1RWRUVQUk9NPW0K K0NPTkZJR19EVkJfQjJDMl9GTEVYQ09QPW0KK0NPTkZJR19WSURFT19TQUE3MTQ2PW0KK0NPTkZJ R19WSURFT19TQUE3MTQ2X1ZWPW0KK0NPTkZJR19TTVNfU0lBTk9fTURUVj1tCitDT05GSUdfU01T X1NJQU5PX1JDPXkKKyMgQ09ORklHX1NNU19TSUFOT19ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJ R19WSURFT19WNEwyX1RQRz1tCitDT05GSUdfVklERU9CVUYyX0NPUkU9bQorQ09ORklHX1ZJREVP QlVGMl9WNEwyPW0KK0NPTkZJR19WSURFT0JVRjJfTUVNT1BTPW0KK0NPTkZJR19WSURFT0JVRjJf RE1BX0NPTlRJRz1tCitDT05GSUdfVklERU9CVUYyX1ZNQUxMT0M9bQorQ09ORklHX1ZJREVPQlVG Ml9ETUFfU0c9bQorQ09ORklHX1ZJREVPQlVGMl9EVkI9bQorIyBlbmQgb2YgTWVkaWEgZHJpdmVy cworCisjCisjIE1lZGlhIGFuY2lsbGFyeSBkcml2ZXJzCisjCitDT05GSUdfTUVESUFfQVRUQUNI PXkKKworIworIyBJUiBJMkMgZHJpdmVyIGF1dG8tc2VsZWN0ZWQgYnkgJ0F1dG9zZWxlY3QgYW5j aWxsYXJ5IGRyaXZlcnMnCisjCitDT05GSUdfVklERU9fSVJfSTJDPW0KKworIworIyBDYW1lcmEg c2Vuc29yIGRldmljZXMKKyMKK0NPTkZJR19WSURFT19BUFRJTkFfUExMPW0KK0NPTkZJR19WSURF T19DQ1NfUExMPW0KK0NPTkZJR19WSURFT19BUjA1MjE9bQorQ09ORklHX1ZJREVPX0hJNTU2PW0K K0NPTkZJR19WSURFT19ISTg0Nj1tCitDT05GSUdfVklERU9fSEk4NDc9bQorQ09ORklHX1ZJREVP X0lNWDIwOD1tCitDT05GSUdfVklERU9fSU1YMjE0PW0KK0NPTkZJR19WSURFT19JTVgyMTk9bQor Q09ORklHX1ZJREVPX0lNWDI1OD1tCitDT05GSUdfVklERU9fSU1YMjc0PW0KK0NPTkZJR19WSURF T19JTVgyOTA9bQorQ09ORklHX1ZJREVPX0lNWDI5Nj1tCitDT05GSUdfVklERU9fSU1YMzE5PW0K K0NPTkZJR19WSURFT19JTVgzMzQ9bQorQ09ORklHX1ZJREVPX0lNWDMzNT1tCitDT05GSUdfVklE RU9fSU1YMzU1PW0KK0NPTkZJR19WSURFT19JTVg0MTI9bQorQ09ORklHX1ZJREVPX0lNWDQxNT1t CitDT05GSUdfVklERU9fTUFYOTI3MV9MSUI9bQorQ09ORklHX1ZJREVPX01UOU0wMDE9bQorQ09O RklHX1ZJREVPX01UOU0xMTE9bQorQ09ORklHX1ZJREVPX01UOVAwMzE9bQorQ09ORklHX1ZJREVP X01UOVQxMTI9bQorQ09ORklHX1ZJREVPX01UOVYwMTE9bQorQ09ORklHX1ZJREVPX01UOVYwMzI9 bQorQ09ORklHX1ZJREVPX01UOVYxMTE9bQorQ09ORklHX1ZJREVPX09HMDFBMUI9bQorQ09ORklH X1ZJREVPX09WMDJBMTA9bQorQ09ORklHX1ZJREVPX09WMDhEMTA9bQorQ09ORklHX1ZJREVPX09W MDhYNDA9bQorQ09ORklHX1ZJREVPX09WMTM4NTg9bQorQ09ORklHX1ZJREVPX09WMTNCMTA9bQor Q09ORklHX1ZJREVPX09WMjY0MD1tCitDT05GSUdfVklERU9fT1YyNjU5PW0KK0NPTkZJR19WSURF T19PVjI2ODA9bQorQ09ORklHX1ZJREVPX09WMjY4NT1tCitDT05GSUdfVklERU9fT1Y0Njg5PW0K K0NPTkZJR19WSURFT19PVjU2NDA9bQorQ09ORklHX1ZJREVPX09WNTY0NT1tCitDT05GSUdfVklE RU9fT1Y1NjQ3PW0KK0NPTkZJR19WSURFT19PVjU2NDg9bQorQ09ORklHX1ZJREVPX09WNTY3MD1t CitDT05GSUdfVklERU9fT1Y1Njc1PW0KK0NPTkZJR19WSURFT19PVjU2OTM9bQorQ09ORklHX1ZJ REVPX09WNTY5NT1tCitDT05GSUdfVklERU9fT1Y2NjUwPW0KK0NPTkZJR19WSURFT19PVjcyNTE9 bQorQ09ORklHX1ZJREVPX09WNzY0MD1tCitDT05GSUdfVklERU9fT1Y3NjcwPW0KK0NPTkZJR19W SURFT19PVjc3Mlg9bQorQ09ORklHX1ZJREVPX09WNzc0MD1tCitDT05GSUdfVklERU9fT1Y4ODU2 PW0KK0NPTkZJR19WSURFT19PVjg4NTg9bQorQ09ORklHX1ZJREVPX09WODg2NT1tCitDT05GSUdf VklERU9fT1Y5MjgyPW0KK0NPTkZJR19WSURFT19PVjk2NDA9bQorQ09ORklHX1ZJREVPX09WOTY1 MD1tCitDT05GSUdfVklERU9fUkRBQ00yMD1tCitDT05GSUdfVklERU9fUkRBQ00yMT1tCitDT05G SUdfVklERU9fUko1NE4xPW0KK0NPTkZJR19WSURFT19TNUM3M00zPW0KK0NPTkZJR19WSURFT19T NUs1QkFGPW0KK0NPTkZJR19WSURFT19TNUs2QTM9bQorQ09ORklHX1ZJREVPX1NUX1ZHWFk2MT1t CitDT05GSUdfVklERU9fQ0NTPW0KK0NPTkZJR19WSURFT19FVDhFSzg9bQorIyBlbmQgb2YgQ2Ft ZXJhIHNlbnNvciBkZXZpY2VzCisKKyMKKyMgTGVucyBkcml2ZXJzCisjCitDT05GSUdfVklERU9f QUQ1ODIwPW0KK0NPTkZJR19WSURFT19BSzczNzU9bQorQ09ORklHX1ZJREVPX0RXOTcxND1tCitD T05GSUdfVklERU9fRFc5NzY4PW0KK0NPTkZJR19WSURFT19EVzk4MDdfVkNNPW0KKyMgZW5kIG9m IExlbnMgZHJpdmVycworCisjCisjIEZsYXNoIGRldmljZXMKKyMKK0NPTkZJR19WSURFT19BRFAx NjUzPW0KK0NPTkZJR19WSURFT19MTTM1NjA9bQorQ09ORklHX1ZJREVPX0xNMzY0Nj1tCisjIGVu ZCBvZiBGbGFzaCBkZXZpY2VzCisKKyMKKyMgQXVkaW8gZGVjb2RlcnMsIHByb2Nlc3NvcnMgYW5k IG1peGVycworIworQ09ORklHX1ZJREVPX0NTMzMwOD1tCitDT05GSUdfVklERU9fQ1M1MzQ1PW0K K0NPTkZJR19WSURFT19DUzUzTDMyQT1tCitDT05GSUdfVklERU9fTVNQMzQwMD1tCitDT05GSUdf VklERU9fU09OWV9CVEZfTVBYPW0KK0NPTkZJR19WSURFT19UREExOTk3WD1tCitDT05GSUdfVklE RU9fVERBNzQzMj1tCitDT05GSUdfVklERU9fVERBOTg0MD1tCitDT05GSUdfVklERU9fVEVBNjQx NUM9bQorQ09ORklHX1ZJREVPX1RFQTY0MjA9bQorQ09ORklHX1ZJREVPX1RMVjMyMEFJQzIzQj1t CitDT05GSUdfVklERU9fVFZBVURJTz1tCitDT05GSUdfVklERU9fVURBMTM0Mj1tCitDT05GSUdf VklERU9fVlAyN1NNUFg9bQorQ09ORklHX1ZJREVPX1dNODczOT1tCitDT05GSUdfVklERU9fV004 Nzc1PW0KKyMgZW5kIG9mIEF1ZGlvIGRlY29kZXJzLCBwcm9jZXNzb3JzIGFuZCBtaXhlcnMKKwor IworIyBSRFMgZGVjb2RlcnMKKyMKK0NPTkZJR19WSURFT19TQUE2NTg4PW0KKyMgZW5kIG9mIFJE UyBkZWNvZGVycworCisjCisjIFZpZGVvIGRlY29kZXJzCisjCitDT05GSUdfVklERU9fQURWNzE4 MD1tCitDT05GSUdfVklERU9fQURWNzE4Mz1tCitDT05GSUdfVklERU9fQURWNzQ4WD1tCitDT05G SUdfVklERU9fQURWNzYwND1tCitDT05GSUdfVklERU9fQURWNzYwNF9DRUM9eQorQ09ORklHX1ZJ REVPX0FEVjc4NDI9bQorQ09ORklHX1ZJREVPX0FEVjc4NDJfQ0VDPXkKK0NPTkZJR19WSURFT19C VDgxOT1tCitDT05GSUdfVklERU9fQlQ4NTY9bQorQ09ORklHX1ZJREVPX0JUODY2PW0KK0NPTkZJ R19WSURFT19JU0w3OTk4WD1tCitDT05GSUdfVklERU9fS1MwMTI3PW0KK0NPTkZJR19WSURFT19N QVg5Mjg2PW0KK0NPTkZJR19WSURFT19NTDg2Vjc2Njc9bQorQ09ORklHX1ZJREVPX1NBQTcxMTA9 bQorQ09ORklHX1ZJREVPX1NBQTcxMVg9bQorQ09ORklHX1ZJREVPX1RDMzU4NzQzPW0KK0NPTkZJ R19WSURFT19UQzM1ODc0M19DRUM9eQorQ09ORklHX1ZJREVPX1RDMzU4NzQ2PW0KK0NPTkZJR19W SURFT19UVlA1MTRYPW0KK0NPTkZJR19WSURFT19UVlA1MTUwPW0KK0NPTkZJR19WSURFT19UVlA3 MDAyPW0KK0NPTkZJR19WSURFT19UVzI4MDQ9bQorQ09ORklHX1ZJREVPX1RXOTkwMz1tCitDT05G SUdfVklERU9fVFc5OTA2PW0KK0NPTkZJR19WSURFT19UVzk5MTA9bQorQ09ORklHX1ZJREVPX1ZQ WDMyMjA9bQorCisjCisjIFZpZGVvIGFuZCBhdWRpbyBkZWNvZGVycworIworQ09ORklHX1ZJREVP X1NBQTcxN1g9bQorQ09ORklHX1ZJREVPX0NYMjU4NDA9bQorIyBlbmQgb2YgVmlkZW8gZGVjb2Rl cnMKKworIworIyBWaWRlbyBlbmNvZGVycworIworQ09ORklHX1ZJREVPX0FEVjcxNzA9bQorQ09O RklHX1ZJREVPX0FEVjcxNzU9bQorQ09ORklHX1ZJREVPX0FEVjczNDM9bQorQ09ORklHX1ZJREVP X0FEVjczOTM9bQorQ09ORklHX1ZJREVPX0FLODgxWD1tCitDT05GSUdfVklERU9fU0FBNzEyNz1t CitDT05GSUdfVklERU9fU0FBNzE4NT1tCitDT05GSUdfVklERU9fVEhTODIwMD1tCisjIGVuZCBv ZiBWaWRlbyBlbmNvZGVycworCisjCisjIFZpZGVvIGltcHJvdmVtZW50IGNoaXBzCisjCitDT05G SUdfVklERU9fVVBENjQwMzFBPW0KK0NPTkZJR19WSURFT19VUEQ2NDA4Mz1tCisjIGVuZCBvZiBW aWRlbyBpbXByb3ZlbWVudCBjaGlwcworCisjCisjIEF1ZGlvL1ZpZGVvIGNvbXByZXNzaW9uIGNo aXBzCisjCitDT05GSUdfVklERU9fU0FBNjc1MkhTPW0KKyMgZW5kIG9mIEF1ZGlvL1ZpZGVvIGNv bXByZXNzaW9uIGNoaXBzCisKKyMKKyMgU0RSIHR1bmVyIGNoaXBzCisjCitDT05GSUdfU0RSX01B WDIxNzU9bQorIyBlbmQgb2YgU0RSIHR1bmVyIGNoaXBzCisKKyMKKyMgTWlzY2VsbGFuZW91cyBo ZWxwZXIgY2hpcHMKKyMKK0NPTkZJR19WSURFT19JMkM9bQorQ09ORklHX1ZJREVPX001Mjc5MD1t CitDT05GSUdfVklERU9fU1RfTUlQSUQwMj1tCitDT05GSUdfVklERU9fVEhTNzMwMz1tCisjIGVu ZCBvZiBNaXNjZWxsYW5lb3VzIGhlbHBlciBjaGlwcworCisjCisjIE1lZGlhIFNQSSBBZGFwdGVy cworIworQ09ORklHX0NYRDI4ODBfU1BJX0RSVj1tCitDT05GSUdfVklERU9fR1MxNjYyPW0KKyMg ZW5kIG9mIE1lZGlhIFNQSSBBZGFwdGVycworCitDT05GSUdfTUVESUFfVFVORVI9bQorCisjCisj IEN1c3RvbWl6ZSBUViB0dW5lcnMKKyMKK0NPTkZJR19NRURJQV9UVU5FUl9FNDAwMD1tCitDT05G SUdfTUVESUFfVFVORVJfRkMwMDExPW0KK0NPTkZJR19NRURJQV9UVU5FUl9GQzAwMTI9bQorQ09O RklHX01FRElBX1RVTkVSX0ZDMDAxMz1tCitDT05GSUdfTUVESUFfVFVORVJfRkMyNTgwPW0KK0NP TkZJR19NRURJQV9UVU5FUl9JVDkxM1g9bQorQ09ORklHX01FRElBX1RVTkVSX004OFJTNjAwMFQ9 bQorQ09ORklHX01FRElBX1RVTkVSX01BWDIxNjU9bQorQ09ORklHX01FRElBX1RVTkVSX01DNDRT ODAzPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NU0kwMDE9bQorQ09ORklHX01FRElBX1RVTkVSX01U MjA2MD1tCitDT05GSUdfTUVESUFfVFVORVJfTVQyMDYzPW0KK0NPTkZJR19NRURJQV9UVU5FUl9N VDIwWFg9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjEzMT1tCitDT05GSUdfTUVESUFfVFVORVJf TVQyMjY2PW0KK0NPTkZJR19NRURJQV9UVU5FUl9NWEwzMDFSRj1tCitDT05GSUdfTUVESUFfVFVO RVJfTVhMNTAwNVM9bQorQ09ORklHX01FRElBX1RVTkVSX01YTDUwMDdUPW0KK0NPTkZJR19NRURJ QV9UVU5FUl9RTTFEMUIwMDA0PW0KK0NPTkZJR19NRURJQV9UVU5FUl9RTTFEMUMwMDQyPW0KK0NP TkZJR19NRURJQV9UVU5FUl9RVDEwMTA9bQorQ09ORklHX01FRElBX1RVTkVSX1I4MjBUPW0KK0NP TkZJR19NRURJQV9UVU5FUl9TSTIxNTc9bQorQ09ORklHX01FRElBX1RVTkVSX1NJTVBMRT1tCitD T05GSUdfTUVESUFfVFVORVJfVERBMTgyMTI9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTE4MjE4 PW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREExODI1MD1tCitDT05GSUdfTUVESUFfVFVORVJfVERB MTgyNzE9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyN1g9bQorQ09ORklHX01FRElBX1RVTkVS X1REQTgyOTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElBX1RV TkVSX1RFQTU3NjE9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01FRElB X1RVTkVSX1RVQTkwMDE9bQorQ09ORklHX01FRElBX1RVTkVSX1hDMjAyOD1tCitDT05GSUdfTUVE SUFfVFVORVJfWEM0MDAwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9bQorIyBlbmQgb2Yg Q3VzdG9taXplIFRWIHR1bmVycworCisjCisjIEN1c3RvbWlzZSBEVkIgRnJvbnRlbmRzCisjCisK KyMKKyMgTXVsdGlzdGFuZGFyZCAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKKyMKK0NPTkZJR19EVkJf TTg4RFMzMTAzPW0KK0NPTkZJR19EVkJfTVhMNVhYPW0KK0NPTkZJR19EVkJfU1RCMDg5OT1tCitD T05GSUdfRFZCX1NUQjYxMDA9bQorQ09ORklHX0RWQl9TVFYwOTB4PW0KK0NPTkZJR19EVkJfU1RW MDkxMD1tCitDT05GSUdfRFZCX1NUVjYxMTB4PW0KK0NPTkZJR19EVkJfU1RWNjExMT1tCisKKyMK KyMgTXVsdGlzdGFuZGFyZCAoY2FibGUgKyB0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisjCitDT05G SUdfRFZCX0RSWEs9bQorQ09ORklHX0RWQl9NTjg4NDcyPW0KK0NPTkZJR19EVkJfTU44ODQ3Mz1t CitDT05GSUdfRFZCX1NJMjE2NT1tCitDT05GSUdfRFZCX1REQTE4MjcxQzJERD1tCisKKyMKKyMg RFZCLVMgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX0NYMjQxMTA9bQorQ09O RklHX0RWQl9DWDI0MTE2PW0KK0NPTkZJR19EVkJfQ1gyNDExNz1tCitDT05GSUdfRFZCX0NYMjQx MjA9bQorQ09ORklHX0RWQl9DWDI0MTIzPW0KK0NPTkZJR19EVkJfRFMzMDAwPW0KK0NPTkZJR19E VkJfTUI4NkExNj1tCitDT05GSUdfRFZCX01UMzEyPW0KK0NPTkZJR19EVkJfUzVIMTQyMD1tCitD T05GSUdfRFZCX1NJMjFYWD1tCitDT05GSUdfRFZCX1NUQjYwMDA9bQorQ09ORklHX0RWQl9TVFYw Mjg4PW0KK0NPTkZJR19EVkJfU1RWMDI5OT1tCitDT05GSUdfRFZCX1NUVjA5MDA9bQorQ09ORklH X0RWQl9TVFY2MTEwPW0KK0NPTkZJR19EVkJfVERBMTAwNzE9bQorQ09ORklHX0RWQl9UREExMDA4 Nj1tCitDT05GSUdfRFZCX1REQTgwODM9bQorQ09ORklHX0RWQl9UREE4MjYxPW0KK0NPTkZJR19E VkJfVERBODI2WD1tCitDT05GSUdfRFZCX1RTMjAyMD1tCitDT05GSUdfRFZCX1RVQTYxMDA9bQor Q09ORklHX0RWQl9UVU5FUl9DWDI0MTEzPW0KK0NPTkZJR19EVkJfVFVORVJfSVREMTAwMD1tCitD T05GSUdfRFZCX1ZFUzFYOTM9bQorQ09ORklHX0RWQl9aTDEwMDM2PW0KK0NPTkZJR19EVkJfWkwx MDAzOT1tCisKKyMKKyMgRFZCLVQgKHRlcnJlc3RyaWFsKSBmcm9udGVuZHMKKyMKK0NPTkZJR19E VkJfQUY5MDEzPW0KK0NPTkZJR19EVkJfQVMxMDJfRkU9bQorQ09ORklHX0RWQl9DWDIyNzAwPW0K K0NPTkZJR19EVkJfQ1gyMjcwMj1tCitDT05GSUdfRFZCX0NYRDI4MjBSPW0KK0NPTkZJR19EVkJf Q1hEMjg0MUVSPW0KK0NPTkZJR19EVkJfRElCMzAwME1CPW0KK0NPTkZJR19EVkJfRElCMzAwME1D PW0KK0NPTkZJR19EVkJfRElCNzAwME09bQorQ09ORklHX0RWQl9ESUI3MDAwUD1tCitDT05GSUdf RFZCX0RJQjkwMDA9bQorQ09ORklHX0RWQl9EUlhEPW0KK0NPTkZJR19EVkJfRUMxMDA9bQorQ09O RklHX0RWQl9HUDhQU0tfRkU9bQorQ09ORklHX0RWQl9MNjQ3ODE9bQorQ09ORklHX0RWQl9NVDM1 Mj1tCitDT05GSUdfRFZCX05YVDYwMDA9bQorQ09ORklHX0RWQl9SVEwyODMwPW0KK0NPTkZJR19E VkJfUlRMMjgzMj1tCitDT05GSUdfRFZCX1JUTDI4MzJfU0RSPW0KK0NPTkZJR19EVkJfUzVIMTQz Mj1tCitDT05GSUdfRFZCX1NJMjE2OD1tCitDT05GSUdfRFZCX1NQODg3WD1tCitDT05GSUdfRFZC X1NUVjAzNjc9bQorQ09ORklHX0RWQl9UREExMDA0OD1tCitDT05GSUdfRFZCX1REQTEwMDRYPW0K K0NPTkZJR19EVkJfWkQxMzAxX0RFTU9EPW0KK0NPTkZJR19EVkJfWkwxMDM1Mz1tCitDT05GSUdf RFZCX0NYRDI4ODA9bQorCisjCisjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCisjCitDT05GSUdf RFZCX1NUVjAyOTc9bQorQ09ORklHX0RWQl9UREExMDAyMT1tCitDT05GSUdfRFZCX1REQTEwMDIz PW0KK0NPTkZJR19EVkJfVkVTMTgyMD1tCisKKyMKKyMgQVRTQyAoTm9ydGggQW1lcmljYW4vS29y ZWFuIFRlcnJlc3RyaWFsL0NhYmxlIERUVikgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX0FVODUy Mj1tCitDT05GSUdfRFZCX0FVODUyMl9EVFY9bQorQ09ORklHX0RWQl9BVTg1MjJfVjRMPW0KK0NP TkZJR19EVkJfQkNNMzUxMD1tCitDT05GSUdfRFZCX0xHMjE2MD1tCitDT05GSUdfRFZCX0xHRFQz MzA1PW0KK0NPTkZJR19EVkJfTEdEVDMzMDZBPW0KK0NPTkZJR19EVkJfTEdEVDMzMFg9bQorQ09O RklHX0RWQl9NWEw2OTI9bQorQ09ORklHX0RWQl9OWFQyMDBYPW0KK0NPTkZJR19EVkJfT1I1MTEz Mj1tCitDT05GSUdfRFZCX09SNTEyMTE9bQorQ09ORklHX0RWQl9TNUgxNDA5PW0KK0NPTkZJR19E VkJfUzVIMTQxMT1tCisKKyMKKyMgSVNEQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisjCitD T05GSUdfRFZCX0RJQjgwMDA9bQorQ09ORklHX0RWQl9NQjg2QTIwUz1tCitDT05GSUdfRFZCX1M5 MjE9bQorCisjCisjIElTREItUyAoc2F0ZWxsaXRlKSAmIElTREItVCAodGVycmVzdHJpYWwpIGZy b250ZW5kcworIworQ09ORklHX0RWQl9NTjg4NDQzWD1tCitDT05GSUdfRFZCX1RDOTA1MjI9bQor CisjCisjIERpZ2l0YWwgdGVycmVzdHJpYWwgb25seSB0dW5lcnMvUExMCisjCitDT05GSUdfRFZC X1BMTD1tCitDT05GSUdfRFZCX1RVTkVSX0RJQjAwNzA9bQorQ09ORklHX0RWQl9UVU5FUl9ESUIw MDkwPW0KKworIworIyBTRUMgY29udHJvbCBkZXZpY2VzIGZvciBEVkItUworIworQ09ORklHX0RW Ql9BODI5Mz1tCitDT05GSUdfRFZCX0FGOTAzMz1tCitDT05GSUdfRFZCX0FTQ09UMkU9bQorQ09O RklHX0RWQl9BVEJNODgzMD1tCitDT05GSUdfRFZCX0hFTEVORT1tCitDT05GSUdfRFZCX0hPUlVT M0E9bQorQ09ORklHX0RWQl9JU0w2NDA1PW0KK0NPTkZJR19EVkJfSVNMNjQyMT1tCitDT05GSUdf RFZCX0lTTDY0MjM9bQorQ09ORklHX0RWQl9JWDI1MDVWPW0KK0NPTkZJR19EVkJfTEdTOEdMNT1t CitDT05GSUdfRFZCX0xHUzhHWFg9bQorQ09ORklHX0RWQl9MTkJIMjU9bQorQ09ORklHX0RWQl9M TkJIMjk9bQorQ09ORklHX0RWQl9MTkJQMjE9bQorQ09ORklHX0RWQl9MTkJQMjI9bQorQ09ORklH X0RWQl9NODhSUzIwMDA9bQorQ09ORklHX0RWQl9UREE2NjV4PW0KK0NPTkZJR19EVkJfRFJYMzlY WUo9bQorCisjCisjIENvbW1vbiBJbnRlcmZhY2UgKEVONTAyMjEpIGNvbnRyb2xsZXIgZHJpdmVy cworIworQ09ORklHX0RWQl9DWEQyMDk5PW0KK0NPTkZJR19EVkJfU1AyPW0KKyMgZW5kIG9mIEN1 c3RvbWlzZSBEVkIgRnJvbnRlbmRzCisKKyMKKyMgVG9vbHMgdG8gZGV2ZWxvcCBuZXcgZnJvbnRl bmRzCisjCitDT05GSUdfRFZCX0RVTU1ZX0ZFPW0KKyMgZW5kIG9mIE1lZGlhIGFuY2lsbGFyeSBk cml2ZXJzCisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworQ09ORklHX0FQRVJUVVJFX0hFTFBF UlM9eQorQ09ORklHX1ZJREVPX0NNRExJTkU9eQorQ09ORklHX1ZJREVPX05PTU9ERVNFVD15CitD T05GSUdfRFJNPW0KK0NPTkZJR19EUk1fTUlQSV9EQkk9bQorQ09ORklHX0RSTV9NSVBJX0RTST15 CitDT05GSUdfRFJNX0tNU19IRUxQRVI9bQorIyBDT05GSUdfRFJNX0RFQlVHX0RQX01TVF9UT1BP TE9HWV9SRUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9ERUJVR19NT0RFU0VUX0xPQ0sgaXMg bm90IHNldAorQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT049eQorQ09ORklHX0RSTV9GQkRFVl9P VkVSQUxMT0M9MTAwCisjIENPTkZJR19EUk1fRkJERVZfTEVBS19QSFlTX1NNRU0gaXMgbm90IHNl dAorQ09ORklHX0RSTV9MT0FEX0VESURfRklSTVdBUkU9eQorQ09ORklHX0RSTV9EUF9BVVhfQlVT PW0KK0NPTkZJR19EUk1fRElTUExBWV9IRUxQRVI9bQorQ09ORklHX0RSTV9ESVNQTEFZX0RQX0hF TFBFUj15CitDT05GSUdfRFJNX0RJU1BMQVlfSERDUF9IRUxQRVI9eQorQ09ORklHX0RSTV9ESVNQ TEFZX0hETUlfSEVMUEVSPXkKK0NPTkZJR19EUk1fRFBfQVVYX0NIQVJERVY9eQorQ09ORklHX0RS TV9EUF9DRUM9eQorQ09ORklHX0RSTV9UVE09bQorQ09ORklHX0RSTV9CVUREWT1tCitDT05GSUdf RFJNX1ZSQU1fSEVMUEVSPW0KK0NPTkZJR19EUk1fVFRNX0hFTFBFUj1tCitDT05GSUdfRFJNX0dF TV9ETUFfSEVMUEVSPW0KK0NPTkZJR19EUk1fR0VNX1NITUVNX0hFTFBFUj1tCitDT05GSUdfRFJN X1NVQkFMTE9DX0hFTFBFUj1tCitDT05GSUdfRFJNX1NDSEVEPW0KKworIworIyBJMkMgZW5jb2Rl ciBvciBoZWxwZXIgY2hpcHMKKyMKK0NPTkZJR19EUk1fSTJDX0NINzAwNj1tCitDT05GSUdfRFJN X0kyQ19TSUwxNjQ9bQorQ09ORklHX0RSTV9JMkNfTlhQX1REQTk5OFg9bQorQ09ORklHX0RSTV9J MkNfTlhQX1REQTk5NTA9bQorIyBlbmQgb2YgSTJDIGVuY29kZXIgb3IgaGVscGVyIGNoaXBzCisK KyMKKyMgQVJNIGRldmljZXMKKyMKK0NPTkZJR19EUk1fS09NRURBPW0KKyMgZW5kIG9mIEFSTSBk ZXZpY2VzCisKK0NPTkZJR19EUk1fUkFERU9OPW0KK0NPTkZJR19EUk1fUkFERU9OX1VTRVJQVFI9 eQorQ09ORklHX0RSTV9BTURHUFU9bQorQ09ORklHX0RSTV9BTURHUFVfU0k9eQorQ09ORklHX0RS TV9BTURHUFVfQ0lLPXkKK0NPTkZJR19EUk1fQU1ER1BVX1VTRVJQVFI9eQorCisjCisjIEFDUCAo QXVkaW8gQ29Qcm9jZXNzb3IpIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19EUk1fQU1EX0FDUD15 CisjIGVuZCBvZiBBQ1AgKEF1ZGlvIENvUHJvY2Vzc29yKSBDb25maWd1cmF0aW9uCisKKyMKKyMg RGlzcGxheSBFbmdpbmUgQ29uZmlndXJhdGlvbgorIworQ09ORklHX0RSTV9BTURfREM9eQorQ09O RklHX0RSTV9BTURfRENfU0k9eQorIyBDT05GSUdfREVCVUdfS0VSTkVMX0RDIGlzIG5vdCBzZXQK KyMgZW5kIG9mIERpc3BsYXkgRW5naW5lIENvbmZpZ3VyYXRpb24KKworQ09ORklHX0RSTV9OT1VW RUFVPW0KK0NPTkZJR19OT1VWRUFVX0RFQlVHPTUKK0NPTkZJR19OT1VWRUFVX0RFQlVHX0RFRkFV TFQ9MworIyBDT05GSUdfTk9VVkVBVV9ERUJVR19NTVUgaXMgbm90IHNldAorIyBDT05GSUdfTk9V VkVBVV9ERUJVR19QVVNIIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fTk9VVkVBVV9CQUNLTElHSFQ9 eQorIyBDT05GSUdfRFJNX1ZHRU0gaXMgbm90IHNldAorQ09ORklHX0RSTV9WS01TPW0KK0NPTkZJ R19EUk1fVURMPW0KK0NPTkZJR19EUk1fQVNUPW0KK0NPTkZJR19EUk1fTUdBRzIwMD1tCitDT05G SUdfRFJNX1FYTD1tCitDT05GSUdfRFJNX1ZJUlRJT19HUFU9bQorQ09ORklHX0RSTV9WSVJUSU9f R1BVX0tNUz15CitDT05GSUdfRFJNX1BBTkVMPXkKKworIworIyBEaXNwbGF5IFBhbmVscworIwor Q09ORklHX0RSTV9QQU5FTF9BQlRfWTAzMFhYMDY3QT1tCitDT05GSUdfRFJNX1BBTkVMX0FSTV9W RVJTQVRJTEU9bQorQ09ORklHX0RSTV9QQU5FTF9BU1VTX1owMFRfVE01UDVfTlQzNTU5Nj1tCitD T05GSUdfRFJNX1BBTkVMX0FVT19BMDMwSlROMDE9bQorQ09ORklHX0RSTV9QQU5FTF9CT0VfQkYw NjBZOE1fQUowPW0KK0NPTkZJR19EUk1fUEFORUxfQk9FX0hJTUFYODI3OUQ9bQorQ09ORklHX0RS TV9QQU5FTF9CT0VfVFYxMDFXVU1fTkw2PW0KK0NPTkZJR19EUk1fUEFORUxfRFNJX0NNPW0KK0NP TkZJR19EUk1fUEFORUxfTFZEUz1tCitDT05GSUdfRFJNX1BBTkVMX1NJTVBMRT1tCitDT05GSUdf RFJNX1BBTkVMX0VEUD1tCitDT05GSUdfRFJNX1BBTkVMX0VCQkdfRlQ4NzE5PW0KK0NPTkZJR19E Uk1fUEFORUxfRUxJREFfS0QzNVQxMzM9bQorQ09ORklHX0RSTV9QQU5FTF9GRUlYSU5fSzEwMV9J TTJCQTAyPW0KK0NPTkZJR19EUk1fUEFORUxfRkVJWUFOR19GWTA3MDI0REkyNkEzMEQ9bQorQ09O RklHX0RSTV9QQU5FTF9ISU1BWF9IWDgzOTQ9bQorQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUw5 MzIyPW0KK0NPTkZJR19EUk1fUEFORUxfSUxJVEVLX0lMSTkzNDE9bQorQ09ORklHX0RSTV9QQU5F TF9JTElURUtfSUxJOTg4MUM9bQorQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX0VKMDMwTkE9bQor Q09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX1AwNzlaQ0E9bQorQ09ORklHX0RSTV9QQU5FTF9KQURB UkRfSkQ5MzY1REFfSDM9bQorQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1MDAwPW0KK0NP TkZJR19EUk1fUEFORUxfSkRJX1I2MzQ1Mj1tCitDT05GSUdfRFJNX1BBTkVMX0tIQURBU19UUzA1 MD1tCitDT05GSUdfRFJNX1BBTkVMX0tJTkdESVNQTEFZX0tEMDk3RDA0PW0KK0NPTkZJR19EUk1f UEFORUxfTEVBRFRFS19MVEswNTBIMzE0Nlc9bQorQ09ORklHX0RSTV9QQU5FTF9MRUFEVEVLX0xU SzUwMEhEMTgyOT1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfTEQ5MDQwPW0KK0NPTkZJR19E Uk1fUEFORUxfTEdfTEIwMzVRMDI9bQorQ09ORklHX0RSTV9QQU5FTF9MR19MRzQ1NzM9bQorQ09O RklHX0RSTV9QQU5FTF9NQUdOQUNISVBfRDUzRTZFQTg5NjY9bQorQ09ORklHX0RSTV9QQU5FTF9O RUNfTkw4MDQ4SEwxMT1tCitDT05GSUdfRFJNX1BBTkVMX05FV1ZJU0lPTl9OVjMwNTFEPW0KK0NP TkZJR19EUk1fUEFORUxfTkVXVklTSU9OX05WMzA1MkM9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZB VEVLX05UMzU1MTA9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU1NjA9bQorQ09ORklH X0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU5NTA9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05U MzY1MjM9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzY2NzJBPW0KK0NPTkZJR19EUk1f UEFORUxfTk9WQVRFS19OVDM5MDE2PW0KK0NPTkZJR19EUk1fUEFORUxfTUFOVElYX01MQUYwNTdX RTUxPW0KK0NPTkZJR19EUk1fUEFORUxfT0xJTUVYX0xDRF9PTElOVVhJTk89bQorQ09ORklHX0RS TV9QQU5FTF9PUklTRVRFQ0hfT1RBNTYwMUE9bQorQ09ORklHX0RSTV9QQU5FTF9PUklTRVRFQ0hf T1RNODAwOUE9bQorQ09ORklHX0RSTV9QQU5FTF9PU0RfT1NEMTAxVDI1ODdfNTNUUz1tCitDT05G SUdfRFJNX1BBTkVMX1BBTkFTT05JQ19WVlgxMEYwMzROMDA9bQorQ09ORklHX0RSTV9QQU5FTF9S QVNQQkVSUllQSV9UT1VDSFNDUkVFTj1tCitDT05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02NzE5 MT1tCitDT05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02ODIwMD1tCitDT05GSUdfRFJNX1BBTkVM X1JPTkJPX1JCMDcwRDMwPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19BVE5BMzNYQzIwPW0K K0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19EQjc0MzA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1T VU5HX1M2RDE2RDA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RDI3QTE9bQorQ09ORklH X0RSTV9QQU5FTF9TQU1TVU5HX1M2RTNIQTI9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2 RTYzSjBYMDM9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzTTA9bQorQ09ORklHX0RS TV9QQU5FTF9TQU1TVU5HX1M2RTYzTTBfU1BJPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19T NkU2M00wX0RTST1tCitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFODhBMF9BTVM0NTJFRjAx PW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4QUEwPW0KK0NPTkZJR19EUk1fUEFORUxf U0FNU1VOR19TT0ZFRjAwPW0KK0NPTkZJR19EUk1fUEFORUxfU0VJS09fNDNXVkYxRz1tCitDT05G SUdfRFJNX1BBTkVMX1NIQVJQX0xRMTAxUjFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0hBUlBf TFMwMzdWN0RXMDE9bQorQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUzA0M1QxTEUwMT1tCitDT05G SUdfRFJNX1BBTkVMX1NIQVJQX0xTMDYwVDFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0lUUk9O SVhfU1Q3NzAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3NzAzPW0KK0NPTkZJR19E Uk1fUEFORUxfU0lUUk9OSVhfU1Q3Nzg5Vj1tCitDT05GSUdfRFJNX1BBTkVMX1NPTllfQUNYNTY1 QUtNPW0KK0NPTkZJR19EUk1fUEFORUxfU09OWV9URDQzNTNfSkRJPW0KK0NPTkZJR19EUk1fUEFO RUxfU09OWV9UVUxJUF9UUlVMWV9OVDM1NTIxPW0KK0NPTkZJR19EUk1fUEFORUxfVERPX1RMMDcw V1NIMzA9bQorQ09ORklHX0RSTV9QQU5FTF9UUE9fVEQwMjhUVEVDMT1tCitDT05GSUdfRFJNX1BB TkVMX1RQT19URDA0M01URUExPW0KK0NPTkZJR19EUk1fUEFORUxfVFBPX1RQRzExMD1tCitDT05G SUdfRFJNX1BBTkVMX1RSVUxZX05UMzU1OTdfV1FYR0E9bQorQ09ORklHX0RSTV9QQU5FTF9WSVNJ T05PWF9STTY5Mjk5PW0KK0NPTkZJR19EUk1fUEFORUxfVklTSU9OT1hfVlREUjYxMzA9bQorQ09O RklHX0RSTV9QQU5FTF9XSURFQ0hJUFNfV1MyNDAxPW0KK0NPTkZJR19EUk1fUEFORUxfWElOUEVO R19YUFAwNTVDMjcyPW0KKyMgZW5kIG9mIERpc3BsYXkgUGFuZWxzCisKK0NPTkZJR19EUk1fQlJJ REdFPXkKK0NPTkZJR19EUk1fUEFORUxfQlJJREdFPXkKKworIworIyBEaXNwbGF5IEludGVyZmFj ZSBCcmlkZ2VzCisjCitDT05GSUdfRFJNX0NISVBPTkVfSUNONjIxMT1tCitDT05GSUdfRFJNX0NI Uk9OVEVMX0NINzAzMz1tCitDT05GSUdfRFJNX0RJU1BMQVlfQ09OTkVDVE9SPW0KK0NPTkZJR19E Uk1fSVRFX0lUNjUwNT1tCitDT05GSUdfRFJNX0xPTlRJVU1fTFQ4OTEyQj1tCisjIENPTkZJR19E Uk1fTE9OVElVTV9MVDkyMTEgaXMgbm90IHNldAorQ09ORklHX0RSTV9MT05USVVNX0xUOTYxMT1t CitDT05GSUdfRFJNX0xPTlRJVU1fTFQ5NjExVVhDPW0KK0NPTkZJR19EUk1fSVRFX0lUNjYxMjE9 bQorQ09ORklHX0RSTV9MVkRTX0NPREVDPW0KK0NPTkZJR19EUk1fTUVHQUNISVBTX1NURFBYWFhY X0dFX0I4NTBWM19GVz1tCitDT05GSUdfRFJNX05XTF9NSVBJX0RTST1tCitDT05GSUdfRFJNX05Y UF9QVE4zNDYwPW0KK0NPTkZJR19EUk1fUEFSQURFX1BTODYyMj1tCitDT05GSUdfRFJNX1BBUkFE RV9QUzg2NDA9bQorQ09ORklHX0RSTV9TQU1TVU5HX0RTSU09bQorQ09ORklHX0RSTV9TSUxfU0lJ ODYyMD1tCitDT05GSUdfRFJNX1NJSTkwMlg9bQorQ09ORklHX0RSTV9TSUk5MjM0PW0KK0NPTkZJ R19EUk1fU0lNUExFX0JSSURHRT1tCitDT05GSUdfRFJNX1RISU5FX1RIQzYzTFZEMTAyND1tCitD T05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3NjI9bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzY0 PW0KK0NPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2Nz1tCitDT05GSUdfRFJNX1RPU0hJQkFfVEMz NTg3Njg9bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4Nzc1PW0KK0NPTkZJR19EUk1fVElfRExQ QzM0MzM9bQorQ09ORklHX0RSTV9USV9URlA0MTA9bQorQ09ORklHX0RSTV9USV9TTjY1RFNJODM9 bQorQ09ORklHX0RSTV9USV9TTjY1RFNJODY9bQorQ09ORklHX0RSTV9USV9UUEQxMlMwMTU9bQor Q09ORklHX0RSTV9BTkFMT0dJWF9BTlg2MzQ1PW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzhY WD1tCitDT05GSUdfRFJNX0FOQUxPR0lYX0RQPW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzYy NT1tCitDT05GSUdfRFJNX0kyQ19BRFY3NTExPW0KK0NPTkZJR19EUk1fSTJDX0FEVjc1MTFfQVVE SU89eQorQ09ORklHX0RSTV9JMkNfQURWNzUxMV9DRUM9eQorQ09ORklHX0RSTV9DRE5TX0RTST1t CitDT05GSUdfRFJNX0NETlNfRFNJX0o3MjFFPXkKK0NPTkZJR19EUk1fQ0ROU19NSERQODU0Nj1t CisjIGVuZCBvZiBEaXNwbGF5IEludGVyZmFjZSBCcmlkZ2VzCisKK0NPTkZJR19EUk1fRVROQVZJ Vj1tCitDT05GSUdfRFJNX0VUTkFWSVZfVEhFUk1BTD15CitDT05GSUdfRFJNX0xPR0lDVkM9bQor IyBDT05GSUdfRFJNX0FSQ1BHVSBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0JPQ0hTPW0KK0NPTkZJ R19EUk1fQ0lSUlVTX1FFTVU9bQorQ09ORklHX0RSTV9HTTEyVTMyMD1tCitDT05GSUdfRFJNX1BB TkVMX01JUElfREJJPW0KK0NPTkZJR19EUk1fU0lNUExFRFJNPW0KK0NPTkZJR19USU5ZRFJNX0hY ODM1N0Q9bQorQ09ORklHX1RJTllEUk1fSUxJOTE2Mz1tCitDT05GSUdfVElOWURSTV9JTEk5MjI1 PW0KK0NPTkZJR19USU5ZRFJNX0lMSTkzNDE9bQorQ09ORklHX1RJTllEUk1fSUxJOTQ4Nj1tCitD T05GSUdfVElOWURSTV9NSTAyODNRVD1tCitDT05GSUdfVElOWURSTV9SRVBBUEVSPW0KK0NPTkZJ R19USU5ZRFJNX1NUNzU4Nj1tCitDT05GSUdfVElOWURSTV9TVDc3MzVSPW0KK0NPTkZJR19EUk1f R1VEPW0KK0NPTkZJR19EUk1fU1NEMTMwWD1tCitDT05GSUdfRFJNX1NTRDEzMFhfSTJDPW0KK0NP TkZJR19EUk1fU1NEMTMwWF9TUEk9bQorQ09ORklHX0RSTV9WRVJJU0lMSUNPTj1tCitDT05GSUdf U1RBUkZJVkVfSERNST15CisjIENPTkZJR19EUk1fTEVHQUNZIGlzIG5vdCBzZXQKK0NPTkZJR19E Uk1fUEFORUxfT1JJRU5UQVRJT05fUVVJUktTPXkKKworIworIyBGcmFtZSBidWZmZXIgRGV2aWNl cworIworQ09ORklHX0ZCX05PVElGWT15CitDT05GSUdfRkI9eQorQ09ORklHX0ZJUk1XQVJFX0VE SUQ9eQorQ09ORklHX0ZCX0REQz1tCitDT05GSUdfRkJfQ0ZCX0ZJTExSRUNUPXkKK0NPTkZJR19G Ql9DRkJfQ09QWUFSRUE9eQorQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQorQ09ORklHX0ZCX1NZ U19GSUxMUkVDVD1tCitDT05GSUdfRkJfU1lTX0NPUFlBUkVBPW0KK0NPTkZJR19GQl9TWVNfSU1B R0VCTElUPW0KKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKK0NPTkZJR19G Ql9TWVNfRk9QUz1tCitDT05GSUdfRkJfREVGRVJSRURfSU89eQorQ09ORklHX0ZCX0JBQ0tMSUdI VD1tCitDT05GSUdfRkJfTU9ERV9IRUxQRVJTPXkKK0NPTkZJR19GQl9USUxFQkxJVFRJTkc9eQor CisjCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjCisjIENPTkZJR19GQl9DSVJS VVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZ QkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BU0lMSUFOVCBpcyBub3Qgc2V0CisjIENP TkZJR19GQl9JTVNUVCBpcyBub3Qgc2V0CitDT05GSUdfRkJfVVZFU0E9bQorQ09ORklHX0ZCX0VG ST15CisjIENPTkZJR19GQl9PUEVOQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFEMTNY WFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfTlZJRElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZC X1JJVkEgaXMgbm90IHNldAorQ09ORklHX0ZCX0k3NDA9bQorIyBDT05GSUdfRkJfTUFUUk9YIGlz IG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JBREVPTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BVFkx MjggaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1Mz IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9T SVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTkVPTUFHSUMgaXMgbm90IHNldAorIyBDT05GSUdf RkJfS1lSTyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl8zREZYIGlzIG5vdCBzZXQKKyMgQ09ORklH X0ZCX1ZPT0RPTzEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVlQ4NjIzIGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVJLIGlzIG5vdCBzZXQK KyMgQ09ORklHX0ZCX1BNMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DQVJNSU5FIGlzIG5vdCBz ZXQKK0NPTkZJR19GQl9TTVNDVUZYPW0KKyMgQ09ORklHX0ZCX1VETCBpcyBub3Qgc2V0CisjIENP TkZJR19GQl9JQk1fR1hUNDUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9HT0xERklTSCBpcyBu b3Qgc2V0CitDT05GSUdfRkJfVklSVFVBTD1tCitDT05GSUdfRkJfTUVUUk9OT01FPW0KK0NPTkZJ R19GQl9NQjg2MlhYPW0KK0NPTkZJR19GQl9NQjg2MlhYX1BDSV9HREM9eQorQ09ORklHX0ZCX01C ODYyWFhfSTJDPXkKKyMgQ09ORklHX0ZCX1NJTVBMRSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9T U0QxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NNNzEyIGlzIG5vdCBzZXQKKyMgZW5kIG9m IEZyYW1lIGJ1ZmZlciBEZXZpY2VzCisKKyMKKyMgQmFja2xpZ2h0ICYgTENEIGRldmljZSBzdXBw b3J0CisjCitDT05GSUdfTENEX0NMQVNTX0RFVklDRT1tCisjIENPTkZJR19MQ0RfTDRGMDAyNDJU MDMgaXMgbm90IHNldAorIyBDT05GSUdfTENEX0xNUzI4M0dGMDUgaXMgbm90IHNldAorIyBDT05G SUdfTENEX0xUVjM1MFFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9JTEk5MjJYIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0xDRF9JTEk5MzIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9URE8yNE0g aXMgbm90IHNldAorIyBDT05GSUdfTENEX1ZHRzI0MzJBNCBpcyBub3Qgc2V0CitDT05GSUdfTENE X1BMQVRGT1JNPW0KKyMgQ09ORklHX0xDRF9BTVMzNjlGRzA2IGlzIG5vdCBzZXQKKyMgQ09ORklH X0xDRF9MTVM1MDFLRjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9IWDgzNTcgaXMgbm90IHNl dAorQ09ORklHX0xDRF9PVE0zMjI1QT1tCitDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRT15 CitDT05GSUdfQkFDS0xJR0hUX0tURDI1Mz1tCitDT05GSUdfQkFDS0xJR0hUX0tUWjg4NjY9bQor Q09ORklHX0JBQ0tMSUdIVF9MTTM1MzM9bQorQ09ORklHX0JBQ0tMSUdIVF9QV009bQorQ09ORklH X0JBQ0tMSUdIVF9NVDYzNzA9bQorQ09ORklHX0JBQ0tMSUdIVF9RQ09NX1dMRUQ9bQorQ09ORklH X0JBQ0tMSUdIVF9SVDQ4MzE9bQorQ09ORklHX0JBQ0tMSUdIVF9BRFA4ODYwPW0KK0NPTkZJR19C QUNLTElHSFRfQURQODg3MD1tCitDT05GSUdfQkFDS0xJR0hUX0xNMzYzMEE9bQorQ09ORklHX0JB Q0tMSUdIVF9MTTM2Mzk9bQorQ09ORklHX0JBQ0tMSUdIVF9MUDg1NVg9bQorQ09ORklHX0JBQ0tM SUdIVF9TS1k4MTQ1Mj1tCitDT05GSUdfQkFDS0xJR0hUX0dQSU89bQorQ09ORklHX0JBQ0tMSUdI VF9MVjUyMDdMUD1tCitDT05GSUdfQkFDS0xJR0hUX0JENjEwNz1tCitDT05GSUdfQkFDS0xJR0hU X0FSQ1hDTk49bQorQ09ORklHX0JBQ0tMSUdIVF9MRUQ9bQorIyBlbmQgb2YgQmFja2xpZ2h0ICYg TENEIGRldmljZSBzdXBwb3J0CisKK0NPTkZJR19WR0FTVEFURT1tCitDT05GSUdfVklERU9NT0RF X0hFTFBFUlM9eQorQ09ORklHX0hETUk9eQorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIg c3VwcG9ydAorIworQ09ORklHX1ZHQV9DT05TT0xFPXkKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkK K0NPTkZJR19EVU1NWV9DT05TT0xFX0NPTFVNTlM9ODAKK0NPTkZJR19EVU1NWV9DT05TT0xFX1JP V1M9MjUKK0NPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKK0NPTkZJR19GUkFNRUJVRkZFUl9D T05TT0xFX0xFR0FDWV9BQ0NFTEVSQVRJT049eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVf REVURUNUX1BSSU1BUlk9eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT049eQor IyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERUZFUlJFRF9UQUtFT1ZFUiBpcyBub3Qgc2V0 CisjIGVuZCBvZiBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKworIyBDT05GSUdfTE9H TyBpcyBub3Qgc2V0CisjIGVuZCBvZiBHcmFwaGljcyBzdXBwb3J0CisKK0NPTkZJR19EUk1fQUND RUw9eQorQ09ORklHX0RSTV9BQ0NFTF9RQUlDPW0KK0NPTkZJR19TT1VORD1tCitDT05GSUdfU09V TkRfT1NTX0NPUkU9eQorIyBDT05GSUdfU09VTkRfT1NTX0NPUkVfUFJFQ0xBSU0gaXMgbm90IHNl dAorQ09ORklHX1NORD1tCitDT05GSUdfU05EX1RJTUVSPW0KK0NPTkZJR19TTkRfUENNPW0KK0NP TkZJR19TTkRfUENNX0VMRD15CitDT05GSUdfU05EX1BDTV9JRUM5NTg9eQorQ09ORklHX1NORF9E TUFFTkdJTkVfUENNPW0KK0NPTkZJR19TTkRfSFdERVA9bQorQ09ORklHX1NORF9TRVFfREVWSUNF PW0KK0NPTkZJR19TTkRfUkFXTUlEST1tCitDT05GSUdfU05EX0NPTVBSRVNTX09GRkxPQUQ9bQor Q09ORklHX1NORF9KQUNLPXkKK0NPTkZJR19TTkRfSkFDS19JTlBVVF9ERVY9eQorQ09ORklHX1NO RF9PU1NFTVVMPXkKK0NPTkZJR19TTkRfTUlYRVJfT1NTPW0KK0NPTkZJR19TTkRfUENNX09TUz1t CitDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CitDT05GSUdfU05EX1BDTV9USU1FUj15CitD T05GSUdfU05EX0hSVElNRVI9bQorQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUz15CitDT05GSUdf U05EX01BWF9DQVJEUz0zMgorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorQ09ORklHX1NO RF9QUk9DX0ZTPXkKK0NPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQorQ09ORklHX1NORF9WRVJC T1NFX1BSSU5USz15CitDT05GSUdfU05EX0NUTF9GQVNUX0xPT0tVUD15CitDT05GSUdfU05EX0RF QlVHPXkKKyMgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRf UENNX1hSVU5fREVCVUc9eQorIyBDT05GSUdfU05EX0NUTF9JTlBVVF9WQUxJREFUSU9OIGlzIG5v dCBzZXQKKyMgQ09ORklHX1NORF9DVExfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0pB Q0tfSU5KRUNUSU9OX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfVk1BU1RFUj15CitDT05G SUdfU05EX0NUTF9MRUQ9bQorQ09ORklHX1NORF9TRVFVRU5DRVI9bQorQ09ORklHX1NORF9TRVFf RFVNTVk9bQorQ09ORklHX1NORF9TRVFVRU5DRVJfT1NTPW0KK0NPTkZJR19TTkRfU0VRX0hSVElN RVJfREVGQVVMVD15CitDT05GSUdfU05EX1NFUV9NSURJX0VWRU5UPW0KK0NPTkZJR19TTkRfU0VR X01JREk9bQorQ09ORklHX1NORF9TRVFfTUlESV9FTVVMPW0KK0NPTkZJR19TTkRfU0VRX1ZJUk1J REk9bQorQ09ORklHX1NORF9NUFU0MDFfVUFSVD1tCitDT05GSUdfU05EX09QTDNfTElCPW0KK0NP TkZJR19TTkRfT1BMM19MSUJfU0VRPW0KK0NPTkZJR19TTkRfVlhfTElCPW0KK0NPTkZJR19TTkRf QUM5N19DT0RFQz1tCitDT05GSUdfU05EX0RSSVZFUlM9eQorQ09ORklHX1NORF9EVU1NWT1tCitD T05GSUdfU05EX0FMT09QPW0KK0NPTkZJR19TTkRfVklSTUlEST1tCitDT05GSUdfU05EX01UUEFW PW0KK0NPTkZJR19TTkRfTVRTNjQ9bQorQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwPW0KK0NPTkZJ R19TTkRfU0VSSUFMX0dFTkVSSUM9bQorQ09ORklHX1NORF9NUFU0MDE9bQorQ09ORklHX1NORF9Q T1JUTUFOMlg0PW0KK0NPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFPXkKK0NPTkZJR19TTkRfQUM5 N19QT1dFUl9TQVZFX0RFRkFVTFQ9MAorQ09ORklHX1NORF9QQ0k9eQorQ09ORklHX1NORF9BRDE4 ODk9bQorQ09ORklHX1NORF9BVElJWFA9bQorQ09ORklHX1NORF9BVElJWFBfTU9ERU09bQorQ09O RklHX1NORF9BVTg4MTA9bQorQ09ORklHX1NORF9BVTg4MjA9bQorQ09ORklHX1NORF9BVTg4MzA9 bQorQ09ORklHX1NORF9BVzI9bQorQ09ORklHX1NORF9CVDg3WD1tCisjIENPTkZJR19TTkRfQlQ4 N1hfT1ZFUkNMT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfQ0EwMTA2PW0KK0NPTkZJR19TTkRf Q01JUENJPW0KK0NPTkZJR19TTkRfT1hZR0VOX0xJQj1tCitDT05GSUdfU05EX09YWUdFTj1tCitD T05GSUdfU05EX0NTNDI4MT1tCitDT05GSUdfU05EX0NTNDZYWD1tCitDT05GSUdfU05EX0NTNDZY WF9ORVdfRFNQPXkKK0NPTkZJR19TTkRfQ1RYRkk9bQorQ09ORklHX1NORF9EQVJMQTIwPW0KK0NP TkZJR19TTkRfR0lOQTIwPW0KK0NPTkZJR19TTkRfTEFZTEEyMD1tCitDT05GSUdfU05EX0RBUkxB MjQ9bQorQ09ORklHX1NORF9HSU5BMjQ9bQorQ09ORklHX1NORF9MQVlMQTI0PW0KK0NPTkZJR19T TkRfTU9OQT1tCitDT05GSUdfU05EX01JQT1tCitDT05GSUdfU05EX0VDSE8zRz1tCitDT05GSUdf U05EX0lORElHTz1tCitDT05GSUdfU05EX0lORElHT0lPPW0KK0NPTkZJR19TTkRfSU5ESUdPREo9 bQorQ09ORklHX1NORF9JTkRJR09JT1g9bQorQ09ORklHX1NORF9JTkRJR09ESlg9bQorQ09ORklH X1NORF9FTlMxMzcwPW0KK0NPTkZJR19TTkRfRU5TMTM3MT1tCitDT05GSUdfU05EX0ZNODAxPW0K K0NPTkZJR19TTkRfRk04MDFfVEVBNTc1WF9CT09MPXkKK0NPTkZJR19TTkRfSERTUD1tCitDT05G SUdfU05EX0hEU1BNPW0KK0NPTkZJR19TTkRfSUNFMTcyND1tCitDT05GSUdfU05EX0lOVEVMOFgw PW0KK0NPTkZJR19TTkRfSU5URUw4WDBNPW0KK0NPTkZJR19TTkRfS09SRzEyMTI9bQorQ09ORklH X1NORF9MT0xBPW0KK0NPTkZJR19TTkRfTFg2NDY0RVM9bQorQ09ORklHX1NORF9NSVhBUlQ9bQor Q09ORklHX1NORF9OTTI1Nj1tCitDT05GSUdfU05EX1BDWEhSPW0KK0NPTkZJR19TTkRfUklQVElE RT1tCitDT05GSUdfU05EX1JNRTMyPW0KK0NPTkZJR19TTkRfUk1FOTY9bQorQ09ORklHX1NORF9S TUU5NjUyPW0KK0NPTkZJR19TTkRfVklBODJYWD1tCitDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU09 bQorQ09ORklHX1NORF9WSVJUVU9TTz1tCitDT05GSUdfU05EX1ZYMjIyPW0KK0NPTkZJR19TTkRf WU1GUENJPW0KKworIworIyBIRC1BdWRpbworIworQ09ORklHX1NORF9IREE9bQorQ09ORklHX1NO RF9IREFfR0VORVJJQ19MRURTPXkKK0NPTkZJR19TTkRfSERBX0lOVEVMPW0KK0NPTkZJR19TTkRf SERBX0hXREVQPXkKK0NPTkZJR19TTkRfSERBX1JFQ09ORklHPXkKK0NPTkZJR19TTkRfSERBX0lO UFVUX0JFRVA9eQorQ09ORklHX1NORF9IREFfSU5QVVRfQkVFUF9NT0RFPTEKK0NPTkZJR19TTkRf SERBX1BBVENIX0xPQURFUj15CitDT05GSUdfU05EX0hEQV9DT0RFQ19SRUFMVEVLPW0KK0NPTkZJ R19TTkRfSERBX0NPREVDX0FOQUxPRz1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19TSUdNQVRFTD1t CitDT05GSUdfU05EX0hEQV9DT0RFQ19WSUE9bQorQ09ORklHX1NORF9IREFfQ09ERUNfSERNST1t CitDT05GSUdfU05EX0hEQV9DT0RFQ19DSVJSVVM9bQorQ09ORklHX1NORF9IREFfQ09ERUNfQ1M4 NDA5PW0KK0NPTkZJR19TTkRfSERBX0NPREVDX0NPTkVYQU5UPW0KK0NPTkZJR19TTkRfSERBX0NP REVDX0NBMDExMD1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DQTAxMzI9bQorQ09ORklHX1NORF9I REFfQ09ERUNfQ0EwMTMyX0RTUD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DTUVESUE9bQorQ09O RklHX1NORF9IREFfQ09ERUNfU0kzMDU0PW0KK0NPTkZJR19TTkRfSERBX0dFTkVSSUM9bQorQ09O RklHX1NORF9IREFfUE9XRVJfU0FWRV9ERUZBVUxUPTEKK0NPTkZJR19TTkRfSERBX0lOVEVMX0hE TUlfU0lMRU5UX1NUUkVBTT15CisjIENPTkZJR19TTkRfSERBX0NUTF9ERVZfSUQgaXMgbm90IHNl dAorIyBlbmQgb2YgSEQtQXVkaW8KKworQ09ORklHX1NORF9IREFfQ09SRT1tCitDT05GSUdfU05E X0hEQV9EU1BfTE9BREVSPXkKK0NPTkZJR19TTkRfSERBX0NPTVBPTkVOVD15CitDT05GSUdfU05E X0hEQV9FWFRfQ09SRT1tCitDT05GSUdfU05EX0hEQV9QUkVBTExPQ19TSVpFPTEwMjQKK0NPTkZJ R19TTkRfSU5URUxfRFNQX0NPTkZJRz1tCitDT05GSUdfU05EX1NQST15CitDT05GSUdfU05EX1VT Qj15CitDT05GSUdfU05EX1VTQl9BVURJTz1tCitDT05GSUdfU05EX1VTQl9BVURJT19VU0VfTUVE SUFfQ09OVFJPTExFUj15CitDT05GSUdfU05EX1VTQl9VQTEwMT1tCitDT05GSUdfU05EX1VTQl9D QUlBUT1tCitDT05GSUdfU05EX1VTQl9DQUlBUV9JTlBVVD15CitDT05GSUdfU05EX1VTQl82RklS RT1tCitDT05GSUdfU05EX1VTQl9ISUZBQ0U9bQorQ09ORklHX1NORF9CQ0QyMDAwPW0KK0NPTkZJ R19TTkRfVVNCX0xJTkU2PW0KK0NPTkZJR19TTkRfVVNCX1BPRD1tCitDT05GSUdfU05EX1VTQl9Q T0RIRD1tCitDT05GSUdfU05EX1VTQl9UT05FUE9SVD1tCitDT05GSUdfU05EX1VTQl9WQVJJQVg9 bQorQ09ORklHX1NORF9GSVJFV0lSRT15CitDT05GSUdfU05EX0ZJUkVXSVJFX0xJQj1tCitDT05G SUdfU05EX0RJQ0U9bQorQ09ORklHX1NORF9PWEZXPW0KK0NPTkZJR19TTkRfSVNJR0hUPW0KK0NP TkZJR19TTkRfRklSRVdPUktTPW0KK0NPTkZJR19TTkRfQkVCT0I9bQorQ09ORklHX1NORF9GSVJF V0lSRV9ESUdJMDBYPW0KK0NPTkZJR19TTkRfRklSRVdJUkVfVEFTQ0FNPW0KK0NPTkZJR19TTkRf RklSRVdJUkVfTU9UVT1tCitDT05GSUdfU05EX0ZJUkVGQUNFPW0KK0NPTkZJR19TTkRfUENNQ0lB PXkKK0NPTkZJR19TTkRfVlhQT0NLRVQ9bQorQ09ORklHX1NORF9QREFVRElPQ0Y9bQorQ09ORklH X1NORF9TT0M9bQorQ09ORklHX1NORF9TT0NfQUM5N19CVVM9eQorQ09ORklHX1NORF9TT0NfR0VO RVJJQ19ETUFFTkdJTkVfUENNPXkKK0NPTkZJR19TTkRfU09DX0NPTVBSRVNTPXkKK0NPTkZJR19T TkRfU09DX0FEST1tCitDT05GSUdfU05EX1NPQ19BRElfQVhJX0kyUz1tCitDT05GSUdfU05EX1NP Q19BRElfQVhJX1NQRElGPW0KK0NPTkZJR19TTkRfU09DX0FNRF9BQ1A9bQorQ09ORklHX1NORF9T T0NfQU1EX0NaX1JUNTY0NV9NQUNIPW0KK0NPTkZJR19TTkRfQU1EX0FDUF9DT05GSUc9bQorIyBD T05GSUdfU05EX0FUTUVMX1NPQyBpcyBub3Qgc2V0CitDT05GSUdfU05EX0JDTTYzWFhfSTJTX1dI SVNUTEVSPW0KK0NPTkZJR19TTkRfREVTSUdOV0FSRV9JMlM9bQorQ09ORklHX1NORF9ERVNJR05X QVJFX1BDTT15CisKKyMKKyMgU29DIEF1ZGlvIGZvciBGcmVlc2NhbGUgQ1BVcworIworCisjCisj IENvbW1vbiBTb0MgQXVkaW8gb3B0aW9ucyBmb3IgRnJlZXNjYWxlIENQVXM6CisjCitDT05GSUdf U05EX1NPQ19GU0xfQVNSQz1tCitDT05GSUdfU05EX1NPQ19GU0xfU0FJPW0KK0NPTkZJR19TTkRf U09DX0ZTTF9NUVM9bQorQ09ORklHX1NORF9TT0NfRlNMX0FVRE1JWD1tCitDT05GSUdfU05EX1NP Q19GU0xfU1NJPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9TUERJRj1tCitDT05GSUdfU05EX1NPQ19G U0xfRVNBST1tCitDT05GSUdfU05EX1NPQ19GU0xfTUlDRklMPW0KK0NPTkZJR19TTkRfU09DX0ZT TF9FQVNSQz1tCitDT05GSUdfU05EX1NPQ19GU0xfWENWUj1tCitDT05GSUdfU05EX1NPQ19GU0xf VVRJTFM9bQorQ09ORklHX1NORF9TT0NfRlNMX1JQTVNHPW0KK0NPTkZJR19TTkRfU09DX0lNWF9B VURNVVg9bQorIyBlbmQgb2YgU29DIEF1ZGlvIGZvciBGcmVlc2NhbGUgQ1BVcworCitDT05GSUdf U05EX0kyU19ISTYyMTBfSTJTPW0KKyMgQ09ORklHX1NORF9TT0NfSU1HIGlzIG5vdCBzZXQKK0NP TkZJR19TTkRfU09DX01US19CVENWU0Q9bQorQ09ORklHX1NORF9TT0NfU09GX1RPUExFVkVMPXkK K0NPTkZJR19TTkRfU09DX1NPRl9QQ0k9bQorQ09ORklHX1NORF9TT0NfU09GX09GPW0KK0NPTkZJ R19TTkRfU09DX1NUQVJGSVZFPW0KK0NPTkZJR19TTkRfU09DX0pINzExMF9QV01EQUM9bQorQ09O RklHX1NORF9TT0NfSkg3MTEwX1RETT1tCisKKyMKKyMgU1RNaWNyb2VsZWN0cm9uaWNzIFNUTTMy IFNPQyBhdWRpbyBzdXBwb3J0CisjCisjIGVuZCBvZiBTVE1pY3JvZWxlY3Ryb25pY3MgU1RNMzIg U09DIGF1ZGlvIHN1cHBvcnQKKworQ09ORklHX1NORF9TT0NfWElMSU5YX0kyUz1tCitDT05GSUdf U05EX1NPQ19YSUxJTlhfQVVESU9fRk9STUFUVEVSPW0KK0NPTkZJR19TTkRfU09DX1hJTElOWF9T UERJRj1tCitDT05GSUdfU05EX1NPQ19YVEZQR0FfSTJTPW0KK0NPTkZJR19TTkRfU09DX0kyQ19B TkRfU1BJPW0KKworIworIyBDT0RFQyBkcml2ZXJzCisjCitDT05GSUdfU05EX1NPQ19XTV9BRFNQ PW0KK0NPTkZJR19TTkRfU09DX0FDOTdfQ09ERUM9bQorQ09ORklHX1NORF9TT0NfQURBVV9VVElM Uz1tCitDT05GSUdfU05EX1NPQ19BREFVMTM3Mj1tCitDT05GSUdfU05EX1NPQ19BREFVMTM3Ml9J MkM9bQorQ09ORklHX1NORF9TT0NfQURBVTEzNzJfU1BJPW0KK0NPTkZJR19TTkRfU09DX0FEQVUx NzAxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxN1gxPW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzYx PW0KK0NPTkZJR19TTkRfU09DX0FEQVUxNzYxX0kyQz1tCitDT05GSUdfU05EX1NPQ19BREFVMTc2 MV9TUEk9bQorQ09ORklHX1NORF9TT0NfQURBVTcwMDI9bQorQ09ORklHX1NORF9TT0NfQURBVTcx MTg9bQorQ09ORklHX1NORF9TT0NfQURBVTcxMThfSFc9bQorQ09ORklHX1NORF9TT0NfQURBVTcx MThfSTJDPW0KK0NPTkZJR19TTkRfU09DX0FLNDEwND1tCitDT05GSUdfU05EX1NPQ19BSzQxMTg9 bQorQ09ORklHX1NORF9TT0NfQUs0Mzc1PW0KK0NPTkZJR19TTkRfU09DX0FLNDQ1OD1tCitDT05G SUdfU05EX1NPQ19BSzQ1NTQ9bQorQ09ORklHX1NORF9TT0NfQUs0NjEzPW0KK0NPTkZJR19TTkRf U09DX0FLNDY0Mj1tCitDT05GSUdfU05EX1NPQ19BSzUzODY9bQorQ09ORklHX1NORF9TT0NfQUs1 NTU4PW0KK0NPTkZJR19TTkRfU09DX0FMQzU2MjM9bQorQ09ORklHX1NORF9TT0NfQVc4NzM4PW0K KyMgQ09ORklHX1NORF9TT0NfQVc4ODM5NSBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NPQ19CRDI4 NjIzPW0KK0NPTkZJR19TTkRfU09DX0JUX1NDTz1tCitDT05GSUdfU05EX1NPQ19DUENBUD1tCitD T05GSUdfU05EX1NPQ19DUzM1TDMyPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMMzM9bQorQ09ORklH X1NORF9TT0NfQ1MzNUwzND1tCitDT05GSUdfU05EX1NPQ19DUzM1TDM1PW0KK0NPTkZJR19TTkRf U09DX0NTMzVMMzY9bQorQ09ORklHX1NORF9TT0NfQ1MzNUw0MV9MSUI9bQorQ09ORklHX1NORF9T T0NfQ1MzNUw0MT1tCitDT05GSUdfU05EX1NPQ19DUzM1TDQxX1NQST1tCitDT05GSUdfU05EX1NP Q19DUzM1TDQxX0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzM1TDQ1PW0KK0NPTkZJR19TTkRfU09D X0NTMzVMNDVfU1BJPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNDVfSTJDPW0KK0NPTkZJR19TTkRf U09DX0NTMzVMNTY9bQorQ09ORklHX1NORF9TT0NfQ1MzNUw1Nl9TSEFSRUQ9bQorQ09ORklHX1NO RF9TT0NfQ1MzNUw1Nl9JMkM9bQorQ09ORklHX1NORF9TT0NfQ1MzNUw1Nl9TUEk9bQorQ09ORklH X1NORF9TT0NfQ1MzNUw1Nl9TRFc9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw0Ml9DT1JFPW0KK0NP TkZJR19TTkRfU09DX0NTNDJMNDI9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw0Ml9TRFc9bQorQ09O RklHX1NORF9TT0NfQ1M0Mkw1MT1tCitDT05GSUdfU05EX1NPQ19DUzQyTDUxX0kyQz1tCitDT05G SUdfU05EX1NPQ19DUzQyTDUyPW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNTY9bQorQ09ORklHX1NO RF9TT0NfQ1M0Mkw3Mz1tCitDT05GSUdfU05EX1NPQ19DUzQyTDgzPW0KK0NPTkZJR19TTkRfU09D X0NTNDIzND1tCitDT05GSUdfU05EX1NPQ19DUzQyNjU9bQorQ09ORklHX1NORF9TT0NfQ1M0Mjcw PW0KK0NPTkZJR19TTkRfU09DX0NTNDI3MT1tCitDT05GSUdfU05EX1NPQ19DUzQyNzFfSTJDPW0K K0NPTkZJR19TTkRfU09DX0NTNDI3MV9TUEk9bQorQ09ORklHX1NORF9TT0NfQ1M0MlhYOD1tCitD T05GSUdfU05EX1NPQ19DUzQyWFg4X0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzQzMTMwPW0KK0NP TkZJR19TTkRfU09DX0NTNDM0MT1tCitDT05GSUdfU05EX1NPQ19DUzQzNDk9bQorQ09ORklHX1NO RF9TT0NfQ1M1M0wzMD1tCitDT05GSUdfU05EX1NPQ19DWDIwNzJYPW0KK0NPTkZJR19TTkRfU09D X0pINzExMF9QV01EQUNfRElUPW0KK0NPTkZJR19TTkRfU09DX0RBNzIxMz1tCitDT05GSUdfU05E X1NPQ19ETUlDPW0KK0NPTkZJR19TTkRfU09DX0hETUlfQ09ERUM9bQorQ09ORklHX1NORF9TT0Nf RVM3MTM0PW0KK0NPTkZJR19TTkRfU09DX0VTNzI0MT1tCitDT05GSUdfU05EX1NPQ19FUzgzMTY9 bQorQ09ORklHX1NORF9TT0NfRVM4MzI2PW0KK0NPTkZJR19TTkRfU09DX0VTODMyOD1tCitDT05G SUdfU05EX1NPQ19FUzgzMjhfSTJDPW0KK0NPTkZJR19TTkRfU09DX0VTODMyOF9TUEk9bQorQ09O RklHX1NORF9TT0NfR1RNNjAxPW0KK0NPTkZJR19TTkRfU09DX0hEQT1tCitDT05GSUdfU05EX1NP Q19JQ1M0MzQzMj1tCitDT05GSUdfU05EX1NPQ19JRFQ4MjEwMzQ9bQorIyBDT05GSUdfU05EX1NP Q19JTk5PX1JLMzAzNiBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NPQ19MT0NITkFHQVJfU0M9bQor Q09ORklHX1NORF9TT0NfTUFYOTgwODg9bQorQ09ORklHX1NORF9TT0NfTUFYOTgwOTA9bQorQ09O RklHX1NORF9TT0NfTUFYOTgzNTdBPW0KK0NPTkZJR19TTkRfU09DX01BWDk4NTA0PW0KK0NPTkZJ R19TTkRfU09DX01BWDk4Njc9bQorQ09ORklHX1NORF9TT0NfTUFYOTg5Mjc9bQorQ09ORklHX1NO RF9TT0NfTUFYOTg1MjA9bQorQ09ORklHX1NORF9TT0NfTUFYOTgzNjM9bQorQ09ORklHX1NORF9T T0NfTUFYOTgzNzM9bQorQ09ORklHX1NORF9TT0NfTUFYOTgzNzNfSTJDPW0KK0NPTkZJR19TTkRf U09DX01BWDk4MzczX1NEVz1tCitDT05GSUdfU05EX1NPQ19NQVg5ODM5MD1tCitDT05GSUdfU05E X1NPQ19NQVg5ODM5Nj1tCitDT05GSUdfU05EX1NPQ19NQVg5ODYwPW0KKyMgQ09ORklHX1NORF9T T0NfTVNNODkxNl9XQ0RfQU5BTE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT0NfTVNNODkx Nl9XQ0RfRElHSVRBTCBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NPQ19QQ00xNjgxPW0KK0NPTkZJ R19TTkRfU09DX1BDTTE3ODk9bQorQ09ORklHX1NORF9TT0NfUENNMTc4OV9JMkM9bQorQ09ORklH X1NORF9TT0NfUENNMTc5WD1tCitDT05GSUdfU05EX1NPQ19QQ00xNzlYX0kyQz1tCitDT05GSUdf U05EX1NPQ19QQ00xNzlYX1NQST1tCitDT05GSUdfU05EX1NPQ19QQ00xODZYPW0KK0NPTkZJR19T TkRfU09DX1BDTTE4NlhfSTJDPW0KK0NPTkZJR19TTkRfU09DX1BDTTE4NlhfU1BJPW0KK0NPTkZJ R19TTkRfU09DX1BDTTMwNjA9bQorQ09ORklHX1NORF9TT0NfUENNMzA2MF9JMkM9bQorQ09ORklH X1NORF9TT0NfUENNMzA2MF9TUEk9bQorIyBDT05GSUdfU05EX1NPQ19QQ00zMTY4QV9JMkMgaXMg bm90IHNldAorIyBDT05GSUdfU05EX1NPQ19QQ00zMTY4QV9TUEkgaXMgbm90IHNldAorQ09ORklH X1NORF9TT0NfUENNNTEwMkE9bQorQ09ORklHX1NORF9TT0NfUENNNTEyeD1tCitDT05GSUdfU05E X1NPQ19QQ001MTJ4X0kyQz1tCitDT05GSUdfU05EX1NPQ19QQ001MTJ4X1NQST1tCitDT05GSUdf U05EX1NPQ19QRUIyNDY2PW0KK0NPTkZJR19TTkRfU09DX1JLMzMyOD1tCitDT05GSUdfU05EX1NP Q19SSzgxNz1tCitDT05GSUdfU05EX1NPQ19STDYyMzE9bQorQ09ORklHX1NORF9TT0NfUlQxMzA4 X1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDEzMTZfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUMTMx OF9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ1NjE2PW0KK0NPTkZJR19TTkRfU09DX1JUNTYzMT1t CitDT05GSUdfU05EX1NPQ19SVDU2NDA9bQorQ09ORklHX1NORF9TT0NfUlQ1NjQ1PW0KK0NPTkZJ R19TTkRfU09DX1JUNTY1OT1tCitDT05GSUdfU05EX1NPQ19SVDU2ODI9bQorQ09ORklHX1NORF9T T0NfUlQ1NjgyX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDcwMD1tCitDT05GSUdfU05EX1NPQ19S VDcwMF9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ3MTE9bQorQ09ORklHX1NORF9TT0NfUlQ3MTFf U0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNzExX1NEQ0FfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JU NzEyX1NEQ0FfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNzEyX1NEQ0FfRE1JQ19TRFc9bQorQ09O RklHX1NORF9TT0NfUlQ3MTU9bQorQ09ORklHX1NORF9TT0NfUlQ3MTVfU0RXPW0KK0NPTkZJR19T TkRfU09DX1JUNzE1X1NEQ0FfU0RXPW0KK0NPTkZJR19TTkRfU09DX1JUOTEyMD1tCitDT05GSUdf U05EX1NPQ19TRFdfTU9DS1VQPW0KK0NPTkZJR19TTkRfU09DX1NHVEw1MDAwPW0KK0NPTkZJR19T TkRfU09DX1NJR01BRFNQPW0KK0NPTkZJR19TTkRfU09DX1NJR01BRFNQX0kyQz1tCitDT05GSUdf U05EX1NPQ19TSUdNQURTUF9SRUdNQVA9bQorQ09ORklHX1NORF9TT0NfU0lNUExFX0FNUExJRklF Uj1tCitDT05GSUdfU05EX1NPQ19TSU1QTEVfTVVYPW0KK0NPTkZJR19TTkRfU09DX1NNQTEzMDM9 bQorQ09ORklHX1NORF9TT0NfU1BESUY9bQorQ09ORklHX1NORF9TT0NfU1JDNFhYWF9JMkM9bQor Q09ORklHX1NORF9TT0NfU1JDNFhYWD1tCitDT05GSUdfU05EX1NPQ19TU00yMzA1PW0KK0NPTkZJ R19TTkRfU09DX1NTTTI1MTg9bQorQ09ORklHX1NORF9TT0NfU1NNMjYwMj1tCitDT05GSUdfU05E X1NPQ19TU00yNjAyX1NQST1tCitDT05GSUdfU05EX1NPQ19TU00yNjAyX0kyQz1tCitDT05GSUdf U05EX1NPQ19TU000NTY3PW0KK0NPTkZJR19TTkRfU09DX1NUQTMyWD1tCitDT05GSUdfU05EX1NP Q19TVEEzNTA9bQorQ09ORklHX1NORF9TT0NfU1RJX1NBUz1tCitDT05GSUdfU05EX1NPQ19UQVMy NTUyPW0KK0NPTkZJR19TTkRfU09DX1RBUzI1NjI9bQorQ09ORklHX1NORF9TT0NfVEFTMjc2ND1t CitDT05GSUdfU05EX1NPQ19UQVMyNzcwPW0KK0NPTkZJR19TTkRfU09DX1RBUzI3ODA9bQorQ09O RklHX1NORF9TT0NfVEFTNTA4Nj1tCitDT05GSUdfU05EX1NPQ19UQVM1NzFYPW0KK0NPTkZJR19T TkRfU09DX1RBUzU3MjA9bQorQ09ORklHX1NORF9TT0NfVEFTNTgwNU09bQorQ09ORklHX1NORF9T T0NfVEFTNjQyND1tCitDT05GSUdfU05EX1NPQ19UREE3NDE5PW0KK0NPTkZJR19TTkRfU09DX1RG QTk4Nzk9bQorQ09ORklHX1NORF9TT0NfVEZBOTg5WD1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBB REMzWFhYPW0KK0NPTkZJR19TTkRfU09DX1RMVjMyMEFJQzIzPW0KK0NPTkZJR19TTkRfU09DX1RM VjMyMEFJQzIzX0kyQz1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMyM19TUEk9bQorQ09ORklH X1NORF9TT0NfVExWMzIwQUlDMzFYWD1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMzMlg0PW0K K0NPTkZJR19TTkRfU09DX1RMVjMyMEFJQzMyWDRfSTJDPW0KK0NPTkZJR19TTkRfU09DX1RMVjMy MEFJQzMyWDRfU1BJPW0KK0NPTkZJR19TTkRfU09DX1RMVjMyMEFJQzNYPW0KK0NPTkZJR19TTkRf U09DX1RMVjMyMEFJQzNYX0kyQz1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMzWF9TUEk9bQor Q09ORklHX1NORF9TT0NfVExWMzIwQURDWDE0MD1tCitDT05GSUdfU05EX1NPQ19UUzNBMjI3RT1t CitDT05GSUdfU05EX1NPQ19UU0NTNDJYWD1tCitDT05GSUdfU05EX1NPQ19UU0NTNDU0PW0KK0NP TkZJR19TTkRfU09DX1VEQTEzMzQ9bQorQ09ORklHX1NORF9TT0NfV0NEX01CSEM9bQorQ09ORklH X1NORF9TT0NfV0NEOTM4WD1tCitDT05GSUdfU05EX1NPQ19XQ0Q5MzhYX1NEVz1tCitDT05GSUdf U05EX1NPQ19XTTg1MTA9bQorQ09ORklHX1NORF9TT0NfV004NTIzPW0KK0NPTkZJR19TTkRfU09D X1dNODUyND1tCitDT05GSUdfU05EX1NPQ19XTTg1ODA9bQorQ09ORklHX1NORF9TT0NfV004NzEx PW0KK0NPTkZJR19TTkRfU09DX1dNODcyOD1tCitDT05GSUdfU05EX1NPQ19XTTg3MzE9bQorQ09O RklHX1NORF9TT0NfV004NzMxX0kyQz1tCitDT05GSUdfU05EX1NPQ19XTTg3MzFfU1BJPW0KK0NP TkZJR19TTkRfU09DX1dNODczNz1tCitDT05GSUdfU05EX1NPQ19XTTg3NDE9bQorQ09ORklHX1NO RF9TT0NfV004NzUwPW0KK0NPTkZJR19TTkRfU09DX1dNODc1Mz1tCitDT05GSUdfU05EX1NPQ19X TTg3NzA9bQorQ09ORklHX1NORF9TT0NfV004Nzc2PW0KK0NPTkZJR19TTkRfU09DX1dNODc4Mj1t CitDT05GSUdfU05EX1NPQ19XTTg4MDQ9bQorQ09ORklHX1NORF9TT0NfV004ODA0X0kyQz1tCitD T05GSUdfU05EX1NPQ19XTTg4MDRfU1BJPW0KK0NPTkZJR19TTkRfU09DX1dNODkwMz1tCitDT05G SUdfU05EX1NPQ19XTTg5MDQ9bQorQ09ORklHX1NORF9TT0NfV004OTQwPW0KK0NPTkZJR19TTkRf U09DX1dNODk2MD1tCitDT05GSUdfU05EX1NPQ19XTTg5NjE9bQorQ09ORklHX1NORF9TT0NfV004 OTYyPW0KK0NPTkZJR19TTkRfU09DX1dNODk3ND1tCitDT05GSUdfU05EX1NPQ19XTTg5Nzg9bQor Q09ORklHX1NORF9TT0NfV004OTg1PW0KK0NPTkZJR19TTkRfU09DX1dTQTg4MVg9bQorQ09ORklH X1NORF9TT0NfV1NBODgzWD1tCitDT05GSUdfU05EX1NPQ19aTDM4MDYwPW0KK0NPTkZJR19TTkRf U09DX01BWDk3NTk9bQorQ09ORklHX1NORF9TT0NfTVQ2MzUxPW0KK0NPTkZJR19TTkRfU09DX01U NjM1OD1tCitDT05GSUdfU05EX1NPQ19NVDY2NjA9bQorQ09ORklHX1NORF9TT0NfTkFVODMxNT1t CitDT05GSUdfU05EX1NPQ19OQVU4NTQwPW0KK0NPTkZJR19TTkRfU09DX05BVTg4MTA9bQorQ09O RklHX1NORF9TT0NfTkFVODgyMT1tCitDT05GSUdfU05EX1NPQ19OQVU4ODIyPW0KK0NPTkZJR19T TkRfU09DX05BVTg4MjQ9bQorQ09ORklHX1NORF9TT0NfVFBBNjEzMEEyPW0KK0NPTkZJR19TTkRf U09DX0xQQVNTX01BQ1JPX0NPTU1PTj1tCitDT05GSUdfU05EX1NPQ19MUEFTU19XU0FfTUFDUk89 bQorQ09ORklHX1NORF9TT0NfTFBBU1NfVkFfTUFDUk89bQorQ09ORklHX1NORF9TT0NfTFBBU1Nf UlhfTUFDUk89bQorQ09ORklHX1NORF9TT0NfTFBBU1NfVFhfTUFDUk89bQorIyBlbmQgb2YgQ09E RUMgZHJpdmVycworCitDT05GSUdfU05EX1NJTVBMRV9DQVJEX1VUSUxTPW0KK0NPTkZJR19TTkRf U0lNUExFX0NBUkQ9bQorQ09ORklHX1NORF9BVURJT19HUkFQSF9DQVJEPW0KK0NPTkZJR19TTkRf QVVESU9fR1JBUEhfQ0FSRDI9bQorQ09ORklHX1NORF9BVURJT19HUkFQSF9DQVJEMl9DVVNUT01f U0FNUExFPW0KK0NPTkZJR19TTkRfVEVTVF9DT01QT05FTlQ9bQorQ09ORklHX1NORF9WSVJUSU89 bQorQ09ORklHX0FDOTdfQlVTPW0KK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkK K0NPTkZJR19ISURfQkFUVEVSWV9TVFJFTkdUSD15CitDT05GSUdfSElEUkFXPXkKK0NPTkZJR19V SElEPW0KK0NPTkZJR19ISURfR0VORVJJQz1tCisKKyMKKyMgU3BlY2lhbCBISUQgZHJpdmVycwor IworQ09ORklHX0hJRF9BNFRFQ0g9bQorQ09ORklHX0hJRF9BQ0NVVE9VQ0g9bQorQ09ORklHX0hJ RF9BQ1JVWD1tCitDT05GSUdfSElEX0FDUlVYX0ZGPXkKK0NPTkZJR19ISURfQVBQTEU9bQorQ09O RklHX0hJRF9BUFBMRUlSPW0KK0NPTkZJR19ISURfQVNVUz1tCitDT05GSUdfSElEX0FVUkVBTD1t CitDT05GSUdfSElEX0JFTEtJTj1tCitDT05GSUdfSElEX0JFVE9QX0ZGPW0KK0NPTkZJR19ISURf QklHQkVOX0ZGPW0KK0NPTkZJR19ISURfQ0hFUlJZPW0KK0NPTkZJR19ISURfQ0hJQ09OWT1tCitD T05GSUdfSElEX0NPUlNBSVI9bQorQ09ORklHX0hJRF9DT1VHQVI9bQorQ09ORklHX0hJRF9NQUNB TExZPW0KK0NPTkZJR19ISURfUFJPRElLRVlTPW0KKyMgQ09ORklHX0hJRF9DTUVESUEgaXMgbm90 IHNldAorQ09ORklHX0hJRF9DUDIxMTI9bQorQ09ORklHX0hJRF9DUkVBVElWRV9TQjA1NDA9bQor Q09ORklHX0hJRF9DWVBSRVNTPW0KK0NPTkZJR19ISURfRFJBR09OUklTRT1tCitDT05GSUdfRFJB R09OUklTRV9GRj15CitDT05GSUdfSElEX0VNU19GRj1tCitDT05GSUdfSElEX0VMQU49bQorQ09O RklHX0hJRF9FTEVDT009bQorQ09ORklHX0hJRF9FTE89bQorQ09ORklHX0hJRF9FVklTSU9OPW0K K0NPTkZJR19ISURfRVpLRVk9bQorQ09ORklHX0hJRF9GVDI2MD1tCitDT05GSUdfSElEX0dFTUJJ UkQ9bQorQ09ORklHX0hJRF9HRlJNPW0KK0NPTkZJR19ISURfR0xPUklPVVM9bQorQ09ORklHX0hJ RF9IT0xURUs9bQorQ09ORklHX0hPTFRFS19GRj15CitDT05GSUdfSElEX1ZJVkFMRElfQ09NTU9O PW0KK0NPTkZJR19ISURfVklWQUxEST1tCitDT05GSUdfSElEX0dUNjgzUj1tCitDT05GSUdfSElE X0tFWVRPVUNIPW0KK0NPTkZJR19ISURfS1lFPW0KK0NPTkZJR19ISURfVUNMT0dJQz1tCitDT05G SUdfSElEX1dBTFRPUD1tCitDT05GSUdfSElEX1ZJRVdTT05JQz1tCitDT05GSUdfSElEX1ZSQzI9 bQorQ09ORklHX0hJRF9YSUFPTUk9bQorQ09ORklHX0hJRF9HWVJBVElPTj1tCitDT05GSUdfSElE X0lDQURFPW0KK0NPTkZJR19ISURfSVRFPW0KK0NPTkZJR19ISURfSkFCUkE9bQorQ09ORklHX0hJ RF9UV0lOSEFOPW0KK0NPTkZJR19ISURfS0VOU0lOR1RPTj1tCitDT05GSUdfSElEX0xDUE9XRVI9 bQorQ09ORklHX0hJRF9MRUQ9bQorQ09ORklHX0hJRF9MRU5PVk89bQorQ09ORklHX0hJRF9MRVRT S0VUQ0g9bQorQ09ORklHX0hJRF9MT0dJVEVDSD1tCitDT05GSUdfSElEX0xPR0lURUNIX0RKPW0K K0NPTkZJR19ISURfTE9HSVRFQ0hfSElEUFA9bQorQ09ORklHX0xPR0lURUNIX0ZGPXkKK0NPTkZJ R19MT0dJUlVNQkxFUEFEMl9GRj15CitDT05GSUdfTE9HSUc5NDBfRkY9eQorQ09ORklHX0xPR0lX SEVFTFNfRkY9eQorQ09ORklHX0hJRF9NQUdJQ01PVVNFPW0KK0NPTkZJR19ISURfTUFMVFJPTj1t CitDT05GSUdfSElEX01BWUZMQVNIPW0KK0NPTkZJR19ISURfTUVHQVdPUkxEX0ZGPW0KK0NPTkZJ R19ISURfUkVEUkFHT049bQorQ09ORklHX0hJRF9NSUNST1NPRlQ9bQorQ09ORklHX0hJRF9NT05U RVJFWT1tCitDT05GSUdfSElEX01VTFRJVE9VQ0g9bQorQ09ORklHX0hJRF9OSU5URU5ETz1tCitD T05GSUdfTklOVEVORE9fRkY9eQorQ09ORklHX0hJRF9OVEk9bQorQ09ORklHX0hJRF9OVFJJRz1t CitDT05GSUdfSElEX09SVEVLPW0KK0NPTkZJR19ISURfUEFOVEhFUkxPUkQ9bQorQ09ORklHX1BB TlRIRVJMT1JEX0ZGPXkKK0NPTkZJR19ISURfUEVOTU9VTlQ9bQorQ09ORklHX0hJRF9QRVRBTFlO WD1tCitDT05GSUdfSElEX1BJQ09MQ0Q9bQorQ09ORklHX0hJRF9QSUNPTENEX0ZCPXkKK0NPTkZJ R19ISURfUElDT0xDRF9CQUNLTElHSFQ9eQorQ09ORklHX0hJRF9QSUNPTENEX0xDRD15CitDT05G SUdfSElEX1BJQ09MQ0RfTEVEUz15CitDT05GSUdfSElEX1BJQ09MQ0RfQ0lSPXkKK0NPTkZJR19I SURfUExBTlRST05JQ1M9bQorQ09ORklHX0hJRF9QTEFZU1RBVElPTj1tCitDT05GSUdfUExBWVNU QVRJT05fRkY9eQorQ09ORklHX0hJRF9QWFJDPW0KK0NPTkZJR19ISURfUkFaRVI9bQorQ09ORklH X0hJRF9QUklNQVg9bQorQ09ORklHX0hJRF9SRVRST0RFPW0KK0NPTkZJR19ISURfUk9DQ0FUPW0K K0NPTkZJR19ISURfU0FJVEVLPW0KK0NPTkZJR19ISURfU0FNU1VORz1tCitDT05GSUdfSElEX1NF TUlURUs9bQorQ09ORklHX0hJRF9TSUdNQU1JQ1JPPW0KK0NPTkZJR19ISURfU09OWT1tCitDT05G SUdfU09OWV9GRj15CitDT05GSUdfSElEX1NQRUVETElOSz1tCitDT05GSUdfSElEX1NURUFNPW0K K0NPTkZJR19TVEVBTV9GRj15CitDT05GSUdfSElEX1NURUVMU0VSSUVTPW0KK0NPTkZJR19ISURf U1VOUExVUz1tCitDT05GSUdfSElEX1JNST1tCitDT05GSUdfSElEX0dSRUVOQVNJQT1tCitDT05G SUdfR1JFRU5BU0lBX0ZGPXkKK0NPTkZJR19ISURfU01BUlRKT1lQTFVTPW0KK0NPTkZJR19TTUFS VEpPWVBMVVNfRkY9eQorQ09ORklHX0hJRF9USVZPPW0KK0NPTkZJR19ISURfVE9QU0VFRD1tCitD T05GSUdfSElEX1RPUFJFPW0KK0NPTkZJR19ISURfVEhJTkdNPW0KK0NPTkZJR19ISURfVEhSVVNU TUFTVEVSPW0KK0NPTkZJR19USFJVU1RNQVNURVJfRkY9eQorQ09ORklHX0hJRF9VRFJBV19QUzM9 bQorQ09ORklHX0hJRF9VMkZaRVJPPW0KK0NPTkZJR19ISURfV0FDT009bQorQ09ORklHX0hJRF9X SUlNT1RFPW0KK0NPTkZJR19ISURfWElOTU89bQorQ09ORklHX0hJRF9aRVJPUExVUz1tCitDT05G SUdfWkVST1BMVVNfRkY9eQorQ09ORklHX0hJRF9aWURBQ1JPTj1tCitDT05GSUdfSElEX1NFTlNP Ul9IVUI9bQorQ09ORklHX0hJRF9TRU5TT1JfQ1VTVE9NX1NFTlNPUj1tCitDT05GSUdfSElEX0FM UFM9bQorQ09ORklHX0hJRF9NQ1AyMjIxPW0KKyMgZW5kIG9mIFNwZWNpYWwgSElEIGRyaXZlcnMK KworIworIyBISUQtQlBGIHN1cHBvcnQKKyMKKyMgZW5kIG9mIEhJRC1CUEYgc3VwcG9ydAorCisj CisjIFVTQiBISUQgc3VwcG9ydAorIworQ09ORklHX1VTQl9ISUQ9bQorQ09ORklHX0hJRF9QSUQ9 eQorQ09ORklHX1VTQl9ISURERVY9eQorCisjCisjIFVTQiBISUQgQm9vdCBQcm90b2NvbCBkcml2 ZXJzCisjCisjIENPTkZJR19VU0JfS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NT1VTRSBp cyBub3Qgc2V0CisjIGVuZCBvZiBVU0IgSElEIEJvb3QgUHJvdG9jb2wgZHJpdmVycworIyBlbmQg b2YgVVNCIEhJRCBzdXBwb3J0CisKK0NPTkZJR19JMkNfSElEPW0KK0NPTkZJR19JMkNfSElEX09G PW0KK0NPTkZJR19JMkNfSElEX09GX0VMQU49bQorQ09ORklHX0kyQ19ISURfT0ZfR09PRElYPW0K K0NPTkZJR19JMkNfSElEX0NPUkU9bQorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQor Q09ORklHX1VTQl9TVVBQT1JUPXkKK0NPTkZJR19VU0JfQ09NTU9OPW0KK0NPTkZJR19VU0JfTEVE X1RSSUc9eQorQ09ORklHX1VTQl9VTFBJX0JVUz1tCitDT05GSUdfVVNCX0NPTk5fR1BJTz1tCitD T05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCPW0KK0NPTkZJR19VU0JfUENJPXkK K0NPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVM9eQorCisjCisjIE1pc2NlbGxhbmVvdXMg VVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVGQVVMVF9QRVJTSVNUPXkKKyMgQ09ORklHX1VT Ql9GRVdfSU5JVF9SRVRSSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9S UyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09URz15CisjIENPTkZJR19VU0JfT1RHX1BST0RVQ1RM SVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfRElTQUJMRV9FWFRFUk5BTF9IVUIgaXMg bm90IHNldAorQ09ORklHX1VTQl9PVEdfRlNNPW0KK0NPTkZJR19VU0JfTEVEU19UUklHR0VSX1VT QlBPUlQ9bQorQ09ORklHX1VTQl9BVVRPU1VTUEVORF9ERUxBWT0yCitDT05GSUdfVVNCX01PTj1t CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfVVNCX0M2N1gw MF9IQ0Q9bQorQ09ORklHX1VTQl9YSENJX0hDRD1tCisjIENPTkZJR19VU0JfWEhDSV9EQkdDQVAg aXMgbm90IHNldAorQ09ORklHX1VTQl9YSENJX1BDST1tCitDT05GSUdfVVNCX1hIQ0lfUENJX1JF TkVTQVM9bQorQ09ORklHX1VTQl9YSENJX1BMQVRGT1JNPW0KK0NPTkZJR19VU0JfRUhDSV9IQ0Q9 bQorQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKK0NPTkZJR19VU0JfRUhDSV9UVF9ORVdT Q0hFRD15CitDT05GSUdfVVNCX0VIQ0lfUENJPW0KK0NPTkZJR19VU0JfRUhDSV9GU0w9bQorQ09O RklHX1VTQl9FSENJX0hDRF9QTEFURk9STT1tCitDT05GSUdfVVNCX09YVTIxMEhQX0hDRD1tCitD T05GSUdfVVNCX0lTUDExNlhfSENEPW0KK0NPTkZJR19VU0JfTUFYMzQyMV9IQ0Q9bQorQ09ORklH X1VTQl9PSENJX0hDRD1tCitDT05GSUdfVVNCX09IQ0lfSENEX1BDST1tCitDT05GSUdfVVNCX09I Q0lfSENEX1NTQj15CitDT05GSUdfVVNCX09IQ0lfSENEX1BMQVRGT1JNPW0KK0NPTkZJR19VU0Jf VUhDSV9IQ0Q9bQorQ09ORklHX1VTQl9TTDgxMV9IQ0Q9bQorIyBDT05GSUdfVVNCX1NMODExX0hD RF9JU08gaXMgbm90IHNldAorQ09ORklHX1VTQl9TTDgxMV9DUz1tCitDT05GSUdfVVNCX1I4QTY2 NTk3X0hDRD1tCitDT05GSUdfVVNCX0hDRF9CQ01BPW0KK0NPTkZJR19VU0JfSENEX1NTQj1tCisj IENPTkZJR19VU0JfSENEX1RFU1RfTU9ERSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBD bGFzcyBkcml2ZXJzCisjCitDT05GSUdfVVNCX0FDTT1tCitDT05GSUdfVVNCX1BSSU5URVI9bQor Q09ORklHX1VTQl9XRE09bQorQ09ORklHX1VTQl9UTUM9bQorCisjCisjIE5PVEU6IFVTQl9TVE9S QUdFIGRlcGVuZHMgb24gU0NTSSBidXQgQkxLX0RFVl9TRCBtYXkKKyMKKworIworIyBhbHNvIGJl IG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mbworIworQ09ORklHX1VT Ql9TVE9SQUdFPW0KKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJ R19VU0JfU1RPUkFHRV9SRUFMVEVLPW0KK0NPTkZJR19SRUFMVEVLX0FVVE9QTT15CitDT05GSUdf VVNCX1NUT1JBR0VfREFUQUZBQj1tCitDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTT1tCitDT05G SUdfVVNCX1NUT1JBR0VfSVNEMjAwPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9VU0JBVD1tCitDT05G SUdfVVNCX1NUT1JBR0VfU0REUjA5PW0KK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSNTU9bQorQ09O RklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9BTEFVREE9bQor Q09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9LQVJNQT1t CitDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQj1tCitDT05GSUdfVVNCX1NUT1JBR0Vf RU5FX1VCNjI1MD1tCitDT05GSUdfVVNCX1VBUz1tCisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNl cworIworQ09ORklHX1VTQl9NREM4MDA9bQorQ09ORklHX1VTQl9NSUNST1RFSz1tCitDT05GSUdf VVNCSVBfQ09SRT1tCitDT05GSUdfVVNCSVBfVkhDSV9IQ0Q9bQorQ09ORklHX1VTQklQX1ZIQ0lf SENfUE9SVFM9OAorQ09ORklHX1VTQklQX1ZIQ0lfTlJfSENTPTEKK0NPTkZJR19VU0JJUF9IT1NU PW0KK0NPTkZJR19VU0JJUF9WVURDPW0KKyMgQ09ORklHX1VTQklQX0RFQlVHIGlzIG5vdCBzZXQK KworIworIyBVU0IgZHVhbC1tb2RlIGNvbnRyb2xsZXIgZHJpdmVycworIworQ09ORklHX1VTQl9D RE5TX1NVUFBPUlQ9bQorQ09ORklHX1VTQl9DRE5TX0hPU1Q9eQorQ09ORklHX1VTQl9DRE5TMz1t CitDT05GSUdfVVNCX0NETlMzX0dBREdFVD15CitDT05GSUdfVVNCX0NETlMzX0hPU1Q9eQorQ09O RklHX1VTQl9DRE5TM19TVEFSRklWRT1tCitDT05GSUdfVVNCX01VU0JfSERSQz1tCitDT05GSUdf VVNCX01VU0JfSE9TVD15CisjIENPTkZJR19VU0JfTVVTQl9HQURHRVQgaXMgbm90IHNldAorIyBD T05GSUdfVVNCX01VU0JfRFVBTF9ST0xFIGlzIG5vdCBzZXQKKworIworIyBQbGF0Zm9ybSBHbHVl IExheWVyCisjCisKKyMKKyMgTVVTQiBETUEgbW9kZQorIworQ09ORklHX01VU0JfUElPX09OTFk9 eQorQ09ORklHX1VTQl9EV0MzPW0KK0NPTkZJR19VU0JfRFdDM19VTFBJPXkKKyMgQ09ORklHX1VT Ql9EV0MzX0hPU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0RXQzNfR0FER0VUIGlzIG5vdCBz ZXQKK0NPTkZJR19VU0JfRFdDM19EVUFMX1JPTEU9eQorCisjCisjIFBsYXRmb3JtIEdsdWUgRHJp dmVyIFN1cHBvcnQKKyMKK0NPTkZJR19VU0JfRFdDM19IQVBTPW0KK0NPTkZJR19VU0JfRFdDM19P Rl9TSU1QTEU9bQorQ09ORklHX1VTQl9EV0MyPW0KKyMgQ09ORklHX1VTQl9EV0MyX0hPU1QgaXMg bm90IHNldAorCisjCisjIEdhZGdldC9EdWFsLXJvbGUgbW9kZSByZXF1aXJlcyBVU0IgR2FkZ2V0 IHN1cHBvcnQgdG8gYmUgZW5hYmxlZAorIworIyBDT05GSUdfVVNCX0RXQzJfUEVSSVBIRVJBTCBp cyBub3Qgc2V0CitDT05GSUdfVVNCX0RXQzJfRFVBTF9ST0xFPXkKK0NPTkZJR19VU0JfRFdDMl9Q Q0k9bQorIyBDT05GSUdfVVNCX0RXQzJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0RX QzJfVFJBQ0tfTUlTU0VEX1NPRlMgaXMgbm90IHNldAorQ09ORklHX1VTQl9DSElQSURFQT1tCisj IENPTkZJR19VU0JfQ0hJUElERUFfVURDIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfQ0hJUElERUFf SE9TVD15CitDT05GSUdfVVNCX0NISVBJREVBX1BDST1tCitDT05GSUdfVVNCX0NISVBJREVBX01T TT1tCitDT05GSUdfVVNCX0NISVBJREVBX0lNWD1tCitDT05GSUdfVVNCX0NISVBJREVBX0dFTkVS SUM9bQorQ09ORklHX1VTQl9DSElQSURFQV9URUdSQT1tCitDT05GSUdfVVNCX0lTUDE3NjA9bQor Q09ORklHX1VTQl9JU1AxNzYwX0hDRD15CitDT05GSUdfVVNCX0lTUDE3NjBfSE9TVF9ST0xFPXkK KyMgQ09ORklHX1VTQl9JU1AxNzYwX0dBREdFVF9ST0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VT Ql9JU1AxNzYwX0RVQUxfUk9MRSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycwor IworQ09ORklHX1VTQl9TRVJJQUw9bQorQ09ORklHX1VTQl9TRVJJQUxfR0VORVJJQz15CitDT05G SUdfVVNCX1NFUklBTF9TSU1QTEU9bQorQ09ORklHX1VTQl9TRVJJQUxfQUlSQ0FCTEU9bQorQ09O RklHX1VTQl9TRVJJQUxfQVJLMzExNj1tCitDT05GSUdfVVNCX1NFUklBTF9CRUxLSU49bQorQ09O RklHX1VTQl9TRVJJQUxfQ0gzNDE9bQorQ09ORklHX1VTQl9TRVJJQUxfV0hJVEVIRUFUPW0KK0NP TkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVD1tCitDT05GSUdfVVNCX1NFUklBTF9DUDIx MFg9bQorQ09ORklHX1VTQl9TRVJJQUxfQ1lQUkVTU19NOD1tCitDT05GSUdfVVNCX1NFUklBTF9F TVBFRz1tCitDT05GSUdfVVNCX1NFUklBTF9GVERJX1NJTz1tCitDT05GSUdfVVNCX1NFUklBTF9W SVNPUj1tCitDT05GSUdfVVNCX1NFUklBTF9JUEFRPW0KK0NPTkZJR19VU0JfU0VSSUFMX0lSPW0K K0NPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JUPW0KK0NPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JU X1RJPW0KK0NPTkZJR19VU0JfU0VSSUFMX0Y4MTIzMj1tCitDT05GSUdfVVNCX1NFUklBTF9GODE1 M1g9bQorQ09ORklHX1VTQl9TRVJJQUxfR0FSTUlOPW0KK0NPTkZJR19VU0JfU0VSSUFMX0lQVz1t CitDT05GSUdfVVNCX1NFUklBTF9JVVU9bQorQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREE9 bQorQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTj1tCitDT05GSUdfVVNCX1NFUklBTF9LTFNJPW0K K0NPTkZJR19VU0JfU0VSSUFMX0tPQklMX1NDVD1tCitDT05GSUdfVVNCX1NFUklBTF9NQ1RfVTIz Mj1tCitDT05GSUdfVVNCX1NFUklBTF9NRVRSTz1tCitDT05GSUdfVVNCX1NFUklBTF9NT1M3NzIw PW0KK0NPTkZJR19VU0JfU0VSSUFMX01PUzc3MTVfUEFSUE9SVD15CitDT05GSUdfVVNCX1NFUklB TF9NT1M3ODQwPW0KK0NPTkZJR19VU0JfU0VSSUFMX01YVVBPUlQ9bQorQ09ORklHX1VTQl9TRVJJ QUxfTkFWTUFOPW0KK0NPTkZJR19VU0JfU0VSSUFMX1BMMjMwMz1tCitDT05GSUdfVVNCX1NFUklB TF9PVEk2ODU4PW0KK0NPTkZJR19VU0JfU0VSSUFMX1FDQVVYPW0KK0NPTkZJR19VU0JfU0VSSUFM X1FVQUxDT01NPW0KK0NPTkZJR19VU0JfU0VSSUFMX1NQQ1A4WDU9bQorQ09ORklHX1VTQl9TRVJJ QUxfU0FGRT1tCitDT05GSUdfVVNCX1NFUklBTF9TQUZFX1BBRERFRD15CitDT05GSUdfVVNCX1NF UklBTF9TSUVSUkFXSVJFTEVTUz1tCitDT05GSUdfVVNCX1NFUklBTF9TWU1CT0w9bQorQ09ORklH X1VTQl9TRVJJQUxfVEk9bQorQ09ORklHX1VTQl9TRVJJQUxfQ1lCRVJKQUNLPW0KK0NPTkZJR19V U0JfU0VSSUFMX1dXQU49bQorQ09ORklHX1VTQl9TRVJJQUxfT1BUSU9OPW0KK0NPTkZJR19VU0Jf U0VSSUFMX09NTklORVQ9bQorQ09ORklHX1VTQl9TRVJJQUxfT1BUSUNPTj1tCitDT05GSUdfVVNC X1NFUklBTF9YU0VOU19NVD1tCitDT05GSUdfVVNCX1NFUklBTF9XSVNIQk9ORT1tCitDT05GSUdf VVNCX1NFUklBTF9TU1UxMDA9bQorQ09ORklHX1VTQl9TRVJJQUxfUVQyPW0KK0NPTkZJR19VU0Jf U0VSSUFMX1VQRDc4RjA3MzA9bQorQ09ORklHX1VTQl9TRVJJQUxfWFI9bQorQ09ORklHX1VTQl9T RVJJQUxfREVCVUc9bQorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKK0NPTkZJ R19VU0JfVVNTNzIwPW0KK0NPTkZJR19VU0JfRU1JNjI9bQorQ09ORklHX1VTQl9FTUkyNj1tCitD T05GSUdfVVNCX0FEVVRVWD1tCitDT05GSUdfVVNCX1NFVlNFRz1tCitDT05GSUdfVVNCX0xFR09U T1dFUj1tCitDT05GSUdfVVNCX0xDRD1tCitDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzPW0KK0NP TkZJR19VU0JfQ1lUSEVSTT1tCitDT05GSUdfVVNCX0lETU9VU0U9bQorQ09ORklHX1VTQl9BUFBM RURJU1BMQVk9bQorQ09ORklHX0FQUExFX01GSV9GQVNUQ0hBUkdFPW0KK0NPTkZJR19VU0JfU0lT VVNCVkdBPW0KK0NPTkZJR19VU0JfTEQ9bQorQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUj1tCitD T05GSUdfVVNCX0lPV0FSUklPUj1tCisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CitDT05G SUdfVVNCX0VIU0VUX1RFU1RfRklYVFVSRT1tCitDT05GSUdfVVNCX0lTSUdIVEZXPW0KK0NPTkZJ R19VU0JfWVVSRVg9bQorQ09ORklHX1VTQl9FWlVTQl9GWDI9bQorQ09ORklHX1VTQl9IVUJfVVNC MjUxWEI9bQorQ09ORklHX1VTQl9IU0lDX1VTQjM1MDM9bQorQ09ORklHX1VTQl9IU0lDX1VTQjQ2 MDQ9bQorQ09ORklHX1VTQl9MSU5LX0xBWUVSX1RFU1Q9bQorIyBDT05GSUdfVVNCX0NIQU9TS0VZ IGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT05CT0FSRF9IVUI9bQorQ09ORklHX1VTQl9BVE09bQor Q09ORklHX1VTQl9TUEVFRFRPVUNIPW0KK0NPTkZJR19VU0JfQ1hBQ1JVPW0KK0NPTkZJR19VU0Jf VUVBR0xFQVRNPW0KK0NPTkZJR19VU0JfWFVTQkFUTT1tCisKKyMKKyMgVVNCIFBoeXNpY2FsIExh eWVyIGRyaXZlcnMKKyMKK0NPTkZJR19VU0JfUEhZPXkKK0NPTkZJR19OT1BfVVNCX1hDRUlWPW0K KyMgQ09ORklHX1VTQl9HUElPX1ZCVVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9JU1AxMzAxPW0K KyMgZW5kIG9mIFVTQiBQaHlzaWNhbCBMYXllciBkcml2ZXJzCisKK0NPTkZJR19VU0JfR0FER0VU PW0KKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dB REdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZT IGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUX1ZCVVNfRFJBVz0yCitDT05GSUdfVVNCX0dB REdFVF9TVE9SQUdFX05VTV9CVUZGRVJTPTIKK0NPTkZJR19VX1NFUklBTF9DT05TT0xFPXkKKwor IworIyBVU0IgUGVyaXBoZXJhbCBDb250cm9sbGVyCisjCisjIENPTkZJR19VU0JfR1JfVURDIGlz IG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5NyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0Jf UFhBMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NVl9VREMgaXMgbm90IHNldAorIyBDT05G SUdfVVNCX01WX1UzRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NOUF9DT1JFPW0KK0NPTkZJR19V U0JfU05QX1VEQ19QTEFUPW0KKyMgQ09ORklHX1VTQl9NNjY1OTIgaXMgbm90IHNldAorQ09ORklH X1VTQl9CRENfVURDPW0KKyMgQ09ORklHX1VTQl9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09O RklHX1VTQl9ORVQyMjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9ORVQyMjgwIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1VTQl9HT0tVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FRzIwVCBpcyBu b3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9YSUxJTlg9bQorQ09ORklHX1VTQl9NQVgzNDIwX1VE Qz1tCisjIENPTkZJR19VU0JfRFVNTVlfSENEIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFVTQiBQZXJp cGhlcmFsIENvbnRyb2xsZXIKKworQ09ORklHX1VTQl9MSUJDT01QT1NJVEU9bQorQ09ORklHX1VT Ql9GX0FDTT1tCitDT05GSUdfVVNCX0ZfU1NfTEI9bQorQ09ORklHX1VTQl9VX1NFUklBTD1tCitD T05GSUdfVVNCX1VfRVRIRVI9bQorQ09ORklHX1VTQl9VX0FVRElPPW0KK0NPTkZJR19VU0JfRl9T RVJJQUw9bQorQ09ORklHX1VTQl9GX09CRVg9bQorQ09ORklHX1VTQl9GX05DTT1tCitDT05GSUdf VVNCX0ZfRUNNPW0KK0NPTkZJR19VU0JfRl9QSE9ORVQ9bQorQ09ORklHX1VTQl9GX0VFTT1tCitD T05GSUdfVVNCX0ZfU1VCU0VUPW0KK0NPTkZJR19VU0JfRl9STkRJUz1tCitDT05GSUdfVVNCX0Zf TUFTU19TVE9SQUdFPW0KK0NPTkZJR19VU0JfRl9GUz1tCitDT05GSUdfVVNCX0ZfVUFDMT1tCitD T05GSUdfVVNCX0ZfVUFDMj1tCitDT05GSUdfVVNCX0ZfVVZDPW0KK0NPTkZJR19VU0JfRl9NSURJ PW0KK0NPTkZJR19VU0JfRl9ISUQ9bQorQ09ORklHX1VTQl9GX1BSSU5URVI9bQorQ09ORklHX1VT Ql9GX1RDTT1tCitDT05GSUdfVVNCX0NPTkZJR0ZTPW0KK0NPTkZJR19VU0JfQ09ORklHRlNfU0VS SUFMPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfQUNNPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfT0JF WD15CitDT05GSUdfVVNCX0NPTkZJR0ZTX05DTT15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0VDTT15 CitDT05GSUdfVVNCX0NPTkZJR0ZTX0VDTV9TVUJTRVQ9eQorQ09ORklHX1VTQl9DT05GSUdGU19S TkRJUz15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0VFTT15CitDT05GSUdfVVNCX0NPTkZJR0ZTX1BI T05FVD15CitDT05GSUdfVVNCX0NPTkZJR0ZTX01BU1NfU1RPUkFHRT15CitDT05GSUdfVVNCX0NP TkZJR0ZTX0ZfTEJfU1M9eQorQ09ORklHX1VTQl9DT05GSUdGU19GX0ZTPXkKK0NPTkZJR19VU0Jf Q09ORklHRlNfRl9VQUMxPXkKKyMgQ09ORklHX1VTQl9DT05GSUdGU19GX1VBQzFfTEVHQUNZIGlz IG5vdCBzZXQKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9VQUMyPXkKK0NPTkZJR19VU0JfQ09ORklH RlNfRl9NSURJPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9ISUQ9eQorQ09ORklHX1VTQl9DT05G SUdGU19GX1VWQz15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfUFJJTlRFUj15CitDT05GSUdfVVNC X0NPTkZJR0ZTX0ZfVENNPXkKKworIworIyBVU0IgR2FkZ2V0IHByZWNvbXBvc2VkIGNvbmZpZ3Vy YXRpb25zCisjCisjIENPTkZJR19VU0JfWkVSTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0FVRElP PW0KKyMgQ09ORklHX0dBREdFVF9VQUMxIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRVRIPW0KK0NP TkZJR19VU0JfRVRIX1JORElTPXkKK0NPTkZJR19VU0JfRVRIX0VFTT15CitDT05GSUdfVVNCX0df TkNNPW0KK0NPTkZJR19VU0JfR0FER0VURlM9bQorQ09ORklHX1VTQl9GVU5DVElPTkZTPW0KK0NP TkZJR19VU0JfRlVOQ1RJT05GU19FVEg9eQorQ09ORklHX1VTQl9GVU5DVElPTkZTX1JORElTPXkK K0NPTkZJR19VU0JfRlVOQ1RJT05GU19HRU5FUklDPXkKK0NPTkZJR19VU0JfTUFTU19TVE9SQUdF PW0KK0NPTkZJR19VU0JfR0FER0VUX1RBUkdFVD1tCitDT05GSUdfVVNCX0dfU0VSSUFMPW0KK0NP TkZJR19VU0JfTUlESV9HQURHRVQ9bQorQ09ORklHX1VTQl9HX1BSSU5URVI9bQorQ09ORklHX1VT Ql9DRENfQ09NUE9TSVRFPW0KK0NPTkZJR19VU0JfR19OT0tJQT1tCitDT05GSUdfVVNCX0dfQUNN X01TPW0KK0NPTkZJR19VU0JfR19NVUxUST1tCitDT05GSUdfVVNCX0dfTVVMVElfUk5ESVM9eQor Q09ORklHX1VTQl9HX01VTFRJX0NEQz15CitDT05GSUdfVVNCX0dfSElEPW0KK0NPTkZJR19VU0Jf R19EQkdQPW0KKyMgQ09ORklHX1VTQl9HX0RCR1BfUFJJTlRLIGlzIG5vdCBzZXQKK0NPTkZJR19V U0JfR19EQkdQX1NFUklBTD15CitDT05GSUdfVVNCX0dfV0VCQ0FNPW0KK0NPTkZJR19VU0JfUkFX X0dBREdFVD1tCisjIGVuZCBvZiBVU0IgR2FkZ2V0IHByZWNvbXBvc2VkIGNvbmZpZ3VyYXRpb25z CisKK0NPTkZJR19UWVBFQz1tCitDT05GSUdfVFlQRUNfVENQTT1tCitDT05GSUdfVFlQRUNfVENQ Q0k9bQorQ09ORklHX1RZUEVDX1JUMTcxMUg9bQorQ09ORklHX1RZUEVDX1RDUENJX01UNjM3MD1t CitDT05GSUdfVFlQRUNfVENQQ0lfTUFYSU09bQorQ09ORklHX1RZUEVDX0ZVU0IzMDI9bQorQ09O RklHX1RZUEVDX1VDU0k9bQorQ09ORklHX1VDU0lfQ0NHPW0KK0NPTkZJR19VQ1NJX1NUTTMyRzA9 bQorQ09ORklHX1VDU0lfUE1JQ19HTElOSz1tCitDT05GSUdfVFlQRUNfVFBTNjU5OFg9bQorQ09O RklHX1RZUEVDX0FOWDc0MTE9bQorQ09ORklHX1RZUEVDX1JUMTcxOT1tCitDT05GSUdfVFlQRUNf SEQzU1MzMjIwPW0KK0NPTkZJR19UWVBFQ19TVFVTQjE2MFg9bQorQ09ORklHX1RZUEVDX1dVU0Iz ODAxPW0KKworIworIyBVU0IgVHlwZS1DIE11bHRpcGxleGVyL0RlTXVsdGlwbGV4ZXIgU3dpdGNo IHN1cHBvcnQKKyMKK0NPTkZJR19UWVBFQ19NVVhfRlNBNDQ4MD1tCitDT05GSUdfVFlQRUNfTVVY X0dQSU9fU0JVPW0KK0NPTkZJR19UWVBFQ19NVVhfUEkzVVNCMzA1MzI9bQorIyBlbmQgb2YgVVNC IFR5cGUtQyBNdWx0aXBsZXhlci9EZU11bHRpcGxleGVyIFN3aXRjaCBzdXBwb3J0CisKKyMKKyMg VVNCIFR5cGUtQyBBbHRlcm5hdGUgTW9kZSBkcml2ZXJzCisjCitDT05GSUdfVFlQRUNfRFBfQUxU TU9ERT1tCitDT05GSUdfVFlQRUNfTlZJRElBX0FMVE1PREU9bQorIyBlbmQgb2YgVVNCIFR5cGUt QyBBbHRlcm5hdGUgTW9kZSBkcml2ZXJzCisKK0NPTkZJR19VU0JfUk9MRV9TV0lUQ0g9bQorQ09O RklHX01NQz1tCitDT05GSUdfUFdSU0VRX0VNTUM9bQorQ09ORklHX1BXUlNFUV9TRDg3ODc9bQor Q09ORklHX1BXUlNFUV9TSU1QTEU9bQorQ09ORklHX01NQ19CTE9DSz1tCitDT05GSUdfTU1DX0JM T0NLX01JTk9SUz04CitDT05GSUdfU0RJT19VQVJUPW0KKyMgQ09ORklHX01NQ19URVNUIGlzIG5v dCBzZXQKK0NPTkZJR19NTUNfQ1JZUFRPPXkKKworIworIyBNTUMvU0QvU0RJTyBIb3N0IENvbnRy b2xsZXIgRHJpdmVycworIworIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19N TUNfQVJNTU1DST1tCitDT05GSUdfTU1DX1NUTTMyX1NETU1DPXkKK0NPTkZJR19NTUNfU0RIQ0k9 bQorQ09ORklHX01NQ19TREhDSV9JT19BQ0NFU1NPUlM9eQorQ09ORklHX01NQ19TREhDSV9QQ0k9 bQorQ09ORklHX01NQ19SSUNPSF9NTUM9eQorQ09ORklHX01NQ19TREhDSV9QTFRGTT1tCitDT05G SUdfTU1DX1NESENJX09GX0FSQVNBTj1tCisjIENPTkZJR19NTUNfU0RIQ0lfT0ZfQVQ5MSBpcyBu b3Qgc2V0CitDT05GSUdfTU1DX1NESENJX09GX0RXQ01TSEM9bQorQ09ORklHX01NQ19TREhDSV9D QURFTkNFPW0KK0NPTkZJR19NTUNfU0RIQ0lfRl9TREgzMD1tCisjIENPTkZJR19NTUNfU0RIQ0lf TUlMQkVBVVQgaXMgbm90IHNldAorQ09ORklHX01NQ19BTENPUj1tCitDT05GSUdfTU1DX1RJRk1f U0Q9bQorIyBDT05GSUdfTU1DX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfTU1DX1NEUklDT0hfQ1M9 bQorQ09ORklHX01NQ19DQjcxMD1tCitDT05GSUdfTU1DX1ZJQV9TRE1NQz1tCitDT05GSUdfTU1D X0RXPW0KK0NPTkZJR19NTUNfRFdfUExURk09bQorQ09ORklHX01NQ19EV19CTFVFRklFTEQ9bQor Q09ORklHX01NQ19EV19FWFlOT1M9bQorQ09ORklHX01NQ19EV19ISTM3OThDVjIwMD1tCitDT05G SUdfTU1DX0RXX0szPW0KK0NPTkZJR19NTUNfRFdfUENJPW0KK0NPTkZJR19NTUNfRFdfU1RBUkZJ VkU9bQorQ09ORklHX01NQ19WVUIzMDA9bQorQ09ORklHX01NQ19VU0hDPW0KK0NPTkZJR19NTUNf VVNESEk2Uk9MMD1tCitDT05GSUdfTU1DX1JFQUxURUtfUENJPW0KK0NPTkZJR19NTUNfUkVBTFRF S19VU0I9bQorQ09ORklHX01NQ19DUUhDST1tCitDT05GSUdfTU1DX0hTUT1tCitDT05GSUdfTU1D X1RPU0hJQkFfUENJPW0KK0NPTkZJR19NTUNfTVRLPW0KK0NPTkZJR19NTUNfU0RIQ0lfWEVOT049 bQorIyBDT05GSUdfTU1DX1NESENJX09NQVAgaXMgbm90IHNldAorQ09ORklHX01NQ19TREhDSV9B TTY1ND1tCitDT05GSUdfU0NTSV9VRlNIQ0Q9bQorQ09ORklHX1NDU0lfVUZTX0JTRz15CitDT05G SUdfU0NTSV9VRlNfQ1JZUFRPPXkKK0NPTkZJR19TQ1NJX1VGU19IUEI9eQorQ09ORklHX1NDU0lf VUZTX0hXTU9OPXkKK0NPTkZJR19TQ1NJX1VGU0hDRF9QQ0k9bQorIyBDT05GSUdfU0NTSV9VRlNf RFdDX1RDX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9VRlNIQ0RfUExBVEZPUk09bQorQ09O RklHX1NDU0lfVUZTX0NETlNfUExBVEZPUk09bQorIyBDT05GSUdfU0NTSV9VRlNfRFdDX1RDX1BM QVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19NRU1TVElDSz1tCisjIENPTkZJR19NRU1TVElDS19E RUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTWVtb3J5U3RpY2sgZHJpdmVycworIworIyBDT05GSUdf TUVNU1RJQ0tfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CitDT05GSUdfTVNQUk9fQkxPQ0s9bQor Q09ORklHX01TX0JMT0NLPW0KKworIworIyBNZW1vcnlTdGljayBIb3N0IENvbnRyb2xsZXIgRHJp dmVycworIworQ09ORklHX01FTVNUSUNLX1RJRk1fTVM9bQorQ09ORklHX01FTVNUSUNLX0pNSUNS T05fMzhYPW0KK0NPTkZJR19NRU1TVElDS19SNTkyPW0KK0NPTkZJR19NRU1TVElDS19SRUFMVEVL X1BDST1tCitDT05GSUdfTUVNU1RJQ0tfUkVBTFRFS19VU0I9bQorQ09ORklHX05FV19MRURTPXkK K0NPTkZJR19MRURTX0NMQVNTPXkKK0NPTkZJR19MRURTX0NMQVNTX0ZMQVNIPW0KK0NPTkZJR19M RURTX0NMQVNTX01VTFRJQ09MT1I9bQorQ09ORklHX0xFRFNfQlJJR0hUTkVTU19IV19DSEFOR0VE PXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfQU4zMDI1OUE9bQorQ09ORklH X0xFRFNfQVcyMDEzPW0KKyMgQ09ORklHX0xFRFNfQkNNNjMyOCBpcyBub3Qgc2V0CisjIENPTkZJ R19MRURTX0JDTTYzNTggaXMgbm90IHNldAorQ09ORklHX0xFRFNfQ1BDQVA9bQorQ09ORklHX0xF RFNfQ1IwMDE0MTE0PW0KK0NPTkZJR19MRURTX0VMMTUyMDMwMDA9bQorQ09ORklHX0xFRFNfTE0z NTMwPW0KK0NPTkZJR19MRURTX0xNMzUzMj1tCitDT05GSUdfTEVEU19MTTM1MzM9bQorQ09ORklH X0xFRFNfTE0zNjQyPW0KK0NPTkZJR19MRURTX0xNMzY5Mlg9bQorQ09ORklHX0xFRFNfUENBOTUz Mj1tCitDT05GSUdfTEVEU19QQ0E5NTMyX0dQSU89eQorQ09ORklHX0xFRFNfR1BJTz1tCitDT05G SUdfTEVEU19MUDM5NDQ9bQorQ09ORklHX0xFRFNfTFAzOTUyPW0KK0NPTkZJR19MRURTX0xQNTBY WD1tCitDT05GSUdfTEVEU19MUDU1WFhfQ09NTU9OPW0KK0NPTkZJR19MRURTX0xQNTUyMT1tCitD T05GSUdfTEVEU19MUDU1MjM9bQorQ09ORklHX0xFRFNfTFA1NTYyPW0KK0NPTkZJR19MRURTX0xQ ODUwMT1tCitDT05GSUdfTEVEU19MUDg4NjA9bQorQ09ORklHX0xFRFNfUENBOTU1WD1tCitDT05G SUdfTEVEU19QQ0E5NTVYX0dQSU89eQorQ09ORklHX0xFRFNfUENBOTYzWD1tCisjIENPTkZJR19M RURTX0RBQzEyNFMwODUgaXMgbm90IHNldAorQ09ORklHX0xFRFNfUFdNPW0KKyMgQ09ORklHX0xF RFNfUkVHVUxBVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0JEMjYwNk1WVj1tCitDT05GSUdf TEVEU19CRDI4MDI9bQorQ09ORklHX0xFRFNfTFQzNTkzPW0KK0NPTkZJR19MRURTX1RDQTY1MDc9 bQorIyBDT05GSUdfTEVEU19UTEM1OTFYWCBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19NQVg3NzY1 MD1tCitDT05GSUdfTEVEU19MTTM1NXg9bQorQ09ORklHX0xFRFNfTUVORjIxQk1DPW0KK0NPTkZJ R19MRURTX0lTMzFGTDMxOVg9bQorQ09ORklHX0xFRFNfSVMzMUZMMzJYWD1tCisKKyMKKyMgTEVE IGRyaXZlciBmb3IgYmxpbmsoMSkgVVNCIFJHQiBMRUQgaXMgdW5kZXIgU3BlY2lhbCBISUQgZHJp dmVycyAoSElEX1RISU5HTSkKKyMKK0NPTkZJR19MRURTX0JMSU5LTT1tCitDT05GSUdfTEVEU19T WVNDT049eQorQ09ORklHX0xFRFNfTUxYUkVHPW0KK0NPTkZJR19MRURTX1VTRVI9bQorQ09ORklH X0xFRFNfU1BJX0JZVEU9bQorQ09ORklHX0xFRFNfVElfTE1VX0NPTU1PTj1tCitDT05GSUdfTEVE U19MTTM2OTc9bQorQ09ORklHX0xFRFNfTE0zNjI3ND1tCisKKyMKKyMgRmxhc2ggYW5kIFRvcmNo IExFRCBkcml2ZXJzCisjCisjIENPTkZJR19MRURTX0FBVDEyOTAgaXMgbm90IHNldAorQ09ORklH X0xFRFNfQVMzNjQ1QT1tCisjIENPTkZJR19MRURTX0tURDI2OTIgaXMgbm90IHNldAorQ09ORklH X0xFRFNfTE0zNjAxWD1tCitDT05GSUdfTEVEU19NVDYzNzBfRkxBU0g9bQorQ09ORklHX0xFRFNf UlQ0NTA1PW0KK0NPTkZJR19MRURTX1JUODUxNT1tCitDT05GSUdfTEVEU19TR00zMTQwPW0KKwor IworIyBSR0IgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19MRURTX1BXTV9NVUxUSUNPTE9SPW0KK0NP TkZJR19MRURTX1FDT01fTFBHPW0KK0NPTkZJR19MRURTX01UNjM3MF9SR0I9bQorCisjCisjIExF RCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorQ09ORklHX0xFRFNfVFJJR0dF Ul9USU1FUj1tCitDT05GSUdfTEVEU19UUklHR0VSX09ORVNIT1Q9bQorQ09ORklHX0xFRFNfVFJJ R0dFUl9ESVNLPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfTVREPXkKK0NPTkZJR19MRURTX1RSSUdH RVJfSEVBUlRCRUFUPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfQkFDS0xJR0hUPW0KK0NPTkZJR19M RURTX1RSSUdHRVJfQ1BVPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfQUNUSVZJVFk9bQorQ09ORklH X0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OPW0KKworIworIyBpcHRhYmxlcyB0cmlnZ2VyIGlzIHVu ZGVyIE5ldGZpbHRlciBjb25maWcgKExFRCB0YXJnZXQpCisjCitDT05GSUdfTEVEU19UUklHR0VS X1RSQU5TSUVOVD1tCitDT05GSUdfTEVEU19UUklHR0VSX0NBTUVSQT1tCitDT05GSUdfTEVEU19U UklHR0VSX1BBTklDPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfTkVUREVWPW0KK0NPTkZJR19MRURT X1RSSUdHRVJfUEFUVEVSTj1tCitDT05GSUdfTEVEU19UUklHR0VSX0FVRElPPW0KK0NPTkZJR19M RURTX1RSSUdHRVJfVFRZPW0KKworIworIyBTaW1wbGUgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19B Q0NFU1NJQklMSVRZPXkKK0NPTkZJR19BMTFZX0JSQUlMTEVfQ09OU09MRT15CisKKyMKKyMgU3Bl YWt1cCBjb25zb2xlIHNwZWVjaAorIworQ09ORklHX1NQRUFLVVA9bQorQ09ORklHX1NQRUFLVVBf U1lOVEhfQUNOVFNBPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0FQT0xMTz1tCitDT05GSUdfU1BF QUtVUF9TWU5USF9BVURQVFI9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfQk5TPW0KK0NPTkZJR19T UEVBS1VQX1NZTlRIX0RFQ1RMSz1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9ERUNFWFQ9bQorQ09O RklHX1NQRUFLVVBfU1lOVEhfTFRMSz1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9TT0ZUPW0KK0NP TkZJR19TUEVBS1VQX1NZTlRIX1NQS09VVD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9UWFBSVD1t CitDT05GSUdfU1BFQUtVUF9TWU5USF9EVU1NWT1tCisjIGVuZCBvZiBTcGVha3VwIGNvbnNvbGUg c3BlZWNoCisKK0NPTkZJR19JTkZJTklCQU5EPW0KK0NPTkZJR19JTkZJTklCQU5EX1VTRVJfTUFE PW0KK0NPTkZJR19JTkZJTklCQU5EX1VTRVJfQUNDRVNTPW0KK0NPTkZJR19JTkZJTklCQU5EX1VT RVJfTUVNPXkKK0NPTkZJR19JTkZJTklCQU5EX09OX0RFTUFORF9QQUdJTkc9eQorQ09ORklHX0lO RklOSUJBTkRfQUREUl9UUkFOUz15CitDT05GSUdfSU5GSU5JQkFORF9BRERSX1RSQU5TX0NPTkZJ R0ZTPXkKK0NPTkZJR19JTkZJTklCQU5EX1ZJUlRfRE1BPXkKK0NPTkZJR19JTkZJTklCQU5EX0JO WFRfUkU9bQorQ09ORklHX0lORklOSUJBTkRfQ1hHQjQ9bQorQ09ORklHX0lORklOSUJBTkRfRUZB PW0KK0NPTkZJR19JTkZJTklCQU5EX0VSRE1BPW0KK0NPTkZJR19JTkZJTklCQU5EX0lSRE1BPW0K K0NPTkZJR19NTFg0X0lORklOSUJBTkQ9bQorQ09ORklHX01MWDVfSU5GSU5JQkFORD1tCitDT05G SUdfSU5GSU5JQkFORF9NVEhDQT1tCitDT05GSUdfSU5GSU5JQkFORF9NVEhDQV9ERUJVRz15CitD T05GSUdfSU5GSU5JQkFORF9PQ1JETUE9bQorQ09ORklHX0lORklOSUJBTkRfUUVEUj1tCisjIENP TkZJR19JTkZJTklCQU5EX1ZNV0FSRV9QVlJETUEgaXMgbm90IHNldAorQ09ORklHX1JETUFfUlhF PW0KK0NPTkZJR19SRE1BX1NJVz1tCitDT05GSUdfSU5GSU5JQkFORF9JUE9JQj1tCitDT05GSUdf SU5GSU5JQkFORF9JUE9JQl9DTT15CitDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVRz15Cisj IENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHX0RBVEEgaXMgbm90IHNldAorQ09ORklHX0lO RklOSUJBTkRfU1JQPW0KK0NPTkZJR19JTkZJTklCQU5EX1NSUFQ9bQorQ09ORklHX0lORklOSUJB TkRfSVNFUj1tCitDT05GSUdfSU5GSU5JQkFORF9JU0VSVD1tCitDT05GSUdfSU5GSU5JQkFORF9S VFJTPW0KK0NPTkZJR19JTkZJTklCQU5EX1JUUlNfQ0xJRU5UPW0KK0NPTkZJR19JTkZJTklCQU5E X1JUUlNfU0VSVkVSPW0KK0NPTkZJR19FREFDX1NVUFBPUlQ9eQorQ09ORklHX0VEQUM9eQorQ09O RklHX0VEQUNfTEVHQUNZX1NZU0ZTPXkKK0NPTkZJR19FREFDX0RFQlVHPXkKK0NPTkZJR19FREFD X1NJRklWRT15CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19S VENfSENUT1NZUz15CitDT05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorQ09ORklHX1JU Q19TWVNUT0hDPXkKK0NPTkZJR19SVENfU1lTVE9IQ19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19S VENfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1JUQ19OVk1FTT15CisKKyMKKyMgUlRDIGludGVy ZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15 CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBp cyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIEkyQyBS VEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfQUJCNVpFUzM9bQorQ09ORklHX1JUQ19EUlZf QUJFT1o5PW0KK0NPTkZJR19SVENfRFJWX0FCWDgwWD1tCitDT05GSUdfUlRDX0RSVl9EUzEzMDc9 bQorQ09ORklHX1JUQ19EUlZfRFMxMzA3X0NFTlRVUlk9eQorQ09ORklHX1JUQ19EUlZfRFMxMzc0 PW0KK0NPTkZJR19SVENfRFJWX0RTMTM3NF9XRFQ9eQorQ09ORklHX1JUQ19EUlZfRFMxNjcyPW0K KyMgQ09ORklHX1JUQ19EUlZfSFlNODU2MyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9NQVg2 OTAwPW0KK0NPTkZJR19SVENfRFJWX01BWDc3Njg2PW0KK0NPTkZJR19SVENfRFJWX05DVDMwMThZ PW0KK0NPTkZJR19SVENfRFJWX1JLODA4PW0KK0NPTkZJR19SVENfRFJWX1JTNUMzNzI9bQorQ09O RklHX1JUQ19EUlZfSVNMMTIwOD1tCisjIENPTkZJR19SVENfRFJWX0lTTDEyMDIyIGlzIG5vdCBz ZXQKK0NPTkZJR19SVENfRFJWX0lTTDEyMDI2PW0KK0NPTkZJR19SVENfRFJWX1gxMjA1PW0KK0NP TkZJR19SVENfRFJWX1BDRjg1MjM9bQorQ09ORklHX1JUQ19EUlZfUENGODUwNjM9bQorQ09ORklH X1JUQ19EUlZfUENGODUzNjM9bQorQ09ORklHX1JUQ19EUlZfUENGODU2Mz1tCitDT05GSUdfUlRD X0RSVl9QQ0Y4NTgzPW0KK0NPTkZJR19SVENfRFJWX000MVQ4MD1tCitDT05GSUdfUlRDX0RSVl9N NDFUODBfV0RUPXkKK0NPTkZJR19SVENfRFJWX0JENzA1Mjg9bQorIyBDT05GSUdfUlRDX0RSVl9C UTMySyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9TMzUzOTBBPW0KK0NPTkZJR19SVENfRFJW X0ZNMzEzMD1tCitDT05GSUdfUlRDX0RSVl9SWDgwMTA9bQorIyBDT05GSUdfUlRDX0RSVl9SWDg1 ODEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SWDgwMjUgaXMgbm90IHNldAorIyBDT05G SUdfUlRDX0RSVl9FTTMwMjcgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfUlYzMDI4PW0KK0NP TkZJR19SVENfRFJWX1JWMzAzMj1tCitDT05GSUdfUlRDX0RSVl9SVjg4MDM9eQorQ09ORklHX1JU Q19EUlZfU0QzMDc4PW0KKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19E UlZfTTQxVDkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDk0IGlzIG5vdCBzZXQK KyMgQ09ORklHX1JUQ19EUlZfRFMxMzAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMx MzA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzQzIGlzIG5vdCBzZXQKKyMgQ09O RklHX1JUQ19EUlZfRFMxMzQ3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzkwIGlz IG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX01BWDY5MTY9bQorIyBDT05GSUdfUlRDX0RSVl9SOTcw MSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JYNDU4MSBpcyBub3Qgc2V0CisjIENPTkZJ R19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlz IG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGMjEyMyBpcyBub3Qgc2V0CisjIENPTkZJR19S VENfRFJWX01DUDc5NSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0kyQ19BTkRfU1BJPXkKKworIwor IyBTUEkgYW5kIEkyQyBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfRFMzMjMyPW0KK0NP TkZJR19SVENfRFJWX0RTMzIzMl9IV01PTj15CitDT05GSUdfUlRDX0RSVl9QQ0YyMTI3PW0KKyMg Q09ORklHX1JUQ19EUlZfUlYzMDI5QzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SWDYx MTAgaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19S VENfRFJWX0RTMTI4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qg c2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9E UzE2ODVfRkFNSUxZPW0KK0NPTkZJR19SVENfRFJWX0RTMTY4NT15CisjIENPTkZJR19SVENfRFJW X0RTMTY4OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTcyODUgaXMgbm90IHNldAor IyBDT05GSUdfUlRDX0RSVl9EUzE3NDg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMx Nzg4NSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENP TkZJR19SVENfRFJWX0RTMjQwNCBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9FRkk9eQorIyBD T05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4 NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQzNSBpcyBub3Qgc2V0CisjIENPTkZJ R19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01TTTYyNDIgaXMg bm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9CUTQ4MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRD X0RSVl9SUDVDMDEgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfWllOUU1QPXkKK0NPTkZJR19S VENfRFJWX05UWEVDPW0KKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENf RFJWX1BMMDMwPW0KK0NPTkZJR19SVENfRFJWX1BMMDMxPW0KK0NPTkZJR19SVENfRFJWX0NBREVO Q0U9bQorQ09ORklHX1JUQ19EUlZfRlRSVEMwMTA9bQorQ09ORklHX1JUQ19EUlZfUjczMDE9bQor Q09ORklHX1JUQ19EUlZfQ1BDQVA9bQorCisjCisjIEhJRCBTZW5zb3IgUlRDIGRyaXZlcnMKKyMK K0NPTkZJR19SVENfRFJWX0hJRF9TRU5TT1JfVElNRT1tCitDT05GSUdfUlRDX0RSVl9HT0xERklT SD15CitDT05GSUdfRE1BREVWSUNFUz15CisjIENPTkZJR19ETUFERVZJQ0VTX0RFQlVHIGlzIG5v dCBzZXQKKworIworIyBETUEgRGV2aWNlcworIworQ09ORklHX0RNQV9FTkdJTkU9eQorQ09ORklH X0RNQV9WSVJUVUFMX0NIQU5ORUxTPXkKK0NPTkZJR19ETUFfT0Y9eQorQ09ORklHX0FMVEVSQV9N U0dETUE9bQorQ09ORklHX0FNQkFfUEwwOFg9eQorQ09ORklHX0RXX0FYSV9ETUFDPW0KK0NPTkZJ R19GU0xfRURNQT1tCisjIENPTkZJR19JTlRFTF9JRE1BNjQgaXMgbm90IHNldAorIyBDT05GSUdf UEwzMzBfRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19QTFhfRE1BPW0KK0NPTkZJR19YSUxJTlhfWERN QT1tCitDT05GSUdfWElMSU5YX1pZTlFNUF9EUERNQT1tCitDT05GSUdfUUNPTV9ISURNQV9NR01U PW0KK0NPTkZJR19RQ09NX0hJRE1BPW0KK0NPTkZJR19EV19ETUFDX0NPUkU9bQorIyBDT05GSUdf RFdfRE1BQyBpcyBub3Qgc2V0CitDT05GSUdfRFdfRE1BQ19QQ0k9bQorQ09ORklHX0RXX0VETUE9 bQorQ09ORklHX0RXX0VETUFfUENJRT1tCisjIENPTkZJR19TRl9QRE1BIGlzIG5vdCBzZXQKKwor IworIyBETUEgQ2xpZW50cworIworQ09ORklHX0FTWU5DX1RYX0RNQT15CisjIENPTkZJR19ETUFU RVNUIGlzIG5vdCBzZXQKKworIworIyBETUFCVUYgb3B0aW9ucworIworQ09ORklHX1NZTkNfRklM RT15CitDT05GSUdfU1dfU1lOQz15CitDT05GSUdfVURNQUJVRj15CisjIENPTkZJR19ETUFCVUZf TU9WRV9OT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfRE1BQlVGX0RFQlVHIGlzIG5vdCBzZXQK KyMgQ09ORklHX0RNQUJVRl9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfRE1BQlVGX0hF QVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNQUJVRl9TWVNGU19TVEFUUyBpcyBub3Qgc2V0Cisj IGVuZCBvZiBETUFCVUYgb3B0aW9ucworCitDT05GSUdfQVVYRElTUExBWT15CitDT05GSUdfQ0hB UkxDRD1tCitDT05GSUdfTElORURJU1A9bQorQ09ORklHX0hENDQ3ODBfQ09NTU9OPW0KK0NPTkZJ R19IRDQ0NzgwPW0KKyMgQ09ORklHX0lNR19BU0NJSV9MQ0QgaXMgbm90IHNldAorQ09ORklHX0hU MTZLMzM9bQorQ09ORklHX0xDRDJTPW0KK0NPTkZJR19QQVJQT1JUX1BBTkVMPW0KK0NPTkZJR19Q QU5FTF9QQVJQT1JUPTAKK0NPTkZJR19QQU5FTF9QUk9GSUxFPTUKKyMgQ09ORklHX1BBTkVMX0NI QU5HRV9NRVNTQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIQVJMQ0RfQkxfT0ZGIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NIQVJMQ0RfQkxfT04gaXMgbm90IHNldAorQ09ORklHX0NIQVJMQ0RfQkxf RkxBU0g9eQorQ09ORklHX1BBTkVMPW0KK0NPTkZJR19VSU89bQorQ09ORklHX1VJT19DSUY9bQor Q09ORklHX1VJT19QRFJWX0dFTklSUT1tCitDT05GSUdfVUlPX0RNRU1fR0VOSVJRPW0KK0NPTkZJ R19VSU9fQUVDPW0KK0NPTkZJR19VSU9fU0VSQ09TMz1tCitDT05GSUdfVUlPX1BDSV9HRU5FUklD PW0KK0NPTkZJR19VSU9fTkVUWD1tCisjIENPTkZJR19VSU9fUFJVU1MgaXMgbm90IHNldAorQ09O RklHX1VJT19NRjYyND1tCitDT05GSUdfVUlPX0RGTD1tCitDT05GSUdfVkZJTz1tCitDT05GSUdf VkZJT19DT05UQUlORVI9eQorIyBDT05GSUdfVkZJT19OT0lPTU1VIGlzIG5vdCBzZXQKK0NPTkZJ R19WRklPX1ZJUlFGRD15CitDT05GSUdfVkZJT19QQ0lfQ09SRT1tCitDT05GSUdfVkZJT19QQ0lf TU1BUD15CitDT05GSUdfVkZJT19QQ0lfSU5UWD15CitDT05GSUdfVkZJT19QQ0k9bQorQ09ORklH X01MWDVfVkZJT19QQ0k9bQorQ09ORklHX0lSUV9CWVBBU1NfTUFOQUdFUj1tCitDT05GSUdfVklS VF9EUklWRVJTPXkKK0NPTkZJR19WSVJUSU9fQU5DSE9SPXkKK0NPTkZJR19WSVJUSU89eQorQ09O RklHX1ZJUlRJT19QQ0lfTElCPXkKK0NPTkZJR19WSVJUSU9fUENJX0xJQl9MRUdBQ1k9eQorQ09O RklHX1ZJUlRJT19NRU5VPXkKK0NPTkZJR19WSVJUSU9fUENJPXkKK0NPTkZJR19WSVJUSU9fUENJ X0xFR0FDWT15CitDT05GSUdfVklSVElPX1ZEUEE9bQorQ09ORklHX1ZJUlRJT19QTUVNPW0KK0NP TkZJR19WSVJUSU9fQkFMTE9PTj1tCitDT05GSUdfVklSVElPX0lOUFVUPW0KK0NPTkZJR19WSVJU SU9fTU1JTz1tCisjIENPTkZJR19WSVJUSU9fTU1JT19DTURMSU5FX0RFVklDRVMgaXMgbm90IHNl dAorQ09ORklHX1ZJUlRJT19ETUFfU0hBUkVEX0JVRkZFUj1tCitDT05GSUdfVkRQQT1tCitDT05G SUdfVkRQQV9TSU09bQorQ09ORklHX1ZEUEFfU0lNX05FVD1tCitDT05GSUdfVkRQQV9TSU1fQkxP Q0s9bQorQ09ORklHX1ZEUEFfVVNFUj1tCitDT05GSUdfSUZDVkY9bQorQ09ORklHX01MWDVfVkRQ QT15CitDT05GSUdfTUxYNV9WRFBBX05FVD1tCisjIENPTkZJR19NTFg1X1ZEUEFfU1RFRVJJTkdf REVCVUcgaXMgbm90IHNldAorQ09ORklHX1ZQX1ZEUEE9bQorQ09ORklHX1NORVRfVkRQQT1tCitD T05GSUdfVkhPU1RfSU9UTEI9bQorQ09ORklHX1ZIT1NUX1JJTkc9bQorQ09ORklHX1ZIT1NUX1RB U0s9eQorQ09ORklHX1ZIT1NUPW0KK0NPTkZJR19WSE9TVF9NRU5VPXkKK0NPTkZJR19WSE9TVF9O RVQ9bQorQ09ORklHX1ZIT1NUX1NDU0k9bQorQ09ORklHX1ZIT1NUX1ZTT0NLPW0KK0NPTkZJR19W SE9TVF9WRFBBPW0KKyMgQ09ORklHX1ZIT1NUX0NST1NTX0VORElBTl9MRUdBQ1kgaXMgbm90IHNl dAorCisjCisjIE1pY3Jvc29mdCBIeXBlci1WIGd1ZXN0IHN1cHBvcnQKKyMKKyMgZW5kIG9mIE1p Y3Jvc29mdCBIeXBlci1WIGd1ZXN0IHN1cHBvcnQKKworIyBDT05GSUdfR1JFWUJVUyBpcyBub3Qg c2V0CitDT05GSUdfQ09NRURJPW0KKyMgQ09ORklHX0NPTUVESV9ERUJVRyBpcyBub3Qgc2V0CitD T05GSUdfQ09NRURJX0RFRkFVTFRfQlVGX1NJWkVfS0I9MjA0OAorQ09ORklHX0NPTUVESV9ERUZB VUxUX0JVRl9NQVhTSVpFX0tCPTIwNDgwCisjIENPTkZJR19DT01FRElfTUlTQ19EUklWRVJTIGlz IG5vdCBzZXQKKyMgQ09ORklHX0NPTUVESV9JU0FfRFJJVkVSUyBpcyBub3Qgc2V0CisjIENPTkZJ R19DT01FRElfUENJX0RSSVZFUlMgaXMgbm90IHNldAorQ09ORklHX0NPTUVESV9QQ01DSUFfRFJJ VkVSUz1tCitDT05GSUdfQ09NRURJX0NCX0RBUzE2X0NTPW0KK0NPTkZJR19DT01FRElfREFTMDhf Q1M9bQorQ09ORklHX0NPTUVESV9OSV9EQVFfNzAwX0NTPW0KK0NPTkZJR19DT01FRElfTklfREFR X0RJTzI0X0NTPW0KK0NPTkZJR19DT01FRElfTklfTEFCUENfQ1M9bQorQ09ORklHX0NPTUVESV9O SV9NSU9fQ1M9bQorQ09ORklHX0NPTUVESV9RVUFURUNIX0RBUVBfQ1M9bQorQ09ORklHX0NPTUVE SV9VU0JfRFJJVkVSUz1tCitDT05GSUdfQ09NRURJX0RUOTgxMj1tCitDT05GSUdfQ09NRURJX05J X1VTQjY1MDE9bQorQ09ORklHX0NPTUVESV9VU0JEVVg9bQorQ09ORklHX0NPTUVESV9VU0JEVVhG QVNUPW0KK0NPTkZJR19DT01FRElfVVNCRFVYU0lHTUE9bQorQ09ORklHX0NPTUVESV9WTUs4MFhY PW0KK0NPTkZJR19DT01FRElfODI1ND1tCitDT05GSUdfQ09NRURJXzgyNTU9bQorQ09ORklHX0NP TUVESV84MjU1X1NBPW0KK0NPTkZJR19DT01FRElfS0NPTUVESUxJQj1tCitDT05GSUdfQ09NRURJ X0RBUzA4PW0KK0NPTkZJR19DT01FRElfTklfTEFCUEM9bQorQ09ORklHX0NPTUVESV9OSV9USU89 bQorQ09ORklHX0NPTUVESV9OSV9ST1VUSU5HPW0KKyMgQ09ORklHX0NPTUVESV9URVNUUyBpcyBu b3Qgc2V0CitDT05GSUdfU1RBR0lORz15CitDT05GSUdfUFJJU00yX1VTQj1tCitDT05GSUdfUlRM ODE5MlU9bQorQ09ORklHX1JUTExJQj1tCitDT05GSUdfUlRMTElCX0NSWVBUT19DQ01QPW0KK0NP TkZJR19SVExMSUJfQ1JZUFRPX1RLSVA9bQorQ09ORklHX1JUTExJQl9DUllQVE9fV0VQPW0KK0NP TkZJR19SVEw4MTkyRT1tCitDT05GSUdfUlRMODcyM0JTPW0KK0NPTkZJR19SODcxMlU9bQorQ09O RklHX1JUUzUyMDg9bQorQ09ORklHX1ZUNjY1NT1tCitDT05GSUdfVlQ2NjU2PW0KKworIworIyBJ SU8gc3RhZ2luZyBkcml2ZXJzCisjCisKKyMKKyMgQWNjZWxlcm9tZXRlcnMKKyMKKyMgQ09ORklH X0FESVMxNjIwMyBpcyBub3Qgc2V0CisjIENPTkZJR19BRElTMTYyNDAgaXMgbm90IHNldAorIyBl bmQgb2YgQWNjZWxlcm9tZXRlcnMKKworIworIyBBbmFsb2cgdG8gZGlnaXRhbCBjb252ZXJ0ZXJz CisjCisjIENPTkZJR19BRDc4MTYgaXMgbm90IHNldAorIyBlbmQgb2YgQW5hbG9nIHRvIGRpZ2l0 YWwgY29udmVydGVycworCisjCisjIEFuYWxvZyBkaWdpdGFsIGJpLWRpcmVjdGlvbiBjb252ZXJ0 ZXJzCisjCisjIENPTkZJR19BRFQ3MzE2IGlzIG5vdCBzZXQKKyMgZW5kIG9mIEFuYWxvZyBkaWdp dGFsIGJpLWRpcmVjdGlvbiBjb252ZXJ0ZXJzCisKKyMKKyMgRGlyZWN0IERpZ2l0YWwgU3ludGhl c2lzCisjCisjIENPTkZJR19BRDk4MzIgaXMgbm90IHNldAorIyBDT05GSUdfQUQ5ODM0IGlzIG5v dCBzZXQKKyMgZW5kIG9mIERpcmVjdCBEaWdpdGFsIFN5bnRoZXNpcworCisjCisjIE5ldHdvcmsg QW5hbHl6ZXIsIEltcGVkYW5jZSBDb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDU5MzMgaXMgbm90 IHNldAorIyBlbmQgb2YgTmV0d29yayBBbmFseXplciwgSW1wZWRhbmNlIENvbnZlcnRlcnMKKwor IworIyBSZXNvbHZlciB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKKyMgQ09ORklHX0FEMlMxMjEw IGlzIG5vdCBzZXQKKyMgZW5kIG9mIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVycworIyBl bmQgb2YgSUlPIHN0YWdpbmcgZHJpdmVycworCitDT05GSUdfRkJfU003NTA9bQorQ09ORklHX1NU QUdJTkdfTUVESUE9eQorQ09ORklHX0RWQl9BVjcxMTBfSVI9eQorQ09ORklHX0RWQl9BVjcxMTA9 bQorQ09ORklHX0RWQl9BVjcxMTBfT1NEPXkKK0NPTkZJR19EVkJfQlVER0VUX1BBVENIPW0KK0NP TkZJR19EVkJfU1A4ODcwPW0KK0NPTkZJR19WSURFT19NQVg5NjcxMj1tCisjIENPTkZJR19TVEFH SU5HX01FRElBX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfU1RBR0lOR19CT0FSRCBp cyBub3Qgc2V0CitDT05GSUdfTFRFX0dETTcyNFg9bQorQ09ORklHX0ZCX1RGVD1tCitDT05GSUdf RkJfVEZUX0FHTTEyNjRLX0ZMPW0KK0NPTkZJR19GQl9URlRfQkQ2NjM0NzQ9bQorQ09ORklHX0ZC X1RGVF9IWDgzNDBCTj1tCitDT05GSUdfRkJfVEZUX0hYODM0N0Q9bQorQ09ORklHX0ZCX1RGVF9I WDgzNTNEPW0KK0NPTkZJR19GQl9URlRfSFg4MzU3RD1tCitDT05GSUdfRkJfVEZUX0lMSTkxNjM9 bQorQ09ORklHX0ZCX1RGVF9JTEk5MzIwPW0KK0NPTkZJR19GQl9URlRfSUxJOTMyNT1tCitDT05G SUdfRkJfVEZUX0lMSTkzNDA9bQorQ09ORklHX0ZCX1RGVF9JTEk5MzQxPW0KK0NPTkZJR19GQl9U RlRfSUxJOTQ4MT1tCitDT05GSUdfRkJfVEZUX0lMSTk0ODY9bQorQ09ORklHX0ZCX1RGVF9QQ0Q4 NTQ0PW0KK0NPTkZJR19GQl9URlRfUkE4ODc1PW0KK0NPTkZJR19GQl9URlRfUzZEMDJBMT1tCitD T05GSUdfRkJfVEZUX1M2RDExMjE9bQorQ09ORklHX0ZCX1RGVF9TRVBTNTI1PW0KK0NPTkZJR19G Ql9URlRfU0gxMTA2PW0KK0NPTkZJR19GQl9URlRfU1NEMTI4OT1tCitDT05GSUdfRkJfVEZUX1NT RDEzMDU9bQorQ09ORklHX0ZCX1RGVF9TU0QxMzA2PW0KK0NPTkZJR19GQl9URlRfU1NEMTMzMT1t CitDT05GSUdfRkJfVEZUX1NTRDEzNTE9bQorQ09ORklHX0ZCX1RGVF9TVDc3MzVSPW0KK0NPTkZJ R19GQl9URlRfU1Q3Nzg5Vj1tCitDT05GSUdfRkJfVEZUX1RJTllMQ0Q9bQorQ09ORklHX0ZCX1RG VF9UTFM4MjA0PW0KK0NPTkZJR19GQl9URlRfVUMxNjExPW0KK0NPTkZJR19GQl9URlRfVUMxNzAx PW0KK0NPTkZJR19GQl9URlRfVVBEMTYxNzA0PW0KK0NPTkZJR19LUzcwMTA9bQorQ09ORklHX1BJ NDMzPW0KK0NPTkZJR19YSUxfQVhJU19GSUZPPW0KK0NPTkZJR19GSUVMREJVU19ERVY9bQorQ09O RklHX0hNU19BTllCVVNTX0JVUz1tCitDT05GSUdfQVJDWF9BTllCVVNfQ09OVFJPTExFUj1tCitD T05GSUdfSE1TX1BST0ZJTkVUPW0KK0NPTkZJR19RTEdFPW0KKyMgQ09ORklHX1ZNRV9CVVMgaXMg bm90IHNldAorQ09ORklHX0dPTERGSVNIPXkKK0NPTkZJR19HT0xERklTSF9QSVBFPW0KK0NPTkZJ R19IQVZFX0NMSz15CitDT05GSUdfSEFWRV9DTEtfUFJFUEFSRT15CitDT05GSUdfQ09NTU9OX0NM Sz15CitDT05GSUdfTE1LMDQ4MzI9bQorQ09ORklHX0NPTU1PTl9DTEtfTUFYNzc2ODY9bQorQ09O RklHX0NPTU1PTl9DTEtfTUFYOTQ4NT1tCitDT05GSUdfQ09NTU9OX0NMS19SSzgwOD1tCitDT05G SUdfQ09NTU9OX0NMS19TSTUzNDE9bQorIyBDT05GSUdfQ09NTU9OX0NMS19TSTUzNTEgaXMgbm90 IHNldAorQ09ORklHX0NPTU1PTl9DTEtfU0k1MTQ9bQorQ09ORklHX0NPTU1PTl9DTEtfU0k1NDQ9 bQorIyBDT05GSUdfQ09NTU9OX0NMS19TSTU3MCBpcyBub3Qgc2V0CitDT05GSUdfQ09NTU9OX0NM S19DRENFNzA2PW0KK0NPTkZJR19DT01NT05fQ0xLX0NEQ0U5MjU9bQorQ09ORklHX0NPTU1PTl9D TEtfQ1MyMDAwX0NQPW0KK0NPTkZJR19DT01NT05fQ0xLX0FYSV9DTEtHRU49bQorQ09ORklHX0NP TU1PTl9DTEtfTE9DSE5BR0FSPW0KK0NPTkZJR19DT01NT05fQ0xLX1BXTT1tCitDT05GSUdfQ09N TU9OX0NMS19SUzlfUENJRT1tCitDT05GSUdfQ09NTU9OX0NMS19TSTUyMVhYPW0KK0NPTkZJR19D T01NT05fQ0xLX1ZDNT1tCitDT05GSUdfQ09NTU9OX0NMS19WQzc9bQorQ09ORklHX0NPTU1PTl9D TEtfQkQ3MThYWD1tCitDT05GSUdfQ09NTU9OX0NMS19GSVhFRF9NTUlPPXkKK0NPTkZJR19DTEtf QU5BTE9HQklUU19XUlBMTF9DTE4yOEhQQz15CitDT05GSUdfQ0xLX1NJRklWRT15CitDT05GSUdf Q0xLX1NJRklWRV9QUkNJPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MVgwPXkKK0NPTkZJR19D TEtfU1RBUkZJVkVfSkg3MTAwPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTAwX0FVRElPPXkK K0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1BMTD15CitDT05GSUdfQ0xLX1NUQVJGSVZFX0pI NzExMF9TWVM9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfQU9OPXkKK0NPTkZJR19DTEtf U1RBUkZJVkVfSkg3MTEwX1NURz15CitDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9JU1A9eQor Q09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfVk9VVD15CitDT05GSUdfWElMSU5YX1ZDVT1tCisj IENPTkZJR19DT01NT05fQ0xLX1hMTlhfQ0xLV1pSRCBpcyBub3Qgc2V0CitDT05GSUdfSFdTUElO TE9DSz15CisKKyMKKyMgQ2xvY2sgU291cmNlIGRyaXZlcnMKKyMKK0NPTkZJR19USU1FUl9PRj15 CitDT05GSUdfVElNRVJfUFJPQkU9eQorQ09ORklHX0NMS1NSQ19NTUlPPXkKK0NPTkZJR19SSVND Vl9USU1FUj15CitDT05GSUdfU1RBUkZJVkVfSkg3MTEwX1RJTUVSPXkKKyMgZW5kIG9mIENsb2Nr IFNvdXJjZSBkcml2ZXJzCisKK0NPTkZJR19NQUlMQk9YPXkKK0NPTkZJR19BUk1fTUhVPW0KK0NP TkZJR19BUk1fTUhVX1YyPW0KK0NPTkZJR19QTEFURk9STV9NSFU9bQorIyBDT05GSUdfUEwzMjBf TUJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19BTFRFUkFfTUJPWCBpcyBub3Qgc2V0CisjIENPTkZJ R19NQUlMQk9YX1RFU1QgaXMgbm90IHNldAorQ09ORklHX0lPTU1VX0lPVkE9bQorQ09ORklHX0lP TU1VX0FQST15CitDT05GSUdfSU9NTVVfU1VQUE9SVD15CisKKyMKKyMgR2VuZXJpYyBJT01NVSBQ YWdldGFibGUgU3VwcG9ydAorIworIyBlbmQgb2YgR2VuZXJpYyBJT01NVSBQYWdldGFibGUgU3Vw cG9ydAorCisjIENPTkZJR19JT01NVV9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPTU1V X0RFRkFVTFRfRE1BX1NUUklDVCBpcyBub3Qgc2V0CisjIENPTkZJR19JT01NVV9ERUZBVUxUX0RN QV9MQVpZIGlzIG5vdCBzZXQKK0NPTkZJR19JT01NVV9ERUZBVUxUX1BBU1NUSFJPVUdIPXkKK0NP TkZJR19PRl9JT01NVT15CitDT05GSUdfSU9NTVVGRD1tCisKKyMKKyMgUmVtb3RlcHJvYyBkcml2 ZXJzCisjCitDT05GSUdfUkVNT1RFUFJPQz15CitDT05GSUdfUkVNT1RFUFJPQ19DREVWPXkKKyMg ZW5kIG9mIFJlbW90ZXByb2MgZHJpdmVycworCisjCisjIFJwbXNnIGRyaXZlcnMKKyMKK0NPTkZJ R19SUE1TRz1tCitDT05GSUdfUlBNU0dfQ0hBUj1tCitDT05GSUdfUlBNU0dfQ1RSTD1tCitDT05G SUdfUlBNU0dfTlM9bQorQ09ORklHX1JQTVNHX1FDT01fR0xJTks9bQorQ09ORklHX1JQTVNHX1FD T01fR0xJTktfUlBNPW0KK0NPTkZJR19SUE1TR19WSVJUSU89bQorIyBlbmQgb2YgUnBtc2cgZHJp dmVycworCitDT05GSUdfU09VTkRXSVJFPXkKKworIworIyBTb3VuZFdpcmUgRGV2aWNlcworIwor Q09ORklHX1NPVU5EV0lSRV9RQ09NPW0KKworIworIyBTT0MgKFN5c3RlbSBPbiBDaGlwKSBzcGVj aWZpYyBEcml2ZXJzCisjCisKKyMKKyMgQW1sb2dpYyBTb0MgZHJpdmVycworIworIyBlbmQgb2Yg QW1sb2dpYyBTb0MgZHJpdmVycworCisjCisjIEJyb2FkY29tIFNvQyBkcml2ZXJzCisjCisjIGVu ZCBvZiBCcm9hZGNvbSBTb0MgZHJpdmVycworCisjCisjIE5YUC9GcmVlc2NhbGUgUW9ySVEgU29D IGRyaXZlcnMKKyMKKyMgZW5kIG9mIE5YUC9GcmVlc2NhbGUgUW9ySVEgU29DIGRyaXZlcnMKKwor IworIyBmdWppdHN1IFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBmdWppdHN1IFNvQyBkcml2ZXJz CisKKyMKKyMgaS5NWCBTb0MgZHJpdmVycworIworIyBlbmQgb2YgaS5NWCBTb0MgZHJpdmVycwor CisjCisjIEVuYWJsZSBMaXRlWCBTb0MgQnVpbGRlciBzcGVjaWZpYyBkcml2ZXJzCisjCisjIENP TkZJR19MSVRFWF9TT0NfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIGVuZCBvZiBFbmFibGUgTGl0 ZVggU29DIEJ1aWxkZXIgc3BlY2lmaWMgZHJpdmVycworCitDT05GSUdfV1BDTTQ1MF9TT0M9bQor CisjCisjIFF1YWxjb21tIFNvQyBkcml2ZXJzCisjCitDT05GSUdfUUNPTV9QRFJfSEVMUEVSUz1t CitDT05GSUdfUUNPTV9QTUlDX0dMSU5LPW0KK0NPTkZJR19RQ09NX1FNSV9IRUxQRVJTPW0KKyMg ZW5kIG9mIFF1YWxjb21tIFNvQyBkcml2ZXJzCisKK0NPTkZJR19TSUZJVkVfQ0NBQ0hFPXkKK0NP TkZJR19KSDcxWFhfUE1VPXkKK0NPTkZJR19TT0NfVEk9eQorCisjCisjIFhpbGlueCBTb0MgZHJp dmVycworIworIyBlbmQgb2YgWGlsaW54IFNvQyBkcml2ZXJzCisjIGVuZCBvZiBTT0MgKFN5c3Rl bSBPbiBDaGlwKSBzcGVjaWZpYyBEcml2ZXJzCisKK0NPTkZJR19QTV9ERVZGUkVRPXkKKworIwor IyBERVZGUkVRIEdvdmVybm9ycworIworQ09ORklHX0RFVkZSRVFfR09WX1NJTVBMRV9PTkRFTUFO RD15CitDT05GSUdfREVWRlJFUV9HT1ZfUEVSRk9STUFOQ0U9bQorQ09ORklHX0RFVkZSRVFfR09W X1BPV0VSU0FWRT1tCitDT05GSUdfREVWRlJFUV9HT1ZfVVNFUlNQQUNFPW0KK0NPTkZJR19ERVZG UkVRX0dPVl9QQVNTSVZFPXkKKworIworIyBERVZGUkVRIERyaXZlcnMKKyMKK0NPTkZJR19QTV9E RVZGUkVRX0VWRU5UPXkKK0NPTkZJR19FWFRDT049eQorCisjCisjIEV4dGNvbiBEZXZpY2UgRHJp dmVycworIworIyBDT05GSUdfRVhUQ09OX0FEQ19KQUNLIGlzIG5vdCBzZXQKK0NPTkZJR19FWFRD T05fRlNBOTQ4MD1tCitDT05GSUdfRVhUQ09OX0dQSU89bQorQ09ORklHX0VYVENPTl9NQVgzMzU1 PW0KK0NPTkZJR19FWFRDT05fUFRONTE1MD1tCisjIENPTkZJR19FWFRDT05fUlQ4OTczQSBpcyBu b3Qgc2V0CitDT05GSUdfRVhUQ09OX1NNNTUwMj1tCisjIENPTkZJR19FWFRDT05fVVNCX0dQSU8g aXMgbm90IHNldAorQ09ORklHX0VYVENPTl9VU0JDX1RVU0IzMjA9bQorQ09ORklHX01FTU9SWT15 CitDT05GSUdfQVJNX1BMMTcyX01QTUM9bQorQ09ORklHX0ZQR0FfREZMX0VNSUY9bQorQ09ORklH X0lJTz1tCitDT05GSUdfSUlPX0JVRkZFUj15CitDT05GSUdfSUlPX0JVRkZFUl9DQj1tCitDT05G SUdfSUlPX0JVRkZFUl9ETUE9bQorQ09ORklHX0lJT19CVUZGRVJfRE1BRU5HSU5FPW0KK0NPTkZJ R19JSU9fQlVGRkVSX0hXX0NPTlNVTUVSPW0KK0NPTkZJR19JSU9fS0ZJRk9fQlVGPW0KK0NPTkZJ R19JSU9fVFJJR0dFUkVEX0JVRkZFUj1tCitDT05GSUdfSUlPX0NPTkZJR0ZTPW0KK0NPTkZJR19J SU9fR1RTX0hFTFBFUj1tCitDT05GSUdfSUlPX1RSSUdHRVI9eQorQ09ORklHX0lJT19DT05TVU1F UlNfUEVSX1RSSUdHRVI9MgorQ09ORklHX0lJT19TV19ERVZJQ0U9bQorQ09ORklHX0lJT19TV19U UklHR0VSPW0KK0NPTkZJR19JSU9fVFJJR0dFUkVEX0VWRU5UPW0KKworIworIyBBY2NlbGVyb21l dGVycworIworIyBDT05GSUdfQURJUzE2MjAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FESVMxNjIw OSBpcyBub3Qgc2V0CitDT05GSUdfQURYTDMxMz1tCitDT05GSUdfQURYTDMxM19JMkM9bQorQ09O RklHX0FEWEwzMTNfU1BJPW0KK0NPTkZJR19BRFhMMzU1PW0KK0NPTkZJR19BRFhMMzU1X0kyQz1t CitDT05GSUdfQURYTDM1NV9TUEk9bQorQ09ORklHX0FEWEwzNjc9bQorQ09ORklHX0FEWEwzNjdf U1BJPW0KK0NPTkZJR19BRFhMMzY3X0kyQz1tCitDT05GSUdfQURYTDM3Mj1tCitDT05GSUdfQURY TDM3Ml9TUEk9bQorQ09ORklHX0FEWEwzNzJfSTJDPW0KK0NPTkZJR19CTUEyMjA9bQorQ09ORklH X0JNQTQwMD1tCitDT05GSUdfQk1BNDAwX0kyQz1tCitDT05GSUdfQk1BNDAwX1NQST1tCitDT05G SUdfQk1DMTUwX0FDQ0VMPW0KK0NPTkZJR19CTUMxNTBfQUNDRUxfSTJDPW0KK0NPTkZJR19CTUMx NTBfQUNDRUxfU1BJPW0KK0NPTkZJR19CTUkwODhfQUNDRUw9bQorQ09ORklHX0JNSTA4OF9BQ0NF TF9TUEk9bQorQ09ORklHX0RBMjgwPW0KK0NPTkZJR19EQTMxMT1tCitDT05GSUdfRE1BUkQwNj1t CitDT05GSUdfRE1BUkQwOT1tCitDT05GSUdfRE1BUkQxMD1tCitDT05GSUdfRlhMUzg5NjJBRj1t CitDT05GSUdfRlhMUzg5NjJBRl9JMkM9bQorQ09ORklHX0ZYTFM4OTYyQUZfU1BJPW0KK0NPTkZJ R19ISURfU0VOU09SX0FDQ0VMXzNEPW0KK0NPTkZJR19JSU9fS1gwMjJBPW0KK0NPTkZJR19JSU9f S1gwMjJBX1NQST1tCitDT05GSUdfSUlPX0tYMDIyQV9JMkM9bQorIyBDT05GSUdfS1hTRDkgaXMg bm90IHNldAorIyBDT05GSUdfS1hDSksxMDEzIGlzIG5vdCBzZXQKK0NPTkZJR19NQzMyMzA9bQor Q09ORklHX01NQTc0NTU9bQorQ09ORklHX01NQTc0NTVfSTJDPW0KK0NPTkZJR19NTUE3NDU1X1NQ ST1tCitDT05GSUdfTU1BNzY2MD1tCisjIENPTkZJR19NTUE4NDUyIGlzIG5vdCBzZXQKK0NPTkZJ R19NTUE5NTUxX0NPUkU9bQorQ09ORklHX01NQTk1NTE9bQorQ09ORklHX01NQTk1NTM9bQorQ09O RklHX01TQTMxMT1tCitDT05GSUdfTVhDNDAwNT1tCitDT05GSUdfTVhDNjI1NT1tCisjIENPTkZJ R19TQ0EzMDAwIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0EzMzAwPW0KK0NPTkZJR19TVEs4MzEyPW0K K0NPTkZJR19TVEs4QkE1MD1tCisjIGVuZCBvZiBBY2NlbGVyb21ldGVycworCisjCisjIEFuYWxv ZyB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKK0NPTkZJR19BRF9TSUdNQV9ERUxUQT1tCitDT05G SUdfQUQ0MTMwPW0KK0NPTkZJR19BRDcwOTFSNT1tCitDT05GSUdfQUQ3MTI0PW0KKyMgQ09ORklH X0FENzE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19BRDcyNjYgaXMgbm90IHNldAorIyBDT05GSUdf QUQ3MjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzI5MSBpcyBub3Qgc2V0CitDT05GSUdfQUQ3 MjkyPW0KKyMgQ09ORklHX0FENzI5OCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc0NzYgaXMgbm90 IHNldAorQ09ORklHX0FENzYwNj1tCitDT05GSUdfQUQ3NjA2X0lGQUNFX1BBUkFMTEVMPW0KK0NP TkZJR19BRDc2MDZfSUZBQ0VfU1BJPW0KK0NPTkZJR19BRDc3NjY9bQorQ09ORklHX0FENzc2OF8x PW0KKyMgQ09ORklHX0FENzc4MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc3OTEgaXMgbm90IHNl dAorIyBDT05GSUdfQUQ3NzkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzg4NyBpcyBub3Qgc2V0 CisjIENPTkZJR19BRDc5MjMgaXMgbm90IHNldAorQ09ORklHX0FENzk0OT1tCisjIENPTkZJR19B RDc5OVggaXMgbm90IHNldAorQ09ORklHX0FEOTQ2Nz1tCitDT05GSUdfQURJX0FYSV9BREM9bQor Q09ORklHX0FYUDIwWF9BREM9bQorQ09ORklHX0FYUDI4OF9BREM9bQorIyBDT05GSUdfQ0MxMDAw MV9BREMgaXMgbm90IHNldAorQ09ORklHX0NQQ0FQX0FEQz1tCitDT05GSUdfRExOMl9BREM9bQor Q09ORklHX0VOVkVMT1BFX0RFVEVDVE9SPW0KK0NPTkZJR19ISTg0MzU9bQorQ09ORklHX0hYNzEx PW0KK0NPTkZJR19JTkEyWFhfQURDPW0KK0NPTkZJR19MVEMyNDcxPW0KK0NPTkZJR19MVEMyNDg1 PW0KK0NPTkZJR19MVEMyNDk2PW0KK0NPTkZJR19MVEMyNDk3PW0KKyMgQ09ORklHX01BWDEwMjcg aXMgbm90IHNldAorQ09ORklHX01BWDExMTAwPW0KK0NPTkZJR19NQVgxMTE4PW0KK0NPTkZJR19N QVgxMTIwNT1tCitDT05GSUdfTUFYMTE0MTA9bQorQ09ORklHX01BWDEyNDE9bQorIyBDT05GSUdf TUFYMTM2MyBpcyBub3Qgc2V0CitDT05GSUdfTUFYOTYxMT1tCisjIENPTkZJR19NQ1AzMjBYIGlz IG5vdCBzZXQKKyMgQ09ORklHX01DUDM0MjIgaXMgbm90IHNldAorQ09ORklHX01DUDM5MTE9bQor Q09ORklHX01FRElBVEVLX01UNjM3MF9BREM9bQorQ09ORklHX01QMjYyOV9BREM9bQorIyBDT05G SUdfTkFVNzgwMiBpcyBub3Qgc2V0CitDT05GSUdfUUNPTV9WQURDX0NPTU1PTj1tCisjIENPTkZJ R19RQ09NX1NQTUlfSUFEQyBpcyBub3Qgc2V0CisjIENPTkZJR19RQ09NX1NQTUlfVkFEQyBpcyBu b3Qgc2V0CitDT05GSUdfUUNPTV9TUE1JX0FEQzU9bQorQ09ORklHX1JJQ0hURUtfUlRRNjA1Nj1t CitDT05GSUdfU0RfQURDX01PRFVMQVRPUj1tCisjIENPTkZJR19USV9BREMwODFDIGlzIG5vdCBz ZXQKK0NPTkZJR19USV9BREMwODMyPW0KK0NPTkZJR19USV9BREMwODRTMDIxPW0KK0NPTkZJR19U SV9BREMxMjEzOD1tCitDT05GSUdfVElfQURDMTA4UzEwMj1tCisjIENPTkZJR19USV9BREMxMjhT MDUyIGlzIG5vdCBzZXQKK0NPTkZJR19USV9BREMxNjFTNjI2PW0KK0NPTkZJR19USV9BRFMxMDE1 PW0KK0NPTkZJR19USV9BRFM3OTI0PW0KK0NPTkZJR19USV9BRFMxMTAwPW0KK0NPTkZJR19USV9B RFM3OTUwPW0KK0NPTkZJR19USV9BRFM4MzQ0PW0KKyMgQ09ORklHX1RJX0FEUzg2ODggaXMgbm90 IHNldAorQ09ORklHX1RJX0FEUzEyNFMwOD1tCitDT05GSUdfVElfQURTMTMxRTA4PW0KKyMgQ09O RklHX1RJX0FNMzM1WF9BREMgaXMgbm90IHNldAorQ09ORklHX1RJX0xNUDkyMDY0PW0KK0NPTkZJ R19USV9UTEM0NTQxPW0KK0NPTkZJR19USV9UU0MyMDQ2PW0KKyMgQ09ORklHX1ZGNjEwX0FEQyBp cyBub3Qgc2V0CisjIENPTkZJR19WSVBFUkJPQVJEX0FEQyBpcyBub3Qgc2V0CitDT05GSUdfWElM SU5YX1hBREM9bQorIyBlbmQgb2YgQW5hbG9nIHRvIGRpZ2l0YWwgY29udmVydGVycworCisjCisj IEFuYWxvZyB0byBkaWdpdGFsIGFuZCBkaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCisjCitD T05GSUdfQUQ3NDExNT1tCitDT05GSUdfQUQ3NDQxM1I9bQorIyBlbmQgb2YgQW5hbG9nIHRvIGRp Z2l0YWwgYW5kIGRpZ2l0YWwgdG8gYW5hbG9nIGNvbnZlcnRlcnMKKworIworIyBBbmFsb2cgRnJv bnQgRW5kcworIworQ09ORklHX0lJT19SRVNDQUxFPW0KKyMgZW5kIG9mIEFuYWxvZyBGcm9udCBF bmRzCisKKyMKKyMgQW1wbGlmaWVycworIworIyBDT05GSUdfQUQ4MzY2IGlzIG5vdCBzZXQKK0NP TkZJR19BREE0MjUwPW0KK0NPTkZJR19ITUM0MjU9bQorIyBlbmQgb2YgQW1wbGlmaWVycworCisj CisjIENhcGFjaXRhbmNlIHRvIGRpZ2l0YWwgY29udmVydGVycworIworIyBDT05GSUdfQUQ3MTUw IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzc0NiBpcyBub3Qgc2V0CisjIGVuZCBvZiBDYXBhY2l0 YW5jZSB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKworIworIyBDaGVtaWNhbCBTZW5zb3JzCisjCitD T05GSUdfQVRMQVNfUEhfU0VOU09SPW0KK0NPTkZJR19BVExBU19FWk9fU0VOU09SPW0KK0NPTkZJ R19CTUU2ODA9bQorQ09ORklHX0JNRTY4MF9JMkM9bQorQ09ORklHX0JNRTY4MF9TUEk9bQorQ09O RklHX0NDUzgxMT1tCitDT05GSUdfSUFRQ09SRT1tCitDT05GSUdfUE1TNzAwMz1tCitDT05GSUdf U0NEMzBfQ09SRT1tCitDT05GSUdfU0NEMzBfSTJDPW0KK0NPTkZJR19TQ0QzMF9TRVJJQUw9bQor Q09ORklHX1NDRDRYPW0KKyMgQ09ORklHX1NFTlNJUklPTl9TR1AzMCBpcyBub3Qgc2V0CisjIENP TkZJR19TRU5TSVJJT05fU0dQNDAgaXMgbm90IHNldAorQ09ORklHX1NQUzMwPW0KK0NPTkZJR19T UFMzMF9JMkM9bQorQ09ORklHX1NQUzMwX1NFUklBTD1tCitDT05GSUdfU0VOU0VBSVJfU1VOUklT RV9DTzI9bQorQ09ORklHX1ZaODlYPW0KKyMgZW5kIG9mIENoZW1pY2FsIFNlbnNvcnMKKworIwor IyBIaWQgU2Vuc29yIElJTyBDb21tb24KKyMKK0NPTkZJR19ISURfU0VOU09SX0lJT19DT01NT049 bQorQ09ORklHX0hJRF9TRU5TT1JfSUlPX1RSSUdHRVI9bQorIyBlbmQgb2YgSGlkIFNlbnNvciBJ SU8gQ29tbW9uCisKK0NPTkZJR19JSU9fTVNfU0VOU09SU19JMkM9bQorCisjCisjIElJTyBTQ01J IFNlbnNvcnMKKyMKKyMgZW5kIG9mIElJTyBTQ01JIFNlbnNvcnMKKworIworIyBTU1AgU2Vuc29y IENvbW1vbgorIworIyBDT05GSUdfSUlPX1NTUF9TRU5TT1JIVUIgaXMgbm90IHNldAorIyBlbmQg b2YgU1NQIFNlbnNvciBDb21tb24KKworQ09ORklHX0lJT19TVF9TRU5TT1JTX0kyQz1tCitDT05G SUdfSUlPX1NUX1NFTlNPUlNfU1BJPW0KK0NPTkZJR19JSU9fU1RfU0VOU09SU19DT1JFPW0KKwor IworIyBEaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCisjCitDT05GSUdfQUQzNTUyUj1tCisj IENPTkZJR19BRDUwNjQgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1MzYwIGlzIG5vdCBzZXQKKyMg Q09ORklHX0FENTM4MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDU0MjEgaXMgbm90IHNldAorIyBD T05GSUdfQUQ1NDQ2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTQ0OSBpcyBub3Qgc2V0CitDT05G SUdfQUQ1NTkyUl9CQVNFPW0KK0NPTkZJR19BRDU1OTJSPW0KKyMgQ09ORklHX0FENTU5M1IgaXMg bm90IHNldAorIyBDT05GSUdfQUQ1NTA0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTYyNFJfU1BJ IGlzIG5vdCBzZXQKK0NPTkZJR19MVEMyNjg4PW0KK0NPTkZJR19BRDU2ODY9bQorQ09ORklHX0FE NTY4Nl9TUEk9bQorQ09ORklHX0FENTY5Nl9JMkM9bQorIyBDT05GSUdfQUQ1NzU1IGlzIG5vdCBz ZXQKK0NPTkZJR19BRDU3NTg9bQorQ09ORklHX0FENTc2MT1tCisjIENPTkZJR19BRDU3NjQgaXMg bm90IHNldAorIyBDT05GSUdfQUQ1NzY2IGlzIG5vdCBzZXQKK0NPTkZJR19BRDU3NzBSPW0KKyMg Q09ORklHX0FENTc5MSBpcyBub3Qgc2V0CitDT05GSUdfQUQ3MjkzPW0KKyMgQ09ORklHX0FENzMw MyBpcyBub3Qgc2V0CitDT05GSUdfQUQ4ODAxPW0KK0NPTkZJR19EUE9UX0RBQz1tCitDT05GSUdf RFM0NDI0PW0KK0NPTkZJR19MVEMxNjYwPW0KK0NPTkZJR19MVEMyNjMyPW0KK0NPTkZJR19NNjIz MzI9bQorIyBDT05GSUdfTUFYNTE3IGlzIG5vdCBzZXQKK0NPTkZJR19NQVg1NTIyPW0KKyMgQ09O RklHX01BWDU4MjEgaXMgbm90IHNldAorIyBDT05GSUdfTUNQNDcyNSBpcyBub3Qgc2V0CisjIENP TkZJR19NQ1A0OTIyIGlzIG5vdCBzZXQKK0NPTkZJR19USV9EQUMwODJTMDg1PW0KK0NPTkZJR19U SV9EQUM1NTcxPW0KK0NPTkZJR19USV9EQUM3MzExPW0KK0NPTkZJR19USV9EQUM3NjEyPW0KKyMg Q09ORklHX1ZGNjEwX0RBQyBpcyBub3Qgc2V0CisjIGVuZCBvZiBEaWdpdGFsIHRvIGFuYWxvZyBj b252ZXJ0ZXJzCisKKyMKKyMgSUlPIGR1bW15IGRyaXZlcgorIworIyBDT05GSUdfSUlPX1NJTVBM RV9EVU1NWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBJSU8gZHVtbXkgZHJpdmVyCisKKyMKKyMgRmls dGVycworIworQ09ORklHX0FETVY4ODE4PW0KKyMgZW5kIG9mIEZpbHRlcnMKKworIworIyBGcmVx dWVuY3kgU3ludGhlc2l6ZXJzIEREUy9QTEwKKyMKKworIworIyBDbG9jayBHZW5lcmF0b3IvRGlz dHJpYnV0aW9uCisjCisjIENPTkZJR19BRDk1MjMgaXMgbm90IHNldAorIyBlbmQgb2YgQ2xvY2sg R2VuZXJhdG9yL0Rpc3RyaWJ1dGlvbgorCisjCisjIFBoYXNlLUxvY2tlZCBMb29wIChQTEwpIGZy ZXF1ZW5jeSBzeW50aGVzaXplcnMKKyMKKyMgQ09ORklHX0FERjQzNTAgaXMgbm90IHNldAorQ09O RklHX0FERjQzNzE9bQorQ09ORklHX0FERjQzNzc9bQorQ09ORklHX0FETVYxMDEzPW0KK0NPTkZJ R19BRE1WMTAxND1tCitDT05GSUdfQURNVjQ0MjA9bQorIyBDT05GSUdfQURSRjY3ODAgaXMgbm90 IHNldAorIyBlbmQgb2YgUGhhc2UtTG9ja2VkIExvb3AgKFBMTCkgZnJlcXVlbmN5IHN5bnRoZXNp emVycworIyBlbmQgb2YgRnJlcXVlbmN5IFN5bnRoZXNpemVycyBERFMvUExMCisKKyMKKyMgRGln aXRhbCBneXJvc2NvcGUgc2Vuc29ycworIworIyBDT05GSUdfQURJUzE2MDgwIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FESVMxNjEzMCBpcyBub3Qgc2V0CisjIENPTkZJR19BRElTMTYxMzYgaXMgbm90 IHNldAorIyBDT05GSUdfQURJUzE2MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19BRFhSUzI5MD1tCisj IENPTkZJR19BRFhSUzQ1MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTUcxNjAgaXMgbm90IHNldAor Q09ORklHX0ZYQVMyMTAwMkM9bQorQ09ORklHX0ZYQVMyMTAwMkNfSTJDPW0KK0NPTkZJR19GWEFT MjEwMDJDX1NQST1tCitDT05GSUdfSElEX1NFTlNPUl9HWVJPXzNEPW0KK0NPTkZJR19NUFUzMDUw PW0KK0NPTkZJR19NUFUzMDUwX0kyQz1tCisjIENPTkZJR19JSU9fU1RfR1lST18zQVhJUyBpcyBu b3Qgc2V0CisjIENPTkZJR19JVEczMjAwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERpZ2l0YWwgZ3ly b3Njb3BlIHNlbnNvcnMKKworIworIyBIZWFsdGggU2Vuc29ycworIworCisjCisjIEhlYXJ0IFJh dGUgTW9uaXRvcnMKKyMKK0NPTkZJR19BRkU0NDAzPW0KK0NPTkZJR19BRkU0NDA0PW0KK0NPTkZJ R19NQVgzMDEwMD1tCitDT05GSUdfTUFYMzAxMDI9bQorIyBlbmQgb2YgSGVhcnQgUmF0ZSBNb25p dG9ycworIyBlbmQgb2YgSGVhbHRoIFNlbnNvcnMKKworIworIyBIdW1pZGl0eSBzZW5zb3JzCisj CitDT05GSUdfQU0yMzE1PW0KKyMgQ09ORklHX0RIVDExIGlzIG5vdCBzZXQKK0NPTkZJR19IREMx MDBYPW0KK0NPTkZJR19IREMyMDEwPW0KK0NPTkZJR19ISURfU0VOU09SX0hVTUlESVRZPW0KK0NP TkZJR19IVFMyMjE9bQorQ09ORklHX0hUUzIyMV9JMkM9bQorQ09ORklHX0hUUzIyMV9TUEk9bQor Q09ORklHX0hUVTIxPW0KKyMgQ09ORklHX1NJNzAwNSBpcyBub3Qgc2V0CisjIENPTkZJR19TSTcw MjAgaXMgbm90IHNldAorIyBlbmQgb2YgSHVtaWRpdHkgc2Vuc29ycworCisjCisjIEluZXJ0aWFs IG1lYXN1cmVtZW50IHVuaXRzCisjCisjIENPTkZJR19BRElTMTY0MDAgaXMgbm90IHNldAorQ09O RklHX0FESVMxNjQ2MD1tCitDT05GSUdfQURJUzE2NDc1PW0KKyMgQ09ORklHX0FESVMxNjQ4MCBp cyBub3Qgc2V0CitDT05GSUdfQk1JMTYwPW0KK0NPTkZJR19CTUkxNjBfSTJDPW0KK0NPTkZJR19C TUkxNjBfU1BJPW0KK0NPTkZJR19CT1NDSF9CTk8wNTU9bQorQ09ORklHX0JPU0NIX0JOTzA1NV9T RVJJQUw9bQorQ09ORklHX0JPU0NIX0JOTzA1NV9JMkM9bQorQ09ORklHX0ZYT1M4NzAwPW0KK0NP TkZJR19GWE9TODcwMF9JMkM9bQorQ09ORklHX0ZYT1M4NzAwX1NQST1tCitDT05GSUdfS01YNjE9 bQorQ09ORklHX0lOVl9JQ000MjYwMD1tCitDT05GSUdfSU5WX0lDTTQyNjAwX0kyQz1tCitDT05G SUdfSU5WX0lDTTQyNjAwX1NQST1tCitDT05GSUdfSU5WX01QVTYwNTBfSUlPPW0KK0NPTkZJR19J TlZfTVBVNjA1MF9JMkM9bQorQ09ORklHX0lOVl9NUFU2MDUwX1NQST1tCitDT05GSUdfSUlPX1NU X0xTTTZEU1g9bQorQ09ORklHX0lJT19TVF9MU002RFNYX0kyQz1tCitDT05GSUdfSUlPX1NUX0xT TTZEU1hfU1BJPW0KK0NPTkZJR19JSU9fU1RfTFNNNkRTWF9JM0M9bQorIyBlbmQgb2YgSW5lcnRp YWwgbWVhc3VyZW1lbnQgdW5pdHMKKworQ09ORklHX0lJT19BRElTX0xJQj1tCitDT05GSUdfSUlP X0FESVNfTElCX0JVRkZFUj15CisKKyMKKyMgTGlnaHQgc2Vuc29ycworIworIyBDT05GSUdfQURK RF9TMzExIGlzIG5vdCBzZXQKK0NPTkZJR19BRFVYMTAyMD1tCitDT05GSUdfQUwzMDEwPW0KKyMg Q09ORklHX0FMMzMyMEEgaXMgbm90IHNldAorIyBDT05GSUdfQVBEUzkzMDAgaXMgbm90IHNldAor Q09ORklHX0FQRFM5OTYwPW0KK0NPTkZJR19BUzczMjExPW0KKyMgQ09ORklHX0JIMTc1MCBpcyBu b3Qgc2V0CisjIENPTkZJR19CSDE3ODAgaXMgbm90IHNldAorIyBDT05GSUdfQ00zMjE4MSBpcyBu b3Qgc2V0CitDT05GSUdfQ00zMjMyPW0KK0NPTkZJR19DTTMzMjM9bQorQ09ORklHX0NNMzYwNT1t CisjIENPTkZJR19DTTM2NjUxIGlzIG5vdCBzZXQKK0NPTkZJR19HUDJBUDAwMj1tCisjIENPTkZJ R19HUDJBUDAyMEEwMEYgaXMgbm90IHNldAorQ09ORklHX0lRUzYyMV9BTFM9bQorIyBDT05GSUdf U0VOU09SU19JU0wyOTAxOCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lTTDI5MDI4IGlz IG5vdCBzZXQKKyMgQ09ORklHX0lTTDI5MTI1IGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU0VOU09S X0FMUz1tCitDT05GSUdfSElEX1NFTlNPUl9QUk9YPW0KK0NPTkZJR19KU0ExMjEyPW0KK0NPTkZJ R19ST0hNX0JVMjcwMzQ9bQorQ09ORklHX1JQUjA1MjE9bQorIyBDT05GSUdfU0VOU09SU19MTTM1 MzMgaXMgbm90IHNldAorIyBDT05GSUdfTFRSNTAxIGlzIG5vdCBzZXQKK0NPTkZJR19MVFJGMjE2 QT1tCitDT05GSUdfTFYwMTA0Q1M9bQorIyBDT05GSUdfTUFYNDQwMDAgaXMgbm90IHNldAorQ09O RklHX01BWDQ0MDA5PW0KK0NPTkZJR19OT0ExMzA1PW0KK0NPTkZJR19PUFQzMDAxPW0KK0NPTkZJ R19QQTEyMjAzMDAxPW0KK0NPTkZJR19TSTExMzM9bQorQ09ORklHX1NJMTE0NT1tCisjIENPTkZJ R19TVEszMzEwIGlzIG5vdCBzZXQKK0NPTkZJR19TVF9VVklTMjU9bQorQ09ORklHX1NUX1VWSVMy NV9JMkM9bQorQ09ORklHX1NUX1VWSVMyNV9TUEk9bQorIyBDT05GSUdfVENTMzQxNCBpcyBub3Qg c2V0CisjIENPTkZJR19UQ1MzNDcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU2 MyBpcyBub3Qgc2V0CisjIENPTkZJR19UU0wyNTgzIGlzIG5vdCBzZXQKK0NPTkZJR19UU0wyNTkx PW0KK0NPTkZJR19UU0wyNzcyPW0KKyMgQ09ORklHX1RTTDQ1MzEgaXMgbm90IHNldAorQ09ORklH X1VTNTE4MkQ9bQorIyBDT05GSUdfVkNOTDQwMDAgaXMgbm90IHNldAorQ09ORklHX1ZDTkw0MDM1 PW0KK0NPTkZJR19WRU1MNjAzMD1tCisjIENPTkZJR19WRU1MNjA3MCBpcyBub3Qgc2V0CitDT05G SUdfVkw2MTgwPW0KK0NPTkZJR19aT1BUMjIwMT1tCisjIGVuZCBvZiBMaWdodCBzZW5zb3JzCisK KyMKKyMgTWFnbmV0b21ldGVyIHNlbnNvcnMKKyMKK0NPTkZJR19BSzg5NzQ9bQorIyBDT05GSUdf QUs4OTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FLMDk5MTEgaXMgbm90IHNldAorIyBDT05GSUdf Qk1DMTUwX01BR05fSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JNQzE1MF9NQUdOX1NQSSBpcyBu b3Qgc2V0CisjIENPTkZJR19NQUczMTEwIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU0VOU09SX01B R05FVE9NRVRFUl8zRD1tCisjIENPTkZJR19NTUMzNTI0MCBpcyBub3Qgc2V0CitDT05GSUdfSUlP X1NUX01BR05fM0FYSVM9bQorQ09ORklHX0lJT19TVF9NQUdOX0kyQ18zQVhJUz1tCitDT05GSUdf SUlPX1NUX01BR05fU1BJXzNBWElTPW0KKyMgQ09ORklHX1NFTlNPUlNfSE1DNTg0M19JMkMgaXMg bm90IHNldAorIyBDT05GSUdfU0VOU09SU19ITUM1ODQzX1NQSSBpcyBub3Qgc2V0CitDT05GSUdf U0VOU09SU19STTMxMDA9bQorQ09ORklHX1NFTlNPUlNfUk0zMTAwX0kyQz1tCitDT05GSUdfU0VO U09SU19STTMxMDBfU1BJPW0KK0NPTkZJR19USV9UTUFHNTI3Mz1tCisjIENPTkZJR19ZQU1BSEFf WUFTNTMwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIE1hZ25ldG9tZXRlciBzZW5zb3JzCisKKyMKKyMg TXVsdGlwbGV4ZXJzCisjCitDT05GSUdfSUlPX01VWD1tCisjIGVuZCBvZiBNdWx0aXBsZXhlcnMK KworIworIyBJbmNsaW5vbWV0ZXIgc2Vuc29ycworIworQ09ORklHX0hJRF9TRU5TT1JfSU5DTElO T01FVEVSXzNEPW0KK0NPTkZJR19ISURfU0VOU09SX0RFVklDRV9ST1RBVElPTj1tCisjIGVuZCBv ZiBJbmNsaW5vbWV0ZXIgc2Vuc29ycworCisjCisjIFRyaWdnZXJzIC0gc3RhbmRhbG9uZQorIwor Q09ORklHX0lJT19IUlRJTUVSX1RSSUdHRVI9bQorIyBDT05GSUdfSUlPX0lOVEVSUlVQVF9UUklH R0VSIGlzIG5vdCBzZXQKK0NPTkZJR19JSU9fVElHSFRMT09QX1RSSUdHRVI9bQorIyBDT05GSUdf SUlPX1NZU0ZTX1RSSUdHRVIgaXMgbm90IHNldAorIyBlbmQgb2YgVHJpZ2dlcnMgLSBzdGFuZGFs b25lCisKKyMKKyMgTGluZWFyIGFuZCBhbmd1bGFyIHBvc2l0aW9uIHNlbnNvcnMKKyMKK0NPTkZJ R19JUVM2MjRfUE9TPW0KKyMgQ09ORklHX0hJRF9TRU5TT1JfQ1VTVE9NX0lOVEVMX0hJTkdFIGlz IG5vdCBzZXQKKyMgZW5kIG9mIExpbmVhciBhbmQgYW5ndWxhciBwb3NpdGlvbiBzZW5zb3JzCisK KyMKKyMgRGlnaXRhbCBwb3RlbnRpb21ldGVycworIworQ09ORklHX0FENTExMD1tCitDT05GSUdf QUQ1MjcyPW0KKyMgQ09ORklHX0RTMTgwMyBpcyBub3Qgc2V0CitDT05GSUdfTUFYNTQzMj1tCitD T05GSUdfTUFYNTQ4MT1tCitDT05GSUdfTUFYNTQ4Nz1tCitDT05GSUdfTUNQNDAxOD1tCisjIENP TkZJR19NQ1A0MTMxIGlzIG5vdCBzZXQKK0NPTkZJR19NQ1A0NTMxPW0KK0NPTkZJR19NQ1A0MTAx MD1tCitDT05GSUdfVFBMMDEwMj1tCisjIGVuZCBvZiBEaWdpdGFsIHBvdGVudGlvbWV0ZXJzCisK KyMKKyMgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCisjCitDT05GSUdfTE1QOTEwMDA9bQorIyBlbmQg b2YgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCisKKyMKKyMgUHJlc3N1cmUgc2Vuc29ycworIworQ09O RklHX0FCUDA2ME1HPW0KK0NPTkZJR19CTVAyODA9bQorQ09ORklHX0JNUDI4MF9JMkM9bQorQ09O RklHX0JNUDI4MF9TUEk9bQorQ09ORklHX0RMSEw2MEQ9bQorQ09ORklHX0RQUzMxMD1tCitDT05G SUdfSElEX1NFTlNPUl9QUkVTUz1tCisjIENPTkZJR19IUDAzIGlzIG5vdCBzZXQKK0NPTkZJR19J Q1AxMDEwMD1tCitDT05GSUdfTVBMMTE1PW0KK0NPTkZJR19NUEwxMTVfSTJDPW0KK0NPTkZJR19N UEwxMTVfU1BJPW0KKyMgQ09ORklHX01QTDMxMTUgaXMgbm90IHNldAorIyBDT05GSUdfTVM1NjEx IGlzIG5vdCBzZXQKK0NPTkZJR19NUzU2Mzc9bQorQ09ORklHX0lJT19TVF9QUkVTUz1tCitDT05G SUdfSUlPX1NUX1BSRVNTX0kyQz1tCitDT05GSUdfSUlPX1NUX1BSRVNTX1NQST1tCisjIENPTkZJ R19UNTQwMyBpcyBub3Qgc2V0CisjIENPTkZJR19IUDIwNkMgaXMgbm90IHNldAorQ09ORklHX1pQ QTIzMjY9bQorQ09ORklHX1pQQTIzMjZfSTJDPW0KK0NPTkZJR19aUEEyMzI2X1NQST1tCisjIGVu ZCBvZiBQcmVzc3VyZSBzZW5zb3JzCisKKyMKKyMgTGlnaHRuaW5nIHNlbnNvcnMKKyMKKyMgQ09O RklHX0FTMzkzNSBpcyBub3Qgc2V0CisjIGVuZCBvZiBMaWdodG5pbmcgc2Vuc29ycworCisjCisj IFByb3hpbWl0eSBhbmQgZGlzdGFuY2Ugc2Vuc29ycworIworQ09ORklHX0lTTDI5NTAxPW0KK0NP TkZJR19MSURBUl9MSVRFX1YyPW0KK0NPTkZJR19NQjEyMzI9bQorQ09ORklHX1BJTkc9bQorQ09O RklHX1JGRDc3NDAyPW0KK0NPTkZJR19TUkYwND1tCitDT05GSUdfU1hfQ09NTU9OPW0KK0NPTkZJ R19TWDkzMTA9bQorQ09ORklHX1NYOTMyND1tCitDT05GSUdfU1g5MzYwPW0KK0NPTkZJR19TWDk1 MDA9bQorQ09ORklHX1NSRjA4PW0KK0NPTkZJR19WQ05MMzAyMD1tCitDT05GSUdfVkw1M0wwWF9J MkM9bQorIyBlbmQgb2YgUHJveGltaXR5IGFuZCBkaXN0YW5jZSBzZW5zb3JzCisKKyMKKyMgUmVz b2x2ZXIgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDJTOTAgaXMgbm90IHNl dAorIyBDT05GSUdfQUQyUzEyMDAgaXMgbm90IHNldAorIyBlbmQgb2YgUmVzb2x2ZXIgdG8gZGln aXRhbCBjb252ZXJ0ZXJzCisKKyMKKyMgVGVtcGVyYXR1cmUgc2Vuc29ycworIworQ09ORklHX0lR UzYyMEFUX1RFTVA9bQorQ09ORklHX0xUQzI5ODM9bQorQ09ORklHX01BWElNX1RIRVJNT0NPVVBM RT1tCitDT05GSUdfSElEX1NFTlNPUl9URU1QPW0KKyMgQ09ORklHX01MWDkwNjE0IGlzIG5vdCBz ZXQKK0NPTkZJR19NTFg5MDYzMj1tCisjIENPTkZJR19UTVAwMDYgaXMgbm90IHNldAorQ09ORklH X1RNUDAwNz1tCitDT05GSUdfVE1QMTE3PW0KK0NPTkZJR19UU1lTMDE9bQorQ09ORklHX1RTWVMw MkQ9bQorQ09ORklHX01BWDMwMjA4PW0KK0NPTkZJR19NQVgzMTg1Nj1tCitDT05GSUdfTUFYMzE4 NjU9bQorIyBlbmQgb2YgVGVtcGVyYXR1cmUgc2Vuc29ycworCitDT05GSUdfTlRCPXkKK0NPTkZJ R19OVEJfTVNJPXkKK0NPTkZJR19OVEJfSURUPW0KKyMgQ09ORklHX05UQl9FUEYgaXMgbm90IHNl dAorQ09ORklHX05UQl9TV0lUQ0hURUM9bQorIyBDT05GSUdfTlRCX1BJTkdQT05HIGlzIG5vdCBz ZXQKKyMgQ09ORklHX05UQl9UT09MIGlzIG5vdCBzZXQKK0NPTkZJR19OVEJfUEVSRj1tCisjIENP TkZJR19OVEJfTVNJX1RFU1QgaXMgbm90IHNldAorQ09ORklHX05UQl9UUkFOU1BPUlQ9bQorQ09O RklHX1BXTT15CitDT05GSUdfUFdNX1NZU0ZTPXkKKyMgQ09ORklHX1BXTV9ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfUFdNX0FUTUVMX0hMQ0RDX1BXTT1tCitDT05GSUdfUFdNX0FUTUVMX1RDQj1t CitDT05GSUdfUFdNX0NMSz1tCitDT05GSUdfUFdNX0RXQz1tCisjIENPTkZJR19QV01fRlNMX0ZU TSBpcyBub3Qgc2V0CitDT05GSUdfUFdNX0lRUzYyMEE9bQorQ09ORklHX1BXTV9MUDM5NDM9bQor Q09ORklHX1BXTV9OVFhFQz1tCisjIENPTkZJR19QV01fUENBOTY4NSBpcyBub3Qgc2V0CitDT05G SUdfUFdNX1NJRklWRT1tCitDT05GSUdfUFdNX1NUQVJGSVZFX1BUQz1tCitDT05GSUdfUFdNX1hJ TElOWD1tCisKKyMKKyMgSVJRIGNoaXAgc3VwcG9ydAorIworQ09ORklHX0lSUUNISVA9eQorQ09O RklHX0FMX0ZJQz15CitDT05GSUdfTUFERVJBX0lSUT1tCisjIENPTkZJR19YSUxJTlhfSU5UQyBp cyBub3Qgc2V0CitDT05GSUdfUklTQ1ZfSU5UQz15CitDT05GSUdfU0lGSVZFX1BMSUM9eQorIyBl bmQgb2YgSVJRIGNoaXAgc3VwcG9ydAorCitDT05GSUdfSVBBQ0tfQlVTPW0KK0NPTkZJR19CT0FS RF9UUENJMjAwPW0KK0NPTkZJR19TRVJJQUxfSVBPQ1RBTD1tCitDT05GSUdfUkVTRVRfQ09OVFJP TExFUj15CitDT05GSUdfUkVTRVRfU0lNUExFPXkKK0NPTkZJR19SRVNFVF9USV9TWVNDT049bQor Q09ORklHX1JFU0VUX1RJX1RQUzM4MFg9bQorQ09ORklHX1JFU0VUX1NUQVJGSVZFX0pINzFYMD15 CitDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MTAwPXkKK0NPTkZJR19SRVNFVF9TVEFSRklWRV9K SDcxMTA9eQorCisjCisjIFBIWSBTdWJzeXN0ZW0KKyMKK0NPTkZJR19HRU5FUklDX1BIWT15CitD T05GSUdfR0VORVJJQ19QSFlfTUlQSV9EUEhZPXkKK0NPTkZJR19QSFlfQ0FOX1RSQU5TQ0VJVkVS PW0KKworIworIyBQSFkgZHJpdmVycyBmb3IgQnJvYWRjb20gcGxhdGZvcm1zCisjCitDT05GSUdf QkNNX0tPTkFfVVNCMl9QSFk9bQorIyBlbmQgb2YgUEhZIGRyaXZlcnMgZm9yIEJyb2FkY29tIHBs YXRmb3JtcworCitDT05GSUdfUEhZX0NBREVOQ0VfVE9SUkVOVD1tCitDT05GSUdfUEhZX0NBREVO Q0VfRFBIWT1tCitDT05GSUdfUEhZX0NBREVOQ0VfRFBIWV9SWD1tCitDT05GSUdfUEhZX0NBREVO Q0VfU0lFUlJBPW0KK0NPTkZJR19QSFlfQ0FERU5DRV9TQUxWTz1tCitDT05GSUdfUEhZX1BYQV8y OE5NX0hTSUM9bQorQ09ORklHX1BIWV9QWEFfMjhOTV9VU0IyPW0KK0NPTkZJR19QSFlfTEFOOTY2 WF9TRVJERVM9bQorQ09ORklHX1BIWV9DUENBUF9VU0I9bQorQ09ORklHX1BIWV9NQVBQSE9ORV9N RE02NjAwPW0KK0NPTkZJR19QSFlfT0NFTE9UX1NFUkRFUz1tCitDT05GSUdfUEhZX1FDT01fVVNC X0hTPW0KK0NPTkZJR19QSFlfUUNPTV9VU0JfSFNJQz1tCisjIENPTkZJR19QSFlfU0FNU1VOR19V U0IyIGlzIG5vdCBzZXQKK0NPTkZJR19QSFlfU1RBUkZJVkVfRFBIWV9SWD1tCitDT05GSUdfUEhZ X1NUQVJGSVZFX0pINzExMF9QQ0lFPW0KK0NPTkZJR19QSFlfU1RBUkZJVkVfSkg3MTEwX1VTQj1t CisjIENPTkZJR19QSFlfVFVTQjEyMTAgaXMgbm90IHNldAorIyBlbmQgb2YgUEhZIFN1YnN5c3Rl bQorCitDT05GSUdfUE9XRVJDQVA9eQorQ09ORklHX0lETEVfSU5KRUNUPXkKKyMgQ09ORklHX0RU UE0gaXMgbm90IHNldAorIyBDT05GSUdfTUNCIGlzIG5vdCBzZXQKKworIworIyBQZXJmb3JtYW5j ZSBtb25pdG9yIHN1cHBvcnQKKyMKK0NPTkZJR19SSVNDVl9QTVU9eQorQ09ORklHX1JJU0NWX1BN VV9MRUdBQ1k9eQorQ09ORklHX1JJU0NWX1BNVV9TQkk9eQorIyBlbmQgb2YgUGVyZm9ybWFuY2Ug bW9uaXRvciBzdXBwb3J0CisKK0NPTkZJR19SQVM9eQorQ09ORklHX1VTQjQ9bQorIyBDT05GSUdf VVNCNF9ERUJVR0ZTX1dSSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQjRfRE1BX1RFU1QgaXMg bm90IHNldAorCisjCisjIEFuZHJvaWQKKyMKK0NPTkZJR19BTkRST0lEX0JJTkRFUl9JUEM9eQor Q09ORklHX0FORFJPSURfQklOREVSRlM9eQorQ09ORklHX0FORFJPSURfQklOREVSX0RFVklDRVM9 IiIKKyMgQ09ORklHX0FORFJPSURfQklOREVSX0lQQ19TRUxGVEVTVCBpcyBub3Qgc2V0CisjIGVu ZCBvZiBBbmRyb2lkCisKK0NPTkZJR19MSUJOVkRJTU09bQorQ09ORklHX0JMS19ERVZfUE1FTT1t CitDT05GSUdfTkRfQ0xBSU09eQorQ09ORklHX05EX0JUVD1tCitDT05GSUdfQlRUPXkKK0NPTkZJ R19PRl9QTUVNPW0KK0NPTkZJR19OVkRJTU1fS0VZUz15CisjIENPTkZJR19OVkRJTU1fU0VDVVJJ VFlfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfREFYPXkKK0NPTkZJR19ERVZfREFYPW0KK0NPTkZJ R19ERVZfREFYX0NYTD1tCitDT05GSUdfTlZNRU09eQorQ09ORklHX05WTUVNX1NZU0ZTPXkKKwor IworIyBMYXlvdXQgVHlwZXMKKyMKK0NPTkZJR19OVk1FTV9MQVlPVVRfU0wyOF9WUEQ9bQorQ09O RklHX05WTUVNX0xBWU9VVF9PTklFX1RMVj1tCisjIGVuZCBvZiBMYXlvdXQgVHlwZXMKKworIyBD T05GSUdfTlZNRU1fUk1FTSBpcyBub3Qgc2V0CitDT05GSUdfTlZNRU1fU1BNSV9TREFNPW0KK0NP TkZJR19OVk1FTV9VX0JPT1RfRU5WPW0KKworIworIyBIVyB0cmFjaW5nIHN1cHBvcnQKKyMKK0NP TkZJR19TVE09eQorQ09ORklHX1NUTV9QUk9UT19CQVNJQz1tCitDT05GSUdfU1RNX1BST1RPX1NZ U19UPW0KKyMgQ09ORklHX1NUTV9EVU1NWSBpcyBub3Qgc2V0CitDT05GSUdfU1RNX1NPVVJDRV9D T05TT0xFPXkKKyMgQ09ORklHX1NUTV9TT1VSQ0VfSEVBUlRCRUFUIGlzIG5vdCBzZXQKK0NPTkZJ R19TVE1fU09VUkNFX0ZUUkFDRT1tCisjIENPTkZJR19JTlRFTF9USCBpcyBub3Qgc2V0CisjIGVu ZCBvZiBIVyB0cmFjaW5nIHN1cHBvcnQKKworQ09ORklHX0ZQR0E9bQorQ09ORklHX0FMVEVSQV9Q Ul9JUF9DT1JFPW0KK0NPTkZJR19BTFRFUkFfUFJfSVBfQ09SRV9QTEFUPW0KK0NPTkZJR19GUEdB X01HUl9BTFRFUkFfUFNfU1BJPW0KK0NPTkZJR19GUEdBX01HUl9BTFRFUkFfQ1ZQPW0KK0NPTkZJ R19GUEdBX01HUl9YSUxJTlhfU1BJPW0KK0NPTkZJR19GUEdBX01HUl9JQ0U0MF9TUEk9bQorQ09O RklHX0ZQR0FfTUdSX01BQ0hYTzJfU1BJPW0KK0NPTkZJR19GUEdBX0JSSURHRT1tCitDT05GSUdf QUxURVJBX0ZSRUVaRV9CUklER0U9bQorQ09ORklHX1hJTElOWF9QUl9ERUNPVVBMRVI9bQorQ09O RklHX0ZQR0FfUkVHSU9OPW0KK0NPTkZJR19PRl9GUEdBX1JFR0lPTj1tCitDT05GSUdfRlBHQV9E Rkw9bQorQ09ORklHX0ZQR0FfREZMX0ZNRT1tCitDT05GSUdfRlBHQV9ERkxfRk1FX01HUj1tCitD T05GSUdfRlBHQV9ERkxfRk1FX0JSSURHRT1tCitDT05GSUdfRlBHQV9ERkxfRk1FX1JFR0lPTj1t CitDT05GSUdfRlBHQV9ERkxfQUZVPW0KKyMgQ09ORklHX0ZQR0FfREZMX05JT1NfSU5URUxfUEFD X04zMDAwIGlzIG5vdCBzZXQKK0NPTkZJR19GUEdBX0RGTF9QQ0k9bQorQ09ORklHX0ZQR0FfTTEw X0JNQ19TRUNfVVBEQVRFPW0KK0NPTkZJR19GUEdBX01HUl9NSUNST0NISVBfU1BJPW0KK0NPTkZJ R19GUEdBX01HUl9MQVRUSUNFX1NZU0NPTkZJRz1tCitDT05GSUdfRlBHQV9NR1JfTEFUVElDRV9T WVNDT05GSUdfU1BJPW0KKyMgQ09ORklHX0ZTSSBpcyBub3Qgc2V0CitDT05GSUdfTVVMVElQTEVY RVI9bQorCisjCisjIE11bHRpcGxleGVyIGRyaXZlcnMKKyMKK0NPTkZJR19NVVhfQURHNzkyQT1t CitDT05GSUdfTVVYX0FER1MxNDA4PW0KK0NPTkZJR19NVVhfR1BJTz1tCitDT05GSUdfTVVYX01N SU89bQorIyBlbmQgb2YgTXVsdGlwbGV4ZXIgZHJpdmVycworCitDT05GSUdfUE1fT1BQPXkKKyMg Q09ORklHX1NJT1ggaXMgbm90IHNldAorIyBDT05GSUdfU0xJTUJVUyBpcyBub3Qgc2V0CitDT05G SUdfSU5URVJDT05ORUNUPXkKKyMgQ09ORklHX0NPVU5URVIgaXMgbm90IHNldAorIyBDT05GSUdf TU9TVCBpcyBub3Qgc2V0CitDT05GSUdfUEVDST1tCitDT05GSUdfUEVDSV9DUFU9bQorQ09ORklH X0hURT15CisjIGVuZCBvZiBEZXZpY2UgRHJpdmVycworCisjCisjIEZpbGUgc3lzdGVtcworIwor Q09ORklHX1ZBTElEQVRFX0ZTX1BBUlNFUj15CitDT05GSUdfRlNfSU9NQVA9eQorQ09ORklHX0xF R0FDWV9ESVJFQ1RfSU89eQorIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19F WFQzX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQ0X0ZTPXkKK0NPTkZJR19FWFQ0X1VTRV9GT1Jf RVhUMj15CitDT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VYVDRfRlNfU0VDVVJJ VFk9eQorIyBDT05GSUdfRVhUNF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSkJEMj15CisjIENP TkZJR19KQkQyX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19GU19NQkNBQ0hFPXkKK0NPTkZJR19S RUlTRVJGU19GUz1tCisjIENPTkZJR19SRUlTRVJGU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJ R19SRUlTRVJGU19QUk9DX0lORk8gaXMgbm90IHNldAorQ09ORklHX1JFSVNFUkZTX0ZTX1hBVFRS PXkKK0NPTkZJR19SRUlTRVJGU19GU19QT1NJWF9BQ0w9eQorQ09ORklHX1JFSVNFUkZTX0ZTX1NF Q1VSSVRZPXkKK0NPTkZJR19KRlNfRlM9bQorQ09ORklHX0pGU19QT1NJWF9BQ0w9eQorQ09ORklH X0pGU19TRUNVUklUWT15CisjIENPTkZJR19KRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdf SkZTX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorQ09ORklHX1hGU19GUz1tCitDT05GSUdfWEZTX1NV UFBPUlRfVjQ9eQorQ09ORklHX1hGU19TVVBQT1JUX0FTQ0lJX0NJPXkKK0NPTkZJR19YRlNfUVVP VEE9eQorQ09ORklHX1hGU19QT1NJWF9BQ0w9eQorIyBDT05GSUdfWEZTX1JUIGlzIG5vdCBzZXQK KyMgQ09ORklHX1hGU19PTkxJTkVfU0NSVUIgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX1dBUk4g aXMgbm90IHNldAorIyBDT05GSUdfWEZTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19HRlMyX0ZT PW0KK0NPTkZJR19HRlMyX0ZTX0xPQ0tJTkdfRExNPXkKK0NPTkZJR19PQ0ZTMl9GUz1tCitDT05G SUdfT0NGUzJfRlNfTzJDQj1tCitDT05GSUdfT0NGUzJfRlNfVVNFUlNQQUNFX0NMVVNURVI9bQor Q09ORklHX09DRlMyX0ZTX1NUQVRTPXkKKyMgQ09ORklHX09DRlMyX0RFQlVHX01BU0tMT0cgaXMg bm90IHNldAorIyBDT05GSUdfT0NGUzJfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX0JUUkZT X0ZTPW0KK0NPTkZJR19CVFJGU19GU19QT1NJWF9BQ0w9eQorIyBDT05GSUdfQlRSRlNfRlNfQ0hF Q0tfSU5URUdSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUUkZTX0ZTX1JVTl9TQU5JVFlfVEVT VFMgaXMgbm90IHNldAorIyBDT05GSUdfQlRSRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdf QlRSRlNfQVNTRVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUUkZTX0ZTX1JFRl9WRVJJRlkgaXMg bm90IHNldAorQ09ORklHX05JTEZTMl9GUz1tCitDT05GSUdfRjJGU19GUz1tCitDT05GSUdfRjJG U19TVEFUX0ZTPXkKK0NPTkZJR19GMkZTX0ZTX1hBVFRSPXkKK0NPTkZJR19GMkZTX0ZTX1BPU0lY X0FDTD15CitDT05GSUdfRjJGU19GU19TRUNVUklUWT15CisjIENPTkZJR19GMkZTX0NIRUNLX0ZT IGlzIG5vdCBzZXQKKyMgQ09ORklHX0YyRlNfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMg Q09ORklHX0YyRlNfRlNfQ09NUFJFU1NJT04gaXMgbm90IHNldAorQ09ORklHX0YyRlNfSU9TVEFU PXkKK0NPTkZJR19GMkZTX1VORkFJUl9SV1NFTT15CitDT05GSUdfWk9ORUZTX0ZTPW0KK0NPTkZJ R19GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VYUE9SVEZTPXkKK0NPTkZJR19FWFBPUlRGU19CTE9D S19PUFM9eQorQ09ORklHX0ZJTEVfTE9DS0lORz15CitDT05GSUdfRlNfRU5DUllQVElPTj15CitD T05GSUdfRlNfRU5DUllQVElPTl9BTEdTPXkKK0NPTkZJR19GU19FTkNSWVBUSU9OX0lOTElORV9D UllQVD15CisjIENPTkZJR19GU19WRVJJVFkgaXMgbm90IHNldAorQ09ORklHX0ZTTk9USUZZPXkK K0NPTkZJR19ETk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorQ09ORklHX0ZBTk9USUZZ PXkKK0NPTkZJR19GQU5PVElGWV9BQ0NFU1NfUEVSTUlTU0lPTlM9eQorQ09ORklHX1FVT1RBPXkK K0NPTkZJR19RVU9UQV9ORVRMSU5LX0lOVEVSRkFDRT15CisjIENPTkZJR19RVU9UQV9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfUVVPVEFfVFJFRT1tCitDT05GSUdfUUZNVF9WMT1tCitDT05GSUdf UUZNVF9WMj1tCitDT05GSUdfUVVPVEFDVEw9eQorQ09ORklHX0FVVE9GUzRfRlM9eQorQ09ORklH X0FVVE9GU19GUz15CitDT05GSUdfRlVTRV9GUz1tCitDT05GSUdfQ1VTRT1tCitDT05GSUdfVklS VElPX0ZTPW0KK0NPTkZJR19PVkVSTEFZX0ZTPW0KKyMgQ09ORklHX09WRVJMQVlfRlNfUkVESVJF Q1RfRElSIGlzIG5vdCBzZXQKK0NPTkZJR19PVkVSTEFZX0ZTX1JFRElSRUNUX0FMV0FZU19GT0xM T1c9eQorIyBDT05GSUdfT1ZFUkxBWV9GU19JTkRFWCBpcyBub3Qgc2V0CisjIENPTkZJR19PVkVS TEFZX0ZTX1hJTk9fQVVUTyBpcyBub3Qgc2V0CisjIENPTkZJR19PVkVSTEFZX0ZTX01FVEFDT1BZ IGlzIG5vdCBzZXQKKworIworIyBDYWNoZXMKKyMKK0NPTkZJR19ORVRGU19TVVBQT1JUPW0KK0NP TkZJR19ORVRGU19TVEFUUz15CitDT05GSUdfRlNDQUNIRT1tCitDT05GSUdfRlNDQUNIRV9TVEFU Uz15CisjIENPTkZJR19GU0NBQ0hFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DQUNIRUZJTEVT PW0KKyMgQ09ORklHX0NBQ0hFRklMRVNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQ0FDSEVG SUxFU19FUlJPUl9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfQ0FDSEVGSUxFU19PTkRF TUFORCBpcyBub3Qgc2V0CisjIGVuZCBvZiBDYWNoZXMKKworIworIyBDRC1ST00vRFZEIEZpbGVz eXN0ZW1zCisjCitDT05GSUdfSVNPOTY2MF9GUz1tCitDT05GSUdfSk9MSUVUPXkKK0NPTkZJR19a SVNPRlM9eQorQ09ORklHX1VERl9GUz1tCisjIGVuZCBvZiBDRC1ST00vRFZEIEZpbGVzeXN0ZW1z CisKKyMKKyMgRE9TL0ZBVC9FWEZBVC9OVCBGaWxlc3lzdGVtcworIworQ09ORklHX0ZBVF9GUz1t CitDT05GSUdfTVNET1NfRlM9bQorQ09ORklHX1ZGQVRfRlM9bQorQ09ORklHX0ZBVF9ERUZBVUxU X0NPREVQQUdFPTQzNworQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgor IyBDT05GSUdfRkFUX0RFRkFVTFRfVVRGOCBpcyBub3Qgc2V0CitDT05GSUdfRVhGQVRfRlM9bQor Q09ORklHX0VYRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJ1dGY4IgorQ09ORklHX05URlNfRlM9bQor IyBDT05GSUdfTlRGU19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX1JXIGlzIG5vdCBz ZXQKK0NPTkZJR19OVEZTM19GUz1tCisjIENPTkZJR19OVEZTM182NEJJVF9DTFVTVEVSIGlzIG5v dCBzZXQKK0NPTkZJR19OVEZTM19MWlhfWFBSRVNTPXkKKyMgQ09ORklHX05URlMzX0ZTX1BPU0lY X0FDTCBpcyBub3Qgc2V0CisjIGVuZCBvZiBET1MvRkFUL0VYRkFUL05UIEZpbGVzeXN0ZW1zCisK KyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJP Q19LQ09SRT15CitDT05GSUdfUFJPQ19WTUNPUkU9eQorIyBDT05GSUdfUFJPQ19WTUNPUkVfREVW SUNFX0RVTVAgaXMgbm90IHNldAorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19QUk9DX1BB R0VfTU9OSVRPUj15CitDT05GSUdfUFJPQ19DSElMRFJFTj15CitDT05GSUdfS0VSTkZTPXkKK0NP TkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CitD T05GSUdfVE1QRlNfWEFUVFI9eQorQ09ORklHX1RNUEZTX0lOT0RFNjQ9eQorQ09ORklHX0FSQ0hf U1VQUE9SVFNfSFVHRVRMQkZTPXkKK0NPTkZJR19IVUdFVExCRlM9eQorQ09ORklHX0hVR0VUTEJf UEFHRT15CitDT05GSUdfSFVHRVRMQl9QQUdFX09QVElNSVpFX1ZNRU1NQVA9eQorIyBDT05GSUdf SFVHRVRMQl9QQUdFX09QVElNSVpFX1ZNRU1NQVBfREVGQVVMVF9PTiBpcyBub3Qgc2V0CitDT05G SUdfTUVNRkRfQ1JFQVRFPXkKK0NPTkZJR19BUkNIX0hBU19HSUdBTlRJQ19QQUdFPXkKK0NPTkZJ R19DT05GSUdGU19GUz15CitDT05GSUdfRUZJVkFSX0ZTPW0KKyMgZW5kIG9mIFBzZXVkbyBmaWxl c3lzdGVtcworCitDT05GSUdfTUlTQ19GSUxFU1lTVEVNUz15CisjIENPTkZJR19PUkFOR0VGU19G UyBpcyBub3Qgc2V0CisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19BRkZTX0ZT PW0KK0NPTkZJR19FQ1JZUFRfRlM9bQorIyBDT05GSUdfRUNSWVBUX0ZTX01FU1NBR0lORyBpcyBu b3Qgc2V0CitDT05GSUdfSEZTX0ZTPW0KK0NPTkZJR19IRlNQTFVTX0ZTPW0KK0NPTkZJR19CRUZT X0ZTPW0KKyMgQ09ORklHX0JFRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlz IG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GUyBp cyBub3Qgc2V0CisjIENPTkZJR19VQklGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPW0K K0NPTkZJR19DUkFNRlNfQkxPQ0tERVY9eQorQ09ORklHX0NSQU1GU19NVEQ9eQorQ09ORklHX1NR VUFTSEZTPW0KK0NPTkZJR19TUVVBU0hGU19GSUxFX0NBQ0hFPXkKKyMgQ09ORklHX1NRVUFTSEZT X0ZJTEVfRElSRUNUIGlzIG5vdCBzZXQKK0NPTkZJR19TUVVBU0hGU19ERUNPTVBfU0lOR0xFPXkK K0NPTkZJR19TUVVBU0hGU19ERUNPTVBfTVVMVEk9eQorQ09ORklHX1NRVUFTSEZTX0RFQ09NUF9N VUxUSV9QRVJDUFU9eQorQ09ORklHX1NRVUFTSEZTX0NIT0lDRV9ERUNPTVBfQllfTU9VTlQ9eQor Q09ORklHX1NRVUFTSEZTX01PVU5UX0RFQ09NUF9USFJFQURTPXkKK0NPTkZJR19TUVVBU0hGU19Y QVRUUj15CitDT05GSUdfU1FVQVNIRlNfWkxJQj15CitDT05GSUdfU1FVQVNIRlNfTFo0PXkKK0NP TkZJR19TUVVBU0hGU19MWk89eQorQ09ORklHX1NRVUFTSEZTX1haPXkKK0NPTkZJR19TUVVBU0hG U19aU1REPXkKKyMgQ09ORklHX1NRVUFTSEZTXzRLX0RFVkJMS19TSVpFIGlzIG5vdCBzZXQKKyMg Q09ORklHX1NRVUFTSEZTX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19TUVVBU0hGU19GUkFH TUVOVF9DQUNIRV9TSVpFPTMKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdf TUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdf SFBGU19GUz1tCisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1FOWDZGU19G Uz1tCisjIENPTkZJR19RTlg2RlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPW0K KyMgQ09ORklHX1JPTUZTX0JBQ0tFRF9CWV9CTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01G U19CQUNLRURfQllfTVREIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19CQUNLRURfQllfQk9USD15 CitDT05GSUdfUk9NRlNfT05fQkxPQ0s9eQorQ09ORklHX1JPTUZTX09OX01URD15CitDT05GSUdf UFNUT1JFPXkKK0NPTkZJR19QU1RPUkVfREVGQVVMVF9LTVNHX0JZVEVTPTEwMjQwCitDT05GSUdf UFNUT1JFX0RFRkxBVEVfQ09NUFJFU1M9bQorIyBDT05GSUdfUFNUT1JFX0xaT19DT01QUkVTUyBp cyBub3Qgc2V0CisjIENPTkZJR19QU1RPUkVfTFo0X0NPTVBSRVNTIGlzIG5vdCBzZXQKK0NPTkZJ R19QU1RPUkVfTFo0SENfQ09NUFJFU1M9bQorIyBDT05GSUdfUFNUT1JFXzg0Ml9DT01QUkVTUyBp cyBub3Qgc2V0CitDT05GSUdfUFNUT1JFX1pTVERfQ09NUFJFU1M9eQorQ09ORklHX1BTVE9SRV9D T01QUkVTUz15CitDT05GSUdfUFNUT1JFX0RFRkxBVEVfQ09NUFJFU1NfREVGQVVMVD15CisjIENP TkZJR19QU1RPUkVfTFo0SENfQ09NUFJFU1NfREVGQVVMVCBpcyBub3Qgc2V0CisjIENPTkZJR19Q U1RPUkVfWlNURF9DT01QUkVTU19ERUZBVUxUIGlzIG5vdCBzZXQKK0NPTkZJR19QU1RPUkVfQ09N UFJFU1NfREVGQVVMVD0iZGVmbGF0ZSIKKyMgQ09ORklHX1BTVE9SRV9DT05TT0xFIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1BTVE9SRV9QTVNHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BTVE9SRV9GVFJB Q0UgaXMgbm90IHNldAorQ09ORklHX1BTVE9SRV9SQU09bQorQ09ORklHX1BTVE9SRV9aT05FPW0K K0NPTkZJR19QU1RPUkVfQkxLPW0KK0NPTkZJR19QU1RPUkVfQkxLX0JMS0RFVj0iIgorQ09ORklH X1BTVE9SRV9CTEtfS01TR19TSVpFPTY0CitDT05GSUdfUFNUT1JFX0JMS19NQVhfUkVBU09OPTIK K0NPTkZJR19TWVNWX0ZTPW0KK0NPTkZJR19VRlNfRlM9bQorIyBDT05GSUdfVUZTX0ZTX1dSSVRF IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRVJPRlNf RlM9bQorIyBDT05GSUdfRVJPRlNfRlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VST0ZTX0ZT X1hBVFRSPXkKK0NPTkZJR19FUk9GU19GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VST0ZTX0ZTX1NF Q1VSSVRZPXkKK0NPTkZJR19FUk9GU19GU19aSVA9eQorQ09ORklHX0VST0ZTX0ZTX1pJUF9MWk1B PXkKK0NPTkZJR19FUk9GU19GU19QQ1BVX0tUSFJFQUQ9eQorQ09ORklHX0VST0ZTX0ZTX1BDUFVf S1RIUkVBRF9ISVBSST15CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZT X0ZTPW0KK0NPTkZJR19ORlNfVjI9bQorQ09ORklHX05GU19WMz1tCitDT05GSUdfTkZTX1YzX0FD TD15CitDT05GSUdfTkZTX1Y0PW0KK0NPTkZJR19ORlNfU1dBUD15CitDT05GSUdfTkZTX1Y0XzE9 eQorQ09ORklHX05GU19WNF8yPXkKK0NPTkZJR19QTkZTX0ZJTEVfTEFZT1VUPW0KK0NPTkZJR19Q TkZTX0JMT0NLPW0KK0NPTkZJR19QTkZTX0ZMRVhGSUxFX0xBWU9VVD1tCitDT05GSUdfTkZTX1Y0 XzFfSU1QTEVNRU5UQVRJT05fSURfRE9NQUlOPSJrZXJuZWwub3JnIgorIyBDT05GSUdfTkZTX1Y0 XzFfTUlHUkFUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19ORlNfVjRfU0VDVVJJVFlfTEFCRUw9eQor Q09ORklHX05GU19GU0NBQ0hFPXkKKyMgQ09ORklHX05GU19VU0VfTEVHQUNZX0ROUyBpcyBub3Qg c2V0CitDT05GSUdfTkZTX1VTRV9LRVJORUxfRE5TPXkKK0NPTkZJR19ORlNfREVCVUc9eQorQ09O RklHX05GU19ESVNBQkxFX1VEUF9TVVBQT1JUPXkKKyMgQ09ORklHX05GU19WNF8yX1JFQURfUExV UyBpcyBub3Qgc2V0CitDT05GSUdfTkZTRD1tCisjIENPTkZJR19ORlNEX1YyIGlzIG5vdCBzZXQK K0NPTkZJR19ORlNEX1YzX0FDTD15CitDT05GSUdfTkZTRF9WND15CitDT05GSUdfTkZTRF9QTkZT PXkKK0NPTkZJR19ORlNEX0JMT0NLTEFZT1VUPXkKK0NPTkZJR19ORlNEX1NDU0lMQVlPVVQ9eQor Q09ORklHX05GU0RfRkxFWEZJTEVMQVlPVVQ9eQorQ09ORklHX05GU0RfVjRfMl9JTlRFUl9TU0M9 eQorQ09ORklHX05GU0RfVjRfU0VDVVJJVFlfTEFCRUw9eQorQ09ORklHX0dSQUNFX1BFUklPRD1t CitDT05GSUdfTE9DS0Q9bQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQUNMX1NVUFBP UlQ9bQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX05GU19WNF8yX1NTQ19IRUxQRVI9eQor Q09ORklHX1NVTlJQQz1tCitDT05GSUdfU1VOUlBDX0dTUz1tCitDT05GSUdfU1VOUlBDX0JBQ0tD SEFOTkVMPXkKK0NPTkZJR19TVU5SUENfU1dBUD15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PW0K K0NPTkZJR19SUENTRUNfR1NTX0tSQjVfQ1JZUFRPU1lTVEVNPXkKKyMgQ09ORklHX1JQQ1NFQ19H U1NfS1JCNV9FTkNUWVBFU19ERVMgaXMgbm90IHNldAorQ09ORklHX1JQQ1NFQ19HU1NfS1JCNV9F TkNUWVBFU19BRVNfU0hBMT15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1X0VOQ1RZUEVTX0NBTUVM TElBPXkKK0NPTkZJR19SUENTRUNfR1NTX0tSQjVfRU5DVFlQRVNfQUVTX1NIQTI9eQorQ09ORklH X1NVTlJQQ19ERUJVRz15CitDT05GSUdfU1VOUlBDX1hQUlRfUkRNQT1tCitDT05GSUdfQ0VQSF9G Uz1tCitDT05GSUdfQ0VQSF9GU0NBQ0hFPXkKK0NPTkZJR19DRVBIX0ZTX1BPU0lYX0FDTD15Cisj IENPTkZJR19DRVBIX0ZTX1NFQ1VSSVRZX0xBQkVMIGlzIG5vdCBzZXQKK0NPTkZJR19DSUZTPW0K KyMgQ09ORklHX0NJRlNfU1RBVFMyIGlzIG5vdCBzZXQKK0NPTkZJR19DSUZTX0FMTE9XX0lOU0VD VVJFX0xFR0FDWT15CitDT05GSUdfQ0lGU19VUENBTEw9eQorQ09ORklHX0NJRlNfWEFUVFI9eQor Q09ORklHX0NJRlNfUE9TSVg9eQorQ09ORklHX0NJRlNfREVCVUc9eQorIyBDT05GSUdfQ0lGU19E RUJVRzIgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGU19ERUJVR19EVU1QX0tFWVMgaXMgbm90IHNl dAorQ09ORklHX0NJRlNfREZTX1VQQ0FMTD15CitDT05GSUdfQ0lGU19TV05fVVBDQUxMPXkKKyMg Q09ORklHX0NJRlNfU01CX0RJUkVDVCBpcyBub3Qgc2V0CitDT05GSUdfQ0lGU19GU0NBQ0hFPXkK KyMgQ09ORklHX1NNQl9TRVJWRVIgaXMgbm90IHNldAorQ09ORklHX1NNQkZTPW0KK0NPTkZJR19D T0RBX0ZTPW0KKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfOVBfRlM9bQorQ09O RklHXzlQX0ZTQ0FDSEU9eQorQ09ORklHXzlQX0ZTX1BPU0lYX0FDTD15CitDT05GSUdfOVBfRlNf U0VDVVJJVFk9eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9InV0ZjgiCitDT05G SUdfTkxTX0NPREVQQUdFXzQzNz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzczNz1tCitDT05GSUdf TkxTX0NPREVQQUdFXzc3NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD1tCitDT05GSUdfTkxT X0NPREVQQUdFXzg1Mj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1NT1tCitDT05GSUdfTkxTX0NP REVQQUdFXzg1Nz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2MD1tCitDT05GSUdfTkxTX0NPREVQ QUdFXzg2MT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Mj1tCitDT05GSUdfTkxTX0NPREVQQUdF Xzg2Mz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2ND1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2 NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Nj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2OT1t CitDT05GSUdfTkxTX0NPREVQQUdFXzkzNj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzk1MD1tCitD T05GSUdfTkxTX0NPREVQQUdFXzkzMj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzk0OT1tCitDT05G SUdfTkxTX0NPREVQQUdFXzg3ND1tCitDT05GSUdfTkxTX0lTTzg4NTlfOD1tCitDT05GSUdfTkxT X0NPREVQQUdFXzEyNTA9bQorQ09ORklHX05MU19DT0RFUEFHRV8xMjUxPW0KK0NPTkZJR19OTFNf QVNDSUk9bQorQ09ORklHX05MU19JU084ODU5XzE9bQorQ09ORklHX05MU19JU084ODU5XzI9bQor Q09ORklHX05MU19JU084ODU5XzM9bQorQ09ORklHX05MU19JU084ODU5XzQ9bQorQ09ORklHX05M U19JU084ODU5XzU9bQorQ09ORklHX05MU19JU084ODU5XzY9bQorQ09ORklHX05MU19JU084ODU5 Xzc9bQorQ09ORklHX05MU19JU084ODU5Xzk9bQorQ09ORklHX05MU19JU084ODU5XzEzPW0KK0NP TkZJR19OTFNfSVNPODg1OV8xND1tCitDT05GSUdfTkxTX0lTTzg4NTlfMTU9bQorQ09ORklHX05M U19LT0k4X1I9bQorQ09ORklHX05MU19LT0k4X1U9bQorQ09ORklHX05MU19NQUNfUk9NQU49bQor Q09ORklHX05MU19NQUNfQ0VMVElDPW0KK0NPTkZJR19OTFNfTUFDX0NFTlRFVVJPPW0KK0NPTkZJ R19OTFNfTUFDX0NST0FUSUFOPW0KK0NPTkZJR19OTFNfTUFDX0NZUklMTElDPW0KK0NPTkZJR19O TFNfTUFDX0dBRUxJQz1tCitDT05GSUdfTkxTX01BQ19HUkVFSz1tCitDT05GSUdfTkxTX01BQ19J Q0VMQU5EPW0KK0NPTkZJR19OTFNfTUFDX0lOVUlUPW0KK0NPTkZJR19OTFNfTUFDX1JPTUFOSUFO PW0KK0NPTkZJR19OTFNfTUFDX1RVUktJU0g9bQorQ09ORklHX05MU19VVEY4PW0KK0NPTkZJR19E TE09bQorQ09ORklHX0RMTV9ERUJVRz15CitDT05GSUdfVU5JQ09ERT15CisjIENPTkZJR19VTklD T0RFX05PUk1BTElaQVRJT05fU0VMRlRFU1QgaXMgbm90IHNldAorQ09ORklHX0lPX1dRPXkKKyMg ZW5kIG9mIEZpbGUgc3lzdGVtcworCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKK0NPTkZJR19L RVlTPXkKKyMgQ09ORklHX0tFWVNfUkVRVUVTVF9DQUNIRSBpcyBub3Qgc2V0CitDT05GSUdfUEVS U0lTVEVOVF9LRVlSSU5HUz15CitDT05GSUdfVFJVU1RFRF9LRVlTPW0KK0NPTkZJR19UUlVTVEVE X0tFWVNfVFBNPXkKK0NPTkZJR19FTkNSWVBURURfS0VZUz15CisjIENPTkZJR19VU0VSX0RFQ1JZ UFRFRF9EQVRBIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlfREhfT1BFUkFUSU9OUz15CitDT05GSUdf S0VZX05PVElGSUNBVElPTlM9eQorQ09ORklHX1NFQ1VSSVRZX0RNRVNHX1JFU1RSSUNUPXkKK0NP TkZJR19TRUNVUklUWT15CitDT05GSUdfU0VDVVJJVFlGUz15CitDT05GSUdfU0VDVVJJVFlfTkVU V09SSz15CisjIENPTkZJR19TRUNVUklUWV9JTkZJTklCQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklH X1NFQ1VSSVRZX05FVFdPUktfWEZSTSBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfUEFUSD15 CitDT05GSUdfSEFWRV9IQVJERU5FRF9VU0VSQ09QWV9BTExPQ0FUT1I9eQorQ09ORklHX0hBUkRF TkVEX1VTRVJDT1BZPXkKK0NPTkZJR19GT1JUSUZZX1NPVVJDRT15CisjIENPTkZJR19TVEFUSUNf VVNFUk1PREVIRUxQRVIgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU0VMSU5VWCBpcyBu b3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9TTUFDSyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNV UklUWV9UT01PWU8gaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX0FQUEFSTU9SPXkKKyMgQ09O RklHX1NFQ1VSSVRZX0FQUEFSTU9SX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9B UFBBUk1PUl9JTlRST1NQRUNUX1BPTElDWT15CitDT05GSUdfU0VDVVJJVFlfQVBQQVJNT1JfSEFT SD15CitDT05GSUdfU0VDVVJJVFlfQVBQQVJNT1JfSEFTSF9ERUZBVUxUPXkKK0NPTkZJR19TRUNV UklUWV9BUFBBUk1PUl9FWFBPUlRfQklOQVJZPXkKK0NPTkZJR19TRUNVUklUWV9BUFBBUk1PUl9Q QVJBTk9JRF9MT0FEPXkKKyMgQ09ORklHX1NFQ1VSSVRZX0xPQURQSU4gaXMgbm90IHNldAorQ09O RklHX1NFQ1VSSVRZX1lBTUE9eQorIyBDT05GSUdfU0VDVVJJVFlfU0FGRVNFVElEIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0xPQ0tET1dOX0xTTSBpcyBub3Qgc2V0CitDT05GSUdfU0VD VVJJVFlfTEFORExPQ0s9eQorQ09ORklHX0lOVEVHUklUWT15CisjIENPTkZJR19JTlRFR1JJVFlf U0lHTkFUVVJFIGlzIG5vdCBzZXQKK0NPTkZJR19JTlRFR1JJVFlfQVVESVQ9eQorIyBDT05GSUdf SU1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VWTSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9T RUNVUklUWV9BUFBBUk1PUj15CisjIENPTkZJR19ERUZBVUxUX1NFQ1VSSVRZX0RBQyBpcyBub3Qg c2V0CitDT05GSUdfTFNNPSJsYW5kbG9jayx5YW1hLGxvYWRwaW4sc2FmZXNldGlkLGludGVncml0 eSIKKworIworIyBLZXJuZWwgaGFyZGVuaW5nIG9wdGlvbnMKKyMKKworIworIyBNZW1vcnkgaW5p dGlhbGl6YXRpb24KKyMKK0NPTkZJR19DQ19IQVNfQVVUT19WQVJfSU5JVF9QQVRURVJOPXkKK0NP TkZJR19DQ19IQVNfQVVUT19WQVJfSU5JVF9aRVJPX0JBUkU9eQorQ09ORklHX0NDX0hBU19BVVRP X1ZBUl9JTklUX1pFUk89eQorQ09ORklHX0lOSVRfU1RBQ0tfTk9ORT15CisjIENPTkZJR19JTklU X1NUQUNLX0FMTF9QQVRURVJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOSVRfU1RBQ0tfQUxMX1pF Uk8gaXMgbm90IHNldAorQ09ORklHX0lOSVRfT05fQUxMT0NfREVGQVVMVF9PTj15CisjIENPTkZJ R19JTklUX09OX0ZSRUVfREVGQVVMVF9PTiBpcyBub3Qgc2V0CitDT05GSUdfQ0NfSEFTX1pFUk9f Q0FMTF9VU0VEX1JFR1M9eQorIyBDT05GSUdfWkVST19DQUxMX1VTRURfUkVHUyBpcyBub3Qgc2V0 CisjIGVuZCBvZiBNZW1vcnkgaW5pdGlhbGl6YXRpb24KKworQ09ORklHX1JBTkRTVFJVQ1RfTk9O RT15CisjIGVuZCBvZiBLZXJuZWwgaGFyZGVuaW5nIG9wdGlvbnMKKyMgZW5kIG9mIFNlY3VyaXR5 IG9wdGlvbnMKKworQ09ORklHX1hPUl9CTE9DS1M9bQorQ09ORklHX0FTWU5DX0NPUkU9bQorQ09O RklHX0FTWU5DX01FTUNQWT1tCitDT05GSUdfQVNZTkNfWE9SPW0KK0NPTkZJR19BU1lOQ19QUT1t CitDT05GSUdfQVNZTkNfUkFJRDZfUkVDT1Y9bQorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5 cHRvIGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZ UFRPX0FMR0FQSTI9eQorQ09ORklHX0NSWVBUT19BRUFEPXkKK0NPTkZJR19DUllQVE9fQUVBRDI9 eQorQ09ORklHX0NSWVBUT19TS0NJUEhFUj15CitDT05GSUdfQ1JZUFRPX1NLQ0lQSEVSMj15CitD T05GSUdfQ1JZUFRPX0hBU0g9eQorQ09ORklHX0NSWVBUT19IQVNIMj15CitDT05GSUdfQ1JZUFRP X1JORz15CitDT05GSUdfQ1JZUFRPX1JORzI9eQorQ09ORklHX0NSWVBUT19STkdfREVGQVVMVD15 CitDT05GSUdfQ1JZUFRPX0FLQ0lQSEVSMj15CitDT05GSUdfQ1JZUFRPX0FLQ0lQSEVSPXkKK0NP TkZJR19DUllQVE9fS1BQMj15CitDT05GSUdfQ1JZUFRPX0tQUD15CitDT05GSUdfQ1JZUFRPX0FD T01QMj15CitDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSMj15 CitDT05GSUdfQ1JZUFRPX1VTRVI9bQorQ09ORklHX0NSWVBUT19NQU5BR0VSX0RJU0FCTEVfVEVT VFM9eQorQ09ORklHX0NSWVBUT19OVUxMPXkKK0NPTkZJR19DUllQVE9fTlVMTDI9eQorQ09ORklH X0NSWVBUT19QQ1JZUFQ9bQorQ09ORklHX0NSWVBUT19DUllQVEQ9bQorQ09ORklHX0NSWVBUT19B VVRIRU5DPW0KK0NPTkZJR19DUllQVE9fVEVTVD1tCitDT05GSUdfQ1JZUFRPX0VOR0lORT1tCisj IGVuZCBvZiBDcnlwdG8gY29yZSBvciBoZWxwZXIKKworIworIyBQdWJsaWMta2V5IGNyeXB0b2dy YXBoeQorIworQ09ORklHX0NSWVBUT19SU0E9eQorQ09ORklHX0NSWVBUT19ESD15CitDT05GSUdf Q1JZUFRPX0RIX1JGQzc5MTlfR1JPVVBTPXkKK0NPTkZJR19DUllQVE9fRUNDPW0KK0NPTkZJR19D UllQVE9fRUNESD1tCitDT05GSUdfQ1JZUFRPX0VDRFNBPW0KK0NPTkZJR19DUllQVE9fRUNSRFNB PW0KK0NPTkZJR19DUllQVE9fU00yPW0KK0NPTkZJR19DUllQVE9fQ1VSVkUyNTUxOT1tCisjIGVu ZCBvZiBQdWJsaWMta2V5IGNyeXB0b2dyYXBoeQorCisjCisjIEJsb2NrIGNpcGhlcnMKKyMKK0NP TkZJR19DUllQVE9fQUVTPXkKK0NPTkZJR19DUllQVE9fQUVTX1RJPW0KK0NPTkZJR19DUllQVE9f QU5VQklTPW0KK0NPTkZJR19DUllQVE9fQVJJQT1tCitDT05GSUdfQ1JZUFRPX0JMT1dGSVNIPW0K K0NPTkZJR19DUllQVE9fQkxPV0ZJU0hfQ09NTU9OPW0KK0NPTkZJR19DUllQVE9fQ0FNRUxMSUE9 bQorQ09ORklHX0NSWVBUT19DQVNUX0NPTU1PTj1tCitDT05GSUdfQ1JZUFRPX0NBU1Q1PW0KK0NP TkZJR19DUllQVE9fQ0FTVDY9bQorQ09ORklHX0NSWVBUT19ERVM9bQorQ09ORklHX0NSWVBUT19G Q1JZUFQ9bQorQ09ORklHX0NSWVBUT19LSEFaQUQ9bQorQ09ORklHX0NSWVBUT19TRUVEPW0KK0NP TkZJR19DUllQVE9fU0VSUEVOVD1tCitDT05GSUdfQ1JZUFRPX1NNND1tCitDT05GSUdfQ1JZUFRP X1NNNF9HRU5FUklDPW0KK0NPTkZJR19DUllQVE9fVEVBPW0KK0NPTkZJR19DUllQVE9fVFdPRklT SD1tCitDT05GSUdfQ1JZUFRPX1RXT0ZJU0hfQ09NTU9OPW0KKyMgZW5kIG9mIEJsb2NrIGNpcGhl cnMKKworIworIyBMZW5ndGgtcHJlc2VydmluZyBjaXBoZXJzIGFuZCBtb2RlcworIworQ09ORklH X0NSWVBUT19BRElBTlRVTT1tCitDT05GSUdfQ1JZUFRPX0FSQzQ9bQorQ09ORklHX0NSWVBUT19D SEFDSEEyMD1tCitDT05GSUdfQ1JZUFRPX0NCQz15CitDT05GSUdfQ1JZUFRPX0NGQj1tCitDT05G SUdfQ1JZUFRPX0NUUj15CitDT05GSUdfQ1JZUFRPX0NUUz15CitDT05GSUdfQ1JZUFRPX0VDQj15 CitDT05GSUdfQ1JZUFRPX0hDVFIyPW0KK0NPTkZJR19DUllQVE9fS0VZV1JBUD1tCitDT05GSUdf Q1JZUFRPX0xSVz1tCitDT05GSUdfQ1JZUFRPX09GQj1tCitDT05GSUdfQ1JZUFRPX1BDQkM9bQor Q09ORklHX0NSWVBUT19YQ1RSPW0KK0NPTkZJR19DUllQVE9fWFRTPXkKK0NPTkZJR19DUllQVE9f TkhQT0xZMTMwNT1tCisjIGVuZCBvZiBMZW5ndGgtcHJlc2VydmluZyBjaXBoZXJzIGFuZCBtb2Rl cworCisjCisjIEFFQUQgKGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiB3aXRoIGFzc29jaWF0ZWQg ZGF0YSkgY2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFR0lTMTI4IGlzIG5vdCBzZXQKK0NP TkZJR19DUllQVE9fQ0hBQ0hBMjBQT0xZMTMwNT1tCitDT05GSUdfQ1JZUFRPX0NDTT1tCitDT05G SUdfQ1JZUFRPX0dDTT15CitDT05GSUdfQ1JZUFRPX1NFUUlWPXkKK0NPTkZJR19DUllQVE9fRUNI QUlOSVY9bQorQ09ORklHX0NSWVBUT19FU1NJVj1tCisjIGVuZCBvZiBBRUFEIChhdXRoZW50aWNh dGVkIGVuY3J5cHRpb24gd2l0aCBhc3NvY2lhdGVkIGRhdGEpIGNpcGhlcnMKKworIworIyBIYXNo ZXMsIGRpZ2VzdHMsIGFuZCBNQUNzCisjCitDT05GSUdfQ1JZUFRPX0JMQUtFMkI9bQorQ09ORklH X0NSWVBUT19DTUFDPW0KK0NPTkZJR19DUllQVE9fR0hBU0g9eQorQ09ORklHX0NSWVBUT19ITUFD PXkKK0NPTkZJR19DUllQVE9fTUQ0PW0KK0NPTkZJR19DUllQVE9fTUQ1PXkKK0NPTkZJR19DUllQ VE9fTUlDSEFFTF9NSUM9bQorQ09ORklHX0NSWVBUT19QT0xZVkFMPW0KK0NPTkZJR19DUllQVE9f UE9MWTEzMDU9bQorQ09ORklHX0NSWVBUT19STUQxNjA9bQorQ09ORklHX0NSWVBUT19TSEExPXkK K0NPTkZJR19DUllQVE9fU0hBMjU2PXkKK0NPTkZJR19DUllQVE9fU0hBNTEyPXkKK0NPTkZJR19D UllQVE9fU0hBMz1tCitDT05GSUdfQ1JZUFRPX1NNMz1tCitDT05GSUdfQ1JZUFRPX1NNM19HRU5F UklDPW0KK0NPTkZJR19DUllQVE9fU1RSRUVCT0c9bQorQ09ORklHX0NSWVBUT19WTUFDPW0KK0NP TkZJR19DUllQVE9fV1A1MTI9bQorQ09ORklHX0NSWVBUT19YQ0JDPW0KK0NPTkZJR19DUllQVE9f WFhIQVNIPW0KKyMgZW5kIG9mIEhhc2hlcywgZGlnZXN0cywgYW5kIE1BQ3MKKworIworIyBDUkNz IChjeWNsaWMgcmVkdW5kYW5jeSBjaGVja3MpCisjCitDT05GSUdfQ1JZUFRPX0NSQzMyQz15CitD T05GSUdfQ1JZUFRPX0NSQzMyPW0KK0NPTkZJR19DUllQVE9fQ1JDVDEwRElGPXkKK0NPTkZJR19D UllQVE9fQ1JDNjRfUk9DS1NPRlQ9eQorIyBlbmQgb2YgQ1JDcyAoY3ljbGljIHJlZHVuZGFuY3kg Y2hlY2tzKQorCisjCisjIENvbXByZXNzaW9uCisjCitDT05GSUdfQ1JZUFRPX0RFRkxBVEU9bQor Q09ORklHX0NSWVBUT19MWk89eQorQ09ORklHX0NSWVBUT184NDI9eQorQ09ORklHX0NSWVBUT19M WjQ9bQorQ09ORklHX0NSWVBUT19MWjRIQz1tCitDT05GSUdfQ1JZUFRPX1pTVEQ9eQorIyBlbmQg b2YgQ29tcHJlc3Npb24KKworIworIyBSYW5kb20gbnVtYmVyIGdlbmVyYXRpb24KKyMKK0NPTkZJ R19DUllQVE9fQU5TSV9DUFJORz1tCitDT05GSUdfQ1JZUFRPX0RSQkdfTUVOVT15CitDT05GSUdf Q1JZUFRPX0RSQkdfSE1BQz15CitDT05GSUdfQ1JZUFRPX0RSQkdfSEFTSD15CitDT05GSUdfQ1JZ UFRPX0RSQkdfQ1RSPXkKK0NPTkZJR19DUllQVE9fRFJCRz15CitDT05GSUdfQ1JZUFRPX0pJVFRF UkVOVFJPUFk9eQorQ09ORklHX0NSWVBUT19LREY4MDAxMDhfQ1RSPXkKKyMgZW5kIG9mIFJhbmRv bSBudW1iZXIgZ2VuZXJhdGlvbgorCisjCisjIFVzZXJzcGFjZSBpbnRlcmZhY2UKKyMKK0NPTkZJ R19DUllQVE9fVVNFUl9BUEk9bQorQ09ORklHX0NSWVBUT19VU0VSX0FQSV9IQVNIPW0KK0NPTkZJ R19DUllQVE9fVVNFUl9BUElfU0tDSVBIRVI9bQorQ09ORklHX0NSWVBUT19VU0VSX0FQSV9STkc9 bQorIyBDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX1JOR19DQVZQIGlzIG5vdCBzZXQKK0NPTkZJR19D UllQVE9fVVNFUl9BUElfQUVBRD1tCitDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX0VOQUJMRV9PQlNP TEVURT15CisjIENPTkZJR19DUllQVE9fU1RBVFMgaXMgbm90IHNldAorIyBlbmQgb2YgVXNlcnNw YWNlIGludGVyZmFjZQorCitDT05GSUdfQ1JZUFRPX0hBU0hfSU5GTz15CitDT05GSUdfQ1JZUFRP X0hXPXkKK0NPTkZJR19DUllQVE9fREVWX0FUTUVMX0kyQz1tCitDT05GSUdfQ1JZUFRPX0RFVl9B VE1FTF9FQ0M9bQorQ09ORklHX0NSWVBUT19ERVZfQVRNRUxfU0hBMjA0QT1tCitDT05GSUdfQ1JZ UFRPX0RFVl9OSVRST1g9bQorQ09ORklHX0NSWVBUT19ERVZfTklUUk9YX0NOTjU1WFg9bQorIyBD T05GSUdfQ1JZUFRPX0RFVl9RQVRfREg4OTV4Q0MgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRP X0RFVl9RQVRfQzNYWFggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFVl9RQVRfQzYyWCBp cyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVWX1FBVF80WFhYIGlzIG5vdCBzZXQKKyMgQ09O RklHX0NSWVBUT19ERVZfUUFUX0RIODk1eENDVkYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRP X0RFVl9RQVRfQzNYWFhWRiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVWX1FBVF9DNjJY VkYgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVZfQ0hFTFNJTz1tCitDT05GSUdfQ1JZUFRP X0RFVl9WSVJUSU89bQorQ09ORklHX0NSWVBUT19ERVZfU0FGRVhDRUw9bQorIyBDT05GSUdfQ1JZ UFRPX0RFVl9DQ1JFRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVWX0FNTE9HSUNfR1hM IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVWX0pINzExMD1tCitDT05GSUdfQVNZTU1FVFJJ Q19LRVlfVFlQRT15CitDT05GSUdfQVNZTU1FVFJJQ19QVUJMSUNfS0VZX1NVQlRZUEU9eQorQ09O RklHX1g1MDlfQ0VSVElGSUNBVEVfUEFSU0VSPXkKK0NPTkZJR19QS0NTOF9QUklWQVRFX0tFWV9Q QVJTRVI9bQorQ09ORklHX1BLQ1M3X01FU1NBR0VfUEFSU0VSPXkKKyMgQ09ORklHX1BLQ1M3X1RF U1RfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19TSUdORURfUEVfRklMRV9WRVJJRklDQVRJT049eQor IyBDT05GSUdfRklQU19TSUdOQVRVUkVfU0VMRlRFU1QgaXMgbm90IHNldAorCisjCisjIENlcnRp ZmljYXRlcyBmb3Igc2lnbmF0dXJlIGNoZWNraW5nCisjCitDT05GSUdfU1lTVEVNX1RSVVNURURf S0VZUklORz15CitDT05GSUdfU1lTVEVNX1RSVVNURURfS0VZUz0iIgorIyBDT05GSUdfU1lTVEVN X0VYVFJBX0NFUlRJRklDQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ09OREFSWV9UUlVTVEVE X0tFWVJJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVEVNX0JMQUNLTElTVF9LRVlSSU5HIGlz IG5vdCBzZXQKKyMgZW5kIG9mIENlcnRpZmljYXRlcyBmb3Igc2lnbmF0dXJlIGNoZWNraW5nCisK K0NPTkZJR19CSU5BUllfUFJJTlRGPXkKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05G SUdfUkFJRDZfUFE9bQorQ09ORklHX1JBSUQ2X1BRX0JFTkNITUFSSz15CitDT05GSUdfTElORUFS X1JBTkdFUz15CitDT05GSUdfUEFDS0lORz15CitDT05GSUdfQklUUkVWRVJTRT15CitDT05GSUdf R0VORVJJQ19TVFJOQ1BZX0ZST01fVVNFUj15CitDT05GSUdfR0VORVJJQ19TVFJOTEVOX1VTRVI9 eQorQ09ORklHX0dFTkVSSUNfTkVUX1VUSUxTPXkKK0NPTkZJR19DT1JESUM9bQorIyBDT05GSUdf UFJJTUVfTlVNQkVSUyBpcyBub3Qgc2V0CitDT05GSUdfUkFUSU9OQUw9eQorQ09ORklHX0dFTkVS SUNfUENJX0lPTUFQPXkKKworIworIyBDcnlwdG8gbGlicmFyeSByb3V0aW5lcworIworQ09ORklH X0NSWVBUT19MSUJfVVRJTFM9eQorQ09ORklHX0NSWVBUT19MSUJfQUVTPXkKK0NPTkZJR19DUllQ VE9fTElCX0FSQzQ9bQorQ09ORklHX0NSWVBUT19MSUJfR0YxMjhNVUw9eQorQ09ORklHX0NSWVBU T19MSUJfQkxBS0UyU19HRU5FUklDPXkKK0NPTkZJR19DUllQVE9fTElCX0NIQUNIQV9HRU5FUklD PW0KK0NPTkZJR19DUllQVE9fTElCX0NIQUNIQT1tCitDT05GSUdfQ1JZUFRPX0xJQl9DVVJWRTI1 NTE5X0dFTkVSSUM9bQorQ09ORklHX0NSWVBUT19MSUJfQ1VSVkUyNTUxOT1tCitDT05GSUdfQ1JZ UFRPX0xJQl9ERVM9bQorQ09ORklHX0NSWVBUT19MSUJfUE9MWTEzMDVfUlNJWkU9MQorQ09ORklH X0NSWVBUT19MSUJfUE9MWTEzMDVfR0VORVJJQz1tCitDT05GSUdfQ1JZUFRPX0xJQl9QT0xZMTMw NT1tCitDT05GSUdfQ1JZUFRPX0xJQl9DSEFDSEEyMFBPTFkxMzA1PW0KK0NPTkZJR19DUllQVE9f TElCX1NIQTE9eQorQ09ORklHX0NSWVBUT19MSUJfU0hBMjU2PXkKKyMgZW5kIG9mIENyeXB0byBs aWJyYXJ5IHJvdXRpbmVzCisKK0NPTkZJR19DUkNfQ0NJVFQ9eQorQ09ORklHX0NSQzE2PXkKK0NP TkZJR19DUkNfVDEwRElGPXkKK0NPTkZJR19DUkM2NF9ST0NLU09GVD15CitDT05GSUdfQ1JDX0lU VV9UPW0KK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkMzMl9TRUxGVEVTVCBpcyBub3Qgc2V0 CitDT05GSUdfQ1JDMzJfU0xJQ0VCWTg9eQorIyBDT05GSUdfQ1JDMzJfU0xJQ0VCWTQgaXMgbm90 IHNldAorIyBDT05GSUdfQ1JDMzJfU0FSV0FURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMzMl9C SVQgaXMgbm90IHNldAorQ09ORklHX0NSQzY0PXkKK0NPTkZJR19DUkM0PW0KK0NPTkZJR19DUkM3 PW0KK0NPTkZJR19MSUJDUkMzMkM9bQorQ09ORklHX0NSQzg9eQorQ09ORklHX1hYSEFTSD15CitD T05GSUdfQVVESVRfR0VORVJJQz15CisjIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVCBpcyBub3Qg c2V0CitDT05GSUdfODQyX0NPTVBSRVNTPXkKK0NPTkZJR184NDJfREVDT01QUkVTUz15CitDT05G SUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9bQorQ09ORklHX0xaT19DT01Q UkVTUz15CitDT05GSUdfTFpPX0RFQ09NUFJFU1M9eQorQ09ORklHX0xaNF9DT01QUkVTUz1tCitD T05GSUdfTFo0SENfQ09NUFJFU1M9bQorQ09ORklHX0xaNF9ERUNPTVBSRVNTPXkKK0NPTkZJR19a U1REX0NPTU1PTj15CitDT05GSUdfWlNURF9DT01QUkVTUz15CitDT05GSUdfWlNURF9ERUNPTVBS RVNTPXkKK0NPTkZJR19YWl9ERUM9eQorQ09ORklHX1haX0RFQ19YODY9eQorQ09ORklHX1haX0RF Q19QT1dFUlBDPXkKK0NPTkZJR19YWl9ERUNfSUE2ND15CitDT05GSUdfWFpfREVDX0FSTT15CitD T05GSUdfWFpfREVDX0FSTVRIVU1CPXkKK0NPTkZJR19YWl9ERUNfU1BBUkM9eQorQ09ORklHX1ha X0RFQ19NSUNST0xaTUE9eQorQ09ORklHX1haX0RFQ19CQ0o9eQorIyBDT05GSUdfWFpfREVDX1RF U1QgaXMgbm90IHNldAorQ09ORklHX0RFQ09NUFJFU1NfR1pJUD15CitDT05GSUdfREVDT01QUkVT U19CWklQMj15CitDT05GSUdfREVDT01QUkVTU19MWk1BPXkKK0NPTkZJR19ERUNPTVBSRVNTX1ha PXkKK0NPTkZJR19ERUNPTVBSRVNTX0xaTz15CitDT05GSUdfREVDT01QUkVTU19MWjQ9eQorQ09O RklHX0RFQ09NUFJFU1NfWlNURD15CitDT05GSUdfR0VORVJJQ19BTExPQ0FUT1I9eQorQ09ORklH X1JFRURfU09MT01PTj1tCitDT05GSUdfUkVFRF9TT0xPTU9OX0VOQzg9eQorQ09ORklHX1JFRURf U09MT01PTl9ERUM4PXkKK0NPTkZJR19SRUVEX1NPTE9NT05fREVDMTY9eQorQ09ORklHX0JDSD1t CitDT05GSUdfVEVYVFNFQVJDSD15CitDT05GSUdfVEVYVFNFQVJDSF9LTVA9bQorQ09ORklHX1RF WFRTRUFSQ0hfQk09bQorQ09ORklHX1RFWFRTRUFSQ0hfRlNNPW0KK0NPTkZJR19CVFJFRT15CitD T05GSUdfSU5URVJWQUxfVFJFRT15CitDT05GSUdfSU5URVJWQUxfVFJFRV9TUEFOX0lURVI9eQor Q09ORklHX1hBUlJBWV9NVUxUST15CitDT05GSUdfQVNTT0NJQVRJVkVfQVJSQVk9eQorQ09ORklH X0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0lPUE9SVF9NQVA9 eQorQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0RNQV9PUFM9eQorQ09ORklHX05FRURfRE1BX01B UF9TVEFURT15CitDT05GSUdfQVJDSF9ETUFfQUREUl9UXzY0QklUPXkKK0NPTkZJR19ETUFfREVD TEFSRV9DT0hFUkVOVD15CitDT05GSUdfQVJDSF9IQVNfU0VUVVBfRE1BX09QUz15CitDT05GSUdf QVJDSF9IQVNfU1lOQ19ETUFfRk9SX0RFVklDRT15CitDT05GSUdfQVJDSF9IQVNfU1lOQ19ETUFf Rk9SX0NQVT15CitDT05GSUdfQVJDSF9IQVNfRE1BX1BSRVBfQ09IRVJFTlQ9eQorQ09ORklHX0FS Q0hfRE1BX0RFRkFVTFRfQ09IRVJFTlQ9eQorQ09ORklHX1NXSU9UTEI9eQorIyBDT05GSUdfRE1B X1JFU1RSSUNURURfUE9PTCBpcyBub3Qgc2V0CitDT05GSUdfRE1BX05PTkNPSEVSRU5UX01NQVA9 eQorQ09ORklHX0RNQV9DT0hFUkVOVF9QT09MPXkKK0NPTkZJR19ETUFfRElSRUNUX1JFTUFQPXkK K0NPTkZJR19ETUFfQ01BPXkKK0NPTkZJR19ETUFfUEVSTlVNQV9DTUE9eQorCisjCisjIERlZmF1 bHQgY29udGlndW91cyBtZW1vcnkgYXJlYSBzaXplOgorIworQ09ORklHX0NNQV9TSVpFX01CWVRF Uz0wCitDT05GSUdfQ01BX1NJWkVfU0VMX01CWVRFUz15CisjIENPTkZJR19DTUFfU0laRV9TRUxf UEVSQ0VOVEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DTUFfU0laRV9TRUxfTUlOIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0NNQV9TSVpFX1NFTF9NQVggaXMgbm90IHNldAorQ09ORklHX0NNQV9BTElH Tk1FTlQ9OAorIyBDT05GSUdfRE1BX0FQSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ETUFf TUFQX0JFTkNITUFSSyBpcyBub3Qgc2V0CitDT05GSUdfU0dMX0FMTE9DPXkKK0NPTkZJR19DSEVD S19TSUdOQVRVUkU9eQorIyBDT05GSUdfRk9SQ0VfTlJfQ1BVUyBpcyBub3Qgc2V0CitDT05GSUdf Q1BVX1JNQVA9eQorQ09ORklHX0RRTD15CitDT05GSUdfR0xPQj15CisjIENPTkZJR19HTE9CX1NF TEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19OTEFUVFI9eQorQ09ORklHX0xSVV9DQUNIRT1tCitD T05GSUdfQ0xaX1RBQj15CitDT05GSUdfSVJRX1BPTEw9eQorQ09ORklHX01QSUxJQj15CitDT05G SUdfRElNTElCPXkKK0NPTkZJR19MSUJGRFQ9eQorQ09ORklHX09JRF9SRUdJU1RSWT15CitDT05G SUdfVUNTMl9TVFJJTkc9eQorQ09ORklHX0hBVkVfR0VORVJJQ19WRFNPPXkKK0NPTkZJR19HRU5F UklDX0dFVFRJTUVPRkRBWT15CitDT05GSUdfR0VORVJJQ19WRFNPX1RJTUVfTlM9eQorQ09ORklH X0ZPTlRfU1VQUE9SVD15CitDT05GSUdfRk9OVFM9eQorQ09ORklHX0ZPTlRfOHg4PXkKK0NPTkZJ R19GT05UXzh4MTY9eQorIyBDT05GSUdfRk9OVF82eDExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZP TlRfN3gxNCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1BFQVJMXzh4OCBpcyBub3Qgc2V0Cisj IENPTkZJR19GT05UX0FDT1JOXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX01JTklfNHg2 IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfNngxMCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05U XzEweDE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfU1VOOHgxNiBpcyBub3Qgc2V0CisjIENP TkZJR19GT05UX1NVTjEyeDIyIGlzIG5vdCBzZXQKK0NPTkZJR19GT05UX1RFUjE2eDMyPXkKKyMg Q09ORklHX0ZPTlRfNng4IGlzIG5vdCBzZXQKK0NPTkZJR19TR19QT09MPXkKK0NPTkZJR19BUkNI X0hBU19QTUVNX0FQST15CitDT05GSUdfTUVNUkVHSU9OPXkKK0NPTkZJR19BUkNIX1NUQUNLV0FM Sz15CitDT05GSUdfU1RBQ0tERVBPVD15CitDT05GSUdfU0JJVE1BUD15CitDT05GSUdfUEFSTUFO PW0KK0NPTkZJR19PQkpBR0c9bQorIyBlbmQgb2YgTGlicmFyeSByb3V0aW5lcworCitDT05GSUdf R0VORVJJQ19JT1JFTUFQPXkKK0NPTkZJR19HRU5FUklDX0xJQl9ERVZNRU1fSVNfQUxMT1dFRD15 CitDT05GSUdfUExETUZXPXkKK0NPTkZJR19BU04xX0VOQ09ERVI9bQorQ09ORklHX1BPTFlOT01J QUw9bQorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisKKyMKKyMgcHJpbnRrIGFuZCBkbWVzZyBv cHRpb25zCisjCitDT05GSUdfUFJJTlRLX1RJTUU9eQorIyBDT05GSUdfUFJJTlRLX0NBTExFUiBp cyBub3Qgc2V0CisjIENPTkZJR19TVEFDS1RSQUNFX0JVSUxEX0lEIGlzIG5vdCBzZXQKK0NPTkZJ R19DT05TT0xFX0xPR0xFVkVMX0RFRkFVTFQ9NworQ09ORklHX0NPTlNPTEVfTE9HTEVWRUxfUVVJ RVQ9NAorQ09ORklHX01FU1NBR0VfTE9HTEVWRUxfREVGQVVMVD00CisjIENPTkZJR19CT09UX1BS SU5US19ERUxBWSBpcyBub3Qgc2V0CitDT05GSUdfRFlOQU1JQ19ERUJVRz15CitDT05GSUdfRFlO QU1JQ19ERUJVR19DT1JFPXkKK0NPTkZJR19TWU1CT0xJQ19FUlJOQU1FPXkKK0NPTkZJR19ERUJV R19CVUdWRVJCT1NFPXkKKyMgZW5kIG9mIHByaW50ayBhbmQgZG1lc2cgb3B0aW9ucworCitDT05G SUdfREVCVUdfS0VSTkVMPXkKK0NPTkZJR19ERUJVR19NSVNDPXkKKworIworIyBDb21waWxlLXRp bWUgY2hlY2tzIGFuZCBjb21waWxlciBvcHRpb25zCisjCitDT05GSUdfREVCVUdfSU5GTz15Cisj IENPTkZJR19ERUJVR19JTkZPX05PTkUgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0lORk9fRFdB UkZfVE9PTENIQUlOX0RFRkFVTFQ9eQorIyBDT05GSUdfREVCVUdfSU5GT19EV0FSRjQgaXMgbm90 IHNldAorIyBDT05GSUdfREVCVUdfSU5GT19EV0FSRjUgaXMgbm90IHNldAorIyBDT05GSUdfREVC VUdfSU5GT19SRURVQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPX0NPTVBSRVNTRURf Tk9ORT15CisjIENPTkZJR19ERUJVR19JTkZPX0NPTVBSRVNTRURfWkxJQiBpcyBub3Qgc2V0Cisj IENPTkZJR19ERUJVR19JTkZPX1NQTElUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPX0JU Rj15CitDT05GSUdfUEFIT0xFX0hBU19TUExJVF9CVEY9eQorQ09ORklHX1BBSE9MRV9IQVNfTEFO R19FWENMVURFPXkKK0NPTkZJR19ERUJVR19JTkZPX0JURl9NT0RVTEVTPXkKKyMgQ09ORklHX01P RFVMRV9BTExPV19CVEZfTUlTTUFUQ0ggaXMgbm90IHNldAorIyBDT05GSUdfR0RCX1NDUklQVFMg aXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MjA0OAorQ09ORklHX1NUUklQX0FTTV9TWU1T PXkKKyMgQ09ORklHX1JFQURBQkxFX0FTTSBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0lO U1RBTEwgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1NFQ1RJT05fTUlTTUFUQ0g9eQorQ09ORklH X1NFQ1RJT05fTUlTTUFUQ0hfV0FSTl9PTkxZPXkKK0NPTkZJR19BUkNIX1dBTlRfRlJBTUVfUE9J TlRFUlM9eQorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfVk1MSU5VWF9NQVAgaXMg bm90IHNldAorQ09ORklHX0RFQlVHX0ZPUkNFX1dFQUtfUEVSX0NQVT15CisjIGVuZCBvZiBDb21w aWxlLXRpbWUgY2hlY2tzIGFuZCBjb21waWxlciBvcHRpb25zCisKKyMKKyMgR2VuZXJpYyBLZXJu ZWwgRGVidWdnaW5nIEluc3RydW1lbnRzCisjCitDT05GSUdfTUFHSUNfU1lTUlE9eQorQ09ORklH X01BR0lDX1NZU1JRX0RFRkFVTFRfRU5BQkxFPTB4MQorQ09ORklHX01BR0lDX1NZU1JRX1NFUklB TD15CitDT05GSUdfTUFHSUNfU1lTUlFfU0VSSUFMX1NFUVVFTkNFPSIiCitDT05GSUdfREVCVUdf RlM9eQorQ09ORklHX0RFQlVHX0ZTX0FMTE9XX0FMTD15CisjIENPTkZJR19ERUJVR19GU19ESVNB TExPV19NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GU19BTExPV19OT05FIGlzIG5v dCBzZXQKK0NPTkZJR19IQVZFX0FSQ0hfS0dEQj15CitDT05GSUdfSEFWRV9BUkNIX0tHREJfUVhG RVJfUEtUPXkKK0NPTkZJR19LR0RCPXkKK0NPTkZJR19LR0RCX0hPTk9VUl9CTE9DS0xJU1Q9eQor Q09ORklHX0tHREJfU0VSSUFMX0NPTlNPTEU9eQorIyBDT05GSUdfS0dEQl9URVNUUyBpcyBub3Qg c2V0CitDT05GSUdfS0dEQl9LREI9eQorQ09ORklHX0tEQl9ERUZBVUxUX0VOQUJMRT0weDEKK0NP TkZJR19LREJfS0VZQk9BUkQ9eQorQ09ORklHX0tEQl9DT05USU5VRV9DQVRBU1RST1BISUM9MAor Q09ORklHX0FSQ0hfSEFTX1VCU0FOX1NBTklUSVpFX0FMTD15CisjIENPTkZJR19VQlNBTiBpcyBu b3Qgc2V0CitDT05GSUdfSEFWRV9LQ1NBTl9DT01QSUxFUj15CisjIGVuZCBvZiBHZW5lcmljIEtl cm5lbCBEZWJ1Z2dpbmcgSW5zdHJ1bWVudHMKKworIworIyBOZXR3b3JraW5nIERlYnVnZ2luZwor IworIyBDT05GSUdfTkVUX0RFVl9SRUZDTlRfVFJBQ0tFUiBpcyBub3Qgc2V0CisjIENPTkZJR19O RVRfTlNfUkVGQ05UX1RSQUNLRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTkVUIGlzIG5v dCBzZXQKKyMgZW5kIG9mIE5ldHdvcmtpbmcgRGVidWdnaW5nCisKKyMKKyMgTWVtb3J5IERlYnVn Z2luZworIworQ09ORklHX1BBR0VfRVhURU5TSU9OPXkKKyMgQ09ORklHX0RFQlVHX1BBR0VBTExP QyBpcyBub3Qgc2V0CitDT05GSUdfU0xVQl9ERUJVRz15CisjIENPTkZJR19TTFVCX0RFQlVHX09O IGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFX09XTkVSPXkKKyMgQ09ORklHX1BBR0VfVEFCTEVfQ0hF Q0sgaXMgbm90IHNldAorQ09ORklHX1BBR0VfUE9JU09OSU5HPXkKKyMgQ09ORklHX0RFQlVHX1BB R0VfUkVGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JPREFUQV9URVNUIGlzIG5vdCBzZXQK K0NPTkZJR19BUkNIX0hBU19ERUJVR19XWD15CitDT05GSUdfREVCVUdfV1g9eQorQ09ORklHX0dF TkVSSUNfUFREVU1QPXkKK0NPTkZJR19QVERVTVBfQ09SRT15CisjIENPTkZJR19QVERVTVBfREVC VUdGUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9ERUJVR19LTUVNTEVBSz15CisjIENPTkZJR19E RUJVR19LTUVNTEVBSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NIUklOS0VSX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NU QUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0hFRF9TVEFDS19FTkRfQ0hFQ0s9eQorQ09O RklHX0FSQ0hfSEFTX0RFQlVHX1ZNX1BHVEFCTEU9eQorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90 IHNldAorIyBDT05GSUdfREVCVUdfVk1fUEdUQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9I QVNfREVCVUdfVklSVFVBTD15CisjIENPTkZJR19ERUJVR19WSVJUVUFMIGlzIG5vdCBzZXQKK0NP TkZJR19ERUJVR19NRU1PUllfSU5JVD15CisjIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgaXMg bm90IHNldAorQ09ORklHX0hBVkVfQVJDSF9LQVNBTj15CitDT05GSUdfSEFWRV9BUkNIX0tBU0FO X1ZNQUxMT0M9eQorQ09ORklHX0NDX0hBU19LQVNBTl9HRU5FUklDPXkKK0NPTkZJR19DQ19IQVNf V09SS0lOR19OT1NBTklUSVpFX0FERFJFU1M9eQorIyBDT05GSUdfS0FTQU4gaXMgbm90IHNldAor Q09ORklHX0hBVkVfQVJDSF9LRkVOQ0U9eQorIyBDT05GSUdfS0ZFTkNFIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIE1lbW9yeSBEZWJ1Z2dpbmcKKworIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNl dAorCisjCisjIERlYnVnIE9vcHMsIExvY2t1cHMgYW5kIEhhbmdzCisjCisjIENPTkZJR19QQU5J Q19PTl9PT1BTIGlzIG5vdCBzZXQKK0NPTkZJR19QQU5JQ19PTl9PT1BTX1ZBTFVFPTAKK0NPTkZJ R19QQU5JQ19USU1FT1VUPTAKK0NPTkZJR19MT0NLVVBfREVURUNUT1I9eQorQ09ORklHX1NPRlRM T0NLVVBfREVURUNUT1I9eQorIyBDT05GSUdfQk9PVFBBUkFNX1NPRlRMT0NLVVBfUEFOSUMgaXMg bm90IHNldAorQ09ORklHX0RFVEVDVF9IVU5HX1RBU0s9eQorQ09ORklHX0RFRkFVTFRfSFVOR19U QVNLX1RJTUVPVVQ9MTIwCisjIENPTkZJR19CT09UUEFSQU1fSFVOR19UQVNLX1BBTklDIGlzIG5v dCBzZXQKKyMgQ09ORklHX1dRX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTE9D S1VQIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERlYnVnIE9vcHMsIExvY2t1cHMgYW5kIEhhbmdzCisK KyMKKyMgU2NoZWR1bGVyIERlYnVnZ2luZworIworQ09ORklHX1NDSEVEX0RFQlVHPXkKK0NPTkZJ R19TQ0hFRF9JTkZPPXkKK0NPTkZJR19TQ0hFRFNUQVRTPXkKKyMgZW5kIG9mIFNjaGVkdWxlciBE ZWJ1Z2dpbmcKKworIyBDT05GSUdfREVCVUdfVElNRUtFRVBJTkcgaXMgbm90IHNldAorCisjCisj IExvY2sgRGVidWdnaW5nIChzcGlubG9ja3MsIG11dGV4ZXMsIGV0Yy4uLikKKyMKK0NPTkZJR19M T0NLX0RFQlVHR0lOR19TVVBQT1JUPXkKKyMgQ09ORklHX1BST1ZFX0xPQ0tJTkcgaXMgbm90IHNl dAorIyBDT05GSUdfTE9DS19TVEFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVY RVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorIyBDT05G SUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XV19NVVRFWF9TTE9X UEFUSCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SV1NFTVMgaXMgbm90IHNldAorIyBDT05G SUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19BVE9NSUNfU0xF RVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5v dCBzZXQKKyMgQ09ORklHX0xPQ0tfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dX X01VVEVYX1NFTEZURVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDRl9UT1JUVVJFX1RFU1QgaXMg bm90IHNldAorIyBDT05GSUdfQ1NEX0xPQ0tfV0FJVF9ERUJVRyBpcyBub3Qgc2V0CisjIGVuZCBv ZiBMb2NrIERlYnVnZ2luZyAoc3BpbmxvY2tzLCBtdXRleGVzLCBldGMuLi4pCisKKyMgQ09ORklH X0RFQlVHX0lSUUZMQUdTIGlzIG5vdCBzZXQKK0NPTkZJR19TVEFDS1RSQUNFPXkKKyMgQ09ORklH X1dBUk5fQUxMX1VOU0VFREVEX1JBTkRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LT0JK RUNUIGlzIG5vdCBzZXQKKworIworIyBEZWJ1ZyBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzCisjCisj IENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1BMSVNUIGlzIG5v dCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX05PVElG SUVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19CVUdfT05fREFUQV9DT1JSVVBUSU9OIGlzIG5vdCBz ZXQKKyMgQ09ORklHX0RFQlVHX01BUExFX1RSRUUgaXMgbm90IHNldAorIyBlbmQgb2YgRGVidWcg a2VybmVsIGRhdGEgc3RydWN0dXJlcworCisjIENPTkZJR19ERUJVR19DUkVERU5USUFMUyBpcyBu b3Qgc2V0CisKKyMKKyMgUkNVIERlYnVnZ2luZworIworQ09ORklHX1RPUlRVUkVfVEVTVD1tCisj IENPTkZJR19SQ1VfU0NBTEVfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfUkNVX1RPUlRVUkVfVEVT VD1tCitDT05GSUdfUkNVX1JFRl9TQ0FMRV9URVNUPW0KK0NPTkZJR19SQ1VfQ1BVX1NUQUxMX1RJ TUVPVVQ9NjAKK0NPTkZJR19SQ1VfRVhQX0NQVV9TVEFMTF9USU1FT1VUPTAKKyMgQ09ORklHX1JD VV9DUFVfU1RBTExfQ1BVVElNRSBpcyBub3Qgc2V0CitDT05GSUdfUkNVX1RSQUNFPXkKKyMgQ09O RklHX1JDVV9FUVNfREVCVUcgaXMgbm90IHNldAorIyBlbmQgb2YgUkNVIERlYnVnZ2luZworCisj IENPTkZJR19ERUJVR19XUV9GT1JDRV9SUl9DUFUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0hP VFBMVUdfU1RBVEVfQ09OVFJPTCBpcyBub3Qgc2V0CitDT05GSUdfTEFURU5DWVRPUD15CisjIENP TkZJR19ERUJVR19DR1JPVVBfUkVGIGlzIG5vdCBzZXQKK0NPTkZJR19OT1BfVFJBQ0VSPXkKK0NP TkZJR19IQVZFX1JFVEhPT0s9eQorQ09ORklHX1JFVEhPT0s9eQorQ09ORklHX0hBVkVfRlVOQ1RJ T05fVFJBQ0VSPXkKK0NPTkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15CitDT05GSUdf SEFWRV9EWU5BTUlDX0ZUUkFDRT15CitDT05GSUdfSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX1JF R1M9eQorQ09ORklHX0hBVkVfRlRSQUNFX01DT1VOVF9SRUNPUkQ9eQorQ09ORklHX0hBVkVfU1lT Q0FMTF9UUkFDRVBPSU5UUz15CitDT05GSUdfVFJBQ0VSX01BWF9UUkFDRT15CitDT05GSUdfVFJB Q0VfQ0xPQ0s9eQorQ09ORklHX1JJTkdfQlVGRkVSPXkKK0NPTkZJR19FVkVOVF9UUkFDSU5HPXkK K0NPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVI9eQorQ09ORklHX1JJTkdfQlVGRkVSX0FMTE9X X1NXQVA9eQorQ09ORklHX1RSQUNJTkc9eQorQ09ORklHX0dFTkVSSUNfVFJBQ0VSPXkKK0NPTkZJ R19UUkFDSU5HX1NVUFBPUlQ9eQorQ09ORklHX0ZUUkFDRT15CitDT05GSUdfQk9PVFRJTUVfVFJB Q0lORz15CitDT05GSUdfRlVOQ1RJT05fVFJBQ0VSPXkKK0NPTkZJR19GVU5DVElPTl9HUkFQSF9U UkFDRVI9eQorQ09ORklHX0RZTkFNSUNfRlRSQUNFPXkKK0NPTkZJR19EWU5BTUlDX0ZUUkFDRV9X SVRIX1JFR1M9eQorQ09ORklHX0ZQUk9CRT15CitDT05GSUdfRlVOQ1RJT05fUFJPRklMRVI9eQor Q09ORklHX1NUQUNLX1RSQUNFUj15CisjIENPTkZJR19JUlFTT0ZGX1RSQUNFUiBpcyBub3Qgc2V0 CitDT05GSUdfU0NIRURfVFJBQ0VSPXkKK0NPTkZJR19IV0xBVF9UUkFDRVI9eQorQ09ORklHX09T Tk9JU0VfVFJBQ0VSPXkKK0NPTkZJR19USU1FUkxBVF9UUkFDRVI9eQorQ09ORklHX0ZUUkFDRV9T WVNDQUxMUz15CitDT05GSUdfVFJBQ0VSX1NOQVBTSE9UPXkKK0NPTkZJR19UUkFDRVJfU05BUFNI T1RfUEVSX0NQVV9TV0FQPXkKK0NPTkZJR19CUkFOQ0hfUFJPRklMRV9OT05FPXkKKyMgQ09ORklH X1BST0ZJTEVfQU5OT1RBVEVEX0JSQU5DSEVTIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lP X1RSQUNFPXkKK0NPTkZJR19LUFJPQkVfRVZFTlRTPXkKKyMgQ09ORklHX0tQUk9CRV9FVkVOVFNf T05fTk9UUkFDRSBpcyBub3Qgc2V0CitDT05GSUdfVVBST0JFX0VWRU5UUz15CitDT05GSUdfQlBG X0VWRU5UUz15CitDT05GSUdfRFlOQU1JQ19FVkVOVFM9eQorQ09ORklHX1BST0JFX0VWRU5UUz15 CitDT05GSUdfQlBGX0tQUk9CRV9PVkVSUklERT15CitDT05GSUdfRlRSQUNFX01DT1VOVF9SRUNP UkQ9eQorQ09ORklHX0ZUUkFDRV9NQ09VTlRfVVNFX1JFQ09SRE1DT1VOVD15CitDT05GSUdfU1lO VEhfRVZFTlRTPXkKK0NPTkZJR19VU0VSX0VWRU5UUz15CisjIENPTkZJR19UUkFDRV9FVkVOVF9J TkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVFJBQ0VQT0lOVF9CRU5DSE1BUksgaXMgbm90IHNl dAorQ09ORklHX1JJTkdfQlVGRkVSX0JFTkNITUFSSz1tCisjIENPTkZJR19UUkFDRV9FVkFMX01B UF9GSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZUUkFDRV9SRUNPUkRfUkVDVVJTSU9OIGlzIG5v dCBzZXQKKyMgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdf UklOR19CVUZGRVJfU1RBUlRVUF9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JJTkdfQlVGRkVS X1ZBTElEQVRFX1RJTUVfREVMVEFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BSRUVNUFRJUlFfREVM QVlfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5USF9FVkVOVF9HRU5fVEVTVCBpcyBub3Qg c2V0CisjIENPTkZJR19LUFJPQkVfRVZFTlRfR0VOX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdf UlYgaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfU1RSSUNU X0RFVk1FTT15CitDT05GSUdfSU9fU1RSSUNUX0RFVk1FTT15CisKKyMKKyMgcmlzY3YgRGVidWdn aW5nCisjCisjIGVuZCBvZiByaXNjdiBEZWJ1Z2dpbmcKKworIworIyBLZXJuZWwgVGVzdGluZyBh bmQgQ292ZXJhZ2UKKyMKKyMgQ09ORklHX0tVTklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PVElG SUVSX0VSUk9SX0lOSkVDVElPTiBpcyBub3Qgc2V0CitDT05GSUdfRlVOQ1RJT05fRVJST1JfSU5K RUNUSU9OPXkKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQVJD SF9IQVNfS0NPVj15CitDT05GSUdfQ0NfSEFTX1NBTkNPVl9UUkFDRV9QQz15CisjIENPTkZJR19L Q09WIGlzIG5vdCBzZXQKK0NPTkZJR19SVU5USU1FX1RFU1RJTkdfTUVOVT15CisjIENPTkZJR19U RVNUX0RIUlkgaXMgbm90IHNldAorIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAorIyBDT05GSUdf VEVTVF9NSU5fSEVBUCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0RJVjY0IGlzIG5vdCBzZXQK KyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9S RUZfVFJBQ0tFUiBpcyBub3Qgc2V0CisjIENPTkZJR19SQlRSRUVfVEVTVCBpcyBub3Qgc2V0Cisj IENPTkZJR19SRUVEX1NPTE9NT05fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlRFUlZBTF9U UkVFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfUEVSQ1BVX1RFU1QgaXMgbm90IHNldAorIyBD T05GSUdfQVRPTUlDNjRfU0VMRlRFU1QgaXMgbm90IHNldAorQ09ORklHX0FTWU5DX1JBSUQ2X1RF U1Q9bQorIyBDT05GSUdfVEVTVF9IRVhEVU1QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NUUklOR19T RUxGVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1NUUklOR19IRUxQRVJTIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1RFU1RfS1NUUlRPWCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1BSSU5U RiBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1NDQU5GIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RF U1RfQklUTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfVVVJRCBpcyBub3Qgc2V0CisjIENP TkZJR19URVNUX1hBUlJBWSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX01BUExFX1RSRUUgaXMg bm90IHNldAorIyBDT05GSUdfVEVTVF9SSEFTSFRBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RF U1RfSURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfUEFSTUFOIGlzIG5vdCBzZXQKKyMgQ09O RklHX1RFU1RfTEtNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfQklUT1BTIGlzIG5vdCBzZXQK KyMgQ09ORklHX1RFU1RfVk1BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1VTRVJfQ09Q WSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0JQRiBpcyBub3Qgc2V0CisjIENPTkZJR19URVNU X0JMQUNLSE9MRV9ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRklORF9CSVRfQkVOQ0hNQVJLIGlz IG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfRklSTVdBUkUgaXMgbm90IHNldAorIyBDT05GSUdfVEVT VF9TWVNDVEwgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9VREVMQVkgaXMgbm90IHNldAorIyBD T05GSUdfVEVTVF9TVEFUSUNfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0RZTkFNSUNf REVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9LTU9EIGlzIG5vdCBzZXQKKyMgQ09ORklH X1RFU1RfTUVNQ0FUX1AgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9PQkpBR0cgaXMgbm90IHNl dAorIyBDT05GSUdfVEVTVF9NRU1JTklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfRlJFRV9Q QUdFUyBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9VU0VfTUVNVEVTVD15CitDT05GSUdfTUVNVEVT VD15CisjIGVuZCBvZiBLZXJuZWwgVGVzdGluZyBhbmQgQ292ZXJhZ2UKKworIworIyBSdXN0IGhh Y2tpbmcKKyMKKyMgZW5kIG9mIFJ1c3QgaGFja2luZworIyBlbmQgb2YgS2VybmVsIGhhY2tpbmcK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvZmlsZXMvcmlzY3YtZG90Y29uZmlnLWN1c3Rv bS5vbGQgYi9zcmNwa2dzL2xpbnV4Ni40L2ZpbGVzL3Jpc2N2LWRvdGNvbmZpZy1jdXN0b20ub2xk Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmMzYTNhNWJiODliNjgK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L2ZpbGVzL3Jpc2N2LWRvdGNvbmZp Zy1jdXN0b20ub2xkCkBAIC0wLDAgKzEsMjI1IEBACitDT05GSUdfV0VSUk9SPXkKK0NPTkZJR19T WVNWSVBDPXkKKyMgQ09ORklHX0NST1NTX01FTU9SWV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklH X05PX0haX0lETEU9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfUFNJPXkKKyMg Q09ORklHX0NQVV9JU09MQVRJT04gaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJ R19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19DR1JPVVBTPXkKK0NPTkZJR19DR1JPVVBfU0NIRUQ9 eQorQ09ORklHX0NHUk9VUF9QSURTPXkKK0NPTkZJR19DR1JPVVBfQ1BVQUNDVD15CitDT05GSUdf TkFNRVNQQUNFUz15CitDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX1JEX0daSVA9eQor IyBDT05GSUdfUkRfQlpJUDIgaXMgbm90IHNldAorIyBDT05GSUdfUkRfTFpNQSBpcyBub3Qgc2V0 CisjIENPTkZJR19SRF9YWiBpcyBub3Qgc2V0CisjIENPTkZJR19SRF9MWk8gaXMgbm90IHNldAor IyBDT05GSUdfUkRfTFo0IGlzIG5vdCBzZXQKK0NPTkZJR19FWFBFUlQ9eQorIyBDT05GSUdfU1lT RlNfU1lTQ0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS0NNUD15CitDT05GSUdfUEVSRl9FVkVOVFM9 eQorQ09ORklHX0FSQ0hfU1RBUkZJVkU9eQorQ09ORklHX1NPQ19TVEFSRklWRT15CitDT05GSUdf RVJSQVRBX1NJRklWRT15CitDT05GSUdfU01QPXkKKyMgQ09ORklHX1JJU0NWX0lTQV9TVlBCTVQg aXMgbm90IHNldAorIyBDT05GSUdfQ09NUEFUIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfSURMRT15 CitDT05GSUdfUklTQ1ZfU0JJX0NQVUlETEU9eQorQ09ORklHX0pVTVBfTEFCRUw9eQorIyBDT05G SUdfU1RBQ0tQUk9URUNUT1IgaXMgbm90IHNldAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01P RFVMRV9VTkxPQUQ9eQorQ09ORklHX01PRFVMRV9DT01QUkVTU19aU1REPXkKKyMgQ09ORklHX0JM T0NLX0xFR0FDWV9BVVRPTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX1dCVD15CisjIENPTkZJ R19CTEtfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15Cisj IENPTkZJR19NUV9JT1NDSEVEX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01RX0lPU0NI RURfS1lCRVIgaXMgbm90IHNldAorQ09ORklHX0lPU0NIRURfQkZRPXkKK0NPTkZJR19LU009eQor IyBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgaXMgbm90IHNldAorQ09ORklHX05FVD15CitDT05G SUdfUEFDS0VUPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9BRFZB TkNFRF9ST1VURVI9eQorQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15CitDT05GSUdfSU5FVF9E SUFHPW0KKyMgQ09ORklHX0lQVjZfU0lUIGlzIG5vdCBzZXQKK0NPTkZJR19JUFY2X01VTFRJUExF X1RBQkxFUz15CisjIENPTkZJR19XSVJFTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19FVEhUT09M X05FVExJTksgaXMgbm90IHNldAorQ09ORklHX0RFVlRNUEZTPXkKK0NPTkZJR19ERVZUTVBGU19N T1VOVD15CisjIENPTkZJR19TVEFOREFMT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BSRVZFTlRf RklSTVdBUkVfQlVJTEQgaXMgbm90IHNldAorIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQK K0NPTkZJR19FRklfRElTQUJMRV9SVU5USU1FPXkKK0NPTkZJR19aUkFNPXkKK0NPTkZJR19aUkFN X01FTU9SWV9UUkFDS0lORz15CitDT05GSUdfQkxLX0RFVl9MT09QPXkKK0NPTkZJR19CTEtfREVW X0xPT1BfTUlOX0NPVU5UPTEKK0NPTkZJR19ORVRERVZJQ0VTPXkKK0NPTkZJR19TVE1NQUNfRVRI PXkKK0NPTkZJR19EV01BQ19EV0NfUU9TX0VUSD15CisjIENPTkZJR19EV01BQ19HRU5FUklDIGlz IG5vdCBzZXQKK0NPTkZJR19EV01BQ19TVEFSRklWRT15CitDT05GSUdfTUlDUk9DSElQX1BIWT15 CitDT05GSUdfTU9UT1JDT01NX1BIWT15CisjIENPTkZJR19XTEFOIGlzIG5vdCBzZXQKKyMgQ09O RklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5v dCBzZXQKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZUIGlzIG5vdCBzZXQK KyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xESVNDX0FVVE9MT0FE IGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MD15CisjIENPTkZJR19TRVJJQUxfODI1MF9E RVBSRUNBVEVEX09QVElPTlMgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMXzgyNTBfMTY1NTBB X1ZBUklBTlRTIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKK0NPTkZJ R19TRVJJQUxfODI1MF9EVz15CitDT05GSUdfU0VSSUFMX09GX1BMQVRGT1JNPXkKKyMgQ09ORklH X0RFVk1FTSBpcyBub3Qgc2V0CisjIENPTkZJR19SQU5ET01fVFJVU1RfQk9PVExPQURFUiBpcyBu b3Qgc2V0CitDT05GSUdfSTJDPXkKKyMgQ09ORklHX0kyQ19DT01QQVQgaXMgbm90IHNldAorQ09O RklHX0kyQ19DSEFSREVWPXkKKyMgQ09ORklHX0kyQ19IRUxQRVJfQVVUTyBpcyBub3Qgc2V0CitD T05GSUdfSTJDX0RFU0lHTldBUkVfUExBVEZPUk09eQorIyBDT05GSUdfUFRQXzE1ODhfQ0xPQ0sg aXMgbm90IHNldAorQ09ORklHX1BJTkNUUkxfU1RBUkZJVkVfSkg3MTEwPXkKK0NPTkZJR19HUElP TElCX0ZBU1RQQVRIX0xJTUlUPTEyOAorQ09ORklHX0dQSU9fU1lTRlM9eQorQ09ORklHX1BPV0VS X1JFU0VUPXkKK0NPTkZJR19QT1dFUl9SRVNFVF9HUElPX1JFU1RBUlQ9eQorQ09ORklHX1NFTlNP UlNfU0ZDVEVNUD15CisjIENPTkZJR19ISUQgaXMgbm90IHNldAorQ09ORklHX01NQz15CisjIENP TkZJR19QV1JTRVFfRU1NQyBpcyBub3Qgc2V0CisjIENPTkZJR19QV1JTRVFfU0lNUExFIGlzIG5v dCBzZXQKK0NPTkZJR19NTUNfRFc9eQorIyBDT05GSUdfVklSVElPX01FTlUgaXMgbm90IHNldAor IyBDT05GSUdfVkhPU1RfTUVOVSBpcyBub3Qgc2V0CisjIENPTkZJR19JT01NVV9TVVBQT1JUIGlz IG5vdCBzZXQKK0NPTkZJR19CVFJGU19GUz15CitDT05GSUdfQlRSRlNfRlNfUE9TSVhfQUNMPXkK KyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorQ09ORklHX0ZBTk9USUZZPXkKK0NPTkZJR19B VVRPRlNfRlM9eQorQ09ORklHX1ZGQVRfRlM9eQorQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNF VD0iaXNvODg1OS0xNSIKK0NPTkZJR19GQVRfREVGQVVMVF9VVEY4PXkKK0NPTkZJR19QUk9DX0tD T1JFPXkKK0NPTkZJR19QUk9DX0NISUxEUkVOPXkKK0NPTkZJR19UTVBGUz15CitDT05GSUdfVE1Q RlNfUE9TSVhfQUNMPXkKK0NPTkZJR19FRklWQVJfRlM9eQorIyBDT05GSUdfTUlTQ19GSUxFU1lT VEVNUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXQK K0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xNSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3 PXkKK0NPTkZJR19OTFNfSVNPODg1OV8xNT15CitDT05GSUdfTFNNPSIiCitDT05GSUdfQ1JZUFRP X1pTVEQ9eQorIyBDT05GSUdfUkFJRDZfUFFfQkVOQ0hNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklH X0RFQlVHX01JU0MgaXMgbm90IHNldAorQ09ORklHX1NUUklQX0FTTV9TWU1TPXkKK0NPTkZJR19E RUJVR19TRUNUSU9OX01JU01BVENIPXkKKyMgQ09ORklHX1NFQ1RJT05fTUlTTUFUQ0hfV0FSTl9P TkxZIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19GUz15CisjIENPTkZJR19TTFVCX0RFQlVHIGlz IG5vdCBzZXQKK0NPTkZJR19QQUdFX1RBQkxFX0NIRUNLPXkKK0NPTkZJR19ERUJVR19ST0RBVEFf VEVTVD15CitDT05GSUdfREVCVUdfV1g9eQorQ09ORklHX1NPRlRMT0NLVVBfREVURUNUT1I9eQor Q09ORklHX1dRX1dBVENIRE9HPXkKKyMgQ09ORklHX1NDSEVEX0RFQlVHIGlzIG5vdCBzZXQKK0NP TkZJR19TVEFDS1RSQUNFPXkKK0NPTkZJR19SQ1VfQ1BVX1NUQUxMX1RJTUVPVVQ9NjAKKyMgQ09O RklHX1JDVV9UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19GVFJBQ0UgaXMgbm90IHNldAorIyBD T05GSUdfUlVOVElNRV9URVNUSU5HX01FTlUgaXMgbm90IHNldAorQ09ORklHX0VYVDRfRlM9eQor Q09ORklHX0NQVUZSRVFfRFRfUExBVERFVj15CitDT05GSUdfQ1BVRlJFUV9EVD15CitDT05GSUdf Q1BVX0ZSRVE9eQorQ09ORklHX0hJQkVSTkFUSU9OPXkKK0NPTkZJR19BUkNIX0hJQkVSTkFUSU9O X1BPU1NJQkxFPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19QQ0lFX1NUQVJGSVZFPXkKK0NPTkZJ R19QQ0lfTVNJPXkKK0NPTkZJR19QQ0k9eQorQ09ORklHX1VTQl9DRE5TM19TVEFSRklWRT15CitD T05GSUdfUEhZX1NUQVJGSVZFX0pINzExMF9QQ0lFPXkKK0NPTkZJR19QSFlfU1RBUkZJVkVfSkg3 MTEwX1VTQj15CitDT05GSUdfVVNCX1hIQ0lfSENEPXkKK0NPTkZJR19VU0JfRUhDSV9IQ0Q9eQor Q09ORklHX1VTQl9FSENJX0hDRF9QTEFURk9STT15CitDT05GSUdfVVNCX09IQ0lfSENEPXkKK0NP TkZJR19VU0JfT0hDSV9IQ0RfUExBVEZPUk09eQorQ09ORklHX1NDU0k9eQorQ09ORklHX1VTQl9T VE9SQUdFPXkKK0NPTkZJR19VU0JfVUFTPXkKK0NPTkZJR19VU0JfQ0ROUzNfR0FER0VUPXkKK0NP TkZJR19VU0JfQ0ROUzNfSE9TVD15CitDT05GSUdfVVNCX0dBREdFVD15CitDT05GSUdfVVNCX0NP TkZJR0ZTPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9GUz15CitDT05GSUdfVVNCX0NETlNfU1VQ UE9SVD15CitDT05GSUdfVVNCX0NETlMzPXkKK0NPTkZJR19VU0I9eQorQ09ORklHX1VTQl9TVVBQ T1JUPXkKK0NPTkZJR19WSURFT19TVEFSRklWRV9DQU1TUz15CitDT05GSUdfVklERU9fQ0FERU5D RV9DU0kyUlg9eQorQ09ORklHX1ZJREVPX0RFVj15CitDT05GSUdfVjRMX1BMQVRGT1JNX0RSSVZF UlM9eQorQ09ORklHX01FRElBX1BMQVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX01FRElBX1BMQVRG T1JNX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX1NVUFBPUlQ9eQorQ09ORklHX1BIWV9TVEFSRklW RV9EUEhZX1JYPXkKK0NPTkZJR19DUllQVE9fREVWX0pINzExMD15CitDT05GSUdfQ1JZUFRPX0hX PXkKK0NPTkZJR19DUllQVE89eQorQ09ORklHX1NORF9TT0NfSkg3MTEwX1RETT15CitDT05GSUdf U05EX1NPQ19TVEFSRklWRT15CitDT05GSUdfU05EX1NJTVBMRV9DQVJEPXkKK0NPTkZJR19TTkRf U09DPXkKK0NPTkZJR19TTkQ9eQorQ09ORklHX1NPVU5EPXkKK0NPTkZJR19EV19BWElfRE1BQz15 CitDT05GSUdfRE1BREVWSUNFUz15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19QV01fU1RB UkZJVkVfUFRDPXkKK0NPTkZJR19QV009eQorQ09ORklHX1NUQVJGSVZFX1RJTUVSPXkKK0NPTkZJ R19TRUNUSU9OX01JU01BVENIX1dBUk5fT05MWT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5U Uz15CitDT05GSUdfU1RBUkZJVkVfV0FUQ0hET0c9eQorQ09ORklHX1dBVENIRE9HPXkKK0NPTkZJ R19IV19SQU5ET01fSkg3MTEwPXkKK0NPTkZJR19IV19SQU5ET009eQorQ09ORklHX1NUTU1BQ19Q TEFURk9STT15CitDT05GSUdfU1BJX0NBREVOQ0VfUVVBRFNQST15CitDT05GSUdfU1BJX01BU1RF Uj15CitDT05GSUdfU1BJPXkKK0NPTkZJR19NTUNfRFdfU1RBUkZJVkU9eQorQ09ORklHX0NMS19T VEFSRklWRV9KSDcxMTBfUExMPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX1ZPVVQ9eQor Q09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfSVNQPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3 MTEwX1NURz15CitDT05GSUdfSkg3MVhYX1BNVT15CitDT05GSUdfUE09eQorQ09ORklHX1BJTkNU UkxfU1RBUkZJVkVfSkg3MTEwX0FPTj15CitDT05GSUdfUElOQ1RSTF9TVEFSRklWRV9KSDcxMTBf U1lTPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX0FPTj15CitDT05GSUdfQ0xLX1NUQVJG SVZFX0pINzExMF9TWVM9eQorQ09ORklHX1NJRklWRV9DQ0FDSEU9eQorQ09ORklHX0NMSU5UX1RJ TUVSPXkKK0NPTkZJR19TSUZJVkVfUExJQz15CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40 L2ZpbGVzL3Jpc2N2LWRvdGNvbmZpZy5vbGQgYi9zcmNwa2dzL2xpbnV4Ni40L2ZpbGVzL3Jpc2N2 LWRvdGNvbmZpZy5vbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u NTNmZTAwNDQxMjcyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvZmlsZXMv cmlzY3YtZG90Y29uZmlnLm9sZApAQCAtMCwwICsxLDEwNjU3IEBACisjCisjIEF1dG9tYXRpY2Fs bHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgorIyBMaW51eC9yaXNjdiA2LjQuMC1yYzQg S2VybmVsIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19DQ19WRVJTSU9OX1RFWFQ9InJpc2N2NjQt bGludXgtbXVzbC1nY2MgKEdDQykgMTIuMi4wIgorQ09ORklHX0NDX0lTX0dDQz15CitDT05GSUdf R0NDX1ZFUlNJT049MTIwMjAwCitDT05GSUdfQ0xBTkdfVkVSU0lPTj0wCitDT05GSUdfQVNfSVNf R05VPXkKK0NPTkZJR19BU19WRVJTSU9OPTIzOTAwCitDT05GSUdfTERfSVNfQkZEPXkKK0NPTkZJ R19MRF9WRVJTSU9OPTIzOTAwCitDT05GSUdfTExEX1ZFUlNJT049MAorQ09ORklHX0NDX0NBTl9M SU5LPXkKK0NPTkZJR19DQ19DQU5fTElOS19TVEFUSUM9eQorQ09ORklHX0NDX0hBU19BU01fR09U T19PVVRQVVQ9eQorQ09ORklHX0NDX0hBU19BU01fR09UT19USUVEX09VVFBVVD15CitDT05GSUdf Q0NfSEFTX0FTTV9JTkxJTkU9eQorQ09ORklHX0NDX0hBU19OT19QUk9GSUxFX0ZOX0FUVFI9eQor Q09ORklHX1BBSE9MRV9WRVJTSU9OPTEyNQorQ09ORklHX0lSUV9XT1JLPXkKK0NPTkZJR19CVUlM RFRJTUVfVEFCTEVfU09SVD15CitDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSz15CisKKyMKKyMg R2VuZXJhbCBzZXR1cAorIworQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorIyBDT05GSUdf Q09NUElMRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dFUlJPUiBpcyBub3Qgc2V0CitDT05G SUdfTE9DQUxWRVJTSU9OPSJfMSIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBz ZXQKK0NPTkZJR19CVUlMRF9TQUxUPSIiCitDT05GSUdfREVGQVVMVF9JTklUPSIiCitDT05GSUdf REVGQVVMVF9IT1NUTkFNRT0iKG5vbmUpIgorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJ UENfU1lTQ1RMPXkKK0NPTkZJR19TWVNWSVBDX0NPTVBBVD15CitDT05GSUdfUE9TSVhfTVFVRVVF PXkKK0NPTkZJR19QT1NJWF9NUVVFVUVfU1lTQ1RMPXkKK0NPTkZJR19XQVRDSF9RVUVVRT15CitD T05GSUdfQ1JPU1NfTUVNT1JZX0FUVEFDSD15CisjIENPTkZJR19VU0VMSUIgaXMgbm90IHNldAor Q09ORklHX0FVRElUPXkKK0NPTkZJR19IQVZFX0FSQ0hfQVVESVRTWVNDQUxMPXkKK0NPTkZJR19B VURJVFNZU0NBTEw9eQorCisjCisjIElSUSBzdWJzeXN0ZW0KKyMKK0NPTkZJR19HRU5FUklDX0lS UV9TSE9XPXkKK0NPTkZJR19HRU5FUklDX0lSUV9TSE9XX0xFVkVMPXkKK0NPTkZJR19HRU5FUklD X0lSUV9FRkZFQ1RJVkVfQUZGX01BU0s9eQorQ09ORklHX0dFTkVSSUNfSVJRX01JR1JBVElPTj15 CitDT05GSUdfR0VORVJJQ19JUlFfSU5KRUNUSU9OPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNF TkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX0NISVA9eQorQ09ORklHX0lSUV9ET01BSU49eQorQ09O RklHX0lSUV9TSU09eQorQ09ORklHX0lSUV9ET01BSU5fSElFUkFSQ0hZPXkKK0NPTkZJR19HRU5F UklDX0lSUV9JUEk9eQorQ09ORklHX0dFTkVSSUNfSVJRX0lQSV9NVVg9eQorQ09ORklHX0dFTkVS SUNfTVNJX0lSUT15CitDT05GSUdfSVJRX0ZPUkNFRF9USFJFQURJTkc9eQorQ09ORklHX1NQQVJT RV9JUlE9eQorIyBDT05GSUdfR0VORVJJQ19JUlFfREVCVUdGUyBpcyBub3Qgc2V0CisjIGVuZCBv ZiBJUlEgc3Vic3lzdGVtCisKK0NPTkZJR19HRU5FUklDX0lSUV9NVUxUSV9IQU5ETEVSPXkKK0NP TkZJR19HRU5FUklDX1RJTUVfVlNZU0NBTEw9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9 eQorQ09ORklHX0FSQ0hfSEFTX1RJQ0tfQlJPQURDQVNUPXkKK0NPTkZJR19HRU5FUklDX0NMT0NL RVZFTlRTX0JST0FEQ0FTVD15CitDT05GSUdfSEFWRV9QT1NJWF9DUFVfVElNRVJTX1RBU0tfV09S Sz15CitDT05GSUdfUE9TSVhfQ1BVX1RJTUVSU19UQVNLX1dPUks9eQorQ09ORklHX0NPTlRFWFRf VFJBQ0tJTkc9eQorQ09ORklHX0NPTlRFWFRfVFJBQ0tJTkdfSURMRT15CisKKyMKKyMgVGltZXJz IHN1YnN5c3RlbQorIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFpfQ09NTU9O PXkKKyMgQ09ORklHX0haX1BFUklPRElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haX0lETEUg aXMgbm90IHNldAorQ09ORklHX05PX0haX0ZVTEw9eQorQ09ORklHX0NPTlRFWFRfVFJBQ0tJTkdf VVNFUj15CitDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19VU0VSX0ZPUkNFPXkKK0NPTkZJR19OT19I Wj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKKyMgZW5kIG9mIFRpbWVycyBzdWJzeXN0ZW0K KworQ09ORklHX0JQRj15CitDT05GSUdfSEFWRV9FQlBGX0pJVD15CisKKyMKKyMgQlBGIHN1YnN5 c3RlbQorIworQ09ORklHX0JQRl9TWVNDQUxMPXkKK0NPTkZJR19CUEZfSklUPXkKK0NPTkZJR19C UEZfSklUX0FMV0FZU19PTj15CitDT05GSUdfQlBGX0pJVF9ERUZBVUxUX09OPXkKK0NPTkZJR19C UEZfVU5QUklWX0RFRkFVTFRfT0ZGPXkKK0NPTkZJR19VU0VSTU9ERV9EUklWRVI9eQorIyBDT05G SUdfQlBGX1BSRUxPQUQgaXMgbm90IHNldAorQ09ORklHX0JQRl9MU009eQorIyBlbmQgb2YgQlBG IHN1YnN5c3RlbQorCitDT05GSUdfUFJFRU1QVF9WT0xVTlRBUllfQlVJTEQ9eQorIyBDT05GSUdf UFJFRU1QVF9OT05FIGlzIG5vdCBzZXQKK0NPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWT15CisjIENP TkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKKworIworIyBDUFUvVGFzayB0aW1lIGFuZCBzdGF0cyBh Y2NvdW50aW5nCisjCitDT05GSUdfVklSVF9DUFVfQUNDT1VOVElORz15CitDT05GSUdfVklSVF9D UFVfQUNDT1VOVElOR19HRU49eQorIyBDT05GSUdfSVJRX1RJTUVfQUNDT1VOVElORyBpcyBub3Qg c2V0CitDT05GSUdfQlNEX1BST0NFU1NfQUNDVD15CitDT05GSUdfQlNEX1BST0NFU1NfQUNDVF9W Mz15CitDT05GSUdfVEFTS1NUQVRTPXkKK0NPTkZJR19UQVNLX0RFTEFZX0FDQ1Q9eQorQ09ORklH X1RBU0tfWEFDQ1Q9eQorQ09ORklHX1RBU0tfSU9fQUNDT1VOVElORz15CitDT05GSUdfUFNJPXkK K0NPTkZJR19QU0lfREVGQVVMVF9ESVNBQkxFRD15CisjIGVuZCBvZiBDUFUvVGFzayB0aW1lIGFu ZCBzdGF0cyBhY2NvdW50aW5nCisKK0NPTkZJR19DUFVfSVNPTEFUSU9OPXkKKworIworIyBSQ1Ug U3Vic3lzdGVtCisjCitDT05GSUdfVFJFRV9SQ1U9eQorIyBDT05GSUdfUkNVX0VYUEVSVCBpcyBu b3Qgc2V0CitDT05GSUdfVFJFRV9TUkNVPXkKK0NPTkZJR19UQVNLU19SQ1VfR0VORVJJQz15CitD T05GSUdfVEFTS1NfUlVERV9SQ1U9eQorQ09ORklHX1RBU0tTX1RSQUNFX1JDVT15CitDT05GSUdf UkNVX1NUQUxMX0NPTU1PTj15CitDT05GSUdfUkNVX05FRURfU0VHQ0JMSVNUPXkKK0NPTkZJR19S Q1VfTk9DQl9DUFU9eQorIyBDT05GSUdfUkNVX05PQ0JfQ1BVX0RFRkFVTFRfQUxMIGlzIG5vdCBz ZXQKK0NPTkZJR19SQ1VfTEFaWT15CisjIGVuZCBvZiBSQ1UgU3Vic3lzdGVtCisKK0NPTkZJR19J S0NPTkZJRz15CitDT05GSUdfSUtDT05GSUdfUFJPQz15CitDT05GSUdfSUtIRUFERVJTPW0KK0NP TkZJR19MT0dfQlVGX1NISUZUPTE4CitDT05GSUdfTE9HX0NQVV9NQVhfQlVGX1NISUZUPTEyCisj IENPTkZJR19QUklOVEtfSU5ERVggaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfU0NIRURfQ0xP Q0s9eQorCisjCisjIFNjaGVkdWxlciBmZWF0dXJlcworIworIyBDT05GSUdfVUNMQU1QX1RBU0sg aXMgbm90IHNldAorIyBlbmQgb2YgU2NoZWR1bGVyIGZlYXR1cmVzCisKK0NPTkZJR19BUkNIX1NV UFBPUlRTX05VTUFfQkFMQU5DSU5HPXkKK0NPTkZJR19DQ19IQVNfSU5UMTI4PXkKK0NPTkZJR19D Q19JTVBMSUNJVF9GQUxMVEhST1VHSD0iLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD01IgorQ09ORklH X0dDQzExX05PX0FSUkFZX0JPVU5EUz15CitDT05GSUdfQ0NfTk9fQVJSQVlfQk9VTkRTPXkKK0NP TkZJR19BUkNIX1NVUFBPUlRTX0lOVDEyOD15CitDT05GSUdfTlVNQV9CQUxBTkNJTkc9eQorQ09O RklHX05VTUFfQkFMQU5DSU5HX0RFRkFVTFRfRU5BQkxFRD15CitDT05GSUdfQ0dST1VQUz15CitD T05GSUdfUEFHRV9DT1VOVEVSPXkKKyMgQ09ORklHX0NHUk9VUF9GQVZPUl9EWU5NT0RTIGlzIG5v dCBzZXQKK0NPTkZJR19NRU1DRz15CitDT05GSUdfTUVNQ0dfS01FTT15CitDT05GSUdfQkxLX0NH Uk9VUD15CitDT05GSUdfQ0dST1VQX1dSSVRFQkFDSz15CitDT05GSUdfQ0dST1VQX1NDSEVEPXkK K0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19DRlNfQkFORFdJRFRIPXkKK0NPTkZJ R19SVF9HUk9VUF9TQ0hFRD15CitDT05GSUdfU0NIRURfTU1fQ0lEPXkKK0NPTkZJR19DR1JPVVBf UElEUz15CitDT05GSUdfQ0dST1VQX1JETUE9eQorQ09ORklHX0NHUk9VUF9GUkVFWkVSPXkKK0NP TkZJR19DR1JPVVBfSFVHRVRMQj15CitDT05GSUdfQ1BVU0VUUz15CitDT05GSUdfUFJPQ19QSURf Q1BVU0VUPXkKK0NPTkZJR19DR1JPVVBfREVWSUNFPXkKK0NPTkZJR19DR1JPVVBfQ1BVQUNDVD15 CitDT05GSUdfQ0dST1VQX1BFUkY9eQorQ09ORklHX0NHUk9VUF9CUEY9eQorQ09ORklHX0NHUk9V UF9NSVNDPXkKKyMgQ09ORklHX0NHUk9VUF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU09DS19D R1JPVVBfREFUQT15CitDT05GSUdfTkFNRVNQQUNFUz15CitDT05GSUdfVVRTX05TPXkKK0NPTkZJ R19USU1FX05TPXkKK0NPTkZJR19JUENfTlM9eQorQ09ORklHX1VTRVJfTlM9eQorQ09ORklHX1BJ RF9OUz15CitDT05GSUdfTkVUX05TPXkKK0NPTkZJR19DSEVDS1BPSU5UX1JFU1RPUkU9eQorIyBD T05GSUdfU0NIRURfQVVUT0dST1VQIGlzIG5vdCBzZXQKK0NPTkZJR19SRUxBWT15CitDT05GSUdf QkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKK0NPTkZJR19SRF9H WklQPXkKK0NPTkZJR19SRF9CWklQMj15CitDT05GSUdfUkRfTFpNQT15CitDT05GSUdfUkRfWFo9 eQorQ09ORklHX1JEX0xaTz15CitDT05GSUdfUkRfTFo0PXkKK0NPTkZJR19SRF9aU1REPXkKK0NP TkZJR19CT09UX0NPTkZJRz15CisjIENPTkZJR19CT09UX0NPTkZJR19GT1JDRSBpcyBub3Qgc2V0 CisjIENPTkZJR19CT09UX0NPTkZJR19FTUJFRCBpcyBub3Qgc2V0CitDT05GSUdfSU5JVFJBTUZT X1BSRVNFUlZFX01USU1FPXkKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0U9eQor IyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAorQ09ORklHX0xEX09SUEhB Tl9XQVJOPXkKK0NPTkZJR19MRF9PUlBIQU5fV0FSTl9MRVZFTD0id2FybiIKK0NPTkZJR19TWVND VEw9eQorQ09ORklHX1NZU0NUTF9FWENFUFRJT05fVFJBQ0U9eQorQ09ORklHX0VYUEVSVD15CitD T05GSUdfTVVMVElVU0VSPXkKKyMgQ09ORklHX1NHRVRNQVNLX1NZU0NBTEwgaXMgbm90IHNldAor Q09ORklHX1NZU0ZTX1NZU0NBTEw9eQorQ09ORklHX0ZIQU5ETEU9eQorQ09ORklHX1BPU0lYX1RJ TUVSUz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkK K0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19GVVRFWF9QST15CitD T05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJ R19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfQUlPPXkKK0NPTkZJR19JT19VUklO Rz15CitDT05GSUdfQURWSVNFX1NZU0NBTExTPXkKK0NPTkZJR19NRU1CQVJSSUVSPXkKK0NPTkZJ R19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05G SUdfS0FMTFNZTVNfQUxMPXkKK0NPTkZJR19LQUxMU1lNU19CQVNFX1JFTEFUSVZFPXkKK0NPTkZJ R19LQ01QPXkKK0NPTkZJR19SU0VRPXkKKyMgQ09ORklHX0RFQlVHX1JTRVEgaXMgbm90IHNldAor IyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAorQ09ORklHX0hBVkVfUEVSRl9FVkVOVFM9eQor IyBDT05GSUdfUEMxMDQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBQZXJmb3JtYW5jZSBFdmVu dHMgQW5kIENvdW50ZXJzCisjCitDT05GSUdfUEVSRl9FVkVOVFM9eQorIyBDT05GSUdfREVCVUdf UEVSRl9VU0VfVk1BTExPQyBpcyBub3Qgc2V0CisjIGVuZCBvZiBLZXJuZWwgUGVyZm9ybWFuY2Ug RXZlbnRzIEFuZCBDb3VudGVycworCitDT05GSUdfU1lTVEVNX0RBVEFfVkVSSUZJQ0FUSU9OPXkK K0NPTkZJR19QUk9GSUxJTkc9eQorQ09ORklHX1RSQUNFUE9JTlRTPXkKKyMgZW5kIG9mIEdlbmVy YWwgc2V0dXAKKworQ09ORklHXzY0QklUPXkKK0NPTkZJR19SSVNDVj15CitDT05GSUdfR0NDX1NV UFBPUlRTX0RZTkFNSUNfRlRSQUNFPXkKK0NPTkZJR19BUkNIX01NQVBfUk5EX0JJVFNfTUlOPTE4 CitDT05GSUdfQVJDSF9NTUFQX1JORF9DT01QQVRfQklUU19NSU49OAorQ09ORklHX0FSQ0hfTU1B UF9STkRfQklUU19NQVg9MjQKK0NPTkZJR19BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTX01BWD0x NworQ09ORklHX1JJU0NWX1NCST15CitDT05GSUdfTU1VPXkKK0NPTkZJR19QQUdFX09GRlNFVD0w eGZmNjAwMDAwMDAwMDAwMDAKK0NPTkZJR19BUkNIX1NQQVJTRU1FTV9FTkFCTEU9eQorQ09ORklH X0FSQ0hfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfQVJDSF9TVVBQT1JUU19VUFJPQkVT PXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0dFTkVSSUNfQlVHPXkKK0NP TkZJR19HRU5FUklDX0JVR19SRUxBVElWRV9QT0lOVEVSUz15CitDT05GSUdfR0VORVJJQ19DQUxJ QlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfQ1NVTT15CitDT05GSUdfR0VORVJJQ19IV0VJ R0hUPXkKK0NPTkZJR19GSVhfRUFSTFlDT05fTUVNPXkKK0NPTkZJR19QR1RBQkxFX0xFVkVMUz01 CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19SSVNDVl9ETUFfTk9OQ09IRVJFTlQ9 eQorQ09ORklHX0FTX0hBU19JTlNOPXkKKworIworIyBTb0Mgc2VsZWN0aW9uCisjCitDT05GSUdf QVJDSF9NSUNST0NISVBfUE9MQVJGSVJFPXkKK0NPTkZJR19TT0NfTUlDUk9DSElQX1BPTEFSRklS RT15CitDT05GSUdfQVJDSF9SRU5FU0FTPXkKK0NPTkZJR19BUkNIX1NJRklWRT15CitDT05GSUdf U09DX1NJRklWRT15CitDT05GSUdfQVJDSF9TVEFSRklWRT15CitDT05GSUdfU09DX1NUQVJGSVZF PXkKK0NPTkZJR19BUkNIX1NVTlhJPXkKK0NPTkZJR19BUkNIX1ZJUlQ9eQorQ09ORklHX1NPQ19W SVJUPXkKKyMgZW5kIG9mIFNvQyBzZWxlY3Rpb24KKworIworIyBDUFUgZXJyYXRhIHNlbGVjdGlv bgorIworQ09ORklHX0VSUkFUQV9TSUZJVkU9eQorQ09ORklHX0VSUkFUQV9TSUZJVkVfQ0lQXzQ1 Mz15CitDT05GSUdfRVJSQVRBX1NJRklWRV9DSVBfMTIwMD15CitDT05GSUdfRVJSQVRBX1RIRUFE PXkKK0NPTkZJR19FUlJBVEFfVEhFQURfUEJNVD15CitDT05GSUdfRVJSQVRBX1RIRUFEX0NNTz15 CitDT05GSUdfRVJSQVRBX1RIRUFEX1BNVT15CisjIGVuZCBvZiBDUFUgZXJyYXRhIHNlbGVjdGlv bgorCisjCisjIFBsYXRmb3JtIHR5cGUKKyMKKyMgQ09ORklHX05PTlBPUlRBQkxFIGlzIG5vdCBz ZXQKK0NPTkZJR19BUkNIX1JWNjRJPXkKKyMgQ09ORklHX0NNT0RFTF9NRURMT1cgaXMgbm90IHNl dAorQ09ORklHX0NNT0RFTF9NRURBTlk9eQorQ09ORklHX01PRFVMRV9TRUNUSU9OUz15CitDT05G SUdfU01QPXkKK0NPTkZJR19TQ0hFRF9NQz15CitDT05GSUdfTlJfQ1BVUz00ODAKK0NPTkZJR19I T1RQTFVHX0NQVT15CitDT05GSUdfVFVORV9HRU5FUklDPXkKK0NPTkZJR19OVU1BPXkKK0NPTkZJ R19OT0RFU19TSElGVD02CitDT05GSUdfUklTQ1ZfQUxURVJOQVRJVkU9eQorQ09ORklHX1JJU0NW X0FMVEVSTkFUSVZFX0VBUkxZPXkKK0NPTkZJR19SSVNDVl9JU0FfQz15CitDT05GSUdfUklTQ1Zf SVNBX1NWTkFQT1Q9eQorQ09ORklHX1JJU0NWX0lTQV9TVlBCTVQ9eQorQ09ORklHX1RPT0xDSEFJ Tl9IQVNfWkJCPXkKK0NPTkZJR19SSVNDVl9JU0FfWkJCPXkKK0NPTkZJR19SSVNDVl9JU0FfWklD Qk9NPXkKK0NPTkZJR19SSVNDVl9JU0FfWklDQk9aPXkKK0NPTkZJR19UT09MQ0hBSU5fSEFTX1pJ SElOVFBBVVNFPXkKK0NPTkZJR19UT09MQ0hBSU5fTkVFRFNfRVhQTElDSVRfWklDU1JfWklGRU5D RUk9eQorQ09ORklHX0ZQVT15CisjIGVuZCBvZiBQbGF0Zm9ybSB0eXBlCisKKyMKKyMgS2VybmVs IGZlYXR1cmVzCisjCisjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAorQ09ORklHX0haXzI1MD15 CisjIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAorIyBDT05GSUdfSFpfMTAwMCBpcyBub3Qgc2V0 CitDT05GSUdfSFo9MjUwCitDT05GSUdfU0NIRURfSFJUSUNLPXkKKyMgQ09ORklHX1JJU0NWX1NC SV9WMDEgaXMgbm90IHNldAorIyBDT05GSUdfUklTQ1ZfQk9PVF9TUElOV0FJVCBpcyBub3Qgc2V0 CitDT05GSUdfS0VYRUM9eQorIyBDT05GSUdfS0VYRUNfRklMRSBpcyBub3Qgc2V0CitDT05GSUdf Q1JBU0hfRFVNUD15CitDT05GSUdfQ09NUEFUPXkKK0NPTkZJR19SRUxPQ0FUQUJMRT15CisjIGVu ZCBvZiBLZXJuZWwgZmVhdHVyZXMKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19DTURM SU5FPSIiCitDT05GSUdfRUZJX1NUVUI9eQorQ09ORklHX0VGST15CitDT05GSUdfQ0NfSEFWRV9T VEFDS1BST1RFQ1RPUl9UTFM9eQorQ09ORklHX1NUQUNLUFJPVEVDVE9SX1BFUl9UQVNLPXkKKyMg ZW5kIG9mIEJvb3Qgb3B0aW9ucworCitDT05GSUdfUE9SVEFCTEU9eQorCisjCisjIFBvd2VyIG1h bmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX0hJQkVSTkFURV9DQUxMQkFDS1M9eQorQ09ORklH X0hJQkVSTkFUSU9OPXkKK0NPTkZJR19ISUJFUk5BVElPTl9TTkFQU0hPVF9ERVY9eQorQ09ORklH X1BNX1NURF9QQVJUSVRJT049IiIKK0NPTkZJR19QTV9TTEVFUD15CitDT05GSUdfUE1fU0xFRVBf U01QPXkKKyMgQ09ORklHX1BNX0FVVE9TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9VU0VS U1BBQ0VfQVVUT1NMRUVQIGlzIG5vdCBzZXQKK0NPTkZJR19QTV9XQUtFTE9DS1M9eQorQ09ORklH X1BNX1dBS0VMT0NLU19MSU1JVD0xMDAKK0NPTkZJR19QTV9XQUtFTE9DS1NfR0M9eQorQ09ORklH X1BNPXkKK0NPTkZJR19QTV9ERUJVRz15CitDT05GSUdfUE1fQURWQU5DRURfREVCVUc9eQorQ09O RklHX1BNX1NMRUVQX0RFQlVHPXkKK0NPTkZJR19EUE1fV0FUQ0hET0c9eQorQ09ORklHX0RQTV9X QVRDSERPR19USU1FT1VUPTYwCitDT05GSUdfUE1fQ0xLPXkKK0NPTkZJR19QTV9HRU5FUklDX0RP TUFJTlM9eQorIyBDT05GSUdfV1FfUE9XRVJfRUZGSUNJRU5UX0RFRkFVTFQgaXMgbm90IHNldAor Q09ORklHX1BNX0dFTkVSSUNfRE9NQUlOU19TTEVFUD15CitDT05GSUdfUE1fR0VORVJJQ19ET01B SU5TX09GPXkKK0NPTkZJR19DUFVfUE09eQorQ09ORklHX0VORVJHWV9NT0RFTD15CitDT05GSUdf QVJDSF9ISUJFUk5BVElPTl9QT1NTSUJMRT15CitDT05GSUdfQVJDSF9ISUJFUk5BVElPTl9IRUFE RVI9eQorIyBlbmQgb2YgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisKKyMKKyMgQ1BVIFBvd2Vy IE1hbmFnZW1lbnQKKyMKKworIworIyBDUFUgSWRsZQorIworQ09ORklHX0NQVV9JRExFPXkKK0NP TkZJR19DUFVfSURMRV9NVUxUSVBMRV9EUklWRVJTPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfTEFE REVSPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfTUVOVT15CitDT05GSUdfQ1BVX0lETEVfR09WX1RF Tz15CitDT05GSUdfRFRfSURMRV9TVEFURVM9eQorQ09ORklHX0RUX0lETEVfR0VOUEQ9eQorCisj CisjIFJJU0MtViBDUFUgSWRsZSBEcml2ZXJzCisjCitDT05GSUdfUklTQ1ZfU0JJX0NQVUlETEU9 eQorIyBlbmQgb2YgUklTQy1WIENQVSBJZGxlIERyaXZlcnMKKyMgZW5kIG9mIENQVSBJZGxlCisK KyMKKyMgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCisjCitDT05GSUdfQ1BVX0ZSRVE9eQorQ09ORklH X0NQVV9GUkVRX0dPVl9BVFRSX1NFVD15CitDT05GSUdfQ1BVX0ZSRVFfR09WX0NPTU1PTj15CitD T05GSUdfQ1BVX0ZSRVFfU1RBVD15CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJG T1JNQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QT1dFUlNB VkUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlz IG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORD15CisjIENPTkZJ R19DUFVfRlJFUV9ERUZBVUxUX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAorIyBDT05GSUdf Q1BVX0ZSRVFfREVGQVVMVF9HT1ZfU0NIRURVVElMIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJF UV9HT1ZfUEVSRk9STUFOQ0U9eQorQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkU9eQorQ09O RklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9bQorQ09ORklHX0NQVV9GUkVRX0dPVl9PTkRFTUFO RD15CitDT05GSUdfQ1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRT1tCitDT05GSUdfQ1BVX0ZSRVFf R09WX1NDSEVEVVRJTD15CisKKyMKKyMgQ1BVIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlcnMKKyMK K0NPTkZJR19DUFVGUkVRX0RUPW0KK0NPTkZJR19DUFVGUkVRX0RUX1BMQVRERVY9eQorIyBlbmQg b2YgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCisjIGVuZCBvZiBDUFUgUG93ZXIgTWFuYWdlbWVudAor CitDT05GSUdfSEFWRV9LVk1fRVZFTlRGRD15CitDT05GSUdfS1ZNX01NSU89eQorQ09ORklHX0tW TV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVD15CitDT05GSUdfSEFWRV9LVk1fVkNQVV9B U1lOQ19JT0NUTD15CitDT05GSUdfS1ZNX1hGRVJfVE9fR1VFU1RfV09SSz15CitDT05GSUdfS1ZN X0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkc9eQorQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKK0NP TkZJR19LVk09eQorCisjCisjIEdlbmVyYWwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25z CisjCitDT05GSUdfQ1JBU0hfQ09SRT15CitDT05GSUdfS0VYRUNfQ09SRT15CitDT05GSUdfR0VO RVJJQ19FTlRSWT15CitDT05GSUdfS1BST0JFUz15CitDT05GSUdfSlVNUF9MQUJFTD15CisjIENP TkZJR19TVEFUSUNfS0VZU19TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfS1BST0JFU19PTl9G VFJBQ0U9eQorQ09ORklHX1VQUk9CRVM9eQorQ09ORklHX0hBVkVfNjRCSVRfQUxJR05FRF9BQ0NF U1M9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRV9PTl9SRVRIT09LPXkK K0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CitDT05GSUdf SEFWRV9LUFJPQkVTX09OX0ZUUkFDRT15CitDT05GSUdfSEFWRV9GVU5DVElPTl9FUlJPUl9JTkpF Q1RJT049eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBVkVfQVJD SF9UUkFDRUhPT0s9eQorQ09ORklHX0hBVkVfRE1BX0NPTlRJR1VPVVM9eQorQ09ORklHX0dFTkVS SUNfU01QX0lETEVfVEhSRUFEPXkKK0NPTkZJR19HRU5FUklDX0lETEVfUE9MTF9TRVRVUD15CitD T05GSUdfQVJDSF9IQVNfRk9SVElGWV9TT1VSQ0U9eQorQ09ORklHX0FSQ0hfSEFTX1NFVF9NRU1P Ulk9eQorQ09ORklHX0FSQ0hfSEFTX1NFVF9ESVJFQ1RfTUFQPXkKK0NPTkZJR19IQVZFX0FSQ0hf VEhSRUFEX1NUUlVDVF9XSElURUxJU1Q9eQorQ09ORklHX0hBVkVfQVNNX01PRFZFUlNJT05TPXkK K0NPTkZJR19IQVZFX1JFR1NfQU5EX1NUQUNLX0FDQ0VTU19BUEk9eQorQ09ORklHX0hBVkVfUlNF UT15CitDT05GSUdfSEFWRV9GVU5DVElPTl9BUkdfQUNDRVNTX0FQST15CitDT05GSUdfSEFWRV9Q RVJGX1JFR1M9eQorQ09ORklHX0hBVkVfUEVSRl9VU0VSX1NUQUNLX0RVTVA9eQorQ09ORklHX0hB VkVfQVJDSF9KVU1QX0xBQkVMPXkKK0NPTkZJR19IQVZFX0FSQ0hfSlVNUF9MQUJFTF9SRUxBVElW RT15CitDT05GSUdfTU1VX0xBWllfVExCX1JFRkNPVU5UPXkKK0NPTkZJR19IQVZFX0FSQ0hfU0VD Q09NUD15CitDT05GSUdfSEFWRV9BUkNIX1NFQ0NPTVBfRklMVEVSPXkKK0NPTkZJR19TRUNDT01Q PXkKK0NPTkZJR19TRUNDT01QX0ZJTFRFUj15CisjIENPTkZJR19TRUNDT01QX0NBQ0hFX0RFQlVH IGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX1NUQUNLUFJPVEVDVE9SPXkKK0NPTkZJR19TVEFDS1BS T1RFQ1RPUj15CitDT05GSUdfU1RBQ0tQUk9URUNUT1JfU1RST05HPXkKK0NPTkZJR19MVE9fTk9O RT15CitDT05GSUdfSEFWRV9DT05URVhUX1RSQUNLSU5HX1VTRVI9eQorQ09ORklHX0hBVkVfVklS VF9DUFVfQUNDT1VOVElOR19HRU49eQorQ09ORklHX0hBVkVfSVJRX1RJTUVfQUNDT1VOVElORz15 CitDT05GSUdfSEFWRV9NT1ZFX1BVRD15CitDT05GSUdfSEFWRV9NT1ZFX1BNRD15CitDT05GSUdf SEFWRV9BUkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFPXkKK0NPTkZJR19IQVZFX0FSQ0hfSFVHRV9W TUFQPXkKK0NPTkZJR19IQVZFX0FSQ0hfSFVHRV9WTUFMTE9DPXkKK0NPTkZJR19BUkNIX1dBTlRf SFVHRV9QTURfU0hBUkU9eQorQ09ORklHX0hBVkVfTU9EX0FSQ0hfU1BFQ0lGSUM9eQorQ09ORklH X01PRFVMRVNfVVNFX0VMRl9SRUxBPXkKK0NPTkZJR19BUkNIX0hBU19FTEZfUkFORE9NSVpFPXkK K0NPTkZJR19IQVZFX0FSQ0hfTU1BUF9STkRfQklUUz15CitDT05GSUdfQVJDSF9NTUFQX1JORF9C SVRTPTE4CitDT05GSUdfSEFWRV9BUkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTPXkKK0NPTkZJR19B UkNIX01NQVBfUk5EX0NPTVBBVF9CSVRTPTExCitDT05GSUdfUEFHRV9TSVpFX0xFU1NfVEhBTl82 NEtCPXkKK0NPTkZJR19QQUdFX1NJWkVfTEVTU19USEFOXzI1NktCPXkKK0NPTkZJR19BUkNIX1dB TlRfREVGQVVMVF9UT1BET1dOX01NQVBfTEFZT1VUPXkKK0NPTkZJR19DTE9ORV9CQUNLV0FSRFM9 eQorQ09ORklHX0NPTVBBVF8zMkJJVF9USU1FPXkKK0NPTkZJR19IQVZFX0FSQ0hfVk1BUF9TVEFD Sz15CitDT05GSUdfVk1BUF9TVEFDSz15CitDT05GSUdfQVJDSF9PUFRJT05BTF9LRVJORUxfUldY PXkKK0NPTkZJR19BUkNIX09QVElPTkFMX0tFUk5FTF9SV1hfREVGQVVMVD15CitDT05GSUdfQVJD SF9IQVNfU1RSSUNUX0tFUk5FTF9SV1g9eQorQ09ORklHX1NUUklDVF9LRVJORUxfUldYPXkKK0NP TkZJR19BUkNIX0hBU19TVFJJQ1RfTU9EVUxFX1JXWD15CitDT05GSUdfU1RSSUNUX01PRFVMRV9S V1g9eQorQ09ORklHX0FSQ0hfVVNFX01FTVJFTUFQX1BST1Q9eQorIyBDT05GSUdfTE9DS19FVkVO VF9DT1VOVFMgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSEFTX1ZEU09fREFUQT15CitDT05GSUdf QVJDSF9XQU5UX0xEX09SUEhBTl9XQVJOPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0RFQlVHX1BB R0VBTExPQz15CitDT05GSUdfQVJDSF9TVVBQT1JUU19QQUdFX1RBQkxFX0NIRUNLPXkKKworIwor IyBHQ09WLWJhc2VkIGtlcm5lbCBwcm9maWxpbmcKKyMKKyMgQ09ORklHX0dDT1ZfS0VSTkVMIGlz IG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19HQ09WX1BST0ZJTEVfQUxMPXkKKyMgZW5kIG9mIEdD T1YtYmFzZWQga2VybmVsIHByb2ZpbGluZworCitDT05GSUdfSEFWRV9HQ0NfUExVR0lOUz15Cisj IENPTkZJR19HQ0NfUExVR0lOUyBpcyBub3Qgc2V0CitDT05GSUdfRlVOQ1RJT05fQUxJR05NRU5U PTAKKyMgZW5kIG9mIEdlbmVyYWwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBvcHRpb25zCisKK0NP TkZJR19SVF9NVVRFWEVTPXkKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkK KyMgQ09ORklHX01PRFVMRV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX0ZPUkNFX0xP QUQ9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9B RCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfVU5MT0FEX1RBSU5UX1RSQUNLSU5HIGlzIG5v dCBzZXQKK0NPTkZJR19NT0RWRVJTSU9OUz15CitDT05GSUdfQVNNX01PRFZFUlNJT05TPXkKKyMg Q09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVf U0lHIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfQ09NUFJFU1NfTk9ORT15CisjIENPTkZJR19N T0RVTEVfQ09NUFJFU1NfR1pJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfQ09NUFJFU1Nf WFogaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX0NPTVBSRVNTX1pTVEQgaXMgbm90IHNldAor IyBDT05GSUdfTU9EVUxFX0FMTE9XX01JU1NJTkdfTkFNRVNQQUNFX0lNUE9SVFMgaXMgbm90IHNl dAorQ09ORklHX01PRFBST0JFX1BBVEg9Ii9zYmluL21vZHByb2JlIgorIyBDT05GSUdfVFJJTV9V TlVTRURfS1NZTVMgaXMgbm90IHNldAorQ09ORklHX01PRFVMRVNfVFJFRV9MT09LVVA9eQorQ09O RklHX0JMT0NLPXkKK0NPTkZJR19CTE9DS19MRUdBQ1lfQVVUT0xPQUQ9eQorQ09ORklHX0JMS19S UV9BTExPQ19USU1FPXkKK0NPTkZJR19CTEtfQ0dST1VQX1JXU1RBVD15CitDT05GSUdfQkxLX0NH Uk9VUF9QVU5UX0JJTz15CitDT05GSUdfQkxLX0RFVl9CU0dfQ09NTU9OPXkKK0NPTkZJR19CTEtf SUNRPXkKK0NPTkZJR19CTEtfREVWX0JTR0xJQj15CitDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFk9 eQorQ09ORklHX0JMS19ERVZfSU5URUdSSVRZX1QxMD15CitDT05GSUdfQkxLX0RFVl9aT05FRD15 CitDT05GSUdfQkxLX0RFVl9USFJPVFRMSU5HPXkKKyMgQ09ORklHX0JMS19ERVZfVEhST1RUTElO R19MT1cgaXMgbm90IHNldAorQ09ORklHX0JMS19XQlQ9eQorQ09ORklHX0JMS19XQlRfTVE9eQor Q09ORklHX0JMS19DR1JPVVBfSU9MQVRFTkNZPXkKKyMgQ09ORklHX0JMS19DR1JPVVBfRkNfQVBQ SUQgaXMgbm90IHNldAorQ09ORklHX0JMS19DR1JPVVBfSU9DT1NUPXkKK0NPTkZJR19CTEtfQ0dS T1VQX0lPUFJJTz15CitDT05GSUdfQkxLX0RFQlVHX0ZTPXkKK0NPTkZJR19CTEtfREVCVUdfRlNf Wk9ORUQ9eQorIyBDT05GSUdfQkxLX1NFRF9PUEFMIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfSU5M SU5FX0VOQ1JZUFRJT049eQorQ09ORklHX0JMS19JTkxJTkVfRU5DUllQVElPTl9GQUxMQkFDSz15 CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkK KyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BSVhfUEFSVElU SU9OIGlzIG5vdCBzZXQKK0NPTkZJR19PU0ZfUEFSVElUSU9OPXkKKyMgQ09ORklHX0FNSUdBX1BB UlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfQVRBUklfUEFSVElUSU9OPXkKK0NPTkZJR19NQUNf UEFSVElUSU9OPXkKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX0JTRF9ESVNLTEFC RUw9eQorIyBDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TT0xB UklTX1g4Nl9QQVJUSVRJT049eQorQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15CitDT05GSUdf TERNX1BBUlRJVElPTj15CisjIENPTkZJR19MRE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NH SV9QQVJUSVRJT049eQorQ09ORklHX1VMVFJJWF9QQVJUSVRJT049eQorQ09ORklHX1NVTl9QQVJU SVRJT049eQorQ09ORklHX0tBUk1BX1BBUlRJVElPTj15CitDT05GSUdfRUZJX1BBUlRJVElPTj15 CitDT05GSUdfU1lTVjY4X1BBUlRJVElPTj15CisjIENPTkZJR19DTURMSU5FX1BBUlRJVElPTiBp cyBub3Qgc2V0CisjIGVuZCBvZiBQYXJ0aXRpb24gVHlwZXMKKworQ09ORklHX0JMS19NUV9QQ0k9 eQorQ09ORklHX0JMS19NUV9WSVJUSU89eQorQ09ORklHX0JMS19QTT15CitDT05GSUdfQkxPQ0tf SE9MREVSX0RFUFJFQ0FURUQ9eQorQ09ORklHX0JMS19NUV9TVEFDS0lORz15CisKKyMKKyMgSU8g U2NoZWR1bGVycworIworQ09ORklHX01RX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX01RX0lP U0NIRURfS1lCRVI9eQorQ09ORklHX0lPU0NIRURfQkZRPXkKK0NPTkZJR19CRlFfR1JPVVBfSU9T Q0hFRD15CisjIENPTkZJR19CRlFfQ0dST1VQX0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5kIG9mIElP IFNjaGVkdWxlcnMKKworQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTPXkKK0NPTkZJR19QQURBVEE9 eQorQ09ORklHX0FTTjE9eQorQ09ORklHX0lOTElORV9TUElOX1VOTE9DS19JUlE9eQorQ09ORklH X0lOTElORV9SRUFEX1VOTE9DSz15CitDT05GSUdfSU5MSU5FX1JFQURfVU5MT0NLX0lSUT15CitD T05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DSz15CitDT05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DS19J UlE9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQVRPTUlDX1JNVz15CitDT05GSUdfTVVURVhfU1BJ Tl9PTl9PV05FUj15CitDT05GSUdfUldTRU1fU1BJTl9PTl9PV05FUj15CitDT05GSUdfTE9DS19T UElOX09OX09XTkVSPXkKK0NPTkZJR19BUkNIX1VTRV9RVUVVRURfUldMT0NLUz15CitDT05GSUdf UVVFVUVEX1JXTE9DS1M9eQorQ09ORklHX0FSQ0hfSEFTX01NSU9XQj15CitDT05GSUdfTU1JT1dC PXkKK0NPTkZJR19GUkVFWkVSPXkKKworIworIyBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cworIwor Q09ORklHX0JJTkZNVF9FTEY9eQorQ09ORklHX0NPTVBBVF9CSU5GTVRfRUxGPXkKK0NPTkZJR19F TEZDT1JFPXkKK0NPTkZJR19DT1JFX0RVTVBfREVGQVVMVF9FTEZfSEVBREVSUz15CitDT05GSUdf QklORk1UX1NDUklQVD15CitDT05GSUdfQVJDSF9IQVNfQklORk1UX0ZMQVQ9eQorIyBDT05GSUdf QklORk1UX0ZMQVQgaXMgbm90IHNldAorQ09ORklHX0JJTkZNVF9NSVNDPW0KK0NPTkZJR19DT1JF RFVNUD15CisjIGVuZCBvZiBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cworCisjCisjIE1lbW9yeSBN YW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19aUE9PTD15CitDT05GSUdfU1dBUD15CitDT05G SUdfWlNXQVA9eQorIyBDT05GSUdfWlNXQVBfREVGQVVMVF9PTiBpcyBub3Qgc2V0CisjIENPTkZJ R19aU1dBUF9DT01QUkVTU09SX0RFRkFVTFRfREVGTEFURSBpcyBub3Qgc2V0CitDT05GSUdfWlNX QVBfQ09NUFJFU1NPUl9ERUZBVUxUX0xaTz15CisjIENPTkZJR19aU1dBUF9DT01QUkVTU09SX0RF RkFVTFRfODQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9M WjQgaXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfQ09NUFJFU1NPUl9ERUZBVUxUX0xaNEhDIGlz IG5vdCBzZXQKKyMgQ09ORklHX1pTV0FQX0NPTVBSRVNTT1JfREVGQVVMVF9aU1REIGlzIG5vdCBz ZXQKK0NPTkZJR19aU1dBUF9DT01QUkVTU09SX0RFRkFVTFQ9Imx6byIKK0NPTkZJR19aU1dBUF9a UE9PTF9ERUZBVUxUX1pCVUQ9eQorIyBDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9aM0ZPTEQg aXMgbm90IHNldAorIyBDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVF9aU01BTExPQyBpcyBub3Qg c2V0CitDT05GSUdfWlNXQVBfWlBPT0xfREVGQVVMVD0iemJ1ZCIKK0NPTkZJR19aQlVEPXkKK0NP TkZJR19aM0ZPTEQ9bQorQ09ORklHX1pTTUFMTE9DPXkKKyMgQ09ORklHX1pTTUFMTE9DX1NUQVQg aXMgbm90IHNldAorQ09ORklHX1pTTUFMTE9DX0NIQUlOX1NJWkU9OAorCisjCisjIFNMQUIgYWxs b2NhdG9yIG9wdGlvbnMKKyMKKyMgQ09ORklHX1NMQUIgaXMgbm90IHNldAorQ09ORklHX1NMVUI9 eQorIyBDT05GSUdfU0xVQl9USU5ZIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCX01FUkdFX0RFRkFV TFQ9eQorQ09ORklHX1NMQUJfRlJFRUxJU1RfUkFORE9NPXkKK0NPTkZJR19TTEFCX0ZSRUVMSVNU X0hBUkRFTkVEPXkKKyMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAorQ09ORklHX1NMVUJf Q1BVX1BBUlRJQUw9eQorIyBlbmQgb2YgU0xBQiBhbGxvY2F0b3Igb3B0aW9ucworCitDT05GSUdf U0hVRkZMRV9QQUdFX0FMTE9DQVRPUj15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQK K0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19TUEFSU0VNRU1fTUFOVUFMPXkK K0NPTkZJR19TUEFSU0VNRU09eQorQ09ORklHX1NQQVJTRU1FTV9FWFRSRU1FPXkKK0NPTkZJR19T UEFSU0VNRU1fVk1FTU1BUF9FTkFCTEU9eQorQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQPXkKK0NP TkZJR19BUkNIX1dBTlRfT1BUSU1JWkVfVk1FTU1BUD15CitDT05GSUdfTUVNT1JZX0lTT0xBVElP Tj15CitDT05GSUdfRVhDTFVTSVZFX1NZU1RFTV9SQU09eQorQ09ORklHX1NQTElUX1BUTE9DS19D UFVTPTQKK0NPTkZJR19BUkNIX0VOQUJMRV9TUExJVF9QTURfUFRMT0NLPXkKK0NPTkZJR19NRU1P UllfQkFMTE9PTj15CitDT05GSUdfQkFMTE9PTl9DT01QQUNUSU9OPXkKK0NPTkZJR19DT01QQUNU SU9OPXkKK0NPTkZJR19DT01QQUNUX1VORVZJQ1RBQkxFX0RFRkFVTFQ9MQorQ09ORklHX1BBR0Vf UkVQT1JUSU5HPXkKK0NPTkZJR19NSUdSQVRJT049eQorQ09ORklHX0FSQ0hfRU5BQkxFX0hVR0VQ QUdFX01JR1JBVElPTj15CitDT05GSUdfQVJDSF9FTkFCTEVfVEhQX01JR1JBVElPTj15CitDT05G SUdfQ09OVElHX0FMTE9DPXkKK0NPTkZJR19QSFlTX0FERFJfVF82NEJJVD15CitDT05GSUdfTU1V X05PVElGSUVSPXkKK0NPTkZJR19LU009eQorQ09ORklHX0RFRkFVTFRfTU1BUF9NSU5fQUREUj02 NTUzNgorQ09ORklHX0FSQ0hfV0FOVFNfVEhQX1NXQVA9eQorQ09ORklHX1RSQU5TUEFSRU5UX0hV R0VQQUdFPXkKKyMgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFX0FMV0FZUyBpcyBub3Qgc2V0 CitDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFEVklTRT15CitDT05GSUdfVEhQX1NXQVA9 eQorQ09ORklHX1JFQURfT05MWV9USFBfRk9SX0ZTPXkKK0NPTkZJR19ORUVEX1BFUl9DUFVfRU1C RURfRklSU1RfQ0hVTks9eQorQ09ORklHX1VTRV9QRVJDUFVfTlVNQV9OT0RFX0lEPXkKK0NPTkZJ R19GUk9OVFNXQVA9eQorQ09ORklHX0NNQT15CisjIENPTkZJR19DTUFfREVCVUcgaXMgbm90IHNl dAorIyBDT05GSUdfQ01BX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0NNQV9TWVNGUz15CitD T05GSUdfQ01BX0FSRUFTPTcKK0NPTkZJR19HRU5FUklDX0VBUkxZX0lPUkVNQVA9eQorQ09ORklH X0RFRkVSUkVEX1NUUlVDVF9QQUdFX0lOSVQ9eQorQ09ORklHX1BBR0VfSURMRV9GTEFHPXkKKyMg Q09ORklHX0lETEVfUEFHRV9UUkFDS0lORyBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfQ1VS UkVOVF9TVEFDS19QT0lOVEVSPXkKK0NPTkZJR19aT05FX0RNQTMyPXkKK0NPTkZJR19ITU1fTUlS Uk9SPXkKK0NPTkZJR19HRVRfRlJFRV9SRUdJT049eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJT PXkKKyMgQ09ORklHX1BFUkNQVV9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19HVVBfVEVTVCBp cyBub3Qgc2V0CisjIENPTkZJR19ETUFQT09MX1RFU1QgaXMgbm90IHNldAorQ09ORklHX0FSQ0hf SEFTX1BURV9TUEVDSUFMPXkKK0NPTkZJR19TRUNSRVRNRU09eQorQ09ORklHX0FOT05fVk1BX05B TUU9eQorQ09ORklHX1VTRVJGQVVMVEZEPXkKK0NPTkZJR19MUlVfR0VOPXkKKyMgQ09ORklHX0xS VV9HRU5fRU5BQkxFRCBpcyBub3Qgc2V0CisjIENPTkZJR19MUlVfR0VOX1NUQVRTIGlzIG5vdCBz ZXQKKworIworIyBEYXRhIEFjY2VzcyBNb25pdG9yaW5nCisjCitDT05GSUdfREFNT049eQorQ09O RklHX0RBTU9OX1ZBRERSPXkKK0NPTkZJR19EQU1PTl9QQUREUj15CitDT05GSUdfREFNT05fU1lT RlM9eQorQ09ORklHX0RBTU9OX0RCR0ZTPXkKK0NPTkZJR19EQU1PTl9SRUNMQUlNPXkKKyMgQ09O RklHX0RBTU9OX0xSVV9TT1JUIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERhdGEgQWNjZXNzIE1vbml0 b3JpbmcKKyMgZW5kIG9mIE1lbW9yeSBNYW5hZ2VtZW50IG9wdGlvbnMKKworQ09ORklHX05FVD15 CitDT05GSUdfQ09NUEFUX05FVExJTktfTUVTU0FHRVM9eQorQ09ORklHX05FVF9JTkdSRVNTPXkK K0NPTkZJR19ORVRfRUdSRVNTPXkKK0NPTkZJR19ORVRfUkVESVJFQ1Q9eQorQ09ORklHX1NLQl9F WFRFTlNJT05TPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9 bQorQ09ORklHX1BBQ0tFVF9ESUFHPW0KK0NPTkZJR19VTklYPXkKK0NPTkZJR19VTklYX1NDTT15 CitDT05GSUdfQUZfVU5JWF9PT0I9eQorQ09ORklHX1VOSVhfRElBRz1tCitDT05GSUdfVExTPW0K K0NPTkZJR19UTFNfREVWSUNFPXkKKyMgQ09ORklHX1RMU19UT0UgaXMgbm90IHNldAorQ09ORklH X1hGUk09eQorQ09ORklHX1hGUk1fT0ZGTE9BRD15CitDT05GSUdfWEZSTV9BTEdPPW0KK0NPTkZJ R19YRlJNX1VTRVI9bQorQ09ORklHX1hGUk1fSU5URVJGQUNFPW0KK0NPTkZJR19YRlJNX1NVQl9Q T0xJQ1k9eQorQ09ORklHX1hGUk1fTUlHUkFURT15CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1Mg aXMgbm90IHNldAorQ09ORklHX1hGUk1fQUg9bQorQ09ORklHX1hGUk1fRVNQPW0KK0NPTkZJR19Y RlJNX0lQQ09NUD1tCitDT05GSUdfTkVUX0tFWT1tCitDT05GSUdfTkVUX0tFWV9NSUdSQVRFPXkK K0NPTkZJR19YRlJNX0VTUElOVENQPXkKK0NPTkZJR19TTUM9bQorQ09ORklHX1NNQ19ESUFHPW0K K0NPTkZJR19YRFBfU09DS0VUUz15CitDT05GSUdfWERQX1NPQ0tFVFNfRElBRz1tCitDT05GSUdf TkVUX0hBTkRTSEFLRT15CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKK0NP TkZJR19JUF9BRFZBTkNFRF9ST1VURVI9eQorIyBDT05GSUdfSVBfRklCX1RSSUVfU1RBVFMgaXMg bm90IHNldAorQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15CitDT05GSUdfSVBfUk9VVEVfTVVM VElQQVRIPXkKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19JUF9ST1VURV9DTEFT U0lEPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKK0NPTkZJR19JUF9Q TlBfQk9PVFA9eQorQ09ORklHX0lQX1BOUF9SQVJQPXkKK0NPTkZJR19ORVRfSVBJUD1tCitDT05G SUdfTkVUX0lQR1JFX0RFTVVYPW0KK0NPTkZJR19ORVRfSVBfVFVOTkVMPW0KK0NPTkZJR19ORVRf SVBHUkU9bQorQ09ORklHX05FVF9JUEdSRV9CUk9BRENBU1Q9eQorQ09ORklHX0lQX01ST1VURV9D T01NT049eQorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfTVJPVVRFX01VTFRJUExFX1RB QkxFUz15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKK0NPTkZJ R19TWU5fQ09PS0lFUz15CitDT05GSUdfTkVUX0lQVlRJPW0KK0NPTkZJR19ORVRfVURQX1RVTk5F TD1tCitDT05GSUdfTkVUX0ZPVT1tCitDT05GSUdfTkVUX0ZPVV9JUF9UVU5ORUxTPXkKK0NPTkZJ R19JTkVUX0FIPW0KK0NPTkZJR19JTkVUX0VTUD1tCitDT05GSUdfSU5FVF9FU1BfT0ZGTE9BRD1t CitDT05GSUdfSU5FVF9FU1BJTlRDUD15CitDT05GSUdfSU5FVF9JUENPTVA9bQorQ09ORklHX0lO RVRfVEFCTEVfUEVSVFVSQl9PUkRFUj0xNgorQ09ORklHX0lORVRfWEZSTV9UVU5ORUw9bQorQ09O RklHX0lORVRfVFVOTkVMPW0KK0NPTkZJR19JTkVUX0RJQUc9bQorQ09ORklHX0lORVRfVENQX0RJ QUc9bQorQ09ORklHX0lORVRfVURQX0RJQUc9bQorQ09ORklHX0lORVRfUkFXX0RJQUc9bQorIyBD T05GSUdfSU5FVF9ESUFHX0RFU1RST1kgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0FEVkFO Q0VEPXkKK0NPTkZJR19UQ1BfQ09OR19CSUM9bQorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NP TkZJR19UQ1BfQ09OR19XRVNUV09PRD1tCitDT05GSUdfVENQX0NPTkdfSFRDUD1tCitDT05GSUdf VENQX0NPTkdfSFNUQ1A9bQorQ09ORklHX1RDUF9DT05HX0hZQkxBPW0KK0NPTkZJR19UQ1BfQ09O R19WRUdBUz1tCitDT05GSUdfVENQX0NPTkdfTlY9bQorQ09ORklHX1RDUF9DT05HX1NDQUxBQkxF PW0KK0NPTkZJR19UQ1BfQ09OR19MUD1tCitDT05GSUdfVENQX0NPTkdfVkVOTz1tCitDT05GSUdf VENQX0NPTkdfWUVBSD1tCitDT05GSUdfVENQX0NPTkdfSUxMSU5PSVM9bQorQ09ORklHX1RDUF9D T05HX0RDVENQPW0KK0NPTkZJR19UQ1BfQ09OR19DREc9bQorQ09ORklHX1RDUF9DT05HX0JCUj1t CitDT05GSUdfREVGQVVMVF9DVUJJQz15CisjIENPTkZJR19ERUZBVUxUX1JFTk8gaXMgbm90IHNl dAorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorQ09ORklHX1RDUF9NRDVTSUc9eQor Q09ORklHX0lQVjY9eQorQ09ORklHX0lQVjZfUk9VVEVSX1BSRUY9eQorQ09ORklHX0lQVjZfUk9V VEVfSU5GTz15CisjIENPTkZJR19JUFY2X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQKK0NPTkZJ R19JTkVUNl9BSD1tCitDT05GSUdfSU5FVDZfRVNQPW0KK0NPTkZJR19JTkVUNl9FU1BfT0ZGTE9B RD1tCitDT05GSUdfSU5FVDZfRVNQSU5UQ1A9eQorQ09ORklHX0lORVQ2X0lQQ09NUD1tCitDT05G SUdfSVBWNl9NSVA2PW0KK0NPTkZJR19JUFY2X0lMQT1tCitDT05GSUdfSU5FVDZfWEZSTV9UVU5O RUw9bQorQ09ORklHX0lORVQ2X1RVTk5FTD1tCitDT05GSUdfSVBWNl9WVEk9bQorQ09ORklHX0lQ VjZfU0lUPW0KK0NPTkZJR19JUFY2X1NJVF82UkQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZ UEU9eQorQ09ORklHX0lQVjZfVFVOTkVMPW0KK0NPTkZJR19JUFY2X0dSRT1tCitDT05GSUdfSVBW Nl9GT1U9bQorQ09ORklHX0lQVjZfRk9VX1RVTk5FTD1tCitDT05GSUdfSVBWNl9NVUxUSVBMRV9U QUJMRVM9eQorQ09ORklHX0lQVjZfU1VCVFJFRVM9eQorQ09ORklHX0lQVjZfTVJPVVRFPXkKK0NP TkZJR19JUFY2X01ST1VURV9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQVjZfUElNU01fVjI9 eQorQ09ORklHX0lQVjZfU0VHNl9MV1RVTk5FTD15CitDT05GSUdfSVBWNl9TRUc2X0hNQUM9eQor Q09ORklHX0lQVjZfU0VHNl9CUEY9eQorQ09ORklHX0lQVjZfUlBMX0xXVFVOTkVMPXkKK0NPTkZJ R19JUFY2X0lPQU02X0xXVFVOTkVMPXkKK0NPTkZJR19ORVRMQUJFTD15CitDT05GSUdfTVBUQ1A9 eQorQ09ORklHX0lORVRfTVBUQ1BfRElBRz1tCitDT05GSUdfTVBUQ1BfSVBWNj15CitDT05GSUdf TkVUV09SS19TRUNNQVJLPXkKK0NPTkZJR19ORVRfUFRQX0NMQVNTSUZZPXkKKyMgQ09ORklHX05F VFdPUktfUEhZX1RJTUVTVEFNUElORyBpcyBub3Qgc2V0CitDT05GSUdfTkVURklMVEVSPXkKK0NP TkZJR19ORVRGSUxURVJfQURWQU5DRUQ9eQorQ09ORklHX0JSSURHRV9ORVRGSUxURVI9bQorCisj CisjIENvcmUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORVRGSUxURVJfSU5H UkVTUz15CitDT05GSUdfTkVURklMVEVSX0VHUkVTUz15CitDT05GSUdfTkVURklMVEVSX1NLSVBf RUdSRVNTPXkKK0NPTkZJR19ORVRGSUxURVJfTkVUTElOSz1tCitDT05GSUdfTkVURklMVEVSX0ZB TUlMWV9CUklER0U9eQorQ09ORklHX05FVEZJTFRFUl9GQU1JTFlfQVJQPXkKK0NPTkZJR19ORVRG SUxURVJfQlBGX0xJTks9eQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0hPT0s9bQorQ09ORklH X05FVEZJTFRFUl9ORVRMSU5LX0FDQ1Q9bQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX1FVRVVF PW0KK0NPTkZJR19ORVRGSUxURVJfTkVUTElOS19MT0c9bQorQ09ORklHX05FVEZJTFRFUl9ORVRM SU5LX09TRj1tCitDT05GSUdfTkZfQ09OTlRSQUNLPW0KK0NPTkZJR19ORl9MT0dfU1lTTE9HPW0K K0NPTkZJR19ORVRGSUxURVJfQ09OTkNPVU5UPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfTUFSSz15 CitDT05GSUdfTkZfQ09OTlRSQUNLX1NFQ01BUks9eQorQ09ORklHX05GX0NPTk5UUkFDS19aT05F Uz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1BST0NGUz15CitDT05GSUdfTkZfQ09OTlRSQUNLX0VW RU5UUz15CitDT05GSUdfTkZfQ09OTlRSQUNLX1RJTUVPVVQ9eQorQ09ORklHX05GX0NPTk5UUkFD S19USU1FU1RBTVA9eQorQ09ORklHX05GX0NPTk5UUkFDS19MQUJFTFM9eQorQ09ORklHX05GX0NP Tk5UUkFDS19PVlM9eQorQ09ORklHX05GX0NUX1BST1RPX0RDQ1A9eQorQ09ORklHX05GX0NUX1BS T1RPX0dSRT15CitDT05GSUdfTkZfQ1RfUFJPVE9fU0NUUD15CitDT05GSUdfTkZfQ1RfUFJPVE9f VURQTElURT15CitDT05GSUdfTkZfQ09OTlRSQUNLX0FNQU5EQT1tCitDT05GSUdfTkZfQ09OTlRS QUNLX0ZUUD1tCitDT05GSUdfTkZfQ09OTlRSQUNLX0gzMjM9bQorQ09ORklHX05GX0NPTk5UUkFD S19JUkM9bQorQ09ORklHX05GX0NPTk5UUkFDS19CUk9BRENBU1Q9bQorQ09ORklHX05GX0NPTk5U UkFDS19ORVRCSU9TX05TPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfU05NUD1tCitDT05GSUdfTkZf Q09OTlRSQUNLX1BQVFA9bQorQ09ORklHX05GX0NPTk5UUkFDS19TQU5FPW0KK0NPTkZJR19ORl9D T05OVFJBQ0tfU0lQPW0KK0NPTkZJR19ORl9DT05OVFJBQ0tfVEZUUD1tCitDT05GSUdfTkZfQ1Rf TkVUTElOSz1tCitDT05GSUdfTkZfQ1RfTkVUTElOS19USU1FT1VUPW0KK0NPTkZJR19ORl9DVF9O RVRMSU5LX0hFTFBFUj1tCitDT05GSUdfTkVURklMVEVSX05FVExJTktfR0xVRV9DVD15CitDT05G SUdfTkZfTkFUPW0KK0NPTkZJR19ORl9OQVRfQU1BTkRBPW0KK0NPTkZJR19ORl9OQVRfRlRQPW0K K0NPTkZJR19ORl9OQVRfSVJDPW0KK0NPTkZJR19ORl9OQVRfU0lQPW0KK0NPTkZJR19ORl9OQVRf VEZUUD1tCitDT05GSUdfTkZfTkFUX1JFRElSRUNUPXkKK0NPTkZJR19ORl9OQVRfTUFTUVVFUkFE RT15CitDT05GSUdfTkZfTkFUX09WUz15CitDT05GSUdfTkVURklMVEVSX1NZTlBST1hZPW0KK0NP TkZJR19ORl9UQUJMRVM9bQorQ09ORklHX05GX1RBQkxFU19JTkVUPXkKK0NPTkZJR19ORl9UQUJM RVNfTkVUREVWPXkKK0NPTkZJR19ORlRfTlVNR0VOPW0KK0NPTkZJR19ORlRfQ1Q9bQorQ09ORklH X05GVF9GTE9XX09GRkxPQUQ9bQorQ09ORklHX05GVF9DT05OTElNSVQ9bQorQ09ORklHX05GVF9M T0c9bQorQ09ORklHX05GVF9MSU1JVD1tCitDT05GSUdfTkZUX01BU1E9bQorQ09ORklHX05GVF9S RURJUj1tCitDT05GSUdfTkZUX05BVD1tCitDT05GSUdfTkZUX1RVTk5FTD1tCitDT05GSUdfTkZU X1FVRVVFPW0KK0NPTkZJR19ORlRfUVVPVEE9bQorQ09ORklHX05GVF9SRUpFQ1Q9bQorQ09ORklH X05GVF9SRUpFQ1RfSU5FVD1tCitDT05GSUdfTkZUX0NPTVBBVD1tCitDT05GSUdfTkZUX0hBU0g9 bQorQ09ORklHX05GVF9GSUI9bQorQ09ORklHX05GVF9GSUJfSU5FVD1tCitDT05GSUdfTkZUX1hG Uk09bQorQ09ORklHX05GVF9TT0NLRVQ9bQorQ09ORklHX05GVF9PU0Y9bQorQ09ORklHX05GVF9U UFJPWFk9bQorQ09ORklHX05GVF9TWU5QUk9YWT1tCitDT05GSUdfTkZfRFVQX05FVERFVj1tCitD T05GSUdfTkZUX0RVUF9ORVRERVY9bQorQ09ORklHX05GVF9GV0RfTkVUREVWPW0KK0NPTkZJR19O RlRfRklCX05FVERFVj1tCitDT05GSUdfTkZUX1JFSkVDVF9ORVRERVY9bQorQ09ORklHX05GX0ZM T1dfVEFCTEVfSU5FVD1tCitDT05GSUdfTkZfRkxPV19UQUJMRT1tCisjIENPTkZJR19ORl9GTE9X X1RBQkxFX1BST0NGUyBpcyBub3Qgc2V0CitDT05GSUdfTkVURklMVEVSX1hUQUJMRVM9bQorQ09O RklHX05FVEZJTFRFUl9YVEFCTEVTX0NPTVBBVD15CisKKyMKKyMgWHRhYmxlcyBjb21iaW5lZCBt b2R1bGVzCisjCitDT05GSUdfTkVURklMVEVSX1hUX01BUks9bQorQ09ORklHX05FVEZJTFRFUl9Y VF9DT05OTUFSSz1tCitDT05GSUdfTkVURklMVEVSX1hUX1NFVD1tCisKKyMKKyMgWHRhYmxlcyB0 YXJnZXRzCisjCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9BVURJVD1tCitDT05GSUdfTkVU RklMVEVSX1hUX1RBUkdFVF9DSEVDS1NVTT1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9D TEFTU0lGWT1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9DT05OTUFSSz1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9DT05OU0VDTUFSSz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RB UkdFVF9DVD1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9EU0NQPW0KK0NPTkZJR19ORVRG SUxURVJfWFRfVEFSR0VUX0hMPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0hNQVJLPW0K K0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0lETEVUSU1FUj1tCitDT05GSUdfTkVURklMVEVS X1hUX1RBUkdFVF9MRUQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTE9HPW0KK0NPTkZJ R19ORVRGSUxURVJfWFRfVEFSR0VUX01BUks9bQorQ09ORklHX05FVEZJTFRFUl9YVF9OQVQ9bQor Q09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTkVUTUFQPW0KK0NPTkZJR19ORVRGSUxURVJfWFRf VEFSR0VUX05GTE9HPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX05GUVVFVUU9bQorQ09O RklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTk9UUkFDSz1tCitDT05GSUdfTkVURklMVEVSX1hUX1RB UkdFVF9SQVRFRVNUPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1JFRElSRUNUPW0KK0NP TkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX01BU1FVRVJBREU9bQorQ09ORklHX05FVEZJTFRFUl9Y VF9UQVJHRVRfVEVFPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RQUk9YWT1tCitDT05G SUdfTkVURklMVEVSX1hUX1RBUkdFVF9UUkFDRT1tCitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdF VF9TRUNNQVJLPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RDUE1TUz1tCitDT05GSUdf TkVURklMVEVSX1hUX1RBUkdFVF9UQ1BPUFRTVFJJUD1tCisKKyMKKyMgWHRhYmxlcyBtYXRjaGVz CisjCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0FERFJUWVBFPW0KK0NPTkZJR19ORVRGSUxU RVJfWFRfTUFUQ0hfQlBGPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ0dST1VQPW0KK0NP TkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ0xVU1RFUj1tCitDT05GSUdfTkVURklMVEVSX1hUX01B VENIX0NPTU1FTlQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OQllURVM9bQorQ09O RklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OTEFCRUw9bQorQ09ORklHX05FVEZJTFRFUl9YVF9N QVRDSF9DT05OTElNSVQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OTUFSSz1tCitD T05GSUdfTkVURklMVEVSX1hUX01BVENIX0NPTk5UUkFDSz1tCitDT05GSUdfTkVURklMVEVSX1hU X01BVENIX0NQVT1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0RDQ1A9bQorQ09ORklHX05F VEZJTFRFUl9YVF9NQVRDSF9ERVZHUk9VUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0RT Q1A9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9FQ049bQorQ09ORklHX05FVEZJTFRFUl9Y VF9NQVRDSF9FU1A9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9IQVNITElNSVQ9bQorQ09O RklHX05FVEZJTFRFUl9YVF9NQVRDSF9IRUxQRVI9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9ITD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0lQQ09NUD1tCitDT05GSUdfTkVURklM VEVSX1hUX01BVENIX0lQUkFOR0U9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9JUFZTPW0K K0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTDJUUD1tCitDT05GSUdfTkVURklMVEVSX1hUX01B VENIX0xFTkdUSD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0xJTUlUPW0KK0NPTkZJR19O RVRGSUxURVJfWFRfTUFUQ0hfTUFDPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTUFSSz1t CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX01VTFRJUE9SVD1tCitDT05GSUdfTkVURklMVEVS X1hUX01BVENIX05GQUNDVD1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX09TRj1tCitDT05G SUdfTkVURklMVEVSX1hUX01BVENIX09XTkVSPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hf UE9MSUNZPW0KK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUEhZU0RFVj1tCitDT05GSUdfTkVU RklMVEVSX1hUX01BVENIX1BLVFRZUEU9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9RVU9U QT1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1JBVEVFU1Q9bQorQ09ORklHX05FVEZJTFRF Ul9YVF9NQVRDSF9SRUFMTT1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1JFQ0VOVD1tCitD T05GSUdfTkVURklMVEVSX1hUX01BVENIX1NDVFA9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRD SF9TT0NLRVQ9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFURT1tCitDT05GSUdfTkVU RklMVEVSX1hUX01BVENIX1NUQVRJU1RJQz1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1NU UklORz1tCitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1RDUE1TUz1tCitDT05GSUdfTkVURklM VEVSX1hUX01BVENIX1RJTUU9bQorQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9VMzI9bQorIyBl bmQgb2YgQ29yZSBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgorCitDT05GSUdfSVBfU0VUPW0KK0NP TkZJR19JUF9TRVRfTUFYPTI1NgorQ09ORklHX0lQX1NFVF9CSVRNQVBfSVA9bQorQ09ORklHX0lQ X1NFVF9CSVRNQVBfSVBNQUM9bQorQ09ORklHX0lQX1NFVF9CSVRNQVBfUE9SVD1tCitDT05GSUdf SVBfU0VUX0hBU0hfSVA9bQorQ09ORklHX0lQX1NFVF9IQVNIX0lQTUFSSz1tCitDT05GSUdfSVBf U0VUX0hBU0hfSVBQT1JUPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9JUFBPUlRJUD1tCitDT05GSUdf SVBfU0VUX0hBU0hfSVBQT1JUTkVUPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9JUE1BQz1tCitDT05G SUdfSVBfU0VUX0hBU0hfTUFDPW0KK0NPTkZJR19JUF9TRVRfSEFTSF9ORVRQT1JUTkVUPW0KK0NP TkZJR19JUF9TRVRfSEFTSF9ORVQ9bQorQ09ORklHX0lQX1NFVF9IQVNIX05FVE5FVD1tCitDT05G SUdfSVBfU0VUX0hBU0hfTkVUUE9SVD1tCitDT05GSUdfSVBfU0VUX0hBU0hfTkVUSUZBQ0U9bQor Q09ORklHX0lQX1NFVF9MSVNUX1NFVD1tCitDT05GSUdfSVBfVlM9bQorQ09ORklHX0lQX1ZTX0lQ VjY9eQorIyBDT05GSUdfSVBfVlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0lQX1ZTX1RBQl9C SVRTPTEyCisKKyMKKyMgSVBWUyB0cmFuc3BvcnQgcHJvdG9jb2wgbG9hZCBiYWxhbmNpbmcgc3Vw cG9ydAorIworQ09ORklHX0lQX1ZTX1BST1RPX1RDUD15CitDT05GSUdfSVBfVlNfUFJPVE9fVURQ PXkKK0NPTkZJR19JUF9WU19QUk9UT19BSF9FU1A9eQorQ09ORklHX0lQX1ZTX1BST1RPX0VTUD15 CitDT05GSUdfSVBfVlNfUFJPVE9fQUg9eQorQ09ORklHX0lQX1ZTX1BST1RPX1NDVFA9eQorCisj CisjIElQVlMgc2NoZWR1bGVyCisjCitDT05GSUdfSVBfVlNfUlI9bQorQ09ORklHX0lQX1ZTX1dS Uj1tCitDT05GSUdfSVBfVlNfTEM9bQorQ09ORklHX0lQX1ZTX1dMQz1tCitDT05GSUdfSVBfVlNf Rk89bQorQ09ORklHX0lQX1ZTX09WRj1tCitDT05GSUdfSVBfVlNfTEJMQz1tCitDT05GSUdfSVBf VlNfTEJMQ1I9bQorQ09ORklHX0lQX1ZTX0RIPW0KK0NPTkZJR19JUF9WU19TSD1tCitDT05GSUdf SVBfVlNfTUg9bQorQ09ORklHX0lQX1ZTX1NFRD1tCitDT05GSUdfSVBfVlNfTlE9bQorQ09ORklH X0lQX1ZTX1RXT1M9bQorCisjCisjIElQVlMgU0ggc2NoZWR1bGVyCisjCitDT05GSUdfSVBfVlNf U0hfVEFCX0JJVFM9OAorCisjCisjIElQVlMgTUggc2NoZWR1bGVyCisjCitDT05GSUdfSVBfVlNf TUhfVEFCX0lOREVYPTEyCisKKyMKKyMgSVBWUyBhcHBsaWNhdGlvbiBoZWxwZXIKKyMKK0NPTkZJ R19JUF9WU19GVFA9bQorQ09ORklHX0lQX1ZTX05GQ1Q9eQorQ09ORklHX0lQX1ZTX1BFX1NJUD1t CisKKyMKKyMgSVA6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfREVGUkFH X0lQVjQ9bQorQ09ORklHX05GX1NPQ0tFVF9JUFY0PW0KK0NPTkZJR19ORl9UUFJPWFlfSVBWND1t CitDT05GSUdfTkZfVEFCTEVTX0lQVjQ9eQorQ09ORklHX05GVF9SRUpFQ1RfSVBWND1tCitDT05G SUdfTkZUX0RVUF9JUFY0PW0KK0NPTkZJR19ORlRfRklCX0lQVjQ9bQorQ09ORklHX05GX1RBQkxF U19BUlA9eQorQ09ORklHX05GX0RVUF9JUFY0PW0KK0NPTkZJR19ORl9MT0dfQVJQPW0KK0NPTkZJ R19ORl9MT0dfSVBWND1tCitDT05GSUdfTkZfUkVKRUNUX0lQVjQ9bQorQ09ORklHX05GX05BVF9T Tk1QX0JBU0lDPW0KK0NPTkZJR19ORl9OQVRfUFBUUD1tCitDT05GSUdfTkZfTkFUX0gzMjM9bQor Q09ORklHX0lQX05GX0lQVEFCTEVTPW0KK0NPTkZJR19JUF9ORl9NQVRDSF9BSD1tCitDT05GSUdf SVBfTkZfTUFUQ0hfRUNOPW0KK0NPTkZJR19JUF9ORl9NQVRDSF9SUEZJTFRFUj1tCitDT05GSUdf SVBfTkZfTUFUQ0hfVFRMPW0KK0NPTkZJR19JUF9ORl9GSUxURVI9bQorQ09ORklHX0lQX05GX1RB UkdFVF9SRUpFQ1Q9bQorQ09ORklHX0lQX05GX1RBUkdFVF9TWU5QUk9YWT1tCitDT05GSUdfSVBf TkZfTkFUPW0KK0NPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVFUkFERT1tCitDT05GSUdfSVBfTkZf VEFSR0VUX05FVE1BUD1tCitDT05GSUdfSVBfTkZfVEFSR0VUX1JFRElSRUNUPW0KK0NPTkZJR19J UF9ORl9NQU5HTEU9bQorQ09ORklHX0lQX05GX1RBUkdFVF9FQ049bQorQ09ORklHX0lQX05GX1RB UkdFVF9UVEw9bQorQ09ORklHX0lQX05GX1JBVz1tCitDT05GSUdfSVBfTkZfU0VDVVJJVFk9bQor Q09ORklHX0lQX05GX0FSUFRBQkxFUz1tCitDT05GSUdfSVBfTkZfQVJQRklMVEVSPW0KK0NPTkZJ R19JUF9ORl9BUlBfTUFOR0xFPW0KKyMgZW5kIG9mIElQOiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlv bgorCisjCisjIElQdjY6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfU09D S0VUX0lQVjY9bQorQ09ORklHX05GX1RQUk9YWV9JUFY2PW0KK0NPTkZJR19ORl9UQUJMRVNfSVBW Nj15CitDT05GSUdfTkZUX1JFSkVDVF9JUFY2PW0KK0NPTkZJR19ORlRfRFVQX0lQVjY9bQorQ09O RklHX05GVF9GSUJfSVBWNj1tCitDT05GSUdfTkZfRFVQX0lQVjY9bQorQ09ORklHX05GX1JFSkVD VF9JUFY2PW0KK0NPTkZJR19ORl9MT0dfSVBWNj1tCitDT05GSUdfSVA2X05GX0lQVEFCTEVTPW0K K0NPTkZJR19JUDZfTkZfTUFUQ0hfQUg9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9FVUk2ND1tCitD T05GSUdfSVA2X05GX01BVENIX0ZSQUc9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9PUFRTPW0KK0NP TkZJR19JUDZfTkZfTUFUQ0hfSEw9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9JUFY2SEVBREVSPW0K K0NPTkZJR19JUDZfTkZfTUFUQ0hfTUg9bQorQ09ORklHX0lQNl9ORl9NQVRDSF9SUEZJTFRFUj1t CitDT05GSUdfSVA2X05GX01BVENIX1JUPW0KK0NPTkZJR19JUDZfTkZfTUFUQ0hfU1JIPW0KK0NP TkZJR19JUDZfTkZfVEFSR0VUX0hMPW0KK0NPTkZJR19JUDZfTkZfRklMVEVSPW0KK0NPTkZJR19J UDZfTkZfVEFSR0VUX1JFSkVDVD1tCitDT05GSUdfSVA2X05GX1RBUkdFVF9TWU5QUk9YWT1tCitD T05GSUdfSVA2X05GX01BTkdMRT1tCitDT05GSUdfSVA2X05GX1JBVz1tCitDT05GSUdfSVA2X05G X1NFQ1VSSVRZPW0KK0NPTkZJR19JUDZfTkZfTkFUPW0KK0NPTkZJR19JUDZfTkZfVEFSR0VUX01B U1FVRVJBREU9bQorQ09ORklHX0lQNl9ORl9UQVJHRVRfTlBUPW0KKyMgZW5kIG9mIElQdjY6IE5l dGZpbHRlciBDb25maWd1cmF0aW9uCisKK0NPTkZJR19ORl9ERUZSQUdfSVBWNj1tCitDT05GSUdf TkZfVEFCTEVTX0JSSURHRT1tCitDT05GSUdfTkZUX0JSSURHRV9NRVRBPW0KK0NPTkZJR19ORlRf QlJJREdFX1JFSkVDVD1tCitDT05GSUdfTkZfQ09OTlRSQUNLX0JSSURHRT1tCitDT05GSUdfQlJJ REdFX05GX0VCVEFCTEVTPW0KK0NPTkZJR19CUklER0VfRUJUX0JST1VURT1tCitDT05GSUdfQlJJ REdFX0VCVF9UX0ZJTFRFUj1tCitDT05GSUdfQlJJREdFX0VCVF9UX05BVD1tCitDT05GSUdfQlJJ REdFX0VCVF84MDJfMz1tCitDT05GSUdfQlJJREdFX0VCVF9BTU9ORz1tCitDT05GSUdfQlJJREdF X0VCVF9BUlA9bQorQ09ORklHX0JSSURHRV9FQlRfSVA9bQorQ09ORklHX0JSSURHRV9FQlRfSVA2 PW0KK0NPTkZJR19CUklER0VfRUJUX0xJTUlUPW0KK0NPTkZJR19CUklER0VfRUJUX01BUks9bQor Q09ORklHX0JSSURHRV9FQlRfUEtUVFlQRT1tCitDT05GSUdfQlJJREdFX0VCVF9TVFA9bQorQ09O RklHX0JSSURHRV9FQlRfVkxBTj1tCitDT05GSUdfQlJJREdFX0VCVF9BUlBSRVBMWT1tCitDT05G SUdfQlJJREdFX0VCVF9ETkFUPW0KK0NPTkZJR19CUklER0VfRUJUX01BUktfVD1tCitDT05GSUdf QlJJREdFX0VCVF9SRURJUkVDVD1tCitDT05GSUdfQlJJREdFX0VCVF9TTkFUPW0KK0NPTkZJR19C UklER0VfRUJUX0xPRz1tCitDT05GSUdfQlJJREdFX0VCVF9ORkxPRz1tCitDT05GSUdfQlBGSUxU RVI9eQorIyBDT05GSUdfQlBGSUxURVJfVU1IIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9EQ0NQPW0K K0NPTkZJR19JTkVUX0RDQ1BfRElBRz1tCisKKyMKKyMgRENDUCBDQ0lEcyBDb25maWd1cmF0aW9u CisjCisjIENPTkZJR19JUF9EQ0NQX0NDSUQyX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9E Q0NQX0NDSUQzPXkKKyMgQ09ORklHX0lQX0RDQ1BfQ0NJRDNfREVCVUcgaXMgbm90IHNldAorQ09O RklHX0lQX0RDQ1BfVEZSQ19MSUI9eQorIyBlbmQgb2YgRENDUCBDQ0lEcyBDb25maWd1cmF0aW9u CisKKyMKKyMgRENDUCBLZXJuZWwgSGFja2luZworIworIyBDT05GSUdfSVBfRENDUF9ERUJVRyBp cyBub3Qgc2V0CisjIGVuZCBvZiBEQ0NQIEtlcm5lbCBIYWNraW5nCisKK0NPTkZJR19JUF9TQ1RQ PW0KKyMgQ09ORklHX1NDVFBfREJHX09CSkNOVCBpcyBub3Qgc2V0CitDT05GSUdfU0NUUF9ERUZB VUxUX0NPT0tJRV9ITUFDX01ENT15CisjIENPTkZJR19TQ1RQX0RFRkFVTFRfQ09PS0lFX0hNQUNf U0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1RQX0RFRkFVTFRfQ09PS0lFX0hNQUNfTk9ORSBp cyBub3Qgc2V0CitDT05GSUdfU0NUUF9DT09LSUVfSE1BQ19NRDU9eQorIyBDT05GSUdfU0NUUF9D T09LSUVfSE1BQ19TSEExIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1NDVFBfRElBRz1tCitDT05G SUdfUkRTPW0KK0NPTkZJR19SRFNfUkRNQT1tCitDT05GSUdfUkRTX1RDUD1tCisjIENPTkZJR19S RFNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1RJUEM9bQorIyBDT05GSUdfVElQQ19NRURJQV9J QiBpcyBub3Qgc2V0CitDT05GSUdfVElQQ19NRURJQV9VRFA9eQorQ09ORklHX1RJUENfQ1JZUFRP PXkKK0NPTkZJR19USVBDX0RJQUc9bQorQ09ORklHX0FUTT1tCitDT05GSUdfQVRNX0NMSVA9bQor IyBDT05GSUdfQVRNX0NMSVBfTk9fSUNNUCBpcyBub3Qgc2V0CitDT05GSUdfQVRNX0xBTkU9bQor Q09ORklHX0FUTV9NUE9BPW0KK0NPTkZJR19BVE1fQlIyNjg0PW0KKyMgQ09ORklHX0FUTV9CUjI2 ODRfSVBGSUxURVIgaXMgbm90IHNldAorQ09ORklHX0wyVFA9bQorQ09ORklHX0wyVFBfREVCVUdG Uz1tCitDT05GSUdfTDJUUF9WMz15CitDT05GSUdfTDJUUF9JUD1tCitDT05GSUdfTDJUUF9FVEg9 bQorQ09ORklHX1NUUD1tCitDT05GSUdfR0FSUD1tCitDT05GSUdfTVJQPW0KK0NPTkZJR19CUklE R0U9bQorQ09ORklHX0JSSURHRV9JR01QX1NOT09QSU5HPXkKK0NPTkZJR19CUklER0VfVkxBTl9G SUxURVJJTkc9eQorQ09ORklHX0JSSURHRV9NUlA9eQorIyBDT05GSUdfQlJJREdFX0NGTSBpcyBu b3Qgc2V0CitDT05GSUdfTkVUX0RTQT1tCitDT05GSUdfTkVUX0RTQV9UQUdfTk9ORT1tCitDT05G SUdfTkVUX0RTQV9UQUdfQVI5MzMxPW0KK0NPTkZJR19ORVRfRFNBX1RBR19CUkNNX0NPTU1PTj1t CitDT05GSUdfTkVUX0RTQV9UQUdfQlJDTT1tCitDT05GSUdfTkVUX0RTQV9UQUdfQlJDTV9MRUdB Q1k9bQorQ09ORklHX05FVF9EU0FfVEFHX0JSQ01fUFJFUEVORD1tCitDT05GSUdfTkVUX0RTQV9U QUdfSEVMTENSRUVLPW0KK0NPTkZJR19ORVRfRFNBX1RBR19HU1dJUD1tCitDT05GSUdfTkVUX0RT QV9UQUdfRFNBX0NPTU1PTj1tCitDT05GSUdfTkVUX0RTQV9UQUdfRFNBPW0KK0NPTkZJR19ORVRf RFNBX1RBR19FRFNBPW0KK0NPTkZJR19ORVRfRFNBX1RBR19NVEs9bQorQ09ORklHX05FVF9EU0Ff VEFHX0tTWj1tCitDT05GSUdfTkVUX0RTQV9UQUdfT0NFTE9UPW0KK0NPTkZJR19ORVRfRFNBX1RB R19PQ0VMT1RfODAyMVE9bQorQ09ORklHX05FVF9EU0FfVEFHX1FDQT1tCitDT05GSUdfTkVUX0RT QV9UQUdfUlRMNF9BPW0KK0NPTkZJR19ORVRfRFNBX1RBR19SVEw4XzQ9bQorIyBDT05GSUdfTkVU X0RTQV9UQUdfUlpOMV9BNVBTVyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0RTQV9UQUdfTEFOOTMw Mz1tCitDT05GSUdfTkVUX0RTQV9UQUdfU0pBMTEwNT1tCitDT05GSUdfTkVUX0RTQV9UQUdfVFJB SUxFUj1tCitDT05GSUdfTkVUX0RTQV9UQUdfWFJTNzAwWD1tCitDT05GSUdfVkxBTl84MDIxUT1t CitDT05GSUdfVkxBTl84MDIxUV9HVlJQPXkKK0NPTkZJR19WTEFOXzgwMjFRX01WUlA9eQorQ09O RklHX0xMQz1tCitDT05GSUdfTExDMj1tCitDT05GSUdfQVRBTEs9bQorQ09ORklHX0RFVl9BUFBM RVRBTEs9bQorQ09ORklHX0lQRERQPW0KK0NPTkZJR19JUEREUF9FTkNBUD15CitDT05GSUdfWDI1 PW0KK0NPTkZJR19MQVBCPW0KK0NPTkZJR19QSE9ORVQ9bQorQ09ORklHXzZMT1dQQU49bQorIyBD T05GSUdfNkxPV1BBTl9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR182TE9XUEFOX05IQz1tCitD T05GSUdfNkxPV1BBTl9OSENfREVTVD1tCitDT05GSUdfNkxPV1BBTl9OSENfRlJBR01FTlQ9bQor Q09ORklHXzZMT1dQQU5fTkhDX0hPUD1tCitDT05GSUdfNkxPV1BBTl9OSENfSVBWNj1tCitDT05G SUdfNkxPV1BBTl9OSENfTU9CSUxJVFk9bQorQ09ORklHXzZMT1dQQU5fTkhDX1JPVVRJTkc9bQor Q09ORklHXzZMT1dQQU5fTkhDX1VEUD1tCitDT05GSUdfNkxPV1BBTl9HSENfRVhUX0hEUl9IT1A9 bQorQ09ORklHXzZMT1dQQU5fR0hDX1VEUD1tCitDT05GSUdfNkxPV1BBTl9HSENfSUNNUFY2PW0K K0NPTkZJR182TE9XUEFOX0dIQ19FWFRfSERSX0RFU1Q9bQorQ09ORklHXzZMT1dQQU5fR0hDX0VY VF9IRFJfRlJBRz1tCitDT05GSUdfNkxPV1BBTl9HSENfRVhUX0hEUl9ST1VURT1tCitDT05GSUdf SUVFRTgwMjE1ND1tCitDT05GSUdfSUVFRTgwMjE1NF9OTDgwMjE1NF9FWFBFUklNRU5UQUw9eQor Q09ORklHX0lFRUU4MDIxNTRfU09DS0VUPW0KK0NPTkZJR19JRUVFODAyMTU0XzZMT1dQQU49bQor Q09ORklHX01BQzgwMjE1ND1tCitDT05GSUdfTkVUX1NDSEVEPXkKKworIworIyBRdWV1ZWluZy9T Y2hlZHVsaW5nCisjCitDT05GSUdfTkVUX1NDSF9IVEI9bQorQ09ORklHX05FVF9TQ0hfSEZTQz1t CitDT05GSUdfTkVUX1NDSF9QUklPPW0KK0NPTkZJR19ORVRfU0NIX01VTFRJUT1tCitDT05GSUdf TkVUX1NDSF9SRUQ9bQorQ09ORklHX05FVF9TQ0hfU0ZCPW0KK0NPTkZJR19ORVRfU0NIX1NGUT1t CitDT05GSUdfTkVUX1NDSF9URVFMPW0KK0NPTkZJR19ORVRfU0NIX1RCRj1tCitDT05GSUdfTkVU X1NDSF9DQlM9bQorQ09ORklHX05FVF9TQ0hfRVRGPW0KK0NPTkZJR19ORVRfU0NIX01RUFJJT19M SUI9bQorQ09ORklHX05FVF9TQ0hfVEFQUklPPW0KK0NPTkZJR19ORVRfU0NIX0dSRUQ9bQorQ09O RklHX05FVF9TQ0hfTkVURU09bQorQ09ORklHX05FVF9TQ0hfRFJSPW0KK0NPTkZJR19ORVRfU0NI X01RUFJJTz1tCitDT05GSUdfTkVUX1NDSF9TS0JQUklPPW0KK0NPTkZJR19ORVRfU0NIX0NIT0tF PW0KK0NPTkZJR19ORVRfU0NIX1FGUT1tCitDT05GSUdfTkVUX1NDSF9DT0RFTD1tCitDT05GSUdf TkVUX1NDSF9GUV9DT0RFTD1tCitDT05GSUdfTkVUX1NDSF9DQUtFPW0KK0NPTkZJR19ORVRfU0NI X0ZRPW0KK0NPTkZJR19ORVRfU0NIX0hIRj1tCitDT05GSUdfTkVUX1NDSF9QSUU9bQorQ09ORklH X05FVF9TQ0hfRlFfUElFPW0KK0NPTkZJR19ORVRfU0NIX0lOR1JFU1M9bQorQ09ORklHX05FVF9T Q0hfUExVRz1tCitDT05GSUdfTkVUX1NDSF9FVFM9bQorIyBDT05GSUdfTkVUX1NDSF9ERUZBVUxU IGlzIG5vdCBzZXQKKworIworIyBDbGFzc2lmaWNhdGlvbgorIworQ09ORklHX05FVF9DTFM9eQor Q09ORklHX05FVF9DTFNfQkFTSUM9bQorQ09ORklHX05FVF9DTFNfUk9VVEU0PW0KK0NPTkZJR19O RVRfQ0xTX0ZXPW0KK0NPTkZJR19ORVRfQ0xTX1UzMj1tCitDT05GSUdfQ0xTX1UzMl9QRVJGPXkK K0NPTkZJR19DTFNfVTMyX01BUks9eQorQ09ORklHX05FVF9DTFNfRkxPVz1tCitDT05GSUdfTkVU X0NMU19DR1JPVVA9bQorQ09ORklHX05FVF9DTFNfQlBGPW0KK0NPTkZJR19ORVRfQ0xTX0ZMT1dF Uj1tCitDT05GSUdfTkVUX0NMU19NQVRDSEFMTD1tCitDT05GSUdfTkVUX0VNQVRDSD15CitDT05G SUdfTkVUX0VNQVRDSF9TVEFDSz0zMgorQ09ORklHX05FVF9FTUFUQ0hfQ01QPW0KK0NPTkZJR19O RVRfRU1BVENIX05CWVRFPW0KK0NPTkZJR19ORVRfRU1BVENIX1UzMj1tCitDT05GSUdfTkVUX0VN QVRDSF9NRVRBPW0KK0NPTkZJR19ORVRfRU1BVENIX1RFWFQ9bQorQ09ORklHX05FVF9FTUFUQ0hf Q0FOSUQ9bQorQ09ORklHX05FVF9FTUFUQ0hfSVBTRVQ9bQorQ09ORklHX05FVF9FTUFUQ0hfSVBU PW0KK0NPTkZJR19ORVRfQ0xTX0FDVD15CitDT05GSUdfTkVUX0FDVF9QT0xJQ0U9bQorQ09ORklH X05FVF9BQ1RfR0FDVD1tCitDT05GSUdfR0FDVF9QUk9CPXkKK0NPTkZJR19ORVRfQUNUX01JUlJF RD1tCitDT05GSUdfTkVUX0FDVF9TQU1QTEU9bQorQ09ORklHX05FVF9BQ1RfSVBUPW0KK0NPTkZJ R19ORVRfQUNUX05BVD1tCitDT05GSUdfTkVUX0FDVF9QRURJVD1tCitDT05GSUdfTkVUX0FDVF9T SU1QPW0KK0NPTkZJR19ORVRfQUNUX1NLQkVESVQ9bQorQ09ORklHX05FVF9BQ1RfQ1NVTT1tCitD T05GSUdfTkVUX0FDVF9NUExTPW0KK0NPTkZJR19ORVRfQUNUX1ZMQU49bQorQ09ORklHX05FVF9B Q1RfQlBGPW0KK0NPTkZJR19ORVRfQUNUX0NPTk5NQVJLPW0KK0NPTkZJR19ORVRfQUNUX0NUSU5G Tz1tCitDT05GSUdfTkVUX0FDVF9TS0JNT0Q9bQorQ09ORklHX05FVF9BQ1RfSUZFPW0KK0NPTkZJ R19ORVRfQUNUX1RVTk5FTF9LRVk9bQorQ09ORklHX05FVF9BQ1RfQ1Q9bQorQ09ORklHX05FVF9B Q1RfR0FURT1tCitDT05GSUdfTkVUX0lGRV9TS0JNQVJLPW0KK0NPTkZJR19ORVRfSUZFX1NLQlBS SU89bQorQ09ORklHX05FVF9JRkVfU0tCVENJTkRFWD1tCitDT05GSUdfTkVUX1RDX1NLQl9FWFQ9 eQorQ09ORklHX05FVF9TQ0hfRklGTz15CitDT05GSUdfRENCPXkKK0NPTkZJR19ETlNfUkVTT0xW RVI9bQorQ09ORklHX0JBVE1BTl9BRFY9bQorQ09ORklHX0JBVE1BTl9BRFZfQkFUTUFOX1Y9eQor Q09ORklHX0JBVE1BTl9BRFZfQkxBPXkKK0NPTkZJR19CQVRNQU5fQURWX0RBVD15CitDT05GSUdf QkFUTUFOX0FEVl9OQz15CitDT05GSUdfQkFUTUFOX0FEVl9NQ0FTVD15CitDT05GSUdfQkFUTUFO X0FEVl9ERUJVRz15CisjIENPTkZJR19CQVRNQU5fQURWX1RSQUNJTkcgaXMgbm90IHNldAorQ09O RklHX09QRU5WU1dJVENIPW0KK0NPTkZJR19PUEVOVlNXSVRDSF9HUkU9bQorQ09ORklHX09QRU5W U1dJVENIX1ZYTEFOPW0KK0NPTkZJR19PUEVOVlNXSVRDSF9HRU5FVkU9bQorQ09ORklHX1ZTT0NL RVRTPW0KK0NPTkZJR19WU09DS0VUU19ESUFHPW0KK0NPTkZJR19WU09DS0VUU19MT09QQkFDSz1t CitDT05GSUdfVklSVElPX1ZTT0NLRVRTPW0KK0NPTkZJR19WSVJUSU9fVlNPQ0tFVFNfQ09NTU9O PW0KK0NPTkZJR19ORVRMSU5LX0RJQUc9bQorQ09ORklHX01QTFM9eQorQ09ORklHX05FVF9NUExT X0dTTz1tCitDT05GSUdfTVBMU19ST1VUSU5HPW0KK0NPTkZJR19NUExTX0lQVFVOTkVMPW0KK0NP TkZJR19ORVRfTlNIPW0KK0NPTkZJR19IU1I9bQorQ09ORklHX05FVF9TV0lUQ0hERVY9eQorQ09O RklHX05FVF9MM19NQVNURVJfREVWPXkKK0NPTkZJR19RUlRSPW0KK0NPTkZJR19RUlRSX1NNRD1t CitDT05GSUdfUVJUUl9UVU49bQorQ09ORklHX1FSVFJfTUhJPW0KK0NPTkZJR19ORVRfTkNTST15 CitDT05GSUdfTkNTSV9PRU1fQ01EX0dFVF9NQUM9eQorIyBDT05GSUdfTkNTSV9PRU1fQ01EX0tF RVBfUEhZIGlzIG5vdCBzZXQKK0NPTkZJR19QQ1BVX0RFVl9SRUZDTlQ9eQorQ09ORklHX01BWF9T S0JfRlJBR1M9MTcKK0NPTkZJR19SUFM9eQorQ09ORklHX1JGU19BQ0NFTD15CitDT05GSUdfU09D S19SWF9RVUVVRV9NQVBQSU5HPXkKK0NPTkZJR19YUFM9eQorQ09ORklHX0NHUk9VUF9ORVRfUFJJ Tz15CitDT05GSUdfQ0dST1VQX05FVF9DTEFTU0lEPXkKK0NPTkZJR19ORVRfUlhfQlVTWV9QT0xM PXkKK0NPTkZJR19CUUw9eQorQ09ORklHX0JQRl9TVFJFQU1fUEFSU0VSPXkKK0NPTkZJR19ORVRf RkxPV19MSU1JVD15CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05GSUdfTkVUX1BLVEdF Tj1tCitDT05GSUdfTkVUX0RST1BfTU9OSVRPUj15CisjIGVuZCBvZiBOZXR3b3JrIHRlc3RpbmcK KyMgZW5kIG9mIE5ldHdvcmtpbmcgb3B0aW9ucworCitDT05GSUdfSEFNUkFESU89eQorCisjCisj IFBhY2tldCBSYWRpbyBwcm90b2NvbHMKKyMKK0NPTkZJR19BWDI1PW0KK0NPTkZJR19BWDI1X0RB TUFfU0xBVkU9eQorQ09ORklHX05FVFJPTT1tCitDT05GSUdfUk9TRT1tCisKKyMKKyMgQVguMjUg bmV0d29yayBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01LSVNTPW0KK0NPTkZJR182UEFDSz1t CitDT05GSUdfQlBRRVRIRVI9bQorQ09ORklHX0JBWUNPTV9TRVJfRkRYPW0KK0NPTkZJR19CQVlD T01fU0VSX0hEWD1tCitDT05GSUdfQkFZQ09NX1BBUj1tCitDT05GSUdfWUFNPW0KKyMgZW5kIG9m IEFYLjI1IG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX0NBTj1tCitDT05GSUdfQ0FO X1JBVz1tCitDT05GSUdfQ0FOX0JDTT1tCitDT05GSUdfQ0FOX0dXPW0KK0NPTkZJR19DQU5fSjE5 Mzk9bQorQ09ORklHX0NBTl9JU09UUD1tCitDT05GSUdfQlQ9bQorQ09ORklHX0JUX0JSRURSPXkK K0NPTkZJR19CVF9SRkNPTU09bQorQ09ORklHX0JUX1JGQ09NTV9UVFk9eQorQ09ORklHX0JUX0JO RVA9bQorQ09ORklHX0JUX0JORVBfTUNfRklMVEVSPXkKK0NPTkZJR19CVF9CTkVQX1BST1RPX0ZJ TFRFUj15CitDT05GSUdfQlRfSElEUD1tCitDT05GSUdfQlRfSFM9eQorQ09ORklHX0JUX0xFPXkK K0NPTkZJR19CVF9MRV9MMkNBUF9FQ1JFRD15CitDT05GSUdfQlRfNkxPV1BBTj1tCitDT05GSUdf QlRfTEVEUz15CitDT05GSUdfQlRfTVNGVEVYVD15CitDT05GSUdfQlRfQU9TUEVYVD15CisjIENP TkZJR19CVF9ERUJVR0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX1NFTEZURVNUIGlzIG5vdCBz ZXQKKworIworIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19CVF9JTlRFTD1t CitDT05GSUdfQlRfQkNNPW0KK0NPTkZJR19CVF9SVEw9bQorQ09ORklHX0JUX1FDQT1tCitDT05G SUdfQlRfTVRLPW0KK0NPTkZJR19CVF9IQ0lCVFVTQj1tCitDT05GSUdfQlRfSENJQlRVU0JfQVVU T1NVU1BFTkQ9eQorQ09ORklHX0JUX0hDSUJUVVNCX1BPTExfU1lOQz15CitDT05GSUdfQlRfSENJ QlRVU0JfQkNNPXkKK0NPTkZJR19CVF9IQ0lCVFVTQl9NVEs9eQorQ09ORklHX0JUX0hDSUJUVVNC X1JUTD15CitDT05GSUdfQlRfSENJQlRTRElPPW0KK0NPTkZJR19CVF9IQ0lVQVJUPW0KK0NPTkZJ R19CVF9IQ0lVQVJUX1NFUkRFVj15CitDT05GSUdfQlRfSENJVUFSVF9IND15CitDT05GSUdfQlRf SENJVUFSVF9OT0tJQT1tCitDT05GSUdfQlRfSENJVUFSVF9CQ1NQPXkKK0NPTkZJR19CVF9IQ0lV QVJUX0FUSDNLPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0xMPXkKK0NPTkZJR19CVF9IQ0lVQVJUXzNX SVJFPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0lOVEVMPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0JDTT15 CitDT05GSUdfQlRfSENJVUFSVF9SVEw9eQorQ09ORklHX0JUX0hDSVVBUlRfUUNBPXkKK0NPTkZJ R19CVF9IQ0lVQVJUX0FHNlhYPXkKK0NPTkZJR19CVF9IQ0lVQVJUX01SVkw9eQorQ09ORklHX0JU X0hDSUJDTTIwM1g9bQorQ09ORklHX0JUX0hDSUJDTTQzNzc9bQorQ09ORklHX0JUX0hDSUJQQTEw WD1tCitDT05GSUdfQlRfSENJQkZVU0I9bQorQ09ORklHX0JUX0hDSURUTDE9bQorQ09ORklHX0JU X0hDSUJUM0M9bQorQ09ORklHX0JUX0hDSUJMVUVDQVJEPW0KK0NPTkZJR19CVF9IQ0lWSENJPW0K K0NPTkZJR19CVF9NUlZMPW0KK0NPTkZJR19CVF9NUlZMX1NESU89bQorQ09ORklHX0JUX0FUSDNL PW0KK0NPTkZJR19CVF9NVEtTRElPPW0KK0NPTkZJR19CVF9NVEtVQVJUPW0KK0NPTkZJR19CVF9I Q0lSU0k9bQorQ09ORklHX0JUX1ZJUlRJTz1tCitDT05GSUdfQlRfTlhQVUFSVD1tCisjIGVuZCBv ZiBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX0FGX1JYUlBDPW0KK0NPTkZJR19B Rl9SWFJQQ19JUFY2PXkKKyMgQ09ORklHX0FGX1JYUlBDX0lOSkVDVF9MT1NTIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FGX1JYUlBDX0lOSkVDVF9SWF9ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19B Rl9SWFJQQ19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUlhLQUQ9eQorIyBDT05GSUdfUlhQRVJG IGlzIG5vdCBzZXQKK0NPTkZJR19BRl9LQ009bQorQ09ORklHX1NUUkVBTV9QQVJTRVI9eQorQ09O RklHX01DVFA9eQorQ09ORklHX01DVFBfRkxPV1M9eQorQ09ORklHX0ZJQl9SVUxFUz15CitDT05G SUdfV0lSRUxFU1M9eQorQ09ORklHX1dJUkVMRVNTX0VYVD15CitDT05GSUdfV0VYVF9DT1JFPXkK K0NPTkZJR19XRVhUX1BST0M9eQorQ09ORklHX1dFWFRfU1BZPXkKK0NPTkZJR19XRVhUX1BSSVY9 eQorQ09ORklHX0NGRzgwMjExPW0KKyMgQ09ORklHX05MODAyMTFfVEVTVE1PREUgaXMgbm90IHNl dAorIyBDT05GSUdfQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTIGlzIG5vdCBzZXQKKyMgQ09O RklHX0NGRzgwMjExX0NFUlRJRklDQVRJT05fT05VUyBpcyBub3Qgc2V0CitDT05GSUdfQ0ZHODAy MTFfUkVRVUlSRV9TSUdORURfUkVHREI9eQorQ09ORklHX0NGRzgwMjExX1VTRV9LRVJORUxfUkVH REJfS0VZUz15CitDT05GSUdfQ0ZHODAyMTFfREVGQVVMVF9QUz15CisjIENPTkZJR19DRkc4MDIx MV9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19DRkc4MDIxMV9DUkRBX1NVUFBPUlQ9eQorQ09O RklHX0NGRzgwMjExX1dFWFQ9eQorQ09ORklHX0NGRzgwMjExX1dFWFRfRVhQT1JUPXkKK0NPTkZJ R19MSUI4MDIxMT1tCitDT05GSUdfTElCODAyMTFfQ1JZUFRfV0VQPW0KK0NPTkZJR19MSUI4MDIx MV9DUllQVF9DQ01QPW0KK0NPTkZJR19MSUI4MDIxMV9DUllQVF9US0lQPW0KKyMgQ09ORklHX0xJ QjgwMjExX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19NQUM4MDIxMT1tCitDT05GSUdfTUFDODAy MTFfSEFTX1JDPXkKK0NPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTD15CitDT05GSUdfTUFDODAy MTFfUkNfREVGQVVMVF9NSU5TVFJFTD15CitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVD0ibWlu c3RyZWxfaHQiCitDT05GSUdfTUFDODAyMTFfTUVTSD15CitDT05GSUdfTUFDODAyMTFfTEVEUz15 CitDT05GSUdfTUFDODAyMTFfREVCVUdGUz15CisjIENPTkZJR19NQUM4MDIxMV9NRVNTQUdFX1RS QUNJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfTUVOVSBpcyBub3Qgc2V0 CitDT05GSUdfTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkU9MAorQ09ORklHX1JGS0lMTD1tCitD T05GSUdfUkZLSUxMX0xFRFM9eQorQ09ORklHX1JGS0lMTF9JTlBVVD15CitDT05GSUdfUkZLSUxM X0dQSU89bQorQ09ORklHX05FVF85UD1tCitDT05GSUdfTkVUXzlQX0ZEPW0KK0NPTkZJR19ORVRf OVBfVklSVElPPW0KK0NPTkZJR19ORVRfOVBfUkRNQT1tCisjIENPTkZJR19ORVRfOVBfREVCVUcg aXMgbm90IHNldAorQ09ORklHX0NBSUY9bQorIyBDT05GSUdfQ0FJRl9ERUJVRyBpcyBub3Qgc2V0 CitDT05GSUdfQ0FJRl9ORVRERVY9bQorQ09ORklHX0NBSUZfVVNCPW0KK0NPTkZJR19DRVBIX0xJ Qj1tCitDT05GSUdfQ0VQSF9MSUJfUFJFVFRZREVCVUc9eQorIyBDT05GSUdfQ0VQSF9MSUJfVVNF X0ROU19SRVNPTFZFUiBpcyBub3Qgc2V0CitDT05GSUdfTkZDPW0KK0NPTkZJR19ORkNfRElHSVRB TD1tCitDT05GSUdfTkZDX05DST1tCisjIENPTkZJR19ORkNfTkNJX1NQSSBpcyBub3Qgc2V0CitD T05GSUdfTkZDX05DSV9VQVJUPW0KK0NPTkZJR19ORkNfSENJPW0KK0NPTkZJR19ORkNfU0hETEM9 eQorCisjCisjIE5lYXIgRmllbGQgQ29tbXVuaWNhdGlvbiAoTkZDKSBkZXZpY2VzCisjCisjIENP TkZJR19ORkNfVFJGNzk3MEEgaXMgbm90IHNldAorQ09ORklHX05GQ19TSU09bQorQ09ORklHX05G Q19QT1JUMTAwPW0KK0NPTkZJR19ORkNfVklSVFVBTF9OQ0k9bQorIyBDT05GSUdfTkZDX0ZEUCBp cyBub3Qgc2V0CitDT05GSUdfTkZDX1BONTQ0PW0KK0NPTkZJR19ORkNfUE41NDRfSTJDPW0KK0NP TkZJR19ORkNfUE41MzM9bQorQ09ORklHX05GQ19QTjUzM19VU0I9bQorQ09ORklHX05GQ19QTjUz M19JMkM9bQorQ09ORklHX05GQ19QTjUzMl9VQVJUPW0KK0NPTkZJR19ORkNfTUlDUk9SRUFEPW0K K0NPTkZJR19ORkNfTUlDUk9SRUFEX0kyQz1tCitDT05GSUdfTkZDX01SVkw9bQorQ09ORklHX05G Q19NUlZMX1VTQj1tCitDT05GSUdfTkZDX01SVkxfVUFSVD1tCitDT05GSUdfTkZDX01SVkxfSTJD PW0KK0NPTkZJR19ORkNfU1QyMU5GQ0E9bQorQ09ORklHX05GQ19TVDIxTkZDQV9JMkM9bQorQ09O RklHX05GQ19TVF9OQ0k9bQorQ09ORklHX05GQ19TVF9OQ0lfSTJDPW0KK0NPTkZJR19ORkNfU1Rf TkNJX1NQST1tCitDT05GSUdfTkZDX05YUF9OQ0k9bQorQ09ORklHX05GQ19OWFBfTkNJX0kyQz1t CitDT05GSUdfTkZDX1MzRldSTjU9bQorQ09ORklHX05GQ19TM0ZXUk41X0kyQz1tCitDT05GSUdf TkZDX1MzRldSTjgyX1VBUlQ9bQorQ09ORklHX05GQ19TVDk1SEY9bQorIyBlbmQgb2YgTmVhciBG aWVsZCBDb21tdW5pY2F0aW9uIChORkMpIGRldmljZXMKKworQ09ORklHX1BTQU1QTEU9bQorQ09O RklHX05FVF9JRkU9bQorQ09ORklHX0xXVFVOTkVMPXkKK0NPTkZJR19MV1RVTk5FTF9CUEY9eQor Q09ORklHX0RTVF9DQUNIRT15CitDT05GSUdfR1JPX0NFTExTPXkKK0NPTkZJR19TT0NLX1ZBTElE QVRFX1hNSVQ9eQorQ09ORklHX05FVF9TRUxGVEVTVFM9eQorQ09ORklHX05FVF9TT0NLX01TRz15 CitDT05GSUdfTkVUX0RFVkxJTks9eQorQ09ORklHX1BBR0VfUE9PTD15CitDT05GSUdfUEFHRV9Q T09MX1NUQVRTPXkKK0NPTkZJR19GQUlMT1ZFUj1tCitDT05GSUdfRVRIVE9PTF9ORVRMSU5LPXkK KworIworIyBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0FSTV9BTUJBPXkKK0NPTkZJR19IQVZF X1BDST15CitDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CitDT05GSUdfUENJX0RP TUFJTlNfR0VORVJJQz15CitDT05GSUdfUENJRVBPUlRCVVM9eQorQ09ORklHX0hPVFBMVUdfUENJ X1BDSUU9eQorQ09ORklHX1BDSUVBRVI9eQorQ09ORklHX1BDSUVBRVJfSU5KRUNUPW0KKyMgQ09O RklHX1BDSUVfRUNSQyBpcyBub3Qgc2V0CitDT05GSUdfUENJRUFTUE09eQorQ09ORklHX1BDSUVB U1BNX0RFRkFVTFQ9eQorIyBDT05GSUdfUENJRUFTUE1fUE9XRVJTQVZFIGlzIG5vdCBzZXQKKyMg Q09ORklHX1BDSUVBU1BNX1BPV0VSX1NVUEVSU0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0lF QVNQTV9QRVJGT1JNQU5DRSBpcyBub3Qgc2V0CitDT05GSUdfUENJRV9QTUU9eQorQ09ORklHX1BD SUVfRFBDPXkKK0NPTkZJR19QQ0lFX1BUTT15CitDT05GSUdfUENJX01TST15CitDT05GSUdfUENJ X1FVSVJLUz15CisjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENJX1JF QUxMT0NfRU5BQkxFX0FVVE8gaXMgbm90IHNldAorQ09ORklHX1BDSV9TVFVCPXkKK0NPTkZJR19Q Q0lfUEZfU1RVQj1tCitDT05GSUdfUENJX0FUUz15CitDT05GSUdfUENJX0RPRT15CitDT05GSUdf UENJX0VDQU09eQorQ09ORklHX1BDSV9JT1Y9eQorQ09ORklHX1BDSV9QUkk9eQorQ09ORklHX1BD SV9QQVNJRD15CisjIENPTkZJR19QQ0lFX0JVU19UVU5FX09GRiBpcyBub3Qgc2V0CitDT05GSUdf UENJRV9CVVNfREVGQVVMVD15CisjIENPTkZJR19QQ0lFX0JVU19TQUZFIGlzIG5vdCBzZXQKKyMg Q09ORklHX1BDSUVfQlVTX1BFUkZPUk1BTkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSUVfQlVT X1BFRVIyUEVFUiBpcyBub3Qgc2V0CitDT05GSUdfVkdBX0FSQj15CitDT05GSUdfVkdBX0FSQl9N QVhfR1BVUz0xNgorQ09ORklHX0hPVFBMVUdfUENJPXkKK0NPTkZJR19IT1RQTFVHX1BDSV9DUENJ PXkKK0NPTkZJR19IT1RQTFVHX1BDSV9TSFBDPXkKKworIworIyBQQ0kgY29udHJvbGxlciBkcml2 ZXJzCisjCitDT05GSUdfUENJX0ZUUENJMTAwPXkKK0NPTkZJR19QQ0lfSE9TVF9DT01NT049eQor Q09ORklHX1BDSV9IT1NUX0dFTkVSSUM9eQorQ09ORklHX1BDSUVfTUlDUk9DSElQX0hPU1Q9eQor Q09ORklHX1BDSUVfUkNBUl9IT1NUPXkKK0NPTkZJR19QQ0lFX1JDQVJfRVA9eQorQ09ORklHX1BD SUVfWElMSU5YPXkKK0NPTkZJR19QQ0lFX1NUQVJGSVZFPW0KKworIworIyBDYWRlbmNlLWJhc2Vk IFBDSWUgY29udHJvbGxlcnMKKyMKK0NPTkZJR19QQ0lFX0NBREVOQ0U9eQorQ09ORklHX1BDSUVf Q0FERU5DRV9IT1NUPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfRVA9eQorQ09ORklHX1BDSUVfQ0FE RU5DRV9QTEFUPXkKK0NPTkZJR19QQ0lFX0NBREVOQ0VfUExBVF9IT1NUPXkKK0NPTkZJR19QQ0lF X0NBREVOQ0VfUExBVF9FUD15CitDT05GSUdfUENJX0o3MjFFPXkKK0NPTkZJR19QQ0lfSjcyMUVf SE9TVD15CitDT05GSUdfUENJX0o3MjFFX0VQPXkKKyMgZW5kIG9mIENhZGVuY2UtYmFzZWQgUENJ ZSBjb250cm9sbGVycworCisjCisjIERlc2lnbldhcmUtYmFzZWQgUENJZSBjb250cm9sbGVycwor IworQ09ORklHX1BDSUVfRFc9eQorQ09ORklHX1BDSUVfRFdfSE9TVD15CitDT05GSUdfUENJRV9E V19FUD15CitDT05GSUdfUENJX01FU09OPXkKK0NPTkZJR19QQ0lFX0RXX1BMQVQ9eQorQ09ORklH X1BDSUVfRFdfUExBVF9IT1NUPXkKK0NPTkZJR19QQ0lFX0RXX1BMQVRfRVA9eQorQ09ORklHX1BD SUVfRlU3NDA9eQorIyBlbmQgb2YgRGVzaWduV2FyZS1iYXNlZCBQQ0llIGNvbnRyb2xsZXJzCisK KyMKKyMgTW9iaXZlaWwtYmFzZWQgUENJZSBjb250cm9sbGVycworIworIyBlbmQgb2YgTW9iaXZl aWwtYmFzZWQgUENJZSBjb250cm9sbGVycworIyBlbmQgb2YgUENJIGNvbnRyb2xsZXIgZHJpdmVy cworCisjCisjIFBDSSBFbmRwb2ludAorIworQ09ORklHX1BDSV9FTkRQT0lOVD15CitDT05GSUdf UENJX0VORFBPSU5UX0NPTkZJR0ZTPXkKK0NPTkZJR19QQ0lfRVBGX1RFU1Q9bQorQ09ORklHX1BD SV9FUEZfTlRCPW0KK0NPTkZJR19QQ0lfRVBGX1ZOVEI9bQorIyBlbmQgb2YgUENJIEVuZHBvaW50 CisKKyMKKyMgUENJIHN3aXRjaCBjb250cm9sbGVyIGRyaXZlcnMKKyMKK0NPTkZJR19QQ0lfU1df U1dJVENIVEVDPW0KKyMgZW5kIG9mIFBDSSBzd2l0Y2ggY29udHJvbGxlciBkcml2ZXJzCisKK0NP TkZJR19DWExfQlVTPW0KK0NPTkZJR19DWExfUENJPW0KKyMgQ09ORklHX0NYTF9NRU1fUkFXX0NP TU1BTkRTIGlzIG5vdCBzZXQKK0NPTkZJR19DWExfUE1FTT1tCitDT05GSUdfQ1hMX01FTT1tCitD T05GSUdfQ1hMX1BPUlQ9bQorQ09ORklHX0NYTF9SRUdJT049eQorIyBDT05GSUdfQ1hMX1JFR0lP Tl9JTlZBTElEQVRJT05fVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfUENDQVJEPW0KK0NPTkZJR19Q Q01DSUE9bQorQ09ORklHX1BDTUNJQV9MT0FEX0NJUz15CitDT05GSUdfQ0FSREJVUz15CisKKyMK KyMgUEMtY2FyZCBicmlkZ2VzCisjCitDT05GSUdfWUVOVEE9bQorQ09ORklHX1lFTlRBX08yPXkK K0NPTkZJR19ZRU5UQV9SSUNPSD15CitDT05GSUdfWUVOVEFfVEk9eQorQ09ORklHX1lFTlRBX0VO RV9UVU5FPXkKK0NPTkZJR19ZRU5UQV9UT1NISUJBPXkKK0NPTkZJR19QRDY3Mjk9bQorQ09ORklH X0k4MjA5Mj1tCitDT05GSUdfUENDQVJEX05PTlNUQVRJQz15CitDT05GSUdfUkFQSURJTz1tCitD T05GSUdfUkFQSURJT19UU0k3MjE9bQorQ09ORklHX1JBUElESU9fRElTQ19USU1FT1VUPTMwCisj IENPTkZJR19SQVBJRElPX0VOQUJMRV9SWF9UWF9QT1JUUyBpcyBub3Qgc2V0CitDT05GSUdfUkFQ SURJT19ETUFfRU5HSU5FPXkKKyMgQ09ORklHX1JBUElESU9fREVCVUcgaXMgbm90IHNldAorQ09O RklHX1JBUElESU9fRU5VTV9CQVNJQz1tCitDT05GSUdfUkFQSURJT19DSE1BTj1tCitDT05GSUdf UkFQSURJT19NUE9SVF9DREVWPW0KKworIworIyBSYXBpZElPIFN3aXRjaCBkcml2ZXJzCisjCitD T05GSUdfUkFQSURJT19DUFNfWFg9bQorQ09ORklHX1JBUElESU9fQ1BTX0dFTjI9bQorQ09ORklH X1JBUElESU9fUlhTX0dFTjM9bQorIyBlbmQgb2YgUmFwaWRJTyBTd2l0Y2ggZHJpdmVycworCisj CisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19BVVhJTElBUllfQlVTPXkKK0NP TkZJR19VRVZFTlRfSEVMUEVSPXkKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9IiIKK0NPTkZJ R19ERVZUTVBGUz15CitDT05GSUdfREVWVE1QRlNfTU9VTlQ9eQorQ09ORklHX0RFVlRNUEZTX1NB RkU9eQorIyBDT05GSUdfU1RBTkRBTE9ORSBpcyBub3Qgc2V0CitDT05GSUdfUFJFVkVOVF9GSVJN V0FSRV9CVUlMRD15CisKKyMKKyMgRmlybXdhcmUgbG9hZGVyCisjCitDT05GSUdfRldfTE9BREVS PXkKK0NPTkZJR19GV19MT0FERVJfREVCVUc9eQorQ09ORklHX0ZXX0xPQURFUl9QQUdFRF9CVUY9 eQorQ09ORklHX0ZXX0xPQURFUl9TWVNGUz15CitDT05GSUdfRVhUUkFfRklSTVdBUkU9IiIKK0NP TkZJR19GV19MT0FERVJfVVNFUl9IRUxQRVI9eQorIyBDT05GSUdfRldfTE9BREVSX1VTRVJfSEVM UEVSX0ZBTExCQUNLIGlzIG5vdCBzZXQKK0NPTkZJR19GV19MT0FERVJfQ09NUFJFU1M9eQorQ09O RklHX0ZXX0xPQURFUl9DT01QUkVTU19YWj15CitDT05GSUdfRldfTE9BREVSX0NPTVBSRVNTX1pT VEQ9eQorQ09ORklHX0ZXX0NBQ0hFPXkKK0NPTkZJR19GV19VUExPQUQ9eQorIyBlbmQgb2YgRmly bXdhcmUgbG9hZGVyCisKK0NPTkZJR19XQU5UX0RFVl9DT1JFRFVNUD15CitDT05GSUdfQUxMT1df REVWX0NPUkVEVU1QPXkKK0NPTkZJR19ERVZfQ09SRURVTVA9eQorIyBDT05GSUdfREVCVUdfRFJJ VkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJ R19ERUJVR19URVNUX0RSSVZFUl9SRU1PVkUgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9BU1lO Q19EUklWRVJfUFJPQkUgaXMgbm90IHNldAorQ09ORklHX1NPQ19CVVM9eQorQ09ORklHX1JFR01B UD15CitDT05GSUdfUkVHTUFQX0kyQz15CitDT05GSUdfUkVHTUFQX1NQST1tCitDT05GSUdfUkVH TUFQX1NQTUk9bQorQ09ORklHX1JFR01BUF9XMT1tCitDT05GSUdfUkVHTUFQX01NSU89eQorQ09O RklHX1JFR01BUF9JUlE9eQorQ09ORklHX1JFR01BUF9TT1VORFdJUkU9bQorQ09ORklHX1JFR01B UF9TT1VORFdJUkVfTUJRPW0KK0NPTkZJR19SRUdNQVBfU0NDQj1tCitDT05GSUdfUkVHTUFQX0kz Qz1tCitDT05GSUdfUkVHTUFQX1NQSV9BVk1NPW0KK0NPTkZJR19ETUFfU0hBUkVEX0JVRkZFUj15 CisjIENPTkZJR19ETUFfRkVOQ0VfVFJBQ0UgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQVJD SF9UT1BPTE9HWT15CitDT05GSUdfR0VORVJJQ19BUkNIX05VTUE9eQorIyBDT05GSUdfRldfREVW TElOS19TWU5DX1NUQVRFX1RJTUVPVVQgaXMgbm90IHNldAorIyBlbmQgb2YgR2VuZXJpYyBEcml2 ZXIgT3B0aW9ucworCisjCisjIEJ1cyBkZXZpY2VzCisjCitDT05GSUdfTU9YVEVUPW0KK0NPTkZJ R19TVU41MElfREUyX0JVUz15CitDT05GSUdfU1VOWElfUlNCPW0KK0NPTkZJR19NSElfQlVTPW0K KyMgQ09ORklHX01ISV9CVVNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX01ISV9CVVNfUENJX0dF TkVSSUM9bQorQ09ORklHX01ISV9CVVNfRVA9bQorIyBlbmQgb2YgQnVzIGRldmljZXMKKworQ09O RklHX0NPTk5FQ1RPUj15CitDT05GSUdfUFJPQ19FVkVOVFM9eQorCisjCisjIEZpcm13YXJlIERy aXZlcnMKKyMKKworIworIyBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJm YWNlIFByb3RvY29sCisjCisjIGVuZCBvZiBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1l bnQgSW50ZXJmYWNlIFByb3RvY29sCisKK0NPTkZJR19GSVJNV0FSRV9NRU1NQVA9eQorQ09ORklH X1NZU0ZCPXkKKyMgQ09ORklHX1NZU0ZCX1NJTVBMRUZCIGlzIG5vdCBzZXQKK0NPTkZJR19GV19D U19EU1A9bQorIyBDT05GSUdfR09PR0xFX0ZJUk1XQVJFIGlzIG5vdCBzZXQKKworIworIyBFRkkg KEV4dGVuc2libGUgRmlybXdhcmUgSW50ZXJmYWNlKSBTdXBwb3J0CisjCitDT05GSUdfRUZJX0VT UlQ9eQorQ09ORklHX0VGSV9WQVJTX1BTVE9SRT1tCisjIENPTkZJR19FRklfVkFSU19QU1RPUkVf REVGQVVMVF9ESVNBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfUEFSQU1TX0ZST01fRkRUPXkK K0NPTkZJR19FRklfUlVOVElNRV9XUkFQUEVSUz15CitDT05GSUdfRUZJX0dFTkVSSUNfU1RVQj15 CisjIENPTkZJR19FRklfWkJPT1QgaXMgbm90IHNldAorQ09ORklHX0VGSV9CT09UTE9BREVSX0NP TlRST0w9bQorQ09ORklHX0VGSV9DQVBTVUxFX0xPQURFUj1tCisjIENPTkZJR19FRklfVEVTVCBp cyBub3Qgc2V0CisjIENPTkZJR19SRVNFVF9BVFRBQ0tfTUlUSUdBVElPTiBpcyBub3Qgc2V0Cisj IENPTkZJR19FRklfRElTQUJMRV9QQ0lfRE1BIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfRUFSTFlD T049eQorIyBDT05GSUdfRUZJX0RJU0FCTEVfUlVOVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19F RklfQ09DT19TRUNSRVQgaXMgbm90IHNldAorIyBlbmQgb2YgRUZJIChFeHRlbnNpYmxlIEZpcm13 YXJlIEludGVyZmFjZSkgU3VwcG9ydAorCisjCisjIFRlZ3JhIGZpcm13YXJlIGRyaXZlcgorIwor IyBlbmQgb2YgVGVncmEgZmlybXdhcmUgZHJpdmVyCisjIGVuZCBvZiBGaXJtd2FyZSBEcml2ZXJz CisKK0NPTkZJR19HTlNTPW0KK0NPTkZJR19HTlNTX1NFUklBTD1tCitDT05GSUdfR05TU19NVEtf U0VSSUFMPW0KK0NPTkZJR19HTlNTX1NJUkZfU0VSSUFMPW0KK0NPTkZJR19HTlNTX1VCWF9TRVJJ QUw9bQorQ09ORklHX0dOU1NfVVNCPW0KK0NPTkZJR19NVEQ9bQorQ09ORklHX01URF9URVNUUz1t CisKKyMKKyMgUGFydGl0aW9uIHBhcnNlcnMKKyMKK0NPTkZJR19NVERfQVI3X1BBUlRTPW0KK0NP TkZJR19NVERfQ01ETElORV9QQVJUUz1tCitDT05GSUdfTVREX09GX1BBUlRTPW0KK0NPTkZJR19N VERfUkVEQk9PVF9QQVJUUz1tCitDT05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0x CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENP TkZJR19NVERfUkVEQk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBQYXJ0 aXRpb24gcGFyc2VycworCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJz CisjCitDT05GSUdfTVREX0JMS0RFVlM9bQorQ09ORklHX01URF9CTE9DSz1tCitDT05GSUdfTVRE X0JMT0NLX1JPPW0KKworIworIyBOb3RlIHRoYXQgaW4gc29tZSBjYXNlcyBVQkkgYmxvY2sgaXMg cHJlZmVycmVkLiBTZWUgTVREX1VCSV9CTE9DSy4KKyMKK0NPTkZJR19GVEw9bQorQ09ORklHX05G VEw9bQorQ09ORklHX05GVExfUlc9eQorQ09ORklHX0lORlRMPW0KK0NPTkZJR19SRkRfRlRMPW0K K0NPTkZJR19TU0ZEQz1tCisjIENPTkZJR19TTV9GVEwgaXMgbm90IHNldAorQ09ORklHX01URF9P T1BTPW0KKyMgQ09ORklHX01URF9QU1RPUkUgaXMgbm90IHNldAorQ09ORklHX01URF9TV0FQPW0K K0NPTkZJR19NVERfUEFSVElUSU9ORURfTUFTVEVSPXkKKworIworIyBSQU0vUk9NL0ZsYXNoIGNo aXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9bQorQ09ORklHX01URF9KRURFQ1BST0JFPW0K K0NPTkZJR19NVERfR0VOX1BST0JFPW0KK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NP TkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBu b3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdf TVREX0NGSV9HRU9NRVRSWT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklH X01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CitD T05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzg9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8x Nj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyPXkKK0NPTkZJR19NVERfQ0ZJX0kxPXkK K0NPTkZJR19NVERfQ0ZJX0kyPXkKK0NPTkZJR19NVERfQ0ZJX0k0PXkKK0NPTkZJR19NVERfQ0ZJ X0k4PXkKK0NPTkZJR19NVERfT1RQPXkKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPW0KK0NPTkZJ R19NVERfQ0ZJX0FNRFNURD1tCitDT05GSUdfTVREX0NGSV9TVEFBPW0KK0NPTkZJR19NVERfQ0ZJ X1VUSUw9bQorQ09ORklHX01URF9SQU09bQorQ09ORklHX01URF9ST009bQorQ09ORklHX01URF9B QlNFTlQ9bQorIyBlbmQgb2YgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKworIworIyBNYXBw aW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCitDT05GSUdfTVREX0NPTVBMRVhfTUFQUElO R1M9eQorQ09ORklHX01URF9QSFlTTUFQPW0KKyMgQ09ORklHX01URF9QSFlTTUFQX0NPTVBBVCBp cyBub3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVBfT0Y9eQorIyBDT05GSUdfTVREX1BIWVNNQVBf VkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFlTTUFQX0dFTUlOSSBpcyBub3Qg c2V0CitDT05GSUdfTVREX1BIWVNNQVBfR1BJT19BRERSPXkKK0NPTkZJR19NVERfUENJPW0KK0NP TkZJR19NVERfUENNQ0lBPW0KKyMgQ09ORklHX01URF9QQ01DSUFfQU5PTllNT1VTIGlzIG5vdCBz ZXQKK0NPTkZJR19NVERfSU5URUxfVlJfTk9SPW0KK0NPTkZJR19NVERfUExBVFJBTT1tCisjIGVu ZCBvZiBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisKKyMKKyMgU2VsZi1jb250YWlu ZWQgTVREIGRldmljZSBkcml2ZXJzCisjCitDT05GSUdfTVREX1BNQzU1MT1tCitDT05GSUdfTVRE X1BNQzU1MV9CVUdGSVg9eQorIyBDT05GSUdfTVREX1BNQzU1MV9ERUJVRyBpcyBub3Qgc2V0Cisj IENPTkZJR19NVERfREFUQUZMQVNIIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUNIUDIzSzI1Nj1t CitDT05GSUdfTVREX01DSFA0OEw2NDA9bQorIyBDT05GSUdfTVREX1NTVDI1TCBpcyBub3Qgc2V0 CitDT05GSUdfTVREX1NMUkFNPW0KK0NPTkZJR19NVERfUEhSQU09bQorQ09ORklHX01URF9NVERS QU09bQorQ09ORklHX01URFJBTV9UT1RBTF9TSVpFPTQwOTYKK0NPTkZJR19NVERSQU1fRVJBU0Vf U0laRT0xMjgKK0NPTkZJR19NVERfQkxPQ0syTVREPW0KKworIworIyBEaXNrLU9uLUNoaXAgRGV2 aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0NHMyBpcyBub3Qgc2V0CisjIGVuZCBvZiBT ZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKworIworIyBOQU5ECisjCitDT05GSUdf TVREX05BTkRfQ09SRT1tCitDT05GSUdfTVREX09ORU5BTkQ9bQorQ09ORklHX01URF9PTkVOQU5E X1ZFUklGWV9XUklURT15CitDT05GSUdfTVREX09ORU5BTkRfR0VORVJJQz1tCitDT05GSUdfTVRE X09ORU5BTkRfT1RQPXkKK0NPTkZJR19NVERfT05FTkFORF8yWF9QUk9HUkFNPXkKK0NPTkZJR19N VERfUkFXX05BTkQ9bQorCisjCisjIFJhdy9wYXJhbGxlbCBOQU5EIGZsYXNoIGNvbnRyb2xsZXJz CisjCitDT05GSUdfTVREX05BTkRfREVOQUxJPW0KKyMgQ09ORklHX01URF9OQU5EX0RFTkFMSV9Q Q0kgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0RFTkFMSV9EVD1tCitDT05GSUdfTVREX05B TkRfQ0FGRT1tCitDT05GSUdfTVREX05BTkRfU1VOWEk9bQorQ09ORklHX01URF9OQU5EX01YSUM9 bQorQ09ORklHX01URF9OQU5EX0dQSU89bQorQ09ORklHX01URF9OQU5EX1BMQVRGT1JNPW0KK0NP TkZJR19NVERfTkFORF9DQURFTkNFPW0KK0NPTkZJR19NVERfTkFORF9BUkFTQU49bQorQ09ORklH X01URF9OQU5EX0lOVEVMX0xHTT1tCitDT05GSUdfTVREX05BTkRfUkVORVNBUz1tCisKKyMKKyMg TWlzYworIworQ09ORklHX01URF9TTV9DT01NT049bQorQ09ORklHX01URF9OQU5EX05BTkRTSU09 bQorQ09ORklHX01URF9OQU5EX1JJQ09IPW0KK0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQPW0K K0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQX1BST0JFX0FEVkFOQ0VEPXkKK0NPTkZJR19NVERf TkFORF9ESVNLT05DSElQX1BST0JFX0FERFJFU1M9MHgwCitDT05GSUdfTVREX05BTkRfRElTS09O Q0hJUF9QUk9CRV9ISUdIPXkKK0NPTkZJR19NVERfTkFORF9ESVNLT05DSElQX0JCVFdSSVRFPXkK K0NPTkZJR19NVERfU1BJX05BTkQ9bQorCisjCisjIEVDQyBlbmdpbmUgc3VwcG9ydAorIworQ09O RklHX01URF9OQU5EX0VDQz15CitDT05GSUdfTVREX05BTkRfRUNDX1NXX0hBTU1JTkc9eQorIyBD T05GSUdfTVREX05BTkRfRUNDX1NXX0hBTU1JTkdfU01DIGlzIG5vdCBzZXQKK0NPTkZJR19NVERf TkFORF9FQ0NfU1dfQkNIPXkKK0NPTkZJR19NVERfTkFORF9FQ0NfTVhJQz15CisjIGVuZCBvZiBF Q0MgZW5naW5lIHN1cHBvcnQKKyMgZW5kIG9mIE5BTkQKKworIworIyBMUEREUiAmIExQRERSMiBQ Q00gbWVtb3J5IGRyaXZlcnMKKyMKK0NPTkZJR19NVERfTFBERFI9bQorQ09ORklHX01URF9RSU5G T19QUk9CRT1tCisjIGVuZCBvZiBMUEREUiAmIExQRERSMiBQQ00gbWVtb3J5IGRyaXZlcnMKKwor Q09ORklHX01URF9TUElfTk9SPW0KK0NPTkZJR19NVERfU1BJX05PUl9VU0VfNEtfU0VDVE9SUz15 CisjIENPTkZJR19NVERfU1BJX05PUl9TV1BfRElTQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfTVRE X1NQSV9OT1JfU1dQX0RJU0FCTEVfT05fVk9MQVRJTEU9eQorIyBDT05GSUdfTVREX1NQSV9OT1Jf U1dQX0tFRVAgaXMgbm90IHNldAorQ09ORklHX01URF9VQkk9bQorQ09ORklHX01URF9VQklfV0xf VEhSRVNIT0xEPTQwOTYKK0NPTkZJR19NVERfVUJJX0JFQl9MSU1JVD0yMAorIyBDT05GSUdfTVRE X1VCSV9GQVNUTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfVUJJX0dMVUVCST1tCitDT05GSUdf TVREX1VCSV9CTE9DSz15CitDT05GSUdfTVREX0hZUEVSQlVTPW0KK0NPTkZJR19EVEM9eQorQ09O RklHX09GPXkKKyMgQ09ORklHX09GX1VOSVRURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19PRl9GTEFU VFJFRT15CitDT05GSUdfT0ZfRUFSTFlfRkxBVFRSRUU9eQorQ09ORklHX09GX0tPQko9eQorQ09O RklHX09GX0RZTkFNSUM9eQorQ09ORklHX09GX0FERFJFU1M9eQorQ09ORklHX09GX0lSUT15CitD T05GSUdfT0ZfUkVTRVJWRURfTUVNPXkKK0NPTkZJR19PRl9SRVNPTFZFPXkKK0NPTkZJR19PRl9P VkVSTEFZPXkKK0NPTkZJR19PRl9OVU1BPXkKK0NPTkZJR19QQVJQT1JUPW0KKyMgQ09ORklHX1BB UlBPUlRfUEMgaXMgbm90IHNldAorQ09ORklHX1BBUlBPUlRfMTI4ND15CitDT05GSUdfUEFSUE9S VF9OT1RfUEM9eQorQ09ORklHX0JMS19ERVY9eQorQ09ORklHX0JMS19ERVZfTlVMTF9CTEs9bQor Q09ORklHX0NEUk9NPW0KK0NPTkZJR19CTEtfREVWX1BDSUVTU0RfTVRJUDMyWFg9bQorQ09ORklH X1pSQU09bQorQ09ORklHX1pSQU1fREVGX0NPTVBfTFpPUkxFPXkKKyMgQ09ORklHX1pSQU1fREVG X0NPTVBfWlNURCBpcyBub3Qgc2V0CisjIENPTkZJR19aUkFNX0RFRl9DT01QX0xaNCBpcyBub3Qg c2V0CisjIENPTkZJR19aUkFNX0RFRl9DT01QX0xaTyBpcyBub3Qgc2V0CisjIENPTkZJR19aUkFN X0RFRl9DT01QX0xaNEhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pSQU1fREVGX0NPTVBfODQyIGlz IG5vdCBzZXQKK0NPTkZJR19aUkFNX0RFRl9DT01QPSJsem8tcmxlIgorQ09ORklHX1pSQU1fV1JJ VEVCQUNLPXkKKyMgQ09ORklHX1pSQU1fTUVNT1JZX1RSQUNLSU5HIGlzIG5vdCBzZXQKK0NPTkZJ R19aUkFNX01VTFRJX0NPTVA9eQorQ09ORklHX0JMS19ERVZfTE9PUD1tCitDT05GSUdfQkxLX0RF Vl9MT09QX01JTl9DT1VOVD04CitDT05GSUdfQkxLX0RFVl9EUkJEPW0KKyMgQ09ORklHX0RSQkRf RkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX05CRD1tCitDT05GSUdf QkxLX0RFVl9SQU09bQorQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CitDT05GSUdfQkxLX0RF Vl9SQU1fU0laRT0xMzEwNzIKK0NPTkZJR19DRFJPTV9QS1RDRFZEPW0KK0NPTkZJR19DRFJPTV9Q S1RDRFZEX0JVRkZFUlM9OAorQ09ORklHX0NEUk9NX1BLVENEVkRfV0NBQ0hFPXkKK0NPTkZJR19B VEFfT1ZFUl9FVEg9bQorQ09ORklHX1ZJUlRJT19CTEs9bQorQ09ORklHX0JMS19ERVZfUkJEPW0K KyMgQ09ORklHX0JMS19ERVZfVUJMSyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9STkJEPXkK K0NPTkZJR19CTEtfREVWX1JOQkRfQ0xJRU5UPW0KK0NPTkZJR19CTEtfREVWX1JOQkRfU0VSVkVS PW0KKworIworIyBOVk1FIFN1cHBvcnQKKyMKK0NPTkZJR19OVk1FX0NPUkU9bQorQ09ORklHX0JM S19ERVZfTlZNRT1tCitDT05GSUdfTlZNRV9NVUxUSVBBVEg9eQorQ09ORklHX05WTUVfVkVSQk9T RV9FUlJPUlM9eQorQ09ORklHX05WTUVfSFdNT049eQorQ09ORklHX05WTUVfRkFCUklDUz1tCitD T05GSUdfTlZNRV9SRE1BPW0KK0NPTkZJR19OVk1FX0ZDPW0KK0NPTkZJR19OVk1FX1RDUD1tCisj IENPTkZJR19OVk1FX0FVVEggaXMgbm90IHNldAorQ09ORklHX05WTUVfVEFSR0VUPW0KK0NPTkZJ R19OVk1FX1RBUkdFVF9QQVNTVEhSVT15CitDT05GSUdfTlZNRV9UQVJHRVRfTE9PUD1tCitDT05G SUdfTlZNRV9UQVJHRVRfUkRNQT1tCitDT05GSUdfTlZNRV9UQVJHRVRfRkM9bQorQ09ORklHX05W TUVfVEFSR0VUX0ZDTE9PUD1tCitDT05GSUdfTlZNRV9UQVJHRVRfVENQPW0KKyMgQ09ORklHX05W TUVfVEFSR0VUX0FVVEggaXMgbm90IHNldAorIyBlbmQgb2YgTlZNRSBTdXBwb3J0CisKKyMKKyMg TWlzYyBkZXZpY2VzCisjCitDT05GSUdfU0VOU09SU19MSVMzTFYwMkQ9eQorQ09ORklHX0FENTI1 WF9EUE9UPW0KK0NPTkZJR19BRDUyNVhfRFBPVF9JMkM9bQorIyBDT05GSUdfQUQ1MjVYX0RQT1Rf U1BJIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9JUlE9bQorQ09ORklHX1BIQU5UT009bQorQ09O RklHX1RJRk1fQ09SRT1tCitDT05GSUdfVElGTV83WFgxPW0KK0NPTkZJR19JQ1M5MzJTNDAxPW0K K0NPTkZJR19FTkNMT1NVUkVfU0VSVklDRVM9bQorQ09ORklHX1NNUFJPX0VSUk1PTj1tCitDT05G SUdfU01QUk9fTUlTQz1tCitDT05GSUdfSEk2NDIxVjYwMF9JUlE9bQorQ09ORklHX0hQX0lMTz1t CisjIENPTkZJR19BUERTOTgwMkFMUyBpcyBub3Qgc2V0CisjIENPTkZJR19JU0wyOTAwMyBpcyBu b3Qgc2V0CitDT05GSUdfSVNMMjkwMjA9bQorQ09ORklHX1NFTlNPUlNfVFNMMjU1MD1tCitDT05G SUdfU0VOU09SU19CSDE3NzA9bQorQ09ORklHX1NFTlNPUlNfQVBEUzk5MFg9bQorQ09ORklHX0hN QzYzNTI9bQorQ09ORklHX0RTMTY4Mj1tCisjIENPTkZJR19MQVRUSUNFX0VDUDNfQ09ORklHIGlz IG5vdCBzZXQKK0NPTkZJR19TUkFNPXkKK0NPTkZJR19EV19YREFUQV9QQ0lFPW0KK0NPTkZJR19Q Q0lfRU5EUE9JTlRfVEVTVD1tCitDT05GSUdfWElMSU5YX1NERkVDPW0KK0NPTkZJR19NSVNDX1JU U1g9bQorQ09ORklHX0hJU0lfSElLRVlfVVNCPW0KK0NPTkZJR19PUEVOX0RJQ0U9bQorQ09ORklH X1ZDUFVfU1RBTExfREVURUNUT1I9bQorQ09ORklHX0MyUE9SVD1tCisKKyMKKyMgRUVQUk9NIHN1 cHBvcnQKKyMKK0NPTkZJR19FRVBST01fQVQyND1tCisjIENPTkZJR19FRVBST01fQVQyNSBpcyBu b3Qgc2V0CitDT05GSUdfRUVQUk9NX0xFR0FDWT1tCitDT05GSUdfRUVQUk9NX01BWDY4NzU9bQor Q09ORklHX0VFUFJPTV85M0NYNj1tCisjIENPTkZJR19FRVBST01fOTNYWDQ2IGlzIG5vdCBzZXQK K0NPTkZJR19FRVBST01fSURUXzg5SFBFU1g9bQorQ09ORklHX0VFUFJPTV9FRTEwMDQ9bQorIyBl bmQgb2YgRUVQUk9NIHN1cHBvcnQKKworQ09ORklHX0NCNzEwX0NPUkU9bQorIyBDT05GSUdfQ0I3 MTBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NCNzEwX0RFQlVHX0FTU1VNUFRJT05TPXkKKwor IworIyBUZXhhcyBJbnN0cnVtZW50cyBzaGFyZWQgdHJhbnNwb3J0IGxpbmUgZGlzY2lwbGluZQor IworQ09ORklHX1RJX1NUPW0KKyMgZW5kIG9mIFRleGFzIEluc3RydW1lbnRzIHNoYXJlZCB0cmFu c3BvcnQgbGluZSBkaXNjaXBsaW5lCisKK0NPTkZJR19TRU5TT1JTX0xJUzNfU1BJPXkKK0NPTkZJ R19TRU5TT1JTX0xJUzNfSTJDPW0KK0NPTkZJR19BTFRFUkFfU1RBUEw9bQorQ09ORklHX0dFTldR RT1tCitDT05GSUdfR0VOV1FFX1BMQVRGT1JNX0VSUk9SX1JFQ09WRVJZPTAKK0NPTkZJR19FQ0hP PW0KK0NPTkZJR19CQ01fVks9bQorIyBDT05GSUdfQkNNX1ZLX1RUWSBpcyBub3Qgc2V0CitDT05G SUdfTUlTQ19BTENPUl9QQ0k9bQorQ09ORklHX01JU0NfUlRTWF9QQ0k9bQorQ09ORklHX01JU0Nf UlRTWF9VU0I9bQorQ09ORklHX1VBQ0NFPW0KK0NPTkZJR19QVlBBTklDPXkKK0NPTkZJR19QVlBB TklDX01NSU89bQorQ09ORklHX1BWUEFOSUNfUENJPW0KK0NPTkZJR19HUF9QQ0kxWFhYWD1tCisj IGVuZCBvZiBNaXNjIGRldmljZXMKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCitDT05G SUdfU0NTSV9NT0Q9eQorQ09ORklHX1JBSURfQVRUUlM9bQorQ09ORklHX1NDU0lfQ09NTU9OPXkK K0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CitDT05GSUdfU0NTSV9ORVRMSU5LPXkK K0NPTkZJR19TQ1NJX1BST0NfRlM9eQorCisjCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0 YXBlLCBDRC1ST00pCisjCitDT05GSUdfQkxLX0RFVl9TRD15CitDT05GSUdfQ0hSX0RFVl9TVD1t CitDT05GSUdfQkxLX0RFVl9TUj1tCitDT05GSUdfQ0hSX0RFVl9TRz1tCitDT05GSUdfQkxLX0RF Vl9CU0c9eQorQ09ORklHX0NIUl9ERVZfU0NIPW0KK0NPTkZJR19TQ1NJX0VOQ0xPU1VSRT1tCitD T05GSUdfU0NTSV9DT05TVEFOVFM9eQorQ09ORklHX1NDU0lfTE9HR0lORz15CitDT05GSUdfU0NT SV9TQ0FOX0FTWU5DPXkKKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKK0NPTkZJR19TQ1NJX1NQ SV9BVFRSUz1tCitDT05GSUdfU0NTSV9GQ19BVFRSUz1tCitDT05GSUdfU0NTSV9JU0NTSV9BVFRS Uz1tCitDT05GSUdfU0NTSV9TQVNfQVRUUlM9bQorQ09ORklHX1NDU0lfU0FTX0xJQlNBUz1tCitD T05GSUdfU0NTSV9TQVNfQVRBPXkKK0NPTkZJR19TQ1NJX1NBU19IT1NUX1NNUD15CitDT05GSUdf U0NTSV9TUlBfQVRUUlM9bQorIyBlbmQgb2YgU0NTSSBUcmFuc3BvcnRzCisKK0NPTkZJR19TQ1NJ X0xPV0xFVkVMPXkKK0NPTkZJR19JU0NTSV9UQ1A9bQorQ09ORklHX0lTQ1NJX0JPT1RfU1lTRlM9 bQorQ09ORklHX1NDU0lfQ1hHQjNfSVNDU0k9bQorQ09ORklHX1NDU0lfQ1hHQjRfSVNDU0k9bQor Q09ORklHX1NDU0lfQk5YMl9JU0NTST1tCitDT05GSUdfU0NTSV9CTlgyWF9GQ09FPW0KK0NPTkZJ R19CRTJJU0NTST1tCitDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQ9bQorQ09ORklHX1NDU0lf SFBTQT1tCitDT05GSUdfU0NTSV8zV185WFhYPW0KK0NPTkZJR19TQ1NJXzNXX1NBUz1tCitDT05G SUdfU0NTSV9BQ0FSRD1tCitDT05GSUdfU0NTSV9BQUNSQUlEPW0KK0NPTkZJR19TQ1NJX0FJQzdY WFg9bQorQ09ORklHX0FJQzdYWFhfQ01EU19QRVJfREVWSUNFPTMyCitDT05GSUdfQUlDN1hYWF9S RVNFVF9ERUxBWV9NUz0xNTAwMAorIyBDT05GSUdfQUlDN1hYWF9ERUJVR19FTkFCTEUgaXMgbm90 IHNldAorQ09ORklHX0FJQzdYWFhfREVCVUdfTUFTSz0wCitDT05GSUdfQUlDN1hYWF9SRUdfUFJF VFRZX1BSSU5UPXkKK0NPTkZJR19TQ1NJX0FJQzc5WFg9bQorQ09ORklHX0FJQzc5WFhfQ01EU19Q RVJfREVWSUNFPTMyCitDT05GSUdfQUlDNzlYWF9SRVNFVF9ERUxBWV9NUz01MDAwCisjIENPTkZJ R19BSUM3OVhYX0RFQlVHX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfQUlDNzlYWF9ERUJVR19N QVNLPTAKK0NPTkZJR19BSUM3OVhYX1JFR19QUkVUVFlfUFJJTlQ9eQorQ09ORklHX1NDU0lfQUlD OTRYWD1tCisjIENPTkZJR19BSUM5NFhYX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX01W U0FTPW0KKyMgQ09ORklHX1NDU0lfTVZTQVNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NDU0lf TVZTQVNfVEFTS0xFVD15CitDT05GSUdfU0NTSV9NVlVNST1tCitDT05GSUdfU0NTSV9BRFZBTlNZ Uz1tCitDT05GSUdfU0NTSV9BUkNNU1I9bQorQ09ORklHX1NDU0lfRVNBUzJSPW0KK0NPTkZJR19N RUdBUkFJRF9ORVdHRU49eQorQ09ORklHX01FR0FSQUlEX01NPW0KK0NPTkZJR19NRUdBUkFJRF9N QUlMQk9YPW0KK0NPTkZJR19NRUdBUkFJRF9MRUdBQ1k9bQorQ09ORklHX01FR0FSQUlEX1NBUz1t CitDT05GSUdfU0NTSV9NUFQzU0FTPW0KK0NPTkZJR19TQ1NJX01QVDJTQVNfTUFYX1NHRT0xMjgK K0NPTkZJR19TQ1NJX01QVDNTQVNfTUFYX1NHRT0xMjgKK0NPTkZJR19TQ1NJX01QVDJTQVM9bQor Q09ORklHX1NDU0lfTVBJM01SPW0KK0NPTkZJR19TQ1NJX1NNQVJUUFFJPW0KK0NPTkZJR19TQ1NJ X0hQVElPUD1tCitDT05GSUdfU0NTSV9CVVNMT0dJQz1tCisjIENPTkZJR19TQ1NJX0ZMQVNIUE9J TlQgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTVlSQj1tCitDT05GSUdfU0NTSV9NWVJTPW0KK0NP TkZJR19MSUJGQz1tCitDT05GSUdfTElCRkNPRT1tCitDT05GSUdfRkNPRT1tCitDT05GSUdfU0NT SV9TTklDPW0KKyMgQ09ORklHX1NDU0lfU05JQ19ERUJVR19GUyBpcyBub3Qgc2V0CitDT05GSUdf U0NTSV9ETVgzMTkxRD1tCitDT05GSUdfU0NTSV9GRE9NQUlOPW0KK0NPTkZJR19TQ1NJX0ZET01B SU5fUENJPW0KK0NPTkZJR19TQ1NJX0lQUz1tCitDT05GSUdfU0NTSV9JTklUSU89bQorQ09ORklH X1NDU0lfSU5JQTEwMD1tCitDT05GSUdfU0NTSV9TVEVYPW0KK0NPTkZJR19TQ1NJX1NZTTUzQzhY WF8yPW0KK0NPTkZJR19TQ1NJX1NZTTUzQzhYWF9ETUFfQUREUkVTU0lOR19NT0RFPTEKK0NPTkZJ R19TQ1NJX1NZTTUzQzhYWF9ERUZBVUxUX1RBR1M9MTYKK0NPTkZJR19TQ1NJX1NZTTUzQzhYWF9N QVhfVEFHUz02NAorQ09ORklHX1NDU0lfU1lNNTNDOFhYX01NSU89eQorQ09ORklHX1NDU0lfSVBS PW0KK0NPTkZJR19TQ1NJX0lQUl9UUkFDRT15CitDT05GSUdfU0NTSV9JUFJfRFVNUD15CitDT05G SUdfU0NTSV9RTE9HSUNfMTI4MD1tCitDT05GSUdfU0NTSV9RTEFfRkM9bQorQ09ORklHX1RDTV9R TEEyWFhYPW0KKyMgQ09ORklHX1RDTV9RTEEyWFhYX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19T Q1NJX1FMQV9JU0NTST1tCitDT05GSUdfUUVEST1tCitDT05GSUdfUUVERj1tCitDT05GSUdfU0NT SV9MUEZDPW0KKyMgQ09ORklHX1NDU0lfTFBGQ19ERUJVR19GUyBpcyBub3Qgc2V0CitDT05GSUdf U0NTSV9FRkNUPW0KK0NPTkZJR19TQ1NJX0RDMzk1eD1tCitDT05GSUdfU0NTSV9BTTUzQzk3ND1t CitDT05GSUdfU0NTSV9XRDcxOVg9bQorQ09ORklHX1NDU0lfREVCVUc9bQorQ09ORklHX1NDU0lf UE1DUkFJRD1tCitDT05GSUdfU0NTSV9QTTgwMDE9bQorQ09ORklHX1NDU0lfQkZBX0ZDPW0KK0NP TkZJR19TQ1NJX1ZJUlRJTz1tCitDT05GSUdfU0NTSV9DSEVMU0lPX0ZDT0U9bQorQ09ORklHX1ND U0lfTE9XTEVWRUxfUENNQ0lBPXkKK0NPTkZJR19QQ01DSUFfQUhBMTUyWD1tCitDT05GSUdfUENN Q0lBX0ZET01BSU49bQorQ09ORklHX1BDTUNJQV9RTE9HSUM9bQorQ09ORklHX1BDTUNJQV9TWU01 M0M1MDA9bQorQ09ORklHX1NDU0lfREg9eQorQ09ORklHX1NDU0lfREhfUkRBQz1tCitDT05GSUdf U0NTSV9ESF9IUF9TVz1tCitDT05GSUdfU0NTSV9ESF9FTUM9bQorQ09ORklHX1NDU0lfREhfQUxV QT1tCisjIGVuZCBvZiBTQ1NJIGRldmljZSBzdXBwb3J0CisKK0NPTkZJR19BVEE9eQorQ09ORklH X1NBVEFfSE9TVD15CitDT05GSUdfUEFUQV9USU1JTkdTPXkKK0NPTkZJR19BVEFfVkVSQk9TRV9F UlJPUj15CitDT05GSUdfQVRBX0ZPUkNFPXkKK0NPTkZJR19TQVRBX1BNUD15CisKKyMKKyMgQ29u dHJvbGxlcnMgd2l0aCBub24tU0ZGIG5hdGl2ZSBpbnRlcmZhY2UKKyMKK0NPTkZJR19TQVRBX0FI Q0k9eQorQ09ORklHX1NBVEFfTU9CSUxFX0xQTV9QT0xJQ1k9MAorQ09ORklHX1NBVEFfQUhDSV9Q TEFURk9STT1tCitDT05GSUdfQUhDSV9EV0M9bQorQ09ORklHX0FIQ0lfQ0VWQT1tCitDT05GSUdf QUhDSV9TVU5YST1tCitDT05GSUdfU0FUQV9JTklDMTYyWD1tCitDT05GSUdfU0FUQV9BQ0FSRF9B SENJPW0KK0NPTkZJR19TQVRBX1NJTDI0PW0KK0NPTkZJR19BVEFfU0ZGPXkKKworIworIyBTRkYg Y29udHJvbGxlcnMgd2l0aCBjdXN0b20gRE1BIGludGVyZmFjZQorIworQ09ORklHX1BEQ19BRE1B PW0KK0NPTkZJR19TQVRBX1FTVE9SPW0KK0NPTkZJR19TQVRBX1NYND1tCitDT05GSUdfQVRBX0JN RE1BPXkKKworIworIyBTQVRBIFNGRiBjb250cm9sbGVycyB3aXRoIEJNRE1BCisjCitDT05GSUdf QVRBX1BJSVg9bQorQ09ORklHX1NBVEFfRFdDPW0KK0NPTkZJR19TQVRBX0RXQ19PTERfRE1BPXkK K0NPTkZJR19TQVRBX01WPW0KK0NPTkZJR19TQVRBX05WPW0KK0NPTkZJR19TQVRBX1BST01JU0U9 bQorQ09ORklHX1NBVEFfUkNBUj1tCitDT05GSUdfU0FUQV9TSUw9bQorQ09ORklHX1NBVEFfU0lT PW0KK0NPTkZJR19TQVRBX1NWVz1tCitDT05GSUdfU0FUQV9VTEk9bQorQ09ORklHX1NBVEFfVklB PW0KK0NPTkZJR19TQVRBX1ZJVEVTU0U9bQorCisjCisjIFBBVEEgU0ZGIGNvbnRyb2xsZXJzIHdp dGggQk1ETUEKKyMKK0NPTkZJR19QQVRBX0FMST1tCitDT05GSUdfUEFUQV9BTUQ9bQorQ09ORklH X1BBVEFfQVJUT1A9bQorQ09ORklHX1BBVEFfQVRJSVhQPW0KK0NPTkZJR19QQVRBX0FUUDg2N1g9 bQorQ09ORklHX1BBVEFfQ01ENjRYPW0KK0NPTkZJR19QQVRBX0NZUFJFU1M9bQorQ09ORklHX1BB VEFfRUZBUj1tCitDT05GSUdfUEFUQV9IUFQzNjY9bQorQ09ORklHX1BBVEFfSFBUMzdYPW0KK0NP TkZJR19QQVRBX0hQVDNYMk49bQorQ09ORklHX1BBVEFfSFBUM1gzPW0KKyMgQ09ORklHX1BBVEFf SFBUM1gzX0RNQSBpcyBub3Qgc2V0CitDT05GSUdfUEFUQV9JVDgyMTM9bQorQ09ORklHX1BBVEFf SVQ4MjFYPW0KK0NPTkZJR19QQVRBX0pNSUNST049bQorQ09ORklHX1BBVEFfTUFSVkVMTD1tCitD T05GSUdfUEFUQV9ORVRDRUxMPW0KK0NPTkZJR19QQVRBX05JTkpBMzI9bQorQ09ORklHX1BBVEFf TlM4NzQxNT1tCitDT05GSUdfUEFUQV9PTERQSUlYPW0KK0NPTkZJR19QQVRBX09QVElETUE9bQor Q09ORklHX1BBVEFfUERDMjAyN1g9bQorQ09ORklHX1BBVEFfUERDX09MRD1tCitDT05GSUdfUEFU QV9SQURJU1lTPW0KK0NPTkZJR19QQVRBX1JEQz1tCitDT05GSUdfUEFUQV9TQ0g9bQorQ09ORklH X1BBVEFfU0VSVkVSV09SS1M9bQorQ09ORklHX1BBVEFfU0lMNjgwPW0KK0NPTkZJR19QQVRBX1NJ Uz1tCitDT05GSUdfUEFUQV9UT1NISUJBPW0KK0NPTkZJR19QQVRBX1RSSUZMRVg9bQorQ09ORklH X1BBVEFfVklBPW0KK0NPTkZJR19QQVRBX1dJTkJPTkQ9bQorCisjCisjIFBJTy1vbmx5IFNGRiBj b250cm9sbGVycworIworQ09ORklHX1BBVEFfQ01ENjQwX1BDST1tCitDT05GSUdfUEFUQV9NUElJ WD1tCitDT05GSUdfUEFUQV9OUzg3NDEwPW0KK0NPTkZJR19QQVRBX09QVEk9bQorQ09ORklHX1BB VEFfUENNQ0lBPW0KKyMgQ09ORklHX1BBVEFfT0ZfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklH X1BBVEFfUloxMDAwPW0KKworIworIyBHZW5lcmljIGZhbGxiYWNrIC8gbGVnYWN5IGRyaXZlcnMK KyMKK0NPTkZJR19BVEFfR0VORVJJQz1tCisjIENPTkZJR19QQVRBX0xFR0FDWSBpcyBub3Qgc2V0 CitDT05GSUdfTUQ9eQorQ09ORklHX0JMS19ERVZfTUQ9bQorQ09ORklHX01EX0xJTkVBUj1tCitD T05GSUdfTURfUkFJRDA9bQorQ09ORklHX01EX1JBSUQxPW0KK0NPTkZJR19NRF9SQUlEMTA9bQor Q09ORklHX01EX1JBSUQ0NTY9bQorQ09ORklHX01EX01VTFRJUEFUSD1tCitDT05GSUdfTURfRkFV TFRZPW0KK0NPTkZJR19NRF9DTFVTVEVSPW0KK0NPTkZJR19CQ0FDSEU9bQorIyBDT05GSUdfQkNB Q0hFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JDQUNIRV9DTE9TVVJFU19ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19CQ0FDSEVfQVNZTkNfUkVHSVNUUkFUSU9OIGlzIG5vdCBzZXQKK0NP TkZJR19CTEtfREVWX0RNX0JVSUxUSU49eQorQ09ORklHX0JMS19ERVZfRE09bQorIyBDT05GSUdf RE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX0RNX0JVRklPPW0KKyMgQ09ORklHX0RNX0RFQlVH X0JMT0NLX01BTkFHRVJfTE9DS0lORyBpcyBub3Qgc2V0CitDT05GSUdfRE1fQklPX1BSSVNPTj1t CitDT05GSUdfRE1fUEVSU0lTVEVOVF9EQVRBPW0KK0NPTkZJR19ETV9VTlNUUklQRUQ9bQorQ09O RklHX0RNX0NSWVBUPW0KK0NPTkZJR19ETV9TTkFQU0hPVD1tCitDT05GSUdfRE1fVEhJTl9QUk9W SVNJT05JTkc9bQorQ09ORklHX0RNX0NBQ0hFPW0KK0NPTkZJR19ETV9DQUNIRV9TTVE9bQorQ09O RklHX0RNX1dSSVRFQ0FDSEU9bQorQ09ORklHX0RNX0VCUz1tCitDT05GSUdfRE1fRVJBPW0KK0NP TkZJR19ETV9DTE9ORT1tCitDT05GSUdfRE1fTUlSUk9SPW0KK0NPTkZJR19ETV9MT0dfVVNFUlNQ QUNFPW0KK0NPTkZJR19ETV9SQUlEPW0KK0NPTkZJR19ETV9aRVJPPW0KK0NPTkZJR19ETV9NVUxU SVBBVEg9bQorQ09ORklHX0RNX01VTFRJUEFUSF9RTD1tCitDT05GSUdfRE1fTVVMVElQQVRIX1NU PW0KK0NPTkZJR19ETV9NVUxUSVBBVEhfSFNUPW0KK0NPTkZJR19ETV9NVUxUSVBBVEhfSU9BPW0K K0NPTkZJR19ETV9ERUxBWT1tCitDT05GSUdfRE1fRFVTVD1tCitDT05GSUdfRE1fVUVWRU5UPXkK K0NPTkZJR19ETV9GTEFLRVk9bQorQ09ORklHX0RNX1ZFUklUWT1tCisjIENPTkZJR19ETV9WRVJJ VFlfVkVSSUZZX1JPT1RIQVNIX1NJRyBpcyBub3Qgc2V0CitDT05GSUdfRE1fVkVSSVRZX0ZFQz15 CitDT05GSUdfRE1fU1dJVENIPW0KK0NPTkZJR19ETV9MT0dfV1JJVEVTPW0KK0NPTkZJR19ETV9J TlRFR1JJVFk9bQorQ09ORklHX0RNX1pPTkVEPW0KK0NPTkZJR19ETV9BVURJVD15CitDT05GSUdf VEFSR0VUX0NPUkU9bQorQ09ORklHX1RDTV9JQkxPQ0s9bQorQ09ORklHX1RDTV9GSUxFSU89bQor Q09ORklHX1RDTV9QU0NTST1tCitDT05GSUdfVENNX1VTRVIyPW0KK0NPTkZJR19MT09QQkFDS19U QVJHRVQ9bQorQ09ORklHX1RDTV9GQz1tCitDT05GSUdfSVNDU0lfVEFSR0VUPW0KK0NPTkZJR19J U0NTSV9UQVJHRVRfQ1hHQjQ9bQorQ09ORklHX1NCUF9UQVJHRVQ9bQorQ09ORklHX1JFTU9URV9U QVJHRVQ9bQorQ09ORklHX0ZVU0lPTj15CitDT05GSUdfRlVTSU9OX1NQST1tCitDT05GSUdfRlVT SU9OX0ZDPW0KK0NPTkZJR19GVVNJT05fU0FTPW0KK0NPTkZJR19GVVNJT05fTUFYX1NHRT0xMjgK K0NPTkZJR19GVVNJT05fQ1RMPW0KK0NPTkZJR19GVVNJT05fTEFOPW0KKyMgQ09ORklHX0ZVU0lP Tl9MT0dHSU5HIGlzIG5vdCBzZXQKKworIworIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0 CisjCitDT05GSUdfRklSRVdJUkU9bQorQ09ORklHX0ZJUkVXSVJFX09IQ0k9bQorQ09ORklHX0ZJ UkVXSVJFX1NCUDI9bQorQ09ORklHX0ZJUkVXSVJFX05FVD1tCitDT05GSUdfRklSRVdJUkVfTk9T WT1tCisjIGVuZCBvZiBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CisKK0NPTkZJR19ORVRE RVZJQ0VTPXkKK0NPTkZJR19NSUk9bQorQ09ORklHX05FVF9DT1JFPXkKK0NPTkZJR19CT05ESU5H PW0KK0NPTkZJR19EVU1NWT1tCitDT05GSUdfV0lSRUdVQVJEPW0KKyMgQ09ORklHX1dJUkVHVUFS RF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRVFVQUxJWkVSPW0KK0NPTkZJR19ORVRfRkM9eQor Q09ORklHX0lGQj1tCitDT05GSUdfTkVUX1RFQU09bQorQ09ORklHX05FVF9URUFNX01PREVfQlJP QURDQVNUPW0KK0NPTkZJR19ORVRfVEVBTV9NT0RFX1JPVU5EUk9CSU49bQorQ09ORklHX05FVF9U RUFNX01PREVfUkFORE9NPW0KK0NPTkZJR19ORVRfVEVBTV9NT0RFX0FDVElWRUJBQ0tVUD1tCitD T05GSUdfTkVUX1RFQU1fTU9ERV9MT0FEQkFMQU5DRT1tCitDT05GSUdfTUFDVkxBTj1tCitDT05G SUdfTUFDVlRBUD1tCitDT05GSUdfSVBWTEFOX0wzUz15CitDT05GSUdfSVBWTEFOPW0KK0NPTkZJ R19JUFZUQVA9bQorQ09ORklHX1ZYTEFOPW0KK0NPTkZJR19HRU5FVkU9bQorQ09ORklHX0JBUkVV RFA9bQorQ09ORklHX0dUUD1tCitDT05GSUdfQU1UPW0KK0NPTkZJR19NQUNTRUM9bQorQ09ORklH X05FVENPTlNPTEU9bQorQ09ORklHX05FVENPTlNPTEVfRFlOQU1JQz15CitDT05GSUdfTkVUUE9M TD15CitDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUj15CitDT05GSUdfTlRCX05FVERFVj1tCitD T05GSUdfUklPTkVUPW0KK0NPTkZJR19SSU9ORVRfVFhfU0laRT0xMjgKK0NPTkZJR19SSU9ORVRf UlhfU0laRT0xMjgKK0NPTkZJR19UVU49bQorQ09ORklHX1RBUD1tCisjIENPTkZJR19UVU5fVk5F VF9DUk9TU19MRSBpcyBub3Qgc2V0CitDT05GSUdfVkVUSD1tCitDT05GSUdfVklSVElPX05FVD1t CitDT05GSUdfTkxNT049bQorQ09ORklHX05FVF9WUkY9bQorQ09ORklHX1ZTT0NLTU9OPW0KK0NP TkZJR19NSElfTkVUPW0KK0NPTkZJR19TVU5HRU1fUEhZPW0KKyMgQ09ORklHX0FSQ05FVCBpcyBu b3Qgc2V0CitDT05GSUdfQVRNX0RSSVZFUlM9eQorQ09ORklHX0FUTV9EVU1NWT1tCitDT05GSUdf QVRNX1RDUD1tCitDT05GSUdfQVRNX0xBTkFJPW0KK0NPTkZJR19BVE1fRU5JPW0KKyMgQ09ORklH X0FUTV9FTklfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0FUTV9FTklfVFVORV9CVVJTVD15CitD T05GSUdfQVRNX0VOSV9CVVJTVF9UWF8xNlc9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfVFhfOFc9 eQorQ09ORklHX0FUTV9FTklfQlVSU1RfVFhfNFc9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfVFhf Mlc9eQorQ09ORklHX0FUTV9FTklfQlVSU1RfUlhfMTZXPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNU X1JYXzhXPXkKK0NPTkZJR19BVE1fRU5JX0JVUlNUX1JYXzRXPXkKK0NPTkZJR19BVE1fRU5JX0JV UlNUX1JYXzJXPXkKK0NPTkZJR19BVE1fTklDU1RBUj1tCitDT05GSUdfQVRNX05JQ1NUQVJfVVNF X1NVTkk9eQorQ09ORklHX0FUTV9OSUNTVEFSX1VTRV9JRFQ3NzEwNT15CitDT05GSUdfQVRNX0lE VDc3MjUyPW0KKyMgQ09ORklHX0FUTV9JRFQ3NzI1Ml9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJ R19BVE1fSURUNzcyNTJfUkNWX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfQVRNX0lEVDc3MjUyX1VT RV9TVU5JPXkKK0NPTkZJR19BVE1fSUE9bQorIyBDT05GSUdfQVRNX0lBX0RFQlVHIGlzIG5vdCBz ZXQKK0NPTkZJR19BVE1fRk9SRTIwMEU9bQorQ09ORklHX0FUTV9GT1JFMjAwRV9VU0VfVEFTS0xF VD15CitDT05GSUdfQVRNX0ZPUkUyMDBFX1RYX1JFVFJZPTE2CitDT05GSUdfQVRNX0ZPUkUyMDBF X0RFQlVHPTAKK0NPTkZJR19BVE1fSEU9bQorQ09ORklHX0FUTV9IRV9VU0VfU1VOST15CitDT05G SUdfQVRNX1NPTE9TPW0KKyMgQ09ORklHX0NBSUZfRFJJVkVSUyBpcyBub3Qgc2V0CisKKyMKKyMg RGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSBkcml2ZXJzCisjCitDT05GSUdfQjUzPW0K K0NPTkZJR19CNTNfU1BJX0RSSVZFUj1tCitDT05GSUdfQjUzX01ESU9fRFJJVkVSPW0KK0NPTkZJ R19CNTNfTU1BUF9EUklWRVI9bQorQ09ORklHX0I1M19TUkFCX0RSSVZFUj1tCitDT05GSUdfQjUz X1NFUkRFUz1tCitDT05GSUdfTkVUX0RTQV9CQ01fU0YyPW0KK0NPTkZJR19ORVRfRFNBX0xPT1A9 bQorQ09ORklHX05FVF9EU0FfSElSU0NITUFOTl9IRUxMQ1JFRUs9bQorQ09ORklHX05FVF9EU0Ff TEFOVElRX0dTV0lQPW0KK0NPTkZJR19ORVRfRFNBX01UNzUzMD1tCitDT05GSUdfTkVUX0RTQV9N VDc1MzBfTURJTz1tCitDT05GSUdfTkVUX0RTQV9NVDc1MzBfTU1JTz1tCitDT05GSUdfTkVUX0RT QV9NVjg4RTYwNjA9bQorQ09ORklHX05FVF9EU0FfTUlDUk9DSElQX0tTWl9DT01NT049bQorQ09O RklHX05FVF9EU0FfTUlDUk9DSElQX0tTWjk0NzdfSTJDPW0KKyMgQ09ORklHX05FVF9EU0FfTUlD Uk9DSElQX0tTWl9TUEkgaXMgbm90IHNldAorQ09ORklHX05FVF9EU0FfTUlDUk9DSElQX0tTWl9Q VFA9eQorQ09ORklHX05FVF9EU0FfTUlDUk9DSElQX0tTWjg4NjNfU01JPW0KK0NPTkZJR19ORVRf RFNBX01WODhFNlhYWD1tCitDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfUFRQPXkKK0NPTkZJR19O RVRfRFNBX01TQ0NfRkVMSVhfRFNBX0xJQj1tCitDT05GSUdfTkVUX0RTQV9NU0NDX09DRUxPVF9F WFQ9bQorQ09ORklHX05FVF9EU0FfTVNDQ19TRVZJTExFPW0KKyMgQ09ORklHX05FVF9EU0FfQVI5 MzMxIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRFNBX1FDQThLPW0KK0NPTkZJR19ORVRfRFNBX1FD QThLX0xFRFNfU1VQUE9SVD15CitDT05GSUdfTkVUX0RTQV9TSkExMTA1PW0KK0NPTkZJR19ORVRf RFNBX1NKQTExMDVfUFRQPXkKK0NPTkZJR19ORVRfRFNBX1NKQTExMDVfVEFTPXkKK0NPTkZJR19O RVRfRFNBX1NKQTExMDVfVkw9eQorQ09ORklHX05FVF9EU0FfWFJTNzAwWD1tCitDT05GSUdfTkVU X0RTQV9YUlM3MDBYX0kyQz1tCitDT05GSUdfTkVUX0RTQV9YUlM3MDBYX01ESU89bQorQ09ORklH X05FVF9EU0FfUkVBTFRFSz1tCitDT05GSUdfTkVUX0RTQV9SRUFMVEVLX01ESU89bQorQ09ORklH X05FVF9EU0FfUkVBTFRFS19TTUk9bQorQ09ORklHX05FVF9EU0FfUkVBTFRFS19SVEw4MzY1TUI9 bQorQ09ORklHX05FVF9EU0FfUkVBTFRFS19SVEw4MzY2UkI9bQorQ09ORklHX05FVF9EU0FfU01T Q19MQU45MzAzPW0KK0NPTkZJR19ORVRfRFNBX1NNU0NfTEFOOTMwM19JMkM9bQorQ09ORklHX05F VF9EU0FfU01TQ19MQU45MzAzX01ESU89bQorQ09ORklHX05FVF9EU0FfVklURVNTRV9WU0M3M1hY PW0KK0NPTkZJR19ORVRfRFNBX1ZJVEVTU0VfVlNDNzNYWF9TUEk9bQorQ09ORklHX05FVF9EU0Ff VklURVNTRV9WU0M3M1hYX1BMQVRGT1JNPW0KKyMgZW5kIG9mIERpc3RyaWJ1dGVkIFN3aXRjaCBB cmNoaXRlY3R1cmUgZHJpdmVycworCitDT05GSUdfRVRIRVJORVQ9eQorQ09ORklHX01ESU89bQor Q09ORklHX05FVF9WRU5ET1JfM0NPTT15CitDT05GSUdfUENNQ0lBXzNDNTc0PW0KK0NPTkZJR19Q Q01DSUFfM0M1ODk9bQorQ09ORklHX1ZPUlRFWD1tCitDT05GSUdfVFlQSE9PTj1tCitDT05GSUdf TkVUX1ZFTkRPUl9BREFQVEVDPXkKK0NPTkZJR19BREFQVEVDX1NUQVJGSVJFPW0KK0NPTkZJR19O RVRfVkVORE9SX0FHRVJFPXkKK0NPTkZJR19FVDEzMVg9bQorQ09ORklHX05FVF9WRU5ET1JfQUxB Q1JJVEVDSD15CitDT05GSUdfU0xJQ09TUz1tCitDT05GSUdfTkVUX1ZFTkRPUl9BTExXSU5ORVI9 eQorQ09ORklHX1NVTjRJX0VNQUM9bQorQ09ORklHX05FVF9WRU5ET1JfQUxURU9OPXkKK0NPTkZJ R19BQ0VOSUM9bQorIyBDT05GSUdfQUNFTklDX09NSVRfVElHT05fSSBpcyBub3Qgc2V0CisjIENP TkZJR19BTFRFUkFfVFNFIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9SX0FNQVpPTj15CitD T05GSUdfRU5BX0VUSEVSTkVUPW0KK0NPTkZJR19ORVRfVkVORE9SX0FNRD15CitDT05GSUdfQU1E ODExMV9FVEg9bQorQ09ORklHX1BDTkVUMzI9bQorQ09ORklHX1BDTUNJQV9OTUNMQU49bQorQ09O RklHX1BEU19DT1JFPW0KK0NPTkZJR19ORVRfVkVORE9SX0FRVUFOVElBPXkKK0NPTkZJR19BUVRJ T049bQorQ09ORklHX05FVF9WRU5ET1JfQVJDPXkKK0NPTkZJR19ORVRfVkVORE9SX0FTSVg9eQor Q09ORklHX1NQSV9BWDg4Nzk2Qz1tCisjIENPTkZJR19TUElfQVg4ODc5NkNfQ09NUFJFU1NJT04g aXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfQVRIRVJPUz15CitDT05GSUdfQVRMMj1tCitD T05GSUdfQVRMMT1tCitDT05GSUdfQVRMMUU9bQorQ09ORklHX0FUTDFDPW0KK0NPTkZJR19BTFg9 bQorQ09ORklHX05FVF9WRU5ET1JfQlJPQURDT009eQorQ09ORklHX0I0ND1tCitDT05GSUdfQjQ0 X1BDSV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDRfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJ R19CNDRfUENJPXkKK0NPTkZJR19CQ01HRU5FVD1tCitDT05GSUdfQk5YMj1tCitDT05GSUdfQ05J Qz1tCitDT05GSUdfVElHT04zPW0KK0NPTkZJR19USUdPTjNfSFdNT049eQorQ09ORklHX0JOWDJY PW0KK0NPTkZJR19CTlgyWF9TUklPVj15CitDT05GSUdfU1lTVEVNUE9SVD1tCitDT05GSUdfQk5Y VD1tCitDT05GSUdfQk5YVF9TUklPVj15CitDT05GSUdfQk5YVF9GTE9XRVJfT0ZGTE9BRD15CitD T05GSUdfQk5YVF9EQ0I9eQorQ09ORklHX0JOWFRfSFdNT049eQorQ09ORklHX05FVF9WRU5ET1Jf Q0FERU5DRT15CitDT05GSUdfTUFDQj1tCitDT05GSUdfTUFDQl9VU0VfSFdTVEFNUD15CitDT05G SUdfTUFDQl9QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfQ0FWSVVNPXkKK0NPTkZJR19USFVOREVS X05JQ19QRj1tCitDT05GSUdfVEhVTkRFUl9OSUNfVkY9bQorQ09ORklHX1RIVU5ERVJfTklDX0JH WD1tCitDT05GSUdfVEhVTkRFUl9OSUNfUkdYPW0KK0NPTkZJR19DQVZJVU1fUFRQPW0KK0NPTkZJ R19MSVFVSURJTz1tCitDT05GSUdfTElRVUlESU9fVkY9bQorQ09ORklHX05FVF9WRU5ET1JfQ0hF TFNJTz15CitDT05GSUdfQ0hFTFNJT19UMT1tCitDT05GSUdfQ0hFTFNJT19UMV8xRz15CitDT05G SUdfQ0hFTFNJT19UMz1tCitDT05GSUdfQ0hFTFNJT19UND1tCitDT05GSUdfQ0hFTFNJT19UNF9E Q0I9eQorQ09ORklHX0NIRUxTSU9fVDRfRkNPRT15CitDT05GSUdfQ0hFTFNJT19UNFZGPW0KK0NP TkZJR19DSEVMU0lPX0xJQj1tCitDT05GSUdfQ0hFTFNJT19JTkxJTkVfQ1JZUFRPPXkKK0NPTkZJ R19DSEVMU0lPX0lQU0VDX0lOTElORT1tCitDT05GSUdfQ0hFTFNJT19UTFNfREVWSUNFPW0KK0NP TkZJR19ORVRfVkVORE9SX0NJU0NPPXkKK0NPTkZJR19FTklDPW0KK0NPTkZJR19ORVRfVkVORE9S X0NPUlRJTkE9eQorQ09ORklHX0dFTUlOSV9FVEhFUk5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl9E QVZJQ09NPXkKK0NPTkZJR19ETTkwNTE9bQorQ09ORklHX0RORVQ9bQorQ09ORklHX05FVF9WRU5E T1JfREVDPXkKK0NPTkZJR19ORVRfVFVMSVA9eQorQ09ORklHX0RFMjEwNFg9bQorQ09ORklHX0RF MjEwNFhfRFNMPTAKK0NPTkZJR19UVUxJUD1tCisjIENPTkZJR19UVUxJUF9NV0kgaXMgbm90IHNl dAorIyBDT05GSUdfVFVMSVBfTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVFVMSVBfTkFQST15CitD T05GSUdfVFVMSVBfTkFQSV9IV19NSVRJR0FUSU9OPXkKK0NPTkZJR19XSU5CT05EXzg0MD1tCitD T05GSUdfRE05MTAyPW0KK0NPTkZJR19VTEk1MjZYPW0KK0NPTkZJR19QQ01DSUFfWElSQ09NPW0K K0NPTkZJR19ORVRfVkVORE9SX0RMSU5LPXkKK0NPTkZJR19ETDJLPW0KK0NPTkZJR19TVU5EQU5D RT1tCisjIENPTkZJR19TVU5EQU5DRV9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfVkVORE9S X0VNVUxFWD15CitDT05GSUdfQkUyTkVUPW0KK0NPTkZJR19CRTJORVRfSFdNT049eQorQ09ORklH X0JFMk5FVF9CRTI9eQorQ09ORklHX0JFMk5FVF9CRTM9eQorQ09ORklHX0JFMk5FVF9MQU5DRVI9 eQorQ09ORklHX0JFMk5FVF9TS1lIQVdLPXkKK0NPTkZJR19ORVRfVkVORE9SX0VOR0xFREVSPXkK K0NPTkZJR19UU05FUD1tCisjIENPTkZJR19UU05FUF9TRUxGVEVTVFMgaXMgbm90IHNldAorQ09O RklHX05FVF9WRU5ET1JfRVpDSElQPXkKK0NPTkZJR19FWkNISVBfTlBTX01BTkFHRU1FTlRfRU5F VD1tCitDT05GSUdfTkVUX1ZFTkRPUl9GVUpJVFNVPXkKK0NPTkZJR19QQ01DSUFfRk1WSjE4WD1t CitDT05GSUdfTkVUX1ZFTkRPUl9GVU5HSUJMRT15CitDT05GSUdfRlVOX0NPUkU9bQorQ09ORklH X0ZVTl9FVEg9bQorQ09ORklHX05FVF9WRU5ET1JfR09PR0xFPXkKK0NPTkZJR19ORVRfVkVORE9S X0hVQVdFST15CitDT05GSUdfTkVUX1ZFTkRPUl9JODI1WFg9eQorQ09ORklHX05FVF9WRU5ET1Jf SU5URUw9eQorQ09ORklHX0UxMDA9bQorQ09ORklHX0UxMDAwPW0KK0NPTkZJR19FMTAwMEU9bQor Q09ORklHX0lHQj1tCitDT05GSUdfSUdCX0hXTU9OPXkKK0NPTkZJR19JR0JWRj1tCitDT05GSUdf SVhHQkU9bQorQ09ORklHX0lYR0JFX0hXTU9OPXkKK0NPTkZJR19JWEdCRV9EQ0I9eQorQ09ORklH X0lYR0JFX0lQU0VDPXkKK0NPTkZJR19JWEdCRVZGPW0KK0NPTkZJR19JWEdCRVZGX0lQU0VDPXkK K0NPTkZJR19JNDBFPW0KK0NPTkZJR19JNDBFX0RDQj15CitDT05GSUdfSUFWRj1tCitDT05GSUdf STQwRVZGPW0KK0NPTkZJR19JQ0U9bQorQ09ORklHX0lDRV9TV0lUQ0hERVY9eQorQ09ORklHX0ZN MTBLPW0KK0NPTkZJR19JR0M9bQorQ09ORklHX0pNRT1tCitDT05GSUdfTkVUX1ZFTkRPUl9BREk9 eQorQ09ORklHX0FESU4xMTEwPW0KK0NPTkZJR19ORVRfVkVORE9SX0xJVEVYPXkKK0NPTkZJR19M SVRFWF9MSVRFRVRIPW0KK0NPTkZJR19ORVRfVkVORE9SX01BUlZFTEw9eQorQ09ORklHX01WTURJ Tz1tCitDT05GSUdfU0tHRT1tCisjIENPTkZJR19TS0dFX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJ R19TS0dFX0dFTkVTSVM9eQorQ09ORklHX1NLWTI9bQorIyBDT05GSUdfU0tZMl9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19PQ1RFT05fRVAgaXMgbm90IHNldAorQ09ORklHX1BSRVNURVJBPW0K K0NPTkZJR19QUkVTVEVSQV9QQ0k9bQorQ09ORklHX05FVF9WRU5ET1JfTUVMTEFOT1g9eQorQ09O RklHX01MWDRfRU49bQorQ09ORklHX01MWDRfRU5fRENCPXkKK0NPTkZJR19NTFg0X0NPUkU9bQor Q09ORklHX01MWDRfREVCVUc9eQorQ09ORklHX01MWDRfQ09SRV9HRU4yPXkKK0NPTkZJR19NTFg1 X0NPUkU9bQorQ09ORklHX01MWDVfRlBHQT15CitDT05GSUdfTUxYNV9DT1JFX0VOPXkKK0NPTkZJ R19NTFg1X0VOX0FSRlM9eQorQ09ORklHX01MWDVfRU5fUlhORkM9eQorQ09ORklHX01MWDVfTVBG Uz15CitDT05GSUdfTUxYNV9FU1dJVENIPXkKK0NPTkZJR19NTFg1X0JSSURHRT15CitDT05GSUdf TUxYNV9DTFNfQUNUPXkKK0NPTkZJR19NTFg1X1RDX0NUPXkKK0NPTkZJR19NTFg1X1RDX1NBTVBM RT15CitDT05GSUdfTUxYNV9DT1JFX0VOX0RDQj15CitDT05GSUdfTUxYNV9DT1JFX0lQT0lCPXkK KyMgQ09ORklHX01MWDVfRU5fTUFDU0VDIGlzIG5vdCBzZXQKK0NPTkZJR19NTFg1X0VOX0lQU0VD PXkKK0NPTkZJR19NTFg1X0VOX1RMUz15CitDT05GSUdfTUxYNV9TV19TVEVFUklORz15CitDT05G SUdfTUxYNV9TRj15CitDT05GSUdfTUxYNV9TRl9NQU5BR0VSPXkKK0NPTkZJR19NTFhTV19DT1JF PW0KK0NPTkZJR19NTFhTV19DT1JFX0hXTU9OPXkKK0NPTkZJR19NTFhTV19DT1JFX1RIRVJNQUw9 eQorQ09ORklHX01MWFNXX1BDST1tCitDT05GSUdfTUxYU1dfSTJDPW0KK0NPTkZJR19NTFhTV19T UEVDVFJVTT1tCitDT05GSUdfTUxYU1dfU1BFQ1RSVU1fRENCPXkKK0NPTkZJR19NTFhTV19NSU5J TUFMPW0KK0NPTkZJR19NTFhGVz1tCitDT05GSUdfTkVUX1ZFTkRPUl9NSUNSRUw9eQorQ09ORklH X0tTODg0Mj1tCitDT05GSUdfS1M4ODUxPW0KK0NPTkZJR19LUzg4NTFfTUxMPW0KK0NPTkZJR19L U1o4ODRYX1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9NSUNST0NISVA9eQorQ09ORklHX0VOQzI4 SjYwPW0KKyMgQ09ORklHX0VOQzI4SjYwX1dSSVRFVkVSSUZZIGlzIG5vdCBzZXQKK0NPTkZJR19F TkNYMjRKNjAwPW0KK0NPTkZJR19MQU43NDNYPW0KK0NPTkZJR19MQU45NjZYX1NXSVRDSD1tCitD T05GSUdfVkNBUD15CitDT05GSUdfTkVUX1ZFTkRPUl9NSUNST1NFTUk9eQorQ09ORklHX01TQ0Nf T0NFTE9UX1NXSVRDSF9MSUI9bQorQ09ORklHX01TQ0NfT0NFTE9UX1NXSVRDSD1tCitDT05GSUdf TkVUX1ZFTkRPUl9NSUNST1NPRlQ9eQorQ09ORklHX05FVF9WRU5ET1JfTVlSST15CitDT05GSUdf TVlSSTEwR0U9bQorQ09ORklHX0ZFQUxOWD1tCitDT05GSUdfTkVUX1ZFTkRPUl9OST15CitDT05G SUdfTklfWEdFX01BTkFHRU1FTlRfRU5FVD1tCitDT05GSUdfTkVUX1ZFTkRPUl9OQVRTRU1JPXkK K0NPTkZJR19OQVRTRU1JPW0KK0NPTkZJR19OUzgzODIwPW0KK0NPTkZJR19ORVRfVkVORE9SX05F VEVSSU9OPXkKK0NPTkZJR19TMklPPW0KK0NPTkZJR19ORVRfVkVORE9SX05FVFJPTk9NRT15CitD T05GSUdfTkZQPW0KK0NPTkZJR19ORlBfQVBQX0ZMT1dFUj15CitDT05GSUdfTkZQX0FQUF9BQk1f TklDPXkKK0NPTkZJR19ORlBfTkVUX0lQU0VDPXkKKyMgQ09ORklHX05GUF9ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfTkVUX1ZFTkRPUl84MzkwPXkKK0NPTkZJR19QQ01DSUFfQVhORVQ9bQorQ09O RklHX05FMktfUENJPW0KK0NPTkZJR19QQ01DSUFfUENORVQ9bQorQ09ORklHX05FVF9WRU5ET1Jf TlZJRElBPXkKK0NPTkZJR19GT1JDRURFVEg9bQorQ09ORklHX05FVF9WRU5ET1JfT0tJPXkKK0NP TkZJR19FVEhPQz1tCitDT05GSUdfTkVUX1ZFTkRPUl9QQUNLRVRfRU5HSU5FUz15CitDT05GSUdf SEFNQUNIST1tCitDT05GSUdfWUVMTE9XRklOPW0KK0NPTkZJR19ORVRfVkVORE9SX1BFTlNBTkRP PXkKK0NPTkZJR19JT05JQz1tCitDT05GSUdfTkVUX1ZFTkRPUl9RTE9HSUM9eQorQ09ORklHX1FM QTNYWFg9bQorQ09ORklHX1FMQ05JQz1tCitDT05GSUdfUUxDTklDX1NSSU9WPXkKK0NPTkZJR19R TENOSUNfRENCPXkKK0NPTkZJR19RTENOSUNfSFdNT049eQorQ09ORklHX05FVFhFTl9OSUM9bQor Q09ORklHX1FFRD1tCitDT05GSUdfUUVEX0xMMj15CitDT05GSUdfUUVEX1NSSU9WPXkKK0NPTkZJ R19RRURFPW0KK0NPTkZJR19RRURfUkRNQT15CitDT05GSUdfUUVEX0lTQ1NJPXkKK0NPTkZJR19R RURfRkNPRT15CitDT05GSUdfUUVEX09PTz15CitDT05GSUdfTkVUX1ZFTkRPUl9CUk9DQURFPXkK K0NPTkZJR19CTkE9bQorQ09ORklHX05FVF9WRU5ET1JfUVVBTENPTU09eQorQ09ORklHX1FDQTcw MDA9bQorQ09ORklHX1FDQTcwMDBfU1BJPW0KK0NPTkZJR19RQ0E3MDAwX1VBUlQ9bQorQ09ORklH X1FDT01fRU1BQz1tCitDT05GSUdfUk1ORVQ9bQorQ09ORklHX05FVF9WRU5ET1JfUkRDPXkKK0NP TkZJR19SNjA0MD1tCitDT05GSUdfTkVUX1ZFTkRPUl9SRUFMVEVLPXkKK0NPTkZJR184MTM5Q1A9 bQorQ09ORklHXzgxMzlUT089bQorIyBDT05GSUdfODEzOVRPT19QSU8gaXMgbm90IHNldAorIyBD T05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAorQ09ORklHXzgxMzlUT09fODEy OT15CisjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CitDT05GSUdfUjgxNjk9 bQorQ09ORklHX05FVF9WRU5ET1JfUkVORVNBUz15CitDT05GSUdfU0hfRVRIPW0KK0NPTkZJR19S QVZCPW0KK0NPTkZJR19SRU5FU0FTX0VUSEVSX1NXSVRDSD1tCitDT05GSUdfTkVUX1ZFTkRPUl9S T0NLRVI9eQorQ09ORklHX1JPQ0tFUj1tCitDT05GSUdfTkVUX1ZFTkRPUl9TQU1TVU5HPXkKK0NP TkZJR19TWEdCRV9FVEg9bQorQ09ORklHX05FVF9WRU5ET1JfU0VFUT15CitDT05GSUdfTkVUX1ZF TkRPUl9TSUxBTj15CitDT05GSUdfU0M5MjAzMT1tCitDT05GSUdfTkVUX1ZFTkRPUl9TSVM9eQor Q09ORklHX1NJUzkwMD1tCitDT05GSUdfU0lTMTkwPW0KK0NPTkZJR19ORVRfVkVORE9SX1NPTEFS RkxBUkU9eQorQ09ORklHX1NGQz1tCitDT05GSUdfU0ZDX01URD15CitDT05GSUdfU0ZDX01DRElf TU9OPXkKK0NPTkZJR19TRkNfU1JJT1Y9eQorQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkc9eQorQ09O RklHX1NGQ19GQUxDT049bQorQ09ORklHX1NGQ19GQUxDT05fTVREPXkKKyMgQ09ORklHX1NGQ19T SUVOQSBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1ZFTkRPUl9TTVNDPXkKK0NPTkZJR19QQ01DSUFf U01DOTFDOTI9bQorQ09ORklHX0VQSUMxMDA9bQorQ09ORklHX1NNU0M5MTFYPW0KK0NPTkZJR19T TVNDOTQyMD1tCitDT05GSUdfTkVUX1ZFTkRPUl9TT0NJT05FWFQ9eQorQ09ORklHX05FVF9WRU5E T1JfU1RNSUNSTz15CitDT05GSUdfU1RNTUFDX0VUSD1tCisjIENPTkZJR19TVE1NQUNfU0VMRlRF U1RTIGlzIG5vdCBzZXQKK0NPTkZJR19TVE1NQUNfUExBVEZPUk09bQorQ09ORklHX0RXTUFDX0RX Q19RT1NfRVRIPW0KK0NPTkZJR19EV01BQ19HRU5FUklDPW0KK0NPTkZJR19EV01BQ19TVEFSRklW RT1tCitDT05GSUdfRFdNQUNfU1VOWEk9bQorQ09ORklHX0RXTUFDX1NVTjhJPW0KK0NPTkZJR19E V01BQ19JTlRFTF9QTEFUPW0KK0NPTkZJR19EV01BQ19MT09OR1NPTj1tCitDT05GSUdfU1RNTUFD X1BDST1tCitDT05GSUdfTkVUX1ZFTkRPUl9TVU49eQorQ09ORklHX0hBUFBZTUVBTD1tCitDT05G SUdfU1VOR0VNPW0KK0NPTkZJR19DQVNTSU5JPW0KK0NPTkZJR19OSVU9bQorQ09ORklHX05FVF9W RU5ET1JfU1lOT1BTWVM9eQorQ09ORklHX0RXQ19YTEdNQUM9bQorQ09ORklHX0RXQ19YTEdNQUNf UENJPW0KK0NPTkZJR19ORVRfVkVORE9SX1RFSFVUST15CitDT05GSUdfVEVIVVRJPW0KK0NPTkZJ R19ORVRfVkVORE9SX1RJPXkKKyMgQ09ORklHX1RJX0NQU1dfUEhZX1NFTCBpcyBub3Qgc2V0CitD T05GSUdfVExBTj1tCitDT05GSUdfTkVUX1ZFTkRPUl9WRVJURVhDT009eQorQ09ORklHX01TRTEw Mlg9bQorQ09ORklHX05FVF9WRU5ET1JfVklBPXkKK0NPTkZJR19WSUFfUkhJTkU9bQorQ09ORklH X1ZJQV9SSElORV9NTUlPPXkKK0NPTkZJR19WSUFfVkVMT0NJVFk9bQorQ09ORklHX05FVF9WRU5E T1JfV0FOR1hVTj15CitDT05GSUdfTElCV1g9bQorQ09ORklHX05HQkU9bQorIyBDT05GSUdfVFhH QkUgaXMgbm90IHNldAorQ09ORklHX05FVF9WRU5ET1JfV0laTkVUPXkKK0NPTkZJR19XSVpORVRf VzUxMDA9bQorQ09ORklHX1dJWk5FVF9XNTMwMD1tCisjIENPTkZJR19XSVpORVRfQlVTX0RJUkVD VCBpcyBub3Qgc2V0CisjIENPTkZJR19XSVpORVRfQlVTX0lORElSRUNUIGlzIG5vdCBzZXQKK0NP TkZJR19XSVpORVRfQlVTX0FOWT15CitDT05GSUdfV0laTkVUX1c1MTAwX1NQST1tCitDT05GSUdf TkVUX1ZFTkRPUl9YSUxJTlg9eQorQ09ORklHX1hJTElOWF9FTUFDTElURT1tCitDT05GSUdfWElM SU5YX0FYSV9FTUFDPW0KK0NPTkZJR19YSUxJTlhfTExfVEVNQUM9bQorQ09ORklHX05FVF9WRU5E T1JfWElSQ09NPXkKK0NPTkZJR19QQ01DSUFfWElSQzJQUz1tCitDT05GSUdfRkREST1tCitDT05G SUdfREVGWFg9bQorQ09ORklHX1NLRlA9bQorQ09ORklHX0hJUFBJPXkKK0NPTkZJR19ST0FEUlVO TkVSPW0KKyMgQ09ORklHX1JPQURSVU5ORVJfTEFSR0VfUklOR1MgaXMgbm90IHNldAorQ09ORklH X1BIWUxJTks9bQorQ09ORklHX1BIWUxJQj15CitDT05GSUdfU1dQSFk9eQorQ09ORklHX0xFRF9U UklHR0VSX1BIWT15CitDT05GSUdfUEhZTElCX0xFRFM9eQorQ09ORklHX0ZJWEVEX1BIWT15CitD T05GSUdfU0ZQPW0KKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCitDT05GSUdfQU1E X1BIWT1tCitDT05GSUdfQURJTl9QSFk9bQorIyBDT05GSUdfQURJTjExMDBfUEhZIGlzIG5vdCBz ZXQKK0NPTkZJR19BUVVBTlRJQV9QSFk9bQorQ09ORklHX0FYODg3OTZCX1BIWT1tCitDT05GSUdf QlJPQURDT01fUEhZPW0KK0NPTkZJR19CQ001NDE0MF9QSFk9bQorQ09ORklHX0JDTTdYWFhfUEhZ PW0KK0NPTkZJR19CQ004NDg4MV9QSFk9eQorQ09ORklHX0JDTTg3WFhfUEhZPW0KK0NPTkZJR19C Q01fTkVUX1BIWUxJQj1tCitDT05GSUdfQ0lDQURBX1BIWT1tCitDT05GSUdfQ09SVElOQV9QSFk9 bQorQ09ORklHX0RBVklDT01fUEhZPW0KK0NPTkZJR19JQ1BMVVNfUEhZPW0KK0NPTkZJR19MWFRf UEhZPW0KK0NPTkZJR19JTlRFTF9YV0FZX1BIWT1tCitDT05GSUdfTFNJX0VUMTAxMUNfUEhZPW0K K0NPTkZJR19NQVJWRUxMX1BIWT1tCitDT05GSUdfTUFSVkVMTF8xMEdfUEhZPW0KK0NPTkZJR19N QVJWRUxMXzg4WDIyMjJfUEhZPW0KK0NPTkZJR19NQVhMSU5FQVJfR1BIWT1tCitDT05GSUdfTUVE SUFURUtfR0VfUEhZPW0KK0NPTkZJR19NSUNSRUxfUEhZPW0KK0NPTkZJR19NSUNST0NISVBfVDFT X1BIWT1tCitDT05GSUdfTUlDUk9DSElQX1BIWT1tCitDT05GSUdfTUlDUk9DSElQX1QxX1BIWT1t CitDT05GSUdfTUlDUk9TRU1JX1BIWT1tCitDT05GSUdfTU9UT1JDT01NX1BIWT1tCitDT05GSUdf TkFUSU9OQUxfUEhZPW0KK0NPTkZJR19OWFBfQ0JUWF9QSFk9bQorQ09ORklHX05YUF9DNDVfVEpB MTFYWF9QSFk9bQorQ09ORklHX05YUF9USkExMVhYX1BIWT1tCitDT05GSUdfTkNOMjYwMDBfUEhZ PW0KK0NPTkZJR19BVDgwM1hfUEhZPW0KK0NPTkZJR19RU0VNSV9QSFk9bQorQ09ORklHX1JFQUxU RUtfUEhZPW0KK0NPTkZJR19SRU5FU0FTX1BIWT1tCitDT05GSUdfUk9DS0NISVBfUEhZPW0KK0NP TkZJR19TTVNDX1BIWT1tCitDT05GSUdfU1RFMTBYUD1tCitDT05GSUdfVEVSQU5FVElDU19QSFk9 bQorQ09ORklHX0RQODM4MjJfUEhZPW0KK0NPTkZJR19EUDgzVEM4MTFfUEhZPW0KK0NPTkZJR19E UDgzODQ4X1BIWT1tCitDT05GSUdfRFA4Mzg2N19QSFk9bQorQ09ORklHX0RQODM4NjlfUEhZPW0K KyMgQ09ORklHX0RQODNURDUxMF9QSFkgaXMgbm90IHNldAorQ09ORklHX1ZJVEVTU0VfUEhZPW0K K0NPTkZJR19YSUxJTlhfR01JSTJSR01JST1tCitDT05GSUdfTUlDUkVMX0tTODk5NU1BPW0KKyMg Q09ORklHX1BTRV9DT05UUk9MTEVSIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fREVWPW0KK0NPTkZJ R19DQU5fVkNBTj1tCitDT05GSUdfQ0FOX1ZYQ0FOPW0KK0NPTkZJR19DQU5fTkVUTElOSz15CitD T05GSUdfQ0FOX0NBTENfQklUVElNSU5HPXkKK0NPTkZJR19DQU5fUlhfT0ZGTE9BRD15CisjIENP TkZJR19DQU5fQ0FOMzI3IGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fRkxFWENBTj1tCisjIENPTkZJ R19DQU5fR1JDQU4gaXMgbm90IHNldAorQ09ORklHX0NBTl9LVkFTRVJfUENJRUZEPW0KK0NPTkZJ R19DQU5fU0xDQU49bQorQ09ORklHX0NBTl9DX0NBTj1tCisjIENPTkZJR19DQU5fQ19DQU5fUExB VEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NBTl9DX0NBTl9QQ0k9bQorIyBDT05GSUdfQ0FOX0ND NzcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTl9DVFVDQU5GRF9QQ0kgaXMgbm90IHNldAorIyBD T05GSUdfQ0FOX0NUVUNBTkZEX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fSUZJX0NB TkZEPW0KK0NPTkZJR19DQU5fTV9DQU49bQorQ09ORklHX0NBTl9NX0NBTl9QQ0k9bQorQ09ORklH X0NBTl9NX0NBTl9QTEFURk9STT1tCitDT05GSUdfQ0FOX01fQ0FOX1RDQU40WDVYPW0KK0NPTkZJ R19DQU5fUEVBS19QQ0lFRkQ9bQorQ09ORklHX0NBTl9SQ0FSPW0KK0NPTkZJR19DQU5fUkNBUl9D QU5GRD1tCitDT05GSUdfQ0FOX1NKQTEwMDA9bQorQ09ORklHX0NBTl9FTVNfUENJPW0KK0NPTkZJ R19DQU5fRU1TX1BDTUNJQT1tCitDT05GSUdfQ0FOX0Y4MTYwMT1tCitDT05GSUdfQ0FOX0tWQVNF Ul9QQ0k9bQorQ09ORklHX0NBTl9QRUFLX1BDST1tCitDT05GSUdfQ0FOX1BFQUtfUENJRUM9eQor Q09ORklHX0NBTl9QRUFLX1BDTUNJQT1tCitDT05GSUdfQ0FOX1BMWF9QQ0k9bQorIyBDT05GSUdf Q0FOX1NKQTEwMDBfSVNBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTl9TSkExMDAwX1BMQVRGT1JN IGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fU09GVElORz1tCitDT05GSUdfQ0FOX1NPRlRJTkdfQ1M9 bQorCisjCisjIENBTiBTUEkgaW50ZXJmYWNlcworIworQ09ORklHX0NBTl9ISTMxMVg9bQorIyBD T05GSUdfQ0FOX01DUDI1MVggaXMgbm90IHNldAorIyBDT05GSUdfQ0FOX01DUDI1MVhGRCBpcyBu b3Qgc2V0CisjIGVuZCBvZiBDQU4gU1BJIGludGVyZmFjZXMKKworIworIyBDQU4gVVNCIGludGVy ZmFjZXMKKyMKK0NPTkZJR19DQU5fOERFVl9VU0I9bQorQ09ORklHX0NBTl9FTVNfVVNCPW0KKyMg Q09ORklHX0NBTl9FU0RfVVNCIGlzIG5vdCBzZXQKK0NPTkZJR19DQU5fRVRBU19FUzU4WD1tCitD T05GSUdfQ0FOX0dTX1VTQj1tCitDT05GSUdfQ0FOX0tWQVNFUl9VU0I9bQorQ09ORklHX0NBTl9N Q0JBX1VTQj1tCitDT05GSUdfQ0FOX1BFQUtfVVNCPW0KK0NPTkZJR19DQU5fVUNBTj1tCisjIGVu ZCBvZiBDQU4gVVNCIGludGVyZmFjZXMKKworIyBDT05GSUdfQ0FOX0RFQlVHX0RFVklDRVMgaXMg bm90IHNldAorCisjCisjIE1DVFAgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19NQ1RQX1NFUklB TD1tCitDT05GSUdfTUNUUF9UUkFOU1BPUlRfSTJDPW0KKyMgZW5kIG9mIE1DVFAgRGV2aWNlIERy aXZlcnMKKworQ09ORklHX01ESU9fREVWSUNFPXkKK0NPTkZJR19NRElPX0JVUz15CitDT05GSUdf RldOT0RFX01ESU89eQorQ09ORklHX09GX01ESU89eQorQ09ORklHX01ESU9fREVWUkVTPXkKK0NP TkZJR19NRElPX1NVTjRJPW0KK0NPTkZJR19NRElPX0JJVEJBTkc9bQorQ09ORklHX01ESU9fQkNN X1VOSU1BQz1tCitDT05GSUdfTURJT19DQVZJVU09bQorQ09ORklHX01ESU9fR1BJTz1tCitDT05G SUdfTURJT19ISVNJX0ZFTUFDPW0KK0NPTkZJR19NRElPX0kyQz1tCitDT05GSUdfTURJT19NVlVT Qj1tCitDT05GSUdfTURJT19NU0NDX01JSU09bQorQ09ORklHX01ESU9fT0NURU9OPW0KK0NPTkZJ R19NRElPX0lQUTQwMTk9bQorQ09ORklHX01ESU9fSVBRODA2ND1tCitDT05GSUdfTURJT19USFVO REVSPW0KKworIworIyBNRElPIE11bHRpcGxleGVycworIworQ09ORklHX01ESU9fQlVTX01VWD1t CitDT05GSUdfTURJT19CVVNfTVVYX0dQSU89bQorQ09ORklHX01ESU9fQlVTX01VWF9NVUxUSVBM RVhFUj1tCitDT05GSUdfTURJT19CVVNfTVVYX01NSU9SRUc9bQorCisjCisjIFBDUyBkZXZpY2Ug ZHJpdmVycworIworQ09ORklHX1BDU19YUENTPW0KK0NPTkZJR19QQ1NfTFlOWD1tCitDT05GSUdf UENTX01US19MWU5YST1tCisjIGVuZCBvZiBQQ1MgZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX1BM SVA9bQorQ09ORklHX1BQUD1tCitDT05GSUdfUFBQX0JTRENPTVA9bQorQ09ORklHX1BQUF9ERUZM QVRFPW0KK0NPTkZJR19QUFBfRklMVEVSPXkKK0NPTkZJR19QUFBfTVBQRT1tCitDT05GSUdfUFBQ X01VTFRJTElOSz15CitDT05GSUdfUFBQT0FUTT1tCitDT05GSUdfUFBQT0U9bQorQ09ORklHX1BQ VFA9bQorQ09ORklHX1BQUE9MMlRQPW0KK0NPTkZJR19QUFBfQVNZTkM9bQorQ09ORklHX1BQUF9T WU5DX1RUWT1tCitDT05GSUdfU0xJUD1tCitDT05GSUdfU0xIQz1tCitDT05GSUdfU0xJUF9DT01Q UkVTU0VEPXkKK0NPTkZJR19TTElQX1NNQVJUPXkKK0NPTkZJR19TTElQX01PREVfU0xJUDY9eQor CisjCisjIEhvc3Qtc2lkZSBVU0Igc3VwcG9ydCBpcyBuZWVkZWQgZm9yIFVTQiBOZXR3b3JrIEFk YXB0ZXIgc3VwcG9ydAorIworQ09ORklHX1VTQl9ORVRfRFJJVkVSUz1tCitDT05GSUdfVVNCX0NB VEM9bQorQ09ORklHX1VTQl9LQVdFVEg9bQorQ09ORklHX1VTQl9QRUdBU1VTPW0KK0NPTkZJR19V U0JfUlRMODE1MD1tCitDT05GSUdfVVNCX1JUTDgxNTI9bQorQ09ORklHX1VTQl9MQU43OFhYPW0K K0NPTkZJR19VU0JfVVNCTkVUPW0KK0NPTkZJR19VU0JfTkVUX0FYODgxN1g9bQorQ09ORklHX1VT Ql9ORVRfQVg4ODE3OV8xNzhBPW0KK0NPTkZJR19VU0JfTkVUX0NEQ0VUSEVSPW0KK0NPTkZJR19V U0JfTkVUX0NEQ19FRU09bQorQ09ORklHX1VTQl9ORVRfQ0RDX05DTT1tCitDT05GSUdfVVNCX05F VF9IVUFXRUlfQ0RDX05DTT1tCitDT05GSUdfVVNCX05FVF9DRENfTUJJTT1tCitDT05GSUdfVVNC X05FVF9ETTk2MDE9bQorQ09ORklHX1VTQl9ORVRfU1I5NzAwPW0KK0NPTkZJR19VU0JfTkVUX1NS OTgwMD1tCitDT05GSUdfVVNCX05FVF9TTVNDNzVYWD1tCitDT05GSUdfVVNCX05FVF9TTVNDOTVY WD1tCitDT05GSUdfVVNCX05FVF9HTDYyMEE9bQorQ09ORklHX1VTQl9ORVRfTkVUMTA4MD1tCitD T05GSUdfVVNCX05FVF9QTFVTQj1tCitDT05GSUdfVVNCX05FVF9NQ1M3ODMwPW0KK0NPTkZJR19V U0JfTkVUX1JORElTX0hPU1Q9bQorQ09ORklHX1VTQl9ORVRfQ0RDX1NVQlNFVF9FTkFCTEU9bQor Q09ORklHX1VTQl9ORVRfQ0RDX1NVQlNFVD1tCitDT05GSUdfVVNCX0FMSV9NNTYzMj15CitDT05G SUdfVVNCX0FOMjcyMD15CitDT05GSUdfVVNCX0JFTEtJTj15CitDT05GSUdfVVNCX0FSTUxJTlVY PXkKK0NPTkZJR19VU0JfRVBTT04yODg4PXkKK0NPTkZJR19VU0JfS0MyMTkwPXkKK0NPTkZJR19V U0JfTkVUX1pBVVJVUz1tCitDT05GSUdfVVNCX05FVF9DWDgyMzEwX0VUSD1tCitDT05GSUdfVVNC X05FVF9LQUxNSUE9bQorQ09ORklHX1VTQl9ORVRfUU1JX1dXQU49bQorQ09ORklHX1VTQl9IU089 bQorQ09ORklHX1VTQl9ORVRfSU5UNTFYMT1tCitDT05GSUdfVVNCX0NEQ19QSE9ORVQ9bQorQ09O RklHX1VTQl9JUEhFVEg9bQorQ09ORklHX1VTQl9TSUVSUkFfTkVUPW0KK0NPTkZJR19VU0JfVkw2 MDA9bQorQ09ORklHX1VTQl9ORVRfQ0g5MjAwPW0KK0NPTkZJR19VU0JfTkVUX0FRQzExMT1tCitD T05GSUdfVVNCX1JUTDgxNTNfRUNNPW0KK0NPTkZJR19XTEFOPXkKK0NPTkZJR19XTEFOX1ZFTkRP Ul9BRE1URUs9eQorQ09ORklHX0FETTgyMTE9bQorQ09ORklHX0FUSF9DT01NT049bQorQ09ORklH X1dMQU5fVkVORE9SX0FUSD15CisjIENPTkZJR19BVEhfREVCVUcgaXMgbm90IHNldAorQ09ORklH X0FUSDVLPW0KKyMgQ09ORklHX0FUSDVLX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUSDVL X1RSQUNFUiBpcyBub3Qgc2V0CitDT05GSUdfQVRINUtfUENJPXkKK0NPTkZJR19BVEg5S19IVz1t CitDT05GSUdfQVRIOUtfQ09NTU9OPW0KK0NPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVD15CitD T05GSUdfQVRIOUs9bQorQ09ORklHX0FUSDlLX1BDST15CisjIENPTkZJR19BVEg5S19BSEIgaXMg bm90IHNldAorIyBDT05GSUdfQVRIOUtfREVCVUdGUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEg5 S19EWU5BQ0sgaXMgbm90IHNldAorQ09ORklHX0FUSDlLX1dPVz15CitDT05GSUdfQVRIOUtfUkZL SUxMPXkKK0NPTkZJR19BVEg5S19DSEFOTkVMX0NPTlRFWFQ9eQorQ09ORklHX0FUSDlLX1BDT0VN PXkKK0NPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NPW0KK0NPTkZJR19BVEg5S19IVEM9bQorIyBD T05GSUdfQVRIOUtfSFRDX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0FUSDlLX0hXUk5HPXkK K0NPTkZJR19DQVJMOTE3MD1tCitDT05GSUdfQ0FSTDkxNzBfTEVEUz15CisjIENPTkZJR19DQVJM OTE3MF9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19DQVJMOTE3MF9XUEM9eQorQ09ORklHX0NB Ukw5MTcwX0hXUk5HPXkKK0NPTkZJR19BVEg2S0w9bQorQ09ORklHX0FUSDZLTF9TRElPPW0KK0NP TkZJR19BVEg2S0xfVVNCPW0KKyMgQ09ORklHX0FUSDZLTF9ERUJVRyBpcyBub3Qgc2V0CisjIENP TkZJR19BVEg2S0xfVFJBQ0lORyBpcyBub3Qgc2V0CitDT05GSUdfQVI1NTIzPW0KK0NPTkZJR19X SUw2MjEwPW0KK0NPTkZJR19XSUw2MjEwX0lTUl9DT1I9eQorQ09ORklHX1dJTDYyMTBfVFJBQ0lO Rz15CisjIENPTkZJR19XSUw2MjEwX0RFQlVHRlMgaXMgbm90IHNldAorQ09ORklHX0FUSDEwSz1t CitDT05GSUdfQVRIMTBLX0NFPXkKK0NPTkZJR19BVEgxMEtfUENJPW0KK0NPTkZJR19BVEgxMEtf QUhCPXkKK0NPTkZJR19BVEgxMEtfU0RJTz1tCitDT05GSUdfQVRIMTBLX1VTQj1tCisjIENPTkZJ R19BVEgxMEtfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQVRIMTBLX0RFQlVHRlMgaXMgbm90 IHNldAorIyBDT05GSUdfQVRIMTBLX1RSQUNJTkcgaXMgbm90IHNldAorQ09ORklHX1dDTjM2WFg9 bQorIyBDT05GSUdfV0NOMzZYWF9ERUJVR0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19BVEgxMUs9bQor Q09ORklHX0FUSDExS19BSEI9bQorQ09ORklHX0FUSDExS19QQ0k9bQorIyBDT05GSUdfQVRIMTFL X0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BVEgxMUtfREVCVUdGUz15CisjIENPTkZJR19BVEgx MUtfVFJBQ0lORyBpcyBub3Qgc2V0CitDT05GSUdfQVRIMTFLX1NQRUNUUkFMPXkKK0NPTkZJR19B VEgxMks9bQorQ09ORklHX0FUSDEyS19ERUJVRz15CitDT05GSUdfQVRIMTJLX1RSQUNJTkc9eQor Q09ORklHX1dMQU5fVkVORE9SX0FUTUVMPXkKK0NPTkZJR19BVE1FTD1tCitDT05GSUdfUENJX0FU TUVMPW0KK0NPTkZJR19QQ01DSUFfQVRNRUw9bQorQ09ORklHX0FUNzZDNTBYX1VTQj1tCitDT05G SUdfV0xBTl9WRU5ET1JfQlJPQURDT009eQorQ09ORklHX0I0Mz1tCitDT05GSUdfQjQzX0JDTUE9 eQorQ09ORklHX0I0M19TU0I9eQorQ09ORklHX0I0M19CVVNFU19CQ01BX0FORF9TU0I9eQorIyBD T05GSUdfQjQzX0JVU0VTX0JDTUEgaXMgbm90IHNldAorIyBDT05GSUdfQjQzX0JVU0VTX1NTQiBp cyBub3Qgc2V0CitDT05GSUdfQjQzX1BDSV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNfUENJQ09S RV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNfU0RJTz15CitDT05GSUdfQjQzX0JDTUFfUElPPXkK K0NPTkZJR19CNDNfUElPPXkKK0NPTkZJR19CNDNfUEhZX0c9eQorQ09ORklHX0I0M19QSFlfTj15 CitDT05GSUdfQjQzX1BIWV9MUD15CitDT05GSUdfQjQzX1BIWV9IVD15CitDT05GSUdfQjQzX0xF RFM9eQorQ09ORklHX0I0M19IV1JORz15CisjIENPTkZJR19CNDNfREVCVUcgaXMgbm90IHNldAor Q09ORklHX0I0M0xFR0FDWT1tCitDT05GSUdfQjQzTEVHQUNZX1BDSV9BVVRPU0VMRUNUPXkKK0NP TkZJR19CNDNMRUdBQ1lfUENJQ09SRV9BVVRPU0VMRUNUPXkKK0NPTkZJR19CNDNMRUdBQ1lfTEVE Uz15CitDT05GSUdfQjQzTEVHQUNZX0hXUk5HPXkKKyMgQ09ORklHX0I0M0xFR0FDWV9ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfQjQzTEVHQUNZX0RNQT15CitDT05GSUdfQjQzTEVHQUNZX1BJTz15 CitDT05GSUdfQjQzTEVHQUNZX0RNQV9BTkRfUElPX01PREU9eQorIyBDT05GSUdfQjQzTEVHQUNZ X0RNQV9NT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M0xFR0FDWV9QSU9fTU9ERSBpcyBub3Qg c2V0CitDT05GSUdfQlJDTVVUSUw9bQorQ09ORklHX0JSQ01TTUFDPW0KK0NPTkZJR19CUkNNU01B Q19MRURTPXkKK0NPTkZJR19CUkNNRk1BQz1tCitDT05GSUdfQlJDTUZNQUNfUFJPVE9fQkNEQz15 CitDT05GSUdfQlJDTUZNQUNfUFJPVE9fTVNHQlVGPXkKK0NPTkZJR19CUkNNRk1BQ19TRElPPXkK K0NPTkZJR19CUkNNRk1BQ19VU0I9eQorQ09ORklHX0JSQ01GTUFDX1BDSUU9eQorIyBDT05GSUdf QlJDTV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSQ01EQkcgaXMgbm90IHNldAorQ09O RklHX1dMQU5fVkVORE9SX0NJU0NPPXkKK0NPTkZJR19BSVJPPW0KK0NPTkZJR19BSVJPX0NTPW0K K0NPTkZJR19XTEFOX1ZFTkRPUl9JTlRFTD15CitDT05GSUdfSVBXMjEwMD1tCitDT05GSUdfSVBX MjEwMF9NT05JVE9SPXkKK0NPTkZJR19JUFcyMTAwX0RFQlVHPXkKK0NPTkZJR19JUFcyMjAwPW0K K0NPTkZJR19JUFcyMjAwX01PTklUT1I9eQorQ09ORklHX0lQVzIyMDBfUkFESU9UQVA9eQorQ09O RklHX0lQVzIyMDBfUFJPTUlTQ1VPVVM9eQorQ09ORklHX0lQVzIyMDBfUU9TPXkKK0NPTkZJR19J UFcyMjAwX0RFQlVHPXkKK0NPTkZJR19MSUJJUFc9bQorQ09ORklHX0xJQklQV19ERUJVRz15CitD T05GSUdfSVdMRUdBQ1k9bQorQ09ORklHX0lXTDQ5NjU9bQorQ09ORklHX0lXTDM5NDU9bQorCisj CisjIGl3bDM5NDUgLyBpd2w0OTY1IERlYnVnZ2luZyBPcHRpb25zCisjCisjIENPTkZJR19JV0xF R0FDWV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xFR0FDWV9ERUJVR0ZTIGlzIG5vdCBz ZXQKKyMgZW5kIG9mIGl3bDM5NDUgLyBpd2w0OTY1IERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJ R19JV0xXSUZJPW0KK0NPTkZJR19JV0xXSUZJX0xFRFM9eQorQ09ORklHX0lXTERWTT1tCitDT05G SUdfSVdMTVZNPW0KK0NPTkZJR19JV0xXSUZJX09QTU9ERV9NT0RVTEFSPXkKKworIworIyBEZWJ1 Z2dpbmcgT3B0aW9ucworIworQ09ORklHX0lXTFdJRklfREVCVUc9eQorQ09ORklHX0lXTFdJRklf REVCVUdGUz15CisjIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIERlYnVnZ2luZyBPcHRpb25zCisKK0NPTkZJR19XTEFOX1ZFTkRPUl9JTlRFUlNJTD15 CitDT05GSUdfSE9TVEFQPW0KK0NPTkZJR19IT1NUQVBfRklSTVdBUkU9eQorQ09ORklHX0hPU1RB UF9GSVJNV0FSRV9OVlJBTT15CitDT05GSUdfSE9TVEFQX1BMWD1tCitDT05GSUdfSE9TVEFQX1BD ST1tCitDT05GSUdfSE9TVEFQX0NTPW0KK0NPTkZJR19IRVJNRVM9bQorQ09ORklHX0hFUk1FU19Q UklTTT15CitDT05GSUdfSEVSTUVTX0NBQ0hFX0ZXX09OX0lOSVQ9eQorQ09ORklHX1BMWF9IRVJN RVM9bQorQ09ORklHX1RNRF9IRVJNRVM9bQorQ09ORklHX05PUlRFTF9IRVJNRVM9bQorQ09ORklH X1BDSV9IRVJNRVM9bQorQ09ORklHX1BDTUNJQV9IRVJNRVM9bQorQ09ORklHX1BDTUNJQV9TUEVD VFJVTT1tCitDT05GSUdfT1JJTk9DT19VU0I9bQorQ09ORklHX1A1NF9DT01NT049bQorQ09ORklH X1A1NF9VU0I9bQorQ09ORklHX1A1NF9QQ0k9bQorIyBDT05GSUdfUDU0X1NQSSBpcyBub3Qgc2V0 CitDT05GSUdfUDU0X0xFRFM9eQorQ09ORklHX1dMQU5fVkVORE9SX01BUlZFTEw9eQorQ09ORklH X0xJQkVSVEFTPW0KK0NPTkZJR19MSUJFUlRBU19VU0I9bQorQ09ORklHX0xJQkVSVEFTX0NTPW0K K0NPTkZJR19MSUJFUlRBU19TRElPPW0KKyMgQ09ORklHX0xJQkVSVEFTX1NQSSBpcyBub3Qgc2V0 CisjIENPTkZJR19MSUJFUlRBU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTElCRVJUQVNfTUVT SD15CitDT05GSUdfTElCRVJUQVNfVEhJTkZJUk09bQorIyBDT05GSUdfTElCRVJUQVNfVEhJTkZJ Uk1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTX1RISU5GSVJNX1VTQj1tCitDT05G SUdfTVdJRklFWD1tCitDT05GSUdfTVdJRklFWF9TRElPPW0KK0NPTkZJR19NV0lGSUVYX1BDSUU9 bQorQ09ORklHX01XSUZJRVhfVVNCPW0KK0NPTkZJR19NV0w4Sz1tCitDT05GSUdfV0xBTl9WRU5E T1JfTUVESUFURUs9eQorQ09ORklHX01UNzYwMVU9bQorQ09ORklHX01UNzZfQ09SRT1tCitDT05G SUdfTVQ3Nl9MRURTPXkKK0NPTkZJR19NVDc2X1VTQj1tCitDT05GSUdfTVQ3Nl9TRElPPW0KK0NP TkZJR19NVDc2eDAyX0xJQj1tCitDT05GSUdfTVQ3NngwMl9VU0I9bQorQ09ORklHX01UNzZfQ09O TkFDX0xJQj1tCitDT05GSUdfTVQ3NngwX0NPTU1PTj1tCitDT05GSUdfTVQ3NngwVT1tCitDT05G SUdfTVQ3NngwRT1tCitDT05GSUdfTVQ3NngyX0NPTU1PTj1tCitDT05GSUdfTVQ3NngyRT1tCitD T05GSUdfTVQ3NngyVT1tCitDT05GSUdfTVQ3NjAzRT1tCitDT05GSUdfTVQ3NjE1X0NPTU1PTj1t CitDT05GSUdfTVQ3NjE1RT1tCitDT05GSUdfTVQ3NjYzX1VTQl9TRElPX0NPTU1PTj1tCitDT05G SUdfTVQ3NjYzVT1tCitDT05GSUdfTVQ3NjYzUz1tCitDT05GSUdfTVQ3OTE1RT1tCitDT05GSUdf TVQ3OTIxX0NPTU1PTj1tCitDT05GSUdfTVQ3OTIxRT1tCitDT05GSUdfTVQ3OTIxUz1tCitDT05G SUdfTVQ3OTIxVT1tCitDT05GSUdfTVQ3OTk2RT1tCitDT05GSUdfV0xBTl9WRU5ET1JfTUlDUk9D SElQPXkKKyMgQ09ORklHX1dJTEMxMDAwX1NESU8gaXMgbm90IHNldAorIyBDT05GSUdfV0lMQzEw MDBfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9QVVJFTElGST15CisjIENPTkZJ R19QTEZYTEMgaXMgbm90IHNldAorQ09ORklHX1dMQU5fVkVORE9SX1JBTElOSz15CitDT05GSUdf UlQyWDAwPW0KK0NPTkZJR19SVDI0MDBQQ0k9bQorQ09ORklHX1JUMjUwMFBDST1tCitDT05GSUdf UlQ2MVBDST1tCitDT05GSUdfUlQyODAwUENJPW0KK0NPTkZJR19SVDI4MDBQQ0lfUlQzM1hYPXkK K0NPTkZJR19SVDI4MDBQQ0lfUlQzNVhYPXkKK0NPTkZJR19SVDI4MDBQQ0lfUlQ1M1hYPXkKK0NP TkZJR19SVDI4MDBQQ0lfUlQzMjkwPXkKK0NPTkZJR19SVDI1MDBVU0I9bQorQ09ORklHX1JUNzNV U0I9bQorQ09ORklHX1JUMjgwMFVTQj1tCitDT05GSUdfUlQyODAwVVNCX1JUMzNYWD15CitDT05G SUdfUlQyODAwVVNCX1JUMzVYWD15CitDT05GSUdfUlQyODAwVVNCX1JUMzU3Mz15CitDT05GSUdf UlQyODAwVVNCX1JUNTNYWD15CitDT05GSUdfUlQyODAwVVNCX1JUNTVYWD15CitDT05GSUdfUlQy ODAwVVNCX1VOS05PV049eQorQ09ORklHX1JUMjgwMF9MSUI9bQorQ09ORklHX1JUMjgwMF9MSUJf TU1JTz1tCitDT05GSUdfUlQyWDAwX0xJQl9NTUlPPW0KK0NPTkZJR19SVDJYMDBfTElCX1BDST1t CitDT05GSUdfUlQyWDAwX0xJQl9VU0I9bQorQ09ORklHX1JUMlgwMF9MSUI9bQorQ09ORklHX1JU MlgwMF9MSUJfRklSTVdBUkU9eQorQ09ORklHX1JUMlgwMF9MSUJfQ1JZUFRPPXkKK0NPTkZJR19S VDJYMDBfTElCX0xFRFM9eQorIyBDT05GSUdfUlQyWDAwX0xJQl9ERUJVR0ZTIGlzIG5vdCBzZXQK KyMgQ09ORklHX1JUMlgwMF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfV0xBTl9WRU5ET1JfUkVB TFRFSz15CitDT05GSUdfUlRMODE4MD1tCitDT05GSUdfUlRMODE4Nz1tCitDT05GSUdfUlRMODE4 N19MRURTPXkKK0NPTkZJR19SVExfQ0FSRFM9bQorQ09ORklHX1JUTDgxOTJDRT1tCitDT05GSUdf UlRMODE5MlNFPW0KK0NPTkZJR19SVEw4MTkyREU9bQorQ09ORklHX1JUTDg3MjNBRT1tCitDT05G SUdfUlRMODcyM0JFPW0KK0NPTkZJR19SVEw4MTg4RUU9bQorQ09ORklHX1JUTDgxOTJFRT1tCitD T05GSUdfUlRMODgyMUFFPW0KK0NPTkZJR19SVEw4MTkyQ1U9bQorQ09ORklHX1JUTFdJRkk9bQor Q09ORklHX1JUTFdJRklfUENJPW0KK0NPTkZJR19SVExXSUZJX1VTQj1tCitDT05GSUdfUlRMV0lG SV9ERUJVRz15CitDT05GSUdfUlRMODE5MkNfQ09NTU9OPW0KK0NPTkZJR19SVEw4NzIzX0NPTU1P Tj1tCitDT05GSUdfUlRMQlRDT0VYSVNUPW0KK0NPTkZJR19SVEw4WFhYVT1tCitDT05GSUdfUlRM OFhYWFVfVU5URVNURUQ9eQorQ09ORklHX1JUVzg4PW0KK0NPTkZJR19SVFc4OF9DT1JFPW0KK0NP TkZJR19SVFc4OF9QQ0k9bQorQ09ORklHX1JUVzg4X1NESU89bQorQ09ORklHX1JUVzg4X1VTQj1t CitDT05GSUdfUlRXODhfODgyMkI9bQorQ09ORklHX1JUVzg4Xzg4MjJDPW0KK0NPTkZJR19SVFc4 OF84NzIzRD1tCitDT05GSUdfUlRXODhfODgyMUM9bQorQ09ORklHX1JUVzg4Xzg4MjJCRT1tCitD T05GSUdfUlRXODhfODgyMkJTPW0KK0NPTkZJR19SVFc4OF84ODIyQlU9bQorQ09ORklHX1JUVzg4 Xzg4MjJDRT1tCitDT05GSUdfUlRXODhfODgyMkNTPW0KK0NPTkZJR19SVFc4OF84ODIyQ1U9bQor Q09ORklHX1JUVzg4Xzg3MjNERT1tCitDT05GSUdfUlRXODhfODcyM0RVPW0KK0NPTkZJR19SVFc4 OF84ODIxQ0U9bQorQ09ORklHX1JUVzg4Xzg4MjFDUz1tCitDT05GSUdfUlRXODhfODgyMUNVPW0K KyMgQ09ORklHX1JUVzg4X0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUVzg4X0RFQlVHRlMg aXMgbm90IHNldAorQ09ORklHX1JUVzg5PW0KK0NPTkZJR19SVFc4OV9DT1JFPW0KK0NPTkZJR19S VFc4OV9QQ0k9bQorQ09ORklHX1JUVzg5Xzg4NTJBPW0KK0NPTkZJR19SVFc4OV84ODUyQj1tCitD T05GSUdfUlRXODlfODg1MkM9bQorQ09ORklHX1JUVzg5Xzg4NTJBRT1tCitDT05GSUdfUlRXODlf ODg1MkJFPW0KK0NPTkZJR19SVFc4OV84ODUyQ0U9bQorIyBDT05GSUdfUlRXODlfREVCVUdNU0cg aXMgbm90IHNldAorIyBDT05GSUdfUlRXODlfREVCVUdGUyBpcyBub3Qgc2V0CitDT05GSUdfV0xB Tl9WRU5ET1JfUlNJPXkKK0NPTkZJR19SU0lfOTFYPW0KKyMgQ09ORklHX1JTSV9ERUJVR0ZTIGlz IG5vdCBzZXQKK0NPTkZJR19SU0lfU0RJTz1tCitDT05GSUdfUlNJX1VTQj1tCitDT05GSUdfUlNJ X0NPRVg9eQorQ09ORklHX1dMQU5fVkVORE9SX1NJTEFCUz15CitDT05GSUdfV0ZYPW0KK0NPTkZJ R19XTEFOX1ZFTkRPUl9TVD15CitDT05GSUdfQ1cxMjAwPW0KK0NPTkZJR19DVzEyMDBfV0xBTl9T RElPPW0KKyMgQ09ORklHX0NXMTIwMF9XTEFOX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfV0xBTl9W RU5ET1JfVEk9eQorQ09ORklHX1dMMTI1MT1tCisjIENPTkZJR19XTDEyNTFfU1BJIGlzIG5vdCBz ZXQKK0NPTkZJR19XTDEyNTFfU0RJTz1tCitDT05GSUdfV0wxMlhYPW0KK0NPTkZJR19XTDE4WFg9 bQorQ09ORklHX1dMQ09SRT1tCisjIENPTkZJR19XTENPUkVfU1BJIGlzIG5vdCBzZXQKK0NPTkZJ R19XTENPUkVfU0RJTz1tCitDT05GSUdfV0xBTl9WRU5ET1JfWllEQVM9eQorQ09ORklHX1VTQl9a RDEyMDE9bQorQ09ORklHX1pEMTIxMVJXPW0KKyMgQ09ORklHX1pEMTIxMVJXX0RFQlVHIGlzIG5v dCBzZXQKK0NPTkZJR19XTEFOX1ZFTkRPUl9RVUFOVEVOTkE9eQorQ09ORklHX1FUTkZNQUM9bQor Q09ORklHX1FUTkZNQUNfUENJRT1tCitDT05GSUdfUENNQ0lBX1JBWUNTPW0KK0NPTkZJR19QQ01D SUFfV0wzNTAxPW0KK0NPTkZJR19VU0JfTkVUX1JORElTX1dMQU49bQorQ09ORklHX01BQzgwMjEx X0hXU0lNPW0KK0NPTkZJR19WSVJUX1dJRkk9bQorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKK0NP TkZJR19JRUVFODAyMTU0X0RSSVZFUlM9bQorQ09ORklHX0lFRUU4MDIxNTRfRkFLRUxCPW0KKyMg Q09ORklHX0lFRUU4MDIxNTRfQVQ4NlJGMjMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIx NTRfTVJGMjRKNDAgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjE1NF9DQzI1MjAgaXMgbm90 IHNldAorIyBDT05GSUdfSUVFRTgwMjE1NF9BVFVTQiBpcyBub3Qgc2V0CitDT05GSUdfSUVFRTgw MjE1NF9BREY3MjQyPW0KK0NPTkZJR19JRUVFODAyMTU0X0NBODIxMD1tCitDT05GSUdfSUVFRTgw MjE1NF9DQTgyMTBfREVCVUdGUz15CitDT05GSUdfSUVFRTgwMjE1NF9NQ1IyMEE9bQorQ09ORklH X0lFRUU4MDIxNTRfSFdTSU09bQorCisjCisjIFdpcmVsZXNzIFdBTgorIworQ09ORklHX1dXQU49 eQorQ09ORklHX1dXQU5fREVCVUdGUz15CitDT05GSUdfV1dBTl9IV1NJTT1tCitDT05GSUdfTUhJ X1dXQU5fQ1RSTD1tCitDT05GSUdfTUhJX1dXQU5fTUJJTT1tCitDT05GSUdfUlBNU0dfV1dBTl9D VFJMPW0KKyMgQ09ORklHX0lPU00gaXMgbm90IHNldAorQ09ORklHX01US19UN1hYPW0KKyMgZW5k IG9mIFdpcmVsZXNzIFdBTgorCitDT05GSUdfVk1YTkVUMz1tCitDT05GSUdfVVNCNF9ORVQ9bQor Q09ORklHX05FVERFVlNJTT1tCitDT05GSUdfTkVUX0ZBSUxPVkVSPW0KKyMgQ09ORklHX0lTRE4g aXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9 eQorQ09ORklHX0lOUFVUX0xFRFM9eQorQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9bQorQ09ORklH X0lOUFVUX1NQQVJTRUtNQVA9bQorQ09ORklHX0lOUFVUX01BVFJJWEtNQVA9bQorQ09ORklHX0lO UFVUX1ZJVkFMRElGTUFQPXkKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdf SU5QVVRfTU9VU0VERVY9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKK0NPTkZJR19J TlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVO X1k9NzY4CitDT05GSUdfSU5QVVRfSk9ZREVWPW0KK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENP TkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMK KyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BREMgaXMgbm90 IHNldAorQ09ORklHX0tFWUJPQVJEX0FEUDU1ODg9bQorQ09ORklHX0tFWUJPQVJEX0FEUDU1ODk9 bQorQ09ORklHX0tFWUJPQVJEX0FUS0JEPXkKK0NPTkZJR19LRVlCT0FSRF9RVDEwNTA9bQorQ09O RklHX0tFWUJPQVJEX1FUMTA3MD1tCitDT05GSUdfS0VZQk9BUkRfUVQyMTYwPW0KK0NPTkZJR19L RVlCT0FSRF9ETElOS19ESVI2ODU9bQorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNl dAorQ09ORklHX0tFWUJPQVJEX0dQSU89bQorQ09ORklHX0tFWUJPQVJEX0dQSU9fUE9MTEVEPW0K K0NPTkZJR19LRVlCT0FSRF9UQ0E2NDE2PW0KK0NPTkZJR19LRVlCT0FSRF9UQ0E4NDE4PW0KK0NP TkZJR19LRVlCT0FSRF9NQVRSSVg9bQorQ09ORklHX0tFWUJPQVJEX0xNODMyMz1tCitDT05GSUdf S0VZQk9BUkRfTE04MzMzPW0KK0NPTkZJR19LRVlCT0FSRF9NQVg3MzU5PW0KK0NPTkZJR19LRVlC T0FSRF9NQ1M9bQorQ09ORklHX0tFWUJPQVJEX01QUjEyMT1tCitDT05GSUdfS0VZQk9BUkRfTkVX VE9OPW0KK0NPTkZJR19LRVlCT0FSRF9PUEVOQ09SRVM9bQorQ09ORklHX0tFWUJPQVJEX1BJTkVQ SE9ORT1tCisjIENPTkZJR19LRVlCT0FSRF9TQU1TVU5HIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlC T0FSRF9HT0xERklTSF9FVkVOVFM9eQorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90 IHNldAorQ09ORklHX0tFWUJPQVJEX1NVTktCRD1tCitDT05GSUdfS0VZQk9BUkRfU1VONElfTFJB REM9bQorQ09ORklHX0tFWUJPQVJEX0lRUzYyWD1tCisjIENPTkZJR19LRVlCT0FSRF9PTUFQNCBp cyBub3Qgc2V0CitDT05GSUdfS0VZQk9BUkRfVE0yX1RPVUNIS0VZPW0KK0NPTkZJR19LRVlCT0FS RF9YVEtCRD1tCitDT05GSUdfS0VZQk9BUkRfQ0FQMTFYWD1tCisjIENPTkZJR19LRVlCT0FSRF9C Q00gaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0NZUFJFU1NfU0Y9bQorQ09ORklHX0lOUFVU X01PVVNFPXkKK0NPTkZJR19NT1VTRV9QUzI9eQorQ09ORklHX01PVVNFX1BTMl9BTFBTPXkKK0NP TkZJR19NT1VTRV9QUzJfQllEPXkKK0NPTkZJR19NT1VTRV9QUzJfTE9HSVBTMlBQPXkKK0NPTkZJ R19NT1VTRV9QUzJfU1lOQVBUSUNTPXkKK0NPTkZJR19NT1VTRV9QUzJfU1lOQVBUSUNTX1NNQlVT PXkKK0NPTkZJR19NT1VTRV9QUzJfQ1lQUkVTUz15CitDT05GSUdfTU9VU0VfUFMyX1RSQUNLUE9J TlQ9eQorQ09ORklHX01PVVNFX1BTMl9FTEFOVEVDSD15CitDT05GSUdfTU9VU0VfUFMyX0VMQU5U RUNIX1NNQlVTPXkKK0NPTkZJR19NT1VTRV9QUzJfU0VOVEVMSUM9eQorQ09ORklHX01PVVNFX1BT Ml9UT1VDSEtJVD15CitDT05GSUdfTU9VU0VfUFMyX0ZPQ0FMVEVDSD15CitDT05GSUdfTU9VU0Vf UFMyX1NNQlVTPXkKK0NPTkZJR19NT1VTRV9TRVJJQUw9bQorQ09ORklHX01PVVNFX0FQUExFVE9V Q0g9bQorQ09ORklHX01PVVNFX0JDTTU5NzQ9bQorQ09ORklHX01PVVNFX0NZQVBBPW0KK0NPTkZJ R19NT1VTRV9FTEFOX0kyQz1tCitDT05GSUdfTU9VU0VfRUxBTl9JMkNfSTJDPXkKK0NPTkZJR19N T1VTRV9FTEFOX0kyQ19TTUJVUz15CitDT05GSUdfTU9VU0VfVlNYWFhBQT1tCitDT05GSUdfTU9V U0VfR1BJTz1tCitDT05GSUdfTU9VU0VfU1lOQVBUSUNTX0kyQz1tCitDT05GSUdfTU9VU0VfU1lO QVBUSUNTX1VTQj1tCitDT05GSUdfSU5QVVRfSk9ZU1RJQ0s9eQorQ09ORklHX0pPWVNUSUNLX0FO QUxPRz1tCitDT05GSUdfSk9ZU1RJQ0tfQTNEPW0KK0NPTkZJR19KT1lTVElDS19BREM9bQorQ09O RklHX0pPWVNUSUNLX0FEST1tCitDT05GSUdfSk9ZU1RJQ0tfQ09CUkE9bQorQ09ORklHX0pPWVNU SUNLX0dGMks9bQorQ09ORklHX0pPWVNUSUNLX0dSSVA9bQorQ09ORklHX0pPWVNUSUNLX0dSSVBf TVA9bQorQ09ORklHX0pPWVNUSUNLX0dVSUxMRU1PVD1tCitDT05GSUdfSk9ZU1RJQ0tfSU5URVJB Q1Q9bQorQ09ORklHX0pPWVNUSUNLX1NJREVXSU5ERVI9bQorQ09ORklHX0pPWVNUSUNLX1RNREM9 bQorQ09ORklHX0pPWVNUSUNLX0lGT1JDRT1tCitDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFX1VTQj1t CitDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFXzIzMj1tCitDT05GSUdfSk9ZU1RJQ0tfV0FSUklPUj1t CitDT05GSUdfSk9ZU1RJQ0tfTUFHRUxMQU49bQorQ09ORklHX0pPWVNUSUNLX1NQQUNFT1JCPW0K K0NPTkZJR19KT1lTVElDS19TUEFDRUJBTEw9bQorQ09ORklHX0pPWVNUSUNLX1NUSU5HRVI9bQor Q09ORklHX0pPWVNUSUNLX1RXSURKT1k9bQorQ09ORklHX0pPWVNUSUNLX1pIRU5IVUE9bQorQ09O RklHX0pPWVNUSUNLX0RCOT1tCitDT05GSUdfSk9ZU1RJQ0tfR0FNRUNPTj1tCitDT05GSUdfSk9Z U1RJQ0tfVFVSQk9HUkFGWD1tCitDT05GSUdfSk9ZU1RJQ0tfQVM1MDExPW0KK0NPTkZJR19KT1lT VElDS19KT1lEVU1QPW0KK0NPTkZJR19KT1lTVElDS19YUEFEPW0KK0NPTkZJR19KT1lTVElDS19Y UEFEX0ZGPXkKK0NPTkZJR19KT1lTVElDS19YUEFEX0xFRFM9eQorQ09ORklHX0pPWVNUSUNLX1dB TEtFUkEwNzAxPW0KK0NPTkZJR19KT1lTVElDS19QU1hQQURfU1BJPW0KK0NPTkZJR19KT1lTVElD S19QU1hQQURfU1BJX0ZGPXkKK0NPTkZJR19KT1lTVElDS19QWFJDPW0KK0NPTkZJR19KT1lTVElD S19RV0lJQz1tCitDT05GSUdfSk9ZU1RJQ0tfRlNJQTZCPW0KKyMgQ09ORklHX0pPWVNUSUNLX1NF TlNFSEFUIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UQUJMRVQ9eQorQ09ORklHX1RBQkxFVF9V U0JfQUNFQ0FEPW0KK0NPTkZJR19UQUJMRVRfVVNCX0FJUFRFSz1tCitDT05GSUdfVEFCTEVUX1VT Ql9IQU5XQU5HPW0KK0NPTkZJR19UQUJMRVRfVVNCX0tCVEFCPW0KK0NPTkZJR19UQUJMRVRfVVNC X1BFR0FTVVM9bQorQ09ORklHX1RBQkxFVF9TRVJJQUxfV0FDT000PW0KK0NPTkZJR19JTlBVVF9U T1VDSFNDUkVFTj15CitDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nj1tCisjIENPTkZJR19UT1VD SFNDUkVFTl9BRDc4NzcgaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX0FENzg3OT1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fQUQ3ODc5X0kyQz1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9BRDc4 NzlfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9BREM9bQorQ09ORklHX1RPVUNI U0NSRUVOX0FSMTAyMV9JMkM9bQorQ09ORklHX1RPVUNIU0NSRUVOX0FUTUVMX01YVD1tCitDT05G SUdfVE9VQ0hTQ1JFRU5fQVRNRUxfTVhUX1QzNz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fQVVPX1BJ WENJUj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQlUyMTAxMz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5f QlUyMTAyOT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ0hJUE9ORV9JQ044MzE4PW0KK0NPTkZJR19U T1VDSFNDUkVFTl9DWThDVE1BMTQwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9DWThDVE1HMTEwPW0K K0NPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1BfQ09SRT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fQ1lU VFNQX0kyQz1tCisjIENPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1BfU1BJIGlzIG5vdCBzZXQKK0NP TkZJR19UT1VDSFNDUkVFTl9DWVRUU1A0X0NPUkU9bQorQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRT UDRfSTJDPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX0NZVFRTUDRfU1BJIGlzIG5vdCBzZXQKK0NP TkZJR19UT1VDSFNDUkVFTl9DWVRUU1A1PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9EWU5BUFJPPW0K K0NPTkZJR19UT1VDSFNDUkVFTl9IQU1QU0hJUkU9bQorQ09ORklHX1RPVUNIU0NSRUVOX0VFVEk9 bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUdBTEFYIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFND UkVFTl9FR0FMQVhfU0VSSUFMPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9FWEMzMDAwPW0KK0NPTkZJ R19UT1VDSFNDUkVFTl9GVUpJVFNVPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9HT09ESVg9bQorQ09O RklHX1RPVUNIU0NSRUVOX0hJREVFUD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fSFlDT05fSFk0NlhY PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9IWU5JVFJPTl9DU1RYWFg9bQorQ09ORklHX1RPVUNIU0NS RUVOX0lMSTIxMFg9bQorQ09ORklHX1RPVUNIU0NSRUVOX0lMSVRFSz1tCitDT05GSUdfVE9VQ0hT Q1JFRU5fUzZTWTc2MT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkU9bQorQ09ORklHX1RPVUNI U0NSRUVOX0VLVEYyMTI3PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9FTEFOPW0KK0NPTkZJR19UT1VD SFNDUkVFTl9FTE89bQorQ09ORklHX1RPVUNIU0NSRUVOX1dBQ09NX1c4MDAxPW0KK0NPTkZJR19U T1VDSFNDUkVFTl9XQUNPTV9JMkM9bQorQ09ORklHX1RPVUNIU0NSRUVOX01BWDExODAxPW0KK0NP TkZJR19UT1VDSFNDUkVFTl9NQ1M1MDAwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9NTVMxMTQ9bQor Q09ORklHX1RPVUNIU0NSRUVOX01FTEZBU19NSVA0PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9NU0cy NjM4PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0g9bQorQ09ORklHX1RPVUNIU0NSRUVOX05P VkFURUtfTlZUX1RTPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9JTUFHSVM9bQorIyBDT05GSUdfVE9V Q0hTQ1JFRU5fSU1YNlVMX1RTQyBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fSU5FWElP PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9NSzcxMj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fUEVOTU9V TlQ9bQorQ09ORklHX1RPVUNIU0NSRUVOX0VEVF9GVDVYMDY9bQorQ09ORklHX1RPVUNIU0NSRUVO X1RPVUNIUklHSFQ9bQorQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOPW0KKyMgQ09ORklHX1RP VUNIU0NSRUVOX1RJX0FNMzM1WF9UU0MgaXMgbm90IHNldAorQ09ORklHX1RPVUNIU0NSRUVOX1BJ WENJUj1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV0RUODdYWF9JMkM9bQorQ09ORklHX1RPVUNIU0NS RUVOX1dNOTdYWD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzA1PXkKK0NPTkZJR19UT1VDSFND UkVFTl9XTTk3MTI9eQorQ09ORklHX1RPVUNIU0NSRUVOX1dNOTcxMz15CitDT05GSUdfVE9VQ0hT Q1JFRU5fVVNCX0NPTVBPU0lURT1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VHQUxBWD15CitD T05GSUdfVE9VQ0hTQ1JFRU5fVVNCX1BBTkpJVD15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCXzNN PXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfSVRNPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0Jf RVRVUkJPPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfR1VOWkU9eQorQ09ORklHX1RPVUNIU0NS RUVOX1VTQl9ETUNfVFNDMTA9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9JUlRPVUNIPXkKK0NP TkZJR19UT1VDSFNDUkVFTl9VU0JfSURFQUxURUs9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9H RU5FUkFMX1RPVUNIPXkKK0NPTkZJR19UT1VDSFNDUkVFTl9VU0JfR09UT1A9eQorQ09ORklHX1RP VUNIU0NSRUVOX1VTQl9KQVNURUM9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9FTE89eQorQ09O RklHX1RPVUNIU0NSRUVOX1VTQl9FMkk9eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9aWVRST05J Qz15CitDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0VUVF9UQzQ1VVNCPXkKK0NPTkZJR19UT1VDSFND UkVFTl9VU0JfTkVYSU89eQorQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9FQVNZVE9VQ0g9eQorQ09O RklHX1RPVUNIU0NSRUVOX1RPVUNISVQyMTM9bQorQ09ORklHX1RPVUNIU0NSRUVOX1RTQ19TRVJJ Tz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwWF9DT1JFPW0KK0NPTkZJR19UT1VDSFNDUkVF Tl9UU0MyMDA0PW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RTQzIwMDUgaXMgbm90IHNldAorQ09O RklHX1RPVUNIU0NSRUVOX1RTQzIwMDc9bQorQ09ORklHX1RPVUNIU0NSRUVOX1RTQzIwMDdfSUlP PXkKK0NPTkZJR19UT1VDSFNDUkVFTl9STV9UUz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fU0lMRUFE PW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TSVNfSTJDPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9TVDEy MzI9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NUTUZUUz1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fU1VO NEk9bQorQ09ORklHX1RPVUNIU0NSRUVOX1NVUjQwPW0KKyMgQ09ORklHX1RPVUNIU0NSRUVOX1NV UkZBQ0UzX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfVE9VQ0hTQ1JFRU5fU1g4NjU0PW0KK0NPTkZJ R19UT1VDSFNDUkVFTl9UUFM2NTA3WD1tCitDT05GSUdfVE9VQ0hTQ1JFRU5fWkVUNjIyMz1tCitD T05GSUdfVE9VQ0hTQ1JFRU5fWkZPUkNFPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9DT0xJQlJJX1ZG NTA9bQorQ09ORklHX1RPVUNIU0NSRUVOX1JPSE1fQlUyMTAyMz1tCitDT05GSUdfVE9VQ0hTQ1JF RU5fSVFTNVhYPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9aSU5JVElYPW0KK0NPTkZJR19UT1VDSFND UkVFTl9ISU1BWF9IWDgzMTEyQj1tCitDT05GSUdfSU5QVVRfTUlTQz15CitDT05GSUdfSU5QVVRf QUQ3MTRYPW0KK0NPTkZJR19JTlBVVF9BRDcxNFhfSTJDPW0KKyMgQ09ORklHX0lOUFVUX0FENzE0 WF9TUEkgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0FUQzI2MFhfT05LRVk9bQorQ09ORklHX0lO UFVUX0FUTUVMX0NBUFRPVUNIPW0KK0NPTkZJR19JTlBVVF9CTUExNTA9bQorIyBDT05GSUdfSU5Q VVRfRTNYMF9CVVRUT04gaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01BWDc3NjUwX09OS0VZPW0K K0NPTkZJR19JTlBVVF9NTUE4NDUwPW0KKyMgQ09ORklHX0lOUFVUX0dQSU9fQkVFUEVSIGlzIG5v dCBzZXQKK0NPTkZJR19JTlBVVF9HUElPX0RFQ09ERVI9bQorQ09ORklHX0lOUFVUX0dQSU9fVklC UkE9bQorQ09ORklHX0lOUFVUX0NQQ0FQX1BXUkJVVFRPTj1tCitDT05GSUdfSU5QVVRfQVRJX1JF TU9URTI9bQorQ09ORklHX0lOUFVUX0tFWVNQQU5fUkVNT1RFPW0KK0NPTkZJR19JTlBVVF9LWFRK OT1tCitDT05GSUdfSU5QVVRfUE9XRVJNQVRFPW0KK0NPTkZJR19JTlBVVF9ZRUFMSU5LPW0KK0NP TkZJR19JTlBVVF9DTTEwOT1tCitDT05GSUdfSU5QVVRfUkVHVUxBVE9SX0hBUFRJQz1tCitDT05G SUdfSU5QVVRfVFBTNjUyMTlfUFdSQlVUVE9OPW0KK0NPTkZJR19JTlBVVF9BWFAyMFhfUEVLPW0K K0NPTkZJR19JTlBVVF9VSU5QVVQ9bQorQ09ORklHX0lOUFVUX1BDRjg1NzQ9bQorQ09ORklHX0lO UFVUX1BXTV9CRUVQRVI9bQorQ09ORklHX0lOUFVUX1BXTV9WSUJSQT1tCitDT05GSUdfSU5QVVRf Uks4MDVfUFdSS0VZPW0KK0NPTkZJR19JTlBVVF9HUElPX1JPVEFSWV9FTkNPREVSPW0KK0NPTkZJ R19JTlBVVF9EQTcyODBfSEFQVElDUz1tCitDT05GSUdfSU5QVVRfQURYTDM0WD1tCitDT05GSUdf SU5QVVRfQURYTDM0WF9JMkM9bQorQ09ORklHX0lOUFVUX0FEWEwzNFhfU1BJPW0KK0NPTkZJR19J TlBVVF9JQk1fUEFORUw9bQorQ09ORklHX0lOUFVUX0lNU19QQ1U9bQorQ09ORklHX0lOUFVUX0lR UzI2OUE9bQorQ09ORklHX0lOUFVUX0lRUzYyNkE9bQorIyBDT05GSUdfSU5QVVRfSVFTNzIyMiBp cyBub3Qgc2V0CitDT05GSUdfSU5QVVRfQ01BMzAwMD1tCitDT05GSUdfSU5QVVRfQ01BMzAwMF9J MkM9bQorQ09ORklHX0lOUFVUX0RSVjI2MFhfSEFQVElDUz1tCitDT05GSUdfSU5QVVRfRFJWMjY2 NV9IQVBUSUNTPW0KK0NPTkZJR19JTlBVVF9EUlYyNjY3X0hBUFRJQ1M9bQorQ09ORklHX0lOUFVU X1JUNTEyMF9QV1JLRVk9bQorQ09ORklHX0lOUFVUX1NUUE1JQzFfT05LRVk9bQorQ09ORklHX1JN STRfQ09SRT1tCitDT05GSUdfUk1JNF9JMkM9bQorQ09ORklHX1JNSTRfU1BJPW0KK0NPTkZJR19S TUk0X1NNQj1tCitDT05GSUdfUk1JNF9GMDM9eQorQ09ORklHX1JNSTRfRjAzX1NFUklPPW0KK0NP TkZJR19STUk0XzJEX1NFTlNPUj15CitDT05GSUdfUk1JNF9GMTE9eQorQ09ORklHX1JNSTRfRjEy PXkKK0NPTkZJR19STUk0X0YzMD15CitDT05GSUdfUk1JNF9GMzQ9eQorQ09ORklHX1JNSTRfRjNB PXkKK0NPTkZJR19STUk0X0Y1ND15CitDT05GSUdfUk1JNF9GNTU9eQorCisjCisjIEhhcmR3YXJl IEkvTyBwb3J0cworIworQ09ORklHX1NFUklPPXkKK0NPTkZJR19TRVJJT19TRVJQT1JUPW0KK0NP TkZJR19TRVJJT19QQVJLQkQ9bQorQ09ORklHX1NFUklPX0FNQkFLTUk9bQorQ09ORklHX1NFUklP X1BDSVBTMj1tCitDT05GSUdfU0VSSU9fTElCUFMyPXkKK0NPTkZJR19TRVJJT19SQVc9bQorQ09O RklHX1NFUklPX0FMVEVSQV9QUzI9bQorQ09ORklHX1NFUklPX1BTMk1VTFQ9bQorIyBDT05GSUdf U0VSSU9fQVJDX1BTMiBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fQVBCUFMyPW0KK0NPTkZJR19T RVJJT19TVU40SV9QUzI9bQorQ09ORklHX1NFUklPX0dQSU9fUFMyPW0KK0NPTkZJR19VU0VSSU89 bQorQ09ORklHX0dBTUVQT1JUPW0KK0NPTkZJR19HQU1FUE9SVF9OUzU1OD1tCitDT05GSUdfR0FN RVBPUlRfTDQ9bQorQ09ORklHX0dBTUVQT1JUX0VNVTEwSzE9bQorQ09ORklHX0dBTUVQT1JUX0ZN ODAxPW0KKyMgZW5kIG9mIEhhcmR3YXJlIEkvTyBwb3J0cworIyBlbmQgb2YgSW5wdXQgZGV2aWNl IHN1cHBvcnQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1RUWT15CitDT05G SUdfVlQ9eQorQ09ORklHX0NPTlNPTEVfVFJBTlNMQVRJT05TPXkKK0NPTkZJR19WVF9DT05TT0xF PXkKK0NPTkZJR19WVF9DT05TT0xFX1NMRUVQPXkKK0NPTkZJR19IV19DT05TT0xFPXkKK0NPTkZJ R19WVF9IV19DT05TT0xFX0JJTkRJTkc9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19M RUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0wCitDT05GSUdfTEVHQUNZX1RJ T0NTVEk9eQorQ09ORklHX0xESVNDX0FVVE9MT0FEPXkKKworIworIyBTZXJpYWwgZHJpdmVycwor IworQ09ORklHX1NFUklBTF9FQVJMWUNPTj15CitDT05GSUdfU0VSSUFMXzgyNTA9eQorIyBDT05G SUdfU0VSSUFMXzgyNTBfREVQUkVDQVRFRF9PUFRJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NF UklBTF84MjUwXzE2NTUwQV9WQVJJQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfODI1 MF9GSU5URUsgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorQ09ORklH X1NFUklBTF84MjUwX0RNQT15CitDT05GSUdfU0VSSUFMXzgyNTBfUENJTElCPXkKK0NPTkZJR19T RVJJQUxfODI1MF9QQ0k9eQorQ09ORklHX1NFUklBTF84MjUwX0VYQVI9eQorQ09ORklHX1NFUklB TF84MjUwX0NTPW0KK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz0zMgorQ09ORklHX1NFUklB TF84MjUwX1JVTlRJTUVfVUFSVFM9MzIKK0NPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRD15Cisj IENPTkZJR19TRVJJQUxfODI1MF9NQU5ZX1BPUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxf ODI1MF9QQ0kxWFhYWD1tCitDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJRPXkKKyMgQ09ORklH X1NFUklBTF84MjUwX0RFVEVDVF9JUlEgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMXzgyNTBf UlNBIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9EV0xJQj15CitDT05GSUdfU0VSSUFM XzgyNTBfREZMPW0KK0NPTkZJR19TRVJJQUxfODI1MF9EVz15CitDT05GSUdfU0VSSUFMXzgyNTBf RU09bQorIyBDT05GSUdfU0VSSUFMXzgyNTBfUlQyODhYIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJ QUxfODI1MF9QRVJJQ09NPW0KK0NPTkZJR19TRVJJQUxfT0ZfUExBVEZPUk09eQorCisjCisjIE5v bi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfQU1CQV9QTDAxMD1t CitDT05GSUdfU0VSSUFMX0FNQkFfUEwwMTE9bQorQ09ORklHX1NFUklBTF9FQVJMWUNPTl9TRU1J SE9TVD15CisjIENPTkZJR19TRVJJQUxfS0dEQl9OTUkgaXMgbm90IHNldAorIyBDT05GSUdfU0VS SUFMX01BWDMxMDAgaXMgbm90IHNldAorIyBDT05GSUdfU0VSSUFMX01BWDMxMFggaXMgbm90IHNl dAorIyBDT05GSUdfU0VSSUFMX1VBUlRMSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU0hf U0NJPW0KK0NPTkZJR19TRVJJQUxfU0hfU0NJX05SX1VBUlRTPTE4CitDT05GSUdfU0VSSUFMX1NI X1NDSV9ETUE9eQorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05T T0xFPXkKK0NPTkZJR19DT05TT0xFX1BPTEw9eQorQ09ORklHX1NFUklBTF9KU009bQorQ09ORklH X1NFUklBTF9TSUZJVkU9eQorQ09ORklHX1NFUklBTF9TSUZJVkVfQ09OU09MRT15CisjIENPTkZJ R19TRVJJQUxfU0NDTlhQIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU0MxNklTN1hYX0NPUkU9 bQorQ09ORklHX1NFUklBTF9TQzE2SVM3WFg9bQorQ09ORklHX1NFUklBTF9TQzE2SVM3WFhfSTJD PXkKK0NPTkZJR19TRVJJQUxfU0MxNklTN1hYX1NQST15CisjIENPTkZJR19TRVJJQUxfQUxURVJB X0pUQUdVQVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9BTFRFUkFfVUFSVCBpcyBub3Qg c2V0CitDT05GSUdfU0VSSUFMX1hJTElOWF9QU19VQVJUPXkKK0NPTkZJR19TRVJJQUxfWElMSU5Y X1BTX1VBUlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVJDIGlzIG5vdCBzZXQKK0NPTkZJ R19TRVJJQUxfUlAyPW0KK0NPTkZJR19TRVJJQUxfUlAyX05SX1VBUlRTPTMyCitDT05GSUdfU0VS SUFMX0ZTTF9MUFVBUlQ9bQorQ09ORklHX1NFUklBTF9GU0xfTElORkxFWFVBUlQ9eQorQ09ORklH X1NFUklBTF9GU0xfTElORkxFWFVBUlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQ09ORVhB TlRfRElHSUNPTE9SIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfU1BSRD15CitDT05GSUdfU0VS SUFMX1NQUkRfQ09OU09MRT15CisjIGVuZCBvZiBTZXJpYWwgZHJpdmVycworCitDT05GSUdfU0VS SUFMX01DVFJMX0dQSU89eQorQ09ORklHX1NFUklBTF9OT05TVEFOREFSRD15CitDT05GSUdfTU9Y QV9JTlRFTExJTz1tCitDT05GSUdfTU9YQV9TTUFSVElPPW0KK0NPTkZJR19TWU5DTElOS19HVD1t CitDT05GSUdfTl9IRExDPW0KK0NPTkZJR19HT0xERklTSF9UVFk9eQorQ09ORklHX0dPTERGSVNI X1RUWV9FQVJMWV9DT05TT0xFPXkKK0NPTkZJR19JUFdJUkVMRVNTPW0KK0NPTkZJR19OX0dTTT1t CitDT05GSUdfTk9aT01JPW0KK0NPTkZJR19OVUxMX1RUWT1tCitDT05GSUdfSFZDX0RSSVZFUj15 CitDT05GSUdfUlBNU0dfVFRZPW0KK0NPTkZJR19TRVJJQUxfREVWX0JVUz15CitDT05GSUdfU0VS SUFMX0RFVl9DVFJMX1RUWVBPUlQ9eQorIyBDT05GSUdfVFRZX1BSSU5USyBpcyBub3Qgc2V0CitD T05GSUdfUFJJTlRFUj1tCisjIENPTkZJR19MUF9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19Q UERFVj1tCitDT05GSUdfVklSVElPX0NPTlNPTEU9eQorQ09ORklHX0lQTUlfSEFORExFUj1tCitD T05GSUdfSVBNSV9QTEFUX0RBVEE9eQorQ09ORklHX0lQTUlfUEFOSUNfRVZFTlQ9eQorIyBDT05G SUdfSVBNSV9QQU5JQ19TVFJJTkcgaXMgbm90IHNldAorQ09ORklHX0lQTUlfREVWSUNFX0lOVEVS RkFDRT1tCitDT05GSUdfSVBNSV9TST1tCitDT05GSUdfSVBNSV9TU0lGPW0KK0NPTkZJR19JUE1J X0lQTUI9bQorQ09ORklHX0lQTUlfV0FUQ0hET0c9bQorQ09ORklHX0lQTUlfUE9XRVJPRkY9bQor Q09ORklHX1NTSUZfSVBNSV9CTUM9bQorQ09ORklHX0lQTUJfREVWSUNFX0lOVEVSRkFDRT1tCitD T05GSUdfSFdfUkFORE9NPXkKK0NPTkZJR19IV19SQU5ET01fVElNRVJJT01FTT1tCitDT05GSUdf SFdfUkFORE9NX0JBNDMxPW0KK0NPTkZJR19IV19SQU5ET01fVklSVElPPW0KK0NPTkZJR19IV19S QU5ET01fUE9MQVJGSVJFX1NPQz1tCitDT05GSUdfSFdfUkFORE9NX0NDVFJORz1tCitDT05GSUdf SFdfUkFORE9NX1hJUEhFUkE9bQorQ09ORklHX0hXX1JBTkRPTV9KSDcxMTA9bQorQ09ORklHX0FQ UExJQ09NPW0KK0NPTkZJR19ERVZNRU09eQorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklHX1RDR19U UE09eQorQ09ORklHX0hXX1JBTkRPTV9UUE09eQorQ09ORklHX1RDR19USVNfQ09SRT15CitDT05G SUdfVENHX1RJUz15CitDT05GSUdfVENHX1RJU19TUEk9bQorQ09ORklHX1RDR19USVNfU1BJX0NS NTA9eQorQ09ORklHX1RDR19USVNfSTJDPW0KK0NPTkZJR19UQ0dfVElTX0kyQ19DUjUwPW0KK0NP TkZJR19UQ0dfVElTX0kyQ19BVE1FTD1tCitDT05GSUdfVENHX1RJU19JMkNfSU5GSU5FT049bQor Q09ORklHX1RDR19USVNfSTJDX05VVk9UT049bQorQ09ORklHX1RDR19BVE1FTD1tCitDT05GSUdf VENHX1ZUUE1fUFJPWFk9bQorQ09ORklHX1RDR19USVNfU1QzM1pQMjQ9bQorQ09ORklHX1RDR19U SVNfU1QzM1pQMjRfSTJDPW0KK0NPTkZJR19UQ0dfVElTX1NUMzNaUDI0X1NQST1tCitDT05GSUdf WElMTFlCVVNfQ0xBU1M9bQorQ09ORklHX1hJTExZQlVTPW0KK0NPTkZJR19YSUxMWUJVU19QQ0lF PW0KK0NPTkZJR19YSUxMWUJVU19PRj1tCitDT05GSUdfWElMTFlVU0I9bQorIyBlbmQgb2YgQ2hh cmFjdGVyIGRldmljZXMKKworIworIyBJMkMgc3VwcG9ydAorIworQ09ORklHX0kyQz15CitDT05G SUdfSTJDX0JPQVJESU5GTz15CisjIENPTkZJR19JMkNfQ09NUEFUIGlzIG5vdCBzZXQKK0NPTkZJ R19JMkNfQ0hBUkRFVj1tCitDT05GSUdfSTJDX01VWD1tCisKKyMKKyMgTXVsdGlwbGV4ZXIgSTJD IENoaXAgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0FSQl9HUElPX0NIQUxMRU5HRSBpcyBub3Qg c2V0CitDT05GSUdfSTJDX01VWF9HUElPPW0KK0NPTkZJR19JMkNfTVVYX0dQTVVYPW0KK0NPTkZJ R19JMkNfTVVYX0xUQzQzMDY9bQorQ09ORklHX0kyQ19NVVhfUENBOTU0MT1tCitDT05GSUdfSTJD X01VWF9QQ0E5NTR4PW0KKyMgQ09ORklHX0kyQ19NVVhfUElOQ1RSTCBpcyBub3Qgc2V0CitDT05G SUdfSTJDX01VWF9SRUc9bQorQ09ORklHX0kyQ19ERU1VWF9QSU5DVFJMPW0KK0NPTkZJR19JMkNf TVVYX01MWENQTEQ9bQorIyBlbmQgb2YgTXVsdGlwbGV4ZXIgSTJDIENoaXAgc3VwcG9ydAorCitD T05GSUdfSTJDX0hFTFBFUl9BVVRPPXkKK0NPTkZJR19JMkNfU01CVVM9bQorQ09ORklHX0kyQ19B TEdPQklUPW0KK0NPTkZJR19JMkNfQUxHT1BDQT1tCisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBz dXBwb3J0CisjCisKKyMKKyMgUEMgU01CdXMgaG9zdCBjb250cm9sbGVyIGRyaXZlcnMKKyMKK0NP TkZJR19JMkNfQ0NHWF9VQ1NJPW0KK0NPTkZJR19JMkNfQUxJMTUzNT1tCitDT05GSUdfSTJDX0FM STE1NjM9bQorQ09ORklHX0kyQ19BTEkxNVgzPW0KK0NPTkZJR19JMkNfQU1ENzU2PW0KK0NPTkZJ R19JMkNfQU1EODExMT1tCitDT05GSUdfSTJDX0k4MDE9bQorQ09ORklHX0kyQ19JU0NIPW0KK0NP TkZJR19JMkNfUElJWDQ9bQorQ09ORklHX0kyQ19ORk9SQ0UyPW0KK0NPTkZJR19JMkNfTlZJRElB X0dQVT1tCitDT05GSUdfSTJDX1NJUzU1OTU9bQorQ09ORklHX0kyQ19TSVM2MzA9bQorQ09ORklH X0kyQ19TSVM5Nlg9bQorIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1ZJ QVBSTz1tCisKKyMKKyMgSTJDIHN5c3RlbSBidXMgZHJpdmVycyAobW9zdGx5IGVtYmVkZGVkIC8g c3lzdGVtLW9uLWNoaXApCisjCitDT05GSUdfSTJDX0NCVVNfR1BJTz1tCitDT05GSUdfSTJDX0RF U0lHTldBUkVfQ09SRT15CitDT05GSUdfSTJDX0RFU0lHTldBUkVfU0xBVkU9eQorQ09ORklHX0ky Q19ERVNJR05XQVJFX1BMQVRGT1JNPXkKK0NPTkZJR19JMkNfREVTSUdOV0FSRV9QQ0k9bQorIyBD T05GSUdfSTJDX0VNRVYyIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfR1BJTz1tCisjIENPTkZJR19J MkNfR1BJT19GQVVMVF9JTkpFQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfSTJDX0tFTVBMRD1tCitD T05GSUdfSTJDX01JQ1JPQ0hJUF9DT1JFPXkKK0NPTkZJR19JMkNfTVY2NFhYWD1tCitDT05GSUdf STJDX05PTUFESUs9bQorQ09ORklHX0kyQ19PQ09SRVM9bQorQ09ORklHX0kyQ19QQ0FfUExBVEZP Uk09bQorQ09ORklHX0kyQ19SSUlDPW0KK0NPTkZJR19JMkNfUkszWD1tCitDT05GSUdfSTJDX1Ja VjJNPW0KK0NPTkZJR19JMkNfU0hfTU9CSUxFPW0KKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90 IHNldAorQ09ORklHX0kyQ19YSUxJTlg9bQorQ09ORklHX0kyQ19SQ0FSPW0KKworIworIyBFeHRl cm5hbCBJMkMvU01CdXMgYWRhcHRlciBkcml2ZXJzCisjCitDT05GSUdfSTJDX0RJT0xBTl9VMkM9 bQorQ09ORklHX0kyQ19ETE4yPW0KK0NPTkZJR19JMkNfQ1AyNjE1PW0KK0NPTkZJR19JMkNfUEFS UE9SVD1tCitDT05GSUdfSTJDX1BDSTFYWFhYPW0KK0NPTkZJR19JMkNfUk9CT1RGVVpaX09TSUY9 bQorQ09ORklHX0kyQ19UQU9TX0VWTT1tCitDT05GSUdfSTJDX1RJTllfVVNCPW0KK0NPTkZJR19J MkNfVklQRVJCT0FSRD1tCisKKyMKKyMgT3RoZXIgSTJDL1NNQnVzIGJ1cyBkcml2ZXJzCisjCitD T05GSUdfSTJDX1ZJUlRJTz1tCisjIGVuZCBvZiBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKwor Q09ORklHX0kyQ19TVFVCPW0KK0NPTkZJR19JMkNfU0xBVkU9eQorQ09ORklHX0kyQ19TTEFWRV9F RVBST009bQorQ09ORklHX0kyQ19TTEFWRV9URVNUVU5JVD1tCisjIENPTkZJR19JMkNfREVCVUdf Q09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENP TkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEkyQyBzdXBwb3J0CisKK0NP TkZJR19JM0M9bQorQ09ORklHX0NETlNfSTNDX01BU1RFUj1tCitDT05GSUdfRFdfSTNDX01BU1RF Uj1tCitDT05GSUdfU1ZDX0kzQ19NQVNURVI9bQorQ09ORklHX01JUElfSTNDX0hDST1tCitDT05G SUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RF Uj15CitDT05GSUdfU1BJX01FTT15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZl cnMKKyMKKyMgQ09ORklHX1NQSV9BTFRFUkEgaXMgbm90IHNldAorQ09ORklHX1NQSV9BTFRFUkFf Q09SRT1tCitDT05GSUdfU1BJX0FMVEVSQV9ERkw9bQorIyBDT05GSUdfU1BJX0FYSV9TUElfRU5H SU5FIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfQklUQkFORz1tCisjIENPTkZJR19TUElfQlVUVEVS RkxZIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfQ0FERU5DRT1tCitDT05GSUdfU1BJX0NBREVOQ0Vf UVVBRFNQST1tCitDT05GSUdfU1BJX0NBREVOQ0VfWFNQST1tCitDT05GSUdfU1BJX0RFU0lHTldB UkU9bQorQ09ORklHX1NQSV9EV19ETUE9eQorQ09ORklHX1NQSV9EV19QQ0k9bQorQ09ORklHX1NQ SV9EV19NTUlPPW0KK0NPTkZJR19TUElfRExOMj1tCitDT05GSUdfU1BJX0dQSU89bQorIyBDT05G SUdfU1BJX0xNNzBfTExQIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfRlNMX0xJQj15CitDT05GSUdf U1BJX0ZTTF9TUEk9eQorQ09ORklHX1NQSV9NSUNST0NISVBfQ09SRT1tCitDT05GSUdfU1BJX01J Q1JPQ0hJUF9DT1JFX1FTUEk9bQorQ09ORklHX1NQSV9PQ19USU5ZPW0KK0NPTkZJR19TUElfUENJ MVhYWFg9bQorQ09ORklHX1NQSV9QTDAyMj1tCisjIENPTkZJR19TUElfUFhBMlhYIGlzIG5vdCBz ZXQKK0NPTkZJR19TUElfUlBDSUY9bQorQ09ORklHX1NQSV9SU1BJPW0KK0NPTkZJR19TUElfU0Mx OElTNjAyPW0KK0NPTkZJR19TUElfU0hfTVNJT0Y9bQorQ09ORklHX1NQSV9TSF9IU1BJPW0KK0NP TkZJR19TUElfU0lGSVZFPW0KK0NPTkZJR19TUElfU05fRl9PU1BJPW0KK0NPTkZJR19TUElfU1VO NEk9bQorQ09ORklHX1NQSV9TVU42ST1tCitDT05GSUdfU1BJX01YSUM9bQorQ09ORklHX1NQSV9Y Q09NTT1tCitDT05GSUdfU1BJX1hJTElOWD1tCitDT05GSUdfU1BJX1pZTlFNUF9HUVNQST1tCitD T05GSUdfU1BJX0FNRD1tCisKKyMKKyMgU1BJIE11bHRpcGxleGVyIHN1cHBvcnQKKyMKK0NPTkZJ R19TUElfTVVYPW0KKworIworIyBTUEkgUHJvdG9jb2wgTWFzdGVycworIworQ09ORklHX1NQSV9T UElERVY9bQorQ09ORklHX1NQSV9MT09QQkFDS19URVNUPW0KKyMgQ09ORklHX1NQSV9UTEU2Mlgw IGlzIG5vdCBzZXQKK0NPTkZJR19TUElfU0xBVkU9eQorQ09ORklHX1NQSV9TTEFWRV9USU1FPW0K K0NPTkZJR19TUElfU0xBVkVfU1lTVEVNX0NPTlRST0w9bQorQ09ORklHX1NQSV9EWU5BTUlDPXkK K0NPTkZJR19TUE1JPW0KK0NPTkZJR19TUE1JX0hJU0kzNjcwPW0KK0NPTkZJR19IU0k9bQorQ09O RklHX0hTSV9CT0FSRElORk89eQorCisjCisjIEhTSSBjb250cm9sbGVycworIworCisjCisjIEhT SSBjbGllbnRzCisjCitDT05GSUdfSFNJX0NIQVI9bQorQ09ORklHX1BQUz15CisjIENPTkZJR19Q UFNfREVCVUcgaXMgbm90IHNldAorCisjCisjIFBQUyBjbGllbnRzIHN1cHBvcnQKKyMKKyMgQ09O RklHX1BQU19DTElFTlRfS1RJTUVSIGlzIG5vdCBzZXQKK0NPTkZJR19QUFNfQ0xJRU5UX0xESVND PW0KK0NPTkZJR19QUFNfQ0xJRU5UX1BBUlBPUlQ9bQorQ09ORklHX1BQU19DTElFTlRfR1BJTz1t CisKKyMKKyMgUFBTIGdlbmVyYXRvcnMgc3VwcG9ydAorIworCisjCisjIFBUUCBjbG9jayBzdXBw b3J0CisjCitDT05GSUdfUFRQXzE1ODhfQ0xPQ0s9eQorQ09ORklHX1BUUF8xNTg4X0NMT0NLX09Q VElPTkFMPXkKKworIworIyBFbmFibGUgUEhZTElCIGFuZCBORVRXT1JLX1BIWV9USU1FU1RBTVBJ TkcgdG8gc2VlIHRoZSBhZGRpdGlvbmFsIGNsb2Nrcy4KKyMKK0NPTkZJR19QVFBfMTU4OF9DTE9D S19JRFQ4MlAzMz1tCitDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfSURUQ009bQorQ09ORklHX1BUUF8x NTg4X0NMT0NLX09DUD1tCitDT05GSUdfUFRQX0RGTF9UT0Q9bQorIyBlbmQgb2YgUFRQIGNsb2Nr IHN1cHBvcnQKKworQ09ORklHX1BJTkNUUkw9eQorQ09ORklHX0dFTkVSSUNfUElOQ1RSTF9HUk9V UFM9eQorQ09ORklHX1BJTk1VWD15CitDT05GSUdfR0VORVJJQ19QSU5NVVhfRlVOQ1RJT05TPXkK K0NPTkZJR19QSU5DT05GPXkKK0NPTkZJR19HRU5FUklDX1BJTkNPTkY9eQorIyBDT05GSUdfREVC VUdfUElOQ1RSTCBpcyBub3Qgc2V0CitDT05GSUdfUElOQ1RSTF9BWFAyMDk9bQorQ09ORklHX1BJ TkNUUkxfQ1k4Qzk1WDA9bQorQ09ORklHX1BJTkNUUkxfTUFYNzc2MjA9bQorQ09ORklHX1BJTkNU UkxfTUNQMjNTMDhfSTJDPW0KK0NPTkZJR19QSU5DVFJMX01DUDIzUzA4X1NQST1tCitDT05GSUdf UElOQ1RSTF9NQ1AyM1MwOD1tCitDT05GSUdfUElOQ1RSTF9NSUNST0NISVBfU0dQSU89eQorIyBD T05GSUdfUElOQ1RSTF9PQ0VMT1QgaXMgbm90IHNldAorQ09ORklHX1BJTkNUUkxfUks4MDU9bQor Q09ORklHX1BJTkNUUkxfU0lOR0xFPXkKK0NPTkZJR19QSU5DVFJMX1NUTUZYPW0KK0NPTkZJR19Q SU5DVFJMX1NYMTUwWD15CitDT05GSUdfUElOQ1RSTF9MT0NITkFHQVI9bQorQ09ORklHX1BJTkNU UkxfTUFERVJBPW0KK0NPTkZJR19QSU5DVFJMX0NTNDdMMTU9eQorQ09ORklHX1BJTkNUUkxfQ1M0 N0wzNT15CitDT05GSUdfUElOQ1RSTF9DUzQ3TDg1PXkKK0NPTkZJR19QSU5DVFJMX0NTNDdMOTA9 eQorQ09ORklHX1BJTkNUUkxfQ1M0N0w5Mj15CisKKyMKKyMgUmVuZXNhcyBwaW5jdHJsIGRyaXZl cnMKKyMKK0NPTkZJR19QSU5DVFJMX1JFTkVTQVM9eQorQ09ORklHX1BJTkNUUkxfUlpHMkw9eQor IyBlbmQgb2YgUmVuZXNhcyBwaW5jdHJsIGRyaXZlcnMKKworQ09ORklHX1BJTkNUUkxfU1RBUkZJ VkVfSkg3MTAwPXkKK0NPTkZJR19QSU5DVFJMX1NUQVJGSVZFX0pINzExMD15CitDT05GSUdfUElO Q1RSTF9TVEFSRklWRV9KSDcxMTBfU1lTPXkKK0NPTkZJR19QSU5DVFJMX1NUQVJGSVZFX0pINzEx MF9BT049bQorQ09ORklHX1BJTkNUUkxfU1VOWEk9eQorQ09ORklHX1BJTkNUUkxfU1VONElfQTEw PXkKK0NPTkZJR19QSU5DVFJMX1NVTjVJPXkKK0NPTkZJR19QSU5DVFJMX1NVTjZJX0EzMT15CitD T05GSUdfUElOQ1RSTF9TVU42SV9BMzFfUj15CitDT05GSUdfUElOQ1RSTF9TVU44SV9BMjM9eQor Q09ORklHX1BJTkNUUkxfU1VOOElfQTMzPXkKK0NPTkZJR19QSU5DVFJMX1NVTjhJX0E4M1Q9eQor Q09ORklHX1BJTkNUUkxfU1VOOElfQTgzVF9SPXkKK0NPTkZJR19QSU5DVFJMX1NVTjhJX0EyM19S PXkKK0NPTkZJR19QSU5DVFJMX1NVTjhJX0gzPXkKK0NPTkZJR19QSU5DVFJMX1NVTjhJX0gzX1I9 eQorQ09ORklHX1BJTkNUUkxfU1VOOElfVjNTPXkKKyMgQ09ORklHX1BJTkNUUkxfU1VOOUlfQTgw IGlzIG5vdCBzZXQKK0NPTkZJR19QSU5DVFJMX1NVTjlJX0E4MF9SPXkKK0NPTkZJR19QSU5DVFJM X1NVTjIwSV9EMT15CitDT05GSUdfUElOQ1RSTF9TVU41MElfQTY0PXkKK0NPTkZJR19QSU5DVFJM X1NVTjUwSV9BNjRfUj15CitDT05GSUdfUElOQ1RSTF9TVU41MElfQTEwMD15CitDT05GSUdfUElO Q1RSTF9TVU41MElfQTEwMF9SPXkKK0NPTkZJR19QSU5DVFJMX1NVTjUwSV9INT15CitDT05GSUdf UElOQ1RSTF9TVU41MElfSDY9eQorQ09ORklHX1BJTkNUUkxfU1VONTBJX0g2X1I9eQorQ09ORklH X1BJTkNUUkxfU1VONTBJX0g2MTY9eQorQ09ORklHX1BJTkNUUkxfU1VONTBJX0g2MTZfUj15CitD T05GSUdfR1BJT0xJQj15CitDT05GSUdfR1BJT0xJQl9GQVNUUEFUSF9MSU1JVD01MTIKK0NPTkZJ R19PRl9HUElPPXkKK0NPTkZJR19HUElPTElCX0lSUUNISVA9eQorIyBDT05GSUdfREVCVUdfR1BJ TyBpcyBub3Qgc2V0CitDT05GSUdfR1BJT19TWVNGUz15CitDT05GSUdfR1BJT19DREVWPXkKK0NP TkZJR19HUElPX0NERVZfVjE9eQorQ09ORklHX0dQSU9fR0VORVJJQz15CitDT05GSUdfR1BJT19S RUdNQVA9bQorQ09ORklHX0dQSU9fTUFYNzMwWD1tCitDT05GSUdfR1BJT19JRElPXzE2PW0KKwor IworIyBNZW1vcnkgbWFwcGVkIEdQSU8gZHJpdmVycworIworQ09ORklHX0dQSU9fNzRYWF9NTUlP PW0KKyMgQ09ORklHX0dQSU9fQUxURVJBIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX0NBREVOQ0U9 bQorQ09ORklHX0dQSU9fRFdBUEI9bQorIyBDT05GSUdfR1BJT19FWEFSIGlzIG5vdCBzZXQKK0NP TkZJR19HUElPX0ZUR1BJTzAxMD15CitDT05GSUdfR1BJT19HRU5FUklDX1BMQVRGT1JNPXkKK0NP TkZJR19HUElPX0dSR1BJTz1tCisjIENPTkZJR19HUElPX0hMV0QgaXMgbm90IHNldAorIyBDT05G SUdfR1BJT19MT0dJQ1ZDIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX01CODZTN1g9bQorQ09ORklH X0dQSU9fUEwwNjE9bQorQ09ORklHX0dQSU9fUkNBUj1tCisjIENPTkZJR19HUElPX1NJRklWRSBp cyBub3Qgc2V0CitDT05GSUdfR1BJT19TWVNDT049bQorQ09ORklHX0dQSU9fWElMSU5YPW0KKyMg Q09ORklHX0dQSU9fQU1EX0ZDSCBpcyBub3Qgc2V0CisjIGVuZCBvZiBNZW1vcnkgbWFwcGVkIEdQ SU8gZHJpdmVycworCisjCisjIEkyQyBHUElPIGV4cGFuZGVycworIworIyBDT05GSUdfR1BJT19B RE5QIGlzIG5vdCBzZXQKK0NPTkZJR19HUElPX0ZYTDY0MDg9bQorQ09ORklHX0dQSU9fR1dfUExE PW0KK0NPTkZJR19HUElPX01BWDczMDA9bQorQ09ORklHX0dQSU9fTUFYNzMyWD1tCitDT05GSUdf R1BJT19QQ0E5NTNYPW0KK0NPTkZJR19HUElPX1BDQTk1M1hfSVJRPXkKK0NPTkZJR19HUElPX1BD QTk1NzA9bQorQ09ORklHX0dQSU9fUENGODU3WD1tCitDT05GSUdfR1BJT19UUElDMjgxMD1tCisj IGVuZCBvZiBJMkMgR1BJTyBleHBhbmRlcnMKKworIworIyBNRkQgR1BJTyBleHBhbmRlcnMKKyMK K0NPTkZJR19HUElPX0JENzE4MTU9bQorQ09ORklHX0dQSU9fQkQ3MTgyOD1tCitDT05GSUdfR1BJ T19CRDk1NzFNV1Y9bQorQ09ORklHX0dQSU9fRExOMj1tCitDT05GSUdfR1BJT19LRU1QTEQ9bQor Q09ORklHX0dQSU9fTFAzOTQzPW0KK0NPTkZJR19HUElPX0xQODczWD1tCitDT05GSUdfR1BJT19M UDg3NTY1PW0KK0NPTkZJR19HUElPX01BREVSQT1tCitDT05GSUdfR1BJT19NQVg3NzYyMD1tCitD T05GSUdfR1BJT19NQVg3NzY1MD1tCitDT05GSUdfR1BJT19UUU1YODY9bQorIyBDT05GSUdfR1BJ T19XTTg5OTQgaXMgbm90IHNldAorIyBlbmQgb2YgTUZEIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMg UENJIEdQSU8gZXhwYW5kZXJzCisjCitDT05GSUdfR1BJT19QQ0lfSURJT18xNj1tCitDT05GSUdf R1BJT19QQ0lFX0lESU9fMjQ9bQorIyBDT05GSUdfR1BJT19SREMzMjFYIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIFBDSSBHUElPIGV4cGFuZGVycworCisjCisjIFNQSSBHUElPIGV4cGFuZGVycworIwor IyBDT05GSUdfR1BJT183NFgxNjQgaXMgbm90IHNldAorQ09ORklHX0dQSU9fTUFYMzE5MVg9bQor IyBDT05GSUdfR1BJT19NQVg3MzAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dQSU9fTUMzMzg4MCBp cyBub3Qgc2V0CitDT05GSUdfR1BJT19QSVNPU1I9bQorQ09ORklHX0dQSU9fWFJBMTQwMz1tCitD T05GSUdfR1BJT19NT1hURVQ9bQorIyBlbmQgb2YgU1BJIEdQSU8gZXhwYW5kZXJzCisKKyMKKyMg VVNCIEdQSU8gZXhwYW5kZXJzCisjCitDT05GSUdfR1BJT19WSVBFUkJPQVJEPW0KKyMgZW5kIG9m IFVTQiBHUElPIGV4cGFuZGVycworCisjCisjIFZpcnR1YWwgR1BJTyBkcml2ZXJzCisjCitDT05G SUdfR1BJT19BR0dSRUdBVE9SPW0KK0NPTkZJR19HUElPX0xBVENIPW0KK0NPTkZJR19HUElPX01P Q0tVUD1tCitDT05GSUdfR1BJT19WSVJUSU89bQorQ09ORklHX0dQSU9fU0lNPW0KKyMgZW5kIG9m IFZpcnR1YWwgR1BJTyBkcml2ZXJzCisKK0NPTkZJR19XMT1tCitDT05GSUdfVzFfQ09OPXkKKwor IworIyAxLXdpcmUgQnVzIE1hc3RlcnMKKyMKK0NPTkZJR19XMV9NQVNURVJfTUFUUk9YPW0KK0NP TkZJR19XMV9NQVNURVJfRFMyNDkwPW0KK0NPTkZJR19XMV9NQVNURVJfRFMyNDgyPW0KK0NPTkZJ R19XMV9NQVNURVJfR1BJTz1tCisjIENPTkZJR19XMV9NQVNURVJfU0dJIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIDEtd2lyZSBCdXMgTWFzdGVycworCisjCisjIDEtd2lyZSBTbGF2ZXMKKyMKK0NPTkZJ R19XMV9TTEFWRV9USEVSTT1tCitDT05GSUdfVzFfU0xBVkVfU01FTT1tCitDT05GSUdfVzFfU0xB VkVfRFMyNDA1PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MDg9bQorQ09ORklHX1cxX1NMQVZFX0RT MjQwOF9SRUFEQkFDSz15CitDT05GSUdfVzFfU0xBVkVfRFMyNDEzPW0KK0NPTkZJR19XMV9TTEFW RV9EUzI0MDY9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQyMz1tCitDT05GSUdfVzFfU0xBVkVfRFMy ODA1PW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MzA9bQorQ09ORklHX1cxX1NMQVZFX0RTMjQzMT1t CitDT05GSUdfVzFfU0xBVkVfRFMyNDMzPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI0MzNfQ1JDPXkK K0NPTkZJR19XMV9TTEFWRV9EUzI0Mzg9bQorQ09ORklHX1cxX1NMQVZFX0RTMjUwWD1tCitDT05G SUdfVzFfU0xBVkVfRFMyNzgwPW0KK0NPTkZJR19XMV9TTEFWRV9EUzI3ODE9bQorQ09ORklHX1cx X1NMQVZFX0RTMjhFMDQ9bQorQ09ORklHX1cxX1NMQVZFX0RTMjhFMTc9bQorIyBlbmQgb2YgMS13 aXJlIFNsYXZlcworCitDT05GSUdfUE9XRVJfUkVTRVQ9eQorQ09ORklHX1BPV0VSX1JFU0VUX0FU QzI2MFg9bQorQ09ORklHX1BPV0VSX1JFU0VUX0dQSU89eQorQ09ORklHX1BPV0VSX1JFU0VUX0dQ SU9fUkVTVEFSVD15CitDT05GSUdfUE9XRVJfUkVTRVRfTFRDMjk1Mj15CitDT05GSUdfUE9XRVJf UkVTRVRfUkVHVUxBVE9SPXkKK0NPTkZJR19QT1dFUl9SRVNFVF9SRVNUQVJUPXkKK0NPTkZJR19Q T1dFUl9SRVNFVF9TWVNDT049eQorQ09ORklHX1BPV0VSX1JFU0VUX1NZU0NPTl9QT1dFUk9GRj15 CitDT05GSUdfUkVCT09UX01PREU9bQorQ09ORklHX1NZU0NPTl9SRUJPT1RfTU9ERT1tCitDT05G SUdfTlZNRU1fUkVCT09UX01PREU9bQorQ09ORklHX1BPV0VSX1NVUFBMWT15CisjIENPTkZJR19Q T1dFUl9TVVBQTFlfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BPV0VSX1NVUFBMWV9IV01PTj15 CisjIENPTkZJR19HRU5FUklDX0FEQ19CQVRURVJZIGlzIG5vdCBzZXQKK0NPTkZJR19JUDVYWFhf UE9XRVI9bQorIyBDT05GSUdfVEVTVF9QT1dFUiBpcyBub3Qgc2V0CitDT05GSUdfQ0hBUkdFUl9B RFA1MDYxPW0KK0NPTkZJR19CQVRURVJZX0NQQ0FQPW0KK0NPTkZJR19CQVRURVJZX0NXMjAxNT1t CitDT05GSUdfQkFUVEVSWV9EUzI3NjA9bQorQ09ORklHX0JBVFRFUllfRFMyNzgwPW0KK0NPTkZJ R19CQVRURVJZX0RTMjc4MT1tCitDT05GSUdfQkFUVEVSWV9EUzI3ODI9bQorQ09ORklHX0JBVFRF UllfUUNPTV9CQVRUTUdSPW0KKyMgQ09ORklHX0JBVFRFUllfU0FNU1VOR19TREkgaXMgbm90IHNl dAorQ09ORklHX0JBVFRFUllfU0JTPW0KK0NPTkZJR19DSEFSR0VSX1NCUz1tCitDT05GSUdfTUFO QUdFUl9TQlM9bQorQ09ORklHX0JBVFRFUllfQlEyN1hYWD1tCitDT05GSUdfQkFUVEVSWV9CUTI3 WFhYX0kyQz1tCitDT05GSUdfQkFUVEVSWV9CUTI3WFhYX0hEUT1tCisjIENPTkZJR19CQVRURVJZ X0JRMjdYWFhfRFRfVVBEQVRFU19OVk0gaXMgbm90IHNldAorQ09ORklHX0NIQVJHRVJfQVhQMjBY PW0KK0NPTkZJR19CQVRURVJZX0FYUDIwWD1tCitDT05GSUdfQVhQMjBYX1BPV0VSPW0KK0NPTkZJ R19CQVRURVJZX01BWDE3MDQwPW0KK0NPTkZJR19CQVRURVJZX01BWDE3MDQyPW0KK0NPTkZJR19C QVRURVJZX01BWDE3MjFYPW0KK0NPTkZJR19DSEFSR0VSX0lTUDE3MDQ9bQorQ09ORklHX0NIQVJH RVJfTUFYODkwMz1tCitDT05GSUdfQ0hBUkdFUl9MUDg3Mjc9bQorQ09ORklHX0NIQVJHRVJfR1BJ Tz1tCisjIENPTkZJR19DSEFSR0VSX01BTkFHRVIgaXMgbm90IHNldAorQ09ORklHX0NIQVJHRVJf TFQzNjUxPW0KK0NPTkZJR19DSEFSR0VSX0xUQzQxNjJMPW0KK0NPTkZJR19DSEFSR0VSX0RFVEVD VE9SX01BWDE0NjU2PW0KK0NPTkZJR19DSEFSR0VSX01BWDc3NjUwPW0KK0NPTkZJR19DSEFSR0VS X01BWDc3OTc2PW0KK0NPTkZJR19DSEFSR0VSX01QMjYyOT1tCitDT05GSUdfQ0hBUkdFUl9NVDYz NzA9bQorIyBDT05GSUdfQ0hBUkdFUl9CUTI0MTVYIGlzIG5vdCBzZXQKK0NPTkZJR19DSEFSR0VS X0JRMjQxOTA9bQorQ09ORklHX0NIQVJHRVJfQlEyNDI1Nz1tCitDT05GSUdfQ0hBUkdFUl9CUTI0 NzM1PW0KK0NPTkZJR19DSEFSR0VSX0JRMjUxNVg9bQorQ09ORklHX0NIQVJHRVJfQlEyNTg5MD1t CitDT05GSUdfQ0hBUkdFUl9CUTI1OTgwPW0KK0NPTkZJR19DSEFSR0VSX0JRMjU2WFg9bQorQ09O RklHX0NIQVJHRVJfUks4MTc9bQorQ09ORklHX0NIQVJHRVJfU01CMzQ3PW0KKyMgQ09ORklHX0JB VFRFUllfR0FVR0VfTFRDMjk0MSBpcyBub3Qgc2V0CisjIENPTkZJR19CQVRURVJZX0dPTERGSVNI IGlzIG5vdCBzZXQKK0NPTkZJR19CQVRURVJZX1JUNTAzMz1tCitDT05GSUdfQ0hBUkdFUl9SVDk0 NTU9bQorQ09ORklHX0NIQVJHRVJfUlQ5NDY3PW0KK0NPTkZJR19DSEFSR0VSX1JUOTQ3MT1tCitD T05GSUdfQ0hBUkdFUl9VQ1MxMDAyPW0KK0NPTkZJR19DSEFSR0VSX0JEOTk5NTQ9bQorQ09ORklH X0JBVFRFUllfVUczMTA1PW0KK0NPTkZJR19IV01PTj15CitDT05GSUdfSFdNT05fVklEPW0KKyMg Q09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAorCisjCisjIE5hdGl2ZSBkcml2ZXJz CisjCitDT05GSUdfU0VOU09SU19TTVBSTz1tCisjIENPTkZJR19TRU5TT1JTX0FENzMxNCBpcyBu b3Qgc2V0CitDT05GSUdfU0VOU09SU19BRDc0MTQ9bQorQ09ORklHX1NFTlNPUlNfQUQ3NDE4PW0K K0NPTkZJR19TRU5TT1JTX0FETTEwMjU9bQorQ09ORklHX1NFTlNPUlNfQURNMTAyNj1tCitDT05G SUdfU0VOU09SU19BRE0xMDI5PW0KK0NPTkZJR19TRU5TT1JTX0FETTEwMzE9bQorQ09ORklHX1NF TlNPUlNfQURNMTE3Nz1tCitDT05GSUdfU0VOU09SU19BRE05MjQwPW0KK0NPTkZJR19TRU5TT1JT X0FEVDdYMTA9bQorIyBDT05GSUdfU0VOU09SU19BRFQ3MzEwIGlzIG5vdCBzZXQKK0NPTkZJR19T RU5TT1JTX0FEVDc0MTA9bQorQ09ORklHX1NFTlNPUlNfQURUNzQxMT1tCitDT05GSUdfU0VOU09S U19BRFQ3NDYyPW0KK0NPTkZJR19TRU5TT1JTX0FEVDc0NzA9bQorQ09ORklHX1NFTlNPUlNfQURU NzQ3NT1tCitDT05GSUdfU0VOU09SU19BSFQxMD1tCitDT05GSUdfU0VOU09SU19BUVVBQ09NUFVU RVJfRDVORVhUPW0KK0NPTkZJR19TRU5TT1JTX0FTMzcwPW0KK0NPTkZJR19TRU5TT1JTX0FTQzc2 MjE9bQorQ09ORklHX1NFTlNPUlNfQVhJX0ZBTl9DT05UUk9MPW0KK0NPTkZJR19TRU5TT1JTX0FU WFAxPW0KK0NPTkZJR19TRU5TT1JTX0NPUlNBSVJfQ1BSTz1tCitDT05GSUdfU0VOU09SU19DT1JT QUlSX1BTVT1tCitDT05GSUdfU0VOU09SU19EUklWRVRFTVA9bQorQ09ORklHX1NFTlNPUlNfRFM2 MjA9bQorQ09ORklHX1NFTlNPUlNfRFMxNjIxPW0KK0NPTkZJR19TRU5TT1JTX0k1S19BTUI9bQor Q09ORklHX1NFTlNPUlNfRjcxODA1Rj1tCitDT05GSUdfU0VOU09SU19GNzE4ODJGRz1tCitDT05G SUdfU0VOU09SU19GNzUzNzVTPW0KK0NPTkZJR19TRU5TT1JTX0dTQz1tCitDT05GSUdfU0VOU09S U19GVFNURVVUQVRFUz1tCitDT05GSUdfU0VOU09SU19HTDUxOFNNPW0KK0NPTkZJR19TRU5TT1JT X0dMNTIwU009bQorQ09ORklHX1NFTlNPUlNfRzc2MEE9bQorQ09ORklHX1NFTlNPUlNfRzc2Mj1t CitDT05GSUdfU0VOU09SU19HUElPX0ZBTj1tCitDT05GSUdfU0VOU09SU19ISUg2MTMwPW0KK0NP TkZJR19TRU5TT1JTX0lCTUFFTT1tCitDT05GSUdfU0VOU09SU19JQk1QRVg9bQorIyBDT05GSUdf U0VOU09SU19JSU9fSFdNT04gaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfSVQ4Nz1tCitDT05G SUdfU0VOU09SU19KQzQyPW0KK0NPTkZJR19TRU5TT1JTX1BPV1IxMjIwPW0KK0NPTkZJR19TRU5T T1JTX0xJTkVBR0U9bQorQ09ORklHX1NFTlNPUlNfTE9DSE5BR0FSPW0KK0NPTkZJR19TRU5TT1JT X0xUQzI5NDU9bQorQ09ORklHX1NFTlNPUlNfTFRDMjk0Nz1tCitDT05GSUdfU0VOU09SU19MVEMy OTQ3X0kyQz1tCitDT05GSUdfU0VOU09SU19MVEMyOTQ3X1NQST1tCitDT05GSUdfU0VOU09SU19M VEMyOTkwPW0KK0NPTkZJR19TRU5TT1JTX0xUQzI5OTI9bQorQ09ORklHX1NFTlNPUlNfTFRDNDE1 MT1tCitDT05GSUdfU0VOU09SU19MVEM0MjE1PW0KK0NPTkZJR19TRU5TT1JTX0xUQzQyMjI9bQor Q09ORklHX1NFTlNPUlNfTFRDNDI0NT1tCitDT05GSUdfU0VOU09SU19MVEM0MjYwPW0KK0NPTkZJ R19TRU5TT1JTX0xUQzQyNjE9bQorIyBDT05GSUdfU0VOU09SU19NQVgxMTExIGlzIG5vdCBzZXQK K0NPTkZJR19TRU5TT1JTX01BWDEyNz1tCitDT05GSUdfU0VOU09SU19NQVgxNjA2NT1tCitDT05G SUdfU0VOU09SU19NQVgxNjE5PW0KK0NPTkZJR19TRU5TT1JTX01BWDE2Njg9bQorIyBDT05GSUdf U0VOU09SU19NQVgxOTcgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTUFYMzE3MjI9bQorQ09O RklHX1NFTlNPUlNfTUFYMzE3MzA9bQorQ09ORklHX1NFTlNPUlNfTUFYMzE3NjA9bQorQ09ORklH X1NFTlNPUlNfTUFYNjYyMD1tCitDT05GSUdfU0VOU09SU19NQVg2NjIxPW0KK0NPTkZJR19TRU5T T1JTX01BWDY2Mzk9bQorQ09ORklHX1NFTlNPUlNfTUFYNjY1MD1tCitDT05GSUdfU0VOU09SU19N QVg2Njk3PW0KK0NPTkZJR19TRU5TT1JTX01BWDMxNzkwPW0KK0NPTkZJR19TRU5TT1JTX01DMzRW UjUwMD1tCitDT05GSUdfU0VOU09SU19NQ1AzMDIxPW0KK0NPTkZJR19TRU5TT1JTX1RDNjU0PW0K K0NPTkZJR19TRU5TT1JTX1RQUzIzODYxPW0KKyMgQ09ORklHX1NFTlNPUlNfTUVORjIxQk1DX0hX TU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX01SNzUyMDM9bQorIyBDT05GSUdfU0VOU09S U19BRENYWCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MTTYzPW0KKyMgQ09ORklHX1NFTlNP UlNfTE03MCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MTTczPW0KK0NPTkZJR19TRU5TT1JT X0xNNzU9bQorQ09ORklHX1NFTlNPUlNfTE03Nz1tCitDT05GSUdfU0VOU09SU19MTTc4PW0KK0NP TkZJR19TRU5TT1JTX0xNODA9bQorQ09ORklHX1NFTlNPUlNfTE04Mz1tCitDT05GSUdfU0VOU09S U19MTTg1PW0KK0NPTkZJR19TRU5TT1JTX0xNODc9bQorQ09ORklHX1NFTlNPUlNfTE05MD1tCitD T05GSUdfU0VOU09SU19MTTkyPW0KK0NPTkZJR19TRU5TT1JTX0xNOTM9bQorQ09ORklHX1NFTlNP UlNfTE05NTIzND1tCitDT05GSUdfU0VOU09SU19MTTk1MjQxPW0KK0NPTkZJR19TRU5TT1JTX0xN OTUyNDU9bQorQ09ORklHX1NFTlNPUlNfUEM4NzM2MD1tCitDT05GSUdfU0VOU09SU19QQzg3NDI3 PW0KKyMgQ09ORklHX1NFTlNPUlNfTlRDX1RIRVJNSVNUT1IgaXMgbm90IHNldAorQ09ORklHX1NF TlNPUlNfTkNUNjY4Mz1tCisjIENPTkZJR19TRU5TT1JTX05DVDY3NzVfSTJDIGlzIG5vdCBzZXQK K0NPTkZJR19TRU5TT1JTX05DVDc4MDI9bQorQ09ORklHX1NFTlNPUlNfTkNUNzkwND1tCitDT05G SUdfU0VOU09SU19OUENNN1hYPW0KK0NPTkZJR19TRU5TT1JTX05aWFRfS1JBS0VOMj1tCitDT05G SUdfU0VOU09SU19OWlhUX1NNQVJUMj1tCitDT05GSUdfU0VOU09SU19PQ0NfUDhfSTJDPW0KK0NP TkZJR19TRU5TT1JTX09DQz1tCitDT05GSUdfU0VOU09SU19QQ0Y4NTkxPW0KK0NPTkZJR19TRU5T T1JTX1BFQ0lfQ1BVVEVNUD1tCitDT05GSUdfU0VOU09SU19QRUNJX0RJTU1URU1QPW0KK0NPTkZJ R19TRU5TT1JTX1BFQ0k9bQorQ09ORklHX1BNQlVTPW0KK0NPTkZJR19TRU5TT1JTX1BNQlVTPW0K K0NPTkZJR19TRU5TT1JTX0FDQkVMX0ZTRzAzMj1tCitDT05GSUdfU0VOU09SU19BRE0xMjY2PW0K K0NPTkZJR19TRU5TT1JTX0FETTEyNzU9bQorQ09ORklHX1NFTlNPUlNfQkVMX1BGRT1tCitDT05G SUdfU0VOU09SU19CUEFfUlM2MDA9bQorQ09ORklHX1NFTlNPUlNfREVMVEFfQUhFNTBEQ19GQU49 bQorQ09ORklHX1NFTlNPUlNfRlNQXzNZPW0KKyMgQ09ORklHX1NFTlNPUlNfSUJNX0NGRlBTIGlz IG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0RQUzkyMEFCPW0KK0NPTkZJR19TRU5TT1JTX0lOU1BV Ul9JUFNQUz1tCitDT05GSUdfU0VOU09SU19JUjM1MjIxPW0KK0NPTkZJR19TRU5TT1JTX0lSMzYw MjE9bQorQ09ORklHX1NFTlNPUlNfSVIzODA2ND1tCisjIENPTkZJR19TRU5TT1JTX0lSMzgwNjRf UkVHVUxBVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX0lSUFM1NDAxPW0KK0NPTkZJR19T RU5TT1JTX0lTTDY4MTM3PW0KK0NPTkZJR19TRU5TT1JTX0xNMjUwNjY9bQorQ09ORklHX1NFTlNP UlNfTE0yNTA2Nl9SRUdVTEFUT1I9eQorQ09ORklHX1NFTlNPUlNfTFQ3MTgyUz1tCitDT05GSUdf U0VOU09SU19MVEMyOTc4PW0KKyMgQ09ORklHX1NFTlNPUlNfTFRDMjk3OF9SRUdVTEFUT1IgaXMg bm90IHNldAorQ09ORklHX1NFTlNPUlNfTFRDMzgxNT1tCitDT05GSUdfU0VOU09SU19NQVgxNTMw MT1tCitDT05GSUdfU0VOU09SU19NQVgxNjA2ND1tCitDT05GSUdfU0VOU09SU19NQVgxNjYwMT1t CitDT05GSUdfU0VOU09SU19NQVgyMDczMD1tCitDT05GSUdfU0VOU09SU19NQVgyMDc1MT1tCitD T05GSUdfU0VOU09SU19NQVgzMTc4NT1tCitDT05GSUdfU0VOU09SU19NQVgzNDQ0MD1tCitDT05G SUdfU0VOU09SU19NQVg4Njg4PW0KK0NPTkZJR19TRU5TT1JTX01QMjg4OD1tCitDT05GSUdfU0VO U09SU19NUDI5NzU9bQorQ09ORklHX1NFTlNPUlNfTVA1MDIzPW0KK0NPTkZJR19TRU5TT1JTX01Q UTc5MzJfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX01QUTc5MzI9bQorQ09ORklHX1NFTlNP UlNfUElNNDMyOD1tCitDT05GSUdfU0VOU09SU19QTEkxMjA5QkM9bQorQ09ORklHX1NFTlNPUlNf UExJMTIwOUJDX1JFR1VMQVRPUj15CitDT05GSUdfU0VOU09SU19QTTY3NjRUUj1tCitDT05GSUdf U0VOU09SU19QWEUxNjEwPW0KK0NPTkZJR19TRU5TT1JTX1E1NFNKMTA4QTI9bQorQ09ORklHX1NF TlNPUlNfU1RQRERDNjA9bQorQ09ORklHX1NFTlNPUlNfVERBMzg2NDA9bQorQ09ORklHX1NFTlNP UlNfVERBMzg2NDBfUkVHVUxBVE9SPXkKK0NPTkZJR19TRU5TT1JTX1RQUzQwNDIyPW0KK0NPTkZJ R19TRU5TT1JTX1RQUzUzNjc5PW0KK0NPTkZJR19TRU5TT1JTX1RQUzU0NkQyND1tCitDT05GSUdf U0VOU09SU19VQ0Q5MDAwPW0KK0NPTkZJR19TRU5TT1JTX1VDRDkyMDA9bQorIyBDT05GSUdfU0VO U09SU19YRFBFMTUyIGlzIG5vdCBzZXQKK0NPTkZJR19TRU5TT1JTX1hEUEUxMjI9bQorQ09ORklH X1NFTlNPUlNfWERQRTEyMl9SRUdVTEFUT1I9eQorQ09ORklHX1NFTlNPUlNfWkw2MTAwPW0KK0NP TkZJR19TRU5TT1JTX1BXTV9GQU49bQorQ09ORklHX1NFTlNPUlNfU0JUU0k9bQorQ09ORklHX1NF TlNPUlNfU0JSTUk9bQorQ09ORklHX1NFTlNPUlNfU0hUMTU9bQorQ09ORklHX1NFTlNPUlNfU0hU MjE9bQorQ09ORklHX1NFTlNPUlNfU0hUM3g9bQorQ09ORklHX1NFTlNPUlNfU0hUNHg9bQorQ09O RklHX1NFTlNPUlNfU0hUQzE9bQorQ09ORklHX1NFTlNPUlNfU0lTNTU5NT1tCitDT05GSUdfU0VO U09SU19TWTc2MzZBPW0KK0NPTkZJR19TRU5TT1JTX0RNRTE3Mzc9bQorQ09ORklHX1NFTlNPUlNf RU1DMTQwMz1tCitDT05GSUdfU0VOU09SU19FTUMyMTAzPW0KK0NPTkZJR19TRU5TT1JTX0VNQzIz MDU9bQorQ09ORklHX1NFTlNPUlNfRU1DNlcyMDE9bQorQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE9 bQorQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5Mj1tCitDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3 PW0KK0NPTkZJR19TRU5TT1JTX1NDSDU2WFhfQ09NTU9OPW0KK0NPTkZJR19TRU5TT1JTX1NDSDU2 Mjc9bQorQ09ORklHX1NFTlNPUlNfU0NINTYzNj1tCitDT05GSUdfU0VOU09SU19TVFRTNzUxPW0K K0NPTkZJR19TRU5TT1JTX1NGQ1RFTVA9bQorQ09ORklHX1NFTlNPUlNfU01NNjY1PW0KK0NPTkZJ R19TRU5TT1JTX0FEQzEyOEQ4MTg9bQorQ09ORklHX1NFTlNPUlNfQURTNzgyOD1tCisjIENPTkZJ R19TRU5TT1JTX0FEUzc4NzEgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfQU1DNjgyMT1tCitD T05GSUdfU0VOU09SU19JTkEyMDk9bQorQ09ORklHX1NFTlNPUlNfSU5BMlhYPW0KK0NPTkZJR19T RU5TT1JTX0lOQTIzOD1tCitDT05GSUdfU0VOU09SU19JTkEzMjIxPW0KK0NPTkZJR19TRU5TT1JT X1RDNzQ9bQorQ09ORklHX1NFTlNPUlNfVEhNQzUwPW0KK0NPTkZJR19TRU5TT1JTX1RNUDEwMj1t CitDT05GSUdfU0VOU09SU19UTVAxMDM9bQorQ09ORklHX1NFTlNPUlNfVE1QMTA4PW0KK0NPTkZJ R19TRU5TT1JTX1RNUDQwMT1tCitDT05GSUdfU0VOU09SU19UTVA0MjE9bQorQ09ORklHX1NFTlNP UlNfVE1QNDY0PW0KK0NPTkZJR19TRU5TT1JTX1RNUDUxMz1tCitDT05GSUdfU0VOU09SU19WSUE2 ODZBPW0KK0NPTkZJR19TRU5TT1JTX1ZUMTIxMT1tCitDT05GSUdfU0VOU09SU19WVDgyMzE9bQor Q09ORklHX1NFTlNPUlNfVzgzNzczRz1tCitDT05GSUdfU0VOU09SU19XODM3ODFEPW0KK0NPTkZJ R19TRU5TT1JTX1c4Mzc5MUQ9bQorQ09ORklHX1NFTlNPUlNfVzgzNzkyRD1tCitDT05GSUdfU0VO U09SU19XODM3OTM9bQorQ09ORklHX1NFTlNPUlNfVzgzNzk1PW0KKyMgQ09ORklHX1NFTlNPUlNf VzgzNzk1X0ZBTkNUUkwgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTPW0KK0NP TkZJR19TRU5TT1JTX1c4M0w3ODZORz1tCitDT05GSUdfU0VOU09SU19XODM2MjdIRj1tCitDT05G SUdfU0VOU09SU19XODM2MjdFSEY9bQorQ09ORklHX1NFTlNPUlNfSU5URUxfTTEwX0JNQ19IV01P Tj1tCitDT05GSUdfVEhFUk1BTD15CitDT05GSUdfVEhFUk1BTF9ORVRMSU5LPXkKK0NPTkZJR19U SEVSTUFMX1NUQVRJU1RJQ1M9eQorQ09ORklHX1RIRVJNQUxfRU1FUkdFTkNZX1BPV0VST0ZGX0RF TEFZX01TPTAKK0NPTkZJR19USEVSTUFMX0hXTU9OPXkKK0NPTkZJR19USEVSTUFMX09GPXkKKyMg Q09ORklHX1RIRVJNQUxfV1JJVEFCTEVfVFJJUFMgaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUxf REVGQVVMVF9HT1ZfU1RFUF9XSVNFPXkKKyMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfRkFJ Ul9TSEFSRSBpcyBub3Qgc2V0CisjIENPTkZJR19USEVSTUFMX0RFRkFVTFRfR09WX1VTRVJfU1BB Q0UgaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTF9ERUZBVUxUX0dPVl9QT1dFUl9BTExPQ0FU T1IgaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUxfR09WX0ZBSVJfU0hBUkU9eQorQ09ORklHX1RI RVJNQUxfR09WX1NURVBfV0lTRT15CitDT05GSUdfVEhFUk1BTF9HT1ZfQkFOR19CQU5HPXkKK0NP TkZJR19USEVSTUFMX0dPVl9VU0VSX1NQQUNFPXkKK0NPTkZJR19USEVSTUFMX0dPVl9QT1dFUl9B TExPQ0FUT1I9eQorQ09ORklHX0NQVV9USEVSTUFMPXkKK0NPTkZJR19DUFVfRlJFUV9USEVSTUFM PXkKKyMgQ09ORklHX0NQVV9JRExFX1RIRVJNQUwgaXMgbm90IHNldAorQ09ORklHX0RFVkZSRVFf VEhFUk1BTD15CisjIENPTkZJR19USEVSTUFMX0VNVUxBVElPTiBpcyBub3Qgc2V0CitDT05GSUdf VEhFUk1BTF9NTUlPPW0KK0NPTkZJR19NQVg3NzYyMF9USEVSTUFMPW0KK0NPTkZJR19TVU44SV9U SEVSTUFMPW0KK0NPTkZJR19SQ0FSX1RIRVJNQUw9bQorQ09ORklHX1JDQVJfR0VOM19USEVSTUFM PW0KK0NPTkZJR19SWkcyTF9USEVSTUFMPW0KK0NPTkZJR19HRU5FUklDX0FEQ19USEVSTUFMPW0K K0NPTkZJR19XQVRDSERPRz15CitDT05GSUdfV0FUQ0hET0dfQ09SRT15CisjIENPTkZJR19XQVRD SERPR19OT1dBWU9VVCBpcyBub3Qgc2V0CitDT05GSUdfV0FUQ0hET0dfSEFORExFX0JPT1RfRU5B QkxFRD15CitDT05GSUdfV0FUQ0hET0dfT1BFTl9USU1FT1VUPTAKKyMgQ09ORklHX1dBVENIRE9H X1NZU0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HX0hSVElNRVJfUFJFVElNRU9VVCBp cyBub3Qgc2V0CisKKyMKKyMgV2F0Y2hkb2cgUHJldGltZW91dCBHb3Zlcm5vcnMKKyMKK0NPTkZJ R19XQVRDSERPR19QUkVUSU1FT1VUX0dPVj15CitDT05GSUdfV0FUQ0hET0dfUFJFVElNRU9VVF9H T1ZfU0VMPW0KK0NPTkZJR19XQVRDSERPR19QUkVUSU1FT1VUX0dPVl9OT09QPXkKK0NPTkZJR19X QVRDSERPR19QUkVUSU1FT1VUX0dPVl9QQU5JQz1tCitDT05GSUdfV0FUQ0hET0dfUFJFVElNRU9V VF9ERUZBVUxUX0dPVl9OT09QPXkKKyMgQ09ORklHX1dBVENIRE9HX1BSRVRJTUVPVVRfREVGQVVM VF9HT1ZfUEFOSUMgaXMgbm90IHNldAorCisjCisjIFdhdGNoZG9nIERldmljZSBEcml2ZXJzCisj CitDT05GSUdfU09GVF9XQVRDSERPRz1tCitDT05GSUdfU09GVF9XQVRDSERPR19QUkVUSU1FT1VU PXkKK0NPTkZJR19CRDk1N1hNVUZfV0FUQ0hET0c9bQorIyBDT05GSUdfR1BJT19XQVRDSERPRyBp cyBub3Qgc2V0CisjIENPTkZJR19NRU5GMjFCTUNfV0FUQ0hET0cgaXMgbm90IHNldAorQ09ORklH X1hJTElOWF9XQVRDSERPRz1tCitDT05GSUdfWklJUkFWRV9XQVRDSERPRz1tCitDT05GSUdfQ0FE RU5DRV9XQVRDSERPRz1tCitDT05GSUdfRFdfV0FUQ0hET0c9bQorQ09ORklHX1NVTlhJX1dBVENI RE9HPW0KKyMgQ09ORklHX01BWDYzWFhfV0FUQ0hET0cgaXMgbm90IHNldAorQ09ORklHX01BWDc3 NjIwX1dBVENIRE9HPW0KK0NPTkZJR19SRU5FU0FTX1dEVD1tCitDT05GSUdfUkVORVNBU19SWkFX RFQ9bQorQ09ORklHX1JFTkVTQVNfUlpOMVdEVD1tCitDT05GSUdfUkVORVNBU19SWkcyTFdEVD1t CitDT05GSUdfU1RQTUlDMV9XQVRDSERPRz1tCitDT05GSUdfQUxJTTcxMDFfV0RUPW0KK0NPTkZJ R19JNjMwMEVTQl9XRFQ9bQorQ09ORklHX0tFTVBMRF9XRFQ9bQorQ09ORklHX01FTl9BMjFfV0RU PW0KK0NPTkZJR19TVEFSRklWRV9XQVRDSERPRz1tCisKKyMKKyMgUENJLWJhc2VkIFdhdGNoZG9n IENhcmRzCisjCitDT05GSUdfUENJUENXQVRDSERPRz1tCitDT05GSUdfV0RUUENJPW0KKworIwor IyBVU0ItYmFzZWQgV2F0Y2hkb2cgQ2FyZHMKKyMKK0NPTkZJR19VU0JQQ1dBVENIRE9HPW0KK0NP TkZJR19TU0JfUE9TU0lCTEU9eQorQ09ORklHX1NTQj1tCitDT05GSUdfU1NCX1NQUk9NPXkKK0NP TkZJR19TU0JfQkxPQ0tJTz15CitDT05GSUdfU1NCX1BDSUhPU1RfUE9TU0lCTEU9eQorQ09ORklH X1NTQl9QQ0lIT1NUPXkKK0NPTkZJR19TU0JfQjQzX1BDSV9CUklER0U9eQorQ09ORklHX1NTQl9Q Q01DSUFIT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfUENNQ0lBSE9TVD15CitDT05GSUdfU1NC X1NESU9IT1NUX1BPU1NJQkxFPXkKK0NPTkZJR19TU0JfU0RJT0hPU1Q9eQorQ09ORklHX1NTQl9E UklWRVJfUENJQ09SRV9QT1NTSUJMRT15CitDT05GSUdfU1NCX0RSSVZFUl9QQ0lDT1JFPXkKK0NP TkZJR19TU0JfRFJJVkVSX0dQSU89eQorQ09ORklHX0JDTUFfUE9TU0lCTEU9eQorQ09ORklHX0JD TUE9bQorQ09ORklHX0JDTUFfQkxPQ0tJTz15CitDT05GSUdfQkNNQV9IT1NUX1BDSV9QT1NTSUJM RT15CitDT05GSUdfQkNNQV9IT1NUX1BDST15CitDT05GSUdfQkNNQV9IT1NUX1NPQz15CitDT05G SUdfQkNNQV9EUklWRVJfUENJPXkKK0NPTkZJR19CQ01BX1NGTEFTSD15CitDT05GSUdfQkNNQV9E UklWRVJfR01BQ19DTU49eQorQ09ORklHX0JDTUFfRFJJVkVSX0dQSU89eQorIyBDT05GSUdfQkNN QV9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwor IworQ09ORklHX01GRF9DT1JFPXkKKyMgQ09ORklHX01GRF9BQ1Q4OTQ1QSBpcyBub3Qgc2V0CitD T05GSUdfTUZEX1NVTjRJX0dQQURDPW0KKyMgQ09ORklHX01GRF9BUzM3MTEgaXMgbm90IHNldAor Q09ORklHX01GRF9TTVBSTz1tCisjIENPTkZJR19NRkRfQVMzNzIyIGlzIG5vdCBzZXQKKyMgQ09O RklHX1BNSUNfQURQNTUyMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQUFUMjg3MF9DT1JFIGlz IG5vdCBzZXQKKyMgQ09ORklHX01GRF9BVE1FTF9GTEVYQ09NIGlzIG5vdCBzZXQKK0NPTkZJR19N RkRfQVRNRUxfSExDREM9bQorIyBDT05GSUdfTUZEX0JDTTU5MFhYIGlzIG5vdCBzZXQKK0NPTkZJ R19NRkRfQkQ5NTcxTVdWPW0KK0NPTkZJR19NRkRfQUMxMDA9bQorQ09ORklHX01GRF9BWFAyMFg9 bQorQ09ORklHX01GRF9BWFAyMFhfSTJDPW0KK0NPTkZJR19NRkRfQVhQMjBYX1JTQj1tCitDT05G SUdfTUZEX01BREVSQT1tCitDT05GSUdfTUZEX01BREVSQV9JMkM9bQorQ09ORklHX01GRF9NQURF UkFfU1BJPW0KK0NPTkZJR19NRkRfTUFYNTk3WD1tCitDT05GSUdfTUZEX0NTNDdMMTU9eQorQ09O RklHX01GRF9DUzQ3TDM1PXkKK0NPTkZJR19NRkRfQ1M0N0w4NT15CitDT05GSUdfTUZEX0NTNDdM OTA9eQorQ09ORklHX01GRF9DUzQ3TDkyPXkKKyMgQ09ORklHX1BNSUNfREE5MDNYIGlzIG5vdCBz ZXQKKyMgQ09ORklHX01GRF9EQTkwNTJfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9EQTkw NTJfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9EQTkwNTUgaXMgbm90IHNldAorIyBDT05G SUdfTUZEX0RBOTA2MiBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfREE5MDYzIGlzIG5vdCBzZXQK KyMgQ09ORklHX01GRF9EQTkxNTAgaXMgbm90IHNldAorQ09ORklHX01GRF9ETE4yPW0KK0NPTkZJ R19NRkRfR0FURVdPUktTX0dTQz1tCisjIENPTkZJR19NRkRfTUMxM1hYWF9TUEkgaXMgbm90IHNl dAorIyBDT05GSUdfTUZEX01DMTNYWFhfSTJDIGlzIG5vdCBzZXQKK0NPTkZJR19NRkRfTVAyNjI5 PW0KK0NPTkZJR19NRkRfSEk2NDIxX1BNSUM9bQorQ09ORklHX01GRF9ISTY0MjFfU1BNST1tCitD T05GSUdfTFBDX0lDSD1tCitDT05GSUdfTFBDX1NDSD1tCitDT05GSUdfTUZEX0lRUzYyWD1tCisj IENPTkZJR19NRkRfSkFOWl9DTU9ESU8gaXMgbm90IHNldAorQ09ORklHX01GRF9LRU1QTEQ9bQor IyBDT05GSUdfTUZEXzg4UE04MDAgaXMgbm90IHNldAorIyBDT05GSUdfTUZEXzg4UE04MDUgaXMg bm90IHNldAorIyBDT05GSUdfTUZEXzg4UE04NjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9N QVgxNDU3NyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX01BWDc3NjIwPXkKK0NPTkZJR19NRkRfTUFY Nzc2NTA9bQorIyBDT05GSUdfTUZEX01BWDc3Njg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9N QVg3NzY5MyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfTUFYNzc3MTQgaXMgbm90IHNldAorIyBD T05GSUdfTUZEX01BWDc3ODQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTA3IGlzIG5v dCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4 OTk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9NQVg4OTk4IGlzIG5vdCBzZXQKKyMgQ09ORklH X01GRF9NVDYzNjAgaXMgbm90IHNldAorQ09ORklHX01GRF9NVDYzNzA9bQorIyBDT05GSUdfTUZE X01UNjM5NyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX01FTkYyMUJNQz1tCitDT05GSUdfTUZEX09D RUxPVD1tCisjIENPTkZJR19FWlhfUENBUCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX0NQQ0FQPW0K K0NPTkZJR19NRkRfVklQRVJCT0FSRD1tCitDT05GSUdfTUZEX05UWEVDPW0KKyMgQ09ORklHX01G RF9SRVRVIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9QQ0Y1MDYzMyBpcyBub3Qgc2V0CitDT05G SUdfTUZEX1NZNzYzNkE9bQorIyBDT05GSUdfTUZEX1JEQzMyMVggaXMgbm90IHNldAorQ09ORklH X01GRF9SVDQ4MzE9bQorIyBDT05GSUdfTUZEX1JUNTAzMyBpcyBub3Qgc2V0CitDT05GSUdfTUZE X1JUNTEyMD1tCisjIENPTkZJR19NRkRfUkM1VDU4MyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1JL ODA4PW0KKyMgQ09ORklHX01GRF9STjVUNjE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9TRUNf Q09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfU0k0NzZYX0NPUkUgaXMgbm90IHNldAorQ09O RklHX01GRF9TSU1QTEVfTUZEX0kyQz1tCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAor Q09ORklHX01GRF9TS1k4MTQ1Mj1tCisjIENPTkZJR19SWl9NVFUzIGlzIG5vdCBzZXQKKyMgQ09O RklHX01GRF9TVE1QRSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfU1VONklfUFJDTSBpcyBub3Qg c2V0CitDT05GSUdfTUZEX1NZU0NPTj15CitDT05GSUdfTUZEX1RJX0FNMzM1WF9UU0NBREM9bQor Q09ORklHX01GRF9MUDM5NDM9bQorIyBDT05GSUdfTUZEX0xQODc4OCBpcyBub3Qgc2V0CitDT05G SUdfTUZEX1RJX0xNVT1tCisjIENPTkZJR19NRkRfUEFMTUFTIGlzIG5vdCBzZXQKKyMgQ09ORklH X1RQUzYxMDVYIGlzIG5vdCBzZXQKK0NPTkZJR19UUFM2NTAxMD1tCitDT05GSUdfVFBTNjUwN1g9 bQorIyBDT05GSUdfTUZEX1RQUzY1MDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9UUFM2NTA5 MCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfVFBTNjUyMTcgaXMgbm90IHNldAorQ09ORklHX01G RF9USV9MUDg3M1g9bQorQ09ORklHX01GRF9USV9MUDg3NTY1PW0KKyMgQ09ORklHX01GRF9UUFM2 NTIxOCBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1RQUzY1MjE5PW0KKyMgQ09ORklHX01GRF9UUFM2 NTg2WCBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfVFBTNjU5MTAgaXMgbm90IHNldAorIyBDT05G SUdfTUZEX1RQUzY1OTEyX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfVFBTNjU5MTJfU1BJ IGlzIG5vdCBzZXQKKyMgQ09ORklHX1RXTDQwMzBfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19U V0w2MDQwX0NPUkUgaXMgbm90IHNldAorQ09ORklHX01GRF9XTDEyNzNfQ09SRT1tCitDT05GSUdf TUZEX0xNMzUzMz1tCisjIENPTkZJR19NRkRfVEMzNTg5WCBpcyBub3Qgc2V0CitDT05GSUdfTUZE X1RRTVg4Nj1tCitDT05GSUdfTUZEX1ZYODU1PW0KK0NPTkZJR19NRkRfTE9DSE5BR0FSPXkKKyMg Q09ORklHX01GRF9BUklaT05BX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVJJWk9OQV9T UEkgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX1dNODQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19N RkRfV004MzFYX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfV004MzFYX1NQSSBpcyBub3Qg c2V0CisjIENPTkZJR19NRkRfV004MzUwX0kyQyBpcyBub3Qgc2V0CitDT05GSUdfTUZEX1dNODk5 ND1tCitDT05GSUdfTUZEX1JPSE1fQkQ3MThYWD1tCitDT05GSUdfTUZEX1JPSE1fQkQ3MTgyOD1t CitDT05GSUdfTUZEX1JPSE1fQkQ5NTdYTVVGPW0KK0NPTkZJR19NRkRfU1RQTUlDMT1tCitDT05G SUdfTUZEX1NUTUZYPW0KK0NPTkZJR19NRkRfQVRDMjYwWD1tCitDT05GSUdfTUZEX0FUQzI2MFhf STJDPW0KK0NPTkZJR19NRkRfUUNPTV9QTTgwMDg9bQorIyBDT05GSUdfUkFWRV9TUF9DT1JFIGlz IG5vdCBzZXQKK0NPTkZJR19NRkRfSU5URUxfTTEwX0JNQ19DT1JFPW0KK0NPTkZJR19NRkRfSU5U RUxfTTEwX0JNQ19TUEk9bQorQ09ORklHX01GRF9JTlRFTF9NMTBfQk1DX1BNQ0k9bQorQ09ORklH X01GRF9SU01VX0kyQz1tCitDT05GSUdfTUZEX1JTTVVfU1BJPW0KKyMgZW5kIG9mIE11bHRpZnVu Y3Rpb24gZGV2aWNlIGRyaXZlcnMKKworQ09ORklHX1JFR1VMQVRPUj15CisjIENPTkZJR19SRUdV TEFUT1JfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9GSVhFRF9WT0xUQUdFPW0K KyMgQ09ORklHX1JFR1VMQVRPUl9WSVJUVUFMX0NPTlNVTUVSIGlzIG5vdCBzZXQKKyMgQ09ORklH X1JFR1VMQVRPUl9VU0VSU1BBQ0VfQ09OU1VNRVIgaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRP Ul84OFBHODZYPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9BQ1Q4ODY1IGlzIG5vdCBzZXQKKyMgQ09O RklHX1JFR1VMQVRPUl9BRDUzOTggaXMgbm90IHNldAorQ09ORklHX1JFR1VMQVRPUl9BUklaT05B X0xETzE9bQorQ09ORklHX1JFR1VMQVRPUl9BUklaT05BX01JQ1NVUFA9bQorQ09ORklHX1JFR1VM QVRPUl9BVEMyNjBYPW0KK0NPTkZJR19SRUdVTEFUT1JfQVhQMjBYPW0KK0NPTkZJR19SRUdVTEFU T1JfQkQ3MTgxNT1tCitDT05GSUdfUkVHVUxBVE9SX0JENzE4Mjg9bQorQ09ORklHX1JFR1VMQVRP Ul9CRDcxOFhYPW0KK0NPTkZJR19SRUdVTEFUT1JfQkQ5NTcxTVdWPW0KK0NPTkZJR19SRUdVTEFU T1JfQkQ5NTdYTVVGPW0KK0NPTkZJR19SRUdVTEFUT1JfQ1BDQVA9bQorQ09ORklHX1JFR1VMQVRP Ul9EQTkxMjE9bQorIyBDT05GSUdfUkVHVUxBVE9SX0RBOTIxMCBpcyBub3Qgc2V0CisjIENPTkZJ R19SRUdVTEFUT1JfREE5MjExIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfRkFONTM1NTU9 bQorQ09ORklHX1JFR1VMQVRPUl9GQU41Mzg4MD1tCitDT05GSUdfUkVHVUxBVE9SX0dQSU89bQor Q09ORklHX1JFR1VMQVRPUl9ISTY0MjE9bQorQ09ORklHX1JFR1VMQVRPUl9ISTY0MjFWNTMwPW0K K0NPTkZJR19SRUdVTEFUT1JfSEk2NDIxVjYwMD1tCitDT05GSUdfUkVHVUxBVE9SX0lTTDkzMDU9 bQorIyBDT05GSUdfUkVHVUxBVE9SX0lTTDYyNzFBIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFU T1JfTE0zNjNYPW0KK0NPTkZJR19SRUdVTEFUT1JfTE9DSE5BR0FSPW0KKyMgQ09ORklHX1JFR1VM QVRPUl9MUDM5NzEgaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX0xQMzk3MiBpcyBub3Qg c2V0CisjIENPTkZJR19SRUdVTEFUT1JfTFA4NzJYIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFU T1JfTFA4NzNYPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9MUDg3NTUgaXMgbm90IHNldAorQ09ORklH X1JFR1VMQVRPUl9MUDg3NTY1PW0KK0NPTkZJR19SRUdVTEFUT1JfTFRDMzU4OT1tCitDT05GSUdf UkVHVUxBVE9SX0xUQzM2NzY9bQorIyBDT05GSUdfUkVHVUxBVE9SX01BWDE1ODYgaXMgbm90IHNl dAorQ09ORklHX1JFR1VMQVRPUl9NQVg1OTdYPW0KK0NPTkZJR19SRUdVTEFUT1JfTUFYNzc2MjA9 bQorQ09ORklHX1JFR1VMQVRPUl9NQVg3NzY1MD1tCisjIENPTkZJR19SRUdVTEFUT1JfTUFYODY0 OSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfTUFYODY2MCBpcyBub3Qgc2V0CitDT05G SUdfUkVHVUxBVE9SX01BWDg4OTM9bQorIyBDT05GSUdfUkVHVUxBVE9SX01BWDg5NTIgaXMgbm90 IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX01BWDg5NzMgaXMgbm90IHNldAorIyBDT05GSUdfUkVH VUxBVE9SX01BWDIwMDg2IGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1JfTUFYMjA0MTE9bQor IyBDT05GSUdfUkVHVUxBVE9SX01BWDc3ODI2IGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1Jf TUNQMTY1MDI9bQorQ09ORklHX1JFR1VMQVRPUl9NUDU0MTY9bQorQ09ORklHX1JFR1VMQVRPUl9N UDg4NTk9bQorQ09ORklHX1JFR1VMQVRPUl9NUDg4Nlg9bQorQ09ORklHX1JFR1VMQVRPUl9NUFE3 OTIwPW0KKyMgQ09ORklHX1JFR1VMQVRPUl9NVDYzMTEgaXMgbm90IHNldAorQ09ORklHX1JFR1VM QVRPUl9NVDYzMTU9bQorQ09ORklHX1JFR1VMQVRPUl9NVDYzNzA9bQorQ09ORklHX1JFR1VMQVRP Ul9QQ0E5NDUwPW0KK0NPTkZJR19SRUdVTEFUT1JfUEY4WDAwPW0KKyMgQ09ORklHX1JFR1VMQVRP Ul9QRlVaRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdVTEFUT1JfUFY4ODA2MCBpcyBub3Qg c2V0CisjIENPTkZJR19SRUdVTEFUT1JfUFY4ODA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUdV TEFUT1JfUFY4ODA5MCBpcyBub3Qgc2V0CitDT05GSUdfUkVHVUxBVE9SX1BXTT1tCitDT05GSUdf UkVHVUxBVE9SX1FDT01fU1BNST1tCitDT05GSUdfUkVHVUxBVE9SX1FDT01fVVNCX1ZCVVM9bQor Q09ORklHX1JFR1VMQVRPUl9SQVNQQkVSUllQSV9UT1VDSFNDUkVFTl9BVFRJTlk9bQorQ09ORklH X1JFR1VMQVRPUl9SSzgwOD1tCitDT05GSUdfUkVHVUxBVE9SX1JPSE09bQorQ09ORklHX1JFR1VM QVRPUl9SVDQ4MDE9bQorQ09ORklHX1JFR1VMQVRPUl9SVDQ4MDM9bQorQ09ORklHX1JFR1VMQVRP Ul9SVDQ4MzE9bQorQ09ORklHX1JFR1VMQVRPUl9SVDUxMjA9bQorQ09ORklHX1JFR1VMQVRPUl9S VDUxOTBBPW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ1NzM5PW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ1 NzU5PW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ2MTYwPW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ2MTkw PW0KK0NPTkZJR19SRUdVTEFUT1JfUlQ2MjQ1PW0KK0NPTkZJR19SRUdVTEFUT1JfUlRRMjEzND1t CitDT05GSUdfUkVHVUxBVE9SX1JUTVYyMD1tCitDT05GSUdfUkVHVUxBVE9SX1JUUTY3NTI9bQor Q09ORklHX1JFR1VMQVRPUl9TS1k4MTQ1Mj1tCitDT05GSUdfUkVHVUxBVE9SX1NMRzUxMDAwPW0K K0NPTkZJR19SRUdVTEFUT1JfU1RQTUlDMT1tCitDT05GSUdfUkVHVUxBVE9SX1NZNzYzNkE9bQor Q09ORklHX1JFR1VMQVRPUl9TWTgxMDZBPW0KK0NPTkZJR19SRUdVTEFUT1JfU1k4ODI0WD1tCitD T05GSUdfUkVHVUxBVE9SX1NZODgyN049bQorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzUxNjMyIGlz IG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9UUFM2MjM2MCBpcyBub3Qgc2V0CisjIENPTkZJ R19SRUdVTEFUT1JfVFBTNjI4NlggaXMgbm90IHNldAorIyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1 MDIzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFR1VMQVRPUl9UUFM2NTA3WCBpcyBub3Qgc2V0CitD T05GSUdfUkVHVUxBVE9SX1RQUzY1MTMyPW0KK0NPTkZJR19SRUdVTEFUT1JfVFBTNjUyMTk9bQor IyBDT05GSUdfUkVHVUxBVE9SX1RQUzY1MjRYIGlzIG5vdCBzZXQKK0NPTkZJR19SRUdVTEFUT1Jf VkNUUkw9bQorQ09ORklHX1JFR1VMQVRPUl9XTTg5OTQ9bQorQ09ORklHX1JFR1VMQVRPUl9RQ09N X0xBQklCQj1tCitDT05GSUdfUkNfQ09SRT1tCitDT05GSUdfTElSQz15CitDT05GSUdfUkNfTUFQ PW0KK0NPTkZJR19SQ19ERUNPREVSUz15CitDT05GSUdfSVJfSU1PTl9ERUNPREVSPW0KK0NPTkZJ R19JUl9KVkNfREVDT0RFUj1tCitDT05GSUdfSVJfTUNFX0tCRF9ERUNPREVSPW0KK0NPTkZJR19J Ul9ORUNfREVDT0RFUj1tCitDT05GSUdfSVJfUkM1X0RFQ09ERVI9bQorQ09ORklHX0lSX1JDNl9E RUNPREVSPW0KK0NPTkZJR19JUl9SQ01NX0RFQ09ERVI9bQorQ09ORklHX0lSX1NBTllPX0RFQ09E RVI9bQorQ09ORklHX0lSX1NIQVJQX0RFQ09ERVI9bQorQ09ORklHX0lSX1NPTllfREVDT0RFUj1t CitDT05GSUdfSVJfWE1QX0RFQ09ERVI9bQorQ09ORklHX1JDX0RFVklDRVM9eQorQ09ORklHX0lS X0dQSU9fQ0lSPW0KK0NPTkZJR19JUl9HUElPX1RYPW0KK0NPTkZJR19JUl9ISVg1SEQyPW0KK0NP TkZJR19JUl9JR09SUExVR1VTQj1tCitDT05GSUdfSVJfSUdVQU5BPW0KK0NPTkZJR19JUl9JTU9O PW0KK0NPTkZJR19JUl9JTU9OX1JBVz1tCitDT05GSUdfSVJfTUNFVVNCPW0KK0NPTkZJR19JUl9Q V01fVFg9bQorQ09ORklHX0lSX1JFRFJBVDM9bQorQ09ORklHX0lSX1NFUklBTD1tCitDT05GSUdf SVJfU0VSSUFMX1RSQU5TTUlUVEVSPXkKK0NPTkZJR19JUl9TUEk9bQorQ09ORklHX0lSX1NUUkVB TVpBUD1tCitDT05GSUdfSVJfU1VOWEk9bQorQ09ORklHX0lSX1RPWT1tCitDT05GSUdfSVJfVFRV U0JJUj1tCitDT05GSUdfUkNfQVRJX1JFTU9URT1tCitDT05GSUdfUkNfTE9PUEJBQ0s9bQorQ09O RklHX1JDX1hCT1hfRFZEPW0KK0NPTkZJR19DRUNfQ09SRT1tCitDT05GSUdfQ0VDX05PVElGSUVS PXkKKworIworIyBDRUMgc3VwcG9ydAorIworQ09ORklHX01FRElBX0NFQ19SQz15CitDT05GSUdf TUVESUFfQ0VDX1NVUFBPUlQ9eQorQ09ORklHX0NFQ19DSDczMjI9bQorQ09ORklHX1VTQl9QVUxT RThfQ0VDPW0KK0NPTkZJR19VU0JfUkFJTlNIQURPV19DRUM9bQorIyBlbmQgb2YgQ0VDIHN1cHBv cnQKKworQ09ORklHX01FRElBX1NVUFBPUlQ9bQorIyBDT05GSUdfTUVESUFfU1VQUE9SVF9GSUxU RVIgaXMgbm90IHNldAorQ09ORklHX01FRElBX1NVQkRSVl9BVVRPU0VMRUNUPXkKKworIworIyBN ZWRpYSBkZXZpY2UgdHlwZXMKKyMKK0NPTkZJR19NRURJQV9DQU1FUkFfU1VQUE9SVD15CitDT05G SUdfTUVESUFfQU5BTE9HX1RWX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX0RJR0lUQUxfVFZfU1VQ UE9SVD15CitDT05GSUdfTUVESUFfUkFESU9fU1VQUE9SVD15CitDT05GSUdfTUVESUFfU0RSX1NV UFBPUlQ9eQorQ09ORklHX01FRElBX1BMQVRGT1JNX1NVUFBPUlQ9eQorQ09ORklHX01FRElBX1RF U1RfU1VQUE9SVD15CisjIGVuZCBvZiBNZWRpYSBkZXZpY2UgdHlwZXMKKworIworIyBNZWRpYSBj b3JlIHN1cHBvcnQKKyMKK0NPTkZJR19WSURFT19ERVY9bQorQ09ORklHX01FRElBX0NPTlRST0xM RVI9eQorQ09ORklHX0RWQl9DT1JFPW0KKyMgZW5kIG9mIE1lZGlhIGNvcmUgc3VwcG9ydAorCisj CisjIFZpZGVvNExpbnV4IG9wdGlvbnMKKyMKK0NPTkZJR19WSURFT19WNEwyX0kyQz15CitDT05G SUdfVklERU9fVjRMMl9TVUJERVZfQVBJPXkKKyMgQ09ORklHX1ZJREVPX0FEVl9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19WSURFT19GSVhFRF9NSU5PUl9SQU5HRVMgaXMgbm90IHNldAorQ09O RklHX1ZJREVPX1RVTkVSPW0KK0NPTkZJR19WNEwyX0gyNjQ9bQorQ09ORklHX1Y0TDJfVlA5PW0K K0NPTkZJR19WNEwyX01FTTJNRU1fREVWPW0KK0NPTkZJR19WNEwyX0ZMQVNIX0xFRF9DTEFTUz1t CitDT05GSUdfVjRMMl9GV05PREU9bQorQ09ORklHX1Y0TDJfQVNZTkM9bQorQ09ORklHX1ZJREVP QlVGX0dFTj1tCitDT05GSUdfVklERU9CVUZfRE1BX1NHPW0KKyMgZW5kIG9mIFZpZGVvNExpbnV4 IG9wdGlvbnMKKworIworIyBNZWRpYSBjb250cm9sbGVyIG9wdGlvbnMKKyMKK0NPTkZJR19NRURJ QV9DT05UUk9MTEVSX0RWQj15CitDT05GSUdfTUVESUFfQ09OVFJPTExFUl9SRVFVRVNUX0FQST15 CisjIGVuZCBvZiBNZWRpYSBjb250cm9sbGVyIG9wdGlvbnMKKworIworIyBEaWdpdGFsIFRWIG9w dGlvbnMKKyMKKyMgQ09ORklHX0RWQl9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19EVkJfTkVUPXkK K0NPTkZJR19EVkJfTUFYX0FEQVBURVJTPTgKK0NPTkZJR19EVkJfRFlOQU1JQ19NSU5PUlM9eQor IyBDT05GSUdfRFZCX0RFTVVYX1NFQ1RJT05fTE9TU19MT0cgaXMgbm90IHNldAorIyBDT05GSUdf RFZCX1VMRV9ERUJVRyBpcyBub3Qgc2V0CisjIGVuZCBvZiBEaWdpdGFsIFRWIG9wdGlvbnMKKwor IworIyBNZWRpYSBkcml2ZXJzCisjCisKKyMKKyMgTWVkaWEgZHJpdmVycworIworQ09ORklHX01F RElBX1VTQl9TVVBQT1JUPXkKKworIworIyBXZWJjYW0gZGV2aWNlcworIworQ09ORklHX1VTQl9H U1BDQT1tCitDT05GSUdfVVNCX0dTUENBX0JFTlE9bQorQ09ORklHX1VTQl9HU1BDQV9DT05FWD1t CitDT05GSUdfVVNCX0dTUENBX0NQSUExPW0KK0NPTkZJR19VU0JfR1NQQ0FfRFRDUzAzMz1tCitD T05GSUdfVVNCX0dTUENBX0VUT01TPW0KK0NPTkZJR19VU0JfR1NQQ0FfRklORVBJWD1tCitDT05G SUdfVVNCX0dTUENBX0pFSUxJTko9bQorQ09ORklHX1VTQl9HU1BDQV9KTDIwMDVCQ0Q9bQorQ09O RklHX1VTQl9HU1BDQV9LSU5FQ1Q9bQorQ09ORklHX1VTQl9HU1BDQV9LT05JQ0E9bQorQ09ORklH X1VTQl9HU1BDQV9NQVJTPW0KK0NPTkZJR19VU0JfR1NQQ0FfTVI5NzMxMEE9bQorQ09ORklHX1VT Ql9HU1BDQV9OVzgwWD1tCitDT05GSUdfVVNCX0dTUENBX09WNTE5PW0KK0NPTkZJR19VU0JfR1NQ Q0FfT1Y1MzQ9bQorQ09ORklHX1VTQl9HU1BDQV9PVjUzNF85PW0KK0NPTkZJR19VU0JfR1NQQ0Ff UEFDMjA3PW0KK0NPTkZJR19VU0JfR1NQQ0FfUEFDNzMwMj1tCitDT05GSUdfVVNCX0dTUENBX1BB QzczMTE9bQorQ09ORklHX1VTQl9HU1BDQV9TRTQwMT1tCitDT05GSUdfVVNCX0dTUENBX1NOOUMy MDI4PW0KK0NPTkZJR19VU0JfR1NQQ0FfU045QzIwWD1tCitDT05GSUdfVVNCX0dTUENBX1NPTklY Qj1tCitDT05GSUdfVVNCX0dTUENBX1NPTklYSj1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0ExNTI4 PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BDQTUwMD1tCitDT05GSUdfVVNCX0dTUENBX1NQQ0E1MDE9 bQorQ09ORklHX1VTQl9HU1BDQV9TUENBNTA1PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1BDQTUwNj1t CitDT05GSUdfVVNCX0dTUENBX1NQQ0E1MDg9bQorQ09ORklHX1VTQl9HU1BDQV9TUENBNTYxPW0K K0NPTkZJR19VU0JfR1NQQ0FfU1E5MDU9bQorQ09ORklHX1VTQl9HU1BDQV9TUTkwNUM9bQorQ09O RklHX1VTQl9HU1BDQV9TUTkzMFg9bQorQ09ORklHX1VTQl9HU1BDQV9TVEswMTQ9bQorQ09ORklH X1VTQl9HU1BDQV9TVEsxMTM1PW0KK0NPTkZJR19VU0JfR1NQQ0FfU1RWMDY4MD1tCitDT05GSUdf VVNCX0dTUENBX1NVTlBMVVM9bQorQ09ORklHX1VTQl9HU1BDQV9UNjEzPW0KK0NPTkZJR19VU0Jf R1NQQ0FfVE9QUk89bQorQ09ORklHX1VTQl9HU1BDQV9UT1VQVEVLPW0KK0NPTkZJR19VU0JfR1NQ Q0FfVFY4NTMyPW0KK0NPTkZJR19VU0JfR1NQQ0FfVkMwMzJYPW0KK0NPTkZJR19VU0JfR1NQQ0Ff VklDQU09bQorQ09ORklHX1VTQl9HU1BDQV9YSVJMSU5LX0NJVD1tCitDT05GSUdfVVNCX0dTUENB X1pDM1hYPW0KK0NPTkZJR19VU0JfR0w4NjA9bQorQ09ORklHX1VTQl9NNTYwMj1tCitDT05GSUdf VVNCX1NUVjA2WFg9bQorQ09ORklHX1VTQl9QV0M9bQorIyBDT05GSUdfVVNCX1BXQ19ERUJVRyBp cyBub3Qgc2V0CitDT05GSUdfVVNCX1BXQ19JTlBVVF9FVkRFVj15CitDT05GSUdfVVNCX1MyMjU1 PW0KK0NPTkZJR19WSURFT19VU0JUVj1tCitDT05GSUdfVVNCX1ZJREVPX0NMQVNTPW0KK0NPTkZJ R19VU0JfVklERU9fQ0xBU1NfSU5QVVRfRVZERVY9eQorCisjCisjIEFuYWxvZyBUViBVU0IgZGV2 aWNlcworIworQ09ORklHX1ZJREVPX0dPNzAwNz1tCitDT05GSUdfVklERU9fR083MDA3X1VTQj1t CitDT05GSUdfVklERU9fR083MDA3X0xPQURFUj1tCitDT05GSUdfVklERU9fR083MDA3X1VTQl9T MjI1MF9CT0FSRD1tCitDT05GSUdfVklERU9fSERQVlI9bQorQ09ORklHX1ZJREVPX1BWUlVTQjI9 bQorQ09ORklHX1ZJREVPX1BWUlVTQjJfU1lTRlM9eQorQ09ORklHX1ZJREVPX1BWUlVTQjJfRFZC PXkKKyMgQ09ORklHX1ZJREVPX1BWUlVTQjJfREVCVUdJRkMgaXMgbm90IHNldAorQ09ORklHX1ZJ REVPX1NUSzExNjBfQ09NTU9OPW0KK0NPTkZJR19WSURFT19TVEsxMTYwPW0KKworIworIyBBbmFs b2cvZGlnaXRhbCBUViBVU0IgZGV2aWNlcworIworQ09ORklHX1ZJREVPX0FVMDgyOD1tCitDT05G SUdfVklERU9fQVUwODI4X1Y0TDI9eQorQ09ORklHX1ZJREVPX0FVMDgyOF9SQz15CitDT05GSUdf VklERU9fQ1gyMzFYWD1tCitDT05GSUdfVklERU9fQ1gyMzFYWF9SQz15CitDT05GSUdfVklERU9f Q1gyMzFYWF9BTFNBPW0KK0NPTkZJR19WSURFT19DWDIzMVhYX0RWQj1tCisKKyMKKyMgRGlnaXRh bCBUViBVU0IgZGV2aWNlcworIworQ09ORklHX0RWQl9BUzEwMj1tCitDT05GSUdfRFZCX0IyQzJf RkxFWENPUF9VU0I9bQorIyBDT05GSUdfRFZCX0IyQzJfRkxFWENPUF9VU0JfREVCVUcgaXMgbm90 IHNldAorQ09ORklHX0RWQl9VU0JfVjI9bQorQ09ORklHX0RWQl9VU0JfQUY5MDE1PW0KK0NPTkZJ R19EVkJfVVNCX0FGOTAzNT1tCitDT05GSUdfRFZCX1VTQl9BTllTRUU9bQorQ09ORklHX0RWQl9V U0JfQVU2NjEwPW0KK0NPTkZJR19EVkJfVVNCX0FaNjAwNz1tCitDT05GSUdfRFZCX1VTQl9DRTYy MzA9bQorQ09ORklHX0RWQl9VU0JfRFZCU0tZPW0KK0NPTkZJR19EVkJfVVNCX0VDMTY4PW0KK0NP TkZJR19EVkJfVVNCX0dMODYxPW0KK0NPTkZJR19EVkJfVVNCX0xNRTI1MTA9bQorQ09ORklHX0RW Ql9VU0JfTVhMMTExU0Y9bQorQ09ORklHX0RWQl9VU0JfUlRMMjhYWFU9bQorQ09ORklHX0RWQl9V U0JfWkQxMzAxPW0KK0NPTkZJR19EVkJfVVNCPW0KKyMgQ09ORklHX0RWQl9VU0JfREVCVUcgaXMg bm90IHNldAorQ09ORklHX0RWQl9VU0JfQTgwMD1tCitDT05GSUdfRFZCX1VTQl9BRjkwMDU9bQor Q09ORklHX0RWQl9VU0JfQUY5MDA1X1JFTU9URT1tCitDT05GSUdfRFZCX1VTQl9BWjYwMjc9bQor Q09ORklHX0RWQl9VU0JfQ0lORVJHWV9UMj1tCitDT05GSUdfRFZCX1VTQl9DWFVTQj1tCitDT05G SUdfRFZCX1VTQl9DWFVTQl9BTkFMT0c9eQorQ09ORklHX0RWQl9VU0JfRElCMDcwMD1tCitDT05G SUdfRFZCX1VTQl9ESUIzMDAwTUM9bQorQ09ORklHX0RWQl9VU0JfRElCVVNCX01CPW0KKyMgQ09O RklHX0RWQl9VU0JfRElCVVNCX01CX0ZBVUxUWSBpcyBub3Qgc2V0CitDT05GSUdfRFZCX1VTQl9E SUJVU0JfTUM9bQorQ09ORklHX0RWQl9VU0JfRElHSVRWPW0KK0NPTkZJR19EVkJfVVNCX0RUVDIw MFU9bQorQ09ORklHX0RWQl9VU0JfRFRWNTEwMD1tCitDT05GSUdfRFZCX1VTQl9EVzIxMDI9bQor Q09ORklHX0RWQl9VU0JfR1A4UFNLPW0KK0NPTkZJR19EVkJfVVNCX005MjBYPW0KK0NPTkZJR19E VkJfVVNCX05PVkFfVF9VU0IyPW0KK0NPTkZJR19EVkJfVVNCX09QRVJBMT1tCitDT05GSUdfRFZC X1VTQl9QQ1RWNDUyRT1tCitDT05GSUdfRFZCX1VTQl9URUNITklTQVRfVVNCMj1tCitDT05GSUdf RFZCX1VTQl9UVFVTQjI9bQorQ09ORklHX0RWQl9VU0JfVU1UXzAxMD1tCitDT05GSUdfRFZCX1VT Ql9WUDcwMlg9bQorQ09ORklHX0RWQl9VU0JfVlA3MDQ1PW0KK0NPTkZJR19TTVNfVVNCX0RSVj1t CitDT05GSUdfRFZCX1RUVVNCX0JVREdFVD1tCitDT05GSUdfRFZCX1RUVVNCX0RFQz1tCisKKyMK KyMgV2ViY2FtLCBUViAoYW5hbG9nL2RpZ2l0YWwpIFVTQiBkZXZpY2VzCisjCitDT05GSUdfVklE RU9fRU0yOFhYPW0KK0NPTkZJR19WSURFT19FTTI4WFhfVjRMMj1tCitDT05GSUdfVklERU9fRU0y OFhYX0FMU0E9bQorQ09ORklHX1ZJREVPX0VNMjhYWF9EVkI9bQorQ09ORklHX1ZJREVPX0VNMjhY WF9SQz1tCisKKyMKKyMgU29mdHdhcmUgZGVmaW5lZCByYWRpbyBVU0IgZGV2aWNlcworIworQ09O RklHX1VTQl9BSVJTUFk9bQorQ09ORklHX1VTQl9IQUNLUkY9bQorQ09ORklHX1VTQl9NU0kyNTAw PW0KK0NPTkZJR19NRURJQV9QQ0lfU1VQUE9SVD15CisKKyMKKyMgTWVkaWEgY2FwdHVyZSBzdXBw b3J0CisjCitDT05GSUdfVklERU9fU09MTzZYMTA9bQorQ09ORklHX1ZJREVPX1RXNTg2ND1tCitD T05GSUdfVklERU9fVFc2OD1tCitDT05GSUdfVklERU9fVFc2ODZYPW0KKyMgQ09ORklHX1ZJREVP X1pPUkFOIGlzIG5vdCBzZXQKKworIworIyBNZWRpYSBjYXB0dXJlL2FuYWxvZyBUViBzdXBwb3J0 CisjCitDT05GSUdfVklERU9fRFQzMTU1PW0KK0NPTkZJR19WSURFT19JVlRWPW0KK0NPTkZJR19W SURFT19JVlRWX0FMU0E9bQorQ09ORklHX1ZJREVPX0ZCX0lWVFY9bQorQ09ORklHX1ZJREVPX0hF WElVTV9HRU1JTkk9bQorQ09ORklHX1ZJREVPX0hFWElVTV9PUklPTj1tCitDT05GSUdfVklERU9f TVhCPW0KKworIworIyBNZWRpYSBjYXB0dXJlL2FuYWxvZy9oeWJyaWQgVFYgc3VwcG9ydAorIwor Q09ORklHX1ZJREVPX0JUODQ4PW0KK0NPTkZJR19EVkJfQlQ4WFg9bQorQ09ORklHX1ZJREVPX0NY MTg9bQorQ09ORklHX1ZJREVPX0NYMThfQUxTQT1tCitDT05GSUdfVklERU9fQ1gyMzg4NT1tCitD T05GSUdfTUVESUFfQUxURVJBX0NJPW0KK0NPTkZJR19WSURFT19DWDI1ODIxPW0KK0NPTkZJR19W SURFT19DWDI1ODIxX0FMU0E9bQorQ09ORklHX1ZJREVPX0NYODg9bQorQ09ORklHX1ZJREVPX0NY ODhfQUxTQT1tCitDT05GSUdfVklERU9fQ1g4OF9CTEFDS0JJUkQ9bQorQ09ORklHX1ZJREVPX0NY ODhfRFZCPW0KK0NPTkZJR19WSURFT19DWDg4X0VOQUJMRV9WUDMwNTQ9eQorQ09ORklHX1ZJREVP X0NYODhfVlAzMDU0PW0KK0NPTkZJR19WSURFT19DWDg4X01QRUc9bQorQ09ORklHX1ZJREVPX1NB QTcxMzQ9bQorQ09ORklHX1ZJREVPX1NBQTcxMzRfQUxTQT1tCitDT05GSUdfVklERU9fU0FBNzEz NF9SQz15CitDT05GSUdfVklERU9fU0FBNzEzNF9EVkI9bQorQ09ORklHX1ZJREVPX1NBQTcxMzRf R083MDA3PW0KK0NPTkZJR19WSURFT19TQUE3MTY0PW0KKworIworIyBNZWRpYSBkaWdpdGFsIFRW IFBDSSBBZGFwdGVycworIworQ09ORklHX0RWQl9CMkMyX0ZMRVhDT1BfUENJPW0KKyMgQ09ORklH X0RWQl9CMkMyX0ZMRVhDT1BfUENJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19EVkJfRERCUklE R0U9bQorIyBDT05GSUdfRFZCX0REQlJJREdFX01TSUVOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdf RFZCX0RNMTEwNT1tCitDT05GSUdfTUFOVElTX0NPUkU9bQorQ09ORklHX0RWQl9NQU5USVM9bQor Q09ORklHX0RWQl9IT1BQRVI9bQorQ09ORklHX0RWQl9ORVRVUF9VTklEVkI9bQorQ09ORklHX0RW Ql9OR0VORT1tCitDT05GSUdfRFZCX1BMVVRPMj1tCitDT05GSUdfRFZCX1BUMT1tCitDT05GSUdf RFZCX1BUMz1tCitDT05GSUdfRFZCX1NNSVBDSUU9bQorQ09ORklHX0RWQl9CVURHRVRfQ09SRT1t CitDT05GSUdfRFZCX0JVREdFVD1tCitDT05GSUdfRFZCX0JVREdFVF9DST1tCitDT05GSUdfRFZC X0JVREdFVF9BVj1tCitDT05GSUdfUkFESU9fQURBUFRFUlM9bQorQ09ORklHX1JBRElPX01BWElS QURJTz1tCitDT05GSUdfUkFESU9fU0FBNzcwNkg9bQorQ09ORklHX1JBRElPX1NIQVJLPW0KK0NP TkZJR19SQURJT19TSEFSSzI9bQorQ09ORklHX1JBRElPX1NJNDcxMz1tCitDT05GSUdfUkFESU9f VEVBNTc1WD1tCitDT05GSUdfUkFESU9fVEVBNTc2ND1tCitDT05GSUdfUkFESU9fVEVGNjg2Mj1t CitDT05GSUdfUkFESU9fV0wxMjczPW0KK0NPTkZJR19VU0JfRFNCUj1tCitDT05GSUdfVVNCX0tF RU5FPW0KK0NPTkZJR19VU0JfTUE5MDE9bQorQ09ORklHX1VTQl9NUjgwMD1tCitDT05GSUdfVVNC X1JBUkVNT05PPW0KK0NPTkZJR19SQURJT19TSTQ3MFg9bQorQ09ORklHX1VTQl9TSTQ3MFg9bQor IyBDT05GSUdfSTJDX1NJNDcwWCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NJNDcxMz1tCitDT05G SUdfUExBVEZPUk1fU0k0NzEzPW0KK0NPTkZJR19JMkNfU0k0NzEzPW0KK0NPTkZJR19SQURJT19X TDEyOFg9bQorQ09ORklHX01FRElBX1BMQVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX1Y0TF9QTEFU Rk9STV9EUklWRVJTPXkKK0NPTkZJR19TRFJfUExBVEZPUk1fRFJJVkVSUz15CitDT05GSUdfRFZC X1BMQVRGT1JNX0RSSVZFUlM9eQorQ09ORklHX1Y0TF9NRU0yTUVNX0RSSVZFUlM9eQorQ09ORklH X1ZJREVPX01FTTJNRU1fREVJTlRFUkxBQ0U9bQorQ09ORklHX1ZJREVPX01VWD1tCisKKyMKKyMg QWxsZWdybyBEVlQgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIEFtbG9naWMgbWVk aWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIEFtcGhpb24gZHJpdmVycworIworCisjCisj IEFzcGVlZCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgQXRtZWwgbWVkaWEgcGxh dGZvcm0gZHJpdmVycworIworCisjCisjIENhZGVuY2UgbWVkaWEgcGxhdGZvcm0gZHJpdmVycwor IworQ09ORklHX1ZJREVPX0NBREVOQ0VfQ1NJMlJYPW0KK0NPTkZJR19WSURFT19DQURFTkNFX0NT STJUWD1tCisKKyMKKyMgQ2hpcHMmTWVkaWEgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisj CisjIEludGVsIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBNYXJ2ZWxsIG1lZGlh IHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19DQUZFX0NDSUM9bQorCisjCisjIE1l ZGlhdGVrIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBNaWNyb2NoaXAgVGVjaG5v bG9neSwgSW5jLiBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCisKKyMKKyMgTlZpZGlhIG1lZGlh IHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBOWFAgbWVkaWEgcGxhdGZvcm0gZHJpdmVycwor IworCisjCisjIFF1YWxjb21tIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBSZW5l c2FzIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19SQ0FSX0lTUD1tCitD T05GSUdfVklERU9fUkNBUl9DU0kyPW0KK0NPTkZJR19WSURFT19SQ0FSX1ZJTj1tCitDT05GSUdf VklERU9fUlpHMkxfQ1NJMj1tCitDT05GSUdfVklERU9fUlpHMkxfQ1JVPW0KK0NPTkZJR19WSURF T19SRU5FU0FTX0ZDUD1tCitDT05GSUdfVklERU9fUkVORVNBU19GRFAxPW0KK0NPTkZJR19WSURF T19SRU5FU0FTX0pQVT1tCitDT05GSUdfVklERU9fUkVORVNBU19WU1AxPW0KK0NPTkZJR19WSURF T19SQ0FSX0RSSUY9bQorCisjCisjIFJvY2tjaGlwIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMK KworIworIyBTYW1zdW5nIG1lZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKKworIworIyBTVE1pY3Jv ZWxlY3Ryb25pY3MgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisjCisjIFN0YXJmaXZlIG1l ZGlhIHBsYXRmb3JtIGRyaXZlcnMKKyMKK0NPTkZJR19WSURFT19TVEFSRklWRV9DQU1TUz1tCisK KyMKKyMgU3VueGkgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworQ09ORklHX1ZJREVPX1NVTjRJ X0NTST1tCitDT05GSUdfVklERU9fU1VONklfQ1NJPW0KK0NPTkZJR19WSURFT19TVU42SV9NSVBJ X0NTSTI9bQorQ09ORklHX1ZJREVPX1NVTjhJX0E4M1RfTUlQSV9DU0kyPW0KK0NPTkZJR19WSURF T19TVU44SV9ERUlOVEVSTEFDRT1tCitDT05GSUdfVklERU9fU1VOOElfUk9UQVRFPW0KKworIwor IyBUZXhhcyBJbnN0cnVtZW50cyBkcml2ZXJzCisjCisKKyMKKyMgVmVyaXNpbGljb24gbWVkaWEg cGxhdGZvcm0gZHJpdmVycworIworQ09ORklHX1ZJREVPX0hBTlRSTz1tCitDT05GSUdfVklERU9f SEFOVFJPX1NVTlhJPXkKKworIworIyBWSUEgbWVkaWEgcGxhdGZvcm0gZHJpdmVycworIworCisj CisjIFhpbGlueCBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzCisjCitDT05GSUdfVklERU9fWElMSU5Y PW0KK0NPTkZJR19WSURFT19YSUxJTlhfQ1NJMlJYU1M9bQorQ09ORklHX1ZJREVPX1hJTElOWF9U UEc9bQorQ09ORklHX1ZJREVPX1hJTElOWF9WVEM9bQorCisjCisjIE1NQy9TRElPIERWQiBhZGFw dGVycworIworQ09ORklHX1NNU19TRElPX0RSVj1tCitDT05GSUdfVjRMX1RFU1RfRFJJVkVSUz15 CitDT05GSUdfVklERU9fVklNMk09bQorQ09ORklHX1ZJREVPX1ZJQ09ERUM9bQorQ09ORklHX1ZJ REVPX1ZJTUM9bQorQ09ORklHX1ZJREVPX1ZJVklEPW0KK0NPTkZJR19WSURFT19WSVZJRF9DRUM9 eQorQ09ORklHX1ZJREVPX1ZJVklEX01BWF9ERVZTPTY0CitDT05GSUdfVklERU9fVklTTD1tCisj IENPTkZJR19WSVNMX0RFQlVHRlMgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RFU1RfRFJJVkVS UyBpcyBub3Qgc2V0CisKKyMKKyMgRmlyZVdpcmUgKElFRUUgMTM5NCkgQWRhcHRlcnMKKyMKK0NP TkZJR19EVkJfRklSRURUVj1tCitDT05GSUdfRFZCX0ZJUkVEVFZfSU5QVVQ9eQorQ09ORklHX01F RElBX0NPTU1PTl9PUFRJT05TPXkKKworIworIyBjb21tb24gZHJpdmVyIG9wdGlvbnMKKyMKK0NP TkZJR19DWVBSRVNTX0ZJUk1XQVJFPW0KK0NPTkZJR19UVFBDSV9FRVBST009bQorQ09ORklHX1VW Q19DT01NT049bQorQ09ORklHX1ZJREVPX0NYMjM0MVg9bQorQ09ORklHX1ZJREVPX1RWRUVQUk9N PW0KK0NPTkZJR19EVkJfQjJDMl9GTEVYQ09QPW0KK0NPTkZJR19WSURFT19TQUE3MTQ2PW0KK0NP TkZJR19WSURFT19TQUE3MTQ2X1ZWPW0KK0NPTkZJR19TTVNfU0lBTk9fTURUVj1tCitDT05GSUdf U01TX1NJQU5PX1JDPXkKKyMgQ09ORklHX1NNU19TSUFOT19ERUJVR0ZTIGlzIG5vdCBzZXQKK0NP TkZJR19WSURFT19WNEwyX1RQRz1tCitDT05GSUdfVklERU9CVUYyX0NPUkU9bQorQ09ORklHX1ZJ REVPQlVGMl9WNEwyPW0KK0NPTkZJR19WSURFT0JVRjJfTUVNT1BTPW0KK0NPTkZJR19WSURFT0JV RjJfRE1BX0NPTlRJRz1tCitDT05GSUdfVklERU9CVUYyX1ZNQUxMT0M9bQorQ09ORklHX1ZJREVP QlVGMl9ETUFfU0c9bQorQ09ORklHX1ZJREVPQlVGMl9EVkI9bQorIyBlbmQgb2YgTWVkaWEgZHJp dmVycworCisjCisjIE1lZGlhIGFuY2lsbGFyeSBkcml2ZXJzCisjCitDT05GSUdfTUVESUFfQVRU QUNIPXkKKworIworIyBJUiBJMkMgZHJpdmVyIGF1dG8tc2VsZWN0ZWQgYnkgJ0F1dG9zZWxlY3Qg YW5jaWxsYXJ5IGRyaXZlcnMnCisjCitDT05GSUdfVklERU9fSVJfSTJDPW0KKworIworIyBDYW1l cmEgc2Vuc29yIGRldmljZXMKKyMKK0NPTkZJR19WSURFT19BUFRJTkFfUExMPW0KK0NPTkZJR19W SURFT19DQ1NfUExMPW0KK0NPTkZJR19WSURFT19BUjA1MjE9bQorQ09ORklHX1ZJREVPX0hJNTU2 PW0KK0NPTkZJR19WSURFT19ISTg0Nj1tCitDT05GSUdfVklERU9fSEk4NDc9bQorQ09ORklHX1ZJ REVPX0lNWDIwOD1tCitDT05GSUdfVklERU9fSU1YMjE0PW0KK0NPTkZJR19WSURFT19JTVgyMTk9 bQorQ09ORklHX1ZJREVPX0lNWDI1OD1tCitDT05GSUdfVklERU9fSU1YMjc0PW0KK0NPTkZJR19W SURFT19JTVgyOTA9bQorQ09ORklHX1ZJREVPX0lNWDI5Nj1tCitDT05GSUdfVklERU9fSU1YMzE5 PW0KK0NPTkZJR19WSURFT19JTVgzMzQ9bQorQ09ORklHX1ZJREVPX0lNWDMzNT1tCitDT05GSUdf VklERU9fSU1YMzU1PW0KK0NPTkZJR19WSURFT19JTVg0MTI9bQorQ09ORklHX1ZJREVPX0lNWDQx NT1tCitDT05GSUdfVklERU9fTUFYOTI3MV9MSUI9bQorQ09ORklHX1ZJREVPX01UOU0wMDE9bQor Q09ORklHX1ZJREVPX01UOU0xMTE9bQorQ09ORklHX1ZJREVPX01UOVAwMzE9bQorQ09ORklHX1ZJ REVPX01UOVQxMTI9bQorQ09ORklHX1ZJREVPX01UOVYwMTE9bQorQ09ORklHX1ZJREVPX01UOVYw MzI9bQorQ09ORklHX1ZJREVPX01UOVYxMTE9bQorQ09ORklHX1ZJREVPX09HMDFBMUI9bQorQ09O RklHX1ZJREVPX09WMDJBMTA9bQorQ09ORklHX1ZJREVPX09WMDhEMTA9bQorQ09ORklHX1ZJREVP X09WMDhYNDA9bQorQ09ORklHX1ZJREVPX09WMTM4NTg9bQorQ09ORklHX1ZJREVPX09WMTNCMTA9 bQorQ09ORklHX1ZJREVPX09WMjY0MD1tCitDT05GSUdfVklERU9fT1YyNjU5PW0KK0NPTkZJR19W SURFT19PVjI2ODA9bQorQ09ORklHX1ZJREVPX09WMjY4NT1tCitDT05GSUdfVklERU9fT1Y0Njg5 PW0KK0NPTkZJR19WSURFT19PVjU2NDA9bQorQ09ORklHX1ZJREVPX09WNTY0NT1tCitDT05GSUdf VklERU9fT1Y1NjQ3PW0KK0NPTkZJR19WSURFT19PVjU2NDg9bQorQ09ORklHX1ZJREVPX09WNTY3 MD1tCitDT05GSUdfVklERU9fT1Y1Njc1PW0KK0NPTkZJR19WSURFT19PVjU2OTM9bQorQ09ORklH X1ZJREVPX09WNTY5NT1tCitDT05GSUdfVklERU9fT1Y2NjUwPW0KK0NPTkZJR19WSURFT19PVjcy NTE9bQorQ09ORklHX1ZJREVPX09WNzY0MD1tCitDT05GSUdfVklERU9fT1Y3NjcwPW0KK0NPTkZJ R19WSURFT19PVjc3Mlg9bQorQ09ORklHX1ZJREVPX09WNzc0MD1tCitDT05GSUdfVklERU9fT1Y4 ODU2PW0KK0NPTkZJR19WSURFT19PVjg4NTg9bQorQ09ORklHX1ZJREVPX09WODg2NT1tCitDT05G SUdfVklERU9fT1Y5MjgyPW0KK0NPTkZJR19WSURFT19PVjk2NDA9bQorQ09ORklHX1ZJREVPX09W OTY1MD1tCitDT05GSUdfVklERU9fUkRBQ00yMD1tCitDT05GSUdfVklERU9fUkRBQ00yMT1tCitD T05GSUdfVklERU9fUko1NE4xPW0KK0NPTkZJR19WSURFT19TNUM3M00zPW0KK0NPTkZJR19WSURF T19TNUs1QkFGPW0KK0NPTkZJR19WSURFT19TNUs2QTM9bQorQ09ORklHX1ZJREVPX1NUX1ZHWFk2 MT1tCitDT05GSUdfVklERU9fQ0NTPW0KK0NPTkZJR19WSURFT19FVDhFSzg9bQorIyBlbmQgb2Yg Q2FtZXJhIHNlbnNvciBkZXZpY2VzCisKKyMKKyMgTGVucyBkcml2ZXJzCisjCitDT05GSUdfVklE RU9fQUQ1ODIwPW0KK0NPTkZJR19WSURFT19BSzczNzU9bQorQ09ORklHX1ZJREVPX0RXOTcxND1t CitDT05GSUdfVklERU9fRFc5NzY4PW0KK0NPTkZJR19WSURFT19EVzk4MDdfVkNNPW0KKyMgZW5k IG9mIExlbnMgZHJpdmVycworCisjCisjIEZsYXNoIGRldmljZXMKKyMKK0NPTkZJR19WSURFT19B RFAxNjUzPW0KK0NPTkZJR19WSURFT19MTTM1NjA9bQorQ09ORklHX1ZJREVPX0xNMzY0Nj1tCisj IGVuZCBvZiBGbGFzaCBkZXZpY2VzCisKKyMKKyMgQXVkaW8gZGVjb2RlcnMsIHByb2Nlc3NvcnMg YW5kIG1peGVycworIworQ09ORklHX1ZJREVPX0NTMzMwOD1tCitDT05GSUdfVklERU9fQ1M1MzQ1 PW0KK0NPTkZJR19WSURFT19DUzUzTDMyQT1tCitDT05GSUdfVklERU9fTVNQMzQwMD1tCitDT05G SUdfVklERU9fU09OWV9CVEZfTVBYPW0KK0NPTkZJR19WSURFT19UREExOTk3WD1tCitDT05GSUdf VklERU9fVERBNzQzMj1tCitDT05GSUdfVklERU9fVERBOTg0MD1tCitDT05GSUdfVklERU9fVEVB NjQxNUM9bQorQ09ORklHX1ZJREVPX1RFQTY0MjA9bQorQ09ORklHX1ZJREVPX1RMVjMyMEFJQzIz Qj1tCitDT05GSUdfVklERU9fVFZBVURJTz1tCitDT05GSUdfVklERU9fVURBMTM0Mj1tCitDT05G SUdfVklERU9fVlAyN1NNUFg9bQorQ09ORklHX1ZJREVPX1dNODczOT1tCitDT05GSUdfVklERU9f V004Nzc1PW0KKyMgZW5kIG9mIEF1ZGlvIGRlY29kZXJzLCBwcm9jZXNzb3JzIGFuZCBtaXhlcnMK KworIworIyBSRFMgZGVjb2RlcnMKKyMKK0NPTkZJR19WSURFT19TQUE2NTg4PW0KKyMgZW5kIG9m IFJEUyBkZWNvZGVycworCisjCisjIFZpZGVvIGRlY29kZXJzCisjCitDT05GSUdfVklERU9fQURW NzE4MD1tCitDT05GSUdfVklERU9fQURWNzE4Mz1tCitDT05GSUdfVklERU9fQURWNzQ4WD1tCitD T05GSUdfVklERU9fQURWNzYwND1tCitDT05GSUdfVklERU9fQURWNzYwNF9DRUM9eQorQ09ORklH X1ZJREVPX0FEVjc4NDI9bQorQ09ORklHX1ZJREVPX0FEVjc4NDJfQ0VDPXkKK0NPTkZJR19WSURF T19CVDgxOT1tCitDT05GSUdfVklERU9fQlQ4NTY9bQorQ09ORklHX1ZJREVPX0JUODY2PW0KK0NP TkZJR19WSURFT19JU0w3OTk4WD1tCitDT05GSUdfVklERU9fS1MwMTI3PW0KK0NPTkZJR19WSURF T19NQVg5Mjg2PW0KK0NPTkZJR19WSURFT19NTDg2Vjc2Njc9bQorQ09ORklHX1ZJREVPX1NBQTcx MTA9bQorQ09ORklHX1ZJREVPX1NBQTcxMVg9bQorQ09ORklHX1ZJREVPX1RDMzU4NzQzPW0KK0NP TkZJR19WSURFT19UQzM1ODc0M19DRUM9eQorQ09ORklHX1ZJREVPX1RDMzU4NzQ2PW0KK0NPTkZJ R19WSURFT19UVlA1MTRYPW0KK0NPTkZJR19WSURFT19UVlA1MTUwPW0KK0NPTkZJR19WSURFT19U VlA3MDAyPW0KK0NPTkZJR19WSURFT19UVzI4MDQ9bQorQ09ORklHX1ZJREVPX1RXOTkwMz1tCitD T05GSUdfVklERU9fVFc5OTA2PW0KK0NPTkZJR19WSURFT19UVzk5MTA9bQorQ09ORklHX1ZJREVP X1ZQWDMyMjA9bQorCisjCisjIFZpZGVvIGFuZCBhdWRpbyBkZWNvZGVycworIworQ09ORklHX1ZJ REVPX1NBQTcxN1g9bQorQ09ORklHX1ZJREVPX0NYMjU4NDA9bQorIyBlbmQgb2YgVmlkZW8gZGVj b2RlcnMKKworIworIyBWaWRlbyBlbmNvZGVycworIworQ09ORklHX1ZJREVPX0FEVjcxNzA9bQor Q09ORklHX1ZJREVPX0FEVjcxNzU9bQorQ09ORklHX1ZJREVPX0FEVjczNDM9bQorQ09ORklHX1ZJ REVPX0FEVjczOTM9bQorQ09ORklHX1ZJREVPX0FLODgxWD1tCitDT05GSUdfVklERU9fU0FBNzEy Nz1tCitDT05GSUdfVklERU9fU0FBNzE4NT1tCitDT05GSUdfVklERU9fVEhTODIwMD1tCisjIGVu ZCBvZiBWaWRlbyBlbmNvZGVycworCisjCisjIFZpZGVvIGltcHJvdmVtZW50IGNoaXBzCisjCitD T05GSUdfVklERU9fVVBENjQwMzFBPW0KK0NPTkZJR19WSURFT19VUEQ2NDA4Mz1tCisjIGVuZCBv ZiBWaWRlbyBpbXByb3ZlbWVudCBjaGlwcworCisjCisjIEF1ZGlvL1ZpZGVvIGNvbXByZXNzaW9u IGNoaXBzCisjCitDT05GSUdfVklERU9fU0FBNjc1MkhTPW0KKyMgZW5kIG9mIEF1ZGlvL1ZpZGVv IGNvbXByZXNzaW9uIGNoaXBzCisKKyMKKyMgU0RSIHR1bmVyIGNoaXBzCisjCitDT05GSUdfU0RS X01BWDIxNzU9bQorIyBlbmQgb2YgU0RSIHR1bmVyIGNoaXBzCisKKyMKKyMgTWlzY2VsbGFuZW91 cyBoZWxwZXIgY2hpcHMKKyMKK0NPTkZJR19WSURFT19JMkM9bQorQ09ORklHX1ZJREVPX001Mjc5 MD1tCitDT05GSUdfVklERU9fU1RfTUlQSUQwMj1tCitDT05GSUdfVklERU9fVEhTNzMwMz1tCisj IGVuZCBvZiBNaXNjZWxsYW5lb3VzIGhlbHBlciBjaGlwcworCisjCisjIE1lZGlhIFNQSSBBZGFw dGVycworIworQ09ORklHX0NYRDI4ODBfU1BJX0RSVj1tCitDT05GSUdfVklERU9fR1MxNjYyPW0K KyMgZW5kIG9mIE1lZGlhIFNQSSBBZGFwdGVycworCitDT05GSUdfTUVESUFfVFVORVI9bQorCisj CisjIEN1c3RvbWl6ZSBUViB0dW5lcnMKKyMKK0NPTkZJR19NRURJQV9UVU5FUl9FNDAwMD1tCitD T05GSUdfTUVESUFfVFVORVJfRkMwMDExPW0KK0NPTkZJR19NRURJQV9UVU5FUl9GQzAwMTI9bQor Q09ORklHX01FRElBX1RVTkVSX0ZDMDAxMz1tCitDT05GSUdfTUVESUFfVFVORVJfRkMyNTgwPW0K K0NPTkZJR19NRURJQV9UVU5FUl9JVDkxM1g9bQorQ09ORklHX01FRElBX1RVTkVSX004OFJTNjAw MFQ9bQorQ09ORklHX01FRElBX1RVTkVSX01BWDIxNjU9bQorQ09ORklHX01FRElBX1RVTkVSX01D NDRTODAzPW0KK0NPTkZJR19NRURJQV9UVU5FUl9NU0kwMDE9bQorQ09ORklHX01FRElBX1RVTkVS X01UMjA2MD1tCitDT05GSUdfTUVESUFfVFVORVJfTVQyMDYzPW0KK0NPTkZJR19NRURJQV9UVU5F Ul9NVDIwWFg9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjEzMT1tCitDT05GSUdfTUVESUFfVFVO RVJfTVQyMjY2PW0KK0NPTkZJR19NRURJQV9UVU5FUl9NWEwzMDFSRj1tCitDT05GSUdfTUVESUFf VFVORVJfTVhMNTAwNVM9bQorQ09ORklHX01FRElBX1RVTkVSX01YTDUwMDdUPW0KK0NPTkZJR19N RURJQV9UVU5FUl9RTTFEMUIwMDA0PW0KK0NPTkZJR19NRURJQV9UVU5FUl9RTTFEMUMwMDQyPW0K K0NPTkZJR19NRURJQV9UVU5FUl9RVDEwMTA9bQorQ09ORklHX01FRElBX1RVTkVSX1I4MjBUPW0K K0NPTkZJR19NRURJQV9UVU5FUl9TSTIxNTc9bQorQ09ORklHX01FRElBX1RVTkVSX1NJTVBMRT1t CitDT05GSUdfTUVESUFfVFVORVJfVERBMTgyMTI9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTE4 MjE4PW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREExODI1MD1tCitDT05GSUdfTUVESUFfVFVORVJf VERBMTgyNzE9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyN1g9bQorQ09ORklHX01FRElBX1RV TkVSX1REQTgyOTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElB X1RVTkVSX1RFQTU3NjE9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01F RElBX1RVTkVSX1RVQTkwMDE9bQorQ09ORklHX01FRElBX1RVTkVSX1hDMjAyOD1tCitDT05GSUdf TUVESUFfVFVORVJfWEM0MDAwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9bQorIyBlbmQg b2YgQ3VzdG9taXplIFRWIHR1bmVycworCisjCisjIEN1c3RvbWlzZSBEVkIgRnJvbnRlbmRzCisj CisKKyMKKyMgTXVsdGlzdGFuZGFyZCAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKKyMKK0NPTkZJR19E VkJfTTg4RFMzMTAzPW0KK0NPTkZJR19EVkJfTVhMNVhYPW0KK0NPTkZJR19EVkJfU1RCMDg5OT1t CitDT05GSUdfRFZCX1NUQjYxMDA9bQorQ09ORklHX0RWQl9TVFYwOTB4PW0KK0NPTkZJR19EVkJf U1RWMDkxMD1tCitDT05GSUdfRFZCX1NUVjYxMTB4PW0KK0NPTkZJR19EVkJfU1RWNjExMT1tCisK KyMKKyMgTXVsdGlzdGFuZGFyZCAoY2FibGUgKyB0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisjCitD T05GSUdfRFZCX0RSWEs9bQorQ09ORklHX0RWQl9NTjg4NDcyPW0KK0NPTkZJR19EVkJfTU44ODQ3 Mz1tCitDT05GSUdfRFZCX1NJMjE2NT1tCitDT05GSUdfRFZCX1REQTE4MjcxQzJERD1tCisKKyMK KyMgRFZCLVMgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX0NYMjQxMTA9bQor Q09ORklHX0RWQl9DWDI0MTE2PW0KK0NPTkZJR19EVkJfQ1gyNDExNz1tCitDT05GSUdfRFZCX0NY MjQxMjA9bQorQ09ORklHX0RWQl9DWDI0MTIzPW0KK0NPTkZJR19EVkJfRFMzMDAwPW0KK0NPTkZJ R19EVkJfTUI4NkExNj1tCitDT05GSUdfRFZCX01UMzEyPW0KK0NPTkZJR19EVkJfUzVIMTQyMD1t CitDT05GSUdfRFZCX1NJMjFYWD1tCitDT05GSUdfRFZCX1NUQjYwMDA9bQorQ09ORklHX0RWQl9T VFYwMjg4PW0KK0NPTkZJR19EVkJfU1RWMDI5OT1tCitDT05GSUdfRFZCX1NUVjA5MDA9bQorQ09O RklHX0RWQl9TVFY2MTEwPW0KK0NPTkZJR19EVkJfVERBMTAwNzE9bQorQ09ORklHX0RWQl9UREEx MDA4Nj1tCitDT05GSUdfRFZCX1REQTgwODM9bQorQ09ORklHX0RWQl9UREE4MjYxPW0KK0NPTkZJ R19EVkJfVERBODI2WD1tCitDT05GSUdfRFZCX1RTMjAyMD1tCitDT05GSUdfRFZCX1RVQTYxMDA9 bQorQ09ORklHX0RWQl9UVU5FUl9DWDI0MTEzPW0KK0NPTkZJR19EVkJfVFVORVJfSVREMTAwMD1t CitDT05GSUdfRFZCX1ZFUzFYOTM9bQorQ09ORklHX0RWQl9aTDEwMDM2PW0KK0NPTkZJR19EVkJf WkwxMDAzOT1tCisKKyMKKyMgRFZCLVQgKHRlcnJlc3RyaWFsKSBmcm9udGVuZHMKKyMKK0NPTkZJ R19EVkJfQUY5MDEzPW0KK0NPTkZJR19EVkJfQVMxMDJfRkU9bQorQ09ORklHX0RWQl9DWDIyNzAw PW0KK0NPTkZJR19EVkJfQ1gyMjcwMj1tCitDT05GSUdfRFZCX0NYRDI4MjBSPW0KK0NPTkZJR19E VkJfQ1hEMjg0MUVSPW0KK0NPTkZJR19EVkJfRElCMzAwME1CPW0KK0NPTkZJR19EVkJfRElCMzAw ME1DPW0KK0NPTkZJR19EVkJfRElCNzAwME09bQorQ09ORklHX0RWQl9ESUI3MDAwUD1tCitDT05G SUdfRFZCX0RJQjkwMDA9bQorQ09ORklHX0RWQl9EUlhEPW0KK0NPTkZJR19EVkJfRUMxMDA9bQor Q09ORklHX0RWQl9HUDhQU0tfRkU9bQorQ09ORklHX0RWQl9MNjQ3ODE9bQorQ09ORklHX0RWQl9N VDM1Mj1tCitDT05GSUdfRFZCX05YVDYwMDA9bQorQ09ORklHX0RWQl9SVEwyODMwPW0KK0NPTkZJ R19EVkJfUlRMMjgzMj1tCitDT05GSUdfRFZCX1JUTDI4MzJfU0RSPW0KK0NPTkZJR19EVkJfUzVI MTQzMj1tCitDT05GSUdfRFZCX1NJMjE2OD1tCitDT05GSUdfRFZCX1NQODg3WD1tCitDT05GSUdf RFZCX1NUVjAzNjc9bQorQ09ORklHX0RWQl9UREExMDA0OD1tCitDT05GSUdfRFZCX1REQTEwMDRY PW0KK0NPTkZJR19EVkJfWkQxMzAxX0RFTU9EPW0KK0NPTkZJR19EVkJfWkwxMDM1Mz1tCitDT05G SUdfRFZCX0NYRDI4ODA9bQorCisjCisjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCisjCitDT05G SUdfRFZCX1NUVjAyOTc9bQorQ09ORklHX0RWQl9UREExMDAyMT1tCitDT05GSUdfRFZCX1REQTEw MDIzPW0KK0NPTkZJR19EVkJfVkVTMTgyMD1tCisKKyMKKyMgQVRTQyAoTm9ydGggQW1lcmljYW4v S29yZWFuIFRlcnJlc3RyaWFsL0NhYmxlIERUVikgZnJvbnRlbmRzCisjCitDT05GSUdfRFZCX0FV ODUyMj1tCitDT05GSUdfRFZCX0FVODUyMl9EVFY9bQorQ09ORklHX0RWQl9BVTg1MjJfVjRMPW0K K0NPTkZJR19EVkJfQkNNMzUxMD1tCitDT05GSUdfRFZCX0xHMjE2MD1tCitDT05GSUdfRFZCX0xH RFQzMzA1PW0KK0NPTkZJR19EVkJfTEdEVDMzMDZBPW0KK0NPTkZJR19EVkJfTEdEVDMzMFg9bQor Q09ORklHX0RWQl9NWEw2OTI9bQorQ09ORklHX0RWQl9OWFQyMDBYPW0KK0NPTkZJR19EVkJfT1I1 MTEzMj1tCitDT05GSUdfRFZCX09SNTEyMTE9bQorQ09ORklHX0RWQl9TNUgxNDA5PW0KK0NPTkZJ R19EVkJfUzVIMTQxMT1tCisKKyMKKyMgSVNEQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCisj CitDT05GSUdfRFZCX0RJQjgwMDA9bQorQ09ORklHX0RWQl9NQjg2QTIwUz1tCitDT05GSUdfRFZC X1M5MjE9bQorCisjCisjIElTREItUyAoc2F0ZWxsaXRlKSAmIElTREItVCAodGVycmVzdHJpYWwp IGZyb250ZW5kcworIworQ09ORklHX0RWQl9NTjg4NDQzWD1tCitDT05GSUdfRFZCX1RDOTA1MjI9 bQorCisjCisjIERpZ2l0YWwgdGVycmVzdHJpYWwgb25seSB0dW5lcnMvUExMCisjCitDT05GSUdf RFZCX1BMTD1tCitDT05GSUdfRFZCX1RVTkVSX0RJQjAwNzA9bQorQ09ORklHX0RWQl9UVU5FUl9E SUIwMDkwPW0KKworIworIyBTRUMgY29udHJvbCBkZXZpY2VzIGZvciBEVkItUworIworQ09ORklH X0RWQl9BODI5Mz1tCitDT05GSUdfRFZCX0FGOTAzMz1tCitDT05GSUdfRFZCX0FTQ09UMkU9bQor Q09ORklHX0RWQl9BVEJNODgzMD1tCitDT05GSUdfRFZCX0hFTEVORT1tCitDT05GSUdfRFZCX0hP UlVTM0E9bQorQ09ORklHX0RWQl9JU0w2NDA1PW0KK0NPTkZJR19EVkJfSVNMNjQyMT1tCitDT05G SUdfRFZCX0lTTDY0MjM9bQorQ09ORklHX0RWQl9JWDI1MDVWPW0KK0NPTkZJR19EVkJfTEdTOEdM NT1tCitDT05GSUdfRFZCX0xHUzhHWFg9bQorQ09ORklHX0RWQl9MTkJIMjU9bQorQ09ORklHX0RW Ql9MTkJIMjk9bQorQ09ORklHX0RWQl9MTkJQMjE9bQorQ09ORklHX0RWQl9MTkJQMjI9bQorQ09O RklHX0RWQl9NODhSUzIwMDA9bQorQ09ORklHX0RWQl9UREE2NjV4PW0KK0NPTkZJR19EVkJfRFJY MzlYWUo9bQorCisjCisjIENvbW1vbiBJbnRlcmZhY2UgKEVONTAyMjEpIGNvbnRyb2xsZXIgZHJp dmVycworIworQ09ORklHX0RWQl9DWEQyMDk5PW0KK0NPTkZJR19EVkJfU1AyPW0KKyMgZW5kIG9m IEN1c3RvbWlzZSBEVkIgRnJvbnRlbmRzCisKKyMKKyMgVG9vbHMgdG8gZGV2ZWxvcCBuZXcgZnJv bnRlbmRzCisjCitDT05GSUdfRFZCX0RVTU1ZX0ZFPW0KKyMgZW5kIG9mIE1lZGlhIGFuY2lsbGFy eSBkcml2ZXJzCisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworQ09ORklHX0FQRVJUVVJFX0hF TFBFUlM9eQorQ09ORklHX1ZJREVPX0NNRExJTkU9eQorQ09ORklHX1ZJREVPX05PTU9ERVNFVD15 CitDT05GSUdfRFJNPW0KK0NPTkZJR19EUk1fTUlQSV9EQkk9bQorQ09ORklHX0RSTV9NSVBJX0RT ST15CitDT05GSUdfRFJNX0tNU19IRUxQRVI9bQorIyBDT05GSUdfRFJNX0RFQlVHX0RQX01TVF9U T1BPTE9HWV9SRUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9ERUJVR19NT0RFU0VUX0xPQ0sg aXMgbm90IHNldAorQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT049eQorQ09ORklHX0RSTV9GQkRF Vl9PVkVSQUxMT0M9MTAwCisjIENPTkZJR19EUk1fRkJERVZfTEVBS19QSFlTX1NNRU0gaXMgbm90 IHNldAorQ09ORklHX0RSTV9MT0FEX0VESURfRklSTVdBUkU9eQorQ09ORklHX0RSTV9EUF9BVVhf QlVTPW0KK0NPTkZJR19EUk1fRElTUExBWV9IRUxQRVI9bQorQ09ORklHX0RSTV9ESVNQTEFZX0RQ X0hFTFBFUj15CitDT05GSUdfRFJNX0RJU1BMQVlfSERDUF9IRUxQRVI9eQorQ09ORklHX0RSTV9E SVNQTEFZX0hETUlfSEVMUEVSPXkKK0NPTkZJR19EUk1fRFBfQVVYX0NIQVJERVY9eQorQ09ORklH X0RSTV9EUF9DRUM9eQorQ09ORklHX0RSTV9UVE09bQorQ09ORklHX0RSTV9CVUREWT1tCitDT05G SUdfRFJNX1ZSQU1fSEVMUEVSPW0KK0NPTkZJR19EUk1fVFRNX0hFTFBFUj1tCitDT05GSUdfRFJN X0dFTV9ETUFfSEVMUEVSPW0KK0NPTkZJR19EUk1fR0VNX1NITUVNX0hFTFBFUj1tCitDT05GSUdf RFJNX1NVQkFMTE9DX0hFTFBFUj1tCitDT05GSUdfRFJNX1NDSEVEPW0KKworIworIyBJMkMgZW5j b2RlciBvciBoZWxwZXIgY2hpcHMKKyMKK0NPTkZJR19EUk1fSTJDX0NINzAwNj1tCitDT05GSUdf RFJNX0kyQ19TSUwxNjQ9bQorQ09ORklHX0RSTV9JMkNfTlhQX1REQTk5OFg9bQorQ09ORklHX0RS TV9JMkNfTlhQX1REQTk5NTA9bQorIyBlbmQgb2YgSTJDIGVuY29kZXIgb3IgaGVscGVyIGNoaXBz CisKKyMKKyMgQVJNIGRldmljZXMKKyMKK0NPTkZJR19EUk1fS09NRURBPW0KKyMgZW5kIG9mIEFS TSBkZXZpY2VzCisKK0NPTkZJR19EUk1fUkFERU9OPW0KK0NPTkZJR19EUk1fUkFERU9OX1VTRVJQ VFI9eQorQ09ORklHX0RSTV9BTURHUFU9bQorQ09ORklHX0RSTV9BTURHUFVfU0k9eQorQ09ORklH X0RSTV9BTURHUFVfQ0lLPXkKK0NPTkZJR19EUk1fQU1ER1BVX1VTRVJQVFI9eQorCisjCisjIEFD UCAoQXVkaW8gQ29Qcm9jZXNzb3IpIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19EUk1fQU1EX0FD UD15CisjIGVuZCBvZiBBQ1AgKEF1ZGlvIENvUHJvY2Vzc29yKSBDb25maWd1cmF0aW9uCisKKyMK KyMgRGlzcGxheSBFbmdpbmUgQ29uZmlndXJhdGlvbgorIworQ09ORklHX0RSTV9BTURfREM9eQor Q09ORklHX0RSTV9BTURfRENfU0k9eQorIyBDT05GSUdfREVCVUdfS0VSTkVMX0RDIGlzIG5vdCBz ZXQKKyMgZW5kIG9mIERpc3BsYXkgRW5naW5lIENvbmZpZ3VyYXRpb24KKworQ09ORklHX0RSTV9O T1VWRUFVPW0KK0NPTkZJR19OT1VWRUFVX0RFQlVHPTUKK0NPTkZJR19OT1VWRUFVX0RFQlVHX0RF RkFVTFQ9MworIyBDT05GSUdfTk9VVkVBVV9ERUJVR19NTVUgaXMgbm90IHNldAorIyBDT05GSUdf Tk9VVkVBVV9ERUJVR19QVVNIIGlzIG5vdCBzZXQKK0NPTkZJR19EUk1fTk9VVkVBVV9CQUNLTElH SFQ9eQorIyBDT05GSUdfRFJNX1ZHRU0gaXMgbm90IHNldAorQ09ORklHX0RSTV9WS01TPW0KK0NP TkZJR19EUk1fVURMPW0KK0NPTkZJR19EUk1fQVNUPW0KK0NPTkZJR19EUk1fTUdBRzIwMD1tCitD T05GSUdfRFJNX1JaRzJMX01JUElfRFNJPW0KK0NPTkZJR19EUk1fU1VONEk9bQorQ09ORklHX0RS TV9TVU42SV9EU0k9bQorQ09ORklHX0RSTV9TVU44SV9EV19IRE1JPW0KK0NPTkZJR19EUk1fU1VO OElfTUlYRVI9bQorQ09ORklHX0RSTV9TVU44SV9UQ09OX1RPUD1tCitDT05GSUdfRFJNX1FYTD1t CitDT05GSUdfRFJNX1ZJUlRJT19HUFU9bQorQ09ORklHX0RSTV9WSVJUSU9fR1BVX0tNUz15CitD T05GSUdfRFJNX1BBTkVMPXkKKworIworIyBEaXNwbGF5IFBhbmVscworIworQ09ORklHX0RSTV9Q QU5FTF9BQlRfWTAzMFhYMDY3QT1tCitDT05GSUdfRFJNX1BBTkVMX0FSTV9WRVJTQVRJTEU9bQor Q09ORklHX0RSTV9QQU5FTF9BU1VTX1owMFRfVE01UDVfTlQzNTU5Nj1tCitDT05GSUdfRFJNX1BB TkVMX0FVT19BMDMwSlROMDE9bQorQ09ORklHX0RSTV9QQU5FTF9CT0VfQkYwNjBZOE1fQUowPW0K K0NPTkZJR19EUk1fUEFORUxfQk9FX0hJTUFYODI3OUQ9bQorQ09ORklHX0RSTV9QQU5FTF9CT0Vf VFYxMDFXVU1fTkw2PW0KK0NPTkZJR19EUk1fUEFORUxfRFNJX0NNPW0KK0NPTkZJR19EUk1fUEFO RUxfTFZEUz1tCitDT05GSUdfRFJNX1BBTkVMX1NJTVBMRT1tCitDT05GSUdfRFJNX1BBTkVMX0VE UD1tCitDT05GSUdfRFJNX1BBTkVMX0VCQkdfRlQ4NzE5PW0KK0NPTkZJR19EUk1fUEFORUxfRUxJ REFfS0QzNVQxMzM9bQorQ09ORklHX0RSTV9QQU5FTF9GRUlYSU5fSzEwMV9JTTJCQTAyPW0KK0NP TkZJR19EUk1fUEFORUxfRkVJWUFOR19GWTA3MDI0REkyNkEzMEQ9bQorQ09ORklHX0RSTV9QQU5F TF9ISU1BWF9IWDgzOTQ9bQorQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUw5MzIyPW0KK0NPTkZJ R19EUk1fUEFORUxfSUxJVEVLX0lMSTkzNDE9bQorQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUxJ OTg4MUM9bQorQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX0VKMDMwTkE9bQorQ09ORklHX0RSTV9Q QU5FTF9JTk5PTFVYX1AwNzlaQ0E9bQorQ09ORklHX0RSTV9QQU5FTF9KQURBUkRfSkQ5MzY1REFf SDM9bQorQ09ORklHX0RSTV9QQU5FTF9KRElfTFQwNzBNRTA1MDAwPW0KK0NPTkZJR19EUk1fUEFO RUxfSkRJX1I2MzQ1Mj1tCitDT05GSUdfRFJNX1BBTkVMX0tIQURBU19UUzA1MD1tCitDT05GSUdf RFJNX1BBTkVMX0tJTkdESVNQTEFZX0tEMDk3RDA0PW0KK0NPTkZJR19EUk1fUEFORUxfTEVBRFRF S19MVEswNTBIMzE0Nlc9bQorQ09ORklHX0RSTV9QQU5FTF9MRUFEVEVLX0xUSzUwMEhEMTgyOT1t CitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfTEQ5MDQwPW0KK0NPTkZJR19EUk1fUEFORUxfTEdf TEIwMzVRMDI9bQorQ09ORklHX0RSTV9QQU5FTF9MR19MRzQ1NzM9bQorQ09ORklHX0RSTV9QQU5F TF9NQUdOQUNISVBfRDUzRTZFQTg5NjY9bQorQ09ORklHX0RSTV9QQU5FTF9ORUNfTkw4MDQ4SEwx MT1tCitDT05GSUdfRFJNX1BBTkVMX05FV1ZJU0lPTl9OVjMwNTFEPW0KK0NPTkZJR19EUk1fUEFO RUxfTkVXVklTSU9OX05WMzA1MkM9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU1MTA9 bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzU1NjA9bQorQ09ORklHX0RSTV9QQU5FTF9O T1ZBVEVLX05UMzU5NTA9bQorQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzY1MjM9bQorQ09O RklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzY2NzJBPW0KK0NPTkZJR19EUk1fUEFORUxfTk9WQVRF S19OVDM5MDE2PW0KK0NPTkZJR19EUk1fUEFORUxfTUFOVElYX01MQUYwNTdXRTUxPW0KK0NPTkZJ R19EUk1fUEFORUxfT0xJTUVYX0xDRF9PTElOVVhJTk89bQorQ09ORklHX0RSTV9QQU5FTF9PUklT RVRFQ0hfT1RBNTYwMUE9bQorQ09ORklHX0RSTV9QQU5FTF9PUklTRVRFQ0hfT1RNODAwOUE9bQor Q09ORklHX0RSTV9QQU5FTF9PU0RfT1NEMTAxVDI1ODdfNTNUUz1tCitDT05GSUdfRFJNX1BBTkVM X1BBTkFTT05JQ19WVlgxMEYwMzROMDA9bQorQ09ORklHX0RSTV9QQU5FTF9SQVNQQkVSUllQSV9U T1VDSFNDUkVFTj1tCitDT05GSUdfRFJNX1BBTkVMX1JBWURJVU1fUk02NzE5MT1tCitDT05GSUdf RFJNX1BBTkVMX1JBWURJVU1fUk02ODIwMD1tCitDT05GSUdfRFJNX1BBTkVMX1JPTkJPX1JCMDcw RDMwPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19BVE5BMzNYQzIwPW0KK0NPTkZJR19EUk1f UEFORUxfU0FNU1VOR19EQjc0MzA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RDE2RDA9 bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RDI3QTE9bQorQ09ORklHX0RSTV9QQU5FTF9T QU1TVU5HX1M2RTNIQTI9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzSjBYMDM9bQor Q09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzTTA9bQorQ09ORklHX0RSTV9QQU5FTF9TQU1T VU5HX1M2RTYzTTBfU1BJPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU2M00wX0RTST1t CitDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFODhBMF9BTVM0NTJFRjAxPW0KK0NPTkZJR19E Uk1fUEFORUxfU0FNU1VOR19TNkU4QUEwPW0KK0NPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TT0ZF RjAwPW0KK0NPTkZJR19EUk1fUEFORUxfU0VJS09fNDNXVkYxRz1tCitDT05GSUdfRFJNX1BBTkVM X1NIQVJQX0xRMTAxUjFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0hBUlBfTFMwMzdWN0RXMDE9 bQorQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUzA0M1QxTEUwMT1tCitDT05GSUdfRFJNX1BBTkVM X1NIQVJQX0xTMDYwVDFTWDAxPW0KK0NPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3NzAxPW0K K0NPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3NzAzPW0KK0NPTkZJR19EUk1fUEFORUxfU0lU Uk9OSVhfU1Q3Nzg5Vj1tCitDT05GSUdfRFJNX1BBTkVMX1NPTllfQUNYNTY1QUtNPW0KK0NPTkZJ R19EUk1fUEFORUxfU09OWV9URDQzNTNfSkRJPW0KK0NPTkZJR19EUk1fUEFORUxfU09OWV9UVUxJ UF9UUlVMWV9OVDM1NTIxPW0KK0NPTkZJR19EUk1fUEFORUxfVERPX1RMMDcwV1NIMzA9bQorQ09O RklHX0RSTV9QQU5FTF9UUE9fVEQwMjhUVEVDMT1tCitDT05GSUdfRFJNX1BBTkVMX1RQT19URDA0 M01URUExPW0KK0NPTkZJR19EUk1fUEFORUxfVFBPX1RQRzExMD1tCitDT05GSUdfRFJNX1BBTkVM X1RSVUxZX05UMzU1OTdfV1FYR0E9bQorQ09ORklHX0RSTV9QQU5FTF9WSVNJT05PWF9STTY5Mjk5 PW0KK0NPTkZJR19EUk1fUEFORUxfVklTSU9OT1hfVlREUjYxMzA9bQorQ09ORklHX0RSTV9QQU5F TF9XSURFQ0hJUFNfV1MyNDAxPW0KK0NPTkZJR19EUk1fUEFORUxfWElOUEVOR19YUFAwNTVDMjcy PW0KKyMgZW5kIG9mIERpc3BsYXkgUGFuZWxzCisKK0NPTkZJR19EUk1fQlJJREdFPXkKK0NPTkZJ R19EUk1fUEFORUxfQlJJREdFPXkKKworIworIyBEaXNwbGF5IEludGVyZmFjZSBCcmlkZ2VzCisj CitDT05GSUdfRFJNX0NISVBPTkVfSUNONjIxMT1tCitDT05GSUdfRFJNX0NIUk9OVEVMX0NINzAz Mz1tCitDT05GSUdfRFJNX0RJU1BMQVlfQ09OTkVDVE9SPW0KK0NPTkZJR19EUk1fSVRFX0lUNjUw NT1tCitDT05GSUdfRFJNX0xPTlRJVU1fTFQ4OTEyQj1tCisjIENPTkZJR19EUk1fTE9OVElVTV9M VDkyMTEgaXMgbm90IHNldAorQ09ORklHX0RSTV9MT05USVVNX0xUOTYxMT1tCitDT05GSUdfRFJN X0xPTlRJVU1fTFQ5NjExVVhDPW0KK0NPTkZJR19EUk1fSVRFX0lUNjYxMjE9bQorQ09ORklHX0RS TV9MVkRTX0NPREVDPW0KK0NPTkZJR19EUk1fTUVHQUNISVBTX1NURFBYWFhYX0dFX0I4NTBWM19G Vz1tCitDT05GSUdfRFJNX05XTF9NSVBJX0RTST1tCitDT05GSUdfRFJNX05YUF9QVE4zNDYwPW0K K0NPTkZJR19EUk1fUEFSQURFX1BTODYyMj1tCitDT05GSUdfRFJNX1BBUkFERV9QUzg2NDA9bQor Q09ORklHX0RSTV9TQU1TVU5HX0RTSU09bQorQ09ORklHX0RSTV9TSUxfU0lJODYyMD1tCitDT05G SUdfRFJNX1NJSTkwMlg9bQorQ09ORklHX0RSTV9TSUk5MjM0PW0KK0NPTkZJR19EUk1fU0lNUExF X0JSSURHRT1tCitDT05GSUdfRFJNX1RISU5FX1RIQzYzTFZEMTAyND1tCitDT05GSUdfRFJNX1RP U0hJQkFfVEMzNTg3NjI9bQorQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzY0PW0KK0NPTkZJR19E Uk1fVE9TSElCQV9UQzM1ODc2Nz1tCitDT05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3Njg9bQorQ09O RklHX0RSTV9UT1NISUJBX1RDMzU4Nzc1PW0KK0NPTkZJR19EUk1fVElfRExQQzM0MzM9bQorQ09O RklHX0RSTV9USV9URlA0MTA9bQorQ09ORklHX0RSTV9USV9TTjY1RFNJODM9bQorQ09ORklHX0RS TV9USV9TTjY1RFNJODY9bQorQ09ORklHX0RSTV9USV9UUEQxMlMwMTU9bQorQ09ORklHX0RSTV9B TkFMT0dJWF9BTlg2MzQ1PW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzhYWD1tCitDT05GSUdf RFJNX0FOQUxPR0lYX0RQPW0KK0NPTkZJR19EUk1fQU5BTE9HSVhfQU5YNzYyNT1tCitDT05GSUdf RFJNX0kyQ19BRFY3NTExPW0KK0NPTkZJR19EUk1fSTJDX0FEVjc1MTFfQVVESU89eQorQ09ORklH X0RSTV9JMkNfQURWNzUxMV9DRUM9eQorQ09ORklHX0RSTV9DRE5TX0RTST1tCitDT05GSUdfRFJN X0NETlNfRFNJX0o3MjFFPXkKK0NPTkZJR19EUk1fQ0ROU19NSERQODU0Nj1tCitDT05GSUdfRFJN X0RXX0hETUk9bQorQ09ORklHX0RSTV9EV19IRE1JX0FIQl9BVURJTz1tCitDT05GSUdfRFJNX0RX X0hETUlfSTJTX0FVRElPPW0KKyMgQ09ORklHX0RSTV9EV19IRE1JX0dQX0FVRElPIGlzIG5vdCBz ZXQKK0NPTkZJR19EUk1fRFdfSERNSV9DRUM9bQorIyBlbmQgb2YgRGlzcGxheSBJbnRlcmZhY2Ug QnJpZGdlcworCitDT05GSUdfRFJNX0VUTkFWSVY9bQorQ09ORklHX0RSTV9FVE5BVklWX1RIRVJN QUw9eQorQ09ORklHX0RSTV9MT0dJQ1ZDPW0KKyMgQ09ORklHX0RSTV9BUkNQR1UgaXMgbm90IHNl dAorQ09ORklHX0RSTV9CT0NIUz1tCitDT05GSUdfRFJNX0NJUlJVU19RRU1VPW0KK0NPTkZJR19E Uk1fR00xMlUzMjA9bQorQ09ORklHX0RSTV9QQU5FTF9NSVBJX0RCST1tCitDT05GSUdfRFJNX1NJ TVBMRURSTT1tCitDT05GSUdfVElOWURSTV9IWDgzNTdEPW0KK0NPTkZJR19USU5ZRFJNX0lMSTkx NjM9bQorQ09ORklHX1RJTllEUk1fSUxJOTIyNT1tCitDT05GSUdfVElOWURSTV9JTEk5MzQxPW0K K0NPTkZJR19USU5ZRFJNX0lMSTk0ODY9bQorQ09ORklHX1RJTllEUk1fTUkwMjgzUVQ9bQorQ09O RklHX1RJTllEUk1fUkVQQVBFUj1tCitDT05GSUdfVElOWURSTV9TVDc1ODY9bQorQ09ORklHX1RJ TllEUk1fU1Q3NzM1Uj1tCitDT05GSUdfRFJNX0dVRD1tCitDT05GSUdfRFJNX1NTRDEzMFg9bQor Q09ORklHX0RSTV9TU0QxMzBYX0kyQz1tCitDT05GSUdfRFJNX1NTRDEzMFhfU1BJPW0KKyMgQ09O RklHX0RSTV9MRUdBQ1kgaXMgbm90IHNldAorQ09ORklHX0RSTV9QQU5FTF9PUklFTlRBVElPTl9R VUlSS1M9eQorCisjCisjIEZyYW1lIGJ1ZmZlciBEZXZpY2VzCisjCitDT05GSUdfRkJfTk9USUZZ PXkKK0NPTkZJR19GQj15CitDT05GSUdfRklSTVdBUkVfRURJRD15CitDT05GSUdfRkJfRERDPW0K K0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CitDT05G SUdfRkJfQ0ZCX0lNQUdFQkxJVD15CitDT05GSUdfRkJfU1lTX0ZJTExSRUNUPW0KK0NPTkZJR19G Ql9TWVNfQ09QWUFSRUE9bQorQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQ9bQorIyBDT05GSUdfRkJf Rk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAorQ09ORklHX0ZCX1NZU19GT1BTPW0KK0NPTkZJR19G Ql9ERUZFUlJFRF9JTz15CitDT05GSUdfRkJfQkFDS0xJR0hUPW0KK0NPTkZJR19GQl9NT0RFX0hF TFBFUlM9eQorQ09ORklHX0ZCX1RJTEVCTElUVElORz15CisKKyMKKyMgRnJhbWUgYnVmZmVyIGhh cmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0CisjIENPTkZJ R19GQl9QTTIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBz ZXQKK0NPTkZJR19GQl9VVkVTQT1tCitDT05GSUdfRkJfRUZJPXkKKyMgQ09ORklHX0ZCX09QRU5D T1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMUQxM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJ R19GQl9OVklESUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CitDT05G SUdfRkJfSTc0MD1tCisjIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldAorIyBDT05GSUdfRkJf UkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0CisjIENPTkZJ R19GQl9BVFkgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzMgaXMgbm90IHNldAorIyBDT05GSUdf RkJfU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJ R19GQl9ORU9NQUdJQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9LWVJPIGlzIG5vdCBzZXQKKyMg Q09ORklHX0ZCXzNERlggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVk9PRE9PMSBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVFJJREVOVCBpcyBu b3Qgc2V0CisjIENPTkZJR19GQl9BUksgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0zIGlzIG5v dCBzZXQKKyMgQ09ORklHX0ZCX0NBUk1JTkUgaXMgbm90IHNldAorQ09ORklHX0ZCX1NIX01PQklM RV9MQ0RDPW0KK0NPTkZJR19GQl9TTVNDVUZYPW0KKyMgQ09ORklHX0ZCX1VETCBpcyBub3Qgc2V0 CisjIENPTkZJR19GQl9JQk1fR1hUNDUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9HT0xERklT SCBpcyBub3Qgc2V0CitDT05GSUdfRkJfVklSVFVBTD1tCitDT05GSUdfRkJfTUVUUk9OT01FPW0K K0NPTkZJR19GQl9NQjg2MlhYPW0KK0NPTkZJR19GQl9NQjg2MlhYX1BDSV9HREM9eQorQ09ORklH X0ZCX01CODYyWFhfSTJDPXkKKyMgQ09ORklHX0ZCX1NJTVBMRSBpcyBub3Qgc2V0CisjIENPTkZJ R19GQl9TU0QxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NNNzEyIGlzIG5vdCBzZXQKKyMg ZW5kIG9mIEZyYW1lIGJ1ZmZlciBEZXZpY2VzCisKKyMKKyMgQmFja2xpZ2h0ICYgTENEIGRldmlj ZSBzdXBwb3J0CisjCitDT05GSUdfTENEX0NMQVNTX0RFVklDRT1tCisjIENPTkZJR19MQ0RfTDRG MDAyNDJUMDMgaXMgbm90IHNldAorIyBDT05GSUdfTENEX0xNUzI4M0dGMDUgaXMgbm90IHNldAor IyBDT05GSUdfTENEX0xUVjM1MFFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9JTEk5MjJYIGlz IG5vdCBzZXQKKyMgQ09ORklHX0xDRF9JTEk5MzIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9U RE8yNE0gaXMgbm90IHNldAorIyBDT05GSUdfTENEX1ZHRzI0MzJBNCBpcyBub3Qgc2V0CitDT05G SUdfTENEX1BMQVRGT1JNPW0KKyMgQ09ORklHX0xDRF9BTVMzNjlGRzA2IGlzIG5vdCBzZXQKKyMg Q09ORklHX0xDRF9MTVM1MDFLRjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xDRF9IWDgzNTcgaXMg bm90IHNldAorQ09ORklHX0xDRF9PVE0zMjI1QT1tCitDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RF VklDRT15CitDT05GSUdfQkFDS0xJR0hUX0tURDI1Mz1tCitDT05GSUdfQkFDS0xJR0hUX0tUWjg4 NjY9bQorQ09ORklHX0JBQ0tMSUdIVF9MTTM1MzM9bQorQ09ORklHX0JBQ0tMSUdIVF9QV009bQor Q09ORklHX0JBQ0tMSUdIVF9NVDYzNzA9bQorQ09ORklHX0JBQ0tMSUdIVF9RQ09NX1dMRUQ9bQor Q09ORklHX0JBQ0tMSUdIVF9SVDQ4MzE9bQorQ09ORklHX0JBQ0tMSUdIVF9BRFA4ODYwPW0KK0NP TkZJR19CQUNLTElHSFRfQURQODg3MD1tCitDT05GSUdfQkFDS0xJR0hUX0xNMzYzMEE9bQorQ09O RklHX0JBQ0tMSUdIVF9MTTM2Mzk9bQorQ09ORklHX0JBQ0tMSUdIVF9MUDg1NVg9bQorQ09ORklH X0JBQ0tMSUdIVF9TS1k4MTQ1Mj1tCitDT05GSUdfQkFDS0xJR0hUX0dQSU89bQorQ09ORklHX0JB Q0tMSUdIVF9MVjUyMDdMUD1tCitDT05GSUdfQkFDS0xJR0hUX0JENjEwNz1tCitDT05GSUdfQkFD S0xJR0hUX0FSQ1hDTk49bQorQ09ORklHX0JBQ0tMSUdIVF9MRUQ9bQorIyBlbmQgb2YgQmFja2xp Z2h0ICYgTENEIGRldmljZSBzdXBwb3J0CisKK0NPTkZJR19WR0FTVEFURT1tCitDT05GSUdfVklE RU9NT0RFX0hFTFBFUlM9eQorQ09ORklHX0hETUk9eQorCisjCisjIENvbnNvbGUgZGlzcGxheSBk cml2ZXIgc3VwcG9ydAorIworQ09ORklHX1ZHQV9DT05TT0xFPXkKK0NPTkZJR19EVU1NWV9DT05T T0xFPXkKK0NPTkZJR19EVU1NWV9DT05TT0xFX0NPTFVNTlM9ODAKK0NPTkZJR19EVU1NWV9DT05T T0xFX1JPV1M9MjUKK0NPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKK0NPTkZJR19GUkFNRUJV RkZFUl9DT05TT0xFX0xFR0FDWV9BQ0NFTEVSQVRJT049eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NP TlNPTEVfREVURUNUX1BSSU1BUlk9eQorQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJ T049eQorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERUZFUlJFRF9UQUtFT1ZFUiBpcyBu b3Qgc2V0CisjIGVuZCBvZiBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKworIyBDT05G SUdfTE9HTyBpcyBub3Qgc2V0CisjIGVuZCBvZiBHcmFwaGljcyBzdXBwb3J0CisKK0NPTkZJR19E Uk1fQUNDRUw9eQorQ09ORklHX0RSTV9BQ0NFTF9RQUlDPW0KK0NPTkZJR19TT1VORD1tCitDT05G SUdfU09VTkRfT1NTX0NPUkU9eQorIyBDT05GSUdfU09VTkRfT1NTX0NPUkVfUFJFQ0xBSU0gaXMg bm90IHNldAorQ09ORklHX1NORD1tCitDT05GSUdfU05EX1RJTUVSPW0KK0NPTkZJR19TTkRfUENN PW0KK0NPTkZJR19TTkRfUENNX0VMRD15CitDT05GSUdfU05EX1BDTV9JRUM5NTg9eQorQ09ORklH X1NORF9ETUFFTkdJTkVfUENNPW0KK0NPTkZJR19TTkRfSFdERVA9bQorQ09ORklHX1NORF9TRVFf REVWSUNFPW0KK0NPTkZJR19TTkRfUkFXTUlEST1tCitDT05GSUdfU05EX0NPTVBSRVNTX09GRkxP QUQ9bQorQ09ORklHX1NORF9KQUNLPXkKK0NPTkZJR19TTkRfSkFDS19JTlBVVF9ERVY9eQorQ09O RklHX1NORF9PU1NFTVVMPXkKK0NPTkZJR19TTkRfTUlYRVJfT1NTPW0KK0NPTkZJR19TTkRfUENN X09TUz1tCitDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CitDT05GSUdfU05EX1BDTV9USU1F Uj15CitDT05GSUdfU05EX0hSVElNRVI9bQorQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUz15CitD T05GSUdfU05EX01BWF9DQVJEUz0zMgorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorQ09O RklHX1NORF9QUk9DX0ZTPXkKK0NPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQorQ09ORklHX1NO RF9WRVJCT1NFX1BSSU5USz15CitDT05GSUdfU05EX0NUTF9GQVNUX0xPT0tVUD15CitDT05GSUdf U05EX0RFQlVHPXkKKyMgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJ R19TTkRfUENNX1hSVU5fREVCVUc9eQorIyBDT05GSUdfU05EX0NUTF9JTlBVVF9WQUxJREFUSU9O IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DVExfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdf U05EX0pBQ0tfSU5KRUNUSU9OX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfVk1BU1RFUj15 CitDT05GSUdfU05EX0NUTF9MRUQ9bQorQ09ORklHX1NORF9TRVFVRU5DRVI9bQorQ09ORklHX1NO RF9TRVFfRFVNTVk9bQorQ09ORklHX1NORF9TRVFVRU5DRVJfT1NTPW0KK0NPTkZJR19TTkRfU0VR X0hSVElNRVJfREVGQVVMVD15CitDT05GSUdfU05EX1NFUV9NSURJX0VWRU5UPW0KK0NPTkZJR19T TkRfU0VRX01JREk9bQorQ09ORklHX1NORF9TRVFfTUlESV9FTVVMPW0KK0NPTkZJR19TTkRfU0VR X1ZJUk1JREk9bQorQ09ORklHX1NORF9NUFU0MDFfVUFSVD1tCitDT05GSUdfU05EX09QTDNfTElC PW0KK0NPTkZJR19TTkRfT1BMM19MSUJfU0VRPW0KK0NPTkZJR19TTkRfVlhfTElCPW0KK0NPTkZJ R19TTkRfQUM5N19DT0RFQz1tCitDT05GSUdfU05EX0RSSVZFUlM9eQorQ09ORklHX1NORF9EVU1N WT1tCitDT05GSUdfU05EX0FMT09QPW0KK0NPTkZJR19TTkRfVklSTUlEST1tCitDT05GSUdfU05E X01UUEFWPW0KK0NPTkZJR19TTkRfTVRTNjQ9bQorQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwPW0K K0NPTkZJR19TTkRfU0VSSUFMX0dFTkVSSUM9bQorQ09ORklHX1NORF9NUFU0MDE9bQorQ09ORklH X1NORF9QT1JUTUFOMlg0PW0KK0NPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFPXkKK0NPTkZJR19T TkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFQ9MAorQ09ORklHX1NORF9QQ0k9eQorQ09ORklHX1NO RF9BRDE4ODk9bQorQ09ORklHX1NORF9BVElJWFA9bQorQ09ORklHX1NORF9BVElJWFBfTU9ERU09 bQorQ09ORklHX1NORF9BVTg4MTA9bQorQ09ORklHX1NORF9BVTg4MjA9bQorQ09ORklHX1NORF9B VTg4MzA9bQorQ09ORklHX1NORF9BVzI9bQorQ09ORklHX1NORF9CVDg3WD1tCisjIENPTkZJR19T TkRfQlQ4N1hfT1ZFUkNMT0NLIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfQ0EwMTA2PW0KK0NPTkZJ R19TTkRfQ01JUENJPW0KK0NPTkZJR19TTkRfT1hZR0VOX0xJQj1tCitDT05GSUdfU05EX09YWUdF Tj1tCitDT05GSUdfU05EX0NTNDI4MT1tCitDT05GSUdfU05EX0NTNDZYWD1tCitDT05GSUdfU05E X0NTNDZYWF9ORVdfRFNQPXkKK0NPTkZJR19TTkRfQ1RYRkk9bQorQ09ORklHX1NORF9EQVJMQTIw PW0KK0NPTkZJR19TTkRfR0lOQTIwPW0KK0NPTkZJR19TTkRfTEFZTEEyMD1tCitDT05GSUdfU05E X0RBUkxBMjQ9bQorQ09ORklHX1NORF9HSU5BMjQ9bQorQ09ORklHX1NORF9MQVlMQTI0PW0KK0NP TkZJR19TTkRfTU9OQT1tCitDT05GSUdfU05EX01JQT1tCitDT05GSUdfU05EX0VDSE8zRz1tCitD T05GSUdfU05EX0lORElHTz1tCitDT05GSUdfU05EX0lORElHT0lPPW0KK0NPTkZJR19TTkRfSU5E SUdPREo9bQorQ09ORklHX1NORF9JTkRJR09JT1g9bQorQ09ORklHX1NORF9JTkRJR09ESlg9bQor Q09ORklHX1NORF9FTlMxMzcwPW0KK0NPTkZJR19TTkRfRU5TMTM3MT1tCitDT05GSUdfU05EX0ZN ODAxPW0KK0NPTkZJR19TTkRfRk04MDFfVEVBNTc1WF9CT09MPXkKK0NPTkZJR19TTkRfSERTUD1t CitDT05GSUdfU05EX0hEU1BNPW0KK0NPTkZJR19TTkRfSUNFMTcyND1tCitDT05GSUdfU05EX0lO VEVMOFgwPW0KK0NPTkZJR19TTkRfSU5URUw4WDBNPW0KK0NPTkZJR19TTkRfS09SRzEyMTI9bQor Q09ORklHX1NORF9MT0xBPW0KK0NPTkZJR19TTkRfTFg2NDY0RVM9bQorQ09ORklHX1NORF9NSVhB UlQ9bQorQ09ORklHX1NORF9OTTI1Nj1tCitDT05GSUdfU05EX1BDWEhSPW0KK0NPTkZJR19TTkRf UklQVElERT1tCitDT05GSUdfU05EX1JNRTMyPW0KK0NPTkZJR19TTkRfUk1FOTY9bQorQ09ORklH X1NORF9STUU5NjUyPW0KK0NPTkZJR19TTkRfVklBODJYWD1tCitDT05GSUdfU05EX1ZJQTgyWFhf TU9ERU09bQorQ09ORklHX1NORF9WSVJUVU9TTz1tCitDT05GSUdfU05EX1ZYMjIyPW0KK0NPTkZJ R19TTkRfWU1GUENJPW0KKworIworIyBIRC1BdWRpbworIworQ09ORklHX1NORF9IREE9bQorQ09O RklHX1NORF9IREFfR0VORVJJQ19MRURTPXkKK0NPTkZJR19TTkRfSERBX0lOVEVMPW0KK0NPTkZJ R19TTkRfSERBX0hXREVQPXkKK0NPTkZJR19TTkRfSERBX1JFQ09ORklHPXkKK0NPTkZJR19TTkRf SERBX0lOUFVUX0JFRVA9eQorQ09ORklHX1NORF9IREFfSU5QVVRfQkVFUF9NT0RFPTEKK0NPTkZJ R19TTkRfSERBX1BBVENIX0xPQURFUj15CitDT05GSUdfU05EX0hEQV9DT0RFQ19SRUFMVEVLPW0K K0NPTkZJR19TTkRfSERBX0NPREVDX0FOQUxPRz1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19TSUdN QVRFTD1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19WSUE9bQorQ09ORklHX1NORF9IREFfQ09ERUNf SERNST1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DSVJSVVM9bQorQ09ORklHX1NORF9IREFfQ09E RUNfQ1M4NDA5PW0KK0NPTkZJR19TTkRfSERBX0NPREVDX0NPTkVYQU5UPW0KK0NPTkZJR19TTkRf SERBX0NPREVDX0NBMDExMD1tCitDT05GSUdfU05EX0hEQV9DT0RFQ19DQTAxMzI9bQorQ09ORklH X1NORF9IREFfQ09ERUNfQ0EwMTMyX0RTUD15CitDT05GSUdfU05EX0hEQV9DT0RFQ19DTUVESUE9 bQorQ09ORklHX1NORF9IREFfQ09ERUNfU0kzMDU0PW0KK0NPTkZJR19TTkRfSERBX0dFTkVSSUM9 bQorQ09ORklHX1NORF9IREFfUE9XRVJfU0FWRV9ERUZBVUxUPTEKK0NPTkZJR19TTkRfSERBX0lO VEVMX0hETUlfU0lMRU5UX1NUUkVBTT15CisjIENPTkZJR19TTkRfSERBX0NUTF9ERVZfSUQgaXMg bm90IHNldAorIyBlbmQgb2YgSEQtQXVkaW8KKworQ09ORklHX1NORF9IREFfQ09SRT1tCitDT05G SUdfU05EX0hEQV9EU1BfTE9BREVSPXkKK0NPTkZJR19TTkRfSERBX0NPTVBPTkVOVD15CitDT05G SUdfU05EX0hEQV9FWFRfQ09SRT1tCitDT05GSUdfU05EX0hEQV9QUkVBTExPQ19TSVpFPTEwMjQK K0NPTkZJR19TTkRfSU5URUxfRFNQX0NPTkZJRz1tCitDT05GSUdfU05EX1NQST15CitDT05GSUdf U05EX1VTQj15CitDT05GSUdfU05EX1VTQl9BVURJTz1tCitDT05GSUdfU05EX1VTQl9BVURJT19V U0VfTUVESUFfQ09OVFJPTExFUj15CitDT05GSUdfU05EX1VTQl9VQTEwMT1tCitDT05GSUdfU05E X1VTQl9DQUlBUT1tCitDT05GSUdfU05EX1VTQl9DQUlBUV9JTlBVVD15CitDT05GSUdfU05EX1VT Ql82RklSRT1tCitDT05GSUdfU05EX1VTQl9ISUZBQ0U9bQorQ09ORklHX1NORF9CQ0QyMDAwPW0K K0NPTkZJR19TTkRfVVNCX0xJTkU2PW0KK0NPTkZJR19TTkRfVVNCX1BPRD1tCitDT05GSUdfU05E X1VTQl9QT0RIRD1tCitDT05GSUdfU05EX1VTQl9UT05FUE9SVD1tCitDT05GSUdfU05EX1VTQl9W QVJJQVg9bQorQ09ORklHX1NORF9GSVJFV0lSRT15CitDT05GSUdfU05EX0ZJUkVXSVJFX0xJQj1t CitDT05GSUdfU05EX0RJQ0U9bQorQ09ORklHX1NORF9PWEZXPW0KK0NPTkZJR19TTkRfSVNJR0hU PW0KK0NPTkZJR19TTkRfRklSRVdPUktTPW0KK0NPTkZJR19TTkRfQkVCT0I9bQorQ09ORklHX1NO RF9GSVJFV0lSRV9ESUdJMDBYPW0KK0NPTkZJR19TTkRfRklSRVdJUkVfVEFTQ0FNPW0KK0NPTkZJ R19TTkRfRklSRVdJUkVfTU9UVT1tCitDT05GSUdfU05EX0ZJUkVGQUNFPW0KK0NPTkZJR19TTkRf UENNQ0lBPXkKK0NPTkZJR19TTkRfVlhQT0NLRVQ9bQorQ09ORklHX1NORF9QREFVRElPQ0Y9bQor Q09ORklHX1NORF9TT0M9bQorQ09ORklHX1NORF9TT0NfQUM5N19CVVM9eQorQ09ORklHX1NORF9T T0NfR0VORVJJQ19ETUFFTkdJTkVfUENNPXkKK0NPTkZJR19TTkRfU09DX0NPTVBSRVNTPXkKK0NP TkZJR19TTkRfU09DX0FEST1tCitDT05GSUdfU05EX1NPQ19BRElfQVhJX0kyUz1tCitDT05GSUdf U05EX1NPQ19BRElfQVhJX1NQRElGPW0KK0NPTkZJR19TTkRfU09DX0FNRF9BQ1A9bQorQ09ORklH X1NORF9TT0NfQU1EX0NaX1JUNTY0NV9NQUNIPW0KK0NPTkZJR19TTkRfQU1EX0FDUF9DT05GSUc9 bQorIyBDT05GSUdfU05EX0FUTUVMX1NPQyBpcyBub3Qgc2V0CitDT05GSUdfU05EX0JDTTYzWFhf STJTX1dISVNUTEVSPW0KK0NPTkZJR19TTkRfREVTSUdOV0FSRV9JMlM9bQorQ09ORklHX1NORF9E RVNJR05XQVJFX1BDTT15CisKKyMKKyMgU29DIEF1ZGlvIGZvciBGcmVlc2NhbGUgQ1BVcworIwor CisjCisjIENvbW1vbiBTb0MgQXVkaW8gb3B0aW9ucyBmb3IgRnJlZXNjYWxlIENQVXM6CisjCitD T05GSUdfU05EX1NPQ19GU0xfQVNSQz1tCitDT05GSUdfU05EX1NPQ19GU0xfU0FJPW0KK0NPTkZJ R19TTkRfU09DX0ZTTF9NUVM9bQorQ09ORklHX1NORF9TT0NfRlNMX0FVRE1JWD1tCitDT05GSUdf U05EX1NPQ19GU0xfU1NJPW0KK0NPTkZJR19TTkRfU09DX0ZTTF9TUERJRj1tCitDT05GSUdfU05E X1NPQ19GU0xfRVNBST1tCitDT05GSUdfU05EX1NPQ19GU0xfTUlDRklMPW0KK0NPTkZJR19TTkRf U09DX0ZTTF9FQVNSQz1tCitDT05GSUdfU05EX1NPQ19GU0xfWENWUj1tCitDT05GSUdfU05EX1NP Q19GU0xfVVRJTFM9bQorQ09ORklHX1NORF9TT0NfRlNMX1JQTVNHPW0KK0NPTkZJR19TTkRfU09D X0lNWF9BVURNVVg9bQorIyBlbmQgb2YgU29DIEF1ZGlvIGZvciBGcmVlc2NhbGUgQ1BVcworCitD T05GSUdfU05EX0kyU19ISTYyMTBfSTJTPW0KKyMgQ09ORklHX1NORF9TT0NfSU1HIGlzIG5vdCBz ZXQKK0NPTkZJR19TTkRfU09DX01US19CVENWU0Q9bQorCisjCisjIFNvQyBBdWRpbyBzdXBwb3J0 IGZvciBSZW5lc2FzIFNvQ3MKKyMKK0NPTkZJR19TTkRfU09DX1NINF9GU0k9bQorQ09ORklHX1NO RF9TT0NfUkNBUj1tCitDT05GSUdfU05EX1NPQ19SWj1tCisjIGVuZCBvZiBTb0MgQXVkaW8gc3Vw cG9ydCBmb3IgUmVuZXNhcyBTb0NzCisKK0NPTkZJR19TTkRfU09DX1NPRl9UT1BMRVZFTD15CitD T05GSUdfU05EX1NPQ19TT0ZfUENJPW0KK0NPTkZJR19TTkRfU09DX1NPRl9PRj1tCitDT05GSUdf U05EX1NPQ19TVEFSRklWRT1tCitDT05GSUdfU05EX1NPQ19KSDcxMTBfVERNPW0KKworIworIyBT VE1pY3JvZWxlY3Ryb25pY3MgU1RNMzIgU09DIGF1ZGlvIHN1cHBvcnQKKyMKKyMgZW5kIG9mIFNU TWljcm9lbGVjdHJvbmljcyBTVE0zMiBTT0MgYXVkaW8gc3VwcG9ydAorCisjCisjIEFsbHdpbm5l ciBTb0MgQXVkaW8gc3VwcG9ydAorIworQ09ORklHX1NORF9TVU40SV9DT0RFQz1tCitDT05GSUdf U05EX1NVTjRJX0kyUz1tCitDT05GSUdfU05EX1NVTjRJX1NQRElGPW0KK0NPTkZJR19TTkRfU1VO NTBJX0RNSUM9bQorIyBlbmQgb2YgQWxsd2lubmVyIFNvQyBBdWRpbyBzdXBwb3J0CisKK0NPTkZJ R19TTkRfU09DX1hJTElOWF9JMlM9bQorQ09ORklHX1NORF9TT0NfWElMSU5YX0FVRElPX0ZPUk1B VFRFUj1tCitDT05GSUdfU05EX1NPQ19YSUxJTlhfU1BESUY9bQorQ09ORklHX1NORF9TT0NfWFRG UEdBX0kyUz1tCitDT05GSUdfU05EX1NPQ19JMkNfQU5EX1NQST1tCisKKyMKKyMgQ09ERUMgZHJp dmVycworIworQ09ORklHX1NORF9TT0NfV01fQURTUD1tCitDT05GSUdfU05EX1NPQ19BQzk3X0NP REVDPW0KK0NPTkZJR19TTkRfU09DX0FEQVVfVVRJTFM9bQorQ09ORklHX1NORF9TT0NfQURBVTEz NzI9bQorQ09ORklHX1NORF9TT0NfQURBVTEzNzJfSTJDPW0KK0NPTkZJR19TTkRfU09DX0FEQVUx MzcyX1NQST1tCitDT05GSUdfU05EX1NPQ19BREFVMTcwMT1tCitDT05GSUdfU05EX1NPQ19BREFV MTdYMT1tCitDT05GSUdfU05EX1NPQ19BREFVMTc2MT1tCitDT05GSUdfU05EX1NPQ19BREFVMTc2 MV9JMkM9bQorQ09ORklHX1NORF9TT0NfQURBVTE3NjFfU1BJPW0KK0NPTkZJR19TTkRfU09DX0FE QVU3MDAyPW0KK0NPTkZJR19TTkRfU09DX0FEQVU3MTE4PW0KK0NPTkZJR19TTkRfU09DX0FEQVU3 MTE4X0hXPW0KK0NPTkZJR19TTkRfU09DX0FEQVU3MTE4X0kyQz1tCitDT05GSUdfU05EX1NPQ19B SzQxMDQ9bQorQ09ORklHX1NORF9TT0NfQUs0MTE4PW0KK0NPTkZJR19TTkRfU09DX0FLNDM3NT1t CitDT05GSUdfU05EX1NPQ19BSzQ0NTg9bQorQ09ORklHX1NORF9TT0NfQUs0NTU0PW0KK0NPTkZJ R19TTkRfU09DX0FLNDYxMz1tCitDT05GSUdfU05EX1NPQ19BSzQ2NDI9bQorQ09ORklHX1NORF9T T0NfQUs1Mzg2PW0KK0NPTkZJR19TTkRfU09DX0FLNTU1OD1tCitDT05GSUdfU05EX1NPQ19BTEM1 NjIzPW0KK0NPTkZJR19TTkRfU09DX0FXODczOD1tCisjIENPTkZJR19TTkRfU09DX0FXODgzOTUg aXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfQkQyODYyMz1tCitDT05GSUdfU05EX1NPQ19CVF9T Q089bQorQ09ORklHX1NORF9TT0NfQ1BDQVA9bQorQ09ORklHX1NORF9TT0NfQ1MzNUwzMj1tCitD T05GSUdfU05EX1NPQ19DUzM1TDMzPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMMzQ9bQorQ09ORklH X1NORF9TT0NfQ1MzNUwzNT1tCitDT05GSUdfU05EX1NPQ19DUzM1TDM2PW0KK0NPTkZJR19TTkRf U09DX0NTMzVMNDFfTElCPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNDE9bQorQ09ORklHX1NORF9T T0NfQ1MzNUw0MV9TUEk9bQorQ09ORklHX1NORF9TT0NfQ1MzNUw0MV9JMkM9bQorQ09ORklHX1NO RF9TT0NfQ1MzNUw0NT1tCitDT05GSUdfU05EX1NPQ19DUzM1TDQ1X1NQST1tCitDT05GSUdfU05E X1NPQ19DUzM1TDQ1X0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzM1TDU2PW0KK0NPTkZJR19TTkRf U09DX0NTMzVMNTZfU0hBUkVEPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNTZfSTJDPW0KK0NPTkZJ R19TTkRfU09DX0NTMzVMNTZfU1BJPW0KK0NPTkZJR19TTkRfU09DX0NTMzVMNTZfU0RXPW0KK0NP TkZJR19TTkRfU09DX0NTNDJMNDJfQ09SRT1tCitDT05GSUdfU05EX1NPQ19DUzQyTDQyPW0KK0NP TkZJR19TTkRfU09DX0NTNDJMNDJfU0RXPW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNTE9bQorQ09O RklHX1NORF9TT0NfQ1M0Mkw1MV9JMkM9bQorQ09ORklHX1NORF9TT0NfQ1M0Mkw1Mj1tCitDT05G SUdfU05EX1NPQ19DUzQyTDU2PW0KK0NPTkZJR19TTkRfU09DX0NTNDJMNzM9bQorQ09ORklHX1NO RF9TT0NfQ1M0Mkw4Mz1tCitDT05GSUdfU05EX1NPQ19DUzQyMzQ9bQorQ09ORklHX1NORF9TT0Nf Q1M0MjY1PW0KK0NPTkZJR19TTkRfU09DX0NTNDI3MD1tCitDT05GSUdfU05EX1NPQ19DUzQyNzE9 bQorQ09ORklHX1NORF9TT0NfQ1M0MjcxX0kyQz1tCitDT05GSUdfU05EX1NPQ19DUzQyNzFfU1BJ PW0KK0NPTkZJR19TTkRfU09DX0NTNDJYWDg9bQorQ09ORklHX1NORF9TT0NfQ1M0MlhYOF9JMkM9 bQorQ09ORklHX1NORF9TT0NfQ1M0MzEzMD1tCitDT05GSUdfU05EX1NPQ19DUzQzNDE9bQorQ09O RklHX1NORF9TT0NfQ1M0MzQ5PW0KK0NPTkZJR19TTkRfU09DX0NTNTNMMzA9bQorQ09ORklHX1NO RF9TT0NfQ1gyMDcyWD1tCitDT05GSUdfU05EX1NPQ19EQTcyMTM9bQorQ09ORklHX1NORF9TT0Nf RE1JQz1tCitDT05GSUdfU05EX1NPQ19IRE1JX0NPREVDPW0KK0NPTkZJR19TTkRfU09DX0VTNzEz ND1tCitDT05GSUdfU05EX1NPQ19FUzcyNDE9bQorQ09ORklHX1NORF9TT0NfRVM4MzE2PW0KK0NP TkZJR19TTkRfU09DX0VTODMyNj1tCitDT05GSUdfU05EX1NPQ19FUzgzMjg9bQorQ09ORklHX1NO RF9TT0NfRVM4MzI4X0kyQz1tCitDT05GSUdfU05EX1NPQ19FUzgzMjhfU1BJPW0KK0NPTkZJR19T TkRfU09DX0dUTTYwMT1tCitDT05GSUdfU05EX1NPQ19IREE9bQorQ09ORklHX1NORF9TT0NfSUNT NDM0MzI9bQorQ09ORklHX1NORF9TT0NfSURUODIxMDM0PW0KKyMgQ09ORklHX1NORF9TT0NfSU5O T19SSzMwMzYgaXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfTE9DSE5BR0FSX1NDPW0KK0NPTkZJ R19TTkRfU09DX01BWDk4MDg4PW0KK0NPTkZJR19TTkRfU09DX01BWDk4MDkwPW0KK0NPTkZJR19T TkRfU09DX01BWDk4MzU3QT1tCitDT05GSUdfU05EX1NPQ19NQVg5ODUwND1tCitDT05GSUdfU05E X1NPQ19NQVg5ODY3PW0KK0NPTkZJR19TTkRfU09DX01BWDk4OTI3PW0KK0NPTkZJR19TTkRfU09D X01BWDk4NTIwPW0KK0NPTkZJR19TTkRfU09DX01BWDk4MzYzPW0KK0NPTkZJR19TTkRfU09DX01B WDk4MzczPW0KK0NPTkZJR19TTkRfU09DX01BWDk4MzczX0kyQz1tCitDT05GSUdfU05EX1NPQ19N QVg5ODM3M19TRFc9bQorQ09ORklHX1NORF9TT0NfTUFYOTgzOTA9bQorQ09ORklHX1NORF9TT0Nf TUFYOTgzOTY9bQorQ09ORklHX1NORF9TT0NfTUFYOTg2MD1tCisjIENPTkZJR19TTkRfU09DX01T TTg5MTZfV0NEX0FOQUxPRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09DX01TTTg5MTZfV0NE X0RJR0lUQUwgaXMgbm90IHNldAorQ09ORklHX1NORF9TT0NfUENNMTY4MT1tCitDT05GSUdfU05E X1NPQ19QQ00xNzg5PW0KK0NPTkZJR19TTkRfU09DX1BDTTE3ODlfSTJDPW0KK0NPTkZJR19TTkRf U09DX1BDTTE3OVg9bQorQ09ORklHX1NORF9TT0NfUENNMTc5WF9JMkM9bQorQ09ORklHX1NORF9T T0NfUENNMTc5WF9TUEk9bQorQ09ORklHX1NORF9TT0NfUENNMTg2WD1tCitDT05GSUdfU05EX1NP Q19QQ00xODZYX0kyQz1tCitDT05GSUdfU05EX1NPQ19QQ00xODZYX1NQST1tCitDT05GSUdfU05E X1NPQ19QQ00zMDYwPW0KK0NPTkZJR19TTkRfU09DX1BDTTMwNjBfSTJDPW0KK0NPTkZJR19TTkRf U09DX1BDTTMwNjBfU1BJPW0KKyMgQ09ORklHX1NORF9TT0NfUENNMzE2OEFfSTJDIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1NORF9TT0NfUENNMzE2OEFfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRf U09DX1BDTTUxMDJBPW0KK0NPTkZJR19TTkRfU09DX1BDTTUxMng9bQorQ09ORklHX1NORF9TT0Nf UENNNTEyeF9JMkM9bQorQ09ORklHX1NORF9TT0NfUENNNTEyeF9TUEk9bQorQ09ORklHX1NORF9T T0NfUEVCMjQ2Nj1tCitDT05GSUdfU05EX1NPQ19SSzMzMjg9bQorQ09ORklHX1NORF9TT0NfUks4 MTc9bQorQ09ORklHX1NORF9TT0NfUkw2MjMxPW0KK0NPTkZJR19TTkRfU09DX1JUMTMwOF9TRFc9 bQorQ09ORklHX1NORF9TT0NfUlQxMzE2X1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDEzMThfU0RX PW0KK0NPTkZJR19TTkRfU09DX1JUNTYxNj1tCitDT05GSUdfU05EX1NPQ19SVDU2MzE9bQorQ09O RklHX1NORF9TT0NfUlQ1NjQwPW0KK0NPTkZJR19TTkRfU09DX1JUNTY0NT1tCitDT05GSUdfU05E X1NPQ19SVDU2NTk9bQorQ09ORklHX1NORF9TT0NfUlQ1NjgyPW0KK0NPTkZJR19TTkRfU09DX1JU NTY4Ml9TRFc9bQorQ09ORklHX1NORF9TT0NfUlQ3MDA9bQorQ09ORklHX1NORF9TT0NfUlQ3MDBf U0RXPW0KK0NPTkZJR19TTkRfU09DX1JUNzExPW0KK0NPTkZJR19TTkRfU09DX1JUNzExX1NEVz1t CitDT05GSUdfU05EX1NPQ19SVDcxMV9TRENBX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDcxMl9T RENBX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDcxMl9TRENBX0RNSUNfU0RXPW0KK0NPTkZJR19T TkRfU09DX1JUNzE1PW0KK0NPTkZJR19TTkRfU09DX1JUNzE1X1NEVz1tCitDT05GSUdfU05EX1NP Q19SVDcxNV9TRENBX1NEVz1tCitDT05GSUdfU05EX1NPQ19SVDkxMjA9bQorQ09ORklHX1NORF9T T0NfU0RXX01PQ0tVUD1tCitDT05GSUdfU05EX1NPQ19TR1RMNTAwMD1tCitDT05GSUdfU05EX1NP Q19TSUdNQURTUD1tCitDT05GSUdfU05EX1NPQ19TSUdNQURTUF9JMkM9bQorQ09ORklHX1NORF9T T0NfU0lHTUFEU1BfUkVHTUFQPW0KK0NPTkZJR19TTkRfU09DX1NJTVBMRV9BTVBMSUZJRVI9bQor Q09ORklHX1NORF9TT0NfU0lNUExFX01VWD1tCitDT05GSUdfU05EX1NPQ19TTUExMzAzPW0KK0NP TkZJR19TTkRfU09DX1NQRElGPW0KK0NPTkZJR19TTkRfU09DX1NSQzRYWFhfSTJDPW0KK0NPTkZJ R19TTkRfU09DX1NSQzRYWFg9bQorQ09ORklHX1NORF9TT0NfU1NNMjMwNT1tCitDT05GSUdfU05E X1NPQ19TU00yNTE4PW0KK0NPTkZJR19TTkRfU09DX1NTTTI2MDI9bQorQ09ORklHX1NORF9TT0Nf U1NNMjYwMl9TUEk9bQorQ09ORklHX1NORF9TT0NfU1NNMjYwMl9JMkM9bQorQ09ORklHX1NORF9T T0NfU1NNNDU2Nz1tCitDT05GSUdfU05EX1NPQ19TVEEzMlg9bQorQ09ORklHX1NORF9TT0NfU1RB MzUwPW0KK0NPTkZJR19TTkRfU09DX1NUSV9TQVM9bQorQ09ORklHX1NORF9TT0NfVEFTMjU1Mj1t CitDT05GSUdfU05EX1NPQ19UQVMyNTYyPW0KK0NPTkZJR19TTkRfU09DX1RBUzI3NjQ9bQorQ09O RklHX1NORF9TT0NfVEFTMjc3MD1tCitDT05GSUdfU05EX1NPQ19UQVMyNzgwPW0KK0NPTkZJR19T TkRfU09DX1RBUzUwODY9bQorQ09ORklHX1NORF9TT0NfVEFTNTcxWD1tCitDT05GSUdfU05EX1NP Q19UQVM1NzIwPW0KK0NPTkZJR19TTkRfU09DX1RBUzU4MDVNPW0KK0NPTkZJR19TTkRfU09DX1RB UzY0MjQ9bQorQ09ORklHX1NORF9TT0NfVERBNzQxOT1tCitDT05GSUdfU05EX1NPQ19URkE5ODc5 PW0KK0NPTkZJR19TTkRfU09DX1RGQTk4OVg9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQURDM1hY WD1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMyMz1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBB SUMyM19JMkM9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMjNfU1BJPW0KK0NPTkZJR19TTkRf U09DX1RMVjMyMEFJQzMxWFg9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDMzJYND1tCitDT05G SUdfU05EX1NPQ19UTFYzMjBBSUMzMlg0X0kyQz1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMz Mlg0X1NQST1tCitDT05GSUdfU05EX1NPQ19UTFYzMjBBSUMzWD1tCitDT05GSUdfU05EX1NPQ19U TFYzMjBBSUMzWF9JMkM9bQorQ09ORklHX1NORF9TT0NfVExWMzIwQUlDM1hfU1BJPW0KK0NPTkZJ R19TTkRfU09DX1RMVjMyMEFEQ1gxNDA9bQorQ09ORklHX1NORF9TT0NfVFMzQTIyN0U9bQorQ09O RklHX1NORF9TT0NfVFNDUzQyWFg9bQorQ09ORklHX1NORF9TT0NfVFNDUzQ1ND1tCitDT05GSUdf U05EX1NPQ19VREExMzM0PW0KK0NPTkZJR19TTkRfU09DX1dDRF9NQkhDPW0KK0NPTkZJR19TTkRf U09DX1dDRDkzOFg9bQorQ09ORklHX1NORF9TT0NfV0NEOTM4WF9TRFc9bQorQ09ORklHX1NORF9T T0NfV004NTEwPW0KK0NPTkZJR19TTkRfU09DX1dNODUyMz1tCitDT05GSUdfU05EX1NPQ19XTTg1 MjQ9bQorQ09ORklHX1NORF9TT0NfV004NTgwPW0KK0NPTkZJR19TTkRfU09DX1dNODcxMT1tCitD T05GSUdfU05EX1NPQ19XTTg3Mjg9bQorQ09ORklHX1NORF9TT0NfV004NzMxPW0KK0NPTkZJR19T TkRfU09DX1dNODczMV9JMkM9bQorQ09ORklHX1NORF9TT0NfV004NzMxX1NQST1tCitDT05GSUdf U05EX1NPQ19XTTg3Mzc9bQorQ09ORklHX1NORF9TT0NfV004NzQxPW0KK0NPTkZJR19TTkRfU09D X1dNODc1MD1tCitDT05GSUdfU05EX1NPQ19XTTg3NTM9bQorQ09ORklHX1NORF9TT0NfV004Nzcw PW0KK0NPTkZJR19TTkRfU09DX1dNODc3Nj1tCitDT05GSUdfU05EX1NPQ19XTTg3ODI9bQorQ09O RklHX1NORF9TT0NfV004ODA0PW0KK0NPTkZJR19TTkRfU09DX1dNODgwNF9JMkM9bQorQ09ORklH X1NORF9TT0NfV004ODA0X1NQST1tCitDT05GSUdfU05EX1NPQ19XTTg5MDM9bQorQ09ORklHX1NO RF9TT0NfV004OTA0PW0KK0NPTkZJR19TTkRfU09DX1dNODk0MD1tCitDT05GSUdfU05EX1NPQ19X TTg5NjA9bQorQ09ORklHX1NORF9TT0NfV004OTYxPW0KK0NPTkZJR19TTkRfU09DX1dNODk2Mj1t CitDT05GSUdfU05EX1NPQ19XTTg5NzQ9bQorQ09ORklHX1NORF9TT0NfV004OTc4PW0KK0NPTkZJ R19TTkRfU09DX1dNODk4NT1tCitDT05GSUdfU05EX1NPQ19XU0E4ODFYPW0KK0NPTkZJR19TTkRf U09DX1dTQTg4M1g9bQorQ09ORklHX1NORF9TT0NfWkwzODA2MD1tCitDT05GSUdfU05EX1NPQ19N QVg5NzU5PW0KK0NPTkZJR19TTkRfU09DX01UNjM1MT1tCitDT05GSUdfU05EX1NPQ19NVDYzNTg9 bQorQ09ORklHX1NORF9TT0NfTVQ2NjYwPW0KK0NPTkZJR19TTkRfU09DX05BVTgzMTU9bQorQ09O RklHX1NORF9TT0NfTkFVODU0MD1tCitDT05GSUdfU05EX1NPQ19OQVU4ODEwPW0KK0NPTkZJR19T TkRfU09DX05BVTg4MjE9bQorQ09ORklHX1NORF9TT0NfTkFVODgyMj1tCitDT05GSUdfU05EX1NP Q19OQVU4ODI0PW0KK0NPTkZJR19TTkRfU09DX1RQQTYxMzBBMj1tCitDT05GSUdfU05EX1NPQ19M UEFTU19NQUNST19DT01NT049bQorQ09ORklHX1NORF9TT0NfTFBBU1NfV1NBX01BQ1JPPW0KK0NP TkZJR19TTkRfU09DX0xQQVNTX1ZBX01BQ1JPPW0KK0NPTkZJR19TTkRfU09DX0xQQVNTX1JYX01B Q1JPPW0KK0NPTkZJR19TTkRfU09DX0xQQVNTX1RYX01BQ1JPPW0KKyMgZW5kIG9mIENPREVDIGRy aXZlcnMKKworQ09ORklHX1NORF9TSU1QTEVfQ0FSRF9VVElMUz1tCitDT05GSUdfU05EX1NJTVBM RV9DQVJEPW0KK0NPTkZJR19TTkRfQVVESU9fR1JBUEhfQ0FSRD1tCitDT05GSUdfU05EX0FVRElP X0dSQVBIX0NBUkQyPW0KK0NPTkZJR19TTkRfQVVESU9fR1JBUEhfQ0FSRDJfQ1VTVE9NX1NBTVBM RT1tCitDT05GSUdfU05EX1RFU1RfQ09NUE9ORU5UPW0KK0NPTkZJR19TTkRfVklSVElPPW0KK0NP TkZJR19BQzk3X0JVUz1tCitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CitDT05G SUdfSElEX0JBVFRFUllfU1RSRU5HVEg9eQorQ09ORklHX0hJRFJBVz15CitDT05GSUdfVUhJRD1t CitDT05GSUdfSElEX0dFTkVSSUM9bQorCisjCisjIFNwZWNpYWwgSElEIGRyaXZlcnMKKyMKK0NP TkZJR19ISURfQTRURUNIPW0KK0NPTkZJR19ISURfQUNDVVRPVUNIPW0KK0NPTkZJR19ISURfQUNS VVg9bQorQ09ORklHX0hJRF9BQ1JVWF9GRj15CitDT05GSUdfSElEX0FQUExFPW0KK0NPTkZJR19I SURfQVBQTEVJUj1tCitDT05GSUdfSElEX0FTVVM9bQorQ09ORklHX0hJRF9BVVJFQUw9bQorQ09O RklHX0hJRF9CRUxLSU49bQorQ09ORklHX0hJRF9CRVRPUF9GRj1tCitDT05GSUdfSElEX0JJR0JF Tl9GRj1tCitDT05GSUdfSElEX0NIRVJSWT1tCitDT05GSUdfSElEX0NISUNPTlk9bQorQ09ORklH X0hJRF9DT1JTQUlSPW0KK0NPTkZJR19ISURfQ09VR0FSPW0KK0NPTkZJR19ISURfTUFDQUxMWT1t CitDT05GSUdfSElEX1BST0RJS0VZUz1tCisjIENPTkZJR19ISURfQ01FRElBIGlzIG5vdCBzZXQK K0NPTkZJR19ISURfQ1AyMTEyPW0KK0NPTkZJR19ISURfQ1JFQVRJVkVfU0IwNTQwPW0KK0NPTkZJ R19ISURfQ1lQUkVTUz1tCitDT05GSUdfSElEX0RSQUdPTlJJU0U9bQorQ09ORklHX0RSQUdPTlJJ U0VfRkY9eQorQ09ORklHX0hJRF9FTVNfRkY9bQorQ09ORklHX0hJRF9FTEFOPW0KK0NPTkZJR19I SURfRUxFQ09NPW0KK0NPTkZJR19ISURfRUxPPW0KK0NPTkZJR19ISURfRVZJU0lPTj1tCitDT05G SUdfSElEX0VaS0VZPW0KK0NPTkZJR19ISURfRlQyNjA9bQorQ09ORklHX0hJRF9HRU1CSVJEPW0K K0NPTkZJR19ISURfR0ZSTT1tCitDT05GSUdfSElEX0dMT1JJT1VTPW0KK0NPTkZJR19ISURfSE9M VEVLPW0KK0NPTkZJR19IT0xURUtfRkY9eQorQ09ORklHX0hJRF9WSVZBTERJX0NPTU1PTj1tCitD T05GSUdfSElEX1ZJVkFMREk9bQorQ09ORklHX0hJRF9HVDY4M1I9bQorQ09ORklHX0hJRF9LRVlU T1VDSD1tCitDT05GSUdfSElEX0tZRT1tCitDT05GSUdfSElEX1VDTE9HSUM9bQorQ09ORklHX0hJ RF9XQUxUT1A9bQorQ09ORklHX0hJRF9WSUVXU09OSUM9bQorQ09ORklHX0hJRF9WUkMyPW0KK0NP TkZJR19ISURfWElBT01JPW0KK0NPTkZJR19ISURfR1lSQVRJT049bQorQ09ORklHX0hJRF9JQ0FE RT1tCitDT05GSUdfSElEX0lURT1tCitDT05GSUdfSElEX0pBQlJBPW0KK0NPTkZJR19ISURfVFdJ TkhBTj1tCitDT05GSUdfSElEX0tFTlNJTkdUT049bQorQ09ORklHX0hJRF9MQ1BPV0VSPW0KK0NP TkZJR19ISURfTEVEPW0KK0NPTkZJR19ISURfTEVOT1ZPPW0KK0NPTkZJR19ISURfTEVUU0tFVENI PW0KK0NPTkZJR19ISURfTE9HSVRFQ0g9bQorQ09ORklHX0hJRF9MT0dJVEVDSF9ESj1tCitDT05G SUdfSElEX0xPR0lURUNIX0hJRFBQPW0KK0NPTkZJR19MT0dJVEVDSF9GRj15CitDT05GSUdfTE9H SVJVTUJMRVBBRDJfRkY9eQorQ09ORklHX0xPR0lHOTQwX0ZGPXkKK0NPTkZJR19MT0dJV0hFRUxT X0ZGPXkKK0NPTkZJR19ISURfTUFHSUNNT1VTRT1tCitDT05GSUdfSElEX01BTFRST049bQorQ09O RklHX0hJRF9NQVlGTEFTSD1tCitDT05GSUdfSElEX01FR0FXT1JMRF9GRj1tCitDT05GSUdfSElE X1JFRFJBR09OPW0KK0NPTkZJR19ISURfTUlDUk9TT0ZUPW0KK0NPTkZJR19ISURfTU9OVEVSRVk9 bQorQ09ORklHX0hJRF9NVUxUSVRPVUNIPW0KK0NPTkZJR19ISURfTklOVEVORE89bQorQ09ORklH X05JTlRFTkRPX0ZGPXkKK0NPTkZJR19ISURfTlRJPW0KK0NPTkZJR19ISURfTlRSSUc9bQorQ09O RklHX0hJRF9PUlRFSz1tCitDT05GSUdfSElEX1BBTlRIRVJMT1JEPW0KK0NPTkZJR19QQU5USEVS TE9SRF9GRj15CitDT05GSUdfSElEX1BFTk1PVU5UPW0KK0NPTkZJR19ISURfUEVUQUxZTlg9bQor Q09ORklHX0hJRF9QSUNPTENEPW0KK0NPTkZJR19ISURfUElDT0xDRF9GQj15CitDT05GSUdfSElE X1BJQ09MQ0RfQkFDS0xJR0hUPXkKK0NPTkZJR19ISURfUElDT0xDRF9MQ0Q9eQorQ09ORklHX0hJ RF9QSUNPTENEX0xFRFM9eQorQ09ORklHX0hJRF9QSUNPTENEX0NJUj15CitDT05GSUdfSElEX1BM QU5UUk9OSUNTPW0KK0NPTkZJR19ISURfUExBWVNUQVRJT049bQorQ09ORklHX1BMQVlTVEFUSU9O X0ZGPXkKK0NPTkZJR19ISURfUFhSQz1tCitDT05GSUdfSElEX1JBWkVSPW0KK0NPTkZJR19ISURf UFJJTUFYPW0KK0NPTkZJR19ISURfUkVUUk9ERT1tCitDT05GSUdfSElEX1JPQ0NBVD1tCitDT05G SUdfSElEX1NBSVRFSz1tCitDT05GSUdfSElEX1NBTVNVTkc9bQorQ09ORklHX0hJRF9TRU1JVEVL PW0KK0NPTkZJR19ISURfU0lHTUFNSUNSTz1tCitDT05GSUdfSElEX1NPTlk9bQorQ09ORklHX1NP TllfRkY9eQorQ09ORklHX0hJRF9TUEVFRExJTks9bQorQ09ORklHX0hJRF9TVEVBTT1tCitDT05G SUdfU1RFQU1fRkY9eQorQ09ORklHX0hJRF9TVEVFTFNFUklFUz1tCitDT05GSUdfSElEX1NVTlBM VVM9bQorQ09ORklHX0hJRF9STUk9bQorQ09ORklHX0hJRF9HUkVFTkFTSUE9bQorQ09ORklHX0dS RUVOQVNJQV9GRj15CitDT05GSUdfSElEX1NNQVJUSk9ZUExVUz1tCitDT05GSUdfU01BUlRKT1lQ TFVTX0ZGPXkKK0NPTkZJR19ISURfVElWTz1tCitDT05GSUdfSElEX1RPUFNFRUQ9bQorQ09ORklH X0hJRF9UT1BSRT1tCitDT05GSUdfSElEX1RISU5HTT1tCitDT05GSUdfSElEX1RIUlVTVE1BU1RF Uj1tCitDT05GSUdfVEhSVVNUTUFTVEVSX0ZGPXkKK0NPTkZJR19ISURfVURSQVdfUFMzPW0KK0NP TkZJR19ISURfVTJGWkVSTz1tCitDT05GSUdfSElEX1dBQ09NPW0KK0NPTkZJR19ISURfV0lJTU9U RT1tCitDT05GSUdfSElEX1hJTk1PPW0KK0NPTkZJR19ISURfWkVST1BMVVM9bQorQ09ORklHX1pF Uk9QTFVTX0ZGPXkKK0NPTkZJR19ISURfWllEQUNST049bQorQ09ORklHX0hJRF9TRU5TT1JfSFVC PW0KK0NPTkZJR19ISURfU0VOU09SX0NVU1RPTV9TRU5TT1I9bQorQ09ORklHX0hJRF9BTFBTPW0K K0NPTkZJR19ISURfTUNQMjIyMT1tCisjIGVuZCBvZiBTcGVjaWFsIEhJRCBkcml2ZXJzCisKKyMK KyMgSElELUJQRiBzdXBwb3J0CisjCisjIGVuZCBvZiBISUQtQlBGIHN1cHBvcnQKKworIworIyBV U0IgSElEIHN1cHBvcnQKKyMKK0NPTkZJR19VU0JfSElEPW0KK0NPTkZJR19ISURfUElEPXkKK0NP TkZJR19VU0JfSElEREVWPXkKKworIworIyBVU0IgSElEIEJvb3QgUHJvdG9jb2wgZHJpdmVycwor IworIyBDT05GSUdfVVNCX0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9VU0UgaXMgbm90 IHNldAorIyBlbmQgb2YgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMgZW5kIG9mIFVT QiBISUQgc3VwcG9ydAorCitDT05GSUdfSTJDX0hJRD1tCitDT05GSUdfSTJDX0hJRF9PRj1tCitD T05GSUdfSTJDX0hJRF9PRl9FTEFOPW0KK0NPTkZJR19JMkNfSElEX09GX0dPT0RJWD1tCitDT05G SUdfSTJDX0hJRF9DT1JFPW0KK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKK0NPTkZJ R19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0NPTU1PTj1tCitDT05GSUdfVVNCX0xFRF9UUklH PXkKK0NPTkZJR19VU0JfVUxQSV9CVVM9bQorQ09ORklHX1VTQl9DT05OX0dQSU89bQorQ09ORklH X1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQj1tCitDT05GSUdfVVNCX1BDST15CitDT05G SUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTPXkKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBv cHRpb25zCisjCitDT05GSUdfVVNCX0RFRkFVTFRfUEVSU0lTVD15CisjIENPTkZJR19VU0JfRkVX X0lOSVRfUkVUUklFUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMg bm90IHNldAorQ09ORklHX1VTQl9PVEc9eQorIyBDT05GSUdfVVNCX09UR19QUk9EVUNUTElTVCBp cyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0RJU0FCTEVfRVhURVJOQUxfSFVCIGlzIG5vdCBz ZXQKK0NPTkZJR19VU0JfT1RHX0ZTTT1tCitDT05GSUdfVVNCX0xFRFNfVFJJR0dFUl9VU0JQT1JU PW0KK0NPTkZJR19VU0JfQVVUT1NVU1BFTkRfREVMQVk9MgorQ09ORklHX1VTQl9NT049bQorCisj CisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1VTQl9DNjdYMDBfSENE PW0KK0NPTkZJR19VU0JfWEhDSV9IQ0Q9bQorIyBDT05GSUdfVVNCX1hIQ0lfREJHQ0FQIGlzIG5v dCBzZXQKK0NPTkZJR19VU0JfWEhDSV9QQ0k9bQorQ09ORklHX1VTQl9YSENJX1BDSV9SRU5FU0FT PW0KK0NPTkZJR19VU0JfWEhDSV9QTEFURk9STT1tCitDT05GSUdfVVNCX1hIQ0lfUkNBUj1tCitD T05GSUdfVVNCX0VIQ0lfSENEPW0KK0NPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CitDT05G SUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQ9eQorQ09ORklHX1VTQl9FSENJX1BDST1tCitDT05GSUdf VVNCX0VIQ0lfRlNMPW0KK0NPTkZJR19VU0JfRUhDSV9IQ0RfUExBVEZPUk09bQorQ09ORklHX1VT Ql9PWFUyMTBIUF9IQ0Q9bQorQ09ORklHX1VTQl9JU1AxMTZYX0hDRD1tCitDT05GSUdfVVNCX01B WDM0MjFfSENEPW0KK0NPTkZJR19VU0JfT0hDSV9IQ0Q9bQorQ09ORklHX1VTQl9PSENJX0hDRF9Q Q0k9bQorQ09ORklHX1VTQl9PSENJX0hDRF9TU0I9eQorQ09ORklHX1VTQl9PSENJX0hDRF9QTEFU Rk9STT1tCitDT05GSUdfVVNCX1VIQ0lfSENEPW0KK0NPTkZJR19VU0JfU0w4MTFfSENEPW0KKyMg Q09ORklHX1VTQl9TTDgxMV9IQ0RfSVNPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU0w4MTFfQ1M9 bQorQ09ORklHX1VTQl9SOEE2NjU5N19IQ0Q9bQorQ09ORklHX1VTQl9SRU5FU0FTX1VTQkhTX0hD RD1tCitDT05GSUdfVVNCX0hDRF9CQ01BPW0KK0NPTkZJR19VU0JfSENEX1NTQj1tCisjIENPTkZJ R19VU0JfSENEX1RFU1RfTU9ERSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1JFTkVTQVNfVVNCSFM9 bQorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworQ09ORklHX1VTQl9BQ009bQor Q09ORklHX1VTQl9QUklOVEVSPW0KK0NPTkZJR19VU0JfV0RNPW0KK0NPTkZJR19VU0JfVE1DPW0K KworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBkZXBlbmRzIG9uIFNDU0kgYnV0IEJMS19ERVZfU0Qg bWF5CisjCisKKyMKKyMgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBt b3JlIGluZm8KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT1tCisjIENPTkZJR19VU0JfU1RPUkFHRV9E RUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfUkVBTFRFSz1tCitDT05GSUdfUkVB TFRFS19BVVRPUE09eQorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9bQorQ09ORklHX1VTQl9T VE9SQUdFX0ZSRUVDT009bQorQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMD1tCitDT05GSUdfVVNC X1NUT1JBR0VfVVNCQVQ9bQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOT1tCitDT05GSUdfVVNC X1NUT1JBR0VfU0REUjU1PW0KK0NPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVD1tCitDT05GSUdf VVNCX1NUT1JBR0VfQUxBVURBPW0KK0NPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSD1tCitDT05G SUdfVVNCX1NUT1JBR0VfS0FSTUE9bQorQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0I9 bQorQ09ORklHX1VTQl9TVE9SQUdFX0VORV9VQjYyNTA9bQorQ09ORklHX1VTQl9VQVM9bQorCisj CisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKK0NPTkZJR19VU0JfTURDODAwPW0KK0NPTkZJR19V U0JfTUlDUk9URUs9bQorQ09ORklHX1VTQklQX0NPUkU9bQorQ09ORklHX1VTQklQX1ZIQ0lfSENE PW0KK0NPTkZJR19VU0JJUF9WSENJX0hDX1BPUlRTPTgKK0NPTkZJR19VU0JJUF9WSENJX05SX0hD Uz0xCitDT05GSUdfVVNCSVBfSE9TVD1tCitDT05GSUdfVVNCSVBfVlVEQz1tCisjIENPTkZJR19V U0JJUF9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIGR1YWwtbW9kZSBjb250cm9sbGVyIGRy aXZlcnMKKyMKK0NPTkZJR19VU0JfQ0ROU19TVVBQT1JUPW0KK0NPTkZJR19VU0JfQ0ROU19IT1NU PXkKK0NPTkZJR19VU0JfQ0ROUzM9bQorQ09ORklHX1VTQl9DRE5TM19HQURHRVQ9eQorQ09ORklH X1VTQl9DRE5TM19IT1NUPXkKK0NPTkZJR19VU0JfQ0ROUzNfU1RBUkZJVkU9bQorQ09ORklHX1VT Ql9NVVNCX0hEUkM9bQorQ09ORklHX1VTQl9NVVNCX0hPU1Q9eQorIyBDT05GSUdfVVNCX01VU0Jf R0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NVVNCX0RVQUxfUk9MRSBpcyBub3Qgc2V0 CisKKyMKKyMgUGxhdGZvcm0gR2x1ZSBMYXllcgorIworQ09ORklHX1VTQl9NVVNCX1NVTlhJPW0K K0NPTkZJR19VU0JfTVVTQl9QT0xBUkZJUkVfU09DPW0KKworIworIyBNVVNCIERNQSBtb2RlCisj CitDT05GSUdfTVVTQl9QSU9fT05MWT15CitDT05GSUdfVVNCX0RXQzM9bQorQ09ORklHX1VTQl9E V0MzX1VMUEk9eQorIyBDT05GSUdfVVNCX0RXQzNfSE9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19V U0JfRFdDM19HQURHRVQgaXMgbm90IHNldAorQ09ORklHX1VTQl9EV0MzX0RVQUxfUk9MRT15CisK KyMKKyMgUGxhdGZvcm0gR2x1ZSBEcml2ZXIgU3VwcG9ydAorIworQ09ORklHX1VTQl9EV0MzX0hB UFM9bQorQ09ORklHX1VTQl9EV0MzX09GX1NJTVBMRT1tCitDT05GSUdfVVNCX0RXQzI9bQorIyBD T05GSUdfVVNCX0RXQzJfSE9TVCBpcyBub3Qgc2V0CisKKyMKKyMgR2FkZ2V0L0R1YWwtcm9sZSBt b2RlIHJlcXVpcmVzIFVTQiBHYWRnZXQgc3VwcG9ydCB0byBiZSBlbmFibGVkCisjCisjIENPTkZJ R19VU0JfRFdDMl9QRVJJUEhFUkFMIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRFdDMl9EVUFMX1JP TEU9eQorQ09ORklHX1VTQl9EV0MyX1BDST1tCisjIENPTkZJR19VU0JfRFdDMl9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19VU0JfRFdDMl9UUkFDS19NSVNTRURfU09GUyBpcyBub3Qgc2V0CitD T05GSUdfVVNCX0NISVBJREVBPW0KKyMgQ09ORklHX1VTQl9DSElQSURFQV9VREMgaXMgbm90IHNl dAorQ09ORklHX1VTQl9DSElQSURFQV9IT1NUPXkKK0NPTkZJR19VU0JfQ0hJUElERUFfUENJPW0K K0NPTkZJR19VU0JfQ0hJUElERUFfTVNNPW0KK0NPTkZJR19VU0JfQ0hJUElERUFfSU1YPW0KK0NP TkZJR19VU0JfQ0hJUElERUFfR0VORVJJQz1tCitDT05GSUdfVVNCX0NISVBJREVBX1RFR1JBPW0K K0NPTkZJR19VU0JfSVNQMTc2MD1tCitDT05GSUdfVVNCX0lTUDE3NjBfSENEPXkKK0NPTkZJR19V U0JfSVNQMTc2MF9IT1NUX1JPTEU9eQorIyBDT05GSUdfVVNCX0lTUDE3NjBfR0FER0VUX1JPTEUg aXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfRFVBTF9ST0xFIGlzIG5vdCBzZXQKKwor IworIyBVU0IgcG9ydCBkcml2ZXJzCisjCitDT05GSUdfVVNCX1NFUklBTD1tCitDT05GSUdfVVNC X1NFUklBTF9HRU5FUklDPXkKK0NPTkZJR19VU0JfU0VSSUFMX1NJTVBMRT1tCitDT05GSUdfVVNC X1NFUklBTF9BSVJDQUJMRT1tCitDT05GSUdfVVNCX1NFUklBTF9BUkszMTE2PW0KK0NPTkZJR19V U0JfU0VSSUFMX0JFTEtJTj1tCitDT05GSUdfVVNCX1NFUklBTF9DSDM0MT1tCitDT05GSUdfVVNC X1NFUklBTF9XSElURUhFQVQ9bQorQ09ORklHX1VTQl9TRVJJQUxfRElHSV9BQ0NFTEVQT1JUPW0K K0NPTkZJR19VU0JfU0VSSUFMX0NQMjEwWD1tCitDT05GSUdfVVNCX1NFUklBTF9DWVBSRVNTX004 PW0KK0NPTkZJR19VU0JfU0VSSUFMX0VNUEVHPW0KK0NPTkZJR19VU0JfU0VSSUFMX0ZURElfU0lP PW0KK0NPTkZJR19VU0JfU0VSSUFMX1ZJU09SPW0KK0NPTkZJR19VU0JfU0VSSUFMX0lQQVE9bQor Q09ORklHX1VTQl9TRVJJQUxfSVI9bQorQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlQ9bQorQ09O RklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEk9bQorQ09ORklHX1VTQl9TRVJJQUxfRjgxMjMyPW0K K0NPTkZJR19VU0JfU0VSSUFMX0Y4MTUzWD1tCitDT05GSUdfVVNCX1NFUklBTF9HQVJNSU49bQor Q09ORklHX1VTQl9TRVJJQUxfSVBXPW0KK0NPTkZJR19VU0JfU0VSSUFMX0lVVT1tCitDT05GSUdf VVNCX1NFUklBTF9LRVlTUEFOX1BEQT1tCitDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOPW0KK0NP TkZJR19VU0JfU0VSSUFMX0tMU0k9bQorQ09ORklHX1VTQl9TRVJJQUxfS09CSUxfU0NUPW0KK0NP TkZJR19VU0JfU0VSSUFMX01DVF9VMjMyPW0KK0NPTkZJR19VU0JfU0VSSUFMX01FVFJPPW0KK0NP TkZJR19VU0JfU0VSSUFMX01PUzc3MjA9bQorQ09ORklHX1VTQl9TRVJJQUxfTU9TNzcxNV9QQVJQ T1JUPXkKK0NPTkZJR19VU0JfU0VSSUFMX01PUzc4NDA9bQorQ09ORklHX1VTQl9TRVJJQUxfTVhV UE9SVD1tCitDT05GSUdfVVNCX1NFUklBTF9OQVZNQU49bQorQ09ORklHX1VTQl9TRVJJQUxfUEwy MzAzPW0KK0NPTkZJR19VU0JfU0VSSUFMX09USTY4NTg9bQorQ09ORklHX1VTQl9TRVJJQUxfUUNB VVg9bQorQ09ORklHX1VTQl9TRVJJQUxfUVVBTENPTU09bQorQ09ORklHX1VTQl9TRVJJQUxfU1BD UDhYNT1tCitDT05GSUdfVVNCX1NFUklBTF9TQUZFPW0KK0NPTkZJR19VU0JfU0VSSUFMX1NBRkVf UEFEREVEPXkKK0NPTkZJR19VU0JfU0VSSUFMX1NJRVJSQVdJUkVMRVNTPW0KK0NPTkZJR19VU0Jf U0VSSUFMX1NZTUJPTD1tCitDT05GSUdfVVNCX1NFUklBTF9UST1tCitDT05GSUdfVVNCX1NFUklB TF9DWUJFUkpBQ0s9bQorQ09ORklHX1VTQl9TRVJJQUxfV1dBTj1tCitDT05GSUdfVVNCX1NFUklB TF9PUFRJT049bQorQ09ORklHX1VTQl9TRVJJQUxfT01OSU5FVD1tCitDT05GSUdfVVNCX1NFUklB TF9PUFRJQ09OPW0KK0NPTkZJR19VU0JfU0VSSUFMX1hTRU5TX01UPW0KK0NPTkZJR19VU0JfU0VS SUFMX1dJU0hCT05FPW0KK0NPTkZJR19VU0JfU0VSSUFMX1NTVTEwMD1tCitDT05GSUdfVVNCX1NF UklBTF9RVDI9bQorQ09ORklHX1VTQl9TRVJJQUxfVVBENzhGMDczMD1tCitDT05GSUdfVVNCX1NF UklBTF9YUj1tCitDT05GSUdfVVNCX1NFUklBTF9ERUJVRz1tCisKKyMKKyMgVVNCIE1pc2NlbGxh bmVvdXMgZHJpdmVycworIworQ09ORklHX1VTQl9VU1M3MjA9bQorQ09ORklHX1VTQl9FTUk2Mj1t CitDT05GSUdfVVNCX0VNSTI2PW0KK0NPTkZJR19VU0JfQURVVFVYPW0KK0NPTkZJR19VU0JfU0VW U0VHPW0KK0NPTkZJR19VU0JfTEVHT1RPV0VSPW0KK0NPTkZJR19VU0JfTENEPW0KK0NPTkZJR19V U0JfQ1lQUkVTU19DWTdDNjM9bQorQ09ORklHX1VTQl9DWVRIRVJNPW0KK0NPTkZJR19VU0JfSURN T1VTRT1tCitDT05GSUdfVVNCX0FQUExFRElTUExBWT1tCitDT05GSUdfQVBQTEVfTUZJX0ZBU1RD SEFSR0U9bQorQ09ORklHX1VTQl9TSVNVU0JWR0E9bQorQ09ORklHX1VTQl9MRD1tCitDT05GSUdf VVNCX1RSQU5DRVZJQlJBVE9SPW0KK0NPTkZJR19VU0JfSU9XQVJSSU9SPW0KKyMgQ09ORklHX1VT Ql9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhTRVRfVEVTVF9GSVhUVVJFPW0KK0NPTkZJ R19VU0JfSVNJR0hURlc9bQorQ09ORklHX1VTQl9ZVVJFWD1tCitDT05GSUdfVVNCX0VaVVNCX0ZY Mj1tCitDT05GSUdfVVNCX0hVQl9VU0IyNTFYQj1tCitDT05GSUdfVVNCX0hTSUNfVVNCMzUwMz1t CitDT05GSUdfVVNCX0hTSUNfVVNCNDYwND1tCitDT05GSUdfVVNCX0xJTktfTEFZRVJfVEVTVD1t CisjIENPTkZJR19VU0JfQ0hBT1NLRVkgaXMgbm90IHNldAorQ09ORklHX1VTQl9PTkJPQVJEX0hV Qj1tCitDT05GSUdfVVNCX0FUTT1tCitDT05GSUdfVVNCX1NQRUVEVE9VQ0g9bQorQ09ORklHX1VT Ql9DWEFDUlU9bQorQ09ORklHX1VTQl9VRUFHTEVBVE09bQorQ09ORklHX1VTQl9YVVNCQVRNPW0K KworIworIyBVU0IgUGh5c2ljYWwgTGF5ZXIgZHJpdmVycworIworQ09ORklHX1VTQl9QSFk9eQor Q09ORklHX05PUF9VU0JfWENFSVY9bQorIyBDT05GSUdfVVNCX0dQSU9fVkJVUyBpcyBub3Qgc2V0 CitDT05GSUdfVVNCX0lTUDEzMDE9bQorIyBlbmQgb2YgVVNCIFBoeXNpY2FsIExheWVyIGRyaXZl cnMKKworQ09ORklHX1VTQl9HQURHRVQ9bQorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBu b3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKKyMgQ09O RklHX1VTQl9HQURHRVRfREVCVUdfRlMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfVkJV U19EUkFXPTIKK0NPTkZJR19VU0JfR0FER0VUX1NUT1JBR0VfTlVNX0JVRkZFUlM9MgorQ09ORklH X1VfU0VSSUFMX0NPTlNPTEU9eQorCisjCisjIFVTQiBQZXJpcGhlcmFsIENvbnRyb2xsZXIKKyMK KyMgQ09ORklHX1VTQl9HUl9VREMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3IGlz IG5vdCBzZXQKK0NPTkZJR19VU0JfUkVORVNBU19VU0JIU19VREM9bQorQ09ORklHX1VTQl9SRU5F U0FTX1VTQjM9bQorQ09ORklHX1VTQl9SRU5FU0FTX1VTQkY9bQorIyBDT05GSUdfVVNCX1BYQTI3 WCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTVZfVURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VT Ql9NVl9VM0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9TTlBfQ09SRT1tCitDT05GSUdfVVNCX1NO UF9VRENfUExBVD1tCisjIENPTkZJR19VU0JfTTY2NTkyIGlzIG5vdCBzZXQKK0NPTkZJR19VU0Jf QkRDX1VEQz1tCisjIENPTkZJR19VU0JfQU1ENTUzNlVEQyBpcyBub3Qgc2V0CisjIENPTkZJR19V U0JfTkVUMjI3MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTkVUMjI4MCBpcyBub3Qgc2V0Cisj IENPTkZJR19VU0JfR09LVSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRUcyMFQgaXMgbm90IHNl dAorQ09ORklHX1VTQl9HQURHRVRfWElMSU5YPW0KK0NPTkZJR19VU0JfTUFYMzQyMF9VREM9bQor IyBDT05GSUdfVVNCX0RVTU1ZX0hDRCBpcyBub3Qgc2V0CisjIGVuZCBvZiBVU0IgUGVyaXBoZXJh bCBDb250cm9sbGVyCisKK0NPTkZJR19VU0JfTElCQ09NUE9TSVRFPW0KK0NPTkZJR19VU0JfRl9B Q009bQorQ09ORklHX1VTQl9GX1NTX0xCPW0KK0NPTkZJR19VU0JfVV9TRVJJQUw9bQorQ09ORklH X1VTQl9VX0VUSEVSPW0KK0NPTkZJR19VU0JfVV9BVURJTz1tCitDT05GSUdfVVNCX0ZfU0VSSUFM PW0KK0NPTkZJR19VU0JfRl9PQkVYPW0KK0NPTkZJR19VU0JfRl9OQ009bQorQ09ORklHX1VTQl9G X0VDTT1tCitDT05GSUdfVVNCX0ZfUEhPTkVUPW0KK0NPTkZJR19VU0JfRl9FRU09bQorQ09ORklH X1VTQl9GX1NVQlNFVD1tCitDT05GSUdfVVNCX0ZfUk5ESVM9bQorQ09ORklHX1VTQl9GX01BU1Nf U1RPUkFHRT1tCitDT05GSUdfVVNCX0ZfRlM9bQorQ09ORklHX1VTQl9GX1VBQzE9bQorQ09ORklH X1VTQl9GX1VBQzI9bQorQ09ORklHX1VTQl9GX1VWQz1tCitDT05GSUdfVVNCX0ZfTUlEST1tCitD T05GSUdfVVNCX0ZfSElEPW0KK0NPTkZJR19VU0JfRl9QUklOVEVSPW0KK0NPTkZJR19VU0JfRl9U Q009bQorQ09ORklHX1VTQl9DT05GSUdGUz1tCitDT05GSUdfVVNCX0NPTkZJR0ZTX1NFUklBTD15 CitDT05GSUdfVVNCX0NPTkZJR0ZTX0FDTT15CitDT05GSUdfVVNCX0NPTkZJR0ZTX09CRVg9eQor Q09ORklHX1VTQl9DT05GSUdGU19OQ009eQorQ09ORklHX1VTQl9DT05GSUdGU19FQ009eQorQ09O RklHX1VTQl9DT05GSUdGU19FQ01fU1VCU0VUPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfUk5ESVM9 eQorQ09ORklHX1VTQl9DT05GSUdGU19FRU09eQorQ09ORklHX1VTQl9DT05GSUdGU19QSE9ORVQ9 eQorQ09ORklHX1VTQl9DT05GSUdGU19NQVNTX1NUT1JBR0U9eQorQ09ORklHX1VTQl9DT05GSUdG U19GX0xCX1NTPXkKK0NPTkZJR19VU0JfQ09ORklHRlNfRl9GUz15CitDT05GSUdfVVNCX0NPTkZJ R0ZTX0ZfVUFDMT15CisjIENPTkZJR19VU0JfQ09ORklHRlNfRl9VQUMxX0xFR0FDWSBpcyBub3Qg c2V0CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfVUFDMj15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0Zf TUlEST15CitDT05GSUdfVVNCX0NPTkZJR0ZTX0ZfSElEPXkKK0NPTkZJR19VU0JfQ09ORklHRlNf Rl9VVkM9eQorQ09ORklHX1VTQl9DT05GSUdGU19GX1BSSU5URVI9eQorQ09ORklHX1VTQl9DT05G SUdGU19GX1RDTT15CisKKyMKKyMgVVNCIEdhZGdldCBwcmVjb21wb3NlZCBjb25maWd1cmF0aW9u cworIworIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9BVURJTz1tCisj IENPTkZJR19HQURHRVRfVUFDMSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0VUSD1tCitDT05GSUdf VVNCX0VUSF9STkRJUz15CitDT05GSUdfVVNCX0VUSF9FRU09eQorQ09ORklHX1VTQl9HX05DTT1t CitDT05GSUdfVVNCX0dBREdFVEZTPW0KK0NPTkZJR19VU0JfRlVOQ1RJT05GUz1tCitDT05GSUdf VVNCX0ZVTkNUSU9ORlNfRVRIPXkKK0NPTkZJR19VU0JfRlVOQ1RJT05GU19STkRJUz15CitDT05G SUdfVVNCX0ZVTkNUSU9ORlNfR0VORVJJQz15CitDT05GSUdfVVNCX01BU1NfU1RPUkFHRT1tCitD T05GSUdfVVNCX0dBREdFVF9UQVJHRVQ9bQorQ09ORklHX1VTQl9HX1NFUklBTD1tCitDT05GSUdf VVNCX01JRElfR0FER0VUPW0KK0NPTkZJR19VU0JfR19QUklOVEVSPW0KK0NPTkZJR19VU0JfQ0RD X0NPTVBPU0lURT1tCitDT05GSUdfVVNCX0dfTk9LSUE9bQorQ09ORklHX1VTQl9HX0FDTV9NUz1t CitDT05GSUdfVVNCX0dfTVVMVEk9bQorQ09ORklHX1VTQl9HX01VTFRJX1JORElTPXkKK0NPTkZJ R19VU0JfR19NVUxUSV9DREM9eQorQ09ORklHX1VTQl9HX0hJRD1tCitDT05GSUdfVVNCX0dfREJH UD1tCisjIENPTkZJR19VU0JfR19EQkdQX1BSSU5USyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0df REJHUF9TRVJJQUw9eQorQ09ORklHX1VTQl9HX1dFQkNBTT1tCitDT05GSUdfVVNCX1JBV19HQURH RVQ9bQorIyBlbmQgb2YgVVNCIEdhZGdldCBwcmVjb21wb3NlZCBjb25maWd1cmF0aW9ucworCitD T05GSUdfVFlQRUM9bQorQ09ORklHX1RZUEVDX1RDUE09bQorQ09ORklHX1RZUEVDX1RDUENJPW0K K0NPTkZJR19UWVBFQ19SVDE3MTFIPW0KK0NPTkZJR19UWVBFQ19UQ1BDSV9NVDYzNzA9bQorQ09O RklHX1RZUEVDX1RDUENJX01BWElNPW0KK0NPTkZJR19UWVBFQ19GVVNCMzAyPW0KK0NPTkZJR19U WVBFQ19VQ1NJPW0KK0NPTkZJR19VQ1NJX0NDRz1tCitDT05GSUdfVUNTSV9TVE0zMkcwPW0KK0NP TkZJR19VQ1NJX1BNSUNfR0xJTks9bQorQ09ORklHX1RZUEVDX1RQUzY1OThYPW0KK0NPTkZJR19U WVBFQ19BTlg3NDExPW0KK0NPTkZJR19UWVBFQ19SVDE3MTk9bQorQ09ORklHX1RZUEVDX0hEM1NT MzIyMD1tCitDT05GSUdfVFlQRUNfU1RVU0IxNjBYPW0KK0NPTkZJR19UWVBFQ19XVVNCMzgwMT1t CisKKyMKKyMgVVNCIFR5cGUtQyBNdWx0aXBsZXhlci9EZU11bHRpcGxleGVyIFN3aXRjaCBzdXBw b3J0CisjCitDT05GSUdfVFlQRUNfTVVYX0ZTQTQ0ODA9bQorQ09ORklHX1RZUEVDX01VWF9HUElP X1NCVT1tCitDT05GSUdfVFlQRUNfTVVYX1BJM1VTQjMwNTMyPW0KKyMgZW5kIG9mIFVTQiBUeXBl LUMgTXVsdGlwbGV4ZXIvRGVNdWx0aXBsZXhlciBTd2l0Y2ggc3VwcG9ydAorCisjCisjIFVTQiBU eXBlLUMgQWx0ZXJuYXRlIE1vZGUgZHJpdmVycworIworQ09ORklHX1RZUEVDX0RQX0FMVE1PREU9 bQorQ09ORklHX1RZUEVDX05WSURJQV9BTFRNT0RFPW0KKyMgZW5kIG9mIFVTQiBUeXBlLUMgQWx0 ZXJuYXRlIE1vZGUgZHJpdmVycworCitDT05GSUdfVVNCX1JPTEVfU1dJVENIPW0KK0NPTkZJR19N TUM9bQorQ09ORklHX1BXUlNFUV9FTU1DPW0KK0NPTkZJR19QV1JTRVFfU0Q4Nzg3PW0KK0NPTkZJ R19QV1JTRVFfU0lNUExFPW0KK0NPTkZJR19NTUNfQkxPQ0s9bQorQ09ORklHX01NQ19CTE9DS19N SU5PUlM9OAorQ09ORklHX1NESU9fVUFSVD1tCisjIENPTkZJR19NTUNfVEVTVCBpcyBub3Qgc2V0 CitDT05GSUdfTU1DX0NSWVBUTz15CisKKyMKKyMgTU1DL1NEL1NESU8gSG9zdCBDb250cm9sbGVy IERyaXZlcnMKKyMKKyMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTU1DX0FS TU1NQ0k9bQorQ09ORklHX01NQ19TVE0zMl9TRE1NQz15CitDT05GSUdfTU1DX1NESENJPW0KK0NP TkZJR19NTUNfU0RIQ0lfSU9fQUNDRVNTT1JTPXkKK0NPTkZJR19NTUNfU0RIQ0lfUENJPW0KK0NP TkZJR19NTUNfUklDT0hfTU1DPXkKK0NPTkZJR19NTUNfU0RIQ0lfUExURk09bQorQ09ORklHX01N Q19TREhDSV9PRl9BUkFTQU49bQorIyBDT05GSUdfTU1DX1NESENJX09GX0FUOTEgaXMgbm90IHNl dAorQ09ORklHX01NQ19TREhDSV9PRl9EV0NNU0hDPW0KK0NPTkZJR19NTUNfU0RIQ0lfQ0FERU5D RT1tCitDT05GSUdfTU1DX1NESENJX0ZfU0RIMzA9bQorIyBDT05GSUdfTU1DX1NESENJX01JTEJF QVVUIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfQUxDT1I9bQorQ09ORklHX01NQ19USUZNX1NEPW0K KyMgQ09ORklHX01NQ19TUEkgaXMgbm90IHNldAorQ09ORklHX01NQ19TRFJJQ09IX0NTPW0KK0NP TkZJR19NTUNfVE1JT19DT1JFPW0KK0NPTkZJR19NTUNfU0RIST1tCitDT05GSUdfTU1DX1NESElf U1lTX0RNQUM9bQorQ09ORklHX01NQ19DQjcxMD1tCitDT05GSUdfTU1DX1ZJQV9TRE1NQz1tCitD T05GSUdfTU1DX0RXPW0KK0NPTkZJR19NTUNfRFdfUExURk09bQorQ09ORklHX01NQ19EV19CTFVF RklFTEQ9bQorQ09ORklHX01NQ19EV19FWFlOT1M9bQorQ09ORklHX01NQ19EV19ISTM3OThDVjIw MD1tCitDT05GSUdfTU1DX0RXX0szPW0KK0NPTkZJR19NTUNfRFdfUENJPW0KK0NPTkZJR19NTUNf RFdfU1RBUkZJVkU9bQorQ09ORklHX01NQ19TSF9NTUNJRj1tCitDT05GSUdfTU1DX1ZVQjMwMD1t CitDT05GSUdfTU1DX1VTSEM9bQorQ09ORklHX01NQ19VU0RISTZST0wwPW0KK0NPTkZJR19NTUNf UkVBTFRFS19QQ0k9bQorQ09ORklHX01NQ19SRUFMVEVLX1VTQj1tCitDT05GSUdfTU1DX1NVTlhJ PW0KK0NPTkZJR19NTUNfQ1FIQ0k9bQorQ09ORklHX01NQ19IU1E9bQorQ09ORklHX01NQ19UT1NI SUJBX1BDST1tCitDT05GSUdfTU1DX01USz1tCitDT05GSUdfTU1DX1NESENJX1hFTk9OPW0KKyMg Q09ORklHX01NQ19TREhDSV9PTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19NTUNfU0RIQ0lfQU02NTQ9 bQorQ09ORklHX1NDU0lfVUZTSENEPW0KK0NPTkZJR19TQ1NJX1VGU19CU0c9eQorQ09ORklHX1ND U0lfVUZTX0NSWVBUTz15CitDT05GSUdfU0NTSV9VRlNfSFBCPXkKK0NPTkZJR19TQ1NJX1VGU19I V01PTj15CitDT05GSUdfU0NTSV9VRlNIQ0RfUENJPW0KKyMgQ09ORklHX1NDU0lfVUZTX0RXQ19U Q19QQ0kgaXMgbm90IHNldAorQ09ORklHX1NDU0lfVUZTSENEX1BMQVRGT1JNPW0KK0NPTkZJR19T Q1NJX1VGU19DRE5TX1BMQVRGT1JNPW0KKyMgQ09ORklHX1NDU0lfVUZTX0RXQ19UQ19QTEFURk9S TSBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9VRlNfUkVORVNBUz1tCitDT05GSUdfTUVNU1RJQ0s9 bQorIyBDT05GSUdfTUVNU1RJQ0tfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1lbW9yeVN0aWNr IGRyaXZlcnMKKyMKKyMgQ09ORklHX01FTVNUSUNLX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAor Q09ORklHX01TUFJPX0JMT0NLPW0KK0NPTkZJR19NU19CTE9DSz1tCisKKyMKKyMgTWVtb3J5U3Rp Y2sgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19NRU1TVElDS19USUZNX01TPW0K K0NPTkZJR19NRU1TVElDS19KTUlDUk9OXzM4WD1tCitDT05GSUdfTUVNU1RJQ0tfUjU5Mj1tCitD T05GSUdfTUVNU1RJQ0tfUkVBTFRFS19QQ0k9bQorQ09ORklHX01FTVNUSUNLX1JFQUxURUtfVVNC PW0KK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CitDT05GSUdfTEVEU19D TEFTU19GTEFTSD1tCitDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9SPW0KK0NPTkZJR19MRURT X0JSSUdIVE5FU1NfSFdfQ0hBTkdFRD15CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19M RURTX0FOMzAyNTlBPW0KK0NPTkZJR19MRURTX0FXMjAxMz1tCisjIENPTkZJR19MRURTX0JDTTYz MjggaXMgbm90IHNldAorIyBDT05GSUdfTEVEU19CQ002MzU4IGlzIG5vdCBzZXQKK0NPTkZJR19M RURTX0NQQ0FQPW0KK0NPTkZJR19MRURTX0NSMDAxNDExND1tCitDT05GSUdfTEVEU19FTDE1MjAz MDAwPW0KK0NPTkZJR19MRURTX0xNMzUzMD1tCitDT05GSUdfTEVEU19MTTM1MzI9bQorQ09ORklH X0xFRFNfTE0zNTMzPW0KK0NPTkZJR19MRURTX0xNMzY0Mj1tCitDT05GSUdfTEVEU19MTTM2OTJY PW0KK0NPTkZJR19MRURTX1BDQTk1MzI9bQorQ09ORklHX0xFRFNfUENBOTUzMl9HUElPPXkKK0NP TkZJR19MRURTX0dQSU89bQorQ09ORklHX0xFRFNfTFAzOTQ0PW0KK0NPTkZJR19MRURTX0xQMzk1 Mj1tCitDT05GSUdfTEVEU19MUDUwWFg9bQorQ09ORklHX0xFRFNfTFA1NVhYX0NPTU1PTj1tCitD T05GSUdfTEVEU19MUDU1MjE9bQorQ09ORklHX0xFRFNfTFA1NTIzPW0KK0NPTkZJR19MRURTX0xQ NTU2Mj1tCitDT05GSUdfTEVEU19MUDg1MDE9bQorQ09ORklHX0xFRFNfTFA4ODYwPW0KK0NPTkZJ R19MRURTX1BDQTk1NVg9bQorQ09ORklHX0xFRFNfUENBOTU1WF9HUElPPXkKK0NPTkZJR19MRURT X1BDQTk2M1g9bQorIyBDT05GSUdfTEVEU19EQUMxMjRTMDg1IGlzIG5vdCBzZXQKK0NPTkZJR19M RURTX1BXTT1tCisjIENPTkZJR19MRURTX1JFR1VMQVRPUiBpcyBub3Qgc2V0CitDT05GSUdfTEVE U19CRDI2MDZNVlY9bQorQ09ORklHX0xFRFNfQkQyODAyPW0KK0NPTkZJR19MRURTX0xUMzU5Mz1t CitDT05GSUdfTEVEU19UQ0E2NTA3PW0KKyMgQ09ORklHX0xFRFNfVExDNTkxWFggaXMgbm90IHNl dAorQ09ORklHX0xFRFNfTUFYNzc2NTA9bQorQ09ORklHX0xFRFNfTE0zNTV4PW0KK0NPTkZJR19M RURTX01FTkYyMUJNQz1tCitDT05GSUdfTEVEU19JUzMxRkwzMTlYPW0KK0NPTkZJR19MRURTX0lT MzFGTDMyWFg9bQorCisjCisjIExFRCBkcml2ZXIgZm9yIGJsaW5rKDEpIFVTQiBSR0IgTEVEIGlz IHVuZGVyIFNwZWNpYWwgSElEIGRyaXZlcnMgKEhJRF9USElOR00pCisjCitDT05GSUdfTEVEU19C TElOS009bQorQ09ORklHX0xFRFNfU1lTQ09OPXkKK0NPTkZJR19MRURTX01MWFJFRz1tCitDT05G SUdfTEVEU19VU0VSPW0KK0NPTkZJR19MRURTX1NQSV9CWVRFPW0KK0NPTkZJR19MRURTX1RJX0xN VV9DT01NT049bQorQ09ORklHX0xFRFNfTE0zNjk3PW0KK0NPTkZJR19MRURTX0xNMzYyNzQ9bQor CisjCisjIEZsYXNoIGFuZCBUb3JjaCBMRUQgZHJpdmVycworIworIyBDT05GSUdfTEVEU19BQVQx MjkwIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0FTMzY0NUE9bQorIyBDT05GSUdfTEVEU19LVEQy NjkyIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0xNMzYwMVg9bQorQ09ORklHX0xFRFNfTVQ2Mzcw X0ZMQVNIPW0KK0NPTkZJR19MRURTX1JUNDUwNT1tCitDT05GSUdfTEVEU19SVDg1MTU9bQorQ09O RklHX0xFRFNfU0dNMzE0MD1tCisKKyMKKyMgUkdCIExFRCBkcml2ZXJzCisjCitDT05GSUdfTEVE U19QV01fTVVMVElDT0xPUj1tCitDT05GSUdfTEVEU19RQ09NX0xQRz1tCitDT05GSUdfTEVEU19N VDYzNzBfUkdCPW0KKworIworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJT PXkKK0NPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9PTkVT SE9UPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfRElTSz15CitDT05GSUdfTEVEU19UUklHR0VSX01U RD15CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD1tCitDT05GSUdfTEVEU19UUklHR0VS X0JBQ0tMSUdIVD1tCitDT05GSUdfTEVEU19UUklHR0VSX0NQVT15CitDT05GSUdfTEVEU19UUklH R0VSX0FDVElWSVRZPW0KK0NPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTj1tCisKKyMKKyMg aXB0YWJsZXMgdHJpZ2dlciBpcyB1bmRlciBOZXRmaWx0ZXIgY29uZmlnIChMRUQgdGFyZ2V0KQor IworQ09ORklHX0xFRFNfVFJJR0dFUl9UUkFOU0lFTlQ9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9D QU1FUkE9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9QQU5JQz15CitDT05GSUdfTEVEU19UUklHR0VS X05FVERFVj1tCitDT05GSUdfTEVEU19UUklHR0VSX1BBVFRFUk49bQorQ09ORklHX0xFRFNfVFJJ R0dFUl9BVURJTz1tCitDT05GSUdfTEVEU19UUklHR0VSX1RUWT1tCisKKyMKKyMgU2ltcGxlIExF RCBkcml2ZXJzCisjCitDT05GSUdfQUNDRVNTSUJJTElUWT15CitDT05GSUdfQTExWV9CUkFJTExF X0NPTlNPTEU9eQorCisjCisjIFNwZWFrdXAgY29uc29sZSBzcGVlY2gKKyMKK0NPTkZJR19TUEVB S1VQPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0FDTlRTQT1tCitDT05GSUdfU1BFQUtVUF9TWU5U SF9BUE9MTE89bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfQVVEUFRSPW0KK0NPTkZJR19TUEVBS1VQ X1NZTlRIX0JOUz1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9ERUNUTEs9bQorQ09ORklHX1NQRUFL VVBfU1lOVEhfREVDRVhUPW0KK0NPTkZJR19TUEVBS1VQX1NZTlRIX0xUTEs9bQorQ09ORklHX1NQ RUFLVVBfU1lOVEhfU09GVD1tCitDT05GSUdfU1BFQUtVUF9TWU5USF9TUEtPVVQ9bQorQ09ORklH X1NQRUFLVVBfU1lOVEhfVFhQUlQ9bQorQ09ORklHX1NQRUFLVVBfU1lOVEhfRFVNTVk9bQorIyBl bmQgb2YgU3BlYWt1cCBjb25zb2xlIHNwZWVjaAorCitDT05GSUdfSU5GSU5JQkFORD1tCitDT05G SUdfSU5GSU5JQkFORF9VU0VSX01BRD1tCitDT05GSUdfSU5GSU5JQkFORF9VU0VSX0FDQ0VTUz1t CitDT05GSUdfSU5GSU5JQkFORF9VU0VSX01FTT15CitDT05GSUdfSU5GSU5JQkFORF9PTl9ERU1B TkRfUEFHSU5HPXkKK0NPTkZJR19JTkZJTklCQU5EX0FERFJfVFJBTlM9eQorQ09ORklHX0lORklO SUJBTkRfQUREUl9UUkFOU19DT05GSUdGUz15CitDT05GSUdfSU5GSU5JQkFORF9WSVJUX0RNQT15 CitDT05GSUdfSU5GSU5JQkFORF9CTlhUX1JFPW0KK0NPTkZJR19JTkZJTklCQU5EX0NYR0I0PW0K K0NPTkZJR19JTkZJTklCQU5EX0VGQT1tCitDT05GSUdfSU5GSU5JQkFORF9FUkRNQT1tCitDT05G SUdfSU5GSU5JQkFORF9JUkRNQT1tCitDT05GSUdfTUxYNF9JTkZJTklCQU5EPW0KK0NPTkZJR19N TFg1X0lORklOSUJBTkQ9bQorQ09ORklHX0lORklOSUJBTkRfTVRIQ0E9bQorQ09ORklHX0lORklO SUJBTkRfTVRIQ0FfREVCVUc9eQorQ09ORklHX0lORklOSUJBTkRfT0NSRE1BPW0KK0NPTkZJR19J TkZJTklCQU5EX1FFRFI9bQorIyBDT05GSUdfSU5GSU5JQkFORF9WTVdBUkVfUFZSRE1BIGlzIG5v dCBzZXQKK0NPTkZJR19SRE1BX1JYRT1tCitDT05GSUdfUkRNQV9TSVc9bQorQ09ORklHX0lORklO SUJBTkRfSVBPSUI9bQorQ09ORklHX0lORklOSUJBTkRfSVBPSUJfQ009eQorQ09ORklHX0lORklO SUJBTkRfSVBPSUJfREVCVUc9eQorIyBDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVR19EQVRB IGlzIG5vdCBzZXQKK0NPTkZJR19JTkZJTklCQU5EX1NSUD1tCitDT05GSUdfSU5GSU5JQkFORF9T UlBUPW0KK0NPTkZJR19JTkZJTklCQU5EX0lTRVI9bQorQ09ORklHX0lORklOSUJBTkRfSVNFUlQ9 bQorQ09ORklHX0lORklOSUJBTkRfUlRSUz1tCitDT05GSUdfSU5GSU5JQkFORF9SVFJTX0NMSUVO VD1tCitDT05GSUdfSU5GSU5JQkFORF9SVFJTX1NFUlZFUj1tCitDT05GSUdfRURBQ19TVVBQT1JU PXkKK0NPTkZJR19FREFDPXkKK0NPTkZJR19FREFDX0xFR0FDWV9TWVNGUz15CitDT05GSUdfRURB Q19ERUJVRz15CitDT05GSUdfRURBQ19TSUZJVkU9eQorQ09ORklHX1JUQ19MSUI9eQorQ09ORklH X1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RF VklDRT0icnRjMCIKK0NPTkZJR19SVENfU1lTVE9IQz15CitDT05GSUdfUlRDX1NZU1RPSENfREVW SUNFPSJydGMwIgorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTlZN RU09eQorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQor Q09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19S VENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlz IG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0FCQjVa RVMzPW0KK0NPTkZJR19SVENfRFJWX0FCRU9aOT1tCitDT05GSUdfUlRDX0RSVl9BQlg4MFg9bQor Q09ORklHX1JUQ19EUlZfQUMxMDA9bQorQ09ORklHX1JUQ19EUlZfRFMxMzA3PW0KK0NPTkZJR19S VENfRFJWX0RTMTMwN19DRU5UVVJZPXkKK0NPTkZJR19SVENfRFJWX0RTMTM3ND1tCitDT05GSUdf UlRDX0RSVl9EUzEzNzRfV0RUPXkKK0NPTkZJR19SVENfRFJWX0RTMTY3Mj1tCisjIENPTkZJR19S VENfRFJWX0hZTTg1NjMgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfTUFYNjkwMD1tCitDT05G SUdfUlRDX0RSVl9NQVg3NzY4Nj1tCitDT05GSUdfUlRDX0RSVl9OQ1QzMDE4WT1tCitDT05GSUdf UlRDX0RSVl9SSzgwOD1tCitDT05GSUdfUlRDX0RSVl9SUzVDMzcyPW0KK0NPTkZJR19SVENfRFJW X0lTTDEyMDg9bQorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjAyMiBpcyBub3Qgc2V0CitDT05GSUdf UlRDX0RSVl9JU0wxMjAyNj1tCitDT05GSUdfUlRDX0RSVl9YMTIwNT1tCitDT05GSUdfUlRDX0RS Vl9QQ0Y4NTIzPW0KK0NPTkZJR19SVENfRFJWX1BDRjg1MDYzPW0KK0NPTkZJR19SVENfRFJWX1BD Rjg1MzYzPW0KK0NPTkZJR19SVENfRFJWX1BDRjg1NjM9bQorQ09ORklHX1JUQ19EUlZfUENGODU4 Mz1tCitDT05GSUdfUlRDX0RSVl9NNDFUODA9bQorQ09ORklHX1JUQ19EUlZfTTQxVDgwX1dEVD15 CitDT05GSUdfUlRDX0RSVl9CRDcwNTI4PW0KKyMgQ09ORklHX1JUQ19EUlZfQlEzMksgaXMgbm90 IHNldAorQ09ORklHX1JUQ19EUlZfUzM1MzkwQT1tCitDT05GSUdfUlRDX0RSVl9GTTMxMzA9bQor Q09ORklHX1JUQ19EUlZfUlg4MDEwPW0KKyMgQ09ORklHX1JUQ19EUlZfUlg4NTgxIGlzIG5vdCBz ZXQKKyMgQ09ORklHX1JUQ19EUlZfUlg4MDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZf RU0zMDI3IGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX1JWMzAyOD1tCitDT05GSUdfUlRDX0RS Vl9SVjMwMzI9bQorQ09ORklHX1JUQ19EUlZfUlY4ODAzPXkKK0NPTkZJR19SVENfRFJWX1NEMzA3 OD1tCisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX000MVQ5MyBp cyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ5NCBpcyBub3Qgc2V0CisjIENPTkZJR19S VENfRFJWX0RTMTMwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTMwNSBpcyBub3Qg c2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM0MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJW X0RTMTM0NyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM5MCBpcyBub3Qgc2V0CitD T05GSUdfUlRDX0RSVl9NQVg2OTE2PW0KKyMgQ09ORklHX1JUQ19EUlZfUjk3MDEgaXMgbm90IHNl dAorIyBDT05GSUdfUlRDX0RSVl9SWDQ1ODEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9S UzVDMzQ4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0Cisj IENPTkZJR19SVENfRFJWX1BDRjIxMjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQ1A3 OTUgaXMgbm90IHNldAorQ09ORklHX1JUQ19JMkNfQU5EX1NQST15CisKKyMKKyMgU1BJIGFuZCBJ MkMgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0RTMzIzMj1tCitDT05GSUdfUlRDX0RS Vl9EUzMyMzJfSFdNT049eQorQ09ORklHX1JUQ19EUlZfUENGMjEyNz1tCisjIENPTkZJR19SVENf RFJWX1JWMzAyOUMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlg2MTEwIGlzIG5vdCBz ZXQKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEy ODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05G SUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfRFMxNjg1X0ZBTUlM WT1tCitDT05GSUdfUlRDX0RSVl9EUzE2ODU9eQorIyBDT05GSUdfUlRDX0RSVl9EUzE2ODkgaXMg bm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3Mjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JU Q19EUlZfRFMxNzQ4NSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc4ODUgaXMgbm90 IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RS Vl9EUzI0MDQgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfRUZJPXkKKyMgQ09ORklHX1JUQ19E UlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNl dAorIyBDT05GSUdfUlRDX0RSVl9NNDhUMzUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9N NDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NU002MjQyIGlzIG5vdCBzZXQKKyMg Q09ORklHX1JUQ19EUlZfQlE0ODAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlA1QzAx IGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX1pZTlFNUD15CitDT05GSUdfUlRDX0RSVl9OVFhF Qz1tCisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9TSD1tCitD T05GSUdfUlRDX0RSVl9QTDAzMD1tCitDT05GSUdfUlRDX0RSVl9QTDAzMT1tCitDT05GSUdfUlRD X0RSVl9TVU42ST15CitDT05GSUdfUlRDX0RSVl9DQURFTkNFPW0KK0NPTkZJR19SVENfRFJWX0ZU UlRDMDEwPW0KK0NPTkZJR19SVENfRFJWX1I3MzAxPW0KK0NPTkZJR19SVENfRFJWX0NQQ0FQPW0K KworIworIyBISUQgU2Vuc29yIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9ISURfU0VO U09SX1RJTUU9bQorQ09ORklHX1JUQ19EUlZfR09MREZJU0g9eQorQ09ORklHX1JUQ19EUlZfUE9M QVJGSVJFX1NPQz1tCitDT05GSUdfRE1BREVWSUNFUz15CisjIENPTkZJR19ETUFERVZJQ0VTX0RF QlVHIGlzIG5vdCBzZXQKKworIworIyBETUEgRGV2aWNlcworIworQ09ORklHX0RNQV9FTkdJTkU9 eQorQ09ORklHX0RNQV9WSVJUVUFMX0NIQU5ORUxTPXkKK0NPTkZJR19ETUFfT0Y9eQorQ09ORklH X0FMVEVSQV9NU0dETUE9bQorQ09ORklHX0FNQkFfUEwwOFg9eQorQ09ORklHX0RNQV9TVU42ST1t CitDT05GSUdfRFdfQVhJX0RNQUM9bQorQ09ORklHX0ZTTF9FRE1BPW0KKyMgQ09ORklHX0lOVEVM X0lETUE2NCBpcyBub3Qgc2V0CisjIENPTkZJR19QTDMzMF9ETUEgaXMgbm90IHNldAorQ09ORklH X1BMWF9ETUE9bQorQ09ORklHX1hJTElOWF9YRE1BPW0KK0NPTkZJR19YSUxJTlhfWllOUU1QX0RQ RE1BPW0KK0NPTkZJR19RQ09NX0hJRE1BX01HTVQ9bQorQ09ORklHX1FDT01fSElETUE9bQorQ09O RklHX0RXX0RNQUNfQ09SRT1tCisjIENPTkZJR19EV19ETUFDIGlzIG5vdCBzZXQKK0NPTkZJR19E V19ETUFDX1BDST1tCitDT05GSUdfRFdfRURNQT1tCitDT05GSUdfRFdfRURNQV9QQ0lFPW0KKyMg Q09ORklHX1NGX1BETUEgaXMgbm90IHNldAorQ09ORklHX1JFTkVTQVNfRE1BPXkKK0NPTkZJR19S Q0FSX0RNQUM9bQorQ09ORklHX1JFTkVTQVNfVVNCX0RNQUM9bQorQ09ORklHX1JaX0RNQUM9bQor CisjCisjIERNQSBDbGllbnRzCisjCitDT05GSUdfQVNZTkNfVFhfRE1BPXkKKyMgQ09ORklHX0RN QVRFU1QgaXMgbm90IHNldAorCisjCisjIERNQUJVRiBvcHRpb25zCisjCitDT05GSUdfU1lOQ19G SUxFPXkKK0NPTkZJR19TV19TWU5DPXkKK0NPTkZJR19VRE1BQlVGPXkKKyMgQ09ORklHX0RNQUJV Rl9NT1ZFX05PVElGWSBpcyBub3Qgc2V0CisjIENPTkZJR19ETUFCVUZfREVCVUcgaXMgbm90IHNl dAorIyBDT05GSUdfRE1BQlVGX1NFTEZURVNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETUFCVUZf SEVBUFMgaXMgbm90IHNldAorIyBDT05GSUdfRE1BQlVGX1NZU0ZTX1NUQVRTIGlzIG5vdCBzZXQK KyMgZW5kIG9mIERNQUJVRiBvcHRpb25zCisKK0NPTkZJR19BVVhESVNQTEFZPXkKK0NPTkZJR19D SEFSTENEPW0KK0NPTkZJR19MSU5FRElTUD1tCitDT05GSUdfSEQ0NDc4MF9DT01NT049bQorQ09O RklHX0hENDQ3ODA9bQorIyBDT05GSUdfSU1HX0FTQ0lJX0xDRCBpcyBub3Qgc2V0CitDT05GSUdf SFQxNkszMz1tCitDT05GSUdfTENEMlM9bQorQ09ORklHX1BBUlBPUlRfUEFORUw9bQorQ09ORklH X1BBTkVMX1BBUlBPUlQ9MAorQ09ORklHX1BBTkVMX1BST0ZJTEU9NQorIyBDT05GSUdfUEFORUxf Q0hBTkdFX01FU1NBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ0hBUkxDRF9CTF9PRkYgaXMgbm90 IHNldAorIyBDT05GSUdfQ0hBUkxDRF9CTF9PTiBpcyBub3Qgc2V0CitDT05GSUdfQ0hBUkxDRF9C TF9GTEFTSD15CitDT05GSUdfUEFORUw9bQorQ09ORklHX1VJTz1tCitDT05GSUdfVUlPX0NJRj1t CitDT05GSUdfVUlPX1BEUlZfR0VOSVJRPW0KK0NPTkZJR19VSU9fRE1FTV9HRU5JUlE9bQorQ09O RklHX1VJT19BRUM9bQorQ09ORklHX1VJT19TRVJDT1MzPW0KK0NPTkZJR19VSU9fUENJX0dFTkVS SUM9bQorQ09ORklHX1VJT19ORVRYPW0KKyMgQ09ORklHX1VJT19QUlVTUyBpcyBub3Qgc2V0CitD T05GSUdfVUlPX01GNjI0PW0KK0NPTkZJR19VSU9fREZMPW0KK0NPTkZJR19WRklPPW0KK0NPTkZJ R19WRklPX0NPTlRBSU5FUj15CisjIENPTkZJR19WRklPX05PSU9NTVUgaXMgbm90IHNldAorQ09O RklHX1ZGSU9fVklSUUZEPXkKK0NPTkZJR19WRklPX1BDSV9DT1JFPW0KK0NPTkZJR19WRklPX1BD SV9NTUFQPXkKK0NPTkZJR19WRklPX1BDSV9JTlRYPXkKK0NPTkZJR19WRklPX1BDST1tCitDT05G SUdfTUxYNV9WRklPX1BDST1tCitDT05GSUdfSVJRX0JZUEFTU19NQU5BR0VSPW0KK0NPTkZJR19W SVJUX0RSSVZFUlM9eQorQ09ORklHX1ZJUlRJT19BTkNIT1I9eQorQ09ORklHX1ZJUlRJTz15CitD T05GSUdfVklSVElPX1BDSV9MSUI9eQorQ09ORklHX1ZJUlRJT19QQ0lfTElCX0xFR0FDWT15CitD T05GSUdfVklSVElPX01FTlU9eQorQ09ORklHX1ZJUlRJT19QQ0k9eQorQ09ORklHX1ZJUlRJT19Q Q0lfTEVHQUNZPXkKK0NPTkZJR19WSVJUSU9fVkRQQT1tCitDT05GSUdfVklSVElPX1BNRU09bQor Q09ORklHX1ZJUlRJT19CQUxMT09OPW0KK0NPTkZJR19WSVJUSU9fSU5QVVQ9bQorQ09ORklHX1ZJ UlRJT19NTUlPPW0KKyMgQ09ORklHX1ZJUlRJT19NTUlPX0NNRExJTkVfREVWSUNFUyBpcyBub3Qg c2V0CitDT05GSUdfVklSVElPX0RNQV9TSEFSRURfQlVGRkVSPW0KK0NPTkZJR19WRFBBPW0KK0NP TkZJR19WRFBBX1NJTT1tCitDT05GSUdfVkRQQV9TSU1fTkVUPW0KK0NPTkZJR19WRFBBX1NJTV9C TE9DSz1tCitDT05GSUdfVkRQQV9VU0VSPW0KK0NPTkZJR19JRkNWRj1tCitDT05GSUdfTUxYNV9W RFBBPXkKK0NPTkZJR19NTFg1X1ZEUEFfTkVUPW0KKyMgQ09ORklHX01MWDVfVkRQQV9TVEVFUklO R19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVlBfVkRQQT1tCitDT05GSUdfU05FVF9WRFBBPW0K K0NPTkZJR19WSE9TVF9JT1RMQj1tCitDT05GSUdfVkhPU1RfUklORz1tCitDT05GSUdfVkhPU1Rf VEFTSz15CitDT05GSUdfVkhPU1Q9bQorQ09ORklHX1ZIT1NUX01FTlU9eQorQ09ORklHX1ZIT1NU X05FVD1tCitDT05GSUdfVkhPU1RfU0NTST1tCitDT05GSUdfVkhPU1RfVlNPQ0s9bQorQ09ORklH X1ZIT1NUX1ZEUEE9bQorIyBDT05GSUdfVkhPU1RfQ1JPU1NfRU5ESUFOX0xFR0FDWSBpcyBub3Qg c2V0CisKKyMKKyMgTWljcm9zb2Z0IEh5cGVyLVYgZ3Vlc3Qgc3VwcG9ydAorIworIyBlbmQgb2Yg TWljcm9zb2Z0IEh5cGVyLVYgZ3Vlc3Qgc3VwcG9ydAorCisjIENPTkZJR19HUkVZQlVTIGlzIG5v dCBzZXQKK0NPTkZJR19DT01FREk9bQorIyBDT05GSUdfQ09NRURJX0RFQlVHIGlzIG5vdCBzZXQK K0NPTkZJR19DT01FRElfREVGQVVMVF9CVUZfU0laRV9LQj0yMDQ4CitDT05GSUdfQ09NRURJX0RF RkFVTFRfQlVGX01BWFNJWkVfS0I9MjA0ODAKKyMgQ09ORklHX0NPTUVESV9NSVNDX0RSSVZFUlMg aXMgbm90IHNldAorIyBDT05GSUdfQ09NRURJX0lTQV9EUklWRVJTIGlzIG5vdCBzZXQKKyMgQ09O RklHX0NPTUVESV9QQ0lfRFJJVkVSUyBpcyBub3Qgc2V0CitDT05GSUdfQ09NRURJX1BDTUNJQV9E UklWRVJTPW0KK0NPTkZJR19DT01FRElfQ0JfREFTMTZfQ1M9bQorQ09ORklHX0NPTUVESV9EQVMw OF9DUz1tCitDT05GSUdfQ09NRURJX05JX0RBUV83MDBfQ1M9bQorQ09ORklHX0NPTUVESV9OSV9E QVFfRElPMjRfQ1M9bQorQ09ORklHX0NPTUVESV9OSV9MQUJQQ19DUz1tCitDT05GSUdfQ09NRURJ X05JX01JT19DUz1tCitDT05GSUdfQ09NRURJX1FVQVRFQ0hfREFRUF9DUz1tCitDT05GSUdfQ09N RURJX1VTQl9EUklWRVJTPW0KK0NPTkZJR19DT01FRElfRFQ5ODEyPW0KK0NPTkZJR19DT01FRElf TklfVVNCNjUwMT1tCitDT05GSUdfQ09NRURJX1VTQkRVWD1tCitDT05GSUdfQ09NRURJX1VTQkRV WEZBU1Q9bQorQ09ORklHX0NPTUVESV9VU0JEVVhTSUdNQT1tCitDT05GSUdfQ09NRURJX1ZNSzgw WFg9bQorQ09ORklHX0NPTUVESV84MjU0PW0KK0NPTkZJR19DT01FRElfODI1NT1tCitDT05GSUdf Q09NRURJXzgyNTVfU0E9bQorQ09ORklHX0NPTUVESV9LQ09NRURJTElCPW0KK0NPTkZJR19DT01F RElfREFTMDg9bQorQ09ORklHX0NPTUVESV9OSV9MQUJQQz1tCitDT05GSUdfQ09NRURJX05JX1RJ Tz1tCitDT05GSUdfQ09NRURJX05JX1JPVVRJTkc9bQorIyBDT05GSUdfQ09NRURJX1RFU1RTIGlz IG5vdCBzZXQKK0NPTkZJR19TVEFHSU5HPXkKK0NPTkZJR19QUklTTTJfVVNCPW0KK0NPTkZJR19S VEw4MTkyVT1tCitDT05GSUdfUlRMTElCPW0KK0NPTkZJR19SVExMSUJfQ1JZUFRPX0NDTVA9bQor Q09ORklHX1JUTExJQl9DUllQVE9fVEtJUD1tCitDT05GSUdfUlRMTElCX0NSWVBUT19XRVA9bQor Q09ORklHX1JUTDgxOTJFPW0KK0NPTkZJR19SVEw4NzIzQlM9bQorQ09ORklHX1I4NzEyVT1tCitD T05GSUdfUlRTNTIwOD1tCitDT05GSUdfVlQ2NjU1PW0KK0NPTkZJR19WVDY2NTY9bQorCisjCisj IElJTyBzdGFnaW5nIGRyaXZlcnMKKyMKKworIworIyBBY2NlbGVyb21ldGVycworIworIyBDT05G SUdfQURJUzE2MjAzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FESVMxNjI0MCBpcyBub3Qgc2V0Cisj IGVuZCBvZiBBY2NlbGVyb21ldGVycworCisjCisjIEFuYWxvZyB0byBkaWdpdGFsIGNvbnZlcnRl cnMKKyMKKyMgQ09ORklHX0FENzgxNiBpcyBub3Qgc2V0CisjIGVuZCBvZiBBbmFsb2cgdG8gZGln aXRhbCBjb252ZXJ0ZXJzCisKKyMKKyMgQW5hbG9nIGRpZ2l0YWwgYmktZGlyZWN0aW9uIGNvbnZl cnRlcnMKKyMKKyMgQ09ORklHX0FEVDczMTYgaXMgbm90IHNldAorIyBlbmQgb2YgQW5hbG9nIGRp Z2l0YWwgYmktZGlyZWN0aW9uIGNvbnZlcnRlcnMKKworIworIyBEaXJlY3QgRGlnaXRhbCBTeW50 aGVzaXMKKyMKKyMgQ09ORklHX0FEOTgzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BRDk4MzQgaXMg bm90IHNldAorIyBlbmQgb2YgRGlyZWN0IERpZ2l0YWwgU3ludGhlc2lzCisKKyMKKyMgTmV0d29y ayBBbmFseXplciwgSW1wZWRhbmNlIENvbnZlcnRlcnMKKyMKKyMgQ09ORklHX0FENTkzMyBpcyBu b3Qgc2V0CisjIGVuZCBvZiBOZXR3b3JrIEFuYWx5emVyLCBJbXBlZGFuY2UgQ29udmVydGVycwor CisjCisjIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVycworIworIyBDT05GSUdfQUQyUzEy MTAgaXMgbm90IHNldAorIyBlbmQgb2YgUmVzb2x2ZXIgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisj IGVuZCBvZiBJSU8gc3RhZ2luZyBkcml2ZXJzCisKK0NPTkZJR19GQl9TTTc1MD1tCitDT05GSUdf VVNCX0VNWFg9bQorQ09ORklHX1NUQUdJTkdfTUVESUE9eQorQ09ORklHX0RWQl9BVjcxMTBfSVI9 eQorQ09ORklHX0RWQl9BVjcxMTA9bQorQ09ORklHX0RWQl9BVjcxMTBfT1NEPXkKK0NPTkZJR19E VkJfQlVER0VUX1BBVENIPW0KK0NPTkZJR19EVkJfU1A4ODcwPW0KK0NPTkZJR19WSURFT19NQVg5 NjcxMj1tCitDT05GSUdfVklERU9fU1VOWEk9eQorQ09ORklHX1ZJREVPX1NVTlhJX0NFRFJVUz1t CitDT05GSUdfVklERU9fU1VONklfSVNQPW0KKyMgQ09ORklHX1NUQUdJTkdfTUVESUFfREVQUkVD QVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19TVEFHSU5HX0JPQVJEIGlzIG5vdCBzZXQKK0NPTkZJ R19MVEVfR0RNNzI0WD1tCitDT05GSUdfRkJfVEZUPW0KK0NPTkZJR19GQl9URlRfQUdNMTI2NEtf Rkw9bQorQ09ORklHX0ZCX1RGVF9CRDY2MzQ3ND1tCitDT05GSUdfRkJfVEZUX0hYODM0MEJOPW0K K0NPTkZJR19GQl9URlRfSFg4MzQ3RD1tCitDT05GSUdfRkJfVEZUX0hYODM1M0Q9bQorQ09ORklH X0ZCX1RGVF9IWDgzNTdEPW0KK0NPTkZJR19GQl9URlRfSUxJOTE2Mz1tCitDT05GSUdfRkJfVEZU X0lMSTkzMjA9bQorQ09ORklHX0ZCX1RGVF9JTEk5MzI1PW0KK0NPTkZJR19GQl9URlRfSUxJOTM0 MD1tCitDT05GSUdfRkJfVEZUX0lMSTkzNDE9bQorQ09ORklHX0ZCX1RGVF9JTEk5NDgxPW0KK0NP TkZJR19GQl9URlRfSUxJOTQ4Nj1tCitDT05GSUdfRkJfVEZUX1BDRDg1NDQ9bQorQ09ORklHX0ZC X1RGVF9SQTg4NzU9bQorQ09ORklHX0ZCX1RGVF9TNkQwMkExPW0KK0NPTkZJR19GQl9URlRfUzZE MTEyMT1tCitDT05GSUdfRkJfVEZUX1NFUFM1MjU9bQorQ09ORklHX0ZCX1RGVF9TSDExMDY9bQor Q09ORklHX0ZCX1RGVF9TU0QxMjg5PW0KK0NPTkZJR19GQl9URlRfU1NEMTMwNT1tCitDT05GSUdf RkJfVEZUX1NTRDEzMDY9bQorQ09ORklHX0ZCX1RGVF9TU0QxMzMxPW0KK0NPTkZJR19GQl9URlRf U1NEMTM1MT1tCitDT05GSUdfRkJfVEZUX1NUNzczNVI9bQorQ09ORklHX0ZCX1RGVF9TVDc3ODlW PW0KK0NPTkZJR19GQl9URlRfVElOWUxDRD1tCitDT05GSUdfRkJfVEZUX1RMUzgyMDQ9bQorQ09O RklHX0ZCX1RGVF9VQzE2MTE9bQorQ09ORklHX0ZCX1RGVF9VQzE3MDE9bQorQ09ORklHX0ZCX1RG VF9VUEQxNjE3MDQ9bQorQ09ORklHX0tTNzAxMD1tCitDT05GSUdfUEk0MzM9bQorQ09ORklHX1hJ TF9BWElTX0ZJRk89bQorQ09ORklHX0ZJRUxEQlVTX0RFVj1tCitDT05GSUdfSE1TX0FOWUJVU1Nf QlVTPW0KK0NPTkZJR19BUkNYX0FOWUJVU19DT05UUk9MTEVSPW0KK0NPTkZJR19ITVNfUFJPRklO RVQ9bQorQ09ORklHX1FMR0U9bQorIyBDT05GSUdfVk1FX0JVUyBpcyBub3Qgc2V0CitDT05GSUdf R09MREZJU0g9eQorQ09ORklHX0dPTERGSVNIX1BJUEU9bQorQ09ORklHX0hBVkVfQ0xLPXkKK0NP TkZJR19IQVZFX0NMS19QUkVQQVJFPXkKK0NPTkZJR19DT01NT05fQ0xLPXkKK0NPTkZJR19MTUsw NDgzMj1tCitDT05GSUdfQ09NTU9OX0NMS19NQVg3NzY4Nj1tCitDT05GSUdfQ09NTU9OX0NMS19N QVg5NDg1PW0KK0NPTkZJR19DT01NT05fQ0xLX1JLODA4PW0KK0NPTkZJR19DT01NT05fQ0xLX1NJ NTM0MT1tCisjIENPTkZJR19DT01NT05fQ0xLX1NJNTM1MSBpcyBub3Qgc2V0CitDT05GSUdfQ09N TU9OX0NMS19TSTUxND1tCitDT05GSUdfQ09NTU9OX0NMS19TSTU0ND1tCisjIENPTkZJR19DT01N T05fQ0xLX1NJNTcwIGlzIG5vdCBzZXQKK0NPTkZJR19DT01NT05fQ0xLX0NEQ0U3MDY9bQorQ09O RklHX0NPTU1PTl9DTEtfQ0RDRTkyNT1tCitDT05GSUdfQ09NTU9OX0NMS19DUzIwMDBfQ1A9bQor Q09ORklHX0NPTU1PTl9DTEtfQVhJX0NMS0dFTj1tCitDT05GSUdfQ09NTU9OX0NMS19MT0NITkFH QVI9bQorQ09ORklHX0NPTU1PTl9DTEtfUFdNPW0KK0NPTkZJR19DT01NT05fQ0xLX1JTOV9QQ0lF PW0KK0NPTkZJR19DT01NT05fQ0xLX1NJNTIxWFg9bQorQ09ORklHX0NPTU1PTl9DTEtfVkM1PW0K K0NPTkZJR19DT01NT05fQ0xLX1ZDNz1tCitDT05GSUdfQ09NTU9OX0NMS19CRDcxOFhYPW0KK0NP TkZJR19DT01NT05fQ0xLX0ZJWEVEX01NSU89eQorQ09ORklHX0NMS19BTkFMT0dCSVRTX1dSUExM X0NMTjI4SFBDPXkKK0NPTkZJR19NQ0hQX0NMS19NUEZTPXkKK0NPTkZJR19DTEtfUkVORVNBUz15 CitDT05GSUdfQ0xLX1I5QTA3RzA0Mz15CisjIENPTkZJR19DTEtfUkNBUl9VU0IyX0NMT0NLX1NF TCBpcyBub3Qgc2V0CitDT05GSUdfQ0xLX1JaRzJMPXkKK0NPTkZJR19DTEtfU0lGSVZFPXkKK0NP TkZJR19DTEtfU0lGSVZFX1BSQ0k9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxWDA9eQorQ09O RklHX0NMS19TVEFSRklWRV9KSDcxMDA9eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMDBfQVVE SU89eQorQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfUExMPXkKK0NPTkZJR19DTEtfU1RBUkZJ VkVfSkg3MTEwX1NZUz15CitDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9BT049eQorQ09ORklH X0NMS19TVEFSRklWRV9KSDcxMTBfU1RHPXkKK0NPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTEwX0lT UD15CitDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9WT1VUPXkKK0NPTkZJR19TVU5YSV9DQ1U9 bQorQ09ORklHX1NVTjIwSV9EMV9DQ1U9bQorQ09ORklHX1NVTjIwSV9EMV9SX0NDVT1tCitDT05G SUdfU1VONklfUlRDX0NDVT1tCitDT05GSUdfU1VOOElfREUyX0NDVT1tCitDT05GSUdfWElMSU5Y X1ZDVT1tCisjIENPTkZJR19DT01NT05fQ0xLX1hMTlhfQ0xLV1pSRCBpcyBub3Qgc2V0CitDT05G SUdfSFdTUElOTE9DSz15CitDT05GSUdfSFdTUElOTE9DS19TVU42ST1tCisKKyMKKyMgQ2xvY2sg U291cmNlIGRyaXZlcnMKKyMKK0NPTkZJR19USU1FUl9PRj15CitDT05GSUdfVElNRVJfUFJPQkU9 eQorQ09ORklHX0NMS1NSQ19NTUlPPXkKK0NPTkZJR19TVU40SV9USU1FUj15CitDT05GSUdfUkVO RVNBU19PU1RNPXkKK0NPTkZJR19SSVNDVl9USU1FUj15CitDT05GSUdfU1RBUkZJVkVfVElNRVI9 eQorIyBlbmQgb2YgQ2xvY2sgU291cmNlIGRyaXZlcnMKKworQ09ORklHX01BSUxCT1g9eQorQ09O RklHX0FSTV9NSFU9bQorQ09ORklHX0FSTV9NSFVfVjI9bQorQ09ORklHX1BMQVRGT1JNX01IVT1t CisjIENPTkZJR19QTDMyMF9NQk9YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FMVEVSQV9NQk9YIGlz IG5vdCBzZXQKKyMgQ09ORklHX01BSUxCT1hfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfUE9MQVJG SVJFX1NPQ19NQUlMQk9YPW0KK0NPTkZJR19TVU42SV9NU0dCT1g9bQorQ09ORklHX0lPTU1VX0lP VkE9bQorQ09ORklHX0lPTU1VX0FQST15CitDT05GSUdfSU9NTVVfU1VQUE9SVD15CisKKyMKKyMg R2VuZXJpYyBJT01NVSBQYWdldGFibGUgU3VwcG9ydAorIworIyBlbmQgb2YgR2VuZXJpYyBJT01N VSBQYWdldGFibGUgU3VwcG9ydAorCisjIENPTkZJR19JT01NVV9ERUJVR0ZTIGlzIG5vdCBzZXQK KyMgQ09ORklHX0lPTU1VX0RFRkFVTFRfRE1BX1NUUklDVCBpcyBub3Qgc2V0CisjIENPTkZJR19J T01NVV9ERUZBVUxUX0RNQV9MQVpZIGlzIG5vdCBzZXQKK0NPTkZJR19JT01NVV9ERUZBVUxUX1BB U1NUSFJPVUdIPXkKK0NPTkZJR19PRl9JT01NVT15CitDT05GSUdfSU9NTVVGRD1tCitDT05GSUdf U1VONTBJX0lPTU1VPXkKKyMgQ09ORklHX0lQTU1VX1ZNU0EgaXMgbm90IHNldAorCisjCisjIFJl bW90ZXByb2MgZHJpdmVycworIworQ09ORklHX1JFTU9URVBST0M9eQorQ09ORklHX1JFTU9URVBS T0NfQ0RFVj15CitDT05GSUdfUkNBUl9SRU1PVEVQUk9DPW0KKyMgZW5kIG9mIFJlbW90ZXByb2Mg ZHJpdmVycworCisjCisjIFJwbXNnIGRyaXZlcnMKKyMKK0NPTkZJR19SUE1TRz1tCitDT05GSUdf UlBNU0dfQ0hBUj1tCitDT05GSUdfUlBNU0dfQ1RSTD1tCitDT05GSUdfUlBNU0dfTlM9bQorQ09O RklHX1JQTVNHX1FDT01fR0xJTks9bQorQ09ORklHX1JQTVNHX1FDT01fR0xJTktfUlBNPW0KK0NP TkZJR19SUE1TR19WSVJUSU89bQorIyBlbmQgb2YgUnBtc2cgZHJpdmVycworCitDT05GSUdfU09V TkRXSVJFPXkKKworIworIyBTb3VuZFdpcmUgRGV2aWNlcworIworQ09ORklHX1NPVU5EV0lSRV9R Q09NPW0KKworIworIyBTT0MgKFN5c3RlbSBPbiBDaGlwKSBzcGVjaWZpYyBEcml2ZXJzCisjCisK KyMKKyMgQW1sb2dpYyBTb0MgZHJpdmVycworIworIyBlbmQgb2YgQW1sb2dpYyBTb0MgZHJpdmVy cworCisjCisjIEJyb2FkY29tIFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBCcm9hZGNvbSBTb0Mg ZHJpdmVycworCisjCisjIE5YUC9GcmVlc2NhbGUgUW9ySVEgU29DIGRyaXZlcnMKKyMKKyMgZW5k IG9mIE5YUC9GcmVlc2NhbGUgUW9ySVEgU29DIGRyaXZlcnMKKworIworIyBmdWppdHN1IFNvQyBk cml2ZXJzCisjCisjIGVuZCBvZiBmdWppdHN1IFNvQyBkcml2ZXJzCisKKyMKKyMgaS5NWCBTb0Mg ZHJpdmVycworIworIyBlbmQgb2YgaS5NWCBTb0MgZHJpdmVycworCisjCisjIEVuYWJsZSBMaXRl WCBTb0MgQnVpbGRlciBzcGVjaWZpYyBkcml2ZXJzCisjCisjIENPTkZJR19MSVRFWF9TT0NfQ09O VFJPTExFUiBpcyBub3Qgc2V0CisjIGVuZCBvZiBFbmFibGUgTGl0ZVggU29DIEJ1aWxkZXIgc3Bl Y2lmaWMgZHJpdmVycworCitDT05GSUdfUE9MQVJGSVJFX1NPQ19TWVNfQ1RSTD1tCitDT05GSUdf V1BDTTQ1MF9TT0M9bQorCisjCisjIFF1YWxjb21tIFNvQyBkcml2ZXJzCisjCitDT05GSUdfUUNP TV9QRFJfSEVMUEVSUz1tCitDT05GSUdfUUNPTV9QTUlDX0dMSU5LPW0KK0NPTkZJR19RQ09NX1FN SV9IRUxQRVJTPW0KKyMgZW5kIG9mIFF1YWxjb21tIFNvQyBkcml2ZXJzCisKK0NPTkZJR19TT0Nf UkVORVNBUz15CitDT05GSUdfQVJDSF9SWkcyTD15CitDT05GSUdfQVJDSF9SOUEwN0cwNDM9eQor Q09ORklHX1NJRklWRV9DQ0FDSEU9eQorQ09ORklHX0pINzFYWF9QTVU9eQorQ09ORklHX1NVTlhJ X1NSQU09eQorQ09ORklHX1NVTjIwSV9QUFU9eQorQ09ORklHX1NPQ19UST15CisKKyMKKyMgWGls aW54IFNvQyBkcml2ZXJzCisjCisjIGVuZCBvZiBYaWxpbnggU29DIGRyaXZlcnMKKyMgZW5kIG9m IFNPQyAoU3lzdGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMKKworQ09ORklHX1BNX0RFVkZS RVE9eQorCisjCisjIERFVkZSRVEgR292ZXJub3JzCisjCitDT05GSUdfREVWRlJFUV9HT1ZfU0lN UExFX09OREVNQU5EPXkKK0NPTkZJR19ERVZGUkVRX0dPVl9QRVJGT1JNQU5DRT1tCitDT05GSUdf REVWRlJFUV9HT1ZfUE9XRVJTQVZFPW0KK0NPTkZJR19ERVZGUkVRX0dPVl9VU0VSU1BBQ0U9bQor Q09ORklHX0RFVkZSRVFfR09WX1BBU1NJVkU9eQorCisjCisjIERFVkZSRVEgRHJpdmVycworIwor Q09ORklHX0FSTV9TVU44SV9BMzNfTUJVU19ERVZGUkVRPW0KK0NPTkZJR19QTV9ERVZGUkVRX0VW RU5UPXkKK0NPTkZJR19FWFRDT049eQorCisjCisjIEV4dGNvbiBEZXZpY2UgRHJpdmVycworIwor IyBDT05GSUdfRVhUQ09OX0FEQ19KQUNLIGlzIG5vdCBzZXQKK0NPTkZJR19FWFRDT05fRlNBOTQ4 MD1tCitDT05GSUdfRVhUQ09OX0dQSU89bQorQ09ORklHX0VYVENPTl9NQVgzMzU1PW0KK0NPTkZJ R19FWFRDT05fUFRONTE1MD1tCisjIENPTkZJR19FWFRDT05fUlQ4OTczQSBpcyBub3Qgc2V0CitD T05GSUdfRVhUQ09OX1NNNTUwMj1tCisjIENPTkZJR19FWFRDT05fVVNCX0dQSU8gaXMgbm90IHNl dAorQ09ORklHX0VYVENPTl9VU0JDX1RVU0IzMjA9bQorQ09ORklHX01FTU9SWT15CitDT05GSUdf QVJNX1BMMTcyX01QTUM9bQorQ09ORklHX0ZQR0FfREZMX0VNSUY9bQorQ09ORklHX1JFTkVTQVNf UlBDSUY9bQorQ09ORklHX0lJTz1tCitDT05GSUdfSUlPX0JVRkZFUj15CitDT05GSUdfSUlPX0JV RkZFUl9DQj1tCitDT05GSUdfSUlPX0JVRkZFUl9ETUE9bQorQ09ORklHX0lJT19CVUZGRVJfRE1B RU5HSU5FPW0KK0NPTkZJR19JSU9fQlVGRkVSX0hXX0NPTlNVTUVSPW0KK0NPTkZJR19JSU9fS0ZJ Rk9fQlVGPW0KK0NPTkZJR19JSU9fVFJJR0dFUkVEX0JVRkZFUj1tCitDT05GSUdfSUlPX0NPTkZJ R0ZTPW0KK0NPTkZJR19JSU9fR1RTX0hFTFBFUj1tCitDT05GSUdfSUlPX1RSSUdHRVI9eQorQ09O RklHX0lJT19DT05TVU1FUlNfUEVSX1RSSUdHRVI9MgorQ09ORklHX0lJT19TV19ERVZJQ0U9bQor Q09ORklHX0lJT19TV19UUklHR0VSPW0KK0NPTkZJR19JSU9fVFJJR0dFUkVEX0VWRU5UPW0KKwor IworIyBBY2NlbGVyb21ldGVycworIworIyBDT05GSUdfQURJUzE2MjAxIGlzIG5vdCBzZXQKKyMg Q09ORklHX0FESVMxNjIwOSBpcyBub3Qgc2V0CitDT05GSUdfQURYTDMxMz1tCitDT05GSUdfQURY TDMxM19JMkM9bQorQ09ORklHX0FEWEwzMTNfU1BJPW0KK0NPTkZJR19BRFhMMzU1PW0KK0NPTkZJ R19BRFhMMzU1X0kyQz1tCitDT05GSUdfQURYTDM1NV9TUEk9bQorQ09ORklHX0FEWEwzNjc9bQor Q09ORklHX0FEWEwzNjdfU1BJPW0KK0NPTkZJR19BRFhMMzY3X0kyQz1tCitDT05GSUdfQURYTDM3 Mj1tCitDT05GSUdfQURYTDM3Ml9TUEk9bQorQ09ORklHX0FEWEwzNzJfSTJDPW0KK0NPTkZJR19C TUEyMjA9bQorQ09ORklHX0JNQTQwMD1tCitDT05GSUdfQk1BNDAwX0kyQz1tCitDT05GSUdfQk1B NDAwX1NQST1tCitDT05GSUdfQk1DMTUwX0FDQ0VMPW0KK0NPTkZJR19CTUMxNTBfQUNDRUxfSTJD PW0KK0NPTkZJR19CTUMxNTBfQUNDRUxfU1BJPW0KK0NPTkZJR19CTUkwODhfQUNDRUw9bQorQ09O RklHX0JNSTA4OF9BQ0NFTF9TUEk9bQorQ09ORklHX0RBMjgwPW0KK0NPTkZJR19EQTMxMT1tCitD T05GSUdfRE1BUkQwNj1tCitDT05GSUdfRE1BUkQwOT1tCitDT05GSUdfRE1BUkQxMD1tCitDT05G SUdfRlhMUzg5NjJBRj1tCitDT05GSUdfRlhMUzg5NjJBRl9JMkM9bQorQ09ORklHX0ZYTFM4OTYy QUZfU1BJPW0KK0NPTkZJR19ISURfU0VOU09SX0FDQ0VMXzNEPW0KK0NPTkZJR19JSU9fS1gwMjJB PW0KK0NPTkZJR19JSU9fS1gwMjJBX1NQST1tCitDT05GSUdfSUlPX0tYMDIyQV9JMkM9bQorIyBD T05GSUdfS1hTRDkgaXMgbm90IHNldAorIyBDT05GSUdfS1hDSksxMDEzIGlzIG5vdCBzZXQKK0NP TkZJR19NQzMyMzA9bQorQ09ORklHX01NQTc0NTU9bQorQ09ORklHX01NQTc0NTVfSTJDPW0KK0NP TkZJR19NTUE3NDU1X1NQST1tCitDT05GSUdfTU1BNzY2MD1tCisjIENPTkZJR19NTUE4NDUyIGlz IG5vdCBzZXQKK0NPTkZJR19NTUE5NTUxX0NPUkU9bQorQ09ORklHX01NQTk1NTE9bQorQ09ORklH X01NQTk1NTM9bQorQ09ORklHX01TQTMxMT1tCitDT05GSUdfTVhDNDAwNT1tCitDT05GSUdfTVhD NjI1NT1tCisjIENPTkZJR19TQ0EzMDAwIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0EzMzAwPW0KK0NP TkZJR19TVEs4MzEyPW0KK0NPTkZJR19TVEs4QkE1MD1tCisjIGVuZCBvZiBBY2NlbGVyb21ldGVy cworCisjCisjIEFuYWxvZyB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKyMKK0NPTkZJR19BRF9TSUdN QV9ERUxUQT1tCitDT05GSUdfQUQ0MTMwPW0KK0NPTkZJR19BRDcwOTFSNT1tCitDT05GSUdfQUQ3 MTI0PW0KKyMgQ09ORklHX0FENzE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19BRDcyNjYgaXMgbm90 IHNldAorIyBDT05GSUdfQUQ3MjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzI5MSBpcyBub3Qg c2V0CitDT05GSUdfQUQ3MjkyPW0KKyMgQ09ORklHX0FENzI5OCBpcyBub3Qgc2V0CisjIENPTkZJ R19BRDc0NzYgaXMgbm90IHNldAorQ09ORklHX0FENzYwNj1tCitDT05GSUdfQUQ3NjA2X0lGQUNF X1BBUkFMTEVMPW0KK0NPTkZJR19BRDc2MDZfSUZBQ0VfU1BJPW0KK0NPTkZJR19BRDc3NjY9bQor Q09ORklHX0FENzc2OF8xPW0KKyMgQ09ORklHX0FENzc4MCBpcyBub3Qgc2V0CisjIENPTkZJR19B RDc3OTEgaXMgbm90IHNldAorIyBDT05GSUdfQUQ3NzkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FE Nzg4NyBpcyBub3Qgc2V0CisjIENPTkZJR19BRDc5MjMgaXMgbm90IHNldAorQ09ORklHX0FENzk0 OT1tCisjIENPTkZJR19BRDc5OVggaXMgbm90IHNldAorQ09ORklHX0FEOTQ2Nz1tCitDT05GSUdf QURJX0FYSV9BREM9bQorQ09ORklHX0FYUDIwWF9BREM9bQorQ09ORklHX0FYUDI4OF9BREM9bQor IyBDT05GSUdfQ0MxMDAwMV9BREMgaXMgbm90IHNldAorQ09ORklHX0NQQ0FQX0FEQz1tCitDT05G SUdfRExOMl9BREM9bQorQ09ORklHX0VOVkVMT1BFX0RFVEVDVE9SPW0KK0NPTkZJR19ISTg0MzU9 bQorQ09ORklHX0hYNzExPW0KK0NPTkZJR19JTkEyWFhfQURDPW0KK0NPTkZJR19MVEMyNDcxPW0K K0NPTkZJR19MVEMyNDg1PW0KK0NPTkZJR19MVEMyNDk2PW0KK0NPTkZJR19MVEMyNDk3PW0KKyMg Q09ORklHX01BWDEwMjcgaXMgbm90IHNldAorQ09ORklHX01BWDExMTAwPW0KK0NPTkZJR19NQVgx MTE4PW0KK0NPTkZJR19NQVgxMTIwNT1tCitDT05GSUdfTUFYMTE0MTA9bQorQ09ORklHX01BWDEy NDE9bQorIyBDT05GSUdfTUFYMTM2MyBpcyBub3Qgc2V0CitDT05GSUdfTUFYOTYxMT1tCisjIENP TkZJR19NQ1AzMjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX01DUDM0MjIgaXMgbm90IHNldAorQ09O RklHX01DUDM5MTE9bQorQ09ORklHX01FRElBVEVLX01UNjM3MF9BREM9bQorQ09ORklHX01QMjYy OV9BREM9bQorIyBDT05GSUdfTkFVNzgwMiBpcyBub3Qgc2V0CitDT05GSUdfUUNPTV9WQURDX0NP TU1PTj1tCisjIENPTkZJR19RQ09NX1NQTUlfSUFEQyBpcyBub3Qgc2V0CisjIENPTkZJR19RQ09N X1NQTUlfVkFEQyBpcyBub3Qgc2V0CitDT05GSUdfUUNPTV9TUE1JX0FEQzU9bQorQ09ORklHX1JJ Q0hURUtfUlRRNjA1Nj1tCitDT05GSUdfUlpHMkxfQURDPW0KK0NPTkZJR19TRF9BRENfTU9EVUxB VE9SPW0KK0NPTkZJR19TVU40SV9HUEFEQz1tCisjIENPTkZJR19USV9BREMwODFDIGlzIG5vdCBz ZXQKK0NPTkZJR19USV9BREMwODMyPW0KK0NPTkZJR19USV9BREMwODRTMDIxPW0KK0NPTkZJR19U SV9BREMxMjEzOD1tCitDT05GSUdfVElfQURDMTA4UzEwMj1tCisjIENPTkZJR19USV9BREMxMjhT MDUyIGlzIG5vdCBzZXQKK0NPTkZJR19USV9BREMxNjFTNjI2PW0KK0NPTkZJR19USV9BRFMxMDE1 PW0KK0NPTkZJR19USV9BRFM3OTI0PW0KK0NPTkZJR19USV9BRFMxMTAwPW0KK0NPTkZJR19USV9B RFM3OTUwPW0KK0NPTkZJR19USV9BRFM4MzQ0PW0KKyMgQ09ORklHX1RJX0FEUzg2ODggaXMgbm90 IHNldAorQ09ORklHX1RJX0FEUzEyNFMwOD1tCitDT05GSUdfVElfQURTMTMxRTA4PW0KKyMgQ09O RklHX1RJX0FNMzM1WF9BREMgaXMgbm90IHNldAorQ09ORklHX1RJX0xNUDkyMDY0PW0KK0NPTkZJ R19USV9UTEM0NTQxPW0KK0NPTkZJR19USV9UU0MyMDQ2PW0KKyMgQ09ORklHX1ZGNjEwX0FEQyBp cyBub3Qgc2V0CisjIENPTkZJR19WSVBFUkJPQVJEX0FEQyBpcyBub3Qgc2V0CitDT05GSUdfWElM SU5YX1hBREM9bQorIyBlbmQgb2YgQW5hbG9nIHRvIGRpZ2l0YWwgY29udmVydGVycworCisjCisj IEFuYWxvZyB0byBkaWdpdGFsIGFuZCBkaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCisjCitD T05GSUdfQUQ3NDExNT1tCitDT05GSUdfQUQ3NDQxM1I9bQorIyBlbmQgb2YgQW5hbG9nIHRvIGRp Z2l0YWwgYW5kIGRpZ2l0YWwgdG8gYW5hbG9nIGNvbnZlcnRlcnMKKworIworIyBBbmFsb2cgRnJv bnQgRW5kcworIworQ09ORklHX0lJT19SRVNDQUxFPW0KKyMgZW5kIG9mIEFuYWxvZyBGcm9udCBF bmRzCisKKyMKKyMgQW1wbGlmaWVycworIworIyBDT05GSUdfQUQ4MzY2IGlzIG5vdCBzZXQKK0NP TkZJR19BREE0MjUwPW0KK0NPTkZJR19ITUM0MjU9bQorIyBlbmQgb2YgQW1wbGlmaWVycworCisj CisjIENhcGFjaXRhbmNlIHRvIGRpZ2l0YWwgY29udmVydGVycworIworIyBDT05GSUdfQUQ3MTUw IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENzc0NiBpcyBub3Qgc2V0CisjIGVuZCBvZiBDYXBhY2l0 YW5jZSB0byBkaWdpdGFsIGNvbnZlcnRlcnMKKworIworIyBDaGVtaWNhbCBTZW5zb3JzCisjCitD T05GSUdfQVRMQVNfUEhfU0VOU09SPW0KK0NPTkZJR19BVExBU19FWk9fU0VOU09SPW0KK0NPTkZJ R19CTUU2ODA9bQorQ09ORklHX0JNRTY4MF9JMkM9bQorQ09ORklHX0JNRTY4MF9TUEk9bQorQ09O RklHX0NDUzgxMT1tCitDT05GSUdfSUFRQ09SRT1tCitDT05GSUdfUE1TNzAwMz1tCitDT05GSUdf U0NEMzBfQ09SRT1tCitDT05GSUdfU0NEMzBfSTJDPW0KK0NPTkZJR19TQ0QzMF9TRVJJQUw9bQor Q09ORklHX1NDRDRYPW0KKyMgQ09ORklHX1NFTlNJUklPTl9TR1AzMCBpcyBub3Qgc2V0CisjIENP TkZJR19TRU5TSVJJT05fU0dQNDAgaXMgbm90IHNldAorQ09ORklHX1NQUzMwPW0KK0NPTkZJR19T UFMzMF9JMkM9bQorQ09ORklHX1NQUzMwX1NFUklBTD1tCitDT05GSUdfU0VOU0VBSVJfU1VOUklT RV9DTzI9bQorQ09ORklHX1ZaODlYPW0KKyMgZW5kIG9mIENoZW1pY2FsIFNlbnNvcnMKKworIwor IyBIaWQgU2Vuc29yIElJTyBDb21tb24KKyMKK0NPTkZJR19ISURfU0VOU09SX0lJT19DT01NT049 bQorQ09ORklHX0hJRF9TRU5TT1JfSUlPX1RSSUdHRVI9bQorIyBlbmQgb2YgSGlkIFNlbnNvciBJ SU8gQ29tbW9uCisKK0NPTkZJR19JSU9fTVNfU0VOU09SU19JMkM9bQorCisjCisjIElJTyBTQ01J IFNlbnNvcnMKKyMKKyMgZW5kIG9mIElJTyBTQ01JIFNlbnNvcnMKKworIworIyBTU1AgU2Vuc29y IENvbW1vbgorIworIyBDT05GSUdfSUlPX1NTUF9TRU5TT1JIVUIgaXMgbm90IHNldAorIyBlbmQg b2YgU1NQIFNlbnNvciBDb21tb24KKworQ09ORklHX0lJT19TVF9TRU5TT1JTX0kyQz1tCitDT05G SUdfSUlPX1NUX1NFTlNPUlNfU1BJPW0KK0NPTkZJR19JSU9fU1RfU0VOU09SU19DT1JFPW0KKwor IworIyBEaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCisjCitDT05GSUdfQUQzNTUyUj1tCisj IENPTkZJR19BRDUwNjQgaXMgbm90IHNldAorIyBDT05GSUdfQUQ1MzYwIGlzIG5vdCBzZXQKKyMg Q09ORklHX0FENTM4MCBpcyBub3Qgc2V0CisjIENPTkZJR19BRDU0MjEgaXMgbm90IHNldAorIyBD T05GSUdfQUQ1NDQ2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTQ0OSBpcyBub3Qgc2V0CitDT05G SUdfQUQ1NTkyUl9CQVNFPW0KK0NPTkZJR19BRDU1OTJSPW0KKyMgQ09ORklHX0FENTU5M1IgaXMg bm90IHNldAorIyBDT05GSUdfQUQ1NTA0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FENTYyNFJfU1BJ IGlzIG5vdCBzZXQKK0NPTkZJR19MVEMyNjg4PW0KK0NPTkZJR19BRDU2ODY9bQorQ09ORklHX0FE NTY4Nl9TUEk9bQorQ09ORklHX0FENTY5Nl9JMkM9bQorIyBDT05GSUdfQUQ1NzU1IGlzIG5vdCBz ZXQKK0NPTkZJR19BRDU3NTg9bQorQ09ORklHX0FENTc2MT1tCisjIENPTkZJR19BRDU3NjQgaXMg bm90IHNldAorIyBDT05GSUdfQUQ1NzY2IGlzIG5vdCBzZXQKK0NPTkZJR19BRDU3NzBSPW0KKyMg Q09ORklHX0FENTc5MSBpcyBub3Qgc2V0CitDT05GSUdfQUQ3MjkzPW0KKyMgQ09ORklHX0FENzMw MyBpcyBub3Qgc2V0CitDT05GSUdfQUQ4ODAxPW0KK0NPTkZJR19EUE9UX0RBQz1tCitDT05GSUdf RFM0NDI0PW0KK0NPTkZJR19MVEMxNjYwPW0KK0NPTkZJR19MVEMyNjMyPW0KK0NPTkZJR19NNjIz MzI9bQorIyBDT05GSUdfTUFYNTE3IGlzIG5vdCBzZXQKK0NPTkZJR19NQVg1NTIyPW0KKyMgQ09O RklHX01BWDU4MjEgaXMgbm90IHNldAorIyBDT05GSUdfTUNQNDcyNSBpcyBub3Qgc2V0CisjIENP TkZJR19NQ1A0OTIyIGlzIG5vdCBzZXQKK0NPTkZJR19USV9EQUMwODJTMDg1PW0KK0NPTkZJR19U SV9EQUM1NTcxPW0KK0NPTkZJR19USV9EQUM3MzExPW0KK0NPTkZJR19USV9EQUM3NjEyPW0KKyMg Q09ORklHX1ZGNjEwX0RBQyBpcyBub3Qgc2V0CisjIGVuZCBvZiBEaWdpdGFsIHRvIGFuYWxvZyBj b252ZXJ0ZXJzCisKKyMKKyMgSUlPIGR1bW15IGRyaXZlcgorIworIyBDT05GSUdfSUlPX1NJTVBM RV9EVU1NWSBpcyBub3Qgc2V0CisjIGVuZCBvZiBJSU8gZHVtbXkgZHJpdmVyCisKKyMKKyMgRmls dGVycworIworQ09ORklHX0FETVY4ODE4PW0KKyMgZW5kIG9mIEZpbHRlcnMKKworIworIyBGcmVx dWVuY3kgU3ludGhlc2l6ZXJzIEREUy9QTEwKKyMKKworIworIyBDbG9jayBHZW5lcmF0b3IvRGlz dHJpYnV0aW9uCisjCisjIENPTkZJR19BRDk1MjMgaXMgbm90IHNldAorIyBlbmQgb2YgQ2xvY2sg R2VuZXJhdG9yL0Rpc3RyaWJ1dGlvbgorCisjCisjIFBoYXNlLUxvY2tlZCBMb29wIChQTEwpIGZy ZXF1ZW5jeSBzeW50aGVzaXplcnMKKyMKKyMgQ09ORklHX0FERjQzNTAgaXMgbm90IHNldAorQ09O RklHX0FERjQzNzE9bQorQ09ORklHX0FERjQzNzc9bQorQ09ORklHX0FETVYxMDEzPW0KK0NPTkZJ R19BRE1WMTAxND1tCitDT05GSUdfQURNVjQ0MjA9bQorIyBDT05GSUdfQURSRjY3ODAgaXMgbm90 IHNldAorIyBlbmQgb2YgUGhhc2UtTG9ja2VkIExvb3AgKFBMTCkgZnJlcXVlbmN5IHN5bnRoZXNp emVycworIyBlbmQgb2YgRnJlcXVlbmN5IFN5bnRoZXNpemVycyBERFMvUExMCisKKyMKKyMgRGln aXRhbCBneXJvc2NvcGUgc2Vuc29ycworIworIyBDT05GSUdfQURJUzE2MDgwIGlzIG5vdCBzZXQK KyMgQ09ORklHX0FESVMxNjEzMCBpcyBub3Qgc2V0CisjIENPTkZJR19BRElTMTYxMzYgaXMgbm90 IHNldAorIyBDT05GSUdfQURJUzE2MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19BRFhSUzI5MD1tCisj IENPTkZJR19BRFhSUzQ1MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTUcxNjAgaXMgbm90IHNldAor Q09ORklHX0ZYQVMyMTAwMkM9bQorQ09ORklHX0ZYQVMyMTAwMkNfSTJDPW0KK0NPTkZJR19GWEFT MjEwMDJDX1NQST1tCitDT05GSUdfSElEX1NFTlNPUl9HWVJPXzNEPW0KK0NPTkZJR19NUFUzMDUw PW0KK0NPTkZJR19NUFUzMDUwX0kyQz1tCisjIENPTkZJR19JSU9fU1RfR1lST18zQVhJUyBpcyBu b3Qgc2V0CisjIENPTkZJR19JVEczMjAwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIERpZ2l0YWwgZ3ly b3Njb3BlIHNlbnNvcnMKKworIworIyBIZWFsdGggU2Vuc29ycworIworCisjCisjIEhlYXJ0IFJh dGUgTW9uaXRvcnMKKyMKK0NPTkZJR19BRkU0NDAzPW0KK0NPTkZJR19BRkU0NDA0PW0KK0NPTkZJ R19NQVgzMDEwMD1tCitDT05GSUdfTUFYMzAxMDI9bQorIyBlbmQgb2YgSGVhcnQgUmF0ZSBNb25p dG9ycworIyBlbmQgb2YgSGVhbHRoIFNlbnNvcnMKKworIworIyBIdW1pZGl0eSBzZW5zb3JzCisj CitDT05GSUdfQU0yMzE1PW0KKyMgQ09ORklHX0RIVDExIGlzIG5vdCBzZXQKK0NPTkZJR19IREMx MDBYPW0KK0NPTkZJR19IREMyMDEwPW0KK0NPTkZJR19ISURfU0VOU09SX0hVTUlESVRZPW0KK0NP TkZJR19IVFMyMjE9bQorQ09ORklHX0hUUzIyMV9JMkM9bQorQ09ORklHX0hUUzIyMV9TUEk9bQor Q09ORklHX0hUVTIxPW0KKyMgQ09ORklHX1NJNzAwNSBpcyBub3Qgc2V0CisjIENPTkZJR19TSTcw MjAgaXMgbm90IHNldAorIyBlbmQgb2YgSHVtaWRpdHkgc2Vuc29ycworCisjCisjIEluZXJ0aWFs IG1lYXN1cmVtZW50IHVuaXRzCisjCisjIENPTkZJR19BRElTMTY0MDAgaXMgbm90IHNldAorQ09O RklHX0FESVMxNjQ2MD1tCitDT05GSUdfQURJUzE2NDc1PW0KKyMgQ09ORklHX0FESVMxNjQ4MCBp cyBub3Qgc2V0CitDT05GSUdfQk1JMTYwPW0KK0NPTkZJR19CTUkxNjBfSTJDPW0KK0NPTkZJR19C TUkxNjBfU1BJPW0KK0NPTkZJR19CT1NDSF9CTk8wNTU9bQorQ09ORklHX0JPU0NIX0JOTzA1NV9T RVJJQUw9bQorQ09ORklHX0JPU0NIX0JOTzA1NV9JMkM9bQorQ09ORklHX0ZYT1M4NzAwPW0KK0NP TkZJR19GWE9TODcwMF9JMkM9bQorQ09ORklHX0ZYT1M4NzAwX1NQST1tCitDT05GSUdfS01YNjE9 bQorQ09ORklHX0lOVl9JQ000MjYwMD1tCitDT05GSUdfSU5WX0lDTTQyNjAwX0kyQz1tCitDT05G SUdfSU5WX0lDTTQyNjAwX1NQST1tCitDT05GSUdfSU5WX01QVTYwNTBfSUlPPW0KK0NPTkZJR19J TlZfTVBVNjA1MF9JMkM9bQorQ09ORklHX0lOVl9NUFU2MDUwX1NQST1tCitDT05GSUdfSUlPX1NU X0xTTTZEU1g9bQorQ09ORklHX0lJT19TVF9MU002RFNYX0kyQz1tCitDT05GSUdfSUlPX1NUX0xT TTZEU1hfU1BJPW0KK0NPTkZJR19JSU9fU1RfTFNNNkRTWF9JM0M9bQorIyBlbmQgb2YgSW5lcnRp YWwgbWVhc3VyZW1lbnQgdW5pdHMKKworQ09ORklHX0lJT19BRElTX0xJQj1tCitDT05GSUdfSUlP X0FESVNfTElCX0JVRkZFUj15CisKKyMKKyMgTGlnaHQgc2Vuc29ycworIworIyBDT05GSUdfQURK RF9TMzExIGlzIG5vdCBzZXQKK0NPTkZJR19BRFVYMTAyMD1tCitDT05GSUdfQUwzMDEwPW0KKyMg Q09ORklHX0FMMzMyMEEgaXMgbm90IHNldAorIyBDT05GSUdfQVBEUzkzMDAgaXMgbm90IHNldAor Q09ORklHX0FQRFM5OTYwPW0KK0NPTkZJR19BUzczMjExPW0KKyMgQ09ORklHX0JIMTc1MCBpcyBu b3Qgc2V0CisjIENPTkZJR19CSDE3ODAgaXMgbm90IHNldAorIyBDT05GSUdfQ00zMjE4MSBpcyBu b3Qgc2V0CitDT05GSUdfQ00zMjMyPW0KK0NPTkZJR19DTTMzMjM9bQorQ09ORklHX0NNMzYwNT1t CisjIENPTkZJR19DTTM2NjUxIGlzIG5vdCBzZXQKK0NPTkZJR19HUDJBUDAwMj1tCisjIENPTkZJ R19HUDJBUDAyMEEwMEYgaXMgbm90IHNldAorQ09ORklHX0lRUzYyMV9BTFM9bQorIyBDT05GSUdf U0VOU09SU19JU0wyOTAxOCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lTTDI5MDI4IGlz IG5vdCBzZXQKKyMgQ09ORklHX0lTTDI5MTI1IGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU0VOU09S X0FMUz1tCitDT05GSUdfSElEX1NFTlNPUl9QUk9YPW0KK0NPTkZJR19KU0ExMjEyPW0KK0NPTkZJ R19ST0hNX0JVMjcwMzQ9bQorQ09ORklHX1JQUjA1MjE9bQorIyBDT05GSUdfU0VOU09SU19MTTM1 MzMgaXMgbm90IHNldAorIyBDT05GSUdfTFRSNTAxIGlzIG5vdCBzZXQKK0NPTkZJR19MVFJGMjE2 QT1tCitDT05GSUdfTFYwMTA0Q1M9bQorIyBDT05GSUdfTUFYNDQwMDAgaXMgbm90IHNldAorQ09O RklHX01BWDQ0MDA5PW0KK0NPTkZJR19OT0ExMzA1PW0KK0NPTkZJR19PUFQzMDAxPW0KK0NPTkZJ R19QQTEyMjAzMDAxPW0KK0NPTkZJR19TSTExMzM9bQorQ09ORklHX1NJMTE0NT1tCisjIENPTkZJ R19TVEszMzEwIGlzIG5vdCBzZXQKK0NPTkZJR19TVF9VVklTMjU9bQorQ09ORklHX1NUX1VWSVMy NV9JMkM9bQorQ09ORklHX1NUX1VWSVMyNV9TUEk9bQorIyBDT05GSUdfVENTMzQxNCBpcyBub3Qg c2V0CisjIENPTkZJR19UQ1MzNDcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU2 MyBpcyBub3Qgc2V0CisjIENPTkZJR19UU0wyNTgzIGlzIG5vdCBzZXQKK0NPTkZJR19UU0wyNTkx PW0KK0NPTkZJR19UU0wyNzcyPW0KKyMgQ09ORklHX1RTTDQ1MzEgaXMgbm90IHNldAorQ09ORklH X1VTNTE4MkQ9bQorIyBDT05GSUdfVkNOTDQwMDAgaXMgbm90IHNldAorQ09ORklHX1ZDTkw0MDM1 PW0KK0NPTkZJR19WRU1MNjAzMD1tCisjIENPTkZJR19WRU1MNjA3MCBpcyBub3Qgc2V0CitDT05G SUdfVkw2MTgwPW0KK0NPTkZJR19aT1BUMjIwMT1tCisjIGVuZCBvZiBMaWdodCBzZW5zb3JzCisK KyMKKyMgTWFnbmV0b21ldGVyIHNlbnNvcnMKKyMKK0NPTkZJR19BSzg5NzQ9bQorIyBDT05GSUdf QUs4OTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FLMDk5MTEgaXMgbm90IHNldAorIyBDT05GSUdf Qk1DMTUwX01BR05fSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JNQzE1MF9NQUdOX1NQSSBpcyBu b3Qgc2V0CisjIENPTkZJR19NQUczMTEwIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU0VOU09SX01B R05FVE9NRVRFUl8zRD1tCisjIENPTkZJR19NTUMzNTI0MCBpcyBub3Qgc2V0CitDT05GSUdfSUlP X1NUX01BR05fM0FYSVM9bQorQ09ORklHX0lJT19TVF9NQUdOX0kyQ18zQVhJUz1tCitDT05GSUdf SUlPX1NUX01BR05fU1BJXzNBWElTPW0KKyMgQ09ORklHX1NFTlNPUlNfSE1DNTg0M19JMkMgaXMg bm90IHNldAorIyBDT05GSUdfU0VOU09SU19ITUM1ODQzX1NQSSBpcyBub3Qgc2V0CitDT05GSUdf U0VOU09SU19STTMxMDA9bQorQ09ORklHX1NFTlNPUlNfUk0zMTAwX0kyQz1tCitDT05GSUdfU0VO U09SU19STTMxMDBfU1BJPW0KK0NPTkZJR19USV9UTUFHNTI3Mz1tCisjIENPTkZJR19ZQU1BSEFf WUFTNTMwIGlzIG5vdCBzZXQKKyMgZW5kIG9mIE1hZ25ldG9tZXRlciBzZW5zb3JzCisKKyMKKyMg TXVsdGlwbGV4ZXJzCisjCitDT05GSUdfSUlPX01VWD1tCisjIGVuZCBvZiBNdWx0aXBsZXhlcnMK KworIworIyBJbmNsaW5vbWV0ZXIgc2Vuc29ycworIworQ09ORklHX0hJRF9TRU5TT1JfSU5DTElO T01FVEVSXzNEPW0KK0NPTkZJR19ISURfU0VOU09SX0RFVklDRV9ST1RBVElPTj1tCisjIGVuZCBv ZiBJbmNsaW5vbWV0ZXIgc2Vuc29ycworCisjCisjIFRyaWdnZXJzIC0gc3RhbmRhbG9uZQorIwor Q09ORklHX0lJT19IUlRJTUVSX1RSSUdHRVI9bQorIyBDT05GSUdfSUlPX0lOVEVSUlVQVF9UUklH R0VSIGlzIG5vdCBzZXQKK0NPTkZJR19JSU9fVElHSFRMT09QX1RSSUdHRVI9bQorIyBDT05GSUdf SUlPX1NZU0ZTX1RSSUdHRVIgaXMgbm90IHNldAorIyBlbmQgb2YgVHJpZ2dlcnMgLSBzdGFuZGFs b25lCisKKyMKKyMgTGluZWFyIGFuZCBhbmd1bGFyIHBvc2l0aW9uIHNlbnNvcnMKKyMKK0NPTkZJ R19JUVM2MjRfUE9TPW0KKyMgQ09ORklHX0hJRF9TRU5TT1JfQ1VTVE9NX0lOVEVMX0hJTkdFIGlz IG5vdCBzZXQKKyMgZW5kIG9mIExpbmVhciBhbmQgYW5ndWxhciBwb3NpdGlvbiBzZW5zb3JzCisK KyMKKyMgRGlnaXRhbCBwb3RlbnRpb21ldGVycworIworQ09ORklHX0FENTExMD1tCitDT05GSUdf QUQ1MjcyPW0KKyMgQ09ORklHX0RTMTgwMyBpcyBub3Qgc2V0CitDT05GSUdfTUFYNTQzMj1tCitD T05GSUdfTUFYNTQ4MT1tCitDT05GSUdfTUFYNTQ4Nz1tCitDT05GSUdfTUNQNDAxOD1tCisjIENP TkZJR19NQ1A0MTMxIGlzIG5vdCBzZXQKK0NPTkZJR19NQ1A0NTMxPW0KK0NPTkZJR19NQ1A0MTAx MD1tCitDT05GSUdfVFBMMDEwMj1tCisjIGVuZCBvZiBEaWdpdGFsIHBvdGVudGlvbWV0ZXJzCisK KyMKKyMgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCisjCitDT05GSUdfTE1QOTEwMDA9bQorIyBlbmQg b2YgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCisKKyMKKyMgUHJlc3N1cmUgc2Vuc29ycworIworQ09O RklHX0FCUDA2ME1HPW0KK0NPTkZJR19CTVAyODA9bQorQ09ORklHX0JNUDI4MF9JMkM9bQorQ09O RklHX0JNUDI4MF9TUEk9bQorQ09ORklHX0RMSEw2MEQ9bQorQ09ORklHX0RQUzMxMD1tCitDT05G SUdfSElEX1NFTlNPUl9QUkVTUz1tCisjIENPTkZJR19IUDAzIGlzIG5vdCBzZXQKK0NPTkZJR19J Q1AxMDEwMD1tCitDT05GSUdfTVBMMTE1PW0KK0NPTkZJR19NUEwxMTVfSTJDPW0KK0NPTkZJR19N UEwxMTVfU1BJPW0KKyMgQ09ORklHX01QTDMxMTUgaXMgbm90IHNldAorIyBDT05GSUdfTVM1NjEx IGlzIG5vdCBzZXQKK0NPTkZJR19NUzU2Mzc9bQorQ09ORklHX0lJT19TVF9QUkVTUz1tCitDT05G SUdfSUlPX1NUX1BSRVNTX0kyQz1tCitDT05GSUdfSUlPX1NUX1BSRVNTX1NQST1tCisjIENPTkZJ R19UNTQwMyBpcyBub3Qgc2V0CisjIENPTkZJR19IUDIwNkMgaXMgbm90IHNldAorQ09ORklHX1pQ QTIzMjY9bQorQ09ORklHX1pQQTIzMjZfSTJDPW0KK0NPTkZJR19aUEEyMzI2X1NQST1tCisjIGVu ZCBvZiBQcmVzc3VyZSBzZW5zb3JzCisKKyMKKyMgTGlnaHRuaW5nIHNlbnNvcnMKKyMKKyMgQ09O RklHX0FTMzkzNSBpcyBub3Qgc2V0CisjIGVuZCBvZiBMaWdodG5pbmcgc2Vuc29ycworCisjCisj IFByb3hpbWl0eSBhbmQgZGlzdGFuY2Ugc2Vuc29ycworIworQ09ORklHX0lTTDI5NTAxPW0KK0NP TkZJR19MSURBUl9MSVRFX1YyPW0KK0NPTkZJR19NQjEyMzI9bQorQ09ORklHX1BJTkc9bQorQ09O RklHX1JGRDc3NDAyPW0KK0NPTkZJR19TUkYwND1tCitDT05GSUdfU1hfQ09NTU9OPW0KK0NPTkZJ R19TWDkzMTA9bQorQ09ORklHX1NYOTMyND1tCitDT05GSUdfU1g5MzYwPW0KK0NPTkZJR19TWDk1 MDA9bQorQ09ORklHX1NSRjA4PW0KK0NPTkZJR19WQ05MMzAyMD1tCitDT05GSUdfVkw1M0wwWF9J MkM9bQorIyBlbmQgb2YgUHJveGltaXR5IGFuZCBkaXN0YW5jZSBzZW5zb3JzCisKKyMKKyMgUmVz b2x2ZXIgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCisjCisjIENPTkZJR19BRDJTOTAgaXMgbm90IHNl dAorIyBDT05GSUdfQUQyUzEyMDAgaXMgbm90IHNldAorIyBlbmQgb2YgUmVzb2x2ZXIgdG8gZGln aXRhbCBjb252ZXJ0ZXJzCisKKyMKKyMgVGVtcGVyYXR1cmUgc2Vuc29ycworIworQ09ORklHX0lR UzYyMEFUX1RFTVA9bQorQ09ORklHX0xUQzI5ODM9bQorQ09ORklHX01BWElNX1RIRVJNT0NPVVBM RT1tCitDT05GSUdfSElEX1NFTlNPUl9URU1QPW0KKyMgQ09ORklHX01MWDkwNjE0IGlzIG5vdCBz ZXQKK0NPTkZJR19NTFg5MDYzMj1tCisjIENPTkZJR19UTVAwMDYgaXMgbm90IHNldAorQ09ORklH X1RNUDAwNz1tCitDT05GSUdfVE1QMTE3PW0KK0NPTkZJR19UU1lTMDE9bQorQ09ORklHX1RTWVMw MkQ9bQorQ09ORklHX01BWDMwMjA4PW0KK0NPTkZJR19NQVgzMTg1Nj1tCitDT05GSUdfTUFYMzE4 NjU9bQorIyBlbmQgb2YgVGVtcGVyYXR1cmUgc2Vuc29ycworCitDT05GSUdfTlRCPXkKK0NPTkZJ R19OVEJfTVNJPXkKK0NPTkZJR19OVEJfSURUPW0KKyMgQ09ORklHX05UQl9FUEYgaXMgbm90IHNl dAorQ09ORklHX05UQl9TV0lUQ0hURUM9bQorIyBDT05GSUdfTlRCX1BJTkdQT05HIGlzIG5vdCBz ZXQKKyMgQ09ORklHX05UQl9UT09MIGlzIG5vdCBzZXQKK0NPTkZJR19OVEJfUEVSRj1tCisjIENP TkZJR19OVEJfTVNJX1RFU1QgaXMgbm90IHNldAorQ09ORklHX05UQl9UUkFOU1BPUlQ9bQorQ09O RklHX1BXTT15CitDT05GSUdfUFdNX1NZU0ZTPXkKKyMgQ09ORklHX1BXTV9ERUJVRyBpcyBub3Qg c2V0CitDT05GSUdfUFdNX0FUTUVMX0hMQ0RDX1BXTT1tCitDT05GSUdfUFdNX0FUTUVMX1RDQj1t CitDT05GSUdfUFdNX0NMSz1tCitDT05GSUdfUFdNX0RXQz1tCisjIENPTkZJR19QV01fRlNMX0ZU TSBpcyBub3Qgc2V0CitDT05GSUdfUFdNX0lRUzYyMEE9bQorQ09ORklHX1BXTV9MUDM5NDM9bQor Q09ORklHX1BXTV9OVFhFQz1tCisjIENPTkZJR19QV01fUENBOTY4NSBpcyBub3Qgc2V0CitDT05G SUdfUFdNX1JDQVI9bQorQ09ORklHX1BXTV9SRU5FU0FTX1RQVT1tCitDT05GSUdfUFdNX1NJRklW RT1tCitDT05GSUdfUFdNX1NUQVJGSVZFX1BUQz1tCitDT05GSUdfUFdNX1NVTjRJPW0KK0NPTkZJ R19QV01fWElMSU5YPW0KKworIworIyBJUlEgY2hpcCBzdXBwb3J0CisjCitDT05GSUdfSVJRQ0hJ UD15CitDT05GSUdfQUxfRklDPXkKK0NPTkZJR19NQURFUkFfSVJRPW0KK0NPTkZJR19SRU5FU0FT X1JaRzJMX0lSUUM9eQorIyBDT05GSUdfWElMSU5YX0lOVEMgaXMgbm90IHNldAorQ09ORklHX1JJ U0NWX0lOVEM9eQorQ09ORklHX1NJRklWRV9QTElDPXkKKyMgZW5kIG9mIElSUSBjaGlwIHN1cHBv cnQKKworQ09ORklHX0lQQUNLX0JVUz1tCitDT05GSUdfQk9BUkRfVFBDSTIwMD1tCitDT05GSUdf U0VSSUFMX0lQT0NUQUw9bQorQ09ORklHX1JFU0VUX0NPTlRST0xMRVI9eQorQ09ORklHX1JFU0VU X1BPTEFSRklSRV9TT0M9eQorQ09ORklHX1JFU0VUX1JaRzJMX1VTQlBIWV9DVFJMPW0KK0NPTkZJ R19SRVNFVF9TSU1QTEU9eQorQ09ORklHX1JFU0VUX1NVTlhJPXkKK0NPTkZJR19SRVNFVF9USV9T WVNDT049bQorQ09ORklHX1JFU0VUX1RJX1RQUzM4MFg9bQorQ09ORklHX1JFU0VUX1NUQVJGSVZF X0pINzFYMD15CitDT05GSUdfUkVTRVRfU1RBUkZJVkVfSkg3MTAwPXkKK0NPTkZJR19SRVNFVF9T VEFSRklWRV9KSDcxMTA9eQorCisjCisjIFBIWSBTdWJzeXN0ZW0KKyMKK0NPTkZJR19HRU5FUklD X1BIWT15CitDT05GSUdfR0VORVJJQ19QSFlfTUlQSV9EUEhZPXkKK0NPTkZJR19QSFlfQ0FOX1RS QU5TQ0VJVkVSPW0KK0NPTkZJR19QSFlfU1VONElfVVNCPW0KK0NPTkZJR19QSFlfU1VONklfTUlQ SV9EUEhZPW0KK0NPTkZJR19QSFlfU1VOOUlfVVNCPW0KK0NPTkZJR19QSFlfU1VONTBJX1VTQjM9 bQorCisjCisjIFBIWSBkcml2ZXJzIGZvciBCcm9hZGNvbSBwbGF0Zm9ybXMKKyMKK0NPTkZJR19C Q01fS09OQV9VU0IyX1BIWT1tCisjIGVuZCBvZiBQSFkgZHJpdmVycyBmb3IgQnJvYWRjb20gcGxh dGZvcm1zCisKK0NPTkZJR19QSFlfQ0FERU5DRV9UT1JSRU5UPW0KK0NPTkZJR19QSFlfQ0FERU5D RV9EUEhZPW0KK0NPTkZJR19QSFlfQ0FERU5DRV9EUEhZX1JYPW0KK0NPTkZJR19QSFlfQ0FERU5D RV9TSUVSUkE9bQorQ09ORklHX1BIWV9DQURFTkNFX1NBTFZPPW0KK0NPTkZJR19QSFlfUFhBXzI4 Tk1fSFNJQz1tCitDT05GSUdfUEhZX1BYQV8yOE5NX1VTQjI9bQorQ09ORklHX1BIWV9MQU45NjZY X1NFUkRFUz1tCitDT05GSUdfUEhZX0NQQ0FQX1VTQj1tCitDT05GSUdfUEhZX01BUFBIT05FX01E TTY2MDA9bQorQ09ORklHX1BIWV9PQ0VMT1RfU0VSREVTPW0KK0NPTkZJR19QSFlfUUNPTV9VU0Jf SFM9bQorQ09ORklHX1BIWV9RQ09NX1VTQl9IU0lDPW0KK0NPTkZJR19QSFlfUjhBNzc5RjBfRVRI RVJORVRfU0VSREVTPW0KK0NPTkZJR19QSFlfUkNBUl9HRU4yPW0KK0NPTkZJR19QSFlfUkNBUl9H RU4zX1BDSUU9bQorQ09ORklHX1BIWV9SQ0FSX0dFTjNfVVNCMj1tCitDT05GSUdfUEhZX1JDQVJf R0VOM19VU0IzPW0KKyMgQ09ORklHX1BIWV9TQU1TVU5HX1VTQjIgaXMgbm90IHNldAorQ09ORklH X1BIWV9TVEFSRklWRV9EUEhZX1JYPW0KK0NPTkZJR19QSFlfU1RBUkZJVkVfSkg3MTEwX1BDSUU9 bQorQ09ORklHX1BIWV9TVEFSRklWRV9KSDcxMTBfVVNCPW0KKyMgQ09ORklHX1BIWV9UVVNCMTIx MCBpcyBub3Qgc2V0CisjIGVuZCBvZiBQSFkgU3Vic3lzdGVtCisKK0NPTkZJR19QT1dFUkNBUD15 CitDT05GSUdfSURMRV9JTkpFQ1Q9eQorIyBDT05GSUdfRFRQTSBpcyBub3Qgc2V0CisjIENPTkZJ R19NQ0IgaXMgbm90IHNldAorCisjCisjIFBlcmZvcm1hbmNlIG1vbml0b3Igc3VwcG9ydAorIwor Q09ORklHX1JJU0NWX1BNVT15CitDT05GSUdfUklTQ1ZfUE1VX0xFR0FDWT15CitDT05GSUdfUklT Q1ZfUE1VX1NCST15CisjIGVuZCBvZiBQZXJmb3JtYW5jZSBtb25pdG9yIHN1cHBvcnQKKworQ09O RklHX1JBUz15CitDT05GSUdfVVNCND1tCisjIENPTkZJR19VU0I0X0RFQlVHRlNfV1JJVEUgaXMg bm90IHNldAorIyBDT05GSUdfVVNCNF9ETUFfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQW5kcm9p ZAorIworQ09ORklHX0FORFJPSURfQklOREVSX0lQQz15CitDT05GSUdfQU5EUk9JRF9CSU5ERVJG Uz15CitDT05GSUdfQU5EUk9JRF9CSU5ERVJfREVWSUNFUz0iIgorIyBDT05GSUdfQU5EUk9JRF9C SU5ERVJfSVBDX1NFTEZURVNUIGlzIG5vdCBzZXQKKyMgZW5kIG9mIEFuZHJvaWQKKworQ09ORklH X0xJQk5WRElNTT1tCitDT05GSUdfQkxLX0RFVl9QTUVNPW0KK0NPTkZJR19ORF9DTEFJTT15CitD T05GSUdfTkRfQlRUPW0KK0NPTkZJR19CVFQ9eQorQ09ORklHX09GX1BNRU09bQorQ09ORklHX05W RElNTV9LRVlTPXkKKyMgQ09ORklHX05WRElNTV9TRUNVUklUWV9URVNUIGlzIG5vdCBzZXQKK0NP TkZJR19EQVg9eQorQ09ORklHX0RFVl9EQVg9bQorQ09ORklHX0RFVl9EQVhfQ1hMPW0KK0NPTkZJ R19OVk1FTT15CitDT05GSUdfTlZNRU1fU1lTRlM9eQorCisjCisjIExheW91dCBUeXBlcworIwor Q09ORklHX05WTUVNX0xBWU9VVF9TTDI4X1ZQRD1tCitDT05GSUdfTlZNRU1fTEFZT1VUX09OSUVf VExWPW0KKyMgZW5kIG9mIExheW91dCBUeXBlcworCisjIENPTkZJR19OVk1FTV9STUVNIGlzIG5v dCBzZXQKK0NPTkZJR19OVk1FTV9TUE1JX1NEQU09bQorQ09ORklHX05WTUVNX1NVTlhJX1NJRD1t CitDT05GSUdfTlZNRU1fVV9CT09UX0VOVj1tCisKKyMKKyMgSFcgdHJhY2luZyBzdXBwb3J0Cisj CitDT05GSUdfU1RNPXkKK0NPTkZJR19TVE1fUFJPVE9fQkFTSUM9bQorQ09ORklHX1NUTV9QUk9U T19TWVNfVD1tCisjIENPTkZJR19TVE1fRFVNTVkgaXMgbm90IHNldAorQ09ORklHX1NUTV9TT1VS Q0VfQ09OU09MRT15CisjIENPTkZJR19TVE1fU09VUkNFX0hFQVJUQkVBVCBpcyBub3Qgc2V0CitD T05GSUdfU1RNX1NPVVJDRV9GVFJBQ0U9bQorIyBDT05GSUdfSU5URUxfVEggaXMgbm90IHNldAor IyBlbmQgb2YgSFcgdHJhY2luZyBzdXBwb3J0CisKK0NPTkZJR19GUEdBPW0KK0NPTkZJR19BTFRF UkFfUFJfSVBfQ09SRT1tCitDT05GSUdfQUxURVJBX1BSX0lQX0NPUkVfUExBVD1tCitDT05GSUdf RlBHQV9NR1JfQUxURVJBX1BTX1NQST1tCitDT05GSUdfRlBHQV9NR1JfQUxURVJBX0NWUD1tCitD T05GSUdfRlBHQV9NR1JfWElMSU5YX1NQST1tCitDT05GSUdfRlBHQV9NR1JfSUNFNDBfU1BJPW0K K0NPTkZJR19GUEdBX01HUl9NQUNIWE8yX1NQST1tCitDT05GSUdfRlBHQV9CUklER0U9bQorQ09O RklHX0FMVEVSQV9GUkVFWkVfQlJJREdFPW0KK0NPTkZJR19YSUxJTlhfUFJfREVDT1VQTEVSPW0K K0NPTkZJR19GUEdBX1JFR0lPTj1tCitDT05GSUdfT0ZfRlBHQV9SRUdJT049bQorQ09ORklHX0ZQ R0FfREZMPW0KK0NPTkZJR19GUEdBX0RGTF9GTUU9bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9NR1I9 bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9CUklER0U9bQorQ09ORklHX0ZQR0FfREZMX0ZNRV9SRUdJ T049bQorQ09ORklHX0ZQR0FfREZMX0FGVT1tCisjIENPTkZJR19GUEdBX0RGTF9OSU9TX0lOVEVM X1BBQ19OMzAwMCBpcyBub3Qgc2V0CitDT05GSUdfRlBHQV9ERkxfUENJPW0KK0NPTkZJR19GUEdB X00xMF9CTUNfU0VDX1VQREFURT1tCitDT05GSUdfRlBHQV9NR1JfTUlDUk9DSElQX1NQST1tCitD T05GSUdfRlBHQV9NR1JfTEFUVElDRV9TWVNDT05GSUc9bQorQ09ORklHX0ZQR0FfTUdSX0xBVFRJ Q0VfU1lTQ09ORklHX1NQST1tCisjIENPTkZJR19GU0kgaXMgbm90IHNldAorQ09ORklHX01VTFRJ UExFWEVSPW0KKworIworIyBNdWx0aXBsZXhlciBkcml2ZXJzCisjCitDT05GSUdfTVVYX0FERzc5 MkE9bQorQ09ORklHX01VWF9BREdTMTQwOD1tCitDT05GSUdfTVVYX0dQSU89bQorQ09ORklHX01V WF9NTUlPPW0KKyMgZW5kIG9mIE11bHRpcGxleGVyIGRyaXZlcnMKKworQ09ORklHX1BNX09QUD15 CisjIENPTkZJR19TSU9YIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSU1CVVMgaXMgbm90IHNldAor Q09ORklHX0lOVEVSQ09OTkVDVD15CisjIENPTkZJR19DT1VOVEVSIGlzIG5vdCBzZXQKKyMgQ09O RklHX01PU1QgaXMgbm90IHNldAorQ09ORklHX1BFQ0k9bQorQ09ORklHX1BFQ0lfQ1BVPW0KK0NP TkZJR19IVEU9eQorIyBlbmQgb2YgRGV2aWNlIERyaXZlcnMKKworIworIyBGaWxlIHN5c3RlbXMK KyMKK0NPTkZJR19WQUxJREFURV9GU19QQVJTRVI9eQorQ09ORklHX0ZTX0lPTUFQPXkKK0NPTkZJ R19MRUdBQ1lfRElSRUNUX0lPPXkKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05G SUdfRVhUM19GUyBpcyBub3Qgc2V0CitDT05GSUdfRVhUNF9GUz15CitDT05GSUdfRVhUNF9VU0Vf Rk9SX0VYVDI9eQorQ09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19FWFQ0X0ZTX1NF Q1VSSVRZPXkKKyMgQ09ORklHX0VYVDRfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0pCRDI9eQor IyBDT05GSUdfSkJEMl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRlNfTUJDQUNIRT15CitDT05G SUdfUkVJU0VSRlNfRlM9bQorIyBDT05GSUdfUkVJU0VSRlNfQ0hFQ0sgaXMgbm90IHNldAorIyBD T05GSUdfUkVJU0VSRlNfUFJPQ19JTkZPIGlzIG5vdCBzZXQKK0NPTkZJR19SRUlTRVJGU19GU19Y QVRUUj15CitDT05GSUdfUkVJU0VSRlNfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19SRUlTRVJGU19G U19TRUNVUklUWT15CitDT05GSUdfSkZTX0ZTPW0KK0NPTkZJR19KRlNfUE9TSVhfQUNMPXkKK0NP TkZJR19KRlNfU0VDVVJJVFk9eQorIyBDT05GSUdfSkZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09O RklHX0pGU19TVEFUSVNUSUNTIGlzIG5vdCBzZXQKK0NPTkZJR19YRlNfRlM9bQorQ09ORklHX1hG U19TVVBQT1JUX1Y0PXkKK0NPTkZJR19YRlNfU1VQUE9SVF9BU0NJSV9DST15CitDT05GSUdfWEZT X1FVT1RBPXkKK0NPTkZJR19YRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX1hGU19SVCBpcyBub3Qg c2V0CisjIENPTkZJR19YRlNfT05MSU5FX1NDUlVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19X QVJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfR0ZT Ml9GUz1tCitDT05GSUdfR0ZTMl9GU19MT0NLSU5HX0RMTT15CitDT05GSUdfT0NGUzJfRlM9bQor Q09ORklHX09DRlMyX0ZTX08yQ0I9bQorQ09ORklHX09DRlMyX0ZTX1VTRVJTUEFDRV9DTFVTVEVS PW0KK0NPTkZJR19PQ0ZTMl9GU19TVEFUUz15CisjIENPTkZJR19PQ0ZTMl9ERUJVR19NQVNLTE9H IGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0RFQlVHX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19C VFJGU19GUz1tCitDT05GSUdfQlRSRlNfRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX0JUUkZTX0ZT X0NIRUNLX0lOVEVHUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19CVFJGU19GU19SVU5fU0FOSVRZ X1RFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUUkZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09O RklHX0JUUkZTX0FTU0VSVCBpcyBub3Qgc2V0CisjIENPTkZJR19CVFJGU19GU19SRUZfVkVSSUZZ IGlzIG5vdCBzZXQKK0NPTkZJR19OSUxGUzJfRlM9bQorQ09ORklHX0YyRlNfRlM9bQorQ09ORklH X0YyRlNfU1RBVF9GUz15CitDT05GSUdfRjJGU19GU19YQVRUUj15CitDT05GSUdfRjJGU19GU19Q T1NJWF9BQ0w9eQorQ09ORklHX0YyRlNfRlNfU0VDVVJJVFk9eQorIyBDT05GSUdfRjJGU19DSEVD S19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GMkZTX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0 CisjIENPTkZJR19GMkZTX0ZTX0NPTVBSRVNTSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19GMkZTX0lP U1RBVD15CitDT05GSUdfRjJGU19VTkZBSVJfUldTRU09eQorQ09ORklHX1pPTkVGU19GUz1tCitD T05GSUdfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19FWFBPUlRGUz15CitDT05GSUdfRVhQT1JURlNf QkxPQ0tfT1BTPXkKK0NPTkZJR19GSUxFX0xPQ0tJTkc9eQorQ09ORklHX0ZTX0VOQ1JZUFRJT049 eQorQ09ORklHX0ZTX0VOQ1JZUFRJT05fQUxHUz15CitDT05GSUdfRlNfRU5DUllQVElPTl9JTkxJ TkVfQ1JZUFQ9eQorIyBDT05GSUdfRlNfVkVSSVRZIGlzIG5vdCBzZXQKK0NPTkZJR19GU05PVElG WT15CitDT05GSUdfRE5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKK0NPTkZJR19GQU5P VElGWT15CitDT05GSUdfRkFOT1RJRllfQUNDRVNTX1BFUk1JU1NJT05TPXkKK0NPTkZJR19RVU9U QT15CitDT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eQorIyBDT05GSUdfUVVPVEFfREVC VUcgaXMgbm90IHNldAorQ09ORklHX1FVT1RBX1RSRUU9bQorQ09ORklHX1FGTVRfVjE9bQorQ09O RklHX1FGTVRfVjI9bQorQ09ORklHX1FVT1RBQ1RMPXkKK0NPTkZJR19BVVRPRlM0X0ZTPXkKK0NP TkZJR19BVVRPRlNfRlM9eQorQ09ORklHX0ZVU0VfRlM9bQorQ09ORklHX0NVU0U9bQorQ09ORklH X1ZJUlRJT19GUz1tCitDT05GSUdfT1ZFUkxBWV9GUz1tCisjIENPTkZJR19PVkVSTEFZX0ZTX1JF RElSRUNUX0RJUiBpcyBub3Qgc2V0CitDT05GSUdfT1ZFUkxBWV9GU19SRURJUkVDVF9BTFdBWVNf Rk9MTE9XPXkKKyMgQ09ORklHX09WRVJMQVlfRlNfSU5ERVggaXMgbm90IHNldAorIyBDT05GSUdf T1ZFUkxBWV9GU19YSU5PX0FVVE8gaXMgbm90IHNldAorIyBDT05GSUdfT1ZFUkxBWV9GU19NRVRB Q09QWSBpcyBub3Qgc2V0CisKKyMKKyMgQ2FjaGVzCisjCitDT05GSUdfTkVURlNfU1VQUE9SVD1t CitDT05GSUdfTkVURlNfU1RBVFM9eQorQ09ORklHX0ZTQ0FDSEU9bQorQ09ORklHX0ZTQ0FDSEVf U1RBVFM9eQorIyBDT05GSUdfRlNDQUNIRV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfQ0FDSEVG SUxFUz1tCisjIENPTkZJR19DQUNIRUZJTEVTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NB Q0hFRklMRVNfRVJST1JfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBQ0hFRklMRVNf T05ERU1BTkQgaXMgbm90IHNldAorIyBlbmQgb2YgQ2FjaGVzCisKKyMKKyMgQ0QtUk9NL0RWRCBG aWxlc3lzdGVtcworIworQ09ORklHX0lTTzk2NjBfRlM9bQorQ09ORklHX0pPTElFVD15CitDT05G SUdfWklTT0ZTPXkKK0NPTkZJR19VREZfRlM9bQorIyBlbmQgb2YgQ0QtUk9NL0RWRCBGaWxlc3lz dGVtcworCisjCisjIERPUy9GQVQvRVhGQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRf RlM9bQorQ09ORklHX01TRE9TX0ZTPW0KK0NPTkZJR19WRkFUX0ZTPW0KK0NPTkZJR19GQVRfREVG QVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTkt MSIKKyMgQ09ORklHX0ZBVF9ERUZBVUxUX1VURjggaXMgbm90IHNldAorQ09ORklHX0VYRkFUX0ZT PW0KK0NPTkZJR19FWEZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0idXRmOCIKK0NPTkZJR19OVEZTX0ZT PW0KKyMgQ09ORklHX05URlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19SVyBpcyBu b3Qgc2V0CitDT05GSUdfTlRGUzNfRlM9bQorIyBDT05GSUdfTlRGUzNfNjRCSVRfQ0xVU1RFUiBp cyBub3Qgc2V0CitDT05GSUdfTlRGUzNfTFpYX1hQUkVTUz15CisjIENPTkZJR19OVEZTM19GU19Q T1NJWF9BQ0wgaXMgbm90IHNldAorIyBlbmQgb2YgRE9TL0ZBVC9FWEZBVC9OVCBGaWxlc3lzdGVt cworCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklH X1BST0NfS0NPUkU9eQorQ09ORklHX1BST0NfVk1DT1JFPXkKKyMgQ09ORklHX1BST0NfVk1DT1JF X0RFVklDRV9EVU1QIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfUFJP Q19QQUdFX01PTklUT1I9eQorQ09ORklHX1BST0NfQ0hJTERSRU49eQorQ09ORklHX0tFUk5GUz15 CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKK0NPTkZJR19UTVBGU19QT1NJWF9BQ0w9 eQorQ09ORklHX1RNUEZTX1hBVFRSPXkKK0NPTkZJR19UTVBGU19JTk9ERTY0PXkKK0NPTkZJR19B UkNIX1NVUFBPUlRTX0hVR0VUTEJGUz15CitDT05GSUdfSFVHRVRMQkZTPXkKK0NPTkZJR19IVUdF VExCX1BBR0U9eQorQ09ORklHX0hVR0VUTEJfUEFHRV9PUFRJTUlaRV9WTUVNTUFQPXkKKyMgQ09O RklHX0hVR0VUTEJfUEFHRV9PUFRJTUlaRV9WTUVNTUFQX0RFRkFVTFRfT04gaXMgbm90IHNldAor Q09ORklHX01FTUZEX0NSRUFURT15CitDT05GSUdfQVJDSF9IQVNfR0lHQU5USUNfUEFHRT15CitD T05GSUdfQ09ORklHRlNfRlM9eQorQ09ORklHX0VGSVZBUl9GUz1tCisjIGVuZCBvZiBQc2V1ZG8g ZmlsZXN5c3RlbXMKKworQ09ORklHX01JU0NfRklMRVNZU1RFTVM9eQorIyBDT05GSUdfT1JBTkdF RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfQUZG U19GUz1tCitDT05GSUdfRUNSWVBUX0ZTPW0KKyMgQ09ORklHX0VDUllQVF9GU19NRVNTQUdJTkcg aXMgbm90IHNldAorQ09ORklHX0hGU19GUz1tCitDT05GSUdfSEZTUExVU19GUz1tCitDT05GSUdf QkVGU19GUz1tCisjIENPTkZJR19CRUZTX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19G UyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJf RlMgaXMgbm90IHNldAorIyBDT05GSUdfVUJJRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0NSQU1G Uz1tCitDT05GSUdfQ1JBTUZTX0JMT0NLREVWPXkKK0NPTkZJR19DUkFNRlNfTVREPXkKK0NPTkZJ R19TUVVBU0hGUz1tCitDT05GSUdfU1FVQVNIRlNfRklMRV9DQUNIRT15CisjIENPTkZJR19TUVVB U0hGU19GSUxFX0RJUkVDVCBpcyBub3Qgc2V0CitDT05GSUdfU1FVQVNIRlNfREVDT01QX1NJTkdM RT15CitDT05GSUdfU1FVQVNIRlNfREVDT01QX01VTFRJPXkKK0NPTkZJR19TUVVBU0hGU19ERUNP TVBfTVVMVElfUEVSQ1BVPXkKK0NPTkZJR19TUVVBU0hGU19DSE9JQ0VfREVDT01QX0JZX01PVU5U PXkKK0NPTkZJR19TUVVBU0hGU19NT1VOVF9ERUNPTVBfVEhSRUFEUz15CitDT05GSUdfU1FVQVNI RlNfWEFUVFI9eQorQ09ORklHX1NRVUFTSEZTX1pMSUI9eQorQ09ORklHX1NRVUFTSEZTX0xaND15 CitDT05GSUdfU1FVQVNIRlNfTFpPPXkKK0NPTkZJR19TUVVBU0hGU19YWj15CitDT05GSUdfU1FV QVNIRlNfWlNURD15CisjIENPTkZJR19TUVVBU0hGU180S19ERVZCTEtfU0laRSBpcyBub3Qgc2V0 CisjIENPTkZJR19TUVVBU0hGU19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfU1FVQVNIRlNf RlJBR01FTlRfQ0FDSEVfU0laRT0zCisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09O RklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09NRlNfRlMgaXMgbm90IHNldAorQ09O RklHX0hQRlNfRlM9bQorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19RTlg2 RlNfRlM9bQorIyBDT05GSUdfUU5YNkZTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19G Uz1tCisjIENPTkZJR19ST01GU19CQUNLRURfQllfQkxPQ0sgaXMgbm90IHNldAorIyBDT05GSUdf Uk9NRlNfQkFDS0VEX0JZX01URCBpcyBub3Qgc2V0CitDT05GSUdfUk9NRlNfQkFDS0VEX0JZX0JP VEg9eQorQ09ORklHX1JPTUZTX09OX0JMT0NLPXkKK0NPTkZJR19ST01GU19PTl9NVEQ9eQorQ09O RklHX1BTVE9SRT15CitDT05GSUdfUFNUT1JFX0RFRkFVTFRfS01TR19CWVRFUz0xMDI0MAorQ09O RklHX1BTVE9SRV9ERUZMQVRFX0NPTVBSRVNTPW0KKyMgQ09ORklHX1BTVE9SRV9MWk9fQ09NUFJF U1MgaXMgbm90IHNldAorIyBDT05GSUdfUFNUT1JFX0xaNF9DT01QUkVTUyBpcyBub3Qgc2V0CitD T05GSUdfUFNUT1JFX0xaNEhDX0NPTVBSRVNTPW0KKyMgQ09ORklHX1BTVE9SRV84NDJfQ09NUFJF U1MgaXMgbm90IHNldAorQ09ORklHX1BTVE9SRV9aU1REX0NPTVBSRVNTPXkKK0NPTkZJR19QU1RP UkVfQ09NUFJFU1M9eQorQ09ORklHX1BTVE9SRV9ERUZMQVRFX0NPTVBSRVNTX0RFRkFVTFQ9eQor IyBDT05GSUdfUFNUT1JFX0xaNEhDX0NPTVBSRVNTX0RFRkFVTFQgaXMgbm90IHNldAorIyBDT05G SUdfUFNUT1JFX1pTVERfQ09NUFJFU1NfREVGQVVMVCBpcyBub3Qgc2V0CitDT05GSUdfUFNUT1JF X0NPTVBSRVNTX0RFRkFVTFQ9ImRlZmxhdGUiCisjIENPTkZJR19QU1RPUkVfQ09OU09MRSBpcyBu b3Qgc2V0CisjIENPTkZJR19QU1RPUkVfUE1TRyBpcyBub3Qgc2V0CisjIENPTkZJR19QU1RPUkVf RlRSQUNFIGlzIG5vdCBzZXQKK0NPTkZJR19QU1RPUkVfUkFNPW0KK0NPTkZJR19QU1RPUkVfWk9O RT1tCitDT05GSUdfUFNUT1JFX0JMSz1tCitDT05GSUdfUFNUT1JFX0JMS19CTEtERVY9IiIKK0NP TkZJR19QU1RPUkVfQkxLX0tNU0dfU0laRT02NAorQ09ORklHX1BTVE9SRV9CTEtfTUFYX1JFQVNP Tj0yCitDT05GSUdfU1lTVl9GUz1tCitDT05GSUdfVUZTX0ZTPW0KKyMgQ09ORklHX1VGU19GU19X UklURSBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0VS T0ZTX0ZTPW0KKyMgQ09ORklHX0VST0ZTX0ZTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19FUk9G U19GU19YQVRUUj15CitDT05GSUdfRVJPRlNfRlNfUE9TSVhfQUNMPXkKK0NPTkZJR19FUk9GU19G U19TRUNVUklUWT15CitDT05GSUdfRVJPRlNfRlNfWklQPXkKK0NPTkZJR19FUk9GU19GU19aSVBf TFpNQT15CitDT05GSUdfRVJPRlNfRlNfUENQVV9LVEhSRUFEPXkKK0NPTkZJR19FUk9GU19GU19Q Q1BVX0tUSFJFQURfSElQUkk9eQorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklH X05GU19GUz1tCitDT05GSUdfTkZTX1YyPW0KK0NPTkZJR19ORlNfVjM9bQorQ09ORklHX05GU19W M19BQ0w9eQorQ09ORklHX05GU19WND1tCitDT05GSUdfTkZTX1NXQVA9eQorQ09ORklHX05GU19W NF8xPXkKK0NPTkZJR19ORlNfVjRfMj15CitDT05GSUdfUE5GU19GSUxFX0xBWU9VVD1tCitDT05G SUdfUE5GU19CTE9DSz1tCitDT05GSUdfUE5GU19GTEVYRklMRV9MQVlPVVQ9bQorQ09ORklHX05G U19WNF8xX0lNUExFTUVOVEFUSU9OX0lEX0RPTUFJTj0ia2VybmVsLm9yZyIKKyMgQ09ORklHX05G U19WNF8xX01JR1JBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTkZTX1Y0X1NFQ1VSSVRZX0xBQkVM PXkKK0NPTkZJR19ORlNfRlNDQUNIRT15CisjIENPTkZJR19ORlNfVVNFX0xFR0FDWV9ETlMgaXMg bm90IHNldAorQ09ORklHX05GU19VU0VfS0VSTkVMX0ROUz15CitDT05GSUdfTkZTX0RFQlVHPXkK K0NPTkZJR19ORlNfRElTQUJMRV9VRFBfU1VQUE9SVD15CisjIENPTkZJR19ORlNfVjRfMl9SRUFE X1BMVVMgaXMgbm90IHNldAorQ09ORklHX05GU0Q9bQorIyBDT05GSUdfTkZTRF9WMiBpcyBub3Qg c2V0CitDT05GSUdfTkZTRF9WM19BQ0w9eQorQ09ORklHX05GU0RfVjQ9eQorQ09ORklHX05GU0Rf UE5GUz15CitDT05GSUdfTkZTRF9CTE9DS0xBWU9VVD15CitDT05GSUdfTkZTRF9TQ1NJTEFZT1VU PXkKK0NPTkZJR19ORlNEX0ZMRVhGSUxFTEFZT1VUPXkKK0NPTkZJR19ORlNEX1Y0XzJfSU5URVJf U1NDPXkKK0NPTkZJR19ORlNEX1Y0X1NFQ1VSSVRZX0xBQkVMPXkKK0NPTkZJR19HUkFDRV9QRVJJ T0Q9bQorQ09ORklHX0xPQ0tEPW0KK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0FDTF9T VVBQT1JUPW0KK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19ORlNfVjRfMl9TU0NfSEVMUEVS PXkKK0NPTkZJR19TVU5SUEM9bQorQ09ORklHX1NVTlJQQ19HU1M9bQorQ09ORklHX1NVTlJQQ19C QUNLQ0hBTk5FTD15CitDT05GSUdfU1VOUlBDX1NXQVA9eQorQ09ORklHX1JQQ1NFQ19HU1NfS1JC NT1tCitDT05GSUdfUlBDU0VDX0dTU19LUkI1X0NSWVBUT1NZU1RFTT15CisjIENPTkZJR19SUENT RUNfR1NTX0tSQjVfRU5DVFlQRVNfREVTIGlzIG5vdCBzZXQKK0NPTkZJR19SUENTRUNfR1NTX0tS QjVfRU5DVFlQRVNfQUVTX1NIQTE9eQorQ09ORklHX1JQQ1NFQ19HU1NfS1JCNV9FTkNUWVBFU19D QU1FTExJQT15CitDT05GSUdfUlBDU0VDX0dTU19LUkI1X0VOQ1RZUEVTX0FFU19TSEEyPXkKK0NP TkZJR19TVU5SUENfREVCVUc9eQorQ09ORklHX1NVTlJQQ19YUFJUX1JETUE9bQorQ09ORklHX0NF UEhfRlM9bQorQ09ORklHX0NFUEhfRlNDQUNIRT15CitDT05GSUdfQ0VQSF9GU19QT1NJWF9BQ0w9 eQorIyBDT05GSUdfQ0VQSF9GU19TRUNVUklUWV9MQUJFTCBpcyBub3Qgc2V0CitDT05GSUdfQ0lG Uz1tCisjIENPTkZJR19DSUZTX1NUQVRTMiBpcyBub3Qgc2V0CitDT05GSUdfQ0lGU19BTExPV19J TlNFQ1VSRV9MRUdBQ1k9eQorQ09ORklHX0NJRlNfVVBDQUxMPXkKK0NPTkZJR19DSUZTX1hBVFRS PXkKK0NPTkZJR19DSUZTX1BPU0lYPXkKK0NPTkZJR19DSUZTX0RFQlVHPXkKKyMgQ09ORklHX0NJ RlNfREVCVUcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfREVCVUdfRFVNUF9LRVlTIGlzIG5v dCBzZXQKK0NPTkZJR19DSUZTX0RGU19VUENBTEw9eQorQ09ORklHX0NJRlNfU1dOX1VQQ0FMTD15 CisjIENPTkZJR19DSUZTX1NNQl9ESVJFQ1QgaXMgbm90IHNldAorQ09ORklHX0NJRlNfRlNDQUNI RT15CisjIENPTkZJR19TTUJfU0VSVkVSIGlzIG5vdCBzZXQKK0NPTkZJR19TTUJGUz1tCitDT05G SUdfQ09EQV9GUz1tCisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorQ09ORklHXzlQX0ZTPW0K K0NPTkZJR185UF9GU0NBQ0hFPXkKK0NPTkZJR185UF9GU19QT1NJWF9BQ0w9eQorQ09ORklHXzlQ X0ZTX1NFQ1VSSVRZPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJ1dGY4Igor Q09ORklHX05MU19DT0RFUEFHRV80Mzc9bQorQ09ORklHX05MU19DT0RFUEFHRV83Mzc9bQorQ09O RklHX05MU19DT0RFUEFHRV83NzU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTA9bQorQ09ORklH X05MU19DT0RFUEFHRV84NTI9bQorQ09ORklHX05MU19DT0RFUEFHRV84NTU9bQorQ09ORklHX05M U19DT0RFUEFHRV84NTc9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjA9bQorQ09ORklHX05MU19D T0RFUEFHRV84NjE9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjI9bQorQ09ORklHX05MU19DT0RF UEFHRV84NjM9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjQ9bQorQ09ORklHX05MU19DT0RFUEFH RV84NjU9bQorQ09ORklHX05MU19DT0RFUEFHRV84NjY9bQorQ09ORklHX05MU19DT0RFUEFHRV84 Njk9bQorQ09ORklHX05MU19DT0RFUEFHRV85MzY9bQorQ09ORklHX05MU19DT0RFUEFHRV85NTA9 bQorQ09ORklHX05MU19DT0RFUEFHRV85MzI9bQorQ09ORklHX05MU19DT0RFUEFHRV85NDk9bQor Q09ORklHX05MU19DT0RFUEFHRV84NzQ9bQorQ09ORklHX05MU19JU084ODU5Xzg9bQorQ09ORklH X05MU19DT0RFUEFHRV8xMjUwPW0KK0NPTkZJR19OTFNfQ09ERVBBR0VfMTI1MT1tCitDT05GSUdf TkxTX0FTQ0lJPW0KK0NPTkZJR19OTFNfSVNPODg1OV8xPW0KK0NPTkZJR19OTFNfSVNPODg1OV8y PW0KK0NPTkZJR19OTFNfSVNPODg1OV8zPW0KK0NPTkZJR19OTFNfSVNPODg1OV80PW0KK0NPTkZJ R19OTFNfSVNPODg1OV81PW0KK0NPTkZJR19OTFNfSVNPODg1OV82PW0KK0NPTkZJR19OTFNfSVNP ODg1OV83PW0KK0NPTkZJR19OTFNfSVNPODg1OV85PW0KK0NPTkZJR19OTFNfSVNPODg1OV8xMz1t CitDT05GSUdfTkxTX0lTTzg4NTlfMTQ9bQorQ09ORklHX05MU19JU084ODU5XzE1PW0KK0NPTkZJ R19OTFNfS09JOF9SPW0KK0NPTkZJR19OTFNfS09JOF9VPW0KK0NPTkZJR19OTFNfTUFDX1JPTUFO PW0KK0NPTkZJR19OTFNfTUFDX0NFTFRJQz1tCitDT05GSUdfTkxTX01BQ19DRU5URVVSTz1tCitD T05GSUdfTkxTX01BQ19DUk9BVElBTj1tCitDT05GSUdfTkxTX01BQ19DWVJJTExJQz1tCitDT05G SUdfTkxTX01BQ19HQUVMSUM9bQorQ09ORklHX05MU19NQUNfR1JFRUs9bQorQ09ORklHX05MU19N QUNfSUNFTEFORD1tCitDT05GSUdfTkxTX01BQ19JTlVJVD1tCitDT05GSUdfTkxTX01BQ19ST01B TklBTj1tCitDT05GSUdfTkxTX01BQ19UVVJLSVNIPW0KK0NPTkZJR19OTFNfVVRGOD1tCitDT05G SUdfRExNPW0KK0NPTkZJR19ETE1fREVCVUc9eQorQ09ORklHX1VOSUNPREU9eQorIyBDT05GSUdf VU5JQ09ERV9OT1JNQUxJWkFUSU9OX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NPTkZJR19JT19XUT15 CisjIGVuZCBvZiBGaWxlIHN5c3RlbXMKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCitDT05G SUdfS0VZUz15CisjIENPTkZJR19LRVlTX1JFUVVFU1RfQ0FDSEUgaXMgbm90IHNldAorQ09ORklH X1BFUlNJU1RFTlRfS0VZUklOR1M9eQorQ09ORklHX1RSVVNURURfS0VZUz1tCitDT05GSUdfVFJV U1RFRF9LRVlTX1RQTT15CitDT05GSUdfRU5DUllQVEVEX0tFWVM9eQorIyBDT05GSUdfVVNFUl9E RUNSWVBURURfREFUQSBpcyBub3Qgc2V0CitDT05GSUdfS0VZX0RIX09QRVJBVElPTlM9eQorQ09O RklHX0tFWV9OT1RJRklDQVRJT05TPXkKK0NPTkZJR19TRUNVUklUWV9ETUVTR19SRVNUUklDVD15 CitDT05GSUdfU0VDVVJJVFk9eQorQ09ORklHX1NFQ1VSSVRZRlM9eQorQ09ORklHX1NFQ1VSSVRZ X05FVFdPUks9eQorIyBDT05GSUdfU0VDVVJJVFlfSU5GSU5JQkFORCBpcyBub3Qgc2V0CisjIENP TkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0gaXMgbm90IHNldAorQ09ORklHX1NFQ1VSSVRZX1BB VEg9eQorQ09ORklHX0hBVkVfSEFSREVORURfVVNFUkNPUFlfQUxMT0NBVE9SPXkKK0NPTkZJR19I QVJERU5FRF9VU0VSQ09QWT15CitDT05GSUdfRk9SVElGWV9TT1VSQ0U9eQorIyBDT05GSUdfU1RB VElDX1VTRVJNT0RFSEVMUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX1NFTElOVVgg aXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfU01BQ0sgaXMgbm90IHNldAorIyBDT05GSUdf U0VDVVJJVFlfVE9NT1lPIGlzIG5vdCBzZXQKK0NPTkZJR19TRUNVUklUWV9BUFBBUk1PUj15Cisj IENPTkZJR19TRUNVUklUWV9BUFBBUk1PUl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJ VFlfQVBQQVJNT1JfSU5UUk9TUEVDVF9QT0xJQ1k9eQorQ09ORklHX1NFQ1VSSVRZX0FQUEFSTU9S X0hBU0g9eQorQ09ORklHX1NFQ1VSSVRZX0FQUEFSTU9SX0hBU0hfREVGQVVMVD15CitDT05GSUdf U0VDVVJJVFlfQVBQQVJNT1JfRVhQT1JUX0JJTkFSWT15CitDT05GSUdfU0VDVVJJVFlfQVBQQVJN T1JfUEFSQU5PSURfTE9BRD15CisjIENPTkZJR19TRUNVUklUWV9MT0FEUElOIGlzIG5vdCBzZXQK K0NPTkZJR19TRUNVUklUWV9ZQU1BPXkKKyMgQ09ORklHX1NFQ1VSSVRZX1NBRkVTRVRJRCBpcyBu b3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9MT0NLRE9XTl9MU00gaXMgbm90IHNldAorQ09ORklH X1NFQ1VSSVRZX0xBTkRMT0NLPXkKK0NPTkZJR19JTlRFR1JJVFk9eQorIyBDT05GSUdfSU5URUdS SVRZX1NJR05BVFVSRSBpcyBub3Qgc2V0CitDT05GSUdfSU5URUdSSVRZX0FVRElUPXkKKyMgQ09O RklHX0lNQSBpcyBub3Qgc2V0CisjIENPTkZJR19FVk0gaXMgbm90IHNldAorQ09ORklHX0RFRkFV TFRfU0VDVVJJVFlfQVBQQVJNT1I9eQorIyBDT05GSUdfREVGQVVMVF9TRUNVUklUWV9EQUMgaXMg bm90IHNldAorQ09ORklHX0xTTT0ibGFuZGxvY2sseWFtYSxsb2FkcGluLHNhZmVzZXRpZCxpbnRl Z3JpdHkiCisKKyMKKyMgS2VybmVsIGhhcmRlbmluZyBvcHRpb25zCisjCisKKyMKKyMgTWVtb3J5 IGluaXRpYWxpemF0aW9uCisjCitDT05GSUdfQ0NfSEFTX0FVVE9fVkFSX0lOSVRfUEFUVEVSTj15 CitDT05GSUdfQ0NfSEFTX0FVVE9fVkFSX0lOSVRfWkVST19CQVJFPXkKK0NPTkZJR19DQ19IQVNf QVVUT19WQVJfSU5JVF9aRVJPPXkKK0NPTkZJR19JTklUX1NUQUNLX05PTkU9eQorIyBDT05GSUdf SU5JVF9TVEFDS19BTExfUEFUVEVSTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTklUX1NUQUNLX0FM TF9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTklUX09OX0FMTE9DX0RFRkFVTFRfT049eQorIyBD T05GSUdfSU5JVF9PTl9GUkVFX0RFRkFVTFRfT04gaXMgbm90IHNldAorQ09ORklHX0NDX0hBU19a RVJPX0NBTExfVVNFRF9SRUdTPXkKKyMgQ09ORklHX1pFUk9fQ0FMTF9VU0VEX1JFR1MgaXMgbm90 IHNldAorIyBlbmQgb2YgTWVtb3J5IGluaXRpYWxpemF0aW9uCisKK0NPTkZJR19SQU5EU1RSVUNU X05PTkU9eQorIyBlbmQgb2YgS2VybmVsIGhhcmRlbmluZyBvcHRpb25zCisjIGVuZCBvZiBTZWN1 cml0eSBvcHRpb25zCisKK0NPTkZJR19YT1JfQkxPQ0tTPW0KK0NPTkZJR19BU1lOQ19DT1JFPW0K K0NPTkZJR19BU1lOQ19NRU1DUFk9bQorQ09ORklHX0FTWU5DX1hPUj1tCitDT05GSUdfQVNZTkNf UFE9bQorQ09ORklHX0FTWU5DX1JBSUQ2X1JFQ09WPW0KK0NPTkZJR19DUllQVE89eQorCisjCisj IENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworQ09ORklHX0NSWVBUT19BTEdBUEk9eQorQ09ORklH X0NSWVBUT19BTEdBUEkyPXkKK0NPTkZJR19DUllQVE9fQUVBRD15CitDT05GSUdfQ1JZUFRPX0FF QUQyPXkKK0NPTkZJR19DUllQVE9fU0tDSVBIRVI9eQorQ09ORklHX0NSWVBUT19TS0NJUEhFUjI9 eQorQ09ORklHX0NSWVBUT19IQVNIPXkKK0NPTkZJR19DUllQVE9fSEFTSDI9eQorQ09ORklHX0NS WVBUT19STkc9eQorQ09ORklHX0NSWVBUT19STkcyPXkKK0NPTkZJR19DUllQVE9fUk5HX0RFRkFV TFQ9eQorQ09ORklHX0NSWVBUT19BS0NJUEhFUjI9eQorQ09ORklHX0NSWVBUT19BS0NJUEhFUj15 CitDT05GSUdfQ1JZUFRPX0tQUDI9eQorQ09ORklHX0NSWVBUT19LUFA9eQorQ09ORklHX0NSWVBU T19BQ09NUDI9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKK0NPTkZJR19DUllQVE9fTUFOQUdF UjI9eQorQ09ORklHX0NSWVBUT19VU0VSPW0KK0NPTkZJR19DUllQVE9fTUFOQUdFUl9ESVNBQkxF X1RFU1RTPXkKK0NPTkZJR19DUllQVE9fTlVMTD15CitDT05GSUdfQ1JZUFRPX05VTEwyPXkKK0NP TkZJR19DUllQVE9fUENSWVBUPW0KK0NPTkZJR19DUllQVE9fQ1JZUFREPW0KK0NPTkZJR19DUllQ VE9fQVVUSEVOQz1tCitDT05GSUdfQ1JZUFRPX1RFU1Q9bQorQ09ORklHX0NSWVBUT19FTkdJTkU9 bQorIyBlbmQgb2YgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisKKyMKKyMgUHVibGljLWtleSBjcnlw dG9ncmFwaHkKKyMKK0NPTkZJR19DUllQVE9fUlNBPXkKK0NPTkZJR19DUllQVE9fREg9eQorQ09O RklHX0NSWVBUT19ESF9SRkM3OTE5X0dST1VQUz15CitDT05GSUdfQ1JZUFRPX0VDQz1tCitDT05G SUdfQ1JZUFRPX0VDREg9bQorQ09ORklHX0NSWVBUT19FQ0RTQT1tCitDT05GSUdfQ1JZUFRPX0VD UkRTQT1tCitDT05GSUdfQ1JZUFRPX1NNMj1tCitDT05GSUdfQ1JZUFRPX0NVUlZFMjU1MTk9bQor IyBlbmQgb2YgUHVibGljLWtleSBjcnlwdG9ncmFwaHkKKworIworIyBCbG9jayBjaXBoZXJzCisj CitDT05GSUdfQ1JZUFRPX0FFUz15CitDT05GSUdfQ1JZUFRPX0FFU19UST1tCitDT05GSUdfQ1JZ UFRPX0FOVUJJUz1tCitDT05GSUdfQ1JZUFRPX0FSSUE9bQorQ09ORklHX0NSWVBUT19CTE9XRklT SD1tCitDT05GSUdfQ1JZUFRPX0JMT1dGSVNIX0NPTU1PTj1tCitDT05GSUdfQ1JZUFRPX0NBTUVM TElBPW0KK0NPTkZJR19DUllQVE9fQ0FTVF9DT01NT049bQorQ09ORklHX0NSWVBUT19DQVNUNT1t CitDT05GSUdfQ1JZUFRPX0NBU1Q2PW0KK0NPTkZJR19DUllQVE9fREVTPW0KK0NPTkZJR19DUllQ VE9fRkNSWVBUPW0KK0NPTkZJR19DUllQVE9fS0hBWkFEPW0KK0NPTkZJR19DUllQVE9fU0VFRD1t CitDT05GSUdfQ1JZUFRPX1NFUlBFTlQ9bQorQ09ORklHX0NSWVBUT19TTTQ9bQorQ09ORklHX0NS WVBUT19TTTRfR0VORVJJQz1tCitDT05GSUdfQ1JZUFRPX1RFQT1tCitDT05GSUdfQ1JZUFRPX1RX T0ZJU0g9bQorQ09ORklHX0NSWVBUT19UV09GSVNIX0NPTU1PTj1tCisjIGVuZCBvZiBCbG9jayBj aXBoZXJzCisKKyMKKyMgTGVuZ3RoLXByZXNlcnZpbmcgY2lwaGVycyBhbmQgbW9kZXMKKyMKK0NP TkZJR19DUllQVE9fQURJQU5UVU09bQorQ09ORklHX0NSWVBUT19BUkM0PW0KK0NPTkZJR19DUllQ VE9fQ0hBQ0hBMjA9bQorQ09ORklHX0NSWVBUT19DQkM9eQorQ09ORklHX0NSWVBUT19DRkI9bQor Q09ORklHX0NSWVBUT19DVFI9eQorQ09ORklHX0NSWVBUT19DVFM9eQorQ09ORklHX0NSWVBUT19F Q0I9eQorQ09ORklHX0NSWVBUT19IQ1RSMj1tCitDT05GSUdfQ1JZUFRPX0tFWVdSQVA9bQorQ09O RklHX0NSWVBUT19MUlc9bQorQ09ORklHX0NSWVBUT19PRkI9bQorQ09ORklHX0NSWVBUT19QQ0JD PW0KK0NPTkZJR19DUllQVE9fWENUUj1tCitDT05GSUdfQ1JZUFRPX1hUUz15CitDT05GSUdfQ1JZ UFRPX05IUE9MWTEzMDU9bQorIyBlbmQgb2YgTGVuZ3RoLXByZXNlcnZpbmcgY2lwaGVycyBhbmQg bW9kZXMKKworIworIyBBRUFEIChhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gd2l0aCBhc3NvY2lh dGVkIGRhdGEpIGNpcGhlcnMKKyMKKyMgQ09ORklHX0NSWVBUT19BRUdJUzEyOCBpcyBub3Qgc2V0 CitDT05GSUdfQ1JZUFRPX0NIQUNIQTIwUE9MWTEzMDU9bQorQ09ORklHX0NSWVBUT19DQ009bQor Q09ORklHX0NSWVBUT19HQ009eQorQ09ORklHX0NSWVBUT19TRVFJVj15CitDT05GSUdfQ1JZUFRP X0VDSEFJTklWPW0KK0NPTkZJR19DUllQVE9fRVNTSVY9bQorIyBlbmQgb2YgQUVBRCAoYXV0aGVu dGljYXRlZCBlbmNyeXB0aW9uIHdpdGggYXNzb2NpYXRlZCBkYXRhKSBjaXBoZXJzCisKKyMKKyMg SGFzaGVzLCBkaWdlc3RzLCBhbmQgTUFDcworIworQ09ORklHX0NSWVBUT19CTEFLRTJCPW0KK0NP TkZJR19DUllQVE9fQ01BQz1tCitDT05GSUdfQ1JZUFRPX0dIQVNIPXkKK0NPTkZJR19DUllQVE9f SE1BQz15CitDT05GSUdfQ1JZUFRPX01END1tCitDT05GSUdfQ1JZUFRPX01ENT15CitDT05GSUdf Q1JZUFRPX01JQ0hBRUxfTUlDPW0KK0NPTkZJR19DUllQVE9fUE9MWVZBTD1tCitDT05GSUdfQ1JZ UFRPX1BPTFkxMzA1PW0KK0NPTkZJR19DUllQVE9fUk1EMTYwPW0KK0NPTkZJR19DUllQVE9fU0hB MT15CitDT05GSUdfQ1JZUFRPX1NIQTI1Nj15CitDT05GSUdfQ1JZUFRPX1NIQTUxMj15CitDT05G SUdfQ1JZUFRPX1NIQTM9bQorQ09ORklHX0NSWVBUT19TTTM9bQorQ09ORklHX0NSWVBUT19TTTNf R0VORVJJQz1tCitDT05GSUdfQ1JZUFRPX1NUUkVFQk9HPW0KK0NPTkZJR19DUllQVE9fVk1BQz1t CitDT05GSUdfQ1JZUFRPX1dQNTEyPW0KK0NPTkZJR19DUllQVE9fWENCQz1tCitDT05GSUdfQ1JZ UFRPX1hYSEFTSD1tCisjIGVuZCBvZiBIYXNoZXMsIGRpZ2VzdHMsIGFuZCBNQUNzCisKKyMKKyMg Q1JDcyAoY3ljbGljIHJlZHVuZGFuY3kgY2hlY2tzKQorIworQ09ORklHX0NSWVBUT19DUkMzMkM9 eQorQ09ORklHX0NSWVBUT19DUkMzMj1tCitDT05GSUdfQ1JZUFRPX0NSQ1QxMERJRj15CitDT05G SUdfQ1JZUFRPX0NSQzY0X1JPQ0tTT0ZUPXkKKyMgZW5kIG9mIENSQ3MgKGN5Y2xpYyByZWR1bmRh bmN5IGNoZWNrcykKKworIworIyBDb21wcmVzc2lvbgorIworQ09ORklHX0NSWVBUT19ERUZMQVRF PW0KK0NPTkZJR19DUllQVE9fTFpPPXkKK0NPTkZJR19DUllQVE9fODQyPXkKK0NPTkZJR19DUllQ VE9fTFo0PW0KK0NPTkZJR19DUllQVE9fTFo0SEM9bQorQ09ORklHX0NSWVBUT19aU1REPXkKKyMg ZW5kIG9mIENvbXByZXNzaW9uCisKKyMKKyMgUmFuZG9tIG51bWJlciBnZW5lcmF0aW9uCisjCitD T05GSUdfQ1JZUFRPX0FOU0lfQ1BSTkc9bQorQ09ORklHX0NSWVBUT19EUkJHX01FTlU9eQorQ09O RklHX0NSWVBUT19EUkJHX0hNQUM9eQorQ09ORklHX0NSWVBUT19EUkJHX0hBU0g9eQorQ09ORklH X0NSWVBUT19EUkJHX0NUUj15CitDT05GSUdfQ1JZUFRPX0RSQkc9eQorQ09ORklHX0NSWVBUT19K SVRURVJFTlRST1BZPXkKK0NPTkZJR19DUllQVE9fS0RGODAwMTA4X0NUUj15CisjIGVuZCBvZiBS YW5kb20gbnVtYmVyIGdlbmVyYXRpb24KKworIworIyBVc2Vyc3BhY2UgaW50ZXJmYWNlCisjCitD T05GSUdfQ1JZUFRPX1VTRVJfQVBJPW0KK0NPTkZJR19DUllQVE9fVVNFUl9BUElfSEFTSD1tCitD T05GSUdfQ1JZUFRPX1VTRVJfQVBJX1NLQ0lQSEVSPW0KK0NPTkZJR19DUllQVE9fVVNFUl9BUElf Uk5HPW0KKyMgQ09ORklHX0NSWVBUT19VU0VSX0FQSV9STkdfQ0FWUCBpcyBub3Qgc2V0CitDT05G SUdfQ1JZUFRPX1VTRVJfQVBJX0FFQUQ9bQorQ09ORklHX0NSWVBUT19VU0VSX0FQSV9FTkFCTEVf T0JTT0xFVEU9eQorIyBDT05GSUdfQ1JZUFRPX1NUQVRTIGlzIG5vdCBzZXQKKyMgZW5kIG9mIFVz ZXJzcGFjZSBpbnRlcmZhY2UKKworQ09ORklHX0NSWVBUT19IQVNIX0lORk89eQorQ09ORklHX0NS WVBUT19IVz15CitDT05GSUdfQ1JZUFRPX0RFVl9BTExXSU5ORVI9eQorQ09ORklHX0NSWVBUT19E RVZfU1VONElfU1M9bQorQ09ORklHX0NSWVBUT19ERVZfU1VONElfU1NfUFJORz15CisjIENPTkZJ R19DUllQVE9fREVWX1NVTjRJX1NTX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVW X1NVTjhJX0NFPW0KKyMgQ09ORklHX0NSWVBUT19ERVZfU1VOOElfQ0VfREVCVUcgaXMgbm90IHNl dAorQ09ORklHX0NSWVBUT19ERVZfU1VOOElfQ0VfSEFTSD15CitDT05GSUdfQ1JZUFRPX0RFVl9T VU44SV9DRV9QUk5HPXkKK0NPTkZJR19DUllQVE9fREVWX1NVTjhJX0NFX1RSTkc9eQorQ09ORklH X0NSWVBUT19ERVZfU1VOOElfU1M9bQorIyBDT05GSUdfQ1JZUFRPX0RFVl9TVU44SV9TU19ERUJV RyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFVl9TVU44SV9TU19QUk5HPXkKK0NPTkZJR19D UllQVE9fREVWX1NVTjhJX1NTX0hBU0g9eQorQ09ORklHX0NSWVBUT19ERVZfQVRNRUxfSTJDPW0K K0NPTkZJR19DUllQVE9fREVWX0FUTUVMX0VDQz1tCitDT05GSUdfQ1JZUFRPX0RFVl9BVE1FTF9T SEEyMDRBPW0KK0NPTkZJR19DUllQVE9fREVWX05JVFJPWD1tCitDT05GSUdfQ1JZUFRPX0RFVl9O SVRST1hfQ05ONTVYWD1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVQ9bQorQ09ORklHX0NSWVBUT19E RVZfUUFUX0RIODk1eENDPW0KK0NPTkZJR19DUllQVE9fREVWX1FBVF9DM1hYWD1tCitDT05GSUdf Q1JZUFRPX0RFVl9RQVRfQzYyWD1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRfNFhYWD1tCitDT05G SUdfQ1JZUFRPX0RFVl9RQVRfREg4OTV4Q0NWRj1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRfQzNY WFhWRj1tCitDT05GSUdfQ1JZUFRPX0RFVl9RQVRfQzYyWFZGPW0KK0NPTkZJR19DUllQVE9fREVW X0NIRUxTSU89bQorQ09ORklHX0NSWVBUT19ERVZfVklSVElPPW0KK0NPTkZJR19DUllQVE9fREVW X1NBRkVYQ0VMPW0KK0NPTkZJR19DUllQVE9fREVWX0NDUkVFPW0KK0NPTkZJR19DUllQVE9fREVW X0FNTE9HSUNfR1hMPW0KKyMgQ09ORklHX0NSWVBUT19ERVZfQU1MT0dJQ19HWExfREVCVUcgaXMg bm90IHNldAorQ09ORklHX0NSWVBUT19ERVZfSkg3MTEwPW0KK0NPTkZJR19BU1lNTUVUUklDX0tF WV9UWVBFPXkKK0NPTkZJR19BU1lNTUVUUklDX1BVQkxJQ19LRVlfU1VCVFlQRT15CitDT05GSUdf WDUwOV9DRVJUSUZJQ0FURV9QQVJTRVI9eQorQ09ORklHX1BLQ1M4X1BSSVZBVEVfS0VZX1BBUlNF Uj1tCitDT05GSUdfUEtDUzdfTUVTU0FHRV9QQVJTRVI9eQorIyBDT05GSUdfUEtDUzdfVEVTVF9L RVkgaXMgbm90IHNldAorQ09ORklHX1NJR05FRF9QRV9GSUxFX1ZFUklGSUNBVElPTj15CisjIENP TkZJR19GSVBTX1NJR05BVFVSRV9TRUxGVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2VydGlmaWNh dGVzIGZvciBzaWduYXR1cmUgY2hlY2tpbmcKKyMKK0NPTkZJR19TWVNURU1fVFJVU1RFRF9LRVlS SU5HPXkKK0NPTkZJR19TWVNURU1fVFJVU1RFRF9LRVlTPSIiCisjIENPTkZJR19TWVNURU1fRVhU UkFfQ0VSVElGSUNBVEUgaXMgbm90IHNldAorIyBDT05GSUdfU0VDT05EQVJZX1RSVVNURURfS0VZ UklORyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNURU1fQkxBQ0tMSVNUX0tFWVJJTkcgaXMgbm90 IHNldAorIyBlbmQgb2YgQ2VydGlmaWNhdGVzIGZvciBzaWduYXR1cmUgY2hlY2tpbmcKKworQ09O RklHX0JJTkFSWV9QUklOVEY9eQorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19S QUlENl9QUT1tCitDT05GSUdfUkFJRDZfUFFfQkVOQ0hNQVJLPXkKK0NPTkZJR19MSU5FQVJfUkFO R0VTPXkKK0NPTkZJR19QQUNLSU5HPXkKK0NPTkZJR19CSVRSRVZFUlNFPXkKK0NPTkZJR19HRU5F UklDX1NUUk5DUFlfRlJPTV9VU0VSPXkKK0NPTkZJR19HRU5FUklDX1NUUk5MRU5fVVNFUj15CitD T05GSUdfR0VORVJJQ19ORVRfVVRJTFM9eQorQ09ORklHX0NPUkRJQz1tCisjIENPTkZJR19QUklN RV9OVU1CRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19SQVRJT05BTD15CitDT05GSUdfR0VORVJJQ19Q Q0lfSU9NQVA9eQorCisjCisjIENyeXB0byBsaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQ1JZ UFRPX0xJQl9VVElMUz15CitDT05GSUdfQ1JZUFRPX0xJQl9BRVM9eQorQ09ORklHX0NSWVBUT19M SUJfQVJDND1tCitDT05GSUdfQ1JZUFRPX0xJQl9HRjEyOE1VTD15CitDT05GSUdfQ1JZUFRPX0xJ Ql9CTEFLRTJTX0dFTkVSSUM9eQorQ09ORklHX0NSWVBUT19MSUJfQ0hBQ0hBX0dFTkVSSUM9bQor Q09ORklHX0NSWVBUT19MSUJfQ0hBQ0hBPW0KK0NPTkZJR19DUllQVE9fTElCX0NVUlZFMjU1MTlf R0VORVJJQz1tCitDT05GSUdfQ1JZUFRPX0xJQl9DVVJWRTI1NTE5PW0KK0NPTkZJR19DUllQVE9f TElCX0RFUz1tCitDT05GSUdfQ1JZUFRPX0xJQl9QT0xZMTMwNV9SU0laRT0xCitDT05GSUdfQ1JZ UFRPX0xJQl9QT0xZMTMwNV9HRU5FUklDPW0KK0NPTkZJR19DUllQVE9fTElCX1BPTFkxMzA1PW0K K0NPTkZJR19DUllQVE9fTElCX0NIQUNIQTIwUE9MWTEzMDU9bQorQ09ORklHX0NSWVBUT19MSUJf U0hBMT15CitDT05GSUdfQ1JZUFRPX0xJQl9TSEEyNTY9eQorIyBlbmQgb2YgQ3J5cHRvIGxpYnJh cnkgcm91dGluZXMKKworQ09ORklHX0NSQ19DQ0lUVD15CitDT05GSUdfQ1JDMTY9eQorQ09ORklH X0NSQ19UMTBESUY9eQorQ09ORklHX0NSQzY0X1JPQ0tTT0ZUPXkKK0NPTkZJR19DUkNfSVRVX1Q9 bQorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzMyX1NFTEZURVNUIGlzIG5vdCBzZXQKK0NP TkZJR19DUkMzMl9TTElDRUJZOD15CisjIENPTkZJR19DUkMzMl9TTElDRUJZNCBpcyBub3Qgc2V0 CisjIENPTkZJR19DUkMzMl9TQVJXQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzMyX0JJVCBp cyBub3Qgc2V0CitDT05GSUdfQ1JDNjQ9eQorQ09ORklHX0NSQzQ9bQorQ09ORklHX0NSQzc9bQor Q09ORklHX0xJQkNSQzMyQz1tCitDT05GSUdfQ1JDOD15CitDT05GSUdfWFhIQVNIPXkKK0NPTkZJ R19BVURJVF9HRU5FUklDPXkKKyMgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUIGlzIG5vdCBzZXQK K0NPTkZJR184NDJfQ09NUFJFU1M9eQorQ09ORklHXzg0Ml9ERUNPTVBSRVNTPXkKK0NPTkZJR19a TElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT1tCitDT05GSUdfTFpPX0NPTVBSRVNT PXkKK0NPTkZJR19MWk9fREVDT01QUkVTUz15CitDT05GSUdfTFo0X0NPTVBSRVNTPW0KK0NPTkZJ R19MWjRIQ19DT01QUkVTUz1tCitDT05GSUdfTFo0X0RFQ09NUFJFU1M9eQorQ09ORklHX1pTVERf Q09NTU9OPXkKK0NPTkZJR19aU1REX0NPTVBSRVNTPXkKK0NPTkZJR19aU1REX0RFQ09NUFJFU1M9 eQorQ09ORklHX1haX0RFQz15CitDT05GSUdfWFpfREVDX1g4Nj15CitDT05GSUdfWFpfREVDX1BP V0VSUEM9eQorQ09ORklHX1haX0RFQ19JQTY0PXkKK0NPTkZJR19YWl9ERUNfQVJNPXkKK0NPTkZJ R19YWl9ERUNfQVJNVEhVTUI9eQorQ09ORklHX1haX0RFQ19TUEFSQz15CitDT05GSUdfWFpfREVD X01JQ1JPTFpNQT15CitDT05GSUdfWFpfREVDX0JDSj15CisjIENPTkZJR19YWl9ERUNfVEVTVCBp cyBub3Qgc2V0CitDT05GSUdfREVDT01QUkVTU19HWklQPXkKK0NPTkZJR19ERUNPTVBSRVNTX0Ja SVAyPXkKK0NPTkZJR19ERUNPTVBSRVNTX0xaTUE9eQorQ09ORklHX0RFQ09NUFJFU1NfWFo9eQor Q09ORklHX0RFQ09NUFJFU1NfTFpPPXkKK0NPTkZJR19ERUNPTVBSRVNTX0xaND15CitDT05GSUdf REVDT01QUkVTU19aU1REPXkKK0NPTkZJR19HRU5FUklDX0FMTE9DQVRPUj15CitDT05GSUdfUkVF RF9TT0xPTU9OPW0KK0NPTkZJR19SRUVEX1NPTE9NT05fRU5DOD15CitDT05GSUdfUkVFRF9TT0xP TU9OX0RFQzg9eQorQ09ORklHX1JFRURfU09MT01PTl9ERUMxNj15CitDT05GSUdfQkNIPW0KK0NP TkZJR19URVhUU0VBUkNIPXkKK0NPTkZJR19URVhUU0VBUkNIX0tNUD1tCitDT05GSUdfVEVYVFNF QVJDSF9CTT1tCitDT05GSUdfVEVYVFNFQVJDSF9GU009bQorQ09ORklHX0JUUkVFPXkKK0NPTkZJ R19JTlRFUlZBTF9UUkVFPXkKK0NPTkZJR19JTlRFUlZBTF9UUkVFX1NQQU5fSVRFUj15CitDT05G SUdfWEFSUkFZX01VTFRJPXkKK0NPTkZJR19BU1NPQ0lBVElWRV9BUlJBWT15CitDT05GSUdfSEFT X0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfSU9QT1JUX01BUD15CitD T05GSUdfSEFTX0RNQT15CitDT05GSUdfRE1BX09QUz15CitDT05GSUdfTkVFRF9ETUFfTUFQX1NU QVRFPXkKK0NPTkZJR19BUkNIX0RNQV9BRERSX1RfNjRCSVQ9eQorQ09ORklHX0RNQV9ERUNMQVJF X0NPSEVSRU5UPXkKK0NPTkZJR19BUkNIX0hBU19TRVRVUF9ETUFfT1BTPXkKK0NPTkZJR19BUkNI X0hBU19TWU5DX0RNQV9GT1JfREVWSUNFPXkKK0NPTkZJR19BUkNIX0hBU19TWU5DX0RNQV9GT1Jf Q1BVPXkKK0NPTkZJR19BUkNIX0hBU19ETUFfUFJFUF9DT0hFUkVOVD15CitDT05GSUdfQVJDSF9E TUFfREVGQVVMVF9DT0hFUkVOVD15CitDT05GSUdfU1dJT1RMQj15CisjIENPTkZJR19ETUFfUkVT VFJJQ1RFRF9QT09MIGlzIG5vdCBzZXQKK0NPTkZJR19ETUFfTk9OQ09IRVJFTlRfTU1BUD15CitD T05GSUdfRE1BX0NPSEVSRU5UX1BPT0w9eQorQ09ORklHX0RNQV9ESVJFQ1RfUkVNQVA9eQorQ09O RklHX0RNQV9DTUE9eQorQ09ORklHX0RNQV9QRVJOVU1BX0NNQT15CisKKyMKKyMgRGVmYXVsdCBj b250aWd1b3VzIG1lbW9yeSBhcmVhIHNpemU6CisjCitDT05GSUdfQ01BX1NJWkVfTUJZVEVTPTAK K0NPTkZJR19DTUFfU0laRV9TRUxfTUJZVEVTPXkKKyMgQ09ORklHX0NNQV9TSVpFX1NFTF9QRVJD RU5UQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NNQV9TSVpFX1NFTF9NSU4gaXMgbm90IHNldAor IyBDT05GSUdfQ01BX1NJWkVfU0VMX01BWCBpcyBub3Qgc2V0CitDT05GSUdfQ01BX0FMSUdOTUVO VD04CisjIENPTkZJR19ETUFfQVBJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNQV9NQVBf QkVOQ0hNQVJLIGlzIG5vdCBzZXQKK0NPTkZJR19TR0xfQUxMT0M9eQorQ09ORklHX0NIRUNLX1NJ R05BVFVSRT15CisjIENPTkZJR19GT1JDRV9OUl9DUFVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVf Uk1BUD15CitDT05GSUdfRFFMPXkKK0NPTkZJR19HTE9CPXkKKyMgQ09ORklHX0dMT0JfU0VMRlRF U1QgaXMgbm90IHNldAorQ09ORklHX05MQVRUUj15CitDT05GSUdfTFJVX0NBQ0hFPW0KK0NPTkZJ R19DTFpfVEFCPXkKK0NPTkZJR19JUlFfUE9MTD15CitDT05GSUdfTVBJTElCPXkKK0NPTkZJR19E SU1MSUI9eQorQ09ORklHX0xJQkZEVD15CitDT05GSUdfT0lEX1JFR0lTVFJZPXkKK0NPTkZJR19V Q1MyX1NUUklORz15CitDT05GSUdfSEFWRV9HRU5FUklDX1ZEU089eQorQ09ORklHX0dFTkVSSUNf R0VUVElNRU9GREFZPXkKK0NPTkZJR19HRU5FUklDX1ZEU09fVElNRV9OUz15CitDT05GSUdfRk9O VF9TVVBQT1JUPXkKK0NPTkZJR19GT05UUz15CitDT05GSUdfRk9OVF84eDg9eQorQ09ORklHX0ZP TlRfOHgxNj15CisjIENPTkZJR19GT05UXzZ4MTEgaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF83 eDE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfUEVBUkxfOHg4IGlzIG5vdCBzZXQKKyMgQ09O RklHX0ZPTlRfQUNPUk5fOHg4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfTUlOSV80eDYgaXMg bm90IHNldAorIyBDT05GSUdfRk9OVF82eDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfMTB4 MTggaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF9TVU44eDE2IGlzIG5vdCBzZXQKKyMgQ09ORklH X0ZPTlRfU1VOMTJ4MjIgaXMgbm90IHNldAorQ09ORklHX0ZPTlRfVEVSMTZ4MzI9eQorIyBDT05G SUdfRk9OVF82eDggaXMgbm90IHNldAorQ09ORklHX1NHX1BPT0w9eQorQ09ORklHX0FSQ0hfSEFT X1BNRU1fQVBJPXkKK0NPTkZJR19NRU1SRUdJT049eQorQ09ORklHX0FSQ0hfU1RBQ0tXQUxLPXkK K0NPTkZJR19TVEFDS0RFUE9UPXkKK0NPTkZJR19TQklUTUFQPXkKK0NPTkZJR19QQVJNQU49bQor Q09ORklHX09CSkFHRz1tCisjIGVuZCBvZiBMaWJyYXJ5IHJvdXRpbmVzCisKK0NPTkZJR19HRU5F UklDX0lPUkVNQVA9eQorQ09ORklHX0dFTkVSSUNfTElCX0RFVk1FTV9JU19BTExPV0VEPXkKK0NP TkZJR19QTERNRlc9eQorQ09ORklHX0FTTjFfRU5DT0RFUj1tCitDT05GSUdfUE9MWU5PTUlBTD1t CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKworIworIyBwcmludGsgYW5kIGRtZXNnIG9wdGlv bnMKKyMKK0NPTkZJR19QUklOVEtfVElNRT15CisjIENPTkZJR19QUklOVEtfQ0FMTEVSIGlzIG5v dCBzZXQKKyMgQ09ORklHX1NUQUNLVFJBQ0VfQlVJTERfSUQgaXMgbm90IHNldAorQ09ORklHX0NP TlNPTEVfTE9HTEVWRUxfREVGQVVMVD03CitDT05GSUdfQ09OU09MRV9MT0dMRVZFTF9RVUlFVD00 CitDT05GSUdfTUVTU0FHRV9MT0dMRVZFTF9ERUZBVUxUPTQKKyMgQ09ORklHX0JPT1RfUFJJTlRL X0RFTEFZIGlzIG5vdCBzZXQKK0NPTkZJR19EWU5BTUlDX0RFQlVHPXkKK0NPTkZJR19EWU5BTUlD X0RFQlVHX0NPUkU9eQorQ09ORklHX1NZTUJPTElDX0VSUk5BTUU9eQorQ09ORklHX0RFQlVHX0JV R1ZFUkJPU0U9eQorIyBlbmQgb2YgcHJpbnRrIGFuZCBkbWVzZyBvcHRpb25zCisKK0NPTkZJR19E RUJVR19LRVJORUw9eQorQ09ORklHX0RFQlVHX01JU0M9eQorCisjCisjIENvbXBpbGUtdGltZSBj aGVja3MgYW5kIGNvbXBpbGVyIG9wdGlvbnMKKyMKK0NPTkZJR19ERUJVR19JTkZPPXkKKyMgQ09O RklHX0RFQlVHX0lORk9fTk9ORSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfSU5GT19EV0FSRl9U T09MQ0hBSU5fREVGQVVMVD15CisjIENPTkZJR19ERUJVR19JTkZPX0RXQVJGNCBpcyBub3Qgc2V0 CisjIENPTkZJR19ERUJVR19JTkZPX0RXQVJGNSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19J TkZPX1JFRFVDRUQgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0lORk9fQ09NUFJFU1NFRF9OT05F PXkKKyMgQ09ORklHX0RFQlVHX0lORk9fQ09NUFJFU1NFRF9aTElCIGlzIG5vdCBzZXQKKyMgQ09O RklHX0RFQlVHX0lORk9fU1BMSVQgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0lORk9fQlRGPXkK K0NPTkZJR19QQUhPTEVfSEFTX1NQTElUX0JURj15CitDT05GSUdfUEFIT0xFX0hBU19MQU5HX0VY Q0xVREU9eQorQ09ORklHX0RFQlVHX0lORk9fQlRGX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxF X0FMTE9XX0JURl9NSVNNQVRDSCBpcyBub3Qgc2V0CisjIENPTkZJR19HREJfU0NSSVBUUyBpcyBu b3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0yMDQ4CitDT05GSUdfU1RSSVBfQVNNX1NZTVM9eQor IyBDT05GSUdfUkVBREFCTEVfQVNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfSU5TVEFM TCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfU0VDVElPTl9NSVNNQVRDSD15CitDT05GSUdfU0VD VElPTl9NSVNNQVRDSF9XQVJOX09OTFk9eQorQ09ORklHX0FSQ0hfV0FOVF9GUkFNRV9QT0lOVEVS Uz15CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19WTUxJTlVYX01BUCBpcyBub3Qg c2V0CitDT05GSUdfREVCVUdfRk9SQ0VfV0VBS19QRVJfQ1BVPXkKKyMgZW5kIG9mIENvbXBpbGUt dGltZSBjaGVja3MgYW5kIGNvbXBpbGVyIG9wdGlvbnMKKworIworIyBHZW5lcmljIEtlcm5lbCBE ZWJ1Z2dpbmcgSW5zdHJ1bWVudHMKKyMKK0NPTkZJR19NQUdJQ19TWVNSUT15CitDT05GSUdfTUFH SUNfU1lTUlFfREVGQVVMVF9FTkFCTEU9MHgxCitDT05GSUdfTUFHSUNfU1lTUlFfU0VSSUFMPXkK K0NPTkZJR19NQUdJQ19TWVNSUV9TRVJJQUxfU0VRVUVOQ0U9IiIKK0NPTkZJR19ERUJVR19GUz15 CitDT05GSUdfREVCVUdfRlNfQUxMT1dfQUxMPXkKKyMgQ09ORklHX0RFQlVHX0ZTX0RJU0FMTE9X X01PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTX0FMTE9XX05PTkUgaXMgbm90IHNl dAorQ09ORklHX0hBVkVfQVJDSF9LR0RCPXkKK0NPTkZJR19IQVZFX0FSQ0hfS0dEQl9RWEZFUl9Q S1Q9eQorQ09ORklHX0tHREI9eQorQ09ORklHX0tHREJfSE9OT1VSX0JMT0NLTElTVD15CitDT05G SUdfS0dEQl9TRVJJQUxfQ09OU09MRT15CisjIENPTkZJR19LR0RCX1RFU1RTIGlzIG5vdCBzZXQK K0NPTkZJR19LR0RCX0tEQj15CitDT05GSUdfS0RCX0RFRkFVTFRfRU5BQkxFPTB4MQorQ09ORklH X0tEQl9LRVlCT0FSRD15CitDT05GSUdfS0RCX0NPTlRJTlVFX0NBVEFTVFJPUEhJQz0wCitDT05G SUdfQVJDSF9IQVNfVUJTQU5fU0FOSVRJWkVfQUxMPXkKKyMgQ09ORklHX1VCU0FOIGlzIG5vdCBz ZXQKK0NPTkZJR19IQVZFX0tDU0FOX0NPTVBJTEVSPXkKKyMgZW5kIG9mIEdlbmVyaWMgS2VybmVs IERlYnVnZ2luZyBJbnN0cnVtZW50cworCisjCisjIE5ldHdvcmtpbmcgRGVidWdnaW5nCisjCisj IENPTkZJR19ORVRfREVWX1JFRkNOVF9UUkFDS0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9O U19SRUZDTlRfVFJBQ0tFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ORVQgaXMgbm90IHNl dAorIyBlbmQgb2YgTmV0d29ya2luZyBEZWJ1Z2dpbmcKKworIworIyBNZW1vcnkgRGVidWdnaW5n CisjCitDT05GSUdfUEFHRV9FWFRFTlNJT049eQorIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlz IG5vdCBzZXQKK0NPTkZJR19TTFVCX0RFQlVHPXkKKyMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMg bm90IHNldAorQ09ORklHX1BBR0VfT1dORVI9eQorIyBDT05GSUdfUEFHRV9UQUJMRV9DSEVDSyBp cyBub3Qgc2V0CitDT05GSUdfUEFHRV9QT0lTT05JTkc9eQorIyBDT05GSUdfREVCVUdfUEFHRV9S RUYgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUk9EQVRBX1RFU1QgaXMgbm90IHNldAorQ09O RklHX0FSQ0hfSEFTX0RFQlVHX1dYPXkKK0NPTkZJR19ERUJVR19XWD15CitDT05GSUdfR0VORVJJ Q19QVERVTVA9eQorQ09ORklHX1BURFVNUF9DT1JFPXkKKyMgQ09ORklHX1BURFVNUF9ERUJVR0ZT IGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0RFQlVHX0tNRU1MRUFLPXkKKyMgQ09ORklHX0RFQlVH X0tNRU1MRUFLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAor IyBDT05GSUdfU0hSSU5LRVJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1RBQ0tf VVNBR0UgaXMgbm90IHNldAorQ09ORklHX1NDSEVEX1NUQUNLX0VORF9DSEVDSz15CitDT05GSUdf QVJDSF9IQVNfREVCVUdfVk1fUEdUQUJMRT15CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0 CisjIENPTkZJR19ERUJVR19WTV9QR1RBQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19E RUJVR19WSVJUVUFMPXkKKyMgQ09ORklHX0RFQlVHX1ZJUlRVQUwgaXMgbm90IHNldAorQ09ORklH X0RFQlVHX01FTU9SWV9JTklUPXkKKyMgQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUyBpcyBub3Qg c2V0CitDT05GSUdfSEFWRV9BUkNIX0tBU0FOPXkKK0NPTkZJR19IQVZFX0FSQ0hfS0FTQU5fVk1B TExPQz15CitDT05GSUdfQ0NfSEFTX0tBU0FOX0dFTkVSSUM9eQorQ09ORklHX0NDX0hBU19XT1JL SU5HX05PU0FOSVRJWkVfQUREUkVTUz15CisjIENPTkZJR19LQVNBTiBpcyBub3Qgc2V0CitDT05G SUdfSEFWRV9BUkNIX0tGRU5DRT15CisjIENPTkZJR19LRkVOQ0UgaXMgbm90IHNldAorIyBlbmQg b2YgTWVtb3J5IERlYnVnZ2luZworCisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CisK KyMKKyMgRGVidWcgT29wcywgTG9ja3VwcyBhbmQgSGFuZ3MKKyMKKyMgQ09ORklHX1BBTklDX09O X09PUFMgaXMgbm90IHNldAorQ09ORklHX1BBTklDX09OX09PUFNfVkFMVUU9MAorQ09ORklHX1BB TklDX1RJTUVPVVQ9MAorQ09ORklHX0xPQ0tVUF9ERVRFQ1RPUj15CitDT05GSUdfU09GVExPQ0tV UF9ERVRFQ1RPUj15CisjIENPTkZJR19CT09UUEFSQU1fU09GVExPQ0tVUF9QQU5JQyBpcyBub3Qg c2V0CitDT05GSUdfREVURUNUX0hVTkdfVEFTSz15CitDT05GSUdfREVGQVVMVF9IVU5HX1RBU0tf VElNRU9VVD0xMjAKKyMgQ09ORklHX0JPT1RQQVJBTV9IVU5HX1RBU0tfUEFOSUMgaXMgbm90IHNl dAorIyBDT05GSUdfV1FfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9MT0NLVVAg aXMgbm90IHNldAorIyBlbmQgb2YgRGVidWcgT29wcywgTG9ja3VwcyBhbmQgSGFuZ3MKKworIwor IyBTY2hlZHVsZXIgRGVidWdnaW5nCisjCitDT05GSUdfU0NIRURfREVCVUc9eQorQ09ORklHX1ND SEVEX0lORk89eQorQ09ORklHX1NDSEVEU1RBVFM9eQorIyBlbmQgb2YgU2NoZWR1bGVyIERlYnVn Z2luZworCisjIENPTkZJR19ERUJVR19USU1FS0VFUElORyBpcyBub3Qgc2V0CisKKyMKKyMgTG9j ayBEZWJ1Z2dpbmcgKHNwaW5sb2NrcywgbXV0ZXhlcywgZXRjLi4uKQorIworQ09ORklHX0xPQ0tf REVCVUdHSU5HX1NVUFBPUlQ9eQorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0Cisj IENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBp cyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19E RUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dXX01VVEVYX1NMT1dQQVRI IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JXU0VNUyBpcyBub3Qgc2V0CisjIENPTkZJR19E RUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0FUT01JQ19TTEVFUCBp cyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNl dAorIyBDT05GSUdfTE9DS19UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfV1dfTVVU RVhfU0VMRlRFU1QgaXMgbm90IHNldAorIyBDT05GSUdfU0NGX1RPUlRVUkVfVEVTVCBpcyBub3Qg c2V0CisjIENPTkZJR19DU0RfTE9DS19XQUlUX0RFQlVHIGlzIG5vdCBzZXQKKyMgZW5kIG9mIExv Y2sgRGVidWdnaW5nIChzcGlubG9ja3MsIG11dGV4ZXMsIGV0Yy4uLikKKworIyBDT05GSUdfREVC VUdfSVJRRkxBR1MgaXMgbm90IHNldAorQ09ORklHX1NUQUNLVFJBQ0U9eQorIyBDT05GSUdfV0FS Tl9BTExfVU5TRUVERURfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1Qg aXMgbm90IHNldAorCisjCisjIERlYnVnIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMKKyMKKyMgQ09O RklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUExJU1QgaXMgbm90IHNl dAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTk9USUZJRVJT IGlzIG5vdCBzZXQKKyMgQ09ORklHX0JVR19PTl9EQVRBX0NPUlJVUFRJT04gaXMgbm90IHNldAor IyBDT05GSUdfREVCVUdfTUFQTEVfVFJFRSBpcyBub3Qgc2V0CisjIGVuZCBvZiBEZWJ1ZyBrZXJu ZWwgZGF0YSBzdHJ1Y3R1cmVzCisKKyMgQ09ORklHX0RFQlVHX0NSRURFTlRJQUxTIGlzIG5vdCBz ZXQKKworIworIyBSQ1UgRGVidWdnaW5nCisjCitDT05GSUdfVE9SVFVSRV9URVNUPW0KKyMgQ09O RklHX1JDVV9TQ0FMRV9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19SQ1VfVE9SVFVSRV9URVNUPW0K K0NPTkZJR19SQ1VfUkVGX1NDQUxFX1RFU1Q9bQorQ09ORklHX1JDVV9DUFVfU1RBTExfVElNRU9V VD02MAorQ09ORklHX1JDVV9FWFBfQ1BVX1NUQUxMX1RJTUVPVVQ9MAorIyBDT05GSUdfUkNVX0NQ VV9TVEFMTF9DUFVUSU1FIGlzIG5vdCBzZXQKK0NPTkZJR19SQ1VfVFJBQ0U9eQorIyBDT05GSUdf UkNVX0VRU19ERUJVRyBpcyBub3Qgc2V0CisjIGVuZCBvZiBSQ1UgRGVidWdnaW5nCisKKyMgQ09O RklHX0RFQlVHX1dRX0ZPUkNFX1JSX0NQVSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfSE9UUExV R19TVEFURV9DT05UUk9MIGlzIG5vdCBzZXQKK0NPTkZJR19MQVRFTkNZVE9QPXkKKyMgQ09ORklH X0RFQlVHX0NHUk9VUF9SRUYgaXMgbm90IHNldAorQ09ORklHX05PUF9UUkFDRVI9eQorQ09ORklH X0hBVkVfUkVUSE9PSz15CitDT05GSUdfUkVUSE9PSz15CitDT05GSUdfSEFWRV9GVU5DVElPTl9U UkFDRVI9eQorQ09ORklHX0hBVkVfRlVOQ1RJT05fR1JBUEhfVFJBQ0VSPXkKK0NPTkZJR19IQVZF X0RZTkFNSUNfRlRSQUNFPXkKK0NPTkZJR19IQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfUkVHUz15 CitDT05GSUdfSEFWRV9GVFJBQ0VfTUNPVU5UX1JFQ09SRD15CitDT05GSUdfSEFWRV9TWVNDQUxM X1RSQUNFUE9JTlRTPXkKK0NPTkZJR19UUkFDRVJfTUFYX1RSQUNFPXkKK0NPTkZJR19UUkFDRV9D TE9DSz15CitDT05GSUdfUklOR19CVUZGRVI9eQorQ09ORklHX0VWRU5UX1RSQUNJTkc9eQorQ09O RklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUj15CitDT05GSUdfUklOR19CVUZGRVJfQUxMT1dfU1dB UD15CitDT05GSUdfVFJBQ0lORz15CitDT05GSUdfR0VORVJJQ19UUkFDRVI9eQorQ09ORklHX1RS QUNJTkdfU1VQUE9SVD15CitDT05GSUdfRlRSQUNFPXkKK0NPTkZJR19CT09UVElNRV9UUkFDSU5H PXkKK0NPTkZJR19GVU5DVElPTl9UUkFDRVI9eQorQ09ORklHX0ZVTkNUSU9OX0dSQVBIX1RSQUNF Uj15CitDT05GSUdfRFlOQU1JQ19GVFJBQ0U9eQorQ09ORklHX0RZTkFNSUNfRlRSQUNFX1dJVEhf UkVHUz15CitDT05GSUdfRlBST0JFPXkKK0NPTkZJR19GVU5DVElPTl9QUk9GSUxFUj15CitDT05G SUdfU1RBQ0tfVFJBQ0VSPXkKKyMgQ09ORklHX0lSUVNPRkZfVFJBQ0VSIGlzIG5vdCBzZXQKK0NP TkZJR19TQ0hFRF9UUkFDRVI9eQorQ09ORklHX0hXTEFUX1RSQUNFUj15CitDT05GSUdfT1NOT0lT RV9UUkFDRVI9eQorQ09ORklHX1RJTUVSTEFUX1RSQUNFUj15CitDT05GSUdfRlRSQUNFX1NZU0NB TExTPXkKK0NPTkZJR19UUkFDRVJfU05BUFNIT1Q9eQorQ09ORklHX1RSQUNFUl9TTkFQU0hPVF9Q RVJfQ1BVX1NXQVA9eQorQ09ORklHX0JSQU5DSF9QUk9GSUxFX05PTkU9eQorIyBDT05GSUdfUFJP RklMRV9BTk5PVEFURURfQlJBTkNIRVMgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfSU9fVFJB Q0U9eQorQ09ORklHX0tQUk9CRV9FVkVOVFM9eQorIyBDT05GSUdfS1BST0JFX0VWRU5UU19PTl9O T1RSQUNFIGlzIG5vdCBzZXQKK0NPTkZJR19VUFJPQkVfRVZFTlRTPXkKK0NPTkZJR19CUEZfRVZF TlRTPXkKK0NPTkZJR19EWU5BTUlDX0VWRU5UUz15CitDT05GSUdfUFJPQkVfRVZFTlRTPXkKK0NP TkZJR19CUEZfS1BST0JFX09WRVJSSURFPXkKK0NPTkZJR19GVFJBQ0VfTUNPVU5UX1JFQ09SRD15 CitDT05GSUdfRlRSQUNFX01DT1VOVF9VU0VfUkVDT1JETUNPVU5UPXkKK0NPTkZJR19TWU5USF9F VkVOVFM9eQorQ09ORklHX1VTRVJfRVZFTlRTPXkKKyMgQ09ORklHX1RSQUNFX0VWRU5UX0lOSkVD VCBpcyBub3Qgc2V0CisjIENPTkZJR19UUkFDRVBPSU5UX0JFTkNITUFSSyBpcyBub3Qgc2V0CitD T05GSUdfUklOR19CVUZGRVJfQkVOQ0hNQVJLPW0KKyMgQ09ORklHX1RSQUNFX0VWQUxfTUFQX0ZJ TEUgaXMgbm90IHNldAorIyBDT05GSUdfRlRSQUNFX1JFQ09SRF9SRUNVUlNJT04gaXMgbm90IHNl dAorIyBDT05GSUdfRlRSQUNFX1NUQVJUVVBfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19SSU5H X0JVRkZFUl9TVEFSVFVQX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfUklOR19CVUZGRVJfVkFM SURBVEVfVElNRV9ERUxUQVMgaXMgbm90IHNldAorIyBDT05GSUdfUFJFRU1QVElSUV9ERUxBWV9U RVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTlRIX0VWRU5UX0dFTl9URVNUIGlzIG5vdCBzZXQK KyMgQ09ORklHX0tQUk9CRV9FVkVOVF9HRU5fVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19SViBp cyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19TVFJJQ1RfREVW TUVNPXkKK0NPTkZJR19JT19TVFJJQ1RfREVWTUVNPXkKKworIworIyByaXNjdiBEZWJ1Z2dpbmcK KyMKKyMgZW5kIG9mIHJpc2N2IERlYnVnZ2luZworCisjCisjIEtlcm5lbCBUZXN0aW5nIGFuZCBD b3ZlcmFnZQorIworIyBDT05GSUdfS1VOSVQgaXMgbm90IHNldAorIyBDT05GSUdfTk9USUZJRVJf RVJST1JfSU5KRUNUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJ T049eQorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hB U19LQ09WPXkKK0NPTkZJR19DQ19IQVNfU0FOQ09WX1RSQUNFX1BDPXkKKyMgQ09ORklHX0tDT1Yg aXMgbm90IHNldAorQ09ORklHX1JVTlRJTUVfVEVTVElOR19NRU5VPXkKKyMgQ09ORklHX1RFU1Rf REhSWSBpcyBub3Qgc2V0CisjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNU X01JTl9IRUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfRElWNjQgaXMgbm90IHNldAorIyBD T05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1JFRl9U UkFDS0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JCVFJFRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09O RklHX1JFRURfU09MT01PTl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOVEVSVkFMX1RSRUVf VEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19QRVJDUFVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJ R19BVE9NSUM2NF9TRUxGVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfQVNZTkNfUkFJRDZfVEVTVD1t CisjIENPTkZJR19URVNUX0hFWERVTVAgaXMgbm90IHNldAorIyBDT05GSUdfU1RSSU5HX1NFTEZU RVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfU1RSSU5HX0hFTFBFUlMgaXMgbm90IHNldAor IyBDT05GSUdfVEVTVF9LU1RSVE9YIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfUFJJTlRGIGlz IG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfU0NBTkYgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9C SVRNQVAgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9VVUlEIGlzIG5vdCBzZXQKKyMgQ09ORklH X1RFU1RfWEFSUkFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfTUFQTEVfVFJFRSBpcyBub3Qg c2V0CisjIENPTkZJR19URVNUX1JIQVNIVEFCTEUgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9J REEgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9QQVJNQU4gaXMgbm90IHNldAorIyBDT05GSUdf VEVTVF9MS00gaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9CSVRPUFMgaXMgbm90IHNldAorIyBD T05GSUdfVEVTVF9WTUFMTE9DIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfVVNFUl9DT1BZIGlz IG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfQlBGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfQkxB Q0tIT0xFX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19GSU5EX0JJVF9CRU5DSE1BUksgaXMgbm90 IHNldAorIyBDT05GSUdfVEVTVF9GSVJNV0FSRSBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1NZ U0NUTCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX1VERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJ R19URVNUX1NUQVRJQ19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFU1RfRFlOQU1JQ19ERUJV RyBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX0tNT0QgaXMgbm90IHNldAorIyBDT05GSUdfVEVT VF9NRU1DQVRfUCBpcyBub3Qgc2V0CisjIENPTkZJR19URVNUX09CSkFHRyBpcyBub3Qgc2V0Cisj IENPTkZJR19URVNUX01FTUlOSVQgaXMgbm90IHNldAorIyBDT05GSUdfVEVTVF9GUkVFX1BBR0VT IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1VTRV9NRU1URVNUPXkKK0NPTkZJR19NRU1URVNUPXkK KyMgZW5kIG9mIEtlcm5lbCBUZXN0aW5nIGFuZCBDb3ZlcmFnZQorCisjCisjIFJ1c3QgaGFja2lu ZworIworIyBlbmQgb2YgUnVzdCBoYWNraW5nCisjIGVuZCBvZiBLZXJuZWwgaGFja2luZwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMDEtZHQtYmluZGluZ3MtY2xvY2st QWRkLVN0YXJGaXZlLUpINzExMC1TeXN0ZW0tVG9wLUdyby5wYXRjaCBiL3NyY3BrZ3MvbGludXg2 LjQvcGF0Y2hlcy8wMDAxLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtU3lz dGVtLVRvcC1Hcm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MC4uNmRmYjYxMjQ4NzU3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0 Y2hlcy8wMDAxLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtU3lzdGVtLVRv cC1Hcm8ucGF0Y2gKQEAgLTAsMCArMSwyMDMgQEAKK0Zyb20gZDkwNmQzZTY0ODE3Njg3ZTVmMjZi YTFiODYyMWJmZjUzMDA5YTI2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5 dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDE4IE1heSAyMDIz IDE4OjEyOjI0ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDEvNzJdIGR0LWJpbmRpbmdzOiBjbG9j azogQWRkIFN0YXJGaXZlIEpINzExMAorIFN5c3RlbS1Ub3AtR3JvdXAgY2xvY2sgYW5kIHJlc2V0 IGdlbmVyYXRvcgorCitBZGQgYmluZGluZ3MgZm9yIHRoZSBTeXN0ZW0tVG9wLUdyb3VwIGNsb2Nr IGFuZCByZXNldCBnZW5lcmF0b3IgKFNUR0NSRykKK29uIHRoZSBKSDcxMTAgUklTQy1WIFNvQyBi eSBTdGFyRml2ZSBMdGQuCisKK1Jldmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5 c3p0b2Yua296bG93c2tpQGxpbmFyby5vcmc+CitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhp bmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2Nsb2NrL3N0YXJmaXZlLGpoNzEx MC1zdGdjcmcueWFtbCAgICAgICAgIHwgODIgKysrKysrKysrKysrKysrKysrKworIC4uLi9kdC1i aW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmggICB8IDM0ICsrKysrKysrCisgLi4u L2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaCAgIHwgMjggKysrKysrKwor IDMgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQg RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1z dGdjcmcueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1zdGdjcmcueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtc3RnY3JnLnlhbWwKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmI2NGNjZDg0MjAwYQorLS0tIC9k ZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0 YXJmaXZlLGpoNzExMC1zdGdjcmcueWFtbAorQEAgLTAsMCArMSw4MiBAQAorKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UKKyslWUFNTCAxLjIK KystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Nsb2NrL3N0YXJmaXZl LGpoNzExMC1zdGdjcmcueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0 YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIFN5c3RlbS1U b3AtR3JvdXAgQ2xvY2sgYW5kIFJlc2V0IEdlbmVyYXRvcgorKworK21haW50YWluZXJzOgorKyAg LSBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorKworK3Byb3BlcnRpZXM6 CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3MTEwLXN0Z2NyZworKwor KyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKworKyAgY2xvY2tzOgorKyAgICBpdGVtczoKKysg ICAgICAtIGRlc2NyaXB0aW9uOiBNYWluIE9zY2lsbGF0b3IgKDI0IE1IeikKKysgICAgICAtIGRl c2NyaXB0aW9uOiBISUZJNCBjb3JlCisrICAgICAgLSBkZXNjcmlwdGlvbjogU1RHIEFYSS9BSEIK KysgICAgICAtIGRlc2NyaXB0aW9uOiBVU0IgKDEyNSBNSHopCisrICAgICAgLSBkZXNjcmlwdGlv bjogQ1BVIEJ1cworKyAgICAgIC0gZGVzY3JpcHRpb246IEhJRkk0IEF4aQorKyAgICAgIC0gZGVz Y3JpcHRpb246IE5PQyBTVEcgQnVzCisrICAgICAgLSBkZXNjcmlwdGlvbjogQVBCIEJ1cworKwor KyAgY2xvY2stbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IG9zYworKyAgICAg IC0gY29uc3Q6IGhpZmk0X2NvcmUKKysgICAgICAtIGNvbnN0OiBzdGdfYXhpYWhiCisrICAgICAg LSBjb25zdDogdXNiXzEyNW0KKysgICAgICAtIGNvbnN0OiBjcHVfYnVzCisrICAgICAgLSBjb25z dDogaGlmaTRfYXhpCisrICAgICAgLSBjb25zdDogbm9jc3RnX2J1cworKyAgICAgIC0gY29uc3Q6 IGFwYl9idXMKKysKKysgICcjY2xvY2stY2VsbHMnOgorKyAgICBjb25zdDogMQorKyAgICBkZXNj cmlwdGlvbjoKKysgICAgICBTZWUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1j cmcuaD4gZm9yIHZhbGlkIGluZGljZXMuCisrCisrICAnI3Jlc2V0LWNlbGxzJzoKKysgICAgY29u c3Q6IDEKKysgICAgZGVzY3JpcHRpb246CisrICAgICAgU2VlIDxkdC1iaW5kaW5ncy9yZXNldC9z dGFyZml2ZSxqaDcxMTAtY3JnLmg+IGZvciB2YWxpZCBpbmRpY2VzLgorKworK3JlcXVpcmVkOgor KyAgLSBjb21wYXRpYmxlCisrICAtIHJlZworKyAgLSBjbG9ja3MKKysgIC0gY2xvY2stbmFtZXMK KysgIC0gJyNjbG9jay1jZWxscycKKysgIC0gJyNyZXNldC1jZWxscycKKysKKythZGRpdGlvbmFs UHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAorKyAgICAjaW5jbHVkZSA8 ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oPgorKworKyAgICBzdGdjcmc6 IGNsb2NrLWNvbnRyb2xsZXJAMTAyMzAwMDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFy Zml2ZSxqaDcxMTAtc3RnY3JnIjsKKysgICAgICAgIHJlZyA9IDwweDEwMjMwMDAwIDB4MTAwMDA+ OworKyAgICAgICAgY2xvY2tzID0gPCZvc2M+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcg Skg3MTEwX1NZU0NMS19ISUZJNF9DT1JFPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpI NzExMF9TWVNDTEtfU1RHX0FYSUFIQj4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcx MTBfU1lTQ0xLX1VTQl8xMjVNPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9T WVNDTEtfQ1BVX0JVUz4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xL X0hJRkk0X0FYST4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX05P Q1NUR19CVVM+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19BUEJf QlVTPjsKKysgICAgICAgIGNsb2NrLW5hbWVzID0gIm9zYyIsICJoaWZpNF9jb3JlIiwKKysgICAg ICAgICAgICAgICAgICAgICAgInN0Z19heGlhaGIiLCAidXNiXzEyNW0iLAorKyAgICAgICAgICAg ICAgICAgICAgICAiY3B1X2J1cyIsICJoaWZpNF9heGkiLAorKyAgICAgICAgICAgICAgICAgICAg ICAibm9jc3RnX2J1cyIsICJhcGJfYnVzIjsKKysgICAgICAgICNjbG9jay1jZWxscyA9IDwxPjsK KysgICAgICAgICNyZXNldC1jZWxscyA9IDwxPjsKKysgICAgfTsKK2RpZmYgLS1naXQgYS9pbmNs dWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaCBiL2luY2x1ZGUvZHQt YmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCitpbmRleCAwNjI1N2JmZDlhYzEu LjZjOGU4YjRjZjFmNiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3Rh cmZpdmUsamg3MTEwLWNyZy5oCisrKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJm aXZlLGpoNzExMC1jcmcuaAorQEAgLTEsNiArMSw3IEBACisgLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAgT1IgTUlUICovCisgLyoKKyAgKiBDb3B5cmlnaHQgMjAyMiBFbWlsIFJl bm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorKyAqIENvcHlyaWdodCAyMDIyIFN0YXJG aXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisgICovCisgCisgI2lmbmRlZiBfX0RUX0JJTkRJTkdT X0NMT0NLX1NUQVJGSVZFX0pINzExMF9DUkdfSF9fCitAQCAtMjE4LDQgKzIxOSwzNyBAQAorIAor ICNkZWZpbmUgSkg3MTEwX0FPTkNMS19FTkQJCQkxNAorIAorKy8qIFNUR0NSRyBjbG9ja3MgKi8K KysjZGVmaW5lIEpINzExMF9TVEdDTEtfSElGSTRfQ0xLX0NPUkUJCTAKKysjZGVmaW5lIEpINzEx MF9TVEdDTEtfVVNCMF9BUEIJCQkxCisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX1VTQjBfVVRNSV9B UEIJCTIKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfVVNCMF9BWEkJCQkzCisrI2RlZmluZSBKSDcx MTBfU1RHQ0xLX1VTQjBfTFBNCQkJNAorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19VU0IwX1NUQgkJ CTUKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfVVNCMF9BUFBfMTI1CQk2CisrI2RlZmluZSBKSDcx MTBfU1RHQ0xLX1VTQjBfUkVGQ0xLCQk3CisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX1BDSUUwX0FY SV9NU1QwCQk4CisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX1BDSUUwX0FQQgkJCTkKKysjZGVmaW5l IEpINzExMF9TVEdDTEtfUENJRTBfVEwJCQkxMAorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19QQ0lF MV9BWElfTVNUMAkJMTEKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfUENJRTFfQVBCCQkJMTIKKysj ZGVmaW5lIEpINzExMF9TVEdDTEtfUENJRTFfVEwJCQkxMworKyNkZWZpbmUgSkg3MTEwX1NUR0NM S19QQ0lFX1NMVl9NQUlOCQkxNAorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19TRUNfQUhCCQkJMTUK KysjZGVmaW5lIEpINzExMF9TVEdDTEtfU0VDX01JU0NfQUhCCQkxNgorKyNkZWZpbmUgSkg3MTEw X1NUR0NMS19HUlAwX01BSU4JCQkxNworKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19HUlAwX0JVUwkJ CTE4CisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX0dSUDBfU1RHCQkJMTkKKysjZGVmaW5lIEpINzEx MF9TVEdDTEtfR1JQMV9NQUlOCQkJMjAKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfR1JQMV9CVVMJ CQkyMQorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19HUlAxX1NURwkJCTIyCisrI2RlZmluZSBKSDcx MTBfU1RHQ0xLX0dSUDFfSElGSQkJCTIzCisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX0UyX1JUQwkJ CTI0CisrI2RlZmluZSBKSDcxMTBfU1RHQ0xLX0UyX0NPUkUJCQkyNQorKyNkZWZpbmUgSkg3MTEw X1NUR0NMS19FMl9EQkcJCQkyNgorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19ETUExUF9BWEkJCQky NworKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19ETUExUF9BSEIJCQkyOAorKworKyNkZWZpbmUgSkg3 MTEwX1NUR0NMS19FTkQJCQkyOQorKworICNlbmRpZiAvKiBfX0RUX0JJTkRJTkdTX0NMT0NLX1NU QVJGSVZFX0pINzExMF9DUkdfSF9fICovCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kdC1iaW5kaW5n cy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmggYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0 L3N0YXJmaXZlLGpoNzExMC1jcmcuaAoraW5kZXggZDc4ZTM4NjkwY2ViLi40ZTk2YWI4MWRkOGUg MTAwNjQ0CistLS0gYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1j cmcuaAorKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3Jn LmgKK0BAIC0xLDYgKzEsNyBAQAorIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w IE9SIE1JVCAqLworIC8qCisgICogQ29weXJpZ2h0IChDKSAyMDIyIEVtaWwgUmVubmVyIEJlcnRo aW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrICogQ29weXJpZ2h0IChDKSAyMDIyIFN0YXJGaXZlIFRl Y2hub2xvZ3kgQ28uLCBMdGQuCisgICovCisgCisgI2lmbmRlZiBfX0RUX0JJTkRJTkdTX1JFU0VU X1NUQVJGSVZFX0pINzExMF9DUkdfSF9fCitAQCAtMTUxLDQgKzE1MiwzMSBAQAorIAorICNkZWZp bmUgSkg3MTEwX0FPTlJTVF9FTkQJCQk4CisgCisrLyogU1RHQ1JHIHJlc2V0cyAqLworKyNkZWZp bmUgSkg3MTEwX1NUR1JTVF9TWVNDT04JCQkwCisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX0hJRkk0 X0NPUkUJCTEKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfSElGSTRfQVhJCQkJMgorKyNkZWZpbmUg Skg3MTEwX1NUR1JTVF9TRUNfQUhCCQkJMworKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9FMjRfQ09S RQkJCTQKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfRE1BMVBfQVhJCQkJNQorKyNkZWZpbmUgSkg3 MTEwX1NUR1JTVF9ETUExUF9BSEIJCQk2CisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX1VTQjBfQVhJ CQkJNworKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9VU0IwX0FQQgkJCTgKKysjZGVmaW5lIEpINzEx MF9TVEdSU1RfVVNCMF9VVE1JX0FQQgkJOQorKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9VU0IwX1BX UlVQCQkxMAorKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9QQ0lFMF9BWElfTVNUMAkJMTEKKysjZGVm aW5lIEpINzExMF9TVEdSU1RfUENJRTBfQVhJX1NMVjAJCTEyCisrI2RlZmluZSBKSDcxMTBfU1RH UlNUX1BDSUUwX0FYSV9TTFYJCTEzCisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX1BDSUUwX0JSRwkJ CTE0CisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX1BDSUUwX0NPUkUJCTE1CisrI2RlZmluZSBKSDcx MTBfU1RHUlNUX1BDSUUwX0FQQgkJCTE2CisrI2RlZmluZSBKSDcxMTBfU1RHUlNUX1BDSUUxX0FY SV9NU1QwCQkxNworKyNkZWZpbmUgSkg3MTEwX1NUR1JTVF9QQ0lFMV9BWElfU0xWMAkJMTgKKysj ZGVmaW5lIEpINzExMF9TVEdSU1RfUENJRTFfQVhJX1NMVgkJMTkKKysjZGVmaW5lIEpINzExMF9T VEdSU1RfUENJRTFfQlJHCQkJMjAKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfUENJRTFfQ09SRQkJ MjEKKysjZGVmaW5lIEpINzExMF9TVEdSU1RfUENJRTFfQVBCCQkJMjIKKysKKysjZGVmaW5lIEpI NzExMF9TVEdSU1RfRU5ECQkJMjMKKysKKyAjZW5kaWYgLyogX19EVF9CSU5ESU5HU19SRVNFVF9T VEFSRklWRV9KSDcxMTBfQ1JHX0hfXyAqLworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saW51eDYuNC9wYXRjaGVzLzAwMDItY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcx MTAtU3lzdGVtLVRvcC1Hcm91cC1jbC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8w MDAyLWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVN5c3RlbS1Ub3AtR3JvdXAtY2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDBiYTNkMWU4 M2UzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDAyLWNs ay1zdGFyZml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVN5c3RlbS1Ub3AtR3JvdXAtY2wucGF0Y2gK QEAgLTAsMCArMSwyMjggQEAKK0Zyb20gYzMzYWUwODk3YTE2YWM5YzNkNWZkY2QwMzJkZTZkZDAw NWExYjIyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVtaWwgUmVubmVyIEJlcnRo aW5nIDxlbWlsLnJlbm5lci5iZXJ0aGluZ0BjYW5vbmljYWwuY29tPgorRGF0ZTogVGh1LCAxOCBN YXkgMjAyMyAxODoxMjoyNSArMDgwMAorU3ViamVjdDogW1BBVENIIDAyLzcyXSBjbGs6IHN0YXJm aXZlOiBBZGQgU3RhckZpdmUgSkg3MTEwIFN5c3RlbS1Ub3AtR3JvdXAKKyBjbG9jayBkcml2ZXIK KworQWRkIGRyaXZlciBmb3IgdGhlIFN0YXJGaXZlIEpINzExMCBTeXN0ZW0tVG9wLUdyb3VwIGNs b2NrIGNvbnRyb2xsZXIuCisKK0NvLWRldmVsb3BlZC1ieTogWGluZ3l1IFd1IDx4aW5neXUud3VA c3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0 YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8ZW1p bC5yZW5uZXIuYmVydGhpbmdAY2Fub25pY2FsLmNvbT4KKy0tLQorIGRyaXZlcnMvY2xrL3N0YXJm aXZlL0tjb25maWcgICAgICAgICAgICAgICAgICB8ICAxMSArKworIGRyaXZlcnMvY2xrL3N0YXJm aXZlL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCisgLi4uL2Nsay9zdGFyZml2ZS9j bGstc3RhcmZpdmUtamg3MTEwLXN0Zy5jICAgIHwgMTczICsrKysrKysrKysrKysrKysrKworIDMg ZmlsZXMgY2hhbmdlZCwgMTg1IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zdGcuYworCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tj b25maWcKK2luZGV4IDVkMjMzMzEwNmYxMy4uZDI1MmMwM2JmYjgxIDEwMDY0NAorLS0tIGEvZHJp dmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2Nv bmZpZworQEAgLTM5LDMgKzM5LDE0IEBAIGNvbmZpZyBDTEtfU1RBUkZJVkVfSkg3MTEwX0FPTgor IAloZWxwCisgCSAgU2F5IHllcyBoZXJlIHRvIHN1cHBvcnQgdGhlIGFsd2F5cy1vbiBjbG9jayBj b250cm9sbGVyIG9uIHRoZQorIAkgIFN0YXJGaXZlIEpINzExMCBTb0MuCisrCisrY29uZmlnIENM S19TVEFSRklWRV9KSDcxMTBfU1RHCisrCXRyaXN0YXRlICJTdGFyRml2ZSBKSDcxMTAgU3lzdGVt LVRvcC1Hcm91cCBjbG9jayBzdXBwb3J0IgorKwlkZXBlbmRzIG9uIENMS19TVEFSRklWRV9KSDcx MTBfU1lTCisrCXNlbGVjdCBBVVhJTElBUllfQlVTCisrCXNlbGVjdCBDTEtfU1RBUkZJVkVfSkg3 MVgwCisrCXNlbGVjdCBSRVNFVF9TVEFSRklWRV9KSDcxMTAKKysJZGVmYXVsdCBtIGlmIEFSQ0hf U1RBUkZJVkUKKysJaGVscAorKwkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBTeXN0ZW0t VG9wLUdyb3VwIGNsb2NrIGNvbnRyb2xsZXIKKysJICBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNv Qy4KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZSBiL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL01ha2VmaWxlCitpbmRleCBmM2RmN2Q5NTdiMWUuLmI4MWU5N2VlMjY1OSAx MDA2NDQKKy0tLSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlCisrKysgYi9kcml2ZXJz L2Nsay9zdGFyZml2ZS9NYWtlZmlsZQorQEAgLTYsMyArNiw0IEBAIG9iai0kKENPTkZJR19DTEtf U1RBUkZJVkVfSkg3MTAwX0FVRElPKQkrPSBjbGstc3RhcmZpdmUtamg3MTAwLWF1ZGlvLm8KKyAK KyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9TWVMpCSs9IGNsay1zdGFyZml2ZS1q aDcxMTAtc3lzLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9BT04pCSs9IGNs ay1zdGFyZml2ZS1qaDcxMTAtYW9uLm8KKytvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzEx MF9TVEcpCSs9IGNsay1zdGFyZml2ZS1qaDcxMTAtc3RnLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJz L2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN0Zy5jIGIvZHJpdmVycy9jbGsvc3Rh cmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC1zdGcuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwMDAwMC4uZGFmY2I3MTkwNTkyCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2 ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN0Zy5jCitAQCAtMCwwICsxLDE3 MyBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBTdGFy Rml2ZSBKSDcxMTAgU3lzdGVtLVRvcC1Hcm91cCBDbG9jayBEcml2ZXIKKysgKgorKyAqIENvcHly aWdodCAoQykgMjAyMiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorKyAq IENvcHlyaWdodCAoQykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqLwor KworKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKysjaW5jbHVkZSA8bGludXgvaW8u aD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrCisrI2luY2x1ZGUgPGR0 LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaD4KKysKKysjaW5jbHVkZSAiY2xr LXN0YXJmaXZlLWpoNzExMC5oIgorKworKy8qIGV4dGVybmFsIGNsb2NrcyAqLworKyNkZWZpbmUg Skg3MTEwX1NUR0NMS19PU0MJCQkoSkg3MTEwX1NUR0NMS19FTkQgKyAwKQorKyNkZWZpbmUgSkg3 MTEwX1NUR0NMS19ISUZJNF9DT1JFCQkoSkg3MTEwX1NUR0NMS19FTkQgKyAxKQorKyNkZWZpbmUg Skg3MTEwX1NUR0NMS19TVEdfQVhJQUhCCQkoSkg3MTEwX1NUR0NMS19FTkQgKyAyKQorKyNkZWZp bmUgSkg3MTEwX1NUR0NMS19VU0JfMTI1TQkJCShKSDcxMTBfU1RHQ0xLX0VORCArIDMpCisrI2Rl ZmluZSBKSDcxMTBfU1RHQ0xLX0NQVV9CVVMJCQkoSkg3MTEwX1NUR0NMS19FTkQgKyA0KQorKyNk ZWZpbmUgSkg3MTEwX1NUR0NMS19ISUZJNF9BWEkJCQkoSkg3MTEwX1NUR0NMS19FTkQgKyA1KQor KyNkZWZpbmUgSkg3MTEwX1NUR0NMS19OT0NTVEdfQlVTCQkoSkg3MTEwX1NUR0NMS19FTkQgKyA2 KQorKyNkZWZpbmUgSkg3MTEwX1NUR0NMS19BUEJfQlVTCQkJKEpINzExMF9TVEdDTEtfRU5EICsg NykKKysjZGVmaW5lIEpINzExMF9TVEdDTEtfRVhUX0VORAkJCShKSDcxMTBfU1RHQ0xLX0VORCAr IDgpCisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxeDBfY2xrX2RhdGEgamg3MTEwX3N0Z2Ns a19kYXRhW10gPSB7CisrCS8qIGhpZmk0ICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtf SElGSTRfQ0xLX0NPUkUsICJoaWZpNF9jbGtfY29yZSIsIDAsCisrCQkgICAgSkg3MTEwX1NUR0NM S19ISUZJNF9DT1JFKSwKKysJLyogdXNiICovCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtf VVNCMF9BUEIsICJ1c2IwX2FwYiIsIDAsIEpINzExMF9TVEdDTEtfQVBCX0JVUyksCisrCUpINzFY MF9HQVRFKEpINzExMF9TVEdDTEtfVVNCMF9VVE1JX0FQQiwgInVzYjBfdXRtaV9hcGIiLCAwLCBK SDcxMTBfU1RHQ0xLX0FQQl9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX1VTQjBf QVhJLCAidXNiMF9heGkiLCAwLCBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcxWDBf R0RJVihKSDcxMTBfU1RHQ0xLX1VTQjBfTFBNLCAidXNiMF9scG0iLCAwLCAyLCBKSDcxMTBfU1RH Q0xLX09TQyksCisrCUpINzFYMF9HRElWKEpINzExMF9TVEdDTEtfVVNCMF9TVEIsICJ1c2IwX3N0 YiIsIDAsIDQsIEpINzExMF9TVEdDTEtfT1NDKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NM S19VU0IwX0FQUF8xMjUsICJ1c2IwX2FwcF8xMjUiLCAwLCBKSDcxMTBfU1RHQ0xLX1VTQl8xMjVN KSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX1NUR0NMS19VU0IwX1JFRkNMSywgInVzYjBfcmVmY2xr IiwgMiwgSkg3MTEwX1NUR0NMS19PU0MpLAorKwkvKiBwY2ktZSAqLworKwlKSDcxWDBfR0FURShK SDcxMTBfU1RHQ0xLX1BDSUUwX0FYSV9NU1QwLCAicGNpZTBfYXhpX21zdDAiLCAwLAorKwkJICAg IEpINzExMF9TVEdDTEtfU1RHX0FYSUFIQiksCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtf UENJRTBfQVBCLCAicGNpZTBfYXBiIiwgMCwgSkg3MTEwX1NUR0NMS19BUEJfQlVTKSwKKysJSkg3 MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19QQ0lFMF9UTCwgInBjaWUwX3RsIiwgMCwgSkg3MTEwX1NU R0NMS19TVEdfQVhJQUhCKSwKKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19QQ0lFMV9BWElf TVNUMCwgInBjaWUxX2F4aV9tc3QwIiwgMCwKKysJCSAgICBKSDcxMTBfU1RHQ0xLX1NUR19BWElB SEIpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX1BDSUUxX0FQQiwgInBjaWUxX2FwYiIs IDAsIEpINzExMF9TVEdDTEtfQVBCX0JVUyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtf UENJRTFfVEwsICJwY2llMV90bCIsIDAsIEpINzExMF9TVEdDTEtfU1RHX0FYSUFIQiksCisrCUpI NzFYMF9HQVRFKEpINzExMF9TVEdDTEtfUENJRV9TTFZfTUFJTiwgInBjaWVfc2x2X21haW4iLCBD TEtfSVNfQ1JJVElDQUwsCisrCQkgICAgSkg3MTEwX1NUR0NMS19TVEdfQVhJQUhCKSwKKysJLyog c2VjdXJpdHkgKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19TRUNfQUhCLCAic2VjX2Fo YiIsIDAsIEpINzExMF9TVEdDTEtfU1RHX0FYSUFIQiksCisrCUpINzFYMF9HQVRFKEpINzExMF9T VEdDTEtfU0VDX01JU0NfQUhCLCAic2VjX21pc2NfYWhiIiwgMCwgSkg3MTEwX1NUR0NMS19TVEdf QVhJQUhCKSwKKysJLyogc3RnIG10cnggKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19H UlAwX01BSU4sICJtdHJ4X2dycDBfbWFpbiIsIENMS19JU19DUklUSUNBTCwKKysJCSAgICBKSDcx MTBfU1RHQ0xLX0NQVV9CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX0dSUDBfQlVT LCAibXRyeF9ncnAwX2J1cyIsIENMS19JU19DUklUSUNBTCwKKysJCSAgICBKSDcxMTBfU1RHQ0xL X05PQ1NUR19CVVMpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX0dSUDBfU1RHLCAibXRy eF9ncnAwX3N0ZyIsIENMS19JU19DUklUSUNBTCwKKysJCSAgICBKSDcxMTBfU1RHQ0xLX1NUR19B WElBSEIpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfU1RHQ0xLX0dSUDFfTUFJTiwgIm10cnhfZ3Jw MV9tYWluIiwgQ0xLX0lTX0NSSVRJQ0FMLAorKwkJICAgIEpINzExMF9TVEdDTEtfQ1BVX0JVUyks CisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfR1JQMV9CVVMsICJtdHJ4X2dycDFfYnVzIiwg Q0xLX0lTX0NSSVRJQ0FMLAorKwkJICAgIEpINzExMF9TVEdDTEtfTk9DU1RHX0JVUyksCisrCUpI NzFYMF9HQVRFKEpINzExMF9TVEdDTEtfR1JQMV9TVEcsICJtdHJ4X2dycDFfc3RnIiwgQ0xLX0lT X0NSSVRJQ0FMLAorKwkJICAgIEpINzExMF9TVEdDTEtfU1RHX0FYSUFIQiksCisrCUpINzFYMF9H QVRFKEpINzExMF9TVEdDTEtfR1JQMV9ISUZJLCAibXRyeF9ncnAxX2hpZmkiLCBDTEtfSVNfQ1JJ VElDQUwsCisrCQkgICAgSkg3MTEwX1NUR0NMS19ISUZJNF9BWEkpLAorKwkvKiBlMjRfcnZwaSAq LworKwlKSDcxWDBfR0RJVihKSDcxMTBfU1RHQ0xLX0UyX1JUQywgImUyX3J0YyIsIDAsIDI0LCBK SDcxMTBfU1RHQ0xLX09TQyksCisrCUpINzFYMF9HQVRFKEpINzExMF9TVEdDTEtfRTJfQ09SRSwg ImUyX2NvcmUiLCAwLCBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcxWDBfR0FURShK SDcxMTBfU1RHQ0xLX0UyX0RCRywgImUyX2RiZyIsIDAsIEpINzExMF9TVEdDTEtfU1RHX0FYSUFI QiksCisrCS8qIGR3X3NnZG1hMXAgKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX1NUR0NMS19ETUEx UF9BWEksICJkbWExcF9heGkiLCAwLCBKSDcxMTBfU1RHQ0xLX1NUR19BWElBSEIpLAorKwlKSDcx WDBfR0FURShKSDcxMTBfU1RHQ0xLX0RNQTFQX0FIQiwgImRtYTFwX2FoYiIsIDAsIEpINzExMF9T VEdDTEtfU1RHX0FYSUFIQiksCisrfTsKKysKKytzdGF0aWMgc3RydWN0IGNsa19odyAqamg3MTEw X3N0Z2Nsa19nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywgdm9pZCAqZGF0YSkK Kyt7CisrCXN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXYgPSBkYXRhOworKwl1bnNpZ25lZCBp bnQgaWR4ID0gY2xrc3BlYy0+YXJnc1swXTsKKysKKysJaWYgKGlkeCA8IEpINzExMF9TVEdDTEtf RU5EKQorKwkJcmV0dXJuICZwcml2LT5yZWdbaWR4XS5odzsKKysKKysJcmV0dXJuIEVSUl9QVFIo LUVJTlZBTCk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3N0Z2NyZ19wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGpoNzF4MF9jbGtfcHJpdiAqcHJp djsKKysJdW5zaWduZWQgaW50IGlkeDsKKysJaW50IHJldDsKKysKKysJcHJpdiA9IGRldm1fa3ph bGxvYygmcGRldi0+ZGV2LCBzdHJ1Y3Rfc2l6ZShwcml2LCByZWcsIEpINzExMF9TVEdDTEtfRU5E KSwKKysJCQkgICAgR0ZQX0tFUk5FTCk7CisrCWlmICghcHJpdikKKysJCXJldHVybiAtRU5PTUVN OworKworKwlzcGluX2xvY2tfaW5pdCgmcHJpdi0+cm13X2xvY2spOworKwlwcml2LT5kZXYgPSAm cGRldi0+ZGV2OworKwlwcml2LT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNl KHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQorKwkJcmV0dXJuIFBUUl9FUlIo cHJpdi0+YmFzZSk7CisrCisrCWZvciAoaWR4ID0gMDsgaWR4IDwgSkg3MTEwX1NUR0NMS19FTkQ7 IGlkeCsrKSB7CisrCQl1MzIgbWF4ID0gamg3MTEwX3N0Z2Nsa19kYXRhW2lkeF0ubWF4OworKwkJ c3RydWN0IGNsa19wYXJlbnRfZGF0YSBwYXJlbnRzWzRdID0ge307CisrCQlzdHJ1Y3QgY2xrX2lu aXRfZGF0YSBpbml0ID0geworKwkJCS5uYW1lID0gamg3MTEwX3N0Z2Nsa19kYXRhW2lkeF0ubmFt ZSwKKysJCQkub3BzID0gc3RhcmZpdmVfamg3MXgwX2Nsa19vcHMobWF4KSwKKysJCQkucGFyZW50 X2RhdGEgPSBwYXJlbnRzLAorKwkJCS5udW1fcGFyZW50cyA9CisrCQkJCSgobWF4ICYgSkg3MVgw X0NMS19NVVhfTUFTSykgPj4gSkg3MVgwX0NMS19NVVhfU0hJRlQpICsgMSwKKysJCQkuZmxhZ3Mg PSBqaDcxMTBfc3RnY2xrX2RhdGFbaWR4XS5mbGFncywKKysJCX07CisrCQlzdHJ1Y3Qgamg3MXgw X2NsayAqY2xrID0gJnByaXYtPnJlZ1tpZHhdOworKwkJY29uc3QgY2hhciAqZndfbmFtZVtKSDcx MTBfU1RHQ0xLX0VYVF9FTkQgLSBKSDcxMTBfU1RHQ0xLX0VORF0gPSB7CisrCQkJIm9zYyIsCisr CQkJImhpZmk0X2NvcmUiLAorKwkJCSJzdGdfYXhpYWhiIiwKKysJCQkidXNiXzEyNW0iLAorKwkJ CSJjcHVfYnVzIiwKKysJCQkiaGlmaTRfYXhpIiwKKysJCQkibm9jc3RnX2J1cyIsCisrCQkJImFw Yl9idXMiCisrCQl9OworKwkJdW5zaWduZWQgaW50IGk7CisrCisrCQlmb3IgKGkgPSAwOyBpIDwg aW5pdC5udW1fcGFyZW50czsgaSsrKSB7CisrCQkJdW5zaWduZWQgaW50IHBpZHggPSBqaDcxMTBf c3RnY2xrX2RhdGFbaWR4XS5wYXJlbnRzW2ldOworKworKwkJCWlmIChwaWR4IDwgSkg3MTEwX1NU R0NMS19FTkQpCisrCQkJCXBhcmVudHNbaV0uaHcgPSAmcHJpdi0+cmVnW3BpZHhdLmh3OworKwkJ CWVsc2UgaWYgKHBpZHggPCBKSDcxMTBfU1RHQ0xLX0VYVF9FTkQpCisrCQkJCXBhcmVudHNbaV0u ZndfbmFtZSA9IGZ3X25hbWVbcGlkeCAtIEpINzExMF9TVEdDTEtfRU5EXTsKKysJCX0KKysKKysJ CWNsay0+aHcuaW5pdCA9ICZpbml0OworKwkJY2xrLT5pZHggPSBpZHg7CisrCQljbGstPm1heF9k aXYgPSBtYXggJiBKSDcxWDBfQ0xLX0RJVl9NQVNLOworKworKwkJcmV0ID0gZGV2bV9jbGtfaHdf cmVnaXN0ZXIoJnBkZXYtPmRldiwgJmNsay0+aHcpOworKwkJaWYgKHJldCkKKysJCQlyZXR1cm4g cmV0OworKwl9CisrCisrCXJldCA9IGRldm1fb2ZfY2xrX2FkZF9od19wcm92aWRlcigmcGRldi0+ ZGV2LCBqaDcxMTBfc3RnY2xrX2dldCwgcHJpdik7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0 OworKworKwlyZXR1cm4gamg3MTEwX3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIocHJpdiwgInJz dC1zdGciLCAyKTsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgamg3 MTEwX3N0Z2NyZ19tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC1zdGdjcmciIH0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307CisrTU9EVUxFX0RFVklDRV9U QUJMRShvZiwgamg3MTEwX3N0Z2NyZ19tYXRjaCk7CisrCisrc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgamg3MTEwX3N0Z2NyZ19kcml2ZXIgPSB7CisrCS5wcm9iZSA9IGpoNzExMF9zdGdj cmdfcHJvYmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJjbGstc3RhcmZpdmUtamg3MTEw LXN0ZyIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBqaDcxMTBfc3RnY3JnX21hdGNoLAorKwl9LAor K307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBfc3RnY3JnX2RyaXZlcik7CisrCisr TU9EVUxFX0FVVEhPUigiWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4iKTsK KytNT0RVTEVfQVVUSE9SKCJFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPiIp OworK01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgSkg3MTEwIFN5c3RlbS1Ub3AtR3JvdXAg Y2xvY2sgZHJpdmVyIik7CisrTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworLS0gCisyLjQxLjAKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMDMtZHQtYmluZGluZ3MtY2xv Y2stQWRkLVN0YXJGaXZlLUpINzExMC1JbWFnZS1TaWduYWwtUC5wYXRjaCBiL3NyY3BrZ3MvbGlu dXg2LjQvcGF0Y2hlcy8wMDAzLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAt SW1hZ2UtU2lnbmFsLVAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uNWM3NTEwNDg5NGMyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQv cGF0Y2hlcy8wMDAzLWR0LWJpbmRpbmdzLWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtSW1hZ2Ut U2lnbmFsLVAucGF0Y2gKQEAgLTAsMCArMSwxNjYgQEAKK0Zyb20gN2VmNWQyZDAzOGRjYmE0OTJm ODBkYTM1ZWJhMjg5MGMyZTcyODllMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhp bmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDE4IE1heSAy MDIzIDE4OjEyOjI2ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDMvNzJdIGR0LWJpbmRpbmdzOiBj bG9jazogQWRkIFN0YXJGaXZlIEpINzExMAorIEltYWdlLVNpZ25hbC1Qcm9jZXNzIGNsb2NrIGFu ZCByZXNldCBnZW5lcmF0b3IKKworQWRkIGJpbmRpbmdzIGZvciB0aGUgSW1hZ2UtU2lnbmFsLVBy b2Nlc3MgY2xvY2sgYW5kIHJlc2V0CitnZW5lcmF0b3IgKElTUENSRykgb24gdGhlIEpINzExMCBS SVNDLVYgU29DIGJ5IFN0YXJGaXZlIEx0ZC4KKworUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBLb3ps b3dza2kgPGtyenlzenRvZi5rb3psb3dza2lAbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IFhp bmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vY2xvY2svc3Rh cmZpdmUsamg3MTEwLWlzcGNyZy55YW1sICAgICAgICAgfCA4NyArKysrKysrKysrKysrKysrKysr CisgLi4uL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaCAgIHwgMTggKysr KworIC4uLi9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmggICB8IDE2ICsr KysKKyAzIGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAw NjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcx MTAtaXNwY3JnLnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtaXNwY3JnLnlhbWwgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWlzcGNyZy55YW1sCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4zYjhiODViZTVjZDAKKy0t LSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9j ay9zdGFyZml2ZSxqaDcxMTAtaXNwY3JnLnlhbWwKK0BAIC0wLDAgKzEsODcgQEAKKysjIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlCisrJVlBTUwg MS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9jbG9jay9zdGFy Zml2ZSxqaDcxMTAtaXNwY3JnLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3Jn L21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBJbWFn ZS1TaWduYWwtUHJvY2VzcyBDbG9jayBhbmQgUmVzZXQgR2VuZXJhdG9yCisrCisrbWFpbnRhaW5l cnM6CisrICAtIFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CisrCisrcHJv cGVydGllczoKKysgIGNvbXBhdGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtaXNw Y3JnCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBjbG9ja3M6CisrICAgIGl0 ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IElTUCBUb3AgY29yZQorKyAgICAgIC0gZGVzY3Jp cHRpb246IElTUCBUb3AgQXhpCisrICAgICAgLSBkZXNjcmlwdGlvbjogTk9DIElTUCBCdXMKKysg ICAgICAtIGRlc2NyaXB0aW9uOiBleHRlcm5hbCBEVlAKKysKKysgIGNsb2NrLW5hbWVzOgorKyAg ICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBpc3BfdG9wX2NvcmUKKysgICAgICAtIGNvbnN0OiBp c3BfdG9wX2F4aQorKyAgICAgIC0gY29uc3Q6IG5vY19idXNfaXNwX2F4aQorKyAgICAgIC0gY29u c3Q6IGR2cF9jbGsKKysKKysgIHJlc2V0czoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlw dGlvbjogSVNQIFRvcCBjb3JlCisrICAgICAgLSBkZXNjcmlwdGlvbjogSVNQIFRvcCBBeGkKKysg ICAgICAtIGRlc2NyaXB0aW9uOiBOT0MgSVNQIEJ1cworKworKyAgJyNjbG9jay1jZWxscyc6Cisr ICAgIGNvbnN0OiAxCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFNlZSA8ZHQtYmluZGluZ3Mv Y2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oPiBmb3IgdmFsaWQgaW5kaWNlcy4KKysKKysgICcj cmVzZXQtY2VsbHMnOgorKyAgICBjb25zdDogMQorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBT ZWUgPGR0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaD4gZm9yIHZhbGlkIGlu ZGljZXMuCisrCisrICBwb3dlci1kb21haW5zOgorKyAgICBtYXhJdGVtczogMQorKyAgICBkZXNj cmlwdGlvbjoKKysgICAgICBJU1AgZG9tYWluIHBvd2VyCisrCisrcmVxdWlyZWQ6CisrICAtIGNv bXBhdGlibGUKKysgIC0gcmVnCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSBy ZXNldHMKKysgIC0gJyNjbG9jay1jZWxscycKKysgIC0gJyNyZXNldC1jZWxscycKKysgIC0gcG93 ZXItZG9tYWlucworKworK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVz OgorKyAgLSB8CisrICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcx MTAtY3JnLmg+CisrICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9wb3dlci9zdGFyZml2ZSxqaDcx MTAtcG11Lmg+CisrICAgICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcx MTAtY3JnLmg+CisrCisrICAgIGlzcGNyZzogY2xvY2stY29udHJvbGxlckAxOTgxMDAwMCB7Cisr ICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1pc3BjcmciOworKyAgICAgICAg cmVnID0gPDB4MTk4MTAwMDAgMHgxMDAwMD47CisrICAgICAgICBjbG9ja3MgPSA8JnN5c2NyZyBK SDcxMTBfU1lTQ0xLX0lTUF9UT1BfQ09SRT4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyBK SDcxMTBfU1lTQ0xLX0lTUF9UT1BfQVhJPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIEpI NzExMF9TWVNDTEtfTk9DX0JVU19JU1BfQVhJPiwKKysgICAgICAgICAgICAgICAgIDwmZHZwX2Ns az47CisrICAgICAgICBjbG9jay1uYW1lcyA9ICJpc3BfdG9wX2NvcmUiLCAiaXNwX3RvcF9heGki LAorKyAgICAgICAgICAgICAgICAgICAgICAibm9jX2J1c19pc3BfYXhpIiwgImR2cF9jbGsiOwor KyAgICAgICAgcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9JU1BfVE9QPiwKKysgICAg ICAgICAgICAgICAgIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfSVNQX1RPUF9BWEk+LAorKyAgICAg ICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9OT0NfQlVTX0lTUF9BWEk+OworKyAg ICAgICAgI2Nsb2NrLWNlbGxzID0gPDE+OworKyAgICAgICAgI3Jlc2V0LWNlbGxzID0gPDE+Owor KyAgICAgICAgcG93ZXItZG9tYWlucyA9IDwmcHdyYyBKSDcxMTBfUERfSVNQPjsKKysgICAgfTsK K2RpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1j cmcuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCitp bmRleCA2YzhlOGI0Y2YxZjYuLjM5YWNmMzBkYjQ5MSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvZHQt YmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCisrKysgYi9pbmNsdWRlL2R0LWJp bmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAorQEAgLTI1Miw0ICsyNTIsMjIgQEAK KyAKKyAjZGVmaW5lIEpINzExMF9TVEdDTEtfRU5ECQkJMjkKKyAKKysvKiBJU1BDUkcgY2xvY2tz ICovCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX0RPTTRfQVBCX0ZVTkMJCTAKKysjZGVmaW5lIEpI NzExMF9JU1BDTEtfTUlQSV9SWDBfUFhMCQkxCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX0RWUF9J TlYJCQkyCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX00zMURQSFlfQ0ZHX0lOCQkzCisrI2RlZmlu ZSBKSDcxMTBfSVNQQ0xLX00zMURQSFlfUkVGX0lOCQk0CisrI2RlZmluZSBKSDcxMTBfSVNQQ0xL X00zMURQSFlfVFhfRVNDX0xBTjAJNQorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19WSU5fQVBCCQkJ NgorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19WSU5fU1lTCQkJNworKyNkZWZpbmUgSkg3MTEwX0lT UENMS19WSU5fUElYRUxfSUYwCQk4CisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX1ZJTl9QSVhFTF9J RjEJCTkKKysjZGVmaW5lIEpINzExMF9JU1BDTEtfVklOX1BJWEVMX0lGMgkJMTAKKysjZGVmaW5l IEpINzExMF9JU1BDTEtfVklOX1BJWEVMX0lGMwkJMTEKKysjZGVmaW5lIEpINzExMF9JU1BDTEtf VklOX1BfQVhJX1dSCQkxMgorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19JU1BWMl9UT1BfV1JBUFBF Ul9DCTEzCisrCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX0VORAkJCTE0CisrCisgI2VuZGlmIC8q IF9fRFRfQklORElOR1NfQ0xPQ0tfU1RBUkZJVkVfSkg3MTEwX0NSR19IX18gKi8KK2RpZmYgLS1n aXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaCBiL2lu Y2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oCitpbmRleCA0ZTk2 YWI4MWRkOGUuLjJjNWQ5ZGNlZmZmYSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvZHQtYmluZGluZ3Mv cmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oCisrKysgYi9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jl c2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaAorQEAgLTE3OSw0ICsxNzksMjAgQEAKKyAKKyAjZGVm aW5lIEpINzExMF9TVEdSU1RfRU5ECQkJMjMKKyAKKysvKiBJU1BDUkcgcmVzZXRzICovCisrI2Rl ZmluZSBKSDcxMTBfSVNQUlNUX0lTUFYyX1RPUF9XUkFQUEVSX1AJMAorKyNkZWZpbmUgSkg3MTEw X0lTUFJTVF9JU1BWMl9UT1BfV1JBUFBFUl9DCTEKKysjZGVmaW5lIEpINzExMF9JU1BSU1RfTTMx RFBIWV9IVwkJMgorKyNkZWZpbmUgSkg3MTEwX0lTUFJTVF9NMzFEUEhZX0IwOV9BT04JCTMKKysj ZGVmaW5lIEpINzExMF9JU1BSU1RfVklOX0FQQgkJCTQKKysjZGVmaW5lIEpINzExMF9JU1BSU1Rf VklOX1BJWEVMX0lGMAkJNQorKyNkZWZpbmUgSkg3MTEwX0lTUFJTVF9WSU5fUElYRUxfSUYxCQk2 CisrI2RlZmluZSBKSDcxMTBfSVNQUlNUX1ZJTl9QSVhFTF9JRjIJCTcKKysjZGVmaW5lIEpINzEx MF9JU1BSU1RfVklOX1BJWEVMX0lGMwkJOAorKyNkZWZpbmUgSkg3MTEwX0lTUFJTVF9WSU5fU1lT CQkJOQorKyNkZWZpbmUgSkg3MTEwX0lTUFJTVF9WSU5fUF9BWElfUkQJCTEwCisrI2RlZmluZSBK SDcxMTBfSVNQUlNUX1ZJTl9QX0FYSV9XUgkJMTEKKysKKysjZGVmaW5lIEpINzExMF9JU1BSU1Rf RU5ECQkJMTIKKysKKyAjZW5kaWYgLyogX19EVF9CSU5ESU5HU19SRVNFVF9TVEFSRklWRV9KSDcx MTBfQ1JHX0hfXyAqLworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwMDQtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtSW1hZ2UtU2ln bmFsLVByb2Nlcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA0LWNsay1zdGFy Zml2ZS1BZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25hbC1Qcm9jZXMucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYzA1N2E0MTdmYTkxZQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA0LWNsay1zdGFyZml2ZS1B ZGQtU3RhckZpdmUtSkg3MTEwLUltYWdlLVNpZ25hbC1Qcm9jZXMucGF0Y2gKQEAgLTAsMCArMSwz MDUgQEAKK0Zyb20gMmFkMzA2Y2U3YjNiNzU5ZTI0MzBhODAyOGEyY2U4YWZjNTkyN2UzMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBUaHUsIDE4IE1heSAyMDIzIDE4OjEyOjI3ICswODAwCitTdWJqZWN0 OiBbUEFUQ0ggMDQvNzJdIGNsazogc3RhcmZpdmU6IEFkZCBTdGFyRml2ZSBKSDcxMTAgSW1hZ2Ut U2lnbmFsLVByb2Nlc3MKKyBjbG9jayBkcml2ZXIKKworQWRkIGRyaXZlciBmb3IgdGhlIFN0YXJG aXZlIEpINzExMCBJbWFnZS1TaWduYWwtUHJvY2VzcyBjbG9jayBjb250cm9sbGVyLgorQW5kIHRo ZXNlIGNsb2NrIGNvbnRyb2xsZXJzIHNob3VsZCBwb3dlciBvbiBhbmQgZW5hYmxlIHRoZSBjbG9j a3MgZnJvbQorU1lTQ1JHIGZpcnN0IGJlZm9yZSByZWdpc3RlcmluZy4KKworU2lnbmVkLW9mZi1i eTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGRyaXZlcnMv Y2xrL3N0YXJmaXZlL0tjb25maWcgICAgICAgICAgICAgICAgICB8ICAxMSArCisgZHJpdmVycy9j bGsvc3RhcmZpdmUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKKyAuLi4vY2xrL3N0 YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtaXNwLmMgICAgfCAyMzIgKysrKysrKysrKysrKysr KysrCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC5oICAgIHwgICA2 ICsKKyA0IGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtaXNwLmMKKworZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL2Nsay9zdGFy Zml2ZS9LY29uZmlnCitpbmRleCBkMjUyYzAzYmZiODEuLjBhNjNhNDdlNGI5NyAxMDA2NDQKKy0t LSBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcKKysrKyBiL2RyaXZlcnMvY2xrL3N0YXJm aXZlL0tjb25maWcKK0BAIC01MCwzICs1MCwxNCBAQCBjb25maWcgQ0xLX1NUQVJGSVZFX0pINzEx MF9TVEcKKyAJaGVscAorIAkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBTeXN0ZW0tVG9w LUdyb3VwIGNsb2NrIGNvbnRyb2xsZXIKKyAJICBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4K KysKKytjb25maWcgQ0xLX1NUQVJGSVZFX0pINzExMF9JU1AKKysJdHJpc3RhdGUgIlN0YXJGaXZl IEpINzExMCBJbWFnZS1TaWduYWwtUHJvY2VzcyBjbG9jayBzdXBwb3J0IgorKwlkZXBlbmRzIG9u IENMS19TVEFSRklWRV9KSDcxMTBfU1lTICYmIEpINzFYWF9QTVUKKysJc2VsZWN0IEFVWElMSUFS WV9CVVMKKysJc2VsZWN0IENMS19TVEFSRklWRV9KSDcxWDAKKysJc2VsZWN0IFJFU0VUX1NUQVJG SVZFX0pINzExMAorKwlkZWZhdWx0IG0gaWYgQVJDSF9TVEFSRklWRQorKwloZWxwCisrCSAgU2F5 IHllcyBoZXJlIHRvIHN1cHBvcnQgdGhlIEltYWdlLVNpZ25hbC1Qcm9jZXNzIGNsb2NrIGNvbnRy b2xsZXIKKysJICBvbiB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KK2RpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxl CitpbmRleCBiODFlOTdlZTI2NTkuLjc2ZmI5ZjhkNjI4YiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL01ha2VmaWxlCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmls ZQorQEAgLTcsMyArNyw0IEBAIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTAwX0FVRElP KQkrPSBjbGstc3RhcmZpdmUtamg3MTAwLWF1ZGlvLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJG SVZFX0pINzExMF9TWVMpCSs9IGNsay1zdGFyZml2ZS1qaDcxMTAtc3lzLm8KKyBvYmotJChDT05G SUdfQ0xLX1NUQVJGSVZFX0pINzExMF9BT04pCSs9IGNsay1zdGFyZml2ZS1qaDcxMTAtYW9uLm8K KyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9TVEcpCSs9IGNsay1zdGFyZml2ZS1q aDcxMTAtc3RnLm8KKytvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9JU1ApCSs9IGNs ay1zdGFyZml2ZS1qaDcxMTAtaXNwLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2 ZS9jbGstc3RhcmZpdmUtamg3MTEwLWlzcC5jIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0 YXJmaXZlLWpoNzExMC1pc3AuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uN2U1MTQ0NzA2MGZlCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2Nsay9zdGFy Zml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLWlzcC5jCitAQCAtMCwwICsxLDIzMiBAQAorKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBTdGFyRml2ZSBKSDcxMTAg SW1hZ2UtU2lnbmFsLVByb2Nlc3MgQ2xvY2sgRHJpdmVyCisrICoKKysgKiBDb3B5cmlnaHQgKEMp IDIwMjItMjAyMyBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqLworKworKyNpbmNs dWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisrI2lu Y2x1ZGUgPGxpbnV4L2lvLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgor KyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisrI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+ CisrCisrI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaD4K KysKKysjaW5jbHVkZSAiY2xrLXN0YXJmaXZlLWpoNzExMC5oIgorKworKy8qIGV4dGVybmFsIGNs b2NrcyAqLworKyNkZWZpbmUgSkg3MTEwX0lTUENMS19JU1BfVE9QX0NPUkUJCShKSDcxMTBfSVNQ Q0xLX0VORCArIDApCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX0lTUF9UT1BfQVhJCQkoSkg3MTEw X0lTUENMS19FTkQgKyAxKQorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19OT0NfQlVTX0lTUF9BWEkJ CShKSDcxMTBfSVNQQ0xLX0VORCArIDIpCisrI2RlZmluZSBKSDcxMTBfSVNQQ0xLX0RWUF9DTEsJ CQkoSkg3MTEwX0lTUENMS19FTkQgKyAzKQorKyNkZWZpbmUgSkg3MTEwX0lTUENMS19FWFRfRU5E CQkJKEpINzExMF9JU1BDTEtfRU5EICsgNCkKKysKKytzdGF0aWMgc3RydWN0IGNsa19idWxrX2Rh dGEgamg3MTEwX2lzcF90b3BfY2xrc1tdID0geworKwl7IC5pZCA9ICJpc3BfdG9wX2NvcmUiIH0s CisrCXsgLmlkID0gImlzcF90b3BfYXhpIiB9CisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0 IGpoNzF4MF9jbGtfZGF0YSBqaDcxMTBfaXNwY2xrX2RhdGFbXSA9IHsKKysJLyogc3lzY29uICov CisrCUpINzFYMF9fRElWKEpINzExMF9JU1BDTEtfRE9NNF9BUEJfRlVOQywgImRvbTRfYXBiX2Z1 bmMiLCAxNSwKKysJCSAgICBKSDcxMTBfSVNQQ0xLX0lTUF9UT1BfQVhJKSwKKysJSkg3MVgwX19E SVYoSkg3MTEwX0lTUENMS19NSVBJX1JYMF9QWEwsICJtaXBpX3J4MF9weGwiLCA4LAorKwkJICAg IEpINzExMF9JU1BDTEtfSVNQX1RPUF9DT1JFKSwKKysJSkg3MVgwX19JTlYoSkg3MTEwX0lTUENM S19EVlBfSU5WLCAiZHZwX2ludiIsIEpINzExMF9JU1BDTEtfRFZQX0NMSyksCisrCS8qIHZpbiAq LworKwlKSDcxWDBfX0RJVihKSDcxMTBfSVNQQ0xLX00zMURQSFlfQ0ZHX0lOLCAibTMxZHBoeV9j ZmdfaW4iLCAxNiwKKysJCSAgICBKSDcxMTBfSVNQQ0xLX0lTUF9UT1BfQ09SRSksCisrCUpINzFY MF9fRElWKEpINzExMF9JU1BDTEtfTTMxRFBIWV9SRUZfSU4sICJtMzFkcGh5X3JlZl9pbiIsIDE2 LAorKwkJICAgIEpINzExMF9JU1BDTEtfSVNQX1RPUF9DT1JFKSwKKysJSkg3MVgwX19ESVYoSkg3 MTEwX0lTUENMS19NMzFEUEhZX1RYX0VTQ19MQU4wLCAibTMxZHBoeV90eF9lc2NfbGFuMCIsIDYw LAorKwkJICAgIEpINzExMF9JU1BDTEtfSVNQX1RPUF9DT1JFKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTEwX0lTUENMS19WSU5fQVBCLCAidmluX2FwYiIsIDAsCisrCQkgICAgSkg3MTEwX0lTUENMS19E T000X0FQQl9GVU5DKSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX0lTUENMS19WSU5fU1lTLCAidmlu X3N5cyIsIDgsIEpINzExMF9JU1BDTEtfSVNQX1RPUF9DT1JFKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTEwX0lTUENMS19WSU5fUElYRUxfSUYwLCAidmluX3BpeGVsX2lmMCIsIDAsCisrCQkgICAgSkg3 MTEwX0lTUENMS19NSVBJX1JYMF9QWEwpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfSVNQQ0xLX1ZJ Tl9QSVhFTF9JRjEsICJ2aW5fcGl4ZWxfaWYxIiwgMCwKKysJCSAgICBKSDcxMTBfSVNQQ0xLX01J UElfUlgwX1BYTCksCisrCUpINzFYMF9HQVRFKEpINzExMF9JU1BDTEtfVklOX1BJWEVMX0lGMiwg InZpbl9waXhlbF9pZjIiLCAwLAorKwkJICAgIEpINzExMF9JU1BDTEtfTUlQSV9SWDBfUFhMKSwK KysJSkg3MVgwX0dBVEUoSkg3MTEwX0lTUENMS19WSU5fUElYRUxfSUYzLCAidmluX3BpeGVsX2lm MyIsIDAsCisrCQkgICAgSkg3MTEwX0lTUENMS19NSVBJX1JYMF9QWEwpLAorKwlKSDcxWDBfX01V WChKSDcxMTBfSVNQQ0xLX1ZJTl9QX0FYSV9XUiwgInZpbl9wX2F4aV93ciIsIDIsCisrCQkgICAg Skg3MTEwX0lTUENMS19NSVBJX1JYMF9QWEwsCisrCQkgICAgSkg3MTEwX0lTUENMS19EVlBfSU5W KSwKKysJLyogaXNwdjJfdG9wX3dyYXBwZXIgKi8KKysJSkg3MVgwX0dNVVgoSkg3MTEwX0lTUENM S19JU1BWMl9UT1BfV1JBUFBFUl9DLCAiaXNwdjJfdG9wX3dyYXBwZXJfYyIsIDAsIDIsCisrCQkg ICAgSkg3MTEwX0lTUENMS19NSVBJX1JYMF9QWEwsCisrCQkgICAgSkg3MTEwX0lTUENMS19EVlBf SU5WKSwKKyt9OworKworK3N0YXRpYyBpbmxpbmUgaW50IGpoNzExMF9pc3BfdG9wX3JzdF9pbml0 KHN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXYpCisreworKwlzdHJ1Y3QgcmVzZXRfY29udHJv bCAqdG9wX3JzdHM7CisrCisrCS8qIFRoZSByZXNldHMgc2hvdWxkIGJlIHNoYXJlZCBhbmQgb3Ro ZXIgSVNQIG1vZHVsZXMgd2lsbCB1c2UgaXRzLiAqLworKwl0b3BfcnN0cyA9IGRldm1fcmVzZXRf Y29udHJvbF9hcnJheV9nZXRfc2hhcmVkKHByaXYtPmRldik7CisrCWlmIChJU19FUlIodG9wX3Jz dHMpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUocHJpdi0+ZGV2LCBQVFJfRVJSKHRvcF9yc3Rz KSwKKysJCQkJICAgICAiZmFpbGVkIHRvIGdldCB0b3AgcmVzZXRzXG4iKTsKKysKKysJcmV0dXJu IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQodG9wX3JzdHMpOworK30KKysKKytzdGF0aWMgc3RydWN0 IGNsa19odyAqamg3MTEwX2lzcGNsa19nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3Bl Yywgdm9pZCAqZGF0YSkKKyt7CisrCXN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXYgPSBkYXRh OworKwl1bnNpZ25lZCBpbnQgaWR4ID0gY2xrc3BlYy0+YXJnc1swXTsKKysKKysJaWYgKGlkeCA8 IEpINzExMF9JU1BDTEtfRU5EKQorKwkJcmV0dXJuICZwcml2LT5yZWdbaWR4XS5odzsKKysKKysJ cmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisrfQorKworKyNpZmRlZiBDT05GSUdfUE0KKytzdGF0 aWMgaW50IGpoNzExMF9pc3Bjcmdfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlz dHJ1Y3QgdG9wX3N5c2NsayAqdG9wID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCWNsa19i dWxrX2Rpc2FibGVfdW5wcmVwYXJlKHRvcC0+dG9wX2Nsa3NfbnVtLCB0b3AtPnRvcF9jbGtzKTsK KysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX2lzcGNyZ19yZXN1bWUo c3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IHRvcF9zeXNjbGsgKnRvcCA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOworKworKwlyZXR1cm4gY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUodG9w LT50b3BfY2xrc19udW0sIHRvcC0+dG9wX2Nsa3MpOworK30KKysjZW5kaWYKKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMgamg3MTEwX2lzcGNyZ19wbV9vcHMgPSB7CisrCVNFVF9S VU5USU1FX1BNX09QUyhqaDcxMTBfaXNwY3JnX3N1c3BlbmQsIGpoNzExMF9pc3BjcmdfcmVzdW1l LCBOVUxMKQorK307CisrCisrc3RhdGljIGludCBqaDcxMTBfaXNwY3JnX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2 OworKwlzdHJ1Y3QgdG9wX3N5c2NsayAqdG9wOworKwl1bnNpZ25lZCBpbnQgaWR4OworKwlpbnQg cmV0OworKworKwlwcml2ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsCisrCQkJICAgIHN0cnVj dF9zaXplKHByaXYsIHJlZywgSkg3MTEwX0lTUENMS19FTkQpLAorKwkJCSAgICBHRlBfS0VSTkVM KTsKKysJaWYgKCFwcml2KQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCXRvcCA9IGRldm1fa3ph bGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnRvcCksIEdGUF9LRVJORUwpOworKwlpZiAoIXRvcCkK KysJCXJldHVybiAtRU5PTUVNOworKworKwlzcGluX2xvY2tfaW5pdCgmcHJpdi0+cm13X2xvY2sp OworKwlwcml2LT5kZXYgPSAmcGRldi0+ZGV2OworKwlwcml2LT5iYXNlID0gZGV2bV9wbGF0Zm9y bV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQor KwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+YmFzZSk7CisrCisrCXRvcC0+dG9wX2Nsa3MgPSBqaDcx MTBfaXNwX3RvcF9jbGtzOworKwl0b3AtPnRvcF9jbGtzX251bSA9IEFSUkFZX1NJWkUoamg3MTEw X2lzcF90b3BfY2xrcyk7CisrCXJldCA9IGRldm1fY2xrX2J1bGtfZ2V0KHByaXYtPmRldiwgdG9w LT50b3BfY2xrc19udW0sIHRvcC0+dG9wX2Nsa3MpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIGRl dl9lcnJfcHJvYmUocHJpdi0+ZGV2LCByZXQsICJmYWlsZWQgdG8gZ2V0IG1haW4gY2xvY2tzXG4i KTsKKysJZGV2X3NldF9kcnZkYXRhKHByaXYtPmRldiwgdG9wKTsKKysKKysJLyogZW5hYmxlIHBv d2VyIGRvbWFpbiBhbmQgY2xvY2tzICovCisrCXBtX3J1bnRpbWVfZW5hYmxlKHByaXYtPmRldik7 CisrCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5bmMocHJpdi0+ZGV2KTsKKysJaWYgKHJldCA8IDAp CisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShwcml2LT5kZXYsIHJldCwgImZhaWxlZCB0byB0dXJu IG9uIHBvd2VyXG4iKTsKKysKKysJcmV0ID0gamg3MTEwX2lzcF90b3BfcnN0X2luaXQocHJpdik7 CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9leGl0OworKworKwlmb3IgKGlkeCA9IDA7IGlkeCA8 IEpINzExMF9JU1BDTEtfRU5EOyBpZHgrKykgeworKwkJdTMyIG1heCA9IGpoNzExMF9pc3BjbGtf ZGF0YVtpZHhdLm1heDsKKysJCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEgcGFyZW50c1s0XSA9IHt9 OworKwkJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdCA9IHsKKysJCQkubmFtZSA9IGpoNzExMF9p c3BjbGtfZGF0YVtpZHhdLm5hbWUsCisrCQkJLm9wcyA9IHN0YXJmaXZlX2poNzF4MF9jbGtfb3Bz KG1heCksCisrCQkJLnBhcmVudF9kYXRhID0gcGFyZW50cywKKysJCQkubnVtX3BhcmVudHMgPQor KwkJCQkoKG1heCAmIEpINzFYMF9DTEtfTVVYX01BU0spID4+IEpINzFYMF9DTEtfTVVYX1NISUZU KSArIDEsCisrCQkJLmZsYWdzID0gamg3MTEwX2lzcGNsa19kYXRhW2lkeF0uZmxhZ3MsCisrCQl9 OworKwkJc3RydWN0IGpoNzF4MF9jbGsgKmNsayA9ICZwcml2LT5yZWdbaWR4XTsKKysJCXVuc2ln bmVkIGludCBpOworKwkJY29uc3QgY2hhciAqZndfbmFtZVtKSDcxMTBfSVNQQ0xLX0VYVF9FTkQg LSBKSDcxMTBfSVNQQ0xLX0VORF0gPSB7CisrCQkJImlzcF90b3BfY29yZSIsCisrCQkJImlzcF90 b3BfYXhpIiwKKysJCQkibm9jX2J1c19pc3BfYXhpIiwKKysJCQkiZHZwX2NsayIKKysJCX07Cisr CisrCQlmb3IgKGkgPSAwOyBpIDwgaW5pdC5udW1fcGFyZW50czsgaSsrKSB7CisrCQkJdW5zaWdu ZWQgaW50IHBpZHggPSBqaDcxMTBfaXNwY2xrX2RhdGFbaWR4XS5wYXJlbnRzW2ldOworKworKwkJ CWlmIChwaWR4IDwgSkg3MTEwX0lTUENMS19FTkQpCisrCQkJCXBhcmVudHNbaV0uaHcgPSAmcHJp di0+cmVnW3BpZHhdLmh3OworKwkJCWVsc2UKKysJCQkJcGFyZW50c1tpXS5md19uYW1lID0gZndf bmFtZVtwaWR4IC0gSkg3MTEwX0lTUENMS19FTkRdOworKwkJfQorKworKwkJY2xrLT5ody5pbml0 ID0gJmluaXQ7CisrCQljbGstPmlkeCA9IGlkeDsKKysJCWNsay0+bWF4X2RpdiA9IG1heCAmIEpI NzFYMF9DTEtfRElWX01BU0s7CisrCisrCQlyZXQgPSBkZXZtX2Nsa19od19yZWdpc3RlcigmcGRl di0+ZGV2LCAmY2xrLT5odyk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8gZXJyX2V4aXQ7CisrCX0K KysKKysJcmV0ID0gZGV2bV9vZl9jbGtfYWRkX2h3X3Byb3ZpZGVyKCZwZGV2LT5kZXYsIGpoNzEx MF9pc3BjbGtfZ2V0LCBwcml2KTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2V4aXQ7CisrCisr CXJldCA9IGpoNzExMF9yZXNldF9jb250cm9sbGVyX3JlZ2lzdGVyKHByaXYsICJyc3QtaXNwIiwg Myk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9leGl0OworKworKwlyZXR1cm4gMDsKKysKKytl cnJfZXhpdDoKKysJcG1fcnVudGltZV9wdXRfc3luYyhwcml2LT5kZXYpOworKwlwbV9ydW50aW1l X2Rpc2FibGUocHJpdi0+ZGV2KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIGludCBq aDcxMTBfaXNwY3JnX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJ cG1fcnVudGltZV9wdXRfc3luYygmcGRldi0+ZGV2KTsKKysJcG1fcnVudGltZV9kaXNhYmxlKCZw ZGV2LT5kZXYpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgamg3MTEwX2lzcGNyZ19tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0g InN0YXJmaXZlLGpoNzExMC1pc3BjcmciIH0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307Cisr TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3MTEwX2lzcGNyZ19tYXRjaCk7CisrCisrc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgamg3MTEwX2lzcGNyZ19kcml2ZXIgPSB7CisrCS5wcm9i ZSA9IGpoNzExMF9pc3BjcmdfcHJvYmUsCisrCS5yZW1vdmUgPSBqaDcxMTBfaXNwY3JnX3JlbW92 ZSwKKysJLmRyaXZlciA9IHsKKysJCS5uYW1lID0gImNsay1zdGFyZml2ZS1qaDcxMTAtaXNwIiwK KysJCS5vZl9tYXRjaF90YWJsZSA9IGpoNzExMF9pc3BjcmdfbWF0Y2gsCisrCQkucG0gPSAmamg3 MTEwX2lzcGNyZ19wbV9vcHMsCisrCX0sCisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGpo NzExMF9pc3BjcmdfZHJpdmVyKTsKKysKKytNT0RVTEVfQVVUSE9SKCJYaW5neXUgV3UgPHhpbmd5 dS53dUBzdGFyZml2ZXRlY2guY29tPiIpOworK01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUg Skg3MTEwIEltYWdlLVNpZ25hbC1Qcm9jZXNzIGNsb2NrIGRyaXZlciIpOworK01PRFVMRV9MSUNF TlNFKCJHUEwiKTsKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZp dmUtamg3MTEwLmggYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLmgK K2luZGV4IGYyOTY4MmI4ZDQwMC4uNTQyNWZkODkzOTRhIDEwMDY0NAorLS0tIGEvZHJpdmVycy9j bGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC5oCisrKysgYi9kcml2ZXJzL2Nsay9zdGFy Zml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLmgKK0BAIC00LDYgKzQsMTIgQEAKKyAKKyAjaW5jbHVk ZSAiY2xrLXN0YXJmaXZlLWpoNzF4MC5oIgorIAorKy8qIHRvcCBjbG9ja3Mgb2YgSVNQL1ZPVVQg ZG9tYWluIGZyb20gU1lTQ1JHICovCisrc3RydWN0IHRvcF9zeXNjbGsgeworKwlzdHJ1Y3QgY2xr X2J1bGtfZGF0YSAqdG9wX2Nsa3M7CisrCWludCB0b3BfY2xrc19udW07CisrfTsKKysKKyBpbnQg amg3MTEwX3Jlc2V0X2NvbnRyb2xsZXJfcmVnaXN0ZXIoc3RydWN0IGpoNzF4MF9jbGtfcHJpdiAq cHJpdiwKKyAJCQkJICAgICBjb25zdCBjaGFyICphZGV2X25hbWUsCisgCQkJCSAgICAgdTMyIGFk ZXZfaWQpOworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRj aGVzLzAwMDUtZHQtYmluZGluZ3MtY2xvY2stQWRkLVN0YXJGaXZlLUpINzExMC1WaWRlby1PdXRw dXQtYy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA1LWR0LWJpbmRpbmdzLWNs b2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOGNiZmI0NmQ4YmZjNwotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA1LWR0LWJpbmRpbmdzLWNsb2NrLUFk ZC1TdGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWMucGF0Y2gKQEAgLTAsMCArMSwxNzMgQEAK K0Zyb20gMjc3Y2Y1OGJkOTU3ZDdlYTA1MmRhMDEyNmFjOWFmNzBiOTI2OTc3OSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5j b20+CitEYXRlOiBUaHUsIDE4IE1heSAyMDIzIDE4OjEyOjI4ICswODAwCitTdWJqZWN0OiBbUEFU Q0ggMDUvNzJdIGR0LWJpbmRpbmdzOiBjbG9jazogQWRkIFN0YXJGaXZlIEpINzExMCBWaWRlby1P dXRwdXQKKyBjbG9jayBhbmQgcmVzZXQgZ2VuZXJhdG9yCisKK0FkZCBiaW5kaW5ncyBmb3IgdGhl IFZpZGVvLU91dHB1dCBjbG9jayBhbmQgcmVzZXQgZ2VuZXJhdG9yIChWT1VUQ1JHKQorb24gdGhl IEpINzExMCBSSVNDLVYgU29DIGJ5IFN0YXJGaXZlIEx0ZC4KKworUmV2aWV3ZWQtYnk6IEtyenlz enRvZiBLb3psb3dza2kgPGtyenlzenRvZi5rb3psb3dza2lAbGluYXJvLm9yZz4KK1NpZ25lZC1v ZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4v Y2xvY2svc3RhcmZpdmUsamg3MTEwLXZvdXRjcmcueWFtbCAgICAgICAgfCA5MCArKysrKysrKysr KysrKysrKysrCisgLi4uL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaCAg IHwgMjIgKysrKysKKyAuLi4vZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5o ICAgfCAxNiArKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3Rh cmZpdmUsamg3MTEwLXZvdXRjcmcueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC12b3V0Y3JnLnlhbWwgYi9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXZv dXRjcmcueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uYWY3 N2JkOGM4NmIxCistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXZvdXRjcmcueWFtbAorQEAgLTAsMCArMSw5 MCBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSBPUiBCU0QtMi1D bGF1c2UKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hl bWFzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC12b3V0Y3JnLnlhbWwjCisrJHNjaGVtYTogaHR0cDov L2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJG aXZlIEpINzExMCBWaWRlby1PdXRwdXQgQ2xvY2sgYW5kIFJlc2V0IEdlbmVyYXRvcgorKworK21h aW50YWluZXJzOgorKyAgLSBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgor KworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3 MTEwLXZvdXRjcmcKKysKKysgIHJlZzoKKysgICAgbWF4SXRlbXM6IDEKKysKKysgIGNsb2NrczoK KysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogVm91dCBUb3AgY29yZQorKyAgICAg IC0gZGVzY3JpcHRpb246IFZvdXQgVG9wIEFoYgorKyAgICAgIC0gZGVzY3JpcHRpb246IFZvdXQg VG9wIEF4aQorKyAgICAgIC0gZGVzY3JpcHRpb246IFZvdXQgVG9wIEhETUkgTUNMSworKyAgICAg IC0gZGVzY3JpcHRpb246IEkyU1RYMCBCQ0xLCisrICAgICAgLSBkZXNjcmlwdGlvbjogZXh0ZXJu YWwgSERNSSBwaXhlbAorKworKyAgY2xvY2stbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0g Y29uc3Q6IHZvdXRfc3JjCisrICAgICAgLSBjb25zdDogdm91dF90b3BfYWhiCisrICAgICAgLSBj b25zdDogdm91dF90b3BfYXhpCisrICAgICAgLSBjb25zdDogdm91dF90b3BfaGRtaXR4MF9tY2xr CisrICAgICAgLSBjb25zdDogaTJzdHgwX2JjbGsKKysgICAgICAtIGNvbnN0OiBoZG1pdHgwX3Bp eGVsY2xrCisrCisrICByZXNldHM6CisrICAgIG1heEl0ZW1zOiAxCisrICAgIGRlc2NyaXB0aW9u OiBWb3V0IFRvcCBjb3JlCisrCisrICAnI2Nsb2NrLWNlbGxzJzoKKysgICAgY29uc3Q6IDEKKysg ICAgZGVzY3JpcHRpb246CisrICAgICAgU2VlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxq aDcxMTAtY3JnLmg+IGZvciB2YWxpZCBpbmRpY2VzLgorKworKyAgJyNyZXNldC1jZWxscyc6Cisr ICAgIGNvbnN0OiAxCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFNlZSA8ZHQtYmluZGluZ3Mv cmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oPiBmb3IgdmFsaWQgaW5kaWNlcy4KKysKKysgIHBv d2VyLWRvbWFpbnM6CisrICAgIG1heEl0ZW1zOiAxCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAg IFZvdXQgZG9tYWluIHBvd2VyCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0g cmVnCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSByZXNldHMKKysgIC0gJyNj bG9jay1jZWxscycKKysgIC0gJyNyZXNldC1jZWxscycKKysgIC0gcG93ZXItZG9tYWlucworKwor K2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAg ICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+CisrICAg ICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9wb3dlci9zdGFyZml2ZSxqaDcxMTAtcG11Lmg+CisrICAg ICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+CisrCisr ICAgIHZvdXRjcmc6IGNsb2NrLWNvbnRyb2xsZXJAMjk1QzAwMDAgeworKyAgICAgICAgY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtdm91dGNyZyI7CisrICAgICAgICByZWcgPSA8MHgyOTVD MDAwMCAweDEwMDAwPjsKKysgICAgICAgIGNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtf Vk9VVF9TUkM+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19WT1VU X1RPUF9BSEI+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19WT1VU X1RPUF9BWEk+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19WT1VU X1RPUF9IRE1JVFgwX01DTEs+LAorKyAgICAgICAgICAgICAgICAgPCZzeXNjcmcgSkg3MTEwX1NZ U0NMS19JMlNUWDBfQkNMSz4sCisrICAgICAgICAgICAgICAgICA8JmhkbWl0eDBfcGl4ZWxjbGs+ OworKyAgICAgICAgY2xvY2stbmFtZXMgPSAidm91dF9zcmMiLCAidm91dF90b3BfYWhiIiwKKysg ICAgICAgICAgICAgICAgICAgICAgInZvdXRfdG9wX2F4aSIsICJ2b3V0X3RvcF9oZG1pdHgwX21j bGsiLAorKyAgICAgICAgICAgICAgICAgICAgICAiaTJzdHgwX2JjbGsiLCAiaGRtaXR4MF9waXhl bGNsayI7CisrICAgICAgICByZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1ZPVVRfVE9Q X1NSQz47CisrICAgICAgICAjY2xvY2stY2VsbHMgPSA8MT47CisrICAgICAgICAjcmVzZXQtY2Vs bHMgPSA8MT47CisrICAgICAgICBwb3dlci1kb21haW5zID0gPCZwd3JjIEpINzExMF9QRF9WT1VU PjsKKysgICAgfTsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJm aXZlLGpoNzExMC1jcmcuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3 MTEwLWNyZy5oCitpbmRleCAzOWFjZjMwZGI0OTEuLjAxNjIyN2M2NGEyNyAxMDA2NDQKKy0tLSBh L2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCisrKysgYi9p bmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAorQEAgLTI3MCw0 ICsyNzAsMjYgQEAKKyAKKyAjZGVmaW5lIEpINzExMF9JU1BDTEtfRU5ECQkJMTQKKyAKKysvKiBW T1VUQ1JHIGNsb2NrcyAqLworKyNkZWZpbmUgSkg3MTEwX1ZPVVRDTEtfQVBCCQkJMAorKyNkZWZp bmUgSkg3MTEwX1ZPVVRDTEtfREM4MjAwX1BJWAkJMQorKyNkZWZpbmUgSkg3MTEwX1ZPVVRDTEtf RFNJX1NZUwkJCTIKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX1RYX0VTQwkJCTMKKysjZGVmaW5l IEpINzExMF9WT1VUQ0xLX0RDODIwMF9BWEkJCTQKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RD ODIwMF9DT1JFCQk1CisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19EQzgyMDBfQUhCCQk2CisrI2Rl ZmluZSBKSDcxMTBfVk9VVENMS19EQzgyMDBfUElYMAkJNworKyNkZWZpbmUgSkg3MTEwX1ZPVVRD TEtfREM4MjAwX1BJWDEJCTgKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RPTV9WT1VUX1RPUF9M Q0QJCTkKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RTSVRYX0FQQgkJMTAKKysjZGVmaW5lIEpI NzExMF9WT1VUQ0xLX0RTSVRYX1NZUwkJMTEKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RTSVRY X0RQSQkJMTIKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0RTSVRYX1RYRVNDCQkxMworKyNkZWZp bmUgSkg3MTEwX1ZPVVRDTEtfTUlQSVRYX0RQSFlfVFhFU0MJMTQKKysjZGVmaW5lIEpINzExMF9W T1VUQ0xLX0hETUlfVFhfTUNMSwkJMTUKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0hETUlfVFhf QkNMSwkJMTYKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0hETUlfVFhfU1lTCQkxNworKworKyNk ZWZpbmUgSkg3MTEwX1ZPVVRDTEtfRU5ECQkJMTgKKysKKyAjZW5kaWYgLyogX19EVF9CSU5ESU5H U19DTE9DS19TVEFSRklWRV9KSDcxMTBfQ1JHX0hfXyAqLworZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUsamg3MTEwLWNyZy5oIGIvaW5jbHVkZS9kdC1iaW5k aW5ncy9yZXNldC9zdGFyZml2ZSxqaDcxMTAtY3JnLmgKK2luZGV4IDJjNWQ5ZGNlZmZmYS4uZWFm NGEwZDg0ZjZhIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdGFyZml2 ZSxqaDcxMTAtY3JnLmgKKysrKyBiL2luY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmUs amg3MTEwLWNyZy5oCitAQCAtMTk1LDQgKzE5NSwyMCBAQAorIAorICNkZWZpbmUgSkg3MTEwX0lT UFJTVF9FTkQJCQkxMgorIAorKy8qIFZPVVRDUkcgcmVzZXRzICovCisrI2RlZmluZSBKSDcxMTBf Vk9VVFJTVF9EQzgyMDBfQVhJCQkwCisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9EQzgyMDBfQUhC CQkxCisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9EQzgyMDBfQ09SRQkJMgorKyNkZWZpbmUgSkg3 MTEwX1ZPVVRSU1RfRFNJVFhfRFBJCQkzCisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9EU0lUWF9B UEIJCTQKKysjZGVmaW5lIEpINzExMF9WT1VUUlNUX0RTSVRYX1JYRVNDCQk1CisrI2RlZmluZSBK SDcxMTBfVk9VVFJTVF9EU0lUWF9TWVMJCTYKKysjZGVmaW5lIEpINzExMF9WT1VUUlNUX0RTSVRY X1RYQllURUhTCQk3CisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9EU0lUWF9UWEVTQwkJOAorKyNk ZWZpbmUgSkg3MTEwX1ZPVVRSU1RfSERNSV9UWF9IRE1JCQk5CisrI2RlZmluZSBKSDcxMTBfVk9V VFJTVF9NSVBJVFhfRFBIWV9TWVMJCTEwCisrI2RlZmluZSBKSDcxMTBfVk9VVFJTVF9NSVBJVFhf RFBIWV9UWEJZVEVIUwkxMQorKworKyNkZWZpbmUgSkg3MTEwX1ZPVVRSU1RfRU5ECQkJMTIKKysK KyAjZW5kaWYgLyogX19EVF9CSU5ESU5HU19SRVNFVF9TVEFSRklWRV9KSDcxMTBfQ1JHX0hfXyAq LworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAw MDYtY2xrLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1KSDcxMTAtVmlkZW8tT3V0cHV0LWNsb2NrLS5w YXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA2LWNsay1zdGFyZml2ZS1BZGQtU3Rh ckZpdmUtSkg3MTEwLVZpZGVvLU91dHB1dC1jbG9jay0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTdhNWRkYzhmNTEzMAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA2LWNsay1zdGFyZml2ZS1BZGQtU3RhckZpdmUt Skg3MTEwLVZpZGVvLU91dHB1dC1jbG9jay0ucGF0Y2gKQEAgLTAsMCArMSwyOTQgQEAKK0Zyb20g NTk3OGU3NjdlNjE3ODRkNzIxYzRlM2E3YWEzZGQzOWUxNGE4MWU3OCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitE YXRlOiBUaHUsIDE4IE1heSAyMDIzIDE4OjEyOjI5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDYv NzJdIGNsazogc3RhcmZpdmU6IEFkZCBTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0cHV0IGNsb2Nr CisgZHJpdmVyCisKK0FkZCBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0 cHV0IGNsb2NrIGNvbnRyb2xsZXIuCitBbmQgdGhlc2UgY2xvY2sgY29udHJvbGxlcnMgc2hvdWxk IHBvd2VyIG9uIGFuZCBlbmFibGUgdGhlIGNsb2NrcyBmcm9tCitTWVNDUkcgZmlyc3QgYmVmb3Jl IHJlZ2lzdGVyaW5nLgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFy Zml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZyAgICAgICAg ICAgICAgICAgIHwgIDExICsKKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgfCAgIDEgKworIC4uLi9jbGsvc3RhcmZpdmUvY2xrLXN0YXJmaXZlLWpoNzExMC12 b3V0LmMgICB8IDIzOSArKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDI1MSBp bnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL3N0YXJmaXZlL2Ns ay1zdGFyZml2ZS1qaDcxMTAtdm91dC5jCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFy Zml2ZS9LY29uZmlnIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworaW5kZXggMGE2M2E0 N2U0Yjk3Li5jNTA2ZGU5MzQ2YzUgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9L Y29uZmlnCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCitAQCAtNjEsMyArNjEs MTQgQEAgY29uZmlnIENMS19TVEFSRklWRV9KSDcxMTBfSVNQCisgCWhlbHAKKyAJICBTYXkgeWVz IGhlcmUgdG8gc3VwcG9ydCB0aGUgSW1hZ2UtU2lnbmFsLVByb2Nlc3MgY2xvY2sgY29udHJvbGxl cgorIAkgIG9uIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29DLgorKworK2NvbmZpZyBDTEtfU1RBUkZJ VkVfSkg3MTEwX1ZPVVQKKysJdHJpc3RhdGUgIlN0YXJGaXZlIEpINzExMCBWaWRlby1PdXRwdXQg Y2xvY2sgc3VwcG9ydCIKKysJZGVwZW5kcyBvbiBDTEtfU1RBUkZJVkVfSkg3MTEwX1NZUyAmJiBK SDcxWFhfUE1VCisrCXNlbGVjdCBBVVhJTElBUllfQlVTCisrCXNlbGVjdCBDTEtfU1RBUkZJVkVf Skg3MVgwCisrCXNlbGVjdCBSRVNFVF9TVEFSRklWRV9KSDcxMTAKKysJZGVmYXVsdCBtIGlmIEFS Q0hfU1RBUkZJVkUKKysJaGVscAorKwkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBWaWRl by1PdXRwdXQgY2xvY2sgY29udHJvbGxlcgorKwkgIG9uIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29D LgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlIGIvZHJpdmVycy9j bGsvc3RhcmZpdmUvTWFrZWZpbGUKK2luZGV4IDc2ZmI5ZjhkNjI4Yi4uODQxMzc3ZTQ1YmI2IDEw MDY0NAorLS0tIGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUKKysrKyBiL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL01ha2VmaWxlCitAQCAtOCwzICs4LDQgQEAgb2JqLSQoQ09ORklHX0NMS19T VEFSRklWRV9KSDcxMTBfU1lTKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLXN5cy5vCisgb2JqLSQo Q09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfQU9OKQkrPSBjbGstc3RhcmZpdmUtamg3MTEwLWFv bi5vCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfU1RHKQkrPSBjbGstc3RhcmZp dmUtamg3MTEwLXN0Zy5vCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMTBfSVNQKQkr PSBjbGstc3RhcmZpdmUtamg3MTEwLWlzcC5vCisrb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9K SDcxMTBfVk9VVCkJKz0gY2xrLXN0YXJmaXZlLWpoNzExMC12b3V0Lm8KK2RpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXZvdXQuYyBiL2RyaXZlcnMv Y2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtdm91dC5jCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi43NDM4NDBlMDNkODEKKy0tLSAvZGV2L251bGwKKysr KyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxMTAtdm91dC5jCitAQCAt MCwwICsxLDIzOSBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoK KysgKiBTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0cHV0IENsb2NrIERyaXZlcgorKyAqCisrICog Q29weXJpZ2h0IChDKSAyMDIyLTIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysg Ki8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92 aWRlci5oPgorKyNpbmNsdWRlIDxsaW51eC9pby5oPgorKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KKysjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxs aW51eC9yZXNldC5oPgorKworKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxq aDcxMTAtY3JnLmg+CisrCisrI2luY2x1ZGUgImNsay1zdGFyZml2ZS1qaDcxMTAuaCIKKysKKysv KiBleHRlcm5hbCBjbG9ja3MgKi8KKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX1ZPVVRfU1JDCQkJ KEpINzExMF9WT1VUQ0xLX0VORCArIDApCisrI2RlZmluZSBKSDcxMTBfVk9VVENMS19WT1VUX1RP UF9BSEIJCShKSDcxMTBfVk9VVENMS19FTkQgKyAxKQorKyNkZWZpbmUgSkg3MTEwX1ZPVVRDTEtf Vk9VVF9UT1BfQVhJCQkoSkg3MTEwX1ZPVVRDTEtfRU5EICsgMikKKysjZGVmaW5lIEpINzExMF9W T1VUQ0xLX1ZPVVRfVE9QX0hETUlUWDBfTUNMSwkoSkg3MTEwX1ZPVVRDTEtfRU5EICsgMykKKysj ZGVmaW5lIEpINzExMF9WT1VUQ0xLX0kyU1RYMF9CQ0xLCQkoSkg3MTEwX1ZPVVRDTEtfRU5EICsg NCkKKysjZGVmaW5lIEpINzExMF9WT1VUQ0xLX0hETUlUWDBfUElYRUxDTEsJCShKSDcxMTBfVk9V VENMS19FTkQgKyA1KQorKyNkZWZpbmUgSkg3MTEwX1ZPVVRDTEtfRVhUX0VORAkJCShKSDcxMTBf Vk9VVENMS19FTkQgKyA2KQorKworK3N0YXRpYyBzdHJ1Y3QgY2xrX2J1bGtfZGF0YSBqaDcxMTBf dm91dF90b3BfY2xrc1tdID0geworKwl7IC5pZCA9ICJ2b3V0X3NyYyIgfSwKKysJeyAuaWQgPSAi dm91dF90b3BfYWhiIiB9CisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzF4MF9jbGtf ZGF0YSBqaDcxMTBfdm91dGNsa19kYXRhW10gPSB7CisrCS8qIGRpdmlkZXIgKi8KKysJSkg3MVgw X19ESVYoSkg3MTEwX1ZPVVRDTEtfQVBCLCAiYXBiIiwgOCwgSkg3MTEwX1ZPVVRDTEtfVk9VVF9U T1BfQUhCKSwKKysJSkg3MVgwX19ESVYoSkg3MTEwX1ZPVVRDTEtfREM4MjAwX1BJWCwgImRjODIw MF9waXgiLCA2MywgSkg3MTEwX1ZPVVRDTEtfVk9VVF9TUkMpLAorKwlKSDcxWDBfX0RJVihKSDcx MTBfVk9VVENMS19EU0lfU1lTLCAiZHNpX3N5cyIsIDMxLCBKSDcxMTBfVk9VVENMS19WT1VUX1NS QyksCisrCUpINzFYMF9fRElWKEpINzExMF9WT1VUQ0xLX1RYX0VTQywgInR4X2VzYyIsIDMxLCBK SDcxMTBfVk9VVENMS19WT1VUX1RPUF9BSEIpLAorKwkvKiBkYzgyMDAgKi8KKysJSkg3MVgwX0dB VEUoSkg3MTEwX1ZPVVRDTEtfREM4MjAwX0FYSSwgImRjODIwMF9heGkiLCAwLCBKSDcxMTBfVk9V VENMS19WT1VUX1RPUF9BWEkpLAorKwlKSDcxWDBfR0FURShKSDcxMTBfVk9VVENMS19EQzgyMDBf Q09SRSwgImRjODIwMF9jb3JlIiwgMCwgSkg3MTEwX1ZPVVRDTEtfVk9VVF9UT1BfQVhJKSwKKysJ Skg3MVgwX0dBVEUoSkg3MTEwX1ZPVVRDTEtfREM4MjAwX0FIQiwgImRjODIwMF9haGIiLCAwLCBK SDcxMTBfVk9VVENMS19WT1VUX1RPUF9BSEIpLAorKwlKSDcxWDBfR01VWChKSDcxMTBfVk9VVENM S19EQzgyMDBfUElYMCwgImRjODIwMF9waXgwIiwgMCwgMiwKKysJCSAgICBKSDcxMTBfVk9VVENM S19EQzgyMDBfUElYLAorKwkJICAgIEpINzExMF9WT1VUQ0xLX0hETUlUWDBfUElYRUxDTEspLAor KwlKSDcxWDBfR01VWChKSDcxMTBfVk9VVENMS19EQzgyMDBfUElYMSwgImRjODIwMF9waXgxIiwg MCwgMiwKKysJCSAgICBKSDcxMTBfVk9VVENMS19EQzgyMDBfUElYLAorKwkJICAgIEpINzExMF9W T1VUQ0xLX0hETUlUWDBfUElYRUxDTEspLAorKwkvKiBMQ0QgKi8KKysJSkg3MVgwX0dNVVgoSkg3 MTEwX1ZPVVRDTEtfRE9NX1ZPVVRfVE9QX0xDRCwgImRvbV92b3V0X3RvcF9sY2QiLCAwLCAyLAor KwkJICAgIEpINzExMF9WT1VUQ0xLX0RDODIwMF9QSVgwLAorKwkJICAgIEpINzExMF9WT1VUQ0xL X0RDODIwMF9QSVgxKSwKKysJLyogZHNpVHggKi8KKysJSkg3MVgwX0dBVEUoSkg3MTEwX1ZPVVRD TEtfRFNJVFhfQVBCLCAiZHNpVHhfYXBiIiwgMCwgSkg3MTEwX1ZPVVRDTEtfRFNJX1NZUyksCisr CUpINzFYMF9HQVRFKEpINzExMF9WT1VUQ0xLX0RTSVRYX1NZUywgImRzaVR4X3N5cyIsIDAsIEpI NzExMF9WT1VUQ0xLX0RTSV9TWVMpLAorKwlKSDcxWDBfR01VWChKSDcxMTBfVk9VVENMS19EU0lU WF9EUEksICJkc2lUeF9kcGkiLCAwLCAyLAorKwkJICAgIEpINzExMF9WT1VUQ0xLX0RDODIwMF9Q SVgsCisrCQkgICAgSkg3MTEwX1ZPVVRDTEtfSERNSVRYMF9QSVhFTENMSyksCisrCUpINzFYMF9H QVRFKEpINzExMF9WT1VUQ0xLX0RTSVRYX1RYRVNDLCAiZHNpVHhfdHhlc2MiLCAwLCBKSDcxMTBf Vk9VVENMS19UWF9FU0MpLAorKwkvKiBtaXBpdHggRFBIWSAqLworKwlKSDcxWDBfR0FURShKSDcx MTBfVk9VVENMS19NSVBJVFhfRFBIWV9UWEVTQywgIm1pcGl0eF9kcGh5X3R4ZXNjIiwgMCwKKysJ CSAgICBKSDcxMTBfVk9VVENMS19UWF9FU0MpLAorKwkvKiBoZG1pICovCisrCUpINzFYMF9HQVRF KEpINzExMF9WT1VUQ0xLX0hETUlfVFhfTUNMSywgImhkbWlfdHhfbWNsayIsIDAsCisrCQkgICAg Skg3MTEwX1ZPVVRDTEtfVk9VVF9UT1BfSERNSVRYMF9NQ0xLKSwKKysJSkg3MVgwX0dBVEUoSkg3 MTEwX1ZPVVRDTEtfSERNSV9UWF9CQ0xLLCAiaGRtaV90eF9iY2xrIiwgMCwKKysJCSAgICBKSDcx MTBfVk9VVENMS19JMlNUWDBfQkNMSyksCisrCUpINzFYMF9HQVRFKEpINzExMF9WT1VUQ0xLX0hE TUlfVFhfU1lTLCAiaGRtaV90eF9zeXMiLCAwLCBKSDcxMTBfVk9VVENMS19BUEIpLAorK307Cisr Cisrc3RhdGljIGludCBqaDcxMTBfdm91dF90b3BfcnN0X2luaXQoc3RydWN0IGpoNzF4MF9jbGtf cHJpdiAqcHJpdikKKyt7CisrCXN0cnVjdCByZXNldF9jb250cm9sICp0b3BfcnN0OworKworKwkv KiBUaGUgcmVzZXQgc2hvdWxkIGJlIHNoYXJlZCBhbmQgb3RoZXIgVm91dCBtb2R1bGVzIHdpbGwg dXNlIGl0cy4gKi8KKysJdG9wX3JzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfc2hhcmVkKHBy aXYtPmRldiwgTlVMTCk7CisrCWlmIChJU19FUlIodG9wX3JzdCkpCisrCQlyZXR1cm4gZGV2X2Vy cl9wcm9iZShwcml2LT5kZXYsIFBUUl9FUlIodG9wX3JzdCksICJmYWlsZWQgdG8gZ2V0IHRvcCBy ZXNldFxuIik7CisrCisrCXJldHVybiByZXNldF9jb250cm9sX2RlYXNzZXJ0KHRvcF9yc3QpOwor K30KKysKKytzdGF0aWMgc3RydWN0IGNsa19odyAqamg3MTEwX3ZvdXRjbGtfZ2V0KHN0cnVjdCBv Zl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMsIHZvaWQgKmRhdGEpCisreworKwlzdHJ1Y3Qgamg3MXgw X2Nsa19wcml2ICpwcml2ID0gZGF0YTsKKysJdW5zaWduZWQgaW50IGlkeCA9IGNsa3NwZWMtPmFy Z3NbMF07CisrCisrCWlmIChpZHggPCBKSDcxMTBfVk9VVENMS19FTkQpCisrCQlyZXR1cm4gJnBy aXYtPnJlZ1tpZHhdLmh3OworKworKwlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKyt9CisrCisr I2lmZGVmIENPTkZJR19QTQorK3N0YXRpYyBpbnQgamg3MTEwX3ZvdXRjcmdfc3VzcGVuZChzdHJ1 Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgdG9wX3N5c2NsayAqdG9wID0gZGV2X2dldF9k cnZkYXRhKGRldik7CisrCisrCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKHRvcC0+dG9wX2Ns a3NfbnVtLCB0b3AtPnRvcF9jbGtzKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBp bnQgamg3MTEwX3ZvdXRjcmdfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVj dCB0b3Bfc3lzY2xrICp0b3AgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJcmV0dXJuIGNs a19idWxrX3ByZXBhcmVfZW5hYmxlKHRvcC0+dG9wX2Nsa3NfbnVtLCB0b3AtPnRvcF9jbGtzKTsK Kyt9CisrI2VuZGlmCisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGpoNzExMF92 b3V0Y3JnX3BtX29wcyA9IHsKKysJU0VUX1JVTlRJTUVfUE1fT1BTKGpoNzExMF92b3V0Y3JnX3N1 c3BlbmQsIGpoNzExMF92b3V0Y3JnX3Jlc3VtZSwgTlVMTCkKKyt9OworKworK3N0YXRpYyBpbnQg amg3MTEwX3ZvdXRjcmdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7Cisr CXN0cnVjdCBqaDcxeDBfY2xrX3ByaXYgKnByaXY7CisrCXN0cnVjdCB0b3Bfc3lzY2xrICp0b3A7 CisrCXVuc2lnbmVkIGludCBpZHg7CisrCWludCByZXQ7CisrCisrCXByaXYgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwKKysJCQkgICAgc3RydWN0X3NpemUocHJpdiwgcmVnLCBKSDcxMTBfVk9V VENMS19FTkQpLAorKwkJCSAgICBHRlBfS0VSTkVMKTsKKysJaWYgKCFwcml2KQorKwkJcmV0dXJu IC1FTk9NRU07CisrCisrCXRvcCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnRv cCksIEdGUF9LRVJORUwpOworKwlpZiAoIXRvcCkKKysJCXJldHVybiAtRU5PTUVNOworKworKwlz cGluX2xvY2tfaW5pdCgmcHJpdi0+cm13X2xvY2spOworKwlwcml2LT5kZXYgPSAmcGRldi0+ZGV2 OworKwlwcml2LT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDAp OworKwlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQorKwkJcmV0dXJuIFBUUl9FUlIocHJpdi0+YmFz ZSk7CisrCisrCXRvcC0+dG9wX2Nsa3MgPSBqaDcxMTBfdm91dF90b3BfY2xrczsKKysJdG9wLT50 b3BfY2xrc19udW0gPSBBUlJBWV9TSVpFKGpoNzExMF92b3V0X3RvcF9jbGtzKTsKKysJcmV0ID0g ZGV2bV9jbGtfYnVsa19nZXQocHJpdi0+ZGV2LCB0b3AtPnRvcF9jbGtzX251bSwgdG9wLT50b3Bf Y2xrcyk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShwcml2LT5kZXYsIHJl dCwgImZhaWxlZCB0byBnZXQgdG9wIGNsb2Nrc1xuIik7CisrCWRldl9zZXRfZHJ2ZGF0YShwcml2 LT5kZXYsIHRvcCk7CisrCisrCS8qIGVuYWJsZSBwb3dlciBkb21haW4gYW5kIGNsb2NrcyAqLwor KwlwbV9ydW50aW1lX2VuYWJsZShwcml2LT5kZXYpOworKwlyZXQgPSBwbV9ydW50aW1lX2dldF9z eW5jKHByaXYtPmRldik7CisrCWlmIChyZXQgPCAwKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUo cHJpdi0+ZGV2LCByZXQsICJmYWlsZWQgdG8gdHVybiBvbiBwb3dlclxuIik7CisrCisrCXJldCA9 IGpoNzExMF92b3V0X3RvcF9yc3RfaW5pdChwcml2KTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJy X2V4aXQ7CisrCisrCWZvciAoaWR4ID0gMDsgaWR4IDwgSkg3MTEwX1ZPVVRDTEtfRU5EOyBpZHgr KykgeworKwkJdTMyIG1heCA9IGpoNzExMF92b3V0Y2xrX2RhdGFbaWR4XS5tYXg7CisrCQlzdHJ1 Y3QgY2xrX3BhcmVudF9kYXRhIHBhcmVudHNbNF0gPSB7fTsKKysJCXN0cnVjdCBjbGtfaW5pdF9k YXRhIGluaXQgPSB7CisrCQkJLm5hbWUgPSBqaDcxMTBfdm91dGNsa19kYXRhW2lkeF0ubmFtZSwK KysJCQkub3BzID0gc3RhcmZpdmVfamg3MXgwX2Nsa19vcHMobWF4KSwKKysJCQkucGFyZW50X2Rh dGEgPSBwYXJlbnRzLAorKwkJCS5udW1fcGFyZW50cyA9CisrCQkJCSgobWF4ICYgSkg3MVgwX0NM S19NVVhfTUFTSykgPj4gSkg3MVgwX0NMS19NVVhfU0hJRlQpICsgMSwKKysJCQkuZmxhZ3MgPSBq aDcxMTBfdm91dGNsa19kYXRhW2lkeF0uZmxhZ3MsCisrCQl9OworKwkJc3RydWN0IGpoNzF4MF9j bGsgKmNsayA9ICZwcml2LT5yZWdbaWR4XTsKKysJCXVuc2lnbmVkIGludCBpOworKwkJY29uc3Qg Y2hhciAqZndfbmFtZVtKSDcxMTBfVk9VVENMS19FWFRfRU5EIC0gSkg3MTEwX1ZPVVRDTEtfRU5E XSA9IHsKKysJCQkidm91dF9zcmMiLAorKwkJCSJ2b3V0X3RvcF9haGIiLAorKwkJCSJ2b3V0X3Rv cF9heGkiLAorKwkJCSJ2b3V0X3RvcF9oZG1pdHgwX21jbGsiLAorKwkJCSJpMnN0eDBfYmNsayIs CisrCQkJImhkbWl0eDBfcGl4ZWxjbGsiCisrCQl9OworKworKwkJZm9yIChpID0gMDsgaSA8IGlu aXQubnVtX3BhcmVudHM7IGkrKykgeworKwkJCXVuc2lnbmVkIGludCBwaWR4ID0gamg3MTEwX3Zv dXRjbGtfZGF0YVtpZHhdLnBhcmVudHNbaV07CisrCisrCQkJaWYgKHBpZHggPCBKSDcxMTBfVk9V VENMS19FTkQpCisrCQkJCXBhcmVudHNbaV0uaHcgPSAmcHJpdi0+cmVnW3BpZHhdLmh3OworKwkJ CWVsc2UgaWYgKHBpZHggPCBKSDcxMTBfVk9VVENMS19FWFRfRU5EKQorKwkJCQlwYXJlbnRzW2ld LmZ3X25hbWUgPSBmd19uYW1lW3BpZHggLSBKSDcxMTBfVk9VVENMS19FTkRdOworKwkJfQorKwor KwkJY2xrLT5ody5pbml0ID0gJmluaXQ7CisrCQljbGstPmlkeCA9IGlkeDsKKysJCWNsay0+bWF4 X2RpdiA9IG1heCAmIEpINzFYMF9DTEtfRElWX01BU0s7CisrCisrCQlyZXQgPSBkZXZtX2Nsa19o d19yZWdpc3RlcigmcGRldi0+ZGV2LCAmY2xrLT5odyk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8g ZXJyX2V4aXQ7CisrCX0KKysKKysJcmV0ID0gZGV2bV9vZl9jbGtfYWRkX2h3X3Byb3ZpZGVyKCZw ZGV2LT5kZXYsIGpoNzExMF92b3V0Y2xrX2dldCwgcHJpdik7CisrCWlmIChyZXQpCisrCQlnb3Rv IGVycl9leGl0OworKworKwlyZXQgPSBqaDcxMTBfcmVzZXRfY29udHJvbGxlcl9yZWdpc3Rlcihw cml2LCAicnN0LXZvIiwgNCk7CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9leGl0OworKworKwly ZXR1cm4gMDsKKysKKytlcnJfZXhpdDoKKysJcG1fcnVudGltZV9wdXRfc3luYyhwcml2LT5kZXYp OworKwlwbV9ydW50aW1lX2Rpc2FibGUocHJpdi0+ZGV2KTsKKysJcmV0dXJuIHJldDsKKyt9Cisr Cisrc3RhdGljIGludCBqaDcxMTBfdm91dGNyZ19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKKyt7CisrCXBtX3J1bnRpbWVfcHV0X3N5bmMoJnBkZXYtPmRldik7CisrCXBtX3J1 bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRp YyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF92b3V0Y3JnX21hdGNoW10gPSB7Cisr CXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXZvdXRjcmciIH0sCisrCXsgLyogc2Vu dGluZWwgKi8gfQorK307CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3MTEwX3ZvdXRjcmdf bWF0Y2gpOworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGpoNzExMF92b3V0Y3Jn X2RyaXZlciA9IHsKKysJLnByb2JlID0gamg3MTEwX3ZvdXRjcmdfcHJvYmUsCisrCS5yZW1vdmUg PSBqaDcxMTBfdm91dGNyZ19yZW1vdmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJjbGst c3RhcmZpdmUtamg3MTEwLXZvdXQiLAorKwkJLm9mX21hdGNoX3RhYmxlID0gamg3MTEwX3ZvdXRj cmdfbWF0Y2gsCisrCQkucG0gPSAmamg3MTEwX3ZvdXRjcmdfcG1fb3BzLAorKwl9LAorK307Cisr bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBfdm91dGNyZ19kcml2ZXIpOworKworK01PRFVM RV9BVVRIT1IoIlhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9E VUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAgVmlkZW8tT3V0cHV0IGNsb2NrIGRyaXZl ciIpOworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA3LXJlc2V0LXN0YXJmaXZlLWpoNzExMC1BZGQt U3RhckZpdmUtU1RHLUlTUC1WT1VULXJlc2UucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNo ZXMvMDAwNy1yZXNldC1zdGFyZml2ZS1qaDcxMTAtQWRkLVN0YXJGaXZlLVNURy1JU1AtVk9VVC1y ZXNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjc1YTU2 OGJmYjM4MmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAw Ny1yZXNldC1zdGFyZml2ZS1qaDcxMTAtQWRkLVN0YXJGaXZlLVNURy1JU1AtVk9VVC1yZXNlLnBh dGNoCkBAIC0wLDAgKzEsNjYgQEAKK0Zyb20gOWFlZmNjYjIyYzUwZThmOThhYTlhNDYwM2MwM2Y0 ZTZhYzE5OTRhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGlu Z3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDE4IE1heSAyMDIzIDE4OjEyOjMx ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDcvNzJdIHJlc2V0OiBzdGFyZml2ZTogamg3MTEwOiBB ZGQgU3RhckZpdmUgU1RHL0lTUC9WT1VUCisgcmVzZXRzIHN1cHBvcnQKKworQWRkIG5ldyBzdHJ1 Y3QgbWVtYmVycyBhbmQgYXV4aWxpYXJ5X2RldmljZV9pZCBvZiByZXNldHMgdG8gc3VwcG9ydAor U3lzdGVtLVRvcC1Hcm91cCwgSW1hZ2UtU2lnbmFsLVByb2Nlc3MgYW5kIFZpZGVvLU91dHB1dCBv biB0aGUgU3RhckZpdmUKK0pINzExMCBTb0MuCisKK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8 eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vcmVzZXQvc3RhcmZpdmUvcmVz ZXQtc3RhcmZpdmUtamg3MTEwLmMgICAgfCAzMCArKysrKysrKysrKysrKysrKysrCisgMSBmaWxl IGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQv c3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MTEwLmMgYi9kcml2ZXJzL3Jlc2V0L3N0YXJmaXZl L3Jlc2V0LXN0YXJmaXZlLWpoNzExMC5jCitpbmRleCAyZDI2YWU5NWM4Y2MuLjI5YTQzZjBmMmFk NiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3 MTEwLmMKKysrKyBiL2RyaXZlcnMvcmVzZXQvc3RhcmZpdmUvcmVzZXQtc3RhcmZpdmUtamg3MTEw LmMKK0BAIC0zMSw2ICszMSwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9yZXNldF9p bmZvIGpoNzExMF9hb25faW5mbyA9IHsKKyAJLnN0YXR1c19vZmZzZXQgPSAweDNDLAorIH07Cisg Cisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxMTBfcmVzZXRfaW5mbyBqaDcxMTBfc3RnX2luZm8g PSB7CisrCS5ucl9yZXNldHMgPSBKSDcxMTBfU1RHUlNUX0VORCwKKysJLmFzc2VydF9vZmZzZXQg PSAweDc0LAorKwkuc3RhdHVzX29mZnNldCA9IDB4NzgsCisrfTsKKysKKytzdGF0aWMgY29uc3Qg c3RydWN0IGpoNzExMF9yZXNldF9pbmZvIGpoNzExMF9pc3BfaW5mbyA9IHsKKysJLm5yX3Jlc2V0 cyA9IEpINzExMF9JU1BSU1RfRU5ELAorKwkuYXNzZXJ0X29mZnNldCA9IDB4MzgsCisrCS5zdGF0 dXNfb2Zmc2V0ID0gMHgzQywKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MTEwX3Jl c2V0X2luZm8gamg3MTEwX3ZvdXRfaW5mbyA9IHsKKysJLm5yX3Jlc2V0cyA9IEpINzExMF9WT1VU UlNUX0VORCwKKysJLmFzc2VydF9vZmZzZXQgPSAweDQ4LAorKwkuc3RhdHVzX29mZnNldCA9IDB4 NEMsCisrfTsKKysKKyBzdGF0aWMgaW50IGpoNzExMF9yZXNldF9wcm9iZShzdHJ1Y3QgYXV4aWxp YXJ5X2RldmljZSAqYWRldiwKKyAJCQkgICAgICBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2Rldmlj ZV9pZCAqaWQpCisgeworQEAgLTU4LDYgKzc2LDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXV4 aWxpYXJ5X2RldmljZV9pZCBqaDcxMTBfcmVzZXRfaWRzW10gPSB7CisgCQkubmFtZSA9ICJjbGtf c3RhcmZpdmVfamg3MTEwX3N5cy5yc3QtYW9uIiwKKyAJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxf dWxvbmdfdCkmamg3MTEwX2Fvbl9pbmZvLAorIAl9LAorKwl7CisrCQkubmFtZSA9ICJjbGtfc3Rh cmZpdmVfamg3MTEwX3N5cy5yc3Qtc3RnIiwKKysJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxv bmdfdCkmamg3MTEwX3N0Z19pbmZvLAorKwl9LAorKwl7CisrCQkubmFtZSA9ICJjbGtfc3RhcmZp dmVfamg3MTEwX3N5cy5yc3QtaXNwIiwKKysJCS5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdf dCkmamg3MTEwX2lzcF9pbmZvLAorKwl9LAorKwl7CisrCQkubmFtZSA9ICJjbGtfc3RhcmZpdmVf amg3MTEwX3N5cy5yc3Qtdm8iLAorKwkJLmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KSZq aDcxMTBfdm91dF9pbmZvLAorKwl9LAorIAl7IC8qIHNlbnRpbmVsICovIH0KKyB9OworIE1PRFVM RV9ERVZJQ0VfVEFCTEUoYXV4aWxpYXJ5LCBqaDcxMTBfcmVzZXRfaWRzKTsKKy0tIAorMi40MS4w CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDA4LWR0LWJpbmRpbmdz LWNsb2NrLUFkZC1TdGFyRml2ZS1KSDcxMTAtUExMLWNsb2NrLWdlbmUucGF0Y2ggYi9zcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDAwOC1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3 MTEwLVBMTC1jbG9jay1nZW5lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLjNkN2JmMmYwNDBlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4 Ni40L3BhdGNoZXMvMDAwOC1kdC1iaW5kaW5ncy1jbG9jay1BZGQtU3RhckZpdmUtSkg3MTEwLVBM TC1jbG9jay1nZW5lLnBhdGNoCkBAIC0wLDAgKzEsODkgQEAKK0Zyb20gYTdhZTg2NmMyMTllY2Qy Yzc4NTdlM2JmOWYyZTc2ZDdkMzY1N2UwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUdWUsIDEzIEp1 biAyMDIzIDIwOjU4OjQ2ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMDgvNzJdIGR0LWJpbmRpbmdz OiBjbG9jazogQWRkIFN0YXJGaXZlIEpINzExMCBQTEwgY2xvY2sKKyBnZW5lcmF0b3IKKworQWRk IGJpbmRpbmdzIGZvciB0aGUgUExMIGNsb2NrIGdlbmVyYXRvciBvbiB0aGUgSkg3MTEwIFJJU0Mt ViBTb0MuCisKK1Jldmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5c3p0b2Yua296 bG93c2tpQGxpbmFyby5vcmc+CitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBz dGFyZml2ZXRlY2guY29tPgorUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3IuZG9vbGV5 QG1pY3JvY2hpcC5jb20+CistLS0KKyAuLi4vYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEw LXBsbC55YW1sICAgfCA0NiArKysrKysrKysrKysrKysrKysrCisgLi4uL2R0LWJpbmRpbmdzL2Ns b2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaCAgIHwgIDYgKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA1 MiBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtcGxsLnlhbWwKKworZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcx MTAtcGxsLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3Rh cmZpdmUsamg3MTEwLXBsbC55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MDAwMDAwLi44YWE4YzdiOGU0MmYKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtcGxsLnlhbWwKK0BAIC0w LDAgKzEsNDYgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgT1Ig QlNELTItQ2xhdXNlCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5v cmcvc2NoZW1hcy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtcGxsLnlhbWwjCisrJHNjaGVtYTogaHR0 cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0 YXJGaXZlIEpINzExMCBQTEwgQ2xvY2sgR2VuZXJhdG9yCisrCisrZGVzY3JpcHRpb246CisrICBU aGlzIFBMTCBhcmUgaGlnaCBzcGVlZCwgbG93IGppdHRlciBmcmVxdWVuY3kgc3ludGhlc2l6ZXJz IGluIEpINzExMC4KKysgIEVhY2ggUExMIGNsb2NrcyB3b3JrIGluIGludGVnZXIgbW9kZSBvciBm cmFjdGlvbiBtb2RlIGJ5IHNvbWUgZGl2aWRlcnMsCisrICBhbmQgdGhlIGNvbmZpZ3VyYXRpb24g cmVnaXN0ZXJzIGFuZCBkaXZpZGVycyBhcmUgc2V0IGluIHNldmVyYWwgc3lzY29uCisrICByZWdp c3RlcnMuIFNvIHBsbCBub2RlIHNob3VsZCBiZSBhIGNoaWxkIG9mIFNZUy1TWVNDT04gbm9kZS4K KysgIFRoZSBmb3JtdWxhIGZvciBjYWxjdWxhdGluZyBmcmVxdWVuY3kgaXMgdGhhdCwKKysgIEZ2 Y28gPSBGcmVmICogKE5JICsgTkYpIC8gTSAvIFExCisrCisrbWFpbnRhaW5lcnM6CisrICAtIFhp bmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CisrCisrcHJvcGVydGllczoKKysg IGNvbXBhdGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtcGxsCisrCisrICBjbG9j a3M6CisrICAgIG1heEl0ZW1zOiAxCisrICAgIGRlc2NyaXB0aW9uOiBNYWluIE9zY2lsbGF0b3Ig KDI0IE1IeikKKysKKysgICcjY2xvY2stY2VsbHMnOgorKyAgICBjb25zdDogMQorKyAgICBkZXNj cmlwdGlvbjoKKysgICAgICBTZWUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1j cmcuaD4gZm9yIHZhbGlkIGluZGljZXMuCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUK KysgIC0gY2xvY2tzCisrICAtICcjY2xvY2stY2VsbHMnCisrCisrYWRkaXRpb25hbFByb3BlcnRp ZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgcGxsLWNsb2NrLWNvbnRyb2xs ZXIgeworKyAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXBsbCI7CisrICAgICAg Y2xvY2tzID0gPCZvc2M+OworKyAgICAgICNjbG9jay1jZWxscyA9IDwxPjsKKysgICAgfTsKK2Rp ZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcu aCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCitpbmRl eCAwMTYyMjdjNjRhMjcuLmVjYjVmODBkNmYyMyAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvZHQtYmlu ZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oCisrKysgYi9pbmNsdWRlL2R0LWJpbmRp bmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1jcmcuaAorQEAgLTcsNiArNywxMiBAQAorICNpZm5k ZWYgX19EVF9CSU5ESU5HU19DTE9DS19TVEFSRklWRV9KSDcxMTBfQ1JHX0hfXworICNkZWZpbmUg X19EVF9CSU5ESU5HU19DTE9DS19TVEFSRklWRV9KSDcxMTBfQ1JHX0hfXworIAorKy8qIFBMTCBj bG9ja3MgKi8KKysjZGVmaW5lIEpINzExMF9DTEtfUExMMF9PVVQJCQkwCisrI2RlZmluZSBKSDcx MTBfQ0xLX1BMTDFfT1VUCQkJMQorKyNkZWZpbmUgSkg3MTEwX0NMS19QTEwyX09VVAkJCTIKKysj ZGVmaW5lIEpINzExMF9QTExDTEtfRU5ECQkJMworKworIC8qIFNZU0NSRyBjbG9ja3MgKi8KKyAj ZGVmaW5lIEpINzExMF9TWVNDTEtfQ1BVX1JPT1QJCQkwCisgI2RlZmluZSBKSDcxMTBfU1lTQ0xL X0NQVV9DT1JFCQkJMQorLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwMDktZHQtYmluZGluZ3Mtc29jLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1zeXNj b24tbW9kdWxlLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMDktZHQtYmluZGlu Z3Mtc29jLXN0YXJmaXZlLUFkZC1TdGFyRml2ZS1zeXNjb24tbW9kdWxlLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjk2ZjdmZGRlNzM3NGEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAwOS1kdC1iaW5kaW5ncy1zb2Mt c3RhcmZpdmUtQWRkLVN0YXJGaXZlLXN5c2Nvbi1tb2R1bGUucGF0Y2gKQEAgLTAsMCArMSw4NiBA QAorRnJvbSAzNzU2ZjZkOTJmOTk2ZDcwOWM3NjcyZGY2OWM5NDA1OGM2M2M5ODhhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBUdWUsIDEzIEp1biAyMDIzIDIwOjU4OjQ3ICswODAwCitTdWJqZWN0 OiBbUEFUQ0ggMDkvNzJdIGR0LWJpbmRpbmdzOiBzb2M6IHN0YXJmaXZlOiBBZGQgU3RhckZpdmUg c3lzY29uIG1vZHVsZQorCitBZGQgZG9jdW1lbnRhdGlvbiB0byBkZXNjcmliZSBTdGFyRml2ZSBT eXN0ZW0gQ29udHJvbGxlciBSZWdpc3RlcnMuCisKK0NvLWRldmVsb3BlZC1ieTogWGluZ3l1IFd1 IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8 eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIFFpdSA8 d2lsbGlhbS5xaXVAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9zb2Mvc3RhcmZpdmUvc3Rh cmZpdmUsamg3MTEwLXN5c2Nvbi55YW1sICB8IDYyICsrKysrKysrKysrKysrKysrKysKKyAxIGZp bGUgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc29jL3N0YXJmaXZlL3N0YXJmaXZlLGpoNzExMC1z eXNjb24ueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL3NvYy9zdGFyZml2ZS9zdGFyZml2ZSxqaDcxMTAtc3lzY29uLnlhbWwgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc29jL3N0YXJmaXZlL3N0YXJmaXZlLGpoNzExMC1zeXNj b24ueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uYTgxMTkw ZjhhNTRkCistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3Mvc29jL3N0YXJmaXZlL3N0YXJmaXZlLGpoNzExMC1zeXNjb24ueWFtbAorQEAgLTAsMCAr MSw2MiBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNs YXVzZSkKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hl bWFzL3NvYy9zdGFyZml2ZS9zdGFyZml2ZSxqaDcxMTAtc3lzY29uLnlhbWwjCisrJHNjaGVtYTog aHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6 IFN0YXJGaXZlIEpINzExMCBTb0Mgc3lzdGVtIGNvbnRyb2xsZXIKKysKKyttYWludGFpbmVyczoK KysgIC0gV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CisrCisrZGVz Y3JpcHRpb246IHwKKysgIFRoZSBTdGFyRml2ZSBKSDcxMTAgU29DIHN5c3RlbSBjb250cm9sbGVy IHByb3ZpZGVzIHJlZ2lzdGVyIGluZm9ybWF0aW9uIHN1Y2gKKysgIGFzIG9mZnNldCwgbWFzayBh bmQgc2hpZnQgdG8gY29uZmlndXJlIHJlbGF0ZWQgbW9kdWxlcyBzdWNoIGFzIE1NQyBhbmQgUENJ ZS4KKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgb25lT2Y6CisrICAgICAg LSBpdGVtczoKKysgICAgICAgICAgLSBjb25zdDogc3RhcmZpdmUsamg3MTEwLXN5cy1zeXNjb24K KysgICAgICAgICAgLSBjb25zdDogc3lzY29uCisrICAgICAgICAgIC0gY29uc3Q6IHNpbXBsZS1t ZmQKKysgICAgICAtIGl0ZW1zOgorKyAgICAgICAgICAtIGVudW06CisrICAgICAgICAgICAgICAt IHN0YXJmaXZlLGpoNzExMC1hb24tc3lzY29uCisrICAgICAgICAgICAgICAtIHN0YXJmaXZlLGpo NzExMC1zdGctc3lzY29uCisrICAgICAgICAgIC0gY29uc3Q6IHN5c2NvbgorKworKyAgcmVnOgor KyAgICBtYXhJdGVtczogMQorKworKyAgY2xvY2stY29udHJvbGxlcjoKKysgICAgJHJlZjogL3Nj aGVtYXMvY2xvY2svc3RhcmZpdmUsamg3MTEwLXBsbC55YW1sIworKyAgICB0eXBlOiBvYmplY3QK KysKKysgICIjcG93ZXItZG9tYWluLWNlbGxzIjoKKysgICAgY29uc3Q6IDEKKysKKytyZXF1aXJl ZDoKKysgIC0gY29tcGF0aWJsZQorKyAgLSByZWcKKysKKythbGxPZjoKKysgIC0gaWY6CisrICAg ICAgcHJvcGVydGllczoKKysgICAgICAgIGNvbXBhdGlibGU6CisrICAgICAgICAgIGNvbnRhaW5z OgorKyAgICAgICAgICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtYW9uLXN5c2NvbgorKyAgICB0 aGVuOgorKyAgICAgIHJlcXVpcmVkOgorKyAgICAgICAgLSAiI3Bvd2VyLWRvbWFpbi1jZWxscyIK KysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAor KyAgICBzeXNjb25AMTAyNDAwMDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxq aDcxMTAtc3RnLXN5c2NvbiIsICJzeXNjb24iOworKyAgICAgICAgcmVnID0gPDB4MTAyNDAwMDAg MHgxMDAwPjsKKysgICAgfTsKKysKKysuLi4KKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDEwLWR0LWJpbmRpbmdzLWNsb2NrLWpoNzExMC1zeXNj cmctQWRkLVBMTC1jbG9jay1pbnB1dHMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMv MDAxMC1kdC1iaW5kaW5ncy1jbG9jay1qaDcxMTAtc3lzY3JnLUFkZC1QTEwtY2xvY2staW5wdXRz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjQwZmZiMzU3 OGExNzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxMC1k dC1iaW5kaW5ncy1jbG9jay1qaDcxMTAtc3lzY3JnLUFkZC1QTEwtY2xvY2staW5wdXRzLnBhdGNo CkBAIC0wLDAgKzEsODkgQEAKK0Zyb20gNWUzYWRiMzgwYzZlYjhmOWJhMjE4NjIzYTlmNDdjZWIw ZDIyYzhiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhpbmd5dSBXdSA8eGluZ3l1 Lnd1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUdWUsIDEzIEp1biAyMDIzIDIwOjU4OjQ4ICsw ODAwCitTdWJqZWN0OiBbUEFUQ0ggMTAvNzJdIGR0LWJpbmRpbmdzOiBjbG9jazogamg3MTEwLXN5 c2NyZzogQWRkIFBMTCBjbG9jayBpbnB1dHMKKworQWRkIG9wdGlvbmFsIFBMTCBjbG9jayBpbnB1 dHMgZnJvbSBQTEwgY2xvY2sgZ2VuZXJhdG9yLgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3Ug PHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2Nsb2NrL3N0YXJmaXZlLGpo NzExMC1zeXNjcmcueWFtbCAgICAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKworIDEgZmls ZSBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55YW1sIGIv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3N0YXJmaXZlLGpoNzExMC1z eXNjcmcueWFtbAoraW5kZXggODQzNzNhZTMxNjQ0Li41NTM2ZTVmOWUyMGIgMTAwNjQ0CistLS0g YS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEw LXN5c2NyZy55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xv Y2svc3RhcmZpdmUsamg3MTEwLXN5c2NyZy55YW1sCitAQCAtMzksNiArMzksMzMgQEAgcHJvcGVy dGllczoKKyAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogRXh0ZXJuYWwgVERNIGNsb2NrCisgICAg ICAgICAgIC0gZGVzY3JpcHRpb246IEV4dGVybmFsIGF1ZGlvIG1hc3RlciBjbG9jaworIAorKyAg ICAgIC0gaXRlbXM6CisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1haW4gT3NjaWxsYXRvciAo MjQgTUh6KQorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBHTUFDMSBSTUlJIHJlZmVyZW5jZSBv ciBHTUFDMSBSR01JSSBSWAorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBJMlMg VFggYml0IGNsb2NrCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IEV4dGVybmFsIEkyUyBUWCBs ZWZ0L3JpZ2h0IGNoYW5uZWwgY2xvY2sKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogRXh0ZXJu YWwgSTJTIFJYIGJpdCBjbG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBJ MlMgUlggbGVmdC9yaWdodCBjaGFubmVsIGNsb2NrCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246 IEV4dGVybmFsIFRETSBjbG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBh dWRpbyBtYXN0ZXIgY2xvY2sKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogUExMMAorKyAgICAg ICAgICAtIGRlc2NyaXB0aW9uOiBQTEwxCisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBMTDIK KysKKysgICAgICAtIGl0ZW1zOgorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNYWluIE9zY2ls bGF0b3IgKDI0IE1IeikKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogR01BQzEgUk1JSSByZWZl cmVuY2UKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogR01BQzEgUkdNSUkgUlgKKysgICAgICAg ICAgLSBkZXNjcmlwdGlvbjogRXh0ZXJuYWwgSTJTIFRYIGJpdCBjbG9jaworKyAgICAgICAgICAt IGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBJMlMgVFggbGVmdC9yaWdodCBjaGFubmVsIGNsb2NrCisr ICAgICAgICAgIC0gZGVzY3JpcHRpb246IEV4dGVybmFsIEkyUyBSWCBiaXQgY2xvY2sKKysgICAg ICAgICAgLSBkZXNjcmlwdGlvbjogRXh0ZXJuYWwgSTJTIFJYIGxlZnQvcmlnaHQgY2hhbm5lbCBj bG9jaworKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBURE0gY2xvY2sKKysgICAg ICAgICAgLSBkZXNjcmlwdGlvbjogRXh0ZXJuYWwgYXVkaW8gbWFzdGVyIGNsb2NrCisrICAgICAg ICAgIC0gZGVzY3JpcHRpb246IFBMTDAKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogUExMMQor KyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQTEwyCisrCisgICBjbG9jay1uYW1lczoKKyAgICAg b25lT2Y6CisgICAgICAgLSBpdGVtczoKK0BAIC02NCw2ICs5MSwzNSBAQCBwcm9wZXJ0aWVzOgor ICAgICAgICAgICAtIGNvbnN0OiB0ZG1fZXh0CisgICAgICAgICAgIC0gY29uc3Q6IG1jbGtfZXh0 CisgCisrICAgICAgLSBpdGVtczoKKysgICAgICAgICAgLSBjb25zdDogb3NjCisrICAgICAgICAg IC0gZW51bToKKysgICAgICAgICAgICAgIC0gZ21hYzFfcm1paV9yZWZpbgorKyAgICAgICAgICAg ICAgLSBnbWFjMV9yZ21paV9yeGluCisrICAgICAgICAgIC0gY29uc3Q6IGkyc3R4X2JjbGtfZXh0 CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3R4X2xyY2tfZXh0CisrICAgICAgICAgIC0gY29uc3Q6 IGkyc3J4X2JjbGtfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3J4X2xyY2tfZXh0CisrICAg ICAgICAgIC0gY29uc3Q6IHRkbV9leHQKKysgICAgICAgICAgLSBjb25zdDogbWNsa19leHQKKysg ICAgICAgICAgLSBjb25zdDogcGxsMF9vdXQKKysgICAgICAgICAgLSBjb25zdDogcGxsMV9vdXQK KysgICAgICAgICAgLSBjb25zdDogcGxsMl9vdXQKKysKKysgICAgICAtIGl0ZW1zOgorKyAgICAg ICAgICAtIGNvbnN0OiBvc2MKKysgICAgICAgICAgLSBjb25zdDogZ21hYzFfcm1paV9yZWZpbgor KyAgICAgICAgICAtIGNvbnN0OiBnbWFjMV9yZ21paV9yeGluCisrICAgICAgICAgIC0gY29uc3Q6 IGkyc3R4X2JjbGtfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3R4X2xyY2tfZXh0CisrICAg ICAgICAgIC0gY29uc3Q6IGkyc3J4X2JjbGtfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IGkyc3J4 X2xyY2tfZXh0CisrICAgICAgICAgIC0gY29uc3Q6IHRkbV9leHQKKysgICAgICAgICAgLSBjb25z dDogbWNsa19leHQKKysgICAgICAgICAgLSBjb25zdDogcGxsMF9vdXQKKysgICAgICAgICAgLSBj b25zdDogcGxsMV9vdXQKKysgICAgICAgICAgLSBjb25zdDogcGxsMl9vdXQKKysKKyAgICcjY2xv Y2stY2VsbHMnOgorICAgICBjb25zdDogMQorICAgICBkZXNjcmlwdGlvbjoKKy0tIAorMi40MS4w CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDExLWNsay1zdGFyZml2 ZS1BZGQtU3RhckZpdmUtSkg3MTEwLVBMTC1jbG9jay1kcml2ZXIucGF0Y2ggYi9zcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDAxMS1jbGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1QTEwt Y2xvY2stZHJpdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAuLmU3YjNlMjM0NDFiZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3Bh dGNoZXMvMDAxMS1jbGstc3RhcmZpdmUtQWRkLVN0YXJGaXZlLUpINzExMC1QTEwtY2xvY2stZHJp dmVyLnBhdGNoCkBAIC0wLDAgKzEsNTY1IEBACitGcm9tIDQ3OTVjOTkzZjIzYmE2ZjY4NzhmNDE4 NjI2MDFhYWZiOWMxNzU2MzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYaW5neXUg V3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVHVlLCAxMyBKdW4gMjAyMyAy MDo1ODo0OSArMDgwMAorU3ViamVjdDogW1BBVENIIDExLzcyXSBjbGs6IHN0YXJmaXZlOiBBZGQg U3RhckZpdmUgSkg3MTEwIFBMTCBjbG9jayBkcml2ZXIKKworQWRkIGRyaXZlciBmb3IgdGhlIFN0 YXJGaXZlIEpINzExMCBQTEwgY2xvY2sgY29udHJvbGxlcgorYW5kIHRoZXkgd29yayBieSByZWFk aW5nIGFuZCBzZXR0aW5nIHN5c2NvbiByZWdpc3RlcnMuCisKK0NvLWRldmVsb3BlZC1ieTogRW1p bCBSZW5uZXIgQmVydGhpbmcgPGVtaWwucmVubmVyLmJlcnRoaW5nQGNhbm9uaWNhbC5jb20+CitT aWduZWQtb2ZmLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8ZW1pbC5yZW5uZXIuYmVydGhpbmdA Y2Fub25pY2FsLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJm aXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnICAgICAgICAg ICAgICAgICAgfCAgIDggKworIGRyaXZlcnMvY2xrL3N0YXJmaXZlL01ha2VmaWxlICAgICAgICAg ICAgICAgICB8ICAgMSArCisgLi4uL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXBs bC5jICAgIHwgNTA3ICsrKysrKysrKysrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgNTE2IGlu c2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xr LXN0YXJmaXZlLWpoNzExMC1wbGwuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3RhcmZp dmUvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL3N0YXJmaXZlL0tjb25maWcKK2luZGV4IGM1MDZkZTkz NDZjNS4uOWJhYWJkMmRmNTA2IDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2Nv bmZpZworKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworQEAgLTIxLDYgKzIxLDE0 IEBAIGNvbmZpZyBDTEtfU1RBUkZJVkVfSkg3MTAwX0FVRElPCisgCSAgU2F5IFkgb3IgTSBoZXJl IHRvIHN1cHBvcnQgdGhlIGF1ZGlvIGNsb2NrcyBvbiB0aGUgU3RhckZpdmUgSkg3MTAwCisgCSAg U29DLgorIAorK2NvbmZpZyBDTEtfU1RBUkZJVkVfSkg3MTEwX1BMTAorKwlib29sICJTdGFyRml2 ZSBKSDcxMTAgUExMIGNsb2NrIHN1cHBvcnQiCisrCWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8 fCBDT01QSUxFX1RFU1QKKysJZGVmYXVsdCBBUkNIX1NUQVJGSVZFCisrCWhlbHAKKysJICBTYXkg eWVzIGhlcmUgdG8gc3VwcG9ydCB0aGUgUExMIGNsb2NrIGNvbnRyb2xsZXIgb24gdGhlCisrCSAg U3RhckZpdmUgSkg3MTEwIFNvQy4KKysKKyBjb25maWcgQ0xLX1NUQVJGSVZFX0pINzExMF9TWVMK KyAJYm9vbCAiU3RhckZpdmUgSkg3MTEwIHN5c3RlbSBjbG9jayBzdXBwb3J0IgorIAlkZXBlbmRz IG9uIEFSQ0hfU1RBUkZJVkUgfHwgQ09NUElMRV9URVNUCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9NYWtlZmlsZQoraW5k ZXggODQxMzc3ZTQ1YmI2Li4xOTlhYzBmMzdhMmYgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9z dGFyZml2ZS9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUvTWFrZWZpbGUKK0BA IC00LDYgKzQsNyBAQCBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzFYMCkJKz0gY2xrLXN0 YXJmaXZlLWpoNzF4MC5vCisgb2JqLSQoQ09ORklHX0NMS19TVEFSRklWRV9KSDcxMDApCSs9IGNs ay1zdGFyZml2ZS1qaDcxMDAubworIG9iai0kKENPTkZJR19DTEtfU1RBUkZJVkVfSkg3MTAwX0FV RElPKQkrPSBjbGstc3RhcmZpdmUtamg3MTAwLWF1ZGlvLm8KKyAKKytvYmotJChDT05GSUdfQ0xL X1NUQVJGSVZFX0pINzExMF9QTEwpCSs9IGNsay1zdGFyZml2ZS1qaDcxMTAtcGxsLm8KKyBvYmot JChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9TWVMpCSs9IGNsay1zdGFyZml2ZS1qaDcxMTAt c3lzLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9BT04pCSs9IGNsay1zdGFy Zml2ZS1qaDcxMTAtYW9uLm8KKyBvYmotJChDT05GSUdfQ0xLX1NUQVJGSVZFX0pINzExMF9TVEcp CSs9IGNsay1zdGFyZml2ZS1qaDcxMTAtc3RnLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9z dGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXBsbC5jIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv Y2xrLXN0YXJmaXZlLWpoNzExMC1wbGwuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAwMDAwMC4uYjEwYzE0MmQ0NTZkCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2Ns ay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXBsbC5jCitAQCAtMCwwICsxLDUwNyBAQAor Ky8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBTdGFyRml2ZSBK SDcxMTAgUExMIENsb2NrIEdlbmVyYXRvciBEcml2ZXIKKysgKgorKyAqIENvcHlyaWdodCAoQykg MjAyMyBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqIENvcHlyaWdodCAoQykgMjAy MyBFbWlsIFJlbm5lciBCZXJ0aGluZyA8ZW1pbC5yZW5uZXIuYmVydGhpbmdAY2Fub25pY2FsLmNv bT4KKysgKgorKyAqIFRoaXMgZHJpdmVyIGlzIGFib3V0IHRvIHJlZ2lzdGVyIEpINzExMCBQTEwg Y2xvY2sgZ2VuZXJhdG9yIGFuZCBzdXBwb3J0IG9wcy4KKysgKiBUaGUgSkg3MTEwIGhhdmUgdGhy ZWUgUExMIGNsb2NrLCBQTEwwLCBQTEwxIGFuZCBQTEwyLgorKyAqIEVhY2ggUExMIGNsb2NrcyB3 b3JrIGluIGludGVnZXIgbW9kZSBvciBmcmFjdGlvbiBtb2RlIGJ5IHNvbWUgZGl2aWRlcnMsCisr ICogYW5kIHRoZSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBhbmQgZGl2aWRlcnMgYXJlIHNldCBp biBzZXZlcmFsIHN5c2NvbiByZWdpc3RlcnMuCisrICogVGhlIGZvcm11bGEgZm9yIGNhbGN1bGF0 aW5nIGZyZXF1ZW5jeSBpczoKKysgKiBGdmNvID0gRnJlZiAqIChOSSArIE5GKSAvIE0gLyBRMQor KyAqIEZyZWY6IE9TQyBzb3VyY2UgY2xvY2sgcmF0ZQorKyAqIE5JOiBpbnRlZ2VyIGZyZXF1ZW5j eSBkaXZpZGluZyByYXRpbyBvZiBmZWVkYmFjayBkaXZpZGVyLCBzZXQgYnkgZmJkaXZbMTE6MF0u CisrICogTkY6IGZyYWN0aW9uYWwgZnJlcXVlbmN5IGRpdmlkaW5nIHJhdGlvLCBzZXQgYnkgZnJh Y1syMzowXS4gTkYgPSBmcmFjWzIzOjBdIC8gMl4yNCA9IDAgfiAwLjk5OS4KKysgKiBNOiBmcmVx dWVuY3kgZGl2aWRpbmcgcmF0aW8gb2YgcHJlLWRpdmlkZXIsIHNldCBieSBwcmVkaXZbNTowXS4K KysgKiBRMTogZnJlcXVlbmN5IGRpdmlkaW5nIHJhdGlvIG9mIHBvc3QgZGl2aWRlciwgc2V0IGJ5 IDJecG9zdGRpdjFbMTowXSwgZWcuIDEsIDIsIDQgb3IgOC4KKysgKi8KKysKKysjaW5jbHVkZSA8 bGludXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKysjaW5jbHVk ZSA8bGludXgvZGVidWdmcy5oPgorKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKysjaW5jbHVk ZSA8bGludXgva2VybmVsLmg+CisrI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKysjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5o PgorKworKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9jbG9jay9zdGFyZml2ZSxqaDcxMTAtY3JnLmg+ CisrCisrLyogdGhpcyBkcml2ZXIgZXhwZWN0cyBhIDI0TUh6IGlucHV0IGZyZXF1ZW5jeSBmcm9t IHRoZSBvc2NpbGxhdG9yICovCisrI2RlZmluZSBKSDcxMTBfUExMX09TQ19SQVRFCQkyNDAwMDAw MFVMCisrCisrI2RlZmluZSBKSDcxMTBfUExMMF9QRF9PRkZTRVQJCTB4MTgKKysjZGVmaW5lIEpI NzExMF9QTEwwX0RBQ1BEX1NISUZUCQkyNAorKyNkZWZpbmUgSkg3MTEwX1BMTDBfREFDUERfTUFT SwkJQklUKDI0KQorKyNkZWZpbmUgSkg3MTEwX1BMTDBfRFNNUERfU0hJRlQJCTI1CisrI2RlZmlu ZSBKSDcxMTBfUExMMF9EU01QRF9NQVNLCQlCSVQoMjUpCisrI2RlZmluZSBKSDcxMTBfUExMMF9G QkRJVl9PRkZTRVQJMHgxYworKyNkZWZpbmUgSkg3MTEwX1BMTDBfRkJESVZfU0hJRlQJCTAKKysj ZGVmaW5lIEpINzExMF9QTEwwX0ZCRElWX01BU0sJCUdFTk1BU0soMTEsIDApCisrI2RlZmluZSBK SDcxMTBfUExMMF9GUkFDX09GRlNFVAkJMHgyMAorKyNkZWZpbmUgSkg3MTEwX1BMTDBfUFJFRElW X09GRlNFVAkweDI0CisrCisrI2RlZmluZSBKSDcxMTBfUExMMV9QRF9PRkZTRVQJCTB4MjQKKysj ZGVmaW5lIEpINzExMF9QTEwxX0RBQ1BEX1NISUZUCQkxNQorKyNkZWZpbmUgSkg3MTEwX1BMTDFf REFDUERfTUFTSwkJQklUKDE1KQorKyNkZWZpbmUgSkg3MTEwX1BMTDFfRFNNUERfU0hJRlQJCTE2 CisrI2RlZmluZSBKSDcxMTBfUExMMV9EU01QRF9NQVNLCQlCSVQoMTYpCisrI2RlZmluZSBKSDcx MTBfUExMMV9GQkRJVl9PRkZTRVQJMHgyNAorKyNkZWZpbmUgSkg3MTEwX1BMTDFfRkJESVZfU0hJ RlQJCTE3CisrI2RlZmluZSBKSDcxMTBfUExMMV9GQkRJVl9NQVNLCQlHRU5NQVNLKDI4LCAxNykK KysjZGVmaW5lIEpINzExMF9QTEwxX0ZSQUNfT0ZGU0VUCQkweDI4CisrI2RlZmluZSBKSDcxMTBf UExMMV9QUkVESVZfT0ZGU0VUCTB4MmMKKysKKysjZGVmaW5lIEpINzExMF9QTEwyX1BEX09GRlNF VAkJMHgyYworKyNkZWZpbmUgSkg3MTEwX1BMTDJfREFDUERfU0hJRlQJCTE1CisrI2RlZmluZSBK SDcxMTBfUExMMl9EQUNQRF9NQVNLCQlCSVQoMTUpCisrI2RlZmluZSBKSDcxMTBfUExMMl9EU01Q RF9TSElGVAkJMTYKKysjZGVmaW5lIEpINzExMF9QTEwyX0RTTVBEX01BU0sJCUJJVCgxNikKKysj ZGVmaW5lIEpINzExMF9QTEwyX0ZCRElWX09GRlNFVAkweDJjCisrI2RlZmluZSBKSDcxMTBfUExM Ml9GQkRJVl9TSElGVAkJMTcKKysjZGVmaW5lIEpINzExMF9QTEwyX0ZCRElWX01BU0sJCUdFTk1B U0soMjgsIDE3KQorKyNkZWZpbmUgSkg3MTEwX1BMTDJfRlJBQ19PRkZTRVQJCTB4MzAKKysjZGVm aW5lIEpINzExMF9QTEwyX1BSRURJVl9PRkZTRVQJMHgzNAorKworKyNkZWZpbmUgSkg3MTEwX1BM TF9GUkFDX1NISUZUCQkwCisrI2RlZmluZSBKSDcxMTBfUExMX0ZSQUNfTUFTSwkJR0VOTUFTSygy MywgMCkKKysjZGVmaW5lIEpINzExMF9QTExfUE9TVERJVjFfU0hJRlQJMjgKKysjZGVmaW5lIEpI NzExMF9QTExfUE9TVERJVjFfTUFTSwlHRU5NQVNLKDI5LCAyOCkKKysjZGVmaW5lIEpINzExMF9Q TExfUFJFRElWX1NISUZUCQkwCisrI2RlZmluZSBKSDcxMTBfUExMX1BSRURJVl9NQVNLCQlHRU5N QVNLKDUsIDApCisrCisrZW51bSBqaDcxMTBfcGxsX21vZGUgeworKwlKSDcxMTBfUExMX01PREVf RlJBQ1RJT04sCisrCUpINzExMF9QTExfTU9ERV9JTlRFR0VSLAorK307CisrCisrc3RydWN0IGpo NzExMF9wbGxfcHJlc2V0IHsKKysJdW5zaWduZWQgbG9uZyBmcmVxOworKwl1MzIgZnJhYzsJCS8q IGZyYWMgdmFsdWUgc2hvdWxkIGJlIGRlY2ltYWxzIG11bHRpcGxpZWQgYnkgMl4yNCAqLworKwl1 bnNpZ25lZCBmYmRpdiAgICA6IDEyOwkvKiBmYmRpdiB2YWx1ZSBzaG91bGQgYmUgOCB0byA0MDk1 ICovCisrCXVuc2lnbmVkIHByZWRpdiAgIDogIDY7CisrCXVuc2lnbmVkIHBvc3RkaXYxIDogIDI7 CisrCXVuc2lnbmVkIG1vZGUgICAgIDogIDE7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX3BsbF9p bmZvIHsKKysJY2hhciAqbmFtZTsKKysJY29uc3Qgc3RydWN0IGpoNzExMF9wbGxfcHJlc2V0ICpw cmVzZXRzOworKwl1bnNpZ25lZCBpbnQgbnByZXNldHM7CisrCXN0cnVjdCB7CisrCQl1bnNpZ25l ZCBpbnQgcGQ7CisrCQl1bnNpZ25lZCBpbnQgZmJkaXY7CisrCQl1bnNpZ25lZCBpbnQgZnJhYzsK KysJCXVuc2lnbmVkIGludCBwcmVkaXY7CisrCX0gb2Zmc2V0czsKKysJc3RydWN0IHsKKysJCXUz MiBkYWNwZDsKKysJCXUzMiBkc21wZDsKKysJCXUzMiBmYmRpdjsKKysJfSBtYXNrczsKKysJc3Ry dWN0IHsKKysJCWNoYXIgZGFjcGQ7CisrCQljaGFyIGRzbXBkOworKwkJY2hhciBmYmRpdjsKKysJ fSBzaGlmdHM7CisrfTsKKysKKysjZGVmaW5lIF9KSDcxMTBfUExMKF9pZHgsIF9uYW1lLCBfcHJl c2V0cykJCQkJXAorKwlbX2lkeF0gPSB7CQkJCQkJCVwKKysJCS5uYW1lID0gX25hbWUsCQkJCQkJ XAorKwkJLnByZXNldHMgPSBfcHJlc2V0cywJCQkJCVwKKysJCS5ucHJlc2V0cyA9IEFSUkFZX1NJ WkUoX3ByZXNldHMpLAkJCVwKKysJCS5vZmZzZXRzID0gewkJCQkJCVwKKysJCQkucGQgPSBKSDcx MTBfUExMIyNfaWR4IyNfUERfT0ZGU0VULAkJXAorKwkJCS5mYmRpdiA9IEpINzExMF9QTEwjI19p ZHgjI19GQkRJVl9PRkZTRVQsCVwKKysJCQkuZnJhYyA9IEpINzExMF9QTEwjI19pZHgjI19GUkFD X09GRlNFVCwJCVwKKysJCQkucHJlZGl2ID0gSkg3MTEwX1BMTCMjX2lkeCMjX1BSRURJVl9PRkZT RVQsCVwKKysJCX0sCQkJCQkJCVwKKysJCS5tYXNrcyA9IHsJCQkJCQlcCisrCQkJLmRhY3BkID0g Skg3MTEwX1BMTCMjX2lkeCMjX0RBQ1BEX01BU0ssCQlcCisrCQkJLmRzbXBkID0gSkg3MTEwX1BM TCMjX2lkeCMjX0RTTVBEX01BU0ssCQlcCisrCQkJLmZiZGl2ID0gSkg3MTEwX1BMTCMjX2lkeCMj X0ZCRElWX01BU0ssCQlcCisrCQl9LAkJCQkJCQlcCisrCQkuc2hpZnRzID0gewkJCQkJCVwKKysJ CQkuZGFjcGQgPSBKSDcxMTBfUExMIyNfaWR4IyNfREFDUERfU0hJRlQsCVwKKysJCQkuZHNtcGQg PSBKSDcxMTBfUExMIyNfaWR4IyNfRFNNUERfU0hJRlQsCVwKKysJCQkuZmJkaXYgPSBKSDcxMTBf UExMIyNfaWR4IyNfRkJESVZfU0hJRlQsCVwKKysJCX0sCQkJCQkJCVwKKysJfQorKyNkZWZpbmUg Skg3MTEwX1BMTChpZHgsIG5hbWUsIHByZXNldHMpIF9KSDcxMTBfUExMKGlkeCwgbmFtZSwgcHJl c2V0cykKKysKKytzdHJ1Y3Qgamg3MTEwX3BsbF9kYXRhIHsKKysJc3RydWN0IGNsa19odyBodzsK KysJdW5zaWduZWQgaW50IGlkeDsKKyt9OworKworK3N0cnVjdCBqaDcxMTBfcGxsX3ByaXYgewor KwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisrCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKKysJc3RydWN0 IGpoNzExMF9wbGxfZGF0YSBwbGxbSkg3MTEwX1BMTENMS19FTkRdOworK307CisrCisrc3RydWN0 IGpoNzExMF9wbGxfcmVndmFscyB7CisrCXUzMiBkYWNwZDsKKysJdTMyIGRzbXBkOworKwl1MzIg ZmJkaXY7CisrCXUzMiBmcmFjOworKwl1MzIgcG9zdGRpdjE7CisrCXUzMiBwcmVkaXY7CisrfTsK KysKKysvKgorKyAqIEJlY2F1c2UgdGhlIHBsbCBmcmVxdWVuY3kgaXMgcmVsYXRpdmVseSBmaXhl ZCwKKysgKiBpdCBjYW5ub3QgYmUgc2V0IGFyYml0cmFyaWx5LCBzbyBpdCBuZWVkcyBhIHNwZWNp ZmljIGNvbmZpZ3VyYXRpb24uCisrICogUExMMCBmcmVxdWVuY3kgc2hvdWxkIGJlIG11bHRpcGxl IG9mIDEyNU1IeiAoVVNCIGZyZXF1ZW5jeSkuCisrICovCisrc3RhdGljIGNvbnN0IHN0cnVjdCBq aDcxMTBfcGxsX3ByZXNldCBqaDcxMTBfcGxsMF9wcmVzZXRzW10gPSB7CisrCXsKKysJCS5mcmVx ID0gMzc1MDAwMDAwLAorKwkJLmZiZGl2ID0gMTI1LAorKwkJLnByZWRpdiA9IDgsCisrCQkucG9z dGRpdjEgPSAwLAorKwkJLm1vZGUgPSBKSDcxMTBfUExMX01PREVfSU5URUdFUiwKKysJfSwgewor KwkJLmZyZXEgPSA1MDAwMDAwMDAsCisrCQkuZmJkaXYgPSAxMjUsCisrCQkucHJlZGl2ID0gNiwK KysJCS5wb3N0ZGl2MSA9IDAsCisrCQkubW9kZSA9IEpINzExMF9QTExfTU9ERV9JTlRFR0VSLAor Kwl9LCB7CisrCQkuZnJlcSA9IDYyNTAwMDAwMCwKKysJCS5mYmRpdiA9IDYyNSwKKysJCS5wcmVk aXYgPSAyNCwKKysJCS5wb3N0ZGl2MSA9IDAsCisrCQkubW9kZSA9IEpINzExMF9QTExfTU9ERV9J TlRFR0VSLAorKwl9LCB7CisrCQkuZnJlcSA9IDc1MDAwMDAwMCwKKysJCS5mYmRpdiA9IDEyNSwK KysJCS5wcmVkaXYgPSA0LAorKwkJLnBvc3RkaXYxID0gMCwKKysJCS5tb2RlID0gSkg3MTEwX1BM TF9NT0RFX0lOVEVHRVIsCisrCX0sIHsKKysJCS5mcmVxID0gODc1MDAwMDAwLAorKwkJLmZiZGl2 ID0gODc1LAorKwkJLnByZWRpdiA9IDI0LAorKwkJLnBvc3RkaXYxID0gMCwKKysJCS5tb2RlID0g Skg3MTEwX1BMTF9NT0RFX0lOVEVHRVIsCisrCX0sIHsKKysJCS5mcmVxID0gMTAwMDAwMDAwMCwK KysJCS5mYmRpdiA9IDEyNSwKKysJCS5wcmVkaXYgPSAzLAorKwkJLnBvc3RkaXYxID0gMCwKKysJ CS5tb2RlID0gSkg3MTEwX1BMTF9NT0RFX0lOVEVHRVIsCisrCX0sIHsKKysJCS5mcmVxID0gMTI1 MDAwMDAwMCwKKysJCS5mYmRpdiA9IDYyNSwKKysJCS5wcmVkaXYgPSAxMiwKKysJCS5wb3N0ZGl2 MSA9IDAsCisrCQkubW9kZSA9IEpINzExMF9QTExfTU9ERV9JTlRFR0VSLAorKwl9LCB7CisrCQku ZnJlcSA9IDEzNzUwMDAwMDAsCisrCQkuZmJkaXYgPSAxMzc1LAorKwkJLnByZWRpdiA9IDI0LAor KwkJLnBvc3RkaXYxID0gMCwKKysJCS5tb2RlID0gSkg3MTEwX1BMTF9NT0RFX0lOVEVHRVIsCisr CX0sIHsKKysJCS5mcmVxID0gMTUwMDAwMDAwMCwKKysJCS5mYmRpdiA9IDEyNSwKKysJCS5wcmVk aXYgPSAyLAorKwkJLnBvc3RkaXYxID0gMCwKKysJCS5tb2RlID0gSkg3MTEwX1BMTF9NT0RFX0lO VEVHRVIsCisrCX0sCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9wbGxfcHJl c2V0IGpoNzExMF9wbGwxX3ByZXNldHNbXSA9IHsKKysJeworKwkJLmZyZXEgPSAxMDY2MDAwMDAw LAorKwkJLmZiZGl2ID0gNTMzLAorKwkJLnByZWRpdiA9IDEyLAorKwkJLnBvc3RkaXYxID0gMCwK KysJCS5tb2RlID0gSkg3MTEwX1BMTF9NT0RFX0lOVEVHRVIsCisrCX0sIHsKKysJCS5mcmVxID0g MTIwMDAwMDAwMCwKKysJCS5mYmRpdiA9IDUwLAorKwkJLnByZWRpdiA9IDEsCisrCQkucG9zdGRp djEgPSAwLAorKwkJLm1vZGUgPSBKSDcxMTBfUExMX01PREVfSU5URUdFUiwKKysJfSwgeworKwkJ LmZyZXEgPSAxNDAwMDAwMDAwLAorKwkJLmZiZGl2ID0gMzUwLAorKwkJLnByZWRpdiA9IDYsCisr CQkucG9zdGRpdjEgPSAwLAorKwkJLm1vZGUgPSBKSDcxMTBfUExMX01PREVfSU5URUdFUiwKKysJ fSwgeworKwkJLmZyZXEgPSAxNjAwMDAwMDAwLAorKwkJLmZiZGl2ID0gMjAwLAorKwkJLnByZWRp diA9IDMsCisrCQkucG9zdGRpdjEgPSAwLAorKwkJLm1vZGUgPSBKSDcxMTBfUExMX01PREVfSU5U RUdFUiwKKysJfSwKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MTEwX3BsbF9wcmVz ZXQgamg3MTEwX3BsbDJfcHJlc2V0c1tdID0geworKwl7CisrCQkuZnJlcSA9IDExODgwMDAwMDAs CisrCQkuZmJkaXYgPSA5OSwKKysJCS5wcmVkaXYgPSAyLAorKwkJLnBvc3RkaXYxID0gMCwKKysJ CS5tb2RlID0gSkg3MTEwX1BMTF9NT0RFX0lOVEVHRVIsCisrCX0sIHsKKysJCS5mcmVxID0gMTIy ODgwMDAwMCwKKysJCS5mYmRpdiA9IDI1NiwKKysJCS5wcmVkaXYgPSA1LAorKwkJLnBvc3RkaXYx ID0gMCwKKysJCS5tb2RlID0gSkg3MTEwX1BMTF9NT0RFX0lOVEVHRVIsCisrCX0sCisrfTsKKysK KytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9wbGxfaW5mbyBqaDcxMTBfcGxsc1tKSDcxMTBf UExMQ0xLX0VORF0gPSB7CisrCUpINzExMF9QTEwoSkg3MTEwX0NMS19QTEwwX09VVCwgInBsbDBf b3V0Iiwgamg3MTEwX3BsbDBfcHJlc2V0cyksCisrCUpINzExMF9QTEwoSkg3MTEwX0NMS19QTEwx X09VVCwgInBsbDFfb3V0Iiwgamg3MTEwX3BsbDFfcHJlc2V0cyksCisrCUpINzExMF9QTEwoSkg3 MTEwX0NMS19QTEwyX09VVCwgInBsbDJfb3V0Iiwgamg3MTEwX3BsbDJfcHJlc2V0cyksCisrfTsK KysKKytzdGF0aWMgc3RydWN0IGpoNzExMF9wbGxfZGF0YSAqamg3MTEwX3BsbF9kYXRhX2Zyb20o c3RydWN0IGNsa19odyAqaHcpCisreworKwlyZXR1cm4gY29udGFpbmVyX29mKGh3LCBzdHJ1Y3Qg amg3MTEwX3BsbF9kYXRhLCBodyk7CisrfQorKworK3N0YXRpYyBzdHJ1Y3Qgamg3MTEwX3BsbF9w cml2ICpqaDcxMTBfcGxsX3ByaXZfZnJvbShzdHJ1Y3Qgamg3MTEwX3BsbF9kYXRhICpwbGwpCisr eworKwlyZXR1cm4gY29udGFpbmVyX29mKHBsbCwgc3RydWN0IGpoNzExMF9wbGxfcHJpdiwgcGxs W3BsbC0+aWR4XSk7CisrfQorKworK3N0YXRpYyB2b2lkIGpoNzExMF9wbGxfcmVndmFsc19nZXQo c3RydWN0IHJlZ21hcCAqcmVnbWFwLAorKwkJCQkgICBjb25zdCBzdHJ1Y3Qgamg3MTEwX3BsbF9p bmZvICppbmZvLAorKwkJCQkgICBzdHJ1Y3Qgamg3MTEwX3BsbF9yZWd2YWxzICpyZXQpCisrewor Kwl1MzIgdmFsOworKworKwlyZWdtYXBfcmVhZChyZWdtYXAsIGluZm8tPm9mZnNldHMucGQsICZ2 YWwpOworKwlyZXQtPmRhY3BkID0gKHZhbCAmIGluZm8tPm1hc2tzLmRhY3BkKSA+PiBpbmZvLT5z aGlmdHMuZGFjcGQ7CisrCXJldC0+ZHNtcGQgPSAodmFsICYgaW5mby0+bWFza3MuZHNtcGQpID4+ IGluZm8tPnNoaWZ0cy5kc21wZDsKKysKKysJcmVnbWFwX3JlYWQocmVnbWFwLCBpbmZvLT5vZmZz ZXRzLmZiZGl2LCAmdmFsKTsKKysJcmV0LT5mYmRpdiA9ICh2YWwgJiBpbmZvLT5tYXNrcy5mYmRp dikgPj4gaW5mby0+c2hpZnRzLmZiZGl2OworKworKwlyZWdtYXBfcmVhZChyZWdtYXAsIGluZm8t Pm9mZnNldHMuZnJhYywgJnZhbCk7CisrCXJldC0+ZnJhYyA9ICh2YWwgJiBKSDcxMTBfUExMX0ZS QUNfTUFTSykgPj4gSkg3MTEwX1BMTF9GUkFDX1NISUZUOworKwlyZXQtPnBvc3RkaXYxID0gKHZh bCAmIEpINzExMF9QTExfUE9TVERJVjFfTUFTSykgPj4gSkg3MTEwX1BMTF9QT1NURElWMV9TSElG VDsKKysKKysJcmVnbWFwX3JlYWQocmVnbWFwLCBpbmZvLT5vZmZzZXRzLnByZWRpdiwgJnZhbCk7 CisrCXJldC0+cHJlZGl2ID0gKHZhbCAmIEpINzExMF9QTExfUFJFRElWX01BU0spID4+IEpINzEx MF9QTExfUFJFRElWX1NISUZUOworK30KKysKKytzdGF0aWMgdW5zaWduZWQgbG9uZyBqaDcxMTBf cGxsX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHBhcmVudF9y YXRlKQorK3sKKysJc3RydWN0IGpoNzExMF9wbGxfZGF0YSAqcGxsID0gamg3MTEwX3BsbF9kYXRh X2Zyb20oaHcpOworKwlzdHJ1Y3Qgamg3MTEwX3BsbF9wcml2ICpwcml2ID0gamg3MTEwX3BsbF9w cml2X2Zyb20ocGxsKTsKKysJc3RydWN0IGpoNzExMF9wbGxfcmVndmFscyB2YWw7CisrCXVuc2ln bmVkIGxvbmcgcmF0ZTsKKysKKysJamg3MTEwX3BsbF9yZWd2YWxzX2dldChwcml2LT5yZWdtYXAs ICZqaDcxMTBfcGxsc1twbGwtPmlkeF0sICZ2YWwpOworKworKwkvKgorKwkgKiBkYWNwZCA9IGRz bXBkID0gMDogZnJhY3Rpb24gbW9kZQorKwkgKiBkYWNwZCA9IGRzbXBkID0gMTogaW50ZWdlciBt b2RlLCBmcmFjIHZhbHVlIGlnbm9yZWQKKysJICoKKysJICogcmF0ZSA9IHBhcmVudCAqIChmYmRp diArIGZyYWMvMl4yNCkgLyBwcmVkaXYgLyAyXnBvc3RkaXYxCisrCSAqICAgICAgPSAocGFyZW50 ICogZmJkaXYgKyBwYXJlbnQgKiBmcmFjIC8gMl4yNCkgLyAocHJlZGl2ICogMl5wb3N0ZGl2MSkK KysJICovCisrCWlmICh2YWwuZGFjcGQgPT0gMCAmJiB2YWwuZHNtcGQgPT0gMCkKKysJCXJhdGUg PSBwYXJlbnRfcmF0ZSAqIHZhbC5mcmFjIC8gKDFVTCA8PCAyNCk7CisrCWVsc2UgaWYgKHZhbC5k YWNwZCA9PSAxICYmIHZhbC5kc21wZCA9PSAxKQorKwkJcmF0ZSA9IDA7CisrCWVsc2UKKysJCXJl dHVybiAwOworKworKwlyYXRlICs9IHBhcmVudF9yYXRlICogdmFsLmZiZGl2OworKwlyYXRlIC89 IHZhbC5wcmVkaXYgPDwgdmFsLnBvc3RkaXYxOworKworKwlyZXR1cm4gcmF0ZTsKKyt9CisrCisr c3RhdGljIGludCBqaDcxMTBfcGxsX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCBz dHJ1Y3QgY2xrX3JhdGVfcmVxdWVzdCAqcmVxKQorK3sKKysJc3RydWN0IGpoNzExMF9wbGxfZGF0 YSAqcGxsID0gamg3MTEwX3BsbF9kYXRhX2Zyb20oaHcpOworKwljb25zdCBzdHJ1Y3Qgamg3MTEw X3BsbF9pbmZvICppbmZvID0gJmpoNzExMF9wbGxzW3BsbC0+aWR4XTsKKysJY29uc3Qgc3RydWN0 IGpoNzExMF9wbGxfcHJlc2V0ICpzZWxlY3RlZCA9ICZpbmZvLT5wcmVzZXRzWzBdOworKwl1bnNp Z25lZCBpbnQgaWR4OworKworKwkvKiBpZiB0aGUgcGFyZW50IHJhdGUgZG9lc24ndCBtYXRjaCBv dXIgZXhwZWN0YXRpb25zIHRoZSBwcmVzZXRzIHdvbid0IHdvcmsgKi8KKysJaWYgKHJlcS0+YmVz dF9wYXJlbnRfcmF0ZSAhPSBKSDcxMTBfUExMX09TQ19SQVRFKSB7CisrCQlyZXEtPnJhdGUgPSBq aDcxMTBfcGxsX3JlY2FsY19yYXRlKGh3LCByZXEtPmJlc3RfcGFyZW50X3JhdGUpOworKwkJcmV0 dXJuIDA7CisrCX0KKysKKysJLyogZmluZCBoaWdoZXN0IHJhdGUgbG93ZXIgb3IgZXF1YWwgdG8g dGhlIHJlcXVlc3RlZCByYXRlICovCisrCWZvciAoaWR4ID0gMTsgaWR4IDwgaW5mby0+bnByZXNl dHM7IGlkeCsrKSB7CisrCQljb25zdCBzdHJ1Y3Qgamg3MTEwX3BsbF9wcmVzZXQgKnZhbCA9ICZp bmZvLT5wcmVzZXRzW2lkeF07CisrCisrCQlpZiAocmVxLT5yYXRlIDwgdmFsLT5mcmVxKQorKwkJ CWJyZWFrOworKworKwkJc2VsZWN0ZWQgPSB2YWw7CisrCX0KKysKKysJcmVxLT5yYXRlID0gc2Vs ZWN0ZWQtPmZyZXE7CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wbGxf c2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKKysJCQkgICAg ICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfcGxsX2Rh dGEgKnBsbCA9IGpoNzExMF9wbGxfZGF0YV9mcm9tKGh3KTsKKysJc3RydWN0IGpoNzExMF9wbGxf cHJpdiAqcHJpdiA9IGpoNzExMF9wbGxfcHJpdl9mcm9tKHBsbCk7CisrCWNvbnN0IHN0cnVjdCBq aDcxMTBfcGxsX2luZm8gKmluZm8gPSAmamg3MTEwX3BsbHNbcGxsLT5pZHhdOworKwljb25zdCBz dHJ1Y3Qgamg3MTEwX3BsbF9wcmVzZXQgKnZhbDsKKysJdW5zaWduZWQgaW50IGlkeDsKKysKKysJ LyogaWYgdGhlIHBhcmVudCByYXRlIGRvZXNuJ3QgbWF0Y2ggb3VyIGV4cGVjdGF0aW9ucyB0aGUg cHJlc2V0cyB3b24ndCB3b3JrICovCisrCWlmIChwYXJlbnRfcmF0ZSAhPSBKSDcxMTBfUExMX09T Q19SQVRFKQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCWZvciAoaWR4ID0gMCwgdmFsID0gJmlu Zm8tPnByZXNldHNbMF07IGlkeCA8IGluZm8tPm5wcmVzZXRzOyBpZHgrKywgdmFsKyspIHsKKysJ CWlmICh2YWwtPmZyZXEgPT0gcmF0ZSkKKysJCQlnb3RvIGZvdW5kOworKwl9CisrCXJldHVybiAt RUlOVkFMOworKworK2ZvdW5kOgorKwlpZiAodmFsLT5tb2RlID09IEpINzExMF9QTExfTU9ERV9G UkFDVElPTikKKysJCXJlZ21hcF91cGRhdGVfYml0cyhwcml2LT5yZWdtYXAsIGluZm8tPm9mZnNl dHMuZnJhYywgSkg3MTEwX1BMTF9GUkFDX01BU0ssCisrCQkJCSAgIHZhbC0+ZnJhYyA8PCBKSDcx MTBfUExMX0ZSQUNfU0hJRlQpOworKworKwlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFw LCBpbmZvLT5vZmZzZXRzLnBkLCBpbmZvLT5tYXNrcy5kYWNwZCwKKysJCQkgICAodTMyKXZhbC0+ bW9kZSA8PCBpbmZvLT5zaGlmdHMuZGFjcGQpOworKwlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+ cmVnbWFwLCBpbmZvLT5vZmZzZXRzLnBkLCBpbmZvLT5tYXNrcy5kc21wZCwKKysJCQkgICAodTMy KXZhbC0+bW9kZSA8PCBpbmZvLT5zaGlmdHMuZHNtcGQpOworKwlyZWdtYXBfdXBkYXRlX2JpdHMo cHJpdi0+cmVnbWFwLCBpbmZvLT5vZmZzZXRzLnByZWRpdiwgSkg3MTEwX1BMTF9QUkVESVZfTUFT SywKKysJCQkgICAodTMyKXZhbC0+cHJlZGl2IDw8IEpINzExMF9QTExfUFJFRElWX1NISUZUKTsK KysJcmVnbWFwX3VwZGF0ZV9iaXRzKHByaXYtPnJlZ21hcCwgaW5mby0+b2Zmc2V0cy5mYmRpdiwg aW5mby0+bWFza3MuZmJkaXYsCisrCQkJICAgdmFsLT5mYmRpdiA8PCBpbmZvLT5zaGlmdHMuZmJk aXYpOworKwlyZWdtYXBfdXBkYXRlX2JpdHMocHJpdi0+cmVnbWFwLCBpbmZvLT5vZmZzZXRzLmZy YWMsIEpINzExMF9QTExfUE9TVERJVjFfTUFTSywKKysJCQkgICAodTMyKXZhbC0+cG9zdGRpdjEg PDwgSkg3MTEwX1BMTF9QT1NURElWMV9TSElGVCk7CisrCisrCXJldHVybiAwOworK30KKysKKysj aWZkZWYgQ09ORklHX0RFQlVHX0ZTCisrc3RhdGljIGludCBqaDcxMTBfcGxsX3JlZ2lzdGVyc19y ZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKQorK3sKKysJc3RydWN0IGpoNzEx MF9wbGxfZGF0YSAqcGxsID0gcy0+cHJpdmF0ZTsKKysJc3RydWN0IGpoNzExMF9wbGxfcHJpdiAq cHJpdiA9IGpoNzExMF9wbGxfcHJpdl9mcm9tKHBsbCk7CisrCXN0cnVjdCBqaDcxMTBfcGxsX3Jl Z3ZhbHMgdmFsOworKworKwlqaDcxMTBfcGxsX3JlZ3ZhbHNfZ2V0KHByaXYtPnJlZ21hcCwgJmpo NzExMF9wbGxzW3BsbC0+aWR4XSwgJnZhbCk7CisrCisrCXNlcV9wcmludGYocywgImZiZGl2PSV1 XG4iCisrCQkgICAgICAiZnJhYz0ldVxuIgorKwkJICAgICAgInByZWRpdj0ldVxuIgorKwkJICAg ICAgInBvc3RkaXYxPSV1XG4iCisrCQkgICAgICAiZGFjcGQ9JXVcbiIKKysJCSAgICAgICJkc21w ZD0ldVxuIiwKKysJCSAgICAgIHZhbC5mYmRpdiwgdmFsLmZyYWMsIHZhbC5wcmVkaXYsIHZhbC5w b3N0ZGl2MSwKKysJCSAgICAgIHZhbC5kYWNwZCwgdmFsLmRzbXBkKTsKKysKKysJcmV0dXJuIDA7 CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3BsbF9yZWdpc3RlcnNfb3BlbihzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZikKKyt7CisrCXJldHVybiBzaW5nbGVfb3BlbihmLCBq aDcxMTBfcGxsX3JlZ2lzdGVyc19yZWFkLCBpbm9kZS0+aV9wcml2YXRlKTsKKyt9CisrCisrc3Rh dGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgamg3MTEwX3BsbF9yZWdpc3RlcnNfb3Bz ID0geworKwkub3duZXIgPSBUSElTX01PRFVMRSwKKysJLm9wZW4gPSBqaDcxMTBfcGxsX3JlZ2lz dGVyc19vcGVuLAorKwkucmVsZWFzZSA9IHNpbmdsZV9yZWxlYXNlLAorKwkucmVhZCA9IHNlcV9y ZWFkLAorKwkubGxzZWVrID0gc2VxX2xzZWVrCisrfTsKKysKKytzdGF0aWMgdm9pZCBqaDcxMTBf cGxsX2RlYnVnX2luaXQoc3RydWN0IGNsa19odyAqaHcsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkK Kyt7CisrCXN0cnVjdCBqaDcxMTBfcGxsX2RhdGEgKnBsbCA9IGpoNzExMF9wbGxfZGF0YV9mcm9t KGh3KTsKKysKKysJZGVidWdmc19jcmVhdGVfZmlsZSgicmVnaXN0ZXJzIiwgMDQwMCwgZGVudHJ5 LCBwbGwsCisrCQkJICAgICZqaDcxMTBfcGxsX3JlZ2lzdGVyc19vcHMpOworK30KKysjZWxzZQor KyNkZWZpbmUgamg3MTEwX3BsbF9kZWJ1Z19pbml0IE5VTEwKKysjZW5kaWYKKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IGNsa19vcHMgamg3MTEwX3BsbF9vcHMgPSB7CisrCS5yZWNhbGNfcmF0ZSA9 IGpoNzExMF9wbGxfcmVjYWxjX3JhdGUsCisrCS5kZXRlcm1pbmVfcmF0ZSA9IGpoNzExMF9wbGxf ZGV0ZXJtaW5lX3JhdGUsCisrCS5zZXRfcmF0ZSA9IGpoNzExMF9wbGxfc2V0X3JhdGUsCisrCS5k ZWJ1Z19pbml0ID0gamg3MTEwX3BsbF9kZWJ1Z19pbml0LAorK307CisrCisrc3RhdGljIHN0cnVj dCBjbGtfaHcgKmpoNzExMF9wbGxfZ2V0KHN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMs IHZvaWQgKmRhdGEpCisreworKwlzdHJ1Y3Qgamg3MTEwX3BsbF9wcml2ICpwcml2ID0gZGF0YTsK KysJdW5zaWduZWQgaW50IGlkeCA9IGNsa3NwZWMtPmFyZ3NbMF07CisrCisrCWlmIChpZHggPCBK SDcxMTBfUExMQ0xLX0VORCkKKysJCXJldHVybiAmcHJpdi0+cGxsW2lkeF0uaHc7CisrCisrCXJl dHVybiBFUlJfUFRSKC1FSU5WQUwpOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wbGxfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBqaDcxMTBfcGxs X3ByaXYgKnByaXY7CisrCXVuc2lnbmVkIGludCBpZHg7CisrCWludCByZXQ7CisrCisrCXByaXYg PSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7Cisr CWlmICghcHJpdikKKysJCXJldHVybiAtRU5PTUVNOworKworKwlwcml2LT5kZXYgPSAmcGRldi0+ ZGV2OworKwlwcml2LT5yZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAocHJpdi0+ZGV2LT5v Zl9ub2RlLT5wYXJlbnQpOworKwlpZiAoSVNfRVJSKHByaXYtPnJlZ21hcCkpCisrCQlyZXR1cm4g UFRSX0VSUihwcml2LT5yZWdtYXApOworKworKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEpINzExMF9Q TExDTEtfRU5EOyBpZHgrKykgeworKwkJc3RydWN0IGNsa19wYXJlbnRfZGF0YSBwYXJlbnRzID0g eworKwkJCS5pbmRleCA9IDAsCisrCQl9OworKwkJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdCA9 IHsKKysJCQkubmFtZSA9IGpoNzExMF9wbGxzW2lkeF0ubmFtZSwKKysJCQkub3BzID0gJmpoNzEx MF9wbGxfb3BzLAorKwkJCS5wYXJlbnRfZGF0YSA9ICZwYXJlbnRzLAorKwkJCS5udW1fcGFyZW50 cyA9IDEsCisrCQkJLmZsYWdzID0gMCwKKysJCX07CisrCQlzdHJ1Y3Qgamg3MTEwX3BsbF9kYXRh ICpwbGwgPSAmcHJpdi0+cGxsW2lkeF07CisrCisrCQlwbGwtPmh3LmluaXQgPSAmaW5pdDsKKysJ CXBsbC0+aWR4ID0gaWR4OworKworKwkJcmV0ID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXIoJnBkZXYt PmRldiwgJnBsbC0+aHcpOworKwkJaWYgKHJldCkKKysJCQlyZXR1cm4gcmV0OworKwl9CisrCisr CXJldHVybiBkZXZtX29mX2Nsa19hZGRfaHdfcHJvdmlkZXIoJnBkZXYtPmRldiwgamg3MTEwX3Bs bF9nZXQsIHByaXYpOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBq aDcxMTBfcGxsX21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEw LXBsbCIgfSwKKysJeyAvKiBzZW50aW5lbCAqLyB9CisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxF KG9mLCBqaDcxMTBfcGxsX21hdGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBqaDcxMTBfcGxsX2RyaXZlciA9IHsKKysJLmRyaXZlciA9IHsKKysJCS5uYW1lID0gImNsay1z dGFyZml2ZS1qaDcxMTAtcGxsIiwKKysJCS5vZl9tYXRjaF90YWJsZSA9IGpoNzExMF9wbGxfbWF0 Y2gsCisrCX0sCisrfTsKKytidWlsdGluX3BsYXRmb3JtX2RyaXZlcl9wcm9iZShqaDcxMTBfcGxs X2RyaXZlciwgamg3MTEwX3BsbF9wcm9iZSk7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxMi1jbGstc3RhcmZpdmUtamg3MTEwLXN5cy1BZGQt UExMLWNsb2Nrcy1zb3VyY2UtZnJvbS1ELnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVz LzAwMTItY2xrLXN0YXJmaXZlLWpoNzExMC1zeXMtQWRkLVBMTC1jbG9ja3Mtc291cmNlLWZyb20t RC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4zYWM2YWVi MmY1ZDk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMTIt Y2xrLXN0YXJmaXZlLWpoNzExMC1zeXMtQWRkLVBMTC1jbG9ja3Mtc291cmNlLWZyb20tRC5wYXRj aApAQCAtMCwwICsxLDExMyBAQAorRnJvbSBlODljNTAzYmFiNDY3NTNlOWM0MjRkNzA4YzQ0NDA1 NDNiMjY0YjU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1IFd1IDx4aW5n eXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwgMTMgSnVuIDIwMjMgMjA6NTg6NTAg KzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxMi83Ml0gY2xrOiBzdGFyZml2ZTogamg3MTEwLXN5czog QWRkIFBMTCBjbG9ja3Mgc291cmNlIGZyb20KKyBEVFMKKworTW9kaWZ5IFBMTCBjbG9ja3Mgc291 cmNlIHRvIGJlIGdvdCBmcm9tIERUUyBvcgordGhlIGZpeGVkIGZhY3RvciBjbG9ja3MuCisKK1Np Z25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CistLS0K KyBkcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnICAgICAgICAgICAgICAgICAgfCAgMSArCisg Li4uL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN5cy5jICAgIHwgNDUgKysrKysr KysrKystLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnIGIv ZHJpdmVycy9jbGsvc3RhcmZpdmUvS2NvbmZpZworaW5kZXggOWJhYWJkMmRmNTA2Li4yZTg1Mzk3 NzQ2MjAgMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCisrKysgYi9k cml2ZXJzL2Nsay9zdGFyZml2ZS9LY29uZmlnCitAQCAtMzUsNiArMzUsNyBAQCBjb25maWcgQ0xL X1NUQVJGSVZFX0pINzExMF9TWVMKKyAJc2VsZWN0IEFVWElMSUFSWV9CVVMKKyAJc2VsZWN0IENM S19TVEFSRklWRV9KSDcxWDAKKyAJc2VsZWN0IFJFU0VUX1NUQVJGSVZFX0pINzExMCBpZiBSRVNF VF9DT05UUk9MTEVSCisrCXNlbGVjdCBDTEtfU1RBUkZJVkVfSkg3MTEwX1BMTAorIAlkZWZhdWx0 IEFSQ0hfU1RBUkZJVkUKKyAJaGVscAorIAkgIFNheSB5ZXMgaGVyZSB0byBzdXBwb3J0IHRoZSBz eXN0ZW0gY2xvY2sgY29udHJvbGxlciBvbiB0aGUKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9z dGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN5cy5jIGIvZHJpdmVycy9jbGsvc3RhcmZpdmUv Y2xrLXN0YXJmaXZlLWpoNzExMC1zeXMuYworaW5kZXggZTYwMzEzNDVlZjA1Li5kNTZmNDgwMTMz ODggMTAwNjQ0CistLS0gYS9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEw LXN5cy5jCisrKysgYi9kcml2ZXJzL2Nsay9zdGFyZml2ZS9jbGstc3RhcmZpdmUtamg3MTEwLXN5 cy5jCitAQCAtNyw2ICs3LDcgQEAKKyAgKi8KKyAKKyAjaW5jbHVkZSA8bGludXgvYXV4aWxpYXJ5 X2J1cy5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyAjaW5jbHVkZSA8bGludXgvY2xrLXBy b3ZpZGVyLmg+CisgI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyAjaW5jbHVkZSA8bGludXgvaW8u aD4KK0BAIC0zODYsNiArMzg3LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoamg3MTEwX3Jlc2V0X2Nv bnRyb2xsZXJfcmVnaXN0ZXIpOworIAorIHN0YXRpYyBpbnQgX19pbml0IGpoNzExMF9zeXNjcmdf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyB7CisrCWJvb2wgdXNlX2ZpeGVk X3BsbCA9IHRydWU7CS8qIFBMTCBjbG9ja3MgdXNlIGZpeGVkIGZhY3RvciBjbG9ja3Mgb3IgUExM IGRyaXZlciAqLworIAlzdHJ1Y3Qgamg3MXgwX2Nsa19wcml2ICpwcml2OworIAl1bnNpZ25lZCBp bnQgaWR4OworIAlpbnQgcmV0OworQEAgLTQwMiwyOCArNDA0LDI5IEBAIHN0YXRpYyBpbnQgX19p bml0IGpoNzExMF9zeXNjcmdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyAJ aWYgKElTX0VSUihwcml2LT5iYXNlKSkKKyAJCXJldHVybiBQVFJfRVJSKHByaXYtPmJhc2UpOwor IAorLQkvKgorLQkgKiBUaGVzZSBQTEwgY2xvY2tzIGFyZSBub3QgYWN0dWFsbHkgZml4ZWQgZmFj dG9yIGNsb2NrcyBhbmQgY2FuIGJlCistCSAqIGNvbnRyb2xsZWQgYnkgdGhlIHN5c2NvbiByZWdp c3RlcnMgb2YgSkg3MTEwLiBUaGV5IHdpbGwgYmUgZHJvcHBlZAorLQkgKiBhbmQgcmVnaXN0ZXJl ZCBpbiB0aGUgUExMIGNsb2NrIGRyaXZlciBpbnN0ZWFkLgorLQkgKi8KKysJaWYgKCFJU19FUlIo ZGV2bV9jbGtfZ2V0KHByaXYtPmRldiwgInBsbDBfb3V0IikpKQorKwkJdXNlX2ZpeGVkX3BsbCA9 IGZhbHNlOwkvKiBjYW4gZ2V0IHBsbCBjbG9ja3MgZnJvbSBQTEwgZHJpdmVyICovCisrCisrCS8q IFVzZSBmaXhlZCBmYWN0b3IgY2xvY2tzIGlmIGNhbiBub3QgZ2V0IHRoZSBQTEwgY2xvY2tzIGZy b20gRFRTICovCisrCWlmICh1c2VfZml4ZWRfcGxsKSB7CisgCS8qIDI0TUh6IC0+IDEwMDAuME1I eiAqLworLQlwcml2LT5wbGxbMF0gPSBkZXZtX2Nsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3Io cHJpdi0+ZGV2LCAicGxsMF9vdXQiLAorLQkJCQkJCQkgIm9zYyIsIDAsIDEyNSwgMyk7CistCWlm IChJU19FUlIocHJpdi0+cGxsWzBdKSkKKy0JCXJldHVybiBQVFJfRVJSKHByaXYtPnBsbFswXSk7 CisrCQlwcml2LT5wbGxbMF0gPSBkZXZtX2Nsa19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3IocHJp di0+ZGV2LCAicGxsMF9vdXQiLAorKwkJCQkJCQkJICJvc2MiLCAwLCAxMjUsIDMpOworKwkJaWYg KElTX0VSUihwcml2LT5wbGxbMF0pKQorKwkJCXJldHVybiBQVFJfRVJSKHByaXYtPnBsbFswXSk7 CisgCisgCS8qIDI0TUh6IC0+IDEwNjYuME1IeiAqLworLQlwcml2LT5wbGxbMV0gPSBkZXZtX2Ns a19od19yZWdpc3Rlcl9maXhlZF9mYWN0b3IocHJpdi0+ZGV2LCAicGxsMV9vdXQiLAorLQkJCQkJ CQkgIm9zYyIsIDAsIDUzMywgMTIpOworLQlpZiAoSVNfRVJSKHByaXYtPnBsbFsxXSkpCistCQly ZXR1cm4gUFRSX0VSUihwcml2LT5wbGxbMV0pOworKwkJcHJpdi0+cGxsWzFdID0gZGV2bV9jbGtf aHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKHByaXYtPmRldiwgInBsbDFfb3V0IiwKKysJCQkJCQkJ CSAib3NjIiwgMCwgNTMzLCAxMik7CisrCQlpZiAoSVNfRVJSKHByaXYtPnBsbFsxXSkpCisrCQkJ cmV0dXJuIFBUUl9FUlIocHJpdi0+cGxsWzFdKTsKKyAKKyAJLyogMjRNSHogLT4gMTE4OC4wTUh6 ICovCistCXByaXYtPnBsbFsyXSA9IGRldm1fY2xrX2h3X3JlZ2lzdGVyX2ZpeGVkX2ZhY3Rvcihw cml2LT5kZXYsICJwbGwyX291dCIsCistCQkJCQkJCSAib3NjIiwgMCwgOTksIDIpOworLQlpZiAo SVNfRVJSKHByaXYtPnBsbFsyXSkpCistCQlyZXR1cm4gUFRSX0VSUihwcml2LT5wbGxbMl0pOwor KwkJcHJpdi0+cGxsWzJdID0gZGV2bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKHByaXYt PmRldiwgInBsbDJfb3V0IiwKKysJCQkJCQkJCSAib3NjIiwgMCwgOTksIDIpOworKwkJaWYgKElT X0VSUihwcml2LT5wbGxbMl0pKQorKwkJCXJldHVybiBQVFJfRVJSKHByaXYtPnBsbFsyXSk7Cisr CX0KKyAKKyAJZm9yIChpZHggPSAwOyBpZHggPCBKSDcxMTBfU1lTQ0xLX0VORDsgaWR4KyspIHsK KyAJCXUzMiBtYXggPSBqaDcxMTBfc3lzY2xrX2RhdGFbaWR4XS5tYXg7CitAQCAtNDYyLDggKzQ2 NSwxNCBAQCBzdGF0aWMgaW50IF9faW5pdCBqaDcxMTBfc3lzY3JnX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCisgCQkJCXBhcmVudHNbaV0uZndfbmFtZSA9ICJ0ZG1fZXh0IjsK KyAJCQllbHNlIGlmIChwaWR4ID09IEpINzExMF9TWVNDTEtfTUNMS19FWFQpCisgCQkJCXBhcmVu dHNbaV0uZndfbmFtZSA9ICJtY2xrX2V4dCI7CistCQkJZWxzZQorKwkJCWVsc2UgaWYgKHVzZV9m aXhlZF9wbGwpCisgCQkJCXBhcmVudHNbaV0uaHcgPSBwcml2LT5wbGxbcGlkeCAtIEpINzExMF9T WVNDTEtfUExMMF9PVVRdOworKwkJCWVsc2UgaWYgKHBpZHggPT0gSkg3MTEwX1NZU0NMS19QTEww X09VVCkKKysJCQkJcGFyZW50c1tpXS5md19uYW1lID0gInBsbDBfb3V0IjsKKysJCQllbHNlIGlm IChwaWR4ID09IEpINzExMF9TWVNDTEtfUExMMV9PVVQpCisrCQkJCXBhcmVudHNbaV0uZndfbmFt ZSA9ICJwbGwxX291dCI7CisrCQkJZWxzZSBpZiAocGlkeCA9PSBKSDcxMTBfU1lTQ0xLX1BMTDJf T1VUKQorKwkJCQlwYXJlbnRzW2ldLmZ3X25hbWUgPSAicGxsMl9vdXQiOworIAkJfQorIAorIAkJ Y2xrLT5ody5pbml0ID0gJmluaXQ7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDAxMy1kdC1iaW5kaW5ncy10aW1lci1BZGQtdGltZXItZm9yLVN0 YXJGaXZlLUpINzExMC1Tb0MucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxMy1k dC1iaW5kaW5ncy10aW1lci1BZGQtdGltZXItZm9yLVN0YXJGaXZlLUpINzExMC1Tb0MucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYTAwYWY3NjY4MDI1OAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDEzLWR0LWJpbmRp bmdzLXRpbWVyLUFkZC10aW1lci1mb3ItU3RhckZpdmUtSkg3MTEwLVNvQy5wYXRjaApAQCAtMCww ICsxLDEyMCBAQAorRnJvbSAyM2I1MDM1NTc1NDI2YjFiZDE5YmI2ODcxY2UzMDg2Y2Q3MmUzZjBi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1IFd1IDx4aW5neXUud3VAc3Rh cmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwgMjcgSnVuIDIwMjMgMTM6NTM6MTEgKzA4MDAKK1N1 YmplY3Q6IFtQQVRDSCAxMy83Ml0gZHQtYmluZGluZ3M6IHRpbWVyOiBBZGQgdGltZXIgZm9yIFN0 YXJGaXZlIEpINzExMCBTb0MKKworQWRkIGJpbmRpbmdzIGZvciB0aGUgdGltZXIgb24gdGhlIEpI NzExMCBSSVNDLVYgU29DCitieSBTdGFyRml2ZSBUZWNobm9sb2d5IEx0ZC4KKworUmV2aWV3ZWQt Ynk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyenlzenRvZi5rb3psb3dza2lAbGluYXJvLm9yZz4K K1NpZ25lZC1vZmYtYnk6IFhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+Cist LS0KKyAuLi4vYmluZGluZ3MvdGltZXIvc3RhcmZpdmUsamg3MTEwLXRpbWVyLnlhbWwgfCA5NiAr KysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKykKKyBj cmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVy L3N0YXJmaXZlLGpoNzExMC10aW1lci55YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvdGltZXIvc3RhcmZpdmUsamg3MTEwLXRpbWVyLnlhbWwgYi9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdGltZXIvc3RhcmZpdmUsamg3MTEwLXRp bWVyLnlhbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjlhMmRh YzExZWIwNgorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL3RpbWVyL3N0YXJmaXZlLGpoNzExMC10aW1lci55YW1sCitAQCAtMCwwICsxLDk2IEBA CisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1 c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1h cy90aW1lci9zdGFyZml2ZSxqaDcxMTAtdGltZXIueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2 aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUg Skg3MTEwIFRpbWVyCisrCisrbWFpbnRhaW5lcnM6CisrICAtIFhpbmd5dSBXdSA8eGluZ3l1Lnd1 QHN0YXJmaXZldGVjaC5jb20+CisrICAtIFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVj aC5jb20+CisrCisrZGVzY3JpcHRpb246CisrICBUaGlzIHRpbWVyIGhhcyBmb3VyIGZyZWUtcnVu bmluZyAzMiBiaXQgY291bnRlcnMgaW4gU3RhckZpdmUgSkg3MTEwIFNvQy4KKysgIEFuZCBlYWNo IGNoYW5uZWwoY291bnRlcikgdHJpZ2dlcnMgYW4gaW50ZXJydXB0IHdoZW4gdGltZW91dC4gVGhl eSBzdXBwb3J0CisrICBvbmUtc2hvdCBtb2RlIGFuZCBjb250aW51b3VzLXJ1biBtb2RlLgorKwor K3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3MTEw LXRpbWVyCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBpbnRlcnJ1cHRzOgor KyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBjaGFubmVsIDAKKysgICAgICAtIGRl c2NyaXB0aW9uOiBjaGFubmVsIDEKKysgICAgICAtIGRlc2NyaXB0aW9uOiBjaGFubmVsIDIKKysg ICAgICAtIGRlc2NyaXB0aW9uOiBjaGFubmVsIDMKKysKKysgIGNsb2NrczoKKysgICAgaXRlbXM6 CisrICAgICAgLSBkZXNjcmlwdGlvbjogdGltZXIgQVBCCisrICAgICAgLSBkZXNjcmlwdGlvbjog Y2hhbm5lbCAwCisrICAgICAgLSBkZXNjcmlwdGlvbjogY2hhbm5lbCAxCisrICAgICAgLSBkZXNj cmlwdGlvbjogY2hhbm5lbCAyCisrICAgICAgLSBkZXNjcmlwdGlvbjogY2hhbm5lbCAzCisrCisr ICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogYXBiCisrICAgICAg LSBjb25zdDogY2gwCisrICAgICAgLSBjb25zdDogY2gxCisrICAgICAgLSBjb25zdDogY2gyCisr ICAgICAgLSBjb25zdDogY2gzCisrCisrICByZXNldHM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0g ZGVzY3JpcHRpb246IHRpbWVyIEFQQgorKyAgICAgIC0gZGVzY3JpcHRpb246IGNoYW5uZWwgMAor KyAgICAgIC0gZGVzY3JpcHRpb246IGNoYW5uZWwgMQorKyAgICAgIC0gZGVzY3JpcHRpb246IGNo YW5uZWwgMgorKyAgICAgIC0gZGVzY3JpcHRpb246IGNoYW5uZWwgMworKworKyAgcmVzZXQtbmFt ZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IGFwYgorKyAgICAgIC0gY29uc3Q6IGNo MAorKyAgICAgIC0gY29uc3Q6IGNoMQorKyAgICAgIC0gY29uc3Q6IGNoMgorKyAgICAgIC0gY29u c3Q6IGNoMworKworK3JlcXVpcmVkOgorKyAgLSBjb21wYXRpYmxlCisrICAtIHJlZworKyAgLSBp bnRlcnJ1cHRzCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSByZXNldHMKKysg IC0gcmVzZXQtbmFtZXMKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFt cGxlczoKKysgIC0gfAorKyAgICB0aW1lckAxMzA1MDAwMCB7CisrICAgICAgICBjb21wYXRpYmxl ID0gInN0YXJmaXZlLGpoNzExMC10aW1lciI7CisrICAgICAgICByZWcgPSA8MHgxMzA1MDAwMCAw eDEwMDAwPjsKKysgICAgICAgIGludGVycnVwdHMgPSA8Njk+LCA8NzA+LCA8NzE+ICw8NzI+Owor KyAgICAgICAgY2xvY2tzID0gPCZjbGsgMTI0PiwKKysgICAgICAgICAgICAgICAgIDwmY2xrIDEy NT4sCisrICAgICAgICAgICAgICAgICA8JmNsayAxMjY+LAorKyAgICAgICAgICAgICAgICAgPCZj bGsgMTI3PiwKKysgICAgICAgICAgICAgICAgIDwmY2xrIDEyOD47CisrICAgICAgICBjbG9jay1u YW1lcyA9ICJhcGIiLCAiY2gwIiwgImNoMSIsCisrICAgICAgICAgICAgICAgICAgICAgICJjaDIi LCAiY2gzIjsKKysgICAgICAgIHJlc2V0cyA9IDwmcnN0IDExNz4sCisrICAgICAgICAgICAgICAg ICA8JnJzdCAxMTg+LAorKyAgICAgICAgICAgICAgICAgPCZyc3QgMTE5PiwKKysgICAgICAgICAg ICAgICAgIDwmcnN0IDEyMD4sCisrICAgICAgICAgICAgICAgICA8JnJzdCAxMjE+OworKyAgICAg ICAgcmVzZXQtbmFtZXMgPSAiYXBiIiwgImNoMCIsICJjaDEiLAorKyAgICAgICAgICAgICAgICAg ICAgICAiY2gyIiwgImNoMyI7CisrICAgIH07CisrCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxNC1jbG9ja3NvdXJjZS1BZGQtSkg3MTEwLXRp bWVyLWRyaXZlci5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDE0LWNsb2Nrc291 cmNlLUFkZC1KSDcxMTAtdGltZXItZHJpdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjllY2I1ZmViNWExZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxNC1jbG9ja3NvdXJjZS1BZGQtSkg3MTEwLXRpbWVyLWRy aXZlci5wYXRjaApAQCAtMCwwICsxLDU0MyBAQAorRnJvbSA4YWQzYTc4Yjg3MGExNDdjNGVmNzNk ZGNhMjQyZmEwZWZmNTAyZDA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGluZ3l1 IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwgMjcgSnVuIDIwMjMg MTM6NTM6MTIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxNC83Ml0gY2xvY2tzb3VyY2U6IEFkZCBK SDcxMTAgdGltZXIgZHJpdmVyCisKK0FkZCB0aW1lciBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBK SDcxMTAgU29DLgorCitTaWduZWQtb2ZmLWJ5OiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2 ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnICAgICAgICB8ICAx MSArCisgZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZSAgICAgICB8ICAgMSArCisgZHJpdmVy cy9jbG9ja3NvdXJjZS90aW1lci1qaDcxMTAuYyB8IDQ4NSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgNDk3IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1qaDcxMTAuYworCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmlnIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9LY29u ZmlnCitpbmRleCA1MjYzODJkYzc0ODIuLmExMzkzZWMwNzRjMCAxMDA2NDQKKy0tLSBhL2RyaXZl cnMvY2xvY2tzb3VyY2UvS2NvbmZpZworKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9LY29uZmln CitAQCAtNjM5LDYgKzYzOSwxNyBAQCBjb25maWcgUklTQ1ZfVElNRVIKKyAJICBpcyBhY2Nlc3Nl ZCB2aWEgYm90aCB0aGUgU0JJIGFuZCB0aGUgcmRjeWNsZSBpbnN0cnVjdGlvbi4gIFRoaXMgaXMK KyAJICByZXF1aXJlZCBmb3IgYWxsIFJJU0MtViBzeXN0ZW1zLgorIAorK2NvbmZpZyBTVEFSRklW RV9KSDcxMTBfVElNRVIKKysJYm9vbCAiVGltZXIgZm9yIHRoZSBTVEFSRklWRSBKSDcxMTAgU29D IgorKwlkZXBlbmRzIG9uIEFSQ0hfU1RBUkZJVkUgfHwgQ09NUElMRV9URVNUCisrCXNlbGVjdCBU SU1FUl9PRgorKwlzZWxlY3QgQ0xLU1JDX01NSU8KKysJZGVmYXVsdCBBUkNIX1NUQVJGSVZFCisr CWhlbHAKKysJICBUaGlzIGVuYWJsZXMgdGhlIHRpbWVyIGZvciBTdGFyRml2ZSBKSDcxMTAgU29D cy4gT24gUklTQy1WIHBsYXRmb3JtLAorKwkgIHRoZSBzeXN0ZW0gaGFzIHN0YXJ0ZWQgUklTQ1Zf VElNRVIuIEJ1dCB5b3UgY2FuIGFsc28gdXNlIHRoaXMgdGltZXIKKysJICB3aGljaCBjYW4gcHJv dmlkZXMgZm91ciBjaGFubmVscyB0byBkbyBhIGxvdCBtb3JlIG9uIEpINzExMCBTb0MuCisrCisg Y29uZmlnIENMSU5UX1RJTUVSCisgCWJvb2wgIkNMSU5UIFRpbWVyIGZvciB0aGUgUklTQy1WIHBs YXRmb3JtIiBpZiBDT01QSUxFX1RFU1QKKyAJZGVwZW5kcyBvbiBHRU5FUklDX1NDSEVEX0NMT0NL ICYmIFJJU0NWCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZSBiL2Ry aXZlcnMvY2xvY2tzb3VyY2UvTWFrZWZpbGUKK2luZGV4IGYxMmQzOTg3YTk2MC4uNzkxZmIzMzc5 ZjUwIDEwMDY0NAorLS0tIGEvZHJpdmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZQorKysrIGIvZHJp dmVycy9jbG9ja3NvdXJjZS9NYWtlZmlsZQorQEAgLTgxLDYgKzgxLDcgQEAgb2JqLSQoQ09ORklH X0lOR0VOSUNfVElNRVIpCQkrPSBpbmdlbmljLXRpbWVyLm8KKyBvYmotJChDT05GSUdfQ0xLU1JD X1NUX0xQQykJCSs9IGNsa3NyY19zdF9scGMubworIG9iai0kKENPTkZJR19YODZfTlVNQUNISVAp CQkrPSBudW1hY2hpcC5vCisgb2JqLSQoQ09ORklHX1JJU0NWX1RJTUVSKQkJKz0gdGltZXItcmlz Y3YubworK29iai0kKENPTkZJR19TVEFSRklWRV9KSDcxMTBfVElNRVIpCSs9IHRpbWVyLWpoNzEx MC5vCisgb2JqLSQoQ09ORklHX0NMSU5UX1RJTUVSKQkJKz0gdGltZXItY2xpbnQubworIG9iai0k KENPTkZJR19DU0tZX01QX1RJTUVSKQkJKz0gdGltZXItbXAtY3NreS5vCisgb2JqLSQoQ09ORklH X0dYNjYwNVNfVElNRVIpCQkrPSB0aW1lci1neDY2MDVzLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJz L2Nsb2Nrc291cmNlL3RpbWVyLWpoNzExMC5jIGIvZHJpdmVycy9jbG9ja3NvdXJjZS90aW1lci1q aDcxMTAuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uYjg4MzM0 YTkxNmZiCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2Nsb2Nrc291cmNlL3RpbWVyLWpo NzExMC5jCitAQCAtMCwwICsxLDQ4NSBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wCisrLyoKKysgKiBTdGFyZml2ZSBKSDcxMTAgVGltZXIgZHJpdmVyCisrICoKKysgKiBD b3B5cmlnaHQgKEMpIDIwMjIgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKgorKyAq IEF1dGhvcjoKKysgKiBYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorKyAq IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CisrICovCisrCisrI2luY2x1 ZGUgPGxpbnV4L2Nsay5oPgorKyNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+CisrI2luY2x1 ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorKyNpbmNs dWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKysjaW5jbHVkZSA8bGludXgvaW8uaD4KKysjaW5jbHVk ZSA8bGludXgvaW9wb2xsLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorKyNpbmNsdWRlIDxs aW51eC9rZXJuZWwuaD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxp bnV4L29mLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51 eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKysjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKysjaW5jbHVk ZSA8bGludXgvc2NoZWRfY2xvY2suaD4KKysKKysvKiBCaWFzOiBDaDAtMHgwLCBDaDEtMHg0MCwg Q2gyLTB4ODAsIGFuZCBzbyBvbi4gKi8KKysjZGVmaW5lIEpINzExMF9USU1FUl9DSF9MRU4JCTB4 NDAKKysjZGVmaW5lIEpINzExMF9USU1FUl9DSF9CQVNFKHgpCQkoKHgpICogSkg3MTEwX1RJTUVS X0NIX0xFTikKKysKKysjZGVmaW5lIEpINzExMF9DTE9DS19TT1VSQ0VfUkFUSU5HCTIwMAorKyNk ZWZpbmUgSkg3MTEwX1ZBTElEX0JJVFMJCTMyCisrI2RlZmluZSBKSDcxMTBfREVMQVlfVVMJCQkw CisrI2RlZmluZSBKSDcxMTBfVElNRU9VVF9VUwkJMTAwMDAKKysjZGVmaW5lIEpINzExMF9DTE9D S0VWRU5UX1JBVElORwkzMDAKKysjZGVmaW5lIEpINzExMF9USU1FUl9NQVhfVElDS1MJCTB4ZmZm ZmZmZmYKKysjZGVmaW5lIEpINzExMF9USU1FUl9NSU5fVElDS1MJCTB4ZgorKyNkZWZpbmUgSkg3 MTEwX1RJTUVSX05BTUVfTlVNCQkyMAorKworKyNkZWZpbmUgSkg3MTEwX1RJTUVSX0lOVF9TVEFU VVMJCTB4MDAgLyogUk9bMDo0XTogSW50ZXJydXB0IFN0YXR1cyBmb3IgY2hhbm5lbDB+NCAqLwor KyNkZWZpbmUgSkg3MTEwX1RJTUVSX0NUTAkJMHgwNCAvKiBSV1swXTogMC1jb250aW51b3VzIHJ1 biwgMS1zaW5nbGUgcnVuICovCisrI2RlZmluZSBKSDcxMTBfVElNRVJfTE9BRAkJMHgwOCAvKiBS VzogbG9hZCB2YWx1ZSB0byBjb3VudGVyICovCisrI2RlZmluZSBKSDcxMTBfVElNRVJfRU5BQkxF CQkweDEwIC8qIFJXWzBdOiB0aW1lciBlbmFibGUgcmVnaXN0ZXIgKi8KKysjZGVmaW5lIEpINzEx MF9USU1FUl9SRUxPQUQJCTB4MTQgLyogUlc6IHdyaXRlIDEgb3IgMCBib3RoIHJlbG9hZCBjb3Vu dGVyICovCisrI2RlZmluZSBKSDcxMTBfVElNRVJfVkFMVUUJCTB4MTggLyogUk86IHRpbWVyIHZh bHVlIHJlZ2lzdGVyICovCisrI2RlZmluZSBKSDcxMTBfVElNRVJfSU5UX0NMUgkJMHgyMCAvKiBS VzogdGltZXIgaW50ZXJydXB0IGNsZWFyIHJlZ2lzdGVyICovCisrI2RlZmluZSBKSDcxMTBfVElN RVJfSU5UX01BU0sJCTB4MjQgLyogUldbMF06IHRpbWVyIGludGVycnVwdCBtYXNrIHJlZ2lzdGVy ICovCisrI2RlZmluZSBKSDcxMTBfVElNRVJfSU5UX0NMUl9BVkFfTUFTSwlCSVQoMSkKKysKKytl bnVtIEpINzExMF9USU1FUl9DSCB7CisrCUpINzExMF9USU1FUl9DSF8wID0gMCwKKysJSkg3MTEw X1RJTUVSX0NIXzEsCisrCUpINzExMF9USU1FUl9DSF8yLAorKwlKSDcxMTBfVElNRVJfQ0hfMywK KysJSkg3MTEwX1RJTUVSX0NIX01BWAorK307CisrCisrZW51bSBKSDcxMTBfVElNRVJfSU5UTUFT SyB7CisrCUpINzExMF9USU1FUl9JTlRNQVNLX0RJUyA9IDAsCisrCUpINzExMF9USU1FUl9JTlRN QVNLX0VOQSA9IDEKKyt9OworKworK2VudW0gSkg3MTEwX1RJTUVSX01PRCB7CisrCUpINzExMF9U SU1FUl9NT0RfQ09OVElOID0gMCwKKysJSkg3MTEwX1RJTUVSX01PRF9TSU5HTEUgPSAxCisrfTsK KysKKytlbnVtIEpINzExMF9USU1FUl9DVExfRU4geworKwlKSDcxMTBfVElNRVJfRElTID0gMCwK KysJSkg3MTEwX1RJTUVSX0VOQSA9IDEKKyt9OworKworK3N0cnVjdCBqaDcxMTBfdGltZXJfaW5m byB7CisrCS8qIFJlc2dpc3RlciAqLworKwl1bnNpZ25lZCBpbnQgY3RybDsKKysJdW5zaWduZWQg aW50IGxvYWQ7CisrCXVuc2lnbmVkIGludCBlbmFibGU7CisrCXVuc2lnbmVkIGludCByZWxvYWQ7 CisrCXVuc2lnbmVkIGludCB2YWx1ZTsKKysJdW5zaWduZWQgaW50IGludGNscjsKKysJdW5zaWdu ZWQgaW50IGludG1hc2s7CisrCXVuc2lnbmVkIGludCBjaGFubmVsX2Jhc2VbSkg3MTEwX1RJTUVS X0NIX01BWF07CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX2Nsa2V2dCB7CisrCXN0cnVjdCBjbG9j a19ldmVudF9kZXZpY2UgZXZ0OworKwlzdHJ1Y3QgY2xvY2tzb3VyY2UgY3M7CisrCXN0cnVjdCBj bGsgKmNsazsKKysJY2hhciBuYW1lW0pINzExMF9USU1FUl9OQU1FX05VTV07CisrCWludCBpcnE7 CisrCXUzMiBwZXJpb2RpYzsKKysJdTMyIHJhdGU7CisrCXUzMiByZWxvYWRfdmFsOworKwl2b2lk IF9faW9tZW0gKmJhc2U7CisrCXZvaWQgX19pb21lbSAqY3RybDsKKysJdm9pZCBfX2lvbWVtICps b2FkOworKwl2b2lkIF9faW9tZW0gKmVuYWJsZTsKKysJdm9pZCBfX2lvbWVtICpyZWxvYWQ7Cisr CXZvaWQgX19pb21lbSAqdmFsdWU7CisrCXZvaWQgX19pb21lbSAqaW50Y2xyOworKwl2b2lkIF9f aW9tZW0gKmludG1hc2s7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX3RpbWVyX3ByaXYgeworKwlz dHJ1Y3QgZGV2aWNlICpkZXY7CisrCXZvaWQgX19pb21lbSAqYmFzZTsKKysJc3RydWN0IGpoNzEx MF9jbGtldnQgY2xrZXZ0W0pINzExMF9USU1FUl9DSF9NQVhdOworK307CisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBqaDcxMTBfdGltZXJfaW5mbyBqaDcxMTBfdGltZXJfZGF0YSA9IHsKKysJLmN0 cmwJCT0gSkg3MTEwX1RJTUVSX0NUTCwKKysJLmxvYWQJCT0gSkg3MTEwX1RJTUVSX0xPQUQsCisr CS5lbmFibGUJCT0gSkg3MTEwX1RJTUVSX0VOQUJMRSwKKysJLnJlbG9hZAkJPSBKSDcxMTBfVElN RVJfUkVMT0FELAorKwkudmFsdWUJCT0gSkg3MTEwX1RJTUVSX1ZBTFVFLAorKwkuaW50Y2xyCQk9 IEpINzExMF9USU1FUl9JTlRfQ0xSLAorKwkuaW50bWFzawk9IEpINzExMF9USU1FUl9JTlRfTUFT SywKKysJLmNoYW5uZWxfYmFzZQk9IHtKSDcxMTBfVElNRVJfQ0hfQkFTRShKSDcxMTBfVElNRVJf Q0hfMCksCisrCQkJICAgSkg3MTEwX1RJTUVSX0NIX0JBU0UoSkg3MTEwX1RJTUVSX0NIXzEpLAor KwkJCSAgIEpINzExMF9USU1FUl9DSF9CQVNFKEpINzExMF9USU1FUl9DSF8yKSwKKysJCQkgICBK SDcxMTBfVElNRVJfQ0hfQkFTRShKSDcxMTBfVElNRVJfQ0hfMyl9LAorK307CisrCisrc3RhdGlj IGlubGluZSBzdHJ1Y3Qgamg3MTEwX2Nsa2V2dCAqdG9famg3MTEwX2Nsa2V2dChzdHJ1Y3QgY2xv Y2tfZXZlbnRfZGV2aWNlICpldnQpCisreworKwlyZXR1cm4gY29udGFpbmVyX29mKGV2dCwgc3Ry dWN0IGpoNzExMF9jbGtldnQsIGV2dCk7CisrfQorKworKy8qIDA6Y29udGludW91cy1ydW4gbW9k ZSwgMTpzaW5nbGUtcnVuIG1vZGUgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQgamg3MTEwX3RpbWVy X3NldF9tb2Qoc3RydWN0IGpoNzExMF9jbGtldnQgKmNsa2V2dCwgaW50IG1vZCkKKyt7CisrCXdy aXRlbChtb2QsIGNsa2V2dC0+Y3RybCk7CisrfQorKworKy8qIEludGVycnVwdCBNYXNrIFJlZ2lz dGVyLCAwOlVubWFzaywgMTpNYXNrICovCisrc3RhdGljIGlubGluZSB2b2lkIGpoNzExMF90aW1l cl9pbnRfZW5hYmxlKHN0cnVjdCBqaDcxMTBfY2xrZXZ0ICpjbGtldnQpCisreworKwl3cml0ZWwo Skg3MTEwX1RJTUVSX0lOVE1BU0tfRElTLCBjbGtldnQtPmludG1hc2spOworK30KKysKKytzdGF0 aWMgaW5saW5lIHZvaWQgamg3MTEwX3RpbWVyX2ludF9kaXNhYmxlKHN0cnVjdCBqaDcxMTBfY2xr ZXZ0ICpjbGtldnQpCisreworKwl3cml0ZWwoSkg3MTEwX1RJTUVSX0lOVE1BU0tfRU5BLCBjbGtl dnQtPmludG1hc2spOworK30KKysKKysvKgorKyAqIEJJVCgwKTogUmVhZCB2YWx1ZSByZXByZXNl bnQgY2hhbm5lbCBpbnRyIHN0YXR1cy4KKysgKiBXcml0ZSAxIHRvIHRoaXMgYml0IHRvIGNsZWFy IGludGVycnVwdC4gV3JpdGUgMCBoYXMgbm8gZWZmZWN0cy4KKysgKiBCSVQoMSk6ICIxIiBtZWFu cyB0aGF0IGl0IGlzIGNsZWFyaW5nIGludGVycnVwdC4gQklUKDApIGNhbiBub3QgYmUgd3JpdHRl bi4KKysgKi8KKytzdGF0aWMgaW5saW5lIGludCBqaDcxMTBfdGltZXJfaW50X2NsZWFyKHN0cnVj dCBqaDcxMTBfY2xrZXZ0ICpjbGtldnQpCisreworKwl1MzIgdmFsdWU7CisrCWludCByZXQ7Cisr CisrCS8qIHdhaXRpbmcgaW50ZXJydXB0IGNhbiBiZSB0byBjbGVhcmluZyAqLworKwlyZXQgPSBy ZWFkbF9wb2xsX3RpbWVvdXRfYXRvbWljKGNsa2V2dC0+aW50Y2xyLCB2YWx1ZSwKKysJCQkJCSEo dmFsdWUgJiBKSDcxMTBfVElNRVJfSU5UX0NMUl9BVkFfTUFTSyksCisrCQkJCQlKSDcxMTBfREVM QVlfVVMsIEpINzExMF9USU1FT1VUX1VTKTsKKysJaWYgKCFyZXQpCisrCQl3cml0ZWwoMHgxLCBj bGtldnQtPmludGNscik7CisrCisrCXJldHVybiByZXQ7CisrfQorKworKy8qCisrICogVGhlIGlu aXRpYWwgdmFsdWUgdG8gYmUgbG9hZGVkIGludG8gdGhlCisrICogY291bnRlciBhbmQgaXMgYWxz byB1c2VkIGFzIHRoZSByZWxvYWQgdmFsdWUuCisrICogdmFsID0gY2xvY2sgcmF0ZSAtLT4gMXMK KysgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQgamg3MTEwX3RpbWVyX3NldF9sb2FkKHN0cnVjdCBq aDcxMTBfY2xrZXZ0ICpjbGtldnQsIHUzMiB2YWwpCisreworKwl3cml0ZWwodmFsLCBjbGtldnQt PmxvYWQpOworK30KKysKKytzdGF0aWMgaW5saW5lIHUzMiBqaDcxMTBfdGltZXJfZ2V0X3ZhbChz dHJ1Y3Qgamg3MTEwX2Nsa2V2dCAqY2xrZXZ0KQorK3sKKysJcmV0dXJuIHJlYWRsKGNsa2V2dC0+ dmFsdWUpOworK30KKysKKysvKgorKyAqIFdyaXRlIFJFTE9BRCByZWdpc3RlciB0byByZWxvYWQg cHJlc2V0IHZhbHVlIHRvIGNvdW50ZXIuCisrICogV3JpdGUgMCBhbmQgd3JpdGUgMSBhcmUgYm90 aCBvay4KKysgKi8KKytzdGF0aWMgaW5saW5lIHZvaWQgamg3MTEwX3RpbWVyX3NldF9yZWxvYWQo c3RydWN0IGpoNzExMF9jbGtldnQgKmNsa2V2dCkKKyt7CisrCXdyaXRlbCgwLCBjbGtldnQtPnJl bG9hZCk7CisrfQorKworK3N0YXRpYyBpbmxpbmUgdm9pZCBqaDcxMTBfdGltZXJfZW5hYmxlKHN0 cnVjdCBqaDcxMTBfY2xrZXZ0ICpjbGtldnQpCisreworKwl3cml0ZWwoSkg3MTEwX1RJTUVSX0VO QSwgY2xrZXZ0LT5lbmFibGUpOworK30KKysKKytzdGF0aWMgaW5saW5lIHZvaWQgamg3MTEwX3Rp bWVyX2Rpc2FibGUoc3RydWN0IGpoNzExMF9jbGtldnQgKmNsa2V2dCkKKyt7CisrCXdyaXRlbChK SDcxMTBfVElNRVJfRElTLCBjbGtldnQtPmVuYWJsZSk7CisrfQorKworK3N0YXRpYyBpbnQgamg3 MTEwX3RpbWVyX2ludF9pbml0X2VuYWJsZShzdHJ1Y3Qgamg3MTEwX2Nsa2V2dCAqY2xrZXZ0KQor K3sKKysJaW50IHJldDsKKysKKysJamg3MTEwX3RpbWVyX2ludF9kaXNhYmxlKGNsa2V2dCk7Cisr CXJldCA9IGpoNzExMF90aW1lcl9pbnRfY2xlYXIoY2xrZXZ0KTsKKysJaWYgKHJldCkKKysJCXJl dHVybiByZXQ7CisrCisrCWpoNzExMF90aW1lcl9pbnRfZW5hYmxlKGNsa2V2dCk7CisrCWpoNzEx MF90aW1lcl9lbmFibGUoY2xrZXZ0KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBp bnQgamg3MTEwX3RpbWVyX3NodXRkb3duKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkK Kyt7CisrCXN0cnVjdCBqaDcxMTBfY2xrZXZ0ICpjbGtldnQgPSB0b19qaDcxMTBfY2xrZXZ0KGV2 dCk7CisrCisrCWpoNzExMF90aW1lcl9kaXNhYmxlKGNsa2V2dCk7CisrCXJldHVybiBqaDcxMTBf dGltZXJfaW50X2NsZWFyKGNsa2V2dCk7CisrfQorKworK3N0YXRpYyB2b2lkIGpoNzExMF90aW1l cl9zdXNwZW5kKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKKyt7CisrCXN0cnVjdCBq aDcxMTBfY2xrZXZ0ICpjbGtldnQgPSB0b19qaDcxMTBfY2xrZXZ0KGV2dCk7CisrCisrCWNsa2V2 dC0+cmVsb2FkX3ZhbCA9IGpoNzExMF90aW1lcl9nZXRfdmFsKGNsa2V2dCk7CisrCWpoNzExMF90 aW1lcl9zaHV0ZG93bihldnQpOworK30KKysKKytzdGF0aWMgdm9pZCBqaDcxMTBfdGltZXJfcmVz dW1lKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKKyt7CisrCXN0cnVjdCBqaDcxMTBf Y2xrZXZ0ICpjbGtldnQgPSB0b19qaDcxMTBfY2xrZXZ0KGV2dCk7CisrCisrCWpoNzExMF90aW1l cl9zZXRfbG9hZChjbGtldnQsIGNsa2V2dC0+cmVsb2FkX3ZhbCk7CisrCWpoNzExMF90aW1lcl9z ZXRfcmVsb2FkKGNsa2V2dCk7CisrCWpoNzExMF90aW1lcl9pbnRfZW5hYmxlKGNsa2V2dCk7Cisr CWpoNzExMF90aW1lcl9lbmFibGUoY2xrZXZ0KTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBf dGltZXJfdGlja19yZXN1bWUoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQorK3sKKysJ amg3MTEwX3RpbWVyX3Jlc3VtZShldnQpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGlj IHU2NCBqaDcxMTBfdGltZXJfY2xvY2tzb3VyY2VfcmVhZChzdHJ1Y3QgY2xvY2tzb3VyY2UgKmNz KQorK3sKKysJc3RydWN0IGpoNzExMF9jbGtldnQgKmNsa2V2dCA9IGNvbnRhaW5lcl9vZihjcywg c3RydWN0IGpoNzExMF9jbGtldnQsIGNzKTsKKysKKysJcmV0dXJuICh1NjQpamg3MTEwX3RpbWVy X2dldF92YWwoY2xrZXZ0KTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfY2xvY2tzb3VyY2Vf aW5pdChzdHJ1Y3Qgamg3MTEwX2Nsa2V2dCAqY2xrZXZ0KQorK3sKKysJaW50IHJldDsKKysKKysJ amg3MTEwX3RpbWVyX3NldF9tb2QoY2xrZXZ0LCBKSDcxMTBfVElNRVJfTU9EX0NPTlRJTik7Cisr CWpoNzExMF90aW1lcl9zZXRfbG9hZChjbGtldnQsIEpINzExMF9USU1FUl9NQVhfVElDS1MpOwor KworKwlyZXQgPSBqaDcxMTBfdGltZXJfaW50X2luaXRfZW5hYmxlKGNsa2V2dCk7CisrCWlmIChy ZXQpCisrCQlyZXR1cm4gcmV0OworKworKwljbGtldnQtPmNzLm5hbWUgPSBjbGtldnQtPm5hbWU7 CisrCWNsa2V2dC0+Y3MucmF0aW5nID0gSkg3MTEwX0NMT0NLX1NPVVJDRV9SQVRJTkc7CisrCWNs a2V2dC0+Y3MucmVhZCA9IGpoNzExMF90aW1lcl9jbG9ja3NvdXJjZV9yZWFkOworKwljbGtldnQt PmNzLm1hc2sgPSBDTE9DS1NPVVJDRV9NQVNLKEpINzExMF9WQUxJRF9CSVRTKTsKKysJY2xrZXZ0 LT5jcy5mbGFncyA9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTOworKworKwlyZXR1cm4gY2xv Y2tzb3VyY2VfcmVnaXN0ZXJfaHooJmNsa2V2dC0+Y3MsIGNsa2V2dC0+cmF0ZSk7CisrfQorKwor Ky8qIElSUSBoYW5kbGVyIGZvciB0aGUgdGltZXIgKi8KKytzdGF0aWMgaXJxcmV0dXJuX3Qgamg3 MTEwX3RpbWVyX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpwcml2KQorK3sKKysJc3RydWN0IGNs b2NrX2V2ZW50X2RldmljZSAqZXZ0ID0gKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKilwcml2 OworKwlzdHJ1Y3Qgamg3MTEwX2Nsa2V2dCAqY2xrZXZ0ID0gdG9famg3MTEwX2Nsa2V2dChldnQp OworKworKwlpZiAoamg3MTEwX3RpbWVyX2ludF9jbGVhcihjbGtldnQpKQorKwkJcmV0dXJuIElS UV9OT05FOworKworKwlpZiAoZXZ0LT5ldmVudF9oYW5kbGVyKQorKwkJZXZ0LT5ldmVudF9oYW5k bGVyKGV2dCk7CisrCisrCXJldHVybiBJUlFfSEFORExFRDsKKyt9CisrCisrc3RhdGljIGludCBq aDcxMTBfdGltZXJfc2V0X3BlcmlvZGljKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkK Kyt7CisrCXN0cnVjdCBqaDcxMTBfY2xrZXZ0ICpjbGtldnQgPSB0b19qaDcxMTBfY2xrZXZ0KGV2 dCk7CisrCisrCWNsa2V2dC0+cGVyaW9kaWMgPSBESVZfUk9VTkRfQ0xPU0VTVChjbGtldnQtPnJh dGUsIEhaKTsKKysJamg3MTEwX3RpbWVyX2Rpc2FibGUoY2xrZXZ0KTsKKysJamg3MTEwX3RpbWVy X3NldF9tb2QoY2xrZXZ0LCBKSDcxMTBfVElNRVJfTU9EX0NPTlRJTik7CisrCWpoNzExMF90aW1l cl9zZXRfbG9hZChjbGtldnQsIGNsa2V2dC0+cGVyaW9kaWMpOworKworKwlyZXR1cm4gamg3MTEw X3RpbWVyX2ludF9pbml0X2VuYWJsZShjbGtldnQpOworK30KKysKKytzdGF0aWMgaW50IGpoNzEx MF90aW1lcl9zZXRfb25lc2hvdChzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCisrewor KwlzdHJ1Y3Qgamg3MTEwX2Nsa2V2dCAqY2xrZXZ0ID0gdG9famg3MTEwX2Nsa2V2dChldnQpOwor KworKwlqaDcxMTBfdGltZXJfZGlzYWJsZShjbGtldnQpOworKwlqaDcxMTBfdGltZXJfc2V0X21v ZChjbGtldnQsIEpINzExMF9USU1FUl9NT0RfU0lOR0xFKTsKKysJamg3MTEwX3RpbWVyX3NldF9s b2FkKGNsa2V2dCwgSkg3MTEwX1RJTUVSX01BWF9USUNLUyk7CisrCisrCXJldHVybiBqaDcxMTBf dGltZXJfaW50X2luaXRfZW5hYmxlKGNsa2V2dCk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEw X3RpbWVyX3NldF9uZXh0X2V2ZW50KHVuc2lnbmVkIGxvbmcgbmV4dCwKKysJCQkJICAgICAgIHN0 cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKKyt7CisrCXN0cnVjdCBqaDcxMTBfY2xrZXZ0 ICpjbGtldnQgPSB0b19qaDcxMTBfY2xrZXZ0KGV2dCk7CisrCisrCWpoNzExMF90aW1lcl9kaXNh YmxlKGNsa2V2dCk7CisrCWpoNzExMF90aW1lcl9zZXRfbW9kKGNsa2V2dCwgSkg3MTEwX1RJTUVS X01PRF9TSU5HTEUpOworKwlqaDcxMTBfdGltZXJfc2V0X2xvYWQoY2xrZXZ0LCBuZXh0KTsKKysJ amg3MTEwX3RpbWVyX2VuYWJsZShjbGtldnQpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3Rh dGljIHZvaWQgamg3MTEwX3NldF9jbG9ja2V2ZW50KHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2Ug KmV2dCkKKyt7CisrCWV2dC0+ZmVhdHVyZXMgPSBDTE9DS19FVlRfRkVBVF9QRVJJT0RJQyB8Cisr CQkJQ0xPQ0tfRVZUX0ZFQVRfT05FU0hPVCB8CisrCQkJQ0xPQ0tfRVZUX0ZFQVRfRFlOSVJROwor KwlldnQtPnNldF9zdGF0ZV9zaHV0ZG93biA9IGpoNzExMF90aW1lcl9zaHV0ZG93bjsKKysJZXZ0 LT5zZXRfc3RhdGVfcGVyaW9kaWMgPSBqaDcxMTBfdGltZXJfc2V0X3BlcmlvZGljOworKwlldnQt PnNldF9zdGF0ZV9vbmVzaG90ID0gamg3MTEwX3RpbWVyX3NldF9vbmVzaG90OworKwlldnQtPnNl dF9zdGF0ZV9vbmVzaG90X3N0b3BwZWQgPSBqaDcxMTBfdGltZXJfc2h1dGRvd247CisrCWV2dC0+ dGlja19yZXN1bWUgPSBqaDcxMTBfdGltZXJfdGlja19yZXN1bWU7CisrCWV2dC0+c2V0X25leHRf ZXZlbnQgPSBqaDcxMTBfdGltZXJfc2V0X25leHRfZXZlbnQ7CisrCWV2dC0+c3VzcGVuZCA9IGpo NzExMF90aW1lcl9zdXNwZW5kOworKwlldnQtPnJlc3VtZSA9IGpoNzExMF90aW1lcl9yZXN1bWU7 CisrCWV2dC0+cmF0aW5nID0gSkg3MTEwX0NMT0NLRVZFTlRfUkFUSU5HOworK30KKysKKytzdGF0 aWMgdm9pZCBqaDcxMTBfY2xvY2tldmVudHNfcmVnaXN0ZXIoc3RydWN0IGpoNzExMF9jbGtldnQg KmNsa2V2dCkKKyt7CisrCWNsa2V2dC0+cmF0ZSA9IGNsa19nZXRfcmF0ZShjbGtldnQtPmNsayk7 CisrCisrCWpoNzExMF9zZXRfY2xvY2tldmVudCgmY2xrZXZ0LT5ldnQpOworKwljbGtldnQtPmV2 dC5uYW1lID0gY2xrZXZ0LT5uYW1lOworKwljbGtldnQtPmV2dC5pcnEgPSBjbGtldnQtPmlycTsK KysJY2xrZXZ0LT5ldnQuY3B1bWFzayA9IGNwdV9wb3NzaWJsZV9tYXNrOworKworKwljbG9ja2V2 ZW50c19jb25maWdfYW5kX3JlZ2lzdGVyKCZjbGtldnQtPmV2dCwgY2xrZXZ0LT5yYXRlLAorKwkJ CQkJSkg3MTEwX1RJTUVSX01JTl9USUNLUywgSkg3MTEwX1RJTUVSX01BWF9USUNLUyk7CisrfQor KworK3N0YXRpYyB2b2lkIGpoNzExMF9jbGtldnRfYmFzZV9pbml0KGNvbnN0IHN0cnVjdCBqaDcx MTBfdGltZXJfaW5mbyAqZGF0YSwKKysJCQkJICAgIHN0cnVjdCBqaDcxMTBfY2xrZXZ0ICpjbGtl dnQsCisrCQkJCSAgICB2b2lkIF9faW9tZW0gKmJhc2UsIGludCBjaCkKKyt7CisrCXZvaWQgX19p b21lbSAqY2hhbm5lbF9iYXNlOworKworKwljaGFubmVsX2Jhc2UgPSBiYXNlICsgZGF0YS0+Y2hh bm5lbF9iYXNlW2NoXTsKKysJY2xrZXZ0LT5iYXNlID0gY2hhbm5lbF9iYXNlOworKwljbGtldnQt PmN0cmwgPSBjaGFubmVsX2Jhc2UgKyBkYXRhLT5jdHJsOworKwljbGtldnQtPmxvYWQgPSBjaGFu bmVsX2Jhc2UgKyBkYXRhLT5sb2FkOworKwljbGtldnQtPmVuYWJsZSA9IGNoYW5uZWxfYmFzZSAr IGRhdGEtPmVuYWJsZTsKKysJY2xrZXZ0LT5yZWxvYWQgPSBjaGFubmVsX2Jhc2UgKyBkYXRhLT5y ZWxvYWQ7CisrCWNsa2V2dC0+dmFsdWUgPSBjaGFubmVsX2Jhc2UgKyBkYXRhLT52YWx1ZTsKKysJ Y2xrZXZ0LT5pbnRjbHIgPSBjaGFubmVsX2Jhc2UgKyBkYXRhLT5pbnRjbHI7CisrCWNsa2V2dC0+ aW50bWFzayA9IGNoYW5uZWxfYmFzZSArIGRhdGEtPmludG1hc2s7CisrfQorKworK3N0YXRpYyBp bnQgamg3MTEwX3RpbWVyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisrewor Kwljb25zdCBzdHJ1Y3Qgamg3MTEwX3RpbWVyX2luZm8gKmRhdGEgPSBvZl9kZXZpY2VfZ2V0X21h dGNoX2RhdGEoJnBkZXYtPmRldik7CisrCWNoYXIgbmFtZVtKSDcxMTBfVElNRVJfTkFNRV9OVU1d OworKwlzdHJ1Y3Qgamg3MTEwX3RpbWVyX3ByaXYgKnByaXY7CisrCXN0cnVjdCBqaDcxMTBfY2xr ZXZ0ICpjbGtldnQ7CisrCXN0cnVjdCBjbGsgKnBjbGs7CisrCXN0cnVjdCByZXNldF9jb250cm9s ICpyc3Q7CisrCWludCBjaDsKKysJaW50IHJldDsKKysKKysJaWYgKCFkYXRhKQorKwkJcmV0dXJu IC1FTk9FTlQ7CisrCisrCXByaXYgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc3RydWN0X3Np emUocHJpdiwgY2xrZXZ0LCBKSDcxMTBfVElNRVJfQ0hfTUFYKSwKKysJCQkgICAgR0ZQX0tFUk5F TCk7CisrCWlmICghcHJpdikKKysJCXJldHVybiAtRU5PTUVNOworKworKwlwcml2LT5iYXNlID0g ZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHBy aXYtPmJhc2UpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihw cml2LT5iYXNlKSwKKysJCQkJICAgICAiZmFpbGVkIHRvIG1hcCByZWdpc3RlcnNcbiIpOworKwor Kwlyc3QgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X2V4Y2x1c2l2ZSgmcGRldi0+ZGV2LCAiYXBi Iik7CisrCWlmIChJU19FUlIocnN0KSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5k ZXYsIFBUUl9FUlIocnN0KSwgImZhaWxlZCB0byBnZXQgYXBiIHJlc2V0XG4iKTsKKysKKysJcGNs ayA9IGRldm1fY2xrX2dldF9lbmFibGVkKCZwZGV2LT5kZXYsICJhcGIiKTsKKysJaWYgKElTX0VS UihwY2xrKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIocGNs ayksCisrCQkJCSAgICAgImZhaWxlZCB0byBnZXQgJiBlbmFibGUgYXBiIGNsb2NrXG4iKTsKKysK KysJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChyc3QpOworKwlpZiAocmV0KQorKwkJZ290 byBlcnI7CisrCisrCXByaXYtPmRldiA9ICZwZGV2LT5kZXY7CisrCXBsYXRmb3JtX3NldF9kcnZk YXRhKHBkZXYsIHByaXYpOworKworKwlmb3IgKGNoID0gMDsgY2ggPCBKSDcxMTBfVElNRVJfQ0hf TUFYOyBjaCsrKSB7CisrCQljbGtldnQgPSAmcHJpdi0+Y2xrZXZ0W2NoXTsKKysJCXNucHJpbnRm KG5hbWUsIHNpemVvZihuYW1lKSwgImNoJWQiLCBjaCk7CisrCisrCQlqaDcxMTBfY2xrZXZ0X2Jh c2VfaW5pdChkYXRhLCBjbGtldnQsIHByaXYtPmJhc2UsIGNoKTsKKysJCS8qIEVuc3VyZSB0aW1l cnMgYXJlIGRpc2FibGVkICovCisrCQlqaDcxMTBfdGltZXJfZGlzYWJsZShjbGtldnQpOworKwor KwkJcnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUoJnBkZXYtPmRldiwgbmFt ZSk7CisrCQlpZiAoSVNfRVJSKHJzdCkpIHsKKysJCQlyZXQgPSBQVFJfRVJSKHJzdCk7CisrCQkJ Z290byBlcnI7CisrCQl9CisrCisrCQljbGtldnQtPmNsayA9IGRldm1fY2xrX2dldF9lbmFibGVk KCZwZGV2LT5kZXYsIG5hbWUpOworKwkJaWYgKElTX0VSUihjbGtldnQtPmNsaykpIHsKKysJCQly ZXQgPSBQVFJfRVJSKGNsa2V2dC0+Y2xrKTsKKysJCQlnb3RvIGVycjsKKysJCX0KKysKKysJCXJl dCA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocnN0KTsKKysJCWlmIChyZXQpCisrCQkJZ290byBj aF9lcnI7CisrCisrCQljbGtldnQtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgY2gpOwor KwkJaWYgKGNsa2V2dC0+aXJxIDwgMCkgeworKwkJCXJldCA9IGNsa2V2dC0+aXJxOworKwkJCWdv dG8gY2hfZXJyOworKwkJfQorKworKwkJc25wcmludGYoY2xrZXZ0LT5uYW1lLCBzaXplb2YoY2xr ZXZ0LT5uYW1lKSwgIiVzLmNoJWQiLCBwZGV2LT5uYW1lLCBjaCk7CisrCQlqaDcxMTBfY2xvY2tl dmVudHNfcmVnaXN0ZXIoY2xrZXZ0KTsKKysKKysJCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBk ZXYtPmRldiwgY2xrZXZ0LT5pcnEsIGpoNzExMF90aW1lcl9pbnRlcnJ1cHQsCisrCQkJCSAgICAg ICBJUlFGX1RJTUVSIHwgSVJRRl9JUlFQT0xMLAorKwkJCQkgICAgICAgY2xrZXZ0LT5uYW1lLCAm Y2xrZXZ0LT5ldnQpOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGNoX2VycjsKKysKKysJCXJldCA9 IGpoNzExMF9jbG9ja3NvdXJjZV9pbml0KGNsa2V2dCk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8g Y2hfZXJyOworKwl9CisrCisrCXJldHVybiAwOworKworK2NoX2VycjoKKysJZm9yICg7IGNoIDwg MDsgY2gtLSkKKysJCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5jbGtldnRbY2hdLmNsayk7 CisrZXJyOgorKwljbGtfZGlzYWJsZV91bnByZXBhcmUocGNsayk7CisrCisrCXJldHVybiByZXQ7 CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF90aW1lcl9t YXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC10aW1lciIsIC5k YXRhID0gJmpoNzExMF90aW1lcl9kYXRhIH0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307Cisr TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3MTEwX3RpbWVyX21hdGNoKTsKKysKKytzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciBqaDcxMTBfdGltZXJfZHJpdmVyID0geworKwkucHJvYmUg PSBqaDcxMTBfdGltZXJfcHJvYmUsCisrCS5kcml2ZXIgPSB7CisrCQkubmFtZSA9ICJqaDcxMTAt dGltZXIiLAorKwkJLm9mX21hdGNoX3RhYmxlID0gamg3MTEwX3RpbWVyX21hdGNoLAorKwl9LAor K307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBfdGltZXJfZHJpdmVyKTsKKysKKytN T0RVTEVfQVVUSE9SKCJYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPiIpOwor K01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgSkg3MTEwIHRpbWVyIGRyaXZlciIpOworK01P RFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGludXg2LjQvcGF0Y2hlcy8wMDE1LWR0LWJpbmRpbmdzLW5ldC1tb3RvcmNvbW0tQWRkLXBhZC1k cml2ZXItc3RyZW5ndGgtY2YucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxNS1k dC1iaW5kaW5ncy1uZXQtbW90b3Jjb21tLUFkZC1wYWQtZHJpdmVyLXN0cmVuZ3RoLWNmLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjBmZjQxYzA1ZTQ5Y2YK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxNS1kdC1iaW5k aW5ncy1uZXQtbW90b3Jjb21tLUFkZC1wYWQtZHJpdmVyLXN0cmVuZ3RoLWNmLnBhdGNoCkBAIC0w LDAgKzEsNDEgQEAKK0Zyb20gODNiZDZkOTg4ZTIwMWI4NmEwNjE1NDk2ZmRkMjYxOTdiYjA1OWIy ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0 YXJmaXZldGVjaC5jb20+CitEYXRlOiBUdWUsIDI1IEFwciAyMDIzIDE4OjUxOjE1ICswODAwCitT dWJqZWN0OiBbUEFUQ0ggMTUvNzJdIGR0LWJpbmRpbmdzOiBuZXQ6IG1vdG9yY29tbTogQWRkIHBh ZCBkcml2ZXIgc3RyZW5ndGgKKyBjZmcKKworVGhlIG1vdG9yY29tbSBwaHkgKFlUODUzMSkgc3Vw cG9ydHMgdGhlIGFiaWxpdHkgdG8gYWRqdXN0IHRoZSBkcml2ZQorc3RyZW5ndGggb2YgdGhlIHJ4 X2Nsay9yeF9kYXRhLCB0aGUgdmFsdWUgcmFuZ2Ugb2YgcGFkIGRyaXZlcgorc3RyZW5ndGggaXMg MCB0byA3LgorCitTaWduZWQtb2ZmLWJ5OiBTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRl Y2guY29tPgorLS0tCisgLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21vdG9yY29tbSx5dDh4 eHgueWFtbCAgICB8IDEyICsrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv bmV0L21vdG9yY29tbSx5dDh4eHgueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9uZXQvbW90b3Jjb21tLHl0OHh4eC55YW1sCitpbmRleCAxNTdlM2JiY2FmNmYuLjI5YTE5 OTdhMTU3NyAxMDA2NDQKKy0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9u ZXQvbW90b3Jjb21tLHl0OHh4eC55YW1sCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvbmV0L21vdG9yY29tbSx5dDh4eHgueWFtbAorQEAgLTUyLDYgKzUyLDE4IEBAIHBy b3BlcnRpZXM6CisgICAgICAgZm9yIGEgdGltZXIuCisgICAgIHR5cGU6IGJvb2xlYW4KKyAKKysg IG1vdG9yY29tbSxyeC1jbGstZHJpdmVyLXN0cmVuZ3RoOgorKyAgICBkZXNjcmlwdGlvbjogZHJp dmUgc3RyZW5ndGggb2YgcnhfY2xrIHBhZC4KKysgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMueWFt bCMvZGVmaW5pdGlvbnMvdWludDMyCisrICAgIGVudW06IFsgMCwgMSwgMiwgMywgNCwgNSwgNiwg NyBdCisrICAgIGRlZmF1bHQ6IDMKKysKKysgIG1vdG9yY29tbSxyeC1kYXRhLWRyaXZlci1zdHJl bmd0aDoKKysgICAgZGVzY3JpcHRpb246IGRyaXZlIHN0cmVuZ3RoIG9mIHJ4X2RhdGEvcnhfY3Rs IHJnbWlpIHBhZC4KKysgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMv dWludDMyCisrICAgIGVudW06IFsgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyBdCisrICAgIGRlZmF1 bHQ6IDMKKysKKyAgIG1vdG9yY29tbSx0eC1jbGstYWRqLWVuYWJsZWQ6CisgICAgIGRlc2NyaXB0 aW9uOiB8CisgICAgICAgVGhpcyBjb25maWd1cmF0aW9uIGlzIG1haW5seSB0byBhZGFwdCB0byBW RjIgd2l0aCBKSDcxMTAgU29DLgorLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aW51eDYuNC9wYXRjaGVzLzAwMTYtbmV0LXBoeS1tb3RvcmNvbW0tQWRkLXBhZC1kcml2ZS1zdHJl bmd0aC1jZmctc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDE2LW5l dC1waHktbW90b3Jjb21tLUFkZC1wYWQtZHJpdmUtc3RyZW5ndGgtY2ZnLXN1cHBvcnQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzczODU3NzhmMjE2OQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDE2LW5ldC1waHkt bW90b3Jjb21tLUFkZC1wYWQtZHJpdmUtc3RyZW5ndGgtY2ZnLXN1cHBvcnQucGF0Y2gKQEAgLTAs MCArMSw4OSBAQAorRnJvbSBmNjY1OWViZjQ2N2YzYWI2ZGFhYjY5NmQwZjg5YTZhMDU0MGI2MWMw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtaW4gR3VvIDxzYW1pbi5ndW9Ac3Rh cmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwgMjUgQXByIDIwMjMgMTg6NDM6MjkgKzA4MDAKK1N1 YmplY3Q6IFtQQVRDSCAxNi83Ml0gbmV0OiBwaHk6IG1vdG9yY29tbTogQWRkIHBhZCBkcml2ZSBz dHJlbmd0aCBjZmcgc3VwcG9ydAorCitUaGUgbW90b3Jjb21tIHBoeSAoWVQ4NTMxKSBzdXBwb3J0 cyB0aGUgYWJpbGl0eSB0byBhZGp1c3QgdGhlIGRyaXZlCitzdHJlbmd0aCBvZiB0aGUgcnhfY2xr L3J4X2RhdGEsIGFuZCB0aGUgZGVmYXVsdCBzdHJlbmd0aCBtYXkgbm90IGJlCitzdWl0YWJsZSBm b3IgYWxsIGJvYXJkcy4gU28gYWRkIGNvbmZpZ3VyYWJsZSBvcHRpb25zIHRvIGJldHRlciBtYXRj aAordGhlIGJvYXJkcy4oZS5nLiBTdGFyRml2ZSBWaXNpb25GaXZlIDIpCisKK1NpZ25lZC1vZmYt Ynk6IFNhbWluIEd1byA8c2FtaW4uZ3VvQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJz L25ldC9waHkvbW90b3Jjb21tLmMgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0u YworaW5kZXggMmZhNWE5MGUwNzNiLi5lNWQ2YjQ5MTA0NmUgMTAwNjQ0CistLS0gYS9kcml2ZXJz L25ldC9waHkvbW90b3Jjb21tLmMKKysrKyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwor QEAgLTIzNiw2ICsyMzYsMTUgQEAKKyAgKi8KKyAjZGVmaW5lIFlUUEhZX1dDUl9UWVBFX1BVTFNF CQkJQklUKDApCisgCisrI2RlZmluZSBZVFBIWV9QQURfRFJJVkVfU1RSRU5HVEhfUkVHCQkweEEw MTAKKysjZGVmaW5lIFlUODUzMV9SR01JSV9SWENfRFNfREVGQVVMVAkJMHgzCisrI2RlZmluZSBZ VDg1MzFfUkdNSUlfUlhDX0RTX01BWAkJCTB4NworKyNkZWZpbmUgWVQ4NTMxX1JHTUlJX1JYQ19E UwkJCUdFTk1BU0soMTUsIDEzKQorKyNkZWZpbmUgWVQ4NTMxX1JHTUlJX1JYRF9EU19ERUZBVUxU CQkweDMKKysjZGVmaW5lIFlUODUzMV9SR01JSV9SWERfRFNfTUFYCQkJMHg3CisrI2RlZmluZSBZ VDg1MzFfUkdNSUlfUlhEX0RTX0xPVwkJCUdFTk1BU0soNSwgNCkgLyogQml0IDEvMCBvZiByeGRf ZHMgKi8KKysjZGVmaW5lIFlUODUzMV9SR01JSV9SWERfRFNfSEkJCQlCSVQoMTIpIC8qIEJpdCAy IG9mIHJ4ZF9kcyAqLworKworICNkZWZpbmUgWVRQSFlfU1lOQ0VfQ0ZHX1JFRwkJCTB4QTAxMgor ICNkZWZpbmUgWVQ4NTIxX1NDUl9TWU5DRV9FTkFCTEUJCQlCSVQoNSkKKyAvKiAxYjAgb3V0cHV0 IDI1bSBjbG9jaworQEAgLTE0OTQsNiArMTUwMyw3IEBAIHN0YXRpYyBpbnQgeXQ4NTIxX2NvbmZp Z19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCisgc3RhdGljIGludCB5dDg1MzFfY29u ZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKKyB7CisgCXN0cnVjdCBkZXZpY2Vf bm9kZSAqbm9kZSA9IHBoeWRldi0+bWRpby5kZXYub2Zfbm9kZTsKKysJdTMyIGRzLCB2YWw7Cisg CWludCByZXQ7CisgCisgCXJldCA9IHl0cGh5X3JnbWlpX2Nsa19kZWxheV9jb25maWdfd2l0aF9s b2NrKHBoeWRldik7CitAQCAtMTUxOCw2ICsxNTI4LDQyIEBAIHN0YXRpYyBpbnQgeXQ4NTMxX2Nv bmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCisgCQkJcmV0dXJuIHJldDsKKyAJ fQorIAorKwlkcyA9IFlUODUzMV9SR01JSV9SWENfRFNfREVGQVVMVDsKKysJaWYgKCFvZl9wcm9w ZXJ0eV9yZWFkX3UzMihub2RlLCAibW90b3Jjb21tLHJ4LWNsay1kcml2ZXItc3RyZW5ndGgiLCAm dmFsKSkgeworKwkJaWYgKHZhbCA+IFlUODUzMV9SR01JSV9SWENfRFNfTUFYKQorKwkJCXJldHVy biAtRUlOVkFMOworKworKwkJZHMgPSB2YWw7CisrCX0KKysKKysJcmV0ID0geXRwaHlfbW9kaWZ5 X2V4dF93aXRoX2xvY2socGh5ZGV2LAorKwkJCQkJIFlUUEhZX1BBRF9EUklWRV9TVFJFTkdUSF9S RUcsCisrCQkJCQkgWVQ4NTMxX1JHTUlJX1JYQ19EUywKKysJCQkJCSBGSUVMRF9QUkVQKFlUODUz MV9SR01JSV9SWENfRFMsIGRzKSk7CisrCWlmIChyZXQgPCAwKQorKwkJcmV0dXJuIHJldDsKKysK KysJZHMgPSBGSUVMRF9QUkVQKFlUODUzMV9SR01JSV9SWERfRFNfTE9XLCBZVDg1MzFfUkdNSUlf UlhEX0RTX0RFRkFVTFQpOworKwlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5vZGUsICJtb3Rv cmNvbW0scngtZGF0YS1kcml2ZXItc3RyZW5ndGgiLCAmdmFsKSkgeworKwkJaWYgKHZhbCA+IFlU ODUzMV9SR01JSV9SWERfRFNfTUFYKQorKwkJCXJldHVybiAtRUlOVkFMOworKworKwkJaWYgKHZh bCA+IEZJRUxEX01BWChZVDg1MzFfUkdNSUlfUlhEX0RTX0xPVykpIHsKKysJCQlkcyA9IHZhbCAm IEZJRUxEX01BWChZVDg1MzFfUkdNSUlfUlhEX0RTX0xPVyk7CisrCQkJZHMgPSBGSUVMRF9QUkVQ KFlUODUzMV9SR01JSV9SWERfRFNfTE9XLCBkcyk7CisrCQkJZHMgfD0gWVQ4NTMxX1JHTUlJX1JY RF9EU19ISTsKKysJCX0gZWxzZSB7CisrCQkJZHMgPSBGSUVMRF9QUkVQKFlUODUzMV9SR01JSV9S WERfRFNfTE9XLCB2YWwpOworKwkJfQorKwl9CisrCisrCXJldCA9IHl0cGh5X21vZGlmeV9leHRf d2l0aF9sb2NrKHBoeWRldiwKKysJCQkJCSBZVFBIWV9QQURfRFJJVkVfU1RSRU5HVEhfUkVHLAor KwkJCQkJIFlUODUzMV9SR01JSV9SWERfRFNfTE9XIHwgWVQ4NTMxX1JHTUlJX1JYRF9EU19ISSwK KysJCQkJCSBkcyk7CisrCWlmIChyZXQgPCAwKQorKwkJcmV0dXJuIHJldDsKKysKKyAJcmV0dXJu IDA7CisgfQorIAorLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9w YXRjaGVzLzAwMTctZHQtYmluZGluZ3MtcXNwaS1jZG5zLXFzcGktbm9yLUFkZC1jbG9ja3MtZm9y LVN0YXJGaS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDE3LWR0LWJpbmRpbmdz LXFzcGktY2Rucy1xc3BpLW5vci1BZGQtY2xvY2tzLWZvci1TdGFyRmkucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYzNlYzA3MDczNjg1ZQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDE3LWR0LWJpbmRpbmdzLXFzcGkt Y2Rucy1xc3BpLW5vci1BZGQtY2xvY2tzLWZvci1TdGFyRmkucGF0Y2gKQEAgLTAsMCArMSw2NSBA QAorRnJvbSA3M2ZlODM1ZmY1NzJjZmM2ZDFlYWNmZGE4MTcyMmIwOTlhZDI5Mjk4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZl dGVjaC5jb20+CitEYXRlOiBNb24sIDE5IEp1biAyMDIzIDE2OjM1OjE1ICswODAwCitTdWJqZWN0 OiBbUEFUQ0ggMTcvNzJdIGR0LWJpbmRpbmdzOiBxc3BpOiBjZG5zLHFzcGktbm9yOiBBZGQgY2xv Y2tzIGZvcgorIFN0YXJGaXZlIEpINzExMCBTb0MKKworVGhlIFFTUEkgY29udHJvbGxlciBuZWVk cyB0aHJlZSBjbG9jayBpdGVtcyB0byB3b3JrIHByb3Blcmx5IG9uIFN0YXJGaXZlCitKSDcxMTAg U29DLCBzbyB0aGVyZSBpcyBuZWVkIHRvIGNoYW5nZSB0aGUgbWF4SXRlbXMncyB2YWx1ZSB0byAz LiBPdGhlcgorcGxhdGZvcm1zIGRvIG5vdCBoYXZlIHRoaXMgY29uc3RyYWludC4KKworU2lnbmVk LW9mZi1ieTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CitSZXZp ZXdlZC1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1i eTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KKy0tLQorIC4uLi9i aW5kaW5ncy9zcGkvY2Rucyxxc3BpLW5vci55YW1sICAgICAgICAgICB8IDIwICsrKysrKysrKysr KysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NwaS9j ZG5zLHFzcGktbm9yLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc3Bp L2NkbnMscXNwaS1ub3IueWFtbAoraW5kZXggYjMxMDA2OTc2MmRkLi4xYjgzY2JiOWEwODYgMTAw NjQ0CistLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc3BpL2NkbnMscXNw aS1ub3IueWFtbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NwaS9j ZG5zLHFzcGktbm9yLnlhbWwKK0BAIC0yNiw2ICsyNiwxNSBAQCBhbGxPZjoKKyAgICAgICAgICAg ICBjb25zdDogc3RhcmZpdmUsamg3MTEwLXFzcGkKKyAgICAgdGhlbjoKKyAgICAgICBwcm9wZXJ0 aWVzOgorKyAgICAgICAgY2xvY2tzOgorKyAgICAgICAgICBtYXhJdGVtczogMworKworKyAgICAg ICAgY2xvY2stbmFtZXM6CisrICAgICAgICAgIGl0ZW1zOgorKyAgICAgICAgICAgIC0gY29uc3Q6 IHJlZgorKyAgICAgICAgICAgIC0gY29uc3Q6IGFoYgorKyAgICAgICAgICAgIC0gY29uc3Q6IGFw YgorKworICAgICAgICAgcmVzZXRzOgorICAgICAgICAgICBtaW5JdGVtczogMgorICAgICAgICAg ICBtYXhJdGVtczogMworQEAgLTM4LDYgKzQ3LDkgQEAgYWxsT2Y6CisgCisgICAgIGVsc2U6Cisg ICAgICAgcHJvcGVydGllczoKKysgICAgICAgIGNsb2NrczoKKysgICAgICAgICAgbWF4SXRlbXM6 IDEKKysKKyAgICAgICAgIHJlc2V0czoKKyAgICAgICAgICAgbWF4SXRlbXM6IDIKKyAKK0BAIC03 MCw3ICs4MiwxMyBAQCBwcm9wZXJ0aWVzOgorICAgICBtYXhJdGVtczogMQorIAorICAgY2xvY2tz OgorLSAgICBtYXhJdGVtczogMQorKyAgICBtYXhJdGVtczogMworKworKyAgY2xvY2stbmFtZXM6 CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHJlZgorKyAgICAgIC0gY29uc3Q6IGFoYgor KyAgICAgIC0gY29uc3Q6IGFwYgorIAorICAgY2RucyxmaWZvLWRlcHRoOgorICAgICBkZXNjcmlw dGlvbjoKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDE4LXNwaS1jYWRlbmNlLXF1YWRzcGktQWRkLWNsb2NrLWNvbmZpZ3VyYXRpb24tZm9yLVN0 YXIucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxOC1zcGktY2FkZW5jZS1xdWFk c3BpLUFkZC1jbG9jay1jb25maWd1cmF0aW9uLWZvci1TdGFyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmEzODFlMDIyMGIwMDkKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxOC1zcGktY2FkZW5jZS1xdWFkc3BpLUFk ZC1jbG9jay1jb25maWd1cmF0aW9uLWZvci1TdGFyLnBhdGNoCkBAIC0wLDAgKzEsODAgQEAKK0Zy b20gODhlY2ZjZmRlNWYyMzBlYWVlNTA5ZGQxOWMzN2I2YjgxMWEzN2E3ZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRlY2gu Y29tPgorRGF0ZTogTW9uLCAxOSBKdW4gMjAyMyAxNjozNToxNiArMDgwMAorU3ViamVjdDogW1BB VENIIDE4LzcyXSBzcGk6IGNhZGVuY2UtcXVhZHNwaTogQWRkIGNsb2NrIGNvbmZpZ3VyYXRpb24g Zm9yCisgU3RhckZpdmUgSkg3MTEwIFFTUEkKKworQWRkIFFTUEkgY2xvY2sgb3BlcmF0aW9uIGlu IGRldmljZSBwcm9iZS4KKworU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1 QHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJm aXZldGVjaC5jb20+CitSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5j b20+CitDbG9zZXM6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL29lLWtidWlsZC1hbGwvMjAyMzA2 MDIyMDE3LlVid2pqV1JOLWxrcEBpbnRlbC5jb20vCitSZXBvcnRlZC1ieTogSnVsaWEgTGF3YWxs IDxqdWxpYS5sYXdhbGxAaW5yaWEuZnI+CitDbG9zZXM6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L3IvMjAyMzA2MDQwNjQ0LjZaSHM1NXg0LWxrcEBpbnRlbC5jb20vCistLS0KKyBkcml2ZXJzL3Nw aS9zcGktY2FkZW5jZS1xdWFkc3BpLmMgfCAyMCArKysrKysrKysrKysrKysrKysrKworIDEgZmls ZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9z cGktY2FkZW5jZS1xdWFkc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS1xdWFkc3BpLmMK K2luZGV4IDMyNDQ5YmVmNDQxNS4uZGZkMmQwYjlhYWJhIDEwMDY0NAorLS0tIGEvZHJpdmVycy9z cGkvc3BpLWNhZGVuY2UtcXVhZHNwaS5jCisrKysgYi9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS1x dWFkc3BpLmMKK0BAIC02Myw2ICs2Myw4IEBAIHN0cnVjdCBjcXNwaV9zdCB7CisgCXN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UJKnBkZXY7CisgCXN0cnVjdCBzcGlfbWFzdGVyCSptYXN0ZXI7CisgCXN0 cnVjdCBjbGsJCSpjbGs7CisrCXN0cnVjdCBjbGtfYnVsa19kYXRhCSpjbGtzOworKwlpbnQJCQlu dW1fY2xrczsKKyAJdW5zaWduZWQgaW50CQlzY2xrOworIAorIAl2b2lkIF9faW9tZW0JCSppb2Jh c2U7CitAQCAtMTcxNSw2ICsxNzE3LDE2IEBAIHN0YXRpYyBpbnQgY3FzcGlfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyAJfQorIAorIAlpZiAob2ZfZGV2aWNlX2lzX2NvbXBh dGlibGUocGRldi0+ZGV2Lm9mX25vZGUsICJzdGFyZml2ZSxqaDcxMTAtcXNwaSIpKSB7CisrCQlj cXNwaS0+bnVtX2Nsa3MgPSBkZXZtX2Nsa19idWxrX2dldF9hbGwoZGV2LCAmY3FzcGktPmNsa3Mp OworKwkJaWYgKGNxc3BpLT5udW1fY2xrcyA8IDApIHsKKysJCQlkZXZfZXJyKGRldiwgIkNhbm5v dCBjbGFpbSBjbG9jazogJXVcbiIsIGNxc3BpLT5udW1fY2xrcyk7CisrCQkJcmV0dXJuIC1FSU5W QUw7CisrCQl9CisrCisrCQlyZXQgPSBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShjcXNwaS0+bnVt X2Nsa3MsIGNxc3BpLT5jbGtzKTsKKysJCWlmIChyZXQpCisrCQkJZGV2X2VycihkZXYsICJDYW5u b3QgZW5hYmxlIGNsb2NrIGNsa3NcbiIpOworKworIAkJcnN0Y19yZWYgPSBkZXZtX3Jlc2V0X2Nv bnRyb2xfZ2V0X29wdGlvbmFsX2V4Y2x1c2l2ZShkZXYsICJyc3RjX3JlZiIpOworIAkJaWYgKElT X0VSUihyc3RjX3JlZikpIHsKKyAJCQlyZXQgPSBQVFJfRVJSKHJzdGNfcmVmKTsKK0BAIC0xODE5 LDYgKzE4MzEsOSBAQCBzdGF0aWMgdm9pZCBjcXNwaV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKKyAKKyAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNxc3BpLT5jbGspOworIAor KwlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUocGRldi0+ZGV2Lm9mX25vZGUsICJzdGFyZml2 ZSxqaDcxMTAtcXNwaSIpKQorKwkJY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUoY3FzcGktPm51 bV9jbGtzLCBjcXNwaS0+Y2xrcyk7CisrCisgCXBtX3J1bnRpbWVfcHV0X3N5bmMoJnBkZXYtPmRl dik7CisgCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsKKyB9CitAQCAtMTgzNCw2ICsx ODQ5LDkgQEAgc3RhdGljIGludCBjcXNwaV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKKyAK KyAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNxc3BpLT5jbGspOworIAorKwlpZiAob2ZfZGV2aWNl X2lzX2NvbXBhdGlibGUoZGV2LT5vZl9ub2RlLCAic3RhcmZpdmUsamg3MTEwLXFzcGkiKSkKKysJ CWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKGNxc3BpLT5udW1fY2xrcywgY3FzcGktPmNsa3Mp OworKworIAlyZXR1cm4gcmV0OworIH0KKyAKK0BAIC0xODQzLDYgKzE4NjEsOCBAQCBzdGF0aWMg aW50IGNxc3BpX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCisgCXN0cnVjdCBzcGlfbWFzdGVy ICptYXN0ZXIgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKyAKKyAJY2xrX3ByZXBhcmVfZW5hYmxl KGNxc3BpLT5jbGspOworKwlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2LT5vZl9ub2Rl LCAic3RhcmZpdmUsamg3MTEwLXFzcGkiKSkKKysJCWNsa19idWxrX3ByZXBhcmVfZW5hYmxlKGNx c3BpLT5udW1fY2xrcywgY3FzcGktPmNsa3MpOworIAljcXNwaV93YWl0X2lkbGUoY3FzcGkpOwor IAljcXNwaV9jb250cm9sbGVyX2luaXQoY3FzcGkpOworIAorLS0gCisyLjQxLjAKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMTktZHQtYmluZGluZ3MtcHdtLUFkZC1T dGFyRml2ZS1QV00tbW9kdWxlLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMTkt ZHQtYmluZGluZ3MtcHdtLUFkZC1TdGFyRml2ZS1QV00tbW9kdWxlLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjY0Yzc0NzBkMzZhZjgKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAxOS1kdC1iaW5kaW5ncy1wd20tQWRk LVN0YXJGaXZlLVBXTS1tb2R1bGUucGF0Y2gKQEAgLTAsMCArMSw4MCBAQAorRnJvbSA2OTE5ZWZi MWUyNmE2OWYxNTJjNWIyN2YzZTVkOGEyMjY2YjY4ZDczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CitEYXRl OiBUaHUsIDEgSnVuIDIwMjMgMTY6NTE6NTEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxOS83Ml0g ZHQtYmluZGluZ3M6IHB3bTogQWRkIFN0YXJGaXZlIFBXTSBtb2R1bGUKKworQWRkIGRvY3VtZW50 YXRpb24gdG8gZGVzY3JpYmUgU3RhckZpdmUgUHVsc2UgV2lkdGggTW9kdWxhdGlvbgorY29udHJv bGxlciBkcml2ZXIuCisKK1NpZ25lZC1vZmYtYnk6IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBz dGFyZml2ZXRlY2guY29tPgorUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGtyenlz enRvZi5rb3psb3dza2lAbGluYXJvLm9yZz4KK1Jldmlld2VkLWJ5OiBIYWwgRmVuZyA8aGFsLmZl bmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9iaW5kaW5ncy9wd20vc3RhcmZpdmUsamg3 MTAwLXB3bS55YW1sICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdl ZCwgNTUgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvcHdtL3N0YXJmaXZlLGpoNzEwMC1wd20ueWFtbAorCitkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS9zdGFyZml2ZSxqaDcx MDAtcHdtLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL3N0YXJm aXZlLGpoNzEwMC1wd20ueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uNmYxOTM3YmViOTYyCistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvcHdtL3N0YXJmaXZlLGpoNzEwMC1wd20ueWFtbAorQEAgLTAsMCAr MSw1NSBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSBPUiBCU0Qt Mi1DbGF1c2UKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9z Y2hlbWFzL3B3bS9zdGFyZml2ZSxqaDcxMDAtcHdtLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2Rl dmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZl IEpINzEwMCBhbmQgSkg3MTEwIFBXTSBjb250cm9sbGVyCisrCisrbWFpbnRhaW5lcnM6CisrICAt IFdpbGxpYW0gUWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRlY2guY29tPgorKworK2Rlc2NyaXB0 aW9uOgorKyAgU3RhckZpdmUgU29DcyBjb250YWluIFBXTSBhbmQgd2hlbiBvcGVyYXRpbmcgaW4g UFdNIG1vZGUsIHRoZSBQVEMgY29yZSBnZW5lcmF0ZXMKKysgIGJpbmFyeSBzaWduYWwgd2l0aCB1 c2VyLXByb2dyYW1tYWJsZSBsb3cgYW5kIGhpZ2ggcGVyaW9kcy4gQ2xvY2sgc291cmNlIGZvciB0 aGUKKysgIFBXTSBjYW4gYmUgZWl0aGVyIHN5c3RlbSBjbG9jayBvciBleHRlcm5hbCBjbG9jay4g RWFjaCBQV00gdGltZXIgYmxvY2sgcHJvdmlkZXMgOAorKyAgUFdNIGNoYW5uZWxzLgorKworK2Fs bE9mOgorKyAgLSAkcmVmOiBwd20ueWFtbCMKKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJs ZToKKysgICAgZW51bToKKysgICAgICAtIHN0YXJmaXZlLGpoNzEwMC1wd20KKysgICAgICAtIHN0 YXJmaXZlLGpoNzExMC1wd20KKysKKysgIHJlZzoKKysgICAgbWF4SXRlbXM6IDEKKysKKysgIGNs b2NrczoKKysgICAgbWF4SXRlbXM6IDEKKysKKysgIHJlc2V0czoKKysgICAgbWF4SXRlbXM6IDEK KysKKysgICIjcHdtLWNlbGxzIjoKKysgICAgY29uc3Q6IDMKKysKKytyZXF1aXJlZDoKKysgIC0g Y29tcGF0aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIHJlc2V0cworKworK2FkZGl0 aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIHB3bUAx MjQ5MDAwMCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEwMC1wd20iOwor KyAgICAgICAgcmVnID0gPDB4MTI0OTAwMDAgMHgxMDAwMD47CisrICAgICAgICBjbG9ja3MgPSA8 JmNsa2dlbiAxODE+OworKyAgICAgICAgcmVzZXRzID0gPCZyc3RnZW4gMTA5PjsKKysgICAgICAg ICNwd20tY2VsbHMgPSA8Mz47CisrICAgIH07CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAyMC1wd20tc3RhcmZpdmUtQWRkLVBXTS1kcml2ZXIt c3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDIwLXB3bS1zdGFyZml2 ZS1BZGQtUFdNLWRyaXZlci1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAuLmZmNThhMTM1NjI4MDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDAyMC1wd20tc3RhcmZpdmUtQWRkLVBXTS1kcml2ZXItc3VwcG9y dC5wYXRjaApAQCAtMCwwICsxLDI1MSBAQAorRnJvbSA3ODY5ODIxMDZhOWUzY2NiOTAzN2YzOWQ4 YzhkNDVjNzYyMjg5MTg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2lsbGlhbSBR aXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDEgSnVuIDIwMjMg MTY6NTE6NTIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAyMC83Ml0gcHdtOiBzdGFyZml2ZTogQWRk IFBXTSBkcml2ZXIgc3VwcG9ydAorCitBZGQgUHVsc2UgV2lkdGggTW9kdWxhdGlvbiBkcml2ZXIg c3VwcG9ydCBmb3IgU3RhckZpdmUKK0pINzEwMCBhbmQgSkg3MTEwIFNvQy4KKworQ28tZGV2ZWxv cGVkLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYt Ynk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTog V2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJz L3B3bS9LY29uZmlnICAgICAgICAgICAgfCAgIDkgKysKKyBkcml2ZXJzL3B3bS9NYWtlZmlsZSAg ICAgICAgICAgfCAgIDEgKworIGRyaXZlcnMvcHdtL3B3bS1zdGFyZml2ZS1wdGMuYyB8IDE5MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDIwMiBp bnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcHdtL3B3bS1zdGFyZml2 ZS1wdGMuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vS2NvbmZpZyBiL2RyaXZlcnMvcHdt L0tjb25maWcKK2luZGV4IDhkZjg2MWIxZjRhMy4uZGYyYmM0Y2UzZjFmIDEwMDY0NAorLS0tIGEv ZHJpdmVycy9wd20vS2NvbmZpZworKysrIGIvZHJpdmVycy9wd20vS2NvbmZpZworQEAgLTU0OCw2 ICs1NDgsMTUgQEAgY29uZmlnIFBXTV9TUFJECisgCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBh cyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQorIAkgIHdpbGwgYmUgY2FsbGVk IHB3bS1zcHJkLgorIAorK2NvbmZpZyBQV01fU1RBUkZJVkVfUFRDCisrCXRyaXN0YXRlICJTdGFy Rml2ZSBQV00gUFRDIHN1cHBvcnQiCisrCWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8fCBDT01Q SUxFX1RFU1QKKysJaGVscAorKwkgIEdlbmVyaWMgUFdNIGZyYW1ld29yayBkcml2ZXIgZm9yIFN0 YXJGaXZlIFNvQ3MuCisrCisrCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwg Y2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQorKwkgIHdpbGwgYmUgY2FsbGVkIHB3bS1zdGFyZml2 ZS1wdGMuCisrCisgY29uZmlnIFBXTV9TVEkKKyAJdHJpc3RhdGUgIlNUaUg0eHggUFdNIHN1cHBv cnQiCisgCWRlcGVuZHMgb24gQVJDSF9TVEkgfHwgQ09NUElMRV9URVNUCitkaWZmIC0tZ2l0IGEv ZHJpdmVycy9wd20vTWFrZWZpbGUgYi9kcml2ZXJzL3B3bS9NYWtlZmlsZQoraW5kZXggMTk4OTli OTEyZTAwLi45OTQxMDRhYWE5YjQgMTAwNjQ0CistLS0gYS9kcml2ZXJzL3B3bS9NYWtlZmlsZQor KysrIGIvZHJpdmVycy9wd20vTWFrZWZpbGUKK0BAIC01MCw2ICs1MCw3IEBAIG9iai0kKENPTkZJ R19QV01fU0lGSVZFKQkrPSBwd20tc2lmaXZlLm8KKyBvYmotJChDT05GSUdfUFdNX1NMMjhDUExE KQkrPSBwd20tc2wyOGNwbGQubworIG9iai0kKENPTkZJR19QV01fU1BFQVIpCQkrPSBwd20tc3Bl YXIubworIG9iai0kKENPTkZJR19QV01fU1BSRCkJCSs9IHB3bS1zcHJkLm8KKytvYmotJChDT05G SUdfUFdNX1NUQVJGSVZFX1BUQykJKz0gcHdtLXN0YXJmaXZlLXB0Yy5vCisgb2JqLSQoQ09ORklH X1BXTV9TVEkpCQkrPSBwd20tc3RpLm8KKyBvYmotJChDT05GSUdfUFdNX1NUTTMyKQkJKz0gcHdt LXN0bTMyLm8KKyBvYmotJChDT05GSUdfUFdNX1NUTTMyX0xQKQkrPSBwd20tc3RtMzItbHAubwor ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1zdGFyZml2ZS1wdGMuYyBiL2RyaXZlcnMvcHdt L3B3bS1zdGFyZml2ZS1wdGMuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uNTdiNTczNmY2NzMyCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3B3bS9wd20t c3RhcmZpdmUtcHRjLmMKK0BAIC0wLDAgKzEsMTkyIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKKysvKgorKyAqIFBXTSBkcml2ZXIgZm9yIHRoZSBTdGFyRml2ZSBKSDcx eDAgU29DCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMyBTdGFyRml2ZSBUZWNobm9s b2d5IENvLiwgTHRkLgorKyAqLworKworKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVk ZSA8bGludXgvaW8uaD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KKysjaW5jbHVk ZSA8bGludXgvcmVzZXQuaD4KKysjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorKworKy8qIEFjY2Vz cyBQVEMgcmVnaXN0ZXIgKENOVFIsIEhSQywgTFJDIGFuZCBDVFJMKSAqLworKyNkZWZpbmUgUkVH X1BUQ19CQVNFX0FERFJfU1VCKGJhc2UsIE4pCVwKKysoKGJhc2UpICsgKCgoTikgPiAzKSA/ICgo KE4pICUgNCkgKiAweDEwICsgKDEgPDwgMTUpKSA6ICgoTikgKiAweDEwKSkpCisrI2RlZmluZSBS RUdfUFRDX1JQVENfQ05UUihiYXNlLCBOKQkoUkVHX1BUQ19CQVNFX0FERFJfU1VCKGJhc2UsIE4p KQorKyNkZWZpbmUgUkVHX1BUQ19SUFRDX0hSQyhiYXNlLCBOKQkoUkVHX1BUQ19CQVNFX0FERFJf U1VCKGJhc2UsIE4pICsgMHg0KQorKyNkZWZpbmUgUkVHX1BUQ19SUFRDX0xSQyhiYXNlLCBOKQko UkVHX1BUQ19CQVNFX0FERFJfU1VCKGJhc2UsIE4pICsgMHg4KQorKyNkZWZpbmUgUkVHX1BUQ19S UFRDX0NUUkwoYmFzZSwgTikJKFJFR19QVENfQkFTRV9BRERSX1NVQihiYXNlLCBOKSArIDB4QykK KysKKysvKiBQVENfUlBUQ19DVFJMIHJlZ2lzdGVyIGJpdHMqLworKyNkZWZpbmUgUFRDX0VOICAg ICAgQklUKDApCisrI2RlZmluZSBQVENfRUNMSyAgICBCSVQoMSkKKysjZGVmaW5lIFBUQ19ORUMg ICAgIEJJVCgyKQorKyNkZWZpbmUgUFRDX09FICAgICAgQklUKDMpCisrI2RlZmluZSBQVENfU0lH TkxFICBCSVQoNCkKKysjZGVmaW5lIFBUQ19JTlRFICAgIEJJVCg1KQorKyNkZWZpbmUgUFRDX0lO VCAgICAgQklUKDYpCisrI2RlZmluZSBQVENfQ05UUlJTVCBCSVQoNykKKysjZGVmaW5lIFBUQ19D QVBURSAgIEJJVCg4KQorKworK3N0cnVjdCBzdGFyZml2ZV9wd21fcHRjX2RldmljZSB7CisrCXN0 cnVjdCBwd21fY2hpcCBjaGlwOworKwlzdHJ1Y3QgY2xrICpjbGs7CisrCXN0cnVjdCByZXNldF9j b250cm9sICpyc3Q7CisrCXZvaWQgX19pb21lbSAqcmVnczsKKysJdTMyIGNsa19yYXRlOyAvKiBQ V00gQVBCIGNsb2NrIGZyZXF1ZW5jeSAqLworK307CisrCisrc3RhdGljIGlubGluZQorK3N0cnVj dCBzdGFyZml2ZV9wd21fcHRjX2RldmljZSAqY2hpcF90b19zdGFyZml2ZV9wdGMoc3RydWN0IHB3 bV9jaGlwICpjKQorK3sKKysJcmV0dXJuIGNvbnRhaW5lcl9vZihjLCBzdHJ1Y3Qgc3RhcmZpdmVf cHdtX3B0Y19kZXZpY2UsIGNoaXApOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3B3bV9w dGNfZ2V0X3N0YXRlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwKKysJCQkJICAgICAgc3RydWN0IHB3 bV9kZXZpY2UgKmRldiwKKysJCQkJICAgICAgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCisrewor KwlzdHJ1Y3Qgc3RhcmZpdmVfcHdtX3B0Y19kZXZpY2UgKnB3bSA9IGNoaXBfdG9fc3RhcmZpdmVf cHRjKGNoaXApOworKwl1MzIgcGVyaW9kX2RhdGEsIGR1dHlfZGF0YSwgY3RybF9kYXRhOworKwor KwlwZXJpb2RfZGF0YSA9IHJlYWRsKFJFR19QVENfUlBUQ19MUkMocHdtLT5yZWdzLCBkZXYtPmh3 cHdtKSk7CisrCWR1dHlfZGF0YSA9IHJlYWRsKFJFR19QVENfUlBUQ19IUkMocHdtLT5yZWdzLCBk ZXYtPmh3cHdtKSk7CisrCWN0cmxfZGF0YSA9IHJlYWRsKFJFR19QVENfUlBUQ19DVFJMKHB3bS0+ cmVncywgZGV2LT5od3B3bSkpOworKworKwlzdGF0ZS0+cGVyaW9kID0gRElWX1JPVU5EX0NMT1NF U1RfVUxMKCh1NjQpcGVyaW9kX2RhdGEgKiBOU0VDX1BFUl9TRUMsIHB3bS0+Y2xrX3JhdGUpOwor KwlzdGF0ZS0+ZHV0eV9jeWNsZSA9IERJVl9ST1VORF9DTE9TRVNUX1VMTCgodTY0KWR1dHlfZGF0 YSAqIE5TRUNfUEVSX1NFQywgcHdtLT5jbGtfcmF0ZSk7CisrCXN0YXRlLT5wb2xhcml0eSA9IFBX TV9QT0xBUklUWV9JTlZFUlNFRDsKKysJc3RhdGUtPmVuYWJsZWQgPSAoY3RybF9kYXRhICYgUFRD X0VOKSA/IHRydWUgOiBmYWxzZTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQg c3RhcmZpdmVfcHdtX3B0Y19hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsCisrCQkJCSAgc3Ry dWN0IHB3bV9kZXZpY2UgKmRldiwKKysJCQkJICBjb25zdCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0 ZSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9wd21fcHRjX2RldmljZSAqcHdtID0gY2hpcF90b19z dGFyZml2ZV9wdGMoY2hpcCk7CisrCXUzMiBwZXJpb2RfZGF0YSwgZHV0eV9kYXRhLCBjdHJsX2Rh dGEgPSAwOworKworKwlpZiAoc3RhdGUtPnBvbGFyaXR5ICE9IFBXTV9QT0xBUklUWV9JTlZFUlNF RCkKKysJCXJldHVybiAtRUlOVkFMOworKworKwlwZXJpb2RfZGF0YSA9IERJVl9ST1VORF9DTE9T RVNUX1VMTChzdGF0ZS0+cGVyaW9kICogcHdtLT5jbGtfcmF0ZSwKKysJCQkJCSAgICBOU0VDX1BF Ul9TRUMpOworKwlkdXR5X2RhdGEgPSBESVZfUk9VTkRfQ0xPU0VTVF9VTEwoc3RhdGUtPmR1dHlf Y3ljbGUgKiBwd20tPmNsa19yYXRlLAorKwkJCQkJICBOU0VDX1BFUl9TRUMpOworKworKwl3cml0 ZWwocGVyaW9kX2RhdGEsIFJFR19QVENfUlBUQ19MUkMocHdtLT5yZWdzLCBkZXYtPmh3cHdtKSk7 CisrCXdyaXRlbChkdXR5X2RhdGEsIFJFR19QVENfUlBUQ19IUkMocHdtLT5yZWdzLCBkZXYtPmh3 cHdtKSk7CisrCXdyaXRlbCgwLCAgUkVHX1BUQ19SUFRDX0NOVFIocHdtLT5yZWdzLCBkZXYtPmh3 cHdtKSk7CisrCisrCWN0cmxfZGF0YSA9IHJlYWRsKFJFR19QVENfUlBUQ19DVFJMKHB3bS0+cmVn cywgZGV2LT5od3B3bSkpOworKwlpZiAoc3RhdGUtPmVuYWJsZWQpCisrCQl3cml0ZWwoY3RybF9k YXRhIHwgUFRDX0VOIHwgUFRDX09FLCBSRUdfUFRDX1JQVENfQ1RSTChwd20tPnJlZ3MsIGRldi0+ aHdwd20pKTsKKysJZWxzZQorKwkJd3JpdGVsKGN0cmxfZGF0YSAmIH4oUFRDX0VOIHwgUFRDX09F KSwgUkVHX1BUQ19SUFRDX0NUUkwocHdtLT5yZWdzLCBkZXYtPmh3cHdtKSk7CisrCisrCXJldHVy biAwOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHB3bV9vcHMgc3RhcmZpdmVfcHdtX3B0 Y19vcHMgPSB7CisrCS5nZXRfc3RhdGUJPSBzdGFyZml2ZV9wd21fcHRjX2dldF9zdGF0ZSwKKysJ LmFwcGx5CQk9IHN0YXJmaXZlX3B3bV9wdGNfYXBwbHksCisrCS5vd25lcgkJPSBUSElTX01PRFVM RSwKKyt9OworKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfcHdtX3B0Y19wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRl djsKKysJc3RydWN0IHN0YXJmaXZlX3B3bV9wdGNfZGV2aWNlICpwd207CisrCXN0cnVjdCBwd21f Y2hpcCAqY2hpcDsKKysJaW50IHJldDsKKysKKysJcHdtID0gZGV2bV9remFsbG9jKGRldiwgc2l6 ZW9mKCpwd20pLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFwd20pCisrCQlyZXR1cm4gLUVOT01FTTsK KysKKysJY2hpcCA9ICZwd20tPmNoaXA7CisrCWNoaXAtPmRldiA9IGRldjsKKysJY2hpcC0+b3Bz ID0gJnN0YXJmaXZlX3B3bV9wdGNfb3BzOworKwljaGlwLT5ucHdtID0gODsKKysJY2hpcC0+b2Zf cHdtX25fY2VsbHMgPSAzOworKworKwlwd20tPnJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBf cmVzb3VyY2UocGRldiwgMCk7CisrCWlmIChJU19FUlIocHdtLT5yZWdzKSkKKysJCXJldHVybiBk ZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwd20tPnJlZ3MpLAorKwkJCQkgICAgICJVbmFibGUg dG8gbWFwIElPIHJlc291cmNlc1xuIik7CisrCisrCXB3bS0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRl diwgTlVMTCk7CisrCWlmIChJU19FUlIocHdtLT5jbGspKQorKwkJcmV0dXJuIGRldl9lcnJfcHJv YmUoZGV2LCBQVFJfRVJSKHB3bS0+Y2xrKSwKKysJCQkJICAgICAiVW5hYmxlIHRvIGdldCBwd20n cyBjbG9ja1xuIik7CisrCisrCXB3bS0+cnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNs dXNpdmUoZGV2LCBOVUxMKTsKKysJaWYgKElTX0VSUihwd20tPnJzdCkpCisrCQlyZXR1cm4gZGV2 X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHdtLT5yc3QpLAorKwkJCQkgICAgICJVbmFibGUgdG8g Z2V0IHB3bSdzIHJlc2V0XG4iKTsKKysKKysJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHB3bS0+ Y2xrKTsKKysJaWYgKHJldCkgeworKwkJZGV2X2VycihkZXYsCisrCQkJIkZhaWxlZCB0byBlbmFi bGUgY2xvY2sgZm9yIHB3bTogJWRcbiIsIHJldCk7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisr CXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocHdtLT5yc3QpOworKworKwlwd20tPmNsa19yYXRlID0g Y2xrX2dldF9yYXRlKHB3bS0+Y2xrKTsKKysJaWYgKHB3bS0+Y2xrX3JhdGUgPD0gMCkgeworKwkJ ZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGdldCBBUEIgY2xvY2sgcmF0ZVxuIik7CisrCQlyZXR1 cm4gLUVJTlZBTDsKKysJfQorKworKwlyZXQgPSBkZXZtX3B3bWNoaXBfYWRkKGRldiwgY2hpcCk7 CisrCWlmIChyZXQgPCAwKSB7CisrCQlkZXZfZXJyKGRldiwgIkNhbm5vdCByZWdpc3RlciBQVEM6 ICVkXG4iLCByZXQpOworKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHB3bS0+Y2xrKTsKKysJCXJl c2V0X2NvbnRyb2xfYXNzZXJ0KHB3bS0+cnN0KTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJ cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHdtKTsKKysKKysJcmV0dXJuIDA7CisrfQorKwor K3N0YXRpYyBpbnQgc3RhcmZpdmVfcHdtX3B0Y19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqZGV2KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX3B3bV9wdGNfZGV2aWNlICpwd20gPSBwbGF0 Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOworKworKwlyZXNldF9jb250cm9sX2Fzc2VydChwd20tPnJz dCk7CisrCWNsa19kaXNhYmxlX3VucHJlcGFyZShwd20tPmNsayk7CisrCisrCXJldHVybiAwOwor K30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV9wd21fcHRj X29mX21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTAwLXB3bSIg fSwKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcHdtIiB9LAorKwl7IC8qIHNl bnRpbmVsICovIH0KKyt9OworK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX3B3bV9w dGNfb2ZfbWF0Y2gpOworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN0YXJmaXZl X3B3bV9wdGNfZHJpdmVyID0geworKwkucHJvYmUgPSBzdGFyZml2ZV9wd21fcHRjX3Byb2JlLAor KwkucmVtb3ZlID0gc3RhcmZpdmVfcHdtX3B0Y19yZW1vdmUsCisrCS5kcml2ZXIgPSB7CisrCQku bmFtZSA9ICJwd20tc3RhcmZpdmUtcHRjIiwKKysJCS5vZl9tYXRjaF90YWJsZSA9IHN0YXJmaXZl X3B3bV9wdGNfb2ZfbWF0Y2gsCisrCX0sCisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0 YXJmaXZlX3B3bV9wdGNfZHJpdmVyKTsKKysKKytNT0RVTEVfQVVUSE9SKCJKaWVxaW4gQ2hlbiIp OworK01PRFVMRV9BVVRIT1IoIkhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPiIp OworK01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgUFdNIFBUQyBkcml2ZXIiKTsKKytNT0RV TEVfTElDRU5TRSgiR1BMIik7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDAyMS1jcnlwdG8taGFzaC1BZGQtc3RhdGVzaXplLXRvLWNyeXB0b19h aGFzaC5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDIxLWNyeXB0by1oYXNoLUFk ZC1zdGF0ZXNpemUtdG8tY3J5cHRvX2FoYXNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjFmNDFjYmVhNWM0NjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAyMS1jcnlwdG8taGFzaC1BZGQtc3RhdGVzaXplLXRvLWNy eXB0b19haGFzaC5wYXRjaApAQCAtMCwwICsxLDc4IEBACitGcm9tIDk0OWRiZDEwOTlmZGY2YmEz ODU0OTgzMDQ5ZGVkNDk0OTZmMTZhZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBI ZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CitEYXRlOiBUaHUsIDIwIEFw ciAyMDIzIDE4OjA1OjE2ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMjEvNzJdIGNyeXB0bzogaGFz aCAtIEFkZCBzdGF0ZXNpemUgdG8gY3J5cHRvX2FoYXNoCisKK0FzIGFoYXNoIGRyaXZlcnMgbWF5 IG5lZWQgdG8gdXNlIGZhbGxiYWNrcywgdGhlaXIgc3RhdGUgc2l6ZQoraXMgdGh1cyB2YXJpYWJs ZS4gIERlYWwgd2l0aCB0aGlzIGJ5IG1ha2luZyBpdCBhbiBhdHRyaWJ1dGUKK29mIGNyeXB0b19h aGFzaC4KKworU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEu b3JnLmF1PgorLS0tCisgY3J5cHRvL2FoYXNoLmMgICAgICAgICAgICAgICAgIHwgMyArKysKKyBp bmNsdWRlL2NyeXB0by9oYXNoLmggICAgICAgICAgfCAzICsrLQorIGluY2x1ZGUvY3J5cHRvL2lu dGVybmFsL2hhc2guaCB8IDYgKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jcnlwdG8vYWhhc2guYyBiL2NyeXB0 by9haGFzaC5jCitpbmRleCAzMjQ2NTEwNDA0NDYuLjk5ODY3MzgyYWJhYSAxMDA2NDQKKy0tLSBh L2NyeXB0by9haGFzaC5jCisrKysgYi9jcnlwdG8vYWhhc2guYworQEAgLTQzMiw2ICs0MzIsOCBA QCBzdGF0aWMgaW50IGNyeXB0b19haGFzaF9pbml0X3RmbShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZt KQorIAorIAloYXNoLT5zZXRrZXkgPSBhaGFzaF9ub3NldGtleTsKKyAKKysJY3J5cHRvX2FoYXNo X3NldF9zdGF0ZXNpemUoaGFzaCwgYWxnLT5oYWxnLnN0YXRlc2l6ZSk7CisrCisgCWlmICh0Zm0t Pl9fY3J0X2FsZy0+Y3JhX3R5cGUgIT0gJmNyeXB0b19haGFzaF90eXBlKQorIAkJcmV0dXJuIGNy eXB0b19pbml0X3NoYXNoX29wc19hc3luYyh0Zm0pOworIAorQEAgLTU3Myw2ICs1NzUsNyBAQCBz dHJ1Y3QgY3J5cHRvX2FoYXNoICpjcnlwdG9fY2xvbmVfYWhhc2goc3RydWN0IGNyeXB0b19haGFz aCAqaGFzaCkKKyAJbmhhc2gtPmltcG9ydCA9IGhhc2gtPmltcG9ydDsKKyAJbmhhc2gtPnNldGtl eSA9IGhhc2gtPnNldGtleTsKKyAJbmhhc2gtPnJlcXNpemUgPSBoYXNoLT5yZXFzaXplOworKwlu aGFzaC0+c3RhdGVzaXplID0gaGFzaC0+c3RhdGVzaXplOworIAorIAlpZiAodGZtLT5fX2NydF9h bGctPmNyYV90eXBlICE9ICZjcnlwdG9fYWhhc2hfdHlwZSkKKyAJCXJldHVybiBjcnlwdG9fY2xv bmVfc2hhc2hfb3BzX2FzeW5jKG5oYXNoLCBoYXNoKTsKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2Ny eXB0by9oYXNoLmggYi9pbmNsdWRlL2NyeXB0by9oYXNoLmgKK2luZGV4IGU2OTU0MmQ4NmEyYi4u ZjdjMmEyMmNkNzc2IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9jcnlwdG8vaGFzaC5oCisrKysgYi9p bmNsdWRlL2NyeXB0by9oYXNoLmgKK0BAIC0yNjAsNiArMjYwLDcgQEAgc3RydWN0IGNyeXB0b19h aGFzaCB7CisgCWludCAoKnNldGtleSkoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1 OCAqa2V5LAorIAkJICAgICAgdW5zaWduZWQgaW50IGtleWxlbik7CisgCisrCXVuc2lnbmVkIGlu dCBzdGF0ZXNpemU7CisgCXVuc2lnbmVkIGludCByZXFzaXplOworIAlzdHJ1Y3QgY3J5cHRvX3Rm bSBiYXNlOworIH07CitAQCAtNDAwLDcgKzQwMSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg aW50IGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKKyAg Ki8KKyBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcnlwdG9fYWhhc2hfc3RhdGVzaXplKHN0 cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKKyB7CistCXJldHVybiBjcnlwdG9faGFzaF9hbGdfY29t bW9uKHRmbSktPnN0YXRlc2l6ZTsKKysJcmV0dXJuIHRmbS0+c3RhdGVzaXplOworIH0KKyAKKyBz dGF0aWMgaW5saW5lIHUzMiBjcnlwdG9fYWhhc2hfZ2V0X2ZsYWdzKHN0cnVjdCBjcnlwdG9fYWhh c2ggKnRmbSkKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2NyeXB0by9pbnRlcm5hbC9oYXNoLmggYi9p bmNsdWRlL2NyeXB0by9pbnRlcm5hbC9oYXNoLmgKK2luZGV4IDM3ZWRmM2Y0ZThhZi4uYjkyNWY4 MjIwNmVmIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9jcnlwdG8vaW50ZXJuYWwvaGFzaC5oCisrKysg Yi9pbmNsdWRlL2NyeXB0by9pbnRlcm5hbC9oYXNoLmgKK0BAIC0xNDksNiArMTQ5LDEyIEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX2FsZyAqX19jcnlwdG9fYWhhc2hfYWxnKHN0cnVjdCBj cnlwdG9fYWxnICphbGcpCisgCQkJICAgIGhhbGcpOworIH0KKyAKKytzdGF0aWMgaW5saW5lIHZv aWQgY3J5cHRvX2FoYXNoX3NldF9zdGF0ZXNpemUoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLAor KwkJCQkJICAgICAgdW5zaWduZWQgaW50IHNpemUpCisreworKwl0Zm0tPnN0YXRlc2l6ZSA9IHNp emU7CisrfQorKworIHN0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fYWhhc2hfc2V0X3JlcXNpemUo c3RydWN0IGNyeXB0b19haGFzaCAqdGZtLAorIAkJCQkJICAgIHVuc2lnbmVkIGludCByZXFzaXpl KQorIHsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDIyLWR0LWJpbmRpbmdzLWNyeXB0by1BZGQtU3RhckZpdmUtY3J5cHRvLW1vZHVsZS5wYXRj aCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDIyLWR0LWJpbmRpbmdzLWNyeXB0by1BZGQt U3RhckZpdmUtY3J5cHRvLW1vZHVsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi4yOGM2YTE3NjljMGU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuNC9wYXRjaGVzLzAwMjItZHQtYmluZGluZ3MtY3J5cHRvLUFkZC1TdGFyRml2ZS1jcnlw dG8tbW9kdWxlLnBhdGNoCkBAIC0wLDAgKzEsOTYgQEAKK0Zyb20gMjQxYTNkNjlmMmU3MTNhZDI2 N2Q3ZDcwZjc0OTZhNzk3ZGY4MTI4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpp YSBKaWUgSG8gPGppYWppZS5ob0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogTW9uLCAxNSBNYXkg MjAyMyAyMDo1Mzo1MiArMDgwMAorU3ViamVjdDogW1BBVENIIDIyLzcyXSBkdC1iaW5kaW5nczog Y3J5cHRvOiBBZGQgU3RhckZpdmUgY3J5cHRvIG1vZHVsZQorCitBZGQgZG9jdW1lbnRhdGlvbiB0 byBkZXNjcmliZSBTdGFyRml2ZSBjcnlwdG9ncmFwaGljIGVuZ2luZS4KKworQ28tZGV2ZWxvcGVk LWJ5OiBIdWFuIEZlbmcgPGh1YW4uZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1i eTogSHVhbiBGZW5nIDxodWFuLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IEppYSBKaWUgSG8gPGppYWppZS5ob0BzdGFyZml2ZXRlY2guY29tPgorUmV2aWV3ZWQtYnk6IFJv YiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+CitTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxo ZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CistLS0KKyAuLi4vY3J5cHRvL3N0YXJmaXZlLGpo NzExMC1jcnlwdG8ueWFtbCAgICAgICAgfCA3MCArKysrKysrKysrKysrKysrKysrCisgMSBmaWxl IGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2NyeXB0by9zdGFyZml2ZSxqaDcxMTAtY3J5cHRvLnlh bWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jcnlw dG8vc3RhcmZpdmUsamg3MTEwLWNyeXB0by55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL2NyeXB0by9zdGFyZml2ZSxqaDcxMTAtY3J5cHRvLnlhbWwKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjcxYTI4NzZiZDZlNAorLS0tIC9kZXYvbnVs bAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2NyeXB0by9zdGFyZml2 ZSxqaDcxMTAtY3J5cHRvLnlhbWwKK0BAIC0wLDAgKzEsNzAgQEAKKysjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiAoR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZSkKKyslWUFNTCAxLjIKKyst LS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2NyeXB0by9zdGFyZml2ZSxq aDcxMTAtY3J5cHRvLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEt c2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIENyeXB0b2dyYXBoaWMgTW9k dWxlCisrCisrbWFpbnRhaW5lcnM6CisrICAtIEppYSBKaWUgSG8gPGppYWppZS5ob0BzdGFyZml2 ZXRlY2guY29tPgorKyAgLSBXaWxsaWFtIFFpdSA8d2lsbGlhbS5xaXVAc3RhcmZpdmV0ZWNoLmNv bT4KKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgY29uc3Q6IHN0YXJmaXZl LGpoNzExMC1jcnlwdG8KKysKKysgIHJlZzoKKysgICAgbWF4SXRlbXM6IDEKKysKKysgIGNsb2Nr czoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogSGFyZHdhcmUgcmVmZXJlbmNl IGNsb2NrCisrICAgICAgLSBkZXNjcmlwdGlvbjogQUhCIHJlZmVyZW5jZSBjbG9jaworKworKyAg Y2xvY2stbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IGhjbGsKKysgICAgICAt IGNvbnN0OiBhaGIKKysKKysgIGludGVycnVwdHM6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBy ZXNldHM6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBkbWFzOgorKyAgICBpdGVtczoKKysgICAg ICAtIGRlc2NyaXB0aW9uOiBUWCBETUEgY2hhbm5lbAorKyAgICAgIC0gZGVzY3JpcHRpb246IFJY IERNQSBjaGFubmVsCisrCisrICBkbWEtbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29u c3Q6IHR4CisrICAgICAgLSBjb25zdDogcngKKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0aWJs ZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtIHJlc2V0cwor KyAgLSBkbWFzCisrICAtIGRtYS1uYW1lcworKworK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxz ZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIGNyeXB0bzogY3J5cHRvQDE2MDAwMDAwIHsK KysgICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWNyeXB0byI7CisrICAgICAg ICByZWcgPSA8MHgxNjAwMDAwMCAweDQwMDA+OworKyAgICAgICAgY2xvY2tzID0gPCZjbGsgMTU+ LCA8JmNsayAxNj47CisrICAgICAgICBjbG9jay1uYW1lcyA9ICJoY2xrIiwgImFoYiI7CisrICAg ICAgICBpbnRlcnJ1cHRzID0gPDI4PjsKKysgICAgICAgIHJlc2V0cyA9IDwmcmVzZXQgMz47Cisr ICAgICAgICBkbWFzID0gPCZkbWEgMSAyPiwKKysgICAgICAgICAgICAgICA8JmRtYSAwIDI+Owor KyAgICAgICAgZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKKysgICAgfTsKKysuLi4KKy0tIAorMi40 MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDIzLWNyeXB0by1z dGFyZml2ZS1BZGQtY3J5cHRvLWVuZ2luZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwMjMtY3J5cHRvLXN0YXJmaXZlLUFkZC1jcnlwdG8tZW5naW5lLXN1cHBvcnQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uN2ZkM2VhNWRm MzZhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDIzLWNy eXB0by1zdGFyZml2ZS1BZGQtY3J5cHRvLWVuZ2luZS1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEs MzU2IEBACitGcm9tIGZkMzgyOWQ4YjJjZmE1YzE2NTI0MThhZmYyZTYxOWFiYmNhZjdkYmMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaWEgSmllIEhvIDxqaWFqaWUuaG9Ac3RhcmZp dmV0ZWNoLmNvbT4KK0RhdGU6IE1vbiwgMTUgTWF5IDIwMjMgMjA6NTM6NTMgKzA4MDAKK1N1Ympl Y3Q6IFtQQVRDSCAyMy83Ml0gY3J5cHRvOiBzdGFyZml2ZSAtIEFkZCBjcnlwdG8gZW5naW5lIHN1 cHBvcnQKKworQWRkaW5nIGRldmljZSBwcm9iZSBhbmQgRE1BIGluaXQgZm9yIFN0YXJGaXZlIGNy eXB0b2dyYXBoaWMgbW9kdWxlLgorCitDby1kZXZlbG9wZWQtYnk6IEh1YW4gRmVuZyA8aHVhbi5m ZW5nQHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBIdWFuIEZlbmcgPGh1YW4uZmVu Z0BzdGFyZml2ZXRlY2guY29tPgorU2lnbmVkLW9mZi1ieTogSmlhIEppZSBIbyA8amlhamllLmhv QHN0YXJmaXZldGVjaC5jb20+CitTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdv bmRvci5hcGFuYS5vcmcuYXU+CistLS0KKyBkcml2ZXJzL2NyeXB0by9LY29uZmlnICAgICAgICAg ICAgICAgIHwgICAxICsKKyBkcml2ZXJzL2NyeXB0by9NYWtlZmlsZSAgICAgICAgICAgICAgIHwg ICAxICsKKyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnICAgICAgIHwgIDE3ICsrKwor IGRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL01ha2VmaWxlICAgICAgfCAgIDQgKworIGRyaXZlcnMv Y3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmMgfCAyMDEgKysrKysrKysrKysrKysrKysrKysr KysrKysKKyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5oIHwgIDYzICsrKysr KysrCisgNiBmaWxlcyBjaGFuZ2VkLCAyODcgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL01ha2VmaWxlCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWNyeXAuaAorCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9jcnlwdG8vS2NvbmZpZyBiL2RyaXZlcnMvY3J5cHRvL0tjb25maWcKK2luZGV4IDljNDQw Y2QwZmVkMC4uOWY1YjJkMjhiZmY1IDEwMDY0NAorLS0tIGEvZHJpdmVycy9jcnlwdG8vS2NvbmZp ZworKysrIGIvZHJpdmVycy9jcnlwdG8vS2NvbmZpZworQEAgLTgwNyw1ICs4MDcsNiBAQCBjb25m aWcgQ1JZUFRPX0RFVl9TQTJVTAorIAkgIGFjY2VsZXJhdGlvbiBmb3IgY3J5cHRvZ3JhcGhpYyBh bGdvcml0aG1zIG9uIHRoZXNlIGRldmljZXMuCisgCisgc291cmNlICJkcml2ZXJzL2NyeXB0by9h c3BlZWQvS2NvbmZpZyIKKytzb3VyY2UgImRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL0tjb25maWci CisgCisgZW5kaWYgIyBDUllQVE9fSFcKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9NYWtl ZmlsZSBiL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxlCitpbmRleCA1MWQzNjcwMWU3ODUuLmQ4NTlk NmE1ZjNhNCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxlCisrKysgYi9kcml2 ZXJzL2NyeXB0by9NYWtlZmlsZQorQEAgLTUwLDMgKzUwLDQgQEAgb2JqLXkgKz0geGlsaW54Lwor IG9iai15ICs9IGhpc2lsaWNvbi8KKyBvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9BTUxPR0lDX0dY TCkgKz0gYW1sb2dpYy8KKyBvYmoteSArPSBpbnRlbC8KKytvYmoteSArPSBzdGFyZml2ZS8KK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnIGIvZHJpdmVycy9jcnlw dG8vc3RhcmZpdmUvS2NvbmZpZworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uN2E1YTVkOWY5MGVkCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2NyeXB0by9z dGFyZml2ZS9LY29uZmlnCitAQCAtMCwwICsxLDE3IEBACisrIworKyMgU3RhckZpdmUgY3J5cHRv IGRyaXZlcnMgY29uZmlndXJhdGlvbgorKyMKKysKKytjb25maWcgQ1JZUFRPX0RFVl9KSDcxMTAK KysJdHJpc3RhdGUgIlN0YXJGaXZlIEpINzExMCBjcnlwdG9ncmFwaGljIGVuZ2luZSBkcml2ZXIi CisrCWRlcGVuZHMgb24gU09DX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVAorKwlzZWxlY3QgQ1JZ UFRPX0VOR0lORQorKwlzZWxlY3QgQVJNX0FNQkEKKysJc2VsZWN0IERNQURFVklDRVMKKysJc2Vs ZWN0IEFNQkFfUEwwOFgKKysJaGVscAorKwkgIFN1cHBvcnQgZm9yIFN0YXJGaXZlIEpINzExMCBj cnlwdG8gaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGVuZ2luZS4KKysJICBUaGlzIG1vZHVsZSBwcm92 aWRlcyBhY2NlbGVyYXRpb24gZm9yIHB1YmxpYyBrZXkgYWxnbywKKysJICBza2NpcGhlcnMsIEFF QUQgYW5kIGhhc2ggZnVuY3Rpb25zLgorKworKwkgIElmIHlvdSBjaG9vc2UgJ00nIGhlcmUsIHRo aXMgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGpoNzExMC1jcnlwdG8uCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9N YWtlZmlsZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNDEyMjFh Y2FlZTM5CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtl ZmlsZQorQEAgLTAsMCArMSw0IEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MAorKworK29iai0kKENPTkZJR19DUllQVE9fREVWX0pINzExMCkgKz0gamg3MTEwLWNyeXB0by5v Cisramg3MTEwLWNyeXB0by1vYmpzIDo9IGpoNzExMC1jcnlwLm8KK2RpZmYgLS1naXQgYS9kcml2 ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5jIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZp dmUvamg3MTEwLWNyeXAuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAw MC4uNGIyNTA1YzIzMTY4CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2NyeXB0by9zdGFy Zml2ZS9qaDcxMTAtY3J5cC5jCitAQCAtMCwwICsxLDIwMSBAQAorKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBDcnlwdG9ncmFwaGljIEFQSS4KKysgKgorKyAq IFN1cHBvcnQgZm9yIFN0YXJGaXZlIGhhcmR3YXJlIGNyeXB0b2dyYXBoaWMgZW5naW5lLgorKyAq IENvcHlyaWdodCAoYykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5CisrICoKKysgKi8KKysKKysj aW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisrI2luY2x1 ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4KKysjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorKyNp bmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKysjaW5jbHVkZSA8bGludXgvcG1fcnVu dGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKworKyNpbmNsdWRlICJqaDcxMTAt Y3J5cC5oIgorKworKyNkZWZpbmUgRFJJVkVSX05BTUUgICAgICAgICAgICAgImpoNzExMC1jcnlw dG8iCisrCisrc3RydWN0IHN0YXJmaXZlX2Rldl9saXN0IHsKKysJc3RydWN0IGxpc3RfaGVhZCAg ICAgICAgZGV2X2xpc3Q7CisrCXNwaW5sb2NrX3QgICAgICAgICAgICAgIGxvY2s7IC8qIHByb3Rl Y3QgZGV2X2xpc3QgKi8KKyt9OworKworK3N0YXRpYyBzdHJ1Y3Qgc3RhcmZpdmVfZGV2X2xpc3Qg ZGV2X2xpc3QgPSB7CisrCS5kZXZfbGlzdCA9IExJU1RfSEVBRF9JTklUKGRldl9saXN0LmRldl9s aXN0KSwKKysJLmxvY2sgICAgID0gX19TUElOX0xPQ0tfVU5MT0NLRUQoZGV2X2xpc3QubG9jayks CisrfTsKKysKKytzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKnN0YXJmaXZlX2NyeXBfZmluZF9k ZXYoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHgpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVf Y3J5cF9kZXYgKmNyeXAgPSBOVUxMLCAqdG1wOworKworKwlzcGluX2xvY2tfYmgoJmRldl9saXN0 LmxvY2spOworKwlpZiAoIWN0eC0+Y3J5cCkgeworKwkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXAs ICZkZXZfbGlzdC5kZXZfbGlzdCwgbGlzdCkgeworKwkJCWNyeXAgPSB0bXA7CisrCQkJYnJlYWs7 CisrCQl9CisrCQljdHgtPmNyeXAgPSBjcnlwOworKwl9IGVsc2UgeworKwkJY3J5cCA9IGN0eC0+ Y3J5cDsKKysJfQorKworKwlzcGluX3VubG9ja19iaCgmZGV2X2xpc3QubG9jayk7CisrCisrCXJl dHVybiBjcnlwOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2RtYV9pbml0KHN0cnVjdCBz dGFyZml2ZV9jcnlwX2RldiAqY3J5cCkKKyt7CisrCWRtYV9jYXBfbWFza190IG1hc2s7CisrCisr CWRtYV9jYXBfemVybyhtYXNrKTsKKysJZG1hX2NhcF9zZXQoRE1BX1NMQVZFLCBtYXNrKTsKKysK KysJY3J5cC0+dHggPSBkbWFfcmVxdWVzdF9jaGFuKGNyeXAtPmRldiwgInR4Iik7CisrCWlmIChJ U19FUlIoY3J5cC0+dHgpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoY3J5cC0+ZGV2LCBQVFJf RVJSKGNyeXAtPnR4KSwKKysJCQkJICAgICAiRXJyb3IgcmVxdWVzdGluZyB0eCBkbWEgY2hhbm5l bC5cbiIpOworKworKwljcnlwLT5yeCA9IGRtYV9yZXF1ZXN0X2NoYW4oY3J5cC0+ZGV2LCAicngi KTsKKysJaWYgKElTX0VSUihjcnlwLT5yeCkpIHsKKysJCWRtYV9yZWxlYXNlX2NoYW5uZWwoY3J5 cC0+dHgpOworKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoY3J5cC0+ZGV2LCBQVFJfRVJSKGNyeXAt PnJ4KSwKKysJCQkJICAgICAiRXJyb3IgcmVxdWVzdGluZyByeCBkbWEgY2hhbm5lbC5cbiIpOwor Kwl9CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9kbWFfY2xl YW51cChzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNyeXApCisreworKwlkbWFfcmVsZWFzZV9j aGFubmVsKGNyeXAtPnR4KTsKKysJZG1hX3JlbGVhc2VfY2hhbm5lbChjcnlwLT5yeCk7CisrfQor KworK3N0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwOworKwlzdHJ1Y3Qg cmVzb3VyY2UgKnJlczsKKysJaW50IHJldDsKKysKKysJY3J5cCA9IGRldm1fa3phbGxvYygmcGRl di0+ZGV2LCBzaXplb2YoKmNyeXApLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFjcnlwKQorKwkJcmV0 dXJuIC1FTk9NRU07CisrCisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGNyeXApOworKwlj cnlwLT5kZXYgPSAmcGRldi0+ZGV2OworKworKwljcnlwLT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9n ZXRfYW5kX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCwgJnJlcyk7CisrCWlmIChJU19FUlIoY3J5 cC0+YmFzZSkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKGNy eXAtPmJhc2UpLAorKwkJCQkgICAgICJFcnJvciByZW1hcHBpbmcgbWVtb3J5IGZvciBwbGF0Zm9y bSBkZXZpY2VcbiIpOworKworKwljcnlwLT5waHlzX2Jhc2UgPSByZXMtPnN0YXJ0OworKwljcnlw LT5kbWFfbWF4YnVyc3QgPSAzMjsKKysKKysJY3J5cC0+aGNsayA9IGRldm1fY2xrX2dldCgmcGRl di0+ZGV2LCAiaGNsayIpOworKwlpZiAoSVNfRVJSKGNyeXAtPmhjbGspKQorKwkJcmV0dXJuIGRl dl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihjcnlwLT5oY2xrKSwKKysJCQkJICAgICAi RXJyb3IgZ2V0dGluZyBoYXJkd2FyZSByZWZlcmVuY2UgY2xvY2tcbiIpOworKworKwljcnlwLT5h aGIgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgImFoYiIpOworKwlpZiAoSVNfRVJSKGNyeXAt PmFoYikpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJfRVJSKGNyeXAt PmFoYiksCisrCQkJCSAgICAgIkVycm9yIGdldHRpbmcgYWhiIHJlZmVyZW5jZSBjbG9ja1xuIik7 CisrCisrCWNyeXAtPnJzdCA9IGRldm1fcmVzZXRfY29udHJvbF9nZXRfc2hhcmVkKGNyeXAtPmRl diwgTlVMTCk7CisrCWlmIChJU19FUlIoY3J5cC0+cnN0KSkKKysJCXJldHVybiBkZXZfZXJyX3By b2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoY3J5cC0+cnN0KSwKKysJCQkJICAgICAiRXJyb3IgZ2V0 dGluZyBoYXJkd2FyZSByZXNldCBsaW5lXG4iKTsKKysKKysJY2xrX3ByZXBhcmVfZW5hYmxlKGNy eXAtPmhjbGspOworKwljbGtfcHJlcGFyZV9lbmFibGUoY3J5cC0+YWhiKTsKKysJcmVzZXRfY29u dHJvbF9kZWFzc2VydChjcnlwLT5yc3QpOworKworKwlzcGluX2xvY2soJmRldl9saXN0LmxvY2sp OworKwlsaXN0X2FkZCgmY3J5cC0+bGlzdCwgJmRldl9saXN0LmRldl9saXN0KTsKKysJc3Bpbl91 bmxvY2soJmRldl9saXN0LmxvY2spOworKworKwlyZXQgPSBzdGFyZml2ZV9kbWFfaW5pdChjcnlw KTsKKysJaWYgKHJldCkgeworKwkJaWYgKHJldCA9PSAtRVBST0JFX0RFRkVSKQorKwkJCWdvdG8g ZXJyX3Byb2JlX2RlZmVyOworKwkJZWxzZQorKwkJCWdvdG8gZXJyX2RtYV9pbml0OworKwl9Cisr CisrCS8qIEluaXRpYWxpemUgY3J5cHRvIGVuZ2luZSAqLworKwljcnlwLT5lbmdpbmUgPSBjcnlw dG9fZW5naW5lX2FsbG9jX2luaXQoJnBkZXYtPmRldiwgMSk7CisrCWlmICghY3J5cC0+ZW5naW5l KSB7CisrCQlyZXQgPSAtRU5PTUVNOworKwkJZ290byBlcnJfZW5naW5lOworKwl9CisrCisrCXJl dCA9IGNyeXB0b19lbmdpbmVfc3RhcnQoY3J5cC0+ZW5naW5lKTsKKysJaWYgKHJldCkKKysJCWdv dG8gZXJyX2VuZ2luZV9zdGFydDsKKysKKysJcmV0dXJuIDA7CisrCisrZXJyX2VuZ2luZV9zdGFy dDoKKysJY3J5cHRvX2VuZ2luZV9leGl0KGNyeXAtPmVuZ2luZSk7CisrZXJyX2VuZ2luZToKKysJ c3RhcmZpdmVfZG1hX2NsZWFudXAoY3J5cCk7CisrZXJyX2RtYV9pbml0OgorKwlzcGluX2xvY2so JmRldl9saXN0LmxvY2spOworKwlsaXN0X2RlbCgmY3J5cC0+bGlzdCk7CisrCXNwaW5fdW5sb2Nr KCZkZXZfbGlzdC5sb2NrKTsKKysKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNyeXAtPmhjbGsp OworKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3J5cC0+YWhiKTsKKysJcmVzZXRfY29udHJvbF9h c3NlcnQoY3J5cC0+cnN0KTsKKytlcnJfcHJvYmVfZGVmZXI6CisrCXJldHVybiByZXQ7CisrfQor KworK3N0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5cCA9IHBsYXRmb3Jt X2dldF9kcnZkYXRhKHBkZXYpOworKworKwljcnlwdG9fZW5naW5lX3N0b3AoY3J5cC0+ZW5naW5l KTsKKysJY3J5cHRvX2VuZ2luZV9leGl0KGNyeXAtPmVuZ2luZSk7CisrCisrCXN0YXJmaXZlX2Rt YV9jbGVhbnVwKGNyeXApOworKworKwlzcGluX2xvY2soJmRldl9saXN0LmxvY2spOworKwlsaXN0 X2RlbCgmY3J5cC0+bGlzdCk7CisrCXNwaW5fdW5sb2NrKCZkZXZfbGlzdC5sb2NrKTsKKysKKysJ Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNyeXAtPmhjbGspOworKwljbGtfZGlzYWJsZV91bnByZXBh cmUoY3J5cC0+YWhiKTsKKysJcmVzZXRfY29udHJvbF9hc3NlcnQoY3J5cC0+cnN0KTsKKysKKysJ cmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJm aXZlX2R0X2lkc1tdIF9fbWF5YmVfdW51c2VkID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJm aXZlLGpoNzExMC1jcnlwdG8iLCAuZGF0YSA9IE5VTEx9LAorKwl7fSwKKyt9OworK01PRFVMRV9E RVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX2R0X2lkcyk7CisrCisrc3RhdGljIHN0cnVjdCBwbGF0 Zm9ybV9kcml2ZXIgc3RhcmZpdmVfY3J5cF9kcml2ZXIgPSB7CisrCS5wcm9iZSAgPSBzdGFyZml2 ZV9jcnlwX3Byb2JlLAorKwkucmVtb3ZlID0gc3RhcmZpdmVfY3J5cF9yZW1vdmUsCisrCS5kcml2 ZXIgPSB7CisrCQkubmFtZSAgICAgICAgICAgPSBEUklWRVJfTkFNRSwKKysJCS5vZl9tYXRjaF90 YWJsZSA9IHN0YXJmaXZlX2R0X2lkcywKKysJfSwKKyt9OworKworK21vZHVsZV9wbGF0Zm9ybV9k cml2ZXIoc3RhcmZpdmVfY3J5cF9kcml2ZXIpOworKworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsK KytNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIEpINzExMCBDcnlwdG9ncmFwaGljIE1vZHVs ZSIpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgg Yi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5oCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4zOTNlZmQzOGIwOTgKKy0tLSAvZGV2L251bGwKKysr KyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgKK0BAIC0wLDAgKzEsNjMg QEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworKyNpZm5kZWYgX19T VEFSRklWRV9TVFJfSF9fCisrI2RlZmluZSBfX1NUQVJGSVZFX1NUUl9IX18KKysKKysjaW5jbHVk ZSA8bGludXgvZGVsYXkuaD4KKysjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKysjaW5j bHVkZSA8bGludXgvZG1hZW5naW5lLmg+CisrCisrI2luY2x1ZGUgPGNyeXB0by9lbmdpbmUuaD4K KysKKysjZGVmaW5lIFNUQVJGSVZFX0FMR19DUl9PRkZTRVQJCQkweDAKKysjZGVmaW5lIFNUQVJG SVZFX0FMR19GSUZPX09GRlNFVAkJMHg0CisrI2RlZmluZSBTVEFSRklWRV9JRV9NQVNLX09GRlNF VAkJCTB4OAorKyNkZWZpbmUgU1RBUkZJVkVfSUVfRkxBR19PRkZTRVQJCQkweGMKKysjZGVmaW5l IFNUQVJGSVZFX0RNQV9JTl9MRU5fT0ZGU0VUCQkweDEwCisrI2RlZmluZSBTVEFSRklWRV9ETUFf T1VUX0xFTl9PRkZTRVQJCTB4MTQKKysKKysjZGVmaW5lIFNUQVJGSVZFX01TR19CVUZGRVJfU0la RQkJU1pfMTZLCisrCisrdW5pb24gc3RhcmZpdmVfYWxnX2NyIHsKKysJdTMyIHY7CisrCXN0cnVj dCB7CisrCQl1MzIgc3RhcnQJCQk6MTsKKysJCXUzMiBhZXNfZG1hX2VuCQkJOjE7CisrCQl1MzIg cnN2ZF8wCQkJOjE7CisrCQl1MzIgaGFzaF9kbWFfZW4JCQk6MTsKKysJCXUzMiBhbGdfZG9uZQkJ CToxOworKwkJdTMyIHJzdmRfMQkJCTozOworKwkJdTMyIGNsZWFyCQkJOjE7CisrCQl1MzIgcnN2 ZF8yCQkJOjIzOworKwl9OworK307CisrCisrc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4IHsKKysJ c3RydWN0IGNyeXB0b19lbmdpbmVfY3R4CQllbmdpbmVjdHg7CisrCXN0cnVjdCBzdGFyZml2ZV9j cnlwX2RldgkJKmNyeXA7CisrfTsKKysKKytzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgeworKwlz dHJ1Y3QgbGlzdF9oZWFkCQkJbGlzdDsKKysJc3RydWN0IGRldmljZQkJCQkqZGV2OworKworKwlz dHJ1Y3QgY2xrCQkJCSpoY2xrOworKwlzdHJ1Y3QgY2xrCQkJCSphaGI7CisrCXN0cnVjdCByZXNl dF9jb250cm9sCQkJKnJzdDsKKysKKysJdm9pZCBfX2lvbWVtCQkJCSpiYXNlOworKwlwaHlzX2Fk ZHJfdAkJCQlwaHlzX2Jhc2U7CisrCisrCXUzMgkJCQkJZG1hX21heGJ1cnN0OworKwlzdHJ1Y3Qg ZG1hX2NoYW4JCQkJKnR4OworKwlzdHJ1Y3QgZG1hX2NoYW4JCQkJKnJ4OworKwlzdHJ1Y3QgZG1h X3NsYXZlX2NvbmZpZwkJCWNmZ19pbjsKKysJc3RydWN0IGRtYV9zbGF2ZV9jb25maWcJCQljZmdf b3V0OworKworKwlzdHJ1Y3QgY3J5cHRvX2VuZ2luZQkJCSplbmdpbmU7CisrCisrCXVuaW9uIHN0 YXJmaXZlX2FsZ19jcgkJCWFsZ19jcjsKKyt9OworKworK3N0cnVjdCBzdGFyZml2ZV9jcnlwX2Rl diAqc3RhcmZpdmVfY3J5cF9maW5kX2RldihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCk7 CisrCisrI2VuZGlmCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40 L3BhdGNoZXMvMDAyNC1jcnlwdG8tc3RhcmZpdmUtQWRkLWhhc2gtYW5kLUhNQUMtc3VwcG9ydC5w YXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDI0LWNyeXB0by1zdGFyZml2ZS1BZGQt aGFzaC1hbmQtSE1BQy1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAuLjAyZmQ2ZWY3NDVjODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDAyNC1jcnlwdG8tc3RhcmZpdmUtQWRkLWhhc2gtYW5kLUhNQUMtc3Vw cG9ydC5wYXRjaApAQCAtMCwwICsxLDExNTAgQEAKK0Zyb20gMjgwY2I0MzhjOTBiNDkzN2Q1ZDg0 NWRiZDA1MzJhMTcyYWVhMjkwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEppYSBK aWUgSG8gPGppYWppZS5ob0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogTW9uLCAxNSBNYXkgMjAy MyAyMDo1Mzo1NSArMDgwMAorU3ViamVjdDogW1BBVENIIDI0LzcyXSBjcnlwdG86IHN0YXJmaXZl IC0gQWRkIGhhc2ggYW5kIEhNQUMgc3VwcG9ydAorCitBZGRpbmcgaGFzaC9ITUFDIHN1cHBvcnQg Zm9yIFNIQS0yIGFuZCBTTTMgdG8gU3RhckZpdmUgY3J5cHRvZ3JhcGhpYworbW9kdWxlLgorCitD by1kZXZlbG9wZWQtYnk6IEh1YW4gRmVuZyA8aHVhbi5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitT aWduZWQtb2ZmLWJ5OiBIdWFuIEZlbmcgPGh1YW4uZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorU2ln bmVkLW9mZi1ieTogSmlhIEppZSBIbyA8amlhamllLmhvQHN0YXJmaXZldGVjaC5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CistLS0K KyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnICAgICAgIHwgICA0ICsKKyBkcml2ZXJz L2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZSAgICAgIHwgICAyICstCisgZHJpdmVycy9jcnlwdG8v c3RhcmZpdmUvamg3MTEwLWNyeXAuYyB8ICAzOSArKworIGRyaXZlcnMvY3J5cHRvL3N0YXJmaXZl L2poNzExMC1jcnlwLmggfCAgNzAgKy0KKyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAt aGFzaC5jIHwgODkyICsrKysrKysrKysrKysrKysrKysrKysrKysrCisgNSBmaWxlcyBjaGFuZ2Vk LCAxMDAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1oYXNoLmMKKworZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY3J5cHRvL3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9L Y29uZmlnCitpbmRleCA3YTVhNWQ5ZjkwZWQuLmJlNThkMTQ3MzUyMyAxMDA2NDQKKy0tLSBhL2Ry aXZlcnMvY3J5cHRvL3N0YXJmaXZlL0tjb25maWcKKysrKyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJm aXZlL0tjb25maWcKK0BAIC02LDYgKzYsMTAgQEAgY29uZmlnIENSWVBUT19ERVZfSkg3MTEwCisg CXRyaXN0YXRlICJTdGFyRml2ZSBKSDcxMTAgY3J5cHRvZ3JhcGhpYyBlbmdpbmUgZHJpdmVyIgor IAlkZXBlbmRzIG9uIFNPQ19TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKyAJc2VsZWN0IENSWVBU T19FTkdJTkUKKysJc2VsZWN0IENSWVBUT19ITUFDCisrCXNlbGVjdCBDUllQVE9fU0hBMjU2Cisr CXNlbGVjdCBDUllQVE9fU0hBNTEyCisrCXNlbGVjdCBDUllQVE9fU00zX0dFTkVSSUMKKyAJc2Vs ZWN0IEFSTV9BTUJBCisgCXNlbGVjdCBETUFERVZJQ0VTCisgCXNlbGVjdCBBTUJBX1BMMDhYCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL2Ny eXB0by9zdGFyZml2ZS9NYWtlZmlsZQoraW5kZXggNDEyMjFhY2FlZTM5Li4yYWY0OTA2MmUzNmQg MTAwNjQ0CistLS0gYS9kcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9NYWtlZmlsZQorKysrIGIvZHJp dmVycy9jcnlwdG8vc3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0xLDQgKzEsNCBAQAorICMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyAKKyBvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9K SDcxMTApICs9IGpoNzExMC1jcnlwdG8ubworLWpoNzExMC1jcnlwdG8tb2JqcyA6PSBqaDcxMTAt Y3J5cC5vCisramg3MTEwLWNyeXB0by1vYmpzIDo9IGpoNzExMC1jcnlwLm8gamg3MTEwLWhhc2gu bworZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmMgYi9k cml2ZXJzL2NyeXB0by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5jCitpbmRleCA0YjI1MDVjMjMxNjgu LjI3OWIxOWY1MWNiNCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzEx MC1jcnlwLmMKKysrKyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmMKK0BA IC03OSwxMCArNzksMjUgQEAgc3RhdGljIHZvaWQgc3RhcmZpdmVfZG1hX2NsZWFudXAoc3RydWN0 IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwKQorIAlkbWFfcmVsZWFzZV9jaGFubmVsKGNyeXAtPnJ4 KTsKKyB9CisgCisrc3RhdGljIGlycXJldHVybl90IHN0YXJmaXZlX2NyeXBfaXJxKGludCBpcnEs IHZvaWQgKnByaXYpCisreworKwl1MzIgc3RhdHVzOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9k ZXYgKmNyeXAgPSAoc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICopcHJpdjsKKysKKysJc3RhdHVz ID0gcmVhZGwoY3J5cC0+YmFzZSArIFNUQVJGSVZFX0lFX0ZMQUdfT0ZGU0VUKTsKKysJaWYgKHN0 YXR1cyAmIFNUQVJGSVZFX0lFX0ZMQUdfSEFTSF9ET05FKSB7CisrCQl3cml0ZWwoU1RBUkZJVkVf SUVfTUFTS19IQVNIX0RPTkUsIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9JRV9NQVNLX09GRlNFVCk7 CisrCQl0YXNrbGV0X3NjaGVkdWxlKCZjcnlwLT5oYXNoX2RvbmUpOworKwl9CisrCisrCXJldHVy biBJUlFfSEFORExFRDsKKyt9CisrCisgc3RhdGljIGludCBzdGFyZml2ZV9jcnlwX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgeworIAlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9k ZXYgKmNyeXA7CisgCXN0cnVjdCByZXNvdXJjZSAqcmVzOworKwlpbnQgaXJxOworIAlpbnQgcmV0 OworIAorIAljcnlwID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqY3J5cCksIEdG UF9LRVJORUwpOworQEAgLTk3LDYgKzExMiw4IEBAIHN0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIAkJcmV0dXJuIGRldl9lcnJfcHJv YmUoJnBkZXYtPmRldiwgUFRSX0VSUihjcnlwLT5iYXNlKSwKKyAJCQkJICAgICAiRXJyb3IgcmVt YXBwaW5nIG1lbW9yeSBmb3IgcGxhdGZvcm0gZGV2aWNlXG4iKTsKKyAKKysJdGFza2xldF9pbml0 KCZjcnlwLT5oYXNoX2RvbmUsIHN0YXJmaXZlX2hhc2hfZG9uZV90YXNrLCAodW5zaWduZWQgbG9u ZyljcnlwKTsKKysKKyAJY3J5cC0+cGh5c19iYXNlID0gcmVzLT5zdGFydDsKKyAJY3J5cC0+ZG1h X21heGJ1cnN0ID0gMzI7CisgCitAQCAtMTE1LDYgKzEzMiwxNiBAQCBzdGF0aWMgaW50IHN0YXJm aXZlX2NyeXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyAJCXJldHVybiBk ZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoY3J5cC0+cnN0KSwKKyAJCQkJICAgICAi RXJyb3IgZ2V0dGluZyBoYXJkd2FyZSByZXNldCBsaW5lXG4iKTsKKyAKKysJaXJxID0gcGxhdGZv cm1fZ2V0X2lycShwZGV2LCAwKTsKKysJaWYgKGlycSA8IDApCisrCQlyZXR1cm4gaXJxOworKwor KwlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGlycSwgc3RhcmZpdmVfY3J5cF9p cnEsIDAsIHBkZXYtPm5hbWUsCisrCQkJICAgICAgICh2b2lkICopY3J5cCk7CisrCWlmIChyZXQp CisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBpcnEsCisrCQkJCSAgICAgIkZh aWxlZCB0byByZWdpc3RlciBpbnRlcnJ1cHQgaGFuZGxlclxuIik7CisrCisgCWNsa19wcmVwYXJl X2VuYWJsZShjcnlwLT5oY2xrKTsKKyAJY2xrX3ByZXBhcmVfZW5hYmxlKGNyeXAtPmFoYik7Cisg CXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoY3J5cC0+cnN0KTsKK0BAIC0xNDIsOCArMTY5LDE0IEBA IHN0YXRpYyBpbnQgc3RhcmZpdmVfY3J5cF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQorIAlpZiAocmV0KQorIAkJZ290byBlcnJfZW5naW5lX3N0YXJ0OworIAorKwlyZXQgPSBz dGFyZml2ZV9oYXNoX3JlZ2lzdGVyX2FsZ3MoKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2Fs Z3NfaGFzaDsKKysKKyAJcmV0dXJuIDA7CisgCisrZXJyX2FsZ3NfaGFzaDoKKysJY3J5cHRvX2Vu Z2luZV9zdG9wKGNyeXAtPmVuZ2luZSk7CisgZXJyX2VuZ2luZV9zdGFydDoKKyAJY3J5cHRvX2Vu Z2luZV9leGl0KGNyeXAtPmVuZ2luZSk7CisgZXJyX2VuZ2luZToKK0BAIC0xNTYsNiArMTg5LDgg QEAgc3RhdGljIGludCBzdGFyZml2ZV9jcnlwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCisgCWNsa19kaXNhYmxlX3VucHJlcGFyZShjcnlwLT5oY2xrKTsKKyAJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKGNyeXAtPmFoYik7CisgCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGNyeXAtPnJz dCk7CisrCisrCXRhc2tsZXRfa2lsbCgmY3J5cC0+aGFzaF9kb25lKTsKKyBlcnJfcHJvYmVfZGVm ZXI6CisgCXJldHVybiByZXQ7CisgfQorQEAgLTE2NCw2ICsxOTksMTAgQEAgc3RhdGljIGludCBz dGFyZml2ZV9jcnlwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorIHsKKyAJ c3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRl dik7CisgCisrCXN0YXJmaXZlX2hhc2hfdW5yZWdpc3Rlcl9hbGdzKCk7CisrCisrCXRhc2tsZXRf a2lsbCgmY3J5cC0+aGFzaF9kb25lKTsKKysKKyAJY3J5cHRvX2VuZ2luZV9zdG9wKGNyeXAtPmVu Z2luZSk7CisgCWNyeXB0b19lbmdpbmVfZXhpdChjcnlwLT5lbmdpbmUpOworIAorZGlmZiAtLWdp dCBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmggYi9kcml2ZXJzL2NyeXB0 by9zdGFyZml2ZS9qaDcxMTAtY3J5cC5oCitpbmRleCAzOTNlZmQzOGIwOTguLjAyMWQ2ZTI0YmM4 NiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgKKysr KyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1jcnlwLmgKK0BAIC03LDYgKzcsOCBA QAorICNpbmNsdWRlIDxsaW51eC9kbWFlbmdpbmUuaD4KKyAKKyAjaW5jbHVkZSA8Y3J5cHRvL2Vu Z2luZS5oPgorKyNpbmNsdWRlIDxjcnlwdG8vc2hhMi5oPgorKyNpbmNsdWRlIDxjcnlwdG8vc20z Lmg+CisgCisgI2RlZmluZSBTVEFSRklWRV9BTEdfQ1JfT0ZGU0VUCQkJMHgwCisgI2RlZmluZSBT VEFSRklWRV9BTEdfRklGT19PRkZTRVQJCTB4NAorQEAgLTE1LDcgKzE3LDQzIEBACisgI2RlZmlu ZSBTVEFSRklWRV9ETUFfSU5fTEVOX09GRlNFVAkJMHgxMAorICNkZWZpbmUgU1RBUkZJVkVfRE1B X09VVF9MRU5fT0ZGU0VUCQkweDE0CisgCisrI2RlZmluZSBTVEFSRklWRV9JRV9NQVNLX0hBU0hf RE9ORQkJMHg0CisrI2RlZmluZSBTVEFSRklWRV9JRV9GTEFHX0hBU0hfRE9ORQkJMHg0CisrCisg I2RlZmluZSBTVEFSRklWRV9NU0dfQlVGRkVSX1NJWkUJCVNaXzE2SworKyNkZWZpbmUgTUFYX0tF WV9TSVpFCQkJCVNIQTUxMl9CTE9DS19TSVpFCisrCisrdW5pb24gc3RhcmZpdmVfaGFzaF9jc3Ig eworKwl1MzIgdjsKKysJc3RydWN0IHsKKysJCXUzMiBzdGFydAkJCToxOworKwkJdTMyIHJlc2V0 CQkJOjE7CisrCQl1MzIgaWUJCQkJOjE7CisrCQl1MzIgZmlyc3RiCQkJOjE7CisrI2RlZmluZSBT VEFSRklWRV9IQVNIX1NNMwkJCTB4MAorKyNkZWZpbmUgU1RBUkZJVkVfSEFTSF9TSEEyMjQJCQkw eDMKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBMjU2CQkJMHg0CisrI2RlZmluZSBTVEFSRklW RV9IQVNIX1NIQTM4NAkJCTB4NQorKyNkZWZpbmUgU1RBUkZJVkVfSEFTSF9TSEE1MTIJCQkweDYK KysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfTU9ERV9NQVNLCQkJMHg3CisrCQl1MzIgbW9kZQkJCToz OworKwkJdTMyIHJzdmRfMQkJCToxOworKwkJdTMyIGZpbmFsCQkJOjE7CisrCQl1MzIgcnN2ZF8y CQkJOjI7CisrI2RlZmluZSBTVEFSRklWRV9IQVNIX0hNQUNfRkxBR1MJCTB4ODAwCisrCQl1MzIg aG1hYwkJCToxOworKwkJdTMyIHJzdmRfMwkJCToxOworKyNkZWZpbmUgU1RBUkZJVkVfSEFTSF9L RVlfRE9ORQkJCUJJVCgxMykKKysJCXUzMiBrZXlfZG9uZQkJCToxOworKwkJdTMyIGtleV9mbGFn CQkJOjE7CisrCQl1MzIgaG1hY19kb25lCQkJOjE7CisrI2RlZmluZSBTVEFSRklWRV9IQVNIX0JV U1kJCQlCSVQoMTYpCisrCQl1MzIgYnVzeQkJCToxOworKwkJdTMyIGhhc2hkb25lCQkJOjE7Cisr CQl1MzIgcnN2ZF80CQkJOjE0OworKwl9OworK307CisrCisgCisgdW5pb24gc3RhcmZpdmVfYWxn X2NyIHsKKyAJdTMyIHY7CitAQCAtMzQsMTIgKzcyLDE4IEBAIHVuaW9uIHN0YXJmaXZlX2FsZ19j ciB7Cisgc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4IHsKKyAJc3RydWN0IGNyeXB0b19lbmdpbmVf Y3R4CQllbmdpbmVjdHg7CisgCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldgkJKmNyeXA7CisrCXN0 cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4CSpyY3R4OworKworKwl1bnNpZ25lZCBpbnQJ CQkJaGFzaF9tb2RlOworKwl1OAkJCQkJa2V5W01BWF9LRVlfU0laRV07CisrCWludAkJCQkJa2V5 bGVuOworKwlib29sCQkJCQlpc19obWFjOworKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoCQkJKmFoYXNo X2ZiazsKKyB9OworIAorIHN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiB7CisgCXN0cnVjdCBsaXN0 X2hlYWQJCQlsaXN0OworIAlzdHJ1Y3QgZGV2aWNlCQkJCSpkZXY7CistCisgCXN0cnVjdCBjbGsJ CQkJKmhjbGs7CisgCXN0cnVjdCBjbGsJCQkJKmFoYjsKKyAJc3RydWN0IHJlc2V0X2NvbnRyb2wJ CQkqcnN0OworQEAgLTUyLDEyICs5NiwzMiBAQCBzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgewor IAlzdHJ1Y3QgZG1hX2NoYW4JCQkJKnJ4OworIAlzdHJ1Y3QgZG1hX3NsYXZlX2NvbmZpZwkJCWNm Z19pbjsKKyAJc3RydWN0IGRtYV9zbGF2ZV9jb25maWcJCQljZmdfb3V0OworLQorIAlzdHJ1Y3Qg Y3J5cHRvX2VuZ2luZQkJCSplbmdpbmU7CistCisrCXN0cnVjdCB0YXNrbGV0X3N0cnVjdAkJCWhh c2hfZG9uZTsKKysJaW50CQkJCQllcnI7CisgCXVuaW9uIHN0YXJmaXZlX2FsZ19jcgkJCWFsZ19j cjsKKysJdW5pb24geworKwkJc3RydWN0IGFoYXNoX3JlcXVlc3QJCSpocmVxOworKwl9IHJlcTsK Kyt9OworKworK3N0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4IHsKKysJdW5pb24gewor KwkJdW5pb24gc3RhcmZpdmVfaGFzaF9jc3IJCWhhc2g7CisrCX0gY3NyOworKworKwlzdHJ1Y3Qg c2NhdHRlcmxpc3QJCQkqaW5fc2c7CisrCXN0cnVjdCBhaGFzaF9yZXF1ZXN0CQkJYWhhc2hfZmJr X3JlcTsKKysJc2l6ZV90CQkJCQl0b3RhbDsKKysJdW5zaWduZWQgaW50CQkJCWJsa3NpemU7Cisr CXVuc2lnbmVkIGludAkJCQlkaWdzaXplOworKwl1bnNpZ25lZCBsb25nCQkJCWluX3NnX2xlbjsK KyB9OworIAorIHN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqc3RhcmZpdmVfY3J5cF9maW5kX2Rl dihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCk7CisgCisraW50IHN0YXJmaXZlX2hhc2hf cmVnaXN0ZXJfYWxncyh2b2lkKTsKKyt2b2lkIHN0YXJmaXZlX2hhc2hfdW5yZWdpc3Rlcl9hbGdz KHZvaWQpOworKworK3ZvaWQgc3RhcmZpdmVfaGFzaF9kb25lX3Rhc2sodW5zaWduZWQgbG9uZyBw YXJhbSk7CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3 MTEwLWhhc2guYyBiL2RyaXZlcnMvY3J5cHRvL3N0YXJmaXZlL2poNzExMC1oYXNoLmMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjM4MDFlNDRmMmYzMworLS0tIC9k ZXYvbnVsbAorKysrIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvamg3MTEwLWhhc2guYworQEAg LTAsMCArMSw4OTIgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorKy8q CisrICogSGFzaCBmdW5jdGlvbiBhbmQgSE1BQyBzdXBwb3J0IGZvciBTdGFyRml2ZSBkcml2ZXIK KysgKgorKyAqIENvcHlyaWdodCAoYykgMjAyMiBTdGFyRml2ZSBUZWNobm9sb2d5CisrICoKKysg Ki8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5o PgorKyNpbmNsdWRlIDxsaW51eC9kbWEtZGlyZWN0Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPgorKyNpbmNsdWRlIDxsaW51eC9pby5oPgorKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwu aD4KKysjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisrI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o PgorKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKysjaW5jbHVkZSA8 bGludXgvcmVzZXQuaD4KKysjaW5jbHVkZSA8bGludXgvYW1iYS9wbDA4MC5oPgorKworKyNpbmNs dWRlIDxjcnlwdG8vaGFzaC5oPgorKyNpbmNsdWRlIDxjcnlwdG8vc2NhdHRlcndhbGsuaD4KKysj aW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KKysKKysjaW5jbHVkZSAiamg3MTEwLWNy eXAuaCIKKysKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfUkVHU19PRkZTRVQJMHgzMDAKKysjZGVm aW5lIFNUQVJGSVZFX0hBU0hfU0hBQ1NSCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4 MCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0RSCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09G RlNFVCArIDB4NCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBUkRSCQkoU1RBUkZJVkVfSEFT SF9SRUdTX09GRlNFVCArIDB4OCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV1NSCQkoU1RB UkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4QykKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hB V0xFTjMJCShTVEFSRklWRV9IQVNIX1JFR1NfT0ZGU0VUICsgMHgxMCkKKysjZGVmaW5lIFNUQVJG SVZFX0hBU0hfU0hBV0xFTjIJCShTVEFSRklWRV9IQVNIX1JFR1NfT0ZGU0VUICsgMHgxNCkKKysj ZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0xFTjEJCShTVEFSRklWRV9IQVNIX1JFR1NfT0ZGU0VU ICsgMHgxOCkKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0xFTjAJCShTVEFSRklWRV9IQVNI X1JFR1NfT0ZGU0VUICsgMHgxQykKKysjZGVmaW5lIFNUQVJGSVZFX0hBU0hfU0hBV0tSCQkoU1RB UkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4MjApCisrI2RlZmluZSBTVEFSRklWRV9IQVNIX1NI QVdLTEVOCQkoU1RBUkZJVkVfSEFTSF9SRUdTX09GRlNFVCArIDB4MjQpCisrCisrI2RlZmluZSBT VEFSRklWRV9IQVNIX0JVRkxFTgkJU0hBNTEyX0JMT0NLX1NJWkUKKysKKytzdGF0aWMgaW5saW5l IGludCBzdGFyZml2ZV9oYXNoX3dhaXRfYnVzeShzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0 eCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5cCA9IGN0eC0+Y3J5cDsKKysJ dTMyIHN0YXR1czsKKysKKysJcmV0dXJuIHJlYWRsX3JlbGF4ZWRfcG9sbF90aW1lb3V0KGNyeXAt PmJhc2UgKyBTVEFSRklWRV9IQVNIX1NIQUNTUiwgc3RhdHVzLAorKwkJCQkJICAhKHN0YXR1cyAm IFNUQVJGSVZFX0hBU0hfQlVTWSksIDEwLCAxMDAwMDApOworK30KKysKKytzdGF0aWMgaW5saW5l IGludCBzdGFyZml2ZV9oYXNoX3dhaXRfa2V5X2RvbmUoc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4 ICpjdHgpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNyeXAgPSBjdHgtPmNyeXA7 CisrCXUzMiBzdGF0dXM7CisrCisrCXJldHVybiByZWFkbF9yZWxheGVkX3BvbGxfdGltZW91dChj cnlwLT5iYXNlICsgU1RBUkZJVkVfSEFTSF9TSEFDU1IsIHN0YXR1cywKKysJCQkJCSAgKHN0YXR1 cyAmIFNUQVJGSVZFX0hBU0hfS0VZX0RPTkUpLCAxMCwgMTAwMDAwKTsKKyt9CisrCisrc3RhdGlj IGludCBzdGFyZml2ZV9oYXNoX2htYWNfa2V5KHN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4 KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfcmVxdWVzdF9jdHggKnJjdHggPSBjdHgtPnJj dHg7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5cCA9IGN0eC0+Y3J5cDsKKysJaW50 IGtsZW4gPSBjdHgtPmtleWxlbiwgbG9vcDsKKysJdW5zaWduZWQgaW50ICprZXkgPSAodW5zaWdu ZWQgaW50ICopY3R4LT5rZXk7CisrCXVuc2lnbmVkIGNoYXIgKmNsOworKworKwl3cml0ZWwoY3R4 LT5rZXlsZW4sIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9IQVNIX1NIQVdLTEVOKTsKKysKKysJcmN0 eC0+Y3NyLmhhc2guaG1hYyA9IDE7CisrCXJjdHgtPmNzci5oYXNoLmtleV9mbGFnID0gMTsKKysK KysJd3JpdGVsKHJjdHgtPmNzci5oYXNoLnYsIGNyeXAtPmJhc2UgKyBTVEFSRklWRV9IQVNIX1NI QUNTUik7CisrCisrCWZvciAobG9vcCA9IDA7IGxvb3AgPCBrbGVuIC8gc2l6ZW9mKHVuc2lnbmVk IGludCk7IGxvb3ArKywga2V5KyspCisrCQl3cml0ZWwoKmtleSwgY3J5cC0+YmFzZSArIFNUQVJG SVZFX0hBU0hfU0hBV0tSKTsKKysKKysJaWYgKGtsZW4gJiAweDMpIHsKKysJCWNsID0gKHVuc2ln bmVkIGNoYXIgKilrZXk7CisrCQlmb3IgKGxvb3AgPSAwOyBsb29wIDwgKGtsZW4gJiAweDMpOyBs b29wKyssIGNsKyspCisrCQkJd3JpdGViKCpjbCwgY3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hf U0hBV0tSKTsKKysJfQorKworKwlpZiAoc3RhcmZpdmVfaGFzaF93YWl0X2tleV9kb25lKGN0eCkp CisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShjcnlwLT5kZXYsIC1FVElNRURPVVQsICJzdGFyZml2 ZV9oYXNoX3dhaXRfa2V5X2RvbmUgZXJyb3JcbiIpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisr c3RhdGljIHZvaWQgc3RhcmZpdmVfaGFzaF9zdGFydCh2b2lkICpwYXJhbSkKKyt7CisrCXN0cnVj dCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gcGFyYW07CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlw X3JlcXVlc3RfY3R4ICpyY3R4ID0gY3R4LT5yY3R4OworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9k ZXYgKmNyeXAgPSBjdHgtPmNyeXA7CisrCXVuaW9uIHN0YXJmaXZlX2FsZ19jciBhbGdfY3I7Cisr CXVuaW9uIHN0YXJmaXZlX2hhc2hfY3NyIGNzcjsKKysKKysJZG1hX3VubWFwX3NnKGNyeXAtPmRl diwgcmN0eC0+aW5fc2csIHJjdHgtPmluX3NnX2xlbiwgRE1BX1RPX0RFVklDRSk7CisrCisrCWFs Z19jci52ID0gMDsKKysJYWxnX2NyLmNsZWFyID0gMTsKKysKKysJd3JpdGVsKGFsZ19jci52LCBj cnlwLT5iYXNlICsgU1RBUkZJVkVfQUxHX0NSX09GRlNFVCk7CisrCisrCWNzci52ID0gcmVhZGwo Y3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBQ1NSKTsKKysJY3NyLmZpcnN0YiA9IDA7Cisr CWNzci5maW5hbCA9IDE7CisrCisrCXdyaXRlbCh+U1RBUkZJVkVfSUVfTUFTS19IQVNIX0RPTkUs IGNyeXAtPmJhc2UgKyBTVEFSRklWRV9JRV9NQVNLX09GRlNFVCk7CisrCXdyaXRlbChjc3Iudiwg Y3J5cC0+YmFzZSArIFNUQVJGSVZFX0hBU0hfU0hBQ1NSKTsKKyt9CisrCisrc3RhdGljIGludCBz dGFyZml2ZV9oYXNoX3htaXRfZG1hKHN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4KQorK3sK KysJc3RydWN0IHN0YXJmaXZlX2NyeXBfcmVxdWVzdF9jdHggKnJjdHggPSBjdHgtPnJjdHg7Cisr CXN0cnVjdCBzdGFyZml2ZV9jcnlwX2RldiAqY3J5cCA9IGN0eC0+Y3J5cDsKKysJc3RydWN0IGRt YV9hc3luY190eF9kZXNjcmlwdG9yCSppbl9kZXNjOworKwl1bmlvbiAgc3RhcmZpdmVfYWxnX2Ny IGFsZ19jcjsKKysJaW50IHRvdGFsX2xlbjsKKysJaW50IHJldDsKKysKKysJaWYgKCFyY3R4LT50 b3RhbCkgeworKwkJc3RhcmZpdmVfaGFzaF9zdGFydChjdHgpOworKwkJcmV0dXJuIDA7CisrCX0K KysKKysJd3JpdGVsKHJjdHgtPnRvdGFsLCBjcnlwLT5iYXNlICsgU1RBUkZJVkVfRE1BX0lOX0xF Tl9PRkZTRVQpOworKworKwl0b3RhbF9sZW4gPSByY3R4LT50b3RhbDsKKysJdG90YWxfbGVuID0g KHRvdGFsX2xlbiAmIDB4MykgPyAoKCh0b3RhbF9sZW4gPj4gMikgKyAxKSA8PCAyKSA6IHRvdGFs X2xlbjsKKysJc2dfZG1hX2xlbihyY3R4LT5pbl9zZykgPSB0b3RhbF9sZW47CisrCisrCWFsZ19j ci52ID0gMDsKKysJYWxnX2NyLnN0YXJ0ID0gMTsKKysJYWxnX2NyLmhhc2hfZG1hX2VuID0gMTsK KysKKysJd3JpdGVsKGFsZ19jci52LCBjcnlwLT5iYXNlICsgU1RBUkZJVkVfQUxHX0NSX09GRlNF VCk7CisrCisrCXJldCA9IGRtYV9tYXBfc2coY3J5cC0+ZGV2LCByY3R4LT5pbl9zZywgcmN0eC0+ aW5fc2dfbGVuLCBETUFfVE9fREVWSUNFKTsKKysJaWYgKCFyZXQpCisrCQlyZXR1cm4gZGV2X2Vy cl9wcm9iZShjcnlwLT5kZXYsIC1FSU5WQUwsICJkbWFfbWFwX3NnKCkgZXJyb3JcbiIpOworKwor KwljcnlwLT5jZmdfaW4uZGlyZWN0aW9uID0gRE1BX01FTV9UT19ERVY7CisrCWNyeXAtPmNmZ19p bi5zcmNfYWRkcl93aWR0aCA9IERNQV9TTEFWRV9CVVNXSURUSF80X0JZVEVTOworKwljcnlwLT5j ZmdfaW4uZHN0X2FkZHJfd2lkdGggPSBETUFfU0xBVkVfQlVTV0lEVEhfNF9CWVRFUzsKKysJY3J5 cC0+Y2ZnX2luLnNyY19tYXhidXJzdCA9IGNyeXAtPmRtYV9tYXhidXJzdDsKKysJY3J5cC0+Y2Zn X2luLmRzdF9tYXhidXJzdCA9IGNyeXAtPmRtYV9tYXhidXJzdDsKKysJY3J5cC0+Y2ZnX2luLmRz dF9hZGRyID0gY3J5cC0+cGh5c19iYXNlICsgU1RBUkZJVkVfQUxHX0ZJRk9fT0ZGU0VUOworKwor KwlkbWFlbmdpbmVfc2xhdmVfY29uZmlnKGNyeXAtPnR4LCAmY3J5cC0+Y2ZnX2luKTsKKysKKysJ aW5fZGVzYyA9IGRtYWVuZ2luZV9wcmVwX3NsYXZlX3NnKGNyeXAtPnR4LCByY3R4LT5pbl9zZywK KysJCQkJCSAgcmV0LCBETUFfTUVNX1RPX0RFViwKKysJCQkJCSAgRE1BX1BSRVBfSU5URVJSVVBU ICB8ICBETUFfQ1RSTF9BQ0spOworKworKwlpZiAoIWluX2Rlc2MpCisrCQlyZXR1cm4gLUVJTlZB TDsKKysKKysJaW5fZGVzYy0+Y2FsbGJhY2sgPSBzdGFyZml2ZV9oYXNoX3N0YXJ0OworKwlpbl9k ZXNjLT5jYWxsYmFja19wYXJhbSA9IGN0eDsKKysKKysJZG1hZW5naW5lX3N1Ym1pdChpbl9kZXNj KTsKKysJZG1hX2FzeW5jX2lzc3VlX3BlbmRpbmcoY3J5cC0+dHgpOworKworKwlyZXR1cm4gMDsK Kyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX3htaXQoc3RydWN0IHN0YXJmaXZlX2Ny eXBfY3R4ICpjdHgpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9yZXF1ZXN0X2N0eCAqcmN0 eCA9IGN0eC0+cmN0eDsKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwID0gY3R4LT5j cnlwOworKwlpbnQgcmV0ID0gMDsKKysKKysJcmN0eC0+Y3NyLmhhc2gudiA9IDA7CisrCXJjdHgt PmNzci5oYXNoLnJlc2V0ID0gMTsKKysJd3JpdGVsKHJjdHgtPmNzci5oYXNoLnYsIGNyeXAtPmJh c2UgKyBTVEFSRklWRV9IQVNIX1NIQUNTUik7CisrCisrCWlmIChzdGFyZml2ZV9oYXNoX3dhaXRf YnVzeShjdHgpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoY3J5cC0+ZGV2LCAtRVRJTUVET1VU LCAiRXJyb3IgcmVzZXR0aW5nIGVuZ2luZS5cbiIpOworKworKwlyY3R4LT5jc3IuaGFzaC52ID0g MDsKKysJcmN0eC0+Y3NyLmhhc2gubW9kZSA9IGN0eC0+aGFzaF9tb2RlOworKwlyY3R4LT5jc3Iu aGFzaC5pZSA9IDE7CisrCisrCWlmIChjdHgtPmlzX2htYWMpIHsKKysJCXJldCA9IHN0YXJmaXZl X2hhc2hfaG1hY19rZXkoY3R4KTsKKysJCWlmIChyZXQpCisrCQkJcmV0dXJuIHJldDsKKysJfSBl bHNlIHsKKysJCXJjdHgtPmNzci5oYXNoLnN0YXJ0ID0gMTsKKysJCXJjdHgtPmNzci5oYXNoLmZp cnN0YiA9IDE7CisrCQl3cml0ZWwocmN0eC0+Y3NyLmhhc2gudiwgY3J5cC0+YmFzZSArIFNUQVJG SVZFX0hBU0hfU0hBQ1NSKTsKKysJfQorKworKwlyZXR1cm4gc3RhcmZpdmVfaGFzaF94bWl0X2Rt YShjdHgpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfY29weV9oYXNoKHN0cnVj dCBhaGFzaF9yZXF1ZXN0ICpyZXEpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9yZXF1ZXN0 X2N0eCAqcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisrCXN0cnVjdCBzdGFyZml2ZV9j cnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSkp OworKwlpbnQgY291bnQsICpkYXRhOworKwlpbnQgbWxlbjsKKysKKysJaWYgKCFyZXEtPnJlc3Vs dCkKKysJCXJldHVybiAwOworKworKwltbGVuID0gcmN0eC0+ZGlnc2l6ZSAvIHNpemVvZih1MzIp OworKwlkYXRhID0gKHUzMiAqKXJlcS0+cmVzdWx0OworKworKwlmb3IgKGNvdW50ID0gMDsgY291 bnQgPCBtbGVuOyBjb3VudCsrKQorKwkJZGF0YVtjb3VudF0gPSByZWFkbChjdHgtPmNyeXAtPmJh c2UgKyBTVEFSRklWRV9IQVNIX1NIQVJEUik7CisrCisrCXJldHVybiAwOworK30KKysKKyt2b2lk IHN0YXJmaXZlX2hhc2hfZG9uZV90YXNrKHVuc2lnbmVkIGxvbmcgcGFyYW0pCisreworKwlzdHJ1 Y3Qgc3RhcmZpdmVfY3J5cF9kZXYgKmNyeXAgPSAoc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICop cGFyYW07CisrCWludCBlcnIgPSBjcnlwLT5lcnI7CisrCisrCWlmICghZXJyKQorKwkJZXJyID0g c3RhcmZpdmVfaGFzaF9jb3B5X2hhc2goY3J5cC0+cmVxLmhyZXEpOworKworKwljcnlwdG9fZmlu YWxpemVfaGFzaF9yZXF1ZXN0KGNyeXAtPmVuZ2luZSwgY3J5cC0+cmVxLmhyZXEsIGVycik7Cisr fQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaGFzaF9jaGVja19hbGlnbmVkKHN0cnVjdCBzY2F0 dGVybGlzdCAqc2csIHNpemVfdCB0b3RhbCwgc2l6ZV90IGFsaWduKQorK3sKKysJaW50IGxlbiA9 IDA7CisrCisrCWlmICghdG90YWwpCisrCQlyZXR1cm4gMDsKKysKKysJaWYgKCFJU19BTElHTkVE KHRvdGFsLCBhbGlnbikpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJd2hpbGUgKHNnKSB7Cisr CQlpZiAoIUlTX0FMSUdORUQoc2ctPm9mZnNldCwgc2l6ZW9mKHUzMikpKQorKwkJCXJldHVybiAt RUlOVkFMOworKworKwkJaWYgKCFJU19BTElHTkVEKHNnLT5sZW5ndGgsIGFsaWduKSkKKysJCQly ZXR1cm4gLUVJTlZBTDsKKysKKysJCWxlbiArPSBzZy0+bGVuZ3RoOworKwkJc2cgPSBzZ19uZXh0 KHNnKTsKKysJfQorKworKwlpZiAobGVuICE9IHRvdGFsKQorKwkJcmV0dXJuIC1FSU5WQUw7Cisr CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfb25lX3JlcXVl c3Qoc3RydWN0IGNyeXB0b19lbmdpbmUgKmVuZ2luZSwgdm9pZCAqYXJlcSkKKyt7CisrCXN0cnVj dCBhaGFzaF9yZXF1ZXN0ICpyZXEgPSBjb250YWluZXJfb2YoYXJlcSwgc3RydWN0IGFoYXNoX3Jl cXVlc3QsCisrCQkJCQkJIGJhc2UpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9 IGNyeXB0b19haGFzaF9jdHgoY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpKTsKKysJc3RydWN0IHN0 YXJmaXZlX2NyeXBfZGV2ICpjcnlwID0gY3R4LT5jcnlwOworKworKwlpZiAoIWNyeXApCisrCQly ZXR1cm4gLUVOT0RFVjsKKysKKysJcmV0dXJuIHN0YXJmaXZlX2hhc2hfeG1pdChjdHgpOworK30K KysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfaW5pdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAq cmVxKQorK3sKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRvX2FoYXNoX3JlcXRm bShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9yZXF1ZXN0X2N0eCAqcmN0eCA9IGFoYXNo X3JlcXVlc3RfY3R4KHJlcSk7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gY3J5 cHRvX2FoYXNoX2N0eCh0Zm0pOworKworKwlhaGFzaF9yZXF1ZXN0X3NldF90Zm0oJnJjdHgtPmFo YXNoX2Zia19yZXEsIGN0eC0+YWhhc2hfZmJrKTsKKysJYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJh Y2soJnJjdHgtPmFoYXNoX2Zia19yZXEsCisrCQkJCSAgIHJlcS0+YmFzZS5mbGFncyAmIENSWVBU T19URk1fUkVRX01BWV9TTEVFUCwKKysJCQkJICAgcmVxLT5iYXNlLmNvbXBsZXRlLCByZXEtPmJh c2UuZGF0YSk7CisrCisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KCZyY3R4LT5haGFzaF9mYmtf cmVxLCByZXEtPnNyYywKKysJCQkJcmVxLT5yZXN1bHQsIHJlcS0+bmJ5dGVzKTsKKysKKysJcmV0 dXJuIGNyeXB0b19haGFzaF9pbml0KCZyY3R4LT5haGFzaF9mYmtfcmVxKTsKKyt9CisrCisrc3Rh dGljIGludCBzdGFyZml2ZV9oYXNoX3VwZGF0ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQor K3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfcmVxdWVzdF9jdHggKnJjdHggPSBhaGFzaF9yZXF1 ZXN0X2N0eChyZXEpOworKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0gPSBjcnlwdG9fYWhhc2hf cmVxdGZtKHJlcSk7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gY3J5cHRvX2Fo YXNoX2N0eCh0Zm0pOworKworKwlhaGFzaF9yZXF1ZXN0X3NldF90Zm0oJnJjdHgtPmFoYXNoX2Zi a19yZXEsIGN0eC0+YWhhc2hfZmJrKTsKKysJYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2soJnJj dHgtPmFoYXNoX2Zia19yZXEsCisrCQkJCSAgIHJlcS0+YmFzZS5mbGFncyAmIENSWVBUT19URk1f UkVRX01BWV9TTEVFUCwKKysJCQkJICAgcmVxLT5iYXNlLmNvbXBsZXRlLCByZXEtPmJhc2UuZGF0 YSk7CisrCisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KCZyY3R4LT5haGFzaF9mYmtfcmVxLCBy ZXEtPnNyYywKKysJCQkJcmVxLT5yZXN1bHQsIHJlcS0+bmJ5dGVzKTsKKysKKysJcmV0dXJuIGNy eXB0b19haGFzaF91cGRhdGUoJnJjdHgtPmFoYXNoX2Zia19yZXEpOworK30KKysKKytzdGF0aWMg aW50IHN0YXJmaXZlX2hhc2hfZmluYWwoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKKyt7Cisr CXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9j dHgocmVxKTsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRvX2FoYXNoX3JlcXRm bShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9IGNyeXB0b19haGFzaF9j dHgodGZtKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZyY3R4LT5haGFzaF9mYmtfcmVx LCBjdHgtPmFoYXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKCZyY3R4LT5h aGFzaF9mYmtfcmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9N QVlfU0xFRVAsCisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVxLT5iYXNlLmRhdGEpOwor KworKwlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdCgmcmN0eC0+YWhhc2hfZmJrX3JlcSwgcmVxLT5z cmMsCisrCQkJCXJlcS0+cmVzdWx0LCByZXEtPm5ieXRlcyk7CisrCisrCXJldHVybiBjcnlwdG9f YWhhc2hfZmluYWwoJnJjdHgtPmFoYXNoX2Zia19yZXEpOworK30KKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX2hhc2hfZmludXAoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKKyt7CisrCXN0cnVj dCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVx KTsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEp OworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9IGNyeXB0b19haGFzaF9jdHgodGZt KTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZyY3R4LT5haGFzaF9mYmtfcmVxLCBjdHgt PmFoYXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKCZyY3R4LT5haGFzaF9m YmtfcmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9NQVlfU0xF RVAsCisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVxLT5iYXNlLmRhdGEpOworKworKwlh aGFzaF9yZXF1ZXN0X3NldF9jcnlwdCgmcmN0eC0+YWhhc2hfZmJrX3JlcSwgcmVxLT5zcmMsCisr CQkJCXJlcS0+cmVzdWx0LCByZXEtPm5ieXRlcyk7CisrCisrCXJldHVybiBjcnlwdG9fYWhhc2hf ZmludXAoJnJjdHgtPmFoYXNoX2Zia19yZXEpOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZl X2hhc2hfZGlnZXN0X2ZiKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCisreworKwlzdHJ1Y3Qg c3RhcmZpdmVfY3J5cF9yZXF1ZXN0X2N0eCAqcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7 CisrCXN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSA9IGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKTsK KysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhhc2hfY3R4KHRmbSk7 CisrCisrCWFoYXNoX3JlcXVlc3Rfc2V0X3RmbSgmcmN0eC0+YWhhc2hfZmJrX3JlcSwgY3R4LT5h aGFzaF9mYmspOworKwlhaGFzaF9yZXF1ZXN0X3NldF9jYWxsYmFjaygmcmN0eC0+YWhhc2hfZmJr X3JlcSwgcmVxLT5iYXNlLmZsYWdzLAorKwkJCQkgICByZXEtPmJhc2UuY29tcGxldGUsIHJlcS0+ YmFzZS5kYXRhKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfY3J5cHQoJnJjdHgtPmFoYXNoX2Zi a19yZXEsIHJlcS0+c3JjLAorKwkJCQlyZXEtPnJlc3VsdCwgcmVxLT5uYnl0ZXMpOworKworKwly ZXR1cm4gY3J5cHRvX2FoYXNoX2RpZ2VzdCgmcmN0eC0+YWhhc2hfZmJrX3JlcSk7CisrfQorKwor K3N0YXRpYyBpbnQgc3RhcmZpdmVfaGFzaF9kaWdlc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJl cSkKKyt7CisrCXN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSA9IGNyeXB0b19haGFzaF9yZXF0Zm0o cmVxKTsKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhhc2hfY3R4 KHRmbSk7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hf cmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfZGV2ICpjcnlwID0gY3R4 LT5jcnlwOworKworKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9mKHN0cnVjdCBzdGFyZml2ZV9jcnlw X3JlcXVlc3RfY3R4KSk7CisrCisrCWNyeXAtPnJlcS5ocmVxID0gcmVxOworKwlyY3R4LT50b3Rh bCA9IHJlcS0+bmJ5dGVzOworKwlyY3R4LT5pbl9zZyA9IHJlcS0+c3JjOworKwlyY3R4LT5ibGtz aXplID0gY3J5cHRvX3RmbV9hbGdfYmxvY2tzaXplKGNyeXB0b19haGFzaF90Zm0odGZtKSk7Cisr CXJjdHgtPmRpZ3NpemUgPSBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZSh0Zm0pOworKwlyY3R4LT5p bl9zZ19sZW4gPSBzZ19uZW50c19mb3JfbGVuKHJjdHgtPmluX3NnLCByY3R4LT50b3RhbCk7Cisr CWN0eC0+cmN0eCA9IHJjdHg7CisrCisrCWlmIChzdGFyZml2ZV9oYXNoX2NoZWNrX2FsaWduZWQo cmN0eC0+aW5fc2csIHJjdHgtPnRvdGFsLCByY3R4LT5ibGtzaXplKSkKKysJCXJldHVybiBzdGFy Zml2ZV9oYXNoX2RpZ2VzdF9mYihyZXEpOworKworKwlyZXR1cm4gY3J5cHRvX3RyYW5zZmVyX2hh c2hfcmVxdWVzdF90b19lbmdpbmUoY3J5cC0+ZW5naW5lLCByZXEpOworK30KKysKKytzdGF0aWMg aW50IHN0YXJmaXZlX2hhc2hfZXhwb3J0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsIHZvaWQg Km91dCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhh c2hfcmVxdWVzdF9jdHgocmVxKTsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRv X2FoYXNoX3JlcXRmbShyZXEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9IGNy eXB0b19haGFzaF9jdHgodGZtKTsKKysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZyY3R4LT5h aGFzaF9mYmtfcmVxLCBjdHgtPmFoYXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxi YWNrKCZyY3R4LT5haGFzaF9mYmtfcmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxhZ3MgJiBDUllQ VE9fVEZNX1JFUV9NQVlfU0xFRVAsCisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVxLT5i YXNlLmRhdGEpOworKworKwlyZXR1cm4gY3J5cHRvX2FoYXNoX2V4cG9ydCgmcmN0eC0+YWhhc2hf ZmJrX3JlcSwgb3V0KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9oYXNoX2ltcG9ydChz dHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLCBjb25zdCB2b2lkICppbikKKyt7CisrCXN0cnVjdCBz dGFyZml2ZV9jcnlwX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsK KysJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtID0gY3J5cHRvX2FoYXNoX3JlcXRmbShyZXEpOwor KwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9IGNyeXB0b19haGFzaF9jdHgodGZtKTsK KysKKysJYWhhc2hfcmVxdWVzdF9zZXRfdGZtKCZyY3R4LT5haGFzaF9mYmtfcmVxLCBjdHgtPmFo YXNoX2Ziayk7CisrCWFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKCZyY3R4LT5haGFzaF9mYmtf cmVxLAorKwkJCQkgICByZXEtPmJhc2UuZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVAs CisrCQkJCSAgIHJlcS0+YmFzZS5jb21wbGV0ZSwgcmVxLT5iYXNlLmRhdGEpOworKworKwlyZXR1 cm4gY3J5cHRvX2FoYXNoX2ltcG9ydCgmcmN0eC0+YWhhc2hfZmJrX3JlcSwgaW4pOworK30KKysK KytzdGF0aWMgaW50IHN0YXJmaXZlX2hhc2hfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAq aGFzaCwKKysJCQkJICBjb25zdCBjaGFyICphbGdfbmFtZSwKKysJCQkJICB1bnNpZ25lZCBpbnQg bW9kZSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNo X2N0eChoYXNoKTsKKysKKysJY3R4LT5jcnlwID0gc3RhcmZpdmVfY3J5cF9maW5kX2RldihjdHgp OworKworKwlpZiAoIWN0eC0+Y3J5cCkKKysJCXJldHVybiAtRU5PREVWOworKworKwljdHgtPmFo YXNoX2ZiayA9IGNyeXB0b19hbGxvY19haGFzaChhbGdfbmFtZSwgMCwKKysJCQkJCSAgICBDUllQ VE9fQUxHX05FRURfRkFMTEJBQ0spOworKworKwlpZiAoSVNfRVJSKGN0eC0+YWhhc2hfZmJrKSkK KysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGN0eC0+Y3J5cC0+ZGV2LCBQVFJfRVJSKGN0eC0+YWhh c2hfZmJrKSwKKysJCQkJICAgICAic3RhcmZpdmVfaGFzaDogQ291bGQgbm90IGxvYWQgZmFsbGJh Y2sgZHJpdmVyLlxuIik7CisrCisrCWNyeXB0b19haGFzaF9zZXRfc3RhdGVzaXplKGhhc2gsIGNy eXB0b19haGFzaF9zdGF0ZXNpemUoY3R4LT5haGFzaF9mYmspKTsKKysJY3J5cHRvX2FoYXNoX3Nl dF9yZXFzaXplKGhhc2gsIHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9yZXF1ZXN0X2N0eCkg KworKwkJCQkgY3J5cHRvX2FoYXNoX3JlcXNpemUoY3R4LT5haGFzaF9mYmspKTsKKysKKysJY3R4 LT5rZXlsZW4gPSAwOworKwljdHgtPmhhc2hfbW9kZSA9IG1vZGU7CisrCisrCWN0eC0+ZW5naW5l Y3R4Lm9wLmRvX29uZV9yZXF1ZXN0ID0gc3RhcmZpdmVfaGFzaF9vbmVfcmVxdWVzdDsKKysJY3R4 LT5lbmdpbmVjdHgub3AucHJlcGFyZV9yZXF1ZXN0ID0gTlVMTDsKKysJY3R4LT5lbmdpbmVjdHgu b3AudW5wcmVwYXJlX3JlcXVlc3QgPSBOVUxMOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3Rh dGljIHZvaWQgc3RhcmZpdmVfaGFzaF9leGl0X3RmbShzdHJ1Y3QgY3J5cHRvX2FoYXNoICpoYXNo KQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhhc2hfY3R4 KGhhc2gpOworKworKwljcnlwdG9fZnJlZV9haGFzaChjdHgtPmFoYXNoX2Ziayk7CisrCisrCWN0 eC0+YWhhc2hfZmJrID0gTlVMTDsKKysJY3R4LT5lbmdpbmVjdHgub3AuZG9fb25lX3JlcXVlc3Qg PSBOVUxMOworKwljdHgtPmVuZ2luZWN0eC5vcC5wcmVwYXJlX3JlcXVlc3QgPSBOVUxMOworKwlj dHgtPmVuZ2luZWN0eC5vcC51bnByZXBhcmVfcmVxdWVzdCA9IE5VTEw7CisrfQorKworK3N0YXRp YyBpbnQgc3RhcmZpdmVfaGFzaF9sb25nX3NldGtleShzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgg KmN0eCwKKysJCQkJICAgICBjb25zdCB1OCAqa2V5LCB1bnNpZ25lZCBpbnQga2V5bGVuLAorKwkJ CQkgICAgIGNvbnN0IGNoYXIgKmFsZ19uYW1lKQorK3sKKysJc3RydWN0IGNyeXB0b193YWl0IHdh aXQ7CisrCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXE7CisrCXN0cnVjdCBzY2F0dGVybGlzdCBz ZzsKKysJc3RydWN0IGNyeXB0b19haGFzaCAqYWhhc2hfdGZtOworKwl1OCAqYnVmOworKwlpbnQg cmV0OworKworKwlhaGFzaF90Zm0gPSBjcnlwdG9fYWxsb2NfYWhhc2goYWxnX25hbWUsIDAsIDAp OworKwlpZiAoSVNfRVJSKGFoYXNoX3RmbSkpCisrCQlyZXR1cm4gUFRSX0VSUihhaGFzaF90Zm0p OworKworKwlyZXEgPSBhaGFzaF9yZXF1ZXN0X2FsbG9jKGFoYXNoX3RmbSwgR0ZQX0tFUk5FTCk7 CisrCWlmICghcmVxKSB7CisrCQlyZXQgPSAtRU5PTUVNOworKwkJZ290byBlcnJfZnJlZV9haGFz aDsKKysJfQorKworKwljcnlwdG9faW5pdF93YWl0KCZ3YWl0KTsKKysJYWhhc2hfcmVxdWVzdF9z ZXRfY2FsbGJhY2socmVxLCBDUllQVE9fVEZNX1JFUV9NQVlfQkFDS0xPRywKKysJCQkJICAgY3J5 cHRvX3JlcV9kb25lLCAmd2FpdCk7CisrCWNyeXB0b19haGFzaF9jbGVhcl9mbGFncyhhaGFzaF90 Zm0sIH4wKTsKKysKKysJYnVmID0ga3phbGxvYyhrZXlsZW4gKyBTVEFSRklWRV9IQVNIX0JVRkxF TiwgR0ZQX0tFUk5FTCk7CisrCWlmICghYnVmKSB7CisrCQlyZXQgPSAtRU5PTUVNOworKwkJZ290 byBlcnJfZnJlZV9yZXE7CisrCX0KKysKKysJbWVtY3B5KGJ1Ziwga2V5LCBrZXlsZW4pOworKwlz Z19pbml0X29uZSgmc2csIGJ1Ziwga2V5bGVuKTsKKysJYWhhc2hfcmVxdWVzdF9zZXRfY3J5cHQo cmVxLCAmc2csIGN0eC0+a2V5LCBrZXlsZW4pOworKworKwlyZXQgPSBjcnlwdG9fd2FpdF9yZXEo Y3J5cHRvX2FoYXNoX2RpZ2VzdChyZXEpLCAmd2FpdCk7CisrCisrCWtmcmVlKGJ1Zik7CisrZXJy X2ZyZWVfcmVxOgorKwlhaGFzaF9yZXF1ZXN0X2ZyZWUocmVxKTsKKytlcnJfZnJlZV9haGFzaDoK KysJY3J5cHRvX2ZyZWVfYWhhc2goYWhhc2hfdGZtKTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisr c3RhdGljIGludCBzdGFyZml2ZV9oYXNoX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICpoYXNo LAorKwkJCQljb25zdCB1OCAqa2V5LCB1bnNpZ25lZCBpbnQga2V5bGVuKQorK3sKKysJc3RydWN0 IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhhc2hfY3R4KGhhc2gpOworKwl1bnNp Z25lZCBpbnQgZGlnZXN0c2l6ZSA9IGNyeXB0b19haGFzaF9kaWdlc3RzaXplKGhhc2gpOworKwl1 bnNpZ25lZCBpbnQgYmxvY2tzaXplID0gY3J5cHRvX2FoYXNoX2Jsb2Nrc2l6ZShoYXNoKTsKKysJ Y29uc3QgY2hhciAqYWxnX25hbWU7CisrCisrCWNyeXB0b19haGFzaF9zZXRrZXkoY3R4LT5haGFz aF9mYmssIGtleSwga2V5bGVuKTsKKysKKysJaWYgKGtleWxlbiA8PSBibG9ja3NpemUpIHsKKysJ CW1lbWNweShjdHgtPmtleSwga2V5LCBrZXlsZW4pOworKwkJY3R4LT5rZXlsZW4gPSBrZXlsZW47 CisrCQlyZXR1cm4gMDsKKysJfQorKworKwljdHgtPmtleWxlbiA9IGRpZ2VzdHNpemU7CisrCisr CXN3aXRjaCAoZGlnZXN0c2l6ZSkgeworKwljYXNlIFNIQTIyNF9ESUdFU1RfU0laRToKKysJCWFs Z19uYW1lID0gInNoYTIyNC1zdGFyZml2ZSI7CisrCQlicmVhazsKKysJY2FzZSBTSEEyNTZfRElH RVNUX1NJWkU6CisrCQlpZiAoY3R4LT5oYXNoX21vZGUgPT0gU1RBUkZJVkVfSEFTSF9TTTMpCisr CQkJYWxnX25hbWUgPSAic20zLXN0YXJmaXZlIjsKKysJCWVsc2UKKysJCQlhbGdfbmFtZSA9ICJz aGEyNTYtc3RhcmZpdmUiOworKwkJYnJlYWs7CisrCWNhc2UgU0hBMzg0X0RJR0VTVF9TSVpFOgor KwkJYWxnX25hbWUgPSAic2hhMzg0LXN0YXJmaXZlIjsKKysJCWJyZWFrOworKwljYXNlIFNIQTUx Ml9ESUdFU1RfU0laRToKKysJCWFsZ19uYW1lID0gInNoYTUxMi1zdGFyZml2ZSI7CisrCQlicmVh azsKKysJZGVmYXVsdDoKKysJCXJldHVybiAtRUlOVkFMOworKwl9CisrCisrCXJldHVybiBzdGFy Zml2ZV9oYXNoX2xvbmdfc2V0a2V5KGN0eCwga2V5LCBrZXlsZW4sIGFsZ19uYW1lKTsKKyt9Cisr Cisrc3RhdGljIGludCBzdGFyZml2ZV9zaGEyMjRfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFz aCAqaGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJzaGEy MjQtZ2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBMjI0KTsKKyt9CisrCisr c3RhdGljIGludCBzdGFyZml2ZV9zaGEyNTZfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAq aGFzaCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJzaGEyNTYt Z2VuZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBMjU2KTsKKyt9CisrCisrc3Rh dGljIGludCBzdGFyZml2ZV9zaGEzODRfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFz aCkKKyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJzaGEzODQtZ2Vu ZXJpYyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBMzg0KTsKKyt9CisrCisrc3RhdGlj IGludCBzdGFyZml2ZV9zaGE1MTJfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkK Kyt7CisrCXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJzaGE1MTItZ2VuZXJp YyIsCisrCQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBNTEyKTsKKyt9CisrCisrc3RhdGljIGlu dCBzdGFyZml2ZV9zbTNfaW5pdF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7Cisr CXJldHVybiBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJzbTMtZ2VuZXJpYyIsCisrCQkJ CSAgICAgIFNUQVJGSVZFX0hBU0hfU00zKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9o bWFjX3NoYTIyNF9pbml0X3RmbShzdHJ1Y3QgY3J5cHRvX2FoYXNoICpoYXNoKQorK3sKKysJc3Ry dWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhhc2hfY3R4KGhhc2gpOworKwor KwljdHgtPmlzX2htYWMgPSB0cnVlOworKworKwlyZXR1cm4gc3RhcmZpdmVfaGFzaF9pbml0X3Rm bShoYXNoLCAiaG1hYyhzaGEyMjQtZ2VuZXJpYykiLAorKwkJCQkgICAgICBTVEFSRklWRV9IQVNI X1NIQTIyNCk7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaG1hY19zaGEyNTZfaW5pdF90 Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9jcnlw X2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChoYXNoKTsKKysKKysJY3R4LT5pc19obWFjID0g dHJ1ZTsKKysKKysJcmV0dXJuIHN0YXJmaXZlX2hhc2hfaW5pdF90Zm0oaGFzaCwgImhtYWMoc2hh MjU2LWdlbmVyaWMpIiwKKysJCQkJICAgICAgU1RBUkZJVkVfSEFTSF9TSEEyNTYpOworK30KKysK KytzdGF0aWMgaW50IHN0YXJmaXZlX2htYWNfc2hhMzg0X2luaXRfdGZtKHN0cnVjdCBjcnlwdG9f YWhhc2ggKmhhc2gpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHggKmN0eCA9IGNyeXB0 b19haGFzaF9jdHgoaGFzaCk7CisrCisrCWN0eC0+aXNfaG1hYyA9IHRydWU7CisrCisrCXJldHVy biBzdGFyZml2ZV9oYXNoX2luaXRfdGZtKGhhc2gsICJobWFjKHNoYTM4NC1nZW5lcmljKSIsCisr CQkJCSAgICAgIFNUQVJGSVZFX0hBU0hfU0hBMzg0KTsKKyt9CisrCisrc3RhdGljIGludCBzdGFy Zml2ZV9obWFjX3NoYTUxMl9pbml0X3RmbShzdHJ1Y3QgY3J5cHRvX2FoYXNoICpoYXNoKQorK3sK KysJc3RydWN0IHN0YXJmaXZlX2NyeXBfY3R4ICpjdHggPSBjcnlwdG9fYWhhc2hfY3R4KGhhc2gp OworKworKwljdHgtPmlzX2htYWMgPSB0cnVlOworKworKwlyZXR1cm4gc3RhcmZpdmVfaGFzaF9p bml0X3RmbShoYXNoLCAiaG1hYyhzaGE1MTItZ2VuZXJpYykiLAorKwkJCQkgICAgICBTVEFSRklW RV9IQVNIX1NIQTUxMik7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaG1hY19zbTNfaW5p dF90Zm0oc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9j cnlwX2N0eCAqY3R4ID0gY3J5cHRvX2FoYXNoX2N0eChoYXNoKTsKKysKKysJY3R4LT5pc19obWFj ID0gdHJ1ZTsKKysKKysJcmV0dXJuIHN0YXJmaXZlX2hhc2hfaW5pdF90Zm0oaGFzaCwgImhtYWMo c20zLWdlbmVyaWMpIiwKKysJCQkJICAgICAgU1RBUkZJVkVfSEFTSF9TTTMpOworK30KKysKKytz dGF0aWMgc3RydWN0IGFoYXNoX2FsZyBhbGdzX3NoYTJfc20zW10gPSB7CisreworKwkuaW5pdCAg ICAgPSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJmaXZlX2hhc2hfdXBk YXRlLAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwkuZmludXAgICAgPSBz dGFyZml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9oYXNoX2RpZ2VzdCwK KysJLmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBvcnQgICA9IHN0YXJm aXZlX2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zaGEyMjRfaW5pdF90Zm0s CisrCS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5oYWxnID0geworKwkJ LmRpZ2VzdHNpemUgPSBTSEEyMjRfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVzaXplICA9IHNpemVv ZihzdHJ1Y3Qgc2hhMjU2X3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJCS5jcmFfbmFtZQkJPSAi c2hhMjI0IiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTIyNC1zdGFyZml2ZSIsCisrCQkJ LmNyYV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5D IHwKKysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxH X05FRURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU0hBMjI0X0JMT0NLX1NJWkUs CisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAor KwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUs CisrCQl9CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJmaXZlX2hhc2hfaW5pdCwKKysJ LnVwZGF0ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5maW5hbCAgICA9IHN0YXJmaXZl X2hhc2hfZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hhc2hfZmludXAsCisrCS5kaWdl c3QgICA9IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0ICAgPSBzdGFyZml2ZV9oYXNo X2V4cG9ydCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9pbXBvcnQsCisrCS5pbml0X3Rm bSA9IHN0YXJmaXZlX2htYWNfc2hhMjI0X2luaXRfdGZtLAorKwkuZXhpdF90Zm0gPSBzdGFyZml2 ZV9oYXNoX2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2ZV9oYXNoX3NldGtleSwKKysJ LmhhbGcgPSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTIyNF9ESUdFU1RfU0laRSwKKysJCS5zdGF0 ZXNpemUgID0gc2l6ZW9mKHN0cnVjdCBzaGEyNTZfc3RhdGUpLAorKwkJLmJhc2UgPSB7CisrCQkJ LmNyYV9uYW1lCQk9ICJobWFjKHNoYTIyNCkiLAorKwkJCS5jcmFfZHJpdmVyX25hbWUJPSAic2hh MjI0LWhtYWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJCT0gMjAwLAorKwkJCS5jcmFf ZmxhZ3MJCT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBDUllQVE9fQUxHX1RZUEVfQUhB U0ggfAorKwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNLLAorKwkJCS5jcmFfYmxvY2tz aXplCQk9IFNIQTIyNF9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4c2l6ZQkJPSBzaXplb2Yoc3Ry dWN0IHN0YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdubWFzawkJPSAzLAorKwkJCS5j cmFfbW9kdWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9CisrfSwgeworKwkuaW5pdCAgICAg PSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJmaXZlX2hhc2hfdXBkYXRl LAorKwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwkuZmludXAgICAgPSBzdGFy Zml2ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9oYXNoX2RpZ2VzdCwKKysJ LmV4cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBvcnQgICA9IHN0YXJmaXZl X2hhc2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zaGEyNTZfaW5pdF90Zm0sCisr CS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5oYWxnID0geworKwkJLmRp Z2VzdHNpemUgPSBTSEEyNTZfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVzaXplICA9IHNpemVvZihz dHJ1Y3Qgc2hhMjU2X3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJCS5jcmFfbmFtZQkJPSAic2hh MjU2IiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTI1Ni1zdGFyZml2ZSIsCisrCQkJLmNy YV9wcmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwK KysJCQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05F RURfRkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU0hBMjU2X0JMT0NLX1NJWkUsCisr CQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJ CS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisr CQl9CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJmaXZlX2hhc2hfaW5pdCwKKysJLnVw ZGF0ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5maW5hbCAgICA9IHN0YXJmaXZlX2hh c2hfZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hhc2hfZmludXAsCisrCS5kaWdlc3Qg ICA9IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0ICAgPSBzdGFyZml2ZV9oYXNoX2V4 cG9ydCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9pbXBvcnQsCisrCS5pbml0X3RmbSA9 IHN0YXJmaXZlX2htYWNfc2hhMjU2X2luaXRfdGZtLAorKwkuZXhpdF90Zm0gPSBzdGFyZml2ZV9o YXNoX2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2ZV9oYXNoX3NldGtleSwKKysJLmhh bGcgPSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTI1Nl9ESUdFU1RfU0laRSwKKysJCS5zdGF0ZXNp emUgID0gc2l6ZW9mKHN0cnVjdCBzaGEyNTZfc3RhdGUpLAorKwkJLmJhc2UgPSB7CisrCQkJLmNy YV9uYW1lCQk9ICJobWFjKHNoYTI1NikiLAorKwkJCS5jcmFfZHJpdmVyX25hbWUJPSAic2hhMjU2 LWhtYWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJCT0gMjAwLAorKwkJCS5jcmFfZmxh Z3MJCT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBDUllQVE9fQUxHX1RZUEVfQUhBU0gg fAorKwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNLLAorKwkJCS5jcmFfYmxvY2tzaXpl CQk9IFNIQTI1Nl9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4c2l6ZQkJPSBzaXplb2Yoc3RydWN0 IHN0YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdubWFzawkJPSAzLAorKwkJCS5jcmFf bW9kdWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9CisrfSwgeworKwkuaW5pdCAgICAgPSBz dGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJmaXZlX2hhc2hfdXBkYXRlLAor KwkuZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwkuZmludXAgICAgPSBzdGFyZml2 ZV9oYXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9oYXNoX2RpZ2VzdCwKKysJLmV4 cG9ydCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBvcnQgICA9IHN0YXJmaXZlX2hh c2hfaW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zaGEzODRfaW5pdF90Zm0sCisrCS5l eGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5oYWxnID0geworKwkJLmRpZ2Vz dHNpemUgPSBTSEEzODRfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVzaXplICA9IHNpemVvZihzdHJ1 Y3Qgc2hhNTEyX3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJCS5jcmFfbmFtZQkJPSAic2hhMzg0 IiwKKysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTM4NC1zdGFyZml2ZSIsCisrCQkJLmNyYV9w cmlvcml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwKKysJ CQkJCQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05FRURf RkFMTEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU0hBMzg0X0JMT0NLX1NJWkUsCisrCQkJ LmNyYV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5j cmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9 CisrCX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJmaXZlX2hhc2hfaW5pdCwKKysJLnVwZGF0 ZSAgID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5maW5hbCAgICA9IHN0YXJmaXZlX2hhc2hf ZmluYWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hhc2hfZmludXAsCisrCS5kaWdlc3QgICA9 IHN0YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0ICAgPSBzdGFyZml2ZV9oYXNoX2V4cG9y dCwKKysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9pbXBvcnQsCisrCS5pbml0X3RmbSA9IHN0 YXJmaXZlX2htYWNfc2hhMzg0X2luaXRfdGZtLAorKwkuZXhpdF90Zm0gPSBzdGFyZml2ZV9oYXNo X2V4aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2ZV9oYXNoX3NldGtleSwKKysJLmhhbGcg PSB7CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTM4NF9ESUdFU1RfU0laRSwKKysJCS5zdGF0ZXNpemUg ID0gc2l6ZW9mKHN0cnVjdCBzaGE1MTJfc3RhdGUpLAorKwkJLmJhc2UgPSB7CisrCQkJLmNyYV9u YW1lCQk9ICJobWFjKHNoYTM4NCkiLAorKwkJCS5jcmFfZHJpdmVyX25hbWUJPSAic2hhMzg0LWht YWMtc3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJCT0gMjAwLAorKwkJCS5jcmFfZmxhZ3MJ CT0gQ1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBDUllQVE9fQUxHX1RZUEVfQUhBU0ggfAor KwkJCQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNLLAorKwkJCS5jcmFfYmxvY2tzaXplCQk9 IFNIQTM4NF9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4c2l6ZQkJPSBzaXplb2Yoc3RydWN0IHN0 YXJmaXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdubWFzawkJPSAzLAorKwkJCS5jcmFfbW9k dWxlCQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9CisrfSwgeworKwkuaW5pdCAgICAgPSBzdGFy Zml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJmaXZlX2hhc2hfdXBkYXRlLAorKwku ZmluYWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwkuZmludXAgICAgPSBzdGFyZml2ZV9o YXNoX2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9oYXNoX2RpZ2VzdCwKKysJLmV4cG9y dCAgID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBvcnQgICA9IHN0YXJmaXZlX2hhc2hf aW1wb3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zaGE1MTJfaW5pdF90Zm0sCisrCS5leGl0 X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5oYWxnID0geworKwkJLmRpZ2VzdHNp emUgPSBTSEE1MTJfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVzaXplICA9IHNpemVvZihzdHJ1Y3Qg c2hhNTEyX3N0YXRlKSwKKysJCS5iYXNlID0geworKwkJCS5jcmFfbmFtZQkJPSAic2hhNTEyIiwK KysJCQkuY3JhX2RyaXZlcl9uYW1lCT0gInNoYTUxMi1zdGFyZml2ZSIsCisrCQkJLmNyYV9wcmlv cml0eQkJPSAyMDAsCisrCQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwKKysJCQkJ CQkgIENSWVBUT19BTEdfVFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05FRURfRkFM TEJBQ0ssCisrCQkJLmNyYV9ibG9ja3NpemUJCT0gU0hBNTEyX0JMT0NLX1NJWkUsCisrCQkJLmNy YV9jdHhzaXplCQk9IHNpemVvZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5jcmFf YWxpZ25tYXNrCQk9IDMsCisrCQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9Cisr CX0KKyt9LCB7CisrCS5pbml0ICAgICA9IHN0YXJmaXZlX2hhc2hfaW5pdCwKKysJLnVwZGF0ZSAg ID0gc3RhcmZpdmVfaGFzaF91cGRhdGUsCisrCS5maW5hbCAgICA9IHN0YXJmaXZlX2hhc2hfZmlu YWwsCisrCS5maW51cCAgICA9IHN0YXJmaXZlX2hhc2hfZmludXAsCisrCS5kaWdlc3QgICA9IHN0 YXJmaXZlX2hhc2hfZGlnZXN0LAorKwkuZXhwb3J0ICAgPSBzdGFyZml2ZV9oYXNoX2V4cG9ydCwK KysJLmltcG9ydCAgID0gc3RhcmZpdmVfaGFzaF9pbXBvcnQsCisrCS5pbml0X3RmbSA9IHN0YXJm aXZlX2htYWNfc2hhNTEyX2luaXRfdGZtLAorKwkuZXhpdF90Zm0gPSBzdGFyZml2ZV9oYXNoX2V4 aXRfdGZtLAorKwkuc2V0a2V5ICAgPSBzdGFyZml2ZV9oYXNoX3NldGtleSwKKysJLmhhbGcgPSB7 CisrCQkuZGlnZXN0c2l6ZSA9IFNIQTUxMl9ESUdFU1RfU0laRSwKKysJCS5zdGF0ZXNpemUgID0g c2l6ZW9mKHN0cnVjdCBzaGE1MTJfc3RhdGUpLAorKwkJLmJhc2UgPSB7CisrCQkJLmNyYV9uYW1l CQk9ICJobWFjKHNoYTUxMikiLAorKwkJCS5jcmFfZHJpdmVyX25hbWUJPSAic2hhNTEyLWhtYWMt c3RhcmZpdmUiLAorKwkJCS5jcmFfcHJpb3JpdHkJCT0gMjAwLAorKwkJCS5jcmFfZmxhZ3MJCT0g Q1JZUFRPX0FMR19BU1lOQyB8CisrCQkJCQkJICBDUllQVE9fQUxHX1RZUEVfQUhBU0ggfAorKwkJ CQkJCSAgQ1JZUFRPX0FMR19ORUVEX0ZBTExCQUNLLAorKwkJCS5jcmFfYmxvY2tzaXplCQk9IFNI QTUxMl9CTE9DS19TSVpFLAorKwkJCS5jcmFfY3R4c2l6ZQkJPSBzaXplb2Yoc3RydWN0IHN0YXJm aXZlX2NyeXBfY3R4KSwKKysJCQkuY3JhX2FsaWdubWFzawkJPSAzLAorKwkJCS5jcmFfbW9kdWxl CQk9IFRISVNfTU9EVUxFLAorKwkJfQorKwl9CisrfSwgeworKwkuaW5pdCAgICAgPSBzdGFyZml2 ZV9oYXNoX2luaXQsCisrCS51cGRhdGUgICA9IHN0YXJmaXZlX2hhc2hfdXBkYXRlLAorKwkuZmlu YWwgICAgPSBzdGFyZml2ZV9oYXNoX2ZpbmFsLAorKwkuZmludXAgICAgPSBzdGFyZml2ZV9oYXNo X2ZpbnVwLAorKwkuZGlnZXN0ICAgPSBzdGFyZml2ZV9oYXNoX2RpZ2VzdCwKKysJLmV4cG9ydCAg ID0gc3RhcmZpdmVfaGFzaF9leHBvcnQsCisrCS5pbXBvcnQgICA9IHN0YXJmaXZlX2hhc2hfaW1w b3J0LAorKwkuaW5pdF90Zm0gPSBzdGFyZml2ZV9zbTNfaW5pdF90Zm0sCisrCS5leGl0X3RmbSA9 IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5oYWxnID0geworKwkJLmRpZ2VzdHNpemUgPSBT TTNfRElHRVNUX1NJWkUsCisrCQkuc3RhdGVzaXplICA9IHNpemVvZihzdHJ1Y3Qgc20zX3N0YXRl KSwKKysJCS5iYXNlID0geworKwkJCS5jcmFfbmFtZQkJPSAic20zIiwKKysJCQkuY3JhX2RyaXZl cl9uYW1lCT0gInNtMy1zdGFyZml2ZSIsCisrCQkJLmNyYV9wcmlvcml0eQkJPSAyMDAsCisrCQkJ LmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwKKysJCQkJCQkgIENSWVBUT19BTEdfVFlQ RV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0ssCisrCQkJLmNyYV9i bG9ja3NpemUJCT0gU00zX0JMT0NLX1NJWkUsCisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVvZihz dHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisrCQkJ LmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9CisrCX0KKyt9LCB7CisrCS5pbml0CSAg PSBzdGFyZml2ZV9oYXNoX2luaXQsCisrCS51cGRhdGUJICA9IHN0YXJmaXZlX2hhc2hfdXBkYXRl LAorKwkuZmluYWwJICA9IHN0YXJmaXZlX2hhc2hfZmluYWwsCisrCS5maW51cAkgID0gc3RhcmZp dmVfaGFzaF9maW51cCwKKysJLmRpZ2VzdAkgID0gc3RhcmZpdmVfaGFzaF9kaWdlc3QsCisrCS5l eHBvcnQJICA9IHN0YXJmaXZlX2hhc2hfZXhwb3J0LAorKwkuaW1wb3J0CSAgPSBzdGFyZml2ZV9o YXNoX2ltcG9ydCwKKysJLmluaXRfdGZtID0gc3RhcmZpdmVfaG1hY19zbTNfaW5pdF90Zm0sCisr CS5leGl0X3RmbSA9IHN0YXJmaXZlX2hhc2hfZXhpdF90Zm0sCisrCS5zZXRrZXkJICA9IHN0YXJm aXZlX2hhc2hfc2V0a2V5LAorKwkuaGFsZyA9IHsKKysJCS5kaWdlc3RzaXplID0gU00zX0RJR0VT VF9TSVpFLAorKwkJLnN0YXRlc2l6ZSAgPSBzaXplb2Yoc3RydWN0IHNtM19zdGF0ZSksCisrCQku YmFzZSA9IHsKKysJCQkuY3JhX25hbWUJCT0gImhtYWMoc20zKSIsCisrCQkJLmNyYV9kcml2ZXJf bmFtZQk9ICJzbTMtaG1hYy1zdGFyZml2ZSIsCisrCQkJLmNyYV9wcmlvcml0eQkJPSAyMDAsCisr CQkJLmNyYV9mbGFncwkJPSBDUllQVE9fQUxHX0FTWU5DIHwKKysJCQkJCQkgIENSWVBUT19BTEdf VFlQRV9BSEFTSCB8CisrCQkJCQkJICBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0ssCisrCQkJLmNy YV9ibG9ja3NpemUJCT0gU00zX0JMT0NLX1NJWkUsCisrCQkJLmNyYV9jdHhzaXplCQk9IHNpemVv ZihzdHJ1Y3Qgc3RhcmZpdmVfY3J5cF9jdHgpLAorKwkJCS5jcmFfYWxpZ25tYXNrCQk9IDMsCisr CQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCisrCQl9CisrCX0KKyt9LAorK307CisrCisr aW50IHN0YXJmaXZlX2hhc2hfcmVnaXN0ZXJfYWxncyh2b2lkKQorK3sKKysJcmV0dXJuIGNyeXB0 b19yZWdpc3Rlcl9haGFzaGVzKGFsZ3Nfc2hhMl9zbTMsIEFSUkFZX1NJWkUoYWxnc19zaGEyX3Nt MykpOworK30KKysKKyt2b2lkIHN0YXJmaXZlX2hhc2hfdW5yZWdpc3Rlcl9hbGdzKHZvaWQpCisr eworKwljcnlwdG9fdW5yZWdpc3Rlcl9haGFzaGVzKGFsZ3Nfc2hhMl9zbTMsIEFSUkFZX1NJWkUo YWxnc19zaGEyX3NtMykpOworK30KKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGludXg2LjQvcGF0Y2hlcy8wMDI1LWNyeXB0by1zdGFyZml2ZS1GaXgtZHJpdmVyLWRlcGVuZGVu Y2llcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDI1LWNyeXB0by1zdGFyZml2 ZS1GaXgtZHJpdmVyLWRlcGVuZGVuY2llcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi5kODIwYzk4NTg1MzJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9saW51eDYuNC9wYXRjaGVzLzAwMjUtY3J5cHRvLXN0YXJmaXZlLUZpeC1kcml2ZXItZGVwZW5k ZW5jaWVzLnBhdGNoCkBAIC0wLDAgKzEsMzggQEAKK0Zyb20gYzBlYjM1YjJmM2M1YzA3ZjM5MmQ5 MjgxZGUzYWUyOGFmOWE4MzE3NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEppYSBK aWUgSG8gPGppYWppZS5ob0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAxOSBNYXkgMjAy MyAyMTo0MjozMyArMDgwMAorU3ViamVjdDogW1BBVENIIDI1LzcyXSBjcnlwdG86IHN0YXJmaXZl IC0gRml4IGRyaXZlciBkZXBlbmRlbmNpZXMKKworS2NvbmZpZyB1cGRhdGVkIHRvIGRlcGVuZCBv biBETUFERVZJQ0VTIGluc3RlYWQgb2Ygc2VsZWN0aW5nIGl0LgorCitSZXBvcnRlZC1ieToga2Vy bmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+CitMaW5rOiBodHRwczovL2xvcmUua2VybmVs Lm9yZy9vZS1rYnVpbGQtYWxsLzIwMjMwNTE5MTkyOS5FcTRPVlo2RC1sa3BAaW50ZWwuY29tLwor U2lnbmVkLW9mZi1ieTogSmlhIEppZSBIbyA8amlhamllLmhvQHN0YXJmaXZldGVjaC5jb20+CitT aWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+Cist LS0KKyBkcml2ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnIHwgMyArLS0KKyAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kcml2 ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnIGIvZHJpdmVycy9jcnlwdG8vc3RhcmZpdmUvS2Nv bmZpZworaW5kZXggYmU1OGQxNDczNTIzLi45MDhjMTYyYmE3OWEgMTAwNjQ0CistLS0gYS9kcml2 ZXJzL2NyeXB0by9zdGFyZml2ZS9LY29uZmlnCisrKysgYi9kcml2ZXJzL2NyeXB0by9zdGFyZml2 ZS9LY29uZmlnCitAQCAtNCwxNCArNCwxMyBAQAorIAorIGNvbmZpZyBDUllQVE9fREVWX0pINzEx MAorIAl0cmlzdGF0ZSAiU3RhckZpdmUgSkg3MTEwIGNyeXB0b2dyYXBoaWMgZW5naW5lIGRyaXZl ciIKKy0JZGVwZW5kcyBvbiBTT0NfU1RBUkZJVkUgfHwgQ09NUElMRV9URVNUCisrCWRlcGVuZHMg b24gKFNPQ19TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QpICYmIERNQURFVklDRVMKKyAJc2VsZWN0 IENSWVBUT19FTkdJTkUKKyAJc2VsZWN0IENSWVBUT19ITUFDCisgCXNlbGVjdCBDUllQVE9fU0hB MjU2CisgCXNlbGVjdCBDUllQVE9fU0hBNTEyCisgCXNlbGVjdCBDUllQVE9fU00zX0dFTkVSSUMK KyAJc2VsZWN0IEFSTV9BTUJBCistCXNlbGVjdCBETUFERVZJQ0VTCisgCXNlbGVjdCBBTUJBX1BM MDhYCisgCWhlbHAKKyAJICBTdXBwb3J0IGZvciBTdGFyRml2ZSBKSDcxMTAgY3J5cHRvIGhhcmR3 YXJlIGFjY2VsZXJhdGlvbiBlbmdpbmUuCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAyNi1yaXNjdi1LY29uZmlnLUFkZC1zZWxlY3QtQVJNX0FN QkEtdG8tU09DX1NUQVJGSVZFLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjYt cmlzY3YtS2NvbmZpZy1BZGQtc2VsZWN0LUFSTV9BTUJBLXRvLVNPQ19TVEFSRklWRS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5kYjMxOWNhOGU3OTNmCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjYtcmlzY3YtS2Nv bmZpZy1BZGQtc2VsZWN0LUFSTV9BTUJBLXRvLVNPQ19TVEFSRklWRS5wYXRjaApAQCAtMCwwICsx LDI4IEBACitGcm9tIGQ1ZjQ4MjcyMTJjOTE1ZTNkOTNhZTNlZTliNjY3NzYwMzVlY2M4YTQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaWEgSmllIEhvIDxqaWFqaWUuaG9Ac3RhcmZp dmV0ZWNoLmNvbT4KK0RhdGU6IFRodSwgMjUgTWF5IDIwMjMgMTQ6MTg6MzYgKzA4MDAKK1N1Ympl Y3Q6IFtQQVRDSCAyNi83Ml0gcmlzY3Y6IEtjb25maWc6IEFkZCBzZWxlY3QgQVJNX0FNQkEgdG8g U09DX1NUQVJGSVZFCisKK1NlbGVjdHMgQVJNX0FNQkEgcGxhdGZvcm0gc3VwcG9ydCBmb3IgU3Rh ckZpdmUgU29DcyByZXF1aXJlZCBieSBzcGkgYW5kCitjcnlwdG8gZG1hIGVuZ2luZS4KKworU2ln bmVkLW9mZi1ieTogSmlhIEppZSBIbyA8amlhamllLmhvQHN0YXJmaXZldGVjaC5jb20+CistLS0K KyBhcmNoL3Jpc2N2L0tjb25maWcuc29jcyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9LY29uZmlnLnNvY3MgYi9hcmNoL3Jp c2N2L0tjb25maWcuc29jcworaW5kZXggMWNmNjlmOTU4ZjEwLi4zODFjZDQ2ZTYzNzMgMTAwNjQ0 CistLS0gYS9hcmNoL3Jpc2N2L0tjb25maWcuc29jcworKysrIGIvYXJjaC9yaXNjdi9LY29uZmln LnNvY3MKK0BAIC0yOSw2ICsyOSw3IEBAIGNvbmZpZyBTT0NfU1RBUkZJVkUKKyAJYm9vbCAiU3Rh ckZpdmUgU29DcyIKKyAJc2VsZWN0IFBJTkNUUkwKKyAJc2VsZWN0IFJFU0VUX0NPTlRST0xMRVIK KysJc2VsZWN0IEFSTV9BTUJBCisgCWhlbHAKKyAJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3Ig U3RhckZpdmUgU29DIHBsYXRmb3JtIGhhcmR3YXJlLgorIAorLS0gCisyLjQxLjAKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjctQVNvQy1kdC1iaW5kaW5ncy1BZGQt VERNLWNvbnRyb2xsZXItYmluZGluZ3MtZm9yLVN0YS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQv cGF0Y2hlcy8wMDI3LUFTb0MtZHQtYmluZGluZ3MtQWRkLVRETS1jb250cm9sbGVyLWJpbmRpbmdz LWZvci1TdGEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u MmUzZTRjZmRhNjAwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDI3LUFTb0MtZHQtYmluZGluZ3MtQWRkLVRETS1jb250cm9sbGVyLWJpbmRpbmdzLWZvci1T dGEucGF0Y2gKQEAgLTAsMCArMSwxMjMgQEAKK0Zyb20gYWE1NjVjNTEzMDRmYzFjZmVlMDE2YmM0 NjZiYWViOTc5YTdjMjI1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdhbGtlciBD aGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAyNiBNYXkgMjAy MyAyMjo1NDowMCArMDgwMAorU3ViamVjdDogW1BBVENIIDI3LzcyXSBBU29DOiBkdC1iaW5kaW5n czogQWRkIFRETSBjb250cm9sbGVyIGJpbmRpbmdzIGZvcgorIFN0YXJGaXZlIEpINzExMAorCitB ZGQgYmluZGluZ3MgZm9yIFRETSBkcml2ZXIgd2hpY2ggc3VwcG9ydHMgbXVsdGktY2hhbm5lbCBh dWRpbyBwbGF5YmFjaworYW5kIGNhcHR1cmUgb24gSkg3MTEwIHBsYXRmb3JtLgorCitSZXZpZXdl ZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3Jn PgorU2lnbmVkLW9mZi1ieTogV2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5j b20+CistLS0KKyAuLi4vYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3MTEwLXRkbS55YW1sICAg fCA5OCArKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDk4IGluc2VydGlvbnMo KykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L3NvdW5kL3N0YXJmaXZlLGpoNzExMC10ZG0ueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kL3N0YXJmaXZlLGpoNzExMC10ZG0ueWFtbCBi L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9zdGFyZml2ZSxqaDcxMTAt dGRtLnlhbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmFiYjM3 M2ZiZmEyNgorLS0tIC9kZXYvbnVsbAorKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL3NvdW5kL3N0YXJmaXZlLGpoNzExMC10ZG0ueWFtbAorQEAgLTAsMCArMSw5OCBAQAor KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNl KQorKyVZQU1MIDEuMgorKy0tLQorKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMv c291bmQvc3RhcmZpdmUsamg3MTEwLXRkbS55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0 cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBTdGFyRml2ZSBKSDcx MTAgVERNIENvbnRyb2xsZXIKKysKKytkZXNjcmlwdGlvbjogfAorKyAgVGhlIFRETSBDb250cm9s bGVyIGlzIGEgVGltZSBEaXZpc2lvbiBNdWx0aXBsZXhlZCBhdWRpbyBpbnRlcmZhY2UKKysgIGlu dGVncmF0ZWQgaW4gU3RhckZpdmUgSkg3MTEwIFNvQywgYWxsb3dpbmcgdXAgdG8gOCBjaGFubmVs cyBvZgorKyAgYXVkaW8gb3ZlciBhIHNlcmlhbCBpbnRlcmZhY2UuIFRoZSBURE0gY29udHJvbGxl ciBjYW4gb3BlcmF0ZSBib3RoCisrICBpbiBtYXN0ZXIgYW5kIHNsYXZlIG1vZGUuCisrCisrbWFp bnRhaW5lcnM6CisrICAtIFdhbGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29t PgorKworK2FsbE9mOgorKyAgLSAkcmVmOiBkYWktY29tbW9uLnlhbWwjCisrCisrcHJvcGVydGll czoKKysgIGNvbXBhdGlibGU6CisrICAgIGVudW06CisrICAgICAgLSBzdGFyZml2ZSxqaDcxMTAt dGRtCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBjbG9ja3M6CisrICAgIGl0 ZW1zOgorKyAgICAgIC0gZGVzY3JpcHRpb246IFRETSBBSEIgQ2xvY2sKKysgICAgICAtIGRlc2Ny aXB0aW9uOiBURE0gQVBCIENsb2NrCisrICAgICAgLSBkZXNjcmlwdGlvbjogVERNIEludGVybmFs IENsb2NrCisrICAgICAgLSBkZXNjcmlwdGlvbjogVERNIENsb2NrCisrICAgICAgLSBkZXNjcmlw dGlvbjogSW5uZXIgTUNMSworKyAgICAgIC0gZGVzY3JpcHRpb246IFRETSBFeHRlcm5hbCBDbG9j aworKworKyAgY2xvY2stbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHRkbV9h aGIKKysgICAgICAtIGNvbnN0OiB0ZG1fYXBiCisrICAgICAgLSBjb25zdDogdGRtX2ludGVybmFs CisrICAgICAgLSBjb25zdDogdGRtCisrICAgICAgLSBjb25zdDogbWNsa19pbm5lcgorKyAgICAg IC0gY29uc3Q6IHRkbV9leHQKKysKKysgIHJlc2V0czoKKysgICAgaXRlbXM6CisrICAgICAgLSBk ZXNjcmlwdGlvbjogdGRtIGFoYiByZXNldCBsaW5lCisrICAgICAgLSBkZXNjcmlwdGlvbjogdGRt IGFwYiByZXNldCBsaW5lCisrICAgICAgLSBkZXNjcmlwdGlvbjogdGRtIGNvcmUgcmVzZXQgbGlu ZQorKworKyAgZG1hczoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogUlggRE1B IENoYW5uZWwKKysgICAgICAtIGRlc2NyaXB0aW9uOiBUWCBETUEgQ2hhbm5lbAorKworKyAgZG1h LW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiByeAorKyAgICAgIC0gY29uc3Q6 IHR4CisrCisrICAiI3NvdW5kLWRhaS1jZWxscyI6CisrICAgIGNvbnN0OiAwCisrCisrcmVxdWly ZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0gcmVnCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1u YW1lcworKyAgLSByZXNldHMKKysgIC0gZG1hcworKyAgLSBkbWEtbmFtZXMKKysgIC0gIiNzb3Vu ZC1kYWktY2VsbHMiCisrCisrYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisrCisrZXhhbXBs ZXM6CisrICAtIHwKKysgICAgdGRtQDEwMDkwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAi c3RhcmZpdmUsamg3MTEwLXRkbSI7CisrICAgICAgICByZWcgPSA8MHgxMDA5MDAwMCAweDEwMDA+ OworKyAgICAgICAgY2xvY2tzID0gPCZzeXNjcmcgMTg0PiwKKysgICAgICAgICAgICAgICAgIDwm c3lzY3JnIDE4NT4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyAxODY+LAorKyAgICAgICAg ICAgICAgICAgPCZzeXNjcmcgMTg3PiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIDE3PiwK KysgICAgICAgICAgICAgICAgIDwmdGRtX2V4dD47CisrICAgICAgICBjbG9jay1uYW1lcyA9ICJ0 ZG1fYWhiIiwgInRkbV9hcGIiLAorKyAgICAgICAgICAgICAgICAgICAgICAidGRtX2ludGVybmFs IiwgInRkbSIsCisrICAgICAgICAgICAgICAgICAgICAgICJtY2xrX2lubmVyIiwgInRkbV9leHQi OworKyAgICAgICAgcmVzZXRzID0gPCZzeXNjcmcgMTA1PiwKKysgICAgICAgICAgICAgICAgIDwm c3lzY3JnIDEwNz4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyAxMDY+OworKyAgICAgICAg ZG1hcyA9IDwmZG1hIDIwPiwgPCZkbWEgMjE+OworKyAgICAgICAgZG1hLW5hbWVzID0gInJ4Iiwi dHgiOworKyAgICAgICAgI3NvdW5kLWRhaS1jZWxscyA9IDwwPjsKKysgICAgfTsKKy0tIAorMi40 MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDI4LUFTb0Mtc3Rh cmZpdmUtQWRkLUpINzExMC1URE0tZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRj aGVzLzAwMjgtQVNvQy1zdGFyZml2ZS1BZGQtSkg3MTEwLVRETS1kcml2ZXIucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMjg3ZmQ3NWRmZTRkZQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDI4LUFTb0Mtc3RhcmZpdmUt QWRkLUpINzExMC1URE0tZHJpdmVyLnBhdGNoCkBAIC0wLDAgKzEsNzYwIEBACitGcm9tIGY0Mzdm NDRiN2E0NWE4NGFiYWM4ZTVmMTljYTNhMDE5OTJkMWNlMTEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KK0Rh dGU6IEZyaSwgMjYgTWF5IDIwMjMgMjI6NTQ6MDEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAyOC83 Ml0gQVNvQzogc3RhcmZpdmU6IEFkZCBKSDcxMTAgVERNIGRyaXZlcgorCitBZGQgdGRtIGRyaXZl ciBzdXBwb3J0IGZvciB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KKworU2lnbmVkLW9mZi1ieTog V2Fsa2VyIENoZW4gPHdhbGtlci5jaGVuQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBzb3VuZC9z b2MvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAxICsKKyBzb3VuZC9zb2MvTWFrZWZpbGUgICAg ICAgICAgICAgIHwgICAxICsKKyBzb3VuZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZyAgICAgIHwgIDE1 ICsKKyBzb3VuZC9zb2Mvc3RhcmZpdmUvTWFrZWZpbGUgICAgIHwgICAyICsKKyBzb3VuZC9zb2Mv c3RhcmZpdmUvamg3MTEwX3RkbS5jIHwgNjc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCisgNSBmaWxlcyBjaGFuZ2VkLCA2OTggaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEw MDY0NCBzb3VuZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZworIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3Vu ZC9zb2Mvc3RhcmZpdmUvTWFrZWZpbGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc291bmQvc29jL3N0 YXJmaXZlL2poNzExMF90ZG0uYworCitkaWZmIC0tZ2l0IGEvc291bmQvc29jL0tjb25maWcgYi9z b3VuZC9zb2MvS2NvbmZpZworaW5kZXggODQ4ZmJhZTI2YzNiLi44ZDFkOTQwMWVjZjIgMTAwNjQ0 CistLS0gYS9zb3VuZC9zb2MvS2NvbmZpZworKysrIGIvc291bmQvc29jL0tjb25maWcKK0BAIC05 MSw2ICs5MSw3IEBAIHNvdXJjZSAic291bmQvc29jL3NoL0tjb25maWciCisgc291cmNlICJzb3Vu ZC9zb2Mvc29mL0tjb25maWciCisgc291cmNlICJzb3VuZC9zb2Mvc3BlYXIvS2NvbmZpZyIKKyBz b3VyY2UgInNvdW5kL3NvYy9zcHJkL0tjb25maWciCisrc291cmNlICJzb3VuZC9zb2Mvc3RhcmZp dmUvS2NvbmZpZyIKKyBzb3VyY2UgInNvdW5kL3NvYy9zdGkvS2NvbmZpZyIKKyBzb3VyY2UgInNv dW5kL3NvYy9zdG0vS2NvbmZpZyIKKyBzb3VyY2UgInNvdW5kL3NvYy9zdW54aS9LY29uZmlnIgor ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9NYWtlZmlsZQoraW5k ZXggNTA3ZWFlZDFkNmExLi42NWFlYjRlZjQwNjggMTAwNjQ0CistLS0gYS9zb3VuZC9zb2MvTWFr ZWZpbGUKKysrKyBiL3NvdW5kL3NvYy9NYWtlZmlsZQorQEAgLTU5LDYgKzU5LDcgQEAgb2JqLSQo Q09ORklHX1NORF9TT0MpCSs9IHNoLworIG9iai0kKENPTkZJR19TTkRfU09DKQkrPSBzb2YvCisg b2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IHNwZWFyLworIG9iai0kKENPTkZJR19TTkRfU09DKQkr PSBzcHJkLworK29iai0kKENPTkZJR19TTkRfU09DKQkrPSBzdGFyZml2ZS8KKyBvYmotJChDT05G SUdfU05EX1NPQykJKz0gc3RpLworIG9iai0kKENPTkZJR19TTkRfU09DKQkrPSBzdG0vCisgb2Jq LSQoQ09ORklHX1NORF9TT0MpCSs9IHN1bnhpLworZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zdGFy Zml2ZS9LY29uZmlnIGIvc291bmQvc29jL3N0YXJmaXZlL0tjb25maWcKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmZhZmI2ODFmOGMwYQorLS0tIC9kZXYvbnVsbAor KysrIGIvc291bmQvc29jL3N0YXJmaXZlL0tjb25maWcKK0BAIC0wLDAgKzEsMTUgQEAKKysjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKytjb25maWcgU05EX1NPQ19TVEFS RklWRQorKwl0cmlzdGF0ZSAiQXVkaW8gc3VwcG9ydCBmb3IgU3RhckZpdmUgU29DIgorKwlkZXBl bmRzIG9uIENPTVBJTEVfVEVTVCB8fCBBUkNIX1NUQVJGSVZFCisrCWhlbHAKKysJICBTYXkgWSBv ciBNIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8KKysJ ICB0aGUgU3RhcmZpdmUgU29DcycgQXVkaW8gaW50ZXJmYWNlcy4gWW91IHdpbGwgYWxzbyBuZWVk IHRvCisrCSAgc2VsZWN0IHRoZSBhdWRpbyBpbnRlcmZhY2VzIHRvIHN1cHBvcnQgYmVsb3cuCisr CisrY29uZmlnIFNORF9TT0NfSkg3MTEwX1RETQorKwl0cmlzdGF0ZSAiSkg3MTEwIFRETSBkZXZp Y2UgZHJpdmVyIgorKwlkZXBlbmRzIG9uIEhBVkVfQ0xLICYmIFNORF9TT0NfU1RBUkZJVkUKKysJ c2VsZWN0IFNORF9TT0NfR0VORVJJQ19ETUFFTkdJTkVfUENNCisrCWhlbHAKKysJICBTYXkgWSBv ciBNIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTdGFyRml2ZSBURE0gZHJpdmVyLgor ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zdGFyZml2ZS9NYWtlZmlsZSBiL3NvdW5kL3NvYy9zdGFy Zml2ZS9NYWtlZmlsZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4u ZjdkOTYwMjExZDcyCistLS0gL2Rldi9udWxsCisrKysgYi9zb3VuZC9zb2Mvc3RhcmZpdmUvTWFr ZWZpbGUKK0BAIC0wLDAgKzEsMiBAQAorKyMgU3RhckZpdmUgUGxhdGZvcm0gU3VwcG9ydAorK29i ai0kKENPTkZJR19TTkRfU09DX0pINzExMF9URE0pICs9IGpoNzExMF90ZG0ubworZGlmZiAtLWdp dCBhL3NvdW5kL3NvYy9zdGFyZml2ZS9qaDcxMTBfdGRtLmMgYi9zb3VuZC9zb2Mvc3RhcmZpdmUv amg3MTEwX3RkbS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi45 NzNiOTEwZDJkM2UKKy0tLSAvZGV2L251bGwKKysrKyBiL3NvdW5kL3NvYy9zdGFyZml2ZS9qaDcx MTBfdGRtLmMKK0BAIC0wLDAgKzEsNjc5IEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAKKysvKgorKyAqIGpoNzExMF90ZG0uYyAtLSBTdGFyRml2ZSBKSDcxMTAgVERNIGRy aXZlcgorKyAqCisrICogQ29weXJpZ2h0IChDKSAyMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28u LCBMdGQuCisrICoKKysgKiBBdXRob3I6IFdhbGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2 ZXRlY2guY29tPgorKyAqLworKworKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8 bGludXgvZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L2RtYWVuZ2luZS5oPgorKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CisrI2luY2x1ZGUg PGxpbnV4L29mX3BsYXRmb3JtLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKysj aW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisrI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisrI2lu Y2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisrI2luY2x1ZGUgPHNvdW5kL2RtYWVuZ2luZV9wY20uaD4K KysjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKysj aW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKysj aW5jbHVkZSA8c291bmQvc29jLWRhaS5oPgorKworKyNkZWZpbmUgVERNX1BDTUdCQ1IJCQkweDAw CisrCSNkZWZpbmUgUENNR0JDUl9NQVNLCQkweDFlCisrCSNkZWZpbmUgUENNR0JDUl9FTkFCTEUJ CUJJVCgwKQorKwkjZGVmaW5lIFBDTUdCQ1JfVFJJVFhFTgkJQklUKDQpCisrCSNkZWZpbmUgQ0xL UE9MX0JJVAkJNQorKwkjZGVmaW5lIFRSSVRYRU5fQklUCQk0CisrCSNkZWZpbmUgRUxNX0JJVAkJ CTMKKysJI2RlZmluZSBTWU5DTV9CSVQJCTIKKysJI2RlZmluZSBNU19CSVQJCQkxCisrI2RlZmlu ZSBURE1fUENNVFhDUgkJCTB4MDQKKysJI2RlZmluZSBQQ01UWENSX1RYRU4JCUJJVCgwKQorKwkj ZGVmaW5lIElGTF9CSVQJCQkxMQorKwkjZGVmaW5lIFdMX0JJVAkJCTgKKysJI2RlZmluZSBTU0NB TEVfQklUCQk0CisrCSNkZWZpbmUgU0xfQklUCQkJMgorKwkjZGVmaW5lIExSSl9CSVQJCQkxCisr I2RlZmluZSBURE1fUENNUlhDUgkJCTB4MDgKKysJI2RlZmluZSBQQ01SWENSX1JYRU4JCUJJVCgw KQorKwkjZGVmaW5lIFBDTVJYQ1JfUlhTTF9NQVNLCTB4YworKwkjZGVmaW5lIFBDTVJYQ1JfUlhT TF8xNkJJVAkweDQKKysJI2RlZmluZSBQQ01SWENSX1JYU0xfMzJCSVQJMHg4CisrCSNkZWZpbmUg UENNUlhDUl9TQ0FMRV9NQVNLCTB4ZjAKKysJI2RlZmluZSBQQ01SWENSX1NDQUxFXzFDSAkweDEw CisrI2RlZmluZSBURE1fUENNRElWCQkJMHgwYworKworKyNkZWZpbmUgSkg3MTEwX1RETV9GSUZP CQkJMHgxNzBjMDAwMAorKyNkZWZpbmUgSkg3MTEwX1RETV9GSUZPX0RFUFRICQkzMgorKworK2Vu dW0gVERNX01BU1RFUl9TTEFWRV9NT0RFIHsKKysJVERNX0FTX01BU1RFUiA9IDAsCisrCVRETV9B U19TTEFWRSwKKyt9OworKworK2VudW0gVERNX0NMS1BPTCB7CisrCS8qIHR4IHJhaXNpbmcgYW5k IHJ4IGZhbGxpbmcgKi8KKysJVERNX1RYX1JBU0lOR19SWF9GQUxMSU5HID0gMCwKKysJLyogdHgg ZmFsbGluZyBhbmQgcnggcmFpc2luZyAqLworKwlURE1fVFhfRkFMTElOR19SWF9SQVNJTkcsCisr fTsKKysKKytlbnVtIFRETV9FTE0geworKwkvKiBvbmx5IHdvcmsgd2hpbGUgU1lOQ009MCAqLwor KwlURE1fRUxNX0xBVEUgPSAwLAorKwlURE1fRUxNX0VBUkxZLAorK307CisrCisrZW51bSBURE1f U1lOQ00geworKwkvKiBzaG9ydCBmcmFtZSBzeW5jICovCisrCVRETV9TWU5DTV9TSE9SVCA9IDAs CisrCS8qIGxvbmcgZnJhbWUgc3luYyAqLworKwlURE1fU1lOQ01fTE9ORywKKyt9OworKworK2Vu dW0gVERNX0lGTCB7CisrCS8qIEZJRk8gdG8gc2VuZCBvciByZWNlaXZlZCA6IGhhbGYtMS8yLCBR dWFydGVyLTEvNCAqLworKwlURE1fRklGT19IQUxGID0gMCwKKysJVERNX0ZJRk9fUVVBUlRFUiwK Kyt9OworKworK2VudW0gVERNX1dMIHsKKysJLyogc2VuZCBvciByZWNlaXZlZCB3b3JkIGxlbmd0 aCAqLworKwlURE1fOEJJVF9XT1JEX0xFTiA9IDAsCisrCVRETV8xNkJJVF9XT1JEX0xFTiwKKysJ VERNXzIwQklUX1dPUkRfTEVOLAorKwlURE1fMjRCSVRfV09SRF9MRU4sCisrCVRETV8zMkJJVF9X T1JEX0xFTiwKKyt9OworKworK2VudW0gVERNX1NMIHsKKysJLyogc2VuZCBvciByZWNlaXZlZCBz bG90IGxlbmd0aCAqLworKwlURE1fOEJJVF9TTE9UX0xFTiA9IDAsCisrCVRETV8xNkJJVF9TTE9U X0xFTiwKKysJVERNXzMyQklUX1NMT1RfTEVOLAorK307CisrCisrZW51bSBURE1fTFJKIHsKKysJ LyogbGVmdC1qdXN0aWZ5IG9yIHJpZ2h0LWp1c3RpZnkgKi8KKysJVERNX1JJR0hUX0pVU1RJRlkg PSAwLAorKwlURE1fTEVGVF9KVVNUSUZULAorK307CisrCisrc3RydWN0IHRkbV9jaGFuX2NmZyB7 CisrCWVudW0gVERNX0lGTCBpZmw7CisrCWVudW0gVERNX1dMICB3bDsKKysJdW5zaWduZWQgY2hh ciBzc2NhbGU7CisrCWVudW0gVERNX1NMICBzbDsKKysJZW51bSBURE1fTFJKIGxyajsKKysJdW5z aWduZWQgY2hhciBlbmFibGU7CisrfTsKKysKKytzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgeworKwl2 b2lkIF9faW9tZW0gKnRkbV9iYXNlOworKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisrCXN0cnVjdCBj bGtfYnVsa19kYXRhIGNsa3NbNl07CisrCXN0cnVjdCByZXNldF9jb250cm9sICpyZXNldHM7Cisr CisrCWVudW0gVERNX0NMS1BPTCBjbGtwb2xpdHk7CisrCWVudW0gVERNX0VMTQllbG07CisrCWVu dW0gVERNX1NZTkNNCXN5bmNtOworKwllbnVtIFRETV9NQVNURVJfU0xBVkVfTU9ERSBtc19tb2Rl OworKworKwlzdHJ1Y3QgdGRtX2NoYW5fY2ZnIHR4OworKwlzdHJ1Y3QgdGRtX2NoYW5fY2ZnIHJ4 OworKworKwl1MTYgc3luY2RpdjsKKysJdTMyIHNhbXBsZXJhdGU7CisrCXUzMiBwY21jbGs7Cisr CisrCS8qIGRhdGEgcmVsYXRlZCB0byBETUEgdHJhbnNmZXJzIGIvdyB0ZG0gYW5kIERNQUMgKi8K KysJc3RydWN0IHNuZF9kbWFlbmdpbmVfZGFpX2RtYV9kYXRhIHBsYXlfZG1hX2RhdGE7CisrCXN0 cnVjdCBzbmRfZG1hZW5naW5lX2RhaV9kbWFfZGF0YSBjYXB0dXJlX2RtYV9kYXRhOworKwl1MzIg c2F2ZWRfcGNtZ2JjcjsKKysJdTMyIHNhdmVkX3BjbXR4Y3I7CisrCXUzMiBzYXZlZF9wY21yeGNy OworKwl1MzIgc2F2ZWRfcGNtZGl2OworK307CisrCisrc3RhdGljIGlubGluZSB1MzIgamg3MTEw X3RkbV9yZWFkbChzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSwgdTE2IHJlZykKKyt7CisrCXJl dHVybiByZWFkbF9yZWxheGVkKHRkbS0+dGRtX2Jhc2UgKyByZWcpOworK30KKysKKytzdGF0aWMg aW5saW5lIHZvaWQgamg3MTEwX3RkbV93cml0ZWwoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0s IHUxNiByZWcsIHUzMiB2YWwpCisreworKwl3cml0ZWxfcmVsYXhlZCh2YWwsIHRkbS0+dGRtX2Jh c2UgKyByZWcpOworK30KKysKKytzdGF0aWMgdm9pZCBqaDcxMTBfdGRtX3NhdmVfY29udGV4dChz dHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSwKKysJCQkJICAgIHN0cnVjdCBzbmRfcGNtX3N1YnN0 cmVhbSAqc3Vic3RyZWFtKQorK3sKKysJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BD TV9TVFJFQU1fUExBWUJBQ0spCisrCQl0ZG0tPnNhdmVkX3BjbXR4Y3IgPSBqaDcxMTBfdGRtX3Jl YWRsKHRkbSwgVERNX1BDTVRYQ1IpOworKwllbHNlCisrCQl0ZG0tPnNhdmVkX3BjbXJ4Y3IgPSBq aDcxMTBfdGRtX3JlYWRsKHRkbSwgVERNX1BDTVJYQ1IpOworK30KKysKKytzdGF0aWMgdm9pZCBq aDcxMTBfdGRtX3N0YXJ0KHN0cnVjdCBqaDcxMTBfdGRtX2RldiAqdGRtLAorKwkJCSAgICAgc3Ry dWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCisreworKwl1MzIgZGF0YTsKKysKKysJ ZGF0YSA9IGpoNzExMF90ZG1fcmVhZGwodGRtLCBURE1fUENNR0JDUik7CisrCWpoNzExMF90ZG1f d3JpdGVsKHRkbSwgVERNX1BDTUdCQ1IsIGRhdGEgfCBQQ01HQkNSX0VOQUJMRSk7CisrCisrCS8q IHJlc3RvcmUgY29udGV4dCAqLworKwlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENN X1NUUkVBTV9QTEFZQkFDSykKKysJCWpoNzExMF90ZG1fd3JpdGVsKHRkbSwgVERNX1BDTVRYQ1Is IHRkbS0+c2F2ZWRfcGNtdHhjciB8IFBDTVRYQ1JfVFhFTik7CisrCWVsc2UKKysJCWpoNzExMF90 ZG1fd3JpdGVsKHRkbSwgVERNX1BDTVJYQ1IsIHRkbS0+c2F2ZWRfcGNtcnhjciB8IFBDTVJYQ1Jf UlhFTik7CisrfQorKworK3N0YXRpYyB2b2lkIGpoNzExMF90ZG1fc3RvcChzdHJ1Y3Qgamg3MTEw X3RkbV9kZXYgKnRkbSwKKysJCQkgICAgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJl YW0pCisreworKwl1bnNpZ25lZCBpbnQgdmFsOworKworKwlpZiAoc3Vic3RyZWFtLT5zdHJlYW0g PT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgeworKwkJdmFsID0gamg3MTEwX3RkbV9yZWFk bCh0ZG0sIFRETV9QQ01UWENSKTsKKysJCXZhbCAmPSB+UENNVFhDUl9UWEVOOworKwkJamg3MTEw X3RkbV93cml0ZWwodGRtLCBURE1fUENNVFhDUiwgdmFsKTsKKysJfSBlbHNlIHsKKysJCXZhbCA9 IGpoNzExMF90ZG1fcmVhZGwodGRtLCBURE1fUENNUlhDUik7CisrCQl2YWwgJj0gflBDTVJYQ1Jf UlhFTjsKKysJCWpoNzExMF90ZG1fd3JpdGVsKHRkbSwgVERNX1BDTVJYQ1IsIHZhbCk7CisrCX0K Kyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRtX3N5bmNkaXYoc3RydWN0IGpoNzExMF90ZG1f ZGV2ICp0ZG0pCisreworKwl1MzIgc2wsIHNzY2FsZSwgc3luY2RpdjsKKysKKysJaWYgKHRkbS0+ cnguc2wgPj0gdGRtLT50eC5zbCkKKysJCXNsID0gdGRtLT5yeC5zbDsKKysJZWxzZQorKwkJc2wg PSB0ZG0tPnR4LnNsOworKworKwlpZiAodGRtLT5yeC5zc2NhbGUgPj0gdGRtLT50eC5zc2NhbGUp CisrCQlzc2NhbGUgPSB0ZG0tPnJ4LnNzY2FsZTsKKysJZWxzZQorKwkJc3NjYWxlID0gdGRtLT50 eC5zc2NhbGU7CisrCisrCXN5bmNkaXYgPSB0ZG0tPnBjbWNsayAvIHRkbS0+c2FtcGxlcmF0ZSAt IDE7CisrCisrCWlmICgoc3luY2RpdiArIDEpIDwgKHNsICogc3NjYWxlKSkgeworKwkJZGV2X2Vy cih0ZG0tPmRldiwgIkZhaWxlZCB0byBzZXQgc3luY2RpdiFcbiIpOworKwkJcmV0dXJuIC1FSU5W QUw7CisrCX0KKysKKysJaWYgKHRkbS0+c3luY20gPT0gVERNX1NZTkNNX0xPTkcgJiYKKysJICAg ICh0ZG0tPnJ4LnNzY2FsZSA8PSAxIHx8IHRkbS0+dHguc3NjYWxlIDw9IDEpICYmCisrCSAgICAo KHN5bmNkaXYgKyAxKSA8PSBzbCkpIHsKKysJCWRldl9lcnIodGRtLT5kZXYsICJXcm9uZyBzeW5j ZGl2ISBJdCBtdXN0IGJlIChzeW5jZGl2KzEpID4gbWF4W3R4LnNsLCByeC5zbF1cbiIpOworKwkJ cmV0dXJuIC1FSU5WQUw7CisrCX0KKysKKysJamg3MTEwX3RkbV93cml0ZWwodGRtLCBURE1fUENN RElWLCBzeW5jZGl2KTsKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3Rk bV9jb25maWcoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0sCisrCQkJICAgICBzdHJ1Y3Qgc25k X3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKKyt7CisrCXUzMiBkYXRhcngsIGRhdGF0eDsKKysJ aW50IHJldDsKKysKKysJcmV0ID0gamg3MTEwX3RkbV9zeW5jZGl2KHRkbSk7CisrCWlmIChyZXQp CisrCQlyZXR1cm4gcmV0OworKworKwlkYXRhcnggPSAodGRtLT5yeC5pZmwgPDwgSUZMX0JJVCkg fAorKwkJICAodGRtLT5yeC53bCA8PCBXTF9CSVQpIHwKKysJCSAgKHRkbS0+cnguc3NjYWxlIDw8 IFNTQ0FMRV9CSVQpIHwKKysJCSAgKHRkbS0+cnguc2wgPDwgU0xfQklUKSB8CisrCQkgICh0ZG0t PnJ4LmxyaiA8PCBMUkpfQklUKTsKKysKKysJZGF0YXR4ID0gKHRkbS0+dHguaWZsIDw8IElGTF9C SVQpIHwKKysJCSAgKHRkbS0+dHgud2wgPDwgV0xfQklUKSB8CisrCQkgICh0ZG0tPnR4LnNzY2Fs ZSA8PCBTU0NBTEVfQklUKSB8CisrCQkgICh0ZG0tPnR4LnNsIDw8IFNMX0JJVCkgfAorKwkJICAo dGRtLT50eC5scmogPDwgTFJKX0JJVCk7CisrCisrCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBT TkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQorKwkJamg3MTEwX3RkbV93cml0ZWwodGRtLCBURE1f UENNVFhDUiwgZGF0YXR4KTsKKysJZWxzZQorKwkJamg3MTEwX3RkbV93cml0ZWwodGRtLCBURE1f UENNUlhDUiwgZGF0YXJ4KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyB2b2lkIGpo NzExMF90ZG1fY2xrX2Rpc2FibGUoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0pCisreworKwlj bGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShBUlJBWV9TSVpFKHRkbS0+Y2xrcyksIHRkbS0+Y2xr cyk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9jbGtfZW5hYmxlKHN0cnVjdCBqaDcx MTBfdGRtX2RldiAqdGRtKQorK3sKKysJaW50IHJldDsKKysKKysJcmV0ID0gY2xrX2J1bGtfcHJl cGFyZV9lbmFibGUoQVJSQVlfU0laRSh0ZG0tPmNsa3MpLCB0ZG0tPmNsa3MpOworKwlpZiAocmV0 KSB7CisrCQlkZXZfZXJyKHRkbS0+ZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSB0ZG0gY2xvY2tzXG4i KTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2Vy dCh0ZG0tPnJlc2V0cyk7CisrCWlmIChyZXQpIHsKKysJCWRldl9lcnIodGRtLT5kZXYsICJGYWls ZWQgdG8gZGVhc3NlcnQgdGRtIHJlc2V0c1xuIik7CisrCQlnb3RvIGRpc190ZG1fY2xrOworKwl9 CisrCisrCS8qIHNlbGVjdCB0ZG1fZXh0IGNsb2NrIGFzIHRoZSBjbG9jayBzb3VyY2UgZm9yIHRk bSAqLworKwlyZXQgPSBjbGtfc2V0X3BhcmVudCh0ZG0tPmNsa3NbNV0uY2xrLCB0ZG0tPmNsa3Nb NF0uY2xrKTsKKysJaWYgKHJldCkgeworKwkJZGV2X2Vycih0ZG0tPmRldiwgIkNhbid0IHNldCBl eHRlcm4gY2xvY2sgc291cmNlIGZvciBjbGtfdGRtXG4iKTsKKysJCWdvdG8gZGlzX3RkbV9jbGs7 CisrCX0KKysKKysJcmV0dXJuIDA7CisrCisrZGlzX3RkbV9jbGs6CisrCWNsa19idWxrX2Rpc2Fi bGVfdW5wcmVwYXJlKEFSUkFZX1NJWkUodGRtLT5jbGtzKSwgdGRtLT5jbGtzKTsKKysKKysJcmV0 dXJuIHJldDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRtX3J1bnRpbWVfc3VzcGVuZChz dHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwlqaDcxMTBfdGRtX2Nsa19kaXNhYmxlKHRkbSk7Cisr CXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF90ZG1fcnVudGltZV9yZXN1bWUo c3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0gPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJcmV0dXJuIGpoNzExMF90ZG1fY2xrX2VuYWJsZSh0 ZG0pOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF90ZG1fc3lzdGVtX3N1c3BlbmQoc3RydWN0 IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0gPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKKysKKysJLyogc2F2ZSBjb250ZXh0ICovCisrCXRkbS0+c2F2ZWRfcGNt Z2JjciA9IGpoNzExMF90ZG1fcmVhZGwodGRtLCBURE1fUENNR0JDUik7CisrCXRkbS0+c2F2ZWRf cGNtZGl2ID0gamg3MTEwX3RkbV9yZWFkbCh0ZG0sIFRETV9QQ01ESVYpOworKworKwlyZXR1cm4g cG1fcnVudGltZV9mb3JjZV9zdXNwZW5kKGRldik7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEw X3RkbV9zeXN0ZW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBqaDcx MTBfdGRtX2RldiAqdGRtID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCS8qIHJlc3RvcmUg Y29udGV4dCAqLworKwlqaDcxMTBfdGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01HQkNSLCB0ZG0tPnNh dmVkX3BjbWdiY3IpOworKwlqaDcxMTBfdGRtX3dyaXRlbCh0ZG0sIFRETV9QQ01ESVYsIHRkbS0+ c2F2ZWRfcGNtZGl2KTsKKysKKysJcmV0dXJuIHBtX3J1bnRpbWVfZm9yY2VfcmVzdW1lKGRldik7 CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnRfZHJpdmVyIGpo NzExMF90ZG1fY29tcG9uZW50ID0geworKwkubmFtZSA9ICJqaDcxMTAtdGRtIiwKKyt9OworKwor K3N0YXRpYyBpbnQgamg3MTEwX3RkbV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAq c3Vic3RyZWFtLAorKwkJCSAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKKyt7Cisr CXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBhc29jX3N1YnN0cmVhbV90b19ydGQo c3Vic3RyZWFtKTsKKysJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKmRhaV9saW5rID0gcnRkLT5k YWlfbGluazsKKysKKysJZGFpX2xpbmstPnN0b3BfZG1hX2ZpcnN0ID0gMTsKKysKKysJcmV0dXJu IDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9od19wYXJhbXMoc3RydWN0IHNuZF9w Y21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisrCQkJCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAq cGFyYW1zLAorKwkJCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKKyt7CisrCXN0cnVjdCBqaDcx MTBfdGRtX2RldiAqdGRtID0gc25kX3NvY19kYWlfZ2V0X2RydmRhdGEoZGFpKTsKKysJaW50IGNo YW5fd2wsIGNoYW5fc2wsIGNoYW5fbnI7CisrCXVuc2lnbmVkIGludCBkYXRhX3dpZHRoOworKwl1 bnNpZ25lZCBpbnQgZG1hX2J1c193aWR0aDsKKysJc3RydWN0IHNuZF9kbWFlbmdpbmVfZGFpX2Rt YV9kYXRhICpkbWFfZGF0YSA9IE5VTEw7CisrCWludCByZXQ7CisrCisrCWRhdGFfd2lkdGggPSBw YXJhbXNfd2lkdGgocGFyYW1zKTsKKysKKysJdGRtLT5zYW1wbGVyYXRlID0gcGFyYW1zX3JhdGUo cGFyYW1zKTsKKysJdGRtLT5wY21jbGsgPSBwYXJhbXNfY2hhbm5lbHMocGFyYW1zKSAqIHRkbS0+ c2FtcGxlcmF0ZSAqIGRhdGFfd2lkdGg7CisrCisrCXN3aXRjaCAocGFyYW1zX2Zvcm1hdChwYXJh bXMpKSB7CisrCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEU6CisrCQljaGFuX3dsID0gVERN XzE2QklUX1dPUkRfTEVOOworKwkJY2hhbl9zbCA9IFRETV8xNkJJVF9TTE9UX0xFTjsKKysJCWRt YV9idXNfd2lkdGggPSBETUFfU0xBVkVfQlVTV0lEVEhfMl9CWVRFUzsKKysJCWJyZWFrOworKwor KwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzMyX0xFOgorKwkJY2hhbl93bCA9IFRETV8zMkJJVF9X T1JEX0xFTjsKKysJCWNoYW5fc2wgPSBURE1fMzJCSVRfU0xPVF9MRU47CisrCQlkbWFfYnVzX3dp ZHRoID0gRE1BX1NMQVZFX0JVU1dJRFRIXzRfQllURVM7CisrCQlicmVhazsKKysKKysJZGVmYXVs dDoKKysJCWRldl9lcnIodGRtLT5kZXYsICJ0ZG06IHVuc3VwcG9ydGVkIFBDTSBmbXQiKTsKKysJ CXJldHVybiAtRUlOVkFMOworKwl9CisrCisrCWNoYW5fbnIgPSBwYXJhbXNfY2hhbm5lbHMocGFy YW1zKTsKKysJc3dpdGNoIChjaGFuX25yKSB7CisrCWNhc2UgMToKKysJY2FzZSAyOgorKwljYXNl IDQ6CisrCWNhc2UgNjoKKysJY2FzZSA4OgorKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlkZXZf ZXJyKHRkbS0+ZGV2LCAiY2hhbm5lbCBub3Qgc3VwcG9ydGVkXG4iKTsKKysJCXJldHVybiAtRUlO VkFMOworKwl9CisrCisrCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFN X1BMQVlCQUNLKSB7CisrCQl0ZG0tPnR4LndsID0gY2hhbl93bDsKKysJCXRkbS0+dHguc2wgPSBj aGFuX3NsOworKwkJdGRtLT50eC5zc2NhbGUgPSBjaGFuX25yOworKwkJdGRtLT5wbGF5X2RtYV9k YXRhLmFkZHJfd2lkdGggPSBkbWFfYnVzX3dpZHRoOworKwkJZG1hX2RhdGEgPSAmdGRtLT5wbGF5 X2RtYV9kYXRhOworKwl9IGVsc2UgeworKwkJdGRtLT5yeC53bCA9IGNoYW5fd2w7CisrCQl0ZG0t PnJ4LnNsID0gY2hhbl9zbDsKKysJCXRkbS0+cnguc3NjYWxlID0gY2hhbl9ucjsKKysJCXRkbS0+ Y2FwdHVyZV9kbWFfZGF0YS5hZGRyX3dpZHRoID0gZG1hX2J1c193aWR0aDsKKysJCWRtYV9kYXRh ID0gJnRkbS0+Y2FwdHVyZV9kbWFfZGF0YTsKKysJfQorKworKwlzbmRfc29jX2RhaV9zZXRfZG1h X2RhdGEoZGFpLCBzdWJzdHJlYW0sIGRtYV9kYXRhKTsKKysKKysJcmV0ID0gamg3MTEwX3RkbV9j b25maWcodGRtLCBzdWJzdHJlYW0pOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJ amg3MTEwX3RkbV9zYXZlX2NvbnRleHQodGRtLCBzdWJzdHJlYW0pOworKwlyZXR1cm4gMDsKKyt9 CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRtX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3Ry ZWFtICpzdWJzdHJlYW0sCisrCQkJICAgICAgaW50IGNtZCwgc3RydWN0IHNuZF9zb2NfZGFpICpk YWkpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSA9IHNuZF9zb2NfZGFpX2dldF9k cnZkYXRhKGRhaSk7CisrCWludCByZXQgPSAwOworKworKwlzd2l0Y2ggKGNtZCkgeworKwljYXNl IFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VN RToKKysJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9SRUxFQVNFOgorKwkJamg3MTEwX3Rk bV9zdGFydCh0ZG0sIHN1YnN0cmVhbSk7CisrCQlicmVhazsKKysKKysJY2FzZSBTTkRSVl9QQ01f VFJJR0dFUl9TVE9QOgorKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CisrCWNhc2Ug U05EUlZfUENNX1RSSUdHRVJfUEFVU0VfUFVTSDoKKysJCWpoNzExMF90ZG1fc3RvcCh0ZG0sIHN1 YnN0cmVhbSk7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCXJldCA9IC1FSU5WQUw7CisrCQli cmVhazsKKysJfQorKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF90 ZG1fc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAorKwkJCQkgIHVuc2ln bmVkIGludCBmbXQpCisreworKwlzdHJ1Y3Qgamg3MTEwX3RkbV9kZXYgKnRkbSA9IHNuZF9zb2Nf ZGFpX2dldF9kcnZkYXRhKGNwdV9kYWkpOworKwl1bnNpZ25lZCBpbnQgZ2JjcjsKKysKKysJLyog c2V0IG1hc3Rlci9zbGF2ZSBhdWRpbyBpbnRlcmZhY2UgKi8KKysJc3dpdGNoIChmbXQgJiBTTkRf U09DX0RBSUZNVF9DTE9DS19QUk9WSURFUl9NQVNLKSB7CisrCWNhc2UgU05EX1NPQ19EQUlGTVRf QlBfRlA6CisrCQkvKiBjcHUgaXMgbWFzdGVyICovCisrCQl0ZG0tPm1zX21vZGUgPSBURE1fQVNf TUFTVEVSOworKwkJYnJlYWs7CisrCWNhc2UgU05EX1NPQ19EQUlGTVRfQkNfRkM6CisrCQkvKiBj b2RlYyBpcyBtYXN0ZXIgKi8KKysJCXRkbS0+bXNfbW9kZSA9IFRETV9BU19TTEFWRTsKKysJCWJy ZWFrOworKwljYXNlIFNORF9TT0NfREFJRk1UX0JDX0ZQOgorKwljYXNlIFNORF9TT0NfREFJRk1U X0JQX0ZDOgorKwkJcmV0dXJuIC1FSU5WQUw7CisrCWRlZmF1bHQ6CisrCQlkZXZfZGJnKHRkbS0+ ZGV2LCAiZHdjIDogSW52YWxpZCBjbG9jayBwcm92aWRlciBmb3JtYXRcbiIpOworKwkJcmV0dXJu IC1FSU5WQUw7CisrCX0KKysKKysJZ2JjciA9ICh0ZG0tPmNsa3BvbGl0eSA8PCBDTEtQT0xfQklU KSB8CisrCQkodGRtLT5lbG0gPDwgRUxNX0JJVCkgfAorKwkJKHRkbS0+c3luY20gPDwgU1lOQ01f QklUKSB8CisrCQkodGRtLT5tc19tb2RlIDw8IE1TX0JJVCk7CisrCWpoNzExMF90ZG1fd3JpdGVs KHRkbSwgVERNX1BDTUdCQ1IsIGdiY3IpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGlj IGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhaV9vcHMgamg3MTEwX3RkbV9kYWlfb3BzID0geworKwku c3RhcnR1cAk9IGpoNzExMF90ZG1fc3RhcnR1cCwKKysJLmh3X3BhcmFtcwk9IGpoNzExMF90ZG1f aHdfcGFyYW1zLAorKwkudHJpZ2dlcgk9IGpoNzExMF90ZG1fdHJpZ2dlciwKKysJLnNldF9mbXQJ PSBqaDcxMTBfdGRtX3NldF9kYWlfZm10LAorK307CisrCisrc3RhdGljIGludCBqaDcxMTBfdGRt X2RhaV9wcm9iZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKKyt7CisrCXN0cnVjdCBqaDcxMTBf dGRtX2RldiAqdGRtID0gc25kX3NvY19kYWlfZ2V0X2RydmRhdGEoZGFpKTsKKysKKysJc25kX3Nv Y19kYWlfaW5pdF9kbWFfZGF0YShkYWksICZ0ZG0tPnBsYXlfZG1hX2RhdGEsICZ0ZG0tPmNhcHR1 cmVfZG1hX2RhdGEpOworKwlzbmRfc29jX2RhaV9zZXRfZHJ2ZGF0YShkYWksIHRkbSk7CisrCXJl dHVybiAwOworK30KKysKKysjZGVmaW5lIEpINzExMF9URE1fUkFURVMJU05EUlZfUENNX1JBVEVf ODAwMF80ODAwMAorKworKyNkZWZpbmUgSkg3MTEwX1RETV9GT1JNQVRTCShTTkRSVl9QQ01fRk1U QklUX1MxNl9MRSB8IFwKKysJCQkJIFNORFJWX1BDTV9GTVRCSVRfUzMyX0xFKQorKworK3N0YXRp YyBzdHJ1Y3Qgc25kX3NvY19kYWlfZHJpdmVyIGpoNzExMF90ZG1fZGFpID0geworKwkubmFtZSA9 ICJzZl90ZG0iLAorKwkuaWQgPSAwLAorKwkucGxheWJhY2sgPSB7CisrCQkuc3RyZWFtX25hbWUg ICAgPSAiUGxheWJhY2siLAorKwkJLmNoYW5uZWxzX21pbiAgID0gMSwKKysJCS5jaGFubmVsc19t YXggICA9IDgsCisrCQkucmF0ZXMgICAgICAgICAgPSBKSDcxMTBfVERNX1JBVEVTLAorKwkJLmZv cm1hdHMgICAgICAgID0gSkg3MTEwX1RETV9GT1JNQVRTLAorKwl9LAorKwkuY2FwdHVyZSA9IHsK KysJCS5zdHJlYW1fbmFtZSAgICA9ICJDYXB0dXJlIiwKKysJCS5jaGFubmVsc19taW4gICA9IDEs CisrCQkuY2hhbm5lbHNfbWF4ICAgPSA4LAorKwkJLnJhdGVzICAgICAgICAgID0gSkg3MTEwX1RE TV9SQVRFUywKKysJCS5mb3JtYXRzICAgICAgICA9IEpINzExMF9URE1fRk9STUFUUywKKysJfSwK KysJLm9wcyA9ICZqaDcxMTBfdGRtX2RhaV9vcHMsCisrCS5wcm9iZSA9IGpoNzExMF90ZG1fZGFp X3Byb2JlLAorKwkuc3ltbWV0cmljX3JhdGUgPSAxLAorK307CisrCisrc3RhdGljIGNvbnN0IHN0 cnVjdCBzbmRfcGNtX2hhcmR3YXJlIGpoNzExMF9wY21faGFyZHdhcmUgPSB7CisrCS5pbmZvCQkJ PSAoU05EUlZfUENNX0lORk9fTU1BUAkJfAorKwkJCQkgICBTTkRSVl9QQ01fSU5GT19NTUFQX1ZB TElECXwKKysJCQkJICAgU05EUlZfUENNX0lORk9fUEFVU0UJCXwKKysJCQkJICAgU05EUlZfUENN X0lORk9fUkVTVU1FCXwKKysJCQkJICAgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQJfAorKwkJ CQkgICBTTkRSVl9QQ01fSU5GT19CTE9DS19UUkFOU0ZFUiksCisrCS5idWZmZXJfYnl0ZXNfbWF4 CT0gMTkyNTEyLAorKwkucGVyaW9kX2J5dGVzX21pbgk9IDQwOTYsCisrCS5wZXJpb2RfYnl0ZXNf bWF4CT0gMzI3NjgsCisrCS5wZXJpb2RzX21pbgkJPSAxLAorKwkucGVyaW9kc19tYXgJCT0gNDgs CisrCS5maWZvX3NpemUJCT0gMTYsCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9k bWFlbmdpbmVfcGNtX2NvbmZpZyBqaDcxMTBfZG1hZW5naW5lX3BjbV9jb25maWcgPSB7CisrCS5w Y21faGFyZHdhcmUgPSAmamg3MTEwX3BjbV9oYXJkd2FyZSwKKysJLnByZXBhcmVfc2xhdmVfY29u ZmlnID0gc25kX2RtYWVuZ2luZV9wY21fcHJlcGFyZV9zbGF2ZV9jb25maWcsCisrCS5wcmVhbGxv Y19idWZmZXJfc2l6ZSA9IDE5MjUxMiwKKyt9OworKworK3N0YXRpYyB2b2lkIGpoNzExMF90ZG1f aW5pdF9wYXJhbXMoc3RydWN0IGpoNzExMF90ZG1fZGV2ICp0ZG0pCisreworKwl0ZG0tPmNsa3Bv bGl0eSA9IFRETV9UWF9SQVNJTkdfUlhfRkFMTElORzsKKysJdGRtLT5lbG0gPSBURE1fRUxNX0xB VEU7CisrCXRkbS0+c3luY20gPSBURE1fU1lOQ01fU0hPUlQ7CisrCisrCXRkbS0+cnguaWZsID0g VERNX0ZJRk9fSEFMRjsKKysJdGRtLT50eC5pZmwgPSBURE1fRklGT19IQUxGOworKwl0ZG0tPnJ4 LndsID0gVERNXzE2QklUX1dPUkRfTEVOOworKwl0ZG0tPnR4LndsID0gVERNXzE2QklUX1dPUkRf TEVOOworKwl0ZG0tPnJ4LnNzY2FsZSA9IDI7CisrCXRkbS0+dHguc3NjYWxlID0gMjsKKysJdGRt LT5yeC5scmogPSBURE1fTEVGVF9KVVNUSUZUOworKwl0ZG0tPnR4LmxyaiA9IFRETV9MRUZUX0pV U1RJRlQ7CisrCisrCXRkbS0+cGxheV9kbWFfZGF0YS5hZGRyID0gSkg3MTEwX1RETV9GSUZPOwor Kwl0ZG0tPnBsYXlfZG1hX2RhdGEuYWRkcl93aWR0aCA9IERNQV9TTEFWRV9CVVNXSURUSF8yX0JZ VEVTOworKwl0ZG0tPnBsYXlfZG1hX2RhdGEuZmlmb19zaXplID0gSkg3MTEwX1RETV9GSUZPX0RF UFRIIC8gMjsKKysJdGRtLT5wbGF5X2RtYV9kYXRhLm1heGJ1cnN0ID0gMTY7CisrCisrCXRkbS0+ Y2FwdHVyZV9kbWFfZGF0YS5hZGRyID0gSkg3MTEwX1RETV9GSUZPOworKwl0ZG0tPmNhcHR1cmVf ZG1hX2RhdGEuYWRkcl93aWR0aCA9IERNQV9TTEFWRV9CVVNXSURUSF8yX0JZVEVTOworKwl0ZG0t PmNhcHR1cmVfZG1hX2RhdGEuZmlmb19zaXplID0gSkg3MTEwX1RETV9GSUZPX0RFUFRIIC8gMjsK KysJdGRtLT5jYXB0dXJlX2RtYV9kYXRhLm1heGJ1cnN0ID0gODsKKyt9CisrCisrc3RhdGljIGlu dCBqaDcxMTBfdGRtX2Nsa19yZXNldF9nZXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK KysJCQkJICAgIHN0cnVjdCBqaDcxMTBfdGRtX2RldiAqdGRtKQorK3sKKysJaW50IHJldDsKKysK KysJdGRtLT5jbGtzWzBdLmlkID0gIm1jbGtfaW5uZXIiOworKwl0ZG0tPmNsa3NbMV0uaWQgPSAi dGRtX2FoYiI7CisrCXRkbS0+Y2xrc1syXS5pZCA9ICJ0ZG1fYXBiIjsKKysJdGRtLT5jbGtzWzNd LmlkID0gInRkbV9pbnRlcm5hbCI7CisrCXRkbS0+Y2xrc1s0XS5pZCA9ICJ0ZG1fZXh0IjsKKysJ dGRtLT5jbGtzWzVdLmlkID0gInRkbSI7CisrCisrCXJldCA9IGRldm1fY2xrX2J1bGtfZ2V0KCZw ZGV2LT5kZXYsIEFSUkFZX1NJWkUodGRtLT5jbGtzKSwgdGRtLT5jbGtzKTsKKysJaWYgKHJldCkg eworKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCB0ZG0gY2xvY2tzXG4iKTsK KysJCXJldHVybiByZXQ7CisrCX0KKysKKysJdGRtLT5yZXNldHMgPSBkZXZtX3Jlc2V0X2NvbnRy b2xfYXJyYXlfZ2V0X2V4Y2x1c2l2ZSgmcGRldi0+ZGV2KTsKKysJaWYgKElTX0VSUl9PUl9OVUxM KHRkbS0+cmVzZXRzKSkgeworKwkJcmV0ID0gUFRSX0VSUih0ZG0tPnJlc2V0cyk7CisrCQlkZXZf ZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IHRkbSByZXNldHMiKTsKKysJCXJldHVybiBy ZXQ7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3RkbV9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGpoNzExMF90 ZG1fZGV2ICp0ZG07CisrCWludCByZXQ7CisrCisrCXRkbSA9IGRldm1fa3phbGxvYygmcGRldi0+ ZGV2LCBzaXplb2YoKnRkbSksIEdGUF9LRVJORUwpOworKwlpZiAoIXRkbSkKKysJCXJldHVybiAt RU5PTUVNOworKworKwl0ZG0tPnRkbV9iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291 cmNlKHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHRkbS0+dGRtX2Jhc2UpKQorKwkJcmV0dXJuIFBU Ul9FUlIodGRtLT50ZG1fYmFzZSk7CisrCisrCXRkbS0+ZGV2ID0gJnBkZXYtPmRldjsKKysKKysJ cmV0ID0gamg3MTEwX3RkbV9jbGtfcmVzZXRfZ2V0KHBkZXYsIHRkbSk7CisrCWlmIChyZXQpIHsK KysJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBlbmFibGUgYXVkaW8tdGRtIGNsb2Nr XG4iKTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJamg3MTEwX3RkbV9pbml0X3BhcmFtcyh0 ZG0pOworKworKwlkZXZfc2V0X2RydmRhdGEoJnBkZXYtPmRldiwgdGRtKTsKKysJcmV0ID0gZGV2 bV9zbmRfc29jX3JlZ2lzdGVyX2NvbXBvbmVudCgmcGRldi0+ZGV2LCAmamg3MTEwX3RkbV9jb21w b25lbnQsCisrCQkJCQkgICAgICAmamg3MTEwX3RkbV9kYWksIDEpOworKwlpZiAocmV0KSB7Cisr CQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgZGFpXG4iKTsKKysJCXJl dHVybiByZXQ7CisrCX0KKysKKysJcmV0ID0gZGV2bV9zbmRfZG1hZW5naW5lX3BjbV9yZWdpc3Rl cigmcGRldi0+ZGV2LAorKwkJCQkJICAgICAgJmpoNzExMF9kbWFlbmdpbmVfcGNtX2NvbmZpZywK KysJCQkJCSAgICAgIFNORF9ETUFFTkdJTkVfUENNX0ZMQUdfQ09NUEFUKTsKKysJaWYgKHJldCkg eworKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbm90IHJlZ2lzdGVyIHBjbTogJWRcbiIs IHJldCk7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXBtX3J1bnRpbWVfZW5hYmxlKCZwZGV2 LT5kZXYpOworKwlpZiAoIXBtX3J1bnRpbWVfZW5hYmxlZCgmcGRldi0+ZGV2KSkgeworKwkJcmV0 ID0gamg3MTEwX3RkbV9ydW50aW1lX3Jlc3VtZSgmcGRldi0+ZGV2KTsKKysJCWlmIChyZXQpCisr CQkJZ290byBlcnJfcG1fZGlzYWJsZTsKKysJfQorKworKwlyZXR1cm4gMDsKKysKKytlcnJfcG1f ZGlzYWJsZToKKysJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOworKworKwlyZXR1cm4g cmV0OworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF90ZG1fZGV2X3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYp OworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg amg3MTEwX3RkbV9vZl9tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpo NzExMC10ZG0iLCB9LAorKwl7fQorK307CisrCisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3 MTEwX3RkbV9vZl9tYXRjaCk7CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGpo NzExMF90ZG1fcG1fb3BzID0geworKwlSVU5USU1FX1BNX09QUyhqaDcxMTBfdGRtX3J1bnRpbWVf c3VzcGVuZCwKKysJCSAgICAgICBqaDcxMTBfdGRtX3J1bnRpbWVfcmVzdW1lLCBOVUxMKQorKwlT WVNURU1fU0xFRVBfUE1fT1BTKGpoNzExMF90ZG1fc3lzdGVtX3N1c3BlbmQsCisrCQkJICAgIGpo NzExMF90ZG1fc3lzdGVtX3Jlc3VtZSkKKyt9OworKworK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIGpoNzExMF90ZG1fZHJpdmVyID0geworKwkuZHJpdmVyID0geworKwkJLm5hbWUgPSAi amg3MTEwLXRkbSIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBqaDcxMTBfdGRtX29mX21hdGNoLAor KwkJLnBtID0gcG1fcHRyKCZqaDcxMTBfdGRtX3BtX29wcyksCisrCX0sCisrCS5wcm9iZSA9IGpo NzExMF90ZG1fcHJvYmUsCisrCS5yZW1vdmUgPSBqaDcxMTBfdGRtX2Rldl9yZW1vdmUsCisrfTsK Kyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGpoNzExMF90ZG1fZHJpdmVyKTsKKysKKytNT0RVTEVf REVTQ1JJUFRJT04oIlN0YXJGaXZlIEpINzExMCBURE0gQVNvQyBEcml2ZXIiKTsKKytNT0RVTEVf QVVUSE9SKCJXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4iKTsKKytN T0RVTEVfTElDRU5TRSgiR1BMIik7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDAyOS1BU29DLWR0LWJpbmRpbmdzLUFkZC1TdGFyRml2ZS1KSDcx MTAtZHVtbXktUFdNLURBQy10LnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjkt QVNvQy1kdC1iaW5kaW5ncy1BZGQtU3RhckZpdmUtSkg3MTEwLWR1bW15LVBXTS1EQUMtdC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi42ZGNmMDBmNmJmMzU0 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMjktQVNvQy1k dC1iaW5kaW5ncy1BZGQtU3RhckZpdmUtSkg3MTEwLWR1bW15LVBXTS1EQUMtdC5wYXRjaApAQCAt MCwwICsxLDYxIEBACitGcm9tIGQ4YjljODEwMjM4ZmE3MTUyOTU1MDY3ZGU3ZjY5YTVkMDkyMDhm NjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIYWwgRmVuZyA8aGFsLmZlbmdAc3Rh cmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFdlZCwgMjEgSnVuIDIwMjMgMTY6MjE6NTkgKzA4MDAKK1N1 YmplY3Q6IFtQQVRDSCAyOS83Ml0gQVNvQzogZHQtYmluZGluZ3M6IEFkZCBTdGFyRml2ZSBKSDcx MTAgZHVtbXkgUFdNLURBQworIHRyYW5zbWl0dGVyCisKK0FkZCBiaW5kaW5ncyBmb3IgU3RhckZp dmUgSkg3MTEwIGR1bW15IFBXTS1EQUMgdHJhbnNtaXR0ZXIuCisKK1NpZ25lZC1vZmYtYnk6IEhh bCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL3NvdW5kL3N0YXJm aXZlLGpoNzExMC1wd21kYWMtZGl0LnlhbWwgICAgIHwgMzggKysrKysrKysrKysrKysrKysrKwor IDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9zdGFyZml2ZSxqaDcxMTAtcHdt ZGFjLWRpdC55YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3MTEwLXB3bWRhYy1kaXQueWFtbCBiL0RvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9zdGFyZml2ZSxqaDcxMTAtcHdtZGFjLWRpdC55 YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5iYzQzZTNiMWU5 ZDIKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9zb3VuZC9zdGFyZml2ZSxqaDcxMTAtcHdtZGFjLWRpdC55YW1sCitAQCAtMCwwICsxLDM4IEBA CisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1 c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1h cy9zb3VuZC9zdGFyZml2ZSxqaDcxMTAtcHdtZGFjLWRpdC55YW1sIworKyRzY2hlbWE6IGh0dHA6 Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBTdGFy Rml2ZSBKSDcxMTAgRHVtbXkgUFdNLURBQyBUcmFuc21pdHRlcgorKworK21haW50YWluZXJzOgor KyAgLSBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKysKKythbGxPZjoKKysg IC0gJHJlZjogZGFpLWNvbW1vbi55YW1sIworKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxl OgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3MTEwLXB3bWRhYy1kaXQKKysKKysgICIjc291bmQt ZGFpLWNlbGxzIjoKKysgICAgY29uc3Q6IDAKKysKKysgIHNvdW5kLW5hbWUtcHJlZml4OiB0cnVl CisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0gIiNzb3VuZC1kYWktY2VsbHMi CisrCisrYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwK KysgICAgcHdtZGFjLWRpdCB7CisrICAgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzEx MC1wd21kYWMtZGl0IjsKKysgICAgICAgICNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisrICAgIH07 CisrCisrLi4uCisrCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40 L3BhdGNoZXMvMDAzMC1BU29DLWNvZGVjcy1BZGQtU3RhckZpdmUtSkg3MTEwLWR1bW15LVBXTS1E QUMtdHJhbnNtLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzAtQVNvQy1jb2Rl Y3MtQWRkLVN0YXJGaXZlLUpINzExMC1kdW1teS1QV00tREFDLXRyYW5zbS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4xYWMwZDNhZDQyYjFkCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzAtQVNvQy1jb2RlY3MtQWRk LVN0YXJGaXZlLUpINzExMC1kdW1teS1QV00tREFDLXRyYW5zbS5wYXRjaApAQCAtMCwwICsxLDE0 MiBAQAorRnJvbSBlMzFjNzUwZTAxNWJkZDczOGFmNmM5NzdlMTQ0MWQwZTg1NTRiMTQwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVj aC5jb20+CitEYXRlOiBXZWQsIDIxIEp1biAyMDIzIDE3OjEwOjM5ICswODAwCitTdWJqZWN0OiBb UEFUQ0ggMzAvNzJdIEFTb0M6IGNvZGVjczogQWRkIFN0YXJGaXZlIEpINzExMCBkdW1teSBQV00t REFDCisgdHJhbnNtaXR0ZXIgZHJpdmVyCisKK0FkZCBhIGR1bW15IHRyYW5zbWl0dGVyIGRyaXZl ciBmb3IgU3RhckZpdmUgSkg3MTEwIFBXTS1EQUMgbW9kdWxlLgorU3RhckZpdmUgSkg3MTEwIFBX TS1EQUMgY29udHJvbGxlciB1c2VzIHRoaXMgZHJpdmVyLgorCitTaWduZWQtb2ZmLWJ5OiBIYWwg RmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIHNvdW5kL3NvYy9jb2RlY3Mv S2NvbmZpZyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysKKyBzb3VuZC9zb2MvY29kZWNzL01h a2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAyICsKKyBzb3VuZC9zb2MvY29kZWNzL2poNzEx MF9wd21kYWNfdHJhbnNtaXR0ZXIuYyB8IDc0ICsrKysrKysrKysrKysrKysrKysrCisgMyBmaWxl cyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNvdW5kL3Nv Yy9jb2RlY3Mvamg3MTEwX3B3bWRhY190cmFuc21pdHRlci5jCisKK2RpZmYgLS1naXQgYS9zb3Vu ZC9zb2MvY29kZWNzL0tjb25maWcgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKK2luZGV4IDgw MjAwOTdkNGU0Yy4uZjJjZDhmOTk5NjQ5IDEwMDY0NAorLS0tIGEvc291bmQvc29jL2NvZGVjcy9L Y29uZmlnCisrKysgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKK0BAIC0xMTUsNiArMTE1LDcg QEAgY29uZmlnIFNORF9TT0NfQUxMX0NPREVDUworIAlpbXBseSBTTkRfU09DX0lEVDgyMTAzNAor IAlpbXBseSBTTkRfU09DX0lOTk9fUkszMDM2CisgCWltcGx5IFNORF9TT0NfSVNBQkVMTEUKKysJ aW1wbHkgU05EX1NPQ19KSDcxMTBfUFdNREFDX0RJVAorIAlpbXBseSBTTkRfU09DX0paNDc0MF9D T0RFQworIAlpbXBseSBTTkRfU09DX0paNDcyNUJfQ09ERUMKKyAJaW1wbHkgU05EX1NPQ19KWjQ3 NjBfQ09ERUMKK0BAIC05MDMsNiArOTA0LDkgQEAgY29uZmlnIFNORF9TT0NfQ1gyMDcyWAorIAlo ZWxwCisgCSAgRW5hYmxlIHN1cHBvcnQgZm9yIENvbmV4YW50IENYMjA3MjEgYW5kIENYMjA3MjMg Y29kZWMgY2hpcHMuCisgCisrY29uZmlnIFNORF9TT0NfSkg3MTEwX1BXTURBQ19ESVQKKysJdHJp c3RhdGUgIlN0YXJGaXZlIEpINzExMCBkdW1teSBQV00tREFDIHRyYW5zbWl0dGVyIgorKworIGNv bmZpZyBTTkRfU09DX0paNDc0MF9DT0RFQworIAlkZXBlbmRzIG9uIE1BQ0hfSU5HRU5JQyB8fCBD T01QSUxFX1RFU1QKKyAJZGVwZW5kcyBvbiBPRgorZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2Rl Y3MvTWFrZWZpbGUgYi9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCitpbmRleCA1Y2RiYWU4OGU2 ZTMuLjhlMGUxMmQ3Yjk1OSAxMDA2NDQKKy0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUK KysrKyBiL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUKK0BAIC0xMjIsNiArMTIyLDcgQEAgc25k LXNvYy1pY3M0MzQzMi1vYmpzIDo9IGljczQzNDMyLm8KKyBzbmQtc29jLWlkdDgyMTAzNC1vYmpz IDo9IGlkdDgyMTAzNC5vCisgc25kLXNvYy1pbm5vLXJrMzAzNi1vYmpzIDo9IGlubm9fcmszMDM2 Lm8KKyBzbmQtc29jLWlzYWJlbGxlLW9ianMgOj0gaXNhYmVsbGUubworK3NuZC1zb2Mtamg3MTEw LXB3bWRhYy1kaXQtb2JqcyA6PSBqaDcxMTBfcHdtZGFjX3RyYW5zbWl0dGVyLm8KKyBzbmQtc29j LWp6NDc0MC1jb2RlYy1vYmpzIDo9IGp6NDc0MC5vCisgc25kLXNvYy1qejQ3MjViLWNvZGVjLW9i anMgOj0gano0NzI1Yi5vCisgc25kLXNvYy1qejQ3NjAtY29kZWMtb2JqcyA6PSBqejQ3NjAubwor QEAgLTQ5Niw2ICs0OTcsNyBAQCBvYmotJChDT05GSUdfU05EX1NPQ19JQ1M0MzQzMikJKz0gc25k LXNvYy1pY3M0MzQzMi5vCisgb2JqLSQoQ09ORklHX1NORF9TT0NfSURUODIxMDM0KQkrPSBzbmQt c29jLWlkdDgyMTAzNC5vCisgb2JqLSQoQ09ORklHX1NORF9TT0NfSU5OT19SSzMwMzYpCSs9IHNu ZC1zb2MtaW5uby1yazMwMzYubworIG9iai0kKENPTkZJR19TTkRfU09DX0lTQUJFTExFKQkrPSBz bmQtc29jLWlzYWJlbGxlLm8KKytvYmotJChDT05GSUdfU05EX1NPQ19KSDcxMTBfUFdNREFDX0RJ VCkJKz0gc25kLXNvYy1qaDcxMTAtcHdtZGFjLWRpdC5vCisgb2JqLSQoQ09ORklHX1NORF9TT0Nf Slo0NzQwX0NPREVDKQkrPSBzbmQtc29jLWp6NDc0MC1jb2RlYy5vCisgb2JqLSQoQ09ORklHX1NO RF9TT0NfSlo0NzI1Ql9DT0RFQykJKz0gc25kLXNvYy1qejQ3MjViLWNvZGVjLm8KKyBvYmotJChD T05GSUdfU05EX1NPQ19KWjQ3NjBfQ09ERUMpICAgICAgKz0gc25kLXNvYy1qejQ3NjAtY29kZWMu bworZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvamg3MTEwX3B3bWRhY190cmFuc21pdHRl ci5jIGIvc291bmQvc29jL2NvZGVjcy9qaDcxMTBfcHdtZGFjX3RyYW5zbWl0dGVyLmMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjY5MDc3YmU4NDBjNworLS0tIC9k ZXYvbnVsbAorKysrIGIvc291bmQvc29jL2NvZGVjcy9qaDcxMTBfcHdtZGFjX3RyYW5zbWl0dGVy LmMKK0BAIC0wLDAgKzEsNzQgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MAorKy8qCisrICogRHVtbXkgUFdNLURBQyB0cmFuc21pdHRlciBkcml2ZXIgZm9yIHRoZSBTdGFy Rml2ZSBKSDcxMTAgU29DCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMyBTdGFyRml2 ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqLworKworKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKysjaW5jbHVkZSA8bGludXgvb2Yu aD4KKysjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorKyNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+ CisrI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKysKKysj ZGVmaW5lIERSVl9OQU1FICJwd21kYWMtZGl0IgorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25k X3NvY19kYXBtX3dpZGdldCBkaXRfd2lkZ2V0c1tdID0geworKwlTTkRfU09DX0RBUE1fT1VUUFVU KCJwd21kYWMtb3V0IiksCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFw bV9yb3V0ZSBkaXRfcm91dGVzW10gPSB7CisrCXsgInB3bWRhYy1vdXQiLCBOVUxMLCAiUGxheWJh Y2siIH0sCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfY29tcG9uZW50X2Ry aXZlciBzb2NfY29kZWNfcHdtZGFjX2RpdCA9IHsKKysJLmRhcG1fd2lkZ2V0cwkJPSBkaXRfd2lk Z2V0cywKKysJLm51bV9kYXBtX3dpZGdldHMJPSBBUlJBWV9TSVpFKGRpdF93aWRnZXRzKSwKKysJ LmRhcG1fcm91dGVzCQk9IGRpdF9yb3V0ZXMsCisrCS5udW1fZGFwbV9yb3V0ZXMJPSBBUlJBWV9T SVpFKGRpdF9yb3V0ZXMpLAorKwkuaWRsZV9iaWFzX29uCQk9IDEsCisrCS51c2VfcG1kb3duX3Rp bWUJPSAxLAorKwkuZW5kaWFubmVzcwkJPSAxLAorK307CisrCisrc3RhdGljIHN0cnVjdCBzbmRf c29jX2RhaV9kcml2ZXIgZGl0X3N0dWJfZGFpID0geworKwkubmFtZQkJPSAicHdtZGFjLWRpdC1o aWZpIiwKKysJLnBsYXliYWNrCT0geworKwkJLnN0cmVhbV9uYW1lCT0gIlBsYXliYWNrIiwKKysJ CS5jaGFubmVsc19taW4JPSAxLAorKwkJLmNoYW5uZWxzX21heAk9IDM4NCwKKysJCS5yYXRlcwkJ PSBTTkRSVl9QQ01fUkFURV84MDAwXzQ4MDAwLAorKwkJLmZvcm1hdHMJPSBTTkRSVl9QQ01fRk1U QklUX1MxNl9MRSwKKysJfSwKKyt9OworKworK3N0YXRpYyBpbnQgcHdtZGFjX2RpdF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJcmV0dXJuIGRldm1fc25kX3NvY19y ZWdpc3Rlcl9jb21wb25lbnQoJnBkZXYtPmRldiwKKysJCQkJCSAgICAgICAmc29jX2NvZGVjX3B3 bWRhY19kaXQsCisrCQkJCQkgICAgICAgJmRpdF9zdHViX2RhaSwgMSk7CisrfQorKworKyNpZmRl ZiBDT05GSUdfT0YKKytzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBwd21kYWNfZGl0 X2R0X2lkc1tdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wd21kYWMt ZGl0IiwgfSwKKysJeyB9CisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBwd21kYWNfZGl0 X2R0X2lkcyk7CisrI2VuZGlmCisrCisrc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcHdt ZGFjX2RpdF9kcml2ZXIgPSB7CisrCS5wcm9iZQkJPSBwd21kYWNfZGl0X3Byb2JlLAorKwkuZHJp dmVyCQk9IHsKKysJCS5uYW1lCT0gRFJWX05BTUUsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9t YXRjaF9wdHIocHdtZGFjX2RpdF9kdF9pZHMpLAorKwl9LAorK307CisrCisrbW9kdWxlX3BsYXRm b3JtX2RyaXZlcihwd21kYWNfZGl0X2RyaXZlcik7CisrCisrTU9EVUxFX0RFU0NSSVBUSU9OKCJT dGFyRml2ZSBKSDcxMTAgZHVtbXkgUFdNLURBQyB0cmFuc21pdHRlciBkcml2ZXIiKTsKKytNT0RV TEVfTElDRU5TRSgiR1BMIik7CisrTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybToiIERSVl9OQU1FKTsK Ky0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDMx LUFTb0MtZHQtYmluZGluZ3MtQWRkLVN0YXJGaXZlLUpINzExMC1QV00tREFDLWNvbnRyb2wucGF0 Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzMS1BU29DLWR0LWJpbmRpbmdzLUFkZC1T dGFyRml2ZS1KSDcxMTAtUFdNLURBQy1jb250cm9sLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLmM4OWVhYzRiN2RiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzMS1BU29DLWR0LWJpbmRpbmdzLUFkZC1TdGFyRml2 ZS1KSDcxMTAtUFdNLURBQy1jb250cm9sLnBhdGNoCkBAIC0wLDAgKzEsMTAwIEBACitGcm9tIDQ1 OGY0MjkzZGMyNDI1YWE3MzM0MWE5ZDFiNTU0ZDAxYTE3N2YxYzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6 IE1vbiwgMTkgSnVuIDIwMjMgMDk6MzE6MTYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAzMS83Ml0g QVNvQzogZHQtYmluZGluZ3M6IEFkZCBTdGFyRml2ZSBKSDcxMTAgUFdNLURBQworIGNvbnRyb2xs ZXIKKworQWRkIGJpbmRpbmdzIGZvciB0aGUgUFdNLURBQyBjb250cm9sbGVyIG9uIHRoZSBKSDcx MTAKK1JJU0MtViBTb0MgYnkgU3RhckZpdmUgTHRkLgorCitTaWduZWQtb2ZmLWJ5OiBIYWwgRmVu ZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4uLi9zb3VuZC9zdGFyZml2ZSxq aDcxMTAtcHdtZGFjLnlhbWwgICAgICAgICB8IDc2ICsrKysrKysrKysrKysrKysrKysKKyAxIGZp bGUgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3MTEwLXB3bWRhYy55 YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291 bmQvc3RhcmZpdmUsamg3MTEwLXB3bWRhYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL3NvdW5kL3N0YXJmaXZlLGpoNzExMC1wd21kYWMueWFtbAorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uOTFhNDIxM2YyYmQ4CistLS0gL2Rldi9udWxs CisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUs amg3MTEwLXB3bWRhYy55YW1sCitAQCAtMCwwICsxLDc2IEBACisrIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisrLS0t CisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9zb3VuZC9zdGFyZml2ZSxqaDcx MTAtcHdtZGFjLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2No ZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBQV00tREFDIENvbnRy b2xsZXIKKysKKytkZXNjcmlwdGlvbjogfAorKyAgVGhlIFBXTS1EQUMgQ29udHJvbGxlciB1c2Vz IFBXTSBzcXVhcmUgd2F2ZSBnZW5lcmF0b3JzIHBsdXMgUkMgZmlsdGVycyB0bworKyAgZm9ybSBh IERBQyBmb3IgYXVkaW8gcGxheSBpbiBTdGFyRml2ZSBKSDcxMTAgU29DLiBUaGlzIGF1ZGlvIHBs YXkgY29udHJvbGxlcgorKyAgc3VwcG9ydHMgMTYgYml0IGF1ZGlvIGZvcm1hdCwgdXAgdG8gNDhL IHNhbXBsaW5nIGZyZXF1ZW5jeSAsIHVwIHRvIGxlZnQKKysgIGFuZCByaWdodCBkdWFsIGNoYW5u ZWxzLgorKworK21haW50YWluZXJzOgorKyAgLSBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0 ZWNoLmNvbT4KKysKKythbGxPZjoKKysgIC0gJHJlZjogZGFpLWNvbW1vbi55YW1sIworKworK3By b3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3MTEwLXB3 bWRhYworKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKworKyAgY2xvY2tzOgorKyAgICBp dGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBQV01EQUMgQVBCCisrICAgICAgLSBkZXNjcmlw dGlvbjogUFdNREFDIENPUkUKKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAg ICAtIGNvbnN0OiBhcGIKKysgICAgICAtIGNvbnN0OiBjb3JlCisrCisrICByZXNldHM6CisrICAg IG1heEl0ZW1zOiAxCisrICAgIGRlc2NyaXB0aW9uOiBQV01EQUMgQVBCCisrCisrICBkbWFzOgor KyAgICBtYXhJdGVtczogMQorKyAgICBkZXNjcmlwdGlvbjogVFggRE1BIENoYW5uZWwKKysKKysg IGRtYS1uYW1lczoKKysgICAgY29uc3Q6IHR4CisrCisrICAiI3NvdW5kLWRhaS1jZWxscyI6Cisr ICAgIGNvbnN0OiAwCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysgIC0gcmVnCisr ICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSByZXNldHMKKysgIC0gZG1hcworKyAg LSBkbWEtbmFtZXMKKysgIC0gIiNzb3VuZC1kYWktY2VsbHMiCisrCisrYWRkaXRpb25hbFByb3Bl cnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgcHdtZGFjQDEwMGIwMDAw IHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXB3bWRhYyI7CisrICAg ICAgICByZWcgPSA8MHgxMDBiMDAwMCAweDEwMDA+OworKyAgICAgICAgY2xvY2tzID0gPCZzeXNj cmcgMTU3PiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIDE1OD47CisrICAgICAgICBjbG9j ay1uYW1lcyA9ICJhcGIiLCAiY29yZSI7CisrICAgICAgICByZXNldHMgPSA8JnN5c2NyZyA5Nj47 CisrICAgICAgICBkbWFzID0gPCZkbWEgMjI+OworKyAgICAgICAgZG1hLW5hbWVzID0gInR4IjsK KysgICAgICAgICNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisrICAgIH07CistLSAKKzIuNDEuMAor CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzMi1BU29DLXN0YXJmaXZl LUFkZC1KSDcxMTAtUFdNLURBQy1kcml2ZXIucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNo ZXMvMDAzMi1BU29DLXN0YXJmaXZlLUFkZC1KSDcxMTAtUFdNLURBQy1kcml2ZXIucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYjhhMGE3OGI1YTdmNwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDMyLUFTb0Mtc3RhcmZp dmUtQWRkLUpINzExMC1QV00tREFDLWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDgzOSBAQAorRnJv bSAxMGQ3YzYyNTg5ODNlMjAzYmNjMjMwNTMzMmE2ZjQ1NTdkNWEwNjhhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitE YXRlOiBXZWQsIDE3IE1heSAyMDIzIDA5OjU2OjM4ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMzIv NzJdIEFTb0M6IHN0YXJmaXZlOiBBZGQgSkg3MTEwIFBXTS1EQUMgZHJpdmVyCisKK0FkZCBQV00t REFDIGRyaXZlciBzdXBwb3J0IGZvciB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQy4KKworU2lnbmVk LW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBzb3Vu ZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZyAgICAgICAgIHwgICA5ICsKKyBzb3VuZC9zb2Mvc3RhcmZp dmUvTWFrZWZpbGUgICAgICAgIHwgICAxICsKKyBzb3VuZC9zb2Mvc3RhcmZpdmUvamg3MTEwX3B3 bWRhYy5jIHwgNzg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFu Z2VkLCA3OTcgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3VuZC9zb2Mvc3Rh cmZpdmUvamg3MTEwX3B3bWRhYy5jCisKK2RpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc3RhcmZpdmUv S2NvbmZpZyBiL3NvdW5kL3NvYy9zdGFyZml2ZS9LY29uZmlnCitpbmRleCBmYWZiNjgxZjhjMGEu LmZhYmVmMzc3ZGI4YyAxMDA2NDQKKy0tLSBhL3NvdW5kL3NvYy9zdGFyZml2ZS9LY29uZmlnCisr KysgYi9zb3VuZC9zb2Mvc3RhcmZpdmUvS2NvbmZpZworQEAgLTcsNiArNywxNSBAQCBjb25maWcg U05EX1NPQ19TVEFSRklWRQorIAkgIHRoZSBTdGFyZml2ZSBTb0NzJyBBdWRpbyBpbnRlcmZhY2Vz LiBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8KKyAJICBzZWxlY3QgdGhlIGF1ZGlvIGludGVyZmFjZXMg dG8gc3VwcG9ydCBiZWxvdy4KKyAKKytjb25maWcgU05EX1NPQ19KSDcxMTBfUFdNREFDCisrCXRy aXN0YXRlICJKSDcxMTAgUFdNLURBQyBkZXZpY2UgZHJpdmVyIgorKwlkZXBlbmRzIG9uIEhBVkVf Q0xLICYmIFNORF9TT0NfU1RBUkZJVkUKKysJc2VsZWN0IFNORF9TT0NfR0VORVJJQ19ETUFFTkdJ TkVfUENNCisrCXNlbGVjdCBTTkRfU09DX0pINzExMF9QV01EQUNfRElUCisrCWhlbHAKKysJIFNh eSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIFN0YXJGaXZlIEpINzExMAor KwkgUFdNLURBQyBkcml2ZXIuCisrCisgY29uZmlnIFNORF9TT0NfSkg3MTEwX1RETQorIAl0cmlz dGF0ZSAiSkg3MTEwIFRETSBkZXZpY2UgZHJpdmVyIgorIAlkZXBlbmRzIG9uIEhBVkVfQ0xLICYm IFNORF9TT0NfU1RBUkZJVkUKK2RpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc3RhcmZpdmUvTWFrZWZp bGUgYi9zb3VuZC9zb2Mvc3RhcmZpdmUvTWFrZWZpbGUKK2luZGV4IGY3ZDk2MDIxMWQ3Mi4uOWU5 NThmNzBlZjUxIDEwMDY0NAorLS0tIGEvc291bmQvc29jL3N0YXJmaXZlL01ha2VmaWxlCisrKysg Yi9zb3VuZC9zb2Mvc3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0xLDIgKzEsMyBAQAorICMgU3RhckZp dmUgUGxhdGZvcm0gU3VwcG9ydAorK29iai0kKENPTkZJR19TTkRfU09DX0pINzExMF9QV01EQUMp ICs9IGpoNzExMF9wd21kYWMubworIG9iai0kKENPTkZJR19TTkRfU09DX0pINzExMF9URE0pICs9 IGpoNzExMF90ZG0ubworZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zdGFyZml2ZS9qaDcxMTBfcHdt ZGFjLmMgYi9zb3VuZC9zb2Mvc3RhcmZpdmUvamg3MTEwX3B3bWRhYy5jCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5jMzEyM2JkNmVhNDUKKy0tLSAvZGV2L251bGwK KysrKyBiL3NvdW5kL3NvYy9zdGFyZml2ZS9qaDcxMTBfcHdtZGFjLmMKK0BAIC0wLDAgKzEsNzg3 IEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysvKgorKyAqIGpoNzEx MF9wd21kYWMuYyAtLSBTdGFyRml2ZSBKSDcxMTAgUFdNLURBQyBkcml2ZXIKKysgKgorKyAqIENv cHlyaWdodCAoQykgMjAyMS0yMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICoK KysgKiBBdXRob3JzOiBKZW5ueSBaaGFuZworKyAqCSAgICBDdXJyeSBaaGFuZworKyAqCSAgICBY aW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorKyAqCSAgICBIYWwgRmVuZyA8 aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xr Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ CisrI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorKyNpbmNsdWRlIDxsaW51eC9pby5oPgor KyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5o PgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cisr I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisrI2luY2x1ZGUgPHNvdW5kL2RtYWVuZ2luZV9wY20u aD4KKysjaW5jbHVkZSA8c291bmQvcGNtLmg+CisrI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMu aD4KKysjaW5jbHVkZSA8c291bmQvc29jLmg+CisrCisrI2RlZmluZSBKSDcxMTBfUFdNREFDX1dE QVRBCQkJCTB4MDAKKysjZGVmaW5lIEpINzExMF9QV01EQUNfQ1RSTAkJCQkweDA0CisrCSNkZWZp bmUgSkg3MTEwX1BXTURBQ19FTkFCTEUJCQlCSVQoMCkKKysJI2RlZmluZSBKSDcxMTBfUFdNREFD X1NISUZUCQkJQklUKDEpCisrCSNkZWZpbmUgSkg3MTEwX1BXTURBQ19EVVRZX0NZQ0xFX1NISUZU CQkyCisrCSNkZWZpbmUgSkg3MTEwX1BXTURBQ19EVVRZX0NZQ0xFX01BU0sJCUdFTk1BU0soMywg MikKKysJI2RlZmluZSBKSDcxMTBfUFdNREFDX0NOVF9OX1NISUZUCQk0CisrCSNkZWZpbmUgSkg3 MTEwX1BXTURBQ19DTlRfTl9NQVNLCQlHRU5NQVNLKDEyLCA0KQorKwkjZGVmaW5lIEpINzExMF9Q V01EQUNfREFUQV9DSEFOR0UJCUJJVCgxMykKKysJI2RlZmluZSBKSDcxMTBfUFdNREFDX0RBVEFf TU9ERQkJCUJJVCgxNCkKKysJI2RlZmluZSBKSDcxMTBfUFdNREFDX0RBVEFfU0hJRlRfU0hJRlQJ CTE1CisrCSNkZWZpbmUgSkg3MTEwX1BXTURBQ19EQVRBX1NISUZUX01BU0sJCUdFTk1BU0soMTcs IDE1KQorKworK2VudW0gSkg3MTEwX1BXTURBQ19TSElGVF9WQUwgeworKwlQV01EQUNfU0hJRlRf OCA9IDAsCisrCVBXTURBQ19TSElGVF8xMCwKKyt9OworKworK2VudW0gSkg3MTEwX1BXTURBQ19E VVRZX0NZQ0xFX1ZBTCB7CisrCVBXTURBQ19DWUNMRV9MRUZUID0gMCwKKysJUFdNREFDX0NZQ0xF X1JJR0hULAorKwlQV01EQUNfQ1lDTEVfQ0VOVEVSLAorK307CisrCisrZW51bSBKSDcxMTBfUFdN REFDX0NOVF9OX1ZBTCB7CisrCVBXTURBQ19TQU1QTEVfQ05UXzEgPSAxLAorKwlQV01EQUNfU0FN UExFX0NOVF8yLAorKwlQV01EQUNfU0FNUExFX0NOVF8zLAorKwlQV01EQUNfU0FNUExFX0NOVF81 MTIgPSA1MTIsIC8qIG1heCAqLworK307CisrCisrZW51bSBKSDcxMTBfUFdNREFDX0RBVEFfQ0hB TkdFX1ZBTCB7CisrCU5PX0NIQU5HRSA9IDAsCisrCUNIQU5HRSwKKyt9OworKworK2VudW0gSkg3 MTEwX1BXTURBQ19EQVRBX01PREVfVkFMIHsKKysJVU5TSUdORURfREFUQSA9IDAsCisrCUlOVkVS VEVSX0RBVEFfTVNCLAorK307CisrCisrZW51bSBKSDcxMTBfUFdNREFDX0RBVEFfU0hJRlRfVkFM IHsKKysJUFdNREFDX0RBVEFfTEVGVF9TSElGVF9CSVRfMCA9IDAsCisrCVBXTURBQ19EQVRBX0xF RlRfU0hJRlRfQklUXzEsCisrCVBXTURBQ19EQVRBX0xFRlRfU0hJRlRfQklUXzIsCisrCVBXTURB Q19EQVRBX0xFRlRfU0hJRlRfQklUXzMsCisrCVBXTURBQ19EQVRBX0xFRlRfU0hJRlRfQklUXzQs CisrCVBXTURBQ19EQVRBX0xFRlRfU0hJRlRfQklUXzUsCisrCVBXTURBQ19EQVRBX0xFRlRfU0hJ RlRfQklUXzYsCisrCVBXTURBQ19EQVRBX0xFRlRfU0hJRlRfQklUXzcsCisrfTsKKysKKytzdHJ1 Y3Qgamg3MTEwX3B3bWRhY19kZXYgeworKwl2b2lkIF9faW9tZW0gKmJhc2U7CisrCXJlc291cmNl X3NpemVfdAltYXBiYXNlOworKwl1OCBzaGlmdDsKKysJdTggZHV0eV9jeWNsZTsKKysJdTggY250 X247CisrCXU4IGRhdGFfY2hhbmdlOworKwl1OCBkYXRhX21vZGU7CisrCXU4IGRhdGFfc2hpZnQ7 CisrCisrCXN0cnVjdCBjbGtfYnVsa19kYXRhIGNsa3NbMl07CisrCXN0cnVjdCByZXNldF9jb250 cm9sICpyc3RfYXBiOworKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisrCXN0cnVjdCBzbmRfZG1hZW5n aW5lX2RhaV9kbWFfZGF0YSBwbGF5X2RtYV9kYXRhOworKwl1MzIgc2F2ZWRfY3RybDsKKyt9Owor KworK2VudW0gamg3MTEwX2N0X3B3bWRhY19uYW1lIHsKKysJUFdNREFDX0NUX1NISUZUID0gMCwK KysJUFdNREFDX0NUX0RVVFlfQ1lDTEUsCisrCVBXTURBQ19DVF9EQVRBX0NIQU5HRSwKKysJUFdN REFDX0NUX0RBVEFfTU9ERSwKKysJUFdNREFDX0NUX0RBVEFfU0hJRlQsCisrfTsKKysKKytzdHJ1 Y3Qgamg3MTEwX2N0X3B3bWRhYyB7CisrCWNoYXIgKm5hbWU7CisrCXVuc2lnbmVkIGludCB2YWxz OworK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxMTBfY3RfcHdtZGFjIHB3bWRhY19j dF9zaGlmdFtdID0geworKwl7IC5uYW1lID0gIjhiaXQiLCAudmFscyA9IFBXTURBQ19TSElGVF84 IH0sCisrCXsgLm5hbWUgPSAiMTBiaXQiLCAudmFscyA9IFBXTURBQ19TSElGVF8xMCB9CisrfTsK KysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9jdF9wd21kYWMgcHdtZGFjX2N0X2R1dHlf Y3ljbGVbXSA9IHsKKysJeyAubmFtZSA9ICJsZWZ0IiwgLnZhbHMgPSBQV01EQUNfQ1lDTEVfTEVG VCB9LAorKwl7IC5uYW1lID0gInJpZ2h0IiwgLnZhbHMgPSBQV01EQUNfQ1lDTEVfUklHSFQgfSwK KysJeyAubmFtZSA9ICJjZW50ZXIiLCAudmFscyA9IFBXTURBQ19DWUNMRV9DRU5URVIgfQorK307 CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxMTBfY3RfcHdtZGFjIHB3bWRhY19jdF9kYXRh X2NoYW5nZVtdID0geworKwl7IC5uYW1lID0gIm5vX2NoYW5nZSIsIC52YWxzID0gTk9fQ0hBTkdF IH0sCisrCXsgLm5hbWUgPSAiY2hhbmdlIiwgLnZhbHMgPSBDSEFOR0UgfQorK307CisrCisrc3Rh dGljIGNvbnN0IHN0cnVjdCBqaDcxMTBfY3RfcHdtZGFjIHB3bWRhY19jdF9kYXRhX21vZGVbXSA9 IHsKKysJeyAubmFtZSA9ICJ1bnNpZ25lZCIsIC52YWxzID0gVU5TSUdORURfREFUQSB9LAorKwl7 IC5uYW1lID0gImludmVydGVyIiwgLnZhbHMgPSBJTlZFUlRFUl9EQVRBX01TQiB9CisrfTsKKysK KytzdGF0aWMgY29uc3Qgc3RydWN0IGpoNzExMF9jdF9wd21kYWMgcHdtZGFjX2N0X2RhdGFfc2hp ZnRbXSA9IHsKKysJeyAubmFtZSA9ICJsZWZ0IDAgYml0IiwgLnZhbHMgPSBQV01EQUNfREFUQV9M RUZUX1NISUZUX0JJVF8wIH0sCisrCXsgLm5hbWUgPSAibGVmdCAxIGJpdCIsIC52YWxzID0gUFdN REFDX0RBVEFfTEVGVF9TSElGVF9CSVRfMSB9LAorKwl7IC5uYW1lID0gImxlZnQgMiBiaXQiLCAu dmFscyA9IFBXTURBQ19EQVRBX0xFRlRfU0hJRlRfQklUXzIgfSwKKysJeyAubmFtZSA9ICJsZWZ0 IDMgYml0IiwgLnZhbHMgPSBQV01EQUNfREFUQV9MRUZUX1NISUZUX0JJVF8zIH0sCisrCXsgLm5h bWUgPSAibGVmdCA0IGJpdCIsIC52YWxzID0gUFdNREFDX0RBVEFfTEVGVF9TSElGVF9CSVRfNCB9 LAorKwl7IC5uYW1lID0gImxlZnQgNSBiaXQiLCAudmFscyA9IFBXTURBQ19EQVRBX0xFRlRfU0hJ RlRfQklUXzUgfSwKKysJeyAubmFtZSA9ICJsZWZ0IDYgYml0IiwgLnZhbHMgPSBQV01EQUNfREFU QV9MRUZUX1NISUZUX0JJVF82IH0sCisrCXsgLm5hbWUgPSAibGVmdCA3IGJpdCIsIC52YWxzID0g UFdNREFDX0RBVEFfTEVGVF9TSElGVF9CSVRfNyB9CisrfTsKKysKKytzdGF0aWMgaW50IGpoNzEx MF9wd21kYWNfaW5mbyhzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvLCBpbnQgcHdtZGFj X2N0KQorK3sKKysJdW5zaWduZWQgaW50IGl0ZW1zOworKworKwlpZiAocHdtZGFjX2N0ID09IFBX TURBQ19DVF9TSElGVCkgeworKwkJaXRlbXMgPSBBUlJBWV9TSVpFKHB3bWRhY19jdF9zaGlmdCk7 CisrCQlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwKKysJCSAgICAgICBwd21k YWNfY3Rfc2hpZnRbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0ubmFtZSk7CisrCX0gZWxz ZSBpZiAocHdtZGFjX2N0ID09IFBXTURBQ19DVF9EVVRZX0NZQ0xFKSB7CisrCQlpdGVtcyA9IEFS UkFZX1NJWkUocHdtZGFjX2N0X2R1dHlfY3ljbGUpOworKwkJc3RyY3B5KHVpbmZvLT52YWx1ZS5l bnVtZXJhdGVkLm5hbWUsCisrCQkgICAgICAgcHdtZGFjX2N0X2R1dHlfY3ljbGVbdWluZm8tPnZh bHVlLmVudW1lcmF0ZWQuaXRlbV0ubmFtZSk7CisrCX0gZWxzZSBpZiAocHdtZGFjX2N0ID09IFBX TURBQ19DVF9EQVRBX0NIQU5HRSkgeworKwkJaXRlbXMgPSBBUlJBWV9TSVpFKHB3bWRhY19jdF9k YXRhX2NoYW5nZSk7CisrCQlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwKKysJ CSAgICAgICBwd21kYWNfY3RfZGF0YV9jaGFuZ2VbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRl bV0ubmFtZSk7CisrCX0gZWxzZSBpZiAocHdtZGFjX2N0ID09IFBXTURBQ19DVF9EQVRBX01PREUp IHsKKysJCWl0ZW1zID0gQVJSQVlfU0laRShwd21kYWNfY3RfZGF0YV9tb2RlKTsKKysJCXN0cmNw eSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLAorKwkJICAgICAgIHB3bWRhY19jdF9kYXRh X21vZGVbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0ubmFtZSk7CisrCX0gZWxzZSBpZiAo cHdtZGFjX2N0ID09IFBXTURBQ19DVF9EQVRBX1NISUZUKSB7CisrCQlpdGVtcyA9IEFSUkFZX1NJ WkUocHdtZGFjX2N0X2RhdGFfc2hpZnQpOworKwkJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJh dGVkLm5hbWUsCisrCQkgICAgICAgcHdtZGFjX2N0X2RhdGFfc2hpZnRbdWluZm8tPnZhbHVlLmVu dW1lcmF0ZWQuaXRlbV0ubmFtZSk7CisrCX0KKysKKysJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExf RUxFTV9UWVBFX0VOVU1FUkFURUQ7CisrCXVpbmZvLT5jb3VudCA9IDE7CisrCXVpbmZvLT52YWx1 ZS5lbnVtZXJhdGVkLml0ZW1zID0gaXRlbXM7CisrCWlmICh1aW5mby0+dmFsdWUuZW51bWVyYXRl ZC5pdGVtID49IGl0ZW1zKQorKwkJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA9IGl0ZW1z IC0gMTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRhY19n ZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisrCQkJICAgICBzdHJ1Y3Qgc25kX2N0 bF9lbGVtX3ZhbHVlICp1Y29udHJvbCwKKysJCQkgICAgIGludCBwd21kYWNfY3QpCisreworKwlz dHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCA9IHNuZF9rY29udHJvbF9jaGlwKGtj b250cm9sKTsKKysJc3RydWN0IGpoNzExMF9wd21kYWNfZGV2ICpkZXYgPSBzbmRfc29jX2NvbXBv bmVudF9nZXRfZHJ2ZGF0YShjb21wb25lbnQpOworKworKwlpZiAocHdtZGFjX2N0ID09IFBXTURB Q19DVF9TSElGVCkKKysJCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSBkZXYt PnNoaWZ0OworKwllbHNlIGlmIChwd21kYWNfY3QgPT0gUFdNREFDX0NUX0RVVFlfQ1lDTEUpCisr CQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0gZGV2LT5kdXR5X2N5Y2xlOwor KwllbHNlIGlmIChwd21kYWNfY3QgPT0gUFdNREFDX0NUX0RBVEFfQ0hBTkdFKQorKwkJdWNvbnRy b2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IGRldi0+ZGF0YV9jaGFuZ2U7CisrCWVsc2Ug aWYgKHB3bWRhY19jdCA9PSBQV01EQUNfQ1RfREFUQV9NT0RFKQorKwkJdWNvbnRyb2wtPnZhbHVl LmVudW1lcmF0ZWQuaXRlbVswXSA9IGRldi0+ZGF0YV9tb2RlOworKwllbHNlIGlmIChwd21kYWNf Y3QgPT0gUFdNREFDX0NUX0RBVEFfU0hJRlQpCisrCQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRl ZC5pdGVtWzBdID0gZGV2LT5kYXRhX3NoaWZ0OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3Rh dGljIGludCBqaDcxMTBfcHdtZGFjX3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwK KysJCQkgICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sLAorKwkJCSAgICAg aW50IHB3bWRhY19jdCkKKyt7CisrCXN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50 ID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworKwlzdHJ1Y3Qgamg3MTEwX3B3bWRhY19k ZXYgKmRldiA9IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7CisrCWlu dCBzZWwgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdOworKwl1bnNpZ25lZCBp bnQgaXRlbXM7CisrCisrCWlmIChwd21kYWNfY3QgPT0gUFdNREFDX0NUX1NISUZUKQorKwkJaXRl bXMgPSBBUlJBWV9TSVpFKHB3bWRhY19jdF9zaGlmdCk7CisrCWVsc2UgaWYgKHB3bWRhY19jdCA9 PSBQV01EQUNfQ1RfRFVUWV9DWUNMRSkKKysJCWl0ZW1zID0gQVJSQVlfU0laRShwd21kYWNfY3Rf ZHV0eV9jeWNsZSk7CisrCWVsc2UgaWYgKHB3bWRhY19jdCA9PSBQV01EQUNfQ1RfREFUQV9DSEFO R0UpCisrCQlpdGVtcyA9IEFSUkFZX1NJWkUocHdtZGFjX2N0X2RhdGFfY2hhbmdlKTsKKysJZWxz ZSBpZiAocHdtZGFjX2N0ID09IFBXTURBQ19DVF9EQVRBX01PREUpCisrCQlpdGVtcyA9IEFSUkFZ X1NJWkUocHdtZGFjX2N0X2RhdGFfbW9kZSk7CisrCWVsc2UgaWYgKHB3bWRhY19jdCA9PSBQV01E QUNfQ1RfREFUQV9TSElGVCkKKysJCWl0ZW1zID0gQVJSQVlfU0laRShwd21kYWNfY3RfZGF0YV9z aGlmdCk7CisrCisrCWlmIChzZWwgPj0gaXRlbXMpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJ aWYgKHB3bWRhY19jdCA9PSBQV01EQUNfQ1RfU0hJRlQpCisrCQlkZXYtPnNoaWZ0ID0gcHdtZGFj X2N0X3NoaWZ0W3NlbF0udmFsczsKKysJZWxzZSBpZiAocHdtZGFjX2N0ID09IFBXTURBQ19DVF9E VVRZX0NZQ0xFKQorKwkJZGV2LT5kdXR5X2N5Y2xlID0gcHdtZGFjX2N0X2R1dHlfY3ljbGVbc2Vs XS52YWxzOworKwllbHNlIGlmIChwd21kYWNfY3QgPT0gUFdNREFDX0NUX0RBVEFfQ0hBTkdFKQor KwkJZGV2LT5kYXRhX2NoYW5nZSA9IHB3bWRhY19jdF9kYXRhX2NoYW5nZVtzZWxdLnZhbHM7Cisr CWVsc2UgaWYgKHB3bWRhY19jdCA9PSBQV01EQUNfQ1RfREFUQV9NT0RFKQorKwkJZGV2LT5kYXRh X21vZGUgPSBwd21kYWNfY3RfZGF0YV9tb2RlW3NlbF0udmFsczsKKysJZWxzZSBpZiAocHdtZGFj X2N0ID09IFBXTURBQ19DVF9EQVRBX1NISUZUKQorKwkJZGV2LT5kYXRhX3NoaWZ0ID0gcHdtZGFj X2N0X2RhdGFfc2hpZnRbc2VsXS52YWxzOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGlj IGludCBqaDcxMTBfcHdtZGFjX3NoaWZ0X2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRy b2wsCisrCQkJCSAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQorK3sKKysJcmV0 dXJuIGpoNzExMF9wd21kYWNfaW5mbyh1aW5mbywgUFdNREFDX0NUX1NISUZUKTsKKyt9CisrCisr c3RhdGljIGludCBqaDcxMTBfcHdtZGFjX3NoaWZ0X2dldChzdHJ1Y3Qgc25kX2tjb250cm9sICpr Y29udHJvbCwKKysJCQkJICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCisr eworKwlyZXR1cm4gamg3MTEwX3B3bWRhY19nZXQoa2NvbnRyb2wsIHVjb250cm9sLCBQV01EQUNf Q1RfU0hJRlQpOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wd21kYWNfc2hpZnRfcHV0KHN0 cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorKwkJCQkgICBzdHJ1Y3Qgc25kX2N0bF9lbGVt X3ZhbHVlICp1Y29udHJvbCkKKyt7CisrCXJldHVybiBqaDcxMTBfcHdtZGFjX3B1dChrY29udHJv bCwgdWNvbnRyb2wsIFBXTURBQ19DVF9TSElGVCk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEw X3B3bWRhY19kdXR5X2N5Y2xlX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisr CQkJCQkgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKKyt7CisrCXJldHVybiBqaDcx MTBfcHdtZGFjX2luZm8odWluZm8sIFBXTURBQ19DVF9EVVRZX0NZQ0xFKTsKKyt9CisrCisrc3Rh dGljIGludCBqaDcxMTBfcHdtZGFjX2R1dHlfY3ljbGVfZ2V0KHN0cnVjdCBzbmRfa2NvbnRyb2wg Kmtjb250cm9sLAorKwkJCQkJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCisr eworKwlyZXR1cm4gamg3MTEwX3B3bWRhY19nZXQoa2NvbnRyb2wsIHVjb250cm9sLCBQV01EQUNf Q1RfRFVUWV9DWUNMRSk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRhY19kdXR5X2N5 Y2xlX3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKysJCQkJCXN0cnVjdCBzbmRf Y3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQorK3sKKysJcmV0dXJuIGpoNzExMF9wd21kYWNfcHV0 KGtjb250cm9sLCB1Y29udHJvbCwgUFdNREFDX0NUX0RVVFlfQ1lDTEUpOworK30KKysKKytzdGF0 aWMgaW50IGpoNzExMF9wd21kYWNfZGF0YV9jaGFuZ2VfaW5mbyhzdHJ1Y3Qgc25kX2tjb250cm9s ICprY29udHJvbCwKKysJCQkJCSAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKKyt7 CisrCXJldHVybiBqaDcxMTBfcHdtZGFjX2luZm8odWluZm8sIFBXTURBQ19DVF9EQVRBX0NIQU5H RSk7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRhY19kYXRhX2NoYW5nZV9nZXQoc3Ry dWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisrCQkJCQkgc3RydWN0IHNuZF9jdGxfZWxlbV92 YWx1ZSAqdWNvbnRyb2wpCisreworKwlyZXR1cm4gamg3MTEwX3B3bWRhY19nZXQoa2NvbnRyb2ws IHVjb250cm9sLCBQV01EQUNfQ1RfREFUQV9DSEFOR0UpOworK30KKysKKytzdGF0aWMgaW50IGpo NzExMF9wd21kYWNfZGF0YV9jaGFuZ2VfcHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9s LAorKwkJCQkJIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQorK3sKKysJcmV0 dXJuIGpoNzExMF9wd21kYWNfcHV0KGtjb250cm9sLCB1Y29udHJvbCwgUFdNREFDX0NUX0RBVEFf Q0hBTkdFKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdtZGFjX2RhdGFfbW9kZV9pbmZv KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorKwkJCQkJc3RydWN0IHNuZF9jdGxfZWxl bV9pbmZvICp1aW5mbykKKyt7CisrCXJldHVybiBqaDcxMTBfcHdtZGFjX2luZm8odWluZm8sIFBX TURBQ19DVF9EQVRBX01PREUpOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wd21kYWNfZGF0 YV9tb2RlX2dldChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKysJCQkJICAgICAgIHN0 cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQorK3sKKysJcmV0dXJuIGpoNzExMF9w d21kYWNfZ2V0KGtjb250cm9sLCB1Y29udHJvbCwgUFdNREFDX0NUX0RBVEFfTU9ERSk7CisrfQor KworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRhY19kYXRhX21vZGVfcHV0KHN0cnVjdCBzbmRfa2Nv bnRyb2wgKmtjb250cm9sLAorKwkJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAq dWNvbnRyb2wpCisreworKwlyZXR1cm4gamg3MTEwX3B3bWRhY19wdXQoa2NvbnRyb2wsIHVjb250 cm9sLCBQV01EQUNfQ1RfREFUQV9NT0RFKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdt ZGFjX2RhdGFfc2hpZnRfaW5mbyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKysJCQkJ CSBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQorK3sKKysJcmV0dXJuIGpoNzExMF9w d21kYWNfaW5mbyh1aW5mbywgUFdNREFDX0NUX0RBVEFfU0hJRlQpOworK30KKysKKytzdGF0aWMg aW50IGpoNzExMF9wd21kYWNfZGF0YV9zaGlmdF9nZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2Nv bnRyb2wsCisrCQkJCQlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKKyt7Cisr CXJldHVybiBqaDcxMTBfcHdtZGFjX2dldChrY29udHJvbCwgdWNvbnRyb2wsIFBXTURBQ19DVF9E QVRBX1NISUZUKTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdtZGFjX2RhdGFfc2hpZnRf cHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorKwkJCQkJc3RydWN0IHNuZF9jdGxf ZWxlbV92YWx1ZSAqdWNvbnRyb2wpCisreworKwlyZXR1cm4gamg3MTEwX3B3bWRhY19wdXQoa2Nv bnRyb2wsIHVjb250cm9sLCBQV01EQUNfQ1RfREFUQV9TSElGVCk7CisrfQorKworK3N0YXRpYyBp bmxpbmUgdm9pZCBqaDcxMTBfcHdtZGFjX3dyaXRlX3JlZyh2b2lkIF9faW9tZW0gKmlvX2Jhc2Us IGludCByZWcsIHUzMiB2YWwpCisreworKwl3cml0ZWwodmFsLCBpb19iYXNlICsgcmVnKTsKKyt9 CisrCisrc3RhdGljIGlubGluZSB1MzIgamg3MTEwX3B3bWRhY19yZWFkX3JlZyh2b2lkIF9faW9t ZW0gKmlvX2Jhc2UsIGludCByZWcpCisreworKwlyZXR1cm4gcmVhZGwoaW9fYmFzZSArIHJlZyk7 CisrfQorKworK3N0YXRpYyB2b2lkIGpoNzExMF9wd21kYWNfc2V0X2VuYWJsZShzdHJ1Y3Qgamg3 MTEwX3B3bWRhY19kZXYgKmRldiwgYm9vbCBlbmFibGUpCisreworKwl1MzIgdmFsdWU7CisrCisr CXZhbHVlID0gamg3MTEwX3B3bWRhY19yZWFkX3JlZyhkZXYtPmJhc2UsIEpINzExMF9QV01EQUNf Q1RSTCk7CisrCWlmIChlbmFibGUpCisrCQl2YWx1ZSB8PSBKSDcxMTBfUFdNREFDX0VOQUJMRTsK KysJZWxzZQorKwkJdmFsdWUgJj0gfkpINzExMF9QV01EQUNfRU5BQkxFOworKworKwlqaDcxMTBf cHdtZGFjX3dyaXRlX3JlZyhkZXYtPmJhc2UsIEpINzExMF9QV01EQUNfQ1RSTCwgdmFsdWUpOwor K30KKysKKytzdGF0aWMgdm9pZCBqaDcxMTBfcHdtZGFjX3NldF9zaGlmdChzdHJ1Y3Qgamg3MTEw X3B3bWRhY19kZXYgKmRldikKKyt7CisrCXUzMiB2YWx1ZTsKKysKKysJdmFsdWUgPSBqaDcxMTBf cHdtZGFjX3JlYWRfcmVnKGRldi0+YmFzZSwgSkg3MTEwX1BXTURBQ19DVFJMKTsKKysJaWYgKGRl di0+c2hpZnQgPT0gUFdNREFDX1NISUZUXzgpCisrCQl2YWx1ZSAmPSB+Skg3MTEwX1BXTURBQ19T SElGVDsKKysJZWxzZSBpZiAoZGV2LT5zaGlmdCA9PSBQV01EQUNfU0hJRlRfMTApCisrCQl2YWx1 ZSB8PSBKSDcxMTBfUFdNREFDX1NISUZUOworKworKwlqaDcxMTBfcHdtZGFjX3dyaXRlX3JlZyhk ZXYtPmJhc2UsIEpINzExMF9QV01EQUNfQ1RSTCwgdmFsdWUpOworK30KKysKKytzdGF0aWMgdm9p ZCBqaDcxMTBfcHdtZGFjX3NldF9kdXR5X2N5Y2xlKHN0cnVjdCBqaDcxMTBfcHdtZGFjX2RldiAq ZGV2KQorK3sKKysJdTMyIHZhbHVlOworKworKwl2YWx1ZSA9IGpoNzExMF9wd21kYWNfcmVhZF9y ZWcoZGV2LT5iYXNlLCBKSDcxMTBfUFdNREFDX0NUUkwpOworKwl2YWx1ZSAmPSB+Skg3MTEwX1BX TURBQ19EVVRZX0NZQ0xFX01BU0s7CisrCXZhbHVlIHw9IChkZXYtPmR1dHlfY3ljbGUgJiAweDMp IDw8IEpINzExMF9QV01EQUNfRFVUWV9DWUNMRV9TSElGVDsKKysKKysJamg3MTEwX3B3bWRhY193 cml0ZV9yZWcoZGV2LT5iYXNlLCBKSDcxMTBfUFdNREFDX0NUUkwsIHZhbHVlKTsKKyt9CisrCisr c3RhdGljIHZvaWQgamg3MTEwX3B3bWRhY19zZXRfY250X24oc3RydWN0IGpoNzExMF9wd21kYWNf ZGV2ICpkZXYpCisreworKwl1MzIgdmFsdWU7CisrCisrCXZhbHVlID0gamg3MTEwX3B3bWRhY19y ZWFkX3JlZyhkZXYtPmJhc2UsIEpINzExMF9QV01EQUNfQ1RSTCk7CisrCXZhbHVlICY9IH5KSDcx MTBfUFdNREFDX0NOVF9OX01BU0s7CisrCXZhbHVlIHw9ICgoZGV2LT5jbnRfbiAtIDEpICYgMHgx ZmYpIDw8IEpINzExMF9QV01EQUNfQ05UX05fU0hJRlQ7CisrCisrCWpoNzExMF9wd21kYWNfd3Jp dGVfcmVnKGRldi0+YmFzZSwgSkg3MTEwX1BXTURBQ19DVFJMLCB2YWx1ZSk7CisrfQorKworK3N0 YXRpYyB2b2lkIGpoNzExMF9wd21kYWNfc2V0X2RhdGFfY2hhbmdlKHN0cnVjdCBqaDcxMTBfcHdt ZGFjX2RldiAqZGV2KQorK3sKKysJdTMyIHZhbHVlOworKworKwl2YWx1ZSA9IGpoNzExMF9wd21k YWNfcmVhZF9yZWcoZGV2LT5iYXNlLCBKSDcxMTBfUFdNREFDX0NUUkwpOworKwlpZiAoZGV2LT5k YXRhX2NoYW5nZSA9PSBOT19DSEFOR0UpCisrCQl2YWx1ZSAmPSB+Skg3MTEwX1BXTURBQ19EQVRB X0NIQU5HRTsKKysJZWxzZSBpZiAoZGV2LT5kYXRhX2NoYW5nZSA9PSBDSEFOR0UpCisrCQl2YWx1 ZSB8PSBKSDcxMTBfUFdNREFDX0RBVEFfQ0hBTkdFOworKworKwlqaDcxMTBfcHdtZGFjX3dyaXRl X3JlZyhkZXYtPmJhc2UsIEpINzExMF9QV01EQUNfQ1RSTCwgdmFsdWUpOworK30KKysKKytzdGF0 aWMgdm9pZCBqaDcxMTBfcHdtZGFjX3NldF9kYXRhX21vZGUoc3RydWN0IGpoNzExMF9wd21kYWNf ZGV2ICpkZXYpCisreworKwl1MzIgdmFsdWU7CisrCisrCXZhbHVlID0gamg3MTEwX3B3bWRhY19y ZWFkX3JlZyhkZXYtPmJhc2UsIEpINzExMF9QV01EQUNfQ1RSTCk7CisrCWlmIChkZXYtPmRhdGFf bW9kZSA9PSBVTlNJR05FRF9EQVRBKQorKwkJdmFsdWUgJj0gfkpINzExMF9QV01EQUNfREFUQV9N T0RFOworKwllbHNlIGlmIChkZXYtPmRhdGFfbW9kZSA9PSBJTlZFUlRFUl9EQVRBX01TQikKKysJ CXZhbHVlIHw9IEpINzExMF9QV01EQUNfREFUQV9NT0RFOworKworKwlqaDcxMTBfcHdtZGFjX3dy aXRlX3JlZyhkZXYtPmJhc2UsIEpINzExMF9QV01EQUNfQ1RSTCwgdmFsdWUpOworK30KKysKKytz dGF0aWMgdm9pZCBqaDcxMTBfcHdtZGFjX3NldF9kYXRhX3NoaWZ0KHN0cnVjdCBqaDcxMTBfcHdt ZGFjX2RldiAqZGV2KQorK3sKKysJdTMyIHZhbHVlOworKworKwl2YWx1ZSA9IGpoNzExMF9wd21k YWNfcmVhZF9yZWcoZGV2LT5iYXNlLCBKSDcxMTBfUFdNREFDX0NUUkwpOworKwl2YWx1ZSAmPSB+ Skg3MTEwX1BXTURBQ19EQVRBX1NISUZUX01BU0s7CisrCXZhbHVlIHw9IChkZXYtPmRhdGFfc2hp ZnQgJiAweDcpIDw8IEpINzExMF9QV01EQUNfREFUQV9TSElGVF9TSElGVDsKKysKKysJamg3MTEw X3B3bWRhY193cml0ZV9yZWcoZGV2LT5iYXNlLCBKSDcxMTBfUFdNREFDX0NUUkwsIHZhbHVlKTsK Kyt9CisrCisrc3RhdGljIHZvaWQgamg3MTEwX3B3bWRhY19zZXQoc3RydWN0IGpoNzExMF9wd21k YWNfZGV2ICpkZXYpCisreworKwlqaDcxMTBfcHdtZGFjX3NldF9zaGlmdChkZXYpOworKwlqaDcx MTBfcHdtZGFjX3NldF9kdXR5X2N5Y2xlKGRldik7CisrCWpoNzExMF9wd21kYWNfc2V0X2NudF9u KGRldik7CisrCWpoNzExMF9wd21kYWNfc2V0X2VuYWJsZShkZXYsIHRydWUpOworKworKwlqaDcx MTBfcHdtZGFjX3NldF9kYXRhX2NoYW5nZShkZXYpOworKwlqaDcxMTBfcHdtZGFjX3NldF9kYXRh X21vZGUoZGV2KTsKKysJamg3MTEwX3B3bWRhY19zZXRfZGF0YV9zaGlmdChkZXYpOworK30KKysK KytzdGF0aWMgdm9pZCBqaDcxMTBfcHdtZGFjX3N0b3Aoc3RydWN0IGpoNzExMF9wd21kYWNfZGV2 ICpkZXYpCisreworKwlqaDcxMTBfcHdtZGFjX3NldF9lbmFibGUoZGV2LCBmYWxzZSk7CisrfQor KworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRhY19zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0 cmVhbSAqc3Vic3RyZWFtLAorKwkJCQkgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCisreworKwlz dHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gYXNvY19zdWJzdHJlYW1fdG9fcnRkKHN1 YnN0cmVhbSk7CisrCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICpkYWlfbGluayA9IHJ0ZC0+ZGFp X2xpbms7CisrCisrCWRhaV9saW5rLT5zdG9wX2RtYV9maXJzdCA9IDE7CisrCisrCXJldHVybiAw OworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wd21kYWNfaHdfcGFyYW1zKHN0cnVjdCBzbmRf cGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorKwkJCQkgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJh bXMgKnBhcmFtcywKKysJCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCisreworKwl1bnNp Z25lZCBsb25nIGNvcmVfY2xrX3JhdGU7CisrCWludCByZXQ7CisrCXN0cnVjdCBqaDcxMTBfcHdt ZGFjX2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRhaS0+ZGV2KTsKKysKKysJc3dpdGNoIChw YXJhbXNfcmF0ZShwYXJhbXMpKSB7CisrCWNhc2UgODAwMDoKKysJCWRldi0+Y250X24gPSBQV01E QUNfU0FNUExFX0NOVF8zOworKwkJY29yZV9jbGtfcmF0ZSA9IDYxNDQwMDA7CisrCQlicmVhazsK KysJY2FzZSAxMTAyNToKKysJCWRldi0+Y250X24gPSBQV01EQUNfU0FNUExFX0NOVF8yOworKwkJ Y29yZV9jbGtfcmF0ZSA9IDU2NDQ4MDA7CisrCQlicmVhazsKKysJY2FzZSAxNjAwMDoKKysJCWRl di0+Y250X24gPSBQV01EQUNfU0FNUExFX0NOVF8zOworKwkJY29yZV9jbGtfcmF0ZSA9IDEyMjg4 MDAwOworKwkJYnJlYWs7CisrCWNhc2UgMjIwNTA6CisrCQlkZXYtPmNudF9uID0gUFdNREFDX1NB TVBMRV9DTlRfMTsKKysJCWNvcmVfY2xrX3JhdGUgPSA1NjQ0ODAwOworKwkJYnJlYWs7CisrCWNh c2UgMzIwMDA6CisrCQlkZXYtPmNudF9uID0gUFdNREFDX1NBTVBMRV9DTlRfMTsKKysJCWNvcmVf Y2xrX3JhdGUgPSA4MTkyMDAwOworKwkJYnJlYWs7CisrCWNhc2UgNDQxMDA6CisrCQlkZXYtPmNu dF9uID0gUFdNREFDX1NBTVBMRV9DTlRfMTsKKysJCWNvcmVfY2xrX3JhdGUgPSAxMTI4OTYwMDsK KysJCWJyZWFrOworKwljYXNlIDQ4MDAwOgorKwkJZGV2LT5jbnRfbiA9IFBXTURBQ19TQU1QTEVf Q05UXzE7CisrCQljb3JlX2Nsa19yYXRlID0gMTIyODgwMDA7CisrCQlicmVhazsKKysJZGVmYXVs dDoKKysJCWRldl9lcnIoZGFpLT5kZXYsICIlZCByYXRlIG5vdCBzdXBwb3J0ZWRcbiIsCisrCQkJ cGFyYW1zX3JhdGUocGFyYW1zKSk7CisrCQlyZXR1cm4gLUVJTlZBTDsKKysJfQorKworKwlzd2l0 Y2ggKHBhcmFtc19jaGFubmVscyhwYXJhbXMpKSB7CisrCWNhc2UgMToKKysJCWRldi0+cGxheV9k bWFfZGF0YS5hZGRyX3dpZHRoID0gRE1BX1NMQVZFX0JVU1dJRFRIXzJfQllURVM7CisrCQlicmVh azsKKysJY2FzZSAyOgorKwkJZGV2LT5wbGF5X2RtYV9kYXRhLmFkZHJfd2lkdGggPSBETUFfU0xB VkVfQlVTV0lEVEhfNF9CWVRFUzsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJZGV2X2Vycihk YWktPmRldiwgIiVkIGNoYW5uZWxzIG5vdCBzdXBwb3J0ZWRcbiIsCisrCQkJcGFyYW1zX2NoYW5u ZWxzKHBhcmFtcykpOworKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKysKKysJLyoKKysJICogVGhl IGNsb2NrIHJhdGUgYWx3YXlzIHJvdW5kcyBkb3duIHdoZW4gdXNpbmcgY2xrX3NldF9yYXRlKCkK KysJICogc28gaW5jcmVhc2UgdGhlIHJhdGUgYSBiaXQKKysJICovCisrCWNvcmVfY2xrX3JhdGUg Kz0gNjQ7CisrCWpoNzExMF9wd21kYWNfc2V0KGRldik7CisrCisrCXJldCA9IGNsa19zZXRfcmF0 ZShkZXYtPmNsa3NbMV0uY2xrLCBjb3JlX2Nsa19yYXRlKTsKKysJaWYgKHJldCkgeworKwkJZGV2 X2VycihkYWktPmRldiwKKysJCQkiZmFpbGVkIHRvIHNldCByYXRlICVsdSBmb3IgY29yZSBjbG9j a1xuIiwKKysJCQljb3JlX2Nsa19yYXRlKTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJcmV0 dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRhY190cmlnZ2VyKHN0cnVjdCBz bmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kLAorKwkJCQkgc3RydWN0IHNuZF9z b2NfZGFpICpkYWkpCisreworKwlzdHJ1Y3Qgamg3MTEwX3B3bWRhY19kZXYgKmRldiA9IHNuZF9z b2NfZGFpX2dldF9kcnZkYXRhKGRhaSk7CisrCWludCByZXQgPSAwOworKworKwlzd2l0Y2ggKGNt ZCkgeworKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorKwljYXNlIFNORFJWX1BDTV9U UklHR0VSX1JFU1VNRToKKysJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9SRUxFQVNFOgor KwkJamg3MTEwX3B3bWRhY19zZXQoZGV2KTsKKysJCWJyZWFrOworKworKwljYXNlIFNORFJWX1BD TV9UUklHR0VSX1NUT1A6CisrCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKKysJY2Fz ZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgorKwkJamg3MTEwX3B3bWRhY19zdG9wKGRl dik7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCXJldCA9IC1FSU5WQUw7CisrCQlicmVhazsK KysJfQorKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF9wd21kYWNf Y3JnX2VuYWJsZShzdHJ1Y3Qgamg3MTEwX3B3bWRhY19kZXYgKmRldiwgYm9vbCBlbmFibGUpCisr eworKwlpbnQgcmV0OworKworKwlpZiAoZW5hYmxlKSB7CisrCQlyZXQgPSBjbGtfYnVsa19wcmVw YXJlX2VuYWJsZShBUlJBWV9TSVpFKGRldi0+Y2xrcyksIGRldi0+Y2xrcyk7CisrCQlpZiAocmV0 KSB7CisrCQkJZGV2X2VycihkZXYtPmRldiwgImZhaWxlZCB0byBlbmFibGUgcHdtZGFjIGNsb2Nr c1xuIik7CisrCQkJcmV0dXJuIHJldDsKKysJCX0KKysKKysJCXJldCA9IHJlc2V0X2NvbnRyb2xf ZGVhc3NlcnQoZGV2LT5yc3RfYXBiKTsKKysJCWlmIChyZXQpIHsKKysJCQlkZXZfZXJyKGRldi0+ ZGV2LCAiZmFpbGVkIHRvIGRlYXNzZXJ0IHB3bWRhYyBhcGIgcmVzZXRcbiIpOworKwkJCWdvdG8g ZXJyX3JzdF9hcGI7CisrCQl9CisrCX0gZWxzZSB7CisrCQljbGtfYnVsa19kaXNhYmxlX3VucHJl cGFyZShBUlJBWV9TSVpFKGRldi0+Y2xrcyksIGRldi0+Y2xrcyk7CisrCX0KKysKKysJcmV0dXJu IDA7CisrCisrZXJyX3JzdF9hcGI6CisrCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKEFSUkFZ X1NJWkUoZGV2LT5jbGtzKSwgZGV2LT5jbGtzKTsKKysKKysJcmV0dXJuIHJldDsKKyt9CisrCisr c3RhdGljIGludCBqaDcxMTBfcHdtZGFjX2RhaV9wcm9iZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRh aSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfcHdtZGFjX2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRh KGRhaS0+ZGV2KTsKKysKKysJZGV2LT5wbGF5X2RtYV9kYXRhLmFkZHIgPSBkZXYtPm1hcGJhc2Ug KyBKSDcxMTBfUFdNREFDX1dEQVRBOworKwlkZXYtPnBsYXlfZG1hX2RhdGEuYWRkcl93aWR0aCA9 IERNQV9TTEFWRV9CVVNXSURUSF80X0JZVEVTOworKwlkZXYtPnBsYXlfZG1hX2RhdGEuZmlmb19z aXplID0gMTsKKysJZGV2LT5wbGF5X2RtYV9kYXRhLm1heGJ1cnN0ID0gMTY7CisrCisrCXNuZF9z b2NfZGFpX2luaXRfZG1hX2RhdGEoZGFpLCAmZGV2LT5wbGF5X2RtYV9kYXRhLCBOVUxMKTsKKysJ c25kX3NvY19kYWlfc2V0X2RydmRhdGEoZGFpLCBkZXYpOworKworKwlyZXR1cm4gMDsKKyt9Cisr CisrI2RlZmluZSBKSDcxMTBfUFdNREFDX0VOVU1fREVDTCh4bmFtZSwgeGluZm8sIHhnZXQsIHhw dXQpIFwKKyt7CS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhu YW1lLCBcCisrCS5pbmZvID0geGluZm8sIC5nZXQgPSB4Z2V0LCAucHV0ID0geHB1dCx9CisrCisr c3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGpoNzExMF9wd21kYWNfc25kX2Nv bnRyb2xzW10gPSB7CisrCUpINzExMF9QV01EQUNfRU5VTV9ERUNMKCJzaGlmdCIsIGpoNzExMF9w d21kYWNfc2hpZnRfaW5mbywKKysJCQkJamg3MTEwX3B3bWRhY19zaGlmdF9nZXQsCisrCQkJCWpo NzExMF9wd21kYWNfc2hpZnRfcHV0KSwKKysJSkg3MTEwX1BXTURBQ19FTlVNX0RFQ0woImR1dHlf Y3ljbGUiLCBqaDcxMTBfcHdtZGFjX2R1dHlfY3ljbGVfaW5mbywKKysJCQkJamg3MTEwX3B3bWRh Y19kdXR5X2N5Y2xlX2dldCwKKysJCQkJamg3MTEwX3B3bWRhY19kdXR5X2N5Y2xlX3B1dCksCisr CUpINzExMF9QV01EQUNfRU5VTV9ERUNMKCJkYXRhX2NoYW5nZSIsIGpoNzExMF9wd21kYWNfZGF0 YV9jaGFuZ2VfaW5mbywKKysJCQkJamg3MTEwX3B3bWRhY19kYXRhX2NoYW5nZV9nZXQsCisrCQkJ CWpoNzExMF9wd21kYWNfZGF0YV9jaGFuZ2VfcHV0KSwKKysJSkg3MTEwX1BXTURBQ19FTlVNX0RF Q0woImRhdGFfbW9kZSIsIGpoNzExMF9wd21kYWNfZGF0YV9tb2RlX2luZm8sCisrCQkJCWpoNzEx MF9wd21kYWNfZGF0YV9tb2RlX2dldCwKKysJCQkJamg3MTEwX3B3bWRhY19kYXRhX21vZGVfcHV0 KSwKKysJSkg3MTEwX1BXTURBQ19FTlVNX0RFQ0woImRhdGFfc2hpZnQiLCBqaDcxMTBfcHdtZGFj X2RhdGFfc2hpZnRfaW5mbywKKysJCQkJamg3MTEwX3B3bWRhY19kYXRhX3NoaWZ0X2dldCwKKysJ CQkJamg3MTEwX3B3bWRhY19kYXRhX3NoaWZ0X3B1dCksCisrfTsKKysKKytzdGF0aWMgaW50IGpo NzExMF9wd21kYWNfY29tcG9uZW50X3Byb2JlKHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY29t cG9uZW50KQorK3sKKysJc25kX3NvY19hZGRfY29tcG9uZW50X2NvbnRyb2xzKGNvbXBvbmVudCwg amg3MTEwX3B3bWRhY19zbmRfY29udHJvbHMsCisrCQkJCSAgICAgICBBUlJBWV9TSVpFKGpoNzEx MF9wd21kYWNfc25kX2NvbnRyb2xzKSk7CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgY29u c3Qgc3RydWN0IHNuZF9zb2NfZGFpX29wcyBqaDcxMTBfcHdtZGFjX2RhaV9vcHMgPSB7CisrCS5z dGFydHVwCT0gamg3MTEwX3B3bWRhY19zdGFydHVwLAorKwkuaHdfcGFyYW1zCT0gamg3MTEwX3B3 bWRhY19od19wYXJhbXMsCisrCS50cmlnZ2VyCT0gamg3MTEwX3B3bWRhY190cmlnZ2VyLAorK307 CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudF9kcml2ZXIgamg3MTEw X3B3bWRhY19jb21wb25lbnQgPSB7CisrCS5uYW1lCQk9ICJqaDcxMTAtcHdtZGFjIiwKKysJLnBy b2JlCQk9IGpoNzExMF9wd21kYWNfY29tcG9uZW50X3Byb2JlLAorK307CisrCisrc3RhdGljIHN0 cnVjdCBzbmRfc29jX2RhaV9kcml2ZXIgamg3MTEwX3B3bWRhY19kYWkgPSB7CisrCS5uYW1lCQk9 ICJqaDcxMTAtcHdtZGFjIiwKKysJLmlkCQk9IDAsCisrCS5wcm9iZQkJPSBqaDcxMTBfcHdtZGFj X2RhaV9wcm9iZSwKKysJLnBsYXliYWNrID0geworKwkJLmNoYW5uZWxzX21pbiA9IDEsCisrCQku Y2hhbm5lbHNfbWF4ID0gMiwKKysJCS5yYXRlcyA9IFNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAs CisrCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLAorKwl9LAorKwkub3BzID0g JmpoNzExMF9wd21kYWNfZGFpX29wcywKKyt9OworKworK3N0YXRpYyBpbnQgamg3MTEwX3B3bWRh Y19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGpoNzEx MF9wd21kYWNfZGV2ICpwd21kYWMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJcmV0dXJu IGpoNzExMF9wd21kYWNfY3JnX2VuYWJsZShwd21kYWMsIGZhbHNlKTsKKyt9CisrCisrc3RhdGlj IGludCBqaDcxMTBfcHdtZGFjX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7 CisrCXN0cnVjdCBqaDcxMTBfcHdtZGFjX2RldiAqcHdtZGFjID0gZGV2X2dldF9kcnZkYXRhKGRl dik7CisrCisrCXJldHVybiBqaDcxMTBfcHdtZGFjX2NyZ19lbmFibGUocHdtZGFjLCB0cnVlKTsK Kyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdtZGFjX3N5c3RlbV9zdXNwZW5kKHN0cnVjdCBk ZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBqaDcxMTBfcHdtZGFjX2RldiAqcHdtZGFjID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CisrCisrCS8qIHNhdmUgdGhlIENUUkwgcmVnaXN0ZXIgdmFsdWUg Ki8KKysJcHdtZGFjLT5zYXZlZF9jdHJsID0gamg3MTEwX3B3bWRhY19yZWFkX3JlZyhwd21kYWMt PmJhc2UsCisrCQkJCQkJICAgIEpINzExMF9QV01EQUNfQ1RSTCk7CisrCXJldHVybiBwbV9ydW50 aW1lX2ZvcmNlX3N1c3BlbmQoZGV2KTsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdtZGFj X3N5c3RlbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGpoNzExMF9w d21kYWNfZGV2ICpwd21kYWMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJaW50IHJldDsKKysK KysJcmV0ID0gcG1fcnVudGltZV9mb3JjZV9yZXN1bWUoZGV2KTsKKysJaWYgKHJldCkKKysJCXJl dHVybiByZXQ7CisrCisrCS8qIHJlc3RvcmUgdGhlIENUUkwgcmVnaXN0ZXIgdmFsdWUgKi8KKysJ amg3MTEwX3B3bWRhY193cml0ZV9yZWcocHdtZGFjLT5iYXNlLCBKSDcxMTBfUFdNREFDX0NUUkws CisrCQkJCXB3bWRhYy0+c2F2ZWRfY3RybCk7CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMgamg3MTEwX3B3bWRhY19wbV9vcHMgPSB7CisrCVJVTlRJ TUVfUE1fT1BTKGpoNzExMF9wd21kYWNfcnVudGltZV9zdXNwZW5kLAorKwkJICAgICAgIGpoNzEx MF9wd21kYWNfcnVudGltZV9yZXN1bWUsIE5VTEwpCisrCVNZU1RFTV9TTEVFUF9QTV9PUFMoamg3 MTEwX3B3bWRhY19zeXN0ZW1fc3VzcGVuZCwKKysJCQkgICAgamg3MTEwX3B3bWRhY19zeXN0ZW1f cmVzdW1lKQorK307CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdtZGFjX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgamg3MTEwX3B3bWRhY19kZXYgKmRl djsKKysJc3RydWN0IHJlc291cmNlICpyZXM7CisrCWludCByZXQ7CisrCisrCWRldiA9IGRldm1f a3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmRldiksIEdGUF9LRVJORUwpOworKwlpZiAoIWRl dikKKysJCXJldHVybiAtRU5PTUVNOworKworKwlkZXYtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2dl dF9hbmRfaW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwLCAmcmVzKTsKKysJaWYgKElTX0VSUihkZXYt PmJhc2UpKQorKwkJcmV0dXJuIFBUUl9FUlIoZGV2LT5iYXNlKTsKKysKKysJZGV2LT5tYXBiYXNl ID0gcmVzLT5zdGFydDsKKysKKysJZGV2LT5jbGtzWzBdLmlkID0gImFwYiI7CisrCWRldi0+Y2xr c1sxXS5pZCA9ICJjb3JlIjsKKysKKysJcmV0ID0gZGV2bV9jbGtfYnVsa19nZXQoJnBkZXYtPmRl diwgQVJSQVlfU0laRShkZXYtPmNsa3MpLCBkZXYtPmNsa3MpOworKwlpZiAocmV0KSB7CisrCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHB3bWRhYyBjbG9ja3NcbiIpOworKwkJ cmV0dXJuIHJldDsKKysJfQorKworKwlkZXYtPnJzdF9hcGIgPSBkZXZtX3Jlc2V0X2NvbnRyb2xf Z2V0X2V4Y2x1c2l2ZSgmcGRldi0+ZGV2LCBOVUxMKTsKKysJaWYgKElTX0VSUihkZXYtPnJzdF9h cGIpKSB7CisrCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHB3bWRhYyBhcGIg cmVzZXRcbiIpOworKwkJcmV0dXJuIFBUUl9FUlIoZGV2LT5yc3RfYXBiKTsKKysJfQorKworKwlk ZXYtPmRldiA9ICZwZGV2LT5kZXY7CisrCWRldi0+c2hpZnQgPSBQV01EQUNfU0hJRlRfODsKKysJ ZGV2LT5kdXR5X2N5Y2xlID0gUFdNREFDX0NZQ0xFX0NFTlRFUjsKKysJZGV2LT5jbnRfbiA9IFBX TURBQ19TQU1QTEVfQ05UXzE7CisrCWRldi0+ZGF0YV9jaGFuZ2UgPSBOT19DSEFOR0U7CisrCWRl di0+ZGF0YV9tb2RlID0gSU5WRVJURVJfREFUQV9NU0I7CisrCWRldi0+ZGF0YV9zaGlmdCA9IFBX TURBQ19EQVRBX0xFRlRfU0hJRlRfQklUXzA7CisrCisrCWRldl9zZXRfZHJ2ZGF0YSgmcGRldi0+ ZGV2LCBkZXYpOworKwlyZXQgPSBkZXZtX3NuZF9zb2NfcmVnaXN0ZXJfY29tcG9uZW50KCZwZGV2 LT5kZXYsCisrCQkJCQkgICAgICAmamg3MTEwX3B3bWRhY19jb21wb25lbnQsCisrCQkJCQkgICAg ICAmamg3MTEwX3B3bWRhY19kYWksIDEpOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgZGFpXG4iKTsKKysJCXJldHVybiByZXQ7CisrCX0K KysKKysJcmV0ID0gZGV2bV9zbmRfZG1hZW5naW5lX3BjbV9yZWdpc3RlcigmcGRldi0+ZGV2LCBO VUxMLCAwKTsKKysJaWYgKHJldCkgeworKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRv IHJlZ2lzdGVyIHBjbVxuIik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXBtX3J1bnRpbWVf ZW5hYmxlKGRldi0+ZGV2KTsKKysJaWYgKCFwbV9ydW50aW1lX2VuYWJsZWQoJnBkZXYtPmRldikp IHsKKysJCXJldCA9IGpoNzExMF9wd21kYWNfcnVudGltZV9yZXN1bWUoJnBkZXYtPmRldik7Cisr CQlpZiAocmV0KQorKwkJCWdvdG8gZXJyX3BtX2Rpc2FibGU7CisrCX0KKysKKysJcmV0dXJuIDA7 CisrCisrZXJyX3BtX2Rpc2FibGU6CisrCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsK KysKKysJcmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIGludCBqaDcxMTBfcHdtZGFjX3JlbW92 ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJcG1fcnVudGltZV9kaXNhYmxl KCZwZGV2LT5kZXYpOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgamg3MTEwX3B3bWRhY19vZl9tYXRjaFtdID0geworKwl7IC5jb21wYXRpYmxl ID0gInN0YXJmaXZlLGpoNzExMC1wd21kYWMiIH0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307 CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3MTEwX3B3bWRhY19vZl9tYXRjaCk7CisrCisr c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgamg3MTEwX3B3bWRhY19kcml2ZXIgPSB7Cisr CS5kcml2ZXIJCT0geworKwkJLm5hbWUJPSAiamg3MTEwLXB3bWRhYyIsCisrCQkub2ZfbWF0Y2hf dGFibGUgPSBqaDcxMTBfcHdtZGFjX29mX21hdGNoLAorKwkJLnBtID0gcG1fcHRyKCZqaDcxMTBf cHdtZGFjX3BtX29wcyksCisrCX0sCisrCS5wcm9iZQkJPSBqaDcxMTBfcHdtZGFjX3Byb2JlLAor KwkucmVtb3ZlCQk9IGpoNzExMF9wd21kYWNfcmVtb3ZlLAorK307CisrbW9kdWxlX3BsYXRmb3Jt X2RyaXZlcihqaDcxMTBfcHdtZGFjX2RyaXZlcik7CisrCisrTU9EVUxFX0FVVEhPUigiSmVubnkg WmhhbmciKTsKKytNT0RVTEVfQVVUSE9SKCJDdXJyeSBaaGFuZyIpOworK01PRFVMRV9BVVRIT1Io Ilhpbmd5dSBXdSA8eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0FVVEhP UigiSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0RFU0NS SVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAgUFdNLURBQyBkcml2ZXIiKTsKKytNT0RVTEVfTElDRU5T RSgiR1BMIik7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3Bh dGNoZXMvMDAzMy1kdC1iaW5kaW5ncy1wb3dlci1BZGQtcG93ZXItZG9tYWluLWhlYWRlci1mb3It Skg3MTEwLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzMtZHQtYmluZGluZ3Mt cG93ZXItQWRkLXBvd2VyLWRvbWFpbi1oZWFkZXItZm9yLUpINzExMC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4yNWE5ZWJkNDZmOWZmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzMtZHQtYmluZGluZ3MtcG93ZXIt QWRkLXBvd2VyLWRvbWFpbi1oZWFkZXItZm9yLUpINzExMC5wYXRjaApAQCAtMCwwICsxLDM2IEBA CitGcm9tIDE1ZmY5YjdiYTcyMzU5ZDU4NGZmNDFmMzgxYjgxZDM3M2Y1YWRjNDcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBDaGFuZ2h1YW5nIExpYW5nIDxjaGFuZ2h1YW5nLmxpYW5n QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDE4IE1heSAyMDIzIDIzOjAxOjU5IC0wNzAw CitTdWJqZWN0OiBbUEFUQ0ggMzMvNzJdIGR0LWJpbmRpbmdzOiBwb3dlcjogQWRkIHBvd2VyLWRv bWFpbiBoZWFkZXIgZm9yIEpINzExMAorCitBZGQgcG93ZXItZG9tYWluIGhlYWRlciBmb3IgSkg3 MTEwIFNvQywgaXQgY2FuIHVzZSB0byBvcGVyYXRlIGRwaHkKK3Bvd2VyLgorCitTaWduZWQtb2Zm LWJ5OiBDaGFuZ2h1YW5nIExpYW5nIDxjaGFuZ2h1YW5nLmxpYW5nQHN0YXJmaXZldGVjaC5jb20+ CistLS0KKyBpbmNsdWRlL2R0LWJpbmRpbmdzL3Bvd2VyL3N0YXJmaXZlLGpoNzExMC1wbXUuaCB8 IDUgKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Bvd2VyL3N0YXJmaXZlLGpoNzEx MC1wbXUuaCBiL2luY2x1ZGUvZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZpdmUsamg3MTEwLXBtdS5o CitpbmRleCAxMzJiZmU0MDFmYzguLjM0MWUyYTA2NzZiYSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUv ZHQtYmluZGluZ3MvcG93ZXIvc3RhcmZpdmUsamg3MTEwLXBtdS5oCisrKysgYi9pbmNsdWRlL2R0 LWJpbmRpbmdzL3Bvd2VyL3N0YXJmaXZlLGpoNzExMC1wbXUuaAorQEAgLTEsNiArMSw2IEBACisg LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNl KSAqLworIC8qCistICogQ29weXJpZ2h0IChDKSAyMDIyIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28u LCBMdGQuCisrICogQ29weXJpZ2h0IChDKSAyMDIyLTIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBD by4sIEx0ZC4KKyAgKiBBdXRob3I6IFdhbGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRl Y2guY29tPgorICAqLworICNpZm5kZWYgX19EVF9CSU5ESU5HU19QT1dFUl9KSDcxMTBfUE9XRVJf SF9fCitAQCAtMTQsNCArMTQsNyBAQAorICNkZWZpbmUgSkg3MTEwX1BEX0lTUAkJNQorICNkZWZp bmUgSkg3MTEwX1BEX1ZFTkMJCTYKKyAKKysjZGVmaW5lIEpINzExMF9QRF9EUEhZX1RYCTAKKysj ZGVmaW5lIEpINzExMF9QRF9EUEhZX1JYCTEKKysKKyAjZW5kaWYKKy0tIAorMi40MS4wCisKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDM0LXNvYy1zdGFyZml2ZS1SZXBs YWNlLVNPQ19TVEFSRklWRS13aXRoLUFSQ0hfU1RBUkZJVkUucGF0Y2ggYi9zcmNwa2dzL2xpbnV4 Ni40L3BhdGNoZXMvMDAzNC1zb2Mtc3RhcmZpdmUtUmVwbGFjZS1TT0NfU1RBUkZJVkUtd2l0aC1B UkNIX1NUQVJGSVZFLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAuLjk4ZDNhMGI0NGM2MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3Bh dGNoZXMvMDAzNC1zb2Mtc3RhcmZpdmUtUmVwbGFjZS1TT0NfU1RBUkZJVkUtd2l0aC1BUkNIX1NU QVJGSVZFLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNDQyYTYzOWMwNjQxMDQ1NWExOWM3 Yzc0OTZmYjc5ZjlmMzcyNTJjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENoYW5n aHVhbmcgTGlhbmcgPGNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFRo dSwgMTggTWF5IDIwMjMgMjM6MDI6MDAgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSCAzNC83Ml0gc29j OiBzdGFyZml2ZTogUmVwbGFjZSBTT0NfU1RBUkZJVkUgd2l0aCBBUkNIX1NUQVJGSVZFCisKK1Vz aW5nIEFSQ0hfRk9PIHN5bWJvbCBpcyBwcmVmZXJyZWQgdGhhbiBTT0NfRk9PLgorCitSZXZpZXdl ZC1ieTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KK1Jldmlld2Vk LWJ5OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KK1NpZ25lZC1v ZmYtYnk6IENoYW5naHVhbmcgTGlhbmcgPGNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0ZWNoLmNv bT4KKy0tLQorIGRyaXZlcnMvc29jL3N0YXJmaXZlL0tjb25maWcgfCA0ICsrLS0KKyAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zb2Mvc3RhcmZpdmUvS2NvbmZpZyBiL2RyaXZlcnMvc29jL3N0YXJmaXZlL0tjb25m aWcKK2luZGV4IGJkYjk2ZGM0Yzk4OS4uMWU5YjBjNDE0ZmVjIDEwMDY0NAorLS0tIGEvZHJpdmVy cy9zb2Mvc3RhcmZpdmUvS2NvbmZpZworKysrIGIvZHJpdmVycy9zb2Mvc3RhcmZpdmUvS2NvbmZp ZworQEAgLTMsOCArMyw4IEBACisgY29uZmlnIEpINzFYWF9QTVUKKyAJYm9vbCAiU3VwcG9ydCBQ TVUgZm9yIFN0YXJGaXZlIEpINzFYWCBTb2MiCisgCWRlcGVuZHMgb24gUE0KKy0JZGVwZW5kcyBv biBTT0NfU1RBUkZJVkUgfHwgQ09NUElMRV9URVNUCistCWRlZmF1bHQgU09DX1NUQVJGSVZFCisr CWRlcGVuZHMgb24gQVJDSF9TVEFSRklWRSB8fCBDT01QSUxFX1RFU1QKKysJZGVmYXVsdCBBUkNI X1NUQVJGSVZFCisgCXNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlMKKyAJaGVscAorIAkgIFNheSAn eScgaGVyZSB0byBlbmFibGUgc3VwcG9ydCBwb3dlciBkb21haW4gc3VwcG9ydC4KKy0tIAorMi40 MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDM1LXNvYy1zdGFy Zml2ZS1FeHRyYWN0LUpINzExMC1wbXUtcHJpdmF0ZS1vcGVyYXRpb25zLnBhdGNoIGIvc3JjcGtn cy9saW51eDYuNC9wYXRjaGVzLzAwMzUtc29jLXN0YXJmaXZlLUV4dHJhY3QtSkg3MTEwLXBtdS1w cml2YXRlLW9wZXJhdGlvbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMC4uZTI3Njc5OGEwM2VhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2 LjQvcGF0Y2hlcy8wMDM1LXNvYy1zdGFyZml2ZS1FeHRyYWN0LUpINzExMC1wbXUtcHJpdmF0ZS1v cGVyYXRpb25zLnBhdGNoCkBAIC0wLDAgKzEsMTgwIEBACitGcm9tIGY1NDc5MGI2Y2Q5MzRlNmI4 MmEyZWI5MzIzYWQ3YWYwNzg5ZjU2NTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBD aGFuZ2h1YW5nIExpYW5nIDxjaGFuZ2h1YW5nLmxpYW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRl OiBUaHUsIDE4IE1heSAyMDIzIDIzOjAyOjAxIC0wNzAwCitTdWJqZWN0OiBbUEFUQ0ggMzUvNzJd IHNvYzogc3RhcmZpdmU6IEV4dHJhY3QgSkg3MTEwIHBtdSBwcml2YXRlIG9wZXJhdGlvbnMKKwor TW92ZSBKSDcxMTAgcHJpdmF0ZSBvcGVyYXRpb24gaW50byBwcml2YXRlIGRhdGEgb2YgY29tcGF0 aWJsZS4gQ29udmVuaWVudAordG8gYWRkIEFPTiBQTVUgd2hpY2ggd291bGQgbm90IGhhdmUgaW50 ZXJydXB0cyBwcm9wZXJ0eS4KKworU2lnbmVkLW9mZi1ieTogQ2hhbmdodWFuZyBMaWFuZyA8Y2hh bmdodWFuZy5saWFuZ0BzdGFyZml2ZXRlY2guY29tPgorUmV2aWV3ZWQtYnk6IFdhbGtlciBDaGVu IDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9zb2Mvc3RhcmZp dmUvamg3MXh4X3BtdS5jIHwgODkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQorIDEg ZmlsZSBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL2RyaXZlcnMvc29jL3N0YXJmaXZlL2poNzF4eF9wbXUuYyBiL2RyaXZlcnMvc29jL3N0 YXJmaXZlL2poNzF4eF9wbXUuYworaW5kZXggN2Q1ZjUwZDcxYzBkLi4wZGJkY2MwZDJjOTEgMTAw NjQ0CistLS0gYS9kcml2ZXJzL3NvYy9zdGFyZml2ZS9qaDcxeHhfcG11LmMKKysrKyBiL2RyaXZl cnMvc29jL3N0YXJmaXZlL2poNzF4eF9wbXUuYworQEAgLTUxLDkgKzUxLDE3IEBAIHN0cnVjdCBq aDcxeHhfZG9tYWluX2luZm8geworIAl1OCBiaXQ7CisgfTsKKyAKKytzdHJ1Y3Qgamg3MXh4X3Bt dTsKKytzdHJ1Y3Qgamg3MXh4X3BtdV9kZXY7CisrCisgc3RydWN0IGpoNzF4eF9wbXVfbWF0Y2hf ZGF0YSB7CisgCWNvbnN0IHN0cnVjdCBqaDcxeHhfZG9tYWluX2luZm8gKmRvbWFpbl9pbmZvOwor IAlpbnQgbnVtX2RvbWFpbnM7CisrCXVuc2lnbmVkIGludCBwbXVfc3RhdHVzOworKwlpbnQgKCpw bXVfcGFyc2VfaXJxKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorKwkJCSAgICAgc3Ry dWN0IGpoNzF4eF9wbXUgKnBtdSk7CisrCWludCAoKnBtdV9zZXRfc3RhdGUpKHN0cnVjdCBqaDcx eHhfcG11X2RldiAqcG1kLAorKwkJCSAgICAgdTMyIG1hc2ssIGJvb2wgb24pOworIH07CisgCisg c3RydWN0IGpoNzF4eF9wbXUgeworQEAgLTc5LDEyICs4NywxMiBAQCBzdGF0aWMgaW50IGpoNzF4 eF9wbXVfZ2V0X3N0YXRlKHN0cnVjdCBqaDcxeHhfcG11X2RldiAqcG1kLCB1MzIgbWFzaywgYm9v bCAqaXNfbworIAlpZiAoIW1hc2spCisgCQlyZXR1cm4gLUVJTlZBTDsKKyAKKy0JKmlzX29uID0g cmVhZGwocG11LT5iYXNlICsgSkg3MVhYX1BNVV9DVVJSX1BPV0VSX01PREUpICYgbWFzazsKKysJ KmlzX29uID0gcmVhZGwocG11LT5iYXNlICsgcG11LT5tYXRjaF9kYXRhLT5wbXVfc3RhdHVzKSAm IG1hc2s7CisgCisgCXJldHVybiAwOworIH0KKyAKKy1zdGF0aWMgaW50IGpoNzF4eF9wbXVfc2V0 X3N0YXRlKHN0cnVjdCBqaDcxeHhfcG11X2RldiAqcG1kLCB1MzIgbWFzaywgYm9vbCBvbikKKytz dGF0aWMgaW50IGpoNzExMF9wbXVfc2V0X3N0YXRlKHN0cnVjdCBqaDcxeHhfcG11X2RldiAqcG1k LCB1MzIgbWFzaywgYm9vbCBvbikKKyB7CisgCXN0cnVjdCBqaDcxeHhfcG11ICpwbXUgPSBwbWQt PnBtdTsKKyAJdW5zaWduZWQgbG9uZyBmbGFnczsKK0BAIC05MiwyMiArMTAwLDggQEAgc3RhdGlj IGludCBqaDcxeHhfcG11X3NldF9zdGF0ZShzdHJ1Y3Qgamg3MXh4X3BtdV9kZXYgKnBtZCwgdTMy IG1hc2ssIGJvb2wgb24pCisgCXUzMiBtb2RlOworIAl1MzIgZW5jb3VyYWdlX2xvOworIAl1MzIg ZW5jb3VyYWdlX2hpOworLQlib29sIGlzX29uOworIAlpbnQgcmV0OworIAorLQlyZXQgPSBqaDcx eHhfcG11X2dldF9zdGF0ZShwbWQsIG1hc2ssICZpc19vbik7CistCWlmIChyZXQpIHsKKy0JCWRl dl9kYmcocG11LT5kZXYsICJ1bmFibGUgdG8gZ2V0IGN1cnJlbnQgc3RhdGUgZm9yICVzXG4iLAor LQkJCXBtZC0+Z2VucGQubmFtZSk7CistCQlyZXR1cm4gcmV0OworLQl9CistCistCWlmIChpc19v biA9PSBvbikgeworLQkJZGV2X2RiZyhwbXUtPmRldiwgInBtIGRvbWFpbiBbJXNdIGlzIGFscmVh ZHkgJXNhYmxlIHN0YXR1cy5cbiIsCistCQkJcG1kLT5nZW5wZC5uYW1lLCBvbiA/ICJlbiIgOiAi ZGlzIik7CistCQlyZXR1cm4gMDsKKy0JfQorLQorIAlzcGluX2xvY2tfaXJxc2F2ZSgmcG11LT5s b2NrLCBmbGFncyk7CisgCisgCS8qCitAQCAtMTY2LDYgKzE2MCwyOSBAQCBzdGF0aWMgaW50IGpo NzF4eF9wbXVfc2V0X3N0YXRlKHN0cnVjdCBqaDcxeHhfcG11X2RldiAqcG1kLCB1MzIgbWFzaywg Ym9vbCBvbikKKyAJcmV0dXJuIDA7CisgfQorIAorK3N0YXRpYyBpbnQgamg3MXh4X3BtdV9zZXRf c3RhdGUoc3RydWN0IGpoNzF4eF9wbXVfZGV2ICpwbWQsIHUzMiBtYXNrLCBib29sIG9uKQorK3sK KysJc3RydWN0IGpoNzF4eF9wbXUgKnBtdSA9IHBtZC0+cG11OworKwljb25zdCBzdHJ1Y3Qgamg3 MXh4X3BtdV9tYXRjaF9kYXRhICptYXRjaF9kYXRhID0gcG11LT5tYXRjaF9kYXRhOworKwlib29s IGlzX29uOworKwlpbnQgcmV0OworKworKwlyZXQgPSBqaDcxeHhfcG11X2dldF9zdGF0ZShwbWQs IG1hc2ssICZpc19vbik7CisrCWlmIChyZXQpIHsKKysJCWRldl9kYmcocG11LT5kZXYsICJ1bmFi bGUgdG8gZ2V0IGN1cnJlbnQgc3RhdGUgZm9yICVzXG4iLAorKwkJCXBtZC0+Z2VucGQubmFtZSk7 CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCWlmIChpc19vbiA9PSBvbikgeworKwkJZGV2X2Ri ZyhwbXUtPmRldiwgInBtIGRvbWFpbiBbJXNdIGlzIGFscmVhZHkgJXNhYmxlIHN0YXR1cy5cbiIs CisrCQkJcG1kLT5nZW5wZC5uYW1lLCBvbiA/ICJlbiIgOiAiZGlzIik7CisrCQlyZXR1cm4gMDsK KysJfQorKworKwlyZXR1cm4gbWF0Y2hfZGF0YS0+cG11X3NldF9zdGF0ZShwbWQsIG1hc2ssIG9u KTsKKyt9CisrCisgc3RhdGljIGludCBqaDcxeHhfcG11X29uKHN0cnVjdCBnZW5lcmljX3BtX2Rv bWFpbiAqZ2VucGQpCisgeworIAlzdHJ1Y3Qgamg3MXh4X3BtdV9kZXYgKnBtZCA9IGNvbnRhaW5l cl9vZihnZW5wZCwKK0BAIC0yMjYsNiArMjQzLDI1IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBqaDcx eHhfcG11X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkYXRhKQorIAlyZXR1cm4gSVJRX0hBTkRM RUQ7CisgfQorIAorK3N0YXRpYyBpbnQgamg3MTEwX3BtdV9wYXJzZV9pcnEoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiwgc3RydWN0IGpoNzF4eF9wbXUgKnBtdSkKKyt7CisrCXN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisrCWludCByZXQ7CisrCisrCXBtdS0+aXJxID0gcGxh dGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKysJaWYgKHBtdS0+aXJxIDwgMCkKKysJCXJldHVybiBw bXUtPmlycTsKKysKKysJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIHBtdS0+aXJxLCBqaDcx eHhfcG11X2ludGVycnVwdCwKKysJCQkgICAgICAgMCwgcGRldi0+bmFtZSwgcG11KTsKKysJaWYg KHJldCkKKysJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgaXJxXG4iKTsKKysKKysJ amg3MXh4X3BtdV9pbnRfZW5hYmxlKHBtdSwgSkg3MVhYX1BNVV9JTlRfQUxMX01BU0sgJiB+Skg3 MVhYX1BNVV9JTlRfUENIX0ZBSUwsIHRydWUpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisgc3Rh dGljIGludCBqaDcxeHhfcG11X2luaXRfZG9tYWluKHN0cnVjdCBqaDcxeHhfcG11ICpwbXUsIGlu dCBpbmRleCkKKyB7CisgCXN0cnVjdCBqaDcxeHhfcG11X2RldiAqcG1kOworQEAgLTI3NSwxOSAr MzExLDE4IEBAIHN0YXRpYyBpbnQgamg3MXh4X3BtdV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQorIAlpZiAoSVNfRVJSKHBtdS0+YmFzZSkpCisgCQlyZXR1cm4gUFRSX0VSUihw bXUtPmJhc2UpOworIAorLQlwbXUtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Cist CWlmIChwbXUtPmlycSA8IDApCistCQlyZXR1cm4gcG11LT5pcnE7CistCistCXJldCA9IGRldm1f cmVxdWVzdF9pcnEoZGV2LCBwbXUtPmlycSwgamg3MXh4X3BtdV9pbnRlcnJ1cHQsCistCQkJICAg ICAgIDAsIHBkZXYtPm5hbWUsIHBtdSk7CistCWlmIChyZXQpCistCQlkZXZfZXJyKGRldiwgImZh aWxlZCB0byByZXF1ZXN0IGlycVxuIik7CisrCXNwaW5fbG9ja19pbml0KCZwbXUtPmxvY2spOwor IAorIAltYXRjaF9kYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CisgCWlmICgh bWF0Y2hfZGF0YSkKKyAJCXJldHVybiAtRUlOVkFMOworIAorKwlyZXQgPSBtYXRjaF9kYXRhLT5w bXVfcGFyc2VfaXJxKHBkZXYsIHBtdSk7CisrCWlmIChyZXQpIHsKKysJCWRldl9lcnIoZGV2LCAi ZmFpbGVkIHRvIHBhcnNlIGlycVxuIik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisgCXBtdS0+ Z2VucGQgPSBkZXZtX2tjYWxsb2MoZGV2LCBtYXRjaF9kYXRhLT5udW1fZG9tYWlucywKKyAJCQkJ ICBzaXplb2Yoc3RydWN0IGdlbmVyaWNfcG1fZG9tYWluICopLAorIAkJCQkgIEdGUF9LRVJORUwp OworQEAgLTMwNyw5ICszNDIsNiBAQCBzdGF0aWMgaW50IGpoNzF4eF9wbXVfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyAJCX0KKyAJfQorIAorLQlzcGluX2xvY2tfaW5pdCgm cG11LT5sb2NrKTsKKy0Jamg3MXh4X3BtdV9pbnRfZW5hYmxlKHBtdSwgSkg3MVhYX1BNVV9JTlRf QUxMX01BU0sgJiB+Skg3MVhYX1BNVV9JTlRfUENIX0ZBSUwsIHRydWUpOworLQorIAlyZXQgPSBv Zl9nZW5wZF9hZGRfcHJvdmlkZXJfb25lY2VsbChucCwgJnBtdS0+Z2VucGRfZGF0YSk7CisgCWlm IChyZXQpIHsKKyAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGdlbnBkIGRyaXZl cjogJWRcbiIsIHJldCk7CitAQCAtMzU3LDYgKzM4OSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg amg3MXh4X2RvbWFpbl9pbmZvIGpoNzExMF9wb3dlcl9kb21haW5zW10gPSB7Cisgc3RhdGljIGNv bnN0IHN0cnVjdCBqaDcxeHhfcG11X21hdGNoX2RhdGEgamg3MTEwX3BtdSA9IHsKKyAJLm51bV9k b21haW5zID0gQVJSQVlfU0laRShqaDcxMTBfcG93ZXJfZG9tYWlucyksCisgCS5kb21haW5faW5m byA9IGpoNzExMF9wb3dlcl9kb21haW5zLAorKwkucG11X3N0YXR1cyA9IEpINzFYWF9QTVVfQ1VS Ul9QT1dFUl9NT0RFLAorKwkucG11X3BhcnNlX2lycSA9IGpoNzExMF9wbXVfcGFyc2VfaXJxLAor KwkucG11X3NldF9zdGF0ZSA9IGpoNzExMF9wbXVfc2V0X3N0YXRlLAorIH07CisgCisgc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgamg3MXh4X3BtdV9vZl9tYXRjaFtdID0geworLS0g CisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzYtc29j LXN0YXJmaXZlLUFkZC1KSDcxMTAtQU9OLVBNVS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9saW51 eDYuNC9wYXRjaGVzLzAwMzYtc29jLXN0YXJmaXZlLUFkZC1KSDcxMTAtQU9OLVBNVS1zdXBwb3J0 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjc2MTY3ZTMz N2E4MzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzNi1z b2Mtc3RhcmZpdmUtQWRkLUpINzExMC1BT04tUE1VLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwx MjMgQEAKK0Zyb20gMGRiNjExODhlNTIxY2M2NGUzOWNiZWJiYTgxNGM5YjQwZGJlMWMyYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENoYW5naHVhbmcgTGlhbmcgPGNoYW5naHVhbmcu bGlhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFRodSwgMTggTWF5IDIwMjMgMjM6MDI6MDIg LTA3MDAKK1N1YmplY3Q6IFtQQVRDSCAzNi83Ml0gc29jOiBzdGFyZml2ZTogQWRkIEpINzExMCBB T04gUE1VIHN1cHBvcnQKKworQWRkIEFPTiBQTVUgZm9yIFN0YXJGaXZlIEpINzExMCBTb0MuIEl0 IGNhbiBiZSB1c2VkIHRvIHR1cm4gb24vb2ZmIHRoZQorZHBoeSByeC90eCBwb3dlciBzd2l0Y2gu CisKK1Jldmlld2VkLWJ5OiBXYWxrZXIgQ2hlbiA8d2Fsa2VyLmNoZW5Ac3RhcmZpdmV0ZWNoLmNv bT4KK1NpZ25lZC1vZmYtYnk6IENoYW5naHVhbmcgTGlhbmcgPGNoYW5naHVhbmcubGlhbmdAc3Rh cmZpdmV0ZWNoLmNvbT4KKy0tLQorIGRyaXZlcnMvc29jL3N0YXJmaXZlL2poNzF4eF9wbXUuYyB8 IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNTIg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29j L3N0YXJmaXZlL2poNzF4eF9wbXUuYyBiL2RyaXZlcnMvc29jL3N0YXJmaXZlL2poNzF4eF9wbXUu YworaW5kZXggMGRiZGNjMGQyYzkxLi5jN2I0NzQ0MDljZjcgMTAwNjQ0CistLS0gYS9kcml2ZXJz L3NvYy9zdGFyZml2ZS9qaDcxeHhfcG11LmMKKysrKyBiL2RyaXZlcnMvc29jL3N0YXJmaXZlL2po NzF4eF9wbXUuYworQEAgLTIsNyArMiw3IEBACisgLyoKKyAgKiBTdGFyRml2ZSBKSDcxWFggUE1V IChQb3dlciBNYW5hZ2VtZW50IFVuaXQpIENvbnRyb2xsZXIgRHJpdmVyCisgICoKKy0gKiBDb3B5 cmlnaHQgKEMpIDIwMjIgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKiBDb3B5cmln aHQgKEMpIDIwMjItMjAyMyBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorICAqLworIAor ICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KK0BAIC0yNCw2ICsyNCw5IEBACisgI2RlZmlu ZSBKSDcxWFhfUE1VX0VWRU5UX1NUQVRVUwkJMHg4OAorICNkZWZpbmUgSkg3MVhYX1BNVV9JTlRf U1RBVFVTCQkweDhDCisgCisrLyogYW9uIHBtdSByZWdpc3RlciBvZmZzZXQgKi8KKysjZGVmaW5l IEpINzFYWF9BT05fUE1VX1NXSVRDSAkJMHgwMAorKworIC8qIHN3IGVuY291cmFnZSBjZmcgKi8K KyAjZGVmaW5lIEpINzFYWF9QTVVfU1dfRU5DT1VSQUdFX0VOX0xPCTB4MDUKKyAjZGVmaW5lIEpI NzFYWF9QTVVfU1dfRU5DT1VSQUdFX0VOX0hJCTB4NTAKK0BAIC0xNjAsNiArMTYzLDI2IEBAIHN0 YXRpYyBpbnQgamg3MTEwX3BtdV9zZXRfc3RhdGUoc3RydWN0IGpoNzF4eF9wbXVfZGV2ICpwbWQs IHUzMiBtYXNrLCBib29sIG9uKQorIAlyZXR1cm4gMDsKKyB9CisgCisrc3RhdGljIGludCBqaDcx MTBfYW9uX3BtdV9zZXRfc3RhdGUoc3RydWN0IGpoNzF4eF9wbXVfZGV2ICpwbWQsIHUzMiBtYXNr LCBib29sIG9uKQorK3sKKysJc3RydWN0IGpoNzF4eF9wbXUgKnBtdSA9IHBtZC0+cG11OworKwl1 bnNpZ25lZCBsb25nIGZsYWdzOworKwl1MzIgdmFsOworKworKwlzcGluX2xvY2tfaXJxc2F2ZSgm cG11LT5sb2NrLCBmbGFncyk7CisrCXZhbCA9IHJlYWRsKHBtdS0+YmFzZSArIEpINzFYWF9BT05f UE1VX1NXSVRDSCk7CisrCisrCWlmIChvbikKKysJCXZhbCB8PSBtYXNrOworKwllbHNlCisrCQl2 YWwgJj0gfm1hc2s7CisrCisrCXdyaXRlbCh2YWwsIHBtdS0+YmFzZSArIEpINzFYWF9BT05fUE1V X1NXSVRDSCk7CisrCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBtdS0+bG9jaywgZmxhZ3MpOwor KworKwlyZXR1cm4gMDsKKyt9CisrCisgc3RhdGljIGludCBqaDcxeHhfcG11X3NldF9zdGF0ZShz dHJ1Y3Qgamg3MXh4X3BtdV9kZXYgKnBtZCwgdTMyIG1hc2ssIGJvb2wgb24pCisgeworIAlzdHJ1 Y3Qgamg3MXh4X3BtdSAqcG11ID0gcG1kLT5wbXU7CitAQCAtMzE3LDEwICszNDAsMTIgQEAgc3Rh dGljIGludCBqaDcxeHhfcG11X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisg CWlmICghbWF0Y2hfZGF0YSkKKyAJCXJldHVybiAtRUlOVkFMOworIAorLQlyZXQgPSBtYXRjaF9k YXRhLT5wbXVfcGFyc2VfaXJxKHBkZXYsIHBtdSk7CistCWlmIChyZXQpIHsKKy0JCWRldl9lcnIo ZGV2LCAiZmFpbGVkIHRvIHBhcnNlIGlycVxuIik7CistCQlyZXR1cm4gcmV0OworKwlpZiAobWF0 Y2hfZGF0YS0+cG11X3BhcnNlX2lycSkgeworKwkJcmV0ID0gbWF0Y2hfZGF0YS0+cG11X3BhcnNl X2lycShwZGV2LCBwbXUpOworKwkJaWYgKHJldCkgeworKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVk IHRvIHBhcnNlIGlycVxuIik7CisrCQkJcmV0dXJuIHJldDsKKysJCX0KKyAJfQorIAorIAlwbXUt PmdlbnBkID0gZGV2bV9rY2FsbG9jKGRldiwgbWF0Y2hfZGF0YS0+bnVtX2RvbWFpbnMsCitAQCAt Mzk0LDEwICs0MTksMzEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBqaDcxeHhfcG11X21hdGNoX2Rh dGEgamg3MTEwX3BtdSA9IHsKKyAJLnBtdV9zZXRfc3RhdGUgPSBqaDcxMTBfcG11X3NldF9zdGF0 ZSwKKyB9OworIAorK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MXh4X2RvbWFpbl9pbmZvIGpoNzEx MF9hb25fcG93ZXJfZG9tYWluc1tdID0geworKwlbSkg3MTEwX1BEX0RQSFlfVFhdID0geworKwkJ Lm5hbWUgPSAiRFBIWS1UWCIsCisrCQkuYml0ID0gMzAsCisrCX0sCisrCVtKSDcxMTBfUERfRFBI WV9SWF0gPSB7CisrCQkubmFtZSA9ICJEUEhZLVJYIiwKKysJCS5iaXQgPSAzMSwKKysJfSwKKyt9 OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgamg3MXh4X3BtdV9tYXRjaF9kYXRhIGpoNzExMF9h b25fcG11ID0geworKwkubnVtX2RvbWFpbnMgPSBBUlJBWV9TSVpFKGpoNzExMF9hb25fcG93ZXJf ZG9tYWlucyksCisrCS5kb21haW5faW5mbyA9IGpoNzExMF9hb25fcG93ZXJfZG9tYWlucywKKysJ LnBtdV9zdGF0dXMgPSBKSDcxWFhfQU9OX1BNVV9TV0lUQ0gsCisrCS5wbXVfc2V0X3N0YXRlID0g amg3MTEwX2Fvbl9wbXVfc2V0X3N0YXRlLAorK307CisrCisgc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgamg3MXh4X3BtdV9vZl9tYXRjaFtdID0geworIAl7CisgCQkuY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMTAtcG11IiwKKyAJCS5kYXRhID0gKHZvaWQgKikmamg3MTEwX3Bt dSwKKysJfSwgeworKwkJLmNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWFvbi1zeXNjb24i LAorKwkJLmRhdGEgPSAodm9pZCAqKSZqaDcxMTBfYW9uX3BtdSwKKyAJfSwgeworIAkJLyogc2Vu dGluZWwgKi8KKyAJfQorQEAgLTQxNCw1ICs0NjAsNiBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBqaDcxeHhfcG11X2RyaXZlciA9IHsKKyBidWlsdGluX3BsYXRmb3JtX2RyaXZlcihq aDcxeHhfcG11X2RyaXZlcik7CisgCisgTU9EVUxFX0FVVEhPUigiV2Fsa2VyIENoZW4gPHdhbGtl ci5jaGVuQHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0FVVEhPUigiQ2hhbmdodWFuZyBM aWFuZyA8Y2hhbmdodWFuZy5saWFuZ0BzdGFyZml2ZXRlY2guY29tPiIpOworIE1PRFVMRV9ERVND UklQVElPTigiU3RhckZpdmUgSkg3MVhYIFBNVSBEcml2ZXIiKTsKKyBNT0RVTEVfTElDRU5TRSgi R1BMIik7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNo ZXMvMDAzNy1kdC1iaW5kaW5ncy1waHktQWRkLXN0YXJmaXZlLWpoNzExMC1kcGh5LXJ4LnBhdGNo IGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzctZHQtYmluZGluZ3MtcGh5LUFkZC1zdGFy Zml2ZS1qaDcxMTAtZHBoeS1yeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi45OGM5YmFhYzA0YjM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51 eDYuNC9wYXRjaGVzLzAwMzctZHQtYmluZGluZ3MtcGh5LUFkZC1zdGFyZml2ZS1qaDcxMTAtZHBo eS1yeC5wYXRjaApAQCAtMCwwICsxLDk0IEBACitGcm9tIDMzOTRmZGQ2NjVkYmM0MTllNGVmYTc1 Mjg1YWRjZjQ1Y2UwMzY5NDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaGFuZ2h1 YW5nIExpYW5nIDxjaGFuZ2h1YW5nLmxpYW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBNb24s IDI5IE1heSAyMDIzIDA1OjE1OjAxIC0wNzAwCitTdWJqZWN0OiBbUEFUQ0ggMzcvNzJdIGR0LWJp bmRpbmdzOiBwaHk6IEFkZCBzdGFyZml2ZSxqaDcxMTAtZHBoeS1yeAorCitTdGFyRml2ZSBTb0Nz IGxpa2UgdGhlIGpoNzExMCB1c2UgYSBNSVBJIEQtUEhZIFJYIGNvbnRyb2xsZXIgYmFzZWQgb24K K2EgTTMxIElQLiBBZGQgYSBiaW5kaW5nIGZvciBpdC4KKworU2lnbmVkLW9mZi1ieTogQ2hhbmdo dWFuZyBMaWFuZyA8Y2hhbmdodWFuZy5saWFuZ0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4u L2JpbmRpbmdzL3BoeS9zdGFyZml2ZSxqaDcxMTAtZHBoeS1yeC55YW1sIHwgNzEgKysrKysrKysr KysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvc3RhcmZpdmUs amg3MTEwLWRwaHktcngueWFtbAorCitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL3BoeS9zdGFyZml2ZSxqaDcxMTAtZHBoeS1yeC55YW1sIGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9zdGFyZml2ZSxqaDcxMTAtZHBoeS1yeC55YW1s CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi40NmZkMzcwMTg4ZTgK Ky0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9w aHkvc3RhcmZpdmUsamg3MTEwLWRwaHktcngueWFtbAorQEAgLTAsMCArMSw3MSBAQAorKyMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0yLUNsYXVzZSkKKyslWUFNTCAx LjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BoeS9zdGFyZml2 ZSxqaDcxMTAtZHBoeS1yeC55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9t ZXRhLXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBTdGFyRml2ZSBTb0MgTUlQSSBELVBI WSBSeCBDb250cm9sbGVyCisrCisrbWFpbnRhaW5lcnM6CisrICAtIEphY2sgWmh1IDxqYWNrLnpo dUBzdGFyZml2ZXRlY2guY29tPgorKyAgLSBDaGFuZ2h1YW5nIExpYW5nIDxjaGFuZ2h1YW5nLmxp YW5nQHN0YXJmaXZldGVjaC5jb20+CisrCisrZGVzY3JpcHRpb246CisrICBUaGUgU3RhckZpdmUg U29DIHVzZXMgdGhlIE1JUEkgQ1NJIEQtUEhZIGJhc2VkIG9uIE0zMSBJUCB0byB0cmFuc2Zlcgor KyAgQ1NJIGNhbWVyYSBkYXRhLgorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAg ICBjb25zdDogc3RhcmZpdmUsamg3MTEwLWRwaHktcngKKysKKysgIHJlZzoKKysgICAgbWF4SXRl bXM6IDEKKysKKysgIGNsb2NrczoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjog Y29uZmlnIGNsb2NrCisrICAgICAgLSBkZXNjcmlwdGlvbjogcmVmZXJlbmNlIGNsb2NrCisrICAg ICAgLSBkZXNjcmlwdGlvbjogZXNjYXBlIG1vZGUgdHJhbnNtaXQgY2xvY2sKKysKKysgIGNsb2Nr LW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBjZmcKKysgICAgICAtIGNvbnN0 OiByZWYKKysgICAgICAtIGNvbnN0OiB0eAorKworKyAgcmVzZXRzOgorKyAgICBpdGVtczoKKysg ICAgICAtIGRlc2NyaXB0aW9uOiBEUEhZX0hXIHJlc2V0CisrICAgICAgLSBkZXNjcmlwdGlvbjog RFBIWV9CMDlfQUxXQVlTX09OIHJlc2V0CisrCisrICBwb3dlci1kb21haW5zOgorKyAgICBtYXhJ dGVtczogMQorKworKyAgIiNwaHktY2VsbHMiOgorKyAgICBjb25zdDogMAorKworK3JlcXVpcmVk OgorKyAgLSBjb21wYXRpYmxlCisrICAtIHJlZworKyAgLSBjbG9ja3MKKysgIC0gY2xvY2stbmFt ZXMKKysgIC0gcmVzZXRzCisrICAtIHBvd2VyLWRvbWFpbnMKKysgIC0gIiNwaHktY2VsbHMiCisr CisrYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysg ICAgcGh5QDE5ODIwMDAwIHsKKysgICAgICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1k cGh5LXJ4IjsKKysgICAgICByZWcgPSA8MHgxOTgyMDAwMCAweDEwMDAwPjsKKysgICAgICBjbG9j a3MgPSA8JmlzcGNyZyAzPiwKKysgICAgICAgICAgICAgICA8JmlzcGNyZyA0PiwKKysgICAgICAg ICAgICAgICA8JmlzcGNyZyA1PjsKKysgICAgICBjbG9jay1uYW1lcyA9ICJjZmciLCAicmVmIiwg InR4IjsKKysgICAgICByZXNldHMgPSA8JmlzcGNyZyAyPiwKKysgICAgICAgICAgICAgICA8Jmlz cGNyZyAzPjsKKysgICAgICBwb3dlci1kb21haW5zID0gPCZkcGh5X3B3cmMgMT47CisrICAgICAg I3BoeS1jZWxscyA9IDwwPjsKKysgICAgfTsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDM4LXBoeS1zdGFyZml2ZS1BZGQtbWlwaS1kcGh5LXJ4 LXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzOC1waHktc3RhcmZp dmUtQWRkLW1pcGktZHBoeS1yeC1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLmUzODY1YTQwOTI2MjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xpbnV4Ni40L3BhdGNoZXMvMDAzOC1waHktc3RhcmZpdmUtQWRkLW1pcGktZHBoeS1yeC1z dXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsMzgwIEBACitGcm9tIGU4MzZmMDk0MWMzNWUyODViNGU1 YjllM2U0MTNmZGFjOGE5MDMwNDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaGFu Z2h1YW5nIExpYW5nIDxjaGFuZ2h1YW5nLmxpYW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBN b24sIDI5IE1heSAyMDIzIDA1OjE1OjAyIC0wNzAwCitTdWJqZWN0OiBbUEFUQ0ggMzgvNzJdIHBo eTogc3RhcmZpdmU6IEFkZCBtaXBpIGRwaHkgcnggc3VwcG9ydAorCitBZGQgbWlwaSBkcGh5IHJ4 IHN1cHBvcnQgZm9yIHRoZSBTdGFyRml2ZSBKSDcxMTAgU29DLiBJdCBpcyB1c2VkIHRvCit0cmFu c2ZlciBDU0kgY2FtZXJhIGRhdGEuCisKK1NpZ25lZC1vZmYtYnk6IENoYW5naHVhbmcgTGlhbmcg PGNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGRyaXZlcnMvcGh5L0tj b25maWcgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKworIGRyaXZlcnMvcGh5L01ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKworIGRyaXZlcnMvcGh5L3N0YXJmaXZl L0tjb25maWcgICAgICAgICAgICAgICAgfCAgMTMgKworIGRyaXZlcnMvcGh5L3N0YXJmaXZlL01h a2VmaWxlICAgICAgICAgICAgICAgfCAgIDIgKworIGRyaXZlcnMvcGh5L3N0YXJmaXZlL3BoeS1z dGFyZml2ZS1kcGh5LXJ4LmMgfCAzMDAgKysrKysrKysrKysrKysrKysrKysKKyA1IGZpbGVzIGNo YW5nZWQsIDMxNyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGh5 L3N0YXJmaXZlL0tjb25maWcKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waHkvc3RhcmZp dmUvTWFrZWZpbGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waHkvc3RhcmZpdmUvcGh5 LXN0YXJmaXZlLWRwaHktcnguYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvS2NvbmZpZyBi L2RyaXZlcnMvcGh5L0tjb25maWcKK2luZGV4IGY0NmUzMTQ4ZDI4Ni4uMDAwMDE0OWVkYmM0IDEw MDY0NAorLS0tIGEvZHJpdmVycy9waHkvS2NvbmZpZworKysrIGIvZHJpdmVycy9waHkvS2NvbmZp ZworQEAgLTkxLDYgKzkxLDcgQEAgc291cmNlICJkcml2ZXJzL3BoeS9yb2NrY2hpcC9LY29uZmln IgorIHNvdXJjZSAiZHJpdmVycy9waHkvc2Ftc3VuZy9LY29uZmlnIgorIHNvdXJjZSAiZHJpdmVy cy9waHkvc29jaW9uZXh0L0tjb25maWciCisgc291cmNlICJkcml2ZXJzL3BoeS9zdC9LY29uZmln IgorK3NvdXJjZSAiZHJpdmVycy9waHkvc3RhcmZpdmUvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZl cnMvcGh5L3N1bnBsdXMvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvcGh5L3RlZ3JhL0tjb25m aWciCisgc291cmNlICJkcml2ZXJzL3BoeS90aS9LY29uZmlnIgorZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGh5L01ha2VmaWxlIGIvZHJpdmVycy9waHkvTWFrZWZpbGUKK2luZGV4IDU0ZjMxMmMxMGE0 MC4uZmIzZGM5ZGU2MTExIDEwMDY0NAorLS0tIGEvZHJpdmVycy9waHkvTWFrZWZpbGUKKysrKyBi L2RyaXZlcnMvcGh5L01ha2VmaWxlCitAQCAtMzEsNiArMzEsNyBAQCBvYmoteQkJCQkJKz0gYWxs d2lubmVyLwlcCisgCQkJCQkgICBzYW1zdW5nLwlcCisgCQkJCQkgICBzb2Npb25leHQvCVwKKyAJ CQkJCSAgIHN0LwkJXAorKwkJCQkJICAgc3RhcmZpdmUvCVwKKyAJCQkJCSAgIHN1bnBsdXMvCVwK KyAJCQkJCSAgIHRlZ3JhLwlcCisgCQkJCQkgICB0aS8JCVwKK2RpZmYgLS1naXQgYS9kcml2ZXJz L3BoeS9zdGFyZml2ZS9LY29uZmlnIGIvZHJpdmVycy9waHkvc3RhcmZpdmUvS2NvbmZpZworbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZjk4OWI4ZmY4YmNiCistLS0g L2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9LY29uZmlnCitAQCAtMCwwICsx LDEzIEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisrIworKyMg UGh5IGRyaXZlcnMgZm9yIFN0YXJGaXZlIHBsYXRmb3JtcworKyMKKysKKytjb25maWcgUEhZX1NU QVJGSVZFX0RQSFlfUlgKKysJdHJpc3RhdGUgIlN0YXJGaXZlIEQtUEhZIFJYIFN1cHBvcnQiCisr CXNlbGVjdCBHRU5FUklDX1BIWQorKwlzZWxlY3QgR0VORVJJQ19QSFlfTUlQSV9EUEhZCisrCWhl bHAKKysJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBTdGFyRml2ZSBELVBIWSBp biB5b3VyCisrCSAgc3lzdGVtLiBJZiBNIGlzIHNlbGVjdGVkLCB0aGUgbW9kdWxlIHdpbGwgYmUg Y2FsbGVkCisrCSAgcGh5LXN0YXJmaXZlLWRwaHktcnguCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9w aHkvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9NYWtlZmlsZQorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uN2VjNTc2Y2IzMGFlCistLS0g L2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9NYWtlZmlsZQorQEAgLTAsMCAr MSwyIEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorK29iai0kKENPTkZJ R19QSFlfU1RBUkZJVkVfRFBIWV9SWCkgICAgICArPSBwaHktc3RhcmZpdmUtZHBoeS1yeC5vCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvc3RhcmZpdmUvcGh5LXN0YXJmaXZlLWRwaHktcnguYyBi L2RyaXZlcnMvcGh5L3N0YXJmaXZlL3BoeS1zdGFyZml2ZS1kcGh5LXJ4LmMKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjY5NzRlZDkwNGQwZAorLS0tIC9kZXYvbnVs bAorKysrIGIvZHJpdmVycy9waHkvc3RhcmZpdmUvcGh5LXN0YXJmaXZlLWRwaHktcnguYworQEAg LTAsMCArMSwzMDAgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKysv KgorKyAqIERQSFkgZHJpdmVyIGZvciB0aGUgU3RhckZpdmUgSkg3MTEwIFNvQworKyAqCisrICog Q29weXJpZ2h0IChDKSAyMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICovCisr CisrI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+CisrI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5o PgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGludXgvaW8uaD4KKysjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mLmg+CisrI2luY2x1ZGUg PGxpbnV4L3BoeS9waHkuaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cisr I2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKysjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4K KysKKysjZGVmaW5lIFNURl9EUEhZX0FQQkNGR1NBSUZfU1lTQ0ZHKHgpCQkoeCkKKysKKysjZGVm aW5lIFNURl9EUEhZX0RBX0NEUEhZX1IxMDBfQ1RSTDBfMkQxQ19FRlVTRV9FTiBCSVQoNikKKysj ZGVmaW5lIFNURl9EUEhZX0RBX0NEUEhZX1IxMDBfQ1RSTDBfMkQxQ19FRlVTRV9JTiBHRU5NQVNL KDEyLCA3KQorKyNkZWZpbmUgU1RGX0RQSFlfREFfQ0RQSFlfUjEwMF9DVFJMMV8yRDFDX0VGVVNF X0VOIEJJVCgxOSkKKysjZGVmaW5lIFNURl9EUEhZX0RBX0NEUEhZX1IxMDBfQ1RSTDFfMkQxQ19F RlVTRV9JTiBHRU5NQVNLKDI1LCAyMCkKKysKKysjZGVmaW5lIFNURl9EUEhZX0RBVEFfQlVTMTZf OAkJCUJJVCg4KQorKyNkZWZpbmUgU1RGX0RQSFlfREVCVUdfTU9ERV9TRUwJCQlHRU5NQVNLKDE1 LCA5KQorKworKyNkZWZpbmUgU1RGX0RQSFlfRU5BQkxFX0NMSwkJCUJJVCg2KQorKyNkZWZpbmUg U1RGX0RQSFlfRU5BQkxFX0NMSzEJCQlCSVQoNykKKysjZGVmaW5lIFNURl9EUEhZX0VOQUJMRV9M QU4wCQkJQklUKDgpCisrI2RlZmluZSBTVEZfRFBIWV9FTkFCTEVfTEFOMQkJCUJJVCg5KQorKyNk ZWZpbmUgU1RGX0RQSFlfRU5BQkxFX0xBTjIJCQlCSVQoMTApCisrI2RlZmluZSBTVEZfRFBIWV9F TkFCTEVfTEFOMwkJCUJJVCgxMSkKKysjZGVmaW5lIFNURl9EUEhZX0dQSV9FTgkJCQlHRU5NQVNL KDE3LCAxMikKKysjZGVmaW5lIFNURl9EUEhZX0hTX0ZSRVFfQ0hBTkdFX0NMSwkJQklUKDE4KQor KyNkZWZpbmUgU1RGX0RQSFlfSFNfRlJFUV9DSEFOR0VfQ0xLMQkJQklUKDE5KQorKyNkZWZpbmUg U1RGX0RQSFlfTEFORV9TV0FQX0NMSwkJCUdFTk1BU0soMjIsIDIwKQorKyNkZWZpbmUgU1RGX0RQ SFlfTEFORV9TV0FQX0NMSzEJCQlHRU5NQVNLKDI1LCAyMykKKysjZGVmaW5lIFNURl9EUEhZX0xB TkVfU1dBUF9MQU4wCQkJR0VOTUFTSygyOCwgMjYpCisrI2RlZmluZSBTVEZfRFBIWV9MQU5FX1NX QVBfTEFOMQkJCUdFTk1BU0soMzEsIDI5KQorKworKyNkZWZpbmUgU1RGX0RQSFlfTEFORV9TV0FQ X0xBTjIJCQlHRU5NQVNLKDIsIDApCisrI2RlZmluZSBTVEZfRFBIWV9MQU5FX1NXQVBfTEFOMwkJ CUdFTk1BU0soNSwgMykKKysjZGVmaW5lIFNURl9EUEhZX01QX1RFU1RfRU4JCQlCSVQoNikKKysj ZGVmaW5lIFNURl9EUEhZX01QX1RFU1RfTU9ERV9TRUwJCUdFTk1BU0soMTEsIDcpCisrI2RlZmlu ZSBTVEZfRFBIWV9QTExfQ0xLX1NFTAkJCUdFTk1BU0soMjEsIDEyKQorKyNkZWZpbmUgU1RGX0RQ SFlfUFJFQ09VTlRFUl9JTl9DTEsJCUdFTk1BU0soMjksIDIyKQorKworKyNkZWZpbmUgU1RGX0RQ SFlfUFJFQ09VTlRFUl9JTl9DTEsxCQlHRU5NQVNLKDcsIDApCisrI2RlZmluZSBTVEZfRFBIWV9Q UkVDT1VOVEVSX0lOX0xBTjAJCUdFTk1BU0soMTUsIDgpCisrI2RlZmluZSBTVEZfRFBIWV9QUkVD T1VOVEVSX0lOX0xBTjEJCUdFTk1BU0soMjMsIDE2KQorKyNkZWZpbmUgU1RGX0RQSFlfUFJFQ09V TlRFUl9JTl9MQU4yCQlHRU5NQVNLKDMxLCAyNCkKKysKKysjZGVmaW5lIFNURl9EUEhZX1BSRUNP VU5URVJfSU5fTEFOMwkJR0VOTUFTSyg3LCAwKQorKyNkZWZpbmUgU1RGX0RQSFlfUlhfMUMyQ19T RUwJCQlCSVQoOCkKKysKKysjZGVmaW5lIFNURl9NQVBfTEFORVNfTlVNCQkJNgorKworK3N0cnVj dCByZWd2YWwgeworKwl1MzIgYWRkcjsKKysJdTMyIHZhbDsKKyt9OworKworK3N0cnVjdCBzdGZf ZHBoeV9pbmZvIHsKKysJLyoqCisrCSAqIEBtYXBzOgorKwkgKgorKwkgKiBQaHlzaWNhbCBsYW5l cyBhbmQgbG9naWMgbGFuZXMgbWFwcGluZyB0YWJsZS4KKysJICoKKysJICogVGhlIGRlZmF1bHQg b3JkZXIgaXM6CisrCSAqIFtjbGsgbGFuZTAsIGRhdGEgbGFuZSAwLCBkYXRhIGxhbmUgMSwgZGF0 YSBsYW5lIDIsIGRhdGUgbGFuZSAzLCBjbGsgbGFuZSAxXQorKwkgKi8KKysJdTggbWFwc1tTVEZf TUFQX0xBTkVTX05VTV07CisrfTsKKysKKytzdHJ1Y3Qgc3RmX2RwaHkgeworKwlzdHJ1Y3QgZGV2 aWNlICpkZXY7CisrCXZvaWQgX19pb21lbSAqcmVnczsKKysJc3RydWN0IGNsayAqY2ZnX2NsazsK KysJc3RydWN0IGNsayAqcmVmX2NsazsKKysJc3RydWN0IGNsayAqdHhfY2xrOworKwlzdHJ1Y3Qg cmVzZXRfY29udHJvbCAqcnN0YzsKKysJc3RydWN0IHJlZ3VsYXRvciAqbWlwaV8wcDk7CisrCXN0 cnVjdCBwaHkgKnBoeTsKKysJY29uc3Qgc3RydWN0IHN0Zl9kcGh5X2luZm8gKmluZm87CisrfTsK KysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3ZhbCBzdGZfZHBoeV9pbml0X2xpc3RbXSA9IHsK KysJeyBTVEZfRFBIWV9BUEJDRkdTQUlGX1NZU0NGRyg0KSwgMHgwMDAwMDAwMCB9LAorKwl7IFNU Rl9EUEhZX0FQQkNGR1NBSUZfU1lTQ0ZHKDgpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlf QVBCQ0ZHU0FJRl9TWVNDRkcoMTIpLCAweDAwMDBmZmYwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZH U0FJRl9TWVNDRkcoMTYpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9T WVNDRkcoMjApLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkco MjQpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoMjgpLCAw eDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoMzIpLCAweDAwMDAw MDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoMzYpLCAweDAwMDAwMDAwIH0s CisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNDApLCAweDAwMDAwMDAwIH0sCisrCXsg U1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNDApLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQ SFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNDgpLCAweDI0MDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBC Q0ZHU0FJRl9TWVNDRkcoNTIpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJ Rl9TWVNDRkcoNTYpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVND RkcoNjApLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNjQp LCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNjgpLCAweDAw MDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNzIpLCAweDAwMDAwMDAw IH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoNzYpLCAweDAwMDAwMDAwIH0sCisr CXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoODApLCAweDAwMDAwMDAwIH0sCisrCXsgU1RG X0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoODQpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlf QVBCQ0ZHU0FJRl9TWVNDRkcoODgpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZH U0FJRl9TWVNDRkcoOTIpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9T WVNDRkcoOTYpLCAweDAwMDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkco MTAwKSwgMHgwMjAwMDAwMCB9LAorKwl7IFNURl9EUEhZX0FQQkNGR1NBSUZfU1lTQ0ZHKDEwNCks IDB4MDAwMDAwMDAgfSwKKysJeyBTVEZfRFBIWV9BUEJDRkdTQUlGX1NZU0NGRygxMDgpLCAweDAw MDAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoMTEyKSwgMHgwMDAwMDAw MCB9LAorKwl7IFNURl9EUEhZX0FQQkNGR1NBSUZfU1lTQ0ZHKDExNiksIDB4MDAwMDAwMDAgfSwK KysJeyBTVEZfRFBIWV9BUEJDRkdTQUlGX1NZU0NGRygxMjApLCAweDAwMDAwMDAwIH0sCisrCXsg U1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoMTI0KSwgMHgwMDAwMDAwYyB9LAorKwl7IFNURl9E UEhZX0FQQkNGR1NBSUZfU1lTQ0ZHKDEyOCksIDB4MDAwMDAwMDAgfSwKKysJeyBTVEZfRFBIWV9B UEJDRkdTQUlGX1NZU0NGRygxMzIpLCAweGNjNTAwMDAwIH0sCisrCXsgU1RGX0RQSFlfQVBCQ0ZH U0FJRl9TWVNDRkcoMTM2KSwgMHgwMDAwMDBjYyB9LAorKwl7IFNURl9EUEhZX0FQQkNGR1NBSUZf U1lTQ0ZHKDE0MCksIDB4MDAwMDAwMDAgfSwKKysJeyBTVEZfRFBIWV9BUEJDRkdTQUlGX1NZU0NG RygxNDQpLCAweDAwMDAwMDAwIH0sCisrfTsKKysKKytzdGF0aWMgaW50IHN0Zl9kcGh5X2NvbmZp Z3VyZShzdHJ1Y3QgcGh5ICpwaHksIHVuaW9uIHBoeV9jb25maWd1cmVfb3B0cyAqb3B0cykKKyt7 CisrCXN0cnVjdCBzdGZfZHBoeSAqZHBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShwaHkpOworKwljb25z dCBzdHJ1Y3Qgc3RmX2RwaHlfaW5mbyAqaW5mbyA9IGRwaHktPmluZm87CisrCWludCBpOworKwor Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdGZfZHBoeV9pbml0X2xpc3QpOyBpKyspCisr CQl3cml0ZWwoc3RmX2RwaHlfaW5pdF9saXN0W2ldLnZhbCwKKysJCSAgICAgICBkcGh5LT5yZWdz ICsgc3RmX2RwaHlfaW5pdF9saXN0W2ldLmFkZHIpOworKworKwl3cml0ZWwoRklFTERfUFJFUChT VEZfRFBIWV9EQV9DRFBIWV9SMTAwX0NUUkwwXzJEMUNfRUZVU0VfRU4sIDEpIHwKKysJICAgICAg IEZJRUxEX1BSRVAoU1RGX0RQSFlfREFfQ0RQSFlfUjEwMF9DVFJMMF8yRDFDX0VGVVNFX0lOLCAw eDFiKSB8CisrCSAgICAgICBGSUVMRF9QUkVQKFNURl9EUEhZX0RBX0NEUEhZX1IxMDBfQ1RSTDFf MkQxQ19FRlVTRV9FTiwgMSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9EQV9DRFBI WV9SMTAwX0NUUkwxXzJEMUNfRUZVU0VfSU4sIDB4MWIpLAorKwkgICAgICAgZHBoeS0+cmVncyAr IFNURl9EUEhZX0FQQkNGR1NBSUZfU1lTQ0ZHKDApKTsKKysKKysJd3JpdGVsKEZJRUxEX1BSRVAo U1RGX0RQSFlfREFUQV9CVVMxNl84LCAwKSB8CisrCSAgICAgICBGSUVMRF9QUkVQKFNURl9EUEhZ X0RFQlVHX01PREVfU0VMLCAweDVhKSwKKysJICAgICAgIGRwaHktPnJlZ3MgKyBTVEZfRFBIWV9B UEJDRkdTQUlGX1NZU0NGRygxODQpKTsKKysKKysJd3JpdGVsKEZJRUxEX1BSRVAoU1RGX0RQSFlf RU5BQkxFX0NMSywgMSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9FTkFCTEVfQ0xL MSwgMSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9FTkFCTEVfTEFOMCwgMSkgfAor KwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9FTkFCTEVfTEFOMSwgMSkgfAorKwkgICAgICAg RklFTERfUFJFUChTVEZfRFBIWV9FTkFCTEVfTEFOMiwgMSkgfAorKwkgICAgICAgRklFTERfUFJF UChTVEZfRFBIWV9FTkFCTEVfTEFOMywgMSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBI WV9HUElfRU4sIDApIHwKKysJICAgICAgIEZJRUxEX1BSRVAoU1RGX0RQSFlfSFNfRlJFUV9DSEFO R0VfQ0xLLCAwKSB8CisrCSAgICAgICBGSUVMRF9QUkVQKFNURl9EUEhZX0hTX0ZSRVFfQ0hBTkdF X0NMSzEsIDApIHwKKysJICAgICAgIEZJRUxEX1BSRVAoU1RGX0RQSFlfTEFORV9TV0FQX0NMSywg aW5mby0+bWFwc1swXSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9MQU5FX1NXQVBf Q0xLMSwgaW5mby0+bWFwc1s1XSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9MQU5F X1NXQVBfTEFOMCwgaW5mby0+bWFwc1sxXSkgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBI WV9MQU5FX1NXQVBfTEFOMSwgaW5mby0+bWFwc1syXSksCisrCSAgICAgICBkcGh5LT5yZWdzICsg U1RGX0RQSFlfQVBCQ0ZHU0FJRl9TWVNDRkcoMTg4KSk7CisrCisrCXdyaXRlbChGSUVMRF9QUkVQ KFNURl9EUEhZX0xBTkVfU1dBUF9MQU4yLCBpbmZvLT5tYXBzWzNdKSB8CisrCSAgICAgICBGSUVM RF9QUkVQKFNURl9EUEhZX0xBTkVfU1dBUF9MQU4zLCBpbmZvLT5tYXBzWzRdKSB8CisrCSAgICAg ICBGSUVMRF9QUkVQKFNURl9EUEhZX01QX1RFU1RfRU4sIDApIHwKKysJICAgICAgIEZJRUxEX1BS RVAoU1RGX0RQSFlfTVBfVEVTVF9NT0RFX1NFTCwgMCkgfAorKwkgICAgICAgRklFTERfUFJFUChT VEZfRFBIWV9QTExfQ0xLX1NFTCwgMHgzN2MpIHwKKysJICAgICAgIEZJRUxEX1BSRVAoU1RGX0RQ SFlfUFJFQ09VTlRFUl9JTl9DTEssIDgpLAorKwkgICAgICAgZHBoeS0+cmVncyArIFNURl9EUEhZ X0FQQkNGR1NBSUZfU1lTQ0ZHKDE5MikpOworKworKwl3cml0ZWwoRklFTERfUFJFUChTVEZfRFBI WV9QUkVDT1VOVEVSX0lOX0NMSzEsIDgpIHwKKysJICAgICAgIEZJRUxEX1BSRVAoU1RGX0RQSFlf UFJFQ09VTlRFUl9JTl9MQU4wLCA3KSB8CisrCSAgICAgICBGSUVMRF9QUkVQKFNURl9EUEhZX1BS RUNPVU5URVJfSU5fTEFOMSwgNykgfAorKwkgICAgICAgRklFTERfUFJFUChTVEZfRFBIWV9QUkVD T1VOVEVSX0lOX0xBTjIsIDcpLAorKwkgICAgICAgZHBoeS0+cmVncyArIFNURl9EUEhZX0FQQkNG R1NBSUZfU1lTQ0ZHKDE5NikpOworKworKwl3cml0ZWwoRklFTERfUFJFUChTVEZfRFBIWV9QUkVD T1VOVEVSX0lOX0xBTjMsIDcpIHwKKysJICAgICAgIEZJRUxEX1BSRVAoU1RGX0RQSFlfUlhfMUMy Q19TRUwsIDApLAorKwkgICAgICAgZHBoeS0+cmVncyArIFNURl9EUEhZX0FQQkNGR1NBSUZfU1lT Q0ZHKDIwMCkpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBzdGZfZHBoeV9w b3dlcl9vbihzdHJ1Y3QgcGh5ICpwaHkpCisreworKwlzdHJ1Y3Qgc3RmX2RwaHkgKmRwaHkgPSBw aHlfZ2V0X2RydmRhdGEocGh5KTsKKysJaW50IHJldDsKKysKKysJcG1fcnVudGltZV9nZXRfc3lu YyhkcGh5LT5kZXYpOworKworKwlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKGRwaHktPm1pcGlfMHA5 KTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCWNsa19zZXRfcmF0ZShkcGh5LT5j ZmdfY2xrLCA5OTAwMDAwMCk7CisrCWNsa19zZXRfcmF0ZShkcGh5LT5yZWZfY2xrLCA0OTUwMDAw MCk7CisrCWNsa19zZXRfcmF0ZShkcGh5LT50eF9jbGssIDE5ODAwMDAwKTsKKysJcmVzZXRfY29u dHJvbF9kZWFzc2VydChkcGh5LT5yc3RjKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRp YyBpbnQgc3RmX2RwaHlfcG93ZXJfb2ZmKHN0cnVjdCBwaHkgKnBoeSkKKyt7CisrCXN0cnVjdCBz dGZfZHBoeSAqZHBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShwaHkpOworKworKwlyZXNldF9jb250cm9s X2Fzc2VydChkcGh5LT5yc3RjKTsKKysKKysJcmVndWxhdG9yX2Rpc2FibGUoZHBoeS0+bWlwaV8w cDkpOworKworKwlwbV9ydW50aW1lX3B1dF9zeW5jKGRwaHktPmRldik7CisrCisrCXJldHVybiAw OworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9vcHMgc3RmX2RwaHlfb3BzID0gewor KwkuY29uZmlndXJlID0gc3RmX2RwaHlfY29uZmlndXJlLAorKwkucG93ZXJfb24gID0gc3RmX2Rw aHlfcG93ZXJfb24sCisrCS5wb3dlcl9vZmYgPSBzdGZfZHBoeV9wb3dlcl9vZmYsCisrfTsKKysK KytzdGF0aWMgaW50IHN0Zl9kcGh5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CisreworKwlzdHJ1Y3QgcGh5X3Byb3ZpZGVyICpwaHlfcHJvdmlkZXI7CisrCXN0cnVjdCBzdGZf ZHBoeSAqZHBoeTsKKysKKysJZHBoeSA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2Yo KmRwaHkpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFkcGh5KQorKwkJcmV0dXJuIC1FTk9NRU07Cisr CisrCWRwaHktPmluZm8gPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7Cisr CisrCWRldl9zZXRfZHJ2ZGF0YSgmcGRldi0+ZGV2LCBkcGh5KTsKKysJZHBoeS0+ZGV2ID0gJnBk ZXYtPmRldjsKKysKKysJZHBoeS0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJj ZShwZGV2LCAwKTsKKysJaWYgKElTX0VSUihkcGh5LT5yZWdzKSkKKysJCXJldHVybiBQVFJfRVJS KGRwaHktPnJlZ3MpOworKworKwlkcGh5LT5jZmdfY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5k ZXYsICJjZmciKTsKKysJaWYgKElTX0VSUihkcGh5LT5jZmdfY2xrKSkKKysJCXJldHVybiBQVFJf RVJSKGRwaHktPmNmZ19jbGspOworKworKwlkcGh5LT5yZWZfY2xrID0gZGV2bV9jbGtfZ2V0KCZw ZGV2LT5kZXYsICJyZWYiKTsKKysJaWYgKElTX0VSUihkcGh5LT5yZWZfY2xrKSkKKysJCXJldHVy biBQVFJfRVJSKGRwaHktPnJlZl9jbGspOworKworKwlkcGh5LT50eF9jbGsgPSBkZXZtX2Nsa19n ZXQoJnBkZXYtPmRldiwgInR4Iik7CisrCWlmIChJU19FUlIoZHBoeS0+dHhfY2xrKSkKKysJCXJl dHVybiBQVFJfRVJSKGRwaHktPnR4X2Nsayk7CisrCisrCWRwaHktPnJzdGMgPSBkZXZtX3Jlc2V0 X2NvbnRyb2xfYXJyYXlfZ2V0X2V4Y2x1c2l2ZSgmcGRldi0+ZGV2KTsKKysJaWYgKElTX0VSUihk cGh5LT5yc3RjKSkKKysJCXJldHVybiBQVFJfRVJSKGRwaHktPnJzdGMpOworKworKwlkcGh5LT5t aXBpXzBwOSA9IGRldm1fcmVndWxhdG9yX2dldCgmcGRldi0+ZGV2LCAibWlwaV8wcDkiKTsKKysJ aWYgKElTX0VSUihkcGh5LT5taXBpXzBwOSkpCisrCQlyZXR1cm4gUFRSX0VSUihkcGh5LT5taXBp XzBwOSk7CisrCisrCWRwaHktPnBoeSA9IGRldm1fcGh5X2NyZWF0ZSgmcGRldi0+ZGV2LCBOVUxM LCAmc3RmX2RwaHlfb3BzKTsKKysJaWYgKElTX0VSUihkcGh5LT5waHkpKSB7CisrCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gY3JlYXRlIFBIWVxuIik7CisrCQlyZXR1cm4gUFRSX0VS UihkcGh5LT5waHkpOworKwl9CisrCisrCXBtX3J1bnRpbWVfZW5hYmxlKCZwZGV2LT5kZXYpOwor KworKwlwaHlfc2V0X2RydmRhdGEoZHBoeS0+cGh5LCBkcGh5KTsKKysJcGh5X3Byb3ZpZGVyID0g ZGV2bV9vZl9waHlfcHJvdmlkZXJfcmVnaXN0ZXIoJnBkZXYtPmRldiwKKysJCQkJCQkgICAgIG9m X3BoeV9zaW1wbGVfeGxhdGUpOworKworKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHBoeV9wcm92 aWRlcik7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RmX2RwaHlfaW5mbyBzdGFyZml2 ZV9kcGh5X2luZm8gPSB7CisrCS5tYXBzID0gezQsIDAsIDEsIDIsIDMsIDV9LAorK307CisrCisr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RmX2RwaHlfZHRfaWRzW10gPSB7Cisr CXsKKysJCS5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1kcGh5LXJ4IiwKKysJCS5kYXRh ID0gJnN0YXJmaXZlX2RwaHlfaW5mbywKKysJfSwKKysJeyAvKiBzZW50aW5lbCAqLyB9LAorK307 CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RmX2RwaHlfZHRfaWRzKTsKKysKKytzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciBzdGZfZHBoeV9kcml2ZXIgPSB7CisrCS5wcm9iZSA9IHN0 Zl9kcGh5X3Byb2JlLAorKwkuZHJpdmVyID0geworKwkJLm5hbWUJPSAic3RhcmZpdmUtZHBoeS1y eCIsCisrCQkub2ZfbWF0Y2hfdGFibGUgPSBzdGZfZHBoeV9kdF9pZHMsCisrCX0sCisrfTsKKytt b2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0Zl9kcGh5X2RyaXZlcik7CisrCisrTU9EVUxFX0FVVEhP UigiSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0FVVEhP UigiQ2hhbmdodWFuZyBMaWFuZyA8Y2hhbmdodWFuZy5saWFuZ0BzdGFyZml2ZXRlY2guY29tPiIp OworK01PRFVMRV9ERVNDUklQVElPTigiU3RhckZpdmUgRFBIWSBSWCBkcml2ZXIiKTsKKytNT0RV TEVfTElDRU5TRSgiR1BMIik7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDAzOS1tZWRpYS1kdC1iaW5kaW5ncy1jYWRlbmNlLWNzaTJyeC1Db252 ZXJ0LXRvLURULXNjaGVtLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzktbWVk aWEtZHQtYmluZGluZ3MtY2FkZW5jZS1jc2kycngtQ29udmVydC10by1EVC1zY2hlbS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi44NzhmOWUxZDliYWE0Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwMzktbWVkaWEtZHQt YmluZGluZ3MtY2FkZW5jZS1jc2kycngtQ29udmVydC10by1EVC1zY2hlbS5wYXRjaApAQCAtMCww ICsxLDMxNSBAQAorRnJvbSAwZGNiMTEzZGUyNTU5ZmMzNTRjMzdmY2NjYTU4YmZhN2NmMjNmZTA2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFjayBaaHUgPGphY2suemh1QHN0YXJm aXZldGVjaC5jb20+CitEYXRlOiBUdWUsIDIzIE1heSAyMDIzIDE2OjU2OjIyICswODAwCitTdWJq ZWN0OiBbUEFUQ0ggMzkvNzJdIG1lZGlhOiBkdC1iaW5kaW5nczogY2FkZW5jZS1jc2kycng6IENv bnZlcnQgdG8gRFQKKyBzY2hlbWEKKworQ29udmVydCBEVCBiaW5kaW5ncyBkb2N1bWVudCBmb3Ig Q2FkZW5jZSBNSVBJLUNTSTIgUlggY29udHJvbGxlciB0bworRFQgc2NoZW1hIGZvcm1hdC4KKwor Rm9yIGNvbXBhdGlibGUsIG5ldyBjb21wYXRpYmxlcyBzaG91bGQgbm90IGJlIG1lc3NlZCB3aXRo IGNvbnZlcnNpb24sCitidXQgdGhlIG9yaWdpbmFsIGJpbmRpbmcgZGlkIG5vdCBzcGVjaWZ5IGFu eSBTb0Mtc3BlY2lmaWMgY29tcGF0aWJsZQorc3RyaW5nLCBzbyBhZGQgdGhlIFN0YXJGaXZlIGNv bXBhdGlibGUgc3RyaW5nLgorCitSZXZpZXdlZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6 eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hh cnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEph Y2sgWmh1IDxqYWNrLnpodUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2RldmljZXRyZWUv YmluZGluZ3MvbWVkaWEvY2Rucyxjc2kycngudHh0IHwgMTAwIC0tLS0tLS0tLS0KKyAuLi4vYmlu ZGluZ3MvbWVkaWEvY2Rucyxjc2kycngueWFtbCAgICAgICAgICAgfCAxNzcgKysrKysrKysrKysr KysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9u cygtKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvbWVkaWEvY2Rucyxjc2kycngudHh0CisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9jZG5zLGNzaTJyeC55YW1sCisKK2RpZmYgLS1n aXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVkaWEvY2Rucyxjc2kycngu dHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL2NkbnMsY3NpMnJ4 LnR4dAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA2YjAyYTA2NTdhZDkuLjAwMDAw MDAwMDAwMAorLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL2Nk bnMsY3NpMnJ4LnR4dAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTAwICswLDAgQEAKKy1DYWRlbmNl IE1JUEktQ1NJMiBSWCBjb250cm9sbGVyCistPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLQorLVRoZSBDYWRlbmNlIE1JUEktQ1NJMiBSWCBjb250cm9sbGVyIGlzIGEgQ1NJLTIgYnJp ZGdlIHN1cHBvcnRpbmcgdXAgdG8gNCBDU0kKKy1sYW5lcyBpbiBpbnB1dCwgYW5kIDQgZGlmZmVy ZW50IHBpeGVsIHN0cmVhbXMgaW4gb3V0cHV0LgorLQorLVJlcXVpcmVkIHByb3BlcnRpZXM6Cist ICAtIGNvbXBhdGlibGU6IG11c3QgYmUgc2V0IHRvICJjZG5zLGNzaTJyeCIgYW5kIGFuIFNvQy1z cGVjaWZpYyBjb21wYXRpYmxlCistICAtIHJlZzogYmFzZSBhZGRyZXNzIGFuZCBzaXplIG9mIHRo ZSBtZW1vcnkgbWFwcGVkIHJlZ2lvbgorLSAgLSBjbG9ja3M6IHBoYW5kbGVzIHRvIHRoZSBjbG9j a3MgZHJpdmluZyB0aGUgY29udHJvbGxlcgorLSAgLSBjbG9jay1uYW1lczogbXVzdCBjb250YWlu OgorLSAgICAqIHN5c19jbGs6IG1haW4gY2xvY2sKKy0gICAgKiBwX2NsazogcmVnaXN0ZXIgYmFu ayBjbG9jaworLSAgICAqIHBpeGVsX2lmWzAtM11fY2xrOiBwaXhlbCBzdHJlYW0gb3V0cHV0IGNs b2NrLCBvbmUgZm9yIGVhY2ggc3RyZWFtCistICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxl bWVudGVkIGluIGhhcmR3YXJlLCBiZXR3ZWVuIDAgYW5kIDMKKy0KKy1PcHRpb25hbCBwcm9wZXJ0 aWVzOgorLSAgLSBwaHlzOiBwaGFuZGxlIHRvIHRoZSBleHRlcm5hbCBELVBIWSwgcGh5LW5hbWVz IG11c3QgYmUgcHJvdmlkZWQKKy0gIC0gcGh5LW5hbWVzOiBtdXN0IGNvbnRhaW4gImRwaHkiLCBp ZiB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyBhbgorLSAgICAgICAgICAgICAgIGV4dGVybmFsIEQt UEhZCistCistUmVxdWlyZWQgc3Vibm9kZXM6CistICAtIHBvcnRzOiBBIHBvcnRzIG5vZGUgd2l0 aCBvbmUgcG9ydCBjaGlsZCBub2RlIHBlciBkZXZpY2UgaW5wdXQgYW5kIG91dHB1dAorLSAgICAg ICAgICAgcG9ydCwgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSB2aWRlbyBpbnRlcmZhY2UgYmluZGlu Z3MgZGVmaW5lZCBpbgorLSAgICAgICAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL21lZGlhL3ZpZGVvLWludGVyZmFjZXMudHh0LiBUaGUKKy0gICAgICAgICAgIHBvcnQgbm9k ZXMgYXJlIG51bWJlcmVkIGFzIGZvbGxvd3M6CistCistICAgICAgICAgICBQb3J0IERlc2NyaXB0 aW9uCistICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSAgICAgICAg ICAgMCAgICBDU0ktMiBpbnB1dAorLSAgICAgICAgICAgMSAgICBTdHJlYW0gMCBvdXRwdXQKKy0g ICAgICAgICAgIDIgICAgU3RyZWFtIDEgb3V0cHV0CistICAgICAgICAgICAzICAgIFN0cmVhbSAy IG91dHB1dAorLSAgICAgICAgICAgNCAgICBTdHJlYW0gMyBvdXRwdXQKKy0KKy0gICAgICAgICAg IFRoZSBzdHJlYW0gb3V0cHV0IHBvcnQgbm9kZXMgYXJlIG9wdGlvbmFsIGlmIHRoZXkgYXJlIG5v dAorLSAgICAgICAgICAgY29ubmVjdGVkIHRvIGFueXRoaW5nIGF0IHRoZSBoYXJkd2FyZSBsZXZl bCBvciBpbXBsZW1lbnRlZAorLSAgICAgICAgICAgaW4gdGhlIGRlc2lnbi5TaW5jZSB0aGVyZSBp cyBvbmx5IG9uZSBlbmRwb2ludCBwZXIgcG9ydCwKKy0gICAgICAgICAgIHRoZSBlbmRwb2ludHMg YXJlIG5vdCBudW1iZXJlZC4KKy0KKy0KKy1FeGFtcGxlOgorLQorLWNzaTJyeDogY3NpLWJyaWRn ZUAwZDA2MDAwMCB7CistCWNvbXBhdGlibGUgPSAiY2Rucyxjc2kycngiOworLQlyZWcgPSA8MHgw ZDA2MDAwMCAweDEwMDA+OworLQljbG9ja3MgPSA8JmJ5dGVjbG9jaz4sIDwmYnl0ZWNsb2NrPgor LQkJIDwmY29yZWNsb2NrPiwgPCZjb3JlY2xvY2s+LAorLQkJIDwmY29yZWNsb2NrPiwgPCZjb3Jl Y2xvY2s+OworLQljbG9jay1uYW1lcyA9ICJzeXNfY2xrIiwgInBfY2xrIiwKKy0JCSAgICAgICJw aXhlbF9pZjBfY2xrIiwgInBpeGVsX2lmMV9jbGsiLAorLQkJICAgICAgInBpeGVsX2lmMl9jbGsi LCAicGl4ZWxfaWYzX2NsayI7CistCistCXBvcnRzIHsKKy0JCSNhZGRyZXNzLWNlbGxzID0gPDE+ OworLQkJI3NpemUtY2VsbHMgPSA8MD47CistCistCQlwb3J0QDAgeworLQkJCXJlZyA9IDwwPjsK Ky0KKy0JCQljc2kycnhfaW5fc2Vuc29yOiBlbmRwb2ludCB7CistCQkJCXJlbW90ZS1lbmRwb2lu dCA9IDwmc2Vuc29yX291dF9jc2kycng+OworLQkJCQljbG9jay1sYW5lcyA9IDwwPjsKKy0JCQkJ ZGF0YS1sYW5lcyA9IDwxIDI+OworLQkJCX07CistCQl9OworLQorLQkJcG9ydEAxIHsKKy0JCQly ZWcgPSA8MT47CistCistCQkJY3NpMnJ4X291dF9ncmFiYmVyMDogZW5kcG9pbnQgeworLQkJCQly ZW1vdGUtZW5kcG9pbnQgPSA8JmdyYWJiZXIwX2luX2NzaTJyeD47CistCQkJfTsKKy0JCX07Cist CistCQlwb3J0QDIgeworLQkJCXJlZyA9IDwyPjsKKy0KKy0JCQljc2kycnhfb3V0X2dyYWJiZXIx OiBlbmRwb2ludCB7CistCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmZ3JhYmJlcjFfaW5fY3NpMnJ4 PjsKKy0JCQl9OworLQkJfTsKKy0KKy0JCXBvcnRAMyB7CistCQkJcmVnID0gPDM+OworLQorLQkJ CWNzaTJyeF9vdXRfZ3JhYmJlcjI6IGVuZHBvaW50IHsKKy0JCQkJcmVtb3RlLWVuZHBvaW50ID0g PCZncmFiYmVyMl9pbl9jc2kycng+OworLQkJCX07CistCQl9OworLQorLQkJcG9ydEA0IHsKKy0J CQlyZWcgPSA8ND47CistCistCQkJY3NpMnJ4X291dF9ncmFiYmVyMzogZW5kcG9pbnQgeworLQkJ CQlyZW1vdGUtZW5kcG9pbnQgPSA8JmdyYWJiZXIzX2luX2NzaTJyeD47CistCQkJfTsKKy0JCX07 CistCX07CistfTsKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvbWVkaWEvY2Rucyxjc2kycngueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9tZWRpYS9jZG5zLGNzaTJyeC55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMDAwMDAwLi5hYmExMTkxYjNlNzcKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9jZG5zLGNzaTJyeC55YW1sCitAQCAtMCww ICsxLDE3NyBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wIE9SIEJTRC0y LUNsYXVzZSkKKyslWUFNTCAxLjIKKystLS0KKyskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9z Y2hlbWFzL21lZGlhL2NkbnMsY3NpMnJ4LnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRy ZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IENhZGVuY2UgTUlQSS1D U0kyIFJYIGNvbnRyb2xsZXIKKysKKyttYWludGFpbmVyczoKKysgIC0gTWF4aW1lIFJpcGFyZCA8 bXJpcGFyZEBrZXJuZWwub3JnPgorKworK2Rlc2NyaXB0aW9uOgorKyAgVGhlIENhZGVuY2UgTUlQ SS1DU0kyIFJYIGNvbnRyb2xsZXIgaXMgYSBDU0ktMiBicmlkZ2Ugc3VwcG9ydGluZyB1cCB0byA0 IENTSQorKyAgbGFuZXMgaW4gaW5wdXQsIGFuZCA0IGRpZmZlcmVudCBwaXhlbCBzdHJlYW1zIGlu IG91dHB1dC4KKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysgICAgaXRlbXM6Cisr ICAgICAgLSBlbnVtOgorKyAgICAgICAgICAtIHN0YXJmaXZlLGpoNzExMC1jc2kycngKKysgICAg ICAtIGNvbnN0OiBjZG5zLGNzaTJyeAorKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKwor KyAgY2xvY2tzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBDU0kyUnggc3lz dGVtIGNsb2NrCisrICAgICAgLSBkZXNjcmlwdGlvbjogR2F0ZWQgUmVnaXN0ZXIgYmFuayBjbG9j ayBmb3IgQVBCIGludGVyZmFjZQorKyAgICAgIC0gZGVzY3JpcHRpb246IHBpeGVsIENsb2NrIGZv ciBTdHJlYW0gaW50ZXJmYWNlIDAKKysgICAgICAtIGRlc2NyaXB0aW9uOiBwaXhlbCBDbG9jayBm b3IgU3RyZWFtIGludGVyZmFjZSAxCisrICAgICAgLSBkZXNjcmlwdGlvbjogcGl4ZWwgQ2xvY2sg Zm9yIFN0cmVhbSBpbnRlcmZhY2UgMgorKyAgICAgIC0gZGVzY3JpcHRpb246IHBpeGVsIENsb2Nr IGZvciBTdHJlYW0gaW50ZXJmYWNlIDMKKysKKysgIGNsb2NrLW5hbWVzOgorKyAgICBpdGVtczoK KysgICAgICAtIGNvbnN0OiBzeXNfY2xrCisrICAgICAgLSBjb25zdDogcF9jbGsKKysgICAgICAt IGNvbnN0OiBwaXhlbF9pZjBfY2xrCisrICAgICAgLSBjb25zdDogcGl4ZWxfaWYxX2NsaworKyAg ICAgIC0gY29uc3Q6IHBpeGVsX2lmMl9jbGsKKysgICAgICAtIGNvbnN0OiBwaXhlbF9pZjNfY2xr CisrCisrICBwaHlzOgorKyAgICBtYXhJdGVtczogMQorKyAgICBkZXNjcmlwdGlvbjogTUlQSSBE LVBIWQorKworKyAgcGh5LW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBkcGh5 CisrCisrICBwb3J0czoKKysgICAgJHJlZjogL3NjaGVtYXMvZ3JhcGgueWFtbCMvcHJvcGVydGll cy9wb3J0cworKworKyAgICBwcm9wZXJ0aWVzOgorKyAgICAgIHBvcnRAMDoKKysgICAgICAgICRy ZWY6IC9zY2hlbWFzL2dyYXBoLnlhbWwjLyRkZWZzL3BvcnQtYmFzZQorKyAgICAgICAgdW5ldmFs dWF0ZWRQcm9wZXJ0aWVzOiBmYWxzZQorKyAgICAgICAgZGVzY3JpcHRpb246CisrICAgICAgICAg IElucHV0IHBvcnQgbm9kZSwgc2luZ2xlIGVuZHBvaW50IGRlc2NyaWJpbmcgdGhlIENTSS0yIHRy YW5zbWl0dGVyLgorKworKyAgICAgICAgcHJvcGVydGllczoKKysgICAgICAgICAgZW5kcG9pbnQ6 CisrICAgICAgICAgICAgJHJlZjogdmlkZW8taW50ZXJmYWNlcy55YW1sIworKyAgICAgICAgICAg IHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UKKysKKysgICAgICAgICAgICBwcm9wZXJ0aWVz OgorKyAgICAgICAgICAgICAgYnVzLXR5cGU6CisrICAgICAgICAgICAgICAgIGNvbnN0OiA0Cisr CisrICAgICAgICAgICAgICBjbG9jay1sYW5lczoKKysgICAgICAgICAgICAgICAgY29uc3Q6IDAK KysKKysgICAgICAgICAgICAgIGRhdGEtbGFuZXM6CisrICAgICAgICAgICAgICAgIG1pbkl0ZW1z OiAxCisrICAgICAgICAgICAgICAgIG1heEl0ZW1zOiA0CisrICAgICAgICAgICAgICAgIGl0ZW1z OgorKyAgICAgICAgICAgICAgICAgIG1heGltdW06IDQKKysKKysgICAgICAgICAgICByZXF1aXJl ZDoKKysgICAgICAgICAgICAgIC0gZGF0YS1sYW5lcworKworKyAgICAgIHBvcnRAMToKKysgICAg ICAgICRyZWY6IC9zY2hlbWFzL2dyYXBoLnlhbWwjL3Byb3BlcnRpZXMvcG9ydAorKyAgICAgICAg ZGVzY3JpcHRpb246CisrICAgICAgICAgIFN0cmVhbSAwIE91dHB1dCBwb3J0IG5vZGUKKysKKysg ICAgICBwb3J0QDI6CisrICAgICAgICAkcmVmOiAvc2NoZW1hcy9ncmFwaC55YW1sIy9wcm9wZXJ0 aWVzL3BvcnQKKysgICAgICAgIGRlc2NyaXB0aW9uOgorKyAgICAgICAgICBTdHJlYW0gMSBPdXRw dXQgcG9ydCBub2RlCisrCisrICAgICAgcG9ydEAzOgorKyAgICAgICAgJHJlZjogL3NjaGVtYXMv Z3JhcGgueWFtbCMvcHJvcGVydGllcy9wb3J0CisrICAgICAgICBkZXNjcmlwdGlvbjoKKysgICAg ICAgICAgU3RyZWFtIDIgT3V0cHV0IHBvcnQgbm9kZQorKworKyAgICAgIHBvcnRANDoKKysgICAg ICAgICRyZWY6IC9zY2hlbWFzL2dyYXBoLnlhbWwjL3Byb3BlcnRpZXMvcG9ydAorKyAgICAgICAg ZGVzY3JpcHRpb246CisrICAgICAgICAgIFN0cmVhbSAzIE91dHB1dCBwb3J0IG5vZGUKKysKKysg ICAgcmVxdWlyZWQ6CisrICAgICAgLSBwb3J0QDAKKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0 aWJsZQorKyAgLSByZWcKKysgIC0gY2xvY2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtIHBvcnRz CisrCisrYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwK KysgICAgY3NpQGQwNjAwMDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcx MTAtY3NpMnJ4IiwgImNkbnMsY3NpMnJ4IjsKKysgICAgICAgIHJlZyA9IDwweDBkMDYwMDAwIDB4 MTAwMD47CisrICAgICAgICBjbG9ja3MgPSA8JmJ5dGVjbG9jayA3PiwgPCZieXRlY2xvY2sgNj4s CisrICAgICAgICAgICAgICAgICA8JmNvcmVjbG9jayA4PiwgPCZjb3JlY2xvY2sgOT4sCisrICAg ICAgICAgICAgICAgICA8JmNvcmVjbG9jayAxMD4sIDwmY29yZWNsb2NrIDExPjsKKysgICAgICAg IGNsb2NrLW5hbWVzID0gInN5c19jbGsiLCAicF9jbGsiLAorKyAgICAgICAgICAgICAgICAgICAg ICAicGl4ZWxfaWYwX2NsayIsICJwaXhlbF9pZjFfY2xrIiwKKysgICAgICAgICAgICAgICAgICAg ICAgInBpeGVsX2lmMl9jbGsiLCAicGl4ZWxfaWYzX2NsayI7CisrICAgICAgICBwaHlzID0gPCZj c2lfcGh5PjsKKysgICAgICAgIHBoeS1uYW1lcyA9ICJkcGh5IjsKKysKKysgICAgICAgIHBvcnRz IHsKKysgICAgICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisrICAgICAgICAgICAg ICAgICNzaXplLWNlbGxzID0gPDA+OworKworKyAgICAgICAgICAgICAgICBwb3J0QDAgeworKyAg ICAgICAgICAgICAgICAgICAgcmVnID0gPDA+OworKworKyAgICAgICAgICAgICAgICAgICAgY3Np MnJ4X2luX3NlbnNvcjogZW5kcG9pbnQgeworKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90 ZS1lbmRwb2ludCA9IDwmc2Vuc29yX291dF9jc2kycng+OworKyAgICAgICAgICAgICAgICAgICAg ICAgIGNsb2NrLWxhbmVzID0gPDA+OworKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbGFu ZXMgPSA8MSAyPjsKKysgICAgICAgICAgICAgICAgICAgIH07CisrICAgICAgICAgICAgICAgIH07 CisrCisrICAgICAgICAgICAgICAgIHBvcnRAMSB7CisrICAgICAgICAgICAgICAgICAgICByZWcg PSA8MT47CisrCisrICAgICAgICAgICAgICAgICAgICBjc2kycnhfb3V0X2dyYWJiZXIwOiBlbmRw b2ludCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZncmFi YmVyMF9pbl9jc2kycng+OworKyAgICAgICAgICAgICAgICAgICAgfTsKKysgICAgICAgICAgICAg ICAgfTsKKysKKysgICAgICAgICAgICAgICAgcG9ydEAyIHsKKysgICAgICAgICAgICAgICAgICAg IHJlZyA9IDwyPjsKKysKKysgICAgICAgICAgICAgICAgICAgIGNzaTJyeF9vdXRfZ3JhYmJlcjE6 IGVuZHBvaW50IHsKKysgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8 JmdyYWJiZXIxX2luX2NzaTJyeD47CisrICAgICAgICAgICAgICAgICAgICB9OworKyAgICAgICAg ICAgICAgICB9OworKworKyAgICAgICAgICAgICAgICBwb3J0QDMgeworKyAgICAgICAgICAgICAg ICAgICAgcmVnID0gPDM+OworKworKyAgICAgICAgICAgICAgICAgICAgY3NpMnJ4X291dF9ncmFi YmVyMjogZW5kcG9pbnQgeworKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2lu dCA9IDwmZ3JhYmJlcjJfaW5fY3NpMnJ4PjsKKysgICAgICAgICAgICAgICAgICAgIH07CisrICAg ICAgICAgICAgICAgIH07CisrCisrICAgICAgICAgICAgICAgIHBvcnRANCB7CisrICAgICAgICAg ICAgICAgICAgICByZWcgPSA8ND47CisrCisrICAgICAgICAgICAgICAgICAgICBjc2kycnhfb3V0 X2dyYWJiZXIzOiBlbmRwb2ludCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVu ZHBvaW50ID0gPCZncmFiYmVyM19pbl9jc2kycng+OworKyAgICAgICAgICAgICAgICAgICAgfTsK KysgICAgICAgICAgICAgICAgfTsKKysgICAgICAgIH07CisrICAgIH07CisrCisrLi4uCistLSAK KzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0MC1tZWRp YS1kdC1iaW5kaW5ncy1jYWRlbmNlLWNzaTJyeC1BZGQtcmVzZXRzLXByb3BlcnR5LnBhdGNoIGIv c3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNDAtbWVkaWEtZHQtYmluZGluZ3MtY2FkZW5jZS1j c2kycngtQWRkLXJlc2V0cy1wcm9wZXJ0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi41MmZkZDdjNjU1OWUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9saW51eDYuNC9wYXRjaGVzLzAwNDAtbWVkaWEtZHQtYmluZGluZ3MtY2FkZW5jZS1jc2kycngt QWRkLXJlc2V0cy1wcm9wZXJ0eS5wYXRjaApAQCAtMCwwICsxLDU5IEBACitGcm9tIGNlOWI4YWJm YzQ1ZDFkYmVlY2Q0MDgxNTZhNGJkMzlkYWZkYjQ4YzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBKYWNrIFpodSA8amFjay56aHVAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwg MjMgTWF5IDIwMjMgMTY6NTY6MjMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA0MC83Ml0gbWVkaWE6 IGR0LWJpbmRpbmdzOiBjYWRlbmNlLWNzaTJyeDogQWRkIHJlc2V0cyBwcm9wZXJ0eQorCitBZGQg cmVzZXRzIHByb3BlcnR5IGZvciBDYWRlbmNlIE1JUEktQ1NJMiBSWCBjb250cm9sbGVyCisKK1Jl dmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5c3p0b2Yua296bG93c2tpQGxpbmFy by5vcmc+CitSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBp ZGVhc29uYm9hcmQuY29tPgorU2lnbmVkLW9mZi1ieTogSmFjayBaaHUgPGphY2suemh1QHN0YXJm aXZldGVjaC5jb20+CistLS0KKyAuLi4vYmluZGluZ3MvbWVkaWEvY2Rucyxjc2kycngueWFtbCAg ICAgICAgICAgfCAyNCArKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDI0IGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9tZWRpYS9jZG5zLGNzaTJyeC55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL21lZGlhL2NkbnMsY3NpMnJ4LnlhbWwKK2luZGV4IGFiYTExOTFiM2U3Ny4uMzBhMzM1 YjEwNzYyIDEwMDY0NAorLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21l ZGlhL2NkbnMsY3NpMnJ4LnlhbWwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9tZWRpYS9jZG5zLGNzaTJyeC55YW1sCitAQCAtNDEsNiArNDEsMjQgQEAgcHJvcGVydGll czoKKyAgICAgICAtIGNvbnN0OiBwaXhlbF9pZjJfY2xrCisgICAgICAgLSBjb25zdDogcGl4ZWxf aWYzX2NsaworIAorKyAgcmVzZXRzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9u OiBDU0kyUnggc3lzdGVtIHJlc2V0CisrICAgICAgLSBkZXNjcmlwdGlvbjogR2F0ZWQgUmVnaXN0 ZXIgYmFuayByZXNldCBmb3IgQVBCIGludGVyZmFjZQorKyAgICAgIC0gZGVzY3JpcHRpb246IHBp eGVsIHJlc2V0IGZvciBTdHJlYW0gaW50ZXJmYWNlIDAKKysgICAgICAtIGRlc2NyaXB0aW9uOiBw aXhlbCByZXNldCBmb3IgU3RyZWFtIGludGVyZmFjZSAxCisrICAgICAgLSBkZXNjcmlwdGlvbjog cGl4ZWwgcmVzZXQgZm9yIFN0cmVhbSBpbnRlcmZhY2UgMgorKyAgICAgIC0gZGVzY3JpcHRpb246 IHBpeGVsIHJlc2V0IGZvciBTdHJlYW0gaW50ZXJmYWNlIDMKKysKKysgIHJlc2V0LW5hbWVzOgor KyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBzeXMKKysgICAgICAtIGNvbnN0OiByZWdfYmFu aworKyAgICAgIC0gY29uc3Q6IHBpeGVsX2lmMAorKyAgICAgIC0gY29uc3Q6IHBpeGVsX2lmMQor KyAgICAgIC0gY29uc3Q6IHBpeGVsX2lmMgorKyAgICAgIC0gY29uc3Q6IHBpeGVsX2lmMworKwor ICAgcGh5czoKKyAgICAgbWF4SXRlbXM6IDEKKyAgICAgZGVzY3JpcHRpb246IE1JUEkgRC1QSFkK K0BAIC0xMjMsNiArMTQxLDEyIEBAIGV4YW1wbGVzOgorICAgICAgICAgY2xvY2stbmFtZXMgPSAi c3lzX2NsayIsICJwX2NsayIsCisgICAgICAgICAgICAgICAgICAgICAgICJwaXhlbF9pZjBfY2xr IiwgInBpeGVsX2lmMV9jbGsiLAorICAgICAgICAgICAgICAgICAgICAgICAicGl4ZWxfaWYyX2Ns ayIsICJwaXhlbF9pZjNfY2xrIjsKKysgICAgICAgIHJlc2V0cyA9IDwmYnl0ZXJlc2V0IDk+LCA8 JmJ5dGVyZXNldCA0PiwKKysgICAgICAgICAgICAgICAgIDwmY29yZXJlc2V0IDU+LCA8JmNvcmVy ZXNldCA2PiwKKysgICAgICAgICAgICAgICAgIDwmY29yZXJlc2V0IDc+LCA8JmNvcmVyZXNldCA4 PjsKKysgICAgICAgIHJlc2V0LW5hbWVzID0gInN5cyIsICJyZWdfYmFuayIsCisrICAgICAgICAg ICAgICAgICAgICAgICJwaXhlbF9pZjAiLCAicGl4ZWxfaWYxIiwKKysgICAgICAgICAgICAgICAg ICAgICAgInBpeGVsX2lmMiIsICJwaXhlbF9pZjMiOworICAgICAgICAgcGh5cyA9IDwmY3NpX3Bo eT47CisgICAgICAgICBwaHktbmFtZXMgPSAiZHBoeSI7CisgCistLSAKKzIuNDEuMAorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0MS1tZWRpYS1jYWRlbmNlLUFkZC1v cGVyYXRpb24tb24tcmVzZXQucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0MS1t ZWRpYS1jYWRlbmNlLUFkZC1vcGVyYXRpb24tb24tcmVzZXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZDQxYmE1ZjQ1YWZlOQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQxLW1lZGlhLWNhZGVuY2UtQWRkLW9wZXJh dGlvbi1vbi1yZXNldC5wYXRjaApAQCAtMCwwICsxLDEzNCBAQAorRnJvbSA3M2Y4NjE5MjIxYzI4 ZTkwMjQ0YzQ1OTdkZGM5YmNhMWU4NDY0ODBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUdWUsIDIzIE1h eSAyMDIzIDE2OjU2OjI0ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNDEvNzJdIG1lZGlhOiBjYWRl bmNlOiBBZGQgb3BlcmF0aW9uIG9uIHJlc2V0CisKK0FkZCBvcGVyYXRpb24gb24gcmVzZXQgZm9y IENhZGVuY2UgTUlQSS1DU0kyIFJYIENvbnRyb2xsZXIuCisKK1Jldmlld2VkLWJ5OiBMYXVyZW50 IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+CitTaWduZWQtb2Zm LWJ5OiBKYWNrIFpodSA8amFjay56aHVAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIGRyaXZlcnMv bWVkaWEvcGxhdGZvcm0vY2FkZW5jZS9jZG5zLWNzaTJyeC5jIHwgNDAgKysrKysrKysrKysrKysr KystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY2FkZW5jZS9jZG5zLWNzaTJy eC5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jYWRlbmNlL2NkbnMtY3NpMnJ4LmMKK2luZGV4 IDk3NTVkMWM4Y2ViOS4uYzliODBhYzVjY2E1IDEwMDY0NAorLS0tIGEvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9jYWRlbmNlL2NkbnMtY3NpMnJ4LmMKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vY2FkZW5jZS9jZG5zLWNzaTJyeC5jCitAQCAtMTMsNiArMTMsNyBAQAorICNpbmNsdWRlIDxs aW51eC9vZl9ncmFwaC5oPgorICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CisgI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorICNp bmNsdWRlIDxsaW51eC9zbGFiLmg+CisgCisgI2luY2x1ZGUgPG1lZGlhL3Y0bDItY3RybHMuaD4K K0BAIC02OCw2ICs2OSw5IEBAIHN0cnVjdCBjc2kycnhfcHJpdiB7CisgCXN0cnVjdCBjbGsJCQkq c3lzX2NsazsKKyAJc3RydWN0IGNsawkJCSpwX2NsazsKKyAJc3RydWN0IGNsawkJCSpwaXhlbF9j bGtbQ1NJMlJYX1NUUkVBTVNfTUFYXTsKKysJc3RydWN0IHJlc2V0X2NvbnRyb2wJCSpzeXNfcnN0 OworKwlzdHJ1Y3QgcmVzZXRfY29udHJvbAkJKnBfcnN0OworKwlzdHJ1Y3QgcmVzZXRfY29udHJv bAkJKnBpeGVsX3JzdFtDU0kyUlhfU1RSRUFNU19NQVhdOworIAlzdHJ1Y3QgcGh5CQkJKmRwaHk7 CisgCisgCXU4CQkJCWxhbmVzW0NTSTJSWF9MQU5FU19NQVhdOworQEAgLTExMiw2ICsxMTYsNyBA QCBzdGF0aWMgaW50IGNzaTJyeF9zdGFydChzdHJ1Y3QgY3NpMnJ4X3ByaXYgKmNzaTJyeCkKKyAJ aWYgKHJldCkKKyAJCXJldHVybiByZXQ7CisgCisrCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoY3Np MnJ4LT5wX3JzdCk7CisgCWNzaTJyeF9yZXNldChjc2kycngpOworIAorIAlyZWcgPSBjc2kycngt Pm51bV9sYW5lcyA8PCA4OworQEAgLTE1NCw2ICsxNTksOCBAQCBzdGF0aWMgaW50IGNzaTJyeF9z dGFydChzdHJ1Y3QgY3NpMnJ4X3ByaXYgKmNzaTJyeCkKKyAJCWlmIChyZXQpCisgCQkJZ290byBl cnJfZGlzYWJsZV9waXhjbGs7CisgCisrCQlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGNzaTJyeC0+ cGl4ZWxfcnN0W2ldKTsKKysKKyAJCXdyaXRlbChDU0kyUlhfU1RSRUFNX0NGR19GSUZPX01PREVf TEFSR0VfQlVGLAorIAkJICAgICAgIGNzaTJyeC0+YmFzZSArIENTSTJSWF9TVFJFQU1fQ0ZHX1JF RyhpKSk7CisgCitAQCAtMTY5LDEzICsxNzYsMTYgQEAgc3RhdGljIGludCBjc2kycnhfc3RhcnQo c3RydWN0IGNzaTJyeF9wcml2ICpjc2kycngpCisgCWlmIChyZXQpCisgCQlnb3RvIGVycl9kaXNh YmxlX3BpeGNsazsKKyAKKysJcmVzZXRfY29udHJvbF9kZWFzc2VydChjc2kycngtPnN5c19yc3Qp OworIAljbGtfZGlzYWJsZV91bnByZXBhcmUoY3NpMnJ4LT5wX2Nsayk7CisgCisgCXJldHVybiAw OworIAorIGVycl9kaXNhYmxlX3BpeGNsazoKKy0JZm9yICg7IGkgPiAwOyBpLS0pCisrCWZvciAo OyBpID4gMDsgaS0tKSB7CisrCQlyZXNldF9jb250cm9sX2Fzc2VydChjc2kycngtPnBpeGVsX3Jz dFtpIC0gMV0pOworIAkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNzaTJyeC0+cGl4ZWxfY2xrW2kg LSAxXSk7CisrCX0KKyAKKyBlcnJfZGlzYWJsZV9wY2xrOgorIAljbGtfZGlzYWJsZV91bnByZXBh cmUoY3NpMnJ4LT5wX2Nsayk7CitAQCAtMTg4LDE0ICsxOTgsMTcgQEAgc3RhdGljIHZvaWQgY3Np MnJ4X3N0b3Aoc3RydWN0IGNzaTJyeF9wcml2ICpjc2kycngpCisgCXVuc2lnbmVkIGludCBpOwor IAorIAljbGtfcHJlcGFyZV9lbmFibGUoY3NpMnJ4LT5wX2Nsayk7CisrCXJlc2V0X2NvbnRyb2xf YXNzZXJ0KGNzaTJyeC0+c3lzX3JzdCk7CisgCWNsa19kaXNhYmxlX3VucHJlcGFyZShjc2kycngt PnN5c19jbGspOworIAorIAlmb3IgKGkgPSAwOyBpIDwgY3NpMnJ4LT5tYXhfc3RyZWFtczsgaSsr KSB7CisgCQl3cml0ZWwoMCwgY3NpMnJ4LT5iYXNlICsgQ1NJMlJYX1NUUkVBTV9DVFJMX1JFRyhp KSk7CisgCisrCQlyZXNldF9jb250cm9sX2Fzc2VydChjc2kycngtPnBpeGVsX3JzdFtpXSk7Cisg CQljbGtfZGlzYWJsZV91bnByZXBhcmUoY3NpMnJ4LT5waXhlbF9jbGtbaV0pOworIAl9CisgCisr CXJlc2V0X2NvbnRyb2xfYXNzZXJ0KGNzaTJyeC0+cF9yc3QpOworIAljbGtfZGlzYWJsZV91bnBy ZXBhcmUoY3NpMnJ4LT5wX2Nsayk7CisgCisgCWlmICh2NGwyX3N1YmRldl9jYWxsKGNzaTJyeC0+ c291cmNlX3N1YmRldiwgdmlkZW8sIHNfc3RyZWFtLCBmYWxzZSkpCitAQCAtMjk5LDYgKzMxMiwx NiBAQCBzdGF0aWMgaW50IGNzaTJyeF9nZXRfcmVzb3VyY2VzKHN0cnVjdCBjc2kycnhfcHJpdiAq Y3NpMnJ4LAorIAkJcmV0dXJuIFBUUl9FUlIoY3NpMnJ4LT5wX2Nsayk7CisgCX0KKyAKKysJY3Np MnJ4LT5zeXNfcnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbF9leGNsdXNpdmUo JnBkZXYtPmRldiwKKysJCQkJCQkJCSAgICAic3lzIik7CisrCWlmIChJU19FUlIoY3NpMnJ4LT5z eXNfcnN0KSkKKysJCXJldHVybiBQVFJfRVJSKGNzaTJyeC0+c3lzX3JzdCk7CisrCisrCWNzaTJy eC0+cF9yc3QgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X29wdGlvbmFsX2V4Y2x1c2l2ZSgmcGRl di0+ZGV2LAorKwkJCQkJCQkJICAicmVnX2JhbmsiKTsKKysJaWYgKElTX0VSUihjc2kycngtPnBf cnN0KSkKKysJCXJldHVybiBQVFJfRVJSKGNzaTJyeC0+cF9yc3QpOworKworIAljc2kycngtPmRw aHkgPSBkZXZtX3BoeV9vcHRpb25hbF9nZXQoJnBkZXYtPmRldiwgImRwaHkiKTsKKyAJaWYgKElT X0VSUihjc2kycngtPmRwaHkpKSB7CisgCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDb3VsZG4ndCBn ZXQgZXh0ZXJuYWwgRC1QSFlcbiIpOworQEAgLTM0OSwxNCArMzcyLDIxIEBAIHN0YXRpYyBpbnQg Y3NpMnJ4X2dldF9yZXNvdXJjZXMoc3RydWN0IGNzaTJyeF9wcml2ICpjc2kycngsCisgCX0KKyAK KyAJZm9yIChpID0gMDsgaSA8IGNzaTJyeC0+bWF4X3N0cmVhbXM7IGkrKykgeworLQkJY2hhciBj bGtfbmFtZVsxNl07CisrCQljaGFyIG5hbWVbMTZdOworIAorLQkJc25wcmludGYoY2xrX25hbWUs IHNpemVvZihjbGtfbmFtZSksICJwaXhlbF9pZiV1X2NsayIsIGkpOworLQkJY3NpMnJ4LT5waXhl bF9jbGtbaV0gPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgY2xrX25hbWUpOworKwkJc25wcmlu dGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAicGl4ZWxfaWYldV9jbGsiLCBpKTsKKysJCWNzaTJyeC0+ cGl4ZWxfY2xrW2ldID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIG5hbWUpOworIAkJaWYgKElT X0VSUihjc2kycngtPnBpeGVsX2Nsa1tpXSkpIHsKKy0JCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJD b3VsZG4ndCBnZXQgY2xvY2sgJXNcbiIsIGNsa19uYW1lKTsKKysJCQlkZXZfZXJyKCZwZGV2LT5k ZXYsICJDb3VsZG4ndCBnZXQgY2xvY2sgJXNcbiIsIG5hbWUpOworIAkJCXJldHVybiBQVFJfRVJS KGNzaTJyeC0+cGl4ZWxfY2xrW2ldKTsKKyAJCX0KKysKKysJCXNucHJpbnRmKG5hbWUsIHNpemVv ZihuYW1lKSwgInBpeGVsX2lmJXUiLCBpKTsKKysJCWNzaTJyeC0+cGl4ZWxfcnN0W2ldID0KKysJ CQlkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X29wdGlvbmFsX2V4Y2x1c2l2ZSgmcGRldi0+ZGV2LAor KwkJCQkJCQkJICBuYW1lKTsKKysJCWlmIChJU19FUlIoY3NpMnJ4LT5waXhlbF9yc3RbaV0pKQor KwkJCXJldHVybiBQVFJfRVJSKGNzaTJyeC0+cGl4ZWxfcnN0W2ldKTsKKyAJfQorIAorIAlyZXR1 cm4gMDsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDQyLW1lZGlhLWNhZGVuY2UtQWRkLXN1cHBvcnQtZm9yLWV4dGVybmFsLWRwaHkucGF0Y2gg Yi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0Mi1tZWRpYS1jYWRlbmNlLUFkZC1zdXBwb3J0 LWZvci1leHRlcm5hbC1kcGh5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLjJiZTQ4MzdlMGU2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4 Ni40L3BhdGNoZXMvMDA0Mi1tZWRpYS1jYWRlbmNlLUFkZC1zdXBwb3J0LWZvci1leHRlcm5hbC1k cGh5LnBhdGNoCkBAIC0wLDAgKzEsMTQ2IEBACitGcm9tIDc0MDhlYTI0NmE1Zjk2MDMxZTZhMDkx ZGIyNjM1NDVlZmJiZDc4N2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWNrIFpo dSA8amFjay56aHVAc3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFR1ZSwgMjMgTWF5IDIwMjMgMTY6 NTY6MjUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA0Mi83Ml0gbWVkaWE6IGNhZGVuY2U6IEFkZCBz dXBwb3J0IGZvciBleHRlcm5hbCBkcGh5CisKK0FkZCBzdXBwb3J0IGZvciBleHRlcm5hbCBNSVBJ IEQtUEhZLgorCitSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFy dEBpZGVhc29uYm9hcmQuY29tPgorU2lnbmVkLW9mZi1ieTogSmFjayBaaHUgPGphY2suemh1QHN0 YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2UvY2Ru cy1jc2kycnguYyB8IDY2ICsrKysrKysrKysrKysrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDU2 IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9jYWRlbmNlL2NkbnMtY3NpMnJ4LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2NhZGVuY2UvY2Rucy1jc2kycnguYworaW5kZXggYzliODBhYzVjY2E1Li5hNTYyYzI3OTA2 ZTEgMTAwNjQ0CistLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NhZGVuY2UvY2Rucy1jc2ky cnguYworKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jYWRlbmNlL2NkbnMtY3NpMnJ4LmMK K0BAIC0zMSw2ICszMSwxMiBAQAorICNkZWZpbmUgQ1NJMlJYX1NUQVRJQ19DRkdfRExBTkVfTUFQ KGxsYW5lLCBwbGFuZSkJKChwbGFuZSkgPDwgKDE2ICsgKGxsYW5lKSAqIDQpKQorICNkZWZpbmUg Q1NJMlJYX1NUQVRJQ19DRkdfTEFORVNfTUFTSwkJCUdFTk1BU0soMTEsIDgpCisgCisrI2RlZmlu ZSBDU0kyUlhfRFBIWV9MQU5FX0NUUkxfUkVHCQkweDQwCisrI2RlZmluZSBDU0kyUlhfRFBIWV9D TF9SU1QJCQlCSVQoMTYpCisrI2RlZmluZSBDU0kyUlhfRFBIWV9ETF9SU1QoaSkJCQlCSVQoKGkp ICsgMTIpCisrI2RlZmluZSBDU0kyUlhfRFBIWV9DTF9FTgkJCUJJVCg0KQorKyNkZWZpbmUgQ1NJ MlJYX0RQSFlfRExfRU4oaSkJCQlCSVQoaSkKKysKKyAjZGVmaW5lIENTSTJSWF9TVFJFQU1fQkFT RShuKQkJKCgobikgKyAxKSAqIDB4MTAwKQorIAorICNkZWZpbmUgQ1NJMlJYX1NUUkVBTV9DVFJM X1JFRyhuKQkJKENTSTJSWF9TVFJFQU1fQkFTRShuKSArIDB4MDAwKQorQEAgLTEwNSw2ICsxMTEs MjQgQEAgc3RhdGljIHZvaWQgY3NpMnJ4X3Jlc2V0KHN0cnVjdCBjc2kycnhfcHJpdiAqY3NpMnJ4 KQorIAl3cml0ZWwoMCwgY3NpMnJ4LT5iYXNlICsgQ1NJMlJYX1NPRlRfUkVTRVRfUkVHKTsKKyB9 CisgCisrc3RhdGljIGludCBjc2kycnhfY29uZmlndXJlX2V4dF9kcGh5KHN0cnVjdCBjc2kycnhf cHJpdiAqY3NpMnJ4KQorK3sKKysJdW5pb24gcGh5X2NvbmZpZ3VyZV9vcHRzIG9wdHMgPSB7IH07 CisrCWludCByZXQ7CisrCisrCXJldCA9IHBoeV9wb3dlcl9vbihjc2kycngtPmRwaHkpOworKwlp ZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcmV0ID0gcGh5X2NvbmZpZ3VyZShjc2kycngt PmRwaHksICZvcHRzKTsKKysJaWYgKHJldCkgeworKwkJcGh5X3Bvd2VyX29mZihjc2kycngtPmRw aHkpOworKwkJcmV0dXJuIHJldDsKKysJfQorKworKwlyZXR1cm4gMDsKKyt9CisrCisgc3RhdGlj IGludCBjc2kycnhfc3RhcnQoc3RydWN0IGNzaTJyeF9wcml2ICpjc2kycngpCisgeworIAl1bnNp Z25lZCBpbnQgaTsKK0BAIC0xNDQsNiArMTY4LDE3IEBAIHN0YXRpYyBpbnQgY3NpMnJ4X3N0YXJ0 KHN0cnVjdCBjc2kycnhfcHJpdiAqY3NpMnJ4KQorIAlpZiAocmV0KQorIAkJZ290byBlcnJfZGlz YWJsZV9wY2xrOworIAorKwkvKiBFbmFibGUgRFBIWSBjbGsgYW5kIGRhdGEgbGFuZXMuICovCisr CWlmIChjc2kycngtPmRwaHkpIHsKKysJCXJlZyA9IENTSTJSWF9EUEhZX0NMX0VOIHwgQ1NJMlJY X0RQSFlfQ0xfUlNUOworKwkJZm9yIChpID0gMDsgaSA8IGNzaTJyeC0+bnVtX2xhbmVzOyBpKysp IHsKKysJCQlyZWcgfD0gQ1NJMlJYX0RQSFlfRExfRU4oY3NpMnJ4LT5sYW5lc1tpXSAtIDEpOwor KwkJCXJlZyB8PSBDU0kyUlhfRFBIWV9ETF9SU1QoY3NpMnJ4LT5sYW5lc1tpXSAtIDEpOworKwkJ fQorKworKwkJd3JpdGVsKHJlZywgY3NpMnJ4LT5iYXNlICsgQ1NJMlJYX0RQSFlfTEFORV9DVFJM X1JFRyk7CisrCX0KKysKKyAJLyoKKyAJICogQ3JlYXRlIGEgc3RhdGljIG1hcHBpbmcgYmV0d2Vl biB0aGUgQ1NJIHZpcnR1YWwgY2hhbm5lbHMKKyAJICogYW5kIHRoZSBvdXRwdXQgc3RyZWFtLgor QEAgLTE3NywxMCArMjEyLDIyIEBAIHN0YXRpYyBpbnQgY3NpMnJ4X3N0YXJ0KHN0cnVjdCBjc2ky cnhfcHJpdiAqY3NpMnJ4KQorIAkJZ290byBlcnJfZGlzYWJsZV9waXhjbGs7CisgCisgCXJlc2V0 X2NvbnRyb2xfZGVhc3NlcnQoY3NpMnJ4LT5zeXNfcnN0KTsKKysKKysJaWYgKGNzaTJyeC0+ZHBo eSkgeworKwkJcmV0ID0gY3NpMnJ4X2NvbmZpZ3VyZV9leHRfZHBoeShjc2kycngpOworKwkJaWYg KHJldCkgeworKwkJCWRldl9lcnIoY3NpMnJ4LT5kZXYsCisrCQkJCSJGYWlsZWQgdG8gY29uZmln dXJlIGV4dGVybmFsIERQSFk6ICVkXG4iLCByZXQpOworKwkJCWdvdG8gZXJyX2Rpc2FibGVfc3lz Y2xrOworKwkJfQorKwl9CisrCisgCWNsa19kaXNhYmxlX3VucHJlcGFyZShjc2kycngtPnBfY2xr KTsKKyAKKyAJcmV0dXJuIDA7CisgCisrZXJyX2Rpc2FibGVfc3lzY2xrOgorKwljbGtfZGlzYWJs ZV91bnByZXBhcmUoY3NpMnJ4LT5zeXNfY2xrKTsKKyBlcnJfZGlzYWJsZV9waXhjbGs6CisgCWZv ciAoOyBpID4gMDsgaS0tKSB7CisgCQlyZXNldF9jb250cm9sX2Fzc2VydChjc2kycngtPnBpeGVs X3JzdFtpIC0gMV0pOworQEAgLTIxMyw2ICsyNjAsMTMgQEAgc3RhdGljIHZvaWQgY3NpMnJ4X3N0 b3Aoc3RydWN0IGNzaTJyeF9wcml2ICpjc2kycngpCisgCisgCWlmICh2NGwyX3N1YmRldl9jYWxs KGNzaTJyeC0+c291cmNlX3N1YmRldiwgdmlkZW8sIHNfc3RyZWFtLCBmYWxzZSkpCisgCQlkZXZf d2Fybihjc2kycngtPmRldiwgIkNvdWxkbid0IGRpc2FibGUgb3VyIHN1YmRldlxuIik7CisrCisr CWlmIChjc2kycngtPmRwaHkpIHsKKysJCXdyaXRlbCgwLCBjc2kycngtPmJhc2UgKyBDU0kyUlhf RFBIWV9MQU5FX0NUUkxfUkVHKTsKKysKKysJCWlmIChwaHlfcG93ZXJfb2ZmKGNzaTJyeC0+ZHBo eSkpCisrCQkJZGV2X3dhcm4oY3NpMnJ4LT5kZXYsICJDb3VsZG4ndCBwb3dlciBvZmYgRFBIWVxu Iik7CisrCX0KKyB9CisgCisgc3RhdGljIGludCBjc2kycnhfc19zdHJlYW0oc3RydWN0IHY0bDJf c3ViZGV2ICpzdWJkZXYsIGludCBlbmFibGUpCitAQCAtMzI4LDE1ICszODIsNiBAQCBzdGF0aWMg aW50IGNzaTJyeF9nZXRfcmVzb3VyY2VzKHN0cnVjdCBjc2kycnhfcHJpdiAqY3NpMnJ4LAorIAkJ cmV0dXJuIFBUUl9FUlIoY3NpMnJ4LT5kcGh5KTsKKyAJfQorIAorLQkvKgorLQkgKiBGSVhNRTog T25jZSB3ZSdsbCBoYXZlIGV4dGVybmFsIEQtUEhZIHN1cHBvcnQsIHRoZSBjaGVjaworLQkgKiB3 aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZC4KKy0JICovCistCWlmIChjc2kycngtPmRwaHkpIHsKKy0J CWRldl9lcnIoJnBkZXYtPmRldiwgIkV4dGVybmFsIEQtUEhZIG5vdCBzdXBwb3J0ZWQgeWV0XG4i KTsKKy0JCXJldHVybiAtRUlOVkFMOworLQl9CistCisgCXJldCA9IGNsa19wcmVwYXJlX2VuYWJs ZShjc2kycngtPnBfY2xrKTsKKyAJaWYgKHJldCkgeworIAkJZGV2X2VycigmcGRldi0+ZGV2LCAi Q291bGRuJ3QgcHJlcGFyZSBhbmQgZW5hYmxlIFAgY2xvY2tcbiIpOworQEAgLTM2Niw3ICs0MTEs NyBAQCBzdGF0aWMgaW50IGNzaTJyeF9nZXRfcmVzb3VyY2VzKHN0cnVjdCBjc2kycnhfcHJpdiAq Y3NpMnJ4LAorIAkgKiBGSVhNRTogT25jZSB3ZSdsbCBoYXZlIGludGVybmFsIEQtUEhZIHN1cHBv cnQsIHRoZSBjaGVjaworIAkgKiB3aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZC4KKyAJICovCistCWlm IChjc2kycngtPmhhc19pbnRlcm5hbF9kcGh5KSB7CisrCWlmICghY3NpMnJ4LT5kcGh5ICYmIGNz aTJyeC0+aGFzX2ludGVybmFsX2RwaHkpIHsKKyAJCWRldl9lcnIoJnBkZXYtPmRldiwgIkludGVy bmFsIEQtUEhZIG5vdCBzdXBwb3J0ZWQgeWV0XG4iKTsKKyAJCXJldHVybiAtRUlOVkFMOworIAl9 CitAQCAtNDkyLDYgKzUzNyw3IEBAIHN0YXRpYyBpbnQgY3NpMnJ4X3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCisgCWRldl9pbmZvKCZwZGV2LT5kZXYsCisgCQkgIlByb2JlZCBD U0kyUlggd2l0aCAldS8ldSBsYW5lcywgJXUgc3RyZWFtcywgJXMgRC1QSFlcbiIsCisgCQkgY3Np MnJ4LT5udW1fbGFuZXMsIGNzaTJyeC0+bWF4X2xhbmVzLCBjc2kycngtPm1heF9zdHJlYW1zLAor KwkJIGNzaTJyeC0+ZHBoeSA/ICJleHRlcm5hbCIgOgorIAkJIGNzaTJyeC0+aGFzX2ludGVybmFs X2RwaHkgPyAiaW50ZXJuYWwiIDogIm5vIik7CisgCisgCXJldHVybiAwOworLS0gCisyLjQxLjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNDMtbWVkaWEtY2FkZW5j ZS1BZGQtc3VwcG9ydC1mb3ItSkg3MTEwLVNvQy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0 Y2hlcy8wMDQzLW1lZGlhLWNhZGVuY2UtQWRkLXN1cHBvcnQtZm9yLUpINzExMC1Tb0MucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNWVhZTM1YmY3MjYxNwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQzLW1lZGlhLWNh ZGVuY2UtQWRkLXN1cHBvcnQtZm9yLUpINzExMC1Tb0MucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAor RnJvbSBjNzdkNWJhOTcwNTViZjAyYzY2YWFkYmRkOTIzYTg1MDQ4ZTQzNTc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+ CitEYXRlOiBUdWUsIDIzIE1heSAyMDIzIDE2OjU2OjI2ICswODAwCitTdWJqZWN0OiBbUEFUQ0gg NDMvNzJdIG1lZGlhOiBjYWRlbmNlOiBBZGQgc3VwcG9ydCBmb3IgSkg3MTEwIFNvQworCitBZGQg c3VwcG9ydCBmb3IgU3RhcmZpdmUgSkg3MTEwIFNvQyB3aGljaCBoYXMgdGhlIGNhZGVuY2UgY3Np MiByZWNlaXZlci4KKworUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGlu Y2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEphY2sgWmh1IDxqYWNrLnpo dUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jYWRlbmNl L2NkbnMtY3NpMnJ4LmMgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKwor ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY2FkZW5jZS9jZG5zLWNzaTJyeC5j IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jYWRlbmNlL2NkbnMtY3NpMnJ4LmMKK2luZGV4IGE1 NjJjMjc5MDZlMS4uZjJiNDU3NGI4MjE2IDEwMDY0NAorLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9jYWRlbmNlL2NkbnMtY3NpMnJ4LmMKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v Y2FkZW5jZS9jZG5zLWNzaTJyeC5jCitAQCAtNTU4LDYgKzU1OCw3IEBAIHN0YXRpYyB2b2lkIGNz aTJyeF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyB9CisgCisgc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgY3NpMnJ4X29mX3RhYmxlW10gPSB7CisrCXsgLmNv bXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWNzaTJyeCIgfSwKKyAJeyAuY29tcGF0aWJsZSA9 ICJjZG5zLGNzaTJyeCIgfSwKKyAJeyB9LAorIH07CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0NC1tZWRpYS1kdC1iaW5kaW5ncy1BZGQtSkg3 MTEwLUNhbWVyYS1TdWJzeXN0ZW0ucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0 NC1tZWRpYS1kdC1iaW5kaW5ncy1BZGQtSkg3MTEwLUNhbWVyYS1TdWJzeXN0ZW0ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMjc4ZWM0NTU1NTUwZAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ0LW1lZGlhLWR0LWJp bmRpbmdzLUFkZC1KSDcxMTAtQ2FtZXJhLVN1YnN5c3RlbS5wYXRjaApAQCAtMCwwICsxLDIwNSBA QAorRnJvbSBhMTA0NjdlYjYwOTlmMGI3ODI5YjkzZjViYzA5NmI5MjVmNDk5MTczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5j b20+CitEYXRlOiBNb24sIDE5IEp1biAyMDIzIDE5OjI4OjMzICswODAwCitTdWJqZWN0OiBbUEFU Q0ggNDQvNzJdIG1lZGlhOiBkdC1iaW5kaW5nczogQWRkIEpINzExMCBDYW1lcmEgU3Vic3lzdGVt CisKK0FkZCB0aGUgYmluZGluZ3MgZG9jdW1lbnRhdGlvbiBmb3IgU3RhcmZpdmUgSkg3MTEwIENh bWVyYSBTdWJzeXN0ZW0KK3doaWNoIGlzIHVzZWQgZm9yIGhhbmRpbmcgaW1hZ2Ugc2Vuc29yIGRh dGEuCisKK1Jldmlld2VkLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrcnp5c3p0b2Yua296bG93 c2tpQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5w aW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgorU2lnbmVkLW9mZi1ieTogSmFjayBaaHUgPGphY2su emh1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vYmluZGluZ3MvbWVkaWEvc3RhcmZpdmUs amg3MTEwLWNhbXNzLnlhbWwgfCAxODAgKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5n ZWQsIDE4MCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9zdGFyZml2ZSxqaDcxMTAtY2Ftc3MueWFtbAorCitk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL3N0YXJm aXZlLGpoNzExMC1jYW1zcy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L21lZGlhL3N0YXJmaXZlLGpoNzExMC1jYW1zcy55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAwMDAwLi5jNjY1ODZkOTBmYTIKKy0tLSAvZGV2L251bGwKKysrKyBiL0Rv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9zdGFyZml2ZSxqaDcxMTAtY2Ft c3MueWFtbAorQEAgLTAsMCArMSwxODAgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAo R1BMLTIuMCBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8v ZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9tZWRpYS9zdGFyZml2ZSxqaDcxMTAtY2Ftc3MueWFtbCMK Kyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMK KysKKyt0aXRsZTogU3RhcmZpdmUgU29DIENBTVNTIElTUAorKworK21haW50YWluZXJzOgorKyAg LSBKYWNrIFpodSA8amFjay56aHVAc3RhcmZpdmV0ZWNoLmNvbT4KKysgIC0gQ2hhbmdodWFuZyBM aWFuZyA8Y2hhbmdodWFuZy5saWFuZ0BzdGFyZml2ZXRlY2guY29tPgorKworK2Rlc2NyaXB0aW9u OgorKyAgVGhlIFN0YXJmaXZlIENBTVNTIElTUCBpcyBhIENhbWVyYSBpbnRlcmZhY2UgZm9yIFN0 YXJmaXZlIEpINzExMCBTb0MuIEl0CisrICBjb25zaXN0cyBvZiBhIFZJTiBjb250cm9sbGVyIChW aWRlbyBJbiBDb250cm9sbGVyLCBhIHRvcC1sZXZlbCBjb250cm9sIHVuaXQpCisrICBhbmQgYW4g SVNQLgorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZp dmUsamg3MTEwLWNhbXNzCisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAyCisrCisrICByZWct bmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHN5c2NvbgorKyAgICAgIC0gY29u c3Q6IGlzcAorKworKyAgY2xvY2tzOgorKyAgICBtYXhJdGVtczogNworKworKyAgY2xvY2stbmFt ZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IGFwYl9mdW5jCisrICAgICAgLSBjb25z dDogd3JhcHBlcl9jbGtfYworKyAgICAgIC0gY29uc3Q6IGR2cF9pbnYKKysgICAgICAtIGNvbnN0 OiBheGl3cgorKyAgICAgIC0gY29uc3Q6IG1pcGlfcngwX3B4bAorKyAgICAgIC0gY29uc3Q6IGlz cGNvcmVfMngKKysgICAgICAtIGNvbnN0OiBpc3BfYXhpCisrCisrICByZXNldHM6CisrICAgIG1h eEl0ZW1zOiA2CisrCisrICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25z dDogd3JhcHBlcl9wCisrICAgICAgLSBjb25zdDogd3JhcHBlcl9jCisrICAgICAgLSBjb25zdDog YXhpcmQKKysgICAgICAtIGNvbnN0OiBheGl3cgorKyAgICAgIC0gY29uc3Q6IGlzcF90b3Bfbgor KyAgICAgIC0gY29uc3Q6IGlzcF90b3BfYXhpCisrCisrICBwb3dlci1kb21haW5zOgorKyAgICBp dGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBKSDcxMTAgSVNQIFBvd2VyIERvbWFpbiBTd2l0 Y2ggQ29udHJvbGxlci4KKysKKysgIGludGVycnVwdHM6CisrICAgIG1heEl0ZW1zOiA0CisrCisr ICBwb3J0czoKKysgICAgJHJlZjogL3NjaGVtYXMvZ3JhcGgueWFtbCMvcHJvcGVydGllcy9wb3J0 cworKworKyAgICBwcm9wZXJ0aWVzOgorKyAgICAgIHBvcnRAMDoKKysgICAgICAgICRyZWY6IC9z Y2hlbWFzL2dyYXBoLnlhbWwjLyRkZWZzL3BvcnQtYmFzZQorKyAgICAgICAgdW5ldmFsdWF0ZWRQ cm9wZXJ0aWVzOiBmYWxzZQorKyAgICAgICAgZGVzY3JpcHRpb246IElucHV0IHBvcnQgZm9yIHJl Y2VpdmluZyBEVlAgZGF0YS4KKysKKysgICAgICAgIHByb3BlcnRpZXM6CisrICAgICAgICAgIGVu ZHBvaW50OgorKyAgICAgICAgICAgICRyZWY6IHZpZGVvLWludGVyZmFjZXMueWFtbCMKKysgICAg ICAgICAgICB1bmV2YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlCisrCisrICAgICAgICAgICAgcHJv cGVydGllczoKKysgICAgICAgICAgICAgIGJ1cy10eXBlOgorKyAgICAgICAgICAgICAgICBlbnVt OiBbNSwgNl0KKysKKysgICAgICAgICAgICAgIGJ1cy13aWR0aDoKKysgICAgICAgICAgICAgICAg ZW51bTogWzgsIDEwLCAxMl0KKysKKysgICAgICAgICAgICAgIGRhdGEtc2hpZnQ6CisrICAgICAg ICAgICAgICAgIGVudW06IFswLCAyXQorKyAgICAgICAgICAgICAgICBkZWZhdWx0OiAwCisrCisr ICAgICAgICAgICAgICBoc3luYy1hY3RpdmU6CisrICAgICAgICAgICAgICAgIGVudW06IFswLCAx XQorKyAgICAgICAgICAgICAgICBkZWZhdWx0OiAxCisrCisrICAgICAgICAgICAgICB2c3luYy1h Y3RpdmU6CisrICAgICAgICAgICAgICAgIGVudW06IFswLCAxXQorKyAgICAgICAgICAgICAgICBk ZWZhdWx0OiAxCisrCisrICAgICAgICAgICAgcmVxdWlyZWQ6CisrICAgICAgICAgICAgICAtIGJ1 cy10eXBlCisrICAgICAgICAgICAgICAtIGJ1cy13aWR0aAorKworKyAgICAgIHBvcnRAMToKKysg ICAgICAgICRyZWY6IC9zY2hlbWFzL2dyYXBoLnlhbWwjL3Byb3BlcnRpZXMvcG9ydAorKyAgICAg ICAgZGVzY3JpcHRpb246IElucHV0IHBvcnQgZm9yIHJlY2VpdmluZyBDU0kgZGF0YS4KKysKKysg ICAgcmVxdWlyZWQ6CisrICAgICAgLSBwb3J0QDAKKysgICAgICAtIHBvcnRAMQorKworK3JlcXVp cmVkOgorKyAgLSBjb21wYXRpYmxlCisrICAtIHJlZworKyAgLSByZWctbmFtZXMKKysgIC0gY2xv Y2tzCisrICAtIGNsb2NrLW5hbWVzCisrICAtIHJlc2V0cworKyAgLSByZXNldC1uYW1lcworKyAg LSBwb3dlci1kb21haW5zCisrICAtIGludGVycnVwdHMKKysgIC0gcG9ydHMKKysKKythZGRpdGlv bmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAorKyAgICBpc3BAMTk4 NDAwMDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtY2Ftc3MiOwor KyAgICAgICAgcmVnID0gPDB4MTk4NDAwMDAgMHgxMDAwMD4sCisrICAgICAgICAgICAgICA8MHgx OTg3MDAwMCAweDMwMDAwPjsKKysgICAgICAgIHJlZy1uYW1lcyA9ICJzeXNjb24iLCAiaXNwIjsK KysgICAgICAgIGNsb2NrcyA9IDwmaXNwY3JnIDA+LAorKyAgICAgICAgICAgICAgICAgPCZpc3Bj cmcgMTM+LAorKyAgICAgICAgICAgICAgICAgPCZpc3BjcmcgMj4sCisrICAgICAgICAgICAgICAg ICA8JmlzcGNyZyAxMj4sCisrICAgICAgICAgICAgICAgICA8JmlzcGNyZyAxPiwKKysgICAgICAg ICAgICAgICAgIDwmc3lzY3JnIDUxPiwKKysgICAgICAgICAgICAgICAgIDwmc3lzY3JnIDUyPjsK KysgICAgICAgIGNsb2NrLW5hbWVzID0gImFwYl9mdW5jIiwKKysgICAgICAgICAgICAgICAgICAg ICAgIndyYXBwZXJfY2xrX2MiLAorKyAgICAgICAgICAgICAgICAgICAgICAiZHZwX2ludiIsCisr ICAgICAgICAgICAgICAgICAgICAgICJheGl3ciIsCisrICAgICAgICAgICAgICAgICAgICAgICJt aXBpX3J4MF9weGwiLAorKyAgICAgICAgICAgICAgICAgICAgICAiaXNwY29yZV8yeCIsCisrICAg ICAgICAgICAgICAgICAgICAgICJpc3BfYXhpIjsKKysgICAgICAgIHJlc2V0cyA9IDwmaXNwY3Jn IDA+LAorKyAgICAgICAgICAgICAgICAgPCZpc3BjcmcgMT4sCisrICAgICAgICAgICAgICAgICA8 JmlzcGNyZyAxMD4sCisrICAgICAgICAgICAgICAgICA8JmlzcGNyZyAxMT4sCisrICAgICAgICAg ICAgICAgICA8JnN5c2NyZyA0MT4sCisrICAgICAgICAgICAgICAgICA8JnN5c2NyZyA0Mj47Cisr ICAgICAgICByZXNldC1uYW1lcyA9ICJ3cmFwcGVyX3AiLAorKyAgICAgICAgICAgICAgICAgICAg ICAid3JhcHBlcl9jIiwKKysgICAgICAgICAgICAgICAgICAgICAgImF4aXJkIiwKKysgICAgICAg ICAgICAgICAgICAgICAgImF4aXdyIiwKKysgICAgICAgICAgICAgICAgICAgICAgImlzcF90b3Bf biIsCisrICAgICAgICAgICAgICAgICAgICAgICJpc3BfdG9wX2F4aSI7CisrICAgICAgICBwb3dl ci1kb21haW5zID0gPCZwd3JjIDU+OworKyAgICAgICAgaW50ZXJydXB0cyA9IDw5Mj4sIDw4Nz4s IDw4OD4sIDw5MD47CisrCisrICAgICAgICBwb3J0cyB7CisrICAgICAgICAgICAgI2FkZHJlc3Mt Y2VsbHMgPSA8MT47CisrICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47CisrICAgICAgICAg ICAgcG9ydEAwIHsKKysgICAgICAgICAgICAgICAgcmVnID0gPDA+OworKyAgICAgICAgICAgICAg ICB2aW5fZnJvbV9zYzIyMzU6IGVuZHBvaW50IHsKKysgICAgICAgICAgICAgICAgICAgIHJlbW90 ZS1lbmRwb2ludCA9IDwmc2MyMjM1X3RvX3Zpbj47CisrICAgICAgICAgICAgICAgICAgICBidXMt dHlwZSA9IDw1PjsKKysgICAgICAgICAgICAgICAgICAgIGJ1cy13aWR0aCA9IDw4PjsKKysgICAg ICAgICAgICAgICAgICAgIGRhdGEtc2hpZnQgPSA8Mj47CisrICAgICAgICAgICAgICAgICAgICBo c3luYy1hY3RpdmUgPSA8MT47CisrICAgICAgICAgICAgICAgICAgICB2c3luYy1hY3RpdmUgPSA8 MD47CisrICAgICAgICAgICAgICAgICAgICBwY2xrLXNhbXBsZSA9IDwxPjsKKysgICAgICAgICAg ICAgICAgfTsKKysgICAgICAgICAgICB9OworKworKyAgICAgICAgICAgIHBvcnRAMSB7CisrICAg ICAgICAgICAgICAgIHJlZyA9IDwxPjsKKysgICAgICAgICAgICAgICAgdmluX2Zyb21fY3NpMnJ4 OiBlbmRwb2ludCB7CisrICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JmNz aTJyeF90b192aW4+OworKyAgICAgICAgICAgICAgICB9OworKyAgICAgICAgICAgIH07CisrICAg ICAgICB9OworKyAgICB9OworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51 eDYuNC9wYXRjaGVzLzAwNDUtbWVkaWEtYWRtaW4tZ3VpZGUtQWRkLXN0YXJmaXZlX2NhbXNzLnJz dC1mb3ItU3RhcmZpdi5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ1LW1lZGlh LWFkbWluLWd1aWRlLUFkZC1zdGFyZml2ZV9jYW1zcy5yc3QtZm9yLVN0YXJmaXYucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTYwYzQ0MDk1ZWU2MgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ1LW1lZGlhLWFkbWlu LWd1aWRlLUFkZC1zdGFyZml2ZV9jYW1zcy5yc3QtZm9yLVN0YXJmaXYucGF0Y2gKQEAgLTAsMCAr MSwxMTggQEAKK0Zyb20gNDExNzhkYjVlZWQ4YTU2NzQ0N2I5YTYyYTZlOTcwMzhmOGM1MTU1OSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2sgWmh1IDxqYWNrLnpodUBzdGFyZml2 ZXRlY2guY29tPgorRGF0ZTogTW9uLCAxOSBKdW4gMjAyMyAxOToyODozNCArMDgwMAorU3ViamVj dDogW1BBVENIIDQ1LzcyXSBtZWRpYTogYWRtaW4tZ3VpZGU6IEFkZCBzdGFyZml2ZV9jYW1zcy5y c3QgZm9yIFN0YXJmaXZlCisgQ2FtZXJhIFN1YnN5c3RlbQorCitBZGQgc3RhcmZpdmVfY2Ftc3Mu cnN0IGZpbGUgdGhhdCBkb2N1bWVudHMgdGhlIFN0YXJmaXZlIENhbWVyYQorU3Vic3lzdGVtIGRy aXZlciB3aGljaCBpcyB1c2VkIGZvciBoYW5kaW5nIGltYWdlIHNlbnNvciBkYXRhLgorCitTaWdu ZWQtb2ZmLWJ5OiBKYWNrIFpodSA8amFjay56aHVAc3RhcmZpdmV0ZWNoLmNvbT4KKy0tLQorIC4u Li9hZG1pbi1ndWlkZS9tZWRpYS9zdGFyZml2ZV9jYW1zcy5yc3QgICAgICB8IDU3ICsrKysrKysr KysrKysrKysrKysKKyAuLi4vbWVkaWEvc3RhcmZpdmVfY2Ftc3NfZ3JhcGguZG90ICAgICAgICAg ICAgfCAxNiArKysrKysKKyAuLi4vYWRtaW4tZ3VpZGUvbWVkaWEvdjRsLWRyaXZlcnMucnN0ICAg ICAgICAgfCAgMSArCisgMyBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspCisgY3JlYXRl IG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVkaWEvc3RhcmZpdmVfY2Ft c3MucnN0CisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVk aWEvc3RhcmZpdmVfY2Ftc3NfZ3JhcGguZG90CisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L2FkbWluLWd1aWRlL21lZGlhL3N0YXJmaXZlX2NhbXNzLnJzdCBiL0RvY3VtZW50YXRpb24vYWRt aW4tZ3VpZGUvbWVkaWEvc3RhcmZpdmVfY2Ftc3MucnN0CituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAwMDAwLi5hNjM3ODg0OTM4NGYKKy0tLSAvZGV2L251bGwKKysrKyBiL0Rv Y3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVkaWEvc3RhcmZpdmVfY2Ftc3MucnN0CitAQCAtMCww ICsxLDU3IEBACisrLi4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysKKysuLiBp bmNsdWRlOjogPGlzb251bS50eHQ+CisrCisrPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKytTdGFyZml2ZSBDYW1lcmEgU3Vic3lzdGVtIGRyaXZlcgorKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrCisrSW50cm9kdWN0aW9uCisrLS0tLS0tLS0tLS0tCisrCisrVGhp cyBmaWxlIGRvY3VtZW50cyB0aGUgZHJpdmVyIGZvciB0aGUgU3RhcmZpdmUgQ2FtZXJhIFN1YnN5 c3RlbSBmb3VuZCBvbgorK1N0YXJmaXZlIEpINzExMCBTb0MuIFRoZSBkcml2ZXIgaXMgbG9jYXRl ZCB1bmRlciBkcml2ZXJzL21lZGlhL3BsYXRmb3JtLworK3N0YXJmaXZlLgorKworK1RoZSBkcml2 ZXIgaW1wbGVtZW50cyBWNEwyLCBNZWRpYSBjb250cm9sbGVyIGFuZCB2NGwyX3N1YmRldiBpbnRl cmZhY2VzLgorK0NhbWVyYSBzZW5zb3IgdXNpbmcgVjRMMiBzdWJkZXYgaW50ZXJmYWNlIGluIHRo ZSBrZXJuZWwgaXMgc3VwcG9ydGVkLgorKworK1RoZSBkcml2ZXIgaGFzIGJlZW4gc3VjY2Vzc2Z1 bGx5IHVzZWQgb24gdGhlIEdzdHJlYW1lciAxLjE4LjUgd2l0aAorK3Y0bDJzcmMgcGx1Z2luLgor KworKworK1N0YXJmaXZlIENhbWVyYSBTdWJzeXN0ZW0gaGFyZHdhcmUKKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrVGhlIFN0YXJmaXZlIENhbWVyYSBTdWJzeXN0ZW0g aGFyZHdhcmUgY29uc2lzdHMgb2Y6CisrCisrLSBNSVBJIERQSFkgUmVjZWl2ZXI6IHJlY2VpdmVz IG1pcGkgZGF0YSBmcm9tIGEgTUlQSSBjYW1lcmEgc2Vuc29yLgorKy0gTUlQSSBDU0lSeCBDb250 cm9sbGVyOiBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgYW5kIGRlY29kaW5nIENTSTIgcHJv dG9jb2wKKysgIGJhc2VkIGNhbWVyYSBzZW5zb3IgZGF0YSBzdHJlYW0uCisrLSBJU1A6IGhhbmRs ZXMgdGhlIGltYWdlIGRhdGEgc3RyZWFtcyBmcm9tIHRoZSBNSVBJIENTSVJ4IENvbnRyb2xsZXIu CisrLSBWSU4oVmlkZW8gSW4pOiBhIHRvcC1sZXZlbCBtb2R1bGUsIGlzIHJlc3BvbnNpYmxlIGZv ciBjb250cm9sbGluZyBwb3dlcgorKyAgYW5kIGNsb2NrcyB0byBvdGhlciBtb2R1bGVzLCBkdW1w cyB0aGUgaW5wdXQgZGF0YSB0byBtZW1vcnkgb3IgdHJhbnNmZXJzIHRoZQorKyAgaW5wdXQgZGF0 YSB0byBJU1AuCisrCisrCisrVG9wb2xvZ3kKKystLS0tLS0tLQorKworK1RoZSBtZWRpYSBjb250 cm9sbGVyIHBpcGVsaW5lIGdyYXBoIGlzIGFzIGZvbGxvd3M6CisrCisrLi4gX3N0YXJmaXZlX2Nh bXNzX2dyYXBoOgorKworKy4uIGtlcm5lbC1maWd1cmU6OiBzdGFyZml2ZV9jYW1zc19ncmFwaC5k b3QKKysgICAgOmFsdDogICBzdGFyZml2ZV9jYW1zc19ncmFwaC5kb3QKKysgICAgOmFsaWduOiBj ZW50ZXIKKysKKytUaGUgZHJpdmVyIGhhcyAyIHZpZGVvIGRldmljZXM6CisrCisrLSBzdGZfdmlu MF93cl92aWRlbzA6IGNhcHR1cmUgZGV2aWNlIGZvciBpbWFnZXMgZGlyZWN0bHkgZnJvbSB0aGUg VklOIG1vZHVsZS4KKystIHN0Zl92aW4wX2lzcDBfdmlkZW8xOiBjYXB0dXJlIGRldmljZSBmb3Ig aW1hZ2VzIHdpdGhvdXQgc2NhbGluZy4KKysKKytUaGUgZHJpdmVyIGhhcyAzIHN1YmRldmljZXM6 CisrCisrLSBzdGZfaXNwMDogaXMgcmVzcG9uc2libGUgZm9yIGFsbCB0aGUgaXNwIG9wZXJhdGlv bnMuCisrLSBzdGZfdmluMF93cjogdXNlZCB0byBkdW1wIFJBVyBpbWFnZXMgdG8gbWVtb3J5Lgor Ky0gc3RmX3ZpbjBfaXNwMDogdXNlZCB0byBjYXB0dXJlIGltYWdlcyBmb3IgdGhlIHN0Zl92aW4w X2lzcDBfdmlkZW8xIGRldmljZS4KK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1 aWRlL21lZGlhL3N0YXJmaXZlX2NhbXNzX2dyYXBoLmRvdCBiL0RvY3VtZW50YXRpb24vYWRtaW4t Z3VpZGUvbWVkaWEvc3RhcmZpdmVfY2Ftc3NfZ3JhcGguZG90CituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMDAwLi4yNzU2NjFiNzIwZGMKKy0tLSAvZGV2L251bGwKKysrKyBi L0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVkaWEvc3RhcmZpdmVfY2Ftc3NfZ3JhcGguZG90 CitAQCAtMCwwICsxLDE2IEBACisrZGlncmFwaCBib2FyZCB7CisrCXJhbmtkaXI9VEIKKysJbjAw MDAwMDAxIFtsYWJlbD0ie3s8cG9ydDA+IDB9IHwgc3RmX2lzcDBcbi9kZXYvdjRsLXN1YmRldjAg fCB7PHBvcnQxPiAxfX0iLCBzaGFwZT1NcmVjb3JkLCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1n cmVlbl0KKysJbjAwMDAwMDAxOnBvcnQxIC0+IG4wMDAwMDAwZDpwb3J0MCBbc3R5bGU9ZGFzaGVk XQorKwluMDAwMDAwMDQgW2xhYmVsPSJ7ezxwb3J0MD4gMH0gfCBzdGZfdmluMF93clxuL2Rldi92 NGwtc3ViZGV2MSB8IHs8cG9ydDE+IDF9fSIsIHNoYXBlPU1yZWNvcmQsIHN0eWxlPWZpbGxlZCwg ZmlsbGNvbG9yPWdyZWVuXQorKwluMDAwMDAwMDQ6cG9ydDEgLT4gbjAwMDAwMDA3IFtzdHlsZT1i b2xkXQorKwluMDAwMDAwMDcgW2xhYmVsPSJzdGZfdmluMF93cl92aWRlbzBcbi9kZXYvdmlkZW8w Iiwgc2hhcGU9Ym94LCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj15ZWxsb3ddCisrCW4wMDAwMDAw ZCBbbGFiZWw9Int7PHBvcnQwPiAwfSB8IHN0Zl92aW4wX2lzcDBcbi9kZXYvdjRsLXN1YmRldjIg fCB7PHBvcnQxPiAxfX0iLCBzaGFwZT1NcmVjb3JkLCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1n cmVlbl0KKysJbjAwMDAwMDBkOnBvcnQxIC0+IG4wMDAwMDAxMCBbc3R5bGU9Ym9sZF0KKysJbjAw MDAwMDEwIFtsYWJlbD0ic3RmX3ZpbjBfaXNwMF92aWRlbzFcbi9kZXYvdmlkZW8xIiwgc2hhcGU9 Ym94LCBzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj15ZWxsb3ddCisrCW4wMDAwMDAxOCBbbGFiZWw9 Int7PHBvcnQwPiAwfSB8IGNkbnNfY3NpMnJ4LjE5ODAwMDAwLmNzaS1icmlkZ2VcbiB8IHs8cG9y dDE+IDEgfCA8cG9ydDI+IDIgfCA8cG9ydDM+IDMgfCA8cG9ydDQ+IDR9fSIsIHNoYXBlPU1yZWNv cmQsIHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWdyZWVuXQorKwluMDAwMDAwMTg6cG9ydDEgLT4g bjAwMDAwMDA0OnBvcnQwIFtzdHlsZT1kYXNoZWRdCisrCW4wMDAwMDAxODpwb3J0MSAtPiBuMDAw MDAwMDE6cG9ydDAgW3N0eWxlPWRhc2hlZF0KKysJbjAwMDAwMDIyIFtsYWJlbD0ie3t9IHwgaW14 MjE5IDYtMDAxMFxuL2Rldi92NGwtc3ViZGV2MyB8IHs8cG9ydDA+IDB9fSIsIHNoYXBlPU1yZWNv cmQsIHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWdyZWVuXQorKwluMDAwMDAwMjI6cG9ydDAgLT4g bjAwMDAwMDE4OnBvcnQwIFtzdHlsZT1ib2xkXQorK30KK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL2FkbWluLWd1aWRlL21lZGlhL3Y0bC1kcml2ZXJzLnJzdCBiL0RvY3VtZW50YXRpb24vYWRt aW4tZ3VpZGUvbWVkaWEvdjRsLWRyaXZlcnMucnN0CitpbmRleCAxYzQxZjg3YzM5MTcuLjIyNzRm ZDI5YzFkNyAxMDA2NDQKKy0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvbWVkaWEvdjRs LWRyaXZlcnMucnN0CisrKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL3Y0bC1k cml2ZXJzLnJzdAorQEAgLTI3LDYgKzI3LDcgQEAgVmlkZW80TGludXggKFY0TCkgZHJpdmVyLXNw ZWNpZmljIGRvY3VtZW50YXRpb24KKyAJc2k0NzB4CisgCXNpNDcxMworIAlzaTQ3NngKKysJc3Rh cmZpdmVfY2Ftc3MKKyAJdmltYworIAl2aXNsCisgCXZpdmlkCistLSAKKzIuNDEuMAorCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA0Ni1tZWRpYS1zdGFyZml2ZS1jYW1z cy1BZGQtYmFzaWMtZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNDYt bWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLWJhc2ljLWRyaXZlci5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5mNzZkODI3OTBkYzA4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNDYtbWVkaWEtc3RhcmZpdmUtY2Ftc3Mt QWRkLWJhc2ljLWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDYwNCBAQAorRnJvbSA4ZjczMTRiYzVl ZWZlNmVkMjE2Zjg1N2RjMzdlMDkzODYyY2E3MTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBNb24sIDE5 IEp1biAyMDIzIDE5OjI4OjM1ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNDYvNzJdIG1lZGlhOiBz dGFyZml2ZTogY2Ftc3M6IEFkZCBiYXNpYyBkcml2ZXIKKworQWRkIGJhc2ljIHBsYXRmb3JtIGRy aXZlciBmb3IgU3RhckZpdmUgQ2FtZXJhIFN1YnN5c3RlbS4KKworUmV2aWV3ZWQtYnk6IEJyeWFu IE8nRG9ub2dodWUgPGJyeWFuLm9kb25vZ2h1ZUBsaW5hcm8ub3JnPgorU2lnbmVkLW9mZi1ieTog SmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL21lZGlh L3BsYXRmb3JtL0tjb25maWcgICAgICAgICAgICAgICAgfCAgIDEgKworIGRyaXZlcnMvbWVkaWEv cGxhdGZvcm0vTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAgMSArCisgZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9zdGFyZml2ZS9LY29uZmlnICAgICAgIHwgICA1ICsKKyBkcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3N0YXJmaXZlL01ha2VmaWxlICAgICAgfCAgIDIgKworIGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vc3RhcmZpdmUvY2Ftc3MvS2NvbmZpZyB8ICAxNiArCisgLi4uL21lZGlhL3BsYXRmb3Jt L3N0YXJmaXZlL2NhbXNzL01ha2VmaWxlICAgIHwgICA4ICsKKyAuLi4vbWVkaWEvcGxhdGZvcm0v c3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNzLmMgfCAzMzggKysrKysrKysrKysrKysrKysrCisgLi4u L21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5oIHwgMTQ2ICsrKysrKysr CisgOCBmaWxlcyBjaGFuZ2VkLCA1MTcgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL0tjb25maWcKKyBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9NYWtlZmlsZQorIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL0tjb25maWcK KyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1z cy9NYWtlZmlsZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0 YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWVk aWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNzLmgKKworZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vS2Nv bmZpZworaW5kZXggZWU1Nzk5MTZmODc0Li42MjdlYWEwYWIzZWUgMTAwNjQ0CistLS0gYS9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL0tjb25maWcKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v S2NvbmZpZworQEAgLTgwLDYgKzgwLDcgQEAgc291cmNlICJkcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3JlbmVzYXMvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcm9ja2No aXAvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc2Ftc3VuZy9LY29u ZmlnIgorIHNvdXJjZSAiZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdC9LY29uZmlnIgorK3NvdXJj ZSAiZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9LY29uZmlnIgorIHNvdXJjZSAiZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdW54aS9LY29uZmlnIgorIHNvdXJjZSAiZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS90aS9LY29uZmlnIgorIHNvdXJjZSAiZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92 ZXJpc2lsaWNvbi9LY29uZmlnIgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v TWFrZWZpbGUgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL01ha2VmaWxlCitpbmRleCA1NDUzYmI4 NjhlNjcuLjVhMDM4NDk4YTM3MCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v TWFrZWZpbGUKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vTWFrZWZpbGUKK0BAIC0yMyw2 ICsyMyw3IEBAIG9iai15ICs9IHJlbmVzYXMvCisgb2JqLXkgKz0gcm9ja2NoaXAvCisgb2JqLXkg Kz0gc2Ftc3VuZy8KKyBvYmoteSArPSBzdC8KKytvYmoteSArPSBzdGFyZml2ZS8KKyBvYmoteSAr PSBzdW54aS8KKyBvYmoteSArPSB0aS8KKyBvYmoteSArPSB2ZXJpc2lsaWNvbi8KK2RpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3N0YXJmaXZlL0tjb25maWcKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMDAwMDAuLjc5NTVjMmEwYTRhMworLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9LY29uZmlnCitAQCAtMCwwICsxLDUgQEAKKysjIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKysKKytjb21tZW50ICJTdGFyRml2 ZSBtZWRpYSBwbGF0Zm9ybSBkcml2ZXJzIgorKworK3NvdXJjZSAiZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9zdGFyZml2ZS9jYW1zcy9LY29uZmlnIgorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJm aXZlL01ha2VmaWxlCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi40 NjM5ZmExYmNhMzIKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v c3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0wLDAgKzEsMiBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seQorK29iai15ICs9IGNhbXNzLworZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvS2NvbmZpZworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwMDAwMC4uZGFmZTFkMjQzMjRiCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL0tjb25maWcKK0BAIC0wLDAgKzEsMTYg QEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKytjb25maWcgVklE RU9fU1RBUkZJVkVfQ0FNU1MKKysJdHJpc3RhdGUgIlN0YXJmaXZlIENhbWVyYSBTdWJzeXN0ZW0g ZHJpdmVyIgorKwlkZXBlbmRzIG9uIFY0TF9QTEFURk9STV9EUklWRVJTCisrCWRlcGVuZHMgb24g VklERU9fREVWICYmIE9GCisrCWRlcGVuZHMgb24gSEFTX0RNQQorKwlzZWxlY3QgTUVESUFfQ09O VFJPTExFUgorKwlzZWxlY3QgVklERU9fVjRMMl9TVUJERVZfQVBJCisrCXNlbGVjdCBWSURFT0JV RjJfRE1BX0NPTlRJRworKwlzZWxlY3QgVjRMMl9GV05PREUKKysJaGVscAorKwkgICBFbmFibGUg dGhpcyB0byBzdXBwb3J0IGZvciB0aGUgU3RhcmZpdmUgQ2FtZXJhIHN1YnN5c3RlbQorKwkgICBm b3VuZCBvbiBTdGFyZml2ZSBKSDcxMTAgU29DLgorKworKwkgICBUbyBjb21waWxlIHRoaXMgZHJp dmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKysJICAgbW9kdWxlIHdpbGwgYmUg Y2FsbGVkIHN0Zi1jYW1zcy4KK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0 YXJmaXZlL2NhbXNzL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9j YW1zcy9NYWtlZmlsZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4u ZDU2ZGRkMDc4YTcxCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3N0YXJmaXZlL2NhbXNzL01ha2VmaWxlCitAQCAtMCwwICsxLDggQEAKKysjIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrIworKyMgTWFrZWZpbGUgZm9yIFN0YXJGaXZlIENhbWVy YSBTdWJzeXN0ZW0gZHJpdmVyCisrIworKworK3N0YXJmaXZlLWNhbXNzLW9ianMgKz0gc3RmX2Nh bXNzLm8KKysKKytvYmotJChDT05GSUdfVklERU9fU1RBUkZJVkVfQ0FNU1MpICs9IHN0YXJmaXZl LWNhbXNzLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2Nh bXNzL3N0Zl9jYW1zcy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9z dGZfY2Ftc3MuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZGMy YjVkYmE3YmQ0CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0 YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5jCitAQCAtMCwwICsxLDMzOCBAQAorKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBzdGZfY2Ftc3MuYworKyAqCisrICog U3RhcmZpdmUgQ2FtZXJhIFN1YnN5c3RlbSBkcml2ZXIKKysgKgorKyAqIENvcHlyaWdodCAoQykg MjAyMS0yMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICovCisrI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorKyNpbmNsdWRlIDxsaW51 eC9vZl9ncmFwaC5oPgorKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKysjaW5j bHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4K KysjaW5jbHVkZSA8bWVkaWEvdjRsMi1md25vZGUuaD4KKysjaW5jbHVkZSA8bWVkaWEvdjRsMi1t Yy5oPgorKworKyNpbmNsdWRlICJzdGZfY2Ftc3MuaCIKKysKKytzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IHN0ZmNhbXNzX2Nsb2Nrc1tdID0geworKwkiY2xrX2FwYl9mdW5jIiwKKysJImNsa193 cmFwcGVyX2Nsa19jIiwKKysJImNsa19kdnBfaW52IiwKKysJImNsa19heGl3ciIsCisrCSJjbGtf bWlwaV9yeDBfcHhsIiwKKysJImNsa19pc3Bjb3JlXzJ4IiwKKysJImNsa19pc3BfYXhpIiwKKyt9 OworKworK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3RmY2Ftc3NfcmVzZXRzW10gPSB7Cisr CSJyc3Rfd3JhcHBlcl9wIiwKKysJInJzdF93cmFwcGVyX2MiLAorKwkicnN0X2F4aXJkIiwKKysJ InJzdF9heGl3ciIsCisrCSJyc3RfaXNwX3RvcF9uIiwKKysJInJzdF9pc3BfdG9wX2F4aSIsCisr fTsKKysKKytzdGF0aWMgaW50IHN0ZmNhbXNzX2dldF9tZW1fcmVzKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYsCisrCQkJCXN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwlzdGZj YW1zcy0+c3lzY29uX2Jhc2UgPQorKwkJZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlX2J5 bmFtZShwZGV2LCAic3lzY29uIik7CisrCWlmIChJU19FUlIoc3RmY2Ftc3MtPnN5c2Nvbl9iYXNl KSkKKysJCXJldHVybiBQVFJfRVJSKHN0ZmNhbXNzLT5zeXNjb25fYmFzZSk7CisrCisrCXN0ZmNh bXNzLT5pc3BfYmFzZSA9CisrCQlkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2VfYnluYW1l KHBkZXYsICJpc3AiKTsKKysJaWYgKElTX0VSUihzdGZjYW1zcy0+aXNwX2Jhc2UpKQorKwkJcmV0 dXJuIFBUUl9FUlIoc3RmY2Ftc3MtPmlzcF9iYXNlKTsKKysKKysJcmV0dXJuIDA7CisrfQorKwor Ky8qCisrICogc3RmY2Ftc3Nfb2ZfcGFyc2VfZW5kcG9pbnRfbm9kZSAtIFBhcnNlIHBvcnQgZW5k cG9pbnQgbm9kZQorKyAqIEBkZXY6IERldmljZQorKyAqIEBub2RlOiBEZXZpY2Ugbm9kZSB0byBi ZSBwYXJzZWQKKysgKiBAY3NkOiBQYXJzZWQgZGF0YSBmcm9tIHBvcnQgZW5kcG9pbnQgbm9kZQor KyAqCisrICogUmV0dXJuIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24g ZmFpbHVyZQorKyAqLworK3N0YXRpYyBpbnQgc3RmY2Ftc3Nfb2ZfcGFyc2VfZW5kcG9pbnRfbm9k ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisrCQkJCQkgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUs CisrCQkJCQkgICBzdHJ1Y3Qgc3RmY2Ftc3NfYXN5bmNfc3ViZGV2ICpjc2QpCisreworKwlzdHJ1 Y3QgdjRsMl9md25vZGVfZW5kcG9pbnQgdmVwID0geyB7IDAgfSB9OworKworKwl2NGwyX2Z3bm9k ZV9lbmRwb2ludF9wYXJzZShvZl9md25vZGVfaGFuZGxlKG5vZGUpLCAmdmVwKTsKKysJZGV2X2Ri ZyhkZXYsICJ2ZXAuYmFzZS5wb3J0ID0gJWQsIGlkID0gJWRcbiIsCisrCQl2ZXAuYmFzZS5wb3J0 LCB2ZXAuYmFzZS5pZCk7CisrCisrCWNzZC0+cG9ydCA9IHZlcC5iYXNlLnBvcnQ7CisrCisrCXJl dHVybiAwOworK30KKysKKysvKgorKyAqIHN0ZmNhbXNzX29mX3BhcnNlX3BvcnRzIC0gUGFyc2Ug cG9ydHMgbm9kZQorKyAqIEBzdGZjYW1zczogU1RGQ0FNU1MgZGV2aWNlCisrICoKKysgKiBSZXR1 cm4gbnVtYmVyIG9mICJwb3J0IiBub2RlcyBmb3VuZCBpbiAicG9ydHMiIG5vZGUKKysgKi8KKytz dGF0aWMgaW50IHN0ZmNhbXNzX29mX3BhcnNlX3BvcnRzKHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ft c3MpCisreworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBzdGZjYW1zcy0+ZGV2OworKwlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5vZGUgPSBOVUxMOworKwlpbnQgcmV0LCBudW1fc3ViZGV2cyA9IDA7Cisr CisrCWZvcl9lYWNoX2VuZHBvaW50X29mX25vZGUoZGV2LT5vZl9ub2RlLCBub2RlKSB7CisrCQlz dHJ1Y3Qgc3RmY2Ftc3NfYXN5bmNfc3ViZGV2ICpjc2Q7CisrCisrCQlpZiAoIW9mX2RldmljZV9p c19hdmFpbGFibGUobm9kZSkpCisrCQkJY29udGludWU7CisrCisrCQljc2QgPSB2NGwyX2FzeW5j X25mX2FkZF9md25vZGVfcmVtb3RlKCZzdGZjYW1zcy0+bm90aWZpZXIsCisrCQkJCQkJICAgICAg b2ZfZndub2RlX2hhbmRsZShub2RlKSwKKysJCQkJCQkgICAgICBzdHJ1Y3Qgc3RmY2Ftc3NfYXN5 bmNfc3ViZGV2KTsKKysJCWlmIChJU19FUlIoY3NkKSkgeworKwkJCXJldCA9IFBUUl9FUlIoY3Nk KTsKKysJCQlnb3RvIGVycl9jbGVhbnVwOworKwkJfQorKworKwkJcmV0ID0gc3RmY2Ftc3Nfb2Zf cGFyc2VfZW5kcG9pbnRfbm9kZShkZXYsIG5vZGUsIGNzZCk7CisrCQlpZiAocmV0IDwgMCkKKysJ CQlnb3RvIGVycl9jbGVhbnVwOworKworKwkJbnVtX3N1YmRldnMrKzsKKysJfQorKworKwlyZXR1 cm4gbnVtX3N1YmRldnM7CisrCisrZXJyX2NsZWFudXA6CisrCW9mX25vZGVfcHV0KG5vZGUpOwor KwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IHN0ZmNhbXNzX3N1YmRldl9ub3RpZmll cl9ib3VuZChzdHJ1Y3QgdjRsMl9hc3luY19ub3RpZmllciAqYXN5bmMsCisrCQkJCQkgIHN0cnVj dCB2NGwyX3N1YmRldiAqc3ViZGV2LAorKwkJCQkJICBzdHJ1Y3QgdjRsMl9hc3luY19zdWJkZXYg KmFzZCkKKyt7CisrCXN0cnVjdCBtZWRpYV9wYWQgKnBhZFtTVEZfUEFEU19OVU1dOworKwl1bnNp Z25lZCBpbnQgaSwgcGFkX251bSA9IDA7CisrCisrCWZvciAoaSA9IDA7IGkgPCBwYWRfbnVtOyAr K2kpIHsKKysJCWludCByZXQ7CisrCisrCQlyZXQgPSB2NGwyX2NyZWF0ZV9md25vZGVfbGlua3Nf dG9fcGFkKHN1YmRldiwgcGFkW2ldLCAwKTsKKysJCWlmIChyZXQgPCAwKQorKwkJCXJldHVybiBy ZXQ7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgc3RmY2Ftc3Nfc3Vi ZGV2X25vdGlmaWVyX2NvbXBsZXRlKHN0cnVjdCB2NGwyX2FzeW5jX25vdGlmaWVyICpudGYpCisr eworKwlzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzID0KKysJCWNvbnRhaW5lcl9vZihudGYsIHN0 cnVjdCBzdGZjYW1zcywgbm90aWZpZXIpOworKworKwlyZXR1cm4gdjRsMl9kZXZpY2VfcmVnaXN0 ZXJfc3ViZGV2X25vZGVzKCZzdGZjYW1zcy0+djRsMl9kZXYpOworK30KKysKKytzdGF0aWMgY29u c3Qgc3RydWN0IHY0bDJfYXN5bmNfbm90aWZpZXJfb3BlcmF0aW9ucworK3N0ZmNhbXNzX3N1YmRl dl9ub3RpZmllcl9vcHMgPSB7CisrCS5ib3VuZCA9IHN0ZmNhbXNzX3N1YmRldl9ub3RpZmllcl9i b3VuZCwKKysJLmNvbXBsZXRlID0gc3RmY2Ftc3Nfc3ViZGV2X25vdGlmaWVyX2NvbXBsZXRlLAor K307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYV9kZXZpY2Vfb3BzIHN0ZmNhbXNzX21l ZGlhX29wcyA9IHsKKysJLmxpbmtfbm90aWZ5ID0gdjRsMl9waXBlbGluZV9saW5rX25vdGlmeSwK Kyt9OworKworK3N0YXRpYyB2b2lkIHN0ZmNhbXNzX21jX2luaXQoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiwKKysJCQkgICAgIHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwlz dGZjYW1zcy0+bWVkaWFfZGV2LmRldiA9IHN0ZmNhbXNzLT5kZXY7CisrCXN0cnNjcHkoc3RmY2Ft c3MtPm1lZGlhX2Rldi5tb2RlbCwgIlN0YXJmaXZlIENhbWVyYSBTdWJzeXN0ZW0iLAorKwkJc2l6 ZW9mKHN0ZmNhbXNzLT5tZWRpYV9kZXYubW9kZWwpKTsKKysJc3RmY2Ftc3MtPm1lZGlhX2Rldi5v cHMgPSAmc3RmY2Ftc3NfbWVkaWFfb3BzOworKwltZWRpYV9kZXZpY2VfaW5pdCgmc3RmY2Ftc3Mt Pm1lZGlhX2Rldik7CisrCisrCXN0ZmNhbXNzLT52NGwyX2Rldi5tZGV2ID0gJnN0ZmNhbXNzLT5t ZWRpYV9kZXY7CisrfQorKworKy8qCisrICogc3RmY2Ftc3NfcHJvYmUgLSBQcm9iZSBTVEZDQU1T UyBwbGF0Zm9ybSBkZXZpY2UKKysgKiBAcGRldjogUG9pbnRlciB0byBTVEZDQU1TUyBwbGF0Zm9y bSBkZXZpY2UKKysgKgorKyAqIFJldHVybiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUKKysgKi8KKytzdGF0aWMgaW50IHN0ZmNhbXNzX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNz OworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworKwlpbnQgcmV0LCBudW1fc3Vi ZGV2czsKKysJdW5zaWduZWQgaW50IGk7CisrCisrCXN0ZmNhbXNzID0gZGV2bV9remFsbG9jKGRl diwgc2l6ZW9mKCpzdGZjYW1zcyksIEdGUF9LRVJORUwpOworKwlpZiAoIXN0ZmNhbXNzKQorKwkJ cmV0dXJuIC1FTk9NRU07CisrCisrCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHN0ZmNhbXNz LT5pcnEpOyArK2kpIHsKKysJCXN0ZmNhbXNzLT5pcnFbaV0gPSBwbGF0Zm9ybV9nZXRfaXJxKHBk ZXYsIGkpOworKwkJaWYgKHN0ZmNhbXNzLT5pcnFbaV0gPCAwKQorKwkJCXJldHVybiBkZXZfZXJy X3Byb2JlKCZwZGV2LT5kZXYsIHN0ZmNhbXNzLT5pcnFbaV0sCisrCQkJCQkgICAgICJGYWlsZWQg dG8gZ2V0IGlycSVkIiwgaSk7CisrCX0KKysKKysJc3RmY2Ftc3MtPm5jbGtzID0gQVJSQVlfU0la RShzdGZjYW1zcy0+c3lzX2Nsayk7CisrCWZvciAoaSA9IDA7IGkgPCBzdGZjYW1zcy0+bmNsa3M7 ICsraSkKKysJCXN0ZmNhbXNzLT5zeXNfY2xrW2ldLmlkID0gc3RmY2Ftc3NfY2xvY2tzW2ldOwor KwlyZXQgPSBkZXZtX2Nsa19idWxrX2dldChkZXYsIHN0ZmNhbXNzLT5uY2xrcywgc3RmY2Ftc3Mt PnN5c19jbGspOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQg Y2xrIGNvbnRyb2xzXG4iKTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJc3RmY2Ftc3MtPm5y c3RzID0gQVJSQVlfU0laRShzdGZjYW1zcy0+c3lzX3JzdCk7CisrCWZvciAoaSA9IDA7IGkgPCBz dGZjYW1zcy0+bnJzdHM7ICsraSkKKysJCXN0ZmNhbXNzLT5zeXNfcnN0W2ldLmlkID0gc3RmY2Ft c3NfcmVzZXRzW2ldOworKwlyZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfYnVsa19nZXRfc2hhcmVk KGRldiwgc3RmY2Ftc3MtPm5yc3RzLAorKwkJCQkJCSBzdGZjYW1zcy0+c3lzX3JzdCk7CisrCWlm IChyZXQpIHsKKysJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCByZXNldCBjb250cm9sc1xu Iik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJldCA9IHN0ZmNhbXNzX2dldF9tZW1fcmVz KHBkZXYsIHN0ZmNhbXNzKTsKKysJaWYgKHJldCkgeworKwkJZGV2X2VycihkZXYsICJDb3VsZCBu b3QgbWFwIHJlZ2lzdGVyc1xuIik7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXN0ZmNhbXNz LT5kZXYgPSBkZXY7CisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHN0ZmNhbXNzKTsKKysK KysJdjRsMl9hc3luY19uZl9pbml0KCZzdGZjYW1zcy0+bm90aWZpZXIpOworKworKwludW1fc3Vi ZGV2cyA9IHN0ZmNhbXNzX29mX3BhcnNlX3BvcnRzKHN0ZmNhbXNzKTsKKysJaWYgKG51bV9zdWJk ZXZzIDwgMCkgeworKwkJcmV0ID0gLUVOT0RFVjsKKysJCWdvdG8gZXJyX2NsZWFudXBfbm90aWZp ZXI7CisrCX0KKysKKysJc3RmY2Ftc3NfbWNfaW5pdChwZGV2LCBzdGZjYW1zcyk7CisrCisrCXJl dCA9IHY0bDJfZGV2aWNlX3JlZ2lzdGVyKHN0ZmNhbXNzLT5kZXYsICZzdGZjYW1zcy0+djRsMl9k ZXYpOworKwlpZiAocmV0IDwgMCkgeworKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVnaXN0 ZXIgVjRMMiBkZXZpY2U6ICVkXG4iLCByZXQpOworKwkJZ290byBlcnJfY2xlYW51cF9ub3RpZmll cjsKKysJfQorKworKwlyZXQgPSBtZWRpYV9kZXZpY2VfcmVnaXN0ZXIoJnN0ZmNhbXNzLT5tZWRp YV9kZXYpOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3Rl ciBtZWRpYSBkZXZpY2U6ICVkXG4iLCByZXQpOworKwkJZ290byBlcnJfdW5yZWdpc3Rlcl9kZXZp Y2U7CisrCX0KKysKKysJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKKysKKysJc3RmY2Ftc3MtPm5v dGlmaWVyLm9wcyA9ICZzdGZjYW1zc19zdWJkZXZfbm90aWZpZXJfb3BzOworKwlyZXQgPSB2NGwy X2FzeW5jX25mX3JlZ2lzdGVyKCZzdGZjYW1zcy0+djRsMl9kZXYsICZzdGZjYW1zcy0+bm90aWZp ZXIpOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBh c3luYyBzdWJkZXYgbm9kZXM6ICVkXG4iLAorKwkJCXJldCk7CisrCQlnb3RvIGVycl91bnJlZ2lz dGVyX21lZGlhX2RldjsKKysJfQorKworKwlyZXR1cm4gMDsKKysKKytlcnJfdW5yZWdpc3Rlcl9t ZWRpYV9kZXY6CisrCW1lZGlhX2RldmljZV91bnJlZ2lzdGVyKCZzdGZjYW1zcy0+bWVkaWFfZGV2 KTsKKytlcnJfdW5yZWdpc3Rlcl9kZXZpY2U6CisrCXY0bDJfZGV2aWNlX3VucmVnaXN0ZXIoJnN0 ZmNhbXNzLT52NGwyX2Rldik7CisrZXJyX2NsZWFudXBfbm90aWZpZXI6CisrCXY0bDJfYXN5bmNf bmZfY2xlYW51cCgmc3RmY2Ftc3MtPm5vdGlmaWVyKTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisr LyoKKysgKiBzdGZjYW1zc19yZW1vdmUgLSBSZW1vdmUgU1RGQ0FNU1MgcGxhdGZvcm0gZGV2aWNl CisrICogQHBkZXY6IFBvaW50ZXIgdG8gU1RGQ0FNU1MgcGxhdGZvcm0gZGV2aWNlCisrICoKKysg KiBBbHdheXMgcmV0dXJucyAwLgorKyAqLworK3N0YXRpYyBpbnQgc3RmY2Ftc3NfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNh bXNzID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisrCisrCXY0bDJfZGV2aWNlX3VucmVn aXN0ZXIoJnN0ZmNhbXNzLT52NGwyX2Rldik7CisrCW1lZGlhX2RldmljZV9jbGVhbnVwKCZzdGZj YW1zcy0+bWVkaWFfZGV2KTsKKysJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOworKwor KwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3Rm Y2Ftc3Nfb2ZfbWF0Y2hbXSA9IHsKKysJeyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAt Y2Ftc3MiIH0sCisrCXsgLyogc2VudGluZWwgKi8gfSwKKyt9OworKworK01PRFVMRV9ERVZJQ0Vf VEFCTEUob2YsIHN0ZmNhbXNzX29mX21hdGNoKTsKKysKKytzdGF0aWMgaW50IF9fbWF5YmVfdW51 c2VkIHN0ZmNhbXNzX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlz dHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCXJl c2V0X2NvbnRyb2xfYXNzZXJ0KHN0ZmNhbXNzLT5zeXNfcnN0W1NURl9SU1RfQVhJV1JdLnJzdGMp OworKwlyZXNldF9jb250cm9sX2Fzc2VydChzdGZjYW1zcy0+c3lzX3JzdFtTVEZfUlNUX0lTUF9U T1BfQVhJXS5yc3RjKTsKKysJcmVzZXRfY29udHJvbF9hc3NlcnQoc3RmY2Ftc3MtPnN5c19yc3Rb U1RGX1JTVF9JU1BfVE9QX05dLnJzdGMpOworKwljbGtfZGlzYWJsZV91bnByZXBhcmUoc3RmY2Ft c3MtPnN5c19jbGtbU1RGX0NMS19JU1BfQVhJXS5jbGspOworKwljbGtfZGlzYWJsZV91bnByZXBh cmUoc3RmY2Ftc3MtPnN5c19jbGtbU1RGX0NMS19JU1BDT1JFXzJYXS5jbGspOworKworKwlyZXR1 cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBfX21heWJlX3VudXNlZCBzdGZjYW1zc19ydW50aW1l X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNh bXNzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCWludCByZXQ7CisrCisrCXJldCA9IGNsa19w cmVwYXJlX2VuYWJsZShzdGZjYW1zcy0+c3lzX2Nsa1tTVEZfQ0xLX0lTUENPUkVfMlhdLmNsayk7 CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFi bGUoc3RmY2Ftc3MtPnN5c19jbGtbU1RGX0NMS19JU1BfQVhJXS5jbGspOworKwlpZiAocmV0KQor KwkJcmV0dXJuIHJldDsKKysKKysJcmVzZXRfY29udHJvbF9kZWFzc2VydChzdGZjYW1zcy0+c3lz X3JzdFtTVEZfUlNUX0lTUF9UT1BfTl0ucnN0Yyk7CisrCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQo c3RmY2Ftc3MtPnN5c19yc3RbU1RGX1JTVF9JU1BfVE9QX0FYSV0ucnN0Yyk7CisrCXJlc2V0X2Nv bnRyb2xfZGVhc3NlcnQoc3RmY2Ftc3MtPnN5c19yc3RbU1RGX1JTVF9BWElXUl0ucnN0Yyk7Cisr CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgc3Rm Y2Ftc3NfcG1fb3BzID0geworKwlTRVRfUlVOVElNRV9QTV9PUFMoc3RmY2Ftc3NfcnVudGltZV9z dXNwZW5kLAorKwkJCSAgIHN0ZmNhbXNzX3J1bnRpbWVfcmVzdW1lLAorKwkJCSAgIE5VTEwpCisr fTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzdGZjYW1zc19kcml2ZXIgPSB7 CisrCS5wcm9iZSA9IHN0ZmNhbXNzX3Byb2JlLAorKwkucmVtb3ZlID0gc3RmY2Ftc3NfcmVtb3Zl LAorKwkuZHJpdmVyID0geworKwkJLm5hbWUgPSAic3RhcmZpdmUtY2Ftc3MiLAorKwkJLnBtID0g JnN0ZmNhbXNzX3BtX29wcywKKysJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihzdGZj YW1zc19vZl9tYXRjaCksCisrCX0sCisrfTsKKysKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHN0 ZmNhbXNzX2RyaXZlcik7CisrCisrTU9EVUxFX0FVVEhPUigiU3RhckZpdmUgQ29ycG9yYXRpb24i KTsKKytNT0RVTEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIENhbWVyYSBTdWJzeXN0ZW0gZHJpdmVy Iik7CisrTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNzLmggYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMDAwMDAwMDAwMDAwLi4xNWM0ZjM0YjkwNTQKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNzLmgKK0BAIC0wLDAgKzEs MTQ2IEBACisrLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKysvKgorKyAq IHN0Zl9jYW1zcy5oCisrICoKKysgKiBTdGFyZml2ZSBDYW1lcmEgU3Vic3lzdGVtIGRyaXZlcgor KyAqCisrICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4s IEx0ZC4KKysgKi8KKysKKysjaWZuZGVmIFNURl9DQU1TU19ICisrI2RlZmluZSBTVEZfQ0FNU1Nf SAorKworKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K KysjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4KKysjaW5jbHVkZSA8bWVkaWEvbWVkaWEtZGV2aWNl Lmg+CisrI2luY2x1ZGUgPG1lZGlhL21lZGlhLWVudGl0eS5oPgorKyNpbmNsdWRlIDxtZWRpYS92 NGwyLWFzeW5jLmg+CisrI2luY2x1ZGUgPG1lZGlhL3Y0bDItZGV2aWNlLmg+CisrCisrI2RlZmlu ZSBTVEZfRFZQX05BTUUgInN0Zl9kdnAiCisrI2RlZmluZSBTVEZfQ1NJX05BTUUgImNkbnNfY3Np MnJ4IgorKyNkZWZpbmUgU1RGX0lTUF9OQU1FICJzdGZfaXNwIgorKyNkZWZpbmUgU1RGX1ZJTl9O QU1FICJzdGZfdmluIgorKworKyNkZWZpbmUgU1RGX1BBRF9TSU5LICAgMAorKyNkZWZpbmUgU1RG X1BBRF9TUkMgICAgMQorKyNkZWZpbmUgU1RGX1BBRFNfTlVNICAgMgorKworK2VudW0gc3RmX3Bv cnRfbnVtIHsKKysJU1RGX1BPUlRfRFZQID0gMCwKKysJU1RGX1BPUlRfQ1NJMlJYCisrfTsKKysK KytlbnVtIHN0Zl9jbGsgeworKwlTVEZfQ0xLX0FQQl9GVU5DID0gMCwKKysJU1RGX0NMS19XUkFQ UEVSX0NMS19DLAorKwlTVEZfQ0xLX0RWUF9JTlYsCisrCVNURl9DTEtfQVhJV1IsCisrCVNURl9D TEtfTUlQSV9SWDBfUFhMLAorKwlTVEZfQ0xLX0lTUENPUkVfMlgsCisrCVNURl9DTEtfSVNQX0FY SSwKKysJU1RGX0NMS19OVU0KKyt9OworKworK2VudW0gc3RmX3JzdCB7CisrCVNURl9SU1RfV1JB UFBFUl9QID0gMCwKKysJU1RGX1JTVF9XUkFQUEVSX0MsCisrCVNURl9SU1RfQVhJUkQsCisrCVNU Rl9SU1RfQVhJV1IsCisrCVNURl9SU1RfSVNQX1RPUF9OLAorKwlTVEZfUlNUX0lTUF9UT1BfQVhJ LAorKwlTVEZfUlNUX05VTQorK307CisrCisrZW51bSBzdGZfaXJxIHsKKysJU1RGX0lSUV9WSU5X UiA9IDAsCisrCVNURl9JUlFfSVNQLAorKwlTVEZfSVJRX0lTUENTSUwsCisrCVNURl9JUlFfTlVN CisrfTsKKysKKytzdHJ1Y3Qgc3RmY2Ftc3MgeworKwlzdHJ1Y3QgdjRsMl9kZXZpY2UgdjRsMl9k ZXY7CisrCXN0cnVjdCBtZWRpYV9kZXZpY2UgbWVkaWFfZGV2OworKwlzdHJ1Y3QgbWVkaWFfcGlw ZWxpbmUgcGlwZTsKKysJc3RydWN0IGRldmljZSAqZGV2OworKwlzdHJ1Y3QgdjRsMl9hc3luY19u b3RpZmllciBub3RpZmllcjsKKysJdm9pZCBfX2lvbWVtICpzeXNjb25fYmFzZTsKKysJdm9pZCBf X2lvbWVtICppc3BfYmFzZTsKKysJaW50IGlycVtTVEZfSVJRX05VTV07CisrCXN0cnVjdCBjbGtf YnVsa19kYXRhIHN5c19jbGtbU1RGX0NMS19OVU1dOworKwlpbnQgbmNsa3M7CisrCXN0cnVjdCBy ZXNldF9jb250cm9sX2J1bGtfZGF0YSBzeXNfcnN0W1NURl9SU1RfTlVNXTsKKysJaW50IG5yc3Rz OworK307CisrCisrc3RydWN0IHN0ZmNhbXNzX2FzeW5jX3N1YmRldiB7CisrCXN0cnVjdCB2NGwy X2FzeW5jX3N1YmRldiBhc2Q7ICAvKiBtdXN0IGJlIGZpcnN0ICovCisrCWVudW0gc3RmX3BvcnRf bnVtIHBvcnQ7CisrfTsKKysKKytzdGF0aWMgaW5saW5lIHUzMiBzdGZfaXNwX3JlZ19yZWFkKHN0 cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MsIHUzMiByZWcpCisreworKwlyZXR1cm4gaW9yZWFkMzIo c3RmY2Ftc3MtPmlzcF9iYXNlICsgcmVnKTsKKyt9CisrCisrc3RhdGljIGlubGluZSB2b2lkIHN0 Zl9pc3BfcmVnX3dyaXRlKHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MsCisrCQkJCSAgICAgdTMy IHJlZywgdTMyIHZhbCkKKyt7CisrCWlvd3JpdGUzMih2YWwsIHN0ZmNhbXNzLT5pc3BfYmFzZSAr IHJlZyk7CisrfQorKworK3N0YXRpYyBpbmxpbmUgdm9pZCBzdGZfaXNwX3JlZ193cml0ZV9kZWxh eShzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzLAorKwkJCQkJICAgdTMyIHJlZywgdTMyIHZhbCwg dTMyIGRlbGF5KQorK3sKKysJaW93cml0ZTMyKHZhbCwgc3RmY2Ftc3MtPmlzcF9iYXNlICsgcmVn KTsKKysJdXNsZWVwX3JhbmdlKDEwMDAgKiBkZWxheSwgMTAwMCAqIGRlbGF5ICsgMTAwKTsKKyt9 CisrCisrc3RhdGljIGlubGluZSB2b2lkIHN0Zl9pc3BfcmVnX3NldF9iaXQoc3RydWN0IHN0ZmNh bXNzICpzdGZjYW1zcywKKysJCQkJICAgICAgIHUzMiByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKQor K3sKKysJdTMyIHZhbHVlOworKworKwl2YWx1ZSA9IGlvcmVhZDMyKHN0ZmNhbXNzLT5pc3BfYmFz ZSArIHJlZykgJiB+bWFzazsKKysJdmFsICY9IG1hc2s7CisrCXZhbCB8PSB2YWx1ZTsKKysJaW93 cml0ZTMyKHZhbCwgc3RmY2Ftc3MtPmlzcF9iYXNlICsgcmVnKTsKKyt9CisrCisrc3RhdGljIGlu bGluZSB2b2lkIHN0Zl9pc3BfcmVnX3NldChzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzLCB1MzIg cmVnLCB1MzIgbWFzaykKKyt7CisrCWlvd3JpdGUzMihpb3JlYWQzMihzdGZjYW1zcy0+aXNwX2Jh c2UgKyByZWcpIHwgbWFzaywKKysJCSAgc3RmY2Ftc3MtPmlzcF9iYXNlICsgcmVnKTsKKyt9Cisr Cisrc3RhdGljIGlubGluZSB1MzIgc3RmX3N5c2Nvbl9yZWdfcmVhZChzdHJ1Y3Qgc3RmY2Ftc3Mg KnN0ZmNhbXNzLCB1MzIgcmVnKQorK3sKKysJcmV0dXJuIGlvcmVhZDMyKHN0ZmNhbXNzLT5zeXNj b25fYmFzZSArIHJlZyk7CisrfQorKworK3N0YXRpYyBpbmxpbmUgdm9pZCBzdGZfc3lzY29uX3Jl Z193cml0ZShzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzLAorKwkJCQkJdTMyIHJlZywgdTMyIHZh bCkKKyt7CisrCWlvd3JpdGUzMih2YWwsIHN0ZmNhbXNzLT5zeXNjb25fYmFzZSArIHJlZyk7Cisr fQorKworK3N0YXRpYyBpbmxpbmUgdm9pZCBzdGZfc3lzY29uX3JlZ19zZXRfYml0KHN0cnVjdCBz dGZjYW1zcyAqc3RmY2Ftc3MsCisrCQkJCQkgIHUzMiByZWcsIHUzMiBiaXRfbWFzaykKKyt7Cisr CXUzMiB2YWx1ZTsKKysKKysJdmFsdWUgPSBpb3JlYWQzMihzdGZjYW1zcy0+c3lzY29uX2Jhc2Ug KyByZWcpOworKwlpb3dyaXRlMzIodmFsdWUgfCBiaXRfbWFzaywgc3RmY2Ftc3MtPnN5c2Nvbl9i YXNlICsgcmVnKTsKKyt9CisrCisrc3RhdGljIGlubGluZSB2b2lkIHN0Zl9zeXNjb25fcmVnX2Ns ZWFyX2JpdChzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzLAorKwkJCQkJICAgIHUzMiByZWcsIHUz MiBiaXRfbWFzaykKKyt7CisrCXUzMiB2YWx1ZTsKKysKKysJdmFsdWUgPSBpb3JlYWQzMihzdGZj YW1zcy0+c3lzY29uX2Jhc2UgKyByZWcpOworKwlpb3dyaXRlMzIodmFsdWUgJiB+Yml0X21hc2ss IHN0ZmNhbXNzLT5zeXNjb25fYmFzZSArIHJlZyk7CisrfQorKyNlbmRpZiAvKiBTVEZfQ0FNU1Nf SCAqLworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVz LzAwNDctbWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLXZpZGVvLWRyaXZlci5wYXRjaCBiL3NyY3Br Z3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ3LW1lZGlhLXN0YXJmaXZlLWNhbXNzLUFkZC12aWRlby1k cml2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYjI4 NWY2OTg0M2EyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8w MDQ3LW1lZGlhLXN0YXJmaXZlLWNhbXNzLUFkZC12aWRlby1kcml2ZXIucGF0Y2gKQEAgLTAsMCAr MSw4NjEgQEAKK0Zyb20gNDQ2MjRhMDA1ZWRlOGZhZjI4ZTQ5MGRmZDFjZDg5ZjNmNzI2ZWE0ZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2sgWmh1IDxqYWNrLnpodUBzdGFyZml2 ZXRlY2guY29tPgorRGF0ZTogTW9uLCAxOSBKdW4gMjAyMyAxOToyODozNiArMDgwMAorU3ViamVj dDogW1BBVENIIDQ3LzcyXSBtZWRpYTogc3RhcmZpdmU6IGNhbXNzOiBBZGQgdmlkZW8gZHJpdmVy CisKK0FkZCB2aWRlbyBkcml2ZXIgZm9yIFN0YXJGaXZlIENhbWVyYSBTdWJzeXN0ZW0uCisKK1Np Z25lZC1vZmYtYnk6IEphY2sgWmh1IDxqYWNrLnpodUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisg Li4uL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL01ha2VmaWxlICAgIHwgICA0ICstCisg Li4uL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl92aWRlby5jIHwgNzI0ICsrKysr KysrKysrKysrKysrKworIC4uLi9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmlk ZW8uaCB8ICA5MiArKysKKyAzIGZpbGVzIGNoYW5nZWQsIDgxOSBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3Rh cmZpdmUvY2Ftc3Mvc3RmX3ZpZGVvLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmlkZW8uaAorCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9NYWtlZmlsZSBiL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvTWFrZWZpbGUKK2luZGV4IGQ1NmRkZDA3OGE3MS4u ZWI0NTc5MTdhOTE0IDEwMDY0NAorLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2 ZS9jYW1zcy9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9j YW1zcy9NYWtlZmlsZQorQEAgLTMsNiArMyw4IEBACisgIyBNYWtlZmlsZSBmb3IgU3RhckZpdmUg Q2FtZXJhIFN1YnN5c3RlbSBkcml2ZXIKKyAjCisgCistc3RhcmZpdmUtY2Ftc3Mtb2JqcyArPSBz dGZfY2Ftc3MubworK3N0YXJmaXZlLWNhbXNzLW9ianMgKz0gXAorKwkJc3RmX2NhbXNzLm8gXAor KwkJc3RmX3ZpZGVvLm8KKyAKKyBvYmotJChDT05GSUdfVklERU9fU1RBUkZJVkVfQ0FNU1MpICs9 IHN0YXJmaXZlLWNhbXNzLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0 YXJmaXZlL2NhbXNzL3N0Zl92aWRlby5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2 ZS9jYW1zcy9zdGZfdmlkZW8uYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwMC4uMmU2NDcyZmU1MWM2CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl92aWRlby5jCitAQCAtMCwwICsxLDcyNCBAQAorKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBzdGZfdmlkZW8uYwor KyAqCisrICogU3RhckZpdmUgQ2FtZXJhIFN1YnN5c3RlbSAtIFY0TDIgZGV2aWNlIG5vZGUKKysg KgorKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBM dGQuCisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKysjaW5jbHVkZSA8 bWVkaWEvdjRsMi1jdHJscy5oPgorKyNpbmNsdWRlIDxtZWRpYS92NGwyLWV2ZW50Lmg+CisrI2lu Y2x1ZGUgPG1lZGlhL3Y0bDItbWMuaD4KKysjaW5jbHVkZSA8bWVkaWEvdmlkZW9idWYyLWRtYS1j b250aWcuaD4KKysKKysjaW5jbHVkZSAic3RmX2NhbXNzLmgiCisrI2luY2x1ZGUgInN0Zl92aWRl by5oIgorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RmY2Ftc3NfZm9ybWF0X2luZm8gZm9ybWF0 c19waXhfd3JbXSA9IHsKKysJeworKwkJLmNvZGUgPSBNRURJQV9CVVNfRk1UX1NSR0dCMTBfMVgx MCwKKysJCS5waXhlbGZvcm1hdCA9IFY0TDJfUElYX0ZNVF9TUkdHQjEwLAorKwkJLnBsYW5lcyA9 IDEsCisrCQkudnN1YiA9IHsgMSB9LAorKwkJLmJwcCA9IDEwLAorKwl9LAorKwl7CisrCQkuY29k ZSA9IE1FRElBX0JVU19GTVRfU0dSQkcxMF8xWDEwLAorKwkJLnBpeGVsZm9ybWF0ID0gVjRMMl9Q SVhfRk1UX1NHUkJHMTAsCisrCQkucGxhbmVzID0gMSwKKysJCS52c3ViID0geyAxIH0sCisrCQku YnBwID0gMTAsCisrCX0sCisrCXsKKysJCS5jb2RlID0gTUVESUFfQlVTX0ZNVF9TR0JSRzEwXzFY MTAsCisrCQkucGl4ZWxmb3JtYXQgPSBWNEwyX1BJWF9GTVRfU0dCUkcxMCwKKysJCS5wbGFuZXMg PSAxLAorKwkJLnZzdWIgPSB7IDEgfSwKKysJCS5icHAgPSAxMCwKKysJfSwKKysJeworKwkJLmNv ZGUgPSBNRURJQV9CVVNfRk1UX1NCR0dSMTBfMVgxMCwKKysJCS5waXhlbGZvcm1hdCA9IFY0TDJf UElYX0ZNVF9TQkdHUjEwLAorKwkJLnBsYW5lcyA9IDEsCisrCQkudnN1YiA9IHsgMSB9LAorKwkJ LmJwcCA9IDEwLAorKwl9LAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBzdGZjYW1zc19m b3JtYXRfaW5mbyBmb3JtYXRzX3BpeF9pc3BbXSA9IHsKKysJeworKwkJLmNvZGUgPSBNRURJQV9C VVNfRk1UX1kxMl8xWDEyLAorKwkJLnBpeGVsZm9ybWF0ID0gVjRMMl9QSVhfRk1UX05WMTIsCisr CQkucGxhbmVzID0gMiwKKysJCS52c3ViID0geyAxLCAyIH0sCisrCQkuYnBwID0gOCwKKysJfSwK Kyt9OworKworKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICogSGVscGVyIGZ1bmN0aW9ucwor KyAqLworKworK3N0YXRpYyBpbnQgdmlkZW9fZmluZF9mb3JtYXQodTMyIGNvZGUsIHUzMiBwaXhl bGZvcm1hdCwKKysJCQkgICAgIHN0cnVjdCBzdGZjYW1zc192aWRlbyAqdmlkZW8pCisreworKwl1 bnNpZ25lZCBpbnQgaTsKKysKKysJZm9yIChpID0gMDsgaSA8IHZpZGVvLT5uZm9ybWF0czsgKytp KSB7CisrCQlpZiAodmlkZW8tPmZvcm1hdHNbaV0uY29kZSA9PSBjb2RlICYmCisrCQkgICAgdmlk ZW8tPmZvcm1hdHNbaV0ucGl4ZWxmb3JtYXQgPT0gcGl4ZWxmb3JtYXQpCisrCQkJcmV0dXJuIGk7 CisrCX0KKysKKysJZm9yIChpID0gMDsgaSA8IHZpZGVvLT5uZm9ybWF0czsgKytpKQorKwkJaWYg KHZpZGVvLT5mb3JtYXRzW2ldLmNvZGUgPT0gY29kZSkKKysJCQlyZXR1cm4gaTsKKysKKysJZm9y IChpID0gMDsgaSA8IHZpZGVvLT5uZm9ybWF0czsgKytpKQorKwkJaWYgKHZpZGVvLT5mb3JtYXRz W2ldLnBpeGVsZm9ybWF0ID09IHBpeGVsZm9ybWF0KQorKwkJCXJldHVybiBpOworKworKwlyZXR1 cm4gLUVJTlZBTDsKKyt9CisrCisrc3RhdGljIGludCBfX3ZpZGVvX3RyeV9mbXQoc3RydWN0IHN0 ZmNhbXNzX3ZpZGVvICp2aWRlbywgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQorK3sKKysJc3RydWN0 IHY0bDJfcGl4X2Zvcm1hdCAqcGl4OworKwljb25zdCBzdHJ1Y3Qgc3RmY2Ftc3NfZm9ybWF0X2lu Zm8gKmZpOworKwl1MzIgd2lkdGgsIGhlaWdodDsKKysJdTMyIGJwbDsKKysJdW5zaWduZWQgaW50 IGk7CisrCisrCXBpeCA9ICZmLT5mbXQucGl4OworKworKwlmb3IgKGkgPSAwOyBpIDwgdmlkZW8t Pm5mb3JtYXRzOyBpKyspCisrCQlpZiAocGl4LT5waXhlbGZvcm1hdCA9PSB2aWRlby0+Zm9ybWF0 c1tpXS5waXhlbGZvcm1hdCkKKysJCQlicmVhazsKKysKKysJaWYgKGkgPT0gdmlkZW8tPm5mb3Jt YXRzKQorKwkJaSA9IDA7IC8qIGRlZmF1bHQgZm9ybWF0ICovCisrCisrCWZpID0gJnZpZGVvLT5m b3JtYXRzW2ldOworKwl3aWR0aCA9IHBpeC0+d2lkdGg7CisrCWhlaWdodCA9IHBpeC0+aGVpZ2h0 OworKworKwltZW1zZXQocGl4LCAwLCBzaXplb2YoKnBpeCkpOworKworKwlwaXgtPnBpeGVsZm9y bWF0ID0gZmktPnBpeGVsZm9ybWF0OworKwlwaXgtPndpZHRoID0gY2xhbXBfdCh1MzIsIHdpZHRo LCBTVEZDQU1TU19GUkFNRV9NSU5fV0lEVEgsCisrCQkJICAgICBTVEZDQU1TU19GUkFNRV9NQVhf V0lEVEgpOworKwlwaXgtPmhlaWdodCA9IGNsYW1wX3QodTMyLCBoZWlnaHQsIFNURkNBTVNTX0ZS QU1FX01JTl9IRUlHSFQsCisrCQkJICAgICAgU1RGQ0FNU1NfRlJBTUVfTUFYX0hFSUdIVCk7Cisr CWJwbCA9IHBpeC0+d2lkdGggKiBmaS0+YnBwIC8gODsKKysJYnBsID0gQUxJR04oYnBsLCB2aWRl by0+YnBsX2FsaWdubWVudCk7CisrCXBpeC0+Ynl0ZXNwZXJsaW5lID0gYnBsOworKworKwlmb3Ig KGkgPSAwOyBpIDwgZmktPnBsYW5lczsgKytpKQorKwkJcGl4LT5zaXplaW1hZ2UgKz0gYnBsICog cGl4LT5oZWlnaHQgLyBmaS0+dnN1YltpXTsKKysKKysJcGl4LT5maWVsZCA9IFY0TDJfRklFTERf Tk9ORTsKKysJcGl4LT5jb2xvcnNwYWNlID0gVjRMMl9DT0xPUlNQQUNFX1NSR0I7CisrCXBpeC0+ ZmxhZ3MgPSAwOworKwlwaXgtPnljYmNyX2VuYyA9CisrCQlWNEwyX01BUF9ZQ0JDUl9FTkNfREVG QVVMVChwaXgtPmNvbG9yc3BhY2UpOworKwlwaXgtPnF1YW50aXphdGlvbiA9IFY0TDJfTUFQX1FV QU5USVpBVElPTl9ERUZBVUxUKHRydWUsCisrCQkJCQkJCSAgcGl4LT5jb2xvcnNwYWNlLAorKwkJ CQkJCQkgIHBpeC0+eWNiY3JfZW5jKTsKKysJcGl4LT54ZmVyX2Z1bmMgPSBWNEwyX01BUF9YRkVS X0ZVTkNfREVGQVVMVChwaXgtPmNvbG9yc3BhY2UpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisr c3RhdGljIGludCBzdGZfdmlkZW9faW5pdF9mb3JtYXQoc3RydWN0IHN0ZmNhbXNzX3ZpZGVvICp2 aWRlbykKKyt7CisrCWludCByZXQ7CisrCXN0cnVjdCB2NGwyX2Zvcm1hdCBmb3JtYXQgPSB7Cisr CQkudHlwZSA9IHZpZGVvLT50eXBlLAorKwkJLmZtdC5waXggPSB7CisrCQkJLndpZHRoID0gMTky MCwKKysJCQkuaGVpZ2h0ID0gMTA4MCwKKysJCQkucGl4ZWxmb3JtYXQgPSBWNEwyX1BJWF9GTVRf UkdCNTY1LAorKwkJfSwKKysJfTsKKysKKysJcmV0ID0gX192aWRlb190cnlfZm10KHZpZGVvLCAm Zm9ybWF0KTsKKysKKysJaWYgKHJldCA8IDApCisrCQlyZXR1cm4gcmV0OworKworKwl2aWRlby0+ YWN0aXZlX2ZtdCA9IGZvcm1hdDsKKysKKysJcmV0dXJuIDA7CisrfQorKworKy8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrICogVmlkZW8gcXVldWUgb3BlcmF0aW9ucworKyAqLworKworK3N0YXRp YyBpbnQgdmlkZW9fcXVldWVfc2V0dXAoc3RydWN0IHZiMl9xdWV1ZSAqcSwKKysJCQkgICAgIHVu c2lnbmVkIGludCAqbnVtX2J1ZmZlcnMsCisrCQkJICAgICB1bnNpZ25lZCBpbnQgKm51bV9wbGFu ZXMsCisrCQkJICAgICB1bnNpZ25lZCBpbnQgc2l6ZXNbXSwKKysJCQkgICAgIHN0cnVjdCBkZXZp Y2UgKmFsbG9jX2RldnNbXSkKKyt7CisrCXN0cnVjdCBzdGZjYW1zc192aWRlbyAqdmlkZW8gPSB2 YjJfZ2V0X2Rydl9wcml2KHEpOworKwljb25zdCBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0ICpmb3Jt YXQgPSAmdmlkZW8tPmFjdGl2ZV9mbXQuZm10LnBpeDsKKysKKysJaWYgKCpudW1fcGxhbmVzKSB7 CisrCQlpZiAoKm51bV9wbGFuZXMgIT0gMSkKKysJCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJCWlm IChzaXplc1swXSA8IGZvcm1hdC0+c2l6ZWltYWdlKQorKwkJCXJldHVybiAtRUlOVkFMOworKwl9 CisrCisrCSpudW1fcGxhbmVzID0gMTsKKysJc2l6ZXNbMF0gPSBmb3JtYXQtPnNpemVpbWFnZTsK KysJaWYgKCFzaXplc1swXSkKKysJCWRldl9lcnIodmlkZW8tPnN0ZmNhbXNzLT5kZXYsCisrCQkJ IiVzOiBlcnJvciBzaXplIGlzIHplcm8hISFcbiIsIF9fZnVuY19fKTsKKysKKysJZGV2X2RiZyh2 aWRlby0+c3RmY2Ftc3MtPmRldiwgInBsYW5lcyA9ICVkLCBzaXplID0gJWRcbiIsCisrCQkqbnVt X3BsYW5lcywgc2l6ZXNbMF0pOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCB2 aWRlb19idWZfaW5pdChzdHJ1Y3QgdmIyX2J1ZmZlciAqdmIpCisreworKwlzdHJ1Y3QgdmIyX3Y0 bDJfYnVmZmVyICp2YnVmID0gdG9fdmIyX3Y0bDJfYnVmZmVyKHZiKTsKKysJc3RydWN0IHN0ZmNh bXNzX3ZpZGVvICp2aWRlbyA9IHZiMl9nZXRfZHJ2X3ByaXYodmItPnZiMl9xdWV1ZSk7CisrCXN0 cnVjdCBzdGZjYW1zc19idWZmZXIgKmJ1ZmZlciA9CisrCQljb250YWluZXJfb2YodmJ1Ziwgc3Ry dWN0IHN0ZmNhbXNzX2J1ZmZlciwgdmIpOworKwljb25zdCBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0 ICpmbXQgPSAmdmlkZW8tPmFjdGl2ZV9mbXQuZm10LnBpeDsKKysJZG1hX2FkZHJfdCAqcGFkZHI7 CisrCisrCXBhZGRyID0gdmIyX3BsYW5lX2Nvb2tpZSh2YiwgMCk7CisrCWJ1ZmZlci0+YWRkclsw XSA9ICpwYWRkcjsKKysKKysJaWYgKGZtdC0+cGl4ZWxmb3JtYXQgPT0gVjRMMl9QSVhfRk1UX05W MTIgfHwKKysJICAgIGZtdC0+cGl4ZWxmb3JtYXQgPT0gVjRMMl9QSVhfRk1UX05WMjEgfHwKKysJ ICAgIGZtdC0+cGl4ZWxmb3JtYXQgPT0gVjRMMl9QSVhfRk1UX05WMTYgfHwKKysJICAgIGZtdC0+ cGl4ZWxmb3JtYXQgPT0gVjRMMl9QSVhfRk1UX05WNjEpCisrCQlidWZmZXItPmFkZHJbMV0gPQor KwkJCWJ1ZmZlci0+YWRkclswXSArIGZtdC0+Ynl0ZXNwZXJsaW5lICogZm10LT5oZWlnaHQ7Cisr CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHZpZGVvX2J1Zl9wcmVwYXJlKHN0cnVj dCB2YjJfYnVmZmVyICp2YikKKyt7CisrCXN0cnVjdCB2YjJfdjRsMl9idWZmZXIgKnZidWYgPSB0 b192YjJfdjRsMl9idWZmZXIodmIpOworKwlzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvID0g dmIyX2dldF9kcnZfcHJpdih2Yi0+dmIyX3F1ZXVlKTsKKysJY29uc3Qgc3RydWN0IHY0bDJfcGl4 X2Zvcm1hdCAqZm10ID0gJnZpZGVvLT5hY3RpdmVfZm10LmZtdC5waXg7CisrCisrCWlmIChmbXQt PnNpemVpbWFnZSA+IHZiMl9wbGFuZV9zaXplKHZiLCAwKSkgeworKwkJZGV2X2Vycih2aWRlby0+ c3RmY2Ftc3MtPmRldiwKKysJCQkic2l6ZWltYWdlID0gJWQsIHBsYW5lIHNpemUgPSAlZFxuIiwK KysJCQlmbXQtPnNpemVpbWFnZSwgKHVuc2lnbmVkIGludCl2YjJfcGxhbmVfc2l6ZSh2YiwgMCkp OworKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKysJdmIyX3NldF9wbGFuZV9wYXlsb2FkKHZiLCAw LCBmbXQtPnNpemVpbWFnZSk7CisrCisrCXZidWYtPmZpZWxkID0gVjRMMl9GSUVMRF9OT05FOwor KworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgdmlkZW9fYnVmX3F1ZXVlKHN0cnVj dCB2YjJfYnVmZmVyICp2YikKKyt7CisrCXN0cnVjdCB2YjJfdjRsMl9idWZmZXIgKnZidWYgPSB0 b192YjJfdjRsMl9idWZmZXIodmIpOworKwlzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvID0g dmIyX2dldF9kcnZfcHJpdih2Yi0+dmIyX3F1ZXVlKTsKKysJc3RydWN0IHN0ZmNhbXNzX2J1ZmZl ciAqYnVmZmVyID0KKysJCWNvbnRhaW5lcl9vZih2YnVmLCBzdHJ1Y3Qgc3RmY2Ftc3NfYnVmZmVy LCB2Yik7CisrCisrCXZpZGVvLT5vcHMtPnF1ZXVlX2J1ZmZlcih2aWRlbywgYnVmZmVyKTsKKyt9 CisrCisrLyoKKysgKiB2aWRlb19tYnVzX3RvX3BpeCAtIENvbnZlcnQgdjRsMl9tYnVzX2ZyYW1l Zm10IHRvIHY0bDJfcGl4X2Zvcm1hdAorKyAqIEBtYnVzOiB2NGwyX21idXNfZnJhbWVmbXQgZm9y bWF0IChpbnB1dCkKKysgKiBAcGl4OiB2NGwyX3BpeF9mb3JtYXRfbXBsYW5lIGZvcm1hdCAob3V0 cHV0KQorKyAqIEBmOiBhIHBvaW50ZXIgdG8gZm9ybWF0cyBhcnJheSBlbGVtZW50IHRvIGJlIHVz ZWQgZm9yIHRoZSBjb252ZXJzaW9uCisrICogQGFsaWdubWVudDogYnl0ZXNwZXJsaW5lIGFsaWdu bWVudCB2YWx1ZQorKyAqCisrICogRmlsbCB0aGUgb3V0cHV0IHBpeCBzdHJ1Y3R1cmUgd2l0aCBp bmZvcm1hdGlvbiBmcm9tIHRoZSBpbnB1dCBtYnVzIGZvcm1hdC4KKysgKgorKyAqIFJldHVybiAw IG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZQorKyAqLworK3N0 YXRpYyBpbnQgdmlkZW9fbWJ1c190b19waXgoY29uc3Qgc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZt dCAqbWJ1cywKKysJCQkgICAgIHN0cnVjdCB2NGwyX3BpeF9mb3JtYXQgKnBpeCwKKysJCQkgICAg IGNvbnN0IHN0cnVjdCBzdGZjYW1zc19mb3JtYXRfaW5mbyAqZiwKKysJCQkgICAgIHVuc2lnbmVk IGludCBhbGlnbm1lbnQpCisreworKwl1MzIgYnl0ZXNwZXJsaW5lOworKwl1bnNpZ25lZCBpbnQg aTsKKysKKysJbWVtc2V0KHBpeCwgMCwgc2l6ZW9mKCpwaXgpKTsKKysJdjRsMl9maWxsX3BpeF9m b3JtYXQocGl4LCBtYnVzKTsKKysJcGl4LT5waXhlbGZvcm1hdCA9IGYtPnBpeGVsZm9ybWF0Owor KwlieXRlc3BlcmxpbmUgPSBwaXgtPndpZHRoICogZi0+YnBwIC8gODsKKysJYnl0ZXNwZXJsaW5l ID0gQUxJR04oYnl0ZXNwZXJsaW5lLCBhbGlnbm1lbnQpOworKwlwaXgtPmJ5dGVzcGVybGluZSA9 IGJ5dGVzcGVybGluZTsKKysKKysJZm9yIChpID0gMDsgaSA8IGYtPnBsYW5lczsgKytpKQorKwkJ cGl4LT5zaXplaW1hZ2UgKz0gYnl0ZXNwZXJsaW5lICogcGl4LT5oZWlnaHQgLyBmLT52c3ViW2ld OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHN0cnVjdCB2NGwyX3N1YmRldiAqdmlk ZW9fcmVtb3RlX3N1YmRldihzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvLAorKwkJCQkJICAg ICAgIHUzMiAqcGFkKQorK3sKKysJc3RydWN0IG1lZGlhX3BhZCAqcmVtb3RlOworKworKwlyZW1v dGUgPSBtZWRpYV9wYWRfcmVtb3RlX3BhZF9maXJzdCgmdmlkZW8tPnBhZCk7CisrCisrCWlmICgh cmVtb3RlIHx8ICFpc19tZWRpYV9lbnRpdHlfdjRsMl9zdWJkZXYocmVtb3RlLT5lbnRpdHkpKQor KwkJcmV0dXJuIE5VTEw7CisrCisrCWlmIChwYWQpCisrCQkqcGFkID0gcmVtb3RlLT5pbmRleDsK KysKKysJcmV0dXJuIG1lZGlhX2VudGl0eV90b192NGwyX3N1YmRldihyZW1vdGUtPmVudGl0eSk7 CisrfQorKworK3N0YXRpYyBpbnQgdmlkZW9fZ2V0X3N1YmRldl9mb3JtYXQoc3RydWN0IHN0ZmNh bXNzX3ZpZGVvICp2aWRlbywKKysJCQkJICAgc3RydWN0IHY0bDJfZm9ybWF0ICpmb3JtYXQpCisr eworKwlzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0ICpwaXggPSAmdmlkZW8tPmFjdGl2ZV9mbXQuZm10 LnBpeDsKKysJc3RydWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCBmbXQ7CisrCXN0cnVjdCB2NGwyX3N1 YmRldiAqc3ViZGV2OworKwl1MzIgcGl4ZWxmb3JtYXQ7CisrCXUzMiBwYWQ7CisrCWludCByZXQ7 CisrCisrCXN1YmRldiA9IHZpZGVvX3JlbW90ZV9zdWJkZXYodmlkZW8sICZwYWQpOworKwlpZiAo IXN1YmRldikKKysJCXJldHVybiAtRVBJUEU7CisrCisrCWZtdC5wYWQgPSBwYWQ7CisrCWZtdC53 aGljaCA9IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkU7CisrCisrCXJldCA9IHY0bDJfc3ViZGV2 X2NhbGwoc3ViZGV2LCBwYWQsIGdldF9mbXQsIE5VTEwsICZmbXQpOworKwlpZiAocmV0KQorKwkJ cmV0dXJuIHJldDsKKysKKysJcGl4ZWxmb3JtYXQgPSBwaXgtPnBpeGVsZm9ybWF0OworKwlyZXQg PSB2aWRlb19maW5kX2Zvcm1hdChmbXQuZm9ybWF0LmNvZGUsIHBpeGVsZm9ybWF0LCB2aWRlbyk7 CisrCWlmIChyZXQgPCAwKQorKwkJcmV0dXJuIHJldDsKKysKKysJZm9ybWF0LT50eXBlID0gdmlk ZW8tPnR5cGU7CisrCisrCXJldHVybiB2aWRlb19tYnVzX3RvX3BpeCgmZm10LmZvcm1hdCwgJmZv cm1hdC0+Zm10LnBpeCwKKysJCQkJICZ2aWRlby0+Zm9ybWF0c1tyZXRdLCB2aWRlby0+YnBsX2Fs aWdubWVudCk7CisrfQorKworK3N0YXRpYyBpbnQgdmlkZW9fY2hlY2tfZm9ybWF0KHN0cnVjdCBz dGZjYW1zc192aWRlbyAqdmlkZW8pCisreworKwlzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0ICpwaXgg PSAmdmlkZW8tPmFjdGl2ZV9mbXQuZm10LnBpeDsKKysJc3RydWN0IHY0bDJfZm9ybWF0IGZvcm1h dDsKKysJc3RydWN0IHY0bDJfcGl4X2Zvcm1hdCAqc2RfcGl4ID0gJmZvcm1hdC5mbXQucGl4Owor KwlpbnQgcmV0OworKworKwlzZF9waXgtPnBpeGVsZm9ybWF0ID0gcGl4LT5waXhlbGZvcm1hdDsK KysJcmV0ID0gdmlkZW9fZ2V0X3N1YmRldl9mb3JtYXQodmlkZW8sICZmb3JtYXQpOworKwlpZiAo cmV0IDwgMCkKKysJCXJldHVybiByZXQ7CisrCisrCWlmIChwaXgtPnBpeGVsZm9ybWF0ICE9IHNk X3BpeC0+cGl4ZWxmb3JtYXQgfHwKKysJICAgIHBpeC0+aGVpZ2h0ICE9IHNkX3BpeC0+aGVpZ2h0 IHx8CisrCSAgICBwaXgtPndpZHRoICE9IHNkX3BpeC0+d2lkdGggfHwKKysJICAgIHBpeC0+Zmll bGQgIT0gZm9ybWF0LmZtdC5waXguZmllbGQpIHsKKysJCWRldl9lcnIodmlkZW8tPnN0ZmNhbXNz LT5kZXYsCisrCQkJIm5vdCBtYXRjaDpcbiIKKysJCQkicGl4ZWxmb3JtYXQ6IDB4JXggPC0+IDB4 JXhcbiIKKysJCQkiaGVpZ2h0OiAlZCA8LT4gJWRcbiIKKysJCQkiZmllbGQ6ICVkIDwtPiAlZFxu IiwKKysJCQlwaXgtPnBpeGVsZm9ybWF0LCBzZF9waXgtPnBpeGVsZm9ybWF0LAorKwkJCXBpeC0+ aGVpZ2h0LCBzZF9waXgtPmhlaWdodCwKKysJCQlwaXgtPmZpZWxkLCBmb3JtYXQuZm10LnBpeC5m aWVsZCk7CisrCQlyZXR1cm4gLUVQSVBFOworKwl9CisrCisrCXJldHVybiAwOworK30KKysKKytz dGF0aWMgaW50IHZpZGVvX3N0YXJ0X3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICpxLCB1bnNp Z25lZCBpbnQgY291bnQpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvID0gdmIy X2dldF9kcnZfcHJpdihxKTsKKysJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9ICZ2aWRlby0+ dmRldjsKKysJc3RydWN0IG1lZGlhX2VudGl0eSAqZW50aXR5OworKwlzdHJ1Y3QgbWVkaWFfcGFk ICpwYWQ7CisrCXN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2OworKwlpbnQgcmV0OworKworKwly ZXQgPSB2aWRlb19kZXZpY2VfcGlwZWxpbmVfc3RhcnQodmRldiwgJnZpZGVvLT5zdGZjYW1zcy0+ cGlwZSk7CisrCWlmIChyZXQgPCAwKSB7CisrCQlkZXZfZXJyKHZpZGVvLT5zdGZjYW1zcy0+ZGV2 LAorKwkJCSJGYWlsZWQgdG8gbWVkaWFfcGlwZWxpbmVfc3RhcnQ6ICVkXG4iLCByZXQpOworKwkJ cmV0dXJuIHJldDsKKysJfQorKworKwlyZXQgPSB2aWRlb19jaGVja19mb3JtYXQodmlkZW8pOwor KwlpZiAocmV0IDwgMCkKKysJCWdvdG8gZXJyb3I7CisrCisrCXJldCA9IHBtX3J1bnRpbWVfcmVz dW1lX2FuZF9nZXQodmlkZW8tPnN0ZmNhbXNzLT5kZXYpOworKwlpZiAocmV0IDwgMCkgeworKwkJ ZGV2X2Vycih2aWRlby0+c3RmY2Ftc3MtPmRldiwgInBvd2VyIHVwIGZhaWxlZCAlZFxuIiwgcmV0 KTsKKysJCWdvdG8gZXJyb3I7CisrCX0KKysKKysJZW50aXR5ID0gJnZkZXYtPmVudGl0eTsKKysJ d2hpbGUgKDEpIHsKKysJCXBhZCA9ICZlbnRpdHktPnBhZHNbMF07CisrCQlpZiAoIShwYWQtPmZs YWdzICYgTUVESUFfUEFEX0ZMX1NJTkspKQorKwkJCWJyZWFrOworKworKwkJcGFkID0gbWVkaWFf cGFkX3JlbW90ZV9wYWRfZmlyc3QocGFkKTsKKysJCWlmICghcGFkIHx8ICFpc19tZWRpYV9lbnRp dHlfdjRsMl9zdWJkZXYocGFkLT5lbnRpdHkpKQorKwkJCWJyZWFrOworKworKwkJZW50aXR5ID0g cGFkLT5lbnRpdHk7CisrCQlzdWJkZXYgPSBtZWRpYV9lbnRpdHlfdG9fdjRsMl9zdWJkZXYoZW50 aXR5KTsKKysKKysJCXJldCA9IHY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCB2aWRlbywgc19zdHJl YW0sIDEpOworKwkJaWYgKHJldCA8IDAgJiYgcmV0ICE9IC1FTk9JT0NUTENNRCkKKysJCQlnb3Rv IGVycl9wbV9wdXQ7CisrCX0KKysJcmV0dXJuIDA7CisrCisrZXJyX3BtX3B1dDoKKysJcG1fcnVu dGltZV9wdXQodmlkZW8tPnN0ZmNhbXNzLT5kZXYpOworK2Vycm9yOgorKwl2aWRlb19kZXZpY2Vf cGlwZWxpbmVfc3RvcCh2ZGV2KTsKKysJdmlkZW8tPm9wcy0+Zmx1c2hfYnVmZmVycyh2aWRlbywg VkIyX0JVRl9TVEFURV9RVUVVRUQpOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9p ZCB2aWRlb19zdG9wX3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICpxKQorK3sKKysJc3RydWN0 IHN0ZmNhbXNzX3ZpZGVvICp2aWRlbyA9IHZiMl9nZXRfZHJ2X3ByaXYocSk7CisrCXN0cnVjdCB2 aWRlb19kZXZpY2UgKnZkZXYgPSAmdmlkZW8tPnZkZXY7CisrCXN0cnVjdCBtZWRpYV9lbnRpdHkg KmVudGl0eTsKKysJc3RydWN0IG1lZGlhX3BhZCAqcGFkOworKwlzdHJ1Y3QgdjRsMl9zdWJkZXYg KnN1YmRldjsKKysJaW50IHJldDsKKysKKysJZW50aXR5ID0gJnZkZXYtPmVudGl0eTsKKysJd2hp bGUgKDEpIHsKKysJCXBhZCA9ICZlbnRpdHktPnBhZHNbMF07CisrCQlpZiAoIShwYWQtPmZsYWdz ICYgTUVESUFfUEFEX0ZMX1NJTkspKQorKwkJCWJyZWFrOworKworKwkJcGFkID0gbWVkaWFfcGFk X3JlbW90ZV9wYWRfZmlyc3QocGFkKTsKKysJCWlmICghcGFkIHx8ICFpc19tZWRpYV9lbnRpdHlf djRsMl9zdWJkZXYocGFkLT5lbnRpdHkpKQorKwkJCWJyZWFrOworKworKwkJZW50aXR5ID0gcGFk LT5lbnRpdHk7CisrCQlzdWJkZXYgPSBtZWRpYV9lbnRpdHlfdG9fdjRsMl9zdWJkZXYoZW50aXR5 KTsKKysKKysJCXY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCB2aWRlbywgc19zdHJlYW0sIDApOwor Kwl9CisrCisrCXJldCA9IHBtX3J1bnRpbWVfcHV0KHZpZGVvLT5zdGZjYW1zcy0+ZGV2KTsKKysJ aWYgKHJldCA8IDApCisrCQlkZXZfZXJyKHZpZGVvLT5zdGZjYW1zcy0+ZGV2LCAicG93ZXIgZG93 biBmYWlsZWQ6JWRcbiIsIHJldCk7CisrCisrCXZpZGVvX2RldmljZV9waXBlbGluZV9zdG9wKHZk ZXYpOworKwl2aWRlby0+b3BzLT5mbHVzaF9idWZmZXJzKHZpZGVvLCBWQjJfQlVGX1NUQVRFX0VS Uk9SKTsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB2YjJfb3BzIHN0Zl92aWRlb192YjJf cV9vcHMgPSB7CisrCS5xdWV1ZV9zZXR1cCAgICAgPSB2aWRlb19xdWV1ZV9zZXR1cCwKKysJLndh aXRfcHJlcGFyZSAgICA9IHZiMl9vcHNfd2FpdF9wcmVwYXJlLAorKwkud2FpdF9maW5pc2ggICAg ID0gdmIyX29wc193YWl0X2ZpbmlzaCwKKysJLmJ1Zl9pbml0ICAgICAgICA9IHZpZGVvX2J1Zl9p bml0LAorKwkuYnVmX3ByZXBhcmUgICAgID0gdmlkZW9fYnVmX3ByZXBhcmUsCisrCS5idWZfcXVl dWUgICAgICAgPSB2aWRlb19idWZfcXVldWUsCisrCS5zdGFydF9zdHJlYW1pbmcgPSB2aWRlb19z dGFydF9zdHJlYW1pbmcsCisrCS5zdG9wX3N0cmVhbWluZyAgPSB2aWRlb19zdG9wX3N0cmVhbWlu ZywKKyt9OworKworKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrICogVjRMMiBpb2N0bHMKKysg Ki8KKysKKytzdGF0aWMgaW50IHZpZGVvX3F1ZXJ5Y2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lk ICpmaCwKKysJCQkgIHN0cnVjdCB2NGwyX2NhcGFiaWxpdHkgKmNhcCkKKyt7CisrCXN0cnNjcHko Y2FwLT5kcml2ZXIsICJzdGYgY2Ftc3MiLCBzaXplb2YoY2FwLT5kcml2ZXIpKTsKKysJc3Ryc2Nw eShjYXAtPmNhcmQsICJTdGFyZml2ZSBDYW1lcmEgU3Vic3lzdGVtIiwgc2l6ZW9mKGNhcC0+Y2Fy ZCkpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCB2aWRlb19nZXRfcGZtdF9i eV9pbmRleChzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvLCBpbnQgbmR4KQorK3sKKysJaW50 IGksIGosIGs7CisrCisrCS8qIGZpbmQgaW5kZXggImkiIG9mICJrInRoIHVuaXF1ZSBwaXhlbGZv cm1hdCBpbiBmb3JtYXRzIGFycmF5ICovCisrCWsgPSAtMTsKKysJZm9yIChpID0gMDsgaSA8IHZp ZGVvLT5uZm9ybWF0czsgaSsrKSB7CisrCQlmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7CisrCQkJ aWYgKHZpZGVvLT5mb3JtYXRzW2ldLnBpeGVsZm9ybWF0ID09CisrCQkJICAgIHZpZGVvLT5mb3Jt YXRzW2pdLnBpeGVsZm9ybWF0KQorKwkJCQlicmVhazsKKysJCX0KKysKKysJCWlmIChqID09IGkp CisrCQkJaysrOworKworKwkJaWYgKGsgPT0gbmR4KQorKwkJCXJldHVybiBpOworKwl9CisrCisr CXJldHVybiAtRUlOVkFMOworK30KKysKKytzdGF0aWMgaW50IHZpZGVvX2dldF9wZm10X2J5X21j b2RlKHN0cnVjdCBzdGZjYW1zc192aWRlbyAqdmlkZW8sIHUzMiBtY29kZSkKKyt7CisrCWludCBp OworKworKwlmb3IgKGkgPSAwOyBpIDwgdmlkZW8tPm5mb3JtYXRzOyBpKyspIHsKKysJCWlmICh2 aWRlby0+Zm9ybWF0c1tpXS5jb2RlID09IG1jb2RlKQorKwkJCXJldHVybiBpOworKwl9CisrCisr CXJldHVybiAtRUlOVkFMOworK30KKysKKytzdGF0aWMgaW50IHZpZGVvX2VudW1fZm10KHN0cnVj dCBmaWxlICpmaWxlLCB2b2lkICpmaCwgc3RydWN0IHY0bDJfZm10ZGVzYyAqZikKKyt7CisrCXN0 cnVjdCBzdGZjYW1zc192aWRlbyAqdmlkZW8gPSB2aWRlb19kcnZkYXRhKGZpbGUpOworKwlpbnQg aTsKKysKKysJaWYgKGYtPnR5cGUgIT0gdmlkZW8tPnR5cGUpCisrCQlyZXR1cm4gLUVJTlZBTDsK KysJaWYgKGYtPmluZGV4ID49IHZpZGVvLT5uZm9ybWF0cykKKysJCXJldHVybiAtRUlOVkFMOwor KworKwlpZiAoZi0+bWJ1c19jb2RlKSB7CisrCQkvKiBFYWNoIGVudHJ5IGluIGZvcm1hdHNbXSB0 YWJsZSBoYXMgdW5pcXVlIG1idXNfY29kZSAqLworKwkJaWYgKGYtPmluZGV4ID4gMCkKKysJCQly ZXR1cm4gLUVJTlZBTDsKKysKKysJCWkgPSB2aWRlb19nZXRfcGZtdF9ieV9tY29kZSh2aWRlbywg Zi0+bWJ1c19jb2RlKTsKKysJfSBlbHNlIHsKKysJCWkgPSB2aWRlb19nZXRfcGZtdF9ieV9pbmRl eCh2aWRlbywgZi0+aW5kZXgpOworKwl9CisrCisrCWlmIChpIDwgMCkKKysJCXJldHVybiAtRUlO VkFMOworKworKwlmLT5waXhlbGZvcm1hdCA9IHZpZGVvLT5mb3JtYXRzW2ldLnBpeGVsZm9ybWF0 OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCB2aWRlb19lbnVtX2ZyYW1lc2l6 ZXMoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLAorKwkJCQkgc3RydWN0IHY0bDJfZnJtc2l6 ZWVudW0gKmZzaXplKQorK3sKKysJc3RydWN0IHN0ZmNhbXNzX3ZpZGVvICp2aWRlbyA9IHZpZGVv X2RydmRhdGEoZmlsZSk7CisrCWludCBpOworKworKwlpZiAoZnNpemUtPmluZGV4KQorKwkJcmV0 dXJuIC1FSU5WQUw7CisrCisrCWZvciAoaSA9IDA7IGkgPCB2aWRlby0+bmZvcm1hdHM7IGkrKykg eworKwkJaWYgKHZpZGVvLT5mb3JtYXRzW2ldLnBpeGVsZm9ybWF0ID09IGZzaXplLT5waXhlbF9m b3JtYXQpCisrCQkJYnJlYWs7CisrCX0KKysKKysJaWYgKGkgPT0gdmlkZW8tPm5mb3JtYXRzKQor KwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCWZzaXplLT50eXBlID0gVjRMMl9GUk1TSVpFX1RZUEVf Q09OVElOVU9VUzsKKysJZnNpemUtPnN0ZXB3aXNlLm1pbl93aWR0aCA9IFNURkNBTVNTX0ZSQU1F X01JTl9XSURUSDsKKysJZnNpemUtPnN0ZXB3aXNlLm1heF93aWR0aCA9IFNURkNBTVNTX0ZSQU1F X01BWF9XSURUSDsKKysJZnNpemUtPnN0ZXB3aXNlLm1pbl9oZWlnaHQgPSBTVEZDQU1TU19GUkFN RV9NSU5fSEVJR0hUOworKwlmc2l6ZS0+c3RlcHdpc2UubWF4X2hlaWdodCA9IFNURkNBTVNTX0ZS QU1FX01BWF9IRUlHSFQ7CisrCWZzaXplLT5zdGVwd2lzZS5zdGVwX3dpZHRoID0gMTsKKysJZnNp emUtPnN0ZXB3aXNlLnN0ZXBfaGVpZ2h0ID0gMTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0 YXRpYyBpbnQgdmlkZW9fZ19mbXQoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLCBzdHJ1Y3Qg djRsMl9mb3JtYXQgKmYpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvID0gdmlk ZW9fZHJ2ZGF0YShmaWxlKTsKKysKKysJKmYgPSB2aWRlby0+YWN0aXZlX2ZtdDsKKysKKysJcmV0 dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgdmlkZW9fc19mbXQoc3RydWN0IGZpbGUgKmZpbGUs IHZvaWQgKmZoLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3Nf dmlkZW8gKnZpZGVvID0gdmlkZW9fZHJ2ZGF0YShmaWxlKTsKKysJaW50IHJldDsKKysKKysJaWYg KHZiMl9pc19idXN5KCZ2aWRlby0+dmIyX3EpKQorKwkJcmV0dXJuIC1FQlVTWTsKKysKKysJcmV0 ID0gX192aWRlb190cnlfZm10KHZpZGVvLCBmKTsKKysJaWYgKHJldCA8IDApCisrCQlyZXR1cm4g cmV0OworKworKwl2aWRlby0+YWN0aXZlX2ZtdCA9ICpmOworKworKwlyZXR1cm4gMDsKKyt9Cisr Cisrc3RhdGljIGludCB2aWRlb190cnlfZm10KHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwg c3RydWN0IHY0bDJfZm9ybWF0ICpmKQorK3sKKysJc3RydWN0IHN0ZmNhbXNzX3ZpZGVvICp2aWRl byA9IHZpZGVvX2RydmRhdGEoZmlsZSk7CisrCisrCXJldHVybiBfX3ZpZGVvX3RyeV9mbXQodmlk ZW8sIGYpOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfaW9jdGxfb3BzIHN0Zl92 aWRfaW9jdGxfb3BzID0geworKwkudmlkaW9jX3F1ZXJ5Y2FwICAgICAgICAgICAgICAgID0gdmlk ZW9fcXVlcnljYXAsCisrCS52aWRpb2NfZW51bV9mbXRfdmlkX2NhcCAgICAgICAgPSB2aWRlb19l bnVtX2ZtdCwKKysJLnZpZGlvY19lbnVtX2ZtdF92aWRfb3V0ICAgICAgICA9IHZpZGVvX2VudW1f Zm10LAorKwkudmlkaW9jX2VudW1fZnJhbWVzaXplcyAgICAgICAgID0gdmlkZW9fZW51bV9mcmFt ZXNpemVzLAorKwkudmlkaW9jX2dfZm10X3ZpZF9jYXAgICAgICAgICAgID0gdmlkZW9fZ19mbXQs CisrCS52aWRpb2Nfc19mbXRfdmlkX2NhcCAgICAgICAgICAgPSB2aWRlb19zX2ZtdCwKKysJLnZp ZGlvY190cnlfZm10X3ZpZF9jYXAgICAgICAgICA9IHZpZGVvX3RyeV9mbXQsCisrCS52aWRpb2Nf Z19mbXRfdmlkX291dCAgICAgICAgICAgPSB2aWRlb19nX2ZtdCwKKysJLnZpZGlvY19zX2ZtdF92 aWRfb3V0ICAgICAgICAgICA9IHZpZGVvX3NfZm10LAorKwkudmlkaW9jX3RyeV9mbXRfdmlkX291 dCAgICAgICAgID0gdmlkZW9fdHJ5X2ZtdCwKKysJLnZpZGlvY19yZXFidWZzICAgICAgICAgICAg ICAgICA9IHZiMl9pb2N0bF9yZXFidWZzLAorKwkudmlkaW9jX3F1ZXJ5YnVmICAgICAgICAgICAg ICAgID0gdmIyX2lvY3RsX3F1ZXJ5YnVmLAorKwkudmlkaW9jX3FidWYgICAgICAgICAgICAgICAg ICAgID0gdmIyX2lvY3RsX3FidWYsCisrCS52aWRpb2NfZXhwYnVmICAgICAgICAgICAgICAgICAg PSB2YjJfaW9jdGxfZXhwYnVmLAorKwkudmlkaW9jX2RxYnVmICAgICAgICAgICAgICAgICAgID0g dmIyX2lvY3RsX2RxYnVmLAorKwkudmlkaW9jX2NyZWF0ZV9idWZzICAgICAgICAgICAgID0gdmIy X2lvY3RsX2NyZWF0ZV9idWZzLAorKwkudmlkaW9jX3ByZXBhcmVfYnVmICAgICAgICAgICAgID0g dmIyX2lvY3RsX3ByZXBhcmVfYnVmLAorKwkudmlkaW9jX3N0cmVhbW9uICAgICAgICAgICAgICAg ID0gdmIyX2lvY3RsX3N0cmVhbW9uLAorKwkudmlkaW9jX3N0cmVhbW9mZiAgICAgICAgICAgICAg ID0gdmIyX2lvY3RsX3N0cmVhbW9mZiwKKyt9OworKworKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrICogVjRMMiBmaWxlIG9wZXJhdGlvbnMKKysgKi8KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0 IHY0bDJfZmlsZV9vcGVyYXRpb25zIHN0Zl92aWRfZm9wcyA9IHsKKysJLm93bmVyICAgICAgICAg ID0gVEhJU19NT0RVTEUsCisrCS51bmxvY2tlZF9pb2N0bCA9IHZpZGVvX2lvY3RsMiwKKysJLm9w ZW4gICAgICAgICAgID0gdjRsMl9maF9vcGVuLAorKwkucmVsZWFzZSAgICAgICAgPSB2YjJfZm9w X3JlbGVhc2UsCisrCS5wb2xsICAgICAgICAgICA9IHZiMl9mb3BfcG9sbCwKKysJLm1tYXAgICAg ICAgICAgID0gdmIyX2ZvcF9tbWFwLAorKwkucmVhZCAgICAgICAgICAgPSB2YjJfZm9wX3JlYWQs CisrfTsKKysKKysvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAqIFNURkNBTVNTIHZpZGVvIGNv cmUKKysgKi8KKysKKytzdGF0aWMgdm9pZCBzdGZfdmlkZW9fcmVsZWFzZShzdHJ1Y3QgdmlkZW9f ZGV2aWNlICp2ZGV2KQorK3sKKysJc3RydWN0IHN0ZmNhbXNzX3ZpZGVvICp2aWRlbyA9IHZpZGVv X2dldF9kcnZkYXRhKHZkZXYpOworKworKwltZWRpYV9lbnRpdHlfY2xlYW51cCgmdmRldi0+ZW50 aXR5KTsKKysKKysJbXV0ZXhfZGVzdHJveSgmdmlkZW8tPnFfbG9jayk7CisrCW11dGV4X2Rlc3Ry b3koJnZpZGVvLT5sb2NrKTsKKyt9CisrCisraW50IHN0Zl92aWRlb19yZWdpc3RlcihzdHJ1Y3Qg c3RmY2Ftc3NfdmlkZW8gKnZpZGVvLAorKwkJICAgICAgIHN0cnVjdCB2NGwyX2RldmljZSAqdjRs Ml9kZXYsIGNvbnN0IGNoYXIgKm5hbWUpCisreworKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2 OworKwlzdHJ1Y3QgdmIyX3F1ZXVlICpxOworKwlzdHJ1Y3QgbWVkaWFfcGFkICpwYWQgPSAmdmlk ZW8tPnBhZDsKKysJaW50IHJldDsKKysKKysJdmRldiA9ICZ2aWRlby0+dmRldjsKKysKKysJbXV0 ZXhfaW5pdCgmdmlkZW8tPnFfbG9jayk7CisrCisrCXEgPSAmdmlkZW8tPnZiMl9xOworKwlxLT5k cnZfcHJpdiA9IHZpZGVvOworKwlxLT5tZW1fb3BzID0gJnZiMl9kbWFfY29udGlnX21lbW9wczsK KysJcS0+b3BzID0gJnN0Zl92aWRlb192YjJfcV9vcHM7CisrCXEtPnR5cGUgPSB2aWRlby0+dHlw ZTsKKysJcS0+aW9fbW9kZXMgPSBWQjJfRE1BQlVGIHwgVkIyX01NQVAgfCBWQjJfUkVBRDsKKysJ cS0+dGltZXN0YW1wX2ZsYWdzID0gVjRMMl9CVUZfRkxBR19USU1FU1RBTVBfTU9OT1RPTklDOwor KwlxLT5idWZfc3RydWN0X3NpemUgPSBzaXplb2Yoc3RydWN0IHN0ZmNhbXNzX2J1ZmZlcik7Cisr CXEtPmRldiA9IHZpZGVvLT5zdGZjYW1zcy0+ZGV2OworKwlxLT5sb2NrID0gJnZpZGVvLT5xX2xv Y2s7CisrCXEtPm1pbl9idWZmZXJzX25lZWRlZCA9IFNURkNBTVNTX01JTl9CVUZGRVJTOworKwly ZXQgPSB2YjJfcXVldWVfaW5pdChxKTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRldl9lcnIodmlk ZW8tPnN0ZmNhbXNzLT5kZXYsCisrCQkJIkZhaWxlZCB0byBpbml0IHZiMiBxdWV1ZTogJWRcbiIs IHJldCk7CisrCQlnb3RvIGVycl92YjJfaW5pdDsKKysJfQorKworKwlwYWQtPmZsYWdzID0gTUVE SUFfUEFEX0ZMX1NJTks7CisrCXJldCA9IG1lZGlhX2VudGl0eV9wYWRzX2luaXQoJnZkZXYtPmVu dGl0eSwgMSwgcGFkKTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRldl9lcnIodmlkZW8tPnN0ZmNh bXNzLT5kZXYsCisrCQkJIkZhaWxlZCB0byBpbml0IHZpZGVvIGVudGl0eTogJWRcbiIsIHJldCk7 CisrCQlnb3RvIGVycl92YjJfaW5pdDsKKysJfQorKworKwltdXRleF9pbml0KCZ2aWRlby0+bG9j ayk7CisrCisrCWlmICh2aWRlby0+aWQgPT0gU1RGX1ZfTElORV9XUikgeworKwkJdmlkZW8tPmZv cm1hdHMgPSBmb3JtYXRzX3BpeF93cjsKKysJCXZpZGVvLT5uZm9ybWF0cyA9IEFSUkFZX1NJWkUo Zm9ybWF0c19waXhfd3IpOworKwkJdmlkZW8tPmJwbF9hbGlnbm1lbnQgPSA4OworKwl9IGVsc2Ug eworKwkJdmlkZW8tPmZvcm1hdHMgPSBmb3JtYXRzX3BpeF9pc3A7CisrCQl2aWRlby0+bmZvcm1h dHMgPSBBUlJBWV9TSVpFKGZvcm1hdHNfcGl4X2lzcCk7CisrCQl2aWRlby0+YnBsX2FsaWdubWVu dCA9IDE7CisrCX0KKysKKysJcmV0ID0gc3RmX3ZpZGVvX2luaXRfZm9ybWF0KHZpZGVvKTsKKysJ aWYgKHJldCA8IDApIHsKKysJCWRldl9lcnIodmlkZW8tPnN0ZmNhbXNzLT5kZXYsCisrCQkJIkZh aWxlZCB0byBpbml0IGZvcm1hdDogJWRcbiIsIHJldCk7CisrCQlnb3RvIGVycl92aWRfaW5pdF9m b3JtYXQ7CisrCX0KKysKKysJdmRldi0+Zm9wcyA9ICZzdGZfdmlkX2ZvcHM7CisrCXZkZXYtPmlv Y3RsX29wcyA9ICZzdGZfdmlkX2lvY3RsX29wczsKKysJdmRldi0+ZGV2aWNlX2NhcHMgPSBWNEwy X0NBUF9WSURFT19DQVBUVVJFOworKwl2ZGV2LT52ZmxfZGlyID0gVkZMX0RJUl9SWDsKKysJdmRl di0+ZGV2aWNlX2NhcHMgfD0gVjRMMl9DQVBfU1RSRUFNSU5HIHwgVjRMMl9DQVBfUkVBRFdSSVRF OworKwl2ZGV2LT5yZWxlYXNlID0gc3RmX3ZpZGVvX3JlbGVhc2U7CisrCXZkZXYtPnY0bDJfZGV2 ID0gdjRsMl9kZXY7CisrCXZkZXYtPnF1ZXVlID0gJnZpZGVvLT52YjJfcTsKKysJdmRldi0+bG9j ayA9ICZ2aWRlby0+bG9jazsKKysJc3Ryc2NweSh2ZGV2LT5uYW1lLCBuYW1lLCBzaXplb2YodmRl di0+bmFtZSkpOworKworKwlyZXQgPSB2aWRlb19yZWdpc3Rlcl9kZXZpY2UodmRldiwgVkZMX1RZ UEVfVklERU8sIHZpZGVvLT5pZCk7CisrCWlmIChyZXQgPCAwKSB7CisrCQlkZXZfZXJyKHZpZGVv LT5zdGZjYW1zcy0+ZGV2LAorKwkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgdmlkZW8gZGV2aWNlOiAl ZFxuIiwgcmV0KTsKKysJCWdvdG8gZXJyX3ZpZF9yZWc7CisrCX0KKysKKysJdmlkZW9fc2V0X2Ry dmRhdGEodmRldiwgdmlkZW8pOworKwlyZXR1cm4gMDsKKysKKytlcnJfdmlkX3JlZzoKKytlcnJf dmlkX2luaXRfZm9ybWF0OgorKwltZWRpYV9lbnRpdHlfY2xlYW51cCgmdmRldi0+ZW50aXR5KTsK KysJbXV0ZXhfZGVzdHJveSgmdmlkZW8tPmxvY2spOworK2Vycl92YjJfaW5pdDoKKysJbXV0ZXhf ZGVzdHJveSgmdmlkZW8tPnFfbG9jayk7CisrCXJldHVybiByZXQ7CisrfQorKworK3ZvaWQgc3Rm X3ZpZGVvX3VucmVnaXN0ZXIoc3RydWN0IHN0ZmNhbXNzX3ZpZGVvICp2aWRlbykKKyt7CisrCXZi Ml92aWRlb191bnJlZ2lzdGVyX2RldmljZSgmdmlkZW8tPnZkZXYpOworK30KK2RpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl92aWRlby5oIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmlkZW8uaAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uNjAzMjNjMjNhNDBjCistLS0gL2Rldi9u dWxsCisrKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl92aWRl by5oCitAQCAtMCwwICsxLDkyIEBACisrLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAgKi8KKysvKgorKyAqIHN0Zl92aWRlby5oCisrICoKKysgKiBTdGFyRml2ZSBDYW1lcmEgU3Vi c3lzdGVtIC0gVjRMMiBkZXZpY2Ugbm9kZQorKyAqCisrICogQ29weXJpZ2h0IChDKSAyMDIxLTIw MjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKi8KKysKKysjaWZuZGVmIFNURl9W SURFT19ICisrI2RlZmluZSBTVEZfVklERU9fSAorKworKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+ CisrI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5o PgorKyNpbmNsdWRlIDxtZWRpYS92NGwyLWRldi5oPgorKyNpbmNsdWRlIDxtZWRpYS92NGwyLWZo Lmg+CisrI2luY2x1ZGUgPG1lZGlhL3Y0bDItaW9jdGwuaD4KKysjaW5jbHVkZSA8bWVkaWEvdmlk ZW9idWYyLXY0bDIuaD4KKysKKysjZGVmaW5lIFNURkNBTVNTX0ZSQU1FX01JTl9XSURUSAkJNjQK KysjZGVmaW5lIFNURkNBTVNTX0ZSQU1FX01BWF9XSURUSAkJMTkyMAorKyNkZWZpbmUgU1RGQ0FN U1NfRlJBTUVfTUlOX0hFSUdIVAkJNjQKKysjZGVmaW5lIFNURkNBTVNTX0ZSQU1FX01BWF9IRUlH SFQJCTEwODAKKysjZGVmaW5lIFNURkNBTVNTX0ZSQU1FX1dJRFRIX0FMSUdOXzgJCTgKKysjZGVm aW5lIFNURkNBTVNTX0ZSQU1FX1dJRFRIX0FMSUdOXzEyOAkJMTI4CisrI2RlZmluZSBTVEZDQU1T U19NSU5fQlVGRkVSUwkJCTIKKysKKysjZGVmaW5lIFNURkNBTVNTX01BWF9FTlRJVFlfTkFNRV9M RU4JCTI3CisrCisrZW51bSBzdGZfdl9saW5lX2lkIHsKKysJU1RGX1ZfTElORV9XUiA9IDAsCisr CVNURl9WX0xJTkVfSVNQLAorKwlTVEZfVl9MSU5FX01BWCwKKyt9OworKworK3N0cnVjdCBzdGZj YW1zc19idWZmZXIgeworKwlzdHJ1Y3QgdmIyX3Y0bDJfYnVmZmVyIHZiOworKwlkbWFfYWRkcl90 IGFkZHJbM107CisrCXN0cnVjdCBsaXN0X2hlYWQgcXVldWU7CisrfTsKKysKKytzdHJ1Y3QgZnJh Y3QgeworKwl1OCBudW1lcmF0b3I7CisrCXU4IGRlbm9taW5hdG9yOworK307CisrCisrLyoKKysg KiBzdHJ1Y3Qgc3RmY2Ftc3NfZm9ybWF0X2luZm8gLSBJU1AgbWVkaWEgYnVzIGZvcm1hdCBpbmZv cm1hdGlvbgorKyAqIEBjb2RlOiBWNEwyIG1lZGlhIGJ1cyBmb3JtYXQgY29kZQorKyAqIEBwaXhl bGZvcm1hdDogVjRMMiBwaXhlbCBmb3JtYXQgRkNDIGlkZW50aWZpZXIKKysgKiBAcGxhbmVzOiBO dW1iZXIgb2YgcGxhbmVzCisrICogQHZzdWI6IFZlcnRpY2FsIHN1YnNhbXBsaW5nIChmb3IgZWFj aCBwbGFuZSkKKysgKiBAYnBwOiBCaXRzIHBlciBwaXhlbCB3aGVuIHN0b3JlZCBpbiBtZW1vcnkg KGZvciBlYWNoIHBsYW5lKQorKyAqLworK3N0cnVjdCBzdGZjYW1zc19mb3JtYXRfaW5mbyB7Cisr CXUzMiBjb2RlOworKwl1MzIgcGl4ZWxmb3JtYXQ7CisrCXU4IHBsYW5lczsKKysJdTggdnN1Ylsz XTsKKysJdTggYnBwOworK307CisrCisrc3RydWN0IHN0ZmNhbXNzX3ZpZGVvIHsKKysJc3RydWN0 IHN0ZmNhbXNzICpzdGZjYW1zczsKKysJdTggaWQ7CisrCXN0cnVjdCB2YjJfcXVldWUgdmIyX3E7 CisrCXN0cnVjdCB2aWRlb19kZXZpY2UgdmRldjsKKysJc3RydWN0IG1lZGlhX3BhZCBwYWQ7Cisr CXN0cnVjdCB2NGwyX2Zvcm1hdCBhY3RpdmVfZm10OworKwllbnVtIHY0bDJfYnVmX3R5cGUgdHlw ZTsKKysJY29uc3Qgc3RydWN0IHN0ZmNhbXNzX3ZpZGVvX29wcyAqb3BzOworKwlzdHJ1Y3QgbXV0 ZXggbG9jazsJIC8qIHNlcmlhbGl6ZSBkZXZpY2UgYWNjZXNzICovCisrCXN0cnVjdCBtdXRleCBx X2xvY2s7CSAvKiBwcm90ZWN0cyB0aGUgcXVldWUgKi8KKysJdW5zaWduZWQgaW50IGJwbF9hbGln bm1lbnQ7CisrCWNvbnN0IHN0cnVjdCBzdGZjYW1zc19mb3JtYXRfaW5mbyAqZm9ybWF0czsKKysJ dW5zaWduZWQgaW50IG5mb3JtYXRzOworK307CisrCisrc3RydWN0IHN0ZmNhbXNzX3ZpZGVvX29w cyB7CisrCWludCAoKnF1ZXVlX2J1ZmZlcikoc3RydWN0IHN0ZmNhbXNzX3ZpZGVvICp2aWQsCisr CQkJICAgIHN0cnVjdCBzdGZjYW1zc19idWZmZXIgKmJ1Zik7CisrCWludCAoKmZsdXNoX2J1ZmZl cnMpKHN0cnVjdCBzdGZjYW1zc192aWRlbyAqdmlkLAorKwkJCSAgICAgZW51bSB2YjJfYnVmZmVy X3N0YXRlIHN0YXRlKTsKKyt9OworKworK2ludCBzdGZfdmlkZW9fcmVnaXN0ZXIoc3RydWN0IHN0 ZmNhbXNzX3ZpZGVvICp2aWRlbywKKysJCSAgICAgICBzdHJ1Y3QgdjRsMl9kZXZpY2UgKnY0bDJf ZGV2LCBjb25zdCBjaGFyICpuYW1lKTsKKysKKyt2b2lkIHN0Zl92aWRlb191bnJlZ2lzdGVyKHN0 cnVjdCBzdGZjYW1zc192aWRlbyAqdmlkZW8pOworKworKyNlbmRpZiAvKiBTVEZfVklERU9fSCAq LworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAw NDgtbWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLUlTUC1kcml2ZXIucGF0Y2ggYi9zcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDA0OC1tZWRpYS1zdGFyZml2ZS1jYW1zcy1BZGQtSVNQLWRyaXZlci5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5kODU4MDQ0ODE5 ZWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNDgtbWVk aWEtc3RhcmZpdmUtY2Ftc3MtQWRkLUlTUC1kcml2ZXIucGF0Y2gKQEAgLTAsMCArMSwxNjc0IEBA CitGcm9tIDY0NmNhNGVjZTRkYTU0ZmNjODk5YzM3ZTg1NTNlMWUyZTRlZDk3MTcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWNrIFpodSA8amFjay56aHVAc3RhcmZpdmV0ZWNoLmNv bT4KK0RhdGU6IE1vbiwgMTkgSnVuIDIwMjMgMTk6Mjg6MzcgKzA4MDAKK1N1YmplY3Q6IFtQQVRD SCA0OC83Ml0gbWVkaWE6IHN0YXJmaXZlOiBjYW1zczogQWRkIElTUCBkcml2ZXIKKworQWRkIElT UCBkcml2ZXIgZm9yIFN0YXJGaXZlIENhbWVyYSBTdWJzeXN0ZW0uCisKK1NpZ25lZC1vZmYtYnk6 IEphY2sgWmh1IDxqYWNrLnpodUBzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL21lZGlhL3Bs YXRmb3JtL3N0YXJmaXZlL2NhbXNzL01ha2VmaWxlICAgIHwgICAyICsKKyAuLi4vbWVkaWEvcGxh dGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNzLmMgfCAgNzYgKystCisgLi4uL21lZGlhL3Bs YXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5oIHwgICAzICsKKyAuLi4vbWVkaWEvcGxh dGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2lzcC5jICAgfCA1MTkgKysrKysrKysrKysrKysrKysr CisgLi4uL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9pc3AuaCAgIHwgNDc5ICsr KysrKysrKysrKysrKysKKyAuLi4vcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2lzcF9od19v cHMuYyAgfCA0NjggKysrKysrKysrKysrKysrKworIDYgZmlsZXMgY2hhbmdlZCwgMTU0NCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9pc3AuYworIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9pc3AuaAorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9p c3BfaHdfb3BzLmMKKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZp dmUvY2Ftc3MvTWFrZWZpbGUgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNz L01ha2VmaWxlCitpbmRleCBlYjQ1NzkxN2E5MTQuLmNkZjU3ZThjOTU0NiAxMDA2NDQKKy0tLSBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvTWFrZWZpbGUKKysrKyBiL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvTWFrZWZpbGUKK0BAIC01LDYgKzUs OCBAQAorIAorIHN0YXJmaXZlLWNhbXNzLW9ianMgKz0gXAorIAkJc3RmX2NhbXNzLm8gXAorKwkJ c3RmX2lzcC5vIFwKKysJCXN0Zl9pc3BfaHdfb3BzLm8gXAorIAkJc3RmX3ZpZGVvLm8KKyAKKyBv YmotJChDT05GSUdfVklERU9fU1RBUkZJVkVfQ0FNU1MpICs9IHN0YXJmaXZlLWNhbXNzLm8KK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1z cy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuYwor aW5kZXggZGMyYjVkYmE3YmQ0Li42ZjU2YjQ1ZjU3ZGIgMTAwNjQ0CistLS0gYS9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5jCisrKysgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5jCitAQCAtMTE1LDEyICsxMTUs NjUgQEAgc3RhdGljIGludCBzdGZjYW1zc19vZl9wYXJzZV9wb3J0cyhzdHJ1Y3Qgc3RmY2Ftc3Mg KnN0ZmNhbXNzKQorIAlyZXR1cm4gcmV0OworIH0KKyAKKysvKgorKyAqIHN0ZmNhbXNzX2luaXRf c3ViZGV2aWNlcyAtIEluaXRpYWxpemUgc3ViZGV2IHN0cnVjdHVyZXMgYW5kIHJlc291cmNlcwor KyAqIEBzdGZjYW1zczogU1RGQ0FNU1MgZGV2aWNlCisrICoKKysgKiBSZXR1cm4gMCBvbiBzdWNj ZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisrICovCisrc3RhdGljIGlu dCBzdGZjYW1zc19pbml0X3N1YmRldmljZXMoc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcykKKyt7 CisrCWludCByZXQ7CisrCisrCXJldCA9IHN0Zl9pc3Bfc3ViZGV2X2luaXQoc3RmY2Ftc3MpOwor KwlpZiAocmV0IDwgMCkgeworKwkJZGV2X2VycihzdGZjYW1zcy0+ZGV2LCAiRmFpbGVkIHRvIGlu aXQgaXNwIHN1YmRldjogJWRcbiIsIHJldCk7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJl dHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgc3RmY2Ftc3NfcmVnaXN0ZXJfc3ViZGV2aWNl cyhzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJaW50IHJldDsKKysJc3RydWN0IHN0 Zl9pc3BfZGV2ICppc3BfZGV2ID0gJnN0ZmNhbXNzLT5pc3BfZGV2OworKworKwlyZXQgPSBzdGZf aXNwX3JlZ2lzdGVyKGlzcF9kZXYsICZzdGZjYW1zcy0+djRsMl9kZXYpOworKwlpZiAocmV0IDwg MCkgeworKwkJZGV2X2VycihzdGZjYW1zcy0+ZGV2LAorKwkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIg c3RmIGlzcCVkIGVudGl0eTogJWRcbiIsIDAsIHJldCk7CisrCQlyZXR1cm4gcmV0OworKwl9Cisr CisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyB2b2lkIHN0ZmNhbXNzX3VucmVnaXN0ZXJf c3ViZGV2aWNlcyhzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJc3RmX2lzcF91bnJl Z2lzdGVyKCZzdGZjYW1zcy0+aXNwX2Rldik7CisrfQorKworIHN0YXRpYyBpbnQgc3RmY2Ftc3Nf c3ViZGV2X25vdGlmaWVyX2JvdW5kKHN0cnVjdCB2NGwyX2FzeW5jX25vdGlmaWVyICphc3luYywK KyAJCQkJCSAgc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCisgCQkJCQkgIHN0cnVjdCB2NGwy X2FzeW5jX3N1YmRldiAqYXNkKQorIHsKKysJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcyA9Cisr CQljb250YWluZXJfb2YoYXN5bmMsIHN0cnVjdCBzdGZjYW1zcywgbm90aWZpZXIpOworKwlzdHJ1 Y3Qgc3RmY2Ftc3NfYXN5bmNfc3ViZGV2ICpjc2QgPQorKwkJY29udGFpbmVyX29mKGFzZCwgc3Ry dWN0IHN0ZmNhbXNzX2FzeW5jX3N1YmRldiwgYXNkKTsKKysJZW51bSBzdGZfcG9ydF9udW0gcG9y dCA9IGNzZC0+cG9ydDsKKysJc3RydWN0IHN0Zl9pc3BfZGV2ICppc3BfZGV2ID0gJnN0ZmNhbXNz LT5pc3BfZGV2OworIAlzdHJ1Y3QgbWVkaWFfcGFkICpwYWRbU1RGX1BBRFNfTlVNXTsKKy0JdW5z aWduZWQgaW50IGksIHBhZF9udW0gPSAwOworKwl1bnNpZ25lZCBpbnQgaSwgcGFkX251bTsKKysK KysJaWYgKHBvcnQgPT0gU1RGX1BPUlRfQ1NJMlJYKSB7CisrCQlwYWRbMF0gPSAmaXNwX2Rldi0+ cGFkc1tTVEZfUEFEX1NJTktdOworKwkJcGFkX251bSA9IDE7CisrCX0gZWxzZSBpZiAocG9ydCA9 PSBTVEZfUE9SVF9EVlApIHsKKysJCWRldl9lcnIoc3RmY2Ftc3MtPmRldiwgIk5vdCBzdXBwb3J0 IERWUCBzZW5zb3JcbiIpOworKwkJcmV0dXJuIC1FUEVSTTsKKysJfQorIAorIAlmb3IgKGkgPSAw OyBpIDwgcGFkX251bTsgKytpKSB7CisgCQlpbnQgcmV0OworQEAgLTIyMywxMiArMjc2LDE4IEBA IHN0YXRpYyBpbnQgc3RmY2Ftc3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK KyAJCWdvdG8gZXJyX2NsZWFudXBfbm90aWZpZXI7CisgCX0KKyAKKysJcmV0ID0gc3RmY2Ftc3Nf aW5pdF9zdWJkZXZpY2VzKHN0ZmNhbXNzKTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRldl9lcnIo ZGV2LCAiRmFpbGVkIHRvIGluaXQgc3ViZGV2aWNlOiAlZFxuIiwgcmV0KTsKKysJCWdvdG8gZXJy X2NsZWFudXBfbm90aWZpZXI7CisrCX0KKysKKyAJc3RmY2Ftc3NfbWNfaW5pdChwZGV2LCBzdGZj YW1zcyk7CisgCisgCXJldCA9IHY0bDJfZGV2aWNlX3JlZ2lzdGVyKHN0ZmNhbXNzLT5kZXYsICZz dGZjYW1zcy0+djRsMl9kZXYpOworIAlpZiAocmV0IDwgMCkgeworIAkJZGV2X2VycihkZXYsICJG YWlsZWQgdG8gcmVnaXN0ZXIgVjRMMiBkZXZpY2U6ICVkXG4iLCByZXQpOworLQkJZ290byBlcnJf Y2xlYW51cF9ub3RpZmllcjsKKysJCWdvdG8gZXJyX2NsZWFudXBfbWVkaWFfZGV2aWNlOworIAl9 CisgCisgCXJldCA9IG1lZGlhX2RldmljZV9yZWdpc3Rlcigmc3RmY2Ftc3MtPm1lZGlhX2Rldik7 CitAQCAtMjM3LDYgKzI5NiwxMiBAQCBzdGF0aWMgaW50IHN0ZmNhbXNzX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisgCQlnb3RvIGVycl91bnJlZ2lzdGVyX2RldmljZTsKKyAJ fQorIAorKwlyZXQgPSBzdGZjYW1zc19yZWdpc3Rlcl9zdWJkZXZpY2VzKHN0ZmNhbXNzKTsKKysJ aWYgKHJldCA8IDApIHsKKysJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHN1YmRl dmljZTogJWRcbiIsIHJldCk7CisrCQlnb3RvIGVycl91bnJlZ2lzdGVyX21lZGlhX2RldjsKKysJ fQorKworIAlwbV9ydW50aW1lX2VuYWJsZShkZXYpOworIAorIAlzdGZjYW1zcy0+bm90aWZpZXIu b3BzID0gJnN0ZmNhbXNzX3N1YmRldl9ub3RpZmllcl9vcHM7CitAQCAtMjQ0LDE1ICszMDksMTkg QEAgc3RhdGljIGludCBzdGZjYW1zc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQorIAlpZiAocmV0KSB7CisgCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBhc3lu YyBzdWJkZXYgbm9kZXM6ICVkXG4iLAorIAkJCXJldCk7CistCQlnb3RvIGVycl91bnJlZ2lzdGVy X21lZGlhX2RldjsKKysJCWdvdG8gZXJyX3VucmVnaXN0ZXJfc3ViZGV2czsKKyAJfQorIAorIAly ZXR1cm4gMDsKKyAKKytlcnJfdW5yZWdpc3Rlcl9zdWJkZXZzOgorKwlzdGZjYW1zc191bnJlZ2lz dGVyX3N1YmRldmljZXMoc3RmY2Ftc3MpOworIGVycl91bnJlZ2lzdGVyX21lZGlhX2RldjoKKyAJ bWVkaWFfZGV2aWNlX3VucmVnaXN0ZXIoJnN0ZmNhbXNzLT5tZWRpYV9kZXYpOworIGVycl91bnJl Z2lzdGVyX2RldmljZToKKyAJdjRsMl9kZXZpY2VfdW5yZWdpc3Rlcigmc3RmY2Ftc3MtPnY0bDJf ZGV2KTsKKytlcnJfY2xlYW51cF9tZWRpYV9kZXZpY2U6CisrCW1lZGlhX2RldmljZV9jbGVhbnVw KCZzdGZjYW1zcy0+bWVkaWFfZGV2KTsKKyBlcnJfY2xlYW51cF9ub3RpZmllcjoKKyAJdjRsMl9h c3luY19uZl9jbGVhbnVwKCZzdGZjYW1zcy0+bm90aWZpZXIpOworIAlyZXR1cm4gcmV0OworQEAg LTI2OCw2ICszMzcsNyBAQCBzdGF0aWMgaW50IHN0ZmNhbXNzX3JlbW92ZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQorIHsKKyAJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcyA9IHBsYXRm b3JtX2dldF9kcnZkYXRhKHBkZXYpOworIAorKwlzdGZjYW1zc191bnJlZ2lzdGVyX3N1YmRldmlj ZXMoc3RmY2Ftc3MpOworIAl2NGwyX2RldmljZV91bnJlZ2lzdGVyKCZzdGZjYW1zcy0+djRsMl9k ZXYpOworIAltZWRpYV9kZXZpY2VfY2xlYW51cCgmc3RmY2Ftc3MtPm1lZGlhX2Rldik7CisgCXBt X3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsKK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5oIGIvZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuaAoraW5kZXggMTVjNGYzNGI5MDU0Li45NDgy MDgxMjg4ZmEgMTAwNjQ0CistLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2Nh bXNzL3N0Zl9jYW1zcy5oCisrKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2Nh bXNzL3N0Zl9jYW1zcy5oCitAQCAtMTgsNiArMTgsOCBAQAorICNpbmNsdWRlIDxtZWRpYS92NGwy LWFzeW5jLmg+CisgI2luY2x1ZGUgPG1lZGlhL3Y0bDItZGV2aWNlLmg+CisgCisrI2luY2x1ZGUg InN0Zl9pc3AuaCIKKysKKyAjZGVmaW5lIFNURl9EVlBfTkFNRSAic3RmX2R2cCIKKyAjZGVmaW5l IFNURl9DU0lfTkFNRSAiY2Ruc19jc2kycngiCisgI2RlZmluZSBTVEZfSVNQX05BTUUgInN0Zl9p c3AiCitAQCAtNjUsNiArNjcsNyBAQCBzdHJ1Y3Qgc3RmY2Ftc3MgeworIAlzdHJ1Y3QgbWVkaWFf ZGV2aWNlIG1lZGlhX2RldjsKKyAJc3RydWN0IG1lZGlhX3BpcGVsaW5lIHBpcGU7CisgCXN0cnVj dCBkZXZpY2UgKmRldjsKKysJc3RydWN0IHN0Zl9pc3BfZGV2IGlzcF9kZXY7CisgCXN0cnVjdCB2 NGwyX2FzeW5jX25vdGlmaWVyIG5vdGlmaWVyOworIAl2b2lkIF9faW9tZW0gKnN5c2Nvbl9iYXNl OworIAl2b2lkIF9faW9tZW0gKmlzcF9iYXNlOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2lzcC5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9zdGFyZml2ZS9jYW1zcy9zdGZfaXNwLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMDAuLjkzM2E1ODNiMzk4YworLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfaXNwLmMKK0BAIC0wLDAgKzEsNTE5IEBA CisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysvKgorKyAqIHN0Zl9pc3Au YworKyAqCisrICogU3RhckZpdmUgQ2FtZXJhIFN1YnN5c3RlbSAtIElTUCBNb2R1bGUKKysgKgor KyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQu CisrICovCisrI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisrI2luY2x1ZGUgPG1lZGlhL3Y0 bDItZXZlbnQuaD4KKysKKysjaW5jbHVkZSAic3RmX2NhbXNzLmgiCisrCisrI2RlZmluZSBTSU5L X0ZPUk1BVFNfSU5ERVggICAgMAorKyNkZWZpbmUgVU9fRk9STUFUU19JTkRFWCAgICAgIDEKKysK KytzdGF0aWMgaW50IGlzcF9zZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsCisr CQkJICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAorKwkJCSAgICAgc3RydWN0 IHY0bDJfc3ViZGV2X3NlbGVjdGlvbiAqc2VsKTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGlz cF9mb3JtYXQgaXNwX2Zvcm1hdHNfc2lua1tdID0geworKwl7IE1FRElBX0JVU19GTVRfU1JHR0Ix MF8xWDEwLCAxMCB9LAorKwl7IE1FRElBX0JVU19GTVRfU0dSQkcxMF8xWDEwLCAxMCB9LAorKwl7 IE1FRElBX0JVU19GTVRfU0dCUkcxMF8xWDEwLCAxMCB9LAorKwl7IE1FRElBX0JVU19GTVRfU0JH R1IxMF8xWDEwLCAxMCB9LAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBpc3BfZm9ybWF0 IGlzcF9mb3JtYXRzX3VvW10gPSB7CisrCXsgTUVESUFfQlVTX0ZNVF9ZMTJfMVgxMiwgOCB9LAor K307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBpc3BfZm9ybWF0X3RhYmxlIGlzcF9mb3JtYXRz X3N0NzExMFtdID0geworKwl7IGlzcF9mb3JtYXRzX3NpbmssIEFSUkFZX1NJWkUoaXNwX2Zvcm1h dHNfc2luaykgfSwKKysJeyBpc3BfZm9ybWF0c191bywgQVJSQVlfU0laRShpc3BfZm9ybWF0c191 bykgfSwKKyt9OworKworK2ludCBzdGZfaXNwX3N1YmRldl9pbml0KHN0cnVjdCBzdGZjYW1zcyAq c3RmY2Ftc3MpCisreworKwlzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYgPSAmc3RmY2Ftc3Mt PmlzcF9kZXY7CisrCisrCWlzcF9kZXYtPnN0ZmNhbXNzID0gc3RmY2Ftc3M7CisrCWlzcF9kZXYt PmZvcm1hdHMgPSBpc3BfZm9ybWF0c19zdDcxMTA7CisrCWlzcF9kZXYtPm5mb3JtYXRzID0gQVJS QVlfU0laRShpc3BfZm9ybWF0c19zdDcxMTApOworKworKwltdXRleF9pbml0KCZpc3BfZGV2LT5z dHJlYW1fbG9jayk7CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgc3RydWN0IHY0bDJfbWJ1 c19mcmFtZWZtdCAqCisrX19pc3BfZ2V0X2Zvcm1hdChzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9k ZXYsCisrCQkgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwKKysJCSB1bnNpZ25lZCBp bnQgcGFkLAorKwkJIGVudW0gdjRsMl9zdWJkZXZfZm9ybWF0X3doZW5jZSB3aGljaCkKKyt7Cisr CWlmICh3aGljaCA9PSBWNEwyX1NVQkRFVl9GT1JNQVRfVFJZKQorKwkJcmV0dXJuIHY0bDJfc3Vi ZGV2X2dldF90cnlfZm9ybWF0KCZpc3BfZGV2LT5zdWJkZXYsIHN0YXRlLCBwYWQpOworKworKwly ZXR1cm4gJmlzcF9kZXYtPmZtdFtwYWRdOworK30KKysKKytzdGF0aWMgaW50IGlzcF9zZXRfc3Ry ZWFtKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIGludCBlbmFibGUpCisreworKwlzdHJ1Y3Qgc3Rm X2lzcF9kZXYgKmlzcF9kZXYgPSB2NGwyX2dldF9zdWJkZXZkYXRhKHNkKTsKKysJaW50IHJldCA9 IDA7CisrCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKmZtdDsKKysJc3RydWN0IHY0bDJfZXZl bnQgc3JjX2NoID0geyAwIH07CisrCisrCWZtdCA9IF9faXNwX2dldF9mb3JtYXQoaXNwX2Rldiwg TlVMTCwgU1RGX0lTUF9QQURfU0lOSywKKysJCQkgICAgICAgVjRMMl9TVUJERVZfRk9STUFUX0FD VElWRSk7CisrCW11dGV4X2xvY2soJmlzcF9kZXYtPnN0cmVhbV9sb2NrKTsKKysJaWYgKGVuYWJs ZSkgeworKwkJaWYgKGlzcF9kZXYtPnN0cmVhbV9jb3VudCA9PSAwKSB7CisrCQkJc3RmX2lzcF9j bGtfZW5hYmxlKGlzcF9kZXYpOworKwkJCXN0Zl9pc3BfcmVzZXQoaXNwX2Rldik7CisrCQkJc3Rm X2lzcF9pbml0X2NmZyhpc3BfZGV2KTsKKysJCQlzdGZfaXNwX3NldHRpbmdzKGlzcF9kZXYsIGlz cF9kZXYtPnJlY3QsIGZtdC0+Y29kZSk7CisrCQkJc3RmX2lzcF9zdHJlYW1fc2V0KGlzcF9kZXYp OworKwkJfQorKwkJaXNwX2Rldi0+c3RyZWFtX2NvdW50Kys7CisrCX0gZWxzZSB7CisrCQlpZiAo aXNwX2Rldi0+c3RyZWFtX2NvdW50ID09IDApCisrCQkJZ290byBleGl0OworKworKwkJaWYgKGlz cF9kZXYtPnN0cmVhbV9jb3VudCA9PSAxKQorKwkJCXN0Zl9pc3BfY2xrX2Rpc2FibGUoaXNwX2Rl dik7CisrCisrCQlpc3BfZGV2LT5zdHJlYW1fY291bnQtLTsKKysJfQorKwlzcmNfY2gudHlwZSA9 IFY0TDJfRVZFTlRfU09VUkNFX0NIQU5HRSwKKysJc3JjX2NoLnUuc3JjX2NoYW5nZS5jaGFuZ2Vz ID0gaXNwX2Rldi0+c3RyZWFtX2NvdW50LAorKworKwl2NGwyX3N1YmRldl9ub3RpZnlfZXZlbnQo c2QsICZzcmNfY2gpOworK2V4aXQ6CisrCW11dGV4X3VubG9jaygmaXNwX2Rldi0+c3RyZWFtX2xv Y2spOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9pZCBpc3BfdHJ5X2Zvcm1h dChzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYsCisrCQkJICAgc3RydWN0IHY0bDJfc3ViZGV2 X3N0YXRlICpzdGF0ZSwKKysJCQkgICB1bnNpZ25lZCBpbnQgcGFkLAorKwkJCSAgIHN0cnVjdCB2 NGwyX21idXNfZnJhbWVmbXQgKmZtdCwKKysJCQkgICBlbnVtIHY0bDJfc3ViZGV2X2Zvcm1hdF93 aGVuY2Ugd2hpY2gpCisreworKwljb25zdCBzdHJ1Y3QgaXNwX2Zvcm1hdF90YWJsZSAqZm9ybWF0 czsKKysJc3RydWN0IHN0Zl9pc3BfY3JvcCAqcmVjdDsKKysJdW5zaWduZWQgaW50IGk7CisrCisr CWlmIChwYWQgPT0gU1RGX0lTUF9QQURfU0lOSykgeworKwkJLyogU2V0IGZvcm1hdCBvbiBzaW5r IHBhZCAqLworKwkJZm9ybWF0cyA9ICZpc3BfZGV2LT5mb3JtYXRzW1NJTktfRk9STUFUU19JTkRF WF07CisrCQlyZWN0ID0gJmlzcF9kZXYtPnJlY3RbU0lOS19GT1JNQVRTX0lOREVYXTsKKysJfSBl bHNlIGlmIChwYWQgPT0gU1RGX0lTUF9QQURfU1JDKSB7CisrCQlmb3JtYXRzID0gJmlzcF9kZXYt PmZvcm1hdHNbVU9fRk9STUFUU19JTkRFWF07CisrCQlyZWN0ID0gJmlzcF9kZXYtPnJlY3RbVU9f Rk9STUFUU19JTkRFWF07CisrCX0KKysKKysJZm10LT53aWR0aCA9IGNsYW1wX3QodTMyLCBmbXQt PndpZHRoLCBTVEZDQU1TU19GUkFNRV9NSU5fV0lEVEgsCisrCQkJICAgICBTVEZDQU1TU19GUkFN RV9NQVhfV0lEVEgpOworKwlmbXQtPmhlaWdodCA9IGNsYW1wX3QodTMyLCBmbXQtPmhlaWdodCwg U1RGQ0FNU1NfRlJBTUVfTUlOX0hFSUdIVCwKKysJCQkgICAgICBTVEZDQU1TU19GUkFNRV9NQVhf SEVJR0hUKTsKKysJZm10LT5oZWlnaHQgJj0gfjB4MTsKKysJZm10LT5maWVsZCA9IFY0TDJfRklF TERfTk9ORTsKKysJZm10LT5jb2xvcnNwYWNlID0gVjRMMl9DT0xPUlNQQUNFX1NSR0I7CisrCWZt dC0+ZmxhZ3MgPSAwOworKworKwlmb3IgKGkgPSAwOyBpIDwgZm9ybWF0cy0+bmZtdHM7IGkrKykg eworKwkJaWYgKGZtdC0+Y29kZSA9PSBmb3JtYXRzLT5mbXRzW2ldLmNvZGUpCisrCQkJYnJlYWs7 CisrCX0KKysKKysJaWYgKGkgPj0gZm9ybWF0cy0+bmZtdHMpIHsKKysJCWZtdC0+Y29kZSA9IGZv cm1hdHMtPmZtdHNbMF0uY29kZTsKKysJCXJlY3QtPmJwcCA9IGZvcm1hdHMtPmZtdHNbMF0uYnBw OworKwl9IGVsc2UgeworKwkJcmVjdC0+YnBwID0gZm9ybWF0cy0+Zm10c1tpXS5icHA7CisrCX0K Kyt9CisrCisrc3RhdGljIGludCBpc3BfZW51bV9tYnVzX2NvZGUoc3RydWN0IHY0bDJfc3ViZGV2 ICpzZCwKKysJCQkgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAorKwkJCSAg ICAgIHN0cnVjdCB2NGwyX3N1YmRldl9tYnVzX2NvZGVfZW51bSAqY29kZSkKKyt7CisrCXN0cnVj dCBzdGZfaXNwX2RldiAqaXNwX2RldiA9IHY0bDJfZ2V0X3N1YmRldmRhdGEoc2QpOworKwljb25z dCBzdHJ1Y3QgaXNwX2Zvcm1hdF90YWJsZSAqZm9ybWF0czsKKysKKysJaWYgKGNvZGUtPmluZGV4 ID49IGlzcF9kZXYtPm5mb3JtYXRzKQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCWlmIChjb2RlLT5w YWQgPT0gU1RGX0lTUF9QQURfU0lOSykgeworKwkJZm9ybWF0cyA9ICZpc3BfZGV2LT5mb3JtYXRz W1NJTktfRk9STUFUU19JTkRFWF07CisrCQljb2RlLT5jb2RlID0gZm9ybWF0cy0+Zm10c1tjb2Rl LT5pbmRleF0uY29kZTsKKysJfSBlbHNlIHsKKysJCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQg KnNpbmtfZm10OworKworKwkJc2lua19mbXQgPSBfX2lzcF9nZXRfZm9ybWF0KGlzcF9kZXYsIHN0 YXRlLCBTVEZfSVNQX1BBRF9TSU5LLAorKwkJCQkJICAgIGNvZGUtPndoaWNoKTsKKysKKysJCWNv ZGUtPmNvZGUgPSBzaW5rX2ZtdC0+Y29kZTsKKysJCWlmICghY29kZS0+Y29kZSkKKysJCQlyZXR1 cm4gLUVJTlZBTDsKKysJfQorKwljb2RlLT5mbGFncyA9IDA7CisrCisrCXJldHVybiAwOworK30K KysKKytzdGF0aWMgaW50IGlzcF9lbnVtX2ZyYW1lX3NpemUoc3RydWN0IHY0bDJfc3ViZGV2ICpz ZCwKKysJCQkgICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwKKysJCQkgICAg ICAgc3RydWN0IHY0bDJfc3ViZGV2X2ZyYW1lX3NpemVfZW51bSAqZnNlKQorK3sKKysJc3RydWN0 IHN0Zl9pc3BfZGV2ICppc3BfZGV2ID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7CisrCXN0cnVj dCB2NGwyX21idXNfZnJhbWVmbXQgZm9ybWF0OworKworKwlpZiAoZnNlLT5pbmRleCAhPSAwKQor KwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCWZvcm1hdC5jb2RlID0gZnNlLT5jb2RlOworKwlmb3Jt YXQud2lkdGggPSAxOworKwlmb3JtYXQuaGVpZ2h0ID0gMTsKKysJaXNwX3RyeV9mb3JtYXQoaXNw X2Rldiwgc3RhdGUsIGZzZS0+cGFkLCAmZm9ybWF0LCBmc2UtPndoaWNoKTsKKysJZnNlLT5taW5f d2lkdGggPSBmb3JtYXQud2lkdGg7CisrCWZzZS0+bWluX2hlaWdodCA9IGZvcm1hdC5oZWlnaHQ7 CisrCisrCWlmIChmb3JtYXQuY29kZSAhPSBmc2UtPmNvZGUpCisrCQlyZXR1cm4gLUVJTlZBTDsK KysKKysJZm9ybWF0LmNvZGUgPSBmc2UtPmNvZGU7CisrCWZvcm1hdC53aWR0aCA9IC0xOworKwlm b3JtYXQuaGVpZ2h0ID0gLTE7CisrCWlzcF90cnlfZm9ybWF0KGlzcF9kZXYsIHN0YXRlLCBmc2Ut PnBhZCwgJmZvcm1hdCwgZnNlLT53aGljaCk7CisrCWZzZS0+bWF4X3dpZHRoID0gZm9ybWF0Lndp ZHRoOworKwlmc2UtPm1heF9oZWlnaHQgPSBmb3JtYXQuaGVpZ2h0OworKworKwlyZXR1cm4gMDsK Kyt9CisrCisrc3RhdGljIGludCBpc3BfZ2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNk LAorKwkJCSAgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwKKysJCQkgIHN0cnVjdCB2 NGwyX3N1YmRldl9mb3JtYXQgKmZtdCkKKyt7CisrCXN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2Rl diA9IHY0bDJfZ2V0X3N1YmRldmRhdGEoc2QpOworKwlzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10 ICpmb3JtYXQ7CisrCisrCWZvcm1hdCA9IF9faXNwX2dldF9mb3JtYXQoaXNwX2Rldiwgc3RhdGUs IGZtdC0+cGFkLCBmbXQtPndoaWNoKTsKKysJaWYgKCFmb3JtYXQpCisrCQlyZXR1cm4gLUVJTlZB TDsKKysKKysJZm10LT5mb3JtYXQgPSAqZm9ybWF0OworKworKwlyZXR1cm4gMDsKKyt9CisrCisr c3RhdGljIGludCBpc3Bfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAorKwkJCSAg c3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwKKysJCQkgIHN0cnVjdCB2NGwyX3N1YmRl dl9mb3JtYXQgKmZtdCkKKyt7CisrCXN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2RldiA9IHY0bDJf Z2V0X3N1YmRldmRhdGEoc2QpOworKwlzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7 CisrCisrCWZvcm1hdCA9IF9faXNwX2dldF9mb3JtYXQoaXNwX2Rldiwgc3RhdGUsIGZtdC0+cGFk LCBmbXQtPndoaWNoKTsKKysJaWYgKCFmb3JtYXQpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJ bXV0ZXhfbG9jaygmaXNwX2Rldi0+c3RyZWFtX2xvY2spOworKworKwlpc3BfdHJ5X2Zvcm1hdChp c3BfZGV2LCBzdGF0ZSwgZm10LT5wYWQsICZmbXQtPmZvcm1hdCwgZm10LT53aGljaCk7CisrCSpm b3JtYXQgPSBmbXQtPmZvcm1hdDsKKysKKysJbXV0ZXhfdW5sb2NrKCZpc3BfZGV2LT5zdHJlYW1f bG9jayk7CisrCisrCS8qIFByb3BhZ2F0ZSB0byBpbiBjcm9wICovCisrCWlmIChmbXQtPnBhZCA9 PSBTVEZfSVNQX1BBRF9TSU5LKSB7CisrCQlzdHJ1Y3QgdjRsMl9zdWJkZXZfc2VsZWN0aW9uIHNl bCA9IHsgMCB9OworKwkJaW50IHJldDsKKysKKysJCS8qIFJlc2V0IHNpbmsgcGFkIGNvbXBvc2Ug c2VsZWN0aW9uICovCisrCQlzZWwud2hpY2ggPSBmbXQtPndoaWNoOworKwkJc2VsLnBhZCA9IFNU Rl9JU1BfUEFEX1NJTks7CisrCQlzZWwudGFyZ2V0ID0gVjRMMl9TRUxfVEdUX0NST1A7CisrCQlz ZWwuci53aWR0aCA9IGZtdC0+Zm9ybWF0LndpZHRoOworKwkJc2VsLnIuaGVpZ2h0ID0gZm10LT5m b3JtYXQuaGVpZ2h0OworKwkJcmV0ID0gaXNwX3NldF9zZWxlY3Rpb24oc2QsIHN0YXRlLCAmc2Vs KTsKKysJCWlmIChyZXQgPCAwKQorKwkJCXJldHVybiByZXQ7CisrCX0KKysKKysJcmV0dXJuIDA7 CisrfQorKworK3N0YXRpYyBzdHJ1Y3QgdjRsMl9yZWN0ICoKKytfX2lzcF9nZXRfY3JvcChzdHJ1 Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYsCisrCSAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3Rh dGUgKnN0YXRlLAorKwkgICAgICAgdW5zaWduZWQgaW50IHBhZCwKKysJICAgICAgIGVudW0gdjRs Ml9zdWJkZXZfZm9ybWF0X3doZW5jZSB3aGljaCkKKyt7CisrCWlmICh3aGljaCA9PSBWNEwyX1NV QkRFVl9GT1JNQVRfVFJZKQorKwkJcmV0dXJuIHY0bDJfc3ViZGV2X2dldF90cnlfY3JvcCgmaXNw X2Rldi0+c3ViZGV2LCBzdGF0ZSwKKysJCQkJCQlTVEZfSVNQX1BBRF9TSU5LKTsKKysKKysJcmV0 dXJuICZpc3BfZGV2LT5yZWN0W3BhZF0ucmVjdDsKKyt9CisrCisrc3RhdGljIHZvaWQgaXNwX3Ry eV9jcm9wKHN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2RldiwKKysJCQkgc3RydWN0IHY0bDJfc3Vi ZGV2X3N0YXRlICpzdGF0ZSwKKysJCQkgc3RydWN0IHY0bDJfcmVjdCAqcmVjdCwKKysJCQkgZW51 bSB2NGwyX3N1YmRldl9mb3JtYXRfd2hlbmNlIHdoaWNoKQorK3sKKysJc3RydWN0IHY0bDJfbWJ1 c19mcmFtZWZtdCAqZm10OworKworKwlmbXQgPSBfX2lzcF9nZXRfZm9ybWF0KGlzcF9kZXYsIHN0 YXRlLCBTVEZfSVNQX1BBRF9TSU5LLCB3aGljaCk7CisrCisrCWlmIChyZWN0LT53aWR0aCA+IGZt dC0+d2lkdGgpCisrCQlyZWN0LT53aWR0aCA9IGZtdC0+d2lkdGg7CisrCisrCWlmIChyZWN0LT53 aWR0aCArIHJlY3QtPmxlZnQgPiBmbXQtPndpZHRoKQorKwkJcmVjdC0+bGVmdCA9IGZtdC0+d2lk dGggLSByZWN0LT53aWR0aDsKKysKKysJaWYgKHJlY3QtPmhlaWdodCA+IGZtdC0+aGVpZ2h0KQor KwkJcmVjdC0+aGVpZ2h0ID0gZm10LT5oZWlnaHQ7CisrCisrCWlmIChyZWN0LT5oZWlnaHQgKyBy ZWN0LT50b3AgPiBmbXQtPmhlaWdodCkKKysJCXJlY3QtPnRvcCA9IGZtdC0+aGVpZ2h0IC0gcmVj dC0+aGVpZ2h0OworKworKwlpZiAocmVjdC0+d2lkdGggPCBTVEZDQU1TU19GUkFNRV9NSU5fV0lE VEgpIHsKKysJCXJlY3QtPmxlZnQgPSAwOworKwkJcmVjdC0+d2lkdGggPSBTVEZDQU1TU19GUkFN RV9NQVhfV0lEVEg7CisrCX0KKysKKysJaWYgKHJlY3QtPmhlaWdodCA8IFNURkNBTVNTX0ZSQU1F X01JTl9IRUlHSFQpIHsKKysJCXJlY3QtPnRvcCA9IDA7CisrCQlyZWN0LT5oZWlnaHQgPSBTVEZD QU1TU19GUkFNRV9NQVhfSEVJR0hUOworKwl9CisrCXJlY3QtPmhlaWdodCAmPSB+MHgxOworK30K KysKKytzdGF0aWMgaW50IGlzcF9nZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc2Qs CisrCQkJICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAorKwkJCSAgICAgc3Ry dWN0IHY0bDJfc3ViZGV2X3NlbGVjdGlvbiAqc2VsKQorK3sKKysJc3RydWN0IHN0Zl9pc3BfZGV2 ICppc3BfZGV2ID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7CisrCXN0cnVjdCB2NGwyX3N1YmRl dl9mb3JtYXQgZm10ID0geyAwIH07CisrCXN0cnVjdCB2NGwyX3JlY3QgKnJlY3Q7CisrCWludCBy ZXQ7CisrCisrCXN3aXRjaCAoc2VsLT50YXJnZXQpIHsKKysJY2FzZSBWNEwyX1NFTF9UR1RfQ1JP UF9CT1VORFM6CisrCQlpZiAoc2VsLT5wYWQgPT0gU1RGX0lTUF9QQURfU0lOSykgeworKwkJCWZt dC5wYWQgPSBzZWwtPnBhZDsKKysJCQlmbXQud2hpY2ggPSBzZWwtPndoaWNoOworKwkJCXJldCA9 IGlzcF9nZXRfZm9ybWF0KHNkLCBzdGF0ZSwgJmZtdCk7CisrCQkJaWYgKHJldCA8IDApCisrCQkJ CXJldHVybiByZXQ7CisrCisrCQkJc2VsLT5yLmxlZnQgPSAwOworKwkJCXNlbC0+ci50b3AgPSAw OworKwkJCXNlbC0+ci53aWR0aCA9IGZtdC5mb3JtYXQud2lkdGg7CisrCQkJc2VsLT5yLmhlaWdo dCA9IGZtdC5mb3JtYXQuaGVpZ2h0OworKwkJfSBlbHNlIGlmIChzZWwtPnBhZCA9PSBTVEZfSVNQ X1BBRF9TUkMpIHsKKysJCQlyZWN0ID0gX19pc3BfZ2V0X2Nyb3AoaXNwX2Rldiwgc3RhdGUsCisr CQkJCQkgICAgICBzZWwtPnBhZCwgc2VsLT53aGljaCk7CisrCQkJc2VsLT5yID0gKnJlY3Q7Cisr CQl9CisrCQlicmVhazsKKysKKysJY2FzZSBWNEwyX1NFTF9UR1RfQ1JPUDoKKysJCXJlY3QgPSBf X2lzcF9nZXRfY3JvcChpc3BfZGV2LCBzdGF0ZSwgc2VsLT5wYWQsIHNlbC0+d2hpY2gpOworKwkJ aWYgKCFyZWN0KQorKwkJCXJldHVybiAtRUlOVkFMOworKworKwkJc2VsLT5yID0gKnJlY3Q7Cisr CQlicmVhazsKKysKKysJZGVmYXVsdDoKKysJCXJldHVybiAtRUlOVkFMOworKwl9CisrCisrCXJl dHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGlzcF9zZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwy X3N1YmRldiAqc2QsCisrCQkJICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAor KwkJCSAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3NlbGVjdGlvbiAqc2VsKQorK3sKKysJc3RydWN0 IHN0Zl9pc3BfZGV2ICppc3BfZGV2ID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7CisrCXN0cnVj dCB2NGwyX3JlY3QgKnJlY3Q7CisrCWludCByZXQgPSAwOworKworKwlpZiAoc2VsLT50YXJnZXQg PT0gVjRMMl9TRUxfVEdUX0NST1AgJiYKKysJICAgIHNlbC0+cGFkID09IFNURl9JU1BfUEFEX1NJ TkspIHsKKysJCXN0cnVjdCB2NGwyX3N1YmRldl9zZWxlY3Rpb24gY3JvcCA9IHsgMCB9OworKwor KwkJcmVjdCA9IF9faXNwX2dldF9jcm9wKGlzcF9kZXYsIHN0YXRlLCBzZWwtPnBhZCwgc2VsLT53 aGljaCk7CisrCQlpZiAoIXJlY3QpCisrCQkJcmV0dXJuIC1FSU5WQUw7CisrCisrCQltdXRleF9s b2NrKCZpc3BfZGV2LT5zdHJlYW1fbG9jayk7CisrCQlpc3BfdHJ5X2Nyb3AoaXNwX2Rldiwgc3Rh dGUsICZzZWwtPnIsIHNlbC0+d2hpY2gpOworKwkJKnJlY3QgPSBzZWwtPnI7CisrCQltdXRleF91 bmxvY2soJmlzcF9kZXYtPnN0cmVhbV9sb2NrKTsKKysKKysJCS8qIFJlc2V0IHNvdXJjZSBjcm9w IHNlbGVjdGlvbiAqLworKwkJY3JvcC53aGljaCA9IHNlbC0+d2hpY2g7CisrCQljcm9wLnBhZCA9 IFNURl9JU1BfUEFEX1NSQzsKKysJCWNyb3AudGFyZ2V0ID0gVjRMMl9TRUxfVEdUX0NST1A7Cisr CQljcm9wLnIgPSAqcmVjdDsKKysJCXJldCA9IGlzcF9zZXRfc2VsZWN0aW9uKHNkLCBzdGF0ZSwg JmNyb3ApOworKwl9IGVsc2UgaWYgKHNlbC0+dGFyZ2V0ID09IFY0TDJfU0VMX1RHVF9DUk9QICYm CisrCQkgICBzZWwtPnBhZCA9PSBTVEZfSVNQX1BBRF9TUkMpIHsKKysJCXN0cnVjdCB2NGwyX3N1 YmRldl9mb3JtYXQgZm10ID0geyAwIH07CisrCisrCQlyZWN0ID0gX19pc3BfZ2V0X2Nyb3AoaXNw X2Rldiwgc3RhdGUsIHNlbC0+cGFkLCBzZWwtPndoaWNoKTsKKysJCWlmICghcmVjdCkKKysJCQly ZXR1cm4gLUVJTlZBTDsKKysKKysJCW11dGV4X2xvY2soJmlzcF9kZXYtPnN0cmVhbV9sb2NrKTsK KysJCWlzcF90cnlfY3JvcChpc3BfZGV2LCBzdGF0ZSwgJnNlbC0+ciwgc2VsLT53aGljaCk7Cisr CQkqcmVjdCA9IHNlbC0+cjsKKysJCW11dGV4X3VubG9jaygmaXNwX2Rldi0+c3RyZWFtX2xvY2sp OworKworKwkJLyogUmVzZXQgc291cmNlIHBhZCBmb3JtYXQgd2lkdGggYW5kIGhlaWdodCAqLwor KwkJZm10LndoaWNoID0gc2VsLT53aGljaDsKKysJCWZtdC5wYWQgPSBTVEZfSVNQX1BBRF9TUkM7 CisrCQlmbXQuZm9ybWF0LndpZHRoID0gcmVjdC0+d2lkdGg7CisrCQlmbXQuZm9ybWF0LmhlaWdo dCA9IHJlY3QtPmhlaWdodDsKKysJCXJldCA9IGlzcF9zZXRfZm9ybWF0KHNkLCBzdGF0ZSwgJmZt dCk7CisrCQlpZiAocmV0IDwgMCkKKysJCQlyZXR1cm4gcmV0OworKwl9CisrCisrCWRldl9kYmco aXNwX2Rldi0+c3RmY2Ftc3MtPmRldiwgInBhZDogJWQgc2VsKCVkLCVkKS8lZHglZFxuIiwKKysJ CXNlbC0+cGFkLCBzZWwtPnIubGVmdCwgc2VsLT5yLnRvcCwgc2VsLT5yLndpZHRoLCBzZWwtPnIu aGVpZ2h0KTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgaXNwX2luaXRfZm9y bWF0cyhzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAorKwkJCSAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZf ZmggKmZoKQorK3sKKysJc3RydWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCBmb3JtYXQgPSB7CisrCQku cGFkID0gU1RGX0lTUF9QQURfU0lOSywKKysJCS53aGljaCA9CisrCQkJZmggPyBWNEwyX1NVQkRF Vl9GT1JNQVRfVFJZIDogVjRMMl9TVUJERVZfRk9STUFUX0FDVElWRSwKKysJCS5mb3JtYXQgPSB7 CisrCQkJLmNvZGUgPSBNRURJQV9CVVNfRk1UX1JHQjU2NV8yWDhfTEUsCisrCQkJLndpZHRoID0g MTkyMCwKKysJCQkuaGVpZ2h0ID0gMTA4MAorKwkJfQorKwl9OworKworKwlyZXR1cm4gaXNwX3Nl dF9mb3JtYXQoc2QsIGZoID8gZmgtPnN0YXRlIDogTlVMTCwgJmZvcm1hdCk7CisrfQorKworK3N0 YXRpYyBpbnQgaXNwX2xpbmtfc2V0dXAoc3RydWN0IG1lZGlhX2VudGl0eSAqZW50aXR5LAorKwkJ CSAgY29uc3Qgc3RydWN0IG1lZGlhX3BhZCAqbG9jYWwsCisrCQkJICBjb25zdCBzdHJ1Y3QgbWVk aWFfcGFkICpyZW1vdGUsIHUzMiBmbGFncykKKyt7CisrCWlmIChmbGFncyAmIE1FRElBX0xOS19G TF9FTkFCTEVEKQorKwkJaWYgKG1lZGlhX3BhZF9yZW1vdGVfcGFkX2ZpcnN0KGxvY2FsKSkKKysJ CQlyZXR1cm4gLUVCVVNZOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBzdGZfaXNw X3N1YnNjcmliZV9ldmVudChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAorKwkJCQkgICBzdHJ1Y3Qg djRsMl9maCAqZmgsCisrCQkJCSAgIHN0cnVjdCB2NGwyX2V2ZW50X3N1YnNjcmlwdGlvbiAqc3Vi KQorK3sKKysJc3dpdGNoIChzdWItPnR5cGUpIHsKKysJY2FzZSBWNEwyX0VWRU5UX1NPVVJDRV9D SEFOR0U6CisrCQlyZXR1cm4gdjRsMl9zcmNfY2hhbmdlX2V2ZW50X3N1YmRldl9zdWJzY3JpYmUo c2QsIGZoLCBzdWIpOworKwlkZWZhdWx0OgorKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKyt9Cisr Cisrc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9jb3JlX29wcyBpc3BfY29yZV9vcHMg PSB7CisrCS5zdWJzY3JpYmVfZXZlbnQgPSBzdGZfaXNwX3N1YnNjcmliZV9ldmVudCwKKysJLnVu c3Vic2NyaWJlX2V2ZW50ID0gdjRsMl9ldmVudF9zdWJkZXZfdW5zdWJzY3JpYmUsCisrfTsKKysK KytzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X3ZpZGVvX29wcyBpc3BfdmlkZW9fb3Bz ID0geworKwkuc19zdHJlYW0gPSBpc3Bfc2V0X3N0cmVhbSwKKyt9OworKworK3N0YXRpYyBjb25z dCBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX29wcyBpc3BfcGFkX29wcyA9IHsKKysJLmVudW1fbWJ1 c19jb2RlID0gaXNwX2VudW1fbWJ1c19jb2RlLAorKwkuZW51bV9mcmFtZV9zaXplID0gaXNwX2Vu dW1fZnJhbWVfc2l6ZSwKKysJLmdldF9mbXQgPSBpc3BfZ2V0X2Zvcm1hdCwKKysJLnNldF9mbXQg PSBpc3Bfc2V0X2Zvcm1hdCwKKysJLmdldF9zZWxlY3Rpb24gPSBpc3BfZ2V0X3NlbGVjdGlvbiwK KysJLnNldF9zZWxlY3Rpb24gPSBpc3Bfc2V0X3NlbGVjdGlvbiwKKyt9OworKworK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfb3BzIGlzcF92NGwyX29wcyA9IHsKKysJLmNvcmUgPSAm aXNwX2NvcmVfb3BzLAorKwkudmlkZW8gPSAmaXNwX3ZpZGVvX29wcywKKysJLnBhZCA9ICZpc3Bf cGFkX29wcywKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfaW50ZXJu YWxfb3BzIGlzcF92NGwyX2ludGVybmFsX29wcyA9IHsKKysJLm9wZW4gPSBpc3BfaW5pdF9mb3Jt YXRzLAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYV9lbnRpdHlfb3BlcmF0aW9u cyBpc3BfbWVkaWFfb3BzID0geworKwkubGlua19zZXR1cCA9IGlzcF9saW5rX3NldHVwLAorKwku bGlua192YWxpZGF0ZSA9IHY0bDJfc3ViZGV2X2xpbmtfdmFsaWRhdGUsCisrfTsKKysKKytpbnQg c3RmX2lzcF9yZWdpc3RlcihzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYsIHN0cnVjdCB2NGwy X2RldmljZSAqdjRsMl9kZXYpCisreworKwlzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkID0gJmlzcF9k ZXYtPnN1YmRldjsKKysJc3RydWN0IG1lZGlhX3BhZCAqcGFkcyA9IGlzcF9kZXYtPnBhZHM7Cisr CWludCByZXQ7CisrCisrCXY0bDJfc3ViZGV2X2luaXQoc2QsICZpc3BfdjRsMl9vcHMpOworKwlz ZC0+aW50ZXJuYWxfb3BzID0gJmlzcF92NGwyX2ludGVybmFsX29wczsKKysJc2QtPmZsYWdzIHw9 IFY0TDJfU1VCREVWX0ZMX0hBU19ERVZOT0RFIHwgVjRMMl9TVUJERVZfRkxfSEFTX0VWRU5UUzsK KysJc25wcmludGYoc2QtPm5hbWUsIEFSUkFZX1NJWkUoc2QtPm5hbWUpLCAiJXMlZCIsIFNURl9J U1BfTkFNRSwgMCk7CisrCXY0bDJfc2V0X3N1YmRldmRhdGEoc2QsIGlzcF9kZXYpOworKworKwly ZXQgPSBpc3BfaW5pdF9mb3JtYXRzKHNkLCBOVUxMKTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRl dl9lcnIoaXNwX2Rldi0+c3RmY2Ftc3MtPmRldiwgIkZhaWxlZCB0byBpbml0IGZvcm1hdDogJWRc biIsCisrCQkJcmV0KTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJcGFkc1tTVEZfSVNQX1BB RF9TSU5LXS5mbGFncyA9IE1FRElBX1BBRF9GTF9TSU5LOworKwlwYWRzW1NURl9JU1BfUEFEX1NS Q10uZmxhZ3MgPSBNRURJQV9QQURfRkxfU09VUkNFOworKworKwlzZC0+ZW50aXR5LmZ1bmN0aW9u ID0gTUVESUFfRU5UX0ZfUFJPQ19WSURFT19QSVhFTF9GT1JNQVRURVI7CisrCXNkLT5lbnRpdHku b3BzID0gJmlzcF9tZWRpYV9vcHM7CisrCXJldCA9IG1lZGlhX2VudGl0eV9wYWRzX2luaXQoJnNk LT5lbnRpdHksIFNURl9JU1BfUEFEX01BWCwgcGFkcyk7CisrCWlmIChyZXQgPCAwKSB7CisrCQlk ZXZfZXJyKGlzcF9kZXYtPnN0ZmNhbXNzLT5kZXYsCisrCQkJIkZhaWxlZCB0byBpbml0IG1lZGlh IGVudGl0eTogJWRcbiIsIHJldCk7CisrCQlyZXR1cm4gcmV0OworKwl9CisrCisrCXJldCA9IHY0 bDJfZGV2aWNlX3JlZ2lzdGVyX3N1YmRldih2NGwyX2Rldiwgc2QpOworKwlpZiAocmV0IDwgMCkg eworKwkJZGV2X2Vycihpc3BfZGV2LT5zdGZjYW1zcy0+ZGV2LAorKwkJCSJGYWlsZWQgdG8gcmVn aXN0ZXIgc3ViZGV2OiAlZFxuIiwgcmV0KTsKKysJCWdvdG8gZXJyX3NyZWc7CisrCX0KKysKKysJ cmV0dXJuIDA7CisrCisrZXJyX3NyZWc6CisrCW1lZGlhX2VudGl0eV9jbGVhbnVwKCZzZC0+ZW50 aXR5KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisraW50IHN0Zl9pc3BfdW5yZWdpc3RlcihzdHJ1 Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYpCisreworKwl2NGwyX2RldmljZV91bnJlZ2lzdGVyX3N1 YmRldigmaXNwX2Rldi0+c3ViZGV2KTsKKysJbWVkaWFfZW50aXR5X2NsZWFudXAoJmlzcF9kZXYt PnN1YmRldi5lbnRpdHkpOworKwltdXRleF9kZXN0cm95KCZpc3BfZGV2LT5zdHJlYW1fbG9jayk7 CisrCXJldHVybiAwOworK30KK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0 YXJmaXZlL2NhbXNzL3N0Zl9pc3AuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUv Y2Ftc3Mvc3RmX2lzcC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAw Li4xZTVjOTg0ODIzNTAKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2lzcC5oCitAQCAtMCwwICsxLDQ3OSBAQAorKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisrLyoKKysgKiBzdGZfaXNwLmgKKysgKgor KyAqIFN0YXJGaXZlIENhbWVyYSBTdWJzeXN0ZW0gLSBJU1AgTW9kdWxlCisrICoKKysgKiBDb3B5 cmlnaHQgKEMpIDIwMjEtMjAyMyBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorKyAqLwor KworKyNpZm5kZWYgU1RGX0lTUF9ICisrI2RlZmluZSBTVEZfSVNQX0gKKysKKysjaW5jbHVkZSA8 bWVkaWEvdjRsMi1zdWJkZXYuaD4KKysKKysjaW5jbHVkZSAic3RmX3ZpZGVvLmgiCisrCisrI2Rl ZmluZSBJU1BfUkFXX0RBVEFfQklUUyAgICAgICAxMgorKyNkZWZpbmUgU0NBTEVSX1JBVElPX01B WCAgICAgICAgMQorKyNkZWZpbmUgU1RGX0lTUF9SRUdfT0ZGU0VUX01BWCAgMHgwZmZmCisrI2Rl ZmluZSBTVEZfSVNQX1JFR19ERUxBWV9NQVggICAxMDAKKysKKysvKiBpc3AgcmVnaXN0ZXJzICov CisrI2RlZmluZSBJU1BfUkVHX0NTSV9JTlBVVF9FTl9BTkRfU1RBVFVTCTB4MDAwCisrI2RlZmlu ZSBDU0lfU0NEX0VSUglCSVQoNikKKysjZGVmaW5lIENTSV9JVFU2NTZfRVJSCUJJVCg0KQorKyNk ZWZpbmUgQ1NJX0lUVTY1Nl9GCUJJVCgzKQorKyNkZWZpbmUgQ1NJX1NDRF9ET05FCUJJVCgyKQor KyNkZWZpbmUgQ1NJX0JVU1lfUwlCSVQoMSkKKysjZGVmaW5lIENTSV9FTl9TCUJJVCgwKQorKwor KyNkZWZpbmUgSVNQX1JFR19DU0lJTlRTCTB4MDA4CisrI2RlZmluZSBDU0lfSU5UUyhuKQkoKG4p IDw8IDE2KQorKyNkZWZpbmUgQ1NJX1NIQV9NKG4pCSgobikgPDwgMCkKKysjZGVmaW5lIENTSV9J TlRTX01BU0sJR0VOTUFTSygxNywgMTYpCisrCisrI2RlZmluZSBJU1BfUkVHX0NTSV9NT0RVTEVf Q0ZHCTB4MDEwCisrI2RlZmluZSBDU0lfRFVNUF9FTglCSVQoMTkpCisrI2RlZmluZSBDU0lfVlNf RU4JQklUKDE4KQorKyNkZWZpbmUgQ1NJX1NDX0VOCUJJVCgxNykKKysjZGVmaW5lIENTSV9PQkFf RU4JQklUKDE2KQorKyNkZWZpbmUgQ1NJX0FXQl9FTglCSVQoNykKKysjZGVmaW5lIENTSV9MQ0NG X0VOCUJJVCg2KQorKyNkZWZpbmUgQ1NJX09FQ0ZITV9FTglCSVQoNSkKKysjZGVmaW5lIENTSV9P RUNGX0VOCUJJVCg0KQorKyNkZWZpbmUgQ1NJX0xDQlFfRU4JQklUKDMpCisrI2RlZmluZSBDU0lf T0JDX0VOCUJJVCgyKQorKyNkZWZpbmUgQ1NJX0RFQ19FTglCSVQoMSkKKysjZGVmaW5lIENTSV9E Q19FTglCSVQoMCkKKysKKysjZGVmaW5lIElTUF9SRUdfU0VOU09SCTB4MDE0CisrI2RlZmluZSBE VlBfU1lOQ19QT0wobikJKChuKSA8PCAyKQorKyNkZWZpbmUgSVRVNjU2X0VOKG4pCSgobikgPDwg MSkKKysjZGVmaW5lIElNQUdFUl9TRUwobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JF R19SQVdfRk9STUFUX0NGRwkweDAxOAorKyNkZWZpbmUgU01ZMTMobikJKChuKSA8PCAxNCkKKysj ZGVmaW5lIFNNWTEyKG4pCSgobikgPDwgMTIpCisrI2RlZmluZSBTTVkxMShuKQkoKG4pIDw8IDEw KQorKyNkZWZpbmUgU01ZMTAobikJKChuKSA8PCA4KQorKyNkZWZpbmUgU01ZMyhuKQkoKG4pIDw8 IDYpCisrI2RlZmluZSBTTVkyKG4pCSgobikgPDwgNCkKKysjZGVmaW5lIFNNWTEobikJKChuKSA8 PCAyKQorKyNkZWZpbmUgU01ZMChuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX1BJ Q19DQVBUVVJFX1NUQVJUX0NGRwkweDAxYworKyNkZWZpbmUgVlNUQVJUX0NBUChuKQkoKG4pIDw8 IDE2KQorKyNkZWZpbmUgSFNUQVJUX0NBUChuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1Bf UkVHX1BJQ19DQVBUVVJFX0VORF9DRkcJMHgwMjAKKysjZGVmaW5lIFZFTkRfQ0FQKG4pCSgobikg PDwgMTYpCisrI2RlZmluZSBIRU5EX0NBUChuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1Bf UkVHX0RVTVBfQ0ZHXzAJMHgwMjQKKysjZGVmaW5lIElTUF9SRUdfRFVNUF9DRkdfMQkweDAyOAor KyNkZWZpbmUgRFVNUF9JRChuKQkoKG4pIDw8IDI0KQorKyNkZWZpbmUgRFVNUF9TSFQobikJKChu KSA8PCAyMCkKKysjZGVmaW5lIERVTVBfQlVSU1RfTEVOKG4pCSgobikgPDwgMTYpCisrI2RlZmlu ZSBEVU1QX1NEKG4pCSgobikgPDwgMCkKKysjZGVmaW5lIERVTVBfQlVSU1RfTEVOX01BU0sJR0VO TUFTSygxNywgMTYpCisrI2RlZmluZSBEVU1QX1NEX01BU0sJR0VOTUFTSygxNSwgMCkKKysKKysj ZGVmaW5lIElTUF9SRUdfREVDX0NGRwkweDAzMAorKyNkZWZpbmUgREVDX1ZfS0VFUChuKQkoKG4p IDw8IDI0KQorKyNkZWZpbmUgREVDX1ZfUEVSSU9EKG4pCSgobikgPDwgMTYpCisrI2RlZmluZSBE RUNfSF9LRUVQKG4pCSgobikgPDwgOCkKKysjZGVmaW5lIERFQ19IX1BFUklPRChuKQkoKG4pIDw8 IDApCisrCisrI2RlZmluZSBJU1BfUkVHX09CQ19DRkcJMHgwMzQKKysjZGVmaW5lIE9CQ19XX0go eSkJKCh5KSA8PCA0KQorKyNkZWZpbmUgT0JDX1dfVyh4KQkoKHgpIDw8IDApCisrCisrI2RlZmlu ZSBJU1BfUkVHX0RDX0NGR18xCTB4MDQ0CisrI2RlZmluZSBEQ19BWElfSUQobikJKChuKSA8PCAw KQorKworKyNkZWZpbmUgSVNQX1JFR19MQ0NGX0NGR18wCTB4MDUwCisrI2RlZmluZSBZX0RJU1RB TkNFKHkpCSgoeSkgPDwgMTYpCisrI2RlZmluZSBYX0RJU1RBTkNFKHgpCSgoeCkgPDwgMCkKKysK KysjZGVmaW5lIElTUF9SRUdfTENDRl9DRkdfMQkweDA1OAorKyNkZWZpbmUgTENDRl9NQVhfRElT KG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfTENCUV9DRkdfMAkweDA3NAorKyNk ZWZpbmUgSF9MQ0JRKHkpCSgoeSkgPDwgMTIpCisrI2RlZmluZSBXX0xDQlEoeCkJKCh4KSA8PCA4 KQorKworKyNkZWZpbmUgSVNQX1JFR19MQ0JRX0NGR18xCTB4MDdjCisrI2RlZmluZSBZX0NPT1Io eSkJKCh5KSA8PCAxNikKKysjZGVmaW5lIFhfQ09PUih4KQkoKHgpIDw8IDApCisrCisrI2RlZmlu ZSBJU1BfUkVHX0xDQ0ZfQ0ZHXzIJMHgwZTAKKysjZGVmaW5lIElTUF9SRUdfTENDRl9DRkdfMwkw eDBlNAorKyNkZWZpbmUgSVNQX1JFR19MQ0NGX0NGR180CTB4MGU4CisrI2RlZmluZSBJU1BfUkVH X0xDQ0ZfQ0ZHXzUJMHgwZWMKKysjZGVmaW5lIExDQ0ZfRjJfUEFSKG4pCSgobikgPDwgMTYpCisr I2RlZmluZSBMQ0NGX0YxX1BBUihuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX09F Q0ZfWDBfQ0ZHMAkweDEwMAorKyNkZWZpbmUgSVNQX1JFR19PRUNGX1gwX0NGRzEJMHgxMDQKKysj ZGVmaW5lIElTUF9SRUdfT0VDRl9YMF9DRkcyCTB4MTA4CisrI2RlZmluZSBJU1BfUkVHX09FQ0Zf WDBfQ0ZHMwkweDEwYworKyNkZWZpbmUgSVNQX1JFR19PRUNGX1gwX0NGRzQJMHgxMTAKKysjZGVm aW5lIElTUF9SRUdfT0VDRl9YMF9DRkc1CTB4MTE0CisrI2RlZmluZSBJU1BfUkVHX09FQ0ZfWDBf Q0ZHNgkweDExOAorKyNkZWZpbmUgSVNQX1JFR19PRUNGX1gwX0NGRzcJMHgxMWMKKysKKysjZGVm aW5lIElTUF9SRUdfT0VDRl9ZM19DRkcwCTB4MWUwCisrI2RlZmluZSBJU1BfUkVHX09FQ0ZfWTNf Q0ZHMQkweDFlNAorKyNkZWZpbmUgSVNQX1JFR19PRUNGX1kzX0NGRzIJMHgxZTgKKysjZGVmaW5l IElTUF9SRUdfT0VDRl9ZM19DRkczCTB4MWVjCisrI2RlZmluZSBJU1BfUkVHX09FQ0ZfWTNfQ0ZH NAkweDFmMAorKyNkZWZpbmUgSVNQX1JFR19PRUNGX1kzX0NGRzUJMHgxZjQKKysjZGVmaW5lIElT UF9SRUdfT0VDRl9ZM19DRkc2CTB4MWY4CisrI2RlZmluZSBJU1BfUkVHX09FQ0ZfWTNfQ0ZHNwkw eDFmYworKworKyNkZWZpbmUgSVNQX1JFR19PRUNGX1MwX0NGRzAJMHgyMDAKKysjZGVmaW5lIElT UF9SRUdfT0VDRl9TM19DRkc3CTB4MjdjCisrI2RlZmluZSBPQ0VGX1BBUl9IKG4pCSgobikgPDwg MTYpCisrI2RlZmluZSBPQ0VGX1BBUl9MKG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9S RUdfQVdCX1gwX0NGR18wCTB4MjgwCisrI2RlZmluZSBJU1BfUkVHX0FXQl9YMF9DRkdfMQkweDI4 NAorKyNkZWZpbmUgSVNQX1JFR19BV0JfWDFfQ0ZHXzAJMHgyODgKKysjZGVmaW5lIElTUF9SRUdf QVdCX1gxX0NGR18xCTB4MjhjCisrI2RlZmluZSBJU1BfUkVHX0FXQl9YMl9DRkdfMAkweDI5MAor KyNkZWZpbmUgSVNQX1JFR19BV0JfWDJfQ0ZHXzEJMHgyOTQKKysjZGVmaW5lIElTUF9SRUdfQVdC X1gzX0NGR18wCTB4Mjk4CisrI2RlZmluZSBJU1BfUkVHX0FXQl9YM19DRkdfMQkweDI5YworKyNk ZWZpbmUgQVdCX1hfU1lNQk9MX0gobikJKChuKSA8PCAxNikKKysjZGVmaW5lIEFXQl9YX1NZTUJP TF9MKG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfQVdCX1kwX0NGR18wCTB4MmEw CisrI2RlZmluZSBJU1BfUkVHX0FXQl9ZMF9DRkdfMQkweDJhNAorKyNkZWZpbmUgSVNQX1JFR19B V0JfWTFfQ0ZHXzAJMHgyYTgKKysjZGVmaW5lIElTUF9SRUdfQVdCX1kxX0NGR18xCTB4MmFjCisr I2RlZmluZSBJU1BfUkVHX0FXQl9ZMl9DRkdfMAkweDJiMAorKyNkZWZpbmUgSVNQX1JFR19BV0Jf WTJfQ0ZHXzEJMHgyYjQKKysjZGVmaW5lIElTUF9SRUdfQVdCX1kzX0NGR18wCTB4MmI4CisrI2Rl ZmluZSBJU1BfUkVHX0FXQl9ZM19DRkdfMQkweDJiYworKyNkZWZpbmUgQVdCX1lfU1lNQk9MX0go bikJKChuKSA8PCAxNikKKysjZGVmaW5lIEFXQl9ZX1NZTUJPTF9MKG4pCSgobikgPDwgMCkKKysK KysjZGVmaW5lIElTUF9SRUdfQVdCX1MwX0NGR18wCTB4MmMwCisrI2RlZmluZSBJU1BfUkVHX0FX Ql9TMF9DRkdfMQkweDJjNAorKyNkZWZpbmUgSVNQX1JFR19BV0JfUzFfQ0ZHXzAJMHgyYzgKKysj ZGVmaW5lIElTUF9SRUdfQVdCX1MxX0NGR18xCTB4MmNjCisrI2RlZmluZSBJU1BfUkVHX0FXQl9T Ml9DRkdfMAkweDJkMAorKyNkZWZpbmUgSVNQX1JFR19BV0JfUzJfQ0ZHXzEJMHgyZDQKKysjZGVm aW5lIElTUF9SRUdfQVdCX1MzX0NGR18wCTB4MmQ4CisrI2RlZmluZSBJU1BfUkVHX0FXQl9TM19D RkdfMQkweDJkYworKyNkZWZpbmUgQVdCX1NfU1lNQk9MX0gobikJKChuKSA8PCAxNikKKysjZGVm aW5lIEFXQl9TX1NZTUJPTF9MKG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfT0JD R19DRkdfMAkweDJlMAorKyNkZWZpbmUgSVNQX1JFR19PQkNHX0NGR18xCTB4MmU0CisrI2RlZmlu ZSBJU1BfUkVHX09CQ0dfQ0ZHXzIJMHgyZTgKKysjZGVmaW5lIElTUF9SRUdfT0JDR19DRkdfMwkw eDJlYworKyNkZWZpbmUgSVNQX1JFR19PQkNPX0NGR18wCTB4MmYwCisrI2RlZmluZSBJU1BfUkVH X09CQ09fQ0ZHXzEJMHgyZjQKKysjZGVmaW5lIElTUF9SRUdfT0JDT19DRkdfMgkweDJmOAorKyNk ZWZpbmUgSVNQX1JFR19PQkNPX0NGR18zCTB4MmZjCisrI2RlZmluZSBHQUlOX0RfUE9JTlQoeCkJ KCh4KSA8PCAyNCkKKysjZGVmaW5lIEdBSU5fQ19QT0lOVCh4KQkoKHgpIDw8IDE2KQorKyNkZWZp bmUgR0FJTl9CX1BPSU5UKHgpCSgoeCkgPDwgOCkKKysjZGVmaW5lIEdBSU5fQV9QT0lOVCh4KQko KHgpIDw8IDApCisrI2RlZmluZSBPRkZTRVRfRF9QT0lOVCh4KQkoKHgpIDw8IDI0KQorKyNkZWZp bmUgT0ZGU0VUX0NfUE9JTlQoeCkJKCh4KSA8PCAxNikKKysjZGVmaW5lIE9GRlNFVF9CX1BPSU5U KHgpCSgoeCkgPDwgOCkKKysjZGVmaW5lIE9GRlNFVF9BX1BPSU5UKHgpCSgoeCkgPDwgMCkKKysK KysjZGVmaW5lIElTUF9SRUdfSVNQX0NUUkxfMAkweGEwMAorKyNkZWZpbmUgSVNQQ19TQ0ZFSU5U CUJJVCgyNykKKysjZGVmaW5lIElTUENfVlNGV0lOVAlCSVQoMjYpCisrI2RlZmluZSBJU1BDX1ZT SU5UCUJJVCgyNSkKKysjZGVmaW5lIElTUENfSU5UUwlCSVQoMjQpCisrI2RlZmluZSBJU1BDX0VO VU8JQklUKDIwKQorKyNkZWZpbmUgSVNQQ19FTkxTCUJJVCgxNykKKysjZGVmaW5lIElTUENfRU5T UzEJQklUKDEyKQorKyNkZWZpbmUgSVNQQ19FTlNTMAlCSVQoMTEpCisrI2RlZmluZSBJU1BDX1JT VAlCSVQoMSkKKysjZGVmaW5lIElTUENfRU4JQklUKDApCisrI2RlZmluZSBJU1BDX1JTVF9NQVNL CUJJVCgxKQorKworKyNkZWZpbmUgSVNQX1JFR19JU1BfQ1RSTF8xCTB4YTA4CisrI2RlZmluZSBD VFJMX1NBVChuKQkoKG4pIDw8IDI4KQorKyNkZWZpbmUgQ1RSTF9EQkMJQklUKDIyKQorKyNkZWZp bmUgQ1RSTF9DVEMJQklUKDIxKQorKyNkZWZpbmUgQ1RSTF9ZSElTVAlCSVQoMjApCisrI2RlZmlu ZSBDVFJMX1lDVVJWRQlCSVQoMTkpCisrI2RlZmluZSBDVFJMX0NUTQlCSVQoMTgpCisrI2RlZmlu ZSBDVFJMX0JJWVVWCUJJVCgxNykKKysjZGVmaW5lIENUUkxfU0NFCUJJVCg4KQorKyNkZWZpbmUg Q1RSTF9FRQlCSVQoNykKKysjZGVmaW5lIENUUkxfQ0NFCUJJVCg1KQorKyNkZWZpbmUgQ1RSTF9S R0UJQklUKDQpCisrI2RlZmluZSBDVFJMX0NNRQlCSVQoMykKKysjZGVmaW5lIENUUkxfQUUJQklU KDIpCisrI2RlZmluZSBDVFJMX0NFCUJJVCgxKQorKyNkZWZpbmUgQ1RSTF9TQVRfTUFTSwlHRU5N QVNLKDMxLCAyOCkKKysKKysjZGVmaW5lIElTUF9SRUdfUElQRUxJTkVfWFlfU0laRQkweGEwYwor KyNkZWZpbmUgSF9BQ1RfQ0FQKG4pCSgobikgPDwgMTYpCisrI2RlZmluZSBXX0FDVF9DQVAobikJ KChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19JQ1RDCTB4YTEwCisrI2RlZmluZSBHRl9N T0RFKG4pCSgobikgPDwgMzApCisrI2RlZmluZSBNQVhHVChuKQkoKG4pIDw8IDE2KQorKyNkZWZp bmUgTUlOR1QobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19JREJDCTB4YTE0Cisr I2RlZmluZSBCQURHVChuKQkoKG4pIDw8IDE2KQorKyNkZWZpbmUgQkFEWFQobikJKChuKSA8PCAw KQorKworKyNkZWZpbmUgSVNQX1JFR19JQ0ZBTQkweGExYworKyNkZWZpbmUgQ1JPU1NfQ09WKG4p CSgobikgPDwgNCkKKysjZGVmaW5lIEhWX1cobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQ X1JFR19DU19HQUlOCTB4YTMwCisrI2RlZmluZSBDTUFEKG4pCSgobikgPDwgMTYpCisrI2RlZmlu ZSBDTUFCKG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfQ1NfVEhSRVNIT0xECTB4 YTM0CisrI2RlZmluZSBDTUQobikJKChuKSA8PCAxNikKKysjZGVmaW5lIENNQihuKQkoKG4pIDw8 IDApCisrCisrI2RlZmluZSBJU1BfUkVHX0NTX09GRlNFVAkweGEzOAorKyNkZWZpbmUgVk9GRihu KQkoKG4pIDw8IDE2KQorKyNkZWZpbmUgVU9GRihuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJ U1BfUkVHX0NTX0hVRV9GCTB4YTNjCisrI2RlZmluZSBTSU4obikJKChuKSA8PCAxNikKKysjZGVm aW5lIENPUyhuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX0NTX1NDQUxFCTB4YTQw CisrI2RlZmluZSBDTVNGKG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfSUVTSEQJ MHhhNTAKKysjZGVmaW5lIFNIQURfVVBfTQlCSVQoMSkKKysjZGVmaW5lIFNIQURfVVBfRU4JQklU KDApCisrCisrI2RlZmluZSBJU1BfUkVHX1lBREowCTB4YTU0CisrI2RlZmluZSBZT0lSKG4pCSgo bikgPDwgMTYpCisrI2RlZmluZSBZSU1JTihuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1Bf UkVHX1lBREoxCTB4YTU4CisrI2RlZmluZSBZT01BWChuKQkoKG4pIDw8IDE2KQorKyNkZWZpbmUg WU9NSU4obikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19ZX1BMQU5FX1NUQVJUX0FE RFIJMHhhODAKKysjZGVmaW5lIElTUF9SRUdfVVZfUExBTkVfU1RBUlRfQUREUgkweGE4NAorKwor KyNkZWZpbmUgSVNQX1JFR19TVFJJREUJMHhhODgKKysjZGVmaW5lIElNR19TVFIobikJKChuKSA8 PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19JVElJV1NSCTB4YjIwCisrI2RlZmluZSBJVElfSFNJ WkUobikJKChuKSA8PCAxNikKKysjZGVmaW5lIElUSV9XU0laRShuKQkoKG4pIDw8IDApCisrCisr I2RlZmluZSBJU1BfUkVHX0lUSURXTFNSCTB4YjI0CisrI2RlZmluZSBJVElfV1NUUklERShuKQko KG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX0lUSVBERlIJMHhiMzgKKysjZGVmaW5lIElU SV9QQUNLQUdFX0ZNVChuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX0lUSURSTFNS CTB4YjNDCisrI2RlZmluZSBJVElfU1RSSURFX0wobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUg SVNQX1JFR19ETllVVl9ZU1dSMAkweGMwMAorKyNkZWZpbmUgSVNQX1JFR19ETllVVl9ZU1dSMQkw eGMwNAorKyNkZWZpbmUgSVNQX1JFR19ETllVVl9DU1dSMAkweGMwOAorKyNkZWZpbmUgSVNQX1JF R19ETllVVl9DU1dSMQkweGMwYworKyNkZWZpbmUgWVVWU1c1KG4pCSgobikgPDwgMjApCisrI2Rl ZmluZSBZVVZTVzQobikJKChuKSA8PCAxNikKKysjZGVmaW5lIFlVVlNXMyhuKQkoKG4pIDw8IDEy KQorKyNkZWZpbmUgWVVWU1cyKG4pCSgobikgPDwgOCkKKysjZGVmaW5lIFlVVlNXMShuKQkoKG4p IDw8IDQpCisrI2RlZmluZSBZVVZTVzAobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JF R19ETllVVl9ZRFIwCTB4YzEwCisrI2RlZmluZSBJU1BfUkVHX0ROWVVWX1lEUjEJMHhjMTQKKysj ZGVmaW5lIElTUF9SRUdfRE5ZVVZfWURSMgkweGMxOAorKyNkZWZpbmUgSVNQX1JFR19ETllVVl9D RFIwCTB4YzFjCisrI2RlZmluZSBJU1BfUkVHX0ROWVVWX0NEUjEJMHhjMjAKKysjZGVmaW5lIElT UF9SRUdfRE5ZVVZfQ0RSMgkweGMyNAorKyNkZWZpbmUgQ1VSVkVfRF9IKG4pCSgobikgPDwgMTYp CisrI2RlZmluZSBDVVJWRV9EX0wobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19J Q0FNRF8wCTB4YzQwCisrI2RlZmluZSBETlJNX0YobikJKChuKSA8PCAxNikKKysjZGVmaW5lIElT UF9SRUdfSUNBTURfMTIJMHhjNzAKKysjZGVmaW5lIElTUF9SRUdfSUNBTURfMjAJMHhjOTAKKysj ZGVmaW5lIElTUF9SRUdfSUNBTURfMjQJMHhjYTAKKysjZGVmaW5lIElTUF9SRUdfSUNBTURfMjUJ MHhjYTQKKysjZGVmaW5lIENDTV9NX0RBVChuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1Bf UkVHX0dBTU1BX1ZBTDAJMHhlMDAKKysjZGVmaW5lIElTUF9SRUdfR0FNTUFfVkFMMQkweGUwNAor KyNkZWZpbmUgSVNQX1JFR19HQU1NQV9WQUwyCTB4ZTA4CisrI2RlZmluZSBJU1BfUkVHX0dBTU1B X1ZBTDMJMHhlMGMKKysjZGVmaW5lIElTUF9SRUdfR0FNTUFfVkFMNAkweGUxMAorKyNkZWZpbmUg SVNQX1JFR19HQU1NQV9WQUw1CTB4ZTE0CisrI2RlZmluZSBJU1BfUkVHX0dBTU1BX1ZBTDYJMHhl MTgKKysjZGVmaW5lIElTUF9SRUdfR0FNTUFfVkFMNwkweGUxYworKyNkZWZpbmUgSVNQX1JFR19H QU1NQV9WQUw4CTB4ZTIwCisrI2RlZmluZSBJU1BfUkVHX0dBTU1BX1ZBTDkJMHhlMjQKKysjZGVm aW5lIElTUF9SRUdfR0FNTUFfVkFMMTAJMHhlMjgKKysjZGVmaW5lIElTUF9SRUdfR0FNTUFfVkFM MTEJMHhlMmMKKysjZGVmaW5lIElTUF9SRUdfR0FNTUFfVkFMMTIJMHhlMzAKKysjZGVmaW5lIElT UF9SRUdfR0FNTUFfVkFMMTMJMHhlMzQKKysjZGVmaW5lIElTUF9SRUdfR0FNTUFfVkFMMTQJMHhl MzgKKysjZGVmaW5lIEdBTU1BX1NfVkFMKG4pCSgobikgPDwgMTYpCisrI2RlZmluZSBHQU1NQV9W QUwobikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19SMllfMAkweGU0MAorKyNkZWZp bmUgSVNQX1JFR19SMllfMQkweGU0NAorKyNkZWZpbmUgSVNQX1JFR19SMllfMgkweGU0OAorKyNk ZWZpbmUgSVNQX1JFR19SMllfMwkweGU0YworKyNkZWZpbmUgSVNQX1JFR19SMllfNAkweGU1MAor KyNkZWZpbmUgSVNQX1JFR19SMllfNQkweGU1NAorKyNkZWZpbmUgSVNQX1JFR19SMllfNgkweGU1 OAorKyNkZWZpbmUgSVNQX1JFR19SMllfNwkweGU1YworKyNkZWZpbmUgSVNQX1JFR19SMllfOAkw eGU2MAorKyNkZWZpbmUgQ1NDX00obikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSVNQX1JFR19T SEFSUEVOMAkweGU4MAorKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVOMQkweGU4NAorKyNkZWZpbmUg SVNQX1JFR19TSEFSUEVOMgkweGU4OAorKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVOMwkweGU4Ywor KyNkZWZpbmUgSVNQX1JFR19TSEFSUEVONAkweGU5MAorKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVO NQkweGU5NAorKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVONgkweGU5OAorKyNkZWZpbmUgSVNQX1JF R19TSEFSUEVONwkweGU5YworKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVOOAkweGVhMAorKyNkZWZp bmUgSVNQX1JFR19TSEFSUEVOOQkweGVhNAorKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVOMTAJMHhl YTgKKysjZGVmaW5lIElTUF9SRUdfU0hBUlBFTjExCTB4ZWFjCisrI2RlZmluZSBJU1BfUkVHX1NI QVJQRU4xMgkweGViMAorKyNkZWZpbmUgSVNQX1JFR19TSEFSUEVOMTMJMHhlYjQKKysjZGVmaW5l IElTUF9SRUdfU0hBUlBFTjE0CTB4ZWI4CisrI2RlZmluZSBTX0RFTFRBKG4pCSgobikgPDwgMTYp CisrI2RlZmluZSBTX1dFSUdIVChuKQkoKG4pIDw8IDgpCisrCisrI2RlZmluZSBJU1BfUkVHX1NI QVJQRU5fRlMwCTB4ZWJjCisrI2RlZmluZSBJU1BfUkVHX1NIQVJQRU5fRlMxCTB4ZWMwCisrI2Rl ZmluZSBJU1BfUkVHX1NIQVJQRU5fRlMyCTB4ZWM0CisrI2RlZmluZSBJU1BfUkVHX1NIQVJQRU5f RlMzCTB4ZWM4CisrI2RlZmluZSBJU1BfUkVHX1NIQVJQRU5fRlM0CTB4ZWNjCisrI2RlZmluZSBJ U1BfUkVHX1NIQVJQRU5fRlM1CTB4ZWQwCisrI2RlZmluZSBTX0ZBQ1RPUihuKQkoKG4pIDw8IDI0 KQorKyNkZWZpbmUgU19TTE9QRShuKQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX1NI QVJQRU5fV04JMHhlZDQKKysjZGVmaW5lIFBESVJGKG4pCSgobikgPDwgMjgpCisrI2RlZmluZSBO RElSRihuKQkoKG4pIDw8IDI0KQorKyNkZWZpbmUgV1NVTShuKQkoKG4pIDw8IDApCisrCisrI2Rl ZmluZSBJU1BfUkVHX0lVVlMxCTB4ZWQ4CisrI2RlZmluZSBVVkRJRkYyKG4pCSgobikgPDwgMTYp CisrI2RlZmluZSBVVkRJRkYxKG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfSVVW UzIJMHhlZGMKKysjZGVmaW5lIFVWRihuKQkoKG4pIDw8IDI0KQorKyNkZWZpbmUgVVZTTE9QRShu KQkoKG4pIDw8IDApCisrCisrI2RlZmluZSBJU1BfUkVHX0lVVkNLUzEJMHhlZTAKKysjZGVmaW5l IFVWQ0tESUZGMihuKQkoKG4pIDw8IDE2KQorKyNkZWZpbmUgVVZDS0RJRkYxKG4pCSgobikgPDwg MCkKKysKKysjZGVmaW5lIElTUF9SRUdfSVVWQ0tTMgkweGVlNAorKyNkZWZpbmUgVVZDS1NMT1BF KG4pCSgobikgPDwgMCkKKysKKysjZGVmaW5lIElTUF9SRUdfSVNIUlBFVAkweGVlOAorKyNkZWZp bmUgVEgobikJKChuKSA8PCA4KQorKyNkZWZpbmUgRU4obikJKChuKSA8PCAwKQorKworKyNkZWZp bmUgSVNQX1JFR19ZQ1VSVkVfMAkweGYwMAorKyNkZWZpbmUgSVNQX1JFR19ZQ1VSVkVfNjMJMHhm ZmMKKysjZGVmaW5lIExfUEFSQU0obikJKChuKSA8PCAwKQorKworKyNkZWZpbmUgSU1BR0VfTUFY X1dJRFRICTE5MjAKKysjZGVmaW5lIElNQUdFX01BWF9IRUlHSAkxMDgwCisrCisrLyogVGhlIG91 dHB1dCBsaW5lIG9mIElTUCAqLworK2VudW0gaXNwX2xpbmVfaWQgeworKwlTVEZfSVNQX0xJTkVf SU5WQUxJRCA9IC0xLAorKwlTVEZfSVNQX0xJTkVfU1JDID0gMSwKKysJU1RGX0lTUF9MSU5FX01B WCA9IFNURl9JU1BfTElORV9TUkMKKyt9OworKworKy8qIHBhZCBpZCBmb3IgbWVkaWEgZnJhbWV3 b3JrICovCisrZW51bSBpc3BfcGFkX2lkIHsKKysJU1RGX0lTUF9QQURfU0lOSyA9IDAsCisrCVNU Rl9JU1BfUEFEX1NSQywKKysJU1RGX0lTUF9QQURfTUFYCisrfTsKKysKKytlbnVtIHsKKysJRU5f SU5UX05PTkUgICAgICAgICAgICAgICAgID0gMCwKKysJRU5fSU5UX0lTUF9ET05FICAgICAgICAg ICAgID0gKDB4MSA8PCAyNCksCisrCUVOX0lOVF9DU0lfRE9ORSAgICAgICAgICAgICA9ICgweDEg PDwgMjUpLAorKwlFTl9JTlRfU0NfRE9ORSAgICAgICAgICAgICAgPSAoMHgxIDw8IDI2KSwKKysJ RU5fSU5UX0xJTkVfSU5UICAgICAgICAgICAgID0gKDB4MSA8PCAyNyksCisrCUVOX0lOVF9BTEwg ICAgICAgICAgICAgICAgICA9ICgweEYgPDwgMjQpLAorK307CisrCisrZW51bSB7CisrCUlOVEVS RkFDRV9EVlAgPSAwLAorKwlJTlRFUkZBQ0VfQ1NJLAorK307CisrCisrc3RydWN0IGlzcF9mb3Jt YXQgeworKwl1MzIgY29kZTsKKysJdTggYnBwOworK307CisrCisrc3RydWN0IGlzcF9mb3JtYXRf dGFibGUgeworKwljb25zdCBzdHJ1Y3QgaXNwX2Zvcm1hdCAqZm10czsKKysJaW50IG5mbXRzOwor K307CisrCisrc3RydWN0IHJlZ3ZhbF90IHsKKysJdTMyIGFkZHI7CisrCXUzMiB2YWw7CisrCXUz MiBkZWxheV9tczsKKyt9OworKworK3N0cnVjdCByZWdfdGFibGUgeworKwljb25zdCBzdHJ1Y3Qg cmVndmFsX3QgKnJlZ3ZhbDsKKysJaW50IHJlZ3ZhbF9udW07CisrfTsKKysKKytzdHJ1Y3Qgc3Rm X2lzcF9jcm9wIHsKKysJc3RydWN0IHY0bDJfcmVjdCByZWN0OworKwl1MzIgYnBwOworK307Cisr Cisrc3RydWN0IHN0Zl9pc3BfZGV2IHsKKysJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zczsKKysJ c3RydWN0IHY0bDJfc3ViZGV2IHN1YmRldjsKKysJc3RydWN0IG1lZGlhX3BhZCBwYWRzW1NURl9J U1BfUEFEX01BWF07CisrCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgZm10W1NURl9JU1BfUEFE X01BWF07CisrCXN0cnVjdCBzdGZfaXNwX2Nyb3AgcmVjdFtTVEZfSVNQX1BBRF9NQVhdOworKwlj b25zdCBzdHJ1Y3QgaXNwX2Zvcm1hdF90YWJsZSAqZm9ybWF0czsKKysJdW5zaWduZWQgaW50IG5m b3JtYXRzOworKwlzdHJ1Y3QgbXV0ZXggc3RyZWFtX2xvY2s7CS8qIHNlcmlhbGl6ZSBzdHJlYW0g Y29udHJvbCAqLworKwlpbnQgc3RyZWFtX2NvdW50OworK307CisrCisraW50IHN0Zl9pc3BfY2xr X2VuYWJsZShzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYpOworK2ludCBzdGZfaXNwX2Nsa19k aXNhYmxlKHN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2Rldik7CisraW50IHN0Zl9pc3BfcmVzZXQo c3RydWN0IHN0Zl9pc3BfZGV2ICppc3BfZGV2KTsKKyt2b2lkIHN0Zl9pc3BfaW5pdF9jZmcoc3Ry dWN0IHN0Zl9pc3BfZGV2ICppc3BfZGV2KTsKKyt2b2lkIHN0Zl9pc3Bfc2V0dGluZ3Moc3RydWN0 IHN0Zl9pc3BfZGV2ICppc3BfZGV2LAorKwkJICAgICAgc3RydWN0IHN0Zl9pc3BfY3JvcCAqY3Jv cF9hcnJheSwgdTMyIG1jb2RlKTsKKyt2b2lkIHN0Zl9pc3Bfc3RyZWFtX3NldChzdHJ1Y3Qgc3Rm X2lzcF9kZXYgKmlzcF9kZXYpOworK2ludCBzdGZfaXNwX3N1YmRldl9pbml0KHN0cnVjdCBzdGZj YW1zcyAqc3RmY2Ftc3MpOworK2ludCBzdGZfaXNwX3JlZ2lzdGVyKHN0cnVjdCBzdGZfaXNwX2Rl diAqaXNwX2Rldiwgc3RydWN0IHY0bDJfZGV2aWNlICp2NGwyX2Rldik7CisraW50IHN0Zl9pc3Bf dW5yZWdpc3RlcihzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYpOworKworKyNlbmRpZiAvKiBT VEZfSVNQX0ggKi8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZl L2NhbXNzL3N0Zl9pc3BfaHdfb3BzLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZl L2NhbXNzL3N0Zl9pc3BfaHdfb3BzLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMDAwMDAuLjIwODhiNmJkMGQ2MQorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfaXNwX2h3X29wcy5jCitAQCAtMCwwICsxLDQ2 OCBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBzdGZf aXNwX2h3X29wcy5jCisrICoKKysgKiBSZWdpc3RlciBpbnRlcmZhY2UgZmlsZSBmb3IgU3RhckZp dmUgSVNQIGRyaXZlcgorKyAqCisrICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjMgU3RhckZpdmUg VGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKgorKyAqLworKworKyNpbmNsdWRlICJzdGZfY2Ftc3Mu aCIKKysKKytzdGF0aWMgdm9pZCBzdGZfaXNwX2NvbmZpZ19vYmMoc3RydWN0IHN0ZmNhbXNzICpz dGZjYW1zcykKKyt7CisrCXUzMiByZWdfdmFsLCByZWdfYWRkOworKworKwlzdGZfaXNwX3JlZ193 cml0ZShzdGZjYW1zcywgSVNQX1JFR19PQkNfQ0ZHLCBPQkNfV19IKDExKSB8IE9CQ19XX1coMTEp KTsKKysKKysJcmVnX3ZhbCA9IEdBSU5fRF9QT0lOVCgweDQwKSB8IEdBSU5fQ19QT0lOVCgweDQw KSB8CisrCQkgIEdBSU5fQl9QT0lOVCgweDQwKSB8IEdBSU5fQV9QT0lOVCgweDQwKTsKKysJZm9y IChyZWdfYWRkID0gSVNQX1JFR19PQkNHX0NGR18wOyByZWdfYWRkIDw9IElTUF9SRUdfT0JDR19D RkdfMzspIHsKKysJCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCByZWdfYWRkLCByZWdfdmFs KTsKKysJCXJlZ19hZGQgKz0gNDsKKysJfQorKworKwlyZWdfdmFsID0gT0ZGU0VUX0RfUE9JTlQo MCkgfCBPRkZTRVRfQ19QT0lOVCgwKSB8CisrCQkgIE9GRlNFVF9CX1BPSU5UKDApIHwgT0ZGU0VU X0FfUE9JTlQoMCk7CisrCWZvciAocmVnX2FkZCA9IElTUF9SRUdfT0JDT19DRkdfMDsgcmVnX2Fk ZCA8PSBJU1BfUkVHX09CQ09fQ0ZHXzM7KSB7CisrCQlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1z cywgcmVnX2FkZCwgcmVnX3ZhbCk7CisrCQlyZWdfYWRkICs9IDQ7CisrCX0KKyt9CisrCisrc3Rh dGljIHZvaWQgc3RmX2lzcF9jb25maWdfb2VjZihzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQor K3sKKysJdTMyIHJlZ19hZGQsIHBhcl92YWw7CisrCXUxNiBwYXJfaCwgcGFyX2w7CisrCisrCXBh cl9oID0gMHgxMDsgcGFyX2wgPSAwOworKwlwYXJfdmFsID0gT0NFRl9QQVJfSChwYXJfaCkgfCBP Q0VGX1BBUl9MKHBhcl9sKTsKKysJZm9yIChyZWdfYWRkID0gSVNQX1JFR19PRUNGX1gwX0NGRzA7 IHJlZ19hZGQgPD0gSVNQX1JFR19PRUNGX1kzX0NGRzA7KSB7CisrCQlzdGZfaXNwX3JlZ193cml0 ZShzdGZjYW1zcywgcmVnX2FkZCwgcGFyX3ZhbCk7CisrCQlyZWdfYWRkICs9IDB4MjA7CisrCX0K KysKKysJcGFyX2ggPSAweDQwOyBwYXJfbCA9IDB4MjA7CisrCXBhcl92YWwgPSBPQ0VGX1BBUl9I KHBhcl9oKSB8IE9DRUZfUEFSX0wocGFyX2wpOworKwlmb3IgKHJlZ19hZGQgPSBJU1BfUkVHX09F Q0ZfWDBfQ0ZHMTsgcmVnX2FkZCA8PSBJU1BfUkVHX09FQ0ZfWTNfQ0ZHMTspIHsKKysJCXN0Zl9p c3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCByZWdfYWRkLCBwYXJfdmFsKTsKKysJCXJlZ19hZGQgKz0g MHgyMDsKKysJfQorKworKwlwYXJfaCA9IDB4ODA7IHBhcl9sID0gMHg2MDsKKysJcGFyX3ZhbCA9 IE9DRUZfUEFSX0gocGFyX2gpIHwgT0NFRl9QQVJfTChwYXJfbCk7CisrCWZvciAocmVnX2FkZCA9 IElTUF9SRUdfT0VDRl9YMF9DRkcyOyByZWdfYWRkIDw9IElTUF9SRUdfT0VDRl9ZM19DRkcyOykg eworKwkJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIHJlZ19hZGQsIHBhcl92YWwpOworKwkJ cmVnX2FkZCArPSAweDIwOworKwl9CisrCisrCXBhcl9oID0gMHhjMDsgcGFyX2wgPSAweGEwOwor KwlwYXJfdmFsID0gT0NFRl9QQVJfSChwYXJfaCkgfCBPQ0VGX1BBUl9MKHBhcl9sKTsKKysJZm9y IChyZWdfYWRkID0gSVNQX1JFR19PRUNGX1gwX0NGRzM7IHJlZ19hZGQgPD0gSVNQX1JFR19PRUNG X1kzX0NGRzM7KSB7CisrCQlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgcmVnX2FkZCwgcGFy X3ZhbCk7CisrCQlyZWdfYWRkICs9IDB4MjA7CisrCX0KKysKKysJcGFyX2ggPSAweDEwMDsgcGFy X2wgPSAweGUwOworKwlwYXJfdmFsID0gT0NFRl9QQVJfSChwYXJfaCkgfCBPQ0VGX1BBUl9MKHBh cl9sKTsKKysJZm9yIChyZWdfYWRkID0gSVNQX1JFR19PRUNGX1gwX0NGRzQ7IHJlZ19hZGQgPD0g SVNQX1JFR19PRUNGX1kzX0NGRzQ7KSB7CisrCQlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywg cmVnX2FkZCwgcGFyX3ZhbCk7CisrCQlyZWdfYWRkICs9IDB4MjA7CisrCX0KKysKKysJcGFyX2gg PSAweDIwMDsgcGFyX2wgPSAweDE4MDsKKysJcGFyX3ZhbCA9IE9DRUZfUEFSX0gocGFyX2gpIHwg T0NFRl9QQVJfTChwYXJfbCk7CisrCWZvciAocmVnX2FkZCA9IElTUF9SRUdfT0VDRl9YMF9DRkc1 OyByZWdfYWRkIDw9IElTUF9SRUdfT0VDRl9ZM19DRkc1OykgeworKwkJc3RmX2lzcF9yZWdfd3Jp dGUoc3RmY2Ftc3MsIHJlZ19hZGQsIHBhcl92YWwpOworKwkJcmVnX2FkZCArPSAweDIwOworKwl9 CisrCisrCXBhcl9oID0gMHgzMDA7IHBhcl9sID0gMHgyODA7CisrCXBhcl92YWwgPSBPQ0VGX1BB Ul9IKHBhcl9oKSB8IE9DRUZfUEFSX0wocGFyX2wpOworKwlmb3IgKHJlZ19hZGQgPSBJU1BfUkVH X09FQ0ZfWDBfQ0ZHNjsgcmVnX2FkZCA8PSBJU1BfUkVHX09FQ0ZfWTNfQ0ZHNjspIHsKKysJCXN0 Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCByZWdfYWRkLCBwYXJfdmFsKTsKKysJCXJlZ19hZGQg Kz0gMHgyMDsKKysJfQorKworKwlwYXJfaCA9IDB4M2ZlOyBwYXJfbCA9IDB4MzgwOworKwlwYXJf dmFsID0gT0NFRl9QQVJfSChwYXJfaCkgfCBPQ0VGX1BBUl9MKHBhcl9sKTsKKysJZm9yIChyZWdf YWRkID0gSVNQX1JFR19PRUNGX1gwX0NGRzc7IHJlZ19hZGQgPD0gSVNQX1JFR19PRUNGX1kzX0NG Rzc7KSB7CisrCQlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgcmVnX2FkZCwgcGFyX3ZhbCk7 CisrCQlyZWdfYWRkICs9IDB4MjA7CisrCX0KKysKKysJcGFyX2ggPSAweDgwOyBwYXJfbCA9IDB4 ODA7CisrCXBhcl92YWwgPSBPQ0VGX1BBUl9IKHBhcl9oKSB8IE9DRUZfUEFSX0wocGFyX2wpOwor Kwlmb3IgKHJlZ19hZGQgPSBJU1BfUkVHX09FQ0ZfUzBfQ0ZHMDsgcmVnX2FkZCA8PSBJU1BfUkVH X09FQ0ZfUzNfQ0ZHNzspIHsKKysJCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCByZWdfYWRk LCBwYXJfdmFsKTsKKysJCXJlZ19hZGQgKz0gNDsKKysJfQorK30KKysKKytzdGF0aWMgdm9pZCBz dGZfaXNwX2NvbmZpZ19sY2NmKHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwl1MzIg cmVnX2FkZDsKKysKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfTENDRl9D RkdfMCwKKysJCQkgIFlfRElTVEFOQ0UoMHgyMUMpIHwgWF9ESVNUQU5DRSgweDNDMCkpOworKwlz dGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19MQ0NGX0NGR18xLCBMQ0NGX01BWF9E SVMoMHhiKSk7CisrCisrCWZvciAocmVnX2FkZCA9IElTUF9SRUdfTENDRl9DRkdfMjsgcmVnX2Fk ZCA8PSBJU1BfUkVHX0xDQ0ZfQ0ZHXzU7KSB7CisrCQlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1z cywgcmVnX2FkZCwKKysJCQkJICBMQ0NGX0YyX1BBUigweDApIHwgTENDRl9GMV9QQVIoMHgwKSk7 CisrCQlyZWdfYWRkICs9IDQ7CisrCX0KKyt9CisrCisrc3RhdGljIHZvaWQgc3RmX2lzcF9jb25m aWdfYXdiKHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwl1MzIgcmVnX3ZhbCwgcmVn X2FkZDsKKysJdTE2IHN5bWJvbF9oLCBzeW1ib2xfbDsKKysKKysJc3ltYm9sX2ggPSAweDA7IHN5 bWJvbF9sID0gMHgwOworKwlyZWdfdmFsID0gQVdCX1hfU1lNQk9MX0goc3ltYm9sX2gpIHwgQVdC X1hfU1lNQk9MX0woc3ltYm9sX2wpOworKworKwlmb3IgKHJlZ19hZGQgPSBJU1BfUkVHX0FXQl9Y MF9DRkdfMDsgcmVnX2FkZCA8PSBJU1BfUkVHX0FXQl9YM19DRkdfMTspIHsKKysJCXN0Zl9pc3Bf cmVnX3dyaXRlKHN0ZmNhbXNzLCByZWdfYWRkLCByZWdfdmFsKTsKKysJCXJlZ19hZGQgKz0gNDsK KysJfQorKworKwlzeW1ib2xfaCA9IDB4MCwgc3ltYm9sX2wgPSAweDA7CisrCXJlZ192YWwgPSBB V0JfWV9TWU1CT0xfSChzeW1ib2xfaCkgfCBBV0JfWV9TWU1CT0xfTChzeW1ib2xfbCk7CisrCisr CWZvciAocmVnX2FkZCA9IElTUF9SRUdfQVdCX1kwX0NGR18wOyByZWdfYWRkIDw9IElTUF9SRUdf QVdCX1kzX0NGR18xOykgeworKwkJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIHJlZ19hZGQs IHJlZ192YWwpOworKwkJcmVnX2FkZCArPSA0OworKwl9CisrCisrCXN5bWJvbF9oID0gMHg4MCwg c3ltYm9sX2wgPSAweDgwOworKwlyZWdfdmFsID0gQVdCX1NfU1lNQk9MX0goc3ltYm9sX2gpIHwg QVdCX1NfU1lNQk9MX0woc3ltYm9sX2wpOworKworKwlmb3IgKHJlZ19hZGQgPSBJU1BfUkVHX0FX Ql9TMF9DRkdfMDsgcmVnX2FkZCA8PSBJU1BfUkVHX0FXQl9TM19DRkdfMTspIHsKKysJCXN0Zl9p c3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCByZWdfYWRkLCByZWdfdmFsKTsKKysJCXJlZ19hZGQgKz0g NDsKKysJfQorK30KKysKKytzdGF0aWMgdm9pZCBzdGZfaXNwX2NvbmZpZ19ncmdiKHN0cnVjdCBz dGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQ X1JFR19JQ1RDLAorKwkJCSAgR0ZfTU9ERSgxKSB8IE1BWEdUKDB4MTQwKSB8IE1JTkdUKDB4NDAp KTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfSURCQywgQkFER1QoMHgy MDApIHwgQkFEWFQoMHgyMDApKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RmX2lzcF9jb25maWdf Y2ZhKHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwlzdGZfaXNwX3JlZ193cml0ZShz dGZjYW1zcywgSVNQX1JFR19SQVdfRk9STUFUX0NGRywKKysJCQkgIFNNWTEzKDApIHwgU01ZMTIo MSkgfCBTTVkxMSgwKSB8IFNNWTEwKDEpIHwgU01ZMygyKSB8CisrCQkJICBTTVkyKDMpIHwgU01Z MSgyKSB8IFNNWTAoMykpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19J Q0ZBTSwgQ1JPU1NfQ09WKDMpIHwgSFZfVygyKSk7CisrfQorKworK3N0YXRpYyB2b2lkIHN0Zl9p c3BfY29uZmlnX2NjbShzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJdTMyIHJlZ19h ZGQ7CisrCisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0lDQU1EXzAsIERO Uk1fRig2KSB8IENDTV9NX0RBVCgwKSk7CisrCisrCWZvciAocmVnX2FkZCA9IElTUF9SRUdfSUNB TURfMTI7IHJlZ19hZGQgPD0gSVNQX1JFR19JQ0FNRF8yMDspIHsKKysJCXN0Zl9pc3BfcmVnX3dy aXRlKHN0ZmNhbXNzLCByZWdfYWRkLCBDQ01fTV9EQVQoMHg4MCkpOworKwkJcmVnX2FkZCArPSAw eDEwOworKwl9CisrCisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0lDQU1E XzI0LCBDQ01fTV9EQVQoMHg3MDApKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElT UF9SRUdfSUNBTURfMjUsIENDTV9NX0RBVCgweDIwMCkpOworK30KKysKKytzdGF0aWMgdm9pZCBz dGZfaXNwX2NvbmZpZ19nYW1tYShzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJdTMy IHJlZ192YWwsIHJlZ19hZGQ7CisrCXUxNiBnYW1tYV9zbG9wZV92LCBnYW1tYV92OworKworKwln YW1tYV9zbG9wZV92ID0gMHgyNDAwOyBnYW1tYV92ID0gMHgwOworKwlyZWdfdmFsID0gR0FNTUFf U19WQUwoZ2FtbWFfc2xvcGVfdikgfCBHQU1NQV9WQUwoZ2FtbWFfdik7CisrCXN0Zl9pc3BfcmVn X3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0dBTU1BX1ZBTDAsIHJlZ192YWwpOworKworKwlnYW1t YV9zbG9wZV92ID0gMHg4MDA7IGdhbW1hX3YgPSAweDIwOworKwlmb3IgKHJlZ19hZGQgPSBJU1Bf UkVHX0dBTU1BX1ZBTDE7IHJlZ19hZGQgPD0gSVNQX1JFR19HQU1NQV9WQUw3OykgeworKwkJcmVn X3ZhbCA9IEdBTU1BX1NfVkFMKGdhbW1hX3Nsb3BlX3YpIHwgR0FNTUFfVkFMKGdhbW1hX3YpOwor KwkJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIHJlZ19hZGQsIHJlZ192YWwpOworKwkJcmVn X2FkZCArPSA0OworKwkJZ2FtbWFfdiArPSAweDIwOworKwl9CisrCisrCWdhbW1hX3YgPSAweDEw MDsKKysJZm9yIChyZWdfYWRkID0gSVNQX1JFR19HQU1NQV9WQUw4OyByZWdfYWRkIDw9IElTUF9S RUdfR0FNTUFfVkFMMTM7KSB7CisrCQlyZWdfdmFsID0gR0FNTUFfU19WQUwoZ2FtbWFfc2xvcGVf dikgfCBHQU1NQV9WQUwoZ2FtbWFfdik7CisrCQlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywg cmVnX2FkZCwgcmVnX3ZhbCk7CisrCQlyZWdfYWRkICs9IDQ7CisrCQlnYW1tYV92ICs9IDB4ODA7 CisrCX0KKysKKysJZ2FtbWFfdiA9IDB4M2ZlOworKwlyZWdfdmFsID0gR0FNTUFfU19WQUwoZ2Ft bWFfc2xvcGVfdikgfCBHQU1NQV9WQUwoZ2FtbWFfdik7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0 ZmNhbXNzLCBJU1BfUkVHX0dBTU1BX1ZBTDE0LCByZWdfdmFsKTsKKyt9CisrCisrc3RhdGljIHZv aWQgc3RmX2lzcF9jb25maWdfcjJ5KHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisreworKwlz dGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19SMllfMCwgQ1NDX00oMHg0QykpOwor KwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19SMllfMSwgQ1NDX00oMHg5Nykp OworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19SMllfMiwgQ1NDX00oMHgx ZCkpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19SMllfMywgQ1NDX00o MHgxZDUpKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfUjJZXzQsIENT Q19NKDB4MWFjKSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX1IyWV81 LCBDU0NfTSgweDgwKSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX1Iy WV82LCBDU0NfTSgweDgwKSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVH X1IyWV83LCBDU0NfTSgweDE5NCkpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQ X1JFR19SMllfOCwgQ1NDX00oMHgxZWMpKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RmX2lzcF9j b25maWdfeV9jdXJ2ZShzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJdTMyIHJlZ19h ZGQ7CisrCXUxNiB5X2N1cnZlOworKworKwl5X2N1cnZlID0gMHgwOworKwlmb3IgKHJlZ19hZGQg PSBJU1BfUkVHX1lDVVJWRV8wOyByZWdfYWRkIDw9IElTUF9SRUdfWUNVUlZFXzYzOykgeworKwkJ c3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIHJlZ19hZGQsIHlfY3VydmUpOworKwkJcmVnX2Fk ZCArPSA0OworKwkJeV9jdXJ2ZSArPSAweDEwOworKwl9CisrfQorKworK3N0YXRpYyB2b2lkIHN0 Zl9pc3BfY29uZmlnX3NoYXJwZW4oc3RydWN0IHN0ZmNhbXNzICpzYykKKyt7CisrCXUzMiByZWdf YWRkOworKworKwlzdGZfaXNwX3JlZ193cml0ZShzYywgSVNQX1JFR19TSEFSUEVOMCwgU19ERUxU QSgweDcpIHwgU19XRUlHSFQoMHhmKSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHNjLCBJU1BfUkVH X1NIQVJQRU4xLCBTX0RFTFRBKDB4MTgpIHwgU19XRUlHSFQoMHhmKSk7CisrCXN0Zl9pc3BfcmVn X3dyaXRlKHNjLCBJU1BfUkVHX1NIQVJQRU4yLCBTX0RFTFRBKDB4ODApIHwgU19XRUlHSFQoMHhm KSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHNjLCBJU1BfUkVHX1NIQVJQRU4zLCBTX0RFTFRBKDB4 MTAwKSB8IFNfV0VJR0hUKDB4ZikpOworKwlzdGZfaXNwX3JlZ193cml0ZShzYywgSVNQX1JFR19T SEFSUEVONCwgU19ERUxUQSgweDEwKSB8IFNfV0VJR0hUKDB4ZikpOworKwlzdGZfaXNwX3JlZ193 cml0ZShzYywgSVNQX1JFR19TSEFSUEVONSwgU19ERUxUQSgweDYwKSB8IFNfV0VJR0hUKDB4Zikp OworKwlzdGZfaXNwX3JlZ193cml0ZShzYywgSVNQX1JFR19TSEFSUEVONiwgU19ERUxUQSgweDEw MCkgfCBTX1dFSUdIVCgweGYpKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc2MsIElTUF9SRUdfU0hB UlBFTjcsIFNfREVMVEEoMHgxOTApIHwgU19XRUlHSFQoMHhmKSk7CisrCXN0Zl9pc3BfcmVnX3dy aXRlKHNjLCBJU1BfUkVHX1NIQVJQRU44LCBTX0RFTFRBKDB4MCkgfCBTX1dFSUdIVCgweGYpKTsK KysKKysJZm9yIChyZWdfYWRkID0gSVNQX1JFR19TSEFSUEVOOTsgcmVnX2FkZCA8PSBJU1BfUkVH X1NIQVJQRU4xNDspIHsKKysJCXN0Zl9pc3BfcmVnX3dyaXRlKHNjLCByZWdfYWRkLCBTX1dFSUdI VCgweGYpKTsKKysJCXJlZ19hZGQgKz0gNDsKKysJfQorKworKwlmb3IgKHJlZ19hZGQgPSBJU1Bf UkVHX1NIQVJQRU5fRlMwOyByZWdfYWRkIDw9IElTUF9SRUdfU0hBUlBFTl9GUzU7KSB7CisrCQlz dGZfaXNwX3JlZ193cml0ZShzYywgcmVnX2FkZCwgU19GQUNUT1IoMHgxMCkgfCBTX1NMT1BFKDB4 MCkpOworKwkJcmVnX2FkZCArPSA0OworKwl9CisrCisrCXN0Zl9pc3BfcmVnX3dyaXRlKHNjLCBJ U1BfUkVHX1NIQVJQRU5fV04sCisrCQkJICBQRElSRigweDgpIHwgTkRJUkYoMHg4KSB8IFdTVU0o MHhkN2MpKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc2MsIElTUF9SRUdfSVVWUzEsIFVWRElGRjIo MHhDMCkgfCBVVkRJRkYxKDB4NDApKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc2MsIElTUF9SRUdf SVVWUzIsIFVWRigweGZmKSB8IFVWU0xPUEUoMHgwKSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHNj LCBJU1BfUkVHX0lVVkNLUzEsCisrCQkJICBVVkNLRElGRjIoMHhhMCkgfCBVVkNLRElGRjEoMHg0 MCkpOworK30KKysKKytzdGF0aWMgdm9pZCBzdGZfaXNwX2NvbmZpZ19kbnl1dihzdHJ1Y3Qgc3Rm Y2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJdTMyIHJlZ192YWw7CisrCisrCXJlZ192YWwgPSBZVVZT VzUoNykgfCBZVVZTVzQoNykgfCBZVVZTVzMoNykgfCBZVVZTVzIoNykgfAorKwkJICBZVVZTVzEo NykgfCBZVVZTVzAoNyk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0RO WVVWX1lTV1IwLCByZWdfdmFsKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElTUF9S RUdfRE5ZVVZfQ1NXUjAsIHJlZ192YWwpOworKworKwlyZWdfdmFsID0gWVVWU1czKDcpIHwgWVVW U1cyKDcpIHwgWVVWU1cxKDcpIHwgWVVWU1cwKDcpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZj YW1zcywgSVNQX1JFR19ETllVVl9ZU1dSMSwgcmVnX3ZhbCk7CisrCXN0Zl9pc3BfcmVnX3dyaXRl KHN0ZmNhbXNzLCBJU1BfUkVHX0ROWVVWX0NTV1IxLCByZWdfdmFsKTsKKysKKysJcmVnX3ZhbCA9 IENVUlZFX0RfSCgweDYwKSB8IENVUlZFX0RfTCgweDQwKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUo c3RmY2Ftc3MsIElTUF9SRUdfRE5ZVVZfWURSMCwgcmVnX3ZhbCk7CisrCXN0Zl9pc3BfcmVnX3dy aXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0ROWVVWX0NEUjAsIHJlZ192YWwpOworKworKwlyZWdfdmFs ID0gQ1VSVkVfRF9IKDB4ZDgpIHwgQ1VSVkVfRF9MKDB4OTApOworKwlzdGZfaXNwX3JlZ193cml0 ZShzdGZjYW1zcywgSVNQX1JFR19ETllVVl9ZRFIxLCByZWdfdmFsKTsKKysJc3RmX2lzcF9yZWdf d3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfRE5ZVVZfQ0RSMSwgcmVnX3ZhbCk7CisrCisrCXJlZ192 YWwgPSBDVVJWRV9EX0goMHgxZTYpIHwgQ1VSVkVfRF9MKDB4MTQ0KTsKKysJc3RmX2lzcF9yZWdf d3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfRE5ZVVZfWURSMiwgcmVnX3ZhbCk7CisrCXN0Zl9pc3Bf cmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0ROWVVWX0NEUjIsIHJlZ192YWwpOworK30KKysK KytzdGF0aWMgdm9pZCBzdGZfaXNwX2NvbmZpZ19zYXQoc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1z cykKKyt7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0NTX0dBSU4sIENN QUQoMHgwKSB8IENNQUIoMHgxMDApKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElT UF9SRUdfQ1NfVEhSRVNIT0xELCBDTUQoMHgxZikgfCBDTUIoMHgxKSk7CisrCXN0Zl9pc3BfcmVn X3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0NTX09GRlNFVCwgVk9GRigweDApIHwgVU9GRigweDAp KTsKKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfQ1NfSFVFX0YsIFNJTigw eDApIHwgQ09TKDB4MTAwKSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVH X0NTX1NDQUxFLCBDTVNGKDB4OCkpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQ X1JFR19ZQURKMCwgWU9JUigweDQwMSkgfCBZSU1JTigweDEpKTsKKysJc3RmX2lzcF9yZWdfd3Jp dGUoc3RmY2Ftc3MsIElTUF9SRUdfWUFESjEsIFlPTUFYKDB4M2ZmKSB8IFlPTUlOKDB4MSkpOwor K30KKysKKytpbnQgc3RmX2lzcF9jbGtfZW5hYmxlKHN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2Rl dikKKyt7CisrCXN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MgPSBpc3BfZGV2LT5zdGZjYW1zczsK KysKKysJY2xrX3ByZXBhcmVfZW5hYmxlKHN0ZmNhbXNzLT5zeXNfY2xrW1NURl9DTEtfV1JBUFBF Ul9DTEtfQ10uY2xrKTsKKysJcmVzZXRfY29udHJvbF9kZWFzc2VydChzdGZjYW1zcy0+c3lzX3Jz dFtTVEZfUlNUX1dSQVBQRVJfQ10ucnN0Yyk7CisrCXJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoc3Rm Y2Ftc3MtPnN5c19yc3RbU1RGX1JTVF9XUkFQUEVSX1BdLnJzdGMpOworKworKwlyZXR1cm4gMDsK Kyt9CisrCisraW50IHN0Zl9pc3BfY2xrX2Rpc2FibGUoc3RydWN0IHN0Zl9pc3BfZGV2ICppc3Bf ZGV2KQorK3sKKysJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcyA9IGlzcF9kZXYtPnN0ZmNhbXNz OworKworKwlyZXNldF9jb250cm9sX2Fzc2VydChzdGZjYW1zcy0+c3lzX3JzdFtTVEZfUlNUX1dS QVBQRVJfQ10ucnN0Yyk7CisrCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHN0ZmNhbXNzLT5zeXNfcnN0 W1NURl9SU1RfV1JBUFBFUl9QXS5yc3RjKTsKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHN0ZmNh bXNzLT5zeXNfY2xrW1NURl9DTEtfV1JBUFBFUl9DTEtfQ10uY2xrKTsKKysKKysJcmV0dXJuIDA7 CisrfQorKworK2ludCBzdGZfaXNwX3Jlc2V0KHN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2RldikK Kyt7CisrCXN0Zl9pc3BfcmVnX3NldF9iaXQoaXNwX2Rldi0+c3RmY2Ftc3MsIElTUF9SRUdfSVNQ X0NUUkxfMCwKKysJCQkgICAgSVNQQ19SU1RfTUFTSywgSVNQQ19SU1QpOworKwlzdGZfaXNwX3Jl Z19zZXRfYml0KGlzcF9kZXYtPnN0ZmNhbXNzLCBJU1BfUkVHX0lTUF9DVFJMXzAsCisrCQkJICAg IElTUENfUlNUX01BU0ssIDApOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrdm9pZCBzdGZfaXNw X2luaXRfY2ZnKHN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2RldikKKyt7CisrCXN0Zl9pc3BfcmVn X3dyaXRlKGlzcF9kZXYtPnN0ZmNhbXNzLCBJU1BfUkVHX0RDX0NGR18xLCBEQ19BWElfSUQoMHgw KSk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKGlzcF9kZXYtPnN0ZmNhbXNzLCBJU1BfUkVHX0RFQ19D RkcsCisrCQkJICBERUNfVl9LRUVQKDB4MCkgfAorKwkJCSAgREVDX1ZfUEVSSU9EKDB4MCkgfAor KwkJCSAgREVDX0hfS0VFUCgweDApIHwKKysJCQkgIERFQ19IX1BFUklPRCgweDApKTsKKysKKysJ c3RmX2lzcF9jb25maWdfb2JjKGlzcF9kZXYtPnN0ZmNhbXNzKTsKKysJc3RmX2lzcF9jb25maWdf b2VjZihpc3BfZGV2LT5zdGZjYW1zcyk7CisrCXN0Zl9pc3BfY29uZmlnX2xjY2YoaXNwX2Rldi0+ c3RmY2Ftc3MpOworKwlzdGZfaXNwX2NvbmZpZ19hd2IoaXNwX2Rldi0+c3RmY2Ftc3MpOworKwlz dGZfaXNwX2NvbmZpZ19ncmdiKGlzcF9kZXYtPnN0ZmNhbXNzKTsKKysJc3RmX2lzcF9jb25maWdf Y2ZhKGlzcF9kZXYtPnN0ZmNhbXNzKTsKKysJc3RmX2lzcF9jb25maWdfY2NtKGlzcF9kZXYtPnN0 ZmNhbXNzKTsKKysJc3RmX2lzcF9jb25maWdfZ2FtbWEoaXNwX2Rldi0+c3RmY2Ftc3MpOworKwlz dGZfaXNwX2NvbmZpZ19yMnkoaXNwX2Rldi0+c3RmY2Ftc3MpOworKwlzdGZfaXNwX2NvbmZpZ195 X2N1cnZlKGlzcF9kZXYtPnN0ZmNhbXNzKTsKKysJc3RmX2lzcF9jb25maWdfc2hhcnBlbihpc3Bf ZGV2LT5zdGZjYW1zcyk7CisrCXN0Zl9pc3BfY29uZmlnX2RueXV2KGlzcF9kZXYtPnN0ZmNhbXNz KTsKKysJc3RmX2lzcF9jb25maWdfc2F0KGlzcF9kZXYtPnN0ZmNhbXNzKTsKKysKKysJc3RmX2lz cF9yZWdfd3JpdGUoaXNwX2Rldi0+c3RmY2Ftc3MsIElTUF9SRUdfQ1NJX01PRFVMRV9DRkcsCisr CQkJICBDU0lfRFVNUF9FTiB8IENTSV9TQ19FTiB8IENTSV9BV0JfRU4gfAorKwkJCSAgQ1NJX0xD Q0ZfRU4gfCBDU0lfT0VDRl9FTiB8IENTSV9PQkNfRU4gfCBDU0lfREVDX0VOKTsKKysJc3RmX2lz cF9yZWdfd3JpdGUoaXNwX2Rldi0+c3RmY2Ftc3MsIElTUF9SRUdfSVNQX0NUUkxfMSwKKysJCQkg IENUUkxfU0FUKDEpIHwgQ1RSTF9EQkMgfCBDVFJMX0NUQyB8IENUUkxfWUhJU1QgfAorKwkJCSAg Q1RSTF9ZQ1VSVkUgfCBDVFJMX0JJWVVWIHwgQ1RSTF9TQ0UgfCBDVFJMX0VFIHwKKysJCQkgIENU UkxfQ0NFIHwgQ1RSTF9SR0UgfCBDVFJMX0NNRSB8IENUUkxfQUUgfCBDVFJMX0NFKTsKKyt9Cisr Cisrc3RhdGljIHZvaWQgc3RmX2lzcF9jb25maWdfY3JvcChzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNh bXNzLAorKwkJCQlzdHJ1Y3Qgc3RmX2lzcF9jcm9wICpjcm9wKQorK3sKKysJc3RydWN0IHY0bDJf cmVjdCAqcmVjdCA9ICZjcm9wW1NURl9JU1BfUEFEX1NSQ10ucmVjdDsKKysJdTMyIGJwcCA9IGNy b3BbU1RGX0lTUF9QQURfU1JDXS5icHA7CisrCXUzMiB2YWw7CisrCisrCXZhbCA9IFZTVEFSVF9D QVAocmVjdC0+dG9wKSB8IEhTVEFSVF9DQVAocmVjdC0+bGVmdCk7CisrCXN0Zl9pc3BfcmVnX3dy aXRlKHN0ZmNhbXNzLCBJU1BfUkVHX1BJQ19DQVBUVVJFX1NUQVJUX0NGRywgdmFsKTsKKysKKysJ dmFsID0gVkVORF9DQVAocmVjdC0+aGVpZ2h0ICsgcmVjdC0+dG9wIC0gMSkgfAorKwkgICAgICBI RU5EX0NBUChyZWN0LT53aWR0aCArIHJlY3QtPmxlZnQgLSAxKTsKKysJc3RmX2lzcF9yZWdfd3Jp dGUoc3RmY2Ftc3MsIElTUF9SRUdfUElDX0NBUFRVUkVfRU5EX0NGRywgdmFsKTsKKysKKysJdmFs ID0gSF9BQ1RfQ0FQKHJlY3QtPmhlaWdodCkgfCBXX0FDVF9DQVAocmVjdC0+d2lkdGgpOworKwlz dGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19QSVBFTElORV9YWV9TSVpFLCB2YWwp OworKworKwl2YWwgPSBBTElHTihyZWN0LT53aWR0aCAqIGJwcCAvIDgsIFNURkNBTVNTX0ZSQU1F X1dJRFRIX0FMSUdOXzgpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19T VFJJREUsIHZhbCk7CisrfQorKworK3N0YXRpYyB2b2lkIHN0Zl9pc3BfY29uZmlnX3Jhd19mbXQo c3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcywgdTMyIG1jb2RlKQorK3sKKysJdTMyIHZhbCwgdmFs MTsKKysKKysJc3dpdGNoIChtY29kZSkgeworKwljYXNlIE1FRElBX0JVU19GTVRfU1JHR0IxMF8x WDEwOgorKwljYXNlIE1FRElBX0JVU19GTVRfU1JHR0I4XzFYODoKKysJCS8qIDMgMiAzIDIgMSAw IDEgMCBCIEdiIEIgR2IgR3IgUiBHciBSICovCisrCQl2YWwgPSBTTVkxMygzKSB8IFNNWTEyKDIp IHwgU01ZMTEoMykgfCBTTVkxMCgyKSB8CisrCQkgICAgICBTTVkzKDEpIHwgU01ZMigwKSB8IFNN WTEoMSkgfCBTTVkwKDApOworKwkJdmFsMSA9IENUUkxfU0FUKDB4MCk7CisrCQlicmVhazsKKysJ Y2FzZSBNRURJQV9CVVNfRk1UX1NHUkJHMTBfMVgxMDoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1NH UkJHOF8xWDg6CisrCQkvKiAyIDMgMiAzIDAgMSAwIDEsIEdiIEIgR2IgQiBSIEdyIFIgR3IgKi8K KysJCXZhbCA9IFNNWTEzKDIpIHwgU01ZMTIoMykgfCBTTVkxMSgyKSB8IFNNWTEwKDMpIHwKKysJ CSAgICAgIFNNWTMoMCkgfCBTTVkyKDEpIHwgU01ZMSgwKSB8IFNNWTAoMSk7CisrCQl2YWwxID0g Q1RSTF9TQVQoMHgyKTsKKysJCWJyZWFrOworKwljYXNlIE1FRElBX0JVU19GTVRfU0dCUkcxMF8x WDEwOgorKwljYXNlIE1FRElBX0JVU19GTVRfU0dCUkc4XzFYODoKKysJCS8qIDEgMCAxIDAgMyAy IDMgMiwgR3IgUiBHciBSIEIgR2IgQiBHYiAqLworKwkJdmFsID0gU01ZMTMoMSkgfCBTTVkxMigw KSB8IFNNWTExKDEpIHwgU01ZMTAoMCkgfAorKwkJICAgICAgU01ZMygzKSB8IFNNWTIoMikgfCBT TVkxKDMpIHwgU01ZMCgyKTsKKysJCXZhbDEgPSBDVFJMX1NBVCgweDMpOworKwkJYnJlYWs7Cisr CWNhc2UgTUVESUFfQlVTX0ZNVF9TQkdHUjEwXzFYMTA6CisrCWNhc2UgTUVESUFfQlVTX0ZNVF9T QkdHUjhfMVg4OgorKwkJLyogMCAxIDAgMSAyIDMgMiAzIFIgR3IgUiBHciBHYiBCIEdiIEIgKi8K KysJCXZhbCA9IFNNWTEzKDApIHwgU01ZMTIoMSkgfCBTTVkxMSgwKSB8IFNNWTEwKDEpIHwKKysJ CSAgICAgIFNNWTMoMikgfCBTTVkyKDMpIHwgU01ZMSgyKSB8IFNNWTAoMyk7CisrCQl2YWwxID0g Q1RSTF9TQVQoMHgxKTsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJdmFsID0gU01ZMTMoMCkg fCBTTVkxMigxKSB8IFNNWTExKDApIHwgU01ZMTAoMSkgfAorKwkJICAgICAgU01ZMygyKSB8IFNN WTIoMykgfCBTTVkxKDIpIHwgU01ZMCgzKTsKKysJCXZhbDEgPSBDVFJMX1NBVCgweDEpOworKwkJ YnJlYWs7CisrCX0KKysJc3RmX2lzcF9yZWdfd3JpdGUoc3RmY2Ftc3MsIElTUF9SRUdfUkFXX0ZP Uk1BVF9DRkcsIHZhbCk7CisrCXN0Zl9pc3BfcmVnX3NldF9iaXQoc3RmY2Ftc3MsIElTUF9SRUdf SVNQX0NUUkxfMSwgQ1RSTF9TQVRfTUFTSywgdmFsMSk7CisrfQorKworK3ZvaWQgc3RmX2lzcF9z ZXR0aW5ncyhzdHJ1Y3Qgc3RmX2lzcF9kZXYgKmlzcF9kZXYsCisrCQkgICAgICBzdHJ1Y3Qgc3Rm X2lzcF9jcm9wICpjcm9wLCB1MzIgbWNvZGUpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNh bXNzID0gaXNwX2Rldi0+c3RmY2Ftc3M7CisrCisrCXN0Zl9pc3BfY29uZmlnX2Nyb3Aoc3RmY2Ft c3MsIGNyb3ApOworKwlzdGZfaXNwX2NvbmZpZ19yYXdfZm10KHN0ZmNhbXNzLCBtY29kZSk7Cisr CisrCXN0Zl9pc3BfcmVnX3NldF9iaXQoc3RmY2Ftc3MsIElTUF9SRUdfRFVNUF9DRkdfMSwKKysJ CQkgICAgRFVNUF9CVVJTVF9MRU5fTUFTSyB8IERVTVBfU0RfTUFTSywKKysJCQkgICAgRFVNUF9C VVJTVF9MRU4oMykpOworKworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19J VElJV1NSLAorKwkJCSAgSVRJX0hTSVpFKElNQUdFX01BWF9IRUlHSCkgfAorKwkJCSAgSVRJX1dT SVpFKElNQUdFX01BWF9XSURUSCkpOworKwlzdGZfaXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQ X1JFR19JVElEV0xTUiwgSVRJX1dTVFJJREUoMHg5NjApKTsKKysJc3RmX2lzcF9yZWdfd3JpdGUo c3RmY2Ftc3MsIElTUF9SRUdfSVRJRFJMU1IsIElUSV9TVFJJREVfTCgweDk2MCkpOworKwlzdGZf aXNwX3JlZ193cml0ZShzdGZjYW1zcywgSVNQX1JFR19TRU5TT1IsIDB4MSk7CisrfQorKworK3Zv aWQgc3RmX2lzcF9zdHJlYW1fc2V0KHN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2RldikKKyt7Cisr CXN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MgPSBpc3BfZGV2LT5zdGZjYW1zczsKKysKKysJc3Rm X2lzcF9yZWdfd3JpdGVfZGVsYXkoc3RmY2Ftc3MsIElTUF9SRUdfSVNQX0NUUkxfMCwKKysJCQkJ SVNQQ19FTlVPIHwgSVNQQ19FTkxTIHwgSVNQQ19SU1QsIDEwKTsKKysJc3RmX2lzcF9yZWdfd3Jp dGVfZGVsYXkoc3RmY2Ftc3MsIElTUF9SRUdfSVNQX0NUUkxfMCwKKysJCQkJSVNQQ19FTlVPIHwg SVNQQ19FTkxTLCAxMCk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlKHN0ZmNhbXNzLCBJU1BfUkVHX0lF U0hELCBTSEFEX1VQX00pOworKwlzdGZfaXNwX3JlZ193cml0ZV9kZWxheShzdGZjYW1zcywgSVNQ X1JFR19JU1BfQ1RSTF8wLAorKwkJCQlJU1BDX0VOVU8gfCBJU1BDX0VOTFMgfCBJU1BDX0VOLCAx MCk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlX2RlbGF5KHN0ZmNhbXNzLCBJU1BfUkVHX0NTSUlOVFMs CisrCQkJCUNTSV9JTlRTKDEpIHwgQ1NJX1NIQV9NKDQpLCAxMCk7CisrCXN0Zl9pc3BfcmVnX3dy aXRlX2RlbGF5KHN0ZmNhbXNzLCBJU1BfUkVHX0NTSUlOVFMsCisrCQkJCUNTSV9JTlRTKDIpIHwg Q1NJX1NIQV9NKDQpLCAxMCk7CisrCXN0Zl9pc3BfcmVnX3dyaXRlX2RlbGF5KHN0ZmNhbXNzLCBJ U1BfUkVHX0NTSV9JTlBVVF9FTl9BTkRfU1RBVFVTLAorKwkJCQlDU0lfRU5fUywgMTApOworK30K Ky0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ5 LW1lZGlhLXN0YXJmaXZlLWNhbXNzLUFkZC1WSU4tZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51 eDYuNC9wYXRjaGVzLzAwNDktbWVkaWEtc3RhcmZpdmUtY2Ftc3MtQWRkLVZJTi1kcml2ZXIucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMmE2NGZiYmZlZjM5 NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDQ5LW1lZGlh LXN0YXJmaXZlLWNhbXNzLUFkZC1WSU4tZHJpdmVyLnBhdGNoCkBAIC0wLDAgKzEsMTU5MyBAQAor RnJvbSA5ZTU5MjZlMWMxZjRjNjg0MTU2YTg1MGNjOTRiMjNiOTI4NmRkOGI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+ CitEYXRlOiBNb24sIDE5IEp1biAyMDIzIDE5OjI4OjM4ICswODAwCitTdWJqZWN0OiBbUEFUQ0gg NDkvNzJdIG1lZGlhOiBzdGFyZml2ZTogY2Ftc3M6IEFkZCBWSU4gZHJpdmVyCisKK0FkZCBWaWRl byBJbiBDb250cm9sbGVyIGRyaXZlciBmb3IgU3RhckZpdmUgQ2FtZXJhIFN1YnN5c3RlbS4KKwor U2lnbmVkLW9mZi1ieTogSmFjayBaaHUgPGphY2suemh1QHN0YXJmaXZldGVjaC5jb20+CistLS0K KyAuLi4vbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvTWFrZWZpbGUgICAgfCAgICA0ICst CisgLi4uL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl9jYW1zcy5jIHwgICA0MiAr LQorIC4uLi9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuaCB8ICAgIDIg KworIC4uLi9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmluLmMgICB8IDEwNjkg KysrKysrKysrKysrKysrKysKKyAuLi4vbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3Rm X3Zpbi5oICAgfCAgMTczICsrKworIC4uLi9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmlu X2h3X29wcy5jICB8ICAxOTIgKysrCisgNiBmaWxlcyBjaGFuZ2VkLCAxNDc4IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX3Zpbi5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX3Zpbi5oCisgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX3Zpbl9od19v cHMuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1z cy9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3MvTWFrZWZp bGUKK2luZGV4IGNkZjU3ZThjOTU0Ni4uZWY1NzRlMDFjYTQ3IDEwMDY0NAorLS0tIGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9NYWtlZmlsZQorQEAgLTcsNiArNyw4IEBAIHN0 YXJmaXZlLWNhbXNzLW9ianMgKz0gXAorIAkJc3RmX2NhbXNzLm8gXAorIAkJc3RmX2lzcC5vIFwK KyAJCXN0Zl9pc3BfaHdfb3BzLm8gXAorLQkJc3RmX3ZpZGVvLm8KKysJCXN0Zl92aWRlby5vIFwK KysJCXN0Zl92aW4ubyBcCisrCQlzdGZfdmluX2h3X29wcy5vCisgCisgb2JqLSQoQ09ORklHX1ZJ REVPX1NUQVJGSVZFX0NBTVNTKSArPSBzdGFyZml2ZS1jYW1zcy5vCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuYyBiL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNzLmMKK2luZGV4IDZmNTZiNDVm NTdkYi4uODM0ZWE2M2ViODMzIDEwMDY0NAorLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9z dGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuYworKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9z dGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuYworQEAgLTEzMSwyNyArMTMxLDYxIEBAIHN0YXRpYyBp bnQgc3RmY2Ftc3NfaW5pdF9zdWJkZXZpY2VzKHN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3MpCisg CQlyZXR1cm4gcmV0OworIAl9CisgCisrCXJldCA9IHN0Zl92aW5fc3ViZGV2X2luaXQoc3RmY2Ft c3MpOworKwlpZiAocmV0IDwgMCkgeworKwkJZGV2X2VycihzdGZjYW1zcy0+ZGV2LCAiRmFpbGVk IHRvIGluaXQgdmluIHN1YmRldjogJWRcbiIsIHJldCk7CisrCQlyZXR1cm4gcmV0OworKwl9Cisg CXJldHVybiByZXQ7CisgfQorIAorIHN0YXRpYyBpbnQgc3RmY2Ftc3NfcmVnaXN0ZXJfc3ViZGV2 aWNlcyhzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorIHsKKyAJaW50IHJldDsKKysJc3RydWN0 IHN0Zl92aW5fZGV2ICp2aW5fZGV2ID0gJnN0ZmNhbXNzLT52aW5fZGV2OworIAlzdHJ1Y3Qgc3Rm X2lzcF9kZXYgKmlzcF9kZXYgPSAmc3RmY2Ftc3MtPmlzcF9kZXY7CisgCisgCXJldCA9IHN0Zl9p c3BfcmVnaXN0ZXIoaXNwX2RldiwgJnN0ZmNhbXNzLT52NGwyX2Rldik7CisgCWlmIChyZXQgPCAw KSB7CisgCQlkZXZfZXJyKHN0ZmNhbXNzLT5kZXYsCisgCQkJIkZhaWxlZCB0byByZWdpc3RlciBz dGYgaXNwJWQgZW50aXR5OiAlZFxuIiwgMCwgcmV0KTsKKy0JCXJldHVybiByZXQ7CisrCQlnb3Rv IGVycl9yZWdfaXNwOworKwl9CisrCisrCXJldCA9IHN0Zl92aW5fcmVnaXN0ZXIodmluX2Rldiwg JnN0ZmNhbXNzLT52NGwyX2Rldik7CisrCWlmIChyZXQgPCAwKSB7CisrCQlkZXZfZXJyKHN0ZmNh bXNzLT5kZXYsCisrCQkJIkZhaWxlZCB0byByZWdpc3RlciB2aW4gZW50aXR5OiAlZFxuIiwgcmV0 KTsKKysJCWdvdG8gZXJyX3JlZ192aW47CisgCX0KKyAKKysJcmV0ID0gbWVkaWFfY3JlYXRlX3Bh ZF9saW5rKCZpc3BfZGV2LT5zdWJkZXYuZW50aXR5LAorKwkJCQkgICAgU1RGX0lTUF9QQURfU1JD LAorKwkJCQkgICAgJnZpbl9kZXYtPmxpbmVbVklOX0xJTkVfSVNQXS5zdWJkZXYuZW50aXR5LAor KwkJCQkgICAgU1RGX1ZJTl9QQURfU0lOSywKKysJCQkJICAgIDApOworKwlpZiAocmV0IDwgMCkg eworKwkJZGV2X2VycihzdGZjYW1zcy0+ZGV2LAorKwkJCSJGYWlsZWQgdG8gbGluayAlcy0+JXMg ZW50aXRpZXM6ICVkXG4iLAorKwkJCWlzcF9kZXYtPnN1YmRldi5lbnRpdHkubmFtZSwKKysJCQl2 aW5fZGV2LT5saW5lW1ZJTl9MSU5FX0lTUF0uc3ViZGV2LmVudGl0eS5uYW1lLCByZXQpOworKwkJ Z290byBlcnJfbGluazsKKysJfQorKworKwlyZXR1cm4gcmV0OworKworK2Vycl9saW5rOgorKwlz dGZfdmluX3VucmVnaXN0ZXIoJnN0ZmNhbXNzLT52aW5fZGV2KTsKKytlcnJfcmVnX3ZpbjoKKysJ c3RmX2lzcF91bnJlZ2lzdGVyKCZzdGZjYW1zcy0+aXNwX2Rldik7CisrZXJyX3JlZ19pc3A6Cisg CXJldHVybiByZXQ7CisgfQorIAorIHN0YXRpYyB2b2lkIHN0ZmNhbXNzX3VucmVnaXN0ZXJfc3Vi ZGV2aWNlcyhzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorIHsKKyAJc3RmX2lzcF91bnJlZ2lz dGVyKCZzdGZjYW1zcy0+aXNwX2Rldik7CisrCXN0Zl92aW5fdW5yZWdpc3Rlcigmc3RmY2Ftc3Mt PnZpbl9kZXYpOworIH0KKyAKKyBzdGF0aWMgaW50IHN0ZmNhbXNzX3N1YmRldl9ub3RpZmllcl9i b3VuZChzdHJ1Y3QgdjRsMl9hc3luY19ub3RpZmllciAqYXN5bmMsCitAQCAtMTY0LDEyICsxOTgs MTQgQEAgc3RhdGljIGludCBzdGZjYW1zc19zdWJkZXZfbm90aWZpZXJfYm91bmQoc3RydWN0IHY0 bDJfYXN5bmNfbm90aWZpZXIgKmFzeW5jLAorIAkJY29udGFpbmVyX29mKGFzZCwgc3RydWN0IHN0 ZmNhbXNzX2FzeW5jX3N1YmRldiwgYXNkKTsKKyAJZW51bSBzdGZfcG9ydF9udW0gcG9ydCA9IGNz ZC0+cG9ydDsKKyAJc3RydWN0IHN0Zl9pc3BfZGV2ICppc3BfZGV2ID0gJnN0ZmNhbXNzLT5pc3Bf ZGV2OworKwlzdHJ1Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYgPSAmc3RmY2Ftc3MtPnZpbl9kZXY7 CisgCXN0cnVjdCBtZWRpYV9wYWQgKnBhZFtTVEZfUEFEU19OVU1dOworIAl1bnNpZ25lZCBpbnQg aSwgcGFkX251bTsKKyAKKyAJaWYgKHBvcnQgPT0gU1RGX1BPUlRfQ1NJMlJYKSB7CistCQlwYWRb MF0gPSAmaXNwX2Rldi0+cGFkc1tTVEZfUEFEX1NJTktdOworLQkJcGFkX251bSA9IDE7CisrCQlw YWRbMF0gPSAmdmluX2Rldi0+bGluZVtWSU5fTElORV9XUl0ucGFkc1tTVEZfUEFEX1NJTktdOwor KwkJcGFkWzFdID0gJmlzcF9kZXYtPnBhZHNbU1RGX1BBRF9TSU5LXTsKKysJCXBhZF9udW0gPSAy OworIAl9IGVsc2UgaWYgKHBvcnQgPT0gU1RGX1BPUlRfRFZQKSB7CisgCQlkZXZfZXJyKHN0ZmNh bXNzLT5kZXYsICJOb3Qgc3VwcG9ydCBEVlAgc2Vuc29yXG4iKTsKKyAJCXJldHVybiAtRVBFUk07 CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZf Y2Ftc3MuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3RmX2NhbXNz LmgKK2luZGV4IDk0ODIwODEyODhmYS4uYTE0ZjIyYmMwNzQyIDEwMDY0NAorLS0tIGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuaAorKysrIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfY2Ftc3MuaAorQEAgLTE5LDYgKzE5 LDcgQEAKKyAjaW5jbHVkZSA8bWVkaWEvdjRsMi1kZXZpY2UuaD4KKyAKKyAjaW5jbHVkZSAic3Rm X2lzcC5oIgorKyNpbmNsdWRlICJzdGZfdmluLmgiCisgCisgI2RlZmluZSBTVEZfRFZQX05BTUUg InN0Zl9kdnAiCisgI2RlZmluZSBTVEZfQ1NJX05BTUUgImNkbnNfY3NpMnJ4IgorQEAgLTY3LDYg KzY4LDcgQEAgc3RydWN0IHN0ZmNhbXNzIHsKKyAJc3RydWN0IG1lZGlhX2RldmljZSBtZWRpYV9k ZXY7CisgCXN0cnVjdCBtZWRpYV9waXBlbGluZSBwaXBlOworIAlzdHJ1Y3QgZGV2aWNlICpkZXY7 CisrCXN0cnVjdCBzdGZfdmluX2RldiB2aW5fZGV2OworIAlzdHJ1Y3Qgc3RmX2lzcF9kZXYgaXNw X2RldjsKKyAJc3RydWN0IHY0bDJfYXN5bmNfbm90aWZpZXIgbm90aWZpZXI7CisgCXZvaWQgX19p b21lbSAqc3lzY29uX2Jhc2U7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9z dGFyZml2ZS9jYW1zcy9zdGZfdmluLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZl L2NhbXNzL3N0Zl92aW4uYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAw MC4uMGVmYTRiYmIwNzljCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl92aW4uYworQEAgLTAsMCArMSwxMDY5IEBACisrLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysvKgorKyAqIHN0Zl92aW4uYworKyAqCisr ICogU3RhckZpdmUgQ2FtZXJhIFN1YnN5c3RlbSAtIFZJTiBNb2R1bGUKKysgKgorKyAqIENvcHly aWdodCAoQykgMjAyMS0yMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICovCisr CisrI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BtX3J1 bnRpbWUuaD4KKysKKysjaW5jbHVkZSAic3RmX2NhbXNzLmgiCisrCisrI2RlZmluZSB2aW5fbGlu ZV9hcnJheShwdHJfbGluZSkgXAorKwkoKGNvbnN0IHN0cnVjdCB2aW5fbGluZSAoKilbXSkgJihw dHJfbGluZSlbLSgocHRyX2xpbmUpLT5pZCldKQorKworKyNkZWZpbmUgbGluZV90b192aW5fZGV2 KHB0cl9saW5lKSBcCisrCWNvbnRhaW5lcl9vZih2aW5fbGluZV9hcnJheShwdHJfbGluZSksIHN0 cnVjdCBzdGZfdmluX2RldiwgbGluZSkKKysKKysjZGVmaW5lIFZJTl9GUkFNRV9EUk9QX01JTl9W QUwgNAorKworKy8qIElTUCBjdHJsIG5lZWQgMSBzZWMgdG8gbGV0IGZyYW1lcyBiZWNvbWUgc3Rh YmxlLiAqLworKyNkZWZpbmUgVklOX0ZSQU1FX0RST1BfU0VDX0ZPUl9JU1BfQ1RSTCAxCisrCisr c3RhdGljIGNvbnN0IHN0cnVjdCB2aW5fZm9ybWF0IHZpbl9mb3JtYXRzX3dyW10gPSB7CisrCXsg TUVESUFfQlVTX0ZNVF9TUkdHQjEwXzFYMTAsIDEwfSwKKysJeyBNRURJQV9CVVNfRk1UX1NHUkJH MTBfMVgxMCwgMTB9LAorKwl7IE1FRElBX0JVU19GTVRfU0dCUkcxMF8xWDEwLCAxMH0sCisrCXsg TUVESUFfQlVTX0ZNVF9TQkdHUjEwXzFYMTAsIDEwfSwKKyt9OworKworK3N0YXRpYyBjb25zdCBz dHJ1Y3QgdmluX2Zvcm1hdCB2aW5fZm9ybWF0c191b1tdID0geworKwl7IE1FRElBX0JVU19GTVRf WTEyXzFYMTIsIDh9LAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB2aW5fZm9ybWF0X3Rh YmxlIHZpbl9mb3JtYXRzX3RhYmxlW10gPSB7CisrCS8qIFZJTl9MSU5FX1dSICovCisrCXsgdmlu X2Zvcm1hdHNfd3IsIEFSUkFZX1NJWkUodmluX2Zvcm1hdHNfd3IpIH0sCisrCS8qIFZJTl9MSU5F X0lTUCAqLworKwl7IHZpbl9mb3JtYXRzX3VvLCBBUlJBWV9TSVpFKHZpbl9mb3JtYXRzX3VvKSB9 LAorK307CisrCisrc3RhdGljIHZvaWQgdmluX2J1ZmZlcl9kb25lKHN0cnVjdCB2aW5fbGluZSAq bGluZSk7Cisrc3RhdGljIHZvaWQgdmluX2NoYW5nZV9idWZmZXIoc3RydWN0IHZpbl9saW5lICps aW5lKTsKKytzdGF0aWMgc3RydWN0IHN0ZmNhbXNzX2J1ZmZlciAqdmluX2J1Zl9nZXRfcGVuZGlu ZyhzdHJ1Y3QgdmluX291dHB1dCAqb3V0cHV0KTsKKytzdGF0aWMgdm9pZCB2aW5fb3V0cHV0X2lu aXRfYWRkcnMoc3RydWN0IHZpbl9saW5lICpsaW5lKTsKKytzdGF0aWMgc3RydWN0IHY0bDJfbWJ1 c19mcmFtZWZtdCAqCisrX192aW5fZ2V0X2Zvcm1hdChzdHJ1Y3QgdmluX2xpbmUgKmxpbmUsCisr CQkgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwKKysJCSB1bnNpZ25lZCBpbnQgcGFk LAorKwkJIGVudW0gdjRsMl9zdWJkZXZfZm9ybWF0X3doZW5jZSB3aGljaCk7CisrCisrc3RhdGlj IGNoYXIgKnZpbl9nZXRfbGluZV9zdWJkZXZuYW1lKGludCBsaW5lX2lkKQorK3sKKysJY2hhciAq bmFtZSA9IE5VTEw7CisrCisrCXN3aXRjaCAobGluZV9pZCkgeworKwljYXNlIFZJTl9MSU5FX1dS OgorKwkJbmFtZSA9ICJ3ciI7CisrCQlicmVhazsKKysJY2FzZSBWSU5fTElORV9JU1A6CisrCQlu YW1lID0gImlzcDAiOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQluYW1lID0gInVua25vd24i OworKwkJYnJlYWs7CisrCX0KKysJcmV0dXJuIG5hbWU7CisrfQorKworK3N0YXRpYyBlbnVtIGlz cF9saW5lX2lkIHZpbl9tYXBfaXNwX2xpbmUoZW51bSB2aW5fbGluZV9pZCBsaW5lKQorK3sKKysJ ZW51bSBpc3BfbGluZV9pZCBsaW5lX2lkOworKworKwlpZiAobGluZSA+IFZJTl9MSU5FX1dSICYm IGxpbmUgPCBWSU5fTElORV9NQVgpCisrCQlsaW5lX2lkID0gU1RGX0lTUF9MSU5FX1NSQzsKKysJ ZWxzZQorKwkJbGluZV9pZCA9IFNURl9JU1BfTElORV9JTlZBTElEOworKworKwlyZXR1cm4gbGlu ZV9pZDsKKyt9CisrCisrZW51bSBpc3BfcGFkX2lkIHN0Zl92aW5fbWFwX2lzcF9wYWQoZW51bSB2 aW5fbGluZV9pZCBsaW5lLCBlbnVtIGlzcF9wYWRfaWQgZGVmKQorK3sKKysJZW51bSBpc3BfcGFk X2lkIHBhZF9pZDsKKysKKysJaWYgKGxpbmUgPT0gVklOX0xJTkVfV1IpCisrCQlwYWRfaWQgPSBT VEZfSVNQX1BBRF9TSU5LOworKwllbHNlIGlmICgobGluZSA+IFZJTl9MSU5FX1dSKSAmJiAobGlu ZSA8IFZJTl9MSU5FX01BWCkpCisrCQlwYWRfaWQgPSAoZW51bSBpc3BfcGFkX2lkKXZpbl9tYXBf aXNwX2xpbmUobGluZSk7CisrCWVsc2UKKysJCXBhZF9pZCA9IGRlZjsKKysKKysJcmV0dXJuIHBh ZF9pZDsKKyt9CisrCisraW50IHN0Zl92aW5fc3ViZGV2X2luaXQoc3RydWN0IHN0ZmNhbXNzICpz dGZjYW1zcykKKyt7CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9IHN0ZmNhbXNzLT5kZXY7CisrCXN0 cnVjdCBzdGZfdmluX2RldiAqdmluX2RldiA9ICZzdGZjYW1zcy0+dmluX2RldjsKKysJaW50IGks IHJldCA9IDA7CisrCisrCXZpbl9kZXYtPnN0ZmNhbXNzID0gc3RmY2Ftc3M7CisrCisrCXZpbl9k ZXYtPmlzcl9vcHMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnZpbl9kZXYtPmlzcl9vcHMp LAorKwkJCQkJR0ZQX0tFUk5FTCk7CisrCWlmICghdmluX2Rldi0+aXNyX29wcykKKysJCXJldHVy biAtRU5PTUVNOworKwl2aW5fZGV2LT5pc3Jfb3BzLT5pc3JfYnVmZmVyX2RvbmUgPSB2aW5fYnVm ZmVyX2RvbmU7CisrCXZpbl9kZXYtPmlzcl9vcHMtPmlzcl9jaGFuZ2VfYnVmZmVyID0gdmluX2No YW5nZV9idWZmZXI7CisrCisrCWF0b21pY19zZXQoJnZpbl9kZXYtPnJlZl9jb3VudCwgMCk7Cisr CisrCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LAorKwkJCSAgICAgICBzdGZjYW1zcy0+aXJx W1NURl9JUlFfVklOV1JdLAorKwkJCSAgICAgICBzdGZfdmluX3dyX2lycV9oYW5kbGVyLAorKwkJ CSAgICAgICAwLCAidmluX2F4aXdyX2lycSIsIHZpbl9kZXYpOworKwlpZiAocmV0KSB7CisrCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZXF1ZXN0IGlycVxuIik7CisrCQlnb3RvIG91dDsKKysJ fQorKworKwlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwKKysJCQkgICAgICAgc3RmY2Ftc3Mt PmlycVtTVEZfSVJRX0lTUF0sCisrCQkJICAgICAgIHN0Zl92aW5faXNwX2lycV9oYW5kbGVyLAor KwkJCSAgICAgICAwLCAidmluX2lzcF9pcnEiLCB2aW5fZGV2KTsKKysJaWYgKHJldCkgeworKwkJ ZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBpc3AgaXJxXG4iKTsKKysJCWdvdG8gb3V0 OworKwl9CisrCisrCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LAorKwkJCSAgICAgICBzdGZj YW1zcy0+aXJxW1NURl9JUlFfSVNQQ1NJTF0sCisrCQkJICAgICAgIHN0Zl92aW5faXNwX2lycV9j c2lsaW5lX2hhbmRsZXIsCisrCQkJICAgICAgIDAsICJ2aW5faXNwX2lycV9jc2lsaW5lIiwgdmlu X2Rldik7CisrCWlmIChyZXQpIHsKKysJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3Qg aXNwIGlycSBjc2lsaW5lXG4iKTsKKysJCWdvdG8gb3V0OworKwl9CisrCisrCWZvciAoaSA9IDA7 IGkgPCBTVEZfRFVNTVlfTU9EVUxFX05VTVM7IGkrKykgeworKwkJc3RydWN0IGR1bW15X2J1ZmZl ciAqZHVtbXlfYnVmZmVyID0gJnZpbl9kZXYtPmR1bW15X2J1ZmZlcltpXTsKKysKKysJCW11dGV4 X2luaXQoJmR1bW15X2J1ZmZlci0+c3RyZWFtX2xvY2spOworKwkJZHVtbXlfYnVmZmVyLT5udW1z ID0KKysJCQlpID09IDAgPyBWSU5fRFVNTVlfQlVGRkVSX05VTVMgOiBJU1BfRFVNTVlfQlVGRkVS X05VTVM7CisrCQlkdW1teV9idWZmZXItPnN0cmVhbV9jb3VudCA9IDA7CisrCQlkdW1teV9idWZm ZXItPmJ1ZmZlciA9CisrCQkJZGV2bV9remFsbG9jKGRldiwKKysJCQkJICAgICBkdW1teV9idWZm ZXItPm51bXMgKiBzaXplb2Yoc3RydWN0IHZpbl9kdW1teV9idWZmZXIpLAorKwkJCQkgICAgIEdG UF9LRVJORUwpOworKwkJYXRvbWljX3NldCgmZHVtbXlfYnVmZmVyLT5mcmFtZV9za2lwLCAwKTsK KysJfQorKworKwlmb3IgKGkgPSBWSU5fTElORV9XUjsgaSA8IFNURl9JU1BfTElORV9NQVggKyAx OyBpKyspIHsKKysJCXN0cnVjdCB2aW5fbGluZSAqbCA9ICZ2aW5fZGV2LT5saW5lW2ldOworKwor KwkJbC0+dmlkZW9fb3V0LnR5cGUgPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkU7CisrCQls LT52aWRlb19vdXQuc3RmY2Ftc3MgPSBzdGZjYW1zczsKKysJCWwtPmlkID0gaTsKKysJCWwtPmZv cm1hdHMgPSB2aW5fZm9ybWF0c190YWJsZVtpXS5mbXRzOworKwkJbC0+bmZvcm1hdHMgPSB2aW5f Zm9ybWF0c190YWJsZVtpXS5uZm10czsKKysJCXNwaW5fbG9ja19pbml0KCZsLT5vdXRwdXRfbG9j ayk7CisrCisrCQltdXRleF9pbml0KCZsLT5zdHJlYW1fbG9jayk7CisrCQlsLT5zdHJlYW1fY291 bnQgPSAwOworKwl9CisrCisrCXJldHVybiAwOworK291dDoKKysJcmV0dXJuIHJldDsKKyt9Cisr Cisrc3RhdGljIGVudW0gbGluayB2aW5fZ2V0X2xpbmsoc3RydWN0IG1lZGlhX2VudGl0eSAqZW50 aXR5KQorK3sKKysJc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXY7CisrCXN0cnVjdCBtZWRpYV9w YWQgKnBhZDsKKysJYm9vbCBpc3AgPSBmYWxzZTsKKysKKysJd2hpbGUgKDEpIHsKKysJCXBhZCA9 ICZlbnRpdHktPnBhZHNbMF07CisrCQlpZiAoIShwYWQtPmZsYWdzICYgTUVESUFfUEFEX0ZMX1NJ TkspKQorKwkJCXJldHVybiBMSU5LX0VSUk9SOworKworKwkJcGFkID0gbWVkaWFfcGFkX3JlbW90 ZV9wYWRfZmlyc3QocGFkKTsKKysJCWlmICghcGFkIHx8ICFpc19tZWRpYV9lbnRpdHlfdjRsMl9z dWJkZXYocGFkLT5lbnRpdHkpKQorKwkJCXJldHVybiBMSU5LX0VSUk9SOworKworKwkJZW50aXR5 ID0gcGFkLT5lbnRpdHk7CisrCQlzdWJkZXYgPSBtZWRpYV9lbnRpdHlfdG9fdjRsMl9zdWJkZXYo ZW50aXR5KTsKKysKKysJCWlmICghc3RybmNtcChzdWJkZXYtPm5hbWUsIFNURl9DU0lfTkFNRSwK KysJCQkgICAgIHN0cmxlbihTVEZfQ1NJX05BTUUpKSkgeworKwkJCWlmIChpc3ApCisrCQkJCXJl dHVybiBMSU5LX0NTSV9UT19JU1A7CisrCQkJZWxzZQorKwkJCQlyZXR1cm4gTElOS19DU0lfVE9f V1I7CisrCQl9IGVsc2UgaWYgKCFzdHJuY21wKHN1YmRldi0+bmFtZSwgU1RGX0RWUF9OQU1FLAor KwkJCQkgICAgc3RybGVuKFNURl9EVlBfTkFNRSkpKSB7CisrCQkJaWYgKGlzcCkKKysJCQkJcmV0 dXJuIExJTktfRFZQX1RPX0lTUDsKKysJCQllbHNlCisrCQkJCXJldHVybiBMSU5LX0RWUF9UT19X UjsKKysJCX0gZWxzZSBpZiAoIXN0cm5jbXAoc3ViZGV2LT5uYW1lLCBTVEZfSVNQX05BTUUsCisr CQkJCSAgICBzdHJsZW4oU1RGX0lTUF9OQU1FKSkpIHsKKysJCQlpc3AgPSB0cnVlOworKwkJfSBl bHNlIHsKKysJCQlyZXR1cm4gTElOS19FUlJPUjsKKysJCX0KKysJfQorK30KKysKKytzdGF0aWMg aW50IHZpbl9lbmFibGVfb3V0cHV0KHN0cnVjdCB2aW5fbGluZSAqbGluZSkKKyt7CisrCXN0cnVj dCB2aW5fb3V0cHV0ICpvdXRwdXQgPSAmbGluZS0+b3V0cHV0OworKwl1bnNpZ25lZCBsb25nIGZs YWdzOworKworKwlzcGluX2xvY2tfaXJxc2F2ZSgmbGluZS0+b3V0cHV0X2xvY2ssIGZsYWdzKTsK KysKKysJb3V0cHV0LT5zdGF0ZSA9IFZJTl9PVVRQVVRfSURMRTsKKysKKysJb3V0cHV0LT5idWZb MF0gPSB2aW5fYnVmX2dldF9wZW5kaW5nKG91dHB1dCk7CisrCisrCWlmICghb3V0cHV0LT5idWZb MF0gJiYgb3V0cHV0LT5idWZbMV0pIHsKKysJCW91dHB1dC0+YnVmWzBdID0gb3V0cHV0LT5idWZb MV07CisrCQlvdXRwdXQtPmJ1ZlsxXSA9IE5VTEw7CisrCX0KKysKKysJaWYgKG91dHB1dC0+YnVm WzBdKQorKwkJb3V0cHV0LT5zdGF0ZSA9IFZJTl9PVVRQVVRfU0lOR0xFOworKworKwlvdXRwdXQt PnNlcXVlbmNlID0gMDsKKysKKysJdmluX291dHB1dF9pbml0X2FkZHJzKGxpbmUpOworKwlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZsaW5lLT5vdXRwdXRfbG9jaywgZmxhZ3MpOworKwlyZXR1cm4g MDsKKyt9CisrCisrc3RhdGljIGludCB2aW5fZGlzYWJsZV9vdXRwdXQoc3RydWN0IHZpbl9saW5l ICpsaW5lKQorK3sKKysJc3RydWN0IHZpbl9vdXRwdXQgKm91dHB1dCA9ICZsaW5lLT5vdXRwdXQ7 CisrCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisrCisrCXNwaW5fbG9ja19pcnFzYXZlKCZsaW5lLT5v dXRwdXRfbG9jaywgZmxhZ3MpOworKworKwlvdXRwdXQtPnN0YXRlID0gVklOX09VVFBVVF9PRkY7 CisrCisrCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmxpbmUtPm91dHB1dF9sb2NrLCBmbGFncyk7 CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgdTMyIHZpbl9saW5lX3RvX2R1bW15X21vZHVs ZShzdHJ1Y3QgdmluX2xpbmUgKmxpbmUpCisreworKwl1MzIgZHVtbXlfbW9kdWxlID0gMDsKKysK KysJc3dpdGNoIChsaW5lLT5pZCkgeworKwljYXNlIFZJTl9MSU5FX1dSOgorKwkJZHVtbXlfbW9k dWxlID0gU1RGX0RVTU1ZX1ZJTjsKKysJCWJyZWFrOworKwljYXNlIFZJTl9MSU5FX0lTUDoKKysJ CWR1bW15X21vZHVsZSA9IFNURl9EVU1NWV9JU1A7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJ CWR1bW15X21vZHVsZSA9IFNURl9EVU1NWV9WSU47CisrCQlicmVhazsKKysJfQorKworKwlyZXR1 cm4gZHVtbXlfbW9kdWxlOworK30KKysKKytzdGF0aWMgaW50IHZpbl9hbGxvY19kdW1teV9idWZm ZXIoc3RydWN0IHN0Zl92aW5fZGV2ICp2aW5fZGV2LAorKwkJCQkgIHN0cnVjdCB2NGwyX21idXNf ZnJhbWVmbXQgKmZtdCwKKysJCQkJICBpbnQgZHVtbXlfbW9kdWxlKQorK3sKKysJc3RydWN0IGRl dmljZSAqZGV2ID0gdmluX2Rldi0+c3RmY2Ftc3MtPmRldjsKKysJc3RydWN0IGR1bW15X2J1ZmZl ciAqZHVtbXlfYnVmZmVyID0KKysJCQkJJnZpbl9kZXYtPmR1bW15X2J1ZmZlcltkdW1teV9tb2R1 bGVdOworKwlzdHJ1Y3QgdmluX2R1bW15X2J1ZmZlciAqYnVmZmVyID0gTlVMTDsKKysJaW50IHJl dCA9IDAsIGk7CisrCXUzMiBhbGlnbnM7CisrCisrCWZvciAoaSA9IDA7IGkgPCBkdW1teV9idWZm ZXItPm51bXM7IGkrKykgeworKwkJYnVmZmVyID0gJnZpbl9kZXYtPmR1bW15X2J1ZmZlcltkdW1t eV9tb2R1bGVdLmJ1ZmZlcltpXTsKKysJCWJ1ZmZlci0+d2lkdGggPSBmbXQtPndpZHRoOworKwkJ YnVmZmVyLT5oZWlnaHQgPSBmbXQtPmhlaWdodDsKKysJCWJ1ZmZlci0+bWNvZGUgPSBmbXQtPmNv ZGU7CisrCQlpZiAoaSA9PSBTVEZfVklOX1BBRF9TSU5LKSB7CisrCQkJYWxpZ25zID0gQUxJR04o Zm10LT53aWR0aCAqIDQsCisrCQkJCSAgICAgICBTVEZDQU1TU19GUkFNRV9XSURUSF9BTElHTl84 KTsKKysJCQlidWZmZXItPmJ1ZmZlcl9zaXplID0gUEFHRV9BTElHTihhbGlnbnMgKiBmbXQtPmhl aWdodCk7CisrCQl9IGVsc2UgaWYgKGkgPT0gU1RGX0lTUF9QQURfU1JDKSB7CisrCQkJYWxpZ25z ID0gQUxJR04oZm10LT53aWR0aCwKKysJCQkJICAgICAgIFNURkNBTVNTX0ZSQU1FX1dJRFRIX0FM SUdOXzgpOworKwkJCWJ1ZmZlci0+YnVmZmVyX3NpemUgPQorKwkJCQlQQUdFX0FMSUdOKGFsaWdu cyAqIGZtdC0+aGVpZ2h0ICogMyAvIDIpOworKwkJfSBlbHNlIHsKKysJCQljb250aW51ZTsKKysJ CX0KKysKKysJCWJ1ZmZlci0+dmFkZHIgPSBkbWFfYWxsb2NfY29oZXJlbnQoZGV2LAorKwkJCQkJ CSAgIGJ1ZmZlci0+YnVmZmVyX3NpemUsCisrCQkJCQkJICAgJmJ1ZmZlci0+cGFkZHJbMF0sCisr CQkJCQkJICAgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTik7CisrCisrCQlpZiAoYnVmZmVyLT52 YWRkcikgeworKwkJCWlmIChpID09IFNURl9JU1BfUEFEX1NSQykKKysJCQkJYnVmZmVyLT5wYWRk clsxXSA9CisrCQkJCQkoZG1hX2FkZHJfdCkoYnVmZmVyLT5wYWRkclswXSArIGFsaWducyAqIGZt dC0+aGVpZ2h0KTsKKysJCQllbHNlCisrCQkJCWRldl9kYmcoZGV2LCAic2lnbmFsIHBsYW5lXG4i KTsKKysJCX0KKysJfQorKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9pZCB2aW5f ZnJlZV9kdW1teV9idWZmZXIoc3RydWN0IHN0Zl92aW5fZGV2ICp2aW5fZGV2LCBpbnQgZHVtbXlf bW9kdWxlKQorK3sKKysJc3RydWN0IGRldmljZSAqZGV2ID0gdmluX2Rldi0+c3RmY2Ftc3MtPmRl djsKKysJc3RydWN0IGR1bW15X2J1ZmZlciAqZHVtbXlfYnVmZmVyID0KKysJCSZ2aW5fZGV2LT5k dW1teV9idWZmZXJbZHVtbXlfbW9kdWxlXTsKKysJc3RydWN0IHZpbl9kdW1teV9idWZmZXIgKmJ1 ZmZlciA9IE5VTEw7CisrCWludCBpOworKworKwlmb3IgKGkgPSAwOyBpIDwgZHVtbXlfYnVmZmVy LT5udW1zOyBpKyspIHsKKysJCWJ1ZmZlciA9ICZkdW1teV9idWZmZXItPmJ1ZmZlcltpXTsKKysJ CWlmIChidWZmZXItPnZhZGRyKQorKwkJCWRtYV9mcmVlX2NvaGVyZW50KGRldiwgYnVmZmVyLT5i dWZmZXJfc2l6ZSwKKysJCQkJCSAgYnVmZmVyLT52YWRkciwgYnVmZmVyLT5wYWRkclswXSk7Cisr CQltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2Yoc3RydWN0IHZpbl9kdW1teV9idWZmZXIpKTsKKysJ fQorK30KKysKKytzdGF0aWMgdm9pZCB2aW5fc2V0X2R1bW15X2J1ZmZlcihzdHJ1Y3QgdmluX2xp bmUgKmxpbmUsIHUzMiBwYWQpCisreworKwlzdHJ1Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYgPSBs aW5lX3RvX3Zpbl9kZXYobGluZSk7CisrCWludCBkdW1teV9tb2R1bGUgPSB2aW5fbGluZV90b19k dW1teV9tb2R1bGUobGluZSk7CisrCXN0cnVjdCBkdW1teV9idWZmZXIgKmR1bW15X2J1ZmZlciA9 CisrCQkmdmluX2Rldi0+ZHVtbXlfYnVmZmVyW2R1bW15X21vZHVsZV07CisrCXN0cnVjdCB2aW5f ZHVtbXlfYnVmZmVyICpidWZmZXIgPSBOVUxMOworKworKwlzd2l0Y2ggKHBhZCkgeworKwljYXNl IFNURl9WSU5fUEFEX1NJTks6CisrCQlpZiAobGluZS0+aWQgPT0gVklOX0xJTkVfV1IpIHsKKysJ CQlidWZmZXIgPSAmZHVtbXlfYnVmZmVyLT5idWZmZXJbU1RGX1ZJTl9QQURfU0lOS107CisrCQkJ c3RmX3Zpbl93cl9zZXRfcGluZ19hZGRyKHZpbl9kZXYsIGJ1ZmZlci0+cGFkZHJbMF0pOworKwkJ CXN0Zl92aW5fd3Jfc2V0X3BvbmdfYWRkcih2aW5fZGV2LCBidWZmZXItPnBhZGRyWzBdKTsKKysJ CX0gZWxzZSB7CisrCQkJYnVmZmVyID0gJmR1bW15X2J1ZmZlci0+YnVmZmVyW1NURl9JU1BfUEFE X1NSQ107CisrCQkJc3RmX3Zpbl9pc3Bfc2V0X3l1dl9hZGRyKHZpbl9kZXYsCisrCQkJCQkJIGJ1 ZmZlci0+cGFkZHJbMF0sCisrCQkJCQkJIGJ1ZmZlci0+cGFkZHJbMV0pOworKwkJfQorKwkJYnJl YWs7CisrCWNhc2UgU1RGX0lTUF9QQURfU1JDOgorKwkJYnVmZmVyID0gJmR1bW15X2J1ZmZlci0+ YnVmZmVyW1NURl9JU1BfUEFEX1NSQ107CisrCQlzdGZfdmluX2lzcF9zZXRfeXV2X2FkZHIodmlu X2RldiwKKysJCQkJCSBidWZmZXItPnBhZGRyWzBdLAorKwkJCQkJIGJ1ZmZlci0+cGFkZHJbMV0p OworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlicmVhazsKKysJfQorK30KKysKKytzdGF0aWMg aW50IHZpbl9zZXRfc3RyZWFtKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIGludCBlbmFibGUpCisr eworKwlzdHJ1Y3QgdmluX2xpbmUgKmxpbmUgPSB2NGwyX2dldF9zdWJkZXZkYXRhKHNkKTsKKysJ c3RydWN0IHN0Zl92aW5fZGV2ICp2aW5fZGV2ID0gbGluZV90b192aW5fZGV2KGxpbmUpOworKwlp bnQgZHVtbXlfbW9kdWxlID0gdmluX2xpbmVfdG9fZHVtbXlfbW9kdWxlKGxpbmUpOworKwlzdHJ1 Y3QgZHVtbXlfYnVmZmVyICpkdW1teV9idWZmZXIgPQorKwkJJnZpbl9kZXYtPmR1bW15X2J1ZmZl cltkdW1teV9tb2R1bGVdOworKwlzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpmbXQ7CisrCWVu dW0gbGluayBsaW5rOworKworKwlmbXQgPSBfX3Zpbl9nZXRfZm9ybWF0KGxpbmUsIE5VTEwsCisr CQkJICAgICAgIFNURl9WSU5fUEFEX1NJTkssIFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUpOwor KwltdXRleF9sb2NrKCZkdW1teV9idWZmZXItPnN0cmVhbV9sb2NrKTsKKysJaWYgKGVuYWJsZSkg eworKwkJaWYgKGR1bW15X2J1ZmZlci0+c3RyZWFtX2NvdW50ID09IDApIHsKKysJCQl2aW5fYWxs b2NfZHVtbXlfYnVmZmVyKHZpbl9kZXYsIGZtdCwgZHVtbXlfbW9kdWxlKTsKKysJCQl2aW5fc2V0 X2R1bW15X2J1ZmZlcihsaW5lLCBTVEZfVklOX1BBRF9TSU5LKTsKKysJCQlhdG9taWNfc2V0KCZk dW1teV9idWZmZXItPmZyYW1lX3NraXAsCisrCQkJCSAgIFZJTl9GUkFNRV9EUk9QX01JTl9WQUwp OworKwkJfQorKwkJZHVtbXlfYnVmZmVyLT5zdHJlYW1fY291bnQrKzsKKysJfSBlbHNlIHsKKysJ CWlmIChkdW1teV9idWZmZXItPnN0cmVhbV9jb3VudCA9PSAxKSB7CisrCQkJdmluX2ZyZWVfZHVt bXlfYnVmZmVyKHZpbl9kZXYsIGR1bW15X21vZHVsZSk7CisrCQkJLyogc2V0IGJ1ZmZlciBhZGRy IHRvIHplcm8gKi8KKysJCQl2aW5fc2V0X2R1bW15X2J1ZmZlcihsaW5lLCBTVEZfVklOX1BBRF9T SU5LKTsKKysJCX0gZWxzZSB7CisrCQkJdmluX3NldF9kdW1teV9idWZmZXIobGluZSwKKysJCQkJ c3RmX3Zpbl9tYXBfaXNwX3BhZChsaW5lLT5pZCwgU1RGX0lTUF9QQURfU0lOSykpOworKwkJfQor KworKwkJZHVtbXlfYnVmZmVyLT5zdHJlYW1fY291bnQtLTsKKysJfQorKwltdXRleF91bmxvY2so JmR1bW15X2J1ZmZlci0+c3RyZWFtX2xvY2spOworKworKwltdXRleF9sb2NrKCZsaW5lLT5zdHJl YW1fbG9jayk7CisrCWxpbmsgPSB2aW5fZ2V0X2xpbmsoJnNkLT5lbnRpdHkpOworKwlpZiAobGlu ayA9PSBMSU5LX0VSUk9SKQorKwkJZ290byBleGl0OworKworKwlpZiAoZW5hYmxlKSB7CisrCQlp ZiAobGluZS0+c3RyZWFtX2NvdW50ID09IDApIHsKKysJCQlzdGZfdmluX3N0cmVhbV9zZXQodmlu X2RldiwgbGluayk7CisrCQkJaWYgKGxpbmUtPmlkID09IFZJTl9MSU5FX1dSKSB7CisrCQkJCXN0 Zl92aW5fd3JfaXJxX2VuYWJsZSh2aW5fZGV2LCAxKTsKKysJCQkJc3RmX3Zpbl93cl9zdHJlYW1f c2V0KHZpbl9kZXYpOworKwkJCX0KKysJCX0KKysJCWxpbmUtPnN0cmVhbV9jb3VudCsrOworKwl9 IGVsc2UgeworKwkJaWYgKGxpbmUtPnN0cmVhbV9jb3VudCA9PSAxICYmIGxpbmUtPmlkID09IFZJ Tl9MSU5FX1dSKQorKwkJCXN0Zl92aW5fd3JfaXJxX2VuYWJsZSh2aW5fZGV2LCAwKTsKKysJCWxp bmUtPnN0cmVhbV9jb3VudC0tOworKwl9CisrZXhpdDoKKysJbXV0ZXhfdW5sb2NrKCZsaW5lLT5z dHJlYW1fbG9jayk7CisrCisrCWlmIChlbmFibGUpCisrCQl2aW5fZW5hYmxlX291dHB1dChsaW5l KTsKKysJZWxzZQorKwkJdmluX2Rpc2FibGVfb3V0cHV0KGxpbmUpOworKworKwlyZXR1cm4gMDsK Kyt9CisrCisrc3RhdGljIHN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKgorK19fdmluX2dldF9m b3JtYXQoc3RydWN0IHZpbl9saW5lICpsaW5lLAorKwkJIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0 ZSAqc3RhdGUsCisrCQkgdW5zaWduZWQgaW50IHBhZCwKKysJCSBlbnVtIHY0bDJfc3ViZGV2X2Zv cm1hdF93aGVuY2Ugd2hpY2gpCisreworKwlpZiAod2hpY2ggPT0gVjRMMl9TVUJERVZfRk9STUFU X1RSWSkKKysJCXJldHVybiB2NGwyX3N1YmRldl9nZXRfdHJ5X2Zvcm1hdCgmbGluZS0+c3ViZGV2 LCBzdGF0ZSwgcGFkKTsKKysJcmV0dXJuICZsaW5lLT5mbXRbcGFkXTsKKyt9CisrCisrc3RhdGlj IHZvaWQgdmluX3RyeV9mb3JtYXQoc3RydWN0IHZpbl9saW5lICpsaW5lLAorKwkJCSAgIHN0cnVj dCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGUsCisrCQkJICAgdW5zaWduZWQgaW50IHBhZCwKKysJ CQkgICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpmbXQsCisrCQkJICAgZW51bSB2NGwyX3N1 YmRldl9mb3JtYXRfd2hlbmNlIHdoaWNoKQorK3sKKysJdW5zaWduZWQgaW50IGk7CisrCisrCXN3 aXRjaCAocGFkKSB7CisrCWNhc2UgU1RGX1ZJTl9QQURfU0lOSzoKKysJCS8qIFNldCBmb3JtYXQg b24gc2luayBwYWQgKi8KKysJCWZvciAoaSA9IDA7IGkgPCBsaW5lLT5uZm9ybWF0czsgaSsrKQor KwkJCWlmIChmbXQtPmNvZGUgPT0gbGluZS0+Zm9ybWF0c1tpXS5jb2RlKQorKwkJCQlicmVhazsK KysKKysJCS8qIElmIG5vdCBmb3VuZCwgdXNlIFVZVlkgYXMgZGVmYXVsdCAqLworKwkJaWYgKGkg Pj0gbGluZS0+bmZvcm1hdHMpCisrCQkJZm10LT5jb2RlID0gbGluZS0+Zm9ybWF0c1swXS5jb2Rl OworKworKwkJZm10LT53aWR0aCA9IGNsYW1wX3QodTMyLCBmbXQtPndpZHRoLAorKwkJCQkgICAg IFNURkNBTVNTX0ZSQU1FX01JTl9XSURUSCwKKysJCQkJICAgICBTVEZDQU1TU19GUkFNRV9NQVhf V0lEVEgpOworKwkJZm10LT5oZWlnaHQgPSBjbGFtcF90KHUzMiwgZm10LT5oZWlnaHQsCisrCQkJ CSAgICAgIFNURkNBTVNTX0ZSQU1FX01JTl9IRUlHSFQsCisrCQkJCSAgICAgIFNURkNBTVNTX0ZS QU1FX01BWF9IRUlHSFQpOworKworKwkJZm10LT5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsKKysJ CWZtdC0+Y29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9TUkdCOworKwkJZm10LT5mbGFncyA9 IDA7CisrCQlicmVhazsKKysKKysJY2FzZSBTVEZfVklOX1BBRF9TUkM6CisrCQkvKiBTZXQgYW5k IHJldHVybiBhIGZvcm1hdCBzYW1lIGFzIHNpbmsgcGFkICovCisrCQkqZm10ID0gKl9fdmluX2dl dF9mb3JtYXQobGluZSwgc3RhdGUsIFNURl9WSU5fUEFEX1NJTkssIHdoaWNoKTsKKysJCWJyZWFr OworKwl9CisrCisrCWZtdC0+Y29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9TUkdCOworK30K KysKKytzdGF0aWMgaW50IHZpbl9lbnVtX21idXNfY29kZShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNk LAorKwkJCSAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGUsCisrCQkJICAgICAg c3RydWN0IHY0bDJfc3ViZGV2X21idXNfY29kZV9lbnVtICpjb2RlKQorK3sKKysJc3RydWN0IHZp bl9saW5lICpsaW5lID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7CisrCisrCWlmIChjb2RlLT5p bmRleCA+PSBsaW5lLT5uZm9ybWF0cykKKysJCXJldHVybiAtRUlOVkFMOworKwlpZiAoY29kZS0+ cGFkID09IFNURl9WSU5fUEFEX1NJTkspIHsKKysJCWNvZGUtPmNvZGUgPSBsaW5lLT5mb3JtYXRz W2NvZGUtPmluZGV4XS5jb2RlOworKwl9IGVsc2UgeworKwkJc3RydWN0IHY0bDJfbWJ1c19mcmFt ZWZtdCAqc2lua19mbXQ7CisrCisrCQlzaW5rX2ZtdCA9IF9fdmluX2dldF9mb3JtYXQobGluZSwg c3RhdGUsIFNURl9WSU5fUEFEX1NJTkssCisrCQkJCQkgICAgY29kZS0+d2hpY2gpOworKworKwkJ Y29kZS0+Y29kZSA9IHNpbmtfZm10LT5jb2RlOworKwkJaWYgKCFjb2RlLT5jb2RlKQorKwkJCXJl dHVybiAtRUlOVkFMOworKwl9CisrCWNvZGUtPmZsYWdzID0gMDsKKysKKysJcmV0dXJuIDA7Cisr fQorKworK3N0YXRpYyBpbnQgdmluX2VudW1fZnJhbWVfc2l6ZShzdHJ1Y3QgdjRsMl9zdWJkZXYg KnNkLAorKwkJCSAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAorKwkJCSAg ICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZnJhbWVfc2l6ZV9lbnVtICpmc2UpCisreworKwlzdHJ1 Y3QgdmluX2xpbmUgKmxpbmUgPSB2NGwyX2dldF9zdWJkZXZkYXRhKHNkKTsKKysJc3RydWN0IHY0 bDJfbWJ1c19mcmFtZWZtdCBmb3JtYXQ7CisrCisrCWlmIChmc2UtPmluZGV4ICE9IDApCisrCQly ZXR1cm4gLUVJTlZBTDsKKysKKysJZm9ybWF0LmNvZGUgPSBmc2UtPmNvZGU7CisrCWZvcm1hdC53 aWR0aCA9IDE7CisrCWZvcm1hdC5oZWlnaHQgPSAxOworKwl2aW5fdHJ5X2Zvcm1hdChsaW5lLCBz dGF0ZSwgZnNlLT5wYWQsICZmb3JtYXQsIGZzZS0+d2hpY2gpOworKwlmc2UtPm1pbl93aWR0aCA9 IGZvcm1hdC53aWR0aDsKKysJZnNlLT5taW5faGVpZ2h0ID0gZm9ybWF0LmhlaWdodDsKKysKKysJ aWYgKGZvcm1hdC5jb2RlICE9IGZzZS0+Y29kZSkKKysJCXJldHVybiAtRUlOVkFMOworKworKwlm b3JtYXQuY29kZSA9IGZzZS0+Y29kZTsKKysJZm9ybWF0LndpZHRoID0gLTE7CisrCWZvcm1hdC5o ZWlnaHQgPSAtMTsKKysJdmluX3RyeV9mb3JtYXQobGluZSwgc3RhdGUsIGZzZS0+cGFkLCAmZm9y bWF0LCBmc2UtPndoaWNoKTsKKysJZnNlLT5tYXhfd2lkdGggPSBmb3JtYXQud2lkdGg7CisrCWZz ZS0+bWF4X2hlaWdodCA9IGZvcm1hdC5oZWlnaHQ7CisrCisrCXJldHVybiAwOworK30KKysKKytz dGF0aWMgaW50IHZpbl9nZXRfZm9ybWF0KHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsCisrCQkJICBz dHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAorKwkJCSAgc3RydWN0IHY0bDJfc3ViZGV2 X2Zvcm1hdCAqZm10KQorK3sKKysJc3RydWN0IHZpbl9saW5lICpsaW5lID0gdjRsMl9nZXRfc3Vi ZGV2ZGF0YShzZCk7CisrCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKmZvcm1hdDsKKysKKysJ Zm9ybWF0ID0gX192aW5fZ2V0X2Zvcm1hdChsaW5lLCBzdGF0ZSwgZm10LT5wYWQsIGZtdC0+d2hp Y2gpOworKwlpZiAoIWZvcm1hdCkKKysJCXJldHVybiAtRUlOVkFMOworKworKwlmbXQtPmZvcm1h dCA9ICpmb3JtYXQ7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHZpbl9zZXRf Zm9ybWF0KHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsCisrCQkJICBzdHJ1Y3QgdjRsMl9zdWJkZXZf c3RhdGUgKnN0YXRlLAorKwkJCSAgc3RydWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCAqZm10KQorK3sK KysJc3RydWN0IHZpbl9saW5lICpsaW5lID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7CisrCXN0 cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKmZvcm1hdDsKKysKKysJZm9ybWF0ID0gX192aW5fZ2V0 X2Zvcm1hdChsaW5lLCBzdGF0ZSwgZm10LT5wYWQsIGZtdC0+d2hpY2gpOworKwlpZiAoIWZvcm1h dCkKKysJCXJldHVybiAtRUlOVkFMOworKworKwltdXRleF9sb2NrKCZsaW5lLT5zdHJlYW1fbG9j ayk7CisrCWlmIChsaW5lLT5zdHJlYW1fY291bnQpIHsKKysJCWZtdC0+Zm9ybWF0ID0gKmZvcm1h dDsKKysJCW11dGV4X3VubG9jaygmbGluZS0+c3RyZWFtX2xvY2spOworKwkJZ290byBvdXQ7Cisr CX0gZWxzZSB7CisrCQl2aW5fdHJ5X2Zvcm1hdChsaW5lLCBzdGF0ZSwgZm10LT5wYWQsICZmbXQt PmZvcm1hdCwgZm10LT53aGljaCk7CisrCQkqZm9ybWF0ID0gZm10LT5mb3JtYXQ7CisrCX0KKysJ bXV0ZXhfdW5sb2NrKCZsaW5lLT5zdHJlYW1fbG9jayk7CisrCisrCWlmIChmbXQtPnBhZCA9PSBT VEZfVklOX1BBRF9TSU5LKSB7CisrCQkvKiBQcm9wYWdhdGUgdGhlIGZvcm1hdCBmcm9tIHNpbmsg dG8gc291cmNlICovCisrCQlmb3JtYXQgPSBfX3Zpbl9nZXRfZm9ybWF0KGxpbmUsIHN0YXRlLCBT VEZfVklOX1BBRF9TUkMsCisrCQkJCQkgIGZtdC0+d2hpY2gpOworKworKwkJKmZvcm1hdCA9IGZt dC0+Zm9ybWF0OworKwkJdmluX3RyeV9mb3JtYXQobGluZSwgc3RhdGUsIFNURl9WSU5fUEFEX1NS QywgZm9ybWF0LAorKwkJCSAgICAgICBmbXQtPndoaWNoKTsKKysJfQorKworK291dDoKKysJcmV0 dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgdmluX2luaXRfZm9ybWF0cyhzdHJ1Y3QgdjRsMl9z dWJkZXYgKnNkLAorKwkJCSAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZmggKmZoKQorK3sKKysJc3Ry dWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCBmb3JtYXQgPSB7CisrCQkucGFkID0gU1RGX1ZJTl9QQURf U0lOSywKKysJCS53aGljaCA9IGZoID8KKysJCQkgVjRMMl9TVUJERVZfRk9STUFUX1RSWSA6IFY0 TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUsCisrCQkuZm9ybWF0ID0geworKwkJCS5jb2RlID0gTUVE SUFfQlVTX0ZNVF9SR0I1NjVfMlg4X0xFLAorKwkJCS53aWR0aCA9IDE5MjAsCisrCQkJLmhlaWdo dCA9IDEwODAKKysJCX0KKysJfTsKKysKKysJcmV0dXJuIHZpbl9zZXRfZm9ybWF0KHNkLCBmaCA/ IGZoLT5zdGF0ZSA6IE5VTEwsICZmb3JtYXQpOworK30KKysKKytzdGF0aWMgdm9pZCB2aW5fb3V0 cHV0X2luaXRfYWRkcnMoc3RydWN0IHZpbl9saW5lICpsaW5lKQorK3sKKysJc3RydWN0IHZpbl9v dXRwdXQgKm91dHB1dCA9ICZsaW5lLT5vdXRwdXQ7CisrCXN0cnVjdCBzdGZfdmluX2RldiAqdmlu X2RldiA9IGxpbmVfdG9fdmluX2RldihsaW5lKTsKKysJZG1hX2FkZHJfdCBwaW5nX2FkZHI7Cisr CWRtYV9hZGRyX3QgeV9hZGRyLCB1dl9hZGRyOworKworKwlvdXRwdXQtPmFjdGl2ZV9idWYgPSAw OworKworKwlpZiAob3V0cHV0LT5idWZbMF0pIHsKKysJCXBpbmdfYWRkciA9IG91dHB1dC0+YnVm WzBdLT5hZGRyWzBdOworKwkJeV9hZGRyID0gb3V0cHV0LT5idWZbMF0tPmFkZHJbMF07CisrCQl1 dl9hZGRyID0gb3V0cHV0LT5idWZbMF0tPmFkZHJbMV07CisrCX0gZWxzZSB7CisrCQlyZXR1cm47 CisrCX0KKysKKysJc3dpdGNoICh2aW5fbWFwX2lzcF9saW5lKGxpbmUtPmlkKSkgeworKwljYXNl IFNURl9JU1BfTElORV9TUkM6CisrCQlzdGZfdmluX2lzcF9zZXRfeXV2X2FkZHIodmluX2Rldiwg eV9hZGRyLCB1dl9hZGRyKTsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJaWYgKGxpbmUtPmlk ID09IFZJTl9MSU5FX1dSKSB7CisrCQkJc3RmX3Zpbl93cl9zZXRfcGluZ19hZGRyKHZpbl9kZXYs IHBpbmdfYWRkcik7CisrCQkJc3RmX3Zpbl93cl9zZXRfcG9uZ19hZGRyKHZpbl9kZXYsIHBpbmdf YWRkcik7CisrCQl9CisrCQlicmVhazsKKysJfQorK30KKysKKytzdGF0aWMgdm9pZCB2aW5faW5p dF9vdXRwdXRzKHN0cnVjdCB2aW5fbGluZSAqbGluZSkKKyt7CisrCXN0cnVjdCB2aW5fb3V0cHV0 ICpvdXRwdXQgPSAmbGluZS0+b3V0cHV0OworKworKwlvdXRwdXQtPnN0YXRlID0gVklOX09VVFBV VF9PRkY7CisrCW91dHB1dC0+YnVmWzBdID0gTlVMTDsKKysJb3V0cHV0LT5idWZbMV0gPSBOVUxM OworKwlvdXRwdXQtPmFjdGl2ZV9idWYgPSAwOworKwlJTklUX0xJU1RfSEVBRCgmb3V0cHV0LT5w ZW5kaW5nX2J1ZnMpOworKwlJTklUX0xJU1RfSEVBRCgmb3V0cHV0LT5yZWFkeV9idWZzKTsKKyt9 CisrCisrc3RhdGljIHZvaWQgdmluX2J1Zl9hZGRfcmVhZHkoc3RydWN0IHZpbl9vdXRwdXQgKm91 dHB1dCwKKysJCQkgICAgICBzdHJ1Y3Qgc3RmY2Ftc3NfYnVmZmVyICpidWZmZXIpCisreworKwlJ TklUX0xJU1RfSEVBRCgmYnVmZmVyLT5xdWV1ZSk7CisrCWxpc3RfYWRkX3RhaWwoJmJ1ZmZlci0+ cXVldWUsICZvdXRwdXQtPnJlYWR5X2J1ZnMpOworK30KKysKKytzdGF0aWMgc3RydWN0IHN0ZmNh bXNzX2J1ZmZlciAqdmluX2J1Zl9nZXRfcmVhZHkoc3RydWN0IHZpbl9vdXRwdXQgKm91dHB1dCkK Kyt7CisrCXN0cnVjdCBzdGZjYW1zc19idWZmZXIgKmJ1ZmZlciA9IE5VTEw7CisrCisrCWlmICgh bGlzdF9lbXB0eSgmb3V0cHV0LT5yZWFkeV9idWZzKSkgeworKwkJYnVmZmVyID0gbGlzdF9maXJz dF9lbnRyeSgmb3V0cHV0LT5yZWFkeV9idWZzLAorKwkJCQkJICBzdHJ1Y3Qgc3RmY2Ftc3NfYnVm ZmVyLAorKwkJCQkJICBxdWV1ZSk7CisrCQlsaXN0X2RlbCgmYnVmZmVyLT5xdWV1ZSk7CisrCX0K KysKKysJcmV0dXJuIGJ1ZmZlcjsKKyt9CisrCisrc3RhdGljIHZvaWQgdmluX2J1Zl9hZGRfcGVu ZGluZyhzdHJ1Y3QgdmluX291dHB1dCAqb3V0cHV0LAorKwkJCQlzdHJ1Y3Qgc3RmY2Ftc3NfYnVm ZmVyICpidWZmZXIpCisreworKwlJTklUX0xJU1RfSEVBRCgmYnVmZmVyLT5xdWV1ZSk7CisrCWxp c3RfYWRkX3RhaWwoJmJ1ZmZlci0+cXVldWUsICZvdXRwdXQtPnBlbmRpbmdfYnVmcyk7CisrfQor KworK3N0YXRpYyBzdHJ1Y3Qgc3RmY2Ftc3NfYnVmZmVyICp2aW5fYnVmX2dldF9wZW5kaW5nKHN0 cnVjdCB2aW5fb3V0cHV0ICpvdXRwdXQpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3NfYnVmZmVyICpi dWZmZXIgPSBOVUxMOworKworKwlpZiAoIWxpc3RfZW1wdHkoJm91dHB1dC0+cGVuZGluZ19idWZz KSkgeworKwkJYnVmZmVyID0gbGlzdF9maXJzdF9lbnRyeSgmb3V0cHV0LT5wZW5kaW5nX2J1ZnMs CisrCQkJCQkgIHN0cnVjdCBzdGZjYW1zc19idWZmZXIsCisrCQkJCQkgIHF1ZXVlKTsKKysJCWxp c3RfZGVsKCZidWZmZXItPnF1ZXVlKTsKKysJfQorKworKwlyZXR1cm4gYnVmZmVyOworK30KKysK KytzdGF0aWMgdm9pZCB2aW5fYnVmX3VwZGF0ZV9vbl9sYXN0KHN0cnVjdCB2aW5fbGluZSAqbGlu ZSkKKyt7CisrCXN0cnVjdCB2aW5fb3V0cHV0ICpvdXRwdXQgPSAmbGluZS0+b3V0cHV0OworKwor Kwlzd2l0Y2ggKG91dHB1dC0+c3RhdGUpIHsKKysJY2FzZSBWSU5fT1VUUFVUX0NPTlRJTlVPVVM6 CisrCQlvdXRwdXQtPnN0YXRlID0gVklOX09VVFBVVF9TSU5HTEU7CisrCQlvdXRwdXQtPmFjdGl2 ZV9idWYgPSAhb3V0cHV0LT5hY3RpdmVfYnVmOworKwkJYnJlYWs7CisrCWNhc2UgVklOX09VVFBV VF9TSU5HTEU6CisrCQlvdXRwdXQtPnN0YXRlID0gVklOX09VVFBVVF9TVE9QUElORzsKKysJCWJy ZWFrOworKwlkZWZhdWx0OgorKwkJYnJlYWs7CisrCX0KKyt9CisrCisrc3RhdGljIHZvaWQgdmlu X2J1Zl91cGRhdGVfb25fbmV4dChzdHJ1Y3QgdmluX2xpbmUgKmxpbmUpCisreworKwlzdHJ1Y3Qg dmluX291dHB1dCAqb3V0cHV0ID0gJmxpbmUtPm91dHB1dDsKKysKKysJc3dpdGNoIChvdXRwdXQt PnN0YXRlKSB7CisrCWNhc2UgVklOX09VVFBVVF9DT05USU5VT1VTOgorKwkJb3V0cHV0LT5hY3Rp dmVfYnVmID0gIW91dHB1dC0+YWN0aXZlX2J1ZjsKKysJCWJyZWFrOworKwljYXNlIFZJTl9PVVRQ VVRfU0lOR0xFOgorKwlkZWZhdWx0OgorKwkJYnJlYWs7CisrCX0KKyt9CisrCisrc3RhdGljIHZv aWQgdmluX2J1Zl91cGRhdGVfb25fbmV3KHN0cnVjdCB2aW5fbGluZSAqbGluZSwKKysJCQkJICBz dHJ1Y3QgdmluX291dHB1dCAqb3V0cHV0LAorKwkJCQkgIHN0cnVjdCBzdGZjYW1zc19idWZmZXIg Km5ld19idWYpCisreworKwlzd2l0Y2ggKG91dHB1dC0+c3RhdGUpIHsKKysJY2FzZSBWSU5fT1VU UFVUX1NJTkdMRToKKysJCXZpbl9idWZfYWRkX3BlbmRpbmcob3V0cHV0LCBuZXdfYnVmKTsKKysJ CWJyZWFrOworKwljYXNlIFZJTl9PVVRQVVRfSURMRToKKysJCWlmICghb3V0cHV0LT5idWZbMF0p IHsKKysJCQlvdXRwdXQtPmJ1ZlswXSA9IG5ld19idWY7CisrCQkJdmluX291dHB1dF9pbml0X2Fk ZHJzKGxpbmUpOworKwkJCW91dHB1dC0+c3RhdGUgPSBWSU5fT1VUUFVUX1NJTkdMRTsKKysJCX0g ZWxzZSB7CisrCQkJdmluX2J1Zl9hZGRfcGVuZGluZyhvdXRwdXQsIG5ld19idWYpOworKwkJfQor KwkJYnJlYWs7CisrCWNhc2UgVklOX09VVFBVVF9TVE9QUElORzoKKysJCWlmIChvdXRwdXQtPmxh c3RfYnVmZmVyKSB7CisrCQkJb3V0cHV0LT5idWZbb3V0cHV0LT5hY3RpdmVfYnVmXSA9IG91dHB1 dC0+bGFzdF9idWZmZXI7CisrCQkJb3V0cHV0LT5sYXN0X2J1ZmZlciA9IE5VTEw7CisrCQl9Cisr CisrCQlvdXRwdXQtPnN0YXRlID0gVklOX09VVFBVVF9TSU5HTEU7CisrCQl2aW5fYnVmX2FkZF9w ZW5kaW5nKG91dHB1dCwgbmV3X2J1Zik7CisrCQlicmVhazsKKysJY2FzZSBWSU5fT1VUUFVUX0NP TlRJTlVPVVM6CisrCWRlZmF1bHQ6CisrCQl2aW5fYnVmX2FkZF9wZW5kaW5nKG91dHB1dCwgbmV3 X2J1Zik7CisrCQlicmVhazsKKysJfQorK30KKysKKytzdGF0aWMgdm9pZCB2aW5fYnVmX2ZsdXNo KHN0cnVjdCB2aW5fb3V0cHV0ICpvdXRwdXQsCisrCQkJICBlbnVtIHZiMl9idWZmZXJfc3RhdGUg c3RhdGUpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3NfYnVmZmVyICpidWY7CisrCXN0cnVjdCBzdGZj YW1zc19idWZmZXIgKnQ7CisrCisrCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShidWYsIHQsICZv dXRwdXQtPnBlbmRpbmdfYnVmcywgcXVldWUpIHsKKysJCXZiMl9idWZmZXJfZG9uZSgmYnVmLT52 Yi52YjJfYnVmLCBzdGF0ZSk7CisrCQlsaXN0X2RlbCgmYnVmLT5xdWV1ZSk7CisrCX0KKysJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJ1ZiwgdCwgJm91dHB1dC0+cmVhZHlfYnVmcywgcXVldWUp IHsKKysJCXZiMl9idWZmZXJfZG9uZSgmYnVmLT52Yi52YjJfYnVmLCBzdGF0ZSk7CisrCQlsaXN0 X2RlbCgmYnVmLT5xdWV1ZSk7CisrCX0KKyt9CisrCisrc3RhdGljIHZvaWQgdmluX2J1ZmZlcl9k b25lKHN0cnVjdCB2aW5fbGluZSAqbGluZSkKKyt7CisrCXN0cnVjdCBzdGZjYW1zc19idWZmZXIg KnJlYWR5X2J1ZjsKKysJc3RydWN0IHZpbl9vdXRwdXQgKm91dHB1dCA9ICZsaW5lLT5vdXRwdXQ7 CisrCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisrCXU2NCB0cyA9IGt0aW1lX2dldF9ucygpOworKwor KwlpZiAob3V0cHV0LT5zdGF0ZSA9PSBWSU5fT1VUUFVUX09GRiB8fAorKwkgICAgb3V0cHV0LT5z dGF0ZSA9PSBWSU5fT1VUUFVUX1JFU0VSVkVEKQorKwkJcmV0dXJuOworKworKwlzcGluX2xvY2tf aXJxc2F2ZSgmbGluZS0+b3V0cHV0X2xvY2ssIGZsYWdzKTsKKysKKysJd2hpbGUgKChyZWFkeV9i dWYgPSB2aW5fYnVmX2dldF9yZWFkeShvdXRwdXQpKSkgeworKwkJcmVhZHlfYnVmLT52Yi52YjJf YnVmLnRpbWVzdGFtcCA9IHRzOworKwkJcmVhZHlfYnVmLT52Yi5zZXF1ZW5jZSA9IG91dHB1dC0+ c2VxdWVuY2UrKzsKKysKKysJCXZiMl9idWZmZXJfZG9uZSgmcmVhZHlfYnVmLT52Yi52YjJfYnVm LCBWQjJfQlVGX1NUQVRFX0RPTkUpOworKwl9CisrCisrCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmxpbmUtPm91dHB1dF9sb2NrLCBmbGFncyk7CisrfQorKworK3N0YXRpYyB2b2lkIHZpbl9jaGFu Z2VfYnVmZmVyKHN0cnVjdCB2aW5fbGluZSAqbGluZSkKKyt7CisrCXN0cnVjdCBzdGZjYW1zc19i dWZmZXIgKnJlYWR5X2J1ZjsKKysJc3RydWN0IHZpbl9vdXRwdXQgKm91dHB1dCA9ICZsaW5lLT5v dXRwdXQ7CisrCXN0cnVjdCBzdGZfdmluX2RldiAqdmluX2RldiA9IGxpbmVfdG9fdmluX2Rldihs aW5lKTsKKysJZG1hX2FkZHJfdCAqbmV3X2FkZHI7CisrCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cisr CXUzMiBhY3RpdmVfaW5kZXg7CisrCisrCWlmIChvdXRwdXQtPnN0YXRlID09IFZJTl9PVVRQVVRf T0ZGIHx8CisrCSAgICBvdXRwdXQtPnN0YXRlID09IFZJTl9PVVRQVVRfU1RPUFBJTkcgfHwKKysJ ICAgIG91dHB1dC0+c3RhdGUgPT0gVklOX09VVFBVVF9SRVNFUlZFRCB8fAorKwkgICAgb3V0cHV0 LT5zdGF0ZSA9PSBWSU5fT1VUUFVUX0lETEUpCisrCQlyZXR1cm47CisrCisrCXNwaW5fbG9ja19p cnFzYXZlKCZsaW5lLT5vdXRwdXRfbG9jaywgZmxhZ3MpOworKworKwlhY3RpdmVfaW5kZXggPSBv dXRwdXQtPmFjdGl2ZV9idWY7CisrCisrCXJlYWR5X2J1ZiA9IG91dHB1dC0+YnVmW2FjdGl2ZV9p bmRleF07CisrCWlmICghcmVhZHlfYnVmKSB7CisrCQlkZXZfd2Fybih2aW5fZGV2LT5zdGZjYW1z cy0+ZGV2LCAiTWlzc2luZyByZWFkeSBidWYgJWQgJWQhXG4iLAorKwkJCSBhY3RpdmVfaW5kZXgs IG91dHB1dC0+c3RhdGUpOworKwkJYWN0aXZlX2luZGV4ID0gIWFjdGl2ZV9pbmRleDsKKysJCXJl YWR5X2J1ZiA9IG91dHB1dC0+YnVmW2FjdGl2ZV9pbmRleF07CisrCQlpZiAoIXJlYWR5X2J1Zikg eworKwkJCWRldl9lcnIodmluX2Rldi0+c3RmY2Ftc3MtPmRldiwKKysJCQkJIk1pc3NpbmcgcmVh ZHkgYnVmMiAlZCAlZCFcbiIsCisrCQkJCWFjdGl2ZV9pbmRleCwgb3V0cHV0LT5zdGF0ZSk7Cisr CQkJZ290byBvdXRfdW5sb2NrOworKwkJfQorKwl9CisrCisrCS8qIEdldCBuZXh0IGJ1ZmZlciAq LworKwlvdXRwdXQtPmJ1ZlthY3RpdmVfaW5kZXhdID0gdmluX2J1Zl9nZXRfcGVuZGluZyhvdXRw dXQpOworKwlpZiAoIW91dHB1dC0+YnVmW2FjdGl2ZV9pbmRleF0pIHsKKysJCS8qIE5vIG5leHQg YnVmZmVyIC0gc2V0IHNhbWUgYWRkcmVzcyAqLworKwkJbmV3X2FkZHIgPSByZWFkeV9idWYtPmFk ZHI7CisrCQl2aW5fYnVmX3VwZGF0ZV9vbl9sYXN0KGxpbmUpOworKwl9IGVsc2UgeworKwkJbmV3 X2FkZHIgPSBvdXRwdXQtPmJ1ZlthY3RpdmVfaW5kZXhdLT5hZGRyOworKwkJdmluX2J1Zl91cGRh dGVfb25fbmV4dChsaW5lKTsKKysJfQorKworKwlpZiAob3V0cHV0LT5zdGF0ZSA9PSBWSU5fT1VU UFVUX1NUT1BQSU5HKSB7CisrCQlvdXRwdXQtPmxhc3RfYnVmZmVyID0gcmVhZHlfYnVmOworKwl9 IGVsc2UgeworKwkJc3dpdGNoICh2aW5fbWFwX2lzcF9saW5lKGxpbmUtPmlkKSkgeworKwkJY2Fz ZSBTVEZfSVNQX0xJTkVfU1JDOgorKwkJCXN0Zl92aW5faXNwX3NldF95dXZfYWRkcih2aW5fZGV2 LAorKwkJCQkJCSBuZXdfYWRkclswXSwKKysJCQkJCQkgbmV3X2FkZHJbMV0pOworKwkJCWJyZWFr OworKwkJZGVmYXVsdDoKKysJCQlpZiAobGluZS0+aWQgPT0gVklOX0xJTkVfV1IpIHsKKysJCQkJ c3RmX3Zpbl93cl9zZXRfcGluZ19hZGRyKHZpbl9kZXYsIG5ld19hZGRyWzBdKTsKKysJCQkJc3Rm X3Zpbl93cl9zZXRfcG9uZ19hZGRyKHZpbl9kZXYsIG5ld19hZGRyWzBdKTsKKysJCQl9CisrCQkJ YnJlYWs7CisrCQl9CisrCisrCQl2aW5fYnVmX2FkZF9yZWFkeShvdXRwdXQsIHJlYWR5X2J1Zik7 CisrCX0KKysKKysJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbGluZS0+b3V0cHV0X2xvY2ssIGZs YWdzKTsKKysJcmV0dXJuOworKworK291dF91bmxvY2s6CisrCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmxpbmUtPm91dHB1dF9sb2NrLCBmbGFncyk7CisrfQorKworK3N0YXRpYyBpbnQgdmluX3F1 ZXVlX2J1ZmZlcihzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZCwKKysJCQkgICAgc3RydWN0IHN0 ZmNhbXNzX2J1ZmZlciAqYnVmKQorK3sKKysJc3RydWN0IHZpbl9saW5lICpsaW5lID0gY29udGFp bmVyX29mKHZpZCwgc3RydWN0IHZpbl9saW5lLCB2aWRlb19vdXQpOworKwlzdHJ1Y3QgdmluX291 dHB1dCAqb3V0cHV0OworKwl1bnNpZ25lZCBsb25nIGZsYWdzOworKworKwlvdXRwdXQgPSAmbGlu ZS0+b3V0cHV0OworKworKwlzcGluX2xvY2tfaXJxc2F2ZSgmbGluZS0+b3V0cHV0X2xvY2ssIGZs YWdzKTsKKysKKysJdmluX2J1Zl91cGRhdGVfb25fbmV3KGxpbmUsIG91dHB1dCwgYnVmKTsKKysK KysJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbGluZS0+b3V0cHV0X2xvY2ssIGZsYWdzKTsKKysK KysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgdmluX2ZsdXNoX2J1ZmZlcnMoc3RydWN0 IHN0ZmNhbXNzX3ZpZGVvICp2aWQsCisrCQkJICAgICBlbnVtIHZiMl9idWZmZXJfc3RhdGUgc3Rh dGUpCisreworKwlzdHJ1Y3QgdmluX2xpbmUgKmxpbmUgPSBjb250YWluZXJfb2YodmlkLCBzdHJ1 Y3QgdmluX2xpbmUsIHZpZGVvX291dCk7CisrCXN0cnVjdCB2aW5fb3V0cHV0ICpvdXRwdXQgPSAm bGluZS0+b3V0cHV0OworKwl1bnNpZ25lZCBsb25nIGZsYWdzOworKworKwlzcGluX2xvY2tfaXJx c2F2ZSgmbGluZS0+b3V0cHV0X2xvY2ssIGZsYWdzKTsKKysKKysJdmluX2J1Zl9mbHVzaChvdXRw dXQsIHN0YXRlKTsKKysJaWYgKG91dHB1dC0+YnVmWzBdKQorKwkJdmIyX2J1ZmZlcl9kb25lKCZv dXRwdXQtPmJ1ZlswXS0+dmIudmIyX2J1Ziwgc3RhdGUpOworKworKwlpZiAob3V0cHV0LT5idWZb MV0pCisrCQl2YjJfYnVmZmVyX2RvbmUoJm91dHB1dC0+YnVmWzFdLT52Yi52YjJfYnVmLCBzdGF0 ZSk7CisrCisrCWlmIChvdXRwdXQtPmxhc3RfYnVmZmVyKSB7CisrCQl2YjJfYnVmZmVyX2RvbmUo Jm91dHB1dC0+bGFzdF9idWZmZXItPnZiLnZiMl9idWYsIHN0YXRlKTsKKysJCW91dHB1dC0+bGFz dF9idWZmZXIgPSBOVUxMOworKwl9CisrCW91dHB1dC0+YnVmWzBdID0gTlVMTDsKKysJb3V0cHV0 LT5idWZbMV0gPSBOVUxMOworKworKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZsaW5lLT5vdXRw dXRfbG9jaywgZmxhZ3MpOworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCB2aW5fbGlu a19zZXR1cChzdHJ1Y3QgbWVkaWFfZW50aXR5ICplbnRpdHksCisrCQkJICBjb25zdCBzdHJ1Y3Qg bWVkaWFfcGFkICpsb2NhbCwKKysJCQkgIGNvbnN0IHN0cnVjdCBtZWRpYV9wYWQgKnJlbW90ZSwg dTMyIGZsYWdzKQorK3sKKysJaWYgKGZsYWdzICYgTUVESUFfTE5LX0ZMX0VOQUJMRUQpCisrCQlp ZiAobWVkaWFfcGFkX3JlbW90ZV9wYWRfZmlyc3QobG9jYWwpKQorKwkJCXJldHVybiAtRUJVU1k7 CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X3Zp ZGVvX29wcyB2aW5fdmlkZW9fb3BzID0geworKwkuc19zdHJlYW0gPSB2aW5fc2V0X3N0cmVhbSwK Kyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX29wcyB2aW5fcGFk X29wcyA9IHsKKysJLmVudW1fbWJ1c19jb2RlICAgPSB2aW5fZW51bV9tYnVzX2NvZGUsCisrCS5l bnVtX2ZyYW1lX3NpemUgID0gdmluX2VudW1fZnJhbWVfc2l6ZSwKKysJLmdldF9mbXQgICAgICAg ICAgPSB2aW5fZ2V0X2Zvcm1hdCwKKysJLnNldF9mbXQgICAgICAgICAgPSB2aW5fc2V0X2Zvcm1h dCwKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfb3BzIHZpbl92NGwy X29wcyA9IHsKKysJLnZpZGVvID0gJnZpbl92aWRlb19vcHMsCisrCS5wYWQgPSAmdmluX3BhZF9v cHMsCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X2ludGVybmFsX29w cyB2aW5fdjRsMl9pbnRlcm5hbF9vcHMgPSB7CisrCS5vcGVuID0gdmluX2luaXRfZm9ybWF0cywK Kyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW9fb3BzIHN0ZmNhbXNz X3Zpbl92aWRlb19vcHMgPSB7CisrCS5xdWV1ZV9idWZmZXIgPSB2aW5fcXVldWVfYnVmZmVyLAor KwkuZmx1c2hfYnVmZmVycyA9IHZpbl9mbHVzaF9idWZmZXJzLAorK307CisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBtZWRpYV9lbnRpdHlfb3BlcmF0aW9ucyB2aW5fbWVkaWFfb3BzID0geworKwku bGlua19zZXR1cCA9IHZpbl9saW5rX3NldHVwLAorKwkubGlua192YWxpZGF0ZSA9IHY0bDJfc3Vi ZGV2X2xpbmtfdmFsaWRhdGUsCisrfTsKKysKKytpbnQgc3RmX3Zpbl9yZWdpc3RlcihzdHJ1Y3Qg c3RmX3Zpbl9kZXYgKnZpbl9kZXYsIHN0cnVjdCB2NGwyX2RldmljZSAqdjRsMl9kZXYpCisrewor KwlzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkOworKwlzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVv X291dDsKKysJc3RydWN0IG1lZGlhX3BhZCAqcGFkczsKKysJaW50IHJldDsKKysJaW50IGk7Cisr CisrCWZvciAoaSA9IDA7IGkgPCBTVEZfSVNQX0xJTkVfTUFYICsgMTsgaSsrKSB7CisrCQljaGFy IG5hbWVbMzJdOworKwkJY2hhciAqc3ViX25hbWUgPSB2aW5fZ2V0X2xpbmVfc3ViZGV2bmFtZShp KTsKKysKKysJCXNkID0gJnZpbl9kZXYtPmxpbmVbaV0uc3ViZGV2OworKwkJcGFkcyA9IHZpbl9k ZXYtPmxpbmVbaV0ucGFkczsKKysJCXZpZGVvX291dCA9ICZ2aW5fZGV2LT5saW5lW2ldLnZpZGVv X291dDsKKysJCXZpZGVvX291dC0+aWQgPSBpOworKworKwkJdmluX2luaXRfb3V0cHV0cygmdmlu X2Rldi0+bGluZVtpXSk7CisrCisrCQl2NGwyX3N1YmRldl9pbml0KHNkLCAmdmluX3Y0bDJfb3Bz KTsKKysJCXNkLT5pbnRlcm5hbF9vcHMgPSAmdmluX3Y0bDJfaW50ZXJuYWxfb3BzOworKwkJc2Qt PmZsYWdzIHw9IFY0TDJfU1VCREVWX0ZMX0hBU19ERVZOT0RFOworKwkJc25wcmludGYoc2QtPm5h bWUsIEFSUkFZX1NJWkUoc2QtPm5hbWUpLCAiJXMlZF8lcyIsCisrCQkJIFNURl9WSU5fTkFNRSwg MCwgc3ViX25hbWUpOworKwkJdjRsMl9zZXRfc3ViZGV2ZGF0YShzZCwgJnZpbl9kZXYtPmxpbmVb aV0pOworKworKwkJcmV0ID0gdmluX2luaXRfZm9ybWF0cyhzZCwgTlVMTCk7CisrCQlpZiAocmV0 IDwgMCkgeworKwkJCWRldl9lcnIodmluX2Rldi0+c3RmY2Ftc3MtPmRldiwKKysJCQkJIkZhaWxl ZCB0byBpbml0IGZvcm1hdDogJWRcbiIsIHJldCk7CisrCQkJZ290byBlcnJfaW5pdDsKKysJCX0K KysKKysJCXBhZHNbU1RGX1ZJTl9QQURfU0lOS10uZmxhZ3MgPSBNRURJQV9QQURfRkxfU0lOSzsK KysJCXBhZHNbU1RGX1ZJTl9QQURfU1JDXS5mbGFncyA9IE1FRElBX1BBRF9GTF9TT1VSQ0U7Cisr CisrCQlzZC0+ZW50aXR5LmZ1bmN0aW9uID0KKysJCQlNRURJQV9FTlRfRl9QUk9DX1ZJREVPX1BJ WEVMX0ZPUk1BVFRFUjsKKysJCXNkLT5lbnRpdHkub3BzID0gJnZpbl9tZWRpYV9vcHM7CisrCQly ZXQgPSBtZWRpYV9lbnRpdHlfcGFkc19pbml0KCZzZC0+ZW50aXR5LAorKwkJCQkJICAgICBTVEZf VklOX1BBRFNfTlVNLCBwYWRzKTsKKysJCWlmIChyZXQgPCAwKSB7CisrCQkJZGV2X2Vycih2aW5f ZGV2LT5zdGZjYW1zcy0+ZGV2LAorKwkJCQkiRmFpbGVkIHRvIGluaXQgbWVkaWEgZW50aXR5OiAl ZFxuIiwKKysJCQkJcmV0KTsKKysJCQlnb3RvIGVycl9pbml0OworKwkJfQorKworKwkJcmV0ID0g djRsMl9kZXZpY2VfcmVnaXN0ZXJfc3ViZGV2KHY0bDJfZGV2LCBzZCk7CisrCQlpZiAocmV0IDwg MCkgeworKwkJCWRldl9lcnIodmluX2Rldi0+c3RmY2Ftc3MtPmRldiwKKysJCQkJIkZhaWxlZCB0 byByZWdpc3RlciBzdWJkZXY6ICVkXG4iLCByZXQpOworKwkJCWdvdG8gZXJyX3JlZ19zdWJkZXY7 CisrCQl9CisrCisrCQl2aWRlb19vdXQtPm9wcyA9ICZzdGZjYW1zc192aW5fdmlkZW9fb3BzOwor KwkJdmlkZW9fb3V0LT5icGxfYWxpZ25tZW50ID0gMTYgKiA4OworKworKwkJc25wcmludGYobmFt ZSwgQVJSQVlfU0laRShuYW1lKSwgIiVzXyVzJWQiLAorKwkJCSBzZC0+bmFtZSwgInZpZGVvIiwg aSk7CisrCQlyZXQgPSBzdGZfdmlkZW9fcmVnaXN0ZXIodmlkZW9fb3V0LCB2NGwyX2RldiwgbmFt ZSk7CisrCQlpZiAocmV0IDwgMCkgeworKwkJCWRldl9lcnIodmluX2Rldi0+c3RmY2Ftc3MtPmRl diwKKysJCQkJIkZhaWxlZCB0byByZWdpc3RlciB2aWRlbyBub2RlOiAlZFxuIiwgcmV0KTsKKysJ CQlnb3RvIGVycl92aWRfcmVnOworKwkJfQorKworKwkJcmV0ID0gbWVkaWFfY3JlYXRlX3BhZF9s aW5rKAorKwkJCSZzZC0+ZW50aXR5LCBTVEZfVklOX1BBRF9TUkMsCisrCQkJJnZpZGVvX291dC0+ dmRldi5lbnRpdHksIDAsCisrCQkJTUVESUFfTE5LX0ZMX0lNTVVUQUJMRSB8IE1FRElBX0xOS19G TF9FTkFCTEVEKTsKKysJCWlmIChyZXQgPCAwKSB7CisrCQkJZGV2X2Vycih2aW5fZGV2LT5zdGZj YW1zcy0+ZGV2LAorKwkJCQkiRmFpbGVkIHRvIGxpbmsgJXMtPiVzIGVudGl0aWVzOiAlZFxuIiwK KysJCQkJc2QtPmVudGl0eS5uYW1lLCB2aWRlb19vdXQtPnZkZXYuZW50aXR5Lm5hbWUsCisrCQkJ CXJldCk7CisrCQkJZ290byBlcnJfY3JlYXRlX2xpbms7CisrCQl9CisrCX0KKysKKysJcmV0dXJu IDA7CisrCisrZXJyX2NyZWF0ZV9saW5rOgorKwlzdGZfdmlkZW9fdW5yZWdpc3Rlcih2aWRlb19v dXQpOworK2Vycl92aWRfcmVnOgorKwl2NGwyX2RldmljZV91bnJlZ2lzdGVyX3N1YmRldihzZCk7 CisrZXJyX3JlZ19zdWJkZXY6CisrCW1lZGlhX2VudGl0eV9jbGVhbnVwKCZzZC0+ZW50aXR5KTsK KytlcnJfaW5pdDoKKysJZm9yIChpLS07IGkgPj0gMDsgaS0tKSB7CisrCQlzZCA9ICZ2aW5fZGV2 LT5saW5lW2ldLnN1YmRldjsKKysJCXZpZGVvX291dCA9ICZ2aW5fZGV2LT5saW5lW2ldLnZpZGVv X291dDsKKysKKysJCXN0Zl92aWRlb191bnJlZ2lzdGVyKHZpZGVvX291dCk7CisrCQl2NGwyX2Rl dmljZV91bnJlZ2lzdGVyX3N1YmRldihzZCk7CisrCQltZWRpYV9lbnRpdHlfY2xlYW51cCgmc2Qt PmVudGl0eSk7CisrCX0KKysJcmV0dXJuIHJldDsKKyt9CisrCisraW50IHN0Zl92aW5fdW5yZWdp c3RlcihzdHJ1Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYpCisreworKwlzdHJ1Y3QgdjRsMl9zdWJk ZXYgKnNkOworKwlzdHJ1Y3Qgc3RmY2Ftc3NfdmlkZW8gKnZpZGVvX291dDsKKysJaW50IGk7Cisr CisrCWZvciAoaSA9IDA7IGkgPCBTVEZfRFVNTVlfTU9EVUxFX05VTVM7IGkrKykKKysJCW11dGV4 X2Rlc3Ryb3koJnZpbl9kZXYtPmR1bW15X2J1ZmZlcltpXS5zdHJlYW1fbG9jayk7CisrCisrCWZv ciAoaSA9IDA7IGkgPCBTVEZfSVNQX0xJTkVfTUFYICsgMTsgaSsrKSB7CisrCQlzZCA9ICZ2aW5f ZGV2LT5saW5lW2ldLnN1YmRldjsKKysJCXZpZGVvX291dCA9ICZ2aW5fZGV2LT5saW5lW2ldLnZp ZGVvX291dDsKKysKKysJCXN0Zl92aWRlb191bnJlZ2lzdGVyKHZpZGVvX291dCk7CisrCQl2NGwy X2RldmljZV91bnJlZ2lzdGVyX3N1YmRldihzZCk7CisrCQltZWRpYV9lbnRpdHlfY2xlYW51cCgm c2QtPmVudGl0eSk7CisrCQltdXRleF9kZXN0cm95KCZ2aW5fZGV2LT5saW5lW2ldLnN0cmVhbV9s b2NrKTsKKysJfQorKwlyZXR1cm4gMDsKKyt9CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmluLmggYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3N0YXJmaXZlL2NhbXNzL3N0Zl92aW4uaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAwMDAwMC4uMjg1NzJlYjZhYmU0CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3N0YXJmaXZlL2NhbXNzL3N0Zl92aW4uaAorQEAgLTAsMCArMSwxNzMgQEAK KysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworKy8qCisrICogc3RmX3Zp bi5oCisrICoKKysgKiBTdGFyRml2ZSBDYW1lcmEgU3Vic3lzdGVtIC0gVklOIE1vZHVsZQorKyAq CisrICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0 ZC4KKysgKi8KKysKKysjaWZuZGVmIFNURl9WSU5fSAorKyNkZWZpbmUgU1RGX1ZJTl9ICisrCisr I2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorKyNpbmNsdWRlIDxsaW51eC9zcGlubG9ja190 eXBlcy5oPgorKyNpbmNsdWRlIDxtZWRpYS92NGwyLXN1YmRldi5oPgorKworKyNpbmNsdWRlICJz dGZfdmlkZW8uaCIKKysKKysjZGVmaW5lIFNZU0NPTlNBSUZfU1lTQ0ZHKHgpCSh4KQorKworKy8q IHN5c2NvbiBvZmZzZXQgMCAqLworKyNkZWZpbmUgVTBfVklOX0NORkdfQVhJX0RWUF9FTglCSVQo MikKKysKKysvKiBzeXNjb24gb2Zmc2V0IDIwICovCisrI2RlZmluZSBVMF9WSU5fQ0hBTk5FTF9T RUxfTUFTSwlHRU5NQVNLKDMsIDApCisrI2RlZmluZSBVMF9WSU5fQVhJV1IwX0VOCUJJVCg0KQor KyNkZWZpbmUgQ0hBTk5FTCh4KQkoKHgpIDw8IDApCisrCisrLyogc3lzY29uIG9mZnNldCAzMiAq LworKyNkZWZpbmUgVTBfVklOX0lOVFJfQ0xFQU4JQklUKDApCisrI2RlZmluZSBVMF9WSU5fSU5U Ul9NCUJJVCgxKQorKyNkZWZpbmUgVTBfVklOX1BJWF9DTlRfRU5EX01BU0sJR0VOTUFTSygxMiwg MikKKysjZGVmaW5lIFUwX1ZJTl9QSVhfQ1RfTUFTSwlHRU5NQVNLKDE0LCAxMykKKysjZGVmaW5l IFUwX1ZJTl9QSVhFTF9IRUlHSF9CSVRfU0VMX01BS1MJR0VOTUFTSygxNiwgMTUpCisrCisrI2Rl ZmluZSBQSVhfQ05UX0VORCh4KQkoKHgpIDw8IDIpCisrI2RlZmluZSBQSVhfQ1QoeCkJKCh4KSA8 PCAxMykKKysjZGVmaW5lIFBJWEVMX0hFSUdIX0JJVF9TRUwoeCkJKCh4KSA8PCAxNSkKKysKKysv KiBzeXNjb24gb2Zmc2V0IDM2ICovCisrI2RlZmluZSBVMF9WSU5fQ05GR19EVlBfSFNfUE9TCUJJ VCgxKQorKyNkZWZpbmUgVTBfVklOX0NORkdfRFZQX1NXQVBfRU4JQklUKDIpCisrI2RlZmluZSBV MF9WSU5fQ05GR19EVlBfVlNfUE9TCUJJVCgzKQorKyNkZWZpbmUgVTBfVklOX0NORkdfR0VOX0VO X0FYSVJECUJJVCg0KQorKyNkZWZpbmUgVTBfVklOX0NORkdfSVNQX0RWUF9FTjAJCUJJVCg1KQor KyNkZWZpbmUgVTBfVklOX01JUElfQllURV9FTl9JU1AwKG4pCSgobikgPDwgNikKKysjZGVmaW5l IFUwX1ZJTl9NSVBJX0NIQU5ORUxfU0VMMChuKQkoKG4pIDw8IDgpCisrI2RlZmluZSBVMF9WSU5f UF9JX01JUElfSEFFREVSX0VOMChuKQkoKG4pIDw8IDEyKQorKyNkZWZpbmUgVTBfVklOX1BJWF9O VU0obikJKChuKSA8PCAxMykKKysjZGVmaW5lIFUwX1ZJTl9NSVBJX0JZVEVfRU5fSVNQMF9NQVNL CUdFTk1BU0soNywgNikKKysjZGVmaW5lIFUwX1ZJTl9NSVBJX0NIQU5ORUxfU0VMMF9NQVNLCUdF Tk1BU0soMTEsIDgpCisrI2RlZmluZSBVMF9WSU5fUF9JX01JUElfSEFFREVSX0VOMF9NQVNLCUJJ VCgxMikKKysjZGVmaW5lIFUwX1ZJTl9QSVhfTlVNX01BU0sJR0VOTUFTSygxNiwgMTMpCisrCisr I2RlZmluZSBTVEZfVklOX1BBRF9TSU5LICAgMAorKyNkZWZpbmUgU1RGX1ZJTl9QQURfU1JDICAg IDEKKysjZGVmaW5lIFNURl9WSU5fUEFEU19OVU0gICAyCisrCisrI2RlZmluZSBJU1BfRFVNTVlf QlVGRkVSX05VTVMgIFNURl9JU1BfUEFEX01BWAorKyNkZWZpbmUgVklOX0RVTU1ZX0JVRkZFUl9O VU1TICAxCisrCisrZW51bSB7CisrCVNURl9EVU1NWV9WSU4sCisrCVNURl9EVU1NWV9JU1AsCisr CVNURl9EVU1NWV9NT0RVTEVfTlVNUywKKyt9OworKworK2VudW0gbGluayB7CisrCUxJTktfRVJS T1IgPSAtMSwKKysJTElOS19EVlBfVE9fV1IsCisrCUxJTktfRFZQX1RPX0lTUCwKKysJTElOS19D U0lfVE9fV1IsCisrCUxJTktfQ1NJX1RPX0lTUCwKKyt9OworKworK3N0cnVjdCB2aW5fZm9ybWF0 IHsKKysJdTMyIGNvZGU7CisrCXU4IGJwcDsKKyt9OworKworK3N0cnVjdCB2aW5fZm9ybWF0X3Rh YmxlIHsKKysJY29uc3Qgc3RydWN0IHZpbl9mb3JtYXQgKmZtdHM7CisrCWludCBuZm10czsKKyt9 OworKworK2VudW0gdmluX291dHB1dF9zdGF0ZSB7CisrCVZJTl9PVVRQVVRfT0ZGLAorKwlWSU5f T1VUUFVUX1JFU0VSVkVELAorKwlWSU5fT1VUUFVUX1NJTkdMRSwKKysJVklOX09VVFBVVF9DT05U SU5VT1VTLAorKwlWSU5fT1VUUFVUX0lETEUsCisrCVZJTl9PVVRQVVRfU1RPUFBJTkcKKyt9Owor KworK3N0cnVjdCB2aW5fb3V0cHV0IHsKKysJaW50IGFjdGl2ZV9idWY7CisrCXN0cnVjdCBzdGZj YW1zc19idWZmZXIgKmJ1ZlsyXTsKKysJc3RydWN0IHN0ZmNhbXNzX2J1ZmZlciAqbGFzdF9idWZm ZXI7CisrCXN0cnVjdCBsaXN0X2hlYWQgcGVuZGluZ19idWZzOworKwlzdHJ1Y3QgbGlzdF9oZWFk IHJlYWR5X2J1ZnM7CisrCWVudW0gdmluX291dHB1dF9zdGF0ZSBzdGF0ZTsKKysJdW5zaWduZWQg aW50IHNlcXVlbmNlOworKwl1bnNpZ25lZCBpbnQgZnJhbWVfc2tpcDsKKyt9OworKworKy8qIFRo ZSB2aW4gb3V0cHV0IGxpbmVzICovCisrZW51bSB2aW5fbGluZV9pZCB7CisrCVZJTl9MSU5FX05P TkUgPSAtMSwKKysJVklOX0xJTkVfV1IgPSAwLAorKwlWSU5fTElORV9JU1AsCisrCVZJTl9MSU5F X01BWCwKKyt9OworKworK3N0cnVjdCB2aW5fbGluZSB7CisrCWVudW0gdmluX2xpbmVfaWQgaWQ7 CisrCXN0cnVjdCB2NGwyX3N1YmRldiBzdWJkZXY7CisrCXN0cnVjdCBtZWRpYV9wYWQgcGFkc1tT VEZfVklOX1BBRFNfTlVNXTsKKysJc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCBmbXRbU1RGX1ZJ Tl9QQURTX05VTV07CisrCXN0cnVjdCBzdGZjYW1zc192aWRlbyB2aWRlb19vdXQ7CisrCXN0cnVj dCBtdXRleCBzdHJlYW1fbG9jazsJLyogc2VyaWFsaXplIHN0cmVhbSBjb250cm9sICovCisrCWlu dCBzdHJlYW1fY291bnQ7CisrCXN0cnVjdCB2aW5fb3V0cHV0IG91dHB1dDsJLyogcGlwZWxpbmUg YW5kIHN0cmVhbSBzdGF0ZXMgKi8KKysJc3BpbmxvY2tfdCBvdXRwdXRfbG9jazsKKysJY29uc3Qg c3RydWN0IHZpbl9mb3JtYXQgKmZvcm1hdHM7CisrCXVuc2lnbmVkIGludCBuZm9ybWF0czsKKyt9 OworKworK3N0cnVjdCB2aW5fZHVtbXlfYnVmZmVyIHsKKysJZG1hX2FkZHJfdCBwYWRkclszXTsK KysJdm9pZCAqdmFkZHI7CisrCXUzMiBidWZmZXJfc2l6ZTsKKysJdTMyIHdpZHRoOworKwl1MzIg aGVpZ2h0OworKwl1MzIgbWNvZGU7CisrfTsKKysKKytzdHJ1Y3QgZHVtbXlfYnVmZmVyIHsKKysJ c3RydWN0IHZpbl9kdW1teV9idWZmZXIgKmJ1ZmZlcjsKKysJdTMyIG51bXM7CisrCXN0cnVjdCBt dXRleCBzdHJlYW1fbG9jazsJLyogcHJvdGVjdHMgYnVmZmVyIGRhdGEgKi8KKysJaW50IHN0cmVh bV9jb3VudDsKKysJYXRvbWljX3QgZnJhbWVfc2tpcDsKKyt9OworKworK3N0cnVjdCB2aW5faXNy X29wcyB7CisrCXZvaWQgKCppc3JfYnVmZmVyX2RvbmUpKHN0cnVjdCB2aW5fbGluZSAqbGluZSk7 CisrCXZvaWQgKCppc3JfY2hhbmdlX2J1ZmZlcikoc3RydWN0IHZpbl9saW5lICpsaW5lKTsKKyt9 OworKworK3N0cnVjdCBzdGZfdmluX2RldiB7CisrCXN0cnVjdCBzdGZjYW1zcyAqc3RmY2Ftc3M7 CisrCXN0cnVjdCB2aW5fbGluZSBsaW5lW1ZJTl9MSU5FX01BWF07CisrCXN0cnVjdCBkdW1teV9i dWZmZXIgZHVtbXlfYnVmZmVyW1NURl9EVU1NWV9NT0RVTEVfTlVNU107CisrCXN0cnVjdCB2aW5f aXNyX29wcyAqaXNyX29wczsKKysJYXRvbWljX3QgcmVmX2NvdW50OworK307CisrCisraW50IHN0 Zl92aW5fd3Jfc3RyZWFtX3NldChzdHJ1Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYpOworK2ludCBz dGZfdmluX3N0cmVhbV9zZXQoc3RydWN0IHN0Zl92aW5fZGV2ICp2aW5fZGV2LCBlbnVtIGxpbmsg bGluayk7Cisrdm9pZCBzdGZfdmluX3dyX2lycV9lbmFibGUoc3RydWN0IHN0Zl92aW5fZGV2ICp2 aW5fZGV2LCBpbnQgZW5hYmxlKTsKKyt2b2lkIHN0Zl92aW5fd3Jfc2V0X3BpbmdfYWRkcihzdHJ1 Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYsIGRtYV9hZGRyX3QgYWRkcik7Cisrdm9pZCBzdGZfdmlu X3dyX3NldF9wb25nX2FkZHIoc3RydWN0IHN0Zl92aW5fZGV2ICp2aW5fZGV2LCBkbWFfYWRkcl90 IGFkZHIpOworK3ZvaWQgc3RmX3Zpbl9pc3Bfc2V0X3l1dl9hZGRyKHN0cnVjdCBzdGZfdmluX2Rl diAqdmluX2RldiwKKysJCQkgICAgICBkbWFfYWRkcl90IHlfYWRkciwgZG1hX2FkZHJfdCB1dl9h ZGRyKTsKKytpcnFyZXR1cm5fdCBzdGZfdmluX3dyX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQg KnByaXYpOworK2lycXJldHVybl90IHN0Zl92aW5faXNwX2lycV9oYW5kbGVyKGludCBpcnEsIHZv aWQgKnByaXYpOworK2lycXJldHVybl90IHN0Zl92aW5faXNwX2lycV9jc2lsaW5lX2hhbmRsZXIo aW50IGlycSwgdm9pZCAqcHJpdik7CisraW50IHN0Zl92aW5fc3ViZGV2X2luaXQoc3RydWN0IHN0 ZmNhbXNzICpzdGZjYW1zcyk7CisraW50IHN0Zl92aW5fcmVnaXN0ZXIoc3RydWN0IHN0Zl92aW5f ZGV2ICp2aW5fZGV2LCBzdHJ1Y3QgdjRsMl9kZXZpY2UgKnY0bDJfZGV2KTsKKytpbnQgc3RmX3Zp bl91bnJlZ2lzdGVyKHN0cnVjdCBzdGZfdmluX2RldiAqdmluX2Rldik7CisrZW51bSBpc3BfcGFk X2lkIHN0Zl92aW5fbWFwX2lzcF9wYWQoZW51bSB2aW5fbGluZV9pZCBsaW5lLCBlbnVtIGlzcF9w YWRfaWQgZGVmKTsKKysKKysjZW5kaWYgLyogU1RGX1ZJTl9IICovCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmluX2h3X29wcy5jIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdGFyZml2ZS9jYW1zcy9zdGZfdmluX2h3X29wcy5jCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi43YmQzMjY1MTI4ZDAKKy0tLSAv ZGV2L251bGwKKysrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RhcmZpdmUvY2Ftc3Mvc3Rm X3Zpbl9od19vcHMuYworQEAgLTAsMCArMSwxOTIgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAorKy8qCisrICogc3RmX3Zpbl9od19vcHMuYworKyAqCisrICogUmVnaXN0 ZXIgaW50ZXJmYWNlIGZpbGUgZm9yIFN0YXJGaXZlIFZJTiBtb2R1bGUgZHJpdmVyCisrICoKKysg KiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMyBTdGFyRml2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgor KyAqLworKyNpbmNsdWRlICJzdGZfY2Ftc3MuaCIKKysKKytzdGF0aWMgdm9pZCB2aW5faW50cl9j bGVhcihzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzKQorK3sKKysJc3RmX3N5c2Nvbl9yZWdfc2V0 X2JpdChzdGZjYW1zcywgU1lTQ09OU0FJRl9TWVNDRkcoMjgpLAorKwkJCSAgICAgICBVMF9WSU5f SU5UUl9DTEVBTik7CisrCXN0Zl9zeXNjb25fcmVnX2NsZWFyX2JpdChzdGZjYW1zcywgU1lTQ09O U0FJRl9TWVNDRkcoMjgpLAorKwkJCQkgVTBfVklOX0lOVFJfQ0xFQU4pOworK30KKysKKytpcnFy ZXR1cm5fdCBzdGZfdmluX3dyX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnByaXYpCisrewor KwlzdHJ1Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYgPSBwcml2OworKwlzdHJ1Y3Qgc3RmY2Ftc3Mg KnN0ZmNhbXNzID0gdmluX2Rldi0+c3RmY2Ftc3M7CisrCXN0cnVjdCBkdW1teV9idWZmZXIgKmR1 bW15X2J1ZmZlciA9CisrCQkJJnZpbl9kZXYtPmR1bW15X2J1ZmZlcltTVEZfRFVNTVlfVklOXTsK KysKKysJaWYgKGF0b21pY19kZWNfaWZfcG9zaXRpdmUoJmR1bW15X2J1ZmZlci0+ZnJhbWVfc2tp cCkgPCAwKSB7CisrCQl2aW5fZGV2LT5pc3Jfb3BzLT5pc3JfY2hhbmdlX2J1ZmZlcigmdmluX2Rl di0+bGluZVtWSU5fTElORV9XUl0pOworKwkJdmluX2Rldi0+aXNyX29wcy0+aXNyX2J1ZmZlcl9k b25lKCZ2aW5fZGV2LT5saW5lW1ZJTl9MSU5FX1dSXSk7CisrCX0KKysKKysJdmluX2ludHJfY2xl YXIoc3RmY2Ftc3MpOworKworKwlyZXR1cm4gSVJRX0hBTkRMRUQ7CisrfQorKworK2lycXJldHVy bl90IHN0Zl92aW5faXNwX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnByaXYpCisreworKwlz dHJ1Y3Qgc3RmX3Zpbl9kZXYgKnZpbl9kZXYgPSBwcml2OworKwl1MzIgaW50X3N0YXR1czsKKysK KysJaW50X3N0YXR1cyA9IHN0Zl9pc3BfcmVnX3JlYWQodmluX2Rldi0+c3RmY2Ftc3MsIElTUF9S RUdfSVNQX0NUUkxfMCk7CisrCisrCWlmIChpbnRfc3RhdHVzICYgSVNQQ19JTlRTKSB7CisrCQlp ZiAoKGludF9zdGF0dXMgJiBJU1BDX0VOVU8pKQorKwkJCXZpbl9kZXYtPmlzcl9vcHMtPmlzcl9i dWZmZXJfZG9uZSgKKysJCQkJJnZpbl9kZXYtPmxpbmVbVklOX0xJTkVfSVNQXSk7CisrCisrCQkv KiBjbGVhciBpbnRlcnJ1cHQgKi8KKysJCXN0Zl9pc3BfcmVnX3dyaXRlKHZpbl9kZXYtPnN0ZmNh bXNzLAorKwkJCQkgIElTUF9SRUdfSVNQX0NUUkxfMCwKKysJCQkJICAoaW50X3N0YXR1cyAmIH5F Tl9JTlRfQUxMKSB8CisrCQkJCSAgRU5fSU5UX0lTUF9ET05FIHwKKysJCQkJICBFTl9JTlRfQ1NJ X0RPTkUgfAorKwkJCQkgIEVOX0lOVF9TQ19ET05FKTsKKysJfQorKworKwlyZXR1cm4gSVJRX0hB TkRMRUQ7CisrfQorKworK2lycXJldHVybl90IHN0Zl92aW5faXNwX2lycV9jc2lsaW5lX2hhbmRs ZXIoaW50IGlycSwgdm9pZCAqcHJpdikKKyt7CisrCXN0cnVjdCBzdGZfdmluX2RldiAqdmluX2Rl diA9IHByaXY7CisrCXN0cnVjdCBzdGZfaXNwX2RldiAqaXNwX2RldjsKKysJdTMyIGludF9zdGF0 dXM7CisrCisrCWlzcF9kZXYgPSAmdmluX2Rldi0+c3RmY2Ftc3MtPmlzcF9kZXY7CisrCisrCWlu dF9zdGF0dXMgPSBzdGZfaXNwX3JlZ19yZWFkKHZpbl9kZXYtPnN0ZmNhbXNzLCBJU1BfUkVHX0lT UF9DVFJMXzApOworKwlpZiAoaW50X3N0YXR1cyAmIElTUENfU0NGRUlOVCkgeworKwkJc3RydWN0 IGR1bW15X2J1ZmZlciAqZHVtbXlfYnVmZmVyID0KKysJCQkmdmluX2Rldi0+ZHVtbXlfYnVmZmVy W1NURl9EVU1NWV9JU1BdOworKworKwkJaWYgKGF0b21pY19kZWNfaWZfcG9zaXRpdmUoJmR1bW15 X2J1ZmZlci0+ZnJhbWVfc2tpcCkgPCAwKSB7CisrCQkJaWYgKChpbnRfc3RhdHVzICYgSVNQQ19F TlVPKSkKKysJCQkJdmluX2Rldi0+aXNyX29wcy0+aXNyX2NoYW5nZV9idWZmZXIoCisrCQkJCQkm dmluX2Rldi0+bGluZVtWSU5fTElORV9JU1BdKTsKKysJCX0KKysKKysJCXN0Zl9pc3BfcmVnX3Nl dF9iaXQoaXNwX2Rldi0+c3RmY2Ftc3MsIElTUF9SRUdfQ1NJSU5UUywKKysJCQkJICAgIENTSV9J TlRTX01BU0ssIENTSV9JTlRTKDB4MykpOworKwkJc3RmX2lzcF9yZWdfc2V0X2JpdChpc3BfZGV2 LT5zdGZjYW1zcywgSVNQX1JFR19JRVNIRCwKKysJCQkJICAgIFNIQURfVVBfTSB8IFNIQURfVVBf RU4sIDB4Myk7CisrCisrCQkvKiBjbGVhciBpbnRlcnJ1cHQgKi8KKysJCXN0Zl9pc3BfcmVnX3dy aXRlKHZpbl9kZXYtPnN0ZmNhbXNzLCBJU1BfUkVHX0lTUF9DVFJMXzAsCisrCQkJCSAgKGludF9z dGF0dXMgJiB+RU5fSU5UX0FMTCkgfCBFTl9JTlRfTElORV9JTlQpOworKwl9CisrCisrCXJldHVy biBJUlFfSEFORExFRDsKKyt9CisrCisraW50IHN0Zl92aW5fd3Jfc3RyZWFtX3NldChzdHJ1Y3Qg c3RmX3Zpbl9kZXYgKnZpbl9kZXYpCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3MgKnN0ZmNhbXNzID0g dmluX2Rldi0+c3RmY2Ftc3M7CisrCisrCXN0Zl9zeXNjb25fcmVnX3NldF9iaXQoc3RmY2Ftc3Ms IFNZU0NPTlNBSUZfU1lTQ0ZHKDIwKSwKKysJCQkgICAgICAgVTBfVklOX0FYSVdSMF9FTik7Cisr CisrCXJldHVybiAwOworK30KKysKKytpbnQgc3RmX3Zpbl9zdHJlYW1fc2V0KHN0cnVjdCBzdGZf dmluX2RldiAqdmluX2RldiwgZW51bSBsaW5rIGxpbmspCisreworKwlzdHJ1Y3Qgc3RmY2Ftc3Mg KnN0ZmNhbXNzID0gdmluX2Rldi0+c3RmY2Ftc3M7CisrCXUzMiB2YWw7CisrCisrCXN3aXRjaCAo bGluaykgeworKwljYXNlIExJTktfQ1NJX1RPX1dSOgorKwkJdmFsID0gc3RmX3N5c2Nvbl9yZWdf cmVhZChzdGZjYW1zcywgU1lTQ09OU0FJRl9TWVNDRkcoMjApKTsKKysJCXZhbCAmPSB+VTBfVklO X0NIQU5ORUxfU0VMX01BU0s7CisrCQl2YWwgfD0gQ0hBTk5FTCgwKTsKKysJCXN0Zl9zeXNjb25f cmVnX3dyaXRlKHN0ZmNhbXNzLCBTWVNDT05TQUlGX1NZU0NGRygyMCksIHZhbCk7CisrCisrCQl2 YWwgPSBzdGZfc3lzY29uX3JlZ19yZWFkKHN0ZmNhbXNzLCBTWVNDT05TQUlGX1NZU0NGRygyOCkp OworKwkJdmFsICY9IH5VMF9WSU5fUElYX0NUX01BU0s7CisrCQl2YWwgfD0gUElYX0NUKDEpOwor KworKwkJdmFsICY9IH5VMF9WSU5fUElYRUxfSEVJR0hfQklUX1NFTF9NQUtTOworKwkJdmFsIHw9 IFBJWEVMX0hFSUdIX0JJVF9TRUwoMCk7CisrCisrCQl2YWwgJj0gflUwX1ZJTl9QSVhfQ05UX0VO RF9NQVNLOworKwkJdmFsIHw9IFBJWF9DTlRfRU5EKElNQUdFX01BWF9XSURUSCAvIDQgLSAxKTsK KysKKysJCXN0Zl9zeXNjb25fcmVnX3dyaXRlKHN0ZmNhbXNzLCBTWVNDT05TQUlGX1NZU0NGRygy OCksIHZhbCk7CisrCQlicmVhazsKKysJY2FzZSBMSU5LX0NTSV9UT19JU1A6CisrCQl2YWwgPSBz dGZfc3lzY29uX3JlZ19yZWFkKHN0ZmNhbXNzLCBTWVNDT05TQUlGX1NZU0NGRygzNikpOworKwkJ dmFsICY9IH5VMF9WSU5fTUlQSV9CWVRFX0VOX0lTUDBfTUFTSzsKKysJCXZhbCB8PSBVMF9WSU5f TUlQSV9CWVRFX0VOX0lTUDAoMCk7CisrCisrCQl2YWwgJj0gflUwX1ZJTl9NSVBJX0NIQU5ORUxf U0VMMF9NQVNLOworKwkJdmFsIHw9IFUwX1ZJTl9NSVBJX0NIQU5ORUxfU0VMMCgwKTsKKysKKysJ CXZhbCAmPSB+VTBfVklOX1BJWF9OVU1fTUFTSzsKKysJCXZhbCB8PSBVMF9WSU5fUElYX05VTSgw KTsKKysKKysJCXZhbCAmPSB+VTBfVklOX1BfSV9NSVBJX0hBRURFUl9FTjBfTUFTSzsKKysJCXZh bCB8PSBVMF9WSU5fUF9JX01JUElfSEFFREVSX0VOMCgxKTsKKysKKysJCXN0Zl9zeXNjb25fcmVn X3dyaXRlKHN0ZmNhbXNzLCBTWVNDT05TQUlGX1NZU0NGRygzNiksIHZhbCk7CisrCQlicmVhazsK KysJY2FzZSBMSU5LX0RWUF9UT19XUjoKKysJY2FzZSBMSU5LX0RWUF9UT19JU1A6CisrCWRlZmF1 bHQ6CisrCQlyZXR1cm4gLUVJTlZBTDsKKysJfQorKworKwlyZXR1cm4gMDsKKyt9CisrCisrdm9p ZCBzdGZfdmluX3dyX2lycV9lbmFibGUoc3RydWN0IHN0Zl92aW5fZGV2ICp2aW5fZGV2LCBpbnQg ZW5hYmxlKQorK3sKKysJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcyA9IHZpbl9kZXYtPnN0ZmNh bXNzOworKworKwlpZiAoZW5hYmxlKSB7CisrCQlzdGZfc3lzY29uX3JlZ19jbGVhcl9iaXQoc3Rm Y2Ftc3MsIFNZU0NPTlNBSUZfU1lTQ0ZHKDI4KSwKKysJCQkJCSBVMF9WSU5fSU5UUl9NKTsKKysJ fSBlbHNlIHsKKysJCS8qIGNsZWFyIHZpbiBpbnRlcnJ1cHQgKi8KKysJCXN0Zl9zeXNjb25fcmVn X3NldF9iaXQoc3RmY2Ftc3MsIFNZU0NPTlNBSUZfU1lTQ0ZHKDI4KSwKKysJCQkJICAgICAgIFUw X1ZJTl9JTlRSX0NMRUFOKTsKKysJCXN0Zl9zeXNjb25fcmVnX2NsZWFyX2JpdChzdGZjYW1zcywg U1lTQ09OU0FJRl9TWVNDRkcoMjgpLAorKwkJCQkJIFUwX1ZJTl9JTlRSX0NMRUFOKTsKKysJCXN0 Zl9zeXNjb25fcmVnX3NldF9iaXQoc3RmY2Ftc3MsIFNZU0NPTlNBSUZfU1lTQ0ZHKDI4KSwKKysJ CQkJICAgICAgIFUwX1ZJTl9JTlRSX00pOworKwl9CisrfQorKworK3ZvaWQgc3RmX3Zpbl93cl9z ZXRfcGluZ19hZGRyKHN0cnVjdCBzdGZfdmluX2RldiAqdmluX2RldiwgZG1hX2FkZHJfdCBhZGRy KQorK3sKKysJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcyA9IHZpbl9kZXYtPnN0ZmNhbXNzOwor KworKwkvKiBzZXQgdGhlIHN0YXJ0IGFkZHJlc3MgKi8KKysJc3RmX3N5c2Nvbl9yZWdfd3JpdGUo c3RmY2Ftc3MsIFNZU0NPTlNBSUZfU1lTQ0ZHKDMyKSwgKGxvbmcpYWRkcik7CisrfQorKworK3Zv aWQgc3RmX3Zpbl93cl9zZXRfcG9uZ19hZGRyKHN0cnVjdCBzdGZfdmluX2RldiAqdmluX2Rldiwg ZG1hX2FkZHJfdCBhZGRyKQorK3sKKysJc3RydWN0IHN0ZmNhbXNzICpzdGZjYW1zcyA9IHZpbl9k ZXYtPnN0ZmNhbXNzOworKworKwkvKiBzZXQgdGhlIHN0YXJ0IGFkZHJlc3MgKi8KKysJc3RmX3N5 c2Nvbl9yZWdfd3JpdGUoc3RmY2Ftc3MsIFNZU0NPTlNBSUZfU1lTQ0ZHKDI0KSwgKGxvbmcpYWRk cik7CisrfQorKworK3ZvaWQgc3RmX3Zpbl9pc3Bfc2V0X3l1dl9hZGRyKHN0cnVjdCBzdGZfdmlu X2RldiAqdmluX2RldiwKKysJCQkgICAgICBkbWFfYWRkcl90IHlfYWRkciwgZG1hX2FkZHJfdCB1 dl9hZGRyKQorK3sKKysJc3RmX2lzcF9yZWdfd3JpdGUodmluX2Rldi0+c3RmY2Ftc3MsCisrCQkJ ICBJU1BfUkVHX1lfUExBTkVfU1RBUlRfQUREUiwgeV9hZGRyKTsKKysJc3RmX2lzcF9yZWdfd3Jp dGUodmluX2Rldi0+c3RmY2Ftc3MsCisrCQkJICBJU1BfUkVHX1VWX1BMQU5FX1NUQVJUX0FERFIs IHV2X2FkZHIpOworK30KKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2 LjQvcGF0Y2hlcy8wMDUwLWR0LWJpbmRpbmdzLWRpc3BsYXktQWRkLXlhbWxzLWZvci1KSDcxMTAt ZGlzcGxheS1zdWIucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1MC1kdC1iaW5k aW5ncy1kaXNwbGF5LUFkZC15YW1scy1mb3ItSkg3MTEwLWRpc3BsYXktc3ViLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjhjNjUzNTVmOGZhMzQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1MC1kdC1iaW5kaW5ncy1k aXNwbGF5LUFkZC15YW1scy1mb3ItSkg3MTEwLWRpc3BsYXktc3ViLnBhdGNoCkBAIC0wLDAgKzEs MzAwIEBACitGcm9tIDFmMmYyOTA4NWNjOWFkZmYyNjM1YjBhMzkxYWZjM2Y3MDEzM2I4NTQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLZWl0aCBaaGFvIDxrZWl0aC56aGFvQHN0YXJm aXZldGVjaC5jb20+CitEYXRlOiBGcmksIDIgSnVuIDIwMjMgMTU6NDA6MzUgKzA4MDAKK1N1Ympl Y3Q6IFtQQVRDSCA1MC83Ml0gZHQtYmluZGluZ3M6IGRpc3BsYXk6IEFkZCB5YW1scyBmb3IgSkg3 MTEwIGRpc3BsYXkKKyBzdWJzeXN0ZW0KKworQWRkIGJpbmRpbmdzIGZvciBKSDcxMTAgZGlzcGxh eSBzdWJzeXN0ZW0gd2hpY2gKK2hhcyBhIGRpc3BsYXkgY29udHJvbGxlciB2ZXJpc2lsaWNvbiBk YzgyMDAKK2FuZCBhbiBIRE1JIGludGVyZmFjZS4KKworU2lnbmVkLW9mZi1ieTogS2VpdGggWmhh byA8a2VpdGguemhhb0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgLi4uL2Rpc3BsYXkvdmVyaXNp bGljb24vc3RhcmZpdmUtaGRtaS55YW1sICAgIHwgIDkzICsrKysrKysrKysrKysrKworIC4uLi9k aXNwbGF5L3ZlcmlzaWxpY29uL3ZlcmlzaWxpY29uLWRjLnlhbWwgICB8IDExMCArKysrKysrKysr KysrKysrKysKKyAuLi4vZGlzcGxheS92ZXJpc2lsaWNvbi92ZXJpc2lsaWNvbi1kcm0ueWFtbCAg fCAgNDIgKysrKysrKworIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZlbmRvci1wcmVmaXhlcy55 YW1sICB8ICAgMiArCisgNCBmaWxlcyBjaGFuZ2VkLCAyNDcgaW5zZXJ0aW9ucygrKQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS92 ZXJpc2lsaWNvbi9zdGFyZml2ZS1oZG1pLnlhbWwKKyBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvdmVyaXNpbGljb24vdmVyaXNpbGlj b24tZGMueWFtbAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvZGlzcGxheS92ZXJpc2lsaWNvbi92ZXJpc2lsaWNvbi1kcm0ueWFtbAorCitkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvdmVyaXNp bGljb24vc3RhcmZpdmUtaGRtaS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2Rpc3BsYXkvdmVyaXNpbGljb24vc3RhcmZpdmUtaGRtaS55YW1sCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5jMzBiNzk1NGEzNTUKKy0tLSAvZGV2L251bGwK KysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3ZlcmlzaWxp Y29uL3N0YXJmaXZlLWhkbWkueWFtbAorQEAgLTAsMCArMSw5MyBAQAorKyMgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlKQorKyVZQU1MIDEuMgor Ky0tLQorKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS92ZXJpc2ls aWNvbi9zdGFyZml2ZS1oZG1pLnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3Jn L21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEhETUkgdHJhbnNt aXRlcgorKworK2Rlc2NyaXB0aW9uOgorKyAgVGhlIFN0YXJGaXZlIFNvQyB1c2VzIHRoZSBIRE1J IHNpZ25hbCB0cmFuc21pdGVyIGJhc2VkIG9uIGlubm9zaWxpY29uIElQCisrICB0byBnZW5lcmF0 ZSBIRE1JIHNpZ25hbCBmcm9tIGl0cyBpbnB1dCBhbmQgdHJhbnNtaXQgdGhlIHNpZ25hbCB0byB0 aGUgc2NyZWVuLgorKworK21haW50YWluZXJzOgorKyAgLSBLZWl0aCBaaGFvIDxrZWl0aC56aGFv QHN0YXJmaXZldGVjaC5jb20+CisrICAtIFNoZW5nWWFuZyBDaGVuIDxzaGVuZ3lhbmcuY2hlbkBz dGFyZml2ZXRlY2guY29tPgorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBj b25zdDogc3RhcmZpdmUsaGRtaQorKworKyAgcmVnOgorKyAgICBtaW5JdGVtczogMQorKworKyAg aW50ZXJydXB0czoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogVGhlIEhETUkg aG90IHBsdWcgZGV0ZWN0aW9uIGludGVycnVwdC4KKysKKysgIGNsb2NrczoKKysgICAgaXRlbXM6 CisrICAgICAgLSBkZXNjcmlwdGlvbjogU3lzdGVtIGNsb2NrIG9mIEhETUkgbW9kdWxlLgorKyAg ICAgIC0gZGVzY3JpcHRpb246IE1jbGsgY2xvY2sgb2YgSERNSSBhdWRpby4KKysgICAgICAtIGRl c2NyaXB0aW9uOiBCY2xrIGNsb2NrIG9mIEhETUkgYXVkaW8uCisrICAgICAgLSBkZXNjcmlwdGlv bjogUGl4ZWwgY2xvY2sgZ2VuZXJhdGVkIGJ5IEhETUkgbW9kdWxlLgorKworKyAgY2xvY2stbmFt ZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHN5c2NsaworKyAgICAgIC0gY29uc3Q6 IG1jbGsKKysgICAgICAtIGNvbnN0OiBiY2xrCisrICAgICAgLSBjb25zdDogcGNsaworKworKyAg cmVzZXRzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBSZXNldCBmb3IgSERN SSBtb2R1bGUuCisrCisrICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25z dDogaGRtaV90eAorKworKyAgJyNzb3VuZC1kYWktY2VsbHMnOgorKyAgICBjb25zdDogMAorKwor KyAgcG9ydDoKKysgICAgJHJlZjogL3NjaGVtYXMvZ3JhcGgueWFtbCMvcHJvcGVydGllcy9wb3J0 CisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFBvcnQgbm9kZSB3aXRoIG9uZSBlbmRwb2ludCBj b25uZWN0ZWQgdG8gYSBkaXNwbGF5IGNvbm5lY3RvciBub2RlLgorKworK3JlcXVpcmVkOgorKyAg LSBjb21wYXRpYmxlCisrICAtIHJlZworKyAgLSBpbnRlcnJ1cHRzCisrICAtIGNsb2NrcworKyAg LSBjbG9jay1uYW1lcworKyAgLSByZXNldHMKKysgIC0gcmVzZXQtbmFtZXMKKysgIC0gJyNzb3Vu ZC1kYWktY2VsbHMnCisrICAtIHBvcnQKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UK KysKKytleGFtcGxlczoKKysgIC0gfAorKyAgICBoZG1pOiBoZG1pQDI5NTkwMDAwIHsKKysgICAg ICBjb21wYXRpYmxlID0gInN0YXJmaXZlLGhkbWkiOworKyAgICAgIHJlZyA9IDwweDI5NTkwMDAw IDB4NDAwMD47CisrICAgICAgaW50ZXJydXB0cyA9IDw5OT47CisrICAgICAgY2xvY2tzID0gPCZ2 b3V0Y3JnIDE3PiwKKysgICAgICAgICAgICAgICA8JnZvdXRjcmcgMTU+LAorKyAgICAgICAgICAg ICAgIDwmdm91dGNyZyAxNj4sCisrICAgICAgICAgICAgICAgPCZoZG1pdHgwX3BpeGVsY2xrPjsK KysgICAgICBjbG9jay1uYW1lcyA9ICJzeXNjbGsiLCAibWNsayIsImJjbGsiLCJwY2xrIjsKKysg ICAgICByZXNldHMgPSA8JnZvdXRjcmcgOT47CisrICAgICAgcmVzZXQtbmFtZXMgPSAiaGRtaV90 eCI7CisrICAgICAgI3NvdW5kLWRhaS1jZWxscyA9IDwwPjsKKysgICAgICBoZG1pX2luOiBwb3J0 IHsKKysgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47CisrICAgICAgICAgICNzaXplLWNl bGxzID0gPDA+OworKyAgICAgICAgICBoZG1pX2lucHV0OiBlbmRwb2ludEAwIHsKKysgICAgICAg ICAgICByZWcgPSA8MD47CisrICAgICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZkY19vdXRf ZHBpMD47CisrICAgICAgICAgIH07CisrICAgICAgfTsKKysgICAgfTsKK2RpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS92ZXJpc2lsaWNvbi92ZXJp c2lsaWNvbi1kYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3Bs YXkvdmVyaXNpbGljb24vdmVyaXNpbGljb24tZGMueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAwMC4uMTMyMjUwMmM0Y2RlCistLS0gL2Rldi9udWxsCisrKysgYi9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS92ZXJpc2lsaWNvbi92ZXJp c2lsaWNvbi1kYy55YW1sCitAQCAtMCwwICsxLDExMCBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlKQorKyVZQU1MIDEuMgorKy0tLQor KyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZGlzcGxheS92ZXJpc2lsaWNvbi92 ZXJpc2lsaWNvbi1kYy55YW1sIworKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRh LXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxlOiBTdGFyRml2ZSBkaXNwbGF5IGNvbnRyb2xs ZXIKKysKKytkZXNjcmlwdGlvbjoKKysgIFRoZSBTdGFyRml2ZSBTb0MgdXNlcyB0aGUgZGlzcGxh eSBjb250cm9sbGVyIGJhc2VkIG9uIFZlcmlzaWxpY29uIElQCisrICB0byB0cmFuc2ZlciB0aGUg aW1hZ2UgZGF0YSBmcm9tIGEgdmlkZW8gbWVtb3J5CisrICBidWZmZXIgdG8gYW4gZXh0ZXJuYWwg TENEIGludGVyZmFjZS4KKysKKyttYWludGFpbmVyczoKKysgIC0gS2VpdGggWmhhbyA8a2VpdGgu emhhb0BzdGFyZml2ZXRlY2guY29tPgorKyAgLSBTaGVuZ1lhbmcgQ2hlbiA8c2hlbmd5YW5nLmNo ZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKysKKytwcm9wZXJ0aWVzOgorKyAgY29tcGF0aWJsZToKKysg ICAgY29uc3Q6IHZlcmlzaWxpY29uLGRjODIwMAorKworKyAgcmVnOgorKyAgICBtYXhJdGVtczog MworKworKyAgaW50ZXJydXB0czoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjog VGhlIGludGVycnVwdCB3aWxsIGJlIGdlbmVyYXRlZCB3aGVuIERDIGZpbmlzaCBvbmUgZnJhbWUK KysKKysgIGNsb2NrczoKKysgICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogQ2xvY2sg Zm9yIGRpc3BsYXkgc3lzdGVtIG5vYyBidXMuCisrICAgICAgLSBkZXNjcmlwdGlvbjogUGl4ZWwg Y2xvY2sgZm9yIGRpc3BsYXkgY2hhbm5lbCAwLgorKyAgICAgIC0gZGVzY3JpcHRpb246IFBpeGVs IGNsb2NrIGZvciBkaXNwbGF5IGNoYW5uZWwgMS4KKysgICAgICAtIGRlc2NyaXB0aW9uOiBDbG9j ayBmb3IgYXhpIGludGVyZmFjZSBvZiBkaXNwbGF5IGNvbnRyb2xsZXIuCisrICAgICAgLSBkZXNj cmlwdGlvbjogQ29yZSBjbG9jayBmb3IgZGlzcGxheSBjb250cm9sbGVyLgorKyAgICAgIC0gZGVz Y3JpcHRpb246IENsb2NrIGZvciBhaGIgaW50ZXJmYWNlIG9mIGRpc3BsYXkgY29udHJvbGxlci4K KysgICAgICAtIGRlc2NyaXB0aW9uOiBFeHRlcm5hbCBIRE1JIHBpeGVsIGNsb2NrLgorKyAgICAg IC0gZGVzY3JpcHRpb246IFBhcmVudCBjbG9jayBmb3IgcGl4ZWwgY2xvY2sKKysKKysgIGNsb2Nr LW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0OiBjbGtfdm91dF9ub2NfZGlzcAor KyAgICAgIC0gY29uc3Q6IGNsa192b3V0X3BpeDAKKysgICAgICAtIGNvbnN0OiBjbGtfdm91dF9w aXgxCisrICAgICAgLSBjb25zdDogY2xrX3ZvdXRfYXhpCisrICAgICAgLSBjb25zdDogY2xrX3Zv dXRfY29yZQorKyAgICAgIC0gY29uc3Q6IGNsa192b3V0X3ZvdXRfYWhiCisrICAgICAgLSBjb25z dDogaGRtaXR4MF9waXhlbAorKyAgICAgIC0gY29uc3Q6IGNsa192b3V0X2RjODIwMAorKworKyAg cmVzZXRzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRlc2NyaXB0aW9uOiBSZXNldCBmb3IgYXhp IGludGVyZmFjZSBvZiBkaXNwbGF5IGNvbnRyb2xsZXIuCisrICAgICAgLSBkZXNjcmlwdGlvbjog UmVzZXQgZm9yIGFoYiBpbnRlcmZhY2Ugb2YgZGlzcGxheSBjb250cm9sbGVyLgorKyAgICAgIC0g ZGVzY3JpcHRpb246IENvcmUgcmVzZXQgb2YgZGlzcGxheSBjb250cm9sbGVyLgorKworKyAgcmVz ZXQtbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHJzdF92b3V0X2F4aQorKyAg ICAgIC0gY29uc3Q6IHJzdF92b3V0X2FoYgorKyAgICAgIC0gY29uc3Q6IHJzdF92b3V0X2NvcmUK KysKKysgIHBvcnQ6CisrICAgICRyZWY6IC9zY2hlbWFzL2dyYXBoLnlhbWwjL3Byb3BlcnRpZXMv cG9ydAorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBQb3J0IG5vZGUgd2l0aCBvbmUgZW5kcG9p bnQgY29ubmVjdGVkIHRvIGEgaGRtaSBub2RlLgorKworK3JlcXVpcmVkOgorKyAgLSBjb21wYXRp YmxlCisrICAtIHJlZworKyAgLSBpbnRlcnJ1cHRzCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1u YW1lcworKyAgLSByZXNldHMKKysgIC0gcmVzZXQtbmFtZXMKKysgIC0gcG9ydAorKworK2FkZGl0 aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQorKworK2V4YW1wbGVzOgorKyAgLSB8CisrICAgIGRjODIw MDogZGM4MjAwQDI5NDAwMDAwIHsKKysgICAgICBjb21wYXRpYmxlID0gInZlcmlzaWxpY29uLGRj ODIwMCI7CisrICAgICAgcmVnID0gPDB4Mjk0MDAwMDAgMHgxMDA+LAorKyAgICAgICAgICAgIDww eDI5NDAwODAwIDB4MjAwMD4sCisrICAgICAgICAgICAgPDB4Mjk1QjAwMDAgMHg5MD47CisrICAg ICAgaW50ZXJydXB0cyA9IDw5NT47CisrICAgICAgY2xvY2tzID0gPCZzeXNjcmcgNjA+LAorKyAg ICAgICAgICAgICAgIDwmdm91dGNyZyA3PiwKKysgICAgICAgICAgICAgICA8JnZvdXRjcmcgOD4s CisrICAgICAgICAgICAgICAgPCZ2b3V0Y3JnIDQ+LAorKyAgICAgICAgICAgICAgIDwmdm91dGNy ZyA1PiwKKysgICAgICAgICAgICAgICA8JnZvdXRjcmcgNj4sCisrICAgICAgICAgICAgICAgPCZo ZG1pdHgwX3BpeGVsY2xrPiwKKysgICAgICAgICAgICAgICA8JnZvdXRjcmcgMT47CisrICAgICAg Y2xvY2stbmFtZXMgPSAiY2xrX3ZvdXRfbm9jX2Rpc3AiLCAiY2xrX3ZvdXRfcGl4MCIsICJjbGtf dm91dF9waXgxIiwgImNsa192b3V0X2F4aSIsCisrICAgICAgICAgICAgICAgICAgICAiY2xrX3Zv dXRfY29yZSIsICJjbGtfdm91dF92b3V0X2FoYiIsICJoZG1pdHgwX3BpeGVsIiwiY2xrX3ZvdXRf ZGM4MjAwIjsKKysgICAgICByZXNldHMgPSA8JnZvdXRjcmcgMD4sCisrICAgICAgICAgICAgICAg PCZ2b3V0Y3JnIDE+LAorKyAgICAgICAgICAgICAgIDwmdm91dGNyZyAyPjsKKysgICAgICByZXNl dC1uYW1lcyA9ICJyc3Rfdm91dF9heGkiLCJyc3Rfdm91dF9haGIiLCJyc3Rfdm91dF9jb3JlIjsK KysgICAgICBkY19vdXQ6IHBvcnQgeworKyAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwxPjsK KysgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47CisrICAgICAgICAgIGRjX291dF9kcGkwOiBl bmRwb2ludEAwIHsKKysgICAgICAgICAgICAgIHJlZyA9IDwwPjsKKysgICAgICAgICAgICAgIHJl bW90ZS1lbmRwb2ludCA9IDwmaGRtaV9pbnB1dD47CisrICAgICAgICAgIH07CisrICAgICAgfTsK KysgICAgfTsKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv ZGlzcGxheS92ZXJpc2lsaWNvbi92ZXJpc2lsaWNvbi1kcm0ueWFtbCBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3ZlcmlzaWxpY29uL3ZlcmlzaWxpY29uLWRybS55 YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi5hZWQ4ZDRhZjJj NTUKKy0tLSAvZGV2L251bGwKKysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9kaXNwbGF5L3ZlcmlzaWxpY29uL3ZlcmlzaWxpY29uLWRybS55YW1sCitAQCAtMCwwICsxLDQy IEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1D bGF1c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2No ZW1hcy9kaXNwbGF5L3ZlcmlzaWxpY29uL3ZlcmlzaWxpY29uLWRybS55YW1sIworKyRzY2hlbWE6 IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sIworKworK3RpdGxl OiBWZXJpc2lsaWNvbiBEUk0gbWFzdGVyIGRldmljZQorKworK21haW50YWluZXJzOgorKyAgLSBL ZWl0aCBaaGFvIDxrZWl0aC56aGFvQHN0YXJmaXZldGVjaC5jb20+CisrICAtIFNoZW5nWWFuZyBD aGVuIDxzaGVuZ3lhbmcuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorKworK2Rlc2NyaXB0aW9uOiB8 CisrICBUaGUgVmVyaXNpbGljb24gRFJNIG1hc3RlciBkZXZpY2UgaXMgYSB2aXJ0dWFsIGRldmlj ZSBuZWVkZWQgdG8gbGlzdCBhbGwKKysgIGRpc3BsYXkgY29udHJvbGxlciBvciBvdGhlciBkaXNw bGF5IGludGVyZmFjZSBub2RlcyB0aGF0IGNvbXByaXNlIHRoZQorKyAgZ3JhcGhpY3Mgc3Vic3lz dGVtLgorKworK3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogdmVyaXNp bGljb24sZGlzcGxheS1zdWJzeXN0ZW0KKysKKysgIHBvcnRzOgorKyAgICAkcmVmOiAvc2NoZW1h cy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlLWFycmF5CisrICAgIGl0ZW1zOgorKyAg ICAgIG1heEl0ZW1zOiAxCisrICAgIGRlc2NyaXB0aW9uOiB8CisrICAgICAgU2hvdWxkIGNvbnRh aW4gYSBsaXN0IG9mIHBoYW5kbGVzIHBvaW50aW5nIHRvIGRpc3BsYXkgaW50ZXJmYWNlIHBvcnRz CisrICAgICAgb2YgZGlzcGxheSBjb250cm9sbGVyIGRldmljZXMuIERpc3BsYXkgY29udHJvbGxl ciBkZWZpbml0aW9ucyBhcyBkZWZpbmVkIGluCisrICAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL2Rpc3BsYXkvdmVyaXNpbGljb24vdmVyaXNpbGljb24tZGMueWFtbAorKwor K3JlcXVpcmVkOgorKyAgLSBjb21wYXRpYmxlCisrICAtIHBvcnRzCisrCisrYWRkaXRpb25hbFBy b3BlcnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgZGlzcGxheS1zdWJz eXN0ZW0geworKyAgICAgICAgY29tcGF0aWJsZSA9ICJ2ZXJpc2lsaWNvbixkaXNwbGF5LXN1YnN5 c3RlbSI7CisrICAgICAgICBwb3J0cyA9IDwmZGNfb3V0PjsKKysgICAgfTsKK2RpZmYgLS1naXQg YS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwg Yi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwK K2luZGV4IDgyZDM5YWIwMjMxYi4uNTJjMDRmZDA5OGJlIDEwMDY0NAorLS0tIGEvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZlbmRvci1wcmVmaXhlcy55YW1sCisrKysgYi9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmVuZG9yLXByZWZpeGVzLnlhbWwKK0BAIC0x NDM2LDYgKzE0MzYsOCBAQCBwYXR0ZXJuUHJvcGVydGllczoKKyAgICAgZGVzY3JpcHRpb246IFZh cmlzY2l0ZSBMdGQuCisgICAiXnZkbCwuKiI6CisgICAgIGRlc2NyaXB0aW9uOiBWYW4gZGVyIExh YW4gYi52LgorKyAgIl52ZXJpc2lsaWNvbiwuKiI6CisrICAgIGRlc2NyaXB0aW9uOiBWZXJpc2ls aWNvbiBUZWNobm9sb2dpZXMsIEluYy4KKyAgICJedmVydGV4Y29tLC4qIjoKKyAgICAgZGVzY3Jp cHRpb246IFZlcnRleGNvbSBUZWNobm9sb2dpZXMsIEluYy4KKyAgICJedmlhLC4qIjoKKy0tIAor Mi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDUxLWRybS12 ZXJpc2lsaWNvbi1BZGQtYmFzaWMtZHJtLWRyaXZlci5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQv cGF0Y2hlcy8wMDUxLWRybS12ZXJpc2lsaWNvbi1BZGQtYmFzaWMtZHJtLWRyaXZlci5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lMmIzOTk0ZTY3ZTA5Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTEtZHJtLXZlcmlz aWxpY29uLUFkZC1iYXNpYy1kcm0tZHJpdmVyLnBhdGNoCkBAIC0wLDAgKzEsNTgxIEBACitGcm9t IDE1YTYyYWQ1NDgwOTY5NDc3OTIxMmQ0YmNkZmU4ZjA2NWI1Y2Q5ZTUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBLZWl0aCBaaGFvIDxrZWl0aC56aGFvQHN0YXJmaXZldGVjaC5jb20+ CitEYXRlOiBGcmksIDIgSnVuIDIwMjMgMTU6NDA6MzcgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1 MS83Ml0gZHJtL3ZlcmlzaWxpY29uOiBBZGQgYmFzaWMgZHJtIGRyaXZlcgorCitBZGQgYSBiYXNp YyBwbGF0Zm9ybSBkcml2ZXIgb2YgdGhlIERSTSBkcml2ZXIgZm9yIEpINzExMCBTb0MuCisKK1Np Z25lZC1vZmYtYnk6IEtlaXRoIFpoYW8gPGtlaXRoLnpoYW9Ac3RhcmZpdmV0ZWNoLmNvbT4KKy0t LQorIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgICAgICB8ICAgMiArCisgZHJpdmVy cy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgIHwgICAxICsKKyBkcml2ZXJzL2dwdS9kcm0v dmVyaXNpbGljb24vS2NvbmZpZyAgfCAgMTMgKysKKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGlj b24vTWFrZWZpbGUgfCAgIDYgKworIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYu YyB8IDI4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBkcml2ZXJzL2dwdS9kcm0vdmVy aXNpbGljb24vdnNfZHJ2LmggfCAgNDggKysrKysKKyBpbmNsdWRlL3VhcGkvZHJtL2RybV9mb3Vy Y2MuaCAgICAgICAgfCAgODMgKysrKysrKysKKyBpbmNsdWRlL3VhcGkvZHJtL3ZzX2RybS5oICAg ICAgICAgICAgfCAgNTAgKysrKysKKyA4IGZpbGVzIGNoYW5nZWQsIDQ4NyBpbnNlcnRpb25zKCsp CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmln CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9NYWtlZmls ZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2 LmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Ry di5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9kcm0vdnNfZHJtLmgKKworZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25m aWcKK2luZGV4IGJhM2ZiMDRiYjY5MS4uZjdlNDYxZmE0NjU2IDEwMDY0NAorLS0tIGEvZHJpdmVy cy9ncHUvZHJtL0tjb25maWcKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCitAQCAtMzcx LDYgKzM3MSw4IEBAIHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZyIKKyAK KyBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9zcHJkL0tjb25maWciCisgCisrc291cmNlICJkcml2 ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vS2NvbmZpZyIKKysKKyBjb25maWcgRFJNX0hZUEVSVgor IAl0cmlzdGF0ZSAiRFJNIFN1cHBvcnQgZm9yIEh5cGVyLVYgc3ludGhldGljIHZpZGVvIGRldmlj ZSIKKyAJZGVwZW5kcyBvbiBEUk0gJiYgUENJICYmIE1NVSAmJiBIWVBFUlYKK2RpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKK2lu ZGV4IGEzMzI1N2QyYmM3Zi4uZTUwNjIyZWU0ZTQ2IDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUv ZHJtL01ha2VmaWxlCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKK0BAIC0xOTQsMyAr MTk0LDQgQEAgb2JqLXkJCQkrPSBndWQvCisgb2JqLSQoQ09ORklHX0RSTV9IWVBFUlYpICs9IGh5 cGVydi8KKyBvYmoteQkJCSs9IHNvbG9tb24vCisgb2JqLSQoQ09ORklHX0RSTV9TUFJEKSArPSBz cHJkLworK29iai0kKENPTkZJR19EUk1fVkVSSVNJTElDT04pICs9IHZlcmlzaWxpY29uLworZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnIGIvZHJpdmVycy9n cHUvZHJtL3ZlcmlzaWxpY29uL0tjb25maWcKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMDAuLjg5ZDEyMTg1ZjczYgorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9n cHUvZHJtL3ZlcmlzaWxpY29uL0tjb25maWcKK0BAIC0wLDAgKzEsMTMgQEAKKysjIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrCisrY29uZmlnIERSTV9WRVJJU0lMSUNPTgorKwl0 cmlzdGF0ZSAiRFJNIFN1cHBvcnQgZm9yIFZlcmlTaWxpY29uIgorKwlkZXBlbmRzIG9uIERSTQor KwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKysJc2VsZWN0IENNQQorKwlzZWxlY3QgRE1BX0NNQQor KwloZWxwCisrCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgVmVyaVNpbGljb24g c29jIGNoaXBzZXQuCisrCSAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgVmVyaVNpbGljb24ga2VybmVs IG1vZGUKKysJICBzZXR0aW5nIGFuZCBidWZmZXIgbWFuYWdlbWVudC4gSXQgZG9lcyBub3QKKysJ ICBwcm92aWRlIDJEIG9yIDNEIGFjY2VsZXJhdGlvbi4KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdmVyaXNpbGljb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24v TWFrZWZpbGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjY0Y2Ux YjI2NTQ2YworLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L01ha2VmaWxlCitAQCAtMCwwICsxLDYgQEAKKysjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wCisrCisrdnNfZHJtLW9ianMgOj0gdnNfZHJ2Lm8KKysKKytvYmotJChDT05GSUdfRFJN X1ZFUklTSUxJQ09OKSArPSB2c19kcm0ubworKworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92ZXJpc2lsaWNvbi92c19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19k cnYuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uMjRkMzMzNTk4 NDc3CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNf ZHJ2LmMKK0BAIC0wLDAgKzEsMjg0IEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAKKysvKgorKyAqIENvcHlyaWdodCAoQykgMjAyMyBWZXJpU2lsaWNvbiBIb2xkaW5ncyBD by4sIEx0ZC4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxp bnV4L2NvbXBvbmVudC5oPgorKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorKyNpbmNsdWRlIDxs aW51eC9kbWEtbWFwcGluZy5oPgorKyNpbmNsdWRlIDxsaW51eC9pb21tdS5oPgorKyNpbmNsdWRl IDxsaW51eC9vZl9ncmFwaC5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9yZXNlcnZlZF9tZW0uaD4K KysjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5o PgorKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisrCisrI2luY2x1ZGUgPGRybS9kcm1fYXBl cnR1cmUuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisrI2luY2x1ZGUgPGRybS9kcm1f Y3J0Y19oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisrI2luY2x1ZGUg PGRybS9kcm1fZHJ2Lmg+CisrI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CisrI2luY2x1 ZGUgPGRybS9kcm1fZmJkZXZfZ2VuZXJpYy5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4K KysjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5o PgorKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CisrI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4K KysjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV92 YmxhbmsuaD4KKysKKysjaW5jbHVkZSAidnNfZHJ2LmgiCisrCisrI2RlZmluZSBEUlZfTkFNRQki c3RhcmZpdmUiCisrI2RlZmluZSBEUlZfREVTQwkiU3RhcmZpdmUgRFJNIGRyaXZlciIKKysjZGVm aW5lIERSVl9EQVRFCSIyMDIzMDUxNjEiCisrI2RlZmluZSBEUlZfTUFKT1IJMQorKyNkZWZpbmUg RFJWX01JTk9SCTAKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2c19kcm1fcGxh dGZvcm1fZHJpdmVyOworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZv cHMgPSB7CisrCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCisrCS5vcGVuCQkJPSBkcm1fb3BlbiwK KysJLnJlbGVhc2UJCT0gZHJtX3JlbGVhc2UsCisrCS51bmxvY2tlZF9pb2N0bAk9IGRybV9pb2N0 bCwKKysJLmNvbXBhdF9pb2N0bAk9IGRybV9jb21wYXRfaW9jdGwsCisrCS5wb2xsCQkJPSBkcm1f cG9sbCwKKysJLnJlYWQJCQk9IGRybV9yZWFkLAorK307CisrCisrc3RhdGljIHN0cnVjdCBkcm1f ZHJpdmVyIHZzX2RybV9kcml2ZXIgPSB7CisrCS5kcml2ZXJfZmVhdHVyZXMJPSBEUklWRVJfTU9E RVNFVCB8IERSSVZFUl9BVE9NSUMgfCBEUklWRVJfR0VNLAorKwkubGFzdGNsb3NlCQk9IGRybV9m Yl9oZWxwZXJfbGFzdGNsb3NlLAorKwkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmlt ZV9oYW5kbGVfdG9fZmQsCisrCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2Zk X3RvX2hhbmRsZSwKKysJLmZvcHMJCQk9ICZmb3BzLAorKwkubmFtZQkJCT0gRFJWX05BTUUsCisr CS5kZXNjCQkJPSBEUlZfREVTQywKKysJLmRhdGUJCQk9IERSVl9EQVRFLAorKwkubWFqb3IJCQk9 IERSVl9NQUpPUiwKKysJLm1pbm9yCQkJPSBEUlZfTUlOT1IsCisrfTsKKysKKyt2b2lkIHZzX2Ry bV91cGRhdGVfcGl0Y2hfYWxpZ25tZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAorKwkJ CQkgICB1bnNpZ25lZCBpbnQgYWxpZ25tZW50KQorK3sKKysJc3RydWN0IHZzX2RybV9wcml2YXRl ICpwcml2ID0gZHJtX2Rldi0+ZGV2X3ByaXZhdGU7CisrCisrCWlmIChhbGlnbm1lbnQgPiBwcml2 LT5waXRjaF9hbGlnbm1lbnQpCisrCQlwcml2LT5waXRjaF9hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7 CisrfQorKworK3N0YXRpYyBpbnQgdnNfZHJtX2JpbmQoc3RydWN0IGRldmljZSAqZGV2KQorK3sK KysJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXY7CisrCXN0cnVjdCB2c19kcm1fcHJpdmF0ZSAq cHJpdjsKKysJaW50IHJldDsKKysJc3RhdGljIHU2NCBkbWFfbWFzayA9IERNQV9CSVRfTUFTSyg0 MCk7CisrCisrCS8qIFJlbW92ZSBleGlzdGluZyBkcml2ZXJzIHRoYXQgbWF5IG93biB0aGUgZnJh bWVidWZmZXIgbWVtb3J5LiAqLworKwlyZXQgPSBkcm1fYXBlcnR1cmVfcmVtb3ZlX2ZyYW1lYnVm ZmVycyhmYWxzZSwgJnZzX2RybV9kcml2ZXIpOworKwlpZiAocmV0KSB7CisrCQlEUk1fREVWX0VS Uk9SKGRldiwKKysJCQkgICAgICAiRmFpbGVkIHRvIHJlbW92ZSBleGlzdGluZyBmcmFtZWJ1ZmZl cnMgLSAlZC5cbiIsCisrCQkJICAgICAgcmV0KTsKKysJCXJldHVybiByZXQ7CisrCX0KKysKKysJ ZHJtX2RldiA9IGRybV9kZXZfYWxsb2MoJnZzX2RybV9kcml2ZXIsIGRldik7CisrCWlmIChJU19F UlIoZHJtX2RldikpCisrCQlyZXR1cm4gUFRSX0VSUihkcm1fZGV2KTsKKysKKysJZGV2X3NldF9k cnZkYXRhKGRldiwgZHJtX2Rldik7CisrCisrCXByaXYgPSBkZXZtX2t6YWxsb2MoZHJtX2Rldi0+ ZGV2LCBzaXplb2Yoc3RydWN0IHZzX2RybV9wcml2YXRlKSwKKysJCQkgICAgR0ZQX0tFUk5FTCk7 CisrCWlmICghcHJpdikgeworKwkJcmV0ID0gLUVOT01FTTsKKysJCWdvdG8gZXJyX3B1dF9kZXY7 CisrCX0KKysKKysJcHJpdi0+cGl0Y2hfYWxpZ25tZW50ID0gNjQ7CisrCXByaXYtPmRtYV9kZXYg PSBkcm1fZGV2LT5kZXY7CisrCXByaXYtPmRtYV9kZXYtPmNvaGVyZW50X2RtYV9tYXNrID0gZG1h X21hc2s7CisrCWRybV9kZXYtPmRldl9wcml2YXRlID0gcHJpdjsKKysKKysJZHJtX21vZGVfY29u ZmlnX2luaXQoZHJtX2Rldik7CisrCisrCS8qIE5vdyB0cnkgYW5kIGJpbmQgYWxsIG91ciBzdWIt Y29tcG9uZW50cyAqLworKwlyZXQgPSBjb21wb25lbnRfYmluZF9hbGwoZGV2LCBkcm1fZGV2KTsK KysJaWYgKHJldCkKKysJCWdvdG8gZXJyX21vZGU7CisrCisrCXJldCA9IGRybV92YmxhbmtfaW5p dChkcm1fZGV2LCBkcm1fZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0Yyk7CisrCWlmIChyZXQpCisr CQlnb3RvIGVycl9iaW5kOworKworKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZHJtX2Rldik7Cisr CisrCWRybV9rbXNfaGVscGVyX3BvbGxfaW5pdChkcm1fZGV2KTsKKysKKysJcmV0ID0gZHJtX2Rl dl9yZWdpc3Rlcihkcm1fZGV2LCAwKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2hlbHBlcjsK KysKKysJZHJtX2ZiZGV2X2dlbmVyaWNfc2V0dXAoZHJtX2RldiwgMzIpOworKworKwlyZXR1cm4g MDsKKysKKytlcnJfaGVscGVyOgorKwlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZHJtX2Rldik7 CisrZXJyX2JpbmQ6CisrCWNvbXBvbmVudF91bmJpbmRfYWxsKGRybV9kZXYtPmRldiwgZHJtX2Rl dik7CisrZXJyX21vZGU6CisrCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKGRybV9kZXYpOworKwlp ZiAocHJpdi0+ZG9tYWluKQorKwkJaW9tbXVfZG9tYWluX2ZyZWUocHJpdi0+ZG9tYWluKTsKKytl cnJfcHV0X2RldjoKKysJZHJtX2Rldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOworKwlkZXZfc2V0X2Ry dmRhdGEoZGV2LCBOVUxMKTsKKysJZHJtX2Rldl9wdXQoZHJtX2Rldik7CisrCXJldHVybiByZXQ7 CisrfQorKworK3N0YXRpYyB2b2lkIHZzX2RybV91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2KQor K3sKKysJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsK KysJc3RydWN0IHZzX2RybV9wcml2YXRlICpwcml2ID0gZHJtX2Rldi0+ZGV2X3ByaXZhdGU7Cisr CisrCWRybV9kZXZfdW5yZWdpc3Rlcihkcm1fZGV2KTsKKysKKysJZHJtX2ttc19oZWxwZXJfcG9s bF9maW5pKGRybV9kZXYpOworKworKwljb21wb25lbnRfdW5iaW5kX2FsbChkcm1fZGV2LT5kZXYs IGRybV9kZXYpOworKworKwlkcm1fbW9kZV9jb25maWdfY2xlYW51cChkcm1fZGV2KTsKKysKKysJ aWYgKHByaXYtPmRvbWFpbikgeworKwkJaW9tbXVfZG9tYWluX2ZyZWUocHJpdi0+ZG9tYWluKTsK KysJCXByaXYtPmRvbWFpbiA9IE5VTEw7CisrCX0KKysKKysJZHJtX2Rldi0+ZGV2X3ByaXZhdGUg PSBOVUxMOworKwlkZXZfc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKKysJZHJtX2Rldl9wdXQoZHJt X2Rldik7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X21hc3Rlcl9vcHMg dnNfZHJtX29wcyA9IHsKKysJLmJpbmQgPSB2c19kcm1fYmluZCwKKysJLnVuYmluZCA9IHZzX2Ry bV91bmJpbmQsCisrfTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJtX3N1 Yl9kcml2ZXJzW10gPSB7CisrfTsKKysKKysjZGVmaW5lIE5VTV9EUk1fRFJJVkVSUyBcCisrCShz aXplb2YoZHJtX3N1Yl9kcml2ZXJzKSAvIHNpemVvZihzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICop KQorKworK3N0YXRpYyBpbnQgY29tcGFyZV9kZXYoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpk YXRhKQorK3sKKysJcmV0dXJuIGRldiA9PSAoc3RydWN0IGRldmljZSAqKWRhdGE7CisrfQorKwor K3N0YXRpYyBzdHJ1Y3QgY29tcG9uZW50X21hdGNoICp2c19kcm1fbWF0Y2hfYWRkKHN0cnVjdCBk ZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1hdGNoID0gTlVMTDsK KysJaW50IGk7CisrCisrCWZvciAoaSA9IDA7IGkgPCBOVU1fRFJNX0RSSVZFUlM7ICsraSkgewor KwkJc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2ID0gZHJtX3N1Yl9kcml2ZXJzW2ldOworKwkJ c3RydWN0IGRldmljZSAqcCA9IE5VTEwsICpkOworKworKwkJd2hpbGUgKChkID0gcGxhdGZvcm1f ZmluZF9kZXZpY2VfYnlfZHJpdmVyKHAsICZkcnYtPmRyaXZlcikpKSB7CisrCQkJcHV0X2Rldmlj ZShwKTsKKysKKysJCQljb21wb25lbnRfbWF0Y2hfYWRkKGRldiwgJm1hdGNoLCBjb21wYXJlX2Rl diwgZCk7CisrCQkJcCA9IGQ7CisrCQl9CisrCQlwdXRfZGV2aWNlKHApOworKwl9CisrCisrCXJl dHVybiBtYXRjaCA/OiBFUlJfUFRSKC1FTk9ERVYpOworK30KKysKKytzdGF0aWMgaW50IHZzX2Ry bV9wbGF0Zm9ybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3Ry dWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKysJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAq bWF0Y2g7CisrCisrCW1hdGNoID0gdnNfZHJtX21hdGNoX2FkZChkZXYpOworKwlpZiAoSVNfRVJS KG1hdGNoKSkKKysJCXJldHVybiBQVFJfRVJSKG1hdGNoKTsKKysKKysJcmV0dXJuIGNvbXBvbmVu dF9tYXN0ZXJfYWRkX3dpdGhfbWF0Y2goZGV2LCAmdnNfZHJtX29wcywgbWF0Y2gpOworK30KKysK KytzdGF0aWMgaW50IHZzX2RybV9wbGF0Zm9ybV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKKyt7CisrCWNvbXBvbmVudF9tYXN0ZXJfZGVsKCZwZGV2LT5kZXYsICZ2c19kcm1f b3BzKTsKKysJcmV0dXJuIDA7CisrfQorKworKyNpZmRlZiBDT05GSUdfUE1fU0xFRVAKKytzdGF0 aWMgaW50IHZzX2RybV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBk cm1fZGV2aWNlICpkcm0gPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJcmV0dXJuIGRybV9t b2RlX2NvbmZpZ19oZWxwZXJfc3VzcGVuZChkcm0pOworK30KKysKKytzdGF0aWMgaW50IHZzX2Ry bV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IGRybV9kZXZpY2UgKmRy bSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hl bHBlcl9yZXN1bWUoZHJtKTsKKyt9CisrI2VuZGlmCisrCisrc3RhdGljIFNJTVBMRV9ERVZfUE1f T1BTKHZzX2RybV9wbV9vcHMsIHZzX2RybV9zdXNwZW5kLCB2c19kcm1fcmVzdW1lKTsKKysKKytz dGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB2c19kcm1fZHRfaWRzW10gPSB7CisrCXsg LmNvbXBhdGlibGUgPSAidmVyaXNpbGljb24sZGlzcGxheS1zdWJzeXN0ZW0iLCB9LAorK307Cisr CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdnNfZHJtX2R0X2lkcyk7CisrCisrc3RhdGljIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdnNfZHJtX3BsYXRmb3JtX2RyaXZlciA9IHsKKysJLnByb2Jl ID0gdnNfZHJtX3BsYXRmb3JtX3Byb2JlLAorKwkucmVtb3ZlID0gdnNfZHJtX3BsYXRmb3JtX3Jl bW92ZSwKKysKKysJLmRyaXZlciA9IHsKKysJCS5uYW1lID0gRFJWX05BTUUsCisrCQkub2ZfbWF0 Y2hfdGFibGUgPSB2c19kcm1fZHRfaWRzLAorKwkJLnBtID0gJnZzX2RybV9wbV9vcHMsCisrCX0s CisrfTsKKysKKytzdGF0aWMgaW50IF9faW5pdCB2c19kcm1faW5pdCh2b2lkKQorK3sKKysJaW50 IHJldDsKKysKKysJcmV0ID0gcGxhdGZvcm1fcmVnaXN0ZXJfZHJpdmVycyhkcm1fc3ViX2RyaXZl cnMsIE5VTV9EUk1fRFJJVkVSUyk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwly ZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnZzX2RybV9wbGF0Zm9ybV9kcml2ZXIpOwor KwlpZiAocmV0KQorKwkJcGxhdGZvcm1fdW5yZWdpc3Rlcl9kcml2ZXJzKGRybV9zdWJfZHJpdmVy cywgTlVNX0RSTV9EUklWRVJTKTsKKysKKysJcmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIHZv aWQgX19leGl0IHZzX2RybV9maW5pKHZvaWQpCisreworKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdp c3RlcigmdnNfZHJtX3BsYXRmb3JtX2RyaXZlcik7CisrCXBsYXRmb3JtX3VucmVnaXN0ZXJfZHJp dmVycyhkcm1fc3ViX2RyaXZlcnMsIE5VTV9EUk1fRFJJVkVSUyk7CisrfQorKworK21vZHVsZV9p bml0KHZzX2RybV9pbml0KTsKKyttb2R1bGVfZXhpdCh2c19kcm1fZmluaSk7CisrCisrTU9EVUxF X0RFU0NSSVBUSU9OKCJWZXJpU2lsaWNvbiBEUk0gRHJpdmVyIik7CisrTU9EVUxFX0xJQ0VOU0Uo IkdQTCIpOworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYuaAorbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uMDM4MmI0NGUzYmYwCistLS0gL2Rldi9udWxsCisr KysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmgKK0BAIC0wLDAgKzEsNDgg QEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworKy8qCisrICogQ29w eXJpZ2h0IChDKSAyMDIzIFZlcmlTaWxpY29uIEhvbGRpbmdzIENvLiwgTHRkLgorKyAqLworKwor KyNpZm5kZWYgX19WU19EUlZfSF9fCisrI2RlZmluZSBfX1ZTX0RSVl9IX18KKysKKysjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgor KyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisrI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Cisr I2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisrCisrLyoKKysgKgorKyAqIEBkbWFfZGV2OiBkZXZp Y2UgZm9yIERNQSBBUEkuCisrICoJLSB1c2UgdGhlIGZpcnN0IGF0dGFjaGVkIGRldmljZSBpZiBz dXBwb3J0IGlvbW11CisrCWVsc2UgdXNlIGRybSBkZXZpY2UgKG9ubHkgY29udGlndW91cyBidWZm ZXIgc3VwcG9ydCkKKysgKiBAZG9tYWluOiBpb21tdSBkb21haW4gZm9yIERSTS4KKysgKgktIGFs bCBEQyBJT01NVSBzaGFyZSBzYW1lIGRvbWFpbiB0byByZWR1Y2UgbWFwcGluZworKyAqIEBwaXRj aF9hbGlnbm1lbnQ6IGJ1ZmZlciBwaXRjaCBhbGlnbm1lbnQgcmVxdWlyZWQgYnkgc3ViLWRldmlj ZXMuCisrICoKKysgKi8KKytzdHJ1Y3QgdnNfZHJtX3ByaXZhdGUgeworKwlzdHJ1Y3QgZGV2aWNl ICpkbWFfZGV2OworKwlzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW47CisrCXVuc2lnbmVkIGlu dCBwaXRjaF9hbGlnbm1lbnQ7CisrfTsKKysKKyt2b2lkIHZzX2RybV91cGRhdGVfcGl0Y2hfYWxp Z25tZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAorKwkJCQkgICB1bnNpZ25lZCBpbnQg YWxpZ25tZW50KTsKKysKKytzdGF0aWMgaW5saW5lIHN0cnVjdCBkZXZpY2UgKnRvX2RtYV9kZXYo c3RydWN0IGRybV9kZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCB2c19kcm1fcHJpdmF0ZSAqcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisrCisrCXJldHVybiBwcml2LT5kbWFfZGV2OworK30KKysK KytzdGF0aWMgaW5saW5lIGJvb2wgaXNfaW9tbXVfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQorK3sKKysJc3RydWN0IHZzX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKKysKKysJcmV0dXJuIHByaXYtPmRvbWFpbiA/IHRydWUgOiBmYWxzZTsKKyt9CisrCisrI2Vu ZGlmIC8qIF9fVlNfRFJWX0hfXyAqLworZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJt X2ZvdXJjYy5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNjLmgKK2luZGV4IGRlNzAzYzZi ZTk2OS4uYWY0ZmI1MGY5MjA3IDEwMDY0NAorLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91 cmNjLmgKKysrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oCitAQCAtNDE5LDYgKzQx OSw3IEBAIGV4dGVybiAiQyIgeworICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX0FSTSAg ICAgMHgwOAorICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX0FMTFdJTk5FUiAweDA5Cisg I2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfQU1MT0dJQyAweDBhCisrI2RlZmluZSBEUk1f Rk9STUFUX01PRF9WRU5ET1JfVlMgICAgICAweDBiCisgCisgLyogYWRkIG1vcmUgdG8gdGhlIGVu ZCBhcyBuZWVkZWQgKi8KKyAKK0BAIC0xNTE5LDYgKzE1MjAsODggQEAgZHJtX2ZvdXJjY19jYW5v bmljYWxpemVfbnZpZGlhX2Zvcm1hdF9tb2QoX191NjQgbW9kaWZpZXIpCisgI2RlZmluZSBBTURf Rk1UX01PRF9DTEVBUihmaWVsZCkgXAorIAkofigoX191NjQpQU1EX0ZNVF9NT0RfIyNmaWVsZCMj X01BU0sgPDwgQU1EX0ZNVF9NT0RfIyNmaWVsZCMjX1NISUZUKSkKKyAKKysjZGVmaW5lIERSTV9G T1JNQVRfTU9EX1ZTX1RZUEVfTk9STUFMICAgICAgICAweDAwCisrI2RlZmluZSBEUk1fRk9STUFU X01PRF9WU19UWVBFX0NPTVBSRVNTRUQgICAgMHgwMQorKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0Rf VlNfVFlQRV9DVVNUT01fMTBCSVQgIDB4MDIKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX1RZ UEVfTUFTSyAgICAgKChfX3U2NCkweDMgPDwgNTQpCisrCisrI2RlZmluZSBmb3VyY2NfbW9kX3Zz X2NvZGUodHlwZSwgdmFsKSBcCisrCWZvdXJjY19tb2RfY29kZShWUywgKCgoKF9fdTY0KXR5cGUp IDw8IDU0KSB8ICh2YWwpKSkKKysKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxF X01PREVfTUFTSyAgICAweDNGCisrI2RlZmluZSBEUk1fRk9STUFUX01PRF9WU19ERUNfVElMRV84 WDhfWE1BSk9SICAgMHgwMAorKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVlNfREVDX1RJTEVfOFg4 X1lNQUpPUiAgIDB4MDEKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzE2WDQg ICAgIDB4MDIKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzhYNCAgICAgIDB4 MDMKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzRYOCAgICAgIDB4MDQKKysj ZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJfMTZYNCAgIDB4MDYKKysjZGVmaW5l IERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzY0WDQgICAgIDB4MDcKKysjZGVmaW5lIERSTV9G T1JNQVRfTU9EX1ZTX0RFQ19USUxFXzMyWDQgICAgIDB4MDgKKysjZGVmaW5lIERSTV9GT1JNQVRf TU9EX1ZTX0RFQ19SQVNURVJfMjU2WDEgIDB4MDkKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZT X0RFQ19SQVNURVJfMTI4WDEgIDB4MEEKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19S QVNURVJfNjRYNCAgIDB4MEIKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJf MjU2WDIgIDB4MEMKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJfMTI4WDIg IDB4MEQKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJfMTI4WDQgIDB4MEUK KysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJfNjRYMSAgIDB4MEYKKysjZGVm aW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzE2WDggICAgIDB4MTAKKysjZGVmaW5lIERS TV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzhYMTYgICAgIDB4MTEKKysjZGVmaW5lIERSTV9GT1JN QVRfTU9EX1ZTX0RFQ19SQVNURVJfNTEyWDEgIDB4MTIKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9E X1ZTX0RFQ19SQVNURVJfMzJYNCAgIDB4MTMKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RF Q19SQVNURVJfNjRYMiAgIDB4MTQKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNU RVJfMzJYMiAgIDB4MTUKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJfMzJY MSAgIDB4MTYKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19SQVNURVJfMTZYMSAgIDB4 MTcKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzEyOFg0ICAgIDB4MTgKKysj ZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzI1Nlg0ICAgIDB4MTkKKysjZGVmaW5l IERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzUxMlg0ICAgIDB4MUEKKysjZGVmaW5lIERSTV9G T1JNQVRfTU9EX1ZTX0RFQ19USUxFXzE2WDE2ICAgIDB4MUIKKysjZGVmaW5lIERSTV9GT1JNQVRf TU9EX1ZTX0RFQ19USUxFXzMyWDE2ICAgIDB4MUMKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZT X0RFQ19USUxFXzY0WDE2ICAgIDB4MUQKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19U SUxFXzEyOFg4ICAgIDB4MUUKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzhY NF9TICAgIDB4MUYKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzE2WDRfUyAg IDB4MjAKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzMyWDRfUyAgIDB4MjEK KysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzE2WDRfTFNCIDB4MjIKKysjZGVm aW5lIERSTV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzMyWDRfTFNCIDB4MjMKKysjZGVmaW5lIERS TV9GT1JNQVRfTU9EX1ZTX0RFQ19USUxFXzMyWDggICAgIDB4MjQKKysKKysjZGVmaW5lIERSTV9G T1JNQVRfTU9EX1ZTX0RFQ19BTElHTl8zMiAgICAgICgweDAxIDw8IDYpCisrI2RlZmluZSBEUk1f Rk9STUFUX01PRF9WU19ERUNfQUxJR05fNjQgICAgICAoMHgwMSA8PCA3KQorKworKyNkZWZpbmUg Zm91cmNjX21vZF92c19kZWNfY29kZSh0aWxlLCBhbGlnbikgXAorKwlmb3VyY2NfbW9kX3ZzX2Nv ZGUoRFJNX0ZPUk1BVF9NT0RfVlNfVFlQRV9DT01QUkVTU0VELCBcCisrCQkJCSgodGlsZSkgfCAo YWxpZ24pKSkKKysKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX05PUk1fTU9ERV9NQVNLICAg ICAgICAweDFGCisrI2RlZmluZSBEUk1fRk9STUFUX01PRF9WU19MSU5FQVIgICAgICAgICAgICAg ICAgMHgwMAorKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVlNfVElMRUQ0eDQgICAgICAgICAgICAg IDB4MDEKKysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX1NVUEVSX1RJTEVEX1hNQUpPUiAgICAw eDAyCisrI2RlZmluZSBEUk1fRk9STUFUX01PRF9WU19TVVBFUl9USUxFRF9ZTUFKT1IgICAgMHgw MworKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVlNfVElMRV84WDggICAgICAgICAgICAgIDB4MDQK KysjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZTX1RJTEVfTU9ERTEgICAgICAgICAgICAweDA1Cisr I2RlZmluZSBEUk1fRk9STUFUX01PRF9WU19USUxFX01PREUyICAgICAgICAgICAgMHgwNgorKyNk ZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVlNfVElMRV84WDQgICAgICAgICAgICAgIDB4MDcKKysjZGVm aW5lIERSTV9GT1JNQVRfTU9EX1ZTX1RJTEVfTU9ERTQgICAgICAgICAgICAweDA4CisrI2RlZmlu ZSBEUk1fRk9STUFUX01PRF9WU19USUxFX01PREU1ICAgICAgICAgICAgMHgwOQorKyNkZWZpbmUg RFJNX0ZPUk1BVF9NT0RfVlNfVElMRV9NT0RFNiAgICAgICAgICAgIDB4MEEKKysjZGVmaW5lIERS TV9GT1JNQVRfTU9EX1ZTX1NVUEVSX1RJTEVEX1hNQUpPUl84WDQgICAgMHgwQgorKyNkZWZpbmUg RFJNX0ZPUk1BVF9NT0RfVlNfU1VQRVJfVElMRURfWU1BSk9SXzRYOCAgICAweDBDCisrI2RlZmlu ZSBEUk1fRk9STUFUX01PRF9WU19USUxFX1kgICAgICAgICAgICAgICAgMHgwRAorKyNkZWZpbmUg RFJNX0ZPUk1BVF9NT0RfVlNfVElMRV8xMjhYMSAgICAgICAgICAgIDB4MEYKKysjZGVmaW5lIERS TV9GT1JNQVRfTU9EX1ZTX1RJTEVfMjU2WDEgICAgICAgICAgICAweDEwCisrI2RlZmluZSBEUk1f Rk9STUFUX01PRF9WU19USUxFXzMyWDEgICAgICAgICAgICAgMHgxMQorKyNkZWZpbmUgRFJNX0ZP Uk1BVF9NT0RfVlNfVElMRV82NFgxICAgICAgICAgICAgIDB4MTIKKysjZGVmaW5lIERSTV9GT1JN QVRfTU9EX1ZTX1RJTEVfTU9ERTRYNCAgICAgICAgICAweDE1CisrCisrI2RlZmluZSBmb3VyY2Nf bW9kX3ZzX25vcm1fY29kZSh0aWxlKSBcCisrCWZvdXJjY19tb2RfdnNfY29kZShEUk1fRk9STUFU X01PRF9WU19UWVBFX05PUk1BTCwgXAorKwkJCQkodGlsZSkpCisrCisrI2RlZmluZSBmb3VyY2Nf bW9kX3ZzX2N1c3RvbV9jb2RlKHRpbGUpIFwKKysJZm91cmNjX21vZF92c19jb2RlKERSTV9GT1JN QVRfTU9EX1ZTX1RZUEVfQ1VTVE9NXzEwQklULCBcCisrCQkJCSh0aWxlKSkKKysKKyAjaWYgZGVm aW5lZChfX2NwbHVzcGx1cykKKyB9CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS92c19kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vdnNfZHJtLmgKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjk2YjdmYzk1ZDY1OAorLS0tIC9kZXYvbnVsbAor KysrIGIvaW5jbHVkZS91YXBpL2RybS92c19kcm0uaAorQEAgLTAsMCArMSw1MCBAQAorKy8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAq LworKy8qCisrICogQ29weXJpZ2h0IChDKSAyMDIwIFZlcmlTaWxpY29uIEhvbGRpbmdzIENvLiwg THRkLgorKyAqLworKworKyNpZm5kZWYgX19WU19EUk1fSF9fCisrI2RlZmluZSBfX1ZTX0RSTV9I X18KKysKKysjaW5jbHVkZSAiZHJtLmgiCisrCisrZW51bSBkcm1fdnNfZGVnYW1tYV9tb2RlIHsK KysJVlNfREVHQU1NQV9ESVNBQkxFID0gMCwKKysJVlNfREVHQU1NQV9CVDcwOSA9IDEsCisrCVZT X0RFR0FNTUFfQlQyMDIwID0gMiwKKyt9OworKworK2VudW0gZHJtX3ZzX3N5bmNfZGNfbW9kZSB7 CisrCVZTX1NJTkdMRV9EQyA9IDAsCisrCVZTX01VTFRJX0RDX1BSSU1BUlkgPSAxLAorKwlWU19N VUxUSV9EQ19TRUNPTkRBUlkgPSAyLAorK307CisrCisrZW51bSBkcm1fdnNfbW11X3ByZWZldGNo X21vZGUgeworKwlWU19NTVVfUFJFRkVUQ0hfRElTQUJMRSA9IDAsCisrCVZTX01NVV9QUkVGRVRD SF9FTkFCTEUgPSAxLAorK307CisrCisrc3RydWN0IGRybV92c193YXRlcm1hcmsgeworKwlfX3Uz MiB3YXRlcm1hcms7CisrCV9fdTggcW9zX2xvdzsKKysJX191OCBxb3NfaGlnaDsKKyt9OworKwor K3N0cnVjdCBkcm1fdnNfY29sb3JfbWdtdCB7CisrCV9fdTMyIGNvbG9ya2V5OworKwlfX3UzMiBj b2xvcmtleV9oaWdoOworKwlfX3UzMiBjbGVhcl92YWx1ZTsKKysJYm9vbCAgY2xlYXJfZW5hYmxl OworKwlib29sICB0cmFuc3BhcmVuY3k7CisrfTsKKysKKytzdHJ1Y3QgZHJtX3ZzX3JvaSB7Cisr CWJvb2wgZW5hYmxlOworKwlfX3UxNiByb2lfeDsKKysJX191MTYgcm9pX3k7CisrCV9fdTE2IHJv aV93OworKwlfX3UxNiByb2lfaDsKKyt9OworKworKyNlbmRpZiAvKiBfX1ZTX0RSTV9IX18gKi8K Ky0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDUy LWRybS12ZXJpc2lsaWNvbi1BZGQtZ2VtLWRyaXZlci1mb3ItSkg3MTEwLVNvQy5wYXRjaCBiL3Ny Y3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDUyLWRybS12ZXJpc2lsaWNvbi1BZGQtZ2VtLWRyaXZl ci1mb3ItSkg3MTEwLVNvQy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi5iNmZjNzc5NGVlNmI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwNTItZHJtLXZlcmlzaWxpY29uLUFkZC1nZW0tZHJpdmVyLWZvci1KSDcxMTAt U29DLnBhdGNoCkBAIC0wLDAgKzEsNTIwIEBACitGcm9tIDQ0N2RhZDRiMDI2ZDJlZTRjOTQzYjM5 MDIxZmZhNTI5MGM0NGE2MjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLZWl0aCBa aGFvIDxrZWl0aC56aGFvQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDIgSnVuIDIwMjMg MTU6NDA6MzggKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Mi83Ml0gZHJtL3ZlcmlzaWxpY29uOiBB ZGQgZ2VtIGRyaXZlciBmb3IgSkg3MTEwIFNvQworCitUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2Vt IHJlbGF0ZWQgQVBJcyBmb3IgSkg3MTAwIFNvQy4KKworU2lnbmVkLW9mZi1ieTogS2VpdGggWmhh byA8a2VpdGguemhhb0BzdGFyZml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9ncHUvZHJtL3Zl cmlzaWxpY29uL01ha2VmaWxlIHwgICAzICstCisgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L3ZzX2Rydi5jIHwgICA2ICsKKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZ2VtLmMg fCAzNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZHJpdmVycy9ncHUvZHJtL3Zlcmlz aWxpY29uL3ZzX2dlbS5oIHwgIDcyICsrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgNDUyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3ZlcmlzaWxpY29uL3ZzX2dlbS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS92ZXJpc2lsaWNvbi92c19nZW0uaAorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3ZlcmlzaWxpY29uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2Vm aWxlCitpbmRleCA2NGNlMWIyNjU0NmMuLjMwMzYwZTM3MGU0NyAxMDA2NDQKKy0tLSBhL2RyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zl cmlzaWxpY29uL01ha2VmaWxlCitAQCAtMSw2ICsxLDcgQEAKKyAjIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCisgCistdnNfZHJtLW9ianMgOj0gdnNfZHJ2Lm8KKyt2c19kcm0tb2Jq cyA6PSB2c19kcnYubyBcCisrCQl2c19nZW0ubworIAorIG9iai0kKENPTkZJR19EUk1fVkVSSVNJ TElDT04pICs9IHZzX2RybS5vCisgCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zlcmlz aWxpY29uL3ZzX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jCitp bmRleCAyNGQzMzM1OTg0NzcuLmUwYTJmYzQzYjU1ZiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92ZXJpc2lsaWNvbi92c19kcnYuYworKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxp Y29uL3ZzX2Rydi5jCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlIDxkcm0vZHJtX3ZibGFu ay5oPgorIAorICNpbmNsdWRlICJ2c19kcnYuaCIKKysjaW5jbHVkZSAidnNfZ2VtLmgiCisgCisg I2RlZmluZSBEUlZfTkFNRQkic3RhcmZpdmUiCisgI2RlZmluZSBEUlZfREVTQwkiU3RhcmZpdmUg RFJNIGRyaXZlciIKK0BAIC00Nyw2ICs0OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9v cGVyYXRpb25zIGZvcHMgPSB7CisgCS5jb21wYXRfaW9jdGwJPSBkcm1fY29tcGF0X2lvY3RsLAor IAkucG9sbAkJCT0gZHJtX3BvbGwsCisgCS5yZWFkCQkJPSBkcm1fcmVhZCwKKysJLm1tYXAJCQk9 IHZzX2dlbV9tbWFwLAorIH07CisgCisgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHZzX2RybV9k cml2ZXIgPSB7CitAQCAtNTQsNiArNTYsMTAgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHZz X2RybV9kcml2ZXIgPSB7CisgCS5sYXN0Y2xvc2UJCT0gZHJtX2ZiX2hlbHBlcl9sYXN0Y2xvc2Us CisgCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKKyAJ LnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAorKwkuZ2Vt X3ByaW1lX2ltcG9ydAk9IHZzX2dlbV9wcmltZV9pbXBvcnQsCisrCS5nZW1fcHJpbWVfaW1wb3J0 X3NnX3RhYmxlID0gdnNfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSwKKysJLmdlbV9wcmltZV9t bWFwCQk9IHZzX2dlbV9wcmltZV9tbWFwLAorKwkuZHVtYl9jcmVhdGUJCT0gdnNfZ2VtX2R1bWJf Y3JlYXRlLAorIAkuZm9wcwkJCT0gJmZvcHMsCisgCS5uYW1lCQkJPSBEUlZfTkFNRSwKKyAJLmRl c2MJCQk9IERSVl9ERVNDLAorZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNv bi92c19nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19nZW0uYworbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uM2Y5NjM0NzFjMWFiCistLS0gL2Rl di9udWxsCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZ2VtLmMKK0BAIC0w LDAgKzEsMzcyIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKysvKgor KyAqIENvcHlyaWdodCAoQykgMjAyMyBWZXJpU2lsaWNvbiBIb2xkaW5ncyBDby4sIEx0ZC4KKysg Ki8KKysKKysjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9y ZXNlcnZlZF9tZW0uaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZG1hX2hlbHBlci5oPgorKwor KyNpbmNsdWRlICJ2c19kcnYuaCIKKysjaW5jbHVkZSAidnNfZ2VtLmgiCisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcyB2c19nZW1fZGVmYXVsdF9mdW5jczsKKysK KytzdGF0aWMgaW50IHZzX2dlbV9hbGxvY19idWYoc3RydWN0IHZzX2dlbV9vYmplY3QgKnZzX29i aikKKyt7CisrCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB2c19vYmotPmJhc2UuZGV2OworKwl1 bnNpZ25lZCBpbnQgbnJfcGFnZXM7CisrCXN0cnVjdCBzZ190YWJsZSBzZ3Q7CisrCWludCByZXQg PSAtRU5PTUVNOworKworKwlpZiAodnNfb2JqLT5kbWFfYWRkcikgeworKwkJRFJNX0RFVl9ERUJV R19LTVMoZGV2LT5kZXYsICJhbHJlYWR5IGFsbG9jYXRlZC5cbiIpOworKwkJcmV0dXJuIDA7Cisr CX0KKysKKysJdnNfb2JqLT5kbWFfYXR0cnMgPSBETUFfQVRUUl9XUklURV9DT01CSU5FIHwgRE1B X0FUVFJfRk9SQ0VfQ09OVElHVU9VUworKwkJCSAgIHwgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJ Tkc7CisrCisrCW5yX3BhZ2VzID0gdnNfb2JqLT5zaXplID4+IFBBR0VfU0hJRlQ7CisrCisrCXZz X29iai0+cGFnZXMgPSBrdm1hbGxvY19hcnJheShucl9wYWdlcywgc2l6ZW9mKHN0cnVjdCBwYWdl ICopLAorKwkJCQkgICAgICAgR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworKwlpZiAoIXZzX29i ai0+cGFnZXMpIHsKKysJCURSTV9ERVZfRVJST1IoZGV2LT5kZXYsICJmYWlsZWQgdG8gYWxsb2Nh dGUgcGFnZXMuXG4iKTsKKysJCXJldHVybiAtRU5PTUVNOworKwl9CisrCisrCXZzX29iai0+Y29v a2llID0gZG1hX2FsbG9jX2F0dHJzKHRvX2RtYV9kZXYoZGV2KSwgdnNfb2JqLT5zaXplLAorKwkJ CQkJICZ2c19vYmotPmRtYV9hZGRyLCBHRlBfS0VSTkVMLAorKwkJCQkJIHZzX29iai0+ZG1hX2F0 dHJzKTsKKysKKysJaWYgKCF2c19vYmotPmNvb2tpZSkgeworKwkJRFJNX0RFVl9FUlJPUihkZXYt PmRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXIuXG4iKTsKKysJCWdvdG8gZXJyX2ZyZWU7 CisrCX0KKysKKysJdnNfb2JqLT5pb3ZhID0gdnNfb2JqLT5kbWFfYWRkcjsKKysKKysJcmV0ID0g ZG1hX2dldF9zZ3RhYmxlX2F0dHJzKHRvX2RtYV9kZXYoZGV2KSwgJnNndCwKKysJCQkJICAgIHZz X29iai0+Y29va2llLCB2c19vYmotPmRtYV9hZGRyLAorKwkJCQkgICAgdnNfb2JqLT5zaXplLCB2 c19vYmotPmRtYV9hdHRycyk7CisrCWlmIChyZXQgPCAwKSB7CisrCQlEUk1fREVWX0VSUk9SKGRl di0+ZGV2LCAiZmFpbGVkIHRvIGdldCBzZ3RhYmxlLlxuIik7CisrCQlnb3RvIGVycl9tZW1fZnJl ZTsKKysJfQorKworKwlpZiAoZHJtX3ByaW1lX3NnX3RvX3BhZ2VfYXJyYXkoJnNndCwgdnNfb2Jq LT5wYWdlcywgbnJfcGFnZXMpKSB7CisrCQlEUk1fREVWX0VSUk9SKGRldi0+ZGV2LCAiaW52YWxp ZCBzZ3RhYmxlLlxuIik7CisrCQlyZXQgPSAtRUlOVkFMOworKwkJZ290byBlcnJfc2d0X2ZyZWU7 CisrCX0KKysKKysJc2dfZnJlZV90YWJsZSgmc2d0KTsKKysKKysJcmV0dXJuIDA7CisrCisrZXJy X3NndF9mcmVlOgorKwlzZ19mcmVlX3RhYmxlKCZzZ3QpOworK2Vycl9tZW1fZnJlZToKKysJCWRt YV9mcmVlX2F0dHJzKHRvX2RtYV9kZXYoZGV2KSwgdnNfb2JqLT5zaXplLCB2c19vYmotPmNvb2tp ZSwKKysJCQkgICAgICAgdnNfb2JqLT5kbWFfYWRkciwgdnNfb2JqLT5kbWFfYXR0cnMpOworK2Vy cl9mcmVlOgorKwlrdmZyZWUodnNfb2JqLT5wYWdlcyk7CisrCisrCXJldHVybiByZXQ7CisrfQor KworK3N0YXRpYyB2b2lkIHZzX2dlbV9mcmVlX2J1ZihzdHJ1Y3QgdnNfZ2VtX29iamVjdCAqdnNf b2JqKQorK3sKKysJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHZzX29iai0+YmFzZS5kZXY7Cisr CisrCWlmICghdnNfb2JqLT5kbWFfYWRkcikgeworKwkJRFJNX0RFVl9ERUJVR19LTVMoZGV2LT5k ZXYsICJkbWFfYWRkciBpcyBpbnZhbGlkLlxuIik7CisrCQlyZXR1cm47CisrCX0KKysKKysJZG1h X2ZyZWVfYXR0cnModG9fZG1hX2RldihkZXYpLCB2c19vYmotPnNpemUsIHZzX29iai0+Y29va2ll LAorKwkJICAgICAgIChkbWFfYWRkcl90KXZzX29iai0+ZG1hX2FkZHIsCisrCQkgICAgICAgdnNf b2JqLT5kbWFfYXR0cnMpOworKworKwlrdmZyZWUodnNfb2JqLT5wYWdlcyk7CisrfQorKworK3N0 YXRpYyB2b2lkIHZzX2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikK Kyt7CisrCXN0cnVjdCB2c19nZW1fb2JqZWN0ICp2c19vYmogPSB0b192c19nZW1fb2JqZWN0KG9i aik7CisrCisrCWlmIChvYmotPmltcG9ydF9hdHRhY2gpCisrCQlkcm1fcHJpbWVfZ2VtX2Rlc3Ry b3kob2JqLCB2c19vYmotPnNndCk7CisrCWVsc2UKKysJCXZzX2dlbV9mcmVlX2J1Zih2c19vYmop OworKworKwlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKG9iaik7CisrCisrCWtmcmVlKHZzX29iaik7 CisrfQorKworK3N0YXRpYyBzdHJ1Y3QgdnNfZ2VtX29iamVjdCAqdnNfZ2VtX2FsbG9jX29iamVj dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorKwkJCQkJCSBzaXplX3Qgc2l6ZSkKKyt7CisrCXN0 cnVjdCB2c19nZW1fb2JqZWN0ICp2c19vYmo7CisrCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq OworKwlpbnQgcmV0OworKworKwl2c19vYmogPSBremFsbG9jKHNpemVvZigqdnNfb2JqKSwgR0ZQ X0tFUk5FTCk7CisrCWlmICghdnNfb2JqKQorKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cisr CisrCXZzX29iai0+c2l6ZSA9IHNpemU7CisrCW9iaiA9ICZ2c19vYmotPmJhc2U7CisrCisrCXJl dCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCBvYmosIHNpemUpOworKwlpZiAocmV0KQorKwkJ Z290byBlcnJfZnJlZTsKKysKKysJdnNfb2JqLT5iYXNlLmZ1bmNzID0gJnZzX2dlbV9kZWZhdWx0 X2Z1bmNzOworKworKwlyZXQgPSBkcm1fZ2VtX2NyZWF0ZV9tbWFwX29mZnNldChvYmopOworKwlp ZiAocmV0KSB7CisrCQlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKG9iaik7CisrCQlnb3RvIGVycl9m cmVlOworKwl9CisrCisrCXJldHVybiB2c19vYmo7CisrCisrZXJyX2ZyZWU6CisrCWtmcmVlKHZz X29iaik7CisrCXJldHVybiBFUlJfUFRSKHJldCk7CisrfQorKworK3N0cnVjdCB2c19nZW1fb2Jq ZWN0ICp2c19nZW1fY3JlYXRlX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorKwkJCQkJ ICAgc2l6ZV90IHNpemUpCisreworKwlzdHJ1Y3QgdnNfZ2VtX29iamVjdCAqdnNfb2JqOworKwlp bnQgcmV0OworKworKwlzaXplID0gUEFHRV9BTElHTihzaXplKTsKKysKKysJdnNfb2JqID0gdnNf Z2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOworKwlpZiAoSVNfRVJSKHZzX29iaikpCisrCQly ZXR1cm4gdnNfb2JqOworKworKwlyZXQgPSB2c19nZW1fYWxsb2NfYnVmKHZzX29iaik7CisrCWlm IChyZXQpIHsKKysJCWRybV9nZW1fb2JqZWN0X3JlbGVhc2UoJnZzX29iai0+YmFzZSk7CisrCQlr ZnJlZSh2c19vYmopOworKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKysJfQorKworKwlyZXR1cm4g dnNfb2JqOworK30KKysKKytzdGF0aWMgc3RydWN0IHZzX2dlbV9vYmplY3QgKnZzX2dlbV9jcmVh dGVfd2l0aF9oYW5kbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKysJCQkJCQkgICAgICAgc3Ry dWN0IGRybV9maWxlICpmaWxlLAorKwkJCQkJCSAgICAgICBzaXplX3Qgc2l6ZSwKKysJCQkJCQkg ICAgICAgdW5zaWduZWQgaW50ICpoYW5kbGUpCisreworKwlzdHJ1Y3QgdnNfZ2VtX29iamVjdCAq dnNfb2JqOworKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKKysJaW50IHJldDsKKysKKysJ dnNfb2JqID0gdnNfZ2VtX2NyZWF0ZV9vYmplY3QoZGV2LCBzaXplKTsKKysJaWYgKElTX0VSUih2 c19vYmopKQorKwkJcmV0dXJuIHZzX29iajsKKysKKysJb2JqID0gJnZzX29iai0+YmFzZTsKKysK KysJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGUsIG9iaiwgaGFuZGxlKTsKKysKKysJ ZHJtX2dlbV9vYmplY3RfcHV0KG9iaik7CisrCisrCWlmIChyZXQpCisrCQlyZXR1cm4gRVJSX1BU UihyZXQpOworKworKwlyZXR1cm4gdnNfb2JqOworK30KKysKKytzdGF0aWMgaW50IHZzX2dlbV9t bWFwX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKysJCQkgICBzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSkKKyt7CisrCXN0cnVjdCB2c19nZW1fb2JqZWN0ICp2c19vYmogPSB0b192 c19nZW1fb2JqZWN0KG9iaik7CisrCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gdnNfb2Jq LT5iYXNlLmRldjsKKysJdW5zaWduZWQgbG9uZyB2bV9zaXplOworKwlpbnQgcmV0ID0gMDsKKysK KysJdm1fc2l6ZSA9IHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydDsKKysJaWYgKHZtX3NpemUg PiB2c19vYmotPnNpemUpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJdm1hLT52bV9wZ29mZiA9 IDA7CisrCisrCS8qCisrCSAqIFdlIGFsbG9jYXRlZCBhIHN0cnVjdCBwYWdlIHRhYmxlIGZvciBz dGFyZml2ZV9vYmosIHNvIGNsZWFyCisrCSAqIFZNX1BGTk1BUCBmbGFnIHRoYXQgd2FzIHNldCBi eSBkcm1fZ2VtX21tYXBfb2JqKCkvZHJtX2dlbV9tbWFwKCkuCisrCSAqLworKwl2bV9mbGFnc19t b2Qodm1hLCBWTV9JTyB8IFZNX0RPTlRFWFBBTkQgfCBWTV9ET05URFVNUCwgVk1fUEZOTUFQKTsK KysKKysJdm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3Rfd3JpdGVjb21iaW5lKHZtX2dldF9wYWdl X3Byb3Qodm1hLT52bV9mbGFncykpOworKwl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF9kZWNy eXB0ZWQodm1hLT52bV9wYWdlX3Byb3QpOworKworKwlyZXQgPSBkbWFfbW1hcF9hdHRycyh0b19k bWFfZGV2KGRybV9kZXYpLCB2bWEsIHZzX29iai0+Y29va2llLAorKwkJCSAgICAgdnNfb2JqLT5k bWFfYWRkciwgdnNfb2JqLT5zaXplLAorKwkJCSAgICAgdnNfb2JqLT5kbWFfYXR0cnMpOworKwor KwlpZiAocmV0KQorKwkJZHJtX2dlbV92bV9jbG9zZSh2bWEpOworKworKwlyZXR1cm4gcmV0Owor K30KKysKKytzdHJ1Y3Qgc2dfdGFibGUgKnZzX2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmopCisreworKwlzdHJ1Y3QgdnNfZ2VtX29iamVjdCAqdnNfb2Jq ID0gdG9fdnNfZ2VtX29iamVjdChvYmopOworKworKwlyZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3Rv X3NnKG9iai0+ZGV2LCB2c19vYmotPnBhZ2VzLAorKwkJCQkJIHZzX29iai0+c2l6ZSA+PiBQQUdF X1NISUZUKTsKKyt9CisrCisraW50IHZzX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqLCBzdHJ1Y3QgaW9zeXNfbWFwICptYXApCisreworKwlzdHJ1Y3QgdnNfZ2VtX29i amVjdCAqdnNfb2JqID0gdG9fdnNfZ2VtX29iamVjdChvYmopOworKworKwl2b2lkICp2YWRkciA9 IHZzX29iai0+ZG1hX2F0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcgPworKwkJICAg ICAgIHBhZ2VfYWRkcmVzcyh2c19vYmotPmNvb2tpZSkgOiB2c19vYmotPmNvb2tpZTsKKysKKysJ aW9zeXNfbWFwX3NldF92YWRkcihtYXAsIHZhZGRyKTsKKysKKysJcmV0dXJuIDA7CisrfQorKwor K3ZvaWQgdnNfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3Ry dWN0IGlvc3lzX21hcCAqbWFwKQorK3sKKysJLyogTm90aGluZyB0byBkbyAqLworK30KKysKKytz dGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHZzX3ZtX29wcyA9IHsKKysJ Lm9wZW4gID0gZHJtX2dlbV92bV9vcGVuLAorKwkuY2xvc2UgPSBkcm1fZ2VtX3ZtX2Nsb3NlLAor K307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcyB2c19nZW1f ZGVmYXVsdF9mdW5jcyA9IHsKKysJLmZyZWUgPSB2c19nZW1fZnJlZV9vYmplY3QsCisrCS5nZXRf c2dfdGFibGUgPSB2c19nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlLAorKwkudm1hcCA9IHZzX2dlbV9w cmltZV92bWFwLAorKwkudnVubWFwID0gdnNfZ2VtX3ByaW1lX3Z1bm1hcCwKKysJLnZtX29wcyA9 ICZ2c192bV9vcHMsCisrfTsKKysKKytpbnQgdnNfZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSwKKysJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorKwkJICAgICAg IHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncykKKyt7CisrCXN0cnVjdCB2c19kcm1f cHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisrCXN0cnVjdCB2c19nZW1fb2JqZWN0 ICp2c19vYmo7CisrCXVuc2lnbmVkIGludCBwaXRjaCA9IERJVl9ST1VORF9VUChhcmdzLT53aWR0 aCAqIGFyZ3MtPmJwcCwgOCk7CisrCisrCWlmIChhcmdzLT5icHAgJSAxMCkKKysJCWFyZ3MtPnBp dGNoID0gQUxJR04ocGl0Y2gsIHByaXYtPnBpdGNoX2FsaWdubWVudCk7CisrCWVsc2UKKysJCS8q IGZvciBjb3N0dW0gMTBiaXQgZm9ybWF0IHdpdGggbm8gYml0IGdhcHMgKi8KKysJCWFyZ3MtPnBp dGNoID0gcGl0Y2g7CisrCWFyZ3MtPnNpemUgPSBQQUdFX0FMSUdOKGFyZ3MtPnBpdGNoICogYXJn cy0+aGVpZ2h0KTsKKysJdnNfb2JqID0gdnNfZ2VtX2NyZWF0ZV93aXRoX2hhbmRsZShkZXYsIGZp bGUsIGFyZ3MtPnNpemUsCisrCQkJCQkgICAmYXJncy0+aGFuZGxlKTsKKysJcmV0dXJuIFBUUl9F UlJfT1JfWkVSTyh2c19vYmopOworK30KKysKKytzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnZzX2dl bV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKysJCQkJCSAgIHN0cnVjdCBk bWFfYnVmICpkbWFfYnVmKQorK3sKKysJcmV0dXJuIGRybV9nZW1fcHJpbWVfaW1wb3J0X2Rldihk ZXYsIGRtYV9idWYsIHRvX2RtYV9kZXYoZGV2KSk7CisrfQorKworK3N0cnVjdCBkcm1fZ2VtX29i amVjdCAqCisrdnNfZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAorKwkJCSAgICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAorKwkJCSAg ICAgc3RydWN0IHNnX3RhYmxlICpzZ3QpCisreworKwlzdHJ1Y3QgdnNfZ2VtX29iamVjdCAqdnNf b2JqOworKwlpbnQgbnBhZ2VzOworKwlpbnQgcmV0OworKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7 CisrCXUzMiBpOworKwlkbWFfYWRkcl90IGV4cGVjdGVkOworKwlzaXplX3Qgc2l6ZSA9IGF0dGFj aC0+ZG1hYnVmLT5zaXplOworKworKwlzaXplID0gUEFHRV9BTElHTihzaXplKTsKKysKKysJdnNf b2JqID0gdnNfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOworKwlpZiAoSVNfRVJSKHZzX29i aikpCisrCQlyZXR1cm4gRVJSX0NBU1QodnNfb2JqKTsKKysKKysJZXhwZWN0ZWQgPSBzZ19kbWFf YWRkcmVzcyhzZ3QtPnNnbCk7CisrCWZvcl9lYWNoX3NnKHNndC0+c2dsLCBzLCBzZ3QtPm5lbnRz LCBpKSB7CisrCQlpZiAoc2dfZG1hX2FkZHJlc3MocykgIT0gZXhwZWN0ZWQpIHsKKysJCQlEUk1f RVJST1IoInNnX3RhYmxlIGlzIG5vdCBjb250aWd1b3VzIik7CisrCQkJcmV0ID0gLUVJTlZBTDsK KysJCQlnb3RvIGVycjsKKysJCX0KKysJCWlmIChzZ19kbWFfbGVuKHMpICYgKFBBR0VfU0laRSAt IDEpKSB7CisrCQkJcmV0ID0gLUVJTlZBTDsKKysJCQlnb3RvIGVycjsKKysJCX0KKysJCWlmIChp ID09IDApCisrCQkJdnNfb2JqLT5pb3ZhID0gc2dfZG1hX2FkZHJlc3Mocyk7CisrCQlleHBlY3Rl ZCA9IHNnX2RtYV9hZGRyZXNzKHMpICsgc2dfZG1hX2xlbihzKTsKKysJfQorKworKwl2c19vYmot PmRtYV9hZGRyID0gc2dfZG1hX2FkZHJlc3Moc2d0LT5zZ2wpOworKworKwlucGFnZXMgPSB2c19v YmotPnNpemUgPj4gUEFHRV9TSElGVDsKKysJdnNfb2JqLT5wYWdlcyA9IGt2bWFsbG9jX2FycmF5 KG5wYWdlcywgc2l6ZW9mKHN0cnVjdCBwYWdlICopLAorKwkJCQkgICAgICAgR0ZQX0tFUk5FTCk7 CisrCWlmICghdnNfb2JqLT5wYWdlcykgeworKwkJcmV0ID0gLUVOT01FTTsKKysJCWdvdG8gZXJy OworKwl9CisrCisrCXJldCA9IGRybV9wcmltZV9zZ190b19wYWdlX2FycmF5KHNndCwgdnNfb2Jq LT5wYWdlcywgbnBhZ2VzKTsKKysJaWYgKHJldCkKKysJCWdvdG8gZXJyX2ZyZWVfcGFnZTsKKysK KysJdnNfb2JqLT5zZ3QgPSBzZ3Q7CisrCisrCXJldHVybiAmdnNfb2JqLT5iYXNlOworKworK2Vy cl9mcmVlX3BhZ2U6CisrCWt2ZnJlZSh2c19vYmotPnBhZ2VzKTsKKytlcnI6CisrCXZzX2dlbV9m cmVlX29iamVjdCgmdnNfb2JqLT5iYXNlKTsKKysKKysJcmV0dXJuIEVSUl9QVFIocmV0KTsKKyt9 CisrCisraW50IHZzX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKKyt7CisrCWludCByZXQgPSAwOworKworKwlyZXQg PSBkcm1fZ2VtX21tYXBfb2JqKG9iaiwgb2JqLT5zaXplLCB2bWEpOworKwlpZiAocmV0IDwgMCkK KysJCXJldHVybiByZXQ7CisrCisrCXJldHVybiB2c19nZW1fbW1hcF9vYmoob2JqLCB2bWEpOwor K30KKysKKytpbnQgdnNfZ2VtX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hKQorK3sKKysJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisrCWludCBy ZXQ7CisrCisrCXJldCA9IGRybV9nZW1fbW1hcChmaWxwLCB2bWEpOworKwlpZiAocmV0KQorKwkJ cmV0dXJuIHJldDsKKysKKysJb2JqID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CisrCisrCWlmIChv YmotPmltcG9ydF9hdHRhY2gpCisrCQlyZXR1cm4gZG1hX2J1Zl9tbWFwKG9iai0+ZG1hX2J1Ziwg dm1hLCAwKTsKKysKKysJcmV0dXJuIHZzX2dlbV9tbWFwX29iaihvYmosIHZtYSk7CisrfQorZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19nZW0uaCBiL2RyaXZlcnMv Z3B1L2RybS92ZXJpc2lsaWNvbi92c19nZW0uaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwMDAwMC4uM2E2ZDc0NTJjYjA2CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJz L2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZ2VtLmgKK0BAIC0wLDAgKzEsNzIgQEAKKysvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworKy8qCisrICogQ29weXJpZ2h0IChDKSAy MDIzIFZlcmlTaWxpY29uIEhvbGRpbmdzIENvLiwgTHRkLgorKyAqLworKworKyNpZm5kZWYgX19W U19HRU1fSF9fCisrI2RlZmluZSBfX1ZTX0dFTV9IX18KKysKKysjaW5jbHVkZSA8bGludXgvZG1h LWJ1Zi5oPgorKworKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgorKyNpbmNsdWRlIDxkcm0vZHJt X3ByaW1lLmg+CisrCisrI2luY2x1ZGUgInZzX2Rydi5oIgorKy8qCisrICoKKysgKiBAYmFzZTog ZHJtIGdlbSBvYmplY3QuCisrICogQHNpemU6IHNpemUgcmVxdWVzdGVkIGZyb20gdXNlcgorKyAq IEBjb29raWU6IGNvb2tpZSByZXR1cm5lZCBieSBkbWFfYWxsb2NfYXR0cnMKKysgKgktIG5vdCBr ZXJuZWwgdmlydHVhbCBhZGRyZXNzIHdpdGggRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcKKysg KiBAZG1hX2FkZHI6IGJ1cyBhZGRyZXNzKGFjY2Vzc2VkIGJ5IGRtYSkgdG8gYWxsb2NhdGVkIG1l bW9yeSByZWdpb24uCisrICoJLSB0aGlzIGFkZHJlc3MgY291bGQgYmUgcGh5c2ljYWwgYWRkcmVz cyB3aXRob3V0IElPTU1VIGFuZAorKyAqCWRldmljZSBhZGRyZXNzIHdpdGggSU9NTVUuCisrICog QGRtYV9hdHRyczogYXR0cmlidXRlIGZvciBETUEgQVBJCisrICogQGdldF9wYWdlczogZmxhZyBm b3IgbWFudWFsbHkgYXBwbHlpbmcgZm9yIG5vbi1jb250aWd1b3VzIG1lbW9yeS4KKysgKiBAcGFn ZXM6IEFycmF5IG9mIGJhY2tpbmcgcGFnZXMuCisrICogQHNndDogSW1wb3J0ZWQgc2dfdGFibGUu CisrICoKKysgKi8KKytzdHJ1Y3QgdnNfZ2VtX29iamVjdCB7CisrCXN0cnVjdCBkcm1fZ2VtX29i amVjdAliYXNlOworKwlzaXplX3QJCQlzaXplOworKwl2b2lkCQkJKmNvb2tpZTsKKysJZG1hX2Fk ZHJfdAkJZG1hX2FkZHI7CisrCXUzMgkJCQlpb3ZhOworKwl1bnNpZ25lZCBsb25nCWRtYV9hdHRy czsKKysJYm9vbAkJCWdldF9wYWdlczsKKysJc3RydWN0IHBhZ2UJCSoqcGFnZXM7CisrCXN0cnVj dCBzZ190YWJsZSAqc2d0OworK307CisrCisrc3RhdGljIGlubGluZQorK3N0cnVjdCB2c19nZW1f b2JqZWN0ICp0b192c19nZW1fb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQorK3sK KysJcmV0dXJuIGNvbnRhaW5lcl9vZihvYmosIHN0cnVjdCB2c19nZW1fb2JqZWN0LCBiYXNlKTsK Kyt9CisrCisrc3RydWN0IHZzX2dlbV9vYmplY3QgKnZzX2dlbV9jcmVhdGVfb2JqZWN0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCisrCQkJCQkgICBzaXplX3Qgc2l6ZSk7CisrCisraW50IHZzX2dl bV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgaW9zeXNfbWFw ICptYXApOworK3ZvaWQgdnNfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iaiwgc3RydWN0IGlvc3lzX21hcCAqbWFwKTsKKysKKytpbnQgdnNfZ2VtX3ByaW1lX21tYXAo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCisrCQkgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSk7CisrCisraW50IHZzX2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdiwKKysJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAorKwkJICAgICAgIHN0 cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7CisrCisraW50IHZzX2dlbV9tbWFwKHN0 cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CisrCisrc3RydWN0 IHNnX3RhYmxlICp2c19nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqKTsKKysKKytzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnZzX2dlbV9wcmltZV9pbXBvcnQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKKysJCQkJCSAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVm KTsKKytzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKgorK3ZzX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKysJCQkgICAgIHN0cnVjdCBkbWFfYnVmX2F0dGFj aG1lbnQgKmF0dGFjaCwKKysJCQkgICAgIHN0cnVjdCBzZ190YWJsZSAqc2d0KTsKKysKKysjZW5k aWYgLyogX19WU19HRU1fSF9fICovCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDA1My1kcm0tdmVyaXNpbGljb24tQWRkLW1vZGUtY29uZmlnLWZ1 bmNzLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTMtZHJtLXZlcmlzaWxpY29u LUFkZC1tb2RlLWNvbmZpZy1mdW5jcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5jOWYzMzZkZGIzOGFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuNC9wYXRjaGVzLzAwNTMtZHJtLXZlcmlzaWxpY29uLUFkZC1tb2RlLWNvbmZpZy1mdW5j cy5wYXRjaApAQCAtMCwwICsxLDI2MSBAQAorRnJvbSAxNGRhZDhmNzQ0NTk5ZDY3ODQyODYwZmI5 MTRlODY2MmJhN2RkNjY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2VpdGggWmhh byA8a2VpdGguemhhb0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAyIEp1biAyMDIzIDE1 OjQwOjM5ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNTMvNzJdIGRybS92ZXJpc2lsaWNvbjogQWRk IG1vZGUgY29uZmlnIGZ1bmNzCisKK0FkZCBtb2RlIHNldHRpbmcgZnVuY3Rpb25zIGZvciBKSDcx MTAgU29DLgorCitTaWduZWQtb2ZmLWJ5OiBLZWl0aCBaaGFvIDxrZWl0aC56aGFvQHN0YXJmaXZl dGVjaC5jb20+CistLS0KKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vTWFrZWZpbGUgfCAg IDEgKworIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYuYyB8ICAgMyArCisgZHJp dmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2ZiLmMgIHwgMTgxICsrKysrKysrKysrKysrKysr KysrKysrKysrKworIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5oICB8ICAxNSAr KysKKyA0IGZpbGVzIGNoYW5nZWQsIDIwMCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5jCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19mYi5oCisKK2RpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmVy aXNpbGljb24vTWFrZWZpbGUKK2luZGV4IDMwMzYwZTM3MGU0Ny4uMzgyNTRkYzVkOThkIDEwMDY0 NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlCisrKysgYi9kcml2 ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vTWFrZWZpbGUKK0BAIC0xLDYgKzEsNyBAQAorICMgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyAKKyB2c19kcm0tb2JqcyA6PSB2c19kcnYu byBcCisrCQl2c19mYi5vIFwKKyAJCXZzX2dlbS5vCisgCisgb2JqLSQoQ09ORklHX0RSTV9WRVJJ U0lMSUNPTikgKz0gdnNfZHJtLm8KK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNp bGljb24vdnNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmMKK2lu ZGV4IGUwYTJmYzQzYjU1Zi4uZDg0YWFjZDc1MWJjIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGlj b24vdnNfZHJ2LmMKK0BAIC0zMCw2ICszMCw3IEBACisgI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5r Lmg+CisgCisgI2luY2x1ZGUgInZzX2Rydi5oIgorKyNpbmNsdWRlICJ2c19mYi5oIgorICNpbmNs dWRlICJ2c19nZW0uaCIKKyAKKyAjZGVmaW5lIERSVl9OQU1FCSJzdGFyZml2ZSIKK0BAIC0xMTgs NiArMTE5LDggQEAgc3RhdGljIGludCB2c19kcm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisg CWlmIChyZXQpCisgCQlnb3RvIGVycl9tb2RlOworIAorKwl2c19tb2RlX2NvbmZpZ19pbml0KGRy bV9kZXYpOworKworIAlyZXQgPSBkcm1fdmJsYW5rX2luaXQoZHJtX2RldiwgZHJtX2Rldi0+bW9k ZV9jb25maWcubnVtX2NydGMpOworIAlpZiAocmV0KQorIAkJZ290byBlcnJfYmluZDsKK2RpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZmIuYyBiL2RyaXZlcnMvZ3B1 L2RybS92ZXJpc2lsaWNvbi92c19mYi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMDAwLi4zZTg1ZjczNjUwODQKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvZ3B1 L2RybS92ZXJpc2lsaWNvbi92c19mYi5jCitAQCAtMCwwICsxLDE4MSBAQAorKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgVmVy aVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQuCisrICovCisrCisrI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisrCisrI2luY2x1ZGUgPGRybS9k cm1fZGFtYWdlX2hlbHBlci5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorKyNp bmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5o PgorKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2ZyYW1l YnVmZmVyLmg+CisrI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CisrI2luY2x1ZGUgPGRybS9kcm1f Z2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgorKworKyNpbmNsdWRlICJ2c19mYi5oIgorKyNpbmNs dWRlICJ2c19nZW0uaCIKKysKKysjZGVmaW5lIGZvdXJjY19tb2RfdnNfZ2V0X3R5cGUodmFsKSBc CisrCSgoKHZhbCkgJiBEUk1fRk9STUFUX01PRF9WU19UWVBFX01BU0spID4+IDU0KQorKworK3N0 YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIHZzX2ZiX2Z1bmNzID0geworKwkuY3Jl YXRlX2hhbmRsZQk9IGRybV9nZW1fZmJfY3JlYXRlX2hhbmRsZSwKKysJLmRlc3Ryb3kJPSBkcm1f Z2VtX2ZiX2Rlc3Ryb3ksCisrCS5kaXJ0eQkJPSBkcm1fYXRvbWljX2hlbHBlcl9kaXJ0eWZiLAor K307CisrCisrc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgorK3ZzX2ZiX2FsbG9jKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2Rl X2NtZCwKKysJICAgIHN0cnVjdCB2c19nZW1fb2JqZWN0ICoqb2JqLCB1bnNpZ25lZCBpbnQgbnVt X3BsYW5lcykKKyt7CisrCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworKwlpbnQgcmV0LCBp OworKworKwlmYiA9IGt6YWxsb2Moc2l6ZW9mKCpmYiksIEdGUF9LRVJORUwpOworKwlpZiAoIWZi KQorKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisrCisrCWRybV9oZWxwZXJfbW9kZV9maWxs X2ZiX3N0cnVjdChkZXYsIGZiLCBtb2RlX2NtZCk7CisrCisrCWZvciAoaSA9IDA7IGkgPCBudW1f cGxhbmVzOyBpKyspCisrCQlmYi0+b2JqW2ldID0gJm9ialtpXS0+YmFzZTsKKysKKysJcmV0ID0g ZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCBmYiwgJnZzX2ZiX2Z1bmNzKTsKKysJaWYgKHJldCkg eworKwkJZGV2X2VycihkZXYtPmRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIGZyYW1lYnVmZmVy OiAlZFxuIiwKKysJCQlyZXQpOworKwkJa2ZyZWUoZmIpOworKwkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKKysJfQorKworKwlyZXR1cm4gZmI7CisrfQorKworK3N0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICp2c19mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKysJCQkJCSAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKysJCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX21v ZGVfZmJfY21kMiAqbW9kZV9jbWQpCisreworKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsK KysJY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbzsKKysJc3RydWN0IHZzX2dlbV9v YmplY3QgKm9ianNbTUFYX05VTV9QTEFORVNdOworKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i ajsKKysJdW5zaWduZWQgaW50IGhlaWdodCwgc2l6ZTsKKysJdW5zaWduZWQgY2hhciBpLCBudW1f cGxhbmVzOworKwlpbnQgcmV0ID0gMDsKKysKKysJaW5mbyA9IGRybV9nZXRfZm9ybWF0X2luZm8o ZGV2LCBtb2RlX2NtZCk7CisrCWlmICghaW5mbykKKysJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwp OworKworKwludW1fcGxhbmVzID0gaW5mby0+bnVtX3BsYW5lczsKKysJaWYgKG51bV9wbGFuZXMg PiBNQVhfTlVNX1BMQU5FUykKKysJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworKworKwlmb3Ig KGkgPSAwOyBpIDwgbnVtX3BsYW5lczsgaSsrKSB7CisrCQlvYmogPSBkcm1fZ2VtX29iamVjdF9s b29rdXAoZmlsZV9wcml2LCBtb2RlX2NtZC0+aGFuZGxlc1tpXSk7CisrCQlpZiAoIW9iaikgewor KwkJCWRldl9lcnIoZGV2LT5kZXYsICJGYWlsZWQgdG8gbG9va3VwIEdFTSBvYmplY3QuXG4iKTsK KysJCQlyZXQgPSAtRU5YSU87CisrCQkJZ290byBlcnI7CisrCQl9CisrCisrCQloZWlnaHQgPSBk cm1fZm9ybWF0X2luZm9fcGxhbmVfaGVpZ2h0KGluZm8sCisrCQkJCQkJICAgICAgbW9kZV9jbWQt PmhlaWdodCwgaSk7CisrCisrCQlzaXplID0gaGVpZ2h0ICogbW9kZV9jbWQtPnBpdGNoZXNbaV0g KyBtb2RlX2NtZC0+b2Zmc2V0c1tpXTsKKysKKysJCWlmIChvYmotPnNpemUgPCBzaXplKSB7Cisr CQkJZHJtX2dlbV9vYmplY3RfcHV0KG9iaik7CisrCisrCQkJcmV0ID0gLUVJTlZBTDsKKysJCQln b3RvIGVycjsKKysJCX0KKysKKysJCW9ianNbaV0gPSB0b192c19nZW1fb2JqZWN0KG9iaik7Cisr CX0KKysKKysJZmIgPSB2c19mYl9hbGxvYyhkZXYsIG1vZGVfY21kLCBvYmpzLCBpKTsKKysJaWYg KElTX0VSUihmYikpIHsKKysJCXJldCA9IFBUUl9FUlIoZmIpOworKwkJZ290byBlcnI7CisrCX0K KysKKysJcmV0dXJuIGZiOworKworK2VycjoKKysJZm9yICg7IGkgPiAwOyBpLS0pCisrCQlkcm1f Z2VtX29iamVjdF9wdXQoJm9ianNbaSAtIDFdLT5iYXNlKTsKKysKKysJcmV0dXJuIEVSUl9QVFIo cmV0KTsKKyt9CisrCisrc3RydWN0IHZzX2dlbV9vYmplY3QgKnZzX2ZiX2dldF9nZW1fb2JqKHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorKwkJCQkJdW5zaWduZWQgY2hhciBwbGFuZSkKKyt7 CisrCWlmIChwbGFuZSA+IE1BWF9OVU1fUExBTkVTKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCXJl dHVybiB0b192c19nZW1fb2JqZWN0KGZiLT5vYmpbcGxhbmVdKTsKKyt9CisrCisrc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gdnNfZm9ybWF0c1tdID0geworKwl7LmZvcm1hdCA9 IERSTV9GT1JNQVRfTlYxMiwgLmRlcHRoID0gMCwgLm51bV9wbGFuZXMgPSAyLCAuY2hhcl9wZXJf YmxvY2sgPSB7IDIwLCA0MCwgMCB9LAorKwkgLmJsb2NrX3cgPSB7IDQsIDQsIDAgfSwgLmJsb2Nr X2ggPSB7IDQsIDQsIDAgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDIsIC5pc195dXYgPSB0cnVlfSwK KysJey5mb3JtYXQgPSBEUk1fRk9STUFUX1lVVjQ0NCwgLmRlcHRoID0gMCwgLm51bV9wbGFuZXMg PSAzLCAuY2hhcl9wZXJfYmxvY2sgPSB7IDIwLCAyMCwgMjAgfSwKKysJIC5ibG9ja193ID0geyA0 LCA0LCA0IH0sIC5ibG9ja19oID0geyA0LCA0LCA0IH0sIC5oc3ViID0gMSwgLnZzdWIgPSAxLCAu aXNfeXV2ID0gdHJ1ZX0sCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRf aW5mbyAqCisrdnNfbG9va3VwX2Zvcm1hdF9pbmZvKGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2lu Zm8gZm9ybWF0c1tdLAorKwkJICAgICAgaW50IG51bV9mb3JtYXRzLCB1MzIgZm9ybWF0KQorK3sK KysJaW50IGk7CisrCisrCWZvciAoaSA9IDA7IGkgPCBudW1fZm9ybWF0czsgaSsrKSB7CisrCQlp ZiAoZm9ybWF0c1tpXS5mb3JtYXQgPT0gZm9ybWF0KQorKwkJCXJldHVybiAmZm9ybWF0c1tpXTsK KysJfQorKworKwlyZXR1cm4gTlVMTDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f Zm9ybWF0X2luZm8gKgorK3ZzX2dldF9mb3JtYXRfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX21vZGVf ZmJfY21kMiAqY21kKQorK3sKKysJaWYgKGZvdXJjY19tb2RfdnNfZ2V0X3R5cGUoY21kLT5tb2Rp ZmllclswXSkgPT0KKysJCURSTV9GT1JNQVRfTU9EX1ZTX1RZUEVfQ1VTVE9NXzEwQklUKQorKwkJ cmV0dXJuIHZzX2xvb2t1cF9mb3JtYXRfaW5mbyh2c19mb3JtYXRzLCBBUlJBWV9TSVpFKHZzX2Zv cm1hdHMpLAorKwkJCQkJCQkJCSBjbWQtPnBpeGVsX2Zvcm1hdCk7CisrCWVsc2UKKysJCXJldHVy biBOVUxMOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5j cyB2c19tb2RlX2NvbmZpZ19mdW5jcyA9IHsKKysJLmZiX2NyZWF0ZQkJCSA9IHZzX2ZiX2NyZWF0 ZSwKKysJLmdldF9mb3JtYXRfaW5mbwkgPSB2c19nZXRfZm9ybWF0X2luZm8sCisrCS5vdXRwdXRf cG9sbF9jaGFuZ2VkID0gZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkLAorKwkuYXRv bWljX2NoZWNrCQkgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKKysJLmF0b21pY19jb21taXQJ CSA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKKyt9OworKworK3N0YXRpYyBzdHJ1Y3QgZHJt X21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyB2c19tb2RlX2NvbmZpZ19oZWxwZXJzID0geworKwku YXRvbWljX2NvbW1pdF90YWlsID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3RhaWxfcnBtLAor K307CisrCisrdm9pZCB2c19tb2RlX2NvbmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CisreworKwlkZXYtPm1vZGVfY29uZmlnLmZiX21vZGlmaWVyc19ub3Rfc3VwcG9ydGVkID0gZmFs c2U7CisrCisrCWlmIChkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9PSAwIHx8CisrCSAgICBk ZXYtPm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPT0gMCkgeworKwkJZGV2LT5tb2RlX2NvbmZpZy5t aW5fd2lkdGggID0gMDsKKysJCWRldi0+bW9kZV9jb25maWcubWluX2hlaWdodCA9IDA7CisrCQlk ZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCAgPSA0MDk2OworKwkJZGV2LT5tb2RlX2NvbmZpZy5t YXhfaGVpZ2h0ID0gNDA5NjsKKysJfQorKwlkZXYtPm1vZGVfY29uZmlnLmZ1bmNzID0gJnZzX21v ZGVfY29uZmlnX2Z1bmNzOworKwlkZXYtPm1vZGVfY29uZmlnLmhlbHBlcl9wcml2YXRlID0gJnZz X21vZGVfY29uZmlnX2hlbHBlcnM7CisrfQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 ZXJpc2lsaWNvbi92c19mYi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2ZiLmgK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjc4ZGRhOGU0Mjg5NAor LS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2ZiLmgK K0BAIC0wLDAgKzEsMTUgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAq LworKy8qCisrICogQ29weXJpZ2h0IChDKSAyMDIzIFZlcmlTaWxpY29uIEhvbGRpbmdzIENvLiwg THRkLgorKyAqLworKworKyNpZm5kZWYgX19WU19GQl9IX18KKysjZGVmaW5lIF9fVlNfRkJfSF9f CisrCisrI2RlZmluZSBNQVhfTlVNX1BMQU5FUwkJMyAvKiBjb2xvdXIgZm9ybWF0IHBsYW5lICov CisrCisrc3RydWN0IHZzX2dlbV9vYmplY3QgKnZzX2ZiX2dldF9nZW1fb2JqKHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAorKwkJCQkJdW5zaWduZWQgY2hhciBwbGFuZSk7CisrCisrdm9pZCB2 c19tb2RlX2NvbmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworKyNlbmRpZiAvKiBf X1ZTX0ZCX0hfXyAqLworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwNTQtZHJtLXZlcmlzaWxpY29uLUFkZC1kcm0tY3J0Yy1mdW5jcy5wYXRjaCBi L3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDU0LWRybS12ZXJpc2lsaWNvbi1BZGQtZHJtLWNy dGMtZnVuY3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u YTI1Njk2ODg2ZTA5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDU0LWRybS12ZXJpc2lsaWNvbi1BZGQtZHJtLWNydGMtZnVuY3MucGF0Y2gKQEAgLTAsMCAr MSw1ODUgQEAKK0Zyb20gZjU5MTgxNGVlMmE4NWEzNzFlYWRmOWM1Y2UxNmY1NGVlYWRkYzQwMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtlaXRoIFpoYW8gPGtlaXRoLnpoYW9Ac3Rh cmZpdmV0ZWNoLmNvbT4KK0RhdGU6IEZyaSwgMiBKdW4gMjAyMyAxNTo0MDo0MCArMDgwMAorU3Vi amVjdDogW1BBVENIIDU0LzcyXSBkcm0vdmVyaXNpbGljb246IEFkZCBkcm0gY3J0YyBmdW5jcwor CitBZGQgY3J0YyBkcml2ZXIgd2hpY2ggaW1wbGVtZW50cyBjcnRjIHJlbGF0ZWQgb3BlcmF0aW9u IGZ1bmN0aW9ucy4KKworU2lnbmVkLW9mZi1ieTogS2VpdGggWmhhbyA8a2VpdGguemhhb0BzdGFy Zml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxl ICB8ICAgMSArCisgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2NydGMuYyB8IDM4OCAr KysrKysrKysrKysrKysrKysrKysrKysrKworIGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92 c19jcnRjLmggfCAgNzQgKysrKysKKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfdHlw ZS5oIHwgIDcyICsrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCA1MzUgaW5zZXJ0aW9ucygrKQorIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfY3J0Yy5jCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19jcnRjLmgK KyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3R5cGUu aAorCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlIGIv ZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlCitpbmRleCAzODI1NGRjNWQ5OGQu LmJhZTVmYmFiOWJiYiAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9N YWtlZmlsZQorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlCitAQCAt MSw2ICsxLDcgQEAKKyAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisgCisgdnNf ZHJtLW9ianMgOj0gdnNfZHJ2Lm8gXAorKwkJdnNfY3J0Yy5vIFwKKyAJCXZzX2ZiLm8gXAorIAkJ dnNfZ2VtLm8KKyAKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNf Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2NydGMuYworbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uYTllNzQyZDdiZDFhCistLS0gL2Rldi9u dWxsCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfY3J0Yy5jCitAQCAtMCww ICsxLDM4OCBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysg KiBDb3B5cmlnaHQgKEMpIDIwMjMgVmVyaVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQuCisrICoK KysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxpbnV4L2RlYnVn ZnMuaD4KKysjaW5jbHVkZSA8bGludXgvbWVkaWEtYnVzLWZvcm1hdC5oPgorKworKyNpbmNsdWRl IDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4K KysjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisrI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2F0b21p Y19oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV92YmxhbmsuaD4KKysjaW5jbHVkZSA8ZHJt L3ZzX2RybS5oPgorKworKyNpbmNsdWRlICJ2c19jcnRjLmgiCisrCisrdm9pZCB2c19jcnRjX2Rl c3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQorK3sKKysJc3RydWN0IHZzX2NydGMgKnZzX2Ny dGMgPSB0b192c19jcnRjKGNydGMpOworKworKwlkcm1fY3J0Y19jbGVhbnVwKGNydGMpOworKwlr ZnJlZSh2c19jcnRjKTsKKyt9CisrCisrc3RhdGljIHZvaWQgdnNfY3J0Y19yZXNldChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCisreworKwlzdHJ1Y3QgdnNfY3J0Y19zdGF0ZSAqc3RhdGU7CisrCisr CWlmIChjcnRjLT5zdGF0ZSkgeworKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lf c3RhdGUoY3J0Yy0+c3RhdGUpOworKworKwkJc3RhdGUgPSB0b192c19jcnRjX3N0YXRlKGNydGMt PnN0YXRlKTsKKysJCWtmcmVlKHN0YXRlKTsKKysJCWNydGMtPnN0YXRlID0gTlVMTDsKKysJfQor KworKwlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOworKwlpZiAo IXN0YXRlKQorKwkJcmV0dXJuOworKworKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQo Y3J0YywgJnN0YXRlLT5iYXNlKTsKKysKKysJc3RhdGUtPnN5bmNfbW9kZSA9IFZTX1NJTkdMRV9E QzsKKysJc3RhdGUtPm91dHB1dF9mbXQgPSBNRURJQV9CVVNfRk1UX1JCRzg4OF8xWDI0OworKwlz dGF0ZS0+ZW5jb2Rlcl90eXBlID0gRFJNX01PREVfRU5DT0RFUl9OT05FOworK30KKysKKytzdGF0 aWMgc3RydWN0IGRybV9jcnRjX3N0YXRlICoKKyt2c19jcnRjX2F0b21pY19kdXBsaWNhdGVfc3Rh dGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQorK3sKKysJc3RydWN0IHZzX2NydGNfc3RhdGUgKm9y aV9zdGF0ZTsKKysJc3RydWN0IHZzX2NydGNfc3RhdGUgKnN0YXRlOworKworKwlpZiAoV0FSTl9P TighY3J0Yy0+c3RhdGUpKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCW9yaV9zdGF0ZSA9IHRvX3Zz X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOworKwlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0 ZSksIEdGUF9LRVJORUwpOworKwlpZiAoIXN0YXRlKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCV9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0YywgJnN0YXRlLT5iYXNl KTsKKysKKysJc3RhdGUtPnN5bmNfbW9kZSA9IG9yaV9zdGF0ZS0+c3luY19tb2RlOworKwlzdGF0 ZS0+b3V0cHV0X2ZtdCA9IG9yaV9zdGF0ZS0+b3V0cHV0X2ZtdDsKKysJc3RhdGUtPmVuY29kZXJf dHlwZSA9IG9yaV9zdGF0ZS0+ZW5jb2Rlcl90eXBlOworKwlzdGF0ZS0+YmdfY29sb3IgPSBvcmlf c3RhdGUtPmJnX2NvbG9yOworKwlzdGF0ZS0+YnBwID0gb3JpX3N0YXRlLT5icHA7CisrCXN0YXRl LT5zeW5jX2VuYWJsZSA9IG9yaV9zdGF0ZS0+c3luY19lbmFibGU7CisrCXN0YXRlLT5kaXRoZXJf ZW5hYmxlID0gb3JpX3N0YXRlLT5kaXRoZXJfZW5hYmxlOworKwlzdGF0ZS0+dW5kZXJmbG93ID0g b3JpX3N0YXRlLT51bmRlcmZsb3c7CisrCisrCXJldHVybiAmc3RhdGUtPmJhc2U7CisrfQorKwor K3N0YXRpYyB2b2lkIHZzX2NydGNfYXRvbWljX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLAorKwkJCQkJIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCisreworKwlfX2Ry bV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShzdGF0ZSk7CisrCWtmcmVlKHRvX3Zz X2NydGNfc3RhdGUoc3RhdGUpKTsKKyt9CisrCisrc3RhdGljIGludCB2c19jcnRjX2F0b21pY19z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAorKwkJCQkgICAgICAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpzdGF0ZSwKKysJCQkJICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnBy b3BlcnR5LAorKwkJCQkgICAgICAgdWludDY0X3QgdmFsKQorK3sKKysJc3RydWN0IHZzX2NydGMg KnZzX2NydGMgPSB0b192c19jcnRjKGNydGMpOworKwlzdHJ1Y3QgdnNfY3J0Y19zdGF0ZSAqdnNf Y3J0Y19zdGF0ZSA9IHRvX3ZzX2NydGNfc3RhdGUoc3RhdGUpOworKworKwlpZiAocHJvcGVydHkg PT0gdnNfY3J0Yy0+c3luY19tb2RlKQorKwkJdnNfY3J0Y19zdGF0ZS0+c3luY19tb2RlID0gdmFs OworKwllbHNlIGlmIChwcm9wZXJ0eSA9PSB2c19jcnRjLT5tbXVfcHJlZmV0Y2gpCisrCQl2c19j cnRjX3N0YXRlLT5tbXVfcHJlZmV0Y2ggPSB2YWw7CisrCWVsc2UgaWYgKHByb3BlcnR5ID09IHZz X2NydGMtPmJnX2NvbG9yKQorKwkJdnNfY3J0Y19zdGF0ZS0+YmdfY29sb3IgPSB2YWw7CisrCWVs c2UgaWYgKHByb3BlcnR5ID09IHZzX2NydGMtPnBhbmVsX3N5bmMpCisrCQl2c19jcnRjX3N0YXRl LT5zeW5jX2VuYWJsZSA9IHZhbDsKKysJZWxzZSBpZiAocHJvcGVydHkgPT0gdnNfY3J0Yy0+ZGl0 aGVyKQorKwkJdnNfY3J0Y19zdGF0ZS0+ZGl0aGVyX2VuYWJsZSA9IHZhbDsKKysJZWxzZQorKwkJ cmV0dXJuIC1FSU5WQUw7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHZzX2Ny dGNfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisrCQkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLAorKwkJCQkgICAgICAgc3RydWN0 IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisrCQkJCSAgICAgICB1aW50NjRfdCAqdmFsKQorK3sK KysJc3RydWN0IHZzX2NydGMgKnZzX2NydGMgPSB0b192c19jcnRjKGNydGMpOworKwljb25zdCBz dHJ1Y3QgdnNfY3J0Y19zdGF0ZSAqdnNfY3J0Y19zdGF0ZSA9CisrCQljb250YWluZXJfb2Yoc3Rh dGUsIGNvbnN0IHN0cnVjdCB2c19jcnRjX3N0YXRlLCBiYXNlKTsKKysKKysJaWYgKHByb3BlcnR5 ID09IHZzX2NydGMtPnN5bmNfbW9kZSkKKysJCSp2YWwgPSB2c19jcnRjX3N0YXRlLT5zeW5jX21v ZGU7CisrCWVsc2UgaWYgKHByb3BlcnR5ID09IHZzX2NydGMtPm1tdV9wcmVmZXRjaCkKKysJCSp2 YWwgPSB2c19jcnRjX3N0YXRlLT5tbXVfcHJlZmV0Y2g7CisrCWVsc2UgaWYgKHByb3BlcnR5ID09 IHZzX2NydGMtPmJnX2NvbG9yKQorKwkJKnZhbCA9IHZzX2NydGNfc3RhdGUtPmJnX2NvbG9yOwor KwllbHNlIGlmIChwcm9wZXJ0eSA9PSB2c19jcnRjLT5wYW5lbF9zeW5jKQorKwkJKnZhbCA9IHZz X2NydGNfc3RhdGUtPnN5bmNfZW5hYmxlOworKwllbHNlIGlmIChwcm9wZXJ0eSA9PSB2c19jcnRj LT5kaXRoZXIpCisrCQkqdmFsID0gdnNfY3J0Y19zdGF0ZS0+ZGl0aGVyX2VuYWJsZTsKKysJZWxz ZQorKwkJcmV0dXJuIC1FSU5WQUw7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50 IHZzX2NydGNfbGF0ZV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCisreworKwlyZXR1 cm4gMDsKKyt9CisrCisrc3RhdGljIGludCB2c19jcnRjX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9jcnRjICpjcnRjKQorK3sKKysJc3RydWN0IHZzX2NydGMgKnZzX2NydGMgPSB0b192c19jcnRj KGNydGMpOworKworKwl2c19jcnRjLT5mdW5jcy0+ZW5hYmxlX3ZibGFuayh2c19jcnRjLT5kZXYs IHRydWUpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHZvaWQgdnNfY3J0Y19kaXNh YmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCisreworKwlzdHJ1Y3QgdnNfY3J0YyAq dnNfY3J0YyA9IHRvX3ZzX2NydGMoY3J0Yyk7CisrCisrCXZzX2NydGMtPmZ1bmNzLT5lbmFibGVf dmJsYW5rKHZzX2NydGMtPmRldiwgZmFsc2UpOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9jcnRjX2Z1bmNzIHZzX2NydGNfZnVuY3MgPSB7CisrCS5zZXRfY29uZmlnCQk9IGRybV9h dG9taWNfaGVscGVyX3NldF9jb25maWcsCisrCS5kZXN0cm95CQk9IHZzX2NydGNfZGVzdHJveSwK KysJLnBhZ2VfZmxpcAkJPSBkcm1fYXRvbWljX2hlbHBlcl9wYWdlX2ZsaXAsCisrCS5yZXNldAkJ CT0gdnNfY3J0Y19yZXNldCwKKysJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSB2c19jcnRjX2F0 b21pY19kdXBsaWNhdGVfc3RhdGUsCisrCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9IHZzX2NydGNf YXRvbWljX2Rlc3Ryb3lfc3RhdGUsCisrCS5hdG9taWNfc2V0X3Byb3BlcnR5CT0gdnNfY3J0Y19h dG9taWNfc2V0X3Byb3BlcnR5LAorKwkuYXRvbWljX2dldF9wcm9wZXJ0eQk9IHZzX2NydGNfYXRv bWljX2dldF9wcm9wZXJ0eSwKKysJLmxhdGVfcmVnaXN0ZXIJCT0gdnNfY3J0Y19sYXRlX3JlZ2lz dGVyLAorKwkuZW5hYmxlX3ZibGFuawkJPSB2c19jcnRjX2VuYWJsZV92YmxhbmssCisrCS5kaXNh YmxlX3ZibGFuawkJPSB2c19jcnRjX2Rpc2FibGVfdmJsYW5rLAorK307CisrCisrc3RhdGljIHU4 IGNhbF9waXhlbF9iaXRzKHUzMiBidXNfZm9ybWF0KQorK3sKKysJdTggYnBwOworKworKwlzd2l0 Y2ggKGJ1c19mb3JtYXQpIHsKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjU2NV8xWDE2OgorKwlj YXNlIE1FRElBX0JVU19GTVRfVVlWWThfMVgxNjoKKysJCWJwcCA9IDE2OworKwkJYnJlYWs7Cisr CWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I2NjZfMVgxODoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JH QjY2Nl8xWDI0X0NQQURISToKKysJCWJwcCA9IDE4OworKwkJYnJlYWs7CisrCWNhc2UgTUVESUFf QlVTX0ZNVF9VWVZZMTBfMVgyMDoKKysJCWJwcCA9IDIwOworKwkJYnJlYWs7CisrCWNhc2UgTUVE SUFfQlVTX0ZNVF9CR1I4ODhfMVgyNDoKKysJY2FzZSBNRURJQV9CVVNfRk1UX1VZWVZZWThfMF81 WDI0OgorKwljYXNlIE1FRElBX0JVU19GTVRfWVVWOF8xWDI0OgorKwkJYnBwID0gMjQ7CisrCQli cmVhazsKKysJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjEwMTAxMF8xWDMwOgorKwljYXNlIE1FRElB X0JVU19GTVRfVVlZVllZMTBfMF81WDMwOgorKwljYXNlIE1FRElBX0JVU19GTVRfWVVWMTBfMVgz MDoKKysJCWJwcCA9IDMwOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlicHAgPSAyNDsKKysJ CWJyZWFrOworKwl9CisrCisrCXJldHVybiBicHA7CisrfQorKworK3N0YXRpYyBib29sIHZzX2Ny dGNfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisrCQkJICAgICAgIGNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKKyt7CisrCXN0cnVjdCB2c19jcnRjICp2c19jcnRjID0g dG9fdnNfY3J0YyhjcnRjKTsKKysKKysJcmV0dXJuIHZzX2NydGMtPmZ1bmNzLT5tb2RlX2ZpeHVw KHZzX2NydGMtPmRldiwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7CisrfQorKworK3N0YXRpYyB2b2lk IHZzX2NydGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisrCQkJCSAgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorK3sKKysJc3RydWN0IHZzX2NydGMgKnZzX2Ny dGMgPSB0b192c19jcnRjKGNydGMpOworKwlzdHJ1Y3QgdnNfY3J0Y19zdGF0ZSAqdnNfY3J0Y19z dGF0ZSA9IHRvX3ZzX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOworKworKwl2c19jcnRjX3N0YXRl LT5icHAgPSBjYWxfcGl4ZWxfYml0cyh2c19jcnRjX3N0YXRlLT5vdXRwdXRfZm10KTsKKysKKysJ dnNfY3J0Yy0+ZnVuY3MtPmVuYWJsZSh2c19jcnRjLT5kZXYsIGNydGMpOworKwlkcm1fY3J0Y192 Ymxhbmtfb24oY3J0Yyk7CisrfQorKworK3N0YXRpYyB2b2lkIHZzX2NydGNfYXRvbWljX2Rpc2Fi bGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorKwkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCisreworKwlzdHJ1Y3QgdnNfY3J0YyAqdnNfY3J0YyA9IHRvX3ZzX2NydGMoY3J0 Yyk7CisrCisrCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CisrCisrCXZzX2NydGMtPmZ1bmNz LT5kaXNhYmxlKHZzX2NydGMtPmRldiwgY3J0Yyk7CisrCisrCWlmIChjcnRjLT5zdGF0ZS0+ZXZl bnQgJiYgIWNydGMtPnN0YXRlLT5hY3RpdmUpIHsKKysJCXNwaW5fbG9ja19pcnEoJmNydGMtPmRl di0+ZXZlbnRfbG9jayk7CisrCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudChjcnRjLCBjcnRj LT5zdGF0ZS0+ZXZlbnQpOworKwkJc3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xv Y2spOworKworKwkJY3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKKysJfQorK30KKysKKytzdGF0 aWMgdm9pZCB2c19jcnRjX2F0b21pY19iZWdpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisrCQkJ CSBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCisreworKwlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwK KysJCQkJCQkJCQkgIGNydGMpOworKworKwlzdHJ1Y3QgdnNfY3J0YyAqdnNfY3J0YyA9IHRvX3Zz X2NydGMoY3J0Yyk7CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9IHZzX2NydGMtPmRldjsKKysJc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Yy0+c3RhdGUtPmdhbW1hX2x1dDsKKysJ c3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dDsKKysKKysJaWYgKGNydGNfc3RhdGUtPmNvbG9yX21n bXRfY2hhbmdlZCkgeworKwkJaWYgKGJsb2IgJiYgYmxvYi0+bGVuZ3RoKSB7CisrCQkJbHV0ID0g YmxvYi0+ZGF0YTsKKysJCQl2c19jcnRjLT5mdW5jcy0+c2V0X2dhbW1hKGRldiwgY3J0YywgbHV0 LAorKwkJCQkJCSAgYmxvYi0+bGVuZ3RoIC8gc2l6ZW9mKCpsdXQpKTsKKysJCQl2c19jcnRjLT5m dW5jcy0+ZW5hYmxlX2dhbW1hKGRldiwgY3J0YywgdHJ1ZSk7CisrCQl9IGVsc2UgeworKwkJCXZz X2NydGMtPmZ1bmNzLT5lbmFibGVfZ2FtbWEoZGV2LCBjcnRjLCBmYWxzZSk7CisrCQl9CisrCX0K Kyt9CisrCisrc3RhdGljIHZvaWQgdnNfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRj ICpjcnRjLAorKwkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQorK3sKKysJc3Ry dWN0IHZzX2NydGMgKnZzX2NydGMgPSB0b192c19jcnRjKGNydGMpOworKwlzdHJ1Y3QgZHJtX3Bl bmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCA9IGNydGMtPnN0YXRlLT5ldmVudDsKKysKKysJdnNf Y3J0Yy0+ZnVuY3MtPmNvbW1pdCh2c19jcnRjLT5kZXYpOworKworKwlpZiAoZXZlbnQpIHsKKysJ CVdBUk5fT04oZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKSAhPSAwKTsKKysKKysJCXNwaW5fbG9j a19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CisrCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2 ZW50KGNydGMsIGV2ZW50KTsKKysJCXNwaW5fdW5sb2NrX2lycSgmY3J0Yy0+ZGV2LT5ldmVudF9s b2NrKTsKKysJCWNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7CisrCX0KKyt9CisrCisrc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgdnNfY3J0Y19oZWxwZXJfZnVuY3Mg PSB7CisrCS5tb2RlX2ZpeHVwID0gdnNfY3J0Y19tb2RlX2ZpeHVwLAorKwkuYXRvbWljX2VuYWJs ZQk9IHZzX2NydGNfYXRvbWljX2VuYWJsZSwKKysJLmF0b21pY19kaXNhYmxlID0gdnNfY3J0Y19h dG9taWNfZGlzYWJsZSwKKysJLmF0b21pY19iZWdpbgk9IHZzX2NydGNfYXRvbWljX2JlZ2luLAor KwkuYXRvbWljX2ZsdXNoCT0gdnNfY3J0Y19hdG9taWNfZmx1c2gsCisrfTsKKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCB2c19zeW5jX21vZGVfZW51bV9saXN0W10g PSB7CisrCXsgVlNfU0lOR0xFX0RDLAkJCSJzaW5nbGUgZGMgbW9kZSIgfSwKKysJeyBWU19NVUxU SV9EQ19QUklNQVJZLAkJInByaW1hcnkgZGMgZm9yIG11bHRpIGRjIG1vZGUiIH0sCisrCXsgVlNf TVVMVElfRENfU0VDT05EQVJZLAkic2Vjb25kYXJ5IGRjIGZvciBtdWx0aSBkYyBtb2RlIiB9LAor K307CisrCisrc3RydWN0IHZzX2NydGMgKnZzX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkcm1fZGV2LAorKwkJCSAgICAgICBzdHJ1Y3QgdnNfZGNfaW5mbyAqaW5mbykKKyt7CisrCXN0 cnVjdCB2c19jcnRjICpjcnRjOworKwlpbnQgcmV0OworKworKwlpZiAoIWluZm8pCisrCQlyZXR1 cm4gTlVMTDsKKysKKysJY3J0YyA9IGt6YWxsb2Moc2l6ZW9mKCpjcnRjKSwgR0ZQX0tFUk5FTCk7 CisrCWlmICghY3J0YykKKysJCXJldHVybiBOVUxMOworKworKwlyZXQgPSBkcm1fY3J0Y19pbml0 X3dpdGhfcGxhbmVzKGRybV9kZXYsICZjcnRjLT5iYXNlLAorKwkJCQkJTlVMTCwgTlVMTCwgJnZz X2NydGNfZnVuY3MsCisrCQkJCQlpbmZvLT5uYW1lID8gaW5mby0+bmFtZSA6IE5VTEwpOworKwlp ZiAocmV0KQorKwkJZ290byBlcnJfZnJlZV9jcnRjOworKworKwlkcm1fY3J0Y19oZWxwZXJfYWRk KCZjcnRjLT5iYXNlLCAmdnNfY3J0Y19oZWxwZXJfZnVuY3MpOworKworKwkvKiBTZXQgdXAgdGhl IGNydGMgcHJvcGVydGllcyAqLworKwlpZiAoaW5mby0+cGlwZV9zeW5jKSB7CisrCQljcnRjLT5z eW5jX21vZGUgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZHJtX2RldiwgMCwKKysJCQkJCQkJ ICAgIlNZTkNfTU9ERSIsCisrCQkJCQkJCSAgICB2c19zeW5jX21vZGVfZW51bV9saXN0LAorKwkJ CQkJCQkgICAgQVJSQVlfU0laRSh2c19zeW5jX21vZGVfZW51bV9saXN0KSk7CisrCisrCQlpZiAo IWNydGMtPnN5bmNfbW9kZSkKKysJCQlnb3RvIGVycl9jbGVhbnVwX2NydHM7CisrCisrCQlkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZS5iYXNlLAorKwkJCQkJICAgY3J0Yy0+ c3luY19tb2RlLAorKwkJCQkJICAgVlNfU0lOR0xFX0RDKTsKKysJfQorKworKwlpZiAoaW5mby0+ Z2FtbWFfc2l6ZSkgeworKwkJcmV0ID0gZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZSgmY3J0 Yy0+YmFzZSwKKysJCQkJCQkgICBpbmZvLT5nYW1tYV9zaXplKTsKKysJCWlmIChyZXQpCisrCQkJ Z290byBlcnJfY2xlYW51cF9jcnRzOworKworKwkJZHJtX2NydGNfZW5hYmxlX2NvbG9yX21nbXQo JmNydGMtPmJhc2UsIDAsIGZhbHNlLAorKwkJCQkJICAgaW5mby0+Z2FtbWFfc2l6ZSk7CisrCX0K KysKKysJaWYgKGluZm8tPmJhY2tncm91bmQpIHsKKysJCWNydGMtPmJnX2NvbG9yID0gZHJtX3By b3BlcnR5X2NyZWF0ZV9yYW5nZShkcm1fZGV2LCAwLAorKwkJCQkJCQkgICAiQkdfQ09MT1IiLCAw LCAweGZmZmZmZmZmKTsKKysKKysJCWlmICghY3J0Yy0+YmdfY29sb3IpCisrCQkJZ290byBlcnJf Y2xlYW51cF9jcnRzOworKworKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNydGMtPmJh c2UuYmFzZSwgY3J0Yy0+YmdfY29sb3IsIDApOworKwl9CisrCisrCWlmIChpbmZvLT5wYW5lbF9z eW5jKSB7CisrCQljcnRjLT5wYW5lbF9zeW5jID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGRy bV9kZXYsIDAsICJTWU5DX0VOQUJMRUQiKTsKKysKKysJCWlmICghY3J0Yy0+cGFuZWxfc3luYykK KysJCQlnb3RvIGVycl9jbGVhbnVwX2NydHM7CisrCisrCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9w ZXJ0eSgmY3J0Yy0+YmFzZS5iYXNlLCBjcnRjLT5wYW5lbF9zeW5jLCAwKTsKKysJfQorKworKwlj cnRjLT5kaXRoZXIgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2Jvb2woZHJtX2RldiwgMCwgIkRJVEhF Ul9FTkFCTEVEIik7CisrCWlmICghY3J0Yy0+ZGl0aGVyKQorKwkJZ290byBlcnJfY2xlYW51cF9j cnRzOworKworKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZS5iYXNlLCBj cnRjLT5kaXRoZXIsIDApOworKworKwljcnRjLT5tYXhfYnBjID0gaW5mby0+bWF4X2JwYzsKKysJ Y3J0Yy0+Y29sb3JfZm9ybWF0cyA9IGluZm8tPmNvbG9yX2Zvcm1hdHM7CisrCXJldHVybiBjcnRj OworKworK2Vycl9jbGVhbnVwX2NydHM6CisrCWRybV9jcnRjX2NsZWFudXAoJmNydGMtPmJhc2Up OworKworK2Vycl9mcmVlX2NydGM6CisrCWtmcmVlKGNydGMpOworKwlyZXR1cm4gTlVMTDsKKyt9 CisrCisrdm9pZCB2c19jcnRjX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjLCBi b29sIHVuZGVyZmxvdykKKyt7CisrCXN0cnVjdCB2c19jcnRjX3N0YXRlICp2c19jcnRjX3N0YXRl ID0gdG9fdnNfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CisrCisrCWRybV9jcnRjX2hhbmRsZV92 YmxhbmsoY3J0Yyk7CisrCisrCXZzX2NydGNfc3RhdGUtPnVuZGVyZmxvdyA9IHVuZGVyZmxvdzsK Kyt9CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2NydGMuaCBi L2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19jcnRjLmgKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjMzYjNiMTQyNDljZQorLS0tIC9kZXYvbnVsbAorKysr IGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2NydGMuaAorQEAgLTAsMCArMSw3NCBA QAorKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisrLyoKKysgKiBDb3B5 cmlnaHQgKEMpIDIwMjMgVmVyaVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQuCisrICovCisrCisr I2lmbmRlZiBfX1ZTX0NSVENfSF9fCisrI2RlZmluZSBfX1ZTX0NSVENfSF9fCisrCisrI2luY2x1 ZGUgPGRybS9kcm1fY3J0Yy5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cisr CisrI2luY2x1ZGUgInZzX3R5cGUuaCIKKysKKytzdHJ1Y3QgdnNfY3J0Y19mdW5jcyB7CisrCXZv aWQgKCplbmFibGUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjKTsK KysJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpj cnRjKTsKKysJYm9vbCAoKm1vZGVfZml4dXApKHN0cnVjdCBkZXZpY2UgKmRldiwKKysJCQkgICBj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKysJCQkgICBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSk7CisrCXZvaWQgKCpzZXRfZ2FtbWEpKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAorKwkJCSAgc3RydWN0IGRybV9jb2xv cl9sdXQgKmx1dCwgdW5zaWduZWQgaW50IHNpemUpOworKwl2b2lkICgqZW5hYmxlX2dhbW1hKShz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKysJCQkgICAgIGJvb2wg ZW5hYmxlKTsKKysJdm9pZCAoKmVuYWJsZV92YmxhbmspKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9v bCBlbmFibGUpOworKwl2b2lkICgqY29tbWl0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworK307Cisr Cisrc3RydWN0IHZzX2NydGNfc3RhdGUgeworKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsK KysKKysJdTMyIHN5bmNfbW9kZTsKKysJdTMyIG91dHB1dF9mbXQ7CisrCXUzMiBiZ19jb2xvcjsK KysJdTggZW5jb2Rlcl90eXBlOworKwl1OCBtbXVfcHJlZmV0Y2g7CisrCXU4IGJwcDsKKysJYm9v bCBzeW5jX2VuYWJsZTsKKysJYm9vbCBkaXRoZXJfZW5hYmxlOworKwlib29sIHVuZGVyZmxvdzsK Kyt9OworKworK3N0cnVjdCB2c19jcnRjIHsKKysJc3RydWN0IGRybV9jcnRjIGJhc2U7CisrCXN0 cnVjdCBkZXZpY2UgKmRldjsKKysJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZl bnQ7CisrCXVuc2lnbmVkIGludCBtYXhfYnBjOworKwl1bnNpZ25lZCBpbnQgY29sb3JfZm9ybWF0 czsgLyogc3VwcG9ydGVkIGNvbG9yIGZvcm1hdCAqLworKworKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpzeW5jX21vZGU7CisrCXN0cnVjdCBkcm1fcHJvcGVydHkgKm1tdV9wcmVmZXRjaDsKKysJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqYmdfY29sb3I7CisrCXN0cnVjdCBkcm1fcHJvcGVydHkgKnBhbmVs X3N5bmM7CisrCXN0cnVjdCBkcm1fcHJvcGVydHkgKmRpdGhlcjsKKysKKysJY29uc3Qgc3RydWN0 IHZzX2NydGNfZnVuY3MgKmZ1bmNzOworK307CisrCisrdm9pZCB2c19jcnRjX2Rlc3Ryb3koc3Ry dWN0IGRybV9jcnRjICpjcnRjKTsKKysKKytzdHJ1Y3QgdnNfY3J0YyAqdnNfY3J0Y19jcmVhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCisrCQkJICAgICAgIHN0cnVjdCB2c19kY19pbmZv ICppbmZvKTsKKyt2b2lkIHZzX2NydGNfaGFuZGxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIGJvb2wgdW5kZXJmbG93KTsKKysKKytzdGF0aWMgaW5saW5lIHN0cnVjdCB2c19jcnRjICp0 b192c19jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKKyt7CisrCXJldHVybiBjb250YWluZXJf b2YoY3J0Yywgc3RydWN0IHZzX2NydGMsIGJhc2UpOworK30KKysKKytzdGF0aWMgaW5saW5lIHN0 cnVjdCB2c19jcnRjX3N0YXRlICoKKyt0b192c19jcnRjX3N0YXRlKHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqc3RhdGUpCisreworKwlyZXR1cm4gY29udGFpbmVyX29mKHN0YXRlLCBzdHJ1Y3QgdnNf Y3J0Y19zdGF0ZSwgYmFzZSk7CisrfQorKyNlbmRpZiAvKiBfX1ZTX0NSVENfSF9fICovCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3R5cGUuaCBiL2RyaXZlcnMv Z3B1L2RybS92ZXJpc2lsaWNvbi92c190eXBlLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMDAwMDAuLjZmOGRiNjVhNzAzZAorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVy cy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3R5cGUuaAorQEAgLTAsMCArMSw3MiBAQAorKy8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisrLyoKKysgKiBDb3B5cmlnaHQgKEMp IDIwMjMgVmVyaVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQuCisrICovCisrCisrI2lmbmRlZiBf X1ZTX1RZUEVfSF9fCisrI2RlZmluZSBfX1ZTX1RZUEVfSF9fCisrCisrI2luY2x1ZGUgPGxpbnV4 L3ZlcnNpb24uaD4KKysKKysjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZS5oPgorKyNpbmNsdWRlIDxk cm0vZHJtX3BsYW5lX2hlbHBlci5oPgorKworK3N0cnVjdCB2c19wbGFuZV9pbmZvIHsKKysJY29u c3QgY2hhciAqbmFtZTsKKysJdTggaWQ7CisrCWVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZTsKKysJ dW5zaWduZWQgaW50IG51bV9mb3JtYXRzOworKwljb25zdCB1MzIgKmZvcm1hdHM7CisrCXU4IG51 bV9tb2RpZmllcnM7CisrCWNvbnN0IHU2NCAqbW9kaWZpZXJzOworKwl1bnNpZ25lZCBpbnQgbWlu X3dpZHRoOworKwl1bnNpZ25lZCBpbnQgbWluX2hlaWdodDsKKysJdW5zaWduZWQgaW50IG1heF93 aWR0aDsKKysJdW5zaWduZWQgaW50IG1heF9oZWlnaHQ7CisrCXVuc2lnbmVkIGludCByb3RhdGlv bjsKKysJdW5zaWduZWQgaW50IGJsZW5kX21vZGU7CisrCXVuc2lnbmVkIGludCBjb2xvcl9lbmNv ZGluZzsKKysKKysJLyogMCBtZWFucyBubyBkZS1nYW1tYSBMVVQgKi8KKysJdW5zaWduZWQgaW50 IGRlZ2FtbWFfc2l6ZTsKKysKKysJaW50IG1pbl9zY2FsZTsgLyogMTYuMTYgZml4ZWQgcG9pbnQg Ki8KKysJaW50IG1heF9zY2FsZTsgLyogMTYuMTYgZml4ZWQgcG9pbnQgKi8KKysKKysJLyogZGVm YXVsdCB6b3JkZXIgdmFsdWUsCisrCSAqIGFuZCAyNTUgbWVhbnMgdW5zdXBwb3J0ZWQgem9yZGVy IGNhcGFiaWxpdHkKKysJICovCisrCXU4CSB6cG9zOworKworKwlib29sIHdhdGVybWFyazsKKysJ Ym9vbCBjb2xvcl9tZ210OworKwlib29sIHJvaTsKKyt9OworKworK3N0cnVjdCB2c19kY19pbmZv IHsKKysJY29uc3QgY2hhciAqbmFtZTsKKysKKysJdTggcGFuZWxfbnVtOworKworKwkvKiBwbGFu ZXMgKi8KKysJdTggcGxhbmVfbnVtOworKwljb25zdCBzdHJ1Y3QgdnNfcGxhbmVfaW5mbyAqcGxh bmVzOworKworKwl1OCBsYXllcl9udW07CisrCXVuc2lnbmVkIGludCBtYXhfYnBjOworKwl1bnNp Z25lZCBpbnQgY29sb3JfZm9ybWF0czsKKysKKysJLyogMCBtZWFucyBubyBnYW1tYSBMVVQgKi8K KysJdTE2IGdhbW1hX3NpemU7CisrCXU4IGdhbW1hX2JpdHM7CisrCisrCXUxNiBwaXRjaF9hbGln bm1lbnQ7CisrCisrCWJvb2wgcGlwZV9zeW5jOworKwlib29sIG1tdV9wcmVmZXRjaDsKKysJYm9v bCBiYWNrZ3JvdW5kOworKwlib29sIHBhbmVsX3N5bmM7CisrCWJvb2wgY2FwX2RlYzsKKyt9Owor KworKyNlbmRpZiAvKiBfX1ZTX1RZUEVfSF9fICovCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1NS1kcm0tdmVyaXNpbGljb24tQWRkLWRybS1w bGFuZS1mdW5jcy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDU1LWRybS12ZXJp c2lsaWNvbi1BZGQtZHJtLXBsYW5lLWZ1bmNzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLmM5MTlkMjg3YWIxZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1NS1kcm0tdmVyaXNpbGljb24tQWRkLWRybS1wbGFuZS1m dW5jcy5wYXRjaApAQCAtMCwwICsxLDU1OSBAQAorRnJvbSBjODNiN2YwOWJiMGNhNzNkNTk1ZjE2 NDEwYjM1N2Q5MGI2Y2VkZDIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2VpdGgg WmhhbyA8a2VpdGguemhhb0BzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogRnJpLCAyIEp1biAyMDIz IDE1OjQwOjQxICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNTUvNzJdIGRybS92ZXJpc2lsaWNvbjog QWRkIGRybSBwbGFuZSBmdW5jcworCitJbXBsZW1lbnQgcGxhbmUgZnVuY3Rpb25zIGZvciB0aGUg RFJNIGRyaXZlci4KKworU2lnbmVkLW9mZi1ieTogS2VpdGggWmhhbyA8a2VpdGguemhhb0BzdGFy Zml2ZXRlY2guY29tPgorLS0tCisgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxl ICAgfCAgIDMgKy0KKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfcGxhbmUuYyB8IDQ0 MCArKysrKysrKysrKysrKysrKysrKysrKysrCisgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L3ZzX3BsYW5lLmggfCAgNzQgKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDUxNiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92 ZXJpc2lsaWNvbi92c19wbGFuZS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS92ZXJpc2lsaWNvbi92c19wbGFuZS5oCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmVyaXNpbGljb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vTWFrZWZp bGUKK2luZGV4IGJhZTVmYmFiOWJiYi4uZDk2YWQ5Mzk5ZmM3IDEwMDY0NAorLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVy aXNpbGljb24vTWFrZWZpbGUKK0BAIC0zLDcgKzMsOCBAQAorIHZzX2RybS1vYmpzIDo9IHZzX2Ry di5vIFwKKyAJCXZzX2NydGMubyBcCisgCQl2c19mYi5vIFwKKy0JCXZzX2dlbS5vCisrCQl2c19n ZW0ubyBcCisrCQl2c19wbGFuZS5vCisgCisgb2JqLSQoQ09ORklHX0RSTV9WRVJJU0lMSUNPTikg Kz0gdnNfZHJtLm8KKyAKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24v dnNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19wbGFuZS5jCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi43YjBkY2VmMjMyYWUKKy0tLSAv ZGV2L251bGwKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19wbGFuZS5jCitA QCAtMCwwICsxLDQ0MCBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisr LyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgVmVyaVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQu CisrICovCisrCisrI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CisrI2luY2x1ZGUgPGRybS9k cm1fYXRvbWljX2hlbHBlci5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2JsZW5kLmg+CisrI2luY2x1 ZGUgPGRybS9kcm1fZ2VtX2RtYV9oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9mYl9kbWFf aGVscGVyLmg+CisrI2luY2x1ZGUgPGRybS9kcm1fZnJhbWVidWZmZXIuaD4KKysjaW5jbHVkZSA8 ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKysKKysjaW5jbHVkZSA8ZHJtL3ZzX2RybS5oPgorKwor KyNpbmNsdWRlICJ2c19jcnRjLmgiCisrI2luY2x1ZGUgInZzX2ZiLmgiCisrI2luY2x1ZGUgInZz X2dlbS5oIgorKyNpbmNsdWRlICJ2c19wbGFuZS5oIgorKyNpbmNsdWRlICJ2c190eXBlLmgiCisr Cisrdm9pZCB2c19wbGFuZV9kZXN0b3J5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQorK3sKKysJ c3RydWN0IHZzX3BsYW5lICp2c19wbGFuZSA9IHRvX3ZzX3BsYW5lKHBsYW5lKTsKKysKKysJZHJt X3BsYW5lX2NsZWFudXAocGxhbmUpOworKwlrZnJlZSh2c19wbGFuZSk7CisrfQorKworK3N0YXRp YyB2b2lkIHZzX3BsYW5lX3Jlc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQorK3sKKysJc3Ry dWN0IHZzX3BsYW5lX3N0YXRlICpzdGF0ZTsKKysJc3RydWN0IHZzX3BsYW5lICp2c19wbGFuZSA9 IHRvX3ZzX3BsYW5lKHBsYW5lKTsKKysKKysJaWYgKHBsYW5lLT5zdGF0ZSkgeworKwkJX19kcm1f YXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisrCisrCQlz dGF0ZSA9IHRvX3ZzX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisrCQlrZnJlZShzdGF0ZSk7 CisrCQlwbGFuZS0+c3RhdGUgPSBOVUxMOworKwl9CisrCisrCXN0YXRlID0ga3phbGxvYyhzaXpl b2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7CisrCWlmICghc3RhdGUpCisrCQlyZXR1cm47CisrCisr CV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQocGxhbmUsICZzdGF0ZS0+YmFzZSk7Cisr CisrCXN0YXRlLT5kZWdhbW1hID0gVlNfREVHQU1NQV9ESVNBQkxFOworKwlzdGF0ZS0+ZGVnYW1t YV9jaGFuZ2VkID0gZmFsc2U7CisrCXN0YXRlLT5iYXNlLnpwb3MgPSB2c19wbGFuZS0+aWQ7Cisr CisrCW1lbXNldCgmc3RhdGUtPnN0YXR1cywgMCwgc2l6ZW9mKHN0YXRlLT5zdGF0dXMpKTsKKyt9 CisrCisrc3RhdGljIHZvaWQgX3ZzX3BsYW5lX2R1cGxpY2F0ZV9ibG9iKHN0cnVjdCB2c19wbGFu ZV9zdGF0ZSAqc3RhdGUsCisrCQkJCSAgICAgc3RydWN0IHZzX3BsYW5lX3N0YXRlICpvcmlfc3Rh dGUpCisreworKwlzdGF0ZS0+d2F0ZXJtYXJrID0gb3JpX3N0YXRlLT53YXRlcm1hcms7CisrCXN0 YXRlLT5jb2xvcl9tZ210ID0gb3JpX3N0YXRlLT5jb2xvcl9tZ210OworKwlzdGF0ZS0+cm9pID0g b3JpX3N0YXRlLT5yb2k7CisrCisrCWlmIChzdGF0ZS0+d2F0ZXJtYXJrKQorKwkJZHJtX3Byb3Bl cnR5X2Jsb2JfZ2V0KHN0YXRlLT53YXRlcm1hcmspOworKwlpZiAoc3RhdGUtPmNvbG9yX21nbXQp CisrCQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoc3RhdGUtPmNvbG9yX21nbXQpOworKwlpZiAoc3Rh dGUtPnJvaSkKKysJCWRybV9wcm9wZXJ0eV9ibG9iX2dldChzdGF0ZS0+cm9pKTsKKyt9CisrCisr c3RhdGljIGludAorK192c19wbGFuZV9zZXRfcHJvcGVydHlfYmxvYl9mcm9tX2lkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCisrCQkJCSAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKipibG9i LAorKwkJCQkgICAgdTY0IGJsb2JfaWQsCisrCQkJCSAgICBzaXplX3QgZXhwZWN0ZWRfc2l6ZSkK Kyt7CisrCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbmV3X2Jsb2IgPSBOVUxMOworKworKwlp ZiAoYmxvYl9pZCkgeworKwkJbmV3X2Jsb2IgPSBkcm1fcHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2 LCBibG9iX2lkKTsKKysJCWlmICghbmV3X2Jsb2IpCisrCQkJcmV0dXJuIC1FSU5WQUw7CisrCisr CQlpZiAobmV3X2Jsb2ItPmxlbmd0aCAhPSBleHBlY3RlZF9zaXplKSB7CisrCQkJZHJtX3Byb3Bl cnR5X2Jsb2JfcHV0KG5ld19ibG9iKTsKKysJCQlyZXR1cm4gLUVJTlZBTDsKKysJCX0KKysJfQor KworKwlkcm1fcHJvcGVydHlfcmVwbGFjZV9ibG9iKGJsb2IsIG5ld19ibG9iKTsKKysJZHJtX3By b3BlcnR5X2Jsb2JfcHV0KG5ld19ibG9iKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRp YyBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICoKKyt2c19wbGFuZV9hdG9taWNfZHVwbGljYXRlX3N0 YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQorK3sKKysJc3RydWN0IHZzX3BsYW5lX3N0YXRl ICpvcmlfc3RhdGU7CisrCXN0cnVjdCB2c19wbGFuZV9zdGF0ZSAqc3RhdGU7CisrCisrCWlmIChX QVJOX09OKCFwbGFuZS0+c3RhdGUpKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCW9yaV9zdGF0ZSA9 IHRvX3ZzX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisrCXN0YXRlID0ga3phbGxvYyhzaXpl b2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7CisrCWlmICghc3RhdGUpCisrCQlyZXR1cm4gTlVMTDsK KysKKysJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUocGxhbmUsICZz dGF0ZS0+YmFzZSk7CisrCisrCXN0YXRlLT5kZWdhbW1hID0gb3JpX3N0YXRlLT5kZWdhbW1hOwor KwlzdGF0ZS0+ZGVnYW1tYV9jaGFuZ2VkID0gb3JpX3N0YXRlLT5kZWdhbW1hX2NoYW5nZWQ7Cisr CisrCV92c19wbGFuZV9kdXBsaWNhdGVfYmxvYihzdGF0ZSwgb3JpX3N0YXRlKTsKKysJbWVtY3B5 KCZzdGF0ZS0+c3RhdHVzLCAmb3JpX3N0YXRlLT5zdGF0dXMsIHNpemVvZihvcmlfc3RhdGUtPnN0 YXR1cykpOworKworKwlyZXR1cm4gJnN0YXRlLT5iYXNlOworK30KKysKKytzdGF0aWMgdm9pZCB2 c19wbGFuZV9hdG9taWNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKysJ CQkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCisreworKwlzdHJ1Y3QgdnNfcGxh bmVfc3RhdGUgKnZzX3BsYW5lX3N0YXRlID0gdG9fdnNfcGxhbmVfc3RhdGUoc3RhdGUpOworKwor KwlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RhdGUpOworKworKwlk cm1fcHJvcGVydHlfYmxvYl9wdXQodnNfcGxhbmVfc3RhdGUtPndhdGVybWFyayk7CisrCWRybV9w cm9wZXJ0eV9ibG9iX3B1dCh2c19wbGFuZV9zdGF0ZS0+Y29sb3JfbWdtdCk7CisrCWRybV9wcm9w ZXJ0eV9ibG9iX3B1dCh2c19wbGFuZV9zdGF0ZS0+cm9pKTsKKysJa2ZyZWUodnNfcGxhbmVfc3Rh dGUpOworK30KKysKKytzdGF0aWMgaW50IHZzX3BsYW5lX2F0b21pY19zZXRfcHJvcGVydHkoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCisrCQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0 ZSwKKysJCQkJCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAorKwkJCQkJdWludDY0X3Qg dmFsKQorK3sKKysJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CisrCXN0cnVj dCB2c19wbGFuZSAqdnNfcGxhbmUgPSB0b192c19wbGFuZShwbGFuZSk7CisrCXN0cnVjdCB2c19w bGFuZV9zdGF0ZSAqdnNfcGxhbmVfc3RhdGUgPSB0b192c19wbGFuZV9zdGF0ZShzdGF0ZSk7Cisr CWludCByZXQgPSAwOworKworKwlpZiAocHJvcGVydHkgPT0gdnNfcGxhbmUtPmRlZ2FtbWFfbW9k ZSkgeworKwkJaWYgKHZzX3BsYW5lX3N0YXRlLT5kZWdhbW1hICE9IHZhbCkgeworKwkJCXZzX3Bs YW5lX3N0YXRlLT5kZWdhbW1hID0gdmFsOworKwkJCXZzX3BsYW5lX3N0YXRlLT5kZWdhbW1hX2No YW5nZWQgPSB0cnVlOworKwkJfSBlbHNlIHsKKysJCQl2c19wbGFuZV9zdGF0ZS0+ZGVnYW1tYV9j aGFuZ2VkID0gZmFsc2U7CisrCQl9CisrCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gdnNfcGxhbmUt PndhdGVybWFya19wcm9wKSB7CisrCQlyZXQgPSBfdnNfcGxhbmVfc2V0X3Byb3BlcnR5X2Jsb2Jf ZnJvbV9pZChkZXYsCisrCQkJCQkJCSAgJnZzX3BsYW5lX3N0YXRlLT53YXRlcm1hcmssCisrCQkJ CQkJCSAgdmFsLAorKwkJCQkJCQkgIHNpemVvZihzdHJ1Y3QgZHJtX3ZzX3dhdGVybWFyaykpOwor KwkJcmV0dXJuIHJldDsKKysJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSB2c19wbGFuZS0+Y29sb3Jf bWdtdF9wcm9wKSB7CisrCQlyZXQgPSBfdnNfcGxhbmVfc2V0X3Byb3BlcnR5X2Jsb2JfZnJvbV9p ZChkZXYsCisrCQkJCQkJCSAgJnZzX3BsYW5lX3N0YXRlLT5jb2xvcl9tZ210LAorKwkJCQkJCQkg IHZhbCwKKysJCQkJCQkJICBzaXplb2Yoc3RydWN0IGRybV92c19jb2xvcl9tZ210KSk7CisrCQly ZXR1cm4gcmV0OworKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHZzX3BsYW5lLT5yb2lfcHJvcCkg eworKwkJcmV0ID0gX3ZzX3BsYW5lX3NldF9wcm9wZXJ0eV9ibG9iX2Zyb21faWQoZGV2LAorKwkJ CQkJCQkgICZ2c19wbGFuZV9zdGF0ZS0+cm9pLAorKwkJCQkJCQkgIHZhbCwKKysJCQkJCQkJICBz aXplb2Yoc3RydWN0IGRybV92c19yb2kpKTsKKysJCXJldHVybiByZXQ7CisrCX0gZWxzZSB7Cisr CQlyZXR1cm4gLUVJTlZBTDsKKysJfQorKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGlu dCB2c19wbGFuZV9hdG9taWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAor KwkJCQkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsCisrCQkJCQlzdHJ1Y3Qg ZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKKysJCQkJCXVpbnQ2NF90ICp2YWwpCisreworKwlzdHJ1 Y3QgdnNfcGxhbmUgKnZzX3BsYW5lID0gdG9fdnNfcGxhbmUocGxhbmUpOworKwljb25zdCBzdHJ1 Y3QgdnNfcGxhbmVfc3RhdGUgKnZzX3BsYW5lX3N0YXRlID0KKysJCWNvbnRhaW5lcl9vZihzdGF0 ZSwgY29uc3Qgc3RydWN0IHZzX3BsYW5lX3N0YXRlLCBiYXNlKTsKKysKKysJaWYgKHByb3BlcnR5 ID09IHZzX3BsYW5lLT5kZWdhbW1hX21vZGUpCisrCQkqdmFsID0gdnNfcGxhbmVfc3RhdGUtPmRl Z2FtbWE7CisrCWVsc2UgaWYgKHByb3BlcnR5ID09IHZzX3BsYW5lLT53YXRlcm1hcmtfcHJvcCkK KysJCSp2YWwgPSAodnNfcGxhbmVfc3RhdGUtPndhdGVybWFyaykgPworKwkJCQkJdnNfcGxhbmVf c3RhdGUtPndhdGVybWFyay0+YmFzZS5pZCA6IDA7CisrCWVsc2UgaWYgKHByb3BlcnR5ID09IHZz X3BsYW5lLT5jb2xvcl9tZ210X3Byb3ApCisrCQkqdmFsID0gKHZzX3BsYW5lX3N0YXRlLT5jb2xv cl9tZ210KSA/CisrCQkJCQl2c19wbGFuZV9zdGF0ZS0+Y29sb3JfbWdtdC0+YmFzZS5pZCA6IDA7 CisrCWVsc2UgaWYgKHByb3BlcnR5ID09IHZzX3BsYW5lLT5yb2lfcHJvcCkKKysJCSp2YWwgPSAo dnNfcGxhbmVfc3RhdGUtPnJvaSkgPworKwkJCQkJdnNfcGxhbmVfc3RhdGUtPnJvaS0+YmFzZS5p ZCA6IDA7CisrCWVsc2UKKysJCXJldHVybiAtRUlOVkFMOworKworKwlyZXR1cm4gMDsKKyt9Cisr Cisrc3RhdGljIGJvb2wgdnNfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCisrCQkJCSAgICB1MzIgZm9ybWF0LAorKwkJCQkgICAgdTY0IG1vZGlmaWVyKQorK3sK KysJaW50IGk7CisrCisrICAgICAgIC8qIFdlIGFsd2F5cyBoYXZlIHRvIGFsbG93IHRoZXNlIG1v ZGlmaWVyczoKKysJKiAxLiBDb3JlIERSTSBjaGVja3MgZm9yIExJTkVBUiBzdXBwb3J0IGlmIHVz ZXJzcGFjZSBkb2VzIG5vdCBwcm92aWRlIG1vZGlmaWVycy4KKysJKiAyLiBOb3QgcGFzc2luZyBh bnkgbW9kaWZpZXJzIGlzIHRoZSBzYW1lIGFzIGV4cGxpY2l0bHkgcGFzc2luZyBJTlZBTElELgor KwkqLworKwlpZiAobW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSKQorKwkJcmV0dXJu IHRydWU7CisrCisrCS8qIENoZWNrIHRoYXQgdGhlIG1vZGlmaWVyIGlzIG9uIHRoZSBsaXN0IG9m IHRoZSBwbGFuZSdzIHN1cHBvcnRlZCBtb2RpZmllcnMuICovCisrCWZvciAoaSA9IDA7IGkgPCBw bGFuZS0+bW9kaWZpZXJfY291bnQ7IGkrKykgeworKwkJaWYgKG1vZGlmaWVyID09IHBsYW5lLT5t b2RpZmllcnNbaV0pCisrCQkJYnJlYWs7CisrCX0KKysKKysJaWYgKGkgPT0gcGxhbmUtPm1vZGlm aWVyX2NvdW50KQorKwkJcmV0dXJuIGZhbHNlOworKworKwlyZXR1cm4gdHJ1ZTsKKyt9CisrCisr Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyB2c19wbGFuZV9mdW5jcyA9IHsKKysJLnVwZGF0 ZV9wbGFuZQkJPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCisrCS5kaXNhYmxlX3Bs YW5lCQk9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUsCisrCS5kZXN0cm95CQk9IHZz X3BsYW5lX2Rlc3RvcnksCisrCS5yZXNldAkJCT0gdnNfcGxhbmVfcmVzZXQsCisrCS5hdG9taWNf ZHVwbGljYXRlX3N0YXRlID0gdnNfcGxhbmVfYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSwKKysJLmF0 b21pY19kZXN0cm95X3N0YXRlCT0gdnNfcGxhbmVfYXRvbWljX2Rlc3Ryb3lfc3RhdGUsCisrCS5h dG9taWNfc2V0X3Byb3BlcnR5CT0gdnNfcGxhbmVfYXRvbWljX3NldF9wcm9wZXJ0eSwKKysJLmF0 b21pY19nZXRfcHJvcGVydHkJPSB2c19wbGFuZV9hdG9taWNfZ2V0X3Byb3BlcnR5LAorKwkuZm9y bWF0X21vZF9zdXBwb3J0ZWQJPSB2c19mb3JtYXRfbW9kX3N1cHBvcnRlZCwKKyt9OworKworK3N0 YXRpYyB1bnNpZ25lZCBjaGFyIHZzX2dldF9wbGFuZV9udW1iZXIoc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIpCisreworKwljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvOworKwor KwlpZiAoIWZiKQorKwkJcmV0dXJuIDA7CisrCisrCWluZm8gPSBkcm1fZm9ybWF0X2luZm8oZmIt PmZvcm1hdC0+Zm9ybWF0KTsKKysJaWYgKCFpbmZvIHx8IGluZm8tPm51bV9wbGFuZXMgPiBNQVhf TlVNX1BMQU5FUykKKysJCXJldHVybiAwOworKworKwlyZXR1cm4gaW5mby0+bnVtX3BsYW5lczsK Kyt9CisrCisrc3RhdGljIGludCB2c19wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCisrCQkJCSBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCisreworKwlz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9u ZXdfcGxhbmVfc3RhdGUoc3RhdGUsCisrCQkJCQkJCQkJCSBwbGFuZSk7CisrCXN0cnVjdCB2c19w bGFuZSAqdnNfcGxhbmUgPSB0b192c19wbGFuZShwbGFuZSk7CisrCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gbmV3X3BsYW5lX3N0YXRlLT5mYjsKKysJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gbmV3X3BsYW5lX3N0YXRlLT5jcnRjOworKwlzdHJ1Y3QgdnNfY3J0YyAqdnNfY3J0YyA9IHRv X3ZzX2NydGMoY3J0Yyk7CisrCisrCWlmICghY3J0YyB8fCAhZmIpCisrCQlyZXR1cm4gMDsKKysK KysJLy9yZXR1cm4gdnNfcGxhbmUtPmZ1bmNzLT5jaGVjayh2c19jcnRjLT5kZXYsIHZzX3BsYW5l LCBuZXdfcGxhbmVfc3RhdGUpOworKwlyZXR1cm4gdnNfcGxhbmUtPmZ1bmNzLT5jaGVjayh2c19j cnRjLT5kZXYsIHBsYW5lLCBzdGF0ZSk7CisrfQorKworK3N0YXRpYyB2b2lkIHZzX3BsYW5lX2F0 b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisrCQkJCSAgIHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKKyt7CisrCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwKKysJCQkJCQkJCQkg ICBwbGFuZSk7CisrCXVuc2lnbmVkIGNoYXIgaSwgbnVtX3BsYW5lczsKKysJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmI7CisrCXN0cnVjdCB2c19wbGFuZSAqdnNfcGxhbmUgPSB0b192c19wbGFu ZShwbGFuZSk7CisrCS8vc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3Rh dGU7CisrCXN0cnVjdCB2c19jcnRjICp2c19jcnRjID0gdG9fdnNfY3J0YyhuZXdfc3RhdGUtPmNy dGMpOworKwlzdHJ1Y3QgdnNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gdG9fdnNfcGxhbmVf c3RhdGUobmV3X3N0YXRlKTsKKysJLy9zdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiAqbmFtZSA9 ICZwbGFuZV9zdGF0ZS0+c3RhdHVzLmZvcm1hdF9uYW1lOworKworKwlpZiAoIW5ld19zdGF0ZS0+ ZmIgfHwgIW5ld19zdGF0ZS0+Y3J0YykKKysJCXJldHVybjsKKysKKysJZmIgPSBuZXdfc3RhdGUt PmZiOworKworKwludW1fcGxhbmVzID0gdnNfZ2V0X3BsYW5lX251bWJlcihmYik7CisrCisrCWZv ciAoaSA9IDA7IGkgPCBudW1fcGxhbmVzOyBpKyspIHsKKysJCXN0cnVjdCB2c19nZW1fb2JqZWN0 ICp2c19vYmo7CisrCisrCQl2c19vYmogPSB2c19mYl9nZXRfZ2VtX29iaihmYiwgaSk7CisrCQl2 c19wbGFuZS0+ZG1hX2FkZHJbaV0gPSB2c19vYmotPmlvdmEgKyBmYi0+b2Zmc2V0c1tpXTsKKysJ fQorKworKwlwbGFuZV9zdGF0ZS0+c3RhdHVzLnNyYyA9IGRybV9wbGFuZV9zdGF0ZV9zcmMobmV3 X3N0YXRlKTsKKysJcGxhbmVfc3RhdGUtPnN0YXR1cy5kZXN0ID0gZHJtX3BsYW5lX3N0YXRlX2Rl c3QobmV3X3N0YXRlKTsKKysKKysJdnNfcGxhbmUtPmZ1bmNzLT51cGRhdGUodnNfY3J0Yy0+ZGV2 LCB2c19wbGFuZSwgcGxhbmUsIHN0YXRlKTsKKyt9CisrCisrc3RhdGljIHZvaWQgdnNfcGxhbmVf YXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisrCQkJCSAgICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCisreworKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpv bGRfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3RhdGUsCisrCQkJCQkJ CQkJCSAgIHBsYW5lKTsKKysJc3RydWN0IHZzX3BsYW5lICp2c19wbGFuZSA9IHRvX3ZzX3BsYW5l KHBsYW5lKTsKKysJc3RydWN0IHZzX2NydGMgKnZzX2NydGMgPSB0b192c19jcnRjKG9sZF9zdGF0 ZS0+Y3J0Yyk7CisrCisrCXZzX3BsYW5lLT5mdW5jcy0+ZGlzYWJsZSh2c19jcnRjLT5kZXYsIHZz X3BsYW5lLCBvbGRfc3RhdGUpOworK30KKysKKytjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBl cl9mdW5jcyB2c19wbGFuZV9oZWxwZXJfZnVuY3MgPSB7CisrCS5hdG9taWNfY2hlY2sJPSB2c19w bGFuZV9hdG9taWNfY2hlY2ssCisrCS5hdG9taWNfdXBkYXRlCT0gdnNfcGxhbmVfYXRvbWljX3Vw ZGF0ZSwKKysJLmF0b21pY19kaXNhYmxlID0gdnNfcGxhbmVfYXRvbWljX2Rpc2FibGUsCisrfTsK KysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCB2c19kZWdhbW1hX21v ZGVfZW51bV9saXN0W10gPSB7CisrCXsgVlNfREVHQU1NQV9ESVNBQkxFLAkiZGlzYWJsZWQiIH0s CisrCXsgVlNfREVHQU1NQV9CVDcwOSwgInByZXNldCBkZWdhbW1hIGZvciBCVDcwOSIgfSwKKysJ eyBWU19ERUdBTU1BX0JUMjAyMCwJInByZXNldCBkZWdhbW1hIGZvciBCVDIwMjAiIH0sCisrfTsK KysKKytzdHJ1Y3QgdnNfcGxhbmUgKnZzX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtX2RldiwKKysJCQkJIHN0cnVjdCB2c19wbGFuZV9pbmZvICppbmZvLAorKwkJCQkgdW5zaWdu ZWQgaW50IGxheWVyX251bSwKKysJCQkJIHVuc2lnbmVkIGludCBwb3NzaWJsZV9jcnRjcykKKyt7 CisrCXN0cnVjdCB2c19wbGFuZSAqcGxhbmU7CisrCWludCByZXQ7CisrCisrCWlmICghaW5mbykK KysJCXJldHVybiBOVUxMOworKworKwlwbGFuZSA9IGt6YWxsb2Moc2l6ZW9mKCpwbGFuZSksIEdG UF9LRVJORUwpOworKwlpZiAoIXBsYW5lKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCXJldCA9IGRy bV91bml2ZXJzYWxfcGxhbmVfaW5pdChkcm1fZGV2LCAmcGxhbmUtPmJhc2UsIHBvc3NpYmxlX2Ny dGNzLAorKwkJCQkgICAgICAgJnZzX3BsYW5lX2Z1bmNzLCBpbmZvLT5mb3JtYXRzLAorKwkJCQkg ICAgICAgaW5mby0+bnVtX2Zvcm1hdHMsIGluZm8tPm1vZGlmaWVycywgaW5mby0+dHlwZSwKKysJ CQkJICAgICAgIGluZm8tPm5hbWUgPyBpbmZvLT5uYW1lIDogTlVMTCk7CisrCWlmIChyZXQpCisr CQlnb3RvIGVycl9mcmVlX3BsYW5lOworKworKwlkcm1fcGxhbmVfaGVscGVyX2FkZCgmcGxhbmUt PmJhc2UsICZ2c19wbGFuZV9oZWxwZXJfZnVuY3MpOworKworKwkvKiBTZXQgdXAgdGhlIHBsYW5l IHByb3BlcnRpZXMgKi8KKysJaWYgKGluZm8tPmRlZ2FtbWFfc2l6ZSkgeworKwkJcGxhbmUtPmRl Z2FtbWFfbW9kZSA9CisrCQlkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZHJtX2RldiwgMCwKKysJ CQkJCSAiREVHQU1NQV9NT0RFIiwKKysJCQkJCSB2c19kZWdhbW1hX21vZGVfZW51bV9saXN0LAor KwkJCQkJIEFSUkFZX1NJWkUodnNfZGVnYW1tYV9tb2RlX2VudW1fbGlzdCkpOworKworKwkJaWYg KCFwbGFuZS0+ZGVnYW1tYV9tb2RlKQorKwkJCWdvdG8gZXJyb3JfY2xlYW51cF9wbGFuZTsKKysK KysJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZS5iYXNlLAorKwkJCQkJ ICAgcGxhbmUtPmRlZ2FtbWFfbW9kZSwKKysJCQkJCSAgIFZTX0RFR0FNTUFfRElTQUJMRSk7Cisr CX0KKysKKysJaWYgKGluZm8tPnJvdGF0aW9uKSB7CisrCQlyZXQgPSBkcm1fcGxhbmVfY3JlYXRl X3JvdGF0aW9uX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwKKysJCQkJCQkJIERSTV9NT0RFX1JPVEFU RV8wLAorKwkJCQkJCQkgaW5mby0+cm90YXRpb24pOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGVy cm9yX2NsZWFudXBfcGxhbmU7CisrCX0KKysKKysJaWYgKGluZm8tPmJsZW5kX21vZGUpIHsKKysJ CXJldCA9IGRybV9wbGFuZV9jcmVhdGVfYmxlbmRfbW9kZV9wcm9wZXJ0eSgmcGxhbmUtPmJhc2Us CisrCQkJCQkJCSAgIGluZm8tPmJsZW5kX21vZGUpOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGVy cm9yX2NsZWFudXBfcGxhbmU7CisrCQlyZXQgPSBkcm1fcGxhbmVfY3JlYXRlX2FscGhhX3Byb3Bl cnR5KCZwbGFuZS0+YmFzZSk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8gZXJyb3JfY2xlYW51cF9w bGFuZTsKKysJfQorKworKwlpZiAoaW5mby0+Y29sb3JfZW5jb2RpbmcpIHsKKysJCXJldCA9IGRy bV9wbGFuZV9jcmVhdGVfY29sb3JfcHJvcGVydGllcygmcGxhbmUtPmJhc2UsCisrCQkJCQkJCWlu Zm8tPmNvbG9yX2VuY29kaW5nLAorKwkJCQkJCQlCSVQoRFJNX0NPTE9SX1lDQkNSX0xJTUlURURf UkFOR0UpLAorKwkJCQkJCQlEUk1fQ09MT1JfWUNCQ1JfQlQ3MDksCisrCQkJCQkJCURSTV9DT0xP Ul9ZQ0JDUl9MSU1JVEVEX1JBTkdFKTsKKysJCWlmIChyZXQpCisrCQkJZ290byBlcnJvcl9jbGVh bnVwX3BsYW5lOworKwl9CisrCisrCWlmIChpbmZvLT56cG9zICE9IDI1NSkgeworKwkJcmV0ID0g ZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgaW5mby0+enBvcywg MCwKKysJCQkJCQkgICAgIGxheWVyX251bSAtIDEpOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGVy cm9yX2NsZWFudXBfcGxhbmU7CisrCX0gZWxzZSB7CisrCQlyZXQgPSBkcm1fcGxhbmVfY3JlYXRl X3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwKKysJCQkJCQkJICAgICAgIGlu Zm8tPnpwb3MpOworKwkJaWYgKHJldCkKKysJCQlnb3RvIGVycm9yX2NsZWFudXBfcGxhbmU7Cisr CX0KKysKKysJaWYgKGluZm8tPndhdGVybWFyaykgeworKwkJcGxhbmUtPndhdGVybWFya19wcm9w ID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkcm1fZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IsCisrCQkJ CQkJCSAgICAiV0FURVJNQVJLIiwgMCk7CisrCQlpZiAoIXBsYW5lLT53YXRlcm1hcmtfcHJvcCkK KysJCQlnb3RvIGVycm9yX2NsZWFudXBfcGxhbmU7CisrCisrCQlkcm1fb2JqZWN0X2F0dGFjaF9w cm9wZXJ0eSgmcGxhbmUtPmJhc2UuYmFzZSwgcGxhbmUtPndhdGVybWFya19wcm9wLCAwKTsKKysJ fQorKworKwlpZiAoaW5mby0+Y29sb3JfbWdtdCkgeworKwkJcGxhbmUtPmNvbG9yX21nbXRfcHJv cCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZHJtX2RldiwgRFJNX01PREVfUFJPUF9CTE9CLAorKwkJ CQkJCQkgICAgICJDT0xPUl9DT05GSUciLCAwKTsKKysJCWlmICghcGxhbmUtPmNvbG9yX21nbXRf cHJvcCkKKysJCQlnb3RvIGVycm9yX2NsZWFudXBfcGxhbmU7CisrCisrCQlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UuYmFzZSwgcGxhbmUtPmNvbG9yX21nbXRfcHJvcCwg MCk7CisrCX0KKysKKysJaWYgKGluZm8tPnJvaSkgeworKwkJcGxhbmUtPnJvaV9wcm9wID0gZHJt X3Byb3BlcnR5X2NyZWF0ZShkcm1fZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IsCisrCQkJCQkJICAg ICAgIlJPSSIsIDApOworKwkJaWYgKCFwbGFuZS0+cm9pX3Byb3ApCisrCQkJZ290byBlcnJvcl9j bGVhbnVwX3BsYW5lOworKworKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5i YXNlLmJhc2UsIHBsYW5lLT5yb2lfcHJvcCwgMCk7CisrCX0KKysKKysJcmV0dXJuIHBsYW5lOwor KworK2Vycm9yX2NsZWFudXBfcGxhbmU6CisrCWRybV9wbGFuZV9jbGVhbnVwKCZwbGFuZS0+YmFz ZSk7CisrZXJyX2ZyZWVfcGxhbmU6CisrCWtmcmVlKHBsYW5lKTsKKysJcmV0dXJuIE5VTEw7Cisr fQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19wbGFuZS5oIGIv ZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3BsYW5lLmgKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjc2ZWYzYzNkZTA0NQorLS0tIC9kZXYvbnVsbAorKysr IGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX3BsYW5lLmgKK0BAIC0wLDAgKzEsNzQg QEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworKy8qCisrICogQ29w eXJpZ2h0IChDKSAyMDIzIFZlcmlTaWxpY29uIEhvbGRpbmdzIENvLiwgTHRkLgorKyAqLworKwor KyNpZm5kZWYgX19WU19QTEFORV9IX18KKysjZGVmaW5lIF9fVlNfUExBTkVfSF9fCisrCisrI2lu Y2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisrI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVy Lmg+CisrCisrI2luY2x1ZGUgInZzX2ZiLmgiCisrI2luY2x1ZGUgInZzX3R5cGUuaCIKKysKKytz dHJ1Y3QgdnNfcGxhbmU7CisrCisrc3RydWN0IHZzX3BsYW5lX2Z1bmNzIHsKKysJdm9pZCAoKnVw ZGF0ZSkoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdnNfcGxhbmUgKnBsYW5lLCBzdHJ1Y3Qg ZHJtX3BsYW5lICpkcm1fcGxhbmUsCisrCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKTsKKysJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZz X3BsYW5lICpwbGFuZSwKKysJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpOwor KwlpbnQgKCpjaGVjaykoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKKysJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKKyt9OworKworK3N0 cnVjdCB2c19wbGFuZV9zdGF0dXMgeworKwl1MzIgdGlsZV9tb2RlOworKwlzdHJ1Y3QgZHJtX3Jl Y3Qgc3JjOworKwlzdHJ1Y3QgZHJtX3JlY3QgZGVzdDsKKyt9OworKworK3N0cnVjdCB2c19wbGFu ZV9zdGF0ZSB7CisrCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgYmFzZTsKKysJc3RydWN0IHZzX3Bs YW5lX3N0YXR1cyBzdGF0dXM7IC8qIGZvciBkZWJ1Z2ZzICovCisrCisrCXN0cnVjdCBkcm1fcHJv cGVydHlfYmxvYiAqd2F0ZXJtYXJrOworKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmNvbG9y X21nbXQ7CisrCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqcm9pOworKworKwl1MzIgZGVnYW1t YTsKKysJYm9vbCBkZWdhbW1hX2NoYW5nZWQ7CisrfTsKKysKKytzdHJ1Y3QgdnNfcGxhbmUgewor KwlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7CisrCXU4IGlkOworKwlkbWFfYWRkcl90IGRtYV9hZGRy W01BWF9OVU1fUExBTkVTXTsKKysKKysJc3RydWN0IGRybV9wcm9wZXJ0eSAqZGVnYW1tYV9tb2Rl OworKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp3YXRlcm1hcmtfcHJvcDsKKysJc3RydWN0IGRybV9w cm9wZXJ0eSAqY29sb3JfbWdtdF9wcm9wOworKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpyb2lfcHJv cDsKKysKKysJY29uc3Qgc3RydWN0IHZzX3BsYW5lX2Z1bmNzICpmdW5jczsKKyt9OworKworK3Zv aWQgdnNfcGxhbmVfZGVzdG9yeShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7CisrCisrc3RydWN0 IHZzX3BsYW5lICp2c19wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCisr CQkJCSBzdHJ1Y3QgdnNfcGxhbmVfaW5mbyAqaW5mbywKKysJCQkJIHVuc2lnbmVkIGludCBsYXll cl9udW0sCisrCQkJCSB1bnNpZ25lZCBpbnQgcG9zc2libGVfY3J0Y3MpOworKworK3N0YXRpYyBp bmxpbmUgc3RydWN0IHZzX3BsYW5lICp0b192c19wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSkKKyt7CisrCXJldHVybiBjb250YWluZXJfb2YocGxhbmUsIHN0cnVjdCB2c19wbGFuZSwgYmFz ZSk7CisrfQorKworK3N0YXRpYyBpbmxpbmUgc3RydWN0IHZzX3BsYW5lX3N0YXRlICoKKyt0b192 c19wbGFuZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKKyt7CisrCXJldHVy biBjb250YWluZXJfb2Yoc3RhdGUsIHN0cnVjdCB2c19wbGFuZV9zdGF0ZSwgYmFzZSk7CisrfQor KyNlbmRpZiAvKiBfX1ZTX1BMQU5FX0hfXyAqLworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTYtZHJtLXZlcmlzaWxpY29uLUFkZC12ZXJpc2ls aWNvbi1kYy1jb250cm9sbGVyLWRyaXZlci5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDU2LWRybS12ZXJpc2lsaWNvbi1BZGQtdmVyaXNpbGljb24tZGMtY29udHJvbGxlci1kcml2 ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYzQyYTRm MDQ2MjUyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDU2 LWRybS12ZXJpc2lsaWNvbi1BZGQtdmVyaXNpbGljb24tZGMtY29udHJvbGxlci1kcml2ZXIucGF0 Y2gKQEAgLTAsMCArMSwzNjg5IEBACitGcm9tIGI4MDE3NDlmNThkNjExYjdiZjg0NGNmZjYwZTg2 Nzk5MDg2NDkxMWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLZWl0aCBaaGFvIDxr ZWl0aC56aGFvQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmksIDIgSnVuIDIwMjMgMTU6NDA6 NDIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ni83Ml0gZHJtL3ZlcmlzaWxpY29uOiBBZGQgdmVy aXNpbGljb24gZGMgY29udHJvbGxlciBkcml2ZXIKKworQWRkIERDODIwMCBkaXNwbGF5IGNvbnRy b2xsZXIgZHJpdmVyIGZvciBTdGFyRml2ZSBKSDcxMTAgU29DLgorCitTaWduZWQtb2ZmLWJ5OiBL ZWl0aCBaaGFvIDxrZWl0aC56aGFvQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL2dw dS9kcm0vdmVyaXNpbGljb24vTWFrZWZpbGUgICB8ICAgIDQgKy0KKyBkcml2ZXJzL2dwdS9kcm0v dmVyaXNpbGljb24vdnNfZGMuYyAgICB8IDEwNDAgKysrKysrKysrKysrCisgZHJpdmVycy9ncHUv ZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmggICAgfCAgIDYyICsKKyBkcml2ZXJzL2dwdS9kcm0vdmVy aXNpbGljb24vdnNfZGNfaHcuYyB8IDIwMDggKysrKysrKysrKysrKysrKysrKysrKysrCisgZHJp dmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjX2h3LmggfCAgNDk2ICsrKysrKworIGRyaXZl cnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYuYyAgIHwgICAgMiArCisgNiBmaWxlcyBjaGFu Z2VkLCAzNjExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmMKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmgKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjX2h3LmMKKyBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjX2h3LmgKKworZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS92ZXJpc2lsaWNvbi9NYWtlZmlsZQoraW5kZXggZDk2YWQ5Mzk5ZmM3Li4wZWQyNWI1ZTMwNjIg MTAwNjQ0CistLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vTWFrZWZpbGUKKysrKyBi L2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9NYWtlZmlsZQorQEAgLTEsNyArMSw5IEBACisg IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorIAorLXZzX2RybS1vYmpzIDo9IHZz X2Rydi5vIFwKKyt2c19kcm0tb2JqcyA6PSB2c19kY19ody5vIFwKKysJCXZzX2RjLm8gXAorIAkJ dnNfY3J0Yy5vIFwKKysJCXZzX2Rydi5vIFwKKyAJCXZzX2ZiLm8gXAorIAkJdnNfZ2VtLm8gXAor IAkJdnNfcGxhbmUubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92 c19kYy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmMKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmE1MTJhYWE1N2YyZgorLS0tIC9kZXYvbnVs bAorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2RjLmMKK0BAIC0wLDAgKzEs MTA0MCBAQAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisrLyoKKysgKiBD b3B5cmlnaHQgKEMpIDIwMjMgVmVyaVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQuCisrICovCisr CisrI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4K KysjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKysjaW5jbHVkZSA8bGludXgvbWVkaWEtYnVzLWZv cm1hdC5oPgorKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CisrI2luY2x1ZGUgPGxpbnV4 L29mLmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9w bV9ydW50aW1lLmg+CisrI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorKyNpbmNsdWRlIDxsaW51 eC9yZXNldC5oPgorKworKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorKyNpbmNsdWRlIDxk cm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9ibGVuZC5oPgorKyNp bmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2ZyYW1lYnVmZmVy Lmg+CisrI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CisrI2luY2x1ZGUgPGRybS92c19kcm0u aD4KKysKKysjaW5jbHVkZSAidnNfY3J0Yy5oIgorKyNpbmNsdWRlICJ2c19kY19ody5oIgorKyNp bmNsdWRlICJ2c19kYy5oIgorKyNpbmNsdWRlICJ2c19kcnYuaCIKKysjaW5jbHVkZSAidnNfdHlw ZS5oIgorKworK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgdm91dF9jbG9ja3NbXSA9IHsKKysJ ImNsa192b3V0X25vY19kaXNwIiwKKysJImNsa192b3V0X3BpeDAiLAorKwkiY2xrX3ZvdXRfcGl4 MSIsCisrCSJjbGtfdm91dF9heGkiLAorKwkiY2xrX3ZvdXRfY29yZSIsCisrCSJjbGtfdm91dF92 b3V0X2FoYiIsCisrCSJoZG1pdHgwX3BpeGVsIiwKKysJImNsa192b3V0X2RjODIwMCIsCisrCisr fTsKKysKKytzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZvdXRfcmVzZXRzW10gPSB7CisrCSJy c3Rfdm91dF9heGkiLAorKwkicnN0X3ZvdXRfYWhiIiwKKysJInJzdF92b3V0X2NvcmUiLAorK307 CisrCisrc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9mb3JtYXQodTMyIGZvcm1hdCwgdTY0IG1v ZCwgc3RydWN0IGRjX2h3X2ZiICpmYikKKyt7CisrCXU4IGYgPSBGT1JNQVRfQThSOEc4Qjg7Cisr CisrCXN3aXRjaCAoZm9ybWF0KSB7CisrCWNhc2UgRFJNX0ZPUk1BVF9YUkdCNDQ0NDoKKysJY2Fz ZSBEUk1fRk9STUFUX1JHQlg0NDQ0OgorKwljYXNlIERSTV9GT1JNQVRfWEJHUjQ0NDQ6CisrCWNh c2UgRFJNX0ZPUk1BVF9CR1JYNDQ0NDoKKysJCWYgPSBGT1JNQVRfWDRSNEc0QjQ7CisrCQlicmVh azsKKysJY2FzZSBEUk1fRk9STUFUX0FSR0I0NDQ0OgorKwljYXNlIERSTV9GT1JNQVRfUkdCQTQ0 NDQ6CisrCWNhc2UgRFJNX0ZPUk1BVF9BQkdSNDQ0NDoKKysJY2FzZSBEUk1fRk9STUFUX0JHUkE0 NDQ0OgorKwkJZiA9IEZPUk1BVF9BNFI0RzRCNDsKKysJCWJyZWFrOworKwljYXNlIERSTV9GT1JN QVRfWFJHQjE1NTU6CisrCWNhc2UgRFJNX0ZPUk1BVF9SR0JYNTU1MToKKysJY2FzZSBEUk1fRk9S TUFUX1hCR1IxNTU1OgorKwljYXNlIERSTV9GT1JNQVRfQkdSWDU1NTE6CisrCQlmID0gRk9STUFU X1gxUjVHNUI1OworKwkJYnJlYWs7CisrCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMTU1NToKKysJY2Fz ZSBEUk1fRk9STUFUX1JHQkE1NTUxOgorKwljYXNlIERSTV9GT1JNQVRfQUJHUjE1NTU6CisrCWNh c2UgRFJNX0ZPUk1BVF9CR1JBNTU1MToKKysJCWYgPSBGT1JNQVRfQTFSNUc1QjU7CisrCQlicmVh azsKKysJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKKysJY2FzZSBEUk1fRk9STUFUX0JHUjU2NToK KysJCWYgPSBGT1JNQVRfUjVHNkI1OworKwkJYnJlYWs7CisrCWNhc2UgRFJNX0ZPUk1BVF9YUkdC ODg4ODoKKysJY2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4OgorKwljYXNlIERSTV9GT1JNQVRfWEJH Ujg4ODg6CisrCWNhc2UgRFJNX0ZPUk1BVF9CR1JYODg4ODoKKysJCWYgPSBGT1JNQVRfWDhSOEc4 Qjg7CisrCQlicmVhazsKKysJY2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4OgorKwljYXNlIERSTV9G T1JNQVRfUkdCQTg4ODg6CisrCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKKysJY2FzZSBEUk1f Rk9STUFUX0JHUkE4ODg4OgorKwkJZiA9IEZPUk1BVF9BOFI4RzhCODsKKysJCWJyZWFrOworKwlj YXNlIERSTV9GT1JNQVRfWVVZVjoKKysJY2FzZSBEUk1fRk9STUFUX1lWWVU6CisrCQlmID0gRk9S TUFUX1lVWTI7CisrCQlicmVhazsKKysJY2FzZSBEUk1fRk9STUFUX1VZVlk6CisrCWNhc2UgRFJN X0ZPUk1BVF9WWVVZOgorKwkJZiA9IEZPUk1BVF9VWVZZOworKwkJYnJlYWs7CisrCWNhc2UgRFJN X0ZPUk1BVF9ZVVY0MjA6CisrCWNhc2UgRFJNX0ZPUk1BVF9ZVlU0MjA6CisrCQlmID0gRk9STUFU X1lWMTI7CisrCQlicmVhazsKKysJY2FzZSBEUk1fRk9STUFUX05WMjE6CisrCQlmID0gRk9STUFU X05WMTI7CisrCQlicmVhazsKKysJY2FzZSBEUk1fRk9STUFUX05WMTY6CisrCWNhc2UgRFJNX0ZP Uk1BVF9OVjYxOgorKwkJZiA9IEZPUk1BVF9OVjE2OworKwkJYnJlYWs7CisrCWNhc2UgRFJNX0ZP Uk1BVF9QMDEwOgorKwkJZiA9IEZPUk1BVF9QMDEwOworKwkJYnJlYWs7CisrCWNhc2UgRFJNX0ZP Uk1BVF9BUkdCMjEwMTAxMDoKKysJY2FzZSBEUk1fRk9STUFUX1JHQkExMDEwMTAyOgorKwljYXNl IERSTV9GT1JNQVRfQUJHUjIxMDEwMTA6CisrCWNhc2UgRFJNX0ZPUk1BVF9CR1JBMTAxMDEwMjoK KysJCWYgPSBGT1JNQVRfQTJSMTBHMTBCMTA7CisrCQlicmVhazsKKysJY2FzZSBEUk1fRk9STUFU X05WMTI6CisrCQlpZiAoZm91cmNjX21vZF92c19nZXRfdHlwZShtb2QpID09CisrCQkJRFJNX0ZP Uk1BVF9NT0RfVlNfVFlQRV9DVVNUT01fMTBCSVQpCisrCQkJZiA9IEZPUk1BVF9OVjEyXzEwQklU OworKwkJZWxzZQorKwkJCWYgPSBGT1JNQVRfTlYxMjsKKysJCWJyZWFrOworKwljYXNlIERSTV9G T1JNQVRfWVVWNDQ0OgorKwkJaWYgKGZvdXJjY19tb2RfdnNfZ2V0X3R5cGUobW9kKSA9PQorKwkJ CURSTV9GT1JNQVRfTU9EX1ZTX1RZUEVfQ1VTVE9NXzEwQklUKQorKwkJCWYgPSBGT1JNQVRfWVVW NDQ0XzEwQklUOworKwkJZWxzZQorKwkJCWYgPSBGT1JNQVRfWVVWNDQ0OworKwkJYnJlYWs7Cisr CWRlZmF1bHQ6CisrCQlicmVhazsKKysJfQorKworKwlmYi0+Zm9ybWF0ID0gZjsKKyt9CisrCisr c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9zd2l6emxlKHUzMiBmb3JtYXQsIHN0cnVjdCBkY19o d19mYiAqZmIpCisreworKwlmYi0+c3dpenpsZSA9IFNXSVpaTEVfQVJHQjsKKysJZmItPnV2X3N3 aXp6bGUgPSAwOworKworKwlzd2l0Y2ggKGZvcm1hdCkgeworKwljYXNlIERSTV9GT1JNQVRfUkdC WDQ0NDQ6CisrCWNhc2UgRFJNX0ZPUk1BVF9SR0JBNDQ0NDoKKysJY2FzZSBEUk1fRk9STUFUX1JH Qlg1NTUxOgorKwljYXNlIERSTV9GT1JNQVRfUkdCQTU1NTE6CisrCWNhc2UgRFJNX0ZPUk1BVF9S R0JYODg4ODoKKysJY2FzZSBEUk1fRk9STUFUX1JHQkE4ODg4OgorKwljYXNlIERSTV9GT1JNQVRf UkdCQTEwMTAxMDI6CisrCQlmYi0+c3dpenpsZSA9IFNXSVpaTEVfUkdCQTsKKysJCWJyZWFrOwor KwljYXNlIERSTV9GT1JNQVRfWEJHUjQ0NDQ6CisrCWNhc2UgRFJNX0ZPUk1BVF9BQkdSNDQ0NDoK KysJY2FzZSBEUk1fRk9STUFUX1hCR1IxNTU1OgorKwljYXNlIERSTV9GT1JNQVRfQUJHUjE1NTU6 CisrCWNhc2UgRFJNX0ZPUk1BVF9CR1I1NjU6CisrCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoK KysJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorKwljYXNlIERSTV9GT1JNQVRfQUJHUjIxMDEw MTA6CisrCQlmYi0+c3dpenpsZSA9IFNXSVpaTEVfQUJHUjsKKysJCWJyZWFrOworKwljYXNlIERS TV9GT1JNQVRfQkdSWDQ0NDQ6CisrCWNhc2UgRFJNX0ZPUk1BVF9CR1JBNDQ0NDoKKysJY2FzZSBE Uk1fRk9STUFUX0JHUlg1NTUxOgorKwljYXNlIERSTV9GT1JNQVRfQkdSQTU1NTE6CisrCWNhc2Ug RFJNX0ZPUk1BVF9CR1JYODg4ODoKKysJY2FzZSBEUk1fRk9STUFUX0JHUkE4ODg4OgorKwljYXNl IERSTV9GT1JNQVRfQkdSQTEwMTAxMDI6CisrCQlmYi0+c3dpenpsZSA9IFNXSVpaTEVfQkdSQTsK KysJCWJyZWFrOworKwljYXNlIERSTV9GT1JNQVRfWVZZVToKKysJY2FzZSBEUk1fRk9STUFUX1ZZ VVk6CisrCWNhc2UgRFJNX0ZPUk1BVF9OVjIxOgorKwljYXNlIERSTV9GT1JNQVRfTlY2MToKKysJ CWZiLT51dl9zd2l6emxlID0gMTsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJYnJlYWs7Cisr CX0KKyt9CisrCisrc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV93YXRlcm1hcmsoc3RydWN0IGRy bV9wcm9wZXJ0eV9ibG9iICp3YXRlcm1hcmssCisrCQkJCSAgICBzdHJ1Y3QgZGNfaHdfZmIgKmZi KQorK3sKKysJc3RydWN0IGRybV92c193YXRlcm1hcmsgKmRhdGE7CisrCisrCWZiLT53YXRlcl9t YXJrID0gMDsKKysKKysJaWYgKHdhdGVybWFyaykgeworKwkJZGF0YSA9IHdhdGVybWFyay0+ZGF0 YTsKKysJCWZiLT53YXRlcl9tYXJrID0gZGF0YS0+d2F0ZXJtYXJrICYgMHhGRkZGRjsKKysJfQor K30KKysKKytzdGF0aWMgaW5saW5lIHU4IHRvX3ZzX3JvdGF0aW9uKHVuc2lnbmVkIGludCByb3Rh dGlvbikKKyt7CisrCXU4IHJvdDsKKysKKysJc3dpdGNoIChyb3RhdGlvbiAmIERSTV9NT0RFX1JF RkxFQ1RfTUFTSykgeworKwljYXNlIERSTV9NT0RFX1JFRkxFQ1RfWDoKKysJCXJvdCA9IEZMSVBf WDsKKysJCXJldHVybiByb3Q7CisrCWNhc2UgRFJNX01PREVfUkVGTEVDVF9ZOgorKwkJcm90ID0g RkxJUF9ZOworKwkJcmV0dXJuIHJvdDsKKysJY2FzZSBEUk1fTU9ERV9SRUZMRUNUX1ggfCBEUk1f TU9ERV9SRUZMRUNUX1k6CisrCQlyb3QgPSBGTElQX1hZOworKwkJcmV0dXJuIHJvdDsKKysJZGVm YXVsdDoKKysJCWJyZWFrOworKwl9CisrCisrCXN3aXRjaCAocm90YXRpb24gJiBEUk1fTU9ERV9S T1RBVEVfTUFTSykgeworKwljYXNlIERSTV9NT0RFX1JPVEFURV8wOgorKwkJcm90ID0gUk9UXzA7 CisrCQlicmVhazsKKysJY2FzZSBEUk1fTU9ERV9ST1RBVEVfOTA6CisrCQlyb3QgPSBST1RfOTA7 CisrCQlicmVhazsKKysJY2FzZSBEUk1fTU9ERV9ST1RBVEVfMTgwOgorKwkJcm90ID0gUk9UXzE4 MDsKKysJCWJyZWFrOworKwljYXNlIERSTV9NT0RFX1JPVEFURV8yNzA6CisrCQlyb3QgPSBST1Rf MjcwOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlyb3QgPSBST1RfMDsKKysJCWJyZWFrOwor Kwl9CisrCisrCXJldHVybiByb3Q7CisrfQorKworK3N0YXRpYyBpbmxpbmUgdTggdG9fdnNfeXV2 X2NvbG9yX3NwYWNlKHUzMiBjb2xvcl9zcGFjZSkKKyt7CisrCXU4IGNzOworKworKwlzd2l0Y2gg KGNvbG9yX3NwYWNlKSB7CisrCWNhc2UgRFJNX0NPTE9SX1lDQkNSX0JUNjAxOgorKwkJY3MgPSBD T0xPUl9TUEFDRV82MDE7CisrCQlicmVhazsKKysJY2FzZSBEUk1fQ09MT1JfWUNCQ1JfQlQ3MDk6 CisrCQljcyA9IENPTE9SX1NQQUNFXzcwOTsKKysJCWJyZWFrOworKwljYXNlIERSTV9DT0xPUl9Z Q0JDUl9CVDIwMjA6CisrCQljcyA9IENPTE9SX1NQQUNFXzIwMjA7CisrCQlicmVhazsKKysJZGVm YXVsdDoKKysJCWNzID0gQ09MT1JfU1BBQ0VfNjAxOworKwkJYnJlYWs7CisrCX0KKysKKysJcmV0 dXJuIGNzOworK30KKysKKytzdGF0aWMgaW5saW5lIHU4IHRvX3ZzX3RpbGVfbW9kZSh1NjQgbW9k aWZpZXIpCisreworKwlyZXR1cm4gKHU4KShtb2RpZmllciAmIERSTV9GT1JNQVRfTU9EX1ZTX05P Uk1fTU9ERV9NQVNLKTsKKyt9CisrCisrc3RhdGljIGlubGluZSB1OCB0b192c19kaXNwbGF5X2lk KHN0cnVjdCB2c19kYyAqZGMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKKyt7CisrCXU4IHBhbmVs X251bSA9IGRjLT5ody5pbmZvLT5wYW5lbF9udW07CisrCXUzMiBpbmRleCA9IGRybV9jcnRjX2lu ZGV4KGNydGMpOworKwlpbnQgaTsKKysKKysJZm9yIChpID0gMDsgaSA8IHBhbmVsX251bTsgaSsr KSB7CisrCQlpZiAoaW5kZXggPT0gZGMtPmNydGNbaV0tPmJhc2UuaW5kZXgpCisrCQkJcmV0dXJu IGk7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgcGxkYV9jbGtfcnN0 X2luaXQoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJaW50IHJldCA9IDA7CisrCXN0cnVjdCB2 c19kYyAqZGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysKKysJcmV0ID0gY2xrX2J1bGtfcHJl cGFyZV9lbmFibGUoZGMtPm5jbGtzLCBkYy0+Y2xrX3ZvdXQpOworKwlpZiAocmV0KSB7CisrCQlk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBlbmFibGUgY2xvY2tzXG4iKTsKKysJCXJldHVybiByZXQ7 CisrCX0KKysKKysJcmV0ID0gcmVzZXRfY29udHJvbF9idWxrX2RlYXNzZXJ0KGRjLT5ucnN0cywg ZGMtPnJzdF92b3V0KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIHZvaWQgcGxkYV9j bGtfcnN0X2RlaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgdnNfZGMgKmRj ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCXJlc2V0X2NvbnRyb2xfYnVsa19hc3NlcnQo ZGMtPm5yc3RzLCBkYy0+cnN0X3ZvdXQpOworKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShk Yy0+bmNsa3MsIGRjLT5jbGtfdm91dCk7CisrfQorKworK3N0YXRpYyB2b2lkIGRjX2RlaW5pdChz dHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3QgdnNfZGMgKmRjID0gZGV2X2dldF9kcnZk YXRhKGRldik7CisrCisrCWRjX2h3X2VuYWJsZV9pbnRlcnJ1cHQoJmRjLT5odywgMCk7CisrCWRj X2h3X2RlaW5pdCgmZGMtPmh3KTsKKysJcGxkYV9jbGtfcnN0X2RlaW5pdChkZXYpOworK30KKysK KytzdGF0aWMgaW50IGRjX2luaXQoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IHZz X2RjICpkYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwlpbnQgcmV0OworKworKwlkYy0+Zmly c3RfZnJhbWUgPSB0cnVlOworKworKwlyZXQgPSBwbGRhX2Nsa19yc3RfaW5pdChkZXYpOworKwlp ZiAocmV0IDwgMCkgeworKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gaW5pdCBkYyBjbGsgcmVz ZXQ6ICVkXG4iLCByZXQpOworKwkJcmV0dXJuIHJldDsKKysJfQorKworKwlyZXQgPSBkY19od19p bml0KCZkYy0+aHcpOworKwlpZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBp bml0IERDIEhXXG4iKTsKKysJCXJldHVybiByZXQ7CisrCX0KKysJcmV0dXJuIDA7CisrfQorKwor K3N0YXRpYyB2b2lkIHZzX2RjX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKKyt7CisrCXN0cnVjdCB2c19kYyAqZGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKKysJc3RydWN0IHZzX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSB0b192c19jcnRjX3N0YXRl KGNydGMtPnN0YXRlKTsKKysJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+ c3RhdGUtPmFkanVzdGVkX21vZGU7CisrCXN0cnVjdCBkY19od19kaXNwbGF5IGRpc3BsYXk7Cisr CisrCWRpc3BsYXkuYnVzX2Zvcm1hdCA9IGNydGNfc3RhdGUtPm91dHB1dF9mbXQ7CisrCWRpc3Bs YXkuaF9hY3RpdmUgPSBtb2RlLT5oZGlzcGxheTsKKysJZGlzcGxheS5oX3RvdGFsID0gbW9kZS0+ aHRvdGFsOworKwlkaXNwbGF5Lmhfc3luY19zdGFydCA9IG1vZGUtPmhzeW5jX3N0YXJ0OworKwlk aXNwbGF5Lmhfc3luY19lbmQgPSBtb2RlLT5oc3luY19lbmQ7CisrCWlmIChtb2RlLT5mbGFncyAm IERSTV9NT0RFX0ZMQUdfUEhTWU5DKQorKwkJZGlzcGxheS5oX3N5bmNfcG9sYXJpdHkgPSB0cnVl OworKwllbHNlCisrCQlkaXNwbGF5Lmhfc3luY19wb2xhcml0eSA9IGZhbHNlOworKworKwlkaXNw bGF5LnZfYWN0aXZlID0gbW9kZS0+dmRpc3BsYXk7CisrCWRpc3BsYXkudl90b3RhbCA9IG1vZGUt PnZ0b3RhbDsKKysJZGlzcGxheS52X3N5bmNfc3RhcnQgPSBtb2RlLT52c3luY19zdGFydDsKKysJ ZGlzcGxheS52X3N5bmNfZW5kID0gbW9kZS0+dnN5bmNfZW5kOworKworKwlpZiAobW9kZS0+Zmxh Z3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKKysJCWRpc3BsYXkudl9zeW5jX3BvbGFyaXR5ID0g dHJ1ZTsKKysJZWxzZQorKwkJZGlzcGxheS52X3N5bmNfcG9sYXJpdHkgPSBmYWxzZTsKKysKKysJ ZGlzcGxheS5zeW5jX21vZGUgPSBjcnRjX3N0YXRlLT5zeW5jX21vZGU7CisrCWRpc3BsYXkuYmdf Y29sb3IgPSBjcnRjX3N0YXRlLT5iZ19jb2xvcjsKKysKKysJZGlzcGxheS5pZCA9IHRvX3ZzX2Rp c3BsYXlfaWQoZGMsIGNydGMpOworKwlkaXNwbGF5LnN5bmNfZW5hYmxlID0gY3J0Y19zdGF0ZS0+ c3luY19lbmFibGU7CisrCWRpc3BsYXkuZGl0aGVyX2VuYWJsZSA9IGNydGNfc3RhdGUtPmRpdGhl cl9lbmFibGU7CisrCisrCWRpc3BsYXkuZW5hYmxlID0gdHJ1ZTsKKysKKysJaWYgKGNydGNfc3Rh dGUtPmVuY29kZXJfdHlwZSA9PSBEUk1fTU9ERV9FTkNPREVSX0RTSSkgeworKwkJZGNfaHdfc2V0 X291dCgmZGMtPmh3LCBPVVRfRFBJLCBkaXNwbGF5LmlkKTsKKysJCWNsa19zZXRfcmF0ZShkYy0+ Y2xrX3ZvdXRbQ0xLX1ZPVVRfU09DX1BJWF0uY2xrLCBtb2RlLT5jbG9jayAqIDEwMDApOworKwkJ Y2xrX3NldF9wYXJlbnQoZGMtPmNsa192b3V0W0NMS19WT1VUX1BJWDFdLmNsaywKKysJCQkgICAg ICAgZGMtPmNsa192b3V0W0NMS19WT1VUX1NPQ19QSVhdLmNsayk7CisrCX0gZWxzZSB7CisrCQlk Y19od19zZXRfb3V0KCZkYy0+aHcsIE9VVF9EUCwgZGlzcGxheS5pZCk7CisrCQljbGtfc2V0X3Bh cmVudChkYy0+Y2xrX3ZvdXRbQ0xLX1ZPVVRfUElYMF0uY2xrLAorKwkJCSAgICAgICBkYy0+Y2xr X3ZvdXRbQ0xLX1ZPVVRfSERNSV9QSVhdLmNsayk7CisrCX0KKysKKysJZGNfaHdfc2V0dXBfZGlz cGxheSgmZGMtPmh3LCAmZGlzcGxheSk7CisrfQorKworK3N0YXRpYyB2b2lkIHZzX2RjX2Rpc2Fi bGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCisreworKwlzdHJ1 Y3QgdnNfZGMgKmRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCXN0cnVjdCBkY19od19kaXNw bGF5IGRpc3BsYXk7CisrCisrCWRpc3BsYXkuaWQgPSB0b192c19kaXNwbGF5X2lkKGRjLCBjcnRj KTsKKysJZGlzcGxheS5lbmFibGUgPSBmYWxzZTsKKysKKysJZGNfaHdfc2V0dXBfZGlzcGxheSgm ZGMtPmh3LCAmZGlzcGxheSk7CisrfQorKworK3N0YXRpYyBib29sIHZzX2RjX21vZGVfZml4dXAo c3RydWN0IGRldmljZSAqZGV2LAorKwkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCisrCQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSkKKyt7CisrCXJldHVybiB0cnVlOworK30KKysKKytzdGF0aWMgdm9pZCB2c19kY19zZXRfZ2Ft bWEoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisrCQkJICAgIHN0 cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQsIHVuc2lnbmVkIGludCBzaXplKQorK3sKKysJc3RydWN0 IHZzX2RjICpkYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwl1MTYgaSwgciwgZywgYjsKKysJ dTggYml0cywgaWQ7CisrCisrCWlmIChzaXplICE9IGRjLT5ody5pbmZvLT5nYW1tYV9zaXplKSB7 CisrCQlkZXZfZXJyKGRldiwgImdhbW1hIHNpemUgZG9lcyBub3QgbWF0Y2ghXG4iKTsKKysJCXJl dHVybjsKKysJfQorKworKwlpZCA9IHRvX3ZzX2Rpc3BsYXlfaWQoZGMsIGNydGMpOworKworKwli aXRzID0gZGMtPmh3LmluZm8tPmdhbW1hX2JpdHM7CisrCWZvciAoaSA9IDA7IGkgPCBzaXplOyBp KyspIHsKKysJCXIgPSBkcm1fY29sb3JfbHV0X2V4dHJhY3QobHV0W2ldLnJlZCwgYml0cyk7Cisr CQlnID0gZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5ncmVlbiwgYml0cyk7CisrCQliID0g ZHJtX2NvbG9yX2x1dF9leHRyYWN0KGx1dFtpXS5ibHVlLCBiaXRzKTsKKysJCWRjX2h3X3VwZGF0 ZV9nYW1tYSgmZGMtPmh3LCBpZCwgaSwgciwgZywgYik7CisrCX0KKyt9CisrCisrc3RhdGljIHZv aWQgdnNfZGNfZW5hYmxlX2dhbW1hKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRj ICpjcnRjLAorKwkJCSAgICAgICBib29sIGVuYWJsZSkKKyt7CisrCXN0cnVjdCB2c19kYyAqZGMg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJdTggaWQ7CisrCisrCWlkID0gdG9fdnNfZGlzcGxh eV9pZChkYywgY3J0Yyk7CisrCWRjX2h3X2VuYWJsZV9nYW1tYSgmZGMtPmh3LCBpZCwgZW5hYmxl KTsKKyt9CisrCisrc3RhdGljIHZvaWQgdnNfZGNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNl ICpkZXYsIGJvb2wgZW5hYmxlKQorK3sKKysJc3RydWN0IHZzX2RjICpkYyA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOworKworKwlkY19od19lbmFibGVfaW50ZXJydXB0KCZkYy0+aHcsIGVuYWJsZSk7 CisrfQorKworK3N0YXRpYyB1MzIgY2FsY19mYWN0b3IodTMyIHNyYywgdTMyIGRlc3QpCisrewor Kwl1MzIgZmFjdG9yID0gMSA8PCAxNjsKKysKKysJaWYgKHNyYyA+IDEgJiYgZGVzdCA+IDEpCisr CQlmYWN0b3IgPSAoKHNyYyAtIDEpIDw8IDE2KSAvIChkZXN0IC0gMSk7CisrCisrCXJldHVybiBm YWN0b3I7CisrfQorKworK3N0YXRpYyB2b2lkIHVwZGF0ZV9zY2FsZShzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpzdGF0ZSwgc3RydWN0IGRjX2h3X3JvaSAqcm9pLAorKwkJCSBzdHJ1Y3QgZGNfaHdf c2NhbGUgKnNjYWxlKQorK3sKKysJaW50IGRzdF93ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5k c3QpOworKwlpbnQgZHN0X2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5kc3QpOworKwlpbnQg c3JjX3csIHNyY19oLCB0ZW1wOworKworKwlzY2FsZS0+ZW5hYmxlID0gZmFsc2U7CisrCisrCWlm IChyb2ktPmVuYWJsZSkgeworKwkJc3JjX3cgPSByb2ktPndpZHRoOworKwkJc3JjX2ggPSByb2kt PmhlaWdodDsKKysJfSBlbHNlIHsKKysJCXNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5z cmMpID4+IDE2OworKwkJc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5zcmMpID4+IDE2 OworKwl9CisrCisrCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHN0YXRlLT5yb3RhdGlvbikp IHsKKysJCXRlbXAgPSBzcmNfdzsKKysJCXNyY193ID0gc3JjX2g7CisrCQlzcmNfaCA9IHRlbXA7 CisrCX0KKysKKysJaWYgKHNyY193ICE9IGRzdF93KSB7CisrCQlzY2FsZS0+c2NhbGVfZmFjdG9y X3ggPSBjYWxjX2ZhY3RvcihzcmNfdywgZHN0X3cpOworKwkJc2NhbGUtPmVuYWJsZSA9IHRydWU7 CisrCX0gZWxzZSB7CisrCQlzY2FsZS0+c2NhbGVfZmFjdG9yX3ggPSAxIDw8IDE2OworKwl9Cisr CWlmIChzcmNfaCAhPSBkc3RfaCkgeworKwkJc2NhbGUtPnNjYWxlX2ZhY3Rvcl95ID0gY2FsY19m YWN0b3Ioc3JjX2gsIGRzdF9oKTsKKysJCXNjYWxlLT5lbmFibGUgPSB0cnVlOworKwl9IGVsc2Ug eworKwkJc2NhbGUtPnNjYWxlX2ZhY3Rvcl95ID0gMSA8PCAxNjsKKysJfQorK30KKysKKytzdGF0 aWMgdm9pZCB1cGRhdGVfZmIoc3RydWN0IHZzX3BsYW5lICpwbGFuZSwgdTggZGlzcGxheV9pZCwK KysJCSAgICAgIHN0cnVjdCBkY19od19mYiAqZmIsIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0 YXRlKQorK3sKKysJc3RydWN0IHZzX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9IHRvX3ZzX3Bs YW5lX3N0YXRlKHN0YXRlKTsKKysJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZHJtX2ZiID0gc3Rh dGUtPmZiOworKwlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+c3JjOworKworKwlmYi0+ ZGlzcGxheV9pZCA9IGRpc3BsYXlfaWQ7CisrCWZiLT55X2FkZHJlc3MgPSBwbGFuZS0+ZG1hX2Fk ZHJbMF07CisrCWZiLT55X3N0cmlkZSA9IGRybV9mYi0+cGl0Y2hlc1swXTsKKysJaWYgKGRybV9m Yi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0MjApIHsKKysJCWZiLT51X2FkZHJl c3MgPSBwbGFuZS0+ZG1hX2FkZHJbMl07CisrCQlmYi0+dl9hZGRyZXNzID0gcGxhbmUtPmRtYV9h ZGRyWzFdOworKwkJZmItPnVfc3RyaWRlID0gZHJtX2ZiLT5waXRjaGVzWzJdOworKwkJZmItPnZf c3RyaWRlID0gZHJtX2ZiLT5waXRjaGVzWzFdOworKwl9IGVsc2UgeworKwkJZmItPnVfYWRkcmVz cyA9IHBsYW5lLT5kbWFfYWRkclsxXTsKKysJCWZiLT52X2FkZHJlc3MgPSBwbGFuZS0+ZG1hX2Fk ZHJbMl07CisrCQlmYi0+dV9zdHJpZGUgPSBkcm1fZmItPnBpdGNoZXNbMV07CisrCQlmYi0+dl9z dHJpZGUgPSBkcm1fZmItPnBpdGNoZXNbMl07CisrCX0KKysJZmItPndpZHRoID0gZHJtX3JlY3Rf d2lkdGgoc3JjKSA+PiAxNjsKKysJZmItPmhlaWdodCA9IGRybV9yZWN0X2hlaWdodChzcmMpID4+ IDE2OworKwlmYi0+dGlsZV9tb2RlID0gdG9fdnNfdGlsZV9tb2RlKGRybV9mYi0+bW9kaWZpZXIp OworKwlmYi0+cm90YXRpb24gPSB0b192c19yb3RhdGlvbihzdGF0ZS0+cm90YXRpb24pOworKwlm Yi0+eXV2X2NvbG9yX3NwYWNlID0gdG9fdnNfeXV2X2NvbG9yX3NwYWNlKHN0YXRlLT5jb2xvcl9l bmNvZGluZyk7CisrCWZiLT56cG9zID0gc3RhdGUtPnpwb3M7CisrCWZiLT5lbmFibGUgPSBzdGF0 ZS0+dmlzaWJsZTsKKysJdXBkYXRlX2Zvcm1hdChkcm1fZmItPmZvcm1hdC0+Zm9ybWF0LCBkcm1f ZmItPm1vZGlmaWVyLCBmYik7CisrCXVwZGF0ZV9zd2l6emxlKGRybV9mYi0+Zm9ybWF0LT5mb3Jt YXQsIGZiKTsKKysJdXBkYXRlX3dhdGVybWFyayhwbGFuZV9zdGF0ZS0+d2F0ZXJtYXJrLCBmYik7 CisrCXBsYW5lX3N0YXRlLT5zdGF0dXMudGlsZV9tb2RlID0gZmItPnRpbGVfbW9kZTsKKyt9Cisr Cisrc3RhdGljIHZvaWQgdXBkYXRlX2RlZ2FtbWEoc3RydWN0IHZzX2RjICpkYywgc3RydWN0IHZz X3BsYW5lICpwbGFuZSwKKysJCQkgICBzdHJ1Y3QgdnNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQorK3sKKysJZGNfaHdfdXBkYXRlX2RlZ2FtbWEoJmRjLT5odywgcGxhbmUtPmlkLCBwbGFuZV9z dGF0ZS0+ZGVnYW1tYSk7CisrCXBsYW5lX3N0YXRlLT5kZWdhbW1hX2NoYW5nZWQgPSBmYWxzZTsK Kyt9CisrCisrc3RhdGljIHZvaWQgdXBkYXRlX3JvaShzdHJ1Y3QgdnNfZGMgKmRjLCB1OCBpZCwK KysJCSAgICAgICBzdHJ1Y3QgdnNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAorKwkJICAgICAg IHN0cnVjdCBkY19od19yb2kgKnJvaSwKKysJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpzdGF0ZSkKKyt7CisrCXN0cnVjdCBkcm1fdnNfcm9pICpkYXRhOworKwlzdHJ1Y3QgZHJtX3Jl Y3QgKnNyYyA9ICZzdGF0ZS0+c3JjOworKwl1MTYgc3JjX3cgPSBkcm1fcmVjdF93aWR0aChzcmMp ID4+IDE2OworKwl1MTYgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoc3JjKSA+PiAxNjsKKysKKysJ aWYgKHBsYW5lX3N0YXRlLT5yb2kpIHsKKysJCWRhdGEgPSBwbGFuZV9zdGF0ZS0+cm9pLT5kYXRh OworKworKwkJaWYgKGRhdGEtPmVuYWJsZSkgeworKwkJCXJvaS0+eCA9IGRhdGEtPnJvaV94Owor KwkJCXJvaS0+eSA9IGRhdGEtPnJvaV95OworKwkJCXJvaS0+d2lkdGggPSAoZGF0YS0+cm9pX3gg KyBkYXRhLT5yb2lfdyA+IHNyY193KSA/CisrCQkJCQkJIChzcmNfdyAtIGRhdGEtPnJvaV94KSA6 IGRhdGEtPnJvaV93OworKwkJCXJvaS0+aGVpZ2h0ID0gKGRhdGEtPnJvaV95ICsgZGF0YS0+cm9p X2ggPiBzcmNfaCkgPworKwkJCQkJCSAgKHNyY19oIC0gZGF0YS0+cm9pX3kpIDogZGF0YS0+cm9p X2g7CisrCQkJcm9pLT5lbmFibGUgPSB0cnVlOworKwkJfSBlbHNlIHsKKysJCQlyb2ktPmVuYWJs ZSA9IGZhbHNlOworKwkJfQorKworKwkJZGNfaHdfdXBkYXRlX3JvaSgmZGMtPmh3LCBpZCwgcm9p KTsKKysJfSBlbHNlIHsKKysJCXJvaS0+ZW5hYmxlID0gZmFsc2U7CisrCX0KKyt9CisrCisrc3Rh dGljIHZvaWQgdXBkYXRlX2NvbG9yX21nbXQoc3RydWN0IHZzX2RjICpkYywgdTggaWQsCisrCQkJ ICAgICAgc3RydWN0IGRjX2h3X2ZiICpmYiwKKysJCQkgICAgICBzdHJ1Y3QgdnNfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKQorK3sKKysJc3RydWN0IGRybV92c19jb2xvcl9tZ210ICpkYXRhOwor KwlzdHJ1Y3QgZGNfaHdfY29sb3JrZXkgY29sb3JrZXk7CisrCisrCWlmIChwbGFuZV9zdGF0ZS0+ Y29sb3JfbWdtdCkgeworKwkJZGF0YSA9IHBsYW5lX3N0YXRlLT5jb2xvcl9tZ210LT5kYXRhOwor KworKwkJZmItPmNsZWFyX2VuYWJsZSA9IGRhdGEtPmNsZWFyX2VuYWJsZTsKKysJCWZiLT5jbGVh cl92YWx1ZSA9IGRhdGEtPmNsZWFyX3ZhbHVlOworKworKwkJaWYgKGRhdGEtPmNvbG9ya2V5ID4g ZGF0YS0+Y29sb3JrZXlfaGlnaCkKKysJCQlkYXRhLT5jb2xvcmtleSA9IGRhdGEtPmNvbG9ya2V5 X2hpZ2g7CisrCisrCQljb2xvcmtleS5jb2xvcmtleSA9IGRhdGEtPmNvbG9ya2V5OworKwkJY29s b3JrZXkuY29sb3JrZXlfaGlnaCA9IGRhdGEtPmNvbG9ya2V5X2hpZ2g7CisrCQljb2xvcmtleS50 cmFuc3BhcmVuY3kgPSAoZGF0YS0+dHJhbnNwYXJlbmN5KSA/CisrCQkJCURDX1RSQU5TUEFSRU5D WV9LRVkgOiBEQ19UUkFOU1BBUkVOQ1lfT1BBUVVFOworKwkJZGNfaHdfdXBkYXRlX2NvbG9ya2V5 KCZkYy0+aHcsIGlkLCAmY29sb3JrZXkpOworKwl9CisrfQorKworK3N0YXRpYyB2b2lkIHVwZGF0 ZV9wbGFuZShzdHJ1Y3QgdnNfZGMgKmRjLCBzdHJ1Y3QgdnNfcGxhbmUgKnBsYW5lLAorKwkJCSBz dHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCisrCQkJIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpkcm1fc3RhdGUpCisreworKwlzdHJ1Y3QgZGNfaHdfZmIgZmIgPSB7MH07CisrCXN0cnVjdCBk Y19od19zY2FsZSBzY2FsZTsKKysJc3RydWN0IGRjX2h3X3Bvc2l0aW9uIHBvczsKKysJc3RydWN0 IGRjX2h3X2JsZW5kIGJsZW5kOworKwlzdHJ1Y3QgZGNfaHdfcm9pIHJvaTsKKysJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoZHJt X3N0YXRlLAorKwkJCQkJCQkJCSAgIGRybV9wbGFuZSk7CisrCXN0cnVjdCB2c19wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUgPSB0b192c19wbGFuZV9zdGF0ZShzdGF0ZSk7CisrCXN0cnVjdCBkcm1f cmVjdCAqZGVzdCA9ICZzdGF0ZS0+ZHN0OworKwlib29sIGRlY19lbmFibGUgPSBmYWxzZTsKKysJ dTggZGlzcGxheV9pZCA9IDA7CisrCisrCWRpc3BsYXlfaWQgPSB0b192c19kaXNwbGF5X2lkKGRj LCBzdGF0ZS0+Y3J0Yyk7CisrCXVwZGF0ZV9mYihwbGFuZSwgZGlzcGxheV9pZCwgJmZiLCBzdGF0 ZSk7CisrCWZiLmRlY19lbmFibGUgPSBkZWNfZW5hYmxlOworKworKwl1cGRhdGVfcm9pKGRjLCBw bGFuZS0+aWQsIHBsYW5lX3N0YXRlLCAmcm9pLCBzdGF0ZSk7CisrCisrCXVwZGF0ZV9zY2FsZShz dGF0ZSwgJnJvaSwgJnNjYWxlKTsKKysKKysJaWYgKHBsYW5lX3N0YXRlLT5kZWdhbW1hX2NoYW5n ZWQpCisrCQl1cGRhdGVfZGVnYW1tYShkYywgcGxhbmUsIHBsYW5lX3N0YXRlKTsKKysKKysJcG9z LnN0YXJ0X3ggPSBkZXN0LT54MTsKKysJcG9zLnN0YXJ0X3kgPSBkZXN0LT55MTsKKysJcG9zLmVu ZF94ID0gZGVzdC0+eDI7CisrCXBvcy5lbmRfeSA9IGRlc3QtPnkyOworKworKwlibGVuZC5hbHBo YSA9ICh1OCkoc3RhdGUtPmFscGhhID4+IDgpOworKwlibGVuZC5ibGVuZF9tb2RlID0gKHU4KShz dGF0ZS0+cGl4ZWxfYmxlbmRfbW9kZSk7CisrCisrCXVwZGF0ZV9jb2xvcl9tZ210KGRjLCBwbGFu ZS0+aWQsICZmYiwgcGxhbmVfc3RhdGUpOworKworKwlkY19od191cGRhdGVfcGxhbmUoJmRjLT5o dywgcGxhbmUtPmlkLCAmZmIsICZzY2FsZSwgJnBvcywgJmJsZW5kKTsKKyt9CisrCisrc3RhdGlj IHZvaWQgdXBkYXRlX3FvcyhzdHJ1Y3QgdnNfZGMgKmRjLCBzdHJ1Y3QgdnNfcGxhbmUgKnBsYW5l LAorKwkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKKysJCSAgICAgICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlKQorK3sKKysJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoZHJtX3N0YXRlLAor KwkJCQkJCQkJCSAgIGRybV9wbGFuZSk7CisrCXN0cnVjdCB2c19wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUgPSB0b192c19wbGFuZV9zdGF0ZShzdGF0ZSk7CisrCXN0cnVjdCBkcm1fdnNfd2F0ZXJt YXJrICpkYXRhOworKwlzdHJ1Y3QgZGNfaHdfcW9zIHFvczsKKysKKysJaWYgKHBsYW5lX3N0YXRl LT53YXRlcm1hcmspIHsKKysJCWRhdGEgPSBwbGFuZV9zdGF0ZS0+d2F0ZXJtYXJrLT5kYXRhOwor KworKwkJaWYgKGRhdGEtPnFvc19oaWdoKSB7CisrCQkJaWYgKGRhdGEtPnFvc19sb3cgPiBkYXRh LT5xb3NfaGlnaCkKKysJCQkJZGF0YS0+cW9zX2xvdyA9IGRhdGEtPnFvc19oaWdoOworKworKwkJ CXFvcy5sb3dfdmFsdWUgPSBkYXRhLT5xb3NfbG93ICYgMHgwRjsKKysJCQlxb3MuaGlnaF92YWx1 ZSA9IGRhdGEtPnFvc19oaWdoICYgMHgwRjsKKysJCQlkY19od191cGRhdGVfcW9zKCZkYy0+aHcs ICZxb3MpOworKwkJfQorKwl9CisrfQorKworK3N0YXRpYyB2b2lkIHVwZGF0ZV9jdXJzb3Jfc2l6 ZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRjX2h3X2N1cnNvciAqY3Vy c29yKQorK3sKKysJdTggc2l6ZV90eXBlOworKworKwlzd2l0Y2ggKHN0YXRlLT5jcnRjX3cpIHsK KysJY2FzZSAzMjoKKysJCXNpemVfdHlwZSA9IENVUlNPUl9TSVpFXzMyWDMyOworKwkJYnJlYWs7 CisrCWNhc2UgNjQ6CisrCQlzaXplX3R5cGUgPSBDVVJTT1JfU0laRV82NFg2NDsKKysJCWJyZWFr OworKwlkZWZhdWx0OgorKwkJc2l6ZV90eXBlID0gQ1VSU09SX1NJWkVfMzJYMzI7CisrCQlicmVh azsKKysJfQorKworKwljdXJzb3ItPnNpemUgPSBzaXplX3R5cGU7CisrfQorKworK3N0YXRpYyB2 b2lkIHVwZGF0ZV9jdXJzb3JfcGxhbmUoc3RydWN0IHZzX2RjICpkYywgc3RydWN0IHZzX3BsYW5l ICpwbGFuZSwKKysJCQkJc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAorKwkJCQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlKQorK3sKKysJc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoZHJtX3N0YXRlLAorKwkJ CQkJCQkJICAgICAgIGRybV9wbGFuZSk7CisrCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmRybV9m YiA9IHN0YXRlLT5mYjsKKysJc3RydWN0IGRjX2h3X2N1cnNvciBjdXJzb3I7CisrCisrCWN1cnNv ci5hZGRyZXNzID0gcGxhbmUtPmRtYV9hZGRyWzBdOworKwljdXJzb3IueCA9IHN0YXRlLT5jcnRj X3g7CisrCWN1cnNvci55ID0gc3RhdGUtPmNydGNfeTsKKysJY3Vyc29yLmhvdF94ID0gZHJtX2Zi LT5ob3RfeDsKKysJY3Vyc29yLmhvdF95ID0gZHJtX2ZiLT5ob3RfeTsKKysJY3Vyc29yLmRpc3Bs YXlfaWQgPSB0b192c19kaXNwbGF5X2lkKGRjLCBzdGF0ZS0+Y3J0Yyk7CisrCXVwZGF0ZV9jdXJz b3Jfc2l6ZShzdGF0ZSwgJmN1cnNvcik7CisrCWN1cnNvci5lbmFibGUgPSB0cnVlOworKworKwlk Y19od191cGRhdGVfY3Vyc29yKCZkYy0+aHcsIGN1cnNvci5kaXNwbGF5X2lkLCAmY3Vyc29yKTsK Kyt9CisrCisrc3RhdGljIHZvaWQgdnNfZGNfdXBkYXRlX3BsYW5lKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IHZzX3BsYW5lICpwbGFuZSwKKysJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZSAq ZHJtX3BsYW5lLAorKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRl KQorK3sKKysJc3RydWN0IHZzX2RjICpkYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwllbnVt IGRybV9wbGFuZV90eXBlIHR5cGUgPSBwbGFuZS0+YmFzZS50eXBlOworKworKwlzd2l0Y2ggKHR5 cGUpIHsKKysJY2FzZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgorKwljYXNlIERSTV9QTEFORV9U WVBFX09WRVJMQVk6CisrCQl1cGRhdGVfcGxhbmUoZGMsIHBsYW5lLCBkcm1fcGxhbmUsIGRybV9z dGF0ZSk7CisrCQl1cGRhdGVfcW9zKGRjLCBwbGFuZSwgZHJtX3BsYW5lLCBkcm1fc3RhdGUpOwor KwkJYnJlYWs7CisrCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgorKwkJdXBkYXRlX2N1cnNv cl9wbGFuZShkYywgcGxhbmUsIGRybV9wbGFuZSwgZHJtX3N0YXRlKTsKKysJCWJyZWFrOworKwlk ZWZhdWx0OgorKwkJYnJlYWs7CisrCX0KKyt9CisrCisrc3RhdGljIHZvaWQgdnNfZGNfZGlzYWJs ZV9wbGFuZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2c19wbGFuZSAqcGxhbmUsCisrCQkJ CXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKKyt7CisrCXN0cnVjdCB2c19kYyAq ZGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlID0g cGxhbmUtPmJhc2UudHlwZTsKKysJc3RydWN0IGRjX2h3X2ZiIGZiID0gezB9OworKwlzdHJ1Y3Qg ZGNfaHdfY3Vyc29yIGN1cnNvciA9IHswfTsKKysKKysJc3dpdGNoICh0eXBlKSB7CisrCWNhc2Ug RFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKKysJY2FzZSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOgor KwkJZmIuZW5hYmxlID0gZmFsc2U7CisrCQlkY19od191cGRhdGVfcGxhbmUoJmRjLT5odywgcGxh bmUtPmlkLCAmZmIsIE5VTEwsIE5VTEwsIE5VTEwpOworKwkJYnJlYWs7CisrCisrCWNhc2UgRFJN X1BMQU5FX1RZUEVfQ1VSU09SOgorKwkJY3Vyc29yLmVuYWJsZSA9IGZhbHNlOworKwkJY3Vyc29y LmRpc3BsYXlfaWQgPSB0b192c19kaXNwbGF5X2lkKGRjLCBvbGRfc3RhdGUtPmNydGMpOworKwkJ ZGNfaHdfdXBkYXRlX2N1cnNvcigmZGMtPmh3LCBjdXJzb3IuZGlzcGxheV9pZCwgJmN1cnNvcik7 CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCWJyZWFrOworKwl9CisrfQorKworK3N0YXRpYyBi b29sIHZzX2RjX21vZF9zdXBwb3J0ZWQoY29uc3Qgc3RydWN0IHZzX3BsYW5lX2luZm8gKnBsYW5l X2luZm8sCisrCQkJCXU2NCBtb2RpZmllcikKKyt7CisrCWNvbnN0IHU2NCAqbW9kczsKKysKKysJ aWYgKCFwbGFuZV9pbmZvLT5tb2RpZmllcnMpCisrCQlyZXR1cm4gZmFsc2U7CisrCisrCWZvciAo bW9kcyA9IHBsYW5lX2luZm8tPm1vZGlmaWVyczsgKm1vZHMgIT0gRFJNX0ZPUk1BVF9NT0RfSU5W QUxJRDsgbW9kcysrKSB7CisrCQlpZiAoKm1vZHMgPT0gbW9kaWZpZXIpCisrCQkJcmV0dXJuIHRy dWU7CisrCX0KKysKKysJcmV0dXJuIGZhbHNlOworK30KKysKKytzdGF0aWMgaW50IHZzX2RjX2No ZWNrX3BsYW5lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisr CQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCisreworKwlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVf c3RhdGUoc3RhdGUsCisrCQkJCQkJCQkJCSBwbGFuZSk7CisrCXN0cnVjdCB2c19kYyAqZGMgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBuZXdf cGxhbmVfc3RhdGUtPmZiOworKwljb25zdCBzdHJ1Y3QgdnNfcGxhbmVfaW5mbyAqcGxhbmVfaW5m bzsKKysJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbmV3X3BsYW5lX3N0YXRlLT5jcnRjOworKwlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisrCXN0cnVjdCB2c19wbGFuZSAqdnNf cGxhbmUgPSB0b192c19wbGFuZShwbGFuZSk7CisrCisrCXBsYW5lX2luZm8gPSAmZGMtPmh3Lmlu Zm8tPnBsYW5lc1t2c19wbGFuZS0+aWRdOworKwlpZiAoIXBsYW5lX2luZm8pCisrCQlyZXR1cm4g LUVJTlZBTDsKKysKKysJaWYgKGZiLT53aWR0aCA8IHBsYW5lX2luZm8tPm1pbl93aWR0aCB8fAor KwkgICAgZmItPndpZHRoID4gcGxhbmVfaW5mby0+bWF4X3dpZHRoIHx8CisrCSAgICBmYi0+aGVp Z2h0IDwgcGxhbmVfaW5mby0+bWluX2hlaWdodCB8fAorKwkgICAgZmItPmhlaWdodCA+IHBsYW5l X2luZm8tPm1heF9oZWlnaHQpCisrCQlkZXZfZXJyX29uY2UoZGV2LCAiYnVmZmVyIHNpemUgbWF5 IG5vdCBzdXBwb3J0IG9uIHBsYW5lJWQuXG4iLAorKwkJCSAgICAgdnNfcGxhbmUtPmlkKTsKKysK KysJaWYgKHZzX3BsYW5lLT5iYXNlLnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SICYmCisr CSAgICAoIXZzX2RjX21vZF9zdXBwb3J0ZWQocGxhbmVfaW5mbywgZmItPm1vZGlmaWVyKSkpIHsK KysJCWRldl9lcnIoZGV2LCAidW5zdXBwb3J0ZWQgbW9kaWZpZXIgb24gcGxhbmUlZC5cbiIsIHZz X3BsYW5lLT5pZCk7CisrCQlyZXR1cm4gLUVJTlZBTDsKKysJfQorKworKwljcnRjX3N0YXRlID0g ZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisrCWlmIChJ U19FUlIoY3J0Y19zdGF0ZSkpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJcmV0dXJuIGRybV9h dG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKG5ld19wbGFuZV9zdGF0ZSwgY3J0Y19zdGF0 ZSwKKysJCQkJCQkgIHBsYW5lX2luZm8tPm1pbl9zY2FsZSwKKysJCQkJCQkgIHBsYW5lX2luZm8t Pm1heF9zY2FsZSwKKysJCQkJCQkgIHRydWUsIHRydWUpOworK30KKysKKytzdGF0aWMgaXJxcmV0 dXJuX3QgZGNfaXNyKGludCBpcnEsIHZvaWQgKmRhdGEpCisreworKwlzdHJ1Y3QgdnNfZGMgKmRj ID0gZGF0YTsKKysJc3RydWN0IHZzX2RjX2luZm8gKmRjX2luZm8gPSBkYy0+aHcuaW5mbzsKKysJ dTMyIGksIHJldDsKKysKKysJcmV0ID0gZGNfaHdfZ2V0X2ludGVycnVwdCgmZGMtPmh3KTsKKysK KysJZm9yIChpID0gMDsgaSA8IGRjX2luZm8tPnBhbmVsX251bTsgaSsrKQorKwkJdnNfY3J0Y19o YW5kbGVfdmJsYW5rKCZkYy0+Y3J0Y1tpXS0+YmFzZSwgZGNfaHdfY2hlY2tfdW5kZXJmbG93KCZk Yy0+aHcpKTsKKysKKysJcmV0dXJuIElSUV9IQU5ETEVEOworK30KKysKKytzdGF0aWMgdm9pZCB2 c19kY19jb21taXQoc3RydWN0IGRldmljZSAqZGV2KQorK3sKKysJc3RydWN0IHZzX2RjICpkYyA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwlkY19od19lbmFibGVfc2hhZG93X3JlZ2lzdGVy KCZkYy0+aHcsIGZhbHNlKTsKKysKKysJZGNfaHdfY29tbWl0KCZkYy0+aHcpOworKworKwlpZiAo ZGMtPmZpcnN0X2ZyYW1lKQorKwkJZGMtPmZpcnN0X2ZyYW1lID0gZmFsc2U7CisrCisrCWRjX2h3 X2VuYWJsZV9zaGFkb3dfcmVnaXN0ZXIoJmRjLT5odywgdHJ1ZSk7CisrfQorKworK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdnNfY3J0Y19mdW5jcyBkY19jcnRjX2Z1bmNzID0geworKwkuZW5hYmxlCQkJ PSB2c19kY19lbmFibGUsCisrCS5kaXNhYmxlCQk9IHZzX2RjX2Rpc2FibGUsCisrCS5tb2RlX2Zp eHVwCQk9IHZzX2RjX21vZGVfZml4dXAsCisrCS5zZXRfZ2FtbWEJCT0gdnNfZGNfc2V0X2dhbW1h LAorKwkuZW5hYmxlX2dhbW1hCT0gdnNfZGNfZW5hYmxlX2dhbW1hLAorKwkuZW5hYmxlX3ZibGFu awk9IHZzX2RjX2VuYWJsZV92YmxhbmssCisrCS5jb21taXQJCQk9IHZzX2RjX2NvbW1pdCwKKyt9 OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdnNfcGxhbmVfZnVuY3MgZGNfcGxhbmVfZnVuY3Mg PSB7CisrCS51cGRhdGUJCQk9IHZzX2RjX3VwZGF0ZV9wbGFuZSwKKysJLmRpc2FibGUJCT0gdnNf ZGNfZGlzYWJsZV9wbGFuZSwKKysJLmNoZWNrCQkJPSB2c19kY19jaGVja19wbGFuZSwKKyt9Owor KworK3N0YXRpYyBpbnQgZGNfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Ug Km1hc3Rlciwgdm9pZCAqZGF0YSkKKyt7CisrCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0g ZGF0YTsKKysJc3RydWN0IHZzX2RjICpkYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwlzdHJ1 Y3QgZGV2aWNlX25vZGUgKnBvcnQ7CisrCXN0cnVjdCB2c19jcnRjICpjcnRjOworKwlzdHJ1Y3Qg ZHJtX2NydGMgKmRybV9jcnRjOworKwlzdHJ1Y3QgdnNfZGNfaW5mbyAqZGNfaW5mbzsKKysJc3Ry dWN0IHZzX3BsYW5lICpwbGFuZTsKKysJc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCAqdG1w OworKwlzdHJ1Y3QgdnNfcGxhbmVfaW5mbyAqcGxhbmVfaW5mbzsKKysJaW50IGksIHJldDsKKysJ dTMyIGN0cmNfbWFzayA9IDA7CisrCisrCWlmICghZHJtX2RldiB8fCAhZGMpIHsKKysJCWRldl9l cnIoZGV2LCAiZGV2aWNlcyBhcmUgbm90IGNyZWF0ZWQuXG4iKTsKKysJCXJldHVybiAtRU5PREVW OworKwl9CisrCisrCXJldCA9IGRjX2luaXQoZGV2KTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRl dl9lcnIoZGV2LCAiRmFpbGVkIHRvIGluaXRpYWxpemUgREMgaGFyZHdhcmUuXG4iKTsKKysJCXJl dHVybiByZXQ7CisrCX0KKysKKysJcG9ydCA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi0+b2Zf bm9kZSwgInBvcnQiKTsKKysJaWYgKCFwb3J0KSB7CisrCQlkZXZfZXJyKGRldiwgIm5vIHBvcnQg bm9kZSBmb3VuZFxuIik7CisrCQlyZXR1cm4gLUVOT0RFVjsKKysJfQorKwlvZl9ub2RlX3B1dChw b3J0KTsKKysKKysJZGNfaW5mbyA9IGRjLT5ody5pbmZvOworKworKwlmb3IgKGkgPSAwOyBpIDwg ZGNfaW5mby0+cGFuZWxfbnVtOyBpKyspIHsKKysJCWNydGMgPSB2c19jcnRjX2NyZWF0ZShkcm1f ZGV2LCBkY19pbmZvKTsKKysJCWlmICghY3J0YykgeworKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVk IHRvIGNyZWF0ZSBDUlRDLlxuIik7CisrCQkJcmV0ID0gLUVOT01FTTsKKysJCQlyZXR1cm4gcmV0 OworKwkJfQorKworKwkJY3J0Yy0+YmFzZS5wb3J0ID0gcG9ydDsKKysJCWNydGMtPmRldiA9IGRl djsKKysJCWNydGMtPmZ1bmNzID0gJmRjX2NydGNfZnVuY3M7CisrCQlkYy0+Y3J0Y1tpXSA9IGNy dGM7CisrCQljdHJjX21hc2sgfD0gZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSk7CisrCX0KKysK KysJZm9yIChpID0gMDsgaSA8IGRjX2luZm8tPnBsYW5lX251bTsgaSsrKSB7CisrCQlwbGFuZV9p bmZvID0gKHN0cnVjdCB2c19wbGFuZV9pbmZvICopJmRjX2luZm8tPnBsYW5lc1tpXTsKKysKKysJ CWlmICghc3RyY21wKHBsYW5lX2luZm8tPm5hbWUsICJQcmltYXJ5IikgfHwgIXN0cmNtcChwbGFu ZV9pbmZvLT5uYW1lLCAiQ3Vyc29yIikpIHsKKysJCQlwbGFuZSA9IHZzX3BsYW5lX2NyZWF0ZShk cm1fZGV2LCBwbGFuZV9pbmZvLCBkY19pbmZvLT5sYXllcl9udW0sCisrCQkJCQkJZHJtX2NydGNf bWFzaygmZGMtPmNydGNbMF0tPmJhc2UpKTsKKysJCX0gZWxzZSBpZiAoIXN0cmNtcChwbGFuZV9p bmZvLT5uYW1lLCAiUHJpbWFyeV8xIikgfHwKKysJCQkJICAgIXN0cmNtcChwbGFuZV9pbmZvLT5u YW1lLCAiQ3Vyc29yXzEiKSkgeworKwkJCXBsYW5lID0gdnNfcGxhbmVfY3JlYXRlKGRybV9kZXYs IHBsYW5lX2luZm8sIGRjX2luZm8tPmxheWVyX251bSwKKysJCQkJCQlkcm1fY3J0Y19tYXNrKCZk Yy0+Y3J0Y1sxXS0+YmFzZSkpOworKwkJfSBlbHNlIHsKKysJCQlwbGFuZSA9IHZzX3BsYW5lX2Ny ZWF0ZShkcm1fZGV2LCBwbGFuZV9pbmZvLAorKwkJCQkJCWRjX2luZm8tPmxheWVyX251bSwgY3Ry Y19tYXNrKTsKKysJCX0KKysKKysJCWlmICghcGxhbmUpCisrCQkJZ290byBlcnJfY2xlYW51cF9w bGFuZXM7CisrCisrCQlwbGFuZS0+aWQgPSBpOworKwkJZGMtPnBsYW5lc1tpXS5pZCA9IHBsYW5l X2luZm8tPmlkOworKworKwkJcGxhbmUtPmZ1bmNzID0gJmRjX3BsYW5lX2Z1bmNzOworKworKwkJ aWYgKHBsYW5lX2luZm8tPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkgeworKwkJCWlm ICghc3RyY21wKHBsYW5lX2luZm8tPm5hbWUsICJQcmltYXJ5IikpCisrCQkJCWRjLT5jcnRjWzBd LT5iYXNlLnByaW1hcnkgPSAmcGxhbmUtPmJhc2U7CisrCQkJZWxzZQorKwkJCQlkYy0+Y3J0Y1sx XS0+YmFzZS5wcmltYXJ5ID0gJnBsYW5lLT5iYXNlOworKwkJCWRybV9kZXYtPm1vZGVfY29uZmln Lm1pbl93aWR0aCA9IHBsYW5lX2luZm8tPm1pbl93aWR0aDsKKysJCQlkcm1fZGV2LT5tb2RlX2Nv bmZpZy5taW5faGVpZ2h0ID0KKysJCQkJCQkJcGxhbmVfaW5mby0+bWluX2hlaWdodDsKKysJCQlk cm1fZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBwbGFuZV9pbmZvLT5tYXhfd2lkdGg7Cisr CQkJZHJtX2Rldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9CisrCQkJCQkJCXBsYW5lX2luZm8t Pm1heF9oZWlnaHQ7CisrCQl9CisrCisrCQlpZiAocGxhbmVfaW5mby0+dHlwZSA9PSBEUk1fUExB TkVfVFlQRV9DVVJTT1IpIHsKKysJCQlpZiAoIXN0cmNtcChwbGFuZV9pbmZvLT5uYW1lLCAiQ3Vy c29yIikpCisrCQkJCWRjLT5jcnRjWzBdLT5iYXNlLmN1cnNvciA9ICZwbGFuZS0+YmFzZTsKKysJ CQllbHNlCisrCQkJCWRjLT5jcnRjWzFdLT5iYXNlLmN1cnNvciA9ICZwbGFuZS0+YmFzZTsKKysJ CQlkcm1fZGV2LT5tb2RlX2NvbmZpZy5jdXJzb3Jfd2lkdGggPQorKwkJCQkJCQlwbGFuZV9pbmZv LT5tYXhfd2lkdGg7CisrCQkJZHJtX2Rldi0+bW9kZV9jb25maWcuY3Vyc29yX2hlaWdodCA9Cisr CQkJCQkJCXBsYW5lX2luZm8tPm1heF9oZWlnaHQ7CisrCQl9CisrCX0KKysKKysJdnNfZHJtX3Vw ZGF0ZV9waXRjaF9hbGlnbm1lbnQoZHJtX2RldiwgZGNfaW5mby0+cGl0Y2hfYWxpZ25tZW50KTsK KysKKysJcmV0dXJuIDA7CisrCisrZXJyX2NsZWFudXBfcGxhbmVzOgorKwlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoZHJtX3BsYW5lLCB0bXAsCisrCQkJCSAmZHJtX2Rldi0+bW9kZV9jb25maWcu cGxhbmVfbGlzdCwgaGVhZCkKKysJCWlmIChkcm1fcGxhbmUtPnBvc3NpYmxlX2NydGNzICYgY3Ry Y19tYXNrKQorKwkJCXZzX3BsYW5lX2Rlc3RvcnkoZHJtX3BsYW5lKTsKKysKKysJZHJtX2Zvcl9l YWNoX2NydGMoZHJtX2NydGMsIGRybV9kZXYpCisrCQl2c19jcnRjX2Rlc3Ryb3koZHJtX2NydGMp OworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9pZCBkY191bmJpbmQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCisreworKwlk Y19kZWluaXQoZGV2KTsKKyt9CisrCisrY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgZGNfY29t cG9uZW50X29wcyA9IHsKKysJLmJpbmQgPSBkY19iaW5kLAorKwkudW5iaW5kID0gZGNfdW5iaW5k LAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZGNfZHJpdmVyX2R0 X21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAidmVyaXNpbGljb24sZGM4MjAwIiwgfSwK KysJe30sCisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkY19kcml2ZXJfZHRfbWF0Y2gp OworKworK3N0YXRpYyBpbnQgZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK Kyt7CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisrCXN0cnVjdCB2c19kYyAq ZGM7CisrCWludCBpcnEsIHJldCwgaTsKKysKKysJZGMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXpl b2YoKmRjKSwgR0ZQX0tFUk5FTCk7CisrCWlmICghZGMpCisrCQlyZXR1cm4gLUVOT01FTTsKKysK KysJZGMtPmh3LmhpX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwg MCk7CisrCWlmIChJU19FUlIoZGMtPmh3LmhpX2Jhc2UpKQorKwkJcmV0dXJuIFBUUl9FUlIoZGMt Pmh3LmhpX2Jhc2UpOworKworKwlkYy0+aHcucmVnX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVt YXBfcmVzb3VyY2UocGRldiwgMSk7CisrCWlmIChJU19FUlIoZGMtPmh3LnJlZ19iYXNlKSkKKysJ CXJldHVybiBQVFJfRVJSKGRjLT5ody5yZWdfYmFzZSk7CisrCisrCWRjLT5kc3NfcmVnID0gZGV2 bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDIpOworKwlpZiAoSVNfRVJSKGRjLT5k c3NfcmVnKSkKKysJCXJldHVybiBQVFJfRVJSKGRjLT5kc3NfcmVnKTsKKysKKysJZGMtPm5jbGtz ID0gQVJSQVlfU0laRShkYy0+Y2xrX3ZvdXQpOworKwlmb3IgKGkgPSAwOyBpIDwgZGMtPm5jbGtz OyArK2kpCisrCQlkYy0+Y2xrX3ZvdXRbaV0uaWQgPSB2b3V0X2Nsb2Nrc1tpXTsKKysJcmV0ID0g ZGV2bV9jbGtfYnVsa19nZXQoZGV2LCBkYy0+bmNsa3MsIGRjLT5jbGtfdm91dCk7CisrCWlmIChy ZXQpIHsKKysJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBjbGsgY29udHJvbHNcbiIpOwor KwkJcmV0dXJuIHJldDsKKysJfQorKworKwlkYy0+bnJzdHMgPSBBUlJBWV9TSVpFKGRjLT5yc3Rf dm91dCk7CisrCWZvciAoaSA9IDA7IGkgPCBkYy0+bnJzdHM7ICsraSkKKysJCWRjLT5yc3Rfdm91 dFtpXS5pZCA9IHZvdXRfcmVzZXRzW2ldOworKwlyZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfYnVs a19nZXRfc2hhcmVkKGRldiwgZGMtPm5yc3RzLAorKwkJCQkJCSBkYy0+cnN0X3ZvdXQpOworKwlp ZiAocmV0KSB7CisrCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgcmVzZXQgY29udHJvbHNc biIpOworKwkJcmV0dXJuIHJldDsKKysJfQorKworKwlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBk ZXYsIDApOworKworKwlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgaXJxLCBkY19pc3IsIDAs IGRldl9uYW1lKGRldiksIGRjKTsKKysJaWYgKHJldCA8IDApIHsKKysJCWRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIGluc3RhbGwgaXJxOiV1LlxuIiwgaXJxKTsKKysJCXJldHVybiByZXQ7CisrCX0K KysKKysJZGV2X3NldF9kcnZkYXRhKGRldiwgZGMpOworKworKwlyZXR1cm4gY29tcG9uZW50X2Fk ZChkZXYsICZkY19jb21wb25lbnRfb3BzKTsKKyt9CisrCisrc3RhdGljIGludCBkY19yZW1vdmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9 ICZwZGV2LT5kZXY7CisrCisrCWNvbXBvbmVudF9kZWwoZGV2LCAmZGNfY29tcG9uZW50X29wcyk7 CisrCisrCWRldl9zZXRfZHJ2ZGF0YShkZXYsIE5VTEwpOworKworKwlyZXR1cm4gMDsKKyt9Cisr Cisrc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkY19wbGF0Zm9ybV9kcml2ZXIgPSB7CisrCS5wcm9i ZSA9IGRjX3Byb2JlLAorKwkucmVtb3ZlID0gZGNfcmVtb3ZlLAorKwkuZHJpdmVyID0geworKwkJ Lm5hbWUgPSAidnMtZGMiLAorKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKGRjX2Ry aXZlcl9kdF9tYXRjaCksCisrCX0sCisrfTsKKysKKytNT0RVTEVfQVVUSE9SKCJTdGFyRml2ZSBD b3Jwb3JhdGlvbiIpOworK01PRFVMRV9BVVRIT1IoIlZlcmlzaWxpY29uIENvcnBvcmF0aW9uIik7 CisrTU9EVUxFX0RFU0NSSVBUSU9OKCJWZXJpU2lsaWNvbiBEQyBEcml2ZXIiKTsKKytNT0RVTEVf TElDRU5TRSgiR1BMIik7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L3ZzX2RjLmggYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGMuaAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uYWI3NmFjMWU5OTQzCistLS0gL2Rldi9u dWxsCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGMuaAorQEAgLTAsMCAr MSw2MiBAQAorKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCisrLyoKKysg KiBDb3B5cmlnaHQgKEMpIDIwMjMgVmVyaVNpbGljb24gSG9sZGluZ3MgQ28uLCBMdGQuCisrICov CisrCisrI2lmbmRlZiBfX1ZTX0RDX0hfXworKyNkZWZpbmUgX19WU19EQ19IX18KKysKKysjaW5j bHVkZSA8bGludXgvY2xrLmg+CisrI2luY2x1ZGUgPGxpbnV4L21tX3R5cGVzLmg+CisrI2luY2x1 ZGUgPGxpbnV4L3Jlc2V0Lmg+CisrI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKysKKysjaW5j bHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgorKwor KyNpbmNsdWRlICJ2c19jcnRjLmgiCisrI2luY2x1ZGUgInZzX2RjX2h3LmgiCisrI2luY2x1ZGUg InZzX3BsYW5lLmgiCisrCisrI2RlZmluZSBmb3VyY2NfbW9kX3ZzX2dldF90eXBlKHZhbCkgXAor KwkJCSgoKHZhbCkgJiBEUk1fRk9STUFUX01PRF9WU19UWVBFX01BU0spID4+IDU0KQorKworK3N0 cnVjdCB2c19kY19wbGFuZSB7CisrCWVudW0gZGNfaHdfcGxhbmVfaWQgaWQ7CisrfTsKKysKKytl bnVtIHZvdXRfY2xrIHsKKysJQ0xLX1ZPVVRfTk9DX0RJU1AgPSAwLAorKwlDTEtfVk9VVF9QSVgw LAorKwlDTEtfVk9VVF9QSVgxLAorKwlDTEtfVk9VVF9BWEksCisrCUNMS19WT1VUX0NPUkUsCisr CUNMS19WT1VUX0FIQiwKKysJQ0xLX1ZPVVRfSERNSV9QSVgsCisrCUNMS19WT1VUX1NPQ19QSVgs CisrCUNMS19WT1VUX05VTQorK307CisrCisrZW51bSByc3Rfdm91dCB7CisrCVJTVF9WT1VUX0FY SSA9IDAsCisrCVJTVF9WT1VUX0FIQiwKKysJUlNUX1ZPVVRfQ09SRSwKKysJUlNUX1ZPVVRfTlVN CisrfTsKKysKKytzdHJ1Y3QgdnNfZGMgeworKwlzdHJ1Y3QgdnNfY3J0YwkJKmNydGNbRENfRElT UExBWV9OVU1dOworKwlzdHJ1Y3QgZGNfaHcJCWh3OworKwl2b2lkIF9faW9tZW0gICAgICAgICpk c3NfcmVnOworKwlib29sCQkJICAgIGZpcnN0X2ZyYW1lOworKworKwlzdHJ1Y3QgdnNfZGNfcGxh bmUgIHBsYW5lc1tQTEFORV9OVU1dOworKwlzdHJ1Y3QgY2xrX2J1bGtfZGF0YSBjbGtfdm91dFtD TEtfVk9VVF9OVU1dOworKwlpbnQgbmNsa3M7CisrCXN0cnVjdCByZXNldF9jb250cm9sX2J1bGtf ZGF0YSByc3Rfdm91dFtSU1RfVk9VVF9OVU1dOworKwlpbnQgbnJzdHM7CisrfTsKKysKKytleHRl cm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkY19wbGF0Zm9ybV9kcml2ZXI7CisrCisrI2VuZGlm IC8qIF9fVlNfRENfSF9fICovCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxp Y29uL3ZzX2RjX2h3LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGNfaHcuYwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZDM3MGRkNDAxMDg0Cist LS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGNfaHcu YworQEAgLTAsMCArMSwyMDA4IEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAKKysvKgorKyAqIENvcHlyaWdodCAoQykgMjAyMyBWZXJpU2lsaWNvbiBIb2xkaW5ncyBDby4s IEx0ZC4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51 eC9pby5oPgorKyNpbmNsdWRlIDxsaW51eC9tZWRpYS1idXMtZm9ybWF0Lmg+CisrI2luY2x1ZGUg PGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2JsZW5kLmg+Cisr I2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisrI2luY2x1ZGUgPGRybS92c19kcm0uaD4KKysK KysjaW5jbHVkZSAidnNfZGNfaHcuaCIKKysjaW5jbHVkZSAidnNfdHlwZS5oIgorKworK3N0YXRp YyBjb25zdCB1MzIgaG9ya2VybmVsW10gPSB7CisrCTB4MDAwMDAwMDAsIDB4MjAwMDAwMDAsIDB4 MDAwMDIwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MjNmZDFj MDMsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MTgxZjAwMDAsIDB4 MDAwMDI3ZTEsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MmI5ODE0 NjgsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MTBmMDAwMDAsCisr CTB4MDAwMDJmMTAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MzIz OTBkYzcsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MGFmNTAwMDAs IDB4MDAwMDM1MGIsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4Mzc4 MTA4N2YsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDY2NjAwMDAs IDB4MDAwMDM5OWEsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4M2I1 OTA0YTcsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDMzYzAwMDAs IDB4MDAwMDNjYzQsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4M2Rl MTAyMWYsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDE0NzAwMDAs CisrCTB4MDAwMDNlYjksIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4 M2Y1MzAwYWQsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDA0ODAw MDAsIDB4MDAwMDNmYjgsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4 M2ZlZjAwMTEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAw MDAsIDB4MDAwMDQwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MjAwMDIwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MWMwMzAw MDAsIDB4MDAwMDIzZmQsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MjdlMTE4MWYsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MTQ2ODAw MDAsCisrCTB4MDAwMDJiOTgsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisr CTB4MmYxMDEwZjAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MGRj NzAwMDAsIDB4MDAwMDMyMzksIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAs IDB4MzUwYjBhZjUsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDg3 ZjAwMDAsIDB4MDAwMDM3ODEsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs IDB4Mzk5YTA2NjYsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDRh NzAwMDAsIDB4MDAwMDNiNTksCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs IDB4M2NjNDAzM2MsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDIx ZjAwMDAsCisrfTsKKysKKysjZGVmaW5lIEhfQ09FRl9TSVpFIChzaXplb2YoaG9ya2VybmVsKSAv IHNpemVvZih1MzIpKQorKworK3N0YXRpYyBjb25zdCB1MzIgdmVya2VybmVsW10gPSB7CisrCTB4 MDAwMDAwMDAsIDB4MjAwMDAwMDAsIDB4MDAwMDIwMDAsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsIDB4MjNmZDFjMDMsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsIDB4MTgxZjAwMDAsIDB4MDAwMDI3ZTEsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsIDB4MmI5ODE0NjgsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsIDB4MTBmMDAwMDAsCisrCTB4MDAwMDJmMTAsIDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsCisrCTB4MzIzOTBkYzcsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsCisrCTB4MGFmNTAwMDAsIDB4MDAwMDM1MGIsIDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAsCisrCTB4MDAwMDAwMDAsIDB4Mzc4MTA4N2YsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisr CTB4MDAwMDAwMDAsIDB4MDY2NjAwMDAsIDB4MDAwMDM5OWEsIDB4MDAwMDAwMDAsCisrCTB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsIDB4M2I1OTA0YTcsIDB4MDAwMDAwMDAsCisrCTB4MDAwMDAwMDAs IDB4MDAwMDAwMDAsIDB4MDMzYzAwMDAsIDB4MDAwMDNjYzQsCisrCTB4MDAwMDAwMDAsIDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsIDB4M2RlMTAyMWYsCisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs IDB4MDAwMDAwMDAsIDB4MDE0NzAwMDAsCisrCTB4MDAwMDNlYjksIDB4MDAwMDAwMDAsIDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsCisrCTB4M2Y1MzAwYWQsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs IDB4MDAwMDAwMDAsCisrCTB4MDA0ODAwMDAsIDB4MDAwMDNmYjgsIDB4MDAwMDAwMDAsIDB4MDAw MDAwMDAsCisrCTB4MDAwMDAwMDAsIDB4M2ZlZjAwMTEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs CisrCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDQwMDAsIDB4MDAwMDAwMDAsCisrCTB4 Y2RjZDAwMDAsIDB4ZmRmZGZkZmQsIDB4YWJhYmFiYWIsIDB4YWJhYmFiYWIsCisrCTB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsIDB4NWZmNWY0NTYsIDB4MDAwZjVmNTgsCisrCTB4MDJjYzZjNzgsIDB4 MDJjYzBjMjgsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVlZWZl ZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4 ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZl ZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4 ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZl ZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisr CTB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVl ZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUs IDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrCTB4ZmVlZWZlZWUsIDB4ZmVl ZWZlZWUsIDB4ZmVlZWZlZWUsIDB4ZmVlZWZlZWUsCisrfTsKKysKKysjZGVmaW5lIFZfQ09FRl9T SVpFIChzaXplb2YodmVya2VybmVsKSAvIHNpemVvZih1MzIpKQorKworKy8qCisrICogUkdCIDcw OS0+MjAyMCBjb252ZXJzaW9uIHBhcmFtZXRlcnMKKysgKi8KKytzdGF0aWMgdTE2IFJHQjJSR0Jb UkdCX1RPX1JHQl9UQUJMRV9TSVpFXSA9IHsKKysJMTAyNzksCTUzOTUsCTcwOSwKKysJMTEzMiwJ MTUwNjUsCTE4NywKKysJMjY5LAkxNDQyLAkxNDY3NAorK307CisrCisrLyoKKysgKiBZVVY2MDEg dG8gUkdCIGNvbnZlcnNpb24gcGFyYW1ldGVycworKyAqIFlVVjJSR0JbMF0gIC0gWzhdIDogQzAg LSBDODsKKysgKiBZVVYyUkdCWzldICAtIFsxMV06IEQwIC0gRDI7CisrICogWVVWMlJHQlsxMl0g LSBbMTNdOiBZIGNsYW1wIG1pbiAmIG1heCBjYWx1ZTsKKysgKiBZVVYyUkdCWzE0XSAtIFsxNV06 IFVWIGNsYW1wIG1pbiAmIG1heCBjYWx1ZTsKKysgKi8KKytzdGF0aWMgczMyIFlVVjYwMV8yUkdC W1lVVl9UT19SR0JfVEFCTEVfU0laRV0gPSB7CisrCTExOTYsCTAsCQkJMTY0MCwJMTE5NiwKKysJ LTQwNCwJLTgzNiwJCTExOTYsCTIwNzYsCisrCTAsCQktOTE2MjI0LAk1NTgzMzYsCS0xMjAyOTQ0 LAorKwk2NCwJCSA5NDAsCQk2NCwJCTk2MAorK307CisrCisrLyoKKysgKiBZVVY3MDkgdG8gUkdC IGNvbnZlcnNpb24gcGFyYW1ldGVycworKyAqIFlVVjJSR0JbMF0gIC0gWzhdIDogQzAgLSBDODsK KysgKiBZVVYyUkdCWzldICAtIFsxMV06IEQwIC0gRDI7CisrICogWVVWMlJHQlsxMl0gLSBbMTNd OiBZIGNsYW1wIG1pbiAmIG1heCBjYWx1ZTsKKysgKiBZVVYyUkdCWzE0XSAtIFsxNV06IFVWIGNs YW1wIG1pbiAmIG1heCBjYWx1ZTsKKysgKi8KKytzdGF0aWMgczMyIFlVVjcwOV8yUkdCW1lVVl9U T19SR0JfVEFCTEVfU0laRV0gPSB7CisrCTExOTYsCQkwLAkJMTg0NCwJMTE5NiwKKysJLTIyMCwJ CS01NDgsCTExOTYsCTIxNzIsCisrCTAsCQkJLTEwMjA2NzIsIDMxNjY3MiwgIC0xMTg4NjA4LAor Kwk2NCwJCQk5NDAsCQk2NCwJCTk2MAorK307CisrCisrLyoKKysgKiBZVVYyMDIwIHRvIFJHQiBj b252ZXJzaW9uIHBhcmFtZXRlcnMKKysgKiBZVVYyUkdCWzBdICAtIFs4XSA6IEMwIC0gQzg7Cisr ICogWVVWMlJHQls5XSAgLSBbMTFdOiBEMCAtIEQyOworKyAqIFlVVjJSR0JbMTJdIC0gWzEzXTog WSBjbGFtcCBtaW4gJiBtYXggY2FsdWU7CisrICogWVVWMlJHQlsxNF0gLSBbMTVdOiBVViBjbGFt cCBtaW4gJiBtYXggY2FsdWU7CisrICovCisrc3RhdGljIHMzMiBZVVYyMDIwXzJSR0JbWVVWX1RP X1JHQl9UQUJMRV9TSVpFXSA9IHsKKysJMTE5NiwgMCwgMTcyNCwgMTE5NiwKKysJLTE5MiwgLTY2 OCwgMTE5NiwgMjIwMCwKKysJMCwgLTk1OTIzMiwgMzYzNzc2LCAtMTIwMjk0NCwKKysJNjQsIDk0 MCwgNjQsIDk2MAorK307CisrCisrLyoKKysgKiBSR0IgdG8gWVVWMjAyMCBjb252ZXJzaW9uIHBh cmFtZXRlcnMKKysgKiBSR0IyWVVWWzBdIC0gWzhdIDogQzAgLSBDODsKKysgKiBSR0IyWVVWWzld IC0gWzExXTogRDAgLSBEMjsKKysgKi8KKytzdGF0aWMgczE2IFJHQjJZVVZbUkdCX1RPX1lVVl9U QUJMRV9TSVpFXSA9IHsKKysJMjMwLAk1OTQsCTUyLAorKwktMTI1LCAgLTMyMywJNDQ4LAorKwk0 NDgsICAgLTQxMiwgICAtMzYsCisrCTY0LAkJNTEyLAk1MTIKKyt9OworKworKy8qCisrICogRGVn YW1tYSB0YWJsZSBmb3IgNzA5IGNvbG9yIHNwYWNlIGRhdGEuCisrICovCisrc3RhdGljIHUxNiBE RUdBTU1BXzcwOVtERUdBTU1BX1NJWkVdID0geworKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAw eDAwMDAsIDB4MDAwMSwgMHgwMDAyLCAweDAwMDQsIDB4MDAwNSwKKysJMHgwMDA3LCAweDAwMGEs IDB4MDAwZCwgMHgwMDExLCAweDAwMTUsIDB4MDAxOSwgMHgwMDFlLCAweDAwMjQsCisrCTB4MDAy YSwgMHgwMDMwLCAweDAwMzgsIDB4MDAzZiwgMHgwMDQ4LCAweDAwNTEsIDB4MDA1YSwgMHgwMDY0 LAorKwkweDAwNmYsIDB4MDA3YiwgMHgwMDg3LCAweDAwOTQsIDB4MDBhMSwgMHgwMGFmLCAweDAw YmUsIDB4MDBjZSwKKysJMHgwMGRlLCAweDAwZWYsIDB4MDEwMSwgMHgwMTE0LCAweDAxMjcsIDB4 MDEzYiwgMHgwMTUwLCAweDAxNjYsCisrCTB4MDE3YywgMHgwMTkzLCAweDAxYWMsIDB4MDFjNCwg MHgwMWRlLCAweDAxZjksIDB4MDIxNCwgMHgwMjMwLAorKwkweDAyNGQsIDB4MDI2YiwgMHgwMjhh LCAweDAyYWEsIDB4MDJjYSwgMHgwMmVjLCAweDAzMGUsIDB4MDMzMSwKKysJMHgwMzU1LCAweDAz N2EsIDB4MDNhMCwgMHgwM2M3LCAweDAzZWYsIDB4MDQxOCwgMHgwNDQxLCAweDA0NmMsCisrCTB4 MDQ5OCwgMHgwNGM0LCAweDA0ZjIsIDB4MDUyMCwgMHgwNTUwLCAweDA1ODEsIDB4MDViMiwgMHgw NWU1LAorKwkweDA2MTgsIDB4MDY0ZCwgMHgwNjgyLCAweDA2YjksIDB4MDZmMCwgMHgwNzI5LCAw eDA3NjMsIDB4MDc5ZCwKKysJMHgwN2Q5LCAweDA4MTYsIDB4MDg1NCwgMHgwODkzLCAweDA4ZDMs IDB4MDkxNCwgMHgwOTU2LCAweDA5OTksCisrCTB4MDlkZCwgMHgwYTIzLCAweDBhNjksIDB4MGFi MSwgMHgwYWZhLCAweDBiNDQsIDB4MGI4ZiwgMHgwYmRiLAorKwkweDBjMjgsIDB4MGM3NiwgMHgw Y2M2LCAweDBkMTcsIDB4MGQ2OSwgMHgwZGJiLCAweDBlMTAsIDB4MGU2NSwKKysJMHgwZWJiLCAw eDBmMTMsIDB4MGY2YywgMHgwZmM2LCAweDEwMjEsIDB4MTA3ZCwgMHgxMGRiLCAweDExM2EsCisr CTB4MTE5YSwgMHgxMWZiLCAweDEyNWQsIDB4MTJjMSwgMHgxMzI1LCAweDEzOGMsIDB4MTNmMywg MHgxNDViLAorKwkweDE0YzUsIDB4MTUzMCwgMHgxNTljLCAweDE2MGEsIDB4MTY3OCwgMHgxNmU4 LCAweDE3NWEsIDB4MTdjYywKKysJMHgxODQwLCAweDE4YjUsIDB4MTkyYiwgMHgxOWEzLCAweDFh MWMsIDB4MWE5NiwgMHgxYjExLCAweDFiOGUsCisrCTB4MWMwYywgMHgxYzhjLCAweDFkMGMsIDB4 MWQ4ZSwgMHgxZTEyLCAweDFlOTYsIDB4MWYxYywgMHgxZmEzLAorKwkweDIwMmMsIDB4MjBiNiwg MHgyMTQxLCAweDIxY2UsIDB4MjI1YywgMHgyMmViLCAweDIzN2MsIDB4MjQwZSwKKysJMHgyNGEx LCAweDI1MzYsIDB4MjVjYywgMHgyNjY0LCAweDI2ZmMsIDB4Mjc5NywgMHgyODMyLCAweDI4Y2Ys CisrCTB4Mjk2ZSwgMHgyYTBlLCAweDJhYWYsIDB4MmI1MSwgMHgyYmY1LCAweDJjOWIsIDB4MmQ0 MSwgMHgyZGVhLAorKwkweDJlOTMsIDB4MmYzZSwgMHgyZmViLCAweDMwOTksIDB4MzE0OCwgMHgz MWY5LCAweDMyYWIsIDB4MzM1ZiwKKysJMHgzNDE0LCAweDM0Y2EsIDB4MzU4MiwgMHgzNjNjLCAw eDM2ZjcsIDB4MzdiMywgMHgzODcxLCAweDM5MzAsCisrCTB4MzlmMSwgMHgzYWIzLCAweDNiNzcs IDB4M2MzYywgMHgzZDAyLCAweDNkY2IsIDB4M2U5NCwgMHgzZjVmLAorKwkweDQwMmMsIDB4NDBm YSwgMHg0MWNhLCAweDQyOWIsIDB4NDM2ZCwgMHg0NDQyLCAweDQ1MTcsIDB4NDVlZSwKKysJMHg0 NmM3LCAweDQ3YTEsIDB4NDg3ZCwgMHg0OTVhLCAweDRhMzksIDB4NGIxOSwgMHg0YmZiLCAweDRj ZGUsCisrCTB4NGRjMywgMHg0ZWFhLCAweDRmOTIsIDB4NTA3YywgMHg1MTY3LCAweDUyNTMsIDB4 NTM0MiwgMHg1NDMxLAorKwkweDU1MjMsIDB4NTYxNiwgMHg1NzBhLCAweDU4MDAsIDB4NThmOCwg MHg1OWYxLCAweDVhZWMsIDB4NWJlOSwKKysJMHg1Y2U3LCAweDVkZTYsIDB4NWVlNywgMHg1ZmVh LCAweDYwZWYsIDB4NjFmNSwgMHg2MmZjLCAweDY0MDYsCisrCTB4NjUxMCwgMHg2NjFkLCAweDY3 MmIsIDB4NjgzYiwgMHg2OTRjLCAweDZhNWYsIDB4NmI3MywgMHg2YzhhLAorKwkweDZkYTIsIDB4 NmViYiwgMHg2ZmQ2LCAweDcwZjMsIDB4NzIxMSwgMHg3MzMxLCAweDc0NTMsIDB4NzU3NiwKKysJ MHg3NjliLCAweDc3YzIsIDB4NzhlYSwgMHg3YTE0LCAweDdiNDAsIDB4N2M2ZCwgMHg3ZDljLCAw eDdlY2QsCisrCTB4M2Y2NSwgMHgzZjhjLCAweDNmYjIsIDB4M2ZkOAorK307CisrCisrLyoKKysg KiBEZWdhbW1hIHRhYmxlIGZvciAyMDIwIGNvbG9yIHNwYWNlIGRhdGEuCisrICovCisrc3RhdGlj IHUxNiBERUdBTU1BXzIwMjBbREVHQU1NQV9TSVpFXSA9IHsKKysJMHgwMDAwLCAweDAwMDAsIDB4 MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisrCTB4MDAwMCwg MHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAor KwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAs IDB4MDAwMCwKKysJMHgwMDAwLCAweDAwMDEsIDB4MDAwMSwgMHgwMDAxLCAweDAwMDEsIDB4MDAw MSwgMHgwMDAxLCAweDAwMDEsCisrCTB4MDAwMSwgMHgwMDAyLCAweDAwMDIsIDB4MDAwMiwgMHgw MDAyLCAweDAwMDIsIDB4MDAwMywgMHgwMDAzLAorKwkweDAwMDMsIDB4MDAwMywgMHgwMDA0LCAw eDAwMDQsIDB4MDAwNCwgMHgwMDA1LCAweDAwMDUsIDB4MDAwNiwKKysJMHgwMDA2LCAweDAwMDYs IDB4MDAwNywgMHgwMDA3LCAweDAwMDgsIDB4MDAwOCwgMHgwMDA5LCAweDAwMGEsCisrCTB4MDAw YSwgMHgwMDBiLCAweDAwMGMsIDB4MDAwYywgMHgwMDBkLCAweDAwMGUsIDB4MDAwZiwgMHgwMDBm LAorKwkweDAwMTAsIDB4MDAxMSwgMHgwMDEyLCAweDAwMTMsIDB4MDAxNCwgMHgwMDE2LCAweDAw MTcsIDB4MDAxOCwKKysJMHgwMDE5LCAweDAwMWIsIDB4MDAxYywgMHgwMDFlLCAweDAwMWYsIDB4 MDAyMSwgMHgwMDIyLCAweDAwMjQsCisrCTB4MDAyNiwgMHgwMDI4LCAweDAwMmEsIDB4MDAyYywg MHgwMDJlLCAweDAwMzAsIDB4MDAzMywgMHgwMDM1LAorKwkweDAwMzgsIDB4MDAzYSwgMHgwMDNk LCAweDAwNDAsIDB4MDA0MywgMHgwMDQ2LCAweDAwNDksIDB4MDA0ZCwKKysJMHgwMDUwLCAweDAw NTQsIDB4MDA1NywgMHgwMDViLCAweDAwNWYsIDB4MDA2NCwgMHgwMDY4LCAweDAwNmQsCisrCTB4 MDA3MSwgMHgwMDc2LCAweDAwN2MsIDB4MDA4MSwgMHgwMDg2LCAweDAwOGMsIDB4MDA5MiwgMHgw MDk4LAorKwkweDAwOWYsIDB4MDBhNSwgMHgwMGFjLCAweDAwYjQsIDB4MDBiYiwgMHgwMGMzLCAw eDAwY2IsIDB4MDBkMywKKysJMHgwMGRjLCAweDAwZTUsIDB4MDBlZSwgMHgwMGY4LCAweDAxMDIs IDB4MDEwYywgMHgwMTE3LCAweDAxMjMsCisrCTB4MDEyZSwgMHgwMTNhLCAweDAxNDcsIDB4MDE1 NCwgMHgwMTYxLCAweDAxNmYsIDB4MDE3ZSwgMHgwMThkLAorKwkweDAxOWMsIDB4MDFhYywgMHgw MWJkLCAweDAxY2UsIDB4MDFlMCwgMHgwMWYzLCAweDAyMDYsIDB4MDIxYSwKKysJMHgwMjJmLCAw eDAyNDQsIDB4MDI1YSwgMHgwMjcyLCAweDAyODksIDB4MDJhMiwgMHgwMmJjLCAweDAyZDYsCisr CTB4MDJmMiwgMHgwMzBmLCAweDAzMmMsIDB4MDM0YiwgMHgwMzZiLCAweDAzOGIsIDB4MDNhZSwg MHgwM2QxLAorKwkweDAzZjUsIDB4MDQxYiwgMHgwNDQzLCAweDA0NmIsIDB4MDQ5NSwgMHgwNGMx LCAweDA0ZWUsIDB4MDUxZCwKKysJMHgwNTRlLCAweDA1ODAsIDB4MDViNCwgMHgwNWVhLCAweDA2 MjIsIDB4MDY1YywgMHgwNjk4LCAweDA2ZDYsCisrCTB4MDcxNywgMHgwNzVhLCAweDA3OWYsIDB4 MDdlNywgMHgwODMxLCAweDA4N2UsIDB4MDhjZCwgMHgwOTIwLAorKwkweDA5NzYsIDB4MDljZSwg MHgwYTJhLCAweDBhODksIDB4MGFlYywgMHgwYjUyLCAweDBiYmMsIDB4MGMyYSwKKysJMHgwYzli LCAweDBkMTEsIDB4MGQ4YiwgMHgwZTBhLCAweDBlOGQsIDB4MGYxNSwgMHgwZmExLCAweDEwMzMs CisrCTB4MTBjYSwgMHgxMTY3LCAweDEyMGEsIDB4MTJiMiwgMHgxMzYwLCAweDE0MTUsIDB4MTRk MSwgMHgxNTkzLAorKwkweDE2NWQsIDB4MTcyZSwgMHgxODA2LCAweDE4ZTcsIDB4MTlkMCwgMHgx YWMxLCAweDFiYmIsIDB4MWNiZiwKKysJMHgxZGNjLCAweDFlZTMsIDB4MjAwNSwgMHgyMTMxLCAw eDIyNjgsIDB4MjNhYiwgMHgyNGZhLCAweDI2NTYsCisrCTB4MjdiZSwgMHgyOTM0LCAweDJhYjgs IDB4MmM0YSwgMHgyZGVjLCAweDJmOWQsIDB4MzE1ZiwgMHgzMzMyLAorKwkweDM1MTYsIDB4Mzcw ZCwgMHgzOTE2LCAweDNiMzQsIDB4M2Q2NiwgMHgzZmFkLCAweDQyMGIsIDB4NDQ4MCwKKysJMHg0 NzBkLCAweDQ5YjMsIDB4NGM3MywgMHg0ZjRlLCAweDUyNDYsIDB4NTU1YSwgMHg1ODhlLCAweDVi ZTEsCisrCTB4NWY1NSwgMHg2MmViLCAweDY2YTYsIDB4NmE4NiwgMHg2ZThjLCAweDcyYmIsIDB4 NzcxNCwgMHg3Yjk5LAorKwkweDNkY2IsIDB4M2U2MCwgMHgzZWY1LCAweDNmOGMKKyt9OworKwor Ky8qIG9uZSBpcyBmb3IgcHJpbWFyeSBwbGFuZSBhbmQgdGhlIG90aGVyIGlzIGZvciBhbGwgb3Zl cmxheSBwbGFuZXMgKi8KKytzdGF0aWMgY29uc3Qgc3RydWN0IGRjX2h3X3BsYW5lX3JlZyBkY19w bGFuZV9yZWdbXSA9IHsKKysJeworKwkueV9hZGRyZXNzCQk9IERDX0ZSQU1FQlVGRkVSX0FERFJF U1MsCisrCS51X2FkZHJlc3MJCT0gRENfRlJBTUVCVUZGRVJfVV9BRERSRVNTLAorKwkudl9hZGRy ZXNzCQk9IERDX0ZSQU1FQlVGRkVSX1ZfQUREUkVTUywKKysJLnlfc3RyaWRlCQk9IERDX0ZSQU1F QlVGRkVSX1NUUklERSwKKysJLnVfc3RyaWRlCQk9IERDX0ZSQU1FQlVGRkVSX1VfU1RSSURFLAor Kwkudl9zdHJpZGUJCT0gRENfRlJBTUVCVUZGRVJfVl9TVFJJREUsCisrCS5zaXplCQkJPSBEQ19G UkFNRUJVRkZFUl9TSVpFLAorKwkudG9wX2xlZnQJCT0gRENfRlJBTUVCVUZGRVJfVE9QX0xFRlQs CisrCS5ib3R0b21fcmlnaHQJPSBEQ19GUkFNRUJVRkZFUl9CT1RUT01fUklHSFQsCisrCS5zY2Fs ZV9mYWN0b3JfeAkJCT0gRENfRlJBTUVCVUZGRVJfU0NBTEVfRkFDVE9SX1gsCisrCS5zY2FsZV9m YWN0b3JfeQkJCT0gRENfRlJBTUVCVUZGRVJfU0NBTEVfRkFDVE9SX1ksCisrCS5oX2ZpbHRlcl9j b2VmX2luZGV4CT0gRENfRlJBTUVCVUZGRVJfSF9GSUxURVJfQ09FRl9JTkRFWCwKKysJLmhfZmls dGVyX2NvZWZfZGF0YQkJPSBEQ19GUkFNRUJVRkZFUl9IX0ZJTFRFUl9DT0VGX0RBVEEsCisrCS52 X2ZpbHRlcl9jb2VmX2luZGV4CT0gRENfRlJBTUVCVUZGRVJfVl9GSUxURVJfQ09FRl9JTkRFWCwK KysJLnZfZmlsdGVyX2NvZWZfZGF0YQkJPSBEQ19GUkFNRUJVRkZFUl9WX0ZJTFRFUl9DT0VGX0RB VEEsCisrCS5pbml0X29mZnNldAkJCT0gRENfRlJBTUVCVUZGRVJfSU5JVF9PRkZTRVQsCisrCS5j b2xvcl9rZXkJCQkJPSBEQ19GUkFNRUJVRkZFUl9DT0xPUl9LRVksCisrCS5jb2xvcl9rZXlfaGln aAkJCT0gRENfRlJBTUVCVUZGRVJfQ09MT1JfS0VZX0hJR0gsCisrCS5jbGVhcl92YWx1ZQkJCT0g RENfRlJBTUVCVUZGRVJfQ0xFQVJfVkFMVUUsCisrCS5jb2xvcl90YWJsZV9pbmRleAkJPSBEQ19G UkFNRUJVRkZFUl9DT0xPUl9UQUJMRV9JTkRFWCwKKysJLmNvbG9yX3RhYmxlX2RhdGEJCT0gRENf RlJBTUVCVUZGRVJfQ09MT1JfVEFCTEVfREFUQSwKKysJLnNjYWxlX2NvbmZpZwkJCT0gRENfRlJB TUVCVUZGRVJfU0NBTEVfQ09ORklHLAorKwkud2F0ZXJfbWFyawkJCQk9IERDX0ZSQU1FQlVGRkVS X1dBVEVSX01BUkssCisrCS5kZWdhbW1hX2luZGV4CQkJPSBEQ19GUkFNRUJVRkZFUl9ERUdBTU1B X0lOREVYLAorKwkuZGVnYW1tYV9kYXRhCQkJPSBEQ19GUkFNRUJVRkZFUl9ERUdBTU1BX0RBVEEs CisrCS5kZWdhbW1hX2V4X2RhdGEJCT0gRENfRlJBTUVCVUZGRVJfREVHQU1NQV9FWF9EQVRBLAor Kwkuc3JjX2dsb2JhbF9jb2xvcgkJPSBEQ19GUkFNRUJVRkZFUl9TUkNfR0xPQkFMX0NPTE9SLAor KwkuZHN0X2dsb2JhbF9jb2xvcgkJPSBEQ19GUkFNRUJVRkZFUl9EU1RfR0xPQkFMX0NPTE9SLAor KwkuYmxlbmRfY29uZmlnCQkJPSBEQ19GUkFNRUJVRkZFUl9CTEVORF9DT05GSUcsCisrCS5yb2lf b3JpZ2luCQkJCT0gRENfRlJBTUVCVUZGRVJfUk9JX09SSUdJTiwKKysJLnJvaV9zaXplCQkJCT0g RENfRlJBTUVCVUZGRVJfUk9JX1NJWkUsCisrCS55dXZfdG9fcmdiX2NvZWYwCQkJPSBEQ19GUkFN RUJVRkZFUl9ZVVZUT1JHQl9DT0VGMCwKKysJLnl1dl90b19yZ2JfY29lZjEJCQk9IERDX0ZSQU1F QlVGRkVSX1lVVlRPUkdCX0NPRUYxLAorKwkueXV2X3RvX3JnYl9jb2VmMgkJCT0gRENfRlJBTUVC VUZGRVJfWVVWVE9SR0JfQ09FRjIsCisrCS55dXZfdG9fcmdiX2NvZWYzCQkJPSBEQ19GUkFNRUJV RkZFUl9ZVVZUT1JHQl9DT0VGMywKKysJLnl1dl90b19yZ2JfY29lZjQJCQk9IERDX0ZSQU1FQlVG RkVSX1lVVlRPUkdCX0NPRUY0LAorKwkueXV2X3RvX3JnYl9jb2VmZDAJCQk9IERDX0ZSQU1FQlVG RkVSX1lVVlRPUkdCX0NPRUZEMCwKKysJLnl1dl90b19yZ2JfY29lZmQxCQkJPSBEQ19GUkFNRUJV RkZFUl9ZVVZUT1JHQl9DT0VGRDEsCisrCS55dXZfdG9fcmdiX2NvZWZkMgkJCT0gRENfRlJBTUVC VUZGRVJfWVVWVE9SR0JfQ09FRkQyLAorKwkueV9jbGFtcF9ib3VuZAkJCQk9IERDX0ZSQU1FQlVG RkVSX1lfQ0xBTVBfQk9VTkQsCisrCS51dl9jbGFtcF9ib3VuZAkJCQk9IERDX0ZSQU1FQlVGRkVS X1VWX0NMQU1QX0JPVU5ELAorKwkucmdiX3RvX3JnYl9jb2VmMAkJCT0gRENfRlJBTUVCVUZGRVJf UkdCVE9SR0JfQ09FRjAsCisrCS5yZ2JfdG9fcmdiX2NvZWYxCQkJPSBEQ19GUkFNRUJVRkZFUl9S R0JUT1JHQl9DT0VGMSwKKysJLnJnYl90b19yZ2JfY29lZjIJCQk9IERDX0ZSQU1FQlVGRkVSX1JH QlRPUkdCX0NPRUYyLAorKwkucmdiX3RvX3JnYl9jb2VmMwkJCT0gRENfRlJBTUVCVUZGRVJfUkdC VE9SR0JfQ09FRjMsCisrCS5yZ2JfdG9fcmdiX2NvZWY0CQkJPSBEQ19GUkFNRUJVRkZFUl9SR0JU T1JHQl9DT0VGNCwKKysJfSwKKysJeworKwkueV9hZGRyZXNzCQk9IERDX09WRVJMQVlfQUREUkVT UywKKysJLnVfYWRkcmVzcwkJPSBEQ19PVkVSTEFZX1VfQUREUkVTUywKKysJLnZfYWRkcmVzcwkJ PSBEQ19PVkVSTEFZX1ZfQUREUkVTUywKKysJLnlfc3RyaWRlCQk9IERDX09WRVJMQVlfU1RSSURF LAorKwkudV9zdHJpZGUJCT0gRENfT1ZFUkxBWV9VX1NUUklERSwKKysJLnZfc3RyaWRlCQk9IERD X09WRVJMQVlfVl9TVFJJREUsCisrCS5zaXplCQkJPSBEQ19PVkVSTEFZX1NJWkUsCisrCS50b3Bf bGVmdAkJPSBEQ19PVkVSTEFZX1RPUF9MRUZULAorKwkuYm90dG9tX3JpZ2h0CT0gRENfT1ZFUkxB WV9CT1RUT01fUklHSFQsCisrCS5zY2FsZV9mYWN0b3JfeAk9IERDX09WRVJMQVlfU0NBTEVfRkFD VE9SX1gsCisrCS5zY2FsZV9mYWN0b3JfeQk9IERDX09WRVJMQVlfU0NBTEVfRkFDVE9SX1ksCisr CS5oX2ZpbHRlcl9jb2VmX2luZGV4ID0gRENfT1ZFUkxBWV9IX0ZJTFRFUl9DT0VGX0lOREVYLAor KwkuaF9maWx0ZXJfY29lZl9kYXRhICA9IERDX09WRVJMQVlfSF9GSUxURVJfQ09FRl9EQVRBLAor Kwkudl9maWx0ZXJfY29lZl9pbmRleCA9IERDX09WRVJMQVlfVl9GSUxURVJfQ09FRl9JTkRFWCwK KysJLnZfZmlsdGVyX2NvZWZfZGF0YSAgPSBEQ19PVkVSTEFZX1ZfRklMVEVSX0NPRUZfREFUQSwK KysJLmluaXRfb2Zmc2V0CQkgPSBEQ19PVkVSTEFZX0lOSVRfT0ZGU0VULAorKwkuY29sb3Jfa2V5 CQkJID0gRENfT1ZFUkxBWV9DT0xPUl9LRVksCisrCS5jb2xvcl9rZXlfaGlnaAkJCT0gRENfT1ZF UkxBWV9DT0xPUl9LRVlfSElHSCwKKysJLmNsZWFyX3ZhbHVlCQkgPSBEQ19PVkVSTEFZX0NMRUFS X1ZBTFVFLAorKwkuY29sb3JfdGFibGVfaW5kZXgJID0gRENfT1ZFUkxBWV9DT0xPUl9UQUJMRV9J TkRFWCwKKysJLmNvbG9yX3RhYmxlX2RhdGEJID0gRENfT1ZFUkxBWV9DT0xPUl9UQUJMRV9EQVRB LAorKwkuc2NhbGVfY29uZmlnCQkgPSBEQ19PVkVSTEFZX1NDQUxFX0NPTkZJRywKKysJLndhdGVy X21hcmsJCQkJPSBEQ19PVkVSTEFZX1dBVEVSX01BUkssCisrCS5kZWdhbW1hX2luZGV4CQkgPSBE Q19PVkVSTEFZX0RFR0FNTUFfSU5ERVgsCisrCS5kZWdhbW1hX2RhdGEJCSA9IERDX09WRVJMQVlf REVHQU1NQV9EQVRBLAorKwkuZGVnYW1tYV9leF9kYXRhCSA9IERDX09WRVJMQVlfREVHQU1NQV9F WF9EQVRBLAorKwkuc3JjX2dsb2JhbF9jb2xvcgkgPSBEQ19PVkVSTEFZX1NSQ19HTE9CQUxfQ09M T1IsCisrCS5kc3RfZ2xvYmFsX2NvbG9yCSA9IERDX09WRVJMQVlfRFNUX0dMT0JBTF9DT0xPUiwK KysJLmJsZW5kX2NvbmZpZwkJID0gRENfT1ZFUkxBWV9CTEVORF9DT05GSUcsCisrCS5yb2lfb3Jp Z2luCQkJCT0gRENfT1ZFUkxBWV9ST0lfT1JJR0lOLAorKwkucm9pX3NpemUJCQkJPSBEQ19PVkVS TEFZX1JPSV9TSVpFLAorKwkueXV2X3RvX3JnYl9jb2VmMAkJID0gRENfT1ZFUkxBWV9ZVVZUT1JH Ql9DT0VGMCwKKysJLnl1dl90b19yZ2JfY29lZjEJCSA9IERDX09WRVJMQVlfWVVWVE9SR0JfQ09F RjEsCisrCS55dXZfdG9fcmdiX2NvZWYyCQkgPSBEQ19PVkVSTEFZX1lVVlRPUkdCX0NPRUYyLAor KwkueXV2X3RvX3JnYl9jb2VmMwkJID0gRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGMywKKysJLnl1 dl90b19yZ2JfY29lZjQJCQk9IERDX09WRVJMQVlfWVVWVE9SR0JfQ09FRjQsCisrCS55dXZfdG9f cmdiX2NvZWZkMAkJCT0gRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGRDAsCisrCS55dXZfdG9fcmdi X2NvZWZkMQkJCT0gRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGRDEsCisrCS55dXZfdG9fcmdiX2Nv ZWZkMgkJCT0gRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGRDIsCisrCS55X2NsYW1wX2JvdW5kCQkg PSBEQ19PVkVSTEFZX1lfQ0xBTVBfQk9VTkQsCisrCS51dl9jbGFtcF9ib3VuZAkJID0gRENfT1ZF UkxBWV9VVl9DTEFNUF9CT1VORCwKKysJLnJnYl90b19yZ2JfY29lZjAJCSA9IERDX09WRVJMQVlf UkdCVE9SR0JfQ09FRjAsCisrCS5yZ2JfdG9fcmdiX2NvZWYxCQkgPSBEQ19PVkVSTEFZX1JHQlRP UkdCX0NPRUYxLAorKwkucmdiX3RvX3JnYl9jb2VmMgkJID0gRENfT1ZFUkxBWV9SR0JUT1JHQl9D T0VGMiwKKysJLnJnYl90b19yZ2JfY29lZjMJCSA9IERDX09WRVJMQVlfUkdCVE9SR0JfQ09FRjMs CisrCS5yZ2JfdG9fcmdiX2NvZWY0CQkgPSBEQ19PVkVSTEFZX1JHQlRPUkdCX0NPRUY0LAorKwl9 LAorK307CisrCisrc3RhdGljIGNvbnN0IHUzMiBwcmltYXJ5X292ZXJsYXlfZm9ybWF0MFtdID0g eworKwlEUk1fRk9STUFUX1hSR0I0NDQ0LAorKwlEUk1fRk9STUFUX1hCR1I0NDQ0LAorKwlEUk1f Rk9STUFUX1JHQlg0NDQ0LAorKwlEUk1fRk9STUFUX0JHUlg0NDQ0LAorKwlEUk1fRk9STUFUX0FS R0I0NDQ0LAorKwlEUk1fRk9STUFUX0FCR1I0NDQ0LAorKwlEUk1fRk9STUFUX1JHQkE0NDQ0LAor KwlEUk1fRk9STUFUX0JHUkE0NDQ0LAorKwlEUk1fRk9STUFUX1hSR0IxNTU1LAorKwlEUk1fRk9S TUFUX1hCR1IxNTU1LAorKwlEUk1fRk9STUFUX1JHQlg1NTUxLAorKwlEUk1fRk9STUFUX0JHUlg1 NTUxLAorKwlEUk1fRk9STUFUX0FSR0IxNTU1LAorKwlEUk1fRk9STUFUX0FCR1IxNTU1LAorKwlE Uk1fRk9STUFUX1JHQkE1NTUxLAorKwlEUk1fRk9STUFUX0JHUkE1NTUxLAorKwlEUk1fRk9STUFU X1JHQjU2NSwKKysJRFJNX0ZPUk1BVF9CR1I1NjUsCisrCURSTV9GT1JNQVRfWFJHQjg4ODgsCisr CURSTV9GT1JNQVRfWEJHUjg4ODgsCisrCURSTV9GT1JNQVRfUkdCWDg4ODgsCisrCURSTV9GT1JN QVRfQkdSWDg4ODgsCisrCURSTV9GT1JNQVRfQVJHQjg4ODgsCisrCURSTV9GT1JNQVRfQUJHUjg4 ODgsCisrCURSTV9GT1JNQVRfUkdCQTg4ODgsCisrCURSTV9GT1JNQVRfQkdSQTg4ODgsCisrCURS TV9GT1JNQVRfQVJHQjIxMDEwMTAsCisrCURSTV9GT1JNQVRfQUJHUjIxMDEwMTAsCisrCURSTV9G T1JNQVRfUkdCQTEwMTAxMDIsCisrCURSTV9GT1JNQVRfQkdSQTEwMTAxMDIsCisrCURSTV9GT1JN QVRfWVVZViwKKysJRFJNX0ZPUk1BVF9ZVllVLAorKwlEUk1fRk9STUFUX1VZVlksCisrCURSTV9G T1JNQVRfVllVWSwKKysJRFJNX0ZPUk1BVF9ZVlU0MjAsCisrCURSTV9GT1JNQVRfWVVWNDIwLAor KwlEUk1fRk9STUFUX05WMTIsCisrCURSTV9GT1JNQVRfTlYyMSwKKysJRFJNX0ZPUk1BVF9OVjE2 LAorKwlEUk1fRk9STUFUX05WNjEsCisrCURSTV9GT1JNQVRfUDAxMCwKKyt9OworKworK3N0YXRp YyBjb25zdCB1MzIgcHJpbWFyeV9vdmVybGF5X2Zvcm1hdDFbXSA9IHsKKysJRFJNX0ZPUk1BVF9Y UkdCODg4OCwKKysJRFJNX0ZPUk1BVF9YQkdSODg4OCwKKysJRFJNX0ZPUk1BVF9SR0JYODg4OCwK KysJRFJNX0ZPUk1BVF9CR1JYODg4OCwKKysJRFJNX0ZPUk1BVF9BUkdCODg4OCwKKysJRFJNX0ZP Uk1BVF9BQkdSODg4OCwKKysJRFJNX0ZPUk1BVF9SR0JBODg4OCwKKysJRFJNX0ZPUk1BVF9CR1JB ODg4OCwKKysJRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMCwKKysJRFJNX0ZPUk1BVF9BQkdSMjEwMTAx MCwKKysJRFJNX0ZPUk1BVF9SR0JBMTAxMDEwMiwKKysJRFJNX0ZPUk1BVF9CR1JBMTAxMDEwMiwK KysJRFJNX0ZPUk1BVF9OVjEyLAorKwlEUk1fRk9STUFUX05WMjEsCisrCURSTV9GT1JNQVRfWVVW NDQ0LAorK307CisrCisrc3RhdGljIGNvbnN0IHUzMiBjdXJzb3JfZm9ybWF0c1tdID0geworKwlE Uk1fRk9STUFUX0FSR0I4ODg4CisrfTsKKysKKytzdGF0aWMgY29uc3QgdTY0IGZvcm1hdF9tb2Rp ZmllcjBbXSA9IHsKKysJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorKwlmb3VyY2NfbW9kX3ZzX25v cm1fY29kZShEUk1fRk9STUFUX01PRF9WU19MSU5FQVIpLAorKwlmb3VyY2NfbW9kX3ZzX25vcm1f Y29kZShEUk1fRk9STUFUX01PRF9WU19TVVBFUl9USUxFRF9YTUFKT1IpLAorKwlmb3VyY2NfbW9k X3ZzX25vcm1fY29kZShEUk1fRk9STUFUX01PRF9WU19TVVBFUl9USUxFRF9ZTUFKT1IpLAorKwlm b3VyY2NfbW9kX3ZzX25vcm1fY29kZShEUk1fRk9STUFUX01PRF9WU19USUxFXzhYOCksCisrCWZv dXJjY19tb2RfdnNfbm9ybV9jb2RlKERSTV9GT1JNQVRfTU9EX1ZTX1RJTEVfOFg0KSwKKysJZm91 cmNjX21vZF92c19ub3JtX2NvZGUoRFJNX0ZPUk1BVF9NT0RfVlNfU1VQRVJfVElMRURfWE1BSk9S XzhYNCksCisrCWZvdXJjY19tb2RfdnNfbm9ybV9jb2RlKERSTV9GT1JNQVRfTU9EX1ZTX1NVUEVS X1RJTEVEX1lNQUpPUl80WDgpLAorKwlEUk1fRk9STUFUX01PRF9JTlZBTElECisrfTsKKysKKytz dGF0aWMgY29uc3QgdTY0IGZvcm1hdF9tb2RpZmllcjFbXSA9IHsKKysJRFJNX0ZPUk1BVF9NT0Rf TElORUFSLAorKwlmb3VyY2NfbW9kX3ZzX25vcm1fY29kZShEUk1fRk9STUFUX01PRF9WU19MSU5F QVIpLAorKwlmb3VyY2NfbW9kX3ZzX25vcm1fY29kZShEUk1fRk9STUFUX01PRF9WU19TVVBFUl9U SUxFRF9YTUFKT1IpLAorKwlmb3VyY2NfbW9kX3ZzX25vcm1fY29kZShEUk1fRk9STUFUX01PRF9W U19TVVBFUl9USUxFRF9ZTUFKT1IpLAorKwlmb3VyY2NfbW9kX3ZzX25vcm1fY29kZShEUk1fRk9S TUFUX01PRF9WU19USUxFXzhYOCksCisrCWZvdXJjY19tb2RfdnNfbm9ybV9jb2RlKERSTV9GT1JN QVRfTU9EX1ZTX1RJTEVfOFg0KSwKKysJZm91cmNjX21vZF92c19ub3JtX2NvZGUoRFJNX0ZPUk1B VF9NT0RfVlNfU1VQRVJfVElMRURfWE1BSk9SXzhYNCksCisrCWZvdXJjY19tb2RfdnNfbm9ybV9j b2RlKERSTV9GT1JNQVRfTU9EX1ZTX1NVUEVSX1RJTEVEX1lNQUpPUl80WDgpLAorKwlmb3VyY2Nf bW9kX3ZzX25vcm1fY29kZShEUk1fRk9STUFUX01PRF9WU19USUxFX01PREU0WDQpLAorKwlmb3Vy Y2NfbW9kX3ZzX2N1c3RvbV9jb2RlKERSTV9GT1JNQVRfTU9EX1ZTX1RJTEVfTU9ERTRYNCksCisr CURSTV9GT1JNQVRfTU9EX0lOVkFMSUQKKyt9OworKworK3N0YXRpYyBjb25zdCB1NjQgc2Vjb25k YXJ5X2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKKysJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorKwlE Uk1fRk9STUFUX01PRF9JTlZBTElECisrfTsKKysKKysjZGVmaW5lIEZSQUNfMTZfMTYobXVsdCwg ZGl2KQkgKCgobXVsdCkgPDwgMTYpIC8gKGRpdikpCisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB2 c19wbGFuZV9pbmZvIGRjX2h3X3BsYW5lc1tdW1BMQU5FX05VTV0gPSB7CisrCXsKKysJCS8qIERD X1JFVl8wICovCisrCQl7CisrCQkubmFtZQkJCT0gIlByaW1hcnkiLAorKwkJLmlkCQkJCT0gUFJJ TUFSWV9QTEFORV8wLAorKwkJLnR5cGUJCQk9IERSTV9QTEFORV9UWVBFX1BSSU1BUlksCisrCQku bnVtX2Zvcm1hdHMJPSBBUlJBWV9TSVpFKHByaW1hcnlfb3ZlcmxheV9mb3JtYXQwKSwKKysJCS5m b3JtYXRzCQk9IHByaW1hcnlfb3ZlcmxheV9mb3JtYXQwLAorKwkJLm51bV9tb2RpZmllcnMJPSBB UlJBWV9TSVpFKGZvcm1hdF9tb2RpZmllcjApLAorKwkJLm1vZGlmaWVycwkJPSBmb3JtYXRfbW9k aWZpZXIwLAorKwkJLm1pbl93aWR0aAkJPSAwLAorKwkJLm1pbl9oZWlnaHQJCT0gMCwKKysJCS5t YXhfd2lkdGgJCT0gNDA5NiwKKysJCS5tYXhfaGVpZ2h0CQk9IDQwOTYsCisrCQkucm90YXRpb24J CT0gRFJNX01PREVfUk9UQVRFXzAgfAorKwkJCQkJCQlEUk1fTU9ERV9ST1RBVEVfOTAgfAorKwkJ CQkJCQlEUk1fTU9ERV9ST1RBVEVfMTgwIHwKKysJCQkJCQkJRFJNX01PREVfUk9UQVRFXzI3MCB8 CisrCQkJCQkJCURSTV9NT0RFX1JFRkxFQ1RfWCB8CisrCQkJCQkJCURSTV9NT0RFX1JFRkxFQ1Rf WSwKKysJCS5ibGVuZF9tb2RlCQk9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8Cisr CQkJCQkJCUJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAorKwkJCQkJCQlCSVQoRFJNX01P REVfQkxFTkRfQ09WRVJBR0UpLAorKwkJLmNvbG9yX2VuY29kaW5nID0gQklUKERSTV9DT0xPUl9Z Q0JDUl9CVDcwOSkgfAorKwkJCQkJCSAgQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDIwMjApLAorKwkJ LmRlZ2FtbWFfc2l6ZQk9IERFR0FNTUFfU0laRSwKKysJCS5taW5fc2NhbGUJID0gRlJBQ18xNl8x NigxLCAzKSwKKysJCS5tYXhfc2NhbGUJID0gRlJBQ18xNl8xNigxMCwgMSksCisrCQkuenBvcwkJ ID0gMCwKKysJCS53YXRlcm1hcmsJID0gdHJ1ZSwKKysJCS5jb2xvcl9tZ210ICA9IHRydWUsCisr CQkucm9pCQkgPSB0cnVlLAorKwkJfSwKKysJCXsKKysJCS5uYW1lCQkJPSAiT3ZlcmxheSIsCisr CQkuaWQJCQkJPSBPVkVSTEFZX1BMQU5FXzAsCisrCQkudHlwZQkJCT0gRFJNX1BMQU5FX1RZUEVf T1ZFUkxBWSwKKysJCS5udW1fZm9ybWF0cwk9IEFSUkFZX1NJWkUocHJpbWFyeV9vdmVybGF5X2Zv cm1hdDApLAorKwkJLmZvcm1hdHMJCT0gcHJpbWFyeV9vdmVybGF5X2Zvcm1hdDAsCisrCQkubnVt X21vZGlmaWVycwk9IEFSUkFZX1NJWkUoZm9ybWF0X21vZGlmaWVyMCksCisrCQkubW9kaWZpZXJz CQk9IGZvcm1hdF9tb2RpZmllcjAsCisrCQkubWluX3dpZHRoCQk9IDAsCisrCQkubWluX2hlaWdo dAkJPSAwLAorKwkJLm1heF93aWR0aAkJPSA0MDk2LAorKwkJLm1heF9oZWlnaHQJCT0gNDA5NiwK KysJCS5yb3RhdGlvbgkgPSBEUk1fTU9ERV9ST1RBVEVfMCB8CisrCQkJCQkgICBEUk1fTU9ERV9S T1RBVEVfOTAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzE4MCB8CisrCQkJCQkgICBEUk1f TU9ERV9ST1RBVEVfMjcwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1RfWCB8CisrCQkJCQkg ICBEUk1fTU9ERV9SRUZMRUNUX1ksCisrCQkuYmxlbmRfbW9kZSAgPSBCSVQoRFJNX01PREVfQkxF TkRfUElYRUxfTk9ORSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKSB8 CisrCQkJCQkgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpLAorKwkJLmNvbG9yX2VuY29k aW5nID0gQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkgfAorKwkJCQkJCSAgQklUKERSTV9DT0xP Ul9ZQ0JDUl9CVDIwMjApLAorKwkJLmRlZ2FtbWFfc2l6ZQk9IERFR0FNTUFfU0laRSwKKysJCS5t aW5fc2NhbGUJID0gRlJBQ18xNl8xNigxLCAzKSwKKysJCS5tYXhfc2NhbGUJID0gRlJBQ18xNl8x NigxMCwgMSksCisrCQkuenBvcwkJID0gMSwKKysJCS53YXRlcm1hcmsJID0gdHJ1ZSwKKysJCS5j b2xvcl9tZ210ICA9IHRydWUsCisrCQkucm9pCQkgPSB0cnVlLAorKwkJfSwKKysJCXsKKysJCS5u YW1lCQkJPSAiT3ZlcmxheV8xIiwKKysJCS5pZAkJCQk9IE9WRVJMQVlfUExBTkVfMSwKKysJCS50 eXBlCQkJPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAorKwkJLm51bV9mb3JtYXRzCT0gQVJSQVlf U0laRShwcmltYXJ5X292ZXJsYXlfZm9ybWF0MCksCisrCQkuZm9ybWF0cwkJPSBwcmltYXJ5X292 ZXJsYXlfZm9ybWF0MCwKKysJCS5udW1fbW9kaWZpZXJzCT0gQVJSQVlfU0laRShzZWNvbmRhcnlf Zm9ybWF0X21vZGlmaWVycyksCisrCQkubW9kaWZpZXJzCQk9IHNlY29uZGFyeV9mb3JtYXRfbW9k aWZpZXJzLAorKwkJLm1pbl93aWR0aAkJPSAwLAorKwkJLm1pbl9oZWlnaHQJCT0gMCwKKysJCS5t YXhfd2lkdGgJCT0gNDA5NiwKKysJCS5tYXhfaGVpZ2h0CQk9IDQwOTYsCisrCQkucm90YXRpb24J CT0gMCwKKysJCS5ibGVuZF9tb2RlCQk9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8 CisrCQkJCQkJCUJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAorKwkJCQkJCQlCSVQoRFJN X01PREVfQkxFTkRfQ09WRVJBR0UpLAorKwkJLmNvbG9yX2VuY29kaW5nID0gQklUKERSTV9DT0xP Ul9ZQ0JDUl9CVDcwOSkgfAorKwkJCQkJCSAgQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDIwMjApLAor KwkJLmRlZ2FtbWFfc2l6ZQk9IERFR0FNTUFfU0laRSwKKysJCS5taW5fc2NhbGUJID0gRFJNX1BM QU5FX05PX1NDQUxJTkcsCisrCQkubWF4X3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAor KwkJLnpwb3MJCSA9IDIsCisrCQkud2F0ZXJtYXJrCSA9IHRydWUsCisrCQkuY29sb3JfbWdtdCAg PSB0cnVlLAorKwkJLnJvaQkJID0gdHJ1ZSwKKysJCX0sCisrCQl7CisrCQkubmFtZQkJID0gIlBy aW1hcnlfMSIsCisrCQkuaWQJCQkJPSBQUklNQVJZX1BMQU5FXzEsCisrCQkudHlwZQkJID0gRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSwKKysJCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUocHJpbWFy eV9vdmVybGF5X2Zvcm1hdDApLAorKwkJLmZvcm1hdHMJID0gcHJpbWFyeV9vdmVybGF5X2Zvcm1h dDAsCisrCQkubnVtX21vZGlmaWVycyA9IEFSUkFZX1NJWkUoZm9ybWF0X21vZGlmaWVyMCksCisr CQkubW9kaWZpZXJzCSA9IGZvcm1hdF9tb2RpZmllcjAsCisrCQkubWluX3dpZHRoCSA9IDAsCisr CQkubWluX2hlaWdodCAgPSAwLAorKwkJLm1heF93aWR0aAkgPSA0MDk2LAorKwkJLm1heF9oZWln aHQgID0gNDA5NiwKKysJCS5yb3RhdGlvbgkgPSBEUk1fTU9ERV9ST1RBVEVfMCB8CisrCQkJCQkg ICBEUk1fTU9ERV9ST1RBVEVfOTAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzE4MCB8Cisr CQkJCQkgICBEUk1fTU9ERV9ST1RBVEVfMjcwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1Rf WCB8CisrCQkJCQkgICBEUk1fTU9ERV9SRUZMRUNUX1ksCisrCQkuYmxlbmRfbW9kZSAgPSBCSVQo RFJNX01PREVfQkxFTkRfUElYRUxfTk9ORSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5E X1BSRU1VTFRJKSB8CisrCQkJCQkgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpLAorKwkJ LmNvbG9yX2VuY29kaW5nID0gQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkgfAorKwkJCQkJCSAg QklUKERSTV9DT0xPUl9ZQ0JDUl9CVDIwMjApLAorKwkJLmRlZ2FtbWFfc2l6ZQk9IERFR0FNTUFf U0laRSwKKysJCS5taW5fc2NhbGUJID0gRlJBQ18xNl8xNigxLCAzKSwKKysJCS5tYXhfc2NhbGUJ ID0gRlJBQ18xNl8xNigxMCwgMSksCisrCQkuenBvcwkJID0gMywKKysJCS53YXRlcm1hcmsJID0g dHJ1ZSwKKysJCS5jb2xvcl9tZ210ICA9IHRydWUsCisrCQkucm9pCQkgPSB0cnVlLAorKwkJfSwK KysJCXsKKysJCS5uYW1lCQkgPSAiT3ZlcmxheV8yIiwKKysJCS5pZAkJCQk9IE9WRVJMQVlfUExB TkVfMiwKKysJCS50eXBlCQkgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAorKwkJLm51bV9mb3Jt YXRzID0gQVJSQVlfU0laRShwcmltYXJ5X292ZXJsYXlfZm9ybWF0MCksCisrCQkuZm9ybWF0cwkg PSBwcmltYXJ5X292ZXJsYXlfZm9ybWF0MCwKKysJCS5udW1fbW9kaWZpZXJzID0gQVJSQVlfU0la RShmb3JtYXRfbW9kaWZpZXIwKSwKKysJCS5tb2RpZmllcnMJID0gZm9ybWF0X21vZGlmaWVyMCwK KysJCS5taW5fd2lkdGgJID0gMCwKKysJCS5taW5faGVpZ2h0ICA9IDAsCisrCQkubWF4X3dpZHRo CSA9IDQwOTYsCisrCQkubWF4X2hlaWdodCAgPSA0MDk2LAorKwkJLnJvdGF0aW9uCSA9IERSTV9N T0RFX1JPVEFURV8wIHwKKysJCQkJCSAgIERSTV9NT0RFX1JPVEFURV85MCB8CisrCQkJCQkgICBE Uk1fTU9ERV9ST1RBVEVfMTgwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JPVEFURV8yNzAgfAorKwkJ CQkJICAgRFJNX01PREVfUkVGTEVDVF9YIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1RfWSwK KysJCS5ibGVuZF9tb2RlICA9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8CisrCQkJ CQkgICBCSVQoRFJNX01PREVfQkxFTkRfUFJFTVVMVEkpIHwKKysJCQkJCSAgIEJJVChEUk1fTU9E RV9CTEVORF9DT1ZFUkFHRSksCisrCQkuY29sb3JfZW5jb2RpbmcgPSBCSVQoRFJNX0NPTE9SX1lD QkNSX0JUNzA5KSB8CisrCQkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUMjAyMCksCisrCQku ZGVnYW1tYV9zaXplCT0gREVHQU1NQV9TSVpFLAorKwkJLm1pbl9zY2FsZQkgPSBGUkFDXzE2XzE2 KDEsIDMpLAorKwkJLm1heF9zY2FsZQkgPSBGUkFDXzE2XzE2KDEwLCAxKSwKKysJCS56cG9zCQkg PSA0LAorKwkJLndhdGVybWFyawkgPSB0cnVlLAorKwkJLmNvbG9yX21nbXQgID0gdHJ1ZSwKKysJ CS5yb2kJCSA9IHRydWUsCisrCQl9LAorKwkJeworKwkJLm5hbWUJCSA9ICJPdmVybGF5XzMiLAor KwkJLmlkCQkJPSBPVkVSTEFZX1BMQU5FXzMsCisrCQkudHlwZQkJID0gRFJNX1BMQU5FX1RZUEVf T1ZFUkxBWSwKKysJCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUocHJpbWFyeV9vdmVybGF5X2Zv cm1hdDApLAorKwkJLmZvcm1hdHMJID0gcHJpbWFyeV9vdmVybGF5X2Zvcm1hdDAsCisrCQkubnVt X21vZGlmaWVycyA9IEFSUkFZX1NJWkUoc2Vjb25kYXJ5X2Zvcm1hdF9tb2RpZmllcnMpLAorKwkJ Lm1vZGlmaWVycwkgPSBzZWNvbmRhcnlfZm9ybWF0X21vZGlmaWVycywKKysJCS5taW5fd2lkdGgJ ID0gMCwKKysJCS5taW5faGVpZ2h0ICA9IDAsCisrCQkubWF4X3dpZHRoCSA9IDQwOTYsCisrCQku bWF4X2hlaWdodCAgPSA0MDk2LAorKwkJLnJvdGF0aW9uCSA9IDAsCisrCQkuYmxlbmRfbW9kZSAg PSBCSVQoRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RF X0JMRU5EX1BSRU1VTFRJKSB8CisrCQkJCQkgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0Up LAorKwkJLmNvbG9yX2VuY29kaW5nID0gQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkgfAorKwkJ CQkJCSAgQklUKERSTV9DT0xPUl9ZQ0JDUl9CVDIwMjApLAorKwkJLmRlZ2FtbWFfc2l6ZQk9IERF R0FNTUFfU0laRSwKKysJCS5taW5fc2NhbGUJID0gRFJNX1BMQU5FX05PX1NDQUxJTkcsCisrCQku bWF4X3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAorKwkJLnpwb3MJCSA9IDUsCisrCQku d2F0ZXJtYXJrCSA9IHRydWUsCisrCQkuY29sb3JfbWdtdCAgPSB0cnVlLAorKwkJLnJvaQkJID0g dHJ1ZSwKKysJCX0sCisrCQl7CisrCQkubmFtZQkJID0gIkN1cnNvciIsCisrCQkuaWQJCQkJPSBD VVJTT1JfUExBTkVfMCwKKysJCS50eXBlCQkgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IsCisrCQku bnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGN1cnNvcl9mb3JtYXRzKSwKKysJCS5mb3JtYXRzCSA9 IGN1cnNvcl9mb3JtYXRzLAorKwkJLm51bV9tb2RpZmllcnMgPSAwLAorKwkJLm1vZGlmaWVycwkg PSBOVUxMLAorKwkJLm1pbl93aWR0aAkgPSAzMiwKKysJCS5taW5faGVpZ2h0ICA9IDMyLAorKwkJ Lm1heF93aWR0aAkgPSA2NCwKKysJCS5tYXhfaGVpZ2h0ICA9IDY0LAorKwkJLnJvdGF0aW9uCSA9 IDAsCisrCQkuZGVnYW1tYV9zaXplID0gMCwKKysJCS5taW5fc2NhbGUJID0gRFJNX1BMQU5FX05P X1NDQUxJTkcsCisrCQkubWF4X3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAorKwkJLnpw b3MJCSA9IDI1NSwKKysJCS53YXRlcm1hcmsJID0gZmFsc2UsCisrCQkuY29sb3JfbWdtdCAgPSBm YWxzZSwKKysJCS5yb2kJCSA9IGZhbHNlLAorKwkJfSwKKysJCXsKKysJCS5uYW1lCQkgPSAiQ3Vy c29yXzEiLAorKwkJLmlkCQkJCT0gQ1VSU09SX1BMQU5FXzEsCisrCQkudHlwZQkJID0gRFJNX1BM QU5FX1RZUEVfQ1VSU09SLAorKwkJLm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShjdXJzb3JfZm9y bWF0cyksCisrCQkuZm9ybWF0cwkgPSBjdXJzb3JfZm9ybWF0cywKKysJCS5udW1fbW9kaWZpZXJz ID0gMCwKKysJCS5tb2RpZmllcnMJID0gTlVMTCwKKysJCS5taW5fd2lkdGgJID0gMzIsCisrCQku bWluX2hlaWdodCAgPSAzMiwKKysJCS5tYXhfd2lkdGgJID0gNjQsCisrCQkubWF4X2hlaWdodCAg PSA2NCwKKysJCS5yb3RhdGlvbgkgPSAwLAorKwkJLmRlZ2FtbWFfc2l6ZSA9IDAsCisrCQkubWlu X3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAorKwkJLm1heF9zY2FsZQkgPSBEUk1fUExB TkVfTk9fU0NBTElORywKKysJCS56cG9zCQkgPSAyNTUsCisrCQkud2F0ZXJtYXJrCSA9IGZhbHNl LAorKwkJLmNvbG9yX21nbXQgID0gZmFsc2UsCisrCQkucm9pCQkgPSBmYWxzZSwKKysJCX0sCisr CX0sCisrCXsKKysJCS8qIERDX1JFVl8xICovCisrCQl7CisrCQkubmFtZQkJID0gIlByaW1hcnki LAorKwkJLmlkCQkJCT0gUFJJTUFSWV9QTEFORV8wLAorKwkJLnR5cGUJCSA9IERSTV9QTEFORV9U WVBFX1BSSU1BUlksCisrCQkubnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHByaW1hcnlfb3Zlcmxh eV9mb3JtYXQwKSwKKysJCS5mb3JtYXRzCSA9IHByaW1hcnlfb3ZlcmxheV9mb3JtYXQwLAorKwkJ Lm51bV9tb2RpZmllcnMgPSBBUlJBWV9TSVpFKGZvcm1hdF9tb2RpZmllcjApLAorKwkJLm1vZGlm aWVycwkgPSBmb3JtYXRfbW9kaWZpZXIwLAorKwkJLm1pbl93aWR0aAkgPSAwLAorKwkJLm1pbl9o ZWlnaHQgID0gMCwKKysJCS5tYXhfd2lkdGgJID0gNDA5NiwKKysJCS5tYXhfaGVpZ2h0ICA9IDQw OTYsCisrCQkucm90YXRpb24JID0gRFJNX01PREVfUk9UQVRFXzAgfAorKwkJCQkJICAgRFJNX01P REVfUk9UQVRFXzkwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JPVEFURV8xODAgfAorKwkJCQkJICAg RFJNX01PREVfUk9UQVRFXzI3MCB8CisrCQkJCQkgICBEUk1fTU9ERV9SRUZMRUNUX1ggfAorKwkJ CQkJICAgRFJNX01PREVfUkVGTEVDVF9ZLAorKwkJLmJsZW5kX21vZGUgID0gQklUKERSTV9NT0RF X0JMRU5EX1BJWEVMX05PTkUpIHwKKysJCQkJCSAgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxU SSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFKSwKKysJCS5jb2xvcl9l bmNvZGluZyA9IEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpIHwKKysJCQkJCQkgIEJJVChEUk1f Q09MT1JfWUNCQ1JfQlQyMDIwKSwKKysJCS5kZWdhbW1hX3NpemUJPSBERUdBTU1BX1NJWkUsCisr CQkubWluX3NjYWxlCSA9IEZSQUNfMTZfMTYoMSwgMyksCisrCQkubWF4X3NjYWxlCSA9IEZSQUNf MTZfMTYoMTAsIDEpLAorKwkJLnpwb3MJCSA9IDAsCisrCQkud2F0ZXJtYXJrCSA9IHRydWUsCisr CQkuY29sb3JfbWdtdCAgPSB0cnVlLAorKwkJLnJvaQkJID0gdHJ1ZSwKKysJCX0sCisrCQl7Cisr CQkubmFtZQkJID0gIk92ZXJsYXkiLAorKwkJLmlkCQkJCT0gT1ZFUkxBWV9QTEFORV8wLAorKwkJ LnR5cGUJCSA9IERSTV9QTEFORV9UWVBFX09WRVJMQVksCisrCQkubnVtX2Zvcm1hdHMgPSBBUlJB WV9TSVpFKHByaW1hcnlfb3ZlcmxheV9mb3JtYXQwKSwKKysJCS5mb3JtYXRzCSA9IHByaW1hcnlf b3ZlcmxheV9mb3JtYXQwLAorKwkJLm51bV9tb2RpZmllcnMgPSBBUlJBWV9TSVpFKGZvcm1hdF9t b2RpZmllcjApLAorKwkJLm1vZGlmaWVycwkgPSBmb3JtYXRfbW9kaWZpZXIwLAorKwkJLm1pbl93 aWR0aAkgPSAwLAorKwkJLm1pbl9oZWlnaHQgID0gMCwKKysJCS5tYXhfd2lkdGgJID0gNDA5NiwK KysJCS5tYXhfaGVpZ2h0ICA9IDQwOTYsCisrCQkucm90YXRpb24JID0gRFJNX01PREVfUk9UQVRF XzAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzkwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JP VEFURV8xODAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzI3MCB8CisrCQkJCQkgICBEUk1f TU9ERV9SRUZMRUNUX1ggfAorKwkJCQkJICAgRFJNX01PREVfUkVGTEVDVF9ZLAorKwkJLmJsZW5k X21vZGUgID0gQklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHwKKysJCQkJCSAgIEJJVChE Uk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5EX0NP VkVSQUdFKSwKKysJCS5jb2xvcl9lbmNvZGluZyA9IEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkp IHwKKysJCQkJCQkgIEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQyMDIwKSwKKysJCS5kZWdhbW1hX3Np emUJPSBERUdBTU1BX1NJWkUsCisrCQkubWluX3NjYWxlCSA9IEZSQUNfMTZfMTYoMSwgMyksCisr CQkubWF4X3NjYWxlCSA9IEZSQUNfMTZfMTYoMTAsIDEpLAorKwkJLnpwb3MJCSA9IDEsCisrCQku d2F0ZXJtYXJrCSA9IHRydWUsCisrCQkuY29sb3JfbWdtdCAgPSB0cnVlLAorKwkJLnJvaQkJID0g dHJ1ZSwKKysJCX0sCisrCQl7CisrCQkubmFtZQkJID0gIlByaW1hcnlfMSIsCisrCQkuaWQJCQkJ PSBQUklNQVJZX1BMQU5FXzEsCisrCQkudHlwZQkJID0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwK KysJCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUocHJpbWFyeV9vdmVybGF5X2Zvcm1hdDApLAor KwkJLmZvcm1hdHMJID0gcHJpbWFyeV9vdmVybGF5X2Zvcm1hdDAsCisrCQkubnVtX21vZGlmaWVy cyA9IEFSUkFZX1NJWkUoZm9ybWF0X21vZGlmaWVyMCksCisrCQkubW9kaWZpZXJzCSA9IGZvcm1h dF9tb2RpZmllcjAsCisrCQkubWluX3dpZHRoCSA9IDAsCisrCQkubWluX2hlaWdodCAgPSAwLAor KwkJLm1heF93aWR0aAkgPSA0MDk2LAorKwkJLm1heF9oZWlnaHQgID0gNDA5NiwKKysJCS5yb3Rh dGlvbgkgPSBEUk1fTU9ERV9ST1RBVEVfMCB8CisrCQkJCQkgICBEUk1fTU9ERV9ST1RBVEVfOTAg fAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzE4MCB8CisrCQkJCQkgICBEUk1fTU9ERV9ST1RB VEVfMjcwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1RfWCB8CisrCQkJCQkgICBEUk1fTU9E RV9SRUZMRUNUX1ksCisrCQkuYmxlbmRfbW9kZSAgPSBCSVQoRFJNX01PREVfQkxFTkRfUElYRUxf Tk9ORSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKSB8CisrCQkJCQkg ICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpLAorKwkJLmNvbG9yX2VuY29kaW5nID0gQklU KERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkgfAorKwkJCQkJCSAgQklUKERSTV9DT0xPUl9ZQ0JDUl9C VDIwMjApLAorKwkJLmRlZ2FtbWFfc2l6ZQk9IERFR0FNTUFfU0laRSwKKysJCS5taW5fc2NhbGUJ ID0gRlJBQ18xNl8xNigxLCAzKSwKKysJCS5tYXhfc2NhbGUJID0gRlJBQ18xNl8xNigxMCwgMSks CisrCQkuenBvcwkJID0gMiwKKysJCS53YXRlcm1hcmsJID0gdHJ1ZSwKKysJCS5jb2xvcl9tZ210 ICA9IHRydWUsCisrCQkucm9pCQkgPSB0cnVlLAorKwkJfSwKKysJCXsKKysJCS5uYW1lCQkgPSAi T3ZlcmxheV8yIiwKKysJCS5pZAkJCQk9IE9WRVJMQVlfUExBTkVfMiwKKysJCS50eXBlCQkgPSBE Uk1fUExBTkVfVFlQRV9PVkVSTEFZLAorKwkJLm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShwcmlt YXJ5X292ZXJsYXlfZm9ybWF0MCksCisrCQkuZm9ybWF0cwkgPSBwcmltYXJ5X292ZXJsYXlfZm9y bWF0MCwKKysJCS5udW1fbW9kaWZpZXJzID0gQVJSQVlfU0laRShmb3JtYXRfbW9kaWZpZXIwKSwK KysJCS5tb2RpZmllcnMJID0gZm9ybWF0X21vZGlmaWVyMCwKKysJCS5taW5fd2lkdGgJID0gMCwK KysJCS5taW5faGVpZ2h0ICA9IDAsCisrCQkubWF4X3dpZHRoCSA9IDQwOTYsCisrCQkubWF4X2hl aWdodCAgPSA0MDk2LAorKwkJLnJvdGF0aW9uCSA9IERSTV9NT0RFX1JPVEFURV8wIHwKKysJCQkJ CSAgIERSTV9NT0RFX1JPVEFURV85MCB8CisrCQkJCQkgICBEUk1fTU9ERV9ST1RBVEVfMTgwIHwK KysJCQkJCSAgIERSTV9NT0RFX1JPVEFURV8yNzAgfAorKwkJCQkJICAgRFJNX01PREVfUkVGTEVD VF9YIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1RfWSwKKysJCS5ibGVuZF9tb2RlICA9IEJJ VChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8CisrCQkJCQkgICBCSVQoRFJNX01PREVfQkxF TkRfUFJFTVVMVEkpIHwKKysJCQkJCSAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSksCisr CQkuY29sb3JfZW5jb2RpbmcgPSBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUNzA5KSB8CisrCQkJCQkJ ICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUMjAyMCksCisrCQkuZGVnYW1tYV9zaXplCT0gREVHQU1N QV9TSVpFLAorKwkJLm1pbl9zY2FsZQkgPSBGUkFDXzE2XzE2KDEsIDMpLAorKwkJLm1heF9zY2Fs ZQkgPSBGUkFDXzE2XzE2KDEwLCAxKSwKKysJCS56cG9zCQkgPSAzLAorKwkJLndhdGVybWFyawkg PSB0cnVlLAorKwkJLmNvbG9yX21nbXQgID0gdHJ1ZSwKKysJCS5yb2kJCSA9IHRydWUsCisrCQl9 LAorKwkJeworKwkJLm5hbWUJCSA9ICJDdXJzb3IiLAorKwkJLmlkCQkJCT0gQ1VSU09SX1BMQU5F XzAsCisrCQkudHlwZQkJID0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SLAorKwkJLm51bV9mb3JtYXRz ID0gQVJSQVlfU0laRShjdXJzb3JfZm9ybWF0cyksCisrCQkuZm9ybWF0cwkgPSBjdXJzb3JfZm9y bWF0cywKKysJCS5udW1fbW9kaWZpZXJzID0gMCwKKysJCS5tb2RpZmllcnMJID0gTlVMTCwKKysJ CS5taW5fd2lkdGgJID0gMzIsCisrCQkubWluX2hlaWdodCAgPSAzMiwKKysJCS5tYXhfd2lkdGgJ ID0gNjQsCisrCQkubWF4X2hlaWdodCAgPSA2NCwKKysJCS5yb3RhdGlvbgkgPSAwLAorKwkJLmRl Z2FtbWFfc2l6ZSA9IDAsCisrCQkubWluX3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAor KwkJLm1heF9zY2FsZQkgPSBEUk1fUExBTkVfTk9fU0NBTElORywKKysJCS56cG9zCQkgPSAyNTUs CisrCQkud2F0ZXJtYXJrCSA9IGZhbHNlLAorKwkJLmNvbG9yX21nbXQgID0gZmFsc2UsCisrCQku cm9pCQkgPSBmYWxzZSwKKysJCX0sCisrCQl7CisrCQkubmFtZQkJID0gIkN1cnNvcl8xIiwKKysJ CS5pZAkJCQk9IENVUlNPUl9QTEFORV8xLAorKwkJLnR5cGUJCSA9IERSTV9QTEFORV9UWVBFX0NV UlNPUiwKKysJCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoY3Vyc29yX2Zvcm1hdHMpLAorKwkJ LmZvcm1hdHMJID0gY3Vyc29yX2Zvcm1hdHMsCisrCQkubnVtX21vZGlmaWVycyA9IDAsCisrCQku bW9kaWZpZXJzCSA9IE5VTEwsCisrCQkubWluX3dpZHRoCSA9IDMyLAorKwkJLm1pbl9oZWlnaHQg ID0gMzIsCisrCQkubWF4X3dpZHRoCSA9IDY0LAorKwkJLm1heF9oZWlnaHQgID0gNjQsCisrCQku cm90YXRpb24JID0gMCwKKysJCS5kZWdhbW1hX3NpemUgPSAwLAorKwkJLm1pbl9zY2FsZQkgPSBE Uk1fUExBTkVfTk9fU0NBTElORywKKysJCS5tYXhfc2NhbGUJID0gRFJNX1BMQU5FX05PX1NDQUxJ TkcsCisrCQkuenBvcwkJID0gMjU1LAorKwkJLndhdGVybWFyawkgPSBmYWxzZSwKKysJCS5jb2xv cl9tZ210ICA9IGZhbHNlLAorKwkJLnJvaQkJID0gZmFsc2UsCisrCQl9LAorKwl9LAorKwl7Cisr CQkvKiBEQ19SRVZfMiAqLworKwkJeworKwkJLm5hbWUJCSA9ICJQcmltYXJ5IiwKKysJCS5pZAkJ CQk9IFBSSU1BUllfUExBTkVfMCwKKysJCS50eXBlCQkgPSBEUk1fUExBTkVfVFlQRV9QUklNQVJZ LAorKwkJLm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShwcmltYXJ5X292ZXJsYXlfZm9ybWF0MSks CisrCQkuZm9ybWF0cwkgPSBwcmltYXJ5X292ZXJsYXlfZm9ybWF0MSwKKysJCS5udW1fbW9kaWZp ZXJzID0gQVJSQVlfU0laRShmb3JtYXRfbW9kaWZpZXIxKSwKKysJCS5tb2RpZmllcnMJID0gZm9y bWF0X21vZGlmaWVyMSwKKysJCS5taW5fd2lkdGgJID0gMCwKKysJCS5taW5faGVpZ2h0ICA9IDAs CisrCQkubWF4X3dpZHRoCSA9IDQwOTYsCisrCQkubWF4X2hlaWdodCAgPSA0MDk2LAorKwkJLnJv dGF0aW9uCSA9IERSTV9NT0RFX1JPVEFURV8wIHwKKysJCQkJCSAgIERSTV9NT0RFX1JPVEFURV85 MCB8CisrCQkJCQkgICBEUk1fTU9ERV9ST1RBVEVfMTgwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JP VEFURV8yNzAgfAorKwkJCQkJICAgRFJNX01PREVfUkVGTEVDVF9YIHwKKysJCQkJCSAgIERSTV9N T0RFX1JFRkxFQ1RfWSwKKysJCS5ibGVuZF9tb2RlICA9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhF TF9OT05FKSB8CisrCQkJCQkgICBCSVQoRFJNX01PREVfQkxFTkRfUFJFTVVMVEkpIHwKKysJCQkJ CSAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSksCisrCQkuY29sb3JfZW5jb2RpbmcgPSBC SVQoRFJNX0NPTE9SX1lDQkNSX0JUNzA5KSB8CisrCQkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNS X0JUMjAyMCksCisrCQkuZGVnYW1tYV9zaXplCT0gREVHQU1NQV9TSVpFLAorKwkJLm1pbl9zY2Fs ZQkgPSBGUkFDXzE2XzE2KDEsIDMpLAorKwkJLm1heF9zY2FsZQkgPSBGUkFDXzE2XzE2KDEwLCAx KSwKKysJCS56cG9zCQkgPSAwLAorKwkJLndhdGVybWFyawkgPSB0cnVlLAorKwkJLmNvbG9yX21n bXQgID0gdHJ1ZSwKKysJCS5yb2kJCSA9IHRydWUsCisrCQl9LAorKwkJeworKwkJLm5hbWUJCSA9 ICJPdmVybGF5IiwKKysJCS5pZAkJCQk9IE9WRVJMQVlfUExBTkVfMCwKKysJCS50eXBlCQkgPSBE Uk1fUExBTkVfVFlQRV9PVkVSTEFZLAorKwkJLm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShwcmlt YXJ5X292ZXJsYXlfZm9ybWF0MSksCisrCQkuZm9ybWF0cwkgPSBwcmltYXJ5X292ZXJsYXlfZm9y bWF0MSwKKysJCS5udW1fbW9kaWZpZXJzID0gQVJSQVlfU0laRShmb3JtYXRfbW9kaWZpZXIxKSwK KysJCS5tb2RpZmllcnMJID0gZm9ybWF0X21vZGlmaWVyMSwKKysJCS5taW5fd2lkdGgJID0gMCwK KysJCS5taW5faGVpZ2h0ICA9IDAsCisrCQkubWF4X3dpZHRoCSA9IDQwOTYsCisrCQkubWF4X2hl aWdodCAgPSA0MDk2LAorKwkJLnJvdGF0aW9uCSA9IERSTV9NT0RFX1JPVEFURV8wIHwKKysJCQkJ CSAgIERSTV9NT0RFX1JPVEFURV85MCB8CisrCQkJCQkgICBEUk1fTU9ERV9ST1RBVEVfMTgwIHwK KysJCQkJCSAgIERSTV9NT0RFX1JPVEFURV8yNzAgfAorKwkJCQkJICAgRFJNX01PREVfUkVGTEVD VF9YIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1RfWSwKKysJCS5ibGVuZF9tb2RlICA9IEJJ VChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8CisrCQkJCQkgICBCSVQoRFJNX01PREVfQkxF TkRfUFJFTVVMVEkpIHwKKysJCQkJCSAgIEJJVChEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSksCisr CQkuY29sb3JfZW5jb2RpbmcgPSBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUNzA5KSB8CisrCQkJCQkJ ICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUMjAyMCksCisrCQkuZGVnYW1tYV9zaXplCT0gREVHQU1N QV9TSVpFLAorKwkJLm1pbl9zY2FsZQkgPSBGUkFDXzE2XzE2KDEsIDMpLAorKwkJLm1heF9zY2Fs ZQkgPSBGUkFDXzE2XzE2KDEwLCAxKSwKKysJCS56cG9zCQkgPSAxLAorKwkJLndhdGVybWFyawkg PSB0cnVlLAorKwkJLmNvbG9yX21nbXQgID0gdHJ1ZSwKKysJCS5yb2kJCSA9IHRydWUsCisrCQl9 LAorKwkJeworKwkJLm5hbWUJCSA9ICJPdmVybGF5XzEiLAorKwkJLmlkCQkJCT0gT1ZFUkxBWV9Q TEFORV8xLAorKwkJLnR5cGUJCSA9IERSTV9QTEFORV9UWVBFX09WRVJMQVksCisrCQkubnVtX2Zv cm1hdHMgPSBBUlJBWV9TSVpFKHByaW1hcnlfb3ZlcmxheV9mb3JtYXQxKSwKKysJCS5mb3JtYXRz CSA9IHByaW1hcnlfb3ZlcmxheV9mb3JtYXQxLAorKwkJLm51bV9tb2RpZmllcnMgPSBBUlJBWV9T SVpFKHNlY29uZGFyeV9mb3JtYXRfbW9kaWZpZXJzKSwKKysJCS5tb2RpZmllcnMJID0gc2Vjb25k YXJ5X2Zvcm1hdF9tb2RpZmllcnMsCisrCQkubWluX3dpZHRoCSA9IDAsCisrCQkubWluX2hlaWdo dCAgPSAwLAorKwkJLm1heF93aWR0aAkgPSA0MDk2LAorKwkJLm1heF9oZWlnaHQgID0gNDA5NiwK KysJCS5yb3RhdGlvbgkgPSAwLAorKwkJLmJsZW5kX21vZGUgID0gQklUKERSTV9NT0RFX0JMRU5E X1BJWEVMX05PTkUpIHwKKysJCQkJCSAgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAor KwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFKSwKKysJCS5jb2xvcl9lbmNvZGlu ZyA9IEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQ3MDkpIHwKKysJCQkJCQkgIEJJVChEUk1fQ09MT1Jf WUNCQ1JfQlQyMDIwKSwKKysJCS5kZWdhbW1hX3NpemUJPSBERUdBTU1BX1NJWkUsCisrCQkubWlu X3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAorKwkJLm1heF9zY2FsZQkgPSBEUk1fUExB TkVfTk9fU0NBTElORywKKysJCS56cG9zCQkgPSAyLAorKwkJLndhdGVybWFyawkgPSB0cnVlLAor KwkJLmNvbG9yX21nbXQgID0gdHJ1ZSwKKysJCS5yb2kJCSA9IHRydWUsCisrCQl9LAorKwkJewor KwkJLm5hbWUJCSA9ICJQcmltYXJ5XzEiLAorKwkJLmlkCQkJCT0gUFJJTUFSWV9QTEFORV8xLAor KwkJLnR5cGUJCSA9IERSTV9QTEFORV9UWVBFX1BSSU1BUlksCisrCQkubnVtX2Zvcm1hdHMgPSBB UlJBWV9TSVpFKHByaW1hcnlfb3ZlcmxheV9mb3JtYXQxKSwKKysJCS5mb3JtYXRzCSA9IHByaW1h cnlfb3ZlcmxheV9mb3JtYXQxLAorKwkJLm51bV9tb2RpZmllcnMgPSBBUlJBWV9TSVpFKGZvcm1h dF9tb2RpZmllcjEpLAorKwkJLm1vZGlmaWVycwkgPSBmb3JtYXRfbW9kaWZpZXIxLAorKwkJLm1p bl93aWR0aAkgPSAwLAorKwkJLm1pbl9oZWlnaHQgID0gMCwKKysJCS5tYXhfd2lkdGgJID0gNDA5 NiwKKysJCS5tYXhfaGVpZ2h0ICA9IDQwOTYsCisrCQkucm90YXRpb24JID0gRFJNX01PREVfUk9U QVRFXzAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzkwIHwKKysJCQkJCSAgIERSTV9NT0RF X1JPVEFURV8xODAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzI3MCB8CisrCQkJCQkgICBE Uk1fTU9ERV9SRUZMRUNUX1ggfAorKwkJCQkJICAgRFJNX01PREVfUkVGTEVDVF9ZLAorKwkJLmJs ZW5kX21vZGUgID0gQklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHwKKysJCQkJCSAgIEJJ VChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5E X0NPVkVSQUdFKSwKKysJCS5jb2xvcl9lbmNvZGluZyA9IEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQ3 MDkpIHwKKysJCQkJCQkgIEJJVChEUk1fQ09MT1JfWUNCQ1JfQlQyMDIwKSwKKysJCS5kZWdhbW1h X3NpemUJPSBERUdBTU1BX1NJWkUsCisrCQkubWluX3NjYWxlCSA9IEZSQUNfMTZfMTYoMSwgMyks CisrCQkubWF4X3NjYWxlCSA9IEZSQUNfMTZfMTYoMTAsIDEpLAorKwkJLnpwb3MJCSA9IDMsCisr CQkud2F0ZXJtYXJrCSA9IHRydWUsCisrCQkuY29sb3JfbWdtdCAgPSB0cnVlLAorKwkJLnJvaQkJ ID0gdHJ1ZSwKKysJCX0sCisrCQl7CisrCQkubmFtZQkJID0gIk92ZXJsYXlfMiIsCisrCQkuaWQJ CQkJPSBPVkVSTEFZX1BMQU5FXzIsCisrCQkudHlwZQkJID0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxB WSwKKysJCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUocHJpbWFyeV9vdmVybGF5X2Zvcm1hdDEp LAorKwkJLmZvcm1hdHMJID0gcHJpbWFyeV9vdmVybGF5X2Zvcm1hdDEsCisrCQkubnVtX21vZGlm aWVycyA9IEFSUkFZX1NJWkUoZm9ybWF0X21vZGlmaWVyMSksCisrCQkubW9kaWZpZXJzCSA9IGZv cm1hdF9tb2RpZmllcjEsCisrCQkubWluX3dpZHRoCSA9IDAsCisrCQkubWluX2hlaWdodCAgPSAw LAorKwkJLm1heF93aWR0aAkgPSA0MDk2LAorKwkJLm1heF9oZWlnaHQgID0gNDA5NiwKKysJCS5y b3RhdGlvbgkgPSBEUk1fTU9ERV9ST1RBVEVfMCB8CisrCQkJCQkgICBEUk1fTU9ERV9ST1RBVEVf OTAgfAorKwkJCQkJICAgRFJNX01PREVfUk9UQVRFXzE4MCB8CisrCQkJCQkgICBEUk1fTU9ERV9S T1RBVEVfMjcwIHwKKysJCQkJCSAgIERSTV9NT0RFX1JFRkxFQ1RfWCB8CisrCQkJCQkgICBEUk1f TU9ERV9SRUZMRUNUX1ksCisrCQkuYmxlbmRfbW9kZSAgPSBCSVQoRFJNX01PREVfQkxFTkRfUElY RUxfTk9ORSkgfAorKwkJCQkJICAgQklUKERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKSB8CisrCQkJ CQkgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpLAorKwkJLmNvbG9yX2VuY29kaW5nID0g QklUKERSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkgfAorKwkJCQkJCSAgQklUKERSTV9DT0xPUl9ZQ0JD Ul9CVDIwMjApLAorKwkJLmRlZ2FtbWFfc2l6ZQk9IERFR0FNTUFfU0laRSwKKysJCS5taW5fc2Nh bGUJID0gRlJBQ18xNl8xNigxLCAzKSwKKysJCS5tYXhfc2NhbGUJID0gRlJBQ18xNl8xNigxMCwg MSksCisrCQkuenBvcwkJID0gNCwKKysJCS53YXRlcm1hcmsJID0gdHJ1ZSwKKysJCS5jb2xvcl9t Z210ICA9IHRydWUsCisrCQkucm9pCQkgPSB0cnVlLAorKwkJfSwKKysJCXsKKysJCS5uYW1lCQkg PSAiT3ZlcmxheV8zIiwKKysJCS5pZAkJCQk9IE9WRVJMQVlfUExBTkVfMywKKysJCS50eXBlCQkg PSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAorKwkJLm51bV9mb3JtYXRzID0gQVJSQVlfU0laRShw cmltYXJ5X292ZXJsYXlfZm9ybWF0MSksCisrCQkuZm9ybWF0cwkgPSBwcmltYXJ5X292ZXJsYXlf Zm9ybWF0MSwKKysJCS5udW1fbW9kaWZpZXJzID0gQVJSQVlfU0laRShzZWNvbmRhcnlfZm9ybWF0 X21vZGlmaWVycyksCisrCQkubW9kaWZpZXJzCSA9IHNlY29uZGFyeV9mb3JtYXRfbW9kaWZpZXJz LAorKwkJLm1pbl93aWR0aAkgPSAwLAorKwkJLm1pbl9oZWlnaHQgID0gMCwKKysJCS5tYXhfd2lk dGgJID0gNDA5NiwKKysJCS5tYXhfaGVpZ2h0ICA9IDQwOTYsCisrCQkucm90YXRpb24JID0gMCwK KysJCS5ibGVuZF9tb2RlICA9IEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8CisrCQkJ CQkgICBCSVQoRFJNX01PREVfQkxFTkRfUFJFTVVMVEkpIHwKKysJCQkJCSAgIEJJVChEUk1fTU9E RV9CTEVORF9DT1ZFUkFHRSksCisrCQkuY29sb3JfZW5jb2RpbmcgPSBCSVQoRFJNX0NPTE9SX1lD QkNSX0JUNzA5KSB8CisrCQkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUMjAyMCksCisrCQku ZGVnYW1tYV9zaXplCT0gREVHQU1NQV9TSVpFLAorKwkJLm1pbl9zY2FsZQkgPSBEUk1fUExBTkVf Tk9fU0NBTElORywKKysJCS5tYXhfc2NhbGUJID0gRFJNX1BMQU5FX05PX1NDQUxJTkcsCisrCQku enBvcwkJID0gNSwKKysJCS53YXRlcm1hcmsJID0gdHJ1ZSwKKysJCS5jb2xvcl9tZ210ICA9IHRy dWUsCisrCQkucm9pCQkgPSB0cnVlLAorKwkJfSwKKysJCXsKKysJCS5uYW1lCQkgPSAiQ3Vyc29y IiwKKysJCS5pZAkJCQk9IENVUlNPUl9QTEFORV8wLAorKwkJLnR5cGUJCSA9IERSTV9QTEFORV9U WVBFX0NVUlNPUiwKKysJCS5udW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoY3Vyc29yX2Zvcm1hdHMp LAorKwkJLmZvcm1hdHMJID0gY3Vyc29yX2Zvcm1hdHMsCisrCQkubnVtX21vZGlmaWVycyA9IDAs CisrCQkubW9kaWZpZXJzCSA9IE5VTEwsCisrCQkubWluX3dpZHRoCSA9IDMyLAorKwkJLm1pbl9o ZWlnaHQgID0gMzIsCisrCQkubWF4X3dpZHRoCSA9IDY0LAorKwkJLm1heF9oZWlnaHQgID0gNjQs CisrCQkucm90YXRpb24JID0gMCwKKysJCS5kZWdhbW1hX3NpemUgPSAwLAorKwkJLm1pbl9zY2Fs ZQkgPSBEUk1fUExBTkVfTk9fU0NBTElORywKKysJCS5tYXhfc2NhbGUJID0gRFJNX1BMQU5FX05P X1NDQUxJTkcsCisrCQkuenBvcwkJID0gMjU1LAorKwkJLndhdGVybWFyawkgPSBmYWxzZSwKKysJ CS5jb2xvcl9tZ210ICA9IGZhbHNlLAorKwkJLnJvaQkJID0gZmFsc2UsCisrCQl9LAorKwkJewor KwkJLm5hbWUJCSA9ICJDdXJzb3JfMSIsCisrCQkuaWQJCQkJPSBDVVJTT1JfUExBTkVfMSwKKysJ CS50eXBlCQkgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IsCisrCQkubnVtX2Zvcm1hdHMgPSBBUlJB WV9TSVpFKGN1cnNvcl9mb3JtYXRzKSwKKysJCS5mb3JtYXRzCSA9IGN1cnNvcl9mb3JtYXRzLAor KwkJLm51bV9tb2RpZmllcnMgPSAwLAorKwkJLm1vZGlmaWVycwkgPSBOVUxMLAorKwkJLm1pbl93 aWR0aAkgPSAzMiwKKysJCS5taW5faGVpZ2h0ICA9IDMyLAorKwkJLm1heF93aWR0aAkgPSA2NCwK KysJCS5tYXhfaGVpZ2h0ICA9IDY0LAorKwkJLnJvdGF0aW9uCSA9IDAsCisrCQkuZGVnYW1tYV9z aXplID0gMCwKKysJCS5taW5fc2NhbGUJID0gRFJNX1BMQU5FX05PX1NDQUxJTkcsCisrCQkubWF4 X3NjYWxlCSA9IERSTV9QTEFORV9OT19TQ0FMSU5HLAorKwkJLnpwb3MJCSA9IDI1NSwKKysJCS53 YXRlcm1hcmsJID0gZmFsc2UsCisrCQkuY29sb3JfbWdtdCAgPSBmYWxzZSwKKysJCS5yb2kJCSA9 IGZhbHNlLAorKwkJfSwKKysJfSwKKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdnNfZGNf aW5mbyBkY19pbmZvW10gPSB7CisrCXsKKysJCS8qIERDX1JFVl8wICovCisrCQkubmFtZQkJCT0g IkRDODIwMCIsCisrCQkucGFuZWxfbnVtCQk9IDIsCisrCQkucGxhbmVfbnVtCQk9IDgsCisrCQku cGxhbmVzCQkJPSBkY19od19wbGFuZXNbRENfUkVWXzBdLAorKwkJLmxheWVyX251bQkJPSA2LAor KwkJLm1heF9icGMJCT0gMTAsCisrCQkuY29sb3JfZm9ybWF0cwk9IERSTV9DT0xPUl9GT1JNQVRf UkdCNDQ0IHwKKysJCQkJCQkgIERSTV9DT0xPUl9GT1JNQVRfWUNCQ1I0NDQgfAorKwkJCQkJCSAg RFJNX0NPTE9SX0ZPUk1BVF9ZQ0JDUjQyMiB8CisrCQkJCQkJICBEUk1fQ09MT1JfRk9STUFUX1lD QkNSNDIwLAorKwkJLmdhbW1hX3NpemUJCT0gR0FNTUFfRVhfU0laRSwKKysJCS5nYW1tYV9iaXRz CQk9IDEyLAorKwkJLnBpdGNoX2FsaWdubWVudAk9IDEyOCwKKysJCS5waXBlX3N5bmMJCT0gZmFs c2UsCisrCQkubW11X3ByZWZldGNoCT0gZmFsc2UsCisrCQkuYmFja2dyb3VuZAkJPSB0cnVlLAor KwkJLnBhbmVsX3N5bmMJCT0gdHJ1ZSwKKysJCS5jYXBfZGVjCQk9IHRydWUsCisrCX0sCisrCXsK KysJCS8qIERDX1JFVl8xICovCisrCQkubmFtZQkJCT0gIkRDODIwMCIsCisrCQkucGFuZWxfbnVt CQk9IDIsCisrCQkucGxhbmVfbnVtCQk9IDYsCisrCQkucGxhbmVzCQkJPSBkY19od19wbGFuZXNb RENfUkVWXzFdLAorKwkJLmxheWVyX251bQkJPSA0LAorKwkJLm1heF9icGMJCT0gMTAsCisrCQku Y29sb3JfZm9ybWF0cwk9IERSTV9DT0xPUl9GT1JNQVRfUkdCNDQ0IHwKKysJCQkJCQkgIERSTV9D T0xPUl9GT1JNQVRfWUNCQ1I0NDQgfAorKwkJCQkJCSAgRFJNX0NPTE9SX0ZPUk1BVF9ZQ0JDUjQy MiB8CisrCQkJCQkJICBEUk1fQ09MT1JfRk9STUFUX1lDQkNSNDIwLAorKwkJLmdhbW1hX3NpemUJ CT0gR0FNTUFfRVhfU0laRSwKKysJCS5nYW1tYV9iaXRzCQk9IDEyLAorKwkJLnBpdGNoX2FsaWdu bWVudAk9IDEyOCwKKysJCS5waXBlX3N5bmMJCT0gZmFsc2UsCisrCQkubW11X3ByZWZldGNoCT0g ZmFsc2UsCisrCQkuYmFja2dyb3VuZAkJPSB0cnVlLAorKwkJLnBhbmVsX3N5bmMJCT0gdHJ1ZSwK KysJCS5jYXBfZGVjCQk9IHRydWUsCisrCX0sCisrCXsKKysJCS8qIERDX1JFVl8yICovCisrCQku bmFtZQkJCT0gIkRDODIwMCIsCisrCQkucGFuZWxfbnVtCQk9IDIsCisrCQkucGxhbmVfbnVtCQk9 IDgsCisrCQkucGxhbmVzCQkJPSBkY19od19wbGFuZXNbRENfUkVWXzJdLAorKwkJLmxheWVyX251 bQkJPSA2LAorKwkJLm1heF9icGMJCT0gMTAsCisrCQkuY29sb3JfZm9ybWF0cwk9IERSTV9DT0xP Ul9GT1JNQVRfUkdCNDQ0IHwKKysJCQkJCQkgIERSTV9DT0xPUl9GT1JNQVRfWUNCQ1I0NDQgfAor KwkJCQkJCSAgRFJNX0NPTE9SX0ZPUk1BVF9ZQ0JDUjQyMiB8CisrCQkJCQkJICBEUk1fQ09MT1Jf Rk9STUFUX1lDQkNSNDIwLAorKwkJLmdhbW1hX3NpemUJCT0gR0FNTUFfRVhfU0laRSwKKysJCS5n YW1tYV9iaXRzCQk9IDEyLAorKwkJLnBpdGNoX2FsaWdubWVudAk9IDEyOCwKKysJCS5waXBlX3N5 bmMJCT0gZmFsc2UsCisrCQkubW11X3ByZWZldGNoCT0gZmFsc2UsCisrCQkuYmFja2dyb3VuZAkJ PSB0cnVlLAorKwkJLnBhbmVsX3N5bmMJCT0gdHJ1ZSwKKysJCS5jYXBfZGVjCQk9IGZhbHNlLAor Kwl9LAorK307CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkY19od19mdW5jcyBod19mdW5jOwor KworK3N0YXRpYyBpbmxpbmUgdTMyIGhpX3JlYWQoc3RydWN0IGRjX2h3ICpodywgdTMyIHJlZykK Kyt7CisrCXJldHVybiByZWFkbChody0+aGlfYmFzZSArIHJlZyk7CisrfQorKworK3N0YXRpYyBp bmxpbmUgdm9pZCBoaV93cml0ZShzdHJ1Y3QgZGNfaHcgKmh3LCB1MzIgcmVnLCB1MzIgdmFsdWUp CisreworKwl3cml0ZWwodmFsdWUsIGh3LT5oaV9iYXNlICsgcmVnKTsKKyt9CisrCisrc3RhdGlj IGlubGluZSB2b2lkIGRjX3dyaXRlKHN0cnVjdCBkY19odyAqaHcsIHUzMiByZWcsIHUzMiB2YWx1 ZSkKKyt7CisrCXdyaXRlbCh2YWx1ZSwgaHctPnJlZ19iYXNlICsgcmVnIC0gRENfUkVHX0JBU0Up OworK30KKysKKytzdGF0aWMgaW5saW5lIHUzMiBkY19yZWFkKHN0cnVjdCBkY19odyAqaHcsIHUz MiByZWcpCisreworKwl1MzIgdmFsdWUgPSByZWFkbChody0+cmVnX2Jhc2UgKyByZWcgLSBEQ19S RUdfQkFTRSk7CisrCisrCXJldHVybiB2YWx1ZTsKKyt9CisrCisrc3RhdGljIGlubGluZSB2b2lk IGRjX3NldF9jbGVhcihzdHJ1Y3QgZGNfaHcgKmh3LCB1MzIgcmVnLCB1MzIgc2V0LCB1MzIgY2xl YXIpCisreworKwl1MzIgdmFsdWUgPSBkY19yZWFkKGh3LCByZWcpOworKworKwl2YWx1ZSAmPSB+ Y2xlYXI7CisrCXZhbHVlIHw9IHNldDsKKysJZGNfd3JpdGUoaHcsIHJlZywgdmFsdWUpOworK30K KysKKytzdGF0aWMgdm9pZCBsb2FkX2RlZmF1bHRfZmlsdGVyKHN0cnVjdCBkY19odyAqaHcsCisr CQkJCWNvbnN0IHN0cnVjdCBkY19od19wbGFuZV9yZWcgKnJlZywgdTMyIG9mZnNldCkKKyt7Cisr CXU4IGk7CisrCisrCWRjX3dyaXRlKGh3LCByZWctPnNjYWxlX2NvbmZpZyArIG9mZnNldCwgMHgz Myk7CisrCWRjX3dyaXRlKGh3LCByZWctPmluaXRfb2Zmc2V0ICsgb2Zmc2V0LCAweDgwMDA4MDAw KTsKKysJZGNfd3JpdGUoaHcsIHJlZy0+aF9maWx0ZXJfY29lZl9pbmRleCArIG9mZnNldCwgMHgw MCk7CisrCWZvciAoaSA9IDA7IGkgPCBIX0NPRUZfU0laRTsgaSsrKQorKwkJZGNfd3JpdGUoaHcs IHJlZy0+aF9maWx0ZXJfY29lZl9kYXRhICsgb2Zmc2V0LCBob3JrZXJuZWxbaV0pOworKworKwlk Y193cml0ZShodywgcmVnLT52X2ZpbHRlcl9jb2VmX2luZGV4ICsgb2Zmc2V0LCAweDAwKTsKKysJ Zm9yIChpID0gMDsgaSA8IFZfQ09FRl9TSVpFOyBpKyspCisrCQlkY193cml0ZShodywgcmVnLT52 X2ZpbHRlcl9jb2VmX2RhdGEgKyBvZmZzZXQsIHZlcmtlcm5lbFtpXSk7CisrfQorKworK3N0YXRp YyB2b2lkIGxvYWRfcmdiX3RvX3JnYihzdHJ1Y3QgZGNfaHcgKmh3LCBjb25zdCBzdHJ1Y3QgZGNf aHdfcGxhbmVfcmVnICpyZWcsCisrCQkJICAgIHUzMiBvZmZzZXQsIHUxNiAqdGFibGUpCisrewor KwlkY193cml0ZShodywgcmVnLT5yZ2JfdG9fcmdiX2NvZWYwICsgb2Zmc2V0LCB0YWJsZVswXSB8 ICh0YWJsZVsxXSA8PCAxNikpOworKwlkY193cml0ZShodywgcmVnLT5yZ2JfdG9fcmdiX2NvZWYx ICsgb2Zmc2V0LCB0YWJsZVsyXSB8ICh0YWJsZVszXSA8PCAxNikpOworKwlkY193cml0ZShodywg cmVnLT5yZ2JfdG9fcmdiX2NvZWYyICsgb2Zmc2V0LCB0YWJsZVs0XSB8ICh0YWJsZVs1XSA8PCAx NikpOworKwlkY193cml0ZShodywgcmVnLT5yZ2JfdG9fcmdiX2NvZWYzICsgb2Zmc2V0LCB0YWJs ZVs2XSB8ICh0YWJsZVs3XSA8PCAxNikpOworKwlkY193cml0ZShodywgcmVnLT5yZ2JfdG9fcmdi X2NvZWY0ICsgb2Zmc2V0LCB0YWJsZVs4XSk7CisrfQorKworK3N0YXRpYyB2b2lkIGxvYWRfeXV2 X3RvX3JnYihzdHJ1Y3QgZGNfaHcgKmh3LCBjb25zdCBzdHJ1Y3QgZGNfaHdfcGxhbmVfcmVnICpy ZWcsCisrCQkJICAgIHUzMiBvZmZzZXQsIHMzMiAqdGFibGUpCisreworKwlkY193cml0ZShodywg cmVnLT55dXZfdG9fcmdiX2NvZWYwICsgb2Zmc2V0LAorKwkJICgweEZGRkYgJiB0YWJsZVswXSkg fCAodGFibGVbMV0gPDwgMTYpKTsKKysJZGNfd3JpdGUoaHcsIHJlZy0+eXV2X3RvX3JnYl9jb2Vm MSArIG9mZnNldCwKKysJCSAoMHhGRkZGICYgdGFibGVbMl0pIHwgKHRhYmxlWzNdIDw8IDE2KSk7 CisrCWRjX3dyaXRlKGh3LCByZWctPnl1dl90b19yZ2JfY29lZjIgKyBvZmZzZXQsCisrCQkgKDB4 RkZGRiAmIHRhYmxlWzRdKSB8ICh0YWJsZVs1XSA8PCAxNikpOworKwlkY193cml0ZShodywgcmVn LT55dXZfdG9fcmdiX2NvZWYzICsgb2Zmc2V0LAorKwkJICgweEZGRkYgJiB0YWJsZVs2XSkgfCAo dGFibGVbN10gPDwgMTYpKTsKKysJZGNfd3JpdGUoaHcsIHJlZy0+eXV2X3RvX3JnYl9jb2VmNCAr IG9mZnNldCwgdGFibGVbOF0pOworKwlkY193cml0ZShodywgcmVnLT55dXZfdG9fcmdiX2NvZWZk MCArIG9mZnNldCwgdGFibGVbOV0pOworKwlkY193cml0ZShodywgcmVnLT55dXZfdG9fcmdiX2Nv ZWZkMSArIG9mZnNldCwgdGFibGVbMTBdKTsKKysJZGNfd3JpdGUoaHcsIHJlZy0+eXV2X3RvX3Jn Yl9jb2VmZDIgKyBvZmZzZXQsIHRhYmxlWzExXSk7CisrCWRjX3dyaXRlKGh3LCByZWctPnlfY2xh bXBfYm91bmQgKyBvZmZzZXQsIHRhYmxlWzEyXSB8ICh0YWJsZVsxM10gPDwgMTYpKTsKKysJZGNf d3JpdGUoaHcsIHJlZy0+dXZfY2xhbXBfYm91bmQgKyBvZmZzZXQsIHRhYmxlWzE0XSB8ICh0YWJs ZVsxNV0gPDwgMTYpKTsKKyt9CisrCisrc3RhdGljIHZvaWQgbG9hZF9yZ2JfdG9feXV2KHN0cnVj dCBkY19odyAqaHcsIHUzMiBvZmZzZXQsIHMxNiAqdGFibGUpCisreworKwlkY193cml0ZShodywg RENfRElTUExBWV9SR0JUT1lVVl9DT0VGMCArIG9mZnNldCwKKysJCSB0YWJsZVswXSB8ICh0YWJs ZVsxXSA8PCAxNikpOworKwlkY193cml0ZShodywgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGMSAr IG9mZnNldCwKKysJCSB0YWJsZVsyXSB8ICh0YWJsZVszXSA8PCAxNikpOworKwlkY193cml0ZSho dywgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGMiArIG9mZnNldCwKKysJCSB0YWJsZVs0XSB8ICh0 YWJsZVs1XSA8PCAxNikpOworKwlkY193cml0ZShodywgRENfRElTUExBWV9SR0JUT1lVVl9DT0VG MyArIG9mZnNldCwKKysJCSB0YWJsZVs2XSB8ICh0YWJsZVs3XSA8PCAxNikpOworKwlkY193cml0 ZShodywgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGNCArIG9mZnNldCwgdGFibGVbOF0pOworKwlk Y193cml0ZShodywgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGRDAgKyBvZmZzZXQsIHRhYmxlWzld KTsKKysJZGNfd3JpdGUoaHcsIERDX0RJU1BMQVlfUkdCVE9ZVVZfQ09FRkQxICsgb2Zmc2V0LCB0 YWJsZVsxMF0pOworKwlkY193cml0ZShodywgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGRDIgKyBv ZmZzZXQsIHRhYmxlWzExXSk7CisrfQorKworK3N0YXRpYyBib29sIGlzX3JnYihlbnVtIGRjX2h3 X2NvbG9yX2Zvcm1hdCBmb3JtYXQpCisreworKwlzd2l0Y2ggKGZvcm1hdCkgeworKwljYXNlIEZP Uk1BVF9YNFI0RzRCNDoKKysJY2FzZSBGT1JNQVRfQTRSNEc0QjQ6CisrCWNhc2UgRk9STUFUX1gx UjVHNUI1OgorKwljYXNlIEZPUk1BVF9BMVI1RzVCNToKKysJY2FzZSBGT1JNQVRfUjVHNkI1Ogor KwljYXNlIEZPUk1BVF9YOFI4RzhCODoKKysJY2FzZSBGT1JNQVRfQThSOEc4Qjg6CisrCWNhc2Ug Rk9STUFUX0EyUjEwRzEwQjEwOgorKwkJcmV0dXJuIHRydWU7CisrCWRlZmF1bHQ6CisrCQlyZXR1 cm4gZmFsc2U7CisrCX0KKyt9CisrCisrc3RhdGljIHZvaWQgbG9hZF9kZWdhbW1hX3RhYmxlKHN0 cnVjdCBkY19odyAqaHcsCisrCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkY19od19wbGFuZV9yZWcg KnJlZywKKysJCQkgICAgICAgdTMyIG9mZnNldCwgdTE2ICp0YWJsZSkKKyt7CisrCXUxNiBpOwor Kwl1MzIgdmFsdWU7CisrCisrCWRjX3dyaXRlKGh3LCByZWctPmRlZ2FtbWFfaW5kZXggKyBvZmZz ZXQsIDApOworKworKwlmb3IgKGkgPSAwOyBpIDwgREVHQU1NQV9TSVpFOyBpKyspIHsKKysJCXZh bHVlID0gdGFibGVbaV0gfCAodGFibGVbaV0gPDwgMTYpOworKwkJZGNfd3JpdGUoaHcsIHJlZy0+ ZGVnYW1tYV9kYXRhICsgb2Zmc2V0LCB2YWx1ZSk7CisrCQlkY193cml0ZShodywgcmVnLT5kZWdh bW1hX2V4X2RhdGEgKyBvZmZzZXQsIHRhYmxlW2ldKTsKKysJfQorK30KKysKKytzdGF0aWMgdTMy IGdldF9hZGRyX29mZnNldCh1MzIgaWQpCisreworKwl1MzIgb2Zmc2V0ID0gMDsKKysKKysJc3dp dGNoIChpZCkgeworKwljYXNlIFBSSU1BUllfUExBTkVfMToKKysJY2FzZSBPVkVSTEFZX1BMQU5F XzE6CisrCQlvZmZzZXQgPSAweDA0OworKwkJYnJlYWs7CisrCWNhc2UgT1ZFUkxBWV9QTEFORV8y OgorKwkJb2Zmc2V0ID0gMHgwODsKKysJCWJyZWFrOworKwljYXNlIE9WRVJMQVlfUExBTkVfMzoK KysJCW9mZnNldCA9IDB4MEM7CisrCQlicmVhazsKKysJZGVmYXVsdDoKKysJCWJyZWFrOworKwl9 CisrCisrCXJldHVybiBvZmZzZXQ7CisrfQorKworK2ludCBkY19od19pbml0KHN0cnVjdCBkY19o dyAqaHcpCisreworKwl1OCBpLCBpZCwgcGFuZWxfbnVtLCBsYXllcl9udW07CisrCXUzMiBvZmZz ZXQ7CisrCXUzMiByZXZpc2lvbiA9IGhpX3JlYWQoaHcsIERDX0hXX1JFVklTSU9OKTsKKysJdTMy IGNpZCA9IGhpX3JlYWQoaHcsIERDX0hXX0NISVBfQ0lEKTsKKysJY29uc3Qgc3RydWN0IGRjX2h3 X3BsYW5lX3JlZyAqcmVnOworKworKwlzd2l0Y2ggKHJldmlzaW9uKSB7CisrCWNhc2UgMHg1NzIw OgorKwkJaHctPnJldiA9IERDX1JFVl8wOworKwkJYnJlYWs7CisrCWNhc2UgMHg1NzIxOgorKwkJ c3dpdGNoIChjaWQpIHsKKysJCWNhc2UgMHgzMEI6CisrCQkJaHctPnJldiA9IERDX1JFVl8xOwor KwkJCWJyZWFrOworKwkJY2FzZSAweDMxMDoKKysJCQlody0+cmV2ID0gRENfUkVWXzI7CisrCQkJ YnJlYWs7CisrCQlkZWZhdWx0OgorKwkJCWh3LT5yZXYgPSBEQ19SRVZfMDsKKysJCQlicmVhazsK KysJCX0KKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJcmV0dXJuIC1FTlhJTzsKKysJfQorKwor Kwlody0+aW5mbyA9IChzdHJ1Y3QgdnNfZGNfaW5mbyAqKSZkY19pbmZvW2h3LT5yZXZdOworKwlo dy0+ZnVuYyA9IChzdHJ1Y3QgZGNfaHdfZnVuY3MgKikmaHdfZnVuYzsKKysKKysJbGF5ZXJfbnVt ID0gaHctPmluZm8tPmxheWVyX251bTsKKysJZm9yIChpID0gMDsgaSA8IGxheWVyX251bTsgaSsr KSB7CisrCQlpZCA9IGh3LT5pbmZvLT5wbGFuZXNbaV0uaWQ7CisrCQlvZmZzZXQgPSBnZXRfYWRk cl9vZmZzZXQoaWQpOworKwkJaWYgKGlkID09IFBSSU1BUllfUExBTkVfMCB8fCBpZCA9PSBQUklN QVJZX1BMQU5FXzEpCisrCQkJcmVnID0gJmRjX3BsYW5lX3JlZ1swXTsKKysJCWVsc2UKKysJCQly ZWcgPSAmZGNfcGxhbmVfcmVnWzFdOworKworKwkJbG9hZF9kZWZhdWx0X2ZpbHRlcihodywgcmVn LCBvZmZzZXQpOworKwkJbG9hZF9yZ2JfdG9fcmdiKGh3LCByZWcsIG9mZnNldCwgUkdCMlJHQik7 CisrCX0KKysKKysJcGFuZWxfbnVtID0gaHctPmluZm8tPnBhbmVsX251bTsKKysJZm9yIChpID0g MDsgaSA8IHBhbmVsX251bTsgaSsrKSB7CisrCQlvZmZzZXQgPSBpIDw8IDI7CisrCisrCQlsb2Fk X3JnYl90b195dXYoaHcsIG9mZnNldCwgUkdCMllVVik7CisrCQlkY193cml0ZShodywgRENfRElT UExBWV9QQU5FTF9DT05GSUcgKyBvZmZzZXQsIDB4MTExKTsKKysKKysJCW9mZnNldCA9IGkgPyBE Q19DVVJTT1JfT0ZGU0VUIDogMDsKKysJCWRjX3dyaXRlKGh3LCBEQ19DVVJTT1JfQkFDS0dST1VO RCArIG9mZnNldCwgMHgwMEZGRkZGRik7CisrCQlkY193cml0ZShodywgRENfQ1VSU09SX0ZPUkVH Uk9VTkQgKyBvZmZzZXQsIDB4MDBBQUFBQUEpOworKwl9CisrCisrCXJldHVybiAwOworK30KKysK Kyt2b2lkIGRjX2h3X2RlaW5pdChzdHJ1Y3QgZGNfaHcgKmh3KQorK3sKKysJLyogTm90aGluZyB0 byBkbyAqLworK30KKysKKyt2b2lkIGRjX2h3X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZGNfaHcgKmh3 LCB1OCBpZCwKKysJCQlzdHJ1Y3QgZGNfaHdfZmIgKmZiLCBzdHJ1Y3QgZGNfaHdfc2NhbGUgKnNj YWxlLAorKwkJCXN0cnVjdCBkY19od19wb3NpdGlvbiAqcG9zLCBzdHJ1Y3QgZGNfaHdfYmxlbmQg KmJsZW5kKQorK3sKKysJc3RydWN0IGRjX2h3X3BsYW5lICpwbGFuZSA9ICZody0+cGxhbmVbaWRd OworKworKwlpZiAocGxhbmUpIHsKKysJCWlmIChmYikgeworKwkJCWlmICghZmItPmVuYWJsZSkK KysJCQkJcGxhbmUtPmZiLmVuYWJsZSA9IGZhbHNlOworKwkJCWVsc2UKKysJCQkJbWVtY3B5KCZw bGFuZS0+ZmIsIGZiLAorKwkJCQkgICAgICAgc2l6ZW9mKCpmYikgLSBzaXplb2YoZmItPmRpcnR5 KSk7CisrCQkJcGxhbmUtPmZiLmRpcnR5ID0gdHJ1ZTsKKysJCX0KKysJCWlmIChzY2FsZSkgewor KwkJCW1lbWNweSgmcGxhbmUtPnNjYWxlLCBzY2FsZSwKKysJCQkgICAgICAgc2l6ZW9mKCpzY2Fs ZSkgLSBzaXplb2Yoc2NhbGUtPmRpcnR5KSk7CisrCQkJcGxhbmUtPnNjYWxlLmRpcnR5ID0gdHJ1 ZTsKKysJCX0KKysJCWlmIChwb3MpIHsKKysJCQltZW1jcHkoJnBsYW5lLT5wb3MsIHBvcywKKysJ CQkgICAgICAgc2l6ZW9mKCpwb3MpIC0gc2l6ZW9mKHBvcy0+ZGlydHkpKTsKKysJCQlwbGFuZS0+ cG9zLmRpcnR5ID0gdHJ1ZTsKKysJCX0KKysJCWlmIChibGVuZCkgeworKwkJCW1lbWNweSgmcGxh bmUtPmJsZW5kLCBibGVuZCwKKysJCQkgICAgICAgc2l6ZW9mKCpibGVuZCkgLSBzaXplb2YoYmxl bmQtPmRpcnR5KSk7CisrCQkJcGxhbmUtPmJsZW5kLmRpcnR5ID0gdHJ1ZTsKKysJCX0KKysJfQor K30KKysKKyt2b2lkIGRjX2h3X3VwZGF0ZV9kZWdhbW1hKHN0cnVjdCBkY19odyAqaHcsIHU4IGlk LCB1MzIgbW9kZSkKKyt7CisrCXN0cnVjdCBkY19od19wbGFuZSAqcGxhbmUgPSAmaHctPnBsYW5l W2lkXTsKKysKKysJaWYgKHBsYW5lKSB7CisrCQlpZiAoaHctPmluZm8tPnBsYW5lc1tpZF0uZGVn YW1tYV9zaXplKSB7CisrCQkJcGxhbmUtPmRlZ2FtbWEubW9kZSA9IG1vZGU7CisrCQkJcGxhbmUt PmRlZ2FtbWEuZGlydHkgPSB0cnVlOworKwkJfSBlbHNlIHsKKysJCQlwbGFuZS0+ZGVnYW1tYS5k aXJ0eSA9IGZhbHNlOworKwkJfQorKwl9CisrfQorKworK3ZvaWQgZGNfaHdfdXBkYXRlX3JvaShz dHJ1Y3QgZGNfaHcgKmh3LCB1OCBpZCwgc3RydWN0IGRjX2h3X3JvaSAqcm9pKQorK3sKKysJc3Ry dWN0IGRjX2h3X3BsYW5lICpwbGFuZSA9ICZody0+cGxhbmVbaWRdOworKworKwlpZiAocGxhbmUp IHsKKysJCW1lbWNweSgmcGxhbmUtPnJvaSwgcm9pLCBzaXplb2YoKnJvaSkgLSBzaXplb2Yocm9p LT5kaXJ0eSkpOworKwkJcGxhbmUtPnJvaS5kaXJ0eSA9IHRydWU7CisrCX0KKyt9CisrCisrdm9p ZCBkY19od191cGRhdGVfY29sb3JrZXkoc3RydWN0IGRjX2h3ICpodywgdTggaWQsCisrCQkJICAg c3RydWN0IGRjX2h3X2NvbG9ya2V5ICpjb2xvcmtleSkKKyt7CisrCXN0cnVjdCBkY19od19wbGFu ZSAqcGxhbmUgPSAmaHctPnBsYW5lW2lkXTsKKysKKysJaWYgKHBsYW5lKSB7CisrCQltZW1jcHko JnBsYW5lLT5jb2xvcmtleSwgY29sb3JrZXksCisrCQkgICAgICAgc2l6ZW9mKCpjb2xvcmtleSkg LSBzaXplb2YoY29sb3JrZXktPmRpcnR5KSk7CisrCQlwbGFuZS0+Y29sb3JrZXkuZGlydHkgPSB0 cnVlOworKwl9CisrfQorKworK3ZvaWQgZGNfaHdfdXBkYXRlX3FvcyhzdHJ1Y3QgZGNfaHcgKmh3 LCBzdHJ1Y3QgZGNfaHdfcW9zICpxb3MpCisreworKwltZW1jcHkoJmh3LT5xb3MsIHFvcywgc2l6 ZW9mKCpxb3MpIC0gc2l6ZW9mKHFvcy0+ZGlydHkpKTsKKysJaHctPnFvcy5kaXJ0eSA9IHRydWU7 CisrfQorKworK3ZvaWQgZGNfaHdfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZGNfaHcgKmh3LCB1OCBp ZCwgc3RydWN0IGRjX2h3X2N1cnNvciAqY3Vyc29yKQorK3sKKysJbWVtY3B5KCZody0+Y3Vyc29y W2lkXSwgY3Vyc29yLCBzaXplb2YoKmN1cnNvcikgLSBzaXplb2YoY3Vyc29yLT5kaXJ0eSkpOwor Kwlody0+Y3Vyc29yW2lkXS5kaXJ0eSA9IHRydWU7CisrfQorKworK3ZvaWQgZGNfaHdfdXBkYXRl X2dhbW1hKHN0cnVjdCBkY19odyAqaHcsIHU4IGlkLCB1MTYgaW5kZXgsCisrCQkJdTE2IHIsIHUx NiBnLCB1MTYgYikKKyt7CisrCWlmIChpbmRleCA+PSBody0+aW5mby0+Z2FtbWFfc2l6ZSkKKysJ CXJldHVybjsKKysKKysJaHctPmdhbW1hW2lkXS5nYW1tYVtpbmRleF1bMF0gPSByOworKwlody0+ Z2FtbWFbaWRdLmdhbW1hW2luZGV4XVsxXSA9IGc7CisrCWh3LT5nYW1tYVtpZF0uZ2FtbWFbaW5k ZXhdWzJdID0gYjsKKysJaHctPmdhbW1hW2lkXS5kaXJ0eSA9IHRydWU7CisrfQorKworK3ZvaWQg ZGNfaHdfZW5hYmxlX2dhbW1hKHN0cnVjdCBkY19odyAqaHcsIHU4IGlkLCBib29sIGVuYWJsZSkK Kyt7CisrCWh3LT5nYW1tYVtpZF0uZW5hYmxlID0gZW5hYmxlOworKwlody0+Z2FtbWFbaWRdLmRp cnR5ID0gdHJ1ZTsKKyt9CisrCisrdm9pZCBkY19od19zZXR1cF9kaXNwbGF5KHN0cnVjdCBkY19o dyAqaHcsIHN0cnVjdCBkY19od19kaXNwbGF5ICpkaXNwbGF5KQorK3sKKysJdTggaWQgPSBkaXNw bGF5LT5pZDsKKysKKysJbWVtY3B5KCZody0+ZGlzcGxheVtpZF0sIGRpc3BsYXksIHNpemVvZigq ZGlzcGxheSkpOworKworKwlody0+ZnVuYy0+ZGlzcGxheShodywgZGlzcGxheSk7CisrfQorKwor K3ZvaWQgZGNfaHdfZW5hYmxlX2ludGVycnVwdChzdHJ1Y3QgZGNfaHcgKmh3LCBib29sIGVuYWJs ZSkKKyt7CisrCWlmIChlbmFibGUpCisrCQloaV93cml0ZShodywgQVFfSU5UUl9FTkJMLCAweEZG RkZGRkZGKTsKKysJZWxzZQorKwkJaGlfd3JpdGUoaHcsIEFRX0lOVFJfRU5CTCwgMCk7CisrfQor KworK3UzMiBkY19od19nZXRfaW50ZXJydXB0KHN0cnVjdCBkY19odyAqaHcpCisreworKwlyZXR1 cm4gaGlfcmVhZChodywgQVFfSU5UUl9BQ0tOT1dMRURHRSk7CisrfQorKworK2Jvb2wgZGNfaHdf Y2hlY2tfdW5kZXJmbG93KHN0cnVjdCBkY19odyAqaHcpCisreworKwlyZXR1cm4gZGNfcmVhZCho dywgRENfRlJBTUVCVUZGRVJfQ09ORklHKSAmIEJJVCg1KTsKKyt9CisrCisrdm9pZCBkY19od19l bmFibGVfc2hhZG93X3JlZ2lzdGVyKHN0cnVjdCBkY19odyAqaHcsIGJvb2wgZW5hYmxlKQorK3sK KysJdTMyIGksIG9mZnNldDsKKysJdTggaWQsIGxheWVyX251bSA9IGh3LT5pbmZvLT5sYXllcl9u dW07CisrCXU4IHBhbmVsX251bSA9IGh3LT5pbmZvLT5wYW5lbF9udW07CisrCisrCWZvciAoaSA9 IDA7IGkgPCBsYXllcl9udW07IGkrKykgeworKwkJaWQgPSBody0+aW5mby0+cGxhbmVzW2ldLmlk OworKwkJb2Zmc2V0ID0gZ2V0X2FkZHJfb2Zmc2V0KGlkKTsKKysJCWlmIChlbmFibGUpIHsKKysJ CQlpZiAoaWQgPT0gUFJJTUFSWV9QTEFORV8wIHx8IGlkID09IFBSSU1BUllfUExBTkVfMSkKKysJ CQkJZGNfc2V0X2NsZWFyKGh3LCBEQ19GUkFNRUJVRkZFUl9DT05GSUdfRVggKyBvZmZzZXQsIEJJ VCgxMiksIDApOworKwkJCWVsc2UKKysJCQkJZGNfc2V0X2NsZWFyKGh3LCBEQ19PVkVSTEFZX0NP TkZJRyArIG9mZnNldCwgQklUKDMxKSwgMCk7CisrCQl9IGVsc2UgeworKwkJCWlmIChpZCA9PSBQ UklNQVJZX1BMQU5FXzAgfHwgaWQgPT0gUFJJTUFSWV9QTEFORV8xKQorKwkJCQlkY19zZXRfY2xl YXIoaHcsIERDX0ZSQU1FQlVGRkVSX0NPTkZJR19FWCArIG9mZnNldCwgMCwgQklUKDEyKSk7Cisr CQkJZWxzZQorKwkJCQlkY19zZXRfY2xlYXIoaHcsIERDX09WRVJMQVlfQ09ORklHICsgb2Zmc2V0 LCAwLCBCSVQoMzEpKTsKKysJCX0KKysJfQorKworKwlmb3IgKGkgPSAwOyBpIDwgcGFuZWxfbnVt OyBpKyspIHsKKysJCW9mZnNldCA9IGkgPDwgMjsKKysJCWlmIChlbmFibGUpCisrCQkJZGNfc2V0 X2NsZWFyKGh3LCBEQ19ESVNQTEFZX1BBTkVMX0NPTkZJR19FWCArIG9mZnNldCwgMCwgQklUKDAp KTsKKysJCWVsc2UKKysJCQlkY19zZXRfY2xlYXIoaHcsIERDX0RJU1BMQVlfUEFORUxfQ09ORklH X0VYICsgb2Zmc2V0LCBCSVQoMCksIDApOworKwl9CisrfQorKworK3ZvaWQgZGNfaHdfc2V0X291 dChzdHJ1Y3QgZGNfaHcgKmh3LCBlbnVtIGRjX2h3X291dCBvdXQsIHU4IGlkKQorK3sKKysJaWYg KG91dCA8PSBPVVRfRFApCisrCQlody0+b3V0W2lkXSA9IG91dDsKKyt9CisrCisrc3RhdGljIHZv aWQgZ2FtbWFfZXhfY29tbWl0KHN0cnVjdCBkY19odyAqaHcpCisreworKwl1OCBwYW5lbF9udW0g PSBody0+aW5mby0+cGFuZWxfbnVtOworKwl1MTYgaSwgajsKKysJdTMyIHZhbHVlOworKworKwlm b3IgKGogPSAwOyBqIDwgcGFuZWxfbnVtOyBqKyspIHsKKysJCWlmIChody0+Z2FtbWFbal0uZGly dHkpIHsKKysJCQlpZiAoaHctPmdhbW1hW2pdLmVuYWJsZSkgeworKwkJCQlkY193cml0ZShodywg RENfRElTUExBWV9HQU1NQV9FWF9JTkRFWCArIChqIDw8IDIpLCAweDAwKTsKKysJCQkJZm9yIChp ID0gMDsgaSA8IEdBTU1BX0VYX1NJWkU7IGkrKykgeworKwkJCQkJdmFsdWUgPSBody0+Z2FtbWFb al0uZ2FtbWFbaV1bMl0gfAorKwkJCQkJCShody0+Z2FtbWFbal0uZ2FtbWFbaV1bMV0gPDwgMTIp OworKwkJCQkJZGNfd3JpdGUoaHcsIERDX0RJU1BMQVlfR0FNTUFfRVhfREFUQSArIChqIDw8IDIp LCB2YWx1ZSk7CisrCQkJCQlkY193cml0ZShodywgRENfRElTUExBWV9HQU1NQV9FWF9PTkVfREFU QSArIChqIDw8IDIpLAorKwkJCQkJCSBody0+Z2FtbWFbal0uZ2FtbWFbaV1bMF0pOworKwkJCQl9 CisrCQkJCWRjX3NldF9jbGVhcihodywgRENfRElTUExBWV9QQU5FTF9DT05GSUcgKyAoaiA8PCAy KSwKKysJCQkJCSAgICAgQklUKDEzKSwgMCk7CisrCQkJfSBlbHNlIHsKKysJCQkJZGNfc2V0X2Ns ZWFyKGh3LCBEQ19ESVNQTEFZX1BBTkVMX0NPTkZJRyArIChqIDw8IDIpLAorKwkJCQkJICAgICAw LCBCSVQoMTMpKTsKKysJCQl9CisrCQkJaHctPmdhbW1hW2pdLmRpcnR5ID0gZmFsc2U7CisrCQl9 CisrCX0KKyt9CisrCisrc3RhdGljIHZvaWQgcGxhbmVfY29tbWl0KHN0cnVjdCBkY19odyAqaHcp CisreworKwlzdHJ1Y3QgZGNfaHdfcGxhbmUgKnBsYW5lOworKwljb25zdCBzdHJ1Y3QgZGNfaHdf cGxhbmVfcmVnICpyZWc7CisrCWJvb2wgcHJpbWFyeSA9IGZhbHNlOworKwl1OCBpZCwgbGF5ZXJf bnVtID0gaHctPmluZm8tPmxheWVyX251bTsKKysJdTMyIGksIG9mZnNldDsKKysKKysJZm9yIChp ID0gMDsgaSA8IGxheWVyX251bTsgaSsrKSB7CisrCQlwbGFuZSA9ICZody0+cGxhbmVbaV07Cisr CQlpZCA9IGh3LT5pbmZvLT5wbGFuZXNbaV0uaWQ7CisrCQlvZmZzZXQgPSBnZXRfYWRkcl9vZmZz ZXQoaWQpOworKwkJaWYgKGlkID09IFBSSU1BUllfUExBTkVfMCB8fCBpZCA9PSBQUklNQVJZX1BM QU5FXzEpIHsKKysJCQlyZWcgPSAmZGNfcGxhbmVfcmVnWzBdOworKwkJCXByaW1hcnkgPSB0cnVl OworKwkJfSBlbHNlIHsKKysJCQlyZWcgPSAmZGNfcGxhbmVfcmVnWzFdOworKwkJCXByaW1hcnkg PSBmYWxzZTsKKysJCX0KKysKKysJCWlmIChwbGFuZS0+ZmIuZGlydHkpIHsKKysJCQlpZiAocGxh bmUtPmZiLmVuYWJsZSkgeworKwkJCQlkY193cml0ZShodywgcmVnLT55X2FkZHJlc3MgKyBvZmZz ZXQsCisrCQkJCQkgcGxhbmUtPmZiLnlfYWRkcmVzcyk7CisrCQkJCWRjX3dyaXRlKGh3LCByZWct PnVfYWRkcmVzcyArIG9mZnNldCwKKysJCQkJCSBwbGFuZS0+ZmIudV9hZGRyZXNzKTsKKysJCQkJ ZGNfd3JpdGUoaHcsIHJlZy0+dl9hZGRyZXNzICsgb2Zmc2V0LAorKwkJCQkJIHBsYW5lLT5mYi52 X2FkZHJlc3MpOworKwkJCQlkY193cml0ZShodywgcmVnLT55X3N0cmlkZSArIG9mZnNldCwKKysJ CQkJCSBwbGFuZS0+ZmIueV9zdHJpZGUpOworKwkJCQlkY193cml0ZShodywgcmVnLT51X3N0cmlk ZSArIG9mZnNldCwKKysJCQkJCSBwbGFuZS0+ZmIudV9zdHJpZGUpOworKwkJCQlkY193cml0ZSho dywgcmVnLT52X3N0cmlkZSArIG9mZnNldCwKKysJCQkJCSBwbGFuZS0+ZmIudl9zdHJpZGUpOwor KwkJCQlkY193cml0ZShodywgcmVnLT5zaXplICsgb2Zmc2V0LAorKwkJCQkJIHBsYW5lLT5mYi53 aWR0aCB8CisrCQkJCQkgKHBsYW5lLT5mYi5oZWlnaHQgPDwgMTUpKTsKKysJCQkJZGNfd3JpdGUo aHcsIHJlZy0+d2F0ZXJfbWFyayArIG9mZnNldCwKKysJCQkJCSBwbGFuZS0+ZmIud2F0ZXJfbWFy ayk7CisrCisrCQkJCWlmIChwbGFuZS0+ZmIuY2xlYXJfZW5hYmxlKQorKwkJCQkJZGNfd3JpdGUo aHcsIHJlZy0+Y2xlYXJfdmFsdWUgKyBvZmZzZXQsCisrCQkJCQkJIHBsYW5lLT5mYi5jbGVhcl92 YWx1ZSk7CisrCQkJfQorKworKwkJCWlmIChwcmltYXJ5KSB7CisrCQkJCWRjX3NldF9jbGVhciho dywgRENfRlJBTUVCVUZGRVJfQ09ORklHICsgb2Zmc2V0LAorKwkJCQkJICAgICAocGxhbmUtPmZi LmZvcm1hdCA8PCAyNikgfAorKwkJCQkJICAgICAocGxhbmUtPmZiLnV2X3N3aXp6bGUgPDwgMjUp IHwKKysJCQkJCSAgICAgKHBsYW5lLT5mYi5zd2l6emxlIDw8IDIzKSB8CisrCQkJCQkgICAgIChw bGFuZS0+ZmIudGlsZV9tb2RlIDw8IDE3KSB8CisrCQkJCQkgICAgIChwbGFuZS0+ZmIueXV2X2Nv bG9yX3NwYWNlIDw8IDE0KSB8CisrCQkJCQkgICAgIChwbGFuZS0+ZmIucm90YXRpb24gPDwgMTEp IHwKKysJCQkJCSAgICAgKHBsYW5lLT5mYi5jbGVhcl9lbmFibGUgPDwgOCksCisrCQkJCQkgICAg ICgweDFGIDw8IDI2KSB8CisrCQkJCQkgICAgIEJJVCgyNSkgfAorKwkJCQkJICAgICAoMHgwMyA8 PCAyMykgfAorKwkJCQkJICAgICAoMHgxRiA8PCAxNykgfAorKwkJCQkJICAgICAoMHgwNyA8PCAx NCkgfAorKwkJCQkJICAgICAoMHgwNyA8PCAxMSkgfAorKwkJCQkJICAgICBCSVQoOCkpOworKwkJ CQlkY19zZXRfY2xlYXIoaHcsIERDX0ZSQU1FQlVGRkVSX0NPTkZJR19FWCArIG9mZnNldCwKKysJ CQkJCSAgICAgKHBsYW5lLT5mYi5kZWNfZW5hYmxlIDw8IDEpIHwKKysJCQkJCSAgICAgKHBsYW5l LT5mYi5lbmFibGUgPDwgMTMpIHwKKysJCQkJCSAgICAgKHBsYW5lLT5mYi56cG9zIDw8IDE2KSB8 CisrCQkJCQkgICAgIChwbGFuZS0+ZmIuZGlzcGxheV9pZCA8PCAxOSksCisrCQkJCQkgICAgIEJJ VCgxKSB8IEJJVCgxMykgfCAoMHgwNyA8PCAxNikgfCBCSVQoMTkpKTsKKysJCQl9IGVsc2Ugewor KwkJCQlkY19zZXRfY2xlYXIoaHcsIERDX09WRVJMQVlfQ09ORklHICsgb2Zmc2V0LAorKwkJCQkJ ICAgICAocGxhbmUtPmZiLmRlY19lbmFibGUgPDwgMjcpIHwKKysJCQkJCSAgICAgKHBsYW5lLT5m Yi5jbGVhcl9lbmFibGUgPDwgMjUpIHwKKysJCQkJCSAgICAgKHBsYW5lLT5mYi5lbmFibGUgPDwg MjQpIHwKKysJCQkJCSAgICAgKHBsYW5lLT5mYi5mb3JtYXQgPDwgMTYpIHwKKysJCQkJCSAgICAg KHBsYW5lLT5mYi51dl9zd2l6emxlIDw8IDE1KSB8CisrCQkJCQkgICAgIChwbGFuZS0+ZmIuc3dp enpsZSA8PCAxMykgfAorKwkJCQkJICAgICAocGxhbmUtPmZiLnRpbGVfbW9kZSA8PCA4KSB8Cisr CQkJCQkgICAgIChwbGFuZS0+ZmIueXV2X2NvbG9yX3NwYWNlIDw8IDUpIHwKKysJCQkJCSAgICAg KHBsYW5lLT5mYi5yb3RhdGlvbiA8PCAyKSwKKysJCQkJCSAgICAgQklUKDI3KSB8CisrCQkJCQkg ICAgIEJJVCgyNSkgfAorKwkJCQkJICAgICBCSVQoMjQpIHwKKysJCQkJCSAgICAgKDB4MUYgPDwg MTYpIHwKKysJCQkJCSAgICAgQklUKDE1KSB8CisrCQkJCQkgICAgICgweDAzIDw8IDEzKSB8Cisr CQkJCQkgICAgICgweDFGIDw8IDgpIHwKKysJCQkJCSAgICAgKDB4MDcgPDwgNSkgfAorKwkJCQkJ ICAgICAoMHgwNyA8PCAyKSk7CisrCQkJCWRjX3NldF9jbGVhcihodywgRENfT1ZFUkxBWV9DT05G SUdfRVggKyBvZmZzZXQsCisrCQkJCQkgICAgIHBsYW5lLT5mYi56cG9zIHwgKHBsYW5lLT5mYi5k aXNwbGF5X2lkIDw8IDMpLAorKwkJCQkJICAgICAweDA3IHwgQklUKDMpKTsKKysJCQl9CisrCQkJ cGxhbmUtPmZiLmRpcnR5ID0gZmFsc2U7CisrCQl9CisrCisrCQlpZiAocGxhbmUtPnNjYWxlLmRp cnR5KSB7CisrCQkJaWYgKHBsYW5lLT5zY2FsZS5lbmFibGUpIHsKKysJCQkJZGNfd3JpdGUoaHcs IHJlZy0+c2NhbGVfZmFjdG9yX3ggKyBvZmZzZXQsCisrCQkJCQkgcGxhbmUtPnNjYWxlLnNjYWxl X2ZhY3Rvcl94KTsKKysJCQkJZGNfd3JpdGUoaHcsIHJlZy0+c2NhbGVfZmFjdG9yX3kgKyBvZmZz ZXQsCisrCQkJCQkgcGxhbmUtPnNjYWxlLnNjYWxlX2ZhY3Rvcl95KTsKKysJCQkJaWYgKHByaW1h cnkpCisrCQkJCQlkY19zZXRfY2xlYXIoaHcsCisrCQkJCQkJICAgICBEQ19GUkFNRUJVRkZFUl9D T05GSUcgKyBvZmZzZXQsCisrCQkJCQkJICAgICBCSVQoMjIpLCAwKTsKKysJCQkJZWxzZQorKwkJ CQkJZGNfc2V0X2NsZWFyKGh3LAorKwkJCQkJCSAgICAgRENfT1ZFUkxBWV9TQ0FMRV9DT05GSUcg KyBvZmZzZXQsCisrCQkJCQkJICAgICBCSVQoOCksIDApOworKwkJCX0gZWxzZSB7CisrCQkJCWlm IChwcmltYXJ5KQorKwkJCQkJZGNfc2V0X2NsZWFyKGh3LAorKwkJCQkJCSAgICAgRENfRlJBTUVC VUZGRVJfQ09ORklHICsgb2Zmc2V0LAorKwkJCQkJCSAgICAgMCwgQklUKDIyKSk7CisrCQkJCWVs c2UKKysJCQkJCWRjX3NldF9jbGVhcihodywKKysJCQkJCQkgICAgIERDX09WRVJMQVlfU0NBTEVf Q09ORklHICsgb2Zmc2V0LAorKwkJCQkJCSAgICAgMCwgQklUKDgpKTsKKysJCQl9CisrCQkJcGxh bmUtPnNjYWxlLmRpcnR5ID0gZmFsc2U7CisrCQl9CisrCisrCQlpZiAocGxhbmUtPnBvcy5kaXJ0 eSkgeworKwkJCWRjX3dyaXRlKGh3LCByZWctPnRvcF9sZWZ0ICsgb2Zmc2V0LAorKwkJCQkgcGxh bmUtPnBvcy5zdGFydF94IHwKKysJCQkJIChwbGFuZS0+cG9zLnN0YXJ0X3kgPDwgMTUpKTsKKysJ CQlkY193cml0ZShodywgcmVnLT5ib3R0b21fcmlnaHQgKyBvZmZzZXQsCisrCQkJCSBwbGFuZS0+ cG9zLmVuZF94IHwKKysJCQkJIChwbGFuZS0+cG9zLmVuZF95IDw8IDE1KSk7CisrCQkJcGxhbmUt PnBvcy5kaXJ0eSA9IGZhbHNlOworKwkJfQorKworKwkJaWYgKHBsYW5lLT5ibGVuZC5kaXJ0eSkg eworKwkJCWRjX3dyaXRlKGh3LCByZWctPnNyY19nbG9iYWxfY29sb3IgKyBvZmZzZXQsCisrCQkJ CSBwbGFuZS0+YmxlbmQuYWxwaGEgPDwgMjQpOworKwkJCWRjX3dyaXRlKGh3LCByZWctPmRzdF9n bG9iYWxfY29sb3IgKyBvZmZzZXQsCisrCQkJCSBwbGFuZS0+YmxlbmQuYWxwaGEgPDwgMjQpOwor KwkJCXN3aXRjaCAocGxhbmUtPmJsZW5kLmJsZW5kX21vZGUpIHsKKysJCQljYXNlIEJMRU5EX1BS RU1VTFRJOgorKwkJCQlkY193cml0ZShodywgcmVnLT5ibGVuZF9jb25maWcgKyBvZmZzZXQsIDB4 MzQ1MCk7CisrCQkJCWJyZWFrOworKwkJCWNhc2UgQkxFTkRfQ09WRVJBR0U6CisrCQkJCWRjX3dy aXRlKGh3LCByZWctPmJsZW5kX2NvbmZpZyArIG9mZnNldCwgMHgzOTUwKTsKKysJCQkJYnJlYWs7 CisrCQkJY2FzZSBCTEVORF9QSVhFTF9OT05FOgorKwkJCQlkY193cml0ZShodywgcmVnLT5ibGVu ZF9jb25maWcgKyBvZmZzZXQsIDB4MzU0OCk7CisrCQkJCWJyZWFrOworKwkJCWRlZmF1bHQ6Cisr CQkJCWJyZWFrOworKwkJCX0KKysJCQlwbGFuZS0+YmxlbmQuZGlydHkgPSBmYWxzZTsKKysJCX0K KysKKysJCWlmIChwbGFuZS0+Y29sb3JrZXkuZGlydHkpIHsKKysJCQlkY193cml0ZShodywgcmVn LT5jb2xvcl9rZXkgKyBvZmZzZXQsIHBsYW5lLT5jb2xvcmtleS5jb2xvcmtleSk7CisrCQkJZGNf d3JpdGUoaHcsIHJlZy0+Y29sb3Jfa2V5X2hpZ2ggKyBvZmZzZXQsCisrCQkJCSBwbGFuZS0+Y29s b3JrZXkuY29sb3JrZXlfaGlnaCk7CisrCisrCQkJaWYgKHByaW1hcnkpCisrCQkJCWRjX3NldF9j bGVhcihodywgRENfRlJBTUVCVUZGRVJfQ09ORklHICsgb2Zmc2V0LAorKwkJCQkJICAgICBwbGFu ZS0+Y29sb3JrZXkudHJhbnNwYXJlbmN5IDw8IDksIDB4MDMgPDwgOSk7CisrCQkJZWxzZQorKwkJ CQlkY19zZXRfY2xlYXIoaHcsIERDX09WRVJMQVlfQ09ORklHICsgb2Zmc2V0LAorKwkJCQkJICAg ICBwbGFuZS0+Y29sb3JrZXkudHJhbnNwYXJlbmN5LCAweDAzKTsKKysKKysJCQlwbGFuZS0+Y29s b3JrZXkuZGlydHkgPSBmYWxzZTsKKysJCX0KKysKKysJCWlmIChwbGFuZS0+cm9pLmRpcnR5KSB7 CisrCQkJaWYgKHBsYW5lLT5yb2kuZW5hYmxlKSB7CisrCQkJCWRjX3dyaXRlKGh3LCByZWctPnJv aV9vcmlnaW4gKyBvZmZzZXQsCisrCQkJCQkgcGxhbmUtPnJvaS54IHwgKHBsYW5lLT5yb2kueSA8 PCAxNikpOworKwkJCQlkY193cml0ZShodywgcmVnLT5yb2lfc2l6ZSArIG9mZnNldCwKKysJCQkJ CSBwbGFuZS0+cm9pLndpZHRoIHwgKHBsYW5lLT5yb2kuaGVpZ2h0IDw8IDE2KSk7CisrCQkJCWlm IChwcmltYXJ5KQorKwkJCQkJZGNfc2V0X2NsZWFyKGh3LCBEQ19GUkFNRUJVRkZFUl9DT05GSUdf RVggKyBvZmZzZXQsCisrCQkJCQkJICAgICBCSVQoMCksIDApOworKwkJCQllbHNlCisrCQkJCQlk Y19zZXRfY2xlYXIoaHcsIERDX09WRVJMQVlfQ09ORklHICsgb2Zmc2V0LAorKwkJCQkJCSAgICAg QklUKDIyKSwgMCk7CisrCQkJfSBlbHNlIHsKKysJCQkJaWYgKHByaW1hcnkpCisrCQkJCQlkY19z ZXRfY2xlYXIoaHcsIERDX0ZSQU1FQlVGRkVSX0NPTkZJR19FWCArIG9mZnNldCwKKysJCQkJCQkg ICAgIDAsIEJJVCgwKSk7CisrCQkJCWVsc2UKKysJCQkJCWRjX3NldF9jbGVhcihodywgRENfT1ZF UkxBWV9DT05GSUcgKyBvZmZzZXQsCisrCQkJCQkJICAgICAwLCBCSVQoMjIpKTsKKysJCQl9Cisr CQkJcGxhbmUtPnJvaS5kaXJ0eSA9IGZhbHNlOworKwkJfQorKwl9CisrfQorKworK3N0YXRpYyB2 b2lkIHBsYW5lX2V4X2NvbW1pdChzdHJ1Y3QgZGNfaHcgKmh3KQorK3sKKysJc3RydWN0IGRjX2h3 X3BsYW5lICpwbGFuZTsKKysJY29uc3Qgc3RydWN0IGRjX2h3X3BsYW5lX3JlZyAqcmVnOworKwli b29sIHByaW1hcnkgPSBmYWxzZTsKKysJdTggaWQsIGxheWVyX251bSA9IGh3LT5pbmZvLT5sYXll cl9udW07CisrCXUzMiBpLCBvZmZzZXQ7CisrCisrCWZvciAoaSA9IDA7IGkgPCBsYXllcl9udW07 IGkrKykgeworKwkJcGxhbmUgPSAmaHctPnBsYW5lW2ldOworKwkJaWQgPSBody0+aW5mby0+cGxh bmVzW2ldLmlkOworKwkJb2Zmc2V0ID0gZ2V0X2FkZHJfb2Zmc2V0KGlkKTsKKysJCWlmIChpZCA9 PSBQUklNQVJZX1BMQU5FXzAgfHwgaWQgPT0gUFJJTUFSWV9QTEFORV8xKSB7CisrCQkJcmVnID0g JmRjX3BsYW5lX3JlZ1swXTsKKysJCQlwcmltYXJ5ID0gdHJ1ZTsKKysJCX0gZWxzZSB7CisrCQkJ cmVnID0gJmRjX3BsYW5lX3JlZ1sxXTsKKysJCQlwcmltYXJ5ID0gZmFsc2U7CisrCQl9CisrCisr CQlpZiAocGxhbmUtPmZiLmRpcnR5KSB7CisrCQkJaWYgKGlzX3JnYihwbGFuZS0+ZmIuZm9ybWF0 KSkgeworKwkJCQlpZiAocHJpbWFyeSkKKysJCQkJCWRjX3NldF9jbGVhcihodywKKysJCQkJCQkg ICAgIERDX0ZSQU1FQlVGRkVSX0NPTkZJR19FWCArIG9mZnNldCwKKysJCQkJCQkgICAgIEJJVCg2 KSwgQklUKDgpKTsKKysJCQkJZWxzZQorKwkJCQkJZGNfc2V0X2NsZWFyKGh3LAorKwkJCQkJCSAg ICAgRENfT1ZFUkxBWV9DT05GSUcgKyBvZmZzZXQsCisrCQkJCQkJICAgICBCSVQoMjkpLCBCSVQo MzApKTsKKysJCQl9IGVsc2UgeworKwkJCQlpZiAocHJpbWFyeSkKKysJCQkJCWRjX3NldF9jbGVh cihodywKKysJCQkJCQkgICAgIERDX0ZSQU1FQlVGRkVSX0NPTkZJR19FWCArIG9mZnNldCwKKysJ CQkJCQkgICAgIEJJVCg4KSwgQklUKDYpKTsKKysJCQkJZWxzZQorKwkJCQkJZGNfc2V0X2NsZWFy KGh3LAorKwkJCQkJCSAgICAgRENfT1ZFUkxBWV9DT05GSUcgKyBvZmZzZXQsCisrCQkJCQkJICAg ICBCSVQoMzApLCBCSVQoMjkpKTsKKysJCQkJc3dpdGNoIChwbGFuZS0+ZmIueXV2X2NvbG9yX3Nw YWNlKSB7CisrCQkJCWNhc2UgQ09MT1JfU1BBQ0VfNjAxOgorKwkJCQkJbG9hZF95dXZfdG9fcmdi KGh3LCByZWcsIG9mZnNldCwgWVVWNjAxXzJSR0IpOworKwkJCQkJYnJlYWs7CisrCQkJCWNhc2Ug Q09MT1JfU1BBQ0VfNzA5OgorKwkJCQkJbG9hZF95dXZfdG9fcmdiKGh3LCByZWcsIG9mZnNldCwg WVVWNzA5XzJSR0IpOworKwkJCQkJYnJlYWs7CisrCQkJCWNhc2UgQ09MT1JfU1BBQ0VfMjAyMDoK KysJCQkJCWxvYWRfeXV2X3RvX3JnYihodywgcmVnLCBvZmZzZXQsIFlVVjIwMjBfMlJHQik7Cisr CQkJCQlicmVhazsKKysJCQkJZGVmYXVsdDoKKysJCQkJCWJyZWFrOworKwkJCQl9CisrCQkJfQor KwkJfQorKwkJaWYgKHBsYW5lLT5kZWdhbW1hLmRpcnR5KSB7CisrCQkJc3dpdGNoIChwbGFuZS0+ ZGVnYW1tYS5tb2RlKSB7CisrCQkJY2FzZSBWU19ERUdBTU1BX0RJU0FCTEU6CisrCQkJCWlmIChw cmltYXJ5KQorKwkJCQkJZGNfc2V0X2NsZWFyKGh3LAorKwkJCQkJCSAgICAgRENfRlJBTUVCVUZG RVJfQ09ORklHX0VYICsgb2Zmc2V0LAorKwkJCQkJCSAgICAgMCwgQklUKDUpKTsKKysJCQkJZWxz ZQorKwkJCQkJZGNfc2V0X2NsZWFyKGh3LAorKwkJCQkJCSAgICAgRENfT1ZFUkxBWV9DT05GSUcg KyBvZmZzZXQsCisrCQkJCQkJICAgICAwLCBCSVQoMjgpKTsKKysJCQkJYnJlYWs7CisrCQkJY2Fz ZSBWU19ERUdBTU1BX0JUNzA5OgorKwkJCQlsb2FkX2RlZ2FtbWFfdGFibGUoaHcsIHJlZywgb2Zm c2V0LCBERUdBTU1BXzcwOSk7CisrCQkJCWlmIChwcmltYXJ5KQorKwkJCQkJZGNfc2V0X2NsZWFy KGh3LAorKwkJCQkJCSAgICAgRENfRlJBTUVCVUZGRVJfQ09ORklHX0VYICsgb2Zmc2V0LAorKwkJ CQkJCSAgICAgQklUKDUpLCAwKTsKKysJCQkJZWxzZQorKwkJCQkJZGNfc2V0X2NsZWFyKGh3LAor KwkJCQkJCSAgICAgRENfT1ZFUkxBWV9DT05GSUcgKyBvZmZzZXQsCisrCQkJCQkJICAgICBCSVQo MjgpLCAwKTsKKysJCQkJYnJlYWs7CisrCQkJY2FzZSBWU19ERUdBTU1BX0JUMjAyMDoKKysJCQkJ bG9hZF9kZWdhbW1hX3RhYmxlKGh3LCByZWcsIG9mZnNldCwgREVHQU1NQV8yMDIwKTsKKysJCQkJ aWYgKHByaW1hcnkpCisrCQkJCQlkY19zZXRfY2xlYXIoaHcsCisrCQkJCQkJICAgICBEQ19GUkFN RUJVRkZFUl9DT05GSUdfRVggKyBvZmZzZXQsCisrCQkJCQkJICAgICBCSVQoNSksIDApOworKwkJ CQllbHNlCisrCQkJCQlkY19zZXRfY2xlYXIoaHcsCisrCQkJCQkJICAgICBEQ19PVkVSTEFZX0NP TkZJRyArIG9mZnNldCwKKysJCQkJCQkgICAgIEJJVCgyOCksIDApOworKwkJCQlicmVhazsKKysJ CQlkZWZhdWx0OgorKwkJCQlicmVhazsKKysJCQl9CisrCQkJcGxhbmUtPmRlZ2FtbWEuZGlydHkg PSBmYWxzZTsKKysJCX0KKysJfQorKwlwbGFuZV9jb21taXQoaHcpOworK30KKysKKytzdGF0aWMg dm9pZCBzZXR1cF9kaXNwbGF5KHN0cnVjdCBkY19odyAqaHcsIHN0cnVjdCBkY19od19kaXNwbGF5 ICpkaXNwbGF5KQorK3sKKysJdTggaWQgPSBkaXNwbGF5LT5pZDsKKysJdTMyIGRwaV9jZmcsIG9m ZnNldCA9IGlkIDw8IDI7CisrCisrCWlmIChody0+ZGlzcGxheVtpZF0uZW5hYmxlKSB7CisrCQlz d2l0Y2ggKGRpc3BsYXktPmJ1c19mb3JtYXQpIHsKKysJCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I1 NjVfMVgxNjoKKysJCQlkcGlfY2ZnID0gMDsKKysJCQlicmVhazsKKysJCWNhc2UgTUVESUFfQlVT X0ZNVF9SR0I2NjZfMVgxODoKKysJCQlkcGlfY2ZnID0gMzsKKysJCQlicmVhazsKKysJCWNhc2Ug TUVESUFfQlVTX0ZNVF9SR0I2NjZfMVgyNF9DUEFESEk6CisrCQkJZHBpX2NmZyA9IDQ7CisrCQkJ YnJlYWs7CisrCQljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ6CisrCQkJZHBpX2NmZyA9 IDU7CisrCQkJYnJlYWs7CisrCQljYXNlIE1FRElBX0JVU19GTVRfUkdCMTAxMDEwXzFYMzA6Cisr CQkJZHBpX2NmZyA9IDY7CisrCQkJYnJlYWs7CisrCQlkZWZhdWx0OgorKwkJCWRwaV9jZmcgPSA1 OworKwkJCWJyZWFrOworKwkJfQorKwkJZGNfd3JpdGUoaHcsIERDX0RJU1BMQVlfRFBJX0NPTkZJ RyArIG9mZnNldCwgZHBpX2NmZyk7CisrCisrCQlpZiAoaWQgPT0gMCkKKysJCQlkY19zZXRfY2xl YXIoaHcsIERDX0RJU1BMQVlfUEFORUxfU1RBUlQsIDAsIEJJVCgwKSB8IEJJVCgyKSk7CisrCQll bHNlCisrCQkJZGNfc2V0X2NsZWFyKGh3LCBEQ19ESVNQTEFZX1BBTkVMX1NUQVJULCAwLCBCSVQo MSkgfCBCSVQoMikpOworKworKwkJZGNfd3JpdGUoaHcsIERDX0RJU1BMQVlfSCArIG9mZnNldCwg aHctPmRpc3BsYXlbaWRdLmhfYWN0aXZlIHwKKysJCQkgKGh3LT5kaXNwbGF5W2lkXS5oX3RvdGFs IDw8IDE2KSk7CisrCQlkY193cml0ZShodywgRENfRElTUExBWV9IX1NZTkMgKyBvZmZzZXQsCisr CQkJIGh3LT5kaXNwbGF5W2lkXS5oX3N5bmNfc3RhcnQgfAorKwkJCSAoaHctPmRpc3BsYXlbaWRd Lmhfc3luY19lbmQgPDwgMTUpIHwKKysJCQkgKGh3LT5kaXNwbGF5W2lkXS5oX3N5bmNfcG9sYXJp dHkgPyAwIDogQklUKDMxKSkgfAorKwkJCSBCSVQoMzApKTsKKysJCWRjX3dyaXRlKGh3LCBEQ19E SVNQTEFZX1YgKyBvZmZzZXQsIGh3LT5kaXNwbGF5W2lkXS52X2FjdGl2ZSB8CisrCQkJCShody0+ ZGlzcGxheVtpZF0udl90b3RhbCA8PCAxNikpOworKwkJZGNfd3JpdGUoaHcsIERDX0RJU1BMQVlf Vl9TWU5DICsgb2Zmc2V0LAorKwkJCSBody0+ZGlzcGxheVtpZF0udl9zeW5jX3N0YXJ0IHwKKysJ CQkgKGh3LT5kaXNwbGF5W2lkXS52X3N5bmNfZW5kIDw8IDE1KSB8CisrCQkJIChody0+ZGlzcGxh eVtpZF0udl9zeW5jX3BvbGFyaXR5ID8gMCA6IEJJVCgzMSkpIHwKKysJCQkgQklUKDMwKSk7Cisr CisrCQlpZiAoaHctPmluZm8tPnBpcGVfc3luYykgeworKwkJCXN3aXRjaCAoZGlzcGxheS0+c3lu Y19tb2RlKSB7CisrCQkJY2FzZSBWU19TSU5HTEVfREM6CisrCQkJCWRjX3NldF9jbGVhcihodywg RENfRlJBTUVCVUZGRVJfQ09ORklHX0VYLAorKwkJCQkJICAgICAwLCBCSVQoMykgfCBCSVQoNCkp OworKwkJCQlicmVhazsKKysJCQljYXNlIFZTX01VTFRJX0RDX1BSSU1BUlk6CisrCQkJCWRjX3Nl dF9jbGVhcihodywgRENfRlJBTUVCVUZGRVJfQ09ORklHX0VYLAorKwkJCQkJICAgICBCSVQoMykg fCBCSVQoNCksIDApOworKwkJCQlicmVhazsKKysJCQljYXNlIFZTX01VTFRJX0RDX1NFQ09OREFS WToKKysJCQkJZGNfc2V0X2NsZWFyKGh3LCBEQ19GUkFNRUJVRkZFUl9DT05GSUdfRVgsCisrCQkJ CQkgICAgIEJJVCgzKSwgQklUKDQpKTsKKysJCQkJYnJlYWs7CisrCQkJZGVmYXVsdDoKKysJCQkJ YnJlYWs7CisrCQkJfQorKwkJfQorKworKwkJaWYgKGh3LT5pbmZvLT5iYWNrZ3JvdW5kKQorKwkJ CWRjX3dyaXRlKGh3LCBEQ19GUkFNRUJVRkZFUl9CR19DT0xPUiArIG9mZnNldCwKKysJCQkJIGh3 LT5kaXNwbGF5W2lkXS5iZ19jb2xvcik7CisrCisrCQlpZiAoaHctPmRpc3BsYXlbaWRdLmRpdGhl cl9lbmFibGUpIHsKKysJCQlkY193cml0ZShodywgRENfRElTUExBWV9ESVRIRVJfVEFCTEVfTE9X ICsgb2Zmc2V0LAorKwkJCQkgRENfRElTUExBWV9ESVRIRVJUQUJMRV9MT1cpOworKwkJCWRjX3dy aXRlKGh3LCBEQ19ESVNQTEFZX0RJVEhFUl9UQUJMRV9ISUdIICsgb2Zmc2V0LAorKwkJCQkgRENf RElTUExBWV9ESVRIRVJUQUJMRV9ISUdIKTsKKysJCQlkY193cml0ZShodywgRENfRElTUExBWV9E SVRIRVJfQ09ORklHICsgb2Zmc2V0LCBCSVQoMzEpKTsKKysJCX0gZWxzZSB7CisrCQkJZGNfd3Jp dGUoaHcsIERDX0RJU1BMQVlfRElUSEVSX0NPTkZJRyArIG9mZnNldCwgMCk7CisrCQl9CisrCisr CQlkY19zZXRfY2xlYXIoaHcsIERDX0RJU1BMQVlfUEFORUxfQ09ORklHICsgb2Zmc2V0LCBCSVQo MTIpLCAwKTsKKysJCWlmIChody0+ZGlzcGxheVtpZF0uc3luY19lbmFibGUpCisrCQkJZGNfc2V0 X2NsZWFyKGh3LCBEQ19ESVNQTEFZX1BBTkVMX1NUQVJULCBCSVQoMikgfCBCSVQoMyksIDApOwor KwkJZWxzZSBpZiAoaWQgPT0gMCkKKysJCQlkY19zZXRfY2xlYXIoaHcsIERDX0RJU1BMQVlfUEFO RUxfU1RBUlQsIEJJVCgwKSwgQklUKDMpKTsKKysJCWVsc2UKKysJCQlkY19zZXRfY2xlYXIoaHcs IERDX0RJU1BMQVlfUEFORUxfU1RBUlQsIEJJVCgxKSwgQklUKDMpKTsKKysJfSBlbHNlIHsKKysJ CWRjX3NldF9jbGVhcihodywgRENfRElTUExBWV9QQU5FTF9DT05GSUcgKyBvZmZzZXQsIDAsIEJJ VCgxMikpOworKwkJaWYgKGlkID09IDApCisrCQkJZGNfc2V0X2NsZWFyKGh3LCBEQ19ESVNQTEFZ X1BBTkVMX1NUQVJULCAwLCBCSVQoMCkgfCBCSVQoMikpOworKwkJZWxzZQorKwkJCWRjX3NldF9j bGVhcihodywgRENfRElTUExBWV9QQU5FTF9TVEFSVCwgMCwgQklUKDEpIHwgQklUKDIpKTsKKysJ fQorK30KKysKKytzdGF0aWMgdm9pZCBzZXR1cF9kaXNwbGF5X2V4KHN0cnVjdCBkY19odyAqaHcs IHN0cnVjdCBkY19od19kaXNwbGF5ICpkaXNwbGF5KQorK3sKKysJdTggaWQgPSBkaXNwbGF5LT5p ZDsKKysJdTMyIGRwX2NmZywgb2Zmc2V0ID0gaWQgPDwgMjsKKysJYm9vbCBpc195dXYgPSBmYWxz ZTsKKysKKysJaWYgKGh3LT5kaXNwbGF5W2lkXS5lbmFibGUgJiYgaHctPm91dFtpZF0gPT0gT1VU X0RQKSB7CisrCQlzd2l0Y2ggKGRpc3BsYXktPmJ1c19mb3JtYXQpIHsKKysJCWNhc2UgTUVESUFf QlVTX0ZNVF9SR0I1NjVfMVgxNjoKKysJCQlkcF9jZmcgPSAwOworKwkJCWJyZWFrOworKwkJY2Fz ZSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4OgorKwkJCWRwX2NmZyA9IDE7CisrCQkJYnJlYWs7 CisrCQljYXNlIE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ6CisrCQkJZHBfY2ZnID0gMjsKKysJ CQlicmVhazsKKysJCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMDoKKysJCQlkcF9j ZmcgPSAzOworKwkJCWJyZWFrOworKwkJY2FzZSBNRURJQV9CVVNfRk1UX1VZVlk4XzFYMTY6Cisr CQkJZHBfY2ZnID0gMiA8PCA0OworKwkJCWlzX3l1diA9IHRydWU7CisrCQkJYnJlYWs7CisrCQlj YXNlIE1FRElBX0JVU19GTVRfWVVWOF8xWDI0OgorKwkJCWRwX2NmZyA9IDQgPDwgNDsKKysJCQlp c195dXYgPSB0cnVlOworKwkJCWJyZWFrOworKwkJY2FzZSBNRURJQV9CVVNfRk1UX1VZVlkxMF8x WDIwOgorKwkJCWRwX2NmZyA9IDggPDwgNDsKKysJCQlpc195dXYgPSB0cnVlOworKwkJCWJyZWFr OworKwkJY2FzZSBNRURJQV9CVVNfRk1UX1lVVjEwXzFYMzA6CisrCQkJZHBfY2ZnID0gMTAgPDwg NDsKKysJCQlpc195dXYgPSB0cnVlOworKwkJCWJyZWFrOworKwkJY2FzZSBNRURJQV9CVVNfRk1U X1VZWVZZWThfMF81WDI0OgorKwkJCWRwX2NmZyA9IDEyIDw8IDQ7CisrCQkJaXNfeXV2ID0gdHJ1 ZTsKKysJCQlicmVhazsKKysJCWNhc2UgTUVESUFfQlVTX0ZNVF9VWVlWWVkxMF8wXzVYMzA6Cisr CQkJZHBfY2ZnID0gMTMgPDwgNDsKKysJCQlpc195dXYgPSB0cnVlOworKwkJCWJyZWFrOworKwkJ ZGVmYXVsdDoKKysJCQlkcF9jZmcgPSAyOworKwkJCWJyZWFrOworKwkJfQorKwkJaWYgKGlzX3l1 dikKKysJCQlkY19zZXRfY2xlYXIoaHcsIERDX0RJU1BMQVlfUEFORUxfQ09ORklHICsgb2Zmc2V0 LCBCSVQoMTYpLCAwKTsKKysJCWVsc2UKKysJCQlkY19zZXRfY2xlYXIoaHcsIERDX0RJU1BMQVlf UEFORUxfQ09ORklHICsgb2Zmc2V0LCAwLCBCSVQoMTYpKTsKKysJCWRjX3dyaXRlKGh3LCBEQ19E SVNQTEFZX0RQX0NPTkZJRyArIG9mZnNldCwgZHBfY2ZnIHwgQklUKDMpKTsKKysJfQorKworKwlp ZiAoaHctPm91dFtpZF0gPT0gT1VUX0RQSSkKKysJCWRjX3NldF9jbGVhcihodywgRENfRElTUExB WV9EUF9DT05GSUcgKyBvZmZzZXQsIDAsIEJJVCgzKSk7CisrCisrCXNldHVwX2Rpc3BsYXkoaHcs IGRpc3BsYXkpOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRjX2h3X2Z1bmNzIGh3X2Z1 bmMgPSB7CisrCS5nYW1tYSA9ICZnYW1tYV9leF9jb21taXQsCisrCS5wbGFuZSA9ICZwbGFuZV9l eF9jb21taXQsCisrCS5kaXNwbGF5ID0gc2V0dXBfZGlzcGxheV9leCwKKyt9OworKworK3ZvaWQg ZGNfaHdfY29tbWl0KHN0cnVjdCBkY19odyAqaHcpCisreworKwl1MzIgaSwgb2Zmc2V0ID0gMDsK KysJdTggcGxhbmVfbnVtID0gaHctPmluZm8tPnBsYW5lX251bTsKKysJdTggbGF5ZXJfbnVtID0g aHctPmluZm8tPmxheWVyX251bTsKKysJdTggY3Vyc29yX251bSA9IHBsYW5lX251bSAtIGxheWVy X251bTsKKysKKysJaHctPmZ1bmMtPmdhbW1hKGh3KTsKKysJaHctPmZ1bmMtPnBsYW5lKGh3KTsK KysKKysJZm9yIChpID0gMDsgaSA8IGN1cnNvcl9udW07IGkrKykgeworKwkJaWYgKGh3LT5jdXJz b3JbaV0uZGlydHkpIHsKKysJCQlvZmZzZXQgPSBody0+Y3Vyc29yW2ldLmRpc3BsYXlfaWQgPyBE Q19DVVJTT1JfT0ZGU0VUIDogMDsKKysJCQlpZiAoaHctPmN1cnNvcltpXS5lbmFibGUpIHsKKysJ CQkJZGNfd3JpdGUoaHcsIERDX0NVUlNPUl9BRERSRVNTICsgb2Zmc2V0LAorKwkJCQkJIGh3LT5j dXJzb3JbaV0uYWRkcmVzcyk7CisrCQkJCWRjX3dyaXRlKGh3LCBEQ19DVVJTT1JfTE9DQVRJT04g KyBvZmZzZXQsIGh3LT5jdXJzb3JbaV0ueCB8CisrCQkJCQkgKGh3LT5jdXJzb3JbaV0ueSA8PCAx NikpOworKwkJCQlkY19zZXRfY2xlYXIoaHcsIERDX0NVUlNPUl9DT05GSUcgKyBvZmZzZXQsCisr CQkJCQkgICAgIChody0+Y3Vyc29yW2ldLmhvdF94IDw8IDE2KSB8CisrCQkJCQkgICAgIChody0+ Y3Vyc29yW2ldLmhvdF95IDw8IDgpIHwKKysJCQkJCSAgICAgKGh3LT5jdXJzb3JbaV0uc2l6ZSA8 PCA1KSB8CisrCQkJCQkgICAgIEJJVCgzKSB8IEJJVCgyKSB8IDB4MDIsCisrCQkJCQkgICAgICgw eEZGIDw8IDE2KSB8CisrCQkJCQkgICAgICgweEZGIDw8IDgpIHwKKysJCQkJCSAgICAgKDB4MDcg PDwgNSkgfCAweDFGKTsKKysJCQl9IGVsc2UgeworKwkJCQlkY19zZXRfY2xlYXIoaHcsIERDX0NV UlNPUl9DT05GSUcgKyBvZmZzZXQsIEJJVCgzKSwgMHgwMyk7CisrCQkJfQorKwkJCWh3LT5jdXJz b3JbaV0uZGlydHkgPSBmYWxzZTsKKysJCX0KKysJfQorKworKwlpZiAoaHctPnFvcy5kaXJ0eSkg eworKwkJZGNfc2V0X2NsZWFyKGh3LCBEQ19RT1NfQ09ORklHLCAoaHctPnFvcy5oaWdoX3ZhbHVl IDw8IDQpIHwKKysJCQkJCSBody0+cW9zLmxvd192YWx1ZSwgMHhGRik7CisrCQlody0+cW9zLmRp cnR5ID0gZmFsc2U7CisrCX0KKyt9CisrCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zl cmlzaWxpY29uL3ZzX2RjX2h3LmggYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZGNf aHcuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uY2QwMzc3MThl Y2Q1CistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNf ZGNfaHcuaAorQEAgLTAsMCArMSw0OTYgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMCAqLworKy8qCisrICogQ29weXJpZ2h0IChDKSAyMDIzIFZlcmlTaWxpY29uIEhvbGRp bmdzIENvLiwgTHRkLgorKyAqLworKworKyNpZm5kZWYgX19WU19EQ19IV19IX18KKysjZGVmaW5l IF9fVlNfRENfSFdfSF9fCisrCisrI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKysKKysjZGVm aW5lIEFRX0lOVFJfQUNLTk9XTEVER0UJCQkJMHgwMDEwCisrI2RlZmluZSBBUV9JTlRSX0VOQkwJ CQkJCTB4MDAxNAorKyNkZWZpbmUgRENfSFdfUkVWSVNJT04JCQkJCTB4MDAyNAorKyNkZWZpbmUg RENfSFdfQ0hJUF9DSUQJCQkJCTB4MDAzMAorKworKyNkZWZpbmUgRENfUkVHX0JBU0UJCQkJCTB4 MDgwMAorKyNkZWZpbmUgRENfUkVHX1JBTkdFCQkJCQkweDIwMDAKKysjZGVmaW5lIERDX1NFQ19S RUdfT0ZGU0VUCQkJCTB4MTAwMDAwCisrCisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9DT05GSUcJ CQkJMHgxNTE4CisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9DT05GSUdfRVgJCQkweDFjYzAKKysj ZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1NDQUxFX0NPTkZJRwkJCTB4MTUyMAorKyNkZWZpbmUgRENf RlJBTUVCVUZGRVJfVE9QX0xFRlQJCQkJMHgyNGQ4CisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9C T1RUT01fUklHSFQJCQkweDI0ZTAKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX0FERFJFU1MJCQkJ MHgxNDAwCisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9VX0FERFJFU1MJCQkweDE1MzAKKysjZGVm aW5lIERDX0ZSQU1FQlVGRkVSX1ZfQUREUkVTUwkJCTB4MTUzOAorKyNkZWZpbmUgRENfRlJBTUVC VUZGRVJfU1RSSURFCQkJCTB4MTQwOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfVV9TVFJJREUJ CQkJMHgxODAwCisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9WX1NUUklERQkJCQkweDE4MDgKKysj ZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1NJWkUJCQkJMHgxODEwCisrI2RlZmluZSBEQ19GUkFNRUJV RkZFUl9TQ0FMRV9GQUNUT1JfWAkJCTB4MTgyOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfU0NB TEVfRkFDVE9SX1kJCQkweDE4MzAKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX0hfRklMVEVSX0NP RUZfSU5ERVgJCTB4MTgzOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfSF9GSUxURVJfQ09FRl9E QVRBCQkweDFhMDAKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1ZfRklMVEVSX0NPRUZfSU5ERVgJ CTB4MWEwOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfVl9GSUxURVJfQ09FRl9EQVRBCQkweDFh MTAKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX0lOSVRfT0ZGU0VUCQkJMHgxYTIwCisrI2RlZmlu ZSBEQ19GUkFNRUJVRkZFUl9DT0xPUl9LRVkJCQkweDE1MDgKKysjZGVmaW5lIERDX0ZSQU1FQlVG RkVSX0NPTE9SX0tFWV9ISUdICQkJMHgxNTEwCisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9DTEVB Ul9WQUxVRQkJCTB4MWExOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfQ09MT1JfVEFCTEVfSU5E RVgJCTB4MTgxOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfQ09MT1JfVEFCTEVfREFUQQkJCTB4 MTgyMAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfQkdfQ09MT1IJCQkJMHgxNTI4CisrI2RlZmlu ZSBEQ19GUkFNRUJVRkZFUl9ST0lfT1JJR0lOCQkJMHgxY2IwCisrI2RlZmluZSBEQ19GUkFNRUJV RkZFUl9ST0lfU0laRQkJCQkweDFjYjgKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1dBVEVSX01B UksJCQkweDFjZTgKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX0RFR0FNTUFfSU5ERVgJCQkweDFk ODgKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX0RFR0FNTUFfREFUQQkJCTB4MWQ5MAorKyNkZWZp bmUgRENfRlJBTUVCVUZGRVJfREVHQU1NQV9FWF9EQVRBCQkJMHgxZDk4CisrI2RlZmluZSBEQ19G UkFNRUJVRkZFUl9ZVVZUT1JHQl9DT0VGMAkJCTB4MWRhMAorKyNkZWZpbmUgRENfRlJBTUVCVUZG RVJfWVVWVE9SR0JfQ09FRjEJCQkweDFkYTgKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1lVVlRP UkdCX0NPRUYyCQkJMHgxZGIwCisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9ZVVZUT1JHQl9DT0VG MwkJCTB4MWRiOAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfWVVWVE9SR0JfQ09FRjQJCQkweDFl MDAKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1lVVlRPUkdCX0NPRUZEMAkJCTB4MWUwOAorKyNk ZWZpbmUgRENfRlJBTUVCVUZGRVJfWVVWVE9SR0JfQ09FRkQxCQkJMHgxZTEwCisrI2RlZmluZSBE Q19GUkFNRUJVRkZFUl9ZVVZUT1JHQl9DT0VGRDIJCQkweDFlMTgKKysjZGVmaW5lIERDX0ZSQU1F QlVGRkVSX1lfQ0xBTVBfQk9VTkQJCQkweDFlODgKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1VW X0NMQU1QX0JPVU5ECQkJMHgxZTkwCisrI2RlZmluZSBEQ19GUkFNRUJVRkZFUl9SR0JUT1JHQl9D T0VGMAkJCTB4MWUyMAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfUkdCVE9SR0JfQ09FRjEJCQkw eDFlMjgKKysjZGVmaW5lIERDX0ZSQU1FQlVGRkVSX1JHQlRPUkdCX0NPRUYyCQkJMHgxZTMwCisr I2RlZmluZSBEQ19GUkFNRUJVRkZFUl9SR0JUT1JHQl9DT0VGMwkJCTB4MWUzOAorKyNkZWZpbmUg RENfRlJBTUVCVUZGRVJfUkdCVE9SR0JfQ09FRjQJCQkweDFlNDAKKysjZGVmaW5lIERDX0ZSQU1F QlVGRkVSX0JMRU5EX0NPTkZJRwkJCTB4MjUxMAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfU1JD X0dMT0JBTF9DT0xPUgkJCTB4MjUwMAorKyNkZWZpbmUgRENfRlJBTUVCVUZGRVJfRFNUX0dMT0JB TF9DT0xPUgkJCTB4MjUwOAorKworKyNkZWZpbmUgRENfT1ZFUkxBWV9DT05GSUcJCQkJMHgxNTQw CisrI2RlZmluZSBEQ19PVkVSTEFZX0NPTkZJR19FWAkJCQkweDI1NDAKKysjZGVmaW5lIERDX09W RVJMQVlfU0NBTEVfQ09ORklHCQkJCTB4MWMwMAorKyNkZWZpbmUgRENfT1ZFUkxBWV9CTEVORF9D T05GSUcJCQkJMHgxNTgwCisrI2RlZmluZSBEQ19PVkVSTEFZX1RPUF9MRUZUCQkJCTB4MTY0MAor KyNkZWZpbmUgRENfT1ZFUkxBWV9CT1RUT01fUklHSFQJCQkJMHgxNjgwCisrI2RlZmluZSBEQ19P VkVSTEFZX0FERFJFU1MJCQkJMHgxNWMwCisrI2RlZmluZSBEQ19PVkVSTEFZX1VfQUREUkVTUwkJ CQkweDE4NDAKKysjZGVmaW5lIERDX09WRVJMQVlfVl9BRERSRVNTCQkJCTB4MTg4MAorKyNkZWZp bmUgRENfT1ZFUkxBWV9TVFJJREUJCQkJMHgxNjAwCisrI2RlZmluZSBEQ19PVkVSTEFZX1VfU1RS SURFCQkJCTB4MThjMAorKyNkZWZpbmUgRENfT1ZFUkxBWV9WX1NUUklERQkJCQkweDE5MDAKKysj ZGVmaW5lIERDX09WRVJMQVlfU0laRQkJCQkJMHgxN2MwCisrI2RlZmluZSBEQ19PVkVSTEFZX1ND QUxFX0ZBQ1RPUl9YCQkJMHgxYTQwCisrI2RlZmluZSBEQ19PVkVSTEFZX1NDQUxFX0ZBQ1RPUl9Z CQkJMHgxYTgwCisrI2RlZmluZSBEQ19PVkVSTEFZX0hfRklMVEVSX0NPRUZfSU5ERVgJCQkweDFh QzAKKysjZGVmaW5lIERDX09WRVJMQVlfSF9GSUxURVJfQ09FRl9EQVRBCQkJMHgxYjAwCisrI2Rl ZmluZSBEQ19PVkVSTEFZX1ZfRklMVEVSX0NPRUZfSU5ERVgJCQkweDFiNDAKKysjZGVmaW5lIERD X09WRVJMQVlfVl9GSUxURVJfQ09FRl9EQVRBCQkJMHgxYjgwCisrI2RlZmluZSBEQ19PVkVSTEFZ X0lOSVRfT0ZGU0VUCQkJCTB4MWJDMAorKyNkZWZpbmUgRENfT1ZFUkxBWV9DT0xPUl9LRVkJCQkJ MHgxNzQwCisrI2RlZmluZSBEQ19PVkVSTEFZX0NPTE9SX0tFWV9ISUdICQkJMHgxNzgwCisrI2Rl ZmluZSBEQ19PVkVSTEFZX0NMRUFSX1ZBTFVFCQkJCTB4MTk0MAorKyNkZWZpbmUgRENfT1ZFUkxB WV9DT0xPUl9UQUJMRV9JTkRFWAkJCTB4MTk4MAorKyNkZWZpbmUgRENfT1ZFUkxBWV9DT0xPUl9U QUJMRV9EQVRBCQkJMHgxOWMwCisrI2RlZmluZSBEQ19PVkVSTEFZX1NSQ19HTE9CQUxfQ09MT1IJ CQkweDE2YzAKKysjZGVmaW5lIERDX09WRVJMQVlfRFNUX0dMT0JBTF9DT0xPUgkJCTB4MTcwMAor KyNkZWZpbmUgRENfT1ZFUkxBWV9ST0lfT1JJR0lOCQkJCTB4MWQwMAorKyNkZWZpbmUgRENfT1ZF UkxBWV9ST0lfU0laRQkJCQkweDFkNDAKKysjZGVmaW5lIERDX09WRVJMQVlfV0FURVJfTUFSSwkJ CQkweDFkYzAKKysjZGVmaW5lIERDX09WRVJMQVlfREVHQU1NQV9JTkRFWAkJCTB4MjIwMAorKyNk ZWZpbmUgRENfT1ZFUkxBWV9ERUdBTU1BX0RBVEEJCQkJMHgyMjQwCisrI2RlZmluZSBEQ19PVkVS TEFZX0RFR0FNTUFfRVhfREFUQQkJCTB4MjI4MAorKyNkZWZpbmUgRENfT1ZFUkxBWV9ZVVZUT1JH Ql9DT0VGMAkJCTB4MWVjMAorKyNkZWZpbmUgRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGMQkJCTB4 MWYwMAorKyNkZWZpbmUgRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGMgkJCTB4MWY0MAorKyNkZWZp bmUgRENfT1ZFUkxBWV9ZVVZUT1JHQl9DT0VGMwkJCTB4MWY4MAorKyNkZWZpbmUgRENfT1ZFUkxB WV9ZVVZUT1JHQl9DT0VGNAkJCTB4MWZjMAorKyNkZWZpbmUgRENfT1ZFUkxBWV9ZVVZUT1JHQl9D T0VGRDAJCQkweDIwMDAKKysjZGVmaW5lIERDX09WRVJMQVlfWVVWVE9SR0JfQ09FRkQxCQkJMHgy MDQwCisrI2RlZmluZSBEQ19PVkVSTEFZX1lVVlRPUkdCX0NPRUZEMgkJCTB4MjA4MAorKyNkZWZp bmUgRENfT1ZFUkxBWV9ZX0NMQU1QX0JPVU5ECQkJMHgyMmMwCisrI2RlZmluZSBEQ19PVkVSTEFZ X1VWX0NMQU1QX0JPVU5ECQkJMHgyMzAwCisrI2RlZmluZSBEQ19PVkVSTEFZX1JHQlRPUkdCX0NP RUYwCQkJMHgyMGMwCisrI2RlZmluZSBEQ19PVkVSTEFZX1JHQlRPUkdCX0NPRUYxCQkJMHgyMTAw CisrI2RlZmluZSBEQ19PVkVSTEFZX1JHQlRPUkdCX0NPRUYyCQkJMHgyMTQwCisrI2RlZmluZSBE Q19PVkVSTEFZX1JHQlRPUkdCX0NPRUYzCQkJMHgyMTgwCisrI2RlZmluZSBEQ19PVkVSTEFZX1JH QlRPUkdCX0NPRUY0CQkJMHgyMWMwCisrCisrI2RlZmluZSBEQ19DVVJTT1JfQ09ORklHCQkJCTB4 MTQ2OAorKyNkZWZpbmUgRENfQ1VSU09SX0FERFJFU1MJCQkJMHgxNDZjCisrI2RlZmluZSBEQ19D VVJTT1JfTE9DQVRJT04JCQkJMHgxNDcwCisrI2RlZmluZSBEQ19DVVJTT1JfQkFDS0dST1VORAkJ CQkweDE0NzQKKysjZGVmaW5lIERDX0NVUlNPUl9GT1JFR1JPVU5ECQkJCTB4MTQ3OAorKyNkZWZp bmUgRENfQ1VSU09SX0NMS19HQVRJTkcJCQkJMHgxNDg0CisrI2RlZmluZSBEQ19DVVJTT1JfQ09O RklHX0VYCQkJCTB4MjRlOAorKyNkZWZpbmUgRENfQ1VSU09SX09GRlNFVAkJCQkweDEwODAKKysK KysjZGVmaW5lIERDX0RJU1BMQVlfRElUSEVSX0NPTkZJRwkJCTB4MTQxMAorKyNkZWZpbmUgRENf RElTUExBWV9QQU5FTF9DT05GSUcJCQkJMHgxNDE4CisrI2RlZmluZSBEQ19ESVNQTEFZX1BBTkVM X0NPTkZJR19FWAkJCTB4MjUxOAorKyNkZWZpbmUgRENfRElTUExBWV9ESVRIRVJfVEFCTEVfTE9X CQkJMHgxNDIwCisrI2RlZmluZSBEQ19ESVNQTEFZX0RJVEhFUl9UQUJMRV9ISUdICQkJMHgxNDI4 CisrI2RlZmluZSBEQ19ESVNQTEFZX0gJCQkJCTB4MTQzMAorKyNkZWZpbmUgRENfRElTUExBWV9I X1NZTkMJCQkJMHgxNDM4CisrI2RlZmluZSBEQ19ESVNQTEFZX1YJCQkJCTB4MTQ0MAorKyNkZWZp bmUgRENfRElTUExBWV9WX1NZTkMJCQkJMHgxNDQ4CisrI2RlZmluZSBEQ19ESVNQTEFZX0NVUlJF TlRfTE9DQVRJT04JCQkweDE0NTAKKysjZGVmaW5lIERDX0RJU1BMQVlfR0FNTUFfSU5ERVgJCQkJ MHgxNDU4CisrI2RlZmluZSBEQ19ESVNQTEFZX0dBTU1BX0RBVEEJCQkJMHgxNDYwCisrI2RlZmlu ZSBEQ19ESVNQTEFZX0lOVAkJCQkJMHgxNDdjCisrI2RlZmluZSBEQ19ESVNQTEFZX0lOVF9FTkFC TEUJCQkJMHgxNDgwCisrI2RlZmluZSBEQ19ESVNQTEFZX0RCSV9DT05GSUcJCQkJMHgxNDg4Cisr I2RlZmluZSBEQ19ESVNQTEFZX0dFTkVSQUxfQ09ORklHCQkJMHgxNGIwCisrI2RlZmluZSBEQ19E SVNQTEFZX0RQSV9DT05GSUcJCQkJMHgxNGI4CisrI2RlZmluZSBEQ19ESVNQTEFZX1BBTkVMX1NU QVJUCQkJCTB4MWNjYworKyNkZWZpbmUgRENfRElTUExBWV9ERUJVR19DT1VOVEVSX1NFTEVDVAkJ CTB4MTRkMAorKyNkZWZpbmUgRENfRElTUExBWV9ERUJVR19DT1VOVEVSX1ZBTFVFCQkJMHgxNGQ4 CisrI2RlZmluZSBEQ19ESVNQTEFZX0RQX0NPTkZJRwkJCQkweDFjZDAKKysjZGVmaW5lIERDX0RJ U1BMQVlfR0FNTUFfRVhfSU5ERVgJCQkweDFjZjAKKysjZGVmaW5lIERDX0RJU1BMQVlfR0FNTUFf RVhfREFUQQkJCTB4MWNmOAorKyNkZWZpbmUgRENfRElTUExBWV9HQU1NQV9FWF9PTkVfREFUQQkJ CTB4MWQ4MAorKyNkZWZpbmUgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGMAkJCTB4MWU0OAorKyNk ZWZpbmUgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGMQkJCTB4MWU1MAorKyNkZWZpbmUgRENfRElT UExBWV9SR0JUT1lVVl9DT0VGMgkJCTB4MWU1OAorKyNkZWZpbmUgRENfRElTUExBWV9SR0JUT1lV Vl9DT0VGMwkJCTB4MWU2MAorKyNkZWZpbmUgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGNAkJCTB4 MWU2OAorKyNkZWZpbmUgRENfRElTUExBWV9SR0JUT1lVVl9DT0VGRDAJCQkweDFlNzAKKysjZGVm aW5lIERDX0RJU1BMQVlfUkdCVE9ZVVZfQ09FRkQxCQkJMHgxZTc4CisrI2RlZmluZSBEQ19ESVNQ TEFZX1JHQlRPWVVWX0NPRUZEMgkJCTB4MWU4MAorKworKyNkZWZpbmUgRENfQ0xLX0dBVFRJTkcJ CQkJCTB4MWEyOAorKyNkZWZpbmUgRENfUU9TX0NPTkZJRwkJCQkJMHgxYTM4CisrCisrI2RlZmlu ZSBEQ19UUkFOU1BBUkVOQ1lfT1BBUVVFCQkJCTB4MDAKKysjZGVmaW5lIERDX1RSQU5TUEFSRU5D WV9LRVkJCQkJMHgwMgorKyNkZWZpbmUgRENfRElTUExBWV9ESVRIRVJUQUJMRV9MT1cJCQkweDdi NDhmM2MwCisrI2RlZmluZSBEQ19ESVNQTEFZX0RJVEhFUlRBQkxFX0hJR0gJCQkweDU5NmFkMWUy CisrCisrI2RlZmluZSBHQU1NQV9TSVpFCQkJCQkyNTYKKysjZGVmaW5lIEdBTU1BX0VYX1NJWkUJ CQkJCTMwMAorKyNkZWZpbmUgREVHQU1NQV9TSVpFCQkJCQkyNjAKKysKKysjZGVmaW5lIFJHQl9U T19SR0JfVEFCTEVfU0laRQkJCQk5CisrI2RlZmluZSBZVVZfVE9fUkdCX1RBQkxFX1NJWkUJCQkJ MTYKKysjZGVmaW5lIFJHQl9UT19ZVVZfVEFCTEVfU0laRQkJCQkxMgorKworKyNkZWZpbmUgRENf TEFZRVJfTlVNCQkJCQk2CisrI2RlZmluZSBEQ19ESVNQTEFZX05VTQkJCQkJMgorKyNkZWZpbmUg RENfQ1VSU09SX05VTQkJCQkJMgorKworK2VudW0gZGNfY2hpcF9yZXYgeworKwlEQ19SRVZfMCwv KiBGb3IgSFdfUkVWXzU3MjAsSFdfUkVWXzU3MjFfMzExICovCisrCURDX1JFVl8xLC8qIEZvciBI V19SRVZfNTcyMV8zMEIgKi8KKysJRENfUkVWXzIsLyogRm9yIEhXX1JFVl81NzIxXzMxMCAqLwor K307CisrCisrZW51bSBkY19od19wbGFuZV9pZCB7CisrCVBSSU1BUllfUExBTkVfMCwKKysJT1ZF UkxBWV9QTEFORV8wLAorKwlPVkVSTEFZX1BMQU5FXzEsCisrCVBSSU1BUllfUExBTkVfMSwKKysJ T1ZFUkxBWV9QTEFORV8yLAorKwlPVkVSTEFZX1BMQU5FXzMsCisrCUNVUlNPUl9QTEFORV8wLAor KwlDVVJTT1JfUExBTkVfMSwKKysJUExBTkVfTlVNCisrfTsKKysKKytlbnVtIGRjX2h3X2NvbG9y X2Zvcm1hdCB7CisrCUZPUk1BVF9YNFI0RzRCNCwvLzAKKysJRk9STUFUX0E0UjRHNEI0LC8vMQor KwlGT1JNQVRfWDFSNUc1QjUsLy8yCisrCUZPUk1BVF9BMVI1RzVCNSwvLzMKKysJRk9STUFUX1I1 RzZCNSwvLzQKKysJRk9STUFUX1g4UjhHOEI4LC8vNQorKwlGT1JNQVRfQThSOEc4QjgsLy82Cisr CUZPUk1BVF9ZVVkyLC8vNworKwlGT1JNQVRfVVlWWSwvLzgKKysJRk9STUFUX0lOREVYOCwvLzkK KysJRk9STUFUX01PTk9DSFJPTUUsLy8xMAorKwlGT1JNQVRfWVYxMiA9IDB4ZiwKKysJRk9STUFU X0E4LC8vMTYKKysJRk9STUFUX05WMTIsLy8xNworKwlGT1JNQVRfTlYxNiwvLzE4CisrCUZPUk1B VF9SRzE2LC8vMTkKKysJRk9STUFUX1I4LC8vMjAKKysJRk9STUFUX05WMTJfMTBCSVQsLy8yMQor KwlGT1JNQVRfQTJSMTBHMTBCMTAsLy8yMgorKwlGT1JNQVRfTlYxNl8xMEJJVCwvLzIzCisrCUZP Uk1BVF9JTkRFWDEsLy8yNAorKwlGT1JNQVRfSU5ERVgyLC8vMjUKKysJRk9STUFUX0lOREVYNCwv LzI2CisrCUZPUk1BVF9QMDEwLC8vMjcKKysJRk9STUFUX1lVVjQ0NCwvLzI4CisrCUZPUk1BVF9Z VVY0NDRfMTBCSVQsLy8yOQorK307CisrCisrZW51bSBkY19od195dXZfY29sb3Jfc3BhY2Ugewor KwlDT0xPUl9TUEFDRV82MDEgPSAwLAorKwlDT0xPUl9TUEFDRV83MDkgPSAxLAorKwlDT0xPUl9T UEFDRV8yMDIwID0gMywKKyt9OworKworK2VudW0gZGNfaHdfcm90YXRpb24geworKwlST1RfMCA9 IDAsCisrCVJPVF85MCA9IDQsCisrCVJPVF8xODAgPSA1LAorKwlST1RfMjcwID0gNiwKKysJRkxJ UF9YID0gMSwKKysJRkxJUF9ZID0gMiwKKysJRkxJUF9YWSA9IDMsCisrfTsKKysKKytlbnVtIGRj X2h3X3N3aXp6bGUgeworKwlTV0laWkxFX0FSR0IgPSAwLAorKwlTV0laWkxFX1JHQkEsCisrCVNX SVpaTEVfQUJHUiwKKysJU1dJWlpMRV9CR1JBLAorK307CisrCisrZW51bSBkY19od19vdXQgewor KwlPVVRfRFBJLAorKwlPVVRfRFAsCisrfTsKKysKKytlbnVtIGRjX2h3X2N1cnNvcl9zaXplIHsK KysJQ1VSU09SX1NJWkVfMzJYMzIgPSAwLAorKwlDVVJTT1JfU0laRV82NFg2NCwKKyt9OworKwor K2VudW0gZGNfaHdfYmxlbmRfbW9kZSB7CisrCS8qIG91dC5yZ2IgPSBwbGFuZV9hbHBoYSAqIGZn LnJnYiArCisrCSAqCQkoMSAtIChwbGFuZV9hbHBoYSAqIGZnLmFscGhhKSkgKiBiZy5yZ2IKKysJ ICovCisrCUJMRU5EX1BSRU1VTFRJLAorKwkvKiBvdXQucmdiID0gcGxhbmVfYWxwaGEgKiBmZy5h bHBoYSAqIGZnLnJnYiArCisrCSAqCQkoMSAtIChwbGFuZV9hbHBoYSAqIGZnLmFscGhhKSkgKiBi Zy5yZ2IKKysJICovCisrCUJMRU5EX0NPVkVSQUdFLAorKwkvKiBvdXQucmdiID0gcGxhbmVfYWxw aGEgKiBmZy5yZ2IgKworKwkgKgkJKDEgLSBwbGFuZV9hbHBoYSkgKiBiZy5yZ2IKKysJICovCisr CUJMRU5EX1BJWEVMX05PTkUsCisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfcGxhbmVfcmVnIHsKKysJ dTMyIHlfYWRkcmVzczsKKysJdTMyIHVfYWRkcmVzczsKKysJdTMyIHZfYWRkcmVzczsKKysJdTMy IHlfc3RyaWRlOworKwl1MzIgdV9zdHJpZGU7CisrCXUzMiB2X3N0cmlkZTsKKysJdTMyIHNpemU7 CisrCXUzMiB0b3BfbGVmdDsKKysJdTMyIGJvdHRvbV9yaWdodDsKKysJdTMyIHNjYWxlX2ZhY3Rv cl94OworKwl1MzIgc2NhbGVfZmFjdG9yX3k7CisrCXUzMiBoX2ZpbHRlcl9jb2VmX2luZGV4Owor Kwl1MzIgaF9maWx0ZXJfY29lZl9kYXRhOworKwl1MzIgdl9maWx0ZXJfY29lZl9pbmRleDsKKysJ dTMyIHZfZmlsdGVyX2NvZWZfZGF0YTsKKysJdTMyIGluaXRfb2Zmc2V0OworKwl1MzIgY29sb3Jf a2V5OworKwl1MzIgY29sb3Jfa2V5X2hpZ2g7CisrCXUzMiBjbGVhcl92YWx1ZTsKKysJdTMyIGNv bG9yX3RhYmxlX2luZGV4OworKwl1MzIgY29sb3JfdGFibGVfZGF0YTsKKysJdTMyIHNjYWxlX2Nv bmZpZzsKKysJdTMyIHdhdGVyX21hcms7CisrCXUzMiBkZWdhbW1hX2luZGV4OworKwl1MzIgZGVn YW1tYV9kYXRhOworKwl1MzIgZGVnYW1tYV9leF9kYXRhOworKwl1MzIgc3JjX2dsb2JhbF9jb2xv cjsKKysJdTMyIGRzdF9nbG9iYWxfY29sb3I7CisrCXUzMiBibGVuZF9jb25maWc7CisrCXUzMiBy b2lfb3JpZ2luOworKwl1MzIgcm9pX3NpemU7CisrCXUzMiB5dXZfdG9fcmdiX2NvZWYwOworKwl1 MzIgeXV2X3RvX3JnYl9jb2VmMTsKKysJdTMyIHl1dl90b19yZ2JfY29lZjI7CisrCXUzMiB5dXZf dG9fcmdiX2NvZWYzOworKwl1MzIgeXV2X3RvX3JnYl9jb2VmNDsKKysJdTMyIHl1dl90b19yZ2Jf Y29lZmQwOworKwl1MzIgeXV2X3RvX3JnYl9jb2VmZDE7CisrCXUzMiB5dXZfdG9fcmdiX2NvZWZk MjsKKysJdTMyIHlfY2xhbXBfYm91bmQ7CisrCXUzMiB1dl9jbGFtcF9ib3VuZDsKKysJdTMyIHJn Yl90b19yZ2JfY29lZjA7CisrCXUzMiByZ2JfdG9fcmdiX2NvZWYxOworKwl1MzIgcmdiX3RvX3Jn Yl9jb2VmMjsKKysJdTMyIHJnYl90b19yZ2JfY29lZjM7CisrCXUzMiByZ2JfdG9fcmdiX2NvZWY0 OworK307CisrCisrc3RydWN0IGRjX2h3X2ZiIHsKKysJdTMyIHlfYWRkcmVzczsKKysJdTMyIHVf YWRkcmVzczsKKysJdTMyIHZfYWRkcmVzczsKKysJdTMyIGNsZWFyX3ZhbHVlOworKwl1MzIgd2F0 ZXJfbWFyazsKKysJdTE2IHlfc3RyaWRlOworKwl1MTYgdV9zdHJpZGU7CisrCXUxNiB2X3N0cmlk ZTsKKysJdTE2IHdpZHRoOworKwl1MTYgaGVpZ2h0OworKwl1OAlmb3JtYXQ7CisrCXU4CXRpbGVf bW9kZTsKKysJdTgJcm90YXRpb247CisrCXU4CXl1dl9jb2xvcl9zcGFjZTsKKysJdTgJc3dpenps ZTsKKysJdTgJdXZfc3dpenpsZTsKKysJdTgJenBvczsKKysJdTgJZGlzcGxheV9pZDsKKysJYm9v bAljbGVhcl9lbmFibGU7CisrCWJvb2wJZGVjX2VuYWJsZTsKKysJYm9vbAllbmFibGU7CisrCWJv b2wJZGlydHk7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfc2NhbGUgeworKwl1MzIgc2NhbGVfZmFj dG9yX3g7CisrCXUzMiBzY2FsZV9mYWN0b3JfeTsKKysJYm9vbAllbmFibGU7CisrCWJvb2wJZGly dHk7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfcG9zaXRpb24geworKwl1MTYgc3RhcnRfeDsKKysJ dTE2IHN0YXJ0X3k7CisrCXUxNiBlbmRfeDsKKysJdTE2IGVuZF95OworKwlib29sCWRpcnR5Owor K307CisrCisrc3RydWN0IGRjX2h3X2JsZW5kIHsKKysJdTgJYWxwaGE7CisrCXU4CWJsZW5kX21v ZGU7CisrCWJvb2wJZGlydHk7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfY29sb3JrZXkgeworKwl1 MzIgY29sb3JrZXk7CisrCXUzMiBjb2xvcmtleV9oaWdoOworKwl1OAl0cmFuc3BhcmVuY3k7Cisr CWJvb2wgZGlydHk7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfcm9pIHsKKysJdTE2IHg7CisrCXUx NiB5OworKwl1MTYgd2lkdGg7CisrCXUxNiBoZWlnaHQ7CisrCWJvb2wgZW5hYmxlOworKwlib29s IGRpcnR5OworK307CisrCisrc3RydWN0IGRjX2h3X2N1cnNvciB7CisrCXUzMiBhZGRyZXNzOwor Kwl1MTYgeDsKKysJdTE2IHk7CisrCXUxNiBob3RfeDsKKysJdTE2IGhvdF95OworKwl1OAlzaXpl OworKwl1OAlkaXNwbGF5X2lkOworKwlib29sCWVuYWJsZTsKKysJYm9vbAlkaXJ0eTsKKyt9Owor KworK3N0cnVjdCBkY19od19kaXNwbGF5IHsKKysJdTMyIGJ1c19mb3JtYXQ7CisrCXUxNiBoX2Fj dGl2ZTsKKysJdTE2IGhfdG90YWw7CisrCXUxNiBoX3N5bmNfc3RhcnQ7CisrCXUxNiBoX3N5bmNf ZW5kOworKwl1MTYgdl9hY3RpdmU7CisrCXUxNiB2X3RvdGFsOworKwl1MTYgdl9zeW5jX3N0YXJ0 OworKwl1MTYgdl9zeW5jX2VuZDsKKysJdTE2IHN5bmNfbW9kZTsKKysJdTMyIGJnX2NvbG9yOwor Kwl1OAlpZDsKKysJYm9vbAloX3N5bmNfcG9sYXJpdHk7CisrCWJvb2wJdl9zeW5jX3BvbGFyaXR5 OworKwlib29sCWVuYWJsZTsKKysJYm9vbAlzeW5jX2VuYWJsZTsKKysJYm9vbAlkaXRoZXJfZW5h YmxlOworK307CisrCisrc3RydWN0IGRjX2h3X2dhbW1hIHsKKysJdTE2IGdhbW1hW0dBTU1BX0VY X1NJWkVdWzNdOworKwlib29sCWVuYWJsZTsKKysJYm9vbAlkaXJ0eTsKKyt9OworKworK3N0cnVj dCBkY19od19kZWdhbW1hIHsKKysJdTE2IGRlZ2FtbWFbREVHQU1NQV9TSVpFXVszXTsKKysJdTMy IG1vZGU7CisrCWJvb2wJZGlydHk7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfcGxhbmUgeworKwlz dHJ1Y3QgZGNfaHdfZmIJCQlmYjsKKysJc3RydWN0IGRjX2h3X3Bvc2l0aW9uCXBvczsKKysJc3Ry dWN0IGRjX2h3X3NjYWxlCQlzY2FsZTsKKysJc3RydWN0IGRjX2h3X2JsZW5kCQlibGVuZDsKKysJ c3RydWN0IGRjX2h3X3JvaQkJcm9pOworKwlzdHJ1Y3QgZGNfaHdfY29sb3JrZXkJY29sb3JrZXk7 CisrCXN0cnVjdCBkY19od19kZWdhbW1hCWRlZ2FtbWE7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdf cW9zIHsKKysJdTgJICBsb3dfdmFsdWU7CisrCXU4CSAgaGlnaF92YWx1ZTsKKysJYm9vbCAgZGly dHk7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHdfcmVhZCB7CisrCXUzMgkJCXJlZzsKKysJdTMyCQkJ dmFsdWU7CisrfTsKKysKKytzdHJ1Y3QgZGNfaHc7Cisrc3RydWN0IGRjX2h3X2Z1bmNzIHsKKysJ dm9pZCAoKmdhbW1hKShzdHJ1Y3QgZGNfaHcgKmh3KTsKKysJdm9pZCAoKnBsYW5lKShzdHJ1Y3Qg ZGNfaHcgKmh3KTsKKysJdm9pZCAoKmRpc3BsYXkpKHN0cnVjdCBkY19odyAqaHcsIHN0cnVjdCBk Y19od19kaXNwbGF5ICpkaXNwbGF5KTsKKyt9OworKworK3N0cnVjdCBkY19odyB7CisrCWVudW0g ZGNfY2hpcF9yZXYgcmV2OworKwllbnVtIGRjX2h3X291dAkJb3V0W0RDX0RJU1BMQVlfTlVNXTsK KysJdm9pZAkJCSpoaV9iYXNlOworKwl2b2lkCQkJKnJlZ19iYXNlOworKworKwlzdHJ1Y3QgZGNf aHdfZGlzcGxheSBkaXNwbGF5W0RDX0RJU1BMQVlfTlVNXTsKKysJc3RydWN0IGRjX2h3X2dhbW1h CSBnYW1tYVtEQ19ESVNQTEFZX05VTV07CisrCXN0cnVjdCBkY19od19wbGFuZQkgcGxhbmVbRENf TEFZRVJfTlVNXTsKKysJc3RydWN0IGRjX2h3X2N1cnNvciAgY3Vyc29yW0RDX0NVUlNPUl9OVU1d OworKwlzdHJ1Y3QgZGNfaHdfcW9zCSBxb3M7CisrCXN0cnVjdCBkY19od19mdW5jcwkgKmZ1bmM7 CisrCXN0cnVjdCB2c19kY19pbmZvCSAqaW5mbzsKKyt9OworKworK2ludCBkY19od19pbml0KHN0 cnVjdCBkY19odyAqaHcpOworK3ZvaWQgZGNfaHdfZGVpbml0KHN0cnVjdCBkY19odyAqaHcpOwor K3ZvaWQgZGNfaHdfdXBkYXRlX3BsYW5lKHN0cnVjdCBkY19odyAqaHcsIHU4IGlkLAorKwkJCXN0 cnVjdCBkY19od19mYiAqZmIsIHN0cnVjdCBkY19od19zY2FsZSAqc2NhbGUsCisrCQkJc3RydWN0 IGRjX2h3X3Bvc2l0aW9uICpwb3MsIHN0cnVjdCBkY19od19ibGVuZCAqYmxlbmQpOworK3ZvaWQg ZGNfaHdfdXBkYXRlX2RlZ2FtbWEoc3RydWN0IGRjX2h3ICpodywgdTggaWQsIHUzMiBtb2RlKTsK Kyt2b2lkIGRjX2h3X3VwZGF0ZV9yb2koc3RydWN0IGRjX2h3ICpodywgdTggaWQsIHN0cnVjdCBk Y19od19yb2kgKnJvaSk7Cisrdm9pZCBkY19od191cGRhdGVfY29sb3JrZXkoc3RydWN0IGRjX2h3 ICpodywgdTggaWQsCisrCQkJICAgc3RydWN0IGRjX2h3X2NvbG9ya2V5ICpjb2xvcmtleSk7Cisr dm9pZCBkY19od191cGRhdGVfcW9zKHN0cnVjdCBkY19odyAqaHcsIHN0cnVjdCBkY19od19xb3Mg KnFvcyk7Cisrdm9pZCBkY19od191cGRhdGVfY3Vyc29yKHN0cnVjdCBkY19odyAqaHcsIHU4IGlk LCBzdHJ1Y3QgZGNfaHdfY3Vyc29yICpjdXJzb3IpOworK3ZvaWQgZGNfaHdfdXBkYXRlX2dhbW1h KHN0cnVjdCBkY19odyAqaHcsIHU4IGlkLCB1MTYgaW5kZXgsCisrCQkJdTE2IHIsIHUxNiBnLCB1 MTYgYik7Cisrdm9pZCBkY19od19lbmFibGVfZ2FtbWEoc3RydWN0IGRjX2h3ICpodywgdTggaWQs IGJvb2wgZW5hYmxlKTsKKyt2b2lkIGRjX2h3X3NldHVwX2Rpc3BsYXkoc3RydWN0IGRjX2h3ICpo dywgc3RydWN0IGRjX2h3X2Rpc3BsYXkgKmRpc3BsYXkpOworK3ZvaWQgZGNfaHdfZW5hYmxlX2lu dGVycnVwdChzdHJ1Y3QgZGNfaHcgKmh3LCBib29sIGVuYWJsZSk7CisrdTMyIGRjX2h3X2dldF9p bnRlcnJ1cHQoc3RydWN0IGRjX2h3ICpodyk7CisrYm9vbCBkY19od19jaGVja191bmRlcmZsb3co c3RydWN0IGRjX2h3ICpodyk7Cisrdm9pZCBkY19od19lbmFibGVfc2hhZG93X3JlZ2lzdGVyKHN0 cnVjdCBkY19odyAqaHcsIGJvb2wgZW5hYmxlKTsKKyt2b2lkIGRjX2h3X3NldF9vdXQoc3RydWN0 IGRjX2h3ICpodywgZW51bSBkY19od19vdXQgb3V0LCB1OCBpZCk7Cisrdm9pZCBkY19od19jb21t aXQoc3RydWN0IGRjX2h3ICpodyk7CisrCisrI2VuZGlmIC8qIF9fVlNfRENfSFdfSF9fICovCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jIGIvZHJpdmVy cy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jCitpbmRleCBkODRhYWNkNzUxYmMuLmMyOGJm ZDc0ZmZjOSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYu YworKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jCitAQCAtMzIsNiAr MzIsNyBAQAorICNpbmNsdWRlICJ2c19kcnYuaCIKKyAjaW5jbHVkZSAidnNfZmIuaCIKKyAjaW5j bHVkZSAidnNfZ2VtLmgiCisrI2luY2x1ZGUgInZzX2RjLmgiCisgCisgI2RlZmluZSBEUlZfTkFN RQkic3RhcmZpdmUiCisgI2RlZmluZSBEUlZfREVTQwkiU3RhcmZpdmUgRFJNIGRyaXZlciIKK0BA IC0xODEsNiArMTgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfbWFzdGVyX29w cyB2c19kcm1fb3BzID0geworIH07CisgCisgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg KmRybV9zdWJfZHJpdmVyc1tdID0geworKwkmZGNfcGxhdGZvcm1fZHJpdmVyLAorIH07CisgCisg I2RlZmluZSBOVU1fRFJNX0RSSVZFUlMgXAorLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTctZHJtLXZlcmlzaWxpY29uLUFkZC1zdGFyZml2ZS1o ZG1pLWRyaXZlci5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDU3LWRybS12ZXJp c2lsaWNvbi1BZGQtc3RhcmZpdmUtaGRtaS1kcml2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNGZlNGZjODExNmMwYQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDU3LWRybS12ZXJpc2lsaWNvbi1BZGQtc3RhcmZp dmUtaGRtaS1kcml2ZXIucGF0Y2gKQEAgLTAsMCArMSwxMzE4IEBACitGcm9tIDdjZDJhZDExM2I4 MmY4NTkyZGZjOTAyM2IyZWM2ZjY0ODJlYTgyMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBLZWl0aCBaaGFvIDxrZWl0aC56aGFvQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBGcmks IDIgSnVuIDIwMjMgMTU6NDA6NDMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA1Ny83Ml0gZHJtL3Zl cmlzaWxpY29uOiBBZGQgc3RhcmZpdmUgaGRtaSBkcml2ZXIKKworQWRkIEhETUkgZGlydmVyIGZv ciBTdGFyRml2ZSBTb0MgSkg3MTEwLgorCitTaWduZWQtb2ZmLWJ5OiBLZWl0aCBaaGFvIDxrZWl0 aC56aGFvQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGlj b24vS2NvbmZpZyAgICAgICAgIHwgIDExICsKKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24v TWFrZWZpbGUgICAgICAgIHwgICAxICsKKyBkcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vc3Rh cmZpdmVfaGRtaS5jIHwgOTI4ICsrKysrKysrKysrKysrKysrKysrCisgZHJpdmVycy9ncHUvZHJt L3ZlcmlzaWxpY29uL3N0YXJmaXZlX2hkbWkuaCB8IDI5NiArKysrKysrCisgZHJpdmVycy9ncHUv ZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jICAgICAgICB8ICAgNiArCisgZHJpdmVycy9ncHUvZHJt L3ZlcmlzaWxpY29uL3ZzX2Rydi5oICAgICAgICB8ICAgNCArCisgNiBmaWxlcyBjaGFuZ2VkLCAx MjQ2IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3Zl cmlzaWxpY29uL3N0YXJmaXZlX2hkbWkuYworIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vdmVyaXNpbGljb24vc3RhcmZpdmVfaGRtaS5oCisKK2RpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmVyaXNpbGljb24vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNv bi9LY29uZmlnCitpbmRleCA4OWQxMjE4NWY3M2IuLjM1ZTg1YWM0MWIxMCAxMDA2NDQKKy0tLSBh L2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnCisrKysgYi9kcml2ZXJzL2dwdS9k cm0vdmVyaXNpbGljb24vS2NvbmZpZworQEAgLTExLDMgKzExLDE0IEBAIGNvbmZpZyBEUk1fVkVS SVNJTElDT04KKyAJICBUaGlzIGRyaXZlciBwcm92aWRlcyBWZXJpU2lsaWNvbiBrZXJuZWwgbW9k ZQorIAkgIHNldHRpbmcgYW5kIGJ1ZmZlciBtYW5hZ2VtZW50LiBJdCBkb2VzIG5vdAorIAkgIHBy b3ZpZGUgMkQgb3IgM0QgYWNjZWxlcmF0aW9uLgorKworK2NvbmZpZyBTVEFSRklWRV9IRE1JCisr CWJvb2wgIlN0YXJmaXZlIHNwZWNpZmljIGV4dGVuc2lvbnMgSERNSSIKKysJaGVscAorKwkgICBU aGlzIHNlbGVjdHMgc3VwcG9ydCBmb3IgU3RhckZpdmUgU29DIHNwZWNpZmljIGV4dGVuc2lvbnMK KysJICAgZm9yIHRoZSBJbm5vc2lsaWNvbiBIRE1JIGRyaXZlci4gSWYgeW91IHdhbnQgdG8gZW5h YmxlCisrCSAgIEhETUkgb24gSkg3MTEwIGJhc2VkIFNvQywgeW91IHNob3VsZCBzZWxlY3QgdGhp cyBvcHRpb24uCisrCisrCSAgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNo b29zZSBNIGhlcmUuCisrCisrCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxp Y29uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL01ha2VmaWxlCitpbmRl eCAwZWQyNWI1ZTMwNjIuLmViZTJjOTRmNTI5YSAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92ZXJpc2lsaWNvbi9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L01ha2VmaWxlCitAQCAtOCw1ICs4LDYgQEAgdnNfZHJtLW9ianMgOj0gdnNfZGNfaHcubyBcCisg CQl2c19nZW0ubyBcCisgCQl2c19wbGFuZS5vCisgCisrdnNfZHJtLSQoQ09ORklHX1NUQVJGSVZF X0hETUkpICs9IHN0YXJmaXZlX2hkbWkubworIG9iai0kKENPTkZJR19EUk1fVkVSSVNJTElDT04p ICs9IHZzX2RybS5vCisgCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29u L3N0YXJmaXZlX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9zdGFyZml2ZV9o ZG1pLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLjEyOGVjY2Ew MzMwOQorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3N0 YXJmaXZlX2hkbWkuYworQEAgLTAsMCArMSw5MjggQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vbmx5CisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUg VGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+Cisr I2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgorKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgor KyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKysjaW5jbHVkZSA8bGludXgvaGRtaS5oPgorKyNpbmNs dWRlIDxsaW51eC9pMmMuaD4KKysjaW5jbHVkZSA8bGludXgvaXJxLmg+CisrI2luY2x1ZGUgPGxp bnV4L21mZC9zeXNjb24uaD4KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUg PGxpbnV4L211dGV4Lmg+CisrI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgorKyNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+CisrI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+CisrCisrI2lu Y2x1ZGUgPGRybS9icmlkZ2UvZHdfaGRtaS5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19o ZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+CisrI2luY2x1ZGUgPGRybS9kcm1f b2YuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKysjaW5jbHVkZSA8ZHJt L2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgorKworKyNpbmNsdWRlICJzdGFyZml2ZV9oZG1pLmgi CisrI2luY2x1ZGUgInZzX2Rydi5oIgorKworK3N0YXRpYyBzdHJ1Y3Qgc3RhcmZpdmVfaGRtaSAq ZW5jb2Rlcl90b19oZG1pKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKKyt7CisrCXJldHVy biBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IHN0YXJmaXZlX2hkbWksIGVuY29kZXIpOwor K30KKysKKytzdGF0aWMgc3RydWN0IHN0YXJmaXZlX2hkbWkgKmNvbm5lY3Rvcl90b19oZG1pKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCisreworKwlyZXR1cm4gY29udGFpbmVyX29m KGNvbm5lY3Rvciwgc3RydWN0IHN0YXJmaXZlX2hkbWksIGNvbm5lY3Rvcik7CisrfQorKworK3N0 cnVjdCBzdGFyZml2ZV9oZG1pX2kyYyB7CisrCXN0cnVjdCBpMmNfYWRhcHRlciBhZGFwOworKwor Kwl1OCBkZGNfYWRkcjsKKysJdTggc2VnbWVudF9hZGRyOworKwkvKiBwcm90ZWN0cyB0aGUgZWRp ZCBkYXRhIHdoZW4gdXNlIGkyYyBjbWQgdG8gcmVhZCBlZGlkICovCisrCXN0cnVjdCBtdXRleCBs b2NrOworKwlzdHJ1Y3QgY29tcGxldGlvbiBjbXA7CisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3Ry dWN0IHByZV9wbGxfY29uZmlnIHByZV9wbGxfY2ZnX3RhYmxlW10gPSB7CisrCXsgMjUxNzUwMDAs ICAyNTE3NTAwMCwgMSwgIDEwMCwgMiwgMywgMywgMTIsIDMsIDMsIDQsIDAsIDB4ZjU1NTU1fSwK KysJeyAyNTIwMDAwMCwgIDI1MjAwMDAwLCAxLCAgMTAwLCAyLCAzLCAzLCAxMiwgMywgMywgNCwg MCwgMH0sCisrCXsgMjcwMDAwMDAsICAyNzAwMDAwMCwgMSwgIDkwLCAzLCAyLCAyLCAxMCwgMywg MywgNCwgMCwgMH0sCisrCXsgMjcwMjcwMDAsICAyNzAyNzAwMCwgMSwgIDkwLCAzLCAyLCAyLCAx MCwgMywgMywgNCwgMCwgMHgxNzBhM2R9LAorKwl7IDI4MzIwMDAwLCAgMjgzMjAwMDAsIDEsICAy OCwgMiwgMSwgMSwgIDMsIDAsIDMsIDQsIDAsIDB4NTFlYjg1fSwKKysJeyAzMDI0MDAwMCwgIDMw MjQwMDAwLCAxLCAgMzAsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweDNkNzBhM30sCisrCXsg MzE1MDAwMDAsICAzMTUwMDAwMCwgMSwgIDMxLCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMHg3 ZmZmZmZ9LAorKwl7IDMzNzUwMDAwLCAgMzM3NTAwMDAsIDEsICAzMywgMiwgMSwgMSwgIDMsIDAs IDMsIDQsIDAsIDB4Y2ZmZmZmfSwKKysJeyAzNjAwMDAwMCwgIDM2MDAwMDAwLCAxLCAgMzYsIDIs IDEsIDEsICAzLCAwLCAzLCA0LCAwLCAwfSwKKysJeyA0MDAwMDAwMCwgIDQwMDAwMDAwLCAxLCAg ODAsIDIsIDIsIDIsIDEyLCAyLCAyLCAyLCAwLCAwfSwKKysJeyA0Njk3MDAwMCwgIDQ2OTcwMDAw LCAxLCAgNDYsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweGY4NTFlYn0sCisrCXsgNDk1MDAw MDAsICA0OTUwMDAwMCwgMSwgIDQ5LCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMHg3ZmZmZmZ9 LAorKwl7IDQ5MDAwMDAwLCAgNDkwMDAwMDAsIDEsICA0OSwgMiwgMSwgMSwgIDMsIDAsIDMsIDQs IDAsIDB9LAorKwl7IDUwMDAwMDAwLCAgNTAwMDAwMDAsIDEsICA1MCwgMiwgMSwgMSwgIDMsIDAs IDMsIDQsIDAsIDB9LAorKwl7IDU0MDAwMDAwLCAgNTQwMDAwMDAsIDEsICA1NCwgMiwgMSwgMSwg IDMsIDAsIDMsIDQsIDAsIDB9LAorKwl7IDU0MDU0MDAwLCAgNTQwNTQwMDAsIDEsICA1NCwgMiwg MSwgMSwgIDMsIDAsIDMsIDQsIDAsIDB4MGRkMmYxfSwKKysJeyA1NzI4NDAwMCwgIDU3Mjg0MDAw LCAxLCAgNTcsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweDQ4YjQzOX0sCisrCXsgNTgyMzAw MDAsICA1ODIzMDAwMCwgMSwgIDU4LCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMHgzYWUxNDd9 LAorKwl7IDU5MzQxMDAwLCAgNTkzNDEwMDAsIDEsICA1OSwgMiwgMSwgMSwgIDMsIDAsIDMsIDQs IDAsIDB4NTc0YmM2fSwKKysJeyA1OTQwMDAwMCwgIDU5NDAwMDAwLCAxLCAgOTksIDMsIDEsIDEs ICAxLCAzLCAzLCA0LCAwLCAwfSwKKysJeyA2NTAwMDAwMCwgIDY1MDAwMDAwLCAxLCAxMzAsIDIs IDIsIDIsICAxMiwgMCwgMiwgMiwgMCwgMH0sCisrCXsgNjgyNTAwMDAsICA2ODI1MDAwMCwgMSwg NjgsICAyLCAxLCAxLCAgMywgIDAsIDMsIDQsIDAsIDB4M2ZmZmZmfSwKKysJeyA3MTAwMDAwMCwg IDcxMDAwMDAwLCAxLCAgNzEsIDIsIDEsIDEsICAzLCAwLCAzLCAgNCwgMCwgMH0sCisrCXsgNzQx NzYwMDAsICA3NDE3NjAwMCwgMSwgIDk4LCAxLCAyLCAyLCAgMSwgMiwgMywgNCwgMCwgMHhlNmFl NmJ9LAorKwl7IDc0MjUwMDAwLCAgNzQyNTAwMDAsIDEsICA5OSwgMSwgMiwgMiwgIDEsIDIsIDMs IDQsIDAsIDB9LAorKwl7IDc1MDAwMDAwLCAgNzUwMDAwMDAsIDEsICA3NSwgMiwgMSwgMSwgIDMs IDAsIDMsIDQsIDAsIDB9LAorKwl7IDc4NzUwMDAwLCAgNzg3NTAwMDAsIDEsICA3OCwgMiwgMSwg MSwgIDMsIDAsIDMsIDQsIDAsIDB4Y2ZmZmZmfSwKKysJeyA3OTUwMDAwMCwgIDc5NTAwMDAwLCAx LCAgNzksIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweDdmZmZmZn0sCisrCXsgODM1MDAwMDAs ICA4MzUwMDAwMCwgMiwgMTY3LCAyLCAxLCAxLCAgMSwgMCwgMCwgIDYsIDAsIDB9LAorKwl7IDgz NTAwMDAwLCAxMDQzNzUwMDAsIDEsIDEwNCwgMiwgMSwgMSwgIDEsIDEsIDAsICA1LCAwLCAweDYw MDAwMH0sCisrCXsgODQ4NTgwMDAsICA4NDg1ODAwMCwgMSwgIDg1LCAyLCAxLCAxLCAgMywgMCwg MywgIDQsIDAsIDB4ZGJhNWUyfSwKKysJeyA4NTUwMDAwMCwgIDg1NTAwMDAwLCAxLCAgODUsIDIs IDEsIDEsICAzLCAwLCAzLCAgNCwgMCwgMHg3ZmZmZmZ9LAorKwl7IDg1NzUwMDAwLCAgODU3NTAw MDAsIDEsICA4NSwgMiwgMSwgMSwgIDMsIDAsIDMsICA0LCAwLCAweGNmZmZmZn0sCisrCXsgODU4 MDAwMDAsICA4NTgwMDAwMCwgMSwgIDg1LCAyLCAxLCAxLCAgMywgMCwgMywgIDQsIDAsIDB4Y2Nj Y2NjfSwKKysJeyA4ODc1MDAwMCwgIDg4NzUwMDAwLCAxLCAgODgsIDIsIDEsIDEsICAzLCAwLCAz LCAgNCwgMCwgMHhjZmZmZmZ9LAorKwl7IDg5OTEwMDAwLCAgODk5MTAwMDAsIDEsICA4OSwgMiwg MSwgMSwgIDMsIDAsIDMsIDQsIDAsIDB4ZThmNWMxfSwKKysJeyA5MDAwMDAwMCwgIDkwMDAwMDAw LCAxLCAgOTAsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAwfSwKKysJezEwMTAwMDAwMCwgMTAx MDAwMDAwLCAxLCAxMDEsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAwfSwKKysJezEwMjI1MDAw MCwgMTAyMjUwMDAwLCAxLCAxMDIsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweDNmZmZmZn0s CisrCXsxMDY1MDAwMDAsIDEwNjUwMDAwMCwgMSwgMTA2LCAyLCAxLCAxLCAgMywgMCwgMywgNCwg MCwgMHg3ZmZmZmZ9LAorKwl7MTA4MDAwMDAwLCAxMDgwMDAwMDAsIDEsICA5MCwgMywgMCwgMCwg IDUsIDAsIDIsICAyLCAwLCAwfSwKKysJezExOTAwMDAwMCwgMTE5MDAwMDAwLCAxLCAxMTksIDIs IDEsIDEsICAzLCAwLCAzLCAgNCwgMCwgMH0sCisrCXsxMzE0ODEwMDAsIDEzMTQ4MTAwMCwgMSwg IDEzMSwgMiwgMSwgMSwgIDMsIDAsIDMsICA0LCAwLCAweDdiMjJkMX0sCisrCXsxMzUwMDAwMDAs IDEzNTAwMDAwMCwgMSwgIDEzNSwgMiwgMSwgMSwgIDMsIDAsIDMsIDQsIDAsIDB9LAorKwl7MTM2 NzUwMDAwLCAxMzY3NTAwMDAsIDEsICAxMzYsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweGNm ZmZmZn0sCisrCXsxNDcxODAwMDAsIDE0NzE4MDAwMCwgMSwgIDE0NywgMiwgMSwgMSwgIDMsIDAs IDMsIDQsIDAsIDB4MmUxNDdhfSwKKysJezE0ODM1MjAwMCwgMTQ4MzUyMDAwLCAxLCAgOTgsIDEs IDEsIDEsICAxLCAyLCAyLCAyLCAwLCAweGU2YWU2Yn0sCisrCXsxNDg1MDAwMDAsIDE0ODUwMDAw MCwgMSwgIDk5LCAxLCAxLCAxLCAgMSwgMiwgMiwgMiwgMCwgMH0sCisrCXsxNTQwMDAwMDAsIDE1 NDAwMDAwMCwgMSwgMTU0LCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMH0sCisrCXsxNTYwMDAw MDAsIDE1NjAwMDAwMCwgMSwgMTU2LCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMH0sCisrCXsx NTcwMDAwMDAsIDE1NzAwMDAwMCwgMSwgMTU3LCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMH0s CisrCXsxNjIwMDAwMDAsIDE2MjAwMDAwMCwgMSwgMTYyLCAyLCAxLCAxLCAgMywgMCwgMywgNCwg MCwgMH0sCisrCXsxNzQyNTAwMDAsIDE3NDI1MDAwMCwgMSwgMTQ1LCAzLCAwLCAwLCAgNSwgMCwg MiwgMiwgMCwgMHgzNTU1NTV9LAorKwl7MTc0NTAwMDAwLCAxNzQ1MDAwMDAsIDEsIDE3NCwgMiwg MSwgMSwgIDMsIDAsIDMsIDQsIDAsIDB4N2ZmZmZmfSwKKysJezE3NDU3MDAwMCwgMTc0NTcwMDAw LCAxLCAxNzQsIDIsIDEsIDEsICAzLCAwLCAzLCA0LCAwLCAweDkxZWI4NH0sCisrCXsxNzU1MDAw MDAsIDE3NTUwMDAwMCwgMSwgMTc1LCAyLCAxLCAxLCAgMywgMCwgMywgNCwgMCwgMHg3ZmZmZmZ9 LAorKwl7MTg1NTkwMDAwLCAxODU1OTAwMDAsIDEsIDE4NSwgMiwgMSwgMSwgIDMsIDAsIDMsIDQs IDAsIDB4OTcwYTNjfSwKKysJezE4NzAwMDAwMCwgMTg3MDAwMDAwLCAxLCAxODcsIDIsIDEsIDEs ICAzLCAwLCAzLCA0LCAwLCAwfSwKKysJezI0MTUwMDAwMCwgMjQxNTAwMDAwLCAxLCAxNjEsIDEs IDEsIDEsICA0LCAwLCAyLCAgMiwgMCwgMH0sCisrCXsyNDE3MDAwMDAsIDI0MTcwMDAwMCwgMSwg MjQxLCAyLCAxLCAxLCAgMywgMCwgMywgIDQsIDAsIDB4YjMzMzMyfSwKKysJezI2Mjc1MDAwMCwg MjYyNzUwMDAwLCAxLCAyNjIsIDIsIDEsIDEsICAzLCAwLCAzLCAgNCwgMCwgMHhjZmZmZmZ9LAor Kwl7Mjk2NTAwMDAwLCAyOTY1MDAwMDAsIDEsIDI5NiwgMiwgMSwgMSwgIDMsIDAsIDMsICA0LCAw LCAweDdmZmZmZn0sCisrCXsyOTY3MDMwMDAsIDI5NjcwMzAwMCwgMSwgIDk4LCAwLCAxLCAxLCAg MSwgMCwgMiwgIDIsIDAsIDB4ZTZhZTZifSwKKysJezI5NzAwMDAwMCwgMjk3MDAwMDAwLCAxLCAg OTksIDAsIDEsIDEsICAxLCAwLCAyLCAgMiwgMCwgMH0sCisrCXs1OTQwMDAwMDAsIDU5NDAwMDAw MCwgMSwgIDk5LCAwLCAyLCAwLCAgMSwgMCwgMSwgIDEsIDAsIDB9LAorKwl7MCwgMCwgMCwgIDAs IDAsIDAsIDAsICAwLCAwLCAwLCAgMCwgMCwgMH0sCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3Ry dWN0IHBvc3RfcGxsX2NvbmZpZyBwb3N0X3BsbF9jZmdfdGFibGVbXSA9IHsKKysJezI1MjAwMDAw LAkxLCA4MCwgMTMsIDMsIDF9LAorKwl7MjcwMDAwMDAsCTEsIDQwLCAxMSwgMywgMX0sCisrCXsz Mzc1MDAwMCwJMSwgNDAsIDExLCAzLCAxfSwKKysJezQ5MDAwMDAwLAkxLCAyMCwgMSwgMywgM30s CisrCXsyNDE3MDAwMDAsIDEsIDIwLCAxLCAzLCAzfSwKKysJezI5NzAwMDAwMCwgNCwgMjAsIDAs IDAsIDN9LAorKwl7NTk0MDAwMDAwLCA0LCAyMCwgMCwgMCwgMH0sCisrCXsgLyogc2VudGluZWwg Ki8gfQorK307CisrCisraW5saW5lIHU4IGhkbWlfcmVhZGIoc3RydWN0IHN0YXJmaXZlX2hkbWkg KmhkbWksIHUxNiBvZmZzZXQpCisreworKwlyZXR1cm4gcmVhZGxfcmVsYXhlZChoZG1pLT5yZWdz ICsgKG9mZnNldCkgKiAweDA0KTsKKyt9CisrCisraW5saW5lIHZvaWQgaGRtaV93cml0ZWIoc3Ry dWN0IHN0YXJmaXZlX2hkbWkgKmhkbWksIHUxNiBvZmZzZXQsIHUzMiB2YWwpCisreworKwl3cml0 ZWxfcmVsYXhlZCh2YWwsIGhkbWktPnJlZ3MgKyAob2Zmc2V0KSAqIDB4MDQpOworK30KKysKKytp bmxpbmUgdm9pZCBoZG1pX21vZGIoc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWksIHUxNiBvZmZz ZXQsCisrCQkJICAgICB1MzIgbXNrLCB1MzIgdmFsKQorK3sKKysJdTggdGVtcCA9IGhkbWlfcmVh ZGIoaGRtaSwgb2Zmc2V0KSAmIH5tc2s7CisrCisrCXRlbXAgfD0gdmFsICYgbXNrOworKwloZG1p X3dyaXRlYihoZG1pLCBvZmZzZXQsIHRlbXApOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZl X2hkbWlfZW5hYmxlX2Nsa19kZWFzc2VydF9yc3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg c3RhcmZpdmVfaGRtaSAqaGRtaSkKKyt7CisrCWludCByZXQ7CisrCisrCXJldCA9IGNsa19wcmVw YXJlX2VuYWJsZShoZG1pLT5zeXNfY2xrKTsKKysJaWYgKHJldCkgeworKwkJRFJNX0RFVl9FUlJP UihkZXYsICJDYW5ub3QgZW5hYmxlIEhETUkgc3lzIGNsb2NrOiAlZFxuIiwgcmV0KTsKKysJCXJl dHVybiByZXQ7CisrCX0KKysKKysJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGhkbWktPm1jbGsp OworKwlpZiAocmV0KSB7CisrCQlEUk1fREVWX0VSUk9SKGRldiwgIkNhbm5vdCBlbmFibGUgSERN SSBtY2xrIGNsb2NrOiAlZFxuIiwgcmV0KTsKKysJCXJldHVybiByZXQ7CisrCX0KKysJcmV0ID0g Y2xrX3ByZXBhcmVfZW5hYmxlKGhkbWktPmJjbGspOworKwlpZiAocmV0KSB7CisrCQlEUk1fREVW X0VSUk9SKGRldiwgIkNhbm5vdCBlbmFibGUgSERNSSBiY2xrIGNsb2NrOiAlZFxuIiwgcmV0KTsK KysJCXJldHVybiByZXQ7CisrCX0KKysJcmV0ID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChoZG1p LT50eF9yc3QpOworKwlpZiAocmV0IDwgMCkgeworKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8g ZGVhc3NlcnQgdHhfcnN0XG4iKTsKKysJCXJldHVybiByZXQ7CisrCX0KKysJcmV0dXJuIDA7Cisr fQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX2hkbWlfZGlzYWJsZV9jbGtfYXNzZXJ0X3JzdChz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzdGFyZml2ZV9oZG1pICpoZG1pKQorK3sKKysJaW50 IHJldDsKKysKKysJcmV0ID0gcmVzZXRfY29udHJvbF9hc3NlcnQoaGRtaS0+dHhfcnN0KTsKKysJ aWYgKHJldCA8IDApCisrCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhc3NlcnQgdHhfcnN0XG4i KTsKKysKKysJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGhkbWktPnN5c19jbGspOworKwljbGtfZGlz YWJsZV91bnByZXBhcmUoaGRtaS0+bWNsayk7CisrCWNsa19kaXNhYmxlX3VucHJlcGFyZShoZG1p LT5iY2xrKTsKKyt9CisrCisrI2lmZGVmIENPTkZJR19QTV9TTEVFUAorK3N0YXRpYyBpbnQgaGRt aV9zeXN0ZW1fcG1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlyZXR1cm4gcG1f cnVudGltZV9mb3JjZV9zdXNwZW5kKGRldik7CisrfQorKworK3N0YXRpYyBpbnQgaGRtaV9zeXN0 ZW1fcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXJldHVybiBwbV9ydW50aW1l X2ZvcmNlX3Jlc3VtZShkZXYpOworK30KKysjZW5kaWYKKysKKysjaWZkZWYgQ09ORklHX1BNCisr c3RhdGljIGludCBoZG1pX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCisrewor KwlzdHJ1Y3Qgc3RhcmZpdmVfaGRtaSAqaGRtaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKwor KwlzdGFyZml2ZV9oZG1pX2Rpc2FibGVfY2xrX2Fzc2VydF9yc3QoZGV2LCBoZG1pKTsKKysKKysJ cmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpbnQgaGRtaV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3Qg ZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfaGRtaSAqaGRtaSA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOworKworKwlyZXR1cm4gc3RhcmZpdmVfaGRtaV9lbmFibGVfY2xrX2RlYXNz ZXJ0X3JzdChkZXYsIGhkbWkpOworK30KKysjZW5kaWYKKysKKytzdGF0aWMgdm9pZCBzdGFyZml2 ZV9oZG1pX3R4X3BoeV9wb3dlcl9kb3duKHN0cnVjdCBzdGFyZml2ZV9oZG1pICpoZG1pKQorK3sK KysJaGRtaV9tb2RiKGhkbWksIEhETUlfU1lTX0NUUkwsIG1fUE9XRVIsIHZfUFdSX09GRik7Cisr fQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX2hkbWlfdHhfcGh5X3Bvd2VyX29uKHN0cnVjdCBz dGFyZml2ZV9oZG1pICpoZG1pKQorK3sKKysJaGRtaV9tb2RiKGhkbWksIEhETUlfU1lTX0NUUkws IG1fUE9XRVIsIHZfUFdSX09OKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfaGRtaV9j b25maWdfcGxsKHN0cnVjdCBzdGFyZml2ZV9oZG1pICpoZG1pKQorK3sKKysJdTMyIHZhbDsKKysJ dTggcmVnXzFhZF92YWx1ZSA9IGhkbWktPnBvc3RfY2ZnLT5wb3N0X2Rpdl9lbiA/CisrCQkgaGRt aS0+cG9zdF9jZmctPnBvc3RkaXYgOiAweDAwOworKwl1OCByZWdfMWFhX3ZhbHVlID0gaGRtaS0+ cG9zdF9jZmctPnBvc3RfZGl2X2VuID8KKysJCSAweDBlIDogMHgwMjsKKysKKysJaGRtaV93cml0 ZWIoaGRtaSwgU1RBUkZJVkVfUFJFX1BMTF9DT05UUk9MLCBTVEFSRklWRV9QUkVfUExMX1BPV0VS X0RPV04pOworKwloZG1pX3dyaXRlYihoZG1pLCBTVEFSRklWRV9QT1NUX1BMTF9ESVZfMSwKKysJ CSAgICBTVEFSRklWRV9QT1NUX1BMTF9QT1NUX0RJVl9FTkFCTEUgfAorKwkJICAgIFNUQVJGSVZF X1BPU1RfUExMX1JFRkNMS19TRUxfVE1EUyB8CisrCQkgICAgU1RBUkZJVkVfUE9TVF9QTExfUE9X RVJfRE9XTik7CisrCWhkbWlfd3JpdGViKGhkbWksIFNUQVJGSVZFX1BSRV9QTExfRElWXzEsIFNU QVJGSVZFX1BSRV9QTExfUFJFX0RJVihoZG1pLT5wcmVfY2ZnLT5wcmVkaXYpKTsKKysKKysJdmFs ID0gU1RBUkZJVkVfU1BSRUFEX1NQRUNUUlVNX01PRF9ESVNBQkxFIHwgU1RBUkZJVkVfU1BSRUFE X1NQRUNUUlVNX01PRF9ET1dOOworKwlpZiAoIWhkbWktPnByZV9jZmctPmZyYWNkaXYpCisrCQl2 YWwgfD0gU1RBUkZJVkVfUFJFX1BMTF9GUkFDX0RJVl9ESVNBQkxFOworKwloZG1pX3dyaXRlYiho ZG1pLCBTVEFSRklWRV9QUkVfUExMX0RJVl8yLAorKwkJICAgIFNUQVJGSVZFX1BSRV9QTExfRkJf RElWXzExXzgoaGRtaS0+cHJlX2NmZy0+ZmJkaXYpIHwgdmFsKTsKKysJaGRtaV93cml0ZWIoaGRt aSwgU1RBUkZJVkVfUFJFX1BMTF9ESVZfMywKKysJCSAgICBTVEFSRklWRV9QUkVfUExMX0ZCX0RJ Vl83XzAoaGRtaS0+cHJlX2NmZy0+ZmJkaXYpKTsKKysJaGRtaV93cml0ZWIoaGRtaSwgU1RBUkZJ VkVfUFJFX1BMTF9ESVZfNCwKKysJCSAgICBTVEFSRklWRV9QUkVfUExMX1RNRFNDTEtfRElWX0Mo aGRtaS0+cHJlX2NmZy0+dG1kc19kaXZfYykgfAorKwkJICAgIFNUQVJGSVZFX1BSRV9QTExfVE1E U0NMS19ESVZfQShoZG1pLT5wcmVfY2ZnLT50bWRzX2Rpdl9hKSB8CisrCQkgICAgU1RBUkZJVkVf UFJFX1BMTF9UTURTQ0xLX0RJVl9CKGhkbWktPnByZV9jZmctPnRtZHNfZGl2X2IpKTsKKysKKysJ aWYgKGhkbWktPnByZV9jZmctPmZyYWNkaXYpIHsKKysJCWhkbWlfd3JpdGViKGhkbWksIFNUQVJG SVZFX1BSRV9QTExfRlJBQ19ESVZfTCwKKysJCQkgICAgU1RBUkZJVkVfUFJFX1BMTF9GUkFDX0RJ Vl83XzAoaGRtaS0+cHJlX2NmZy0+ZnJhY2RpdikpOworKwkJaGRtaV93cml0ZWIoaGRtaSwgU1RB UkZJVkVfUFJFX1BMTF9GUkFDX0RJVl9NLAorKwkJCSAgICBTVEFSRklWRV9QUkVfUExMX0ZSQUNf RElWXzE1XzgoaGRtaS0+cHJlX2NmZy0+ZnJhY2RpdikpOworKwkJaGRtaV93cml0ZWIoaGRtaSwg U1RBUkZJVkVfUFJFX1BMTF9GUkFDX0RJVl9ILAorKwkJCSAgICBTVEFSRklWRV9QUkVfUExMX0ZS QUNfRElWXzIzXzE2KGhkbWktPnByZV9jZmctPmZyYWNkaXYpKTsKKysJfQorKworKwloZG1pX3dy aXRlYihoZG1pLCBTVEFSRklWRV9QUkVfUExMX0RJVl81LAorKwkJICAgIFNUQVJGSVZFX1BSRV9Q TExfUENMS19ESVZfQShoZG1pLT5wcmVfY2ZnLT5wY2xrX2Rpdl9hKSB8CisrCQkgICAgU1RBUkZJ VkVfUFJFX1BMTF9QQ0xLX0RJVl9CKGhkbWktPnByZV9jZmctPnBjbGtfZGl2X2IpKTsKKysJaGRt aV93cml0ZWIoaGRtaSwgU1RBUkZJVkVfUFJFX1BMTF9ESVZfNiwKKysJCSAgICBTVEFSRklWRV9Q UkVfUExMX1BDTEtfRElWX0MoaGRtaS0+cHJlX2NmZy0+cGNsa19kaXZfYykgfAorKwkJICAgIFNU QVJGSVZFX1BSRV9QTExfUENMS19ESVZfRChoZG1pLT5wcmVfY2ZnLT5wY2xrX2Rpdl9kKSk7Cisr CisrCS8qcHJlLXBsbCBwb3dlciBkb3duKi8KKysJaGRtaV9tb2RiKGhkbWksIFNUQVJGSVZFX1BS RV9QTExfQ09OVFJPTCwgU1RBUkZJVkVfUFJFX1BMTF9QT1dFUl9ET1dOLCAwKTsKKysKKysJaGRt aV9tb2RiKGhkbWksIFNUQVJGSVZFX1BPU1RfUExMX0RJVl8yLCBTVEFSRklWRV9QT1NUX1BMTF9Q cmVfRElWX01BU0ssCisrCQkgIFNUQVJGSVZFX1BPU1RfUExMX1BSRV9ESVYoaGRtaS0+cG9zdF9j ZmctPnByZWRpdikpOworKwloZG1pX3dyaXRlYihoZG1pLCBTVEFSRklWRV9QT1NUX1BMTF9ESVZf MywgaGRtaS0+cG9zdF9jZmctPmZiZGl2ICYgMHhmZik7CisrCWhkbWlfd3JpdGViKGhkbWksIFNU QVJGSVZFX1BPU1RfUExMX0RJVl80LCByZWdfMWFkX3ZhbHVlKTsKKysJaGRtaV93cml0ZWIoaGRt aSwgU1RBUkZJVkVfUE9TVF9QTExfRElWXzEsIHJlZ18xYWFfdmFsdWUpOworK30KKysKKytzdGF0 aWMgdm9pZCBzdGFyZml2ZV9oZG1pX3RtZHNfZHJpdmVyX29uKHN0cnVjdCBzdGFyZml2ZV9oZG1p ICpoZG1pKQorK3sKKysJaGRtaV9tb2RiKGhkbWksIFNUQVJGSVZFX1RNRFNfQ09OVFJPTCwKKysJ CSAgU1RBUkZJVkVfVE1EU19EUklWRVJfRU5BQkxFLCBTVEFSRklWRV9UTURTX0RSSVZFUl9FTkFC TEUpOworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9oZG1pX3N5bmNfdG1kcyhzdHJ1Y3Qg c3RhcmZpdmVfaGRtaSAqaGRtaSkKKyt7CisrCS8qZmlyc3Qgc2VuZCAwIHRvIHRoaXMgYml0LCB0 aGVuIHNlbmQgMSBhbmQga2VlcCAxIGludG8gdGhpcyBiaXQqLworKwloZG1pX3dyaXRlYihoZG1p LCBIRE1JX1NZTkMsIDB4MCk7CisrCWhkbWlfd3JpdGViKGhkbWksIEhETUlfU1lOQywgMHgxKTsK Kyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfaGRtaV9pMmNfaW5pdChzdHJ1Y3Qgc3RhcmZp dmVfaGRtaSAqaGRtaSkKKyt7CisrCWludCBkZGNfYnVzX2ZyZXE7CisrCisrCWRkY19idXNfZnJl cSA9IChoZG1pLT50bWRzX3JhdGUgPj4gMikgLyBIRE1JX1NDTF9SQVRFOworKworKwloZG1pX3dy aXRlYihoZG1pLCBERENfQlVTX0ZSRVFfTCwgZGRjX2J1c19mcmVxICYgMHhGRik7CisrCWhkbWlf d3JpdGViKGhkbWksIEREQ19CVVNfRlJFUV9ILCAoZGRjX2J1c19mcmVxID4+IDgpICYgMHhGRik7 CisrCisrCS8qIENsZWFyIHRoZSBFRElEIGludGVycnVwdCBmbGFnIGFuZCBtdXRlIHRoZSBpbnRl cnJ1cHQgKi8KKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9JTlRFUlJVUFRfTUFTSzEsIDApOwor KwloZG1pX3dyaXRlYihoZG1pLCBIRE1JX0lOVEVSUlVQVF9TVEFUVVMxLCBtX0lOVF9FRElEX1JF QURZKTsKKyt9CisrCisrc3RhdGljIGNvbnN0Cisrc3RydWN0IHByZV9wbGxfY29uZmlnICpzdGFy Zml2ZV9oZG1pX3BoeV9nZXRfcHJlX3BsbF9jZmcoc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWks CisrCQkJCQkJCSB1bnNpZ25lZCBsb25nIHJhdGUpCisreworKwljb25zdCBzdHJ1Y3QgcHJlX3Bs bF9jb25maWcgKmNmZyA9IHByZV9wbGxfY2ZnX3RhYmxlOworKworKwlyYXRlID0gKHJhdGUgLyAx MDAwKSAqIDEwMDA7CisrCWZvciAoOyBjZmctPnBpeGNsb2NrICE9IDA7IGNmZysrKQorKwkJaWYg KGNmZy0+dG1kc2Nsb2NrID09IHJhdGUgJiYgY2ZnLT5waXhjbG9jayA9PSByYXRlKQorKwkJCWJy ZWFrOworKworKwlpZiAoY2ZnLT5waXhjbG9jayA9PSAwKQorKwkJcmV0dXJuIEVSUl9QVFIoLUVJ TlZBTCk7CisrCisrCXJldHVybiBjZmc7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaGRt aV9waHlfY2xrX3NldF9yYXRlKHN0cnVjdCBzdGFyZml2ZV9oZG1pICpoZG1pKQorK3sKKysJaGRt aS0+cG9zdF9jZmcgPSBwb3N0X3BsbF9jZmdfdGFibGU7CisrCisrCWhkbWktPnByZV9jZmcgPSBz dGFyZml2ZV9oZG1pX3BoeV9nZXRfcHJlX3BsbF9jZmcoaGRtaSwgaGRtaS0+dG1kc19yYXRlKTsK KysJaWYgKElTX0VSUihoZG1pLT5wcmVfY2ZnKSkKKysJCXJldHVybiBQVFJfRVJSKGhkbWktPnBy ZV9jZmcpOworKworKwlmb3IgKDsgaGRtaS0+cG9zdF9jZmctPnRtZHNjbG9jayAhPSAwOyBoZG1p LT5wb3N0X2NmZysrKQorKwkJaWYgKGhkbWktPnRtZHNfcmF0ZSA8PSBoZG1pLT5wb3N0X2NmZy0+ dG1kc2Nsb2NrKQorKwkJCWJyZWFrOworKworKwlzdGFyZml2ZV9oZG1pX2NvbmZpZ19wbGwoaGRt aSk7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hkbWlfY29u ZmlnX3ZpZGVvX3RpbWluZyhzdHJ1Y3Qgc3RhcmZpdmVfaGRtaSAqaGRtaSwKKysJCQkJCSAgICAg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCisreworKwlpbnQgdmFsdWU7CisrCS8qIFNl dCBkZXRhaWwgZXh0ZXJuYWwgdmlkZW8gdGltaW5nICovCisrCXZhbHVlID0gbW9kZS0+aHRvdGFs OworKwloZG1pX3dyaXRlYihoZG1pLCBIRE1JX1ZJREVPX0VYVF9IVE9UQUxfTCwgdmFsdWUgJiAw eEZGKTsKKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURFT19FWFRfSFRPVEFMX0gsICh2YWx1 ZSA+PiA4KSAmIDB4RkYpOworKworKwl2YWx1ZSA9IG1vZGUtPmh0b3RhbCAtIG1vZGUtPmhkaXNw bGF5OworKwloZG1pX3dyaXRlYihoZG1pLCBIRE1JX1ZJREVPX0VYVF9IQkxBTktfTCwgdmFsdWUg JiAweEZGKTsKKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURFT19FWFRfSEJMQU5LX0gsICh2 YWx1ZSA+PiA4KSAmIDB4RkYpOworKworKwl2YWx1ZSA9IG1vZGUtPmh0b3RhbCAtIG1vZGUtPmhz eW5jX3N0YXJ0OworKwloZG1pX3dyaXRlYihoZG1pLCBIRE1JX1ZJREVPX0VYVF9IREVMQVlfTCwg dmFsdWUgJiAweEZGKTsKKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURFT19FWFRfSERFTEFZ X0gsICh2YWx1ZSA+PiA4KSAmIDB4RkYpOworKworKwl2YWx1ZSA9IG1vZGUtPmhzeW5jX2VuZCAt IG1vZGUtPmhzeW5jX3N0YXJ0OworKwloZG1pX3dyaXRlYihoZG1pLCBIRE1JX1ZJREVPX0VYVF9I RFVSQVRJT05fTCwgdmFsdWUgJiAweEZGKTsKKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURF T19FWFRfSERVUkFUSU9OX0gsICh2YWx1ZSA+PiA4KSAmIDB4RkYpOworKworKwl2YWx1ZSA9IG1v ZGUtPnZ0b3RhbDsKKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURFT19FWFRfVlRPVEFMX0ws IHZhbHVlICYgMHhGRik7CisrCWhkbWlfd3JpdGViKGhkbWksIEhETUlfVklERU9fRVhUX1ZUT1RB TF9ILCAodmFsdWUgPj4gOCkgJiAweEZGKTsKKysKKysJdmFsdWUgPSBtb2RlLT52dG90YWwgLSBt b2RlLT52ZGlzcGxheTsKKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURFT19FWFRfVkJMQU5L LCB2YWx1ZSAmIDB4RkYpOworKworKwl2YWx1ZSA9IG1vZGUtPnZ0b3RhbCAtIG1vZGUtPnZzeW5j X3N0YXJ0OworKwloZG1pX3dyaXRlYihoZG1pLCBIRE1JX1ZJREVPX0VYVF9WREVMQVksIHZhbHVl ICYgMHhGRik7CisrCisrCXZhbHVlID0gbW9kZS0+dnN5bmNfZW5kIC0gbW9kZS0+dnN5bmNfc3Rh cnQ7CisrCWhkbWlfd3JpdGViKGhkbWksIEhETUlfVklERU9fRVhUX1ZEVVJBVElPTiwgdmFsdWUg JiAweEZGKTsKKysKKysJLyogU2V0IGRldGFpbCBleHRlcm5hbCB2aWRlbyB0aW1pbmcgcG9sYXJp dHkgYW5kIGludGVybGFjZSBtb2RlICovCisrCXZhbHVlID0gdl9FWFRFUkFOTF9WSURFTygxKTsK KysJdmFsdWUgfD0gbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BIU1lOQyA/CisrCQl2X0hT WU5DX1BPTEFSSVRZKDEpIDogdl9IU1lOQ19QT0xBUklUWSgwKTsKKysJdmFsdWUgfD0gbW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQyA/CisrCQl2X1ZTWU5DX1BPTEFSSVRZKDEpIDog dl9WU1lOQ19QT0xBUklUWSgwKTsKKysJdmFsdWUgfD0gbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRSA/CisrCQl2X0lORVRMQUNFKDEpIDogdl9JTkVUTEFDRSgwKTsKKysKKysJ aGRtaV93cml0ZWIoaGRtaSwgSERNSV9WSURFT19USU1JTkdfQ1RMLCB2YWx1ZSk7CisrCXJldHVy biAwOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hkbWlfc2V0dXAoc3RydWN0IHN0YXJm aXZlX2hkbWkgKmhkbWksCisrCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQorK3sKKysJaGRtaV9tb2RiKGhkbWksIFNUQVJGSVZFX0JJQVNfQ09OVFJPTCwgU1RBUkZJVkVf QklBU19FTkFCTEUsIFNUQVJGSVZFX0JJQVNfRU5BQkxFKTsKKysJaGRtaV93cml0ZWIoaGRtaSwg U1RBUkZJVkVfUlhfQ09OVFJPTCwgU1RBUkZJVkVfUlhfRU5BQkxFKTsKKysJaGRtaS0+aGRtaV9k YXRhLnZpYyA9IGRybV9tYXRjaF9jZWFfbW9kZShtb2RlKTsKKysKKysJaGRtaS0+dG1kc19yYXRl ID0gbW9kZS0+Y2xvY2sgKiAxMDAwOworKwlzdGFyZml2ZV9oZG1pX3BoeV9jbGtfc2V0X3JhdGUo aGRtaSk7CisrCisrCXdoaWxlICghKGhkbWlfcmVhZGIoaGRtaSwgU1RBUkZJVkVfUFJFX1BMTF9M T0NLX1NUQVRVUykgJiAweDEpKQorKwkJY29udGludWU7CisrCXdoaWxlICghKGhkbWlfcmVhZGIo aGRtaSwgU1RBUkZJVkVfUE9TVF9QTExfTE9DS19TVEFUVVMpICYgMHgxKSkKKysJCWNvbnRpbnVl OworKworKwkvKnR1cm4gb24gTERPKi8KKysJaGRtaV93cml0ZWIoaGRtaSwgU1RBUkZJVkVfTERP X0NPTlRST0wsIFNUQVJGSVZFX0xET19FTkFCTEUpOworKwkvKnR1cm4gb24gc2VyaWFsaXplciov CisrCWhkbWlfd3JpdGViKGhkbWksIFNUQVJGSVZFX1NFUklBTElFUl9DT05UUk9MLCBTVEFSRklW RV9TRVJJQUxJRVJfRU5BQkxFKTsKKysKKysJc3RhcmZpdmVfaGRtaV90eF9waHlfcG93ZXJfZG93 bihoZG1pKTsKKysJc3RhcmZpdmVfaGRtaV9jb25maWdfdmlkZW9fdGltaW5nKGhkbWksIG1vZGUp OworKwlzdGFyZml2ZV9oZG1pX3R4X3BoeV9wb3dlcl9vbihoZG1pKTsKKysKKysJc3RhcmZpdmVf aGRtaV90bWRzX2RyaXZlcl9vbihoZG1pKTsKKysJc3RhcmZpdmVfaGRtaV9zeW5jX3RtZHMoaGRt aSk7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9oZG1pX2Vu Y29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorKwkJCQkJICAgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisrCQkJCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqX21vZGUpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfaGRtaSAqaGRtaSA9IGVuY29k ZXJfdG9faGRtaShlbmNvZGVyKTsKKysKKysJc3RhcmZpdmVfaGRtaV9zZXR1cChoZG1pLCBhZGpf bW9kZSk7CisrCisrCW1lbWNweSgmaGRtaS0+cHJldmlvdXNfbW9kZSwgYWRqX21vZGUsIHNpemVv ZihoZG1pLT5wcmV2aW91c19tb2RlKSk7CisrfQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX2hk bWlfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorK3sKKysJc3Ry dWN0IHN0YXJmaXZlX2hkbWkgKmhkbWkgPSBlbmNvZGVyX3RvX2hkbWkoZW5jb2Rlcik7CisrCisr CXBtX3J1bnRpbWVfZ2V0X3N5bmMoaGRtaS0+ZGV2KTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3Rh cmZpdmVfaGRtaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQor K3sKKysJc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWkgPSBlbmNvZGVyX3RvX2hkbWkoZW5jb2Rl cik7CisrCisrCXBtX3J1bnRpbWVfcHV0KGhkbWktPmRldik7CisrfQorKworK3N0YXRpYyBib29s IHN0YXJmaXZlX2hkbWlfZW5jb2Rlcl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKKysJCQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisr CQkJCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGpfbW9kZSkKKyt7CisrCXJldHVy biB0cnVlOworK30KKysKKytzdGF0aWMgaW50Cisrc3RhcmZpdmVfaGRtaV9lbmNvZGVyX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCisrCQkJCSAgIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKysJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCisreworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3Mgc3RhcmZpdmVfaGRtaV9lbmNvZGVyX2hlbHBl cl9mdW5jcyA9IHsKKysJLmVuYWJsZSAgICAgPSBzdGFyZml2ZV9oZG1pX2VuY29kZXJfZW5hYmxl LAorKwkuZGlzYWJsZSAgICA9IHN0YXJmaXZlX2hkbWlfZW5jb2Rlcl9kaXNhYmxlLAorKwkubW9k ZV9maXh1cCA9IHN0YXJmaXZlX2hkbWlfZW5jb2Rlcl9tb2RlX2ZpeHVwLAorKwkubW9kZV9zZXQg ICA9IHN0YXJmaXZlX2hkbWlfZW5jb2Rlcl9tb2RlX3NldCwKKysJLmF0b21pY19jaGVjayA9IHN0 YXJmaXZlX2hkbWlfZW5jb2Rlcl9hdG9taWNfY2hlY2ssCisrfTsKKysKKytzdGF0aWMgZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cworK3N0YXJmaXZlX2hkbWlfY29ubmVjdG9yX2RldGVjdChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQorK3sKKysJc3RydWN0IHN0 YXJmaXZlX2hkbWkgKmhkbWkgPSBjb25uZWN0b3JfdG9faGRtaShjb25uZWN0b3IpOworKwlpbnQg cmV0OworKworKwlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGhkbWktPmRldik7CisrCWlmIChy ZXQgPCAwKQorKwkJcmV0dXJuIHJldDsKKysKKysJcmV0ID0gKGhkbWlfcmVhZGIoaGRtaSwgSERN SV9TVEFUVVMpICYgbV9IT1RQTFVHKSA/CisrCQljb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCA6 IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOworKworKwlwbV9ydW50aW1lX3B1dChoZG1p LT5kZXYpOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hk bWlfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQor K3sKKysJc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWkgPSBjb25uZWN0b3JfdG9faGRtaShjb25u ZWN0b3IpOworKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKKysJaW50IHJldCA9IDA7CisrCisrCWlmICgh aGRtaS0+ZGRjKQorKwkJcmV0dXJuIDA7CisrCisrCWVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVj dG9yLCBoZG1pLT5kZGMpOworKwlpZiAoZWRpZCkgeworKwkJaGRtaS0+aGRtaV9kYXRhLnNpbmtf aXNfaGRtaSA9IGRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGVkaWQpOworKwkJaGRtaS0+aGRtaV9k YXRhLnNpbmtfaGFzX2F1ZGlvID0gZHJtX2RldGVjdF9tb25pdG9yX2F1ZGlvKGVkaWQpOworKwkJ ZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOworKwkJ cmV0ID0gZHJtX2FkZF9lZGlkX21vZGVzKGNvbm5lY3RvciwgZWRpZCk7CisrCQlrZnJlZShlZGlk KTsKKysJfQorKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgZW51bSBkcm1fbW9kZV9z dGF0dXMKKytzdGFyZml2ZV9oZG1pX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCisrCQkJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQorK3sKKysJY29uc3Qgc3RydWN0IHByZV9wbGxfY29uZmlnICpjZmcgPSBwcmVfcGxsX2NmZ190 YWJsZTsKKysJaW50IHBjbGsgPSBtb2RlLT5jbG9jayAqIDEwMDA7CisrCWJvb2wgdmFsaWQgPSBm YWxzZTsKKysJaW50IGk7CisrCisrCWZvciAoaSA9IDA7IGNmZ1tpXS5waXhjbG9jayAhPSAofjBV TCk7IGkrKykgeworKwkJaWYgKHBjbGsgPT0gY2ZnW2ldLnBpeGNsb2NrKSB7CisrCQkJaWYgKHBj bGsgPiAyOTcwMDAwMDApCisrCQkJCWNvbnRpbnVlOworKworKwkJCXZhbGlkID0gdHJ1ZTsKKysJ CQlicmVhazsKKysJCX0KKysJfQorKworKwlyZXR1cm4gKHZhbGlkKSA/IE1PREVfT0sgOiBNT0RF X0JBRDsKKyt9CisrCisrc3RhdGljIGludAorK3N0YXJmaXZlX2hkbWlfcHJvYmVfc2luZ2xlX2Nv bm5lY3Rvcl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorKwkJCQkJICAg dTMyIG1heFgsIHUzMiBtYXhZKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWkgPSBj b25uZWN0b3JfdG9faGRtaShjb25uZWN0b3IpOworKwlpbnQgcmV0OworKworKwlwbV9ydW50aW1l X2dldF9zeW5jKGhkbWktPmRldik7CisrCisrCXJldCA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xl X2Nvbm5lY3Rvcl9tb2Rlcyhjb25uZWN0b3IsIDM4NDAsIDIxNjApOworKworKwlwbV9ydW50aW1l X3B1dChoZG1pLT5kZXYpOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9pZCBz dGFyZml2ZV9oZG1pX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpCisreworKwlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKKysJZHJt X2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBzdGFyZml2ZV9oZG1pX2Nvbm5lY3Rvcl9mdW5jcyA9IHsK KysJLmZpbGxfbW9kZXMgPSBzdGFyZml2ZV9oZG1pX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9k ZXMsCisrCS5kZXRlY3QgPSBzdGFyZml2ZV9oZG1pX2Nvbm5lY3Rvcl9kZXRlY3QsCisrCS5kZXN0 cm95ID0gc3RhcmZpdmVfaGRtaV9jb25uZWN0b3JfZGVzdHJveSwKKysJLnJlc2V0ID0gZHJtX2F0 b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0LAorKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9 IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCisrCS5hdG9taWNf ZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRl LAorK307CisrCisrc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBzdGFy Zml2ZV9oZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CisrCS5nZXRfbW9kZXMgPSBzdGFy Zml2ZV9oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCisrCS5tb2RlX3ZhbGlkID0gc3RhcmZpdmVf aGRtaV9jb25uZWN0b3JfbW9kZV92YWxpZCwKKyt9OworKworK3N0YXRpYyBpbnQgc3RhcmZpdmVf aGRtaV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3Qgc3RhcmZpdmVfaGRt aSAqaGRtaSkKKyt7CisrCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZoZG1pLT5lbmNv ZGVyOworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoZG1pLT5kZXY7CisrCisrCWVuY29kZXItPnBv c3NpYmxlX2NydGNzID0gZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3MoZHJtLCBkZXYtPm9mX25v ZGUpOworKworKwkvKgorKwkgKiBJZiB3ZSBmYWlsZWQgdG8gZmluZCB0aGUgQ1JUQyhzKSB3aGlj aCB0aGlzIGVuY29kZXIgaXMKKysJICogc3VwcG9zZWQgdG8gYmUgY29ubmVjdGVkIHRvLCBpdCdz IGJlY2F1c2UgdGhlIENSVEMgaGFzCisrCSAqIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0LiAgRGVm ZXIgcHJvYmluZywgYW5kIGhvcGUgdGhhdAorKwkgKiB0aGUgcmVxdWlyZWQgQ1JUQyBpcyBhZGRl ZCBsYXRlci4KKysJICovCisrCWlmIChlbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9PSAwKQorKwkJ cmV0dXJuIC1FUFJPQkVfREVGRVI7CisrCisrCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2Rl ciwgJnN0YXJmaXZlX2hkbWlfZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOworKwlkcm1fc2ltcGxlX2Vu Y29kZXJfaW5pdChkcm0sIGVuY29kZXIsIERSTV9NT0RFX0VOQ09ERVJfVE1EUyk7CisrCisrCWhk bWktPmNvbm5lY3Rvci5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOworKworKwlkcm1f Y29ubmVjdG9yX2hlbHBlcl9hZGQoJmhkbWktPmNvbm5lY3RvciwKKysJCQkJICZzdGFyZml2ZV9o ZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOworKwlkcm1fY29ubmVjdG9yX2luaXRfd2l0aF9k ZGMoZHJtLCAmaGRtaS0+Y29ubmVjdG9yLAorKwkJCQkgICAgJnN0YXJmaXZlX2hkbWlfY29ubmVj dG9yX2Z1bmNzLAorKwkJCQkgICAgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBLAorKwkJCQkgICAg aGRtaS0+ZGRjKTsKKysKKysJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2RlcigmaGRtaS0+Y29u bmVjdG9yLCBlbmNvZGVyKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBpcnFyZXR1 cm5fdCBzdGFyZml2ZV9oZG1pX2kyY19pcnEoc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWkpCisr eworKwlzdHJ1Y3Qgc3RhcmZpdmVfaGRtaV9pMmMgKmkyYyA9IGhkbWktPmkyYzsKKysJdTggc3Rh dDsKKysKKysJc3RhdCA9IGhkbWlfcmVhZGIoaGRtaSwgSERNSV9JTlRFUlJVUFRfU1RBVFVTMSk7 CisrCWlmICghKHN0YXQgJiBtX0lOVF9FRElEX1JFQURZKSkKKysJCXJldHVybiBJUlFfTk9ORTsK KysKKysJLyogQ2xlYXIgSERNSSBFRElEIGludGVycnVwdCBmbGFnICovCisrCWhkbWlfd3JpdGVi KGhkbWksIEhETUlfSU5URVJSVVBUX1NUQVRVUzEsIG1fSU5UX0VESURfUkVBRFkpOworKworKwlj b21wbGV0ZSgmaTJjLT5jbXApOworKworKwlyZXR1cm4gSVJRX0hBTkRMRUQ7CisrfQorKworK3N0 YXRpYyBpcnFyZXR1cm5fdCBzdGFyZml2ZV9oZG1pX2hhcmRpcnEoaW50IGlycSwgdm9pZCAqZGV2 X2lkKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWkgPSBkZXZfaWQ7CisrCWlycXJl dHVybl90IHJldCA9IElSUV9OT05FOworKwl1OCBpbnRlcnJ1cHQ7CisrCisrCWlmIChoZG1pLT5p MmMpCisrCQlyZXQgPSBzdGFyZml2ZV9oZG1pX2kyY19pcnEoaGRtaSk7CisrCisrCWludGVycnVw dCA9IGhkbWlfcmVhZGIoaGRtaSwgSERNSV9TVEFUVVMpOworKwlpZiAoaW50ZXJydXB0ICYgbV9J TlRfSE9UUExVRykgeworKwkJaGRtaV9tb2RiKGhkbWksIEhETUlfU1RBVFVTLCBtX0lOVF9IT1RQ TFVHLCBtX0lOVF9IT1RQTFVHKTsKKysJCXJldCA9IElSUV9XQUtFX1RIUkVBRDsKKysJfQorKwor KwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaXJxcmV0dXJuX3Qgc3RhcmZpdmVfaGRtaV9p cnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhk bWkgPSBkZXZfaWQ7CisrCisrCWRybV9oZWxwZXJfaHBkX2lycV9ldmVudChoZG1pLT5jb25uZWN0 b3IuZGV2KTsKKysKKysJcmV0dXJuIElSUV9IQU5ETEVEOworK30KKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX2hkbWlfaTJjX3JlYWQoc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWksIHN0cnVjdCBp MmNfbXNnICptc2dzKQorK3sKKysJaW50IGxlbmd0aCA9IG1zZ3MtPmxlbjsKKysJdTggKmJ1ZiA9 IG1zZ3MtPmJ1ZjsKKysJaW50IHJldDsKKysKKysJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90 aW1lb3V0KCZoZG1pLT5pMmMtPmNtcCwgSFogLyAxMCk7CisrCWlmICghcmV0KQorKwkJcmV0dXJu IC1FQUdBSU47CisrCisrCXdoaWxlIChsZW5ndGgtLSkKKysJCSpidWYrKyA9IGhkbWlfcmVhZGIo aGRtaSwgSERNSV9FRElEX0ZJRk9fQUREUik7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0 aWMgaW50IHN0YXJmaXZlX2hkbWlfaTJjX3dyaXRlKHN0cnVjdCBzdGFyZml2ZV9oZG1pICpoZG1p LCBzdHJ1Y3QgaTJjX21zZyAqbXNncykKKyt7CisrCS8qCisrCSAqIFRoZSBEREMgbW9kdWxlIG9u bHkgc3VwcG9ydCByZWFkIEVESUQgbWVzc2FnZSwgc28KKysJICogd2UgYXNzdW1lIHRoYXQgZWFj aCB3b3JkIHdyaXRlIHRvIHRoaXMgaTJjIGFkYXB0ZXIKKysJICogc2hvdWxkIGJlIHRoZSBvZmZz ZXQgb2YgRURJRCB3b3JkIGFkZHJlc3MuCisrCSAqLworKwlpZiAobXNncy0+bGVuICE9IDEgfHwK KysJICAgIChtc2dzLT5hZGRyICE9IEREQ19BRERSICYmIG1zZ3MtPmFkZHIgIT0gRERDX1NFR01F TlRfQUREUikpCisrCQlyZXR1cm4gLUVJTlZBTDsKKysKKysJcmVpbml0X2NvbXBsZXRpb24oJmhk bWktPmkyYy0+Y21wKTsKKysKKysJaWYgKG1zZ3MtPmFkZHIgPT0gRERDX1NFR01FTlRfQUREUikK KysJCWhkbWktPmkyYy0+c2VnbWVudF9hZGRyID0gbXNncy0+YnVmWzBdOworKwlpZiAobXNncy0+ YWRkciA9PSBERENfQUREUikKKysJCWhkbWktPmkyYy0+ZGRjX2FkZHIgPSBtc2dzLT5idWZbMF07 CisrCisrCS8qIFNldCBlZGlkIGZpZm8gZmlyc3QgYWRkciAqLworKwloZG1pX3dyaXRlYihoZG1p LCBIRE1JX0VESURfRklGT19PRkZTRVQsIDB4MDApOworKworKwkvKiBTZXQgZWRpZCB3b3JkIGFk ZHJlc3MgMHgwMC8weDgwICovCisrCWhkbWlfd3JpdGViKGhkbWksIEhETUlfRURJRF9XT1JEX0FE RFIsIGhkbWktPmkyYy0+ZGRjX2FkZHIpOworKworKwkvKiBTZXQgZWRpZCBzZWdtZW50IHBvaW50 ZXIgKi8KKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9FRElEX1NFR01FTlRfUE9JTlRFUiwgaGRt aS0+aTJjLT5zZWdtZW50X2FkZHIpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGlu dCBzdGFyZml2ZV9oZG1pX2kyY194ZmVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwKKysJCQkJ ICBzdHJ1Y3QgaTJjX21zZyAqbXNncywgaW50IG51bSkKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9o ZG1pICpoZG1pID0gaTJjX2dldF9hZGFwZGF0YShhZGFwKTsKKysJc3RydWN0IHN0YXJmaXZlX2hk bWlfaTJjICppMmMgPSBoZG1pLT5pMmM7CisrCWludCBpLCByZXQgPSAwOworKworKwltdXRleF9s b2NrKCZpMmMtPmxvY2spOworKworKwkvKiBDbGVhciB0aGUgRURJRCBpbnRlcnJ1cHQgZmxhZyBh bmQgdW5tdXRlIHRoZSBpbnRlcnJ1cHQgKi8KKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9JTlRF UlJVUFRfTUFTSzEsIG1fSU5UX0VESURfUkVBRFkpOworKwloZG1pX3dyaXRlYihoZG1pLCBIRE1J X0lOVEVSUlVQVF9TVEFUVVMxLCBtX0lOVF9FRElEX1JFQURZKTsKKysKKysJZm9yIChpID0gMDsg aSA8IG51bTsgaSsrKSB7CisrCQlEUk1fREVWX0RFQlVHKGhkbWktPmRldiwKKysJCQkgICAgICAi eGZlcjogbnVtOiAlZC8lZCwgbGVuOiAlZCwgZmxhZ3M6ICUjeFxuIiwKKysJCQkgICAgICBpICsg MSwgbnVtLCBtc2dzW2ldLmxlbiwgbXNnc1tpXS5mbGFncyk7CisrCisrCQlpZiAobXNnc1tpXS5m bGFncyAmIEkyQ19NX1JEKQorKwkJCXJldCA9IHN0YXJmaXZlX2hkbWlfaTJjX3JlYWQoaGRtaSwg Jm1zZ3NbaV0pOworKwkJZWxzZQorKwkJCXJldCA9IHN0YXJmaXZlX2hkbWlfaTJjX3dyaXRlKGhk bWksICZtc2dzW2ldKTsKKysKKysJCWlmIChyZXQgPCAwKQorKwkJCWJyZWFrOworKwl9CisrCisr CWlmICghcmV0KQorKwkJcmV0ID0gbnVtOworKworKwkvKiBNdXRlIEhETUkgRURJRCBpbnRlcnJ1 cHQgKi8KKysJaGRtaV93cml0ZWIoaGRtaSwgSERNSV9JTlRFUlJVUFRfTUFTSzEsIDApOworKwor KwltdXRleF91bmxvY2soJmkyYy0+bG9jayk7CisrCisrCXJldHVybiByZXQ7CisrfQorKworK3N0 YXRpYyB1MzIgc3RhcmZpdmVfaGRtaV9pMmNfZnVuYyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0 ZXIpCisreworKwlyZXR1cm4gSTJDX0ZVTkNfSTJDIHwgSTJDX0ZVTkNfU01CVVNfRU1VTDsKKyt9 CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfYWxnb3JpdGhtIHN0YXJmaXZlX2hkbWlfYWxn b3JpdGhtID0geworKwkubWFzdGVyX3hmZXIJPSBzdGFyZml2ZV9oZG1pX2kyY194ZmVyLAorKwku ZnVuY3Rpb25hbGl0eQk9IHN0YXJmaXZlX2hkbWlfaTJjX2Z1bmMsCisrfTsKKysKKytzdGF0aWMg c3RydWN0IGkyY19hZGFwdGVyICpzdGFyZml2ZV9oZG1pX2kyY19hZGFwdGVyKHN0cnVjdCBzdGFy Zml2ZV9oZG1pICpoZG1pKQorK3sKKysJc3RydWN0IGkyY19hZGFwdGVyICphZGFwOworKwlzdHJ1 Y3Qgc3RhcmZpdmVfaGRtaV9pMmMgKmkyYzsKKysJaW50IHJldDsKKysKKysJaTJjID0gZGV2bV9r emFsbG9jKGhkbWktPmRldiwgc2l6ZW9mKCppMmMpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFpMmMp CisrCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKysKKysJbXV0ZXhfaW5pdCgmaTJjLT5sb2Nr KTsKKysJaW5pdF9jb21wbGV0aW9uKCZpMmMtPmNtcCk7CisrCisrCWFkYXAgPSAmaTJjLT5hZGFw OworKwlhZGFwLT5jbGFzcyA9IEkyQ19DTEFTU19EREM7CisrCWFkYXAtPm93bmVyID0gVEhJU19N T0RVTEU7CisrCWFkYXAtPmRldi5wYXJlbnQgPSBoZG1pLT5kZXY7CisrCWFkYXAtPmFsZ28gPSAm c3RhcmZpdmVfaGRtaV9hbGdvcml0aG07CisrCXN0cnNjcHkoYWRhcC0+bmFtZSwgIlN0YXJmaXZl IEhETUkiLCBzaXplb2YoYWRhcC0+bmFtZSkpOworKwlpMmNfc2V0X2FkYXBkYXRhKGFkYXAsIGhk bWkpOworKworKwlyZXQgPSBpMmNfYWRkX2FkYXB0ZXIoYWRhcCk7CisrCWlmIChyZXQpIHsKKysJ CWRldl93YXJuKGhkbWktPmRldiwgImNhbm5vdCBhZGQgJXMgSTJDIGFkYXB0ZXJcbiIsIGFkYXAt Pm5hbWUpOworKwkJZGV2bV9rZnJlZShoZG1pLT5kZXYsIGkyYyk7CisrCQlyZXR1cm4gRVJSX1BU UihyZXQpOworKwl9CisrCisrCWhkbWktPmkyYyA9IGkyYzsKKysKKysJRFJNX0RFVl9JTkZPKGhk bWktPmRldiwgInJlZ2lzdGVyZWQgJXMgSTJDIGJ1cyBkcml2ZXIgc3VjY2Vzc1xuIiwgYWRhcC0+ bmFtZSk7CisrCisrCXJldHVybiBhZGFwOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX2hk bWlfZ2V0X2Nsa19yc3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc3RhcmZpdmVfaGRtaSAq aGRtaSkKKyt7CisrCWhkbWktPnN5c19jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAic3lzY2xrIik7 CisrCWlmIChJU19FUlIoaGRtaS0+c3lzX2NsaykpIHsKKysJCURSTV9ERVZfRVJST1IoZGV2LCAi VW5hYmxlIHRvIGdldCBIRE1JIHN5c2NsayBjbGtcbiIpOworKwkJcmV0dXJuIFBUUl9FUlIoaGRt aS0+c3lzX2Nsayk7CisrCX0KKysJaGRtaS0+bWNsayA9IGRldm1fY2xrX2dldChkZXYsICJtY2xr Iik7CisrCWlmIChJU19FUlIoaGRtaS0+bWNsaykpIHsKKysJCURSTV9ERVZfRVJST1IoZGV2LCAi VW5hYmxlIHRvIGdldCBIRE1JIG1jbGsgY2xrXG4iKTsKKysJCXJldHVybiBQVFJfRVJSKGhkbWkt Pm1jbGspOworKwl9CisrCWhkbWktPmJjbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAiYmNsayIpOwor KwlpZiAoSVNfRVJSKGhkbWktPmJjbGspKSB7CisrCQlEUk1fREVWX0VSUk9SKGRldiwgIlVuYWJs ZSB0byBnZXQgSERNSSBiY2xrIGNsa1xuIik7CisrCQlyZXR1cm4gUFRSX0VSUihoZG1pLT5iY2xr KTsKKysJfQorKwloZG1pLT50eF9yc3QgPSByZXNldF9jb250cm9sX2dldF9zaGFyZWQoZGV2LCAi aGRtaV90eCIpOworKwlpZiAoSVNfRVJSKGhkbWktPnR4X3JzdCkpIHsKKysJCURSTV9ERVZfRVJS T1IoZGV2LCAiVW5hYmxlIHRvIGdldCBIRE1JIHR4IHJzdFxuIik7CisrCQlyZXR1cm4gUFRSX0VS UihoZG1pLT50eF9yc3QpOworKwl9CisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IHN0 YXJmaXZlX2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rl ciwKKysJCQkgICAgICB2b2lkICpkYXRhKQorK3sKKysJc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOworKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt ID0gZGF0YTsKKysJc3RydWN0IHN0YXJmaXZlX2hkbWkgKmhkbWk7CisrCXN0cnVjdCByZXNvdXJj ZSAqaW9yZXM7CisrCWludCBpcnE7CisrCWludCByZXQ7CisrCisrCWhkbWkgPSBkZXZtX2t6YWxs b2MoZGV2LCBzaXplb2YoKmhkbWkpLCBHRlBfS0VSTkVMKTsKKysJaWYgKCFoZG1pKQorKwkJcmV0 dXJuIC1FTk9NRU07CisrCisrCWhkbWktPmRldiA9IGRldjsKKysJaGRtaS0+ZHJtX2RldiA9IGRy bTsKKysKKysJaW9yZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9N RU0sIDApOworKwloZG1pLT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgaW9yZXMp OworKwlpZiAoSVNfRVJSKGhkbWktPnJlZ3MpKQorKwkJcmV0dXJuIFBUUl9FUlIoaGRtaS0+cmVn cyk7CisrCisrCXJldCA9IHN0YXJmaXZlX2hkbWlfZ2V0X2Nsa19yc3QoZGV2LCBoZG1pKTsKKysJ cmV0ID0gc3RhcmZpdmVfaGRtaV9lbmFibGVfY2xrX2RlYXNzZXJ0X3JzdChkZXYsIGhkbWkpOwor KworKwlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOworKwlpZiAoaXJxIDwgMCkgewor KwkJcmV0ID0gaXJxOworKwkJZ290byBlcnJfZGlzYWJsZV9jbGs7CisrCX0KKysKKysJaGRtaS0+ ZGRjID0gc3RhcmZpdmVfaGRtaV9pMmNfYWRhcHRlcihoZG1pKTsKKysJaWYgKElTX0VSUihoZG1p LT5kZGMpKSB7CisrCQlyZXQgPSBQVFJfRVJSKGhkbWktPmRkYyk7CisrCQloZG1pLT5kZGMgPSBO VUxMOworKwkJZ290byBlcnJfZGlzYWJsZV9jbGs7CisrCX0KKysKKysJaGRtaS0+dG1kc19yYXRl ID0gY2xrX2dldF9yYXRlKGhkbWktPnN5c19jbGspOworKworKwlzdGFyZml2ZV9oZG1pX2kyY19p bml0KGhkbWkpOworKworKwlyZXQgPSBzdGFyZml2ZV9oZG1pX3JlZ2lzdGVyKGRybSwgaGRtaSk7 CisrCWlmIChyZXQpCisrCQlnb3RvIGVycl9wdXRfYWRhcHRlcjsKKysKKysJZGV2X3NldF9kcnZk YXRhKGRldiwgaGRtaSk7CisrCisrCS8qIFVubXV0ZSBob3RwbHVnIGludGVycnVwdCAqLworKwlo ZG1pX21vZGIoaGRtaSwgSERNSV9TVEFUVVMsIG1fTUFTS19JTlRfSE9UUExVRywgdl9NQVNLX0lO VF9IT1RQTFVHKDEpKTsKKysKKysJcmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShkZXYs IGlycSwgc3RhcmZpdmVfaGRtaV9oYXJkaXJxLAorKwkJCQkJc3RhcmZpdmVfaGRtaV9pcnEsIElS UUZfU0hBUkVELAorKwkJCQkJZGV2X25hbWUoZGV2KSwgaGRtaSk7CisrCWlmIChyZXQgPCAwKQor KwkJZ290byBlcnJfY2xlYW51cF9oZG1pOworKworKwlwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVu ZCgmcGRldi0+ZGV2KTsKKysJcG1fcnVudGltZV9zZXRfYXV0b3N1c3BlbmRfZGVsYXkoJnBkZXYt PmRldiwgNTAwKTsKKysJcG1fcnVudGltZV9lbmFibGUoJnBkZXYtPmRldik7CisrCisrCXN0YXJm aXZlX2hkbWlfZGlzYWJsZV9jbGtfYXNzZXJ0X3JzdChkZXYsIGhkbWkpOworKworKwlyZXR1cm4g MDsKKytlcnJfY2xlYW51cF9oZG1pOgorKwloZG1pLT5jb25uZWN0b3IuZnVuY3MtPmRlc3Ryb3ko JmhkbWktPmNvbm5lY3Rvcik7CisrCWhkbWktPmVuY29kZXIuZnVuY3MtPmRlc3Ryb3koJmhkbWkt PmVuY29kZXIpOworK2Vycl9wdXRfYWRhcHRlcjoKKysJaTJjX3B1dF9hZGFwdGVyKGhkbWktPmRk Yyk7CisrZXJyX2Rpc2FibGVfY2xrOgorKwljbGtfZGlzYWJsZV91bnByZXBhcmUoaGRtaS0+c3lz X2Nsayk7CisrCWNsa19kaXNhYmxlX3VucHJlcGFyZShoZG1pLT5tY2xrKTsKKysJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKGhkbWktPmJjbGspOworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0 aWMgdm9pZCBzdGFyZml2ZV9oZG1pX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2UgKm1hc3RlciwKKysJCQkJIHZvaWQgKmRhdGEpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVf aGRtaSAqaGRtaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwloZG1pLT5jb25uZWN0b3Iu ZnVuY3MtPmRlc3Ryb3koJmhkbWktPmNvbm5lY3Rvcik7CisrCWhkbWktPmVuY29kZXIuZnVuY3Mt PmRlc3Ryb3koJmhkbWktPmVuY29kZXIpOworKworKwlpMmNfcHV0X2FkYXB0ZXIoaGRtaS0+ZGRj KTsKKysKKysJc3RhcmZpdmVfaGRtaV9kaXNhYmxlX2Nsa19hc3NlcnRfcnN0KGRldiwgaGRtaSk7 CisrfQorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBzdGFyZml2ZV9oZG1p X29wcyA9IHsKKysJLmJpbmQJPSBzdGFyZml2ZV9oZG1pX2JpbmQsCisrCS51bmJpbmQJPSBzdGFy Zml2ZV9oZG1pX3VuYmluZCwKKyt9OworKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfaGRtaV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJcmV0dXJuIGNvbXBvbmVudF9h ZGQoJnBkZXYtPmRldiwgJnN0YXJmaXZlX2hkbWlfb3BzKTsKKyt9CisrCisrc3RhdGljIGludCBz dGFyZml2ZV9oZG1pX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJ Y29tcG9uZW50X2RlbCgmcGRldi0+ZGV2LCAmc3RhcmZpdmVfaGRtaV9vcHMpOworKworKwlyZXR1 cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGhkbWlfcG1fb3Bz ID0geworKwlTRVRfUlVOVElNRV9QTV9PUFMoaGRtaV9ydW50aW1lX3N1c3BlbmQsIGhkbWlfcnVu dGltZV9yZXN1bWUsIE5VTEwpCisrCVNFVF9MQVRFX1NZU1RFTV9TTEVFUF9QTV9PUFMoaGRtaV9z eXN0ZW1fcG1fc3VzcGVuZCwgaGRtaV9zeXN0ZW1fcG1fcmVzdW1lKQorK307CisrCisrc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RhcmZpdmVfaGRtaV9kdF9pZHNbXSA9IHsKKysJ eyAuY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxoZG1pIiwKKysJfSwKKysJe30sCisrfTsKKytNT0RV TEVfREVWSUNFX1RBQkxFKG9mLCBzdGFyZml2ZV9oZG1pX2R0X2lkcyk7CisrCisrc3RydWN0IHBs YXRmb3JtX2RyaXZlciBzdGFyZml2ZV9oZG1pX2RyaXZlciA9IHsKKysJLnByb2JlICA9IHN0YXJm aXZlX2hkbWlfcHJvYmUsCisrCS5yZW1vdmUgPSBzdGFyZml2ZV9oZG1pX3JlbW92ZSwKKysJLmRy aXZlciA9IHsKKysJCS5uYW1lID0gInN0YXJmaXZlLWhkbWkiLAorKwkJLm9mX21hdGNoX3RhYmxl ID0gc3RhcmZpdmVfaGRtaV9kdF9pZHMsCisrCQkucG0gPSAmaGRtaV9wbV9vcHMsCisrCX0sCisr fTsKKysKKytNT0RVTEVfQVVUSE9SKCJTdGFyRml2ZSBDb3Jwb3JhdGlvbiIpOworK01PRFVMRV9E RVNDUklQVElPTigiU3RhcmZpdmUgSERNSSBEcml2ZXIiKTsKKytNT0RVTEVfTElDRU5TRSgiR1BM Iik7CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3N0YXJmaXZlX2hk bWkuaCBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9zdGFyZml2ZV9oZG1pLmgKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAuLmQxNTFjNjFmOWEzZQorLS0tIC9k ZXYvbnVsbAorKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3N0YXJmaXZlX2hkbWku aAorQEAgLTAsMCArMSwyOTYgQEAKKysvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vbmx5ICovCisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUgVGVjaG5vbG9n eSBDby4sIEx0ZC4KKysgKi8KKysKKysjaWZuZGVmIF9fU1RBUkZJVkVfSERNSV9IX18KKysjZGVm aW5lIF9fU1RBUkZJVkVfSERNSV9IX18KKysKKysjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19oZG1p Lmg+CisrI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorKyNpbmNsdWRlIDxkcm0v ZHJtX2VkaWQuaD4KKysjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgorKyNpbmNsdWRlIDxkcm0vZHJt X3Byb2JlX2hlbHBlci5oPgorKyNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+ CisrCisrI2RlZmluZSBERENfU0VHTUVOVF9BRERSCQkweDMwCisrCisrI2RlZmluZSBIRE1JX1ND TF9SQVRFCQkJKDEwMCAqIDEwMDApCisrI2RlZmluZSBERENfQlVTX0ZSRVFfTAkJCTB4NGIKKysj ZGVmaW5lIEREQ19CVVNfRlJFUV9ICQkJMHg0YworKworKyNkZWZpbmUgSERNSV9TWVNfQ1RSTAkJ CTB4MDAKKysjZGVmaW5lIG1fUlNUX0FOQUxPRwkJCUJJVCg2KQorKyNkZWZpbmUgdl9SU1RfQU5B TE9HCQkJMAorKyNkZWZpbmUgdl9OT1RfUlNUX0FOQUxPRwkJQklUKDYpCisrI2RlZmluZSBtX1JT VF9ESUdJVEFMCQkJQklUKDUpCisrI2RlZmluZSB2X1JTVF9ESUdJVEFMCQkJMAorKyNkZWZpbmUg dl9OT1RfUlNUX0RJR0lUQUwJCUJJVCg1KQorKyNkZWZpbmUgbV9SRUdfQ0xLX0lOVgkJCUJJVCg0 KQorKyNkZWZpbmUgdl9SRUdfQ0xLX05PVF9JTlYJCTAKKysjZGVmaW5lIHZfUkVHX0NMS19JTlYJ CQlCSVQoNCkKKysjZGVmaW5lIG1fVkNMS19JTlYJCQlCSVQoMykKKysjZGVmaW5lIHZfVkNMS19O T1RfSU5WCQkJMAorKyNkZWZpbmUgdl9WQ0xLX0lOVgkJCUJJVCgzKQorKyNkZWZpbmUgbV9SRUdf Q0xLX1NPVVJDRQkJQklUKDIpCisrI2RlZmluZSB2X1JFR19DTEtfU09VUkNFX1RNRFMJCTAKKysj ZGVmaW5lIHZfUkVHX0NMS19TT1VSQ0VfU1lTCQlCSVQoMikKKysjZGVmaW5lIG1fUE9XRVIJCQkJ QklUKDEpCisrI2RlZmluZSB2X1BXUl9PTgkJCTAKKysjZGVmaW5lIHZfUFdSX09GRgkJCUJJVCgx KQorKyNkZWZpbmUgbV9JTlRfUE9MCQkJQklUKDApCisrI2RlZmluZSB2X0lOVF9QT0xfSElHSAkJ CTEKKysjZGVmaW5lIHZfSU5UX1BPTF9MT1cJCQkwCisrCisrI2RlZmluZSBIRE1JX0FWX01VVEUJ CQkweDA1CisrI2RlZmluZSBtX0FWTVVURV9DTEVBUgkJCUJJVCg3KQorKyNkZWZpbmUgbV9BVk1V VEVfRU5BQkxFCQkJQklUKDYpCisrI2RlZmluZSBtX0FVRElPX01VVEUJCQlCSVQoMSkKKysjZGVm aW5lIG1fVklERU9fQkxBQ0sJCQlCSVQoMCkKKysjZGVmaW5lIHZfQVZNVVRFX0NMRUFSKG4pCQko KG4pIDw8IDcpCisrI2RlZmluZSB2X0FWTVVURV9FTkFCTEUobikJCSgobikgPDwgNikKKysjZGVm aW5lIHZfQVVESU9fTVVURShuKQkJCSgobikgPDwgMSkKKysjZGVmaW5lIHZfVklERU9fTVVURShu KQkJCSgobikgPDwgMCkKKysKKysjZGVmaW5lIEhETUlfVklERU9fVElNSU5HX0NUTAkJMHgwOAor KyNkZWZpbmUgdl9WU1lOQ19QT0xBUklUWShuKQkJKChuKSA8PCAzKQorKyNkZWZpbmUgdl9IU1lO Q19QT0xBUklUWShuKQkJKChuKSA8PCAyKQorKyNkZWZpbmUgdl9JTkVUTEFDRShuKQkJCSgobikg PDwgMSkKKysjZGVmaW5lIHZfRVhURVJBTkxfVklERU8obikJCSgobikgPDwgMCkKKysKKysjZGVm aW5lIEhETUlfVklERU9fRVhUX0hUT1RBTF9MCQkweDA5CisrI2RlZmluZSBIRE1JX1ZJREVPX0VY VF9IVE9UQUxfSAkJMHgwYQorKyNkZWZpbmUgSERNSV9WSURFT19FWFRfSEJMQU5LX0wJCTB4MGIK KysjZGVmaW5lIEhETUlfVklERU9fRVhUX0hCTEFOS19ICQkweDBjCisrI2RlZmluZSBIRE1JX1ZJ REVPX0VYVF9IREVMQVlfTAkJMHgwZAorKyNkZWZpbmUgSERNSV9WSURFT19FWFRfSERFTEFZX0gJ CTB4MGUKKysjZGVmaW5lIEhETUlfVklERU9fRVhUX0hEVVJBVElPTl9MCTB4MGYKKysjZGVmaW5l IEhETUlfVklERU9fRVhUX0hEVVJBVElPTl9ICTB4MTAKKysjZGVmaW5lIEhETUlfVklERU9fRVhU X1ZUT1RBTF9MCQkweDExCisrI2RlZmluZSBIRE1JX1ZJREVPX0VYVF9WVE9UQUxfSAkJMHgxMgor KyNkZWZpbmUgSERNSV9WSURFT19FWFRfVkJMQU5LCQkweDEzCisrI2RlZmluZSBIRE1JX1ZJREVP X0VYVF9WREVMQVkJCTB4MTQKKysjZGVmaW5lIEhETUlfVklERU9fRVhUX1ZEVVJBVElPTgkweDE1 CisrCisrI2RlZmluZSBIRE1JX0VESURfU0VHTUVOVF9QT0lOVEVSCTB4NGQKKysjZGVmaW5lIEhE TUlfRURJRF9XT1JEX0FERFIJCQkweDRlCisrI2RlZmluZSBIRE1JX0VESURfRklGT19PRkZTRVQJ CTB4NGYKKysjZGVmaW5lIEhETUlfRURJRF9GSUZPX0FERFIJCQkweDUwCisrCisrI2RlZmluZSBI RE1JX0lOVEVSUlVQVF9NQVNLMQkJMHhjMAorKyNkZWZpbmUgSERNSV9JTlRFUlJVUFRfU1RBVFVT MQkJMHhjMQorKyNkZWZpbmUJbV9JTlRfQUNUSVZFX1ZTWU5DCQkJQklUKDUpCisrI2RlZmluZSBt X0lOVF9FRElEX1JFQURZCQkJQklUKDIpCisrCisrI2RlZmluZSBIRE1JX1NUQVRVUwkJCQkJMHhj OAorKyNkZWZpbmUgbV9IT1RQTFVHCQkJCQlCSVQoNykKKysjZGVmaW5lIG1fTUFTS19JTlRfSE9U UExVRwkJCUJJVCg1KQorKyNkZWZpbmUgbV9JTlRfSE9UUExVRwkJCQlCSVQoMSkKKysjZGVmaW5l IHZfTUFTS19JTlRfSE9UUExVRyhuKQkJKCgobikgJiAweDEpIDw8IDUpCisrCisrI2RlZmluZSBI RE1JX1NZTkMJCQkJCTB4Y2UKKysKKysjZGVmaW5lIFVQREFURSh4LCBoLCBsKVwKKysoe1wKKysJ dHlwZW9mKHgpIHhfID0gKHgpO1wKKysJdHlwZW9mKGgpIGhfID0gKGgpO1wKKysJdHlwZW9mKGwp IGxfID0gKGwpO1wKKysJKCgoeF8pIDw8IChsXykpICYgR0VOTUFTSygoaF8pLCAobF8pKSk7XAor K30pCisrCisrLyogUkVHOiAweDFhMCAqLworKyNkZWZpbmUgU1RBUkZJVkVfUFJFX1BMTF9DT05U Uk9MCQkJMHgxYTAKKysjZGVmaW5lIFNUQVJGSVZFX1BDTEtfVkNPX0RJVl81X01BU0sJCQlCSVQo MSkKKysjZGVmaW5lIFNUQVJGSVZFX1BDTEtfVkNPX0RJVl81KHgpCQkJVVBEQVRFKHgsIDEsIDEp CisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX1BPV0VSX0RPV04JCQlCSVQoMCkKKysKKysvKiBS RUc6IDB4MWExICovCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX0RJVl8xCQkJCTB4MWExCisr I2RlZmluZSBTVEFSRklWRV9QUkVfUExMX1BSRV9ESVZfTUFTSwkJCUdFTk1BU0soNSwgMCkKKysj ZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfUFJFX0RJVih4KQkJCVVQREFURSh4LCA1LCAwKQorKwor Ky8qIFJFRzogMHgxYTIgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfRElWXzIJCQkJMHgx YTIKKysjZGVmaW5lIFNUQVJGSVZFX1NQUkVBRF9TUEVDVFJVTV9NT0RfRE9XTgkJQklUKDcpCisr I2RlZmluZSBTVEFSRklWRV9TUFJFQURfU1BFQ1RSVU1fTU9EX0RJU0FCTEUJCUJJVCg2KQorKyNk ZWZpbmUgU1RBUkZJVkVfUFJFX1BMTF9GUkFDX0RJVl9ESVNBQkxFCQlVUERBVEUoMywgNSwgNCkK KysjZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfRkJfRElWXzExXzhfTUFTSwkJR0VOTUFTSygzLCAw KQorKyNkZWZpbmUgU1RBUkZJVkVfUFJFX1BMTF9GQl9ESVZfMTFfOCh4KQkJCVVQREFURSgoeCkg Pj4gOCwgMywgMCkKKysKKysvKiBSRUc6IDB4MWEzICovCisrI2RlZmluZSBTVEFSRklWRV9QUkVf UExMX0RJVl8zCQkJCTB4MWEzCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX0ZCX0RJVl83XzAo eCkJCQlVUERBVEUoeCwgNywgMCkKKysKKysvKiBSRUc6IDB4MWE0Ki8KKysjZGVmaW5lIFNUQVJG SVZFX1BSRV9QTExfRElWXzQJCQkJMHgxYTQKKysjZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfVE1E U0NMS19ESVZfQ19NQVNLCQlHRU5NQVNLKDEsIDApCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExM X1RNRFNDTEtfRElWX0MoeCkJCVVQREFURSh4LCAxLCAwKQorKyNkZWZpbmUgU1RBUkZJVkVfUFJF X1BMTF9UTURTQ0xLX0RJVl9CX01BU0sJCUdFTk1BU0soMywgMikKKysjZGVmaW5lIFNUQVJGSVZF X1BSRV9QTExfVE1EU0NMS19ESVZfQih4KQkJVVBEQVRFKHgsIDMsIDIpCisrI2RlZmluZSBTVEFS RklWRV9QUkVfUExMX1RNRFNDTEtfRElWX0FfTUFTSwkJR0VOTUFTSyg1LCA0KQorKyNkZWZpbmUg U1RBUkZJVkVfUFJFX1BMTF9UTURTQ0xLX0RJVl9BKHgpCQlVUERBVEUoeCwgNSwgNCkKKysKKysv KiBSRUc6IDB4MWE1ICovCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX0RJVl81CQkJCTB4MWE1 CisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX1BDTEtfRElWX0JfU0hJRlQJCTUKKysjZGVmaW5l IFNUQVJGSVZFX1BSRV9QTExfUENMS19ESVZfQl9NQVNLCQlHRU5NQVNLKDYsIDUpCisrI2RlZmlu ZSBTVEFSRklWRV9QUkVfUExMX1BDTEtfRElWX0IoeCkJCQlVUERBVEUoeCwgNiwgNSkKKysjZGVm aW5lIFNUQVJGSVZFX1BSRV9QTExfUENMS19ESVZfQV9NQVNLCQlHRU5NQVNLKDQsIDApCisrI2Rl ZmluZSBTVEFSRklWRV9QUkVfUExMX1BDTEtfRElWX0EoeCkJCQlVUERBVEUoeCwgNCwgMCkKKysK KysvKiBSRUc6IDB4MWE2ICovCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX0RJVl82CQkJCTB4 MWE2CisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX1BDTEtfRElWX0NfU0hJRlQJCTUKKysjZGVm aW5lIFNUQVJGSVZFX1BSRV9QTExfUENMS19ESVZfQ19NQVNLCQlHRU5NQVNLKDYsIDUpCisrI2Rl ZmluZSBTVEFSRklWRV9QUkVfUExMX1BDTEtfRElWX0MoeCkJCQlVUERBVEUoeCwgNiwgNSkKKysj ZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfUENMS19ESVZfRF9NQVNLCQlHRU5NQVNLKDQsIDApCisr I2RlZmluZSBTVEFSRklWRV9QUkVfUExMX1BDTEtfRElWX0QoeCkJCQlVUERBVEUoeCwgNCwgMCkK KysKKysvKiBSRUc6IDB4MWE5ICovCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX0xPQ0tfU1RB VFVTCQkJMHgxYTkKKysKKysvKiBSRUc6IDB4MWFhICovCisrI2RlZmluZSBTVEFSRklWRV9QT1NU X1BMTF9ESVZfMQkJCQkweDFhYQorKyNkZWZpbmUgU1RBUkZJVkVfUE9TVF9QTExfUE9TVF9ESVZf RU5BQkxFCQlHRU5NQVNLKDMsIDIpCisrI2RlZmluZSBTVEFSRklWRV9QT1NUX1BMTF9SRUZDTEtf U0VMX1RNRFMJCUJJVCgxKQorKyNkZWZpbmUgU1RBUkZJVkVfUE9TVF9QTExfUE9XRVJfRE9XTgkJ CUJJVCgwKQorKyNkZWZpbmUgU1RBUkZJVkVfUE9TVF9QTExfRkJfRElWXzgoeCkJCQlVUERBVEUo KCh4KSA+PiA4KSA8PCA0LCA0LCA0KQorKworKy8qIFJFRzoweDFhYiAqLworKyNkZWZpbmUgU1RB UkZJVkVfUE9TVF9QTExfRElWXzIJCQkJMHgxYWIKKysjZGVmaW5lIFNUQVJGSVZFX1BPU1RfUExM X1ByZV9ESVZfTUFTSwkJCUdFTk1BU0soNSwgMCkKKysjZGVmaW5lIFNUQVJGSVZFX1BPU1RfUExM X1BSRV9ESVYoeCkJCQlVUERBVEUoeCwgNSwgMCkKKysKKysvKiBSRUc6IDB4MWFjICovCisrI2Rl ZmluZSBTVEFSRklWRV9QT1NUX1BMTF9ESVZfMwkJCQkweDFhYworKyNkZWZpbmUgU1RBUkZJVkVf UE9TVF9QTExfRkJfRElWXzdfMCh4KQkJCVVQREFURSh4LCA3LCAwKQorKworKy8qIFJFRzogMHgx YWQgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1BPU1RfUExMX0RJVl80CQkJCTB4MWFkCisrI2RlZmlu ZSBTVEFSRklWRV9QT1NUX1BMTF9QT1NUX0RJVl9NQVNLCQkJR0VOTUFTSygyLCAwKQorKyNkZWZp bmUgU1RBUkZJVkVfUE9TVF9QTExfUE9TVF9ESVZfMgkJCTB4MAorKyNkZWZpbmUgU1RBUkZJVkVf UE9TVF9QTExfUE9TVF9ESVZfNAkJCTB4MQorKyNkZWZpbmUgU1RBUkZJVkVfUE9TVF9QTExfUE9T VF9ESVZfOAkJCTB4MworKworKy8qIFJFRzogMHgxYWYgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1BP U1RfUExMX0xPQ0tfU1RBVFVTCQkJMHgxYWYKKysKKysvKiBSRUc6IDB4MWIwICovCisrI2RlZmlu ZSBTVEFSRklWRV9CSUFTX0NPTlRST0wJCQkJMHgxYjAKKysjZGVmaW5lIFNUQVJGSVZFX0JJQVNf RU5BQkxFCQkJCUJJVCgyKQorKworKy8qIFJFRzogMHgxYjIgKi8KKysjZGVmaW5lIFNUQVJGSVZF X1RNRFNfQ09OVFJPTAkJCQkweDFiMgorKyNkZWZpbmUgU1RBUkZJVkVfVE1EU19DTEtfRFJJVkVS X0VOCQkJQklUKDMpCisrI2RlZmluZSBTVEFSRklWRV9UTURTX0QyX0RSSVZFUl9FTgkJCUJJVCgy KQorKyNkZWZpbmUgU1RBUkZJVkVfVE1EU19EMV9EUklWRVJfRU4JCQlCSVQoMSkKKysjZGVmaW5l IFNUQVJGSVZFX1RNRFNfRDBfRFJJVkVSX0VOCQkJQklUKDApCisrI2RlZmluZSBTVEFSRklWRV9U TURTX0RSSVZFUl9FTkFCTEUJCQkoU1RBUkZJVkVfVE1EU19DTEtfRFJJVkVSX0VOIHwgXAorKwkJ CQkJCQkgU1RBUkZJVkVfVE1EU19EMl9EUklWRVJfRU4gfCBcCisrCQkJCQkJCSBTVEFSRklWRV9U TURTX0QxX0RSSVZFUl9FTiB8IFwKKysJCQkJCQkJIFNUQVJGSVZFX1RNRFNfRDBfRFJJVkVSX0VO KQorKworKy8qIFJFRzogMHgxYjQgKi8KKysjZGVmaW5lIFNUQVJGSVZFX0xET19DT05UUk9MCQkJ CTB4MWI0CisrI2RlZmluZSBTVEFSRklWRV9MRE9fRDJfRU4JCQkJQklUKDIpCisrI2RlZmluZSBT VEFSRklWRV9MRE9fRDFfRU4JCQkJQklUKDEpCisrI2RlZmluZSBTVEFSRklWRV9MRE9fRDBfRU4J CQkJQklUKDApCisrI2RlZmluZSBTVEFSRklWRV9MRE9fRU5BQkxFCQkJCShTVEFSRklWRV9MRE9f RDJfRU4gfCBcCisrCQkJCQkJCSBTVEFSRklWRV9MRE9fRDFfRU4gfCBcCisrCQkJCQkJCSBTVEFS RklWRV9MRE9fRDBfRU4pCisrCisrLyogUkVHOiAweDFiZSAqLworKyNkZWZpbmUgU1RBUkZJVkVf U0VSSUFMSUVSX0NPTlRST0wJCQkweDFiZQorKyNkZWZpbmUgU1RBUkZJVkVfU0VSSUFMSUVSX0Qy X0VOCQkJQklUKDYpCisrI2RlZmluZSBTVEFSRklWRV9TRVJJQUxJRVJfRDFfRU4JCQlCSVQoNSkK KysjZGVmaW5lIFNUQVJGSVZFX1NFUklBTElFUl9EMF9FTgkJCUJJVCg0KQorKyNkZWZpbmUgU1RB UkZJVkVfU0VSSUFMSUVSX0VOQUJMRQkJCShTVEFSRklWRV9TRVJJQUxJRVJfRDJfRU4gfCBcCisr CQkJCQkJCSBTVEFSRklWRV9TRVJJQUxJRVJfRDFfRU4gfCBcCisrCQkJCQkJCSAgU1RBUkZJVkVf U0VSSUFMSUVSX0QwX0VOKQorKworKy8qIFJFRzogMHgxY2MgKi8KKysjZGVmaW5lIFNUQVJGSVZF X1JYX0NPTlRST0wJCQkJMHgxY2MKKysjZGVmaW5lIFNUQVJGSVZFX1JYX0VOCQkJCQlCSVQoMykK KysjZGVmaW5lIFNUQVJGSVZFX1JYX0NIQU5ORUxfMl9FTgkJCUJJVCgyKQorKyNkZWZpbmUgU1RB UkZJVkVfUlhfQ0hBTk5FTF8xX0VOCQkJQklUKDEpCisrI2RlZmluZSBTVEFSRklWRV9SWF9DSEFO TkVMXzBfRU4JCQlCSVQoMCkKKysjZGVmaW5lIFNUQVJGSVZFX1JYX0VOQUJMRQkJCQkoU1RBUkZJ VkVfUlhfRU4gfCBcCisrCQkJCQkJCSBTVEFSRklWRV9SWF9DSEFOTkVMXzJfRU4gfCBcCisrCQkJ CQkJCSBTVEFSRklWRV9SWF9DSEFOTkVMXzFfRU4gfCBcCisrCQkJCQkJCSBTVEFSRklWRV9SWF9D SEFOTkVMXzBfRU4pCisrCisrLyogUkVHOiAweDFkMSAqLworKyNkZWZpbmUgU1RBUkZJVkVfUFJF X1BMTF9GUkFDX0RJVl9ICQkJMHgxZDEKKysjZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfRlJBQ19E SVZfMjNfMTYoeCkJCVVQREFURSgoeCkgPj4gMTYsIDcsIDApCisrLyogUkVHOiAweDFkMiAqLwor KyNkZWZpbmUgU1RBUkZJVkVfUFJFX1BMTF9GUkFDX0RJVl9NCQkJMHgxZDIKKysjZGVmaW5lIFNU QVJGSVZFX1BSRV9QTExfRlJBQ19ESVZfMTVfOCh4KQkJVVBEQVRFKCh4KSA+PiA4LCA3LCAwKQor Ky8qIFJFRzogMHgxZDMgKi8KKysjZGVmaW5lIFNUQVJGSVZFX1BSRV9QTExfRlJBQ19ESVZfTAkJ CTB4MWQzCisrI2RlZmluZSBTVEFSRklWRV9QUkVfUExMX0ZSQUNfRElWXzdfMCh4KQkJVVBEQVRF KHgsIDcsIDApCisrCisrc3RydWN0IHByZV9wbGxfY29uZmlnIHsKKysJdW5zaWduZWQgbG9uZyBw aXhjbG9jazsKKysJdW5zaWduZWQgbG9uZyB0bWRzY2xvY2s7CisrCXU4IHByZWRpdjsKKysJdTE2 IGZiZGl2OworKwl1OCB0bWRzX2Rpdl9hOworKwl1OCB0bWRzX2Rpdl9iOworKwl1OCB0bWRzX2Rp dl9jOworKwl1OCBwY2xrX2Rpdl9hOworKwl1OCBwY2xrX2Rpdl9iOworKwl1OCBwY2xrX2Rpdl9j OworKwl1OCBwY2xrX2Rpdl9kOworKwl1OCB2Y29fZGl2XzVfZW47CisrCXUzMiBmcmFjZGl2Owor K307CisrCisrc3RydWN0IHBvc3RfcGxsX2NvbmZpZyB7CisrCXVuc2lnbmVkIGxvbmcgdG1kc2Ns b2NrOworKwl1OCBwcmVkaXY7CisrCXUxNiBmYmRpdjsKKysJdTggcG9zdGRpdjsKKysJdTggcG9z dF9kaXZfZW47CisrCXU4IHZlcnNpb247CisrfTsKKysKKytzdHJ1Y3QgcGh5X2NvbmZpZyB7Cisr CXVuc2lnbmVkIGxvbmcJdG1kc2Nsb2NrOworKwl1OAkJcmVnc1sxNF07CisrfTsKKysKKytzdHJ1 Y3QgaGRtaV9kYXRhX2luZm8geworKwlpbnQgdmljOworKwlib29sIHNpbmtfaXNfaGRtaTsKKysJ Ym9vbCBzaW5rX2hhc19hdWRpbzsKKysJdW5zaWduZWQgaW50IGVuY19pbl9mb3JtYXQ7CisrCXVu c2lnbmVkIGludCBlbmNfb3V0X2Zvcm1hdDsKKysJdW5zaWduZWQgaW50IGNvbG9yaW1ldHJ5Owor K307CisrCisrc3RydWN0IHN0YXJmaXZlX2hkbWkgeworKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cisr CXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2OworKworKwlpbnQgaXJxOworKwlzdHJ1Y3QgY2xr ICpzeXNfY2xrOworKwlzdHJ1Y3QgY2xrICptY2xrOworKwlzdHJ1Y3QgY2xrICpiY2xrOworKwlz dHJ1Y3QgcmVzZXRfY29udHJvbCAqdHhfcnN0OworKwl2b2lkIF9faW9tZW0gKnJlZ3M7CisrCisr CXN0cnVjdCBkcm1fY29ubmVjdG9yCWNvbm5lY3RvcjsKKysJc3RydWN0IGRybV9lbmNvZGVyCWVu Y29kZXI7CisrCisrCXN0cnVjdCBzdGFyZml2ZV9oZG1pX2kyYyAqaTJjOworKwlzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmRkYzsKKysKKysJdW5zaWduZWQgbG9uZyB0bWRzX3JhdGU7CisrCisrCXN0cnVj dCBoZG1pX2RhdGFfaW5mbwloZG1pX2RhdGE7CisrCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHBy ZXZpb3VzX21vZGU7CisrCWNvbnN0IHN0cnVjdCBwcmVfcGxsX2NvbmZpZwkqcHJlX2NmZzsKKysJ Y29uc3Qgc3RydWN0IHBvc3RfcGxsX2NvbmZpZwkqcG9zdF9jZmc7CisrfTsKKysKKysjZW5kaWYg LyogX19TVEFSRklWRV9IRE1JX0hfXyAqLworZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 ZXJpc2lsaWNvbi92c19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi92c19kcnYu YworaW5kZXggYzI4YmZkNzRmZmM5Li5iNzQwZmU5MzQwMzUgMTAwNjQ0CistLS0gYS9kcml2ZXJz L2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmMKKysrKyBiL2RyaXZlcnMvZ3B1L2RybS92ZXJp c2lsaWNvbi92c19kcnYuYworQEAgLTE4Myw2ICsxODMsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBjb21wb25lbnRfbWFzdGVyX29wcyB2c19kcm1fb3BzID0geworIAorIHN0YXRpYyBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyICpkcm1fc3ViX2RyaXZlcnNbXSA9IHsKKyAJJmRjX3BsYXRmb3JtX2Ry aXZlciwKKysKKysJLyogY29ubmVjdG9yICsgZW5jb2RlciovCisrI2lmZGVmIENPTkZJR19TVEFS RklWRV9IRE1JCisrCSZzdGFyZml2ZV9oZG1pX2RyaXZlciwKKysjZW5kaWYKKysKKyB9OworIAor ICNkZWZpbmUgTlVNX0RSTV9EUklWRVJTIFwKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmVyaXNpbGljb24vdnNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2 LmgKK2luZGV4IDAzODJiNDRlM2JmMC4uMzY2OGUxZDY1YjNmIDEwMDY0NAorLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5oCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVy aXNpbGljb24vdnNfZHJ2LmgKK0BAIC00NSw0ICs0NSw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp c19pb21tdV9lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCisgCXJldHVybiBwcml2LT5k b21haW4gPyB0cnVlIDogZmFsc2U7CisgfQorIAorKyNpZmRlZiBDT05GSUdfU1RBUkZJVkVfSERN SQorK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHN0YXJmaXZlX2hkbWlfZHJpdmVyOwor KyNlbmRpZgorKworICNlbmRpZiAvKiBfX1ZTX0RSVl9IX18gKi8KKy0tIAorMi40MS4wCisKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDU4LWR0LWJpbmRpbmdzLXVzYi1B ZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1jb250cm9sbGVyLnBhdGNoIGIvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwNTgtZHQtYmluZGluZ3MtdXNiLUFkZC1TdGFyRml2ZS1KSDcxMTAtVVNCLWNv bnRyb2xsZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u MWVhMWE4OWUwOTRlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hl cy8wMDU4LWR0LWJpbmRpbmdzLXVzYi1BZGQtU3RhckZpdmUtSkg3MTEwLVVTQi1jb250cm9sbGVy LnBhdGNoCkBAIC0wLDAgKzEsMTQxIEBACitGcm9tIDk3ZGUwMDAzOTc5YTk3ZjY3NTg0ZjViNTg0 NWZmYjMwY2FjOTdjYTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVu IDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDE4IE1heSAyMDIzIDE5 OjI3OjQ4ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNTgvNzJdIGR0LWJpbmRpbmdzOiB1c2I6IEFk ZCBTdGFyRml2ZSBKSDcxMTAgVVNCIGNvbnRyb2xsZXIKKworU3RhckZpdmUgSkg3MTEwIHBsYXRm b3JtcyBVU0IgaGF2ZSBhIHdyYXBwZXIgbW9kdWxlIGFyb3VuZAordGhlIENhZGVuY2UgVVNCU1Mt RFJEIGNvbnRyb2xsZXIuIEFkZCBiaW5kaW5nIGluZm9ybWF0aW9uIGRvYworZm9yIHRoYXQuCisK K1NpZ25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4K K1Jldmlld2VkLWJ5OiBQZXRlciBDaGVuIDxwZXRlci5jaGVuQGtlcm5lbC5vcmc+CitSZXZpZXdl ZC1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyAuLi4vYmlu ZGluZ3MvdXNiL3N0YXJmaXZlLGpoNzExMC11c2IueWFtbCAgICAgfCAxMTUgKysrKysrKysrKysr KysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUg MTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy91c2Ivc3RhcmZpdmUsamg3 MTEwLXVzYi55YW1sCisKK2RpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvdXNiL3N0YXJmaXZlLGpoNzExMC11c2IueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy91c2Ivc3RhcmZpdmUsamg3MTEwLXVzYi55YW1sCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi4yNGFhOWMxMGQ2YWIKKy0tLSAvZGV2L251bGwK KysrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy91c2Ivc3RhcmZpdmUsamg3 MTEwLXVzYi55YW1sCitAQCAtMCwwICsxLDExNSBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlKQorKyVZQU1MIDEuMgorKy0tLQorKyRp ZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvdXNiL3N0YXJmaXZlLGpoNzExMC11c2Iu eWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUu eWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIHdyYXBwZXIgbW9kdWxlIGZvciB0aGUg Q2FkZW5jZSBVU0JTUy1EUkQgY29udHJvbGxlcgorKworK21haW50YWluZXJzOgorKyAgLSBNaW5k YSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CisrCisrcHJvcGVydGllczoKKysg IGNvbXBhdGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtdXNiCisrCisrICByYW5n ZXM6IHRydWUKKysKKysgIHN0YXJmaXZlLHN0Zy1zeXNjb246CisrICAgICRyZWY6IC9zY2hlbWFz L3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL3BoYW5kbGUtYXJyYXkKKysgICAgaXRlbXM6CisrICAg ICAgLSBpdGVtczoKKysgICAgICAgICAgLSBkZXNjcmlwdGlvbjogcGhhbmRsZSB0byBTeXN0ZW0g UmVnaXN0ZXIgQ29udHJvbGxlciBzdGdfc3lzY29uIG5vZGUuCisrICAgICAgICAgIC0gZGVzY3Jp cHRpb246IGRyIG1vZGUgcmVnaXN0ZXIgb2Zmc2V0IG9mIFNUR19TWVNDT05TQUlGX19TWVNDRkcg cmVnaXN0ZXIgZm9yIFVTQi4KKysgICAgZGVzY3JpcHRpb246CisrICAgICAgVGhlIHBoYW5kbGUg dG8gU3lzdGVtIFJlZ2lzdGVyIENvbnRyb2xsZXIgc3lzY29uIG5vZGUgYW5kIHRoZSBvZmZzZXQK KysgICAgICBvZiBTVEdfU1lTQ09OU0FJRl9fU1lTQ0ZHIHJlZ2lzdGVyIGZvciBVU0IuCisrCisr ICBkcl9tb2RlOgorKyAgICBlbnVtOiBbaG9zdCwgb3RnLCBwZXJpcGhlcmFsXQorKworKyAgIiNh ZGRyZXNzLWNlbGxzIjoKKysgICAgZW51bTogWzEsIDJdCisrCisrICAiI3NpemUtY2VsbHMiOgor KyAgICBlbnVtOiBbMSwgMl0KKysKKysgIGNsb2NrczoKKysgICAgaXRlbXM6CisrICAgICAgLSBk ZXNjcmlwdGlvbjogbGluayBwb3dlciBtYW5hZ2VtZW50IGNsb2NrCisrICAgICAgLSBkZXNjcmlw dGlvbjogc3RhbmRieSBjbG9jaworKyAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9jaworKyAg ICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9jaworKyAgICAgIC0gZGVzY3JpcHRpb246IFVUTUkg QVBCIGNsb2NrCisrCisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25z dDogbHBtCisrICAgICAgLSBjb25zdDogc3RiCisrICAgICAgLSBjb25zdDogYXBiCisrICAgICAg LSBjb25zdDogYXhpCisrICAgICAgLSBjb25zdDogdXRtaV9hcGIKKysKKysgIHJlc2V0czoKKysg ICAgaXRlbXM6CisrICAgICAgLSBkZXNjcmlwdGlvbjogUG93ZXIgdXAgcmVzZXQKKysgICAgICAt IGRlc2NyaXB0aW9uOiBBUEIgY2xvY2sgcmVzZXQKKysgICAgICAtIGRlc2NyaXB0aW9uOiBBWEkg Y2xvY2sgcmVzZXQKKysgICAgICAtIGRlc2NyaXB0aW9uOiBVVE1JIEFQQiBjbG9jayByZXNldAor KworKyAgcmVzZXQtbmFtZXM6CisrICAgIGl0ZW1zOgorKyAgICAgIC0gY29uc3Q6IHB3cnVwCisr ICAgICAgLSBjb25zdDogYXBiCisrICAgICAgLSBjb25zdDogYXhpCisrICAgICAgLSBjb25zdDog dXRtaV9hcGIKKysKKytwYXR0ZXJuUHJvcGVydGllczoKKysgICJedXNiQFswLTlhLWZdKyQiOgor KyAgICAkcmVmOiBjZG5zLHVzYjMueWFtbCMKKysgICAgZGVzY3JpcHRpb246IFJlcXVpcmVkIGNo aWxkIG5vZGUKKysKKytyZXF1aXJlZDoKKysgIC0gY29tcGF0aWJsZQorKyAgLSByYW5nZXMKKysg IC0gc3RhcmZpdmUsc3RnLXN5c2NvbgorKyAgLSAnI2FkZHJlc3MtY2VsbHMnCisrICAtICcjc2l6 ZS1jZWxscycKKysgIC0gZHJfbW9kZQorKyAgLSBjbG9ja3MKKysgIC0gcmVzZXRzCisrCisrYWRk aXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgdXNi QDEwMTAwMDAwIHsKKysgICAgICAgIGNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXVzYiI7 CisrICAgICAgICByYW5nZXMgPSA8MHgwIDB4MTAxMDAwMDAgMHgxMDAwMDA+OworKyAgICAgICAg I2FkZHJlc3MtY2VsbHMgPSA8MT47CisrICAgICAgICAjc2l6ZS1jZWxscyA9IDwxPjsKKysgICAg ICAgIHN0YXJmaXZlLHN0Zy1zeXNjb24gPSA8JnN0Z19zeXNjb24gMHg0PjsKKysgICAgICAgIGNs b2NrcyA9IDwmc3lzY3JnIDQ+LAorKyAgICAgICAgICAgICAgICAgPCZzdGdjcmcgNT4sCisrICAg ICAgICAgICAgICAgICA8JnN0Z2NyZyAxPiwKKysgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDM+ LAorKyAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMj47CisrICAgICAgICBjbG9jay1uYW1lcyA9 ICJscG0iLCAic3RiIiwgImFwYiIsICJheGkiLCAidXRtaV9hcGIiOworKyAgICAgICAgcmVzZXRz ID0gPCZzdGdjcmcgMTA+LAorKyAgICAgICAgICAgICAgICAgPCZzdGdjcmcgOD4sCisrICAgICAg ICAgICAgICAgICA8JnN0Z2NyZyA3PiwKKysgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDk+Owor KyAgICAgICAgcmVzZXQtbmFtZXMgPSAicHdydXAiLCAiYXBiIiwgImF4aSIsICJ1dG1pX2FwYiI7 CisrICAgICAgICBkcl9tb2RlID0gImhvc3QiOworKworKyAgICAgICAgdXNiQDAgeworKyAgICAg ICAgICAgIGNvbXBhdGlibGUgPSAiY2Rucyx1c2IzIjsKKysgICAgICAgICAgICByZWcgPSA8MHgw IDB4MTAwMDA+LAorKyAgICAgICAgICAgICAgICAgIDwweDEwMDAwIDB4MTAwMDA+LAorKyAgICAg ICAgICAgICAgICAgIDwweDIwMDAwIDB4MTAwMDA+OworKyAgICAgICAgICAgIHJlZy1uYW1lcyA9 ICJvdGciLCAieGhjaSIsICJkZXYiOworKyAgICAgICAgICAgIGludGVycnVwdHMgPSA8MTAwPiwg PDEwOD4sIDwxMTA+OworKyAgICAgICAgICAgIGludGVycnVwdC1uYW1lcyA9ICJob3N0IiwgInBl cmlwaGVyYWwiLCAib3RnIjsKKysgICAgICAgICAgICBtYXhpbXVtLXNwZWVkID0gInN1cGVyLXNw ZWVkIjsKKysgICAgICAgIH07CisrICAgIH07CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA1OS11c2ItY2RuczMtQWRkLVN0YXJGaXZlLUpINzEx MC1VU0ItZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTktdXNiLWNk bnMzLUFkZC1TdGFyRml2ZS1KSDcxMTAtVVNCLWRyaXZlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4xMjNiYWIxYzQ1OGYxCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNTktdXNiLWNkbnMzLUFkZC1TdGFyRml2ZS1K SDcxMTAtVVNCLWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDMwOCBAQAorRnJvbSAxYWUxZjkwYjQy YTNiYzg3MjRkMjk3OTY5MDQxM2UyMjZhMmIwNTQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1 LCAxOCBNYXkgMjAyMyAxOToyNzo0OSArMDgwMAorU3ViamVjdDogW1BBVENIIDU5LzcyXSB1c2I6 IGNkbnMzOiBBZGQgU3RhckZpdmUgSkg3MTEwIFVTQiBkcml2ZXIKKworQWRkcyBTcGVjaWZpYyBH bHVlIGxheWVyIHRvIHN1cHBvcnQgVVNCIHBlcmlwaGVyYWxzIG9uCitTdGFyRml2ZSBKSDcxMTAg U29DLgorVGhlcmUgaXMgYSBDYWRlbmNlIFVTQjMgY29yZSBmb3IgSkg3MTEwIFNvQ3MsIHRoZSBj ZG5zCitjb3JlIGlzIHRoZSBjaGlsZCBvZiB0aGlzIFVTQiB3cmFwcGVyIG1vZHVsZSBkZXZpY2Uu CisKK1NpZ25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNv bT4KK0Fja2VkLWJ5OiBQZXRlciBDaGVuIDxwZXRlci5jaGVuQGtlcm5lbC5vcmc+CistLS0KKyBk cml2ZXJzL3VzYi9jZG5zMy9LY29uZmlnICAgICAgICAgIHwgIDExICsrCisgZHJpdmVycy91c2Iv Y2RuczMvTWFrZWZpbGUgICAgICAgICB8ICAgMSArCisgZHJpdmVycy91c2IvY2RuczMvY2RuczMt c3RhcmZpdmUuYyB8IDI0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDMgZmlsZXMg Y2hhbmdlZCwgMjU4IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy91 c2IvY2RuczMvY2RuczMtc3RhcmZpdmUuYworCitkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2Ru czMvS2NvbmZpZyBiL2RyaXZlcnMvdXNiL2NkbnMzL0tjb25maWcKK2luZGV4IGI5OGNhMGExMzUy YS4uMGE1MTRiNTkxNTI3IDEwMDY0NAorLS0tIGEvZHJpdmVycy91c2IvY2RuczMvS2NvbmZpZwor KysrIGIvZHJpdmVycy91c2IvY2RuczMvS2NvbmZpZworQEAgLTc4LDYgKzc4LDE3IEBAIGNvbmZp ZyBVU0JfQ0ROUzNfSU1YCisgCisgCSAgRm9yIGV4YW1wbGUsIGlteDhxbSBhbmQgaW14OHF4cC4K KyAKKytjb25maWcgVVNCX0NETlMzX1NUQVJGSVZFCisrCXRyaXN0YXRlICJDYWRlbmNlIFVTQjMg c3VwcG9ydCBvbiBTdGFyRml2ZSBTb0MgcGxhdGZvcm1zIgorKwlkZXBlbmRzIG9uIEFSQ0hfU1RB UkZJVkUgfHwgQ09NUElMRV9URVNUCisrCWhlbHAKKysJICBTYXkgJ1knIG9yICdNJyBoZXJlIGlm IHlvdSBhcmUgYnVpbGRpbmcgZm9yIFN0YXJGaXZlIFNvQ3MKKysJICBwbGF0Zm9ybXMgdGhhdCBj b250YWluIENhZGVuY2UgVVNCMyBjb250cm9sbGVyIGNvcmUuCisrCisrCSAgZS5nLiBKSDcxMTAu CisrCisrCSAgSWYgeW91IGNob29zZSB0byBidWlsZCB0aGlzIGRyaXZlciBhcyBtb2R1bGUgaXQg d2lsbAorKwkgIGJlIGR5bmFtaWNhbGx5IGxpbmtlZCBhbmQgbW9kdWxlIHdpbGwgYmUgY2FsbGVk IGNkbnMzLXN0YXJmaXZlLmtvCisgZW5kaWYKKyAKKyBpZiBVU0JfQ0ROU19TVVBQT1JUCitkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvY2RuczMvTWFrZWZpbGUgYi9kcml2ZXJzL3VzYi9jZG5zMy9N YWtlZmlsZQoraW5kZXggNjFlZGIyZjg5Mjc2Li40OGRmYWU3NWI1YWEgMTAwNjQ0CistLS0gYS9k cml2ZXJzL3VzYi9jZG5zMy9NYWtlZmlsZQorKysrIGIvZHJpdmVycy91c2IvY2RuczMvTWFrZWZp bGUKK0BAIC0yNCw2ICsyNCw3IEBAIGVuZGlmCisgb2JqLSQoQ09ORklHX1VTQl9DRE5TM19QQ0lf V1JBUCkJCSs9IGNkbnMzLXBjaS13cmFwLm8KKyBvYmotJChDT05GSUdfVVNCX0NETlMzX1RJKQkJ CSs9IGNkbnMzLXRpLm8KKyBvYmotJChDT05GSUdfVVNCX0NETlMzX0lNWCkJCQkrPSBjZG5zMy1p bXgubworK29iai0kKENPTkZJR19VU0JfQ0ROUzNfU1RBUkZJVkUpCQkrPSBjZG5zMy1zdGFyZml2 ZS5vCisgCisgY2Ruc3AtdWRjLXBjaS15CQkJCQk6PSBjZG5zcC1wY2kubworIAorZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2NkbnMzL2NkbnMzLXN0YXJmaXZlLmMgYi9kcml2ZXJzL3VzYi9jZG5z My9jZG5zMy1zdGFyZml2ZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MDAwLi5mYzFmMDAzYjE0NWQKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvdXNiL2NkbnMz L2NkbnMzLXN0YXJmaXZlLmMKK0BAIC0wLDAgKzEsMjQ2IEBACisrLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAKKysvKioKKysgKiBjZG5zMy1zdGFyZml2ZS5jIC0gU3RhckZpdmUg c3BlY2lmaWMgR2x1ZSBsYXllciBmb3IgQ2FkZW5jZSBVU0IgQ29udHJvbGxlcgorKyAqCisrICog Q29weXJpZ2h0IChDKSAyMDIzIFN0YXJGaXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisrICoKKysg KiBBdXRob3I6CU1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKysgKi8K KysKKysjaW5jbHVkZSA8bGludXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKysj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisrI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4K KysjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC9pby5oPgorKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0 Zm9ybS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgorKyNpbmNsdWRlIDxsaW51eC9yZWdt YXAuaD4KKysjaW5jbHVkZSA8bGludXgvdXNiL290Zy5oPgorKyNpbmNsdWRlICJjb3JlLmgiCisr CisrI2RlZmluZSBVU0JfU1RSQVBfSE9TVAkJCUJJVCgxNykKKysjZGVmaW5lIFVTQl9TVFJBUF9E RVZJQ0UJCUJJVCgxOCkKKysjZGVmaW5lIFVTQl9TVFJBUF9NQVNLCQkJR0VOTUFTSygxOCwgMTYp CisrCisrI2RlZmluZSBVU0JfU1VTUEVORE1fSE9TVAkJQklUKDE5KQorKyNkZWZpbmUgVVNCX1NV U1BFTkRNX01BU0sJCUJJVCgxOSkKKysKKysjZGVmaW5lIFVTQl9NSVNDX0NGR19NQVNLCQlHRU5N QVNLKDIzLCAyMCkKKysjZGVmaW5lIFVTQl9TVVNQRU5ETV9CWVBTCQlCSVQoMjApCisrI2RlZmlu ZSBVU0JfUExMX0VOCQkJQklUKDIyKQorKyNkZWZpbmUgVVNCX1JFRkNMS19NT0RFCQkJQklUKDIz KQorKworK3N0cnVjdCBjZG5zX3N0YXJmaXZlIHsKKysJc3RydWN0IGRldmljZSAqZGV2OworKwlz dHJ1Y3QgcmVnbWFwICpzdGdfc3lzY29uOworKwlzdHJ1Y3QgcmVzZXRfY29udHJvbCAqcmVzZXRz OworKwlzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqY2xrczsKKysJaW50IG51bV9jbGtzOworKwl1MzIg c3RnX3VzYl9tb2RlOworK307CisrCisrc3RhdGljIHZvaWQgY2Ruc19tb2RlX2luaXQoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKysJCQkgICBzdHJ1Y3QgY2Ruc19zdGFyZml2ZSAqZGF0 YSkKKyt7CisrCWVudW0gdXNiX2RyX21vZGUgbW9kZTsKKysKKysJcmVnbWFwX3VwZGF0ZV9iaXRz KGRhdGEtPnN0Z19zeXNjb24sIGRhdGEtPnN0Z191c2JfbW9kZSwKKysJCQkgICBVU0JfTUlTQ19D RkdfTUFTSywKKysJCQkgICBVU0JfU1VTUEVORE1fQllQUyB8IFVTQl9QTExfRU4gfCBVU0JfUkVG Q0xLX01PREUpOworKworKwkvKiBkciBtb2RlIHNldHRpbmcgKi8KKysJbW9kZSA9IHVzYl9nZXRf ZHJfbW9kZSgmcGRldi0+ZGV2KTsKKysKKysJc3dpdGNoIChtb2RlKSB7CisrCWNhc2UgVVNCX0RS X01PREVfSE9TVDoKKysJCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lzY29uLAorKwkJ CQkgICBkYXRhLT5zdGdfdXNiX21vZGUsCisrCQkJCSAgIFVTQl9TVFJBUF9NQVNLLAorKwkJCQkg ICBVU0JfU1RSQVBfSE9TVCk7CisrCQlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+c3RnX3N5c2Nv biwKKysJCQkJICAgZGF0YS0+c3RnX3VzYl9tb2RlLAorKwkJCQkgICBVU0JfU1VTUEVORE1fTUFT SywKKysJCQkJICAgVVNCX1NVU1BFTkRNX0hPU1QpOworKwkJYnJlYWs7CisrCisrCWNhc2UgVVNC X0RSX01PREVfUEVSSVBIRVJBTDoKKysJCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lz Y29uLCBkYXRhLT5zdGdfdXNiX21vZGUsCisrCQkJCSAgIFVTQl9TVFJBUF9NQVNLLCBVU0JfU1RS QVBfREVWSUNFKTsKKysJCXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lzY29uLCBkYXRh LT5zdGdfdXNiX21vZGUsCisrCQkJCSAgIFVTQl9TVVNQRU5ETV9NQVNLLCAwKTsKKysJCWJyZWFr OworKwlkZWZhdWx0OgorKwkJYnJlYWs7CisrCX0KKyt9CisrCisrc3RhdGljIGludCBjZG5zX2Ns a19yc3RfaW5pdChzdHJ1Y3QgY2Ruc19zdGFyZml2ZSAqZGF0YSkKKyt7CisrCWludCByZXQ7Cisr CisrCXJldCA9IGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKGRhdGEtPm51bV9jbGtzLCBkYXRhLT5j bGtzKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRhdGEtPmRldiwgcmV0 LAorKwkJCQkgICAgICJmYWlsZWQgdG8gZW5hYmxlIGNsb2Nrc1xuIik7CisrCisrCXJldCA9IHJl c2V0X2NvbnRyb2xfZGVhc3NlcnQoZGF0YS0+cmVzZXRzKTsKKysJaWYgKHJldCkgeworKwkJZGV2 X2VycihkYXRhLT5kZXYsICJmYWlsZWQgdG8gcmVzZXQgY2xvY2tzXG4iKTsKKysJCWdvdG8gZXJy X2Nsa19pbml0OworKwl9CisrCisrCXJldHVybiByZXQ7CisrCisrZXJyX2Nsa19pbml0OgorKwlj bGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhLT5udW1fY2xrcywgZGF0YS0+Y2xrcyk7Cisr CXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyB2b2lkIGNkbnNfY2xrX3JzdF9kZWluaXQoc3Ry dWN0IGNkbnNfc3RhcmZpdmUgKmRhdGEpCisreworKwlyZXNldF9jb250cm9sX2Fzc2VydChkYXRh LT5yZXNldHMpOworKwljbGtfYnVsa19kaXNhYmxlX3VucHJlcGFyZShkYXRhLT5udW1fY2xrcywg ZGF0YS0+Y2xrcyk7CisrfQorKworK3N0YXRpYyBpbnQgY2Ruc19zdGFyZml2ZV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorK3sKKysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBk ZXYtPmRldjsKKysJc3RydWN0IGNkbnNfc3RhcmZpdmUgKmRhdGE7CisrCXVuc2lnbmVkIGludCBh cmdzOworKwlpbnQgcmV0OworKworKwlkYXRhID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpk YXRhKSwgR0ZQX0tFUk5FTCk7CisrCWlmICghZGF0YSkKKysJCXJldHVybiAtRU5PTUVNOworKwor KwlkYXRhLT5kZXYgPSBkZXY7CisrCisrCWRhdGEtPnN0Z19zeXNjb24gPQorKwkJc3lzY29uX3Jl Z21hcF9sb29rdXBfYnlfcGhhbmRsZV9hcmdzKHBkZXYtPmRldi5vZl9ub2RlLAorKwkJCQkJCSAg ICAgInN0YXJmaXZlLHN0Zy1zeXNjb24iLCAxLCAmYXJncyk7CisrCisrCWlmIChJU19FUlIoZGF0 YS0+c3RnX3N5c2NvbikpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoZGF0 YS0+c3RnX3N5c2NvbiksCisrCQkJCSAgICAgIkZhaWxlZCB0byBwYXJzZSBzdGFyZml2ZSxzdGct c3lzY29uXG4iKTsKKysKKysJZGF0YS0+c3RnX3VzYl9tb2RlID0gYXJnczsKKysKKysJZGF0YS0+ bnVtX2Nsa3MgPSBkZXZtX2Nsa19idWxrX2dldF9hbGwoZGF0YS0+ZGV2LCAmZGF0YS0+Y2xrcyk7 CisrCWlmIChkYXRhLT5udW1fY2xrcyA8IDApCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkYXRh LT5kZXYsIC1FTk9ERVYsCisrCQkJCSAgICAgIkZhaWxlZCB0byBnZXQgY2xvY2tzXG4iKTsKKysK KysJZGF0YS0+cmVzZXRzID0gZGV2bV9yZXNldF9jb250cm9sX2FycmF5X2dldF9leGNsdXNpdmUo ZGF0YS0+ZGV2KTsKKysJaWYgKElTX0VSUihkYXRhLT5yZXNldHMpKQorKwkJcmV0dXJuIGRldl9l cnJfcHJvYmUoZGF0YS0+ZGV2LCBQVFJfRVJSKGRhdGEtPnJlc2V0cyksCisrCQkJCSAgICAgIkZh aWxlZCB0byBnZXQgcmVzZXRzIik7CisrCisrCWNkbnNfbW9kZV9pbml0KHBkZXYsIGRhdGEpOwor KwlyZXQgPSBjZG5zX2Nsa19yc3RfaW5pdChkYXRhKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBy ZXQ7CisrCisrCXJldCA9IG9mX3BsYXRmb3JtX3BvcHVsYXRlKGRldi0+b2Zfbm9kZSwgTlVMTCwg TlVMTCwgZGV2KTsKKysJaWYgKHJldCkgeworKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gY3Jl YXRlIGNoaWxkcmVuXG4iKTsKKysJCWNkbnNfY2xrX3JzdF9kZWluaXQoZGF0YSk7CisrCQlyZXR1 cm4gcmV0OworKwl9CisrCisrCWRldmljZV9zZXRfd2FrZXVwX2NhcGFibGUoZGV2LCB0cnVlKTsK KysJcG1fcnVudGltZV9zZXRfYWN0aXZlKGRldik7CisrCXBtX3J1bnRpbWVfZW5hYmxlKGRldik7 CisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRhdGEpOworKworKwlyZXR1cm4gMDsKKyt9 CisrCisrc3RhdGljIGludCBjZG5zX3N0YXJmaXZlX3JlbW92ZV9jb3JlKHN0cnVjdCBkZXZpY2Ug KmRldiwgdm9pZCAqYykKKyt7CisrCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19w bGF0Zm9ybV9kZXZpY2UoZGV2KTsKKysKKysJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocGRl dik7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGNkbnNfc3RhcmZpdmVfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGRldi0+ZGV2OworKwlzdHJ1Y3QgY2Ruc19zdGFyZml2ZSAqZGF0YSA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOworKworKwlwbV9ydW50aW1lX2dldF9zeW5jKGRldik7CisrCWRldmljZV9m b3JfZWFjaF9jaGlsZChkZXYsIE5VTEwsIGNkbnNfc3RhcmZpdmVfcmVtb3ZlX2NvcmUpOworKwor KwlwbV9ydW50aW1lX2Rpc2FibGUoZGV2KTsKKysJcG1fcnVudGltZV9wdXRfbm9pZGxlKGRldik7 CisrCWNkbnNfY2xrX3JzdF9kZWluaXQoZGF0YSk7CisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBk ZXYsIE5VTEwpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrI2lmZGVmIENPTkZJR19QTQorK3N0 YXRpYyBpbnQgY2Ruc19zdGFyZml2ZV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYp CisreworKwlzdHJ1Y3QgY2Ruc19zdGFyZml2ZSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp OworKworKwlyZXR1cm4gY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoZGF0YS0+bnVtX2Nsa3MsIGRh dGEtPmNsa3MpOworK30KKysKKytzdGF0aWMgaW50IGNkbnNfc3RhcmZpdmVfcnVudGltZV9zdXNw ZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBjZG5zX3N0YXJmaXZlICpkYXRh ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisrCisrCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJl KGRhdGEtPm51bV9jbGtzLCBkYXRhLT5jbGtzKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworKyNp ZmRlZiBDT05GSUdfUE1fU0xFRVAKKytzdGF0aWMgaW50IGNkbnNfc3RhcmZpdmVfcmVzdW1lKHN0 cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBjZG5zX3N0YXJmaXZlICpkYXRhID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CisrCisrCXJldHVybiBjZG5zX2Nsa19yc3RfaW5pdChkYXRhKTsK Kyt9CisrCisrc3RhdGljIGludCBjZG5zX3N0YXJmaXZlX3N1c3BlbmQoc3RydWN0IGRldmljZSAq ZGV2KQorK3sKKysJc3RydWN0IGNkbnNfc3RhcmZpdmUgKmRhdGEgPSBkZXZfZ2V0X2RydmRhdGEo ZGV2KTsKKysKKysJY2Ruc19jbGtfcnN0X2RlaW5pdChkYXRhKTsKKysKKysJcmV0dXJuIDA7Cisr fQorKyNlbmRpZgorKyNlbmRpZgorKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBj ZG5zX3N0YXJmaXZlX3BtX29wcyA9IHsKKysJU0VUX1JVTlRJTUVfUE1fT1BTKGNkbnNfc3RhcmZp dmVfcnVudGltZV9zdXNwZW5kLAorKwkJCSAgIGNkbnNfc3RhcmZpdmVfcnVudGltZV9yZXN1bWUs IE5VTEwpCisrCVNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKGNkbnNfc3RhcmZpdmVfc3VzcGVuZCwg Y2Ruc19zdGFyZml2ZV9yZXN1bWUpCisrfTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rl dmljZV9pZCBjZG5zX3N0YXJmaXZlX29mX21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUgPSAi c3RhcmZpdmUsamg3MTEwLXVzYiIsIH0sCisrCXsgLyogc2VudGluZWwgKi8gfQorK307CisrTU9E VUxFX0RFVklDRV9UQUJMRShvZiwgY2Ruc19zdGFyZml2ZV9vZl9tYXRjaCk7CisrCisrc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2Ruc19zdGFyZml2ZV9kcml2ZXIgPSB7CisrCS5wcm9i ZQkJPSBjZG5zX3N0YXJmaXZlX3Byb2JlLAorKwkucmVtb3ZlCQk9IGNkbnNfc3RhcmZpdmVfcmVt b3ZlLAorKwkuZHJpdmVyCQk9IHsKKysJCS5uYW1lCT0gImNkbnMzLXN0YXJmaXZlIiwKKysJCS5v Zl9tYXRjaF90YWJsZQk9IGNkbnNfc3RhcmZpdmVfb2ZfbWF0Y2gsCisrCQkucG0JPSAmY2Ruc19z dGFyZml2ZV9wbV9vcHMsCisrCX0sCisrfTsKKyttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGNkbnNf c3RhcmZpdmVfZHJpdmVyKTsKKysKKytNT0RVTEVfQUxJQVMoInBsYXRmb3JtOmNkbnMzLXN0YXJm aXZlIik7CisrTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworK01PRFVMRV9ERVNDUklQVElPTigi Q2FkZW5jZSBVU0IzIFN0YXJGaXZlIEdsdWUgTGF5ZXIiKTsKKy0tIAorMi40MS4wCisKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDYwLWR0LWJpbmRpbmdzLXBoeS1BZGQt U3RhckZpdmUtSkg3MTEwLVVTQi1QSFkucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMv MDA2MC1kdC1iaW5kaW5ncy1waHktQWRkLVN0YXJGaXZlLUpINzExMC1VU0ItUEhZLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjIwMDczYWE1M2EyMGQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2MC1kdC1iaW5kaW5n cy1waHktQWRkLVN0YXJGaXZlLUpINzExMC1VU0ItUEhZLnBhdGNoCkBAIC0wLDAgKzEsNzUgQEAK K0Zyb20gY2Y4ZWExMjZkMTVlOTI3MzRkYWVhYWE1MWZlYWY4NmRhYWYyMGVkOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNo LmNvbT4KK0RhdGU6IFRodSwgMjkgSnVuIDIwMjMgMTU6NTE6MTEgKzA4MDAKK1N1YmplY3Q6IFtQ QVRDSCA2MC83Ml0gZHQtYmluZGluZ3M6IHBoeTogQWRkIFN0YXJGaXZlIEpINzExMCBVU0IgUEhZ CisKK0FkZCBTdGFyRml2ZSBKSDcxMTAgU29DIFVTQiAyLjAgUEhZIGR0LWJpbmRpbmcuCisKK1Np Z25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KK1Jl dmlld2VkLWJ5OiBIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4KK1Jldmlld2Vk LWJ5OiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFF1 YWRyb3MgPHJvZ2VycUBrZXJuZWwub3JnPgorLS0tCisgLi4uL2JpbmRpbmdzL3BoeS9zdGFyZml2 ZSxqaDcxMTAtdXNiLXBoeS55YW1sIHwgNTAgKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBj aGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvc3RhcmZpdmUsamg3MTEwLXVzYi1waHkueWFtbAor CitkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9zdGFy Zml2ZSxqaDcxMTAtdXNiLXBoeS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL3BoeS9zdGFyZml2ZSxqaDcxMTAtdXNiLXBoeS55YW1sCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMDAwLi4yNjllOWY5ZjEyYjYKKy0tLSAvZGV2L251bGwKKysrKyBi L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvc3RhcmZpdmUsamg3MTEwLXVz Yi1waHkueWFtbAorQEAgLTAsMCArMSw1MCBAQAorKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNlKQorKyVZQU1MIDEuMgorKy0tLQorKyRpZDog aHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvcGh5L3N0YXJmaXZlLGpoNzExMC11c2ItcGh5 LnlhbWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3Jl LnlhbWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBVU0IgMi4wIFBIWQorKworK21haW50 YWluZXJzOgorKyAgLSBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+Cisr CisrcHJvcGVydGllczoKKysgIGNvbXBhdGlibGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcx MTAtdXNiLXBoeQorKworKyAgcmVnOgorKyAgICBtYXhJdGVtczogMQorKworKyAgIiNwaHktY2Vs bHMiOgorKyAgICBjb25zdDogMAorKworKyAgY2xvY2tzOgorKyAgICBpdGVtczoKKysgICAgICAt IGRlc2NyaXB0aW9uOiBQSFkgMTI1bQorKyAgICAgIC0gZGVzY3JpcHRpb246IGFwcCAxMjVtCisr CisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogMTI1bQorKyAg ICAgIC0gY29uc3Q6IGFwcF8xMjVtCisrCisrcmVxdWlyZWQ6CisrICAtIGNvbXBhdGlibGUKKysg IC0gcmVnCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSAiI3BoeS1jZWxscyIK KysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysKKytleGFtcGxlczoKKysgIC0gfAor KyAgICBwaHlAMTAyMDAwMDAgeworKyAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcx MTAtdXNiLXBoeSI7CisrICAgICAgICByZWcgPSA8MHgxMDIwMDAwMCAweDEwMDAwPjsKKysgICAg ICAgIGNsb2NrcyA9IDwmc3lzY3JnIDk1PiwKKysgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDY+ OworKyAgICAgICAgY2xvY2stbmFtZXMgPSAiMTI1bSIsICJhcHBfMTI1bSI7CisrICAgICAgICAj cGh5LWNlbGxzID0gPDA+OworKyAgICB9OworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjEtZHQtYmluZGluZ3MtcGh5LUFkZC1TdGFyRml2ZS1K SDcxMTAtUENJZS1QSFkucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2MS1kdC1i aW5kaW5ncy1waHktQWRkLVN0YXJGaXZlLUpINzExMC1QQ0llLVBIWS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wN2E0YmYwZThmODQ4Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjEtZHQtYmluZGluZ3MtcGh5LUFk ZC1TdGFyRml2ZS1KSDcxMTAtUENJZS1QSFkucGF0Y2gKQEAgLTAsMCArMSw4NCBAQAorRnJvbSBm MTgzODMyMDE2NWMwNTUwOWExZTA0MDhmMzUyMWM3MjQ0MmYyNGVkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgor RGF0ZTogVGh1LCAyOSBKdW4gMjAyMyAxNTo1MToxMiArMDgwMAorU3ViamVjdDogW1BBVENIIDYx LzcyXSBkdC1iaW5kaW5nczogcGh5OiBBZGQgU3RhckZpdmUgSkg3MTEwIFBDSWUgUEhZCisKK0Fk ZCBTdGFyRml2ZSBKSDcxMTAgU29DIFBDSWUgMi4wIFBIWSBkdC1iaW5kaW5nLgorUENJZSBQSFkw IChwaHlAMTAyMTAwMDApIGNhbiBiZSB1c2VkIGFzIFVTQiAzLjAgUEhZLgorCitTaWduZWQtb2Zm LWJ5OiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1i eTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitSZXZpZXdlZC1ieTogUm9i IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KK1Jldmlld2VkLWJ5OiBSb2dlciBRdWFkcm9zIDxy b2dlcnFAa2VybmVsLm9yZz4KKy0tLQorIC4uLi9waHkvc3RhcmZpdmUsamg3MTEwLXBjaWUtcGh5 LnlhbWwgICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwg NTggaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpoNzExMC1wY2llLXBoeS55YW1sCisKK2RpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpo NzExMC1wY2llLXBoeS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bo eS9zdGFyZml2ZSxqaDcxMTAtcGNpZS1waHkueWFtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwMDAwMC4uMmU4M2E2MTY0Y2QxCistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpoNzExMC1wY2llLXBo eS55YW1sCitAQCAtMCwwICsxLDU4IEBACisrIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQ TC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlBTUwgMS4yCisrLS0tCisrJGlkOiBodHRw Oi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9waHkvc3RhcmZpdmUsamg3MTEwLXBjaWUtcGh5Lnlh bWwjCisrJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlh bWwjCisrCisrdGl0bGU6IFN0YXJGaXZlIEpINzExMCBQQ0llIDIuMCBQSFkKKysKKyttYWludGFp bmVyczoKKysgIC0gTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorKwor K3Byb3BlcnRpZXM6CisrICBjb21wYXRpYmxlOgorKyAgICBjb25zdDogc3RhcmZpdmUsamg3MTEw LXBjaWUtcGh5CisrCisrICByZWc6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICAiI3BoeS1jZWxs cyI6CisrICAgIGNvbnN0OiAwCisrCisrICBzdGFyZml2ZSxzeXMtc3lzY29uOgorKyAgICAkcmVm OiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9waGFuZGxlLWFycmF5CisrICAgIGl0 ZW1zOgorKyAgICAgIC0gaXRlbXM6CisrICAgICAgICAgIC0gZGVzY3JpcHRpb246IHBoYW5kbGUg dG8gU3lzdGVtIFJlZ2lzdGVyIENvbnRyb2xsZXIgc3lzX3N5c2NvbiBub2RlLgorKyAgICAgICAg ICAtIGRlc2NyaXB0aW9uOiBQSFkgY29ubmVjdCBvZmZzZXQgb2YgU1lTX1NZU0NPTlNBSUZfX1NZ U0NGRyByZWdpc3RlciBmb3IgVVNCIFBIWS4KKysgICAgZGVzY3JpcHRpb246CisrICAgICAgVGhl IHBoYW5kbGUgdG8gU3lzdGVtIFJlZ2lzdGVyIENvbnRyb2xsZXIgc3lzY29uIG5vZGUgYW5kIHRo ZSBQSFkgY29ubmVjdCBvZmZzZXQKKysgICAgICBvZiBTWVNfU1lTQ09OU0FJRl9fU1lTQ0ZHIHJl Z2lzdGVyLiBDb25uZWN0IFBIWSB0byBVU0IzIGNvbnRyb2xsZXIuCisrCisrICBzdGFyZml2ZSxz dGctc3lzY29uOgorKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9w aGFuZGxlLWFycmF5CisrICAgIGl0ZW1zOgorKyAgICAgIC0gaXRlbXM6CisrICAgICAgICAgIC0g ZGVzY3JpcHRpb246IHBoYW5kbGUgdG8gU3lzdGVtIFJlZ2lzdGVyIENvbnRyb2xsZXIgc3RnX3N5 c2NvbiBub2RlLgorKyAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQSFkgbW9kZSBvZmZzZXQgb2Yg U1RHX1NZU0NPTlNBSUZfX1NZU0NGRyByZWdpc3Rlci4KKysgICAgICAgICAgLSBkZXNjcmlwdGlv bjogUEhZIGVuYWJsZSBmb3IgVVNCIG9mZnNldCBvZiBTVEdfU1lTQ09OU0FJRl9fU1lTQ0ZHIHJl Z2lzdGVyLgorKyAgICBkZXNjcmlwdGlvbjoKKysgICAgICBUaGUgcGhhbmRsZSB0byBTeXN0ZW0g UmVnaXN0ZXIgQ29udHJvbGxlciBzeXNjb24gbm9kZSBhbmQgdGhlIG9mZnNldAorKyAgICAgIG9m IFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIgZm9yIFBDSWUgUEhZLiBUb3RhbCAyIHJl Z3Npc3RlcnMgb2Zmc2V0LgorKworK3JlcXVpcmVkOgorKyAgLSBjb21wYXRpYmxlCisrICAtIHJl ZworKyAgLSAiI3BoeS1jZWxscyIKKysKKythZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKKysK KytleGFtcGxlczoKKysgIC0gfAorKyAgICBwaHlAMTAyMTAwMDAgeworKyAgICAgICAgY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcGNpZS1waHkiOworKyAgICAgICAgcmVnID0gPDB4MTAy MTAwMDAgMHgxMDAwMD47CisrICAgICAgICAjcGh5LWNlbGxzID0gPDA+OworKyAgICAgICAgc3Rh cmZpdmUsc3lzLXN5c2NvbiA9IDwmc3lzX3N5c2NvbiAweDE4PjsKKysgICAgICAgIHN0YXJmaXZl LHN0Zy1zeXNjb24gPSA8JnN0Z19zeXNjb24gMHgxNDggMHgxZjQ+OworKyAgICB9OworLS0gCisy LjQxLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjItcGh5LXN0 YXJmaXZlLUFkZC1KSDcxMTAtVVNCLTIuMC1QSFktZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51 eDYuNC9wYXRjaGVzLzAwNjItcGh5LXN0YXJmaXZlLUFkZC1KSDcxMTAtVVNCLTIuMC1QSFktZHJp dmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjMwZDc0 MGUzMTUzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2 Mi1waHktc3RhcmZpdmUtQWRkLUpINzExMC1VU0ItMi4wLVBIWS1kcml2ZXIucGF0Y2gKQEAgLTAs MCArMSwyMDQgQEAKK0Zyb20gODA3YTIxM2RkNTMyOTY0ZDhmZWMwYmE4NTQwY2U0MTQ5YTM3OGRh YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5A c3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IFRodSwgMjkgSnVuIDIwMjMgMTU6NTE6MTMgKzA4MDAK K1N1YmplY3Q6IFtQQVRDSCA2Mi83Ml0gcGh5OiBzdGFyZml2ZTogQWRkIEpINzExMCBVU0IgMi4w IFBIWSBkcml2ZXIKKworQWRkIFN0YXJmaXZlIEpINzExMCBTb0MgVVNCIDIuMCBQSFkgZHJpdmVy IHN1cHBvcnQuCitVU0IgMi4wIFBIWSBkZWZhdWx0IGNvbm5lY3QgdG8gQ2FkZW5jZSBVU0IgY29u dHJvbGxlci4KKworU2lnbmVkLW9mZi1ieTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2 ZXRlY2guY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFF1YWRyb3MgPHJvZ2VycUBrZXJuZWwub3Jn PgorLS0tCisgZHJpdmVycy9waHkvc3RhcmZpdmUvS2NvbmZpZyAgICAgICAgICB8ICAxMCArKwor IGRyaXZlcnMvcGh5L3N0YXJmaXZlL01ha2VmaWxlICAgICAgICAgfCAgIDEgKworIGRyaXZlcnMv cGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtdXNiLmMgfCAxNTIgKysrKysrKysrKysrKysrKysrKysr KysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvcGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtdXNiLmMKKworZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGh5L3N0YXJmaXZlL0tjb25maWcgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9L Y29uZmlnCitpbmRleCBmOTg5YjhmZjhiY2IuLmM3Y2RkMGRjYzFkZSAxMDA2NDQKKy0tLSBhL2Ry aXZlcnMvcGh5L3N0YXJmaXZlL0tjb25maWcKKysrKyBiL2RyaXZlcnMvcGh5L3N0YXJmaXZlL0tj b25maWcKK0BAIC0xMSwzICsxMSwxMyBAQCBjb25maWcgUEhZX1NUQVJGSVZFX0RQSFlfUlgKKyAJ ICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBTdGFyRml2ZSBELVBIWSBpbiB5b3Vy CisgCSAgc3lzdGVtLiBJZiBNIGlzIHNlbGVjdGVkLCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVk CisgCSAgcGh5LXN0YXJmaXZlLWRwaHktcnguCisrCisrY29uZmlnIFBIWV9TVEFSRklWRV9KSDcx MTBfVVNCCisrCXRyaXN0YXRlICJTdGFyZml2ZSBKSDcxMTAgVVNCIDIuMCBQSFkgc3VwcG9ydCIK KysJZGVwZW5kcyBvbiBVU0JfU1VQUE9SVAorKwlzZWxlY3QgR0VORVJJQ19QSFkKKysJaGVscAor KwkgIEVuYWJsZSB0aGlzIHRvIHN1cHBvcnQgdGhlIFN0YXJGaXZlIFVTQiAyLjAgUEhZLAorKwkg IHVzZWQgd2l0aCB0aGUgQ2FkZW5jZSBVU0IgY29udHJvbGxlci4KKysJICBJZiBNIGlzIHNlbGVj dGVkLCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkCisrCSAgcGh5LWpoNzExMC11c2Iua28uCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL3BoeS9z dGFyZml2ZS9NYWtlZmlsZQoraW5kZXggN2VjNTc2Y2IzMGFlLi4xNzY0NDM4NTJmNGQgMTAwNjQ0 CistLS0gYS9kcml2ZXJzL3BoeS9zdGFyZml2ZS9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9waHkv c3RhcmZpdmUvTWFrZWZpbGUKK0BAIC0xLDIgKzEsMyBAQAorICMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKKyBvYmotJChDT05GSUdfUEhZX1NUQVJGSVZFX0RQSFlfUlgpICAgICAg Kz0gcGh5LXN0YXJmaXZlLWRwaHktcngubworK29iai0kKENPTkZJR19QSFlfU1RBUkZJVkVfSkg3 MTEwX1VTQikJKz0gcGh5LWpoNzExMC11c2IubworZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L3N0 YXJmaXZlL3BoeS1qaDcxMTAtdXNiLmMgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktamg3MTEw LXVzYi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwLi42MzM5MTJm OGEwNWQKKy0tLSAvZGV2L251bGwKKysrKyBiL2RyaXZlcnMvcGh5L3N0YXJmaXZlL3BoeS1qaDcx MTAtdXNiLmMKK0BAIC0wLDAgKzEsMTUyIEBACisrLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjArCisrLyoKKysgKiBTdGFyRml2ZSBKSDcxMTAgVVNCIDIuMCBQSFkgZHJpdmVyCisr ICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4K KysgKiBBdXRob3I6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4KKysg Ki8KKysKKysjaW5jbHVkZSA8bGludXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4K KysjaW5jbHVkZSA8bGludXgvZXJyLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisrI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CisrI2luY2x1 ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorKyNpbmNsdWRlIDxsaW51eC91c2Ivb2YuaD4K KysKKysjZGVmaW5lIFVTQl8xMjVNX0NMS19SQVRFCQkxMjUwMDAwMDAKKysjZGVmaW5lIFVTQl9M U19LRUVQQUxJVkVfT0ZGCQkweDQKKysjZGVmaW5lIFVTQl9MU19LRUVQQUxJVkVfRU5BQkxFCQlC SVQoNCkKKysKKytzdHJ1Y3Qgamg3MTEwX3VzYjJfcGh5IHsKKysJc3RydWN0IHBoeSAqcGh5Owor Kwl2b2lkIF9faW9tZW0gKnJlZ3M7CisrCXN0cnVjdCBjbGsgKnVzYl8xMjVtX2NsazsKKysJc3Ry dWN0IGNsayAqYXBwXzEyNW07CisrCWVudW0gcGh5X21vZGUgbW9kZTsKKyt9OworKworK3N0YXRp YyB2b2lkIHVzYjJfc2V0X2xzX2tlZXBhbGl2ZShzdHJ1Y3Qgamg3MTEwX3VzYjJfcGh5ICpwaHks IGJvb2wgc2V0KQorK3sKKysJdW5zaWduZWQgaW50IHZhbDsKKysKKysJLyogSG9zdCBtb2RlIGVu YWJsZSB0aGUgTFMgc3BlZWQga2VlcC1hbGl2ZSBzaWduYWwgKi8KKysJdmFsID0gcmVhZGwocGh5 LT5yZWdzICsgVVNCX0xTX0tFRVBBTElWRV9PRkYpOworKwlpZiAoc2V0KQorKwkJdmFsIHw9IFVT Ql9MU19LRUVQQUxJVkVfRU5BQkxFOworKwllbHNlCisrCQl2YWwgJj0gflVTQl9MU19LRUVQQUxJ VkVfRU5BQkxFOworKworKwl3cml0ZWwodmFsLCBwaHktPnJlZ3MgKyBVU0JfTFNfS0VFUEFMSVZF X09GRik7CisrfQorKworK3N0YXRpYyBpbnQgdXNiMl9waHlfc2V0X21vZGUoc3RydWN0IHBoeSAq X3BoeSwKKysJCQkgICAgIGVudW0gcGh5X21vZGUgbW9kZSwgaW50IHN1Ym1vZGUpCisreworKwlz dHJ1Y3Qgamg3MTEwX3VzYjJfcGh5ICpwaHkgPSBwaHlfZ2V0X2RydmRhdGEoX3BoeSk7CisrCisr CXN3aXRjaCAobW9kZSkgeworKwljYXNlIFBIWV9NT0RFX1VTQl9IT1NUOgorKwljYXNlIFBIWV9N T0RFX1VTQl9ERVZJQ0U6CisrCWNhc2UgUEhZX01PREVfVVNCX09URzoKKysJCWJyZWFrOworKwlk ZWZhdWx0OgorKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKysKKysJaWYgKG1vZGUgIT0gcGh5LT5t b2RlKSB7CisrCQlkZXZfZGJnKCZfcGh5LT5kZXYsICJDaGFuZ2luZyBwaHkgdG8gJWRcbiIsIG1v ZGUpOworKwkJcGh5LT5tb2RlID0gbW9kZTsKKysJCXVzYjJfc2V0X2xzX2tlZXBhbGl2ZShwaHks IChtb2RlICE9IFBIWV9NT0RFX1VTQl9ERVZJQ0UpKTsKKysJfQorKworKwlyZXR1cm4gMDsKKyt9 CisrCisrc3RhdGljIGludCBqaDcxMTBfdXNiMl9waHlfaW5pdChzdHJ1Y3QgcGh5ICpfcGh5KQor K3sKKysJc3RydWN0IGpoNzExMF91c2IyX3BoeSAqcGh5ID0gcGh5X2dldF9kcnZkYXRhKF9waHkp OworKwlpbnQgcmV0OworKworKwlyZXQgPSBjbGtfc2V0X3JhdGUocGh5LT51c2JfMTI1bV9jbGss IFVTQl8xMjVNX0NMS19SQVRFKTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCXJl dCA9IGNsa19wcmVwYXJlX2VuYWJsZShwaHktPmFwcF8xMjVtKTsKKysJaWYgKHJldCkKKysJCXJl dHVybiByZXQ7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgaW50IGpoNzExMF91c2Iy X3BoeV9leGl0KHN0cnVjdCBwaHkgKl9waHkpCisreworKwlzdHJ1Y3Qgamg3MTEwX3VzYjJfcGh5 ICpwaHkgPSBwaHlfZ2V0X2RydmRhdGEoX3BoeSk7CisrCisrCWNsa19kaXNhYmxlX3VucHJlcGFy ZShwaHktPmFwcF8xMjVtKTsKKysKKysJcmV0dXJuIDA7CisrfQorKworK3N0YXRpYyBjb25zdCBz dHJ1Y3QgcGh5X29wcyBqaDcxMTBfdXNiMl9waHlfb3BzID0geworKwkuaW5pdAkJPSBqaDcxMTBf dXNiMl9waHlfaW5pdCwKKysJLmV4aXQJCT0gamg3MTEwX3VzYjJfcGh5X2V4aXQsCisrCS5zZXRf bW9kZQk9IHVzYjJfcGh5X3NldF9tb2RlLAorKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisrfTsK KysKKytzdGF0aWMgaW50IGpoNzExMF91c2JfcGh5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCisreworKwlzdHJ1Y3Qgamg3MTEwX3VzYjJfcGh5ICpwaHk7CisrCXN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisrCXN0cnVjdCBwaHlfcHJvdmlkZXIgKnBoeV9wcm92 aWRlcjsKKysKKysJcGh5ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwaHkpLCBHRlBfS0VS TkVMKTsKKysJaWYgKCFwaHkpCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJcGh5LT51c2JfMTI1 bV9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAiMTI1bSIpOworKwlpZiAoSVNfRVJSKHBoeS0+dXNi XzEyNW1fY2xrKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwaHktPnVz Yl8xMjVtX2NsayksCisrCQkJIkZhaWxlZCB0byBnZXQgMTI1bSBjbG9ja1xuIik7CisrCisrCXBo eS0+YXBwXzEyNW0gPSBkZXZtX2Nsa19nZXQoZGV2LCAiYXBwXzEyNW0iKTsKKysJaWYgKElTX0VS UihwaHktPmFwcF8xMjVtKSkKKysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihw aHktPmFwcF8xMjVtKSwKKysJCQkiRmFpbGVkIHRvIGdldCBhcHAgMTI1bSBjbG9ja1xuIik7Cisr CisrCXBoeS0+cmVncyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsK KysJaWYgKElTX0VSUihwaHktPnJlZ3MpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQ VFJfRVJSKHBoeS0+cmVncyksCisrCQkJIkZhaWxlZCB0byBtYXAgcGh5IGJhc2VcbiIpOworKwor KwlwaHktPnBoeSA9IGRldm1fcGh5X2NyZWF0ZShkZXYsIE5VTEwsICZqaDcxMTBfdXNiMl9waHlf b3BzKTsKKysJaWYgKElTX0VSUihwaHktPnBoeSkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShk ZXYsIFBUUl9FUlIocGh5LT5waHkpLAorKwkJCSJGYWlsZWQgdG8gY3JlYXRlIHBoeVxuIik7Cisr CisrCXBoeV9zZXRfZHJ2ZGF0YShwaHktPnBoeSwgcGh5KTsKKysJcGh5X3Byb3ZpZGVyID0gZGV2 bV9vZl9waHlfcHJvdmlkZXJfcmVnaXN0ZXIoZGV2LCBvZl9waHlfc2ltcGxlX3hsYXRlKTsKKysK KysJcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhwaHlfcHJvdmlkZXIpOworK30KKysKKytzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBqaDcxMTBfdXNiX3BoeV9vZl9tYXRjaFtdID0gewor Kwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC11c2ItcGh5IiB9LAorKwl7IC8qIHNl bnRpbmVsICovIH0sCisrfTsKKytNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBqaDcxMTBfdXNiX3Bo eV9vZl9tYXRjaCk7CisrCisrc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgamg3MTEwX3Vz Yl9waHlfZHJpdmVyID0geworKwkucHJvYmUJPSBqaDcxMTBfdXNiX3BoeV9wcm9iZSwKKysJLmRy aXZlciA9IHsKKysJCS5vZl9tYXRjaF90YWJsZQk9IGpoNzExMF91c2JfcGh5X29mX21hdGNoLAor KwkJLm5hbWUgID0gImpoNzExMC11c2ItcGh5IiwKKysJfQorK307CisrbW9kdWxlX3BsYXRmb3Jt X2RyaXZlcihqaDcxMTBfdXNiX3BoeV9kcml2ZXIpOworKworK01PRFVMRV9ERVNDUklQVElPTigi U3RhckZpdmUgSkg3MTEwIFVTQiAyLjAgUEhZIGRyaXZlciIpOworK01PRFVMRV9BVVRIT1IoIk1p bmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNvbT4iKTsKKytNT0RVTEVfTElDRU5T RSgiR1BMIik7CistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpbnV4Ni40L3Bh dGNoZXMvMDA2My1waHktc3RhcmZpdmUtQWRkLUpINzExMC1QQ0lFLTIuMC1QSFktZHJpdmVyLnBh dGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjMtcGh5LXN0YXJmaXZlLUFkZC1KSDcx MTAtUENJRS0yLjAtUEhZLWRyaXZlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5kMTBlM2Q1Nzk2NWVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aW51eDYuNC9wYXRjaGVzLzAwNjMtcGh5LXN0YXJmaXZlLUFkZC1KSDcxMTAtUENJRS0yLjAtUEhZ LWRyaXZlci5wYXRjaApAQCAtMCwwICsxLDI2MSBAQAorRnJvbSA3NDk1YTMwMGE3OTY1OGQ5NThm NzA3ZWUxZmRjODBmMGM0Y2JlODk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWlu ZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorRGF0ZTogVGh1LCAyOSBKdW4g MjAyMyAxNTo1MToxNCArMDgwMAorU3ViamVjdDogW1BBVENIIDYzLzcyXSBwaHk6IHN0YXJmaXZl OiBBZGQgSkg3MTEwIFBDSUUgMi4wIFBIWSBkcml2ZXIKKworQWRkIFN0YXJmaXZlIEpINzExMCBT b0MgUENJZSAyLjAgUEhZIGRyaXZlciBzdXBwb3J0LgorUENJZSAyLjAgUEhZIGRlZmF1bHQgY29u bmVjdCB0byBQQ0llIGNvbnRyb2xsZXIuCitQQ0llIFBIWSBjYW4gY29ubmVjdCB0byBVU0IgMy4w IGNvbnRyb2xsZXIuCisKK1NpZ25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3Rh cmZpdmV0ZWNoLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBRdWFkcm9zIDxyb2dlcnFAa2VybmVs Lm9yZz4KKy0tLQorIGRyaXZlcnMvcGh5L3N0YXJmaXZlL0tjb25maWcgICAgICAgICAgIHwgIDEw ICsrCisgZHJpdmVycy9waHkvc3RhcmZpdmUvTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKworIGRy aXZlcnMvcGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtcGNpZS5jIHwgMjA0ICsrKysrKysrKysrKysr KysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDIxNSBpbnNlcnRpb25zKCspCisgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtcGNpZS5jCisKK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9zdGFyZml2ZS9LY29uZmlnIGIvZHJpdmVycy9waHkvc3Rh cmZpdmUvS2NvbmZpZworaW5kZXggYzdjZGQwZGNjMWRlLi5lNjRjMTYyOGE0NjcgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL3BoeS9zdGFyZml2ZS9LY29uZmlnCisrKysgYi9kcml2ZXJzL3BoeS9zdGFy Zml2ZS9LY29uZmlnCitAQCAtMTIsNiArMTIsMTYgQEAgY29uZmlnIFBIWV9TVEFSRklWRV9EUEhZ X1JYCisgCSAgc3lzdGVtLiBJZiBNIGlzIHNlbGVjdGVkLCB0aGUgbW9kdWxlIHdpbGwgYmUgY2Fs bGVkCisgCSAgcGh5LXN0YXJmaXZlLWRwaHktcnguCisgCisrY29uZmlnIFBIWV9TVEFSRklWRV9K SDcxMTBfUENJRQorKwl0cmlzdGF0ZSAiU3RhcmZpdmUgSkg3MTEwIFBDSUUgMi4wL1VTQiAzLjAg UEhZIHN1cHBvcnQiCisrCWRlcGVuZHMgb24gSEFTX0lPTUVNCisrCXNlbGVjdCBHRU5FUklDX1BI WQorKwloZWxwCisrCSAgRW5hYmxlIHRoaXMgdG8gc3VwcG9ydCB0aGUgU3RhckZpdmUgUENJZSAy LjAgUEhZLAorKwkgIG9yIHVzZWQgYXMgVVNCIDMuMCBQSFkuCisrCSAgSWYgTSBpcyBzZWxlY3Rl ZCwgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZAorKwkgIHBoeS1qaDcxMTAtcGNpZS5rby4KKysK KyBjb25maWcgUEhZX1NUQVJGSVZFX0pINzExMF9VU0IKKyAJdHJpc3RhdGUgIlN0YXJmaXZlIEpI NzExMCBVU0IgMi4wIFBIWSBzdXBwb3J0IgorIAlkZXBlbmRzIG9uIFVTQl9TVVBQT1JUCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9waHkvc3RhcmZpdmUvTWFrZWZpbGUgYi9kcml2ZXJzL3BoeS9zdGFy Zml2ZS9NYWtlZmlsZQoraW5kZXggMTc2NDQzODUyZjRkLi4wM2E1NWFhZDUzYTIgMTAwNjQ0Cist LS0gYS9kcml2ZXJzL3BoeS9zdGFyZml2ZS9NYWtlZmlsZQorKysrIGIvZHJpdmVycy9waHkvc3Rh cmZpdmUvTWFrZWZpbGUKK0BAIC0xLDMgKzEsNCBAQAorICMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAKKyBvYmotJChDT05GSUdfUEhZX1NUQVJGSVZFX0RQSFlfUlgpICAgICAgKz0g cGh5LXN0YXJmaXZlLWRwaHktcngubworK29iai0kKENPTkZJR19QSFlfU1RBUkZJVkVfSkg3MTEw X1BDSUUpCSs9IHBoeS1qaDcxMTAtcGNpZS5vCisgb2JqLSQoQ09ORklHX1BIWV9TVEFSRklWRV9K SDcxMTBfVVNCKQkrPSBwaHktamg3MTEwLXVzYi5vCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkv c3RhcmZpdmUvcGh5LWpoNzExMC1wY2llLmMgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktamg3 MTEwLXBjaWUuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uY2Jl NzljMWY1OWQzCistLS0gL2Rldi9udWxsCisrKysgYi9kcml2ZXJzL3BoeS9zdGFyZml2ZS9waHkt amg3MTEwLXBjaWUuYworQEAgLTAsMCArMSwyMDQgQEAKKysvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMCsKKysvKgorKyAqIFN0YXJGaXZlIEpINzExMCBQQ0llIDIuMCBQSFkgZHJp dmVyCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMjMgU3RhckZpdmUgVGVjaG5vbG9neSBDby4s IEx0ZC4KKysgKiBBdXRob3I6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNv bT4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvYml0cy5oPgorKyNpbmNsdWRlIDxsaW51eC9j bGsuaD4KKysjaW5jbHVkZSA8bGludXgvZXJyLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cisr I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorKyNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+ CisrI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4KKysjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1f ZGV2aWNlLmg+CisrI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorKworKyNkZWZpbmUgUENJRV9L VkNPX0xFVkVMX09GRgkJMHgyOAorKyNkZWZpbmUgUENJRV9VU0IzX1BIWV9QTExfQ1RMX09GRgkw eDdjCisrI2RlZmluZSBQQ0lFX0tWQ09fVFVORV9TSUdOQUxfT0ZGCTB4ODAKKysjZGVmaW5lIFBD SUVfVVNCM19QSFlfRU5BQkxFCQlCSVQoNCkKKysjZGVmaW5lIFBIWV9LVkNPX0ZJTkVfVFVORV9M RVZFTAkweDkxCisrI2RlZmluZSBQSFlfS1ZDT19GSU5FX1RVTkVfU0lHTkFMUwkweGMKKysKKysj ZGVmaW5lIFVTQl9QRFJTVE5fU1BMSVQJCUJJVCgxNykKKysKKysjZGVmaW5lIFBDSUVfUEhZX01P REUJCQlCSVQoMjApCisrI2RlZmluZSBQQ0lFX1BIWV9NT0RFX01BU0sJCUdFTk1BU0soMjEsIDIw KQorKyNkZWZpbmUgUENJRV9VU0IzX0JVU19XSURUSF9NQVNLCUdFTk1BU0soMywgMikKKysjZGVm aW5lIFBDSUVfVVNCM19CVVNfV0lEVEgJCUJJVCgzKQorKyNkZWZpbmUgUENJRV9VU0IzX1JBVEVf TUFTSwkJR0VOTUFTSyg2LCA1KQorKyNkZWZpbmUgUENJRV9VU0IzX1JYX1NUQU5EQllfTUFTSwlC SVQoNykKKysjZGVmaW5lIFBDSUVfVVNCM19QSFlfRU5BQkxFCQlCSVQoNCkKKysKKytzdHJ1Y3Qg amg3MTEwX3BjaWVfcGh5IHsKKysJc3RydWN0IHBoeSAqcGh5OworKwlzdHJ1Y3QgcmVnbWFwICpz dGdfc3lzY29uOworKwlzdHJ1Y3QgcmVnbWFwICpzeXNfc3lzY29uOworKwl2b2lkIF9faW9tZW0g KnJlZ3M7CisrCXUzMiBzeXNfcGh5X2Nvbm5lY3Q7CisrCXUzMiBzdGdfcGNpZV9tb2RlOworKwl1 MzIgc3RnX3BjaWVfdXNiOworKwllbnVtIHBoeV9tb2RlIG1vZGU7CisrfTsKKysKKytzdGF0aWMg aW50IHBoeV91c2IzX21vZGVfc2V0KHN0cnVjdCBqaDcxMTBfcGNpZV9waHkgKmRhdGEpCisrewor KwlpZiAoIWRhdGEtPnN0Z19zeXNjb24gfHwgIWRhdGEtPnN5c19zeXNjb24pIHsKKysJCWRldl9l cnIoJmRhdGEtPnBoeS0+ZGV2LCAiZG9lc24ndCBzdXBwb3J0IHVzYjMgbW9kZVxuIik7CisrCQly ZXR1cm4gLUVJTlZBTDsKKysJfQorKworKwlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+c3RnX3N5 c2NvbiwgZGF0YS0+c3RnX3BjaWVfbW9kZSwKKysJCQkgICBQQ0lFX1BIWV9NT0RFX01BU0ssIFBD SUVfUEhZX01PREUpOworKwlyZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+c3RnX3N5c2NvbiwgZGF0 YS0+c3RnX3BjaWVfdXNiLAorKwkJCSAgIFBDSUVfVVNCM19CVVNfV0lEVEhfTUFTSywgMCk7Cisr CXJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lzY29uLCBkYXRhLT5zdGdfcGNpZV91c2Is CisrCQkJICAgUENJRV9VU0IzX1BIWV9FTkFCTEUsIFBDSUVfVVNCM19QSFlfRU5BQkxFKTsKKysK KysJLyogQ29ubmVjdCB1c2IgMy4wIHBoeSBtb2RlICovCisrCXJlZ21hcF91cGRhdGVfYml0cyhk YXRhLT5zeXNfc3lzY29uLCBkYXRhLT5zeXNfcGh5X2Nvbm5lY3QsCisrCQkJICAgVVNCX1BEUlNU Tl9TUExJVCwgMCk7CisrCisrCS8qIENvbmZpZ3VhcmUgc3ByZWFkLXNwZWN0cnVtIG1vZGU6IGRv d24tc3ByZWFkLXNwZWN0cnVtICovCisrCXdyaXRlbChQQ0lFX1VTQjNfUEhZX0VOQUJMRSwgZGF0 YS0+cmVncyArIFBDSUVfVVNCM19QSFlfUExMX0NUTF9PRkYpOworKworKwlyZXR1cm4gMDsKKyt9 CisrCisrc3RhdGljIHZvaWQgcGh5X3BjaWVfbW9kZV9zZXQoc3RydWN0IGpoNzExMF9wY2llX3Bo eSAqZGF0YSkKKyt7CisrCXUzMiB2YWw7CisrCisrCS8qIGRlZmF1bHQgaXMgUENJZSBtb2RlICov CisrCWlmICghZGF0YS0+c3RnX3N5c2NvbiB8fCAhZGF0YS0+c3lzX3N5c2NvbikKKysJCXJldHVy bjsKKysKKysJcmVnbWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnN0Z19zeXNjb24sIGRhdGEtPnN0Z19w Y2llX21vZGUsCisrCQkJICAgUENJRV9QSFlfTU9ERV9NQVNLLCAwKTsKKysJcmVnbWFwX3VwZGF0 ZV9iaXRzKGRhdGEtPnN0Z19zeXNjb24sIGRhdGEtPnN0Z19wY2llX3VzYiwKKysJCQkgICBQQ0lF X1VTQjNfQlVTX1dJRFRIX01BU0ssCisrCQkJICAgUENJRV9VU0IzX0JVU19XSURUSCk7CisrCXJl Z21hcF91cGRhdGVfYml0cyhkYXRhLT5zdGdfc3lzY29uLCBkYXRhLT5zdGdfcGNpZV91c2IsCisr CQkJICAgUENJRV9VU0IzX1BIWV9FTkFCTEUsIDApOworKworKwlyZWdtYXBfdXBkYXRlX2JpdHMo ZGF0YS0+c3lzX3N5c2NvbiwgZGF0YS0+c3lzX3BoeV9jb25uZWN0LAorKwkJCSAgIFVTQl9QRFJT VE5fU1BMSVQsIDApOworKworKwl2YWwgPSByZWFkbChkYXRhLT5yZWdzICsgUENJRV9VU0IzX1BI WV9QTExfQ1RMX09GRik7CisrCXZhbCAmPSB+UENJRV9VU0IzX1BIWV9FTkFCTEU7CisrCXdyaXRl bCh2YWwsIGRhdGEtPnJlZ3MgKyBQQ0lFX1VTQjNfUEhZX1BMTF9DVExfT0ZGKTsKKyt9CisrCisr c3RhdGljIHZvaWQgcGh5X2t2Y29fZ2Fpbl9zZXQoc3RydWN0IGpoNzExMF9wY2llX3BoeSAqcGh5 KQorK3sKKysJLyogUENJZSBNdWx0aS1QSFkgUExMIEtWQ08gR2FpbiBmaW5lIHR1bmUgc2V0dGlu Z3M6ICovCisrCXdyaXRlbChQSFlfS1ZDT19GSU5FX1RVTkVfTEVWRUwsIHBoeS0+cmVncyArIFBD SUVfS1ZDT19MRVZFTF9PRkYpOworKwl3cml0ZWwoUEhZX0tWQ09fRklORV9UVU5FX1NJR05BTFMs IHBoeS0+cmVncyArIFBDSUVfS1ZDT19UVU5FX1NJR05BTF9PRkYpOworK30KKysKKytzdGF0aWMg aW50IGpoNzExMF9wY2llX3BoeV9zZXRfbW9kZShzdHJ1Y3QgcGh5ICpfcGh5LAorKwkJCQkgICAg ZW51bSBwaHlfbW9kZSBtb2RlLCBpbnQgc3VibW9kZSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfcGNp ZV9waHkgKnBoeSA9IHBoeV9nZXRfZHJ2ZGF0YShfcGh5KTsKKysJaW50IHJldDsKKysKKysJaWYg KG1vZGUgPT0gcGh5LT5tb2RlKQorKwkJcmV0dXJuIDA7CisrCisrCXN3aXRjaCAobW9kZSkgewor KwljYXNlIFBIWV9NT0RFX1VTQl9IT1NUOgorKwljYXNlIFBIWV9NT0RFX1VTQl9ERVZJQ0U6Cisr CWNhc2UgUEhZX01PREVfVVNCX09URzoKKysJCXJldCA9IHBoeV91c2IzX21vZGVfc2V0KHBoeSk7 CisrCQlpZiAocmV0KQorKwkJCXJldHVybiByZXQ7CisrCQlicmVhazsKKysJY2FzZSBQSFlfTU9E RV9QQ0lFOgorKwkJcGh5X3BjaWVfbW9kZV9zZXQocGh5KTsKKysJCWJyZWFrOworKwlkZWZhdWx0 OgorKwkJcmV0dXJuIC1FSU5WQUw7CisrCX0KKysKKysJZGV2X2RiZygmX3BoeS0+ZGV2LCAiQ2hh bmdpbmcgcGh5IG1vZGUgdG8gJWRcbiIsIG1vZGUpOworKwlwaHktPm1vZGUgPSBtb2RlOworKwor KwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlfb3BzIGpoNzExMF9w Y2llX3BoeV9vcHMgPSB7CisrCS5zZXRfbW9kZQk9IGpoNzExMF9wY2llX3BoeV9zZXRfbW9kZSwK KysJLm93bmVyCQk9IFRISVNfTU9EVUxFLAorK307CisrCisrc3RhdGljIGludCBqaDcxMTBfcGNp ZV9waHlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0cnVjdCBq aDcxMTBfcGNpZV9waHkgKnBoeTsKKysJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsK KysJc3RydWN0IHBoeV9wcm92aWRlciAqcGh5X3Byb3ZpZGVyOworKwl1MzIgYXJnc1syXTsKKysK KysJcGh5ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwaHkpLCBHRlBfS0VSTkVMKTsKKysJ aWYgKCFwaHkpCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJcGh5LT5yZWdzID0gZGV2bV9wbGF0 Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOworKwlpZiAoSVNfRVJSKHBoeS0+cmVncykp CisrCQlyZXR1cm4gUFRSX0VSUihwaHktPnJlZ3MpOworKworKwlwaHktPnBoeSA9IGRldm1fcGh5 X2NyZWF0ZShkZXYsIE5VTEwsICZqaDcxMTBfcGNpZV9waHlfb3BzKTsKKysJaWYgKElTX0VSUihw aHktPnBoeSkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocGh5LT5yZWdz KSwKKysJCQkJICAgICAiRmFpbGVkIHRvIG1hcCBwaHkgYmFzZVxuIik7CisrCisrCXBoeS0+c3lz X3N5c2NvbiA9CisrCQlzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlX2FyZ3MocGRldi0+ ZGV2Lm9mX25vZGUsCisrCQkJCQkJICAgICAic3RhcmZpdmUsc3lzLXN5c2NvbiIsCisrCQkJCQkJ ICAgICAxLCBhcmdzKTsKKysKKysJaWYgKCFJU19FUlJfT1JfTlVMTChwaHktPnN5c19zeXNjb24p KQorKwkJcGh5LT5zeXNfcGh5X2Nvbm5lY3QgPSBhcmdzWzBdOworKwllbHNlCisrCQlwaHktPnN5 c19zeXNjb24gPSBOVUxMOworKworKwlwaHktPnN0Z19zeXNjb24gPQorKwkJc3lzY29uX3JlZ21h cF9sb29rdXBfYnlfcGhhbmRsZV9hcmdzKHBkZXYtPmRldi5vZl9ub2RlLAorKwkJCQkJCSAgICAg InN0YXJmaXZlLHN0Zy1zeXNjb24iLAorKwkJCQkJCSAgICAgMiwgYXJncyk7CisrCisrCWlmICgh SVNfRVJSX09SX05VTEwocGh5LT5zdGdfc3lzY29uKSkgeworKwkJcGh5LT5zdGdfcGNpZV9tb2Rl ID0gYXJnc1swXTsKKysJCXBoeS0+c3RnX3BjaWVfdXNiID0gYXJnc1sxXTsKKysJfSBlbHNlIHsK KysJCXBoeS0+c3RnX3N5c2NvbiA9IE5VTEw7CisrCX0KKysKKysJcGh5X2t2Y29fZ2Fpbl9zZXQo cGh5KTsKKysKKysJcGh5X3NldF9kcnZkYXRhKHBoeS0+cGh5LCBwaHkpOworKwlwaHlfcHJvdmlk ZXIgPSBkZXZtX29mX3BoeV9wcm92aWRlcl9yZWdpc3RlcihkZXYsIG9mX3BoeV9zaW1wbGVfeGxh dGUpOworKworKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHBoeV9wcm92aWRlcik7CisrfQorKwor K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGpoNzExMF9wY2llX3BoeV9vZl9tYXRj aFtdID0geworKwl7IC5jb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wY2llLXBoeSIgfSwK KysJeyAvKiBzZW50aW5lbCAqLyB9LAorK307CisrTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgamg3 MTEwX3BjaWVfcGh5X29mX21hdGNoKTsKKysKKytzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBqaDcxMTBfcGNpZV9waHlfZHJpdmVyID0geworKwkucHJvYmUJPSBqaDcxMTBfcGNpZV9waHlf cHJvYmUsCisrCS5kcml2ZXIgPSB7CisrCQkub2ZfbWF0Y2hfdGFibGUJPSBqaDcxMTBfcGNpZV9w aHlfb2ZfbWF0Y2gsCisrCQkubmFtZSAgPSAiamg3MTEwLXBjaWUtcGh5IiwKKysJfQorK307Cisr bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihqaDcxMTBfcGNpZV9waHlfZHJpdmVyKTsKKysKKytNT0RV TEVfREVTQ1JJUFRJT04oIlN0YXJGaXZlIEpINzExMCBQQ0llIDIuMCBQSFkgZHJpdmVyIik7Cisr TU9EVUxFX0FVVEhPUigiTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPiIp OworK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDY0LWR0LWJpbmRpbmctcGNpLWFkZC1KSDcxMTAtUENJ ZS1kdC1iaW5kaW5nLWRvY3VtZW50cy5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8w MDY0LWR0LWJpbmRpbmctcGNpLWFkZC1KSDcxMTAtUENJZS1kdC1iaW5kaW5nLWRvY3VtZW50cy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5mNzBhZTE5MDMx Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjQtZHQt YmluZGluZy1wY2ktYWRkLUpINzExMC1QQ0llLWR0LWJpbmRpbmctZG9jdW1lbnRzLnBhdGNoCkBA IC0wLDAgKzEsMTg2IEBACitGcm9tIDlkODkxMTU1Nzc2NDhkOTI0M2RhNzk5NGMyY2Y1ODQ4ZGU3 ZjYxNDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVuIDxtaW5kYS5j aGVuQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUaHUsIDYgQXByIDIwMjMgMTk6MTE6NDAgKzA4 MDAKK1N1YmplY3Q6IFtQQVRDSCA2NC83Ml0gZHQtYmluZGluZzogcGNpOiBhZGQgSkg3MTEwIFBD SWUgZHQtYmluZGluZyBkb2N1bWVudHMuCisKK0FkZCBQQ0llIGNvbnRyb2xsZXIgZHJpdmVyIGR0 LWJpbmRpbmcgZG9jdW1lbnRzCitmb3IgU3RhckZpdmUgSkg3MTEwIFNvQyBwbGF0Zm9ybS4KKwor U2lnbmVkLW9mZi1ieTogTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgor LS0tCisgLi4uL2JpbmRpbmdzL3BjaS9zdGFyZml2ZSxqaDcxMTAtcGNpZS55YW1sICAgIHwgMTYz ICsrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKQor IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNp L3N0YXJmaXZlLGpoNzExMC1wY2llLnlhbWwKKworZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvc3RhcmZpdmUsamg3MTEwLXBjaWUueWFtbCBiL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvc3RhcmZpdmUsamg3MTEwLXBjaWUueWFt bAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMC4uZmE0ODI5NzY2MTk1 CistLS0gL2Rldi9udWxsCisrKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv cGNpL3N0YXJmaXZlLGpoNzExMC1wY2llLnlhbWwKK0BAIC0wLDAgKzEsMTYzIEBACisrIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCisrJVlB TUwgMS4yCisrLS0tCisrJGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9wY2kvc3Rh cmZpdmUsamg3MTEwLXBjaWUueWFtbCMKKyskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcv bWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKKysKKyt0aXRsZTogU3RhckZpdmUgSkg3MTEwIFBDSWUg Mi4wIGhvc3QgY29udHJvbGxlcgorKworK21haW50YWluZXJzOgorKyAgLSBNaW5kYSBDaGVuIDxt aW5kYS5jaGVuQHN0YXJmaXZldGVjaC5jb20+CisrCisrYWxsT2Y6CisrICAtICRyZWY6IC9zY2hl bWFzL3BjaS9wY2ktYnVzLnlhbWwjCisrICAtICRyZWY6IC9zY2hlbWFzL2ludGVycnVwdC1jb250 cm9sbGVyL21zaS1jb250cm9sbGVyLnlhbWwjCisrCisrcHJvcGVydGllczoKKysgIGNvbXBhdGli bGU6CisrICAgIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtcGNpZQorKworKyAgcmVnOgorKyAgICBt YXhJdGVtczogMgorKworKyAgcmVnLW5hbWVzOgorKyAgICBpdGVtczoKKysgICAgICAtIGNvbnN0 OiByZWcKKysgICAgICAtIGNvbnN0OiBjb25maWcKKysKKysgIG1zaS1wYXJlbnQ6IHRydWUKKysK KysgIGludGVycnVwdHM6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBjbG9ja3M6CisrICAgIG1h eEl0ZW1zOiA0CisrCisrICBjbG9jay1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25z dDogbm9jCisrICAgICAgLSBjb25zdDogdGwKKysgICAgICAtIGNvbnN0OiBheGlfbXN0MAorKyAg ICAgIC0gY29uc3Q6IGFwYgorKworKyAgcmVzZXRzOgorKyAgICBpdGVtczoKKysgICAgICAtIGRl c2NyaXB0aW9uOiBBWEkgTVNUMCByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBTTEFW RSByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBTTEFWRTAgcmVzZXQKKysgICAgICAt IGRlc2NyaXB0aW9uOiBQQ0lFIEJSSURHRSByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IFBD SUUgQ09SRSByZXNldAorKyAgICAgIC0gZGVzY3JpcHRpb246IFBDSUUgQVBCIHJlc2V0CisrCisr ICByZXNldC1uYW1lczoKKysgICAgaXRlbXM6CisrICAgICAgLSBjb25zdDogbXN0MAorKyAgICAg IC0gY29uc3Q6IHNsdjAKKysgICAgICAtIGNvbnN0OiBzbHYKKysgICAgICAtIGNvbnN0OiBicmcK KysgICAgICAtIGNvbnN0OiBjb3JlCisrICAgICAgLSBjb25zdDogYXBiCisrCisrICBzdGFyZml2 ZSxzdGctc3lzY29uOgorKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9u cy9waGFuZGxlLWFycmF5CisrICAgIGl0ZW1zOgorKyAgICAgIGl0ZW1zOgorKyAgICAgICAgLSBk ZXNjcmlwdGlvbjogcGhhbmRsZSB0byBTeXN0ZW0gUmVnaXN0ZXIgQ29udHJvbGxlciBzdGdfc3lz Y29uIG5vZGUuCisrICAgICAgICAtIGRlc2NyaXB0aW9uOiByZWdpc3RlcjAgb2Zmc2V0IG9mIFNU R19TWVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIgZm9yIFBDSWUuCisrICAgICAgICAtIGRlc2Ny aXB0aW9uOiByZWdpc3RlcjEgb2Zmc2V0IG9mIFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVnaXN0 ZXIgZm9yIFBDSWUuCisrICAgICAgICAtIGRlc2NyaXB0aW9uOiByZWdpc3RlcjIgb2Zmc2V0IG9m IFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVnaXN0ZXIgZm9yIFBDSWUuCisrICAgICAgICAtIGRl c2NyaXB0aW9uOiByZWdpc3RlcjMgb2Zmc2V0IG9mIFNUR19TWVNDT05TQUlGX19TWVNDRkcgcmVn aXN0ZXIgZm9yIFBDSWUuCisrICAgIGRlc2NyaXB0aW9uOgorKyAgICAgIFRoZSBwaGFuZGxlIHRv IFN5c3RlbSBSZWdpc3RlciBDb250cm9sbGVyIHN5c2NvbiBub2RlIGFuZCB0aGUgb2Zmc2V0Cisr ICAgICAgb2YgU1RHX1NZU0NPTlNBSUZfX1NZU0NGRyByZWdpc3RlciBmb3IgUENJZS4gVG90YWwg NCByZWdzaXN0ZXJzIG9mZnNldAorKyAgICAgIGZvciBQQ0llLgorKworKyAgcHdyZW4tZ3Bpb3M6 CisrICAgIGRlc2NyaXB0aW9uOiBTaG91bGQgc3BlY2lmeSB0aGUgR1BJTyBmb3IgY29udHJvbGxp bmcgdGhlIFBDSSBidXMgZGV2aWNlIHBvd2VyIG9uLgorKyAgICBtYXhJdGVtczogMQorKworKyAg cmVzZXQtZ3Bpb3M6CisrICAgIG1heEl0ZW1zOiAxCisrCisrICBwaHlzOgorKyAgICBtYXhJdGVt czogMQorKworKyAgaW50ZXJydXB0LWNvbnRyb2xsZXI6CisrICAgIHR5cGU6IG9iamVjdAorKyAg ICBwcm9wZXJ0aWVzOgorKyAgICAgICcjYWRkcmVzcy1jZWxscyc6CisrICAgICAgICBjb25zdDog MAorKworKyAgICAgICcjaW50ZXJydXB0LWNlbGxzJzoKKysgICAgICAgIGNvbnN0OiAxCisrCisr ICAgICAgaW50ZXJydXB0LWNvbnRyb2xsZXI6IHRydWUKKysKKysgICAgcmVxdWlyZWQ6CisrICAg ICAgLSAnI2FkZHJlc3MtY2VsbHMnCisrICAgICAgLSAnI2ludGVycnVwdC1jZWxscycKKysgICAg ICAtIGludGVycnVwdC1jb250cm9sbGVyCisrCisrICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBm YWxzZQorKworK3JlcXVpcmVkOgorKyAgLSByZWcKKysgIC0gcmVnLW5hbWVzCisrICAtICIjaW50 ZXJydXB0LWNlbGxzIgorKyAgLSBpbnRlcnJ1cHRzCisrICAtIGludGVycnVwdC1tYXAtbWFzawor KyAgLSBpbnRlcnJ1cHQtbWFwCisrICAtIGNsb2NrcworKyAgLSBjbG9jay1uYW1lcworKyAgLSBy ZXNldHMKKysgIC0gbXNpLWNvbnRyb2xsZXIKKysKKyt1bmV2YWx1YXRlZFByb3BlcnRpZXM6IGZh bHNlCisrCisrZXhhbXBsZXM6CisrICAtIHwKKysgICAgYnVzIHsKKysgICAgICAgICNhZGRyZXNz LWNlbGxzID0gPDI+OworKyAgICAgICAgI3NpemUtY2VsbHMgPSA8Mj47CisrCisrICAgICAgICBw Y2llMDogcGNpZUAyQjAwMDAwMCB7CisrICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJzdGFyZml2 ZSxqaDcxMTAtcGNpZSI7CisrICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8Mz47CisrICAg ICAgICAgICAgI3NpemUtY2VsbHMgPSA8Mj47CisrICAgICAgICAgICAgI2ludGVycnVwdC1jZWxs cyA9IDwxPjsKKysgICAgICAgICAgICByZWcgPSA8MHgwIDB4MkIwMDAwMDAgMHgwIDB4MTAwMDAw MD4sCisrICAgICAgICAgICAgICAgICAgPDB4OSAweDQwMDAwMDAwIDB4MCAweDEwMDAwMDAwPjsK KysgICAgICAgICAgICByZWctbmFtZXMgPSAicmVnIiwgImNvbmZpZyI7CisrICAgICAgICAgICAg ZGV2aWNlX3R5cGUgPSAicGNpIjsKKysgICAgICAgICAgICBzdGFyZml2ZSxzdGctc3lzY29uID0g PCZzdGdfc3lzY29uIDB4YzAgMHhjNCAweDEzMCAweDFiOD47CisrICAgICAgICAgICAgYnVzLXJh bmdlID0gPDB4MCAweGZmPjsKKysgICAgICAgICAgICByYW5nZXMgPSA8MHg4MjAwMDAwMCAgMHgw IDB4MzAwMDAwMDAgIDB4MCAweDMwMDAwMDAwIDB4MCAweDA4MDAwMDAwPiwKKysgICAgICAgICAg ICAgICAgICAgICA8MHhjMzAwMDAwMCAgMHg5IDB4MDAwMDAwMDAgIDB4OSAweDAwMDAwMDAwIDB4 MCAweDQwMDAwMDAwPjsKKysgICAgICAgICAgICBpbnRlcnJ1cHQtcGFyZW50ID0gPCZwbGljPjsK KysgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPDU2PjsKKysgICAgICAgICAgICBpbnRlcnJ1cHQt bWFwLW1hc2sgPSA8MHgwIDB4MCAweDAgMHg3PjsKKysgICAgICAgICAgICBpbnRlcnJ1cHQtbWFw ID0gPDB4MCAweDAgMHgwIDB4MSAmcGNpZV9pbnRjMCAweDE+LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8MHgwIDB4MCAweDAgMHgyICZwY2llX2ludGMwIDB4Mj4sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwweDAgMHgwIDB4MCAweDMgJnBjaWVfaW50YzAgMHgzPiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPDB4MCAweDAgMHgwIDB4NCAmcGNpZV9pbnRjMCAw eDQ+OworKyAgICAgICAgICAgIG1zaS1wYXJlbnQgPSA8JnBjaWUwPjsKKysgICAgICAgICAgICBt c2ktY29udHJvbGxlcjsKKysgICAgICAgICAgICBjbG9ja3MgPSA8JnN5c2NyZyA4Nj4sCisrICAg ICAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMTA+LAorKyAgICAgICAgICAgICAgICAgICAgIDwm c3RnY3JnIDg+LAorKyAgICAgICAgICAgICAgICAgICAgIDwmc3RnY3JnIDk+OworKyAgICAgICAg ICAgIGNsb2NrLW5hbWVzID0gIm5vYyIsICJ0bCIsICJheGlfbXN0MCIsICJhcGIiOworKyAgICAg ICAgICAgIHJlc2V0cyA9IDwmc3RnY3JnIDExPiwKKysgICAgICAgICAgICAgICAgICAgICA8JnN0 Z2NyZyAxMj4sCisrICAgICAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMTM+LAorKyAgICAgICAg ICAgICAgICAgICAgIDwmc3RnY3JnIDE0PiwKKysgICAgICAgICAgICAgICAgICAgICA8JnN0Z2Ny ZyAxNT4sCisrICAgICAgICAgICAgICAgICAgICAgPCZzdGdjcmcgMTY+OworKworKyAgICAgICAg ICAgIHBjaWVfaW50YzA6IGludGVycnVwdC1jb250cm9sbGVyIHsKKysgICAgICAgICAgICAgICAg I2FkZHJlc3MtY2VsbHMgPSA8MD47CisrICAgICAgICAgICAgICAgICNpbnRlcnJ1cHQtY2VsbHMg PSA8MT47CisrICAgICAgICAgICAgICAgIGludGVycnVwdC1jb250cm9sbGVyOworKyAgICAgICAg ICAgIH07CisrICAgICAgICB9OworKyAgICB9OworLS0gCisyLjQxLjAKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjUtcGNpZS1zdGFyZml2ZS1hZGQtU3RhckZpdmUt Skg3MTEwLVBDSWUtZHJpdmVyLnBhdGNoIGIvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjUt cGNpZS1zdGFyZml2ZS1hZGQtU3RhckZpdmUtSkg3MTEwLVBDSWUtZHJpdmVyLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjMwOWQ5NWRjNDQ5NWIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2NS1wY2llLXN0YXJmaXZl LWFkZC1TdGFyRml2ZS1KSDcxMTAtUENJZS1kcml2ZXIucGF0Y2gKQEAgLTAsMCArMSwxMDE0IEBA CitGcm9tIDY5NWNjY2NmMWY0N2I0MjRhYmQzNmMwMGE3YzUxYzkzYmFkMDcxMDIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0YXJmaXZldGVj aC5jb20+CitEYXRlOiBUaHUsIDYgQXByIDIwMjMgMTk6MTE6NDEgKzA4MDAKK1N1YmplY3Q6IFtQ QVRDSCA2NS83Ml0gcGNpZTogc3RhcmZpdmU6IGFkZCBTdGFyRml2ZSBKSDcxMTAgUENJZSBkcml2 ZXIuCisKK0FkZCBQQ0llIGNvbnRyb2xsZXIgZHJpdmVyIGZvciBTdGFyRml2ZSBKSDcxMTAKK1Nv QyBwbGF0Zm9ybS4gVGhlIFBDSWUgY29udHJvbGxlciBpcyBQQ0llIDIuMCwgc2luZ2xlIGxhbmUu CisKK1NpZ25lZC1vZmYtYnk6IE1pbmRhIENoZW4gPG1pbmRhLmNoZW5Ac3RhcmZpdmV0ZWNoLmNv bT4KKy0tLQorIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvS2NvbmZpZyAgICAgICAgIHwgICA4ICsK KyBkcml2ZXJzL3BjaS9jb250cm9sbGVyL01ha2VmaWxlICAgICAgICB8ICAgMSArCisgZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2llLXN0YXJmaXZlLmMgfCA5NTggKysrKysrKysrKysrKysrKysr KysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgOTY3IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXN0YXJmaXZlLmMKKworZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvS2NvbmZpZyBiL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvS2NvbmZpZworaW5kZXggOGQ0OWJhZDdmODQ3Li5iYzdlZmU1ZjFmNTggMTAwNjQ0Cist LS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL0tjb25maWcKKysrKyBiL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvS2NvbmZpZworQEAgLTM0Myw2ICszNDMsMTQgQEAgY29uZmlnIFBDSUVfWElMSU5Y X0NQTQorIAkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCBrZXJuZWwgc3VwcG9ydCBmb3IgdGhl CisgCSAgWGlsaW54IFZlcnNhbCBDUE0gaG9zdCBicmlkZ2UuCisgCisrY29uZmlnIFBDSUVfU1RB UkZJVkUKKysJdHJpc3RhdGUgIlN0YXJGaXZlIEpINzExMCBQQ0llIGNvbnRyb2xsZXIiCisrCWRl cGVuZHMgb24gUENJX01TSSAmJiBPRgorKwlzZWxlY3QgUENJX01TSV9JUlFfRE9NQUlOCisrCWhl bHAKKysJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQga2VybmVsIHRvIHN1cHBvcnQgdGhlIFN0 YXJGaXZlIEpINzExMAorKwkgIFBDSWUgSG9zdCBkcml2ZXIuCisrCisgc291cmNlICJkcml2ZXJz L3BjaS9jb250cm9sbGVyL2NhZGVuY2UvS2NvbmZpZyIKKyBzb3VyY2UgImRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL0tjb25maWciCisgc291cmNlICJkcml2ZXJzL3BjaS9jb250cm9sbGVyL21v Yml2ZWlsL0tjb25maWciCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9NYWtl ZmlsZSBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvTWFrZWZpbGUKK2luZGV4IDM3Yzg2NjNkZTdm ZS4uMjM3MDgyMjJkYjhhIDEwMDY0NAorLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9NYWtl ZmlsZQorKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9NYWtlZmlsZQorQEAgLTM5LDYgKzM5 LDcgQEAgb2JqLSQoQ09ORklHX1BDSV9MT09OR1NPTikgKz0gcGNpLWxvb25nc29uLm8KKyBvYmot JChDT05GSUdfUENJRV9ISVNJX0VSUikgKz0gcGNpZS1oaXNpLWVycm9yLm8KKyBvYmotJChDT05G SUdfUENJRV9BUFBMRSkgKz0gcGNpZS1hcHBsZS5vCisgb2JqLSQoQ09ORklHX1BDSUVfTVQ3NjIx KSArPSBwY2llLW10NzYyMS5vCisrb2JqLSQoQ09ORklHX1BDSUVfU1RBUkZJVkUpICs9IHBjaWUt c3RhcmZpdmUubworIAorICMgcGNpZS1oaXNpLm8gcXVpcmtzIGFyZSBuZWVkZWQgZXZlbiB3aXRo b3V0IENPTkZJR19QQ0lFX0RXCisgb2JqLXkJCQkJKz0gZHdjLworZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1zdGFyZml2ZS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxl ci9wY2llLXN0YXJmaXZlLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAw MDAuLmUxZGM4ZWNjNzY5YQorLS0tIC9kZXYvbnVsbAorKysrIGIvZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2llLXN0YXJmaXZlLmMKK0BAIC0wLDAgKzEsOTU4IEBACisrLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjArCisrLyoKKysgKiBQQ0llIGhvc3QgY29udHJvbGxlciBkcml2 ZXIgZm9yIFN0YXJmaXZlIEpINzExMCBTb2MuCisrICoKKysgKiBCYXNlZCBvbiBwY2llLWFsdGVy YS5jLCBwY2llLWFsdGVyYS1tc2kuYy4KKysgKgorKyAqIENvcHlyaWdodCAoQykgU3RhckZpdmUg VGVjaG5vbG9neSBDby4sIEx0ZC4KKysgKi8KKysKKysjaW5jbHVkZSA8bGludXgvY2xrLmg+Cisr I2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIu aD4KKysjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisrI2luY2x1ZGUgPGxpbnV4L2lycWNo aXAvY2hhaW5lZF9pcnEuaD4KKysjaW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgorKyNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KKysjaW5jbHVkZSA8bGludXgvbXNpLmg+CisrI2luY2x1ZGUg PGxpbnV4L29mX2FkZHJlc3MuaD4KKysjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CisrI2luY2x1 ZGUgPGxpbnV4L29mX3BjaS5oPgorKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKysjaW5jbHVkZSA8 bGludXgvcGNpLWVjYW0uaD4KKysjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPgorKyNpbmNsdWRl IDxsaW51eC9waW5jdHJsL2NvbnN1bWVyLmg+CisrI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGlu Y3RybC5oPgorKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKysjaW5jbHVkZSA8 bGludXgvcG1fcnVudGltZS5oPgorKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKysjaW5jbHVk ZSA8bGludXgvcmVzZXQuaD4KKysjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorKyNpbmNsdWRlICIu Li9wY2kuaCIKKysKKysjZGVmaW5lIElNQVNLX0xPQ0FMCQkJMHgxODAKKysjZGVmaW5lIElTVEFU VVNfTE9DQUwJCQkweDE4NAorKyNkZWZpbmUgSU1TSV9BRERSCQkJMHgxOTAKKysjZGVmaW5lIElT VEFUVVNfTVNJCQkJMHgxOTQKKysjZGVmaW5lIEdFTl9TRVRUSU5HUwkJCTB4ODAKKysjZGVmaW5l IFBDSUVfUENJX0lEUwkJCTB4OUMKKysjZGVmaW5lIFBDSUVfV0lOUk9NCQkJMHhGQworKyNkZWZp bmUgUE1TR19TVVBQT1JUX1JYCQkJMHgzRjAKKysKKysjZGVmaW5lIFBDSV9NSVNDCQkJMHhCNAor KworKyNkZWZpbmUgUlBfRU5BQkxFCQkJMQorKworKyNkZWZpbmUgSURTX0NMQVNTX0NPREVfU0hJ RlQJCTE2CisrCisrI2RlZmluZSBEQVRBX0xJTktfQUNUSVZFCQlCSVQoNSkKKysjZGVmaW5lIFBS RUZfTUVNX1dJTl82NF9TVVBQT1JUCQlCSVQoMykKKysjZGVmaW5lIFBNU0dfTFRSX1NVUFBPUlQJ CUJJVCgyKQorKyNkZWZpbmUgTElOS19TUEVFRF9HRU4yCQkJQklUKDEyKQorKyNkZWZpbmUgUEhZ X0ZVTkNUSU9OX0RJUwkJQklUKDE1KQorKyNkZWZpbmUgUENJRV9GVU5DX05VTQkJCTQKKysjZGVm aW5lIFBIWV9GVU5DX1NISUZUCQkJOQorKworKyNkZWZpbmUgWFIzUENJX0FUUl9BWEk0X1NMVjAJ CTB4ODAwCisrI2RlZmluZSBYUjNQQ0lfQVRSX1NSQ19BRERSX0xPVwkJMHgwCisrI2RlZmluZSBY UjNQQ0lfQVRSX1NSQ19BRERSX0hJR0gJMHg0CisrI2RlZmluZSBYUjNQQ0lfQVRSX1RSU0xfQURE Ul9MT1cJMHg4CisrI2RlZmluZSBYUjNQQ0lfQVRSX1RSU0xfQUREUl9ISUdICTB4YworKyNkZWZp bmUgWFIzUENJX0FUUl9UUlNMX1BBUkFNCQkweDEwCisrI2RlZmluZSBYUjNQQ0lfQVRSX1RBQkxF X09GRlNFVAkJMHgyMAorKyNkZWZpbmUgWFIzUENJX0FUUl9NQVhfVEFCTEVfTlVNCTgKKysKKysj ZGVmaW5lIFhSM1BDSV9BVFJfU1JDX1dJTl9TSVpFX1NISUZUCTEKKysjZGVmaW5lIFhSM1BDSV9B VFJfU1JDX0FERFJfTUFTSwlHRU5NQVNLKDMxLCAxMikKKysjZGVmaW5lIFhSM1BDSV9BVFJfVFJT TF9BRERSX01BU0sJR0VOTUFTSygzMSwgMTIpCisrI2RlZmluZSBYUjNQQ0lfRUNBTV9TSVpFCQlC SVQoMjgpCisrI2RlZmluZSBYUjNQQ0lfQVRSX1RSU0xfRElSCQlCSVQoMjIpCisrLyogSURzIHVz ZWQgaW4gdGhlIFhSM1BDSV9BVFJfVFJTTF9QQVJBTSAqLworKyNkZWZpbmUgWFIzUENJX0FUUl9U UlNMSURfUENJRV9NRU1PUlkJMHgwCisrI2RlZmluZSBYUjNQQ0lfQVRSX1RSU0xJRF9QQ0lFX0NP TkZJRwkweDEKKysKKysjZGVmaW5lIElOVF9BWElfUE9TVF9FUlJPUgkJQklUKDE2KQorKyNkZWZp bmUgSU5UX0FYSV9GRVRDSF9FUlJPUgkJQklUKDE3KQorKyNkZWZpbmUgSU5UX0FYSV9ESVNDQVJE X0VSUk9SCQlCSVQoMTgpCisrI2RlZmluZSBJTlRfUENJRV9QT1NUX0VSUk9SCQlCSVQoMjApCisr I2RlZmluZSBJTlRfUENJRV9GRVRDSF9FUlJPUgkJQklUKDIxKQorKyNkZWZpbmUgSU5UX1BDSUVf RElTQ0FSRF9FUlJPUgkJQklUKDIyKQorKyNkZWZpbmUgSU5UX0VSUk9SUwkJKElOVF9BWElfUE9T VF9FUlJPUiB8IElOVF9BWElfRkVUQ0hfRVJST1IgfCBcCisrCQkJCSBJTlRfQVhJX0RJU0NBUkRf RVJST1IgfCBJTlRfUENJRV9QT1NUX0VSUk9SIHwgXAorKwkJCQkgSU5UX1BDSUVfRkVUQ0hfRVJS T1IgfCBJTlRfUENJRV9ESVNDQVJEX0VSUk9SKQorKworKyNkZWZpbmUgSU5UQV9PRkZTRVQJCTI0 CisrI2RlZmluZSBJTlRBCQkJQklUKDI0KQorKyNkZWZpbmUgSU5UQgkJCUJJVCgyNSkKKysjZGVm aW5lIElOVEMJCQlCSVQoMjYpCisrI2RlZmluZSBJTlRECQkJQklUKDI3KQorKyNkZWZpbmUgSU5U X01TSQkJCUJJVCgyOCkKKysjZGVmaW5lIElOVF9JTlRYX01BU0sJCShJTlRBIHwgSU5UQiB8IElO VEMgfCBJTlREKQorKyNkZWZpbmUgSU5UX01BU0sJCShJTlRfSU5UWF9NQVNLIHwgSU5UX01TSSB8 IElOVF9FUlJPUlMpCisrCisrI2RlZmluZSBJTlRfUENJX01TSV9OUgkJMzIKKysKKysvKiBzeXN0 ZW0gY29udHJvbCAqLworKyNkZWZpbmUgU1RHX1NZU0NPTl9LX1JQX05FUAkJCUJJVCg4KQorKyNk ZWZpbmUgU1RHX1NZU0NPTl9BWEk0X1NMVkxfQVJGVU5DX01BU0sJR0VOTUFTSygyMiwgOCkKKysj ZGVmaW5lIFNUR19TWVNDT05fQVhJNF9TTFZMX0FSRlVOQ19TSElGVAk4CisrI2RlZmluZSBTVEdf U1lTQ09OX0FYSTRfU0xWTF9BV0ZVTkNfTUFTSwlHRU5NQVNLKDE0LCAwKQorKyNkZWZpbmUgU1RH X1NZU0NPTl9DTEtSRVEJCQlCSVQoMjIpCisrI2RlZmluZSBTVEdfU1lTQ09OX0NLUkVGX1NSQ19T SElGVAkJMTgKKysjZGVmaW5lIFNUR19TWVNDT05fQ0tSRUZfU1JDX01BU0sJCUdFTk1BU0soMTks IDE4KQorKworKy8qIE1TSSBpbmZvcm1hdGlvbiAqLworK3N0cnVjdCBqaDcxMTBfcGNpZV9tc2kg eworKwlERUNMQVJFX0JJVE1BUCh1c2VkLCBJTlRfUENJX01TSV9OUik7CisrCXN0cnVjdCBpcnFf ZG9tYWluICptc2lfZG9tYWluOworKwlzdHJ1Y3QgaXJxX2RvbWFpbiAqaW5uZXJfZG9tYWluOwor KwkvKiBQcm90ZWN0IGJpdG1hcCB2YXJpYWJsZSAqLworKwlzdHJ1Y3QgbXV0ZXggbG9jazsKKyt9 OworKworK3N0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSB7CisrCXN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UJKnBkZXY7CisrCXZvaWQgX19pb21lbQkJKnJlZ19iYXNlOworKwl2b2lkIF9faW9tZW0J CSpjb25maWdfYmFzZTsKKysJcGh5c19hZGRyX3QgY29uZmlnX3BoeWFkZHI7CisrCXN0cnVjdCBy ZWdtYXAgKnJlZ19zeXNjb247CisrCXN0cnVjdCBwaHkgKnBoeTsKKysJdTMyIHN0Z19hcmZ1bjsK KysJdTMyIHN0Z19hd2Z1bjsKKysJdTMyIHN0Z19ycF9uZXA7CisrCXUzMiBzdGdfbG5rc3RhOwor KwlpbnQJCQlpcnE7CisrCXN0cnVjdCBpcnFfZG9tYWluCSpsZWdhY3lfaXJxX2RvbWFpbjsKKysJ c3RydWN0IHBjaV9ob3N0X2JyaWRnZSAgKmJyaWRnZTsKKysJc3RydWN0IGpoNzExMF9wY2llX21z aQltc2k7CisrCXN0cnVjdCByZXNldF9jb250cm9sICpyZXNldHM7CisrCXN0cnVjdCBjbGtfYnVs a19kYXRhICpjbGtzOworKwlpbnQgbnVtX2Nsa3M7CisrCWludCBhdHJfdGFibGVfbnVtOworKwlz dHJ1Y3QgZ3Bpb19kZXNjICpwb3dlcl9ncGlvOworKwlzdHJ1Y3QgZ3Bpb19kZXNjICpyZXNldF9n cGlvOworK307CisrCisrLyoKKysgKiBTdGFyRml2ZSBQQ0llIHBvcnQgdXNlcyBCQVIwLUJBUjEg b2YgUkMncyBjb25maWd1cmF0aW9uIHNwYWNlIGFzCisrICogdGhlIHRyYW5zbGF0aW9uIGZyb20g UENJIGJ1cyB0byBuYXRpdmUgQlVTLiAgRW50aXJlIEREUiByZWdpb24KKysgKiBpcyBtYXBwZWQg aW50byBQQ0llIHNwYWNlIHVzaW5nIHRoZXNlIHJlZ2lzdGVycywgc28gaXQgY2FuIGJlCisrICog cmVhY2hlZCBieSBETUEgZnJvbSBFUCBkZXZpY2VzLiAgVGhlIEJBUjAvMSBvZiBicmlkZ2Ugc2hv dWxkIGJlCisrICogaGlkZGVuIGR1cmluZyBlbnVtZXJhdGlvbiB0byBhdm9pZCB0aGUgc2l6aW5n IGFuZCByZXNvdXJjZSBhbGxvY2F0aW9uCisrICogYnkgUENJZSBjb3JlLgorKyAqLworK3N0YXRp YyBib29sIHN0YXJmaXZlX3BjaWVfaGlkZV9yY19iYXIoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5z aWduZWQgaW50ICBkZXZmbiwKKysJCQkJICBpbnQgb2Zmc2V0KQorK3sKKysJaWYgKHBjaV9pc19y b290X2J1cyhidXMpICYmIChkZXZmbiA9PSAwKQorKwkJJiYgKChvZmZzZXQgPT0gUENJX0JBU0Vf QUREUkVTU18wKQorKwkJfHwgKG9mZnNldCA9PSBQQ0lfQkFTRV9BRERSRVNTXzEpKSkKKysJCXJl dHVybiB0cnVlOworKworKwlyZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQgX19pb21lbSAqc3Rh cmZpdmVfcGNpZV9tYXBfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZm biwKKysJCQkgICBpbnQgd2hlcmUpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUg KnBjaWUgPSBidXMtPnN5c2RhdGE7CisrCisrCXJldHVybiBwY2llLT5jb25maWdfYmFzZSArIFBD SUVfRUNBTV9PRkZTRVQoYnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSk7CisrfQorKworK2ludCBz dGFyZml2ZV9wY2llX2NvbmZpZ193cml0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBp bnQgZGV2Zm4sCisrCQkJICAgaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbHVlKQorK3sKKysJ aWYgKHN0YXJmaXZlX3BjaWVfaGlkZV9yY19iYXIoYnVzLCBkZXZmbiwgd2hlcmUpKQorKwkJcmV0 dXJuIFBDSUJJT1NfQkFEX1JFR0lTVEVSX05VTUJFUjsKKysKKysJcmV0dXJuIHBjaV9nZW5lcmlj X2NvbmZpZ193cml0ZShidXMsIGRldmZuLCB3aGVyZSwgc2l6ZSwgdmFsdWUpOworK30KKysKKytz dGF0aWMgdm9pZCBzdGFyZml2ZV9wY2llX2hhbmRsZV9tc2lfaXJxKHN0cnVjdCBzdGFyZml2ZV9q aDcxMTBfcGNpZSAqcGNpZSkKKyt7CisrCXN0cnVjdCBqaDcxMTBfcGNpZV9tc2kgKm1zaSA9ICZw Y2llLT5tc2k7CisrCXUzMiBiaXQ7CisrCXUzMiB2aXJxOworKwl1bnNpZ25lZCBsb25nIHN0YXR1 cyA9IHJlYWRsKHBjaWUtPnJlZ19iYXNlICsgSVNUQVRVU19NU0kpOworKworKwlmb3JfZWFjaF9z ZXRfYml0KGJpdCwgJnN0YXR1cywgSU5UX1BDSV9NU0lfTlIpIHsKKysJCS8qIENsZWFyIGludGVy cnVwdHMgKi8KKysJCXdyaXRlbCgxIDw8IGJpdCwgcGNpZS0+cmVnX2Jhc2UgKyBJU1RBVFVTX01T SSk7CisrCQl2aXJxID0gaXJxX2ZpbmRfbWFwcGluZyhtc2ktPmlubmVyX2RvbWFpbiwgYml0KTsK KysJCWlmICh2aXJxKSB7CisrCQkJaWYgKHRlc3RfYml0KGJpdCwgbXNpLT51c2VkKSkKKysJCQkJ Z2VuZXJpY19oYW5kbGVfaXJxKHZpcnEpOworKwkJCWVsc2UKKysJCQkJZGV2X2VycigmcGNpZS0+ cGRldi0+ZGV2LAorKwkJCQkJIlVuaGFuZGxlZCBNU0ksIE1TSSVkIHZpcnEgJWRcbiIsIGJpdCwK KysJCQkJCXZpcnEpOworKwkJfSBlbHNlCisrCQkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAi VW5leHBlY3RlZCBNU0ksIE1TSSVkXG4iLAorKwkJCQliaXQpOworKwl9CisrCXdyaXRlbChJTlRf TVNJLCBwY2llLT5yZWdfYmFzZSArIElTVEFUVVNfTE9DQUwpOworK30KKysKKytzdGF0aWMgdm9p ZCBzdGFyZml2ZV9wY2llX2hhbmRsZV9pbnR4X2lycShzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3Bj aWUgKnBjaWUsCisrCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgc3RhdHVzKQorK3sKKysJdTMyIGJp dDsKKysJdTMyIHZpcnE7CisrCisrCXN0YXR1cyA+Pj0gSU5UQV9PRkZTRVQ7CisrCisrCWZvcl9l YWNoX3NldF9iaXQoYml0LCAmc3RhdHVzLCBQQ0lfTlVNX0lOVFgpIHsKKysJCS8qIENsZWFyIGlu dGVycnVwdHMgKi8KKysJCXdyaXRlbCgxIDw8IChiaXQgKyBJTlRBX09GRlNFVCksIHBjaWUtPnJl Z19iYXNlICsgSVNUQVRVU19MT0NBTCk7CisrCisrCQl2aXJxID0gaXJxX2ZpbmRfbWFwcGluZyhw Y2llLT5sZWdhY3lfaXJxX2RvbWFpbiwgYml0KTsKKysJCWlmICh2aXJxKQorKwkJCWdlbmVyaWNf aGFuZGxlX2lycSh2aXJxKTsKKysJCWVsc2UKKysJCQlkZXZfZXJyKCZwY2llLT5wZGV2LT5kZXYs CisrCQkJCSJ1bmV4cGVjdGVkIElSUSwgSU5UJWRcbiIsIGJpdCk7CisrCX0KKyt9CisrCisrc3Rh dGljIHZvaWQgc3RhcmZpdmVfcGNpZV9oYW5kbGVfZXJyb3JzX2lycShzdHJ1Y3Qgc3RhcmZpdmVf amg3MTEwX3BjaWUgKnBjaWUsIHUzMiBzdGF0dXMpCisreworKwlpZiAoc3RhdHVzICYgSU5UX0FY SV9QT1NUX0VSUk9SKQorKwkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiQVhJIHBvc3QgZXJy b3JcbiIpOworKwlpZiAoc3RhdHVzICYgSU5UX0FYSV9GRVRDSF9FUlJPUikKKysJCWRldl9lcnIo JnBjaWUtPnBkZXYtPmRldiwgIkFYSSBmZXRjaCBlcnJvclxuIik7CisrCWlmIChzdGF0dXMgJiBJ TlRfQVhJX0RJU0NBUkRfRVJST1IpCisrCQlkZXZfZXJyKCZwY2llLT5wZGV2LT5kZXYsICJBWEkg ZGlzY2FyZCBlcnJvclxuIik7CisrCWlmIChzdGF0dXMgJiBJTlRfUENJRV9QT1NUX0VSUk9SKQor KwkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiUENJZSBwb3N0IGVycm9yXG4iKTsKKysJaWYg KHN0YXR1cyAmIElOVF9QQ0lFX0ZFVENIX0VSUk9SKQorKwkJZGV2X2VycigmcGNpZS0+cGRldi0+ ZGV2LCAiUENJZSBmZXRjaCBlcnJvclxuIik7CisrCWlmIChzdGF0dXMgJiBJTlRfUENJRV9ESVND QVJEX0VSUk9SKQorKwkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiUENJZSBkaXNjYXJkIGVy cm9yXG4iKTsKKysKKysJd3JpdGVsKElOVF9FUlJPUlMsIHBjaWUtPnJlZ19iYXNlICsgSVNUQVRV U19MT0NBTCk7CisrfQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX3BjaWVfaXNyKHN0cnVjdCBp cnFfZGVzYyAqZGVzYykKKyt7CisrCXN0cnVjdCBpcnFfY2hpcCAqY2hpcCA9IGlycV9kZXNjX2dl dF9jaGlwKGRlc2MpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWU7CisrCXUz MiBzdGF0dXM7CisrCisrCWNoYWluZWRfaXJxX2VudGVyKGNoaXAsIGRlc2MpOworKwlwY2llID0g aXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShkZXNjKTsKKysKKysJc3RhdHVzID0gcmVhZGwocGNp ZS0+cmVnX2Jhc2UgKyBJU1RBVFVTX0xPQ0FMKTsKKysJd2hpbGUgKChzdGF0dXMgPSAocmVhZGwo cGNpZS0+cmVnX2Jhc2UgKyBJU1RBVFVTX0xPQ0FMKSAmIElOVF9NQVNLKSkpIHsKKysJCWlmIChz dGF0dXMgJiBJTlRfSU5UWF9NQVNLKQorKwkJCXN0YXJmaXZlX3BjaWVfaGFuZGxlX2ludHhfaXJx KHBjaWUsIHN0YXR1cyk7CisrCisrCQlpZiAoc3RhdHVzICYgSU5UX01TSSkKKysJCQlzdGFyZml2 ZV9wY2llX2hhbmRsZV9tc2lfaXJxKHBjaWUpOworKworKwkJaWYgKHN0YXR1cyAmIElOVF9FUlJP UlMpCisrCQkJc3RhcmZpdmVfcGNpZV9oYW5kbGVfZXJyb3JzX2lycShwY2llLCBzdGF0dXMpOwor Kwl9CisrCisrCWNoYWluZWRfaXJxX2V4aXQoY2hpcCwgZGVzYyk7CisrfQorKworKyNpZmRlZiBD T05GSUdfUENJX01TSQorK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgc3RhcmZpdmVfcGNpZV9tc2lf aXJxX2NoaXAgPSB7CisrCS5uYW1lID0gIlN0YXJGaXZlIFBDSWUgTVNJIiwKKysJLmlycV9tYXNr ID0gcGNpX21zaV9tYXNrX2lycSwKKysJLmlycV91bm1hc2sgPSBwY2lfbXNpX3VubWFza19pcnEs CisrfTsKKysKKytzdGF0aWMgc3RydWN0IG1zaV9kb21haW5faW5mbyBzdGFyZml2ZV9wY2llX21z aV9kb21haW5faW5mbyA9IHsKKysJLmZsYWdzID0gKE1TSV9GTEFHX1VTRV9ERUZfRE9NX09QUyB8 IE1TSV9GTEFHX1VTRV9ERUZfQ0hJUF9PUFMgfAorKwkJICBNU0lfRkxBR19QQ0lfTVNJWCksCisr CS5jaGlwID0gJnN0YXJmaXZlX3BjaWVfbXNpX2lycV9jaGlwLAorK307CisrI2VuZGlmCisrCisr c3RhdGljIHZvaWQgc3RhcmZpdmVfcGNpZV9jb21wb3NlX21zaV9tc2coc3RydWN0IGlycV9kYXRh ICpkYXRhLCBzdHJ1Y3QgbXNpX21zZyAqbXNnKQorK3sKKysJc3RydWN0IHN0YXJmaXZlX2poNzEx MF9wY2llICpwY2llID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7CisrCXBoeXNf YWRkcl90IG1zaV9hZGRyID0gcmVhZGwocGNpZS0+cmVnX2Jhc2UgKyBJTVNJX0FERFIpOworKwor Kwltc2ctPmFkZHJlc3NfbG8gPSBsb3dlcl8zMl9iaXRzKG1zaV9hZGRyKTsKKysJbXNnLT5hZGRy ZXNzX2hpID0gdXBwZXJfMzJfYml0cyhtc2lfYWRkcik7CisrCW1zZy0+ZGF0YSA9IGRhdGEtPmh3 aXJxOworKworKwlkZXZfaW5mbygmcGNpZS0+cGRldi0+ZGV2LCAibXNpIyVkIGFkZHJlc3NfaGkg JSN4IGFkZHJlc3NfbG8gJSN4XG4iLAorKwkJKGludClkYXRhLT5od2lycSwgbXNnLT5hZGRyZXNz X2hpLCBtc2ctPmFkZHJlc3NfbG8pOworK30KKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3BjaWVf bXNpX3NldF9hZmZpbml0eShzdHJ1Y3QgaXJxX2RhdGEgKmlycV9kYXRhLAorKwkJCQkgY29uc3Qg c3RydWN0IGNwdW1hc2sgKm1hc2ssIGJvb2wgZm9yY2UpCisreworKwlyZXR1cm4gLUVJTlZBTDsK Kyt9CisrCisrc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBzdGFyZml2ZV9pcnFfY2hpcCA9IHsKKysJ Lm5hbWUgPSAiU3RhckZpdmUgTVNJIiwKKysJLmlycV9jb21wb3NlX21zaV9tc2cgPSBzdGFyZml2 ZV9wY2llX2NvbXBvc2VfbXNpX21zZywKKysJLmlycV9zZXRfYWZmaW5pdHkgPSBzdGFyZml2ZV9w Y2llX21zaV9zZXRfYWZmaW5pdHksCisrfTsKKysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3BjaWVf bXNpX2FsbG9jKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sIHVuc2lnbmVkIGludCB2aXJxLAor KwkJCSAgdW5zaWduZWQgaW50IG5yX2lycXMsIHZvaWQgKmFyZ3MpCisreworKwlzdHJ1Y3Qgc3Rh cmZpdmVfamg3MTEwX3BjaWUgKnBjaWUgPSBkb21haW4tPmhvc3RfZGF0YTsKKysJc3RydWN0IGpo NzExMF9wY2llX21zaSAqbXNpID0gJnBjaWUtPm1zaTsKKysJaW50IGJpdDsKKysKKysJV0FSTl9P Tihucl9pcnFzICE9IDEpOworKwltdXRleF9sb2NrKCZtc2ktPmxvY2spOworKworKwliaXQgPSBm aW5kX2ZpcnN0X3plcm9fYml0KG1zaS0+dXNlZCwgSU5UX1BDSV9NU0lfTlIpOworKwlpZiAoYml0 ID49IElOVF9QQ0lfTVNJX05SKSB7CisrCQltdXRleF91bmxvY2soJm1zaS0+bG9jayk7CisrCQly ZXR1cm4gLUVOT1NQQzsKKysJfQorKworKwlzZXRfYml0KGJpdCwgbXNpLT51c2VkKTsKKysKKysJ aXJxX2RvbWFpbl9zZXRfaW5mbyhkb21haW4sIHZpcnEsIGJpdCwgJnN0YXJmaXZlX2lycV9jaGlw LAorKwkJCSAgICBkb21haW4tPmhvc3RfZGF0YSwgaGFuZGxlX3NpbXBsZV9pcnEsCisrCQkJICAg IE5VTEwsIE5VTEwpOworKwltdXRleF91bmxvY2soJm1zaS0+bG9jayk7CisrCisrCXJldHVybiAw OworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9wY2llX21zaV9mcmVlKHN0cnVjdCBpcnFf ZG9tYWluICpkb21haW4sIHVuc2lnbmVkIGludCB2aXJxLAorKwkJCSAgdW5zaWduZWQgaW50IG5y X2lycXMpCisreworKwlzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEgPSBpcnFfZG9tYWluX2dldF9pcnFf ZGF0YShkb21haW4sIHZpcnEpOworKwlzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUg PSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKKysJc3RydWN0IGpoNzExMF9wY2ll X21zaSAqbXNpID0gJnBjaWUtPm1zaTsKKysKKysJbXV0ZXhfbG9jaygmbXNpLT5sb2NrKTsKKysK KysJaWYgKCF0ZXN0X2JpdChkYXRhLT5od2lycSwgbXNpLT51c2VkKSkKKysJCWRldl9lcnIoJnBj aWUtPnBkZXYtPmRldiwgIlRyeWluZyB0byBmcmVlIHVudXNlZCBNU0kjJWx1XG4iLAorKwkJCWRh dGEtPmh3aXJxKTsKKysJZWxzZQorKwkJX19jbGVhcl9iaXQoZGF0YS0+aHdpcnEsIG1zaS0+dXNl ZCk7CisrCisrCXdyaXRlbCgweGZmZmZmZmZmLCBwY2llLT5yZWdfYmFzZSArIElTVEFUVVNfTVNJ KTsKKysJbXV0ZXhfdW5sb2NrKCZtc2ktPmxvY2spOworK30KKysKKytzdGF0aWMgY29uc3Qgc3Ry dWN0IGlycV9kb21haW5fb3BzIGRldl9tc2lfZG9tYWluX29wcyA9IHsKKysJLmFsbG9jICA9IHN0 YXJmaXZlX3BjaWVfbXNpX2FsbG9jLAorKwkuZnJlZSAgID0gc3RhcmZpdmVfcGNpZV9tc2lfZnJl ZSwKKyt9OworKworK3N0YXRpYyB2b2lkIHN0YXJmaXZlX3BjaWVfbXNpX2ZyZWVfaXJxX2RvbWFp bihzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisreworKyNpZmRlZiBDT05GSUdf UENJX01TSQorKwlzdHJ1Y3Qgamg3MTEwX3BjaWVfbXNpICptc2kgPSAmcGNpZS0+bXNpOworKwl1 MzIgaXJxOworKwlpbnQgaTsKKysKKysJZm9yIChpID0gMDsgaSA8IElOVF9QQ0lfTVNJX05SOyBp KyspIHsKKysJCWlycSA9IGlycV9maW5kX21hcHBpbmcobXNpLT5pbm5lcl9kb21haW4sIGkpOwor KwkJaWYgKGlycSA+IDApCisrCQkJaXJxX2Rpc3Bvc2VfbWFwcGluZyhpcnEpOworKwl9CisrCisr CWlmIChtc2ktPm1zaV9kb21haW4pCisrCQlpcnFfZG9tYWluX3JlbW92ZShtc2ktPm1zaV9kb21h aW4pOworKworKwlpZiAobXNpLT5pbm5lcl9kb21haW4pCisrCQlpcnFfZG9tYWluX3JlbW92ZSht c2ktPmlubmVyX2RvbWFpbik7CisrI2VuZGlmCisrfQorKworK3N0YXRpYyB2b2lkIHN0YXJmaXZl X3BjaWVfZnJlZV9pcnFfZG9tYWluKHN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSkK Kyt7CisrCWludCBpOworKwl1MzIgaXJxOworKworKwkvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1cHRz ICovCisrCXdyaXRlbCgwLCBwY2llLT5yZWdfYmFzZSArIElNQVNLX0xPQ0FMKTsKKysKKysJaWYg KHBjaWUtPmxlZ2FjeV9pcnFfZG9tYWluKSB7CisrCQlmb3IgKGkgPSAwOyBpIDwgUENJX05VTV9J TlRYOyBpKyspIHsKKysJCQlpcnEgPSBpcnFfZmluZF9tYXBwaW5nKHBjaWUtPmxlZ2FjeV9pcnFf ZG9tYWluLCBpKTsKKysJCQlpZiAoaXJxID4gMCkKKysJCQkJaXJxX2Rpc3Bvc2VfbWFwcGluZyhp cnEpOworKwkJfQorKwkJaXJxX2RvbWFpbl9yZW1vdmUocGNpZS0+bGVnYWN5X2lycV9kb21haW4p OworKwl9CisrCisrCWlmIChwY2lfbXNpX2VuYWJsZWQoKSkKKysJCXN0YXJmaXZlX3BjaWVfbXNp X2ZyZWVfaXJxX2RvbWFpbihwY2llKTsKKysJaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2Rh dGEocGNpZS0+aXJxLCBOVUxMLCBOVUxMKTsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9w Y2llX2luaXRfbXNpX2lycV9kb21haW4oc3RydWN0IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2ll KQorK3sKKysjaWZkZWYgQ09ORklHX1BDSV9NU0kKKysJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3 biA9IG9mX25vZGVfdG9fZndub2RlKHBjaWUtPnBkZXYtPmRldi5vZl9ub2RlKTsKKysJc3RydWN0 IGpoNzExMF9wY2llX21zaSAqbXNpID0gJnBjaWUtPm1zaTsKKysKKysJbXNpLT5pbm5lcl9kb21h aW4gPSBpcnFfZG9tYWluX2FkZF9saW5lYXIoTlVMTCwgSU5UX1BDSV9NU0lfTlIsCisrCQkJCQkJ ICAmZGV2X21zaV9kb21haW5fb3BzLCBwY2llKTsKKysJaWYgKCFtc2ktPmlubmVyX2RvbWFpbikg eworKwkJZGV2X2VycigmcGNpZS0+cGRldi0+ZGV2LCAiRmFpbGVkIHRvIGNyZWF0ZSBkZXYgSVJR IGRvbWFpblxuIik7CisrCQlyZXR1cm4gLUVOT01FTTsKKysJfQorKwltc2ktPm1zaV9kb21haW4g PSBwY2lfbXNpX2NyZWF0ZV9pcnFfZG9tYWluKGZ3biwgJnN0YXJmaXZlX3BjaWVfbXNpX2RvbWFp bl9pbmZvLAorKwkJCQkJCSAgICBtc2ktPmlubmVyX2RvbWFpbik7CisrCWlmICghbXNpLT5tc2lf ZG9tYWluKSB7CisrCQlkZXZfZXJyKCZwY2llLT5wZGV2LT5kZXYsICJGYWlsZWQgdG8gY3JlYXRl IG1zaSBJUlEgZG9tYWluXG4iKTsKKysJCWlycV9kb21haW5fcmVtb3ZlKG1zaS0+aW5uZXJfZG9t YWluKTsKKysJCXJldHVybiAtRU5PTUVNOworKwl9CisrI2VuZGlmCisrCXJldHVybiAwOworK30K KysKKytzdGF0aWMgaW50IHN0YXJmaXZlX3BjaWVfZW5hYmxlX21zaShzdHJ1Y3Qgc3RhcmZpdmVf amg3MTEwX3BjaWUgKnBjaWUsIHN0cnVjdCBwY2lfYnVzICpidXMpCisreworKwlzdHJ1Y3Qgamg3 MTEwX3BjaWVfbXNpICptc2kgPSAmcGNpZS0+bXNpOworKwl1MzIgcmVnOworKworKwltdXRleF9p bml0KCZtc2ktPmxvY2spOworKworKwkvKiBFbmFibGUgTVNJICovCisrCXJlZyA9IHJlYWRsKHBj aWUtPnJlZ19iYXNlICsgSU1BU0tfTE9DQUwpOworKwlyZWcgfD0gSU5UX01TSTsKKysJd3JpdGVs KHJlZywgcGNpZS0+cmVnX2Jhc2UgKyBJTUFTS19MT0NBTCk7CisrCXJldHVybiAwOworK30KKysK KytzdGF0aWMgaW50IHN0YXJmaXZlX3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRv bWFpbiwgdW5zaWduZWQgaW50IGlycSwKKysJCQkgICAgICBpcnFfaHdfbnVtYmVyX3QgaHdpcnEp CisreworKwlpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCAmZHVtbXlfaXJxX2NoaXAsIGhh bmRsZV9zaW1wbGVfaXJxKTsKKysJaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBkb21haW4tPmhvc3Rf ZGF0YSk7CisrCisrCXJldHVybiAwOworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9k b21haW5fb3BzIGludHhfZG9tYWluX29wcyA9IHsKKysJLm1hcCA9IHN0YXJmaXZlX3BjaWVfaW50 eF9tYXAsCisrCS54bGF0ZSA9IHBjaV9pcnFkX2ludHhfeGxhdGUsCisrfTsKKysKKytzdGF0aWMg aW50IHN0YXJmaXZlX3BjaWVfaW5pdF9pcnFfZG9tYWluKHN0cnVjdCBzdGFyZml2ZV9qaDcxMTBf cGNpZSAqcGNpZSkKKyt7CisrCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwY2llLT5wZGV2LT5kZXY7 CisrCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSA9IGRldi0+b2Zfbm9kZTsKKysJaW50IHJldDsK KysKKysJaWYgKHBjaV9tc2lfZW5hYmxlZCgpKSB7CisrCQlyZXQgPSBzdGFyZml2ZV9wY2llX2lu aXRfbXNpX2lycV9kb21haW4ocGNpZSk7CisrCQlpZiAocmV0ICE9IDApCisrCQkJcmV0dXJuIC1F Tk9NRU07CisrCX0KKysKKysJLyogU2V0dXAgSU5UeCAqLworKwlwY2llLT5sZWdhY3lfaXJxX2Rv bWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihub2RlLCBQQ0lfTlVNX0lOVFgsCisrCQkJCQkm aW50eF9kb21haW5fb3BzLCBwY2llKTsKKysKKysJaWYgKCFwY2llLT5sZWdhY3lfaXJxX2RvbWFp bikgeworKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGEgSU5UeCBJUlEgZG9tYWluXG4i KTsKKysJCXJldHVybiAtRU5PTUVNOworKwl9CisrCisrCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVy X2FuZF9kYXRhKHBjaWUtPmlycSwgc3RhcmZpdmVfcGNpZV9pc3IsIHBjaWUpOworKworKwlyZXR1 cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9wY2llX3BhcnNlX2R0KHN0cnVjdCBz dGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSkKKyt7CisrCXN0cnVjdCByZXNvdXJjZSAqY2ZnX3Jl czsKKysJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHBjaWUtPnBkZXY7CisrCXVuc2ln bmVkIGludCBhcmdzWzRdOworKworKwlwY2llLT5yZWdfYmFzZSA9CisrCQlkZXZtX3BsYXRmb3Jt X2lvcmVtYXBfcmVzb3VyY2VfYnluYW1lKHBkZXYsICJyZWciKTsKKysKKysJaWYgKElTX0VSUihw Y2llLT5yZWdfYmFzZSkpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCBQVFJf RVJSKHBjaWUtPnJlZ19iYXNlKSwKKysJCQkiRmFpbGVkIHRvIG1hcCByZWcgbWVtb3J5XG4iKTsK KysKKysJY2ZnX3JlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRldiwgSU9SRVNP VVJDRV9NRU0sICJjb25maWciKTsKKysJaWYgKCFjZmdfcmVzKQorKwkJcmV0dXJuIGRldl9lcnJf cHJvYmUoJnBkZXYtPmRldiwgLUVOT0RFViwKKysJCQkiRmFpbGVkIHRvIGdldCBjb25maWcgbWVt b3J5XG4iKTsKKysKKysJcGNpZS0+Y29uZmlnX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2Uo JnBkZXYtPmRldiwgY2ZnX3Jlcyk7CisrCWlmIChJU19FUlIocGNpZS0+Y29uZmlnX2Jhc2UpKQor KwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihwY2llLT5jb25maWdf YmFzZSksCisrCQkJIkZhaWxlZCB0byBtYXAgY29uZmlnIG1lbW9yeVxuIik7CisrCisrCXBjaWUt PmNvbmZpZ19waHlhZGRyID0gY2ZnX3Jlcy0+c3RhcnQ7CisrCisrCXBjaWUtPnBoeSA9IGRldm1f cGh5X29wdGlvbmFsX2dldCgmcGRldi0+ZGV2LCBOVUxMKTsKKysJaWYgKElTX0VSUihwY2llLT5w aHkpKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihwY2llLT5w aHkpLAorKwkJCSJGYWlsZWQgdG8gZ2V0IHBjaWUgcGh5XG4iKTsKKysKKysJcGNpZS0+aXJxID0g cGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKysJaWYgKHBjaWUtPmlycSA8IDApCisrCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCAtRUlOVkFMLAorKwkJCSJGYWlsZWQgdG8gZ2V0 IElSUTogJWRcbiIsIHBjaWUtPmlycSk7CisrCisrCXBjaWUtPnJlZ19zeXNjb24gPSBzeXNjb25f cmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlX2FyZ3MocGRldi0+ZGV2Lm9mX25vZGUsCisrCQkic3Rh cmZpdmUsc3RnLXN5c2NvbiIsIDQsIGFyZ3MpOworKworKwlpZiAoSVNfRVJSKHBjaWUtPnJlZ19z eXNjb24pKQorKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihwY2ll LT5yZWdfc3lzY29uKSwKKysJCQkiRmFpbGVkIHRvIHBhcnNlIHN0YXJmaXZlLHN0Zy1zeXNjb25c biIpOworKworKwlwY2llLT5zdGdfYXJmdW4gPSBhcmdzWzBdOworKwlwY2llLT5zdGdfYXdmdW4g PSBhcmdzWzFdOworKwlwY2llLT5zdGdfcnBfbmVwID0gYXJnc1syXTsKKysJcGNpZS0+c3RnX2xu a3N0YSA9IGFyZ3NbM107CisrCisrCS8qIENsZWFyIGFsbCBpbnRlcnJ1cHRzICovCisrCXdyaXRl bCgweGZmZmZmZmZmLCBwY2llLT5yZWdfYmFzZSArIElTVEFUVVNfTE9DQUwpOworKwl3cml0ZWwo SU5UX0lOVFhfTUFTSyB8IElOVF9FUlJPUlMsIHBjaWUtPnJlZ19iYXNlICsgSU1BU0tfTE9DQUwp OworKworKwlyZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIHN0cnVjdCBwY2lfb3BzIHN0YXJmaXZl X3BjaWVfb3BzID0geworKwkubWFwX2J1cwk9IHN0YXJmaXZlX3BjaWVfbWFwX2J1cywKKysJLnJl YWQgICAgICAgICAgID0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQsCisrCS53cml0ZSAgICAgICAg ICA9IHN0YXJmaXZlX3BjaWVfY29uZmlnX3dyaXRlLAorK307CisrCisrc3RhdGljIHZvaWQgc3Rh cmZpdmVfcGNpZV9zZXRfYXRyX2VudHJ5KHN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNp ZSwKKysJCQlwaHlzX2FkZHJfdCBzcmNfYWRkciwgcGh5c19hZGRyX3QgdHJzbF9hZGRyLAorKwkJ CXNpemVfdCB3aW5kb3dfc2l6ZSwgaW50IHRyc2xfcGFyYW0pCisreworKwl2b2lkIF9faW9tZW0g KmJhc2UgPQorKwkJcGNpZS0+cmVnX2Jhc2UgKyBYUjNQQ0lfQVRSX0FYSTRfU0xWMDsKKysKKysJ LyogU3VwcG9ydCBBWEk0IFNsYXZlIDAgQWRkcmVzcyBUcmFuc2xhdGlvbiBUYWJsZXMgMC03LiAq LworKwlpZiAocGNpZS0+YXRyX3RhYmxlX251bSA+PSBYUjNQQ0lfQVRSX01BWF9UQUJMRV9OVU0p CisrCQlwY2llLT5hdHJfdGFibGVfbnVtID0gWFIzUENJX0FUUl9NQVhfVEFCTEVfTlVNIC0gMTsK KysJYmFzZSArPSAgWFIzUENJX0FUUl9UQUJMRV9PRkZTRVQgKiBwY2llLT5hdHJfdGFibGVfbnVt OworKwlwY2llLT5hdHJfdGFibGVfbnVtKys7CisrCisrCS8qCisrCSAqIFgzUENJX0FUUl9TUkNf QUREUl9MT1c6CisrCSAqICAgLSBiaXQgMDogZW5hYmxlIGVudHJ5LAorKwkgKiAgIC0gYml0cyAx LTY6IEFUUiB3aW5kb3cgc2l6ZTogdG90YWwgc2l6ZSBpbiBieXRlczogMl4oQVRSX1dTSVpFICsg MSkKKysJICogICAtIGJpdHMgNy0xMTogcmVzZXJ2ZWQKKysJICogICAtIGJpdHMgMTItMzE6IHN0 YXJ0IG9mIHNvdXJjZSBhZGRyZXNzCisrCSAqLworKwl3cml0ZWwoKGxvd2VyXzMyX2JpdHMoc3Jj X2FkZHIpICYgWFIzUENJX0FUUl9TUkNfQUREUl9NQVNLKSB8CisrCQkJKGZscyh3aW5kb3dfc2l6 ZSkgLSAxKSA8PCBYUjNQQ0lfQVRSX1NSQ19XSU5fU0laRV9TSElGVCB8IDEsCisrCQkJYmFzZSAr IFhSM1BDSV9BVFJfU1JDX0FERFJfTE9XKTsKKysJd3JpdGVsKHVwcGVyXzMyX2JpdHMoc3JjX2Fk ZHIpLCBiYXNlICsgWFIzUENJX0FUUl9TUkNfQUREUl9ISUdIKTsKKysJd3JpdGVsKChsb3dlcl8z Ml9iaXRzKHRyc2xfYWRkcikgJiBYUjNQQ0lfQVRSX1RSU0xfQUREUl9NQVNLKSwKKysJCQliYXNl ICsgWFIzUENJX0FUUl9UUlNMX0FERFJfTE9XKTsKKysJd3JpdGVsKHVwcGVyXzMyX2JpdHModHJz bF9hZGRyKSwgYmFzZSArIFhSM1BDSV9BVFJfVFJTTF9BRERSX0hJR0gpOworKwl3cml0ZWwodHJz bF9wYXJhbSwgYmFzZSArIFhSM1BDSV9BVFJfVFJTTF9QQVJBTSk7CisrCisrCWRldl9pbmZvKCZw Y2llLT5wZGV2LT5kZXYsICJBVFIgZW50cnk6IDB4JTAxMGxseCAlcyAweCUwMTBsbHggWzB4JTAx MGxseF0gKHBhcmFtOiAweCUwNngpXG4iLAorKwkgICAgICAgc3JjX2FkZHIsICh0cnNsX3BhcmFt ICYgWFIzUENJX0FUUl9UUlNMX0RJUikgPyAiPC0iIDogIi0+IiwKKysJICAgICAgIHRyc2xfYWRk ciwgKHU2NCl3aW5kb3dfc2l6ZSwgdHJzbF9wYXJhbSk7CisrfQorKworK3N0YXRpYyBpbnQgc3Rh cmZpdmVfcGNpZV9zZXR1cF93aW5kb3dzKHN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNp ZSkKKyt7CisrCXN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSA9IHBjaWUtPmJyaWRnZTsK KysJc3RydWN0IHJlc291cmNlX2VudHJ5ICplbnRyeTsKKysJdTY0IHBjaV9hZGRyOworKworKwly ZXNvdXJjZV9saXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmYnJpZGdlLT53aW5kb3dzKSB7Cisr CQlpZiAocmVzb3VyY2VfdHlwZShlbnRyeS0+cmVzKSA9PSBJT1JFU09VUkNFX01FTSkgeworKwkJ CXBjaV9hZGRyID0gZW50cnktPnJlcy0+c3RhcnQgLSBlbnRyeS0+b2Zmc2V0OworKwkJCXN0YXJm aXZlX3BjaWVfc2V0X2F0cl9lbnRyeShwY2llLAorKwkJCQkJCWVudHJ5LT5yZXMtPnN0YXJ0LCBw Y2lfYWRkciwKKysJCQkJCQlyZXNvdXJjZV9zaXplKGVudHJ5LT5yZXMpLAorKwkJCQkJCVhSM1BD SV9BVFJfVFJTTElEX1BDSUVfTUVNT1JZKTsKKysJCX0KKysJfQorKworKwlyZXR1cm4gMDsKKyt9 CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9wY2llX2Nsa19yc3RfaW5pdChzdHJ1Y3Qgc3RhcmZp dmVfamg3MTEwX3BjaWUgKnBjaWUpCisreworKwlpbnQgcmV0OworKwlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGNpZS0+cGRldi0+ZGV2OworKworKwlwY2llLT5udW1fY2xrcyA9IGRldm1fY2xrX2J1 bGtfZ2V0X2FsbChkZXYsICZwY2llLT5jbGtzKTsKKysJaWYgKHBjaWUtPm51bV9jbGtzIDwgMCkK KysJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVOT0RFViwKKysJCQkiRmFpbGVkIHRvIGdl dCBwY2llIGNsb2Nrc1xuIik7CisrCisrCXJldCA9IGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKHBj aWUtPm51bV9jbGtzLCBwY2llLT5jbGtzKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBkZXZfZXJy X3Byb2JlKCZwY2llLT5wZGV2LT5kZXYsIHJldCwKKysJCQkiRmFpbGVkIHRvIGVuYWJsZSBjbG9j a3NcbiIpOworKworKwlwY2llLT5yZXNldHMgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfYXJyYXlfZ2V0 X2V4Y2x1c2l2ZShkZXYpOworKwlpZiAoSVNfRVJSKHBjaWUtPnJlc2V0cykpIHsKKysJCWNsa19i dWxrX2Rpc2FibGVfdW5wcmVwYXJlKHBjaWUtPm51bV9jbGtzLCBwY2llLT5jbGtzKTsKKysJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwY2llLT5yZXNldHMpLAorKwkJCSJGYWls ZWQgdG8gZ2V0IHBjaWUgcmVzZXRzIik7CisrCX0KKysKKysJcmV0dXJuIHJlc2V0X2NvbnRyb2xf ZGVhc3NlcnQocGNpZS0+cmVzZXRzKTsKKyt9CisrCisrc3RhdGljIHZvaWQgc3RhcmZpdmVfcGNp ZV9jbGtfcnN0X2RlaW5pdChzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisrewor KwlyZXNldF9jb250cm9sX2Fzc2VydChwY2llLT5yZXNldHMpOworKwljbGtfYnVsa19kaXNhYmxl X3VucHJlcGFyZShwY2llLT5udW1fY2xrcywgcGNpZS0+Y2xrcyk7CisrfQorKworK2ludCBzdGFy Zml2ZV9wY2llX2dwaW9faW5pdChzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWUpCisr eworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGNpZS0+cGRldi0+ZGV2OworKworKwlwY2llLT5y ZXNldF9ncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAicmVzZXQiLCBHUElPRF9P VVRfSElHSCk7CisrCWlmIChJU19FUlJfT1JfTlVMTChwY2llLT5yZXNldF9ncGlvKSkgeworKwkJ ZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGdldCByZXNldC1ncGlvLlxuIik7CisrCQlyZXR1cm4g LUVJTlZBTDsKKysJfQorKworKwlwY2llLT5wb3dlcl9ncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0 aW9uYWwoZGV2LCAicG93ZXIiLCBHUElPRF9PVVRfTE9XKTsKKysJaWYgKElTX0VSUl9PUl9OVUxM KHBjaWUtPnBvd2VyX2dwaW8pKQorKwkJcGNpZS0+cG93ZXJfZ3BpbyA9IE5VTEw7CisrCisrCXJl dHVybiAwOworK30KKysKKytzdGF0aWMgdm9pZCBzdGFyZml2ZV9wY2llX2h3X2luaXQoc3RydWN0 IHN0YXJmaXZlX2poNzExMF9wY2llICpwY2llKQorK3sKKysJdW5zaWduZWQgaW50IHZhbHVlOwor KwlpbnQgaTsKKysKKysJaWYgKHBjaWUtPnBvd2VyX2dwaW8pCisrCQlncGlvZF9zZXRfdmFsdWVf Y2Fuc2xlZXAocGNpZS0+cG93ZXJfZ3BpbywgMSk7CisrCisrCWlmIChwY2llLT5yZXNldF9ncGlv KQorKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKHBjaWUtPnJlc2V0X2dwaW8sIDEpOworKwor KwkvKiBEaXNhYmxlIHBoeXNpY2FsIGZ1bmN0aW9ucyBleGNlcHQgIzAgKi8KKysJZm9yIChpID0g MTsgaSA8IFBDSUVfRlVOQ19OVU07IGkrKykgeworKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjaWUt PnJlZ19zeXNjb24sCisrCQkJCXBjaWUtPnN0Z19hcmZ1biwKKysJCQkJU1RHX1NZU0NPTl9BWEk0 X1NMVkxfQVJGVU5DX01BU0ssCisrCQkJCShpIDw8IFBIWV9GVU5DX1NISUZUKSA8PAorKwkJCQlT VEdfU1lTQ09OX0FYSTRfU0xWTF9BUkZVTkNfU0hJRlQpOworKwkJcmVnbWFwX3VwZGF0ZV9iaXRz KHBjaWUtPnJlZ19zeXNjb24sCisrCQkJCXBjaWUtPnN0Z19hd2Z1biwKKysJCQkJU1RHX1NZU0NP Tl9BWEk0X1NMVkxfQVdGVU5DX01BU0ssCisrCQkJCWkgPDwgUEhZX0ZVTkNfU0hJRlQpOworKwor KwkJdmFsdWUgPSByZWFkbChwY2llLT5yZWdfYmFzZSArIFBDSV9NSVNDKTsKKysJCXZhbHVlIHw9 IFBIWV9GVU5DVElPTl9ESVM7CisrCQl3cml0ZWwodmFsdWUsIHBjaWUtPnJlZ19iYXNlICsgUENJ X01JU0MpOworKwl9CisrCisrCisrCXJlZ21hcF91cGRhdGVfYml0cyhwY2llLT5yZWdfc3lzY29u LAorKwkJCQlwY2llLT5zdGdfYXJmdW4sCisrCQkJCVNUR19TWVNDT05fQVhJNF9TTFZMX0FSRlVO Q19NQVNLLAorKwkJCQkwKTsKKysJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjaWUtPnJlZ19zeXNjb24s CisrCQkJCXBjaWUtPnN0Z19hd2Z1biwKKysJCQkJU1RHX1NZU0NPTl9BWEk0X1NMVkxfQVdGVU5D X01BU0ssCisrCQkJCTApOworKworKwkvKiBFbmFibGUgcm9vdCBwb3J0ICovCisrCXZhbHVlID0g cmVhZGwocGNpZS0+cmVnX2Jhc2UgKyBHRU5fU0VUVElOR1MpOworKwl2YWx1ZSB8PSBSUF9FTkFC TEU7CisrCXdyaXRlbCh2YWx1ZSwgcGNpZS0+cmVnX2Jhc2UgKyBHRU5fU0VUVElOR1MpOworKwor KwkvKiBQQ0llIFBDSSBTdGFuZGFyZCBDb25maWd1cmF0aW9uIElkZW50aWZpY2F0aW9uIFNldHRp bmdzLiAqLworKwl2YWx1ZSA9IChQQ0lfQ0xBU1NfQlJJREdFX1BDSSA8PCBJRFNfQ0xBU1NfQ09E RV9TSElGVCk7CisrCXdyaXRlbCh2YWx1ZSwgcGNpZS0+cmVnX2Jhc2UgKyBQQ0lFX1BDSV9JRFMp OworKworKwkvKgorKwkgKiBUaGUgTFRSIG1lc3NhZ2UgZm9yd2FyZGluZyBvZiBQQ0llIE1lc3Nh Z2UgUmVjZXB0aW9uIHdhcyBzZXQgYnkgY29yZQorKwkgKiBhcyBkZWZhdWx0LCBidXQgdGhlIGZv cndhcmQgaWQgJiBhZGRyIGFyZSBhbHNvIG5lZWQgdG8gYmUgcmVzZXQuCisrCSAqIElmIHdlIGRv IG5vdCBkaXNhYmxlIExUUiBtZXNzYWdlIGZvcndhcmRpbmcgaGVyZSwgb3Igc2V0IGEgbGVnYWwK KysJICogZm9yd2FyZGluZyBhZGRyZXNzLCB0aGUga2VybmVsIHdpbGwgZ2V0IHN0dWNrIGFmdGVy IHRoaXMgZHJpdmVyIHByb2JlLgorKwkgKiBUbyB3b3JrYXJvdW5kLCBkaXNhYmxlIHRoZSBMVFIg bWVzc2FnZSBmb3J3YXJkaW5nIHN1cHBvcnQgb24KKysJICogUENJZSBNZXNzYWdlIFJlY2VwdGlv bi4KKysJICovCisrCXZhbHVlID0gcmVhZGwocGNpZS0+cmVnX2Jhc2UgKyBQTVNHX1NVUFBPUlRf UlgpOworKwl2YWx1ZSAmPSB+UE1TR19MVFJfU1VQUE9SVDsKKysJd3JpdGVsKHZhbHVlLCBwY2ll LT5yZWdfYmFzZSArIFBNU0dfU1VQUE9SVF9SWCk7CisrCisrCS8qIFByZWZldGNoYWJsZSBtZW1v cnkgd2luZG93IDY0LWJpdCBhZGRyZXNzaW5nIHN1cHBvcnQgKi8KKysJdmFsdWUgPSByZWFkbChw Y2llLT5yZWdfYmFzZSArIFBDSUVfV0lOUk9NKTsKKysJdmFsdWUgfD0gUFJFRl9NRU1fV0lOXzY0 X1NVUFBPUlQ7CisrCXdyaXRlbCh2YWx1ZSwgcGNpZS0+cmVnX2Jhc2UgKyBQQ0lFX1dJTlJPTSk7 CisrCisrCS8qCisrCSAqIEFzIHRoZSB0d28gaG9zdCBicmlkZ2VzIGluIEpINzExMCBzb2MgaGF2 ZSB0aGUgc2FtZSBkZWZhdWx0CisrCSAqIGFkZHJlc3MgdHJhbnNsYXRpb24gdGFibGUsIHRoaXMg Y2F1c2UgdGhlIHNlY29uZCByb290IHBvcnQgY2FuJ3QKKysJICogYWNjZXNzIGl0J3MgaG9zdCBi cmlkZ2UgY29uZmlnIHNwYWNlIGNvcnJlY3RseS4KKysJICogVG8gd29ya2Fyb3VuZCwgY29uZmln IHRoZSBBVFIgb2YgaG9zdCBicmlkZ2UgY29uZmlnIHNwYWNlIGJ5IFNXLgorKwkgKi8KKysJc3Rh cmZpdmVfcGNpZV9zZXRfYXRyX2VudHJ5KHBjaWUsCisrCQkJcGNpZS0+Y29uZmlnX3BoeWFkZHIs IDAsCisrCQkJWFIzUENJX0VDQU1fU0laRSwKKysJCQlYUjNQQ0lfQVRSX1RSU0xJRF9QQ0lFX0NP TkZJRyk7CisrCisrCXN0YXJmaXZlX3BjaWVfc2V0dXBfd2luZG93cyhwY2llKTsKKysKKysJLyog RW5zdXJlIHRoYXQgUEVSU1QgaGFzIGJlZW4gYXNzZXJ0ZWQgZm9yIGF0IGxlYXN0IDEwMCBtcyAq LworKwltc2xlZXAoMzAwKTsKKysJaWYgKHBjaWUtPnJlc2V0X2dwaW8pCisrCQlncGlvZF9zZXRf dmFsdWVfY2Fuc2xlZXAocGNpZS0+cmVzZXRfZ3BpbywgMCk7CisrfQorKworK3N0YXRpYyBib29s IHN0YXJmaXZlX3BjaWVfaXNfbGlua191cChzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBj aWUpCisreworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGNpZS0+cGRldi0+ZGV2OworKwlpbnQg cmV0OworKwl1MzIgc3RnX3JlZ192YWw7CisrCisrCS8qIDEwMG1zIHRpbWVvdXQgdmFsdWUgc2hv dWxkIGJlIGVub3VnaCBmb3IgR2VuMS8yIHRyYWluaW5nICovCisrCXJldCA9IHJlZ21hcF9yZWFk X3BvbGxfdGltZW91dChwY2llLT5yZWdfc3lzY29uLAorKwkJCQkJcGNpZS0+c3RnX2xua3N0YSwK KysJCQkJCXN0Z19yZWdfdmFsLAorKwkJCQkJc3RnX3JlZ192YWwgJiBEQVRBX0xJTktfQUNUSVZF LAorKwkJCQkJMTAgKiAxMDAwLCAxMDAgKiAxMDAwKTsKKysKKysJLyogSWYgdGhlIGxpbmsgaXMg ZG93biAobm8gZGV2aWNlIGluIHNsb3QpLCB0aGVuIGV4aXQuICovCisrCWlmIChyZXQgPT0gLUVU SU1FRE9VVCkgeworKwkJZGV2X2luZm8oZGV2LCAiUG9ydCBsaW5rIGRvd24sIGV4aXQuXG4iKTsK KysJCXJldHVybiBmYWxzZTsKKysJfSBlbHNlIGlmIChyZXQgPT0gMCkgeworKwkJZGV2X2luZm8o ZGV2LCAiUG9ydCBsaW5rIHVwLlxuIik7CisrCQlyZXR1cm4gdHJ1ZTsKKysJfQorKworKwlkZXZf d2FybihkZXYsICJSZWFkIHN0Z19saW5rc3RhIGZhaWxlZC5cbiIpOworKworKwlyZXR1cm4gZmFs c2U7CisrfQorKworK3N0YXRpYyBpbnQgc3RhcmZpdmVfcGNpZV9lbmFibGVfcGh5KHN0cnVjdCBk ZXZpY2UgKmRldiwKKysJCXN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSkKKyt7Cisr CWludCByZXQ7CisrCisrCWlmICghcGNpZS0+cGh5KQorKwkJcmV0dXJuIDA7CisrCisrCXJldCA9 IHBoeV9pbml0KHBjaWUtPnBoeSk7CisrCWlmIChyZXQpCisrCQlyZXR1cm4gZGV2X2Vycl9wcm9i ZShkZXYsIHJldCwKKysJCQkiZmFpbGVkIHRvIGluaXRpYWxpemUgcGNpZSBwaHlcbiIpOworKwor KwlyZXQgPSBwaHlfc2V0X21vZGUocGNpZS0+cGh5LCBQSFlfTU9ERV9QQ0lFKTsKKysJaWYgKHJl dCkgeworKwkJcmV0ID0gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwKKysJCQkiZmFpbGVkIHRvIHNl dCBwY2llIG1vZGVcbiIpOworKwkJZ290byBlcnJfcGh5X29uOworKwl9CisrCisrCXJldCA9IHBo eV9wb3dlcl9vbihwY2llLT5waHkpOworKwlpZiAocmV0KSB7CisrCQlyZXQgPSBkZXZfZXJyX3By b2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIHBvd2VyIG9uIHBjaWUgcGh5XG4iKTsKKysJCWdvdG8g ZXJyX3BoeV9vbjsKKysJfQorKworKwlyZXR1cm4gMDsKKysKKytlcnJfcGh5X29uOgorKwlwaHlf ZXhpdChwY2llLT5waHkpOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgdm9pZCBzdGFy Zml2ZV9wY2llX2Rpc2FibGVfcGh5KHN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSkK Kyt7CisrCXBoeV9wb3dlcl9vZmYocGNpZS0+cGh5KTsKKysJcGh5X2V4aXQocGNpZS0+cGh5KTsK Kyt9CisrCisrc3RhdGljIGludCBzdGFyZml2ZV9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCisreworKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworKwlz dHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3BjaWUgKnBjaWU7CisrCXN0cnVjdCBwY2lfYnVzICpidXM7 CisrCXN0cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZTsKKysJaW50IHJldDsKKysKKysJcGNp ZSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGNpZSksIEdGUF9LRVJORUwpOworKwlpZiAo IXBjaWUpCisrCQlyZXR1cm4gLUVOT01FTTsKKysKKysJcGNpZS0+cGRldiA9IHBkZXY7CisrCXBj aWUtPmF0cl90YWJsZV9udW0gPSAwOworKworKwlyZXQgPSBzdGFyZml2ZV9wY2llX3BhcnNlX2R0 KHBjaWUpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgcGNpZSk7CisrCisrCXJldCA9IHN0YXJmaXZlX3BjaWVfZ3Bpb19pbml0KHBj aWUpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKysKKysJcmVnbWFwX3VwZGF0ZV9iaXRz KHBjaWUtPnJlZ19zeXNjb24sCisrCQkJCXBjaWUtPnN0Z19ycF9uZXAsCisrCQkJCVNUR19TWVND T05fS19SUF9ORVAsCisrCQkJCVNUR19TWVNDT05fS19SUF9ORVApOworKworKwlyZWdtYXBfdXBk YXRlX2JpdHMocGNpZS0+cmVnX3N5c2NvbiwKKysJCQkJcGNpZS0+c3RnX2F3ZnVuLAorKwkJCQlT VEdfU1lTQ09OX0NLUkVGX1NSQ19NQVNLLAorKwkJCQkyIDw8IFNUR19TWVNDT05fQ0tSRUZfU1JD X1NISUZUKTsKKysKKysJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjaWUtPnJlZ19zeXNjb24sCisrCQkJ CXBjaWUtPnN0Z19hd2Z1biwKKysJCQkJU1RHX1NZU0NPTl9DTEtSRVEsCisrCQkJCVNUR19TWVND T05fQ0xLUkVRKTsKKysKKysJcmV0ID0gc3RhcmZpdmVfcGNpZV9jbGtfcnN0X2luaXQocGNpZSk7 CisrCWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworKworKwlyZXQgPSBzdGFyZml2ZV9wY2llX2lu aXRfaXJxX2RvbWFpbihwY2llKTsKKysJaWYgKHJldCkKKysJCXJldHVybiByZXQ7CisrCisrCWJy aWRnZSA9IGRldm1fcGNpX2FsbG9jX2hvc3RfYnJpZGdlKGRldiwgMCk7CisrCWlmICghYnJpZGdl KQorKwkJcmV0dXJuIC1FTk9NRU07CisrCisrCXBtX3J1bnRpbWVfZW5hYmxlKCZwZGV2LT5kZXYp OworKwlwbV9ydW50aW1lX2dldF9zeW5jKCZwZGV2LT5kZXYpOworKworKwkvKiBTZXQgZGVmYXVs dCBidXMgb3BzICovCisrCWJyaWRnZS0+b3BzID0gJnN0YXJmaXZlX3BjaWVfb3BzOworKwlicmlk Z2UtPnN5c2RhdGEgPSBwY2llOworKwlwY2llLT5icmlkZ2UgPSBicmlkZ2U7CisrCisrCXN0YXJm aXZlX3BjaWVfaHdfaW5pdChwY2llKTsKKysKKysJaWYgKHN0YXJmaXZlX3BjaWVfaXNfbGlua191 cChwY2llKSA9PSBmYWxzZSkKKysJCWdvdG8gcmVsZWFzZTsKKysKKysJaWYgKElTX0VOQUJMRUQo Q09ORklHX1BDSV9NU0kpKSB7CisrCQlyZXQgPSBzdGFyZml2ZV9wY2llX2VuYWJsZV9tc2kocGNp ZSwgYnVzKTsKKysJCWlmIChyZXQgPCAwKSB7CisrCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8g ZW5hYmxlIE1TSSBzdXBwb3J0OiAlZFxuIiwgcmV0KTsKKysJCQlnb3RvIHJlbGVhc2U7CisrCQl9 CisrCX0KKysKKysJcmV0ID0gc3RhcmZpdmVfcGNpZV9lbmFibGVfcGh5KGRldiwgcGNpZSk7Cisr CWlmIChyZXQpCisrCQlnb3RvIHJlbGVhc2U7CisrCisrCXJldCA9IHBjaV9ob3N0X3Byb2JlKGJy aWRnZSk7CisrCWlmIChyZXQgPCAwKSB7CisrCQlkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFp bGVkIHRvIHBjaSBob3N0IHByb2JlOiAlZFxuIiwgcmV0KTsKKysJCWdvdG8gZXJyX3BoeV9vbjsK KysJfQorKworKwlyZXR1cm4gcmV0OworKworK2Vycl9waHlfb246CisrCXN0YXJmaXZlX3BjaWVf ZGlzYWJsZV9waHkocGNpZSk7CisrcmVsZWFzZToKKysJaWYgKHBjaWUtPnBvd2VyX2dwaW8pCisr CQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocGNpZS0+cG93ZXJfZ3BpbywgMCk7CisrCisrCXN0 YXJmaXZlX3BjaWVfY2xrX3JzdF9kZWluaXQocGNpZSk7CisrCisrCXBtX3J1bnRpbWVfcHV0X3N5 bmMoJnBkZXYtPmRldik7CisrCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsKKysKKysJ cGNpX2ZyZWVfaG9zdF9icmlkZ2UocGNpZS0+YnJpZGdlKTsKKysJcGxhdGZvcm1fc2V0X2RydmRh dGEocGRldiwgTlVMTCk7CisrCisrCXJldHVybiByZXQ7CisrfQorKworK3N0YXRpYyBpbnQgc3Rh cmZpdmVfcGNpZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKKyt7CisrCXN0 cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNpZSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBk ZXYpOworKworKwlzdGFyZml2ZV9wY2llX2Rpc2FibGVfcGh5KHBjaWUpOworKwlpZiAocGNpZS0+ cG93ZXJfZ3BpbykKKysJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChwY2llLT5wb3dlcl9ncGlv LCAwKTsKKysJc3RhcmZpdmVfcGNpZV9mcmVlX2lycV9kb21haW4ocGNpZSk7CisrCXN0YXJmaXZl X3BjaWVfY2xrX3JzdF9kZWluaXQocGNpZSk7CisrCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYs IE5VTEwpOworKworKwlyZXR1cm4gMDsKKyt9CisrCisrI2lmZGVmIENPTkZJR19QTV9TTEVFUAor K3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgc3RhcmZpdmVfcGNpZV9zdXNwZW5kX25vaXJxKHN0 cnVjdCBkZXZpY2UgKmRldikKKyt7CisrCXN0cnVjdCBzdGFyZml2ZV9qaDcxMTBfcGNpZSAqcGNp ZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworKworKwlpZiAoIXBjaWUpCisrCQlyZXR1cm4gMDsK KysKKysJc3RhcmZpdmVfcGNpZV9kaXNhYmxlX3BoeShwY2llKTsKKysJY2xrX2J1bGtfZGlzYWJs ZV91bnByZXBhcmUocGNpZS0+bnVtX2Nsa3MsIHBjaWUtPmNsa3MpOworKworKwlyZXR1cm4gMDsK Kyt9CisrCisrc3RhdGljIGludCBfX21heWJlX3VudXNlZCBzdGFyZml2ZV9wY2llX3Jlc3VtZV9u b2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpCisreworKwlzdHJ1Y3Qgc3RhcmZpdmVfamg3MTEwX3Bj aWUgKnBjaWUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKysJaW50IHJldDsKKysKKysJaWYgKCFw Y2llKQorKwkJcmV0dXJuIDA7CisrCisrCXJldCA9IGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKHBj aWUtPm51bV9jbGtzLCBwY2llLT5jbGtzKTsKKysJaWYgKHJldCkKKysJCXJldHVybiBkZXZfZXJy X3Byb2JlKGRldiwgcmV0LAorKwkJCSJGYWlsZWQgdG8gZW5hYmxlIGNsb2Nrc1xuIik7CisrCisr CXJldCA9IHN0YXJmaXZlX3BjaWVfZW5hYmxlX3BoeShkZXYsIHBjaWUpOworKwlpZiAocmV0KQor KwkJY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUocGNpZS0+bnVtX2Nsa3MsIHBjaWUtPmNsa3Mp OworKworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9v cHMgc3RhcmZpdmVfcGNpZV9wbV9vcHMgPSB7CisrCVNFVF9OT0lSUV9TWVNURU1fU0xFRVBfUE1f T1BTKHN0YXJmaXZlX3BjaWVfc3VzcGVuZF9ub2lycSwKKysJCQkJICAgICAgc3RhcmZpdmVfcGNp ZV9yZXN1bWVfbm9pcnEpCisrfTsKKysjZW5kaWYKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBzdGFyZml2ZV9wY2llX29mX21hdGNoW10gPSB7CisrCXsgLmNvbXBhdGlibGUg PSAic3RhcmZpdmUsamg3MTEwLXBjaWUifSwKKysJeyAvKiBzZW50aW5lbCAqLyB9CisrfTsKKytN T0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGFyZml2ZV9wY2llX29mX21hdGNoKTsKKysKKytzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzdGFyZml2ZV9wY2llX2RyaXZlciA9IHsKKysJLmRy aXZlciA9IHsKKysJCS5uYW1lID0gInBjaWUtc3RhcmZpdmUiLAorKwkJLm9mX21hdGNoX3RhYmxl ID0gb2ZfbWF0Y2hfcHRyKHN0YXJmaXZlX3BjaWVfb2ZfbWF0Y2gpLAorKyNpZmRlZiBDT05GSUdf UE1fU0xFRVAKKysJCS5wbSA9ICZzdGFyZml2ZV9wY2llX3BtX29wcywKKysjZW5kaWYKKysJfSwK KysJLnByb2JlID0gc3RhcmZpdmVfcGNpZV9wcm9iZSwKKysJLnJlbW92ZSA9IHN0YXJmaXZlX3Bj aWVfcmVtb3ZlLAorK307CisrbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzdGFyZml2ZV9wY2llX2Ry aXZlcik7CisrCisrTU9EVUxFX0RFU0NSSVBUSU9OKCJTdGFyRml2ZSBKSDcxMTAgUENJZSBob3N0 IGRyaXZlciIpOworK01PRFVMRV9BVVRIT1IoIk1hc29uIEh1byA8bWFzb24uaHVvQHN0YXJmaXZl dGVjaC5jb20+Iik7CisrTU9EVUxFX0FVVEhPUigiS2V2aW4gWGllIDxrZXZpbi54aWVAc3RhcmZp dmV0ZWNoLmNvbT4iKTsKKytNT0RVTEVfQVVUSE9SKCJNaW5kYSBDaGVuIDxtaW5kYS5jaGVuQHN0 YXJmaXZldGVjaC5jb20+Iik7CisrTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworLS0gCisyLjQx LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNjYtY3B1ZnJlcS1k dC1wbGF0ZGV2LUFkZC1KSDcxMTAtU09DLXRvLXRoZS1hbGxvd2xpc3QucGF0Y2ggYi9zcmNwa2dz L2xpbnV4Ni40L3BhdGNoZXMvMDA2Ni1jcHVmcmVxLWR0LXBsYXRkZXYtQWRkLUpINzExMC1TT0Mt dG8tdGhlLWFsbG93bGlzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi42MDQ2ZjMyNWM4MDQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saW51eDYu NC9wYXRjaGVzLzAwNjYtY3B1ZnJlcS1kdC1wbGF0ZGV2LUFkZC1KSDcxMTAtU09DLXRvLXRoZS1h bGxvd2xpc3QucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAzYTBlOGM3ODM2OWRhNTgyMmNl NWY5ZjU3OWViYmYxMjc4YTk5YjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFz b24gSHVvIDxtYXNvbi5odW9Ac3RhcmZpdmV0ZWNoLmNvbT4KK0RhdGU6IEZyaSwgMjEgQXByIDIw MjMgMTE6MTQ6MzAgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA2Ni83Ml0gY3B1ZnJlcTogZHQtcGxh dGRldjogQWRkIEpINzExMCBTT0MgdG8gdGhlIGFsbG93bGlzdAorCitBZGQgdGhlIGNvbXBhdGli bGUgc3RyaW5ncyBmb3Igc3VwcG9ydGluZyB0aGUgZ2VuZXJpYworY3B1ZnJlcSBkcml2ZXIgb24g dGhlIFN0YXJGaXZlIEpINzExMCBTb0MuCisKK1NpZ25lZC1vZmYtYnk6IE1hc29uIEh1byA8bWFz b24uaHVvQHN0YXJmaXZldGVjaC5jb20+CistLS0KKyBkcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS1k dC1wbGF0ZGV2LmMgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEtZHQtcGxhdGRldi5jIGIvZHJpdmVy cy9jcHVmcmVxL2NwdWZyZXEtZHQtcGxhdGRldi5jCitpbmRleCAzMzhjZjZjYzY1OTYuLjE0YWE4 MjgxYzdmNCAxMDA2NDQKKy0tLSBhL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxLWR0LXBsYXRkZXYu YworKysrIGIvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEtZHQtcGxhdGRldi5jCitAQCAtODUsNiAr ODUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhbGxvd2xpc3RbXSBfX2lu aXRjb25zdCA9IHsKKyAJeyAuY29tcGF0aWJsZSA9ICJzdC1lcmljc3Nvbix1OTUwMCIsIH0sCisg CXsgLmNvbXBhdGlibGUgPSAic3QtZXJpY3Nzb24sdTk1NDAiLCB9LAorIAorKwl7IC5jb21wYXRp YmxlID0gInN0YXJmaXZlLGpoNzExMCIsIH0sCisrCisgCXsgLmNvbXBhdGlibGUgPSAidGksb21h cDIiLCB9LAorIAl7IC5jb21wYXRpYmxlID0gInRpLG9tYXA0IiwgfSwKKyAJeyAuY29tcGF0aWJs ZSA9ICJ0aSxvbWFwNSIsIH0sCistLSAKKzIuNDEuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp bnV4Ni40L3BhdGNoZXMvMDA2Ny1NQUlOVEFJTkVSUy1VcGRhdGUtYWxsLVN0YXJGaXZlLWVudHJp ZXMucGF0Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2Ny1NQUlOVEFJTkVSUy1VcGRh dGUtYWxsLVN0YXJGaXZlLWVudHJpZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uODlhYTk0ODVkYjk5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGludXg2LjQvcGF0Y2hlcy8wMDY3LU1BSU5UQUlORVJTLVVwZGF0ZS1hbGwtU3RhckZpdmUtZW50 cmllcy5wYXRjaApAQCAtMCwwICsxLDE2NyBAQAorRnJvbSA1ZDlkMDAzZDMxNTc1ZDA4MjUxZGE2 MzVjYWI0MTljODQ5MmUwMjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSGFsIEZl bmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBUdWUsIDExIEFwciAyMDIzIDE2 OjI1OjU3ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNjcvNzJdIE1BSU5UQUlORVJTOiBVcGRhdGUg YWxsIFN0YXJGaXZlIGVudHJpZXMKKworTWVyZ2UgYWxsIFN0YXJGaXZlIG1haW50YWluZXJzIGNo YW5nZXMgdG9nZXRoZXIuCisKK1NpZ25lZC1vZmYtYnk6IEhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFy Zml2ZXRlY2guY29tPgorLS0tCisgTUFJTlRBSU5FUlMgfCA4OCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4OCBp bnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCitp bmRleCAzNWUxOTU5NDY0MGQuLjEwZDJjNjQ1M2JmZCAxMDA2NDQKKy0tLSBhL01BSU5UQUlORVJT CisrKysgYi9NQUlOVEFJTkVSUworQEAgLTQ0OTIsNiArNDQ5Miw3IEBAIE06CU1heGltZSBSaXBh cmQgPG1yaXBhcmRAa2VybmVsLm9yZz4KKyBMOglsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcK KyBTOglNYWludGFpbmVkCisgRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21l ZGlhL2NkbnMsKi50eHQKKytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVk aWEvY2Rucyxjc2kycngueWFtbAorIEY6CWRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY2FkZW5jZS9j ZG5zLWNzaTIqCisgCisgQ0FERU5DRSBOQU5EIERSSVZFUgorQEAgLTIwMTA5LDYgKzIwMTEwLDIy IEBAIE06CUlvbiBCYWR1bGVzY3UgPGlvbnV0QGJhZHVsYS5vcmc+CisgUzoJT2RkIEZpeGVzCisg RjoJZHJpdmVycy9uZXQvZXRoZXJuZXQvYWRhcHRlYy9zdGFyZmlyZSoKKyAKKytTVEFSRklWRSBD QU1FUkEgU1VCU1lTVEVNIERSSVZFUgorK006CUphY2sgWmh1IDxqYWNrLnpodUBzdGFyZml2ZXRl Y2guY29tPgorK006CUNoYW5naHVhbmcgTGlhbmcgPGNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0 ZWNoLmNvbT4KKytMOglsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKKytTOglNYWludGFpbmVk CisrRjoJRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS9zdGFyZml2ZV9jYW1zcy5yc3QK KytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVkaWEvc3RhcmZpdmUsamg3 MTEwLWNhbXNzLnlhbWwKKytGOglkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0YXJmaXZlLworKwor K1NUQVJGSVZFIENSWVBUTyBEUklWRVIKKytNOglKaWEgSmllIEhvIDxqaWFqaWUuaG9Ac3RhcmZp dmV0ZWNoLmNvbT4KKytNOglXaWxsaWFtIFFpdSA8d2lsbGlhbS5xaXVAc3RhcmZpdmV0ZWNoLmNv bT4KKytTOglTdXBwb3J0ZWQKKytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv Y3J5cHRvL3N0YXJmaXZlKgorK0Y6CWRyaXZlcnMvY3J5cHRvL3N0YXJmaXZlLworKworIFNUQVJG SVZFIERFVklDRVRSRUVTCisgTToJRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5k az4KKyBTOglNYWludGFpbmVkCitAQCAtMjAxMjEsMjAgKzIwMTM4LDY5IEBAIFM6CU1haW50YWlu ZWQKKyBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpo NzExMC1kd21hYy55YW1sCisgRjoJZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv ZHdtYWMtc3RhcmZpdmUuYworIAorK1NUQVJGSVZFIEpINzExMCBEUEhZIFJYIERSSVZFUgorK006 CUphY2sgWmh1IDxqYWNrLnpodUBzdGFyZml2ZXRlY2guY29tPgorK006CUNoYW5naHVhbmcgTGlh bmcgPGNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0ZWNoLmNvbT4KKytTOglTdXBwb3J0ZWQKKytG OglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpoNzExMC1k cGh5LXJ4LnlhbWwKKytGOglkcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktc3RhcmZpdmUtZHBoeS1y eC5jCisrCisgU1RBUkZJVkUgSkg3MTEwIE1NQy9TRC9TRElPIERSSVZFUgorIE06CVdpbGxpYW0g UWl1IDx3aWxsaWFtLnFpdUBzdGFyZml2ZXRlY2guY29tPgorIFM6CVN1cHBvcnRlZAorIEY6CURv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvc3RhcmZpdmUqCisgRjoJZHJpdmVy cy9tbWMvaG9zdC9kd19tbWMtc3RhcmZpdmUuYworIAorK1NUQVJGSVZFIEpINzExMCBQTEwgQ0xP Q0sgRFJJVkVSCisrTToJWGluZ3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKytT OglTdXBwb3J0ZWQKKytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2sv c3RhcmZpdmUsamg3MTEwLXBsbC55YW1sCisrRjoJZHJpdmVycy9jbGsvc3RhcmZpdmUvY2xrLXN0 YXJmaXZlLWpoNzExMC1wbGwuKgorKworK1NUQVJGSVZFIEpINzExMCBQV01EQUMgRFJJVkVSCisr TToJSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CisrTToJWGluZ3l1IFd1IDx4 aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKytTOglTdXBwb3J0ZWQKKytGOglEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3MTEwLXB3bWRhYyoKKytG Oglzb3VuZC9zb2MvY29kZWNzL2poNzExMF9wd21kYWNfdHJhbnNtaXR0ZXIuYworK0Y6CXNvdW5k L3NvYy9zdGFyZml2ZS9qaDcxMTBfcHdtZGFjLmMKKysKKytTVEFSRklWRSBKSDcxMTAgU1lTQ09O CisrTToJV2lsbGlhbSBRaXUgPHdpbGxpYW0ucWl1QHN0YXJmaXZldGVjaC5jb20+CisrTToJWGlu Z3l1IFd1IDx4aW5neXUud3VAc3RhcmZpdmV0ZWNoLmNvbT4KKytTOglTdXBwb3J0ZWQKKytGOglE b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc29jL3N0YXJmaXZlL3N0YXJmaXZlLGpo NzExMC1zeXNjb24ueWFtbAorKworK1NUQVJGSVZFIEpINzExMCBURE0gRFJJVkVSUworK006CVdh bGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorK1M6CU1haW50YWluZWQK KytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc291bmQvc3RhcmZpdmUsamg3 MTEwLXRkbS55YW1sCisrRjoJc291bmQvc29jL3N0YXJmaXZlL2poNzExMC10ZG0uKgorKworIFNU QVJGSVZFIEpINzFYMCBDTE9DSyBEUklWRVJTCisgTToJRW1pbCBSZW5uZXIgQmVydGhpbmcgPGtl cm5lbEBlc21pbC5kaz4KKyBNOglIYWwgRmVuZyA8aGFsLmZlbmdAc3RhcmZpdmV0ZWNoLmNvbT4K KytNOglYaW5neXUgV3UgPHhpbmd5dS53dUBzdGFyZml2ZXRlY2guY29tPgorIFM6CU1haW50YWlu ZWQKKyBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svc3RhcmZpdmUs amg3MSoueWFtbAorIEY6CWRyaXZlcnMvY2xrL3N0YXJmaXZlL2Nsay1zdGFyZml2ZS1qaDcxKgor IEY6CWluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmU/amg3MSouaAorIAorK1NUQVJG SVZFIEpINzFYMCBQQ0lFIEFORCBVU0IgUEhZIERSSVZFUgorK006CUVtaWwgUmVubmVyIEJlcnRo aW5nIDxrZXJuZWxAZXNtaWwuZGs+CisrTToJTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2 ZXRlY2guY29tPgorK1M6CVN1cHBvcnRlZAorK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9waHkvc3RhcmZpdmUsamg3MTEwLXBjaWUtcGh5LnlhbWwKKytGOglEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L3N0YXJmaXZlLGpoNzExMC11c2ItcGh5LnlhbWwK KytGOglkcml2ZXJzL3BoeS9zdGFyZml2ZS9waHktamg3MTEwLXBjaWUuYworK0Y6CWRyaXZlcnMv cGh5L3N0YXJmaXZlL3BoeS1qaDcxMTAtdXNiLmMKKysKKytTVEFSRklWRSBKSDcxWDAgUENJRSBE UklWRVJTCisrTToJTWluZGEgQ2hlbiA8bWluZGEuY2hlbkBzdGFyZml2ZXRlY2guY29tPgorK1M6 CU1haW50YWluZWQKKytGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL3N0 YXJmaXZlLGpoNzExMC1wY2llLnlhbWwKKytGOglkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUt c3RhcmZpdmUuYworKworIFNUQVJGSVZFIEpINzFYMCBQSU5DVFJMIERSSVZFUlMKKyBNOglFbWls IFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgorIE06CUppYW5sb25nIEh1YW5nIDxq aWFubG9uZy5odWFuZ0BzdGFyZml2ZXRlY2guY29tPgorQEAgLTIwMTQ1LDYgKzIwMjExLDEzIEBA IEY6CWRyaXZlcnMvcGluY3RybC9zdGFyZml2ZS9waW5jdHJsLXN0YXJmaXZlLWpoNzEqCisgRjoJ aW5jbHVkZS9kdC1iaW5kaW5ncy9waW5jdHJsL3BpbmN0cmwtc3RhcmZpdmUtamg3MTAwLmgKKyBG OglpbmNsdWRlL2R0LWJpbmRpbmdzL3BpbmN0cmwvc3RhcmZpdmUsamg3MTEwLXBpbmN0cmwuaAor IAorK1NUQVJGSVZFIEpINzFYMCBQV00gRFJJVkVSUworK006CVdpbGxpYW0gUWl1IDx3aWxsaWFt LnFpdUBzdGFyZml2ZXRlY2guY29tPgorK006CUhhbCBGZW5nIDxoYWwuZmVuZ0BzdGFyZml2ZXRl Y2guY29tPgorK1M6CVN1cHBvcnRlZAorK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9wd20vc3RhcmZpdmUsamg3MTEwLXB3bS55YW1sCisrRjoJZHJpdmVycy9wd20vcHdtLXN0 YXJmaXZlLXB0Yy5jCisrCisgU1RBUkZJVkUgSkg3MVgwIFJFU0VUIENPTlRST0xMRVIgRFJJVkVS UworIE06CUVtaWwgUmVubmVyIEJlcnRoaW5nIDxrZXJuZWxAZXNtaWwuZGs+CisgTToJSGFsIEZl bmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitAQCAtMjAxNTMsOCArMjAyMjYsMTUgQEAg RjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzEw MC1yZXNldC55YW1sCisgRjoJZHJpdmVycy9yZXNldC9zdGFyZml2ZS9yZXNldC1zdGFyZml2ZS1q aDcxKgorIEY6CWluY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3RhcmZpdmU/amg3MSouaAorIAor K1NUQVJGSVZFIEpINzFYMCBVU0IgRFJJVkVSUworK006CU1pbmRhIENoZW4gPG1pbmRhLmNoZW5A c3RhcmZpdmV0ZWNoLmNvbT4KKytTOglNYWludGFpbmVkCisrRjoJRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL3VzYi9zdGFyZml2ZSxqaDcxMTAtdXNiLnlhbWwKKytGOglkcml2ZXJz L3VzYi9jZG5zMy9jZG5zMy1zdGFyZml2ZS5jCisrCisgU1RBUkZJVkUgSkg3MVhYIFBNVSBDT05U Uk9MTEVSIERSSVZFUgorIE06CVdhbGtlciBDaGVuIDx3YWxrZXIuY2hlbkBzdGFyZml2ZXRlY2gu Y29tPgorK006CUNoYW5naHVhbmcgTGlhbmcgPGNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0ZWNo LmNvbT4KKyBTOglTdXBwb3J0ZWQKKyBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvcG93ZXIvc3RhcmZpdmUqCisgRjoJZHJpdmVycy9zb2Mvc3RhcmZpdmUvamg3MXh4X3BtdS5j CitAQCAtMjAxNjQsOCArMjAyNDQsMTYgQEAgU1RBUkZJVkUgU09DIERSSVZFUlMKKyBNOglDb25v ciBEb29sZXkgPGNvbm9yQGtlcm5lbC5vcmc+CisgUzoJTWFpbnRhaW5lZAorIFQ6CWdpdCBodHRw czovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9jb25vci9saW51eC5n aXQvCisrRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvYy9zdGFyZml2ZS8K KyBGOglkcml2ZXJzL3NvYy9zdGFyZml2ZS8KKyAKKytTVEFSRklWRSBUSU1FUiBEUklWRVIKKytN OglTYW1pbiBHdW8gPHNhbWluLmd1b0BzdGFyZml2ZXRlY2guY29tPgorK006CVhpbmd5dSBXdSA8 eGluZ3l1Lnd1QHN0YXJmaXZldGVjaC5jb20+CisrUzoJU3VwcG9ydGVkCisrRjoJRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3RpbWVyL3N0YXJmaXZlKgorK0Y6CWRyaXZlcnMvY2xv Y2tzb3VyY2UvdGltZXItc3RhcmZpdmUqCisrCisgU1RBUkZJVkUgVFJORyBEUklWRVIKKyBNOglK aWEgSmllIEhvIDxqaWFqaWUuaG9Ac3RhcmZpdmV0ZWNoLmNvbT4KKyBTOglTdXBwb3J0ZWQKKy0t IAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDY4LXJp c2N2LWR0cy1zdGFyZml2ZS1BZGQtZnVsbC1zdXBwb3J0LWZvci1KSDcxMTAtYW5kLVYucGF0Y2gg Yi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2OC1yaXNjdi1kdHMtc3RhcmZpdmUtQWRkLWZ1 bGwtc3VwcG9ydC1mb3ItSkg3MTEwLWFuZC1WLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjg3NWZlYmNiMDFjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA2OC1yaXNjdi1kdHMtc3RhcmZpdmUtQWRkLWZ1bGwtc3Vw cG9ydC1mb3ItSkg3MTEwLWFuZC1WLnBhdGNoCkBAIC0wLDAgKzEsMTQxMyBAQAorRnJvbSBmZWJi MTk4NmJjYzNiYjRiYzVlZmYxMDkwNjhjYzc2NWY5OWZlMTZkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+CitEYXRlOiBU dWUsIDExIEFwciAyMDIzIDE2OjMxOjE1ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNjgvNzJdIHJp c2N2OiBkdHM6IHN0YXJmaXZlOiBBZGQgZnVsbCBzdXBwb3J0IGZvciBKSDcxMTAgYW5kCisgVmlz aW9uRml2ZSAyIGJvYXJkCisKK01lcmdlIGFsbCBTdGFyRml2ZSBkdHMgcGF0Y2hlcyB0b2dldGhl ci4KKworU2lnbmVkLW9mZi1ieTogSGFsIEZlbmcgPGhhbC5mZW5nQHN0YXJmaXZldGVjaC5jb20+ CistLS0KKyAuLi4vamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4yYS5kdHMgICAgfCAg MTMgKworIC4uLi9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLXYxLjNiLmR0cyAgICB8ICAz MSArCisgLi4uL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaSAgICAgICAgIHwgNDk0 ICsrKysrKysrKysrKysKKyBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNp ICAgICAgfCA2NjEgKysrKysrKysrKysrKysrKystCisgNCBmaWxlcyBjaGFuZ2VkLCAxMTk3IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTItdjEuMmEuZHRzIGIv YXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0y LXYxLjJhLmR0cworaW5kZXggNGFmMzMwMGYzY2YzLi4yMDVhMTNkOGM4YjEgMTAwNjQ0CistLS0g YS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZl LTItdjEuMmEuZHRzCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1z dGFyZml2ZS12aXNpb25maXZlLTItdjEuMmEuZHRzCitAQCAtMTEsMyArMTEsMTYgQEAgLyB7Cisg CW1vZGVsID0gIlN0YXJGaXZlIFZpc2lvbkZpdmUgMiB2MS4yQSI7CisgCWNvbXBhdGlibGUgPSAi c3RhcmZpdmUsdmlzaW9uZml2ZS0yLXYxLjJhIiwgInN0YXJmaXZlLGpoNzExMCI7CisgfTsKKysK KysmZ21hYzEgeworKwlwaHktbW9kZSA9ICJybWlpIjsKKysJYXNzaWduZWQtY2xvY2tzID0gPCZz eXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9UWD4sCisrCQkJICA8JnN5c2NyZyBKSDcxMTBfU1lT Q0xLX0dNQUMxX1JYPjsKKysJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmc3lzY3JnIEpINzEx MF9TWVNDTEtfR01BQzFfUk1JSV9SVFg+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19H TUFDMV9STUlJX1JUWD47CisrfTsKKysKKysmcGh5MCB7CisrCXJ4LWludGVybmFsLWRlbGF5LXBz ID0gPDE5MDA+OworKwl0eC1pbnRlcm5hbC1kZWxheS1wcyA9IDwxMzUwPjsKKyt9OworZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lv bmZpdmUtMi12MS4zYi5kdHMgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1z dGFyZml2ZS12aXNpb25maXZlLTItdjEuM2IuZHRzCitpbmRleCA5MjMwY2MzZDg5NDYuLjAyMjlm N2ExNTRhZCAxMDA2NDQKKy0tLSBhL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3RhcmZpdmUvamg3MTEw LXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMKKysrKyBiL2FyY2gvcmlzY3YvYm9vdC9k dHMvc3RhcmZpdmUvamg3MTEwLXN0YXJmaXZlLXZpc2lvbmZpdmUtMi12MS4zYi5kdHMKK0BAIC0x MSwzICsxMSwzNCBAQCAvIHsKKyAJbW9kZWwgPSAiU3RhckZpdmUgVmlzaW9uRml2ZSAyIHYxLjNC IjsKKyAJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSx2aXNpb25maXZlLTItdjEuM2IiLCAic3RhcmZp dmUsamg3MTEwIjsKKyB9OworKworKyZnbWFjMCB7CisrCXN0YXJmaXZlLHR4LXVzZS1yZ21paS1j bGs7CisrCWFzc2lnbmVkLWNsb2NrcyA9IDwmYW9uY3JnIEpINzExMF9BT05DTEtfR01BQzBfVFg+ OworKwlhc3NpZ25lZC1jbG9jay1wYXJlbnRzID0gPCZhb25jcmcgSkg3MTEwX0FPTkNMS19HTUFD MF9STUlJX1JUWD47CisrfTsKKysKKysmZ21hYzEgeworKwlzdGFyZml2ZSx0eC11c2UtcmdtaWkt Y2xrOworKwlhc3NpZ25lZC1jbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0dNQUMxX1RY PjsKKysJYXNzaWduZWQtY2xvY2stcGFyZW50cyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfR01B QzFfUk1JSV9SVFg+OworK307CisrCisrJnBoeTAgeworKwltb3RvcmNvbW0sdHgtY2xrLWFkai1l bmFibGVkOworKwltb3RvcmNvbW0sdHgtY2xrLTEwMC1pbnZlcnRlZDsKKysJbW90b3Jjb21tLHR4 LWNsay0xMDAwLWludmVydGVkOworKwltb3RvcmNvbW0scngtY2xrLWRyaXZlci1zdHJlbmd0aCA9 IDwweDY+OworKwltb3RvcmNvbW0scngtZGF0YS1kcml2ZXItc3RyZW5ndGggPSA8MHgzPjsKKysJ cngtaW50ZXJuYWwtZGVsYXktcHMgPSA8MTUwMD47CisrCXR4LWludGVybmFsLWRlbGF5LXBzID0g PDE1MDA+OworK307CisrCisrJnBoeTEgeworKwltb3RvcmNvbW0sdHgtY2xrLWFkai1lbmFibGVk OworKwltb3RvcmNvbW0sdHgtY2xrLTEwMC1pbnZlcnRlZDsKKysJbW90b3Jjb21tLHJ4LWNsay1k cml2ZXItc3RyZW5ndGggPSA8MHg2PjsKKysJbW90b3Jjb21tLHJ4LWRhdGEtZHJpdmVyLXN0cmVu Z3RoID0gPDB4Mz47CisrCXJ4LWludGVybmFsLWRlbGF5LXBzID0gPDMwMD47CisrCXR4LWludGVy bmFsLWRlbGF5LXBzID0gPDA+OworK307CitkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290L2R0 cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0yLmR0c2kgYi9hcmNoL3Jpc2N2 L2Jvb3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQoraW5k ZXggMmE2ZDgxNjA5Mjg0Li43OGFiNzk2ZTAxYTggMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC1zdGFyZml2ZS12aXNpb25maXZlLTIuZHRzaQorKysrIGIv YXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtc3RhcmZpdmUtdmlzaW9uZml2ZS0y LmR0c2kKK0BAIC0xMSw2ICsxMSw4IEBACisgCisgLyB7CisgCWFsaWFzZXMgeworKwkJZXRoZXJu ZXQwID0gJmdtYWMwOworKwkJZXRoZXJuZXQxID0gJmdtYWMxOworIAkJaTJjMCA9ICZpMmMwOwor IAkJaTJjMiA9ICZpMmMyOworIAkJaTJjNSA9ICZpMmM1OworQEAgLTMxLDExICszMyw5MiBAQCBt ZW1vcnlANDAwMDAwMDAgeworIAkJcmVnID0gPDB4MCAweDQwMDAwMDAwIDB4MSAweDA+OworIAl9 OworIAorKwlyZXNlcnZlZC1tZW1vcnkgeworKwkJI2FkZHJlc3MtY2VsbHMgPSA8Mj47CisrCQkj c2l6ZS1jZWxscyA9IDwyPjsKKysJCXJhbmdlczsKKysKKysJCWxpbnV4LGNtYSB7CisrCQkJY29t cGF0aWJsZSA9ICJzaGFyZWQtZG1hLXBvb2wiOworKwkJCXJldXNhYmxlOworKwkJCXNpemUgPSA8 MHgwIDB4MjAwMDAwMDA+OworKwkJCWFsaWdubWVudCA9IDwweDAgMHgxMDAwPjsKKysJCQlhbGxv Yy1yYW5nZXMgPSA8MHgwIDB4ODAwMDAwMDAgMHgwIDB4MjAwMDAwMDA+OworKwkJCWxpbnV4LGNt YS1kZWZhdWx0OworKwkJfTsKKysJfTsKKysKKysJdGhlcm1hbC16b25lcyB7CisrCQljcHUtdGhl cm1hbCB7CisrCQkJcG9sbGluZy1kZWxheS1wYXNzaXZlID0gPDI1MD47CisrCQkJcG9sbGluZy1k ZWxheSA9IDwxNTAwMD47CisrCisrCQkJdGhlcm1hbC1zZW5zb3JzID0gPCZzZmN0ZW1wPjsKKysK KysJCQljb29saW5nLW1hcHMgeworKwkJCX07CisrCisrCQkJdHJpcHMgeworKwkJCQljcHVfYWxl cnQwOiBjcHVfYWxlcnQwIHsKKysJCQkJCS8qIG1pbGxpQ2Vsc2l1cyAqLworKwkJCQkJdGVtcGVy YXR1cmUgPSA8NzUwMDA+OworKwkJCQkJaHlzdGVyZXNpcyA9IDwyMDAwPjsKKysJCQkJCXR5cGUg PSAicGFzc2l2ZSI7CisrCQkJCX07CisrCisrCQkJCWNwdV9jcml0OiBjcHVfY3JpdCB7CisrCQkJ CQkvKiBtaWxsaUNlbHNpdXMgKi8KKysJCQkJCXRlbXBlcmF0dXJlID0gPDkwMDAwPjsKKysJCQkJ CWh5c3RlcmVzaXMgPSA8MjAwMD47CisrCQkJCQl0eXBlID0gImNyaXRpY2FsIjsKKysJCQkJfTsK KysJCQl9OworKwkJfTsKKysJfTsKKysKKyAJZ3Bpby1yZXN0YXJ0IHsKKyAJCWNvbXBhdGlibGUg PSAiZ3Bpby1yZXN0YXJ0IjsKKyAJCWdwaW9zID0gPCZzeXNncGlvIDM1IEdQSU9fQUNUSVZFX0hJ R0g+OworIAkJcHJpb3JpdHkgPSA8MjI0PjsKKyAJfTsKKysKKysJcHdtZGFjX2RpdDogcHdtZGFj LWRpdCB7CisrCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wd21kYWMtZGl0IjsKKysJ CSNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisrCX07CisrCisrCXNvdW5kIHsKKysJCWNvbXBhdGli bGUgPSAic2ltcGxlLWF1ZGlvLWNhcmQiOworKwkJc2ltcGxlLWF1ZGlvLWNhcmQsbmFtZSA9ICJT dGFyRml2ZS1QV01EQUMtU291bmQtQ2FyZCI7CisrCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKysJ CSNzaXplLWNlbGxzID0gPDA+OworKworKwkJc2ltcGxlLWF1ZGlvLWNhcmQsZGFpLWxpbmtAMCB7 CisrCQkJcmVnID0gPDA+OworKwkJCWZvcm1hdCA9ICJsZWZ0X2oiOworKwkJCWJpdGNsb2NrLW1h c3RlciA9IDwmc25kY3B1MD47CisrCQkJZnJhbWUtbWFzdGVyID0gPCZzbmRjcHUwPjsKKysJCQlz dGF0dXMgPSAib2theSI7CisrCisrCQkJc25kY3B1MDogY3B1IHsKKysJCQkJc291bmQtZGFpID0g PCZwd21kYWM+OworKwkJCX07CisrCisrCQkJY29kZWMgeworKwkJCQlzb3VuZC1kYWkgPSA8JnB3 bWRhY19kaXQ+OworKwkJCX07CisrCQl9OworKwl9OworKworKwljbGtfZXh0X2NhbWVyYTogY2xr X2V4dF9jYW1lcmEgeworKwkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7CisrCQkjY2xvY2st Y2VsbHMgPSA8MD47CisrCQljbG9jay1mcmVxdWVuY3kgPSA8MjQwMDAwMDA+OworKwl9OworK307 CisrCisrJmR2cF9jbGsgeworKwljbG9jay1mcmVxdWVuY3kgPSA8NzQyNTAwMDA+OworIH07Cisg CisgJmdtYWMwX3JnbWlpX3J4aW4geworQEAgLTU0LDYgKzEzNywxMCBAQCAmZ21hYzFfcm1paV9y ZWZpbiB7CisgCWNsb2NrLWZyZXF1ZW5jeSA9IDw1MDAwMDAwMD47CisgfTsKKyAKKysmaGRtaXR4 MF9waXhlbGNsayB7CisrCWNsb2NrLWZyZXF1ZW5jeSA9IDwyOTcwMDAwMDA+OworK307CisrCisg Jmkyc3J4X2JjbGtfZXh0IHsKKyAJY2xvY2stZnJlcXVlbmN5ID0gPDEyMjg4MDAwPjsKKyB9Owor QEAgLTg2LDYgKzE3MywxMDQgQEAgJnRkbV9leHQgeworIAljbG9jay1mcmVxdWVuY3kgPSA8NDkx NTIwMDA+OworIH07CisgCisrJmNzaTJyeCB7CisrCXN0YXR1cyA9ICJva2F5IjsKKysKKysJYXNz aWduZWQtY2xvY2tzID0gPCZpc3BjcmcgSkg3MTEwX0lTUENMS19WSU5fU1lTPjsKKysJYXNzaWdu ZWQtY2xvY2stcmF0ZXMgPSA8Mjk3MDAwMDAwPjsKKysKKysJcG9ydHMgeworKwkJI2FkZHJlc3Mt Y2VsbHMgPSA8MT47CisrCQkjc2l6ZS1jZWxscyA9IDwwPjsKKysKKysJCXBvcnRAMCB7CisrCQkJ cmVnID0gPDA+OworKworKwkJCWNzaTJyeF9mcm9tX2lteDIxOTogZW5kcG9pbnQgeworKwkJCQly ZW1vdGUtZW5kcG9pbnQgPSA8JmlteDIxOV90b19jc2kycng+OworKwkJCQlidXMtdHlwZSA9IDw0 PjsKKysJCQkJY2xvY2stbGFuZXMgPSA8MD47CisrCQkJCWRhdGEtbGFuZXMgPSA8MSAyPjsKKysJ CQkJc3RhdHVzID0gIm9rYXkiOworKwkJCX07CisrCQl9OworKworKwkJcG9ydEAxIHsKKysJCQly ZWcgPSA8MT47CisrCisrCQkJY3NpMnJ4X3RvX3ZpbjogZW5kcG9pbnQgeworKwkJCQlyZW1vdGUt ZW5kcG9pbnQgPSA8JnZpbl9mcm9tX2NzaTJyeD47CisrCQkJCXN0YXR1cyA9ICJva2F5IjsKKysJ CQl9OworKwkJfTsKKysJfTsKKyt9OworKworKyZkYzgyMDAgeworKwlzdGF0dXMgPSAib2theSI7 CisrCisrCWRjX291dDogcG9ydCB7CisrCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKysJCSNzaXpl LWNlbGxzID0gPDA+OworKwkJZGNfb3V0X2RwaTA6IGVuZHBvaW50QDAgeworKwkJCXJlZyA9IDww PjsKKysJCQlyZW1vdGUtZW5kcG9pbnQgPSA8JmhkbWlfaW5wdXQ+OworKwkJfTsKKysKKysJfTsK Kyt9OworKworKyZkaXNwbGF5IHsKKysJc3RhdHVzID0gIm9rYXkiOworK307CisrCisrJmdtYWMw IHsKKysJcGh5LWhhbmRsZSA9IDwmcGh5MD47CisrCXBoeS1tb2RlID0gInJnbWlpLWlkIjsKKysJ c3RhdHVzID0gIm9rYXkiOworKworKwltZGlvIHsKKysJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owor KwkJI3NpemUtY2VsbHMgPSA8MD47CisrCQljb21wYXRpYmxlID0gInNucHMsZHdtYWMtbWRpbyI7 CisrCisrCQlwaHkwOiBldGhlcm5ldC1waHlAMCB7CisrCQkJcmVnID0gPDA+OworKwkJfTsKKysJ fTsKKyt9OworKworKyZnbWFjMSB7CisrCXBoeS1oYW5kbGUgPSA8JnBoeTE+OworKwlwaHktbW9k ZSA9ICJyZ21paS1pZCI7CisrCXN0YXR1cyA9ICJva2F5IjsKKysKKysJbWRpbyB7CisrCQkjYWRk cmVzcy1jZWxscyA9IDwxPjsKKysJCSNzaXplLWNlbGxzID0gPDA+OworKwkJY29tcGF0aWJsZSA9 ICJzbnBzLGR3bWFjLW1kaW8iOworKworKwkJcGh5MTogZXRoZXJuZXQtcGh5QDEgeworKwkJCXJl ZyA9IDwwPjsKKysJCX07CisrCX07CisrfTsKKysKKysmaGRtaSB7CisrCXN0YXR1cyA9ICJva2F5 IjsKKysJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKysJcGluY3RybC0wID0gPCZoZG1pX3Bp bnM+OworKworKwloZG1pX2luOiBwb3J0IHsKKysJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworKwkJ I3NpemUtY2VsbHMgPSA8MD47CisrCQloZG1pX2lucHV0OiBlbmRwb2ludEAwIHsKKysJCQlyZWcg PSA8MD47CisrCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZkY19vdXRfZHBpMD47CisrCQl9OworKwl9 OworK307CisrCisgJmkyYzAgeworIAljbG9jay1mcmVxdWVuY3kgPSA8MTAwMDAwPjsKKyAJaTJj LXNkYS1ob2xkLXRpbWUtbnMgPSA8MzAwPjsKK0BAIC0xMTQsNiArMjk5LDIzIEBAICZpMmM1IHsK KyAJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKyAJcGluY3RybC0wID0gPCZpMmM1X3BpbnM+ OworIAlzdGF0dXMgPSAib2theSI7CisrCisrCWF4cDE1MDYwOiBwbWljQDM2IHsKKysJCWNvbXBh dGlibGUgPSAieC1wb3dlcnMsYXhwMTUwNjAiOworKwkJcmVnID0gPDB4MzY+OworKwkJaW50ZXJy dXB0cyA9IDwwPjsKKysJCWludGVycnVwdC1jb250cm9sbGVyOworKwkJI2ludGVycnVwdC1jZWxs cyA9IDwxPjsKKysKKysJCXJlZ3VsYXRvcnMgeworKwkJCXZkZF9jcHU6IGRjZGMyIHsKKysJCQkJ cmVndWxhdG9yLWFsd2F5cy1vbjsKKysJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8NTAw MDAwPjsKKysJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTU0MDAwMD47CisrCQkJCXJl Z3VsYXRvci1uYW1lID0gInZkZC1jcHUiOworKwkJCX07CisrCQl9OworKwl9OworIH07CisgCisg JmkyYzYgeworQEAgLTEyNCw5ICszMjYsMTY0IEBAICZpMmM2IHsKKyAJcGluY3RybC1uYW1lcyA9 ICJkZWZhdWx0IjsKKyAJcGluY3RybC0wID0gPCZpMmM2X3BpbnM+OworIAlzdGF0dXMgPSAib2th eSI7CisrCisrCWlteDIxOTogaW14MjE5QDEwIHsKKysJCWNvbXBhdGlibGUgPSAic29ueSxpbXgy MTkiOworKwkJcmVnID0gPDB4MTA+OworKwkJY2xvY2tzID0gPCZjbGtfZXh0X2NhbWVyYT47Cisr CQlyZXNldC1ncGlvID0gPCZzeXNncGlvIDE4IDA+OworKwkJcm90YXRpb24gPSA8MD47CisrCQlv cmllbnRhdGlvbiA9IDwxPjsKKysKKysJCXBvcnQgeworKwkJCWlteDIxOV90b19jc2kycng6IGVu ZHBvaW50IHsKKysJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZjc2kycnhfZnJvbV9pbXgyMTk+Owor KwkJCQlidXMtdHlwZSA9IDw0PjsKKysJCQkJY2xvY2stbGFuZXMgPSA8MD47CisrCQkJCWRhdGEt bGFuZXMgPSA8MSAyPjsKKysJCQkJbGluay1mcmVxdWVuY2llcyA9IC9iaXRzLyA2NCA8NDU2MDAw MDAwPjsKKysJCQl9OworKwkJfTsKKysJfTsKKyt9OworKworKyZtbWMwIHsKKysJbWF4LWZyZXF1 ZW5jeSA9IDwxMDAwMDAwMDA+OworKwlidXMtd2lkdGggPSA8OD47CisrCWNhcC1tbWMtaGlnaHNw ZWVkOworKwltbWMtZGRyLTFfOHY7CisrCW1tYy1oczIwMC0xXzh2OworKwlub24tcmVtb3ZhYmxl OworKwljYXAtbW1jLWh3LXJlc2V0OworKwlwb3N0LXBvd2VyLW9uLWRlbGF5LW1zID0gPDIwMD47 CisrCXN0YXR1cyA9ICJva2F5IjsKKyt9OworKworKyZtbWMxIHsKKysJbWF4LWZyZXF1ZW5jeSA9 IDwxMDAwMDAwMDA+OworKwlidXMtd2lkdGggPSA8ND47CisrCW5vLXNkaW87CisrCW5vLW1tYzsK KysJYnJva2VuLWNkOworKwljYXAtc2QtaGlnaHNwZWVkOworKwlwb3N0LXBvd2VyLW9uLWRlbGF5 LW1zID0gPDIwMD47CisrCXN0YXR1cyA9ICJva2F5IjsKKyt9OworKworKyZwY2llMCB7CisrCXBp bmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisrCXJlc2V0LWdwaW9zID0gPCZzeXNncGlvIDI2IEdQ SU9fQUNUSVZFX0xPVz47CisrCXBoeXMgPSA8JnBjaWVwaHkwPjsKKysJc3RhdHVzID0gIm9rYXki OworK307CisrCisrJnBjaWUxIHsKKysJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKysJcmVz ZXQtZ3Bpb3MgPSA8JnN5c2dwaW8gMjggR1BJT19BQ1RJVkVfTE9XPjsKKysJcGh5cyA9IDwmcGNp ZXBoeTE+OworKwlzdGF0dXMgPSAib2theSI7CisrfTsKKysKKysmcHRjIHsKKysJcGluY3RybC1u YW1lcyA9ICJkZWZhdWx0IjsKKysJcGluY3RybC0wID0gPCZwd21fcGlucz47CisrCXN0YXR1cyA9 ICJva2F5IjsKKyt9OworKworKyZwd21kYWMgeworKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQi OworKwlwaW5jdHJsLTAgPSA8JnB3bWRhY19waW5zPjsKKysJc3RhdHVzID0gIm9rYXkiOworK307 CisrCisrJnFzcGkgeworKwkjYWRkcmVzcy1jZWxscyA9IDwxPjsKKysJI3NpemUtY2VsbHMgPSA8 MD47CisrCisrCW5vcl9mbGFzaDogZmxhc2hAMCB7CisrCQljb21wYXRpYmxlID0gImplZGVjLHNw aS1ub3IiOworKwkJcmVnPTwwPjsKKysJCWNkbnMscmVhZC1kZWxheSA9IDw1PjsKKysJCXNwaS1t YXgtZnJlcXVlbmN5ID0gPDEyMDAwMDAwPjsKKysJCWNkbnMsdHNoc2wtbnMgPSA8MT47CisrCQlj ZG5zLHRzZDJkLW5zID0gPDE+OworKwkJY2Rucyx0Y2hzaC1ucyA9IDwxPjsKKysJCWNkbnMsdHNs Y2gtbnMgPSA8MT47CisrCisrCQlwYXJ0aXRpb25zIHsKKysJCQljb21wYXRpYmxlID0gImZpeGVk LXBhcnRpdGlvbnMiOworKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworKwkJCSNzaXplLWNlbGxz ID0gPDE+OworKworKwkJCXNwbEAwIHsKKysJCQkJcmVnID0gPDB4MCAweDIwMDAwPjsKKysJCQl9 OworKwkJCXVib290QDEwMDAwMCB7CisrCQkJCXJlZyA9IDwweDEwMDAwMCAweDMwMDAwMD47Cisr CQkJfTsKKysJCQlkYXRhQGYwMDAwMCB7CisrCQkJCXJlZyA9IDwweGYwMDAwMCAweDEwMDAwMD47 CisrCQkJfTsKKysJCX07CisrCX07CisrfTsKKysKKysmc3RmY2Ftc3MgeworKwlzdGF0dXMgPSAi b2theSI7CisrCisrCXBvcnRzIHsKKysJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworKwkJI3NpemUt Y2VsbHMgPSA8MD47CisrCisrCQlwb3J0QDEgeworKwkJCXJlZyA9IDwxPjsKKysJCQkjYWRkcmVz cy1jZWxscyA9IDwxPjsKKysJCQkjc2l6ZS1jZWxscyA9IDwwPjsKKysKKysJCQl2aW5fZnJvbV9j c2kycng6IGVuZHBvaW50QDEgeworKwkJCQlyZWcgPSA8MT47CisrCQkJCXJlbW90ZS1lbmRwb2lu dCA9IDwmY3NpMnJ4X3RvX3Zpbj47CisrCQkJCXN0YXR1cyA9ICJva2F5IjsKKysJCQl9OworKwkJ fTsKKysJfTsKKyB9OworIAorICZzeXNncGlvIHsKKysJaGRtaV9waW5zOiBoZG1pLTAgeworKwkJ aGRtaS1zY2wtcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoMCwgR1BPVVRfU1lTX0hETUlf RERDX1NDTCwKKysJCQkJCSAgICAgR1BPRU5fU1lTX0hETUlfRERDX1NDTCwKKysJCQkJCSAgICAg R1BJX1NZU19IRE1JX0REQ19TQ0wpPjsKKysJCQlpbnB1dC1lbmFibGU7CisrCQkJYmlhcy1wdWxs LXVwOworKwkJfTsKKysKKysJCWhkbWktc2RhLXBpbnMgeworKwkJCXBpbm11eCA9IDxHUElPTVVY KDEsIEdQT1VUX1NZU19IRE1JX0REQ19TREEsCisrCQkJCQkgICAgIEdQT0VOX1NZU19IRE1JX0RE Q19TREEsCisrCQkJCQkgICAgIEdQSV9TWVNfSERNSV9ERENfU0RBKT47CisrCQkJaW5wdXQtZW5h YmxlOworKwkJCWJpYXMtcHVsbC11cDsKKysJCX07CisrCisrCQloZG1pLWNlYy1waW5zIHsKKysJ CQlwaW5tdXggPSA8R1BJT01VWCgxNCwgR1BPVVRfU1lTX0hETUlfQ0VDX1NEQSwKKysJCQkJCSAg ICAgR1BPRU5fU1lTX0hETUlfQ0VDX1NEQSwKKysJCQkJCSAgICAgR1BJX1NZU19IRE1JX0NFQ19T REEpPjsKKysJCQlpbnB1dC1lbmFibGU7CisrCQkJYmlhcy1wdWxsLXVwOworKwkJfTsKKysKKysJ CWhkbWktaHBkLXBpbnMgeworKwkJCXBpbm11eCA9IDxHUElPTVVYKDE1LCBHUE9VVF9ISUdILAor KwkJCQkJICAgICBHUE9FTl9FTkFCTEUsCisrCQkJCQkgICAgIEdQSV9TWVNfSERNSV9IUEQpPjsK KysJCQlpbnB1dC1lbmFibGU7CisrCQkJYmlhcy1kaXNhYmxlOyAvKiBleHRlcm5hbCBwdWxsLXVw ICovCisrCQl9OworKwl9OworKworIAlpMmMwX3BpbnM6IGkyYzAtMCB7CisgCQlpMmMtcGlucyB7 CisgCQkJcGlubXV4ID0gPEdQSU9NVVgoNTcsIEdQT1VUX0xPVywKK0BAIC0xODMsNiArNTQwLDEx NiBAQCBHUE9FTl9TWVNfSTJDNl9EQVRBLAorIAkJfTsKKyAJfTsKKyAKKysJcGNpZTBfd2FrZV9k ZWZhdWx0OiBwY2llMF93YWtlX2RlZmF1bHQgeworKwkJd2FrZS1waW5zIHsKKysJCQlwaW5tdXgg PSA8R1BJT01VWCgzMiwgR1BPVVRfSElHSCwgR1BPRU5fRU5BQkxFLCBHUElfTk9ORSk+OworKwkJ CWJpYXMtZGlzYWJsZTsKKysJCQlkcml2ZS1zdHJlbmd0aCA9IDwyPjsKKysJCQlpbnB1dC1lbmFi bGU7CisrCQkJaW5wdXQtc2NobWl0dC1kaXNhYmxlOworKwkJCXNsZXctcmF0ZSA9IDwwPjsKKysJ CX07CisrCX07CisrCisrCXBjaWUwX2Nsa3JlcV9kZWZhdWx0OiBwY2llMF9jbGtyZXFfZGVmYXVs dCB7CisrCQljbGtyZXEtcGlucyB7CisrCQkJYmlhcy1kaXNhYmxlOworKwkJCXBpbm11eCA9IDxH UElPTVVYKDI3LCBHUE9VVF9ISUdILCBHUE9FTl9FTkFCTEUsIEdQSV9OT05FKT47CisrCQkJZHJp dmUtc3RyZW5ndGggPSA8Mj47CisrCQkJaW5wdXQtZW5hYmxlOworKwkJCWlucHV0LXNjaG1pdHQt ZGlzYWJsZTsKKysJCQlzbGV3LXJhdGUgPSA8MD47CisrCQl9OworKwl9OworKworKwlwY2llMV93 YWtlX2RlZmF1bHQ6IHBjaWUxX3dha2VfZGVmYXVsdCB7CisrCQl3YWtlLXBpbnMgeworKwkJCWJp YXMtZGlzYWJsZTsKKysJCQlwaW5tdXggPSA8R1BJT01VWCgyMSwgR1BPVVRfSElHSCwgR1BPRU5f RU5BQkxFLCBHUElfTk9ORSk+OworKwkJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworKwkJCWlucHV0 LWVuYWJsZTsKKysJCQlpbnB1dC1zY2htaXR0LWRpc2FibGU7CisrCQkJc2xldy1yYXRlID0gPDA+ OworKwkJfTsKKysJfTsKKysKKysJcGNpZTFfY2xrcmVxX2RlZmF1bHQ6IHBjaWUxX2Nsa3JlcV9k ZWZhdWx0IHsKKysJCWNsa3JlcS1waW5zIHsKKysJCQliaWFzLWRpc2FibGU7CisrCQkJcGlubXV4 ID0gPEdQSU9NVVgoMjksIEdQT1VUX0hJR0gsIEdQT0VOX0VOQUJMRSwgR1BJX05PTkUpPjsKKysJ CQlkcml2ZS1zdHJlbmd0aCA9IDwyPjsKKysJCQlpbnB1dC1lbmFibGU7CisrCQkJaW5wdXQtc2No bWl0dC1kaXNhYmxlOworKwkJCXNsZXctcmF0ZSA9IDwwPjsKKysJCX07CisrCX07CisrCisrCXB3 bV9waW5zOiBwd20tMCB7CisrCQlwd20tcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoNDYs IEdQT1VUX1NZU19QV01fQ0hBTk5FTDAsCisrCQkJCQkgICAgICBHUE9FTl9TWVNfUFdNMF9DSEFO TkVMMCwKKysJCQkJCSAgICAgIEdQSV9OT05FKT4sCisrCQkJCSA8R1BJT01VWCg1OSwgR1BPVVRf U1lTX1BXTV9DSEFOTkVMMSwKKysJCQkJCSAgICAgIEdQT0VOX1NZU19QV00wX0NIQU5ORUwxLAor KwkJCQkJICAgICAgR1BJX05PTkUpPjsKKysJCQliaWFzLWRpc2FibGU7CisrCQkJZHJpdmUtc3Ry ZW5ndGggPSA8MTI+OworKwkJCWlucHV0LWRpc2FibGU7CisrCQkJaW5wdXQtc2NobWl0dC1kaXNh YmxlOworKwkJCXNsZXctcmF0ZSA9IDwwPjsKKysJCX07CisrCX07CisrCisrCXB3bWRhY19waW5z OiBwd21kYWMtMCB7CisrCQlwd21kYWMtcGlucyB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoMzMs IEdQT1VUX1NZU19QV01EQUNfTEVGVCwKKysJCQkJCSAgICAgIEdQT0VOX0VOQUJMRSwKKysJCQkJ CSAgICAgIEdQSV9OT05FKT4sCisrCQkJCSA8R1BJT01VWCgzNCwgR1BPVVRfU1lTX1BXTURBQ19S SUdIVCwKKysJCQkJCSAgICAgIEdQT0VOX0VOQUJMRSwKKysJCQkJCSAgICAgIEdQSV9OT05FKT47 CisrCQkJYmlhcy1kaXNhYmxlOworKwkJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworKwkJCWlucHV0 LWRpc2FibGU7CisrCQkJaW5wdXQtc2NobWl0dC1kaXNhYmxlOworKwkJCXNsZXctcmF0ZSA9IDww PjsKKysJCX07CisrCX07CisrCisrCXRkbTBfcGluczogdGRtMC1waW5zIHsKKysJCXRkbTAtcGlu cy10eCB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoNDQsIEdQT1VUX1NZU19URE1fVFhELAorKwkJ CQkJICAgICAgR1BPRU5fRU5BQkxFLAorKwkJCQkJICAgICAgR1BJX05PTkUpPjsKKysJCQliaWFz LXB1bGwtdXA7CisrCQkJZHJpdmUtc3RyZW5ndGggPSA8Mj47CisrCQkJaW5wdXQtZGlzYWJsZTsK KysJCQlpbnB1dC1zY2htaXR0LWRpc2FibGU7CisrCQkJc2xldy1yYXRlID0gPDA+OworKwkJfTsK KysKKysJCXRkbTAtcGlucy1yeCB7CisrCQkJcGlubXV4ID0gPEdQSU9NVVgoNjEsIEdQT1VUX0hJ R0gsCisrCQkJCQkgICAgICBHUE9FTl9ESVNBQkxFLAorKwkJCQkJICAgICAgR1BJX1NZU19URE1f UlhEKT47CisrCQkJaW5wdXQtZW5hYmxlOworKwkJfTsKKysKKysJCXRkbTAtcGlucy1zeW5jIHsK KysJCQlwaW5tdXggPSA8R1BJT01VWCg2MywgR1BPVVRfSElHSCwKKysJCQkJCSAgICAgIEdQT0VO X0RJU0FCTEUsCisrCQkJCQkgICAgICBHUElfU1lTX1RETV9TWU5DKT47CisrCQkJaW5wdXQtZW5h YmxlOworKwkJfTsKKysKKysJCXRkbTAtcGlucy1wY21jbGsgeworKwkJCXBpbm11eCA9IDxHUElP TVVYKDM4LCBHUE9VVF9ISUdILAorKwkJCQkJICAgICAgR1BPRU5fRElTQUJMRSwKKysJCQkJCSAg ICAgIEdQSV9TWVNfVERNX0NMSyk+OworKwkJCWlucHV0LWVuYWJsZTsKKysJCX07CisrCX07Cisr CisgCXVhcnQwX3BpbnM6IHVhcnQwLTAgeworIAkJdHgtcGlucyB7CisgCQkJcGlubXV4ID0gPEdQ SU9NVVgoNSwgR1BPVVRfU1lTX1VBUlQwX1RYLAorQEAgLTIwOCw4ICs2NzUsMzUgQEAgR1BPRU5f RElTQUJMRSwKKyAJfTsKKyB9OworIAorKyZ0ZG0geworKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1 bHQiOworKwlwaW5jdHJsLTAgPSA8JnRkbTBfcGlucz47CisrCXN0YXR1cyA9ICJva2F5IjsKKyt9 OworKworICZ1YXJ0MCB7CisgCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisgCXBpbmN0cmwt MCA9IDwmdWFydDBfcGlucz47CisgCXN0YXR1cyA9ICJva2F5IjsKKyB9OworKworKyZ1c2IwIHsK KysJZHJfbW9kZSA9ICJwZXJpcGhlcmFsIjsKKysJc3RhdHVzID0gIm9rYXkiOworK307CisrCisr JlU3NF8xIHsKKysJY3B1LXN1cHBseSA9IDwmdmRkX2NwdT47CisrfTsKKysKKysmVTc0XzIgewor KwljcHUtc3VwcGx5ID0gPCZ2ZGRfY3B1PjsKKyt9OworKworKyZVNzRfMyB7CisrCWNwdS1zdXBw bHkgPSA8JnZkZF9jcHU+OworK307CisrCisrJlU3NF80IHsKKysJY3B1LXN1cHBseSA9IDwmdmRk X2NwdT47CisrfTsKK2RpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0YXJmaXZlL2po NzExMC5kdHNpIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaQoraW5k ZXggNGM1ZmRiOTA1ZGE4Li40ZDMzZGQ4NWI5YWYgMTAwNjQ0CistLS0gYS9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC5kdHNpCisrKysgYi9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3N0 YXJmaXZlL2poNzExMC5kdHNpCitAQCAtNiw2ICs2LDcgQEAKKyAKKyAvZHRzLXYxLzsKKyAjaW5j bHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svc3RhcmZpdmUsamg3MTEwLWNyZy5oPgorKyNpbmNsdWRl IDxkdC1iaW5kaW5ncy9wb3dlci9zdGFyZml2ZSxqaDcxMTAtcG11Lmg+CisgI2luY2x1ZGUgPGR0 LWJpbmRpbmdzL3Jlc2V0L3N0YXJmaXZlLGpoNzExMC1jcmcuaD4KKyAKKyAvIHsKK0BAIC01Myw2 ICs1NCw5IEBAIFU3NF8xOiBjcHVAMSB7CisgCQkJbmV4dC1sZXZlbC1jYWNoZSA9IDwmY2NhY2hl PjsKKyAJCQlyaXNjdixpc2EgPSAicnY2NGltYWZkY196YmFfemJiIjsKKyAJCQl0bGItc3BsaXQ7 CisrCQkJb3BlcmF0aW5nLXBvaW50cy12MiA9IDwmY3B1X29wcD47CisrCQkJY2xvY2tzID0gPCZz eXNjcmcgSkg3MTEwX1NZU0NMS19DUFVfQ09SRT47CisrCQkJY2xvY2stbmFtZXMgPSAiY3B1IjsK KyAKKyAJCQljcHUxX2ludGM6IGludGVycnVwdC1jb250cm9sbGVyIHsKKyAJCQkJY29tcGF0aWJs ZSA9ICJyaXNjdixjcHUtaW50YyI7CitAQCAtNzksNiArODMsOSBAQCBVNzRfMjogY3B1QDIgewor IAkJCW5leHQtbGV2ZWwtY2FjaGUgPSA8JmNjYWNoZT47CisgCQkJcmlzY3YsaXNhID0gInJ2NjRp bWFmZGNfemJhX3piYiI7CisgCQkJdGxiLXNwbGl0OworKwkJCW9wZXJhdGluZy1wb2ludHMtdjIg PSA8JmNwdV9vcHA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfQ1BVX0NP UkU+OworKwkJCWNsb2NrLW5hbWVzID0gImNwdSI7CisgCisgCQkJY3B1Ml9pbnRjOiBpbnRlcnJ1 cHQtY29udHJvbGxlciB7CisgCQkJCWNvbXBhdGlibGUgPSAicmlzY3YsY3B1LWludGMiOworQEAg LTEwNSw2ICsxMTIsOSBAQCBVNzRfMzogY3B1QDMgeworIAkJCW5leHQtbGV2ZWwtY2FjaGUgPSA8 JmNjYWNoZT47CisgCQkJcmlzY3YsaXNhID0gInJ2NjRpbWFmZGNfemJhX3piYiI7CisgCQkJdGxi LXNwbGl0OworKwkJCW9wZXJhdGluZy1wb2ludHMtdjIgPSA8JmNwdV9vcHA+OworKwkJCWNsb2Nr cyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfQ1BVX0NPUkU+OworKwkJCWNsb2NrLW5hbWVzID0g ImNwdSI7CisgCisgCQkJY3B1M19pbnRjOiBpbnRlcnJ1cHQtY29udHJvbGxlciB7CisgCQkJCWNv bXBhdGlibGUgPSAicmlzY3YsY3B1LWludGMiOworQEAgLTEzMSw2ICsxNDEsOSBAQCBVNzRfNDog Y3B1QDQgeworIAkJCW5leHQtbGV2ZWwtY2FjaGUgPSA8JmNjYWNoZT47CisgCQkJcmlzY3YsaXNh ID0gInJ2NjRpbWFmZGNfemJhX3piYiI7CisgCQkJdGxiLXNwbGl0OworKwkJCW9wZXJhdGluZy1w b2ludHMtdjIgPSA8JmNwdV9vcHA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVND TEtfQ1BVX0NPUkU+OworKwkJCWNsb2NrLW5hbWVzID0gImNwdSI7CisgCisgCQkJY3B1NF9pbnRj OiBpbnRlcnJ1cHQtY29udHJvbGxlciB7CisgCQkJCWNvbXBhdGlibGUgPSAicmlzY3YsY3B1LWlu dGMiOworQEAgLTE2NCw2ICsxNzcsMzMgQEAgY29yZTQgeworIAkJfTsKKyAJfTsKKyAKKysJY3B1 X29wcDogb3BwLXRhYmxlLTAgeworKwkJCWNvbXBhdGlibGUgPSAib3BlcmF0aW5nLXBvaW50cy12 MiI7CisrCQkJb3BwLXNoYXJlZDsKKysJCQlvcHAtMzc1MDAwMDAwIHsKKysJCQkJCW9wcC1oeiA9 IC9iaXRzLyA2NCA8Mzc1MDAwMDAwPjsKKysJCQkJCW9wcC1taWNyb3ZvbHQgPSA8ODAwMDAwPjsK KysJCQl9OworKwkJCW9wcC01MDAwMDAwMDAgeworKwkJCQkJb3BwLWh6ID0gL2JpdHMvIDY0IDw1 MDAwMDAwMDA+OworKwkJCQkJb3BwLW1pY3Jvdm9sdCA9IDw4MDAwMDA+OworKwkJCX07CisrCQkJ b3BwLTc1MDAwMDAwMCB7CisrCQkJCQlvcHAtaHogPSAvYml0cy8gNjQgPDc1MDAwMDAwMD47Cisr CQkJCQlvcHAtbWljcm92b2x0ID0gPDgwMDAwMD47CisrCQkJfTsKKysJCQlvcHAtMTUwMDAwMDAw MCB7CisrCQkJCQlvcHAtaHogPSAvYml0cy8gNjQgPDE1MDAwMDAwMDA+OworKwkJCQkJb3BwLW1p Y3Jvdm9sdCA9IDwxMDQwMDAwPjsKKysJCQl9OworKwl9OworKworKwlkdnBfY2xrOiBkdnAtY2xv Y2sgeworKwkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7CisrCQljbG9jay1vdXRwdXQtbmFt ZXMgPSAiZHZwX2NsayI7CisrCQkjY2xvY2stY2VsbHMgPSA8MD47CisrCX07CisrCisgCWdtYWMw X3JnbWlpX3J4aW46IGdtYWMwLXJnbWlpLXJ4aW4tY2xvY2sgeworIAkJY29tcGF0aWJsZSA9ICJm aXhlZC1jbG9jayI7CisgCQljbG9jay1vdXRwdXQtbmFtZXMgPSAiZ21hYzBfcmdtaWlfcnhpbiI7 CitAQCAtMTg4LDYgKzIyOCwxMiBAQCBnbWFjMV9ybWlpX3JlZmluOiBnbWFjMS1ybWlpLXJlZmlu LWNsb2NrIHsKKyAJCSNjbG9jay1jZWxscyA9IDwwPjsKKyAJfTsKKyAKKysJaGRtaXR4MF9waXhl bGNsazogaGRtaXR4MC1waXhlbC1jbG9jayB7CisrCQljb21wYXRpYmxlID0gImZpeGVkLWNsb2Nr IjsKKysJCWNsb2NrLW91dHB1dC1uYW1lcyA9ICJoZG1pdHgwX3BpeGVsY2xrIjsKKysJCSNjbG9j ay1jZWxscyA9IDwwPjsKKysJfTsKKysKKyAJaTJzcnhfYmNsa19leHQ6IGkyc3J4LWJjbGstZXh0 LWNsb2NrIHsKKyAJCWNvbXBhdGlibGUgPSAiZml4ZWQtY2xvY2siOworIAkJY2xvY2stb3V0cHV0 LW5hbWVzID0gImkyc3J4X2JjbGtfZXh0IjsKK0BAIC0yMzYsNiArMjgyLDE4IEBAIHRkbV9leHQ6 IHRkbS1leHQtY2xvY2sgeworIAkJI2Nsb2NrLWNlbGxzID0gPDA+OworIAl9OworIAorKwlkaXNw bGF5OiBkaXNwbGF5LXN1YnN5c3RlbSB7CisrCQljb21wYXRpYmxlID0gInZlcmlzaWxpY29uLGRp c3BsYXktc3Vic3lzdGVtIjsKKysJCXBvcnRzID0gPCZkY19vdXQ+OworKwl9OworKworKwlzdG1t YWNfYXhpX3NldHVwOiBzdG1tYWMtYXhpLWNvbmZpZyB7CisrCQlzbnBzLGxwaV9lbjsKKysJCXNu cHMsd3Jfb3NyX2xtdCA9IDw0PjsKKysJCXNucHMscmRfb3NyX2xtdCA9IDw0PjsKKysJCXNucHMs YmxlbiA9IDwyNTYgMTI4IDY0IDMyIDAgMCAwPjsKKysJfTsKKysKKyAJc29jIHsKKyAJCWNvbXBh dGlibGUgPSAic2ltcGxlLWJ1cyI7CisgCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZwbGljPjsKK0BA IC0zNTMsNiArNDExLDExNyBAQCBpMmMyOiBpMmNAMTAwNTAwMDAgeworIAkJCXN0YXR1cyA9ICJk aXNhYmxlZCI7CisgCQl9OworIAorKwkJdGRtOiB0ZG1AMTAwOTAwMDAgeworKwkJCWNvbXBhdGli bGUgPSAic3RhcmZpdmUsamg3MTEwLXRkbSI7CisrCQkJcmVnID0gPDB4MCAweDEwMDkwMDAwIDB4 MCAweDEwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVERNX0FIQj4s CisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1RETV9BUEI+LAorKwkJCQkgPCZzeXNjcmcg Skg3MTEwX1NZU0NMS19URE1fSU5URVJOQUw+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NM S19URE1fVERNPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfTUNMS19JTk5FUj4sCisr CQkJCSA8JnRkbV9leHQ+OworKwkJCWNsb2NrLW5hbWVzID0gInRkbV9haGIiLCAidGRtX2FwYiIs CisrCQkJCSAgICAgICJ0ZG1faW50ZXJuYWwiLCAidGRtIiwKKysJCQkJICAgICAgIm1jbGtfaW5u ZXIiLCAidGRtX2V4dCI7CisrCQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9URE1f QUhCPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVERNX0FQQj4sCisrCQkJCSA8JnN5 c2NyZyBKSDcxMTBfU1lTUlNUX1RETV9DT1JFPjsKKysJCQlkbWFzID0gPCZkbWEgMjA+LCA8JmRt YSAyMT47CisrCQkJZG1hLW5hbWVzID0gInJ4IiwidHgiOworKwkJCSNzb3VuZC1kYWktY2VsbHMg PSA8MD47CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysJCX07CisrCisrCQlwd21kYWM6IHB3 bWRhY0AxMDBiMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcHdtZGFj IjsKKysJCQlyZWcgPSA8MHgwIDB4MTAwYjAwMDAgMHgwIDB4MTAwMD47CisrCQkJY2xvY2tzID0g PCZzeXNjcmcgSkg3MTEwX1NZU0NMS19QV01EQUNfQVBCPiwKKysJCQkJIDwmc3lzY3JnIEpINzEx MF9TWVNDTEtfUFdNREFDX0NPUkU+OworKwkJCWNsb2NrLW5hbWVzID0gImFwYiIsICJjb3JlIjsK KysJCQlyZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1BXTURBQ19BUEI+OworKwkJCWRt YXMgPSA8JmRtYSAyMj47CisrCQkJZG1hLW5hbWVzID0gInR4IjsKKysJCQkjc291bmQtZGFpLWNl bGxzID0gPDA+OworKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7CisrCQl9OworKworKwkJdXNiMDog dXNiQDEwMTAwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC11c2IiOwor KwkJCXJhbmdlcyA9IDwweDAgMHgwIDB4MTAxMDAwMDAgMHgxMDAwMDA+OworKwkJCSNhZGRyZXNz LWNlbGxzID0gPDE+OworKwkJCSNzaXplLWNlbGxzID0gPDE+OworKwkJCXN0YXJmaXZlLHN0Zy1z eXNjb24gPSA8JnN0Z19zeXNjb24gMHg0PjsKKysJCQljbG9ja3MgPSA8JnN0Z2NyZyBKSDcxMTBf U1RHQ0xLX1VTQjBfTFBNPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfVVNCMF9TVEI+ LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR0NMS19VU0IwX0FQQj4sCisrCQkJCSA8JnN0Z2Ny ZyBKSDcxMTBfU1RHQ0xLX1VTQjBfQVhJPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtf VVNCMF9VVE1JX0FQQj47CisrCQkJY2xvY2stbmFtZXMgPSAibHBtIiwgInN0YiIsICJhcGIiLCAi YXhpIiwgInV0bWlfYXBiIjsKKysJCQlyZXNldHMgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1VT QjBfUFdSVVA+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9VU0IwX0FQQj4sCisrCQkJ CSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1VTQjBfQVhJPiwKKysJCQkJIDwmc3RnY3JnIEpINzEx MF9TVEdSU1RfVVNCMF9VVE1JX0FQQj47CisrCQkJcmVzZXQtbmFtZXMgPSAicHdydXAiLCAiYXBi IiwgImF4aSIsICJ1dG1pX2FwYiI7CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysKKysJCQl1 c2JfY2RuczM6IHVzYkAwIHsKKysJCQkJY29tcGF0aWJsZSA9ICJjZG5zLHVzYjMiOworKwkJCQly ZWcgPSA8MHgwIDB4MTAwMDA+LAorKwkJCQkgICAgICA8MHgxMDAwMCAweDEwMDAwPiwKKysJCQkJ ICAgICAgPDB4MjAwMDAgMHgxMDAwMD47CisrCQkJCXJlZy1uYW1lcyA9ICJvdGciLCAieGhjaSIs ICJkZXYiOworKwkJCQlpbnRlcnJ1cHRzID0gPDEwMD4sIDwxMDg+LCA8MTEwPjsKKysJCQkJaW50 ZXJydXB0LW5hbWVzID0gImhvc3QiLCAicGVyaXBoZXJhbCIsICJvdGciOworKwkJCQlwaHlzID0g PCZ1c2JwaHkwPjsKKysJCQkJcGh5LW5hbWVzID0gImNkbnMzLHVzYjItcGh5IjsKKysJCQl9Owor KwkJfTsKKysKKysJCXVzYnBoeTA6IHBoeUAxMDIwMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJz dGFyZml2ZSxqaDcxMTAtdXNiLXBoeSI7CisrCQkJcmVnID0gPDB4MCAweDEwMjAwMDAwIDB4MCAw eDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1VTQl8xMjVNPiwK KysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfVVNCMF9BUFBfMTI1PjsKKysJCQljbG9jay1u YW1lcyA9ICIxMjVtIiwgImFwcF8xMjVtIjsKKysJCQkjcGh5LWNlbGxzID0gPDA+OworKwkJfTsK KysKKysJCXBjaWVwaHkwOiBwaHlAMTAyMTAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZp dmUsamg3MTEwLXBjaWUtcGh5IjsKKysJCQlyZWcgPSA8MHgwIDB4MTAyMTAwMDAgMHgwIDB4MTAw MDA+OworKwkJCSNwaHktY2VsbHMgPSA8MD47CisrCQl9OworKworKwkJcGNpZXBoeTE6IHBoeUAx MDIyMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcGNpZS1waHkiOwor KwkJCXJlZyA9IDwweDAgMHgxMDIyMDAwMCAweDAgMHgxMDAwMD47CisrCQkJI3BoeS1jZWxscyA9 IDwwPjsKKysJCX07CisrCisrCQlzdGdjcmc6IGNsb2NrLWNvbnRyb2xsZXJAMTAyMzAwMDAgewor KwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXN0Z2NyZyI7CisrCQkJcmVnID0gPDB4 MCAweDEwMjMwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8Jm9zYz4sCisrCQkJCSA8 JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0hJRkk0X0NPUkU+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19TVEdfQVhJQUhCPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVVNCXzEy NU0+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19DUFVfQlVTPiwKKysJCQkJIDwmc3lz Y3JnIEpINzExMF9TWVNDTEtfSElGSTRfQVhJPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVND TEtfTk9DU1RHX0JVUz4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX0FQQl9CVVM+Owor KwkJCWNsb2NrLW5hbWVzID0gIm9zYyIsICJoaWZpNF9jb3JlIiwKKysJCQkJICAgICAgInN0Z19h eGlhaGIiLCAidXNiXzEyNW0iLAorKwkJCQkgICAgICAiY3B1X2J1cyIsICJoaWZpNF9heGkiLAor KwkJCQkgICAgICAibm9jc3RnX2J1cyIsICJhcGJfYnVzIjsKKysJCQkjY2xvY2stY2VsbHMgPSA8 MT47CisrCQkJI3Jlc2V0LWNlbGxzID0gPDE+OworKwkJfTsKKysKKysJCXN0Z19zeXNjb246IHN5 c2NvbkAxMDI0MDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtc3RnLXN5 c2NvbiIsICJzeXNjb24iOworKwkJCXJlZyA9IDwweDAgMHgxMDI0MDAwMCAweDAgMHgxMDAwPjsK KysJCX07CisrCisgCQl1YXJ0Mzogc2VyaWFsQDEyMDAwMDAwIHsKKyAJCQljb21wYXRpYmxlID0g InNucHMsZHctYXBiLXVhcnQiOworIAkJCXJlZyA9IDwweDAgMHgxMjAwMDAwMCAweDAgMHgxMDAw MD47CitAQCAtNDQwLDYgKzYwOSw0NSBAQCBpMmM2OiBpMmNAMTIwNjAwMDAgeworIAkJCXN0YXR1 cyA9ICJkaXNhYmxlZCI7CisgCQl9OworIAorKwkJcHRjOiBwd21AMTIwZDAwMDAgeworKwkJCWNv bXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXB3bSI7CisrCQkJcmVnID0gPDB4MCAweDEyMGQw MDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1BX TV9BUEI+OworKwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfUFdNX0FQQj47Cisr CQkJI3B3bS1jZWxscyA9IDwzPjsKKysJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworKwkJfTsKKysK KysJCXNmY3RlbXA6IHRlbXBlcmF0dXJlLXNlbnNvckAxMjBlMDAwMCB7CisrCQkJY29tcGF0aWJs ZSA9ICJzdGFyZml2ZSxqaDcxMTAtdGVtcCI7CisrCQkJcmVnID0gPDB4MCAweDEyMGUwMDAwIDB4 MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1RFTVBfQ09S RT4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1RFTVBfQVBCPjsKKysJCQljbG9jay1u YW1lcyA9ICJzZW5zZSIsICJidXMiOworKwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNS U1RfVEVNUF9DT1JFPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVEVNUF9BUEI+Owor KwkJCXJlc2V0LW5hbWVzID0gInNlbnNlIiwgImJ1cyI7CisrCQkJI3RoZXJtYWwtc2Vuc29yLWNl bGxzID0gPDA+OworKwkJfTsKKysKKysJCXFzcGk6IHNwaUAxMzAxMDAwMCB7CisrCQkJY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcXNwaSIsICJjZG5zLHFzcGktbm9yIjsKKysJCQlyZWcg PSA8MHgwIDB4MTMwMTAwMDAgMHgwIDB4MTAwMDAKKysJCQkJMHgwIDB4MjEwMDAwMDAgMHgwIDB4 NDAwMDAwPjsKKysJCQlpbnRlcnJ1cHRzID0gPDI1PjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBK SDcxMTBfU1lTQ0xLX1FTUElfUkVGPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfUVNQ SV9BSEI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19RU1BJX0FQQj47CisrCQkJY2xv Y2stbmFtZXMgPSAicmVmIiwgImFoYiIsICJhcGIiOworKwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpI NzExMF9TWVNSU1RfUVNQSV9BUEI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9RU1BJ X0FIQj4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1FTUElfUkVGPjsKKysJCQlyZXNl dC1uYW1lcyA9ICJxc3BpIiwgInFzcGktb2NwIiwgInJzdGNfcmVmIjsKKysJCQljZG5zLGZpZm8t ZGVwdGggPSA8MjU2PjsKKysJCQljZG5zLGZpZm8td2lkdGggPSA8ND47CisrCQkJY2Rucyx0cmln Z2VyLWFkZHJlc3MgPSA8MHgwPjsKKysJCX07CisrCisgCQlzeXNjcmc6IGNsb2NrLWNvbnRyb2xs ZXJAMTMwMjAwMDAgeworIAkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLXN5c2NyZyI7 CisgCQkJcmVnID0gPDB4MCAweDEzMDIwMDAwIDB4MCAweDEwMDAwPjsKK0BAIC00NDcsMTYgKzY1 NSwzMSBAQCBzeXNjcmc6IGNsb2NrLWNvbnRyb2xsZXJAMTMwMjAwMDAgeworIAkJCQkgPCZnbWFj MV9yZ21paV9yeGluPiwKKyAJCQkJIDwmaTJzdHhfYmNsa19leHQ+LCA8Jmkyc3R4X2xyY2tfZXh0 PiwKKyAJCQkJIDwmaTJzcnhfYmNsa19leHQ+LCA8Jmkyc3J4X2xyY2tfZXh0PiwKKy0JCQkJIDwm dGRtX2V4dD4sIDwmbWNsa19leHQ+OworKwkJCQkgPCZ0ZG1fZXh0PiwgPCZtY2xrX2V4dD4sCisr CQkJCSA8JnBsbGNsayBKSDcxMTBfQ0xLX1BMTDBfT1VUPiwKKysJCQkJIDwmcGxsY2xrIEpINzEx MF9DTEtfUExMMV9PVVQ+LAorKwkJCQkgPCZwbGxjbGsgSkg3MTEwX0NMS19QTEwyX09VVD47Cisg CQkJY2xvY2stbmFtZXMgPSAib3NjIiwgImdtYWMxX3JtaWlfcmVmaW4iLAorIAkJCQkgICAgICAi Z21hYzFfcmdtaWlfcnhpbiIsCisgCQkJCSAgICAgICJpMnN0eF9iY2xrX2V4dCIsICJpMnN0eF9s cmNrX2V4dCIsCisgCQkJCSAgICAgICJpMnNyeF9iY2xrX2V4dCIsICJpMnNyeF9scmNrX2V4dCIs CistCQkJCSAgICAgICJ0ZG1fZXh0IiwgIm1jbGtfZXh0IjsKKysJCQkJICAgICAgInRkbV9leHQi LCAibWNsa19leHQiLAorKwkJCQkgICAgICAicGxsMF9vdXQiLCAicGxsMV9vdXQiLCAicGxsMl9v dXQiOworIAkJCSNjbG9jay1jZWxscyA9IDwxPjsKKyAJCQkjcmVzZXQtY2VsbHMgPSA8MT47Cisg CQl9OworIAorKwkJc3lzX3N5c2Nvbjogc3lzY29uQDEzMDMwMDAwIHsKKysJCQljb21wYXRpYmxl ID0gInN0YXJmaXZlLGpoNzExMC1zeXMtc3lzY29uIiwgInN5c2NvbiIsICJzaW1wbGUtbWZkIjsK KysJCQlyZWcgPSA8MHgwIDB4MTMwMzAwMDAgMHgwIDB4MTAwMD47CisrCisrCQkJcGxsY2xrOiBj bG9jay1jb250cm9sbGVyIHsKKysJCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtcGxs IjsKKysJCQkJY2xvY2tzID0gPCZvc2M+OworKwkJCQkjY2xvY2stY2VsbHMgPSA8MT47CisrCQkJ fTsKKysJCX07CisrCisgCQlzeXNncGlvOiBwaW5jdHJsQDEzMDQwMDAwIHsKKyAJCQljb21wYXRp YmxlID0gInN0YXJmaXZlLGpoNzExMC1zeXMtcGluY3RybCI7CisgCQkJcmVnID0gPDB4MCAweDEz MDQwMDAwIDB4MCAweDEwMDAwPjsKK0BAIC00NjksNiArNjkyLDE4NyBAQCBzeXNncGlvOiBwaW5j dHJsQDEzMDQwMDAwIHsKKyAJCQkjZ3Bpby1jZWxscyA9IDwyPjsKKyAJCX07CisgCisrCQl0aW1l ckAxMzA1MDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtdGltZXIiOwor KwkJCXJlZyA9IDwweDAgMHgxMzA1MDAwMCAweDAgMHgxMDAwMD47CisrCQkJaW50ZXJydXB0cyA9 IDw2OT4sIDw3MD4sIDw3MT4gLDw3Mj47CisrCQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEwX1NZ U0NMS19USU1FUl9BUEI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUjA+LAor KwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUjE+LAorKwkJCQkgPCZzeXNjcmcgSkg3 MTEwX1NZU0NMS19USU1FUjI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19USU1FUjM+ OworKwkJCWNsb2NrLW5hbWVzID0gImFwYiIsICJjaDAiLCAiY2gxIiwKKysJCQkJICAgICAgImNo MiIsICJjaDMiOworKwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElNRVJfQVBC PiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElNRVIwPiwKKysJCQkJIDwmc3lzY3Jn IEpINzExMF9TWVNSU1RfVElNRVIxPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElN RVIyPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfVElNRVIzPjsKKysJCQlyZXNldC1u YW1lcyA9ICJhcGIiLCAiY2gwIiwgImNoMSIsCisrCQkJCSAgICAgICJjaDIiLCAiY2gzIjsKKysJ CX07CisrCisrCQl3YXRjaGRvZ0AxMzA3MDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2 ZSxqaDcxMTAtd2R0IjsKKysJCQlyZWcgPSA8MHgwIDB4MTMwNzAwMDAgMHgwIDB4MTAwMDA+Owor KwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfV0RUX0FQQj4sCisrCQkJCSA8JnN5 c2NyZyBKSDcxMTBfU1lTQ0xLX1dEVF9DT1JFPjsKKysJCQljbG9jay1uYW1lcyA9ICJhcGIiLCAi Y29yZSI7CisrCQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9XRFRfQVBCPiwKKysJ CQkJIDwmc3lzY3JnIEpINzExMF9TWVNSU1RfV0RUX0NPUkU+OworKwkJfTsKKysKKysJCWNyeXB0 bzogY3J5cHRvQDE2MDAwMDAwIHsKKysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1j cnlwdG8iOworKwkJCXJlZyA9IDwweDAgMHgxNjAwMDAwMCAweDAgMHg0MDAwPjsKKysJCQljbG9j a3MgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1NFQ19BSEI+LAorKwkJCQkgPCZzdGdjcmcgSkg3 MTEwX1NUR0NMS19TRUNfTUlTQ19BSEI+OworKwkJCWNsb2NrLW5hbWVzID0gImhjbGsiLCAiYWhi IjsKKysJCQlpbnRlcnJ1cHRzID0gPDI4PjsKKysJCQlyZXNldHMgPSA8JnN0Z2NyZyBKSDcxMTBf U1RHUlNUX1NFQ19BSEI+OworKwkJCWRtYXMgPSA8JnNkbWEgMSAyPiwgPCZzZG1hIDAgMj47Cisr CQkJZG1hLW5hbWVzID0gInR4IiwgInJ4IjsKKysJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOworKwkJ fTsKKysKKysJCXNkbWE6IGRtYUAxNjAwODAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJhcm0scGww ODAiLCAiYXJtLHByaW1lY2VsbCI7CisrCQkJYXJtLHByaW1lY2VsbC1wZXJpcGhpZCA9IDwweDAw MDQxMDgwPjsKKysJCQlyZWcgPSA8MHgwIDB4MTYwMDgwMDAgMHgwIDB4NDAwMD47CisrCQkJaW50 ZXJydXB0cyA9IDwyOT47CisrCQkJY2xvY2tzID0gPCZzdGdjcmcgSkg3MTEwX1NUR0NMS19TRUNf QUhCPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfU0VDX01JU0NfQUhCPjsKKysJCQlj bG9jay1uYW1lcyA9ICJoY2xrIiwgImFwYl9wY2xrIjsKKysJCQlyZXNldHMgPSA8JnN0Z2NyZyBK SDcxMTBfU1RHUlNUX1NFQ19BSEI+OworKwkJCWxsaS1idXMtaW50ZXJmYWNlLWFoYjE7CisrCQkJ bWVtLWJ1cy1pbnRlcmZhY2UtYWhiMTsKKysJCQltZW1jcHktYnVyc3Qtc2l6ZSA9IDwyNTY+Owor KwkJCW1lbWNweS1idXMtd2lkdGggPSA8MzI+OworKwkJCSNkbWEtY2VsbHMgPSA8Mj47CisrCQl9 OworKworKwkJcm5nOiBybmdAMTYwMGMwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUs amg3MTEwLXRybmciOworKwkJCXJlZyA9IDwweDAgMHgxNjAwQzAwMCAweDAgMHg0MDAwPjsKKysJ CQljbG9ja3MgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1NFQ19BSEI+LAorKwkJCQkgPCZzdGdj cmcgSkg3MTEwX1NUR0NMS19TRUNfTUlTQ19BSEI+OworKwkJCWNsb2NrLW5hbWVzID0gImhjbGsi LCAiYWhiIjsKKysJCQlyZXNldHMgPSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1NFQ19BSEI+Owor KwkJCWludGVycnVwdHMgPSA8MzA+OworKwkJfTsKKysKKysJCW1tYzA6IG1tY0AxNjAxMDAwMCB7 CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtbW1jIjsKKysJCQlyZWcgPSA8MHgw IDB4MTYwMTAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9T WVNDTEtfU0RJTzBfQUhCPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfU0RJTzBfU0RD QVJEPjsKKysJCQljbG9jay1uYW1lcyA9ICJiaXUiLCJjaXUiOworKwkJCXJlc2V0cyA9IDwmc3lz Y3JnIEpINzExMF9TWVNSU1RfU0RJTzBfQUhCPjsKKysJCQlyZXNldC1uYW1lcyA9ICJyZXNldCI7 CisrCQkJaW50ZXJydXB0cyA9IDw3ND47CisrCQkJZmlmby1kZXB0aCA9IDwzMj47CisrCQkJZmlm by13YXRlcm1hcmstYWxpZ25lZDsKKysJCQlkYXRhLWFkZHIgPSA8MD47CisrCQkJc3RhcmZpdmUs c3lzcmVnID0gPCZzeXNfc3lzY29uIDB4MTQgMHgxYSAweDdjMDAwMDAwPjsKKysJCQlzdGF0dXMg PSAiZGlzYWJsZWQiOworKwkJfTsKKysKKysJCW1tYzE6IG1tY0AxNjAyMDAwMCB7CisrCQkJY29t cGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtbW1jIjsKKysJCQlyZWcgPSA8MHgwIDB4MTYwMjAw MDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfU0RJ TzFfQUhCPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfU0RJTzFfU0RDQVJEPjsKKysJ CQljbG9jay1uYW1lcyA9ICJiaXUiLCJjaXUiOworKwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzEx MF9TWVNSU1RfU0RJTzFfQUhCPjsKKysJCQlyZXNldC1uYW1lcyA9ICJyZXNldCI7CisrCQkJaW50 ZXJydXB0cyA9IDw3NT47CisrCQkJZmlmby1kZXB0aCA9IDwzMj47CisrCQkJZmlmby13YXRlcm1h cmstYWxpZ25lZDsKKysJCQlkYXRhLWFkZHIgPSA8MD47CisrCQkJc3RhcmZpdmUsc3lzcmVnID0g PCZzeXNfc3lzY29uIDB4OWMgMHgxIDB4M2U+OworKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cisr CQl9OworKworKwkJZ21hYzA6IGV0aGVybmV0QDE2MDMwMDAwIHsKKysJCQljb21wYXRpYmxlID0g InN0YXJmaXZlLGpoNzExMC1kd21hYyIsICJzbnBzLGR3bWFjLTUuMjAiOworKwkJCXJlZyA9IDww eDAgMHgxNjAzMDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZhb25jcmcgSkg3MTEw X0FPTkNMS19HTUFDMF9BWEk+LAorKwkJCQkgPCZhb25jcmcgSkg3MTEwX0FPTkNMS19HTUFDMF9B SEI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMF9QVFA+LAorKwkJCQkgPCZh b25jcmcgSkg3MTEwX0FPTkNMS19HTUFDMF9UWF9JTlY+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19HTUFDMF9HVFhDPjsKKysJCQljbG9jay1uYW1lcyA9ICJzdG1tYWNldGgiLCAicGNs ayIsICJwdHBfcmVmIiwKKysJCQkJICAgICAgInR4IiwgImd0eCI7CisrCQkJcmVzZXRzID0gPCZh b25jcmcgSkg3MTEwX0FPTlJTVF9HTUFDMF9BWEk+LAorKwkJCQkgPCZhb25jcmcgSkg3MTEwX0FP TlJTVF9HTUFDMF9BSEI+OworKwkJCXJlc2V0LW5hbWVzID0gInN0bW1hY2V0aCIsICJhaGIiOwor KwkJCWludGVycnVwdHMgPSA8Nz4sIDw2PiwgPDU+OworKwkJCWludGVycnVwdC1uYW1lcyA9ICJt YWNpcnEiLCAiZXRoX3dha2VfaXJxIiwgImV0aF9scGkiOworKwkJCXJ4LWZpZm8tZGVwdGggPSA8 MjA0OD47CisrCQkJdHgtZmlmby1kZXB0aCA9IDwyMDQ4PjsKKysJCQlzbnBzLG11bHRpY2FzdC1m aWx0ZXItYmlucyA9IDw2ND47CisrCQkJc25wcyxwZXJmZWN0LWZpbHRlci1lbnRyaWVzID0gPDg+ OworKwkJCXNucHMsZml4ZWQtYnVyc3Q7CisrCQkJc25wcyxuby1wYmwteDg7CisrCQkJc25wcyxm b3JjZV90aHJlc2hfZG1hX21vZGU7CisrCQkJc25wcyxheGktY29uZmlnID0gPCZzdG1tYWNfYXhp X3NldHVwPjsKKysJCQlzbnBzLHRzbzsKKysJCQlzbnBzLGVuLXR4LWxwaS1jbG9ja2dhdGluZzsK KysJCQlzbnBzLHR4cGJsID0gPDE2PjsKKysJCQlzbnBzLHJ4cGJsID0gPDE2PjsKKysJCQlzdGFy Zml2ZSxzeXNjb24gPSA8JmFvbl9zeXNjb24gMHhjIDB4MTI+OworKwkJCXN0YXR1cyA9ICJkaXNh YmxlZCI7CisrCQl9OworKworKwkJZ21hYzE6IGV0aGVybmV0QDE2MDQwMDAwIHsKKysJCQljb21w YXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1kd21hYyIsICJzbnBzLGR3bWFjLTUuMjAiOworKwkJ CXJlZyA9IDwweDAgMHgxNjA0MDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZzeXNj cmcgSkg3MTEwX1NZU0NMS19HTUFDMV9BWEk+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NM S19HTUFDMV9BSEI+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9QVFA+LAor KwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19HTUFDMV9UWF9JTlY+LAorKwkJCQkgPCZzeXNj cmcgSkg3MTEwX1NZU0NMS19HTUFDMV9HVFhDPjsKKysJCQljbG9jay1uYW1lcyA9ICJzdG1tYWNl dGgiLCAicGNsayIsICJwdHBfcmVmIiwKKysJCQkJICAgICAgInR4IiwgImd0eCI7CisrCQkJcmVz ZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9HTUFDMV9BWEk+LAorKwkJCQkgPCZzeXNjcmcg Skg3MTEwX1NZU1JTVF9HTUFDMV9BSEI+OworKwkJCXJlc2V0LW5hbWVzID0gInN0bW1hY2V0aCIs ICJhaGIiOworKwkJCWludGVycnVwdHMgPSA8Nzg+LCA8Nzc+LCA8NzY+OworKwkJCWludGVycnVw dC1uYW1lcyA9ICJtYWNpcnEiLCAiZXRoX3dha2VfaXJxIiwgImV0aF9scGkiOworKwkJCXJ4LWZp Zm8tZGVwdGggPSA8MjA0OD47CisrCQkJdHgtZmlmby1kZXB0aCA9IDwyMDQ4PjsKKysJCQlzbnBz LG11bHRpY2FzdC1maWx0ZXItYmlucyA9IDw2ND47CisrCQkJc25wcyxwZXJmZWN0LWZpbHRlci1l bnRyaWVzID0gPDg+OworKwkJCXNucHMsZml4ZWQtYnVyc3Q7CisrCQkJc25wcyxuby1wYmwteDg7 CisrCQkJc25wcyxmb3JjZV90aHJlc2hfZG1hX21vZGU7CisrCQkJc25wcyxheGktY29uZmlnID0g PCZzdG1tYWNfYXhpX3NldHVwPjsKKysJCQlzbnBzLHRzbzsKKysJCQlzbnBzLGVuLXR4LWxwaS1j bG9ja2dhdGluZzsKKysJCQlzbnBzLHR4cGJsID0gPDE2PjsKKysJCQlzbnBzLHJ4cGJsID0gPDE2 PjsKKysJCQlzdGFyZml2ZSxzeXNjb24gPSA8JnN5c19zeXNjb24gMHg5MCAweDI+OworKwkJCXN0 YXR1cyA9ICJkaXNhYmxlZCI7CisrCQl9OworKworKwkJZG1hOiBkbWEtY29udHJvbGxlckAxNjA1 MDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtYXhpLWRtYSI7CisrCQkJ cmVnID0gPDB4MCAweDE2MDUwMDAwIDB4MCAweDEwMDAwPjsKKysJCQljbG9ja3MgPSA8JnN0Z2Ny ZyBKSDcxMTBfU1RHQ0xLX0RNQTFQX0FYST4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xL X0RNQTFQX0FIQj47CisrCQkJY2xvY2stbmFtZXMgPSAiY29yZS1jbGsiLCAiY2Znci1jbGsiOwor KwkJCXJlc2V0cyA9IDwmc3RnY3JnIEpINzExMF9TVEdSU1RfRE1BMVBfQVhJPiwKKysJCQkJIDwm c3RnY3JnIEpINzExMF9TVEdSU1RfRE1BMVBfQUhCPjsKKysJCQlpbnRlcnJ1cHRzID0gPDczPjsK KysJCQkjZG1hLWNlbGxzID0gPDE+OworKwkJCWRtYS1jaGFubmVscyA9IDw0PjsKKysJCQlzbnBz LGRtYS1tYXN0ZXJzID0gPDE+OworKwkJCXNucHMsZGF0YS13aWR0aCA9IDwzPjsKKysJCQlzbnBz LGJsb2NrLXNpemUgPSA8NjU1MzYgNjU1MzYgNjU1MzYgNjU1MzY+OworKwkJCXNucHMscHJpb3Jp dHkgPSA8MCAxIDIgMz47CisrCQkJc25wcyxheGktbWF4LWJ1cnN0LWxlbiA9IDwxNj47CisrCQl9 OworKworIAkJYW9uY3JnOiBjbG9jay1jb250cm9sbGVyQDE3MDAwMDAwIHsKKyAJCQljb21wYXRp YmxlID0gInN0YXJmaXZlLGpoNzExMC1hb25jcmciOworIAkJCXJlZyA9IDwweDAgMHgxNzAwMDAw MCAweDAgMHgxMDAwMD47CitAQCAtNDg2LDYgKzg5MCwxMiBAQCBhb25jcmc6IGNsb2NrLWNvbnRy b2xsZXJAMTcwMDAwMDAgeworIAkJCSNyZXNldC1jZWxscyA9IDwxPjsKKyAJCX07CisgCisrCQlh b25fc3lzY29uOiBzeXNjb25AMTcwMTAwMDAgeworKwkJCWNvbXBhdGlibGUgPSAic3RhcmZpdmUs amg3MTEwLWFvbi1zeXNjb24iLCAic3lzY29uIjsKKysJCQlyZWcgPSA8MHgwIDB4MTcwMTAwMDAg MHgwIDB4MTAwMD47CisrCQkJI3Bvd2VyLWRvbWFpbi1jZWxscyA9IDwxPjsKKysJCX07CisrCisg CQlhb25ncGlvOiBwaW5jdHJsQDE3MDIwMDAwIHsKKyAJCQljb21wYXRpYmxlID0gInN0YXJmaXZl LGpoNzExMC1hb24tcGluY3RybCI7CisgCQkJcmVnID0gPDB4MCAweDE3MDIwMDAwIDB4MCAweDEw MDAwPjsKK0BAIC00OTYsNSArOTA2LDI1MiBAQCBhb25ncGlvOiBwaW5jdHJsQDE3MDIwMDAwIHsK KyAJCQlncGlvLWNvbnRyb2xsZXI7CisgCQkJI2dwaW8tY2VsbHMgPSA8Mj47CisgCQl9OworKwor KwkJcHdyYzogcG93ZXItY29udHJvbGxlckAxNzAzMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJz dGFyZml2ZSxqaDcxMTAtcG11IjsKKysJCQlyZWcgPSA8MHgwIDB4MTcwMzAwMDAgMHgwIDB4MTAw MDA+OworKwkJCWludGVycnVwdHMgPSA8MTExPjsKKysJCQkjcG93ZXItZG9tYWluLWNlbGxzID0g PDE+OworKwkJfTsKKysKKysJCWNzaTJyeDogY3NpLWJyaWRnZUAxOTgwMDAwMCB7CisrCQkJY29t cGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtY3NpMnJ4IjsKKysJCQlyZWcgPSA8MHgwIDB4MTk4 MDAwMDAgMHgwIDB4MTAwMDA+OworKwkJCWNsb2NrcyA9IDwmaXNwY3JnIEpINzExMF9JU1BDTEtf VklOX1NZUz4sCisrCQkJCSA8JmlzcGNyZyBKSDcxMTBfSVNQQ0xLX1ZJTl9BUEI+LAorKwkJCQkg PCZpc3BjcmcgSkg3MTEwX0lTUENMS19WSU5fUElYRUxfSUYwPiwKKysJCQkJIDwmaXNwY3JnIEpI NzExMF9JU1BDTEtfVklOX1BJWEVMX0lGMT4sCisrCQkJCSA8JmlzcGNyZyBKSDcxMTBfSVNQQ0xL X1ZJTl9QSVhFTF9JRjI+LAorKwkJCQkgPCZpc3BjcmcgSkg3MTEwX0lTUENMS19WSU5fUElYRUxf SUYzPjsKKysJCQljbG9jay1uYW1lcyA9ICJzeXNfY2xrIiwgInBfY2xrIiwKKysJCQkJICJwaXhl bF9pZjBfY2xrIiwgInBpeGVsX2lmMV9jbGsiLAorKwkJCQkgInBpeGVsX2lmMl9jbGsiLCAicGl4 ZWxfaWYzX2NsayI7CisrCQkJcmVzZXRzID0gPCZpc3BjcmcgSkg3MTEwX0lTUFJTVF9WSU5fU1lT PiwKKysJCQkJIDwmaXNwY3JnIEpINzExMF9JU1BSU1RfVklOX0FQQj4sCisrCQkJCSA8JmlzcGNy ZyBKSDcxMTBfSVNQUlNUX1ZJTl9QSVhFTF9JRjA+LAorKwkJCQkgPCZpc3BjcmcgSkg3MTEwX0lT UFJTVF9WSU5fUElYRUxfSUYxPiwKKysJCQkJIDwmaXNwY3JnIEpINzExMF9JU1BSU1RfVklOX1BJ WEVMX0lGMj4sCisrCQkJCSA8JmlzcGNyZyBKSDcxMTBfSVNQUlNUX1ZJTl9QSVhFTF9JRjM+Owor KwkJCXJlc2V0LW5hbWVzID0gInN5cyIsICJyZWdfYmFuayIsCisrCQkJCSAicGl4ZWxfaWYwIiwg InBpeGVsX2lmMSIsCisrCQkJCSAicGl4ZWxfaWYyIiwgInBpeGVsX2lmMyI7CisrCQkJcGh5cyA9 IDwmY3NpX3BoeT47CisrCQkJcGh5LW5hbWVzID0gImRwaHkiOworKwkJCXN0YXR1cyA9ICJkaXNh YmxlZCI7CisrCQl9OworKworKwkJaXNwY3JnOiBjbG9jay1jb250cm9sbGVyQDE5ODEwMDAwIHsK KysJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1pc3BjcmciOworKwkJCXJlZyA9IDww eDAgMHgxOTgxMDAwMCAweDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEw X1NZU0NMS19JU1BfVE9QX0NPUkU+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19JU1Bf VE9QX0FYST4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX05PQ19CVVNfSVNQX0FYST4s CisrCQkJCSA8JmR2cF9jbGs+OworKwkJCWNsb2NrLW5hbWVzID0gImlzcF90b3BfY29yZSIsICJp c3BfdG9wX2F4aSIsCisrCQkJCSAgICAgICJub2NfYnVzX2lzcF9heGkiLCAiZHZwX2NsayI7Cisr CQkJcmVzZXRzID0gPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9JU1BfVE9QPiwKKysJCQkJIDwmc3lz Y3JnIEpINzExMF9TWVNSU1RfSVNQX1RPUF9BWEk+LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZ U1JTVF9OT0NfQlVTX0lTUF9BWEk+OworKwkJCSNjbG9jay1jZWxscyA9IDwxPjsKKysJCQkjcmVz ZXQtY2VsbHMgPSA8MT47CisrCQkJcG93ZXItZG9tYWlucyA9IDwmcHdyYyBKSDcxMTBfUERfSVNQ PjsKKysJCX07CisrCisrCQljc2lfcGh5OiBwaHlAMTk4MjAwMDAgeworKwkJCWNvbXBhdGlibGUg PSAic3RhcmZpdmUsamg3MTEwLWRwaHktcngiOworKwkJCXJlZyA9IDwweDAgMHgxOTgyMDAwMCAw eDAgMHgxMDAwMD47CisrCQkJY2xvY2tzID0gPCZpc3BjcmcgSkg3MTEwX0lTUENMS19NMzFEUEhZ X0NGR19JTj4sCisrCQkJCSA8JmlzcGNyZyBKSDcxMTBfSVNQQ0xLX00zMURQSFlfUkVGX0lOPiwK KysJCQkJIDwmaXNwY3JnIEpINzExMF9JU1BDTEtfTTMxRFBIWV9UWF9FU0NfTEFOMD47CisrCQkJ Y2xvY2stbmFtZXMgPSAiY2ZnIiwgInJlZiIsICJ0eCI7CisrCQkJcmVzZXRzID0gPCZpc3Bjcmcg Skg3MTEwX0lTUFJTVF9NMzFEUEhZX0hXPiwKKysJCQkJIDwmaXNwY3JnIEpINzExMF9JU1BSU1Rf TTMxRFBIWV9CMDlfQU9OPjsKKysJCQlwb3dlci1kb21haW5zID0gPCZhb25fc3lzY29uIEpINzEx MF9QRF9EUEhZX1JYPjsKKysJCQkjcGh5LWNlbGxzID0gPDA+OworKwkJfTsKKysKKysJCXN0ZmNh bXNzOiBjYW1zc0AxOTg0MDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAt Y2Ftc3MiOworKwkJCXJlZyA9IDwweDAgMHgxOTg0MDAwMCAweDAgMHgxMDAwMD4sCisrCQkJCTww eDAgMHgxOTg3MDAwMCAweDAgMHgzMDAwMD47CisrCQkJcmVnLW5hbWVzID0gInN5c2NvbiIsICJp c3AiOworKwkJCWNsb2NrcyA9IDwmaXNwY3JnIEpINzExMF9JU1BDTEtfRE9NNF9BUEJfRlVOQz4s CisrCQkJCSA8JmlzcGNyZyBKSDcxMTBfSVNQQ0xLX0lTUFYyX1RPUF9XUkFQUEVSX0M+LAorKwkJ CQkgPCZpc3BjcmcgSkg3MTEwX0lTUENMS19EVlBfSU5WPiwKKysJCQkJIDwmaXNwY3JnIEpINzEx MF9JU1BDTEtfVklOX1BfQVhJX1dSPiwKKysJCQkJIDwmaXNwY3JnIEpINzExMF9JU1BDTEtfTUlQ SV9SWDBfUFhMPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSVNQX1RPUF9DT1JFPiwK KysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSVNQX1RPUF9BWEk+OworKwkJCWNsb2NrLW5h bWVzID0gImNsa19hcGJfZnVuYyIsCisrCQkJCSJjbGtfd3JhcHBlcl9jbGtfYyIsCisrCQkJCSJj bGtfZHZwX2ludiIsCisrCQkJCSJjbGtfYXhpd3IiLAorKwkJCQkiY2xrX21pcGlfcngwX3B4bCIs CisrCQkJCSJjbGtfaXNwY29yZV8yeCIsCisrCQkJCSJjbGtfaXNwX2F4aSI7CisrCQkJcmVzZXRz ID0gPCZpc3BjcmcgSkg3MTEwX0lTUFJTVF9JU1BWMl9UT1BfV1JBUFBFUl9QPiwKKysJCQkJIDwm aXNwY3JnIEpINzExMF9JU1BSU1RfSVNQVjJfVE9QX1dSQVBQRVJfQz4sCisrCQkJCSA8JmlzcGNy ZyBKSDcxMTBfSVNQUlNUX1ZJTl9QX0FYSV9SRD4sCisrCQkJCSA8JmlzcGNyZyBKSDcxMTBfSVNQ UlNUX1ZJTl9QX0FYSV9XUj4sCisrCQkJCSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX0lTUF9UT1A+ LAorKwkJCQkgPCZzeXNjcmcgSkg3MTEwX1NZU1JTVF9JU1BfVE9QX0FYST47CisrCQkJcmVzZXQt bmFtZXMgPSAicnN0X3dyYXBwZXJfcCIsCisrCQkJCSJyc3Rfd3JhcHBlcl9jIiwKKysJCQkJInJz dF9heGlyZCIsCisrCQkJCSJyc3RfYXhpd3IiLAorKwkJCQkicnN0X2lzcF90b3BfbiIsCisrCQkJ CSJyc3RfaXNwX3RvcF9heGkiOworKwkJCXBvd2VyLWRvbWFpbnMgPSA8JnB3cmMgSkg3MTEwX1BE X0lTUD47CisrCQkJLyogaXJxIG5yOiB2aW4sIGlzcCwgaXNwX2NzaSwgaXNwX2NzaWxpbmUgKi8K KysJCQlpbnRlcnJ1cHRzID0gPDkyPiwgPDg3PiwgPDkwPjsKKysJCQlzdGF0dXMgPSAiZGlzYWJs ZWQiOworKwkJfTsKKysKKysJCWRjODIwMDogZGM4MjAwQDI5NDAwMDAwIHsKKysJCQljb21wYXRp YmxlID0gInZlcmlzaWxpY29uLGRjODIwMCI7CisrCQkJcmVnID0gPDB4MCAweDI5NDAwMDAwIDB4 MCAweDEwMD4sCisrCQkJICAgICAgPDB4MCAweDI5NDAwODAwIDB4MCAweDIwMDA+LAorKwkJCSAg ICAgIDwweDAgMHgyOTVCMDAwMCAweDAgMHg5MD47CisrCQkJaW50ZXJydXB0cyA9IDw5NT47Cisr CQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3MTEwX1NZU0NMS19OT0NfQlVTX0RJU1BfQVhJPiwKKysJ CQkJPCZ2b3V0Y3JnIEpINzExMF9WT1VUQ0xLX0RDODIwMF9QSVgwPiwKKysJCQkJPCZ2b3V0Y3Jn IEpINzExMF9WT1VUQ0xLX0RDODIwMF9QSVgxPiwKKysJCQkJPCZ2b3V0Y3JnIEpINzExMF9WT1VU Q0xLX0RDODIwMF9BWEk+LAorKwkJCQk8JnZvdXRjcmcgSkg3MTEwX1ZPVVRDTEtfREM4MjAwX0NP UkU+LAorKwkJCQk8JnZvdXRjcmcgSkg3MTEwX1ZPVVRDTEtfREM4MjAwX0FIQj4sCisrCQkJCTwm aGRtaXR4MF9waXhlbGNsaz4sCisrCQkJCTwmdm91dGNyZyBKSDcxMTBfVk9VVENMS19EQzgyMDBf UElYPjsKKysJCQljbG9jay1uYW1lcyA9ICJjbGtfdm91dF9ub2NfZGlzcCIsCisrCQkJCSJjbGtf dm91dF9waXgwIiwiY2xrX3ZvdXRfcGl4MSIsCisrCQkJCSJjbGtfdm91dF9heGkiLCJjbGtfdm91 dF9jb3JlIiwKKysJCQkJImNsa192b3V0X3ZvdXRfYWhiIiwiaGRtaXR4MF9waXhlbCIsCisrCQkJ CSJjbGtfdm91dF9kYzgyMDAiOworKwkJCXJlc2V0cyA9IDwmdm91dGNyZyBKSDcxMTBfVk9VVFJT VF9EQzgyMDBfQVhJPiwKKysJCQkJIDwmdm91dGNyZyBKSDcxMTBfVk9VVFJTVF9EQzgyMDBfQUhC PiwKKysJCQkJIDwmdm91dGNyZyBKSDcxMTBfVk9VVFJTVF9EQzgyMDBfQ09SRT47CisrCQkJcmVz ZXQtbmFtZXMgPSAicnN0X3ZvdXRfYXhpIiwicnN0X3ZvdXRfYWhiIiwKKysJCQkJCQkicnN0X3Zv dXRfY29yZSI7CisrCQl9OworKworKwkJaGRtaTogaGRtaUAyOTU5MDAwMCB7CisrCQkJY29tcGF0 aWJsZSA9ICJzdGFyZml2ZSxoZG1pIjsKKysJCQlyZWcgPSA8MHgwIDB4Mjk1OTAwMDAgMHgwIDB4 NDAwMD47CisrCQkJaW50ZXJydXB0cyA9IDw5OT47CisrCisrCQkJY2xvY2tzID0gPCZ2b3V0Y3Jn IEpINzExMF9WT1VUQ0xLX0hETUlfVFhfU1lTPiwKKysJCQkJIDwmdm91dGNyZyBKSDcxMTBfVk9V VENMS19IRE1JX1RYX01DTEs+LAorKwkJCQkgPCZ2b3V0Y3JnIEpINzExMF9WT1VUQ0xLX0hETUlf VFhfQkNMSz4sCisrCQkJCSA8JmhkbWl0eDBfcGl4ZWxjbGs+OworKwkJCWNsb2NrLW5hbWVzID0g InN5c2NsayIsICJtY2xrIiwiYmNsayIsInBjbGsiOworKwkJCXJlc2V0cyA9IDwmdm91dGNyZyBK SDcxMTBfVk9VVFJTVF9IRE1JX1RYX0hETUk+OworKwkJCXJlc2V0LW5hbWVzID0gImhkbWlfdHgi OworKwkJCSNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisrCQl9OworKworKwkJdm91dGNyZzogY2xv Y2stY29udHJvbGxlckAyOTVjMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcx MTAtdm91dGNyZyI7CisrCQkJcmVnID0gPDB4MCAweDI5NWMwMDAwIDB4MCAweDEwMDAwPjsKKysJ CQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX1ZPVVRfU1JDPiwKKysJCQkJIDwmc3lz Y3JnIEpINzExMF9TWVNDTEtfVk9VVF9UT1BfQUhCPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9T WVNDTEtfVk9VVF9UT1BfQVhJPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfVk9VVF9U T1BfSERNSVRYMF9NQ0xLPiwKKysJCQkJIDwmc3lzY3JnIEpINzExMF9TWVNDTEtfSTJTVFgwX0JD TEs+LAorKwkJCQkgPCZoZG1pdHgwX3BpeGVsY2xrPjsKKysJCQljbG9jay1uYW1lcyA9ICJ2b3V0 X3NyYyIsICJ2b3V0X3RvcF9haGIiLAorKwkJCQkgICAgICAidm91dF90b3BfYXhpIiwgInZvdXRf dG9wX2hkbWl0eDBfbWNsayIsCisrCQkJCSAgICAgICJpMnN0eDBfYmNsayIsICJoZG1pdHgwX3Bp eGVsY2xrIjsKKysJCQlyZXNldHMgPSA8JnN5c2NyZyBKSDcxMTBfU1lTUlNUX1ZPVVRfVE9QX1NS Qz47CisrCQkJI2Nsb2NrLWNlbGxzID0gPDE+OworKwkJCSNyZXNldC1jZWxscyA9IDwxPjsKKysJ CQlwb3dlci1kb21haW5zID0gPCZwd3JjIEpINzExMF9QRF9WT1VUPjsKKysJCX07CisrCisrCQlw Y2llMDogcGNpZUAyQjAwMDAwMCB7CisrCQkJY29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAt cGNpZSI7CisrCQkJI2FkZHJlc3MtY2VsbHMgPSA8Mz47CisrCQkJI3NpemUtY2VsbHMgPSA8Mj47 CisrCQkJI2ludGVycnVwdC1jZWxscyA9IDwxPjsKKysJCQlyZWcgPSA8MHgwIDB4MkIwMDAwMDAg MHgwIDB4MTAwMDAwMAorKwkJCSAgICAgICAweDkgMHg0MDAwMDAwMCAweDAgMHgxMDAwMDAwMD47 CisrCQkJcmVnLW5hbWVzID0gInJlZyIsICJjb25maWciOworKwkJCWRldmljZV90eXBlID0gInBj aSI7CisrCQkJc3RhcmZpdmUsc3RnLXN5c2NvbiA9IDwmc3RnX3N5c2NvbiAweGMwIDB4YzQgMHgx MzAgMHgxYjg+OworKwkJCWJ1cy1yYW5nZSA9IDwweDAgMHhmZj47CisrCQkJcmFuZ2VzID0gPDB4 ODIwMDAwMDAgIDB4MCAweDMwMDAwMDAwICAweDAgMHgzMDAwMDAwMCAweDAgMHgwODAwMDAwMD4s CisrCQkJCSA8MHhjMzAwMDAwMCAgMHg5IDB4MDAwMDAwMDAgIDB4OSAweDAwMDAwMDAwIDB4MCAw eDQwMDAwMDAwPjsKKysJCQlpbnRlcnJ1cHRzID0gPDU2PjsKKysJCQlpbnRlcnJ1cHQtcGFyZW50 ID0gPCZwbGljPjsKKysJCQlpbnRlcnJ1cHQtbWFwLW1hc2sgPSA8MHgwIDB4MCAweDAgMHg3PjsK KysJCQlpbnRlcnJ1cHQtbWFwID0gPDB4MCAweDAgMHgwIDB4MSAmcGNpZV9pbnRjMCAweDE+LAor KwkJCQkJPDB4MCAweDAgMHgwIDB4MiAmcGNpZV9pbnRjMCAweDI+LAorKwkJCQkJPDB4MCAweDAg MHgwIDB4MyAmcGNpZV9pbnRjMCAweDM+LAorKwkJCQkJPDB4MCAweDAgMHgwIDB4NCAmcGNpZV9p bnRjMCAweDQ+OworKwkJCW1zaS1wYXJlbnQgPSA8JnBjaWUwPjsKKysJCQltc2ktY29udHJvbGxl cjsKKysJCQljbG9ja3MgPSA8JnN5c2NyZyBKSDcxMTBfU1lTQ0xLX05PQ19CVVNfU1RHX0FYST4s CisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1BDSUUwX1RMPiwKKysJCQkJIDwmc3RnY3Jn IEpINzExMF9TVEdDTEtfUENJRTBfQVhJX01TVDA+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NU R0NMS19QQ0lFMF9BUEI+OworKwkJCWNsb2NrLW5hbWVzID0gIm5vYyIsICJ0bCIsICJheGlfbXN0 MCIsICJhcGIiOworKwkJCXJlc2V0cyA9IDwmc3RnY3JnIEpINzExMF9TVEdSU1RfUENJRTBfQVhJ X01TVDA+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9QQ0lFMF9BWElfU0xWMD4sCisr CQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHUlNUX1BDSUUwX0FYSV9TTFY+LAorKwkJCQkgPCZzdGdj cmcgSkg3MTEwX1NUR1JTVF9QQ0lFMF9CUkc+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JT VF9QQ0lFMF9DT1JFPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1RfUENJRTBfQVBCPjsK KysJCQlyZXNldC1uYW1lcyA9ICJtc3QwIiwgInNsdjAiLCAic2x2IiwgImJyZyIsCisrCQkJCSAg ICAgICJjb3JlIiwgImFwYiI7CisrCQkJc3RhdHVzID0gImRpc2FibGVkIjsKKysKKysJCQlwY2ll X2ludGMwOiBpbnRlcnJ1cHQtY29udHJvbGxlciB7CisrCQkJCSNhZGRyZXNzLWNlbGxzID0gPDA+ OworKwkJCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+OworKwkJCQlpbnRlcnJ1cHQtY29udHJvbGxl cjsKKysJCQl9OworKwkJfTsKKysKKysJCXBjaWUxOiBwY2llQDJDMDAwMDAwIHsKKysJCQljb21w YXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1wY2llIjsKKysJCQkjYWRkcmVzcy1jZWxscyA9IDwz PjsKKysJCQkjc2l6ZS1jZWxscyA9IDwyPjsKKysJCQkjaW50ZXJydXB0LWNlbGxzID0gPDE+Owor KwkJCXJlZyA9IDwweDAgMHgyQzAwMDAwMCAweDAgMHgxMDAwMDAwCisrCQkJICAgICAgIDB4OSAw eGMwMDAwMDAwIDB4MCAweDEwMDAwMDAwPjsKKysJCQlyZWctbmFtZXMgPSAicmVnIiwgImNvbmZp ZyI7CisrCQkJZGV2aWNlX3R5cGUgPSAicGNpIjsKKysJCQlzdGFyZml2ZSxzdGctc3lzY29uID0g PCZzdGdfc3lzY29uIDB4MjcwIDB4Mjc0IDB4MmUwIDB4MzY4PjsKKysJCQlidXMtcmFuZ2UgPSA8 MHgwIDB4ZmY+OworKwkJCXJhbmdlcyA9IDwweDgyMDAwMDAwICAweDAgMHgzODAwMDAwMCAgMHgw IDB4MzgwMDAwMDAgMHgwIDB4MDgwMDAwMDA+LAorKwkJCQkgPDB4YzMwMDAwMDAgIDB4OSAweDgw MDAwMDAwICAweDkgMHg4MDAwMDAwMCAweDAgMHg0MDAwMDAwMD47CisrCQkJaW50ZXJydXB0cyA9 IDw1Nz47CisrCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmcGxpYz47CisrCQkJaW50ZXJydXB0LW1h cC1tYXNrID0gPDB4MCAweDAgMHgwIDB4Nz47CisrCQkJaW50ZXJydXB0LW1hcCA9IDwweDAgMHgw IDB4MCAweDEgJnBjaWVfaW50YzEgMHgxPiwKKysJCQkJCTwweDAgMHgwIDB4MCAweDIgJnBjaWVf aW50YzEgMHgyPiwKKysJCQkJCTwweDAgMHgwIDB4MCAweDMgJnBjaWVfaW50YzEgMHgzPiwKKysJ CQkJCTwweDAgMHgwIDB4MCAweDQgJnBjaWVfaW50YzEgMHg0PjsKKysJCQltc2ktcGFyZW50ID0g PCZwY2llMT47CisrCQkJbXNpLWNvbnRyb2xsZXI7CisrCQkJY2xvY2tzID0gPCZzeXNjcmcgSkg3 MTEwX1NZU0NMS19OT0NfQlVTX1NUR19BWEk+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR0NM S19QQ0lFMV9UTD4sCisrCQkJCSA8JnN0Z2NyZyBKSDcxMTBfU1RHQ0xLX1BDSUUxX0FYSV9NU1Qw PiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdDTEtfUENJRTFfQVBCPjsKKysJCQljbG9jay1u YW1lcyA9ICJub2MiLCAidGwiLCAiYXhpX21zdDAiLCAiYXBiIjsKKysJCQlyZXNldHMgPSA8JnN0 Z2NyZyBKSDcxMTBfU1RHUlNUX1BDSUUxX0FYSV9NU1QwPiwKKysJCQkJIDwmc3RnY3JnIEpINzEx MF9TVEdSU1RfUENJRTFfQVhJX1NMVjA+LAorKwkJCQkgPCZzdGdjcmcgSkg3MTEwX1NUR1JTVF9Q Q0lFMV9BWElfU0xWPiwKKysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1RfUENJRTFfQlJHPiwK KysJCQkJIDwmc3RnY3JnIEpINzExMF9TVEdSU1RfUENJRTFfQ09SRT4sCisrCQkJCSA8JnN0Z2Ny ZyBKSDcxMTBfU1RHUlNUX1BDSUUxX0FQQj47CisrCQkJcmVzZXQtbmFtZXMgPSAibXN0MCIsICJz bHYwIiwgInNsdiIsICJicmciLAorKwkJCQkgICAgICAiY29yZSIsICJhcGIiOworKwkJCXN0YXR1 cyA9ICJkaXNhYmxlZCI7CisrCisrCQkJcGNpZV9pbnRjMTogaW50ZXJydXB0LWNvbnRyb2xsZXIg eworKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwwPjsKKysJCQkJI2ludGVycnVwdC1jZWxscyA9IDwx PjsKKysJCQkJaW50ZXJydXB0LWNvbnRyb2xsZXI7CisrCQkJfTsKKysJCX07CisgCX07CisgfTsK Ky0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDcx LWRybS12ZXJpc2lsaWNvbi1hZGQtbWlzc2luZy1udWxsLWVudHJ5LWluLXZzX2RybV9kdF8ucGF0 Y2ggYi9zcmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA3MS1kcm0tdmVyaXNpbGljb24tYWRkLW1p c3NpbmctbnVsbC1lbnRyeS1pbi12c19kcm1fZHRfLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLmNhMzQxOGFkNmE1YTEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xpbnV4Ni40L3BhdGNoZXMvMDA3MS1kcm0tdmVyaXNpbGljb24tYWRkLW1pc3Npbmct bnVsbC1lbnRyeS1pbi12c19kcm1fZHRfLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gN2Nm ZTMwZWE0ZDczZDg5ZDA0YTM4MWMyNDAwODIzMmYwYjI2Njc4OSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IE5pY2sgQ2FvIDxuaWNrY2FvQG5pY2hpLmNvPgorRGF0ZTogU2F0LCAxIEp1 bCAyMDIzIDE3OjE5OjIyICswODAwCitTdWJqZWN0OiBbUEFUQ0ggNzEvNzJdIGRybS92ZXJpc2ls aWNvbjogYWRkIG1pc3NpbmcgbnVsbCBlbnRyeSBpbgorIHZzX2RybV9kdF9pZHMKKworLS0tCisg ZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jIHwgMSArCisgMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNp bGljb24vdnNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmMKK2lu ZGV4IGI3NDBmZTkzNDAzNS4uMTI1NWEzNzNmN2EyIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGlj b24vdnNfZHJ2LmMKK0BAIC0yNTgsNiArMjU4LDcgQEAgc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BT KHZzX2RybV9wbV9vcHMsIHZzX2RybV9zdXNwZW5kLCB2c19kcm1fcmVzdW1lKTsKKyAKKyBzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB2c19kcm1fZHRfaWRzW10gPSB7CisgCXsgLmNv bXBhdGlibGUgPSAidmVyaXNpbGljb24sZGlzcGxheS1zdWJzeXN0ZW0iLCB9LAorKwl7fSwKKyB9 OworIAorIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHZzX2RybV9kdF9pZHMpOworLS0gCisyLjQx LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saW51eDYuNC9wYXRjaGVzLzAwNzItZHJtLXZlcmlz aWxpY29uLWltcG9ydC1ETUFfQlVGLW5hbWVzcGFjZS5wYXRjaCBiL3NyY3BrZ3MvbGludXg2LjQv cGF0Y2hlcy8wMDcyLWRybS12ZXJpc2lsaWNvbi1pbXBvcnQtRE1BX0JVRi1uYW1lc3BhY2UucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMTBmZTlmNTdhY2Yw NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGludXg2LjQvcGF0Y2hlcy8wMDcyLWRybS12 ZXJpc2lsaWNvbi1pbXBvcnQtRE1BX0JVRi1uYW1lc3BhY2UucGF0Y2gKQEAgLTAsMCArMSwyMiBA QAorRnJvbSA1ZDUyNDVlMTRjNmQzOGFmN2Y1ZGIzNjQyNDI2ZmUzMTllOTI5MjZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmljayBDYW8gPG5pY2tjYW9AbmljaGkuY28+CitEYXRl OiBTYXQsIDEgSnVsIDIwMjMgMTc6NDk6MDUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA3Mi83Ml0g ZHJtL3ZlcmlzaWxpY29uOiBpbXBvcnQgRE1BX0JVRiBuYW1lc3BhY2UKKworLS0tCisgZHJpdmVy cy9ncHUvZHJtL3ZlcmlzaWxpY29uL3ZzX2Rydi5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24v dnNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNfZHJ2LmMKK2luZGV4IDEy NTVhMzczZjdhMi4uODYyNzAyNzA0N2FhIDEwMDY0NAorLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zl cmlzaWxpY29uL3ZzX2Rydi5jCisrKysgYi9kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vdnNf ZHJ2LmMKK0BAIC0yOTksNCArMjk5LDUgQEAgbW9kdWxlX2luaXQodnNfZHJtX2luaXQpOworIG1v ZHVsZV9leGl0KHZzX2RybV9maW5pKTsKKyAKKyBNT0RVTEVfREVTQ1JJUFRJT04oIlZlcmlTaWxp Y29uIERSTSBEcml2ZXIiKTsKKytNT0RVTEVfSU1QT1JUX05TKERNQV9CVUYpOworIE1PRFVMRV9M SUNFTlNFKCJHUEwiKTsKKy0tIAorMi40MS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGludXg2 LjQvdGVtcGxhdGUgYi9zcmNwa2dzL2xpbnV4Ni40L3RlbXBsYXRlCmluZGV4IDU3NWNlNjNkZjA2 MWEuLjQzMjFlODdhM2VhMjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGludXg2LjQvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9saW51eDYuNC90ZW1wbGF0ZQpAQCAtMTgsNyArMTgsNyBAQCBjaGVja3N1 bT0iOGZhMDU4OGYwYzJjZWNhNDRjYWM3N2EwZTM5YmE0OGM5ZjAwYTZiOWRjNjk3NjFjMDJhNWQz ZWZhYzhkYTdmMwogcHl0aG9uX3ZlcnNpb249MwogCiAjIFhYWCBSZXN0cmljdCBhcmNocyB1bnRp bCBhIHByb3BlciA8YXJjaD4tZG90Y29uZmlnIGlzIGF2YWlsYWJsZSBpbiBGSUxFU0RJUi4KLWFy Y2hzPSJ4ODZfNjQqIGk2ODYqIGFhcmNoNjQqIgorYXJjaHM9Ing4Nl82NCogaTY4NiogYWFyY2g2 NCogcmlzY3Y2NCoiCiAKIG5vZGVidWc9eWVzICAjIC1kYmcgcGFja2FnZSBpcyBnZW5lcmF0ZWQg YmVsb3cgbWFudWFsbHkKIG5vc3RyaXA9eWVzCgpGcm9tIDMyZjBjMzc1YmRmOTE0ZjRlZjkzMWYy MjFhMDFiYWRjZDI5MzEzYTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExlYWggTmV1 a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4KRGF0ZTogU2F0LCAyNiBBdWcgMjAyMyAxNDo1MjozNiAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTg4LzE4OV0gW0RPIE5PVCBNRVJHRV0gY3Jvc3MtcmlzY3Y2 NC1saW51eC1tdXNsOiBidW1wIHRvIG11c2wKIDEuMi40CgotLS0KIHNyY3BrZ3MvY3Jvc3Mtcmlz Y3Y2NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1y aXNjdjY0LWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXJpc2N2NjQtbGludXgt bXVzbC90ZW1wbGF0ZQppbmRleCBkMjA3NTFmZDlmZGI2Li4yMGUwMTRmZjA1MDFmIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Nyb3NzLXJpc2N2NjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2Nyb3NzLXJpc2N2NjQtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcmlzY3Y2NC1saW51eC1tdXNsJwogX2JpbnV0aWxz X3ZlcnNpb249Mi4zOQogX2djY192ZXJzaW9uPTEyLjIuMAotX211c2xfdmVyc2lvbj0xLjEuMjQK K19tdXNsX3ZlcnNpb249MS4yLjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0 X3ZlcnNpb249MS4wCiBwa2duYW1lPWNyb3NzLXJpc2N2NjQtbGludXgtbXVzbAogdmVyc2lvbj0w LjM1Ci1yZXZpc2lvbj0yCityZXZpc2lvbj02NjYKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNv bmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1ydjY0Z2MgLS13aXRoLWFiaT1scDY0ZCAtLWVuYWJs ZS1hdXRvbGluay1saWJhdG9taWMgLS1kaXNhYmxlLW11bHRpbGliIgogaG9zdG1ha2VkZXBlbmRz PSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMgcGtnLWNvbmZp ZyIKQEAgLTI1LDcgKzI1LDcgQEAgZGlzdGZpbGVzPSIKICBodHRwczovL2dpdGh1Yi5jb20va2Fu aWluaS9saWJ1Y29udGV4dC9hcmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNp b259LnRhci5neiIKIGNoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQz NzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCiAgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5 ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgotIDEzNzBjOWE4MTJiMmNm MmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKKyA3YTM1 ZWFlMzNkNTM3MmE3YzBkYTExODhkZTc5ODcyNmY2ODgyNTUxM2I3YWUzZWJlOTdhYWFhNTIxMTRm MDM5CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2 ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYy NDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIiCiBub2Nyb3NzPXllcwoKRnJvbSBmNzc3MjBkODdkNTA4 ODEwOGQ1MjQ5ZTNkZTA5OWZmOTM0MDNjMDAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBMZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+CkRhdGU6IFNhdCwgMjYgQXVnIDIwMjMg MTQ6NTI6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4OS8xODldIFtETyBOT1QgTUVSR0VdIG11 c2w6IGRyb3AgcGF0Y2gKCi0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxvY2FycmF5 LnBhdGNoIHwgNDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMv MDBlbXB0eS5wYXRjaCAgICAgICAgIHwgIDAKIDIgZmlsZXMgY2hhbmdlZCwgNDIgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxvY2Fy cmF5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDBlbXB0 eS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJh eS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZhYWIzMzBlODlhZC4uMDAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMC1yZWFsbG9jYXJyYXkucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw0MiArMCwwIEBACi1Gcm9tIDgyMTA4M2FjN2I1NGVhYTA0MGQ1YThkZGM2N2M2 MjA2YTE3NWUwY2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmlhZG5lIENvbmls bCA8YXJpYWRuZUBkZXJlZmVyZW5jZWQub3JnPgotRGF0ZTogU2F0LCAxIEF1ZyAyMDIwIDA4OjI2 OjM1IC0wNjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGltcGxlbWVudCByZWFsbG9jYXJyYXkKLQotcmVh bGxvY2FycmF5IGlzIGFuIGV4dGVuc2lvbiBpbnRyb2R1Y2VkIGJ5IE9wZW5CU0QsIHdoaWNoIGlu dHJvZHVjZXMKLWNhbGxvYyBvdmVyZmxvdyBjaGVja2luZyB0byByZWFsbG9jLgotCi1nbGliYyAy LjI4IGludHJvZHVjZWQgc3VwcG9ydCBmb3IgdGhpcyBmdW5jdGlvbiBiZWhpbmQgX0dOVV9TT1VS Q0UsCi13aGlsZSBnbGliYyAyLjI5IGFsbG93cyBpdHMgdXNhZ2UgaW4gX0RFRkFVTFRfU09VUkNF LgotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKLWlu ZGV4IDE5NGMyMDMzLi5iNTRhMDUxZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvc3RkbGliLmgKLSsr KyBiL2luY2x1ZGUvc3RkbGliLmgKLUBAIC0xNDUsNiArMTQ1LDcgQEAgaW50IGdldGxvYWRhdmco ZG91YmxlICosIGludCk7Ci0gaW50IGNsZWFyZW52KHZvaWQpOwotICNkZWZpbmUgV0NPUkVEVU1Q KHMpICgocykgJiAweDgwKQotICNkZWZpbmUgV0lGQ09OVElOVUVEKHMpICgocykgPT0gMHhmZmZm KQotK3ZvaWQgKnJlYWxsb2NhcnJheSAodm9pZCAqLCBzaXplX3QsIHNpemVfdCk7Ci0gI2VuZGlm Ci0gCi0gI2lmZGVmIF9HTlVfU09VUkNFCi1kaWZmIC0tZ2l0IGEvc3JjL21hbGxvYy9yZWFsbG9j YXJyYXkuYyBiL3NyYy9tYWxsb2MvcmVhbGxvY2FycmF5LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMC4uNGE2ZWJlNDYKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9tYWxs b2MvcmVhbGxvY2FycmF5LmMKLUBAIC0wLDAgKzEsMTMgQEAKLSsjZGVmaW5lIF9CU0RfU09VUkNF Ci0rI2luY2x1ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotK3ZvaWQgKnJl YWxsb2NhcnJheSh2b2lkICpwdHIsIHNpemVfdCBtLCBzaXplX3QgbikKLSt7Ci0rCWlmIChuICYm IG0gPiAtMSAvIG4pIHsKLSsJCWVycm5vID0gRU5PTUVNOwotKwkJcmV0dXJuIDA7Ci0rCX0KLSsK LSsJcmV0dXJuIHJlYWxsb2MocHRyLCBtICogbik7Ci0rfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9t dXNsL3BhdGNoZXMvMDBlbXB0eS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwZW1wdHku cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJi MmQxZAo= --===============3106396978358431573==--