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: Gwyn Ciesla To: git-commits@fedoraproject.org Subject: [rpms/motif] rawhide: 2.5.2 Date: Thu, 10 Sep 2026 13:12:13 GMT Message-ID: <178904593334.1.2578338258736269447.rpms-motif-8e3a1497cda7@fedoraproject.org> List-ID: X-Git-Repo: rpms/motif X-Git-Branch: rawhide X-Git-Rev: 8e3a1497cda7f35a8b81a3e72b048f1b2af2ca75 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbW90aWYKQnJhbmNo IDogcmF3aGlkZQpDb21taXQgOiA4ZTNhMTQ5N2NkYTdmMzVhOGI4MWEzZTcyYjA0OGYxYjJhZjJj YTc1CkF1dGhvciA6IEd3eW4gQ2llc2xhIDxnd3luY0Bwcm90b25tYWlsLmNvbT4KRGF0ZSAgIDog MjAyNi0wOS0xMFQwODoxMjowNS0wNTowMApTdGF0cyAgOiArMjMvLTI1MTggaW4gMjYgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL21vdGlmL2MvOGUz YTE0OTdjZGE3ZjM1YThiODFhM2U3MmIwNDhmMWIyYWYyY2E3NT9icmFuY2g9cmF3aGlkZQoKTG9n OgoyLjUuMgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBk NmQxMWViLi5lNzViZjUzIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUK QEAgLTEsMiArMSwzIEBACiAvbW90aWYtMi4zLjQtc3JjLnRnegogL21vdGlmLTIuMy44LnRhci5n egorL21vdGlmLTIuNS4yLnRhci5negoKZGlmZiAtLWdpdCBhLzAwMDEtRml4LUNWRS0yMDIzLTQz Nzg4LU91dC1vZi1ib3VuZHMtcmVhZC1pbi1YcG1DcmVhdGVYcC5wYXRjaCBiLzAwMDEtRml4LUNW RS0yMDIzLTQzNzg4LU91dC1vZi1ib3VuZHMtcmVhZC1pbi1YcG1DcmVhdGVYcC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWVlNjYwZC4uMDAwMDAwMAotLS0gYS8wMDAxLUZp eC1DVkUtMjAyMy00Mzc4OC1PdXQtb2YtYm91bmRzLXJlYWQtaW4tWHBtQ3JlYXRlWHAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDJmYTU1NGIwMWVmNjA3OWE5YjM1 ZGY5MzMyYmRjNGYxMzllZDY3ZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBbGFu IENvb3BlcnNtaXRoIDxhbGFuLmNvb3BlcnNtaXRoQG9yYWNsZS5jb20+Ci1EYXRlOiBTYXQsIDI5 IEFwciAyMDIzIDE3OjUwOjM5IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBDVkUtMjAyMy00 Mzc4ODogT3V0IG9mIGJvdW5kcyByZWFkIGluCi0gWHBtQ3JlYXRlWHBtSW1hZ2VGcm9tQnVmZmVy Ci0KLVdoZW4gdGhlIHRlc3QgY2FzZSBmb3IgQ1ZFLTIwMjItNDYyODUgd2FzIHJ1biB3aXRoIHRo ZSBBZGRyZXNzIFNhbml0aXplcgotZW5hYmxlZCwgaXQgZm91bmQgYW4gb3V0LW9mLWJvdW5kcyBy ZWFkIGluIFBhcnNlQ29tbWVudCgpIHdoZW4gcmVhZGluZwotZnJvbSBhIG1lbW9yeSBidWZmZXIg aW5zdGVhZCBvZiBhIGZpbGUsIGFzIGl0IGNvbnRpbnVlZCB0byBsb29rIGZvciB0aGUKLWNsb3Np bmcgY29tbWVudCBtYXJrZXIgcGFzdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCi0KLVNpZ25lZC1v ZmYtYnk6IEFsYW4gQ29vcGVyc21pdGggPGFsYW4uY29vcGVyc21pdGhAb3JhY2xlLmNvbT4KLS0t LQotIGxpYi9YbS9YcG1kYXRhLmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvWG0vWHBtZGF0YS5jIGIvbGli L1htL1hwbWRhdGEuYwotaW5kZXggNzUyNGU2NS4uMGIwZjFmMyAxMDA2NDQKLS0tLSBhL2xpYi9Y bS9YcG1kYXRhLmMKLSsrKyBiL2xpYi9YbS9YcG1kYXRhLmMKLUBAIC0xMDgsNyArMTA4LDcgQEAg UGFyc2VDb21tZW50KHhwbURhdGEgKmRhdGEpCi0gCQluKys7Ci0gCQlzMisrOwotIAkgICAgfSB3 aGlsZSAoYyA9PSAqczIgJiYgKnMyICE9ICdcMCcgJiYgYyk7Ci0tCSAgICBpZiAoKnMyID09ICdc MCcpIHsKLSsJICAgIGlmICgqczIgPT0gJ1wwJyB8fCBjID09ICdcMCcpIHsKLSAJCS8qIHRoaXMg aXMgdGhlIGVuZCBvZiB0aGUgY29tbWVudCAqLwotIAkJbm90ZW5kID0gMDsKLSAJCW1kYXRhLT5j cHRyLS07Ci0tLSAKLTIuNDEuMAotCgpkaWZmIC0tZ2l0IGEvMDAwMS1GaXgtQ1ZFLTIwMjMtNDM3 ODktT3V0LW9mLWJvdW5kcy1yZWFkLW9uLVhQTS13aXRoLWNvLnBhdGNoIGIvMDAwMS1GaXgtQ1ZF LTIwMjMtNDM3ODktT3V0LW9mLWJvdW5kcy1yZWFkLW9uLVhQTS13aXRoLWNvLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTI5ODhiLi4wMDAwMDAwCi0tLSBhLzAwMDEtRml4 LUNWRS0yMDIzLTQzNzg5LU91dC1vZi1ib3VuZHMtcmVhZC1vbi1YUE0td2l0aC1jby5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gN2UyMWNiNjNiOWExY2E3NjBhMDZj YzRjZDliMTliYmMzZmNkOGY1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFsYW4g Q29vcGVyc21pdGggPGFsYW4uY29vcGVyc21pdGhAb3JhY2xlLmNvbT4KLURhdGU6IFNhdCwgMjkg QXByIDIwMjMgMTg6MzA6MzQgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IENWRS0yMDIzLTQz Nzg5OiBPdXQgb2YgYm91bmRzIHJlYWQgb24gWFBNIHdpdGggY29ycnVwdGVkCi0gY29sb3JtYXAK LQotRm91bmQgd2l0aCBjbGFuZydzIGxpYmZ1enplcgotCi1TaWduZWQtb2ZmLWJ5OiBBbGFuIENv b3BlcnNtaXRoIDxhbGFuLmNvb3BlcnNtaXRoQG9yYWNsZS5jb20+Ci0tLS0KLSBsaWIvWG0vWHBt ZGF0YS5jIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9YbS9YcG1kYXRhLmMgYi9saWIvWG0vWHBtZGF0 YS5jCi1pbmRleCAwYjBmMWYzLi42ZTg3NDU1IDEwMDY0NAotLS0tIGEvbGliL1htL1hwbWRhdGEu YwotKysrIGIvbGliL1htL1hwbWRhdGEuYwotQEAgLTI1OSwxMyArMjU5LDEzIEBAIHhwbU5leHRX b3JkKAotICAgICBpbnQgYzsKLSAKLSAgICAgaWYgKCFtZGF0YS0+dHlwZSB8fCBtZGF0YS0+dHlw ZSA9PSBYUE1CVUZGRVIpIHsKLS0Jd2hpbGUgKGlzc3BhY2UoYyA9ICptZGF0YS0+Y3B0cikgJiYg YyAhPSBtZGF0YS0+RW9zKQotKwl3aGlsZSAoKGMgPSAqbWRhdGEtPmNwdHIpICYmIGlzc3BhY2Uo YykgJiYgKGMgIT0gbWRhdGEtPkVvcykpCi0gCSAgICBtZGF0YS0+Y3B0cisrOwotIAlkbyB7Ci0g CSAgICBjID0gKm1kYXRhLT5jcHRyKys7Ci0gCSAgICAqYnVmKysgPSBjOwotIAkgICAgbisrOwot LQl9IHdoaWxlICghaXNzcGFjZShjKSAmJiBjICE9IG1kYXRhLT5Fb3MgJiYgbiA8IGJ1Zmxlbik7 Ci0rCX0gd2hpbGUgKGMgJiYgIWlzc3BhY2UoYykgJiYgKGMgIT0gbWRhdGEtPkVvcykgJiYgKG4g PCBidWZsZW4pKTsKLSAJbi0tOwotIAltZGF0YS0+Y3B0ci0tOwotICAgICB9IGVsc2UgewotLS0g Ci0yLjQxLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDEtWG0tU2NyZWVuLUFkZC1fTkVUX1dPUktBUkVB LXN1cHBvcnQucGF0Y2ggYi8wMDAxLVhtLVNjcmVlbi1BZGQtX05FVF9XT1JLQVJFQS1zdXBwb3J0 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGM5NDBjLi4wMDAwMDAwCi0t LSBhLzAwMDEtWG0tU2NyZWVuLUFkZC1fTkVUX1dPUktBUkVBLXN1cHBvcnQucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotRnJvbSA3OGEwY2Q1YmRiZTQ0N2JhYjgwN2EwOWZh ZTE4ZDhhOTYxMzY2YWJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogT2xpdmllciBG b3VyZGFuIDxvZm91cmRhbkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAxNiBKdW4gMjAyNSAxNDoy OToyMiArMDIwMAotU3ViamVjdDogW1BBVENIIDEvMl0gWG0vU2NyZWVuOiBBZGQgX05FVF9XT1JL QVJFQSBzdXBwb3J0Ci0KLUFkZCBzdXBwb3J0IGZvciB0aGUgZXh0ZW5kZWQgd2luZG93IG1hbmFn ZXIgaGludCBfTkVUX1dPUktBUkVBIHRvCi1wcmV2ZW50IE1vdGlmIGZyb20gcGxhY2luZyBpdHMg d2lkZ2V0cyBvdXRzaWRlIG9mIHRoZSBnZW9tZXRyeQotYWR2ZXJ0aXNlZCBieSB0aGUgd2luZG93 IG1hbmFnZXIuCi0KLVN1cHBvcnQgZm9yIF9ORVRfV09SS0FSRUEgZGVwZW5kcyBvbiB0aGUgWGlu ZXJhbWEgcGF0Y2hlcyBhcyBpdCBzaGFyZXMKLXRoZSBzYW1lIGxvZ2ljLgotCi1TaWduZWQtb2Zm LWJ5OiBPbGl2aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJlZGhhdC5jb20+Ci0tLS0KLSBsaWIvWG0v U2NyZWVuLmMgfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQg YS9saWIvWG0vU2NyZWVuLmMgYi9saWIvWG0vU2NyZWVuLmMKLWluZGV4IDQ0YWJjZmIzLi42MjY5 ZmZiMyAxMDA2NDQKLS0tLSBhL2xpYi9YbS9TY3JlZW4uYwotKysrIGIvbGliL1htL1NjcmVlbi5j Ci1AQCAtMTUxNyw2ICsxNTE3LDExMyBAQCBYbUdldFhtU2NyZWVuKAotIAlyZXR1cm4gd2lkZ2V0 OwotIH0KLSAKLStzdGF0aWMgaW50Ci0rX1htU2NyZWVuR2V0Q3VycmVudERlc2t0b3AoU2NyZWVu ICpzY3JlZW4pCi0rewotKyAgICBzdGF0aWMgQXRvbSAgIFhtQV9ORVRfQ1VSUkVOVF9ERVNLVE9Q ID0gTm9uZTsKLSsgICAgQXRvbSAgICAgICAgICB0eXBlOwotKyAgICBEaXNwbGF5ICAgICAgICpk cHk7Ci0rICAgIFdpbmRvdyAgICAgICAgcm9vdHdpbmRvdzsKLSsgICAgaW50ICAgICAgICAgICBy ZXN1bHQgPSBGYWxzZTsKLSsgICAgaW50ICAgICAgICAgICBkZXNrdG9wID0gMDsKLSsgICAgaW50 ICAgICAgICAgICBmb3JtYXQ7Ci0rICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoUnRuOwotKyAgICB1 bnNpZ25lZCBsb25nIGJ5dGVzQWZ0ZXI7Ci0rICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7Ci0rCi0r ICAgIGRweSA9IERpc3BsYXlPZlNjcmVlbihzY3JlZW4pOwotKyAgICByb290d2luZG93ID0gUm9v dFdpbmRvd09mU2NyZWVuKHNjcmVlbik7Ci0rCi0rICAgIGlmIChYbUFfTkVUX0NVUlJFTlRfREVT S1RPUCA9PSBOb25lKQotKyAgICAgIFhtQV9ORVRfQ1VSUkVOVF9ERVNLVE9QID0gWEludGVybkF0 b20oZHB5LCAiX05FVF9DVVJSRU5UX0RFU0tUT1AiLCBGYWxzZSk7Ci0rCi0rICAgIHJlc3VsdCA9 WEdldFdpbmRvd1Byb3BlcnR5KGRweSwgcm9vdHdpbmRvdywKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWG1BX05FVF9DVVJSRU5UX0RFU0tUT1AsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDBMLCAxMDAwMDBMLCBGYWxzZSwgWEFfQ0FSRElOQUwsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZ0eXBlLCAmZm9ybWF0LCAmbGVuZ3RoUnRuLCAmYnl0ZXNB ZnRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOwotKwotKyAgICBp ZiAodHlwZSA9PSBYQV9DQVJESU5BTCkgewotKyAgICAgIGRlc2t0b3AgPSAqKGludCAqKWRhdGE7 Ci0rICAgICAgWEZyZWUoZGF0YSk7Ci0rICAgIH0KLSsjaWZkZWYgREVCVUdfWElORVJBTUEKLSsg ICAgcHJpbnRmKCJDdXJyZW50IGRlc2t0b3AgaXMgJWlcbiIsIGRlc2t0b3ApOwotKyNlbmRpZiAv KiBERUJVR19YSU5FUkFNQSAqLwotKwotKyAgcmV0dXJuIGRlc2t0b3A7Ci0rfQotKwotK3N0YXRp YyB2b2lkCi0rX1htQ2hlY2tOZXRXb3JrYXJlYSgKLSsgICAgICAgIFNjcmVlbiAqc2NyZWVuLAot KwlQb3NpdGlvbiAqcmV0X3gsCi0rCVBvc2l0aW9uICpyZXRfeSwKLSsJUG9zaXRpb24gKnJldF9t YXhfeCwKLSsJUG9zaXRpb24gKnJldF9tYXhfeSApCi0rewotKyAgICBzdGF0aWMgQXRvbSAgIFht QV9ORVRfV09SS0FSRUEgPSBOb25lOwotKyAgICBBdG9tICAgICAgICAgIHR5cGU7Ci0rICAgIERp c3BsYXkgICAgICAgKmRweTsKLSsgICAgV2luZG93ICAgICAgICByb290d2luZG93OwotKyAgICBp bnQgICAgICAgICAgIHJlc3VsdCA9IEZhbHNlOwotKyAgICBpbnQgICAgICAgICAgIGRlc2t0b3Ag PSAwOwotKyAgICBpbnQgICAgICAgICAgIGZvcm1hdDsKLSsgICAgdW5zaWduZWQgbG9uZyBsZW5n dGhSdG47Ci0rICAgIHVuc2lnbmVkIGxvbmcgYnl0ZXNBZnRlcjsKLSsgICAgdW5zaWduZWQgY2hh ciAqZGF0YTsKLSsgICAgbG9uZyAgICAgICAgICAqbmV0X3dvcmthcmVhOwotKwotKyAgICBkcHkg PSBEaXNwbGF5T2ZTY3JlZW4oc2NyZWVuKTsKLSsgICAgcm9vdHdpbmRvdyA9IFJvb3RXaW5kb3dP ZlNjcmVlbihzY3JlZW4pOwotKyAgICBkZXNrdG9wID0gX1htU2NyZWVuR2V0Q3VycmVudERlc2t0 b3Aoc2NyZWVuKTsKLSsKLSsgICAgaWYgKFhtQV9ORVRfV09SS0FSRUEgPT0gTm9uZSkKLSsgICAg ICBYbUFfTkVUX1dPUktBUkVBID0gWEludGVybkF0b20oZHB5LCAiX05FVF9XT1JLQVJFQSIsIEZh bHNlKTsKLSsKLSsgICAgcmVzdWx0ID1YR2V0V2luZG93UHJvcGVydHkoZHB5LCByb290d2luZG93 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYbUFfTkVUX1dPUktBUkVBLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwTCwgMTAwMDAwTCwgRmFsc2UsIFhBX0NBUkRJ TkFMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHlwZSwgJmZvcm1hdCwgJmxl bmd0aFJ0biwgJmJ5dGVzQWZ0ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZk YXRhKTsKLSsKLSsgICAgaWYgKHJlc3VsdCAhPSBTdWNjZXNzIHx8IHR5cGUgIT0gWEFfQ0FSRElO QUwgfHwgZm9ybWF0ICE9IDMyIHx8Ci0rICAgICAgICBieXRlc0FmdGVyICE9IDAgfHwgbGVuZ3Ro UnRuICUgNCAhPSAwIHx8IGRlc2t0b3AgKyAxID4gbGVuZ3RoUnRuIC8gNCkKLSsgICAgICBnb3Rv IGRvbmU7Ci0rCi0rICAgIG5ldF93b3JrYXJlYSA9IChsb25nICopIGRhdGE7Ci0rCi0rI2RlZmlu ZSBORVRfV09SS0FSRUFfWCAoZGVza3RvcCAqIDQpCi0rI2RlZmluZSBORVRfV09SS0FSRUFfWSAo ZGVza3RvcCAqIDQgKyAxKQotKyNkZWZpbmUgTkVUX1dPUktBUkVBX1dJRFRIIChkZXNrdG9wICog NCArIDIpCi0rI2RlZmluZSBORVRfV09SS0FSRUFfSEVJR0hUIChkZXNrdG9wICogNCArIDMpCi0r Ci0rICAgIGlmICgqcmV0X3ggPCBuZXRfd29ya2FyZWFbTkVUX1dPUktBUkVBX1hdKQotKyAgICAg ICpyZXRfeCA9IG5ldF93b3JrYXJlYVtORVRfV09SS0FSRUFfWF07Ci0rCi0rICAgIGlmICgqcmV0 X3kgPCBuZXRfd29ya2FyZWFbTkVUX1dPUktBUkVBX1ldKQotKyAgICAgICpyZXRfeSA9IG5ldF93 b3JrYXJlYVtORVRfV09SS0FSRUFfWV07Ci0rCi0rICAgIGlmICgqcmV0X21heF94ID4gbmV0X3dv cmthcmVhW05FVF9XT1JLQVJFQV9YXSArIG5ldF93b3JrYXJlYVtORVRfV09SS0FSRUFfV0lEVEhd KQotKyAgICAgICpyZXRfbWF4X3ggPSBuZXRfd29ya2FyZWFbTkVUX1dPUktBUkVBX1hdICsgbmV0 X3dvcmthcmVhW05FVF9XT1JLQVJFQV9XSURUSF07Ci0rCi0rICAgIGlmICgqcmV0X21heF95ID4g bmV0X3dvcmthcmVhW05FVF9XT1JLQVJFQV9ZXSArIG5ldF93b3JrYXJlYVtORVRfV09SS0FSRUFf SEVJR0hUXSkKLSsgICAgICAqcmV0X21heF95ID0gbmV0X3dvcmthcmVhW05FVF9XT1JLQVJFQV9Z XSArIG5ldF93b3JrYXJlYVtORVRfV09SS0FSRUFfSEVJR0hUXTsKLSsKLSsjdW5kZWYgTkVUX1dP UktBUkVBX1gKLSsjdW5kZWYgTkVUX1dPUktBUkVBX1kKLSsjdW5kZWYgTkVUX1dPUktBUkVBX1dJ RFRICi0rI3VuZGVmIE5FVF9XT1JLQVJFQV9IRUlHSFQKLSsKLSsjaWZkZWYgREVCVUdfWElORVJB TUEKLSsgICAgcHJpbnRmKCJfTkVUX1dPUktBUkVBIHdpdGhpbiAoJWksJWkpIGFuZCAoJWksJWkp XG4iLCAqcmV0X3gsICpyZXRfeSwgKnJldF9tYXhfeCwgKnJldF9tYXhfeSk7Ci0rI2VuZGlmIC8q IERFQlVHX1hJTkVSQU1BICovCi0rCi0rZG9uZToKLSsgICAgaWYgKGRhdGEpCi0rICAgICAgWEZy ZWUoZGF0YSk7Ci0rfQotKwotIHZvaWQKLSBfWG1TY3JlZW5HZXRCb3VuZGFyaWVzQXRwb2ludCgK LSAgICAgICAgIFNjcmVlbiAqc2NyZWVuLAotQEAgLTE1NjEsNiArMTY2OCw3IEBAIF9YbVNjcmVl bkdldEJvdW5kYXJpZXNBdHBvaW50KAotICAgICAgIH0KLSAgICAgfQotICNlbmRpZiAvKiBIQVZF X0xJQlhJTkVSQU1BICovCi0rICAgIF9YbUNoZWNrTmV0V29ya2FyZWEoc2NyZWVuLCAmc2NyZWVu X3gsICZzY3JlZW5feSwgJnNjcmVlbl9tYXhfeCwgJnNjcmVlbl9tYXhfeSk7Ci0gb3V0OgotICNp ZmRlZiBERUJVR19YSU5FUkFNQQotICAgICBwcmludGYoIlBvaW50ICglaSwlaSkgY29uc3RyYWlu ZWQgd2l0aGluICglaSwlaSkgYW5kICglaSwlaSlcbiIsCi0tLSAKLTIuNTAuMAotCgpkaWZmIC0t Z2l0IGEvMDAwMS1YbS1TdHJpbmctRml4LW1lbW9yeS1sZWFrLnBhdGNoIGIvMDAwMS1YbS1TdHJp bmctRml4LW1lbW9yeS1sZWFrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0 NWE5MTQzLi4wMDAwMDAwCi0tLSBhLzAwMDEtWG0tU3RyaW5nLUZpeC1tZW1vcnktbGVhay5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gMzBmZjZlMDBlOWE1ZWRjMTVm ZjQzOGI2Y2ZkOGE1YTQxNjk2MzBhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE9s aXZpZXIgRm91cmRhbiA8b2ZvdXJkYW5AcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMTYgSnVuIDIw MjUgMTQ6NDk6NTUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gWG0vU3RyaW5nOiBGaXggbWVtb3J5 IGxlYWsKLQotQ29tcHV0ZU1ldHJpY3MoKSB3b3VsZCBsZWFrIHRoZSBzdHJpbmcgY3JlYXRlZCBi eSBfWG1VdGY4VG9VY3MyKCksIG1ha2UKLXN1cmUgdG8gZnJlZSB0aGUgc3RyaW5nIG9uY2UgZG9u ZSB3aXRoIGl0LgotCi1TaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJl ZGhhdC5jb20+Ci0tLS0KLSBsaWIvWG0vWG1TdHJpbmcuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvbGliL1htL1htU3RyaW5nLmMgYi9saWIv WG0vWG1TdHJpbmcuYwotaW5kZXggMmM1NGVmNTcuLjZlZTFjNDBlIDEwMDY0NAotLS0tIGEvbGli L1htL1htU3RyaW5nLmMKLSsrKyBiL2xpYi9YbS9YbVN0cmluZy5jCi1AQCAtNjI3Miw2ICs2Mjcy LDcgQEAgQ29tcHV0ZU1ldHJpY3MoWG1SZW5kaXRpb24gcmVuZCwKLSAKLSAJCSAgWFRleHRFeHRl bnRzMTYoZm9udF9zdHJ1Y3QsIHN0ciwgc3RyX2xlbiwKLSAJCQkgICAgICZkaXIsICZhc2MsICZk ZXNjLCAmY2hhcl9yZXQpOwotKyAgICAgICAgICAgICAgICAgIFhGcmVlKHN0cik7Ci0gCQl9IGVs c2UKLSAJICAgICAgWFRleHRFeHRlbnRzMTYoZm9udF9zdHJ1Y3QsIAotIAkJCSAgICAgKFhDaGFy MmIgKil0ZXh0LCBIYWxmKGJ5dGVfY291bnQpLAotLS0gCi0yLjUwLjAKLQoKZGlmZiAtLWdpdCBh LzAwMDEtYnVpbGQtQ2hlY2stZm9yLVhpbmVyYW1hLWF2YWlsYWJpbGl0eS5wYXRjaCBiLzAwMDEt YnVpbGQtQ2hlY2stZm9yLVhpbmVyYW1hLWF2YWlsYWJpbGl0eS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNzI0YzZjMy4uMDAwMDAwMAotLS0gYS8wMDAxLWJ1aWxkLUNoZWNr LWZvci1YaW5lcmFtYS1hdmFpbGFiaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MSAr MCwwIEBACi1Gcm9tIDNhMTY0NTY0Y2Y4MjQxZWU0NTQ0ZmYwMTI2NTllOGViNTEwYjE5NWIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPbGl2aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJl ZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDE5IE5vdiAyMDI0IDE4OjQwOjMzICswMTAwCi1TdWJqZWN0 OiBbUEFUQ0ggMS83XSBidWlsZDogQ2hlY2sgZm9yIFhpbmVyYW1hIGF2YWlsYWJpbGl0eQotCi1T aWduZWQtb2ZmLWJ5OiBPbGl2aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJlZGhhdC5jb20+Ci0tLS0K LSBjb25maWd1cmUuYWMgICAgICAgfCAyMiArKysrKysrKysrKysrKysrKysrKysrCi0gbGliL1ht L01ha2VmaWxlLmFtIHwgIDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5h YwotaW5kZXggZDU3ZjcxZTYuLmYwYjI2MTdkIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0r KysgYi9jb25maWd1cmUuYWMKLUBAIC0yODAsNyArMjgwLDI5IEBAIEFDX1NVQlNUKExJQl9YUCkK LSBBQ19GSU5EX1hGVAotIEFDX0lNQUdFX1NVUFBPUlQKLSAKLStBQ19BUkdfRU5BQkxFKHhpbmVy YW1hLFsgIC0tZW5hYmxlLXhpbmVyYW1hICAgICAgIEVuYWJsZSBYaW5lcmFtYSAoZGVmYXVsdD15 ZXMpXSkKLStpZiB0ZXN0ICJ4JGVuYWJsZV94aW5lcmFtYSIgPSAieCIKLSt0aGVuCi0rICAgIGVu YWJsZV94aW5lcmFtYT0ieWVzIgotK2ZpCi0rCi0raWYgdGVzdCAieCRlbmFibGVfeGluZXJhbWEi ID0gInh5ZXMiCi0rdGhlbgotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbGliWGluZXJhbWFdKQot KyAgQUNfQ0hFQ0tfSEVBREVSUyhYMTEvZXh0ZW5zaW9ucy9YaW5lcmFtYS5oLAotKyAgICBBQ19D SEVDS19MSUIoWGluZXJhbWEsIFhpbmVyYW1hUXVlcnlFeHRlbnNpb24sICxlbmFibGVfeGluZXJh bWE9Im5vIiksCi0rICBlbmFibGVfeGluZXJhbWE9Im5vIikKLStmaQotKwotK2lmIHRlc3QgIngk ZW5hYmxlX3hpbmVyYW1hIiA9ICJ4eWVzIgotK3RoZW4KLSsgIExJQl9YSU5FUkFNQT0tbFhpbmVy YW1hCi0rZWxzZQotKyAgTElCX1hJTkVSQU1BPQotK2ZpCi0gCi0rQU1fQ09ORElUSU9OQUwoWElO RVJBTUEsIHRlc3QgIiRlbmFibGVfeGluZXJhbWEiID0gInllcyIpCi0rQUNfU1VCU1QoTElCX1hJ TkVSQU1BKQotIAotICMgQU1fQ09ORElUSU9OQUwoTW90aWYyMkNvbXBhdGliaWxpdHksIHRlc3Qg eCRlbmFibGVfbW90aWYyMl9jb21wYXRpYmlsaXR5ID0geHllcykKLSAKLWRpZmYgLS1naXQgYS9s aWIvWG0vTWFrZWZpbGUuYW0gYi9saWIvWG0vTWFrZWZpbGUuYW0KLWluZGV4IGE5NWZhMmRiLi4w N2I3MzNmNSAxMDA2NDQKLS0tLSBhL2xpYi9YbS9NYWtlZmlsZS5hbQotKysrIGIvbGliL1htL01h a2VmaWxlLmFtCi1AQCAtNzEsNyArNzEsNyBAQCBlbHNlCi0gUFJJTlRTX1NSQyA9Ci0gZW5kaWYK LSAKLS1saWJYbV9sYV9MSUJBREQgPSAke1hfTElCU30gJHtYX1hNVX0gLWxYdCAtbFhleHQgJHtM SUJfWFB9IC1sWDExICR7WF9FWFRSQV9MSUJTfQotK2xpYlhtX2xhX0xJQkFERCA9ICR7WF9MSUJT fSAke1hfWE1VfSAtbFh0IC1sWGV4dCAke0xJQl9YUH0gJHtMSUJfWElORVJBTUF9IC1sWDExICR7 WF9FWFRSQV9MSUJTfQotIAotIG5vaW5zdF9IRUFERVJTID0gQmFzZUNsYXNzSS5oIFwKLSBCaXRt YXBzSS5oIFwKLS0tIAotMi40OS4wCi0KCmRpZmYgLS1naXQgYS8wMDAyLVhtLURpc3BsYXktQWRk LW9wdGlvbmFsLVhpbmVyYW1hLXN1cHBvcnQucGF0Y2ggYi8wMDAyLVhtLURpc3BsYXktQWRkLW9w dGlvbmFsLVhpbmVyYW1hLXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDNiY2UzYmYuLjAwMDAwMDAKLS0tIGEvMDAwMi1YbS1EaXNwbGF5LUFkZC1vcHRpb25hbC1Y aW5lcmFtYS1zdXBwb3J0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDE5ICswLDAgQEAKLUZy b20gZjhhYTk5MDFmM2NmYTVmYjQ5YjgwOWZkYjIyMzc5ODYyM2JlZGU2MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IE9saXZpZXIgRm91cmRhbiA8b2ZvdXJkYW5AcmVkaGF0LmNvbT4K LURhdGU6IFdlZCwgMjAgTm92IDIwMjQgMTA6MjY6MjggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAy LzddIFhtL0Rpc3BsYXk6IEFkZCBvcHRpb25hbCBYaW5lcmFtYSBzdXBwb3J0Ci0KLVhpbmVyYW1h IHN1cHBvcnQgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgdW5sZXNzIHRoZSBYcmVzb3VyY2UKLSJl bmFibGVYaW5lcmFtYSIgaXMgc2V0IGluIHRoZSBYIHJlc291cmNlcyBkYXRhYmFzZSwgZS5nLjoK LQotICAqZW5hYmxlWGluZXJhbWE6IFRydWUKLQotVGhpcyBhbHNvIHByb3ZpZGVzIGFuIGFkZGl0 aW9uYWwgcHJpdmF0ZSBTY3JlZW4gQVBJIHRvIGdldCB0aGUgbW9uaXRvcgotYm91bmRhcmllcyBn aXZlbiBhIHBvaW50IG9uIHNjcmVlbi4gVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGluIHRoZQot Zm9sbG93aW5nIGNvbW1pdHMgdG8gaW1wbGVtZW50IFhpbmVyYW1hIGF3YXJlbmVzcyBpbiB0aGUg cmVsZXZhbnQKLXdpZGdldHMuCi0KLVNpZ25lZC1vZmYtYnk6IE9saXZpZXIgRm91cmRhbiA8b2Zv dXJkYW5AcmVkaGF0LmNvbT4KLS0tLQotIGRvYy9tYW4vbWFuMy9YbURpc3BsYXkuMyB8ICAgMiAr Ci0gbGliL1htL0Rpc3BsYXkuYyAgICAgICAgIHwgIDk1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrCi0gbGliL1htL0Rpc3BsYXlQLmggICAgICAgIHwgIDE4ICsrKysrKwotIGxpYi9YbS9T Y3JlZW4uYyAgICAgICAgICB8IDEyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKLSBsaWIvWG0vU2NyZWVuUC5oICAgICAgICAgfCAgIDggKysrCi0gbGliL1htL3htc3Ry aW5nLmxpc3QuaW4gIHwgICAyICsKLSA2IGZpbGVzIGNoYW5nZWQsIDI1MyBpbnNlcnRpb25zKCsp Ci0KLWRpZmYgLS1naXQgYS9kb2MvbWFuL21hbjMvWG1EaXNwbGF5LjMgYi9kb2MvbWFuL21hbjMv WG1EaXNwbGF5LjMKLWluZGV4IGE1N2VhMDg5Li5lYzM2MGM4MCAxMDA2NDQKLS0tLSBhL2RvYy9t YW4vbWFuMy9YbURpc3BsYXkuMwotKysrIGIvZG9jL21hbi9tYW4zL1htRGlzcGxheS4zCi1AQCAt MTU4LDYgKzE1OCw4IEBAIFhtTm5vUmVuZGl0aW9uQ2FsbGJhY2sHWG1DQ2FsbGJhY2sHWHRDYWxs YmFja0xpc3QHTlVMTAdDCi0gXwdfB18HXwdfBwotIFhtTnVzZXJEYXRhB1htQ1VzZXJEYXRhB1h0 UG9pbnRlcgdOVUxMB0NTRwotIF8HXwdfB18HXwcKLStYbU5lbmFibGVYaW5lcmFtYQdYbUNFbmFi bGVYaW5lcmFtYQdCb29sZWFuB0ZhbHNlB0MKLStfB18HXwdfB18HCi0gLlRFCi0gLklQICJcZkJY bU5kZWZhdWx0QnV0dG9uRW1waGFzaXNcZlAiIDEwCi0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gY2hh bmdlIHRoZSBsb29rIG9mIHRoZSBQdXNoQnV0dG9uIHdpZGdldCBhbmQKLWRpZmYgLS1naXQgYS9s aWIvWG0vRGlzcGxheS5jIGIvbGliL1htL0Rpc3BsYXkuYwotaW5kZXggNTVmZTRjZDMuLjNhYjA0 N2YyIDEwMDY0NAotLS0tIGEvbGliL1htL0Rpc3BsYXkuYwotKysrIGIvbGliL1htL0Rpc3BsYXku YwotQEAgLTM1LDYgKzM1LDkgQEAgc3RhdGljIGNoYXIgcmNzaWRbXSA9ICIkVE9HOiBEaXNwbGF5 LmMgL21haW4vMjMgMTk5Ny8wNi8xOCAxNzozNjo1OSBzYW1ib3JuICQiCi0gCi0gI2luY2x1ZGUg PFgxMS9JbnRyaW5zaWMuaD4KLSAjaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMvc2hhcGUuaD4KLSsj aWZkZWYgSEFWRV9MSUJYSU5FUkFNQQotKyNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YaW5lcmFt YS5oPgotKyNlbmRpZgotIAotICNpbmNsdWRlIDxYMTEvWGF0b20uaD4KLSAjaW5jbHVkZSA8WG0v QXRvbU1nci5oPgotQEAgLTI3Myw2ICsyNzYsMTMgQEAgc3RhdGljIFh0UmVzb3VyY2UgcmVzb3Vy Y2VzW10gPSB7Ci0gCVh0T2Zmc2V0T2YoV01TaGVsbFJlYywgd20ud21faGludHMuaWNvbl9waXht YXApLCAKLSAJWG1SSW1tZWRpYXRlLCBOVUxMCi0gICAgIH0sIAotKyAgICAvKiBYaW5lcmFtYSBz dXBwb3J0ICovCi0rICAgIHsKLSsJWG1OZW5hYmxlWGluZXJhbWEsIFhtQ0VuYWJsZVhpbmVyYW1h LAotKwlYbVJCb29sZWFuLCBzaXplb2YoQm9vbGVhbiksCi0rCU9mZnNldChkaXNwbGF5LmVuYWJs ZV94aW5lcmFtYSksCi0rCVhtUkltbWVkaWF0ZSwgKFh0UG9pbnRlcikgRmFsc2UKLSsgICAgfSwK LSB9OwotIAotICN1bmRlZiBPZmZzZXQKLUBAIC0zODgsNiArMzk4LDQ1IEBAIERpc3BsYXlDbGFz c0luaXRpYWxpemUoIHZvaWQgKQotIAkJWG1NYWtlQ2Fub25pY2FsU3RyaW5nKCJfTU9USUZfRFJB R19BTkRfRFJPUF9NRVNTQUdFIik7Ci0gfSAgICAKLSAKLStzdGF0aWMgdm9pZAotK0Rpc3BsYXlJ bml0aWFsaXplWGluZXJhbWEoIFhtRGlzcGxheQl4bURpc3BsYXkgKQotK3sKLSsjaWZkZWYgSEFW RV9MSUJYSU5FUkFNQQotKyAgICBEaXNwbGF5ICAgICAqZGlzcGxheSA9IFh0RGlzcGxheSh4bURp c3BsYXkpOwotKyAgICBpbnQJCWR1bW15MSwgZHVtbXkyOwotKyAgICBTdGF0dXMgICAgICBoYXZl X3hpbmVyYW1hOwotKwotKyAgICB4bURpc3BsYXktPmRpc3BsYXkubW9uaXRvcnMgPSBOVUxMOwot KyAgICB4bURpc3BsYXktPmRpc3BsYXkubl9tb25pdG9ycyA9IDA7Ci0rCi0rICAgIC8qIFhpbmVy YW1hIHN1cHBvcnQgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgdW5sZXNzIFhtTmVuYWJsZVhpbmVy YW1hIGlzIHNldCAqLwotKyAgICBpZiAoIXhtRGlzcGxheS0+ZGlzcGxheS5lbmFibGVfeGluZXJh bWEpIHsKLSsjaWZkZWYgREVCVUdfWElORVJBTUEKLSsgICAgICBwcmludGYoIlhJTkVSQU1BIHN1 cHBvcnQgbm90IGVuYWJsZWRcbiIpOwotKyNlbmRpZiAvKiBERUJVR19YSU5FUkFNQSAqLwotKyAg ICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgICBpZiAoIVhpbmVyYW1hUXVlcnlFeHRlbnNpb24o ZGlzcGxheSwgJmR1bW15MSwgJmR1bW15MikpIHsKLSsjaWZkZWYgREVCVUdfWElORVJBTUEKLSsg ICAgICBwcmludGYoIlhJTkVSQU1BIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlXG4iKTsKLSsjZW5k aWYgLyogREVCVUdfWElORVJBTUEgKi8KLSsgICAgICB4bURpc3BsYXktPmRpc3BsYXkuZW5hYmxl X3hpbmVyYW1hID0gRmFsc2U7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAgIGlmICgh WGluZXJhbWFJc0FjdGl2ZShkaXNwbGF5KSkgewotKyNpZmRlZiBERUJVR19YSU5FUkFNQQotKyAg ICAgIHByaW50ZigiWElORVJBTUEgZXh0ZW5zaW9uIG5vdCBhY3RpdmF0ZWRcbiIpOwotKyNlbmRp ZiAvKiBERUJVR19YSU5FUkFNQSAqLwotKyAgICAgIHhtRGlzcGxheS0+ZGlzcGxheS5lbmFibGVf eGluZXJhbWEgPSBGYWxzZTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgICAgX1htRGlz cGxheVVwZGF0ZVhpbmVyYW1hKHhtRGlzcGxheSk7Ci0rI2VuZGlmIC8qIEhBVkVfTElCWElORVJB TUEgKi8KLSt9Ci0rCi0gLypBUkdTVVNFRCovCi0gc3RhdGljIHZvaWQgCi0gU2V0RHJhZ1JlY2Vp dmVySW5mbygKLUBAIC01NTMsNiArNjAyLDggQEAgRGlzcGxheUluaXRpYWxpemUoCi0gCSAgWG1E UkFHX1BSRUZFUl9QUkVSRUdJU1RFUjsKLSAgICAgfQotIAotKyAgICBEaXNwbGF5SW5pdGlhbGl6 ZVhpbmVyYW1hKHhtRGlzcGxheSk7Ci0rCi0gICAgIF9YbVZpcnRLZXlzSW5pdGlhbGl6ZSAobmV3 X3dpZGdldCk7Ci0gCi0gICAgIF9YbVByb2Nlc3NMb2NrKCk7Ci1AQCAtNjcyLDYgKzcyMyw5IEBA IERpc3BsYXlEZXN0cm95KAotIAotICAgICBfWG1WaXJ0S2V5c0Rlc3Ryb3kgKHcpOwotIAotKyNp ZmRlZiBIQVZFX0xJQlhJTkVSQU1BCi0rICAgIFhGcmVlKGRkLT5kaXNwbGF5Lm1vbml0b3JzKTsK LSsjZW5kaWYgLyogSEFWRV9MSUJYSU5FUkFNQSAqLwotICAgICBYRGVsZXRlQ29udGV4dCggWHRE aXNwbGF5KCB3KSwgTm9uZSwgY29udGV4dCkgOwotIH0KLSAKLUBAIC0xMjI1LDMgKzEyNzksNDQg QEAgX1htU2V0VGhpY2tuZXNzRGVmYXVsdDAoCi0gCXZhbHVlLT5hZGRyID0gKFhQb2ludGVyKSZ0 aGlja25lc3M7Ci0gCi0gfQotKwotKwotK0Jvb2xlYW4KLStfWG1EaXNwbGF5VXNlWGluZXJhbWEo Ci0rCVhtRGlzcGxheSB4bURpc3BsYXkgKQotK3sKLSsgICAgcmV0dXJuIHhtRGlzcGxheSAmJiB4 bURpc3BsYXktPmRpc3BsYXkuZW5hYmxlX3hpbmVyYW1hOwotK30KLSsKLSsKLSt2b2lkCi0rX1ht RGlzcGxheVVwZGF0ZVhpbmVyYW1hKAotKwlYbURpc3BsYXkgeG1EaXNwbGF5ICkKLSt7Ci0rI2lm ZGVmIEhBVkVfTElCWElORVJBTUEKLSsjaWZkZWYgREVCVUdfWElORVJBTUEKLSsgICAgaW50IGk7 Ci0rI2VuZGlmIC8qIERFQlVHX1hJTkVSQU1BICovCi0rCi0rICAgIGlmICghX1htRGlzcGxheVVz ZVhpbmVyYW1hKHhtRGlzcGxheSkpCi0rICAgICAgcmV0dXJuOwotKwotKyNpZmRlZiBERUJVR19Y SU5FUkFNQQotKyAgICBwcmludGYoIlVwZGF0aW5nIFhJTkVSQU1BIGNvbmZpZ3VyYXRpb25cbiIp OwotKyNlbmRpZiAvKiBERUJVR19YSU5FUkFNQSAqLwotKwotKyAgICBpZiAoeG1EaXNwbGF5LT5k aXNwbGF5Lm1vbml0b3JzKQotKyAgICAgIFhGcmVlKHhtRGlzcGxheS0+ZGlzcGxheS5tb25pdG9y cyk7Ci0rCi0rICAgIHhtRGlzcGxheS0+ZGlzcGxheS5tb25pdG9ycyA9Ci0rICAgICAgWGluZXJh bWFRdWVyeVNjcmVlbnMgKFh0RGlzcGxheSh4bURpc3BsYXkpLCAmeG1EaXNwbGF5LT5kaXNwbGF5 Lm5fbW9uaXRvcnMpOwotKwotKyNpZmRlZiBERUJVR19YSU5FUkFNQQotKyAgICBmb3IgKGkgPSAw OyBpIDwgeG1EaXNwbGF5LT5kaXNwbGF5Lm5fbW9uaXRvcnM7ICsraSkgewotKyAgICAgIHByaW50 ZigiWElORVJBTUEgTW9uaXRvciAlaTogKCVpLCVpKSBbJWl4JWldXG4iLCBpLAotKyAgICAgICAg ICAgICAgeG1EaXNwbGF5LT5kaXNwbGF5Lm1vbml0b3JzW2ldLnhfb3JnLCB4bURpc3BsYXktPmRp c3BsYXkubW9uaXRvcnNbaV0ueV9vcmcsCi0rICAgICAgICAgICAgICB4bURpc3BsYXktPmRpc3Bs YXkubW9uaXRvcnNbaV0ud2lkdGgsIHhtRGlzcGxheS0+ZGlzcGxheS5tb25pdG9yc1tpXS5oZWln aHQpOwotKyAgICB9Ci0rI2VuZGlmIC8qIERFQlVHX1hJTkVSQU1BICovCi0rI2VuZGlmIC8qIEhB VkVfTElCWElORVJBTUEgKi8KLSt9Ci1kaWZmIC0tZ2l0IGEvbGliL1htL0Rpc3BsYXlQLmggYi9s aWIvWG0vRGlzcGxheVAuaAotaW5kZXggNjU1YzI5YjYuLmEyNDIwZjk2IDEwMDY0NAotLS0tIGEv bGliL1htL0Rpc3BsYXlQLmgKLSsrKyBiL2xpYi9YbS9EaXNwbGF5UC5oCi1AQCAtMjMsNiArMjMs MTQgQEAKLSAjaWZuZGVmIF9YbURpc3BsYXlQX2gKLSAjZGVmaW5lIF9YbURpc3BsYXlQX2gKLSAK LSsjaWZkZWYgSEFWRV9DT05GSUdfSAotKyNpbmNsdWRlIDxjb25maWcuaD4KLSsjZW5kaWYKLSsK LSsjaWZkZWYgSEFWRV9MSUJYSU5FUkFNQQotKyNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YaW5l cmFtYS5oPgotKyNlbmRpZgotKwotICNpbmNsdWRlIDxYbS9EZXNrdG9wUC5oPgotICNpbmNsdWRl IDxYbS9WZW5kb3JTRVAuaD4KLSAjaW5jbHVkZSA8WG0vRHJvcFNNZ3IuaD4KLUBAIC0xMTUsNiAr MTIzLDExIEBAIHR5cGVkZWYgc3RydWN0IHsKLSAgICAgQm9vbGVhbgkJCWVuYWJsZV91bnNlbGVj dGFibGVfZHJhZzsKLSAgICAgQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgIGVuYWJsZV90aGlu X3RoaWNrbmVzczsKLSAgICAgQm9vbGVhbgkJCWVuYWJsZV9tdWx0aV9rZXlfYmluZGluZ3M7Ci0r ICAgIEJvb2xlYW4JCQllbmFibGVfeGluZXJhbWE7Ci0rI2lmZGVmIEhBVkVfTElCWElORVJBTUEK LSsgICAgWGluZXJhbWFTY3JlZW5JbmZvICAgICAgICAgICptb25pdG9yczsKLSsgICAgaW50ICAg ICAgICAgICAgICAgICAgICAgICAgIG5fbW9uaXRvcnM7Ci0rI2VuZGlmCi0gfSBYbURpc3BsYXlQ YXJ0LCAqWG1EaXNwbGF5UGFydFB0cjsKLSAKLSB0eXBlZGVmIHN0cnVjdCBfWG1EaXNwbGF5SW5m byB7Ci1AQCAtMTQzLDYgKzE1NiwxMSBAQCBleHRlcm5hbHJlZiBYbURpc3BsYXlDbGFzc1JlYyAJ eG1EaXNwbGF5Q2xhc3NSZWM7Ci0gCi0gZXh0ZXJuYWxyZWYgU3RyaW5nIF9YbV9NT1RJRl9EUkFH X0FORF9EUk9QX01FU1NBR0UgOwotIAotK2V4dGVybiBCb29sZWFuIF9YbURpc3BsYXlVc2VYaW5l cmFtYSgKLSsJWG1EaXNwbGF5IHhtRGlzcGxheSApIDsKLSsKLStleHRlcm4gdm9pZCBfWG1EaXNw bGF5VXBkYXRlWGluZXJhbWEoCi0rCVhtRGlzcGxheSB4bURpc3BsYXkgKSA7Ci0gCi0gI2lmZGVm IF9fY3BsdXNwbHVzCi0gfSAgLyogQ2xvc2Ugc2NvcGUgb2YgJ2V4dGVybiAiQyInIGRlY2xhcmF0 aW9uIHdoaWNoIGVuY2xvc2VzIGZpbGUuICovCi1kaWZmIC0tZ2l0IGEvbGliL1htL1NjcmVlbi5j IGIvbGliL1htL1NjcmVlbi5jCi1pbmRleCAxMGJhOGQyYi4uNDRhYmNmYjMgMTAwNjQ0Ci0tLS0g YS9saWIvWG0vU2NyZWVuLmMKLSsrKyBiL2xpYi9YbS9TY3JlZW4uYwotQEAgLTM5Niw3ICszOTYs NjcgQEAgR2V0VW5pdEZyb21Gb250KAotICAgICB9Ci0gCi0gfQotKyNpZmRlZiBIQVZFX0xJQlhJ TkVSQU1BCi0rLyogQVJHU1VTRUQgKi8KLStzdGF0aWMgdm9pZAotK1N0cnVjdHVyZU5vdGlmeUhh bmRsZXIoCi0rICAgICAgICBXaWRnZXQgd2lkLAotKyAgICAgICAgWHRQb2ludGVyIGRhdGEsCi0r ICAgICAgICBYRXZlbnQgKmV2ZW50LAotKyAgICAgICAgQm9vbGVhbiAqY29udCApCi0rewotKyAg ICBEaXNwbGF5ICAgICAgICAgICAqZGlzcGxheSA9IFh0RGlzcGxheSh3aWQpOwotKwotKyNpZmRl ZiBERUJVR19YSU5FUkFNQQotKyAgICBwcmludGYoIlJvb3QgZXZlbnQgcmVjZWl2ZWRcbiIpOwot KyNlbmRpZiAvKiBERUJVR19YSU5FUkFNQSAqLwotIAotKyAgICBpZiAoZXZlbnQtPnR5cGUgPT0g Q29uZmlndXJlTm90aWZ5KQotKyAgICAgICAgX1htRGlzcGxheVVwZGF0ZVhpbmVyYW1hKChYbURp c3BsYXkpIFhtR2V0WG1EaXNwbGF5KGRpc3BsYXkpKSA7Ci0rfQotKwotKy8qIEFSR1NVU0VEICov Ci0rc3RhdGljIHZvaWQKLStJbnN0YWxsU3RydWN0dXJlTm90aWZ5SGFuZGxlcigKLSsgICAgICAg IFhtU2NyZWVuICAgICB4bVNjcmVlbikKLSt7Ci0rICAgIERpc3BsYXkgICAgICAgICAgICpkaXNw bGF5ID0gWHREaXNwbGF5KHhtU2NyZWVuKTsKLSsgICAgV2luZG93ICAgICAgICAgICAgcm9vdHdp bmRvdzsKLSsgICAgWFdpbmRvd0F0dHJpYnV0ZXMgcm9vdGF0dHJpYnV0ZXM7Ci0rCi0rICAgIGlm ICghX1htRGlzcGxheVVzZVhpbmVyYW1hKChYbURpc3BsYXkpIFhtR2V0WG1EaXNwbGF5KGRpc3Bs YXkpKSkKLSsgICAgICAgIHJldHVybjsKLSsKLSsgICAgcm9vdHdpbmRvdyA9IFJvb3RXaW5kb3dP ZlNjcmVlbihYdFNjcmVlbih4bVNjcmVlbikpOwotKyAgICBYR2V0V2luZG93QXR0cmlidXRlcyhk aXNwbGF5LCByb290d2luZG93LCAmcm9vdGF0dHJpYnV0ZXMpOwotKyAgICBYU2VsZWN0SW5wdXQo ZGlzcGxheSwKLSsJCSByb290d2luZG93LAotKwkJIFN0cnVjdHVyZU5vdGlmeU1hc2sgfCByb290 YXR0cmlidXRlcy55b3VyX2V2ZW50X21hc2spOwotKyAgICBYdFJlZ2lzdGVyRHJhd2FibGUoZGlz cGxheSwgcm9vdHdpbmRvdywgKFdpZGdldCl4bVNjcmVlbik7Ci0rICAgIFh0QWRkRXZlbnRIYW5k bGVyKChXaWRnZXQpeG1TY3JlZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgIChFdmVudE1h c2spIFN0cnVjdHVyZU5vdGlmeU1hc2ssIFRydWUsCi0rCQkJIFN0cnVjdHVyZU5vdGlmeUhhbmRs ZXIsIChYdFBvaW50ZXIpIE5VTEwpOwotK30KLSsKLSsvKiBBUkdTVVNFRCAqLwotK3N0YXRpYyB2 b2lkCi0rVW5pbnN0YWxsU3RydWN0dXJlTm90aWZ5SGFuZGxlcigKLSsgICAgICAgIFhtU2NyZWVu ICAgICB4bVNjcmVlbikKLSt7Ci0rICAgIERpc3BsYXkgICAgICAgICAgICpkaXNwbGF5ID0gWHRE aXNwbGF5KHhtU2NyZWVuKTsKLSsgICAgV2luZG93ICAgICAgICAgICAgcm9vdHdpbmRvdzsKLSsg ICAgWFdpbmRvd0F0dHJpYnV0ZXMgcm9vdGF0dHJpYnV0ZXM7Ci0rCi0rICAgIGlmICghX1htRGlz cGxheVVzZVhpbmVyYW1hKChYbURpc3BsYXkpIFhtR2V0WG1EaXNwbGF5KGRpc3BsYXkpKSkKLSsg ICAgICAgIHJldHVybjsKLSsKLSsgICAgcm9vdHdpbmRvdyA9IFJvb3RXaW5kb3dPZlNjcmVlbihY dFNjcmVlbih4bVNjcmVlbikpOwotKyAgICBYdFVucmVnaXN0ZXJEcmF3YWJsZShkaXNwbGF5LCBy b290d2luZG93KTsKLSsgICAgWHRSZW1vdmVFdmVudEhhbmRsZXIoKFdpZGdldCl4bVNjcmVlbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgKEV2ZW50TWFzaykgU3RydWN0dXJlTm90aWZ5TWFz aywgVHJ1ZSwKLSsJCQkgU3RydWN0dXJlTm90aWZ5SGFuZGxlciwgKFh0UG9pbnRlcikgTlVMTCk7 Ci0rfQotKyNlbmRpZiAvKiBIQVZFX0xJQlhJTkVSQU1BICovCi0gCi0gLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgotICAqCi1AQCAtNDEzLDYgKzQ3Myw4IEBAIEluaXRpYWxpemUoCi0gewotICAgICBYbVNjcmVl biAgICAgeG1TY3JlZW4gPSAoWG1TY3JlZW4pbmV3X3dpZGdldDsKLSAgICAgRGlzcGxheSAgICAg ICpkaXNwbGF5ID0gWHREaXNwbGF5KG5ld193aWRnZXQpOwotKyAgICBXaW5kb3cgICAgICAgcm9v dHdpbmRvdzsKLSsgICAgWFdpbmRvd0F0dHJpYnV0ZXMgcm9vdGF0dHJpYnV0ZXM7Ci0gCi0gICAg IHhtU2NyZWVuLT5zY3JlZW4uc2NyZWVuSW5mbyA9IE5VTEw7Ci0gCi1AQCAtNDc0LDYgKzUzNiw5 IEBAIEluaXRpYWxpemUoCi0gICAgIH0KLSAjZW5kaWYKLSAKLSsjaWZkZWYgSEFWRV9MSUJYSU5F UkFNQQotKyAgICBJbnN0YWxsU3RydWN0dXJlTm90aWZ5SGFuZGxlcih4bVNjcmVlbik7Ci0rI2Vu ZGlmIC8qIEhBVkVfTElCWElORVJBTUEgKi8KLSB9Ci0gCi0gLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotQEAg LTY3Miw2ICs3MzcsMTAgQEAgRGVzdHJveSgKLSAKLSAgICAgLyogbmVlZCB0byByZW1vdmUgcGl4 bWFwIGFuZCBHQyByZWxhdGVkIHRvIHRoaXMgc2NyZWVuICovCi0gICAgIF9YbUNsZWFuUGl4bWFw Q2FjaGUgKFh0U2NyZWVuKHdpZGdldCksIE5VTEwpOwotKwotKyNpZmRlZiBIQVZFX0xJQlhJTkVS QU1BCi0rICAgIFVuaW5zdGFsbFN0cnVjdHVyZU5vdGlmeUhhbmRsZXIoeG1TY3JlZW4pOwotKyNl bmRpZiAvKiBIQVZFX0xJQlhJTkVSQU1BICovCi0gfQotIAotIHN0YXRpYyB2b2lkIAotQEAgLTE0 NDcsMyArMTUxNiw2MiBAQCBYbUdldFhtU2NyZWVuKAotIAlfWG1BcHBVbmxvY2soYXBwKTsKLSAJ cmV0dXJuIHdpZGdldDsKLSB9Ci0rCi0rdm9pZAotK19YbVNjcmVlbkdldEJvdW5kYXJpZXNBdHBv aW50KAotKyAgICAgICAgU2NyZWVuICpzY3JlZW4sCi0rCVBvc2l0aW9uIHB0X3gsCi0rCVBvc2l0 aW9uIHB0X3ksCi0rCVBvc2l0aW9uICpyZXRfeCwKLSsJUG9zaXRpb24gKnJldF95LAotKwlQb3Np dGlvbiAqcmV0X21heF94LAotKwlQb3NpdGlvbiAqcmV0X21heF95ICkKLSt7Ci0rICAgIFhtRGlz cGxheQl4bURpc3BsYXk7Ci0rICAgIFBvc2l0aW9uIHNjcmVlbl94LCBzY3JlZW5feTsKLSsgICAg UG9zaXRpb24gc2NyZWVuX21heF94LCBzY3JlZW5fbWF4X3k7Ci0rI2lmZGVmIEhBVkVfTElCWElO RVJBTUEKLSsgICAgUG9zaXRpb24gdG1wX3gsIHRtcF95OwotKyAgICBQb3NpdGlvbiB0bXBfbWF4 X3gsIHRtcF9tYXhfeTsKLSsgICAgaW50IGk7Ci0rI2VuZGlmIC8qIEhBVkVfTElCWElORVJBTUEg Ki8KLSsKLSsgICAgeG1EaXNwbGF5ID0gKFhtRGlzcGxheSkgWG1HZXRYbURpc3BsYXkoRGlzcGxh eU9mU2NyZWVuKHNjcmVlbikpOwotKyAgICBzY3JlZW5feCA9IDA7Ci0rICAgIHNjcmVlbl95ID0g MDsKLSsgICAgc2NyZWVuX21heF94ID0gV2lkdGhPZlNjcmVlbihzY3JlZW4pOwotKyAgICBzY3Jl ZW5fbWF4X3kgPSBIZWlnaHRPZlNjcmVlbihzY3JlZW4pOwotKwotKyAgICBpZiAoIV9YbURpc3Bs YXlVc2VYaW5lcmFtYSh4bURpc3BsYXkpKQotKyAgICAgIGdvdG8gb3V0OwotKwotKyNpZmRlZiBI QVZFX0xJQlhJTkVSQU1BCi0rICAgIGZvciAoaSA9IDA7IGkgPCB4bURpc3BsYXktPmRpc3BsYXku bl9tb25pdG9yczsgKytpKSB7Ci0rICAgICAgdG1wX3ggPSB4bURpc3BsYXktPmRpc3BsYXkubW9u aXRvcnNbaV0ueF9vcmc7Ci0rICAgICAgdG1wX3kgPSB4bURpc3BsYXktPmRpc3BsYXkubW9uaXRv cnNbaV0ueV9vcmc7Ci0rICAgICAgdG1wX21heF94ID0gdG1wX3ggKyB4bURpc3BsYXktPmRpc3Bs YXkubW9uaXRvcnNbaV0ud2lkdGg7Ci0rICAgICAgdG1wX21heF95ID0gdG1wX3kgKyB4bURpc3Bs YXktPmRpc3BsYXkubW9uaXRvcnNbaV0uaGVpZ2h0OwotKwotKyAgICAgIGlmIChwdF94ID49IHRt cF94ICYmIHB0X3ggPCB0bXBfbWF4X3ggJiYgcHRfeSA+PSB0bXBfeSAmJiBwdF95IDwgdG1wX21h eF95KSB7Ci0rCXNjcmVlbl94ID0gdG1wX3g7Ci0rCXNjcmVlbl95ID0gdG1wX3k7Ci0rCXNjcmVl bl9tYXhfeCA9IHRtcF9tYXhfeDsKLSsJc2NyZWVuX21heF95ID0gdG1wX21heF95OwotKyAgICAg ICAgYnJlYWs7IC8qIFdlIGhhdmUgYSBtYXRjaCAqLwotKyAgICAgIH0KLSsgICAgfQotKyNlbmRp ZiAvKiBIQVZFX0xJQlhJTkVSQU1BICovCi0rb3V0OgotKyNpZmRlZiBERUJVR19YSU5FUkFNQQot KyAgICBwcmludGYoIlBvaW50ICglaSwlaSkgY29uc3RyYWluZWQgd2l0aGluICglaSwlaSkgYW5k ICglaSwlaSlcbiIsCi0rICAgICAgICAgICBwdF94LCBwdF95LCBzY3JlZW5feCwgc2NyZWVuX3ks IHNjcmVlbl9tYXhfeCwgc2NyZWVuX21heF95KTsKLSsjZW5kaWYgLyogREVCVUdfWElORVJBTUEg Ki8KLSsgICAgaWYgKHJldF94KQotKyAgICAgICpyZXRfeCA9IHNjcmVlbl94OwotKyAgICBpZiAo cmV0X3kpCi0rICAgICAgKnJldF95ID0gc2NyZWVuX3k7Ci0rICAgIGlmIChyZXRfbWF4X3gpCi0r ICAgICAgKnJldF9tYXhfeCA9IHNjcmVlbl9tYXhfeDsKLSsgICAgaWYgKHJldF9tYXhfeSkKLSsg ICAgICAqcmV0X21heF95ID0gc2NyZWVuX21heF95OwotK30KLWRpZmYgLS1naXQgYS9saWIvWG0v U2NyZWVuUC5oIGIvbGliL1htL1NjcmVlblAuaAotaW5kZXggYzg3MGMxOWUuLmI0Yjk1YTZmIDEw MDY0NAotLS0tIGEvbGliL1htL1NjcmVlblAuaAotKysrIGIvbGliL1htL1NjcmVlblAuaAotQEAg LTEzNCw2ICsxMzQsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX1htU2NyZWVuUmVjIHsKLSAgICAgWG1T Y3JlZW5QYXJ0CQlzY3JlZW47Ci0gfSBYbVNjcmVlblJlYzsKLSAKLStleHRlcm4gdm9pZCBfWG1T Y3JlZW5HZXRCb3VuZGFyaWVzQXRwb2ludCgKLSsgICAgICAgIFNjcmVlbiAqc2NyZWVuLAotKwlQ b3NpdGlvbiBwdF94LAotKwlQb3NpdGlvbiBwdF95LAotKwlQb3NpdGlvbiAqcmV0X3gsCi0rCVBv c2l0aW9uICpyZXRfeSwKLSsJUG9zaXRpb24gKnJldF9tYXhfeCwKLSsJUG9zaXRpb24gKnJldF9t YXhfeSApIDsKLSAKLSAjaWZkZWYgX19jcGx1c3BsdXMKLSB9ICAvKiBDbG9zZSBzY29wZSBvZiAn ZXh0ZXJuICJDIicgZGVjbGFyYXRpb24gd2hpY2ggZW5jbG9zZXMgZmlsZS4gKi8KLWRpZmYgLS1n aXQgYS9saWIvWG0veG1zdHJpbmcubGlzdC5pbiBiL2xpYi9YbS94bXN0cmluZy5saXN0LmluCi1p bmRleCA4YzBjNGY5YS4uNTg4N2U3YWQgMTAwNjQ0Ci0tLS0gYS9saWIvWG0veG1zdHJpbmcubGlz dC5pbgotKysrIGIvbGliL1htL3htc3RyaW5nLmxpc3QuaW4KLUBAIC0xNjkyLDYgKzE2OTIsOCBA QCBDRm9udEVuY29kaW5nCi0gTnhmdEZvbnQKLSBDWGZ0Rm9udAotIFNVVEY4X1NUUklORwotK05l bmFibGVYaW5lcmFtYQotK0NFbmFibGVYaW5lcmFtYQotIAotICNmaWxlIFhtU3RyRGVmc0kuaAot ICN0YWJsZSBfWG1TdHJpbmdzSQotLS0gCi0yLjQ5LjAKLQoKZGlmZiAtLWdpdCBhLzAwMDItWG0t U2NyZWVuLUFkZC1fR1RLX1dPUktBUkVBUy1zdXBwb3J0LWZvci1tdWx0aS1tb25pdC5wYXRjaCBi LzAwMDItWG0tU2NyZWVuLUFkZC1fR1RLX1dPUktBUkVBUy1zdXBwb3J0LWZvci1tdWx0aS1tb25p dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcyNjY4MS4uMDAwMDAwMAot LS0gYS8wMDAyLVhtLVNjcmVlbi1BZGQtX0dUS19XT1JLQVJFQVMtc3VwcG9ydC1mb3ItbXVsdGkt bW9uaXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotRnJvbSAyZjE4Y2Ni ZmZlZTIzNzg0NWMwYjNjMmQ3NDVkMjBhYzY2NzQ4ZjhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogT2xpdmllciBGb3VyZGFuIDxvZm91cmRhbkByZWRoYXQuY29tPgotRGF0ZTogRnJp LCAyNyBKdW4gMjAyNSAxMjoxMTo0MSArMDIwMAotU3ViamVjdDogW1BBVENIIDIvMl0gWG0vU2Ny ZWVuOiBBZGQgX0dUS19XT1JLQVJFQVMgc3VwcG9ydCBmb3IgbXVsdGktbW9uaXRvcgotCi1BZGQg c3VwcG9ydCBmb3IgdGhlIEdUSyBwcm9wZXJ0eSBfR1RLX1dPUktBUkVBUyB0byBwcmV2ZW50IE1v dGlmIGZyb20KLXBsYWNpbmcgaXRzIHdpZGdldHMgb3V0c2lkZSBvZiB0aGUgZ2VvbWV0cnkgYWR2 ZXJ0aXNlZCBieSB0aGUgd2luZG93Ci1tYW5hZ2VyIG9uIGEgbXVsdGktbW9uaXRvciBzZXR1cC4K LQotVW5saWtlIHRoZSBleHRlbmRlZCB3aW5kb3cgbWFuYWdlciBoaW50IF9ORVRfV09SS0FSRUEg d2hpY2ggZGVmaW5lcyBhCi1zaW5nbGUgcmVjdGFuZ2xlIGZvciB0aGUgd2hvbGUgc2NyZWVuIHNw YW5uaW5nIGFjcm9zcyBhbGwgdGhlIG1vbml0b3JzLAotX0dUS19XT1JLQVJFQVMgcHJvdmlkZXMg YW4gYXJlYSBwZXIgbW9uaXRvciwgbWFraW5nIHRoYXQgcHJvcGVydHkgbW9yZQotYWRlcXVhdGUg b24gYSBtdWx0aS1tb25pdG9yIHNldHVwLgotCi1Ib3dldmVyLCBpZiBfR1RLX1dPUktBUkVBUyBp cyBub3Qgc3VwcG9ydGVkLCB3ZSBmYWxsYmFjayB0byB0aGUgc3RhbmRhcmQKLV9ORVRfV09SS0FS RUEgcHJvcGVydHkuCi0KLVN1cHBvcnQgZm9yIF9HVEtfV09SS0FSRUFTIGRlcGVuZHMgb24gdGhl IFhpbmVyYW1hIHBhdGNoZXMgYXMgaXQgc2hhcmVzCi10aGUgc2FtZSBsb2dpYy4KLQotU2lnbmVk LW9mZi1ieTogT2xpdmllciBGb3VyZGFuIDxvZm91cmRhbkByZWRoYXQuY29tPgotLS0tCi0gbGli L1htL1NjcmVlbi5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCi0KLWRpZmYgLS1naXQgYS9saWIvWG0vU2NyZWVuLmMgYi9saWIvWG0vU2NyZWVuLmMKLWlu ZGV4IDYyNjlmZmIzLi5kOGQyNGU5YSAxMDA2NDQKLS0tLSBhL2xpYi9YbS9TY3JlZW4uYwotKysr IGIvbGliL1htL1NjcmVlbi5jCi1AQCAtMTU1NCw2ICsxNTU0LDkxIEBAIF9YbVNjcmVlbkdldEN1 cnJlbnREZXNrdG9wKFNjcmVlbiAqc2NyZWVuKQotICAgcmV0dXJuIGRlc2t0b3A7Ci0gfQotIAot K3N0YXRpYyBCb29sZWFuCi0rX1htQ2hlY2tHdGtXb3JrYXJlYXMoCi0rICAgICAgICBTY3JlZW4g KnNjcmVlbiwKLSsJUG9zaXRpb24gcHRfeCwKLSsJUG9zaXRpb24gcHRfeSwKLSsJUG9zaXRpb24g KnJldF94LAotKwlQb3NpdGlvbiAqcmV0X3ksCi0rCVBvc2l0aW9uICpyZXRfbWF4X3gsCi0rCVBv c2l0aW9uICpyZXRfbWF4X3kgKQotK3sKLSsgICAgQXRvbSAgICAgICAgICBYbUFfR1RLX1dPUktB UkVBUzsKLSsgICAgQXRvbSAgICAgICAgICB0eXBlOwotKyAgICBEaXNwbGF5ICAgICAgICpkcHk7 Ci0rICAgIFdpbmRvdyAgICAgICAgcm9vdHdpbmRvdzsKLSsgICAgaW50ICAgICAgICAgICByZXN1 bHQgPSBGYWxzZTsKLSsgICAgaW50ICAgICAgICAgICBkZXNrdG9wID0gMDsKLSsgICAgaW50ICAg ICAgICAgICBmb3JtYXQ7Ci0rICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoUnRuOwotKyAgICB1bnNp Z25lZCBsb25nIGJ5dGVzQWZ0ZXI7Ci0rICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7Ci0rICAgIGxv bmcgICAgICAgICAgKmd0a193b3JrYXJlYXM7Ci0rICAgIGNoYXIgICAgICAgICAgYXRvbV9uYW1l WzMyXTsKLSsgICAgaW50ICAgICAgICAgICBtb25pdG9yLCBuX21vbml0b3JzOwotKyAgICBQb3Np dGlvbiAgICAgIHRtcF94LCB0bXBfeTsKLSsgICAgUG9zaXRpb24gICAgICB0bXBfbWF4X3gsIHRt cF9tYXhfeTsKLSsgICAgQm9vbGVhbiAgICAgICByZXQgPSBGYWxzZTsKLSsKLSsgICAgZHB5ID0g RGlzcGxheU9mU2NyZWVuKHNjcmVlbik7Ci0rICAgIHJvb3R3aW5kb3cgPSBSb290V2luZG93T2ZT Y3JlZW4oc2NyZWVuKTsKLSsgICAgZGVza3RvcCA9IF9YbVNjcmVlbkdldEN1cnJlbnREZXNrdG9w KHNjcmVlbik7Ci0rCi0rICAgIHNucHJpbnRmKGF0b21fbmFtZSwgc2l6ZW9mKGF0b21fbmFtZSks ICJfR1RLX1dPUktBUkVBU19EJWQiLCBkZXNrdG9wKTsKLSsgICAgWG1BX0dUS19XT1JLQVJFQVMg PSBYSW50ZXJuQXRvbShkcHksIGF0b21fbmFtZSwgRmFsc2UpOwotKwotKyAgICByZXN1bHQgPSBY R2V0V2luZG93UHJvcGVydHkoZHB5LCByb290d2luZG93LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWG1BX0dUS19XT1JLQVJFQVMsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwTCwgMTAwMDAwTCwgRmFsc2UsIFhBX0NBUkRJTkFMLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnR5cGUsICZmb3JtYXQsICZsZW5ndGhSdG4sICZieXRlc0FmdGVy LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOwotKwotKyAgICBpZiAo cmVzdWx0ICE9IFN1Y2Nlc3MgfHwgdHlwZSAhPSBYQV9DQVJESU5BTCB8fCBmb3JtYXQgIT0gMzIg fHwKLSsgICAgICBieXRlc0FmdGVyICE9IDAgfHwgbGVuZ3RoUnRuICUgNCAhPSAwKSB7Ci0rICAg ICAgZ290byBkb25lOwotKyAgICB9Ci0rCi0rICAgIGd0a193b3JrYXJlYXMgPSAobG9uZyAqKSBk YXRhOwotKyAgICBuX21vbml0b3JzID0gbGVuZ3RoUnRuIC8gNDsKLSsKLSsjZGVmaW5lIEdUS19X T1JLQVJFQV9YIChtb25pdG9yICogNCkKLSsjZGVmaW5lIEdUS19XT1JLQVJFQV9ZIChtb25pdG9y ICogNCArIDEpCi0rI2RlZmluZSBHVEtfV09SS0FSRUFfV0lEVEggKG1vbml0b3IgKiA0ICsgMikK LSsjZGVmaW5lIEdUS19XT1JLQVJFQV9IRUlHSFQgKG1vbml0b3IgKiA0ICsgMykKLSsKLSsgICAg Zm9yIChtb25pdG9yID0gMDsgbW9uaXRvciA8IG5fbW9uaXRvcnM7ICsrbW9uaXRvcikgewotKyAg ICAgIHRtcF94ID0gZ3RrX3dvcmthcmVhc1tHVEtfV09SS0FSRUFfWF07Ci0rICAgICAgdG1wX3kg PSBndGtfd29ya2FyZWFzW0dUS19XT1JLQVJFQV9ZXTsKLSsgICAgICB0bXBfbWF4X3ggPSB0bXBf eCArIGd0a193b3JrYXJlYXNbR1RLX1dPUktBUkVBX1dJRFRIXTsKLSsgICAgICB0bXBfbWF4X3kg PSB0bXBfeSArIGd0a193b3JrYXJlYXNbR1RLX1dPUktBUkVBX0hFSUdIVF07Ci0rCi0rICAgICAg aWYgKHB0X3ggPj0gdG1wX3ggJiYgcHRfeCA8IHRtcF9tYXhfeCAmJiBwdF95ID49IHRtcF95ICYm IHB0X3kgPCB0bXBfbWF4X3kpIHsKLSsgICAgICAgICpyZXRfeCA9IHRtcF94OwotKyAgICAgICAg KnJldF95ID0gdG1wX3k7Ci0rICAgICAgICAqcmV0X21heF94ID0gdG1wX21heF94OwotKyAgICAg ICAgKnJldF9tYXhfeSA9IHRtcF9tYXhfeTsKLSsgICAgICAgIHJldCA9IFRydWU7Ci0rICAgICAg ICBicmVhazsgLyogV2UgaGF2ZSBhIG1hdGNoICovCi0rICAgICAgfQotKyAgICB9Ci0rCi0rI3Vu ZGVmIEdUS19XT1JLQVJFQV9YCi0rI3VuZGVmIEdUS19XT1JLQVJFQV9ZCi0rI3VuZGVmIEdUS19X T1JLQVJFQV9XSURUSAotKyN1bmRlZiBHVEtfV09SS0FSRUFfSEVJR0hUCi0rCi0rI2lmZGVmIERF QlVHX1hJTkVSQU1BCi0rICAgIHByaW50ZigiUG9pbnQgKCVpLCVpKSBjb25zdHJhaW5lZCBieSBf R1RLX1dPUktBUkVBU19EJWQgd2l0aGluICglaSwlaSkgYW5kICglaSwlaSlcbiIsCi0rICAgICAg ICAgICBwdF94LCBwdF95LCBkZXNrdG9wLCAqcmV0X3gsICpyZXRfeSwgKnJldF9tYXhfeCwgKnJl dF9tYXhfeSk7Ci0rI2VuZGlmIC8qIERFQlVHX1hJTkVSQU1BICovCi0rCi0rZG9uZToKLSsgICAg aWYgKGRhdGEpCi0rICAgICAgICBYRnJlZShkYXRhKTsKLSsgICAgcmV0dXJuIHJldDsKLSt9Ci0r Ci0gc3RhdGljIHZvaWQKLSBfWG1DaGVja05ldFdvcmthcmVhKAotICAgICAgICAgU2NyZWVuICpz Y3JlZW4sCi1AQCAtMTYzNyw2ICsxNzIyLDcgQEAgX1htU2NyZWVuR2V0Qm91bmRhcmllc0F0cG9p bnQoCi0gICAgIFhtRGlzcGxheQl4bURpc3BsYXk7Ci0gICAgIFBvc2l0aW9uIHNjcmVlbl94LCBz Y3JlZW5feTsKLSAgICAgUG9zaXRpb24gc2NyZWVuX21heF94LCBzY3JlZW5fbWF4X3k7Ci0rICAg IEJvb2xlYW4gY2hlY2tfZ3RrX3dvcmthcmVhOwotICNpZmRlZiBIQVZFX0xJQlhJTkVSQU1BCi0g ICAgIFBvc2l0aW9uIHRtcF94LCB0bXBfeTsKLSAgICAgUG9zaXRpb24gdG1wX21heF94LCB0bXBf bWF4X3k7Ci1AQCAtMTY2OCw3ICsxNzU0LDExIEBAIF9YbVNjcmVlbkdldEJvdW5kYXJpZXNBdHBv aW50KAotICAgICAgIH0KLSAgICAgfQotICNlbmRpZiAvKiBIQVZFX0xJQlhJTkVSQU1BICovCi0t ICAgIF9YbUNoZWNrTmV0V29ya2FyZWEoc2NyZWVuLCAmc2NyZWVuX3gsICZzY3JlZW5feSwgJnNj cmVlbl9tYXhfeCwgJnNjcmVlbl9tYXhfeSk7Ci0rICAgIGNoZWNrX2d0a193b3JrYXJlYSA9IF9Y bUNoZWNrR3RrV29ya2FyZWFzKHNjcmVlbiwgcHRfeCwgcHRfeSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNjcmVlbl94LCAmc2NyZWVuX3ksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzY3JlZW5fbWF4X3gs ICZzY3JlZW5fbWF4X3kpOwotKyAgICBpZiAoIWNoZWNrX2d0a193b3JrYXJlYSkKLSsgICAgICBf WG1DaGVja05ldFdvcmthcmVhKHNjcmVlbiwgJnNjcmVlbl94LCAmc2NyZWVuX3ksICZzY3JlZW5f bWF4X3gsICZzY3JlZW5fbWF4X3kpOwotIG91dDoKLSAjaWZkZWYgREVCVUdfWElORVJBTUEKLSAg ICAgcHJpbnRmKCJQb2ludCAoJWksJWkpIGNvbnN0cmFpbmVkIHdpdGhpbiAoJWksJWkpIGFuZCAo JWksJWkpXG4iLAotLS0gCi0yLjUwLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDMtWG0tTWVudVNoZWxs LVVzZS1YaW5lcmFtYS10by1wbGFjZS1tZW51cy5wYXRjaCBiLzAwMDMtWG0tTWVudVNoZWxsLVVz ZS1YaW5lcmFtYS10by1wbGFjZS1tZW51cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggN2Y4NjcxNy4uMDAwMDAwMAotLS0gYS8wMDAzLVhtLU1lbnVTaGVsbC1Vc2UtWGluZXJh bWEtdG8tcGxhY2UtbWVudXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAot RnJvbSA1ZmJjMWRmZjBlMmUyNDhkNjFlNDNjMzYyNjA2YzNmNWU1MjU1ZjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogT2xpdmllciBGb3VyZGFuIDxvZm91cmRhbkByZWRoYXQuY29t PgotRGF0ZTogVGh1LCAyMSBOb3YgMjAyNCAxMTo1MjoyMiArMDEwMAotU3ViamVjdDogW1BBVENI IDMvN10gWG0vTWVudVNoZWxsOiBVc2UgWGluZXJhbWEgdG8gcGxhY2UgbWVudXMKLQotdjI6IElm IHdlIGhhdmUgYSBwdWxsZG93biBidXR0b24sIHVzZSB0aGUgbG9jYXRpb24gb2YgdGhhdCBidXR0 b24gdG8KLSAgICBrZWVwIHRoZSBtZW51IG9uIHRoZSBzYW1lIG1vbml0b3IgYXMgdGhhdCBidXR0 b24gc28gdGhhdCB0aGUgbWVudQotICAgIGRvZXNuJ3QgZXZlbnR1YWxseSBlbmQgdXAgb24gYW5v dGhlciBtb25pdG9yIGVudGlyZWx5LgotCi1TaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIEZvdXJkYW4g PG9mb3VyZGFuQHJlZGhhdC5jb20+Ci0tLS0KLSBsaWIvWG0vTWVudVNoZWxsLmMgfCA0NyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5n ZWQsIDMwIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGli L1htL01lbnVTaGVsbC5jIGIvbGliL1htL01lbnVTaGVsbC5jCi1pbmRleCA0ODNjYzk1YS4uYzc4 YmZiMDggMTAwNjQ0Ci0tLS0gYS9saWIvWG0vTWVudVNoZWxsLmMKLSsrKyBiL2xpYi9YbS9NZW51 U2hlbGwuYwotQEAgLTQxLDYgKzQxLDcgQEAgc3RhdGljIGNoYXIgcmNzaWRbXSA9ICIkVE9HOiBN ZW51U2hlbGwuYyAvbWFpbi8yNCAxOTk5LzA3LzA4IDE2OjQ5OjU5IHZpcGluICQiCi0gI2luY2x1 ZGUgPFhtL0xhYmVsUC5oPgotICNpbmNsdWRlIDxYbS9MYXlvdXRULmg+Ci0gI2luY2x1ZGUgPFht L01lbnVULmg+Ci0rI2luY2x1ZGUgPFhtL1NjcmVlblAuaD4KLSAjaW5jbHVkZSA8WG0vU3BlY1Jl bmRlclQuaD4KLSAjaW5jbHVkZSA8WG0vVHJhaXRQLmg+Ci0gI2luY2x1ZGUgPFhtL1RyYW5zbHRu c1AuaD4KLUBAIC05MTMsNyArOTE0LDkgQEAgRm9yY2VNZW51UGFuZU9uU2NyZWVuKAotICAgICAg ICAgcmVnaXN0ZXIgUG9zaXRpb24gKnkgKQotIHsKLSAgICBQb3NpdGlvbiByaWdodEVkZ2VPZk1l bnUsIGJvdHRvbUVkZ2VPZk1lbnU7Ci0tICAgRGltZW5zaW9uIGRpc3BXaWR0aCwgZGlzcEhlaWdo dDsKLSsgICBQb3NpdGlvbiBkaXNwWCwgZGlzcFksIGRpc3BNYXhYLCBkaXNwTWF4WTsKLSsgICBQ b3NpdGlvbiB4MSA9ICp4OwotKyAgIFBvc2l0aW9uIHkxID0gKnk7Ci0gICAgV2lkZ2V0IHB1bGxk b3duX2J1dHRvbiA9IFJDX0Nhc2NhZGVCdG4ocm93Y29sKTsKLSAgICBEaW1lbnNpb24gUm93Q29s Qm9yZGVyV2lkdGggPSByb3djb2wtPmNvcmUuYm9yZGVyX3dpZHRoIDw8IDE7Ci0gICAgRGltZW5z aW9uIENhc2NhZGVCb3JkZXJXaWR0aCA9IDA7Ci1AQCAtOTI1LDggKzkyOCwxOCBAQCBGb3JjZU1l bnVQYW5lT25TY3JlZW4oCi0gCi0gICAgcmlnaHRFZGdlT2ZNZW51ID0gKnggKyBSb3dDb2xCb3Jk ZXJXaWR0aCArIHJvd2NvbC0+Y29yZS53aWR0aDsKLSAgICBib3R0b21FZGdlT2ZNZW51ID0gKnkg KyBSb3dDb2xCb3JkZXJXaWR0aCArIHJvd2NvbC0+Y29yZS5oZWlnaHQ7Ci0tICAgZGlzcFdpZHRo ID0gV2lkdGhPZlNjcmVlbiAoWHRTY3JlZW4ocm93Y29sKSk7Ci0tICAgZGlzcEhlaWdodCA9IEhl aWdodE9mU2NyZWVuIChYdFNjcmVlbihyb3djb2wpKTsKLSsjaWZkZWYgSEFWRV9MSUJYSU5FUkFN QQotKyAgIGlmIChwdWxsZG93bl9idXR0b24pCi0rICAgewotKyAgICAgICAvKiBJZiB3ZSBoYXZl IGEgcHVsbGRvd24gYnV0dG9uLCB1c2UgdGhlIGxvY2F0aW9uIG9mIHRoYXQgYnV0dG9uIHRvCi0r ICAgICAgICAqIGtlZXAgdGhlIG1lbnUgb24gdGhlIHNhbWUgbW9uaXRvciBhcyB0aGF0IGJ1dHRv biBzbyB0aGF0IHRoZSBtZW51Ci0rICAgICAgICAqIGRvZXNuJ3QgZXZlbnR1YWxseSBlbmQgdXAg b24gYW5vdGhlciBtb25pdG9yIGVudGlyZWx5LgotKyAgICAgICAgKi8KLSsgICAgICAgWHRUcmFu c2xhdGVDb29yZHMoKFdpZGdldCkgcHVsbGRvd25fYnV0dG9uLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgWHRYKHB1bGxkb3duX2J1dHRvbiksIFh0WShwdWxsZG93bl9idXR0b24pLCAmeDEs ICZ5MSk7Ci0rICAgfQotKyNlbmRpZgotKyAgIF9YbVNjcmVlbkdldEJvdW5kYXJpZXNBdHBvaW50 KFh0U2NyZWVuKHJvd2NvbCksIHgxLCB5MSwgJmRpc3BYLCAmZGlzcFksICZkaXNwTWF4WCwgJmRp c3BNYXhZKTsKLSAKLSAgICAvKgotICAgICAqIEZvciBPUFRJT04gbWVudXMsIGlmIHRoZSBzdWJt ZW51IGlzIFtwYXJ0aWFsbHldIG9mZnNjcmVlbiwgb2Zmc2V0IGl0Ci1AQCAtOTM3LDkgKzk1MCw5 IEBAIEZvcmNlTWVudVBhbmVPblNjcmVlbigKLSAgICAgICAgKFJDX1R5cGUoWHRQYXJlbnQocHVs bGRvd25fYnV0dG9uKSkgPT0gWG1NRU5VX09QVElPTikpCi0gICAgewotICAgICAgIFBvc2l0aW9u IG9sZF94ID0gKng7Ci0tICAgICAgaWYgKGJvdHRvbUVkZ2VPZk1lbnUgPj0gKFBvc2l0aW9uKWRp c3BIZWlnaHQpCi0rICAgICAgaWYgKGJvdHRvbUVkZ2VPZk1lbnUgPj0gZGlzcE1heFkpCi0gICAg ICAgewotLSAgICAgICAgICAqeSA9IGRpc3BIZWlnaHQgLSByb3djb2wtPmNvcmUuaGVpZ2h0IC0g Um93Q29sQm9yZGVyV2lkdGggLSAxOwotKyAgICAgICAgICAqeSA9IGRpc3BNYXhZIC0gcm93Y29s LT5jb3JlLmhlaWdodCAtIFJvd0NvbEJvcmRlcldpZHRoIC0gMTsKLSAgICAgICAgICAgaWYgKExh eW91dElzUnRvTE0ocm93Y29sKSkKLSAgICAgICAgICAgICAgKnggPSBvbGRfeCAtIHJvd2NvbC0+ Y29yZS53aWR0aCAtIChyb3djb2wtPmNvcmUuYm9yZGVyX3dpZHRoIDw8MSk7Ci0gICAgICAgICAg IGVsc2UKLUBAIC05NDgsOSArOTYxLDkgQEAgRm9yY2VNZW51UGFuZU9uU2NyZWVuKAotICAgICAg ICAgICBib3R0b21FZGdlT2ZNZW51ID0gKnkgKyBSb3dDb2xCb3JkZXJXaWR0aCArIHJvd2NvbC0+ Y29yZS5oZWlnaHQ7Ci0gICAgICAgfQotIAotLSAgICAgIGlmICgqeSA8IDApCi0rICAgICAgaWYg KCp5IDwgZGlzcFkpCi0gICAgICAgewotLSAgICAgICAgICAqeSA9IDA7Ci0rICAgICAgICAgICp5 ID0gZGlzcFk7Ci0gCi0gCSAgLyogQ29uc2lkZXIgQ2FzY2FkZUJ0biBhcyB3ZWxsIGFzIFJvd0Nv bCB3aWR0aCB0byBhbGxvdyBtdWx0aQotIAkgICAqIGNvbHVtbiBSb3dDb2x1bW4KLUBAIC05NjMs MTMgKzk3NiwxMyBAQCBGb3JjZU1lbnVQYW5lT25TY3JlZW4oCi0gICAgICAgICAgIGJvdHRvbUVk Z2VPZk1lbnUgPSAqeSArIFJvd0NvbEJvcmRlcldpZHRoICsgcm93Y29sLT5jb3JlLmhlaWdodDsK LSAgICAgICB9Ci0gCi0tICAgICAgaWYgKHJpZ2h0RWRnZU9mTWVudSA+PSAoUG9zaXRpb24pZGlz cFdpZHRoKQotKyAgICAgIGlmIChyaWdodEVkZ2VPZk1lbnUgPj0gZGlzcE1heFgpCi0gICAgICAg ewotIAkgICp4ID0gb2xkX3ggLSByb3djb2wtPmNvcmUud2lkdGggKyBSb3dDb2xCb3JkZXJXaWR0 aDsKLSAJICByaWdodEVkZ2VPZk1lbnUgPSAqeCArIFJvd0NvbEJvcmRlcldpZHRoICsgcm93Y29s LT5jb3JlLndpZHRoOwotICAgICAgIH0KLSAKLS0gICAgICBpZiAoKnggPCAwKQotKyAgICAgIGlm ICgqeCA8IGRpc3BYKQotICAgICAgIHsKLSAgICAgICAgICAgaWYgKExheW91dElzUnRvTE0ocm93 Y29sKSkKLSAgICAgICAgICAgICAgKnggPSBvbGRfeCArIHB1bGxkb3duX2J1dHRvbi0+Y29yZS53 aWR0aCArIENhc2NhZGVCb3JkZXJXaWR0aDsKLUBAIC05ODIsMTAgKzk5NSwxMCBAQCBGb3JjZU1l bnVQYW5lT25TY3JlZW4oCi0gICAgLyoKLSAgICAgKiBJZiB0aGUgc3VibWVudSBpcyBvZmZzY3Jl ZW4gZm9yY2UgaXQgY29tcGxldGVseSBvbi4KLSAgICAgKi8KLS0gICBpZiAocmlnaHRFZGdlT2ZN ZW51ID49IChQb3NpdGlvbilkaXNwV2lkdGgpCi0tICAgICAgICp4IC09IChyaWdodEVkZ2VPZk1l bnUgLSBkaXNwV2lkdGggKyAxKTsKLSsgICBpZiAocmlnaHRFZGdlT2ZNZW51ID49IGRpc3BNYXhY KQotKyAgICAgICAqeCAtPSAocmlnaHRFZGdlT2ZNZW51IC0gZGlzcE1heFggKyAxKTsKLSAKLS0g ICBpZiAoYm90dG9tRWRnZU9mTWVudSA+PSAoUG9zaXRpb24pZGlzcEhlaWdodCkKLSsgICBpZiAo Ym90dG9tRWRnZU9mTWVudSA+PSBkaXNwTWF4WSkKLSAgICB7Ci0gICAgICAgaWYgKHB1bGxkb3du X2J1dHRvbiAmJiBYdFBhcmVudChwdWxsZG93bl9idXR0b24pICYmCi0gCSAgKFJDX1R5cGUoWHRQ YXJlbnQocHVsbGRvd25fYnV0dG9uKSkgPT0gWG1NRU5VX0JBUikpCi1AQCAtMTAwNSwxNSArMTAx OCwxNSBAQCBGb3JjZU1lbnVQYW5lT25TY3JlZW4oCi0gCSAgICAgKnkgPSB5X3RlbXA7Ci0gICAg ICAgfQotICAgICAgIGVsc2UKLS0JICAqeSAtPSAoYm90dG9tRWRnZU9mTWVudSAtIGRpc3BIZWln aHQgKyAxKTsKLSsJICAqeSAtPSAoYm90dG9tRWRnZU9mTWVudSAtIGRpc3BNYXhZICsgMSk7Ci0g ICAgfQotIAotICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSB0b3AgbGVmdCBjb3JuZXIgb3Mgb24g c2NyZWVuISAqLwotLSAgIGlmICgqeCA8IDApCi0tICAgICAgICp4ID0gMDsKLSsgICBpZiAoKngg PCBkaXNwWCkKLSsgICAgICAgKnggPSBkaXNwWDsKLSAKLS0gICBpZiAoKnkgPCAwKQotLSAgICAg ICAqeSA9IDA7Ci0rICAgaWYgKCp5IDwgZGlzcFkpCi0rICAgICAgICp5ID0gZGlzcFk7Ci0gfQot IAotIC8qCi0tLSAKLTIuNDkuMAotCgpkaWZmIC0tZ2l0IGEvMDAwNC1YbS1Ecm9wRG93bi1Vc2Ut WGluZXJhbWEtZm9yLXBsYWNlbWVudC5wYXRjaCBiLzAwMDQtWG0tRHJvcERvd24tVXNlLVhpbmVy YW1hLWZvci1wbGFjZW1lbnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2 NWU3ZmMuLjAwMDAwMDAKLS0tIGEvMDAwNC1YbS1Ecm9wRG93bi1Vc2UtWGluZXJhbWEtZm9yLXBs YWNlbWVudC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLUZyb20gMGU4MzRh OGQzN2RmYWJkOGZhNDQ2M2Y4M2MxMzI0NzhlNTBmODMzNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IE9saXZpZXIgRm91cmRhbiA8b2ZvdXJkYW5AcmVkaGF0LmNvbT4KLURhdGU6IFRo dSwgMjEgTm92IDIwMjQgMTQ6MTE6MTEgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzddIFhtL0Ry b3BEb3duOiBVc2UgWGluZXJhbWEgZm9yIHBsYWNlbWVudAotCi1TaWduZWQtb2ZmLWJ5OiBPbGl2 aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJlZGhhdC5jb20+Ci0tLS0KLSBsaWIvWG0vRHJvcERvd24u YyB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvWG0vRHJvcERvd24uYyBiL2xp Yi9YbS9Ecm9wRG93bi5jCi1pbmRleCBhMjVkMTA5Mi4uNjY1ZTBlMjYgMTAwNjQ0Ci0tLS0gYS9s aWIvWG0vRHJvcERvd24uYwotKysrIGIvbGliL1htL0Ryb3BEb3duLmMKLUBAIC0xMyw3ICsxMyw3 IEBACi0gI2luY2x1ZGUgIlhtSS5oIgotICNpbmNsdWRlIDxYbS9WYVNpbXBsZVAuaD4KLSAjaW5j bHVkZSA8WG0vRHJhd1AuaD4KLS0KLSsjaW5jbHVkZSA8WG0vU2NyZWVuUC5oPgotICNpbmNsdWRl IDxYbS9Ecm9wRG93blAuaD4KLSAKLSAjaW5jbHVkZSA8WDExL1NoZWxsLmg+Ci1AQCAtMjE2OSw4 ICsyMTY5LDkgQEAgUG9wdXBMaXN0KFdpZGdldCB3KQotICAgICBYbURyb3BEb3duV2lkZ2V0IGNi dyA9IChYbURyb3BEb3duV2lkZ2V0KSB3OwotICAgICBXaWRnZXQgc2hlbGwgPSBYbURyb3BEb3du X3BvcHVwX3NoZWxsKGNidyk7Ci0gICAgIFBvc2l0aW9uIHgsIHksIHRlbXA7Ci0rICAgIFBvc2l0 aW9uIGRpc3BYLCBkaXNwWSwgZGlzcE1heFgsIGRpc3BNYXhZOwotICAgICBEaW1lbnNpb24gd2lk dGg7Ci0tICAgIGludCByZXQsIHNjcl93aWR0aCwgc2NyX2hlaWdodDsKLSsgICAgaW50IHJldDsK LSAgICAgQXJnIGFyZ3NbMTBdOwotICAgICBDYXJkaW5hbCBudW1fYXJnczsKLSAKLUBAIC0yMjA5 LDIxICsyMjEwLDIwIEBAIFBvcHVwTGlzdChXaWRnZXQgdykKLSAgICAgICoKLSAgICAgICogTGV0 cyBzdGFydCBieSBnZXR0aW5nIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBzY3JlZW4uCi0g ICAgICAqLwotLSAgICBzY3Jfd2lkdGggPSBXaWR0aE9mU2NyZWVuKFh0U2NyZWVuKHNoZWxsKSk7 Ci0tICAgIHNjcl9oZWlnaHQgPSBIZWlnaHRPZlNjcmVlbihYdFNjcmVlbihzaGVsbCkpOwotKyAg ICBfWG1TY3JlZW5HZXRCb3VuZGFyaWVzQXRwb2ludChYdFNjcmVlbihzaGVsbCksIHgsIHksICZk aXNwWCwgJmRpc3BZLCAmZGlzcE1heFgsICZkaXNwTWF4WSk7Ci0gCi0tICAgIGlmKCAoaW50KSh5 ICsgWHRIZWlnaHQoc2hlbGwpKSA+IHNjcl9oZWlnaHQgKQotKyAgICBpZiggKGludCkoeSArIFh0 SGVpZ2h0KHNoZWxsKSkgPiBkaXNwTWF4WSApCi0gICAgIHsKLSAJUG9zaXRpb24gdG1wOwotIAlY dFRyYW5zbGF0ZUNvb3Jkcyh3LCAwLCAwLCAmdG1wLCAmeSk7Ci0gCXkgLT0gKChpbnQpWHRIZWln aHQoc2hlbGwpKTsKLSAgICAgfQotLSAgICBpZiggeSA8IDAgKSB5ID0gMDsKLS0gICAgaWYoIChp bnQpKHggKyB3aWR0aCkgPiBzY3Jfd2lkdGggKQotKyAgICBpZiggeSA8IGRpc3BZICkgeSA9IGRp c3BZOwotKyAgICBpZiggKGludCkoeCArIHdpZHRoKSA+IGRpc3BNYXhYICkKLSAgICAgewotLQl4 ID0gc2NyX3dpZHRoIC0gKChpbnQpd2lkdGgpOwotKwl4ID0gZGlzcE1heFggLSAoKGludCl3aWR0 aCk7Ci0gICAgIH0KLS0gICAgaWYoIHggPCAwICkgeCA9IDA7Ci0rICAgIGlmKCB4IDwgZGlzcFgg KSB4ID0gZGlzcFg7Ci0gCi0gICAgIFh0U2V0QXJnKGFyZ3NbbnVtX2FyZ3NdLCBYbU54LCB4KTsg bnVtX2FyZ3MrKzsKLSAgICAgWHRTZXRBcmcoYXJnc1tudW1fYXJnc10sIFhtTnksIHkpOyBudW1f YXJncysrOwotLS0gCi0yLjQ5LjAKLQoKZGlmZiAtLWdpdCBhLzAwMDUtWG0tUkNNZW51LVVzZS1Y aW5lcmFtYS1mb3ItcGxhY2VtZW50LnBhdGNoIGIvMDAwNS1YbS1SQ01lbnUtVXNlLVhpbmVyYW1h LWZvci1wbGFjZW1lbnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzZjI2 ZmEuLjAwMDAwMDAKLS0tIGEvMDAwNS1YbS1SQ01lbnUtVXNlLVhpbmVyYW1hLWZvci1wbGFjZW1l bnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi1Gcm9tIDNlZjhjMDM4YjA2 ZjEzNmE2YWJlN2NmYTIzYWZlYzRkNTE0YWY0ZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBPbGl2aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDIx IE5vdiAyMDI0IDE0OjE3OjIxICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNS83XSBYbS9SQ01lbnU6 IFVzZSBYaW5lcmFtYSBmb3IgcGxhY2VtZW50Ci0KLVBsZWFzZSBub3RlIHRoYXQgd2hlbiBidWls ZGluZyB3aXRoIFhpbmVyYW1hIGVuYWJsZWQsIHRoZSBwbGFjZW1lbnQKLWxvZ2ljIGNoYW5nZXMs IGFzIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGUgQ2FzY2FkZUJ1dHRvbiBpcyBub3QKLXRh a2VuIGludG8gYWNjb3VudCB3aGVuIHJlbG9jYXRpbmcgdGhlIFJDTWVudSB3aWRnZXQuCi0KLVJl YXNvbiBmb3IgdGhhdCBpcyBiZWNhdXNlIEkgcmVja29uIHRoZSBjdXJyZW50IGNvZGUgaXMgbm90 IGNvcnJlY3QsIGFzCi1pdCBtb3ZlcyB0aGUgUkNNZW51IHdheSBvZmYgdGhlIHNjcmVlbiwgeWV0 IGl0IGRvZXNuJ3Qgc2hvdyB3aXRob3V0Ci1YaW5lcmFtYSBiZWNhdXNlIHRoZXJlIGlzIGFub3Ro ZXIgY2hlY2sgbGF0ZXIgdG8gbWFrZSBzdXJlIHRoZSB3aWRnZXQKLXJlbWFpbnMgb24gdGhlIG92 ZXJhbGwgc2NyZWVuLCBoZW5jZSBoaWRpbmcgdGhlIHByb2JsZW0uCi0KLVdpdGggWGluZXJhbWEs IHRoYXQgYnJlYWtzIGluLWJldHdlZW4gbW9uaXRvcnMgYW5kIHRoZSBSQ01lbnUgZW5kcyB1cAot Y29tcGxldGVseSBtaXNwbGFjZWQsIHdoaWNoIGlzIHdoeSBJIHRoaW5rIHRoZSBjb2RlIHdhcyB3 cm9uZywgeWV0IHRoZQotbG9naWMgaXMgcHJlc2VydmVkIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBY SU5FUkFNQSBzdXBwb3J0IHRvIHByZXNlcnZlCi10aGUgY3VycmVudCBiZWhhdmlvciBpZiBuZWVk ZWQuCi0KLVNpZ25lZC1vZmYtYnk6IE9saXZpZXIgRm91cmRhbiA8b2ZvdXJkYW5AcmVkaGF0LmNv bT4KLS0tLQotIGxpYi9YbS9SQ01lbnUuYyB8IDE4ICsrKysrKysrKysrKysrLS0tLQotIDEgZmls ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvbGliL1htL1JDTWVudS5jIGIvbGliL1htL1JDTWVudS5jCi1pbmRleCAyYzY5OGQ0Zi4uYWJk N2E3MGUgMTAwNjQ0Ci0tLS0gYS9saWIvWG0vUkNNZW51LmMKLSsrKyBiL2xpYi9YbS9SQ01lbnUu YwotQEAgLTUzNyw2ICs1MzcsNyBAQCBMb2NhdGVQdWxsZG93bigKLSAgICAgICAgIFhFdmVudCAq ZXZlbnQgKQotIHsgICAKLSAgICAgUG9zaXRpb24geCwgeSwgeDEsIHkxOwotKyAgICBQb3NpdGlv biBkaXNwWCwgZGlzcE1heFg7Ci0gCi0gICAgIGlmIChyb290ID09IE5VTEwpIAotICAgICAgIHJl dHVybjsKLUBAIC02MTcsMTcgKzYxOCwyNiBAQCBMb2NhdGVQdWxsZG93bigKLSAgICAgICogd2lu ZG93IGNvLW9yZHMuCi0gICAgICAqLwotICAgICBYdFRyYW5zbGF0ZUNvb3JkcyggKFdpZGdldCkg cCwgeCwgeSwgJngxLCAmeTEpOwotKyAgICBfWG1TY3JlZW5HZXRCb3VuZGFyaWVzQXRwb2ludChY dFNjcmVlbihtKSwgeDEsIHkxLCAmZGlzcFgsIE5VTEwsICZkaXNwTWF4WCwgTlVMTCk7Ci0gCi0g ICAgIC8qIE9oIG5vISAgd2UncmUgZ29pbmcgb2ZmIHNjcmVlbi4gIExldCdzIHRyeSBhbmQgZG8g Ci0gICAgICAgIHNvbWV0aGluZyByZWFzb25hYmxlLiAgV2UncmUgb25seSBkb2luZyB0aGUgY2Fz Y2FkZQotICAgICAgICBvZmYgYSBtZW51IGNhc2UgZm9yIG5vdy4gIChDUiA2NDIxKSAqLwotLSAg ICBpZiAoKHgxICsgWHRXaWR0aChtKSkgPiBXaWR0aE9mU2NyZWVuKFh0U2NyZWVuKG0pKSkgewot KyAgICBpZiAoKHgxICsgWHRXaWR0aChtKSkgPiBkaXNwTWF4WCkgewotICAgICAgIGlmICghSXNP cHRpb24ocm9vdCkgJiYgKFhtSXNDYXNjYWRlQnV0dG9uKHApIHx8IFhtSXNDYXNjYWRlQnV0dG9u R2FkZ2V0KHApKSkgewotLQl4MSAtPSBYdFdpZHRoKG0pICsgeCAtIFh0WChwKTsKLSsJeDEgLT0g WHRXaWR0aChtKSArIHg7Ci0rI2lmbmRlZiBIQVZFX0xJQlhJTkVSQU1BCi0rCS8qIFhYWDogSSBk b24ndCB0aGluayBpdCdzIGNvcnJlY3QsIGJ1dCB0aGF0J3Mgd2hhdCB0aGUgb3JpZ2luYWwgY29k ZSB3YXMgZG9pbmfigKYgKi8KLSsJeDEgLT0gWHRYKHApOwotKyNlbmRpZiAvKiBub3QgSEFWRV9M SUJYSU5FUkFNQSAqLwotICAgICAgIH0KLS0gICAgfSBlbHNlIGlmICh4MSA8IDApIHsgLyogUiB0 byBMIGNhc2UgKi8KLSsgICAgfSBlbHNlIGlmICh4MSA8IGRpc3BYKSB7IC8qIFIgdG8gTCBjYXNl ICovCi0gICAgICAgaWYgKCFJc09wdGlvbihyb290KSAmJiAoWG1Jc0Nhc2NhZGVCdXR0b24ocCkg fHwgWG1Jc0Nhc2NhZGVCdXR0b25HYWRnZXQocCkpKSB7Ci0tCXgxICs9IFh0V2lkdGgobSkgKyB4 IC0gWHRYKHApOwotKwl4MSArPSBYdFdpZHRoKG0pICsgeDsKLSsjaWZuZGVmIEhBVkVfTElCWElO RVJBTUEKLSsJLyogWFhYOiBJIGRvbid0IHRoaW5rIGl0J3MgY29ycmVjdCwgYnV0IHRoYXQncyB3 aGF0IHRoZSBvcmlnaW5hbCBjb2RlIHdhcyBkb2luZ+KApiAqLwotKwl4MSAtPSBYdFgocCk7Ci0r I2VuZGlmIC8qIG5vdCBIQVZFX0xJQlhJTkVSQU1BICovCi0gICAgICAgfQotICAgICB9Ci0gCi0t LSAKLTIuNDkuMAotCgpkaWZmIC0tZ2l0IGEvMDAwNi1YbS1Ub29sdGlwLVVzZS1YaW5lcmFtYS1m b3ItcGxhY2VtZW50LnBhdGNoIGIvMDAwNi1YbS1Ub29sdGlwLVVzZS1YaW5lcmFtYS1mb3ItcGxh Y2VtZW50LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzg3Nzg3Li4wMDAw MDAwCi0tLSBhLzAwMDYtWG0tVG9vbHRpcC1Vc2UtWGluZXJhbWEtZm9yLXBsYWNlbWVudC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLUZyb20gZjJiYzkxYzc4OWVkMzNmYzFl MGEzMWQxNjdhNmE3YmMwMzgzNDI5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE9s aXZpZXIgRm91cmRhbiA8b2ZvdXJkYW5AcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgMjEgTm92IDIw MjQgMTQ6MjQ6MzAgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzddIFhtL1Rvb2x0aXA6IFVzZSBY aW5lcmFtYSBmb3IgcGxhY2VtZW50Ci0KLVNpZ25lZC1vZmYtYnk6IE9saXZpZXIgRm91cmRhbiA8 b2ZvdXJkYW5AcmVkaGF0LmNvbT4KLS0tLQotIGxpYi9YbS9Ub29sVGlwLmMgfCAxMyArKysrKysr KystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL2xpYi9YbS9Ub29sVGlwLmMgYi9saWIvWG0vVG9vbFRpcC5jCi1pbmRl eCBkYzY1MDcxZC4uZmRkMzIyMjEgMTAwNjQ0Ci0tLS0gYS9saWIvWG0vVG9vbFRpcC5jCi0rKysg Yi9saWIvWG0vVG9vbFRpcC5jCi1AQCAtMjksNiArMjksNyBAQAotICNpbmNsdWRlIDxYbS9WZW5k b3JTRVAuaD4KLSAjaW5jbHVkZSA8WG0vR2FkZ2V0UC5oPgotICNpbmNsdWRlIDxYbS9TbGlkZUMu aD4KLSsjaW5jbHVkZSA8WG0vU2NyZWVuUC5oPgotICNpbmNsdWRlIDxYbS9UcmFpdFAuaD4KLSAj aW5jbHVkZSA8WG0vVG9vbFRpcENULmg+Ci0gI2luY2x1ZGUgPFhtL1Rvb2xUaXBULmg+Ci1AQCAt MTUzLDYgKzE1NCw4IEBAIFRvb2xUaXBQb3N0IChYdFBvaW50ZXIgY2xpZW50X2RhdGEsCi0gICAg WHRXaWRnZXRHZW9tZXRyeSBnZW87Ci0gICAgUG9zaXRpb24gZGVzdFgsCi0gICAgICBkZXN0WTsK LSsgICBQb3NpdGlvbiBkaXNwTWF4WCwKLSsgICAgIGRpc3BNYXhZOwotIAotICAgIFhtVG9vbFRp cENvbmZpZ1RyYWl0IHR0cDsgLyogVG9vbFRpcCBwb2ludGVyICovCi0gCi1AQCAtMTk3LDEyICsy MDAsMTQgQEAgVG9vbFRpcFBvc3QgKFh0UG9pbnRlciBjbGllbnRfZGF0YSwKLSAgICAgICBEb24n dCBsZXQgdGhlIHRpcCBiZSBvZmYgdGhlIHJpZ2h0L2JvdHRvbSBvZiB0aGUgc2NyZWVuCi0gICAg ICovCi0gICAgZGVzdFggPSByeCArIChYbUlzR2FkZ2V0ICh3KSA/IFh0WCAodykgOiAwKSAtIHgg KyBYdFdpZHRoICh3KSAvIDI7Ci0tICAgaWYgKGRlc3RYICsgZ2VvLndpZHRoID4gV2lkdGhPZlNj cmVlbiAoWHRTY3JlZW4gKHcpKSkKLSsgICBkZXN0WSA9IHJ5ICsgKFhtSXNHYWRnZXQgKHcpID8g WHRZICh3KSA6IDApIC0geSArIFh0SGVpZ2h0ICh3KTsKLSsgICBfWG1TY3JlZW5HZXRCb3VuZGFy aWVzQXRwb2ludChYdFNjcmVlbih3KSwgZGVzdFgsIGRlc3RZLCBOVUxMLCBOVUxMLCAmZGlzcE1h eFgsICZkaXNwTWF4WSk7Ci0rCi0rICAgaWYgKGRlc3RYICsgZ2VvLndpZHRoID4gZGlzcE1heFgp Ci0gICAgewotLSAgICAgIGRlc3RYID0gV2lkdGhPZlNjcmVlbiAoWHRTY3JlZW4gKHcpKSAtIGdl by53aWR0aDsKLSsgICAgICBkZXN0WCA9IGRpc3BNYXhYIC0gZ2VvLndpZHRoOwotICAgIH0KLS0g ICBkZXN0WSA9IHJ5ICsgKFhtSXNHYWRnZXQgKHcpID8gWHRZICh3KSA6IDApIC0geSArIFh0SGVp Z2h0ICh3KTsKLS0gICBpZiAoZGVzdFkgKyBnZW8uaGVpZ2h0ID4gSGVpZ2h0T2ZTY3JlZW4gKFh0 U2NyZWVuICh3KSkpCi0rICAgaWYgKGRlc3RZICsgZ2VvLmhlaWdodCA+IGRpc3BNYXhZKQotICAg IHsKLSAgICAgICBkZXN0WSA9IHJ5ICsgKFhtSXNHYWRnZXQgKHcpID8gWHRZICh3KSA6IDApIC0g eSAtIGdlby5oZWlnaHQ7Ci0gICAgfQotLS0gCi0yLjQ5LjAKLQoKZGlmZiAtLWdpdCBhLzAwMDct WG0tQ29tYm9Cb3gtVXNlLVhpbmVyYW1hLWZvci1wbGFjZW1lbnQucGF0Y2ggYi8wMDA3LVhtLUNv bWJvQm94LVVzZS1YaW5lcmFtYS1mb3ItcGxhY2VtZW50LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3NzJmOTMwLi4wMDAwMDAwCi0tLSBhLzAwMDctWG0tQ29tYm9Cb3gtVXNl LVhpbmVyYW1hLWZvci1wbGFjZW1lbnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCww IEBACi1Gcm9tIGViMTkzZGNlMmI3ZjhjZTgwMDA0ZDE0Y2NmNjRjNTM1NTJhZTEwM2MgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPbGl2aWVyIEZvdXJkYW4gPG9mb3VyZGFuQHJlZGhh dC5jb20+Ci1EYXRlOiBUaHUsIDIxIE5vdiAyMDI0IDE0OjMwOjIzICswMTAwCi1TdWJqZWN0OiBb UEFUQ0ggNy83XSBYbS9Db21ib0JveDogVXNlIFhpbmVyYW1hIGZvciBwbGFjZW1lbnQKLQotU2ln bmVkLW9mZi1ieTogT2xpdmllciBGb3VyZGFuIDxvZm91cmRhbkByZWRoYXQuY29tPgotLS0tCi0g bGliL1htL0NvbWJvQm94LmMgfCAxMSArKysrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvWG0vQ29tYm9C b3guYyBiL2xpYi9YbS9Db21ib0JveC5jCi1pbmRleCAxNDcyZTQ1OC4uMGY0OWRlNTAgMTAwNjQ0 Ci0tLS0gYS9saWIvWG0vQ29tYm9Cb3guYwotKysrIGIvbGliL1htL0NvbWJvQm94LmMKLUBAIC00 Myw2ICs0Myw3IEBACi0gI2luY2x1ZGUgPFhtL0Rpc3BsYXlQLmg+Ci0gI2luY2x1ZGUgPFhtL0Ry YXdQLmg+Ci0gI2luY2x1ZGUgPFhtL0dyYWJTaGVsbFAuaD4KLSsjaW5jbHVkZSA8WG0vU2NyZWVu UC5oPgotICNpbmNsdWRlIDxYbS9MaXN0Lmg+Ci0gI2luY2x1ZGUgPFhtL1RleHRGLmg+Ci0gI2lu Y2x1ZGUgPFhtL1RyYWl0UC5oPgotQEAgLTE3OTEsNiArMTc5Miw3IEBAIENCRHJvcERvd25MaXN0 KFdpZGdldCAgICB3aWRnZXQsCi0gCSAgQ2FyZGluYWwgbjsKLSAJICBpbnQgdG1wOwotIAkgIFBv c2l0aW9uIHJvb3RfeCwgcm9vdF95LCBzaGVsbF94LCBzaGVsbF95OwotKwkgIFBvc2l0aW9uIGRp c3BYLCBkaXNwWSwgZGlzcE1heFgsIGRpc3BNYXhZOwotIAkgIERpbWVuc2lvbiBzaGVsbF93aWR0 aDsKLSAKLSAJICBYdFRyYW5zbGF0ZUNvb3JkcygoV2lkZ2V0KWNiLCBYdFgoY2IpLCBYdFkoY2Ip LCAmcm9vdF94LCAmcm9vdF95KTsKLUBAIC0xODAxLDEyICsxODAzLDEzIEBAIENCRHJvcERvd25M aXN0KFdpZGdldCAgICB3aWRnZXQsCi0gCSAgICBYdFkoY2IpOyAKLSAJCi0gCSAgLyogVHJ5IHRv IHBvc2l0aW9uIHRoZSBzaGVsbCBvbiB0aGUgc2NyZWVuLiAqLwotLQkgIHRtcCA9IFdpZHRoT2ZT Y3JlZW4oWHRTY3JlZW4oY2IpKSAtIFh0V2lkdGgoQ0JfTGlzdFNoZWxsKGNiKSk7Ci0rCSAgX1ht U2NyZWVuR2V0Qm91bmRhcmllc0F0cG9pbnQoWHRTY3JlZW4oY2IpLCBzaGVsbF94LCBzaGVsbF95 LCAmZGlzcFgsICZkaXNwWSwgJmRpc3BNYXhYLCAmZGlzcE1heFkpOwotKwkgIHRtcCA9IGRpc3BN YXhYIC0gWHRXaWR0aChDQl9MaXN0U2hlbGwoY2IpKTsKLSAJICB0bXAgPSBNSU4odG1wLCBzaGVs bF94KTsKLS0JICBzaGVsbF94ID0gTUFYKDAsIHRtcCk7Ci0tCSAgdG1wID0gSGVpZ2h0T2ZTY3Jl ZW4oWHRTY3JlZW4oY2IpKSAtIFh0SGVpZ2h0KENCX0xpc3RTaGVsbChjYikpOwotKwkgIHNoZWxs X3ggPSBNQVgoZGlzcFgsIHRtcCk7Ci0rCSAgdG1wID0gZGlzcE1heFkgLSBYdEhlaWdodChDQl9M aXN0U2hlbGwoY2IpKTsKLSAJICB0bXAgPSBNSU4odG1wLCBzaGVsbF95KTsKLS0JICBzaGVsbF95 ID0gTUFYKDAsIHRtcCk7Ci0rCSAgc2hlbGxfeSA9IE1BWChkaXNwWSwgdG1wKTsKLSAKLSAJICAv KiBDUiA4NDQ2OiBUaGUgc2hlbGwgd2lkdGggbWF5IGhhdmUgY2hhbmdlZCB1bmV4cGVjdGVkbHku ICovCi0gCSAgc2hlbGxfd2lkdGggPSBYdFdpZHRoKGNiKSAtIDIgKiBDQl9IaWdobGlnaHRUaGlj a25lc3MoY2IpOwotLS0gCi0yLjQ5LjAKLQoKZGlmZiAtLWdpdCBhL2luY2x1ZGVzLnBhdGNoIGIv aW5jbHVkZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2MDg5NDEuLjAw MDAwMDAKLS0tIGEvaW5jbHVkZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA Ci0tLS0gbW90aWYtMi4zLjgvbGliL1htL1hwbUNyQnVmRnJJLmN+CTIwMTYtMDMtMTUgMjE6MTA6 MDguMDAwMDAwMDAwIC0wNTAwCi0rKysgbW90aWYtMi4zLjgvbGliL1htL1hwbUNyQnVmRnJJLmMJ MjAyNS0wOC0xNCAxNDowNzoxMy41NDM1MTQ3MzUgLTA1MDAKLUBAIC0zOSw3ICszOSw3IEBACi0g I2lmZGVmIEhBVkVfQ09ORklHX0gKLSAjaW5jbHVkZSA8Y29uZmlnLmg+Ci0gI2VuZGlmCi0tCi0r I2luY2x1ZGUgPHN0cmluZy5oPgotIAotIC8qIE9jdG9iZXIgMjAwNCwgc291cmNlIGNvZGUgcmV2 aWV3IGJ5IFRob21hcyBCaWVnZSA8dGhvbWFzQHN1c2UuZGU+ICovCi0gCi0tLS0gbW90aWYtMi4z LjgvbGliL1htL1hwbVdyRkZySS5jfgkyMDE2LTAzLTE1IDIxOjEwOjA4LjAwMDAwMDAwMCAtMDUw MAotKysrIG1vdGlmLTIuMy44L2xpYi9YbS9YcG1XckZGckkuYwkyMDI1LTA4LTE0IDE0OjEwOjI3 LjMwNzk2NTI2MCAtMDUwMAotQEAgLTM3LDYgKzM3LDcgQEAKLSAjaW5jbHVkZSA8Y29uZmlnLmg+ Ci0gI2VuZGlmCi0gCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotIAotIC8qIE9jdG9iZXIgMjAwNCwg c291cmNlIGNvZGUgcmV2aWV3IGJ5IFRob21hcyBCaWVnZSA8dGhvbWFzQHN1c2UuZGU+ICovCi0g Ci0tLS0gbW90aWYtMi4zLjgvbGliL1htL1hwbXJnYi5jfgkyMDE2LTAzLTE1IDIxOjEwOjA4LjAw MDAwMDAwMCAtMDUwMAotKysrIG1vdGlmLTIuMy44L2xpYi9YbS9YcG1yZ2IuYwkyMDI1LTA4LTE0 IDE0OjEzOjQ3LjU5MzY4NjY4MyAtMDUwMAotQEAgLTUwLDYgKzUwLDcgQEAKLSAKLSAjaW5jbHVk ZSAiWHBtSS5oIgotICNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAK LSAjaWZuZGVmIEZPUl9NU1cJCQkJLyogbm9ybWFsIHBhcnQgZmlyc3QsIE1TVyBwYXJ0IGF0Ci0g CQkJCQkgKiB0aGUgZW5kLCAoaHVnZSBpZmRlZiEpICovCi0tLS0gbW90aWYtMi4zLjgvbGliL1ht L1hwbUNyRGF0RnJJLmN+CTIwMTYtMDMtMTUgMjE6MTA6MDguMDAwMDAwMDAwIC0wNTAwCi0rKysg bW90aWYtMi4zLjgvbGliL1htL1hwbUNyRGF0RnJJLmMJMjAyNS0wOC0xNCAxNDoxNDoyMS42OTcy MjU4MzEgLTA1MDAKLUBAIC0zNyw2ICszNyw3IEBACi0gI2luY2x1ZGUgPGNvbmZpZy5oPgotICNl bmRpZgotIAotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSAvKiBPY3RvYmVyIDIwMDQsIHNvdXJj ZSBjb2RlIHJldmlldyBieSBUaG9tYXMgQmllZ2UgPHRob21hc0BzdXNlLmRlPiAqLwotIAotLS0t IG1vdGlmLTIuMy44L2xpYi9YbS9YcG1SZEZUb0kuY34JMjAxNi0wMy0xNSAyMToxMDowOC4wMDAw MDAwMDAgLTA1MDAKLSsrKyBtb3RpZi0yLjMuOC9saWIvWG0vWHBtUmRGVG9JLmMJMjAyNS0wOC0x NCAxNDoxNjowOS4wNDA3Mzc2NTggLTA1MDAKLUBAIC0zNyw2ICszNyw3IEBACi0gI2luY2x1ZGUg PGNvbmZpZy5oPgotICNlbmRpZgotIAotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSAvKiBPY3Rv YmVyIDIwMDQsIHNvdXJjZSBjb2RlIHJldmlldyBieSBUaG9tYXMgQmllZ2UgPHRob21hc0BzdXNl LmRlPiAqLwotIAotLS0tIG1vdGlmLTIuMy44L2xpYi9YbS9YcG1jcmVhdGUuY34JMjAxNi0wMy0x NSAyMToxMDowOC4wMDAwMDAwMDAgLTA1MDAKLSsrKyBtb3RpZi0yLjMuOC9saWIvWG0vWHBtY3Jl YXRlLmMJMjAyNS0wOC0xNCAxNDoxNzowMC42NTEzMzkwOTggLTA1MDAKLUBAIC00Myw2ICs0Myw3 IEBACi0gI2luY2x1ZGUgPGNvbmZpZy5oPgotICNlbmRpZgotIAotKyNpbmNsdWRlIDxzdHJpbmcu aD4KLSAKLSAvKiBPY3RvYmVyIDIwMDQsIHNvdXJjZSBjb2RlIHJldmlldyBieSBUaG9tYXMgQmll Z2UgPHRob21hc0BzdXNlLmRlPiAqLwotIAotLS0tIG1vdGlmLTIuMy44L2xpYi9YbS9YcG1JLmh+ CTIwMTctMDgtMTYgMTk6Mzg6NDMuMDAwMDAwMDAwIC0wNTAwCi0rKysgbW90aWYtMi4zLjgvbGli L1htL1hwbUkuaAkyMDI1LTA4LTE0IDE0OjIwOjE5LjkxMzcyMDg0MCAtMDUwMAotQEAgLTI4LDYg KzI4LDggQEAKLSBleHRlcm4gIkMiIHsKLSAjZW5kaWYKLSAKLSsjaW5jbHVkZSA8c3RyaW5nLmg+ Ci0rCi0gLyogWHBtIGludGVybmFsIHN5bWJvbHMgYXJlIHByZWZpeGVkIHdpdGggX1htICovCi0g Ci0gI2RlZmluZSB4cG1QYXJzZURhdGEgX1hteHBtUGFyc2VEYXRhCgpkaWZmIC0tZ2l0IGEvbW90 aWYtMi4zLjQtRml4LWlzc3Vlcy13aXRoLVdlcnJvci1mb3JtYXQtc2VjdXJpdHkucGF0Y2ggYi9t b3RpZi0yLjMuNC1GaXgtaXNzdWVzLXdpdGgtV2Vycm9yLWZvcm1hdC1zZWN1cml0eS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBmZjg2MC4uMDAwMDAwMAotLS0gYS9tb3Rp Zi0yLjMuNC1GaXgtaXNzdWVzLXdpdGgtV2Vycm9yLWZvcm1hdC1zZWN1cml0eS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDgxNSArMCwwIEBACi1Gcm9tIDQ3ODNmYjRjZWM4NjI0MzExYmI4N2Iy ZWI0YTJhYzk0YTVjN2Q4NDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04 P3E/UGV0cj0yMD1DNT1BMGFiYXRhPz0gPGNvbnR5a0ByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA4 IEp1biAyMDE3IDEyOjEyOjA0ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBpc3N1ZXMgd2l0 aCAtV2Vycm9yPWZvcm1hdC1zZWN1cml0eQotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAotCi1TaWduZWQtb2ZmLWJ5OiBQZXRyIMWgYWJhdGEgPGNvbnR5a0ByZWRoYXQuY29tPgot LS0tCi0gbGliL01ybS9Ncm1oaWVyLmMgICAgICAgfCAgIDQgKy0KLSBsaWIvTXJtL01ybWljb24u YyAgICAgICB8ICAgNCArLQotIGxpYi9Ncm0vTXJtbHJlYWQuYyAgICAgIHwgICAyICstCi0gbGli L01ybS9Ncm13Y3J3LmMgICAgICAgfCAgIDQgKy0KLSB0b29scy93bWwvd21sZGJjcmVhdGUuYyB8 ICAgMiArLQotIHRvb2xzL3dtbC93bWxvdXRoLmMgICAgIHwgMTI4ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHRvb2xzL3dtbC93bWxvdXRrZXkuYyAg IHwgIDEwICsrLS0KLSB0b29scy93bWwvd21sb3V0bW0uYyAgICB8ICAxNiArKystLS0KLSB0b29s cy93bWwvd21scmVzb2x2ZS5jICB8ICAyNiArKysrKy0tLS0tCi0gOSBmaWxlcyBjaGFuZ2VkLCA5 OCBpbnNlcnRpb25zKCspLCA5OCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9Ncm0v TXJtaGllci5jIGIvbGliL01ybS9Ncm1oaWVyLmMKLWluZGV4IDI3MTI3NDIuLjJhODcwM2MgMTAw NjQ0Ci0tLS0gYS9saWIvTXJtL01ybWhpZXIuYwotKysrIGIvbGliL01ybS9Ncm1oaWVyLmMKLUBA IC0yNjQsMTAgKzI2NCwxMCBAQCBVcm1fX09wZW5IaWVyYXJjaHkgKE1ybUNvdW50CQkJbnVtX2Zp bGVzLAotIAkgICAgY2FzZSBNcm1TVUNDRVNTOgotIAkgICAgICBicmVhazsKLSAJICAgIGNhc2Ug TXJtTk9UX1ZBTElEOgotLQkgICAgICBzcHJpbnRmIChlcnJfc3RnLCBfTXJtTU1zZ18wMTEzKTsK LSsJICAgICAgc3ByaW50ZiAoZXJyX3N0ZywgIiVzIiwgX01ybU1Nc2dfMDExMyk7Ci0gCSAgICAg IGJyZWFrOwotIAkgICAgZGVmYXVsdDoKLS0JICAgICAgc3ByaW50ZiAoZXJyX3N0ZywgX01ybU1N c2dfMDExNCk7Ci0rCSAgICAgIHNwcmludGYgKGVycl9zdGcsICIlcyIsIF9Ncm1NTXNnXzAxMTQp OwotIAkgICAgICBicmVhazsKLSAJICAgIH0KLSAJfQotZGlmZiAtLWdpdCBhL2xpYi9Ncm0vTXJt aWNvbi5jIGIvbGliL01ybS9Ncm1pY29uLmMKLWluZGV4IDk1ZDQwODYuLjE5MWUyZDIgMTAwNjQ0 Ci0tLS0gYS9saWIvTXJtL01ybWljb24uYwotKysrIGIvbGliL01ybS9Ncm1pY29uLmMKLUBAIC0x MTc2LDcgKzExNzYsNyBAQCBVcm1fX1JlYWxpemVDb2xvclRhYmxlIChTY3JlZW4JCQkqc2NyZWVu LAotIAkJfQotIAkJYnJlYWs7Ci0gCSAgICAgIGRlZmF1bHQ6Ci0tCQlzcHJpbnRmKGVycl9tc2cs IF9Ncm1NTXNnXzAwNDApOwotKwkJc3ByaW50ZihlcnJfbXNnLCAiJXMiLCBfTXJtTU1zZ18wMDQw KTsKLSAJCXJldHVybiBVcm1fX1VUX0Vycm9yICgiVXJtX19SZWxpemVDb2xvclRhYmxlIiwKLSAJ CQkJICAgICAgZXJyX21zZywgTlVMTCwgTlVMTCwgTXJtRkFJTFVSRSkgOwotIAkgICAgICB9Ci1A QCAtMTI1Miw3ICsxMjUyLDcgQEAgVXJtX19SZWFsaXplQ29sb3JUYWJsZSAoU2NyZWVuCQkJKnNj cmVlbiwKLSAJICAgICAgYnJlYWs7Ci0gCSAgICBkZWZhdWx0OgotIAkgICAgICByZXN1bHQgPSBN cm1GQUlMVVJFOwotLQkgICAgICBzcHJpbnRmIChlcnJfbXNnLCBfTXJtTU1zZ18wMDQwKTsKLSsJ ICAgICAgc3ByaW50ZiAoZXJyX21zZywgIiVzIiwgX01ybU1Nc2dfMDA0MCk7Ci0gCSAgICAgIFVy bV9fVVRfRXJyb3IgKCJVcm1fX1JlbGl6ZUNvbG9yVGFibGUiLAotIAkJCSAgICAgZXJyX21zZywg TlVMTCwgTlVMTCwgTXJtRkFJTFVSRSkgOwotIAkgICAgfQotZGlmZiAtLWdpdCBhL2xpYi9Ncm0v TXJtbHJlYWQuYyBiL2xpYi9Ncm0vTXJtbHJlYWQuYwotaW5kZXggYzJmZDk0Yy4uYmU0MzNhMyAx MDA2NDQKLS0tLSBhL2xpYi9Ncm0vTXJtbHJlYWQuYwotKysrIGIvbGliL01ybS9Ncm1scmVhZC5j Ci1AQCAtNjk4LDcgKzY5OCw3IEBAIE1ybUZldGNoQ29sb3JMaXRlcmFsIChNcm1IaWVyYXJjaHkg ICAgICAgICAgICAgICAgaGllcmFyY2h5X2lkLAotIAkgWEJsYWNrUGl4ZWxPZlNjcmVlbihYRGVm YXVsdFNjcmVlbk9mRGlzcGxheShkaXNwbGF5KSkpOwotICAgICAgIGJyZWFrOwotICAgICBkZWZh dWx0OgotLSAgICAgIHNwcmludGYoZXJyX21zZywgX01ybU1Nc2dfMDA0MCk7Ci0rICAgICAgc3By aW50ZihlcnJfbXNnLCAiJXMiLCBfTXJtTU1zZ18wMDQwKTsKLSAgICAgICByZXN1bHQgPSBVcm1f X1VUX0Vycm9yICgiTXJtRmV0Y2hDb2xvckxpdGVyYWwiLAotIAkJCSAgICAgIGVycl9tc2csIE5V TEwsIE5VTEwsIE1ybUZBSUxVUkUpIDsKLSAgICAgICBfTXJtQXBwVW5sb2NrKGFwcCk7Ci1kaWZm IC0tZ2l0IGEvbGliL01ybS9Ncm13Y3J3LmMgYi9saWIvTXJtL01ybXdjcncuYwotaW5kZXggZmUz ZGI1Mi4uM2M1ODU3ZiAxMDA2NDQKLS0tLSBhL2xpYi9Ncm0vTXJtd2Nydy5jCi0rKysgYi9saWIv TXJtL01ybXdjcncuYwotQEAgLTEzOTAsNyArMTM5MCw3IEBAIFVybV9fQ1dfQ3JlYXRlQXJnbGlz dCAoV2lkZ2V0CQkJcGFyZW50LAotIAkJCX0KLSAJCSAgICAgIGJyZWFrOwotIAkJICAgIGRlZmF1 bHQ6Ci0tCQkgICAgICBzcHJpbnRmIChlcnJfbXNnLCBfTXJtTU1zZ18wMDQwKTsKLSsJCSAgICAg IHNwcmludGYgKGVycl9tc2csICIlcyIsIF9Ncm1NTXNnXzAwNDApOwotIAkJICAgICAgcmVzdWx0 ID0gVXJtX19VVF9FcnJvciAoIlVybV9fQ1dfQ29udmVydFZhbHVlIiwKLSAJCQkJCSAgICAgIGVy cl9tc2csIE5VTEwsIE5VTEwsIE1ybUZBSUxVUkUpIDsKLSAJCSAgICB9OwotQEAgLTI0MjYsNyAr MjQyNiw3IEBAIFVybV9fQ1dfQ29udmVydFZhbHVlIChXaWRnZXQJCQlwYXJlbnQsCi0gCSAgICB9 Ci0gCSAgYnJlYWs7Ci0gCWRlZmF1bHQ6Ci0tCSAgc3ByaW50ZihlcnJfbXNnLCBfTXJtTU1zZ18w MDQwKTsKLSsJICBzcHJpbnRmKGVycl9tc2csICIlcyIsIF9Ncm1NTXNnXzAwNDApOwotIAkgIHJl dHVybiBVcm1fX1VUX0Vycm9yICgiVXJtX19DV19Db252ZXJ0VmFsdWUiLAotIAkJCQllcnJfbXNn LCBOVUxMLCBOVUxMLCBNcm1GQUlMVVJFKSA7Ci0gCX07Ci1kaWZmIC0tZ2l0IGEvdG9vbHMvd21s L3dtbGRiY3JlYXRlLmMgYi90b29scy93bWwvd21sZGJjcmVhdGUuYwotaW5kZXggMDdjMGEzYy4u NmRlNTg1YSAxMDA2NDQKLS0tLSBhL3Rvb2xzL3dtbC93bWxkYmNyZWF0ZS5jCi0rKysgYi90b29s cy93bWwvd21sZGJjcmVhdGUuYwotQEAgLTQyNSw3ICs0MjUsNyBAQCBpbnQJdGFibGVfaWQ7Ci0g CQl7Ci0gCQlmcHJpbnRmIChhZmlsZSwgIiVkLCAiLCBlbnRyeV92ZWNbal0pOwotIAkJfQotLQkg ICAgZnByaW50ZiAoYWZpbGUsICJcbiIpOwotKwkgICAgZnByaW50ZiAoYWZpbGUsICIlcyIsICJc biIpOwotIAkgICAgfQotICAgICAgICAgfQotIH0KLWRpZmYgLS1naXQgYS90b29scy93bWwvd21s b3V0aC5jIGIvdG9vbHMvd21sL3dtbG91dGguYwotaW5kZXggZDIzMzBlMy4uYTUyODQzZiAxMDA2 NDQKLS0tLSBhL3Rvb2xzL3dtbC93bWxvdXRoLmMKLSsrKyBiL3Rvb2xzL3dtbC93bWxvdXRoLmMK LUBAIC0yMjUsMTIgKzIyNSwxMiBAQCBpZiAoIG91dGZpbCA9PSAoRklMRSAqKSBOVUxMICkKLSAg ICAgcHJpbnRmICgiXG5Db3VsZG4ndCBvcGVuIFVpbFN5bUdlbi5oIik7Ci0gICAgIHJldHVybjsK LSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkX3dhcm4pOwotK2ZwcmludGYgKG91dGZp bCwgIiVzIiwgY2FubmVkX3dhcm4pOwotIAotIC8qCi0gICogV3JpdGUgdGhlIHN5bV9rLi4uX29i amVjdCBsaXRlcmFscwotICAqLwotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMSk7Ci0rZnByaW50 ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQxKTsKLSBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2Ns YXNzX3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7Ci0gICAgIGNsc29iaiA9IChXbWxDbGFzc0Rl ZlB0cikgd21sX29ial9jbGFzc19wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1AQCAtMjQ0LDcgKzI0 NCw3IEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfY2xhc3NfcHRyLT5jbnQgOyBuZHgrKyAp Ci0gLyoKLSAgKiBEZWZpbmUgdGhlIHN5bV9rXy4uLl9yZWFzb24gbGl0ZXJhbHMKLSAgKi8KLS1m cHJpbnRmIChvdXRmaWwsIGNhbm5lZDMpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVk Myk7Ci0gZm9yICggbmR4PTAgOyBuZHg8d21sX29ial9yZWFzb25fcHRyLT5jbnQgOyBuZHgrKyAp Ci0gICAgIHsKLSAgICAgcmVzb2JqID0gKFdtbFJlc291cmNlRGVmUHRyKSB3bWxfb2JqX3JlYXNv bl9wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1AQCAtMjU4LDcgKzI1OCw3IEBAIGZvciAoIG5keD0w IDsgbmR4PHdtbF9vYmpfcmVhc29uX3B0ci0+Y250IDsgbmR4KysgKQotIC8qCi0gICogRGVmaW5l IHRoZSBzeW1fa18uLi5fYXJnIGxpdGVyYWxzCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBjYW5u ZWQ0KTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDQpOwotIGZvciAoIG5keD0wIDsg bmR4PHdtbF9vYmpfYXJnX3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7Ci0gICAgIHJlc29iaiA9 IChXbWxSZXNvdXJjZURlZlB0cikgd21sX29ial9hcmdfcHRyLT5odmVjW25keF0ub2JqcHRyOwot QEAgLTI3Miw3ICsyNzIsNyBAQCBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2FyZ19wdHItPmNu dCA7IG5keCsrICkKLSAvKgotICAqIERlZmluZSB0aGUgc3ltX2tfLi4uX2VudW1zZXQgc3RydWN0 cyBhbmQgbGl0ZXJhbHMKLSAgKi8KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDUpOwotK2Zwcmlu dGYgKG91dGZpbCwgIiVzIiwgY2FubmVkNSk7Ci0gZm9yICggbmR4PTAgOyBuZHg8d21sX29ial9l bnVtc2V0X3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7Ci0gICAgIGVudW1zZXRvYmogPSAoV21s RW51bVNldERlZlB0cikgd21sX29ial9lbnVtc2V0X3B0ci0+aHZlY1tuZHhdLm9ianB0cjsKLUBA IC0yODYsNyArMjg2LDcgQEAgZm9yICggbmR4PTAgOyBuZHg8d21sX29ial9lbnVtc2V0X3B0ci0+ Y250IDsgbmR4KysgKQotIC8qCi0gICogRGVmaW5lIHRoZSBzeW1fa18uLi5fZW51bXZhbCBsaXRl cmFscwotICAqLwotLWZwcmludGYgKG91dGZpbCwgY2FubmVkNik7Ci0rZnByaW50ZiAob3V0Zmls LCAiJXMiLCBjYW5uZWQ2KTsKLSBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2VudW12YWxfcHRy LT5jbnQgOyBuZHgrKyApCi0gICAgIHsKLSAgICAgZW51bXZhbG9iaiA9IChXbWxFbnVtVmFsdWVE ZWZQdHIpIHdtbF9vYmpfZW51bXZhbF9wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1AQCAtMzAxLDcg KzMwMSw3IEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfZW51bXZhbF9wdHItPmNudCA7IG5k eCsrICkKLSAgKiBEZWZpbmUgdGhlIHN5bV9rXy4uLl9jaGFyc2l6ZSBsaXRlcmFscwotICAqIERl ZmluZSB0aGUgc3ltX2tfLi4uX2NoYXJzZXQgbGl0ZXJhbHMKLSAgKi8KLS1mcHJpbnRmIChvdXRm aWwsIGNhbm5lZDcpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkNyk7Ci0gZm9yICgg bmR4PTAgOyBuZHg8d21sX29ial9jaGFyc2V0X3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7Ci0g ICAgIGNoYXJzZXRvYmogPSAoV21sQ2hhclNldERlZlB0cikgd21sX29ial9jaGFyc2V0X3B0ci0+ aHZlY1tuZHhdLm9ianB0cjsKLUBAIC0zMTUsNyArMzE1LDcgQEAgZm9yICggbmR4PTAgOyBuZHg8 d21sX29ial9jaGFyc2V0X3B0ci0+Y250IDsgbmR4KysgKQotIC8qCi0gICogRGVmaW5lIHRoZSBz eW1fa18uLi5fY2hpbGQgbGl0ZXJhbHMKLSAgKi8KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDgp OwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkOCk7Ci0gZm9yICggbmR4PTAgOyBuZHg8 d21sX29ial9jaGlsZF9wdHItPmNudCA7IG5keCsrICkKLSAgICAgewotICAgICBjaGlsZG9iaiA9 IChXbWxDaGlsZERlZlB0cikgd21sX29ial9jaGlsZF9wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1A QCAtMzc5LDEyICszNzksMTIgQEAgaWYgKCBvdXRmaWwgPT0gKEZJTEUgKikgTlVMTCApCi0gICAg IHByaW50ZiAoIlxuQ291bGRuJ3Qgb3BlbiBVaWxTeW1DaENMLmgiKTsKLSAgICAgcmV0dXJuOwot ICAgICB9Ci0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWRfd2Fybik7Ci0rZnByaW50ZiAob3V0Zmls LCAiJXMiLCBjYW5uZWRfd2Fybik7Ci0gCi0gLyoKLSAgKiBDcmVhdGUgdGFibGUgZW50cmllcywg c2ltaWxhciB0byB3cml0aW5nIHN5bV9rLi4uCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBjYW5u ZWQxKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDEpOwotIGZvciAoIG5keD0wIDsg bmR4PHdtbF9vYmpfY2hpbGRfcHRyLT5jbnQgOyBuZHgrKyApCi0gICAgIHsKLSAgICAgY2hpbGRv YmogPSAoV21sQ2hpbGREZWZQdHIpIHdtbF9vYmpfY2hpbGRfcHRyLT5odmVjW25keF0ub2JqcHRy OwotQEAgLTM5Miw3ICszOTIsNyBAQCBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2NoaWxkX3B0 ci0+Y250IDsgbmR4KysgKQotICAgICBmcHJpbnRmIChvdXRmaWwsICIgICAgc3ltX2tfJXNfb2Jq ZWN0LFxuIiwKLSAJICAgICBjbGFzc29iai0+dGtuYW1lKTsKLSAgICAgfQotLWZwcmludGYgKG91 dGZpbCwgY2FubmVkMWEpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMWEpOwotIAot IC8qCi0gICogY2xvc2UgdGhlIG91dHB1dCBmaWxlCi1AQCAtNDQ2LDEyICs0NDYsMTIgQEAgaWYg KCBvdXRmaWwgPT0gKEZJTEUgKikgTlVMTCApCi0gICAgIHByaW50ZiAoIlxuQ291bGRuJ3Qgb3Bl biBVaWxTeW1BclR5LmgiKTsKLSAgICAgcmV0dXJuOwotICAgICB9Ci0tZnByaW50ZiAob3V0Zmls LCBjYW5uZWRfd2Fybik7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWRfd2Fybik7Ci0g Ci0gLyoKLSAgKiBDcmVhdGUgdGFibGUgZW50cmllcywgc2ltaWxhciB0byB3cml0aW5nIHN5bV9r Li4uCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWQxKTsKLStmcHJpbnRmIChvdXRmaWws ICIlcyIsIGNhbm5lZDEpOwotIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfYXJnX3B0ci0+Y250 IDsgbmR4KysgKQotICAgICB7Ci0gICAgIHJlc29iaiA9IChXbWxSZXNvdXJjZURlZlB0cikgd21s X29ial9hcmdfcHRyLT5odmVjW25keF0ub2JqcHRyOwotQEAgLTQ1OSw3ICs0NTksNyBAQCBmb3Ig KCBuZHg9MCA7IG5keDx3bWxfb2JqX2FyZ19wdHItPmNudCA7IG5keCsrICkKLSAgICAgZnByaW50 ZiAob3V0ZmlsLCAiICAgIHN5bV9rXyVzX3ZhbHVlLFxuIiwKLSAJICAgICBkYXRvYmotPnRrbmFt ZSk7Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDFhKTsKLStmcHJpbnRmIChvdXRm aWwsICIlcyIsIGNhbm5lZDFhKTsKLSAKLSAvKgotICAqIGNsb3NlIHRoZSBvdXRwdXQgZmlsZQot QEAgLTUwOSwxOSArNTA5LDE5IEBAIGlmICggb3V0ZmlsID09IChGSUxFICopIE5VTEwgKQotICAg ICBwcmludGYgKCJcbkNvdWxkbid0IG9wZW4gVWlsU3ltUkFyZy5oIik7Ci0gICAgIHJldHVybjsK LSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkX3dhcm4pOwotK2ZwcmludGYgKG91dGZp bCwgIiVzIiwgY2FubmVkX3dhcm4pOwotIAotIC8qCi0gICogQ3JlYXRlIHRhYmxlIGVudHJpZXMs IHNpbWlsYXIgdG8gd3JpdGluZyBzeW1fay4uLgotICAqLwotLWZwcmludGYgKG91dGZpbCwgY2Fu bmVkMSk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQxKTsKLSBmb3IgKCBuZHg9MCA7 IG5keDx3bWxfb2JqX2FyZ19wdHItPmNudCA7IG5keCsrICkKLSAgICAgewotICAgICByZXNvYmog PSAoV21sUmVzb3VyY2VEZWZQdHIpIHdtbF9vYmpfYXJnX3B0ci0+aHZlY1tuZHhdLm9ianB0cjsK LSAgICAgZnByaW50ZiAob3V0ZmlsLCAiICAgICVkLFxuIiwKLSAJICAgICByZXNvYmotPnJlbGF0 ZWRfY29kZSk7Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDFhKTsKLStmcHJpbnRm IChvdXRmaWwsICIlcyIsIGNhbm5lZDFhKTsKLSAKLSAvKgotICAqIGNsb3NlIHRoZSBvdXRwdXQg ZmlsZQotQEAgLTYyMSwxMiArNjIxLDEyIEBAIGlmICggb3V0ZmlsID09IChGSUxFICopIE5VTEwg KQotICAgICBwcmludGYgKCJcbkNvdWxkbid0IG9wZW4gVWlsVXJtQ2xhcy5oIik7Ci0gICAgIHJl dHVybjsKLSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkX3dhcm4pOwotK2ZwcmludGYg KG91dGZpbCwgIiVzIiwgY2FubmVkX3dhcm4pOwotIAotIC8qCi0gICogV3JpdGUgZW50cmllcyBm b3Igd2lkZ2V0cwotICAqLwotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMSk7Ci0rZnByaW50ZiAo b3V0ZmlsLCAiJXMiLCBjYW5uZWQxKTsKLSBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2NsYXNz X3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7Ci0gICAgIGNsc29iaiA9IChXbWxDbGFzc0RlZlB0 cikgd21sX29ial9jbGFzc19wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1AQCAtNjM3LDcgKzYzNyw3 IEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfY2xhc3NfcHRyLT5jbnQgOyBuZHgrKyApCi0g ICAgIGVsc2UgCi0gCWZwcmludGYgKG91dGZpbCwgIiAgXCIlc1wiLFx0XG4iLCBzeW5vYmotPmNv bnZmdW5jKTsKLSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMik7Ci0rZnByaW50ZiAo b3V0ZmlsLCAiJXMiLCBjYW5uZWQyKTsKLSAKLSAvKgotICAqIFdyaXRlIGVudHJpZXMgZm9yIGdh ZGdldCB2YXJpYW50cyBvZiB3aWRnZXQgY2xhc3NlcwotQEAgLTY2MSw3ICs2NjEsNyBAQCBmb3Ig KCBuZHg9MCA7IG5keDx3bWxfb2JqX2NsYXNzX3B0ci0+Y250IDsgbmR4KysgKQotIAkJICAgICBz eW5vYmotPm5hbWUpOwotIAl9Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDMpOwot K2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMyk7Ci0gCi0gLyoKLSAgKiBXcml0ZSBlbnRy aWVzIGZvciBub24tZGlhbG9nIHdpZGdldHMKLUBAIC02ODUsNyArNjg1LDcgQEAgZm9yICggbmR4 PTAgOyBuZHg8d21sX29ial9jbGFzc19wdHItPmNudCA7IG5keCsrICkKLSAJCSAgICAgc3lub2Jq LT5uYW1lKTsKLSAJfQotICAgICB9Ci0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWQ0KTsKLStmcHJp bnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDQpOwotIAotIC8qCi0gICogV3JpdGUgZW50cmllcyBm b3IgdGhlIHJlc291cmNlIGEgd2lkZ2V0J3MgY29udHJvbHMgbWFwIHRvCi1AQCAtNzAxLDcgKzcw MSw3IEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfY2xhc3NfcHRyLT5jbnQgOyBuZHgrKyAp Ci0gICAgIGVsc2UKLSAJZnByaW50ZiAob3V0ZmlsLCAiICBzeW1fa18lc19hcmcsXG4iLCBtYXBy ZXNvYmotPnRrbmFtZSk7Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDUpOwotK2Zw cmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkNSk7Ci0gCi0gLyoKLSAgKiBXcml0ZSBlbnRyaWVz IGZvciBhcmd1bWVudHMKLUBAIC03MTQsNyArNzE0LDcgQEAgZm9yICggbmR4PTAgOyBuZHg8d21s X29ial9hcmdfcHRyLT5jbnQgOyBuZHgrKyApCi0gICAgIGZwcmludGYgKG91dGZpbCwgIiAgJXMs XG4iLAotIAkgICAgIHN5bnJlcy0+cmVzbGl0ZXJhbCk7Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRm aWwsIGNhbm5lZDYpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkNik7Ci0gCi0gLyoK LSAgKiBXcml0ZSBlbnRyaWVzIGZvciByZWFzb25zCi1AQCAtNzI3LDcgKzcyNyw3IEBAIGZvciAo IG5keD0wIDsgbmR4PHdtbF9vYmpfcmVhc29uX3B0ci0+Y250IDsgbmR4KysgKQotICAgICBmcHJp bnRmIChvdXRmaWwsICIgICVzLFxuIiwKLSAJICAgICBzeW5yZXMtPnJlc2xpdGVyYWwpOwotICAg ICB9Ci0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWQ3KTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIs IGNhbm5lZDcpOwotIAotIC8qCi0gICogY2xvc2UgdGhlIG91dHB1dCBmaWxlCi1AQCAtNzgxLDEz ICs3ODEsMTMgQEAgaWYgKCBvdXRmaWwgPT0gKEZJTEUgKikgTlVMTCApCi0gICAgIHByaW50ZiAo IlxuQ291bGRuJ3Qgb3BlbiBVaWxDb25zdC5oIik7Ci0gICAgIHJldHVybjsKLSAgICAgfQotLWZw cmludGYgKG91dGZpbCwgY2FubmVkX3dhcm4pOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2Fu bmVkX3dhcm4pOwotIAotIC8qCi0gICogUHJvY2VzcyB0aGUgYXJndW1lbnRzIGluIGNvZGUgb3Jk ZXIuIFdlIHN0YXJ0IHdpdGggMSwgYW5kIHdyaXRlIG91dAotICAqIHRoZSBtYXNrIGFmdGVyIHBy b2Nlc3NpbmcgOCBjb2Rlcy4KLSAgKi8KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDEpOwotK2Zw cmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMSk7Ci0gc3RyY3B5IChtYXNrYnVmLCAiMCIpOwot IGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfYXJnX3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7 Ci1AQCAtODA1LDcgKzgwNSw3IEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfYXJnX3B0ci0+ Y250IDsgbmR4KysgKQotICAgICB9Ci0gaWYgKCBiaXRubyAhPSA4ICkKLSAgICAgZnByaW50ZiAo b3V0ZmlsLCAiJXMiLCBtYXNrYnVmKTsKLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDFhKTsKLStm cHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDFhKTsKLSAKLSAvKgotICAqIGNsb3NlIHRoZSBv dXRwdXQgZmlsZQotQEAgLTg3OCw4ICs4NzgsOCBAQCBpZiAoIG91dGZpbCA9PSAoRklMRSAqKSBO VUxMICkKLSAgICAgcHJpbnRmICgiXG5Db3VsZG4ndCBvcGVuIFVpbFN5bVJlYXMuaCIpOwotICAg ICByZXR1cm47Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZF93YXJuKTsKLS1mcHJp bnRmIChvdXRmaWwsIGNhbm5lZDEpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkX3dh cm4pOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMSk7Ci0gCi0gLyoKLSAgKiBHZW5l cmF0ZSB0aGUgYml0IHZlY3RvcnMgZm9yIGVhY2ggY2xhc3MuIE91dGVyIGxvb3Agb24gdGhlIHJl YXNvbiBjb2RlLAotQEAgLTkxOSwxOSArOTE5LDE5IEBAIGZvciAoIHJlc25keD0wIDsgcmVzbmR4 PHdtbF9vYmpfcmVhc29uX3B0ci0+Y250IDsgcmVzbmR4KysgKQotICAgICBpZiAoIGl0ZW1ubyAh PSAwICkKLSAJZnByaW50ZiAob3V0ZmlsLCAiJXMgMH07XG4iLCBtYXNrYnVmKTsKLSAgICAgZWxz ZQotLQlmcHJpbnRmIChvdXRmaWwsICJ9O1xuIik7Ci0rCWZwcmludGYgKG91dGZpbCwgIiVzIiwg In07XG4iKTsKLSAgICAgfQotIAotIC8qCi0gICogV3JpdGUgdGhlIHZlY3RvciBvZiB2ZWN0b3Jz LgotICAqLwotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMik7Ci0rZnByaW50ZiAob3V0ZmlsLCAi JXMiLCBjYW5uZWQyKTsKLSBmb3IgKCByZXNuZHg9MCA7IHJlc25keDx3bWxfb2JqX3JlYXNvbl9w dHItPmNudCA7IHJlc25keCsrICkKLSAgICAgewotICAgICByZXNvYmogPSAoV21sUmVzb3VyY2VE ZWZQdHIpIHdtbF9vYmpfcmVhc29uX3B0ci0+aHZlY1tyZXNuZHhdLm9ianB0cjsKLSAgICAgZnBy aW50ZiAob3V0ZmlsLCAiICByZWFzb25fY2xhc3NfdmVjJWQsXG4iLCByZXNvYmotPnN5bV9jb2Rl KTsKLSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMyk7Ci0rZnByaW50ZiAob3V0Zmls LCAiJXMiLCBjYW5uZWQzKTsKLSAKLSAvKgotICAqIGNsb3NlIHRoZSBvdXRwdXQgZmlsZQotQEAg LTEwMDQsOCArMTAwNCw4IEBAIGlmICggb3V0ZmlsID09IChGSUxFICopIE5VTEwgKQotICAgICBw cmludGYgKCJcbkNvdWxkbid0IG9wZW4gVWlsU3ltQXJUYS5oIik7Ci0gICAgIHJldHVybjsKLSAg ICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkX3dhcm4pOwotLWZwcmludGYgKG91dGZpbCwg Y2FubmVkMSk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWRfd2Fybik7Ci0rZnByaW50 ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQxKTsKLSAKLSAvKgotICAqIEdlbmVyYXRlIHRoZSBiaXQg dmVjdG9ycyBmb3IgZWFjaCBjbGFzcy4gT3V0ZXIgbG9vcCBvbiB0aGUgYXJndW1lbnQgY29kZSwK LUBAIC0xMDQ1LDE5ICsxMDQ1LDE5IEBAIGZvciAoIHJlc25keD0wIDsgcmVzbmR4PHdtbF9vYmpf YXJnX3B0ci0+Y250IDsgcmVzbmR4KysgKQotICAgICBpZiAoIGl0ZW1ubyAhPSAwICkKLSAJZnBy aW50ZiAob3V0ZmlsLCAiJXMgMH07XG4iLCBtYXNrYnVmKTsKLSAgICAgZWxzZQotLQlmcHJpbnRm IChvdXRmaWwsICJ9O1xuIik7Ci0rCWZwcmludGYgKG91dGZpbCwgIiVzIiwgIn07XG4iKTsKLSAg ICAgfQotIAotIC8qCi0gICogV3JpdGUgdGhlIHZlY3RvciBvZiB2ZWN0b3JzLgotICAqLwotLWZw cmludGYgKG91dGZpbCwgY2FubmVkMik7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQy KTsKLSBmb3IgKCByZXNuZHg9MCA7IHJlc25keDx3bWxfb2JqX2FyZ19wdHItPmNudCA7IHJlc25k eCsrICkKLSAgICAgewotICAgICByZXNvYmogPSAoV21sUmVzb3VyY2VEZWZQdHIpIHdtbF9vYmpf YXJnX3B0ci0+aHZlY1tyZXNuZHhdLm9ianB0cjsKLSAgICAgZnByaW50ZiAob3V0ZmlsLCAiICBh cmdfY2xhc3NfdmVjJWQsXG4iLCByZXNvYmotPnN5bV9jb2RlKTsKLSAgICAgfQotLWZwcmludGYg KG91dGZpbCwgY2FubmVkMyk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQzKTsKLSAK LSAvKgotICAqIGNsb3NlIHRoZSBvdXRwdXQgZmlsZQotQEAgLTExMjksOCArMTEyOSw4IEBAIGlm ICggb3V0ZmlsID09IChGSUxFICopIE5VTEwgKQotICAgICBwcmludGYgKCJcbkNvdWxkbid0IG9w ZW4gVWlsU3ltQ2hUYS5oIik7Ci0gICAgIHJldHVybjsKLSAgICAgfQotLWZwcmludGYgKG91dGZp bCwgY2FubmVkX3dhcm4pOwotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMSk7Ci0rZnByaW50ZiAo b3V0ZmlsLCAiJXMiLCBjYW5uZWRfd2Fybik7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5u ZWQxKTsKLSAKLSAvKgotICAqIEdlbmVyYXRlIHRoZSBiaXQgdmVjdG9ycyBmb3IgZWFjaCBjbGFz cy4gT3V0ZXIgbG9vcCBvbiB0aGUgY2hpbGQgY29kZSwKLUBAIC0xMTY4LDE5ICsxMTY4LDE5IEBA IGZvciAoIGNoaWxkbmR4PTAgOyBjaGlsZG5keDx3bWxfb2JqX2NoaWxkX3B0ci0+Y250IDsgY2hp bGRuZHgrKyApCi0gICAgIGlmICggaXRlbW5vICE9IDAgKQotIAlmcHJpbnRmIChvdXRmaWwsICIl cyAwfTtcbiIsIG1hc2tidWYpOwotICAgICBlbHNlCi0tCWZwcmludGYgKG91dGZpbCwgIn07XG4i KTsKLSsJZnByaW50ZiAob3V0ZmlsLCAiJXMiLCAifTtcbiIpOwotICAgICB9Ci0gCi0gLyoKLSAg KiBXcml0ZSB0aGUgdmVjdG9yIG9mIHZlY3RvcnMuCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBj YW5uZWQyKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDIpOwotIGZvciAoIGNoaWxk bmR4PTAgOyBjaGlsZG5keDx3bWxfb2JqX2NoaWxkX3B0ci0+Y250IDsgY2hpbGRuZHgrKyApCi0g ICAgIHsKLSAgICAgY2hpbGRvYmogPSAoV21sQ2hpbGREZWZQdHIpIHdtbF9vYmpfY2hpbGRfcHRy LT5odmVjW2NoaWxkbmR4XS5vYmpwdHI7Ci0gICAgIGZwcmludGYgKG91dGZpbCwgIiAgY2hpbGRf Y2xhc3NfdmVjJWQsXG4iLCBjaGlsZG9iai0+c3ltX2NvZGUpOwotICAgICB9Ci0tZnByaW50ZiAo b3V0ZmlsLCBjYW5uZWQzKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDMpOwotIAot IC8qCi0gICogY2xvc2UgdGhlIG91dHB1dCBmaWxlCi1AQCAtMTI1MSw4ICsxMjUxLDggQEAgaWYg KCBvdXRmaWwgPT0gKEZJTEUgKikgTlVMTCApCi0gICAgIHByaW50ZiAoIlxuQ291bGRuJ3Qgb3Bl biBVaWxTeW1DdGwuaCIpOwotICAgICByZXR1cm47Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWws IGNhbm5lZF93YXJuKTsKLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDEpOwotK2ZwcmludGYgKG91 dGZpbCwgIiVzIiwgY2FubmVkX3dhcm4pOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVk MSk7Ci0gCi0gLyoKLSAgKiBHZW5lcmF0ZSB0aGUgYml0IHZlY3RvcnMgZm9yIGVhY2ggY2xhc3Mu IE91dGVyIGxvb3Agb24gdGhlIGNsYXNzIGNvZGUsCi1AQCAtMTI5MCwxOSArMTI5MCwxOSBAQCBm b3IgKCBjdGxuZHg9MCA7IGN0bG5keDx3bWxfb2JqX2NsYXNzX3B0ci0+Y250IDsgY3RsbmR4Kysg KQotICAgICBpZiAoIGl0ZW1ubyAhPSAwICkKLSAJZnByaW50ZiAob3V0ZmlsLCAiJXMgMH07XG4i LCBtYXNrYnVmKTsKLSAgICAgZWxzZQotLQlmcHJpbnRmIChvdXRmaWwsICJ9O1xuIik7Ci0rCWZw cmludGYgKG91dGZpbCwgIiVzIiwgIn07XG4iKTsKLSAgICAgfQotIAotIC8qCi0gICogV3JpdGUg dGhlIHZlY3RvciBvZiB2ZWN0b3JzLgotICAqLwotLWZwcmludGYgKG91dGZpbCwgY2FubmVkMik7 Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQyKTsKLSBmb3IgKCBjdGxuZHg9MCA7IGN0 bG5keDx3bWxfb2JqX2NsYXNzX3B0ci0+Y250IDsgY3RsbmR4KysgKQotICAgICB7Ci0gICAgIGNs c29iaiA9IChXbWxDbGFzc0RlZlB0cikgd21sX29ial9jbGFzc19wdHItPmh2ZWNbY3RsbmR4XS5v YmpwdHI7Ci0gICAgIGZwcmludGYgKG91dGZpbCwgIiAgb2JqZWN0X2NsYXNzX3ZlYyVkLFxuIiwg Y2xzb2JqLT5zeW1fY29kZSk7Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDMpOwot K2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMyk7Ci0gCi0gLyoKLSAgKiBjbG9zZSB0aGUg b3V0cHV0IGZpbGUKLUBAIC0xNDM4LDcgKzE0MzgsNyBAQCBpZiAoIG91dGZpbCA9PSAoRklMRSAq KSBOVUxMICkKLSAgICAgcHJpbnRmICgiXG5Db3VsZG4ndCBvcGVuIFVpbFN5bU5hbS5oIik7Ci0g ICAgIHJldHVybjsKLSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2FubmVkX3dhcm4pOwotK2Zw cmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkX3dhcm4pOwotIAotIC8qCi0gICogV3JpdGUgZW50 cmllcyBmb3Igd2lkZ2V0cwotQEAgLTE1MTcsNyArMTUxNyw3IEBAIGZvciAoIG5keD0wIDsgbmR4 PHdtbF9vYmpfY2hpbGRfcHRyLT5jbnQgOyBuZHgrKyApCi0gICAgIGZwcmludGYgKG91dGZpbCwg IiAgICBcIiVzXCIsXG4iLAotIAkgICAgIHN5bmNoLT5uYW1lKTsKLSAgICAgfQotLWZwcmludGYg KG91dGZpbCwgY2FubmVkNyk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQ3KTsKLSAK LSAvKgotICAqIGNsb3NlIHRoZSBvdXRwdXQgZmlsZQotQEAgLTE2MjEsMTIgKzE2MjEsMTIgQEAg aWYgKCBvdXRmaWwgPT0gKEZJTEUgKikgTlVMTCApCi0gICAgIHByaW50ZiAoIlxuQ291bGRuJ3Qg b3BlbiBVaWxTeW1FbnVtLmgiKTsKLSAgICAgcmV0dXJuOwotICAgICB9Ci0tZnByaW50ZiAob3V0 ZmlsLCBjYW5uZWRfd2Fybik7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWRfd2Fybik7 Ci0gCi0gLyoKLSAgKiBHZW5lcmF0ZSB0aGUgZW51bWVyYXRpb24gdmFsdWUgdmVjdG9ycyBmb3Ig ZWFjaCBlbnVtZXJhdGlvbiBzZXQuCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWQxKTsK LStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDEpOwotIGZvciAoIG5keD0wIDsgbmR4PHdt bF9vYmpfZW51bXNldF9wdHItPmNudCA7IG5keCsrICkKLSAgICAgewotICAgICBlbnVtc2V0b2Jq ID0gKFdtbEVudW1TZXREZWZQdHIpIHdtbF9vYmpfZW51bXNldF9wdHItPmh2ZWNbbmR4XS5vYmpw dHI7Ci1AQCAtMTYzNywxMyArMTYzNywxMyBAQCBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2Vu dW1zZXRfcHRyLT5jbnQgOyBuZHgrKyApCi0gCWZwcmludGYgKG91dGZpbCwgIiAgICAlZCxcbiIs Ci0gCQkgZXZvYmotPnN5bV9jb2RlKTsKLSAJfQotLSAgICBmcHJpbnRmIChvdXRmaWwsICIgIH07 XG4iKTsKLSsgICAgZnByaW50ZiAob3V0ZmlsLCAiJXMiLCAiICB9O1xuIik7Ci0gICAgIH0KLSAK LSAvKgotICAqIEdlbmVyYXRlIHRoZSBlbnVtZXJhdGlvbiBzZXQgdGFibGVzCi0gICovCi0tZnBy aW50ZiAob3V0ZmlsLCBjYW5uZWQzKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDMp OwotIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfZW51bXNldF9wdHItPmNudCA7IG5keCsrICkK LSAgICAgewotICAgICBlbnVtc2V0b2JqID0gKFdtbEVudW1TZXREZWZQdHIpIHdtbF9vYmpfZW51 bXNldF9wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1AQCAtMTY1NSw3ICsxNjU1LDcgQEAgZm9yICgg bmR4PTAgOyBuZHg8d21sX29ial9lbnVtc2V0X3B0ci0+Y250IDsgbmR4KysgKQotIC8qCi0gICog Q3JlYXRlIGVudW1zZXQgdGFibGUgZW50cmllcyBmb3IgYXJndW1lbnRzLCBzaW1pbGFyIHRvIHdy aXRpbmcgc3ltX2suLi4KLSAgKi8KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDQpOwotK2Zwcmlu dGYgKG91dGZpbCwgIiVzIiwgY2FubmVkNCk7Ci0gZm9yICggbmR4PTAgOyBuZHg8d21sX29ial9h cmdfcHRyLT5jbnQgOyBuZHgrKyApCi0gICAgIHsKLSAgICAgcmVzb2JqID0gKFdtbFJlc291cmNl RGVmUHRyKSB3bWxfb2JqX2FyZ19wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci1AQCAtMTY2OSwxMyAr MTY2OSwxMyBAQCBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2FyZ19wdHItPmNudCA7IG5keCsr ICkKLSAvKgotICAqIENyZWF0ZSB0aGUgZW51bXZhbCB2YWx1ZXMgdGFibGUuCi0gICovCi0tZnBy aW50ZiAob3V0ZmlsLCBjYW5uZWQ1KTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDUp OwotIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfZW51bXZhbF9wdHItPmNudCA7IG5keCsrICkK LSAgICAgewotICAgICBldm9iaiA9IChXbWxFbnVtVmFsdWVEZWZQdHIpIHdtbF9vYmpfZW51bXZh bF9wdHItPmh2ZWNbbmR4XS5vYmpwdHI7Ci0gICAgIGZwcmludGYgKG91dGZpbCwgIiAgJXMsXG4i LCBldm9iai0+c3luZGVmLT5lbnVtbGl0KTsKLSAgICAgfQotLWZwcmludGYgKG91dGZpbCwgY2Fu bmVkNWEpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkNWEpOwotIAotIC8qCi0gICog Y2xvc2UgdGhlIG91dHB1dCBmaWxlCi1AQCAtMTgxMywxMiArMTgxMywxMiBAQCBpZiAoIG91dGZp bCA9PSAoRklMRSAqKSBOVUxMICkKLSAgICAgcHJpbnRmICgiXG5Db3VsZG4ndCBvcGVuIFVpbFN5 bUNTZXQuaCIpOwotICAgICByZXR1cm47Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5l ZF93YXJuKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZF93YXJuKTsKLSAKLSAvKgot ICAqIEdlbmVyYXRlIHRoZSBzdGFuZGFyZHMgbmFtZSB0YWJsZQotICAqLwotLWZwcmludGYgKG91 dGZpbCwgY2FubmVkMSk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQxKTsKLSBmb3Ig KCBuZHg9MCA7IG5keDx3bWxfb2JqX2NoYXJzZXRfcHRyLT5jbnQgOyBuZHgrKyApCi0gICAgIHsK LSAgICAgY3NvYmogPSAoV21sQ2hhclNldERlZlB0cikgd21sX29ial9jaGFyc2V0X3B0ci0+aHZl Y1tuZHhdLm9ianB0cjsKLUBAIC0xODM2LDcgKzE4MzYsNyBAQCBmb3IgKCBuZHg9MCA7IG5keDx3 bWxfb2JqX2NoYXJzZXRfcHRyLT5jbnQgOyBuZHgrKyApCi0gLyoKLSAgKiBHZW5lcmF0ZSB0aGUg d3JpdGluZyBkaXJlY3Rpb24gdGFibGUKLSAgKi8KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDIp OwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMik7Ci0gZm9yICggbmR4PTAgOyBuZHg8 d21sX29ial9jaGFyc2V0X3B0ci0+Y250IDsgbmR4KysgKQotICAgICB7Ci0gICAgIGNzb2JqID0g KFdtbENoYXJTZXREZWZQdHIpIHdtbF9vYmpfY2hhcnNldF9wdHItPmh2ZWNbbmR4XS5vYmpwdHI7 Ci1AQCAtMTg1OCw3ICsxODU4LDcgQEAgZm9yICggbmR4PTAgOyBuZHg8d21sX29ial9jaGFyc2V0 X3B0ci0+Y250IDsgbmR4KysgKQotIC8qCi0gICogR2VuZXJhdGUgdGhlIHBhcnNpbmcgZGlyZWN0 aW9uIHRhYmxlCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWQzKTsKLStmcHJpbnRmIChv dXRmaWwsICIlcyIsIGNhbm5lZDMpOwotIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfY2hhcnNl dF9wdHItPmNudCA7IG5keCsrICkKLSAgICAgewotICAgICBjc29iaiA9IChXbWxDaGFyU2V0RGVm UHRyKSB3bWxfb2JqX2NoYXJzZXRfcHRyLT5odmVjW25keF0ub2JqcHRyOwotQEAgLTE4ODAsNyAr MTg4MCw3IEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfY2hhcnNldF9wdHItPmNudCA7IG5k eCsrICkKLSAvKgotICAqIEdlbmVyYXRlIHRoZSBjaGFyYWN0ZXIgc2l6ZSB0YWJsZQotICAqLwot LWZwcmludGYgKG91dGZpbCwgY2FubmVkNCk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5u ZWQ0KTsKLSBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2NoYXJzZXRfcHRyLT5jbnQgOyBuZHgr KyApCi0gICAgIHsKLSAgICAgY3NvYmogPSAoV21sQ2hhclNldERlZlB0cikgd21sX29ial9jaGFy c2V0X3B0ci0+aHZlY1tuZHhdLm9ianB0cjsKLUBAIC0xOTA2LDcgKzE5MDYsNyBAQCBmb3IgKCBu ZHg9MCA7IG5keDx3bWxfb2JqX2NoYXJzZXRfcHRyLT5jbnQgOyBuZHgrKyApCi0gLyoKLSAgKiBH ZW5lcmF0ZSB0aGUgJExBTkcgbmFtZSByZWNvZ25pdGlvbiB0YWJsZQotICAqLwotLWZwcmludGYg KG91dGZpbCwgY2FubmVkNSk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQ1KTsKLSBs YW5nX21heCA9IDA7Ci0gZm9yICggbmR4PTAgOyBuZHg8d21sX29ial9jaGFyc2V0X3B0ci0+Y250 IDsgbmR4KysgKQotICAgICB7Ci1AQCAtMTkzNiw3ICsxOTM2LDcgQEAgZm9yICggbmR4PTAgOyBu ZHg8d21sX29ial9jaGFyc2V0X3B0ci0+Y250IDsgbmR4KysgKQotIC8qCi0gICogR2VuZXJhdGUg dGhlICRMQU5HIGNvZGUgbG9va3VwIHRhYmxlLCBpbiB1cHBlciBjYXNlCi0gICovCi0tZnByaW50 ZiAob3V0ZmlsLCBjYW5uZWQ2KTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDYpOwot IGZvciAoIG5keD0wIDsgbmR4PHdtbF9vYmpfY2hhcnNldF9wdHItPmNudCA7IG5keCsrICkKLSAg ICAgewotICAgICBjc29iaiA9IChXbWxDaGFyU2V0RGVmUHRyKSB3bWxfb2JqX2NoYXJzZXRfcHRy LT5odmVjW25keF0ub2JqcHRyOwotZGlmZiAtLWdpdCBhL3Rvb2xzL3dtbC93bWxvdXRrZXkuYyBi L3Rvb2xzL3dtbC93bWxvdXRrZXkuYwotaW5kZXggYWY0MmYyMi4uNGMxNDcyOCAxMDA2NDQKLS0t LSBhL3Rvb2xzL3dtbC93bWxvdXRrZXkuYwotKysrIGIvdG9vbHMvd21sL3dtbG91dGtleS5jCi1A QCAtNTc0LDE2ICs1NzQsMTYgQEAgaWYgKCBvdXRmaWwgPT0gTlVMTCApCi0gICAgIHByaW50ZiAo IlxuQ291bGRuJ3Qgb3BlbiBVaWxLZXlUYWIuaCIpOwotICAgICByZXR1cm47Ci0gICAgIH0KLS1m cHJpbnRmIChvdXRmaWwsIGNhbm5lZF93YXJuKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNh bm5lZF93YXJuKTsKLSAKLSAvKgotICAqIFByaW50IHRoZSBjYXNlIHNlbnNpdGl2ZSBhbmQgaW5z ZW5zaXRpdmUgdGFibGVzCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCBjYW5uZWQxKTsKLStmcHJp bnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDEpOwotIHdtbE91dHB1dFVpbEtleVRhYkJvZHkgKG91 dGZpbCwgd21sX3Rva19zZW5zX3B0ciwgJm1heGxlbiwgJm1heGtleSk7Ci0gZnByaW50ZiAob3V0 ZmlsLCBjYW5uZWQyLCBtYXhsZW4sIG1heGtleSk7Ci0gd21sT3V0cHV0VWlsS2V5VGFiQm9keSAo b3V0ZmlsLCB3bWxfdG9rX2luc2Vuc19wdHIsICZtYXhsZW4sICZtYXhrZXkpOwotLWZwcmludGYg KG91dGZpbCwgY2FubmVkMyk7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQzKTsKLSAK LSAvKgotICAqIGNsb3NlIHRoZSBvdXRwdXQgZmlsZQotQEAgLTgxMiw4ICs4MTIsOCBAQCBpZiAo IG91dGZpbCA9PSBOVUxMICkKLSAgICAgcHJpbnRmICgiXG5Db3VsZG4ndCBvcGVuIFVpbFRva05h bWUuaCIpOwotICAgICByZXR1cm47Ci0gICAgIH0KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZF93 YXJuKTsKLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDEpOwotK2ZwcmludGYgKG91dGZpbCwgIiVz IiwgY2FubmVkX3dhcm4pOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMSk7Ci0gCi0g LyoKLSAgKiBQcmludCB0aGUgdG9rZW4gbmFtZSBlbnRyaWVzCi1kaWZmIC0tZ2l0IGEvdG9vbHMv d21sL3dtbG91dG1tLmMgYi90b29scy93bWwvd21sb3V0bW0uYwotaW5kZXggODRhOTdiYi4uZGM4 ZWMwOSAxMDA2NDQKLS0tLSBhL3Rvb2xzL3dtbC93bWxvdXRtbS5jCi0rKysgYi90b29scy93bWwv d21sb3V0bW0uYwotQEAgLTIwOSw5ICsyMDksOSBAQCBpbnQJCQljdGxuZHg7CQkvKiB0byBhY2Nl c3Mgb3JkZXJlZCB2ZWN0b3IgKi8KLSAvKgotICAqIFdyaXRlIG91dCBoZWFkZXIgaW5mb3JtYXRp b24KLSAgKi8KLS1mcHJpbnRmIChvdXRmaWwsIGNhbm5lZDEpOwotK2ZwcmludGYgKG91dGZpbCwg IiVzIiwgY2FubmVkMSk7Ci0gZnByaW50ZiAob3V0ZmlsLCAiJXNcbiIsIG5hbWUpOwotLWZwcmlu dGYgKG91dGZpbCwgY2FubmVkMik7Ci0rZnByaW50ZiAob3V0ZmlsLCAiJXMiLCBjYW5uZWQyKTsK LSAKLSAvKgotICAqIEFscGhhYmV0aXplIHRoZSBjb250cm9scywgcmVhc29uLCBhbmQgYXJndW1l bnQgbGlzdHMKLUBAIC0yNjQsNyArMjY0LDcgQEAgd2hpbGUgKCBjdGxyZWYgIT0gTlVMTCApCi0g cnNubmR4ID0gMDsKLSBjdGxuZHggPSAwOwotIGlmICggbW1fY3RsX3B0ci0+Y250ID09IDAgKQot LSAgICBmcHJpbnRmIChvdXRmaWwsICJObyBjaGlsZHJlbiBhcmUgc3VwcG9ydGVkIik7Ci0rICAg IGZwcmludGYgKG91dGZpbCwgIiVzIiwgIk5vIGNoaWxkcmVuIGFyZSBzdXBwb3J0ZWQiKTsKLSB3 aGlsZSAoIHJzbm5keDxtbV9yc25fcHRyLT5jbnQgfHwgY3RsbmR4PG1tX2N0bF9wdHItPmNudCAp Ci0gICAgIHsKLSAgICAgaWYgKCBjdGxuZHggPCBtbV9jdGxfcHRyLT5jbnQgKQotQEAgLTI3NSw3 ICsyNzUsNyBAQCB3aGlsZSAoIHJzbm5keDxtbV9yc25fcHRyLT5jbnQgfHwgY3RsbmR4PG1tX2N0 bF9wdHItPmNudCApCi0gCWN0bG5keCArPSAxOwotIAl9Ci0gICAgIGVsc2UKLS0JZnByaW50ZiAo b3V0ZmlsLCAiQCIpOwotKwlmcHJpbnRmIChvdXRmaWwsICIlcyIsICJAIik7Ci0gICAgIAotICAg ICBpZiAoIHJzbm5keCA8IG1tX3Jzbl9wdHItPmNudCApCi0gCXsKLUBAIC0yODUsOSArMjg1LDkg QEAgd2hpbGUgKCByc25uZHg8bW1fcnNuX3B0ci0+Y250IHx8IGN0bG5keDxtbV9jdGxfcHRyLT5j bnQgKQotIAlyc25uZHggKz0gMTsKLSAJfQotICAgICBlbHNlCi0tCWZwcmludGYgKG91dGZpbCwg IlxuIik7Ci0rCWZwcmludGYgKG91dGZpbCwgIiVzIiwgIlxuIik7Ci0gICAgIH0KLS1mcHJpbnRm IChvdXRmaWwsIGNhbm5lZDMpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgY2FubmVkMyk7Ci0g Ci0gLyoKLSAgKiBXcml0ZSBvdXQgdGhlIGFyZ3VtZW50IHRhYmxlCi1AQCAtMzE5LDExICszMTks MTEgQEAgd2hpbGUgKCBhcmduZHggPCBtbV9hcmdfcHRyLT5jbnQgKQotIAkJCSBhcmdyZWYtPmFj dF9yZXNvdXJjZS0+c3luZGVmLT5kZmx0KTsKLSAJfQotIAllbHNlCi0tCSAgICBmcHJpbnRmIChv dXRmaWwsICIgIFxuIik7Ci0rCSAgICBmcHJpbnRmIChvdXRmaWwsICIlcyIsICIgIFxuIik7Ci0g ICAgIH0gICAgCi0gICAgIGFyZ25keCArPSAxOwotICAgICB9Ci0tZnByaW50ZiAob3V0ZmlsLCBj YW5uZWQ0KTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsIGNhbm5lZDQpOwotIAotIH0KLSAKLWRp ZmYgLS1naXQgYS90b29scy93bWwvd21scmVzb2x2ZS5jIGIvdG9vbHMvd21sL3dtbHJlc29sdmUu YwotaW5kZXggNDY0ZWYyOS4uM2I4NjQyYyAxMDA2NDQKLS0tLSBhL3Rvb2xzL3dtbC93bWxyZXNv bHZlLmMKLSsrKyBiL3Rvb2xzL3dtbC93bWxyZXNvbHZlLmMKLUBAIC0xMzQwLDcgKzEzNDAsNyBA QCBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX2FsbGNsYXNzX3B0ci0+Y250IDsgbmR4KysgKQot IC8qCi0gICogY2xvc2UgdGhlIG91dHB1dCBmaWxlCi0gICovCi0tZnByaW50ZiAob3V0ZmlsLCAi XG5cbiIpOwotK2ZwcmludGYgKG91dGZpbCwgIiVzIiwgIlxuXG4iKTsKLSBwcmludGYgKCJcbkNy ZWF0ZWQgcmVwb3J0IGZpbGUgd21sLnJlcG9ydCIpOwotIGZjbG9zZSAob3V0ZmlsKTsKLSAKLUBA IC0xMzY5LDE0ICsxMzY5LDE0IEBAIGZwcmludGYgKG91dGZpbCwgIlxuXG5cbkNsYXNzICVzOiIs IHN5bm9iai0+bmFtZSk7Ci0gc3dpdGNoICggc3lub2JqLT50eXBlICkKLSAgICAgewotICAgICBj YXNlIFdtbENsYXNzVHlwZU1ldGFjbGFzczoKLS0gICAgICAgIGZwcmludGYgKG91dGZpbCwgIlxu ICBUeXBlOiBNZXRhY2xhc3NcdCIpOwotKyAgICAgICAgZnByaW50ZiAob3V0ZmlsLCAiJXMiLCAi XG4gIFR5cGU6IE1ldGFjbGFzc1x0Iik7Ci0gCWlmICggc3lub2JqLT5zdXBlcmNsYXNzICE9IE5V TEwgKQotIAkgICAgZnByaW50ZiAob3V0ZmlsLCAiU3VwZXJjbGFzczogJXNcdCIsIHN5bm9iai0+ c3VwZXJjbGFzcyk7Ci0gCWlmICggc3lub2JqLT5wYXJlbnRjbGFzcyAhPSBOVUxMICkKLSAJICAg IGZwcmludGYgKG91dGZpbCwgIlBhcmVudGNsYXNzOiAlc1x0Iiwgc3lub2JqLT5wYXJlbnRjbGFz cyk7Ci0gCWJyZWFrOwotICAgICBjYXNlIFdtbENsYXNzVHlwZVdpZGdldDoKLS0JZnByaW50ZiAo b3V0ZmlsLCAiXG4gIFR5cGU6IFdpZGdldFx0Iik7Ci0rCWZwcmludGYgKG91dGZpbCwgIiVzIiwg IlxuICBUeXBlOiBXaWRnZXRcdCIpOwotIAlpZiAoIHN5bm9iai0+c3VwZXJjbGFzcyAhPSBOVUxM ICkKLSAJICAgIGZwcmludGYgKG91dGZpbCwgIlN1cGVyY2xhc3M6ICVzXHQiLCBzeW5vYmotPnN1 cGVyY2xhc3MpOwotIAlpZiAoIHN5bm9iai0+cGFyZW50Y2xhc3MgIT0gTlVMTCApCi1AQCAtMTM4 OCw3ICsxMzg4LDcgQEAgc3dpdGNoICggc3lub2JqLT50eXBlICkKLSAJICAgIGZwcmludGYgKG91 dGZpbCwgIkNvbnZlbmllbmNlIGZ1bmN0aW9uOiAlcyIsIHN5bm9iai0+Y29udmZ1bmMpOwotIAli cmVhazsKLSAgICAgY2FzZSBXbWxDbGFzc1R5cGVHYWRnZXQ6Ci0tCWZwcmludGYgKG91dGZpbCwg IlxuICBUeXBlOiBHYWRnZXRcdCIpOwotKwlmcHJpbnRmIChvdXRmaWwsICIlcyIsICJcbiAgVHlw ZTogR2FkZ2V0XHQiKTsKLSAJaWYgKCBzeW5vYmotPnN1cGVyY2xhc3MgIT0gTlVMTCApCi0gCSAg ICBmcHJpbnRmIChvdXRmaWwsICJTdXBlcmNsYXNzOiAlc1x0Iiwgc3lub2JqLT5zdXBlcmNsYXNz KTsKLSAJaWYgKCBzeW5vYmotPnBhcmVudGNsYXNzICE9IE5VTEwgKQotQEAgLTE0MTQsMTkgKzE0 MTQsMTkgQEAgaWYgKCBjbHNvYmotPm5vbmRpYWxvZyAhPSBOVUxMICkKLSAgKiBpcyBpbnRlbmRl ZCB0byBtYXRjaCB0aGUgd2F5IHJlc291cmNlcyBhcmUgcHJpbnRlZCBpbiB0aGUgdG9vbGtpdCBt YW51YWwsCi0gICogc28gdGhhdCBjaGVja2luZyBpcyBhcyBlYXN5IGFzIHBvc3NpYmxlLgotICAq LwotLWZwcmludGYgKG91dGZpbCwgIlxuICBBcmd1bWVudHM6Iik7Ci0rZnByaW50ZiAob3V0Zmls LCAiJXMiLCAiXG4gIEFyZ3VtZW50czoiKTsKLSB3bWxSZXNvbHZlUHJpbnRDbGFzc0FyZ3MgKG91 dGZpbCwgY2xzb2JqKTsKLSAKLSAvKgotICAqIFByaW50IHRoZSByZWFzb25zIHZhbGlkIGluIHRo ZSBjbGFzcwotICAqLwotLWZwcmludGYgKG91dGZpbCwgIlxuICBSZWFzb25zOiIpOwotK2Zwcmlu dGYgKG91dGZpbCwgIiVzIiwgIlxuICBSZWFzb25zOiIpOwotIHdtbFJlc29sdmVQcmludENsYXNz UmVhc29ucyAob3V0ZmlsLCBjbHNvYmopOwotIAotIC8qCi0gICogUHJpbnQgdGhlIGNvbnRyb2xz IHZhbGlkIGluIHRoZSBjbGFzcwotICAqLwotLWZwcmludGYgKG91dGZpbCwgIlxuICBDb250cm9s czoiKTsKLStmcHJpbnRmIChvdXRmaWwsICIlcyIsICJcbiAgQ29udHJvbHM6Iik7Ci0gZm9yICgg bmR4PTAgOyBuZHg8d21sX29ial9jbGFzc19wdHItPmNudCA7IG5keCsrICkKLSAgICAgewotICAg ICBjdHJsb2JqID0gKFdtbENsYXNzRGVmUHRyKSB3bWxfb2JqX2NsYXNzX3B0ci0+aHZlY1tuZHhd Lm9ianB0cjsKLUBAIC0xNTEyLDEwICsxNTEyLDEwIEBAIGZvciAoIG5keD0wIDsgbmR4PHdtbF9v YmpfYXJnX3B0ci0+Y250IDsgbmR4KysgKQotICAgICBzd2l0Y2ggKCByZXNyZWYtPmV4Y2x1ZGUg KQotIAl7Ci0gCWNhc2UgV21sQXR0cmlidXRlVHJ1ZToKLS0JICAgIGZwcmludGYgKG91dGZpbCwg IlxuXHRFeGNsdWRlID0gVHJ1ZTsiKTsKLSsJICAgIGZwcmludGYgKG91dGZpbCwgIiVzIiwgIlxu XHRFeGNsdWRlID0gVHJ1ZTsiKTsKLSAJICAgIGJyZWFrOwotIAljYXNlIFdtbEF0dHJpYnV0ZUZh bHNlOgotLQkgICAgZnByaW50ZiAob3V0ZmlsLCAiXG5cdEV4Y2x1ZGUgPSBGYWxzZTsiKTsKLSsJ ICAgIGZwcmludGYgKG91dGZpbCwgIiVzIiwgIlxuXHRFeGNsdWRlID0gRmFsc2U7Iik7Ci0gCSAg ICBicmVhazsKLSAJfQotICAgICBpZiAoIHJlc3JlZi0+ZGZsdCAhPSBOVUxMICkKLUBAIC0xNTU4 LDEwICsxNTU4LDEwIEBAIGlmICggY29uc3RyICkKLSAJc3dpdGNoICggcmVzcmVmLT5leGNsdWRl ICkKLSAJICAgIHsKLSAJICAgIGNhc2UgV21sQXR0cmlidXRlVHJ1ZToKLS0JICAgICAgICBmcHJp bnRmIChvdXRmaWwsICJcblx0RXhjbHVkZSA9IFRydWU7Iik7Ci0rCSAgICAgICAgZnByaW50ZiAo b3V0ZmlsLCAiJXMiLCAiXG5cdEV4Y2x1ZGUgPSBUcnVlOyIpOwotIAkJYnJlYWs7Ci0gCSAgICBj YXNlIFdtbEF0dHJpYnV0ZUZhbHNlOgotLQkJZnByaW50ZiAob3V0ZmlsLCAiXG5cdEV4Y2x1ZGUg PSBGYWxzZTsiKTsKLSsJCWZwcmludGYgKG91dGZpbCwgIiVzIiwgIlxuXHRFeGNsdWRlID0gRmFs c2U7Iik7Ci0gCQlicmVhazsKLSAJICAgIH0KLSAJaWYgKCByZXNyZWYtPmRmbHQgIT0gTlVMTCAp Ci1AQCAtMTYzMiwxMCArMTYzMiwxMCBAQCBmb3IgKCBuZHg9MCA7IG5keDx3bWxfb2JqX3JlYXNv bl9wdHItPmNudCA7IG5keCsrICkKLSAgICAgc3dpdGNoICggcmVzcmVmLT5leGNsdWRlICkKLSAJ ewotIAljYXNlIFdtbEF0dHJpYnV0ZVRydWU6Ci0tCSAgICBmcHJpbnRmIChvdXRmaWwsICJcblx0 RXhjbHVkZSA9IFRydWU7Iik7Ci0rCSAgICBmcHJpbnRmIChvdXRmaWwsICIlcyIsICJcblx0RXhj bHVkZSA9IFRydWU7Iik7Ci0gCSAgICBicmVhazsKLSAJY2FzZSBXbWxBdHRyaWJ1dGVGYWxzZToK LS0JICAgIGZwcmludGYgKG91dGZpbCwgIlxuXHRFeGNsdWRlID0gRmFsc2U7Iik7Ci0rCSAgICBm cHJpbnRmIChvdXRmaWwsICIlcyIsICJcblx0RXhjbHVkZSA9IEZhbHNlOyIpOwotIAkgICAgYnJl YWs7Ci0gCX0KLSAgICAgcmVzb2JqLT5yZWZfcHRyID0gTlVMTDsKLS0tIAotMi4xMy4wCi0KCmRp ZmYgLS1naXQgYS9tb3RpZi0yLjMuNC1iaW5kaW5ncy5wYXRjaCBiL21vdGlmLTIuMy40LWJpbmRp bmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYWFhNTczLi4wMDAwMDAw Ci0tLSBhL21vdGlmLTIuMy40LWJpbmRpbmdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYg KzAsMCBAQAotZGlmZiAtdXAgb3Blbm1vdGlmLTIuMy4zL2NvbmZpZ3VyZS5hYy5iaW5kaW5ncyBv cGVubW90aWYtMi4zLjMvY29uZmlndXJlLmFjCi0tLS0gb3Blbm1vdGlmLTIuMy4zL2NvbmZpZ3Vy ZS5hYy5iaW5kaW5ncwkyMDA5LTEwLTI3IDE3OjEwOjIzLjAwMDAwMDAwMCArMDEwMAotKysrIG9w ZW5tb3RpZi0yLjMuMy9jb25maWd1cmUuYWMJMjAxMC0wMy0xOSAxMToxMjozOS4wMDAwMDAwMDAg KzAxMDAKLUBAIC0xODUsNyArMTg1LDcgQEAgQUNfU1VCU1QoTVdNUkNESVIpCi0gSU5DRElSPSIk e2luY2x1ZGVkaXJ9L1gxMSIKLSBBQ19TVUJTVChJTkNESVIpCi0gCi0tWE1CSU5ERElSX0ZBTExC QUNLPSIke2xpYmRpcn0vWDExL2JpbmRpbmdzIgotK1hNQklORERJUl9GQUxMQkFDSz0iJHtkYXRh ZGlyfS9YMTEvYmluZGluZ3MiCi0gQUNfU1VCU1QoWE1CSU5ERElSX0ZBTExCQUNLKQotIAotIFJN PSJybSAtZiIKLWRpZmYgLXVwIG9wZW5tb3RpZi0yLjMuMy9kb2MvbWFuL21hbjMvVmlydHVhbEJp bmRpbmdzLjMuYmluZGluZ3Mgb3Blbm1vdGlmLTIuMy4zL2RvYy9tYW4vbWFuMy9WaXJ0dWFsQmlu ZGluZ3MuMwotLS0tIG9wZW5tb3RpZi0yLjMuMy9kb2MvbWFuL21hbjMvVmlydHVhbEJpbmRpbmdz LjMuYmluZGluZ3MJMjAwNS0wNy0yMCAxMzo0NzoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBvcGVu bW90aWYtMi4zLjMvZG9jL21hbi9tYW4zL1ZpcnR1YWxCaW5kaW5ncy4zCTIwMTAtMDMtMTkgMTE6 MTE6NDIuMDAwMDAwMDAwICswMTAwCi1AQCAtOTAsNyArOTAsNyBAQCBiaW5kaW5ncyBjb250YWlu ZWQgaW4gdGhhdCBmaWxlXCYuCi0gSWYgaXQgaGFzIGZvdW5kIG5vIGJpbmRpbmdzLCBNb3RpZiBu ZXh0IGxvb2tzIGZvciB0aGUgZmlsZQotIFxmQnhtYmluZFwmLmFsaWFzXGZQIGluIHRoZSBkaXJl Y3Rvcnkgc3BlY2lmaWVkIGJ5IHRoZSBlbnZpcm9ubWVudAotIHZhcmlhYmxlIFxmQlhNQklORERJ UlxmUCwgaWYgXGZCWE1CSU5ERElSXGZQIGlzIHNldCwgb3IgaW4gdGhlIGRpcmVjdG9yeQotLVxm Qi91c3IvbGliL1htL2JpbmRpbmdzXGZQIGlmIFxmQlhNQklORERJUlxmUCBpcyBub3Qgc2V0XCYu Ci0rXGZCL3Vzci9zaGFyZS9YMTEvYmluZGluZ3NcZlAgaWYgXGZCWE1CSU5ERElSXGZQIGlzIG5v dCBzZXRcJi4KLSBJZiB0aGlzIGZpbGUgZXhpc3RzIE1vdGlmIHNlYXJjaGVzIGl0IGZvciBhIHBh dGhuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUKLSB2ZW5kb3Igc3RyaW5nIG9yIHdpdGggdGhlIHZl bmRvciBzdHJpbmcgYW5kIHZlbmRvciByZWxlYXNlXCYuCi0gSWYgaXQgZmluZHMgc3VjaCBhIHBh dGhuYW1lIGFuZCBpZiB0aGF0IGZpbGUgZXhpc3RzLCBNb3RpZiBsb2FkcyB0aGUKLWRpZmYgLXVw IG9wZW5tb3RpZi0yLjMuMy9saWIvWG0vWG1vc1AuaC5iaW5kaW5ncyBvcGVubW90aWYtMi4zLjMv bGliL1htL1htb3NQLmgKLS0tLSBvcGVubW90aWYtMi4zLjMvbGliL1htL1htb3NQLmguYmluZGlu Z3MJMjAwMi0wNi0xNyAyMjozNjozMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBvcGVubW90aWYtMi4z LjMvbGliL1htL1htb3NQLmgJMjAxMC0wMy0xOSAxMToxMTo0Mi4wMDAwMDAwMDAgKzAxMDAKLUBA IC0xODgsNyArMTg4LDcgQEAgZXh0ZXJuICJDIiB7Ci0gCi0gI2RlZmluZSBYTUJJTkRESVIgIlhN QklORERJUiIKLSAjaWZuZGVmIFhNQklORERJUl9GQUxMQkFDSwotLSNkZWZpbmUgWE1CSU5ERElS X0ZBTExCQUNLICIvdXNyL2xpYi9YbS9iaW5kaW5ncyIKLSsjZGVmaW5lIFhNQklORERJUl9GQUxM QkFDSyAiL3Vzci9zaGFyZS9YMTEvYmluZGluZ3MiCi0gI2VuZGlmCi0gI2RlZmluZSBYTUJJTkRG SUxFICJ4bWJpbmQuYWxpYXMiCi0gI2RlZmluZSBNT1RJRkJJTkQgIi5tb3RpZmJpbmQiCgpkaWZm IC0tZ2l0IGEvbW90aWYtMi4zLjQtbXdtcmNfZGlyLnBhdGNoIGIvbW90aWYtMi4zLjQtbXdtcmNf ZGlyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmE0MmRjLi4wMDAwMDAw Ci0tLSBhL21vdGlmLTIuMy40LW13bXJjX2Rpci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkz ICswLDAgQEAKLWRpZmYgLXVwIG9wZW5tb3RpZi0yLjMuMy9jbGllbnRzL213bS9XbVJlc1BhcnNl LmMubXdtcmNfZGlyIG9wZW5tb3RpZi0yLjMuMy9jbGllbnRzL213bS9XbVJlc1BhcnNlLmMKLS0t LSBvcGVubW90aWYtMi4zLjMvY2xpZW50cy9td20vV21SZXNQYXJzZS5jLm13bXJjX2RpcgkyMDA5 LTA2LTIyIDIzOjUxOjUxLjAwMDAwMDAwMCArMDIwMAotKysrIG9wZW5tb3RpZi0yLjMuMy9jbGll bnRzL213bS9XbVJlc1BhcnNlLmMJMjAxMC0wMy0yMyAxMzozNzowMy4wMDAwMDAwMDAgKzAxMDAK LUBAIC0yNDAzLDcgKzI0MDMsNyBAQCBGSUxFICpGb3BlbkNvbmZpZ0ZpbGUgKHZvaWQpCi0gI2Vu ZGlmIC8qIFBBTkVMSVNUICovCi0gCi0gI2lmbmRlZiBNV01SQ0RJUgotLSNkZWZpbmUgTVdNUkNE SVIgIi91c3IvbGliL1gxMSIKLSsjZGVmaW5lIE1XTVJDRElSICIvZXRjL1gxMS9td20iCi0gI2Vu ZGlmCi0gICAgIGlmIChMQU5HICE9IE5VTEwpCi0gICAgIHsKLWRpZmYgLXVwIG9wZW5tb3RpZi0y LjMuMy9jb25maWd1cmUuYWMubXdtcmNfZGlyIG9wZW5tb3RpZi0yLjMuMy9jb25maWd1cmUuYWMK LS0tLSBvcGVubW90aWYtMi4zLjMvY29uZmlndXJlLmFjLm13bXJjX2RpcgkyMDA5LTEwLTI3IDE3 OjEwOjIzLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5tb3RpZi0yLjMuMy9jb25maWd1cmUuYWMJ MjAxMC0wMy0yMyAxMzozODozMy4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xNzksNyArMTc5LDcgQEAg QUNfU1VCU1QoQ0RFX0NPTkZJR1VSQVRJT05fVE9QKQotIExJQkRJUj0iJHtsaWJkaXJ9L1gxMSIK LSBBQ19TVUJTVChMSUJESVIpCi0gCi0tTVdNUkNESVI9IiR7bGliZGlyfS9YMTEiCi0rTVdNUkNE SVI9Ii9ldGMvWDExL213bSIKLSBBQ19TVUJTVChNV01SQ0RJUikKLSAKLSBJTkNESVI9IiR7aW5j bHVkZWRpcn0vWDExIgotZGlmZiAtdXAgb3Blbm1vdGlmLTIuMy4zL2RvYy9tYW4vbWFuMS9td20u MS5td21yY19kaXIgb3Blbm1vdGlmLTIuMy4zL2RvYy9tYW4vbWFuMS9td20uMQotLS0tIG9wZW5t b3RpZi0yLjMuMy9kb2MvbWFuL21hbjEvbXdtLjEubXdtcmNfZGlyCTIwMDItMDEtMDUgMTY6MjE6 MTEuMDAwMDAwMDAwICswMTAwCi0rKysgb3Blbm1vdGlmLTIuMy4zL2RvYy9tYW4vbWFuMS9td20u MQkyMDEwLTAzLTIzIDEzOjM3OjAzLjAwMDAwMDAwMCArMDEwMAotQEAgLTY3OCw4ICs2NzgsOCBA QCBpcyBzZXQsIFxmQm13bVxmUCBsb29rcyBmb3IgXGZJJEhPTUUvJExBCi0gXGZCJEhPTUVcZlAv XGZCY29uZmlnRmlsZVxmUFwmLiBJZiB0aGUgXGZJY29uZmlnRmlsZVxmUCBwYXRobmFtZSBkb2Vz IG5vdCBiZWdpbiB3aXRoICJ+LyIgb3IgIi8iLCBcZkJtd21cZlAgY29uc2lkZXJzIGl0IHRvIGJl IHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XCYuIElmCi0gdGhlIFxm SWNvbmZpZ0ZpbGVcZlAgcmVzb3VyY2UgaXMgbm90IHNwZWNpZmllZAotIG9yIGlmIHRoYXQgZmls ZSBkb2VzIG5vdCBleGlzdCwgXGZCbXdtXGZQIHVzZXMgc2V2ZXJhbCBkZWZhdWx0Ci0tcGF0aHMg dG8gZmluZCBhIGNvbmZpZ3VyYXRpb24gZmlsZVwmLiBUaGUgb3JkZXIgb2YgdGhlIHNlYXJjaCBp cyBzaG93biBiZWxvdzogXGZCL3Vzci9YMTFSNi9saWIvWDExLyRMQU5HL3N5c3RlbVwmLm13bXJj XGZQXChkZwotLVxmQi91c3IvWDExUjYvbGliL1gxMS9zeXN0ZW1cJi5td21yY1xmUFwoZGcgUGF0 aHMgbWFya2VkIHdpdGggXCYnXChkZ1wmJyBhcmUKLStwYXRocyB0byBmaW5kIGEgY29uZmlndXJh dGlvbiBmaWxlXCYuIFRoZSBvcmRlciBvZiB0aGUgc2VhcmNoIGlzIHNob3duIGJlbG93OiBcZkIv ZXRjL1gxMS9td20vJExBTkcvc3lzdGVtXCYubXdtcmNcZlBcKGRnCi0rXGZCL2V0Yy9YMTEvbXdt L3N5c3RlbVwmLm13bXJjXGZQXChkZyBQYXRocyBtYXJrZWQgd2l0aCBcJidcKGRnXCYnIGFyZQot IGltcGxlbWVudGF0aW9uIGRlcGVuZGVudFwmLgotIC5JUCAiXGZJZGVpY29uaWZ5S2V5Rm9jdXNc ZlBcIChjbGFzc1wgIFxmSURlaWNvbmlmeUtleUZvY3VzXGZQKSIgMTAKLSBUaGlzIHJlc291cmNl IGFwcGxpZXMgb25seSB3aGVuIHRoZSBrZXlib2FyZCBpbnB1dCBmb2N1cyBwb2xpY3kgaXMgZXhw bGljaXRcJi4KLUBAIC0xMzQ0LDkgKzEzNDQsOSBAQCB0aGUgc2hlbGwgdG8gdXNlIHdoZW4gZXhl Y3V0aW5nIGNvbW1hbmRzCi0gZnVuY3Rpb25cJi4KLSAuU1MgIkZpbGVzIgotIC5QUAotLVxmQi91 c3IvWDExUjYvbGliL1gxMS8kTEFORy9zeXN0ZW1cJi5td21yY1xmUAotK1xmQi9ldGMvWDExL213 bS8kTEFORy9zeXN0ZW1cJi5td21yY1xmUAotIC5QUAotLVxmQi91c3IvWDExUjYvbGliL1gxMS9z eXN0ZW1cJi5td21yY1xmUAotK1xmQi9ldGMvWDExL213bS9zeXN0ZW1cJi5td21yY1xmUAotIC5Q UAotIFxmQi91c3IvWDExUjYvbGliL1gxMS9hcHAtZGVmYXVsdHMvTXdtXGZQCi0gLlBQCi1kaWZm IC11cCBvcGVubW90aWYtMi4zLjMvZG9jL21hbi9tYW40L213bXJjLjQubXdtcmNfZGlyIG9wZW5t b3RpZi0yLjMuMy9kb2MvbWFuL21hbjQvbXdtcmMuNAotLS0tIG9wZW5tb3RpZi0yLjMuMy9kb2Mv bWFuL21hbjQvbXdtcmMuNC5td21yY19kaXIJMjAwMi0wMS0wNSAxNjoyMToxMi4wMDAwMDAwMDAg KzAxMDAKLSsrKyBvcGVubW90aWYtMi4zLjMvZG9jL21hbi9tYW40L213bXJjLjQJMjAxMC0wMy0y MyAxMzozNzowMy4wMDAwMDAwMDAgKzAxMDAKLUBAIC01Nyw3ICs1Nyw3IEBAIGZpbGUgdGhhdCBj b250cm9scyBtdWNoIG9mIHRoZSBiZWhhdmlvciAKLSBJdCBjb250YWlucyBkZXNjcmlwdGlvbnMg b2YgcmVzb3VyY2VzIHRoYXQgY2Fubm90IGVhc2lseSBiZQotIHdyaXR0ZW4gdXNpbmcgc3RhbmRh cmQgWCBXaW5kb3cgU3lzdGVtLCBWZXJzaW9uIDExIHJlc291cmNlIHN5bnRheFwmLiBUaGUgcmVz b3VyY2UKLSBkZXNjcmlwdGlvbiBmaWxlIGNvbnRhaW5zIGVudHJpZXMgdGhhdCBhcmUgcmVmZXJy ZWQgdG8gYnkgWCByZXNvdXJjZXMgaW4KLS1kZWZhdWx0cyBmaWxlcyAoZm9yIGV4YW1wbGUsIFxm Qi91c3IvWDExUjYvbGliL1gxMS9hcHAtZGVmYXVsdHMvTXdtXGZQKQotK2RlZmF1bHRzIGZpbGVz IChmb3IgZXhhbXBsZSwgXGZCL3Vzci9zaGFyZS9YMTEvYXBwLWRlZmF1bHRzL013bVxmUCkKLSBv ciBpbiB0aGUgXGZCUkVTT1VSQ0VfTUFOQUdFUlxmUCBwcm9wZXJ0eSBvbiB0aGUKLSByb290IHdp bmRvd1wmLiBGb3IgZXhhbXBsZSwgdGhlIHJlc291cmNlIGRlc2NyaXB0aW9uIGZpbGUgZW5hYmxl cyB5b3UgdG8gc3BlY2lmeQotIGRpZmZlcmVudCB0eXBlcyBvZiB3aW5kb3cgbWVudXM7IGhvd2V2 ZXIsIGFuIFggcmVzb3VyY2UgaXMgdXNlZCB0byBzcGVjaWZ5Ci1AQCAtNzIsOCArNzIsOCBAQCBv biBhIHBlci11c2VyIGJhc2lzOgotIC5uZgotIFxmKENXJEhPTUUvJExBTkcvXCYubXdtcmMKLSAk SE9NRS9cJi5td21yYwotLS91c3IvWDExUjYvbGliL1gxMS8kTEFORy9zeXN0ZW1cJi5td21yYwot LS91c3IvWDExUjYvbGliL1gxMS9zeXN0ZW1cJi5td21yY1xmUgotKy9ldGMvWDExL213bS8kTEFO Ry9zeXN0ZW1cJi5td21yYwotKy9ldGMvWDExL213bS9zeXN0ZW1cJi5td21yY1xmUgotIC5maQot IC5QUAotIC5QUAotQEAgLTg0LDcgKzg0LDcgQEAgcmVzb3VyY2VcJi4gVGhlIGZvbGxvd2luZyBz aG93cyBob3cgYSBkaQotIGJlIHNwZWNpZmllZCBmcm9tIHRoZSBjb21tYW5kIGxpbmU6Ci0gLlBQ Ci0gLm5mCi0tXGYoQ1cvdXNyL1gxMVI2L2Jpbi9YMTEvbXdtIC14cm0gIm13bSpjb25maWdGaWxl OiBteW13bXJjIlxmUgotK1xmKENXL3Vzci9iaW4vbXdtIC14cm0gIm13bSpjb25maWdGaWxlOiBt eW13bXJjIlxmUgotIC5maQotIC5QUAotIC5TUyAiUmVzb3VyY2UgVHlwZXMiCi1AQCAtNjI2LDgg KzYyNiw4IEBAIGlzIG5vdCB3aGF0IHlvdSBleHBlY3RcJi4KLSAubmYKLSBcZkIkSE9NRS8kTEFO Ry9cJi5td21yYwotICRIT01FL1wmLm13bXJjCi0tL3Vzci9YMTFSNi9saWIvWDExLyRMQU5HL3N5 c3RlbVwmLm13bXJjCi0tL3Vzci9YMTFSNi9saWIvWDExL3N5c3RlbVwmLm13bXJjXGZQCi0rL2V0 Yy9YMTEvbXdtLyRMQU5HL3N5c3RlbVwmLm13bXJjCi0rL2V0Yy9YMTEvbXdtL3N5c3RlbVwmLm13 bXJjXGZQCi0gLmZpCi0gLlNIICJSRUxBVEVEIElORk9STUFUSU9OIgotIC5QUAoKZGlmZiAtLWdp dCBhL21vdGlmLTIuMy40LW5vX2RlbW9zLnBhdGNoIGIvbW90aWYtMi4zLjQtbm9fZGVtb3MucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmMWI5MjYuLjAwMDAwMDAKLS0tIGEv bW90aWYtMi4zLjQtbm9fZGVtb3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA Ci1kaWZmIC11cCBvcGVubW90aWYtMi4zLjMvTWFrZWZpbGUuYW0ubm9fZGVtb3Mgb3Blbm1vdGlm LTIuMy4zL01ha2VmaWxlLmFtCi0tLS0gb3Blbm1vdGlmLTIuMy4zL01ha2VmaWxlLmFtLm5vX2Rl bW9zCTIwMDgtMDktMTkgMTY6Mzg6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgb3Blbm1vdGlmLTIu My4zL01ha2VmaWxlLmFtCTIwMTAtMDMtMjMgMTM6NTM6MTMuMDAwMDAwMDAwICswMTAwCi1AQCAt MjksNyArMjksNyBAQCBTVUJESVJTCT0gYmluZGluZ3MgYml0bWFwcyBcCi0gICAgICAgICAgICAg IGluY2x1ZGUgXAotICAgICAgICAgICAgICB0b29scyBcCi0gICAgICAgICAgICAgIGNsaWVudHMg XAotLSAgICAgICAgICAgICBkb2MgXAotLSAgICAgICAgICAgICBkZW1vcwotKyAgICAgICAgICAg ICBkb2MKLSsKLSBBVVRPTUFLRV9PUFRJT05TID0gMS40Ci0gQUNMT0NBTF9BTUZMQUdTID0gLUkg LgoKZGlmZiAtLWdpdCBhL21vdGlmLWM5OS1zdHJpbmcucGF0Y2ggYi9tb3RpZi1jOTktc3RyaW5n LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjA3YjcxLi4wMDAwMDAwCi0t LSBhL21vdGlmLWM5OS1zdHJpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBA Ci1VbmNvbmRpdGlvbmFsbHkgaW5jbHVkZSA8c3RyaW5nLmg+LCB0byBhdm9pZCBpbXBsaWNpdCBm dW5jdGlvbgotZGVjbGFyYXRpb25zLiAgbGliWHBtIGRlZmluZXMgU1lTViBkdXJpbmcgdGhlIGJ1 aWxkLCB3aGljaCBpcyB3aHkgdGhleQotZG8gbm90IHNlZSB0IGhpcyBpc3NzdWUuCi0KLWRpZmYg LS1naXQgYS9saWIvWG0vWHBtSS5oIGIvbGliL1htL1hwbUkuaAotaW5kZXggYmJiYTAyYjBjYWMx ZjkxZS4uMzQ2OGYyZDFlZGY4NGY3YyAxMDA2NDQKLS0tLSBhL2xpYi9YbS9YcG1JLmgKLSsrKyBi L2xpYi9YbS9YcG1JLmgKLUBAIC0xMTgsOSArMTE4LDkgQEAgZXh0ZXJuICJDIiB7Ci0gZXh0ZXJu IEZJTEUgKnBvcGVuKCk7Ci0gI2VuZGlmCi0gCi0tI2lmIGRlZmluZWQoU1lTVikgfHwgZGVmaW5l ZChTVlI0KSB8fCBkZWZpbmVkKFZNUykgfHwgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZCAoX1NW SURfU09VUkNFKQotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSsjaWYgZGVmaW5lZChTWVNWKSB8 fCBkZWZpbmVkKFNWUjQpIHx8IGRlZmluZWQoVk1TKSB8fCBkZWZpbmVkKFdJTjMyKSB8fCBkZWZp bmVkIChfU1ZJRF9TT1VSQ0UpCi0gI2lmbmRlZiBpbmRleAotICNkZWZpbmUgaW5kZXggc3RyY2hy Ci0gI2VuZGlmCgpkaWZmIC0tZ2l0IGEvbW90aWYtYzk5LXZvaWQtc3ByaW50Zi5wYXRjaCBiL21v dGlmLWM5OS12b2lkLXNwcmludGYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDM4MWUxYmIuLjAwMDAwMDAKLS0tIGEvbW90aWYtYzk5LXZvaWQtc3ByaW50Zi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVN0b3AgZGVmaW5pbmcgVk9JRF9TUFJJTlRGLCBm b2xsb3dpbmcgd2hhdCB1cHN0cmVhbSBsaWJYcG0gZG9lcy4gIFRoZQotY2hlY2sgaGFzIGFuIGlt cGxpY2l0IGRlY2xhcmF0aW9uIG9mIGV4aXQgYW5kIGFuIGltcGxpY2l0IGludCwgc28gaXQKLXdp bGwgZmFpbCB0byBidWlsZCB3aXRoIGZ1dHVyZSBjb21waWxlcnMuCi0KLWRpZmYgLS1naXQgYS9j b25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDNiNDEyMzYxZTZmNDNkYTQuLjZjYmVi MmY1ZWVhMjM1ZWIgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5h YwotQEAgLTEyMCw3ICsxMjAsNiBAQCBBQ19GVU5DX1NUUkNPTEwKLSBBQ19GVU5DX1NUUkZUSU1F Ci0gQUNfRlVOQ19GT1JLKFtdKQotIEFDX0ZVTkNfVlBSSU5URgotLUFNX0ZVTkNfVk9JRF9TUFJJ TlRGCi0gQUNfQ0hFQ0tfRlVOQ1Mod2NzbGVuIHdjc2NweSB3Y3NuY3B5IHdjc2NociB3Y3NjYXQg d2NzbmNhdCBnZXRjd2QgZ2V0dGltZW9mZGF5IG1rZGlyIHJlX2NvbXAgcmVnY21wIHNlbGVjdCBz dHJjc3BuIHN0cmVycm9yIHN0cnN0ciBzdHJ0b2Qgc3RydG9sIHVuYW1lKQotIEFDX0NIRUNLX0ZV TkNTKHN0cmR1cCwsQUNfREVGSU5FKE5FRURfU1RSRFVQLCAxLCBubyBzdHJkdXApKQotIEFDX0NI RUNLX0ZVTkNTKHN0cmNhc2VjbXAsLEFDX0RFRklORShORUVEX1NUUkNBU0VDTVAsIDEsIG5vIHN0 cmNhc2VjbXApKQotLS0tIG1vdGlmLTIuMy44L2FjaW5jbHVkZS5tNH4JMjAyNS0wOC0xNCAxMzoy NzoxOS4wNTgwNTE0NDIgLTA1MDAKLSsrKyBtb3RpZi0yLjMuOC9hY2luY2x1ZGUubTQJMjAyNS0w OC0xNCAxMzoyOTowNC44Njg2NzU2MDkgLTA1MDAKLUBAIC00NiwxOCArNDYsNiBAQAotIGZpCi0g XSkKLSAKLS1kbmwgVGhpcyB0ZXN0IGlzIG5vdCB2ZXJ5IHJlbGlhYmxlIHByb2JhYmx5IC4uLgot LUFDX0RFRlVOKFtBTV9GVU5DX1ZPSURfU1BSSU5URl0sCi0tW0FDX0NBQ0hFX0NIRUNLKHdoZXRo ZXIgc3ByaW50ZiByZXR1cm5zIHZvaWQsIGFjX2N2X2Z1bmNfdm9pZF9zcHJpbnRmLAotLVtBQ19U UllfUlVOKFsjaW5jbHVkZSA8c3RkaW8uaD4KLS1pbnQgc3ByaW50ZigpOyBtYWluKCkgeyBleGl0 KHNwcmludGYoIi4iKSk7IH1dLAotLSAgYWNfY3ZfZnVuY192b2lkX3NwcmludGY9bm8sIGFjX2N2 X2Z1bmNfdm9pZF9zcHJpbnRmPXllcywgYWNfY3ZfZnVuY192b2lkX3NwcmludGY9eWVzKV0pCi0t aWYgdGVzdCAkYWNfY3ZfZnVuY192b2lkX3NwcmludGYgPSBubzsgdGhlbgotLSAgQUNfREVGSU5F KFZPSURfU1BSSU5URiwxLAotLSAgW0RlZmluZSBpZiBzcHJpbnRmIGRvZXNuJ3QgcmV0dXJuIHRo ZSBudW1iZXIgb2YgY2hhcnMgd3JpdHRlbl0pCi0tZmkKLS1dKQotLQotIGRubCBUaGlzIHRlc3Rz IHdoZXRoZXIgd2VhayBhbGlhc2VzIGFyZSBzdXBwb3J0ZWQuCi0gQUNfREVGVU4oW1dFQUtfQUxJ QVNfU1VQUE9SVF0sCi0gW0FDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgd2VhayBhbGlhc2VzIGFyZSBz dXBwb3J0ZWQsIGFjX2N2X3dlYWtfYWxpYXNfc3VwcG9ydCwKCmRpZmYgLS1naXQgYS9tb3RpZi1j b25maWd1cmUtYzk5LnBhdGNoIGIvbW90aWYtY29uZmlndXJlLWM5OS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNjNhMDgxYS4uMDAwMDAwMAotLS0gYS9tb3RpZi1jb25maWd1 cmUtYzk5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotQW5vdGhlciBpbXBs aWNpdCBkZWNsYXJhdGlvbiBvZiBleGl0IGluIHRoZSAtRFhUSFJFQURTIGNoZWNrLCB3aGljaAot d2lsbCBnbyB3cm9uZyB3aXRoIGZ1dHVyZSBjb21waWxlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBp bXBsaWNpdAotZnVuY3Rpb24gZGVjbGFyYXRpb25zLgotCi1kaWZmIC0tZ2l0IGEvYWNpbmNsdWRl Lm00IGIvYWNpbmNsdWRlLm00Ci1pbmRleCA2MTcwNmYzZTYzZDk0ZDhhLi44OGVkZmNlM2QxNjlh MjY3IDEwMDY0NAotLS0tIGEvYWNpbmNsdWRlLm00Ci0rKysgYi9hY2luY2x1ZGUubTQKLUBAIC0y Miw5ICsyMiw5IEBAIGludCBtYWluKCkgewotIEJvb2xlYW4gYnJjOwotIGJyYz1YdFRvb2xraXRU aHJlYWRJbml0aWFsaXplKCk7Ci0gaWYgKFRydWU9PWJyYykKLS0gIGV4aXQoMCk7Ci0rICByZXR1 cm4gMDsKLSBlbHNlCi0tICBleGl0KDEpOwotKyAgcmV0dXJuIDE7Ci0gfQotIF0sCi0gbHRfY3Zf eHRocmVhZHM9eWVzLAoKZGlmZiAtLWdpdCBhL21vdGlmLnNwZWMgYi9tb3RpZi5zcGVjCmluZGV4 IDhjZGQzMjMuLjA4YjgxMDcgMTAwNjQ0Ci0tLSBhL21vdGlmLnNwZWMKKysrIGIvbW90aWYuc3Bl YwpAQCAtMSwxNCArMSwxMSBAQAogU3VtbWFyeTogUnVuLXRpbWUgbGlicmFyaWVzIGFuZCBwcm9n cmFtcwogTmFtZTogbW90aWYKLVZlcnNpb246IDIuMy44Ci1SZWxlYXNlOiA0JXs/ZGlzdH0KLSMg QXV0b21hdGljYWxseSBjb252ZXJ0ZWQgZnJvbSBvbGQgZm9ybWF0OiBMR1BMdjIrIC0gcmV2aWV3 IGlzIGhpZ2hseSByZWNvbW1lbmRlZC4KK1ZlcnNpb246IDIuNS4yCitSZWxlYXNlOiAxJXs/ZGlz dH0KIExpY2Vuc2U6IExpY2Vuc2VSZWYtQ2FsbGF3YXktTEdQTHYyKwotU291cmNlOiBodHRwOi8v ZG93bmxvYWRzLnNmLm5ldC9tb3RpZi9tb3RpZi0le3ZlcnNpb259LnRhci5negorVVJMOiBodHRw czovL2dpdGh1Yi5jb20vdGhlbnRlbmFhci9tb3RpZgorU291cmNlMDogJXt1cmx9L2FyY2hpdmUv diV7dmVyc2lvbn0vbW90aWYtJXt2ZXJzaW9ufS50YXIuZ3oKIFNvdXJjZTE6IHhtYmluZAotVVJM OiBodHRwOi8vd3d3Lm1vdGlmem9uZS5uZXQvCi1PYnNvbGV0ZXM6IG9wZW5tb3RpZiA8IDIuMy40 Ci1Qcm92aWRlczogb3Blbm1vdGlmID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiBSZXF1aXJlczog eG9yZy14MTEteGJpdG1hcHMKIAogQnVpbGRSZXF1aXJlczogbWFrZQpAQCAtMTksMzkgKzE2LDcg QEAgQnVpbGRSZXF1aXJlczogbGlianBlZy1kZXZlbCBsaWJwbmctZGV2ZWwKIEJ1aWxkUmVxdWly ZXM6IGxpYlhmdC1kZXZlbCBsaWJYbXUtZGV2ZWwgbGliWHAtZGV2ZWwgbGliWHQtZGV2ZWwgbGli WGV4dC1kZXZlbAogQnVpbGRSZXF1aXJlczogeG9yZy14MTEteGJpdG1hcHMKIEJ1aWxkUmVxdWly ZXM6IHBlcmwtaW50ZXJwcmV0ZXIKLQotUGF0Y2gyMjogbW90aWYtMi4zLjQtbm9fZGVtb3MucGF0 Y2gKLVBhdGNoMjM6IG9wZW5Nb3RpZi0yLjIuMy11aWxfbGliLnBhdGNoCi1QYXRjaDQzOiBvcGVu TW90aWYtMi4zLjAtcmdidHh0LnBhdGNoCi1QYXRjaDQ1OiBtb3RpZi0yLjMuNC1td21yY19kaXIu cGF0Y2gKLVBhdGNoNDY6IG1vdGlmLTIuMy40LWJpbmRpbmdzLnBhdGNoCi1QYXRjaDQ3OiBvcGVu TW90aWYtMi4zLjAtbm9fWDExUjYucGF0Y2gKLSMgRlRCRlMgIzE0NDg4MTkKLVBhdGNoNDg6IG1v dGlmLTIuMy40LUZpeC1pc3N1ZXMtd2l0aC1XZXJyb3ItZm9ybWF0LXNlY3VyaXR5LnBhdGNoCi1Q YXRjaDQ5OiBtb3RpZi1jb25maWd1cmUtYzk5LnBhdGNoCi1QYXRjaDUwOiBtb3RpZi1jOTktdm9p ZC1zcHJpbnRmLnBhdGNoCi1QYXRjaDUxOiBtb3RpZi1jOTktc3RyaW5nLnBhdGNoCi0jIENWRS0y MDIzLTQzNzg4Ci1QYXRjaDU1OiAwMDAxLUZpeC1DVkUtMjAyMy00Mzc4OC1PdXQtb2YtYm91bmRz LXJlYWQtaW4tWHBtQ3JlYXRlWHAucGF0Y2gKLSMgQ1ZFLTIwMjMtNDM3ODkKLVBhdGNoNTY6IDAw MDEtRml4LUNWRS0yMDIzLTQzNzg5LU91dC1vZi1ib3VuZHMtcmVhZC1vbi1YUE0td2l0aC1jby5w YXRjaAotIyBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL21vdGlmL2NvZGUvbWVyZ2UtcmVxdWVz dHMvOS8KLVBhdGNoNTg6IDAwMDEtYnVpbGQtQ2hlY2stZm9yLVhpbmVyYW1hLWF2YWlsYWJpbGl0 eS5wYXRjaAotUGF0Y2g1OTogMDAwMi1YbS1EaXNwbGF5LUFkZC1vcHRpb25hbC1YaW5lcmFtYS1z dXBwb3J0LnBhdGNoCi1QYXRjaDYwOiAwMDAzLVhtLU1lbnVTaGVsbC1Vc2UtWGluZXJhbWEtdG8t cGxhY2UtbWVudXMucGF0Y2gKLVBhdGNoNjE6IDAwMDQtWG0tRHJvcERvd24tVXNlLVhpbmVyYW1h LWZvci1wbGFjZW1lbnQucGF0Y2gKLVBhdGNoNjI6IDAwMDUtWG0tUkNNZW51LVVzZS1YaW5lcmFt YS1mb3ItcGxhY2VtZW50LnBhdGNoCi1QYXRjaDYzOiAwMDA2LVhtLVRvb2x0aXAtVXNlLVhpbmVy YW1hLWZvci1wbGFjZW1lbnQucGF0Y2gKLVBhdGNoNjQ6IDAwMDctWG0tQ29tYm9Cb3gtVXNlLVhp bmVyYW1hLWZvci1wbGFjZW1lbnQucGF0Y2gKLSMgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9t b3RpZi9jb2RlL21lcmdlLXJlcXVlc3RzLzEwLwotUGF0Y2g2NTogMDAwMS1YbS1TdHJpbmctRml4 LW1lbW9yeS1sZWFrLnBhdGNoCi0jIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3AvbW90aWYvY29k ZS9tZXJnZS1yZXF1ZXN0cy8xMS8KLVBhdGNoNjY6ICAwMDAxLVhtLVNjcmVlbi1BZGQtX05FVF9X T1JLQVJFQS1zdXBwb3J0LnBhdGNoCi1QYXRjaDY3OiAgMDAwMi1YbS1TY3JlZW4tQWRkLV9HVEtf V09SS0FSRUFTLXN1cHBvcnQtZm9yLW11bHRpLW1vbml0LnBhdGNoCi0KLVBhdGNoNjg6IGluY2x1 ZGVzLnBhdGNoCi0KLUNvbmZsaWN0czogbGVzc3RpZiA8PSAwLjkyLjMyLTYKK0J1aWxkUmVxdWly ZXM6IGxpYlhwbS1kZXZlbAogCiAlZGVzY3JpcHRpb24KIFRoaXMgaXMgdGhlIE1vdGlmICV7dmVy c2lvbn0gcnVuLXRpbWUgZW52aXJvbm1lbnQuIEl0IGluY2x1ZGVzIHRoZQpAQCAtNjAsMTMgKzI1 LDEwIEBAIGxpbmtlZCBhZ2FpbnN0IE1vdGlmIGFuZCB0aGUgTW90aWYgV2luZG93IE1hbmFnZXIg bXdtLgogCiAlcGFja2FnZSBkZXZlbAogU3VtbWFyeTogRGV2ZWxvcG1lbnQgbGlicmFyaWVzIGFu ZCBoZWFkZXIgZmlsZXMKLUNvbmZsaWN0czogbGVzc3RpZi1kZXZlbCA8PSAwLjkyLjMyLTYKIFJl cXVpcmVzOiAle25hbWV9JXs/X2lzYX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIFJlcXVpcmVz OiBsaWJqcGVnLWRldmVsJXs/X2lzYX0gbGlicG5nLWRldmVsJXs/X2lzYX0KIFJlcXVpcmVzOiBs aWJYZnQtZGV2ZWwlez9faXNhfSBsaWJYbXUtZGV2ZWwlez9faXNhfSBsaWJYcC1kZXZlbCV7P19p c2F9CiBSZXF1aXJlczogbGliWHQtZGV2ZWwlez9faXNhfSBsaWJYZXh0LWRldmVsJXs/X2lzYX0K LU9ic29sZXRlczogb3Blbm1vdGlmLWRldmVsIDwgMi4zLjQKLVByb3ZpZGVzOiBvcGVubW90aWYt ZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIAogJWRlc2NyaXB0aW9uIGRldmVsCiBUaGlz IGlzIHRoZSBNb3RpZiAle3ZlcnNpb259IGRldmVsb3BtZW50IGVudmlyb25tZW50LiBJdCBpbmNs dWRlcyB0aGUKQEAgLTc0LDcgKzM2LDYgQEAgaGVhZGVyIGZpbGVzIGFuZCBhbHNvIHN0YXRpYyBs aWJyYXJpZXMgbmVjZXNzYXJ5IHRvIGJ1aWxkIE1vdGlmIGFwcGxpY2F0aW9ucy4KIAogJXBhY2th Z2Ugc3RhdGljCiBTdW1tYXJ5OiBTdGF0aWMgbGlicmFyaWVzCi1Db25mbGljdHM6IGxlc3N0aWYt ZGV2ZWwgPD0gMC45Mi4zMi02CiBSZXF1aXJlczogJXtuYW1lfS1kZXZlbCV7P19pc2F9ID0gJXt2 ZXJzaW9ufS0le3JlbGVhc2V9CiAKICVkZXNjcmlwdGlvbiBzdGF0aWMKQEAgLTgyLDQzICs0Mywx NSBAQCBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIHN0YXRpYyBNb3RpZiBsaWJyYXJpZXMuCiAK ICVwcmVwCiAlc2V0dXAgLXEKLSVwYXRjaCAtUCAyMiAtcDEgLWIgLm5vX2RlbW9zCi0lcGF0Y2gg LVAgMjMgLXAxIC1iIC51aWxfbGliCi0lcGF0Y2ggLVAgNDMgLXAxIC1iIC5yZ2J0eHQKLSVwYXRj aCAtUCA0NSAtcDEgLWIgLm13bXJjX2RpcgotJXBhdGNoIC1QIDQ2IC1wMSAtYiAuYmluZGluZ3MK LSVwYXRjaCAtUCA0NyAtcDEgLWIgLm5vX1gxMVI2Ci0lcGF0Y2ggLVAgNDggLXAxIC1iIC5mb3Jt YXQtc2VjdXJpdHkKLSVwYXRjaCAtUCA0OSAtcDEKLSVwYXRjaCAtUCA1MCAtcDEKLSVwYXRjaCAt UCA1MSAtcDEKLSVwYXRjaCAtUCA1NSAtcDEKLSVwYXRjaCAtUCA1NiAtcDEKLSVwYXRjaCAtUCA1 OCAtcDEgLWIgLnhpbmVyYW1hCi0lcGF0Y2ggLVAgNTkgLXAxIC1iIC54aW5lcmFtYQotJXBhdGNo IC1QIDYwIC1wMSAtYiAueGluZXJhbWEKLSVwYXRjaCAtUCA2MSAtcDEgLWIgLnhpbmVyYW1hCi0l cGF0Y2ggLVAgNjIgLXAxIC1iIC54aW5lcmFtYQotJXBhdGNoIC1QIDYzIC1wMSAtYiAueGluZXJh bWEKLSVwYXRjaCAtUCA2NCAtcDEgLWIgLnhpbmVyYW1hCi0lcGF0Y2ggLVAgNjUgLXAxIC1iIC51 dGY4LW1lbWxlYWsKLSVwYXRjaCAtUCA2NiAtcDEgLWIgLm5ldC13b3JrYXJlYQotJXBhdGNoIC1Q IDY3IC1wMSAtYiAuZ3RrLXdvcmthcmVhcwotCi0lcGF0Y2ggLVAgNjggLXAxIC1iIC5pbmNsdWRl cwogCiAlYnVpbGQKLWV4cG9ydCBDRkxBR1M9IiRDRkxBR1MgLXN0ZD1nbnUxNyIKLXRvdWNoIEFV VEhPUlMgTkVXUwotYXV0b3JlY29uZiAtZmkKKy4vYXV0b2dlbi5zaAogJWNvbmZpZ3VyZSAtLWVu YWJsZS1zdGF0aWMgLS1lbmFibGUteGZ0IC0tZW5hYmxlLWpwZWcgLS1lbmFibGUtcG5nCiAKLW1h a2UgY2xlYW4gJXs/X3NtcF9tZmxhZ3N9Ci1tYWtlIC1DIGluY2x1ZGUKLW1ha2UgJXs/X3NtcF9t ZmxhZ3N9CislbWFrZV9idWlsZAogCiAlaW5zdGFsbAotbWFrZSBERVNURElSPSV7YnVpbGRyb290 fSBpbnN0YWxsCislbWFrZV9pbnN0YWxsCiAKIGluc3RhbGwgLWQgJXtidWlsZHJvb3R9L2V0Yy9Y MTEveGluaXQveGluaXRyYy5kCiBpbnN0YWxsIC1tIDc1NSAle1NPVVJDRTF9ICV7YnVpbGRyb290 fS9ldGMvWDExL3hpbml0L3hpbml0cmMuZC94bWJpbmQuc2gKQEAgLTEyOCwxNyArNjEsMTcgQEAg cm0gLWYgJXtidWlsZHJvb3R9JXtfbGliZGlyfS8qLmxhCiAlbGRjb25maWdfc2NyaXB0bGV0cwog CiAlZmlsZXMKLSVkb2MgQ09QWUlORyBSRUFETUUgUkVMRUFTRSBSRUxOT1RFUworJWRvYyBMSUNF TlNFIFJFQURNRS5tZAogL2V0Yy9YMTEveGluaXQveGluaXRyYy5kL3htYmluZC5zaAotJWRpciAv ZXRjL1gxMS9td20KLSVjb25maWcobm9yZXBsYWNlKSAvZXRjL1gxMS9td20vc3lzdGVtLm13bXJj CislY29uZmlnKG5vcmVwbGFjZSkgL2V0Yy9YMTEvc3lzdGVtLm13bXJjCiAle19iaW5kaXJ9L213 bQogJXtfYmluZGlyfS94bWJpbmQKICV7X2luY2x1ZGVkaXJ9L1gxMS9iaXRtYXBzLyoKLSV7X2xp YmRpcn0vbGliTXJtLnNvLioKLSV7X2xpYmRpcn0vbGliVWlsLnNvLioKLSV7X2xpYmRpcn0vbGli WG0uc28uKgorJXtfbGliZGlyfS9saWJNcm0uc28uNSoKKyV7X2xpYmRpcn0vbGliVWlsLnNvLjUq Cisle19saWJkaXJ9L2xpYlhtLnNvLjUqCiAle19kYXRhZGlyfS9YMTEvYmluZGluZ3MKKyV7X2Rh dGFkaXJ9L21vdGlmL2ljb25zCiAle19tYW5kaXJ9L21hbjEvbXdtKgogJXtfbWFuZGlyfS9tYW4x L3htYmluZCoKICV7X21hbmRpcn0vbWFuNC9td21yYyoKQEAgLTE0OSw2ICs4MiwxMCBAQCBybSAt ZiAle2J1aWxkcm9vdH0le19saWJkaXJ9LyoubGEKICV7X2luY2x1ZGVkaXJ9L1htCiAle19pbmNs dWRlZGlyfS91aWwKICV7X2xpYmRpcn0vbGliKi5zbworJXtfbGliZGlyfS9wa2djb25maWcvTXJt LnBjCisle19saWJkaXJ9L3BrZ2NvbmZpZy9VaWwucGMKKyV7X2xpYmRpcn0vcGtnY29uZmlnL21v dGlmLnBjCisKICV7X21hbmRpcn0vbWFuMS91aWwuMSoKICV7X21hbmRpcn0vbWFuMy8qCiAle19t YW5kaXJ9L21hbjUvKgpAQCAtMTU3LDYgKzk0LDkgQEAgcm0gLWYgJXtidWlsZHJvb3R9JXtfbGli ZGlyfS8qLmxhCiAle19saWJkaXJ9L2xpYiouYQogCiAlY2hhbmdlbG9nCisqIFRodSBTZXAgMDMg MjAyNiBHd3luIENpZXNsYSA8Z3d5bmNAcHJvdG9ubWFpbC5jb20+IC0gMi41LjItMQorLSAyLjUu MiwgbmV3IHVwc3RyZWFtLgorCiAqIFRodSBKdWwgMTYgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuMy44LTQKIC0gUmVidWlsdCBm b3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NV9NYXNzX1JlYnVpbGQK IAoKZGlmZiAtLWdpdCBhL29wZW5Nb3RpZi0yLjIuMy11aWxfbGliLnBhdGNoIGIvb3Blbk1vdGlm LTIuMi4zLXVpbF9saWIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjM2Ew Y2UuLjAwMDAwMDAKLS0tIGEvb3Blbk1vdGlmLTIuMi4zLXVpbF9saWIucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0gb3Blbm1vdGlmL2NsaWVudHMvdWlsL01ha2VmaWxl LmFtLnVpbF9saWIJMjAwMy0xMi0xNiAxMzo0MTo1My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVu bW90aWYvY2xpZW50cy91aWwvTWFrZWZpbGUuYW0JMjAwMy0xMi0xNiAxMzo0MTo1NS4wMDAwMDAw MDAgKzAxMDAKLUBAIC0xMyw3ICsxMyw3IEBACi0gCi0gbGliVWlsX2xhX0xJQkFERCA9IFVpbFBh cnNlci5sbyAuLi8uLi9saWIvTXJtL2xpYk1ybS5sYSAuLi8uLi9saWIvWG0vbGliWG0ubGEgCi0g Ci0tdWlsX0xEQUREID0gLi4vLi4vbGliL01ybS9saWJNcm0ubGEgLi4vLi4vbGliL1htL2xpYlht LmxhIAotK3VpbF9MREFERCA9IGxpYlVpbC5sYSAuLi8uLi9saWIvTXJtL2xpYk1ybS5sYSAuLi8u Li9saWIvWG0vbGliWG0ubGEKLSAKLSBJTkNMVURFUyA9IC1ESU5DRElSPVwiQElOQ0RJUkBcIiBc Ci0gICAgICAgICAgICAtRExJQkRJUj1cIkBMSUJESVJAXCIgXAotQEAgLTQyLDcgKzQyLDcgQEAK LSAJCVVpbExzdE1hYy5jCVVpbFNlbVZhbC5jCVVpbFNlbUNTZXQuYwlVaWxEQi5jCi0gCi0gU1JD UyA9CQkkKENPTU1PTl9TUkMpCi0tU1JDUzIgPQkJJChDT01NT05fU1JDKQlVaWxNYWluLmMKLStT UkNTMiA9CQlVaWxNYWluLmMKLSAKLSBIRUFERVJTXzEgPSAJVWlsLmgJCVVpbFN5bUdsLmgJVWls U3ltRGVmLmggXAotIAkJVWlsRGVmLmgJWG1BcHBsLnVpbAoKZGlmZiAtLWdpdCBhL29wZW5Nb3Rp Zi0yLjMuMC1ub19YMTFSNi5wYXRjaCBiL29wZW5Nb3RpZi0yLjMuMC1ub19YMTFSNi5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRkMWM1Ni4uMDAwMDAwMAotLS0gYS9vcGVu TW90aWYtMi4zLjAtbm9fWDExUjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBA Ci0tLS0gb3Blbm1vdGlmLTIuMy4wL2RvYy9tYW4vbWFuMS9td20uMS5ub19YMTFSNgkyMDA1LTEy LTA5IDE1OjA4OjIxLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5tb3RpZi0yLjMuMC9kb2MvbWFu L21hbjEvbXdtLjEJMjAwNS0xMi0wOSAxNTowOTowNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zNjYs NyArMzY2LDcgQEAKLSBkYXRhYmFzZVwmLiBUaGlzIGRhdGFiYXNlIGlzIGJ1aWx0IGZyb20gdGhl IGZvbGxvd2luZyBzb3VyY2VzXCYuIFRoZXkgYXJlIGxpc3RlZAotIGluIG9yZGVyIG9mIHByZWNl ZGVuY2UsIGxvdyB0byBoaWdoOgotIC5QUAotLVxmQi91c3IvWDExUjYvbGliL1gxMS9hcHAtZGVm YXVsdHMvTXdtXGZQCi0rXGZCL3Vzci9zaGFyZS9YMTEvYXBwLWRlZmF1bHRzL013bVxmUAotIC5Q UAotIFxmQiRIT01FL013bVxmUAotIC5QUAotQEAgLTM3Niw3ICszNzYsNyBAQAotIC5QUAotIFxm Qm13bVxmUCBjb21tYW5kIGxpbmUgb3B0aW9ucwotIC5QUAotLVRoZSBmaWxlIG5hbWVzIFxmQi91 c3IvWDExUjYvbGliL1gxMS9hcHAtZGVmYXVsdHMvTXdtXGZQIGFuZCBcZkIkSE9NRS9Nd21cZlAg cmVwcmVzZW50IGN1c3RvbWFyeSBsb2NhdGlvbnMgZm9yIHRoZXNlIGZpbGVzXCYuIFRoZSBhY3R1 YWwKLStUaGUgZmlsZSBuYW1lcyBcZkIvdXNyL3NoYXJlL1gxMS9hcHAtZGVmYXVsdHMvTXdtXGZQ IGFuZCBcZkIkSE9NRS9Nd21cZlAgcmVwcmVzZW50IGN1c3RvbWFyeSBsb2NhdGlvbnMgZm9yIHRo ZXNlIGZpbGVzXCYuIFRoZSBhY3R1YWwKLSBsb2NhdGlvbiBvZiB0aGUgc3lzdGVtLXdpZGUgY2xh c3MgcmVzb3VyY2UgZmlsZSBtYXkgZGVwZW5kIG9uIHRoZSBcZkJYRklMRVNFQVJDSFBBVEhcZlAg ZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kIHRoZQotIGN1cnJlbnQgbGFuZ3VhZ2UgZW52aXJvbm1l bnRcJi4gVGhlIGFjdHVhbCBsb2NhdGlvbiBvZiB0aGUgdXNlci1zcGVjaWZpYyBjbGFzcwotIHJl c291cmNlIGZpbGUgbWF5IGRlcGVuZCBvbiB0aGUgXGZCWFVTRVJGSUxFU0VBUkNIUEFUSFxmUCBh bmQgXGZCWEFQUExSRVNESVJcZlAKLUBAIC01OTUsNyArNTk1LDcgQEAKLSBOYW1lB0NsYXNzB1Zh bHVlIFR5cGUHRGVmYXVsdAotIGF1dG9LZXlGb2N1cwdBdXRvS2V5Rm9jdXMHVC9GB1QKLSBhdXRv UmFpc2VEZWxheQdBdXRvUmFpc2VEZWxheQdtaWxsaXNlYwc1MDAKLS1iaXRtYXAtB0JpdG1hcC0H ZGlyZWN0b3J5By91c3IvWDExUjYvaW5jbHVkZS0KLStiaXRtYXAtB0JpdG1hcC0HZGlyZWN0b3J5 By91c3IvaW5jbHVkZS0KLSBEaXJlY3RvcnkHRGlyZWN0b3J5BwcvWDExL2JpdG1hcHMKLSBjbGll bnRBdXRvUGxhY2UHQ2xpZW50QXV0b1BsYWNlB1QvRgdUCi0gY29sb3JtYXBGb2N1cy0HQ29sb3Jt YXBGb2N1cy0Hc3RyaW5nB2tleWJvYXJkCi1AQCAtNjUwLDcgKzY1MCw3IEBACi0gVGhpcyByZXNv dXJjZSBpZGVudGlmaWVzIGEgZGlyZWN0b3J5IHRvIGJlIHNlYXJjaGVkIGZvciBiaXRtYXBzIHJl ZmVyZW5jZWQKLSBieSBcZkJtd21cZlAgcmVzb3VyY2VzXCYuIFRoaXMgZGlyZWN0b3J5IGlzIHNl YXJjaGVkIGlmIGEgYml0bWFwCi0gaXMgc3BlY2lmaWVkIHdpdGhvdXQgYW4gYWJzb2x1dGUgcGF0 aG5hbWVcJi4gVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgcmVzb3VyY2UKLS1pcyBcZkIvdXNy L1gxMVI2L2luY2x1ZGUvWDExL2JpdG1hcHNcZlBcJi4gVGhlIGRpcmVjdG9yeSBcZkIvdXNyL1gx MVI2L2luY2x1ZGUvWDExL2JpdG1hcHNcZlAKLStpcyBcZkIvdXNyL2luY2x1ZGUvWDExL2JpdG1h cHNcZlBcJi4gVGhlIGRpcmVjdG9yeSBcZkIvdXNyL2luY2x1ZGUvWDExL2JpdG1hcHNcZlAKLSBy ZXByZXNlbnRzIHRoZSBjdXN0b21hcnkgbG9jYXRpb25zIGZvciB0aGlzIGRpcmVjdG9yeVwmLiBU aGUgYWN0dWFsCi0gbG9jYXRpb24gb2YgdGhpcyBkaXJlY3RvcnkgbWF5IHZhcnkgb24gc29tZSBz eXN0ZW1zXCYuIElmIHRoZSBiaXRtYXAgaXMgbm90Ci0gZm91bmQgaW4gdGhlIHNwZWNpZmllZCBk aXJlY3RvcnksIFxmQlhCTUxBTkdQQVRIXGZQIGlzIHNlYXJjaGVkXCYuCi1AQCAtMTM0OCw3ICsx MzQ4LDcgQEAKLSAuUFAKLSBcZkIvZXRjL1gxMS9td20vc3lzdGVtXCYubXdtcmNcZlAKLSAuUFAK LS1cZkIvdXNyL1gxMVI2L2xpYi9YMTEvYXBwLWRlZmF1bHRzL013bVxmUAotK1xmQi91c3Ivc2hh cmUvWDExL2FwcC1kZWZhdWx0cy9Nd21cZlAKLSAuUFAKLSBcZkIkSE9NRS9Nd21cZlAKLSAuUFAK CmRpZmYgLS1naXQgYS9vcGVuTW90aWYtMi4zLjAtcmdidHh0LnBhdGNoIGIvb3Blbk1vdGlmLTIu My4wLXJnYnR4dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM1ZmYxNS4u MDAwMDAwMAotLS0gYS9vcGVuTW90aWYtMi4zLjAtcmdidHh0LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjIgKzAsMCBAQAotLS0tIG9wZW5tb3RpZi0yLjMuMC9saWIvWG0vQ29sb3JTLmMucmdi dHh0CTIwMDQtMDctMDcgMTQ6MjQ6MDcuMDAwMDAwMDAwICswMjAwCi0rKysgb3Blbm1vdGlmLTIu My4wL2xpYi9YbS9Db2xvclMuYwkyMDA1LTEyLTAyIDEzOjI2OjExLjAwMDAwMDAwMCArMDEwMAot QEAgLTEzMSw3ICsxMzEsNyBAQAotICAgewotICAgICBYbU5yZ2JGaWxlLCBYbUNTdHJpbmcsIFht UlN0cmluZywKLSAgICAgc2l6ZW9mKFN0cmluZyksIFh0T2Zmc2V0T2YoWG1Db2xvclNlbGVjdG9y UmVjLCBjcy5yZ2JfZmlsZSksCi0tICAgIFhtUlN0cmluZywgKFh0UG9pbnRlcikgIi91c3IvbGli L1gxMS9yZ2IudHh0IgotKyAgICBYbVJTdHJpbmcsIChYdFBvaW50ZXIpICIvdXNyL3NoYXJlL1gx MS9yZ2IudHh0IgotICAgfSwKLSAjZW5kaWYKLSAgIHsKLS0tLSBvcGVubW90aWYtMi4zLjAvZG9j L21hbi9tYW4zL1htQ29sb3JTZWxlY3Rvci4zLnJnYnR4dAkyMDAyLTAxLTE3IDIxOjMyOjQ4LjAw MDAwMDAwMCArMDEwMAotKysrIG9wZW5tb3RpZi0yLjMuMC9kb2MvbWFuL21hbjMvWG1Db2xvclNl bGVjdG9yLjMJMjAwNS0xMi0wMiAxMzoyNToyNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zNCw3ICsz NCw3IEBACi0gbm9DZWxsRXJyb3IlTm9DZWxsRXJyb3IlWG1TdHJpbmclIk5vIENvbG9yIENlbGwK LSAlJSUgQXZhaWxhYmxlIgotIHJlZFNsaWRlckxhYmVsJVNsaWRlckxhYmVsJVhtU3RyaW5nJSJS ZWQiCi0tcmdiRmlsZSVTdHJpbmclU3RyaW5nJS91c3IvbGliL1gxMS9yZ2IudHh0Ci0rcmdiRmls ZSVTdHJpbmclU3RyaW5nJS91c3Ivc2hhcmUvWDExL3JnYi50eHQKLSBzbGlkZXJUb2dMYWJlbCVU b2dMYWJlbCVYbVN0cmluZyUiQ29sb3IgU2xpZGVycyIKLSAuVEUKLSAuUFAKCmRpZmYgLS1naXQg YS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA1MGI3MGQxLi5mN2ZlMTkyIDEwMDY0NAotLS0gYS9z b3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLVNIQTUxMiAobW90aWYtMi4zLjgudGFy Lmd6KSA9IDFhYjhlOGVlY2UyNWVmOTdlOTQ4NTkyYjVmYTNlMTlkOThlOTMyNjk1MjkwYTE4Yjdh OGU5MGYxYWEyNzY2YmM0ZjA4MmJkYmMzOTk5ZGZmNTY2MGU2ODQ4MjExNzhhMTQ5MDQwZjc2YmI0 NzcxNjNlNTNjYTA2NDc0ZDAyYjU1CitTSEE1MTIgKG1vdGlmLTIuNS4yLnRhci5neikgPSA3NmIz YzUxODJiMTVhZTZhNmVlYzM3MzJkNWM2OWZmM2Q0MDEzYTQzOGI4NTVkODIxNDc3OWM2NTVlOWRi MjUxNGYxMzkxN2VlZWUyZWU3YTkyNzBkY2EwMDZkYjU1YjNmNWRkODY4OGNjMjBhMjFlOGJiOWYz ZGU5ODY4NjczMgo=