From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Yaakov Selkowitz To: git-commits@fedoraproject.org Subject: [rpms/vlc] epel9-next: 3.0.22-rc1 Date: Mon, 20 Jul 2026 18:06:11 GMT Message-ID: <178457077101.1.7244551932885675592.rpms-vlc-95099bfd1615@fedoraproject.org> List-ID: X-Git-Repo: rpms/vlc X-Git-Branch: epel9-next X-Git-Rev: 95099bfd16150a2f1b22a86d666ff35605c6399c QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvdmxjCkJyYW5jaCA6 IGVwZWw5LW5leHQKQ29tbWl0IDogOTUwOTliZmQxNjE1MGEyZjFiMjJhODZkNjY2ZmYzNTYwNWM2 Mzk5YwpBdXRob3IgOiBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aUByZWRoYXQuY29tPgpEYXRl ICAgOiAyMDI1LTEyLTAyVDE4OjIyOjEyLTA1OjAwClN0YXRzICA6ICsyNC8tMjc3NyBpbiAxMCBm aWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvdmxjL2Mv OTUwOTliZmQxNjE1MGEyZjFiMjJhODZkNjY2ZmYzNTYwNWM2Mzk5Yz9icmFuY2g9ZXBlbDktbmV4 dAoKTG9nOgozLjAuMjItcmMxCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdu b3JlCmluZGV4IDY3ZWQyZDguLjhjZTNiZTYgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKLS92bGMtMy4wLjIwLnRhci54egotL3ZsYy0zLjAu MjEudGFyLnh6CisvdmxjLSoudGFyLmJ6MgorL3ZsYy0qLnRhci54egoKZGlmZiAtLWdpdCBhLzU1 NzQucGF0Y2ggYi81NTc0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGFj NzRhLi4wMDAwMDAwCi0tLSBhLzU1NzQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NzUgKzAs MCBAQAotRnJvbSA4MWQ2ZDU2ZGY2ZTVhNjZlZDk5OTcwZTJjNTU5NTM5ODU4ZjRhMGI3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP1I9QzM9QTltaT0yMERlbmlzLUNv dXJtb250Pz0gPHJlbWlAcmVtbGFiLm5ldD4KLURhdGU6IFNhdCwgNSBNYXkgMjAxOCAxNToyODox NSArMDMwMAotU3ViamVjdDogW1BBVENIIDAxLzExXSBhdmNvZGVjOiBhdm9pZCBzaWduZWRuZXNz IG1pc21hdGNoIHdhcm5pbmcKLQotQml0bWFzayBzaG91bGQgYmUgdW5zaWduZWQsIGJ1dCBmZm1w ZWcgc2VlbXMgY29uZnVzZWQgd2l0aCBpdHNlbGYuCi0KLShjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IDg1NDQyMzNlN2ZkZTI5NjU0MzVlMzJhNDQ1NDk0ODk4NDQwZWNjMzApCi0tLS0KLSBtb2R1 bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvYXVkaW8uYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCA1 MGE3NmM3YTE4ZS4uZTVhZjBjYTVmMmYgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29k ZWMvYXVkaW8uYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC01OTMs OSArNTkzLDkgQEAgc3RhdGljIHZvaWQgU2V0dXBPdXRwdXRGb3JtYXQoIGRlY29kZXJfdCAqcF9k ZWMsIGJvb2wgYl90cnVzdCApCi0gICAgIHVpbnQzMl90IHBpX29yZGVyX3NyY1tpX29yZGVyX21h eF07Ci0gCi0gICAgIGludCBpX2NoYW5uZWxzX3NyYyA9IDA7Ci0tICAgIGludDY0X3QgY2hhbm5l bF9sYXlvdXQgPQotKyAgICB1aW50NjRfdCBjaGFubmVsX2xheW91dCA9Ci0gICAgICAgICBwX3N5 cy0+cF9jb250ZXh0LT5jaGFubmVsX2xheW91dCA/IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxf bGF5b3V0IDoKLS0gICAgICAgIGF2X2dldF9kZWZhdWx0X2NoYW5uZWxfbGF5b3V0KCBwX3N5cy0+ cF9jb250ZXh0LT5jaGFubmVscyApOwotKyAgICAgICAgKHVpbnQ2NF90KWF2X2dldF9kZWZhdWx0 X2NoYW5uZWxfbGF5b3V0KCBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVscyApOwotIAotICAgICBp ZiggY2hhbm5lbF9sYXlvdXQgKQotICAgICB7Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gYzc3MDll N2EwNDhlYjY5YjY1NmQ3Zjk2NjNkZWJiYzFkZGUxZjU5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IElsa2thIE9sbGFra2EgPGlsZW9vQHZpZGVvbGFuLm9yZz4KLURhdGU6IFdlZCwg NSBKdWwgMjAyMyAxMjo1MTozNCArMDMwMAotU3ViamVjdDogW1BBVENIIDAyLzExXSBhdmNvZGVj OiB1c2UgcF9kZWMtPmZtdF9vdXQgaW5zdGVhZCBvZiBjb250ZXh0IGNoYW5uZWxzCi0gb24gYXVk aW8gY2hhbm5lbC1jb3VudAotCi1yZWR1Y2VzIHRoZSBuZWVkIG9mIGlmZGVmcyB3aGVuIGFkZGlu ZyBjaF9sYXlvdXQgc3VwcG9ydAotCi0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiZGRmNWJh MTkxMTFkMWNjNDQ2M2Q5ODc2YzRiYzRiYTc1ZjgyZDdmKQotLS0tCi0gbW9kdWxlcy9jb2RlYy9h dmNvZGVjL2F1ZGlvLmMgfCAxNCArKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvYXVkaW8uYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCBl NWFmMGNhNWYyZi4uMjYxNjZjMDg0ZTUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29k ZWMvYXVkaW8uYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC00ODQs MTUgKzQ4NCwxNSBAQCBzdGF0aWMgYmxvY2tfdCAqIENvbnZlcnRBVkZyYW1lKCBkZWNvZGVyX3Qg KnBfZGVjLCBBVkZyYW1lICpmcmFtZSApCi0gICAgIC8qIEludGVybGVhdmUgYXVkaW8gaWYgcmVx dWlyZWQgKi8KLSAgICAgaWYoIGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKCBjdHgtPnNhbXBsZV9m bXQgKSApCi0gICAgIHsKLS0gICAgICAgIHBfYmxvY2sgPSBibG9ja19BbGxvYyhmcmFtZS0+bGlu ZXNpemVbMF0gKiBjdHgtPmNoYW5uZWxzKTsKLSsgICAgICAgIHBfYmxvY2sgPSBibG9ja19BbGxv YyhmcmFtZS0+bGluZXNpemVbMF0gKiBwX2RlYy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzICk7 Ci0gICAgICAgICBpZiAoIGxpa2VseShwX2Jsb2NrKSApCi0gICAgICAgICB7Ci0tICAgICAgICAg ICAgY29uc3Qgdm9pZCAqcGxhbmVzW2N0eC0+Y2hhbm5lbHNdOwotLSAgICAgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgY3R4LT5jaGFubmVsczsgaSsrKQotKyAgICAgICAgICAgIGNvbnN0IHZv aWQgKnBsYW5lc1twX2RlYy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzXTsKLSsgICAgICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IHBfZGVjLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHM7IGkr KykKLSAgICAgICAgICAgICAgICAgcGxhbmVzW2ldID0gZnJhbWUtPmV4dGVuZGVkX2RhdGFbaV07 Ci0gCi0gICAgICAgICAgICAgYW91dF9JbnRlcmxlYXZlKHBfYmxvY2stPnBfYnVmZmVyLCBwbGFu ZXMsIGZyYW1lLT5uYl9zYW1wbGVzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgt PmNoYW5uZWxzLCBwX2RlYy0+Zm10X291dC5hdWRpby5pX2Zvcm1hdCk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBfZGVjLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHMsIHBfZGVjLT5m bXRfb3V0LmF1ZGlvLmlfZm9ybWF0KTsKLSAgICAgICAgICAgICBwX2Jsb2NrLT5pX25iX3NhbXBs ZXMgPSBmcmFtZS0+bmJfc2FtcGxlczsKLSAgICAgICAgIH0KLSAgICAgICAgIGF2X2ZyYW1lX2Zy ZWUoJmZyYW1lKTsKLUBAIC01MTEsNyArNTExLDcgQEAgc3RhdGljIGJsb2NrX3QgKiBDb252ZXJ0 QVZGcmFtZSggZGVjb2Rlcl90ICpwX2RlYywgQVZGcmFtZSAqZnJhbWUgKQotICAgICAgICAgewot ICAgICAgICAgICAgIGFvdXRfQ2hhbm5lbEV4dHJhY3QoIHBfYnVmZmVyLT5wX2J1ZmZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwX2RlYy0+Zm10X291dC5hdWRpby5pX2No YW5uZWxzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBfYmxvY2stPnBfYnVm ZmVyLCBjdHgtPmNoYW5uZWxzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBf YmxvY2stPnBfYnVmZmVyLCBwX2RlYy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBfYmxvY2stPmlfbmJfc2FtcGxlcywgcF9zeXMt PnBpX2V4dHJhY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9kZWMt PmZtdF9vdXQuYXVkaW8uaV9iaXRzcGVyc2FtcGxlICk7Ci0gICAgICAgICAgICAgcF9idWZmZXIt PmlfbmJfc2FtcGxlcyA9IHBfYmxvY2stPmlfbmJfc2FtcGxlczsKLUBAIC02MDAsMTMgKzYwMCwx MyBAQCBzdGF0aWMgdm9pZCBTZXR1cE91dHB1dEZvcm1hdCggZGVjb2Rlcl90ICpwX2RlYywgYm9v bCBiX3RydXN0ICkKLSAgICAgaWYoIGNoYW5uZWxfbGF5b3V0ICkKLSAgICAgewotICAgICAgICAg Zm9yKCB1bnNpZ25lZCBpID0gMDsgaSA8IGlfb3JkZXJfbWF4Ci0tICAgICAgICAgJiYgaV9jaGFu bmVsc19zcmMgPCBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVsczsgaSsrICkKLSsgICAgICAgICAm JiBpX2NoYW5uZWxzX3NyYyA8IHBfZGVjLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHM7IGkrKyAp Ci0gICAgICAgICB7Ci0gICAgICAgICAgICAgaWYoIGNoYW5uZWxfbGF5b3V0ICYgcGlfY2hhbm5l bHNfbWFwW2ldWzBdICkKLSAgICAgICAgICAgICAgICAgcGlfb3JkZXJfc3JjW2lfY2hhbm5lbHNf c3JjKytdID0gcGlfY2hhbm5lbHNfbWFwW2ldWzFdOwotICAgICAgICAgfQotIAotLSAgICAgICAg aWYoIGlfY2hhbm5lbHNfc3JjICE9IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxzICYmIGJfdHJ1 c3QgKQotKyAgICAgICAgaWYoIGlfY2hhbm5lbHNfc3JjICE9IHBfZGVjLT5mbXRfb3V0LmF1ZGlv LmlfY2hhbm5lbHMgJiYgYl90cnVzdCApCi0gICAgICAgICAgICAgbXNnX0VyciggcF9kZWMsICJD aGFubmVsIGxheW91dCBub3QgdW5kZXJzdG9vZCIgKTsKLSAKLSAgICAgICAgIC8qIERldGVjdCBz cGVjaWFsIGR1YWwgbW9ubyBjYXNlICovCi0tLSAKLUdpdExhYgotCi0KLUZyb20gOTliMTQ5NjYx ODI5OTUzMTRmNWIyOWZkOTcyZDZhOTAwMGVhM2UwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IElsa2thIE9sbGFra2EgPGlsZW9vQHZpZGVvbGFuLm9yZz4KLURhdGU6IFdlZCwgNSBK dWwgMjAyMyAxMzozMzowOSArMDMwMAotU3ViamVjdDogW1BBVENIIDAzLzExXSBhdmNvZGVjOiBh dWRpbyBkZWNvZGVyIHRvIHVzZSBjaF9sYXlvdXQKLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgNDk2ZjBmMmE2NTljMTMzOWQxZTM3MzMwZDQ0NmU5YjZjZTk2ZTc2YikKLS0tLQotIG1vZHVs ZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jIGIvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLWluZGV4IDI2MTY2YzA4NGU1Li5hZDhhNDBhYjRlZCAx MDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi0rKysgYi9tb2R1bGVz L2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotQEAgLTEzOSw3ICsxMzksMTEgQEAgc3RhdGljIGludCBP cGVuQXVkaW9Db2RlYyggZGVjb2Rlcl90ICpwX2RlYyApCi0gICAgIH0KLSAKLSAgICAgY3R4LT5z YW1wbGVfcmF0ZSA9IHBfZGVjLT5mbXRfaW4uYXVkaW8uaV9yYXRlOwotKyNpZiBMSUJBVkNPREVD X1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotKyAgICBhdl9jaGFubmVsX2xh eW91dF9kZWZhdWx0KCAmY3R4LT5jaF9sYXlvdXQsIHBfZGVjLT5mbXRfaW4uYXVkaW8uaV9jaGFu bmVscyApOwotKyNlbHNlCi0gICAgIGN0eC0+Y2hhbm5lbHMgPSBwX2RlYy0+Zm10X2luLmF1ZGlv LmlfY2hhbm5lbHM7Ci0rI2VuZGlmCi0gICAgIGN0eC0+YmxvY2tfYWxpZ24gPSBwX2RlYy0+Zm10 X2luLmF1ZGlvLmlfYmxvY2thbGlnbjsKLSAgICAgY3R4LT5iaXRfcmF0ZSA9IHBfZGVjLT5mbXRf aW4uaV9iaXRyYXRlOwotICAgICBjdHgtPmJpdHNfcGVyX2NvZGVkX3NhbXBsZSA9IHBfZGVjLT5m bXRfaW4uYXVkaW8uaV9iaXRzcGVyc2FtcGxlOwotQEAgLTM5NSwxMiArMzk5LDE3IEBAIHN0YXRp YyBpbnQgRGVjb2RlQmxvY2soIGRlY29kZXJfdCAqcF9kZWMsIGJsb2NrX3QgKipwcF9ibG9jayAp Ci0gICAgICAgICByZXQgPSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoIGN0eCwgZnJhbWUgKTsKLSAg ICAgICAgIGlmKCByZXQgPT0gMCApCi0gICAgICAgICB7Ci0rI2lmIExJQkFWQ09ERUNfVkVSU0lP Tl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAxMDApCi0rICAgICAgICAgICAgaW50IGNoYW5uZWxz ID0gZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVsczsKLSsjZWxzZQotKyAgICAgICAgICAgIGlu dCBjaGFubmVscyA9IGN0eC0+Y2hhbm5lbHM7Ci0rI2VuZGlmCi0gICAgICAgICAgICAgLyogY2hl Y2tzIGFuZCBpbml0IGZyb20gZmlyc3QgZGVjb2RlZCBmcmFtZSAqLwotLSAgICAgICAgICAgIGlm KCBjdHgtPmNoYW5uZWxzIDw9IDAgfHwgY3R4LT5jaGFubmVscyA+IElOUFVUX0NIQU5fTUFYCi0r ICAgICAgICAgICAgaWYoIGNoYW5uZWxzIDw9IDAgfHwgY2hhbm5lbHMgPiBJTlBVVF9DSEFOX01B WAotICAgICAgICAgICAgICB8fCBjdHgtPnNhbXBsZV9yYXRlIDw9IDAgKQotICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICAgbXNnX1dhcm4oIHBfZGVjLCAiaW52YWxpZCBhdWRpbyBwcm9w ZXJ0aWVzIGNoYW5uZWxzIGNvdW50ICVkLCBzYW1wbGUgcmF0ZSAlZCIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICBjdHgtPmNoYW5uZWxzLCBjdHgtPnNhbXBsZV9yYXRlICk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFubmVscywgY3R4LT5zYW1wbGVfcmF0ZSApOwotICAgICAg ICAgICAgICAgICBnb3RvIGRyb3A7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGVsc2Ug aWYoIHBfZGVjLT5mbXRfb3V0LmF1ZGlvLmlfcmF0ZSAhPSAodW5zaWduZWQgaW50KWN0eC0+c2Ft cGxlX3JhdGUgKQotQEAgLTU4MCw2ICs1ODksMTYgQEAgc3RhdGljIHZvaWQgU2V0dXBPdXRwdXRG b3JtYXQoIGRlY29kZXJfdCAqcF9kZWMsIGJvb2wgYl90cnVzdCApCi0gICAgIHBfZGVjLT5mbXRf b3V0LmF1ZGlvLmlfcmF0ZSA9IHBfc3lzLT5wX2NvbnRleHQtPnNhbXBsZV9yYXRlOwotIAotICAg ICAvKiAqLwotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwg MTAwKQotKyAgICBpZiggcF9zeXMtPmlfcHJldmlvdXNfY2hhbm5lbHMgPT0gcF9zeXMtPnBfY29u dGV4dC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzICYmCi0rICAgICAgICBwX3N5cy0+aV9wcmV2aW91 c19sYXlvdXQgPT0gcF9zeXMtPnBfY29udGV4dC0+Y2hfbGF5b3V0LnUubWFzayApCi0rICAgICAg ICByZXR1cm47Ci0rICAgIGlmKCBiX3RydXN0ICkKLSsgICAgewotKyAgICAgICAgcF9zeXMtPmlf cHJldmlvdXNfY2hhbm5lbHMgPSBwX3N5cy0+cF9jb250ZXh0LT5jaF9sYXlvdXQubmJfY2hhbm5l bHM7Ci0rICAgICAgICBwX3N5cy0+aV9wcmV2aW91c19sYXlvdXQgPSBwX3N5cy0+cF9jb250ZXh0 LT5jaF9sYXlvdXQudS5tYXNrOwotKyAgICB9Ci0rI2Vsc2UKLSAgICAgaWYoIHBfc3lzLT5pX3By ZXZpb3VzX2NoYW5uZWxzID09IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxzICYmCi0gICAgICAg ICBwX3N5cy0+aV9wcmV2aW91c19sYXlvdXQgPT0gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbF9s YXlvdXQgKQotICAgICAgICAgcmV0dXJuOwotQEAgLTU4OCwyNSArNjA3LDMyIEBAIHN0YXRpYyB2 b2lkIFNldHVwT3V0cHV0Rm9ybWF0KCBkZWNvZGVyX3QgKnBfZGVjLCBib29sIGJfdHJ1c3QgKQot ICAgICAgICAgcF9zeXMtPmlfcHJldmlvdXNfY2hhbm5lbHMgPSBwX3N5cy0+cF9jb250ZXh0LT5j aGFubmVsczsKLSAgICAgICAgIHBfc3lzLT5pX3ByZXZpb3VzX2xheW91dCA9IHBfc3lzLT5wX2Nv bnRleHQtPmNoYW5uZWxfbGF5b3V0OwotICAgICB9Ci0rI2VuZGlmCi0gCi0gICAgIGNvbnN0IHVu c2lnbmVkIGlfb3JkZXJfbWF4ID0gc2l6ZW9mKHBpX2NoYW5uZWxzX21hcCkvc2l6ZW9mKCpwaV9j aGFubmVsc19tYXApOwotICAgICB1aW50MzJfdCBwaV9vcmRlcl9zcmNbaV9vcmRlcl9tYXhdOwot IAotICAgICBpbnQgaV9jaGFubmVsc19zcmMgPSAwOwotLSAgICB1aW50NjRfdCBjaGFubmVsX2xh eW91dCA9Ci0rI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAx MDApCi0rICAgIHVpbnQ2NF90IGNoYW5uZWxfbGF5b3V0X21hc2sgPSBwX3N5cy0+cF9jb250ZXh0 LT5jaF9sYXlvdXQudS5tYXNrOwotKyAgICBpbnQgY2hhbm5lbF9jb3VudCA9IHBfc3lzLT5wX2Nv bnRleHQtPmNoX2xheW91dC5uYl9jaGFubmVsczsKLSsjZWxzZQotKyAgICB1aW50NjRfdCBjaGFu bmVsX2xheW91dF9tYXNrID0KLSAgICAgICAgIHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxfbGF5 b3V0ID8gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbF9sYXlvdXQgOgotICAgICAgICAgKHVpbnQ2 NF90KWF2X2dldF9kZWZhdWx0X2NoYW5uZWxfbGF5b3V0KCBwX3N5cy0+cF9jb250ZXh0LT5jaGFu bmVscyApOwotKyAgICBpbnQgY2hhbm5lbF9jb3VudCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5u ZWxzOwotKyNlbmRpZgotIAotLSAgICBpZiggY2hhbm5lbF9sYXlvdXQgKQotKyAgICBpZiggY2hh bm5lbF9sYXlvdXRfbWFzayApCi0gICAgIHsKLSAgICAgICAgIGZvciggdW5zaWduZWQgaSA9IDA7 IGkgPCBpX29yZGVyX21heAotLSAgICAgICAgICYmIGlfY2hhbm5lbHNfc3JjIDwgcF9kZWMtPmZt dF9vdXQuYXVkaW8uaV9jaGFubmVsczsgaSsrICkKLSsgICAgICAgICAmJiBpX2NoYW5uZWxzX3Ny YyA8IGNoYW5uZWxfY291bnQ7IGkrKyApCi0gICAgICAgICB7Ci0tICAgICAgICAgICAgaWYoIGNo YW5uZWxfbGF5b3V0ICYgcGlfY2hhbm5lbHNfbWFwW2ldWzBdICkKLSsgICAgICAgICAgICBpZigg Y2hhbm5lbF9sYXlvdXRfbWFzayAmIHBpX2NoYW5uZWxzX21hcFtpXVswXSApCi0gICAgICAgICAg ICAgICAgIHBpX29yZGVyX3NyY1tpX2NoYW5uZWxzX3NyYysrXSA9IHBpX2NoYW5uZWxzX21hcFtp XVsxXTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIGlmKCBpX2NoYW5uZWxzX3NyYyAhPSBwX2Rl Yy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzICYmIGJfdHJ1c3QgKQotKyAgICAgICAgaWYoIGlf Y2hhbm5lbHNfc3JjICE9IGNoYW5uZWxfY291bnQgJiYgYl90cnVzdCApCi0gICAgICAgICAgICAg bXNnX0VyciggcF9kZWMsICJDaGFubmVsIGxheW91dCBub3QgdW5kZXJzdG9vZCIgKTsKLSAKLSAg ICAgICAgIC8qIERldGVjdCBzcGVjaWFsIGR1YWwgbW9ubyBjYXNlICovCi1AQCAtNjM4LDcgKzY2 NCw3IEBAIHN0YXRpYyB2b2lkIFNldHVwT3V0cHV0Rm9ybWF0KCBkZWNvZGVyX3QgKnBfZGVjLCBi b29sIGJfdHJ1c3QgKQotICAgICB7Ci0gICAgICAgICBtc2dfV2FybiggcF9kZWMsICJubyBjaGFu bmVsIGxheW91dCBmb3VuZCIpOwotICAgICAgICAgcF9kZWMtPmZtdF9vdXQuYXVkaW8uaV9waHlz aWNhbF9jaGFubmVscyA9IDA7Ci0tICAgICAgICBwX2RlYy0+Zm10X291dC5hdWRpby5pX2NoYW5u ZWxzID0gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbHM7Ci0rICAgICAgICBwX2RlYy0+Zm10X291 dC5hdWRpby5pX2NoYW5uZWxzID0gY2hhbm5lbF9jb3VudDsKLSAgICAgfQotIAotICAgICBhb3V0 X0Zvcm1hdFByZXBhcmUoICZwX2RlYy0+Zm10X291dC5hdWRpbyApOwotLS0gCi1HaXRMYWIKLQot Ci1Gcm9tIGM0NGVkYjg1ZTRmMjVjYmM3YTg0ODIxMWQyZDNjYTlmMDNiZDQ2ZTYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJbGtrYSBPbGxha2thIDxpbGVvb0B2aWRlb2xhbi5vcmc+ Ci1EYXRlOiBUdWUsIDQgSnVsIDIwMjMgMTY6NTI6MzggKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCAw NC8xMV0gYXZjb2RlYzogdXNlIHBfZW5jIGF1ZGlvIGNoYW5uZWxzIGluc3RlYWQgb2YgY29udGV4 dAotIGNoYW5uZWxzIGluIGVuY29kZXIKLQotQWxsb3dzIHRvIGhhdmUgbGVzcyBjb25kaXRpb25z IGluIGNvZGUgd2hlbiBhZGRpbmcgbmV3IGNoX2xheW91dCB1c2UKLQotKGNoZXJyeS1waWNrZWQg ZnJvbSBjb21taXQgMjk3NDdhOGFiYjk4YmE1M2E2NGFhNjc2MTk4Mzg5MWVlZWQyZTBlNCkKLS0t LQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMgfCAyNCArKysrKysrKysrKystLS0t LS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jIGIvbW9k dWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYwotaW5kZXggNDkxOWNjZjBlMGUuLjUyODQ4ZGUw NjU4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYwotKysrIGIv bW9kdWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYwotQEAgLTc5MCw3ICs3OTAsNyBAQCBpbnQg SW5pdFZpZGVvRW5jKCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiggaV9jaGFubmVsc19zcmMg IT0gcF9jb250ZXh0LT5jaGFubmVscyApCi0rICAgICAgICBpZiggaV9jaGFubmVsc19zcmMgIT0g cF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscyApCi0gICAgICAgICAgICAgbXNnX0Vycigg cF9lbmMsICJDaGFubmVsIGxheW91dCBub3QgdW5kZXJzdG9vZCIgKTsKLSAKLSAgICAgICAgIHBf c3lzLT5pX2NoYW5uZWxzX3RvX3Jlb3JkZXIgPQotQEAgLTg5Nyw3ICs4OTcsNyBAQCBpbnQgSW5p dFZpZGVvRW5jKCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAgIGlmKCByZXQgKQotICAgICB7 Ci0gICAgICAgICBpZiggcF9lbmMtPmZtdF9pbi5pX2NhdCAhPSBBVURJT19FUyB8fAotLSAgICAg ICAgICAgICAgICAocF9jb250ZXh0LT5jaGFubmVscyA8PSAyICYmIGlfY29kZWNfaWQgIT0gQVZf Q09ERUNfSURfTVAyCi0rICAgICAgICAgICAgICAgIChwX2VuYy0+Zm10X291dC5hdWRpby5pX2No YW5uZWxzIDw9IDIgJiYgaV9jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9NUDIKLSAgICAgICAgICAg ICAgICAgICYmIGlfY29kZWNfaWQgIT0gQVZfQ09ERUNfSURfTVAzKSApCi0gZXJybXNnOgotICAg ICAgICAgewotQEAgLTkyMiw3ICs5MjIsNyBAQCBlcnJtc2c6Ci0gICAgICAgICAgICAgZ290byBl cnJvcjsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIGlmKCBwX2NvbnRleHQtPmNoYW5uZWxzID4g MiApCi0rICAgICAgICBpZiggcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscyA+IDIgKQot ICAgICAgICAgewotICAgICAgICAgICAgIHBfY29udGV4dC0+Y2hhbm5lbHMgPSAyOwotICAgICAg ICAgICAgIHBfY29udGV4dC0+Y2hhbm5lbF9sYXlvdXQgPSBjaGFubmVsX21hc2tbcF9jb250ZXh0 LT5jaGFubmVsc11bMV07Ci1AQCAtMTAyOCw3ICsxMDI4LDcgQEAgZXJybXNnOgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBfY29udGV4dC0+ZnJhbWVfc2l6ZSA6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfSU5QVVRfQlVGRkVSX01JTl9TSVpF OwotICAgICAgICAgcF9zeXMtPmlfYnVmZmVyX291dCA9IGF2X3NhbXBsZXNfZ2V0X2J1ZmZlcl9z aXplKE5VTEwsCi0tICAgICAgICAgICAgICAgIHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxzLCBw X3N5cy0+aV9mcmFtZV9zaXplLAotKyAgICAgICAgICAgICAgICBwX2VuYy0+Zm10X291dC5hdWRp by5pX2NoYW5uZWxzLCBwX3N5cy0+aV9mcmFtZV9zaXplLAotICAgICAgICAgICAgICAgICBwX3N5 cy0+cF9jb250ZXh0LT5zYW1wbGVfZm10LCBERUZBVUxUX0FMSUdOKTsKLSAgICAgICAgIHBfc3lz LT5wX2J1ZmZlciA9IGF2X21hbGxvYyggcF9zeXMtPmlfYnVmZmVyX291dCApOwotICAgICAgICAg aWYgKCB1bmxpa2VseSggcF9zeXMtPnBfYnVmZmVyID09IE5VTEwgKSApCi1AQCAtMTI3OCw3ICsx Mjc4LDcgQEAgc3RhdGljIGJsb2NrX3QgKmhhbmRsZV9kZWxheV9idWZmZXIoIGVuY29kZXJfdCAq cF9lbmMsIGVuY29kZXJfc3lzX3QgKnBfc3lzLCB1bnMKLSB7Ci0gICAgIGJsb2NrX3QgKnBfYmxv Y2sgPSBOVUxMOwotICAgICAvL0hvdyBtdWNoIHdlIG5lZWQgdG8gY29weSBmcm9tIG5ldyBwYWNr ZXQKLS0gICAgY29uc3Qgc2l6ZV90IGxlZnRvdmVyID0gbGVmdG92ZXJfc2FtcGxlcyAqIHBfc3lz LT5wX2NvbnRleHQtPmNoYW5uZWxzICogcF9zeXMtPmlfc2FtcGxlX2J5dGVzOwotKyAgICBjb25z dCBzaXplX3QgbGVmdG92ZXIgPSBsZWZ0b3Zlcl9zYW1wbGVzICogcF9lbmMtPmZtdF9vdXQuYXVk aW8uaV9jaGFubmVscyAqIHBfc3lzLT5pX3NhbXBsZV9ieXRlczsKLSAKLSAgICAgYXZfZnJhbWVf dW5yZWYoIHBfc3lzLT5mcmFtZSApOwotICAgICBwX3N5cy0+ZnJhbWUtPmZvcm1hdCAgICAgPSBw X3N5cy0+cF9jb250ZXh0LT5zYW1wbGVfZm10OwotQEAgLTEzMDEsNyArMTMwMSw3IEBAIHN0YXRp YyBibG9ja190ICpoYW5kbGVfZGVsYXlfYnVmZmVyKCBlbmNvZGVyX3QgKnBfZW5jLCBlbmNvZGVy X3N5c190ICpwX3N5cywgdW5zCi0gICAgICAgICAvLyBXZSBuZWVkIHRvIGRlaW50ZXJsZWF2ZSBm cm9tIHBfYW91dF9idWYgdG8gcF9idWZmZXIgdGhlIGxlZnRvdmVyIGJ5dGVzCi0gICAgICAgICBp ZiggcF9zeXMtPmJfcGxhbmFyICkKLSAgICAgICAgICAgICBhb3V0X0RlaW50ZXJsZWF2ZSggcF9z eXMtPnBfaW50ZXJsZWF2ZV9idWYsIHBfc3lzLT5wX2J1ZmZlciwKLS0gICAgICAgICAgICAgICAg cF9zeXMtPmlfZnJhbWVfc2l6ZSwgcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbHMsIHBfZW5jLT5m bXRfaW4uaV9jb2RlYyApOwotKyAgICAgICAgICAgICAgICBwX3N5cy0+aV9mcmFtZV9zaXplLCBw X2VuYy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzLCBwX2VuYy0+Zm10X2luLmlfY29kZWMgKTsK LSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICBtZW1jcHkoIHBfc3lzLT5wX2J1ZmZlciArIGJ1 ZmZlcl9kZWxheSwgcF9hb3V0X2J1Zi0+cF9idWZmZXIsIGxlZnRvdmVyKTsKLSAKLUBAIC0xMzE5 LDcgKzEzMTksNyBAQCBzdGF0aWMgYmxvY2tfdCAqaGFuZGxlX2RlbGF5X2J1ZmZlciggZW5jb2Rl cl90ICpwX2VuYywgZW5jb2Rlcl9zeXNfdCAqcF9zeXMsIHVucwotICAgICAgICAgbWVtc2V0KCBw X3N5cy0+cF9idWZmZXIgKyAobGVmdG92ZXIrYnVmZmVyX2RlbGF5KSwgMCwgcGFkZGluZ19zaXpl ICk7Ci0gICAgICAgICBidWZmZXJfZGVsYXkgKz0gcGFkZGluZ19zaXplOwotICAgICB9Ci0tICAg IGlmKCBhdmNvZGVjX2ZpbGxfYXVkaW9fZnJhbWUoIHBfc3lzLT5mcmFtZSwgcF9zeXMtPnBfY29u dGV4dC0+Y2hhbm5lbHMsCi0rICAgIGlmKCBhdmNvZGVjX2ZpbGxfYXVkaW9fZnJhbWUoIHBfc3lz LT5mcmFtZSwgcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscywKLSAgICAgICAgICAgICBw X3N5cy0+cF9jb250ZXh0LT5zYW1wbGVfZm10LCBwX3N5cy0+Yl9wbGFuYXIgPyBwX3N5cy0+cF9p bnRlcmxlYXZlX2J1ZiA6IHBfc3lzLT5wX2J1ZmZlciwKLSAgICAgICAgICAgICBwX3N5cy0+aV9i dWZmZXJfb3V0LAotICAgICAgICAgICAgIERFRkFVTFRfQUxJR04pIDwgMCApCi1AQCAtMTM0OSw3 ICsxMzQ5LDcgQEAgc3RhdGljIGJsb2NrX3QgKkVuY29kZUF1ZGlvKCBlbmNvZGVyX3QgKnBfZW5j LCBibG9ja190ICpwX2FvdXRfYnVmICkKLSAKLSAgICAgLy9pX2J5dGVzX2xlZnQgaXMgYW1vdW50 IG9mIGJ5dGVzIHdlIGdldAotICAgICBpX3NhbXBsZXNfbGVmdCA9IHBfYW91dF9idWYgPyBwX2Fv dXRfYnVmLT5pX25iX3NhbXBsZXMgOiAwOwotLSAgICBidWZmZXJfZGVsYXkgPSBwX3N5cy0+aV9z YW1wbGVzX2RlbGF5ICogcF9zeXMtPmlfc2FtcGxlX2J5dGVzICogcF9zeXMtPnBfY29udGV4dC0+ Y2hhbm5lbHM7Ci0rICAgIGJ1ZmZlcl9kZWxheSA9IHBfc3lzLT5pX3NhbXBsZXNfZGVsYXkgKiBw X3N5cy0+aV9zYW1wbGVfYnl0ZXMgKiBwX2VuYy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzOwot IAotICAgICAvL3Bfc3lzLT5pX2J1ZmZlcl9vdXQgPSBwX3N5cy0+aV9mcmFtZV9zaXplICogY2hh biAqIHBfc3lzLT5pX3NhbXBsZV9ieXRlcwotICAgICAvL0NhbGN1bGF0ZSBob3cgbWFueSBieXRl cyB3ZSB3b3VsZCBuZWVkIGZyb20gY3VycmVudCBidWZmZXIgdG8gZmlsbCBmcmFtZQotQEAgLTE0 MTgsMTIgKzE0MTgsMTIgQEAgc3RhdGljIGJsb2NrX3QgKkVuY29kZUF1ZGlvKCBlbmNvZGVyX3Qg KnBfZW5jLCBibG9ja190ICpwX2FvdXRfYnVmICkKLSAgICAgICAgIHBfc3lzLT5mcmFtZS0+Y2hh bm5lbHMgPSBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVsczsKLSAKLSAgICAgICAgIGNvbnN0IGlu dCBpbl9ieXRlcyA9IHBfc3lzLT5mcmFtZS0+bmJfc2FtcGxlcyAqCi0tICAgICAgICAgICAgcF9z eXMtPnBfY29udGV4dC0+Y2hhbm5lbHMgKiBwX3N5cy0+aV9zYW1wbGVfYnl0ZXM7Ci0rICAgICAg ICAgICAgcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscyogcF9zeXMtPmlfc2FtcGxlX2J5 dGVzOwotIAotICAgICAgICAgaWYoIHBfc3lzLT5iX3BsYW5hciApCi0gICAgICAgICB7Ci0gICAg ICAgICAgICAgYW91dF9EZWludGVybGVhdmUoIHBfc3lzLT5wX2J1ZmZlciwgcF9hb3V0X2J1Zi0+ cF9idWZmZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBfc3lzLT5mcmFtZS0+ bmJfc2FtcGxlcywgcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbHMsIHBfZW5jLT5mbXRfaW4uaV9j b2RlYyApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwX3N5cy0+ZnJhbWUtPm5i X3NhbXBsZXMsIHBfZW5jLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHMsIHBfZW5jLT5mbXRfaW4u aV9jb2RlYyApOwotIAotICAgICAgICAgfQotICAgICAgICAgZWxzZQotQEAgLTE0MzEsNyArMTQz MSw3IEBAIHN0YXRpYyBibG9ja190ICpFbmNvZGVBdWRpbyggZW5jb2Rlcl90ICpwX2VuYywgYmxv Y2tfdCAqcF9hb3V0X2J1ZiApCi0gICAgICAgICAgICAgbWVtY3B5KHBfc3lzLT5wX2J1ZmZlciwg cF9hb3V0X2J1Zi0+cF9idWZmZXIsIGluX2J5dGVzKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAg IGlmKCBhdmNvZGVjX2ZpbGxfYXVkaW9fZnJhbWUoIHBfc3lzLT5mcmFtZSwgcF9zeXMtPnBfY29u dGV4dC0+Y2hhbm5lbHMsCi0rICAgICAgICBpZiggYXZjb2RlY19maWxsX2F1ZGlvX2ZyYW1lKCBw X3N5cy0+ZnJhbWUsIHBfZW5jLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9zeXMtPnBfY29udGV4dC0+c2FtcGxlX2ZtdCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwX3N5cy0+cF9idWZmZXIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9zeXMtPmlfYnVmZmVyX291dCwK LUBAIC0xNDU3LDcgKzE0NTcsNyBAQCBzdGF0aWMgYmxvY2tfdCAqRW5jb2RlQXVkaW8oIGVuY29k ZXJfdCAqcF9lbmMsIGJsb2NrX3QgKnBfYW91dF9idWYgKQotICAgICBpZiggcF9hb3V0X2J1Zi0+ aV9uYl9zYW1wbGVzID4gMCApCi0gICAgIHsKLSAgICAgICAgbWVtY3B5KCBwX3N5cy0+cF9idWZm ZXIgKyBidWZmZXJfZGVsYXksIHBfYW91dF9idWYtPnBfYnVmZmVyLAotLSAgICAgICAgICAgICAg IHBfYW91dF9idWYtPmlfbmJfc2FtcGxlcyAqIHBfc3lzLT5pX3NhbXBsZV9ieXRlcyAqIHBfc3lz LT5wX2NvbnRleHQtPmNoYW5uZWxzKTsKLSsgICAgICAgICAgICAgICBwX2FvdXRfYnVmLT5pX25i X3NhbXBsZXMgKiBwX3N5cy0+aV9zYW1wbGVfYnl0ZXMgKiBwX2VuYy0+Zm10X291dC5hdWRpby5p X2NoYW5uZWxzKTsKLSAgICAgICAgcF9zeXMtPmlfc2FtcGxlc19kZWxheSArPSBwX2FvdXRfYnVm LT5pX25iX3NhbXBsZXM7Ci0gICAgIH0KLSAKLS0tIAotR2l0TGFiCi0KLQotRnJvbSBiOGFkODBh MjBlOWU4NDA4MmRhYzI4NDgwNzBkMjUxZmE2ODQxMmM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogPT9VVEYtOD9xP0ZyYW49QzM9QTdvaXM9MjBDYXJ0ZWduaWU/PSA8ZmN2bGNkZXZA ZnJlZS5mcj4KLURhdGU6IFR1ZSwgMjMgQXByIDIwMjQgMTM6MTM6MzAgKzA3MDAKLVN1YmplY3Q6 IFtQQVRDSCAwNS8xMV0gY29kZWM6IGF2Y29kZWM6IG1hcCBBWVVWIGFzIFJBV1ZJREVPIHdpdGgg ZmZtcGVnIDYuMAotCi0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5NTVlZjkzOTQ2N2E2Mjhl YjhkYTA4ZTBkNWVhZWZjOWEzNDg0Y2JhKQotLS0tCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2Zv dXJjYy5jIHwgNiArKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZm91cmNjLmMg Yi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZm91cmNjLmMKLWluZGV4IDMzYzZjYWUwOWFiLi45N2Yz MTg4MjExZCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9mb3VyY2MuYwotKysr IGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2ZvdXJjYy5jCi1AQCAtMTgyLDggKzE4MiwxMiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHZsY19hdmNvZGVjX2ZvdXJjYyB2aWRlb19jb2RlY3NbXSA9Ci0g ICAgIC8qIEFWX0NPREVDX0lEX1YyMTBYICovCi0gICAgIHsgVkxDX0NPREVDX1RNViwgQVZfQ09E RUNfSURfVE1WIH0sCi0gICAgIHsgVkxDX0NPREVDX1YyMTAsIEFWX0NPREVDX0lEX1YyMTAgfSwK LS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggNTQsIDUwLCAx MDAgKSAmJiBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gPj0gMTAwCi0rI2lmIExJQkFWQ09ERUNf VkVSU0lPTl9NSUNSTyA+PSAxMDAKLSsjIGlmIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgPj0gQVZf VkVSU0lPTl9JTlQoIDU5LCA0MiwgMTAyICkKLSsgICAgeyBWTENfQ09ERUNfVlVZQSwgQVZfQ09E RUNfSURfUkFXVklERU8gfSwKLSsjIGVsaWYgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCA+PSBBVl9W RVJTSU9OX0lOVCggNTQsIDUwLCAxMDAgKQotICAgICB7IFZMQ19DT0RFQ19WVVlBLCBBVl9DT0RF Q19JRF9BWVVWIH0sCi0rIyBlbmRpZgotICNlbmRpZgotICAgICAvKiBBVl9DT0RFQ19JRF9EUFgg Ki8KLSAgICAgeyBWTENfQ09ERUNfTUFELCBBVl9DT0RFQ19JRF9NQUQgfSwKLS0tIAotR2l0TGFi Ci0KLQotRnJvbSA1OGMwNTI0MGMyNmI2ZWVmNTZlN2M1YWIzNWIxNGNjZDgzNzc2NjdmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0ZyYW49QzM9QTdvaXM9MjBDYXJ0 ZWduaWU/PSA8ZmN2bGNkZXZAZnJlZS5mcj4KLURhdGU6IFRodSwgMTMgSnVuIDIwMjQgMTI6MjE6 NTggKzA3MDAKLVN1YmplY3Q6IFtQQVRDSCAwNi8xMV0gYXZjb2RlYzogZW5jb2RlcjogZml4IGNo YW5uZWxfbGF5b3V0IGNvbmRpdGlvbmFscwotCi0tLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMv ZW5jb2Rlci5jIHwgMTEgKysrKysrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVj L2VuY29kZXIuYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMKLWluZGV4IDUyODQ4 ZGUwNjU4Li42YmQ1OGY1MDcxZCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9l bmNvZGVyLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMKLUBAIC00Mywx MiArNDMsMTMgQEAKLSAjaW5jbHVkZSA8dmxjX2NwdS5oPgotIAotICNpbmNsdWRlIDxsaWJhdmNv ZGVjL2F2Y29kZWMuaD4KLS0jaW5jbHVkZSA8bGliYXZ1dGlsL2NoYW5uZWxfbGF5b3V0Lmg+Ci0g Ci0gI2luY2x1ZGUgImF2Y29kZWMuaCIKLSAjaW5jbHVkZSAiYXZjb21tb24uaCIKLSAKLS0jaWYg TElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soIDUyLDIsNiwwLDAgKQotKyNkZWZpbmUgQVBJX0NIQU5O RUxfTEFZT1VUIChMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggNTIsIDIsIDYsIDAsIDEwMCkpCi0r Ci0rI2lmIEFQSV9DSEFOTkVMX0xBWU9VVAotICMgaW5jbHVkZSA8bGliYXZ1dGlsL2NoYW5uZWxf bGF5b3V0Lmg+Ci0gI2VuZGlmCi0gCi1AQCAtMTU3LDYgKzE1OCw3IEBAIHN0cnVjdCBlbmNvZGVy X3N5c190Ci0gCi0gCi0gLyogVGFrZW4gZnJvbSBhdWRpby5jKi8KLSsjaWYgQVBJX0NIQU5ORUxf TEFZT1VUCi0gc3RhdGljIGNvbnN0IHVpbnQ2NF90IHBpX2NoYW5uZWxzX21hcFtdWzJdID0KLSB7 Ci0gICAgIHsgQVZfQ0hfRlJPTlRfTEVGVCwgICAgICAgIEFPVVRfQ0hBTl9MRUZUIH0sCi1AQCAt MTkzLDYgKzE5NSw3IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjaGFubmVsX21hc2tbXVsyXSA9 IHsKLSAgICAge0FPVVRfQ0hBTlNfN18xLCBBVl9DSF9MQVlPVVRfN1BPSU5UMX0sCi0gICAgIHtB T1VUX0NIQU5TXzhfMSwgQVZfQ0hfTEFZT1VUX09DVEFHT05BTH0sCi0gfTsKLSsjZW5kaWYKLSAK LSBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgcHBzel9lbmNfb3B0aW9uc1tdID0gewotICAgICAi a2V5aW50IiwgImJmcmFtZXMiLCAidnQiLCAicW1pbiIsICJxbWF4IiwgImNvZGVjIiwgImhxIiwK LUBAIC03NDYsNyArNzQ5LDcgQEAgaW50IEluaXRWaWRlb0VuYyggdmxjX29iamVjdF90ICpwX3Ro aXMgKQotICAgICAgICAgcF9jb250ZXh0LT50aW1lX2Jhc2UubnVtID0gMTsKLSAgICAgICAgIHBf Y29udGV4dC0+dGltZV9iYXNlLmRlbiA9IHBfY29udGV4dC0+c2FtcGxlX3JhdGU7Ci0gICAgICAg ICBwX2NvbnRleHQtPmNoYW5uZWxzICAgICAgPSBwX2VuYy0+Zm10X291dC5hdWRpby5pX2NoYW5u ZWxzOwotLSNpZiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggNTIsIDIsIDYsIDAsIDApCi0rI2lm IEFQSV9DSEFOTkVMX0xBWU9VVAotICAgICAgICAgcF9jb250ZXh0LT5jaGFubmVsX2xheW91dCA9 IGNoYW5uZWxfbWFza1twX2NvbnRleHQtPmNoYW5uZWxzXVsxXTsKLSAKLSAgICAgICAgIC8qIFNl dHVwIENoYW5uZWwgb3JkZXJpbmcgZm9yIG11bHRpY2hhbm5lbCBhdWRpbwotQEAgLTkyNSw3ICs5 MjgsOSBAQCBlcnJtc2c6Ci0gICAgICAgICBpZiggcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFu bmVscyA+IDIgKQotICAgICAgICAgewotICAgICAgICAgICAgIHBfY29udGV4dC0+Y2hhbm5lbHMg PSAyOwotKyNpZiBBUElfQ0hBTk5FTF9MQVlPVVQKLSAgICAgICAgICAgICBwX2NvbnRleHQtPmNo YW5uZWxfbGF5b3V0ID0gY2hhbm5lbF9tYXNrW3BfY29udGV4dC0+Y2hhbm5lbHNdWzFdOwotKyNl bmRpZgotIAotICAgICAgICAgICAgIC8qIENoYW5nZSBmbXRfaW4gaW4gb3JkZXIgdG8gYXNrIGZv ciBhIGNoYW5uZWxzIGNvbnZlcnNpb24gKi8KLSAgICAgICAgICAgICBwX2VuYy0+Zm10X2luLmF1 ZGlvLmlfY2hhbm5lbHMgPQotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIDNkYjZlNjc3NjgwYTFhOTRl NDczZmU5ZDlmYzEyMWFmMzRjZGNmMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9 P1VURi04P3E/RnJhbj1DMz1BN29pcz0yMENhcnRlZ25pZT89IDxmY3ZsY2RldkBmcmVlLmZyPgot RGF0ZTogU2F0LCAxNyBBdWcgMjAyNCAxMToyMjozMyArMDcwMAotU3ViamVjdDogW1BBVENIIDA3 LzExXSBjb2RlYzogYXZjb2RlYzogZml4IGF1ZGlvIGNoYW5uZWxfbGF5b3V0IGNvbmRpdGlvbmFs cwotCi0tLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyB8IDIzICsrKysrKysrKysr KysrKy0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyBiL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCBhZDhhNDBhYjRlZC4uYzc0NzU3Yzc2 YWUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotKysrIGIvbW9k dWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC00MSw4ICs0MSwxMSBAQAotICNpbmNsdWRl IDxsaWJhdmNvZGVjL2F2Y29kZWMuaD4KLSAjaW5jbHVkZSA8bGliYXZ1dGlsL21lbS5oPgotIAot LSNpbmNsdWRlIDxsaWJhdnV0aWwvY2hhbm5lbF9sYXlvdXQuaD4KLSsjZGVmaW5lIEFQSV9DSEFO TkVMX0xBWU9VVCAoTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soIDUyLCAyLCA2LCAwLCAxMDApKQot IAotKyNpZiBBUElfQ0hBTk5FTF9MQVlPVVQKLSsjIGluY2x1ZGUgPGxpYmF2dXRpbC9jaGFubmVs X2xheW91dC5oPgotKyNlbmRpZgotIAotIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICAqIGRlY29k ZXJfc3lzX3QgOiBkZWNvZGVyIGRlc2NyaXB0b3IKLUBAIC01OTgsNyArNjAxLDcgQEAgc3RhdGlj IHZvaWQgU2V0dXBPdXRwdXRGb3JtYXQoIGRlY29kZXJfdCAqcF9kZWMsIGJvb2wgYl90cnVzdCAp Ci0gICAgICAgICBwX3N5cy0+aV9wcmV2aW91c19jaGFubmVscyA9IHBfc3lzLT5wX2NvbnRleHQt PmNoX2xheW91dC5uYl9jaGFubmVsczsKLSAgICAgICAgIHBfc3lzLT5pX3ByZXZpb3VzX2xheW91 dCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91dC51Lm1hc2s7Ci0gICAgIH0KLS0jZWxzZQot KyNlbGlmIEFQSV9DSEFOTkVMX0xBWU9VVAotICAgICBpZiggcF9zeXMtPmlfcHJldmlvdXNfY2hh bm5lbHMgPT0gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbHMgJiYKLSAgICAgICAgIHBfc3lzLT5p X3ByZXZpb3VzX2xheW91dCA9PSBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVsX2xheW91dCApCi0g ICAgICAgICByZXR1cm47Ci1AQCAtNjEyLDE1ICs2MTUsMTkgQEAgc3RhdGljIHZvaWQgU2V0dXBP dXRwdXRGb3JtYXQoIGRlY29kZXJfdCAqcF9kZWMsIGJvb2wgYl90cnVzdCApCi0gICAgIGNvbnN0 IHVuc2lnbmVkIGlfb3JkZXJfbWF4ID0gc2l6ZW9mKHBpX2NoYW5uZWxzX21hcCkvc2l6ZW9mKCpw aV9jaGFubmVsc19tYXApOwotICAgICB1aW50MzJfdCBwaV9vcmRlcl9zcmNbaV9vcmRlcl9tYXhd OwotIAotLSAgICBpbnQgaV9jaGFubmVsc19zcmMgPSAwOwotKyAgICBpbnQgaV9jaGFubmVsc19z cmMgPSAwLCBjaGFubmVsX2NvdW50OwotKyAgICB1aW50NjRfdCBjaGFubmVsX2xheW91dF9tYXNr OwotICNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQot LSAgICB1aW50NjRfdCBjaGFubmVsX2xheW91dF9tYXNrID0gcF9zeXMtPnBfY29udGV4dC0+Y2hf bGF5b3V0LnUubWFzazsKLS0gICAgaW50IGNoYW5uZWxfY291bnQgPSBwX3N5cy0+cF9jb250ZXh0 LT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7Ci0tI2Vsc2UKLS0gICAgdWludDY0X3QgY2hhbm5lbF9s YXlvdXRfbWFzayA9Ci0rICAgIGNoYW5uZWxfbGF5b3V0X21hc2sgPSBwX3N5cy0+cF9jb250ZXh0 LT5jaF9sYXlvdXQudS5tYXNrOwotKyAgICBjaGFubmVsX2NvdW50ID0gcF9zeXMtPnBfY29udGV4 dC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOwotKyNlbGlmIEFQSV9DSEFOTkVMX0xBWU9VVAotKyAg ICBjaGFubmVsX2xheW91dF9tYXNrID0KLSAgICAgICAgIHBfc3lzLT5wX2NvbnRleHQtPmNoYW5u ZWxfbGF5b3V0ID8gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbF9sYXlvdXQgOgotICAgICAgICAg KHVpbnQ2NF90KWF2X2dldF9kZWZhdWx0X2NoYW5uZWxfbGF5b3V0KCBwX3N5cy0+cF9jb250ZXh0 LT5jaGFubmVscyApOwotLSAgICBpbnQgY2hhbm5lbF9jb3VudCA9IHBfc3lzLT5wX2NvbnRleHQt PmNoYW5uZWxzOwotKyAgICBjaGFubmVsX2NvdW50ID0gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5l bHM7Ci0rI2Vsc2UKLSsgICAgY2hhbm5lbF9sYXlvdXRfbWFzayA9IE5VTEw7Ci0rICAgIGNoYW5u ZWxfY291bnQgPSBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVsczsKLSAjZW5kaWYKLSAKLSAgICAg aWYoIGNoYW5uZWxfbGF5b3V0X21hc2sgKQotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIGI1YmI5YmRh MDNhMDZmYzFjZmQ2ODJkYWNiNTcxYjY4OGI1NTU4ZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiA9P1VURi04P3E/RnJhbj1DMz1BN29pcz0yMENhcnRlZ25pZT89IDxmY3ZsY2RldkBm cmVlLmZyPgotRGF0ZTogVHVlLCAyMyBBcHIgMjAyNCAxMzoxNDo1MyArMDcwMAotU3ViamVjdDog W1BBVENIIDA4LzExXSBkZW11eC9tdXg6IGF2Zm9ybWF0OiB1c2UgY2hfbGF5b3V0IGZyb20gZmZt cGVnIDUuMQotCi1tZXJnZXIgcGljayBmcm9tIGNvbW1pdCBhNTVlYzMyYWIzNzYwZDllZGI2ZjA1 NDgxY2QzYTk4MWFhNDI4NzhkCi1hbmQgZml4dXAgMTk1ZjBjOTg1OTliNTU5NTBjNDlhNjJmOThk OWQzNDk1YmUzMTBkZgotLS0tCi0gbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9kZW11eC5jIHwgNCAr KysrCi0gbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9tdXguYyAgIHwgNCArKysrCi0gMiBmaWxlcyBj aGFuZ2VkLCA4IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGVtdXgvYXZm b3JtYXQvZGVtdXguYyBiL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvZGVtdXguYwotaW5kZXggM2Iz NTViYjNmYWUuLjgzMGRjMDE1N2UyIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9kZW11eC9hdmZvcm1h dC9kZW11eC5jCi0rKysgYi9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4LmMKLUBAIC00MDEs NyArNDAxLDExIEBAIGludCBhdmZvcm1hdF9PcGVuRGVtdXgoIHZsY19vYmplY3RfdCAqcF90aGlz ICkKLSAgICAgICAgICAgICBlc19mb3JtYXRfSW5pdCggJmVzX2ZtdCwgQVVESU9fRVMsIGZjYyAp OwotICAgICAgICAgICAgIGVzX2ZtdC5pX29yaWdpbmFsX2ZvdXJjYyA9IENvZGVjVGFnVG9Gb3Vy Y2MoIGNwLT5jb2RlY190YWcgKTsKLSAgICAgICAgICAgICBlc19mbXQuaV9iaXRyYXRlID0gY3At PmJpdF9yYXRlOwotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fSU5UID49IEFWX1ZFUlNJT05fSU5U KCA1OSwgMjQsIDEwMCApICYmIExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyA+PSAxMDAKLSsgICAg ICAgICAgICBlc19mbXQuYXVkaW8uaV9jaGFubmVscyA9IGNwLT5jaF9sYXlvdXQubmJfY2hhbm5l bHM7Ci0rI2Vsc2UKLSAgICAgICAgICAgICBlc19mbXQuYXVkaW8uaV9jaGFubmVscyA9IGNwLT5j aGFubmVsczsKLSsjZW5kaWYKLSAgICAgICAgICAgICBlc19mbXQuYXVkaW8uaV9yYXRlID0gY3At PnNhbXBsZV9yYXRlOwotICAgICAgICAgICAgIGVzX2ZtdC5hdWRpby5pX2JpdHNwZXJzYW1wbGUg PSBjcC0+Yml0c19wZXJfY29kZWRfc2FtcGxlOwotICAgICAgICAgICAgIGVzX2ZtdC5hdWRpby5p X2Jsb2NrYWxpZ24gPSBjcC0+YmxvY2tfYWxpZ247Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9kZW11 eC9hdmZvcm1hdC9tdXguYyBiL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLWluZGV4IGM3 MDgyNzY5NTRjLi44YmY4NzM1ODg1ZiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvZGVtdXgvYXZmb3Jt YXQvbXV4LmMKLSsrKyBiL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLUBAIC0yNjcsNyAr MjY3LDExIEBAIHN0YXRpYyBpbnQgQWRkU3RyZWFtKCBzb3V0X211eF90ICpwX211eCwgc291dF9p bnB1dF90ICpwX2lucHV0ICkKLSAgICAgewotICAgICBjYXNlIEFVRElPX0VTOgotICAgICAgICAg Y29kZWNwYXItPmNvZGVjX3R5cGUgPSBBVk1FRElBX1RZUEVfQVVESU87Ci0rI2lmIExJQkFWQ09E RUNfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQoIDU5LCAyNCwgMTAwICkgJiYgTElCQVZD T0RFQ19WRVJTSU9OX01JQ1JPID49IDEwMAotKyAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfZGVm YXVsdCggJmNvZGVjcGFyLT5jaF9sYXlvdXQsIGZtdC0+YXVkaW8uaV9jaGFubmVscyApOwotKyNl bHNlCi0gICAgICAgICBjb2RlY3Bhci0+Y2hhbm5lbHMgPSBmbXQtPmF1ZGlvLmlfY2hhbm5lbHM7 Ci0rI2VuZGlmCi0gICAgICAgICBjb2RlY3Bhci0+c2FtcGxlX3JhdGUgPSBmbXQtPmF1ZGlvLmlf cmF0ZTsKLSAgICAgICAgIHN0cmVhbS0+dGltZV9iYXNlID0gKEFWUmF0aW9uYWwpezEsIGNvZGVj cGFyLT5zYW1wbGVfcmF0ZX07Ci0gICAgICAgICBpZiAoZm10LT5pX2JpdHJhdGUgPT0gMCkgewot LS0gCi1HaXRMYWIKLQotCi1Gcm9tIGZhMDAxY2RhN2Y2YjIyODQzNDM4YzM5ZGZjMDc4MDUwYmI1 NGM3MmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJbGtrYSBPbGxha2thIDxpbGVv b0B2aWRlb2xhbi5vcmc+Ci1EYXRlOiBUdWUsIDQgSnVsIDIwMjMgMTY6NTM6NDMgKzAzMDAKLVN1 YmplY3Q6IFtQQVRDSCAwOS8xMV0gYXZjb2RlYzogYWRkIGhhbmRsaW5nIG9mIG5ldyBjaF9sYXlv dXQgaW4gYXVkaW8gZW5jb2RlcgotCi1jb25kaXRpb25lZCB0byBhdmNvZGVjIHZlcnNpb24gd2hl cmUgaXMgaXQgYWRkZWQKLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYzQzMDJjYTU5ZGQ3 OWVmZDcyMDhhNDVhM2ZjZGM0NDM4OGZkMDNhOCkKLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2Rl Yy9lbmNvZGVyLmMgfCAxNSArKysrKysrKysrKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMv YXZjb2RlYy9lbmNvZGVyLmMgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jCi1pbmRl eCA2YmQ1OGY1MDcxZC4uNzU3ZjkzYjQ2ODQgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvZW5jb2Rlci5jCi0rKysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jCi1A QCAtOTI3LDExICs5MjcsMTQgQEAgZXJybXNnOgotIAotICAgICAgICAgaWYoIHBfZW5jLT5mbXRf b3V0LmF1ZGlvLmlfY2hhbm5lbHMgPiAyICkKLSAgICAgICAgIHsKLSsjaWYgTElCQVZDT0RFQ19W RVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwgMjQsIDEwMCkKLSsgICAgICAgICAgICBhdl9jaGFu bmVsX2xheW91dF9kZWZhdWx0KCAmcF9jb250ZXh0LT5jaF9sYXlvdXQsIDIgKTsKLSsjZWxzZQot ICAgICAgICAgICAgIHBfY29udGV4dC0+Y2hhbm5lbHMgPSAyOwotLSNpZiBBUElfQ0hBTk5FTF9M QVlPVVQKLSsjIGlmIEFQSV9DSEFOTkVMX0xBWU9VVAotICAgICAgICAgICAgIHBfY29udGV4dC0+ Y2hhbm5lbF9sYXlvdXQgPSBjaGFubmVsX21hc2tbcF9jb250ZXh0LT5jaGFubmVsc11bMV07Ci0r IyBlbmRpZgotICNlbmRpZgotLQotICAgICAgICAgICAgIC8qIENoYW5nZSBmbXRfaW4gaW4gb3Jk ZXIgdG8gYXNrIGZvciBhIGNoYW5uZWxzIGNvbnZlcnNpb24gKi8KLSAgICAgICAgICAgICBwX2Vu Yy0+Zm10X2luLmF1ZGlvLmlfY2hhbm5lbHMgPQotICAgICAgICAgICAgIHBfZW5jLT5mbXRfb3V0 LmF1ZGlvLmlfY2hhbm5lbHMgPSAyOwotQEAgLTEyODgsOCArMTI5MSwxMiBAQCBzdGF0aWMgYmxv Y2tfdCAqaGFuZGxlX2RlbGF5X2J1ZmZlciggZW5jb2Rlcl90ICpwX2VuYywgZW5jb2Rlcl9zeXNf dCAqcF9zeXMsIHVucwotICAgICBhdl9mcmFtZV91bnJlZiggcF9zeXMtPmZyYW1lICk7Ci0gICAg IHBfc3lzLT5mcmFtZS0+Zm9ybWF0ICAgICA9IHBfc3lzLT5wX2NvbnRleHQtPnNhbXBsZV9mbXQ7 Ci0gICAgIHBfc3lzLT5mcmFtZS0+bmJfc2FtcGxlcyA9IGxlZnRvdmVyX3NhbXBsZXMgKyBwX3N5 cy0+aV9zYW1wbGVzX2RlbGF5OwotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5 OSwgOTk5LCAyNCwgMTAwKQotKyAgICBhdl9jaGFubmVsX2xheW91dF9jb3B5KCZwX3N5cy0+ZnJh bWUtPmNoX2xheW91dCwgJnBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91dCk7Ci0rI2Vsc2UKLSAg ICAgcF9zeXMtPmZyYW1lLT5jaGFubmVsX2xheW91dCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5u ZWxfbGF5b3V0OwotICAgICBwX3N5cy0+ZnJhbWUtPmNoYW5uZWxzID0gcF9zeXMtPnBfY29udGV4 dC0+Y2hhbm5lbHM7Ci0rI2VuZGlmCi0gCi0gICAgIHBfc3lzLT5mcmFtZS0+cHRzICAgICAgICA9 IGRhdGVfR2V0KCAmcF9zeXMtPmJ1ZmZlcl9kYXRlICkgKiBwX3N5cy0+cF9jb250ZXh0LT50aW1l X2Jhc2UuZGVuIC8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT0NLX0ZSRVEg LyBwX3N5cy0+cF9jb250ZXh0LT50aW1lX2Jhc2UubnVtOwotQEAgLTE0MTksOCArMTQyNiwxMiBA QCBzdGF0aWMgYmxvY2tfdCAqRW5jb2RlQXVkaW8oIGVuY29kZXJfdCAqcF9lbmMsIGJsb2NrX3Qg KnBfYW91dF9idWYgKQotICAgICAgICAgcF9zeXMtPmZyYW1lLT5wdHMgICAgICAgID0gZGF0ZV9H ZXQoICZwX3N5cy0+YnVmZmVyX2RhdGUgKSAqIHBfc3lzLT5wX2NvbnRleHQtPnRpbWVfYmFzZS5k ZW4gLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT0NLX0ZSRVEgLyBw X3N5cy0+cF9jb250ZXh0LT50aW1lX2Jhc2UubnVtOwotIAotKyNpZiBMSUJBVkNPREVDX1ZFUlNJ T05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotKyAgICAgICAgYXZfY2hhbm5lbF9sYXlv dXRfY29weSgmcF9zeXMtPmZyYW1lLT5jaF9sYXlvdXQsICZwX3N5cy0+cF9jb250ZXh0LT5jaF9s YXlvdXQpOwotKyNlbHNlCi0gICAgICAgICBwX3N5cy0+ZnJhbWUtPmNoYW5uZWxfbGF5b3V0ID0g cF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbF9sYXlvdXQ7Ci0gICAgICAgICBwX3N5cy0+ZnJhbWUt PmNoYW5uZWxzID0gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbHM7Ci0rI2VuZGlmCi0gCi0gICAg ICAgICBjb25zdCBpbnQgaW5fYnl0ZXMgPSBwX3N5cy0+ZnJhbWUtPm5iX3NhbXBsZXMgKgotICAg ICAgICAgICAgIHBfZW5jLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHMqIHBfc3lzLT5pX3NhbXBs ZV9ieXRlczsKLS0tIAotR2l0TGFiCi0KLQotRnJvbSBiYjYyOTg5Y2NjMTI4NjZkMzA4ZTZmMzhk YzE1MTNkZTljYjFjNmRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSWxra2EgT2xs YWtrYSA8aWxlb29AdmlkZW9sYW4ub3JnPgotRGF0ZTogVHVlLCA0IEp1bCAyMDIzIDE2OjU1OjI4 ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0ggMTAvMTFdIGF2Y29kZWM6IHVzZSBjaF9sYXlvdXQgZm9y IGNoYW5uZWwgbGF5b3V0IGluIGF1ZGlvCi0gZW5jb2RlcgotCi1jaGFubmVscyBhbmQgY2hhbm5l bF9sYXlvdXQgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBGRk1QRUcgNS4xIGFuZCB3aWxsIGJlIHJl bW92ZWQgZXZlbnR1YWxseQotCi1hbHNvIGFsd2F5cyBjcmVhdGUgdGhlIG1hcHBpbmcsIGFzIGNo X2xheW91dCBpcyBhbHdheXMgdGhlcmUKLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYjcz ZGM4ODQxZDk5OWM2YmU5ZGU3MThjZDJjZDNhZWIxMzI3OTc5MikKLS0tLQotIG1vZHVsZXMvY29k ZWMvYXZjb2RlYy9lbmNvZGVyLmMgfCA1MyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jIGIvbW9kdWxlcy9j b2RlYy9hdmNvZGVjL2VuY29kZXIuYwotaW5kZXggNzU3ZjkzYjQ2ODQuLmFlNzQ2Yzk5ZmM4IDEw MDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYwotKysrIGIvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYwotQEAgLTE4Myw2ICsxODMsNyBAQCBzdGF0aWMgY29u c3QgdWludDY0X3QgcGlfY2hhbm5lbHNfbWFwW11bMl0gPQotICAgICB7IEFWX0NIX1NURVJFT19S SUdIVCwgICAgICAwIH0sCi0gfTsKLSAKLSsjIGlmICFMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0so NTksIDk5OSwgOTk5LCAyNCwgMTAwKQotIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjaGFubmVsX21h c2tbXVsyXSA9IHsKLSAgICAgezAsMH0sCi0gICAgIHtBT1VUX0NIQU5fQ0VOVEVSLCBBVl9DSF9M QVlPVVRfTU9OT30sCi1AQCAtMTk1LDYgKzE5Niw3IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBj aGFubmVsX21hc2tbXVsyXSA9IHsKLSAgICAge0FPVVRfQ0hBTlNfN18xLCBBVl9DSF9MQVlPVVRf N1BPSU5UMX0sCi0gICAgIHtBT1VUX0NIQU5TXzhfMSwgQVZfQ0hfTEFZT1VUX09DVEFHT05BTH0s Ci0gfTsKLSsjIGVuZGlmCi0gI2VuZGlmCi0gCi0gc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHBw c3pfZW5jX29wdGlvbnNbXSA9IHsKLUBAIC03NDgsNDkgKzc1MCwzNiBAQCBpbnQgSW5pdFZpZGVv RW5jKCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAgICAgICBkYXRlX1NldCggJnBfc3lzLT5i dWZmZXJfZGF0ZSwgQVZfTk9QVFNfVkFMVUUgKTsKLSAgICAgICAgIHBfY29udGV4dC0+dGltZV9i YXNlLm51bSA9IDE7Ci0gICAgICAgICBwX2NvbnRleHQtPnRpbWVfYmFzZS5kZW4gPSBwX2NvbnRl eHQtPnNhbXBsZV9yYXRlOwotLSAgICAgICAgcF9jb250ZXh0LT5jaGFubmVscyAgICAgID0gcF9l bmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVsczsKLS0jaWYgQVBJX0NIQU5ORUxfTEFZT1VUCi0t ICAgICAgICBwX2NvbnRleHQtPmNoYW5uZWxfbGF5b3V0ID0gY2hhbm5lbF9tYXNrW3BfY29udGV4 dC0+Y2hhbm5lbHNdWzFdOwotIAotLSAgICAgICAgLyogU2V0dXAgQ2hhbm5lbCBvcmRlcmluZyBm b3IgbXVsdGljaGFubmVsIGF1ZGlvCi0rICAgICAgICAvKiBTZXR1cCBDaGFubmVsIG9yZGVyaW5n IGZvciBhdWRpbwotICAgICAgICAgICogYXMgVkxDIGNoYW5uZWwgb3JkZXIgaXNuJ3Qgc2FtZSBh cyBsaWJhdmNvZGVjIGV4cGVjdHMKLSAgICAgICAgICAqLwotIAotICAgICAgICAgcF9zeXMtPmlf Y2hhbm5lbHNfdG9fcmVvcmRlciA9IDA7Ci0gCi0tICAgICAgICAvKiBTcGVjaWZpZWQgb3JkZXIK LSsgICAgICAgIC8qIENyZWF0ZSBjaGFubmVsIGxheW91dCBmb3IgYXZjb2RlYwotICAgICAgICAg ICogQ29waWVkIGZyb20gYXVkaW8uYwotICAgICAgICAgICovCi0tICAgICAgICBjb25zdCB1bnNp Z25lZCBpX29yZGVyX21heCA9IDggKiBzaXplb2YocF9jb250ZXh0LT5jaGFubmVsX2xheW91dCk7 Ci0tICAgICAgICB1aW50MzJfdCBwaV9vcmRlcl9kc3RbQU9VVF9DSEFOX01BWF0gPSB7IH07Ci0r I2lmIEFQSV9DSEFOTkVMX0xBWU9VVAotKyAgICAgICAgdWludDMyX3QgcGlfb3JkZXJfZHN0W0FP VVRfQ0hBTl9NQVhdID0geyAwIH07Ci0gICAgICAgICB1aW50MzJfdCBvcmRlcl9tYXNrID0gMDsK LSAgICAgICAgIGludCBpX2NoYW5uZWxzX3NyYyA9IDA7Ci0tCi0tICAgICAgICBpZiggcF9jb250 ZXh0LT5jaGFubmVsX2xheW91dCApCi0tICAgICAgICB7Ci0tICAgICAgICAgICAgbXNnX0RiZygg cF9lbmMsICJDcmVhdGluZyBjaGFubmVsIG9yZGVyIGZvciByZW9yZGVyaW5nIik7Ci0tICAgICAg ICAgICAgZm9yKCB1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihwaV9jaGFubmVsc19tYXApL3Np emVvZigqcGlfY2hhbm5lbHNfbWFwKTsgaSsrICkKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgIGlmKCBwX2NvbnRleHQtPmNoYW5uZWxfbGF5b3V0ICYgcGlfY2hhbm5lbHNfbWFwW2ld WzBdICkKLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgbXNnX0RiZygg cF9lbmMsICIlZCAlIlBSSXg2NCIgbWFwcGVkIHRvICUiUFJJeDY0IiIsIGlfY2hhbm5lbHNfc3Jj LCBwaV9jaGFubmVsc19tYXBbaV1bMF0sIHBpX2NoYW5uZWxzX21hcFtpXVsxXSk7Ci0tICAgICAg ICAgICAgICAgICAgICBwaV9vcmRlcl9kc3RbaV9jaGFubmVsc19zcmMrK10gPSBwaV9jaGFubmVs c19tYXBbaV1bMV07Ci0tICAgICAgICAgICAgICAgICAgICBvcmRlcl9tYXNrIHw9IHBpX2NoYW5u ZWxzX21hcFtpXVsxXTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgICAgIGVsc2UKLSsgICAgICAgIG1zZ19EYmcoIHBfZW5jLCAiQ3JlYXRpbmcg Y2hhbm5lbCBvcmRlciBmb3IgcmVvcmRlcmluZyIpOwotKyMgaWYgTElCQVZDT0RFQ19WRVJTSU9O X0NIRUNLKDU5LCA5OTksIDk5OSwgMjQsIDEwMCkKLSsgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0 X2RlZmF1bHQoICZwX2NvbnRleHQtPmNoX2xheW91dCwgcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9j aGFubmVscyApOwotKyAgICAgICAgdWludDY0X3QgY2hhbm5lbF9tYXNrID0gcF9jb250ZXh0LT5j aF9sYXlvdXQudS5tYXNrOwotKyMgZWxzZQotKyAgICAgICAgcF9jb250ZXh0LT5jaGFubmVscyA9 IHBfZW5jLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHM7Ci0rICAgICAgICBwX2NvbnRleHQtPmNo YW5uZWxfbGF5b3V0ID0gY2hhbm5lbF9tYXNrW3BfY29udGV4dC0+Y2hhbm5lbHNdWzFdOwotKyAg ICAgICAgdWludDY0X3QgY2hhbm5lbF9tYXNrID0gcF9jb250ZXh0LT5jaGFubmVsX2xheW91dDsK LSsjIGVuZGlmCi0rICAgICAgICBmb3IoIHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZW9mKHBpX2No YW5uZWxzX21hcCkvc2l6ZW9mKCpwaV9jaGFubmVsc19tYXApOyBpKysgKQotICAgICAgICAgewot LSAgICAgICAgICAgIG1zZ19EYmcoIHBfZW5jLCAiQ3JlYXRpbmcgZGVmYXVsdCBjaGFubmVsIG9y ZGVyIGZvciByZW9yZGVyaW5nIik7Ci0tICAgICAgICAgICAgLyogQ3JlYXRlIGRlZmF1bHQgb3Jk ZXIgICovCi0tICAgICAgICAgICAgZm9yKCB1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBfX01JTigg aV9vcmRlcl9tYXgsICh1bnNpZ25lZClwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVscyApOyBpKysg KQotKyAgICAgICAgICAgIGlmKCBjaGFubmVsX21hc2sgJiBwaV9jaGFubmVsc19tYXBbaV1bMF0g KQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgaWYoIGkgPCBzaXplb2YocGlfY2hh bm5lbHNfbWFwKS9zaXplb2YoKnBpX2NoYW5uZWxzX21hcCkgKQotLSAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICBtc2dfRGJnKCBwX2VuYywgIiVkIGNoYW5uZWwgaXMgJSJQ Ukl4NjQiIiwgaV9jaGFubmVsc19zcmMsIHBpX2NoYW5uZWxzX21hcFtpXVsxXSk7Ci0tICAgICAg ICAgICAgICAgICAgICBwaV9vcmRlcl9kc3RbaV9jaGFubmVsc19zcmMrK10gPSBwaV9jaGFubmVs c19tYXBbaV1bMV07Ci0tICAgICAgICAgICAgICAgICAgICBvcmRlcl9tYXNrIHw9IHBpX2NoYW5u ZWxzX21hcFtpXVsxXTsKLS0gICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICBtc2df RGJnKCBwX2VuYywgIiVkICUiUFJJeDY0IiBtYXBwZWQgdG8gJSJQUkl4NjQiIiwgaV9jaGFubmVs c19zcmMsIHBpX2NoYW5uZWxzX21hcFtpXVswXSwgcGlfY2hhbm5lbHNfbWFwW2ldWzFdKTsKLSsg ICAgICAgICAgICAgICAgcGlfb3JkZXJfZHN0W2lfY2hhbm5lbHNfc3JjKytdID0gcGlfY2hhbm5l bHNfbWFwW2ldWzFdOwotKyAgICAgICAgICAgICAgICBvcmRlcl9tYXNrIHw9IHBpX2NoYW5uZWxz X21hcFtpXVsxXTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiggaV9j aGFubmVsc19zcmMgIT0gcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscyApCi1AQCAtNzk5 LDYgKzc4OCw4IEBAIGludCBJbml0VmlkZW9FbmMoIHZsY19vYmplY3RfdCAqcF90aGlzICkKLSAg ICAgICAgIHBfc3lzLT5pX2NoYW5uZWxzX3RvX3Jlb3JkZXIgPQotICAgICAgICAgICAgIGFvdXRf Q2hlY2tDaGFubmVsUmVvcmRlciggTlVMTCwgcGlfb3JkZXJfZHN0LCBvcmRlcl9tYXNrLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9zeXMtPnBpX3Jlb3JkZXJfbGF5 b3V0ICk7Ci0rI2Vsc2UKLSsgICAgICAgIHBfY29udGV4dC0+Y2hhbm5lbHMgPSBwX2VuYy0+Zm10 X291dC5hdWRpby5pX2NoYW5uZWxzOwotICNlbmRpZgotIAotICAgICAgICAgaWYgKCBwX2VuYy0+ Zm10X291dC5pX2NvZGVjID09IFZMQ19DT0RFQ19NUDRBICkKLS0tIAotR2l0TGFiCi0KLQotRnJv bSBlMDIwZjlhYmIzMTgwOTU4NGUzM2Q3NDA1OTNkNmFlNWExOTA3NzFkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0ZyYW49QzM9QTdvaXM9MjBDYXJ0ZWduaWU/PSA8 ZmN2bGNkZXZAZnJlZS5mcj4KLURhdGU6IE1vbiwgMTIgQXVnIDIwMjQgMTk6MzI6NDIgKzA3MDAK LVN1YmplY3Q6IFtQQVRDSCAxMS8xMV0gY29kZWM6IGF2Y29kZWM6IGJ5cGFzcyByZW1vdmVkIGRl ZmluZSBmb3IgSW50ZWwKLSB3b3JrYXJvdW5kcwotCi1hZGFwdGVkIGZyb20gY2hlcnJ5IHBpY2tl ZCBjb21taXQgMTI4MDcyOGFkMzA1ZjAwY2ViYTM0OTFjZTExYmY2NjEwNzAxN2E2YwotLS0tCi0g bW9kdWxlcy9jb2RlYy9hdmNvZGVjL2QzZDExdmEuYyB8IDQgKysrKwotIG1vZHVsZXMvY29kZWMv YXZjb2RlYy9keHZhMi5jICAgfCA0ICsrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9u cygrKQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2QzZDExdmEuYyBiL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9kM2QxMXZhLmMKLWluZGV4IGUxNTYwYTkzMTJjLi41MjYwNjI4 MzY0ZiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9kM2QxMXZhLmMKLSsrKyBi L21vZHVsZXMvY29kZWMvYXZjb2RlYy9kM2QxMXZhLmMKLUBAIC01NSw2ICs1NSwxMCBAQAotICNk ZWZpbmUgRDNEX0RlY29kZXJTdXJmYWNlICBJRDNEMTFWaWRlb0RlY29kZXJPdXRwdXRWaWV3Ci0g I2luY2x1ZGUgImRpcmVjdHhfdmEuaCIKLSAKLSsjaWZuZGVmIEZGX0RYVkEyX1dPUktBUk9VTkRf SU5URUxfQ0xFQVJWSURFTwotKyMgZGVmaW5lIEZGX0RYVkEyX1dPUktBUk9VTkRfSU5URUxfQ0xF QVJWSURFTyAyIC8vIG1vdmVkIHRvIGxpYmF2Y29kZWMvZHh2YTJfaW50ZXJuYWwuaCA6LwotKyNl bmRpZgotKwotIHN0YXRpYyBpbnQgT3Blbih2bGNfdmFfdCAqLCBBVkNvZGVjQ29udGV4dCAqLCBj b25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKiwgZW51bSBQaXhlbEZvcm1hdCwKLSAgICAgICAgICAg ICAgICAgY29uc3QgZXNfZm9ybWF0X3QgKiwgcGljdHVyZV9zeXNfdCAqcF9zeXMpOwotIHN0YXRp YyB2b2lkIENsb3NlKHZsY192YV90ICosIHZvaWQgKiopOwotZGlmZiAtLWdpdCBhL21vZHVsZXMv Y29kZWMvYXZjb2RlYy9keHZhMi5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2R4dmEyLmMKLWlu ZGV4IDJlNjgwOWEwNTQxLi4wMzdhZDdkNDQ4OCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMv YXZjb2RlYy9keHZhMi5jCi0rKysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZHh2YTIuYwotQEAg LTQzLDYgKzQzLDEwIEBACi0gI2RlZmluZSBEM0RfRGVjb2RlclN1cmZhY2UgIElEaXJlY3QzRFN1 cmZhY2U5Ci0gI2luY2x1ZGUgImRpcmVjdHhfdmEuaCIKLSAKLSsjaWZuZGVmIEZGX0RYVkEyX1dP UktBUk9VTkRfSU5URUxfQ0xFQVJWSURFTwotKyMgZGVmaW5lIEZGX0RYVkEyX1dPUktBUk9VTkRf SU5URUxfQ0xFQVJWSURFTyAyIC8vIG1vdmVkIHRvIGxpYmF2Y29kZWMvZHh2YTJfaW50ZXJuYWwu aCA6LwotKyNlbmRpZgotKwotIHN0YXRpYyBpbnQgT3Blbih2bGNfdmFfdCAqLCBBVkNvZGVjQ29u dGV4dCAqLCBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKiwgZW51bSBQaXhlbEZvcm1hdCwKLSAg ICAgICAgICAgICAgICAgY29uc3QgZXNfZm9ybWF0X3QgKiwgcGljdHVyZV9zeXNfdCAqcF9zeXMp OwotIHN0YXRpYyB2b2lkIENsb3NlKHZsY192YV90ICosIHZvaWQgKiopOwotLS0gCi1HaXRMYWIK LQoKZGlmZiAtLWdpdCBhLzU1OTAucGF0Y2ggYi81NTkwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAzOGVjM2NjLi4wMDAwMDAwCi0tLSBhLzU1OTAucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIGE3NjFlMWMyMDJiNjMyZTc4NjVkMThmY2YxMWEy YjllMjg1ZWE5YWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUcmlzdGFuIE1hdHRo ZXdzIDx0bWF0dGhAdmlkZW9sYW4ub3JnPgotRGF0ZTogV2VkLCAxIEZlYiAyMDIzIDIzOjM5OjM2 IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIG9wdXNfaGVhZGVyOiBmaXggY2hhbm5lbCBtYXBwaW5n IGZhbWlseSAxIHBhcnNpbmcKLQotRml4ZXMgIzI3ODA4Ci0KLShjaGVycnkgcGlja2VkIGZyb20g Y29tbWl0IDc5ZmE2YWYwYTk4OTIxZjlkMzQ5MzM3NjFmNGZlMjBlZjZjMzUzMDkpCi0tLS0KLSBt b2R1bGVzL2NvZGVjL29wdXNfaGVhZGVyLmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL29w dXNfaGVhZGVyLmMgYi9tb2R1bGVzL2NvZGVjL29wdXNfaGVhZGVyLmMKLWluZGV4IDQwNjlhNWNm NDYxMy4uYjEzNGIyMGI2MjViIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9vcHVzX2hlYWRl ci5jCi0rKysgYi9tb2R1bGVzL2NvZGVjL29wdXNfaGVhZGVyLmMKLUBAIC0yMDUsNyArMjA1LDcg QEAgaW50IG9wdXNfaGVhZGVyX3BhcnNlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgaW50 IGxlbiwgT3B1c0hlYWRlciAqaCkKLSAgICAgICAgIGgtPm5iX2NvdXBsZWQgPSBjaDsKLSAKLSAg ICAgICAgIC8qIE11bHRpLXN0cmVhbSBzdXBwb3J0ICovCi0tICAgICAgICBpZihoLT5jaGFubmVs X21hcHBpbmcgPT0gMikKLSsgICAgICAgIGlmKGgtPmNoYW5uZWxfbWFwcGluZyA8PSAyKQotICAg ICAgICAgewotICAgICAgICAgICAgIGlmIChoLT5uYl9jb3VwbGVkICsgaC0+bmJfc3RyZWFtcyA+ IDI1NSkKLSAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0tLSAKLUdpdExhYgotCgpkaWZmIC0t Z2l0IGEvNjE2OC5wYXRjaCBiLzYxNjgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGZkY2M4YzEuLjAwMDAwMDAKLS0tIGEvNjE2OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDgyICswLDAgQEAKLUZyb20gYTYxOGUzMWNmMjA5MTY4YWU0MjBlOTU3NTA3MzRhMzczNTk5Njll MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9GcmFuPUMzPUE3b2lz PTIwQ2FydGVnbmllPz0gPGZjdmxjZGV2QGZyZWUuZnI+Ci1EYXRlOiBTdW4sIDcgSnVsIDIwMjQg MTE6MTQ6MDUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbXV4OiBhdmZvcm1hdDogZml4IGF2aW8g Y2FsbGJhY2tzIHNpZ25hdHVyZSB3aXRoIGZmbXBlZyA2LjEKLQotQVBJIHNpZ25hdHVyZSBjaGFu Z2VzIGludHJvZHVjZWQgZGVwZW5kaW5nIG9uIGEgcG9zaXRpdmUgZGVmaW5lLAotdGhlbiByZW1v dmVkIGxhdGVyLCBtYWtpbmcgaXQgYnJlYWsgcHJpb3Igb3IgcG9zdCByZW1vdmFsLi4uCi0KLShh ZGFwdGVkIGZyb20gY29tbWl0IDUwM2MwNGZhZDkyMzk0MjBiZTI2ZDY3YWFiNGQ1ZjYzYzUzZWI0 ZjcpCi0tLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29tcGF0LmggfCAgMyAr KysKLSBtb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jICAgICAgICAgICAgfCAxOCArKysrKysr KysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKLQotZGlmZiAt LWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaCBiL21vZHVsZXMv Y29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAotaW5kZXggOWQxNmIzZGM0N2Q5Li41NjFh ZDgzZjk5ZjkgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29t cGF0LmgKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAotQEAg LTc3LDYgKzc3LDkgQEAKLSAjaWZuZGVmICBGRl9NQVhfQl9GUkFNRVMKLSAjIGRlZmluZSAgRkZf TUFYX0JfRlJBTUVTIDE2IC8vIEZJWE1FOiByZW1vdmUgdGhpcwotICNlbmRpZgotKyNpZm5kZWYg RkZfQVBJX0FWSU9fV1JJVEVfTk9OQ09OU1QgLy8gcmVtb3ZlZCBpbiBmZm1wZWcgNwotKyMgZGVm aW5lIEZGX0FQSV9BVklPX1dSSVRFX05PTkNPTlNUIChMSUJBVkZPUk1BVF9WRVJTSU9OX01BSk9S IDwgNjEpCi0rI2VuZGlmCi0gCi0gI2VuZGlmIC8qIEhBVkVfTElCQVZDT0RFQ19BVkNPREVDX0gg Ki8KLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jIGIvbW9kdWxl cy9kZW11eC9hdmZvcm1hdC9tdXguYwotaW5kZXggOGJmODczNTg4NWY1Li4wMzNhODdiZGFhYWQg MTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi0rKysgYi9tb2R1bGVz L2RlbXV4L2F2Zm9ybWF0L211eC5jCi1AQCAtNzQsMTEgKzc0LDIwIEBAIHN0YXRpYyBpbnQgQWRk U3RyZWFtKCBzb3V0X211eF90ICosIHNvdXRfaW5wdXRfdCAqICk7Ci0gc3RhdGljIHZvaWQgRGVs U3RyZWFtKCBzb3V0X211eF90ICosIHNvdXRfaW5wdXRfdCAqICk7Ci0gc3RhdGljIGludCBNdXgg ICAgICAoIHNvdXRfbXV4X3QgKiApOwotIAotKyNpZiBGRl9BUElfQVZJT19XUklURV9OT05DT05T VAotIHN0YXRpYyBpbnQgSU9Xcml0ZSggdm9pZCAqb3BhcXVlLCB1aW50OF90ICpidWYsIGludCBi dWZfc2l6ZSApOwotKyNlbHNlCi0rc3RhdGljIGludCBJT1dyaXRlKCB2b2lkICpvcGFxdWUsIGNv bnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGJ1Zl9zaXplICk7Ci0rI2VuZGlmCi0gc3RhdGljIGludDY0 X3QgSU9TZWVrKCB2b2lkICpvcGFxdWUsIGludDY0X3Qgb2Zmc2V0LCBpbnQgd2hlbmNlICk7Ci0g I2lmIExJQkFWRk9STUFUX1ZFUlNJT05fQ0hFQ0soIDU3LCA3LCAwLCA0MCwgMTAwICkKLSsjIGlm IEZGX0FQSV9BVklPX1dSSVRFX05PTkNPTlNUCi0gc3RhdGljIGludCBJT1dyaXRlVHlwZWQodm9p ZCAqb3BhcXVlLCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlbnVtIEFWSU9EYXRhTWFya2VyVHlwZSB0eXBlLCBpbnQ2NF90IHRpbWUp OwotKyMgZWxzZQotK2ludCBJT1dyaXRlVHlwZWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90 ICpidWYsIGludCBidWZfc2l6ZSwKLSsgICAgICAgICAgICAgICAgIGVudW0gQVZJT0RhdGFNYXJr ZXJUeXBlIHR5cGUsIGludDY0X3QgdGltZSk7Ci0rIyBlbmRpZgotICNlbmRpZgotIAotIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgotQEAgLTQxMSw4ICs0MjAsMTMgQEAgc3RhdGljIGludCBNdXhCbG9j ayggc291dF9tdXhfdCAqcF9tdXgsIHNvdXRfaW5wdXRfdCAqcF9pbnB1dCApCi0gfQotIAotICNp ZiBMSUJBVkZPUk1BVF9WRVJTSU9OX0NIRUNLKCA1NywgNywgMCwgNDAsIDEwMCApCi0rIyBpZiBG Rl9BUElfQVZJT19XUklURV9OT05DT05TVAotIGludCBJT1dyaXRlVHlwZWQodm9pZCAqb3BhcXVl LCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbnVtIEFWSU9EYXRhTWFya2VyVHlwZSB0eXBlLCBpbnQ2NF90IHRpbWUpCi0rIyBlbHNl Ci0raW50IElPV3JpdGVUeXBlZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50 IGJ1Zl9zaXplLAotKyAgICAgICAgICAgICAgICAgZW51bSBBVklPRGF0YU1hcmtlclR5cGUgdHlw ZSwgaW50NjRfdCB0aW1lKQotKyMgZW5kaWYKLSB7Ci0gICAgIFZMQ19VTlVTRUQodGltZSk7Ci0g Ci1AQCAtNTEyLDcgKzUyNiwxMSBAQCBzdGF0aWMgaW50IENvbnRyb2woIHNvdXRfbXV4X3QgKnBf bXV4LCBpbnQgaV9xdWVyeSwgdmFfbGlzdCBhcmdzICkKLSAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK LSAgKiBJL08gd3JhcHBlcnMgZm9yIGxpYmF2Zm9ybWF0Ci0gICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LwotKyNpZiBGRl9BUElfQVZJT19XUklURV9OT05DT05TVAotIHN0YXRpYyBpbnQgSU9Xcml0ZSgg dm9pZCAqb3BhcXVlLCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSApCi0rI2Vsc2UKLStzdGF0 aWMgaW50IElPV3JpdGUoIHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgYnVm X3NpemUgKQotKyNlbmRpZgotIHsKLSAgICAgc291dF9tdXhfdCAqcF9tdXggPSBvcGFxdWU7Ci0g ICAgIHNvdXRfbXV4X3N5c190ICpwX3N5cyA9IHBfbXV4LT5wX3N5czsKLS0tIAotR2l0TGFiCi0K CmRpZmYgLS1naXQgYS82MjczLnBhdGNoIGIvNjI3My5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDQ5ZWU1MC4uMDAwMDAwMAotLS0gYS82MjczLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTQzMCArMCwwIEBACi1Gcm9tIDhmZWY4MzczMWE2YjczMjRmZmQwMzkzMzI3MmZj ZmQ5YjA4YTJjYjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGV2ZSBMaG9tbWUg PHJvYnV4NEB5Y2Jjci54eXo+Ci1EYXRlOiBUaHUsIDcgTm92IDIwMjQgMDc6MjA6NTcgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSCAwMS8xNV0gYXZjb21tb246IHJlbmFtZSBMSUJBVlVUSUxfVkVSU0lP Tl9DSEVDSyB0bwotIExJQkFWX1VUSUxfVkVSU0lPTl9DSEVDSwotCi1UaGUgTElCQVZVVElMX1ZF UlNJT05fQ0hFQ0sgZm9ybSB3aWxsIGJlIGZvciBjaGVja3MgYWxzbyBkb25lIGluIDQuMC4KLQot Tm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgotLS0tCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlv LmMgICAgICAgICAgIHwgMiArLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21w YXQuaCB8IDYgKysrLS0tCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2Nocm9tYS5jICAgICAgICAg IHwgMiArLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMgICAgICAgICB8IDIgKy0K LSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvdmEuYyAgICAgICAgICAgICAgfCAyICstCi0gbW9kdWxl cy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMgICAgICAgICAgIHwgNiArKystLS0KLSA2IGZpbGVzIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv bW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVk aW8uYwotaW5kZXggYzc0NzU3Yzc2YWUuLjQ0MzM1ZWMzY2NlIDEwMDY0NAotLS0tIGEvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRp by5jCi1AQCAtNDEsNyArNDEsNyBAQAotICNpbmNsdWRlIDxsaWJhdmNvZGVjL2F2Y29kZWMuaD4K LSAjaW5jbHVkZSA8bGliYXZ1dGlsL21lbS5oPgotIAotLSNkZWZpbmUgQVBJX0NIQU5ORUxfTEFZ T1VUIChMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggNTIsIDIsIDYsIDAsIDEwMCkpCi0rI2RlZmlu ZSBBUElfQ0hBTk5FTF9MQVlPVVQgKExJQkFWX1VUSUxfVkVSU0lPTl9DSEVDSyggNTIsIDIsIDYs IDAsIDEwMCkpCi0gCi0gI2lmIEFQSV9DSEFOTkVMX0xBWU9VVAotICMgaW5jbHVkZSA8bGliYXZ1 dGlsL2NoYW5uZWxfbGF5b3V0Lmg+Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVj L2F2Y29tbW9uX2NvbXBhdC5oIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBh dC5oCi1pbmRleCA1NjFhZDgzZjk5Zi4uYmIyYjlhZTAzZTUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVz L2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29tcGF0LmgKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZj b2RlYy9hdmNvbW1vbl9jb21wYXQuaAotQEAgLTg2LDE1ICs4NiwxNSBAQAotICNpZmRlZiBIQVZF X0xJQkFWVVRJTF9BVlVUSUxfSAotICMgaW5jbHVkZSA8bGliYXZ1dGlsL2F2dXRpbC5oPgotIAot LS8qIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLIGNoZWNrcyBmb3IgdGhlIHJpZ2h0IHZlcnNpb24g b2YgbGliYXYgYW5kIEZGbXBlZwotKy8qIExJQkFWX1VUSUxfVkVSU0lPTl9DSEVDSyBjaGVja3Mg Zm9yIHRoZSByaWdodCB2ZXJzaW9uIG9mIGxpYmF2IGFuZCBGRm1wZWcKLSAgKiBhIGlzIHRoZSBt YWpvciB2ZXJzaW9uCi0gICogYiBhbmQgYyB0aGUgbWlub3IgYW5kIG1pY3JvIHZlcnNpb25zIG9m IGxpYmF2Ci0gICogZCBhbmQgZSB0aGUgbWlub3IgYW5kIG1pY3JvIHZlcnNpb25zIG9mIEZGbXBl ZyAqLwotLSNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soIGEsIGIsIGMsIGQsIGUgKSBc Ci0rI2RlZmluZSBMSUJBVl9VVElMX1ZFUlNJT05fQ0hFQ0soIGEsIGIsIGMsIGQsIGUgKSBcCi0g ICAgICggKExJQkFWVVRJTF9WRVJTSU9OX01JQ1JPIDwgIDEwMCAmJiBMSUJBVlVUSUxfVkVSU0lP Tl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQoIGEsIGIsIGMgKSApIHx8IFwKLSAgICAgICAoTElCQVZV VElMX1ZFUlNJT05fTUlDUk8gPj0gMTAwICYmIExJQkFWVVRJTF9WRVJTSU9OX0lOVCA+PSBBVl9W RVJTSU9OX0lOVCggYSwgZCwgZSApICkgKQotIAotLSNpZiAhTElCQVZVVElMX1ZFUlNJT05fQ0hF Q0soIDUyLCAxMSwgMCwgMzIsIDEwMCApCi0rI2lmICFMSUJBVl9VVElMX1ZFUlNJT05fQ0hFQ0so IDUyLCAxMSwgMCwgMzIsIDEwMCApCi0gIyAgIGRlZmluZSBBVl9QSVhfRk1UX0ZMQUdfSFdBQ0NF TCAgUElYX0ZNVF9IV0FDQ0VMCi0gI2VuZGlmCi0gCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2Rl Yy9hdmNvZGVjL2Nocm9tYS5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2Nocm9tYS5jCi1pbmRl eCBjYjk2MzRkYjU5Ny4uZGEyMGJjYjEwYjMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvY2hyb21hLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9jaHJvbWEuYwotQEAg LTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0Ci0gICAgIHtWTENfQ09ERUNfR0JS X1BMQU5BUl8xNkIsIEFWX1BJWF9GTVRfR0JSUDE2QkUsIDAsIDAsIDAgfSwKLSAKLSAgICAgLyog WFlaICovCi0tI2lmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDUyLCAxMCwgMCwgMjUsIDEwMCkK LSsjaWYgTElCQVZfVVRJTF9WRVJTSU9OX0NIRUNLKDUyLCAxMCwgMCwgMjUsIDEwMCkKLSAgICAg e1ZMQ19DT0RFQ19YWVoxMiwgQVZfUElYX0ZNVF9YWVoxMiwgMHhmZmYwLCAweGZmZjAsIDB4ZmZm MH0sCi0gI2VuZGlmCi0gICAgIHsgMCwgMCwgMCwgMCwgMCB9Ci1kaWZmIC0tZ2l0IGEvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVy LmMKLWluZGV4IGFlNzQ2Yzk5ZmM4Li5jOWEzNGQ4ZjBkYSAxMDA2NDQKLS0tLSBhL21vZHVsZXMv Y29kZWMvYXZjb2RlYy9lbmNvZGVyLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNv ZGVyLmMKLUBAIC00Nyw3ICs0Nyw3IEBACi0gI2luY2x1ZGUgImF2Y29kZWMuaCIKLSAjaW5jbHVk ZSAiYXZjb21tb24uaCIKLSAKLS0jZGVmaW5lIEFQSV9DSEFOTkVMX0xBWU9VVCAoTElCQVZVVElM X1ZFUlNJT05fQ0hFQ0soIDUyLCAyLCA2LCAwLCAxMDApKQotKyNkZWZpbmUgQVBJX0NIQU5ORUxf TEFZT1VUIChMSUJBVl9VVElMX1ZFUlNJT05fQ0hFQ0soIDUyLCAyLCA2LCAwLCAxMDApKQotIAot ICNpZiBBUElfQ0hBTk5FTF9MQVlPVVQKLSAjIGluY2x1ZGUgPGxpYmF2dXRpbC9jaGFubmVsX2xh eW91dC5oPgotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy92YS5jIGIvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL3ZhLmMKLWluZGV4IDBmZWIwM2I5NzRmLi4wNmRlNTRkZGNmMCAxMDA2 NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy92YS5jCi0rKysgYi9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvdmEuYwotQEAgLTU4LDcgKzU4LDcgQEAgdmxjX2ZvdXJjY190IHZsY192YV9HZXRD aHJvbWEoZW51bSBQaXhlbEZvcm1hdCBod2ZtdCwgZW51bSBQaXhlbEZvcm1hdCBzd2ZtdCkKLSAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gCi0tI2lmIExJQkFWVVRJTF9WRVJT SU9OX0NIRUNLKDU0LCAxMywgMSwgMjQsIDEwMCkKLSsjaWYgTElCQVZfVVRJTF9WRVJTSU9OX0NI RUNLKDU0LCAxMywgMSwgMjQsIDEwMCkKLSAgICAgICAgIGNhc2UgQVZfUElYX0ZNVF9EM0QxMVZB X1ZMRDoKLSAgICAgICAgICAgICBzd2l0Y2ggKHN3Zm10KQotICAgICAgICAgICAgIHsKLWRpZmYg LS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvdmlkZW8uYyBiL21vZHVsZXMvY29kZWMvYXZj b2RlYy92aWRlby5jCi1pbmRleCA4Yzg5MmRkM2Y0OC4uZGVlZmQzMDc2YTkgMTAwNjQ0Ci0tLS0g YS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvdmlkZW8uYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNv ZGVjL3ZpZGVvLmMKLUBAIC0yNTcsMTIgKzI1NywxMiBAQCBzdGF0aWMgaW50IGxhdmNfR2V0Vmlk ZW9Gb3JtYXQoZGVjb2Rlcl90ICpkZWMsIHZpZGVvX2Zvcm1hdF90ICpyZXN0cmljdCBmbXQsCi0g ICAgICAgICBjYXNlIEFWQ09MX1RSQ19CVDIwMjBfMTI6Ci0gICAgICAgICAgICAgZm10LT50cmFu c2ZlciA9IFRSQU5TRkVSX0ZVTkNfQlQyMDIwOwotICAgICAgICAgICAgIGJyZWFrOwotLSNpZiBM SUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggNTUsIDE0LCAwLCAzMSwgMTAwKQotKyNpZiBMSUJBVl9V VElMX1ZFUlNJT05fQ0hFQ0soIDU1LCAxNCwgMCwgMzEsIDEwMCkKLSAgICAgICAgIGNhc2UgQVZD T0xfVFJDX0FSSUJfU1REX0I2NzoKLSAgICAgICAgICAgICBmbXQtPnRyYW5zZmVyID0gVFJBTlNG RVJfRlVOQ19BUklCX0I2NzsKLSAgICAgICAgICAgICBicmVhazsKLSAjZW5kaWYKLS0jaWYgTElC QVZVVElMX1ZFUlNJT05fQ0hFQ0soIDU1LCAxNywgMCwgMzcsIDEwMCkKLSsjaWYgTElCQVZfVVRJ TF9WRVJTSU9OX0NIRUNLKCA1NSwgMTcsIDAsIDM3LCAxMDApCi0gICAgICAgICBjYXNlIEFWQ09M X1RSQ19TTVBURTIwODQ6Ci0gICAgICAgICAgICAgZm10LT50cmFuc2ZlciA9IFRSQU5TRkVSX0ZV TkNfU01QVEVfU1QyMDg0OwotICAgICAgICAgICAgIGJyZWFrOwotQEAgLTY4Nyw3ICs2ODcsNyBA QCBzdGF0aWMgaW50IGZmbXBlZ19PcGVuVmEoZGVjb2Rlcl90ICpwX2RlYywgQVZDb2RlY0NvbnRl eHQgKnBfY29udGV4dCwKLSBzdGF0aWMgY29uc3QgZW51bSBQaXhlbEZvcm1hdCBod2ZtdHNbXSA9 Ci0gewotICNpZmRlZiBfV0lOMzIKLS0jaWYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soNTQsIDEz LCAxLCAyNCwgMTAwKQotKyNpZiBMSUJBVl9VVElMX1ZFUlNJT05fQ0hFQ0soNTQsIDEzLCAxLCAy NCwgMTAwKQotICAgICBBVl9QSVhfRk1UX0QzRDExVkFfVkxELAotICNlbmRpZgotICAgICBBVl9Q SVhfRk1UX0RYVkEyX1ZMRCwKLS0tIAotR2l0TGFiCi0KLQotRnJvbSA1ZWZhY2EzOTNiNzM4OGQ2 MjliYmE5MjAxMjdlYjU0NjUzMjVjNDM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog U3RldmUgTGhvbW1lIDxyb2J1eDRAeWNiY3IueHl6PgotRGF0ZTogV2VkLCAxOSBKdW4gMjAyNCAx Mzo1NjozMSArMDIwMAotU3ViamVjdDogW1BBVENIIDAyLzE1XSBhdmNvbW1vbjogdXNlIGEgc3Bl Y2lmaWMgbWFjcm8gdG8gY2hlY2sgdGhlIEZGbXBlZwotIGxpYmF2dXRpbCB2ZXJzaW9uCi0KLVRo aXMgbWFjcm8gZG9lc24ndCBjaGVjayBmb3IgbGliYXYgd2hpY2ggaXMgYXNzdW1lZCB0byBub3Qg aGF2ZSB0byByZWxldmFudAotY29kZS4gVGhpcyBpcyB0aGUgc2FtZSBtYWNybyBuYW1lIHVzZWQg aW4gVkxDIDQuMC4KLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQu aCB8IDYgKysrKystCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2Nocm9tYS5jICAgICAgICAgIHwg OCArKysrLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy92aWRlby5jICAgICAgICAgICB8IDcg KysrKy0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQu aCBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAotaW5kZXggYmIyYjlh ZTAzZTUuLjViYWRlOTNiM2M1IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2 Y29tbW9uX2NvbXBhdC5oCi0rKysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29t cGF0LmgKLUBAIC04Niw3ICs4NiwxMSBAQAotICNpZmRlZiBIQVZFX0xJQkFWVVRJTF9BVlVUSUxf SAotICMgaW5jbHVkZSA8bGliYXZ1dGlsL2F2dXRpbC5oPgotIAotLS8qIExJQkFWX1VUSUxfVkVS U0lPTl9DSEVDSyBjaGVja3MgZm9yIHRoZSByaWdodCB2ZXJzaW9uIG9mIGxpYmF2IGFuZCBGRm1w ZWcKLSsvKiBjaGVjayB0aGUgRkZtcGVnIGxpYmF2dXRpbCB2ZXJzaW9uICovCi0rI2RlZmluZSBM SUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggYSwgZCwgZSApIFwKLSsgICAgKExJQkFWVVRJTF9WRVJT SU9OX01JQ1JPID49IDEwMCAmJiBMSUJBVlVUSUxfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9J TlQoIGEsIGQsIGUgKSApCi0rCi0rLyogTElCQVZfVVRJTF9WRVJTSU9OX0NIRUNLIGNoZWNrcyBm b3IgdGhlIHJpZ2h0IGxpYmF2dXRpbCB2ZXJzaW9uIG9mIGxpYmF2IGFuZCBGRm1wZWcKLSAgKiBh IGlzIHRoZSBtYWpvciB2ZXJzaW9uCi0gICogYiBhbmQgYyB0aGUgbWlub3IgYW5kIG1pY3JvIHZl cnNpb25zIG9mIGxpYmF2Ci0gICogZCBhbmQgZSB0aGUgbWlub3IgYW5kIG1pY3JvIHZlcnNpb25z IG9mIEZGbXBlZyAqLwotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9jaHJvbWEu YyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9jaHJvbWEuYwotaW5kZXggZGEyMGJjYjEwYjMuLjE1 NmZiMGJlZWM4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2Nocm9tYS5jCi0r KysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvY2hyb21hLmMKLUBAIC04Niw3ICs4Niw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QKLSAgICAge1ZMQ19DT0RFQ19JNDIwXzlCLCBBVl9QSVhfRk1UX1lV VjQyMFA5QkUsIDAsIDAsIDAgfSwKLSAgICAge1ZMQ19DT0RFQ19JNDIwXzEwTCwgQVZfUElYX0ZN VF9ZVVY0MjBQMTBMRSwgMCwgMCwgMCB9LAotICAgICB7VkxDX0NPREVDX0k0MjBfMTBCLCBBVl9Q SVhfRk1UX1lVVjQyMFAxMEJFLCAwLCAwLCAwIH0sCi0tI2lmIChMSUJBVlVUSUxfVkVSU0lPTl9N SUNSTyA+PSAxMDAgJiYgTElCQVZVVElMX1ZFUlNJT05fSU5UID49IEFWX1ZFUlNJT05fSU5UKCA1 NCwgMTcsIDEwMCApICkKLSsjaWYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soIDU0LCAxNywgMTAw ICkKLSAgICAge1ZMQ19DT0RFQ19JNDIwXzEyTCwgQVZfUElYX0ZNVF9ZVVY0MjBQMTJMRSwgMCwg MCwgMCB9LAotICAgICB7VkxDX0NPREVDX0k0MjBfMTJCLCBBVl9QSVhfRk1UX1lVVjQyMFAxMkJF LCAwLCAwLCAwIH0sCi0gI2VuZGlmCi1AQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QKLSAgICAge1ZMQ19DT0RFQ19JNDIyXzlCLCBBVl9QSVhfRk1UX1lVVjQyMlA5QkUsIDAs IDAsIDAgfSwKLSAgICAge1ZMQ19DT0RFQ19JNDIyXzEwTCwgQVZfUElYX0ZNVF9ZVVY0MjJQMTBM RSwgMCwgMCwgMCB9LAotICAgICB7VkxDX0NPREVDX0k0MjJfMTBCLCBBVl9QSVhfRk1UX1lVVjQy MlAxMEJFLCAwLCAwLCAwIH0sCi0tI2lmIChMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyA+PSAxMDAg JiYgTElCQVZVVElMX1ZFUlNJT05fSU5UID49IEFWX1ZFUlNJT05fSU5UKCA1NCwgMTcsIDEwMCAp ICkKLSsjaWYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soIDU0LCAxNywgMTAwICkKLSAgICAge1ZM Q19DT0RFQ19JNDIyXzEyTCwgQVZfUElYX0ZNVF9ZVVY0MjJQMTJMRSwgMCwgMCwgMCB9LAotICAg ICB7VkxDX0NPREVDX0k0MjJfMTJCLCBBVl9QSVhfRk1UX1lVVjQyMlAxMkJFLCAwLCAwLCAwIH0s Ci0gI2VuZGlmCi1AQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QKLSAgICAg e1ZMQ19DT0RFQ19JNDQ0XzlCLCBBVl9QSVhfRk1UX1lVVjQ0NFA5QkUsIDAsIDAsIDAgfSwKLSAg ICAge1ZMQ19DT0RFQ19JNDQ0XzEwTCwgQVZfUElYX0ZNVF9ZVVY0NDRQMTBMRSwgMCwgMCwgMCB9 LAotICAgICB7VkxDX0NPREVDX0k0NDRfMTBCLCBBVl9QSVhfRk1UX1lVVjQ0NFAxMEJFLCAwLCAw LCAwIH0sCi0tI2lmIChMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyA+PSAxMDAgJiYgTElCQVZVVElM X1ZFUlNJT05fSU5UID49IEFWX1ZFUlNJT05fSU5UKCA1NCwgMTcsIDEwMCApICkKLSsjaWYgTElC QVZVVElMX1ZFUlNJT05fQ0hFQ0soIDU0LCAxNywgMTAwICkKLSAgICAge1ZMQ19DT0RFQ19JNDQ0 XzEyTCwgQVZfUElYX0ZNVF9ZVVY0NDRQMTJMRSwgMCwgMCwgMCB9LAotICAgICB7VkxDX0NPREVD X0k0NDRfMTJCLCBBVl9QSVhfRk1UX1lVVjQ0NFAxMkJFLCAwLCAwLCAwIH0sCi0gI2VuZGlmCi1A QCAtMTQ1LDcgKzE0NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QKLSAgICAgVkxDX1JHQiggVkxD X0NPREVDX1JHQjMyLCBBVl9QSVhfRk1UXzBCR1IzMiwgQVZfUElYX0ZNVF8wUkdCMzIsIDB4MDAw MDAwZmYsIDB4MDAwMGZmMDAsIDB4MDBmZjAwMDAgKQotICNlbmRpZgotIAotLSNpZiAoTElCQVZV VElMX1ZFUlNJT05fTUlDUk8gPT0gMCB8fCBMSUJBVlVUSUxfVkVSU0lPTl9JTlQgPj0gQVZfVkVS U0lPTl9JTlQoIDU1LCAwLCAxMDAgKSApCi0rI2lmIChMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyA9 PSAwIHx8IExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKCA1NSwgMCwgMTAwICkgKQotICNpZmRlZiBX T1JEU19CSUdFTkRJQU4KLSAgICAge1ZMQ19DT0RFQ19SR0JBNjQsIEFWX1BJWF9GTVRfUkdCQTY0 QkUsIDAsIDAsIDAgfSwKLSAjZWxzZSAvKiAhV09SRFNfQklHRU5ESUFOICovCi1kaWZmIC0tZ2l0 IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMv dmlkZW8uYwotaW5kZXggZGVlZmQzMDc2YTkuLmQzMjg0ZGE4YWVkIDEwMDY0NAotLS0tIGEvbW9k dWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy92 aWRlby5jCi1AQCAtMzksNyArMzksOCBAQAotICNpbmNsdWRlIDxsaWJhdmNvZGVjL2F2Y29kZWMu aD4KLSAjaW5jbHVkZSA8bGliYXZ1dGlsL21lbS5oPgotICNpbmNsdWRlIDxsaWJhdnV0aWwvcGl4 ZGVzYy5oPgotLSNpZiAoTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gPj0gMTAwICYmIExJQkFWVVRJ TF9WRVJTSU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggNTUsIDE2LCAxMDEgKSApCi0rI2luY2x1 ZGUgImF2Y29tbW9uX2NvbXBhdC5oIgotKyNpZiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggNTUs IDE2LCAxMDEgKQotICNpbmNsdWRlIDxsaWJhdnV0aWwvbWFzdGVyaW5nX2Rpc3BsYXlfbWV0YWRh dGEuaD4KLSAjZW5kaWYKLSAKLUBAIC05OTUsNyArOTk2LDcgQEAgc3RhdGljIGludCBEZWNvZGVT aWRlZGF0YSggZGVjb2Rlcl90ICpwX2RlYywgY29uc3QgQVZGcmFtZSAqZnJhbWUsIHBpY3R1cmVf dCAqcF8KLSAgICAgZGVjb2Rlcl9zeXNfdCAqcF9zeXMgPSBwX2RlYy0+cF9zeXM7Ci0gICAgIGJv b2wgZm9ybWF0X2NoYW5nZWQgPSBmYWxzZTsKLSAKLS0jaWYgKExJQkFWVVRJTF9WRVJTSU9OX01J Q1JPID49IDEwMCAmJiBMSUJBVlVUSUxfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQoIDU1 LCAxNiwgMTAxICkgKQotKyNpZiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyggNTUsIDE2LCAxMDEg KQotICNkZWZpbmUgRlJPTV9BVlJBVChkZWZhdWx0X2ZhY3RvciwgYXZyYXQpIFwKLSAodWludDY0 X3QpKGRlZmF1bHRfZmFjdG9yKSAqIChhdnJhdCkubnVtIC8gKGF2cmF0KS5kZW4KLSAgICAgY29u c3QgQVZGcmFtZVNpZGVEYXRhICptZXRhZGF0YSA9Ci1AQCAtMTA1MCw3ICsxMDUxLDcgQEAgc3Rh dGljIGludCBEZWNvZGVTaWRlZGF0YSggZGVjb2Rlcl90ICpwX2RlYywgY29uc3QgQVZGcmFtZSAq ZnJhbWUsIHBpY3R1cmVfdCAqcF8KLSAjdW5kZWYgRlJPTV9BVlJBVAotICAgICB9Ci0gI2VuZGlm Ci0tI2lmIChMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyA+PSAxMDAgJiYgTElCQVZVVElMX1ZFUlNJ T05fSU5UID49IEFWX1ZFUlNJT05fSU5UKCA1NSwgNjAsIDEwMCApICkKLSsjaWYgTElCQVZVVElM X1ZFUlNJT05fQ0hFQ0soIDU1LCA2MCwgMTAwICkKLSAgICAgY29uc3QgQVZGcmFtZVNpZGVEYXRh ICptZXRhZGF0YV9sdCA9Ci0gICAgICAgICAgICAgYXZfZnJhbWVfZ2V0X3NpZGVfZGF0YSggZnJh bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfRlJBTUVfREFUQV9D T05URU5UX0xJR0hUX0xFVkVMICk7Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gNTU0YTk3YWIzM2Nk NjgwYjYwNzMxZWM4NWZkOTEyMjMyOTI5MTcyNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFN0ZXZlIExob21tZSA8cm9idXg0QHljYmNyLnh5ej4KLURhdGU6IFRodSwgNyBOb3YgMjAy NCAwNzoyMjoyNiArMDEwMAotU3ViamVjdDogW1BBVENIIDAzLzE1XSBhdmNvbW1vbjogcmVuYW1l IExJQkFWRk9STUFUX1ZFUlNJT05fQ0hFQ0sgdG8KLSBMSUJBVl9GT1JNQVRfVkVSU0lPTl9DSEVD SwotCi1UaGUgTElCQVZGT1JNQVRfVkVSU0lPTl9DSEVDSyBmb3JtIHdpbGwgYmUgZm9yIGNoZWNr cyBhbHNvIGRvbmUgaW4gNC4wLgotCi1ObyBmdW5jdGlvbmFsIGNoYW5nZXMuCi0tLS0KLSBtb2R1 bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29tcGF0LmggfCAgMiArLQotIG1vZHVsZXMvZGVt dXgvYXZmb3JtYXQvbXV4LmMgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KLSAyIGZpbGVzIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaCBiL21vZHVsZXMvY29kZWMvYXZj b2RlYy9hdmNvbW1vbl9jb21wYXQuaAotaW5kZXggNWJhZGU5M2IzYzUuLmQwMDk2YmMxYmJiIDEw MDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oCi0rKysg Yi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29tcGF0LmgKLUBAIC0xMjYsNyArMTI2 LDcgQEAKLSAjaWZkZWYgSEFWRV9MSUJBVkZPUk1BVF9BVkZPUk1BVF9ICi0gIyBpbmNsdWRlIDxs aWJhdmZvcm1hdC9hdmZvcm1hdC5oPgotIAotLSNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9D SEVDSyggYSwgYiwgYywgZCwgZSApIFwKLSsjZGVmaW5lIExJQkFWX0ZPUk1BVF9WRVJTSU9OX0NI RUNLKCBhLCBiLCBjLCBkLCBlICkgXAotICAgICAoIChMSUJBVkZPUk1BVF9WRVJTSU9OX01JQ1JP IDwgIDEwMCAmJiBMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggYSwg YiwgYyApICkgfHwgXAotICAgICAgIChMSUJBVkZPUk1BVF9WRVJTSU9OX01JQ1JPID49IDEwMCAm JiBMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggYSwgZCwgZSApICkg KQotIAotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMgYi9tb2R1bGVz L2RlbXV4L2F2Zm9ybWF0L211eC5jCi1pbmRleCAwMzNhODdiZGFhYS4uMTgyZTk0NTg3YWQgMTAw NjQ0Ci0tLS0gYS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi0rKysgYi9tb2R1bGVzL2Rl bXV4L2F2Zm9ybWF0L211eC5jCi1AQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3Qgc291dF9tdXhfc3lz X3QKLSAgICAgYm9vbCAgICAgYl93cml0ZV9oZWFkZXI7Ci0gICAgIGJvb2wgICAgIGJfd3JpdGVf a2V5ZnJhbWU7Ci0gICAgIGJvb2wgICAgIGJfZXJyb3I7Ci0tI2lmIExJQkFWRk9STUFUX1ZFUlNJ T05fQ0hFQ0soIDU3LCA3LCAwLCA0MCwgMTAwICkKLSsjaWYgTElCQVZfRk9STUFUX1ZFUlNJT05f Q0hFQ0soIDU3LCA3LCAwLCA0MCwgMTAwICkKLSAgICAgYm9vbCAgICAgYl9oZWFkZXJfZG9uZTsK LSAjZW5kaWYKLSB9OwotQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIGludCBJT1dyaXRlKCB2b2lk ICpvcGFxdWUsIHVpbnQ4X3QgKmJ1ZiwgaW50IGJ1Zl9zaXplICk7Ci0gc3RhdGljIGludCBJT1dy aXRlKCB2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGJ1Zl9zaXplICk7Ci0g I2VuZGlmCi0gc3RhdGljIGludDY0X3QgSU9TZWVrKCB2b2lkICpvcGFxdWUsIGludDY0X3Qgb2Zm c2V0LCBpbnQgd2hlbmNlICk7Ci0tI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fQ0hFQ0soIDU3LCA3 LCAwLCA0MCwgMTAwICkKLSsjaWYgTElCQVZfRk9STUFUX1ZFUlNJT05fQ0hFQ0soIDU3LCA3LCAw LCA0MCwgMTAwICkKLSAjIGlmIEZGX0FQSV9BVklPX1dSSVRFX05PTkNPTlNUCi0gc3RhdGljIGlu dCBJT1dyaXRlVHlwZWQodm9pZCAqb3BhcXVlLCB1aW50OF90ICpidWYsIGludCBidWZfc2l6ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWSU9EYXRhTWFya2VyVHlwZSB0 eXBlLCBpbnQ2NF90IHRpbWUpOwotQEAgLTE2OCw3ICsxNjgsNyBAQCBpbnQgYXZmb3JtYXRfT3Bl bk11eCggdmxjX29iamVjdF90ICpwX3RoaXMgKQotICAgICBwX3N5cy0+Yl93cml0ZV9oZWFkZXIg PSB0cnVlOwotICAgICBwX3N5cy0+Yl93cml0ZV9rZXlmcmFtZSA9IGZhbHNlOwotICAgICBwX3N5 cy0+Yl9lcnJvciA9IGZhbHNlOwotLSNpZiBMSUJBVkZPUk1BVF9WRVJTSU9OX0NIRUNLKCA1Nywg NywgMCwgNDAsIDEwMCApCi0rI2lmIExJQkFWX0ZPUk1BVF9WRVJTSU9OX0NIRUNLKCA1NywgNywg MCwgNDAsIDEwMCApCi0gICAgIHBfc3lzLT5pby0+d3JpdGVfZGF0YV90eXBlID0gSU9Xcml0ZVR5 cGVkOwotICAgICBwX3N5cy0+Yl9oZWFkZXJfZG9uZSA9IGZhbHNlOwotICNlbmRpZgotQEAgLTQx OSw3ICs0MTksNyBAQCBzdGF0aWMgaW50IE11eEJsb2NrKCBzb3V0X211eF90ICpwX211eCwgc291 dF9pbnB1dF90ICpwX2lucHV0ICkKLSAgICAgcmV0dXJuIFZMQ19TVUNDRVNTOwotIH0KLSAKLS0j aWYgTElCQVZGT1JNQVRfVkVSU0lPTl9DSEVDSyggNTcsIDcsIDAsIDQwLCAxMDAgKQotKyNpZiBM SUJBVl9GT1JNQVRfVkVSU0lPTl9DSEVDSyggNTcsIDcsIDAsIDQwLCAxMDAgKQotICMgaWYgRkZf QVBJX0FWSU9fV1JJVEVfTk9OQ09OU1QKLSBpbnQgSU9Xcml0ZVR5cGVkKHZvaWQgKm9wYXF1ZSwg dWludDhfdCAqYnVmLCBpbnQgYnVmX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZW51bSBBVklPRGF0YU1hcmtlclR5cGUgdHlwZSwgaW50NjRfdCB0aW1lKQotQEAgLTU0NSw3 ICs1NDUsNyBAQCBzdGF0aWMgaW50IElPV3JpdGUoIHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhf dCAqYnVmLCBpbnQgYnVmX3NpemUgKQotIAotICAgICBpZiggcF9zeXMtPmJfd3JpdGVfaGVhZGVy ICkKLSAgICAgICAgIHBfYnVmLT5pX2ZsYWdzIHw9IEJMT0NLX0ZMQUdfSEVBREVSOwotLSNpZiBM SUJBVkZPUk1BVF9WRVJTSU9OX0NIRUNLKCA1NywgNywgMCwgNDAsIDEwMCApCi0rI2lmIExJQkFW X0ZPUk1BVF9WRVJTSU9OX0NIRUNLKCA1NywgNywgMCwgNDAsIDEwMCApCi0gICAgIGlmKCAhcF9z eXMtPmJfaGVhZGVyX2RvbmUgKQotICAgICAgICAgcF9idWYtPmlfZmxhZ3MgfD0gQkxPQ0tfRkxB R19IRUFERVI7Ci0gI2VuZGlmCi0tLSAKLUdpdExhYgotCi0KLUZyb20gZDQwNmEzMTI3NjM1YWZj YmEyNDM2Y2JjOWNiYjNlZmJkYzgyNjMzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFN0ZXZlIExob21tZSA8cm9idXg0QHljYmNyLnh5ej4KLURhdGU6IFdlZCwgMTkgSnVuIDIwMjQg MTM6NTc6MjQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwNC8xNV0gYXZjb21tb246IHVzZSBhIHNw ZWNpZmljIG1hY3JvIHRvIGNoZWNrIHRoZSBGRm1wZWcKLSBsaWJhdmZvcm1hdCB2ZXJzaW9uCi0K LVRoaXMgbWFjcm8gZG9lc24ndCBjaGVjayBmb3IgbGliYXYgd2hpY2ggaXMgYXNzdW1lZCB0byBu b3QgaGF2ZSB0byByZWxldmFudAotY29kZS4gVGhpcyBpcyB0aGUgc2FtZSBtYWNybyBuYW1lIHVz ZWQgaW4gVkxDIDQuMC4KLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbi5oICAg ICAgICB8ICAyICstCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oIHwg IDggKysrKysrKysKLSBtb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4LmMgICAgICAgICAgfCAg MyArLS0KLSBtb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jICAgICAgICAgICAgfCAxMSArKysr LS0tLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb24uaCBiL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbi5oCi1pbmRleCBmZjVkYmEwNmM5Mi4uYWEwYzBi ODhiODUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb24uaAotKysr IGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uLmgKLUBAIC0xMDYsNyArMTA2LDcgQEAg c3RhdGljIGlubGluZSB2b2lkIHZsY19pbml0X2F2Zm9ybWF0KHZsY19vYmplY3RfdCAqb2JqKQot IAotICAgICBhdmZvcm1hdF9uZXR3b3JrX2luaXQoKTsKLSAKLS0jaWYgKExJQkFWRk9STUFUX1ZF UlNJT05fTUlDUk8gPCAxMDApIHx8IChMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVCA8IEFWX1ZFUlNJ T05fSU5UKDU4LCA5LCAxMDApKQotKyNpZiAoTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyA8IDEw MCkgfHwgIShMSUJBVkZPUk1BVF9WRVJTSU9OX0NIRUNLKDU4LCA5LCAxMDApKQotICAgICBhdl9y ZWdpc3Rlcl9hbGwoKTsKLSAjZW5kaWYKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvYXZjb21tb25fY29tcGF0LmggYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25f Y29tcGF0LmgKLWluZGV4IGQwMDk2YmMxYmJiLi4zZmVhYjNhNjU3ZSAxMDA2NDQKLS0tLSBhL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAotKysrIGIvbW9kdWxlcy9jb2Rl Yy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oCi1AQCAtMTI2LDYgKzEyNiwxNCBAQAotICNpZmRl ZiBIQVZFX0xJQkFWRk9STUFUX0FWRk9STUFUX0gKLSAjIGluY2x1ZGUgPGxpYmF2Zm9ybWF0L2F2 Zm9ybWF0Lmg+Ci0gCi0rLyogY2hlY2sgdGhlIEZGbXBlZyBsaWJhdmZvcm1hdCB2ZXJzaW9uICov Ci0rI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJTSU9OX0NIRUNLKCBhLCBkLCBlICkgXAotKyAgICAo TElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyA+PSAxMDAgJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9J TlQgPj0gQVZfVkVSU0lPTl9JTlQoIGEsIGQsIGUgKSApCi0rCi0rLyogTElCQVZfRk9STUFUX1ZF UlNJT05fQ0hFQ0sgY2hlY2tzIGZvciB0aGUgcmlnaHQgbGliYXZmb3JtYXQgdmVyc2lvbiBvZiBs aWJhdiBhbmQgRkZtcGVnCi0rICogYSBpcyB0aGUgbWFqb3IgdmVyc2lvbgotKyAqIGIgYW5kIGMg dGhlIG1pbm9yIGFuZCBtaWNybyB2ZXJzaW9ucyBvZiBsaWJhdgotKyAqIGQgYW5kIGUgdGhlIG1p bm9yIGFuZCBtaWNybyB2ZXJzaW9ucyBvZiBGRm1wZWcgKi8KLSAjZGVmaW5lIExJQkFWX0ZPUk1B VF9WRVJTSU9OX0NIRUNLKCBhLCBiLCBjLCBkLCBlICkgXAotICAgICAoIChMSUJBVkZPUk1BVF9W RVJTSU9OX01JQ1JPIDwgIDEwMCAmJiBMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVCA+PSBBVl9WRVJT SU9OX0lOVCggYSwgYiwgYyApICkgfHwgXAotICAgICAgIChMSUJBVkZPUk1BVF9WRVJTSU9OX01J Q1JPID49IDEwMCAmJiBMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCgg YSwgZCwgZSApICkgKQotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvZGVtdXgu YyBiL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvZGVtdXguYwotaW5kZXggODMwZGMwMTU3ZTIuLjM5 ZDIzNjZjZWYyIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9kZW11eC5jCi0r KysgYi9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4LmMKLUBAIC01Miw4ICs1Miw3IEBACi0g Ci0gIyBkZWZpbmUgSEFWRV9BVlVUSUxfQ09ERUNfQVRUQUNITUVOVCAxCi0gCi0tI2lmIExJQkFW Rk9STUFUX1ZFUlNJT05fTUlDUk8gPj0gMTAwICYmIFwKLS0gICAgTElCQVZGT1JNQVRfVkVSU0lP Tl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQoNTksIDAsIDEwMCkKLSsjaWYgTElCQVZGT1JNQVRfVkVS U0lPTl9DSEVDSyg1OSwgMCwgMTAwKQotICMgZGVmaW5lIEFWRl9NQVlCRV9DT05TVCBjb25zdAot ICNlbHNlCi0gIyBkZWZpbmUgQVZGX01BWUJFX0NPTlNUCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9k ZW11eC9hdmZvcm1hdC9tdXguYyBiL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLWluZGV4 IDE4MmU5NDU4N2FkLi42NjRhNjQ2NzM0YyAxMDA2NDQKLS0tLSBhL21vZHVsZXMvZGVtdXgvYXZm b3JtYXQvbXV4LmMKLSsrKyBiL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLUBAIC05NSw4 ICs5NSw3IEBAIGludCBJT1dyaXRlVHlwZWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpi dWYsIGludCBidWZfc2l6ZSwKLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gaW50IGF2Zm9ybWF0 X09wZW5NdXgoIHZsY19vYmplY3RfdCAqcF90aGlzICkKLSB7Ci0tI2lmIExJQkFWRk9STUFUX1ZF UlNJT05fTUlDUk8gPj0gMTAwICYmIFwKLS0gICAgTElCQVZGT1JNQVRfVkVSU0lPTl9JTlQgPj0g QVZfVkVSU0lPTl9JTlQoNTksIDAsIDEwMCkKLSsjaWYgTElCQVZGT1JNQVRfVkVSU0lPTl9DSEVD Syg1OSwgMCwgMTAwKQotICAgICBjb25zdCBBVk91dHB1dEZvcm1hdCAqZmlsZV9vZm9ybWF0Owot ICNlbHNlCi0gICAgIEFWT3V0cHV0Rm9ybWF0ICpmaWxlX29mb3JtYXQ7Ci1AQCAtMTA0LDggKzEw Myw3IEBAIGludCBhdmZvcm1hdF9PcGVuTXV4KCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAg IHNvdXRfbXV4X3QgKnBfbXV4ID0gKHNvdXRfbXV4X3QqKXBfdGhpczsKLSAgICAgYm9vbCBkdW1t eSA9ICFzdHJjbXAoIHBfbXV4LT5wX2FjY2Vzcy0+cHN6X2FjY2VzcywgImR1bW15Iik7Ci0gCi0t I2lmICggKExJQkFWRk9STUFUX1ZFUlNJT05fTUlDUk8gPj0gMTAwKSBcCi0tICAgICAgJiYgKExJ QkFWRk9STUFUX1ZFUlNJT05fSU5UIDwgQVZfVkVSU0lPTl9JTlQoNTgsIDcsIDEwMCkpICkKLSsj aWYgTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyA+PSAxMDAgJiYgIShMSUJBVkZPUk1BVF9WRVJT SU9OX0NIRUNLKDU4LCA3LCAxMDApKQotICAgICBpZiggZHVtbXkgJiYgc3RybGVuKHBfbXV4LT5w X2FjY2Vzcy0+cHN6X3BhdGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj0gc2l6 ZW9mICgoKEFWRm9ybWF0Q29udGV4dCAqKU5VTEwpLT5maWxlbmFtZSkgKQotICAgICAgICAgcmV0 dXJuIFZMQ19FR0VORVJJQzsKLUBAIC0xNDQsOCArMTQyLDcgQEAgaW50IGF2Zm9ybWF0X09wZW5N dXgoIHZsY19vYmplY3RfdCAqcF90aGlzICkKLSAgICAgcF9zeXMtPm9jLT5vZm9ybWF0ID0gZmls ZV9vZm9ybWF0OwotICAgICAvKiBJZiB3ZSB1c2UgZHVtbXkgYWNjZXNzLCBsZXQgYXZmb3JtYXQg d3JpdGUgb3V0cHV0ICovCi0gICAgIGlmKCBkdW1teSApCi0tI2lmICggKExJQkFWRk9STUFUX1ZF UlNJT05fTUlDUk8gPj0gMTAwKSBcCi0tICAgICAgJiYgKExJQkFWRk9STUFUX1ZFUlNJT05fSU5U ID49IEFWX1ZFUlNJT05fSU5UKDU4LCA3LCAxMDApKSApCi0rI2lmIExJQkFWRk9STUFUX1ZFUlNJ T05fQ0hFQ0soNTgsIDcsIDEwMCkKLSAgICAgICAgIHBfc3lzLT5vYy0+dXJsID0gYXZfc3RyZHVw KHBfbXV4LT5wX2FjY2Vzcy0+cHN6X3BhdGgpOwotICNlbHNlCi0gICAgICAgICBzdHJjcHkoIHBf c3lzLT5vYy0+ZmlsZW5hbWUsIHBfbXV4LT5wX2FjY2Vzcy0+cHN6X3BhdGggKTsKLUBAIC0zOTcs NyArMzk0LDcgQEAgc3RhdGljIGludCBNdXhCbG9jayggc291dF9tdXhfdCAqcF9tdXgsIHNvdXRf aW5wdXRfdCAqcF9pbnB1dCApCi0gICAgICAgICBwa3QtPmR0cyA9IHBfZGF0YS0+aV9kdHMgKiBw X3N0cmVhbS0+dGltZV9iYXNlLmRlbiAvCi0gICAgICAgICAgICAgQ0xPQ0tfRlJFUSAvIHBfc3Ry ZWFtLT50aW1lX2Jhc2UubnVtOwotIAotLSNpZiBMSUJBVkZPUk1BVF9WRVJTSU9OX01JQ1JPID49 IDEwMCAmJiBMSUJBVkZPUk1BVF9WRVJTSU9OX0lOVCA8IEFWX1ZFUlNJT05fSU5UKDU5LCAyLCAx MDMpCi0rI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fTUlDUk8gPj0gMTAwICYmICEoTElCQVZGT1JN QVRfVkVSU0lPTl9DSEVDSyg1OSwgMiwgMTAzKSkKLSAgICAgLyogdGhpcyBpcyBhbm90aGVyIGhh Y2sgdG8gcHJldmVudCBsaWJhdmZvcm1hdCBmcm9tIHRyaWdnZXJpbmcgdGhlICJub24gbW9ub3Rv bmUgdGltZXN0YW1wcyIgY2hlY2sgaW4gYXZmb3JtYXQvdXRpbHMuYyAqLwotICAgICBwX3N0cmVh bS0+Y3VyX2R0cyA9ICggcF9kYXRhLT5pX2R0cyAqIHBfc3RyZWFtLT50aW1lX2Jhc2UuZGVuIC8K LSAgICAgICAgICAgICBDTE9DS19GUkVRIC8gcF9zdHJlYW0tPnRpbWVfYmFzZS5udW0gKSAtIDE7 Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gOTMwZGRjMGQwZmVjNTVmZmY2YzJlZDBmZmNjOTA0Nzcz YmFlNjYyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXZlIExob21tZSA8cm9i dXg0QHljYmNyLnh5ej4KLURhdGU6IFRodSwgNyBOb3YgMjAyNCAwNzoyMzoyNyArMDEwMAotU3Vi amVjdDogW1BBVENIIDA1LzE1XSBhdmNvbW1vbjogcmVuYW1lIExJQkFWQ09ERUNfVkVSU0lPTl9D SEVDSyB0bwotIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0sKLQotVGhlIExJQkFWQ09ERUNfVkVS U0lPTl9DSEVDSyBmb3JtIHdpbGwgYmUgZm9yIGNoZWNrcyBhbHNvIGRvbmUgaW4gNC4wLgotCi1O byBmdW5jdGlvbmFsIGNoYW5nZXMuCi0tLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8u YyAgICAgICAgICAgfCAgOCArKysrLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1v bl9jb21wYXQuaCB8ICA0ICsrLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvZDNkMTF2YS5jICAg ICAgICAgfCAgNCArKy0tCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYyAgICAgICAg IHwgMTAgKysrKystLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9mb3VyY2MuYyAgICAgICAg ICB8IDE0ICsrKysrKystLS0tLS0tCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMgICAg ICAgICAgIHwgIDIgKy0KLSA2IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIxIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMg Yi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotaW5kZXggNDQzMzVlYzNjY2UuLjdhOTc5 ZTk2ZTE5IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLSsrKyBi L21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1AQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRp YyBpbnQgT3BlbkF1ZGlvQ29kZWMoIGRlY29kZXJfdCAqcF9kZWMgKQotICAgICB9Ci0gCi0gICAg IGN0eC0+c2FtcGxlX3JhdGUgPSBwX2RlYy0+Zm10X2luLmF1ZGlvLmlfcmF0ZTsKLS0jaWYgTElC QVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwgMjQsIDEwMCkKLSsjaWYgTElCQVZf Q09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAxMDApCi0gICAgIGF2X2NoYW5u ZWxfbGF5b3V0X2RlZmF1bHQoICZjdHgtPmNoX2xheW91dCwgcF9kZWMtPmZtdF9pbi5hdWRpby5p X2NoYW5uZWxzICk7Ci0gI2Vsc2UKLSAgICAgY3R4LT5jaGFubmVscyA9IHBfZGVjLT5mbXRfaW4u YXVkaW8uaV9jaGFubmVsczsKLUBAIC00MDIsNyArNDAyLDcgQEAgc3RhdGljIGludCBEZWNvZGVC bG9jayggZGVjb2Rlcl90ICpwX2RlYywgYmxvY2tfdCAqKnBwX2Jsb2NrICkKLSAgICAgICAgIHJl dCA9IGF2Y29kZWNfcmVjZWl2ZV9mcmFtZSggY3R4LCBmcmFtZSApOwotICAgICAgICAgaWYoIHJl dCA9PSAwICkKLSAgICAgICAgIHsKLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5 OTksIDk5OSwgMjQsIDEwMCkKLSsjaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5 LCA5OTksIDI0LCAxMDApCi0gICAgICAgICAgICAgaW50IGNoYW5uZWxzID0gZnJhbWUtPmNoX2xh eW91dC5uYl9jaGFubmVsczsKLSAjZWxzZQotICAgICAgICAgICAgIGludCBjaGFubmVscyA9IGN0 eC0+Y2hhbm5lbHM7Ci1AQCAtNTkyLDcgKzU5Miw3IEBAIHN0YXRpYyB2b2lkIFNldHVwT3V0cHV0 Rm9ybWF0KCBkZWNvZGVyX3QgKnBfZGVjLCBib29sIGJfdHJ1c3QgKQotICAgICBwX2RlYy0+Zm10 X291dC5hdWRpby5pX3JhdGUgPSBwX3N5cy0+cF9jb250ZXh0LT5zYW1wbGVfcmF0ZTsKLSAKLSAg ICAgLyogKi8KLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwgMjQs IDEwMCkKLSsjaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAx MDApCi0gICAgIGlmKCBwX3N5cy0+aV9wcmV2aW91c19jaGFubmVscyA9PSBwX3N5cy0+cF9jb250 ZXh0LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgJiYKLSAgICAgICAgIHBfc3lzLT5pX3ByZXZpb3Vz X2xheW91dCA9PSBwX3N5cy0+cF9jb250ZXh0LT5jaF9sYXlvdXQudS5tYXNrICkKLSAgICAgICAg IHJldHVybjsKLUBAIC02MTcsNyArNjE3LDcgQEAgc3RhdGljIHZvaWQgU2V0dXBPdXRwdXRGb3Jt YXQoIGRlY29kZXJfdCAqcF9kZWMsIGJvb2wgYl90cnVzdCApCi0gCi0gICAgIGludCBpX2NoYW5u ZWxzX3NyYyA9IDAsIGNoYW5uZWxfY291bnQ7Ci0gICAgIHVpbnQ2NF90IGNoYW5uZWxfbGF5b3V0 X21hc2s7Ci0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAx MDApCi0rI2lmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAw KQotICAgICBjaGFubmVsX2xheW91dF9tYXNrID0gcF9zeXMtPnBfY29udGV4dC0+Y2hfbGF5b3V0 LnUubWFzazsKLSAgICAgY2hhbm5lbF9jb3VudCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91 dC5uYl9jaGFubmVsczsKLSAjZWxpZiBBUElfQ0hBTk5FTF9MQVlPVVQKLWRpZmYgLS1naXQgYS9t b2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29tcGF0LmggYi9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvYXZjb21tb25fY29tcGF0LmgKLWluZGV4IDNmZWFiM2E2NTdlLi5iNTA0ZmNkODIxOCAx MDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAotKysr IGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oCi1AQCAtMzAsMTEgKzMw LDExIEBACi0gI2lmZGVmIEhBVkVfTElCQVZDT0RFQ19BVkNPREVDX0gKLSAjaW5jbHVkZSA8bGli YXZjb2RlYy9hdmNvZGVjLmg+Ci0gCi0tLyogTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLIGNoZWNr cyBmb3IgdGhlIHJpZ2h0IHZlcnNpb24gb2YgbGliYXYgYW5kIEZGbXBlZwotKy8qIExJQkFWX0NP REVDX1ZFUlNJT05fQ0hFQ0sgY2hlY2tzIGZvciB0aGUgcmlnaHQgdmVyc2lvbiBvZiBsaWJhdiBh bmQgRkZtcGVnCi0gICogYSBpcyB0aGUgbWFqb3IgdmVyc2lvbgotICAqIGIgYW5kIGMgdGhlIG1p bm9yIGFuZCBtaWNybyB2ZXJzaW9ucyBvZiBsaWJhdgotICAqIGQgYW5kIGUgdGhlIG1pbm9yIGFu ZCBtaWNybyB2ZXJzaW9ucyBvZiBGRm1wZWcgKi8KLS0jZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lP Tl9DSEVDSyggYSwgYiwgYywgZCwgZSApIFwKLSsjZGVmaW5lIExJQkFWX0NPREVDX1ZFUlNJT05f Q0hFQ0soIGEsIGIsIGMsIGQsIGUgKSBcCi0gICAgICggKExJQkFWQ09ERUNfVkVSU0lPTl9NSUNS TyA8ICAxMDAgJiYgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggYSwg YiwgYyApICkgfHwgXAotICAgICAgIChMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gPj0gMTAwICYm IExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQoIGEsIGQsIGUgKSApICkK LSAKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZDNkMTF2YS5jIGIvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2QzZDExdmEuYwotaW5kZXggNTI2MDYyODM2NGYuLmUxYzEwZDMxMTg4 IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2QzZDExdmEuYwotKysrIGIvbW9k dWxlcy9jb2RlYy9hdmNvZGVjL2QzZDExdmEuYwotQEAgLTc2LDcgKzc2LDcgQEAgdmxjX21vZHVs ZV9lbmQoKQotICAqIFNvIHdlIGdldCB0aGUgc3VyZmFjZXMgZnJvbSB0aGUgZGVjb2RlciBwb29s IHdoZW4gbmVlZGVkLiBXZSBkb24ndCBuZWVkIHRvCi0gICogZXh0cmFjdCB0aGUgZGVjb2RlZCBz dXJmYWNlIGludG8gdGhlIGRlY29kZXIgcGljdHVyZSBhbnltb3JlLgotICAqLwotLSNkZWZpbmUg RDNEMTFfRElSRUNUX0RFQ09ERSAgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgMzAsIDMs IDcyLCAxMDEgKQotKyNkZWZpbmUgRDNEMTFfRElSRUNUX0RFQ09ERSAgTElCQVZfQ09ERUNfVkVS U0lPTl9DSEVDSyggNTcsIDMwLCAzLCA3MiwgMTAxICkKLSAKLSAjaW5jbHVkZSA8aW5pdGd1aWQu aD4gLyogbXVzdCBiZSBsYXN0IGluY2x1ZGVkIHRvIG5vdCByZWRlZmluZSBleGlzdGluZyBHVUlE cyAqLwotIAotQEAgLTc2NCw3ICs3NjQsNyBAQCBzdGF0aWMgaW50IER4Q3JlYXRlRGVjb2RlclN1 cmZhY2VzKHZsY192YV90ICp2YSwgaW50IGNvZGVjX2lkLAotICAgICAgICAgICAgIGFzc2VydCh0 ZXhEZXNjLkZvcm1hdCA9PSBzeXMtPnJlbmRlcik7Ci0gICAgICAgICAgICAgYXNzZXJ0KHRleERl c2MuQmluZEZsYWdzICYgRDNEMTFfQklORF9ERUNPREVSKTsKLSAKLS0jaWYgIUxJQkFWQ09ERUNf VkVSU0lPTl9DSEVDSyggNTcsIDI3LCAyLCA2MSwgMTAyICkKLSsjaWYgIUxJQkFWX0NPREVDX1ZF UlNJT05fQ0hFQ0soIDU3LCAyNywgMiwgNjEsIDEwMiApCi0gICAgICAgICAgICAgaWYgKHBpYy0+ cF9zeXMtPnNsaWNlX2luZGV4ICE9IHN1cmZhY2VfaWR4KQotICAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICAgbXNnX1dhcm4odmEsICJkM2QxMXZhIHJlcXVpcmVzIGRlY29kaW5nIHNsaWNl cyB0byBiZSB0aGUgZmlyc3QgaW4gdGhlIHRleHR1cmUgKCVkLyVkKSIsCi1kaWZmIC0tZ2l0IGEv bW9kdWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9l bmNvZGVyLmMKLWluZGV4IGM5YTM0ZDhmMGRhLi45Y2Y5YTdkMDYwNyAxMDA2NDQKLS0tLSBhL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2Rl Yy9lbmNvZGVyLmMKLUBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IHBp X2NoYW5uZWxzX21hcFtdWzJdID0KLSAgICAgeyBBVl9DSF9TVEVSRU9fUklHSFQsICAgICAgMCB9 LAotIH07Ci0gCi0tIyBpZiAhTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwg MjQsIDEwMCkKLSsjIGlmICFMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwg MjQsIDEwMCkKLSBzdGF0aWMgY29uc3QgdWludDMyX3QgY2hhbm5lbF9tYXNrW11bMl0gPSB7Ci0g ICAgIHswLDB9LAotICAgICB7QU9VVF9DSEFOX0NFTlRFUiwgQVZfQ0hfTEFZT1VUX01PTk99LAot QEAgLTc2NSw3ICs3NjUsNyBAQCBpbnQgSW5pdFZpZGVvRW5jKCB2bGNfb2JqZWN0X3QgKnBfdGhp cyApCi0gICAgICAgICB1aW50MzJfdCBvcmRlcl9tYXNrID0gMDsKLSAgICAgICAgIGludCBpX2No YW5uZWxzX3NyYyA9IDA7Ci0gICAgICAgICBtc2dfRGJnKCBwX2VuYywgIkNyZWF0aW5nIGNoYW5u ZWwgb3JkZXIgZm9yIHJlb3JkZXJpbmciKTsKLS0jIGlmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVD Syg1OSwgOTk5LCA5OTksIDI0LCAxMDApCi0rIyBpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNL KDU5LCA5OTksIDk5OSwgMjQsIDEwMCkKLSAgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1 bHQoICZwX2NvbnRleHQtPmNoX2xheW91dCwgcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVs cyApOwotICAgICAgICAgdWludDY0X3QgY2hhbm5lbF9tYXNrID0gcF9jb250ZXh0LT5jaF9sYXlv dXQudS5tYXNrOwotICMgZWxzZQotQEAgLTkxOCw3ICs5MTgsNyBAQCBlcnJtc2c6Ci0gCi0gICAg ICAgICBpZiggcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscyA+IDIgKQotICAgICAgICAg ewotLSNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQot KyNpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwgMjQsIDEwMCkKLSAg ICAgICAgICAgICBhdl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCAmcF9jb250ZXh0LT5jaF9sYXlv dXQsIDIgKTsKLSAjZWxzZQotICAgICAgICAgICAgIHBfY29udGV4dC0+Y2hhbm5lbHMgPSAyOwot QEAgLTEyODIsNyArMTI4Miw3IEBAIHN0YXRpYyBibG9ja190ICpoYW5kbGVfZGVsYXlfYnVmZmVy KCBlbmNvZGVyX3QgKnBfZW5jLCBlbmNvZGVyX3N5c190ICpwX3N5cywgdW5zCi0gICAgIGF2X2Zy YW1lX3VucmVmKCBwX3N5cy0+ZnJhbWUgKTsKLSAgICAgcF9zeXMtPmZyYW1lLT5mb3JtYXQgICAg ID0gcF9zeXMtPnBfY29udGV4dC0+c2FtcGxlX2ZtdDsKLSAgICAgcF9zeXMtPmZyYW1lLT5uYl9z YW1wbGVzID0gbGVmdG92ZXJfc2FtcGxlcyArIHBfc3lzLT5pX3NhbXBsZXNfZGVsYXk7Ci0tI2lm IExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAxMDApCi0rI2lmIExJ QkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotICAgICBhdl9j aGFubmVsX2xheW91dF9jb3B5KCZwX3N5cy0+ZnJhbWUtPmNoX2xheW91dCwgJnBfc3lzLT5wX2Nv bnRleHQtPmNoX2xheW91dCk7Ci0gI2Vsc2UKLSAgICAgcF9zeXMtPmZyYW1lLT5jaGFubmVsX2xh eW91dCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxfbGF5b3V0OwotQEAgLTE0MTcsNyArMTQx Nyw3IEBAIHN0YXRpYyBibG9ja190ICpFbmNvZGVBdWRpbyggZW5jb2Rlcl90ICpwX2VuYywgYmxv Y2tfdCAqcF9hb3V0X2J1ZiApCi0gICAgICAgICBwX3N5cy0+ZnJhbWUtPnB0cyAgICAgICAgPSBk YXRlX0dldCggJnBfc3lzLT5idWZmZXJfZGF0ZSApICogcF9zeXMtPnBfY29udGV4dC0+dGltZV9i YXNlLmRlbiAvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xPQ0tfRlJF USAvIHBfc3lzLT5wX2NvbnRleHQtPnRpbWVfYmFzZS5udW07Ci0gCi0tI2lmIExJQkFWQ09ERUNf VkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAxMDApCi0rI2lmIExJQkFWX0NPREVDX1ZF UlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotICAgICAgICAgYXZfY2hhbm5lbF9s YXlvdXRfY29weSgmcF9zeXMtPmZyYW1lLT5jaF9sYXlvdXQsICZwX3N5cy0+cF9jb250ZXh0LT5j aF9sYXlvdXQpOwotICNlbHNlCi0gICAgICAgICBwX3N5cy0+ZnJhbWUtPmNoYW5uZWxfbGF5b3V0 ID0gcF9zeXMtPnBfY29udGV4dC0+Y2hhbm5lbF9sYXlvdXQ7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2ZvdXJjYy5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2ZvdXJjYy5j Ci1pbmRleCA5N2YzMTg4MjExZC4uM2FlYTZiNThmZjAgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2Nv ZGVjL2F2Y29kZWMvZm91cmNjLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9mb3VyY2Mu YwotQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZsY19hdmNvZGVjX2Zv dXJjYyB2aWRlb19jb2RlY3NbXSA9Ci0gICAgIHsgVkxDX0NPREVDX0NMTEMsIEFWX0NPREVDX0lE X0NMTEMgfSwKLSAgICAgeyBWTENfQ09ERUNfTVNTMiwgQVZfQ09ERUNfSURfTVNTMiB9LAotICAg ICB7IFZMQ19DT0RFQ19WUDksIEFWX0NPREVDX0lEX1ZQOSB9LAotLSNpZiBMSUJBVkNPREVDX1ZF UlNJT05fQ0hFQ0soIDU3LCAyNiwgMCwgODMsIDEwMSApCi0rI2lmIExJQkFWX0NPREVDX1ZFUlNJ T05fQ0hFQ0soIDU3LCAyNiwgMCwgODMsIDEwMSApCi0gICAgIHsgVkxDX0NPREVDX0FWMSwgQVZf Q09ERUNfSURfQVYxIH0sCi0gI2VuZGlmCi0gICAgIHsgVkxDX0NPREVDX0lDT0QsIEFWX0NPREVD X0lEX0FJQyB9LAotQEAgLTI4NSwxOSArMjg1LDE5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdmxj X2F2Y29kZWNfZm91cmNjIHZpZGVvX2NvZGVjc1tdID0KLSAgICAgLyogZmZtcGVnIG9ubHk6IEFW X0NPREVDX0lEX1NOT1cgKi8KLSAgICAgLyogZmZtcGVnIG9ubHk6IEFWX0NPREVDX0lEX1NNVkpQ RUcgKi8KLSAKLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgOTk5LCA5OTksIDI0 LCAxMDIgKQotKyNpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgOTk5LCA5OTksIDI0 LCAxMDIgKQotICAgICB7IFZMQ19DT0RFQ19DSU5FRk9STSwgQVZfQ09ERUNfSURfQ0ZIRCB9LAot ICNlbmRpZgotIAotLSNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTksIDk5OSwg NzAsIDEwMCApCi0rI2lmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTksIDk5OSwg NzAsIDEwMCApCi0gICAgIHsgVkxDX0NPREVDX1BJWExFVCwgQVZfQ09ERUNfSURfUElYTEVUIH0s Ci0gI2VuZGlmCi0gCi0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcsIDk5OSwgOTk5 LCA3MSwgMTAxICkKLSsjaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcsIDk5OSwgOTk5 LCA3MSwgMTAxICkKLSAgICAgeyBWTENfQ09ERUNfU1BFRURIUSwgQVZfQ09ERUNfSURfU1BFRURI USB9LAotICNlbmRpZgotIAotLSNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTks IDk5OSwgNzksIDEwMCApCi0rI2lmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTks IDk5OSwgNzksIDEwMCApCi0gICAgIHsgVkxDX0NPREVDX0ZNVkMsIEFWX0NPREVDX0lEX0ZNVkMg fSwKLSAjZW5kaWYKLSB9OwotQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHZsY19hdmNvZGVjX2ZvdXJjYyBhdWRpb19jb2RlY3NbXSA9Ci0gICAgIC8qIEFWX0NPREVDX0lE X1dFU1RXT09EX1NORDEgKi8KLSAgICAgeyBWTENfQ09ERUNfR1NNLCBBVl9DT0RFQ19JRF9HU00g fSwKLSAgICAgeyBWTENfQ09ERUNfUURNMiwgQVZfQ09ERUNfSURfUURNMiB9LAotLSNpZiBMSUJB VkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTksIDk5OSwgNzEsIDEwMCApCi0rI2lmIExJQkFW X0NPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTksIDk5OSwgNzEsIDEwMCApCi0gICAgIHsgVkxD X0NPREVDX1FETUMsIEFWX0NPREVDX0lEX1FETUMgfSwKLSAjZW5kaWYKLSAgICAgeyBWTENfQ09E RUNfQ09PSywgQVZfQ09ERUNfSURfQ09PSyB9LAotQEAgLTQ4Miw3ICs0ODIsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHZsY19hdmNvZGVjX2ZvdXJjYyBzcHVfY29kZWNzW10gPQotICAgICB7IFZM Q19DT0RFQ19TU0EsIEFWX0NPREVDX0lEX1NTQSB9LAotICAgICAvKiBBVl9DT0RFQ19JRF9NT1Zf VEVYVCAqLwotICAgICB7IFZMQ19DT0RFQ19CRF9QRywgQVZfQ09ERUNfSURfSERNVl9QR1NfU1VC VElUTEUgfSwKLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgOTk5LCA5OTksIDcx LCAxMDAgKQotKyNpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgOTk5LCA5OTksIDcx LCAxMDAgKQotICAgICB7IFZMQ19DT0RFQ19CRF9URVhULCBBVl9DT0RFQ19JRF9IRE1WX1RFWFRf U1VCVElUTEUgfSwKLSAjZW5kaWYKLSAgICAgeyBWTENfQ09ERUNfVEVMRVRFWFQsIEFWX0NPREVD X0lEX0RWQl9URUxFVEVYVCB9LAotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy92 aWRlby5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMKLWluZGV4IGQzMjg0ZGE4YWVk Li41NTJjNjAyZWRmNiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy92aWRlby5j Ci0rKysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvdmlkZW8uYwotQEAgLTEzMDcsNyArMTMwNyw3 IEBAIHN0YXRpYyBwaWN0dXJlX3QgKkRlY29kZUJsb2NrKCBkZWNvZGVyX3QgKnBfZGVjLCBibG9j a190ICoqcHBfYmxvY2ssIGJvb2wgKmVycm9yCi0gICAgICAgICB9Ci0gCi0gICAgICAgICAvKiBD b21wdXRlIHRoZSBQVFMgKi8KLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU3LCAyNCwg MCwgNjEsIDEwMCkKLSsjaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyg1NywgMjQsIDAsIDYx LCAxMDApCi0gIyBpZiBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gPj0gMTAwCi0gICAgICAgICB2 bGNfdGlja190IGlfcHRzID0gZnJhbWUtPmJlc3RfZWZmb3J0X3RpbWVzdGFtcDsKLSAjIGVsc2UK LS0tIAotR2l0TGFiCi0KLQotRnJvbSBjZTA4NDE1MmM5YmFkZTA0MWNhMThlMTljM2IyNjRlNGUx MzRjNmMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RldmUgTGhvbW1lIDxyb2J1 eDRAeWNiY3IueHl6PgotRGF0ZTogV2VkLCAxOSBKdW4gMjAyNCAxMzo1OToxNSArMDIwMAotU3Vi amVjdDogW1BBVENIIDA2LzE1XSBhdmNvbW1vbjogdXNlIGEgc3BlY2lmaWMgbWFjcm8gdG8gY2hl Y2sgdGhlIEZGbXBlZwotIGxpYmF2Y29kZWMgdmVyc2lvbgotCi1UaGlzIG1hY3JvIGRvZXNuJ3Qg Y2hlY2sgZm9yIGxpYmF2IHdoaWNoIGlzIGFzc3VtZWQgdG8gbm90IGhhdmUgdG8gcmVsZXZhbnQK LWNvZGUuIFRoaXMgaXMgdGhlIHNhbWUgbWFjcm8gbmFtZSB1c2VkIGluIFZMQyA0LjAuCi0tLS0K LSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyAgICAgICAgICAgfCAgOCArKysrLS0tLQot IG1vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbi5oICAgICAgICB8ICAyICstCi0gbW9kdWxl cy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oIHwgIDQgKysrKwotIG1vZHVsZXMvY29k ZWMvYXZjb2RlYy9kaXJlY3R4X3ZhLmMgICAgICB8ICA0ICsrLS0KLSBtb2R1bGVzL2NvZGVjL2F2 Y29kZWMvZW5jb2Rlci5jICAgICAgICAgfCAxMyArKysrKystLS0tLS0tCi0gbW9kdWxlcy9jb2Rl Yy9hdmNvZGVjL2ZvdXJjYy5jICAgICAgICAgIHwgMTggKysrKysrKystLS0tLS0tLS0tCi0gbW9k dWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMgICAgICAgICAgIHwgIDMgKy0tCi0gbW9kdWxlcy9k ZW11eC9hdmZvcm1hdC9kZW11eC5jICAgICAgICAgIHwgIDIgKy0KLSBtb2R1bGVzL2RlbXV4L2F2 Zm9ybWF0L211eC5jICAgICAgICAgICAgfCAgMiArLQotIDkgZmlsZXMgY2hhbmdlZCwgMjggaW5z ZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvYXVkaW8uYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCA3 YTk3OWU5NmUxOS4uYTNmNjdmN2JkOTMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29k ZWMvYXVkaW8uYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC0xNDIs NyArMTQyLDcgQEAgc3RhdGljIGludCBPcGVuQXVkaW9Db2RlYyggZGVjb2Rlcl90ICpwX2RlYyAp Ci0gICAgIH0KLSAKLSAgICAgY3R4LT5zYW1wbGVfcmF0ZSA9IHBfZGVjLT5mbXRfaW4uYXVkaW8u aV9yYXRlOwotLSNpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5OTksIDk5OSwgMjQs IDEwMCkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAwKQotICAgICBh dl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCAmY3R4LT5jaF9sYXlvdXQsIHBfZGVjLT5mbXRfaW4u YXVkaW8uaV9jaGFubmVscyApOwotICNlbHNlCi0gICAgIGN0eC0+Y2hhbm5lbHMgPSBwX2RlYy0+ Zm10X2luLmF1ZGlvLmlfY2hhbm5lbHM7Ci1AQCAtNDAyLDcgKzQwMiw3IEBAIHN0YXRpYyBpbnQg RGVjb2RlQmxvY2soIGRlY29kZXJfdCAqcF9kZWMsIGJsb2NrX3QgKipwcF9ibG9jayApCi0gICAg ICAgICByZXQgPSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoIGN0eCwgZnJhbWUgKTsKLSAgICAgICAg IGlmKCByZXQgPT0gMCApCi0gICAgICAgICB7Ci0tI2lmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hF Q0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0so NTksIDI0LCAxMDApCi0gICAgICAgICAgICAgaW50IGNoYW5uZWxzID0gZnJhbWUtPmNoX2xheW91 dC5uYl9jaGFubmVsczsKLSAjZWxzZQotICAgICAgICAgICAgIGludCBjaGFubmVscyA9IGN0eC0+ Y2hhbm5lbHM7Ci1AQCAtNTkyLDcgKzU5Miw3IEBAIHN0YXRpYyB2b2lkIFNldHVwT3V0cHV0Rm9y bWF0KCBkZWNvZGVyX3QgKnBfZGVjLCBib29sIGJfdHJ1c3QgKQotICAgICBwX2RlYy0+Zm10X291 dC5hdWRpby5pX3JhdGUgPSBwX3N5cy0+cF9jb250ZXh0LT5zYW1wbGVfcmF0ZTsKLSAKLSAgICAg LyogKi8KLS0jaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAx MDApCi0rI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkKLSAgICAgaWYo IHBfc3lzLT5pX3ByZXZpb3VzX2NoYW5uZWxzID09IHBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91 dC5uYl9jaGFubmVscyAmJgotICAgICAgICAgcF9zeXMtPmlfcHJldmlvdXNfbGF5b3V0ID09IHBf c3lzLT5wX2NvbnRleHQtPmNoX2xheW91dC51Lm1hc2sgKQotICAgICAgICAgcmV0dXJuOwotQEAg LTYxNyw3ICs2MTcsNyBAQCBzdGF0aWMgdm9pZCBTZXR1cE91dHB1dEZvcm1hdCggZGVjb2Rlcl90 ICpwX2RlYywgYm9vbCBiX3RydXN0ICkKLSAKLSAgICAgaW50IGlfY2hhbm5lbHNfc3JjID0gMCwg Y2hhbm5lbF9jb3VudDsKLSAgICAgdWludDY0X3QgY2hhbm5lbF9sYXlvdXRfbWFzazsKLS0jaWYg TElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgOTk5LCA5OTksIDI0LCAxMDApCi0rI2lmIExJ QkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkKLSAgICAgY2hhbm5lbF9sYXlvdXRf bWFzayA9IHBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91dC51Lm1hc2s7Ci0gICAgIGNoYW5uZWxf Y291bnQgPSBwX3N5cy0+cF9jb250ZXh0LT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7Ci0gI2VsaWYg QVBJX0NIQU5ORUxfTEFZT1VUCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2 Y29tbW9uLmggYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb24uaAotaW5kZXggYWEwYzBi ODhiODUuLjEwYWQxM2RjNWY4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2 Y29tbW9uLmgKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbi5oCi1AQCAtMTIz LDcgKzEyMyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2bGNfaW5pdF9hdmNvZGVjKHZsY19vYmpl Y3RfdCAqb2JqKQotIAotICAgICB2bGNfaW5pdF9hdnV0aWwob2JqKTsKLSAKLS0jaWYgKExJQkFW Rk9STUFUX1ZFUlNJT05fTUlDUk8gPCAxMDApIHx8IChMSUJBVkNPREVDX1ZFUlNJT05fSU5UIDwg QVZfVkVSU0lPTl9JTlQoNTgsIDEwLCAxMDApKQotKyNpZiAoTElCQVZGT1JNQVRfVkVSU0lPTl9N SUNSTyA8IDEwMCkgfHwgIShMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTgsIDEwLCAxMDApKQot ICAgICBhdmNvZGVjX3JlZ2lzdGVyX2FsbCgpOwotICNlbmRpZgotIAotZGlmZiAtLWdpdCBhL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaCBiL21vZHVsZXMvY29kZWMvYXZj b2RlYy9hdmNvbW1vbl9jb21wYXQuaAotaW5kZXggYjUwNGZjZDgyMTguLmFjMDJjMDZkMjMzIDEw MDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oCi0rKysg Yi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25fY29tcGF0LmgKLUBAIC0zMCw2ICszMCwx MCBAQAotICNpZmRlZiBIQVZFX0xJQkFWQ09ERUNfQVZDT0RFQ19ICi0gI2luY2x1ZGUgPGxpYmF2 Y29kZWMvYXZjb2RlYy5oPgotIAotKy8qIGNoZWNrIHRoZSBGRm1wZWcgbGliYXZ1dGlsIHZlcnNp b24gKi8KLSsjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyggYSwgZCwgZSApIFwKLSsg ICAgKExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyA+PSAxMDAgJiYgTElCQVZDT0RFQ19WRVJTSU9O X0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggYSwgZCwgZSApICkKLSsKLSAvKiBMSUJBVl9DT0RFQ19W RVJTSU9OX0NIRUNLIGNoZWNrcyBmb3IgdGhlIHJpZ2h0IHZlcnNpb24gb2YgbGliYXYgYW5kIEZG bXBlZwotICAqIGEgaXMgdGhlIG1ham9yIHZlcnNpb24KLSAgKiBiIGFuZCBjIHRoZSBtaW5vciBh bmQgbWljcm8gdmVyc2lvbnMgb2YgbGliYXYKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvZGlyZWN0eF92YS5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2RpcmVjdHhfdmEuYwot aW5kZXggNWI3OTgwZmQ5N2QuLjM2YTVkNjFhNTU5IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2Rl Yy9hdmNvZGVjL2RpcmVjdHhfdmEuYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2RpcmVj dHhfdmEuYwotQEAgLTI4NCw3ICsyODQsNyBAQCBzdGF0aWMgY29uc3QgZGlyZWN0eF92YV9tb2Rl X3QgRFhWQV9NT0RFU1tdID0gewotIAotICAgICAvKiBWUHggKi8KLSAgICAgeyAiVlA4IiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZEWFZBX01vZGVWUDhfVkxELCAgICAgICAgICAgICAgICAgICAgICA4LCAw LCBOVUxMIH0sCi0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQo IDU3LCAxNywgMTAwICkgJiYgTElCQVZDT0RFQ19WRVJTSU9OX01JQ1JPID49IDEwMAotKyNpZiBM SUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCAxNywgMTAwICkKLSAgICAgeyAiVlA5IHByb2Zp bGUgMCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZEWFZBX01vZGVWUDlfVkxEX1Byb2ZpbGUwLCAgICAgICAgICAgICA4LCBB Vl9DT0RFQ19JRF9WUDksIFBST0ZfVlA5X01BSU4gfSwKLSAgICAgeyAiVlA5IHByb2ZpbGUgMiIs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZEWFZBX01vZGVWUDlfVkxEXzEwYml0X1Byb2ZpbGUyLCAgICAgICAxMCwgQVZfQ09E RUNfSURfVlA5LCBQUk9GX1ZQOV8xMCB9LAotICNlbHNlCi1AQCAtMjk0LDcgKzI5NCw3IEBAIHN0 YXRpYyBjb25zdCBkaXJlY3R4X3ZhX21vZGVfdCBEWFZBX01PREVTW10gPSB7Ci0gICAgIHsgIlZQ OSBwcm9maWxlIEludGVsIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmRFhWQV9Nb2RlVlA5X1ZMRF9JbnRlbCwgICAgICAgICAgICAg ICAgOCwgMCwgTlVMTCB9LAotIAotICAgICAvKiBBVjEgKi8KLS0jaWYgTElCQVZDT0RFQ19WRVJT SU9OX0lOVCA+PSBBVl9WRVJTSU9OX0lOVCggNTgsIDExMiwgMTAzICkgJiYgTElCQVZDT0RFQ19W RVJTSU9OX01JQ1JPID49IDEwMAotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU4LCAx MTIsIDEwMyApCi0gICAgIHsgIkFWMSBNYWluIHByb2ZpbGUgOCIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRFhWQV9Nb2RlQVYxX1ZM RF9Qcm9maWxlMCwgICAgICAgICAgICAgOCwgQVZfQ09ERUNfSURfQVYxLCBQUk9GX0FWMV9NQUlO IH0sCi0gICAgIHsgIkFWMSBNYWluIHByb2ZpbGUgMTAiLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRFhWQV9Nb2RlQVYxX1ZMRF9Qcm9m aWxlMCwgICAgICAgICAgICAgMTAsIEFWX0NPREVDX0lEX0FWMSwgUFJPRl9BVjFfTUFJTiB9LAot ICAgICB7ICJBVjEgSGlnaCBwcm9maWxlIDgiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkRYVkFfTW9kZUFWMV9WTERfUHJvZmlsZTEs ICAgICAgICAgICAgIDgsIEFWX0NPREVDX0lEX0FWMSwgUFJPRl9BVjFfSElHSCB9LAotZGlmZiAt LWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMgYi9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvZW5jb2Rlci5jCi1pbmRleCA5Y2Y5YTdkMDYwNy4uMjAxNGI4YWZhZjUgMTAwNjQ0Ci0t LS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jCi0rKysgYi9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvZW5jb2Rlci5jCi1AQCAtNjEsOCArNjEsNyBAQAotIAotICNkZWZpbmUgUkFXX0FV RElPX0ZSQU1FX1NJWkUgKDIwNDgpCi0gCi0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyA+ PSAxMDAgJiYgXAotLSAgICBMSUJBVkNPREVDX1ZFUlNJT05fSU5UID49IEFWX1ZFUlNJT05fSU5U KDU5LCAwLCAxMDApCi0rI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMCwgMTAwKQot ICMgZGVmaW5lIEFWQ19NQVlCRV9DT05TVCBjb25zdAotICNlbHNlCi0gIyBkZWZpbmUgQVZDX01B WUJFX0NPTlNUCi1AQCAtMTgzLDcgKzE4Miw3IEBAIHN0YXRpYyBjb25zdCB1aW50NjRfdCBwaV9j aGFubmVsc19tYXBbXVsyXSA9Ci0gICAgIHsgQVZfQ0hfU1RFUkVPX1JJR0hULCAgICAgIDAgfSwK LSB9OwotIAotLSMgaWYgIUxJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAy NCwgMTAwKQotKyMgaWYgIUxJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkKLSBz dGF0aWMgY29uc3QgdWludDMyX3QgY2hhbm5lbF9tYXNrW11bMl0gPSB7Ci0gICAgIHswLDB9LAot ICAgICB7QU9VVF9DSEFOX0NFTlRFUiwgQVZfQ0hfTEFZT1VUX01PTk99LAotQEAgLTc2NSw3ICs3 NjQsNyBAQCBpbnQgSW5pdFZpZGVvRW5jKCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAgICAg ICB1aW50MzJfdCBvcmRlcl9tYXNrID0gMDsKLSAgICAgICAgIGludCBpX2NoYW5uZWxzX3NyYyA9 IDA7Ci0gICAgICAgICBtc2dfRGJnKCBwX2VuYywgIkNyZWF0aW5nIGNoYW5uZWwgb3JkZXIgZm9y IHJlb3JkZXJpbmciKTsKLS0jIGlmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwg OTk5LCAyNCwgMTAwKQotKyMgaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAw KQotICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfZGVmYXVsdCggJnBfY29udGV4dC0+Y2hfbGF5 b3V0LCBwX2VuYy0+Zm10X291dC5hdWRpby5pX2NoYW5uZWxzICk7Ci0gICAgICAgICB1aW50NjRf dCBjaGFubmVsX21hc2sgPSBwX2NvbnRleHQtPmNoX2xheW91dC51Lm1hc2s7Ci0gIyBlbHNlCi1A QCAtOTE4LDcgKzkxNyw3IEBAIGVycm1zZzoKLSAKLSAgICAgICAgIGlmKCBwX2VuYy0+Zm10X291 dC5hdWRpby5pX2NoYW5uZWxzID4gMiApCi0gICAgICAgICB7Ci0tI2lmIExJQkFWX0NPREVDX1ZF UlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotKyNpZiBMSUJBVkNPREVDX1ZFUlNJ T05fQ0hFQ0soNTksIDI0LCAxMDApCi0gICAgICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfZGVm YXVsdCggJnBfY29udGV4dC0+Y2hfbGF5b3V0LCAyICk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICBw X2NvbnRleHQtPmNoYW5uZWxzID0gMjsKLUBAIC0xMjgyLDcgKzEyODEsNyBAQCBzdGF0aWMgYmxv Y2tfdCAqaGFuZGxlX2RlbGF5X2J1ZmZlciggZW5jb2Rlcl90ICpwX2VuYywgZW5jb2Rlcl9zeXNf dCAqcF9zeXMsIHVucwotICAgICBhdl9mcmFtZV91bnJlZiggcF9zeXMtPmZyYW1lICk7Ci0gICAg IHBfc3lzLT5mcmFtZS0+Zm9ybWF0ICAgICA9IHBfc3lzLT5wX2NvbnRleHQtPnNhbXBsZV9mbXQ7 Ci0gICAgIHBfc3lzLT5mcmFtZS0+bmJfc2FtcGxlcyA9IGxlZnRvdmVyX3NhbXBsZXMgKyBwX3N5 cy0+aV9zYW1wbGVzX2RlbGF5OwotLSNpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCA5 OTksIDk5OSwgMjQsIDEwMCkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwg MTAwKQotICAgICBhdl9jaGFubmVsX2xheW91dF9jb3B5KCZwX3N5cy0+ZnJhbWUtPmNoX2xheW91 dCwgJnBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91dCk7Ci0gI2Vsc2UKLSAgICAgcF9zeXMtPmZy YW1lLT5jaGFubmVsX2xheW91dCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxfbGF5b3V0Owot QEAgLTE0MTcsNyArMTQxNiw3IEBAIHN0YXRpYyBibG9ja190ICpFbmNvZGVBdWRpbyggZW5jb2Rl cl90ICpwX2VuYywgYmxvY2tfdCAqcF9hb3V0X2J1ZiApCi0gICAgICAgICBwX3N5cy0+ZnJhbWUt PnB0cyAgICAgICAgPSBkYXRlX0dldCggJnBfc3lzLT5idWZmZXJfZGF0ZSApICogcF9zeXMtPnBf Y29udGV4dC0+dGltZV9iYXNlLmRlbiAvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ0xPQ0tfRlJFUSAvIHBfc3lzLT5wX2NvbnRleHQtPnRpbWVfYmFzZS5udW07Ci0gCi0t I2lmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDk5OSwgOTk5LCAyNCwgMTAwKQotKyNp ZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAxMDApCi0gICAgICAgICBhdl9jaGFu bmVsX2xheW91dF9jb3B5KCZwX3N5cy0+ZnJhbWUtPmNoX2xheW91dCwgJnBfc3lzLT5wX2NvbnRl eHQtPmNoX2xheW91dCk7Ci0gI2Vsc2UKLSAgICAgICAgIHBfc3lzLT5mcmFtZS0+Y2hhbm5lbF9s YXlvdXQgPSBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVsX2xheW91dDsKLWRpZmYgLS1naXQgYS9t b2R1bGVzL2NvZGVjL2F2Y29kZWMvZm91cmNjLmMgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZm91 cmNjLmMKLWluZGV4IDNhZWE2YjU4ZmYwLi5kNzVjMjFmZmE0OSAxMDA2NDQKLS0tLSBhL21vZHVs ZXMvY29kZWMvYXZjb2RlYy9mb3VyY2MuYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2Zv dXJjYy5jCi1AQCAtMTgyLDEyICsxODIsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bGNfYXZj b2RlY19mb3VyY2MgdmlkZW9fY29kZWNzW10gPQotICAgICAvKiBBVl9DT0RFQ19JRF9WMjEwWCAq LwotICAgICB7IFZMQ19DT0RFQ19UTVYsIEFWX0NPREVDX0lEX1RNViB9LAotICAgICB7IFZMQ19D T0RFQ19WMjEwLCBBVl9DT0RFQ19JRF9WMjEwIH0sCi0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9N SUNSTyA+PSAxMDAKLS0jIGlmIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9J TlQoIDU5LCA0MiwgMTAyICkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1OSwgNDIs IDEwMiApCi0gICAgIHsgVkxDX0NPREVDX1ZVWUEsIEFWX0NPREVDX0lEX1JBV1ZJREVPIH0sCi0t IyBlbGlmIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgPj0gQVZfVkVSU0lPTl9JTlQoIDU0LCA1MCwg MTAwICkKLSsjZWxpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU0LCA1MCwgMTAwICkKLSAg ICAgeyBWTENfQ09ERUNfVlVZQSwgQVZfQ09ERUNfSURfQVlVViB9LAotLSMgZW5kaWYKLSAjZW5k aWYKLSAgICAgLyogQVZfQ09ERUNfSURfRFBYICovCi0gICAgIHsgVkxDX0NPREVDX01BRCwgQVZf Q09ERUNfSURfTUFEIH0sCi1AQCAtMjg1LDE5ICsyODMsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB2bGNfYXZjb2RlY19mb3VyY2MgdmlkZW9fY29kZWNzW10gPQotICAgICAvKiBmZm1wZWcgb25s eTogQVZfQ09ERUNfSURfU05PVyAqLwotICAgICAvKiBmZm1wZWcgb25seTogQVZfQ09ERUNfSURf U01WSlBFRyAqLwotIAotLSNpZiBMSUJBVl9DT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgOTk5LCA5 OTksIDI0LCAxMDIgKQotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCAyNCwgMTAy ICkKLSAgICAgeyBWTENfQ09ERUNfQ0lORUZPUk0sIEFWX0NPREVDX0lEX0NGSEQgfSwKLSAjZW5k aWYKLSAKLS0jaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcsIDk5OSwgOTk5LCA3MCwg MTAwICkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgNzAsIDEwMCApCi0gICAg IHsgVkxDX0NPREVDX1BJWExFVCwgQVZfQ09ERUNfSURfUElYTEVUIH0sCi0gI2VuZGlmCi0gCi0t I2lmIExJQkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTksIDk5OSwgNzEsIDEwMSApCi0r I2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcsIDcxLCAxMDEgKQotICAgICB7IFZMQ19D T0RFQ19TUEVFREhRLCBBVl9DT0RFQ19JRF9TUEVFREhRIH0sCi0gI2VuZGlmCi0gCi0tI2lmIExJ QkFWX0NPREVDX1ZFUlNJT05fQ0hFQ0soIDU3LCA5OTksIDk5OSwgNzksIDEwMCApCi0rI2lmIExJ QkFWQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcsIDc5LCAxMDAgKQotICAgICB7IFZMQ19DT0RFQ19G TVZDLCBBVl9DT0RFQ19JRF9GTVZDIH0sCi0gI2VuZGlmCi0gfTsKLUBAIC00MTQsNyArNDEyLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bGNfYXZjb2RlY19mb3VyY2MgYXVkaW9fY29kZWNzW10g PQotICAgICAvKiBBVl9DT0RFQ19JRF9XRVNUV09PRF9TTkQxICovCi0gICAgIHsgVkxDX0NPREVD X0dTTSwgQVZfQ09ERUNfSURfR1NNIH0sCi0gICAgIHsgVkxDX0NPREVDX1FETTIsIEFWX0NPREVD X0lEX1FETTIgfSwKLS0jaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcsIDk5OSwgOTk5 LCA3MSwgMTAwICkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1NywgNzEsIDEwMCAp Ci0gICAgIHsgVkxDX0NPREVDX1FETUMsIEFWX0NPREVDX0lEX1FETUMgfSwKLSAjZW5kaWYKLSAg ICAgeyBWTENfQ09ERUNfQ09PSywgQVZfQ09ERUNfSURfQ09PSyB9LAotQEAgLTQ4Miw3ICs0ODAs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZsY19hdmNvZGVjX2ZvdXJjYyBzcHVfY29kZWNzW10g PQotICAgICB7IFZMQ19DT0RFQ19TU0EsIEFWX0NPREVDX0lEX1NTQSB9LAotICAgICAvKiBBVl9D T0RFQ19JRF9NT1ZfVEVYVCAqLwotICAgICB7IFZMQ19DT0RFQ19CRF9QRywgQVZfQ09ERUNfSURf SERNVl9QR1NfU1VCVElUTEUgfSwKLS0jaWYgTElCQVZfQ09ERUNfVkVSU0lPTl9DSEVDSyggNTcs IDk5OSwgOTk5LCA3MSwgMTAwICkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1Nywg NzEsIDEwMCApCi0gICAgIHsgVkxDX0NPREVDX0JEX1RFWFQsIEFWX0NPREVDX0lEX0hETVZfVEVY VF9TVUJUSVRMRSB9LAotICNlbmRpZgotICAgICB7IFZMQ19DT0RFQ19URUxFVEVYVCwgQVZfQ09E RUNfSURfRFZCX1RFTEVURVhUIH0sCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVj L3ZpZGVvLmMgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvdmlkZW8uYwotaW5kZXggNTUyYzYwMmVk ZjYuLmMzMDZlOTE2YzdkIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVv LmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy92aWRlby5jCi1AQCAtMTgyNCw4ICsxODI0 LDcgQEAgbm9fcmV1c2U6Ci0gICAgIGlmICghY2FuX2h3YWNjZWwpCi0gICAgICAgICByZXR1cm4g c3dmbXQ7Ci0gCi0tI2lmIChMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gPj0gMTAwKSBcCi0tICAm JiAoTElCQVZDT0RFQ19WRVJTSU9OX0lOVCA8IEFWX1ZFUlNJT05fSU5UKDU3LCA4MywgMTAxKSkK LSsjaWYgKExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyA+PSAxMDApICYmICEoTElCQVZDT0RFQ19W RVJTSU9OX0NIRUNLKDU3LCA4MywgMTAxKSkKLSAgICAgaWYgKHBfY29udGV4dC0+YWN0aXZlX3Ro cmVhZF90eXBlKQotICAgICB7Ci0gICAgICAgICBtc2dfV2FybihwX2RlYywgInRocmVhZCB0eXBl ICVkOiBkaXNhYmxpbmcgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIiwKLWRpZmYgLS1naXQgYS9tb2R1 bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4LmMgYi9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4 LmMKLWluZGV4IDM5ZDIzNjZjZWYyLi45OTc1YjBmNDdiNiAxMDA2NDQKLS0tLSBhL21vZHVsZXMv ZGVtdXgvYXZmb3JtYXQvZGVtdXguYwotKysrIGIvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9kZW11 eC5jCi1AQCAtNDAwLDcgKzQwMCw3IEBAIGludCBhdmZvcm1hdF9PcGVuRGVtdXgoIHZsY19vYmpl Y3RfdCAqcF90aGlzICkKLSAgICAgICAgICAgICBlc19mb3JtYXRfSW5pdCggJmVzX2ZtdCwgQVVE SU9fRVMsIGZjYyApOwotICAgICAgICAgICAgIGVzX2ZtdC5pX29yaWdpbmFsX2ZvdXJjYyA9IENv ZGVjVGFnVG9Gb3VyY2MoIGNwLT5jb2RlY190YWcgKTsKLSAgICAgICAgICAgICBlc19mbXQuaV9i aXRyYXRlID0gY3AtPmJpdF9yYXRlOwotLSNpZiBMSUJBVkNPREVDX1ZFUlNJT05fSU5UID49IEFW X1ZFUlNJT05fSU5UKCA1OSwgMjQsIDEwMCApICYmIExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyA+ PSAxMDAKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA1OSwgMjQsIDEwMCApCi0gICAg ICAgICAgICAgZXNfZm10LmF1ZGlvLmlfY2hhbm5lbHMgPSBjcC0+Y2hfbGF5b3V0Lm5iX2NoYW5u ZWxzOwotICNlbHNlCi0gICAgICAgICAgICAgZXNfZm10LmF1ZGlvLmlfY2hhbm5lbHMgPSBjcC0+ Y2hhbm5lbHM7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9tdXguYyBiL21v ZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLWluZGV4IDY2NGE2NDY3MzRjLi5hNDgxOTBjOTNj YSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLSsrKyBiL21vZHVs ZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMKLUBAIC0yNzMsNyArMjczLDcgQEAgc3RhdGljIGludCBB ZGRTdHJlYW0oIHNvdXRfbXV4X3QgKnBfbXV4LCBzb3V0X2lucHV0X3QgKnBfaW5wdXQgKQotICAg ICB7Ci0gICAgIGNhc2UgQVVESU9fRVM6Ci0gICAgICAgICBjb2RlY3Bhci0+Y29kZWNfdHlwZSA9 IEFWTUVESUFfVFlQRV9BVURJTzsKLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0lOVCA+PSBBVl9W RVJTSU9OX0lOVCggNTksIDI0LCAxMDAgKSAmJiBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8gPj0g MTAwCi0rI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyggNTksIDI0LCAxMDAgKQotICAgICAg ICAgYXZfY2hhbm5lbF9sYXlvdXRfZGVmYXVsdCggJmNvZGVjcGFyLT5jaF9sYXlvdXQsIGZtdC0+ YXVkaW8uaV9jaGFubmVscyApOwotICNlbHNlCi0gICAgICAgICBjb2RlY3Bhci0+Y2hhbm5lbHMg PSBmbXQtPmF1ZGlvLmlfY2hhbm5lbHM7Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gNTM0NTY0YjI4 OWRiN2VlOTY2YWJmODg4MjA3MjU4YzNlNjgyOGM5OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFpoYW8gWmhpbGkgPHF1aW5rYmxhY2tAZm94bWFpbC5jb20+Ci1EYXRlOiBGcmksIDEx IEp1biAyMDIxIDE4OjAyOjM0ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggMDcvMTVdIGNvZGVjOiBh dmNvZGVjOiBjaGVjayBvcGVuIGNvZGVjIHJldHVybiB2YWx1ZQotCi0oY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCAyMWFiNmJlMjJlN2MxODMxY2ViZjAyM2ZkNTNiZDdmZmJmYWQyMmY2KSAoZWRp dGVkKQotZWRpdGVkOgotLSBvbiAzLjAgRGVjb2RlQmxvY2sgcmV0dXJucyBhIHBpY3R1cmVfdCwg bm90IGFuIGVycm9yIGNvZGUKLS0tLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jIHwg IDcgKysrKysrLQotIG1vZHVsZXMvY29kZWMvYXZjb2RlYy92aWRlby5jIHwgMTEgKysrKysrKy0t LS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyBiL21vZHVsZXMvY29k ZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCBhM2Y2N2Y3YmQ5My4uZTg0MzY3NTRmNGEgMTAwNjQ0 Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotKysrIGIvbW9kdWxlcy9jb2Rl Yy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC0zMDksNyArMzA5LDEyIEBAIHN0YXRpYyBpbnQgRGVjb2Rl QmxvY2soIGRlY29kZXJfdCAqcF9kZWMsIGJsb2NrX3QgKipwcF9ibG9jayApCi0gICAgICAmJiAh YXZjb2RlY19pc19vcGVuKCBjdHggKSApCi0gICAgIHsKLSAgICAgICAgIEluaXREZWNvZGVyQ29u ZmlnKCBwX2RlYywgY3R4ICk7Ci0tICAgICAgICBPcGVuQXVkaW9Db2RlYyggcF9kZWMgKTsKLSsg ICAgICAgIGlmKCBPcGVuQXVkaW9Db2RlYyggcF9kZWMgKSA8IDAgKQotKyAgICAgICAgewotKyAg ICAgICAgICAgIGlmKCBwcF9ibG9jayAhPSBOVUxMICYmICpwcF9ibG9jayAhPSBOVUxMICkKLSsg ICAgICAgICAgICAgICAgYmxvY2tfUmVsZWFzZSggKnBwX2Jsb2NrICk7Ci0rICAgICAgICAgICAg cmV0dXJuIFZMQ0RFQ19FQ1JJVElDQUw7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAKLSAgICAgaWYo ICFhdmNvZGVjX2lzX29wZW4oIGN0eCApICkKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvdmlkZW8uYyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy92aWRlby5jCi1pbmRleCBjMzA2 ZTkxNmM3ZC4uMDk2YTBiNzk0MGUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMv dmlkZW8uYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMKLUBAIC0xMTE0LDE3 ICsxMTE0LDIwIEBAIHN0YXRpYyBwaWN0dXJlX3QgKkRlY29kZUJsb2NrKCBkZWNvZGVyX3QgKnBf ZGVjLCBibG9ja190ICoqcHBfYmxvY2ssIGJvb2wgKmVycm9yCi0gICAgIGJvb2wgZW9zX3Nwb3R0 ZWQgPSBmYWxzZTsKLSAKLSAKLS0gICAgYmxvY2tfdCAqcF9ibG9jazsKLSsgICAgYmxvY2tfdCAq cF9ibG9jayA9IHBwX2Jsb2NrID8gKnBwX2Jsb2NrIDogTlVMTDsKLSAgICAgdmxjX3RpY2tfdCBj dXJyZW50X3RpbWU7Ci0gCi0gICAgIGlmKCAhcF9jb250ZXh0LT5leHRyYWRhdGFfc2l6ZSAmJiBw X2RlYy0+Zm10X2luLmlfZXh0cmEgKQotICAgICB7Ci0gICAgICAgICBmZm1wZWdfSW5pdENvZGVj KCBwX2RlYyApOwotLSAgICAgICAgaWYoICFhdmNvZGVjX2lzX29wZW4oIHBfY29udGV4dCApICkK LS0gICAgICAgICAgICBPcGVuVmlkZW9Db2RlYyggcF9kZWMgKTsKLSsgICAgICAgIGlmKCAhYXZj b2RlY19pc19vcGVuKCBwX2NvbnRleHQgKSAmJiBPcGVuVmlkZW9Db2RlYyhwX2RlYykgPCAwICkK LSsgICAgICAgIHsKLSsgICAgICAgICAgICBpZiggcF9ibG9jayAhPSBOVUxMICkKLSsgICAgICAg ICAgICAgICAgYmxvY2tfUmVsZWFzZSggcF9ibG9jayApOwotKyAgICAgICAgICAgIHJldHVybiBO VUxMOwotKyAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIHBfYmxvY2sgPSBwcF9ibG9jayA/ICpw cF9ibG9jayA6IE5VTEw7Ci0gICAgIGlmKCFwX2Jsb2NrICYmICEocF9zeXMtPnBfY29kZWMtPmNh cGFiaWxpdGllcyAmIEFWX0NPREVDX0NBUF9ERUxBWSkgKQotICAgICAgICAgcmV0dXJuIE5VTEw7 Ci0gCi0tLSAKLUdpdExhYgotCi0KLUZyb20gYjJiNTRlYjFlZmEzZWNjNzJhNGE2NGQwZDk2MmNh YjA2NzZmYmNlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXZlIExob21tZSA8 cm9idXg0QHljYmNyLnh5ej4KLURhdGU6IEZyaSwgNiBKYW4gMjAyMyAxMDoxNjowOSArMDEwMAot U3ViamVjdDogW1BBVENIIDA4LzE1XSBhdmNvZGVjOiB1c2UgQVJSQVlfU0laRSBpbnN0ZWFkIG9m IGN1c3RvbSBjb2RlCi0KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDI4YzgwZWU0N2U2Y2Rm OTYxZjUwMWVlZDlkNDgzNzk1NmIzOGFmZDEpCi0tLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMv YXVkaW8uYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jIGIvbW9k dWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLWluZGV4IGU4NDM2NzU0ZjRhLi4yMDc0NDAxMDQz MyAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi0rKysgYi9tb2R1 bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotQEAgLTU1OCw3ICs1NTgsNyBAQCB2bGNfZm91cmNj X3QgR2V0VmxjQXVkaW9Gb3JtYXQoIGludCBmbXQgKQotICAgICAgICAgW0FWX1NBTVBMRV9GTVRf RkxUUF0gID0gVkxDX0NPREVDX0ZMMzIsCi0gICAgICAgICBbQVZfU0FNUExFX0ZNVF9EQkxQXSAg PSBWTENfQ09ERUNfRkw2NCwKLSAgICAgfTsKLS0gICAgaWYoIChzaXplb2YoZmNjKSAvIHNpemVv ZihmY2NbMF0pKSA+ICh1bnNpZ25lZClmbXQgKQotKyAgICBpZiggQVJSQVlfU0laRShmY2MpID4g KHVuc2lnbmVkKWZtdCApCi0gICAgICAgICByZXR1cm4gZmNjW2ZtdF07Ci0gICAgIHJldHVybiBW TENfQ09ERUNfUzE2TjsKLSB9Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gNzYzZGMzZWJhNTJjYjc2 MzNhODRmNDRkY2RlMTk2MDJmY2E1ZWFjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IElsa2thIE9sbGFra2EgPGlsZW9vQHZpZGVvbGFuLm9yZz4KLURhdGU6IFdlZCwgNSBKdWwgMjAy MyAxNTowOTo1NyArMDMwMAotU3ViamVjdDogW1BBVENIIDA5LzE1XSBhdmNvZGVjL2F1ZGlvOiBt YWtlIGNoYW5uZWwgbWFwcGluZyBhcnJheSAwIHRlcm1pbmF0ZWQKLQotQWxzbyBjaGFuZ2UgcGlf Y2hhbm5lbHNfc3JjIHRvIGJlIG9ubHkgQU9VVF9DSEFOX01BWCBpbnN0ZWFkIG9mIHNhbWUKLXNp emUgYXMgbWFwcGluZyBhcnJheS4KLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMGZmODZi ZjhhMjhhMDgwMzQwZjYwMGNiODU2MTgxNWZjNDNlM2I0YSkgKHJlYmFzZWQpCi1yZWJhc2VkOgot LSB0aGUgY29kZSBhcm91bmQgaXMgc2xpZ2h0bHkgZGlmZmVyZW50Ci0tLS0KLSBtb2R1bGVzL2Nv ZGVjL2F2Y29kZWMvYXVkaW8uYyB8IDYgKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZj b2RlYy9hdWRpby5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLWluZGV4IDIwNzQ0 MDEwNDMzLi4wNGM1NDAxNzNiZiAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9h dWRpby5jCi0rKysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotQEAgLTU4NSw2ICs1 ODUsNyBAQCBzdGF0aWMgY29uc3QgdWludDY0X3QgcGlfY2hhbm5lbHNfbWFwW11bMl0gPQotICAg ICB7IEFWX0NIX1RPUF9CQUNLX1JJR0hULCAgICAwIH0sCi0gICAgIHsgQVZfQ0hfU1RFUkVPX0xF RlQsICAgICAgIDAgfSwKLSAgICAgeyBBVl9DSF9TVEVSRU9fUklHSFQsICAgICAgMCB9LAotKyAg ICB7IDAsIDAgfSwKLSB9OwotIAotIHN0YXRpYyB2b2lkIFNldHVwT3V0cHV0Rm9ybWF0KCBkZWNv ZGVyX3QgKnBfZGVjLCBib29sIGJfdHJ1c3QgKQotQEAgLTYxNyw4ICs2MTgsNyBAQCBzdGF0aWMg dm9pZCBTZXR1cE91dHB1dEZvcm1hdCggZGVjb2Rlcl90ICpwX2RlYywgYm9vbCBiX3RydXN0ICkK LSAgICAgfQotICNlbmRpZgotIAotLSAgICBjb25zdCB1bnNpZ25lZCBpX29yZGVyX21heCA9IHNp emVvZihwaV9jaGFubmVsc19tYXApL3NpemVvZigqcGlfY2hhbm5lbHNfbWFwKTsKLS0gICAgdWlu dDMyX3QgcGlfb3JkZXJfc3JjW2lfb3JkZXJfbWF4XTsKLSsgICAgdWludDMyX3QgcGlfb3JkZXJf c3JjW0FPVVRfQ0hBTl9NQVhdID0geyAwIH07Ci0gCi0gICAgIGludCBpX2NoYW5uZWxzX3NyYyA9 IDAsIGNoYW5uZWxfY291bnQ7Ci0gICAgIHVpbnQ2NF90IGNoYW5uZWxfbGF5b3V0X21hc2s7Ci1A QCAtNjM3LDcgKzYzNyw3IEBAIHN0YXRpYyB2b2lkIFNldHVwT3V0cHV0Rm9ybWF0KCBkZWNvZGVy X3QgKnBfZGVjLCBib29sIGJfdHJ1c3QgKQotIAotICAgICBpZiggY2hhbm5lbF9sYXlvdXRfbWFz ayApCi0gICAgIHsKLS0gICAgICAgIGZvciggdW5zaWduZWQgaSA9IDA7IGkgPCBpX29yZGVyX21h eAotKyAgICAgICAgZm9yKCB1bnNpZ25lZCBpID0gMDsgcGlfY2hhbm5lbHNfbWFwW2ldWzBdCi0g ICAgICAgICAgJiYgaV9jaGFubmVsc19zcmMgPCBjaGFubmVsX2NvdW50OyBpKysgKQotICAgICAg ICAgewotICAgICAgICAgICAgIGlmKCBjaGFubmVsX2xheW91dF9tYXNrICYgcGlfY2hhbm5lbHNf bWFwW2ldWzBdICkKLS0tIAotR2l0TGFiCi0KLQotRnJvbSBkMWZiNWM2Y2IzNzJkMjIzMzA0NjA2 NGRiMTc0ZGFmMTk4N2MxMjExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYt OD9xP0ZyYW49QzM9QTdvaXM9MjBDYXJ0ZWduaWU/PSA8ZmN2bGNkZXZAZnJlZS5mcj4KLURhdGU6 IE1vbiwgMTAgSnVuIDIwMjQgMTE6MTA6MzcgKzA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxMC8xNV0g Y29kZWM6IGF2Y29kZWM6IGZpeCBjaF9sYXlvdXQgcmVxdWlyZW1lbnQKLQotcmVmcyAjMjg2NjcK LQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNDE3Nzg1MzVkY2FlOGIxNDVlYmZhYTAzOTJk ZTI4MWU0NzBhOTFiZikgKGVkaXRlZCkKLWVkaXRlZDoKLS0gb24gMy4wIHRoZSBhdWRpbyBjaGVj ayB3YXMgc3RpbGwgdXNpbmcgYSBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0sgY2hlY2sKLS0gdGhl IG11eC9kZW11eCBjaGVja3Mgd2VyZSBhbHJlYWR5IHRoZXJlIHdpdGggZGlmZmVyZW50IHNwYWNl cwotLS0tCi0gbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMgIHwgMiArLQotIG1vZHVsZXMv ZGVtdXgvYXZmb3JtYXQvZGVtdXguYyB8IDIgKy0KLSBtb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211 eC5jICAgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyBiL21v ZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCAwNGM1NDAxNzNiZi4uOTc5MjU2YzQw MGEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotKysrIGIvbW9k dWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIGlu dCBPcGVuQXVkaW9Db2RlYyggZGVjb2Rlcl90ICpwX2RlYyApCi0gICAgIH0KLSAKLSAgICAgY3R4 LT5zYW1wbGVfcmF0ZSA9IHBfZGVjLT5mbXRfaW4uYXVkaW8uaV9yYXRlOwotLSNpZiBMSUJBVkNP REVDX1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAxMDApCi0rI2lmIExJQkFWVVRJTF9WRVJTSU9OX0NI RUNLKDU3LCAyNCwgMTAwKQotICAgICBhdl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCAmY3R4LT5j aF9sYXlvdXQsIHBfZGVjLT5mbXRfaW4uYXVkaW8uaV9jaGFubmVscyApOwotICNlbHNlCi0gICAg IGN0eC0+Y2hhbm5lbHMgPSBwX2RlYy0+Zm10X2luLmF1ZGlvLmlfY2hhbm5lbHM7Ci1kaWZmIC0t Z2l0IGEvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9kZW11eC5jIGIvbW9kdWxlcy9kZW11eC9hdmZv cm1hdC9kZW11eC5jCi1pbmRleCA5OTc1YjBmNDdiNi4uYzQ5ZjdlYjRmYzAgMTAwNjQ0Ci0tLS0g YS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4LmMKLSsrKyBiL21vZHVsZXMvZGVtdXgvYXZm b3JtYXQvZGVtdXguYwotQEAgLTQwMCw3ICs0MDAsNyBAQCBpbnQgYXZmb3JtYXRfT3BlbkRlbXV4 KCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAgICAgICAgICAgZXNfZm9ybWF0X0luaXQoICZl c19mbXQsIEFVRElPX0VTLCBmY2MgKTsKLSAgICAgICAgICAgICBlc19mbXQuaV9vcmlnaW5hbF9m b3VyY2MgPSBDb2RlY1RhZ1RvRm91cmNjKCBjcC0+Y29kZWNfdGFnICk7Ci0gICAgICAgICAgICAg ZXNfZm10LmlfYml0cmF0ZSA9IGNwLT5iaXRfcmF0ZTsKLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9O X0NIRUNLKCA1OSwgMjQsIDEwMCApCi0rI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwg MjQsIDEwMCkKLSAgICAgICAgICAgICBlc19mbXQuYXVkaW8uaV9jaGFubmVscyA9IGNwLT5jaF9s YXlvdXQubmJfY2hhbm5lbHM7Ci0gI2Vsc2UKLSAgICAgICAgICAgICBlc19mbXQuYXVkaW8uaV9j aGFubmVscyA9IGNwLT5jaGFubmVsczsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2RlbXV4L2F2Zm9y bWF0L211eC5jIGIvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9tdXguYwotaW5kZXggYTQ4MTkwYzkz Y2EuLjA5MGVkOWY1YmZhIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9tdXgu YwotKysrIGIvbW9kdWxlcy9kZW11eC9hdmZvcm1hdC9tdXguYwotQEAgLTI3Myw3ICsyNzMsNyBA QCBzdGF0aWMgaW50IEFkZFN0cmVhbSggc291dF9tdXhfdCAqcF9tdXgsIHNvdXRfaW5wdXRfdCAq cF9pbnB1dCApCi0gICAgIHsKLSAgICAgY2FzZSBBVURJT19FUzoKLSAgICAgICAgIGNvZGVjcGFy LT5jb2RlY190eXBlID0gQVZNRURJQV9UWVBFX0FVRElPOwotLSNpZiBMSUJBVkNPREVDX1ZFUlNJ T05fQ0hFQ0soIDU5LCAyNCwgMTAwICkKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5 LCAyNCwgMTAwKQotICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfZGVmYXVsdCggJmNvZGVjcGFy LT5jaF9sYXlvdXQsIGZtdC0+YXVkaW8uaV9jaGFubmVscyApOwotICNlbHNlCi0gICAgICAgICBj b2RlY3Bhci0+Y2hhbm5lbHMgPSBmbXQtPmF1ZGlvLmlfY2hhbm5lbHM7Ci0tLSAKLUdpdExhYgot Ci0KLUZyb20gMGJjYjMwNmI3YzA1NTQ5YTc5NWI5MDFhZTMzZDZjNzIwNDQ1NjcxNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXZlIExob21tZSA8cm9idXg0QHljYmNyLnh5ej4K LURhdGU6IFR1ZSwgMTggSnVuIDIwMjQgMTU6MzQ6MTAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAx MS8xNV0gZmZtcGVnOiBmaXggbGliYXZ1dGlsIHZlcnNpb24gY2hlY2sgZm9yCi0gYXZfY2hhbm5l bF9sYXlvdXRfZGVmYXVsdCgpCi0KLUl0IHdhcyBhZGRlZCBpbiBjNDE4OTlhMzc3MGNiNDUxMGUx NWIyMjNmYTM0ZDEyOTMwNWIxNTg5IHdoaWNoCi13YXMgbGliYXZ1dGlsIDU3LjIzLjEwMCBhdCB0 aGUgdGltZSBidXQgdGhlIG1pbm9yIHZlcnNpb24gd2FzIG5vdCB1cGRhdGVkIGluCi10aGF0IGNv bW1pdCBzbyB3ZSBjaGVjayA1Ny4yNC4xMDAuCi0KLVRoZSBzYW1lIGNoZWNrIGFwcGxpZXMgZm9y IGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoKSBhZGRlZCBpbiB0aGUgc2FtZSBjb21taXQuCi0KLVRo aXMgaXMgcGFydCBvZiBGRm1wZWcgNS4xLgotCi1odHRwczovL2dpdGh1Yi5jb20vRkZtcGVnL0ZG bXBlZy9jb21taXQvMDg2YTgwNDgwNjFiZjlmYjRjNjM5NDNmNjk2MmRiNDgxNzVmNjU1YwotKGNo ZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMTk1ZjBjOTg1OTliNTU5NTBjNDlhNjJmOThkOWQzNDk1 YmUzMTBkZikgKHJlYmFzZWQpCi1yZWJhc2VkOgotLSB0aGUgY29kZSBhcm91bmQgaXMgc2xpZ2h0 bHkgZGlmZmVyZW50Ci0tLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jIHwgOCAr KysrLS0tLQotIG1vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMgICAgfCAyICstCi0gMiBmaWxl cyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVj L2VuY29kZXIuYwotaW5kZXggMjAxNGI4YWZhZjUuLmVjNjNjOWM1NDM5IDEwMDY0NAotLS0tIGEv bW9kdWxlcy9jb2RlYy9hdmNvZGVjL2VuY29kZXIuYwotKysrIGIvbW9kdWxlcy9jb2RlYy9hdmNv ZGVjL2VuY29kZXIuYwotQEAgLTc2NCw3ICs3NjQsNyBAQCBpbnQgSW5pdFZpZGVvRW5jKCB2bGNf b2JqZWN0X3QgKnBfdGhpcyApCi0gICAgICAgICB1aW50MzJfdCBvcmRlcl9tYXNrID0gMDsKLSAg ICAgICAgIGludCBpX2NoYW5uZWxzX3NyYyA9IDA7Ci0gICAgICAgICBtc2dfRGJnKCBwX2VuYywg IkNyZWF0aW5nIGNoYW5uZWwgb3JkZXIgZm9yIHJlb3JkZXJpbmciKTsKLS0jIGlmIExJQkFWQ09E RUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkKLSsjIGlmIExJQkFWQ09ERUNfVkVSU0lPTl9D SEVDSyg1OSwgMjQsIDEwMCkgJiYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soNTcsIDI0LCAxMDAp Ci0gICAgICAgICBhdl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCAmcF9jb250ZXh0LT5jaF9sYXlv dXQsIHBfZW5jLT5mbXRfb3V0LmF1ZGlvLmlfY2hhbm5lbHMgKTsKLSAgICAgICAgIHVpbnQ2NF90 IGNoYW5uZWxfbWFzayA9IHBfY29udGV4dC0+Y2hfbGF5b3V0LnUubWFzazsKLSAjIGVsc2UKLUBA IC05MTcsNyArOTE3LDcgQEAgZXJybXNnOgotIAotICAgICAgICAgaWYoIHBfZW5jLT5mbXRfb3V0 LmF1ZGlvLmlfY2hhbm5lbHMgPiAyICkKLSAgICAgICAgIHsKLS0jaWYgTElCQVZDT0RFQ19WRVJT SU9OX0NIRUNLKDU5LCAyNCwgMTAwKQotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTks IDI0LCAxMDApICYmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwgMTAwKQotICAgICAg ICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQoICZwX2NvbnRleHQtPmNoX2xheW91dCwg MiApOwotICNlbHNlCi0gICAgICAgICAgICAgcF9jb250ZXh0LT5jaGFubmVscyA9IDI7Ci1AQCAt MTI4MSw3ICsxMjgxLDcgQEAgc3RhdGljIGJsb2NrX3QgKmhhbmRsZV9kZWxheV9idWZmZXIoIGVu Y29kZXJfdCAqcF9lbmMsIGVuY29kZXJfc3lzX3QgKnBfc3lzLCB1bnMKLSAgICAgYXZfZnJhbWVf dW5yZWYoIHBfc3lzLT5mcmFtZSApOwotICAgICBwX3N5cy0+ZnJhbWUtPmZvcm1hdCAgICAgPSBw X3N5cy0+cF9jb250ZXh0LT5zYW1wbGVfZm10OwotICAgICBwX3N5cy0+ZnJhbWUtPm5iX3NhbXBs ZXMgPSBsZWZ0b3Zlcl9zYW1wbGVzICsgcF9zeXMtPmlfc2FtcGxlc19kZWxheTsKLS0jaWYgTElC QVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAwKQotKyNpZiBMSUJBVkNPREVDX1ZFUlNJ T05fQ0hFQ0soNTksIDI0LCAxMDApICYmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwg MTAwKQotICAgICBhdl9jaGFubmVsX2xheW91dF9jb3B5KCZwX3N5cy0+ZnJhbWUtPmNoX2xheW91 dCwgJnBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91dCk7Ci0gI2Vsc2UKLSAgICAgcF9zeXMtPmZy YW1lLT5jaGFubmVsX2xheW91dCA9IHBfc3lzLT5wX2NvbnRleHQtPmNoYW5uZWxfbGF5b3V0Owot QEAgLTE0MTYsNyArMTQxNiw3IEBAIHN0YXRpYyBibG9ja190ICpFbmNvZGVBdWRpbyggZW5jb2Rl cl90ICpwX2VuYywgYmxvY2tfdCAqcF9hb3V0X2J1ZiApCi0gICAgICAgICBwX3N5cy0+ZnJhbWUt PnB0cyAgICAgICAgPSBkYXRlX0dldCggJnBfc3lzLT5idWZmZXJfZGF0ZSApICogcF9zeXMtPnBf Y29udGV4dC0+dGltZV9iYXNlLmRlbiAvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ0xPQ0tfRlJFUSAvIHBfc3lzLT5wX2NvbnRleHQtPnRpbWVfYmFzZS5udW07Ci0gCi0t I2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkKLSsjaWYgTElCQVZDT0RF Q19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAwKSAmJiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyg1 NywgMjQsIDEwMCkKLSAgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2NvcHkoJnBfc3lzLT5mcmFt ZS0+Y2hfbGF5b3V0LCAmcF9zeXMtPnBfY29udGV4dC0+Y2hfbGF5b3V0KTsKLSAjZWxzZQotICAg ICAgICAgcF9zeXMtPmZyYW1lLT5jaGFubmVsX2xheW91dCA9IHBfc3lzLT5wX2NvbnRleHQtPmNo YW5uZWxfbGF5b3V0OwotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMg Yi9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi1pbmRleCAwOTBlZDlmNWJmYS4uYmY2NWNh MzY3MTYgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi0rKysgYi9t b2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi1AQCAtMjczLDcgKzI3Myw3IEBAIHN0YXRpYyBp bnQgQWRkU3RyZWFtKCBzb3V0X211eF90ICpwX211eCwgc291dF9pbnB1dF90ICpwX2lucHV0ICkK LSAgICAgewotICAgICBjYXNlIEFVRElPX0VTOgotICAgICAgICAgY29kZWNwYXItPmNvZGVjX3R5 cGUgPSBBVk1FRElBX1RZUEVfQVVESU87Ci0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1 OSwgMjQsIDEwMCkKLSsjaWYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soNTcsIDI0LCAxMDApCi0g ICAgICAgICBhdl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCAmY29kZWNwYXItPmNoX2xheW91dCwg Zm10LT5hdWRpby5pX2NoYW5uZWxzICk7Ci0gI2Vsc2UKLSAgICAgICAgIGNvZGVjcGFyLT5jaGFu bmVscyA9IGZtdC0+YXVkaW8uaV9jaGFubmVsczsKLS0tIAotR2l0TGFiCi0KLQotRnJvbSAzOGY5 NjM4ZWM3MWMyZmU5MTdkZmQ5OWFjMmUxNzk1YjMzNTdjZmMzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogU3RldmUgTGhvbW1lIDxyb2J1eDRAeWNiY3IueHl6PgotRGF0ZTogVHVlLCAx OCBKdW4gMjAyNCAxNjowNDo0MSArMDIwMAotU3ViamVjdDogW1BBVENIIDEyLzE1XSBmZm1wZWc6 IGZpeCBsaWJhdmNvZGVjIHZlcnNpb24gY2hlY2sgZm9yCi0gQVZDb2RlY1BhcmFtZXRlcnMuY2hf bGF5b3V0Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLUl0IHdhcyBhZGRl ZCBpbiAyNzZjMDY3MjZmYmQyZjc4NGQ1MTE4OTg3MGJkODM0ZTkyODQ4MTJmIHdoaWNoCi13YXMg bGliYXZjb2RlYyA1OS4yMy4xMDAgYXQgdGhlIHRpbWUgYnV0IHRoZSBtaW5vciB2ZXJzaW9uIHdh cyBub3QgdXBkYXRlZCBpbgotdGhhdCBjb21taXQgc28gd2UgY2hlY2sgNTkuMjQuMTAwLgotCi1U aGlzIGlzIHBhcnQgb2YgRkZtcGVnIDUuMS4KLQotSXQgd2FzIGVycm9uZW91c2x5IHJlbW92ZWQg aW4gYTU1ZWMzMmFiMzc2MGQ5ZWRiNmYwNTQ4MWNkM2E5ODFhYTQyODc4ZC4KLQotaHR0cHM6Ly9n aXRodWIuY29tL0ZGbXBlZy9GRm1wZWcvY29tbWl0LzI3NmMwNjcyNmZiZDJmNzg0ZDUxMTg5ODcw YmQ4MzRlOTI4NDgxMmYKLQotQ28tYXV0aG9yZWQtYnk6IEZyYW7Dp29pcyBDYXJ0ZWduaWUgPGZj dmxjZGV2QGZyZWUuZnI+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA1OTdiZGI4ZTA3ODQx MDFiNWY0MTJmZWJhMzMwOTU1OGFkNWI4ODYyKQotLS0tCi0gbW9kdWxlcy9kZW11eC9hdmZvcm1h dC9tdXguYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvbXV4LmMgYi9tb2R1 bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi1pbmRleCBiZjY1Y2EzNjcxNi4uZDhiZTVkMWQ5ZjUg MTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L211eC5jCi0rKysgYi9tb2R1bGVz L2RlbXV4L2F2Zm9ybWF0L211eC5jCi1AQCAtMjczLDcgKzI3Myw3IEBAIHN0YXRpYyBpbnQgQWRk U3RyZWFtKCBzb3V0X211eF90ICpwX211eCwgc291dF9pbnB1dF90ICpwX2lucHV0ICkKLSAgICAg ewotICAgICBjYXNlIEFVRElPX0VTOgotICAgICAgICAgY29kZWNwYXItPmNvZGVjX3R5cGUgPSBB Vk1FRElBX1RZUEVfQVVESU87Ci0tI2lmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwg MTAwKQotKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAxMDApICYmIExJQkFW VVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwgMTAwKQotICAgICAgICAgYXZfY2hhbm5lbF9sYXlv dXRfZGVmYXVsdCggJmNvZGVjcGFyLT5jaF9sYXlvdXQsIGZtdC0+YXVkaW8uaV9jaGFubmVscyAp OwotICNlbHNlCi0gICAgICAgICBjb2RlY3Bhci0+Y2hhbm5lbHMgPSBmbXQtPmF1ZGlvLmlfY2hh bm5lbHM7Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gMDkzOWQ1NWI4MWU5MTZmZjMwM2Y5MmYzMDEy NTdjMmUwODg1ZmRiOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXZlIExob21t ZSA8cm9idXg0QHljYmNyLnh5ej4KLURhdGU6IFdlZCwgMTkgSnVuIDIwMjQgMTM6NDE6MDQgKzAy MDAKLVN1YmplY3Q6IFtQQVRDSCAxMy8xNV0gYXZjb2RlYzogZml4IGxpYmF2Y29kZWMgdmVyc2lv biBjaGVjayBmb3IKLSBBVkNvZGVjQ29udGV4dC5jaF9sYXlvdXQKLU1JTUUtVmVyc2lvbjogMS4w Ci1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNm ZXItRW5jb2Rpbmc6IDhiaXQKLQotSXQgd2FzIGFkZGVkIGluIDU0OGFlYjkzODM0Yjg0MjVjODZk MWNlNjBmZGRjMWQ0MTgwNTcyNGQgd2hpY2gKLXdhcyBsaWJhdmNvZGVjIDU5LjIzLjEwMCBhdCB0 aGUgdGltZSBidXQgdGhlIG1pbm9yIHZlcnNpb24gd2FzIG5vdCB1cGRhdGVkIGluCi10aGF0IGNv bW1pdCBzbyB3ZSBjaGVjayA1OS4yNC4xMDAuCi0KLVRoaXMgaXMgcGFydCBvZiBGRm1wZWcgNS4x LgotCi1odHRwczovL2dpdGh1Yi5jb20vRkZtcGVnL0ZGbXBlZy9jb21taXQvNTQ4YWViOTM4MzRi ODQyNWM4NmQxY2U2MGZkZGMxZDQxODA1NzI0ZAotCi1Dby1hdXRob3JlZC1ieTogRnJhbsOnb2lz IENhcnRlZ25pZSA8ZmN2bGNkZXZAZnJlZS5mcj4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDhmZDkxOGI4Nzg3YjhkMDc3ZGVjZjFhMmI5NTVhYjBjN2I5NjRiZjMpIChyZWJhc2VkKQotcmVi YXNlZDoKLS0gb24gMy4wIGZtdF9pbiBpcyBub3QgYSBwb2ludGVyCi0tLS0KLSBtb2R1bGVzL2Nv ZGVjL2F2Y29kZWMvYXVkaW8uYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9h dWRpby5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLWluZGV4IDk3OTI1NmM0MDBh Li5mYjIyZjAzMzAwNSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5j Ci0rKysgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotQEAgLTE0Miw3ICsxNDIsNyBA QCBzdGF0aWMgaW50IE9wZW5BdWRpb0NvZGVjKCBkZWNvZGVyX3QgKnBfZGVjICkKLSAgICAgfQot IAotICAgICBjdHgtPnNhbXBsZV9yYXRlID0gcF9kZWMtPmZtdF9pbi5hdWRpby5pX3JhdGU7Ci0t I2lmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwgMTAwKQotKyNpZiBMSUJBVkNPREVD X1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAxMDApICYmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3 LCAyNCwgMTAwKQotICAgICBhdl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCAmY3R4LT5jaF9sYXlv dXQsIHBfZGVjLT5mbXRfaW4uYXVkaW8uaV9jaGFubmVscyApOwotICNlbHNlCi0gICAgIGN0eC0+ Y2hhbm5lbHMgPSBwX2RlYy0+Zm10X2luLmF1ZGlvLmlfY2hhbm5lbHM7Ci0tLSAKLUdpdExhYgot Ci0KLUZyb20gZTUwNzJiMzQwNDI1ZTc4NmI5ZTM3NmNkZjRiZmY0OTYyYzZlMzJmMiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXZlIExob21tZSA8cm9idXg0QHljYmNyLnh5ej4K LURhdGU6IFdlZCwgMTkgSnVuIDIwMjQgMDg6MzY6NDAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAx NC8xNV0gZmZtcGVnOiBmaXggbGliYXZ1dGlsIHZlcnNpb24gY2hlY2sgZm9yCi0gQVZGcmFtZS5j aF9sYXlvdXQKLQotSXQgd2FzIGFkZGVkIGluIGRiNmVmYTE4MTVlMjE3ZWQ3NmYzOWFlZThiMTVl ZTVjNjQ2OTg1Mzcgd2hpY2gKLXdhcyBsaWJhdnV0aWwgNTcuMjMuMTAwIGF0IHRoZSB0aW1lIGJ1 dCB0aGUgbWlub3IgdmVyc2lvbiB3YXMgbm90IHVwZGF0ZWQgaW4KLXRoYXQgY29tbWl0IHNvIHdl IGNoZWNrIDU3LjI0LjEwMC4KLQotVGhpcyBpcyBwYXJ0IG9mIEZGbXBlZyA1LjEuCi0KLWh0dHBz Oi8vZ2l0aHViLmNvbS9GRm1wZWcvRkZtcGVnL2NvbW1pdC9kYjZlZmExODE1ZTIxN2VkNzZmMzlh ZWU4YjE1ZWU1YzY0Njk4NTM3Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmMjM3MTU1ODg3 ZjA0OWY4YmVmZWYyZmRmYWRhZTdiNjBmNjk3YjBkKQotLS0tCi0gbW9kdWxlcy9jb2RlYy9hdmNv ZGVjL2F1ZGlvLmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYyBi L21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1pbmRleCBmYjIyZjAzMzAwNS4uYzI3Nzcx YWViMmUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotKysrIGIv bW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1ZGlvLmMKLUBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGlj IGludCBEZWNvZGVCbG9jayggZGVjb2Rlcl90ICpwX2RlYywgYmxvY2tfdCAqKnBwX2Jsb2NrICkK LSAgICAgICAgIHJldCA9IGF2Y29kZWNfcmVjZWl2ZV9mcmFtZSggY3R4LCBmcmFtZSApOwotICAg ICAgICAgaWYoIHJldCA9PSAwICkKLSAgICAgICAgIHsKLS0jaWYgTElCQVZDT0RFQ19WRVJTSU9O X0NIRUNLKDU5LCAyNCwgMTAwKQotKyNpZiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyg1NywgMjQs IDEwMCkKLSAgICAgICAgICAgICBpbnQgY2hhbm5lbHMgPSBmcmFtZS0+Y2hfbGF5b3V0Lm5iX2No YW5uZWxzOwotICNlbHNlCi0gICAgICAgICAgICAgaW50IGNoYW5uZWxzID0gY3R4LT5jaGFubmVs czsKLS0tIAotR2l0TGFiCi0KLQotRnJvbSAxNzEzYmU1NTJmOWUyNjI2MGEzYWMzM2NlMDRhYjg5 ZjY2MDc4MGNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0ZyYW49 QzM9QTdvaXM9MjBDYXJ0ZWduaWU/PSA8ZmN2bGNkZXZAZnJlZS5mcj4KLURhdGU6IFRodSwgMjAg SnVuIDIwMjQgMTM6MTI6MzcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxNS8xNV0gYXZjb2RlYzog YWRkIGEgZGVmaW5lIHRvIHRlc3QgZm9yCi0gQVZDb2RlY0NvbnRleHQuY2hfbGF5b3V0IGF2YWls YWJpbGl0eQotCi1Dby1hdXRob3JlZC1ieTogU3RldmUgTGhvbW1lIDxyb2J1eDRAeWNiY3IueHl6 PgotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgM2FiZjkzNzM1ZGY5N2NjMmM5NmUxMTAyOGI3 NjA2NzU0N2MyN2ViNykgKHJlYmFzZWQpCi1yZWJhc2VkOgotLSBvbiAzLjAgdGhlIGZtdF9pbiBp cyBub3QgYSBwb2ludGVyCi0tIHRoZSBjb2RlIGFyb3VuZCBpcyBzbGlnaHRseSBkaWZmZXJlbnQg ZHVlIHRvIHRoZSB1c2Ugb2YgQVBJX0NIQU5ORUxfTEFZT1VUCi0tLS0KLSBtb2R1bGVzL2NvZGVj L2F2Y29kZWMvYXVkaW8uYyAgIHwgIDggKysrKystLS0KLSBtb2R1bGVzL2NvZGVjL2F2Y29kZWMv ZW5jb2Rlci5jIHwgMTIgKysrKysrKy0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9jb2RlYy9hdmNv ZGVjL2F1ZGlvLmMgYi9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXVkaW8uYwotaW5kZXggYzI3Nzcx YWViMmUuLmI2MTg2ZDZlYzU2IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL2F1 ZGlvLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdWRpby5jCi1AQCAtNDEsNiArNDEs OCBAQAotICNpbmNsdWRlIDxsaWJhdmNvZGVjL2F2Y29kZWMuaD4KLSAjaW5jbHVkZSA8bGliYXZ1 dGlsL21lbS5oPgotIAotKyNkZWZpbmUgQVBJX0NIQU5ORUxfTEFZT1VUX1NUUlVDVCAoTElCQVZD T0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAwKSkgLy8gQVZDb2RlY0NvbnRleHQuY2hfbGF5 b3V0Ci0rCi0gI2RlZmluZSBBUElfQ0hBTk5FTF9MQVlPVVQgKExJQkFWX1VUSUxfVkVSU0lPTl9D SEVDSyggNTIsIDIsIDYsIDAsIDEwMCkpCi0gCi0gI2lmIEFQSV9DSEFOTkVMX0xBWU9VVAotQEAg LTE0Miw3ICsxNDQsNyBAQCBzdGF0aWMgaW50IE9wZW5BdWRpb0NvZGVjKCBkZWNvZGVyX3QgKnBf ZGVjICkKLSAgICAgfQotIAotICAgICBjdHgtPnNhbXBsZV9yYXRlID0gcF9kZWMtPmZtdF9pbi5h dWRpby5pX3JhdGU7Ci0tI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkg JiYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soNTcsIDI0LCAxMDApCi0rI2lmIEFQSV9DSEFOTkVM X0xBWU9VVF9TVFJVQ1QgJiYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soNTcsIDI0LCAxMDApCi0g ICAgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQoICZjdHgtPmNoX2xheW91dCwgcF9kZWMtPmZt dF9pbi5hdWRpby5pX2NoYW5uZWxzICk7Ci0gI2Vsc2UKLSAgICAgY3R4LT5jaGFubmVscyA9IHBf ZGVjLT5mbXRfaW4uYXVkaW8uaV9jaGFubmVsczsKLUBAIC01OTgsNyArNjAwLDcgQEAgc3RhdGlj IHZvaWQgU2V0dXBPdXRwdXRGb3JtYXQoIGRlY29kZXJfdCAqcF9kZWMsIGJvb2wgYl90cnVzdCAp Ci0gICAgIHBfZGVjLT5mbXRfb3V0LmF1ZGlvLmlfcmF0ZSA9IHBfc3lzLT5wX2NvbnRleHQtPnNh bXBsZV9yYXRlOwotIAotICAgICAvKiAqLwotLSNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0so NTksIDI0LCAxMDApCi0rI2lmIEFQSV9DSEFOTkVMX0xBWU9VVF9TVFJVQ1QKLSAgICAgaWYoIHBf c3lzLT5pX3ByZXZpb3VzX2NoYW5uZWxzID09IHBfc3lzLT5wX2NvbnRleHQtPmNoX2xheW91dC5u Yl9jaGFubmVscyAmJgotICAgICAgICAgcF9zeXMtPmlfcHJldmlvdXNfbGF5b3V0ID09IHBfc3lz LT5wX2NvbnRleHQtPmNoX2xheW91dC51Lm1hc2sgKQotICAgICAgICAgcmV0dXJuOwotQEAgLTYy Miw3ICs2MjQsNyBAQCBzdGF0aWMgdm9pZCBTZXR1cE91dHB1dEZvcm1hdCggZGVjb2Rlcl90ICpw X2RlYywgYm9vbCBiX3RydXN0ICkKLSAKLSAgICAgaW50IGlfY2hhbm5lbHNfc3JjID0gMCwgY2hh bm5lbF9jb3VudDsKLSAgICAgdWludDY0X3QgY2hhbm5lbF9sYXlvdXRfbWFzazsKLS0jaWYgTElC QVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAwKQotKyNpZiBBUElfQ0hBTk5FTF9MQVlP VVRfU1RSVUNUCi0gICAgIGNoYW5uZWxfbGF5b3V0X21hc2sgPSBwX3N5cy0+cF9jb250ZXh0LT5j aF9sYXlvdXQudS5tYXNrOwotICAgICBjaGFubmVsX2NvdW50ID0gcF9zeXMtPnBfY29udGV4dC0+ Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOwotICNlbGlmIEFQSV9DSEFOTkVMX0xBWU9VVAotZGlmZiAt LWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMgYi9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvZW5jb2Rlci5jCi1pbmRleCBlYzYzYzljNTQzOS4uYjBkMzEyNjkyNDQgMTAwNjQ0Ci0t LS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jCi0rKysgYi9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvZW5jb2Rlci5jCi1AQCAtNDcsNiArNDcsOCBAQAotICNpbmNsdWRlICJhdmNvZGVj LmgiCi0gI2luY2x1ZGUgImF2Y29tbW9uLmgiCi0gCi0rI2RlZmluZSBBUElfQ0hBTk5FTF9MQVlP VVRfU1RSVUNUIChMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAxMDApKSAvLyBBVkNv ZGVjQ29udGV4dC5jaF9sYXlvdXQKLSsKLSAjZGVmaW5lIEFQSV9DSEFOTkVMX0xBWU9VVCAoTElC QVZfVVRJTF9WRVJTSU9OX0NIRUNLKCA1MiwgMiwgNiwgMCwgMTAwKSkKLSAKLSAjaWYgQVBJX0NI QU5ORUxfTEFZT1VUCi1AQCAtMTgyLDcgKzE4NCw3IEBAIHN0YXRpYyBjb25zdCB1aW50NjRfdCBw aV9jaGFubmVsc19tYXBbXVsyXSA9Ci0gICAgIHsgQVZfQ0hfU1RFUkVPX1JJR0hULCAgICAgIDAg fSwKLSB9OwotIAotLSMgaWYgIUxJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyg1OSwgMjQsIDEwMCkK LSsjIGlmICFBUElfQ0hBTk5FTF9MQVlPVVRfU1RSVUNUCi0gc3RhdGljIGNvbnN0IHVpbnQzMl90 IGNoYW5uZWxfbWFza1tdWzJdID0gewotICAgICB7MCwwfSwKLSAgICAge0FPVVRfQ0hBTl9DRU5U RVIsIEFWX0NIX0xBWU9VVF9NT05PfSwKLUBAIC03NjQsNyArNzY2LDcgQEAgaW50IEluaXRWaWRl b0VuYyggdmxjX29iamVjdF90ICpwX3RoaXMgKQotICAgICAgICAgdWludDMyX3Qgb3JkZXJfbWFz ayA9IDA7Ci0gICAgICAgICBpbnQgaV9jaGFubmVsc19zcmMgPSAwOwotICAgICAgICAgbXNnX0Ri ZyggcF9lbmMsICJDcmVhdGluZyBjaGFubmVsIG9yZGVyIGZvciByZW9yZGVyaW5nIik7Ci0tIyBp ZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAxMDApICYmIExJQkFWVVRJTF9WRVJT SU9OX0NIRUNLKDU3LCAyNCwgMTAwKQotKyMgaWYgQVBJX0NIQU5ORUxfTEFZT1VUX1NUUlVDVCAm JiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyg1NywgMjQsIDEwMCkKLSAgICAgICAgIGF2X2NoYW5u ZWxfbGF5b3V0X2RlZmF1bHQoICZwX2NvbnRleHQtPmNoX2xheW91dCwgcF9lbmMtPmZtdF9vdXQu YXVkaW8uaV9jaGFubmVscyApOwotICAgICAgICAgdWludDY0X3QgY2hhbm5lbF9tYXNrID0gcF9j b250ZXh0LT5jaF9sYXlvdXQudS5tYXNrOwotICMgZWxzZQotQEAgLTkxNyw3ICs5MTksNyBAQCBl cnJtc2c6Ci0gCi0gICAgICAgICBpZiggcF9lbmMtPmZtdF9vdXQuYXVkaW8uaV9jaGFubmVscyA+ IDIgKQotICAgICAgICAgewotLSNpZiBMSUJBVkNPREVDX1ZFUlNJT05fQ0hFQ0soNTksIDI0LCAx MDApICYmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwgMTAwKQotKyNpZiBBUElfQ0hB Tk5FTF9MQVlPVVRfU1RSVUNUICYmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwgMTAw KQotICAgICAgICAgICAgIGF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQoICZwX2NvbnRleHQtPmNo X2xheW91dCwgMiApOwotICNlbHNlCi0gICAgICAgICAgICAgcF9jb250ZXh0LT5jaGFubmVscyA9 IDI7Ci1AQCAtMTI4MSw3ICsxMjgzLDcgQEAgc3RhdGljIGJsb2NrX3QgKmhhbmRsZV9kZWxheV9i dWZmZXIoIGVuY29kZXJfdCAqcF9lbmMsIGVuY29kZXJfc3lzX3QgKnBfc3lzLCB1bnMKLSAgICAg YXZfZnJhbWVfdW5yZWYoIHBfc3lzLT5mcmFtZSApOwotICAgICBwX3N5cy0+ZnJhbWUtPmZvcm1h dCAgICAgPSBwX3N5cy0+cF9jb250ZXh0LT5zYW1wbGVfZm10OwotICAgICBwX3N5cy0+ZnJhbWUt Pm5iX3NhbXBsZXMgPSBsZWZ0b3Zlcl9zYW1wbGVzICsgcF9zeXMtPmlfc2FtcGxlc19kZWxheTsK LS0jaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKDU5LCAyNCwgMTAwKSAmJiBMSUJBVlVUSUxf VkVSU0lPTl9DSEVDSyg1NywgMjQsIDEwMCkKLSsjaWYgQVBJX0NIQU5ORUxfTEFZT1VUX1NUUlVD VCAmJiBMSUJBVlVUSUxfVkVSU0lPTl9DSEVDSyg1NywgMjQsIDEwMCkKLSAgICAgYXZfY2hhbm5l bF9sYXlvdXRfY29weSgmcF9zeXMtPmZyYW1lLT5jaF9sYXlvdXQsICZwX3N5cy0+cF9jb250ZXh0 LT5jaF9sYXlvdXQpOwotICNlbHNlCi0gICAgIHBfc3lzLT5mcmFtZS0+Y2hhbm5lbF9sYXlvdXQg PSBwX3N5cy0+cF9jb250ZXh0LT5jaGFubmVsX2xheW91dDsKLUBAIC0xNDE2LDcgKzE0MTgsNyBA QCBzdGF0aWMgYmxvY2tfdCAqRW5jb2RlQXVkaW8oIGVuY29kZXJfdCAqcF9lbmMsIGJsb2NrX3Qg KnBfYW91dF9idWYgKQotICAgICAgICAgcF9zeXMtPmZyYW1lLT5wdHMgICAgICAgID0gZGF0ZV9H ZXQoICZwX3N5cy0+YnVmZmVyX2RhdGUgKSAqIHBfc3lzLT5wX2NvbnRleHQtPnRpbWVfYmFzZS5k ZW4gLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT0NLX0ZSRVEgLyBw X3N5cy0+cF9jb250ZXh0LT50aW1lX2Jhc2UubnVtOwotIAotLSNpZiBMSUJBVkNPREVDX1ZFUlNJ T05fQ0hFQ0soNTksIDI0LCAxMDApICYmIExJQkFWVVRJTF9WRVJTSU9OX0NIRUNLKDU3LCAyNCwg MTAwKQotKyNpZiBBUElfQ0hBTk5FTF9MQVlPVVRfU1RSVUNUICYmIExJQkFWVVRJTF9WRVJTSU9O X0NIRUNLKDU3LCAyNCwgMTAwKQotICAgICAgICAgYXZfY2hhbm5lbF9sYXlvdXRfY29weSgmcF9z eXMtPmZyYW1lLT5jaF9sYXlvdXQsICZwX3N5cy0+cF9jb250ZXh0LT5jaF9sYXlvdXQpOwotICNl bHNlCi0gICAgICAgICBwX3N5cy0+ZnJhbWUtPmNoYW5uZWxfbGF5b3V0ID0gcF9zeXMtPnBfY29u dGV4dC0+Y2hhbm5lbF9sYXlvdXQ7Ci0tLSAKLUdpdExhYgotCgpkaWZmIC0tZ2l0IGEvNjUyNy5w YXRjaCBiLzY1MjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMzg2ZmEu LjAwMDAwMDAKLS0tIGEvNjUyNy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAK LUZyb20gYTk0NTk0NGMyZDUwY2FjZmFjZGQ1YjE2ZDRlYTVlN2I0NzY2YTlmYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXZlIExob21tZSA8cm9idXg0QHljYmNyLnh5ej4KLURh dGU6IE1vbiwgMTYgRGVjIDIwMjQgMDk6Mjg6NTUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gbmZz OiBmaXggbGlibmZzIEFQSSB2MiBzdXBwb3J0Ci0KLUludHJvZHVjZWQgaW4gbGlibmZzIDYuMC4w LgotCi1Dby1hdXRob3JlZC1ieTogcm9ubmllIHNhaGxiZXJnIDxyb25uaWVzYWhsYmVyZ0BnbWFp bC5jb20+Ci1Dby1hdXRob3JlZC1ieTogVGhvbWFzIEd1aWxsZW0gPHRob21hc0BnbGxtLmZyPgot LS0tCi0gbW9kdWxlcy9hY2Nlc3MvbmZzLmMgfCA5ICsrKysrKysrLQotIDEgZmlsZSBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL21vZHVsZXMv YWNjZXNzL25mcy5jIGIvbW9kdWxlcy9hY2Nlc3MvbmZzLmMKLWluZGV4IGYxNjRjZGE4NjQ5OS4u MzUxMGMzZmUxZjE0IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9hY2Nlc3MvbmZzLmMKLSsrKyBiL21v ZHVsZXMvYWNjZXNzL25mcy5jCi1AQCAtMTg4LDcgKzE4OCw4IEBAIG5mc19yZWFkX2NiKGludCBp X3N0YXR1cywgc3RydWN0IG5mc19jb250ZXh0ICpwX25mcywgdm9pZCAqcF9kYXRhLAotICAgICBl bHNlCi0gICAgIHsKLSAgICAgICAgIHBfc3lzLT5yZXMucmVhZC5pX2xlbiA9IGlfc3RhdHVzOwot LSAgICAgICAgbWVtY3B5KHBfc3lzLT5yZXMucmVhZC5wX2J1ZiwgcF9kYXRhLCBpX3N0YXR1cyk7 Ci0rICAgICAgICBpZiAocF9zeXMtPnJlcy5yZWFkLnBfYnVmICE9IE5VTEwgJiYgcF9kYXRhICE9 IE5VTEwpCi0rICAgICAgICAgICAgbWVtY3B5KHBfc3lzLT5yZXMucmVhZC5wX2J1ZiwgcF9kYXRh LCBpX3N0YXR1cyk7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMjA4LDkgKzIwOSwxNSBAQCBGaWxlUmVh ZChzdHJlYW1fdCAqcF9hY2Nlc3MsIHZvaWQgKnBfYnVmLCBzaXplX3QgaV9sZW4pCi0gICAgICAg ICByZXR1cm4gMDsKLSAKLSAgICAgcF9zeXMtPnJlcy5yZWFkLmlfbGVuID0gMDsKLSsjaWZkZWYg TElCTkZTX0FQSV9WMgotKyAgICBwX3N5cy0+cmVzLnJlYWQucF9idWYgPSBOVUxMOwotKyAgICBp ZiAobmZzX3JlYWRfYXN5bmMocF9zeXMtPnBfbmZzLCBwX3N5cy0+cF9uZnNmaCwgcF9idWYsIGlf bGVuLCBuZnNfcmVhZF9jYiwKLSsgICAgICAgICAgICAgICAgICAgICAgIHBfYWNjZXNzKSA8IDAp Ci0rI2Vsc2UKLSAgICAgcF9zeXMtPnJlcy5yZWFkLnBfYnVmID0gcF9idWY7Ci0gICAgIGlmIChu ZnNfcmVhZF9hc3luYyhwX3N5cy0+cF9uZnMsIHBfc3lzLT5wX25mc2ZoLCBpX2xlbiwgbmZzX3Jl YWRfY2IsCi0gICAgICAgICAgICAgICAgICAgICAgICBwX2FjY2VzcykgPCAwKQotKyNlbmRpZgot ICAgICB7Ci0gICAgICAgICBtc2dfRXJyKHBfYWNjZXNzLCAibmZzX3JlYWRfYXN5bmMgZmFpbGVk Iik7Ci0gICAgICAgICByZXR1cm4gMDsKLS0tIAotR2l0TGFiCi0KCmRpZmYgLS1naXQgYS82NjA2 LnBhdGNoIGIvNjYwNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzIyODE4 Yi4uMDAwMDAwMAotLS0gYS82NjA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAg QEAKLUZyb20gYmE1ZGMwM2FlY2MxZDk2ZjgxYjc2ODM4Zjg0NWViZGU3MzQ4Y2Y2MiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhdmlkIFJvc2NhIDxub3dyZXBAZ21haWwuY29tPgot RGF0ZTogRnJpLCAyMCBEZWMgMjAyNCAyMDoyNDozNiArMDEwMAotU3ViamVjdDogW1BBVENIXSBh dmNvZGVjOiB2YWFwaTogU3VwcG9ydCBWQUFQSSB3aXRoIGxhdGVzdCBGRm1wZWcKLQotLS0tCi0g Y29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKy0tLS0tLS0tLS0t LQotIG1vZHVsZXMvY29kZWMvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICB8ICAyICstCi0gbW9k dWxlcy9jb2RlYy9hdmNvZGVjL2F2Y29tbW9uX2NvbXBhdC5oIHwgIDMgKysKLSBtb2R1bGVzL2Nv ZGVjL2F2Y29kZWMvdmFhcGkuYyAgICAgICAgICAgfCAzOCArKysrKysrKysrKysrKysrKysrKysr Ky0tCi0gNCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMDBhZmIw NjNjNDU1Li4wODkzMzllMTBlMGIgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2Nv bmZpZ3VyZS5hYwotQEAgLTI1NTAsMjUgKzI1NTAsNyBAQCBBTV9DT05ESVRJT05BTChbSEFWRV9W QUFQSV0sIFt0ZXN0ICIke2hhdmVfdmFhcGl9IiA9ICJ5ZXMiXSkKLSBBTV9DT05ESVRJT05BTChb SEFWRV9WQUFQSV9EUk1dLCBbdGVzdCAiJHtoYXZlX3ZhYXBpX2RybX0iID0gInllcyJdKQotIEFN X0NPTkRJVElPTkFMKFtIQVZFX1ZBQVBJX1gxMV0sIFt0ZXN0ICIke2hhdmVfdmFhcGlfeDExfSIg PSAieWVzIl0pCi0gQU1fQ09ORElUSU9OQUwoW0hBVkVfVkFBUElfV0xdLCBbdGVzdCAiJHtoYXZl X3ZhYXBpX3dsfSIgPSAieWVzIl0pCi0tCi0taGF2ZV9hdmNvZGVjX3ZhYXBpPSJubyIKLS1BU19J RihbdGVzdCAiJHtoYXZlX3ZhYXBpfSIgPSAieWVzIiAtYSAiJHtoYXZlX2F2Y29kZWN9IiA9ICJ5 ZXMiXSwgWwotLSAgVkxDX1NBVkVfRkxBR1MKLS0gIENQUEZMQUdTPSIke0NQUEZMQUdTfSAke0FW Q09ERUNfQ0ZMQUdTfSIKLS0gIENGTEFHUz0iJHtDRkxBR1N9ICR7QVZDT0RFQ19DRkxBR1N9Igot LSAgQUNfQ0hFQ0tfSEVBREVSUyhbbGliYXZjb2RlYy92YWFwaS5oXSwgWwotLSAgICBBQ19NU0df Tk9USUNFKFtWQSBBUEkgYWNjZWxlcmF0aW9uIGFjdGl2YXRlZF0pCi0tICAgIGhhdmVfYXZjb2Rl Y192YWFwaT0ieWVzIgotLSAgXSxbCi0tICAgIEFTX0lGKFt0ZXN0IC1uICIke2VuYWJsZV9saWJ2 YX0iXSwgWwotLSAgICAgIEFDX01TR19FUlJPUihbbGlidmEgaXMgcHJlc2VudCBidXQgbGliYXZj b2RlYy92YWFwaS5oIGlzIG1pc3NpbmddKQotLSAgICBdLCBbCi0tICAgICAgQUNfTVNHX1dBUk4o W2xpYnZhIGlzIHByZXNlbnQgYnV0IGxpYmF2Y29kZWMvdmFhcGkuaCBpcyBtaXNzaW5nIF0pCi0t ICAgIF0pCi0tICBdKQotLSAgVkxDX1JFU1RPUkVfRkxBR1MKLS1dKQotLUFNX0NPTkRJVElPTkFM KFtIQVZFX0FWQ09ERUNfVkFBUEldLCBbdGVzdCAiJHtoYXZlX2F2Y29kZWNfdmFhcGl9IiA9ICJ5 ZXMiXSkKLStBTV9DT05ESVRJT05BTChbSEFWRV9BVkNPREVDX1ZBQVBJXSwgW3Rlc3QgIiR7aGF2 ZV92YWFwaX0iID0gInllcyIgLWEgIiR7aGF2ZV9hdmNvZGVjfSIgPSAieWVzIl0pCi0gCi0gZG5s Ci0gZG5sIGR4dmEyIG5lZWRzIGF2Y29kZWMKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2NvZGVjL01h a2VmaWxlLmFtIGIvbW9kdWxlcy9jb2RlYy9NYWtlZmlsZS5hbQotaW5kZXggNmQ5NDY1ZmRhZWY5 Li5kZDA0MzkxYzFiZjcgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL01ha2VmaWxlLmFtCi0r KysgYi9tb2R1bGVzL2NvZGVjL01ha2VmaWxlLmFtCi1AQCAtNDE2LDcgKzQxNiw3IEBAIGxpYnZh YXBpX3BsdWdpbl9sYV9TT1VSQ0VTID0gXAotIAljb2RlYy9hdmNvZGVjL3ZhYXBpLmMgaHcvdmFh cGkvdmxjX3ZhYXBpLmMgaHcvdmFhcGkvdmxjX3ZhYXBpLmgKLSBsaWJ2YWFwaV9wbHVnaW5fbGFf Q1BQRkxBR1MgPSAkKEFNX0NQUEZMQUdTKQotIGxpYnZhYXBpX3BsdWdpbl9sYV9DRkxBR1MgPSAk KEFNX0NGTEFHUykgJChBVkNPREVDX0NGTEFHUykKLS1saWJ2YWFwaV9wbHVnaW5fbGFfTElCQURE ID0gJChMSUJWQV9MSUJTKQotK2xpYnZhYXBpX3BsdWdpbl9sYV9MSUJBREQgPSAkKExJQlZBX0xJ QlMpICQoQVZDT0RFQ19MSUJTKQotIGlmIEhBVkVfQVZDT0RFQ19WQUFQSQotIGlmIEhBVkVfVkFB UElfRFJNCi0gY29kZWNfTFRMSUJSQVJJRVMgKz0gbGlidmFhcGlfZHJtX3BsdWdpbi5sYQotZGlm ZiAtLWdpdCBhL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaCBiL21vZHVs ZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAotaW5kZXggYWMwMmMwNmQyMzM5Li44 YWI2OTEwZjMyNTAgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NvZGVjL2F2Y29kZWMvYXZjb21tb25f Y29tcGF0LmgKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy9hdmNvbW1vbl9jb21wYXQuaAot QEAgLTg0LDYgKzg0LDkgQEAKLSAjaWZuZGVmIEZGX0FQSV9BVklPX1dSSVRFX05PTkNPTlNUIC8v IHJlbW92ZWQgaW4gZmZtcGVnIDcKLSAjIGRlZmluZSBGRl9BUElfQVZJT19XUklURV9OT05DT05T VCAoTElCQVZGT1JNQVRfVkVSU0lPTl9NQUpPUiA8IDYxKQotICNlbmRpZgotKyNpZm5kZWYgRkZf QVBJX1NUUlVDVF9WQUFQSV9DT05URVhUCi0rIyBkZWZpbmUgRkZfQVBJX1NUUlVDVF9WQUFQSV9D T05URVhUIChMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1OSkKLSsjZW5kaWYKLSAKLSAjZW5k aWYgLyogSEFWRV9MSUJBVkNPREVDX0FWQ09ERUNfSCAqLwotIAotZGlmZiAtLWdpdCBhL21vZHVs ZXMvY29kZWMvYXZjb2RlYy92YWFwaS5jIGIvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZhYXBpLmMK LWluZGV4IGM4MzI2OWU0M2YzMC4uZTIwM2JhYWY5ZWUyIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9j b2RlYy9hdmNvZGVjL3ZhYXBpLmMKLSsrKyBiL21vZHVsZXMvY29kZWMvYXZjb2RlYy92YWFwaS5j Ci1AQCAtNDIsMTIgKzQyLDI1IEBACi0gIyBpbmNsdWRlIDx2YS92YV9kcm0uaD4KLSAjZW5kaWYK LSAjaW5jbHVkZSA8bGliYXZjb2RlYy9hdmNvZGVjLmg+Ci0rI2lmIEZGX0FQSV9TVFJVQ1RfVkFB UElfQ09OVEVYVAotICNpbmNsdWRlIDxsaWJhdmNvZGVjL3ZhYXBpLmg+Ci0rI2Vsc2UKLSsjaW5j bHVkZSA8bGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5oPgotKyNlbmRpZgotIAotICNpbmNsdWRl ICJhdmNvZGVjLmgiCi0gI2luY2x1ZGUgInZhLmgiCi0gI2luY2x1ZGUgIi4uLy4uL2h3L3ZhYXBp L3ZsY192YWFwaS5oIgotIAotKyNpZiAhRkZfQVBJX1NUUlVDVF9WQUFQSV9DT05URVhUCi0rc3Ry dWN0IHZhYXBpX2NvbnRleHQKLSt7Ci0rICAgIFZBRGlzcGxheSBkaXNwbGF5OwotKyAgICBWQUNv bmZpZ0lEIGNvbmZpZ19pZDsKLSsgICAgVkFDb250ZXh0SUQgY29udGV4dF9pZDsKLSt9OwotKyNl bmRpZgotKwotIHN0cnVjdCB2bGNfdmFfc3lzX3QKLSB7Ci0gICAgIHN0cnVjdCB2bGNfdmFhcGlf aW5zdGFuY2UgKnZhX2luc3Q7Ci1AQCAtMTQ1LDggKzE1OCwxMCBAQCBzdGF0aWMgdm9pZCBEZWxl dGUodmxjX3ZhX3QgKnZhLCB2b2lkICoqaHdjdHgpCi0gCi0gICAgICh2b2lkKSBod2N0eDsKLSAK LS0gICAgdmxjX3ZhYXBpX0Rlc3Ryb3lDb250ZXh0KG8sIHN5cy0+aHdfY3R4LmRpc3BsYXksIHN5 cy0+aHdfY3R4LmNvbnRleHRfaWQpOwotLSAgICB2bGNfdmFhcGlfRGVzdHJveUNvbmZpZyhvLCBz eXMtPmh3X2N0eC5kaXNwbGF5LCBzeXMtPmh3X2N0eC5jb25maWdfaWQpOwotKyAgICBpZiAoc3lz LT5od19jdHguY29udGV4dF9pZCAhPSBWQV9JTlZBTElEX0lEKQotKyAgICAgICAgdmxjX3ZhYXBp X0Rlc3Ryb3lDb250ZXh0KG8sIHN5cy0+aHdfY3R4LmRpc3BsYXksIHN5cy0+aHdfY3R4LmNvbnRl eHRfaWQpOwotKyAgICBpZiAoc3lzLT5od19jdHguY29uZmlnX2lkICE9IFZBX0lOVkFMSURfSUQp Ci0rICAgICAgICB2bGNfdmFhcGlfRGVzdHJveUNvbmZpZyhvLCBzeXMtPmh3X2N0eC5kaXNwbGF5 LCBzeXMtPmh3X2N0eC5jb25maWdfaWQpOwotICAgICB2bGNfdmFhcGlfUmVsZWFzZUluc3RhbmNl KHN5cy0+dmFfaW5zdCk7Ci0gICAgIGZyZWUoc3lzKTsKLSB9Ci1AQCAtMTk2LDYgKzIxMSw3IEBA IHN0YXRpYyBpbnQgQ3JlYXRlKHZsY192YV90ICp2YSwgQVZDb2RlY0NvbnRleHQgKmN0eCwgY29u c3QgQVZQaXhGbXREZXNjcmlwdG9yICpkCi0gICAgIHN5cy0+aHdfY3R4LmNvbmZpZ19pZCA9IFZB X0lOVkFMSURfSUQ7Ci0gICAgIHN5cy0+aHdfY3R4LmNvbnRleHRfaWQgPSBWQV9JTlZBTElEX0lE OwotIAotKyNpZiBGRl9BUElfU1RSVUNUX1ZBQVBJX0NPTlRFWFQKLSAgICAgc3lzLT5od19jdHgu Y29uZmlnX2lkID0KLSAgICAgICAgIHZsY192YWFwaV9DcmVhdGVDb25maWdDaGVja2VkKG8sIHN5 cy0+aHdfY3R4LmRpc3BsYXksIGlfcHJvZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFZBRW50cnlwb2ludFZMRCwgaV92bGNfY2hyb21hKTsKLUBAIC0yMTEsNiAr MjI3LDI0IEBAIHN0YXRpYyBpbnQgQ3JlYXRlKHZsY192YV90ICp2YSwgQVZDb2RlY0NvbnRleHQg KmN0eCwgY29uc3QgQVZQaXhGbXREZXNjcmlwdG9yICpkCi0gICAgICAgICBnb3RvIGVycm9yOwot IAotICAgICBjdHgtPmh3YWNjZWxfY29udGV4dCA9ICZzeXMtPmh3X2N0eDsKLSsjZWxzZQotKyAg ICBBVkJ1ZmZlclJlZiAqaHdkZXZfcmVmID0gYXZfaHdkZXZpY2VfY3R4X2FsbG9jKEFWX0hXREVW SUNFX1RZUEVfVkFBUEkpOwotKyAgICBpZiAoaHdkZXZfcmVmID09IE5VTEwpCi0rICAgICAgICBn b3RvIGVycm9yOwotKwotKyAgICBBVkhXRGV2aWNlQ29udGV4dCAqaHdkZXZfY3R4ID0gKHZvaWQg KikgaHdkZXZfcmVmLT5kYXRhOwotKyAgICBBVlZBQVBJRGV2aWNlQ29udGV4dCAqdmFkZXZfY3R4 ID0gaHdkZXZfY3R4LT5od2N0eDsKLSsgICAgdmFkZXZfY3R4LT5kaXNwbGF5ID0gdmFfZHB5Owot KwotKyAgICBpZiAoYXZfaHdkZXZpY2VfY3R4X2luaXQoaHdkZXZfcmVmKSA8IDApCi0rICAgIHsK LSsgICAgICAgIGF2X2J1ZmZlcl91bnJlZigmaHdkZXZfcmVmKTsKLSsgICAgICAgIGdvdG8gZXJy b3I7Ci0rICAgIH0KLSsKLSsgICAgY3R4LT5od19kZXZpY2VfY3R4ID0gaHdkZXZfcmVmOwotKyNl bmRpZgotKwotICAgICB2YS0+c3lzID0gc3lzOwotICAgICB2YS0+ZGVzY3JpcHRpb24gPSB2YVF1 ZXJ5VmVuZG9yU3RyaW5nKHN5cy0+aHdfY3R4LmRpc3BsYXkpOwotICAgICB2YS0+Z2V0ID0gR2V0 OwotLS0gCi1HaXRMYWIKLQoKZGlmZiAtLWdpdCBhL2ZmbXBlZzgucGF0Y2ggYi9mZm1wZWc4LnBh dGNoCmluZGV4IDY4ZWM4ZTYuLjA4NjA4Y2YgMTAwNjQ0Ci0tLSBhL2ZmbXBlZzgucGF0Y2gKKysr IGIvZmZtcGVnOC5wYXRjaApAQCAtMSw0NSArMSw2IEBACiBkaWZmIC11cCB2bGMtMy4wLjIxL21v ZHVsZXMvY29kZWMvYXZjb2RlYy92aWRlby5jLm9yaWcgdmxjLTMuMC4yMS9tb2R1bGVzL2NvZGVj L2F2Y29kZWMvdmlkZW8uYwogLS0tIHZsYy0zLjAuMjEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3Zp ZGVvLmMub3JpZwkyMDI0LTA2LTA1IDE3OjU2OjA3LjAwMDAwMDAwMCArMDIwMAogKysrIHZsYy0z LjAuMjEvbW9kdWxlcy9jb2RlYy9hdmNvZGVjL3ZpZGVvLmMJMjAyNS0wOS0yOSAxODoxMTozMS4x MDAzMTM0NTAgKzAyMDAKLUBAIC0yMDQsOCArMjA1LDcgQEAgc3RhdGljIGludCBsYXZjX0dldFZp ZGVvRm9ybWF0KGRlY29kZXJfdAotICAgICBlbHNlIGlmIChjdHgtPnRpbWVfYmFzZS5udW0gPiAw ICYmIGN0eC0+dGltZV9iYXNlLmRlbiA+IDApCi0gICAgIHsKLSAgICAgICAgIGZtdC0+aV9mcmFt ZV9yYXRlID0gY3R4LT50aW1lX2Jhc2UuZGVuOwotLSAgICAgICAgZm10LT5pX2ZyYW1lX3JhdGVf YmFzZSA9IGN0eC0+dGltZV9iYXNlLm51bQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICogX19NQVgoY3R4LT50aWNrc19wZXJfZnJhbWUsIDEpOwotKyAgICAgICAgZm10LT5pX2Zy YW1lX3JhdGVfYmFzZSA9IGN0eC0+dGltZV9iYXNlLm51bTsKLSAgICAgfQotIAotICAgICAvKiBG SVhNRSB3ZSBzaG91bGQgb25seSBzZXQgdGhlIGtub3duIHZhbHVlcyBhbmQgbGV0IHRoZSBjb3Jl IGRlY2lkZQotQEAgLTMyNywxMiArMzI3LDEwIEBAIHN0YXRpYyBpbnQgbGF2Y19VcGRhdGVWaWRl b0Zvcm1hdChkZWNvZGUKLSAKLSAgICAgLyogYWx3YXlzIGhhdmUgZGF0ZSBpbiBmaWVsZHMvdGlj a3MgdW5pdHMgKi8KLSAgICAgaWYoZGVjLT5wX3N5cy0+cHRzLmlfZGl2aWRlcl9udW0pCi0tICAg ICAgICBkYXRlX0NoYW5nZSgmZGVjLT5wX3N5cy0+cHRzLCBmbXRfb3V0LmlfZnJhbWVfcmF0ZSAq Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX01BWChjdHgtPnRpY2tz X3Blcl9mcmFtZSwgMSksCi0rICAgICAgICBkYXRlX0NoYW5nZSgmZGVjLT5wX3N5cy0+cHRzLCBm bXRfb3V0LmlfZnJhbWVfcmF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZtdF9vdXQuaV9mcmFtZV9yYXRlX2Jhc2UpOwotICAgICBlbHNlCi0tICAgICAgICBkYXRl X0luaXQoJmRlYy0+cF9zeXMtPnB0cywgZm10X291dC5pX2ZyYW1lX3JhdGUgKgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTUFYKGN0eC0+dGlja3NfcGVyX2ZyYW1lLCAx KSwKLSsgICAgICAgIGRhdGVfSW5pdCgmZGVjLT5wX3N5cy0+cHRzLCBmbXRfb3V0LmlfZnJhbWVf cmF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXRfb3V0LmlfZnJh bWVfcmF0ZV9iYXNlKTsKLSAKLSAgICAgZm10X291dC5wX3BhbGV0dGUgPSBkZWMtPmZtdF9vdXQu dmlkZW8ucF9wYWxldHRlOwotQEAgLTk0NSw5ICs5NDMsMTEgQEAgc3RhdGljIHZsY190aWNrX3Qg aW50ZXJwb2xhdGVfbmV4dF9wdHMoCi0gICAgICAgICBwX3N5cy0+cHRzLmlfZGl2aWRlcl9udW0g PT0gMCApCi0gICAgICAgICByZXR1cm4gVkxDX1RJQ0tfSU5WQUxJRDsKLSAKLSsjaWYgTElCQVZD T0RFQ19WRVJTSU9OX0NIRUNLKCA2MCwgMTIsIDEwMCApCi0rICAgIGludCBpX3RpY2sgPSBwX2Nv bnRleHQtPmNvZGVjX2Rlc2NyaXB0b3ItPnByb3BzICYgQVZfQ09ERUNfUFJPUF9GSUVMRFMgPyAy IDogMTsKLSsjZWxzZQotICAgICBpbnQgaV90aWNrID0gcF9jb250ZXh0LT50aWNrc19wZXJfZnJh bWU7Ci0tICAgIGlmKCBpX3RpY2sgPD0gMCApCi0tICAgICAgICBpX3RpY2sgPSAxOwotKyNlbmRp ZgotIAotICAgICAvKiBpbnRlcnBvbGF0ZSB0aGUgbmV4dCBQVFMgKi8KLSAgICAgcmV0dXJuIGRh dGVfSW5jcmVtZW50KCAmcF9zeXMtPnB0cywgaV90aWNrICsgZnJhbWUtPnJlcGVhdF9waWN0ICk7 CiBAQCAtMTQyOSw4ICsxNDI5LDEzIEBAIHN0YXRpYyBwaWN0dXJlX3QgKkRlY29kZUJsb2NrKCBk ZWNvZGVyX3QKICAgICAgICAgIC8qIEhhY2sgdG8gZm9yY2UgZGlzcGxheSBvZiBzdGlsbCBwaWN0 dXJlcyAqLwogICAgICAgICAgcF9waWMtPmJfZm9yY2UgPSBwX3N5cy0+Yl9maXJzdF9mcmFtZTsK QEAgLTEyMCwxOTkgKzgxLDMgQEAgZGlmZiAtdXAgdmxjLTMuMC4yMS9tb2R1bGVzL2NvZGVjL2F2 Y29kZWMvYXZjb21tb25fY29tcGF0Lmgub3JpZyB2bGMtMy4wLjIxL21vZHUKICAKICAjZW5kaWYg LyogSEFWRV9MSUJBVkNPREVDX0FWQ09ERUNfSCAqLwogIAotZGlmZiAtdXAgdmxjLTMuMC4yMS9t b2R1bGVzL2NvZGVjL2F2Y29kZWMvZW5jb2Rlci5jLm9yaWcgdmxjLTMuMC4yMS9tb2R1bGVzL2Nv ZGVjL2F2Y29kZWMvZW5jb2Rlci5jCi0tLS0gdmxjLTMuMC4yMS9tb2R1bGVzL2NvZGVjL2F2Y29k ZWMvZW5jb2Rlci5jLm9yaWcJMjAyNS0wOS0yOSAyMDo1NzoyNC44OTk2NDk0MjAgKzAyMDAKLSsr KyB2bGMtMy4wLjIxL21vZHVsZXMvY29kZWMvYXZjb2RlYy9lbmNvZGVyLmMJMjAyNS0wOS0yOSAy MTowNjowOS4yNzI3MTU4OTkgKzAyMDAKLUBAIC0yNTgsMTkgKzI1OCwyOSBAQCBzdGF0aWMgdm9p ZCBwcm9iZV92aWRlb19mcmFtZV9yYXRlKCBlbmNvCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICggcF9lbmMtPmZtdF9vdXQuaV9jb2RlYyA9PSBWTENfQ09ERUNfTVA0ViA/IDI1 IDogQ0xPQ0tfRlJFUSApOwotIAotICAgICBtc2dfRGJnKCBwX2VuYywgIlRpbWUgYmFzZSBmb3Ig cHJvYmluZyBzZXQgdG8gJWQvJWQiLCBwX2NvbnRleHQtPnRpbWVfYmFzZS5udW0sIHBfY29udGV4 dC0+dGltZV9iYXNlLmRlbiApOwotLSAgICBpZiggcF9jb2RlYy0+c3VwcG9ydGVkX2ZyYW1lcmF0 ZXMgKQotKwotKyAgICBjb25zdCBBVlJhdGlvbmFsICpzdXBwb3J0ZWRfZnJhbWVyYXRlczsKLSsj aWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA2MSwgMTMsIDEwMCApCi0rICAgIGlmIChhdmNv ZGVjX2dldF9zdXBwb3J0ZWRfY29uZmlnKHBfY29udGV4dCwgcF9jb2RlYywgQVZfQ09ERUNfQ09O RklHX0ZSQU1FX1JBVEUsIDAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdCB2b2lkICoqKSZzdXBwb3J0ZWRfZnJhbWVyYXRlcywgTlVMTCkgPCAwKQotKyAgICAg ICAgc3VwcG9ydGVkX2ZyYW1lcmF0ZXMgPSBOVUxMOwotKyNlbHNlCi0rICAgIHN1cHBvcnRlZF9m cmFtZXJhdGVzID0gcF9jb2RlYy0+c3VwcG9ydGVkX2ZyYW1lcmF0ZXM7Ci0rI2VuZGlmCi0rCi0r ICAgIGlmKCBzdXBwb3J0ZWRfZnJhbWVyYXRlcyApCi0gICAgIHsKLSAgICAgICAgIC8qIFdlIGFy ZSBmaW5kaW5nIGZwcyB2YWx1ZXMgc28gMS90aW1lX2Jhc2UgKi8KLSAgICAgICAgIEFWUmF0aW9u YWwgdGFyZ2V0ID0gewotICAgICAgICAgICAgIC5udW0gPSBwX2NvbnRleHQtPnRpbWVfYmFzZS5k ZW4sCi0gICAgICAgICAgICAgLmRlbiA9IHBfY29udGV4dC0+dGltZV9iYXNlLm51bQotICAgICAg ICAgfTsKLS0gICAgICAgIGludCBpZHggPSBhdl9maW5kX25lYXJlc3RfcV9pZHgodGFyZ2V0LCBw X2NvZGVjLT5zdXBwb3J0ZWRfZnJhbWVyYXRlcyk7Ci0rICAgICAgICBpbnQgaWR4ID0gYXZfZmlu ZF9uZWFyZXN0X3FfaWR4KHRhcmdldCwgc3VwcG9ydGVkX2ZyYW1lcmF0ZXMpOwotIAotLSAgICAg ICAgcF9jb250ZXh0LT50aW1lX2Jhc2UubnVtID0gcF9jb2RlYy0+c3VwcG9ydGVkX2ZyYW1lcmF0 ZXNbaWR4XS5kZW4gPwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBfY29k ZWMtPnN1cHBvcnRlZF9mcmFtZXJhdGVzW2lkeF0uZGVuIDogMTsKLS0gICAgICAgIHBfY29udGV4 dC0+dGltZV9iYXNlLmRlbiA9IHBfY29kZWMtPnN1cHBvcnRlZF9mcmFtZXJhdGVzW2lkeF0uZGVu ID8KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwX2NvZGVjLT5zdXBwb3J0 ZWRfZnJhbWVyYXRlc1tpZHhdLm51bSA6IENMT0NLX0ZSRVE7Ci0rICAgICAgICBwX2NvbnRleHQt PnRpbWVfYmFzZS5udW0gPSBzdXBwb3J0ZWRfZnJhbWVyYXRlc1tpZHhdLmRlbiA/Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkX2ZyYW1lcmF0ZXNbaWR4XS5k ZW4gOiAxOwotKyAgICAgICAgcF9jb250ZXh0LT50aW1lX2Jhc2UuZGVuID0gc3VwcG9ydGVkX2Zy YW1lcmF0ZXNbaWR4XS5kZW4gPwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN1cHBvcnRlZF9mcmFtZXJhdGVzW2lkeF0ubnVtIDogQ0xPQ0tfRlJFUTsKLSAKLSAgICAgICAg IC8qIElmIHdlIGhhdmUgc29tZXRoaW5nIHJlYXNvbmFibGUgb24gc3VwcG9ydGVkIGZyYW1lcmF0 ZXMsIHVzZSB0aGF0Ki8KLSAgICAgICAgIGlmKCBwX2NvbnRleHQtPnRpbWVfYmFzZS5kZW4gJiYg cF9jb250ZXh0LT50aW1lX2Jhc2UuZGVuIDwgQ0xPQ0tfRlJFUSApCi1AQCAtNTU5LDcgKzU2OSwx NiBAQCBpbnQgSW5pdFZpZGVvRW5jKCB2bGNfb2JqZWN0X3QgKnBfdGhpcyApCi0gICAgICAgICBw X2VuYy0+Zm10X2luLnZpZGVvLmlfY2hyb21hID0gcF9lbmMtPmZtdF9pbi5pX2NvZGVjOwotICAg ICAgICAgR2V0RmZtcGVnQ2hyb21hKCAmcF9jb250ZXh0LT5waXhfZm10LCAmcF9lbmMtPmZtdF9p bi52aWRlbyApOwotIAotLSAgICAgICAgaWYoIHBfY29kZWMtPnBpeF9mbXRzICkKLSsgICAgICAg IGNvbnN0IGVudW0gQVZQaXhlbEZvcm1hdCAqcGl4X2ZtdHM7Ci0rI2lmIExJQkFWQ09ERUNfVkVS U0lPTl9DSEVDSyggNjEsIDEzLCAxMDAgKQotKyAgICAgICAgaWYgKGF2Y29kZWNfZ2V0X3N1cHBv cnRlZF9jb25maWcocF9jb250ZXh0LCBwX2NvZGVjLCBBVl9DT0RFQ19DT05GSUdfUElYX0ZPUk1B VCwgMCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHZv aWQgKiopJnBpeF9mbXRzLCBOVUxMKSA8IDApCi0rICAgICAgICAgICAgcGl4X2ZtdHMgPSBOVUxM OwotKyNlbHNlCi0rICAgICAgICBwaXhfZm10cyA9IHBfY29kZWMtPnBpeF9mbXRzOwotKyNlbmRp ZgotKwotKyAgICAgICAgaWYoIHBpeF9mbXRzICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBz dGF0aWMgY29uc3QgZW51bSBBVlBpeGVsRm9ybWF0IHZsY19waXhfZm10c1tdID0gewotICAgICAg ICAgICAgICAgICBBVl9QSVhfRk1UX1lVVjQyMFAsCi1AQCAtNTY3LDggKzU4Niw4IEBAIGludCBJ bml0VmlkZW9FbmMoIHZsY19vYmplY3RfdCAqcF90aGlzICkKLSAgICAgICAgICAgICAgICAgQVZf UElYX0ZNVF9SR0IyNCwKLSAgICAgICAgICAgICB9OwotICAgICAgICAgICAgIGJvb2wgZm91bmQg PSBmYWxzZTsKLS0gICAgICAgICAgICBjb25zdCBlbnVtIFBpeGVsRm9ybWF0ICpwID0gcF9jb2Rl Yy0+cGl4X2ZtdHM7Ci0tICAgICAgICAgICAgZm9yKCA7ICFmb3VuZCAmJiAqcCAhPSAtMTsgcCsr ICkKLSsgICAgICAgICAgICBjb25zdCBlbnVtIEFWUGl4ZWxGb3JtYXQgKnAgPSBwaXhfZm10czsK LSsgICAgICAgICAgICBmb3IoIDsgIWZvdW5kICYmICpwICE9IEFWX1BJWF9GTVRfTk9ORTsgcCsr ICkKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIGZvciggc2l6ZV90IGkgPSAwOyBp IDwgQVJSQVlfU0laRSh2bGNfcGl4X2ZtdHMpOyArK2kgKQotICAgICAgICAgICAgICAgICB7Ci1A QCAtNTgwLDcgKzU5OSw3IEBAIGludCBJbml0VmlkZW9FbmMoIHZsY19vYmplY3RfdCAqcF90aGlz ICkKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICBpZiAoIWZvdW5kKSBwX2NvbnRleHQtPnBpeF9mbXQgPSBwX2Nv ZGVjLT5waXhfZm10c1swXTsKLSsgICAgICAgICAgICBpZiAoIWZvdW5kKSBwX2NvbnRleHQtPnBp eF9mbXQgPSBwaXhfZm10c1swXTsKLSAgICAgICAgICAgICBHZXRWbGNDaHJvbWEoICZwX2VuYy0+ Zm10X2luLnZpZGVvLCBwX2NvbnRleHQtPnBpeF9mbXQgKTsKLSAgICAgICAgICAgICBwX2VuYy0+ Zm10X2luLmlfY29kZWMgPSBwX2VuYy0+Zm10X2luLnZpZGVvLmlfY2hyb21hOwotICAgICAgICAg fQotQEAgLTcwNSwyMiArNzI0LDI5IEBAIGludCBJbml0VmlkZW9FbmMoIHZsY19vYmplY3RfdCAq cF90aGlzICkKLSAgICAgfQotICAgICBlbHNlIGlmKCBwX2VuYy0+Zm10X2luLmlfY2F0ID09IEFV RElPX0VTICkKLSAgICAgewotKyAgICAgICAgY29uc3QgZW51bSBBVlNhbXBsZUZvcm1hdCAqc2Ft cGxlX2ZtdHM7Ci0rI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9DSEVDSyggNjEsIDEzLCAxMDAgKQot KyAgICAgICAgaWYgKGF2Y29kZWNfZ2V0X3N1cHBvcnRlZF9jb25maWcocF9jb250ZXh0LCBwX2Nv ZGVjLCBBVl9DT0RFQ19DT05GSUdfU0FNUExFX0ZPUk1BVCwgMCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHZvaWQgKiopJnNhbXBsZV9mbXRzLCBOVUxM KSA8IDApCi0rICAgICAgICAgICAgc2FtcGxlX2ZtdHMgPSBOVUxMOwotKyNlbHNlCi0rICAgICAg ICBzYW1wbGVfZm10cyA9IHBfY29kZWMtPnNhbXBsZV9mbXRzOwotKyNlbmRpZgotKwotICAgICAg ICAgcF9jb250ZXh0LT5jb2RlY190eXBlICA9IEFWTUVESUFfVFlQRV9BVURJTzsKLS0gICAgICAg IHBfY29udGV4dC0+c2FtcGxlX2ZtdCAgPSBwX2NvZGVjLT5zYW1wbGVfZm10cyA/Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9jb2RlYy0+c2FtcGxlX2ZtdHNbMF0gOgot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1NBTVBMRV9GTVRfUzE2Owot KyAgICAgICAgcF9jb250ZXh0LT5zYW1wbGVfZm10ICA9IHNhbXBsZV9mbXRzID8gc2FtcGxlX2Zt dHNbMF0gOiBBVl9TQU1QTEVfRk1UX1MxNjsKLSAKLSAgICAgICAgIC8qIFRyeSB0byBtYXRjaCBh dmNvZGVjIGlucHV0IGZvcm1hdCB0byB2bGMgZm9ybWF0IHNvIHdlIGNvdWxkIGF2b2lkIG9uZQot ICAgICAgICAgICAgZm9ybWF0IGNvbnZlcnNpb24gKi8KLSAgICAgICAgIGlmKCBHZXRWbGNBdWRp b0Zvcm1hdCggcF9jb250ZXh0LT5zYW1wbGVfZm10ICkgIT0gcF9lbmMtPmZtdF9pbi5pX2NvZGVj Ci0tICAgICAgICAgICAgJiYgcF9jb2RlYy0+c2FtcGxlX2ZtdHMgKQotKyAgICAgICAgICAgICYm IHNhbXBsZV9mbXRzICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBtc2dfRGJnKCBwX2VuYywg IlRyeWluZyB0byBmaW5kIG1vcmUgc3VpdGFibGUgc2FtcGxlIGZvcm1hdCBpbnN0ZWFkIG9mICVz IiwgYXZfZ2V0X3NhbXBsZV9mbXRfbmFtZSggcF9jb250ZXh0LT5zYW1wbGVfZm10ICkgKTsKLS0g ICAgICAgICAgICBmb3IoIHVuc2lnbmVkIGludCBpPTA7IHBfY29kZWMtPnNhbXBsZV9mbXRzW2ld ICE9IC0xOyBpKysgKQotKyAgICAgICAgICAgIGZvciggdW5zaWduZWQgaW50IGk9MDsgc2FtcGxl X2ZtdHNbaV0gIT0gQVZfU0FNUExFX0ZNVF9OT05FOyBpKysgKQotICAgICAgICAgICAgIHsKLS0g ICAgICAgICAgICAgICAgaWYoIEdldFZsY0F1ZGlvRm9ybWF0KCBwX2NvZGVjLT5zYW1wbGVfZm10 c1tpXSApID09IHBfZW5jLT5mbXRfaW4uaV9jb2RlYyApCi0rICAgICAgICAgICAgICAgIGlmKCBH ZXRWbGNBdWRpb0Zvcm1hdCggc2FtcGxlX2ZtdHNbaV0gKSA9PSBwX2VuYy0+Zm10X2luLmlfY29k ZWMgKQotICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICBwX2NvbnRleHQt PnNhbXBsZV9mbXQgPSBwX2NvZGVjLT5zYW1wbGVfZm10c1tpXTsKLSsgICAgICAgICAgICAgICAg ICAgIHBfY29udGV4dC0+c2FtcGxlX2ZtdCA9IHNhbXBsZV9mbXRzW2ldOwotICAgICAgICAgICAg ICAgICAgICAgbXNnX0RiZyggcF9lbmMsICJVc2luZyAlcyBhcyBuZXcgc2FtcGxlIGZvcm1hdCIs IGF2X2dldF9zYW1wbGVfZm10X25hbWUoIHBfY29udGV4dC0+c2FtcGxlX2ZtdCApICk7Ci0gICAg ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgfQotQEAgLTcyOSwxNCAr NzU1LDE0IEBAIGludCBJbml0VmlkZW9FbmMoIHZsY19vYmplY3RfdCAqcF90aGlzICkKLSAgICAg ICAgIHBfc3lzLT5iX3BsYW5hciA9IGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKCBwX2NvbnRleHQt PnNhbXBsZV9mbXQgKTsKLSAgICAgICAgIC8vIFRyeSBpZiB3ZSBjYW4gdXNlIGludGVybGVhdmVk IGZvcm1hdCBmb3IgY29kZWMgaW5wdXQgYXMgVkxDIGRvZXNuJ3QgcmVhbGx5IGRvIHBsYW5hciBh dWRpbyB5ZXQKLSAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBwbGFuYXIvaW50ZXJsZWF2 ZWQgYXVkaW8gaW4gdmxjIGlzIGVxdWFsbHkgc3VwcG9ydGVkCi0tICAgICAgICBpZiggcF9zeXMt PmJfcGxhbmFyICYmIHBfY29kZWMtPnNhbXBsZV9mbXRzICkKLSsgICAgICAgIGlmKCBwX3N5cy0+ Yl9wbGFuYXIgJiYgc2FtcGxlX2ZtdHMgKQotICAgICAgICAgewotICAgICAgICAgICAgIG1zZ19E YmcoIHBfZW5jLCAiVHJ5aW5nIHRvIGZpbmQgcGFja2V0IHNhbXBsZSBmb3JtYXQgaW5zdGVhZCBv ZiBwbGFuYXIgJXMiLCBhdl9nZXRfc2FtcGxlX2ZtdF9uYW1lKCBwX2NvbnRleHQtPnNhbXBsZV9m bXQgKSApOwotLSAgICAgICAgICAgIGZvciggdW5zaWduZWQgaW50IGk9MDsgcF9jb2RlYy0+c2Ft cGxlX2ZtdHNbaV0gIT0gLTE7IGkrKyApCi0rICAgICAgICAgICAgZm9yKCB1bnNpZ25lZCBpbnQg aT0wOyBzYW1wbGVfZm10c1tpXSAhPSBBVl9TQU1QTEVfRk1UX05PTkU7IGkrKyApCi0gICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgICBpZiggIWF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKCBw X2NvZGVjLT5zYW1wbGVfZm10c1tpXSApICkKLSsgICAgICAgICAgICAgICAgaWYoICFhdl9zYW1w bGVfZm10X2lzX3BsYW5hciggc2FtcGxlX2ZtdHNbaV0gKSApCi0gICAgICAgICAgICAgICAgIHsK LS0gICAgICAgICAgICAgICAgICAgIHBfY29udGV4dC0+c2FtcGxlX2ZtdCA9IHBfY29kZWMtPnNh bXBsZV9mbXRzW2ldOwotKyAgICAgICAgICAgICAgICAgICAgcF9jb250ZXh0LT5zYW1wbGVfZm10 ID0gc2FtcGxlX2ZtdHNbaV07Ci0gICAgICAgICAgICAgICAgICAgICBtc2dfRGJnKCBwX2VuYywg IkNoYW5naW5nIHRvIHBhY2tldCBmb3JtYXQgJXMgYXMgbmV3IHNhbXBsZSBmb3JtYXQiLCBhdl9n ZXRfc2FtcGxlX2ZtdF9uYW1lKCBwX2NvbnRleHQtPnNhbXBsZV9mbXQgKSApOwotICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgIH0KLUBAIC0xMjI3LDggKzEyNTMs MTkgQEAgc3RhdGljIGJsb2NrX3QgKkVuY29kZVZpZGVvKCBlbmNvZGVyX3QgKgotICAgICAgICAg ZnJhbWUtPnBpY3RfdHlwZSA9IDA7Ci0gCi0gICAgICAgICBmcmFtZS0+cmVwZWF0X3BpY3QgPSBw X3BpY3QtPmlfbmJfZmllbGRzIC0gMjsKLSsjaWYgTElCQVZVVElMX1ZFUlNJT05fQ0hFQ0soIDU4 LCA3LCAxMDAgKQotKyAgICAgICAgaWYgKHBfcGljdC0+Yl9wcm9ncmVzc2l2ZSkKLSsgICAgICAg ICAgICBmcmFtZS0+ZmxhZ3MgJj0gfkFWX0ZSQU1FX0ZMQUdfSU5URVJMQUNFRDsKLSsgICAgICAg IGVsc2UKLSsgICAgICAgICAgICBmcmFtZS0+ZmxhZ3MgfD0gQVZfRlJBTUVfRkxBR19JTlRFUkxB Q0VEOwotKyAgICAgICAgaWYgKHBfcGljdC0+Yl90b3BfZmllbGRfZmlyc3QpCi0rICAgICAgICAg ICAgZnJhbWUtPmZsYWdzIHw9IEFWX0ZSQU1FX0ZMQUdfVE9QX0ZJRUxEX0ZJUlNUOwotKyAgICAg ICAgZWxzZQotKyAgICAgICAgICAgIGZyYW1lLT5mbGFncyAmPSB+QVZfRlJBTUVfRkxBR19UT1Bf RklFTERfRklSU1Q7Ci0rI2Vsc2UKLSAgICAgICAgIGZyYW1lLT5pbnRlcmxhY2VkX2ZyYW1lID0g IXBfcGljdC0+Yl9wcm9ncmVzc2l2ZTsKLSAgICAgICAgIGZyYW1lLT50b3BfZmllbGRfZmlyc3Qg PSAhIXBfcGljdC0+Yl90b3BfZmllbGRfZmlyc3Q7Ci0rI2VuZGlmCi0gCi0gICAgICAgICBmcmFt ZS0+Zm9ybWF0ID0gcF9zeXMtPnBfY29udGV4dC0+cGl4X2ZtdDsKLSAgICAgICAgIGZyYW1lLT53 aWR0aCA9IHBfc3lzLT5wX2NvbnRleHQtPndpZHRoOwotQEAgLTE0ODMsOSArMTUyMCw4IEBAIHZv aWQgRW5kVmlkZW9FbmMoIHZsY19vYmplY3RfdCAqcF90aGlzICkKLSAgICAgYXZfZnJhbWVfZnJl ZSggJnBfc3lzLT5mcmFtZSApOwotIAotICAgICB2bGNfYXZjb2RlY19sb2NrKCk7Ci0tICAgIGF2 Y29kZWNfY2xvc2UoIHBfc3lzLT5wX2NvbnRleHQgKTsKLS0gICAgdmxjX2F2Y29kZWNfdW5sb2Nr KCk7Ci0gICAgIGF2Y29kZWNfZnJlZV9jb250ZXh0KCAmcF9zeXMtPnBfY29udGV4dCApOwotKyAg ICB2bGNfYXZjb2RlY191bmxvY2soKTsKLSAKLSAKLSAgICAgYXZfZnJlZSggcF9zeXMtPnBfaW50 ZXJsZWF2ZV9idWYgKTsKLWRpZmYgLXVwIHZsYy0zLjAuMjEvbW9kdWxlcy9kZW11eC9hdmZvcm1h dC9kZW11eC5jLm9yaWcgdmxjLTMuMC4yMS9tb2R1bGVzL2RlbXV4L2F2Zm9ybWF0L2RlbXV4LmMK LS0tLSB2bGMtMy4wLjIxL21vZHVsZXMvZGVtdXgvYXZmb3JtYXQvZGVtdXguYy5vcmlnCTIwMjUt MDktMjkgMjE6MjI6NTEuMjg1OTk1MzY2ICswMjAwCi0rKysgdmxjLTMuMC4yMS9tb2R1bGVzL2Rl bXV4L2F2Zm9ybWF0L2RlbXV4LmMJMjAyNS0wOS0yOSAyMTozODowNC44ODM3NzIxMjAgKzAyMDAK LUBAIC0xMTEsNiArMTExLDE5IEBAIHN0YXRpYyB2bGNfZm91cmNjX3QgQ29kZWNUYWdUb0ZvdXJj YyggdWkKLSAjZW5kaWYKLSB9Ci0gCi0rCi0rc3RhdGljIGlubGluZSB2b2lkKiBHZXRTdHJlYW1T aWRlRGF0YShjb25zdCBBVlN0cmVhbSAqcywgZW51bSBBVlBhY2tldFNpZGVEYXRhVHlwZSB0eXBl KQotK3sKLSsjaWYgTElCQVZDT0RFQ19WRVJTSU9OX0NIRUNLKCA2MCwgMjksIDEwMCApCi0rICAg IGNvbnN0IEFWQ29kZWNQYXJhbWV0ZXJzICpjcCA9IHMtPmNvZGVjcGFyOwotKyAgICBjb25zdCBB VlBhY2tldFNpZGVEYXRhICpwc2QgPQotKyAgICAgICAgYXZfcGFja2V0X3NpZGVfZGF0YV9nZXQo Y3AtPmNvZGVkX3NpZGVfZGF0YSwgY3AtPm5iX2NvZGVkX3NpZGVfZGF0YSwgdHlwZSk7Ci0rICAg IHJldHVybiBwc2QgPyBwc2QtPmRhdGEgOiBOVUxMOwotKyNlbHNlCi0rICAgIHJldHVybiBhdl9z dHJlYW1fZ2V0X3NpZGVfZGF0YShzLCB0eXBlLCBOVUxMKTsKLSsjZW5kaWYKLSt9Ci0rCi0gLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCi0gICogT3BlbgotICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLUBA IC0xMzcsNyArMTUwLDcgQEAgc3RhdGljIHZvaWQgZ2V0X3JvdGF0aW9uKGVzX2Zvcm1hdF90ICpm bQotICAgICAgICAgZWxzZQotICAgICAgICAgICAgIGZtdC0+dmlkZW8ub3JpZW50YXRpb24gPSBP UklFTlRfTk9STUFMOwotICAgICB9Ci0tICAgIGludDMyX3QgKm1hdHJpeCA9IChpbnQzMl90ICop YXZfc3RyZWFtX2dldF9zaWRlX2RhdGEocywgQVZfUEtUX0RBVEFfRElTUExBWU1BVFJJWCwgTlVM TCk7Ci0rICAgIGludDMyX3QgKm1hdHJpeCA9IEdldFN0cmVhbVNpZGVEYXRhKHMsIEFWX1BLVF9E QVRBX0RJU1BMQVlNQVRSSVgpOwotICAgICBpZiggbWF0cml4ICkgewotICAgICAgICAgYW5nbGUg PSBscm91bmQoYXZfZGlzcGxheV9yb3RhdGlvbl9nZXQobWF0cml4KSk7Ci0gCgpkaWZmIC0tZ2l0 IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggOGUyMWVkNi4uYjZlY2M4NiAxMDA2NDQKLS0tIGEv c291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIgKHZsYy0zLjAuMjEudGFy Lnh6KSA9IGNiMWFmNzZjODA1NjY0OGMzMzFkN2U2ZTA2ODBkMTYxZWQxODQ5ZWI2MzU5ODc1MDRm NDVlYWUwMjUzMWU5YjQzMjY1MTAzNDMxN2ZhN2UwMmIwNzIyOTA1ZGZiOWYwZjVkYWQ2N2I1OTI0 Y2M2MmVkY2FmMGQxNzNhYzM2YWVlCitTSEE1MTIgKHZsYy03NmQ3MTRjM2RmNmU0ZTBlZWIwYmJi YjEzZmIyM2Y3ZWIxYWE3MDE0LnRhci5iejIpID0gMWI5NTEzZTc4YjgwNTYwZWVhYWZjNGExMGEw NzQ3MmI0MzZmNmMwNDVmNmU1OWNjZjhlZmNhMzI2MzI0ZjNhOGViNjA0OTZhM2M4YWQ4ZmJkNWQz OTgzNWJiYjQzOGFiMDVjMjE1ZmI2Y2ZiMjFmNmQ5ZTJlYjU3NDRiYmRiZjcKCmRpZmYgLS1naXQg YS92bGMuc3BlYyBiL3ZsYy5zcGVjCmluZGV4IDU2NTJhOTkuLjAyOTUxN2YgMTAwNjQ0Ci0tLSBh L3ZsYy5zcGVjCisrKyBiL3ZsYy5zcGVjCkBAIC0zMiwzMiArMzIsMzEgQEAKICViY29uZCB2cGwg MQogJWVuZGlmCiAKKyVnbG9iYWwgY29tbWl0IDc2ZDcxNGMzZGY2ZTRlMGVlYjBiYmJiMTNmYjIz ZjdlYjFhYTcwMTQKKyVnbG9iYWwgZ2l0ZGF0ZSAyMDI1MDkxMQorCiBOYW1lOgkJdmxjCiBFcG9j aDoJCTEKLVZlcnNpb246CTMuMC4yMQorVmVyc2lvbjoJMy4wLjIyfnJjMQogUmVsZWFzZToJJWF1 dG9yZWxlYXNlCiBTdW1tYXJ5OglUaGUgY3Jvc3MtcGxhdGZvcm0gb3Blbi1zb3VyY2UgbXVsdGlt ZWRpYSBmcmFtZXdvcmssIHBsYXllciBhbmQgc2VydmVyCiBMaWNlbnNlOglHUEwtMi4wLW9yLWxh dGVyIEFORCBMR1BMLTIuMS1vci1sYXRlciBBTkQgQlNELTItQ2xhdXNlIEFORCBCU0QtMy1DbGF1 c2UKIFVSTDoJCWh0dHBzOi8vd3d3LnZpZGVvbGFuLm9yZworJWlmIDAlez9jb21taXQ6MX0KK1Nv dXJjZToJCWh0dHBzOi8vY29kZS52aWRlb2xhbi5vcmcvdmlkZW9sYW4vdmxjLy0vYXJjaGl2ZS8l e2NvbW1pdH0vdmxjLSV7Y29tbWl0fS50YXIuYnoyCislZWxzZQogU291cmNlOgkJaHR0cHM6Ly9n ZXQudmlkZW9sYW4ub3JnL3ZsYy8le3ZlcnNpb259L3ZsYy0le3ZlcnNpb259LnRhci54egorJWVu ZGlmCiBTb3VyY2U6CQltYWNyb3MudmxjCiAKICMjIHVwc3RyZWFtIHBhdGNoZXMKLSMgb3B1c19o ZWFkZXI6IGZpeCBjaGFubmVsIG1hcHBpbmcgZmFtaWx5IDEgcGFyc2luZyAocmhieiMyMzA3OTE5 KQotUGF0Y2g6CQlodHRwczovL2NvZGUudmlkZW9sYW4ub3JnL3ZpZGVvbGFuL3ZsYy8tL21lcmdl X3JlcXVlc3RzLzU1OTAucGF0Y2gKLSMgYWRkIHN1cHBvcnQgZm9yIGZmbXBlZyA3LjAgKHdpdGhv dXQgVkFBUEkpCi1QYXRjaDoJCWh0dHBzOi8vY29kZS52aWRlb2xhbi5vcmcvdmlkZW9sYW4vdmxj Ly0vbWVyZ2VfcmVxdWVzdHMvNTU3NC5wYXRjaAotIyBtdXg6IGF2Zm9ybWF0OiBmaXggYXZpbyBj YWxsYmFja3Mgc2lnbmF0dXJlIHdpdGggZmZtcGVnIDYuMQotUGF0Y2g6CQlodHRwczovL2NvZGUu dmlkZW9sYW4ub3JnL3ZpZGVvbGFuL3ZsYy8tL21lcmdlX3JlcXVlc3RzLzYxNjgucGF0Y2gKLSMg ZmZtcGVnOiBiYWNrcG9ydCBtb3JlIGNoYW5uZWwgY2hlY2tzCi1QYXRjaDoJCWh0dHBzOi8vY29k ZS52aWRlb2xhbi5vcmcvdmlkZW9sYW4vdmxjLy0vbWVyZ2VfcmVxdWVzdHMvNjI3My5wYXRjaAot IyBhdmNvZGVjOiB2YWFwaTogc3VwcG9ydCBWQUFQSSB3aXRoIGxhdGVzdCBGRm1wZWcKLVBhdGNo OgkJaHR0cHM6Ly9jb2RlLnZpZGVvbGFuLm9yZy92aWRlb2xhbi92bGMvLS9tZXJnZV9yZXF1ZXN0 cy82NjA2LnBhdGNoCi0jIG5mczogZml4IGxpYm5mcyBBUEkgdjIgc3VwcG9ydCAocmhieiMyMzQx NzkxKQotUGF0Y2g6CQlodHRwczovL2NvZGUudmlkZW9sYW4ub3JnL3ZpZGVvbGFuL3ZsYy8tL21l cmdlX3JlcXVlc3RzLzY1MjcucGF0Y2gKKworIyMgYmFja3BvcnRlZCBwYXRjaGVzIGZyb20gbWFz dGVyCisjIGZyZWVyZHA6IHVwZGF0ZSB0byBmcmVlcmRwIDIuMCBhcGkgKCMyMjc4KQorUGF0Y2g6 CQlmcmVlcmRwMi5wYXRjaAorIyBsaXZlNTU1OiBmaXggYnVpbGQgd2l0aCB2ZXJzaW9ucyA+PSAy MDI0LjExLjI4ICgjNjk3MikKK1BhdGNoOgkJbGl2ZTU1NS5wYXRjaAogIyBwb3J0IHRvIEZGbXBl ZyA4Ci0jIGh0dHBzOi8vY29kZS52aWRlb2xhbi5vcmcvdmlkZW9sYW4vdmxjLy0vbWVyZ2VfcmVx dWVzdHMvNjY1NgotIyBodHRwczovL2NvZGUudmlkZW9sYW4ub3JnL3ZpZGVvbGFuL3ZsYy8tL21l cmdlX3JlcXVlc3RzLzY2NTcKICMgaHR0cHM6Ly9jb2RlLnZpZGVvbGFuLm9yZy92aWRlb2xhbi92 bGMvLS9tZXJnZV9yZXF1ZXN0cy82NjU5CiAjIGh0dHBzOi8vY29kZS52aWRlb2xhbi5vcmcvdmlk ZW9sYW4vdmxjLy0vaXNzdWVzLzI5Mjc4CiBQYXRjaDoJCWZmbXBlZzgucGF0Y2gKQEAgLTc3LDEw ICs3Niw2IEBAIFBhdGNoOgkJYXBwZGF0YS5wYXRjaAogUGF0Y2g6CQlsaWJpZG4yLnBhdGNoCiAj IGZpeCBkZXByZWNhdGVkIGx1YSBtYXRoIGZ1bmN0aW9ucyAocmhieiMyMjgwMDkxKQogUGF0Y2g6 CQlsdWEtbWF0aC5wYXRjaAotIyB1cGRhdGUgdG8gZnJlZXJkcDIgYXBpOyBiYWNrcG9ydCBmcm9t IG1hc3RlcgotUGF0Y2g6CQlmcmVlcmRwMi5wYXRjaAotIyBmaXggYnVpbGQgd2l0aCBsaXZlNTU1 LTIwMjQuMTEuMjgKLVBhdGNoOgkJbGl2ZTU1NS5wYXRjaAogIyBhdm9pZCAic3RhbGUgcGx1Z2lu IGNhY2hlIiB3YXJuaW5ncyBpbiBmbGF0cGFrcwogUGF0Y2g6CQlmbGF0cGFrLWNhY2hlLnBhdGNo CiAKQEAgLTk1LDcgKzkwLDcgQEAgQnVpbGRSZXF1aXJlczoJZ2NjLWMrKwogQnVpbGRSZXF1aXJl czoJZGVza3RvcC1maWxlLXV0aWxzCiBCdWlsZFJlcXVpcmVzOglsaWJhcHBzdHJlYW0tZ2xpYgog Ci1CdWlsZFJlcXVpcmVzOglhNTJkZWMtZGV2ZWwKKyNCdWlsZFJlcXVpcmVzOglhNTJkZWMtZGV2 ZWwKIEJ1aWxkUmVxdWlyZXM6CWFhbGliLWRldmVsCiBCdWlsZFJlcXVpcmVzOglmYWFkMi1kZXZl bAogQnVpbGRSZXF1aXJlczoJaG9zdG5hbWUKQEAgLTE2MCw3ICsxNTUsNyBAQCBCdWlsZFJlcXVp cmVzOglwa2djb25maWcobGliY2hyb21hcHJpbnQpCiAlaWYgJXt3aXRoIGllZWUxMzk0fQogQnVp bGRSZXF1aXJlczoJcGtnY29uZmlnKGxpYmRjMTM5NC0yKSA+PSAyLjEuMAogJWVuZGlmCi1CdWls ZFJlcXVpcmVzOglwa2djb25maWcobGliZGNhKSA+PSAwLjAuNQorI0J1aWxkUmVxdWlyZXM6CXBr Z2NvbmZpZyhsaWJkY2EpID49IDAuMC41CiAjQnVpbGRSZXF1aXJlczoJcGtnY29uZmlnKGxpYmRz bSkgPj0gMC4yLjAKIEJ1aWxkUmVxdWlyZXM6CXBrZ2NvbmZpZyhsaWJkdmJwc2kpCiBCdWlsZFJl cXVpcmVzOglwa2djb25maWcobGliZWJtbCkgPj0gMS4zLjYKQEAgLTE2OSw3ICsxNjQsNyBAQCBC dWlsZFJlcXVpcmVzOglwa2djb25maWcobGliZ21lKQogQnVpbGRSZXF1aXJlczoJcGtnY29uZmln KGxpYmlkbjIpCiBCdWlsZFJlcXVpcmVzOglwa2djb25maWcobGlibWF0cm9za2EpCiBCdWlsZFJl cXVpcmVzOglwa2djb25maWcobGlibW9kcGx1ZykgPj0gMC44LjkuMAotQnVpbGRSZXF1aXJlczoJ cGtnY29uZmlnKGxpYm1wZWcyKSA+PSAwLjMuMgorI0J1aWxkUmVxdWlyZXM6CXBrZ2NvbmZpZyhs aWJtcGVnMikgPj0gMC4zLjIKIEJ1aWxkUmVxdWlyZXM6CXBrZ2NvbmZpZyhsaWJtcGcxMjMpCiBC dWlsZFJlcXVpcmVzOglwa2djb25maWcobGlibXRwKSA+PSAxLjAuMAogQnVpbGRSZXF1aXJlczoJ cGtnY29uZmlnKGxpYm5mcykgPj0gMS4xMC4wCkBAIC01ODAsNyArNTc1LDcgQEAgZGV2ZWxvcGlu ZyBhcHBsaWNhdGlvbnMgYW5kIHBsdWdpbnMgdGhhdCB1c2UgJXtuYW1lfS4KIAogCiAlcHJlcAot JWF1dG9zZXR1cCAtcDEKKyVhdXRvc2V0dXAgLXAxICV7P2NvbW1pdDotbiAle25hbWV9LSV7Y29t bWl0fX0KIAogcm0gLWYgYWNsb2NhbC5tNCBtNC9saWIqLm00IG00L2x0Ki5tNAogLi9ib290c3Ry YXAKQEAgLTY2OSwxMCArNjY0LDEwIEBAIGV4cG9ydCBMSVZFNTU1X1BSRUZJWD0le19wcmVmaXh9 CiAJLS1lbmFibGUtdnB4CQkJCQkJXAogCS0tZW5hYmxlLXR3b2xhbWUJCQkJCVwKIAktLWVuYWJs ZS1mZGthYWMJCQkJCQlcCi0JLS1lbmFibGUtYTUyCQkJCQkJXAotCS0tZW5hYmxlLWRjYQkJCQkJ CVwKKwktLWRpc2FibGUtYTUyCQkJCQkJXAorCS0tZGlzYWJsZS1kY2EJCQkJCQlcCiAJLS1lbmFi bGUtZmxhYwkJCQkJCVwKLQktLWVuYWJsZS1saWJtcGVnMgkJCQkJXAorCS0tZGlzYWJsZS1saWJt cGVnMgkJCQkJXAogCS0tZW5hYmxlLXZvcmJpcwkJCQkJCVwKIAktLWVuYWJsZS10cmVtb3IJCQkJ CQlcCiAJLS1lbmFibGUtc3BlZXgJCQkJCQlcCkBAIC05NDUsNyArOTQwLDYgQEAgbWFrZSBjaGVj awogJXt2bGNfcGx1Z2luZGlyfS9hdWRpb19vdXRwdXQvbGliYWZpbGVfcGx1Z2luLnNvCiAle3Zs Y19wbHVnaW5kaXJ9L2F1ZGlvX291dHB1dC9saWJhbHNhX3BsdWdpbi5zbwogJXt2bGNfcGx1Z2lu ZGlyfS9hdWRpb19vdXRwdXQvbGliYW1lbV9wbHVnaW4uc28KLSV7dmxjX3BsdWdpbmRpcn0vY29k ZWMvbGliYTUyX3BsdWdpbi5zbwogJXt2bGNfcGx1Z2luZGlyfS9jb2RlYy9saWJhZHBjbV9wbHVn aW4uc28KICV7dmxjX3BsdWdpbmRpcn0vY29kZWMvbGliYWVzM19wbHVnaW4uc28KICV7dmxjX3Bs dWdpbmRpcn0vY29kZWMvbGliYXJhd19wbHVnaW4uc28KQEAgLTExNTcsMTAgKzExNTEsOCBAQCBt YWtlIGNoZWNrCiAlaWYgJXt3aXRoIGRhYWxhfQogJXt2bGNfcGx1Z2luZGlyfS9jb2RlYy9saWJk YWFsYV9wbHVnaW4uc28KICVlbmRpZgotJXt2bGNfcGx1Z2luZGlyfS9jb2RlYy9saWJkY2FfcGx1 Z2luLnNvCiAle3ZsY19wbHVnaW5kaXJ9L2NvZGVjL2xpYmthdGVfcGx1Z2luLnNvCiAle3ZsY19w bHVnaW5kaXJ9L2NvZGVjL2xpYmxpYmFzc19wbHVnaW4uc28KLSV7dmxjX3BsdWdpbmRpcn0vY29k ZWMvbGlibGlibXBlZzJfcGx1Z2luLnNvCiAlaWYgJXt3aXRoIHZwbH0KICV7dmxjX3BsdWdpbmRp cn0vY29kZWMvbGlicXN2X3BsdWdpbi5zbwogJWVuZGlmCg==