From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Date: Mon, 6 Jul 2015 19:47:12 +0200 From: Clemens Gruber Message-ID: <20150706174711.GA1717@pqgruber.com> MIME-Version: 1.0 Content-Disposition: inline Subject: [ptxdist] [PATCH v2] procps: switch from procps to procps-ng List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Michael Olbrich VGhlIHByb2NwcyBwYWNrYWdlIGlzIHVubWFpbnRhaW5lZCwgdGhlcmVmb3JlIHN3aXRjaCB0byBw cm9jcHMtbmcsIHdoaWNoCmlzIHVzZWQgYnkgbWFueSBtYWpvciBkaXN0cmlidXRpb25zLgoKQ2M6 IE1pY2hhZWwgT2xicmljaCA8bS5vbGJyaWNoQHBlbmd1dHJvbml4LmRlPgpTaWduZWQtb2ZmLWJ5 OiBDbGVtZW5zIEdydWJlciA8Y2xlbWVucy5ncnViZXJAcHFncnViZXIuY29tPgotLS0KCkNoYW5n ZXMgZnJvbSBWMToKLSBBZGQgbmN1cnNlcyBzZWxlY3QgdG8gc3ViIG9wdGlvbnMKLSBSZXBsYWNl IFNvdXJjZWZvcmdlIHdpdGggR2l0bGFiIFVSTAotIEFkZCBhdXRvZ2VuLnNoCi0gUmVtb3ZlIHBh dGNoZXMgZnJvbSBvbGQgcHJvY3BzCi0gU2VsZWN0IFNZU1RFTUQgYW5kIGRlZmF1bHQgdG8gSU5J VE1FVEhPRF9TWVNURU1ECi0gRml4IHBpZG9mIGNhbGwgaW4gY2hyb255IHNjcmlwdHMgKHBpZG9m IG1vdmVkIHRvIC91c3IvYmluKQoKLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAxLXNsYWJ0 b3Bfb25jZS5wYXRjaCAgICAgICB8IDEyNSAtLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAw Mi1mcmVlLjEucGF0Y2ggICAgICAgICAgICAgfCAxMTIgLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDMtb3V0cHV0X3NvcnRfdGltZS5wYXRjaCAgIHwgMTAyIC0tLS0KIHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMDQtcG1hcC4xLnBhdGNoICAgICAgICAgICAgIHwgIDU3IC0tLQogcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAwNS0xMF9wcy4xLnBhdGNoICAgICAgICAgICAgfCAgNzIgLS0tCiBw YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA2LXNraWxsLjEucGF0Y2ggICAgICAgICAgICB8IDEyNSAt LS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNy1za2lsbF9wZXJyb3IucGF0Y2ggICAgICAg fCAgMjUgLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwOC1zbGFidG9wXzEucGF0Y2ggICAgICAg ICAgfCAxMDYgLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwOS1zeXNjdGwuOC5wYXRjaCAg ICAgICAgICAgfCAxNTcgLS0tLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDEwLXN5c2N0bF9v cHRpb25zLnBhdGNoICAgICB8ICA1NyAtLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTEtdGxv YWQuMS5wYXRjaCAgICAgICAgICAgIHwgIDI2IC0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTIt dG9wX2lyaXgucGF0Y2ggICAgICAgICAgIHwgIDUzIC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDEzLXRvcF9ub19vcGVucHJvYy5wYXRjaCAgICB8ICAzMCAtLQogcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAxNC10b3Bfc3RkaW5fZW9mLnBhdGNoICAgICAgfCAgMjkgLS0KIHBhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMTUtdG9wX3VpZF9sZW5ndGgucGF0Y2ggICAgIHwgIDI2IC0KIHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMTYtdXB0aW1lLjEucGF0Y2ggICAgICAgICAgIHwgIDU3IC0tLQogcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAxNy12bXN0YXQuOC5wYXRjaCAgICAgICAgICAgfCAxMTkgLS0tLS0K IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTgtd2F0Y2guMS5wYXRjaCAgICAgICAgICAgIHwgMTEy IC0tLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE5LXdfdGltZS5wYXRjaCAgICAgICAgICAg ICB8ICAyNiAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIwLWtpbGwuMS5wYXRjaCAgICAgICAg ICAgICB8IDE1NyAtLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjEta2lsbF93YXJuY3Iu cGF0Y2ggICAgICAgIHwgIDM1IC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIyLW1vZHVsZV9t a19zaGFyZWQucGF0Y2ggICB8ICAyNiAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIzLXN5c2lu Zm9fZWxmbm90ZS5wYXRjaCAgICB8ICAzMiAtLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNC10 b3AuMS5wYXRjaCAgICAgICAgICAgICAgfCA0MjcgLS0tLS0tLS0tLS0tLS0tLQogcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDAyNS10b3BfY19yZXNpemUucGF0Y2ggICAgICAgfCAgODYgLS0tLQogcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNi13LWJhc3NtYW4ucGF0Y2ggICAgICAgICAgfCAgOTkgLS0t LQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNy10b3AuMV9jcHVzdGF0ZXMucGF0Y2ggICAgfCAg NjAgLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI4LXdhdGNoXzhiaXRjaGFyLnBhdGNoICAg ICB8ICAyNiAtCiAuLi4vcHJvY3BzLTMuMi44LzAwMjktbGlicmFyeV9tYXBfZnJlZXByb2MucGF0 Y2ggICB8ICAyNiAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMwLXBncmVwX3N0YXJ0X3RpbWUu cGF0Y2ggICB8ICAyNyAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMxLXJlYWRwcm9jX2MucGF0 Y2ggICAgICAgICB8ICAzNSAtLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMi1zeXNpbmZvXzdf bnVtYmVycy5wYXRjaCAgfCAgNDYgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzMtdGxvYWRf bm9fb3B0YXJncy5wYXRjaCAgIHwgIDI3IC0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzQtdy4x LnBhdGNoICAgICAgICAgICAgICAgIHwgIDgwIC0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAz NS13X2NvbHVtbnMucGF0Y2ggICAgICAgICAgfCAgNDEgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoICAgIHwgMjcxIC0tLS0tLS0tLS0KIHBhdGNoZXMv cHJvY3BzLTMuMi44LzAwMzctcGF0aF9tYXgucGF0Y2ggICAgICAgICAgIHwgIDg3IC0tLS0KIHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZsZW5ndGgucGF0Y2ggICAgICAgIHwgMTgzIC0t LS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzktZ251LWtic2QtdmVyc2lvbi5wYXRjaCAg IHwgIDQ3IC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQwLXBncmVwX2Nfb3B0aW9uLnBhdGNo ICAgICB8ICA5NiAtLS0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQxLXBzX2Nncm91cF9kaXNw bGF5LnBhdGNoICB8IDE3NSAtLS0tLS0tCiAuLi4vcHJvY3BzLTMuMi44LzAwNDItd2F0Y2hfcHJl Y2lzaW9uX3RpbWUucGF0Y2ggICB8IDIyNiAtLS0tLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNDMtd2F0Y2hfdW5pY29kZS5wYXRjaCAgICAgIHwgMzExIC0tLS0tLS0tLS0tLQogLi4uLzAw NDQtY29tcGxhaW5fdW5tb3VudGVkX3Byb2MucGF0Y2ggICAgICAgICAgICAgfCAgMjkgLS0KIHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwNDUtcHNfc3VwZ2lkX2Rpc3BsYXkucGF0Y2ggIHwgNDc1IC0t LS0tLS0tLS0tLS0tLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0Ni1tYWtlZmlsZV9kZXZf bnVsbC5wYXRjaCAgfCAgMjUgLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0Ny1wZ3JlcC4xLnBh dGNoICAgICAgICAgICAgfCAyMTggLS0tLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDgt cHNfc2l6ZV9zei5wYXRjaCAgICAgICAgIHwgIDQwIC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDQ5LXRvcF9taW50aW1lLnBhdGNoICAgICAgICB8ICAyNyAtCiBwYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDUwLXZtc3RhdF9oZWFkZXJzLnBhdGNoICAgICB8IDE1OSAtLS0tLS0KIC4uLi9wcm9jcHMt My4yLjgvMDA1MS1wZ3JlcF91c2FnZV9leGl0Y29kZS5wYXRjaCAgIHwgIDI2IC0KIHBhdGNoZXMv cHJvY3BzLTMuMi44LzAwNTItcHNfMV9vcHRpb25zLnBhdGNoICAgICAgIHwgNTU3IC0tLS0tLS0t LS0tLS0tLS0tLS0tLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1My10b3BfaGlnaGxpZ2h0LnBh dGNoICAgICAgfCAgMjkgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTQtdG9wX25vaHoucGF0 Y2ggICAgICAgICAgIHwgIDI1IC0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTUtdm1zdGF0X3Bh cnRfZm9ybWF0LnBhdGNoIHwgIDk0IC0tLS0KIC4uLi9wcm9jcHMtMy4yLjgvMDA1Ni1yZWFkcHJv Y19kb3VibGVfZnJlZS5wYXRjaCAgIHwgIDMyIC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU3 LXZtc3RhdF91bml0cy5wYXRjaCAgICAgICB8ICA3MCAtLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNTgtc2tpbGxfbnVsbF9hcmd2LnBhdGNoICAgIHwgIDI1IC0KIHBhdGNoZXMvcHJvY3BzLTMu Mi44LzAwNTktc2tpbGxfbXVsdGlhcmcucGF0Y2ggICAgIHwgIDI1IC0KIC4uLi8wMDYwLXByb2Nf dmVyc2lvbl9jb25zdHJ1Y3Rvci5wYXRjaCAgICAgICAgICAgIHwgIDUyIC0tCiBwYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDYxLXBtYXBzX3NtYXBzLnBhdGNoICAgICAgICB8IDE1MCAtLS0tLS0KIHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwNjItdG9wX251bWVyaWNfYXJncy5wYXRjaCAgIHwgMTA5IC0t LS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjMtdG9wXzFfc3dhcC5wYXRjaCAgICAgICAgIHwg IDM0IC0tCiBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY0LXdfdXNlcnByb2MucGF0Y2ggICAgICAg ICB8ICAyNSAtCiAuLi4vcHJvY3BzLTMuMi44LzAwNjUtc3lzaW5mb19rZnJlZWJzZF9oZXJ0ei5w YXRjaCB8ICAzMSAtLQogcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2Ni1wc18xX2ZsdF9vdXRwdXQu cGF0Y2ggICAgfCAgNDAgLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjctd2F0Y2hfYW5zaV9j b2xvdXIucGF0Y2ggIHwgMTkzIC0tLS0tLS0KIHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjgtdG9w X3VzZXJuYW1lX3BhcnNlLnBhdGNoIHwgIDI1IC0KIC4uLjY5LWRvbi10LWluc3RhbGwtc3R1ZmYt dGhhdC13YXMtbm90LWJ1aWx0LnBhdGNoIHwgIDMxIC0tCiAuLi5hbWUtcmVnaXN0ZXJzLW9wdGlv bi1kdWUtdG8tSUNFLW9uLWdjYy00Li5wYXRjaCB8ICAyNSAtCiAuLi4vMDA3MS1maXgtYnVpbGQt d2l0aC1tYWtlLTMuODIucGF0Y2ggICAgICAgICAgICB8ICAzNiAtLQogcGF0Y2hlcy9wcm9jcHMt My4yLjgvc2VyaWVzICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzEgLS0tCiBwYXRjaGVzL3By b2Nwcy1uZy0zLjMuMTAvYXV0b2dlbi5zaCAgICAgICAgICAgICAgICB8ICAgMiArCiBwcm9qZWN0 cm9vdC9ldGMvaW5pdC5kL2Nocm9ueSAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogcHJv amVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfY29tbWFuZCAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHByb2plY3Ryb290L3Vzci9iaW4vY2hyb255X3N0YXQgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBydWxlcy9wcm9jcHMuaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDE2NCArKysrLS0KIHJ1bGVzL3Byb2Nwcy5tYWtlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTA2ICsrLS0KIDc4IGZpbGVzIGNoYW5nZWQsIDIxNSBpbnNlcnRpb25zKCspLCA2 NzkxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMDEtc2xhYnRvcF9vbmNlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDAwMi1mcmVlLjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDAzLW91dHB1dF9zb3J0X3RpbWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA0LXBtYXAuMS5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDUtMTBfcHMuMS5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDYtc2tpbGwuMS5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDctc2tpbGxfcGVycm9yLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwOC1zbGFidG9wXzEucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA5LXN5c2N0bC44 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxMC1zeXNj dGxfb3B0aW9ucy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMTEtdGxvYWQuMS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMTItdG9wX2lyaXgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDEzLXRvcF9ub19vcGVucHJvYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwMTQtdG9wX3N0ZGluX2VvZi5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTUtdG9wX3VpZF9sZW5ndGgucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE2LXVwdGltZS4xLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxNy12bXN0YXQuOC5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTgtd2F0Y2gu MS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTktd190 aW1lLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMC1r aWxsLjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDIx LWtpbGxfd2FybmNyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAyMi1tb2R1bGVfbWtfc2hhcmVkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAyMy1zeXNpbmZvX2VsZm5vdGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI0LXRvcC4xLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNS10b3BfY19yZXNpemUucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI2LXctYmFzc21hbi5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjctdG9wLjFfY3B1c3Rh dGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyOC13 YXRjaF84Yml0Y2hhci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMjktbGlicmFyeV9tYXBfZnJlZXByb2MucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBw YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMwLXBncmVwX3N0YXJ0X3RpbWUucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMxLXJlYWRwcm9jX2MucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMyLXN5c2luZm9fN19udW1i ZXJzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMy10 bG9hZF9ub19vcHRhcmdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAzNC13LjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDM1LXdfY29sdW1ucy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNy1wYXRoX21heC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZsZW5ndGgucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM5LWdudS1rYnNkLXZlcnNpb24ucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQwLXBncmVwX2Nf b3B0aW9uLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0 MS1wc19jZ3JvdXBfZGlzcGxheS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNDItd2F0Y2hfcHJlY2lzaW9uX3RpbWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQzLXdhdGNoX3VuaWNvZGUucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ0LWNvbXBsYWluX3VubW91bnRl ZF9wcm9jLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0 NS1wc19zdXBnaWRfZGlzcGxheS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNDYtbWFrZWZpbGVfZGV2X251bGwucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ3LXBncmVwLjEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ4LXBzX3NpemVfc3oucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ5LXRvcF9taW50aW1lLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1MC12bXN0YXRfaGVhZGVy cy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTEtcGdy ZXBfdXNhZ2VfZXhpdGNvZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDUyLXBzXzFfb3B0aW9ucy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNo ZXMvcHJvY3BzLTMuMi44LzAwNTMtdG9wX2hpZ2hsaWdodC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTQtdG9wX25vaHoucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU1LXZtc3RhdF9wYXJ0X2Zvcm1hdC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTYtcmVhZHByb2Nf ZG91YmxlX2ZyZWUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDU3LXZtc3RhdF91bml0cy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNTgtc2tpbGxfbnVsbF9hcmd2LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1OS1za2lsbF9tdWx0aWFyZy5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjAtcHJvY192ZXJzaW9uX2NvbnN0cnVj dG9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2MS1w bWFwc19zbWFwcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNjItdG9wX251bWVyaWNfYXJncy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMv cHJvY3BzLTMuMi44LzAwNjMtdG9wXzFfc3dhcC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBh dGNoZXMvcHJvY3BzLTMuMi44LzAwNjQtd191c2VycHJvYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjUtc3lzaW5mb19rZnJlZWJzZF9oZXJ0ei5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjYtcHNfMV9mbHRf b3V0cHV0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2 Ny13YXRjaF9hbnNpX2NvbG91ci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNjgtdG9wX3VzZXJuYW1lX3BhcnNlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2OS1kb24tdC1pbnN0YWxsLXN0dWZmLXRoYXQtd2Fz LW5vdC1idWlsdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNzAtcmVtb3ZlLWZyZW5hbWUtcmVnaXN0ZXJzLW9wdGlvbi1kdWUtdG8tSUNFLW9uLWdjYy00 Li5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvcHJvY3BzLTMuMi44LzAwNzEtZml4 LWJ1aWxkLXdpdGgtbWFrZS0zLjgyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9w cm9jcHMtMy4yLjgvc2VyaWVzCiBjcmVhdGUgbW9kZSAxMDA3NTUgcGF0Y2hlcy9wcm9jcHMtbmct My4zLjEwL2F1dG9nZW4uc2gKCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAx LXNsYWJ0b3Bfb25jZS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDEtc2xhYnRvcF9v bmNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDhhNDUxLi4wMDAwMDAw Ci0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDEtc2xhYnRvcF9vbmNlLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLUZyb20gY2M1M2ViOGFlZTEyZTMyODYxZTYwNzNk OWU2YmQ3ZDAxNWExNWM1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9m dHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04 LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAg MjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAwMS83MF0gc2xhYnRvcF9vbmNlCi0KLS0t LQotIHNsYWJ0b3AuYyB8ICAgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3NsYWJ0b3AuYyBiL3NsYWJ0b3AuYwotaW5kZXggMzYwMjVl Mi4uNWM5ZDMxZSAxMDA2NDQKLS0tLSBhL3NsYWJ0b3AuYwotKysrIGIvc2xhYnRvcC5jCi1AQCAt MjY4LDExICsyNjgsMTMgQEAgc3RhdGljIHZvaWQgcGFyc2VfaW5wdXQoY2hhciBjKQotIAl9Ci0g fQotIAotKyNkZWZpbmUgcHJpbnRfbGluZShmbXQsIGFyZ3MuLi4pIGlmIChydW5fb25jZSkgcHJp bnRmKGZtdCwgIyMgYXJncyk7IGVsc2UgcHJpbnR3KGZtdCwgIyMgYXJncykKLSBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdKQotIHsKLSAJaW50IG87Ci0gCXVuc2lnbmVkIHNob3J0IG9s ZF9yb3dzOwotIAlzdHJ1Y3Qgc2xhYl9pbmZvICpzbGFiX2xpc3QgPSBOVUxMOwotKyAgaW50IHJ1 bl9vbmNlPTA7Ci0gCi0gCXN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKLSAJCXsgImRlbGF5 IiwJMSwgTlVMTCwgJ2QnIH0sCi1AQCAtMzA2LDYgKzMwOCw3IEBAIGludCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCi0gCQkJc29ydF9mdW5jID0gc2V0X3NvcnRfZnVuYyhvcHRhcmdbMF0p OwotIAkJCWJyZWFrOwotIAkJY2FzZSAnbyc6Ci0rICAgICAgcnVuX29uY2U9MTsKLSAJCQlkZWxh eSA9IDA7Ci0gCQkJYnJlYWs7Ci0gCQljYXNlICdWJzoKLUBAIC0zMjIsMTEgKzMyNSwxMyBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAlpZiAodGNnZXRhdHRyKDAsICZzYXZl ZF90dHkpID09IC0xKQotIAkJcGVycm9yKCJ0Y2dldGF0dHIiKTsKLSAKLS0JaW5pdHNjcigpOwot LQl0ZXJtX3NpemUoMCk7Ci0gCW9sZF9yb3dzID0gcm93czsKLS0JcmVzaXpldGVybShyb3dzLCBj b2xzKTsKLS0Jc2lnbmFsKFNJR1dJTkNILCB0ZXJtX3NpemUpOwotKwl0ZXJtX3NpemUoMCk7Ci0r ICBpZiAoIXJ1bl9vbmNlKSB7Ci0rICAgIGluaXRzY3IoKTsKLSsJICByZXNpemV0ZXJtKHJvd3Ms IGNvbHMpOwotKwkgIHNpZ25hbChTSUdXSU5DSCwgdGVybV9zaXplKTsKLSsgIH0KLSAJc2lnbmFs KFNJR0lOVCwgc2lnaW50X2hhbmRsZXIpOwotIAotIAlkbyB7Ci1AQCAtMzQwLDEzICszNDUsMTMg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCWlmIChnZXRfc2xhYmluZm8o JnNsYWJfbGlzdCwgJnN0YXRzKSkKLSAJCQlicmVhazsKLSAKLS0JCWlmIChvbGRfcm93cyAhPSBy b3dzKSB7Ci0rCQlpZiAoIXJ1bl9vbmNlICYmIG9sZF9yb3dzICE9IHJvd3MpIHsKLSAJCQlyZXNp emV0ZXJtKHJvd3MsIGNvbHMpOwotIAkJCW9sZF9yb3dzID0gcm93czsKLSAJCX0KLSAKLSAJCW1v dmUoMCwwKTsKLS0JCXByaW50dygJIiBBY3RpdmUgLyBUb3RhbCBPYmplY3RzICglJSB1c2VkKSAg ICA6ICVkIC8gJWQgKCUuMWYlJSlcbiIKLSsJCXByaW50X2xpbmUoCSIgQWN0aXZlIC8gVG90YWwg T2JqZWN0cyAoJSUgdXNlZCkgICAgOiAlZCAvICVkICglLjFmJSUpXG4iCi0gCQkJIiBBY3RpdmUg LyBUb3RhbCBTbGFicyAoJSUgdXNlZCkgICAgICA6ICVkIC8gJWQgKCUuMWYlJSlcbiIKLSAJCQki IEFjdGl2ZSAvIFRvdGFsIENhY2hlcyAoJSUgdXNlZCkgICAgIDogJWQgLyAlZCAoJS4xZiUlKVxu IgotIAkJCSIgQWN0aXZlIC8gVG90YWwgU2l6ZSAoJSUgdXNlZCkgICAgICAgOiAlLjJmSyAvICUu MmZLICglLjFmJSUpXG4iCi1AQCAtMzYxLDE0ICszNjYsMTQgQEAgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKLSAJCXNsYWJfbGlzdCA9IHNsYWJzb3J0KHNsYWJfbGlzdCk7Ci0gCi0g CQlhdHRyb24oQV9SRVZFUlNFKTsKLS0JCXByaW50dygJIiU2cyAlNnMgJTRzICU4cyAlNnMgJThz ICUxMHMgJS0yM3NcbiIsCi0rCQlwcmludF9saW5lKAkiJTZzICU2cyAlNHMgJThzICU2cyAlOHMg JTEwcyAlLTIzc1xuIiwKLSAJCQkiT0JKUyIsICJBQ1RJVkUiLCAiVVNFIiwgIk9CSiBTSVpFIiwg IlNMQUJTIiwKLSAJCQkiT0JKL1NMQUIiLCAiQ0FDSEUgU0laRSIsICJOQU1FIik7Ci0gCQlhdHRy b2ZmKEFfUkVWRVJTRSk7Ci0gCi0gCQljdXJyID0gc2xhYl9saXN0OwotIAkJZm9yIChpID0gMDsg aSA8IHJvd3MgLSA4ICYmIGN1cnItPm5leHQ7IGkrKykgewotLQkJCXByaW50dygiJTZ1ICU2dSAl M3UlJSAlNy4yZksgJTZ1ICU4dSAlOXVLICUtMjNzXG4iLAotKwkJCXByaW50X2xpbmUoIiU2dSAl NnUgJTN1JSUgJTcuMmZLICU2dSAlOHUgJTl1SyAlLTIzc1xuIiwKLSAJCQkJY3Vyci0+bnJfb2Jq cywgY3Vyci0+bnJfYWN0aXZlX29ianMsIGN1cnItPnVzZSwKLSAJCQkJY3Vyci0+b2JqX3NpemUg LyAxMDI0LjAsIGN1cnItPm5yX3NsYWJzLAotIAkJCQljdXJyLT5vYmpzX3Blcl9zbGFiLCAodW5z aWduZWQpKGN1cnItPmNhY2hlX3NpemUgLyAxMDI0KSwKLUBAIC0zNzYsMjIgKzM4MSwyNCBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCWN1cnIgPSBjdXJyLT5uZXh0Owot IAkJfQotIAotLQkJcmVmcmVzaCgpOwotIAkJcHV0X3NsYWJpbmZvKHNsYWJfbGlzdCk7Ci0gCi0t CQlGRF9aRVJPKCZyZWFkZmRzKTsKLS0JCUZEX1NFVCgwLCAmcmVhZGZkcyk7Ci0tCQl0di50dl9z ZWMgPSBkZWxheTsKLS0JCXR2LnR2X3VzZWMgPSAwOwotLQkJaWYgKHNlbGVjdCgxLCAmcmVhZGZk cywgTlVMTCwgTlVMTCwgJnR2KSA+IDApIHsKLS0JCQlpZiAocmVhZCgwLCAmYywgMSkgIT0gMSkK LS0JCQkJYnJlYWs7Ci0tCQkJcGFyc2VfaW5wdXQoYyk7Ci0tCQl9Ci0rCQlpZiAoIXJ1bl9vbmNl KSB7Ci0rICAgICAgcmVmcmVzaCgpOwotKwkJICBGRF9aRVJPKCZyZWFkZmRzKTsKLSsJCSAgRkRf U0VUKDAsICZyZWFkZmRzKTsKLSsJCSAgdHYudHZfc2VjID0gZGVsYXk7Ci0rCQkgIHR2LnR2X3Vz ZWMgPSAwOwotKwkJICBpZiAoc2VsZWN0KDEsICZyZWFkZmRzLCBOVUxMLCBOVUxMLCAmdHYpID4g MCkgewotKwkJCSAgaWYgKHJlYWQoMCwgJmMsIDEpICE9IDEpCi0rCQkJCSAgYnJlYWs7Ci0rCQkJ ICBwYXJzZV9pbnB1dChjKTsKLSsJCSAgfQotKyAgICB9Ci0gCX0gd2hpbGUgKGRlbGF5KTsKLSAK LSAJdGNzZXRhdHRyKDAsIFRDU0FGTFVTSCwgJnNhdmVkX3R0eSk7Ci0gCWZyZWVfc2xhYmluZm8o c2xhYl9saXN0KTsKLS0JZW5kd2luKCk7Ci0rCWlmICghcnVuX29uY2UpIGVuZHdpbigpOwotIAly ZXR1cm4gMDsKLSB9Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDItZnJlZS4xLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwMi1mcmVlLjEu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0YmNiMGYuLjAwMDAwMDAKLS0t IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwMi1mcmVlLjEucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxMTIgKzAsMCBAQAotRnJvbSA1ZjQxOTU0ZGI4NGVjNDMyMDViNzFmNzlhOThjNDZkMjRk NTVjY2E5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJp YW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRh ci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NSAr MDEwMAotU3ViamVjdDogW1BBVENIIDAyLzcwXSBmcmVlLjEKLQotLS0tCi0gZnJlZS4xIHwgICA3 NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvZnJlZS4xIGIvZnJlZS4xCi1pbmRleCA5NTRjOGQ5Li5jYWUx MjQxIDEwMDY0NAotLS0tIGEvZnJlZS4xCi0rKysgYi9mcmVlLjEKLUBAIC0xLDQ3ICsxLDY3IEBA Ci0gLlwiICAgICAgICAgICAgIC0qLU5yb2ZmLSotCi0gLlwiICBUaGlzIHBhZ2UgQ29weXJpZ2h0 IChDKSAxOTkzIE1hdHQgV2Vsc2gsIG1kd0BzdW5zaXRlLnVuYy5lZHUuCi0gLlwiICBGcmVlbHkg ZGlzdHJpYnV0YWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdQTAotLS5USCBGUkVFIDEgIjIw IE1hciAxOTkzICIgIkNvaGVzaXZlIFN5c3RlbXMiICJMaW51eCBVc2VyJ3MgTWFudWFsIgotKy5U SCBGUkVFIDEgIjUgT2N0IDIwMDkgIiAiQ29oZXNpdmUgU3lzdGVtcyIgIkxpbnV4IFVzZXIncyBN YW51YWwiCi0gLlNIIE5BTUUKLSBmcmVlIFwtIERpc3BsYXkgYW1vdW50IG9mIGZyZWUgYW5kIHVz ZWQgbWVtb3J5IGluIHRoZSBzeXN0ZW0KLSAuU0ggU1lOT1BTSVMKLS0uQlIgImZyZWUgIiBbICJc LWIiICIgfCAiICJcLWsiICIgfCAiICJcLW0iICJdIFsiICJcLW8iICJdIFsiICJcLXMiCi0tLkkg ZGVsYXkKLS0uUkIgIl0gWyIgIlwtdCIgIl0gWyIgIlwtViIgXQotKy5CIGZyZWUKLSsuUkIgWyBc LWIgfCBcLWsgfCBcLW0gfCBcLWcgXQotKy5SQiBbIFwtYwotKy5JUiBjb3VudCBdCi0rLlJCIFsg XC1sIF0KLSsuUkIgWyBcLW8gXQotKy5SQiBbIFwtdCBdCi0rLlJCIFsgXC1zCi0rLklSIGRlbGF5 IF0KLSsuUkIgWyBcLVYgXQotIC5TSCBERVNDUklQVElPTgotIFxmQmZyZWVcZlAgZGlzcGxheXMg dGhlIHRvdGFsIGFtb3VudCBvZiBmcmVlIGFuZCB1c2VkIHBoeXNpY2FsIGFuZCBzd2FwIAotIG1l bW9yeSBpbiB0aGUgc3lzdGVtLCBhcyB3ZWxsIGFzIHRoZSBidWZmZXJzIHVzZWQgYnkgdGhlIGtl cm5lbC4KLSBUaGUgc2hhcmVkIG1lbW9yeSBjb2x1bW4gc2hvdWxkIGJlIGlnbm9yZWQ7IGl0IGlz IG9ic29sZXRlLgotLS5TUyBPcHRpb25zCi0tVGhlIFxmQi1iXGZQIHN3aXRjaCBkaXNwbGF5cyB0 aGUgYW1vdW50IG9mIG1lbW9yeSBpbiBieXRlczsgdGhlIAotLVxmQi1rXGZQIHN3aXRjaCAoc2V0 IGJ5IGRlZmF1bHQpIGRpc3BsYXlzIGl0IGluIGtpbG9ieXRlczsgdGhlIFxmQi1tXGZQCi0tc3dp dGNoIGRpc3BsYXlzIGl0IGluIG1lZ2FieXRlcy4KLS0uUFAKLS1UaGUgXGZCLXRcZlAgc3dpdGNo IGRpc3BsYXlzIGEgbGluZSBjb250YWluaW5nIHRoZSB0b3RhbHMuCi0tLlBQCi0tVGhlIFxmQi1v XGZQIHN3aXRjaCBkaXNhYmxlcyB0aGUgZGlzcGxheSBvZiBhICJidWZmZXIgYWRqdXN0ZWQiIGxp bmUuCi0tSWYgdGhlIC1vIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLCBcZkJmcmVlXGZQIHN1YnRy YWN0cyBidWZmZXIgbWVtb3J5Ci0tZnJvbSB0aGUgdXNlZCBtZW1vcnkgYW5kIGFkZHMgaXQgdG8g dGhlIGZyZWUgbWVtb3J5IHJlcG9ydGVkLgotLS5QUAotLVRoZSBcZkItc1xmUCBzd2l0Y2ggYWN0 aXZhdGVzIGNvbnRpbnVvdXMgcG9sbGluZyBcZklkZWxheVxmUCBzZWNvbmRzIGFwYXJ0LiBZb3UK LSsuU1MgT1BUSU9OUwotKy5UUAotK1xmQlwtYlxmUgotK0Rpc3BsYXkgdGhlIGFtb3VudCBvZiBt ZW1vcnkgaW4gYnl0ZXMuCi0rLlRQCi0rXGZCXC1jXGZSIFxmSWNvdW50XGZSCi0rRGlzcGxheSB0 aGUgcmVzdWx0IFxmSWNvdW50XGZSIHRpbWVzLiAgUmVxdWlyZXMgdGhlIFxmQlwtc1xmUiBvcHRp b24uCi0rLlRQCi0rXGZCXC1nXGZSCi0rRGlzcGxheSB0aGUgYW1vdW50IG9mIG1lbW9yeSBpbiBn aWdhYnl0ZXMuCi0rLlRQCi0rXGZCXC1rXGZSCi0rRGlzcGxheSB0aGUgYW1vdW50IG9mIG1lbW9y eSBpbiBraWxvYnl0ZXMuIFRoaXMgaXMgdGhlIGRlZmF1bHQuCi0rLlRQCi0rXGZCXC1sXGZSCi0r U2hvdyBkZXRhaWxlZCBsb3cgYW5kIGhpZ2ggbWVtb3J5IHN0YXRpc3RpY3MuCi0rLlRQCi0rXGZC XC1tXGZSCi0rRGlzcGxheSB0aGUgYW1vdW50IG9mIG1lbW9yeSBpbiBtZWdhYnl0ZXMuCi0rLlRQ Ci0rXGZCXC1vXGZSCi0rRGlzcGxheSB0aGUgb3V0cHV0IGluIG9sZCBmb3JtYXQsIHRoZSBvbmx5 IGRpZmZlcmVuY2UgYmVpbmcgdGhpcyBvcHRpb24KLSt3aWxsIGRpc2FibGUgdGhlIGRpc3BsYXkg b2YgdGhlICJidWZmZXIgYWRqdXN0ZWQiIGxpbmUuCi0rLlRQCi0rXGZCXC1zXGZSCi0rQ29udGlu dW91c2x5IGRpc3BsYXkgdGhlIHJlc3VsdCBcZklkZWxheVxmUCBzZWNvbmRzIGFwYXJ0LiBZb3UK LSBtYXkgYWN0dWFsbHkgc3BlY2lmeSBhbnkgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGZvciBcZklk ZWxheVxmUCwgCi0gLkJSIHVzbGVlcCAoMykKLSBpcyB1c2VkIGZvciBtaWNyb3NlY29uZCByZXNv bHV0aW9uIGRlbGF5IHRpbWVzLgotLS5QUAotLVRoZSBcZkJcLVZcZlAgZGlzcGxheXMgdmVyc2lv biBpbmZvcm1hdGlvbi4KLSsuVFAKLStcZkJcLXRcZlIKLStEaXNwbGF5IGEgbGluZSBzaG93aW5n IHRoZSBjb2x1bW4gdG90YWxzLgotKy5UUAotK1xmQlwtVlxmUgotK0Rpc3BsYXkgdmVyc2lvbiBp bmZvcm1hdGlvbi4KLSAuU0ggRklMRVMKLS0udGEKLS0uSVIgL3Byb2MvbWVtaW5mbyAiXC1cLSBt ZW1vcnkgaW5mb3JtYXRpb24iCi0rLm5mCi0rL3Byb2MvbWVtaW5mbyBtZW1vcnkgaW5mb3JtYXRp b24KLSAuZmkKLS0KLS0uU0ggIlNFRSBBTFNPIgotLS5CUiBwcyAoMSksCi0tLkJSIHNsYWJ0b3Ag KDEpLAotLS5CUiB2bXN0YXQgKDgpLAotLS5CUiB0b3AoMSkKLS0KLSAuU0ggQVVUSE9SUwotIFdy aXR0ZW4gYnkgQnJpYW4gRWRtb25kcy4gCi0gCi0gU2VuZCBidWcgcmVwb3J0cyB0byA8YWxiZXJ0 QHVzZXJzLnNmLm5ldD4KLS0KLSsuU0ggIlNFRSBBTFNPIgotKy5CUiBwcyAiKDEpLCAiIHNsYWJ0 b3AgIigxKSwgIiB0b3AgIigxKSwgIiB2bXN0YXQgKDgpLgotKy5cInt7e319fQotLS0gCi0xLjcu MAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAzLW91dHB1dF9zb3J0X3Rp bWUucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDAzLW91dHB1dF9zb3J0X3RpbWUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxYjRjNDUuLjAwMDAwMDAKLS0tIGEv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwMy1vdXRwdXRfc29ydF90aW1lLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTAyICswLDAgQEAKLUZyb20gNDJmZDgxMmIxZmRlMmFhM2MwNWNkNjcyODJm N2NkZmNmOGY3ZTdiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAu ZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRl Ymlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6 NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAwMy83MF0gb3V0cHV0X3NvcnRfdGltZQotCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0KLSBwcy9vdXRwdXQuYyB8ICAgMjkgKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9wcy9vdXRwdXQuYyBiL3BzL291dHB1dC5jCi1pbmRleCA4N2Jm OWRlLi5iNGZiM2RmIDEwMDY0NAotLS0tIGEvcHMvb3V0cHV0LmMKLSsrKyBiL3BzL291dHB1dC5j Ci1AQCAtMTEwLDYgKzExMCwyMCBAQCBzdGF0aWMgaW50IHNyXyAjIyBOQU1FIChjb25zdCBwcm9j X3QqIFAsIGNvbnN0IHByb2NfdCogUSkgeyBcCi0gICAgIHJldHVybiAoaW50KShQLT5OQU1FKSAt IChpbnQpKFEtPk5BTUUpOyBcCi0gfQotIAotKyNkZWZpbmUgY29va190aW1lKFApIChQLT51dGlt ZSArIFAtPnN0aW1lKSAvIEhlcnR6Ci0rCi0rI2RlZmluZSBjb29rX2V0aW1lKFApIHNlY29uZHNf c2luY2VfYm9vdCAtICh1bnNpZ25lZCBsb25nKShQLT5zdGFydF90aW1lIC8gSGVydHopCi0rCi0r I2RlZmluZSBDTVBfQ09PS0VEX1RJTUUoTkFNRSkgXAotK3N0YXRpYyBpbnQgc3JfICMjIE5BTUUg KGNvbnN0IHByb2NfdCogUCwgY29uc3QgcHJvY190KiBRKSB7IFwKLSsgICAgdW5zaWduZWQgbG9u ZyBwX3RpbWUscV90aW1lOyBcCi0rICAgIHBfdGltZT1jb29rXyAjI05BTUUgKFApOyBcCi0rICAg IHFfdGltZT1jb29rXyAjI05BTUUgKFEpOyBcCi0rICAgIGlmIChwX3RpbWUgPCBxX3RpbWUpIHJl dHVybiAtMTsgXAotKyAgICBpZiAocF90aW1lID4gcV90aW1lKSByZXR1cm4gMTsgXAotKyAgICBy ZXR1cm4gMDsgXAotK30KLSsKLSBDTVBfSU5UKHJ0cHJpbykKLSBDTVBfU01BTEwoc2NoZWQpCi0g Q01QX0lOVChjdXRpbWUpCi1AQCAtMTg1LDYgKzE5OSw5IEBAIENNUF9TTUFMTChwY3B1KQotIAot IENNUF9TTUFMTChzdGF0ZSkKLSAKLStDTVBfQ09PS0VEX1RJTUUodGltZSkKLStDTVBfQ09PS0VE X1RJTUUoZXRpbWUpCi0rCi0gLyogYXBwcm94aW1hdGlvbiB0bzoga0Igb2YgYWRkcmVzcyBzcGFj ZSB0aGF0IGNvdWxkIGVuZCB1cCBpbiBzd2FwICovCi0gc3RhdGljIGludCBzcl9zd2FwYWJsZShj b25zdCBwcm9jX3QqIFAsIGNvbnN0IHByb2NfdCogUSkgewotICAgdW5zaWduZWQgbG9uZyBwX3N3 YXBhYmxlID0gUC0+dm1fZGF0YSArIFAtPnZtX3N0YWNrOwotQEAgLTQwOCw3ICs0MjUsNyBAQCBz dGF0aWMgaW50IHByX2V0aW1lKGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1ZiwgY29uc3QgcHJv Y190ICpyZXN0cmljdCBjb25zdCBwcAotICAgdW5zaWduZWQgbG9uZyB0OwotICAgdW5zaWduZWQg ZGQsaGgsbW0sc3M7Ci0gICBjaGFyICpjcCA9IG91dGJ1ZjsKLS0gIHQgPSBzZWNvbmRzX3NpbmNl X2Jvb3QgLSAodW5zaWduZWQgbG9uZykocHAtPnN0YXJ0X3RpbWUgLyBIZXJ0eik7Ci0rICB0ID0g Y29va19ldGltZShwcCk7Ci0gICBzcyA9IHQlNjA7Ci0gICB0IC89IDYwOwotICAgbW0gPSB0JTYw OwotQEAgLTQ3Niw3ICs0OTMsNyBAQCBzdGF0aWMgaW50IHByX3RpbWUoY2hhciAqcmVzdHJpY3Qg Y29uc3Qgb3V0YnVmLCBjb25zdCBwcm9jX3QgKnJlc3RyaWN0IGNvbnN0IHBwKQotICAgdW5zaWdu ZWQgbG9uZyB0OwotICAgdW5zaWduZWQgZGQsaGgsbW0sc3M7Ci0gICBpbnQgYzsKLS0gIHQgPSAo cHAtPnV0aW1lICsgcHAtPnN0aW1lKSAvIEhlcnR6OwotKyAgdCA9IGNvb2tfdGltZShwcCk7Ci0g ICBzcyA9IHQlNjA7Ci0gICB0IC89IDYwOwotICAgbW0gPSB0JTYwOwotQEAgLTEyODYsNyArMTMw Myw3IEBAIHN0YXRpYyBjb25zdCBmb3JtYXRfc3RydWN0IGZvcm1hdF9hcnJheVtdID0gewotIHsi YWxhcm0iLCAgICAgIkFMQVJNIiwgICBwcl9hbGFybSwgICAgc3JfYWxhcm0sICAgNSwgICAwLCAg ICBMTlgsIEFOfFJJR0hUfSwKLSB7ImFyZ2MiLCAgICAgICJBUkdDIiwgICAgcHJfbm9wLCAgICAg IHNyX25vcCwgICAgIDQsICAgMCwgICAgTE5YLCBQT3xSSUdIVH0sCi0geyJhcmdzIiwgICAgICAi Q09NTUFORCIsIHByX2FyZ3MsICAgICBzcl9jbWQsICAgIDI3LCBBUkcsICAgIFU5OCwgUE98VU5M SU1JVEVEfSwgLypjb21tYW5kKi8KLS17ImF0aW1lIiwgICAgICJUSU1FIiwgICAgcHJfdGltZSwg ICAgIHNyX25vcCwgICAgIDgsICAgMCwgICAgU09FLCBFVHxSSUdIVH0sIC8qY3B1dGltZSovIC8q IHdhcyA2IHdpZGUgKi8KLSt7ImF0aW1lIiwgICAgICJUSU1FIiwgICAgcHJfdGltZSwgICAgIHNy X3RpbWUsICAgICA4LCAgIDAsICAgIFNPRSwgRVR8UklHSFR9LCAvKmNwdXRpbWUqLyAvKiB3YXMg NiB3aWRlICovCi0geyJibG9ja2VkIiwgICAiQkxPQ0tFRCIsIHByX3NpZ21hc2ssICBzcl9ub3As ICAgICA5LCAgIDAsICAgIEJTRCwgVE98U0lHTkFMfSwgLypzaWdtYXNrKi8KLSB7ImJuZCIsICAg ICAgICJCTkQiLCAgICAgcHJfbm9wLCAgICAgIHNyX25vcCwgICAgIDEsICAgMCwgICAgQUlYLCBU T3xSSUdIVH0sCi0geyJic2RzdGFydCIsICAiU1RBUlQiLCAgIHByX2JzZHN0YXJ0LCBzcl9ub3As ICAgICA2LCAgIDAsICAgIExOWCwgRVR8UklHSFR9LAotQEAgLTEzMDUsNyArMTMyMiw3IEBAIHN0 YXRpYyBjb25zdCBmb3JtYXRfc3RydWN0IGZvcm1hdF9hcnJheVtdID0gewotIHsiY3AiLCAgICAg ICAgIkNQIiwgICAgICBwcl9jcCwgICAgICAgc3JfcGNwdSwgICAgMywgICAwLCAgICBERUMsIEVU fFJJR0hUfSwgLypjcHUqLwotIHsiY3B1IiwgICAgICAgIkNQVSIsICAgICBwcl9ub3AsICAgICAg c3Jfbm9wLCAgICAgMywgICAwLCAgICBCU0QsIEFOfFJJR0hUfSwgLyogRklYTUUgLi4uIEhQLVVY IHdhbnRzIHRoaXMgYXMgdGhlIENQVSBudW1iZXIgZm9yIFNNUD8gKi8KLSB7ImNwdWlkIiwgICAg ICJDUFVJRCIsICAgcHJfcHNyLCAgICAgIHNyX25vcCwgICAgIDUsICAgMCwgICAgQlNELCBUT3xS SUdIVH0sIC8vIE9wZW5CU0Q6IDggd2lkZSEKLS17ImNwdXRpbWUiLCAgICJUSU1FIiwgICAgcHJf dGltZSwgICAgIHNyX25vcCwgICAgIDgsICAgMCwgICAgREVDLCBFVHxSSUdIVH0sIC8qdGltZSov Ci0reyJjcHV0aW1lIiwgICAiVElNRSIsICAgIHByX3RpbWUsICAgICBzcl90aW1lLCAgICAgOCwg ICAwLCAgICBERUMsIEVUfFJJR0hUfSwgLyp0aW1lKi8KLSB7ImNzdGltZSIsICAgICItIiwgICAg ICAgcHJfbm9wLCAgICAgIHNyX2NzdGltZSwgIDEsICAgMCwgICAgTE5YLCBBTnxSSUdIVH0sCi0g eyJjdGlkIiwgICAgICAiQ1RJRCIsICAgIHByX25vcCwgICAgICBzcl9ub3AsICAgICA1LCAgIDAs ICAgIFNVTiwgRVR8UklHSFR9LCAvLyByZXNvdXJjZSBjb250cmFjdHM/Ci0geyJjdXJzaWciLCAg ICAiQ1VSU0lHIiwgIHByX25vcCwgICAgICBzcl9ub3AsICAgICA2LCAgIDAsICAgIERFQywgQU58 UklHSFR9LAotQEAgLTEzMjAsNyArMTMzNyw3IEBAIHN0YXRpYyBjb25zdCBmb3JtYXRfc3RydWN0 IGZvcm1hdF9hcnJheVtdID0gewotIHsiZW5kX2NvZGUiLCAgIkVfQ09ERSIsICBwcl9ub3AsICAg ICAgc3JfZW5kX2NvZGUsIDgsICAwLCAgICBMTngsIFBPfFJJR0hUfSwKLSB7ImVudmlyb24iLCJF TlZJUk9OTUVOVCIscHJfbm9wLCAgICAgIHNyX25vcCwgICAgMTEsIEVOViwgICAgTE54LCBQT3xV TkxJTUlURUR9LAotIHsiZXNwIiwgICAgICAgIkVTUCIsICAgICBwcl9lc3AsICAgICAgc3Jfa3N0 a19lc3AsIDgsICAwLCAgICBMTlgsIFRPfFJJR0hUfSwKLS17ImV0aW1lIiwgICAgICJFTEFQU0VE IiwgcHJfZXRpbWUsICAgIHNyX25vcCwgICAgMTEsICAgMCwgICAgVTk4LCBFVHxSSUdIVH0sIC8q IHdhcyA3IHdpZGUgKi8KLSt7ImV0aW1lIiwgICAgICJFTEFQU0VEIiwgcHJfZXRpbWUsICAgIHNy X2V0aW1lLCAgICAxMSwgICAwLCAgICBVOTgsIEVUfFJJR0hUfSwgLyogd2FzIDcgd2lkZSAqLwot IHsiZXVpZCIsICAgICAgIkVVSUQiLCAgICBwcl9ldWlkLCAgICAgc3JfZXVpZCwgICAgNSwgICAw LCAgICBMTlgsIEVUfFJJR0hUfSwKLSB7ImV1c2VyIiwgICAgICJFVVNFUiIsICAgcHJfZXVzZXIs ICAgIHNyX2V1c2VyLCAgIDgsIFVTUiwgICAgTE5YLCBFVHxVU0VSfSwKLSB7ImYiLCAgICAgICAg ICJGIiwgICAgICAgcHJfZmxhZywgICAgIHNyX2ZsYWdzLCAgIDEsICAgMCwgICAgWFhYLCBFVHxS SUdIVH0sIC8qZmxhZ3MqLwotQEAgLTE0NjMsNyArMTQ4MCw3IEBAIHN0YXRpYyBjb25zdCBmb3Jt YXRfc3RydWN0IGZvcm1hdF9hcnJheVtdID0gewotIHsidGRldiIsICAgICAgIlRERVYiLCAgICBw cl9ub3AsICAgICAgc3Jfbm9wLCAgICAgNCwgICAwLCAgICBYWFgsIEFOfFJJR0hUfSwKLSB7InRo Y291bnQiLCAgICJUSENOVCIsICAgcHJfbmx3cCwgICAgIHNyX25sd3AsICAgIDUsICAgMCwgICAg QUlYLCBQT3xSSUdIVH0sCi0geyJ0aWQiLCAgICAgICAiVElEIiwgICAgIHByX3RocmVhZCwgICBz cl90aWQsICAgICA1LCAgIDAsICAgIEFJWCwgVE98UElETUFYfFJJR0hUfSwKLS17InRpbWUiLCAg ICAgICJUSU1FIiwgICAgcHJfdGltZSwgICAgIHNyX25vcCwgICAgIDgsICAgMCwgICAgVTk4LCBF VHxSSUdIVH0sIC8qY3B1dGltZSovIC8qIHdhcyA2IHdpZGUgKi8KLSt7InRpbWUiLCAgICAgICJU SU1FIiwgICAgcHJfdGltZSwgICAgIHNyX3RpbWUsICAgICA4LCAgIDAsICAgIFU5OCwgRVR8UklH SFR9LCAvKmNwdXRpbWUqLyAvKiB3YXMgNiB3aWRlICovCi0geyJ0aW1lb3V0IiwgICAiVE1PVVQi LCAgIHByX25vcCwgICAgICBzcl9ub3AsICAgICA1LCAgIDAsICAgIExOWCwgQU58UklHSFR9LCAv LyAyLjAueHggZXJhCi0geyJ0bW91dCIsICAgICAiVE1PVVQiLCAgIHByX25vcCwgICAgICBzcl9u b3AsICAgICA1LCAgIDAsICAgIExOWCwgQU58UklHSFR9LCAvLyAyLjAueHggZXJhCi0geyJ0bmFt ZSIsICAgICAiVFRZIiwgICAgIHByX3R0eTgsICAgICBzcl90dHksICAgICA4LCAgIDAsICAgIERF QywgUE98TEVGVH0sCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDQtcG1hcC4xLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNC1wbWFwLjEu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0N2YxYzQuLjAwMDAwMDAKLS0t IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNC1wbWFwLjEucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw1NyArMCwwIEBACi1Gcm9tIDJkYzUyZjdlOGNkMjc3OTUwNGI5ZDJkMzYxYzI1MTQ0Njk1 ZTY1YjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFy Lmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ1ICsw MTAwCi1TdWJqZWN0OiBbUEFUQ0ggMDQvNzBdIHBtYXAuMQotCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBw bWFwLjEgfCAgIDI0ICsrKysrKysrKysrKysrLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wbWFwLjEg Yi9wbWFwLjEKLWluZGV4IGE5MWQwZTguLmRlMDNlODcgMTAwNjQ0Ci0tLS0gYS9wbWFwLjEKLSsr KyBiL3BtYXAuMQotQEAgLTEwLDI1ICsxMCwyOSBAQAotIHBtYXAgXC0gcmVwb3J0IG1lbW9yeSBt YXAgb2YgYSBwcm9jZXNzCi0gCi0gLlNIIFNZTk9QU0lTCi0tLm5mCi0tcG1hcCBbIC14IHwgLWQg XSBbIC1xIF0gcGlkcy4uLgotLXBtYXAgLVYKLS0uZmkKLSsuQiBwbWFwCi0rLlJCIFsgXC14IHwg XC1kIF0KLSsuUkIgWyBcLXEgXQotKy5JIHBpZAotK1wmIC4uLgotKy5icgotKy5CIHBtYXAgXC1W Ci0gCi0gLlNIIERFU0NSSVBUSU9OCi0gVGhlIHBtYXAgY29tbWFuZCByZXBvcnRzIHRoZSBtZW1v cnkgbWFwIG9mIGEgcHJvY2VzcyBvciBwcm9jZXNzZXMuCi0gCi0gLlNIICJHRU5FUkFMIE9QVElP TlMiCi0gLlRTCi0tbCBsIGwuCi0tLXgJZXh0ZW5kZWQJU2hvdyB0aGUgZXh0ZW5kZWQgZm9ybWF0 LgotLS1kCWRldmljZQlTaG93IHRoZSBkZXZpY2UgZm9ybWF0LgotLS1xCXF1aWV0CURvIG5vdCBk aXNwbGF5IHNvbWUgaGVhZGVyL2Zvb3RlciBsaW5lcy4KLS0tVglzaG93IHZlcnNpb24JRGlzcGxh eXMgdmVyc2lvbiBvZiBwcm9ncmFtLgotK2xCIGwgbC4KLStcLXgJZXh0ZW5kZWQJU2hvdyB0aGUg ZXh0ZW5kZWQgZm9ybWF0LgotK1wtZAlkZXZpY2UJU2hvdyB0aGUgZGV2aWNlIGZvcm1hdC4KLStc LXEJcXVpZXQJRG8gbm90IGRpc3BsYXkgc29tZSBoZWFkZXIvZm9vdGVyIGxpbmVzLgotK1wtVglz aG93IHZlcnNpb24JRGlzcGxheXMgdmVyc2lvbiBvZiBwcm9ncmFtLgotIC5URQotIAotIC5TSCAi U0VFIEFMU08iCi0tcHMoMSkgcGdyZXAoMSkKLSsuQlIgcHMoMSksCi0rLkJSIHBncmVwKDEpCi0g Ci0gLlNIIFNUQU5EQVJEUwotIE5vIHN0YW5kYXJkcyBhcHBseSwgYnV0IHBtYXAgbG9va3MgYW4g YXdmdWwgbG90IGxpa2UgYSBTdW5PUyBjb21tYW5kLgotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQg YS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA1LTEwX3BzLjEucGF0Y2ggYi9wYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDA1LTEwX3BzLjEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDZjYzM2NTcuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNS0xMF9wcy4x LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotRnJvbSBiYzIwZmJmZmQ5ZmQ3 Zjk0ZWYwMmFkNTcwZGQ2OTdjNGI2Yjc1YTE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJv Y3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAx OSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDA1LzcwXSAxMF9wcy4x Ci0KLXByaSBmaWVsZCBleHBsYWluZWQKLS0tbm8taGVhZGluZyBjb21tZW50IGlzIGFuIGFsaWFz IGZvciAtLW5vLWhlYWRlcnMKLVJlbW92ZWQgc2V0cHJvY3RpdGxlKDEpIHJlZmVyZW5jZQotQnVn LURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy80NjU3NjEKLUJ1Zy1EZWJpYW46IGh0dHA6 Ly9idWdzLmRlYmlhbi5vcmcvNTI5MDQ1Ci0tLS0KLSBwcy9wcy4xIHwgICAxNyArKysrKysrKy0t LS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvcHMvcHMuMSBiL3BzL3BzLjEKLWluZGV4IDY0OTUzZDUuLjBmODk2 YmYgMTAwNjQ0Ci0tLS0gYS9wcy9wcy4xCi0rKysgYi9wcy9wcy4xCi1AQCAtMTgsMTkgKzE4LDEz IEBACi0gLm5oCi0gLmlmIG4gLnNzIDEyIDAKLSAuXCIKLS0uXCIgU2VlIC91c3Ivc2hhcmUvZ3Jv ZmYvY3VycmVudC90bWFjL2FuLW9sZC50bWFjIGZvciB3aGF0IHRoZXNlIGRvLgotLS5cIiBTZXR0 aW5nIHRoZW0gdG8gemVybyBwcm92aWRlcyBleHRyYSBzcGFjZSwgYnV0IG9ubHkgZG8gdGhhdCBm b3IKLS0uXCIgcGxhaW4gdGV4dCBvdXRwdXQuIFBvc3RTY3JpcHQgYW5kIHN1Y2ggd2lsbCByZW1h aW4gaW5kZW50ZWQuCi0tLmlmIG4gLm5yIElOIDBuCi0tLmlmIG4gLm5yIGFuLXByZXZhaWxpbmct aW5kZW50IDBuCi0tLlwiCi0gLlwiCi0gLlwiIENvbFNpemUgaXMgdXNlZCBmb3IgdGhlIGZvcm1h dCBzcGVjIHRhYmxlLgotIC5cIiBJdCdzIHRoZSBsZWZ0IG1hcmdpbiwgbWludXMgdGhlIHJpZ2h0 LCBtaW51cwotIC5cIiB0aGUgc3BhY2UgbmVlZGVkIGZvciB0aGUgMXN0IHR3byBjb2x1bW5zLgot IC5cIiBNYWtpbmcgaXQgbWVzc3k6IGluY2hlcywgZW5zLCBwb2ludHMsIHNjYWxlZCBwb2ludHMu Li4KLSAuXCIKLS0ubnIgQ29sU2l6ZSAoKFxuKC5sdS1cbiguaXUvXG4oLkh1LTIwdSluKQotKy5u ciBDb2xTaXplICgoXG4oLmx1LVxuKC5pdS9cbiguSHUtMjZ1KW4pCi0gLlwiCi0gLlwiIFRoaXMg aXMgZm9yIGNvbW1hbmQgb3B0aW9ucwotIC5uciBPcHRTaXplICgxNnUpCi1AQCAtNDk5LDcgKzQ5 Myw3IEBAIHBhcmVudCBwcm9jZXNzIHJlcGVhdGVkbHkgZm9ya3Mgb2ZmIHNob3J0XC1saXZlZCBj aGlsZHJlbiB0byBkbyB3b3JrLgotIC5vcHQgYwotIFNob3cgdGhlIHRydWUgY29tbWFuZCBuYW1l LiBUaGlzIGlzIGRlcml2ZWQgZnJvbSB0aGUgbmFtZSBvZiB0aGUKLSBleGVjdXRhYmxlIGZpbGUs IHJhdGhlciB0aGFuIGZyb20gdGhlIGFyZ3YgdmFsdWUuIENvbW1hbmQgYXJndW1lbnRzCi0tYW5k IGFueSBtb2RpZmljYXRpb25zIHRvIHRoZW0gKHNlZVwgXGZJc2V0cHJvY3RpdGxlXGZSKDMpKSBh cmUKLSthbmQgYW55IG1vZGlmaWNhdGlvbnMgdG8gdGhlbSAgYXJlCi0gdGh1cyBub3Qgc2hvd24u IFRoaXMgb3B0aW9uCi0gZWZmZWN0aXZlbHkgdHVybnMgdGhlIFxmQmFyZ3NcZlIgZm9ybWF0IGtl eXdvcmQgaW50byB0aGUgXGZCY29tbVxmUgotIGZvcm1hdCBrZXl3b3JkOyBpdCBpcyB1c2VmdWwg d2l0aCB0aGUgXGZCXC1mXGZSIGZvcm1hdCBvcHRpb24gYW5kIHdpdGgKLUBAIC01ODgsNyArNTgy LDggQEAgQVNDSUkgYXJ0IHByb2Nlc3MgdHJlZQotIHJlcGVhdCBoZWFkZXIgbGluZXMsIG9uZSBw ZXIgcGFnZSBvZiBvdXRwdXQKLSAKLSAub3B0IFwtXC1ub1wtaGVhZGVycwotLXByaW50IG5vIGhl YWRlciBsaW5lIGF0IGFsbAotK3ByaW50IG5vIGhlYWRlciBsaW5lIGF0IGFsbC4gXC1cLW5vXC1o ZWFkaW5nIGlzIGFuIGFsaWFzIGZvciB0aGlzCi0rb3B0aW9uLgotIAotIC5vcHQgXC1cLWxpbmVz IFwgbgotIHNldCBzY3JlZW4gaGVpZ2h0Ci1AQCAtMTE1OSw2ICsxMTU0LDEwIEBAIHBwaWQJUFBJ RAlUewotIHBhcmVudCBwcm9jZXNzIElELgotIFR9Ci0gCi0rcHJpCVBSSQlUewotK3ByaW9yaXR5 IG9mIHRoZSBwcm9jZXNzLiBIaWdoZXIgbnVtYmVyIG1lYW5zIGxvd2VyIHByaW9yaXR5Ci0rVH0K LSsKLSBwc3IJUFNSCVR7Ci0gcHJvY2Vzc29yIHRoYXQgcHJvY2VzcyBpcyBjdXJyZW50bHkgYXNz aWduZWQgdG8uCi0gVH0KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAwNi1za2lsbC4xLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNi1za2ls bC4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODk2ZTViLi4wMDAwMDAw Ci0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDYtc2tpbGwuMS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDEyNSArMCwwIEBACi1Gcm9tIDI1ZTk3ZjYyMGQwOWE3MDQzMDViZDQyMDQyZjY5 Yjc2YzU4Y2Q2NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRl LmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJp YW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4 OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMDYvNzBdIHNraWxsLjEKLQotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tCi0gc2tpbGwuMSB8ICAgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRp b25zKCspLCAyOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NraWxsLjEgYi9za2lsbC4x Ci1pbmRleCBhNGZjMjc0Li5hNTZiOTY5IDEwMDY0NAotLS0tIGEvc2tpbGwuMQotKysrIGIvc2tp bGwuMQotQEAgLTExLDM3ICsxMSwzOCBAQAotIHNraWxsLCBzbmljZSBcLSBzZW5kIGEgc2lnbmFs IG9yIHJlcG9ydCBwcm9jZXNzIHN0YXR1cwotIAotIC5TSCBTWU5PUFNJUwotLS5uZgotLXNraWxs IFtzaWduYWwgdG8gc2VuZF0gW29wdGlvbnNdIHByb2Nlc3Mgc2VsZWN0aW9uIGNyaXRlcmlhCi0t c25pY2UgW25ldyBwcmlvcml0eV0gW29wdGlvbnNdIHByb2Nlc3Mgc2VsZWN0aW9uIGNyaXRlcmlh Ci0tLmZpCi0rLkIgc2tpbGwKLSsuUkkgWyAic2lnbmFsIHRvIHNlbmQiIF0KLSsuUkkgWyBvcHRp b25zIF0KLSsuSSBwcm9jZXNzIHNlbGVjdGlvbiBjcml0ZXJpYQotKy5icgotKy5CIHNuaWNlCi0r LlJJIFsgIm5ldyBwcmlvcml0eSIgXQotKy5SSSBbIG9wdGlvbnMgXQotKy5JIHByb2Nlc3Mgc2Vs ZWN0aW9uIGNyaXRlcmlhCi0gCi0gLlNIIERFU0NSSVBUSU9OCi0gVGhlc2UgdG9vbHMgYXJlIHBy b2JhYmx5IG9ic29sZXRlIGFuZCB1bnBvcnRhYmxlLiBUaGUgY29tbWFuZAotIHN5bnRheCBpcyBw b29ybHkgZGVmaW5lZC4gQ29uc2lkZXIgdXNpbmcgdGhlIGtpbGxhbGwsIHBraWxsLAotIGFuZCBw Z3JlcCBjb21tYW5kcyBpbnN0ZWFkLgotIAotLVRoZSBkZWZhdWx0IHNpZ25hbCBmb3Igc2tpbGwg aXMgVEVSTS4gVXNlIC1sIG9yIC1MIHRvIGxpc3QgYXZhaWxhYmxlIHNpZ25hbHMuCi0rVGhlIGRl ZmF1bHQgc2lnbmFsIGZvciBza2lsbCBpcyBURVJNLiBVc2UgXC1sIG9yIFwtTCB0byBsaXN0IGF2 YWlsYWJsZSBzaWduYWxzLgotIFBhcnRpY3VsYXJseSB1c2VmdWwgc2lnbmFscyBpbmNsdWRlIEhV UCwgSU5ULCBLSUxMLCBTVE9QLCBDT05ULCBhbmQgMC4KLS1BbHRlcm5hdGUgc2lnbmFscyBtYXkg YmUgc3BlY2lmaWVkIGluIHRocmVlIHdheXM6IC05IC1TSUdLSUxMIC1LSUxMLgotK0FsdGVybmF0 ZSBzaWduYWxzIG1heSBiZSBzcGVjaWZpZWQgaW4gdGhyZWUgd2F5czogXC05IFwtU0lHS0lMTCBc LUtJTEwuCi0gCi0gVGhlIGRlZmF1bHQgcHJpb3JpdHkgZm9yIHNuaWNlIGlzICs0LiAoc25pY2Ug KzQgLi4uKQotLVByaW9yaXR5IG51bWJlcnMgcmFuZ2UgZnJvbSArMjAgKHNsb3dlc3QpIHRvIC0y MCAoZmFzdGVzdCkuCi0rUHJpb3JpdHkgbnVtYmVycyByYW5nZSBmcm9tICsyMCAoc2xvd2VzdCkg dG8gXC0yMCAoZmFzdGVzdCkuCi0gTmVnYXRpdmUgcHJpb3JpdHkgbnVtYmVycyBhcmUgcmVzdHJp Y3RlZCB0byBhZG1pbmlzdHJhdGl2ZSB1c2Vycy4KLSAKLSAuU0ggIkdFTkVSQUwgT1BUSU9OUyIK LSAuVFMKLS1sIGwgbC4KLS0tZglmYXN0IG1vZGUJVGhpcyBpcyBub3QgY3VycmVudGx5IHVzZWZ1 bC4KLS0taQlpbnRlcmFjdGl2ZSB1c2UJVHsKLS1Zb3Ugd2lsbCBiZSBhc2tlZCB0byBhcHByb3Zl IGVhY2ggYWN0aW9uLgotLVR9Ci0tLXYJdmVyYm9zZSBvdXRwdXQJVHsKLS1EaXNwbGF5IGluZm9y bWF0aW9uIGFib3V0IHNlbGVjdGVkIHByb2Nlc3Nlcy4KLS1UfQotLS13CXdhcm5pbmdzIGVuYWJs ZWQJVGhpcyBpcyBub3QgY3VycmVudGx5IHVzZWZ1bC4KLS0tbglubyBhY3Rpb24JVGhpcyBvbmx5 IGRpc3BsYXlzIHRoZSBwcm9jZXNzIElELgotLS1WCXNob3cgdmVyc2lvbglEaXNwbGF5cyB2ZXJz aW9uIG9mIHByb2dyYW0uCi0rbEIgbCBsLgotK1wtZglmYXN0IG1vZGUJVGhpcyBpcyBub3QgY3Vy cmVudGx5IHVzZWZ1bC4KLStcLWkJaW50ZXJhY3RpdmUgdXNlCVlvdSB3aWxsIGJlIGFza2VkIHRv IGFwcHJvdmUgZWFjaCBhY3Rpb24uCi0rXC12CXZlcmJvc2Ugb3V0cHV0CURpc3BsYXkgaW5mb3Jt YXRpb24gYWJvdXQgc2VsZWN0ZWQgcHJvY2Vzc2VzLgotK1wtdwl3YXJuaW5ncyBlbmFibGVkCVRo aXMgaXMgbm90IGN1cnJlbnRseSB1c2VmdWwuCi0rXC1uCW5vIGFjdGlvbglUaGlzIG9ubHkgZGlz cGxheXMgdGhlIHByb2Nlc3MgSUQuCi0rXC1WCXNob3cgdmVyc2lvbglEaXNwbGF5cyB2ZXJzaW9u IG9mIHByb2dyYW0uCi0gLlRFCi0gCi0gLlNIICJQUk9DRVNTIFNFTEVDVElPTiBPUFRJT05TIgot QEAgLTQ5LDExICs1MCwxMSBAQCBTZWxlY3Rpb24gY3JpdGVyaWEgY2FuIGJlOiB0ZXJtaW5hbCwg dXNlciwgcGlkLCBjb21tYW5kLgotIFRoZSBvcHRpb25zIGJlbG93IG1heSBiZSB1c2VkIHRvIGVu c3VyZSBjb3JyZWN0IGludGVycHJldGF0aW9uLgotIERvIG5vdCBibGFtZSBBbGJlcnQgZm9yIHRo aXMgaW50ZXJlc3RpbmcgaW50ZXJmYWNlLgotIC5UUwotLWwgbC4KLS0tdAlUaGUgbmV4dCBhcmd1 bWVudCBpcyBhIHRlcm1pbmFsICh0dHkgb3IgcHR5KS4KLS0tdQlUaGUgbmV4dCBhcmd1bWVudCBp cyBhIHVzZXJuYW1lLgotLS1wCVRoZSBuZXh0IGFyZ3VtZW50IGlzIGEgcHJvY2VzcyBJRCBudW1i ZXIuCi0tLWMJVGhlIG5leHQgYXJndW1lbnQgaXMgYSBjb21tYW5kIG5hbWUuCi0rbEIgbC4KLStc LXQJVGhlIG5leHQgYXJndW1lbnQgaXMgYSB0ZXJtaW5hbCAodHR5IG9yIHB0eSkuCi0rXC11CVRo ZSBuZXh0IGFyZ3VtZW50IGlzIGEgdXNlcm5hbWUuCi0rXC1wCVRoZSBuZXh0IGFyZ3VtZW50IGlz IGEgcHJvY2VzcyBJRCBudW1iZXIuCi0rXC1jCVRoZSBuZXh0IGFyZ3VtZW50IGlzIGEgY29tbWFu ZCBuYW1lLgotIC5URQotIAotIC5TSCBTSUdOQUxTCi1AQCAtNjMsNyArNjQsNiBAQCBXaGVuIGtu b3duLCBudW1iZXJzIGFuZCBkZWZhdWx0IGJlaGF2aW9yIGFyZSBzaG93bi4KLSBsQiByQiBsQiBs QgotIGxmQ1cgciBsIGwuCi0gTmFtZQlOdW0JQWN0aW9uCURlc2NyaXB0aW9uCi0tLlRICi0gMAkw CW4vYQlleGl0IGNvZGUgaW5kaWNhdGVzIGlmIGEgc2lnbmFsIG1heSBiZSBzZW50Ci0gQUxSTQkx NAlleGl0Ci0gSFVQCTEJZXhpdAotQEAgLTEwNCwxNSArMTA0LDIwIEBAIFhGU1oJCWNvcmUJY29y ZSBkdW1wIG1heSBmYWlsCi0gbEIgbEIKLSBsZkNXIGwuCi0gQ29tbWFuZAlEZXNjcmlwdGlvbgot LS5UQwotIHNuaWNlIHNldGkgY3JhY2sgKzcJU2xvdyBkb3duIHNldGkgYW5kIGNyYWNrCi0tc2tp bGwgLUtJTEwgLXYgL2Rldi9wdHMvKglLaWxsIHVzZXJzIG9uIG5ldy1zdHlsZSBQVFkgZGV2aWNl cwotLXNraWxsIC1TVE9QIHZpcm8gbG0gZGF2ZW0JU3RvcCAzIHVzZXJzCi0tc25pY2UgLTE3IHJv b3QgYmFzaAlHaXZlIHByaW9yaXR5IHRvIHJvb3QncyBzaGVsbAotK3NraWxsIFwtS0lMTCBcLXYg L2Rldi9wdHMvKglLaWxsIHVzZXJzIG9uIG5ldy1zdHlsZSBQVFkgZGV2aWNlcwotK3NraWxsIFwt U1RPUCB2aXJvIGxtIGRhdmVtCVN0b3AgMyB1c2VycwotK3NuaWNlIFwtMTcgcm9vdCBiYXNoCUdp dmUgcHJpb3JpdHkgdG8gcm9vdCdzIHNoZWxsCi0gLlRFCi0gCi0gLlNIICJTRUUgQUxTTyIKLS1r aWxsYWxsKDEpIHBraWxsKDEpIGtpbGwoMSkgcmVuaWNlKDEpIG5pY2UoMSkgc2lnbmFsKDcpIGtp bGwoMikKLSsuQlIga2lsbGFsbCAoMSksCi0rLkJSIHBraWxsICgxKSwKLSsuQlIga2lsbCAoMSks Ci0rLkJSIHJlbmljZSAoMSksCi0rLkJSIG5pY2UoMSksCi0rLkJSIGtpbGwoMiksCi0rLkJSIHNp Z25hbCg3KQotIAotIC5TSCBTVEFOREFSRFMKLSBObyBzdGFuZGFyZHMgYXBwbHkuCi0tLSAKLTEu Ny4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDctc2tpbGxfcGVycm9y LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAwNy1za2lsbF9wZXJyb3IucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzOGNhMmIuLjAwMDAwMDAKLS0tIGEvcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAwNy1za2lsbF9wZXJyb3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwyNSArMCwwIEBACi1Gcm9tIDY4MDMyODc5ODgwOGIzZDcyMDEzNDFhNjNlMDBjODllOWQxYmRi MWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5v cmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6 IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ1ICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0ggMDcvNzBdIHNraWxsX3BlcnJvcgotCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0K LSBza2lsbC5jIHwgICAgMSArCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDAg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9za2lsbC5jIGIvc2tpbGwuYwotaW5kZXggOTZj YzM4Ni4uNTRkNGM0OCAxMDA2NDQKLS0tLSBhL3NraWxsLmMKLSsrKyBiL3NraWxsLmMKLUBAIC0z MTcsNiArMzE3LDcgQEAgbm9fbW9yZV9hcmdzOgotICAgICAgIC8vIFRoZSBzdGFuZGFyZCBzYXlz IHdlIHJldHVybiBub24temVybyBpZiBhbiBlcnJvciBvY2N1cnMuIFRodXMgaWYKLSAgICAgICAv LyBraWxsaW5nIHR3byBwcm9jZXNzZXMgZ2l2ZXMgMCBmb3Igb25lIGFuZCBFUEVSTSBmb3IgdGhl IG90aGVyLAotICAgICAgIC8vIHdlIGFyZSByZXF1aXJlZCB0byByZXR1cm4gYm90aCB6ZXJvIGFu ZCBub24temVyby4gUXVhbnR1bSBraWxsPz8/Ci0rICAgICAgcGVycm9yKCJraWxsIik7Ci0gICAg ICAgZXhpdHZhbHVlID0gMTsKLSAgICAgICBjb250aW51ZTsKLSAgICAgfQotLS0gCi0xLjcuMAot CmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDA4LXNsYWJ0b3BfMS5wYXRjaCBi L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDgtc2xhYnRvcF8xLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAyYjYyNDkyLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwMDgtc2xhYnRvcF8xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAK LUZyb20gMTkwMDY0MWM5OTY2MDMyYWM3OTFiZmI1M2YwNDVjNWMyOThiNmQzMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9v bC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFu Lm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCAwOC83MF0gc2xhYnRvcF8xCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHNsYWJ0b3AuMSB8ICAg MzUgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQs IDIwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc2xhYnRv cC4xIGIvc2xhYnRvcC4xCi1pbmRleCAxMWYyNzdlLi43ZTI3OTgwIDEwMDY0NAotLS0tIGEvc2xh YnRvcC4xCi0rKysgYi9zbGFidG9wLjEKLUBAIC03LDM2ICs3LDM5IEBACi0gc2xhYnRvcCBcLSBk aXNwbGF5IGtlcm5lbCBzbGFiIGNhY2hlIGluZm9ybWF0aW9uIGluIHJlYWwgdGltZQotIAotIC5T SCBTWU5PUFNJUwotLS5CSSAic2xhYnRvcCBbICIgb3B0aW9ucyAiIF0gIgotKy5CIHNsYWJ0b3AK LSsuUkkgWyBvcHRpb25zIF0KLSAKLSAuU0ggREVTQ1JJUFRJT04KLS0uQlIgc2xhYnRvcCAoMSkK LSsuQiBzbGFidG9wCi0gZGlzcGxheXMgZGV0YWlsZWQga2VybmVsIHNsYWIgY2FjaGUgaW5mb3Jt YXRpb24gaW4gcmVhbCB0aW1lLiAgSXQgZGlzcGxheXMgYQotIGxpc3Rpbmcgb2YgdGhlIHRvcCBj YWNoZXMgc29ydGVkIGJ5IG9uZSBvZiB0aGUgbGlzdGVkIHNvcnQgY3JpdGVyaWEuICBJdCBhbHNv Ci0gZGlzcGxheXMgYSBzdGF0aXN0aWNzIGhlYWRlciBmaWxsZWQgd2l0aCBzbGFiIGxheWVyIGlu Zm9ybWF0aW9uLgotIAotIC5TSCBPUFRJT05TCi0gTm9ybWFsIGludm9jYXRpb24gb2YgCi0tLkJS IHNsYWJ0b3AgKDEpCi0rLkIgc2xhYnRvcAotIGRvZXMgbm90IHJlcXVpcmUgYW55IG9wdGlvbnMu ICBUaGUgYmVoYXZpb3IsIGhvd2V2ZXIsIGNhbiBiZSBmaW5lLXR1bmVkIGJ5Ci0gc3BlY2lmeWlu ZyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGZsYWdzOgotIC5UUAotLS5CIFwtXF5cLWRl bGF5PW4sIFwtZCBuCi0tUmVmcmVzaCB0aGUgZGlzcGxheSBldmVyeSBuIHNlY29uZHMuICBCeSBk ZWZhdWx0LAotLS5CUiBzbGFidG9wICgxKQotKy5CIFwtXC1kZWxheT1cZkluXGZSLCBcZkJcLWQg XGZJbgotK1JlZnJlc2ggdGhlIGRpc3BsYXkgZXZlcnkKLSsuSSBuCi0raW4gc2Vjb25kcy4gIEJ5 IGRlZmF1bHQsCi0rLkIgc2xhYnRvcAotIHJlZnJlc2hlcyB0aGUgZGlzcGxheSBldmVyeSB0aHJl ZSBzZWNvbmRzLiAgVG8gZXhpdCB0aGUgcHJvZ3JhbSwgaGl0Ci0gLkJSIHEuCi0gLlRQCi0tLkIg XC1cXlwtc29ydD1TLCBcLXMgUwotLVNvcnQgYnkgUywgd2hlcmUgUyBpcyBvbmUgb2YgdGhlIHNv cnQgY3JpdGVyaWEuCi0rLkIgXC1cLXNvcnQ9XGZJU1xmUiwgXGZCXC1zXGZSIFxmSVMKLStTb3J0 IGJ5IFxmSVNcZlIsIHdoZXJlIFxmSVNcZlIgaXMgb25lIG9mIHRoZSBzb3J0IGNyaXRlcmlhLgot IC5UUAotLS5CIFwtXF5cLW9uY2UsIFwtbwotKy5CIFwtXC1vbmNlXGZSLCBcZkJcLW8KLSBEaXNw bGF5IHRoZSBvdXRwdXQgb25jZSBhbmQgdGhlbiBleGl0LgotIC5UUAotLS5CIFwtXF5cLXZlcnNp b24sIFwtVgotKy5CIFwtXC12ZXJzaW9uXGZSLCBcZkJcLVYKLSBEaXNwbGF5IHZlcnNpb24gaW5m b3JtYXRpb24gYW5kIGV4aXQuCi0gLlRQCi0tLkIgXC1cXlwtaGVscAotKy5CIFwtXC1oZWxwCi0g RGlzcGxheSB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgZXhpdC4KLSAKLSAuU0ggU09SVCBDUklURVJJ QQotQEAgLTc4LDcgKzgxLDcgQEAgc29ydCBieSBvYmplY3Qgc2l6ZQotIHNvcnQgYnkgY2FjaGUg dXRpbGl6YXRpb24KLSAKLSAuU0ggQ09NTUFORFMKLS0uQlIgc2xhYnRvcCAoMSkKLSsuQiBzbGFi dG9wCi0gYWNjZXB0cyBrZXlib2FyZCBjb21tYW5kcyBmcm9tIHRoZSB1c2VyIGR1cmluZyB1c2Uu ICBUaGUgZm9sbG93aW5nIGFyZQotIHN1cHBvcnRlZC4gIEluIHRoZSBjYXNlIG9mIGxldHRlcnMs IGJvdGggY2FzZXMgYXJlIGFjY2VwdGVkLgotIAotQEAgLTk0LDcgKzk3LDkgQEAgUmVmcmVzaCB0 aGUgc2NyZWVuLgotIFF1aXQgdGhlIHByb2dyYW0uCi0gCi0gLlNIIEZJTEVTCi0tLklSIC9wcm9j L3NsYWJpbmZvICIgXC1cLSBzbGFiIGluZm9ybWF0aW9uIgotKy5UUAotKy5JIC9wcm9jL3NsYWJp bmZvCi0rc2xhYiBpbmZvcm1hdGlvbgotIAotIC5TSCAiU0VFIEFMU08iCi0gLkJSIGZyZWUgKDEp LAotQEAgLTEwNCw3ICsxMDksNyBAQCBRdWl0IHRoZSBwcm9ncmFtLgotIAotIC5TSCBOT1RFUwot IEN1cnJlbnRseSwKLS0uQlIgc2xhYnRvcCAoMSkKLSsuQiBzbGFidG9wCi0gcmVxdWlyZXMgYSAy LjQgb3IgbGF0ZXIga2VybmVsIChzcGVjaWZpY2FsbHksIGEgdmVyc2lvbiAxLjEgb3IgbGF0ZXIK LSAuSVIgL3Byb2Mvc2xhYmluZm8gKS4KLSBLZXJuZWwgMi4yIHNob3VsZCBiZSBzdXBwb3J0ZWQg aW4gdGhlIGZ1dHVyZS4KLUBAIC0xMTYsNyArMTIxLDcgQEAgZmlsZSBpcyB0cmFja2luZyBpbmZv cm1hdGlvbiBhYm91dCB1c2VkIHNsYWIgcGh5c2ljYWwgbWVtb3J5LgotIC5TSCBBVVRIT1JTCi0g V3JpdHRlbiBieSBDaHJpcyBSaXZlcmEgYW5kIFJvYmVydCBMb3ZlLgotIAotLS5CUiBzbGFidG9w ICgxKQotKy5CIHNsYWJ0b3AKLSB3YXMgaW5zcGlyZWQgYnkgTWFydGluIEJsaWdoJ3MgcGVybCBz Y3JpcHQsCi0gLkJSIHZtdG9wIC4KLSBUaGUgcHJvY3BzIHBhY2thZ2UgaXMgbWFpbnRhaW5lZCBi eSBBbGJlcnQgQ2FoYWxhbiA8YWxiZXJ0QHVzZXJzLnNmLm5ldD4uCi0tLSAKLTEuNy4wCi0KZGlm ZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMDktc3lzY3RsLjgucGF0Y2ggYi9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDA5LXN5c2N0bC44LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA3MzMyMmU0Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw MDktc3lzY3RsLjgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotRnJvbSA5 ZGMyYjM2Y2M0YWM2ZTQ5ZjBlZWIyY2M3MDEzNzZhN2NlMzNmYTEzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4v cC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgot RGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDA5 LzcwXSBzeXNjdGwuOAotCi1jbGVhbnVwIHN5c2N0bCBtYW4gcGFnZQotQnVnLURlYmlhbjogaHR0 cDovL2J1Z3MuZGViaWFuLm9yZy8yOTcxNDQKLUJ1Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlh bi5vcmcvMjgyMTY4Ci0tLS0KLSBzeXNjdGwuOCB8ICAgOTAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5n ZWQsIDYxIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3lz Y3RsLjggYi9zeXNjdGwuOAotaW5kZXggZTI2YzRmYi4uM2JiNDZkNyAxMDA2NDQKLS0tLSBhL3N5 c2N0bC44Ci0rKysgYi9zeXNjdGwuOAotQEAgLTEwLDc2ICsxMCwxMDggQEAKLSAuU0ggTkFNRQot IHN5c2N0bCBcLSBjb25maWd1cmUga2VybmVsIHBhcmFtZXRlcnMgYXQgcnVudGltZQotIC5TSCBT WU5PUFNJUwotLS5CICJzeXNjdGwgWy1uXSBbLWVdIHZhcmlhYmxlIC4uLiIKLSsuQiBzeXNjdGwK LSsuUkIgWyBcLW4gXQotKy5SQiBbIFwtZSBdCi0rLkkgdmFyaWFibGUKLStcJi4uLgotIC5icgot LS5CICJzeXNjdGwgWy1uXSBbLWVdIFstcV0gLXcgdmFyaWFibGU9dmFsdWUgLi4uIgotKy5CIHN5 c2N0bAotKy5SQiBbIFwtbiBdCi0rLlJCIFsgXC1lIF0KLSsuUkIgWyBcLXEgXQotKy5CIFwtdwot Ky5JUiB2YXJpYWJsZSA9IHZhbHVlCi0rXCYuLi4KLSAuYnIKLS0uQiAic3lzY3RsIFstbl0gWy1l XSBbLXFdIC1wIDxmaWxlbmFtZT4iCi0rLkIgc3lzY3RsCi0rLlJCIFsgXC1uIF0KLSsuUkIgWyBc LWUgXQotKy5SQiBbIFwtcSBdCi0rLkIgXC1wCi0rLlJJIFsgZmlsZW5hbWUgXQotIC5icgotLS5C ICJzeXNjdGwgWy1uXSBbLWVdIC1hIgotKy5CIHN5c2N0bAotKy5SQiBbIFwtbiBdCi0rLlJCIFsg XC1lIF0KLSsuQiBcLWEKLSAuYnIKLS0uQiAic3lzY3RsIFstbl0gWy1lXSAtQSIKLSsuQiBzeXNj dGwKLSsuUkIgWyBcLW4gXQotKy5SQiBbIFwtZSBdCi0rLkIgXC1BCi0gLlNIIERFU0NSSVBUSU9O Ci0gLkIgc3lzY3RsCi0gaXMgdXNlZCB0byBtb2RpZnkga2VybmVsIHBhcmFtZXRlcnMgYXQgcnVu dGltZS4gIFRoZSBwYXJhbWV0ZXJzIGF2YWlsYWJsZQotIGFyZSB0aG9zZSBsaXN0ZWQgdW5kZXIg L3Byb2Mvc3lzLy4gIFByb2NmcyBpcyByZXF1aXJlZCBmb3IgCi0tLkIgc3lzY3RsKDgpCi0rLkIg c3lzY3RsCi0gc3VwcG9ydCBpbiBMaW51eC4gIFlvdSBjYW4gdXNlCi0tLkIgc3lzY3RsKDgpCi0r LkIgc3lzY3RsCi0gdG8gYm90aCByZWFkIGFuZCB3cml0ZSBzeXNjdGwgZGF0YS4KLSAuU0ggUEFS QU1FVEVSUwotIC5UUAotLS5CICJ2YXJpYWJsZSIKLSsuSSB2YXJpYWJsZQotIFRoZSBuYW1lIG9m IGEga2V5IHRvIHJlYWQgZnJvbS4gIEFuIGV4YW1wbGUgaXMga2VybmVsLm9zdHlwZS4gIFRoZSAn LycKLSBzZXBhcmF0b3IgaXMgYWxzbyBhY2NlcHRlZCBpbiBwbGFjZSBvZiBhICcuJy4KLSAuVFAK LS0uQiAidmFyaWFibGU9dmFsdWUiCi0tVG8gc2V0IGEga2V5LCB1c2UgdGhlIGZvcm0gdmFyaWFi bGU9dmFsdWUsIHdoZXJlIHZhcmlhYmxlIGlzIHRoZSBrZXkgYW5kCi0tdmFsdWUgaXMgdGhlIHZh bHVlIHRvIHNldCBpdCB0by4gIElmIHRoZSB2YWx1ZSBjb250YWlucyBxdW90ZXMgb3IgY2hhcmFj dGVycwotKy5JUiAgdmFyaWFibGUgPSB2YWx1ZQotK1RvIHNldCBhIGtleSwgdXNlIHRoZSBmb3Jt Ci0rLklSICB2YXJpYWJsZSA9IHZhbHVlCi0rd2hlcmUKLSsuSSB2YXJpYWJsZQotK2lzIHRoZSBr ZXkgYW5kCi0rLkkgdmFsdWUKLStpcyB0aGUgdmFsdWUgdG8gc2V0IGl0IHRvLiAgSWYgdGhlIHZh bHVlIGNvbnRhaW5zIHF1b3RlcyBvciBjaGFyYWN0ZXJzCi0gd2hpY2ggYXJlIHBhcnNlZCBieSB0 aGUgc2hlbGwsIHlvdSBtYXkgbmVlZCB0byBlbmNsb3NlIHRoZSB2YWx1ZSBpbiBkb3VibGUKLS1x dW90ZXMuICBUaGlzIHJlcXVpcmVzIHRoZSAtdyBwYXJhbWV0ZXIgdG8gdXNlLgotK3F1b3Rlcy4g IFRoaXMgcmVxdWlyZXMgdGhlCi0rLkIgXC13Ci0rcGFyYW1ldGVyIHRvIHVzZS4KLSAuVFAKLS0u QiAiLW4iCi0rLkIgXC1uCi0gVXNlIHRoaXMgb3B0aW9uIHRvIGRpc2FibGUgcHJpbnRpbmcgb2Yg dGhlIGtleSBuYW1lIHdoZW4gcHJpbnRpbmcgdmFsdWVzLgotIC5UUAotLS5CICItZSIKLSsuQiBc LWUKLSBVc2UgdGhpcyBvcHRpb24gdG8gaWdub3JlIGVycm9ycyBhYm91dCB1bmtub3duIGtleXMu Ci0gLlRQCi0tLkIgIi1OIgotKy5CIFwtTgotIFVzZSB0aGlzIG9wdGlvbiB0byBvbmx5IHByaW50 IHRoZSBuYW1lcy4gSXQgbWF5IGJlIHVzZWZ1bCB3aXRoIHNoZWxscyB0aGF0Ci0gaGF2ZSBwcm9n cmFtbWFibGUgY29tcGxldGlvbi4KLSAuVFAKLS0uQiAiLXEiCi0rLkIgXC1xCi0gVXNlIHRoaXMg b3B0aW9uIHRvIG5vdCBkaXNwbGF5IHRoZSB2YWx1ZXMgc2V0IHRvIHN0ZG91dC4KLSAuVFAKLS0u QiAiLXciCi0rLkIgXC13Ci0gVXNlIHRoaXMgb3B0aW9uIHdoZW4geW91IHdhbnQgdG8gY2hhbmdl IGEgc3lzY3RsIHNldHRpbmcuCi0gLlRQCi0tLkIgIi1wIgotKy5CIFwtcAotIExvYWQgaW4gc3lz Y3RsIHNldHRpbmdzIGZyb20gdGhlIGZpbGUgc3BlY2lmaWVkIG9yIC9ldGMvc3lzY3RsLmNvbmYg aWYgbm9uZSBnaXZlbi4KLSBTcGVjaWZ5aW5nIFwtIGFzIGZpbGVuYW1lIG1lYW5zIHJlYWRpbmcg ZGF0YSBmcm9tIHN0YW5kYXJkIGlucHV0LgotIC5UUAotLS5CICItYSIKLSsuQiBcLWEKLSBEaXNw bGF5IGFsbCB2YWx1ZXMgY3VycmVudGx5IGF2YWlsYWJsZS4KLSAuVFAKLS0uQiAiLUEiCi0rLkIg XC1BCi0gRGlzcGxheSBhbGwgdmFsdWVzIGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGFibGUgZm9y bS4KLSAuU0ggRVhBTVBMRVMKLS0uVFAKLS0vc2Jpbi9zeXNjdGwgLWEKLS0uVFAKLS0vc2Jpbi9z eXNjdGwgLW4ga2VybmVsLmhvc3RuYW1lCi0tLlRQCi0tL3NiaW4vc3lzY3RsIC13IGtlcm5lbC5k b21haW5uYW1lPSJleGFtcGxlLmNvbSIKLS0uVFAKLS0vc2Jpbi9zeXNjdGwgLXAgL2V0Yy9zeXNj dGwuY29uZiAKLSsvc2Jpbi9zeXNjdGwgXC1hCi0rLmJyCi0rL3NiaW4vc3lzY3RsIFwtbiBrZXJu ZWwuaG9zdG5hbWUKLSsuYnIKLSsvc2Jpbi9zeXNjdGwgXC13IGtlcm5lbC5kb21haW5uYW1lPSJl eGFtcGxlLmNvbSIKLSsuYnIKLSsvc2Jpbi9zeXNjdGwgXC1wIC9ldGMvc3lzY3RsLmNvbmYKLSAu U0ggRklMRVMKLSAuSSAvcHJvYy9zeXMKLSsuYnIKLSAuSSAvZXRjL3N5c2N0bC5jb25mCi0gLlNI IFNFRSBBTFNPCi0gLkJSIHN5c2N0bC5jb25mICg1KQotIC5TSCBCVUdTCi0tVGhlIC1BIHBhcmFt ZXRlciBiZWhhdmVzIGp1c3QgYXMgLWEgZG9lcy4KLStUaGUKLSsuQiBcLUEKLStwYXJhbWV0ZXIg YmVoYXZlcyBqdXN0IGFzCi0rLkIgXC1hCi0rZG9lcy4KLSAuU0ggQVVUSE9SCi0gR2VvcmdlIFN0 YWlrb3MsIDxzdGFpa29zQDB3bmVkLm9yZz4KLSAKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxMC1zeXNjdGxfb3B0aW9ucy5wYXRjaCBiL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwMTAtc3lzY3RsX29wdGlvbnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGFlODk2Y2UuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDAxMC1zeXNjdGxfb3B0aW9ucy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAK LUZyb20gNzBjYmE5YjdhMzNlMmNlMzIwNDUzMjRiM2ZiZThmYTkwMWNmZTlkMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9v bC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFu Lm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCAxMC83MF0gc3lzY3RsX29wdGlvbnMKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gc3lzY3RsLmMg fCAgIDEyICsrKysrKysrKystLQotIDEgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3N5c2N0bC5jIGIvc3lzY3RsLmMKLWluZGV4 IDE0NzBkZjkuLjQwMjRmNzEgMTAwNjQ0Ci0tLS0gYS9zeXNjdGwuYwotKysrIGIvc3lzY3RsLmMK LUBAIC00MjEsNiArNDIxLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewot ICAgIGNvbnN0IGNoYXIgKm1lID0gKGNvbnN0IGNoYXIgKiliYXNlbmFtZShhcmd2WzBdKTsKLSAg ICBib29sIFN3aXRjaGVzQWxsb3dlZCA9IHRydWU7Ci0gICAgYm9vbCBXcml0ZU1vZGUgPSBmYWxz ZTsKLSsgICBib29sIERpc3BsYXlBbGxPcHQgPSBmYWxzZTsKLSAgICBpbnQgUmV0dXJuQ29kZSA9 IDA7Ci0gICAgY29uc3QgY2hhciAqcHJlbG9hZGZpbGUgPSBERUZBVUxUX1BSRUxPQUQ7Ci0gCi1A QCAtNDg2LDggKzQ4Nyw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSAg ICAgICAgICBjYXNlICdhJzogLy8gc3RyaW5nIGFuZCBpbnRlZ2VyIHZhbHVlcyAoZm9yIExpbnV4 LCBhbGwgb2YgdGhlbSkKLSAgICAgICAgICBjYXNlICdBJzogLy8gc2FtZSBhcyAtYSAtbwotICAg ICAgICAgIGNhc2UgJ1gnOiAvLyBzYW1lIGFzIC1hIC14Ci0tICAgICAgICAgICAgICBTd2l0Y2hl c0FsbG93ZWQgPSBmYWxzZTsKLS0gICAgICAgICAgICAgIHJldHVybiBEaXNwbGF5QWxsKFBST0Nf UEFUSCk7Ci0rICAgICAgICAgICAgICBEaXNwbGF5QWxsT3B0ID0gdHJ1ZTsKLSsgICAgICAgICAg ICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgJ1YnOgotICAgICAgICAgICAgICAgZnByaW50Zihz dGRvdXQsICJzeXNjdGwgKCVzKVxuIixwcm9jcHNfdmVyc2lvbik7Ci0gICAgICAgICAgICAgICBl eGl0KDApOwotQEAgLTUwMiw2ICs1MDMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKSB7Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBpZiAoTmFtZU9ubHkgJiYgUXVpZXQp ICAgLy8gbm9uc2Vuc2UKLSAgICAgICAgICAgICByZXR1cm4gVXNhZ2UobWUpOwotKyAgICAgICAg IGlmIChEaXNwbGF5QWxsT3B0KSAgICAvLyBXZSBjYW5ub3QgaGF2ZSB2YWx1ZXMgd2l0aCAtYQot KyAgICAgICAgICAgICByZXR1cm4gVXNhZ2UobWUpOwotICAgICAgICAgIFN3aXRjaGVzQWxsb3dl ZCA9IGZhbHNlOwotICAgICAgICAgIGlmIChXcml0ZU1vZGUgfHwgaW5kZXgoKmFyZ3YsICc9Jykp Ci0gICAgICAgICAgICAgUmV0dXJuQ29kZSA9IFdyaXRlU2V0dGluZygqYXJndik7Ci1AQCAtNTA5 LDYgKzUxMiwxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gICAgICAg ICAgICAgUmV0dXJuQ29kZSA9IFJlYWRTZXR0aW5nKCphcmd2KTsKLSAgICAgICB9Ci0gICAgfQot KyAgIGlmIChEaXNwbGF5QWxsT3B0KSB7Ci0rICAgICAgIGlmIChRdWlldCkKLSsgICAgICAgICAg IHJldHVybiBVc2FnZShtZSk7Ci0rICAgICAgIHJldHVybiBEaXNwbGF5QWxsKFBST0NfUEFUSCk7 Ci0rICAgfQotIAotICAgIHJldHVybiBSZXR1cm5Db2RlOwotIH0KLS0tIAotMS43LjAKLQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxMS10bG9hZC4xLnBhdGNoIGIvcGF0Y2hl cy9wcm9jcHMtMy4yLjgvMDAxMS10bG9hZC4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhYmVlMmU4Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTEt dGxvYWQuMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLUZyb20gMTUxYjkw Y2FlZTU5YTdlMWQ0ZDVjZjNjZDZjMzg1MTVlMGNkYWMyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJv Y3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6 IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxMS83MF0g dGxvYWQuMQotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSB0bG9hZC4xIHwgICAgMiArLQotIDEgZmlsZXMg Y2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv dGxvYWQuMSBiL3Rsb2FkLjEKLWluZGV4IGVmODJiMDEuLjhlYzhjNDMgMTAwNjQ0Ci0tLS0gYS90 bG9hZC4xCi0rKysgYi90bG9hZC4xCi1AQCAtMzksNyArMzksNyBAQCBUaGUKLSAuQkkgIlwtZCIg IiBkZWxheSIKLSBvcHRpb24gc2V0cyB0aGUgdGltZSBhcmd1bWVudCBmb3IgYW4KLSAuQlIgYWxh cm0gKDIpOwotLWlmIC1kIDAgaXMgc3BlY2lmaWVkLCB0aGUgYWxhcm0gaXMgc2V0IHRvIDAsIHdo aWNoIHdpbGwgbmV2ZXIgc2VuZCB0aGUKLStpZiBcLWQgMCBpcyBzcGVjaWZpZWQsIHRoZSBhbGFy bSBpcyBzZXQgdG8gMCwgd2hpY2ggd2lsbCBuZXZlciBzZW5kIHRoZQotIC5CIFNJR0FMUk0KLSBh bmQgdXBkYXRlIHRoZSBkaXNwbGF5LgotIAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDEyLXRvcF9pcml4LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAxMi10b3BfaXJpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM0 Nzk4ZS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDEyLXRvcF9pcml4LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotRnJvbSA4ZDhjMjNmNGNhZTZlYjlk ZTE4OGQ3MjYxYTIzYWRmZjBiMTQ5NTRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog aHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3Bz XzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBN YXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDEyLzcwXSB0b3BfaXJpeAot Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0KLSB0b3AuYyB8ICAgMTUgKysrKysrKysrKysrKy0tCi0gMSBmaWxl cyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvdG9wLmMgYi90b3AuYwotaW5kZXggNmQ0YTdjYy4uYzdlNzU1MyAxMDA2NDQKLS0tLSBhL3Rv cC5jCi0rKysgYi90b3AuYwotQEAgLTE3ODMsNyArMTc4Myw4IEBAIHN0YXRpYyB2b2lkIGNvbmZp Z3NfcmVhZCAodm9pZCkKLSAgICAgICBjb25maWdobHAoV2luc3RrW2ldLnJjLmZpZWxkc2N1cik7 Ci0gICAgfQotIAotLSAgIGlmKFJjLm1vZGVfaXJpeHBzICYmIHNtcF9udW1fY3B1cz4xKXsKLSsg ICBpZihSYy5tb2RlX2lyaXhwcyAmJiBzbXBfbnVtX2NwdXM+MSAmJgotKyAgICAgICEoQ0hLdyhD dXJ3aW4sIFNob3dfVEhSRUFEUykpKSB7Ci0gICAgICAgLy8gZ29vZCBmb3IgMTAwIENQVXMgcGVy IHByb2Nlc3MKLSAgICAgICBwY3B1X21heF92YWx1ZSA9IDk5OTkuMDsKLSAgICAgICBGaWVsZHN0 YWJbUF9DUFVdLmZtdHMgPSAiICU0LjBmIjsKLUBAIC0yNTcwLDYgKzI1NzEsMTUgQEAgc3RhdGlj IHZvaWQgZG9fa2V5ICh1bnNpZ25lZCBjKQotICAgICAgIGNhc2UgJ0gnOgotICAgICAgICAgIGlm IChWSVpDSEtjKSB7Ci0gICAgICAgICAgICAgVE9HdyhDdXJ3aW4sIFNob3dfVEhSRUFEUyk7Ci0r ICAgICAgICAgICAgaWYoUmMubW9kZV9pcml4cHMgJiYgc21wX251bV9jcHVzPjEgJiYKLSsgICAg ICAgICAgICAgICAhKENIS3coQ3Vyd2luLCBTaG93X1RIUkVBRFMpKSl7Ci0rICAgICAgICAgICAg ICAgLy8gZ29vZCBmb3IgMTAwIENQVXMgcGVyIHByb2Nlc3MKLSsgICAgICAgICAgICAgICBwY3B1 X21heF92YWx1ZSA9IDk5OTkuMDsKLSsgICAgICAgICAgICAgICBGaWVsZHN0YWJbUF9DUFVdLmZt dHMgPSAiICU0LjBmIjsKLSsgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgIHBj cHVfbWF4X3ZhbHVlID0gOTkuOTsKLSsgICAgICAgICAgICAgICBGaWVsZHN0YWJbUF9DUFVdLmZt dHMgPSAiICUjNC4xZiI7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgICAgIHNob3dfbXNnKGZt dG1rKCJTaG93IHRocmVhZHMgJXMiCi0gICAgICAgICAgICAgICAgLCBDSEt3KEN1cndpbiwgU2hv d19USFJFQURTKSA/ICJPbiIgOiAiT2ZmIikpOwotICAgICAgICAgIH0KLUBAIC0yNjI2LDcgKzI2 MzYsOCBAQCBzdGF0aWMgdm9pZCBkb19rZXkgKHVuc2lnbmVkIGMpCi0gICAgICAgICAgUmMubW9k ZV9pcml4cHMgPSAhUmMubW9kZV9pcml4cHM7Ci0gICAgICAgICAgc2hvd19tc2coZm10bWsoIkly aXggbW9kZSAlcyIsIFJjLm1vZGVfaXJpeHBzID8gIk9uIiA6ICJPZmYiKSk7Ci0gI2VuZGlmCi0t ICAgICAgICAgaWYoUmMubW9kZV9pcml4cHMgJiYgc21wX251bV9jcHVzPjEpewotKyAgICAgICAg IGlmKFJjLm1vZGVfaXJpeHBzICYmIHNtcF9udW1fY3B1cz4xICYmCi0rICAgICAgICAgICAgIShD SEt3KEN1cndpbiwgU2hvd19USFJFQURTKSkpewotICAgICAgICAgICAgIC8vIGdvb2QgZm9yIDEw MCBDUFVzIHBlciBwcm9jZXNzCi0gICAgICAgICAgICAgcGNwdV9tYXhfdmFsdWUgPSA5OTk5LjA7 Ci0gICAgICAgICAgICAgRmllbGRzdGFiW1BfQ1BVXS5mbXRzID0gIiAlNC4wZiI7Ci0tLSAKLTEu Ny4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTMtdG9wX25vX29wZW5w cm9jLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxMy10b3Bfbm9fb3BlbnByb2MucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiOTUzZWQuLjAwMDAwMDAKLS0tIGEv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxMy10b3Bfbm9fb3BlbnByb2MucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIDliMjVlZDdjMzVlMmMzM2U1ODViODkzMDUyYmNm NmQ4MjgzYjVlY2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRl LmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJp YW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4 OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTMvNzBdIHRvcF9ub19vcGVucHJvYwotCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0KLSB0b3AuYyB8ICAgIDYgKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90b3AuYyBiL3RvcC5j Ci1pbmRleCBjN2U3NTUzLi43MjA1NmExIDEwMDY0NAotLS0tIGEvdG9wLmMKLSsrKyBiL3RvcC5j Ci1AQCAtMTEwNiw2ICsxMTA2LDEyIEBAIHN0YXRpYyBwcm9jX3QgKipwcm9jc19yZWZyZXNoIChw cm9jX3QgKip0YWJsZSwgaW50IGZsYWdzKQotICAgIGVsc2UKLSAgICAgICBQVCA9IG9wZW5wcm9j KGZsYWdzKTsKLSAKLSsgICAgaWYgKFBUPT1OVUxMKSB7Ci0rICAgICAgICBzdGRfZXJyKHN0cmVy cm9yKGVycm5vKSk7Ci0rICAgICAgICBleGl0KDEpOwotKyAgICB9Ci0rCi0rCi0gICAgLy8gaSkg QWxsb2NhdGVkIENodW5rczogICpFeGlzdGluZyogdGFibGU7ICByZWZyZXNoICsgcmV1c2UKLSAg ICBpZiAoIShDSEt3KEN1cndpbiwgU2hvd19USFJFQURTKSkpIHsKLSAgICAgICB3aGlsZSAoY3Vy bWF4IDwgc2F2bWF4KSB7Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwMTQtdG9wX3N0ZGluX2VvZi5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw MTQtdG9wX3N0ZGluX2VvZi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA5 YTFlNC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE0LXRvcF9zdGRpbl9l b2YucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIDY5NGQwMjU2NDlh NTUzNmQwZDMwZWQ2ZTkxZDBhODdlYzg1ZGM3YWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9w cm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmks IDE5IE1hciAyMDEwIDIxOjU4OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTQvNzBdIHRvcF9z dGRpbl9lb2YKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdG9wLmMgfCAgICA1ICsrLS0tCi0gMSBmaWxl cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS90b3AuYyBiL3RvcC5jCi1pbmRleCA3MjA1NmExLi5iZWFjYTBhIDEwMDY0NAotLS0tIGEvdG9w LmMKLSsrKyBiL3RvcC5jCi1AQCAtMzQwOCw5ICszNDA4LDggQEAgaW50IG1haW4gKGludCBkb250 X2NhcmVfYXJnYywgY2hhciAqYXJndltdKQotICAgICAgICAgIC8vIGNoZWNrIDFzdCwgaW4gY2Fz ZSB0diB6ZXJvZWQgKGJ5IHNpZyBoYW5kbGVyKSBiZWZvcmUgaXQgZ290IHNldAotICAgICAgICAg IHJjID0gY2hpbigwLCAmYywgMSk7Ci0gICAgICAgICAgaWYgKHJjIDw9IDApIHsKLS0gICAgICAg ICAgICAvLyBFT0YgaXMgcHJldHR5IG11Y2ggYSAiY2FuJ3QgaGFwcGVuIiBleGNlcHQgZm9yIGEg a2VybmVsIGJ1Zy4KLS0gICAgICAgICAgICAvLyBXZSBzaG91bGQgcXVpY2tseSBkaWUgdmlhIFNJ R0hVUCwgYW5kIHRodXMgbm90IHNwaW4gaGVyZS4KLS0gICAgICAgICAgICAvLyBpZiAocmMgPT0g MCkgZW5kX3BnbSgwKTsgLyogRU9GIGZyb20gdGVybWluYWwgKi8KLSsgICAgICAgICAgICBpZiAo cmMgPT0gMCkgZW5kX3BnbSgwKTsgLyogRU9GIGZyb20gdGVybWluYWwsIG1heSBoYXBwZW4gaWYg dG9wCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGVycm9uZW91c2x5 IGdldHMgZGV0YWNoZWQgZnJvbSBpdC4gKi8KLSAgICAgICAgICAgICBmY250bChTVERJTl9GSUxF Tk8sIEZfU0VURkwsIGZpbGVfZmxhZ3MpOwotICAgICAgICAgICAgIHNlbGVjdCgxLCAmZnMsIE5V TEwsIE5VTEwsICZ0dik7Ci0gICAgICAgICAgICAgZmNudGwoU1RESU5fRklMRU5PLCBGX1NFVEZM LCBPX05PTkJMT0NLfGZpbGVfZmxhZ3MpOwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDE1LXRvcF91aWRfbGVuZ3RoLnBhdGNoIGIvcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDAxNS10b3BfdWlkX2xlbmd0aC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZGU1YTBmZi4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE1 LXRvcF91aWRfbGVuZ3RoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJv bSAyYmQwOGY0YWI5YjNlNmI1ZGNkMWEwZDdkN2RmZDI1YTUzNTViYzkyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21h aW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3Jn PgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENI IDE1LzcwXSB0b3BfdWlkX2xlbmd0aAotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSB0b3AuYyB8ICAgIDIg Ky0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3RvcC5jIGIvdG9wLmMKLWluZGV4IGJlYWNhMGEuLjUzY2FiMDUgMTAwNjQ0 Ci0tLS0gYS90b3AuYwotKysrIGIvdG9wLmMKLUBAIC0xMjM3LDcgKzEyMzcsNyBAQCBzdGF0aWMg RkxEX3QgRmllbGRzdGFiW10gPSB7Ci0gICAgeyAiQWFBYSIsICIgICBQSUQiLCAgICAgICIgJTV1 IiwgICAgIC0xLCAgICAtMSwgU0YoUElEKSwgIlByb2Nlc3MgSWQiLCAgICAgICAgICAgTF9OT05F ICAgfSwKLSAgICB7ICJCYkJiIiwgIiAgUFBJRCIsICAgICAgIiAlNXUiLCAgICAgLTEsICAgIC0x LCBTRihQUEQpLCAiUGFyZW50IFByb2Nlc3MgUGlkIiwgICBMX0VJVEhFUiB9LAotICAgIHsgIkNj UXEiLCAiIFJVU0VSICAgIiwgICAiICUtOC44cyIsICAtMSwgICAgLTEsIFNGKFVSUiksICJSZWFs IHVzZXIgbmFtZSIsICAgICAgIExfUlVTRVIgIH0sCi0tICAgeyAiRGRDYyIsICIgIFVJRCIsICAg ICAgICIgJTR1IiwgICAgIC0xLCAgICAtMSwgU0YoVUlEKSwgIlVzZXIgSWQiLCAgICAgICAgICAg ICAgTF9OT05FICAgfSwKLSsgICB7ICJEZENjIiwgIiAgIFVJRCIsICAgICAgICIgJTV1IiwgICAg IC0xLCAgICAtMSwgU0YoVUlEKSwgIlVzZXIgSWQiLCAgICAgICAgICAgICAgTF9OT05FICAgfSwK LSAgICB7ICJFZURkIiwgIiBVU0VSICAgICIsICAgIiAlLTguOHMiLCAgLTEsICAgIC0xLCBTRihV UkUpLCAiVXNlciBOYW1lIiwgICAgICAgICAgICBMX0VVU0VSICB9LAotICAgIHsgIkZmTm4iLCAi IEdST1VQICAgIiwgICAiICUtOC44cyIsICAtMSwgICAgLTEsIFNGKEdSUCksICJHcm91cCBOYW1l IiwgICAgICAgICAgIExfR1JPVVAgIH0sCi0gICAgeyAiR2dHZyIsICIgVFRZICAgICAiLCAgICIg JS04LjhzIiwgICA4LCAgICAtMSwgU0YoVFRZKSwgIkNvbnRyb2xsaW5nIFR0eSIsICAgICAgTF9z dGF0ICAgfSwKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDAxNi11cHRpbWUuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTYtdXB0aW1lLjEu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMmRhMDYuLjAwMDAwMDAKLS0t IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxNi11cHRpbWUuMS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDU3ICswLDAgQEAKLUZyb20gYjc5ZTRjNDI1OTJmZjA0MDgxN2ZkNzIyYzYwODNiMmVi ZTQwYzI4OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGVi aWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50 YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDUg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAxNi83MF0gdXB0aW1lLjEKLQotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t Ci0gdXB0aW1lLjEgfCAgIDIzICsrKysrKysrKysrKysrKysrKy0tLS0tCi0gMSBmaWxlcyBjaGFu Z2VkLCAxOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdXB0 aW1lLjEgYi91cHRpbWUuMQotaW5kZXggM2FhZTczOS4uYTNkYTdjNyAxMDA2NDQKLS0tLSBhL3Vw dGltZS4xCi0rKysgYi91cHRpbWUuMQotQEAgLTYsNyArNiw4IEBAIHVwdGltZSBcLSBUZWxsIGhv dyBsb25nIHRoZSBzeXN0ZW0gaGFzIGJlZW4gcnVubmluZy4KLSAuU0ggU1lOT1BTSVMKLSAuQiB1 cHRpbWUKLSAuYnIKLS0uQlIgdXB0aW1lICIgWyIgIlwtViIgXQotKy5CIHVwdGltZQotKy5SQiBb IFwtViBdCi0gLlNIIERFU0NSSVBUSU9OCi0gLkIgdXB0aW1lCi0gZ2l2ZXMgYSBvbmUgbGluZSBk aXNwbGF5IG9mIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24uCi1AQCAtMTQsMTMgKzE1LDI1IEBA IFRoZSBjdXJyZW50IHRpbWUsCi0gaG93IGxvbmcgdGhlIHN5c3RlbSBoYXMgYmVlbiBydW5uaW5n LAotIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgbG9nZ2VkIG9uLAotIGFuZCB0aGUgc3lz dGVtIGxvYWQgYXZlcmFnZXMgZm9yIHRoZSBwYXN0IDEsIDUsIGFuZCAxNSBtaW51dGVzLgotLS5z cAotKwotIFRoaXMgaXMgdGhlIHNhbWUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBoZWFk ZXIgbGluZSBkaXNwbGF5ZWQgYnkgCi0gLkJSIHcgKDEpLgotKy5zcAotK1N5c3RlbSBsb2FkIGF2 ZXJhZ2VzIGlzIHRoZSBhdmVyYWdlIG51bWJlciBvZiBwcm9jZXNzZXMgdGhhdCBhcmUgZWl0aGVy Ci0raW4gYSBydW5uYWJsZSBvciB1bmludGVycnVwdGFibGUgc3RhdGUuICBBIHByb2Nlc3MgaW4g YSBydW5uYWJsZSBzdGF0ZSBpcwotK2VpdGhlciB1c2luZyB0aGUgQ1BVIG9yIHdhaXRpbmcgdG8g dXNlIHRoZSBDUFUuIEEgcHJvY2VzcyBpbgotK3VuaW50ZXJydXB0YWJsZSBzdGF0ZSBpcyB3YWl0 aW5nIGZvciBzb21lIEkvTyBhY2Nlc3MsIGVnIHdhaXRpbmcgZm9yCi0rZGlzay4gIFRoZSBhdmVy YWdlcyBhcmUgdGFrZW4gb3ZlciB0aGUgdGhyZWUgdGltZSBpbnRlcnZhbHMuCi0rTG9hZCBhdmVy YWdlcyBhcmUgbm90IG5vcm1hbGl6ZWQgZm9yIHRoZSBudW1iZXIgb2YgQ1BVcyBpbiBhIHN5c3Rl bSwgc28KLSthIGxvYWQgYXZlcmFnZSBvZiAxIG1lYW5zIGEgc2luZ2xlIENQVSBzeXN0ZW0gaXMg bG9hZGVkIGFsbCB0aGUgdGltZQotK3doaWxlIG9uIGEgNCBDUFUgc3lzdGVtIGl0IG1lYW5zIGl0 IHdhcyBpZGxlIDc1JSBvZiB0aGUgdGltZS4KLSAuU0ggRklMRVMKLS0uSVIgL3Zhci9ydW4vdXRt cCAiCWluZm9ybWF0aW9uIGFib3V0IHdobyBpcyBjdXJyZW50bHkgbG9nZ2VkIG9uIgotLS5icgot LS5JUiAvcHJvYyAiCXByb2Nlc3MgaW5mb3JtYXRpb24iCi0rLlRQCi0rLkkgL3Zhci9ydW4vdXRt cAotK2luZm9ybWF0aW9uIGFib3V0IHdobyBpcyBjdXJyZW50bHkgbG9nZ2VkIG9uCi0rLlRQCi0r LkkgL3Byb2MKLStwcm9jZXNzIGluZm9ybWF0aW9uCi0gLlNIIEFVVEhPUlMKLSAuQiB1cHRpbWUK LSB3YXMgd3JpdHRlbiBieSBMYXJyeSBHcmVlbmZpZWxkIDxncmVlbmZpZUBnYXVzcy5ydXRnZXJz LmVkdT4gYW5kCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMTctdm1zdGF0LjgucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE3LXZtc3RhdC44 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjQwNGE3Li4wMDAwMDAwCi0t LSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTctdm1zdGF0LjgucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxMTkgKzAsMCBAQAotRnJvbSBlMGQyZmUxODI4YWYwNTExN2EwNGUxNjdjZjc3YTI2 ZjdkY2YxMjA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5k ZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFu LnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0 NSArMDEwMAotU3ViamVjdDogW1BBVENIIDE3LzcwXSB2bXN0YXQuOAotCi1SZW1vdmVzIHBzbGFi IGFzIGl0IGRvZXNudCBhcHBlYXIKLS0tLQotIHZtc3RhdC44IHwgICAzNyArKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25z KCspLCAxNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Ztc3RhdC44IGIvdm1zdGF0LjgK LWluZGV4IGMwNTllYzAuLmM5NzgyNmYgMTAwNjQ0Ci0tLS0gYS92bXN0YXQuOAotKysrIGIvdm1z dGF0LjgKLUBAIC0xLDYgKzEsNiBAQAotIC5cIiAgVGhpcyBwYWdlIENvcHlyaWdodCAoQykgMTk5 NCBIZW5yeSBXYXJlIDxhbDE3MkB5Zm4ueXN1LmVkdT4KLSAuXCIgIERpc3RyaWJ1dGVkIHVuZGVy IHRoZSBHUEwsIENvcHlsZWZ0IDE5OTQuCi0tLlRIIFZNU1RBVCA4ICIyNyBKdWx5IDE5OTQgIiAi VGhyb2F0d29iYmxlciBHaW5rZ28gTGFicyIgIkxpbnV4IEFkbWluaXN0cmF0b3IncyBNYW51YWwi Ci0rLlRIIFZNU1RBVCA4ICIyMDA5IEphbiA5IiAiVGhyb2F0d29iYmxlciBHaW5rZ28gTGFicyIg IkxpbnV4IEFkbWluaXN0cmF0b3IncyBNYW51YWwiCi0gLlNIIE5BTUUKLSB2bXN0YXQgXC0gUmVw b3J0IHZpcnR1YWwgbWVtb3J5IHN0YXRpc3RpY3MKLSAuU0ggU1lOT1BTSVMKLUBAIC0yMiwzMiAr MjIsMzUgQEAgdm1zdGF0IFwtIFJlcG9ydCB2aXJ0dWFsIG1lbW9yeSBzdGF0aXN0aWNzCi0gLlJC IFsgIlwtZCJdCi0gLmJyCi0gLkIgdm1zdGF0Ci0rLlJCIFsgIlwtRCJdCi0rLmJyCi0rLkIgdm1z dGF0Ci0gLlJCIFsgIlwtcCBkaXNrIHBhcnRpdGlvbiJdCi0gLmJyCi0gLkIgdm1zdGF0Ci0gLlJC IFsgIlwtViIgXQotIC5TSCBERVNDUklQVElPTgotIFxmQnZtc3RhdFxmUCByZXBvcnRzIGluZm9y bWF0aW9uIGFib3V0IHByb2Nlc3NlcywgbWVtb3J5LCBwYWdpbmcsCi0tYmxvY2sgSU8sIHRyYXBz LCBhbmQgY3B1IGFjdGl2aXR5LgotK2Jsb2NrIElPLCB0cmFwcywgZGlza3MgYW5kIGNwdSBhY3Rp dml0eS4KLSAKLSBUaGUgZmlyc3QgcmVwb3J0IHByb2R1Y2VkIGdpdmVzIGF2ZXJhZ2VzIHNpbmNl IHRoZSBsYXN0IHJlYm9vdC4gIEFkZGl0aW9uYWwKLSByZXBvcnRzIGdpdmUgaW5mb3JtYXRpb24g b24gYSBzYW1wbGluZyBwZXJpb2Qgb2YgbGVuZ3RoIFxmSWRlbGF5XGZQLgotIFRoZSBwcm9jZXNz IGFuZCBtZW1vcnkgcmVwb3J0cyBhcmUgaW5zdGFudGFuZW91cyBpbiBlaXRoZXIgY2FzZS4KLSAK LSAuU1MgT3B0aW9ucwotLVRoZSBcZkItYVxmUCBzd2l0Y2ggZGlzcGxheXMgYWN0aXZlL2luYWN0 aXZlIG1lbW9yeSwgZ2l2ZW4gYSAyLjUuNDEga2VybmVsIG9yIGJldHRlci4KLStUaGUgXGZCXC1h XGZQIHN3aXRjaCBkaXNwbGF5cyBhY3RpdmUvaW5hY3RpdmUgbWVtb3J5LCBnaXZlbiBhIDIuNS40 MSBrZXJuZWwgb3IgYmV0dGVyLgotIC5QUAotLVRoZSBcZkItZlxmUCBzd2l0Y2ggZGlzcGxheXMg dGhlIG51bWJlciBvZiBmb3JrcyBzaW5jZSBib290LgotK1RoZSBcZkJcLWZcZlAgc3dpdGNoIGRp c3BsYXlzIHRoZSBudW1iZXIgb2YgZm9ya3Mgc2luY2UgYm9vdC4KLSBUaGlzIGluY2x1ZGVzIHRo ZSBmb3JrLCB2Zm9yaywgYW5kIGNsb25lIHN5c3RlbSBjYWxscywgYW5kIGlzCi0gZXF1aXZhbGVu dCB0byB0aGUgdG90YWwgbnVtYmVyIG9mIHRhc2tzIGNyZWF0ZWQuIEVhY2ggcHJvY2VzcwotIGlz IHJlcHJlc2VudGVkIGJ5IG9uZSBvciBtb3JlIHRhc2tzLCBkZXBlbmRpbmcgb24gdGhyZWFkIHVz YWdlLgotIFRoaXMgZGlzcGxheSBkb2VzIG5vdCByZXBlYXQuCi0gLlBQCi0tVGhlIFxmQi1tXGZQ IGRpc3BsYXlzIHNsYWJpbmZvLgotK1RoZSBcZkJcLW1cZlAgZGlzcGxheXMgc2xhYmluZm8uCi0g LlBQCi0tVGhlIFxmQi1uXGZQIHN3aXRjaCBjYXVzZXMgdGhlIGhlYWRlciB0byBiZSBkaXNwbGF5 ZWQgb25seSBvbmNlIHJhdGhlciB0aGFuIHBlcmlvZGljYWxseS4KLStUaGUgXGZCXC1uXGZQIHN3 aXRjaCBjYXVzZXMgdGhlIGhlYWRlciB0byBiZSBkaXNwbGF5ZWQgb25seSBvbmNlIHJhdGhlciB0 aGFuIHBlcmlvZGljYWxseS4KLSAuUFAKLS1UaGUgXGZCLXNcZlAgc3dpdGNoIGRpc3BsYXlzIGEg dGFibGUgb2YgdmFyaW91cyBldmVudCBjb3VudGVycwotK1RoZSBcZkJcLXNcZlAgc3dpdGNoIGRp c3BsYXlzIGEgdGFibGUgb2YgdmFyaW91cyBldmVudCBjb3VudGVycwotIGFuZCBtZW1vcnkgc3Rh dGlzdGljcy4gVGhpcyBkaXNwbGF5IGRvZXMgbm90IHJlcGVhdC4KLSAuUFAKLSAuSSBkZWxheQot QEAgLTU4LDEzICs2MSwxNSBAQCBvbmx5IG9uZSByZXBvcnQgaXMgcHJpbnRlZCB3aXRoIHRoZSBh dmVyYWdlIHZhbHVlcyBzaW5jZSBib290LgotIGlzIHRoZSBudW1iZXIgb2YgdXBkYXRlcy4gIElm IG5vIGNvdW50IGlzIHNwZWNpZmllZCBhbmQgZGVsYXkgaXMKLSBkZWZpbmVkLCBcZkljb3VudFxm UCBkZWZhdWx0cyB0byBpbmZpbml0eS4KLSAuUFAKLS1UaGUgXGZCLWRcZlAgcmVwb3J0cyBkaXNr IHN0YXRpc3RpY3MgKDIuNS43MCBvciBhYm92ZSByZXF1aXJlZCkgCi0rVGhlIFxmQlwtZFxmUCBy ZXBvcnRzIGRpc2sgc3RhdGlzdGljcyAoMi41LjcwIG9yIGFib3ZlIHJlcXVpcmVkKQotKy5QUAot K1RoZSBcZkItRFxmUCByZXBvcnRzIHNvbWUgc3VtbWFyeSBzdGF0aXN0aWNzIGFib3V0IGRpc2sg YWN0aXZpdHkuCi0gLlBQCi0tVGhlIFxmQi1wXGZQIGZvbGxvd2VkIGJ5IHNvbWUgcGFydGl0aW9u IG5hbWUgZm9yIGRldGFpbGVkIHN0YXRpc3RpY3MgKDIuNS43MCBvciBhYm92ZSByZXF1aXJlZCkg Ci0rVGhlIFxmQlwtcFxmUCBmb2xsb3dlZCBieSBzb21lIHBhcnRpdGlvbiBuYW1lIGZvciBkZXRh aWxlZCBzdGF0aXN0aWNzICgyLjUuNzAgb3IgYWJvdmUgcmVxdWlyZWQpCi0gLlBQCi0tVGhlIFxm Qi1TXGZQIGZvbGxvd2VkIGJ5IGsgb3IgSyBvciBtIG9yIE0gc3dpdGNoZXMgb3V0cHV0cyBiZXR3 ZWVuIDEwMDAsIDEwMjQsIDEwMDAwMDAsIG9yIDEwNDg1NzYgYnl0ZXMgCi0rVGhlIFxmQlwtU1xm UCBmb2xsb3dlZCBieSBrIG9yIEsgb3IgbSBvciBNIHN3aXRjaGVzIG91dHB1dHMgYmV0d2VlbiAx MDAwLCAxMDI0LCAxMDAwMDAwLCBvciAxMDQ4NTc2IGJ5dGVzCi0gLlBQCi0tVGhlIFxmQi1WXGZQ IHN3aXRjaCByZXN1bHRzIGluIGRpc3BsYXlpbmcgdmVyc2lvbiBpbmZvcm1hdGlvbi4KLStUaGUg XGZCXC1WXGZQIHN3aXRjaCByZXN1bHRzIGluIGRpc3BsYXlpbmcgdmVyc2lvbiBpbmZvcm1hdGlv bi4KLSAuUFAKLSAuU0ggRklFTEQgREVTQ1JJUFRJT04gRk9SIFZNIE1PREUKLSAuU1MKLUBAIC04 MSw4ICs4Niw4IEBAIHN3cGQ6IHRoZSBhbW91bnQgb2YgdmlydHVhbCBtZW1vcnkgdXNlZC4KLSBm cmVlOiB0aGUgYW1vdW50IG9mIGlkbGUgbWVtb3J5LgotIGJ1ZmY6IHRoZSBhbW91bnQgb2YgbWVt b3J5IHVzZWQgYXMgYnVmZmVycy4KLSBjYWNoZTogdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBh cyBjYWNoZS4KLS1pbmFjdDogdGhlIGFtb3VudCBvZiBpbmFjdGl2ZSBtZW1vcnkuICgtYSBvcHRp b24pCi0tYWN0aXZlOiB0aGUgYW1vdW50IG9mIGFjdGl2ZSBtZW1vcnkuICgtYSBvcHRpb24pCi0r aW5hY3Q6IHRoZSBhbW91bnQgb2YgaW5hY3RpdmUgbWVtb3J5LiAoXC1hIG9wdGlvbikKLSthY3Rp dmU6IHRoZSBhbW91bnQgb2YgYWN0aXZlIG1lbW9yeS4gKFwtYSBvcHRpb24pCi0gLmZpCi0gLlBQ Ci0gLlNTCi1AQCAtMTEwLDkgKzExNSw5IEBAIGNzOiBUaGUgbnVtYmVyIG9mIGNvbnRleHQgc3dp dGNoZXMgcGVyIHNlY29uZC4KLSAuQiAiQ1BVICIKLSBUaGVzZSBhcmUgcGVyY2VudGFnZXMgb2Yg dG90YWwgQ1BVIHRpbWUuCi0gLm5mCi0tdXM6IFRpbWUgc3BlbnQgcnVubmluZyBub24ta2VybmVs IGNvZGUuICh1c2VyIHRpbWUsIGluY2x1ZGluZyBuaWNlIHRpbWUpCi0rdXM6IFRpbWUgc3BlbnQg cnVubmluZyBub25cLWtlcm5lbCBjb2RlLiAodXNlciB0aW1lLCBpbmNsdWRpbmcgbmljZSB0aW1l KQotIHN5OiBUaW1lIHNwZW50IHJ1bm5pbmcga2VybmVsIGNvZGUuIChzeXN0ZW0gdGltZSkKLS1p ZDogVGltZSBzcGVudCBpZGxlLiBQcmlvciB0byBMaW51eCAyLjUuNDEsIHRoaXMgaW5jbHVkZXMg SU8td2FpdCB0aW1lLgotK2lkOiBUaW1lIHNwZW50IGlkbGUuIFByaW9yIHRvIExpbnV4IDIuNS40 MSwgdGhpcyBpbmNsdWRlcyBJT1wtd2FpdCB0aW1lLgotIHdhOiBUaW1lIHNwZW50IHdhaXRpbmcg Zm9yIElPLiBQcmlvciB0byBMaW51eCAyLjUuNDEsIGluY2x1ZGVkIGluIGlkbGUuCi0gc3Q6IFRp bWUgc3RvbGVuIGZyb20gYSB2aXJ0dWFsIG1hY2hpbmUuIFByaW9yIHRvIExpbnV4IDIuNi4xMSwg dW5rbm93bi4KLSAKLUBAIC0xNjEsOCArMTY2LDYgQEAgbnVtOiBOdW1iZXIgb2YgY3VycmVudGx5 IGFjdGl2ZSBvYmplY3RzCi0gdG90YWw6IFRvdGFsIG51bWJlciBvZiBhdmFpbGFibGUgb2JqZWN0 cwotIHNpemU6IFNpemUgb2YgZWFjaCBvYmplY3QKLSBwYWdlczogTnVtYmVyIG9mIHBhZ2VzIHdp dGggYXQgbGVhc3Qgb25lIGFjdGl2ZSBvYmplY3QKLS10b3RwYWdlczogVG90YWwgbnVtYmVyIG9m IGFsbG9jYXRlZCBwYWdlcwotLXBzbGFiOiBOdW1iZXIgb2YgcGFnZXMgcGVyIHNsYWIKLSAuZmkK LSAKLSAuU0ggTk9URVMKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAxOC13YXRjaC4xLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAxOC13YXRj aC4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0M2E3OTAxLi4wMDAwMDAw Ci0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTgtd2F0Y2guMS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDExMiArMCwwIEBACi1Gcm9tIDYxZTkyZGFmOTIxYjdhODVhYzg2OTMzNDFmODg5 MDY1OGM2MWYwNDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRl LmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJp YW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4 OjQ1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTgvNzBdIHdhdGNoLjEKLQotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tCi0gd2F0Y2guMSB8ICAgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDE5IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvd2F0Y2guMSBiL3dhdGNoLjEKLWluZGV4IDQxMzIzZjQu LjE2MTY3OTQgMTAwNjQ0Ci0tLS0gYS93YXRjaC4xCi0rKysgYi93YXRjaC4xCi1AQCAtMSw0NSAr MSw1NCBAQAotLS5USCBXQVRDSCAxICIxOTk5IEFwciAzIiAiICIgIkxpbnV4IFVzZXIncyBNYW51 YWwiCi0rLlRIIFdBVENIIDEgIjIwMDkgTWF5IDExIiAiICIgIkxpbnV4IFVzZXIncyBNYW51YWwi Ci0gLlNIIE5BTUUKLSB3YXRjaCBcLSBleGVjdXRlIGEgcHJvZ3JhbSBwZXJpb2RpY2FsbHksIHNo b3dpbmcgb3V0cHV0IGZ1bGxzY3JlZW4KLSAuU0ggU1lOT1BTSVMKLSsubmEKLSAuQiB3YXRjaAot LS5JIFtcLWRodnRdIFtcLW4gPHNlY29uZHM+XSBbXC1cLWRpZmZlcmVuY2VzWz1jdW11bGF0aXZl XV0gW1wtXC1oZWxwXSBbXC1cLWludGVydmFsPTxzZWNvbmRzPl0gW1wtXC1ub1wtdGl0bGVdIFtc LVwtdmVyc2lvbl0gPGNvbW1hbmQ+Ci0rLlJCIFsgXC1kaHZ0IF0KLSsuUkIgWyBcLW4KLSsuSVIg c2Vjb25kcyBdCi0rLlJCIFsgXC1cLWRpZmZlcmVuY2VzWz1cZkljdW11bGF0aXZlXGZQXV0KLSsu UkIgWyBcLVwtaGVscCBdCi0rLlJCIFsgXC1cLWludGVydmFsPVxmSXNlY29uZHNcZlBdCi0rLlJC IFsgXC1cLW5vXC10aXRsZSBdCi0rLlJCIFsgXC1cLXZlcnNpb24gXQotKy5JIGNvbW1hbmQKLSAu U0ggREVTQ1JJUFRJT04KLS0uQlIgd2F0Y2gKLSsuQiB3YXRjaAotIHJ1bnMKLSAuSSBjb21tYW5k Ci0gcmVwZWF0ZWRseSwgZGlzcGxheWluZyBpdHMgb3V0cHV0ICh0aGUgZmlyc3Qgc2NyZWVuZnVs bCkuICBUaGlzIGFsbG93cyB5b3UgdG8KLSB3YXRjaCB0aGUgcHJvZ3JhbSBvdXRwdXQgY2hhbmdl IG92ZXIgdGltZS4gIEJ5IGRlZmF1bHQsIHRoZSBwcm9ncmFtIGlzIHJ1bgotIGV2ZXJ5IDIgc2Vj b25kczsgdXNlIAotLS5JIC1uCi0rLkIgXC1uCi0gb3IKLS0uSSAtLWludGVydmFsCi0rLkIgXC1c LWludGVydmFsCi0gdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBpbnRlcnZhbC4KLSAuUFAKLSBUaGUK LS0uSSAtZAotKy5CIFwtZAotIG9yCi0tLkkgLS1kaWZmZXJlbmNlcwotLWZsYWcgd2lsbCBoaWdo bGlnaHQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gc3VjY2Vzc2l2ZSB1cGRhdGVzLiAgVGhlIAot LS5JIC0tY3VtdWxhdGl2ZQotLW9wdGlvbiBtYWtlcyBoaWdobGlnaHRpbmcgInN0aWNreSIsIHBy ZXNlbnRpbmcgYSBydW5uaW5nIGRpc3BsYXkgb2YgYWxsCi0rLkIgXC1cLWRpZmZlcmVuY2VzCi0r ZmxhZyB3aWxsIGhpZ2hsaWdodCB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBzdWNjZXNzaXZlIHVw ZGF0ZXMuICBVc2luZwotKy5CIFwtXC1kaWZmZXJlbmNlcz1cZkljdW11bGF0aXZlXGZQCi0rbWFr ZXMgaGlnaGxpZ2h0aW5nICJzdGlja3kiLCBwcmVzZW50aW5nIGEgcnVubmluZyBkaXNwbGF5IG9m IGFsbAotIHBvc2l0aW9ucyB0aGF0IGhhdmUgZXZlciBjaGFuZ2VkLiAgVGhlCi0tLkkgLXQKLSsu QiBcLXQKLSBvcgotLS5JIC0tbm8tdGl0bGUKLSsuQiBcLVwtbm9cLXRpdGxlCi0gb3B0aW9uIHR1 cm5zIG9mZiB0aGUgaGVhZGVyIHNob3dpbmcgdGhlIGludGVydmFsLCBjb21tYW5kLCBhbmQgY3Vy cmVudAotIHRpbWUgYXQgdGhlIHRvcCBvZiB0aGUgZGlzcGxheSwgYXMgd2VsbCBhcyB0aGUgZm9s bG93aW5nIGJsYW5rIGxpbmUuCi0gLlBQCi0tLkJSIHdhdGNoCi0rLkIgd2F0Y2gKLSB3aWxsIHJ1 biB1bnRpbCBpbnRlcnJ1cHRlZC4KLSAuU0ggTk9URQotIE5vdGUgdGhhdAotIC5JIGNvbW1hbmQK LS1pcyBnaXZlbiB0byAic2ggLWMiCi0raXMgZ2l2ZW4gdG8gInNoIFwtYyIKLSB3aGljaCBtZWFu cyB0aGF0IHlvdSBtYXkgbmVlZCB0byB1c2UgZXh0cmEgcXVvdGluZyB0byBnZXQgdGhlIGRlc2ly ZWQgZWZmZWN0LgotIC5QUAotIE5vdGUgdGhhdCBQT1NJWCBvcHRpb24gcHJvY2Vzc2luZyBpcyB1 c2VkIChpLmUuLCBvcHRpb24gcHJvY2Vzc2luZyBzdG9wcyBhdAotLXRoZSBmaXJzdCBub24tb3B0 aW9uIGFyZ3VtZW50KS4gIFRoaXMgbWVhbnMgdGhhdCBmbGFncyBhZnRlcgotK3RoZSBmaXJzdCBu b25cLW9wdGlvbiBhcmd1bWVudCkuICBUaGlzIG1lYW5zIHRoYXQgZmxhZ3MgYWZ0ZXIKLSAuSSBj b21tYW5kCi0gZG9uJ3QgZ2V0IGludGVycHJldGVkIGJ5Ci0gLkJSIHdhdGNoCi1AQCAtNjEsMjAg KzcwLDIwIEBAIHdhdGNoIFwtZCAnbHMgXC1sIHwgZmdyZXAgam9lJwotIFRvIHNlZSB0aGUgZWZm ZWN0cyBvZiBxdW90aW5nLCB0cnkgdGhlc2Ugb3V0Ci0gLklQCi0gd2F0Y2ggZWNobyAkJAotLS5J UAotKy5icgotIHdhdGNoIGVjaG8gJyQkJwotLS5JUAotKy5icgotIHdhdGNoIGVjaG8gIiciJyQk JyInIgotIC5QUAotIFlvdSBjYW4gd2F0Y2ggZm9yIHlvdXIgYWRtaW5pc3RyYXRvciB0byBpbnN0 YWxsIHRoZSBsYXRlc3Qga2VybmVsIHdpdGgKLSAuSVAKLS13YXRjaCB1bmFtZSAtcgotK3dhdGNo IHVuYW1lIFwtcgotIC5QUAotIChKdXN0IGtpZGRpbmcuKQotIC5TSCBCVUdTCi0gVXBvbiB0ZXJt aW5hbCByZXNpemUsIHRoZSBzY3JlZW4gd2lsbCBub3QgYmUgY29ycmVjdGx5IHJlcGFpbnRlZCB1 bnRpbCB0aGUKLSBuZXh0IHNjaGVkdWxlZCB1cGRhdGUuICBBbGwKLS0uSSAtLWRpZmZlcmVuY2Vz Ci0rLkIgXC1cLWRpZmZlcmVuY2VzCi0gaGlnaGxpZ2h0aW5nIGlzIGxvc3Qgb24gdGhhdCB1cGRh dGUgYXMgd2VsbC4KLSAuUFAKLSBOb24tcHJpbnRpbmcgY2hhcmFjdGVycyBhcmUgc3RyaXBwZWQg ZnJvbSBwcm9ncmFtIG91dHB1dC4gIFVzZSAiY2F0IC12IiBhcwotLS0gCi0xLjcuMAotCmRpZmYg LS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDE5LXdfdGltZS5wYXRjaCBiL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwMTktd190aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAxMzIwY2JlLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMTktd190 aW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJvbSA1NzUwNmVkZmIx MmJjYjdiMTRkODYxNGQ5ZTc5ODcyYmVlY2EwNWE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMv cHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJp LCAxOSBNYXIgMjAxMCAyMTo1ODo0NSArMDEwMAotU3ViamVjdDogW1BBVENIIDE5LzcwXSB3X3Rp bWUKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tCi0gdy5jIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwg MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdy5jIGIvdy5j Ci1pbmRleCAxYjJhMGZjLi5hNmIxYjI1IDEwMDY0NAotLS0tIGEvdy5jCi0rKysgYi93LmMKLUBA IC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3RpbWVfaXZhbDcodGltZV90IHQsIGlu dCBjZW50aV9zZWMsIEZJTEUqIGZvdXQpIHsKLSAgICAgZWxzZSBpZiAodCA+IDYwKQkJCQkvKiA+ IDEgbWludXRlICovCi0gCWZwcmludGYoZm91dCwgIiAlMmx1OiUwMnUgIiwgdC82MCwgKHVuc2ln bmVkKSB0JTYwKTsKLSAgICAgZWxzZQotLQlmcHJpbnRmKGZvdXQsICIgJTJsdS4lMDJ1cyIsIHQs IGNlbnRpX3NlYyk7Ci0rICAgIGZwcmludGYoZm91dCwgIiAlMmx1LiUwMnVzIiwgdCwgY2VudGlf c2VjKTsKLSB9Ci0gCi0gLyoqKiogc3RhdCB0aGUgZGV2aWNlIGZpbGUgdG8gZ2V0IGFuIGlkbGUg dGltZSAqLwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDIwLWtpbGwuMS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjAta2lsbC4xLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTdhNTQ5Li4wMDAwMDAwCi0tLSBhL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwMjAta2lsbC4xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTU3ICswLDAgQEAKLUZyb20gMDU0MDNmOGViMWEyZmI0ZDBjMDMwMzQ2MzNlODYyNmZmZmIzMzY4 NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9y Zy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3og PGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSCAyMC83MF0ga2lsbC4xCi0KLUNoYW5nZWQgbWF5IHRvIGNhbm5vdCBv ciBtaWdodAotQnVnLURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy8zNzU3MzkKLS0tLQot IGtpbGwuMSB8ICAgODYgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCsp LCA0OSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2tpbGwuMSBiL2tpbGwuMQotaW5kZXgg YWVmOWRiZi4uZGYxYmRkNyAxMDA2NDQKLS0tLSBhL2tpbGwuMQotKysrIGIva2lsbC4xCi1AQCAt MTAsMjMgKzEwLDE4IEBACi0ga2lsbCBcLSBzZW5kIGEgc2lnbmFsIHRvIGEgcHJvY2VzcwotIAot IC5TSCBTWU5PUFNJUwotLS5UUwotLWwgbC4KLS1raWxsIHBpZCAuLi4JU2VuZCBTSUdURVJNIHRv IGV2ZXJ5IHByb2Nlc3MgbGlzdGVkLgotLWtpbGwgLXNpZ25hbCBwaWQgLi4uCVNlbmQgYSBzaWdu YWwgdG8gZXZlcnkgcHJvY2VzcyBsaXN0ZWQuCi0ta2lsbCAtcyBzaWduYWwgcGlkIC4uLglTZW5k IGEgc2lnbmFsIHRvIGV2ZXJ5IHByb2Nlc3MgbGlzdGVkLgotLWtpbGwgLWwJTGlzdCBhbGwgc2ln bmFsIG5hbWVzLgotLWtpbGwgLUwJTGlzdCBhbGwgc2lnbmFsIG5hbWVzIGluIGEgbmljZSB0YWJs ZS4KLS1raWxsIC1sIHNpZ25hbAlDb252ZXJ0IGEgc2lnbmFsIG51bWJlciBpbnRvIGEgbmFtZS4K LS1raWxsIC1WLC0tdmVyc2lvbglTaG93IHZlcnNpb24gb2YgcHJvZ3JhbQotLS5URQotK1xmQmtp bGxcZlIgWyBcLVxmQnNpZ25hbFxmUiB8IFwtcyBcZkJzaWduYWxcZlIgXSBcZkJwaWRcZlIgLi4u Ci0rLmJyCi0rXGZCa2lsbFxmUiBbIFwtTCB8IC1WLCBcLVwtdmVyc2lvbiBdCi0rLmJyCi0rXGZC a2lsbFxmUiBcLWwgIFsgXGZCc2lnbmFsXGZSIF0KLSAKLSAuU0ggREVTQ1JJUFRJT04KLS1UaGUg ZGVmYXVsdCBzaWduYWwgZm9yIGtpbGwgaXMgVEVSTS4gVXNlIC1sIG9yIC1MIHRvIGxpc3QgYXZh aWxhYmxlIHNpZ25hbHMuCi0rVGhlIGRlZmF1bHQgc2lnbmFsIGZvciBraWxsIGlzIFRFUk0uIFVz ZSBcLWwgb3IgXC1MIHRvIGxpc3QgYXZhaWxhYmxlIHNpZ25hbHMuCi0gUGFydGljdWxhcmx5IHVz ZWZ1bCBzaWduYWxzIGluY2x1ZGUgSFVQLCBJTlQsIEtJTEwsIFNUT1AsIENPTlQsIGFuZCAwLgot LUFsdGVybmF0ZSBzaWduYWxzIG1heSBiZSBzcGVjaWZpZWQgaW4gdGhyZWUgd2F5czogLTkgLVNJ R0tJTEwgLUtJTEwuCi0rQWx0ZXJuYXRlIHNpZ25hbHMgbWF5IGJlIHNwZWNpZmllZCBpbiB0aHJl ZSB3YXlzOiBcLTkgXC1TSUdLSUxMIFwtS0lMTC4KLSBOZWdhdGl2ZSBQSUQgdmFsdWVzIG1heSBi ZSB1c2VkIHRvIGNob29zZSB3aG9sZSBwcm9jZXNzIGdyb3Vwczsgc2VlIHRoZQotLVBHSUQgY29s dW1uIGluIHBzIGNvbW1hbmQgb3V0cHV0LiBBIFBJRCBvZiAtMSBpcyBzcGVjaWFsOyBpdCBpbmRp Y2F0ZXMKLStQR0lEIGNvbHVtbiBpbiBwcyBjb21tYW5kIG91dHB1dC4gQSBQSUQgb2YgXC0xIGlz IHNwZWNpYWw7IGl0IGluZGljYXRlcwotIGFsbCBwcm9jZXNzZXMgZXhjZXB0IHRoZSBraWxsIHBy b2Nlc3MgaXRzZWxmIGFuZCBpbml0LgotIAotIC5TSCBTSUdOQUxTCi1AQCAtMzcsMTIgKzMyLDEx IEBAIFdoZW4ga25vd24gY29uc3RhbnQsIG51bWJlcnMgYW5kIGRlZmF1bHQgYmVoYXZpb3IgYXJl IHNob3duLgotIGxCIHJCIGxCIGxCCi0gbGZDVyByIGwgbC4KLSBOYW1lCU51bQlBY3Rpb24JRGVz Y3JpcHRpb24KLS0uVEgKLSAwCTAJbi9hCWV4aXQgY29kZSBpbmRpY2F0ZXMgaWYgYSBzaWduYWwg bWF5IGJlIHNlbnQKLSBBTFJNCTE0CWV4aXQKLSBIVVAJMQlleGl0Ci0gSU5UCTIJZXhpdAotLUtJ TEwJOQlleGl0CXRoaXMgc2lnbmFsIG1heSBub3QgYmUgYmxvY2tlZAotK0tJTEwJOQlleGl0CWNh bm5vdCBiZSBibG9ja2VkCi0gUElQRQkxMwlleGl0Ci0gUE9MTAkJZXhpdAotIFBST0YJCWV4aXQK LUBAIC01MCwxNSArNDQsMTUgQEAgVEVSTQkxNQlleGl0Ci0gVVNSMQkJZXhpdAotIFVTUjIJCWV4 aXQKLSBWVEFMUk0JCWV4aXQKLS1TVEtGTFQJCWV4aXQJbWF5IG5vdCBiZSBpbXBsZW1lbnRlZAot LVBXUgkJaWdub3JlCW1heSBleGl0IG9uIHNvbWUgc3lzdGVtcwotK1NUS0ZMVAkJZXhpdAltaWdo dCBub3QgYmUgaW1wbGVtZW50ZWQKLStQV1IJCWlnbm9yZQltaWdodCBleGl0IG9uIHNvbWUgc3lz dGVtcwotIFdJTkNICQlpZ25vcmUKLSBDSExECQlpZ25vcmUKLSBVUkcJCWlnbm9yZQotLVRTVFAJ CXN0b3AJbWF5IGludGVyYWN0IHdpdGggdGhlIHNoZWxsCi0tVFRJTgkJc3RvcAltYXkgaW50ZXJh Y3Qgd2l0aCB0aGUgc2hlbGwKLS1UVE9VCQlzdG9wCW1heSBpbnRlcmFjdCB3aXRoIHRoZSBzaGVs bAotLVNUT1AJCXN0b3AJdGhpcyBzaWduYWwgbWF5IG5vdCBiZSBibG9ja2VkCi0rVFNUUAkJc3Rv cAltaWdodCBpbnRlcmFjdCB3aXRoIHRoZSBzaGVsbAotK1RUSU4JCXN0b3AJbWlnaHQgaW50ZXJh Y3Qgd2l0aCB0aGUgc2hlbGwKLStUVE9VCQlzdG9wCW1pZ2h0IGludGVyYWN0IHdpdGggdGhlIHNo ZWxsCi0rU1RPUAkJc3RvcAljYW5ub3QgYmUgYmxvY2tlZAotIENPTlQJCXJlc3RhcnQJY29udGlu dWUgaWYgc3RvcHBlZCwgb3RoZXJ3aXNlIGlnbm9yZQotIEFCUlQJNgljb3JlCi0gRlBFCTgJY29y ZQotQEAgLTY2LDExICs2MCwxMSBAQCBJTEwJNAljb3JlCi0gUVVJVAkzCWNvcmUKLSBTRUdWCTEx CWNvcmUKLSBUUkFQCTUJY29yZQotLVNZUwkJY29yZQltYXkgbm90IGJlIGltcGxlbWVudGVkCi0t RU1UCQljb3JlCW1heSBub3QgYmUgaW1wbGVtZW50ZWQKLS1CVVMJCWNvcmUJY29yZSBkdW1wIG1h eSBmYWlsCi0tWENQVQkJY29yZQljb3JlIGR1bXAgbWF5IGZhaWwKLS1YRlNaCQljb3JlCWNvcmUg ZHVtcCBtYXkgZmFpbAotK1NZUwkJY29yZQltaWdodCBub3QgYmUgaW1wbGVtZW50ZWQKLStFTVQJ CWNvcmUJbWlnaHQgbm90IGJlIGltcGxlbWVudGVkCi0rQlVTCQljb3JlCWNvcmUgZHVtcCBtaWdo dCBmYWlsCi0rWENQVQkJY29yZQljb3JlIGR1bXAgbWlnaHQgZmFpbAotK1hGU1oJCWNvcmUJY29y ZSBkdW1wIG1pZ2h0IGZhaWwKLSAuVEUKLSAKLSAuU0ggTk9URVMKLUBAIC03OSwzNiArNzMsMzAg QEAgWW91IG1heSBuZWVkIHRvIHJ1biB0aGUgY29tbWFuZCBkZXNjcmliZWQgaGVyZSBhcyAvYmlu L2tpbGwgdG8gc29sdmUKLSB0aGUgY29uZmxpY3QuCi0gCi0gLlNIIEVYQU1QTEVTCi0tCi0tLlNT Ci0tLkIgImtpbGwgLTkgLTEiCi0tLm5mCi0rLlRQCi0rLkIga2lsbCBcLTkgXC0xCi0gS2lsbCBh bGwgcHJvY2Vzc2VzIHlvdSBjYW4ga2lsbC4KLS0uZmkKLS0uUFAKLS0uU1MKLS0uQiAia2lsbCAt bCAxMSIKLS0ubmYKLSsuVFAKLSsuQiBraWxsIFwtbCAxMQotIFRyYW5zbGF0ZSBudW1iZXIgMTEg aW50byBhIHNpZ25hbCBuYW1lLgotLS5maQotLS5QUAotLS5TUwotLS5CICJraWxsIC1MIgotLS5u ZgotKy5UUAotKy5CIGtpbGwgLUwKLSBMaXN0IHRoZSBhdmFpbGFibGUgc2lnbmFsIGNob2ljZXMg aW4gYSBuaWNlIHRhYmxlLgotLS5maQotLS5QUAotLS5TUwotLS5CICJraWxsIDEyMyA1NDMgMjM0 MSAzNDUzIgotLS5uZgotKy5UUAotKy5CIGtpbGwgMTIzIDU0MyAyMzQxIDM0NTMKLSBTZW5kIHRo ZSBkZWZhdWx0IHNpZ25hbCwgU0lHVEVSTSwgdG8gYWxsIHRob3NlIHByb2Nlc3Nlcy4KLS0uZmkK LS0uUFAKLSsKLSAuU0ggIlNFRSBBTFNPIgotLXBraWxsKDEpIHNraWxsKDEpIGtpbGwoMikgcmVu aWNlKDEpIG5pY2UoMSkgc2lnbmFsKDcpIGtpbGxhbGwoMSkKLSsuQlIgcGtpbGwgKDEpLAotKy5C UiBza2lsbCAoMSksCi0rLkJSIGtpbGwgKDIpLAotKy5CUiByZW5pY2UgKDEpLAotKy5CUiBuaWNl ICgxKSwKLSsuQlIgc2lnbmFsICg3KSwKLSsuQlIga2lsbGFsbCAoMSkuCi0gCi0gLlNIIFNUQU5E QVJEUwotLVRoaXMgY29tbWFuZCBtZWV0cyBhcHByb3ByaWF0ZSBzdGFuZGFyZHMuIFRoZSAtTCBm bGFnIGlzIExpbnV4LXNwZWNpZmljLgotK1RoaXMgY29tbWFuZCBtZWV0cyBhcHByb3ByaWF0ZSBz dGFuZGFyZHMuIFRoZSBcLUwgZmxhZyBpcyBMaW51eC1zcGVjaWZpYy4KLSAKLSAuU0ggQVVUSE9S Ci0gQWxiZXJ0IENhaGFsYW4gPGFsYmVydEB1c2Vycy5zZi5uZXQ+IHdyb3RlIGtpbGwgaW4gMTk5 OSB0byByZXBsYWNlIGEKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAyMS1raWxsX3dhcm5jci5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjEt a2lsbF93YXJuY3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0OGJhODAu LjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMS1raWxsX3dhcm5jci5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gMDdkOTNkMWYyZjVhMjk5ZDQy NzlhMGZlM2I2OWVmZWI5NDM1MDlkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0 dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18z LjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFy IDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAyMS83MF0ga2lsbF93YXJuY3IK LQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tCi0gc2tpbGwuYyB8ICAgIDQgKystLQotIDEgZmlsZXMgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc2tpbGwu YyBiL3NraWxsLmMKLWluZGV4IDU0ZDRjNDguLmM4YWY5ZmQgMTAwNjQ0Ci0tLS0gYS9za2lsbC5j Ci0rKysgYi9za2lsbC5jCi1AQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3By b2MoaW50IHBpZCl7Ci0gICBzcHJpbnRmKGJ1ZiwgIi9wcm9jLyVkL3N0YXQiLCBwaWQpOyAvKiBw aWQgKGNtZCkgc3RhdGUgcHBpZCBwZ3JwIHNlc3Npb24gdHR5ICovCi0gICBmZCA9IG9wZW4oYnVm LE9fUkRPTkxZKTsKLSAgIGlmKGZkPT0tMSl7ICAvKiBwcm9jZXNzIGV4aXRlZCBtYXliZSAqLwot LSAgICBpZihwaWRzICYmIHdfZmxhZykgcHJpbnRmKCJXQVJOSU5HOiBwcm9jZXNzICVkIGNvdWxk IG5vdCBiZSBmb3VuZC4iLHBpZCk7Ci0rICAgIGlmKHBpZHMgJiYgd19mbGFnKSBwcmludGYoIldB Uk5JTkc6IHByb2Nlc3MgJWQgY291bGQgbm90IGJlIGZvdW5kLlxuIixwaWQpOwotICAgICByZXR1 cm47Ci0gICB9Ci0gICBmc3RhdChmZCwgJnN0YXRidWYpOwotQEAgLTM0Miw3ICszNDIsNyBAQCBz dGF0aWMgdm9pZCBza2lsbHNuaWNlX3VzYWdlKHZvaWQpewotICAgfWVsc2V7Ci0gICAgIGZwcmlu dGYoc3RkZXJyLAotICAgICAgICJVc2FnZTogICBzbmljZSBbbmV3IHByaW9yaXR5XSBbb3B0aW9u c10gcHJvY2VzcyBzZWxlY3Rpb24gY3JpdGVyaWFcbiIKLS0gICAgICAiRXhhbXBsZTogc25pY2Ug bmV0c2NhcGUgY3JhY2sgKzdcbiIKLSsgICAgICAiRXhhbXBsZTogc25pY2UgKzcgbmV0c2NhcGUg Y3JhY2sgXG4iCi0gICAgICAgIlxuIgotICAgICAgICJUaGUgZGVmYXVsdCBwcmlvcml0eSBpcyAr NC4gKHNuaWNlICs0IC4uLilcbiIKLSAgICAgICAiUHJpb3JpdHkgbnVtYmVycyByYW5nZSBmcm9t ICsyMCAoc2xvd2VzdCkgdG8gLTIwIChmYXN0ZXN0KS5cbiIKLS0tIAotMS43LjAKLQpkaWZmIC0t Z2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMi1tb2R1bGVfbWtfc2hhcmVkLnBhdGNoIGIv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMi1tb2R1bGVfbWtfc2hhcmVkLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzVlMjkxLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMjItbW9kdWxlX21rX3NoYXJlZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDI2ICswLDAgQEAKLUZyb20gMjBhZWY5MmNlOThlZmI5YWZjOGRhMTUxMzVhMTFkYzg0ZTMxMWQ1 NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9y Zy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3og PGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSCAyMi83MF0gbW9kdWxlX21rX3NoYXJlZAotCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0KLSBwcm9jL21vZHVsZS5tayB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvbW9kdWxlLm1rIGIv cHJvYy9tb2R1bGUubWsKLWluZGV4IGFmMjAzMzQuLmM0ZTg1YjQgMTAwNjQ0Ci0tLS0gYS9wcm9j L21vZHVsZS5tawotKysrIGIvcHJvYy9tb2R1bGUubWsKLUBAIC0xNyw3ICsxNyw3IEBACi0gIyBu dW1iZXJzIGZvciBmdXR1cmUgdXNlLCB0aGUgRUxGIHNvbmFtZSBjYW4gYmUgc2V0IGVxdWFsIHRv IHRoZQotICMgZmlsZSBuYW1lIHVudGlsIHNvbWUgZnV0dXJlIGRhdGUgd2hlbiBhIHN0YWJsZSBB QkkgaXMgZGVjbGFyZWQuCi0gCi0tU0hBUkVEICAgICA6PSAxCi0rU0hBUkVEICAgICA/PSAxCi0g Ci0gIyBmb3IgbGliJChOQU1FKS5zbyBhbmQgL3Vzci9pbmNsdWRlLygkTkFNRSkgYW5kIHN1Y2gK LSBOQU1FICAgICAgIDo9ICBwcm9jCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwMjMtc3lzaW5mb19lbGZub3RlLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAyMy1zeXNpbmZvX2VsZm5vdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGVjMDNjZDQuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyMy1z eXNpbmZvX2VsZm5vdGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9t IDhkZjdkY2I4NDVmODBkN2ViYjQ2YTU5NDJhNjg0MTY0NTc3YjViZWUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFp bi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+ Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0gg MjMvNzBdIHN5c2luZm9fZWxmbm90ZQotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBwcm9jL3N5c2luZm8u YyB8ICAgIDMgKystCi0gMSBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3N5c2luZm8uYyBiL3Byb2Mvc3lzaW5mby5jCi1p bmRleCBjZDU5NTM0Li40NzM2MzRmIDEwMDY0NAotLS0tIGEvcHJvYy9zeXNpbmZvLmMKLSsrKyBi L3Byb2Mvc3lzaW5mby5jCi1AQCAtMjIxLDEyICsyMjEsMTMgQEAgc3RhdGljIHZvaWQgaW5pdF9s aWJwcm9jKHZvaWQpewotICAgLy8gX1NDX05QUk9DRVNTT1JTX09OTE4gcmV0dXJucyAxLCB3aGlj aCBzaG91bGQgd29yayBPSwotICAgc21wX251bV9jcHVzID0gc3lzY29uZihfU0NfTlBST0NFU1NP UlNfT05MTik7Ci0gICBpZihzbXBfbnVtX2NwdXM8MSkgc21wX251bV9jcHVzPTE7IC8qIFNQQVJD IGdsaWJjIGlzIGJ1Z2d5ICovCi0tCi0rI2lmZGVmIF9fbGludXhfXwotICAgaWYobGludXhfdmVy c2lvbl9jb2RlID4gTElOVVhfVkVSU0lPTigyLCA0LCAwKSl7IAotICAgICBIZXJ0eiA9IGZpbmRf ZWxmX25vdGUoQVRfQ0xLVENLKTsKLSAgICAgaWYoSGVydHohPU5PVEVfTk9UX0ZPVU5EKSByZXR1 cm47Ci0gICAgIGZwdXRzKCIyLjQrIGtlcm5lbCB3L28gRUxGIG5vdGVzPyAtLSByZXBvcnQgdGhp c1xuIiwgc3RkZXJyKTsKLSAgIH0KLSsjZW5kaWYKLSAgIG9sZF9IZXJ0el9oYWNrKCk7Ci0gfQot IAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI0LXRv cC4xLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNC10b3AuMS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjYzNmZmNC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDI0LXRvcC4xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDI3ICswLDAg QEAKLUZyb20gMTJmYjMzODJhMzAwMjA5MGFiODExYTc3OTU1NjUyMjU2MGYyNjY5ZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4v cG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGVi aWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6 IFtQQVRDSCAyNC83MF0gdG9wLjEKLQotRml4IHBhZ2UgZmF1bHQgZGVzY3JpcHRpb24gYmVjYXVz ZSBzdG9yYWdlIG1heSBub3QgYmUgZGlzawotQXV0aG9yOiBDcmFpZyBTbWFsbCA8Y3NtYWxsQGRl Ymlhbi5vcmc+Ci0tLS0KLSB0b3AuMSB8ICAxMTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQs IDU0IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdG9wLjEg Yi90b3AuMQotaW5kZXggYWVlZTNjOS4uYjBjZWMyZCAxMDA2NDQKLS0tLSBhL3RvcC4xCi0rKysg Yi90b3AuMQotQEAgLTQyLDcgKzQyLDcgQEAKLSAuZHMgRU0gXCBcZkJcLVwtXCBcZlIKLSBcIyAg ICAgICAgICAgICAgICAgICAgICAgICAgLSB0aGVzZSB0d28gYXJlIGZvciBjaHVja2xlcywgbWFr ZXMgZ3JlYXQgZ3JhbW1hcgotIC5kcyBNZSB0b3AKLS0uZHMgTUUgXGZCdG9wXGZSCi0rLmRzIE5F IFxmQnRvcFxmUgotIFwjICAgICAgICAgICAgICAgICAgICAgICAgICAtIG90aGVyIG1pc2Mgc3Ry aW5ncyBmb3IgY29uc2lzdGVudCB1c2FnZS9lbXBoYXNpcwotIC5kcyBGIFxmSU9mZlxmUgotIC5k cyBPIFxmSU9uXGZSCi1AQCAtODUsNyArODUsNyBAQCB0b3AgXC0gZGlzcGxheSBMaW51eCB0YXNr cwotIC5cIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gLlNIIFNZTk9QU0lTCi0gLlwiIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LS1cKihNRSBcLVxmQmh2XGZSIHwgXC1cZkJiY0hpc1NcZlIgXC1cZkJkXGZJIGRlbGF5XGZSIFwt XGZCblxmSQotK1wqKE5FIFwtXGZCaHZcZlIgfCBcLVxmQmJjSGlzU1xmUiBcLVxmQmRcZkkgZGVs YXlcZlIgXC1cZkJuXGZJCi0gaXRlcmF0aW9uc1xmUiBcLVxmQnBcZkkgcGlkXGZSIFssXGZJIHBp ZFxmUiAuLi5dCi0gCi0gVGhlIHRyYWRpdGlvbmFsIHN3aXRjaGVzICctJyBhbmQgd2hpdGVzcGFj ZSBhcmUgb3B0aW9uYWwuCi1AQCAtOTQsNyArOTQsNyBAQCBUaGUgdHJhZGl0aW9uYWwgc3dpdGNo ZXMgJy0nIGFuZCB3aGl0ZXNwYWNlIGFyZSBvcHRpb25hbC4KLSAuXCIgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IC5TSCBERVNDUklQVElPTgotIC5cIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tVGhlIFwqKE1FIHByb2dyYW0g cHJvdmlkZXMgYSBkeW5hbWljIHJlYWwtdGltZSB2aWV3IG9mIGEgcnVubmluZyBzeXN0ZW0uCi0r VGhlIFwqKE5FIHByb2dyYW0gcHJvdmlkZXMgYSBkeW5hbWljIHJlYWwtdGltZSB2aWV3IG9mIGEg cnVubmluZyBzeXN0ZW0uCi0gSXQgY2FuIGRpc3BsYXlcZkIgc3lzdGVtXGZSIHN1bW1hcnkgaW5m b3JtYXRpb24gYXMgd2VsbCBhcyBhIGxpc3Qgb2ZcZkIKLSB0YXNrc1xmUiBjdXJyZW50bHkgYmVp bmcgbWFuYWdlZCBieSB0aGUgTGludXgga2VybmVsLgotIFRoZSB0eXBlcyBvZiBzeXN0ZW0gc3Vt bWFyeSBpbmZvcm1hdGlvbiBzaG93biBhbmQgdGhlIHR5cGVzLCBvcmRlciBhbmQKLUBAIC0xMDQs NyArMTA0LDcgQEAgdGhhdCBjb25maWd1cmF0aW9uIGNhbiBiZSBtYWRlIHBlcnNpc3RlbnQgYWNy b3NzIHJlc3RhcnRzLgotIFRoZSBwcm9ncmFtIHByb3ZpZGVzIGEgbGltaXRlZCBpbnRlcmFjdGl2 ZSBpbnRlcmZhY2UgZm9yIHByb2Nlc3MKLSBtYW5pcHVsYXRpb24gYXMgd2VsbCBhcyBhIG11Y2gg bW9yZSBleHRlbnNpdmUgaW50ZXJmYWNlIGZvciBwZXJzb25hbAotIGNvbmZpZ3VyYXRpb24gXCoo RU0gZW5jb21wYXNzaW5nIGV2ZXJ5IGFzcGVjdCBvZiBpdHMgb3BlcmF0aW9uLgotLUFuZCB3aGls ZSBcKihNRSBpcyByZWZlcnJlZCB0byB0aHJvdWdob3V0IHRoaXMgZG9jdW1lbnQsIHlvdSBhcmUg ZnJlZQotK0FuZCB3aGlsZSBcKihORSBpcyByZWZlcnJlZCB0byB0aHJvdWdob3V0IHRoaXMgZG9j dW1lbnQsIHlvdSBhcmUgZnJlZQotIHRvIG5hbWUgdGhlIHByb2dyYW0gYW55dGhpbmcgeW91IHdp c2guCi0gVGhhdCBuZXcgbmFtZSwgcG9zc2libHkgYW4gYWxpYXMsIHdpbGwgdGhlbiBiZSByZWZs ZWN0ZWQgb24gXCooTWUncyBkaXNwbGF5Ci0gYW5kIHVzZWQgd2hlbiByZWFkaW5nIGFuZCB3cml0 aW5nIGEgXCooQ0YuCi1AQCAtMTkwLDcgKzE5MCw3IEBAIGNvbW1hbmQtbGluZS4KLSAgICAgICAg J0knIC0gSXJpeCBtb2RlICAgICAgICBPblwgXCAobm8sICdzb2xhcmlzJyBzbXApCi0gICAgICAq ICdwJyAtIFBJRCBtb25pdG9yaW5nICAgT2ZmCi0gICAgICAqICdzJyAtIFNlY3VyZSBtb2RlICAg ICAgT2ZmICh1bnNlY3VyZWQpCi0tICAgICAgICdCJyAtIEJvbGQgZGlzYWJsZSAgICAgT2ZmCi0r ICAgICAgICdCJyAtIEJvbGQgZW5hYmxlICAgICAgT2ZmCi0gICAgIFxmSVN1bW1hcnlfQXJlYV9k ZWZhdWx0c1xmUgotICAgICAgICAnbCcgLSBMb2FkIEF2Zy9VcHRpbWUgIE9uXCBcICh0aHVzIHBy b2dyYW0gbmFtZSkKLSAgICAgICAgJ3QnIC0gVGFzay9DcHUgc3RhdGVzICBPblwgXCAoMSsxIGxp bmVzLCBzZWUgJzEnKQotQEAgLTQxMywxNiArNDEzLDE0IEBAIFRoZSBzd2FwcGVkIG91dCBwb3J0 aW9uIG9mIGEgdGFzaydzIHRvdGFsIFwqKE1WIGltYWdlLgotIHE6XGZCIFJFU1xmUiBcKihFTSBS ZXNpZGVudCBzaXplIChrYikKLSBUaGUgbm9uLXN3YXBwZWQgXCooTVAgYSB0YXNrIGhhcyB1c2Vk LgotIAotLVJFUyA9IENPREUgKyBEQVRBLgotLQotIC5UUCAzCi0gcjpcZkIgQ09ERVxmUiBcKihF TSBDb2RlIHNpemUgKGtiKQotLVRoZSBhbW91bnQgb2YgXCooTVAgZGV2b3RlZCB0byBleGVjdXRh YmxlIGNvZGUsIGFsc28ga25vd24gYXMKLStUaGUgYW1vdW50IG9mIFwqKE1WIGRldm90ZWQgdG8g ZXhlY3V0YWJsZSBjb2RlLCBhbHNvIGtub3duIGFzCi0gdGhlICd0ZXh0IHJlc2lkZW50IHNldCcg c2l6ZSBvciBUUlMuCi0gCi0gLlRQIDMKLSBzOlxmQiBEQVRBXGZSIFwqKEVNIERhdGErU3RhY2sg c2l6ZSAoa2IpCi0tVGhlIGFtb3VudCBvZiBcKihNUCBkZXZvdGVkIHRvIG90aGVyIHRoYW4gZXhl Y3V0YWJsZSBjb2RlLCBhbHNvIGtub3duIGFzCi0rVGhlIGFtb3VudCBvZiBcKihNViBkZXZvdGVk IHRvIG90aGVyIHRoYW4gZXhlY3V0YWJsZSBjb2RlLCBhbHNvIGtub3duIGFzCi0gdGhlICdkYXRh IHJlc2lkZW50IHNldCcgc2l6ZSBvciBEUlMuCi0gCi0gLlRQIDMKLUBAIC00MzYsOCArNDM0LDgg QEAgdTpcZkIgbkZMVFxmUiBcKihFTSBQYWdlIEZhdWx0IGNvdW50Ci0gVGhlIG51bWJlciBvZlxm QiBtYWpvclxmUiBwYWdlIGZhdWx0cyB0aGF0IGhhdmUgb2NjdXJyZWQgZm9yIGEgdGFzay4KLSBB IHBhZ2UgZmF1bHQgb2NjdXJzIHdoZW4gYSBwcm9jZXNzIGF0dGVtcHRzIHRvIHJlYWQgZnJvbSBv ciB3cml0ZSB0byBhIHZpcnR1YWwKLSBwYWdlIHRoYXQgaXMgbm90IGN1cnJlbnRseSBwcmVzZW50 IGluIGl0cyBhZGRyZXNzIHNwYWNlLgotLUEgbWFqb3IgcGFnZSBmYXVsdCBpcyB3aGVuIGRpc2sg YWNjZXNzIGlzIGludm9sdmVkIGluIG1ha2luZyB0aGF0Ci0tcGFnZSBhdmFpbGFibGUuCi0rQSBt YWpvciBwYWdlIGZhdWx0IGlzIHdoZW4gYmFja2luZyBzdG9yYWdlIGFjY2VzcyAoc3VjaCBhcyBh IGRpc2spIGlzIGludm9sdmVkCi0raW4gbWFraW5nIHRoYXQgcGFnZSBhdmFpbGFibGUuCi0gCi0g LlRQIDMKLSB2OlxmQiBuRFJUXGZSIFwqKEVNIERpcnR5IFBhZ2VzIGNvdW50Ci1AQCAtNTA0LDcg KzUwMiw3IEBAIGFuZCAnT3JkZXIgZmllbGRzJyBzY3JlZW5zLgotIC5cIiAuLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Ci0gLlNTIDJiLiBTRUxFQ1RJTkcgYW5kIE9SREVSSU5HIENvbHVtbnMKLSAuXCIgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotLUFmdGVyIHByZXNzaW5nIHRoZSBcKihDSXMgJ2YnIChGaWVsZHMgc2VsZWN0KSBvciBc J28nIChPcmRlciBmaWVsZHMpIHlvdSB3aWxsCi0rQWZ0ZXIgcHJlc3NpbmcgdGhlIFwqKENJcyAn ZicgKEZpZWxkcyBzZWxlY3QpIG9yICdvJyAoT3JkZXIgZmllbGRzKSB5b3Ugd2lsbAotIGJlIHNo b3duIGEgc2NyZWVuIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgXGZCZmllbGRzIHN0cmluZ1xmUiBm b2xsb3dlZCBieSBuYW1lcwotIGFuZCBkZXNjcmlwdGlvbnMgZm9yIGFsbCBmaWVsZHMuCi0gCi1A QCAtNTgwLDcgKzU3OCw3IEBAIFVzZSBlaXRoZXIgb2YgdGhlc2Uga2V5cyBpZiB5b3UgaGF2ZSBh IGxhcmdlIGRlbGF5IGludGVydmFsIGFuZCB3aXNoIHRvCi0gc2VlIGN1cnJlbnQgc3RhdHVzLAot IAotIC5UUCA3Ci0tXCBcIFwnXGZCP1xmUlwnIG9yIFwnXGZCaFxmUlwnIDpcZklIZWxwXGZSCi0r XCBcIFw8XGZCP1xmUlw+IG9yIFw8XGZCaFxmUlw+IDpcZklIZWxwXGZSCi0gVGhlcmUgYXJlIHR3 byBoZWxwIGxldmVscyBhdmFpbGFibGUuCi0gVGhlIGZpcnN0IHdpbGwgcHJvdmlkZSBhIHJlbWlu ZGVyIG9mIGFsbCB0aGUgYmFzaWMgXCooQ0lzLgotIElmIFwqKE1lIGlzXGZJIHNlY3VyZWRcZlIs IHRoYXQgc2NyZWVuIHdpbGwgYmUgYWJicmV2aWF0ZWQuCi1AQCAtNTg5LDcgKzU4Nyw3IEBAIFR5 cGluZyAnaCcgb3IgJz8nIG9uIHRoYXQgaGVscCBzY3JlZW4gd2lsbCB0YWtlIHlvdSB0byBoZWxw IGZvciB0aG9zZSBcKihDSXMKLSBhcHBsaWNhYmxlIHRvIFwqKEFNLgotIAotIC5UUCA3Ci0tXCBc IFwnXGZCPVxmUlwnIDpcZklFeGl0X1Rhc2tfTGltaXRzXGZSCi0rXCBcIFw8XGZCPVxmUlw+IDpc ZklFeGl0X1Rhc2tfTGltaXRzXGZSCi0gUmVtb3ZlcyByZXN0cmljdGlvbnMgb24gd2hpY2ggdGFz a3MgYXJlIHNob3duLgotIFRoaXMgY29tbWFuZCB3aWxsIHJldmVyc2UgYW55ICdpJyAoaWRsZSB0 YXNrcykgYW5kICduJyAobWF4IHRhc2tzKSBjb21tYW5kcwotIHRoYXQgbWlnaHQgYmUgYWN0aXZl LgotQEAgLTU5OSwxMyArNTk3LDEzIEBAIFNlZSB0aGUgJy1wJyBcKihDTyBmb3IgYSBkaXNjdXNz aW9uIG9mIFBJRCBtb25pdG9yaW5nLgotIFdoZW4gb3BlcmF0aW5nIGluIFwqKEFNIHRoaXMgY29t bWFuZCBoYXMgYSBzbGlnaHRseSBicm9hZGVyIG1lYW5pbmcuCi0gCi0gLlRQIDcKLS1cIFwgXCdc ZkJBXGZSXCcgOlxmSUFsdGVybmF0ZV9EaXNwbGF5X01vZGVfdG9nZ2xlXGZSCi0rXCBcIFw8XGZC QVxmUlw+IDpcZklBbHRlcm5hdGVfRGlzcGxheV9Nb2RlX3RvZ2dsZVxmUgotIFRoaXMgY29tbWFu ZCB3aWxsIHN3aXRjaCBiZXR3ZWVuIFwqKEZNIGFuZCBcKihBTS4KLS1cKihYVCA0LiBBTFRFUk5B VEVcLURJU1BMQVkgTW9kZSBhbmQgdGhlICdHJyBcKihDSSBmb3IgaW5zaWdodCBpbnRvCi0tXCoo Q1dzIGFuZCBmaWVsZCBncm91cHMuCi0rXCooWFQgNC4gQUxURVJOQVRFXC1ESVNQTEFZIE1vZGUg YW5kIHRoZSAnRycgXCooQ0kgZm9yIGluc2lnaHQKLStpbnRvIFwqKENXcyBhbmQgZmllbGQgZ3Jv dXBzLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCQlxmUlwnIDpcZklCb2xkX0Rpc2FibGUvRW5hYmxl X3RvZ2dsZVxmUgotK1wgXCBcPFxmQkJcZlJcPiA6XGZJQm9sZF9EaXNhYmxlL0VuYWJsZV90b2dn bGVcZlIKLSBUaGlzIGNvbW1hbmQgd2lsbCBpbmZsdWVuY2UgdXNlIG9mIHRoZSAnYm9sZCcgdGVy bWluZm8gY2FwYWJpbGl0eSBhbmQKLSBhbHRlcnNcZkIgYm90aFxmUiB0aGUgXCooU0EgYW5kIFwq KFRBIGZvciB0aGUgXCooQ1cuCi0gV2hpbGUgaXQgaXMgaW50ZW5kZWQgcHJpbWFyaWx5IGZvciB1 c2Ugd2l0aCBkdW1iIHRlcm1pbmFscywgaXQgY2FuIGJlCi1AQCAtNjE3LDcgKzYxNSw3IEBAIFRo dXMsIHVubGVzcyB0aGUgJ3gnIGFuZC9vciAneScgdG9nZ2xlcyBhcmUgdXNpbmcgcmV2ZXJzZSBm b3IgZW1waGFzaXMsCi0gdGhlcmUgd2lsbCBiZSBubyB2aXN1YWwgY29uZmlybWF0aW9uIHRoYXQg dGhleSBhcmUgZXZlbiBvbi4KLSAKLSAuVFAgNwotLSpcIFwnXGZCZFxmUlwnIG9yIFwnXGZCc1xm UlwnIDpcZklDaGFuZ2VfRGVsYXlfVGltZV9pbnRlcnZhbFxmUgotKypcIFw8XGZCZFxmUlw+IG9y IFw8XGZCc1xmUlw+IDpcZklDaGFuZ2VfRGVsYXlfVGltZV9pbnRlcnZhbFxmUgotIFlvdSB3aWxs IGJlIHByb21wdGVkIHRvIGVudGVyIHRoZSBkZWxheSB0aW1lLCBpbiBzZWNvbmRzLCBiZXR3ZWVu Ci0gZGlzcGxheSB1cGRhdGVzLgotIAotQEAgLTYzMSwzMiArNjI5LDMyIEBAIElmIGF0IGFueSB0 aW1lIHlvdSB3aXNoIHRvIGtub3cgdGhlIGN1cnJlbnQgZGVsYXkgdGltZSwgc2ltcGx5IGFzayBm b3IgaGVscAotIGFuZCB2aWV3IHRoZSBzeXN0ZW0gc3VtbWFyeSBvbiB0aGUgc2Vjb25kIGxpbmUu Ci0gCi0gLlRQIDcKLS1cIFwgXCdcZkJHXGZSXCcgOlxmSUNob29zZV9Bbm90aGVyX1dpbmRvdy9G aWVsZF9Hcm91cFxmUgotK1wgXCBcPFxmQkdcZlJcPiA6XGZJQ2hvb3NlX0Fub3RoZXJfV2luZG93 L0ZpZWxkX0dyb3VwXGZSCi0gWW91IHdpbGwgYmUgcHJvbXB0ZWQgdG8gZW50ZXIgYSBudW1iZXIg YmV0d2VlbiAxIGFuZCA0IGRlc2lnbmF0aW5nIHRoZQotIHdpbmRvdy9maWVsZCBncm91cCB3aGlj aCBzaG91bGQgYmUgbWFkZSB0aGUgXCooQ1cuCi0gWW91IHdpbGwgc29vbiBncm93IGNvbWZvcnRh YmxlIHdpdGggdGhlc2UgNCB3aW5kb3dzLCBlc3BlY2lhbGx5IGFmdGVyCi0gZXhwZXJpbWVudGlu ZyB3aXRoIFwqKEFNLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCSVxmUlwnIDpcZklJcml4L1NvbGFy aXNfTW9kZV90b2dnbGVcZlIKLStcIFwgXDxcZkJJXGZSXD4gOlxmSUlyaXgvU29sYXJpc19Nb2Rl X3RvZ2dsZVxmUgotIFdoZW4gb3BlcmF0aW5nIGluICdTb2xhcmlzIG1vZGUnICgnSScgdG9nZ2xl ZCBcKkYpLCBhIHRhc2sncyBcKihQdSB1c2FnZQotIHdpbGwgYmUgZGl2aWRlZCBieSB0aGUgdG90 YWwgbnVtYmVyIG9mIFwqKFBVcy4KLSBBZnRlciBpc3N1aW5nIHRoaXMgY29tbWFuZCwgeW91J2xs IGJlIGluZm9ybWVkIG9mIHRoZSBuZXcgc3RhdGUgb2YgdGhpcyB0b2dnbGUuCi0gCi0gLlRQIDcK LS1cIFwgXCdcZkJ1XGZSXCcgOlxmSXNlbGVjdCBhIHVzZXJcZlIKLStcIFwgXDxcZkJ1XGZSXD4g OlxmSXNlbGVjdCBhIHVzZXJcZlIKLSBZb3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBVSUQgb3Ig dXNlcm5hbWUuIE9ubHkgcHJvY2Vzc2VzCi0gYmVsb25naW5nIHRvIHRoZSBzZWxlY3RlZCB1c2Vy IHdpbGwgYmUgZGlzcGxheWVkLiBUaGlzIG9wdGlvbgotIG1hdGNoZXMgb24gdGhlIGVmZmVjdGl2 ZSBVSUQuCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJVXGZSXCcgOlxmSXNlbGVjdCBhIHVzZXJcZlIK LStcIFwgXDxcZkJVXGZSXD4gOlxmSXNlbGVjdCBhIHVzZXJcZlIKLSBZb3Ugd2lsbCBiZSBwcm9t cHRlZCBmb3IgYSBVSUQgb3IgdXNlcm5hbWUuIE9ubHkgcHJvY2Vzc2VzCi0gYmVsb25naW5nIHRv IHRoZSBzZWxlY3RlZCB1c2VyIHdpbGwgYmUgZGlzcGxheWVkLiBUaGlzIG9wdGlvbgotIG1hdGNo ZXMgb24gdGhlIHJlYWwsIGVmZmVjdGl2ZSwgc2F2ZWQsIGFuZCBmaWxlc3lzdGVtIFVJRC4KLSAK LSAuVFAgNwotLSpcIFwnXGZCa1xmUlwnIDpcZklLaWxsX2FfdGFza1xmUgotKypcIFw8XGZCa1xm Ulw+IDpcZklLaWxsX2FfdGFza1xmUgotIFlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIFBJRCBh bmQgdGhlbiB0aGUgc2lnbmFsIHRvIHNlbmQuCi0gVGhlIGRlZmF1bHQgc2lnbmFsLCBhcyByZWZs ZWN0ZWQgaW4gdGhlIHByb21wdCwgaXMgU0lHVEVSTS4KLSBIb3dldmVyLCB5b3UgY2FuIHNlbmQg YW55IHNpZ25hbCwgdmlhIG51bWJlciBvciBuYW1lLgotQEAgLTY2NywyNCArNjY1LDI0IEBAIGRl cGVuZGluZyBvbiB5b3VyIHByb2dyZXNzOgotICAgIDIpIGF0IHRoZSBzaWduYWwgcHJvbXB0LCB0 eXBlIDAKLSAKLSAuVFAgNwotLVwgXCBcJ1xmQnFcZlJcJyA6XGZJUXVpdFxmUgotK1wgXCBcPFxm QnFcZlJcPiA6XGZJUXVpdFxmUgotIAotIC5UUCA3Ci0tKlwgXCdcZkJyXGZSXCcgOlxmSVJlbmlj ZV9hX1Rhc2tcZlIKLSsqXCBcPFxmQnJcZlJcPiA6XGZJUmVuaWNlX2FfVGFza1xmUgotIFlvdSB3 aWxsIGJlIHByb21wdGVkIGZvciBhIFBJRCBhbmQgdGhlbiB0aGUgdmFsdWUgdG8gbmljZSBpdCB0 by4KLSBFbnRlcmluZyBhIHBvc2l0aXZlIHZhbHVlIHdpbGwgY2F1c2UgYSBwcm9jZXNzIHRvIGxv c2UgcHJpb3JpdHkuCi0gQ29udmVyc2VseSwgYSBuZWdhdGl2ZSB2YWx1ZSB3aWxsIGNhdXNlIGEg cHJvY2VzcyB0byBiZSB2aWV3ZWQgbW9yZQotIGZhdm9yYWJseSBieSB0aGUga2VybmVsLgotIAot IC5UUCA3Ci0tXCBcIFwnXGZCV1xmUlwnIDpcZklXcml0ZV90aGVfQ29uZmlndXJhdGlvbl9GaWxl XGZSCi0rXCBcIFw8XGZCV1xmUlw+IDpcZklXcml0ZV90aGVfQ29uZmlndXJhdGlvbl9GaWxlXGZS Ci0gVGhpcyB3aWxsIHNhdmUgYWxsIG9mIHlvdXIgb3B0aW9ucyBhbmQgdG9nZ2xlcyBwbHVzIHRo ZSBjdXJyZW50Ci0gZGlzcGxheSBtb2RlIGFuZCBkZWxheSB0aW1lLgotIEJ5IGlzc3VpbmcgdGhp cyBjb21tYW5kIGp1c3QgYmVmb3JlIHF1aXR0aW5nIFwqKE1lLCB5b3Ugd2lsbCBiZSBhYmxlIHJl c3RhcnQKLSBsYXRlciBpbiBleGFjdGx5IHRoYXQgc2FtZSBzdGF0ZS4KLSAKLSAuVFAgNwotLVwg XCBcJ1xmQlpcZlJcJyA6XGZJQ2hhbmdlX0NvbG9yX01hcHBpbmcKLStcIFwgXDxcZkJaXGZSXD4g OlxmSUNoYW5nZV9Db2xvcl9NYXBwaW5nCi0gVGhpcyBrZXkgd2lsbCB0YWtlIHlvdSB0byBhIHNl cGFyYXRlIHNjcmVlbiB3aGVyZSB5b3UgY2FuIGNoYW5nZSB0aGUKLSBjb2xvcnMgZm9yIHRoZSBc KihDVywgb3IgZm9yIGFsbCB3aW5kb3dzLgotIEZvciBkZXRhaWxzIHJlZ2FyZGluZyB0aGlzIFwq KENJIFwqKFh0IDNkLiBDT0xPUiBNYXBwaW5nLgotQEAgLTcwMCwyNSArNjk4LDI1IEBAIFRoZXkg YWZmZWN0IHRoZSBiZWdpbm5pbmcgbGluZXMgb2YgeW91ciBkaXNwbGF5IGFuZCB3aWxsIGRldGVy bWluZSB0aGUgcG9zaXRpb24KLSBvZiBtZXNzYWdlcyBhbmQgcHJvbXB0cy4KLSAKLSBUaGVzZSBj b21tYW5kcyBhbHdheXMgaW1wYWN0IGp1c3QgdGhlIFwqKENXL2ZpZWxkIGdyb3VwLgotLVwqKFhU IDQuIEFMVEVSTkFURVwtRElTUExBWSBNb2RlIGFuZCB0aGUgJ0cnIFwqKENJIGZvciBpbnNpZ2h0 IGludG8KLS1cKihDV3MgYW5kIGZpZWxkIGdyb3Vwcy4KLStcKihYVCA0LiBBTFRFUk5BVEVcLURJ U1BMQVkgTW9kZSBhbmQgdGhlICdHJyBcKihDSSBmb3IgaW5zaWdodAotK2ludG8gXCooQ1dzIGFu ZCBmaWVsZCBncm91cHMuCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJsXGZSXCcgOlxmSVRvZ2dsZV9M b2FkX0F2ZXJhZ2UvVXB0aW1lXGZSIFwqKEVNIE9uL09mZgotK1wgXCBcPFxmQmxcZlJcPiA6XGZJ VG9nZ2xlX0xvYWRfQXZlcmFnZS9VcHRpbWVcZlIgXCooRU0gT24vT2ZmCi0gVGhpcyBpcyBhbHNv IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIHByb2dyYW0gbmFtZSAocG9zc2libHkgYW4gYWxpYXMp IHdoZW4KLSBvcGVyYXRpbmcgaW4gXCooRk0gb3IgdGhlIFwqKENXIG5hbWUgd2hlbiBvcGVyYXRp bmcgaW4gXCooQU0uCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJtXGZSXCcgOlxmSVRvZ2dsZV9NZW1v cnkvU3dhcF9Vc2FnZVxmUiBcKihFTSBPbi9PZmYKLStcIFwgXDxcZkJtXGZSXD4gOlxmSVRvZ2ds ZV9NZW1vcnkvU3dhcF9Vc2FnZVxmUiBcKihFTSBPbi9PZmYKLSBUaGlzIGNvbW1hbmQgYWZmZWN0 cyB0d28gXCooU0EgbGluZXMuCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJ0XGZSXCcgOlxmSVRvZ2ds ZV9UYXNrL0NwdV9TdGF0ZXNcZlIgXCooRU0gT24vT2ZmCi0rXCBcIFw8XGZCdFxmUlw+IDpcZklU b2dnbGVfVGFzay9DcHVfU3RhdGVzXGZSIFwqKEVNIE9uL09mZgotIFRoaXMgY29tbWFuZCBhZmZl Y3RzIGZyb20gMiB0byBtYW55IFwqKFNBIGxpbmVzLCBkZXBlbmRpbmcgb24gdGhlIHN0YXRlCi0g b2YgdGhlICcxJyB0b2dnbGUgYW5kIHdoZXRoZXIgb3Igbm90IFwqKE1lIGlzIHJ1bm5pbmcgdW5k ZXIgdHJ1ZSBTTVAuCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkIxXGZSXCcgOlxmSVRvZ2dsZV9TaW5n bGUvU2VwYXJhdGVfQ3B1X1N0YXRlc1xmUiBcKihFTSBPbi9PZmYKLStcIFwgXDxcZkIxXGZSXD4g OlxmSVRvZ2dsZV9TaW5nbGUvU2VwYXJhdGVfQ3B1X1N0YXRlc1xmUiBcKihFTSBPbi9PZmYKLSBU aGlzIGNvbW1hbmQgYWZmZWN0cyBob3cgdGhlICd0JyBjb21tYW5kJ3MgQ3B1IFN0YXRlcyBwb3J0 aW9uIGlzIHNob3duLgotIEFsdGhvdWdoIHRoaXMgdG9nZ2xlIGV4aXN0cyBwcmltYXJpbHkgdG8g c2VydmUgbWFzc2l2ZWx5LXBhcmFsbGVsIFNNUCBtYWNoaW5lcywKLSBpdCBpcyBub3QgcmVzdHJp Y3RlZCB0byBzb2xlbHkgU01QIGVudmlyb25tZW50cy4KLUBAIC03NTAsMTIgKzc0OCwxMiBAQCBn bG9iYWwgJ0InIChib2xkIGRpc2FibGUpIHRvZ2dsZS4KLSAuaW4KLSAKLSAuVFAgNwotLVwgXCBc J1xmQmJcZlJcJyA6XGZJQm9sZC9SZXZlcnNlX3RvZ2dsZVxmUgotK1wgXCBcPFxmQmJcZlJcPiA6 XGZJQm9sZC9SZXZlcnNlX3RvZ2dsZVxmUgotIFRoaXMgY29tbWFuZCB3aWxsIGltcGFjdCBob3cg dGhlICd4JyBhbmQgJ3knIHRvZ2dsZXMgYXJlIGRpc3BsYXllZC4KLSBGdXJ0aGVyLCBpdCB3aWxs IG9ubHkgYmUgYXZhaWxhYmxlIHdoZW4gYXQgbGVhc3Qgb25lIG9mIHRob3NlIHRvZ2dsZXMgaXMg XCpPLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCeFxmUlwnIDpcZklDb2x1bW5fSGlnaGxpZ2h0X3Rv Z2dsZVxmUgotK1wgXCBcPFxmQnhcZlJcPiA6XGZJQ29sdW1uX0hpZ2hsaWdodF90b2dnbGVcZlIK LSBDaGFuZ2VzIGhpZ2hsaWdodGluZyBmb3IgdGhlIGN1cnJlbnQgc29ydCBmaWVsZC4KLSBZb3Ug cHJvYmFibHkgZG9uJ3QgbmVlZCBhIGNvbnN0YW50IHZpc3VhbCByZW1pbmRlciBvZiB0aGUgc29y dCBmaWVsZCBhbmQKLSBcKihNZSBob3BlcyB0aGF0IHlvdSBhbHdheXMgcnVuIHdpdGggJ2NvbHVt biBoaWdobGlnaHQnIFwqRiwgZHVlIHRvIHRoZSBjb3N0Ci1AQCAtNzY1LDcgKzc2Myw3IEBAIElm IHlvdSBmb3JnZXQgd2hpY2ggZmllbGQgaXMgYmVpbmcgc29ydGVkIHRoaXMgY29tbWFuZCBjYW4g c2VydmUgYXMgYSBxdWljawotIHZpc3VhbCByZW1pbmRlci4KLSAKLSAuVFAgNwotLVwgXCBcJ1xm QnlcZlJcJyA6XGZJUm93X0hpZ2hsaWdodF90b2dnbGVcZlIKLStcIFwgXDxcZkJ5XGZSXD4gOlxm SVJvd19IaWdobGlnaHRfdG9nZ2xlXGZSCi0gQ2hhbmdlcyBoaWdobGlnaHRpbmcgZm9yICJydW5u aW5nIiB0YXNrcy4KLSBGb3IgYWRkaXRpb25hbCBpbnNpZ2h0IGludG8gdGhpcyB0YXNrIHN0YXRl LCBcKihYdCAyYS4gREVTQ1JJUFRJT05TIG9mIEZpZWxkcywKLSBQcm9jZXNzIFN0YXR1cy4KLUBA IC03NzQsNyArNzcyLDcgQEAgVXNlIG9mIHRoaXMgcHJvdmlzaW9uIHByb3ZpZGVzIGltcG9ydGFu dCBpbnNpZ2h0IGludG8geW91ciBzeXN0ZW0ncyBoZWFsdGguCi0gVGhlIG9ubHkgY29zdHMgd2ls bCBiZSBhIGZldyBhZGRpdGlvbmFsIHR0eSBlc2NhcGUgc2VxdWVuY2VzLgotIAotIC5UUCA3Ci0t XCBcIFwnXGZCelxmUlwnIDpcZklDb2xvci9Nb25vY2hyb21lX3RvZ2dsZVxmUgotK1wgXCBcPFxm QnpcZlJcPiA6XGZJQ29sb3IvTW9ub2Nocm9tZV90b2dnbGVcZlIKLSBTd2l0Y2hlcyB0aGUgXCoo Q1cgYmV0d2VlbiB5b3VyIGxhc3QgdXNlZCBjb2xvciBzY2hlbWUgYW5kIHRoZSBvbGRlciBmb3Jt Ci0gb2YgYmxhY2stb24td2hpdGUgb3Igd2hpdGUtb24tYmxhY2suCi0gVGhpcyBjb21tYW5kIHdp bGwgYWx0ZXJcZkIgYm90aFxmUiB0aGUgXCooU0EgYW5kIFwqKFRBIGJ1dCBkb2VzIG5vdCBhZmZl Y3QgdGhlCi1AQCAtNzg1LDIwICs3ODMsMjAgQEAgc3RhdGUgb2YgdGhlICd4JywgJ3knIG9yICdi JyB0b2dnbGVzLgotIC5CIENPTlRFTlRcZlIgb2YgXCooVFcKLSAuUEQgMAotIC5UUCA3Ci0tXCBc IFwnXGZCY1xmUlwnIDpcZklDb21tYW5kX0xpbmUvUHJvZ3JhbV9OYW1lX3RvZ2dsZVxmUgotK1wg XCBcPFxmQmNcZlJcPiA6XGZJQ29tbWFuZF9MaW5lL1Byb2dyYW1fTmFtZV90b2dnbGVcZlIKLSBU aGlzIGNvbW1hbmQgd2lsbCBiZSBob25vcmVkIHdoZXRoZXIgb3Igbm90IHRoZSAnQ29tbWFuZCcg Y29sdW1uCi0gaXMgY3VycmVudGx5IHZpc2libGUuCi0gTGF0ZXIsIHNob3VsZCB0aGF0IGZpZWxk IGNvbWUgaW50byB2aWV3LCB0aGUgY2hhbmdlIHlvdSBhcHBsaWVkIHdpbGwgYmUgc2Vlbi4KLSAK LSAuVFAgNwotLVwgXCBcJ1xmQmZcZlJcJyBhbmQgXCdcZkJvXGZSXCcgOlxmSUZpZWxkc19zZWxl Y3RcZlIgb3IgXGZJT3JkZXJfZmllbGRzXGZSCi0rXCBcIFw8XGZCZlxmUlw+IGFuZCBcPFxmQm9c ZlJcPiA6XGZJRmllbGRzX3NlbGVjdFxmUiBvciBcZklPcmRlcl9maWVsZHNcZlIKLSBUaGVzZSBr ZXlzIGRpc3BsYXkgc2VwYXJhdGUgc2NyZWVucyB3aGVyZSB5b3UgY2FuIGNoYW5nZSB3aGljaAot IGZpZWxkcyBhcmUgZGlzcGxheWVkIGFuZCB0aGVpciBvcmRlci4KLSBGb3IgYWRkaXRpb25hbCBp bmZvcm1hdGlvbiBvbiB0aGVzZSBcKihDSXMKLSBcKihYdCAyYi4gU0VMRUNUSU5HIGFuZCBPUkRF UklORyBDb2x1bW5zLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCSFxmUlwnIDpcZklUaHJlYWRzX3Rv Z2dsZVxmUgotK1wgXCBcPFxmQlNcZlJcPiA6XGZJQ3VtdWxhdGl2ZV9UaW1lX01vZGVfdG9nZ2xl XGZSCi0gV2hlbiB0aGlzIHRvZ2dsZSBpcyBcKk8sIGFsbCBpbmRpdmlkdWFsIHRocmVhZHMgd2ls bCBiZSBkaXNwbGF5ZWQuICBPdGhlcndpc2UsIFwqKE1lIGRpc3BsYXlzIGEgc3VtbWF0aW9uIG9m IGFsbCB0aHJlYWRzIGluIGEgcHJvY2Vzcy4KLSAKLSAuVFAgNwotQEAgLTgxOCw3ICs4MTYsNyBA QCBJZiB5b3Ugd2lzaCB0byBrbm93IGluIGFkdmFuY2Ugd2hldGhlciBvciBub3QgJ0N1bXVsYXRp dmUgbW9kZScgaXMgaW4KLSBlZmZlY3QsIHNpbXBseSBhc2sgZm9yIGhlbHAgYW5kIHZpZXcgdGhl IHdpbmRvdyBzdW1tYXJ5IG9uIHRoZSBzZWNvbmQgbGluZS4KLSAKLSAuVFAgNwotLVwgXCBcJ1xm QnVcZlJcJyA6XGZJU2hvd19TcGVjaWZpY19Vc2VyX09ubHlcZlIKLStcIFwgXDxcZkJ1XGZSXD4g OlxmSVNob3dfU3BlY2lmaWNfVXNlcl9Pbmx5XGZSCi0gWW91IHdpbGwgYmUgcHJvbXB0ZWQgdG8g ZW50ZXIgdGhlIG5hbWUgb2YgdGhlIHVzZXIgdG8gZGlzcGxheS4KLSBUaGVyZWFmdGVyLCBpbiB0 aGF0IFwqKFRXIG9ubHkgbWF0Y2hpbmcgVXNlciBJRCdzIHdpbGwgYmUgc2hvd24sIG9yIHBvc3Np Ymx5Ci0gbm8gdGFza3Mgd2lsbCBiZSBzaG93bi4KLUBAIC04MzEsNyArODI5LDcgQEAganVzdCBw cmVzcyA8RW50ZXI+IGF0IHRoZSBwcm9tcHQsIHdpdGhvdXQgcHJvdmlkaW5nIGEgbmFtZS4KLSAu QiBTSVpFXGZSIG9mIFwqKFRXCi0gLlBEIDAKLSAuVFAgNwotLVwgXCBcJ1xmQmlcZlJcJyA6XGZJ SWRsZV9Qcm9jZXNzZXNfdG9nZ2xlXGZSCi0rXCBcIFw8XGZCaVxmUlw+IDpcZklJZGxlX1Byb2Nl c3Nlc190b2dnbGVcZlIKLSBEaXNwbGF5cyBhbGwgdGFza3Mgb3IganVzdCBhY3RpdmUgdGFza3Mu Ci0gV2hlbiB0aGlzIHRvZ2dsZSBpcyBcKkYsIGlkbGVkIG9yIHpvbWJpZWQgcHJvY2Vzc2VzIHdp bGwgbm90IGJlIGRpc3BsYXllZC4KLSAKLUBAIC04MzksNyArODM3LDcgQEAgSWYgdGhpcyBjb21t YW5kIGlzIGFwcGxpZWQgdG8gdGhlIGxhc3QgXCooVEQgd2hlbiBpbiBcKihBTSwgdGhlbiBpdCB3 aWxsIG5vdAotIGFmZmVjdCB0aGUgd2luZG93J3Mgc2l6ZSwgYXMgYWxsIHByaW9yIFwqKFREcyB3 aWxsIGhhdmUgYWxyZWFkeSBiZWVuIHBhaW50ZWQuCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkJuXGZS XCcgb3IgXCcjXCcgOlxmSVNldF9NYXhpbXVtX1Rhc2tzXGZSCi0rXCBcIFw8XGZCblxmUlw+IG9y IFw8XGZCI1xmUlw+IDpcZklTZXRfTWF4aW11bV9UYXNrc1xmUgotIFlvdSB3aWxsIGJlIHByb21w dGVkIHRvIGVudGVyIHRoZSBudW1iZXIgb2YgdGFza3MgdG8gZGlzcGxheS4KLSBUaGUgbGVzc29y IG9mIHlvdXIgbnVtYmVyIGFuZCBhdmFpbGFibGUgc2NyZWVuIHJvd3Mgd2lsbCBiZSB1c2VkLgot IAotQEAgLTg3OCwxMiArODc2LDEyIEBAIFRoZSBzb3J0IGZpZWxkIG1pZ2h0XGZJIG5vdFxmUiBi ZSB2aXNpYmxlIGJlY2F1c2U6Ci0gLmluCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkI8XGZSXCcgOlxm SU1vdmVfU29ydF9GaWVsZF9MZWZ0XGZSCi0rXCBcIFw8XGZCPFxmUlw+IDpcZklNb3ZlX1NvcnRf RmllbGRfTGVmdFxmUgotIE1vdmVzIHRoZSBzb3J0IGNvbHVtbiB0byB0aGUgbGVmdCB1bmxlc3Mg dGhlIGN1cnJlbnQgc29ydCBmaWVsZCBpcwotIHRoZSBmaXJzdCBmaWVsZCBiZWluZyBkaXNwbGF5 ZWQuCi0gCi0gLlRQIDcKLS1cIFwgXCdcZkI+XGZSXCcgOlxmSU1vdmVfU29ydF9GaWVsZF9SaWdo dFxmUgotK1wgXCBcPFxmQj5cZlJcPiA6XGZJTW92ZV9Tb3J0X0ZpZWxkX1JpZ2h0XGZSCi0gTW92 ZXMgdGhlIHNvcnQgY29sdW1uIHRvIHRoZSByaWdodCB1bmxlc3MgdGhlIGN1cnJlbnQgc29ydCBm aWVsZCBpcwotIHRoZSBsYXN0IGZpZWxkIGJlaW5nIGRpc3BsYXllZC4KLSAKLUBAIC04OTQsNyAr ODkyLDcgQEAgdGhlIGN1cnJlbnQgc29ydCBmaWVsZCBpcyB2aXNpYmxlLgotIC5pbgotIAotIC5U UCA3Ci0tXCBcIFwnXGZCRlxmUlwnIG9yIFwnXGZCT1xmUlwnIDpcZklTZWxlY3RfU29ydF9GaWVs ZFxmUgotK1wgXCBcPFxmQkZcZlJcPiBvciBcPFxmQk9cZlJcPiA6XGZJU2VsZWN0X1NvcnRfRmll bGRcZlIKLSBUaGVzZSBrZXlzIGRpc3BsYXkgYSBzZXBhcmF0ZSBzY3JlZW4gd2hlcmUgeW91IGNh biBjaGFuZ2Ugd2hpY2ggZmllbGQKLSBpcyB1c2VkIGFzIHRoZSBzb3J0IGNvbHVtbi4KLSAKLUBA IC05MDcsNyArOTA1LDcgQEAgVGhpcyBcKihDSSBjYW4gYmUgYSBjb252ZW5pZW50IHdheSB0byBz aW1wbHkgdmVyaWZ5IHRoZSBjdXJyZW50IHNvcnQgZmllbGQsCi0gd2hlbiBydW5uaW5nIFwqKE1l IHdpdGggY29sdW1uIGhpZ2hsaWdodGluZyB0dXJuZWQgXCpGLgotIAotIC5UUCA3Ci0tXCBcIFwn XGZCUlxmUlwnIDpcZklSZXZlcnNlL05vcm1hbF9Tb3J0X0ZpZWxkX3RvZ2dsZVxmUgotK1wgXCBc PFxmQlJcZlJcPiA6XGZJUmV2ZXJzZS9Ob3JtYWxfU29ydF9GaWVsZF90b2dnbGVcZlIKLSBVc2lu ZyB0aGlzIFwqKENJIHlvdSBjYW4gYWx0ZXJuYXRlIGJldHdlZW4gaGlnaC10by1sb3cgYW5kIGxv dy10by1oaWdoIHNvcnRzLgotIAotIC5QUAotQEAgLTk4NCw3ICs5ODIsNyBAQCBrbm93IHdoYXQg d2luZG93IGlzIHRoZSBcKihDVy4KLSAuXCIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgotIC5TUyA0Yi4gQ09NTUFO RFMgZm9yIFdpbmRvd3MKLSAuVFAgNwotLVwgXCBcJ1xmQi1cZlJcJyBhbmQgXCdcZkJfXGZSXCcg OlxmSVNob3cvSGlkZV9XaW5kb3cocylfdG9nZ2xlc1xmUgotK1wgXCBcPFxmQi1cZlJcPiBhbmQg XDxcZkJfXGZSXD4gOlxmSVNob3cvSGlkZV9XaW5kb3cocylfdG9nZ2xlc1xmUgotIFRoZSAnLScg a2V5IHR1cm5zIHRoZSBcKihDVydzIFwqKFREIFwqTyBhbmQgXCpGLgotIFdoZW4gXCpPLCB0aGF0 IFwqKFRBIHdpbGwgc2hvdyBhIG1pbmltdW0gb2YgdGhlIGNvbHVtbnMgaGVhZGVyIHlvdSd2ZQot IGVzdGFibGlzaGVkIHdpdGggdGhlICdmJyBhbmQgJ28nIGNvbW1hbmRzLgotQEAgLTk5OCw3ICs5 OTYsNyBAQCBJZiBhbGwgNCBcKihURHMgYXJlIGN1cnJlbnRseSB2aXNpYmxlLCB0aGlzIFwqKENJ IHdpbGwgbGVhdmUgdGhlIFwqKFNBCi0gYXMgdGhlIG9ubHkgZGlzcGxheSBlbGVtZW50LgotIAot IC5UUCA3Ci0tKlwgXCdcZkI9XGZSXCcgYW5kIFwnXGZCK1xmUlwnIDpcZklFcXVhbGl6ZV8ocmUt YmFsYW5jZSlfV2luZG93KHMpXGZSCi0rKlwgXDxcZkI9XGZSXD4gYW5kIFw8XGZCK1xmUlw+IDpc ZklFcXVhbGl6ZV8ocmUtYmFsYW5jZSlfV2luZG93KHMpXGZSCi0gVGhlICc9JyBrZXkgZm9yY2Vz IHRoZSBcKihDVydzIFwqKFREIHRvIGJlIHZpc2libGUuCi0gSXQgYWxzbyByZXZlcnNlcyBhbnkg J2knIChpZGxlIHRhc2tzKSBhbmQgJ24nIChtYXggdGFza3MpIGNvbW1hbmRzIHRoYXQgbWlnaHQK LSBiZSBhY3RpdmUuCi1AQCAtMTAwOSw3ICsxMDA3LDcgQEAgVGhleSB3aWxsIGFsc28gaGF2ZSBy ZXRhaW5lZCBhbnkgY3VzdG9taXphdGlvbnMgeW91IGhhZCBwcmV2aW91c2x5IGFwcGxpZWQsCi0g ZXhjZXB0IGZvciB0aGUgJ2knIChpZGxlIHRhc2tzKSBhbmQgJ24nIChtYXggdGFza3MpIGNvbW1h bmRzLgotIAotIC5UUCA3Ci0tKlwgXCdcZkJBXGZSXCcgOlxmSUFsdGVybmF0ZV9EaXNwbGF5X01v ZGVfdG9nZ2xlXGZSCi0rKlwgXDxcZkJBXGZSXD4gOlxmSUFsdGVybmF0ZV9EaXNwbGF5X01vZGVf dG9nZ2xlXGZSCi0gVGhpcyBjb21tYW5kIHdpbGwgc3dpdGNoIGJldHdlZW4gXCooRk0gYW5kIFwq KEFNLgotIAotIFRoZSBmaXJzdCB0aW1lIHlvdSBpc3N1ZSB0aGlzIGNvbW1hbmQsIGFsbCBmb3Vy IFwqKFREcyB3aWxsIGJlIHNob3duLgotQEAgLTEwMTcsNyArMTAxNSw3IEBAIFRoZXJlYWZ0ZXIg d2hlbiB5b3Ugc3dpdGNoIG1vZGVzLCB5b3Ugd2lsbCBzZWUgb25seSB0aGUgXCooVEQocykgeW91 J3ZlCi0gY2hvc2VuIHRvIG1ha2UgdmlzaWJsZS4KLSAKLSAuVFAgNwotLSpcIFwnXGZCYVxmUlwn IGFuZCBcJ1xmQndcZlJcJyA6XGZJTmV4dF9XaW5kb3dfRm9yd2FyZC9CYWNrd2FyZFxmUgotKypc IFw8XGZCYVxmUlw+IGFuZCBcPFxmQndcZlJcPiA6XGZJTmV4dF9XaW5kb3dfRm9yd2FyZC9CYWNr d2FyZFxmUgotIFRoaXMgd2lsbCBjaGFuZ2UgdGhlIFwqKENXLCB3aGljaCBpbiB0dXJuIGNoYW5n ZXMgdGhlIHdpbmRvdyB0byB3aGljaAotIGNvbW1hbmRzIGFyZSBkaXJlY3RlZC4KLSBUaGVzZSBr ZXlzIGFjdCBpbiBhIGNpcmN1bGFyIGZhc2hpb24gc28geW91IGNhbiByZWFjaCBhbnkgZGVzaXJl ZCBcKihDVwotQEAgLTEwMjgsNyArMTAyNiw3IEBAIHdoZW5ldmVyIHRoZSBcKihDVyBuYW1lIGxv c2VzIGl0cyBlbXBoYXNpcy9jb2xvciwgdGhhdCdzIGEgcmVtaW5kZXIKLSB0aGUgXCooVEQgaXMg XCpGIGFuZCBtYW55IGNvbW1hbmRzIHdpbGwgYmUgcmVzdHJpY3RlZC4KLSAKLSAuVFAgNwotLSpc IFwnXGZCR1xmUlwnIDpcZklDaG9vc2VfQW5vdGhlcl9XaW5kb3cvRmllbGRfR3JvdXBcZlIKLSsq XCBcPFxmQkdcZlJcPiA6XGZJQ2hvb3NlX0Fub3RoZXJfV2luZG93L0ZpZWxkX0dyb3VwXGZSCi0g WW91IHdpbGwgYmUgcHJvbXB0ZWQgdG8gZW50ZXIgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCA0IGRl c2lnbmF0aW5nIHRoZQotIHdpbmRvdy9maWVsZCBncm91cCB3aGljaCBzaG91bGQgYmUgbWFkZSB0 aGUgXCooQ1cuCi0gCi1AQCAtMTAzNywxNSArMTAzNSwxNSBAQCBJbiBcKihBTSwgaXQgaXMgc2lt cGx5IGEgbGVzcyBjb252ZW5pZW50IGFsdGVybmF0aXZlIHRvIHRoZSAnYScgYW5kICd3JwotIGNv bW1hbmRzLgotIAotIC5UUCA3Ci0tXCBcIFwnXGZCZ1xmUlwnIDpcZklDaGFuZ2VfV2luZG93L0Zp ZWxkX0dyb3VwX05hbWVcZlIKLStcIFwgXDxcZkJnXGZSXD4gOlxmSUNoYW5nZV9XaW5kb3cvRmll bGRfR3JvdXBfTmFtZVxmUgotIFlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIG5ldyBuYW1lIHRv IGJlIGFwcGxpZWQgdG8gdGhlIFwqKENXLgotIEl0IGRvZXMgbm90IHJlcXVpcmUgdGhhdCB0aGUg d2luZG93IG5hbWUgYmUgdmlzaWJsZQotICh0aGUgJ2wnIHRvZ2dsZSB0byBiZSBcKk8pLgotIAot IC5JUCAiKiIgMwotIFRoZSBcKihDSXMgc2hvd24gd2l0aCBhbiBcKihBUyBoYXZlIHVzZSBiZXlv bmQgXCooQU0uCi0tICAgIFwnPScsICdBJywgJ0cnICBhcmUgYWx3YXlzIGF2YWlsYWJsZQotLSAg ICBcJ2EnLCAndycgICAgICAgYWN0IHRoZSBzYW1lIHdoZW4gY29sb3IgbWFwcGluZwotKyAgICAn PScsICdBJywgJ0cnICBhcmUgYWx3YXlzIGF2YWlsYWJsZQotKyAgICAnYScsICd3JyAgICAgICBh Y3QgdGhlIHNhbWUgd2hlbiBjb2xvciBtYXBwaW5nCi0gCi0gCi0gLlwiIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNS10b3Bf Y19yZXNpemUucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI1LXRvcF9jX3Jlc2l6ZS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhhNThkZi4uMDAwMDAwMAotLS0g YS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI1LXRvcF9jX3Jlc2l6ZS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDg2ICswLDAgQEAKLUZyb20gNmEyZmNlMWEyYjA1MmYwMzNmOGY4YzM2Yzc2YWE0 NTMwYjI4ODdiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUu ZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlh bi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6 NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAyNS83MF0gdG9wX2NfcmVzaXplCi0KLWEgZmV3IChy ZWFkOiAzIG9yIGxlc3MpIGxpbmVzLgotLS0tCi0gdG9wLmMgfCAgICA5ICsrKysrKy0tLQotIHRv cC5oIHwgICAxMyArKysrKysrKysrKy0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdG9wLmMgYi90b3AuYwotaW5kZXgg NTNjYWIwNS4uNmNjMWE5MyAxMDA2NDQKLS0tLSBhL3RvcC5jCi0rKysgYi90b3AuYwotQEAgLTE0 MCw3ICsxNDAsNyBAQCBzdGF0aWMgaW50ICAgQ2FwX2Nhbl9nb3RvID0gMDsKLSAgICAgICAgICAg IGFyZSBleHBsb2l0ZWQgaW4gYSBtYWNybyBhbmQgcmVwcmVzZW50IDkwJSBvZiBvdXIgb3B0aW1p emF0aW9uLgotICAgICAgICAgICAgVGhlIFN0ZG91dF9idWYgaXMgdHJhbnNwYXJlbnQgdG8gb3Vy IGNvZGUgYW5kIHJlZ2FyZGxlc3Mgb2Ygd2hvc2UKLSAgICAgICAgICAgIGJ1ZmZlciBpcyB1c2Vk LCBzdGRvdXQgaXMgZmx1c2hlZCBhdCBmcmFtZSBlbmQgb3IgaWYgaW50ZXJhY3RpdmUuICovCi0t c3RhdGljIGNoYXIgKlBzZXVkb19zY3JuOwotK3N0YXRpYyBQU0VVRE9fU0NSRUVOX3QgUHNldWRv X3Njcm47Ci0gc3RhdGljIGludCAgIFBzZXVkb19yb3csIFBzZXVkb19jb2xzLCBQc2V1ZG9fc2l6 ZTsKLSAjaWZuZGVmIFNURE9VVF9JT0xCRgotICAgICAgICAgLy8gbGVzcyB0aGFuIHN0ZG91dCdz IG5vcm1hbCBidWZmZXIgYnV0IHdpdGggbHVjayBtb3N0bHkgJ1xuJyBhbnl3YXkKLUBAIC0yNDMx LDcgKzI0MzEsMTAgQEAgc3RhdGljIHZvaWQgd2luc19yZXNpemUgKHZvaWQpCi0gICAgUHNldWRv X2NvbHMgPSBTY3JlZW5fY29scyArIENMUkJVRlNJWiArIDE7Ci0gICAgaWYgKEJhdGNoKSBQc2V1 ZG9fc2l6ZSA9IFJPV0JVRlNJWiArIDE7Ci0gICAgZWxzZSAgICAgICBQc2V1ZG9fc2l6ZSA9IFBz ZXVkb19jb2xzICogU2NyZWVuX3Jvd3M7Ci0tICAgUHNldWRvX3Njcm4gPSBhbGxvY19yKFBzZXVk b19zY3JuLCBQc2V1ZG9fc2l6ZSk7Ci0rICAgaWYoIFBzZXVkb19zY3JuLmJ1ZiA9PSBOVUxMIHx8 IFBzZXVkb19zaXplID4gUHNldWRvX3Njcm4ubWVtX3NpemUgKSB7Ci0rICAgICAgUHNldWRvX3Nj cm4uYnVmID0gYWxsb2NfcihQc2V1ZG9fc2Nybi5idWYsIFBzZXVkb19zaXplKTsKLSsgICAgICBQ c2V1ZG9fc2Nybi5tZW1fc2l6ZSA9IFBzZXVkb19zaXplOwotKyAgIH0KLSAKLSAgICAvLyBmb3Jj ZSByZWJ1aWxkIG9mIGNvbHVtbiBoZWFkZXJzIEFORCBsaWJwcm9jL3JlYWRwcm9jIHJlcXVpcmVt ZW50cwotICAgIEZyYW1lc19saWJmbGFncyA9IDA7Ci1AQCAtMzMxNSw3ICszMzE4LDcgQEAgc3Rh dGljIHZvaWQgZnJhbWVfbWFrZSAodm9pZCkKLSAgICAvLyAgICAgICByZWZyYW1ld2lucygpLCB3 aG8gYWxzbyBidWlsZHMgZWFjaCB3aW5kb3cncyBjb2x1bW4gaGVhZGVycwotICAgIGlmICghRnJh bWVzX2xpYmZsYWdzKSB7Ci0gICAgICAgcmVmcmFtZXdpbnMoKTsKLS0gICAgICBtZW1zZXQoUHNl dWRvX3Njcm4sICdcMCcsIFBzZXVkb19zaXplKTsKLSsgICAgICBtZW1zZXQoUHNldWRvX3Njcm4u YnVmLCAnXDAnLCBQc2V1ZG9fc2l6ZSk7Ci0gICAgfQotICAgIFBzZXVkb19yb3cgPSBNc2dfcm93 ID0gc2NybGlucyA9IDA7Ci0gICAgcHB0ID0gc3VtbWFyeV9zaG93KCk7Ci1kaWZmIC0tZ2l0IGEv dG9wLmggYi90b3AuaAotaW5kZXggYjRhYzA3OS4uOGNmODUzOCAxMDA2NDQKLS0tLSBhL3RvcC5o Ci0rKysgYi90b3AuaAotQEAgLTEzNSw3ICsxMzUsNyBAQCBkbyB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaW50IF9sZW4gPSAxICsg c25wcmludGYoX3N0ciwgc2l6ZW9mKF9zdHIpLCBmbXQsICMjIGFyZyk7ICAgXAotICAgIHB1dHAg KCBCYXRjaCA/IF9zdHIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg ICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0g ICAgICBjaGFyICpyZXN0cmljdCBjb25zdCBfcHNlID0gJlBzZXVkb19zY3JuW1BzZXVkb19yb3cr KyAqIFBzZXVkb19jb2xzXTsgIFwKLSsgICAgICBjaGFyICpyZXN0cmljdCBjb25zdCBfcHNlID0g JlBzZXVkb19zY3JuLmJ1ZltQc2V1ZG9fcm93KysgKiBQc2V1ZG9fY29sc107ICBcCi0gICAgICAg bWVtY21wKF9wc2UsIF9zdHIsIF9sZW4pID8gbWVtY3B5KF9wc2UsIF9zdHIsIF9sZW4pIDogIlxu IjsgIFwKLSAgICB9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICk7ICAg ICAgICAgICAgICAgICAgIFwKLUBAIC0xNDksNyArMTQ5LDExIEBAIGRvIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpbnQgX2xlbiA9 IDEgKyBzbnByaW50Zihfc3RyLCBzaXplb2YoX3N0ciksIGZtdCwgIyMgYXJnKTsgICBcCi0gICAg aWYgKEJhdGNoKSBfcHRyID0gX3N0cjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotLSAgICAgIF9wdHIgPSAmUHNldWRvX3Njcm5bUHNldWRvX3JvdysrICogUHNldWRv X2NvbHNdOyAgXAotKyAgICAgIGlmIChQc2V1ZG9fcm93ICogUHNldWRvX2NvbHMgKyBfbGVuID4g UHNldWRvX3NpemUpIHsgXAotKyAgICAgICAgIFBzZXVkb19zY3JuLmJ1ZiA9IHJlYWxsb2MoUHNl dWRvX3Njcm4uYnVmLCBQc2V1ZG9fcm93ICogUHNldWRvX2NvbHMgKyBfbGVuKTsgXAotKwkgUHNl dWRvX3Njcm4ubWVtX3NpemUgPSBQc2V1ZG9fc2l6ZSA9IFBzZXVkb19yb3cgKiBQc2V1ZG9fY29s cyArIF9sZW47IFwKLSsgICAgICB9IFwKLSsgICAgICBfcHRyID0gJlBzZXVkb19zY3JuLmJ1ZltQ c2V1ZG9fcm93KysgKiBQc2V1ZG9fY29sc107ICBcCi0gICAgICAgaWYgKG1lbWNtcChfcHRyLCBf c3RyLCBfbGVuKSkgeyAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgbWVtY3B5KF9wdHIsIF9z dHIsIF9sZW4pOyAgICAgICAgICAgICAgICBcCi0gICAgICAgfSBlbHNlIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi1AQCAtMjM3LDYgKzI0MSwxMSBAQCB0eXBlZGVmIHN0cnVj dCBSQ0ZfdCB7ICAvLyB0aGUgY29tcGxldGUgcmNmaWxlIChuZXcgc3R5bGUpCi0gICAgUkNXX3Qg IHdpbiBbNF07ICAgICAgICAgICAgICAvLyBhICdXSU5fdC5yYycgZm9yIGVhY2ggb2YgdGhlIDQg d2luZG93cwotIH0gUkNGX3Q7Ci0gCi0rdHlwZWRlZiBzdHJ1Y3QgUFNFVURPX1NDUkVFTl90IHsK LSsgICBjaGFyICpidWY7Ci0rICAgaW50CW1lbV9zaXplOwotK30gUFNFVURPX1NDUkVFTl90Owot KwotIC8vIFRoZSBzY2FsaW5nICd0eXBlJyB1c2VkIHdpdGggc2NhbGVfbnVtKCkgLS0gdGhpcyBp cyBob3cKLSAvLyB0aGUgcGFzc2VkIG51bWJlciBpcyBpbnRlcnByZXRlZCBzaG91bGQgc2NhbGlu ZyBiZSBuZWNlc3NhcnkKLSBlbnVtIHNjYWxlX251bSB7Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdp dCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjYtdy1iYXNzbWFuLnBhdGNoIGIvcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDAyNi13LWJhc3NtYW4ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGY4MmJlMTUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyNi13 LWJhc3NtYW4ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi1Gcm9tIDY1MWM1 YjI2MjI4NTljZTE5MGE2YmVlNTNkYzZhYmZkNDkxZmEzODAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3By b2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRl OiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMjYvNzBd IHctYmFzc21hbgotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSB3LjEgfCAgICA1ICsrKystCi0gdy5jIHwg ICAxNiArKysrKysrKysrKysrKystCi0gMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdy4xIGIvdy4xCi1pbmRleCBkNTdhOWI1 Li44NDc4NmU2IDEwMDY0NAotLS0tIGEvdy4xCi0rKysgYi93LjEKLUBAIC01LDcgKzUsNyBAQAot IHcgXC0gU2hvdyB3aG8gaXMgbG9nZ2VkIG9uIGFuZCB3aGF0IHRoZXkgYXJlIGRvaW5nLgotIC5T SCBTWU5PUFNJUwotIC5CIHcgXC0KLS0uUkIgWyBodXNmViBdCi0rLlJCIFsgaHVzZlZvIF0KLSAu UkkgWyB1c2VyIF0KLSAuU0ggREVTQ1JJUFRJT04KLSAuQiAidyAiCi1AQCAtNTUsNiArNTUsOSBA QCBmaWVsZCBpcyBzaG93biBieSBkZWZhdWx0LgotIC5CICJcLVYgIgotIERpc3BsYXkgdmVyc2lv biBpbmZvcm1hdGlvbi4KLSAuVFAgMC41aQotKy5CICJcLW8gIgotK09sZCBzdHlsZSBvdXRwdXQu IFByaW50cyBibGFuayBzcGFjZSBmb3IgaWRsZSB0aW1lcyBsZXNzIHRoYW4gb25lIG1pbnV0ZS4K LSsuVFAgMC41aQotIC5CICJ1c2VyICIKLSBTaG93IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVj aWZpZWQgdXNlciBvbmx5LgotIAotZGlmZiAtLWdpdCBhL3cuYyBiL3cuYwotaW5kZXggYTZiMWIy NS4uOTFmZThiMSAxMDA2NDQKLS0tLSBhL3cuYwotKysrIGIvdy5jCi1AQCAtMzAsNiArMzAsNyBA QAotICNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0gCi0gc3RhdGljIGludCBpZ25vcmV1c2VyID0gMDsJ LyogZm9yICctdScgKi8KLStzdGF0aWMgaW50IG9sZHN0eWxlID0gMDsJLyogZm9yICctbycgKi8K LSBzdGF0aWMgcHJvY190ICoqcHJvY3M7CQkvKiBvdXIgc25hcHNob3Qgb2YgdGhlIHByb2Nlc3Mg dGFibGUgKi8KLSAKLSB0eXBlZGVmIHN0cnVjdCB1dG1wIHV0bXBfdDsKLUBAIC03Niw2ICs3Nywx NiBAQCBzdGF0aWMgdm9pZCBwcmludF90aW1lX2l2YWw3KHRpbWVfdCB0LCBpbnQgY2VudGlfc2Vj LCBGSUxFKiBmb3V0KSB7Ci0gICAgICAgcHJpbnRmKCIgICA/ICAgIik7Ci0gICAgICAgcmV0dXJu OwotICAgICB9Ci0rICAgIGlmIChvbGRzdHlsZSkgewotKyAgICAgIGlmICh0ID49IDQ4KjYwKjYw KSAgICAgICAgICAgICAgIC8qID4gMiBkYXlzICovCi0rICAgICAgICBmcHJpbnRmKGZvdXQsICIg JTJsdWRheXMiLCB0LygyNCo2MCo2MCkpOwotKyAgICAgIGVsc2UgaWYgKHQgPj0gNjAqNjApICAg ICAgICAgICAgLyogPiAxIGhvdXIgKi8KLSsgICAgICAgIGZwcmludGYoZm91dCwgIiAlMmx1OiUw MnUgIiwgdC8oNjAqNjApLCAodW5zaWduZWQpICgodC82MCklNjApKTsKLSsgICAgICBlbHNlIGlm ICh0ID4gNjApICAgICAgICAgICAgICAgLyogPiAxIG1pbnV0ZSAqLwotKyAgICAgICAgZnByaW50 Zihmb3V0LCAiICUybHU6JTAydW0iLCB0LzYwLCAodW5zaWduZWQpIHQlNjApOwotKyAgICAgIGVs c2UKLSsgICAgICAgIGZwcmludGYoZm91dCwgIiAgICAgICAiKTsKLSsgICAgfSBlbHNlIHsKLSAg ICAgaWYgKHQgPj0gNDgqNjAqNjApCQkJCS8qID4gMiBkYXlzICovCi0gCWZwcmludGYoZm91dCwg IiAlMmx1ZGF5cyIsIHQvKDI0KjYwKjYwKSk7Ci0gICAgIGVsc2UgaWYgKHQgPj0gNjAqNjApCQkJ LyogPiAxIGhvdXIgKi8KLUBAIC04NCw2ICs5NSw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3RpbWVf aXZhbDcodGltZV90IHQsIGludCBjZW50aV9zZWMsIEZJTEUqIGZvdXQpIHsKLSAJZnByaW50Zihm b3V0LCAiICUybHU6JTAydSAiLCB0LzYwLCAodW5zaWduZWQpIHQlNjApOwotICAgICBlbHNlCi0g ICAgIGZwcmludGYoZm91dCwgIiAlMmx1LiUwMnVzIiwgdCwgY2VudGlfc2VjKTsKLSsgICAgfQot IH0KLSAKLSAvKioqKiBzdGF0IHRoZSBkZXZpY2UgZmlsZSB0byBnZXQgYW4gaWRsZSB0aW1lICov Ci1AQCAtMjM5LDcgKzI1MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewot ICNlbmRpZgotIAotICAgICBzZXRsb2NhbGUoTENfQUxMLCAiIik7Ci0tICAgIGZvciAoYXJncz0w OyAoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgImhsdXNmViIpKSAhPSBFT0Y7IGFyZ3MrKykKLSsg ICAgZm9yIChhcmdzPTA7IChjaCA9IGdldG9wdChhcmdjLCBhcmd2LCAiaGx1c2ZWbyIpKSAhPSBF T0Y7IGFyZ3MrKykKLSAJc3dpdGNoIChjaCkgewotIAkgIGNhc2UgJ2gnOiBoZWFkZXIgPSAwOwkJ YnJlYWs7Ci0gCSAgY2FzZSAnbCc6IGxvbmdmb3JtID0gMTsJYnJlYWs7Ci1AQCAtMjQ3LDYgKzI1 OSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkgIGNhc2UgJ2YnOiBm cm9tID0gIWZyb207CWJyZWFrOwotIAkgIGNhc2UgJ1YnOiBkaXNwbGF5X3ZlcnNpb24oKTsJZXhp dCgwKTsKLSAJICBjYXNlICd1JzogaWdub3JldXNlciA9IDE7CWJyZWFrOwotKwkgIGNhc2UgJ28n OiBvbGRzdHlsZSA9IDE7CWJyZWFrOwotIAkgIGRlZmF1bHQ6Ci0gCSAgICBwcmludGYoInVzYWdl OiB3IC1obHN1ZlYgW3VzZXJdXG4iCi0gCQkgICAiICAgIC1oICAgIHNraXAgaGVhZGVyXG4iCi1A QCAtMjU0LDYgKzI2Nyw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkJ ICAgIiAgICAtcyAgICBzaG9ydCBsaXN0aW5nXG4iCi0gCQkgICAiICAgIC11ICAgIGlnbm9yZSB1 aWQgb2YgcHJvY2Vzc2VzXG4iCi0gCQkgICAiICAgIC1mICAgIHRvZ2dsZSBGUk9NIGZpZWxkIChk ZWZhdWx0ICVzKVxuIgotKwkJICAgIiAgICAtbyAgICBvbGQtc3R5bGUgb3V0cHV0XG4iCi0gCQkg ICAiICAgIC1WICAgIGRpc3BsYXkgdmVyc2lvblxuIiwgRlJPTV9TVFJJTkcpOwotIAkgICAgZXhp dCgxKTsKLSAJfQotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDI3LXRvcC4xX2NwdXN0YXRlcy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjct dG9wLjFfY3B1c3RhdGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTMz NzRlLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjctdG9wLjFfY3B1c3Rh dGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotRnJvbSBlN2M3MWE3YTlm NzQzZjEwMmUwMWYyZTExMDRhYjBlNTQxN2Y4ZjM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMv cHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJp LCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDI3LzcwXSB0b3Au MV9jcHVzdGF0ZXMKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdG9wLjEgfCAgIDM2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwotIDEgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9u cygrKSwgMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RvcC4xIGIvdG9wLjEKLWluZGV4 IGIwY2VjMmQuLjBjZTFjNjIgMTAwNjQ0Ci0tLS0gYS90b3AuMQotKysrIGIvdG9wLjEKLUBAIC01 MzcsNiArNTM3LDQyIEBAIFlvdVxmSSBtb3ZlXGZSIGEgZmllbGQgdG8gdGhlXGZCIGxlZnRcZlIg YnkgcHJlc3NpbmcgdGhlIGNvcnJlc3BvbmRpbmdcZkIKLSB1cHBlciBjYXNlXGZSIGxldHRlciBh bmQgdG8gdGhlXGZCIHJpZ2h0XGZSIHdpdGggdGhlXGZCIGxvd2VyIGNhc2VcZlIKLSBsZXR0ZXIu Ci0gCi0rLlwiIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KLSsuU1MgMmMuIENQVSBTdGF0ZXMKLSsuXCIgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotK1RoZSBDUFUgc3RhdGVzIGFyZSBzaG93biBpbiB0aGUgU3VtbWFyeSBBcmVhLiBU aGV5IGFyZSBhbHdheXMgc2hvd24gYXMgYQotK3BlcmNlbnRhZ2UgYW5kIGFyZSBmb3IgdGhlIHRp bWUgYmV0d2VlbiBub3cgYW5kIHRoZSBsYXN0IHJlZnJlc2guCi0rCi0rLlRQIDMKLStcZkIgdXNc ZlIgXCooRU0gVXNlciBDUFUgdGltZQotK1RoZSB0aW1lIHRoZSBDUFUgaGFzIHNwZW50IHJ1bm5p bmcgdXNlcnMnIHByb2Nlc3NlcyB0aGF0IGFyZSBub3QKLStuaWNlZC4KLSsKLSsuVFAgMwotK1xm QiBzeVxmUiBcKihFTSBTeXN0ZW0gQ1BVIHRpbWUKLStUaGUgdGltZSB0aGUgQ1BVIGhhcyBzcGVu dCBydW5uaW5nIHRoZSBrZXJuZWwgYW5kIGl0cyBwcm9jZXNzZXMuCi0rCi0rLlRQIDMKLStcZkIg bmlcZlIgXCooRU0gTmljZSBDUFUgdGltZQotK1RoZSB0aW1lIHRoZSBDUFUgaGFzIHNwZW50IHJ1 bm5pbmcgdXNlcnMnIHByb2NjZXNzIHRoYXQgaGF2ZSBiZWVuCi0rbmljZWQuCi0rCi0rLlRQIDMK LStcZkIgd2FcZlIgXCooRU0gaW93YWl0Ci0rQW1vdW50IG9mIHRpbWUgdGhlIENQVSBoYXMgYmVl biB3YWl0aW5nIGZvciBJL08gdG8gY29tcGxldGUuCi0rCi0rLlRQIDMKLStcZkIgaGlcZlIgXCoo RU0gSGFyZHdhcmUgSVJRCi0rVGhlIGFtb3VudCBvZiB0aW1lIHRoZSBDUFUgaGFzIGJlZW4gc2Vy dmljaW5nIGhhcmR3YXJlIGludGVycnVwdHMuCi0rCi0rLlRQIDMKLStcZkIgc2lcZlIgXCooRU0g U29mdHdhcmUgSW50ZXJydXB0cwotK1RoZSBhbW91bnQgb2YgdGltZSB0aGUgQ1BVIGhhcyBiZWVu IHNlcnZpY2luZyBzb2Z0d2FyZSBpbnRlcnJ1cHRzLgotKwotKy5UUCAzCi0rXGZCIHN0XGZSIFwq KEVNIFN0ZWFsIFRpbWUKLStUaGUgYW1vdW50IG9mIENQVSAnc3RvbGVuJyBmcm9tIHRoaXMgdmly dHVhbCBtYWNoaW5lIGJ5IHRoZSBoeXBlcnZpc29yCi0rZm9yIG90aGVyIHRhc2tzIChzdWNoIGFz IHJ1bm5pbmcgYW5vdGhlciB2aXJ0dWFsIG1hY2hpbmUpLgotIAotIC5cIiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gLlNIIDMuIElOVEVSQUNUSVZFIENvbW1hbmRzCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMjgtd2F0Y2hfOGJpdGNoYXIucGF0Y2ggYi9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDI4LXdhdGNoXzhiaXRjaGFyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAyYjNjNDczLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMjgtd2F0Y2hfOGJpdGNoYXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBA Ci1Gcm9tIGE5MWU2NDcwYzJmMWY2YmJlNDgxOTg4ZmJmMmE2YWY2YmI4N2ZkNmMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bv b2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlh bi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBb UEFUQ0ggMjgvNzBdIHdhdGNoXzhiaXRjaGFyCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHdhdGNoLmMg fCAgICAyICstCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS93YXRjaC5jIGIvd2F0Y2guYwotaW5kZXggNTg0MTE2OC4uZWI1 Y2U5MiAxMDA2NDQKLS0tLSBhL3dhdGNoLmMKLSsrKyBiL3dhdGNoLmMKLUBAIC0yOTcsNyArMjk3 LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCQltb3ZlKHksIHgpOwotIAkJ CQlpZiAob3B0aW9uX2RpZmZlcmVuY2VzKSB7Ci0gCQkJCQljaHR5cGUgb2xkY2ggPSBpbmNoKCk7 Ci0tCQkJCQljaGFyIG9sZGMgPSBvbGRjaCAmIEFfQ0hBUlRFWFQ7Ci0rCQkJCQl1bnNpZ25lZCBj aGFyIG9sZGMgPSBvbGRjaCAmIEFfQ0hBUlRFWFQ7Ci0gCQkJCQlhdHRyID0gIWZpcnN0X3NjcmVl bgotIAkJCQkJICAgICYmICgoY2hhciljICE9IG9sZGMKLSAJCQkJCQl8fAotLS0gCi0xLjcuMAot CmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI5LWxpYnJhcnlfbWFwX2ZyZWVw cm9jLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAyOS1saWJyYXJ5X21hcF9mcmVlcHJv Yy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk0OWQ0NC4uMDAwMDAwMAot LS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDI5LWxpYnJhcnlfbWFwX2ZyZWVwcm9jLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJvbSA5ZGM3MzdjYjZkZmMwNzI2MDVj M2M0ZTBhZmIwMmZhODVkMmIwYjE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0 cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMu Mi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIg MjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDI5LzcwXSBsaWJyYXJ5X21hcF9m cmVlcHJvYwotCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBwcm9jL2xpYnJhcnkubWFwIHwgICAgMiArLQot IDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvcHJvYy9saWJyYXJ5Lm1hcCBiL3Byb2MvbGlicmFyeS5tYXAKLWluZGV4IGEzODYy N2IuLjE1NDA2MWIgMTAwNjQ0Ci0tLS0gYS9wcm9jL2xpYnJhcnkubWFwCi0rKysgYi9wcm9jL2xp YnJhcnkubWFwCi1AQCAtNyw3ICs3LDcgQEAgZ2xvYmFsOgotIAotICAgcmVhZHByb2M7IHJlYWR0 YXNrOyByZWFkcHJvY3RhYjsgcmVhZHByb2N0YWIyOyBsb29rX3VwX291cl9zZWxmOyBlc2NhcGVf Y29tbWFuZDsKLSAgIGVzY2FwZV9zdHI7IGVzY2FwZV9zdHJsaXN0OwotLSAgb3BlbnByb2M7IGNs b3NlcHJvYzsKLSsgIG9wZW5wcm9jOyBjbG9zZXByb2M7IGZyZWVwcm9jOwotICAgdHR5X3RvX2Rl djsgZGV2X3RvX3R0eTsgb3Blbl9wc2RiX21lc3NhZ2U7IG9wZW5fcHNkYjsgbG9va3VwX3djaGFu OwotICAgZGlzcGxheV92ZXJzaW9uOyBwcm9jcHNfdmVyc2lvbjsgbGludXhfdmVyc2lvbl9jb2Rl OwotICAgSGVydHo7IHNtcF9udW1fY3B1czsgaGF2ZV9wcml2czsKLS0tIAotMS43LjAKLQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMC1wZ3JlcF9zdGFydF90aW1lLnBhdGNo IGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMC1wZ3JlcF9zdGFydF90aW1lLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTdjMDc2Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMv cHJvY3BzLTMuMi44LzAwMzAtcGdyZXBfc3RhcnRfdGltZS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDI3ICswLDAgQEAKLUZyb20gNTIwNmY3NWI4MDY5OTIxNmFkMzY3N2Y1MDBhOTNlM2QyMzIz YjYyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFu Lm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIu Z3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAx MDAKLVN1YmplY3Q6IFtQQVRDSCAzMC83MF0gcGdyZXBfc3RhcnRfdGltZQotCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0KLSBwZ3JlcC5jIHwgICAgMyArKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BncmVwLmMgYi9wZ3JlcC5jCi1p bmRleCBiYmI3Y2QxLi42MDljYWJkIDEwMDY0NAotLS0tIGEvcGdyZXAuYwotKysrIGIvcGdyZXAu YwotQEAgLTQzMCw3ICs0MzAsOCBAQCBzdGF0aWMgdW5pb24gZWwgKiBzZWxlY3RfcHJvY3MgKGlu dCAqbnVtKQotIAlwcmVnID0gZG9fcmVnY29tcCgpOwotIAotIAlpZiAob3B0X25ld2VzdCkgc2F2 ZWRfc3RhcnRfdGltZSA9ICAwVUxMOwotLQlpZiAob3B0X29sZGVzdCkgc2F2ZWRfc3RhcnRfdGlt ZSA9IH4wVUxMOwotKyAgICBlbHNlCi0rCSAgICBzYXZlZF9zdGFydF90aW1lID0gfjBVTEw7Ci0g CWlmIChvcHRfbmV3ZXN0KSBzYXZlZF9waWQgPSAwOwotIAlpZiAob3B0X29sZGVzdCkgc2F2ZWRf cGlkID0gSU5UX01BWDsKLSAJCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwMzEtcmVhZHByb2NfYy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw MzEtcmVhZHByb2NfYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODljOTQ1 NS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDMxLXJlYWRwcm9jX2MucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1Gcm9tIDQ5YWJhNDZjMjJlYzRhZjI5 NzU2NjE2NWRkYTYxMWZlNmMzYzc5MmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBo dHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNf My4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1h ciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMzEvNzBdIHJlYWRwcm9jX2MK LQotcmV0dXJuIGlmIHVuYWJsZSB0byBvcGVuIC9wcm9jCi0tLS0KLSBwcm9jL3JlYWRwcm9jLmMg fCAgICA0ICsrKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvcmVhZHByb2MuYyBiL3Byb2MvcmVhZHByb2MuYwot aW5kZXggNGZhZDExZC4uMDM4NmE2MyAxMDA2NDQKLS0tLSBhL3Byb2MvcmVhZHByb2MuYwotKysr IGIvcHJvYy9yZWFkcHJvYy5jCi1AQCAtMTczLDcgKzE3Myw3IEBAIEVOVEVSKDB4MjIwKTsKLSAg ICAgICAgIC8vIGV4YW1pbmUgYSBmaWVsZCBuYW1lIChoYXNoIGFuZCBjb21wYXJlKQotICAgICBi YXNlOgotICAgICAgICAgaWYodW5saWtlbHkoISpTKSkgYnJlYWs7Ci0tICAgICAgICBlbnRyeSA9 IHRhYmxlWzYzICYgKGFzc29bU1szXV0gKyBhc3NvW1NbMl1dICsgYXNzb1tTWzBdXSldOwotKyAg ICAgICAgZW50cnkgPSB0YWJsZVs2MyAmIChhc3NvWyhpbnQpU1szXV0gKyBhc3NvWyhpbnQpU1sy XV0gKyBhc3NvWyhpbnQpU1swXV0pXTsKLSAgICAgICAgIGNvbG9uID0gc3RyY2hyKFMsICc6Jyk7 Ci0gICAgICAgICBpZih1bmxpa2VseSghY29sb24pKSBicmVhazsKLSAgICAgICAgIGlmKHVubGlr ZWx5KGNvbG9uWzFdIT0nXHQnKSkgYnJlYWs7Ci1AQCAtOTQyLDYgKzk0Miw4IEBAIHByb2NfdCoq IHJlYWRwcm9jdGFiKGludCBmbGFncywgLi4uKSB7Ci0gICAgIGVsc2UKLSAJUFQgPSBvcGVucHJv YyhmbGFncyk7Ci0gICAgIHZhX2VuZChhcCk7Ci0rICAgIGlmICghUFQpCi0rICAgICAgcmV0dXJu IDA7Ci0gICAgIGRvIHsJCQkJCS8qIHJlYWQgdGFibGU6ICovCi0gCXRhYiA9IHhyZWFsbG9jKHRh YiwgKG4rMSkqc2l6ZW9mKHByb2NfdCopKTsvKiByZWFsbG9jIGFzIHdlIGdvLCB1c2luZyAqLwot IAl0YWJbbl0gPSByZWFkcHJvY19kaXJlY3QoUFQsIE5VTEwpOyAgICAgLyogZmluYWwgbnVsbCB0 byB0ZXJtaW5hdGUgKi8KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAzMi1zeXNpbmZvXzdfbnVtYmVycy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwMzItc3lzaW5mb183X251bWJlcnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDlkN2RhMGUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMi1zeXNp bmZvXzdfbnVtYmVycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLUZyb20g NmY0Njk5ODJkN2M3NGNhMjJiNzM0NWY1YmM4Yjk1NmY1ODNhOTc4MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWlu L3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4K LURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAz Mi83MF0gc3lzaW5mb183X251bWJlcnMKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gcHJvYy9zeXNpbmZv LmMgfCAgICA3ICsrKystLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2Mvc3lzaW5mby5jIGIvcHJvYy9zeXNpbmZv LmMKLWluZGV4IDQ3MzYzNGYuLjhkYmFiZGYgMTAwNjQ0Ci0tLS0gYS9wcm9jL3N5c2luZm8uYwot KysrIGIvcHJvYy9zeXNpbmZvLmMKLUBAIC0xMjQsMjQgKzEyNCwyNSBAQCBpbnQgdXB0aW1lKGRv dWJsZSAqcmVzdHJpY3QgdXB0aW1lX3NlY3MsIGRvdWJsZSAqcmVzdHJpY3QgaWRsZV9zZWNzKSB7 Ci0gdW5zaWduZWQgbG9uZyBsb25nIEhlcnR6OwotIAotIHN0YXRpYyB2b2lkIG9sZF9IZXJ0el9o YWNrKHZvaWQpewotLSAgdW5zaWduZWQgbG9uZyBsb25nIHVzZXJfaiwgbmljZV9qLCBzeXNfaiwg b3RoZXJfajsgIC8qIGppZmZpZXMgKGNsb2NrIHRpY2tzKSAqLwotKyAgdW5zaWduZWQgbG9uZyBs b25nIHVzZXJfaiwgbmljZV9qLCBzeXNfaiwgb3RoZXJfaiwgd2FpdF9qLCBoaXJxX2osIHNpcnFf aiwgc3RvbF9qOyAgLyogamlmZmllcyAoY2xvY2sgdGlja3MpICovCi0gICBkb3VibGUgdXBfMSwg dXBfMiwgc2Vjb25kczsKLSAgIHVuc2lnbmVkIGxvbmcgbG9uZyBqaWZmaWVzOwotICAgdW5zaWdu ZWQgaDsKLSAgIGNoYXIgKnJlc3RyaWN0IHNhdmVsb2NhbGU7Ci0gCi0rICB3YWl0X2ogPSBoaXJx X2ogPSBzaXJxX2ogPSBzdG9sX2ogPSAwOwotICAgc2F2ZWxvY2FsZSA9IHNldGxvY2FsZShMQ19O VU1FUklDLCBOVUxMKTsKLSAgIHNldGxvY2FsZShMQ19OVU1FUklDLCAiQyIpOwotICAgZG97Ci0g ICAgIEZJTEVfVE9fQlVGKFVQVElNRV9GSUxFLHVwdGltZV9mZCk7ICBzc2NhbmYoYnVmLCAiJWxm IiwgJnVwXzEpOwotICAgICAvKiB1cHRpbWUoJnVwXzEsIE5VTEwpOyAqLwotICAgICBGSUxFX1RP X0JVRihTVEFUX0ZJTEUsc3RhdF9mZCk7Ci0tICAgIHNzY2FuZihidWYsICJjcHUgJUx1ICVMdSAl THUgJUx1IiwgJnVzZXJfaiwgJm5pY2VfaiwgJnN5c19qLCAmb3RoZXJfaik7Ci0rICAgIHNzY2Fu ZihidWYsICJjcHUgJUx1ICVMdSAlTHUgJUx1ICVMdSAlTHUgJUx1ICVMdSIsICZ1c2VyX2osICZu aWNlX2osICZzeXNfaiwgJm90aGVyX2osICZ3YWl0X2osICZoaXJxX2osICZzaXJxX2osICZzdG9s X2opOwotICAgICBGSUxFX1RPX0JVRihVUFRJTUVfRklMRSx1cHRpbWVfZmQpOyAgc3NjYW5mKGJ1 ZiwgIiVsZiIsICZ1cF8yKTsKLSAgICAgLyogdXB0aW1lKCZ1cF8yLCBOVUxMKTsgKi8KLSAgIH0g d2hpbGUoKGxvbmcgbG9uZykoICh1cF8yLXVwXzEpKjEwMDAuMC91cF8xICkpOyAvKiB3YW50IHVu ZGVyIDAuMSUgZXJyb3IgKi8KLSAgIHNldGxvY2FsZShMQ19OVU1FUklDLCBzYXZlbG9jYWxlKTsK LS0gIGppZmZpZXMgPSB1c2VyX2ogKyBuaWNlX2ogKyBzeXNfaiArIG90aGVyX2o7Ci0rICBqaWZm aWVzID0gdXNlcl9qICsgbmljZV9qICsgc3lzX2ogKyBvdGhlcl9qICsgd2FpdF9qICsgaGlycV9q ICsgc2lycV9qICsgc3RvbF9qIDsKLSAgIHNlY29uZHMgPSAodXBfMSArIHVwXzIpIC8gMjsKLSAg IGggPSAodW5zaWduZWQpKCAoZG91YmxlKWppZmZpZXMvc2Vjb25kcy9zbXBfbnVtX2NwdXMgKTsK LSAgIC8qIGFjdHVhbCB2YWx1ZXMgdXNlZCBieSAyLjQga2VybmVsczogMzIgNjQgMTAwIDEyOCAx MDAwIDEwMjQgMTIwMCAqLwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDMzLXRsb2FkX25vX29wdGFyZ3MucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDMzLXRsb2FkX25vX29wdGFyZ3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDRmODI4M2QuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzMy10bG9h ZF9ub19vcHRhcmdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSBi YWFlZDA0ODliYzEyNzM2MzNlOTE4ZTA4NWZmMjhiODVlNDFhM2M2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4v cC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgot RGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDMz LzcwXSB0bG9hZF9ub19vcHRhcmdzCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHRsb2FkLmMgfCAgICAz IC0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvdGxvYWQuYyBiL3Rsb2FkLmMKLWluZGV4IDFkMzQ2YmIuLmNlY2U0OGMg MTAwNjQ0Ci0tLS0gYS90bG9hZC5jCi0rKysgYi90bG9hZC5jCi1AQCAtMzAsOSArMzAsNiBAQCBz dGF0aWMgaW50IGZkPTE7Ci0gc3RhdGljIGludCBkbHk9NTsKLSBzdGF0aWMgam1wX2J1ZiBqYjsK LSAKLS1leHRlcm4gaW50IG9wdGluZDsKLS1leHRlcm4gY2hhciAqb3B0YXJnOwotLQotIHN0YXRp YyB2b2lkIGFscm0oaW50IHNpZ25vKQotIHsKLSAgICAgKHZvaWQpc2lnbm87Ci0tLSAKLTEuNy4w Ci0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzQtdy4xLnBhdGNoIGIvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNC13LjEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDZkOWFhMDMuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNC13 LjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi1Gcm9tIGVlNDNlYTQ3MTdm ZDE2Mjk5NTZmYTZiNzk2OGYxMzRlZjFmZGYyMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9w cm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmks IDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMzQvNzBdIHcuMQot Ci1NYWtlIG5vdGUgb2YgdGhlIHRpbWUgZm9ybWF0cwotQnVnLURlYmlhbjogaHR0cDovL2J1Z3Mu ZGViaWFuLm9yZy80MTQ5MDYKLS0tLQotIHcuMSB8ICAgMjcgKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvdy4xIGIvdy4xCi1pbmRleCA4NDc4NmU2Li5hMTNjYzgxIDEwMDY0 NAotLS0tIGEvdy4xCi0rKysgYi93LjEKLUBAIC00LDI2ICs0LDI2IEBACi0gLlNIIE5BTUUKLSB3 IFwtIFNob3cgd2hvIGlzIGxvZ2dlZCBvbiBhbmQgd2hhdCB0aGV5IGFyZSBkb2luZy4KLSAuU0gg U1lOT1BTSVMKLS0uQiB3IFwtCi0tLlJCIFsgaHVzZlZvIF0KLSsuQiB3Ci0rLlJCIFsgXC1odXNm Vm8gXQotIC5SSSBbIHVzZXIgXQotIC5TSCBERVNDUklQVElPTgotLS5CICJ3ICIKLSsuQiB3Ci0g ZGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZXJzIGN1cnJlbnRseSBvbiB0aGUgbWFj aGluZSwKLSBhbmQgdGhlaXIgcHJvY2Vzc2VzLgotIFRoZSBoZWFkZXIgc2hvd3MsIGluIHRoaXMg b3JkZXIsICB0aGUgY3VycmVudCB0aW1lLAotIGhvdyBsb25nIHRoZSBzeXN0ZW0gaGFzIGJlZW4g cnVubmluZywKLSBob3cgbWFueSB1c2VycyBhcmUgY3VycmVudGx5IGxvZ2dlZCBvbiwKLSBhbmQg dGhlIHN5c3RlbSBsb2FkIGF2ZXJhZ2VzIGZvciB0aGUgcGFzdCAxLCA1LCBhbmQgMTUgbWludXRl cy4KLS0uc3AKLSsKLSBUaGUgZm9sbG93aW5nIGVudHJpZXMgYXJlIGRpc3BsYXllZCBmb3IgZWFj aCB1c2VyOgotIGxvZ2luIG5hbWUsIHRoZSB0dHkgbmFtZSwgdGhlIHJlbW90ZSBob3N0LCBsb2dp biB0aW1lLCBpZGxlIHRpbWUsIEpDUFUsIFBDUFUsCi0gYW5kIHRoZSBjb21tYW5kIGxpbmUgb2Yg dGhlaXIgY3VycmVudCBwcm9jZXNzLgotLS5zcAotKwotIFRoZSBKQ1BVIHRpbWUgaXMgdGhlIHRp bWUgdXNlZCBieSBhbGwgcHJvY2Vzc2VzIGF0dGFjaGVkIHRvIHRoZSB0dHkuICBJdAotIGRvZXMg bm90IGluY2x1ZGUgcGFzdCBiYWNrZ3JvdW5kIGpvYnMsIGJ1dCBkb2VzIGluY2x1ZGUgY3VycmVu dGx5Ci0gcnVubmluZyBiYWNrZ3JvdW5kIGpvYnMuCi0tLnNwCi0rCi0gVGhlIFBDUFUgdGltZSBp cyB0aGUgdGltZSB1c2VkIGJ5IHRoZSBjdXJyZW50IHByb2Nlc3MsIG5hbWVkIGluIHRoZSAid2hh dCIKLSBmaWVsZC4KLSAKLUBAIC0zNSw3ICszNSw3IEBAIERvbid0IHByaW50IHRoZSBoZWFkZXIu Ci0gLlRQIDAuNWkKLSAuQiAiXC11ICIKLSBJZ25vcmVzIHRoZSB1c2VybmFtZSB3aGlsZSBmaWd1 cmluZyBvdXQgdGhlIGN1cnJlbnQgcHJvY2VzcyBhbmQgY3B1Ci0tdGltZXMuICBUbyBkZW1vbnN0 cmF0ZSB0aGlzLCBkbyBhICJzdSIgYW5kIGRvIGEgInciIGFuZCBhICJ3IC11Ii4KLSt0aW1lcy4g IFRvIGRlbW9uc3RyYXRlIHRoaXMsIGRvIGEgInN1IiBhbmQgZG8gYSAidyIgYW5kIGEgIncgXC11 Ii4KLSAuVFAgMC41aQotIC5CICJcLXMgIgotIFVzZSB0aGUgc2hvcnQgZm9ybWF0LgotQEAgLTcw LDYgKzcwLDE5IEBAIGluZm9ybWF0aW9uIGFib3V0IHdobyBpcyBjdXJyZW50bHkgbG9nZ2VkIG9u Ci0gcHJvY2VzcyBpbmZvcm1hdGlvbgotIC5QUAotIAotKy5TSCBOT1RFUwotK1RoZSBvdXRwdXQg Zm9yIElkbGUsIEpDUFUgYW5kIFBDUFUgdGltZXMgdmFpcmVzIGRlcGVuZGluZyBvbiBpZiB5b3Ug dXNlCi0rdGhlIFwtbyAob2xkIHN0eWxlKSBvcHRpb24gb3Igbm90LiBUaGVzZSBmb3JtYXRzIGNh biBiZSBjb25mdXNpbmcgaWYgeW91Ci0rc3dpdGNoIGJldHdlZW4gdGhlIG9sZCBzdHlsZSBhbmQg c3RhbmRhcmQuICBJbiB0aGUgZm9sbG93aW5nIHBhcmFncmFwaHMKLStkYXlzIGFyZSBERCwgaG91 cnMgSEgsIG1pbnV0ZXMgTU0sIHNlY29uZHMgU1MgYW5kIDEwMHRocyBvZiBzZWNvbmRzIENDLgot KwotK1RoZSBzdGFuZGFyZCBmb3JtYXQgaXMgRERkYXlzLCBISDpNTW0sIE1NOlNTIG9yIFNTLkND IGlmIHRoZSB0aW1lcyBhcmUKLStncmVhdGVyIHRoYW4gMiBkYXlzLCAxaG91ciwgb3IgMSBtaW51 dGUgcmVzcGVjdGl2ZWx5LgotKwotK0ZvciB0aGUgXC1vIG9wdGlvbiwgdGhlIG91dHB1dCB3aWxs IGJlIGVpdGhlciAgRERkYXlzLCBISDpNTSwgTU06U1NtIG9yCi0rYmxhbmsgaWYgdGhlIHRpbWVz IGFyZSBncmVhdGVyIHRoYW4gMiBkYXlzLCAxIGhvdXIgb3IgMSBtaW51dGUKLStyZXNwZWN0aXZl bHkuCi0rCi0gLlNIICJTRUUgQUxTTyIKLSAuQlIgZnJlZSAoMSksCi0gLkJSIHBzICgxKSwKLS0t IAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNS13X2NvbHVt bnMucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM1LXdfY29sdW1ucy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFkMTliZC4uMDAwMDAwMAotLS0gYS9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDM1LXdfY29sdW1ucy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQx ICswLDAgQEAKLUZyb20gNmI4ZWJkMzFhYzM4Y2Q4NDY1ZjlkOWE0YzVhMzM1YjFkNzZlMDRiZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9k ZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGlu Zm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSCAzNS83MF0gd19jb2x1bW5zCi0KLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHcuYyB8 ICAgIDggKysrKysrLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3cuYyBiL3cuYwotaW5kZXggOTFmZThiMS4uMjA3NzMz OCAxMDA2NDQKLS0tLSBhL3cuYwotKysrIGIvdy5jCi1AQCAtMjQxLDEwICsyNDEsMTAgQEAgc3Rh dGljIHZvaWQgc2hvd2luZm8odXRtcF90ICp1LCBpbnQgZm9ybXR5cGUsIGludCBtYXhjbWQsIGlu dCBmcm9tKSB7Ci0gCi0gLyoqKioqIG1haW4gKi8KLSBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpIHsKLS0gICAgY2hhciAqdXNlciA9IE5VTEw7Ci0rICAgIGNoYXIgKnVzZXIgPSBOVUxM LCAqcDsKLSAgICAgdXRtcF90ICp1OwotICAgICBzdHJ1Y3Qgd2luc2l6ZSB3aW47Ci0tICAgIGlu dCBoZWFkZXI9MSwgbG9uZ2Zvcm09MSwgZnJvbT0xLCBhcmdzLCBtYXhjbWQ9ODAsIGNoOwotKyAg ICBpbnQgaGVhZGVyPTEsIGxvbmdmb3JtPTEsIGZyb209MSwgYXJncywgbWF4Y21kLCBjaDsKLSAK LSAjaWZuZGVmIFdfU0hPV0ZST00KLSAgICAgZnJvbSA9IDA7Ci1AQCAtMjc3LDYgKzI3NywxMCBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAKLSAgICAgaWYgKGlvY3RsKDEs IFRJT0NHV0lOU1osICZ3aW4pICE9IC0xICYmIHdpbi53c19jb2wgPiAwKQotIAltYXhjbWQgPSB3 aW4ud3NfY29sOwotKyAgICBlbHNlIGlmIChwID0gZ2V0ZW52KCJDT0xVTU5TIikpCi0rICAgICAg ICBtYXhjbWQgPSBhdG9pKHApOwotKyAgICBlbHNlCi0rCW1heGNtZCA9IDgwOwotICAgICBpZiAo bWF4Y21kIDwgNzEpIHsKLSAJZnByaW50ZihzdGRlcnIsICIlZCBjb2x1bW4gd2luZG93IGlzIHRv byBuYXJyb3dcbiIsIG1heGNtZCk7Ci0gCWV4aXQoMSk7Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdp dCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoIGIvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNi13YXRjaF9leGVjX2JlZXAucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDgwOTllNGEuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDAzNi13YXRjaF9leGVjX2JlZXAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNzEg KzAsMCBAQAotRnJvbSA0MmRkMGQ2ZmFiZDBlM2JiMTM0YWZhZGRjMDdhMWMwMjkwNWVjYzM2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2Rl Ymlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5m b0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3Vi amVjdDogW1BBVENIIDM2LzcwXSB3YXRjaF9leGVjX2JlZXAKLQotQWRkcyAtZXJyZXhpdCBmbGFn IG5vdyB0b28gIzE4MzM0NgotQXV0aG9yOiBNb3JkZWNoYWkgVC4gQWJ6dWcgPG1vcnR5QGZyYWtp ci5vcmc+Ci1CdWctRGViaWFuOiBodHRwOi8vYnVncy5kZWJpYW4ub3JnLzQxMDk2NwotQnVnLURl YmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy8xODMzNDYKLVJldmlld2VkLWJ5OiBDcmFpZyBT bWFsbCA8Y3NtYWxsQGRlYmlhbi5vcmc+Ci0tLS0KLSB3YXRjaC4xIHwgICAzMyArKysrKysrKysr KysrKysrKysrLS0tCi0gd2F0Y2guYyB8ICAgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEx NiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3dhdGNoLjEg Yi93YXRjaC4xCi1pbmRleCAxNjE2Nzk0Li44MDJhYjg0IDEwMDY0NAotLS0tIGEvd2F0Y2guMQot KysrIGIvd2F0Y2guMQotQEAgLTQsMTAgKzQsMTMgQEAgd2F0Y2ggXC0gZXhlY3V0ZSBhIHByb2dy YW0gcGVyaW9kaWNhbGx5LCBzaG93aW5nIG91dHB1dCBmdWxsc2NyZWVuCi0gLlNIIFNZTk9QU0lT Ci0gLm5hCi0gLkIgd2F0Y2gKLS0uUkIgWyBcLWRodnQgXQotKy5SQiBbIFwtYmRlaHZ0eCBdCi0g LlJCIFsgXC1uCi0gLklSIHNlY29uZHMgXQotKy5SQiBbIFwtXC1iZWVwIF0KLSAuUkIgWyBcLVwt ZGlmZmVyZW5jZXNbPVxmSWN1bXVsYXRpdmVcZlBdXQotKy5SQiBbIFwtXC1lcnJleGl0IF0KLSsu UkIgWyBcLVwtZXhlYyBdCi0gLlJCIFsgXC1cLWhlbHAgXQotIC5SQiBbIFwtXC1pbnRlcnZhbD1c ZklzZWNvbmRzXGZQXQotIC5SQiBbIFwtXC1ub1wtdGl0bGUgXQotQEAgLTE3LDcgKzIwLDggQEAg d2F0Y2ggXC0gZXhlY3V0ZSBhIHByb2dyYW0gcGVyaW9kaWNhbGx5LCBzaG93aW5nIG91dHB1dCBm dWxsc2NyZWVuCi0gLkIgd2F0Y2gKLSBydW5zCi0gLkkgY29tbWFuZAotLXJlcGVhdGVkbHksIGRp c3BsYXlpbmcgaXRzIG91dHB1dCAodGhlIGZpcnN0IHNjcmVlbmZ1bGwpLiAgVGhpcyBhbGxvd3Mg eW91IHRvCi0rcmVwZWF0ZWRseSwgZGlzcGxheWluZyBpdHMgb3V0cHV0IGFuZCBlcnJvcnMgKHRo ZSBmaXJzdCBzY3JlZW5mdWxsKS4gIFRoaXMKLSthbGxvd3MgeW91IHRvCi0gd2F0Y2ggdGhlIHBy b2dyYW0gb3V0cHV0IGNoYW5nZSBvdmVyIHRpbWUuICBCeSBkZWZhdWx0LCB0aGUgcHJvZ3JhbSBp cyBydW4KLSBldmVyeSAyIHNlY29uZHM7IHVzZSAKLSAuQiBcLW4KLUBAIC0zNywxNSArNDEsMzMg QEAgcG9zaXRpb25zIHRoYXQgaGF2ZSBldmVyIGNoYW5nZWQuICBUaGUKLSBvcgotIC5CIFwtXC1u b1wtdGl0bGUKLSBvcHRpb24gdHVybnMgb2ZmIHRoZSBoZWFkZXIgc2hvd2luZyB0aGUgaW50ZXJ2 YWwsIGNvbW1hbmQsIGFuZCBjdXJyZW50Ci0tdGltZSBhdCB0aGUgdG9wIG9mIHRoZSBkaXNwbGF5 LCBhcyB3ZWxsIGFzIHRoZSBmb2xsb3dpbmcgYmxhbmsgbGluZS4KLSt0aW1lIGF0IHRoZSB0b3Ag b2YgdGhlIGRpc3BsYXksIGFzIHdlbGwgYXMgdGhlIGZvbGxvd2luZyBibGFuayBsaW5lLiAgVGhl Ci0rLkkgXC1iCi0rb3IKLSsuSSBcLVwtYmVlcAotK29wdGlvbiBjYXVzZXMgdGhlIGNvbW1hbmQg dG8gYmVlcCBpZiBpdCBoYXMgYSBub24temVybyBleGl0LgotIC5QUAotIC5CIHdhdGNoCi0td2ls bCBydW4gdW50aWwgaW50ZXJydXB0ZWQuCi0rd2lsbCBub3JtYWxseSBydW4gdW50aWwgaW50ZXJy dXB0ZWQuIElmIHlvdSB3YW50Ci0rLkIgd2F0Y2gKLSt0byBleGl0IG9uIGFuIGVycm9yIGZyb20g dGhlIHByb2dyYW0gcnVubmluZyB1c2UgdGhlCi0rLkkgXC1lCi0rb3IKLSsuSSBcLVwtZXJyZXhp dAotK29wdGlvbnMsIHdoaWNoIHdpbGwgY2F1c2UKLSsuQiB3YXRjaAotK3RvIGV4aXQgaWYgdGhl IHJldHVybiB2YWx1ZSBmcm9tIHRoZSBwcm9ncmFtIGlzIG5vbi16ZXJvLgotKwotIC5TSCBOT1RF Ci0gTm90ZSB0aGF0Ci0gLkkgY29tbWFuZAotIGlzIGdpdmVuIHRvICJzaCBcLWMiCi0gd2hpY2gg bWVhbnMgdGhhdCB5b3UgbWF5IG5lZWQgdG8gdXNlIGV4dHJhIHF1b3RpbmcgdG8gZ2V0IHRoZSBk ZXNpcmVkIGVmZmVjdC4KLStZb3UgY2FuIGRpc2FibGUgdGhpcyB3aXRoIHRoZQotKy5JIC14Ci0r b3IKLSsuSSAtLWV4ZWMKLStvcHRpb24sIHdoaWNoIHBhc3NlcyB0aGUgY29tbWFuZCB0byBleGVj KDIpIGluc3RlYWQuCi0gLlBQCi0gTm90ZSB0aGF0IFBPU0lYIG9wdGlvbiBwcm9jZXNzaW5nIGlz IHVzZWQgKGkuZS4sIG9wdGlvbiBwcm9jZXNzaW5nIHN0b3BzIGF0Ci0gdGhlIGZpcnN0IG5vblwt b3B0aW9uIGFyZ3VtZW50KS4gIFRoaXMgbWVhbnMgdGhhdCBmbGFncyBhZnRlcgotQEAgLTkzLDQg KzExNSw1IEBAIFRoZSBvcmlnaW5hbAotIC5CIHdhdGNoCi0gd2FzIHdyaXR0ZW4gYnkgVG9ueSBS ZW1zIDxyZW1ib0B1bmlzb2Z0LmNvbT4gaW4gMTk5MSwgd2l0aCBtb2RzIGFuZAotIGNvcnJlY3Rp b25zIGJ5IEZyYW5jb2lzIFBpbmFyZC4gIEl0IHdhcyByZXdvcmtlZCBhbmQgbmV3IGZlYXR1cmVz IGFkZGVkIGJ5Ci0tTWlrZSBDb2xlbWFuIDxta2NAYWNtLm9yZz4gaW4gMTk5OS4KLStNaWtlIENv bGVtYW4gPG1rY0BhY20ub3JnPiBpbiAxOTk5LiAgVGhlIGJlZXAsIGV4ZWMsIGFuZCBlcnJvciBo YW5kbGluZwotK2ZlYXR1cmVzIHdlcmUgYWRkZWQgYnkgTW9ydHkgQWJ6dWcgPG1vcnR5QGZyYWtp ci5vcmc+IGluIDIwMDguCi1kaWZmIC0tZ2l0IGEvd2F0Y2guYyBiL3dhdGNoLmMKLWluZGV4IGVi NWNlOTIuLmFjYjE1MmYgMTAwNjQ0Ci0tLS0gYS93YXRjaC5jCi0rKysgYi93YXRjaC5jCi1AQCAt OCw2ICs4LDcgQEAKLSAgKiBNaWtlIENvbGVtYW4gPG1rY0BhY20ub3JnPi4KLSAgKgotICAqIENo YW5nZXMgYnkgQWxiZXJ0IENhaGFsYW4sIDIwMDItMjAwMy4KLSsgKiBzdGRlcnIgaGFuZGxpbmcs IGV4ZWMsIGFuZCBiZWVwIG9wdGlvbiBhZGRlZCBieSBNb3J0eSBBYnp1ZywgMjAwOAotICAqLwot IAotICNkZWZpbmUgVkVSU0lPTiAiMC4yLjAiCi1AQCAtMzUsMTMgKzM2LDE2IEBAIHN0YXRpYyBz dHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW10gPSB7Ci0gCXsiZGlmZmVyZW5jZXMiLCBvcHRpb25hbF9h cmd1bWVudCwgMCwgJ2QnfSwKLSAJeyJoZWxwIiwgbm9fYXJndW1lbnQsIDAsICdoJ30sCi0gCXsi aW50ZXJ2YWwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ24nfSwKLSsJeyJiZWVwIiwgbm9fYXJn dW1lbnQsIDAsICdiJ30sCi0rCXsiZXJyZXhpdCIsIG5vX2FyZ3VtZW50LCAwLCAnZSd9LAotKwl7 ImV4ZWMiLCBub19hcmd1bWVudCwgMCwgJ3gnfSwKLSAJeyJuby10aXRsZSIsIG5vX2FyZ3VtZW50 LCAwLCAndCd9LAotIAl7InZlcnNpb24iLCBub19hcmd1bWVudCwgMCwgJ3YnfSwKLSAJezAsIDAs IDAsIDB9Ci0gfTsKLSAKLSBzdGF0aWMgY2hhciB1c2FnZVtdID0KLS0gICAgIlVzYWdlOiAlcyBb LWRobnR2XSBbLS1kaWZmZXJlbmNlc1s9Y3VtdWxhdGl2ZV1dIFstLWhlbHBdIFstLWludGVydmFs PTxuPl0gWy0tbm8tdGl0bGVdIFstLXZlcnNpb25dIDxjb21tYW5kPlxuIjsKLSsgICAgIlVzYWdl OiAlcyBbLWJkaG50dnhdIFstLWJlZXBdIFstLWRpZmZlcmVuY2VzWz1jdW11bGF0aXZlXV0gWy0t ZXhlY10gWy0taGVscF0gWy0taW50ZXJ2YWw9PG4+XSBbLS1uby10aXRsZV0gWy0tdmVyc2lvbl0g PGNvbW1hbmQ+XG4iOwotIAotIHN0YXRpYyBjaGFyICpwcm9nbmFtZTsKLSAKLUBAIC0xNDAsMjgg KzE0NCw0NCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCWludCBvcHRjOwotIAlp bnQgb3B0aW9uX2RpZmZlcmVuY2VzID0gMCwKLSAJICAgIG9wdGlvbl9kaWZmZXJlbmNlc19jdW11 bGF0aXZlID0gMCwKLSsJCQlvcHRpb25fZXhlYyA9IDAsCi0rCQkJb3B0aW9uX2JlZXAgPSAwLAot KyAgICAgICAgb3B0aW9uX2VycmV4aXQgPSAwLAotIAkgICAgb3B0aW9uX2hlbHAgPSAwLCBvcHRp b25fdmVyc2lvbiA9IDA7Ci0gCWRvdWJsZSBpbnRlcnZhbCA9IDI7Ci0gCWNoYXIgKmNvbW1hbmQ7 Ci0rCWNoYXIgKipjb21tYW5kX2FyZ3Y7Ci0gCWludCBjb21tYW5kX2xlbmd0aCA9IDA7CS8qIG5v dCBpbmNsdWRpbmcgZmluYWwgXDAgKi8KLSsJaW50IHBpcGVmZFsyXTsKLSsJaW50IHN0YXR1czsK LSsJcGlkX3QgY2hpbGQ7Ci0gCi0gCXNldGxvY2FsZShMQ19BTEwsICIiKTsKLSAJcHJvZ25hbWUg PSBhcmd2WzBdOwotIAotLQl3aGlsZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAi K2Q6OmhuOnZ0IiwgbG9uZ29wdHMsIChpbnQgKikgMCkpCi0rCXdoaWxlICgob3B0YyA9IGdldG9w dF9sb25nKGFyZ2MsIGFyZ3YsICIrYmVkOjpobjp2dHgiLCBsb25nb3B0cywgKGludCAqKSAwKSkK LSAJICAgICAgICE9IEVPRikgewotIAkJc3dpdGNoIChvcHRjKSB7Ci0rCQljYXNlICdiJzoKLSsJ CQlvcHRpb25fYmVlcCA9IDE7Ci0rCQkJYnJlYWs7Ci0gCQljYXNlICdkJzoKLSAJCQlvcHRpb25f ZGlmZmVyZW5jZXMgPSAxOwotIAkJCWlmIChvcHRhcmcpCi0gCQkJCW9wdGlvbl9kaWZmZXJlbmNl c19jdW11bGF0aXZlID0gMTsKLSAJCQlicmVhazsKLSsgICAgICAgIGNhc2UgJ2UnOgotKyAgICAg ICAgICAgIG9wdGlvbl9lcnJleGl0ID0gMTsKLSsgICAgICAgICAgICBicmVhazsKLSAJCWNhc2Ug J2gnOgotIAkJCW9wdGlvbl9oZWxwID0gMTsKLSAJCQlicmVhazsKLSAJCWNhc2UgJ3QnOgotIAkJ CXNob3dfdGl0bGUgPSAwOwotIAkJCWJyZWFrOwotKwkJY2FzZSAneCc6Ci0rCQkgIG9wdGlvbl9l eGVjID0gMTsKLSsJCQlicmVhazsKLSAJCWNhc2UgJ24nOgotIAkJCXsKLSAJCQkJY2hhciAqc3Ry OwotQEAgLTE5MSwxOCArMjExLDIzIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAK LSAJaWYgKG9wdGlvbl9oZWxwKSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwgdXNhZ2UsIHByb2duYW1l KTsKLSsJCWZwdXRzKCIgIC1iLCAtLWJlZXBcdFx0XHRcdGJlZXAgaWYgdGhlIGNvbW1hbmQgaGFz IGEgbm9uLXplcm8gZXhpdFxuIiwgc3RkZXJyKTsKLSAJCWZwdXRzKCIgIC1kLCAtLWRpZmZlcmVu Y2VzWz1jdW11bGF0aXZlXVx0aGlnaGxpZ2h0IGNoYW5nZXMgYmV0d2VlbiB1cGRhdGVzXG4iLCBz dGRlcnIpOwotIAkJZnB1dHMoIlx0XHQoY3VtdWxhdGl2ZSBtZWFucyBoaWdobGlnaHRpbmcgaXMg Y3VtdWxhdGl2ZSlcbiIsIHN0ZGVycik7Ci0rCQlmcHV0cygiICAtZSwgLS1lcnJleGl0XHRcdFx0 XHRleGl0IHdhdGNoIGlmIHRoZSBjb21tYW5kIGhhcyBhIG5vbi16ZXJvIGV4aXRcbiIsIHN0ZGVy cik7Ci0gCQlmcHV0cygiICAtaCwgLS1oZWxwXHRcdFx0XHRwcmludCBhIHN1bW1hcnkgb2YgdGhl IG9wdGlvbnNcbiIsIHN0ZGVycik7Ci0gCQlmcHV0cygiICAtbiwgLS1pbnRlcnZhbD08c2Vjb25k cz5cdFx0c2Vjb25kcyB0byB3YWl0IGJldHdlZW4gdXBkYXRlc1xuIiwgc3RkZXJyKTsKLSAJCWZw dXRzKCIgIC12LCAtLXZlcnNpb25cdFx0XHRcdHByaW50IHRoZSB2ZXJzaW9uIG51bWJlclxuIiwg c3RkZXJyKTsKLSAJCWZwdXRzKCIgIC10LCAtLW5vLXRpdGxlXHRcdFx0dHVybnMgb2ZmIHNob3dp bmcgdGhlIGhlYWRlclxuIiwgc3RkZXJyKTsKLSsJCWZwdXRzKCIgIC14LCAtLWV4ZWNcdFx0XHRc dHBhc3MgY29tbWFuZCB0byBleGVjIGluc3RlYWQgb2Ygc2hcbiIsIHN0ZGVycik7Ci0gCQlleGl0 KDApOwotIAl9Ci0gCi0gCWlmIChvcHRpbmQgPj0gYXJnYykKLSAJCWRvX3VzYWdlKCk7Ci0gCi0r CWNvbW1hbmRfYXJndj0mKGFyZ3Zbb3B0aW5kXSk7IC8qIHNhdmUgZm9yIGxhdGVyICovCi0rCi0g CWNvbW1hbmQgPSBzdHJkdXAoYXJndltvcHRpbmQrK10pOwotIAljb21tYW5kX2xlbmd0aCA9IHN0 cmxlbihjb21tYW5kKTsKLSAJZm9yICg7IG9wdGluZCA8IGFyZ2M7IG9wdGluZCsrKSB7Ci1AQCAt MjYxLDExICsyODYsNTcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCWZyZWUo aGVhZGVyKTsKLSAJCX0KLSAKLS0JCWlmICghKHAgPSBwb3Blbihjb21tYW5kLCAiciIpKSkgewot LQkJCXBlcnJvcigicG9wZW4iKTsKLSsJCS8qIGFsbG9jYXRlIHBpcGVzICovCi0rCQlpZiAocGlw ZShwaXBlZmQpPDApIHsKLSsJCSAgcGVycm9yKCJwaXBlIik7Ci0rCQkJZG9fZXhpdCg3KTsKLSsJ ICB9Ci0rCi0rCQkvKiBmbHVzaCBzdGRvdXQgYW5kIHN0ZGVyciwgc2luY2Ugd2UncmUgYWJvdXQg dG8gZG8gZmQgc3R1ZmYgKi8KLSsJCWZmbHVzaChzdGRvdXQpOwotKwkJZmZsdXNoKHN0ZGVycik7 Ci0rCi0rCQkvKiBmb3JrIHRvIHByZXBhcmUgdG8gcnVuIGNvbW1hbmQgKi8KLSsJCWNoaWxkPWZv cmsoKTsKLSsKLSsJCWlmIChjaGlsZDwwKSB7IC8qIGZvcmsgZXJyb3IgKi8KLSsJCSAgcGVycm9y KCJmb3JrIik7Ci0gCQkJZG9fZXhpdCgyKTsKLSsJCX0gZWxzZSBpZiAoY2hpbGQ9PTApIHsgLyog aW4gY2hpbGQgKi8KLSsJCQljbG9zZSAocGlwZWZkWzBdKTsgLyogY2hpbGQgZG9lc24ndCBuZWVk IHJlYWQgc2lkZSBvZiBwaXBlICovCi0rCQkJY2xvc2UgKDEpOyAvKiBwcmVwYXJlIHRvIHJlcGxh Y2Ugc3Rkb3V0IHdpdGggcGlwZSAqLwotKwkJCWlmIChkdXAyIChwaXBlZmRbMV0sIDEpPDApIHsg LyogcmVwbGFjZSBzdGRvdXQgd2l0aCB3cml0ZSBzaWRlIG9mIHBpcGUgKi8KLSsJCQkgIHBlcnJv cigiZHVwMiIpOwotKwkJCQlleGl0KDMpOwotKwkJCX0KLSsJCQlkdXAyKDEsIDIpOyAvKiBzdGRl cnIgc2hvdWxkIGRlZmF1bHQgdG8gc3Rkb3V0ICovCi0rCi0rCQkJaWYgKG9wdGlvbl9leGVjKSB7 IC8qIHBhc3MgY29tbWFuZCB0byBleGVjIGluc3RlYWQgb2Ygc3lzdGVtICovCi0rCQkJICBpZiAo ZXhlY3ZwKGNvbW1hbmRfYXJndlswXSwgY29tbWFuZF9hcmd2KT09LTEpIHsKLSsJCQkJICBwZXJy b3IoImV4ZWMiKTsKLSsJCQkJICBleGl0KDQpOwotKwkJCQl9Ci0rCQkJfSBlbHNlIHsKLSsJCSAg ICBzdGF0dXM9c3lzdGVtKGNvbW1hbmQpOyAvKiB3YXRjaCBtYW5wYWdlIHByb21pc2VzIHNoIHF1 b3RpbmcgKi8KLSsKLSsJCQkgIC8qIHByb3BhZ2F0ZSBjb21tYW5kIGV4aXQgc3RhdHVzIGFzIGNo aWxkIGV4aXQgc3RhdHVzICovCi0rCQkJICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpKSB7IC8qIGNo aWxkIGV4aXRzIG5vbnplcm8gaWYgY29tbWFuZCBkb2VzICovCi0rCQkJICAgIGV4aXQoMSk7Ci0r CQkJICB9IGVsc2UgewotKwkJCSAgICBleGl0KFdFWElUU1RBVFVTKHN0YXR1cykpOwotKwkJICAg IH0KLSsJCQl9Ci0rCi0rCQl9Ci0rCi0rCQkvKiBvdGhlcndpc2UsIHdlJ3JlIGluIHBhcmVudCAq LwotKwkJY2xvc2UocGlwZWZkWzFdKTsgLyogY2xvc2Ugd3JpdGUgc2lkZSBvZiBwaXBlICovCi0r CQlpZiAoKHA9ZmRvcGVuKHBpcGVmZFswXSwgInIiKSk9PU5VTEwpIHsKLSsJCSAgcGVycm9yKCJm ZG9wZW4iKTsKLSsJCQlkb19leGl0KDUpOwotIAkJfQotIAotKwotIAkJZm9yICh5ID0gc2hvd190 aXRsZTsgeSA8IGhlaWdodDsgeSsrKSB7Ci0gCQkJaW50IGVvbHNlZW4gPSAwLCB0YWJwZW5kaW5n ID0gMDsKLSAJCQlmb3IgKHggPSAwOyB4IDwgd2lkdGg7IHgrKykgewotQEAgLTMxMyw3ICszODQs MTkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCW9sZGVvbHNlZW4gPSBlb2xz ZWVuOwotIAkJfQotIAotLQkJcGNsb3NlKHApOwotKwkJZmNsb3NlKHApOwotKwotKwkJLyogaGFy dmVzdCBjaGlsZCBwcm9jZXNzIGFuZCBnZXQgc3RhdHVzLCBwcm9wYWdhdGVkIGZyb20gY29tbWFu ZCAqLwotKwkJaWYgKHdhaXRwaWQoY2hpbGQsICZzdGF0dXMsIDApPDApIHsKLSsJCSAgcGVycm9y KCJ3YWl0cGlkIik7Ci0rCQkJZG9fZXhpdCg4KTsKLSsJCX07Ci0rCi0rCQkvKiBpZiBjaGlsZCBw cm9jZXNzIGV4aXRlZCBpbiBlcnJvciwgYmVlcCBpZiBvcHRpb25fYmVlcCBpcyBzZXQgKi8KLSsJ CWlmICgoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykpKSB7Ci0rICAg ICAgICAgIGlmIChvcHRpb25fYmVlcCkgYmVlcCgpOwotKyAgICAgICAgICBpZiAob3B0aW9uX2Vy cmV4aXQpIGRvX2V4aXQoOCk7Ci0rCQl9Ci0gCi0gCQlmaXJzdF9zY3JlZW4gPSAwOwotIAkJcmVm cmVzaCgpOwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDM3LXBhdGhfbWF4LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzNy1wYXRoX21heC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg2ODQ2Yy4uMDAwMDAwMAotLS0g YS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM3LXBhdGhfbWF4LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsODcgKzAsMCBAQAotRnJvbSAzYmYyMGEwNGRkYmRmNDM1ZTIwYTE5MGRjNDVjYWJiNWQw MmM3YjY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJp YW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRh ci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiAr MDEwMAotU3ViamVjdDogW1BBVENIIDM3LzcwXSBwYXRoX21heAotCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0K LSBwcm9jL3JlYWRwcm9jLmMgfCAgICAyICstCi0gcHdkeC5jICAgICAgICAgIHwgICAyMCArKysr KysrKysrKysrKysrLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgNSBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvcmVhZHByb2MuYyBiL3Byb2MvcmVhZHBy b2MuYwotaW5kZXggMDM4NmE2My4uZDNlODVhMyAxMDA2NDQKLS0tLSBhL3Byb2MvcmVhZHByb2Mu YwotKysrIGIvcHJvYy9yZWFkcHJvYy5jCi1AQCAtMTAzNiw3ICsxMDM2LDcgQEAgcHJvY19kYXRh X3QgKnJlYWRwcm9jdGFiMihpbnQoKndhbnRfcHJvYykocHJvY190ICpidWYpLCBpbnQoKndhbnRf dGFzaykocHJvY190ICoKLSAgKiBhbmQgZmlsbGVkIG91dCBwcm9jX3Qgc3RydWN0dXJlLgotICAq LwotIHByb2NfdCAqIGdldF9wcm9jX3N0YXRzKHBpZF90IHBpZCwgcHJvY190ICpwKSB7Ci0tCXN0 YXRpYyBjaGFyIHBhdGhbUEFUSF9NQVhdLCBzYnVmWzEwMjRdOwotKwlzdGF0aWMgY2hhciBwYXRo WzMyXSwgc2J1ZlsxMDI0XTsKLSAJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKLSAKLSAJc3ByaW50Zihw YXRoLCAiL3Byb2MvJWQiLCBwaWQpOwotZGlmZiAtLWdpdCBhL3B3ZHguYyBiL3B3ZHguYwotaW5k ZXggY2I5NmE1Mi4uM2U4OGYzYyAxMDA2NDQKLS0tLSBhL3B3ZHguYwotKysrIGIvcHdkeC5jCi1A QCAtMzUsNyArMzUsNiBAQCBzdGF0aWMgdm9pZCB2ZXJzaW9uKHZvaWQpCi0gCi0gaW50IG1haW4o aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKLSB7Ci0tICAgICBjaGFyIGJ1ZltQQVRIX01BWCsxXTsK LSAgICAgIHJlZ2V4X3QgcmU7Ci0gICAgICBpbnQgaTsKLSAKLUBAIC01OSw2ICs1OCw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCi0gCi0gICAgICBmb3IgKGkgPSAxOyBpIDwg YXJnYzsgaSsrKSB7Ci0gICAgICAgICAgIGlmIChyZWdleGVjKCZyZSwgYXJndltpXSwgMCwgTlVM TCwgMCkgIT0gMCkgewotKyAgICAgICAgICAgICAgIGNoYXIgYnVmWzI3ICsgc3RybGVuIChhcmd2 W2ldKSArIDFdOyAgLy8gQ29uc3RhbnQgMjcgaXMgdGhlIGxlbmd0aCBvZiB0aGUgZXJyb3Igc3Ry aW5nICJwd2R4OiAuLi4gIgotICAgICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1 ZiwgInB3ZHg6IGludmFsaWQgcHJvY2VzcyBpZDogJXNcbiIsIGFyZ3ZbaV0pOwotICAgICAgICAg ICAgICAgIGRpZShidWYpOwotICAgICAgICAgICB9Ci1AQCAtNjgsOSArNjgsMTMgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKLSAKLSAgICAgIHJlZ2ZyZWUoJnJlKTsKLSAKLSsg ICAgIGludCBhbGxvY2xlbiA9IDEyODsKLSsgICAgIGNoYXIgKnBhdGhidWYgPSBtYWxsb2MoYWxs b2NsZW4pOwotKwotICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgewotLSAgICAgICAg ICBjaGFyICogcyA9IGJ1ZjsKLSsgICAgICAgICAgY2hhciAqIHM7Ci0gICAgICAgICAgIGludCBs ZW47Ci0rICAgICAgICAgIGNoYXIgYnVmWzEwICsgc3RybGVuKGFyZ3ZbaV0pICsgMV07IC8vIENv bnN0YW50IDEwIGlzIHRoZSBsZW5ndGggb2Ygc3RyaW5ncyAiL3Byb2MvIiArICIvY3dkIiArIDEK LSAgICAgICAgICAgCi0gICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGFsbCBhcmd1bWVudHMg YXJlIGluIHRoZSBmb3JtIC9wcm9jL25ubm4KLSAgICAgICAgICAgLy8gb3Igbm5ubiwgc28gYSBz aW1wbGUgY2hlY2sgYmFzZWQgb24gdGhlIGZpcnN0IGNoYXIgaXMKLUBAIC04MiwxNCArODYsMjIg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKLSAKLSAgICAgICAgICAgLy8gYnVm IGNvbnRhaW5zIC9wcm9jL25ubm4vY3dkIHN5bWxpbmsgbmFtZSBvbiBlbnRyeSwgdGhlCi0gICAg ICAgICAgIC8vIHRhcmdldCBvZiB0aGF0IHN5bWxpbmsgb24gcmV0dXJuCi0tICAgICAgICAgIGlm ICgobGVuID0gcmVhZGxpbmsoYnVmLCBidWYsIFBBVEhfTUFYKSkgPCAwKSB7Ci0rICAgICAgICAg IHdoaWxlICgobGVuID0gcmVhZGxpbmsoYnVmLCBwYXRoYnVmLCBhbGxvY2xlbikpID09IGFsbG9j bGVuKSB7Ci0rICAgICAgICAgICAgICAgYWxsb2NsZW4gKj0gMjsKLSsgICAgICAgICAgICAgICBw YXRoYnVmID0gcmVhbGxvYyhwYXRoYnVmLCBhbGxvY2xlbik7Ci0rICAgICAgICAgIH0KLSsKLSsg ICAgICAgICAgaWYgKGxlbiA8IDApIHsKLSAgICAgICAgICAgICAgICBzID0gc3RyZXJyb3IoZXJy bm8gPT0gRU5PRU5UID8gRVNSQ0ggOiBlcnJubyk7Ci0gICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgYnVmW2xlbl0gPSAwOwotKyAgICAgICAgICAgICAgIHBhdGhidWZbbGVuXSA9 IDA7Ci0rICAgICAgICAgICAgICAgcyA9IHBhdGhidWY7Ci0gICAgICAgICAgIH0KLSAKLSAgICAg ICAgICAgcHJpbnRmKCIlczogJXNcbiIsIGFyZ3ZbaV0sIHMpOwotICAgICAgfQotIAotKyAgICAg ZnJlZShwYXRoYnVmKTsKLSsKLSAgICAgIHJldHVybiAwOwotIH0KLS0tIAotMS43LjAKLQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzOC13X2Vudmxlbmd0aC5wYXRjaCBiL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwMzgtd19lbnZsZW5ndGgucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDUwMWU4NmEuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDAzOC13X2Vudmxlbmd0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBA Ci1Gcm9tIGZjYzYzNTgxZGZmMTJiOGQ1NjAzYzA3ODcwOTFhZjFhMWYxZDdjODkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bv b2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlh bi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBb UEFUQ0ggMzgvNzBdIHdfZW52bGVuZ3RoCi0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHcuMSB8ICAgMTAg KysrKysrKysrLQotIHcuYyB8ICAgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyks IDE4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdy4xIGIvdy4xCi1pbmRleCBhMTNjYzgx Li5kNTFlNDkwIDEwMDY0NAotLS0tIGEvdy4xCi0rKysgYi93LjEKLUBAIC0xLDYgKzEsNiBAQAot IC5cIiAgICAgICAgICAgICAtKi1Ocm9mZi0qLQotIC5cIgotLS5USCBXIDEgIjggRGVjIDE5OTMg IiAiICIgIkxpbnV4IFVzZXIncyBNYW51YWwiCi0rLlRIIFcgMSAiNSBPY3RvYmVyIDIwMDkgIiAi ICIgIkxpbnV4IFVzZXIncyBNYW51YWwiCi0gLlNIIE5BTUUKLSB3IFwtIFNob3cgd2hvIGlzIGxv Z2dlZCBvbiBhbmQgd2hhdCB0aGV5IGFyZSBkb2luZy4KLSAuU0ggU1lOT1BTSVMKLUBAIC02MSw2 ICs2MSwxNCBAQCBPbGQgc3R5bGUgb3V0cHV0LiBQcmludHMgYmxhbmsgc3BhY2UgZm9yIGlkbGUg dGltZXMgbGVzcyB0aGFuIG9uZSBtaW51dGUuCi0gLkIgInVzZXIgIgotIFNob3cgaW5mb3JtYXRp b24gYWJvdXQgdGhlIHNwZWNpZmllZCB1c2VyIG9ubHkuCi0gCi0rLlNIIEVOVklST05NRU5UCi0r LlRQCi0rUFJPQ1BTX1VTRVJMRU4KLStPdmVycmlkZSB0aGUgZGVmYXVsdCB3aWR0aCBvZiB0aGUg dXNlcm5hbWUgY29sdW1uLiBEZWZhdWx0cyB0byA4LgotKy5UUAotK1BST0NQU19GUk9NTEVOCi0r T3ZlcnJpZGUgdGhlIGRlZmF1bHQgd2lkdGggb2YgdGhlIGZyb20gY29sdW1uLiBEZWZhdWx0cyB0 byAxNi4KLSsKLSAuU0ggRklMRVMKLSAuVFAKLSAuSSAvdmFyL3J1bi91dG1wCi1kaWZmIC0tZ2l0 IGEvdy5jIGIvdy5jCi1pbmRleCAyMDc3MzM4Li40OGEwMmJlIDEwMDY0NAotLS0tIGEvdy5jCi0r KysgYi93LmMKLUBAIC00NCwyMCArNDQsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgdXRtcCB1dG1wX3Q7 Ci0gLyogVWguLi4gc2FtZSB0aGluZyBhcyBVVF9OQU1FU0laRSAqLwotICNkZWZpbmUgVVNFUlNa IChzaXplb2YgdS0+dXRfdXNlcikKLSAKLSsvKiBBcmJpdGFyeSBzZXR0aW5nLCBub3QgdG9vIGJp ZyBmb3IgdGhlIHNjcmVlbiwgbWF4IGhvc3Qgc2l6ZSAqLwotKyNkZWZpbmUgSE9TVFNaIDQwCi0r Ci0gCi0gLyogVGhpcyByb3V0aW5lIGlzIGNhcmVmdWwgc2luY2Ugc29tZSBwcm9ncmFtcyBsZWF2 ZSB1dG1wIHN0cmluZ3MKLS0gKiB1bnByaW50YWJsZS4gIEFsd2F5cyBvdXRwdXRzIGF0IGxlYXN0 IDE2IGNoYXJzIHBhZGRlZCB3aXRoIHNwYWNlcwotKyAqIHVucHJpbnRhYmxlLiAgQWx3YXlzIG91 dHB1dHMgYXQgbGVhc3QgZnJvbWxlbiBjaGFycyBwYWRkZWQgd2l0aCBzcGFjZXMKLSAgKiBvbiB0 aGUgcmlnaHQgaWYgbmVjZXNzYXJ5LgotICAqLwotLXN0YXRpYyB2b2lkIHByaW50X2hvc3QoY29u c3QgY2hhciAqcmVzdHJpY3QgaG9zdCwgaW50IGxlbikgewotK3N0YXRpYyB2b2lkIHByaW50X2hv c3QoY29uc3QgY2hhciAqcmVzdHJpY3QgaG9zdCwgaW50IGxlbiwgY29uc3QgaW50IGZyb21sZW4p IHsKLSAgICAgY29uc3QgY2hhciAqbGFzdDsKLSAgICAgaW50IHdpZHRoID0gMDsKLSAKLS0gICAg LyogRklYTUU6IHRoZXJlIHNob3VsZCByZWFsbHkgYmUgYSB3YXkgdG8gY29uZmlndXJlIHRoaXMu Li4gKi8KLS0gICAgLyogZm9yIG5vdywgd2UnbGwganVzdCBsaW1pdCBpdCB0byB0aGUgMTYgdGhh dCB0aGUgbGliYzUgdmVyc2lvbgotLSAgICAgKiBvZiB1dG1wIHVzZXMuCi0tICAgICAqLwotLSAg ICBpZiAobGVuID4gMTYpIGxlbiA9IDE2OwotKyAgICBpZiAobGVuID4gZnJvbWxlbikgbGVuID0g ZnJvbWxlbjsKLSAgICAgbGFzdCA9IGhvc3QgKyBsZW47Ci0gICAgIGZvciAoIDsgaG9zdCA8IGxh c3QgOyBob3N0KyspewotICAgICAgICAgaWYgKGlzcHJpbnQoKmhvc3QpICYmICpob3N0ICE9ICcg JykgewotQEAgLTY4LDcgKzY3LDggQEAgc3RhdGljIHZvaWQgcHJpbnRfaG9zdChjb25zdCBjaGFy ICpyZXN0cmljdCBob3N0LCBpbnQgbGVuKSB7Ci0gCX0KLSAgICAgfQotICAgICAvLyBzcGFjZS1m aWxsLCBhbmQgYSAnLScgdG9vIGlmIG5lZWRlZCB0byBlbnN1cmUgdGhlIGNvbHVtbiBleGlzdHMK LS0gICAgaWYod2lkdGggPCAxNikgZnB1dHMoIi0gICAgICAgICAgICAgICAiK3dpZHRoLCBzdGRv dXQpOwotKwl3aGlsZSh3aWR0aCsrIDwgZnJvbWxlbikKLSsJICBmcHV0YygnICcsc3Rkb3V0KTsK LSB9Ci0gCi0gLyoqKioqIGNvbXBhY3QgNyBjaGFyIGZvcm1hdCBmb3IgdGltZSBpbnRlcnZhbHMg KGJlbG9uZ3MgaW4gbGlicHJvYz8pICovCi1AQCAtMTgwLDcgKzE4MCw3IEBAIHN0YXRpYyBjb25z dCBwcm9jX3QgKmdldHByb2MoY29uc3QgdXRtcF90ICpyZXN0cmljdCBjb25zdCB1LCBjb25zdCBj aGFyICpyZXN0cmljCi0gCi0gCi0gLyoqKioqIHNob3dpbmZvICovCi0tc3RhdGljIHZvaWQgc2hv d2luZm8odXRtcF90ICp1LCBpbnQgZm9ybXR5cGUsIGludCBtYXhjbWQsIGludCBmcm9tKSB7Ci0r c3RhdGljIHZvaWQgc2hvd2luZm8odXRtcF90ICp1LCBpbnQgZm9ybXR5cGUsIGludCBtYXhjbWQs IGludCBmcm9tLCBjb25zdCBpbnQgdXNlcmxlbiwgY29uc3QgaW50IGZyb21sZW4pIHsKLSAgICAg dW5zaWduZWQgbG9uZyBsb25nIGpjcHU7Ci0gICAgIGludCB1dF9waWRfZm91bmQ7Ci0gICAgIHVu c2lnbmVkIGk7Ci1AQCAtMjA1LDkgKzIwNSw5IEBAIHN0YXRpYyB2b2lkIHNob3dpbmZvKHV0bXBf dCAqdSwgaW50IGZvcm10eXBlLCBpbnQgbWF4Y21kLCBpbnQgZnJvbSkgewotIAotICAgICBzdHJu Y3B5KHVuYW1lLCB1LT51dF91c2VyLCBVU0VSU1opOwkJLyogZm9yY2UgTlVMIHRlcm0gZm9yIHBy aW50ZiAqLwotICAgICBpZiAoZm9ybXR5cGUpIHsKLS0JcHJpbnRmKCIlLTkuOHMlLTkuOHMiLCB1 bmFtZSwgdS0+dXRfbGluZSk7Ci0rCXByaW50ZigiJS0qLipzJS05LjhzIiwgdXNlcmxlbisxLCB1 c2VybGVuLCB1bmFtZSwgdS0+dXRfbGluZSk7Ci0gCWlmIChmcm9tKQotLQkgICAgcHJpbnRfaG9z dCh1LT51dF9ob3N0LCBzaXplb2YgdS0+dXRfaG9zdCk7Ci0rCSAgICBwcmludF9ob3N0KHUtPnV0 X2hvc3QsIHNpemVvZiB1LT51dF9ob3N0LCBmcm9tbGVuKTsKLSAJcHJpbnRfbG9naW50aW1lKHUt PnV0X3RpbWUsIHN0ZG91dCk7Ci0gCWlmICgqdS0+dXRfbGluZSA9PSAnOicpCQkJLyogaWRsZSB1 bmtub3duIGZvciB4ZG0gbG9naW5zICovCi0gCSAgICBwcmludGYoIiA/eGRtPyAiKTsKLUBAIC0y MjAsOSArMjIwLDkgQEAgc3RhdGljIHZvaWQgc2hvd2luZm8odXRtcF90ICp1LCBpbnQgZm9ybXR5 cGUsIGludCBtYXhjbWQsIGludCBmcm9tKSB7Ci0gCX0gZWxzZQotIAkgICAgcHJpbnRmKCIgICA/ ICAgIik7Ci0gICAgIH0gZWxzZSB7Ci0tCXByaW50ZigiJS05LjhzJS05LjhzIiwgdS0+dXRfdXNl ciwgdS0+dXRfbGluZSk7Ci0rCXByaW50ZigiJS0qLipzJS05LjhzIiwgdXNlcmxlbisxLCB1c2Vy bGVuLCB1LT51dF91c2VyLCB1LT51dF9saW5lKTsKLSAJaWYgKGZyb20pCi0tCSAgICBwcmludF9o b3N0KHUtPnV0X2hvc3QsIHNpemVvZiB1LT51dF9ob3N0KTsKLSsJICAgIHByaW50X2hvc3QodS0+ dXRfaG9zdCwgc2l6ZW9mIHUtPnV0X2hvc3QsIGZyb21sZW4pOwotIAlpZiAoKnUtPnV0X2xpbmUg PT0gJzonKQkJCS8qIGlkbGUgdW5rbm93biBmb3IgeGRtIGxvZ2lucyAqLwotIAkgICAgcHJpbnRm KCIgP3hkbT8gIik7Ci0gCWVsc2UKLUBAIC0yNDUsNiArMjQ1LDkgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgIHV0bXBfdCAqdTsKLSAgICAgc3RydWN0IHdpbnNpemUg d2luOwotICAgICBpbnQgaGVhZGVyPTEsIGxvbmdmb3JtPTEsIGZyb209MSwgYXJncywgbWF4Y21k LCBjaDsKLSsgICAgaW50IHVzZXJsZW4gPSA4OwotKyAgICBpbnQgZnJvbWxlbiA9IDE2OwotKwlj aGFyICplbnZfdmFyOwotIAotICNpZm5kZWYgV19TSE9XRlJPTQotICAgICBmcm9tID0gMDsKLUBA IC0yNzUsNiArMjc4LDIyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAg ICBpZiAoKGFyZ3Zbb3B0aW5kXSkpCi0gCXVzZXIgPSAoYXJndltvcHRpbmRdKTsKLSAKLSsJLyog R2V0IHVzZXIgZmllbGQgbGVuZ3RoIGZyb20gZW52aXJvbm1lbnQgKi8KLSsJaWYgKCAoZW52X3Zh ciA9IGdldGVudigiUFJPQ1BTX1VTRVJMRU4iKSkgIT0gTlVMTCkgewotKyAgICAgICAgdXNlcmxl biA9IGF0b2koZW52X3Zhcik7Ci0rICAgICAgICBpZiAodXNlcmxlbiA8IDggfHwgdXNlcmxlbiA+ IFVTRVJTWikgewotKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVXNlciBsZW5ndGggZW52 aXJvbm1lbnQgUFJPQ1BTX1VTRVJMRU4gbXVzdCBiZSBiZXR3ZWVuIDggYW5kICVkLCBpZ25vcmlu Zy5cbiIsIFVTRVJTWik7Ci0rCQkJdXNlcmxlbj04OwotKyAgICAgICAgfQotKwl9Ci0rCS8qIEdl dCBmcm9tIGZpZWxkIGxlbmd0aCBmcm9tIGVudmlyb25tZW50ICovCi0rCWlmICggKGVudl92YXIg PSBnZXRlbnYoIlBST0NQU19GUk9NTEVOIikpICE9IE5VTEwpIHsKLSsgICAgICAgIGZyb21sZW4g PSBhdG9pKGVudl92YXIpOwotKyAgICAgICAgaWYgKGZyb21sZW4gPCA4IHx8IGZyb21sZW4gPiBI T1NUU1opIHsKLSsgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZyb20gbGVuZ3RoIGVudmly b25tZW50IFBST0NQU19GUk9NTEVOIG11c3QgYmUgYmV0d2VlbiA4IGFuZCAlZCwgaWdub3Jpbmcu XG4iLCBIT1NUU1opOwotKwkJCWZyb21sZW49MTY7Ci0rICAgICAgICB9Ci0rCX0KLSAgICAgaWYg KGlvY3RsKDEsIFRJT0NHV0lOU1osICZ3aW4pICE9IC0xICYmIHdpbi53c19jb2wgPiAwKQotIAlt YXhjbWQgPSB3aW4ud3NfY29sOwotICAgICBlbHNlIGlmIChwID0gZ2V0ZW52KCJDT0xVTU5TIikp Ci1AQCAtMjg1LDcgKzMwNCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewot IAlmcHJpbnRmKHN0ZGVyciwgIiVkIGNvbHVtbiB3aW5kb3cgaXMgdG9vIG5hcnJvd1xuIiwgbWF4 Y21kKTsKLSAJZXhpdCgxKTsKLSAgICAgfQotLSAgICBtYXhjbWQgLT0gMjkgKyAoZnJvbSA/IDE2 IDogMCkgKyAobG9uZ2Zvcm0gPyAyMCA6IDApOwotKyAgICBtYXhjbWQgLT0gMjEgKyB1c2VybGVu ICsgKGZyb20gPyBmcm9tbGVuIDogMCkgKyAobG9uZ2Zvcm0gPyAyMCA6IDApOwotICAgICBpZiAo bWF4Y21kIDwgMykKLSAJZnByaW50ZihzdGRlcnIsICJ3YXJuaW5nOiBzY3JlZW4gd2lkdGggJWQg c3Vib3B0aW1hbC5cbiIsIHdpbi53c19jb2wpOwotIAotQEAgLTI5Myw3ICszMTIsNyBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAKLSAgICAgaWYgKGhlYWRlcikgewkJCQkv KiBwcmludCB1cHRpbWUgYW5kIGhlYWRlcnMgKi8KLSAJcHJpbnRfdXB0aW1lKCk7Ci0tCXByaW50 ZigiVVNFUiAgICAgVFRZICAgICAgIik7Ci0rCXByaW50ZigiJS0qcyBUVFkgICAgICAiLHVzZXJs ZW4sIlVTRVIiKTsKLSAJaWYgKGZyb20pCi0gCSAgICBwcmludGYoIkZST00gICAgICAgICAgICAi KTsKLSAJaWYgKGxvbmdmb3JtKQotQEAgLTMwOSwxNCArMzI4LDE0IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikgewotIAkgICAgdSA9IGdldHV0ZW50KCk7Ci0gCSAgICBpZiAodW5s aWtlbHkoIXUpKSBicmVhazsKLSAJICAgIGlmICh1LT51dF90eXBlICE9IFVTRVJfUFJPQ0VTUykg Y29udGludWU7Ci0tIAkgICAgaWYgKCFzdHJuY21wKHUtPnV0X3VzZXIsIHVzZXIsIFVTRVJTWikp IHNob3dpbmZvKHUsIGxvbmdmb3JtLCBtYXhjbWQsIGZyb20pOwotKyAJICAgIGlmICghc3RybmNt cCh1LT51dF91c2VyLCB1c2VyLCBVU0VSU1opKSBzaG93aW5mbyh1LCBsb25nZm9ybSwgbWF4Y21k LCBmcm9tLCB1c2VybGVuLCBmcm9tbGVuKTsKLSAJfQotICAgICB9IGVsc2UgewotIAlmb3IgKDs7 KSB7Ci0gCSAgICB1ID0gZ2V0dXRlbnQoKTsKLSAJICAgIGlmICh1bmxpa2VseSghdSkpIGJyZWFr OwotIAkgICAgaWYgKHUtPnV0X3R5cGUgIT0gVVNFUl9QUk9DRVNTKSBjb250aW51ZTsKLS0gCSAg ICBpZiAoKnUtPnV0X3VzZXIpIHNob3dpbmZvKHUsIGxvbmdmb3JtLCBtYXhjbWQsIGZyb20pOwot KyAJICAgIGlmICgqdS0+dXRfdXNlcikgc2hvd2luZm8odSwgbG9uZ2Zvcm0sIG1heGNtZCwgZnJv bSwgdXNlcmxlbiwgZnJvbWxlbik7Ci0gCX0KLSAgICAgfQotICAgICBlbmR1dGVudCgpOwotLS0g Ci0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM5LWdudS1rYnNk LXZlcnNpb24ucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDM5LWdudS1rYnNkLXZlcnNp b24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZjA0MTcuLjAwMDAwMDAK LS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDAzOS1nbnUta2JzZC12ZXJzaW9uLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotRnJvbSA5ZjFjYWEzYWU4ZDYzOGIyNDM1NmY0 ZDRlMTJiM2M4OGFhMjQ1MWE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDov L2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44 LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAx MCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDM5LzcwXSBnbnUta2JzZC12ZXJzaW9u Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLQotIHByb2MvdmVyc2lvbi5jIHwgICAyMCArKysrKysrKysrKysr Ky0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvdmVyc2lvbi5jIGIvcHJvYy92ZXJzaW9uLmMKLWluZGV4 IDY5YmFlNGYuLjk2ZmZiN2YgMTAwNjQ0Ci0tLS0gYS9wcm9jL3ZlcnNpb24uYwotKysrIGIvcHJv Yy92ZXJzaW9uLmMKLUBAIC0zNSwxNSArMzUsMjMgQEAgaW50IGxpbnV4X3ZlcnNpb25fY29kZTsK LSAKLSBzdGF0aWMgdm9pZCBpbml0X0xpbnV4X3ZlcnNpb24odm9pZCkgX19hdHRyaWJ1dGVfXygo Y29uc3RydWN0b3IpKTsKLSBzdGF0aWMgdm9pZCBpbml0X0xpbnV4X3ZlcnNpb24odm9pZCkgewot LSAgICBzdGF0aWMgc3RydWN0IHV0c25hbWUgdXRzOwotICAgICBpbnQgeCA9IDAsIHkgPSAwLCB6 ID0gMDsJLyogY2xlYXJlZCBpbiBjYXNlIHNzY2FuZigpIDwgMyAqLwotKyAgICBGSUxFICpmcDsK LSsgICAgY2hhciBidWZbMjU2XTsKLSAgICAgCi0tICAgIGlmICh1bmFtZSgmdXRzKSA9PSAtMSkJ LyogZmFpbHVyZSBpbXBsaWVzIGltcGVuZGluZyBkZWF0aCAqLwotLQlleGl0KDEpOwotLSAgICBp ZiAoc3NjYW5mKHV0cy5yZWxlYXNlLCAiJWQuJWQuJWQiLCAmeCwgJnksICZ6KSA8IDMpCi0rICAg IGlmICggKGZwPWZvcGVuKCIvcHJvYy92ZXJzaW9uIiwiciIpKSA9PSBOVUxMKSAvKiBmYWlsdXJl IGltcGxpZXMgaW1wZW5kaW5nIGRlYXRoICovCi0rICAgICAgZXhpdCgxKTsKLSsgICAgaWYgKGZn ZXRzKGJ1ZiwgMjU2LCBmcCkgPT0gTlVMTCkgewotKyAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2Fu bm90IHJlYWQga2VybmVsIHZlcnNpb24gZnJvbSAvcHJvYy92ZXJzaW9uXG4iKTsKLSsgICAgICBm Y2xvc2UoZnApOwotKyAgICAgIGV4aXQoMSk7Ci0rICAgIH0KLSsgICAgZmNsb3NlKGZwKTsKLSsg ICAgaWYgKHNzY2FuZihidWYsICJMaW51eCB2ZXJzaW9uICVkLiVkLiVkIiwgJngsICZ5LCAmeikg PCAzKQotIAlmcHJpbnRmKHN0ZGVyciwJCS8qICp2ZXJ5KiB1bmxpa2VseSB0byBoYXBwZW4gYnkg YWNjaWRlbnQgKi8KLSAJCSJOb24tc3RhbmRhcmQgdXRzIGZvciBydW5uaW5nIGtlcm5lbDpcbiIK LS0JCSJyZWxlYXNlICVzPSVkLiVkLiVkIGdpdmVzIHZlcnNpb24gY29kZSAlZFxuIiwKLS0JCXV0 cy5yZWxlYXNlLCB4LCB5LCB6LCBMSU5VWF9WRVJTSU9OKHgseSx6KSk7Ci0rICAgICAgICAicmVs ZWFzZSAlcz0lZC4lZC4lZCBnaXZlcyB2ZXJzaW9uIGNvZGUgJWRcbiIsCi0rICAgICAgICBidWYs Ci0rICAgICAgICB4LCB5LCB6LCBMSU5VWF9WRVJTSU9OKHgseSx6KSk7Ci0gICAgIGxpbnV4X3Zl cnNpb25fY29kZSA9IExJTlVYX1ZFUlNJT04oeCwgeSwgeik7Ci0gfQotLS0gCi0xLjcuMAotCmRp ZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQwLXBncmVwX2Nfb3B0aW9uLnBhdGNo IGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0MC1wZ3JlcF9jX29wdGlvbi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZmMmJiNi4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDQwLXBncmVwX2Nfb3B0aW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs OTYgKzAsMCBAQAotRnJvbSAxZWRkYzcxNjE2NDQ4MWVjZTdmZDFjMDA4NTBlOTg5MWI0ZDU1MjY5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3Jn L2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8 aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAot U3ViamVjdDogW1BBVENIIDQwLzcwXSBwZ3JlcF9jX29wdGlvbgotCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0K LSBwZ3JlcC4xIHwgICAgNSArKysrLQotIHBncmVwLmMgfCAgIDIwICsrKysrKysrKysrKysrLS0t LS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvcGdyZXAuMSBiL3BncmVwLjEKLWluZGV4IGFlMmVkYzIuLjkxNTI3OTkg MTAwNjQ0Ci0tLS0gYS9wZ3JlcC4xCi0rKysgYi9wZ3JlcC4xCi1AQCAtNyw3ICs3LDcgQEAKLSBw Z3JlcCwgcGtpbGwgXC0gbG9vayB1cCBvciBzaWduYWwgcHJvY2Vzc2VzIGJhc2VkIG9uIG5hbWUg YW5kIG90aGVyIGF0dHJpYnV0ZXMKLSAKLSAuU0ggU1lOT1BTSVMKLS1wZ3JlcCBbXC1mbHZ4XSBb XC1kIFxmSWRlbGltaXRlclxmUF0gW1wtbnxcLW9dIFtcLVAgXGZJcHBpZFxmUCwuLi5dIFtcLWcg XGZJcGdycFxmUCwuLi5dCi0rcGdyZXAgW1wtY2ZsdnhdIFtcLWQgXGZJZGVsaW1pdGVyXGZQXSBb XC1ufFwtb10gW1wtUCBcZklwcGlkXGZQLC4uLl0gW1wtZyBcZklwZ3JwXGZQLC4uLl0KLSAuYnIK LSAJW1wtcyBcZklzaWRcZlAsLi4uXSBbXC11IFxmSWV1aWRcZlAsLi4uXSBbXC1VIFxmSXVpZFxm UCwuLi5dIFtcLUcgXGZJZ2lkXGZQLC4uLl0KLSAuYnIKLUBAIC0zOCw2ICszOCw5IEBAIHRvIGVh Y2ggcHJvY2VzcyBpbnN0ZWFkIG9mIGxpc3RpbmcgdGhlbSBvbiBzdGRvdXQuCi0gCi0gLlNIIE9Q VElPTlMKLSAuVFAKLStcLWMKLStTdXBwcmVzcyBub3JtYWwgb3V0cHV0OyBpbnN0ZWFkIHByaW50 IGEgY291bnQgb2YgbWF0Y2hpbmcgcHJvY2Vzc2VzLgotKy5UUAotIFwtZCBcZklkZWxpbWl0ZXJc ZlAKLSBTZXRzIHRoZSBzdHJpbmcgdXNlZCB0byBkZWxpbWl0IGVhY2ggcHJvY2VzcyBJRCBpbiB0 aGUgb3V0cHV0IChieQotIGRlZmF1bHQgYSBuZXdsaW5lKS4gIChcZkJwZ3JlcFxmUCBvbmx5LikK LWRpZmYgLS1naXQgYS9wZ3JlcC5jIGIvcGdyZXAuYwotaW5kZXggNjA5Y2FiZC4uMzNjYmVkOCAx MDA2NDQKLS0tLSBhL3BncmVwLmMKLSsrKyBiL3BncmVwLmMKLUBAIC01NCw2ICs1NCw3IEBAIHN0 YXRpYyBpbnQgb3B0X29sZGVzdCA9IDA7Ci0gc3RhdGljIGludCBvcHRfbmV3ZXN0ID0gMDsKLSBz dGF0aWMgaW50IG9wdF9uZWdhdGUgPSAwOwotIHN0YXRpYyBpbnQgb3B0X2V4YWN0ID0gMDsKLStz dGF0aWMgaW50IG9wdF9jb3VudCA9IDA7Ci0gc3RhdGljIGludCBvcHRfc2lnbmFsID0gU0lHVEVS TTsKLSBzdGF0aWMgaW50IG9wdF9sb2NrID0gMDsKLSBzdGF0aWMgaW50IG9wdF9jYXNlID0gMDsK LUBAIC03OSw3ICs4MCw3IEBAIHN0YXRpYyBpbnQgdXNhZ2UgKGludCBvcHQpCi0gCWlmIChpX2Ft X3BraWxsKQotIAkJZnByaW50ZiAoZnAsICJVc2FnZTogcGtpbGwgWy1TSUdOQUxdIFstZnZ4XSAi KTsKLSAJZWxzZQotLQkJZnByaW50ZiAoZnAsICJVc2FnZTogcGdyZXAgWy1mbHZ4XSBbLWQgREVM SU1dICIpOwotKwkJZnByaW50ZiAoZnAsICJVc2FnZTogcGdyZXAgWy1jZmx2eF0gWy1kIERFTElN XSAiKTsKLSAJZnByaW50ZiAoZnAsICJbLW58LW9dIFstUCBQUElETElTVF0gWy1nIFBHUlBMSVNU XSBbLXMgU0lETElTVF1cbiIKLSAJCSAiXHRbLXUgRVVJRExJU1RdIFstVSBVSURMSVNUXSBbLUcg R0lETElTVF0gWy10IFRFUk1MSVNUXSAiCi0gCQkgIltQQVRURVJOXVxuIik7Ci1AQCAtNTY1LDcg KzU2Niw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX29wdHMgKGludCBhcmdjLCBjaGFyICoqYXJndikK LSAJCXN0cmNhdCAob3B0cywgImxkOiIpOwotIAl9Ci0gCQkJCi0tCXN0cmNhdCAob3B0cywgIkxG OmZub3Z4UDpnOnM6dTpVOkc6dDo/ViIpOwotKwlzdHJjYXQgKG9wdHMsICJMRjpjZm5vdnhQOmc6 czp1OlU6Rzp0Oj9WIik7Ci0gCQotIAl3aGlsZSAoKG9wdCA9IGdldG9wdCAoYXJnYywgYXJndiwg b3B0cykpICE9IC0xKSB7Ci0gCQlzd2l0Y2ggKG9wdCkgewotQEAgLTYxMyw2ICs2MTQsOSBAQCBz dGF0aWMgdm9pZCBwYXJzZV9vcHRzIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCQkJZXhpdChF WElUX1NVQ0NFU1MpOwotIC8vCQljYXNlICdjJzogICAvLyBTb2xhcmlzOiBtYXRjaCBieSBjb250 cmFjdCBJRAotIC8vCQkJYnJlYWs7Ci0rICAgICAgICBjYXNlICdjJzoKLSsgICAgICAgICAgICBv cHRfY291bnQgPSAxOwotKyAgICAgICAgICAgIGJyZWFrOwotIAkJY2FzZSAnZCc6ICAgLy8gU29s YXJpczogY2hhbmdlIHRoZSBkZWxpbWl0ZXIKLSAJCQlvcHRfZGVsaW0gPSBzdHJkdXAgKG9wdGFy Zyk7Ci0gCQkJYnJlYWs7Ci1AQCAtNzI0LDEwICs3MjgsMTQgQEAgaW50IG1haW4gKGludCBhcmdj LCBjaGFyICphcmd2W10pCi0gCQkJCSBwcm9jc1tpXS5udW0sIHN0cmVycm9yIChlcnJubykpOwot IAkJfQotIAl9IGVsc2UgewotLQkJaWYgKG9wdF9sb25nKQotLQkJCW91dHB1dF9zdHJsaXN0KHBy b2NzLG51bSk7Ci0tCQllbHNlCi0tCQkJb3V0cHV0X251bWxpc3QocHJvY3MsbnVtKTsKLSsJCWlm IChvcHRfY291bnQpIHsKLSsJCQlmcHJpbnRmKHN0ZG91dCwgIiVsZFxuIiwgbnVtKTsKLSsJCX0g ZWxzZSB7Ci0rCQkJaWYgKG9wdF9sb25nKQotKwkJCQlvdXRwdXRfc3RybGlzdCAocHJvY3MsbnVt KTsKLSsJCQllbHNlCi0rCQkJCW91dHB1dF9udW1saXN0IChwcm9jcyxudW0pOwotKwkJfQotIAl9 Ci0gCXJldHVybiAhbnVtOyAvLyBleGl0KEVYSVRfU1VDQ0VTUykgaWYgbWF0Y2gsIG90aGVyd2lz ZSBleGl0KEVYSVRfRkFJTFVSRSkKLSB9Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNo ZXMvcHJvY3BzLTMuMi44LzAwNDEtcHNfY2dyb3VwX2Rpc3BsYXkucGF0Y2ggYi9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDQxLXBzX2Nncm91cF9kaXNwbGF5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAzZTFhMzQ2Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNDEtcHNfY2dyb3VwX2Rpc3BsYXkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAs MCBAQAotRnJvbSBlNGViNDY4ZWE0MWY5MTJhMGQ3NmMxOTRjMDY1NDk0NDllMjFlYThjIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlh bi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0Bk ZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVj dDogW1BBVENIIDQxLzcwXSBwc19jZ3JvdXBfZGlzcGxheQotCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBw cm9jL3JlYWRwcm9jLmMgfCAgIDE1ICsrKysrKysrKysrKysrLQotIHByb2MvcmVhZHByb2MuaCB8 ICAgIDMgKysrCi0gcHMvZGlzcGxheS5jICAgIHwgICAxMSArKysrKysrLS0tLQotIHBzL291dHB1 dC5jICAgICB8ICAgMjMgKysrKysrKysrKysrKysrKysrKysrKy0KLSA0IGZpbGVzIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3Jl YWRwcm9jLmMgYi9wcm9jL3JlYWRwcm9jLmMKLWluZGV4IGQzZTg1YTMuLjE5ZDk5YjIgMTAwNjQ0 Ci0tLS0gYS9wcm9jL3JlYWRwcm9jLmMKLSsrKyBiL3Byb2MvcmVhZHByb2MuYwotQEAgLTU5OCw2 ICs1OTgsMTcgQEAgc3RhdGljIHByb2NfdCogc2ltcGxlX3JlYWRwcm9jKFBST0NUQUIgKnJlc3Ry aWN0IGNvbnN0IFBULCBwcm9jX3QgKnJlc3RyaWN0IGNvbnMKLSAJcC0+ZW52aXJvbiA9IGZpbGUy c3RydmVjKHBhdGgsICJlbnZpcm9uIik7Ci0gICAgIGVsc2UKLSAgICAgICAgIHAtPmVudmlyb24g PSBOVUxMOwotKwotKyAgICBpZihsaW51eF92ZXJzaW9uX2NvZGU+PUxJTlVYX1ZFUlNJT04oMiw2 LDI0KSAmJiAoZmxhZ3MgJiBQUk9DX0ZJTExDR1JPVVApKSB7Ci0rCXAtPmNncm91cCA9IGZpbGUy c3RydmVjKHBhdGgsICJjZ3JvdXAiKTsgCS8qIHJlYWQgL3Byb2MvIy9jZ3JvdXAgKi8KLSsgICAg CWlmKHAtPmNncm91cCAmJiAqcC0+Y2dyb3VwKSB7Ci0rCQlpbnQgaSA9IHN0cmxlbigqcC0+Y2dy b3VwKTsKLSsJCWlmKCAoKnAtPmNncm91cClbaS0xXT09J1xuJyApCi0rCQkJKCpwLT5jZ3JvdXAp W2ktMV0gPSAnICc7IC8vbGl0dGxlIGhhY2sgdG8gcmVtb3ZlIHRyYWlsaW5nIFxuCi0rCX0KLSsg ICAgfQotKyAgICBlbHNlCi0rCXAtPmNncm91cCA9IE5VTEw7Ci0gICAgIAotICAgICByZXR1cm4g cDsKLSBuZXh0X3Byb2M6Ci1AQCAtNjg2LDcgKzY5Nyw3IEBAIHN0YXRpYyBwcm9jX3QqIHNpbXBs ZV9yZWFkdGFzayhQUk9DVEFCICpyZXN0cmljdCBjb25zdCBQVCwgY29uc3QgcHJvY190ICpyZXN0 cmljCi0gICAgIHQtPmNtZGxpbmUgPSBwLT5jbWRsaW5lOyAgLy8gYmV0dGVyIG5vdCBmcmVlIHRo ZXNlIHVudGlsIGRvbmUgd2l0aCBhbGwgdGhyZWFkcyEKLSAgICAgdC0+ZW52aXJvbiA9IHAtPmVu dmlyb247Ci0gI2VuZGlmCi0tCi0rICAgIHQtPmNncm91cCA9IHAtPmNncm91cDsKLSAgICAgdC0+ cHBpZCA9IHAtPnBwaWQ7ICAvLyBvdWdodCB0byBwdXQgdGhlIHBlci10YXNrIHBwaWQgc29tZXdo ZXJlCi0gCi0gICAgIHJldHVybiB0OwotQEAgLTg5Niw2ICs5MDcsOCBAQCB2b2lkIGZyZWVwcm9j KHByb2NfdCogcCkgewotIAlmcmVlKCh2b2lkKikqcC0+Y21kbGluZSk7Ci0gICAgIGlmIChwLT5l bnZpcm9uKQotIAlmcmVlKCh2b2lkKikqcC0+ZW52aXJvbik7Ci0rICAgIGlmIChwLT5jZ3JvdXAp Ci0rCWZyZWUoKHZvaWQqKSpwLT5jZ3JvdXApOwotICAgICBmcmVlKHApOwotIH0KLSAKLWRpZmYg LS1naXQgYS9wcm9jL3JlYWRwcm9jLmggYi9wcm9jL3JlYWRwcm9jLmgKLWluZGV4IGE5NTNiMjku LjNhOWFlY2YgMTAwNjQ0Ci0tLS0gYS9wcm9jL3JlYWRwcm9jLmgKLSsrKyBiL3Byb2MvcmVhZHBy b2MuaAotQEAgLTEzOSw2ICsxMzksNyBAQCB0eXBlZGVmIHN0cnVjdCBwcm9jX3QgewotIAl0cGdp ZCwJCS8vIHN0YXQgICAgICAgICAgICB0ZXJtaW5hbCBwcm9jZXNzIGdyb3VwIGlkCi0gCWV4aXRf c2lnbmFsLAkvLyBzdGF0ICAgICAgICAgICAgbWlnaHQgbm90IGJlIFNJR0NITEQKLSAJcHJvY2Vz c29yOyAgICAgIC8vIHN0YXQgICAgICAgICAgICBjdXJyZW50IChvciBtb3N0IHJlY2VudD8pIENQ VQotKyAgICAJY2hhciAqKmNncm91cDsgIC8vIGNncm91cAkgICBjdXJyZW50IGNncm91cCwgbG9v a3MgbGlrZSBhIGNsYXNzaWMgZmlsZXBhdGgKLSB9IHByb2NfdDsKLSAKLSAvLyBQUk9DVEFCOiBk YXRhIHN0cnVjdHVyZSBob2xkaW5nIHRoZSBwZXJzaXN0ZW50IGluZm9ybWF0aW9uIHJlYWRwcm9j IG5lZWRzCi1AQCAtMjM5LDYgKzI0MCw4IEBAIGV4dGVybiBwcm9jX3QgKiBnZXRfcHJvY19zdGF0 cyhwaWRfdCBwaWQsIHByb2NfdCAqcCk7Ci0gCi0gI2RlZmluZSBQUk9DX0xPT1NFX1RBU0tTICAg ICAweDAyMDAgLy8gdGhyZWF0IHRocmVhZHMgYXMgaWYgdGhleSB3ZXJlIHByb2Nlc3NlcwotIAot KyNkZWZpbmUgUFJPQ19GSUxMQ0dST1VQICAgICAgMHgwNDAwIC8vIGFsbG9jIGFuZCBmaWxsIGlu IGBjZ3JvdXBgCi0rCi0gLy8gT2Jzb2xldGUsIGNvbnNpZGVyIG9ubHkgcHJvY2Vzc2VzIHdpdGgg b25lIG9mIHRoZSBwYXNzZWQ6Ci0gI2RlZmluZSBQUk9DX1BJRCAgICAgICAgICAgICAweDEwMDAg IC8vIHByb2Nlc3MgaWQgbnVtYmVycyAoIDAgICB0ZXJtaW5hdGVkKQotICNkZWZpbmUgUFJPQ19V SUQgICAgICAgICAgICAgMHg0MDAwICAvLyB1c2VyIGlkIG51bWJlcnMgICAgKCBsZW5ndGggbmVl ZGVkICkKLWRpZmYgLS1naXQgYS9wcy9kaXNwbGF5LmMgYi9wcy9kaXNwbGF5LmMKLWluZGV4IDQ1 NzRiOWMuLjNkNmJiZGUgMTAwNjQ0Ci0tLS0gYS9wcy9kaXNwbGF5LmMKLSsrKyBiL3BzL2Rpc3Bs YXkuYwotQEAgLTIyMyw4ICsyMjMsNyBAQCBzdGF0aWMgdW5zaWduZWQgdGFza19mb3JtYXRfbmVl ZHM7Ci0gCi0gI2RlZmluZSBuZWVkc19mb3JfZm9ybWF0IChwcm9jX2Zvcm1hdF9uZWVkc3x0YXNr X2Zvcm1hdF9uZWVkcykKLSAKLS0jZGVmaW5lIFBST0NfT05MWV9GTEFHUyAoUFJPQ19GSUxMRU5W fFBST0NfRklMTEFSR3xQUk9DX0ZJTExDT018UFJPQ19GSUxMTUVNKQotLQotKyNkZWZpbmUgUFJP Q19PTkxZX0ZMQUdTIChQUk9DX0ZJTExFTlZ8UFJPQ19GSUxMQVJHfFBST0NfRklMTENPTXxQUk9D X0ZJTExNRU18UFJPQ19GSUxMQ0dST1VQKQotIC8qKioqKiBtdW5nZSBsaXN0cyBhbmQgZGV0ZXJt aW5lIG9wZW5wcm9jKCkgZmxhZ3MgKi8KLSBzdGF0aWMgdm9pZCBsaXN0c19hbmRfbmVlZHModm9p ZCl7Ci0gICBjaGVja19oZWFkZXJzKCk7Ci1AQCAtMzQyLDYgKzM0MSw3IEBAIHN0YXRpYyB2b2lk IHNpbXBsZV9zcGV3KHZvaWQpewotICAgICAgIH0KLSAgICAgICBpZihidWYuY21kbGluZSkgZnJl ZSgodm9pZCopKmJ1Zi5jbWRsaW5lKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYu ZW52aXJvbikgZnJlZSgodm9pZCopKmJ1Zi5lbnZpcm9uKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSsg ICAgICBpZihidWYuY2dyb3VwKSAgZnJlZSgodm9pZCopKmJ1Zi5jZ3JvdXApOwotICAgICB9Ci0g ICAgIGJyZWFrOwotICAgY2FzZSBURl9zaG93X3Byb2N8VEZfbG9vc2VfdGFza3M6ICAgIC8vIEgg b3B0aW9uCi1AQCAtMzU0LDYgKzM1NCw3IEBAIHN0YXRpYyB2b2lkIHNpbXBsZV9zcGV3KHZvaWQp ewotICAgICAgIH0KLSAgICAgICBpZihidWYuY21kbGluZSkgZnJlZSgodm9pZCopKmJ1Zi5jbWRs aW5lKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYuZW52aXJvbikgZnJlZSgodm9p ZCopKmJ1Zi5lbnZpcm9uKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSsgICAgICBpZihidWYuY2dyb3Vw KSAgZnJlZSgodm9pZCopKmJ1Zi5jZ3JvdXApOwotICAgICB9Ci0gICAgIGJyZWFrOwotICAgY2Fz ZSBURl9zaG93X3Byb2N8VEZfc2hvd190YXNrOiAgICAgIC8vIG0gYW5kIC1tIG9wdGlvbnMKLUBA IC0zNjYsNyArMzY3LDggQEAgc3RhdGljIHZvaWQgc2ltcGxlX3NwZXcodm9pZCl7Ci0gICAgICAg fQotICAgICAgIGlmKGJ1Zi5jbWRsaW5lKSBmcmVlKCh2b2lkKikqYnVmLmNtZGxpbmUpOyAvLyBv dWdodCB0byByZXVzZQotICAgICAgIGlmKGJ1Zi5lbnZpcm9uKSBmcmVlKCh2b2lkKikqYnVmLmVu dmlyb24pOyAvLyBvdWdodCB0byByZXVzZQotLSAgICB9Ci0rICAgICAgaWYoYnVmLmNncm91cCkg IGZyZWUoKHZvaWQqKSpidWYuY2dyb3VwKTsKLSsgICAgIH0KLSAgICAgYnJlYWs7Ci0gICBjYXNl IFRGX3Nob3dfdGFzazogICAgICAgICAgICAgICAgICAgLy8gLUwgYW5kIC1UIG9wdGlvbnMKLSAg ICAgd2hpbGUocmVhZHByb2MocHRwLCZidWYpKXsKLUBAIC0zNzcsNyArMzc5LDggQEAgc3RhdGlj IHZvaWQgc2ltcGxlX3NwZXcodm9pZCl7Ci0gICAgICAgfQotICAgICAgIGlmKGJ1Zi5jbWRsaW5l KSBmcmVlKCh2b2lkKikqYnVmLmNtZGxpbmUpOyAvLyBvdWdodCB0byByZXVzZQotICAgICAgIGlm KGJ1Zi5lbnZpcm9uKSBmcmVlKCh2b2lkKikqYnVmLmVudmlyb24pOyAvLyBvdWdodCB0byByZXVz ZQotLSAgICB9Ci0rICAgICAgaWYoYnVmLmNncm91cCkgIGZyZWUoKHZvaWQqKSpidWYuY2dyb3Vw KTsKLSsgICB9Ci0gICAgIGJyZWFrOwotICAgfQotICAgY2xvc2Vwcm9jKHB0cCk7Ci1kaWZmIC0t Z2l0IGEvcHMvb3V0cHV0LmMgYi9wcy9vdXRwdXQuYwotaW5kZXggYjRmYjNkZi4uYTE2NWVkNSAx MDA2NDQKLS0tLSBhL3BzL291dHB1dC5jCi0rKysgYi9wcy9vdXRwdXQuYwotQEAgLTM3Niw2ICsz NzYsMjYgQEAgc3RhdGljIGludCBwcl9hcmdzKGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1Ziwg Y29uc3QgcHJvY190ICpyZXN0cmljdCBjb25zdCBwcCkKLSAgIHJldHVybiBtYXhfcmlnaHR3YXJk LXJpZ2h0d2FyZDsKLSB9Ci0gCi0rc3RhdGljIGludCBwcl9jZ3JvdXAoY2hhciAqcmVzdHJpY3Qg Y29uc3Qgb3V0YnVmLGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QgcHApIHsKLSsgaWYocHAt PmNncm91cCAmJiAqcHAtPmNncm91cCkgewotKyAgIGNoYXIgKmVuZHAgPSBvdXRidWY7Ci0rICAg aW50IHJpZ2h0d2FyZD1tYXhfcmlnaHR3YXJkOwotKyAgIGlmKGZvcmVzdF9wcmVmaXgpewotKyAg ICAgICBpbnQgZmggPSBmb3Jlc3RfaGVscGVyKG91dGJ1Zik7Ci0rICAgICAgIGVuZHAgKz0gZmg7 Ci0rICAgICAgIHJpZ2h0d2FyZCAtPSBmaDsKLSsgICB9Ci0rICAgaWYocmlnaHR3YXJkPjEpewot KyAgICAgKmVuZHArKyA9ICcgJzsKLSsgICAgIHJpZ2h0d2FyZC0tOwotKyAgICAgZW5kcCArPSBl c2NhcGVfc3RyKGVuZHAsICpwcC0+Y2dyb3VwLCBPVVRCVUZfU0laRSwgJnJpZ2h0d2FyZCk7Ci0r ICAgfQotKyAgIHJldHVybiBtYXhfcmlnaHR3YXJkLXJpZ2h0d2FyZDsKLSsgfQotKyBlbHNlCi0r ICAgcmV0dXJuIHByX25vcChvdXRidWYscHApOwotK30KLSsKLSAvKiAidWNvbW0iIGlzIHRoZSBz YW1lIHRoaW5nOiBzaG9ydCB1bmxlc3MgLWYgKi8KLSBzdGF0aWMgaW50IHByX2NvbW0oY2hhciAq cmVzdHJpY3QgY29uc3Qgb3V0YnVmLCBjb25zdCBwcm9jX3QgKnJlc3RyaWN0IGNvbnN0IHBwKXsK LSAgIGNoYXIgKmVuZHAgPSBvdXRidWY7Ci1AQCAtMTI3NCw3ICsxMjk0LDcgQEAgc3RhdGljIGlu dCBwcl90X2xlZnQyKGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1ZiwgY29uc3QgcHJvY190ICpy ZXN0cmljdCBjb25zdAotICNkZWZpbmUgR1JQIFBST0NfRklMTEdSUCAgICAgLyogZ2lkX3QgLT4g Z3JvdXAgbmFtZXMgKi8KLSAjZGVmaW5lIFdDSCBQUk9DX0ZJTExXQ0hBTiAgIC8qIGRvIFdDSEFO IGxvb2t1cCAqLwotIAotLQotKyNkZWZpbmUgQ0dSUCBQUk9DX0ZJTExDR1JPVVAgLyogcmVhZCBj Z3JvdXAgKi8KLSAvKiBUT0RPCi0gICogICAgICBwdWxsIG91dCBhbm5veWluZyBCU0QgYWxpYXNl cyBpbnRvIGFub3RoZXIgdGFibGUgKHRvIG1hY3JvIHRhYmxlPykKLSAgKiAgICAgIGFkZCBzb3J0 aW5nIGZ1bmN0aW9ucyBoZXJlICh0byB1bmlmeSBuYW1lcykKLUBAIC0xMzEwLDYgKzEzMzAsNyBA QCBzdGF0aWMgY29uc3QgZm9ybWF0X3N0cnVjdCBmb3JtYXRfYXJyYXlbXSA9IHsKLSB7ImJzZHRp bWUiLCAgICJUSU1FIiwgICAgcHJfYnNkdGltZSwgIHNyX25vcCwgICAgIDYsICAgMCwgICAgTE5Y LCBFVHxSSUdIVH0sCi0geyJjIiwgICAgICAgICAiQyIsICAgICAgIHByX2MsICAgICAgICBzcl9w Y3B1LCAgICAyLCAgIDAsICAgIFNVTiwgRVR8UklHSFR9LAotIHsiY2F1Z2h0IiwgICAgIkNBVUdI VCIsICBwcl9zaWdjYXRjaCwgc3Jfbm9wLCAgICAgOSwgICAwLCAgICBCU0QsIFRPfFNJR05BTH0s IC8qc2lnY2F0Y2gqLwotK3siY2dyb3VwIiwgICAgIkNHUk9VUCIsICBwcl9jZ3JvdXAsICAgICBz cl9ub3AsICAgICAyNywgQ0dSUCwgIExOWCwgUE98VU5MSU1JVEVEfSwKLSB7ImNsYXNzIiwgICAg ICJDTFMiLCAgICAgcHJfY2xhc3MsICAgIHNyX3NjaGVkLCAgIDMsICAgMCwgICAgWFhYLCBUT3xM RUZUfSwKLSB7ImNscyIsICAgICAgICJDTFMiLCAgICAgcHJfY2xhc3MsICAgIHNyX3NjaGVkLCAg IDMsICAgMCwgICAgSFBVLCBUT3xSSUdIVH0sIC8qc2F5cyBIUFVYIG9yIFJUKi8KLSB7ImNtYWpf Zmx0IiwgICItIiwgICAgICAgcHJfbm9wLCAgICAgIHNyX2NtYWpfZmx0LCAxLCAgMCwgICAgTE5Y LCBBTnxSSUdIVH0sCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMu Mi44LzAwNDItd2F0Y2hfcHJlY2lzaW9uX3RpbWUucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIu OC8wMDQyLXdhdGNoX3ByZWNpc2lvbl90aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhNWMwNDdkLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDIt d2F0Y2hfcHJlY2lzaW9uX3RpbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMjYgKzAsMCBA QAotRnJvbSA2YzY5MTljMjgzYzc4YjQ1MzMyMGMzNDQ4ODlkZTU4OTI0NDliMTFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9w b29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJp YW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDog W1BBVENIIDQyLzcwXSB3YXRjaF9wcmVjaXNpb25fdGltZQotCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSB3 YXRjaC4xIHwgICA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0KLSB3YXRjaC5jIHwgICAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvd2F0Y2guMSBiL3dhdGNoLjEKLWluZGV4IDgwMmFiODQuLjQwZTZjOGUg MTAwNjQ0Ci0tLS0gYS93YXRjaC4xCi0rKysgYi93YXRjaC4xCi1AQCAtNCw3ICs0LDcgQEAgd2F0 Y2ggXC0gZXhlY3V0ZSBhIHByb2dyYW0gcGVyaW9kaWNhbGx5LCBzaG93aW5nIG91dHB1dCBmdWxs c2NyZWVuCi0gLlNIIFNZTk9QU0lTCi0gLm5hCi0gLkIgd2F0Y2gKLS0uUkIgWyBcLWJkZWh2dHgg XQotKy5SQiBbIFwtYmRlaHB2dHggXQotIC5SQiBbIFwtbgotIC5JUiBzZWNvbmRzIF0KLSAuUkIg WyBcLVwtYmVlcCBdCi1AQCAtMTQsNiArMTQsNyBAQCB3YXRjaCBcLSBleGVjdXRlIGEgcHJvZ3Jh bSBwZXJpb2RpY2FsbHksIHNob3dpbmcgb3V0cHV0IGZ1bGxzY3JlZW4KLSAuUkIgWyBcLVwtaGVs cCBdCi0gLlJCIFsgXC1cLWludGVydmFsPVxmSXNlY29uZHNcZlBdCi0gLlJCIFsgXC1cLW5vXC10 aXRsZSBdCi0rLlJCIFsgXC1cLXByZWNpc2UgXQotIC5SQiBbIFwtXC12ZXJzaW9uIF0KLSAuSSBj b21tYW5kCi0gLlNIIERFU0NSSVBUSU9OCi1AQCAtMjcsNyArMjgsMjQgQEAgZXZlcnkgMiBzZWNv bmRzOyB1c2UKLSAuQiBcLW4KLSBvcgotIC5CIFwtXC1pbnRlcnZhbAotLXRvIHNwZWNpZnkgYSBk aWZmZXJlbnQgaW50ZXJ2YWwuCi0rdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBpbnRlcnZhbC4gTm9y bWFsbHksIHRoaXMgaW50ZXJ2YWwgaXMgaW50ZXJwcmV0ZWQKLSthcyB0aGUgYW1vdXQgb2YgdGlt ZSBiZXR3ZWVuIHRoZSBjb21wbGV0aW9uIG9mIG9uZSBydW4gb2YKLSsuSSBjb21tYW5kCi0rYW5k IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgcnVuLiBIb3dldmVyLCB3aXRoIHRoZQotKy5JIFwt cAotK29yCi0rLkkgXC1cLXByZWNpc2UKLStvcHRpb24sIHlvdSBjYW4gbWFrZQotKy5CUiB3YXRj aAotK2F0dGVtcHQgdG8gcnVuCi0rLkkgY29tbWFuZAotK2V2ZXJ5Ci0rLkkgaW50ZXJ2YWwKLStz ZWNvbmRzLiBUcnkgaXQgd2l0aAotKy5CIG50cHRpbWUKLSthbmQgbm90aWNlIGhvdyB0aGUgZnJh Y3Rpb25hbCBzZWNvbmRzIHN0YXlzCi0rKG5lYXJseSkgdGhlIHNhbWUsIGFzIG9wcG9zZWQgdG8g bm9ybWFsIG1vZGUgd2hlcmUgdGhleSBjb250aW51b3VzbHkKLStpbmNyZWFzZS4KLSAuUFAKLSBU aGUKLSAuQiBcLWQKLUBAIC05NywxMSArMTE1LDIxIEBAIHdhdGNoIGVjaG8gJyQkJwotIC5icgot IHdhdGNoIGVjaG8gIiciJyQkJyInIgotIC5QUAotK1RvIHNlZSB0aGUgZWZmZWN0IG9mIHByZWNp c2lvbiB0aW1lIGtlZXBpbmcsIHRyeSBhZGRpbmcKLSsuSSBcLXAKLSt0bwotKy5JUAotK3dhdGNo IFwtbiAxMCBzbGVlcCAxCi0rLlBQCi0gWW91IGNhbiB3YXRjaCBmb3IgeW91ciBhZG1pbmlzdHJh dG9yIHRvIGluc3RhbGwgdGhlIGxhdGVzdCBrZXJuZWwgd2l0aAotIC5JUAotIHdhdGNoIHVuYW1l IFwtcgotIC5QUAotLShKdXN0IGtpZGRpbmcuKQotKyhOb3RlIHRoYXQKLSsuSSBcLXAKLStpc24n dCBndWFyYW50ZWVkIHRvIHdvcmsgYWNyb3NzIHJlYm9vdHMsIGVzcGVjaWFsbHkgaW4gdGhlIGZh Y2Ugb2YKLSsuQiBudHBkYXRlCi0rb3Igb3RoZXIgYm9vdHVwIHRpbWUtY2hhbmdpbmcgbWVjaGFu aXNtcykKLSAuU0ggQlVHUwotIFVwb24gdGVybWluYWwgcmVzaXplLCB0aGUgc2NyZWVuIHdpbGwg bm90IGJlIGNvcnJlY3RseSByZXBhaW50ZWQgdW50aWwgdGhlCi0gbmV4dCBzY2hlZHVsZWQgdXBk YXRlLiAgQWxsCi1AQCAtMTEwLDYgKzEzOCwyMiBAQCBoaWdobGlnaHRpbmcgaXMgbG9zdCBvbiB0 aGF0IHVwZGF0ZSBhcyB3ZWxsLgotIC5QUAotIE5vbi1wcmludGluZyBjaGFyYWN0ZXJzIGFyZSBz dHJpcHBlZCBmcm9tIHByb2dyYW0gb3V0cHV0LiAgVXNlICJjYXQgLXYiIGFzCi0gcGFydCBvZiB0 aGUgY29tbWFuZCBwaXBlbGluZSBpZiB5b3Ugd2FudCB0byBzZWUgdGhlbS4KLSsuUFAKLSsuSSBc LVwtcHJlY2lzZQotK21vZGUgZG9lc24ndCB5ZXQgaGF2ZSBhZHZhbmNlZCB0ZW1wb3JhbCBkaXN0 b3J0aW9uIHRlY2hub2xvZ3kgdG8KLStjb21wZW5zYXRlIGZvciBhCi0rLkkgY29tbWFuZAotK3Ro YXQgdGFrZXMgbW9yZSB0aGFuCi0rLkkgaW50ZXJ2YWwKLStzZWNvbmRzIHRvIGV4ZWN1dGUuCi0r LkIgd2F0Y2gKLSthbHNvIGNhbiBnZXQgaW50byBhIHN0YXRlIHdoZXJlIGl0IHJhcGlkLWZpcmVz IGFzIG1hbnkgZXhlY3V0aW9ucyBvZgotKy5JIGNvbW1hbmQKLSthcyBpdCBjYW4gdG8gY2F0Y2gg dXAgZnJvbSBhIHByZXZpb3VzIGV4ZWN1dGlvbnMgcnVubmluZyBsb25nZXIgdGhhbgotKy5JIGlu dGVydmFsCi0rKGZvciBleGFtcGxlLAotKy5CIG5ldHN0YXQKLSt0YWtpbmcgYWdlcyBvbiBhIERO UyBsb29rdXApLgotIC5TSCBBVVRIT1JTCi0gVGhlIG9yaWdpbmFsCi0gLkIgd2F0Y2gKLUBAIC0x MTcsMyArMTYxLDcgQEAgd2FzIHdyaXR0ZW4gYnkgVG9ueSBSZW1zIDxyZW1ib0B1bmlzb2Z0LmNv bT4gaW4gMTk5MSwgd2l0aCBtb2RzIGFuZAotIGNvcnJlY3Rpb25zIGJ5IEZyYW5jb2lzIFBpbmFy ZC4gIEl0IHdhcyByZXdvcmtlZCBhbmQgbmV3IGZlYXR1cmVzIGFkZGVkIGJ5Ci0gTWlrZSBDb2xl bWFuIDxta2NAYWNtLm9yZz4gaW4gMTk5OS4gIFRoZSBiZWVwLCBleGVjLCBhbmQgZXJyb3IgaGFu ZGxpbmcKLSBmZWF0dXJlcyB3ZXJlIGFkZGVkIGJ5IE1vcnR5IEFienVnIDxtb3J0eUBmcmFraXIu b3JnPiBpbiAyMDA4LgotK09uIGEgbm90IHNvIGRhcmsgYW5kIHN0b3JteSBtb3JuaW5nCi0raW4g TWFyY2ggb2YgMjAwMywgQW50aG9ueSBEZVJvYmVydGlzIDxhc2RAc3Vlc3BhbW1lcnMub3JnPiBn b3Qgc2ljayBvZgotK2hpcyB3YXRjaGVzIHRoYXQgc2hvdWxkIHVwZGF0ZSBldmVyeSBtaW51dGUg ZXZlbnR1YWxseSB1cGRhdGluZyBtYW55Ci0rc2Vjb25kcyBhZnRlciB0aGUgbWludXRlIHN0YXJ0 ZWQsIGFuZCBhZGRlZCBtaWNyb3NlY29uZCBwcmVjaXNpb24uCi1kaWZmIC0tZ2l0IGEvd2F0Y2gu YyBiL3dhdGNoLmMKLWluZGV4IGFjYjE1MmYuLmM3MzY5YjYgMTAwNjQ0Ci0tLS0gYS93YXRjaC5j Ci0rKysgYi93YXRjaC5jCi1AQCAtMjEsNiArMjEsNyBAQAotICNpbmNsdWRlIDxzdGRsaWIuaD4K LSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotKyNpbmNsdWRl IDxzeXMvdGltZS5oPgotICNpbmNsdWRlIDx0aW1lLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgot ICNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci1AQCAtMzksMTMgKzQwLDE0IEBAIHN0YXRpYyBzdHJ1Y3Qg b3B0aW9uIGxvbmdvcHRzW10gPSB7Ci0gCXsiYmVlcCIsIG5vX2FyZ3VtZW50LCAwLCAnYid9LAot IAl7ImVycmV4aXQiLCBub19hcmd1bWVudCwgMCwgJ2UnfSwKLSAJeyJleGVjIiwgbm9fYXJndW1l bnQsIDAsICd4J30sCi0rCXsicHJlY2lzZSIsIG5vX2FyZ3VtZW50LCAwLCAncCd9LAotIAl7Im5v LXRpdGxlIiwgbm9fYXJndW1lbnQsIDAsICd0J30sCi0gCXsidmVyc2lvbiIsIG5vX2FyZ3VtZW50 LCAwLCAndid9LAotIAl7MCwgMCwgMCwgMH0KLSB9OwotIAotIHN0YXRpYyBjaGFyIHVzYWdlW10g PQotLSAgICAiVXNhZ2U6ICVzIFstYmRobnR2eF0gWy0tYmVlcF0gWy0tZGlmZmVyZW5jZXNbPWN1 bXVsYXRpdmVdXSBbLS1leGVjXSBbLS1oZWxwXSBbLS1pbnRlcnZhbD08bj5dIFstLW5vLXRpdGxl XSBbLS12ZXJzaW9uXSA8Y29tbWFuZD5cbiI7Ci0rICAgICJVc2FnZTogJXMgWy1iZGhucHR2eF0g Wy0tYmVlcF0gWy0tZGlmZmVyZW5jZXNbPWN1bXVsYXRpdmVdXSBbLS1leGVjXSBbLS1oZWxwXSBb LS1pbnRlcnZhbD08bj5dIFstLW5vLXRpdGxlXSBbLS12ZXJzaW9uXSA8Y29tbWFuZD5cbiI7Ci0g Ci0gc3RhdGljIGNoYXIgKnByb2duYW1lOwotIAotQEAgLTU0LDYgKzU2LDcgQEAgc3RhdGljIGlu dCBoZWlnaHQgPSAyNCwgd2lkdGggPSA4MDsKLSBzdGF0aWMgaW50IHNjcmVlbl9zaXplX2NoYW5n ZWQgPSAwOwotIHN0YXRpYyBpbnQgZmlyc3Rfc2NyZWVuID0gMTsKLSBzdGF0aWMgaW50IHNob3df dGl0bGUgPSAyOyAgLy8gbnVtYmVyIG9mIGxpbmVzIHVzZWQsIDIgb3IgMAotK3N0YXRpYyBpbnQg cHJlY2lzZV90aW1la2VlcGluZyA9IDA7Ci0gCi0gI2RlZmluZSBtaW4oeCx5KSAoKHgpID4gKHkp ID8gKHkpIDogKHgpKQotIAotQEAgLTEzOCw2ICsxNDEsMTUgQEAgZ2V0X3Rlcm1pbmFsX3NpemUo dm9pZCkKLSAJfQotIH0KLSAKLSsvKiBnZXQgY3VycmVudCB0aW1lIGluIHVzZWMgKi8KLSt0eXBl ZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB3YXRjaF91c2VjX3Q7Ci0rI2RlZmluZSBVU0VDU19QRVJf U0VDICgxMDAwMDAwdWxsKQotK3dhdGNoX3VzZWNfdCBnZXRfdGltZV91c2VjKCkgewotKwlzdHJ1 Y3QgdGltZXZhbCBub3c7Ci0rCWdldHRpbWVvZmRheSgmbm93LCBOVUxMKTsKLSsJcmV0dXJuIFVT RUNTX1BFUl9TRUMqbm93LnR2X3NlYyArIG5vdy50dl91c2VjOwotK30KLSsKLSBpbnQKLSBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gewotQEAgLTE1Miw2ICsxNjQsOCBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCi0gCWNoYXIgKmNvbW1hbmQ7Ci0gCWNoYXIgKipjb21tYW5k X2FyZ3Y7Ci0gCWludCBjb21tYW5kX2xlbmd0aCA9IDA7CS8qIG5vdCBpbmNsdWRpbmcgZmluYWwg XDAgKi8KLSsgICAgd2F0Y2hfdXNlY190IG5leHRfbG9vcDsgLyogbmV4dCBsb29wIHRpbWUgaW4g dXMsIHVzZWQgZm9yIHByZWNpc2UgdGltZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrZWVwaW5nIG9ubHkgKi8KLSAJaW50IHBpcGVmZFsyXTsKLSAJaW50IHN0YXR1czsKLSAJcGlk X3QgY2hpbGQ7Ci1AQCAtMTU5LDcgKzE3Myw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKLSAJc2V0bG9jYWxlKExDX0FMTCwgIiIpOwotIAlwcm9nbmFtZSA9IGFyZ3ZbMF07Ci0gCi0t CXdoaWxlICgob3B0YyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICIrYmVkOjpobjp2dHgiLCBs b25nb3B0cywgKGludCAqKSAwKSkKLSsJd2hpbGUgKChvcHRjID0gZ2V0b3B0X2xvbmcoYXJnYywg YXJndiwgIitiZWQ6OmhuOnB2dHgiLCBsb25nb3B0cywgKGludCAqKSAwKSkKLSAJICAgICAgICE9 IEVPRikgewotIAkJc3dpdGNoIChvcHRjKSB7Ci0gCQljYXNlICdiJzoKLUBAIC0xOTQsNiArMjA4 LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJCQkJaW50ZXJ2YWwgPSB+MHUv MTAwMDAwMDsKLSAJCQl9Ci0gCQkJYnJlYWs7Ci0rCQljYXNlICdwJzoKLSsJCQlwcmVjaXNlX3Rp bWVrZWVwaW5nID0gMTsKLSsJCQlicmVhazsKLSAJCWNhc2UgJ3YnOgotIAkJCW9wdGlvbl92ZXJz aW9uID0gMTsKLSAJCQlicmVhazsKLUBAIC0yMTcsNiArMjM0LDcgQEAgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQotIAkJZnB1dHMoIiAgLWUsIC0tZXJyZXhpdFx0XHRcdFx0ZXhpdCB3YXRj aCBpZiB0aGUgY29tbWFuZCBoYXMgYSBub24temVybyBleGl0XG4iLCBzdGRlcnIpOwotIAkJZnB1 dHMoIiAgLWgsIC0taGVscFx0XHRcdFx0cHJpbnQgYSBzdW1tYXJ5IG9mIHRoZSBvcHRpb25zXG4i LCBzdGRlcnIpOwotIAkJZnB1dHMoIiAgLW4sIC0taW50ZXJ2YWw9PHNlY29uZHM+XHRcdHNlY29u ZHMgdG8gd2FpdCBiZXR3ZWVuIHVwZGF0ZXNcbiIsIHN0ZGVycik7Ci0rICAgICAgICBmcHV0cygi ICAtcCwgLS1wcmVjaXNlXHRcdFx0XHRwcmVjaXNlIHRpbWluZywgaWdub3JlIGNvbW1hbmQgcnVu IHRpbWVcbiIsIHN0ZGVycik7Ci0gCQlmcHV0cygiICAtdiwgLS12ZXJzaW9uXHRcdFx0XHRwcmlu dCB0aGUgdmVyc2lvbiBudW1iZXJcbiIsIHN0ZGVycik7Ci0gCQlmcHV0cygiICAtdCwgLS1uby10 aXRsZVx0XHRcdHR1cm5zIG9mZiBzaG93aW5nIHRoZSBoZWFkZXJcbiIsIHN0ZGVycik7Ci0gCQlm cHV0cygiICAteCwgLS1leGVjXHRcdFx0XHRwYXNzIGNvbW1hbmQgdG8gZXhlYyBpbnN0ZWFkIG9m IHNoXG4iLCBzdGRlcnIpOwotQEAgLTI1Niw2ICsyNzQsOSBAQCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCi0gCW5vZWNobygpOwotIAljYnJlYWsoKTsKLSAKLSsJaWYgKHByZWNpc2VfdGlt ZWtlZXBpbmcpCi0rCQluZXh0X2xvb3AgPSBnZXRfdGltZV91c2VjKCk7Ci0rCi0gCWZvciAoOzsp IHsKLSAJCXRpbWVfdCB0ID0gdGltZShOVUxMKTsKLSAJCWNoYXIgKnRzID0gY3RpbWUoJnQpOwot QEAgLTQwMCw2ICs0MjEsMTIgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAotIAkJ Zmlyc3Rfc2NyZWVuID0gMDsKLSAJCXJlZnJlc2goKTsKLSsJCWlmIChwcmVjaXNlX3RpbWVrZWVw aW5nKSB7Ci0rCQkJd2F0Y2hfdXNlY190IGN1cl90aW1lID0gZ2V0X3RpbWVfdXNlYygpOwotKwkJ CW5leHRfbG9vcCArPSBVU0VDU19QRVJfU0VDKmludGVydmFsOwotKwkJCWlmIChjdXJfdGltZSA8 IG5leHRfbG9vcCkKLSsJCQkJdXNsZWVwKG5leHRfbG9vcCAtIGN1cl90aW1lKTsKLSsJCX0gZWxz ZQotIAkJdXNsZWVwKGludGVydmFsICogMTAwMDAwMCk7Ci0gCX0KLSAKLS0tIAotMS43LjAKLQpk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0My13YXRjaF91bmljb2RlLnBhdGNo IGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0My13YXRjaF91bmljb2RlLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzRlYmE2Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNDMtd2F0Y2hfdW5pY29kZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMx MSArMCwwIEBACi1Gcm9tIDgyODUxNjYxMzgyYTk0MTFhOGIyODhmZmIzNzQ0ODhhYjRhMTM2NDkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcv ZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxp bmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1T dWJqZWN0OiBbUEFUQ0ggNDMvNzBdIHdhdGNoX3VuaWNvZGUKLQotLS0tCi0gQVVUSE9SUyAgfCAg ICAxICsKLSBNYWtlZmlsZSB8ICAgIDUgKy0KLSB3YXRjaC4xICB8ICAgMTIgKysrKysKLSB3YXRj aC5jICB8ICAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KLSA0IGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspLCAy NSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL0FVVEhPUlMgYi9BVVRIT1JTCi1pbmRleCAw ODYwYjI0Li5kODYxYjRiIDEwMDY0NAotLS0tIGEvQVVUSE9SUwotKysrIGIvQVVUSE9SUwotQEAg LTQ3LDQgKzQ3LDUgQEAgQ2hhcmxlcyBCbGFrZQotIHdhdGNoOgotIFRvbnkgUmVtcyA8cmVtYm9A dW5pc29mdC5jb20+Ci0gTWlrZSBDb2xlbWFuIDxta2NAYWNtLm9yZz4KLStKYXJyb2QgTG93ZSA8 cHJvY3BzQHJyb2QubmV0PgotIAotZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWlu ZGV4IDA5ZmIzZWQuLjA2NzI4ZmMgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZQotKysrIGIvTWFrZWZp bGUKLUBAIC02OCw2ICs2OCw3IEBAIFRBUkZJTEVTIDo9IEFVVEhPUlMgQlVHUyBORVdTIFJFQURN RSBUT0RPIENPUFlJTkcgQ09QWUlORy5MSUIgXAotIF9UQVJGSUxFUyA6PSBNYWtlZmlsZQotIAot IENVUlNFUyA6PSAtbG5jdXJzZXMKLStDVVJTRVNXIDo9IC1sbmN1cnNlc3cKLSAKLSAjIFRoaXMg c2VlbXMgYWJvdXQgcmlnaHQgZm9yIHRoZSBkeW5hbWljIGxpYnJhcnkgc3R1ZmYuCi0gIyBTb21l dGhpbmcgbGlrZSB0aGlzIGlzIHByb2JhYmx5IG5lZWRlZCB0byBtYWtlIHRoZSBTRSBMaW51eAot QEAgLTExOSw3ICsxMjAsNyBAQCBpZm5lcSAoJChNQUtFQ01ER09BTFMpLGJldGEpCi0gIyBVbmxp a2UgdGhlIGtlcm5lbCBvbmUsIHRoaXMgY2hlY2tfZ2NjIGdvZXMgYWxsIHRoZSB3YXkgdG8KLSAj IHByb2R1Y2luZyBhbiBleGVjdXRhYmxlLiBUaGVyZSBtaWdodCBiZSBhIC1tNjQgdGhhdCB3b3Jr cwotICMgdW50aWwgeW91IGdvIGxvb2tpbmcgZm9yIGEgNjQtYml0IGN1cnNlcyBsaWJyYXJ5Lgot LWNoZWNrX2djYyA9ICQoc2hlbGwgaWYgJChDQykgJChBTExfQ1BQRkxBR1MpICQoQUxMX0NGTEFH UykgZHVtbXkuYyAkKEFMTF9MREZMQUdTKSAkKDEpIC1vIC9kZXYvbnVsbCAkKENVUlNFUykgPiAv ZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICIkKDEpIjsgZWxzZSBlY2hvICIkKDIpIjsgZmkgOykK LStjaGVja19nY2MgPSAkKHNoZWxsIGlmICQoQ0MpICQoQUxMX0NQUEZMQUdTKSAkKEFMTF9DRkxB R1MpIGR1bW15LmMgJChBTExfTERGTEFHUykgJCgxKSAtbyAvZGV2L251bGwgJChDVVJTRVMpICQo Q1VSU0VTVykgPiAvZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICIkKDEpIjsgZWxzZSBlY2hvICIk KDIpIjsgZmkgOykKLSAKLSAjIEJlIDY0LWJpdCBpZiBhdCBhbGwgcG9zc2libGUuIEluIGEgY3Jv c3MtY29tcGlsaW5nIHNpdHVhdGlvbiwgb25lIG1heQotICMgZG8gIm1ha2UgbTY0PS1tMzIgbGli NjQ9bGliIiB0byBwcm9kdWNlIDMyLWJpdCBleGVjdXRhYmxlcy4gRE8gTk9UCi1AQCAtMjUwLDcg KzI1MSw3IEBAIHNsYWJ0b3AgdG9wOiAlIDogJS5vICQoTElCUFJPQykKLSAJJChDQykgJChBTExf Q0ZMQUdTKSAkXiAkKEFMTF9MREZMQUdTKSAtbyAkQCAkKENVUlNFUykKLSAKLSB3YXRjaDogJSA6 ICUubwotLQkkKENDKSAkKEFMTF9DRkxBR1MpICReICQoQUxMX0xERkxBR1MpIC1vICRAICQoQ1VS U0VTKQotKwkkKENDKSAkKEFMTF9DRkxBR1MpICReICQoQUxMX0xERkxBR1MpIC1vICRAICQoQ1VS U0VTVykKLSAKLSAjIyMjIyMjIyMjIyMgcHJvZ1ggLS0+IHByb2dZCi0gCi1kaWZmIC0tZ2l0IGEv d2F0Y2guMSBiL3dhdGNoLjEKLWluZGV4IDQwZTZjOGUuLmM1ZjE3YzQgMTAwNjQ0Ci0tLS0gYS93 YXRjaC4xCi0rKysgYi93YXRjaC4xCi1AQCAtMTM5LDYgKzEzOSwxNyBAQCBoaWdobGlnaHRpbmcg aXMgbG9zdCBvbiB0aGF0IHVwZGF0ZSBhcyB3ZWxsLgotIE5vbi1wcmludGluZyBjaGFyYWN0ZXJz IGFyZSBzdHJpcHBlZCBmcm9tIHByb2dyYW0gb3V0cHV0LiAgVXNlICJjYXQgLXYiIGFzCi0gcGFy dCBvZiB0aGUgY29tbWFuZCBwaXBlbGluZSBpZiB5b3Ugd2FudCB0byBzZWUgdGhlbS4KLSAuUFAK LStDb21iaW5pbmcgQ2hhcmFjdGVycyB0aGF0IGFyZSBzdXBwb3NlZCB0byBkaXNwbGF5IG9uIHRo ZSBjaGFyYWN0ZXIgYXQgdGhlCi0rbGFzdCBjb2x1bW4gb24gdGhlIHNjcmVlbiBtYXkgZGlzcGxh eSBvbmUgY29sdW1uIGVhcmx5LCBvciB0aGV5IG1heSBub3QKLStkaXNwbGF5IGF0IGFsbC4KLSsu UFAKLStDb21iaW5pbmcgQ2hhcmFjdGVycyBuZXZlciBjb3VudCBhcyBkaWZmZXJlbnQgaW4KLSsu SSBcLVwtZGlmZmVyZW5jZXMKLSttb2RlLiBPbmx5IHRoZSBiYXNlIGNoYXJhY3RlciBjb3VudHMu Ci0rLlBQCi0rQmxhbmsgbGluZXMgZGlyZWN0bHkgYWZ0ZXIgYSBsaW5lIHdoaWNoIGVuZHMgaW4g dGhlIGxhc3QgY29sdW1uIGRvIG5vdAotK2Rpc3BsYXkuCi0rLlBQCi0gLkkgXC1cLXByZWNpc2UK LSBtb2RlIGRvZXNuJ3QgeWV0IGhhdmUgYWR2YW5jZWQgdGVtcG9yYWwgZGlzdG9ydGlvbiB0ZWNo bm9sb2d5IHRvCi0gY29tcGVuc2F0ZSBmb3IgYQotQEAgLTE2NSwzICsxNzYsNCBAQCBPbiBhIG5v dCBzbyBkYXJrIGFuZCBzdG9ybXkgbW9ybmluZwotIGluIE1hcmNoIG9mIDIwMDMsIEFudGhvbnkg RGVSb2JlcnRpcyA8YXNkQHN1ZXNwYW1tZXJzLm9yZz4gZ290IHNpY2sgb2YKLSBoaXMgd2F0Y2hl cyB0aGF0IHNob3VsZCB1cGRhdGUgZXZlcnkgbWludXRlIGV2ZW50dWFsbHkgdXBkYXRpbmcgbWFu eQotIHNlY29uZHMgYWZ0ZXIgdGhlIG1pbnV0ZSBzdGFydGVkLCBhbmQgYWRkZWQgbWljcm9zZWNv bmQgcHJlY2lzaW9uLgotK1VuaWNvZGUgc3VwcG9ydCB3YXMgYWRkZWQgaW4gMjAwOSBieSBKYXJy b2QgTG93ZSA8cHJvY3BzQHJyb2QubmV0Pi4KLWRpZmYgLS1naXQgYS93YXRjaC5jIGIvd2F0Y2gu YwotaW5kZXggYzczNjliNi4uN2FiNTdhYiAxMDA2NDQKLS0tLSBhL3dhdGNoLmMKLSsrKyBiL3dh dGNoLmMKLUBAIC05LDE0ICs5LDE2IEBACi0gICoKLSAgKiBDaGFuZ2VzIGJ5IEFsYmVydCBDYWhh bGFuLCAyMDAyLTIwMDMuCi0gICogc3RkZXJyIGhhbmRsaW5nLCBleGVjLCBhbmQgYmVlcCBvcHRp b24gYWRkZWQgYnkgTW9ydHkgQWJ6dWcsIDIwMDgKLSsgKiBVbmljb2RlIFN1cHBvcnQgYWRkZWQg YnkgSmFycm9kIExvd2UgPHByb2Nwc0Bycm9kLm5ldD4gaW4gMjAwOS4KLSAgKi8KLSAKLS0jZGVm aW5lIFZFUlNJT04gIjAuMi4wIgotKyNkZWZpbmUgVkVSU0lPTiAiMC4zLjAiCi0gCi0rI2luY2x1 ZGUgPHdjaGFyLmg+Ci0gI2luY2x1ZGUgPGN0eXBlLmg+Ci0gI2luY2x1ZGUgPGdldG9wdC5oPgot ICNpbmNsdWRlIDxzaWduYWwuaD4KLS0jaW5jbHVkZSA8bmN1cnNlcy5oPgotKyNpbmNsdWRlIDxu Y3Vyc2Vzdy9uY3Vyc2VzLmg+Ci0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2luY2x1ZGUgPHN0ZGxp Yi5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLUBAIC0yNyw2ICsyOSw3IEBACi0gI2luY2x1ZGUg PHRlcm1pb3MuaD4KLSAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0gI2luY2x1ZGUgInByb2MvcHJvY3Bz LmgiCi0rI2luY2x1ZGUgPGVycm5vLmg+Ci0gCi0gI2lmZGVmIEZPUkNFXzhCSVQKLSAjdW5kZWYg aXNwcmludAotQEAgLTE1MCw2ICsxNTMsMzIgQEAgd2F0Y2hfdXNlY190IGdldF90aW1lX3VzZWMo KSB7Ci0gCXJldHVybiBVU0VDU19QRVJfU0VDKm5vdy50dl9zZWMgKyBub3cudHZfdXNlYzsKLSB9 Ci0gCi0rLy8gcmVhZCBhIHdpZGUgY2hhcmFjdGVyIGZyb20gYSBwb3BlbidkIHN0cmVhbQotKyNk ZWZpbmUgTUFYX0VOQ19CWVRFUyAxNgotK3dpbnRfdCBteV9nZXR3YyhGSUxFICpzKTsKLSt3aW50 X3QgbXlfZ2V0d2MoRklMRSAqcykgewotKwljaGFyIGlbTUFYX0VOQ19CWVRFU107IC8vYXNzdW1p bmcgbm8gZW5jb2RpbmcgZXZlciBjb25zdW1lcyBtb3JlIHRoYW4gMTYgYnl0ZXMKLSsJaW50IGJ5 dGUgPSAwOwotKwlpbnQgY29udmVydDsKLSsJaW50IHg7Ci0rCXdjaGFyX3QgcnZhbDsKLSsJd2hp bGUoMSkgewotKwkJaVtieXRlXSA9IGdldGMocyk7Ci0rCQlpZiAoaVtieXRlXT09RU9GKSB7IHJl dHVybiBXRU9GOyB9Ci0rCQlieXRlKys7Ci0rCQllcnJubyA9IDA7Ci0rCQltYnRvd2MoTlVMTCwg TlVMTCwgMCk7Ci0rCQljb252ZXJ0ID0gbWJ0b3djKCZydmFsLCBpLCBieXRlKTsKLSsJCXggPSBl cnJubzsKLSsJCWlmKGNvbnZlcnQgPiAwKSB7IHJldHVybiBydmFsOyB9IC8vbGVnYWwgY29udmVy c2lvbgotKwkJaWYoYnl0ZSA9PSBNQVhfRU5DX0JZVEVTKSB7Ci0rCQl3aGlsZShieXRlID4gMSkg eyB1bmdldGMoaVstLWJ5dGVdLCBzKTsgfSAvL2F0IGxlYXN0ICp0cnkqIHRvIGZpeCB1cAotKwkJ ZXJybm8gPSAtRUlMU0VROwotKwkJcmV0dXJuIFdFT0Y7Ci0rCQl9Ci0rCX0KLSt9Ci0rCi0gaW50 Ci0gbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIHsKLUBAIC0xNjIsOCArMTkxLDExIEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJICAgIG9wdGlvbl9oZWxwID0gMCwgb3B0 aW9uX3ZlcnNpb24gPSAwOwotIAlkb3VibGUgaW50ZXJ2YWwgPSAyOwotIAljaGFyICpjb21tYW5k OwotKwl3Y2hhcl90ICp3Y29tbWFuZCA9IE5VTEw7Ci0gCWNoYXIgKipjb21tYW5kX2FyZ3Y7Ci0g CWludCBjb21tYW5kX2xlbmd0aCA9IDA7CS8qIG5vdCBpbmNsdWRpbmcgZmluYWwgXDAgKi8KLSsJ aW50IHdjb21tYW5kX2NvbHVtbnMgPSAwOwkvKiBub3QgaW5jbHVkaW5nIGZpbmFsIFwwICovCi0r CWludCB3Y29tbWFuZF9jaGFyYWN0ZXJzID0gMDsgLyogbm90IGluY2x1ZGluZyBmaW5hbCBcMCAq LwotICAgICB3YXRjaF91c2VjX3QgbmV4dF9sb29wOyAvKiBuZXh0IGxvb3AgdGltZSBpbiB1cywg dXNlZCBmb3IgcHJlY2lzZSB0aW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtl ZXBpbmcgb25seSAqLwotIAlpbnQgcGlwZWZkWzJdOwotQEAgLTI1OSw2ICsyOTEsMjMgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJY29tbWFuZFtjb21tYW5kX2xlbmd0aF0gPSAn XDAnOwotIAl9Ci0gCi0rCS8vIGNvbnZlcnQgdG8gd2lkZSBmb3IgcHJpbnRpbmcgcHVycG9zZXMK LSsJLy9tYnN0b3djcyhOVUxMLCBOVUxMLCAwKTsKLSsJd2NvbW1hbmRfY2hhcmFjdGVycyA9IG1i c3Rvd2NzKE5VTEwsIGNvbW1hbmQsIDApOwotKwlpZih3Y29tbWFuZF9jaGFyYWN0ZXJzIDwgMCkg ewotKwkJZnByaW50ZihzdGRlcnIsICJVbmljb2RlIEhhbmRsaW5nIEVycm9yXG4iKTsKLSsJCWV4 aXQoMSk7Ci0rCX0KLSsJd2NvbW1hbmQgPSAod2NoYXJfdCopbWFsbG9jKCh3Y29tbWFuZF9jaGFy YWN0ZXJzKzEpICogc2l6ZW9mKHdjb21tYW5kKSk7Ci0rCWlmKHdjb21tYW5kID09IE5VTEwpIHsK LSsJCWZwcmludGYoc3RkZXJyLCAiVW5pY29kZSBIYW5kbGluZyBFcnJvciAobWFsbG9jKVxuIik7 Ci0rCQlleGl0KDEpOwotKwl9Ci0rCW1ic3Rvd2NzKHdjb21tYW5kLCBjb21tYW5kLCB3Y29tbWFu ZF9jaGFyYWN0ZXJzKzEpOwotKwl3Y29tbWFuZF9jb2x1bW5zID0gd2Nzd2lkdGgod2NvbW1hbmQs IC0xKTsKLSsKLSsKLSsKLSAJZ2V0X3Rlcm1pbmFsX3NpemUoKTsKLSAKLSAJLyogQ2F0Y2gga2V5 Ym9hcmQgaW50ZXJydXB0cyBzbyB3ZSBjYW4gcHV0IHR0eSBiYWNrIGluIGEgc2FuZSBzdGF0ZS4g ICovCi1AQCAtMjk4LDEyICszNDcsNDQgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQot IAkJaWYgKHNob3dfdGl0bGUpIHsKLSAJCQkvLyBsZWZ0IGp1c3RpZnkgaW50ZXJ2YWwgYW5kIGNv bW1hbmQsCi0gCQkJLy8gcmlnaHQganVzdGlmeSB0aW1lLCBjbGlwcGluZyBhbGwgdG8gZml0IHdp bmRvdyB3aWR0aAotLQkJCWFzcHJpbnRmKCZoZWFkZXIsICJFdmVyeSAlLjFmczogJS4qcyIsCi0t CQkJCWludGVydmFsLCBtaW4od2lkdGggLSAxLCBjb21tYW5kX2xlbmd0aCksIGNvbW1hbmQpOwot LQkJCW12YWRkc3RyKDAsIDAsIGhlYWRlcik7Ci0tCQkJaWYgKHN0cmxlbihoZWFkZXIpID4gKHNp emVfdCkgKHdpZHRoIC0gdHNsIC0gMSkpCi0tCQkJCW12YWRkc3RyKDAsIHdpZHRoIC0gdHNsIC0g NCwgIi4uLiAgIik7Ci0tCQkJbXZhZGRzdHIoMCwgd2lkdGggLSB0c2wgKyAxLCB0cyk7Ci0rCi0r CQkJaW50IGhsZW4gPSBhc3ByaW50ZigmaGVhZGVyLCAiRXZlcnkgJS4xZnM6ICIsIGludGVydmFs KTsKLSsKLSsJCQkvLyB0aGUgcnVsZXM6Ci0rCQkJLy8gICB3aWR0aCA8IHRzbCA6IHByaW50IG5v dGhpbmcKLSsJCQkvLyAgIHdpZHRoIDwgdHNsICsgaGxlbiArIDE6IHByaW50IHRzCi0rCQkJLy8g ICB3aWR0aCA9IHRzbCArIGhsZW4gKyAxOiBwcmludCBoZWFkZXIsIHRzCi0rCQkJLy8gICB3aWR0 aCA8IHRzbCArIGhsZW4gKyA0OiBwcmludCBoZWFkZXIsIC4uLiwgdHMKLSsJCQkvLyAgIHdpZHRo IDwgdHNsICsgaGxlbiArIHdjb21tYW5kX2NvbHVtbnM6IHByaW50IGhlYWRlciwgdHJ1bmNhdGVk IHdjb21tYW5kLCAuLi4sIHRzCi0rCQkJLy8gICB3aWR0aCA+ICIiOiBwcmludCBoZWFkZXIsIHdj b21hbmQsIHRzCi0rCQkJLy8gdGhpcyBpcyBzbGlnaHRseSBkaWZmZXJlbnQgZnJvbSBob3cgaXQg dXNlZCB0byBiZQotKwkJCWlmKHdpZHRoID49IHRzbCkgewotKwkJCQlpZih3aWR0aCA+PSB0c2wg KyBobGVuICsgMSkgewotKwkJCQkJbXZhZGRzdHIoMCwgMCwgaGVhZGVyKTsKLSsJCQkJCWlmKHdp ZHRoID49IHRzbCArIGhsZW4gKyAyKSB7Ci0rCQkJCQkJaWYod2lkdGggPCB0c2wgKyBobGVuICsg NCkgewotKwkJCQkJCQltdmFkZHN0cigwLCB3aWR0aCAtIHRzbCAtIDQsICIuLi4gICIpOwotKwkJ CQkJCX1lbHNlewotKwkJCQkJCQlpZih3aWR0aCA8IHRzbCArIGhsZW4gKyB3Y29tbWFuZF9jb2x1 bW5zKSB7Ci0rCQkJCQkJCQkvLyBwcmludCB0cnVuY2F0ZWQKLSsJCQkJCQkJCWludCBhdmFpbF9j b2x1bW5zID0gd2lkdGggLSB0c2wgLSBobGVuOwotKwkJCQkJCQkJaW50IHVzaW5nX2NvbHVtbnMg PSB3Y29tbWFuZF9jb2x1bW5zOwotKwkJCQkJCQkJaW50IHVzaW5nX2NoYXJhY3RlcnMgPSB3Y29t bWFuZF9jaGFyYWN0ZXJzOwotKwkJCQkJCQkJd2hpbGUodXNpbmdfY29sdW1ucyA+IGF2YWlsX2Nv bHVtbnMgLSA0KSB7Ci0rCQkJCQkJCQkJdXNpbmdfY2hhcmFjdGVycy0tOwotKwkJCQkJCQkJdXNp bmdfY29sdW1ucyA9IHdjc3dpZHRoKHdjb21tYW5kLCB1c2luZ19jaGFyYWN0ZXJzKTsKLSsJCQkJ CQkJCX0KLSsJCQkJCQkJCW12YWRkbndzdHIoMCwgaGxlbiwgd2NvbW1hbmQsIHVzaW5nX2NoYXJh Y3RlcnMpOwotKwkJCQkJCQkJbXZhZGRzdHIoMCwgd2lkdGggLSB0c2wgLSA0LCAiLi4uICIpOwot KwkJCQkJCQl9ZWxzZXsKLSsJCQkJCQkJCW12YWRkd3N0cigwLCBobGVuLCB3Y29tbWFuZCk7Ci0r CQkJCQkJCX0KLSsJCQkJCQl9Ci0rCQkJCQl9Ci0rCQkJCX0KLSsJCQkJbXZhZGRzdHIoMCwgd2lk dGggLSB0c2wgKyAxLCB0cyk7Ci0rCQkJfQotKwotIAkJCWZyZWUoaGVhZGVyKTsKLSAJCX0KLSAK LUBAIC0zNjAsNDcgKzQ0MSw2MiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCi0g CQlmb3IgKHkgPSBzaG93X3RpdGxlOyB5IDwgaGVpZ2h0OyB5KyspIHsKLSAJCQlpbnQgZW9sc2Vl biA9IDAsIHRhYnBlbmRpbmcgPSAwOwotKwkJCXdpbnRfdCBjYXJyeSA9IFdFT0Y7Ci0gCQkJZm9y ICh4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKLS0JCQkJaW50IGMgPSAnICc7Ci0rCQkJCXdpbnRf dCBjID0gTCcgJzsKLSAJCQkJaW50IGF0dHIgPSAwOwotIAotIAkJCQlpZiAoIWVvbHNlZW4pIHsK LSAJCQkJCS8qIGlmIHRoZXJlIGlzIGEgdGFiIHBlbmRpbmcsIGp1c3Qgc3BpdCBzcGFjZXMgdW50 aWwgdGhlCi0gCQkJCQkgICBuZXh0IHN0b3AgaW5zdGVhZCBvZiByZWFkaW5nIGNoYXJhY3RlcnMg Ki8KLSAJCQkJCWlmICghdGFicGVuZGluZykKLS0JCQkJCQlkbwotLQkJCQkJCQljID0gZ2V0Yyhw KTsKLS0JCQkJCQl3aGlsZSAoYyAhPSBFT0YgJiYgIWlzcHJpbnQoYykKLS0JCQkJCQkgICAgICAg JiYgYyAhPSAnXG4nCi0tCQkJCQkJICAgICAgICYmIGMgIT0gJ1x0Jyk7Ci0tCQkJCQlpZiAoYyA9 PSAnXG4nKQotKwkJCQkJCWRvIHsKLSsJCQkJCQkJaWYoY2FycnkgPT0gV0VPRikgewotKwkJCQkJ CQkJYyA9IG15X2dldHdjKHApOwotKwkJCQkJCQl9ZWxzZXsKLSsJCQkJCQkJCWMgPSBjYXJyeTsK LSsJCQkJCQkJCWNhcnJ5ID0gV0VPRjsKLSsJCQkJCQkJfQotKwkJCQkJCX13aGlsZSAoYyAhPSBX RU9GICYmICFpc3ByaW50KGMpICYmIGM8MTI4Ci0rCQkJCQkJICAgICAgICYmIHdjd2lkdGgoYykg PT0gMAotKwkJCQkJCSAgICAgICAmJiBjICE9IEwnXG4nCi0rCQkJCQkJICAgICAgICYmIGMgIT0g TCdcdCcpOwotKwkJCQkJaWYgKGMgPT0gTCdcbicpCi0gCQkJCQkJaWYgKCFvbGRlb2xzZWVuICYm IHggPT0gMCkgewotIAkJCQkJCQl4ID0gLTE7Ci0gCQkJCQkJCWNvbnRpbnVlOwotIAkJCQkJCX0g ZWxzZQotIAkJCQkJCQllb2xzZWVuID0gMTsKLS0JCQkJCWVsc2UgaWYgKGMgPT0gJ1x0JykKLSsJ CQkJCWVsc2UgaWYgKGMgPT0gTCdcdCcpCi0gCQkJCQkJdGFicGVuZGluZyA9IDE7Ci0tCQkJCQlp ZiAoYyA9PSBFT0YgfHwgYyA9PSAnXG4nIHx8IGMgPT0gJ1x0JykKLS0JCQkJCQljID0gJyAnOwot KwkJCQkJaWYgKHg9PXdpZHRoLTEgJiYgd2N3aWR0aChjKT09MikgewotKwkJCQkJCXkrKzsKLSsJ CQkJCQl4ID0gLTE7IC8vcHJvY2VzcyB0aGlzIGRvdWJsZS13aWR0aAotKwkJCQkJCWNhcnJ5ID0g YzsgLy9jaGFyYWN0ZXIgb24gdGhlIG5leHQgbGluZQotKwkJCQkJCWNvbnRpbnVlOyAvL2JlY2F1 c2UgaXQgd29uJ3QgZml0IGhlcmUKLSsJCQkJCX0KLSsJCQkJCWlmIChjID09IFdFT0YgfHwgYyA9 PSBMJ1xuJyB8fCBjID09IEwnXHQnKQotKwkJCQkJCWMgPSBMJyAnOwotIAkJCQkJaWYgKHRhYnBl bmRpbmcgJiYgKCgoeCArIDEpICUgOCkgPT0gMCkpCi0gCQkJCQkJdGFicGVuZGluZyA9IDA7Ci0g CQkJCX0KLSAJCQkJbW92ZSh5LCB4KTsKLSAJCQkJaWYgKG9wdGlvbl9kaWZmZXJlbmNlcykgewot LQkJCQkJY2h0eXBlIG9sZGNoID0gaW5jaCgpOwotLQkJCQkJdW5zaWduZWQgY2hhciBvbGRjID0g b2xkY2ggJiBBX0NIQVJURVhUOwotKwkJCQkJCWNjaGFyX3Qgb2xkYzsKLSsJCQkJCWluX3djaCgm b2xkYyk7Ci0gCQkJCQlhdHRyID0gIWZpcnN0X3NjcmVlbgotLQkJCQkJICAgICYmICgoY2hhcilj ICE9IG9sZGMKLSsJCQkJCSAgICAmJiAoKHdjaGFyX3QpYyAhPSBvbGRjLmNoYXJzWzBdCi0gCQkJ CQkJfHwKLSAJCQkJCQkob3B0aW9uX2RpZmZlcmVuY2VzX2N1bXVsYXRpdmUKLS0JCQkJCQkgJiYg KG9sZGNoICYgQV9BVFRSSUJVVEVTKSkpOwotKwkJCQkJCSAmJiAob2xkYy5hdHRyICYgQV9BVFRS SUJVVEVTKSkpOwotIAkJCQl9Ci0gCQkJCWlmIChhdHRyKQotIAkJCQkJc3RhbmRvdXQoKTsKLS0J CQkJYWRkY2goYyk7Ci0rCQkJCWFkZG53c3RyKCh3Y2hhcl90KikmYywxKTsKLSAJCQkJaWYgKGF0 dHIpCi0gCQkJCQlzdGFuZGVuZCgpOwotKwkJCQlpZih3Y3dpZHRoKGMpID09IDApIHsgeC0tOyB9 Ci0rCQkJCWlmKHdjd2lkdGgoYykgPT0gMikgeyB4Kys7IH0KLSAJCQl9Ci0gCQkJb2xkZW9sc2Vl biA9IGVvbHNlZW47Ci0gCQl9Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNDQtY29tcGxhaW5fdW5tb3VudGVkX3Byb2MucGF0Y2ggYi9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDQ0LWNvbXBsYWluX3VubW91bnRlZF9wcm9jLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAxMTNhMTAzLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwNDQtY29tcGxhaW5fdW5tb3VudGVkX3Byb2MucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyOSArMCwwIEBACi1Gcm9tIGRhYWUxNDgxMzYwYzk5ZWRiYWJjZjg3YTU0NGVlZGQwZGRh MTRjYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFy Lmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICsw MTAwCi1TdWJqZWN0OiBbUEFUQ0ggNDQvNzBdIGNvbXBsYWluX3VubW91bnRlZF9wcm9jCi0KLWV4 aXRpbmcgc2lsZW50bHkuCi0tLS0KLSBwcm9jL3ZlcnNpb24uYyB8ICAgIDQgKysrLQotIDEgZmls ZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvcHJvYy92ZXJzaW9uLmMgYi9wcm9jL3ZlcnNpb24uYwotaW5kZXggOTZmZmI3Zi4uNzkzMDM2 NyAxMDA2NDQKLS0tLSBhL3Byb2MvdmVyc2lvbi5jCi0rKysgYi9wcm9jL3ZlcnNpb24uYwotQEAg LTM5LDggKzM5LDEwIEBAIHN0YXRpYyB2b2lkIGluaXRfTGludXhfdmVyc2lvbih2b2lkKSB7Ci0g ICAgIEZJTEUgKmZwOwotICAgICBjaGFyIGJ1ZlsyNTZdOwotICAgICAKLS0gICAgaWYgKCAoZnA9 Zm9wZW4oIi9wcm9jL3ZlcnNpb24iLCJyIikpID09IE5VTEwpIC8qIGZhaWx1cmUgaW1wbGllcyBp bXBlbmRpbmcgZGVhdGggKi8KLSsgICAgaWYgKCAoZnA9Zm9wZW4oIi9wcm9jL3ZlcnNpb24iLCJy IikpID09IE5VTEwpIHsKLSsgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBmaW5kIC9wcm9j L3ZlcnNpb24gLSBpcyAvcHJvYyBtb3VudGVkP1xuIik7Ci0gICAgICAgZXhpdCgxKTsKLSsgICAg fQotICAgICBpZiAoZmdldHMoYnVmLCAyNTYsIGZwKSA9PSBOVUxMKSB7Ci0gICAgICAgZnByaW50 ZihzdGRlcnIsICJDYW5ub3QgcmVhZCBrZXJuZWwgdmVyc2lvbiBmcm9tIC9wcm9jL3ZlcnNpb25c biIpOwotICAgICAgIGZjbG9zZShmcCk7Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNo ZXMvcHJvY3BzLTMuMi44LzAwNDUtcHNfc3VwZ2lkX2Rpc3BsYXkucGF0Y2ggYi9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDQ1LXBzX3N1cGdpZF9kaXNwbGF5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3NDllZDUzLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNDUtcHNfc3VwZ2lkX2Rpc3BsYXkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NzUgKzAs MCBAQAotRnJvbSAzZmI0ZjUxODgzNTI1ZTg4ODU3MWQ3MmQzMDkyOWRkMmI5MTIxNTRkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlh bi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0Bk ZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVj dDogW1BBVENIIDQ1LzcwXSBwc19zdXBnaWRfZGlzcGxheQotCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSBw cm9jL2xpYnJhcnkubWFwIHwgICAgMiArLQotIHByb2MvcmVhZHByb2MuYyAgfCAgMTM1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQotIHByb2Mv cmVhZHByb2MuaCAgfCAgIDEyICsrKystCi0gcHMvZGlzcGxheS5jICAgICB8ICAgMzQgKysrKysr KysrKysrLS0KLSBwcy9vdXRwdXQuYyAgICAgIHwgICA0NyArKysrKysrKysrKysrKysrKysrCi0g cHMvcHMuMSAgICAgICAgICB8ICAgMTAgKysrKwotIDYgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2Vy dGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHJvYy9saWJyYXJ5Lm1h cCBiL3Byb2MvbGlicmFyeS5tYXAKLWluZGV4IDE1NDA2MWIuLjhkNjljZDUgMTAwNjQ0Ci0tLS0g YS9wcm9jL2xpYnJhcnkubWFwCi0rKysgYi9wcm9jL2xpYnJhcnkubWFwCi1AQCAtNyw3ICs3LDcg QEAgZ2xvYmFsOgotIAotICAgcmVhZHByb2M7IHJlYWR0YXNrOyByZWFkcHJvY3RhYjsgcmVhZHBy b2N0YWIyOyBsb29rX3VwX291cl9zZWxmOyBlc2NhcGVfY29tbWFuZDsKLSAgIGVzY2FwZV9zdHI7 IGVzY2FwZV9zdHJsaXN0OwotLSAgb3BlbnByb2M7IGNsb3NlcHJvYzsgZnJlZXByb2M7Ci0rICBv cGVucHJvYzsgY2xvc2Vwcm9jOyBmcmVlcHJvYzsgYWxsb2NzdXBncnA7IGZyZWVzdXBncnA7Ci0g ICB0dHlfdG9fZGV2OyBkZXZfdG9fdHR5OyBvcGVuX3BzZGJfbWVzc2FnZTsgb3Blbl9wc2RiOyBs b29rdXBfd2NoYW47Ci0gICBkaXNwbGF5X3ZlcnNpb247IHByb2Nwc192ZXJzaW9uOyBsaW51eF92 ZXJzaW9uX2NvZGU7Ci0gICBIZXJ0ejsgc21wX251bV9jcHVzOyBoYXZlX3ByaXZzOwotZGlmZiAt LWdpdCBhL3Byb2MvcmVhZHByb2MuYyBiL3Byb2MvcmVhZHByb2MuYwotaW5kZXggMTlkOTliMi4u OTY2MDc5OSAxMDA2NDQKLS0tLSBhL3Byb2MvcmVhZHByb2MuYwotKysrIGIvcHJvYy9yZWFkcHJv Yy5jCi1AQCAtMjAsNiArMjAsNyBAQAotICNpbmNsdWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDxz dGRhcmcuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotICNp bmNsdWRlIDx1bmlzdGQuaD4KLSAjaW5jbHVkZSA8c2lnbmFsLmg+Ci0gI2luY2x1ZGUgPGZjbnRs Lmg+Ci1AQCAtODUsNjMgKzg2LDY4IEBAIHN0YXRpYyB2b2lkIHN0YXR1czJwcm9jKGNoYXIgKlMs IHByb2NfdCAqcmVzdHJpY3QgUCwgaW50IGlzX3Byb2MpewotICAgICBsb25nIFRocmVhZHMgPSAw OwotICAgICBsb25nIFRnaWQgPSAwOwotICAgICBsb25nIFBpZCA9IDA7Ci0rICAgIGludCBoYXNo ID0gMDsKLSsgICAgaW50IGlzdXBnaWQgPSAwOwotIAotLSAgc3RhdGljIGNvbnN0IHVuc2lnbmVk IGNoYXIgYXNzb1tdID0KLSsgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYXNzb1tdID0K LSAgICAgewotLSAgICAgIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLAot LSAgICAgIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLAotLSAgICAgIDYx LCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLAotLSAgICAgIDYxLCA2MSwgNjEs IDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLAotLSAgICAgIDYxLCA2MSwgNjEsIDYxLCA2MSwg NjEsIDYxLCA2MSwgNjEsIDYxLAotLSAgICAgIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2 MSwgMTUsIDYxLAotLSAgICAgIDYxLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDMwLCAgMywgIDUsICA1 LAotLSAgICAgIDYxLCAgNSwgNjEsICA4LCA2MSwgNjEsICAzLCA2MSwgMTAsIDYxLAotLSAgICAg ICA2LCA2MSwgMTMsICAwLCAzMCwgMjUsICAwLCA2MSwgNjEsIDYxLAotLSAgICAgIDYxLCA2MSwg NjEsIDYxLCA2MSwgNjEsIDYxLCAgMywgNjEsIDEzLAotLSAgICAgICAwLCAgMCwgNjEsIDMwLCA2 MSwgMjUsIDYxLCA2MSwgNjEsICAwLAotLSAgICAgIDYxLCA2MSwgNjEsIDYxLCAgNSwgNjEsICAw LCA2MSwgNjEsIDYxLAotLSAgICAgICAwLCA2MSwgNjEsIDYxLCA2MSwgNjEsIDYxLCA2MQotKyAg ICAgIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LAotKyAgICAgIDY2LCA2 NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LAotKyAgICAgIDY2LCA2NiwgNjYsIDY2 LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LAotKyAgICAgIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYs IDY2LCA2NiwgNjYsIDY2LAotKyAgICAgIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2Niwg NjYsIDY2LAotKyAgICAgIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NiwgIDAsIDY2LAot KyAgICAgIDY2LCA2NiwgNjYsIDY2LCA2NiwgNjYsICAzLCAzMCwgMjAsIDMwLAotKyAgICAgIDY2 LCAyNSwgNjYsIDIwLCA2NiwgNjYsIDMwLCA2NiwgMjUsIDY2LAotKyAgICAgICAwLCA2NiwgIDgs IDEwLCAgMywgMTgsICA1LCA2NiwgNjYsIDY2LAotKyAgICAgIDY2LCA2NiwgNjYsIDY2LCA2Niwg NjYsIDY2LCAgMywgNjYsIDEwLAotKyAgICAgICAwLCAgMCwgNjYsIDI1LCA2NiwgIDUsIDY2LCA2 NiwgNjYsIDI1LAotKyAgICAgIDY2LCAgNSwgNjYsIDY2LCAgMCwgNjYsICAwLCAgMCwgNjYsIDY2 LAotKyAgICAgIDI1LCA2NiwgNjYsIDY2LCA2NiwgNjYsIDY2LCA2NgotICAgICB9OwotIAotICAg ICBzdGF0aWMgY29uc3Qgc3RhdHVzX3RhYmxlX3N0cnVjdCB0YWJsZVtdID0gewotLSAgICAgIEYo Vm1TdGspCi0rICAgICAgRihQaWQpCi0gICAgICAgTlVMIE5VTAotLSAgICAgIEYoU3RhdGUpCi0r ICAgICAgRihUaHJlYWRzKQotKyAgICAgIE5VTAotKyAgICAgIEYoUFBpZCkKLSsgICAgICBOVUwg TlVMCi0rICAgICAgRihUZ2lkKQotICAgICAgIE5VTAotLSAgICAgIEYoVm1FeGUpCi0gICAgICAg RihTaGRQbmQpCi0rICAgICAgTlVMIE5VTAotKyAgICAgIEYoU3RhdGUpCi0gICAgICAgTlVMCi0t ICAgICAgRihWbURhdGEpCi0rICAgICAgRihWbVN0aykKLSsgICAgICBOVUwgTlVMCi0rICAgICAg RihVaWQpCi0gICAgICAgTlVMCi0tICAgICAgRihOYW1lKQotKyAgICAgIEYoVm1TaXplKQotICAg ICAgIE5VTCBOVUwKLSAgICAgICBGKFZtUlNTKQotLSAgICAgIE5VTCBOVUwKLS0gICAgICBGKFZt TGNrKQotLSAgICAgIE5VTCBOVUwgTlVMCi0rICAgICAgTlVMCi0gICAgICAgRihHaWQpCi0tICAg ICAgRihQaWQpCi0tICAgICAgTlVMIE5VTCBOVUwKLS0gICAgICBGKFZtU2l6ZSkKLSAgICAgICBO VUwgTlVMCi0tICAgICAgRihWbUxpYikKLS0gICAgICBOVUwgTlVMCi0tICAgICAgRihQUGlkKQot LSAgICAgIE5VTAotLSAgICAgIEYoU2lnQ2d0KQotKyAgICAgIEYoVm1EYXRhKQotICAgICAgIE5V TAotLSAgICAgIEYoVGhyZWFkcykKLSsgICAgICBGKEdyb3VwcykKLSsgICAgICBOVUwgTlVMIE5V TCBOVUwKLSAgICAgICBGKFNpZ1BuZCkKLSsgICAgICBOVUwgTlVMCi0rICAgICAgRihTaWdCbGsp Ci0gICAgICAgTlVMCi0rICAgICAgRihWbUxpYikKLSsgICAgICBOVUwgTlVMIE5VTCBOVUwKLSsg ICAgICBGKFZtTGNrKQotKyAgICAgIE5VTCBOVUwgTlVMIE5VTAotKyAgICAgIEYoTmFtZSkKLSsg ICAgICBOVUwgTlVMIE5VTCBOVUwKLSAgICAgICBGKFNpZ0lnbikKLS0gICAgICBOVUwKLS0gICAg ICBGKFVpZCkKLS0gICAgICBOVUwgTlVMIE5VTCBOVUwgTlVMIE5VTCBOVUwgTlVMIE5VTAotLSAg ICAgIE5VTCBOVUwgTlVMIE5VTCBOVUwKLS0gICAgICBGKFRnaWQpCi0gICAgICAgTlVMIE5VTCBO VUwgTlVMCi0tICAgICAgRihTaWdCbGspCi0tICAgICAgTlVMIE5VTCBOVUwKLSsgICAgICBGKFZt RXhlKQotKyAgICAgIE5VTCBOVUwgTlVMIE5VTAotKyAgICAgIEYoU2lnQ2d0KQotICAgICB9Owot IAotICN1bmRlZiBGCi1AQCAtMTU3LDYgKzE2Myw5IEBAIEVOVEVSKDB4MjIwKTsKLSAgICAgUC0+ dm1fZXhlICA9IDA7Ci0gICAgIFAtPnZtX2xpYiAgPSAwOwotICAgICBQLT5ubHdwICAgID0gMDsK LSsgICAgUC0+bnN1cGdpZCA9IDA7Ci0rICAgIFAtPnN1cGdpZCA9IE5VTEw7Ci0rICAgIFAtPnN1 cGdycCA9IE5VTEw7Ci0gICAgIFAtPnNpZ25hbFswXSA9ICdcMCc7ICAvLyBzbyB3ZSBjYW4gZGV0 ZWN0IGl0IGFzIG1pc3NpbmcgZm9yIHZlcnkgb2xkIGtlcm5lbHMKLSAKLSAgICAgZ290byBiYXNl OwotQEAgLTE3Myw3ICsxODIsOSBAQCBFTlRFUigweDIyMCk7Ci0gICAgICAgICAvLyBleGFtaW5l IGEgZmllbGQgbmFtZSAoaGFzaCBhbmQgY29tcGFyZSkKLSAgICAgYmFzZToKLSAgICAgICAgIGlm KHVubGlrZWx5KCEqUykpIGJyZWFrOwotLSAgICAgICAgZW50cnkgPSB0YWJsZVs2MyAmIChhc3Nv WyhpbnQpU1szXV0gKyBhc3NvWyhpbnQpU1syXV0gKyBhc3NvWyhpbnQpU1swXV0pXTsKLSsgICAg ICAgIGhhc2ggPSBhc3NvW1NbM11dICsgYXNzb1tTWzJdXSArIGFzc29bU1swXV07Ci0rICAgICAg ICBpZiAoaGFzaCA+IDY1KSBjb250aW51ZTsKLSsgICAgICAgIGVudHJ5ID0gdGFibGVbaGFzaF07 Ci0gICAgICAgICBjb2xvbiA9IHN0cmNocihTLCAnOicpOwotICAgICAgICAgaWYodW5saWtlbHko IWNvbG9uKSkgYnJlYWs7Ci0gICAgICAgICBpZih1bmxpa2VseShjb2xvblsxXSE9J1x0JykpIGJy ZWFrOwotQEAgLTI3MSw2ICsyODIsMjEgQEAgRU5URVIoMHgyMjApOwotICAgICAgICAgUC0+c2dp ZCA9IHN0cnRvbChTLCZTLDEwKTsKLSAgICAgICAgIFAtPmZnaWQgPSBzdHJ0b2woUywmUywxMCk7 Ci0gICAgICAgICBjb250aW51ZTsKLSsgICAgY2FzZV9Hcm91cHM6Ci0rICAgICAgICBpc3VwZ2lk ID0gMDsKLSsgICAgICAgIGlmICgqUyAhPSAnXG4nKXsgLy8gSXMgdGhlcmUgYW55IHN1cHBsZW1l bnRhcnkgZ3JvdXAgPwotKyAgICAgICAgICBQLT5zdXBnaWQgPSAoaW50ICopIHhtYWxsb2MoMHgw MDA0ICogc2l6ZW9mKGludCkpOwotKyAgICAgICAgICBpbnQgdmN0c2l6ZSA9IDB4MDAwNDsKLSsg ICAgICAgICAgd2hpbGUgKFNbMV0gIT0gJ1xuJyAmJiBpc3VwZ2lkPElOVF9NQVgpeyAvLyBUaGVy ZSBpcyBvbmUgYmxhbmsgYmVmb3JlICdcbicKLSsgICAgICAgICAgICBpZiAoaXN1cGdpZCA9PSB2 Y3RzaXplKXsKLSsgICAgICAgICAgICAgIHZjdHNpemUgKj0gMjsKLSsgICAgICAgICAgICAgIFAt PnN1cGdpZCA9IChpbnQgKil4cmVhbGxvYyhQLT5zdXBnaWQsdmN0c2l6ZSAqIHNpemVvZihpbnQp KTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgUC0+c3VwZ2lkW2lzdXBnaWQrK10gPSBz dHJ0b2woUywmUywxMCk7Ci0rICAgICAgICAgICAgUC0+bnN1cGdpZCsrOwotKyAgICAgICAgICB9 Ci0rICAgICAgICB9Ci0rICAgICAgICBjb250aW51ZTsKLSAgICAgY2FzZV9WbURhdGE6Ci0gICAg ICAgICBQLT52bV9kYXRhID0gc3RydG9sKFMsJlMsMTApOwotICAgICAgICAgY29udGludWU7Ci1A QCAtNTg5LDYgKzYxNSwxMyBAQCBzdGF0aWMgcHJvY190KiBzaW1wbGVfcmVhZHByb2MoUFJPQ1RB QiAqcmVzdHJpY3QgY29uc3QgUFQsIHByb2NfdCAqcmVzdHJpY3QgY29ucwotICAgICAgICAgfQot ICAgICB9Ci0gCi0rICAgIGlmIChmbGFncyAmIFBST0NfRklMTFNVUEdSUCAmJiBwLT5uc3VwZ2lk ID4gMCl7Ci0rICAgICAgICBhbGxvY3N1cGdycChwKTsKLSsgICAgICAgIGludCBpOwotKyAgICAg ICAgZm9yIChpPTA7IGkgPCBwLT5uc3VwZ2lkOyBpKyspCi0rICAgICAgICAgICAgbWVtY3B5KHAt PnN1cGdycFtpXSwgZ3JvdXBfZnJvbV9naWQocC0+c3VwZ2lkW2ldKSwgUF9HX1NaKTsKLSsgICAg fQotKwotICAgICBpZiAoKGZsYWdzICYgUFJPQ19GSUxMQ09NKSB8fCAoZmxhZ3MgJiBQUk9DX0ZJ TExBUkcpKQkvKiByZWFkK3BhcnNlIC9wcm9jLyMvY21kbGluZSAqLwotIAlwLT5jbWRsaW5lID0g ZmlsZTJzdHJ2ZWMocGF0aCwgImNtZGxpbmUiKTsKLSAgICAgZWxzZQotQEAgLTY4Myw2ICs3MTYs MTMgQEAgc3RhdGljIHByb2NfdCogc2ltcGxlX3JlYWR0YXNrKFBST0NUQUIgKnJlc3RyaWN0IGNv bnN0IFBULCBjb25zdCBwcm9jX3QgKnJlc3RyaWMKLSAgICAgICAgIH0KLSAgICAgfQotIAotKyAg ICBpZiAoZmxhZ3MgJiBQUk9DX0ZJTExTVVBHUlAgJiYgdC0+bnN1cGdpZCA+IDApewotKyAgICAg ICAgYWxsb2NzdXBncnAodCk7Ci0rICAgICAgICBpbnQgaTsKLSsgICAgICAgIGZvciAoaT0wOyBp IDwgdC0+bnN1cGdpZDsgaSsrKQotKyAgICAgICAgICAgIG1lbWNweSh0LT5zdXBncnBbaV0sIGdy b3VwX2Zyb21fZ2lkKHQtPnN1cGdpZFtpXSksIFBfR19TWik7Ci0rICAgIH0KLSsKLSAjaWYgMAot ICAgICBpZiAoKGZsYWdzICYgUFJPQ19GSUxMQ09NKSB8fCAoZmxhZ3MgJiBQUk9DX0ZJTExBUkcp KQkvKiByZWFkK3BhcnNlIC9wcm9jLyMvY21kbGluZSAqLwotIAl0LT5jbWRsaW5lID0gZmlsZTJz dHJ2ZWMocGF0aCwgImNtZGxpbmUiKTsKLUBAIC04OTcsNiArOTM3LDIzIEBAIHZvaWQgY2xvc2Vw cm9jKFBST0NUQUIqIFBUKSB7Ci0gICAgIH0KLSB9Ci0gCi0rLy8gYWxsb2NhdGUgbWVtb3J5IGZv ciBzdXBncnAKLSt2b2lkIGFsbG9jc3VwZ3JwKHByb2NfdCAqcCkgewotKyAgICBpZiAoIXAgfHwg cC0+bnN1cGdpZCA9PSAwKSByZXR1cm47Ci0rICAgIHAtPnN1cGdycCA9IChjaGFyKiopeG1hbGxv YyhwLT5uc3VwZ2lkICogc2l6ZW9mKGNoYXIqKSk7Ci0rICAgIGludCBpOwotKyAgICBmb3IgKGk9 MDsgaTxwLT5uc3VwZ2lkOyBpKyspCi0rICAgICAgcC0+c3VwZ3JwW2ldID0gKGNoYXIqKXhtYWxs b2MoUF9HX1NaICogc2l6ZW9mKGNoYXIpKTsKLSt9Ci0rCi0rLy8gZnJlZSBtZW1vcnkgYWxsb2Nh dGVkIGZvciBzdXBncnAKLSt2b2lkIGZyZWVzdXBncnAocHJvY190ICpwKSB7Ci0rICAgIGludCBp OwotKyAgICBmb3IgKGk9MDsgaTxwLT5uc3VwZ2lkOyBpKyspCi0rICAgICAgaWYgKHAtPnN1cGdy cFtpXSkgZnJlZShwLT5zdXBncnBbaV0pOwotKyAgICBmcmVlKHAtPnN1cGdycCk7Ci0rfQotKwot IC8vIGRlYWxsb2NhdGUgdGhlIHNwYWNlIGFsbG9jYXRlZCBieSByZWFkcHJvYyBpZiB0aGUgcGFz c2VkIHJidWYgd2FzIE5VTEwKLSB2b2lkIGZyZWVwcm9jKHByb2NfdCogcCkgewotICAgICBpZiAo IXApCS8qIGluIGNhc2UgcCBpcyBOVUxMICovCi1kaWZmIC0tZ2l0IGEvcHJvYy9yZWFkcHJvYy5o IGIvcHJvYy9yZWFkcHJvYy5oCi1pbmRleCAzYTlhZWNmLi5hYzE2NmNhIDEwMDY0NAotLS0tIGEv cHJvYy9yZWFkcHJvYy5oCi0rKysgYi9wcm9jL3JlYWRwcm9jLmgKLUBAIC0xMjIsNiArMTIyLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgcHJvY190IHsKLSAgICAgCWVncm91cFtQX0dfU1pdLAkvLyBzdGF0 dXMgICAgICAgICAgZWZmZWN0aXZlIGdyb3VwIG5hbWUKLSAgICAgCXNncm91cFtQX0dfU1pdLAkv LyBzdGF0dXMgICAgICAgICAgc2F2ZWQgZ3JvdXAgbmFtZQotICAgICAJZmdyb3VwW1BfR19TWl0s CS8vIHN0YXR1cyAgICAgICAgICBmaWxlc3lzdGVtIGdyb3VwIG5hbWUKLSsgICAgCSoqc3VwZ3Jw LCAvLyBzdGF0dXMgICAgICAgIHN1cHBsZW1lbnRhcnkgZ3JvdXBzCi0gICAgIAljbWRbMTZdOwkv LyBzdGF0LHN0YXR1cyAgICAgYmFzZW5hbWUgb2YgZXhlY3V0YWJsZSBmaWxlIGluIGNhbGwgdG8g ZXhlYygyKQotICAgICBzdHJ1Y3QgcHJvY190Ci0gCSpyaW5nLAkJLy8gbi9hICAgICAgICAgICAg IHRocmVhZCBncm91cCByaW5nCi1AQCAtMTM3LDYgKzEzOCw4IEBAIHR5cGVkZWYgc3RydWN0IHBy b2NfdCB7Ci0gICAgICAgICBzdWlkLCBzZ2lkLCAgICAgLy8gc3RhdHVzICAgICAgICAgIHNhdmVk Ci0gICAgICAgICBmdWlkLCBmZ2lkLCAgICAgLy8gc3RhdHVzICAgICAgICAgIGZzICh1c2VkIGZv ciBmaWxlIGFjY2VzcyBvbmx5KQotIAl0cGdpZCwJCS8vIHN0YXQgICAgICAgICAgICB0ZXJtaW5h bCBwcm9jZXNzIGdyb3VwIGlkCi0rCW5zdXBnaWQsCS8vIHN0YXR1cyAgICAgICAgbnVtYmVyIG9m IHN1cHBsZW1lbnRhcnkgZ3JvdXBzCi0rCSpzdXBnaWQsCS8vIHN0YXR1cyAgICAgICAgc3VwcGxl bWVudGFyeSBnaWQncwotIAlleGl0X3NpZ25hbCwJLy8gc3RhdCAgICAgICAgICAgIG1pZ2h0IG5v dCBiZSBTSUdDSExECi0gCXByb2Nlc3NvcjsgICAgICAvLyBzdGF0ICAgICAgICAgICAgY3VycmVu dCAob3IgbW9zdCByZWNlbnQ/KSBDUFUKLSAgICAgCWNoYXIgKipjZ3JvdXA7ICAvLyBjZ3JvdXAJ ICAgY3VycmVudCBjZ3JvdXAsIGxvb2tzIGxpa2UgYSBjbGFzc2ljIGZpbGVwYXRoCi1AQCAtMTk4 LDYgKzIwMSwxMiBAQCBleHRlcm4gcHJvY190KiogcmVhZHByb2N0YWIoaW50IGZsYWdzLCAuLi4g Lyogc2FtZSBhcyBvcGVucHJvYyAqLyApOwotIC8vIGNsZWFuLXVwIG9wZW4gZmlsZXMsIGV0YyBm cm9tIHRoZSBvcGVucHJvYygpCi0gZXh0ZXJuIHZvaWQgY2xvc2Vwcm9jKFBST0NUQUIqIFBUKTsK LSAKLSsvLyBhbGxvY2F0ZSBtZW1vcnkgZm9yIHN1cGdycAotK2V4dGVybiB2b2lkIGFsbG9jc3Vw Z3JwKHByb2NfdCAqcCk7Ci0rCi0rLy8gZnJlZSBtZW1vcnkgYWxsb2NhdGVkIGZvciBzdXBncnAK LStleHRlcm4gdm9pZCBmcmVlc3VwZ3JwKHByb2NfdCAqcCk7Ci0rCi0gLy8gcmV0cmlldmUgdGhl IG5leHQgcHJvY2VzcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEgc2V0IGJ5IHRoZSBvcGVucHJvYygp Ci0gZXh0ZXJuIHByb2NfdCogcmVhZHByb2MoUFJPQ1RBQiAqcmVzdHJpY3QgY29uc3QgUFQsIHBy b2NfdCAqcmVzdHJpY3QgcCk7Ci0gZXh0ZXJuIHByb2NfdCogcmVhZHRhc2soUFJPQ1RBQiAqcmVz dHJpY3QgY29uc3QgUFQsIGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QgcCwgcHJvY190ICpy ZXN0cmljdCB0KTsKLUBAIC0yMzcsOCArMjQ2LDkgQEAgZXh0ZXJuIHByb2NfdCAqIGdldF9wcm9j X3N0YXRzKHBpZF90IHBpZCwgcHJvY190ICpwKTsKLSAjZGVmaW5lIFBST0NfRklMTFNUQVQgICAg ICAgIDB4MDA0MCAvLyByZWFkIHN0YXQgLS0gY3VycmVudGx5IHVuY29uZGl0aW9uYWwKLSAjZGVm aW5lIFBST0NfRklMTFdDSEFOICAgICAgIDB4MDA4MCAvLyBsb29rIHVwIFdDSEFOIG5hbWUKLSAj ZGVmaW5lIFBST0NfRklMTEFSRyAgICAgICAgIDB4MDEwMCAvLyBhbGxvYyBhbmQgZmlsbCBpbiBg Y21kbGluZScKLSsjZGVmaW5lIFBST0NfRklMTFNVUEdSUCAgICAgIDB4MDIwMCAvLyByZXNvbHZl IHN1cHBsZW1lbnRhcnkgZ3JvdXAgaWQgbnVtYmVyIC0+IGdyb3VwIG5hbWUKLSAKLS0jZGVmaW5l IFBST0NfTE9PU0VfVEFTS1MgICAgIDB4MDIwMCAvLyB0aHJlYXQgdGhyZWFkcyBhcyBpZiB0aGV5 IHdlcmUgcHJvY2Vzc2VzCi0rI2RlZmluZSBQUk9DX0xPT1NFX1RBU0tTICAgICAweDA0MDAgLy8g dGhyZWF0IHRocmVhZHMgYXMgaWYgdGhleSB3ZXJlIHByb2Nlc3NlcwotIAotICNkZWZpbmUgUFJP Q19GSUxMQ0dST1VQICAgICAgMHgwNDAwIC8vIGFsbG9jIGFuZCBmaWxsIGluIGBjZ3JvdXBgCi0g Ci1kaWZmIC0tZ2l0IGEvcHMvZGlzcGxheS5jIGIvcHMvZGlzcGxheS5jCi1pbmRleCAzZDZiYmRl Li42ZWY1ZDU4IDEwMDY0NAotLS0tIGEvcHMvZGlzcGxheS5jCi0rKysgYi9wcy9kaXNwbGF5LmMK LUBAIC0zNDIsNiArMzQyLDggQEAgc3RhdGljIHZvaWQgc2ltcGxlX3NwZXcodm9pZCl7Ci0gICAg ICAgaWYoYnVmLmNtZGxpbmUpIGZyZWUoKHZvaWQqKSpidWYuY21kbGluZSk7IC8vIG91Z2h0IHRv IHJldXNlCi0gICAgICAgaWYoYnVmLmVudmlyb24pIGZyZWUoKHZvaWQqKSpidWYuZW52aXJvbik7 IC8vIG91Z2h0IHRvIHJldXNlCi0gICAgICAgaWYoYnVmLmNncm91cCkgIGZyZWUoKHZvaWQqKSpi dWYuY2dyb3VwKTsKLSsgICAgICBpZihidWYubnN1cGdpZCA+IDAgJiYgYnVmLnN1cGdpZCkgZnJl ZShidWYuc3VwZ2lkKTsKLSsgICAgICBpZigocHRwLT5mbGFncyAmIFBST0NfRklMTFNVUEdSUCkg JiYgYnVmLm5zdXBnaWQ+MCAmJiBidWYuc3VwZ3JwKSBmcmVlc3VwZ3JwKCZidWYpOwotICAgICB9 Ci0gICAgIGJyZWFrOwotICAgY2FzZSBURl9zaG93X3Byb2N8VEZfbG9vc2VfdGFza3M6ICAgIC8v IEggb3B0aW9uCi1AQCAtMzQ5LDEyICszNTEsMTYgQEAgc3RhdGljIHZvaWQgc2ltcGxlX3NwZXco dm9pZCl7Ci0gICAgICAgcHJvY190IGJ1ZjI7Ci0gICAgICAgLy8gbXVzdCBzdGlsbCBoYXZlIHRo ZSBwcm9jZXNzIGFsbG9jYXRlZAotICAgICAgIHdoaWxlKHJlYWR0YXNrKHB0cCwmYnVmLCZidWYy KSl7Ci0tICAgICAgICBpZighd2FudF90aGlzX3Byb2MoJmJ1ZikpIGNvbnRpbnVlOwotLSAgICAg ICAgc2hvd19vbmVfcHJvYygmYnVmMiwgdGFza19mb3JtYXRfbGlzdCk7Ci0rICAgICAgICBpZih3 YW50X3RoaXNfcHJvYygmYnVmKSkgc2hvd19vbmVfcHJvYygmYnVmMiwgdGFza19mb3JtYXRfbGlz dCk7Ci0rICAgICAgICBpZihidWYyLm5zdXBnaWQgPiAwICYmIGJ1ZjIuc3VwZ2lkICYmIGJ1Zi5z dXBnaWQhPWJ1ZjIuc3VwZ2lkKSBmcmVlKGJ1ZjIuc3VwZ2lkKTsKLSsgICAgICAgIGlmKChwdHAt PmZsYWdzICYgUFJPQ19GSUxMU1VQR1JQKSAmJiBidWYyLm5zdXBnaWQ+MCAmJiBidWYyLnN1cGdy cCAmJiBidWYuc3VwZ3JwIT1idWYyLnN1cGdycCkKLSsgICAgICAgICAgZnJlZXN1cGdycCgmYnVm Mik7Ci0gICAgICAgfQotICAgICAgIGlmKGJ1Zi5jbWRsaW5lKSBmcmVlKCh2b2lkKikqYnVmLmNt ZGxpbmUpOyAvLyBvdWdodCB0byByZXVzZQotICAgICAgIGlmKGJ1Zi5lbnZpcm9uKSBmcmVlKCh2 b2lkKikqYnVmLmVudmlyb24pOyAvLyBvdWdodCB0byByZXVzZQotICAgICAgIGlmKGJ1Zi5jZ3Jv dXApICBmcmVlKCh2b2lkKikqYnVmLmNncm91cCk7Ci0rICAgICAgaWYoYnVmLm5zdXBnaWQgPiAw ICYmIGJ1Zi5zdXBnaWQpIGZyZWUoYnVmLnN1cGdpZCk7Ci0rICAgICAgaWYoKHB0cC0+ZmxhZ3Mg JiBQUk9DX0ZJTExTVVBHUlApICYmIGJ1Zi5uc3VwZ2lkPjAgJiYgYnVmLnN1cGdycCkgZnJlZXN1 cGdycCgmYnVmKTsKLSAgICAgfQotICAgICBicmVhazsKLSAgIGNhc2UgVEZfc2hvd19wcm9jfFRG X3Nob3dfdGFzazogICAgICAvLyBtIGFuZCAtbSBvcHRpb25zCi1AQCAtMzYzLDExICszNjksMTgg QEAgc3RhdGljIHZvaWQgc2ltcGxlX3NwZXcodm9pZCl7Ci0gICAgICAgICBwcm9jX3QgYnVmMjsK LSAgICAgICAgIHNob3dfb25lX3Byb2MoJmJ1ZiwgcHJvY19mb3JtYXRfbGlzdCk7Ci0gICAgICAg ICAvLyBtdXN0IHN0aWxsIGhhdmUgdGhlIHByb2Nlc3MgYWxsb2NhdGVkCi0tICAgICAgICB3aGls ZShyZWFkdGFzayhwdHAsJmJ1ZiwmYnVmMikpIHNob3dfb25lX3Byb2MoJmJ1ZjIsIHRhc2tfZm9y bWF0X2xpc3QpOwotKyAgICAgICAgd2hpbGUocmVhZHRhc2socHRwLCZidWYsJmJ1ZjIpKXsKLSsg ICAgICAgICAgc2hvd19vbmVfcHJvYygmYnVmMiwgdGFza19mb3JtYXRfbGlzdCk7Ci0rICAgICAg ICAgIGlmKGJ1ZjIubnN1cGdpZCA+IDAgJiYgYnVmMi5zdXBnaWQgJiYgYnVmLnN1cGdpZCE9YnVm Mi5zdXBnaWQpIGZyZWUoYnVmMi5zdXBnaWQpOwotKyAgICAgICAgICBpZihwdHAtPmZsYWdzICYg UFJPQ19GSUxMU1VQR1JQICYmIGJ1ZjIubnN1cGdpZD4wICYmIGJ1ZjIuc3VwZ3JwICYmIGJ1Zi5z dXBncnAhPWJ1ZjIuc3VwZ3JwKQotKyAgICAgICAgICAgIGZyZWVzdXBncnAoJmJ1ZjIpOwotKyAg ICAgICAgfQotICAgICAgIH0KLSAgICAgICBpZihidWYuY21kbGluZSkgZnJlZSgodm9pZCopKmJ1 Zi5jbWRsaW5lKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYuZW52aXJvbikgZnJl ZSgodm9pZCopKmJ1Zi5lbnZpcm9uKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYu Y2dyb3VwKSAgZnJlZSgodm9pZCopKmJ1Zi5jZ3JvdXApOwotKyAgICAgIGlmKGJ1Zi5uc3VwZ2lk ID4gMCAmJiBidWYuc3VwZ2lkKSBmcmVlKGJ1Zi5zdXBnaWQpOwotKyAgICAgIGlmKChwdHAtPmZs YWdzICYgUFJPQ19GSUxMU1VQR1JQKSAmJiBidWYubnN1cGdpZD4wICYmIGJ1Zi5zdXBncnApIGZy ZWVzdXBncnAoJmJ1Zik7Ci0gICAgICB9Ci0gICAgIGJyZWFrOwotICAgY2FzZSBURl9zaG93X3Rh c2s6ICAgICAgICAgICAgICAgICAgIC8vIC1MIGFuZCAtVCBvcHRpb25zCi1AQCAtMzc1LDExICsz ODgsMTggQEAgc3RhdGljIHZvaWQgc2ltcGxlX3NwZXcodm9pZCl7Ci0gICAgICAgaWYod2FudF90 aGlzX3Byb2MoJmJ1ZikpewotICAgICAgICAgcHJvY190IGJ1ZjI7Ci0gICAgICAgICAvLyBtdXN0 IHN0aWxsIGhhdmUgdGhlIHByb2Nlc3MgYWxsb2NhdGVkCi0tICAgICAgICB3aGlsZShyZWFkdGFz ayhwdHAsJmJ1ZiwmYnVmMikpIHNob3dfb25lX3Byb2MoJmJ1ZjIsIHRhc2tfZm9ybWF0X2xpc3Qp OwotKyAgICAgICAgd2hpbGUocmVhZHRhc2socHRwLCZidWYsJmJ1ZjIpKXsKLSsgICAgICAgICAg c2hvd19vbmVfcHJvYygmYnVmMiwgdGFza19mb3JtYXRfbGlzdCk7Ci0rICAgICAgICAgIGlmKGJ1 ZjIubnN1cGdpZCA+IDAgJiYgYnVmMi5zdXBnaWQgJiYgYnVmLnN1cGdpZCE9YnVmMi5zdXBnaWQp IGZyZWUoYnVmMi5zdXBnaWQpOwotKyAgICAgICAgICBpZihwdHAtPmZsYWdzICYgUFJPQ19GSUxM U1VQR1JQICYmIGJ1ZjIubnN1cGdpZD4wICYmIGJ1ZjIuc3VwZ3JwICYmIGJ1Zi5zdXBncnAhPWJ1 ZjIuc3VwZ3JwKQotKyAgICAgICAgICAgIGZyZWVzdXBncnAoJmJ1ZjIpOwotKyAgICAgICAgfQot ICAgICAgIH0KLSAgICAgICBpZihidWYuY21kbGluZSkgZnJlZSgodm9pZCopKmJ1Zi5jbWRsaW5l KTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYuZW52aXJvbikgZnJlZSgodm9pZCop KmJ1Zi5lbnZpcm9uKTsgLy8gb3VnaHQgdG8gcmV1c2UKLSAgICAgICBpZihidWYuY2dyb3VwKSAg ZnJlZSgodm9pZCopKmJ1Zi5jZ3JvdXApOwotKyAgICAgIGlmKGJ1Zi5uc3VwZ2lkID4gMCAmJiBi dWYuc3VwZ2lkKSBmcmVlKGJ1Zi5zdXBnaWQpOwotKyAgICAgIGlmKChwdHAtPmZsYWdzICYgUFJP Q19GSUxMU1VQR1JQKSAmJiBidWYubnN1cGdpZD4wICYmIGJ1Zi5zdXBncnApIGZyZWVzdXBncnAo JmJ1Zik7Ci0gICAgfQotICAgICBicmVhazsKLSAgIH0KLUBAIC01NDIsNiArNTYyLDEyIEBAIHN0 YXRpYyB2b2lkIGZhbmN5X3NwZXcodm9pZCl7Ci0gICBxc29ydChwcm9jZXNzZXMsIG4sIHNpemVv Zihwcm9jX3QqKSwgY29tcGFyZV90d29fcHJvY3MpOwotICAgaWYoZm9yZXN0X3R5cGUpIHNob3df Zm9yZXN0KG4pOwotICAgZWxzZSBzaG93X3Byb2NfYXJyYXkocHRwLG4pOwotKyAgaW50IGk7Ci0r ICBmb3IgKGk9MDsgaTxuOyBpKyspCi0rICAgIGlmIChwcm9jZXNzZXNbaV0tPm5zdXBnaWQ+MCAm JiBwcm9jZXNzZXNbaV0tPnN1cGdpZCkgZnJlZShwcm9jZXNzZXNbaV0tPnN1cGdpZCk7Ci0rICBp ZiAocHRwLT5mbGFncyAmIFBST0NfRklMTFNVUEdSUCkKLSsgICAgZm9yIChpPTA7IGk8bjsgaSsr KQotKyAgICAgIGlmIChwcm9jZXNzZXNbaV0tPm5zdXBnaWQ+MCAmJiBwcm9jZXNzZXNbaV0tPnN1 cGdycCkgZnJlZXN1cGdycChwcm9jZXNzZXNbaV0pOwotICAgY2xvc2Vwcm9jKHB0cCk7Ci0gfQot IAotZGlmZiAtLWdpdCBhL3BzL291dHB1dC5jIGIvcHMvb3V0cHV0LmMKLWluZGV4IGExNjVlZDUu LjFhMTk2ZmYgMTAwNjQ0Ci0tLS0gYS9wcy9vdXRwdXQuYwotKysrIGIvcHMvb3V0cHV0LmMKLUBA IC0yMTEsNiArMjExLDMyIEBAIHN0YXRpYyBpbnQgc3Jfc3dhcGFibGUoY29uc3QgcHJvY190KiBQ LCBjb25zdCBwcm9jX3QqIFEpIHsKLSAgIHJldHVybiAwOwotIH0KLSAKLStzdGF0aWMgaW50IHNy X3N1cGdpZChjb25zdCBwcm9jX3QqIFAsIGNvbnN0IHByb2NfdCogUSl7Ci0rICBpbnQgaTsKLSsg IGZvciAoaSA9IDA7IGkgPCBJTlRfTUFYOyBpKyspewotKyAgICBpZiAoUC0+bnN1cGdpZCA9PSBp KXsKLSsgICAgICBpZiAoUS0+bnN1cGdpZCA9PSBpKSByZXR1cm4gMDsKLSsgICAgICBlbHNlIHJl dHVybiAtMTsKLSsgICAgfQotKyAgICBpZiAoUS0+bnN1cGdpZCA9PSBpKSByZXR1cm4gMTsKLSsJ aWYgKFAtPnN1cGdpZFtpXSAhPSBRLT5zdXBnaWRbaV0pIHJldHVybiBQLT5zdXBnaWRbaV0gLSBR LT5zdXBnaWRbaV07Ci0rICB9Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0rc3RhdGljIGludCBzcl9z dXBncnAoY29uc3QgcHJvY190KiBQLCBjb25zdCBwcm9jX3QqIFEpewotKyAgaW50IGk7Ci0rICBm b3IgKGkgPSAwOyBpIDwgSU5UX01BWDsgaSsrKXsKLSsgICAgaWYgKFAtPm5zdXBnaWQgPT0gaSl7 Ci0rICAgICAgaWYgKFEtPm5zdXBnaWQgPT0gaSkgcmV0dXJuIDA7Ci0rICAgICAgZWxzZSByZXR1 cm4gLTE7Ci0rICAgIH0KLSsgICAgaWYgKFEtPm5zdXBnaWQgPT0gaSkgcmV0dXJuIDE7Ci0rICAg IGludCBjbXAgPSBzdHJuY21wKFAtPnN1cGdycFtpXSxRLT5zdXBncnBbaV0sUF9HX1NaKTsKLSsg ICAgaWYgKGNtcCAhPSAwKSByZXR1cm4gY21wOwotKyAgfQotKyAgcmV0dXJuIDA7Ci0rfQotIAot IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCi0gLyoqKioqKioqKioqKiBMb3RzIG9mIGZvcm1hdCBmdW5j dGlvbnMsIHN0YXJ0aW5nIHdpdGggdGhlIE5PUCAqKioqKioqKioqKioqKi8KLUBAIC0xMDYyLDYg KzEwODgsMjQgQEAgc3RhdGljIGludCBwcl9mdWlkKGNoYXIgKnJlc3RyaWN0IGNvbnN0IG91dGJ1 ZiwgY29uc3QgcHJvY190ICpyZXN0cmljdCBjb25zdCBwcCkKLSAgIHJldHVybiBzbnByaW50Zihv dXRidWYsIENPTFdJRCwgIiVkIiwgcHAtPmZ1aWQpOwotIH0KLSAKLStzdGF0aWMgaW50IHByX3N1 cGdpZChjaGFyICpyZXN0cmljdCBjb25zdCBvdXRidWYsIGNvbnN0IHByb2NfdCAqcmVzdHJpY3Qg Y29uc3QgcHApewotKyAgaWYgKHBwLT5uc3VwZ2lkID09IDApIHJldHVybiBzbnByaW50ZihvdXRi dWYsMiwiLSIpOwotKyAgaW50IHJlc3QgPSBDT0xXSUQ7Ci0rICBpbnQgaSA9IDA7Ci0rICBmb3Ig KGkgPSAwOyBpIDwgcHAtPm5zdXBnaWQgJiYgcmVzdCA+IDU7IGkrKykKLSsgICAgcmVzdC09IHNu cHJpbnRmKG91dGJ1ZitDT0xXSUQtcmVzdCwgcmVzdCwgIiVkICIsIHBwLT5zdXBnaWRbaV0pOwot KyAgcmV0dXJuIENPTFdJRC1yZXN0OwotK30KLSsKLStzdGF0aWMgaW50IHByX3N1cGdycChjaGFy ICpyZXN0cmljdCBjb25zdCBvdXRidWYsIGNvbnN0IHByb2NfdCAqcmVzdHJpY3QgY29uc3QgcHAp ewotKyAgaWYgKHBwLT5uc3VwZ2lkID09IDApIHJldHVybiBzbnByaW50ZihvdXRidWYsMiwiLSIp OwotKyAgaW50IHJlc3QgPSBDT0xXSUQ7Ci0rICBpbnQgaSA9IDA7Ci0rICBmb3IgKGkgPSAwOyBp IDwgcHAtPm5zdXBnaWQgJiYgcmVzdCA+IHNpemVvZiggcHAtPnN1cGdycFtpXSApICsgMTsgaSsr KQotKyAgICByZXN0LT0gc25wcmludGYob3V0YnVmK0NPTFdJRC1yZXN0LCByZXN0LCAiJXMgIiwg cHAtPnN1cGdycFtpXSk7Ci0rICByZXR1cm4gQ09MV0lELXJlc3Q7Ci0rfQotKwotIC8vIFRoZSBP cGVuIEdyb3VwIEJhc2UgU3BlY2lmaWNhdGlvbnMgSXNzdWUgNiAoSUVFRSBTdGQgMTAwMy4xLCAy MDA0IEVkaXRpb24pCi0gLy8gcmVxdWlyZXMgdGhhdCB1c2VyIGFuZCBncm91cCBuYW1lcyBwcmlu dCBhcyBkZWNpbWFsIG51bWJlcnMgaWYgdGhlcmUgaXMKLSAvLyBub3QgZW5vdWdoIHJvb20gaW4g dGhlIGNvbHVtbiwgc28gdG91Z2ggbHVjayBpZiB5b3UgZG9uJ3QgbGlrZSBpdC4KLUBAIC0xMjkz LDYgKzEzMzcsNyBAQCBzdGF0aWMgaW50IHByX3RfbGVmdDIoY2hhciAqcmVzdHJpY3QgY29uc3Qg b3V0YnVmLCBjb25zdCBwcm9jX3QgKnJlc3RyaWN0IGNvbnN0Ci0gI2RlZmluZSBVU1IgUFJPQ19G SUxMVVNSICAgICAvKiB1aWRfdCAtPiB1c2VyIG5hbWVzICovCi0gI2RlZmluZSBHUlAgUFJPQ19G SUxMR1JQICAgICAvKiBnaWRfdCAtPiBncm91cCBuYW1lcyAqLwotICNkZWZpbmUgV0NIIFBST0Nf RklMTFdDSEFOICAgLyogZG8gV0NIQU4gbG9va3VwICovCi0rI2RlZmluZSBTVVBHUlAgUFJPQ19G SUxMU1VQR1JQICAgICAgLyogc3VwZ2lkIC0+IHN1cHBsZW1lbnRhcnkgZ3JvdXAgbmFtZXMgKi8K LSAKLSAjZGVmaW5lIENHUlAgUFJPQ19GSUxMQ0dST1VQIC8qIHJlYWQgY2dyb3VwICovCi0gLyog VE9ETwotQEAgLTE0OTAsNiArMTUzNSw4IEBAIHN0YXRpYyBjb25zdCBmb3JtYXRfc3RydWN0IGZv cm1hdF9hcnJheVtdID0gewotIHsic3RhdHVzIiwgICAgIlNUQVRVUyIsICBwcl9ub3AsICAgICAg c3Jfbm9wLCAgICAgNiwgICAwLCAgICBERUMsIEFOfFJJR0hUfSwKLSB7InN0aW1lIiwgICAgICJT VElNRSIsICAgcHJfc3RpbWUsICAgIHNyX3N0aW1lLCAgIDUsICAgMCwgICAgWFhYLCBFVHxSSUdI VH0sIC8qIHdhcyA2IHdpZGUgKi8KLSB7InN1aWQiLCAgICAgICJTVUlEIiwgICAgcHJfc3VpZCwg ICAgIHNyX3N1aWQsICAgIDUsICAgMCwgICAgTE54LCBFVHxSSUdIVH0sCi0reyJzdXBnaWQiLCAg ICAiU1VQR0lEIiwgIHByX3N1cGdpZCwgICBzcl9zdXBnaWQsICAyNywgICAwLCAgICBMTlgsIFBP fFVOTElNSVRFRH0sCi0reyJzdXBncnAiLCAgICAiU1VQR1JQIiwgIHByX3N1cGdycCwgICBzcl9z dXBncnAsICAyNywgU1VQR1JQLCBMTlgsIFBPfFVOTElNSVRFRH0sCi0geyJzdXNlciIsICAgICAi U1VTRVIiLCAgIHByX3N1c2VyLCAgICBzcl9zdXNlciwgICA4LCBVU1IsICAgIExOeCwgRVR8VVNF Un0sCi0geyJzdmdpZCIsICAgICAiU1ZHSUQiLCAgIHByX3NnaWQsICAgICBzcl9zZ2lkLCAgICA1 LCAgIDAsICAgIFhYWCwgRVR8UklHSFR9LAotIHsic3Zncm91cCIsICAgIlNWR1JPVVAiLCBwcl9z Z3JvdXAsICAgc3Jfc2dyb3VwLCAgOCwgR1JQLCAgICBMTlgsIEVUfFVTRVJ9LAotZGlmZiAtLWdp dCBhL3BzL3BzLjEgYi9wcy9wcy4xCi1pbmRleCAwZjg5NmJmLi45MGZhYmJjIDEwMDY0NAotLS0t IGEvcHMvcHMuMQotKysrIGIvcHMvcHMuMQotQEAgLTEzMDMsNiArMTMwMywxNiBAQCBzdWlkCVNV SUQJVHsKLSBzYXZlZCB1c2VyXCBJRC4gIChhbGlhc1wgXGZCc3Z1aWRcZlIpLgotIFR9Ci0gCi0r c3VwZ2lkCVNVUEdJRAlUewotK2dpZCBvZiBzdXBwbGVtZW50YXJ5IGdyb3Vwcywgc2VlCi0rLkJS IGdldGdyb3VwcyAoMikuCi0rVH0KLSsKLStzdXBncnAJU1VQR1JQCVR7Ci0rbmFtZXMgb2Ygc3Vw cGxlbWVudGFyeSBncm91cHMsIHNlZQotKy5CUiBnZXRncm91cHMgKDIpLgotK1R9Ci0rCi0gc3Vz ZXIJU1VTRVIJVHsKLSBzYXZlZCB1c2VyIG5hbWUuICBUaGlzIHdpbGwgYmUgdGhlIHRleHR1YWwg dXNlclwgSUQsCi0gaWZcIGl0IGNhbiBiZSBvYnRhaW5lZCBhbmQgdGhlIGZpZWxkIHdpZHRoIHBl cm1pdHMsCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw NDYtbWFrZWZpbGVfZGV2X251bGwucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ2LW1h a2VmaWxlX2Rldl9udWxsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDhl OTJjLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDYtbWFrZWZpbGVfZGV2 X251bGwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1Gcm9tIDgxN2FjZjFk YjczNjMxNWJjYzg5MDgyZmUxMmZlNDFhNGE5NDkyZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nw cy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBG cmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNDYvNzBdIG1h a2VmaWxlX2Rldl9udWxsCi0KLS0tLQotIE1ha2VmaWxlIHwgICAgMiArLQotIDEgZmlsZXMgY2hh bmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFr ZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggMDY3MjhmYy4uYWJkZGI2ZSAxMDA2NDQKLS0tLSBhL01h a2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTEyMCw3ICsxMjAsNyBAQCBpZm5lcSAoJChNQUtF Q01ER09BTFMpLGJldGEpCi0gIyBVbmxpa2UgdGhlIGtlcm5lbCBvbmUsIHRoaXMgY2hlY2tfZ2Nj IGdvZXMgYWxsIHRoZSB3YXkgdG8KLSAjIHByb2R1Y2luZyBhbiBleGVjdXRhYmxlLiBUaGVyZSBt aWdodCBiZSBhIC1tNjQgdGhhdCB3b3JrcwotICMgdW50aWwgeW91IGdvIGxvb2tpbmcgZm9yIGEg NjQtYml0IGN1cnNlcyBsaWJyYXJ5LgotLWNoZWNrX2djYyA9ICQoc2hlbGwgaWYgJChDQykgJChB TExfQ1BQRkxBR1MpICQoQUxMX0NGTEFHUykgZHVtbXkuYyAkKEFMTF9MREZMQUdTKSAkKDEpIC1v IC9kZXYvbnVsbCAkKENVUlNFUykgJChDVVJTRVNXKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuIGVj aG8gIiQoMSkiOyBlbHNlIGVjaG8gIiQoMikiOyBmaSA7KQotK2NoZWNrX2djYyA9ICQoc2hlbGwg aWYgJChDQykgJChBTExfQ1BQRkxBR1MpICQoQUxMX0NGTEFHUykgZHVtbXkuYyAkKEFMTF9MREZM QUdTKSAkKDEpIC1vIHdpbGxfdGhpc19maWxlX3JlYWxseV9leGlzdC50bXAgJChDVVJTRVMpICQo Q1VSU0VTVykgPiAvZGV2L251bGwgMj4mMTsgdGhlbiBlY2hvICIkKDEpIjsgZWxzZSBlY2hvICIk KDIpIjsgZmkgOyBybSAtZiB3aWxsX3RoaXNfZmlsZV9yZWFsbHlfZXhpc3QudG1wKQotIAotICMg QmUgNjQtYml0IGlmIGF0IGFsbCBwb3NzaWJsZS4gSW4gYSBjcm9zcy1jb21waWxpbmcgc2l0dWF0 aW9uLCBvbmUgbWF5Ci0gIyBkbyAibWFrZSBtNjQ9LW0zMiBsaWI2ND1saWIiIHRvIHByb2R1Y2Ug MzItYml0IGV4ZWN1dGFibGVzLiBETyBOT1QKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDA0Ny1wZ3JlcC4xLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA0Ny1wZ3JlcC4xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGY1 ZDY5Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNDctcGdyZXAuMS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDIxOCArMCwwIEBACi1Gcm9tIGM1NWYwZmQwZDc3NThjYzE3 MGVmNzJmY2UwZDRhNjZkMzIwMDkwNmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBo dHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNf My4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1h ciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNDcvNzBdIHBncmVwLjEKLQot VXNlcyAuQlIgZm9yIHNlZSBhbHNvIHNlY3Rpb24gIzQzNzY3OAotLS0tCi0gcGdyZXAuMSB8ICAg OTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvcGdyZXAuMSBiL3BncmVwLjEKLWluZGV4IDkxNTI3OTkuLjI1 N2E2Y2UgMTAwNjQ0Ci0tLS0gYS9wZ3JlcC4xCi0rKysgYi9wZ3JlcC4xCi1AQCAtMiwzNSArMiwz OSBAQAotIC5cIiBMaWNlbnNlZCB1bmRlciB2ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLgotIC5cIiBDb3B5cmlnaHQgMjAwMCBLamV0aWwgVG9yZ3JpbSBIb21tZQot IC5cIgotLS5USCBQR1JFUCAxICJKdW5lIDI1LCAyMDAwIiAiTGludXgiICJMaW51eCBVc2VyJ3Mg TWFudWFsIgotKy5USCBQR1JFUCAxICJPY3RvYmVyIDUsIDIwMDciICJMaW51eCIgIkxpbnV4IFVz ZXIncyBNYW51YWwiCi0gLlNIIE5BTUUKLSBwZ3JlcCwgcGtpbGwgXC0gbG9vayB1cCBvciBzaWdu YWwgcHJvY2Vzc2VzIGJhc2VkIG9uIG5hbWUgYW5kIG90aGVyIGF0dHJpYnV0ZXMKLSAKLSAuU0gg U1lOT1BTSVMKLS1wZ3JlcCBbXC1jZmx2eF0gW1wtZCBcZklkZWxpbWl0ZXJcZlBdIFtcLW58XC1v XSBbXC1QIFxmSXBwaWRcZlAsLi4uXSBbXC1nIFxmSXBncnBcZlAsLi4uXQotLS5icgotLQlbXC1z IFxmSXNpZFxmUCwuLi5dIFtcLXUgXGZJZXVpZFxmUCwuLi5dIFtcLVUgXGZJdWlkXGZQLC4uLl0g W1wtRyBcZklnaWRcZlAsLi4uXQotLS5icgotLQlbXC10IFxmSXRlcm1cZlAsLi4uXSBbXGZJcGF0 dGVyblxmUF0KLS0KLS1wa2lsbCBbXC1cZklzaWduYWxcZlBdIFtcLWZ2eF0gW1wtbnxcLW9dIFtc LVAgXGZJcHBpZFxmUCwuLi5dIFtcLWcgXGZJcGdycFxmUCwuLi5dCi0tLmJyCi0tCVtcLXMgXGZJ c2lkXGZQLC4uLl0gW1wtdSBcZklldWlkXGZQLC4uLl0gW1wtVSBcZkl1aWRcZlAsLi4uXSBbXC1H IFxmSWdpZFxmUCwuLi5dCi0tLmJyCi0tCVtcLXQgXGZJdGVybVxmUCwuLi5dIFtcZklwYXR0ZXJu XGZQXQotKy5uYQotK1xmQnBncmVwXGZSIFtcZkJcLWNmbHZ4XGZSXSBbXGZCXC1kXCBcZklkZWxp bWl0ZXJcZlJdIFtcZkJcLW5cZlJ8XGZCXC1vXGZSXSBcCi0rW1xmQlwtUFwgXGZJcHBpZFxmUiwu Li5dIFtcZkJcLWdcIFxmSXBncnBcZlIsLi4uXSBbXGZCXC1zXCBcZklzaWRcZlIsLi4uXSBcCi0r W1xmQlwtdVwgXGZJZXVpZFxmUiwuLi5dIFtcZkJcLVVcIFxmSXVpZFxmUiwuLi5dIFtcZkJcLUdc IFxmSWdpZFxmUiwuLi5dIFwKLStbXGZCXC10XCBcZkl0ZXJtXGZSLC4uLl0gW1xmSXBhdHRlcm5c ZlJdCi0rCi0rLkhQCi0rXGZCcGtpbGxcZlIgW1xmQlwtXGZJc2lnbmFsXGZSXSBbXGZCXC1mdnhc ZlJdIFtcZkJcLW5cZlJ8XGZCXC1vXGZSXSBcCi0rW1xmQlwtUFwgXGZJcHBpZFxmUiwuLi5dIFtc ZkJcLWdcIFxmSXBncnBcZlIsLi4uXSBbXGZCXC1zXCBcZklzaWRcZlIsLi4uXSBcCi0rW1xmQlwt dVwgXGZJZXVpZFxmUiwuLi5dIFtcZkJcLVVcIFxmSXVpZFxmUiwuLi5dIFtcZkJcLUdcIFxmSWdp ZFxmUiwuLi5dIFwKLStbXGZCXC10XCBcZkl0ZXJtXGZSLC4uLl0gW1xmSXBhdHRlcm5cZlJdCi0g Ci0gLlNIIERFU0NSSVBUSU9OCi0gXGZCcGdyZXBcZlAgbG9va3MgdGhyb3VnaCB0aGUgY3VycmVu dGx5IHJ1bm5pbmcgcHJvY2Vzc2VzIGFuZCBsaXN0cyB0aGUKLSBwcm9jZXNzIElEcyB3aGljaCBt YXRjaGVzIHRoZSBzZWxlY3Rpb24gY3JpdGVyaWEgdG8gc3Rkb3V0LiAgQWxsCi0gdGhlIGNyaXRl cmlhIGhhdmUgdG8gbWF0Y2guICBGb3IgZXhhbXBsZSwKLSAKLS1wZ3JlcCAtdSByb290IHNzaGQK LSsuSVAKLSskIHBncmVwIFwtdSByb290IHNzaGQKLSAKLSsuUFAKLSB3aWxsIG9ubHkgbGlzdCB0 aGUgcHJvY2Vzc2VzIGNhbGxlZCBcZkJzc2hkXGZQIEFORCBvd25lZCBieSBcZkJyb290XGZQLgot IE9uIHRoZSBvdGhlciBoYW5kLAotIAotLXBncmVwIC11IHJvb3QsZGFlbW9uCi0rLklQCi0rJCBw Z3JlcCBcLXUgcm9vdCxkYWVtb24KLSAKLSsuUFAKLSB3aWxsIGxpc3QgdGhlIHByb2Nlc3NlcyBv d25lZCBieSBcZkJyb290XGZQIE9SIFxmQmRhZW1vblxmUC4KLSAKLSBcZkJwa2lsbFxmUCB3aWxs IHNlbmQgdGhlIHNwZWNpZmllZCBzaWduYWwgKGJ5IGRlZmF1bHQgXGZCU0lHVEVSTVxmUCkKLUBA IC0zOCwxOCArNDIsMTggQEAgdG8gZWFjaCBwcm9jZXNzIGluc3RlYWQgb2YgbGlzdGluZyB0aGVt IG9uIHN0ZG91dC4KLSAKLSAuU0ggT1BUSU9OUwotIC5UUAotLVwtYwotK1xmQlwtY1xmUgotIFN1 cHByZXNzIG5vcm1hbCBvdXRwdXQ7IGluc3RlYWQgcHJpbnQgYSBjb3VudCBvZiBtYXRjaGluZyBw cm9jZXNzZXMuCi0gLlRQCi0tXC1kIFxmSWRlbGltaXRlclxmUAotK1xmQlwtZCBcZklkZWxpbWl0 ZXJcZlAKLSBTZXRzIHRoZSBzdHJpbmcgdXNlZCB0byBkZWxpbWl0IGVhY2ggcHJvY2VzcyBJRCBp biB0aGUgb3V0cHV0IChieQotIGRlZmF1bHQgYSBuZXdsaW5lKS4gIChcZkJwZ3JlcFxmUCBvbmx5 LikKLSAuVFAKLS1cLWYKLStcZkJcLWZcZlIKLSBUaGUgXGZJcGF0dGVyblxmUCBpcyBub3JtYWxs eSBvbmx5IG1hdGNoZWQgYWdhaW5zdCB0aGUgcHJvY2VzcyBuYW1lLgotLVdoZW4gXC1mIGlzIHNl dCwgdGhlIGZ1bGwgY29tbWFuZCBsaW5lIGlzIHVzZWQuCi0rV2hlbiBcZkJcLWZcZlIgaXMgc2V0 LCB0aGUgZnVsbCBjb21tYW5kIGxpbmUgaXMgdXNlZC4KLSAuVFAKLS1cLWcgXGZJcGdycFxmUCwu Li4KLStcZkJcLWcgXGZJcGdycFxmUCwuLi4KLSBPbmx5IG1hdGNoIHByb2Nlc3NlcyBpbiB0aGUg cHJvY2VzcyBncm91cCBJRHMgbGlzdGVkLiAgUHJvY2VzcyBncm91cCAwCi0gaXMgdHJhbnNsYXRl ZCBpbnRvIFxmQnBncmVwXGZQJ3Mgb3IgXGZCcGtpbGxcZlAncyBvd24gcHJvY2VzcyBncm91cC4K LSAuVFAKLUBAIC01Nyw0MCArNjEsNDAgQEAgaXMgdHJhbnNsYXRlZCBpbnRvIFxmQnBncmVwXGZQ J3Mgb3IgXGZCcGtpbGxcZlAncyBvd24gcHJvY2VzcyBncm91cC4KLSBPbmx5IG1hdGNoIHByb2Nl c3NlcyB3aG9zZSByZWFsIGdyb3VwIElEIGlzIGxpc3RlZC4gIEVpdGhlciB0aGUKLSBudW1lcmlj YWwgb3Igc3ltYm9saWNhbCB2YWx1ZSBtYXkgYmUgdXNlZC4KLSAuVFAKLS1cLWwKLStcZkJcLWxc ZlIKLSBMaXN0IHRoZSBwcm9jZXNzIG5hbWUgYXMgd2VsbCBhcyB0aGUgcHJvY2VzcyBJRC4gKFxm QnBncmVwXGZQIG9ubHkuKQotIC5UUAotLVwtbgotK1xmQlwtblxmUgotIFNlbGVjdCBvbmx5IHRo ZSBuZXdlc3QgKG1vc3QgcmVjZW50bHkgc3RhcnRlZCkgb2YgdGhlIG1hdGNoaW5nCi0gcHJvY2Vz c2VzLgotIC5UUAotLVwtbwotK1xmQlwtb1xmUgotIFNlbGVjdCBvbmx5IHRoZSBvbGRlc3QgKGxl YXN0IHJlY2VudGx5IHN0YXJ0ZWQpIG9mIHRoZSBtYXRjaGluZwotIHByb2Nlc3Nlcy4KLSAuVFAK LS1cLVAgXGZJcHBpZFxmUCwuLi4KLStcZkJcLVAgXGZJcHBpZFxmUCwuLi4KLSBPbmx5IG1hdGNo IHByb2Nlc3NlcyB3aG9zZSBwYXJlbnQgcHJvY2VzcyBJRCBpcyBsaXN0ZWQuCi0gLlRQCi0tXC1z IFxmSXNpZFxmUCwuLi4KLStcZkJcLXMgXGZJc2lkXGZQLC4uLgotIE9ubHkgbWF0Y2ggcHJvY2Vz c2VzIHdob3NlIHByb2Nlc3Mgc2Vzc2lvbiBJRCBpcyBsaXN0ZWQuICBTZXNzaW9uIElEIDAKLSBp cyB0cmFuc2xhdGVkIGludG8gXGZCcGdyZXBcZlAncyBvciBcZkJwa2lsbFxmUCdzIG93biBzZXNz aW9uIElELgotIC5UUAotLVwtdCBcZkl0ZXJtXGZQLC4uLgotK1xmQlwtdCBcZkl0ZXJtXGZQLC4u LgotIE9ubHkgbWF0Y2ggcHJvY2Vzc2VzIHdob3NlIGNvbnRyb2xsaW5nIHRlcm1pbmFsIGlzIGxp c3RlZC4gIFRoZQotIHRlcm1pbmFsIG5hbWUgc2hvdWxkIGJlIHNwZWNpZmllZCB3aXRob3V0IHRo ZSAiL2Rldi8iIHByZWZpeC4KLSAuVFAKLS1cLXUgXGZJZXVpZFxmUCwuLi4KLStcZkJcLXUgXGZJ ZXVpZFxmUCwuLi4KLSBPbmx5IG1hdGNoIHByb2Nlc3NlcyB3aG9zZSBlZmZlY3RpdmUgdXNlciBJ RCBpcyBsaXN0ZWQuICBFaXRoZXIgdGhlCi0gbnVtZXJpY2FsIG9yIHN5bWJvbGljYWwgdmFsdWUg bWF5IGJlIHVzZWQuCi0gLlRQCi0tXC1VIFxmSXVpZFxmUCwuLi4KLStcZkJcLVUgXGZJdWlkXGZQ LC4uLgotIE9ubHkgbWF0Y2ggcHJvY2Vzc2VzIHdob3NlIHJlYWwgdXNlciBJRCBpcyBsaXN0ZWQu ICBFaXRoZXIgdGhlCi0gbnVtZXJpY2FsIG9yIHN5bWJvbGljYWwgdmFsdWUgbWF5IGJlIHVzZWQu Ci0gLlRQCi0tXC12Ci0rXGZCXC12XGZSCi0gTmVnYXRlcyB0aGUgbWF0Y2hpbmcuCi0gLlRQCi0t XC14Ci0rXGZCXC14XGZSCi0gT25seSBtYXRjaCBwcm9jZXNzZXMgd2hvc2UgbmFtZSAob3IgY29t bWFuZCBsaW5lIGlmIFwtZiBpcyBzcGVjaWZpZWQpCi0gXGZCZXhhY3RseVxmUCBtYXRjaCB0aGUg XGZJcGF0dGVyblxmUC4KLSAuVFAKLUBAIC0xMDcsMzIgKzExMSw0MCBAQCBwcm9jZXNzIG5hbWVz IG9yIGNvbW1hbmQgbGluZXMuCi0gLlNIIEVYQU1QTEVTCi0gRXhhbXBsZSAxOiBGaW5kIHRoZSBw cm9jZXNzIElEIG9mIHRoZSBcZkJuYW1lZFxmUCBkYWVtb246Ci0gCi0tdW5peCQgcGdyZXAgXC11 IHJvb3QgbmFtZWQKLSsuSVAKLSskIHBncmVwIFwtdSByb290IG5hbWVkCi0gCi0rLlBQCi0gRXhh bXBsZSAyOiBNYWtlIFxmQnN5c2xvZ1xmUCByZXJlYWQgaXRzIGNvbmZpZ3VyYXRpb24gZmlsZToK LSAKLS11bml4JCBwa2lsbCBcLUhVUCBzeXNsb2dkCi0rLklQCi0rJCBwa2lsbCBcLUhVUCBzeXNs b2dkCi0gCi0rLlBQCi0gRXhhbXBsZSAzOiBHaXZlIGRldGFpbGVkIGluZm9ybWF0aW9uIG9uIGFs bCBcZkJ4dGVybVxmUCBwcm9jZXNzZXM6Ci0gCi0tdW5peCQgcHMgXC1mcCAkKHBncmVwIFwtZCwg XC14IHh0ZXJtKQotKy5JUAotKyQgcHMgXC1mcCAkKHBncmVwIFwtZCwgXC14IHh0ZXJtKQotIAot Ky5QUAotIEV4YW1wbGUgNDogTWFrZSBhbGwgXGZCbmV0c2NhcGVcZlAgcHJvY2Vzc2VzIHJ1biBu aWNlcjoKLSAKLS11bml4JCByZW5pY2UgKzQgYHBncmVwIG5ldHNjYXBlYAotKy5JUAotKyQgcmVu aWNlICs0IGBwZ3JlcCBuZXRzY2FwZWAKLSAKLSAuU0ggIkVYSVQgU1RBVFVTIgotKy5QRCAwCi0g LlRQCi0tLkkgIjAiCi0rLkkgMAotIE9uZSBvciBtb3JlIHByb2Nlc3NlcyBtYXRjaGVkIHRoZSBj cml0ZXJpYS4KLSAuVFAKLS0uSSAiMSIKLSsuSSAxCi0gTm8gcHJvY2Vzc2VzIG1hdGNoZWQuCi0g LlRQCi0tLkkgIjIiCi0rLkkgMgotIFN5bnRheCBlcnJvciBpbiB0aGUgY29tbWFuZCBsaW5lLgot IC5UUAotLS5JICIzIgotKy5JIDMKLSBGYXRhbCBlcnJvcjogb3V0IG9mIG1lbW9yeSBldGMuCi0g Ci0gLlNIIE5PVEVTCi1AQCAtMTQ0LDEzICsxNTYsMTkgQEAgVGhlIHJ1bm5pbmcgXGZCcGdyZXBc ZlAgb3IgXGZCcGtpbGxcZlAgcHJvY2VzcyB3aWxsIG5ldmVyIHJlcG9ydAotIGl0c2VsZiBhcyBh IG1hdGNoLgotIAotIC5TSCBCVUdTCi0tVGhlIG9wdGlvbnMgXC1uIGFuZCBcLW8gYW5kIFwtdiBj YW4gbm90IGJlIGNvbWJpbmVkLiAgTGV0IG1lIGtub3cgaWYKLS15b3UgbmVlZCB0byBkbyB0aGlz LgotK1RoZSBvcHRpb25zIFxmQlwtblxmUCBhbmQgXGZCXC1vXGZQIGFuZCBcZkJcLXZcZlAgY2Fu IG5vdCBiZSBjb21iaW5lZC4KLStMZXQgbWUga25vdyBpZiB5b3UgbmVlZCB0byBkbyB0aGlzLgot IAotIERlZnVuY3QgcHJvY2Vzc2VzIGFyZSByZXBvcnRlZC4KLSAKLSAuU0ggIlNFRSBBTFNPIgot LXBzKDEpIHJlZ2V4KDcpIHNpZ25hbCg3KSBraWxsYWxsKDEpIHNraWxsKDEpIGtpbGwoMSkga2ls bCgyKQotKy5CUiBwcyAoMSksCi0rLkJSIHJlZ2V4ICg3KSwKLSsuQlIgc2lnbmFsICg3KSwKLSsu QlIga2lsbGFsbCAoMSksCi0rLkJSIHNraWxsICgxKSwKLSsuQlIga2lsbCAoMSksCi0rLkJSIGtp bGwgKDIpCi0gCi0gLlNIIFNUQU5EQVJEUwotIFxmQnBraWxsXGZQIGFuZCBcZkJwZ3JlcFxmUCB3 ZXJlIGludHJvZHVjZWQgaW4gU3VuJ3MgU29sYXJpcyA3LiAgVGhpcwotLS0gCi0xLjcuMAotCmRp ZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ4LXBzX3NpemVfc3oucGF0Y2ggYi9w YXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDQ4LXBzX3NpemVfc3oucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGU3NWM3MzIuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA0OC1wc19zaXplX3N6LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAot RnJvbSA5NDFjOGJlYTIxMzNhOTE1NWRmNmZkZGIzNjY2ZDUyOGNhYjIwMzRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29s L21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4u b3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BB VENIIDQ4LzcwXSBwc19zaXplX3N6Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIHBzL291dHB1dC5jIHwg ICAgMiArLQotIHBzL3BzLjEgICAgIHwgICAgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHMvb3V0cHV0LmMgYi9w cy9vdXRwdXQuYwotaW5kZXggMWExOTZmZi4uZjlhMjljZSAxMDA2NDQKLS0tLSBhL3BzL291dHB1 dC5jCi0rKysgYi9wcy9vdXRwdXQuYwotQEAgLTE1MjIsNyArMTUyMiw3IEBAIHN0YXRpYyBjb25z dCBmb3JtYXRfc3RydWN0IGZvcm1hdF9hcnJheVtdID0gewotIHsic2lnY2F0Y2giLCAgIkNBVUdI VCIsICBwcl9zaWdjYXRjaCwgc3Jfbm9wLCAgICAgOSwgICAwLCAgICBYWFgsIFRPfFNJR05BTH0s IC8qY2F1Z2h0Ki8KLSB7InNpZ2lnbm9yZSIsICJJR05PUkVEIiwgcHJfc2lnaWdub3JlLHNyX25v cCwgICAgIDksICAgMCwgICAgWFhYLCBUT3xTSUdOQUx9LCAvKmlnbm9yZWQqLwotIHsic2lnbWFz ayIsICAgIkJMT0NLRUQiLCBwcl9zaWdtYXNrLCAgc3Jfbm9wLCAgICAgOSwgICAwLCAgICBYWFgs IFRPfFNJR05BTH0sIC8qYmxvY2tlZCovCi0teyJzaXplIiwgICAgICAiU1oiLCAgICAgIHByX3N3 YXBhYmxlLCBzcl9zd2FwYWJsZSwgNSwgIDAsICAgIFNDTywgUE98UklHSFR9LAotK3sic2l6ZSIs ICAgICAgIlNJWkUiLCAgICAgIHByX3N3YXBhYmxlLCBzcl9zd2FwYWJsZSwgNSwgIDAsICAgIFND TywgUE98UklHSFR9LAotIHsic2wiLCAgICAgICAgIlNMIiwgICAgICBwcl9ub3AsICAgICAgc3Jf bm9wLCAgICAgMywgICAwLCAgICBYWFgsIEFOfFJJR0hUfSwKLSB7InNwaWQiLCAgICAgICJTUElE IiwgICAgcHJfdGhyZWFkLCAgIHNyX3RpZCwgICAgIDUsICAgMCwgICAgU0dJLCBUT3xQSURNQVh8 UklHSFR9LAotIHsic3RhY2twIiwgICAgIlNUQUNLUCIsICBwcl9zdGFja3AsICAgc3Jfc3RhcnRf c3RhY2ssIDgsIDAsICBMTlgsIFBPfFJJR0hUfSwgLypzdGFydF9zdGFjayovCi1kaWZmIC0tZ2l0 IGEvcHMvcHMuMSBiL3BzL3BzLjEKLWluZGV4IDkwZmFiYmMuLmFkMzQ3YWQgMTAwNjQ0Ci0tLS0g YS9wcy9wcy4xCi0rKysgYi9wcy9wcy4xCi1AQCAtMTI1NCw3ICsxMjU0LDcgQEAgc2lnbWFzawlC TE9DS0VECVR7Ci0gc2VlXCBcZkJibG9ja2VkXGZSLiAgKGFsaWFzXCBcZkJibG9ja2VkXGZSLFwg XGZCc2lnX2Jsb2NrXGZSKS4KLSBUfQotIAotLXNpemUJU1oJVHsKLStzaXplCVNJWkUJVHsKLSBh cHByb3hpbWF0ZSBhbW91bnQgb2Ygc3dhcCBzcGFjZSB0aGF0IHdvdWxkIGJlIHJlcXVpcmVkCi0g aWYgdGhlIHByb2Nlc3Mgd2VyZSB0byBkaXJ0eSBhbGwgd3JpdGFibGUgcGFnZXMgYW5kIHRoZW4K LSBiZSBzd2FwcGVkIG91dC4KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9j cHMtMy4yLjgvMDA0OS10b3BfbWludGltZS5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw NDktdG9wX21pbnRpbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MDlk M2IuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA0OS10b3BfbWludGltZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gY2Y5OWU5YmIwMDRmNmM2 ZWI2NDlkMzRiZWE4MjIxYmM3NTAxZDEwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nw c18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkg TWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0OS83MF0gdG9wX21pbnRp bWUKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tCi0gdG9wLmMgfCAgICAzICsrLQotIDEgZmlsZXMgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdG9wLmMg Yi90b3AuYwotaW5kZXggNmNjMWE5My4uZjY4ODBiNSAxMDA2NDQKLS0tLSBhL3RvcC5jCi0rKysg Yi90b3AuYwotQEAgLTI1NTIsNyArMjU1Miw4IEBAIHN0YXRpYyB2b2lkIGRvX2tleSAodW5zaWdu ZWQgYykKLSAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICBmbG9hdCB0bXAgPQotICAgICAg ICAgICAgICAgIGdldF9mbG9hdChmbXRtaygiQ2hhbmdlIGRlbGF5IGZyb20gJS4xZiB0byIsIFJj LmRlbGF5X3RpbWUpKTsKLS0gICAgICAgICAgICBpZiAodG1wID4gLTEpIFJjLmRlbGF5X3RpbWUg PSB0bXA7Ci0rICAgICAgICAgICAgaWYgKHRtcCA9PSAwLjApIHNob3dfbXNnKCJcYU5vdCB2YWxp ZCIpOwotKyAgICAgICAgICAgIGVsc2UgaWYgKHRtcCA+IDApIFJjLmRlbGF5X3RpbWUgPSB0bXA7 Ci0gICAgICAgICAgfQotICAgICAgICAgIGJyZWFrOwotIAotLS0gCi0xLjcuMAotCmRpZmYgLS1n aXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUwLXZtc3RhdF9oZWFkZXJzLnBhdGNoIGIvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDA1MC12bXN0YXRfaGVhZGVycy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggODQzNGQyNC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDUwLXZtc3RhdF9oZWFkZXJzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTU5ICsw LDAgQEAKLUZyb20gYTQ1MDEzYTc0OWYxNDQ4MTlhOWExMGNiNWI1YmIyNDU1Y2EwNDcwMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJp YW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9A ZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDYgKzAxMDAKLVN1Ympl Y3Q6IFtQQVRDSCA1MC83MF0gdm1zdGF0X2hlYWRlcnMKLQotZ2V0b3B0IHJlcGxhY2VtZW50Ci1B dXRob3I6IExpdSBYaW5nIDxsaXV4aW5nQGNuLmZ1aml0c3UuY29tPgotQXV0aG9yOiBNaWNoYWVs IFRva2FyZXYgPG1qdEBjb3JwaXQucnU+Ci1CdWctRGViaWFuOiBodHRwOi8vYnVncy5kZWJpYW4u b3JnLzQzNjgwNQotQnVnLURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy80MDgwODgKLS0t LQotIHZtc3RhdC5jIHwgICA4MCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25z KCspLCA0NiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Ztc3RhdC5jIGIvdm1zdGF0LmMK LWluZGV4IGYwMjI5MjguLmUwZDNjMjMgMTAwNjQ0Ci0tLS0gYS92bXN0YXQuYwotKysrIGIvdm1z dGF0LmMKLUBAIC0yOSwxNCArMjksMTUgQEAKLSAjaW5jbHVkZSAicHJvYy9zeXNpbmZvLmgiCi0g I2luY2x1ZGUgInByb2MvdmVyc2lvbi5oIgotIAotLXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhdGFV bml0PTEwMjQ7Ci0tc3RhdGljIGNoYXIgc3pEYXRhVW5pdCBbMTZdOwotICNkZWZpbmUgVU5JVF9C ICAgICAgICAxCi0gI2RlZmluZSBVTklUX2sgICAgICAgIDEwMDAKLSAjZGVmaW5lIFVOSVRfSyAg ICAgICAgMTAyNAotICNkZWZpbmUgVU5JVF9tICAgICAgICAxMDAwMDAwCi0gI2RlZmluZSBVTklU X00gICAgICAgIDEwNDg1NzYKLSAKLStzdGF0aWMgdW5zaWduZWQgbG9uZyBkYXRhVW5pdD1VTklU X0s7Ci0rc3RhdGljIGNoYXIgc3pEYXRhVW5pdFszXSA9ICJLIjsKLSsKLSAjZGVmaW5lIFZNU1RB VCAgICAgICAgMAotICNkZWZpbmUgRElTS1NUQVQgICAgICAweDAwMDAwMDAxCi0gI2RlZmluZSBW TVNVTVNUQVQgICAgIDB4MDAwMDAwMDIKLUBAIC0zNTQsNiArMzU1LDcgQEAgc3RhdGljIHZvaWQg ZGlza2Zvcm1hdCh2b2lkKXsKLSAgIGlmICgoZkRpc2tzdGF0PWZvcGVuKCIvcHJvYy9kaXNrc3Rh dHMiLCAicmIiKSkpewotICAgICBmY2xvc2UoZkRpc2tzdGF0KTsKLSAgICAgbmRpc2tzPWdldGRp c2tzdGF0KCZkaXNrcywmcGFydGl0aW9ucyk7Ci0rICAgIGlmICghbW9yZWhlYWRlcnMpIGRpc2to ZWFkZXIoKTsKLSAgICAgZm9yKGs9MDsgazxuZGlza3M7IGsrKyl7Ci0gICAgICAgaWYgKG1vcmVo ZWFkZXJzICYmICgoayVoZWlnaHQpPT0wKSkgZGlza2hlYWRlcigpOwotICAgICAgIHByaW50Zihm b3JtYXQsCi1AQCAtNDI0LDYgKzQyNiw3IEBAIHN0YXRpYyB2b2lkIHNsYWJmb3JtYXQgKHZvaWQp ewotICAgICByZXR1cm47Ci0gICB9Ci0gCi0rICBpZiAoIW1vcmVoZWFkZXJzKSBzbGFiaGVhZGVy KCk7Ci0gICBuU2xhYiA9IGdldHNsYWJpbmZvKCZzbGFicyk7Ci0gICBmb3Ioaz0wOyBrPG5TbGFi OyBrKyspewotICAgICBpZiAobW9yZWhlYWRlcnMgJiYgKChrJWhlaWdodCk9PTApKSBzbGFiaGVh ZGVyKCk7Ci1AQCAtNTgyLDEyICs1ODUsMTAgQEAgc3RhdGljIGludCB3aW5oaSh2b2lkKSB7Ci0g Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLwotIAotIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p IHsKLS0gIGNoYXIgcGFydGl0aW9uWzE2XTsKLS0gIGFyZ2M9MDsgLyogcmVkZWZpbmVkIGFzIG51 bWJlciBvZiBpbnRlZ2VyIGFyZ3VtZW50cyAqLwotLSAgZm9yIChhcmd2Kys7KmFyZ3Y7YXJndisr KSB7Ci0tICAgIGlmICgnLScgPT0oKiphcmd2KSkgewotLSAgICAgIHN3aXRjaCAoKigrKygqYXJn dikpKSB7Ci0tICAgIAotKyAgY2hhciAqcGFydGl0aW9uID0gTlVMTDsKLSsgIGludCBjOwotKwot KyAgd2hpbGUoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgIlZkYWZtRG5wOlM6cyIpKSAhPSBFT0Yp IHN3aXRjaChjKSB7Ci0gICAgICAgY2FzZSAnVic6Ci0gCWRpc3BsYXlfdmVyc2lvbigpOwotIAll eGl0KDApOwotQEAgLTYwMyw3ICs2MDQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKSB7Ci0gCWZvcmtfZm9ybWF0KCk7Ci0gICAgICAgICBleGl0KDApOwotICAgICAgIGNhc2Ug J20nOgotLSAgICAgICAgc3RhdE1vZGUgfD0gU0xBQlNUQVQ7IAkKLSsgICAgICAgIHN0YXRNb2Rl IHw9IFNMQUJTVEFUOwotIAlicmVhazsKLSAgICAgICBjYXNlICdEJzoKLSAgICAgICAgIHN0YXRN b2RlIHw9IERJU0tTVU1TVEFUOyAJCi1AQCAtNjE0LDUzICs2MTUsNDAgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICAgICAgICAgYnJlYWs7Ci0gICAgICAgY2FzZSAncCc6 Ci0gICAgICAgICBzdGF0TW9kZSB8PSBQQVJUSVRJT05TVEFUOwotLQlpZiAoYXJndlsxXSl7Ci0t CSAgY2hhciAqY3AgPSAqKythcmd2OwotLQkgIGlmKCFtZW1jbXAoY3AsIi9kZXYvIiw1KSkgY3Ag Kz0gNTsKLS0JICBzbnByaW50ZihwYXJ0aXRpb24sIHNpemVvZiBwYXJ0aXRpb24sICIlcyIsIGNw KTsKLS0JfWVsc2V7Ci0tCSAgZnByaW50ZihzdGRlcnIsICItcCByZXF1aXJlcyBhbiBhcmd1bWVu dFxuIik7Ci0tICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLS0JfQotKwlwYXJ0aXRpb24g PSBvcHRhcmc7Ci0rCWlmIChtZW1jbXAocGFydGl0aW9uLCAiL2Rldi8iLCA1KSA9PSAwKSBwYXJ0 aXRpb24gKz0gNTsKLSAgICAgICAgIGJyZWFrOwotICAgICAgIGNhc2UgJ1MnOgotLQlpZiAoYXJn dlsxXSl7Ci0tCSAgICAgICsrYXJndjsKLS0JIAlpZiAoIXN0cmNtcCgqYXJndiwgImsiKSkgZGF0 YVVuaXQ9VU5JVF9rOwotLQkgCWVsc2UgaWYgKCFzdHJjbXAoKmFyZ3YsICJLIikpIGRhdGFVbml0 PVVOSVRfSzsKLS0JIAllbHNlIGlmICghc3RyY21wKCphcmd2LCAibSIpKSBkYXRhVW5pdD1VTklU X207Ci0tCSAJZWxzZSBpZiAoIXN0cmNtcCgqYXJndiwgIk0iKSkgZGF0YVVuaXQ9VU5JVF9NOwot LQkJZWxzZSB7ZnByaW50ZihzdGRlcnIsICItUyByZXF1aXJlcyBrLCBLLCBtIG9yIE0gKGRlZmF1 bHQgaXMga2IpXG4iKTsKLS0JCSAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotLQkJfQotLQkJc3Ry Y3B5KHN6RGF0YVVuaXQsICphcmd2KTsKLS0JIH1lbHNlIHtmcHJpbnRmKHN0ZGVyciwgIi1TIHJl cXVpcmVzIGFuIGFyZ3VtZW50XG4iKTsKLS0JCWV4aXQoRVhJVF9GQUlMVVJFKTsKLS0JIH0KLSsJ c3dpdGNoKG9wdGFyZ1swXSkgewotKwljYXNlICdiJzogY2FzZSAnQic6IGRhdGFVbml0ID0gVU5J VF9COyBicmVhazsKLSsJY2FzZSAnayc6IGRhdGFVbml0ID0gVU5JVF9rOyBicmVhazsKLSsJY2Fz ZSAnSyc6IGRhdGFVbml0ID0gVU5JVF9LOyBicmVhazsKLSsJY2FzZSAnbSc6IGRhdGFVbml0ID0g VU5JVF9tOyBicmVhazsKLSsJY2FzZSAnTSc6IGRhdGFVbml0ID0gVU5JVF9NOyBicmVhazsKLSsJ ZGVmYXVsdDoKLSsJICBmcHJpbnRmKHN0ZGVyciwgIi1TIHJlcXVpcmVzIGssIEssIG0gb3IgTSAo ZGVmYXVsdCBpcyBrYilcbiIpOwotKwkgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSsJfQotKwlzekRh dGFVbml0WzBdID0gb3B0YXJnWzBdOwotIAlicmVhazsKLSAgICAgICBjYXNlICdzJzoKLS0gICAg ICAgIHN0YXRNb2RlIHw9IFZNU1VNU1RBVDsgCQotKyAgICAgICAgc3RhdE1vZGUgfD0gVk1TVU1T VEFUOwotIAlicmVhazsKLSAgICAgICBkZWZhdWx0OgotIAkvKiBubyBvdGhlciBhZ3VtZW50cyBk ZWZpbmVkIHlldC4gKi8KLSAJdXNhZ2UoKTsKLS0gICAgICB9Ci0tICAgfWVsc2V7Ci0tICAgICAg YXJnYysrOwotLSAgICAgIHN3aXRjaCAoYXJnYykgewotLSAgICAgIGNhc2UgMToKLS0gICAgICAg IGlmICgoc2xlZXBfdGltZSA9IGF0b2koKmFyZ3YpKSA9PSAwKQotKyAgfQotKwotKyAgaWYgKG9w dGluZCA8IGFyZ2MpIHsKLSsgICAgaWYgKChzbGVlcF90aW1lID0gYXRvaShhcmd2W29wdGluZCsr XSkpID09IDApCi0gICAgICAgICAgdXNhZ2UoKTsKLS0gICAgICAgbnVtX3VwZGF0ZXMgPSBVTE9O R19NQVg7Ci0tICAgICAgIGJyZWFrOwotLSAgICAgIGNhc2UgMjoKLS0gICAgICAgIG51bV91cGRh dGVzID0gYXRvbCgqYXJndik7Ci0tICAgICAgIGJyZWFrOwotLSAgICAgIGRlZmF1bHQ6Ci0tICAg ICAgIHVzYWdlKCk7Ci0tICAgICAgfSAvKiBzd2l0Y2ggKi8KLSsgICAgbnVtX3VwZGF0ZXMgPSBV TE9OR19NQVg7Ci0gICB9Ci0tfQotKyAgaWYgKG9wdGluZCA8IGFyZ2MpCi0rICAgIG51bV91cGRh dGVzID0gYXRvbChhcmd2W29wdGluZCsrXSk7Ci0rICBpZiAob3B0aW5kIDwgYXJnYykKLSsgICAg IHVzYWdlKCk7Ci0rCi0gICBpZiAobW9yZWhlYWRlcnMpIHsKLSAgICAgICBpbnQgdG1wPXdpbmhp KCktMzsKLSAgICAgICBoZWlnaHQ9KCh0bXA+MCk/dG1wOjIyKTsKLS0tIAotMS43LjAKLQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1MS1wZ3JlcF91c2FnZV9leGl0Y29kZS5w YXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTEtcGdyZXBfdXNhZ2VfZXhpdGNvZGUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZTZhYWUuLjAwMDAwMDAKLS0tIGEv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1MS1wZ3JlcF91c2FnZV9leGl0Y29kZS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLUZyb20gYTgzNDZkYzdiNGQxZGEwNDkyOGIyODg1 YTVhOTU2NDIzNGViMDI1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9m dHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04 LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAg MjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1MS83MF0gcGdyZXBfdXNhZ2VfZXhpdGNv ZGUKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tCi0gcGdyZXAuYyB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5n ZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BncmVw LmMgYi9wZ3JlcC5jCi1pbmRleCAzM2NiZWQ4Li4zNmVjY2I2IDEwMDY0NAotLS0tIGEvcGdyZXAu YwotKysrIGIvcGdyZXAuYwotQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9v cHRzIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gLy8JCWNhc2UgJ3onOiAgIC8vIFNvbGFyaXM6 IG1hdGNoIGJ5IHpvbmUgSUQKLSAvLwkJCWJyZWFrOwotIAkJY2FzZSAnPyc6Ci0tCQkJdXNhZ2Ug KG9wdCk7Ci0rCQkJdXNhZ2UgKG9wdG9wdD9vcHRvcHQ6b3B0KTsKLSAJCQlicmVhazsKLSAJCX0K LSAJfQotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUy LXBzXzFfb3B0aW9ucy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTItcHNfMV9vcHRp b25zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWJkMGMwLi4wMDAwMDAw Ci0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTItcHNfMV9vcHRpb25zLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNTU3ICswLDAgQEAKLUZyb20gMTliMmQxODJhNGI3NWVkYWViOWM4ZWUx NjNkN2FiYjMwYTVjZDBlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9m dHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04 LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAg MjE6NTg6NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1Mi83MF0gcHNfMV9vcHRpb25zCi0KLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLQotIHBzL3BzLjEgfCAgMzM1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwg MTY5IGluc2VydGlvbnMoKyksIDE2NiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3BzL3Bz LjEgYi9wcy9wcy4xCi1pbmRleCBhZDM0N2FkLi42YmEzMWRjIDEwMDY0NAotLS0tIGEvcHMvcHMu MQotKysrIGIvcHMvcHMuMQotQEAgLTE1OCwyMCArMTU4LDYgQEAgUHJpbnQgb25seSB0aGUgbmFt ZSBvZiBQSUQgNDI6Ci0gLlBQCi0gLlwiICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgotIC5TSCAiU0lNUExF IFBST0NFU1MgU0VMRUNUSU9OIgotLS5vcHQgXC1BCi0tU2VsZWN0IGFsbCBwcm9jZXNzZXMuICBJ ZGVudGljYWwgdG8gXGZCXC1lXGZSLgotLQotLS5vcHQgXC1OCi0tU2VsZWN0IGFsbCBwcm9jZXNz ZXMgZXhjZXB0IHRob3NlIHRoYXQgZnVsZmlsbCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnMuCi0t KG5lZ2F0ZXMgdGhlIHNlbGVjdGlvbikgSWRlbnRpY2FsIHRvIFxmQlwtXC1kZXNlbGVjdFxmUi4K LS0KLS0ub3B0IFQKLS1TZWxlY3QgYWxsIHByb2Nlc3NlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0 ZXJtaW5hbC4gIElkZW50aWNhbCB0byB0aGUKLS1cZkJ0XGZSIG9wdGlvbiB3aXRob3V0IGFueSBh cmd1bWVudC4KLS0KLS0ub3B0IFwtYQotLVNlbGVjdCBhbGwgcHJvY2Vzc2VzIGV4Y2VwdCBib3Ro IHNlc3Npb24gbGVhZGVycyAoc2VlIFxmSWdldHNpZFxmUigyKSkgYW5kCi0tcHJvY2Vzc2VzIG5v dCBhc3NvY2lhdGVkIHdpdGggYSB0ZXJtaW5hbC4KLSAKLSAub3B0IGEKLSBMaWZ0IHRoZSBCU0Rc LXN0eWxlICJvbmx5IHlvdXJzZWxmIiByZXN0cmljdGlvbiwgd2hpY2ggaXMgaW1wb3NlZCB1cG9u Ci1AQCAtMTgzLDkgKzE2OSwyMCBAQCBBbiBhbHRlcm5hdGUgZGVzY3JpcHRpb24gaXMgdGhhdCB0 aGlzIG9wdGlvbiBjYXVzZXMgXGZCcHNcZlIgdG8KLSBsaXN0IGFsbCBwcm9jZXNzZXMgd2l0aCBh IHRlcm1pbmFsICh0dHkpLAotIG9yIHRvIGxpc3QgYWxsIHByb2Nlc3NlcyB3aGVuIHVzZWQgdG9n ZXRoZXIgd2l0aCB0aGUgXGZCeFxmUiBvcHRpb24uCi0gCi0rLm9wdCBcLUEKLStTZWxlY3QgYWxs IHByb2Nlc3Nlcy4gIElkZW50aWNhbCB0byBcZkJcLWVcZlIuCi0rCi0rLm9wdCBcLWEKLStTZWxl Y3QgYWxsIHByb2Nlc3NlcyBleGNlcHQgYm90aCBzZXNzaW9uIGxlYWRlcnMgKHNlZSBcZklnZXRz aWRcZlIoMikpIGFuZAotK3Byb2Nlc3NlcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgdGVybWluYWwu Ci0rCi0gLm9wdCBcLWQKLSBTZWxlY3QgYWxsIHByb2Nlc3NlcyBleGNlcHQgc2Vzc2lvbiBsZWFk ZXJzLgotIAotKy5vcHQgXC1cLWRlc2VsZWN0Ci0rU2VsZWN0IGFsbCBwcm9jZXNzZXMgZXhjZXB0 IHRob3NlIHRoYXQgZnVsZmlsbCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnMuCi0rKG5lZ2F0ZXMg dGhlIHNlbGVjdGlvbikgSWRlbnRpY2FsIHRvIFxmQlwtTlxmUi4KLSsKLSAub3B0IFwtZQotIFNl bGVjdCBhbGwgcHJvY2Vzc2VzLiAgSWRlbnRpY2FsIHRvIFxmQlwtQVxmUi4KLSAKLUBAIC0xOTQs MTEgKzE5MSwyMCBAQCBTZWxlY3QgYWxsIHByb2Nlc3Nlcy4gIElkZW50aWNhbCB0byBcZkJcLUFc ZlIuCi0gLlwiIGFkZCBpbiB0aGUgZ3JvdXAgbGVhZGVycyAtLSBhdCBsZWFzdCBhY2NvcmRpbmcg dG8gdGhlIFN1bk9TIDQKLSAuXCIgbWFuIHBhZ2Ugb24gdGhlIEZyZWVCU0Qgc2l0ZS4gVWggb2gu IEkgdGhpbmsgSSBoYWQgdGVzdGVkIFN1bk9TCi0gLlwiIHRob3VnaCwgc28gbWF5YmUgdGhlIGNv ZGUgaXMgY29ycmVjdC4KLSsKLSAub3B0IGcKLSBSZWFsbHkgYWxsLCBldmVuIHNlc3Npb24gbGVh ZGVycy4gIFRoaXMgZmxhZyBpcyBvYnNvbGV0ZSBhbmQgbWF5IGJlCi0gZGlzY29udGludWVkIGlu IGEgZnV0dXJlIHJlbGVhc2UuIEl0IGlzIG5vcm1hbGx5IGltcGxpZWQgYnkgdGhlIFxmQmFcZlIg ZmxhZywKLSBhbmQgaXMgb25seSB1c2VmdWwgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIHN1bm9zNCBw ZXJzb25hbGl0eS4KLSAKLSsub3B0IFwtTgotK1NlbGVjdCBhbGwgcHJvY2Vzc2VzIGV4Y2VwdCB0 aG9zZSB0aGF0IGZ1bGZpbGwgdGhlIHNwZWNpZmllZCBjb25kaXRpb25zLgotKyhuZWdhdGVzIHRo ZSBzZWxlY3Rpb24pIElkZW50aWNhbCB0byBcZkJcLVwtZGVzZWxlY3RcZlIuCi0rCi0rLm9wdCBU Ci0rU2VsZWN0IGFsbCBwcm9jZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGVybWluYWwuICBJ ZGVudGljYWwgdG8gdGhlCi0rXGZCdFxmUiBvcHRpb24gd2l0aG91dCBhbnkgYXJndW1lbnQuCi0r Ci0gLm9wdCByCi0gUmVzdHJpY3QgdGhlIHNlbGVjdGlvbiB0byBvbmx5IHJ1bm5pbmcgcHJvY2Vz c2VzLgotIAotQEAgLTIxMiwxMCArMjE4LDYgQEAgQW4gYWx0ZXJuYXRlIGRlc2NyaXB0aW9uIGlz IHRoYXQgdGhpcyBvcHRpb24gY2F1c2VzIFxmQnBzXGZSIHRvCi0gbGlzdCBhbGwgcHJvY2Vzc2Vz IG93bmVkIGJ5IHlvdSAoc2FtZSBFVUlEIGFzIFxmQnBzXGZSKSwKLSBvciB0byBsaXN0IGFsbCBw cm9jZXNzZXMgd2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIFxmQmFcZlIgb3B0aW9uLgotIAot LS5vcHQgXC1cLWRlc2VsZWN0Ci0tU2VsZWN0IGFsbCBwcm9jZXNzZXMgZXhjZXB0IHRob3NlIHRo YXQgZnVsZmlsbCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnMuCi0tKG5lZ2F0ZXMgdGhlIHNlbGVj dGlvbikgSWRlbnRpY2FsIHRvIFxmQlwtTlxmUi4KLS0KLSAuXCIgIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi Ci0gLlBECi0gLlBQCi1AQCAtMjI0LDYgKzIyNiwxMyBAQCBUaGVzZSBvcHRpb25zIGFjY2VwdCBh IHNpbmdsZSBhcmd1bWVudCBpbiB0aGUgZm9ybSBvZiBhIGJsYW5rXC1zZXBhcmF0ZWQKLSBvciBj b21tYVwtc2VwYXJhdGVkIGxpc3QuICBUaGV5IGNhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzLgot IEZvclwgZXhhbXBsZTpcIFxmQnBzXCBcLXBcICIxXCAyIlwgXC1wXCAzLDRcZlIKLSAuUAotKwot Ky5vcHQgXC1cZkkxMjNcZlIKLStJZGVudGljYWwgdG8gXGZCXC1cLXNpZFwgXGZJMTIzXGZSLgot KwotKy5vcHQgXGZJMTIzXGZSCi0rSWRlbnRpY2FsIHRvIFxmQlwtXC1waWRcIFxmSTEyM1xmUi4K LSsKLSAub3B0IFwtQyBcIGNtZGxpc3QKLSBTZWxlY3QgYnkgY29tbWFuZCBuYW1lLgotIC5icgot QEAgLTIzNywyNCArMjQ2LDYgQEAgVGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgcmVh bCBncm91cCBuYW1lIG9yIElEIGlzIGluIHRoZQotIFxmSWdycGxpc3RcZlIgbGlzdC4gIFRoZSBy ZWFsIGdyb3VwIElEIGlkZW50aWZpZXMgdGhlIGdyb3VwIG9mIHRoZSB1c2VyCi0gd2hvIGNyZWF0 ZWQgdGhlIHByb2Nlc3MsIHNlZSBcZklnZXRnaWRcZlIoMikuCi0gCi0tLm9wdCBVIFwgdXNlcmxp c3QKLS1TZWxlY3QgYnkgZWZmZWN0aXZlIHVzZXIgSUQgKEVVSUQpIG9yIG5hbWUuCi0tLmJyCi0t VGhpcyBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgZWZmZWN0aXZlIHVzZXIgbmFtZQotLW9y IElEIGlzIGluIFxmSXVzZXJsaXN0XGZSLgotLVRoZSBlZmZlY3RpdmUgdXNlclwgSUQgZGVzY3Jp YmVzIHRoZSB1c2VyIHdob3NlIGZpbGUKLS1hY2Nlc3MgcGVybWlzc2lvbnMgYXJlIHVzZWQgYnkg dGhlIHByb2Nlc3MKLS0oc2VlXCBcZklnZXRldWlkXGZSKDIpKS4KLS1JZGVudGljYWwgdG8gXGZC XC11XGZSIGFuZFwgXGZCXC1cLXVzZXJcZlIuCi0tCi0tLm9wdCBcLVUgXCB1c2VybGlzdAotLXNl bGVjdCBieSByZWFsIHVzZXIgSUQgKFJVSUQpIG9yIG5hbWUuCi0tLmJyCi0tSXQgc2VsZWN0cyB0 aGUgcHJvY2Vzc2VzIHdob3NlIHJlYWwgdXNlciBuYW1lIG9yIElEIGlzIGluIHRoZQotLVxmSXVz ZXJsaXN0XGZSIGxpc3QuCi0tVGhlIHJlYWwgdXNlciBJRCBpZGVudGlmaWVzIHRoZSB1c2VyIHdo byBjcmVhdGVkIHRoZSBwcm9jZXNzLAotLXNlZVwgXGZJZ2V0dWlkXGZSKDIpLgotLQotIC5vcHQg XC1nIFwgZ3JwbGlzdAotIFNlbGVjdCBieSBzZXNzaW9uIE9SIGJ5IGVmZmVjdGl2ZSBncm91cCBu YW1lLgotIC5icgotQEAgLTI2Niw2ICsyNTcsMTcgQEAgaXMgY29tcGxldGVseSBudW1lcmljIChh c1wgc2Vzc2lvbnNcIGFyZSkuCi0gR3JvdXAgSUQgbnVtYmVycyB3aWxsIHdvcmsgb25seSB3aGVu IHNvbWUgZ3JvdXAgbmFtZXMgYXJlIGFsc28gc3BlY2lmaWVkLgotIFNlZSB0aGUgXGZCXC1zXGZS IGFuZCBcZkJcLVwtZ3JvdXBcZlIgb3B0aW9ucy4KLSAKLSsub3B0IFwtXC1Hcm91cCBcIGdycGxp c3QKLStTZWxlY3QgYnkgcmVhbCBncm91cCBJRCAoUkdJRCkgb3IgbmFtZS4gIElkZW50aWNhbCB0 byBcZkJcLUdcZlIuCi0rCi0rLm9wdCBcLVwtZ3JvdXAgXCBncnBsaXN0Ci0rU2VsZWN0IGJ5IGVm ZmVjdGl2ZSBncm91cCBJRCAoRUdJRCkgb3IgbmFtZS4KLSsuYnIKLStUaGlzIHNlbGVjdHMgdGhl IHByb2Nlc3NlcyB3aG9zZSBlZmZlY3RpdmUgZ3JvdXAgbmFtZSBvciBJRCBpcyBpbgotK1xmSWdy b3VwbGlzdFxmUi4gIFRoZSBlZmZlY3RpdmUgZ3JvdXAgSUQgZGVzY3JpYmVzIHRoZSBncm91cCB3 aG9zZSBmaWxlCi0rYWNjZXNzIHBlcm1pc3Npb25zIGFyZSB1c2VkIGJ5IHRoZSBwcm9jZXNzIChz ZWVcIFxmSWdldGV1aWRcZlIoMikpLgotK1RoZSBcZkJcLWdcZlIgb3B0aW9uIGlzIG9mdGVuIGFu IGFsdGVybmF0aXZlIHRvXCBcZkJcLVwtZ3JvdXBcZlIuCi0rCi0gLm9wdCBwIFwgcGlkbGlzdAot IFNlbGVjdCBieSBwcm9jZXNzIElELiAgSWRlbnRpY2FsIHRvIFxmQlwtcFxmUiBhbmRcIFxmQlwt XC1waWRcZlIuCi0gCi1AQCAtMjc1LDEyICsyNzcsMjUgQEAgU2VsZWN0IGJ5IFBJRC4KLSBUaGlz IHNlbGVjdHMgdGhlIHByb2Nlc3NlcyB3aG9zZSBwcm9jZXNzIElEIG51bWJlcnMgYXBwZWFyIGlu Ci0gXGZJcGlkbGlzdFxmUi4gIElkZW50aWNhbCB0byBcZkJwXGZSIGFuZFwgXGZCXC1cLXBpZFxm Ui4KLSAKLSsub3B0IFwtXC1waWQgXCBwaWRsaXN0Ci0rU2VsZWN0IGJ5IHByb2Nlc3NcIElELiAg SWRlbnRpY2FsIHRvIFxmQlwtcFxmUlwgYW5kXCBcZkJwXGZSLgotKwotKy5vcHQgXC1cLXBwaWQg XCBwaWRsaXN0Ci0rU2VsZWN0IGJ5IHBhcmVudCBwcm9jZXNzXCBJRC4KLStUaGlzIHNlbGVjdHMg dGhlIHByb2Nlc3NlcwotK3dpdGggYSBwYXJlbnRcIHByb2Nlc3NcIElEIGluIFxmUnBpZGxpc3Rc ZlIuCi0rVGhhdFwgaXMsIGl0IHNlbGVjdHMgcHJvY2Vzc2VzIHRoYXQgYXJlIGNoaWxkcmVuCi0r b2YgdGhvc2UgbGlzdGVkIGluIFxmUnBpZGxpc3RcZlIuCi0rCi0gLm9wdCBcLXMgXCBzZXNzbGlz dAotIFNlbGVjdCBieSBzZXNzaW9uIElELgotIC5icgotIFRoaXMgc2VsZWN0cyB0aGUgcHJvY2Vz c2VzCi0gd2l0aCBhIHNlc3Npb24gSUQgc3BlY2lmaWVkIGluXCBcZklzZXNzbGlzdFxmUi4KLSAK LSsub3B0IFwtXC1zaWQgXCBzZXNzbGlzdAotK1NlbGVjdCBieSBzZXNzaW9uXCBJRC4gIElkZW50 aWNhbCB0b1wgXGZCXC1zXGZSLgotKwotIC5vcHQgdCBcIHR0eWxpc3QKLSBTZWxlY3QgYnkgdHR5 LiAgTmVhcmx5IGlkZW50aWNhbCB0byBcZkJcLXRcZlIgYW5kIFxmQlwtXC10dHlcZlIsCi0gYnV0 IGNhbiBhbHNvIGJlIHVzZWQgd2l0aCBhbiBlbXB0eSBcZkl0dHlsaXN0XGZSIHRvIGluZGljYXRl Ci1AQCAtMjk3LDYgKzMxMiwyNyBAQCBUZXJtaW5hbHMgKHR0eXMsIG9yIHNjcmVlbnMgZm9yIHRl eHQgb3V0cHV0KSBjYW4gYmUgc3BlY2lmaWVkIGluIHNldmVyYWwKLSBmb3JtczogL2Rldi90dHlT MSwgdHR5UzEsIFMxLgotIEFcIHBsYWluICJcLSIgbWF5IGJlIHVzZWQgdG8gc2VsZWN0IHByb2Nl c3NlcyBub3QgYXR0YWNoZWQgdG8gYW55IHRlcm1pbmFsLgotIAotKy5vcHQgXC1cLXR0eSBcIHR0 eWxpc3QKLStTZWxlY3QgYnkgdGVybWluYWwuICBJZGVudGljYWwgdG8gXGZCXC10XGZSIGFuZFwg XGZCdFxmUi4KLSsKLSsub3B0IFUgXCB1c2VybGlzdAotK1NlbGVjdCBieSBlZmZlY3RpdmUgdXNl ciBJRCAoRVVJRCkgb3IgbmFtZS4KLSsuYnIKLStUaGlzIHNlbGVjdHMgdGhlIHByb2Nlc3NlcyB3 aG9zZSBlZmZlY3RpdmUgdXNlciBuYW1lCi0rb3IgSUQgaXMgaW4gXGZJdXNlcmxpc3RcZlIuCi0r VGhlIGVmZmVjdGl2ZSB1c2VyXCBJRCBkZXNjcmliZXMgdGhlIHVzZXIgd2hvc2UgZmlsZQotK2Fj Y2VzcyBwZXJtaXNzaW9ucyBhcmUgdXNlZCBieSB0aGUgcHJvY2VzcwotKyhzZWVcIFxmSWdldGV1 aWRcZlIoMikpLgotK0lkZW50aWNhbCB0byBcZkJcLXVcZlIgYW5kXCBcZkJcLVwtdXNlclxmUi4K LSsKLSsub3B0IFwtVSBcIHVzZXJsaXN0Ci0rc2VsZWN0IGJ5IHJlYWwgdXNlciBJRCAoUlVJRCkg b3IgbmFtZS4KLSsuYnIKLStJdCBzZWxlY3RzIHRoZSBwcm9jZXNzZXMgd2hvc2UgcmVhbCB1c2Vy IG5hbWUgb3IgSUQgaXMgaW4gdGhlCi0rXGZJdXNlcmxpc3RcZlIgbGlzdC4KLStUaGUgcmVhbCB1 c2VyIElEIGlkZW50aWZpZXMgdGhlIHVzZXIgd2hvIGNyZWF0ZWQgdGhlIHByb2Nlc3MsCi0rc2Vl XCBcZklnZXR1aWRcZlIoMikuCi0rCi0gLm9wdCBcLXUgXCB1c2VybGlzdAotIFNlbGVjdCBieSBl ZmZlY3RpdmUgdXNlciBJRCAoRVVJRCkgb3IgbmFtZS4KLSAuYnIKLUBAIC0zMDUsNDYgKzM0MSwx MyBAQCBUaGlzIHNlbGVjdHMgdGhlIHByb2Nlc3NlcyB3aG9zZSBlZmZlY3RpdmUgdXNlciBuYW1l IG9yIElEIGlzIGluCi0gYWNjZXNzIHBlcm1pc3Npb25zIGFyZSB1c2VkIGJ5IHRoZSBwcm9jZXNz IChzZWVcIFxmSWdldGV1aWRcZlIoMikpLgotIElkZW50aWNhbCB0byBcZkJVXGZSIGFuZCBcZkJc LVwtdXNlclxmUi4KLSAKLS0ub3B0IFwtXC1Hcm91cCBcIGdycGxpc3QKLS1TZWxlY3QgYnkgcmVh bCBncm91cCBJRCAoUkdJRCkgb3IgbmFtZS4gIElkZW50aWNhbCB0byBcZkJcLUdcZlIuCi0tCi0g Lm9wdCBcLVwtVXNlciBcIHVzZXJsaXN0Ci0gU2VsZWN0IGJ5IHJlYWwgdXNlciBJRCAoUlVJRCkg b3IgbmFtZS4gIElkZW50aWNhbCB0byBcZkJcLVVcZlIuCi0gCi0tLm9wdCBcLVwtZ3JvdXAgXCBn cnBsaXN0Ci0tU2VsZWN0IGJ5IGVmZmVjdGl2ZSBncm91cCBJRCAoRUdJRCkgb3IgbmFtZS4KLS0u YnIKLS1UaGlzIHNlbGVjdHMgdGhlIHByb2Nlc3NlcyB3aG9zZSBlZmZlY3RpdmUgZ3JvdXAgbmFt ZSBvciBJRCBpcyBpbgotLVxmSWdyb3VwbGlzdFxmUi4gIFRoZSBlZmZlY3RpdmUgZ3JvdXAgSUQg ZGVzY3JpYmVzIHRoZSBncm91cCB3aG9zZSBmaWxlCi0tYWNjZXNzIHBlcm1pc3Npb25zIGFyZSB1 c2VkIGJ5IHRoZSBwcm9jZXNzIChzZWVcIFxmSWdldGV1aWRcZlIoMikpLgotLVRoZSBcZkJcLWdc ZlIgb3B0aW9uIGlzIG9mdGVuIGFuIGFsdGVybmF0aXZlIHRvXCBcZkJcLVwtZ3JvdXBcZlIuCi0t Ci0tLm9wdCBcLVwtcGlkIFwgcGlkbGlzdAotLVNlbGVjdCBieSBwcm9jZXNzXCBJRC4gIElkZW50 aWNhbCB0byBcZkJcLXBcZlJcIGFuZFwgXGZCcFxmUi4KLS0KLS0ub3B0IFwtXC1wcGlkIFwgcGlk bGlzdAotLVNlbGVjdCBieSBwYXJlbnQgcHJvY2Vzc1wgSUQuCi0tVGhpcyBzZWxlY3RzIHRoZSBw cm9jZXNzZXMKLS13aXRoIGEgcGFyZW50XCBwcm9jZXNzXCBJRCBpbiBcZlJwaWRsaXN0XGZSLgot LVRoYXRcIGlzLCBpdCBzZWxlY3RzIHByb2Nlc3NlcyB0aGF0IGFyZSBjaGlsZHJlbgotLW9mIHRo b3NlIGxpc3RlZCBpbiBcZlJwaWRsaXN0XGZSLgotLQotLS5vcHQgXC1cLXNpZCBcIHNlc3NsaXN0 Ci0tU2VsZWN0IGJ5IHNlc3Npb25cIElELiAgSWRlbnRpY2FsIHRvXCBcZkJcLXNcZlIuCi0tCi0t Lm9wdCBcLVwtdHR5IFwgdHR5bGlzdAotLVNlbGVjdCBieSB0ZXJtaW5hbC4gIElkZW50aWNhbCB0 byBcZkJcLXRcZlIgYW5kXCBcZkJ0XGZSLgotLQotIC5vcHQgXC1cLXVzZXIgXCB1c2VybGlzdAot IFNlbGVjdCBieSBlZmZlY3RpdmUgdXNlciBJRCAoRVVJRCkgb3IgbmFtZS4KLSBJZGVudGljYWwg dG8gXGZCXC11XGZSIGFuZFwgXGZCVVxmUi4KLSAKLS0ub3B0IFwtXGZJMTIzXGZSCi0tSWRlbnRp Y2FsIHRvIFxmQlwtXC1zaWRcIFxmSTEyM1xmUi4KLS0KLS0ub3B0IFxmSTEyM1xmUgotLUlkZW50 aWNhbCB0byBcZkJcLVwtcGlkXCBcZkkxMjNcZlIuCi0tCi0gLlwiICIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IgotIC5QRAotIC5QUAotQEAgLTM1MywzOCArMzU2LDEyIEBAIFRoZXNlIG9wdGlvbnMgYXJlIHVz ZWQgdG8gY2hvb3NlIHRoZSBpbmZvcm1hdGlvbiBkaXNwbGF5ZWQgYnkgXGZCcHNcZlIuCi0gVGhl IG91dHB1dCBtYXkgZGlmZmVyIGJ5IHBlcnNvbmFsaXR5LgotIC5QUAotIAotLS5vcHQgXC1GCi0t ZXh0cmEgZnVsbCBmb3JtYXQuIFNlZSB0aGUgXGZCXC1mXGZSIG9wdGlvbiwgd2hpY2ggXGZCXC1G XGZSIGltcGxpZXMuCi0tCi0tLm9wdCBcLU8gXCBmb3JtYXQKLS1pcyBsaWtlIFxmQlwtb1xmUiwg YnV0IHByZWxvYWRlZCB3aXRoIHNvbWUgZGVmYXVsdCBjb2x1bW5zLgotLUlkZW50aWNhbCB0byBc ZkJcLW9cIHBpZCxcZklmb3JtYXRcZkIsc3RhdGUsdG5hbWUsdGltZSxjb21tYW5kXGZSCi0tb3Ig XGZCXC1vXCBwaWQsXGZJZm9ybWF0XGZCLHRuYW1lLHRpbWUsY21kXGZSLCBzZWVcIFxmQlwtb1xm UlwgYmVsb3cuCi0tCi0tLm9wdCBPIFwgZm9ybWF0Ci0taXMgcHJlbG9hZGVkIFxmQm9cZlIgKG92 ZXJsb2FkZWQpLgotLS5icgotLVRoZSBCU0QgXGZCT1xmUiBvcHRpb24gY2FuIGFjdCBsaWtlIFxm QlwtT1xmUiAodXNlclwtZGVmaW5lZCBvdXRwdXQKLS1mb3JtYXQgd2l0aCBzb21lIGNvbW1vbiBm aWVsZHMgcHJlZGVmaW5lZCkgb3IgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQotLXNvcnQgb3JkZXIu ICBIZXVyaXN0aWNzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgYmVoYXZpb3Igb2YgdGhpcwot LW9wdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhlIGRlc2lyZWQgYmVoYXZpb3IgaXMgb2J0YWluZWQg KHNvcnRpbmcgb3IKLS1mb3JtYXR0aW5nKSwgc3BlY2lmeSB0aGUgb3B0aW9uIGluIHNvbWUgb3Ro ZXIgd2F5Ci0tKGUuZy4gd2l0aCBcZkJcLU9cZlIgb3IgXGZCXC1cLXNvcnRcZlIpLgotLVdoZW4g dXNlZCBhcyBhIGZvcm1hdHRpbmcgb3B0aW9uLCBpdCBpcyBpZGVudGljYWwgdG8gXGZCXC1PXGZS LCB3aXRoIHRoZQotLUJTRFwgcGVyc29uYWxpdHkuCi0tCi0tLm9wdCBcLU0KLS1BZGQgYSBjb2x1 bW4gb2Ygc2VjdXJpdHkgZGF0YS4gSWRlbnRpY2FsIHRvIFxmQlpcZlIuIChmb3JcIFNFXCBMaW51 eCkKLS0KLS0ub3B0IFgKLS1SZWdpc3RlciBmb3JtYXQuCi0tCi0tLm9wdCBaCi0tQWRkIGEgY29s dW1uIG9mIHNlY3VyaXR5IGRhdGEuIElkZW50aWNhbCB0byBcZkJcLU1cZlIuIChmb3JcIFNFXCBM aW51eCkKLS0KLSAub3B0IFwtYwotIFNob3cgZGlmZmVyZW50IHNjaGVkdWxlciBpbmZvcm1hdGlv biBmb3IgdGhlIFxmQlwtbFxmUiBvcHRpb24uCi0gCi0rLm9wdCBcLVwtY29udGV4dAotK0Rpc3Bs YXkgc2VjdXJpdHkgY29udGV4dCBmb3JtYXQuIChmb3JcIFNFXCBMaW51eCkKLSsKLSAub3B0IFwt ZgotIGRvZXMgZnVsbFwtZm9ybWF0IGxpc3RpbmcuIFRoaXMgb3B0aW9uIGNhbiBiZSBjb21iaW5l ZCB3aXRoIG1hbnkKLSBvdGhlciBVTklYXC1zdHlsZSBvcHRpb25zIHRvIGFkZCBhZGRpdGlvbmFs IGNvbHVtbnMuIEl0IGFsc28gY2F1c2VzCi1AQCAtMzkzLDYgKzM3MCwxMiBAQCBOTFdQIChudW1i ZXIgb2YgdGhyZWFkcykgYW5kIExXUCAodGhyZWFkIElEKSBjb2x1bW5zIHdpbGwgYmUgYWRkZWQu Ci0gU2VlIHRoZSBcZkJjXGZSIG9wdGlvbiwgdGhlIGZvcm1hdCBrZXl3b3JkIFxmQmFyZ3NcZlIs IGFuZCB0aGUKLSBmb3JtYXQga2V5d29yZCBcZkJjb21tXGZSLgotIAotKy5vcHQgXC1GCi0rZXh0 cmEgZnVsbCBmb3JtYXQuIFNlZSB0aGUgXGZCXC1mXGZSIG9wdGlvbiwgd2hpY2ggXGZCXC1GXGZS IGltcGxpZXMuCi0rCi0rLm9wdCBcLVwtZm9ybWF0IFwgZm9ybWF0Ci0rdXNlclwtZGVmaW5lZCBm b3JtYXQuICBJZGVudGljYWwgdG8gXGZCXC1vXGZSIGFuZCBcZkJvXGZSLgotKwotIC5vcHQgagot IEJTRCBqb2IgY29udHJvbCBmb3JtYXQuCi0gCi1AQCAtNDA1LDYgKzM4OCwyNiBAQCBkaXNwbGF5 IEJTRCBsb25nIGZvcm1hdC4KLSAub3B0IFwtbAotIGxvbmcgZm9ybWF0LiBUaGUgXGZCXC15XGZS IG9wdGlvbiBpcyBvZnRlbiB1c2VmdWwgd2l0aCB0aGlzLgotIAotKy5vcHQgXC1NCi0rQWRkIGEg Y29sdW1uIG9mIHNlY3VyaXR5IGRhdGEuIElkZW50aWNhbCB0byBcZkJaXGZSLiAoZm9yXCBTRVwg TGludXgpCi0rCi0rLm9wdCBPIFwgZm9ybWF0Ci0raXMgcHJlbG9hZGVkIFxmQm9cZlIgKG92ZXJs b2FkZWQpLgotKy5icgotK1RoZSBCU0QgXGZCT1xmUiBvcHRpb24gY2FuIGFjdCBsaWtlIFxmQlwt T1xmUiAodXNlclwtZGVmaW5lZCBvdXRwdXQKLStmb3JtYXQgd2l0aCBzb21lIGNvbW1vbiBmaWVs ZHMgcHJlZGVmaW5lZCkgb3IgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQotK3NvcnQgb3JkZXIuICBI ZXVyaXN0aWNzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgYmVoYXZpb3Igb2YgdGhpcwotK29w dGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhlIGRlc2lyZWQgYmVoYXZpb3IgaXMgb2J0YWluZWQgKHNv cnRpbmcgb3IKLStmb3JtYXR0aW5nKSwgc3BlY2lmeSB0aGUgb3B0aW9uIGluIHNvbWUgb3RoZXIg d2F5Ci0rKGUuZy4gd2l0aCBcZkJcLU9cZlIgb3IgXGZCXC1cLXNvcnRcZlIpLgotK1doZW4gdXNl ZCBhcyBhIGZvcm1hdHRpbmcgb3B0aW9uLCBpdCBpcyBpZGVudGljYWwgdG8gXGZCXC1PXGZSLCB3 aXRoIHRoZQotK0JTRFwgcGVyc29uYWxpdHkuCi0rCi0rLm9wdCBcLU8gXCBmb3JtYXQKLStpcyBs aWtlIFxmQlwtb1xmUiwgYnV0IHByZWxvYWRlZCB3aXRoIHNvbWUgZGVmYXVsdCBjb2x1bW5zLgot K0lkZW50aWNhbCB0byBcZkJcLW9cIHBpZCxcZklmb3JtYXRcZkIsc3RhdGUsdG5hbWUsdGltZSxj b21tYW5kXGZSCi0rb3IgXGZCXC1vXCBwaWQsXGZJZm9ybWF0XGZCLHRuYW1lLHRpbWUsY21kXGZS LCBzZWVcIFxmQlwtb1xmUlwgYmVsb3cuCi0rCi0gLm9wdCBvIFwgZm9ybWF0Ci0gc3BlY2lmeSB1 c2VyXC1kZWZpbmVkIGZvcm1hdC4gIElkZW50aWNhbCB0byBcZkJcLW9cZlIgYW5kCi0gXGZCXC1c LWZvcm1hdFxmUi4KLUBAIC00NDAsMTUgKzQ0MywxNSBAQCBkaXNwbGF5IHVzZXJcLW9yaWVudGVk IGZvcm1hdAotIC5vcHQgdgotIGRpc3BsYXkgdmlydHVhbCBtZW1vcnkgZm9ybWF0Ci0gCi0rLm9w dCBYCi0rUmVnaXN0ZXIgZm9ybWF0LgotKwotIC5vcHQgXC15Ci0gRG8gbm90IHNob3cgZmxhZ3M7 IHNob3cgcnNzIGluIHBsYWNlIG9mIGFkZHIuCi0gVGhpcyBvcHRpb24gY2FuIG9ubHkgYmUgdXNl ZCB3aXRoIFxmQlwtbFxmUi4KLSAKLS0ub3B0IFwtXC1mb3JtYXQgXCBmb3JtYXQKLS11c2VyXC1k ZWZpbmVkIGZvcm1hdC4gIElkZW50aWNhbCB0byBcZkJcLW9cZlIgYW5kIFxmQm9cZlIuCi0tCi0t Lm9wdCBcLVwtY29udGV4dAotLURpc3BsYXkgc2VjdXJpdHkgY29udGV4dCBmb3JtYXQuIChmb3Jc IFNFXCBMaW51eCkKLSsub3B0IFoKLStBZGQgYSBjb2x1bW4gb2Ygc2VjdXJpdHkgZGF0YS4gSWRl bnRpY2FsIHRvIFxmQlwtTVxmUi4gKGZvclwgU0VcIExpbnV4KQotIAotIC5cIiAiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIKLSAuUEQKLUBAIC00NTksMzcgKzQ2Miw2IEBAIERpc3BsYXkgc2VjdXJpdHkgY29u dGV4dCBmb3JtYXQuIChmb3JcIFNFXCBMaW51eCkKLSAuXCIgIC5CIEMKLSAuXCIgIHVzZSByYXcg Q1BVIHRpbWUgZm9yICVDUFUgaW5zdGVhZCBvZiBkZWNheWluZyBhdmVyYWdlCi0gCi0tLm9wdCBc LUgKLS1zaG93IHByb2Nlc3MgaGllcmFyY2h5IChmb3Jlc3QpCi0tCi0tLm9wdCBOIFwgbmFtZWxp c3QKLS1TcGVjaWZ5IG5hbWVsaXN0IGZpbGUuICBJZGVudGljYWwgdG8gXGZCXC1uXGZSLCBzZWUg XGZCXC1uXGZSIGFib3ZlLgotLQotLS5vcHQgTyBcIG9yZGVyCi0tU29ydGluZyBvcmRlci4gKG92 ZXJsb2FkZWQpCi0tLmJyCi0tVGhlIEJTRCBcZkJPXGZSIG9wdGlvbiBjYW4gYWN0IGxpa2UgXGZC XC1PXGZSICh1c2VyXC1kZWZpbmVkIG91dHB1dAotLWZvcm1hdCB3aXRoIHNvbWUgY29tbW9uIGZp ZWxkcyBwcmVkZWZpbmVkKSBvciBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5Ci0tc29ydCBvcmRlci4g IEhldXJpc3RpY3MgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBiZWhhdmlvciBvZiB0aGlzCi0t b3B0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGUgZGVzaXJlZCBiZWhhdmlvciBpcyBvYnRhaW5lZCAo c29ydGluZyBvcgotLWZvcm1hdHRpbmcpLCBzcGVjaWZ5IHRoZSBvcHRpb24gaW4gc29tZSBvdGhl ciB3YXkgKGUuZy4gd2l0aCBcZkJcLU9cZlIKLS1vciBcZkJcLVwtc29ydFxmUikuCi0tCi0tRm9y IHNvcnRpbmcsIG9ic29sZXRlIEJTRCBcZkJPXGZSIG9wdGlvbiBzeW50YXggaXMKLS1cZkJPXGZS W1xmQitcZlJ8XGZCXC1cZlJdXGZJazFcZlJbLFtcZkIrXGZSfFxmQlwtXGZSXVxmSWsyXGZSWywu Li5dXS4KLS1JdCBvcmRlcnMgdGhlIHByb2Nlc3NlcyBsaXN0aW5nIGFjY29yZGluZyB0byB0aGUg bXVsdGlsZXZlbCBzb3J0IHNwZWNpZmllZCBieQotLXRoZSBzZXF1ZW5jZSBvZiBvbmVcLWxldHRl ciBzaG9ydCBrZXlzIFxmSWsxXGZSLCBcZklrMlxmUiwgLi4uIGRlc2NyaWJlZAotLWluIHRoZSBc ZkJPQlNPTEVURSBTT1JUIEtFWVNcZlIgc2VjdGlvbiBiZWxvdy4KLS1UaGVcICIrIiBpcyBjdXJy ZW50bHkgb3B0aW9uYWwsCi0tbWVyZWx5IHJlXC1pdGVyYXRpbmcgdGhlIGRlZmF1bHQgZGlyZWN0 aW9uIG9uIGEga2V5LAotLWJ1dCBtYXkgaGVscCB0byBkaXN0aW5ndWlzaCBhbiBcZkJPXGZSIHNv cnQgZnJvbSBhbiBcZkJPXGZSIGZvcm1hdC4KLS1UaGVcICJcLSIgcmV2ZXJzZXMgZGlyZWN0aW9u IG9ubHkgb24gdGhlIGtleSBpdCBwcmVjZWRlcy4KLS0KLS0ub3B0IFMKLS1TdW0gdXAgc29tZSBp bmZvcm1hdGlvbiwgc3VjaCBhcyBDUFUgdXNhZ2UsIGZyb20gZGVhZCBjaGlsZCBwcm9jZXNzZXMK LS1pbnRvIHRoZWlyIHBhcmVudC4gVGhpcyBpcyB1c2VmdWwgZm9yIGV4YW1pbmluZyBhIHN5c3Rl bSB3aGVyZSBhCi0tcGFyZW50IHByb2Nlc3MgcmVwZWF0ZWRseSBmb3JrcyBvZmYgc2hvcnRcLWxp dmVkIGNoaWxkcmVuIHRvIGRvIHdvcmsuCi0tCi0gLm9wdCBjCi0gU2hvdyB0aGUgdHJ1ZSBjb21t YW5kIG5hbWUuIFRoaXMgaXMgZGVyaXZlZCBmcm9tIHRoZSBuYW1lIG9mIHRoZQotIGV4ZWN1dGFi bGUgZmlsZSwgcmF0aGVyIHRoYW4gZnJvbSB0aGUgYXJndiB2YWx1ZS4gQ29tbWFuZCBhcmd1bWVu dHMKLUBAIC01MDIsMTIgKzQ3NCwyNCBAQCBkaXNwbGF5IHRoZSBjb21tYW5kIGFyZ3VtZW50cy4K LSBTZWUgdGhlIFxmQlwtZlxmUiBvcHRpb24sIHRoZSBmb3JtYXQga2V5d29yZCBcZkJhcmdzXGZS LCBhbmQgdGhlCi0gZm9ybWF0IGtleXdvcmQgXGZCY29tbVxmUi4KLSAKLSsub3B0IFwtXC1jb2xz IFwgbgotK3NldCBzY3JlZW4gd2lkdGgKLSsKLSsub3B0IFwtXC1jb2x1bW5zIFwgbgotK3NldCBz Y3JlZW4gd2lkdGgKLSsKLSsub3B0IFwtXC1jdW11bGF0aXZlCi0raW5jbHVkZSBzb21lIGRlYWQg Y2hpbGQgcHJvY2VzcyBkYXRhIChhcyBhIHN1bSB3aXRoIHRoZSBwYXJlbnQpCi0rCi0gLm9wdCBl Ci0gU2hvdyB0aGUgZW52aXJvbm1lbnQgYWZ0ZXIgdGhlIGNvbW1hbmQuCi0gCi0gLm9wdCBmCi0g QVNDSUlcLWFydCBwcm9jZXNzIGhpZXJhcmNoeSAoZm9yZXN0KQotIAotKy5vcHQgXC1cLWZvcmVz dAotK0FTQ0lJIGFydCBwcm9jZXNzIHRyZWUKLSsKLSAub3B0IGgKLSBObyBoZWFkZXIuIChvciwg b25lIGhlYWRlciBwZXIgc2NyZWVuIGluIHRoZSBCU0QgcGVyc29uYWxpdHkpCi0gLmJyCi1AQCAt NTIxLDYgKzUwNSwxMiBAQCBjdXJyZW50IHBlcnNvbmFsaXR5LCB5b3UgY2FuIHVzZSB0aGUgbG9u ZyBvcHRpb25zIFxmQlwtXC1oZWFkZXJzXGZSCi0gYW5kIFxmQlwtXC1ub1wtaGVhZGVyc1xmUiB0 byBlbmFibGUgcHJpbnRpbmcgaGVhZGVycyBlYWNoIHBhZ2Ugb3IKLSBkaXNhYmxlIGhlYWRlcnMg ZW50aXJlbHksIHJlc3BlY3RpdmVseS4KLSAKLSsub3B0IFwtSAotK3Nob3cgcHJvY2VzcyBoaWVy YXJjaHkgKGZvcmVzdCkKLSsKLSsub3B0IFwtXC1oZWFkZXJzCi0rcmVwZWF0IGhlYWRlciBsaW5l cywgb25lIHBlciBwYWdlIG9mIG91dHB1dAotKwotIC5vcHQgayBcIHNwZWMKLSBzcGVjaWZ5IHNv cnRpbmcgb3JkZXIuIFNvcnRpbmcgc3ludGF4IGlzCi0gW1xmQitcZlJ8XGZCXC1cZlJdXGZJa2V5 XGZSWyxbXGZCK1xmUnxcZkJcLVxmUl1cZklrZXlcZlJbLC4uLl1dCi1AQCAtNTU3LDQwICs1NDcs NDcgQEAgV2l0aG91dCB0aGlzIG9wdGlvbiwgdGhlIGRlZmF1bHQgc2VhcmNoIHBhdGggZm9yIHRo ZSBuYW1lbGlzdCBpczoKLSAuYnIKLSAJL1N5c3RlbS5tYXAKLSAKLSsub3B0IFwtXC1saW5lcyBc IG4KLStzZXQgc2NyZWVuIGhlaWdodAotKwotIC5vcHQgbgotIE51bWVyaWMgb3V0cHV0IGZvciBX Q0hBTiBhbmQgVVNFUi4gKGluY2x1ZGluZyBhbGwgdHlwZXMgb2YgVUlEIGFuZCBHSUQpCi0gCi0t Lm9wdCBcLXcKLS1XaWRlIG91dHB1dC4gVXNlIHRoaXMgb3B0aW9uIHR3aWNlIGZvciB1bmxpbWl0 ZWQgd2lkdGguCi0tCi0tLm9wdCB3Ci0tV2lkZSBvdXRwdXQuIFVzZSB0aGlzIG9wdGlvbiB0d2lj ZSBmb3IgdW5saW1pdGVkIHdpZHRoLgotLQotLS5vcHQgXC1cLWNvbHMgXCBuCi0tc2V0IHNjcmVl biB3aWR0aAotLQotLS5vcHQgXC1cLWNvbHVtbnMgXCBuCi0tc2V0IHNjcmVlbiB3aWR0aAotLQot LS5vcHQgXC1cLWN1bXVsYXRpdmUKLS1pbmNsdWRlIHNvbWUgZGVhZCBjaGlsZCBwcm9jZXNzIGRh dGEgKGFzIGEgc3VtIHdpdGggdGhlIHBhcmVudCkKLSsub3B0IE4gXCBuYW1lbGlzdAotK1NwZWNp ZnkgbmFtZWxpc3QgZmlsZS4gIElkZW50aWNhbCB0byBcZkJcLW5cZlIsIHNlZSBcZkJcLW5cZlIg YWJvdmUuCi0gCi0tLm9wdCBcLVwtZm9yZXN0Ci0tQVNDSUkgYXJ0IHByb2Nlc3MgdHJlZQotKy5v cHQgTyBcIG9yZGVyCi0rU29ydGluZyBvcmRlci4gKG92ZXJsb2FkZWQpCi0rLmJyCi0rVGhlIEJT RCBcZkJPXGZSIG9wdGlvbiBjYW4gYWN0IGxpa2UgXGZCXC1PXGZSICh1c2VyXC1kZWZpbmVkIG91 dHB1dAotK2Zvcm1hdCB3aXRoIHNvbWUgY29tbW9uIGZpZWxkcyBwcmVkZWZpbmVkKSBvciBjYW4g YmUgdXNlZCB0byBzcGVjaWZ5Ci0rc29ydCBvcmRlci4gIEhldXJpc3RpY3MgYXJlIHVzZWQgdG8g ZGV0ZXJtaW5lIHRoZSBiZWhhdmlvciBvZiB0aGlzCi0rb3B0aW9uLiBUbyBlbnN1cmUgdGhhdCB0 aGUgZGVzaXJlZCBiZWhhdmlvciBpcyBvYnRhaW5lZCAoc29ydGluZyBvcgotK2Zvcm1hdHRpbmcp LCBzcGVjaWZ5IHRoZSBvcHRpb24gaW4gc29tZSBvdGhlciB3YXkgKGUuZy4gd2l0aCBcZkJcLU9c ZlIKLStvciBcZkJcLVwtc29ydFxmUikuCi0gCi0tLm9wdCBcLVwtaGVhZGVycwotLXJlcGVhdCBo ZWFkZXIgbGluZXMsIG9uZSBwZXIgcGFnZSBvZiBvdXRwdXQKLStGb3Igc29ydGluZywgb2Jzb2xl dGUgQlNEIFxmQk9cZlIgb3B0aW9uIHN5bnRheCBpcwotK1xmQk9cZlJbXGZCK1xmUnxcZkJcLVxm Ul1cZklrMVxmUlssW1xmQitcZlJ8XGZCXC1cZlJdXGZJazJcZlJbLC4uLl1dLgotK0l0IG9yZGVy cyB0aGUgcHJvY2Vzc2VzIGxpc3RpbmcgYWNjb3JkaW5nIHRvIHRoZSBtdWx0aWxldmVsIHNvcnQg c3BlY2lmaWVkIGJ5Ci0rdGhlIHNlcXVlbmNlIG9mIG9uZVwtbGV0dGVyIHNob3J0IGtleXMgXGZJ azFcZlIsIFxmSWsyXGZSLCAuLi4gZGVzY3JpYmVkCi0raW4gdGhlIFxmQk9CU09MRVRFIFNPUlQg S0VZU1xmUiBzZWN0aW9uIGJlbG93LgotK1RoZVwgIisiIGlzIGN1cnJlbnRseSBvcHRpb25hbCwK LSttZXJlbHkgcmVcLWl0ZXJhdGluZyB0aGUgZGVmYXVsdCBkaXJlY3Rpb24gb24gYSBrZXksCi0r YnV0IG1heSBoZWxwIHRvIGRpc3Rpbmd1aXNoIGFuIFxmQk9cZlIgc29ydCBmcm9tIGFuIFxmQk9c ZlIgZm9ybWF0LgotK1RoZVwgIlwtIiByZXZlcnNlcyBkaXJlY3Rpb24gb25seSBvbiB0aGUga2V5 IGl0IHByZWNlZGVzLgotIAotIC5vcHQgXC1cLW5vXC1oZWFkZXJzCi0gcHJpbnQgbm8gaGVhZGVy IGxpbmUgYXQgYWxsLiBcLVwtbm9cLWhlYWRpbmcgaXMgYW4gYWxpYXMgZm9yIHRoaXMKLSBvcHRp b24uCi0gCi0tLm9wdCBcLVwtbGluZXMgXCBuCi0tc2V0IHNjcmVlbiBoZWlnaHQKLS0KLSAub3B0 IFwtXC1yb3dzIFwgbgotIHNldCBzY3JlZW4gaGVpZ2h0Ci0gCi0rLm9wdCBTCi0rU3VtIHVwIHNv bWUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgQ1BVIHVzYWdlLCBmcm9tIGRlYWQgY2hpbGQgcHJvY2Vz c2VzCi0raW50byB0aGVpciBwYXJlbnQuIFRoaXMgaXMgdXNlZnVsIGZvciBleGFtaW5pbmcgYSBz eXN0ZW0gd2hlcmUgYQotK3BhcmVudCBwcm9jZXNzIHJlcGVhdGVkbHkgZm9ya3Mgb2ZmIHNob3J0 XC1saXZlZCBjaGlsZHJlbiB0byBkbyB3b3JrLgotKwotIC5vcHQgXC1cLXNvcnQgXCBzcGVjCi0g c3BlY2lmeSBzb3J0aW5nIG9yZGVyLiBTb3J0aW5nIHN5bnRheCBpcwotIFtcZkIrXGZSfFxmQlwt XGZSXVxmSWtleVxmUlssW1xmQitcZlJ8XGZCXC1cZlJdXGZJa2V5XGZSWywuLi5dXQotQEAgLTU5 OSw2ICs1OTYsMTIgQEAgVGhlXCAiKyIgaXMgb3B0aW9uYWwgc2luY2UgZGVmYXVsdCBkaXJlY3Rp b24gaXMgaW5jcmVhc2luZyBudW1lcmljYWwgb3IKLSBsZXhpY29ncmFwaGljIG9yZGVyLiBJZGVu dGljYWwgdG9cIFxmQmtcZlIuCi0gRm9yIGV4YW1wbGU6IFxmQnBzXCBqYXhcIFwtXC1zb3J0PXVp ZCxcLXBwaWQsK3BpZFxmUgotIAotKy5vcHQgdwotK1dpZGUgb3V0cHV0LiBVc2UgdGhpcyBvcHRp b24gdHdpY2UgZm9yIHVubGltaXRlZCB3aWR0aC4KLSsKLSsub3B0IFwtdwotK1dpZGUgb3V0cHV0 LiBVc2UgdGhpcyBvcHRpb24gdHdpY2UgZm9yIHVubGltaXRlZCB3aWR0aC4KLSsKLSAub3B0IFwt XC13aWR0aCBcIG4KLSBzZXQgc2NyZWVuIHdpZHRoCi0gCi1AQCAtNjE0LDM1ICs2MTcsMzUgQEAg U2hvdyB0aHJlYWRzIGFzIGlmIHRoZXkgd2VyZSBwcm9jZXNzZXMKLSAub3B0IFwtTAotIFNob3cg dGhyZWFkcywgcG9zc2libHkgd2l0aCBMV1AgYW5kIE5MV1AgY29sdW1ucwotIAotLS5vcHQgXC1U Ci0tU2hvdyB0aHJlYWRzLCBwb3NzaWJseSB3aXRoIFNQSUQgY29sdW1uCi0tCi0gLm9wdCBtCi0g U2hvdyB0aHJlYWRzIGFmdGVyIHByb2Nlc3NlcwotIAotIC5vcHQgXC1tCi0gU2hvdyB0aHJlYWRz IGFmdGVyIHByb2Nlc3NlcwotIAotKy5vcHQgXC1UCi0rU2hvdyB0aHJlYWRzLCBwb3NzaWJseSB3 aXRoIFNQSUQgY29sdW1uCi0rCi0gLlwiICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgotIC5QRAotIC5QUAot IC5TSCAiT1RIRVIgSU5GT1JNQVRJT04iCi0gLlBEIDAKLSAKLSsub3B0IFwtXC1oZWxwCi0rUHJp bnQgYSBoZWxwIG1lc3NhZ2UuCi0rCi0rLm9wdCBcLVwtaW5mbwotK1ByaW50IGRlYnVnZ2luZyBp bmZvLgotKwotIC5vcHQgTAotIExpc3QgYWxsIGZvcm1hdCBzcGVjaWZpZXJzLgotIAotLS5vcHQg XC1WCi0tUHJpbnQgdGhlIHByb2NwcyB2ZXJzaW9uLgotLQotIC5vcHQgVgotIFByaW50IHRoZSBw cm9jcHMgdmVyc2lvbi4KLSAKLS0ub3B0IFwtXC1oZWxwCi0tUHJpbnQgYSBoZWxwIG1lc3NhZ2Uu Ci0tCi0tLm9wdCBcLVwtaW5mbwotLVByaW50IGRlYnVnZ2luZyBpbmZvLgotKy5vcHQgXC1WCi0r UHJpbnQgdGhlIHByb2NwcyB2ZXJzaW9uLgotIAotIC5vcHQgXC1cLXZlcnNpb24KLSBQcmludCB0 aGUgcHJvY3BzIHZlcnNpb24uCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJv Y3BzLTMuMi44LzAwNTMtdG9wX2hpZ2hsaWdodC5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNTMtdG9wX2hpZ2hsaWdodC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MjYyMWYxNy4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDUzLXRvcF9oaWdo bGlnaHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIDg0MDhlZmE0 YWQ5YmY0NjliOTU3YjNlODRjMTM1OTM0OTlkOWVkNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nw cy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBG cmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNTMvNzBdIHRv cF9oaWdobGlnaHQKLQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tCi0gdG9wLmMgfCAgICAzICsrLQotIDEgZmls ZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvdG9wLmMgYi90b3AuYwotaW5kZXggZjY4ODBiNS4uZDg2YTMxMSAxMDA2NDQKLS0tLSBhL3Rv cC5jCi0rKysgYi90b3AuYwotQEAgLTMwNTQsOSArMzA1NCwxMCBAQCBzdGF0aWMgcHJvY190ICoq c3VtbWFyeV9zaG93ICh2b2lkKQotICAgICAgIHNucHJpbnRmKF96LCBzaXplb2YoX3opLCBmLCAj IyB2YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIHNucHJp bnRmKGNidWYsIHNpemVvZihjYnVmKSwgIiVzJXMlcyIsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotICAgICAgICAgIHEtPmNhcGNscl9yb3doaWdoLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAgICAgICAgIF96LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotKyAgICAgICAgIF96K2FkdmFuY2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICEoQ0hLdyhxLCBTaG93X0hJUk9X UykgJiYgJ1InID09IHAtPnN0YXRlKSA/IHEtPmNhcGNscl9yb3dub3JtIDogIiIgXAotICAgICAg ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAotKyAgICAgIGFkdmFuY2U9MDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIHBhZCArPSBx LT5sZW5fcm93aGlnaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgICAgIGlmICghKENIS3cocSwgU2hvd19ISVJPV1MpICYmICdSJyA9PSBwLT5z dGF0ZSkpIHBhZCArPSBxLT5sZW5fcm93bm9ybTsgXAotICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot LS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU0LXRvcF9u b2h6LnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1NC10b3Bfbm9oei5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2ZWM1YS4uMDAwMDAwMAotLS0gYS9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDU0LXRvcF9ub2h6LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUg KzAsMCBAQAotRnJvbSBjMDk4MTQyNTgzODNlMWMwMzJjNmRmMTJhZTk2ZDVlNTYzODZkYWVmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2Rl Ymlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5m b0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3Vi amVjdDogW1BBVENIIDU0LzcwXSB0b3Bfbm9oegotCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0KLSB0b3AuYyB8 ICAgIDEgKwotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvdG9wLmMgYi90b3AuYwotaW5kZXggZDg2YTMxMS4uZWEzMzk4OSAx MDA2NDQKLS0tLSBhL3RvcC5jCi0rKysgYi90b3AuYwotQEAgLTI5MTYsNiArMjkxNiw3IEBAIHN0 YXRpYyB2b2lkIHN1bW1hcnlobHAgKENQVV90ICpjcHUsIGNvbnN0IGNoYXIgKnBmeCkKLSAgICBz X2ZybWUgPSBjcHUtPnMgLSBjcHUtPnNfc2F2OwotICAgIG5fZnJtZSA9IGNwdS0+biAtIGNwdS0+ bl9zYXY7Ci0gICAgaV9mcm1lID0gVFJJTXooY3B1LT5pIC0gY3B1LT5pX3Nhdik7Ci0rICAgaWYg KCh1X2ZybWUgPT0gMCkgJiYgKGlfZnJtZSA9PSAwKSkgaV9mcm1lID0gMTAwLjA7Ci0gICAgd19m cm1lID0gY3B1LT53IC0gY3B1LT53X3NhdjsKLSAgICB4X2ZybWUgPSBjcHUtPnggLSBjcHUtPnhf c2F2OwotICAgIHlfZnJtZSA9IGNwdS0+eSAtIGNwdS0+eV9zYXY7Ci0tLSAKLTEuNy4wCi0KZGlm ZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTUtdm1zdGF0X3BhcnRfZm9ybWF0LnBh dGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1NS12bXN0YXRfcGFydF9mb3JtYXQucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxNDZhYzguLjAwMDAwMDAKLS0tIGEvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDA1NS12bXN0YXRfcGFydF9mb3JtYXQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw5NCArMCwwIEBACi1Gcm9tIGY2MTlmODYyOWE1OTE1YzkwMGY5ODRjMWNhZjQ0 MjQxZmYwNzdmMzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRl LmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJp YW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4 OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNTUvNzBdIHZtc3RhdF9wYXJ0X2Zvcm1hdAotCi0t LS0KLSBwcm9jL3N5c2luZm8uYyB8ICAgMjIgKysrKysrKysrKysrKysrKysrKy0tLQotIHByb2Mv c3lzaW5mby5oIHwgICAgMiArLQotIHZtc3RhdC5jICAgICAgIHwgICAgMiArLQotIDMgZmlsZXMg Y2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3Byb2Mvc3lzaW5mby5jIGIvcHJvYy9zeXNpbmZvLmMKLWluZGV4IDhkYmFiZGYuLjQ0NGVlNWIg MTAwNjQ0Ci0tLS0gYS9wcm9jL3N5c2luZm8uYwotKysrIGIvcHJvYy9zeXNpbmZvLmMKLUBAIC03 OTYsNiArNzk2LDE4IEBAIHVuc2lnbmVkIGludCBnZXRwYXJ0aXRpb25zX251bShzdHJ1Y3QgZGlz a19zdGF0ICpkaXNrcywgaW50IG5kaXNrcyl7Ci0gfQotIAotIC8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ci0rc3RhdGljIGludCBpc19kaXNrKGNoYXIgKmRldikKLSt7Ci0rICBjaGFyIHN5c3BhdGhbUEFU SF9NQVhdOwotKyAgY2hhciAqc2xhc2g7Ci0rCi0rICB3aGlsZSAoKHNsYXNoID0gc3RyY2hyKGRl diwgJy8nKSkpCi0rICAgICpzbGFzaCA9ICchJzsKLSsgIHNucHJpbnRmKHN5c3BhdGgsIHNpemVv ZihzeXNwYXRoKSwgIi9zeXMvYmxvY2svJXMiLCBkZXYpOwotKyAgcmV0dXJuICEoYWNjZXNzKHN5 c3BhdGgsIEZfT0spKTsKLSt9Ci0rCi0rLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLSAKLSB1bnNpZ25l ZCBpbnQgZ2V0ZGlza3N0YXQoc3RydWN0IGRpc2tfc3RhdCAqKmRpc2tzLCBzdHJ1Y3QgcGFydGl0 aW9uX3N0YXQgKipwYXJ0aXRpb25zKXsKLSAgIEZJTEUqIGZkOwotQEAgLTgwMyw2ICs4MTUsNyBA QCB1bnNpZ25lZCBpbnQgZ2V0ZGlza3N0YXQoc3RydWN0IGRpc2tfc3RhdCAqKmRpc2tzLCBzdHJ1 Y3QgcGFydGl0aW9uX3N0YXQgKipwYXJ0aQotICAgaW50IGNQYXJ0aXRpb24gPSAwOwotICAgaW50 IGZpZWxkczsKLSAgIHVuc2lnbmVkIGR1bW15OwotKyAgY2hhciBkZXZuYW1lW1BBVEhfTUFYXTsK LSAKLSAgICpkaXNrcyA9IE5VTEw7Ci0gICAqcGFydGl0aW9ucyA9IE5VTEw7Ci1AQCAtODE1LDgg KzgyOCw5IEBAIHVuc2lnbmVkIGludCBnZXRkaXNrc3RhdChzdHJ1Y3QgZGlza19zdGF0ICoqZGlz a3MsIHN0cnVjdCBwYXJ0aXRpb25fc3RhdCAqKnBhcnRpCi0gICAgICAgZmNsb3NlKGZkKTsKLSAg ICAgICBicmVhazsKLSAgICAgfQotLSAgICBmaWVsZHMgPSBzc2NhbmYoYnVmZiwgIiAlKmQgJSpk ICUqcyAlKnUgJSp1ICUqdSAlKnUgJSp1ICUqdSAlKnUgJSp1ICUqdSAlKnUgJXUiLCAmZHVtbXkp OwotLSAgICBpZiAoZmllbGRzID09IDEpewotKyAgICBmaWVsZHMgPSBzc2NhbmYoYnVmZiwgIiAl KmQgJSpkICUxNXMgJSp1ICUqdSAlKnUgJSp1ICUqdSAlKnUgJSp1ICUqdSAlKnUgJSp1ICV1IiwK LSsgICAgICAgICAgICAmZGV2bmFtZSwgJmR1bW15KTsKLSsgICAgaWYgKGZpZWxkcyA9PSAyICYm IGlzX2Rpc2soZGV2bmFtZSkpewotICAgICAgICgqZGlza3MpID0gcmVhbGxvYygqZGlza3MsIChj RGlzaysxKSpzaXplb2Yoc3RydWN0IGRpc2tfc3RhdCkpOwotICAgICAgIHNzY2FuZihidWZmLCAg IiAgICUqZCAgICAlKmQgJTE1cyAldSAldSAlbGx1ICV1ICV1ICV1ICVsbHUgJXUgJXUgJXUgJXUi LAotICAgICAgICAgLy8mZGlza19tYWpvciwKLUBAIC04MzksNyArODUzLDkgQEAgdW5zaWduZWQg aW50IGdldGRpc2tzdGF0KHN0cnVjdCBkaXNrX3N0YXQgKipkaXNrcywgc3RydWN0IHBhcnRpdGlv bl9zdGF0ICoqcGFydGkKLSAgICAgfWVsc2V7Ci0gICAgICAgKCpwYXJ0aXRpb25zKSA9IHJlYWxs b2MoKnBhcnRpdGlvbnMsIChjUGFydGl0aW9uKzEpKnNpemVvZihzdHJ1Y3QgcGFydGl0aW9uX3N0 YXQpKTsKLSAgICAgICBmZmx1c2goc3Rkb3V0KTsKLS0gICAgICBzc2NhbmYoYnVmZiwgICIgICAl KmQgICAgJSpkICUxNXMgJXUgJWxsdSAldSAldSIsCi0rICAgICAgc3NjYW5mKGJ1ZmYsICAoZmll bGRzID09IDIpCi0rICAgICAgICAgID8gIiAgICUqZCAgICAlKmQgJTE1cyAldSAlKnUgJWxsdSAl KnUgJXUgJSp1ICVsbHUgJSp1ICUqdSAlKnUgJSp1IgotKyAgICAgICAgICA6ICIgICAlKmQgICAg JSpkICUxNXMgJXUgJWxsdSAldSAlbGx1IiwKLSAgICAgICAgIC8vJnBhcnRfbWFqb3IsCi0gICAg ICAgICAvLyZwYXJ0X21pbm9yLAotICAgICAgICAgKCpwYXJ0aXRpb25zKVtjUGFydGl0aW9uXS5w YXJ0aXRpb25fbmFtZSwKLWRpZmYgLS1naXQgYS9wcm9jL3N5c2luZm8uaCBiL3Byb2Mvc3lzaW5m by5oCi1pbmRleCBlMzBhMzhiLi40OTRjNGIzIDEwMDY0NAotLS0tIGEvcHJvYy9zeXNpbmZvLmgK LSsrKyBiL3Byb2Mvc3lzaW5mby5oCi1AQCAtMTEzLDcgKzExMyw3IEBAIHR5cGVkZWYgc3RydWN0 IHBhcnRpdGlvbl9zdGF0ewotIAl1bnNpZ25lZCAgICAgICAgICAgcGFyZW50X2Rpc2s7ICAvLyBp bmRleCBpbnRvIGEgc3RydWN0IGRpc2tfc3RhdCBhcnJheQotIAl1bnNpZ25lZCAgICAgICAgICAg cmVhZHM7Ci0gCXVuc2lnbmVkICAgICAgICAgICB3cml0ZXM7Ci0tCXVuc2lnbmVkICAgICAgICAg ICByZXF1ZXN0ZWRfd3JpdGVzOwotKwl1bnNpZ25lZCBsb25nIGxvbmcgcmVxdWVzdGVkX3dyaXRl czsKLSB9cGFydGl0aW9uX3N0YXQ7Ci0gCi0gZXh0ZXJuIHVuc2lnbmVkIGludCBnZXRwYXJ0aXRp b25zX251bShzdHJ1Y3QgZGlza19zdGF0ICpkaXNrcywgaW50IG5kaXNrcyk7Ci1kaWZmIC0tZ2l0 IGEvdm1zdGF0LmMgYi92bXN0YXQuYwotaW5kZXggZTBkM2MyMy4uZTgxYTRhYyAxMDA2NDQKLS0t LSBhL3Ztc3RhdC5jCi0rKysgYi92bXN0YXQuYwotQEAgLTI4Niw3ICsyODYsNyBAQCBzdGF0aWMg aW50IGRpc2twYXJ0aXRpb25fZm9ybWF0KGNvbnN0IGNoYXIqIHBhcnRpdGlvbl9uYW1lKXsKLSAg ICAgc3RydWN0IGRpc2tfc3RhdCAqZGlza3M7Ci0gICAgIHN0cnVjdCBwYXJ0aXRpb25fc3RhdCAq cGFydGl0aW9ucywgKmN1cnJlbnRfcGFydGl0aW9uPU5VTEw7Ci0gICAgIHVuc2lnbmVkIGxvbmcg bmRpc2tzLCBqLCBrLCBucGFydGl0aW9uczsKLS0gICAgY29uc3QgY2hhciBmb3JtYXRbXSA9ICIl MjB1ICUxMGxsdSAlMTB1ICUxMHVcbiI7Ci0rICAgIGNvbnN0IGNoYXIgZm9ybWF0W10gPSAiJTIw dSAlMTBsbHUgJTEwdSAlMTBsbHVcbiI7Ci0gCi0gICAgIGZEaXNrc3RhdD1mb3BlbigiL3Byb2Mv ZGlza3N0YXRzIiwicmIiKTsKLSAgICAgaWYoIWZEaXNrc3RhdCl7Ci0tLSAKLTEuNy4wCi0KZGlm ZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTYtcmVhZHByb2NfZG91YmxlX2ZyZWUu cGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU2LXJlYWRwcm9jX2RvdWJsZV9mcmVlLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTMwODRiLi4wMDAwMDAwCi0tLSBh L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTYtcmVhZHByb2NfZG91YmxlX2ZyZWUucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDBhN2NmZjBiODFiMzIwMzM1OTE0MzZk MmJiYzY1ZjVjNTRlOGZhM2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8v ZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgt OC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEw IDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNTYvNzBdIHJlYWRwcm9jX2RvdWJsZV9m cmVlCi0KLS0tLQotIHByb2MvcmVhZHByb2MuYyB8ICAgIDIgKysKLSAxIGZpbGVzIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Byb2MvcmVh ZHByb2MuYyBiL3Byb2MvcmVhZHByb2MuYwotaW5kZXggOTY2MDc5OS4uNDIwMzA3MSAxMDA2NDQK LS0tLSBhL3Byb2MvcmVhZHByb2MuYwotKysrIGIvcHJvYy9yZWFkcHJvYy5jCi1AQCAtODI4LDYg KzgyOCw3IEBAIHByb2NfdCogcmVhZHByb2MoUFJPQ1RBQiAqcmVzdHJpY3QgY29uc3QgUFQsIHBy b2NfdCAqcmVzdHJpY3QgcCkgewotIAotICAgc2F2ZWRfcCA9IHA7Ci0gICBpZighcCkgcCA9IHhj YWxsb2MocCwgc2l6ZW9mICpwKTsgLyogcGFzc2VkIGJ1ZiBvciBhbGxvY2VkIG1lbSAqLwotKyAg ZWxzZSBtZW1zZXQocCwgMCwgc2l6ZW9mICpwKTsKLSAKLSAgIGZvcig7Oyl7Ci0gICAgIC8vIGZp bGxzIGluIHRoZSBwYXRoLCBwbHVzIHAtPnRpZCBhbmQgcC0+dGdpZAotQEAgLTg1Niw2ICs4NTcs NyBAQCBwcm9jX3QqIHJlYWR0YXNrKFBST0NUQUIgKnJlc3RyaWN0IGNvbnN0IFBULCBjb25zdCBw cm9jX3QgKnJlc3RyaWN0IGNvbnN0IHAsIHBybwotIAotICAgc2F2ZWRfdCA9IHQ7Ci0gICBpZigh dCkgdCA9IHhjYWxsb2ModCwgc2l6ZW9mICp0KTsgLyogcGFzc2VkIGJ1ZiBvciBhbGxvY2VkIG1l bSAqLwotKyAgZWxzZSBtZW1zZXQodCwgMCwgc2l6ZW9mICp0KTsKLSAKLSAgIC8vIDEuIGdvdCB0 byBmYWtlIGEgdGhyZWFkIGZvciBvbGQga2VybmVscwotICAgLy8gMi4gZm9yIHNpbmdsZS10aHJl YWRlZCBwcm9jZXNzZXMsIHRoaXMgaXMgZmFzdGVyIChidXQgbXVzdCBwYXRjaCB1cCBzdHVmZiB0 aGF0IGRpZmZlcnMhKQotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0z LjIuOC8wMDU3LXZtc3RhdF91bml0cy5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTct dm1zdGF0X3VuaXRzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjJiYjNl Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTctdm1zdGF0X3VuaXRzLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotRnJvbSBjYzNkODJhY2E5MWUxOTEw ZTVkYWNiNTZmMmI1MGUyM2VhYjY2ZDczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog aHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3Bz XzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBN YXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDU3LzcwXSB2bXN0YXRfdW5p dHMKLQotdG8gc3RvcCBzb21lIG92ZXJmbG93cyBvZiBzb21lIGtlcm5lbCB2YXJpYWJsZXMKLUJ1 Zy1EZWJpYW46IGh0dHA6Ly9idWdzLmRlYmlhbi5vcmcvNTU4MTM0Ci1CdWctRGViaWFuOiBodHRw Oi8vYnVncy5kZWJpYW4ub3JnLzU1ODM2MQotLS0tCi0gcHJvYy9zeXNpbmZvLmMgfCAgICAyICst Ci0gdm1zdGF0LjggICAgICAgfCAgICAzICsrLQotIHZtc3RhdC5jICAgICAgIHwgICAgOCArKysr LS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvcHJvYy9zeXNpbmZvLmMgYi9wcm9jL3N5c2luZm8uYwotaW5kZXggNDQ0 ZWU1Yi4uMzgyYzhkYyAxMDA2NDQKLS0tLSBhL3Byb2Mvc3lzaW5mby5jCi0rKysgYi9wcm9jL3N5 c2luZm8uYwotQEAgLTYwNiw3ICs2MDYsNyBAQCB2b2lkIG1lbWluZm8odm9pZCl7Ci0gICAgICk7 Ci0gICAgIGhlYWQgPSB0YWlsKzE7Ci0gICAgIGlmKCFmb3VuZCkgZ290byBuZXh0bGluZTsKLS0g ICAgKihmb3VuZC0+c2xvdCkgPSBzdHJ0b3VsKGhlYWQsJnRhaWwsMTApOwotKyAgICAqKGZvdW5k LT5zbG90KSA9ICh1bnNpZ25lZCBsb25nKXN0cnRvdWxsKGhlYWQsJnRhaWwsMTApOwotIG5leHRs aW5lOgotICAgICB0YWlsID0gc3RyY2hyKGhlYWQsICdcbicpOwotICAgICBpZighdGFpbCkgYnJl YWs7Ci1kaWZmIC0tZ2l0IGEvdm1zdGF0LjggYi92bXN0YXQuOAotaW5kZXggYzk3ODI2Zi4uNDg2 MjI0YiAxMDA2NDQKLS0tLSBhL3Ztc3RhdC44Ci0rKysgYi92bXN0YXQuOAotQEAgLTY3LDcgKzY3 LDggQEAgVGhlIFxmQi1EXGZQIHJlcG9ydHMgc29tZSBzdW1tYXJ5IHN0YXRpc3RpY3MgYWJvdXQg ZGlzayBhY3Rpdml0eS4KLSAuUFAKLSBUaGUgXGZCXC1wXGZQIGZvbGxvd2VkIGJ5IHNvbWUgcGFy dGl0aW9uIG5hbWUgZm9yIGRldGFpbGVkIHN0YXRpc3RpY3MgKDIuNS43MCBvciBhYm92ZSByZXF1 aXJlZCkKLSAuUFAKLS1UaGUgXGZCXC1TXGZQIGZvbGxvd2VkIGJ5IGsgb3IgSyBvciBtIG9yIE0g c3dpdGNoZXMgb3V0cHV0cyBiZXR3ZWVuIDEwMDAsIDEwMjQsIDEwMDAwMDAsIG9yIDEwNDg1NzYg Ynl0ZXMKLStUaGUgXGZCXC1TXGZQIGZvbGxvd2VkIGJ5IGsgb3IgSyBvciBtIG9yIE0gc3dpdGNo ZXMgY2hhbmdlcyB0aGUgdW5pdHMgb2YKLStvdXB1dCBmcm9tIGJ5dGVzIHRvIG91dHB1dHMgYmV0 d2VlbiAxMDAwLCAxMDI0LCAxMDAwMDAwLCBvciAxMDQ4NTc2IGJ5dGVzLiBOb3RlIHRoaXMgZG9l cyBub3QgY2hhbmdlIHRoZSBzd2FwIChzaS9zbykgb3IgYmxvY2sgKGJpL2JvKSBmaWVsZHMuCi0g LlBQCi0gVGhlIFxmQlwtVlxmUCBzd2l0Y2ggcmVzdWx0cyBpbiBkaXNwbGF5aW5nIHZlcnNpb24g aW5mb3JtYXRpb24uCi0gLlBQCi1kaWZmIC0tZ2l0IGEvdm1zdGF0LmMgYi92bXN0YXQuYwotaW5k ZXggZTgxYTRhYy4uY2JiYjA5NCAxMDA2NDQKLS0tLSBhL3Ztc3RhdC5jCi0rKysgYi92bXN0YXQu YwotQEAgLTIwOSw4ICsyMDksOCBAQCBzdGF0aWMgdm9pZCBuZXdfZm9ybWF0KHZvaWQpIHsKLSAJ IHVuaXRDb252ZXJ0KGtiX3N3YXBfdXNlZCksIHVuaXRDb252ZXJ0KGtiX21haW5fZnJlZSksCi0g CSB1bml0Q29udmVydChhX29wdGlvbj9rYl9pbmFjdGl2ZTprYl9tYWluX2J1ZmZlcnMpLAotIAkg dW5pdENvbnZlcnQoYV9vcHRpb24/a2JfYWN0aXZlOmtiX21haW5fY2FjaGVkKSwKLS0JICh1bnNp Z25lZCkoICgqcHN3cGluICAqIHVuaXRDb252ZXJ0KGtiX3Blcl9wYWdlKSAqIGh6ICsgZGl2bzIp IC8gRGl2ICksCi0tCSAodW5zaWduZWQpKCAoKnBzd3BvdXQgKiB1bml0Q29udmVydChrYl9wZXJf cGFnZSkgKiBoeiArIGRpdm8yKSAvIERpdiApLAotKwkgKHVuc2lnbmVkKSggKCpwc3dwaW4gICog a2JfcGVyX3BhZ2UgKiBoeiArIGRpdm8yKSAvIERpdiApLAotKwkgKHVuc2lnbmVkKSggKCpwc3dw b3V0ICoga2JfcGVyX3BhZ2UgKiBoeiArIGRpdm8yKSAvIERpdiApLAotIAkgKHVuc2lnbmVkKSgg KCpwZ3BnaW4gICAgICAgICAgICAgICAgKiBoeiArIGRpdm8yKSAvIERpdiApLAotIAkgKHVuc2ln bmVkKSggKCpwZ3Bnb3V0ICAgICAgICAgICAgICAgKiBoeiArIGRpdm8yKSAvIERpdiApLAotIAkg KHVuc2lnbmVkKSggKCppbnRyICAgICAgICAgICAgICAgICAgKiBoeiArIGRpdm8yKSAvIERpdiAp LAotQEAgLTI1OCw4ICsyNTgsOCBAQCBzdGF0aWMgdm9pZCBuZXdfZm9ybWF0KHZvaWQpIHsKLSAJ ICAgdW5pdENvbnZlcnQoa2Jfc3dhcF91c2VkKSx1bml0Q29udmVydChrYl9tYWluX2ZyZWUpLAot IAkgICB1bml0Q29udmVydChhX29wdGlvbj9rYl9pbmFjdGl2ZTprYl9tYWluX2J1ZmZlcnMpLAot IAkgICB1bml0Q29udmVydChhX29wdGlvbj9rYl9hY3RpdmU6a2JfbWFpbl9jYWNoZWQpLAotLQkg ICAodW5zaWduZWQpKCAoIChwc3dwaW4gW3RvZ10gLSBwc3dwaW4gWyF0b2ddKSp1bml0Q29udmVy dChrYl9wZXJfcGFnZSkrc2xlZXBfaGFsZiApL3NsZWVwX3RpbWUgKSwgLypzaSovCi0tCSAgICh1 bnNpZ25lZCkoICggKHBzd3BvdXRbdG9nXSAtIHBzd3BvdXRbIXRvZ10pKnVuaXRDb252ZXJ0KGti X3Blcl9wYWdlKStzbGVlcF9oYWxmICkvc2xlZXBfdGltZSApLCAvKnNvKi8KLSsJICAgKHVuc2ln bmVkKSggKCAocHN3cGluIFt0b2ddIC0gcHN3cGluIFshdG9nXSkqa2JfcGVyX3BhZ2Urc2xlZXBf aGFsZiApL3NsZWVwX3RpbWUgKSwgLypzaSovCi0rCSAgICh1bnNpZ25lZCkoICggKHBzd3BvdXRb dG9nXSAtIHBzd3BvdXRbIXRvZ10pKmtiX3Blcl9wYWdlK3NsZWVwX2hhbGYgKS9zbGVlcF90aW1l ICksIC8qc28qLwotIAkgICAodW5zaWduZWQpKCAoICBwZ3BnaW4gW3RvZ10gLSBwZ3BnaW4gWyF0 b2ddICAgICAgICAgICAgICtzbGVlcF9oYWxmICkvc2xlZXBfdGltZSApLCAvKmJpKi8KLSAJICAg KHVuc2lnbmVkKSggKCAgcGdwZ291dFt0b2ddIC0gcGdwZ291dFshdG9nXSAgICAgICAgICAgICAr c2xlZXBfaGFsZiApL3NsZWVwX3RpbWUgKSwgLypibyovCi0gCSAgICh1bnNpZ25lZCkoICggIGlu dHIgICBbdG9nXSAtIGludHIgICBbIXRvZ10gICAgICAgICAgICAgK3NsZWVwX2hhbGYgKS9zbGVl cF90aW1lICksIC8qaW4qLwotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nw cy0zLjIuOC8wMDU4LXNraWxsX251bGxfYXJndi5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNTgtc2tpbGxfbnVsbF9hcmd2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA2OWIwMDI5Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNTgtc2tpbGxf bnVsbF9hcmd2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSA1MmVj OTkwYTA4MjM1MDFlMjgwMTVjMmU5NjA3ZGM2Y2ZjNzU0MmJhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcC9w cm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5mb0BkZWJpYW4ub3JnPgotRGF0 ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAotU3ViamVjdDogW1BBVENIIDU4Lzcw XSBza2lsbF9udWxsX2FyZ3YKLQotLS0tCi0gc2tpbGwuYyB8ICAgIDIgKy0KLSAxIGZpbGVzIGNo YW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Nr aWxsLmMgYi9za2lsbC5jCi1pbmRleCBjOGFmOWZkLi5kOWExYWY5IDEwMDY0NAotLS0tIGEvc2tp bGwuYwotKysrIGIvc2tpbGwuYwotQEAgLTMwNyw3ICszMDcsNyBAQCBub19tb3JlX2FyZ3M6Ci0g ICAgIGxvbmcgcGlkOwotICAgICBjaGFyICplbmRwOwotICAgICBwaWQgPSBzdHJ0b2woYXJndlth cmdjXSwmZW5kcCwxMCk7Ci0tICAgIGlmKCEqZW5kcCl7Ci0rICAgIGlmKCEqZW5kcCAmJiAoZW5k cCAhPSBhcmd2W2FyZ2NdKSl7Ci0gICAgICAgaWYoIWtpbGwoKHBpZF90KXBpZCxzaWdubykpIGNv bnRpbnVlOwotICAgICAgIC8vIFRoZSBVTklYIHN0YW5kYXJkIGNvbnRyYWRpY3RzIGl0c2VsZi4g SWYgYXQgbGVhc3Qgb25lIHByb2Nlc3MKLSAgICAgICAvLyBpcyBtYXRjaGVkIGZvciBlYWNoIFBJ RCAoYXMgaWYgcHJvY2Vzc2VzIGNvdWxkIHNoYXJlIFBJRCEpIGFuZAotLS0gCi0xLjcuMAotCmRp ZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDU5LXNraWxsX211bHRpYXJnLnBhdGNo IGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA1OS1za2lsbF9tdWx0aWFyZy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJhM2FkYS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3By b2Nwcy0zLjIuOC8wMDU5LXNraWxsX211bHRpYXJnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjUgKzAsMCBAQAotRnJvbSAyNmNkOGVlZTk5NzQyZmQ2OWIwMDZiNGI4NDY3YWVmYzIzMGFlNjFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3Jn L2RlYmlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8 aW5mb0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NiArMDEwMAot U3ViamVjdDogW1BBVENIIDU5LzcwXSBza2lsbF9tdWx0aWFyZwotCi0tLS0KLSBza2lsbC5jIHwg ICAgMiArKwotIDEgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvc2tpbGwuYyBiL3NraWxsLmMKLWluZGV4IGQ5YTFhZjkuLjJkOTBh ZDAgMTAwNjQ0Ci0tLS0gYS9za2lsbC5jCi0rKysgYi9za2lsbC5jCi1AQCAtNDY0LDYgKzQ2NCw4 IEBAIHNlbGVjdGlvbl9jb2xsZWN0aW9uOgotICAgICBzd2l0Y2goZm9yY2UpeyAvKiBmYWxsIHRo cm91Z2ggZWFjaCBkYXRhIHR5cGUgKi8KLSAgICAgZGVmYXVsdDogc2tpbGxzbmljZV91c2FnZSgp OwotICAgICBjYXNlIDA6IC8qIG5vdCBmb3JjZWQgKi8KLSsgICAgICBpZiAoYXJncHRyICYmIGFy Z3B0clswXSA9PSAnLScpIC8qIGl0cyB0aGUgbmV4dCBhcmd1bWVudCBub3QgYSBwYXJhbWV0ZXIg Ki8KLSsgICAgICAgIGNvbnRpbnVlOwotICAgICBjYXNlICd0JzoKLSAgICAgICBpZihhcmdjKXsK LSAgICAgICAgIHN0cnVjdCBzdGF0IHNidWY7Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwNjAtcHJvY192ZXJzaW9uX2NvbnN0cnVjdG9yLnBhdGNoIGIv cGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2MC1wcm9jX3ZlcnNpb25fY29uc3RydWN0b3IucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNGQyNzEuLjAwMDAwMDAKLS0tIGEvcGF0 Y2hlcy9wcm9jcHMtMy4yLjgvMDA2MC1wcm9jX3ZlcnNpb25fY29uc3RydWN0b3IucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi1Gcm9tIDViN2JmMjVjMGI1NDcyMzc4OWFiZmQ1 ZjQ2Nzc5YWU2YWU0OWUyYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8v ZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgt OC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEw IDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNjAvNzBdIHByb2NfdmVyc2lvbl9jb25z dHJ1Y3RvcgotCi0tLS0KLSBwcm9jL3N5c2luZm8uYyB8ICAgIDEgKwotIHByb2MvdmVyc2lvbi5j IHwgICAgMyArLS0KLSBwcm9jL3ZlcnNpb24uaCB8ICAgIDEgKwotIDMgZmlsZXMgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHJvYy9zeXNp bmZvLmMgYi9wcm9jL3N5c2luZm8uYwotaW5kZXggMzgyYzhkYy4uYzgwNGY0OSAxMDA2NDQKLS0t LSBhL3Byb2Mvc3lzaW5mby5jCi0rKysgYi9wcm9jL3N5c2luZm8uYwotQEAgLTIxMyw2ICsyMTMs NyBAQCBzdGF0aWMgaW50IGNoZWNrX2Zvcl9wcml2cyh2b2lkKXsKLSBzdGF0aWMgdm9pZCBpbml0 X2xpYnByb2Modm9pZCkgX19hdHRyaWJ1dGVfXygoY29uc3RydWN0b3IpKTsKLSBzdGF0aWMgdm9p ZCBpbml0X2xpYnByb2Modm9pZCl7Ci0gICBoYXZlX3ByaXZzID0gY2hlY2tfZm9yX3ByaXZzKCk7 Ci0rICBpbml0X0xpbnV4X3ZlcnNpb24oKTsgLyogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHdlIGNo ZWNrIGNvZGUgKi8KLSAgIC8vIG91Z2h0IHRvIGNvdW50IENQVXMgaW4gL3Byb2Mvc3RhdCBpbnN0 ZWFkIG9mIHJlbHlpbmcKLSAgIC8vIG9uIGdsaWJjLCB3aGljaCBmb29saXNobHkgdHJpZXMgdG8g cGFyc2UgL3Byb2MvY3B1aW5mbwotICAgLy8KLWRpZmYgLS1naXQgYS9wcm9jL3ZlcnNpb24uYyBi L3Byb2MvdmVyc2lvbi5jCi1pbmRleCA3OTMwMzY3Li5jYzIxNWJjIDEwMDY0NAotLS0tIGEvcHJv Yy92ZXJzaW9uLmMKLSsrKyBiL3Byb2MvdmVyc2lvbi5jCi1AQCAtMzMsOCArMzMsNyBAQCB2b2lk IGRpc3BsYXlfdmVyc2lvbih2b2lkKSB7Ci0gCi0gaW50IGxpbnV4X3ZlcnNpb25fY29kZTsKLSAK LS1zdGF0aWMgdm9pZCBpbml0X0xpbnV4X3ZlcnNpb24odm9pZCkgX19hdHRyaWJ1dGVfXygoY29u c3RydWN0b3IpKTsKLS1zdGF0aWMgdm9pZCBpbml0X0xpbnV4X3ZlcnNpb24odm9pZCkgewotK3Zv aWQgaW5pdF9MaW51eF92ZXJzaW9uKHZvaWQpIHsKLSAgICAgaW50IHggPSAwLCB5ID0gMCwgeiA9 IDA7CS8qIGNsZWFyZWQgaW4gY2FzZSBzc2NhbmYoKSA8IDMgKi8KLSAgICAgRklMRSAqZnA7Ci0g ICAgIGNoYXIgYnVmWzI1Nl07Ci1kaWZmIC0tZ2l0IGEvcHJvYy92ZXJzaW9uLmggYi9wcm9jL3Zl cnNpb24uaAotaW5kZXggMzc2OWI4NC4uMDRhNzVlOSAxMDA2NDQKLS0tLSBhL3Byb2MvdmVyc2lv bi5oCi0rKysgYi9wcm9jL3ZlcnNpb24uaAotQEAgLTE0LDYgKzE0LDcgQEAKLSAKLSBFWFRFUk5f Q19CRUdJTgotIAotK3ZvaWQgaW5pdF9MaW51eF92ZXJzaW9uKHZvaWQpOyAgICAvKiBHZXQgTGlu dXggdmVyc2lvbiAqLwotIGV4dGVybiB2b2lkIGRpc3BsYXlfdmVyc2lvbih2b2lkKTsJLyogZGlz cGxheSBzdWl0ZSB2ZXJzaW9uICovCi0gZXh0ZXJuIGNvbnN0IGNoYXIgcHJvY3BzX3ZlcnNpb25b XTsJCS8qIGdsb2JhbCBidWYgZm9yIHN1aXRlIHZlcnNpb24gKi8KLSAKLS0tIAotMS43LjAKLQpk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2MS1wbWFwc19zbWFwcy5wYXRjaCBi L3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjEtcG1hcHNfc21hcHMucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGZkZTIzNTguLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMt My4yLjgvMDA2MS1wbWFwc19zbWFwcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MCArMCww IEBACi1Gcm9tIDM3NTAyMzUwZjQ3Mjc3YWQ2NDdlZDc3YWQ3NWUzNDViNzZlMzEzYzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFu L3Bvb2wvbWFpbi9wL3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRl Ymlhbi5vcmc+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0 OiBbUEFUQ0ggNjEvNzBdIHBtYXBzX3NtYXBzCi0KLS0tLQotIHBtYXAuYyB8ICAgODYgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t Ci0gMSBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3BtYXAuYyBiL3BtYXAuYwotaW5kZXggNmI4NjVmYy4uM2RjYjgxZSAxMDA2 NDQKLS0tLSBhL3BtYXAuYwotKysrIGIvcG1hcC5jCi1AQCAtMTI2LDI0ICsxMjYsMzcgQEAgc3Rh dGljIGludCBvbmVfcHJvYyhwcm9jX3QgKnApewotICAgY2hhciBidWZbMzJdOwotICAgY2hhciBt YXBidWZbOTYwMF07Ci0gICBjaGFyIGNtZGJ1Zls1MTJdOwotKyAgRklMRSAqZnA7Ci0gICB1bnNp Z25lZCBsb25nIHRvdGFsX3NoYXJlZCA9IDB1bDsKLSAgIHVuc2lnbmVkIGxvbmcgdG90YWxfcHJp dmF0ZV9yZWFkb25seSA9IDB1bDsKLSAgIHVuc2lnbmVkIGxvbmcgdG90YWxfcHJpdmF0ZV93cml0 ZWFibGUgPSAwdWw7Ci0gCi0rICBjaGFyICpjcDI9TlVMTDsKLSsgIHVuc2lnbmVkIGxvbmcgbG9u ZyByc3MgPSAwdWxsOwotKyAgdW5zaWduZWQgbG9uZyBsb25nIHByaXZhdGVfZGlydHkgPSAwdWxs OwotKyAgdW5zaWduZWQgbG9uZyBsb25nIHNoYXJlZF9kaXJ0eSA9IDB1bGw7Ci0rICB1bnNpZ25l ZCBsb25nIGxvbmcgdG90YWxfcnNzID0gMHVsbDsKLSsgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh bF9wcml2YXRlX2RpcnR5ID0gMHVsbDsKLSsgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9zaGFy ZWRfZGlydHkgPSAwdWxsOwotKwotICAgLy8gT3ZlcmtpbGwsIGJ1dCB3aG8ga25vd3Mgd2hhdCBp cyBwcm9wZXI/IFRoZSAidyIgcHJvZwotICAgLy8gdXNlcyB0aGUgdHR5IHdpZHRoIHRvIGRldGVy bWluZSB0aGlzLgotICAgaW50IG1heGNtZCA9IDB4ZmZmZmY7Ci0gCi0gICBzcHJpbnRmKGJ1Ziwi L3Byb2MvJXUvbWFwcyIscC0+dGdpZCk7Ci0tICBpZighZnJlb3BlbihidWYsICJyIiwgc3RkaW4p KSByZXR1cm4gMTsKLSsgIGlmICggKGZwID0gZm9wZW4oYnVmLCAiciIpKSA9PSBOVUxMKSByZXR1 cm4gMTsKLSsgIGlmICh4X29wdGlvbikgewotKyAgICBzcHJpbnRmKGJ1ZiwiL3Byb2MvJXUvc21h cHMiLHAtPnRnaWQpOwotKyAgICBpZiAoIChmcCA9IGZyZW9wZW4oYnVmLCAiciIsIGZwKSkgPT0g TlVMTCkgcmV0dXJuIDE7Ci0rICB9Ci0gCi0gICBlc2NhcGVfY29tbWFuZChjbWRidWYsIHAsIHNp emVvZiBjbWRidWYsICZtYXhjbWQsIEVTQ19BUkdTfEVTQ19CUkFDS0VUUyk7Ci0gICBwcmludGYo IiV1OiAgICVzXG4iLCBwLT50Z2lkLCBjbWRidWYpOwotIAotICAgaWYoIXFfb3B0aW9uICYmICh4 X29wdGlvbnxkX29wdGlvbikpewotICAgICBpZih4X29wdGlvbil7Ci0tICAgICAgaWYoc2l6ZW9m KEtMT05HKT09NCkgcHJpbnRmKCJBZGRyZXNzICAgS2J5dGVzICAgICBSU1MgICAgQW5vbiAgTG9j a2VkIE1vZGUgICBNYXBwaW5nXG4iKTsKLS0gICAgICBlbHNlICAgICAgICAgcHJpbnRmKCJBZGRy ZXNzICAgICAgICAgICBLYnl0ZXMgICAgIFJTUyAgICBBbm9uICBMb2NrZWQgTW9kZSAgIE1hcHBp bmdcbiIpOwotKyAgICAgIGlmKHNpemVvZihLTE9ORyk9PTQpIHByaW50ZigiQWRkcmVzcyAgIEti eXRlcyAgICAgUlNTICAgRGlydHkgTW9kZSAgIE1hcHBpbmdcbiIpOwotKyAgICAgIGVsc2UgICAg ICAgICBwcmludGYoIkFkZHJlc3MgICAgICAgICAgIEtieXRlcyAgICAgUlNTICAgRGlydHkgTW9k ZSAgIE1hcHBpbmdcbiIpOwotICAgICB9Ci0gICAgIGlmKGRfb3B0aW9uKXsKLSAgICAgICBpZihz aXplb2YoS0xPTkcpPT00KSBwcmludGYoIkFkZHJlc3MgICBLYnl0ZXMgTW9kZSAgT2Zmc2V0ICAg ICAgICAgICBEZXZpY2UgICAgTWFwcGluZ1xuIik7Ci1AQCAtMTUxLDEyICsxNjQsNTQgQEAgc3Rh dGljIGludCBvbmVfcHJvYyhwcm9jX3QgKnApewotICAgICB9Ci0gICB9Ci0gCi0tICB3aGlsZShm Z2V0cyhtYXBidWYsc2l6ZW9mIG1hcGJ1ZixzdGRpbikpewotKyAgd2hpbGUoZmdldHMobWFwYnVm LHNpemVvZiBtYXBidWYsZnApKXsKLSAgICAgY2hhciBmbGFnc1szMl07Ci0gICAgIGNoYXIgKnRt cDsgLy8gdG8gY2xlYW4gdXAgdW5wcmludGFibGVzCi0tICAgIHVuc2lnbmVkIEtMT05HIHN0YXJ0 LCBlbmQsIGRpZmY7Ci0rICAgIHVuc2lnbmVkIEtMT05HIHN0YXJ0LCBlbmQsIGRpZmY9MDsKLSAg ICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVfb2Zmc2V0LCBpbm9kZTsKLSAgICAgdW5zaWduZWQg ZGV2X21ham9yLCBkZXZfbWlub3I7Ci0rICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzbWFwX3ZhbHVl OwotKyAgICBjaGFyIHNtYXBfa2V5WzIwXTsKLSsKLSsgICAgLyogaGV4IHZhbHVlcyBhcmUgbG93 ZXIgY2FzZSBvciBudW1lcmljLCBrZXlzIGFyZSB1cHBlciAqLwotKyAgICBpZiAobWFwYnVmWzBd ID49ICdBJyAmJiBtYXBidWZbMF0gPD0gJ1onKSB7Ci0rICAgICAgLyogSXRzIGEga2V5ICovCi0r ICAgICAgaWYgKHNzY2FuZihtYXBidWYsIiUyMFteOl06ICVsbHUiLCBzbWFwX2tleSwgJnNtYXBf dmFsdWUpID09IDIpIHsKLSsgICAgICAgIGlmIChzdHJuY21wKCJSc3MiLCBzbWFwX2tleSwgMykg PT0gMCkgewotKyAgICAgICAgICByc3MgPSBzbWFwX3ZhbHVlOwotKyAgICAgICAgICB0b3RhbF9y c3MgKz0gc21hcF92YWx1ZTsKLSsgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAg ICAgICBpZiAoc3RybmNtcCgiU2hhcmVkX0RpcnR5Iiwgc21hcF9rZXksIDEyKSA9PSAwKSB7Ci0r ICAgICAgICAgIHNoYXJlZF9kaXJ0eSA9IHNtYXBfdmFsdWU7Ci0rICAgICAgICAgIHRvdGFsX3No YXJlZF9kaXJ0eSArPSBzbWFwX3ZhbHVlOwotKyAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IH0KLSsgICAgICAgIGlmIChzdHJuY21wKCJQcml2YXRlX0RpcnR5Iiwgc21hcF9rZXksIDEzKSA9 PSAwKSB7Ci0rICAgICAgICAgIHByaXZhdGVfZGlydHkgPSBzbWFwX3ZhbHVlOwotKyAgICAgICAg ICB0b3RhbF9wcml2YXRlX2RpcnR5ICs9IHNtYXBfdmFsdWU7Ci0rICAgICAgICAgIGNvbnRpbnVl OwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKHN0cm5jbXAoIlN3YXAiLCBzbWFwX2tleSwgNCkg PT0gMCkgeyAvKmRvZXNudCBtYXR0ZXIgYXMgbG9uZyBhcyBsYXN0Ki8KLSsgICAgICAgICAgcHJp bnRmKAotKyAgICAgICAgICAgIChzaXplb2YoS0xPTkcpPT04KQotKyAgICAgICAgICAgICAgPyAi JTAxNiJLTEYieCAlN2x1ICU3bGx1ICU3bGx1ICVzICAlc1xuIgotKyAgICAgICAgICAgICAgOiAg ICAgICIlMDhseCAlN2x1ICU3bGx1ICU3bGx1ICVzICAlc1xuIiwKLSsgICAgICAgICAgICBzdGFy dCwKLSsgICAgICAgICAgICAodW5zaWduZWQgbG9uZykoZGlmZj4+MTApLAotKyAgICAgICAgICAg IHJzcywKLSsgICAgICAgICAgICAocHJpdmF0ZV9kaXJ0eSArIHNoYXJlZF9kaXJ0eSksCi0rICAg ICAgICAgICAgZmxhZ3MsCi0rICAgICAgICAgICAgY3AyCi0rICAgICAgICAgICk7Ci0rICAgICAg ICAgIC8qIHJlc2V0IHNvbWUgY291bnRlcnMgKi8KLSsgICAgICAgICAgcnNzID0gc2hhcmVkX2Rp cnR5ID0gcHJpdmF0ZV9kaXJ0eSA9IDB1bGw7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAg ICAgfQotKyAgICAgICAgLyogT3RoZXIga2V5cyAqLwotKyAgICAgICAgY29udGludWU7Ci0rICAg ICAgfQotKyAgICB9Ci0gICAgIHNzY2FuZihtYXBidWYsIiUiS0xGIngtJSJLTEYieCAlMzFzICVM eCAleDoleCAlTHUiLCAmc3RhcnQsICZlbmQsIGZsYWdzLCAmZmlsZV9vZmZzZXQsICZkZXZfbWFq b3IsICZkZXZfbWlub3IsICZpbm9kZSk7Ci0gCi0gICAgIGlmKHN0YXJ0ID4gcmFuZ2VfaGlnaCkK LUBAIC0xODYsMTYgKzI0MSw5IEBAIHN0YXRpYyBpbnQgb25lX3Byb2MocHJvY190ICpwKXsKLSAg ICAgZmxhZ3NbNV0gPSAnXDAnOwotIAotICAgICBpZih4X29wdGlvbil7Ci0tICAgICAgY29uc3Qg Y2hhciAqY3AgPSBtYXBwaW5nX25hbWUocCwgc3RhcnQsIGRpZmYsIG1hcGJ1ZiwgMCwgZGV2X21h am9yLCBkZXZfbWlub3IsIGlub2RlKTsKLS0gICAgICBwcmludGYoCi0tICAgICAgICAoc2l6ZW9m KEtMT05HKT09OCkKLS0gICAgICAgICAgPyAiJTAxNiJLTEYieCAlN2x1ICAgICAgIC0gICAgICAg LSAgICAgICAtICVzICAlc1xuIgotLSAgICAgICAgICA6ICAgICAgIiUwOGx4ICU3bHUgICAgICAg LSAgICAgICAtICAgICAgIC0gJXMgICVzXG4iLAotLSAgICAgICAgc3RhcnQsCi0tICAgICAgICAo dW5zaWduZWQgbG9uZykoZGlmZj4+MTApLAotLSAgICAgICAgZmxhZ3MsCi0tICAgICAgICBjcAot LSAgICAgICk7Ci0rICAgICAgICAgIGNwMiA9IG1hcHBpbmdfbmFtZShwLCBzdGFydCwgZGlmZiwg bWFwYnVmLCAwLCBkZXZfbWFqb3IsIGRldl9taW5vciwgaW5vZGUpOwotKyAgICAgIC8qIHByaW50 ZWQgd2l0aCB0aGUga2V5cyAqLwotKyAgICAgIGNvbnRpbnVlOwotICAgICB9Ci0gICAgIGlmKGRf b3B0aW9uKXsKLSAgICAgICBjb25zdCBjaGFyICpjcCA9IG1hcHBpbmdfbmFtZShwLCBzdGFydCwg ZGlmZiwgbWFwYnVmLCAwLCBkZXZfbWFqb3IsIGRldl9taW5vciwgaW5vZGUpOwotQEAgLTIzMiwx MCArMjgwLDEyIEBAIHN0YXRpYyBpbnQgb25lX3Byb2MocHJvY190ICpwKXsKLSAgIGlmKCFxX29w dGlvbil7Ci0gICAgIGlmKHhfb3B0aW9uKXsKLSAgICAgICBpZihzaXplb2YoS0xPTkcpPT04KXsK LS0gICAgICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tICAtLS0tLS0gIC0tLS0t LSAgLS0tLS0tXG4iKTsKLSsgICAgICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLSAgLS0tLS0t ICAtLS0tLS0gIC0tLS0tLVxuIik7Ci0gICAgICAgICBwcmludGYoCi0tICAgICAgICAgICJ0b3Rh bCBrQiAlMTVsZCAgICAgICAtICAgICAgIC0gICAgICAgLVxuIiwKLS0gICAgICAgICAgKHRvdGFs X3NoYXJlZCArIHRvdGFsX3ByaXZhdGVfd3JpdGVhYmxlICsgdG90YWxfcHJpdmF0ZV9yZWFkb25s eSkgPj4gMTAKLSsgICAgICAgICAgInRvdGFsIGtCICUxNWxkICU3bGx1ICU3bGx1XG4iLAotKyAg ICAgICAgICAodG90YWxfc2hhcmVkICsgdG90YWxfcHJpdmF0ZV93cml0ZWFibGUgKyB0b3RhbF9w cml2YXRlX3JlYWRvbmx5KSA+PiAxMCwKLSsgICAgICAgICAgdG90YWxfcnNzLCAodG90YWxfc2hh cmVkX2RpcnR5K3RvdGFsX3ByaXZhdGVfZGlydHkpCi0rCi0gICAgICAgICApOwotICAgICAgIH1l bHNlewotICAgICAgICAgcHJpbnRmKCItLS0tLS0tLSAtLS0tLS0tIC0tLS0tLS0gLS0tLS0tLSAt LS0tLS0tXG4iKTsKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA2Mi10b3BfbnVtZXJpY19hcmdzLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2 Mi10b3BfbnVtZXJpY19hcmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk MTQ4Nzc0Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjItdG9wX251bWVy aWNfYXJncy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi1Gcm9tIDM3NDI3 NjVmMGJmMzAxNDJjOGY3ZDE1MTBhODZiMGJhYmU4MGU2ZTYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9wL3By b2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1EYXRl OiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNjIvNzBd IHRvcF9udW1lcmljX2FyZ3MKLQotLS0tCi0gdG9wLmMgfCAgIDQ4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMzYgaW5z ZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90b3AuYyBiL3RvcC5j Ci1pbmRleCBlYTMzOTg5Li5lMTk0MjQ0IDEwMDY0NAotLS0tIGEvdG9wLmMKLSsrKyBiL3RvcC5j Ci1AQCAtMzIsNiArMzIsNyBAQAotICNpbmNsdWRlIDxzdGRhcmcuaD4KLSAjaW5jbHVkZSA8c3Rk aW8uaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPG1hdGguaD4KLSAjaW5jbHVk ZSA8c3RyaW5nLmg+Ci0gCi0gLy8gRm91bCBQT1MgZGVmaW5lcyBhbGwgc29ydHMgb2Ygc3R1ZmYu Li4KLUBAIC0xODI1LDggKzE4MjYsMTIgQEAgc3RhdGljIHZvaWQgcGFyc2VfYXJncyAoY2hhciAq KmFyZ3MpCi0gCi0gICAgd2hpbGUgKCphcmdzKSB7Ci0gICAgICAgY29uc3QgY2hhciAqY3AgPSAq KGFyZ3MrKyk7Ci0rICAgICAgaWYgKCpjcCE9Jy0nKSB7Ci0rICAgICAgIHN0ZF9lcnIoZm10bWso InVua25vd24gYXJndW1lbnQgJyVjJ1xudXNhZ2U6XHQlcyVzIiAsICpjcCwgTXluYW1lLCB1c2Fn ZSkpOwotKyAgICAgIH0KLSAKLS0gICAgICB3aGlsZSAoKmNwKSB7Ci0rICAgICAgZm9yKCsrY3A7 ICpjcDsgY3ArKykgewotKyAgICAgICAgIGNoYXIgKmVuZDsKLSAgICAgICAgICBzd2l0Y2ggKCpj cCkgewotICAgICAgICAgICAgIGNhc2UgJ1wwJzoKLSAgICAgICAgICAgICBjYXNlICctJzoKLUBA IC0xODQyLDggKzE4NDcsMTUgQEAgc3RhdGljIHZvaWQgcGFyc2VfYXJncyAoY2hhciAqKmFyZ3Mp Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoKmFyZ3MpIGNwID0gKmFyZ3MrKzsKLSAgICAgICAg ICAgICAgICBlbHNlIHN0ZF9lcnIoIi1kIHJlcXVpcmVzIGFyZ3VtZW50Iik7Ci0gICAgICAgICAg ICAgICAgICAgLyogYSBuZWdhdGl2ZSBkZWxheSB3aWxsIGJlIGRlYWx0IHdpdGggc2hvcnRseS4u LiAqLwotLSAgICAgICAgICAgICAgIGlmIChzc2NhbmYoY3AsICIlZiIsICZ0bXBfZGVsYXkpICE9 IDEpCi0tICAgICAgICAgICAgICAgICAgc3RkX2VycihmbXRtaygiYmFkIGRlbGF5ICclcyciLCBj cCkpOwotKyAgICAgICAgICAgICAgIGVycm5vPTA7Ci0rICAgICAgICAgICAgICAgaWYgKCggKGZh YnModG1wX2RlbGF5PXN0cnRvZChjcCwgJmVuZCkpPT1IVUdFX1ZBTCAmJgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlcnJubz09RVJBTkdFKSB8fAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICh0bXBfZGVsYXk9PTAgJiYgZXJybm8hPTApIHx8Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW5kPT1jcCB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCE9 Y3Arc3RybGVuKGNwKSkpIHsKLSsgICAgICAgICAgICAgICAgICAgc3RkX2VycihmbXRtaygiYmFk IGRlbGF5ICclcyciLCBjcCkpOwotKyAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICBj cD0tMStlbmQ7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgY2FzZSAnSCc6 Ci0gICAgICAgICAgICAgICAgVE9HdyhDdXJ3aW4sIFNob3dfVEhSRUFEUyk7Ci1AQCAtMTg1OSw4 ICsxODcxLDE1IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2FyZ3MgKGNoYXIgKiphcmdzKQotICAgICAg ICAgICAgICAgIGlmIChjcFsxXSkgY3ArKzsKLSAgICAgICAgICAgICAgICBlbHNlIGlmICgqYXJn cykgY3AgPSAqYXJncysrOwotICAgICAgICAgICAgICAgIGVsc2Ugc3RkX2VycigiLW4gcmVxdWly ZXMgYXJndW1lbnQiKTsKLS0gICAgICAgICAgICAgICBpZiAoc3NjYW5mKGNwLCAiJWQiLCAmTG9v cHMpICE9IDEgfHwgTG9vcHMgPCAxKQotLSAgICAgICAgICAgICAgICAgIHN0ZF9lcnIoZm10bWso ImJhZCBpdGVyYXRpb25zIGFyZyAnJXMnIiwgY3ApKTsKLSsgICAgICAgICAgICAgICBlcnJubz0w OwotKyAgICAgICAgICAgICAgIGlmICgoKChMb29wcz1zdHJ0b2woY3AsICZlbmQsIDApKT09TE9O R19NSU4gfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvb3BzPT1MT05HX01BWCkgJiYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlcnJubz09RVJBTkdFKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bmQ9PWNwIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCE9Y3Arc3RybGVu KGNwKSB8fCBMb29wczwxKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICBzdGRfZXJyKGZtdG1r KCJiYWQgaXRlcmF0aW9ucyBhcmcgJyVzJyIsIGNwKSk7Ci0rICAgICAgICAgICAgICAgfQotKyAg ICAgICAgICAgICAgIGNwPS0xK2VuZDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ICAgICBjYXNlICdwJzoKLSAgICAgICAgICAgICAgICBkbyB7Ci1AQCAtMTg2OCwxMSArMTg4Nywx OSBAQCBzdGF0aWMgdm9pZCBwYXJzZV9hcmdzIChjaGFyICoqYXJncykKLSAgICAgICAgICAgICAg ICAgICBzZWxlY3Rpb25fdHlwZSA9ICdwJzsKLSAgICAgICAgICAgICAgICAgICBpZiAoY3BbMV0p IGNwKys7Ci0gICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKmFyZ3MpIGNwID0gKmFyZ3MrKzsK LS0gICAgICAgICAgICAgICAgICBlbHNlIHN0ZF9lcnIoIi1wIGFyZ3VtZW50IG1pc3NpbmciKTsK LSsgICAgICAgICAgICAgICAgICBlbHNlIHN0ZF9lcnIoIi1wIHJlcXVpcmVzIGFyZ3VtZW50Iik7 Ci0gICAgICAgICAgICAgICAgICAgaWYgKE1vbnBpZHNpZHggPj0gTU9OUElETUFYKQotICAgICAg ICAgICAgICAgICAgICAgIHN0ZF9lcnIoZm10bWsoInBpZCBsaW1pdCAoJWQpIGV4Y2VlZGVkIiwg TU9OUElETUFYKSk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKHNzY2FuZihjcCwgIiVkIiwgJk1v bnBpZHNbTW9ucGlkc2lkeF0pICE9IDEgfHwgTW9ucGlkc1tNb25waWRzaWR4XSA8IDApCi0tICAg ICAgICAgICAgICAgICAgICAgc3RkX2VycihmbXRtaygiYmFkIHBpZCAnJXMnIiwgY3ApKTsKLSsg ICAgICAgICAgICAgICAgICBlcnJubz0wOwotKyAgICAgICAgICAgICAgICAgIGlmICgoKChNb25w aWRzW01vbnBpZHNpZHhdPXN0cnRvbChjcCwgJmVuZCwgMCkpPT1MT05HX01JTiB8fAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgTW9ucGlkc1tNb25waWRzaWR4XT09TE9OR19NQVgpICYmCi0r ICAgICAgICAgICAgICAgICAgICAgICAgZXJybm89PUVSQU5HRSkgfHwKLSsgICAgICAgICAgICAg ICAgICAgICAgZW5kPT1jcCB8fAotKyAgICAgICAgICAgICAgICAgICAgICBNb25waWRzW01vbnBp ZHNpZHhdPDEpIHsKLSsgICAgICAgICAgICAgICAgICAgIHN0ZF9lcnIoZm10bWsoImJhZCBwaWQg JyVzJyIsIGNwKSk7Ci0rICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgIGNw PS0xK2VuZDsKLSsKLSAgICAgICAgICAgICAgICAgICBpZiAoIU1vbnBpZHNbTW9ucGlkc2lkeF0p Ci0gICAgICAgICAgICAgICAgICAgICAgTW9ucGlkc1tNb25waWRzaWR4XSA9IGdldHBpZCgpOwot ICAgICAgICAgICAgICAgICAgIE1vbnBpZHNpZHgrKzsKLUBAIC0xOTE4LDEwICsxOTQ1LDcgQEAg c3RhdGljIHZvaWQgcGFyc2VfYXJncyAoY2hhciAqKmFyZ3MpCi0gICAgICAgICAgICAgICAgICAg LCAqY3AsIE15bmFtZSwgdXNhZ2UpKTsKLSAKLSAgICAgICAgICB9IC8qIGVuZDogc3dpdGNoICgq Y3ApICovCi0tCi0tICAgICAgICAgICAgLyogYWR2YW5jZSBjcCBhbmQganVtcCBvdmVyIGFueSBu dW1lcmljYWwgYXJncyB1c2VkIGFib3ZlICovCi0tICAgICAgICAgaWYgKCpjcCkgY3AgKz0gc3Ry c3BuKCZjcFsxXSwgIi0gLC4xMjM0NTY3ODkwIikgKyAxOwotLSAgICAgIH0gLyogZW5kOiB3aGls ZSAoKmNwKSAqLwotKyAgICAgIH0gLyogZW5kOiBmb3IgKDsgKmNwKSAqLwotICAgIH0gLyogZW5k OiB3aGlsZSAoKmFyZ3MpICovCi0gCi0gICAgICAgLyogZml4dXAgZGVsYXkgdGltZSwgbWF5YmUu Li4gKi8KLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2 My10b3BfMV9zd2FwLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2My10b3BfMV9zd2Fw LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDg4Mzg1Li4wMDAwMDAwCi0t LSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjMtdG9wXzFfc3dhcC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gNmE0NTA0ZmZlMjA3YzcyZjFmNDY0NmY0NmRiNGQ0 MDc2ZTE1NGM4OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUu ZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlh bi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6 NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2My83MF0gdG9wXzFfc3dhcAotCi0tLS0KLSB0b3Au MSB8ICAgIDggKysrKy0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RvcC4xIGIvdG9wLjEKLWluZGV4IDBjZTFjNjIu LjViNDQ4MjggMTAwNjQ0Ci0tLS0gYS90b3AuMQotKysrIGIvdG9wLjEKLUBAIC00MDEsMTMgKzQw MSwxMyBAQCBBIHRhc2sncyBjdXJyZW50bHkgdXNlZCBzaGFyZSBvZiBhdmFpbGFibGUgXCooTVAu Ci0gbzpcZkIgVklSVFxmUiBcKihFTSBWaXJ0dWFsIEltYWdlIChrYikKLSBUaGUgdG90YWwgYW1v dW50IG9mIFwqKE1WIHVzZWQgYnkgdGhlIHRhc2suCi0gSXQgaW5jbHVkZXMgYWxsIGNvZGUsIGRh dGEgYW5kIHNoYXJlZCBsaWJyYXJpZXMgcGx1cyBwYWdlcyB0aGF0IGhhdmUgYmVlbgotLXN3YXBw ZWQgb3V0LgotLQotLVZJUlQgPSBTV0FQICsgUkVTLgotK3N3YXBwZWQgb3V0IGFuZCBwYWdlcyB0 aGF0IGhhdmUgYmVlbiBtYXBwZWQgYnV0IG5vdCB1c2VkLgotIAotIC5UUCAzCi0gcDpcZkIgU1dB UFxmUiBcKihFTSBTd2FwcGVkIHNpemUgKGtiKQotLVRoZSBzd2FwcGVkIG91dCBwb3J0aW9uIG9m IGEgdGFzaydzIHRvdGFsIFwqKE1WIGltYWdlLgotK01lbW9yeSB0aGF0IGlzIG5vdCByZXNpZGVu dCBidXQgaXMgcHJlc2VudCBpbiBhIHRhc2suICBUaGlzIGlzIG1lbW9yeSB0aGF0Ci0raGFzIGJl ZW4gc3dhcHBlZCBvdXQgYnV0IGNvdWxkIGluY2x1ZGUgYWRkaXRpb25hbCBub24tcmVzaWRlbnQg bWVtb3J5LgotK1RoaXMgY29sdW1uIGlzIGNhbGN1bGF0ZWQgYnkgc3VidHJhY3RpbmcgXCooTVAg ZnJvbSBcKihNVi4KLSAKLSAuVFAgMwotIHE6XGZCIFJFU1xmUiBcKihFTSBSZXNpZGVudCBzaXpl IChrYikKLS0tIAotMS43LjAKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2 NC13X3VzZXJwcm9jLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2NC13X3VzZXJwcm9j LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMTY0NjJmLi4wMDAwMDAwCi0t LSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjQtd191c2VycHJvYy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gMzM1MGRiYTM1ZWRhZGIzMzJlN2U4NmJhYWE1MTRj MTljODA2NzIyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUu ZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlh bi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6 NDYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2NC83MF0gd191c2VycHJvYwotCi0tLS0KLSB3LmMg fCAgICAyICstCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS93LmMgYi93LmMKLWluZGV4IDQ4YTAyYmUuLjEwN2I5ZmMgMTAw NjQ0Ci0tLS0gYS93LmMKLSsrKyBiL3cuYwotQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgY29u c3QgcHJvY190ICpnZXRwcm9jKGNvbnN0IHV0bXBfdCAqcmVzdHJpY3QgY29uc3QgdSwgY29uc3Qg Y2hhciAqcmVzdHJpYwotIAkgICAgc2Vjb25kYmVzdCA9IHRtcDsKLSAJfQotIAlpZighaWdub3Jl dXNlciAmJiB1aWQgIT0gdG1wLT5ldWlkICYmIHVpZCAhPSB0bXAtPnJ1aWQpIGNvbnRpbnVlOwot LQlpZih0bXAtPnRnaWQgIT0gdG1wLT50cGdpZCkgY29udGludWU7Ci0rCWlmKHRtcC0+cGdycCAh PSB0bXAtPnRwZ2lkKSBjb250aW51ZTsKLSAJaWYoYmVzdCAmJiB0bXAtPnN0YXJ0X3RpbWUgPD0g YmVzdC0+c3RhcnRfdGltZSkgY29udGludWU7Ci0gICAgIAliZXN0ID0gdG1wOwotICAgICB9Ci0t LSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjUtc3lzaW5m b19rZnJlZWJzZF9oZXJ0ei5wYXRjaCBiL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjUtc3lzaW5m b19rZnJlZWJzZF9oZXJ0ei5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I3 OTI4OC4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY1LXN5c2luZm9fa2Zy ZWVic2RfaGVydHoucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9tIGRm MTFlZDVjYmNhYzFiY2YxODc5OWJmNWM0ZGY3YjBjNmEyNmI2MzkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBodHRwOi8vZnRwLmRlLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9w L3Byb2Nwcy9wcm9jcHNfMy4yLjgtOC5kZWJpYW4udGFyLmd6IDxpbmZvQGRlYmlhbi5vcmc+Ci1E YXRlOiBGcmksIDE5IE1hciAyMDEwIDIxOjU4OjQ2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNjUv NzBdIHN5c2luZm9fa2ZyZWVic2RfaGVydHoKLQotLS0tCi0gcHJvYy9zeXNpbmZvLmMgfCAgICA4 ICsrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9wcm9jL3N5c2luZm8uYyBiL3Byb2Mvc3lzaW5mby5jCi1pbmRl eCBjODA0ZjQ5Li42NWQ5NGQ3IDEwMDY0NAotLS0tIGEvcHJvYy9zeXNpbmZvLmMKLSsrKyBiL3By b2Mvc3lzaW5mby5jCi1AQCAtMjMwLDYgKzIzMCwxNCBAQCBzdGF0aWMgdm9pZCBpbml0X2xpYnBy b2Modm9pZCl7Ci0gICAgIGZwdXRzKCIyLjQrIGtlcm5lbCB3L28gRUxGIG5vdGVzPyAtLSByZXBv cnQgdGhpc1xuIiwgc3RkZXJyKTsKLSAgIH0KLSAjZW5kaWYKLSsjaWYgZGVmaW5lZChfX0ZyZWVC U0Rfa2VybmVsX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX18pCi0rICAvKiBPbiBGcmVlQlNEIHRo ZSBIZXJ0eiBoYWNrIGlzIHVucmVsYWlibGUsIHRoZXJlIGlzIG5vIEVMRiBub3RlIGFuZAotKyAg ICogSGVydHogaXNuJ3QgZGVmaW5lZCBpbiBhc20vcGFyYW1zLmggCi0rICAgKiBTZWUgRGViaWFu IEJ1ZyAjNDYwMzMxCi0rICAgKi8KLSsgICAgSGVydHogPSAxMDA7Ci0rICAgIHJldHVybjsKLSsj ZW5kaWYKLSAgIG9sZF9IZXJ0el9oYWNrKCk7Ci0gfQotIAotLS0gCi0xLjcuMAotCmRpZmYgLS1n aXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY2LXBzXzFfZmx0X291dHB1dC5wYXRjaCBiL3Bh dGNoZXMvcHJvY3BzLTMuMi44LzAwNjYtcHNfMV9mbHRfb3V0cHV0LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBhOGU5ZTYwLi4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvcHJvY3Bz LTMuMi44LzAwNjYtcHNfMV9mbHRfb3V0cHV0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDAg KzAsMCBAQAotRnJvbSBiYjcxNTE5Y2E4ODkwNzZhZmE0NTBmY2ZkMTUyMjljNDliYTQ0NDQyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2Rl Ymlhbi9wb29sL21haW4vcC9wcm9jcHMvcHJvY3BzXzMuMi44LTguZGViaWFuLnRhci5neiA8aW5m b0BkZWJpYW4ub3JnPgotRGF0ZTogRnJpLCAxOSBNYXIgMjAxMCAyMTo1ODo0NyArMDEwMAotU3Vi amVjdDogW1BBVENIIDY2LzcwXSBwc18xX2ZsdF9vdXRwdXQKLQotLS0tCi0gcHMvcHMuMSB8ICAg MTAgKysrKysrKysrLQotIDEgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHMvcHMuMSBiL3BzL3BzLjEKLWluZGV4IDZiYTMxZGMu LmYwN2RjODIgMTAwNjQ0Ci0tLS0gYS9wcy9wcy4xCi0rKysgYi9wcy9wcy4xCi1AQCAtNCw3ICs0 LDcgQEAKLSAuXCIgUXVpY2sgaGFjayBjb252ZXJzaW9uIGJ5IEFsYmVydCBDYWhhbGFuLCAxOTk4 LgotIC5cIiBMaWNlbnNlZCB1bmRlciB2ZXJzaW9uIDIgb2YgdGhlIEdudSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLgotIC5cIgotLS5USCBQUyAxICJKdWx5IDI4LCAyMDA0IiAiTGludXgiICJMaW51 eCBVc2VyJ3MgTWFudWFsIgotKy5USCBQUyAxICJGZWJydWFyeSAyNSwgMjAxMCIgIkxpbnV4IiAi TGludXggVXNlcidzIE1hbnVhbCIKLSAuXCIKLSAuXCIgVG8gcmVuZGVyIHRoaXMgcGFnZToKLSAu XCIgICAgZ3JvZmYgLXQgLWIgLW1hbiAtWCAtUC1yZXNvbHV0aW9uIC1QMTAwIC1UcHMgcHMuMSAm Ci1AQCAtMTA4NCw2ICsxMDg0LDE0IEBAIGx3cCAobGlnaHQgd2VpZ2h0IHByb2Nlc3MsIG9yIHRo cmVhZCkgSUQgb2YgdGhlIGx3cCBiZWluZyByZXBvcnRlZC4KLSAoYWxpYXNcIFxmQnNwaWRcZlIs XCBcZkJ0aWRcZlIpLgotIFR9Ci0gCi0rbWFqX2ZsdAlNQUpGTFQJVHsKLStUaGUgbnVtYmVyIG9m IG1ham9yIHBhZ2UgZmF1bHRzIHRoYXQgaGF2ZSBvY2N1cmVkIHdpdGggdGhpcyBwcm9jZXNzLgot K1R9Ci0rCi0rbWluX2ZsdAlNSU5GTFQJVHsKLStUaGUgbnVtYmVyIG9mIG1pbm9yIHBhZ2UgZmF1 bHRzIHRoYXQgaGF2ZSBvY2N1cmVkIHdpdGggdGhpcyBwcm9jZXNzLgotK1R9Ci0rCi0gbmkJTkkJ VHsKLSBuaWNlIHZhbHVlLiBUaGlzIHJhbmdlcyBmcm9tIDE5IChuaWNlc3QpIHRvIFwtMjAgKG5v dFwgbmljZSB0b1wgb3RoZXJzKSwKLSBzZWVcIFxmSW5pY2VcZlIoMSkuICAoYWxpYXNcIFxmQm5p Y2VcZlIpLgotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8w MDY3LXdhdGNoX2Fuc2lfY29sb3VyLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2Ny13 YXRjaF9hbnNpX2NvbG91ci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Qw YjAxZi4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY3LXdhdGNoX2Fuc2lf Y29sb3VyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkzICswLDAgQEAKLUZyb20gY2RhNDBk ZGI3NmZhNjYxOWQ4NmJmNjc1YWUwY2M4MTZmMTZmMjZjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGh0dHA6Ly9mdHAuZGUuZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJv Y3BzL3Byb2Nwc18zLjIuOC04LmRlYmlhbi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6 IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6NDcgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2Ny83MF0g d2F0Y2hfYW5zaV9jb2xvdXIKLQotLS0tCi0gd2F0Y2guMSB8ICAgIDcgKysrKy0KLSB3YXRjaC5j IHwgICA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQotIDIgZmlsZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3dhdGNoLjEgYi93YXRjaC4xCi1pbmRleCBjNWYxN2M0 Li5hZWNiZmViIDEwMDY0NAotLS0tIGEvd2F0Y2guMQotKysrIGIvd2F0Y2guMQotQEAgLTEsNCAr MSw0IEBACi0tLlRIIFdBVENIIDEgIjIwMDkgTWF5IDExIiAiICIgIkxpbnV4IFVzZXIncyBNYW51 YWwiCi0rLlRIIFdBVENIIDEgIjIwMTAgTWFyIDAxIiAiICIgIkxpbnV4IFVzZXIncyBNYW51YWwi Ci0gLlNIIE5BTUUKLSB3YXRjaCBcLSBleGVjdXRlIGEgcHJvZ3JhbSBwZXJpb2RpY2FsbHksIHNo b3dpbmcgb3V0cHV0IGZ1bGxzY3JlZW4KLSAuU0ggU1lOT1BTSVMKLUBAIC04LDYgKzgsNyBAQCB3 YXRjaCBcLSBleGVjdXRlIGEgcHJvZ3JhbSBwZXJpb2RpY2FsbHksIHNob3dpbmcgb3V0cHV0IGZ1 bGxzY3JlZW4KLSAuUkIgWyBcLW4KLSAuSVIgc2Vjb25kcyBdCi0gLlJCIFsgXC1cLWJlZXAgXQot Ky5SQiBbIFwtXC1jb2xvciBdCi0gLlJCIFsgXC1cLWRpZmZlcmVuY2VzWz1cZkljdW11bGF0aXZl XGZQXV0KLSAuUkIgWyBcLVwtZXJyZXhpdCBdCi0gLlJCIFsgXC1cLWV4ZWMgXQotQEAgLTc1LDYg Kzc2LDEwIEBAIG9yCi0gb3B0aW9ucywgd2hpY2ggd2lsbCBjYXVzZQotIC5CIHdhdGNoCi0gdG8g ZXhpdCBpZiB0aGUgcmV0dXJuIHZhbHVlIGZyb20gdGhlIHByb2dyYW0gaXMgbm9uLXplcm8uCi0r LlBQCi0rQnkgZGVmYXVsdCBcZkJ3YXRjaFxmUiB3aWxsIG5vcm1hbGx5IG5vdCBwYXNzIGVzY2Fw ZSBjaGFyYWN0ZXJzLCBob3dldmVyCi0raWYgeW91IHVzZSB0aGUgXGZJXC1cLWNcZlIgb3IgXGZJ XC1cLWNvbG9yXGZSIG9wdGlvbiwgdGhlbgotK1xmQndhdGNoXGZSIHdpbGwgaW50ZXJwcmV0IEFO U0kgY29sb3Igc2VxdWVuY2VzIGZvciB0aGUgZm9yZWdyb3VuZC4KLSAKLSAuU0ggTk9URQotIE5v dGUgdGhhdAotZGlmZiAtLWdpdCBhL3dhdGNoLmMgYi93YXRjaC5jCi1pbmRleCA3YWI1N2FiLi5h ZjcyMjllIDEwMDY0NAotLS0tIGEvd2F0Y2guYwotKysrIGIvd2F0Y2guYwotQEAgLTM3LDYgKzM3 LDcgQEAKLSAjZW5kaWYKLSAKLSBzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0gewot KyAgeyJjb2xvciIsIG5vX2FyZ3VtZW50LCAwLCAnYycgfSwKLSAJeyJkaWZmZXJlbmNlcyIsIG9w dGlvbmFsX2FyZ3VtZW50LCAwLCAnZCd9LAotIAl7ImhlbHAiLCBub19hcmd1bWVudCwgMCwgJ2gn fSwKLSAJeyJpbnRlcnZhbCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnbid9LAotQEAgLTUwLDcg KzUxLDcgQEAgc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ29wdHNbXSA9IHsKLSB9OwotIAotIHN0 YXRpYyBjaGFyIHVzYWdlW10gPQotLSAgICAiVXNhZ2U6ICVzIFstYmRobnB0dnhdIFstLWJlZXBd IFstLWRpZmZlcmVuY2VzWz1jdW11bGF0aXZlXV0gWy0tZXhlY10gWy0taGVscF0gWy0taW50ZXJ2 YWw9PG4+XSBbLS1uby10aXRsZV0gWy0tdmVyc2lvbl0gPGNvbW1hbmQ+XG4iOwotKyAgICAiVXNh Z2U6ICVzIFstYmNkaG5wdHZ4XSBbLS1iZWVwXSBbLS1jb2xvcl0gWy0tZGlmZmVyZW5jZXNbPWN1 bXVsYXRpdmVdXSBbLS1leGVjXSBbLS1oZWxwXSBbLS1pbnRlcnZhbD08bj5dIFstLW5vLXRpdGxl XSBbLS12ZXJzaW9uXSA8Y29tbWFuZD5cbiI7Ci0gCi0gc3RhdGljIGNoYXIgKnByb2duYW1lOwot IAotQEAgLTYyLDYgKzYzLDc0IEBAIHN0YXRpYyBpbnQgc2hvd190aXRsZSA9IDI7ICAvLyBudW1i ZXIgb2YgbGluZXMgdXNlZCwgMiBvciAwCi0gc3RhdGljIGludCBwcmVjaXNlX3RpbWVrZWVwaW5n ID0gMDsKLSAKLSAjZGVmaW5lIG1pbih4LHkpICgoeCkgPiAoeSkgPyAoeSkgOiAoeCkpCi0rI2Rl ZmluZSBNQVhfQU5TSUJVRiAxMAotKwotK3N0YXRpYyB2b2lkIGluaXRfYW5zaV9jb2xvcnModm9p ZCkKLSt7Ci0rICBpbnQgaTsKLSsgIHNob3J0IG5jdXJzZXNfY29sb3JzW10gPSB7Ci0rICAgIENP TE9SX0JMQUNLLCBDT0xPUl9SRUQsIENPTE9SX0dSRUVOLCBDT0xPUl9ZRUxMT1csIENPTE9SX0JM VUUsCi0rICAgIENPTE9SX01BR0VOVEEsIENPTE9SX0NZQU4sIENPTE9SX1dISVRFIH07Ci0rCi0r ICBmb3IgKGk9MDsgaTwgODsgaSsrKQotKyAgICBpbml0X3BhaXIoaSsxLCBuY3Vyc2VzX2NvbG9y c1tpXSwgLTEpOwotK30KLSsKLStzdGF0aWMgdm9pZCBzZXRfYW5zaV9hdHRyaWJ1dGUoY29uc3Qg aW50IGF0dHJpYikKLSt7Ci0rICBzd2l0Y2ggKGF0dHJpYikKLSsgIHsKLSsgICAgY2FzZSAtMToK LSsgICAgICByZXR1cm47Ci0rICAgIGNhc2UgMDoKLSsgICAgICBzdGFuZGVuZCgpOwotKyAgICAg IHJldHVybjsKLSsgICAgY2FzZSAxOgotKyAgICAgIGF0dHJzZXQoQV9CT0xEKTsKLSsgICAgICBy ZXR1cm47Ci0rICB9Ci0rICBpZiAoYXR0cmliID49IDMwICYmIGF0dHJpYiA8PSAzNykgewotKyAg ICBjb2xvcl9zZXQoYXR0cmliLTI5LE5VTEwpOwotKyAgICByZXR1cm47Ci0rICB9Ci0rfQotKwot K3N0YXRpYyB2b2lkIHByb2Nlc3NfYW5zaShGSUxFICpmcCkKLSt7Ci0rICBpbnQgaSxjLCBudW0x LCBudW0yOwotKyAgY2hhciBidWZbTUFYX0FOU0lCVUZdOwotKyAgY2hhciAqbmV4dG51bTsKLSsK LSsKLSsgIGM9IGdldGMoZnApOwotKyAgaWYgKGMgIT0gJ1snKSB7Ci0rICAgIHVuZ2V0YyhjLCBm cCk7Ci0rICAgIHJldHVybjsKLSsgIH0KLSsgIGZvcihpPTA7IGk8TUFYX0FOU0lCVUY7IGkrKykK LSsgIHsKLSsgICAgYyA9IGdldGMoZnApOwotKyAgICBpZiAoYyA9PSAnbScpIC8vQ09MT1VSIFNF UVVFTkNFIEVORFMgaW4gJ20nCi0rICAgIHsKLSsgICAgICBidWZbaV0gPSAnXDAnOwotKyAgICAg IGJyZWFrOwotKyAgICB9Ci0rICAgIGlmIChjIDwgJzAnICYmIGMgPiAnOScgJiYgYyAhPSAnOycp Ci0rICAgIHsKLSsgICAgICB3aGlsZSgtLWkgPj0gMCkKLSsgICAgICAgIHVuZ2V0YyhidWZbaV0s ZnApOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgICBidWZbaV0gPSAoY2hhciljOwotKyAg fQotKyAgbnVtMSA9IHN0cnRvbChidWYsICZuZXh0bnVtLCAxMCk7Ci0rICBpZiAobmV4dG51bSAh PSBidWYgJiYgbmV4dG51bVswXSAhPSAnXDAnKQotKyAgICBudW0yID0gc3RydG9sKG5leHRudW0r MSwgTlVMTCwgMTApOwotKyAgZWxzZQotKyAgICBudW0yID0gLTE7Ci0rICBzZXRfYW5zaV9hdHRy aWJ1dGUobnVtMSk7Ci0rICBzZXRfYW5zaV9hdHRyaWJ1dGUobnVtMik7Ci0rfQotIAotIHN0YXRp YyB2b2lkIGRvX3VzYWdlKHZvaWQpIE5PUkVUVVJOOwotIHN0YXRpYyB2b2lkIGRvX3VzYWdlKHZv aWQpCi1AQCAtMTg3LDYgKzI1Niw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJ ICAgIG9wdGlvbl9kaWZmZXJlbmNlc19jdW11bGF0aXZlID0gMCwKLSAJCQlvcHRpb25fZXhlYyA9 IDAsCi0gCQkJb3B0aW9uX2JlZXAgPSAwLAotKyAgICAgIG9wdGlvbl9jb2xvciA9IDAsCi0gICAg ICAgICBvcHRpb25fZXJyZXhpdCA9IDAsCi0gCSAgICBvcHRpb25faGVscCA9IDAsIG9wdGlvbl92 ZXJzaW9uID0gMDsKLSAJZG91YmxlIGludGVydmFsID0gMjsKLUBAIC0yMDUsMTIgKzI3NSwxNSBA QCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCXNldGxvY2FsZShMQ19BTEwsICIiKTsK LSAJcHJvZ25hbWUgPSBhcmd2WzBdOwotIAotLQl3aGlsZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyhh cmdjLCBhcmd2LCAiK2JlZDo6aG46cHZ0eCIsIGxvbmdvcHRzLCAoaW50ICopIDApKQotKwl3aGls ZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiK2JjZWQ6OmhuOnB2dHgiLCBsb25n b3B0cywgKGludCAqKSAwKSkKLSAJICAgICAgICE9IEVPRikgewotIAkJc3dpdGNoIChvcHRjKSB7 Ci0gCQljYXNlICdiJzoKLSAJCQlvcHRpb25fYmVlcCA9IDE7Ci0gCQkJYnJlYWs7Ci0rICAgIGNh c2UgJ2MnOgotKyAgICAgIG9wdGlvbl9jb2xvciA9IDE7Ci0rICAgICAgYnJlYWs7Ci0gCQljYXNl ICdkJzoKLSAJCQlvcHRpb25fZGlmZmVyZW5jZXMgPSAxOwotIAkJCWlmIChvcHRhcmcpCi1AQCAt MzE5LDYgKzM5MiwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCS8qIFNldCB1 cCB0dHkgZm9yIGN1cnNlcyB1c2UuICAqLwotIAljdXJzZXNfc3RhcnRlZCA9IDE7Ci0gCWluaXRz Y3IoKTsKLSsgIGlmIChvcHRpb25fY29sb3IpIHsKLSsgICAgaWYgKGhhc19jb2xvcnMoKSkgewot KyAgICAgIHN0YXJ0X2NvbG9yKCk7Ci0rICAgICAgdXNlX2RlZmF1bHRfY29sb3JzKCk7Ci0rICAg ICAgaW5pdF9hbnNpX2NvbG9ycygpOwotKyAgICB9IGVsc2UKLSsgICAgICBvcHRpb25fY29sb3Ig PSAwOwotKyAgfQotIAlub25sKCk7Ci0gCW5vZWNobygpOwotIAljYnJlYWsoKTsKLUBAIC00NjAs NyArNTQxLDEzIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCQkJCQl9d2hpbGUg KGMgIT0gV0VPRiAmJiAhaXNwcmludChjKSAmJiBjPDEyOAotIAkJCQkJCSAgICAgICAmJiB3Y3dp ZHRoKGMpID09IDAKLSAJCQkJCQkgICAgICAgJiYgYyAhPSBMJ1xuJwotLQkJCQkJCSAgICAgICAm JiBjICE9IEwnXHQnKTsKLSsJCQkJCQkgICAgICAgJiYgYyAhPSBMJ1x0JwotKyAgICAgICAgICAg ICAgICAgICAmJiAoYyAhPSBMJ1wwMzMnIHx8IG9wdGlvbl9jb2xvciAhPSAxKSk7Ci0rICAgICAg ICAgIGlmIChjID09IEwnXDAzMycgJiYgb3B0aW9uX2NvbG9yID09IDEpIHsKLSsgICAgICAgICAg ICB4LS07Ci0rICAgICAgICAgICAgcHJvY2Vzc19hbnNpKHApOwotKyAgICAgICAgICAgIGNvbnRp bnVlOwotKyAgICAgICAgICB9Ci0gCQkJCQlpZiAoYyA9PSBMJ1xuJykKLSAJCQkJCQlpZiAoIW9s ZGVvbHNlZW4gJiYgeCA9PSAwKSB7Ci0gCQkJCQkJCXggPSAtMTsKLS0tIAotMS43LjAKLQpkaWZm IC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvMDA2OC10b3BfdXNlcm5hbWVfcGFyc2UucGF0 Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDY4LXRvcF91c2VybmFtZV9wYXJzZS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGViY2Y2MS4uMDAwMDAwMAotLS0gYS9wYXRj aGVzL3Byb2Nwcy0zLjIuOC8wMDY4LXRvcF91c2VybmFtZV9wYXJzZS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gOWMxZjlmOTlhNTgyNmJlNTA2OWZjMGVmNjZhOGQz YWRhNGU0ODhiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGh0dHA6Ly9mdHAuZGUu ZGViaWFuLm9yZy9kZWJpYW4vcG9vbC9tYWluL3AvcHJvY3BzL3Byb2Nwc18zLjIuOC04LmRlYmlh bi50YXIuZ3ogPGluZm9AZGViaWFuLm9yZz4KLURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTg6 NDcgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2OC83MF0gdG9wX3VzZXJuYW1lX3BhcnNlCi0KLS0t LQotIHRvcC5jIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdG9wLmMgYi90b3AuYwotaW5kZXggZTE5NDI0 NC4uNjJmNDA3NyAxMDA2NDQKLS0tLSBhL3RvcC5jCi0rKysgYi90b3AuYwotQEAgLTE5MjQsNyAr MTkyNCw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2FyZ3MgKGNoYXIgKiphcmdzKQotICAgICAgICAg ICAgICAgICAgIGVycm1zZyA9IHBhcnNlX3VpZChjcCwgJnNlbGVjdGlvbl91aWQpOwotICAgICAg ICAgICAgICAgICAgIGlmIChlcnJtc2cpIHN0ZF9lcnIoZXJybXNnKTsKLSAgICAgICAgICAgICAg ICAgICBzZWxlY3Rpb25fdHlwZSA9ICd1JzsKLS0gICAgICAgICAgICAgICAgICBjcCArPSBzbnBy aW50ZihDdXJ3aW4tPmNvbHVzcm5hbSwgVVNSTkFNU0laLTEsICIlcyIsIGNwKTsgLy8gRklYTUU6 IGp1bmsKLSsgICAgICAgICAgICAgICAgICBjcCArPSBzbnByaW50ZihDdXJ3aW4tPmNvbHVzcm5h bSwgVVNSTkFNU0laLTEsICIlcyIsIGNwKS0xOyAvLyBGSVhNRToganVuawotICAgICAgICAgICAg ICAgIH0gd2hpbGUoMCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgY2Fz ZSAnVSc6Ci0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAw NjktZG9uLXQtaW5zdGFsbC1zdHVmZi10aGF0LXdhcy1ub3QtYnVpbHQucGF0Y2ggYi9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDY5LWRvbi10LWluc3RhbGwtc3R1ZmYtdGhhdC13YXMtbm90LWJ1aWx0 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2YzYTgzLi4wMDAwMDAwCi0t LSBhL3BhdGNoZXMvcHJvY3BzLTMuMi44LzAwNjktZG9uLXQtaW5zdGFsbC1zdHVmZi10aGF0LXdh cy1ub3QtYnVpbHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9tIDk3 YmM4ZmJmZWRmYzNkODIzODkxZWM2NDk3YzE4N2NiOGUxYWNlMDYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBNaWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRyb25peC5kZT4K LURhdGU6IEZyaSwgMTkgTWFyIDIwMTAgMjE6NTk6MjggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2 OS83MF0gZG9uJ3QgaW5zdGFsbCBzdHVmZiB0aGF0IHdhcyBub3QgYnVpbHQKLQotV2UgZG9uJ3Qg YnVpbHQgZXZlcnl0aGluZyBpbiBwdHhkaXN0LiBUaGlzIFBhdGNoIG1ha2VzIHN1cmUgdGhhdAot J21ha2UgaW5zdGFsbCcgd29uJ3QgZmFpbCBpZiAnc2tpbGwnIG9yICdwZ3JlcCcgaXMgbm90IHRo ZXJlLgotCi1TaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRy b25peC5kZT4KLS0tLQotIE1ha2VmaWxlIHwgICAgNCArKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZSBi L01ha2VmaWxlCi1pbmRleCBhYmRkYjZlLi41ZWZhYmIzIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUK LSsrKyBiL01ha2VmaWxlCi1AQCAtMjI5LDggKzIyOSw4IEBAICQoTUFORklMRVMpIDogYWxsCi0g CSQoaW5zdGFsbCkgLS1tb2RlIGE9ciAkKG5vdGRpciAkQCkgJEAKLSAKLSBpbnN0YWxsOiAkKGZp bHRlci1vdXQgJChTS0lQKSAkKGFkZHByZWZpeCAkKERFU1RESVIpLCQoU0tJUCkpLCQoSU5TVEFM TCkpCi0tCWNkICQodXNyL2JpbikgJiYgJChsbl9mKSBza2lsbCBzbmljZQotLQljZCAkKHVzci9w cm9jL2JpbikgJiYgJChsbl9mKSBwZ3JlcCBwa2lsbAotKwljZCAkKHVzci9iaW4pICYmIHRlc3Qg ISAtZiBza2lsbCB8fCAkKGxuX2YpIHNraWxsIHNuaWNlCi0rCWNkICQodXNyL3Byb2MvYmluKSAm JiB0ZXN0ICEgLWYgcGdyZXAgfHwgJChsbl9mKSBwZ3JlcCBwa2lsbAotIAotICMjIyMjIyMjIyMj IyBwcm9nLmMgLS0+IHByb2cubwotIAotLS0gCi0xLjcuMAotCmRpZmYgLS1naXQgYS9wYXRjaGVz L3Byb2Nwcy0zLjIuOC8wMDcwLXJlbW92ZS1mcmVuYW1lLXJlZ2lzdGVycy1vcHRpb24tZHVlLXRv LUlDRS1vbi1nY2MtNC4ucGF0Y2ggYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC8wMDcwLXJlbW92ZS1m cmVuYW1lLXJlZ2lzdGVycy1vcHRpb24tZHVlLXRvLUlDRS1vbi1nY2MtNC4ucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhNWY1MDkuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9w cm9jcHMtMy4yLjgvMDA3MC1yZW1vdmUtZnJlbmFtZS1yZWdpc3RlcnMtb3B0aW9uLWR1ZS10by1J Q0Utb24tZ2NjLTQuLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSA4 OGZlNDNmNDYzYjlhMmFkNmFlNWFjNGJlODVkZTY2YWY3YjE0MmVmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogTWFyYyBLbGVpbmUtQnVkZGUgPG1rbEBwZW5ndXRyb25peC5kZT4KLURh dGU6IEZyaSwgMTkgTWFyIDIwMTAgMjI6MDM6MTMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA3MC83 MF0gcmVtb3ZlIC1mcmVuYW1lLXJlZ2lzdGVycyBvcHRpb24sIGR1ZSB0byBJQ0Ugb24gZ2NjLTQu My4xCi0KLVNpZ25lZC1vZmYtYnk6IE1hcmMgS2xlaW5lLUJ1ZGRlIDxta2xAcGVuZ3V0cm9uaXgu ZGU+Ci0tLS0KLSBNYWtlZmlsZSB8ICAgIDEgLQotIDEgZmlsZXMgY2hhbmdlZCwgMCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmls ZQotaW5kZXggNWVmYWJiMy4uYTgzZGY1ZSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9N YWtlZmlsZQotQEAgLTE0Miw3ICsxNDIsNiBAQCBBTExfQ0ZMQUdTICs9ICQoY2FsbCBjaGVja19n Y2MsLVdzdHJpY3QtYWxpYXNpbmcsKQotICMgaWYgbm90IGRlYnVnZ2luZywgZW5hYmxlIHRoaW5n cyB0aGF0IGNvdWxkIGNvbmZ1c2UgZ2RiCi0gaWZlcSAoLCQoZmluZHN0cmluZyAtZywkKGZpbHRl ciAtZyUsJChDRkxBR1MpKSkpCi0gQUxMX0NGTEFHUyArPSAkKGNhbGwgY2hlY2tfZ2NjLC1md2Vi LCkKLS1BTExfQ0ZMQUdTICs9ICQoY2FsbCBjaGVja19nY2MsLWZyZW5hbWUtcmVnaXN0ZXJzLCkK LSBBTExfQ0ZMQUdTICs9ICQoY2FsbCBjaGVja19nY2MsLWZvbWl0LWZyYW1lLXBvaW50ZXIsKQot IGVuZGlmCi0gCi0tLSAKLTEuNy4wCi0KZGlmZiAtLWdpdCBhL3BhdGNoZXMvcHJvY3BzLTMuMi44 LzAwNzEtZml4LWJ1aWxkLXdpdGgtbWFrZS0zLjgyLnBhdGNoIGIvcGF0Y2hlcy9wcm9jcHMtMy4y LjgvMDA3MS1maXgtYnVpbGQtd2l0aC1tYWtlLTMuODIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDlhOTYzZmUuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgv MDA3MS1maXgtYnVpbGQtd2l0aC1tYWtlLTMuODIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz NiArMCwwIEBACi1Gcm9tIDdkNmE4MWMyMzI0NTc1YWQ3ZDZmMzk0ZTk4YjVhZTIzMWU5OWFiNWQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBHZW9yZ2UgTWNDb2xsaXN0ZXIgPGdlb3Jn ZS5tY2NvbGxpc3RlckBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDIzIEF1ZyAyMDExIDEzOjUxOjQz IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0ggNzEvNzFdIGZpeCBidWlsZCB3aXRoIG1ha2UgMy44Mgot Ci1JIHB1bGxlZCB0aGlzIHBhdGNoIGZyb20gdXBzdHJlYW0uCi1odHRwOi8vcHJvY3BzLmN2cy5z b3VyY2Vmb3JnZS5uZXQvdmlld3ZjL3Byb2Nwcy9wcm9jcHMvTWFrZWZpbGU/cjE9MS43MCZyMj0x LjcxCi0KLVJldmlzaW9uIDEuNzEKLU1vbiBGZWIgMjggMDI6NTE6MDkgMjAxMSBVVEMgKDUgbW9u dGhzLCAzIHdlZWtzIGFnbykgYnkgYWxiZXJ0Ci1CcmFuY2g6IE1BSU4KLUNWUyBUYWdzOiBIRUFE Ci1DaGFuZ2VzIHNpbmNlIDEuNzA6ICsxIC0xIGxpbmVzCi1wb3NzaWJsZSB0byBidWlsZCB3aXRo IG1ha2UgMy44MiAgICBnZW4zMDMxMjAgIC0tIHRoYW5rcyBFbGlhcyBQaXBwaW5nCi0KLVNpZ25l ZC1vZmYtYnk6IEdlb3JnZSBNY0NvbGxpc3RlciA8Z2VvcmdlLm1jY29sbGlzdGVyQGdtYWlsLmNv bT4KLS0tLQotIE1ha2VmaWxlIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmls ZQotaW5kZXggYTgzZGY1ZS4uYzFiZjhmMyAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9N YWtlZmlsZQotQEAgLTE3NCw3ICsxNzQsNyBAQCBJTlNUQUxMIDo9ICQoQklORklMRVMpICQoTUFO RklMRVMpCi0gIyB3YW50IHRoaXMgcnVsZSBmaXJzdCwgdXNlIDo9IG9uIEFMTCwgYW5kIEFMTCBu b3QgZmlsbGVkIGluIHlldAotIGFsbDogZG9fYWxsCi0gCi0tLWluY2x1ZGUgKi9tb2R1bGUubWsK LSstaW5jbHVkZSBwcm9jL21vZHVsZS5tayBwcy9tb2R1bGUubWsKLSAKLSBkb19hbGw6ICAgICQo QUxMKQotIAotLS0gCi0xLjcuNgotCmRpZmYgLS1naXQgYS9wYXRjaGVzL3Byb2Nwcy0zLjIuOC9z ZXJpZXMgYi9wYXRjaGVzL3Byb2Nwcy0zLjIuOC9zZXJpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDdiY2VlZjkuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9wcm9jcHMtMy4yLjgvc2Vy aWVzCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotMDAwMS1zbGFidG9wX29uY2UucGF0 Y2gKLTAwMDItZnJlZS4xLnBhdGNoCi0wMDAzLW91dHB1dF9zb3J0X3RpbWUucGF0Y2gKLTAwMDQt cG1hcC4xLnBhdGNoCi0wMDA1LTEwX3BzLjEucGF0Y2gKLTAwMDYtc2tpbGwuMS5wYXRjaAotMDAw Ny1za2lsbF9wZXJyb3IucGF0Y2gKLTAwMDgtc2xhYnRvcF8xLnBhdGNoCi0wMDA5LXN5c2N0bC44 LnBhdGNoCi0wMDEwLXN5c2N0bF9vcHRpb25zLnBhdGNoCi0wMDExLXRsb2FkLjEucGF0Y2gKLTAw MTItdG9wX2lyaXgucGF0Y2gKLTAwMTMtdG9wX25vX29wZW5wcm9jLnBhdGNoCi0wMDE0LXRvcF9z dGRpbl9lb2YucGF0Y2gKLTAwMTUtdG9wX3VpZF9sZW5ndGgucGF0Y2gKLTAwMTYtdXB0aW1lLjEu cGF0Y2gKLTAwMTctdm1zdGF0LjgucGF0Y2gKLTAwMTgtd2F0Y2guMS5wYXRjaAotMDAxOS13X3Rp bWUucGF0Y2gKLTAwMjAta2lsbC4xLnBhdGNoCi0wMDIxLWtpbGxfd2FybmNyLnBhdGNoCi0wMDIy LW1vZHVsZV9ta19zaGFyZWQucGF0Y2gKLTAwMjMtc3lzaW5mb19lbGZub3RlLnBhdGNoCi0wMDI0 LXRvcC4xLnBhdGNoCi0wMDI1LXRvcF9jX3Jlc2l6ZS5wYXRjaAotMDAyNi13LWJhc3NtYW4ucGF0 Y2gKLTAwMjctdG9wLjFfY3B1c3RhdGVzLnBhdGNoCi0wMDI4LXdhdGNoXzhiaXRjaGFyLnBhdGNo Ci0wMDI5LWxpYnJhcnlfbWFwX2ZyZWVwcm9jLnBhdGNoCi0wMDMwLXBncmVwX3N0YXJ0X3RpbWUu cGF0Y2gKLTAwMzEtcmVhZHByb2NfYy5wYXRjaAotMDAzMi1zeXNpbmZvXzdfbnVtYmVycy5wYXRj aAotMDAzMy10bG9hZF9ub19vcHRhcmdzLnBhdGNoCi0wMDM0LXcuMS5wYXRjaAotMDAzNS13X2Nv bHVtbnMucGF0Y2gKLTAwMzYtd2F0Y2hfZXhlY19iZWVwLnBhdGNoCi0wMDM3LXBhdGhfbWF4LnBh dGNoCi0wMDM4LXdfZW52bGVuZ3RoLnBhdGNoCi0wMDM5LWdudS1rYnNkLXZlcnNpb24ucGF0Y2gK LTAwNDAtcGdyZXBfY19vcHRpb24ucGF0Y2gKLTAwNDEtcHNfY2dyb3VwX2Rpc3BsYXkucGF0Y2gK LTAwNDItd2F0Y2hfcHJlY2lzaW9uX3RpbWUucGF0Y2gKLTAwNDMtd2F0Y2hfdW5pY29kZS5wYXRj aAotMDA0NC1jb21wbGFpbl91bm1vdW50ZWRfcHJvYy5wYXRjaAotMDA0NS1wc19zdXBnaWRfZGlz cGxheS5wYXRjaAotMDA0Ni1tYWtlZmlsZV9kZXZfbnVsbC5wYXRjaAotMDA0Ny1wZ3JlcC4xLnBh dGNoCi0wMDQ4LXBzX3NpemVfc3oucGF0Y2gKLTAwNDktdG9wX21pbnRpbWUucGF0Y2gKLTAwNTAt dm1zdGF0X2hlYWRlcnMucGF0Y2gKLTAwNTEtcGdyZXBfdXNhZ2VfZXhpdGNvZGUucGF0Y2gKLTAw NTItcHNfMV9vcHRpb25zLnBhdGNoCi0wMDUzLXRvcF9oaWdobGlnaHQucGF0Y2gKLTAwNTQtdG9w X25vaHoucGF0Y2gKLTAwNTUtdm1zdGF0X3BhcnRfZm9ybWF0LnBhdGNoCi0wMDU2LXJlYWRwcm9j X2RvdWJsZV9mcmVlLnBhdGNoCi0wMDU3LXZtc3RhdF91bml0cy5wYXRjaAotMDA1OC1za2lsbF9u dWxsX2FyZ3YucGF0Y2gKLTAwNTktc2tpbGxfbXVsdGlhcmcucGF0Y2gKLTAwNjAtcHJvY192ZXJz aW9uX2NvbnN0cnVjdG9yLnBhdGNoCi0wMDYxLXBtYXBzX3NtYXBzLnBhdGNoCi0wMDYyLXRvcF9u dW1lcmljX2FyZ3MucGF0Y2gKLTAwNjMtdG9wXzFfc3dhcC5wYXRjaAotMDA2NC13X3VzZXJwcm9j LnBhdGNoCi0wMDY1LXN5c2luZm9fa2ZyZWVic2RfaGVydHoucGF0Y2gKLTAwNjYtcHNfMV9mbHRf b3V0cHV0LnBhdGNoCi0wMDY3LXdhdGNoX2Fuc2lfY29sb3VyLnBhdGNoCi0wMDY4LXRvcF91c2Vy bmFtZV9wYXJzZS5wYXRjaAotMDA2OS1kb24tdC1pbnN0YWxsLXN0dWZmLXRoYXQtd2FzLW5vdC1i dWlsdC5wYXRjaAotMDA3MC1yZW1vdmUtZnJlbmFtZS1yZWdpc3RlcnMtb3B0aW9uLWR1ZS10by1J Q0Utb24tZ2NjLTQuLnBhdGNoCi0wMDcxLWZpeC1idWlsZC13aXRoLW1ha2UtMy44Mi5wYXRjaApk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9wcm9jcHMtbmctMy4zLjEwL2F1dG9nZW4uc2ggYi9wYXRjaGVz L3Byb2Nwcy1uZy0zLjMuMTAvYXV0b2dlbi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw MDAwMDAwLi5kZGFlNTYzCi0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hlcy9wcm9jcHMtbmctMy4z LjEwL2F1dG9nZW4uc2gKQEAgLTAsMCArMSwyIEBACisjIS9iaW4vc2gKK2V4ZWMgLi9hdXRvZ2Vu LnNoCmRpZmYgLS1naXQgYS9wcm9qZWN0cm9vdC9ldGMvaW5pdC5kL2Nocm9ueSBiL3Byb2plY3Ry b290L2V0Yy9pbml0LmQvY2hyb255CmluZGV4IGU3ZTkzN2EuLjdmYWI1ZWQgMTAwNjQ0Ci0tLSBh L3Byb2plY3Ryb290L2V0Yy9pbml0LmQvY2hyb255CisrKyBiL3Byb2plY3Ryb290L2V0Yy9pbml0 LmQvY2hyb255CkBAIC02Myw3ICs2Myw3IEBAIHN0b3BfcHJvYygpIHsKIAogc2V0X29ubGluZSgp ewogICAgICAgICBtZXNzYWdlX24gIlNldHRpbmcgTlRQIHNlcnZlciBPTkxJTkUgLi4uICIKLQkv YmluL3BpZG9mIGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91dCAiIGNocm9ueWQgaXMgbm90 IHJ1bm5pbmcgIgorCS91c3IvYmluL3BpZG9mIGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91 dCAiIGNocm9ueWQgaXMgbm90IHJ1bm5pbmcgIgogCS91c3IvYmluL2Nocm9ueWMgPDwtRU9GCiAJ cGFzc3dvcmQgJFBBU1NXT1JECiAJb25saW5lCkBAIC03Niw3ICs3Niw3IEBAIHNldF9vbmxpbmUo KXsKIAogc2V0X29mZmxpbmUoKXsKICAgICAgICAgbWVzc2FnZV9uICJTZXR0aW5nIE5UUCBzZXJ2 ZXIgT0ZGTElORSAuLi4gIgotCS9iaW4vcGlkb2YgY2hyb255ZCA+IC9kZXYvbnVsbCB8fCBiYWls b3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCisJL3Vzci9iaW4vcGlkb2YgY2hyb255ZCA+ IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCiAJL3Vzci9i aW4vY2hyb255YyA8PC1FT0YKIAlwYXNzd29yZCAkUEFTU1dPUkQKIAlvZmZsaW5lCkBAIC04Niw3 ICs4Niw3IEBAIHNldF9vZmZsaW5lKCl7CiB9CiAKIHNldF9ydGMoKXsKLQkvYmluL3BpZG9mIGNo cm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91dCAiIGNocm9ueWQgaXMgbm90IHJ1bm5pbmcgIgor CS91c3IvYmluL3BpZG9mIGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91dCAiIGNocm9ueWQg aXMgbm90IHJ1bm5pbmcgIgogCWlmIFsgIiRSVENfSU9DVEwiID09ICJpbmNvbXBsZXRlIiBdIDsg dGhlbiAKIAkjIFdlIGFyZSBydW5uaW5nIG9uIGEgc3lzdGVtIHdpdGggbGltaXRlZCBydGMgc3Vw cG9ydCwKIAkjIHNvIHdlIGNhbm5vdCBsZXQgdGhlIG50cCBjbGllbnQgZG8gdGhlIGpvYi4gCkBA IC0xMDksNyArMTA5LDcgQEAgc2V0X3J0YygpewogfQogCiBzdGF0dXMoKXsKLQkvYmluL3BpZG9m IGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91dCAiIGNocm9ueWQgaXMgbm90IHJ1bm5pbmcg IgorCS91c3IvYmluL3BpZG9mIGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91dCAiIGNocm9u eWQgaXMgbm90IHJ1bm5pbmcgIgogCWNhdCA8PC1FT0YgfCAvdXNyL2Jpbi9jaHJvbnljCiAJcGFz c3dvcmQgJFBBU1NXT1JECiAJdHJhY2tpbmcKQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0dXMoKXsK IH0KIAogc3RhdGlzdGljcygpewotCS9iaW4vcGlkb2YgY2hyb255ZCA+IC9kZXYvbnVsbCB8fCBi YWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCisJL3Vzci9iaW4vcGlkb2YgY2hyb255 ZCA+IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCiAJY2F0 IDw8LUVPRiB8IC91c3IvYmluL2Nocm9ueWMKIAlwYXNzd29yZCAkUEFTU1dPUkQKIAlzb3VyY2Vz dGF0cwpkaWZmIC0tZ2l0IGEvcHJvamVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfY29tbWFuZCBiL3By b2plY3Ryb290L3Vzci9iaW4vY2hyb255X2NvbW1hbmQKaW5kZXggMDNhMThkMC4uNzQyYjk1MyAx MDA2NDQKLS0tIGEvcHJvamVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfY29tbWFuZAorKysgYi9wcm9q ZWN0cm9vdC91c3IvYmluL2Nocm9ueV9jb21tYW5kCkBAIC0xOSw3ICsxOSw3IEBAIGJhaWxvdXQo KXsKIEtFWT0kKGF3ayAnJDEgfiAvXmNvbW1hbmRrZXkkLyB7IHByaW50ICQyOyBleGl0fScgL2V0 Yy9jaHJvbnkvY2hyb255LmNvbmYpCiBQQVNTV09SRD1gYXdrICckMSB+IC9eJyRLRVknJC8ge3By aW50ICQyOyBleGl0fScgL2V0Yy9jaHJvbnkvY2hyb255LmtleXNgCiAKLS9iaW4vcGlkb2YgY2hy b255ZCA+IC9kZXYvbnVsbCB8fCBiYWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCisv dXNyL2Jpbi9waWRvZiBjaHJvbnlkID4gL2Rldi9udWxsIHx8IGJhaWxvdXQgIiBjaHJvbnlkIGlz IG5vdCBydW5uaW5nICIKIC91c3IvYmluL2Nocm9ueWMgPDwtRU9GCiBwYXNzd29yZCAkUEFTU1dP UkQKICRjb21tYW5kCmRpZmYgLS1naXQgYS9wcm9qZWN0cm9vdC91c3IvYmluL2Nocm9ueV9zdGF0 IGIvcHJvamVjdHJvb3QvdXNyL2Jpbi9jaHJvbnlfc3RhdAppbmRleCBlODZkMzk2Li4yMjc3NDE2 IDEwMDY0NAotLS0gYS9wcm9qZWN0cm9vdC91c3IvYmluL2Nocm9ueV9zdGF0CisrKyBiL3Byb2pl Y3Ryb290L3Vzci9iaW4vY2hyb255X3N0YXQKQEAgLTgxLDcgKzgxLDcgQEAgZXNhYwogZG9uZQog fQogCi0vYmluL3BpZG9mIGNocm9ueWQgPiAvZGV2L251bGwgfHwgYmFpbG91dCAiIGNocm9ueWQg aXMgbm90IHJ1bm5pbmcgIgorL3Vzci9iaW4vcGlkb2YgY2hyb255ZCA+IC9kZXYvbnVsbCB8fCBi YWlsb3V0ICIgY2hyb255ZCBpcyBub3QgcnVubmluZyAiCiAKIGNhc2UgJDEgaW4gCiAJLS1oZWxw KQpkaWZmIC0tZ2l0IGEvcnVsZXMvcHJvY3BzLmluIGIvcnVsZXMvcHJvY3BzLmluCmluZGV4IGJh ZjY1MTQuLjBjNjBlNGIgMTAwNjQ0Ci0tLSBhL3J1bGVzL3Byb2Nwcy5pbgorKysgYi9ydWxlcy9w cm9jcHMuaW4KQEAgLTQsMzEgKzQsMTA5IEBAIG1lbnVjb25maWcgUFJPQ1BTCiAJdHJpc3RhdGUK IAlwcm9tcHQgInByb2NwcyAgICAgICAgICAgICAgICAgICAgICAgICIKIAlzZWxlY3QgR0NDTElC U19HQ0NfUwotCXNlbGVjdCBOQ1VSU0VTCQlpZiBQUk9DUFNfVE9QCi0Jc2VsZWN0IE5DVVJTRVMJ CWlmIFBST0NQU19TTEFCVE9QCisJc2VsZWN0IE5DVVJTRVMgaWYgUFJPQ1BTX1VTRVNfTkNVUlNF UworCXNlbGVjdCBQUk9DUFNfVVNFU19OQ1VSU0VTIGlmIFBST0NQU19TTEFCVE9QIHx8IFBST0NQ U19UT1AgfHwgUFJPQ1BTX1dBVENICisJc2VsZWN0IFNZU1RFTUQgaWYgUFJPQ1BTX1dJVEhfU1lT VEVNRAogCWhlbHAKLQkgIFRoZSBwcm9jcHMgcGFja2FnZSBjb250YWlucyBhIHNldCBvZiBzeXN0 ZW0gdXRpbGl0aWVzIHRoYXQgcHJvdmlkZQotCSAgIHN5c3RlbSBpbmZvcm1hdGlvbi4KKwkgIENv bnRhaW5zIGEgc2V0IG9mIHN5c3RlbSB1dGlsaXRpZXMgdGhhdCBwcm92aWRlIGluZm9ybWF0aW9u IG91dCBvZiB0aGUKKwkgIHBzZXVkby1maWxlc3lzdGVtIG1vc3QgY29tbW9ubHkgbG9jYXRlZCBh dCAvcHJvYy4gVGhlIHByb2dyYW1zIGdlbmVyYWxseQorCSAgY29uY2VudHJhdGUgb24gdGhlIHN0 cnVjdHVyZXMgdGhhdCBkZXNjcmliZSB0aGUgcnVubmluZyBwcm9jZXNzZXMuCisJICBOb3RlOiBw cm9jcHMtbmcgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBvbGRlciBhbmQgdW5tYWludGFpbmVkIHBy b2Nwcy4KIAogaWYgUFJPQ1BTCiAKLWNvbmZpZyBQUk9DUFNfVE9QCitjb25maWcgUFJPQ1BTX1VT RVNfTkNVUlNFUwogCWJvb2wKLQlwcm9tcHQgInRvcCIKLQlkZXBlbmRzIG9uICFCVVNZQk9YX1RP UCB8fCBBTExZRVMKKworY29uZmlnIFBST0NQU19XSVRIX1NZU1RFTUQKKwlib29sCisJcHJvbXB0 ICJFbmFibGUgc3lzdGVtZCBzdXBwb3J0IgorCWRlZmF1bHQgSU5JVE1FVEhPRF9TWVNURU1ECisJ c2VsZWN0IFNZU1RFTUQKIAloZWxwCi0JICBUaGUgIHRvcCAgcHJvZ3JhbSBwcm92aWRlcyBhIGR5 bmFtaWMgcmVhbC10aW1lIHZpZXcgb2YgYSBydW5uaW5nCi0JICBzeXN0ZW0uCi0JICBOb3RlOiBU aGlzIGNvbW1hbmQgZW5sYXJnZXMgeW91ciBzeXN0ZW0gYnkgdGhlIG5jdXJzZXMgbGlicmFyeS4K KwkgIEVuYWJsZSBzeXN0ZW1kIHN1cHBvcnQgdG8gc2hvdyBpbmZvcm1hdGlvbiBhYm91dCBzeXN0 ZW1kIHVuaXRzLCBzbGljZXMKKwkgIGFuZCBjb250YWluZXJzIGluIHRvb2xzIGxpa2UgcHMuIFJl Y29tbWVuZGVkIHdoZW4gdXNpbmcgc3lzdGVtZC4KIAotY29tbWVudCAiYnVzeWJveCcgdG9wIGlz IHNlbGVjdGVkISIKLQlkZXBlbmRzIG9uIEJVU1lCT1hfVE9QCitjb25maWcgUFJPQ1BTX0ZSRUUK Kwlib29sCisJcHJvbXB0ICJmcmVlIgorCWRlcGVuZHMgb24gIUJVU1lCT1hfRlJFRSB8fCBBTExZ RVMKKwloZWxwCisJICBUaGUgZnJlZSBwcm9ncmFtIHJlcG9ydHMgdGhlIGFtb3VudCBvZiBmcmVl IGFuZCB1c2VkIG1lbW9yeS4KKworY29tbWVudCAiYnVzeWJveCcgZnJlZSBpcyBzZWxlY3RlZCEi CisJZGVwZW5kcyBvbiBCVVNZQk9YX0ZSRUUKKworY29uZmlnIFBST0NQU19QR1JFUAorCWJvb2wK Kwlwcm9tcHQgInBncmVwIgorCWRlcGVuZHMgb24gIUJVU1lCT1hfUEdSRVAgfHwgQUxMWUVTCisJ aGVscAorCSAgVGhlIHBncmVwIHByb2dyYW0gY2FuIGxvb2sgdXAgcHJvY2Vzc2VzIGJhc2VkIG9u IG5hbWUgYW5kIG90aGVyCisJICBhdHRyaWJ1dGVzLgorCitjb21tZW50ICJidXN5Ym94JyBwZ3Jl cCBpcyBzZWxlY3RlZCEiCisJZGVwZW5kcyBvbiBCVVNZQk9YX1BHUkVQCisKK2NvbmZpZyBQUk9D UFNfUElET0YKKwlib29sCisJcHJvbXB0ICJwaWRvZiIKKwlkZXBlbmRzIG9uICFCVVNZQk9YX1BJ RE9GIHx8IEFMTFlFUworCWhlbHAKKwkgIFRoZSBwaWRvZiBwcm9ncmFtIGNhbiBsaXN0IHRoZSBw aWRzIG9mIHJ1bm5pbmcgcHJvY2Vzc2VzLgorCitjb21tZW50ICJidXN5Ym94JyBwaWRvZiBpcyBz ZWxlY3RlZCEiCisJZGVwZW5kcyBvbiBCVVNZQk9YX1BJRE9GCisKK2NvbmZpZyBQUk9DUFNfUEtJ TEwKKwlib29sCisJcHJvbXB0ICJwa2lsbCIKKwlkZXBlbmRzIG9uICFCVVNZQk9YX1BLSUxMIHx8 IEFMTFlFUworCWhlbHAKKwkgIFRoZSBwa2lsbCBwcm9ncmFtIGNhbiBraWxsIHByb2Nlc3NlcyBi YXNlZCBvbiBuYW1lIGFuZCBvdGhlcgorCSAgYXR0cmlidXRlcy4KKworY29tbWVudCAiYnVzeWJv eCcgcGtpbGwgaXMgc2VsZWN0ZWQhIgorCWRlcGVuZHMgb24gQlVTWUJPWF9QS0lMTAorCitjb25m aWcgUFJPQ1BTX1BNQVAKKwlib29sCisJcHJvbXB0ICJwbWFwIgorCWRlcGVuZHMgb24gIUJVU1lC T1hfUE1BUCB8fCBBTExZRVMKKwloZWxwCisJICBUaGUgcG1hcCBwcm9ncmFtIHJlcG9ydHMgdGhl IG1lbW9yeSBtYXAgb2YgYSBwcm9jZXNzLgorCitjb21tZW50ICJidXN5Ym94JyBwbWFwIGlzIHNl bGVjdGVkISIKKwlkZXBlbmRzIG9uIEJVU1lCT1hfUE1BUAorCitjb25maWcgUFJPQ1BTX1BTCisJ Ym9vbAorCXByb21wdCAicHMiCisJZGVwZW5kcyBvbiAhQlVTWUJPWF9QUyB8fCBBTExZRVMKKwlo ZWxwCisJICBUaGUgcHMgcHJvZ3JhbSBjYW4gYW5hbHlzZSB0aGUgc3RhdGVzIG9mIGFsbCBwcm9j ZXNzZXMgcnVubmluZworCSAgb24gdGhlIHN5c3RlbS4gSXQgc3RhbmRzIGZvciBwcm9jZXNzIHN0 YXR1cy4KKworY29tbWVudCAiYnVzeWJveCcgcHMgaXMgc2VsZWN0ZWQhIgorCWRlcGVuZHMgb24g QlVTWUJPWF9QUworCitjb25maWcgUFJPQ1BTX1BXRFgKKwlib29sCisJcHJvbXB0ICJwd2R4Igor CWRlcGVuZHMgb24gIUJVU1lCT1hfUFdEWCB8fCBBTExZRVMKKwloZWxwCisJICBUaGUgcHdkeCBw cm9ncmFtIHJlcG9ydHMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9mIGEgcHJvY2Vzcy4KKworY29t bWVudCAiYnVzeWJveCcgcHdkeCBpcyBzZWxlY3RlZCEiCisJZGVwZW5kcyBvbiBCVVNZQk9YX1BX RFgKIAogY29uZmlnIFBST0NQU19TTEFCVE9QCiAJYm9vbAogCXByb21wdCAic2xhYnRvcCIKKwlz ZWxlY3QgUFJPQ1BTX1VTRVNfTkNVUlNFUwogCWhlbHAKLQkgIGRpc3BsYXkga2VybmVsIHNsYWIg Y2FjaGUgaW5mb3JtYXRpb24gaW4gcmVhbCB0aW1lCisJICBUaGUgc2xhYnRvcCBwcm9ncmFtIGRp c3BsYXlzIGtlcm5lbCBzbGFiIGNhY2hlIGluZm9ybWF0aW9uIGluCisJICByZWFsIHRpbWUuCiAJ ICBOb3RlOiBUaGlzIGNvbW1hbmQgZW5sYXJnZXMgeW91ciBzeXN0ZW0gYnkgdGhlIG5jdXJzZXMg bGlicmFyeS4KIAogY29uZmlnIFBST0NQU19TWVNDVEwKQEAgLTM2LDIyICsxMTQsNDkgQEAgY29u ZmlnIFBST0NQU19TWVNDVEwKIAlwcm9tcHQgInN5c2N0bCIKIAlkZXBlbmRzIG9uICFCVVNZQk9Y X0JCX1NZU0NUTCB8fCBBTExZRVMKIAloZWxwCi0JICBjb25maWd1cmUga2VybmVsIHBhcmFtZXRl cnMgYXQgcnVudGltZQorCSAgVGhlIHN5c2N0bCBwcm9ncmFtIGNvbmZpZ3VyZXMga2VybmVsIHBh cmFtZXRlcnMgYXQgcnVudGltZS4KIAogY29tbWVudCAiYnVzeWJveCcgc3lzY3RsIGlzIHNlbGVj dGVkISIKIAlkZXBlbmRzIG9uIEJVU1lCT1hfQkJfU1lTQ1RMCiAKLWNvbmZpZyBQUk9DUFNfUFMK K2NvbmZpZyBQUk9DUFNfVE9QCiAJYm9vbAotCXByb21wdCAicHMiCi0JZGVwZW5kcyBvbiAhQlVT WUJPWF9QUyB8fCBBTExZRVMKKwlwcm9tcHQgInRvcCIKKwlzZWxlY3QgUFJPQ1BTX1VTRVNfTkNV UlNFUworCWRlcGVuZHMgb24gIUJVU1lCT1hfVE9QIHx8IEFMTFlFUwogCWhlbHAKLQkgIHBzIHN0 YW5kcyBmb3IgcHJvY2VzcyBzdGF0dXMuIFdpdGggdGhpcyBjb21tYW5kIHlvdQotCSAgYW5hbHlz ZSBjdXJyZW50IHN0YXRlcyBvZiBhbGwgcHJvY2Vzc2VzIHJ1bm5pbmcgb24KLQkgIHRoZSBzeXN0 ZW0KKwkgIFRoZSAgdG9wICBwcm9ncmFtIHByb3ZpZGVzIGEgZHluYW1pYyByZWFsLXRpbWUgdmll dyBvZiBhIHJ1bm5pbmcKKwkgIHN5c3RlbS4KKwkgIE5vdGU6IFRoaXMgY29tbWFuZCBlbmxhcmdl cyB5b3VyIHN5c3RlbSBieSB0aGUgbmN1cnNlcyBsaWJyYXJ5LgogCi1jb21tZW50ICJidXN5Ym94 JyBwcyBpcyBzZWxlY3RlZCEiCi0JZGVwZW5kcyBvbiBCVVNZQk9YX1BTCitjb25maWcgUFJPQ1BT X1RPUF9NT0RFUk4KKwlib29sCisJcHJvbXB0ICJ1c2UgbW9kZXJuIHN0YXJ0dXAgZGVmYXVsdHMg Zm9yIHRvcCIKKwlkZXBlbmRzIG9uIFBST0NQU19UT1AKKwloZWxwCisJICBVc2UgdGhlIG1vZGVy biBjb2xvciBzY2hlbWUgZGVmYXVsdHMgYW5kIHRoZSBuZXcgQ1BVIGxvYWQgcmVwcmVzZW50YXRp b24KKwkgIGZvciBtdWx0aXBsZSBjb3Jlcy4KKwkgIElmIHRoaXMgb3B0aW9uIGlzIGRpc2FibGVk LCB0aGUgb3JpZ2luYWwgdG9wIGxheW91dCBpcyB1c2VkLgorCitjb21tZW50ICJidXN5Ym94JyB0 b3AgaXMgc2VsZWN0ZWQhIgorCWRlcGVuZHMgb24gQlVTWUJPWF9UT1AKKworY29uZmlnIFBST0NQ U19VUFRJTUUKKwlib29sCisJcHJvbXB0ICJ1cHRpbWUiCisJZGVwZW5kcyBvbiAhQlVTWUJPWF9V UFRJTUUgfHwgQUxMWUVTCisJaGVscAorCSAgVGhlIHVwdGltZSBwcm9ncmFtIGRpc3BsYXlzIHRo ZSBzeXN0ZW0gdXB0aW1lLgorCitjb21tZW50ICJidXN5Ym94JyB1cHRpbWUgaXMgc2VsZWN0ZWQh IgorCWRlcGVuZHMgb24gQlVTWUJPWF9VUFRJTUUKKworY29uZmlnIFBST0NQU19WTVNUQVQKKwli b29sCisJcHJvbXB0ICJ2bXN0YXQiCisJaGVscAorCSAgdm1zdGF0IHJlcG9ydHMgaW5mb3JtYXRp b24gYWJvdXQgcHJvY2Vzc2VzLCBtZW1vcnksCisJICBwYWdpbmcsIGJsb2NrIElPLCB0cmFwcywg ZGlza3MgYW5kIGNwdSBhY3Rpdml0eS4KIAogY29uZmlnIFBST0NQU19XCiAJYm9vbApAQCAtNTks MTQgKzE2NCwxNyBAQCBjb25maWcgUFJPQ1BTX1cKIAloZWxwCiAJICBTaG93IHdobyBpcyBsb2dn ZWQgb24gYW5kIHdoYXQgdGhleSBhcmUgZG9pbmcuCiAKLWNvbmZpZyBQUk9DUFNfUEdSRVAKK2Nv bmZpZyBQUk9DUFNfV0FUQ0gKIAlib29sCi0JcHJvbXB0ICJwZ3JlcCIKLQlkZXBlbmRzIG9uICFC VVNZQk9YX1BHUkVQIHx8IEFMTFlFUworCXByb21wdCAid2F0Y2giCisJc2VsZWN0IFBST0NQU19V U0VTX05DVVJTRVMKKwlkZXBlbmRzIG9uICFCVVNZQk9YX1dBVENIIHx8IEFMTFlFUwogCWhlbHAK LQkgIGxvb2sgdXAgcHJvY2Vzc2VzIGJhc2VkIG9uIG5hbWUgYW5kIG90aGVyIGF0dHJpYnV0ZXMK KwkgIFRoZSB3YXRjaCBwcm9ncmFtIGNhbiBleGVjdXRlIGEgcHJvZ3JhbSBwZXJpb2RpY2FsbHks IGRpc3BsYXlpbmcgdGhlCisJICBvdXRwdXQgZnVsbHNjcmVlbi4KKwkgIE5vdGU6IFRoaXMgY29t bWFuZCBlbmxhcmdlcyB5b3VyIHN5c3RlbSBieSB0aGUgbmN1cnNlcyBsaWJyYXJ5LgogCi1jb21t ZW50ICJidXN5Ym94JyBwZ3JlcCBpcyBzZWxlY3RlZCEiCi0JZGVwZW5kcyBvbiBCVVNZQk9YX1BH UkVQCitjb21tZW50ICJidXN5Ym94JyB3YXRjaCBpcyBzZWxlY3RlZCEiCisJZGVwZW5kcyBvbiBC VVNZQk9YX1dBVENICiAKIGVuZGlmCmRpZmYgLS1naXQgYS9ydWxlcy9wcm9jcHMubWFrZSBiL3J1 bGVzL3Byb2Nwcy5tYWtlCmluZGV4IDVkOWMwM2EuLjc4ZTg5OTEgMTAwNjQ0Ci0tLSBhL3J1bGVz L3Byb2Nwcy5tYWtlCisrKyBiL3J1bGVzL3Byb2Nwcy5tYWtlCkBAIC0yLDcgKzIsOCBAQAogIwog IyBDb3B5cmlnaHQgKEMpIDIwMDMgYnkgSXhpYSBDb3Jwb3JhdGlvbiwgYnkgTWlsYW4gQm9iZGUK ICMJCTIwMDcgYnkgUGVuZ3V0cm9uaXggZS5LLgotIyAgICAgICAgICAgICAgIDIwMDkgYnkgTWFy YyBLbGVpbmUtQnVkZGUgPG1rbEBwZW5ndXRyb25peC5kZT4KKyMJCTIwMDkgYnkgTWFyYyBLbGVp bmUtQnVkZGUgPG1rbEBwZW5ndXRyb25peC5kZT4KKyMJCTIwMTUgYnkgQ2xlbWVucyBHcnViZXIg PGNsZW1lbnMuZ3J1YmVyQHBxZ3J1YmVyLmNvbT4KICMKICMgU2VlIENSRURJVFMgZm9yIGRldGFp bHMgYWJvdXQgd2hvIGhhcyBjb250cmlidXRlZCB0byB0aGlzIHByb2plY3QuCiAjCkBAIC0xOCw0 MyArMTksNDQgQEAgUEFDS0FHRVMtJChQVFhDT05GX1BST0NQUykgKz0gcHJvY3BzCiAjCiAjIFBh dGhzIGFuZCBuYW1lcwogIwotUFJPQ1BTX1ZFUlNJT04JOj0gMy4yLjgKLVBST0NQU19NRDUJOj0g OTUzMjcxNGI2ODQ2MDEzY2E5ODk4OTg0YmE0Y2Q3ZTAKLVBST0NQUwkJOj0gcHJvY3BzLSQoUFJP Q1BTX1ZFUlNJT04pCitQUk9DUFNfVkVSU0lPTgk6PSAzLjMuMTAKK1BST0NQU19NRDUJOj0gY2Zj ZWFhZGY4OTVhYTIzZGViM2FiMmYxZTBhZGY5NmUKK1BST0NQUwkJOj0gcHJvY3BzLW5nLSQoUFJP Q1BTX1ZFUlNJT04pCiBQUk9DUFNfU1VGRklYCTo9IHRhci5negotUFJPQ1BTX1VSTAk6PSBodHRw Oi8vcHJvY3BzLnNvdXJjZWZvcmdlLm5ldC8kKFBST0NQUykuJChQUk9DUFNfU1VGRklYKQorUFJP Q1BTX1VSTAk6PSBodHRwczovL2dpdGxhYi5jb20vcHJvY3BzLW5nL3Byb2Nwcy9yZXBvc2l0b3J5 L2FyY2hpdmUuJChQUk9DUFNfU1VGRklYKT9yZWY9diQoUFJPQ1BTX1ZFUlNJT04pCiBQUk9DUFNf U09VUkNFCTo9ICQoU1JDRElSKS8kKFBST0NQUykuJChQUk9DUFNfU1VGRklYKQogUFJPQ1BTX0RJ Ugk6PSAkKEJVSUxERElSKS8kKFBST0NQUykKIFBST0NQU19MSUNFTlNFCTo9IEdQTHYyICh0b29s cyksIExHUEx2MiAobGlicykKIFBST0NQU19MSUNFTlNFX0ZJTEVTIDo9IFwKLQlmaWxlOi8vQ09Q WUlORzttZDU9MDYzNmU3M2ZmMDIxNWU4ZDY3MmRjNGMzMmMzMTdiYjMgXAotCWZpbGU6Ly9DT1BZ SU5HLkxJQjttZDU9NmUyOWM2ODhkOTEyZGExMmI2NmI3M2UzMmIwM2Q4MTIKKwlmaWxlOi8vQ09Q WUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAorCWZpbGU6Ly9DT1BZ SU5HLkxJQjttZDU9NGNmNjZhNDk4NDEyMDAwN2M5ODgxY2M4NzFjZjQ5ZGIKIAogIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAjIFByZXBhcmUKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIGJ1aWxk IG9ubHkgdGhlIHJlcXVpcmVkIHBhcnRzCi1QUk9DUFNfQUxMLSQoUFRYQ09ORl9QUk9DUFNfVE9Q KQkrPSAkKFBST0NQU19QS0dESVIpL3Vzci9iaW4vdG9wCi1QUk9DUFNfQUxMLSQoUFRYQ09ORl9Q Uk9DUFNfU0xBQlRPUCkJKz0gJChQUk9DUFNfUEtHRElSKS91c3IvYmluL3NsYWJ0b3AKLVBST0NQ U19BTEwtJChQVFhDT05GX1BST0NQU19TWVNDVEwpCSs9ICQoUFJPQ1BTX1BLR0RJUikvc2Jpbi9z eXNjdGwKLVBST0NQU19BTEwtJChQVFhDT05GX1BST0NQU19XKQkJKz0gJChQUk9DUFNfUEtHRElS KS91c3IvYmluL3cKLVBST0NQU19BTEwtJChQVFhDT05GX1BST0NQU19QR1JFUCkJKz0gJChQUk9D UFNfUEtHRElSKS91c3IvYmluL3BncmVwCitQUk9DUFNfQ09ORl9FTlYJOj0gXAorCSQoQ1JPU1Nf RU5WKSBcCisJJChjYWxsIHB0eC9uY3Vyc2VzLCBQVFhDT05GX1BST0NQU19VU0VTX05DVVJTRVMp CiAKLVBST0NQU19QQVRICTo9IFBBVEg9JChDUk9TU19QQVRIKQotUFJPQ1BTX01BS0VWQVJTCTo9 IFwKLQlDQz0iJChDUk9TU19DQykiIFwKLQlDRkxBR1M9LU8yIFwKLQlDUFBGTEFHUz0nJChDUk9T U19DUFBGTEFHUyknIFwKLQlMREZMQUdTPSckKENST1NTX0xERkxBR1MpJyBcCi0JbGliNjQ9JChD Uk9TU19MSUJfRElSKSBcCi0JbGRjb25maWc9dHJ1ZSBcCi0JTUFORklMRVM9IiIgXAotCUJJTkZJ TEVTPSIkKFBST0NQU19BTEwteSkiCisjCisjIGF1dG9jb25mCisjCitQUk9DUFNfQ09ORl9UT09M CTo9IGF1dG9jb25mCitQUk9DUFNfQ09ORl9PUFQJOj0gXAorCSQoQ1JPU1NfQVVUT0NPTkZfVVNS KSBcCisJLS1lbmFibGUtc2hhcmVkIFwKKwktLWRpc2FibGUtc3RhdGljIFwKKwktLWRpc2FibGUt bmxzIFwKKwktLWRpc2FibGUtcnBhdGggXAorCS0tZGlzYWJsZS1raWxsIFwKKwktLSQoY2FsbCBw dHgvZW5kaXMsIFBST0NQU19UT1BfTU9ERVJOKS1tb2Rlcm4tdG9wIFwKKwktLXByZWZpeD0vIFwK KwktLXdpdGhvdXQtbGliaWNvbnYtcHJlZml4IFwKKwktLXdpdGhvdXQtbGliaW50bC1wcmVmaXgg XAorCS0tJChjYWxsIHB0eC93d28sIFBUWENPTkZfUFJPQ1BTX1VTRVNfTkNVUlNFUyktbmN1cnNl cyBcCisJLS0kKGNhbGwgcHR4L3d3bywgUFRYQ09ORl9QUk9DUFNfV0lUSF9TWVNURU1EKS1zeXN0 ZW1kCiAKLSQoU1RBVEVESVIpL3Byb2Nwcy5wcmVwYXJlOgotCUAkKGNhbGwgdGFyZ2V0aW5mbykK LQlAJChjYWxsIHRvdWNoKQogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgVGFyZ2V0LUluc3Rh bGwKQEAgLTY2LDE0ICs2OCwzOCBAQCAkKFNUQVRFRElSKS9wcm9jcHMudGFyZ2V0aW5zdGFsbDoK IAlAJChjYWxsIGluc3RhbGxfaW5pdCwgcHJvY3BzKQogCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwg cHJvY3BzLFBSSU9SSVRZLG9wdGlvbmFsKQogCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgcHJvY3Bz LFNFQ1RJT04sYmFzZSkKLQlAJChjYWxsIGluc3RhbGxfZml4dXAsIHByb2NwcyxBVVRIT1IsIlJv YmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4iKQorCUAkKGNhbGwgaW5z dGFsbF9maXh1cCwgcHJvY3BzLEFVVEhPUiwiQ2xlbWVucyBHcnViZXIgPGNsZW1lbnMuZ3J1YmVy QHBxZ3J1YmVyLmNvbT4iKQogCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgcHJvY3BzLERFU0NSSVBU SU9OLG1pc3NpbmcpCiAKLQlAJChjYWxsIGluc3RhbGxfbGliLCBwcm9jcHMsIDAsIDAsIDA2NDQs IGxpYnByb2MtMy4yLjgpCisJQCQoY2FsbCBpbnN0YWxsX2xpYiwgcHJvY3BzLCAwLCAwLCAwNjQ0 LCBsaWJwcm9jcHMpCiAKLWlmZGVmIFBUWENPTkZfUFJPQ1BTX1RPUAotCUAkKGNhbGwgaW5zdGFs bF9jb3B5LCBwcm9jcHMsIDAsIDAsIDA3NTUsIC0sXAotCQkvdXNyL2Jpbi90b3ApCitpZmRlZiBQ VFhDT05GX1BST0NQU19GUkVFCisJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwg MDc1NSwgLSwgXAorCQkvdXNyL2Jpbi9mcmVlKQorZW5kaWYKK2lmZGVmIFBUWENPTkZfUFJPQ1BT X1BHUkVQCisJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1NSwgLSwgXAor CQkvdXNyL2Jpbi9wZ3JlcCkKK2VuZGlmCitpZmRlZiBQVFhDT05GX1BST0NQU19QSURPRgorCUAk KGNhbGwgaW5zdGFsbF9jb3B5LCBwcm9jcHMsIDAsIDAsIDA3NTUsIC0sIFwKKwkJL3Vzci9iaW4v cGlkb2YpCitlbmRpZgoraWZkZWYgUFRYQ09ORl9QUk9DUFNfUEtJTEwKKwlAJChjYWxsIGluc3Rh bGxfY29weSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBcCisJCS91c3IvYmluL3BraWxsKQorZW5k aWYKK2lmZGVmIFBUWENPTkZfUFJPQ1BTX1BNQVAKKwlAJChjYWxsIGluc3RhbGxfY29weSwgcHJv Y3BzLCAwLCAwLCAwNzU1LCAtLCBcCisJCS91c3IvYmluL3BtYXApCitlbmRpZgoraWZkZWYgUFRY Q09ORl9QUk9DUFNfUFMKKwlAJChjYWxsIGluc3RhbGxfY29weSwgcHJvY3BzLCAwLCAwLCAwNzU1 LCAtLCBcCisJCS9iaW4vcHMpCitlbmRpZgoraWZkZWYgUFRYQ09ORl9QUk9DUFNfUFdEWAorCUAk KGNhbGwgaW5zdGFsbF9jb3B5LCBwcm9jcHMsIDAsIDAsIDA3NTUsIC0sIFwKKwkJL3Vzci9iaW4v cHdkeCkKIGVuZGlmCiBpZmRlZiBQVFhDT05GX1BST0NQU19TTEFCVE9QCiAJQCQoY2FsbCBpbnN0 YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1NSwgLSwgXApAQCAtODIsMjEgKzEwOCwyOSBAQCBl bmRpZgogaWZkZWYgUFRYQ09ORl9QUk9DUFNfU1lTQ1RMCiAJQCQoY2FsbCBpbnN0YWxsX2NvcHks IHByb2NwcywgMCwgMCwgMDc1NSwgLSwgXAogCQkvc2Jpbi9zeXNjdGwpCi0KIAlAJChjYWxsIGlu c3RhbGxfYWx0ZXJuYXRpdmUsIHByb2NwcywgMCwgMCwgMDY0NCwgL2V0Yy9zeXNjdGwuY29uZiwg bikKIGVuZGlmCi1pZmRlZiBQVFhDT05GX1BST0NQU19QUworaWZkZWYgUFRYQ09ORl9QUk9DUFNf VE9QCiAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1NSwgLSwgXAotCQkv YmluL3BzKQorCQkvdXNyL2Jpbi90b3ApCitlbmRpZgoraWZkZWYgUFRYQ09ORl9QUk9DUFNfVVBU SU1FCisJQCQoY2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1NSwgLSwgXAorCQkv dXNyL2Jpbi91cHRpbWUpCitlbmRpZgoraWZkZWYgUFRYQ09ORl9QUk9DUFNfVk1TVEFUCisJQCQo Y2FsbCBpbnN0YWxsX2NvcHksIHByb2NwcywgMCwgMCwgMDc1NSwgLSwgXAorCQkvdXNyL2Jpbi92 bXN0YXQpCiBlbmRpZgogaWZkZWYgUFRYQ09ORl9QUk9DUFNfVwogCUAkKGNhbGwgaW5zdGFsbF9j b3B5LCBwcm9jcHMsIDAsIDAsIDA3NTUsIC0sIFwKIAkJL3Vzci9iaW4vdykKIGVuZGlmCi1pZmRl ZiBQVFhDT05GX1BST0NQU19QR1JFUAoraWZkZWYgUFRYQ09ORl9QUk9DUFNfV0FUQ0gKIAlAJChj YWxsIGluc3RhbGxfY29weSwgcHJvY3BzLCAwLCAwLCAwNzU1LCAtLCBcCi0JCS91c3IvYmluL3Bn cmVwKQorCQkvdXNyL2Jpbi93YXRjaCkKIGVuZGlmCisKIAlAJChjYWxsIGluc3RhbGxfZmluaXNo LCBwcm9jcHMpCiAKIAlAJChjYWxsIHRvdWNoKQotLSAKMi40LjUKCgotLSAKcHR4ZGlzdCBtYWls aW5nIGxpc3QKcHR4ZGlzdEBwZW5ndXRyb25peC5kZQo=