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: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/opensips] rawhide: OpenSIPS ver. 4.0.0 Date: Wed, 24 Jun 2026 18:04:50 GMT Message-ID: <178232429097.1.13303506535702554370.rpms-opensips-096f7b1c9759@fedoraproject.org> List-ID: X-Git-Repo: rpms/opensips X-Git-Branch: rawhide X-Git-Rev: 096f7b1c9759b5c9004ad910cb3202f3aed17855 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnNpcHMKICAgICAgICAgICAgQnJhbmNoIDogcmF3aGlkZQogICAgICAg ICAgICBDb21taXQgOiAwOTZmN2IxYzk3NTliNWM5MDA0YWQ5MTBjYjMyMDJmM2FlZDE3ODU1CiAg ICAgICAgICAgIEF1dGhvciA6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CiAg ICAgICAgICAgIERhdGUgICA6IDIwMjYtMDYtMjRUMjA6MDQ6MzUrMDI6MDAKICAgICAgICAgICAg U3RhdHMgIDogKzY4Ny8tNzc3IGluIDExIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0 cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9vcGVuc2lwcy9jLzA5NmY3YjFjOTc1OWI1 YzkwMDRhZDkxMGNiMzIwMmYzYWVkMTc4NTU/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgT3BlblNJUFMgdmVyLiA0LjAuMAoKU2lnbmVkLW9mZi1ieTogUGV0ZXIg TGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KCi0tLQpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMt MDAwMS1Db25zaXN0ZW50bHktdXNlLXJ0cHByb3h5LXN3aXRjaGVzLnBhdGNoIGIvb3BlbnNpcHMt MDAwMS1Db25zaXN0ZW50bHktdXNlLXJ0cHByb3h5LXN3aXRjaGVzLnBhdGNoCmluZGV4IGFjMDAx MDguLmMxNDg1NmIgMTAwNjQ0Ci0tLSBhL29wZW5zaXBzLTAwMDEtQ29uc2lzdGVudGx5LXVzZS1y dHBwcm94eS1zd2l0Y2hlcy5wYXRjaAorKysgYi9vcGVuc2lwcy0wMDAxLUNvbnNpc3RlbnRseS11 c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2gKQEAgLTE5LDcgKzE5LDcgQEAgaW5kZXggYTkzNzYx YTY2ZC4uYjE4NTE2Njc4NiAxMDA2NDQKICAJCQkJPC9wYXJhPjwvbGlzdGl0ZW0+CiAgCQkJCTxs aXN0aXRlbT48cGFyYT4KIGRpZmYgLS1naXQgYS9tb2R1bGVzL3J0cHByb3h5L3J0cHByb3h5LmMg Yi9tb2R1bGVzL3J0cHByb3h5L3J0cHByb3h5LmMKLWluZGV4IGZkOGZiZTgyOTAuLjdlYzY4NDAz ZmUgMTAwNjQ0CitpbmRleCAzY2YyNGM5ZDQ2Li41NzAwMDhiMjU0IDEwMDY0NAogLS0tIGEvbW9k dWxlcy9ydHBwcm94eS9ydHBwcm94eS5jCiArKysgYi9tb2R1bGVzL3J0cHByb3h5L3J0cHByb3h5 LmMKIEBAIC0zNzQ3LDggKzM3NDcsNiBAQCBzdGF0aWMgaW50IHJ0cHByb3h5X29mZmVyX2Fuc3dl cihzdHJ1Y3Qgc2lwX21zZyAqbXNnLCBzdHJ1Y3QgcnRwcF9hcmdzICphcmdzLAoKZGlmZiAtLWdp dCBhL29wZW5zaXBzLTAwMDUtRml4LXJhYmJpdG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2Fybmlu Z3MucGF0Y2ggYi9vcGVuc2lwcy0wMDA1LUZpeC1yYWJiaXRtcS1jLWRlcHJlY2F0ZWQtaGVhZGVy LXdhcm5pbmdzLnBhdGNoCmluZGV4IGI3YmY0OTAuLjIwOGM1MGIgMTAwNjQ0Ci0tLSBhL29wZW5z aXBzLTAwMDUtRml4LXJhYmJpdG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2gK KysrIGIvb3BlbnNpcHMtMDAwNS1GaXgtcmFiYml0bXEtYy1kZXByZWNhdGVkLWhlYWRlci13YXJu aW5ncy5wYXRjaApAQCAtODksNyArODksNyBAQCBTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgogQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8 aHR0cHM6Ly9jbGF1ZGUuYWk+CiAKIGRpZmYgLS1naXQgYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1x L1JFQURNRSBiL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvUkVBRE1FCi1pbmRleCA4YWQyNGJmODU2 Li4zNTk5ODVmYzJhIDEwMDY0NAoraW5kZXggN2NiMjEzZjM1YS4uNTM1MWVhZGNjNiAxMDA2NDQK IC0tLSBhL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvUkVBRE1FCiArKysgYi9tb2R1bGVzL2V2ZW50 X3JhYmJpdG1xL1JFQURNRQogQEAgLTEzMCw3ICsxMzAsNyBAQCBDaGFwdGVyIDEuIEFkbWluIEd1 aWRlCkBAIC00MTAsNyArNDEwLDcgQEAgaW5kZXggYTcwMGQ4MDA0OS4uMGQ4NTNmOGYyYiAxMDA2 NDQKICAJaW50IGhlYXJ0YmVhdDsKICAJc3RyIHRsc19kb21fbmFtZTsKIGRpZmYgLS1naXQgYS9t b2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL1JFQURNRSBiL21vZHVsZXMvcmFiYml0bXFfY29uc3Vt ZXIvUkVBRE1FCi1pbmRleCBhZWQzYmY0OWZiLi42Yzc2MGQ1NTQ3IDEwMDY0NAoraW5kZXggMDJk ZjYwMjRiYS4uMWYzYmMwNThlMSAxMDA2NDQKIC0tLSBhL21vZHVsZXMvcmFiYml0bXFfY29uc3Vt ZXIvUkVBRE1FCiArKysgYi9tb2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL1JFQURNRQogQEAgLTcy LDggKzcyLDggQEAgQ2hhcHRlciAxLiBBZG1pbiBHdWlkZQoKZGlmZiAtLWdpdCBhL29wZW5zaXBz LTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5pbmdzLWluLUhUVFAtYW5kLUZyZWVTV0lU Qy5wYXRjaCBiL29wZW5zaXBzLTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5pbmdzLWlu LUhUVFAtYW5kLUZyZWVTV0lUQy5wYXRjaAppbmRleCA5YzYxNDBkLi4zNzVmZDQyIDEwMDY0NAot LS0gYS9vcGVuc2lwcy0wMDA3LUZpeC1jb25zdC1jb3JyZWN0bmVzcy13YXJuaW5ncy1pbi1IVFRQ LWFuZC1GcmVlU1dJVEMucGF0Y2gKKysrIGIvb3BlbnNpcHMtMDAwNy1GaXgtY29uc3QtY29ycmVj dG5lc3Mtd2FybmluZ3MtaW4tSFRUUC1hbmQtRnJlZVNXSVRDLnBhdGNoCkBAIC0xMDksMTAgKzEw OSwxMCBAQCBpbmRleCBhMTJiNmQ2MzdiLi5mNjI0OTczODg0IDEwMDY0NAogIAkJaW5kZXggPSBh dG9pKGluZGV4X3B0cik7CiAgCQlyZWFsX2hlYWRlcl9uYW1lID0gRFVQKGhlYWRlcl9uYW1lKTsK IGRpZmYgLS1naXQgYS9tb2R1bGVzL2h0dHBkL2h0dHBkX3Byb2MuYyBiL21vZHVsZXMvaHR0cGQv aHR0cGRfcHJvYy5jCi1pbmRleCAwNjcxYTdkMzkwLi4zMjk3ODA2MDkyIDEwMDY0NAoraW5kZXgg OGU4NzY2MTA0OC4uYjEyY2M0MWI5YyAxMDA2NDQKIC0tLSBhL21vZHVsZXMvaHR0cGQvaHR0cGRf cHJvYy5jCiArKysgYi9tb2R1bGVzL2h0dHBkL2h0dHBkX3Byb2MuYwotQEAgLTMyNyw3ICszMjcs NyBAQCBNSERfUkVUIGdldENvbm5lY3Rpb25IZWFkZXIodm9pZCAqY2xzLCBlbnVtIE1IRF9WYWx1 ZUtpbmQga2luZCwKK0BAIC0zMzIsNyArMzMyLDcgQEAgTUhEX1JFVCBnZXRDb25uZWN0aW9uSGVh ZGVyKHZvaWQgKmNscywgZW51bSBNSERfVmFsdWVLaW5kIGtpbmQsCiAgCXN0cnVjdCBwb3N0X3Jl cXVlc3QgKnByID0gKHN0cnVjdCBwb3N0X3JlcXVlc3QqKWNsczsKICAJc3RyIGNvbnRlbnRfbGVu Z3RoOwogIAl1bnNpZ25lZCBpbnQgbGVuOwpAQCAtMTIxLDcgKzEyMSw3IEBAIGluZGV4IDA2NzFh N2QzOTAuLjMyOTc4MDYwOTIgMTAwNjQ0CiAgCiAgCWlmIChjbHMgPT0gTlVMTCkgewogIAkJTE1f RVJSKCJVbmFibGUgdG8gc3RvcmUgcmV0dXJuIGRhdGFcbiIpOwotQEAgLTM1MSwyNCArMzUxLDI0 IEBAIE1IRF9SRVQgZ2V0Q29ubmVjdGlvbkhlYWRlcih2b2lkICpjbHMsIGVudW0gTUhEX1ZhbHVl S2luZCBraW5kLAorQEAgLTM1NiwyNCArMzU2LDI0IEBAIE1IRF9SRVQgZ2V0Q29ubmVjdGlvbkhl YWRlcih2b2lkICpjbHMsIGVudW0gTUhEX1ZhbHVlS2luZCBraW5kLAogIAlpZiAoc3RyY2FzZWNt cCgiQ29udGVudC1UeXBlIiwga2V5KSA9PSAwKSB7CiAgCQlMTV9EQkcoIkNvbnRlbnQtVHlwZT0l c1xuIiwgdmFsdWUpOwogIAkJLyogZXh0cmFjdCBvbmx5IHRoZSBtaW1lICovCgpkaWZmIC0tZ2l0 IGEvb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24tcHBj NjRsZS1hbmQtaTY4LnBhdGNoIGIvb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12YV9s aXN0LXdhcm5pbmctb24tcHBjNjRsZS1hbmQtaTY4LnBhdGNoCmluZGV4IGJjMzkxNDYuLjk1N2Nl ZjUgMTAwNjQ0Ci0tLSBhL29wZW5zaXBzLTAwMDgtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13 YXJuaW5nLW9uLXBwYzY0bGUtYW5kLWk2OC5wYXRjaAorKysgYi9vcGVuc2lwcy0wMDA4LUZpeC11 bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0Y2gKQEAg LTgzLDEwICs4MywxMCBAQCBTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZA Z21haWwuY29tPgogQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1 ZGUuYWk+CiAKIGRpZmYgLS1naXQgYS9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRp c19kYmFzZS5jIGIvbW9kdWxlcy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYwot aW5kZXggMDJjMjljODlhNS4uZWUxN2NjYTQ0MSAxMDA2NDQKK2luZGV4IDE3NTA0OTUzMzMuLjMy ZWM0ZDJmMTggMTAwNjQ0CiAtLS0gYS9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRp c19kYmFzZS5jCiArKysgYi9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFz ZS5jCi1AQCAtMTAwNSw5ICsxMDA1LDkgQEAgc3RhdGljIGludCByZWRpc19ydW5fY29tbWFuZChj YWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVkaXNSZXBseSAqKnJwbCwKK0BAIC0xMDA3LDkgKzEw MDcsOSBAQCBzdGF0aWMgaW50IHJlZGlzX3J1bl9jb21tYW5kKGNhY2hlZGJfY29uICpjb25uZWN0 aW9uLCByZWRpc1JlcGx5ICoqcnBsLAogIHN0YXRpYyBpbnQgcmVkaXNfcnVuX2NvbW1hbmRfYXJn dihjYWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVkaXNSZXBseSAqKnJwbCwKICAgICAgICAgICAg ICAgIHN0ciAqa2V5LCBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IHNpemVfdCAq YXJndmxlbikKICB7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwOS1GaXgtZm9ybWF0LXNwZWNp Zmllci13YXJuaW5ncy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXJlLnBhdGNoIGIvb3BlbnNpcHMtMDAw OS1GaXgtZm9ybWF0LXNwZWNpZmllci13YXJuaW5ncy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXJlLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWI2YTExLi4wMDAwMDAwCi0tLSBh L29wZW5zaXBzLTAwMDktRml4LWZvcm1hdC1zcGVjaWZpZXItd2FybmluZ3Mtb24tMzItYml0LWFy Y2hpdGVjdHVyZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLUZyb20gMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBG cmksIDI2IERlYyAyMDI1IDE3OjQ5OjIxICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBmb3Jt YXQgc3BlY2lmaWVyIHdhcm5pbmdzIG9uIDMyLWJpdCBhcmNoaXRlY3R1cmVzIChpNjg2KQotCi1E dXJpbmcgY29tcGlsYXRpb24gb24gaTY4NiAoMzItYml0KSBhcmNoaXRlY3R1cmUgd2l0aCBHQ0Mg MTUsIGZvcm1hdAotc3BlY2lmaWVyIHdhcm5pbmdzIGFwcGVhciBkdWUgdG8gdHlwZSBzaXplIGRp ZmZlcmVuY2VzIGJldHdlZW4gMzItYml0Ci1hbmQgNjQtYml0IHBsYXRmb3Jtcy4KLQotYGBgCi1z ZXJ2ZXIuYzogSW4gZnVuY3Rpb24gJ29uX2ZyYW1lX3JlY3ZfY2FsbGJhY2snOgotd2FybmluZzog Zm9ybWF0ICclbGQnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBpbnQnLCBidXQgYXJn dW1lbnQgMTQKLWhhcyB0eXBlICdzaXplX3QnIHtha2EgJ3Vuc2lnbmVkIGludCd9IFstV2Zvcm1h dD1dCi0gIDYzOCB8ICBMTV9EQkcoImgyIGhlYWRlciBbJWRdLCAlcCAlbGRcbiIsIGZyYW1lLT5o ZC50eXBlLCBmcmFtZS0+aGVhZGVycy5udmEsIGZyYW1lLT5oZWFkZXJzLm52bGVuKTsKLQotZG1f aW1wbC5jOiBJbiBmdW5jdGlvbiAnZG1fYXZwczJqc29uJzoKLXdhcm5pbmc6IGZvcm1hdCAnJWxk JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgaW50JywgYnV0IGFyZ3VtZW50IDE1Ci1o YXMgdHlwZSAnaW50NjRfdCcge2FrYSAnbG9uZyBsb25nIGludCd9IFstV2Zvcm1hdD1dCi0gIDQ4 NCB8ICBMTV9EQkcoIiUyZC4gZ290IGludDY0ICAgQVZQICVzICgldSksIHZhbHVlOiAlbGRcbiIs IGksIGRtX2F2cC5hdnBfbmFtZSwgaC0+YXZwX2NvZGUsIGgtPmF2cF92YWx1ZS0+aTY0KTsKLQot d2FybmluZzogZm9ybWF0ICclbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyB1bnNp Z25lZCBpbnQnLCBidXQgYXJndW1lbnQgMTUKLWhhcyB0eXBlICd1aW50NjRfdCcge2FrYSAnbG9u ZyBsb25nIHVuc2lnbmVkIGludCd9IFstV2Zvcm1hdD1dCi0gIDQ5NCB8ICBMTV9EQkcoIiUyZC4g Z290IHVpbnQ2NCAgQVZQICVzICgldSksIHZhbHVlOiAlbHVcbiIsIGksIGRtX2F2cC5hdnBfbmFt ZSwgaC0+YXZwX2NvZGUsIGgtPmF2cF92YWx1ZS0+dTY0KTsKLWBgYAotCi1UeXBlIHNpemVzIGRp ZmZlciBiZXR3ZWVuIDMyLWJpdCBhbmQgNjQtYml0IGFyY2hpdGVjdHVyZXM6Ci0KLSoqT24geDg2 XzY0ICg2NC1iaXQpOioqCi0tIGBzaXplX3RgID0gYHVuc2lnbmVkIGxvbmdgICg4IGJ5dGVzKQot LSBgaW50NjRfdGAgPSBgbG9uZyBpbnRgICg4IGJ5dGVzKQotCi0qKk9uIGk2ODYgKDMyLWJpdCk6 KioKLS0gYHNpemVfdGAgPSBgdW5zaWduZWQgaW50YCAoNCBieXRlcykKLS0gYGludDY0X3RgID0g YGxvbmcgbG9uZyBpbnRgICg4IGJ5dGVzKQotLSBgdWludDY0X3RgID0gYHVuc2lnbmVkIGxvbmcg bG9uZyBpbnRgICg4IGJ5dGVzKQotCi1Vc2UgcG9ydGFibGUgQzk5IGZvcm1hdCBzcGVjaWZpZXJz IHRoYXQgd29yayBjb3JyZWN0bHkgb24gYWxsCi1hcmNoaXRlY3R1cmVzOgotCi0tIGAlenVgIGZv ciBgc2l6ZV90YCAobW9kdWxlcy9odHRwMmQvc2VydmVyLmMgbGluZSA2MzgpCi0tIGAlIiBQUklk NjRgIGZvciBgaW50NjRfdGAgKG1vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYyBsaW5lIDQ4 NCkKLS0gYCUiIFBSSXU2NGAgZm9yIGB1aW50NjRfdGAgKG1vZHVsZXMvYWFhX2RpYW1ldGVyL2Rt X2ltcGwuYyBsaW5lIDQ5NCkKLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVu a292QGdtYWlsLmNvbT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8v Y2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5j IGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jCi1pbmRleCBhMmFkNGM2Mjg3Li5mZmJj MTM5Zjk3IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jCi0rKysg Yi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMKLUBAIC0yMCw2ICsyMCw3IEBACi0gCi0g I2luY2x1ZGUgPGZyZWVEaWFtZXRlci9leHRlbnNpb24uaD4KLSAjaW5jbHVkZSA8c3lzL2V2ZW50 ZmQuaD4KLSsjaW5jbHVkZSA8aW50dHlwZXMuaD4KLSAKLSAjaW5jbHVkZSAiLi4vLi4vdXQuaCIK LSAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLUBAIC00ODUsNyArNDg2LDcgQEAgc3RhdGlj IGludCBkbV9hdnBzMmpzb24odm9pZCAqcm9vdCwgY0pTT04gKmF2cHMpCi0gCQkJYnJlYWs7Ci0g Ci0gCQljYXNlIEFWUF9UWVBFX0lOVEVHRVI2NDoKLS0JCQlMTV9EQkcoIiUyZC4gZ290IGludDY0 ICAgQVZQICVzICgldSksIHZhbHVlOiAlbGRcbiIsIGksIGRtX2F2cC5hdnBfbmFtZSwgaC0+YXZw X2NvZGUsIGgtPmF2cF92YWx1ZS0+aTY0KTsKLSsJCQlMTV9EQkcoIiUyZC4gZ290IGludDY0ICAg QVZQICVzICgldSksIHZhbHVlOiAlIiBQUklkNjQgIlxuIiwgaSwgZG1fYXZwLmF2cF9uYW1lLCBo LT5hdnBfY29kZSwgaC0+YXZwX3ZhbHVlLT5pNjQpOwotIAkJCW51bV92YWwgPSAoZG91YmxlKWgt PmF2cF92YWx1ZS0+aTY0OwotIAkJCWJyZWFrOwotIAotQEAgLTQ5NSw3ICs0OTYsNyBAQCBzdGF0 aWMgaW50IGRtX2F2cHMyanNvbih2b2lkICpyb290LCBjSlNPTiAqYXZwcykKLSAJCQlicmVhazsK LSAKLSAJCWNhc2UgQVZQX1RZUEVfVU5TSUdORUQ2NDoKLS0JCQlMTV9EQkcoIiUyZC4gZ290IHVp bnQ2NCAgQVZQICVzICgldSksIHZhbHVlOiAlbHVcbiIsIGksIGRtX2F2cC5hdnBfbmFtZSwgaC0+ YXZwX2NvZGUsIGgtPmF2cF92YWx1ZS0+dTY0KTsKLSsJCQlMTV9EQkcoIiUyZC4gZ290IHVpbnQ2 NCAgQVZQICVzICgldSksIHZhbHVlOiAlIiBQUkl1NjQgIlxuIiwgaSwgZG1fYXZwLmF2cF9uYW1l LCBoLT5hdnBfY29kZSwgaC0+YXZwX3ZhbHVlLT51NjQpOwotIAkJCW51bV92YWwgPSAoZG91Ymxl KWgtPmF2cF92YWx1ZS0+dTY0OwotIAkJCWJyZWFrOwotIAotZGlmZiAtLWdpdCBhL21vZHVsZXMv aHR0cDJkL3NlcnZlci5jIGIvbW9kdWxlcy9odHRwMmQvc2VydmVyLmMKLWluZGV4IDAxNTRlMWU4 NTEuLjg3MDcyODYyODMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2h0dHAyZC9zZXJ2ZXIuYwotKysr IGIvbW9kdWxlcy9odHRwMmQvc2VydmVyLmMKLUBAIC02MzUsNyArNjM1LDcgQEAgc3RhdGljIGlu dCBvbl9mcmFtZV9yZWN2X2NhbGxiYWNrKG5naHR0cDJfc2Vzc2lvbiAqc2Vzc2lvbiwKLSAJc3dp dGNoIChmcmFtZS0+aGQudHlwZSkgewotIAljYXNlIE5HSFRUUDJfREFUQToKLSAJY2FzZSBOR0hU VFAyX0hFQURFUlM6Ci0tCQlMTV9EQkcoImgyIGhlYWRlciBbJWRdLCAlcCAlbGRcbiIsIGZyYW1l LT5oZC50eXBlLCBmcmFtZS0+aGVhZGVycy5udmEsIGZyYW1lLT5oZWFkZXJzLm52bGVuKTsKLSsJ CUxNX0RCRygiaDIgaGVhZGVyIFslZF0sICVwICV6dVxuIiwgZnJhbWUtPmhkLnR5cGUsIGZyYW1l LT5oZWFkZXJzLm52YSwgZnJhbWUtPmhlYWRlcnMubnZsZW4pOwotIAkJLyogQ2hlY2sgdGhhdCB0 aGUgY2xpZW50IHJlcXVlc3QgaGFzIGZpbmlzaGVkICovCi0gCQlpZiAoZnJhbWUtPmhkLmZsYWdz ICYgTkdIVFRQMl9GTEFHX0VORF9TVFJFQU0pIHsKLSAJCQlzdHJlYW1fZGF0YSA9CgpkaWZmIC0t Z2l0IGEvb3BlbnNpcHMtMDAwOS1GaXgtcG9pbnRlci10cnVuY2F0aW9uLXdhcm5pbmctb24tMzIt Yml0LWFyY2hpdGVjdHVyLnBhdGNoIGIvb3BlbnNpcHMtMDAwOS1GaXgtcG9pbnRlci10cnVuY2F0 aW9uLXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVjdHVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjkwOTcwOTMKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc2lwcy0w MDA5LUZpeC1wb2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIu cGF0Y2gKQEAgLTAsMCArMSwyOTEgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVu a292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI2IERlYyAyMDI1IDIxOjA4OjAw ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBwb2ludGVyIHRydW5jYXRpb24gd2FybmluZyBv biAzMi1iaXQgYXJjaGl0ZWN0dXJlcyBpbgorIGFhYV9kaWFtZXRlcgorTUlNRS1WZXJzaW9uOiAx LjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAorCitEdXJpbmcgY29tcGlsYXRpb24gb24gaTY4NiAoMzItYml0 KSBhcmNoaXRlY3R1cmUgd2l0aCBHQ0MgMTUsIGEgcG9pbnRlcgordHJ1bmNhdGlvbiB3YXJuaW5n IGFwcGVhcnM6CisKK2BgYAorYWFhX2RpYW1ldGVyLmM6IEluIGZ1bmN0aW9uICdkbV9zZW5kX2Fu c3dlcic6CithYWFfZGlhbWV0ZXIuYzo0MjM6NzM6IHdhcm5pbmc6IGNhc3QgdG8gcG9pbnRlciBm cm9tIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUgWy1XaW50LXRvLXBvaW50ZXItY2FzdF0KKyAg NDIzIHwgIGRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SUEwsIGFw cGlkLCBjbWRjb2RlLCAodm9pZCAqKWZkX3JlcSk7CitgYGAKKworVGhlIGBkbV9tZXNzYWdlYCBz dHJ1Y3Qgc3RvcmVzIGEgcG9pbnRlciB0byBhIEZyZWVEaWFtZXRlciBtZXNzYWdlCitzdHJ1Y3R1 cmUgaW4gdGhlIGBmZF9yZXFgIGZpZWxkLCBidXQgdGhlIHR5cGUgaXMgbWlzbWF0Y2hlZCBhY3Jv c3MKK2RpZmZlcmVudCBjb2RlIHBhdGhzOgorCisxLiBJbiBgYWFhX2RpYW1ldGVyLmNgLCBhIHBv aW50ZXIgaXMgc2VyaWFsaXplZCBhcyBgdWludDY0X3RgICg4IGJ5dGVzKQorMi4gSXQncyB0aGVu IGNhc3QgdG8gYHZvaWQgKmAgYW5kIHBhc3NlZCB0byBgX2RtX2NyZWF0ZV9tZXNzYWdlKClgCisz LiBPbiAqKmk2ODYqKiwgYHZvaWQgKmAgaXMgb25seSA0IGJ5dGVzLCBjYXVzaW5nICoqdHJ1bmNh dGlvbioqIG9mIHRoZQorICAgdXBwZXIgMzIgYml0cworNC4gSW4gYGRtX3BlZXIuY2AsIGl0J3Mg Y2FzdCBiYWNrIHRvIGBzdHJ1Y3QgbXNnICpgIGZvciB1c2UKKworKipPbiB4ODZfNjQgKDY0LWJp dCk6KioKKworLSBgdWludDY0X3RgID0gOCBieXRlcworLSBgdm9pZCAqYCA9IDggYnl0ZXMKKy0g Tm8gdHJ1bmNhdGlvbiwgd29ya3MgZmluZQorCisqKk9uIGk2ODYgKDMyLWJpdCk6KioKKworLSBg dWludDY0X3RgID0gOCBieXRlcworLSBgdm9pZCAqYCA9IDQgYnl0ZXMKKy0gKipUcnVuY2F0aW9u IG9jY3VycyoqLCBsb3NpbmcgdXBwZXIgMzIgYml0cyBvZiB0aGUgcG9pbnRlciEKKworQ2hhbmdl IGBmZF9yZXFgIGZyb20gYHZvaWQgKmAgdG8gYHVpbnRwdHJfdGAgdGhyb3VnaG91dCB0aGUgY29k ZWJhc2UuCisKK2B1aW50cHRyX3RgIGlzOgorCistICoqUG9ydGFibGUqKjogU2l6ZWQgY29ycmVj dGx5IGZvciBwb2ludGVycyBvbiBhbnkgYXJjaGl0ZWN0dXJlICg0CisgIGJ5dGVzIG9uIDMyLWJp dCwgOCBieXRlcyBvbiA2NC1iaXQpCistICoqU3RhbmRhcmQqKjogRGVmaW5lZCBpbiBDOTkgYDxz dGRpbnQuaD5gCistICoqU2VtYW50aWMqKjogRXhwbGljaXRseSBkZXNpZ25lZCBmb3Igc3Rvcmlu ZyBwb2ludGVyIHZhbHVlcyBhcworICBpbnRlZ2VycworLSAqKlNhZmUqKjogR3VhcmFudGVlZCBi eSBDOTkgdG8gcHJlc2VydmUgcG9pbnRlciB2YWx1ZXMgZHVyaW5nCisgIHJvdW5kLXRyaXAgY29u dmVyc2lvbnMKKworKioxLiBTdHJ1Y3QgZGVmaW5pdGlvbiAoYG1vZHVsZXMvYWFhX2RpYW1ldGVy L2RtX2ltcGwuaGAgbGluZSA5Myk6KioKKworYGBgYworc3RydWN0IGRtX21lc3NhZ2UgeworICAg IC8vIENoYW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxOworICAgIHVpbnRwdHJfdCBmZF9yZXE7Cisg ICAgLy8gLi4uCit9OworYGBgCisKKyoqMi4gRnVuY3Rpb24gc2lnbmF0dXJlIChgbW9kdWxlcy9h YWFfZGlhbWV0ZXIvZG1faW1wbC5oYCB+bGluZSAxNjUpOioqCisKK2BgYGMKK2FhYV9tZXNzYWdl ICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKKyAgICB1bnNp Z25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9yZXEp OworICAgIC8vIENoYW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxCitgYGAKKworKiozLiBGdW5jdGlv biBkZWZpbml0aW9uIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jYCBsaW5lIDE2OTUp OioqCisKK2BgYGMKK2FhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8s IGludCBtc2dfdHlwZSwKKyAgICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21k X2NvZGUsIHVpbnRwdHJfdCBmZF9tc2cpCisgICAgLy8gQ2hhbmdlZCBmcm9tOiB2b2lkICpmZF9t c2cKK2BgYAorCisqKjQuIENhbGwgc2l0ZXMgLSBwb2ludGVyIHRvIHVpbnRwdHJfdDoqKgorCitg YGBjCisvLyBhYWFfZGlhbWV0ZXIuYyBsaW5lIDQyMyAtIHJlbW92ZSB2b2lkKiBjYXN0OgorZG1z ZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNv ZGUsIGZkX3JlcSk7CisKKy8vIGRtX2ltcGwuYyAtIGFkZCBleHBsaWNpdCBjYXN0cyB3aGVuIHN0 b3JpbmcgcG9pbnRlcnM6CitkbS5mZF9yZXEgPSAodWludHB0cl90KXJlcTsKK2RtLT5mZF9yZXEg PSAodWludHB0cl90KWZkX21zZzsKK2BgYAorCisqKjUuIENhbGwgc2l0ZXMgd2l0aCBOVUxMIC0g dXNlIDAgaW5zdGVhZDoqKgorCitTaW5jZSBgdWludHB0cl90YCBpcyBhbiBpbnRlZ2VyIHR5cGUg KG5vdCBhIHBvaW50ZXIgdHlwZSksIHdlIHVzZSBgMGAKK2luc3RlYWQgb2YgYE5VTExgIHRvIHJl cHJlc2VudCAibm8gcG9pbnRlciI6CisKK2BgYGMKKy8vIE11bHRpcGxlIGxvY2F0aW9ucyBpbiBh YWFfZGlhbWV0ZXIuYywgZG1faW1wbC5jOgorZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxM LCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAwKTsKKy8vIENoYW5nZWQgZnJv bTogLi4uLCBOVUxMKTsKK2BgYAorCisqKk5vdGU6KiogSW4gQywgYE5VTExgIGlzIHR5cGljYWxs eSBgKCh2b2lkICopMClgIC0gYSBwb2ludGVyIHR5cGUuIFdoZW4KK3Bhc3NpbmcgdG8gYW4gaW50 ZWdlciBwYXJhbWV0ZXIgbGlrZSBgdWludHB0cl90YCwgd2UgdXNlIHRoZSBpbnRlZ2VyIGAwYAor ZGlyZWN0bHkgdG8gYXZvaWQgaW1wbGljaXQgcG9pbnRlci10by1pbnRlZ2VyIGNvbnZlcnNpb24g d2FybmluZ3MuCisKKyoqNi4gVXNhZ2Ugc2l0ZSAtIHVpbnRwdHJfdCB0byBwb2ludGVyIChgZG1f cGVlci5jYCk6KioKKworYGBgYworLy8gQ2hhbmdlZCBmcm9tOiBzdHJ1Y3QgbXNnICphbnMgPSAo c3RydWN0IG1zZyAqKWRtLT5mZF9yZXE7CitzdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAq KSh1aW50cHRyX3QpZG0tPmZkX3JlcTsKK2BgYAorCitUaGUgZG91YmxlIGNhc3QgYChzdHJ1Y3Qg bXNnICopKHVpbnRwdHJfdCl2YWx1ZWAgaXMgcmVxdWlyZWQgYnkgQzk5IGZvcgorZ3VhcmFudGVl ZCBjb3JyZWN0bmVzczoKKworMS4gKipDOTkgZ3VhcmFudGVlcyoqIHRoYXQgYW55IHBvaW50ZXIg Y2FuIGJlIGNvbnZlcnRlZCB0byBgdWludHB0cl90YCBhbmQgYmFjaworMi4gRGlyZWN0IGBpbnRl Z2VyIOKGkiBwb2ludGVyYCBjb252ZXJzaW9uIGlzICoqaW1wbGVtZW50YXRpb24tZGVmaW5lZCoq IGJlaGF2aW9yCiszLiBUaGUgcHJvcGVyIGNvbnZlcnNpb24gcGF0aCBpczogYHBvaW50ZXIg4oaS IHVpbnRwdHJfdCDihpIgcG9pbnRlcmAKKworV2hpbGUgYSBzaW5nbGUgY2FzdCBmcm9tIGB1aW50 cHRyX3RgIHRvIHBvaW50ZXIgb2Z0ZW4gd29ya3MgaW4gcHJhY3RpY2UsCit0aGUgZG91YmxlIGNh c3QgZXhwbGljaXRseSBmb2xsb3dzIHRoZSBDOTkgc3RhbmRhcmQncyBndWFyYW50ZWVkCitjb252 ZXJzaW9uIHBhdGgsIGVuc3VyaW5nIHRoZSBjb2RlIGlzIHN0cmljdGx5IGNvbmZvcm1hbnQgYW5k IHdvbid0CitjYXVzZSBpc3N1ZXMgd2l0aCBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgb3IgZnV0dXJl IGNvbXBpbGVyCitvcHRpbWl6YXRpb25zLgorCitUaGUgcGF0dGVybiBpczoKKy0gKipQb2ludGVy IOKGkiB1aW50cHRyX3QqKjogYCh1aW50cHRyX3QpcG9pbnRlcmAKKy0gKip1aW50cHRyX3Qg4oaS IFBvaW50ZXIqKjogYChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2YWx1ZWAKKy0gKipOdWxsIHZh bHVlKio6IGAwYCAobm90IGBOVUxMYCwgc2luY2UgYHVpbnRwdHJfdGAgaXMgYW4gaW50ZWdlciB0 eXBlKQorCitUaGlzIGZpeCBlbnN1cmVzIHBvaW50ZXJzIGFyZSBjb3JyZWN0bHkgcHJlc2VydmVk IG9uIGFsbCBhcmNoaXRlY3R1cmVzCit3aXRob3V0IHRydW5jYXRpb24uCisKK1NpZ25lZC1vZmYt Ynk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitBc3Npc3RlZC1ieTogQ2xh dWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KKworZGlmZiAtLWdpdCBhL21vZHVs ZXMvYWFhX2RpYW1ldGVyL2FhYV9kaWFtZXRlci5jIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFh X2RpYW1ldGVyLmMKK2luZGV4IDNhNDI2YmQ5MjkuLmQxYTljOGNiZDIgMTAwNjQ0CistLS0gYS9t b2R1bGVzL2FhYV9kaWFtZXRlci9hYWFfZGlhbWV0ZXIuYworKysrIGIvbW9kdWxlcy9hYWFfZGlh bWV0ZXIvYWFhX2RpYW1ldGVyLmMKK0BAIC0xOSw2ICsxOSw3IEBACisgICovCisgCisgI2luY2x1 ZGUgPGZyZWVEaWFtZXRlci9leHRlbnNpb24uaD4KKysjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisg I2luY2x1ZGUgIi4uLy4uL3NyX21vZHVsZS5oIgorICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5o IgorQEAgLTMxNSw3ICszMTYsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfcmVxdWVzdChzdHJ1Y3Qg c2lwX21zZyAqbXNnLCBpbnQgKmFwcF9pZCwgaW50ICpjbWRfY29kZSwKKyAJCWdvdG8gZXJyb3I7 CisgCX0KKyAKKy0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JF USwgKmFwcF9pZCwgKmNtZF9jb2RlLCBOVUxMKTsKKysJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2Fn ZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAwKTsKKyAJaWYgKCFk bXNnKSB7CisgCQlMTV9FUlIoIm9vbVxuIik7CisgCQlnb3RvIGVycm9yOworQEAgLTQyNSw3ICs0 MjYsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfYW5zd2VyKHN0cnVjdCBzaXBfbXNnICptc2csIHN0 ciAqYXZwX2pzb24sIGludCAqaXNfZXJyb3IpCisgCQlyZXZlcnNlX2hleDJpbnQ2NChyZXMucnMu cywgcmVzLnJzLmxlbiwgMSwgJmZkX3JlcSk7CisgCX0KKyAKKy0JZG1zZyA9IF9kbV9jcmVhdGVf bWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsICh2b2lkICopZmRf cmVxKTsKKysJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwg YXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7CisgCWlmICghZG1zZykgeworIAkJTE1fRVJSKCJvb21c biIpOworIAkJZ290byBlcnJvcjsKK0BAIC01ODEsNyArNTgyLDcgQEAgc3RhdGljIGludCBkbV9z ZW5kX3JlcXVlc3RfYXN5bmMoc3RydWN0IHNpcF9tc2cgKm1zZywgYXN5bmNfY3R4ICpjdHgsCisg CQlnb3RvIGVycm9yOworIAl9CisgCistCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwg QUFBX0NVU1RPTV9SRVEsICphcHBfaWQsICpjbWRfY29kZSwgTlVMTCk7CisrCWRtc2cgPSBfZG1f Y3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICphcHBfaWQsICpjbWRfY29kZSwg MCk7CisgCWlmICghZG1zZykgeworIAkJTE1fRVJSKCJvb21cbiIpOworIAkJZ290byBlcnJvcjsK K2RpZmYgLS1naXQgYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMgYi9tb2R1bGVzL2Fh YV9kaWFtZXRlci9kbV9pbXBsLmMKK2luZGV4IDQzM2UwNzgzNTguLjdkZmY5ZmJiZjcgMTAwNjQ0 CistLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMKKysrKyBiL21vZHVsZXMvYWFh X2RpYW1ldGVyL2RtX2ltcGwuYworQEAgLTIxLDYgKzIxLDcgQEAKKyAjaW5jbHVkZSA8ZnJlZURp YW1ldGVyL2V4dGVuc2lvbi5oPgorICNpbmNsdWRlIDxzeXMvZXZlbnRmZC5oPgorICNpbmNsdWRl IDxpbnR0eXBlcy5oPgorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5jbHVkZSAiLi4vLi4v dXQuaCIKKyAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKK0BAIC02MDIsNyArNjAzLDcgQEAg c3RhdGljIGludCBkbV9yZWNlaXZlX3JlcShzdHJ1Y3QgbXNnICoqX3JlcSwgc3RydWN0IGF2cCAq IGF2cCwgc3RydWN0IHNlc3Npb24gKgorIAorIAkJbWVtc2V0KCZkbSwgMCwgc2l6ZW9mIGRtKTsK KyAKKy0JCWRtLmZkX3JlcSA9IHJlcTsKKysJCWRtLmZkX3JlcSA9ICh1aW50cHRyX3QpcmVxOwor IAkJZG0uYXBwX2lkID0gaGRyLT5tc2dfYXBwbDsKKyAJCWRtLmNtZF9jb2RlID0gaGRyLT5tc2df Y29kZTsKKyAJCWRtLmVycm9yX2JpdCA9IDE7CitAQCAtMTc1NSw3ICsxNzU2LDcgQEAgaW50IGRt X2FwaV9maW5kX2NtZChkaWFtZXRlcl9jb25uICpjb25uLCBpbnQgY21kX2NvZGUpCisgfQorIAor IGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlw ZSwKKy0gICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwg dm9pZCAqZmRfbXNnKQorKyAgICAgICAgdW5zaWduZWQgaW50IGFwcF9pZCwgdW5zaWduZWQgaW50 IGNtZF9jb2RlLCB1aW50cHRyX3QgZmRfbXNnKQorIHsKKyAJYWFhX21lc3NhZ2UgKm07CisgCXN0 cnVjdCBkbV9tZXNzYWdlICpkbTsKK0BAIC0xNzgyLDcgKzE3ODMsNyBAQCBhYWFfbWVzc2FnZSAq X2RtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUsCisgCWRtLT5hbSA9 IG07CisgCWRtLT5hcHBfaWQgPSBhcHBfaWQ7CisgCWRtLT5jbWRfY29kZSA9IGNtZF9jb2RlOwor LQlkbS0+ZmRfcmVxID0gZmRfbXNnOworKwlkbS0+ZmRfcmVxID0gKHVpbnRwdHJfdClmZF9tc2c7 CisgCisgCXJldHVybiBtOworIH0KK0BAIC0xNzkwLDcgKzE3OTEsNyBAQCBhYWFfbWVzc2FnZSAq X2RtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUsCisgCisgYWFhX21l c3NhZ2UgKmRtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUpCisgewor LQlyZXR1cm4gX2RtX2NyZWF0ZV9tZXNzYWdlKF8sIG1zZ190eXBlLCAwLCAwLCBOVUxMKTsKKysJ cmV0dXJuIF9kbV9jcmVhdGVfbWVzc2FnZShfLCBtc2dfdHlwZSwgMCwgMCwgMCk7CisgfQorIAor IAorQEAgLTIxNDUsNyArMjE0Niw3IEBAIGludCBkbV9hcGlfc2VuZF9yZXEoZGlhbWV0ZXJfY29u biAqY29ubiwgaW50IGFwcF9pZCwgaW50IGNtZF9jb2RlLCBjSlNPTiAqcmVxLCBkCisgCQlyZXR1 cm4gLTI7CisgCX0KKyAKKy0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VT VE9NX1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgTlVMTCk7CisrCWRtc2cgPSBfZG1fY3JlYXRlX21l c3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwgY21kX2NvZGUsIDApOworIAlpZiAo IWRtc2cpIHsKKyAJCUxNX0VSUigib29tXG4iKTsKKyAJCXJldHVybiAtMTsKK0BAIC0yMTgyLDcg KzIxODMsNyBAQCBpbnQgZG1fYXBpX3NlbmRfcmVxX2FzeW5jKGRpYW1ldGVyX2Nvbm4gKmNvbm4s IGludCBhcHBfaWQsIGludCBjbWRfY29kZSwgY0pTT04gKgorIAkJcmV0dXJuIC0yOworIAl9Cisg CistCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9p ZCwgY21kX2NvZGUsIE5VTEwpOworKwlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFB QV9DVVNUT01fUkVRLCBhcHBfaWQsIGNtZF9jb2RlLCAwKTsKKyAJaWYgKCFkbXNnKSB7CisgCQlM TV9FUlIoIm9vbVxuIik7CisgCQlyZXR1cm4gLTE7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9hYWFf ZGlhbWV0ZXIvZG1faW1wbC5oIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oCitpbmRl eCBiMjVjZDc3ZjE5Li41MmUzZjIzZGE1IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0 ZXIvZG1faW1wbC5oCisrKysgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKK0BAIC0y NCw2ICsyNCw3IEBACisgI2luY2x1ZGUgIi4uLy4uL2FhYS9hYWEuaCIKKyAjaW5jbHVkZSAiLi4v Li4vbWVtL3NobV9tZW0uaCIKKyAjaW5jbHVkZSAiZGlhbWV0ZXJfYXBpLmgiCisrI2luY2x1ZGUg PHN0ZGludC5oPgorIAorICNkZWZpbmUgX19GRF9DSEVDSyhfX2NhbGxfXywgX19yZXRva19fLCBf X3JldHZhbF9fKSBcCisgCWRvIHsgXAorQEAgLTkxLDcgKzkyLDcgQEAgc3RydWN0IF9kbV9kaWN0 IHsKKyBzdHJ1Y3QgZG1fbWVzc2FnZSB7CisgCWFhYV9tZXNzYWdlICphbTsgLyogYmFjay1yZWZl cmVuY2UsIHVzZWZ1bCBkdXJpbmcgY2xlYW51cCAqLworIAorLQl2b2lkICpmZF9yZXE7CisrCXVp bnRwdHJfdCBmZF9yZXE7CisgCXVuc2lnbmVkIGludCBhcHBfaWQ7ICAgLyogdGhlc2UgdHdvIGFy ZSB1c2VkIHdoZW4gc2VuZGluZyAqLworIAl1bnNpZ25lZCBpbnQgY21kX2NvZGU7IC8qIGN1c3Rv bSBEaWFtZXRlciByZXF1ZXN0cyAqLworIAlpbnQgZXJyb3JfYml0OworQEAgLTE4Miw3ICsxODMs NyBAQCBpbnQgZG1fcmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpOworIGludCBkbV9maW5kKGFhYV9j b25uICpfLCBhYWFfbWFwICptYXAsIGludCBvcCk7CisgYWFhX21lc3NhZ2UgKmRtX2NyZWF0ZV9t ZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUpOworIGFhYV9tZXNzYWdlICpfZG1fY3Jl YXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKKy0gICAgICAgIHVuc2lnbmVk IGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdm9pZCAqZmRfcmVxKTsKKysgICAg ICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdWludHB0cl90 IGZkX3JlcSk7CisgaW50IGRtX2F2cF9hZGQoYWFhX2Nvbm4gKl8sIGFhYV9tZXNzYWdlICptc2cs IGFhYV9tYXAgKmF2cCwgdm9pZCAqdmFsLAorICAgICAgICAgICAgICAgIGludCB2YWxfbGVuZ3Ro LCBpbnQgdmVuZG9yKTsKKyBpbnQgZG1fYnVpbGRfYXZwcyhzdHJ1Y3QgbGlzdF9oZWFkICpzdWJh dnBzLCBjSlNPTiAqYXJyYXkpOworZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2Rt X3BlZXIuYyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYworaW5kZXggOWRiZmQxZDZj OS4uMDZiMTdhODg0NSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIu YworKysrIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5jCitAQCAtMjQsNiArMjQsNyBA QAorICNpbmNsdWRlICIuLi8uLi9zcl9tb2R1bGUuaCIKKyAjaW5jbHVkZSAiLi4vLi4vbG9ja2lu Zy5oIgorICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5oIgorKyNpbmNsdWRlIDxzdGRpbnQuaD4K KyAKKyAjaW5jbHVkZSAiZG1faW1wbC5oIgorICNpbmNsdWRlICJkbV9wZWVyLmgiCitAQCAtNTEx LDcgKzUxMiw3IEBAIHN0YXRpYyBpbnQgZG1fc2VuZF9jdXN0b21fcmVxKHN0cnVjdCBkbV9tZXNz YWdlICptc2cpCisgCisgaW50IGRtX3NlbmRfY3VzdG9tX3JwbChzdHJ1Y3QgZG1fbWVzc2FnZSAq ZG0pCisgeworLQlzdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKWRtLT5mZF9yZXE7Cisr CXN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdClkbS0+ZmRfcmVxOwor IAlpbnQgcmMsIGZsYWdzID0gMDsKKyAKKyAJaWYgKCFkbV9zZXJ2ZXJfYXV0b3JlcGx5X2Vycm9y ICYmIGRtX3JlbW92ZV91bnJlcGxpZWRfcmVxKGFucykgIT0gMCkgewoKZGlmZiAtLWdpdCBhL29w ZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3Rh dHMtbW9kdS5wYXRjaCBiL29wZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13 YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4yNjg5ZTRlCi0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNpcHMtMDAxMC1GaXgt QzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCkBA IC0wLDAgKzEsMzgxIEBACitGcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPgorRGF0ZTogU2F0LCAzMSBKYW4gMjAyNiAxNToxMToyMCArMDEwMAor U3ViamVjdDogW1BBVENIXSBGaXggQzkwLXN0eWxlIGRlY2xhcmF0aW9uIHdhcm5pbmdzIGluIHNu bXBzdGF0cyBtb2R1bGUKKworQnVpbGQgZmFpbHMgd2l0aCBgLVdlcnJvcj1kZWNsYXJhdGlvbi1h ZnRlci1zdGF0ZW1lbnRgIChlbmZvcmNlZCBieQorbmV0LXNubXAgcGtnLWNvbmZpZykgZHVlIHRv IHZhcmlhYmxlcyBkZWNsYXJlZCBhZnRlciBleGVjdXRhYmxlCitzdGF0ZW1lbnRzOgorCitgYGAK K29wZW5zZXJPYmplY3RzLmM6NjE5Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVj bGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0K KyAgNjE5IHwgICAgICAgICBpbnQgbmV3X3RocmVzaG9sZCA9IChpbnQpKGxvbmcpKGludCAqKXZh bDsKKworb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYzoyNDQ6MTc6IGVycm9yOiBJU08gQzkwIGZv cmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFm dGVyLXN0YXRlbWVudF0KKyAgMjQ0IHwgICAgICAgICAgICAgICAgIGNoYXIgKm9wZW5CcmFjZVBv c2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOworCitvcGVuc2VyU0lQQ29tbW9uT2JqZWN0 cy5jOjQ3NTo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQg Y29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCisgIDQ3NSB8ICAgICAg ICAgY2hhciAqc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOworCitvcGVuc2VyU0lQQ29udGFj dFRhYmxlLmM6MjY2Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25z IGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgMjY2IHwg ICAgICAgICBzdGF0aWMgY2hhciAqZGVmYXVsdFVzZXIgPSAiRGVmYXVsdFVzZXIiOworCitvcGVu c2VyU0lQQ29udGFjdFRhYmxlLmM6MzYxOjk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQg ZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVu dF0KKyAgMzYxIHwgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3Qt PnJlcXVlc3R2YjsKK2BgYAorCitUaGUgbmV0LXNubXAgbGlicmFyeSdzIHBrZy1jb25maWcgYWRk cworYC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50YCB0byBDRkxBR1MsIGVuZm9y Y2luZyBDOTAtc3R5bGUKK2RlY2xhcmF0aW9uIG9yZGVyaW5nIChhbGwgZGVjbGFyYXRpb25zIGJl Zm9yZSBzdGF0ZW1lbnRzKS4KKworV2hpbGUgT3BlblNJUFMgYWRoZXJlcyB0byB0aGUgQzk5IHN0 YW5kYXJkICh3aGljaCBhbGxvd3MgbWl4ZWQKK2RlY2xhcmF0aW9ucyBhbmQgY29kZSksIHRoZSBu ZXQtc25tcCBsaWJyYXJ5IGNvdWxkIHJlcXVpcmUgQzkwLXN0eWxlCitkZWNsYXJhdGlvbnMgZm9y IG1vZHVsZXMgdGhhdCBsaW5rIGFnYWluc3QgaXQuIEZvbGxvd2luZyB0aGlzIHN0eWxlCitkb2Vz bid0IGh1cnQgQzk5IGNvbXBhdGliaWxpdHkgYW5kIGltcHJvdmVzIGNvZGUgcG9ydGFiaWxpdHku YAorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgor QXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+CisKK2Rp ZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jIGIvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlck9iamVjdHMuYworaW5kZXggMTgwYjYyZGRhNy4uOTA5ZGI0YzgwYiAx MDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKKysrKyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKK0BAIC02MDUsNiArNjA1LDggQEAgaW50 IGhhbmRsZV9vcGVuc2VyRGlhbG9nTGltaXRNYWpvckFsYXJtKG5ldHNubXBfbWliX2hhbmRsZXIg KmhhbmRsZXIsCisgc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3Qg dHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCisgCWludCAqbmV3VmFsKQorIHsKKysJaW50 IG5ld190aHJlc2hvbGQ7CisrCisgCWlmICh2YWw9PTApIHsKKyAJCUxNX0VSUigiJXMgY2FsbGVk IHdpdGggYSBudWxsIHZhbHVlIVxuIiwgdmFyU3RyKTsKKyAJCXJldHVybiAtMTsKK0BAIC02MTYs NyArNjE4LDcgQEAgc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3Qg dHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCisgCQlyZXR1cm4gLTE7CisgCX0KKyAKKy0J aW50IG5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7CisrCW5ld190aHJlc2hv bGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7CisgCisgCWlmIChuZXdfdGhyZXNob2xkIDwgLTEp IHsKKyAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYW4gaW52YWxpZCB0aHJlc2hvbGQ9JWQhXG4i LAorZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3Rz LmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jCitpbmRleCBl MzdhYjZlZjJhLi5mMmRkYmE1YTdhIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3Bl bnNlclNJUENvbW1vbk9iamVjdHMuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UENvbW1vbk9iamVjdHMuYworQEAgLTIyNSw2ICsyMjUsOCBAQCBpbnQgaGFuZGxlX29wZW5zZXJT SVBTZXJ2aWNlU3RhcnRUaW1lKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCisgCisgCWlu dCBlbGFwc2VkVGltZSA9IDA7CisgCWNoYXIgYnVmZmVyW1NOTVBHRVRfTUFYX0JVRkZFUl07Cisr CWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uID0gTlVMTDsKKysJY2hhciAqY2xvc2VkQnJhY2VQb3Np dGlvbiA9IE5VTEw7CisgCisgCUZJTEUgKnRoZUZpbGUgPSBmb3BlbihTTk1QR0VUX1RFTVBfRklM RSwgInIiKTsKKyAKK0BAIC0yNDEsOCArMjQzLDggQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2Vy dmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAorIAorIAkJLyogRmlu ZCB0aGUgcG9zaXRpb25zIG9mICcoJyBhbmQgJyknIHNvIHdlIGNhbiBleHRyYWN0IG91dCB0aGUK KyAJCSAqIHRpbWV0aWNrcyB2YWx1ZS4gKi8KKy0JCWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAg PSBzdHJjaHIoYnVmZmVyLCAnKCcpOworLQkJY2hhciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IHN0 cmNocihidWZmZXIsICcpJyk7CisrCQlvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZl ciwgJygnKTsKKysJCWNsb3NlZEJyYWNlUG9zaXRpb24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOwor IAorIAkJLyogTWFrZSBzdXJlIHRoYXQgYm90aCB0aGUgJygnIGFuZCAnKScgZXhpc3QgaW4gdGhl IGZpbGUsIGFuZAorIAkJICogdGhhdCAnKCcgb2NjdXJzIGVhcmxpZXIgdGhhbiB0aGUgJyknLiAg SWYgYWxsIHRoZXNlCitAQCAtNDY0LDYgKzQ2Niw3IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUE90 aGVyd2lzZURpc2NhcmRlZE1zZ3MobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKKyAgKi8K KyBpbnQgaGFuZGxlU2lwRW50aXR5VHlwZSggbW9kcGFyYW1fdCB0eXBlLCB2b2lkKiB2YWwpCisg eworKwljaGFyICpzdHJFbnRpdHlUeXBlID0gTlVMTDsKKyAKKyAJLyogQnkgZGVmYXVsdCB3ZSBz dGFydCBvZmYgYXMgIm90aGVyIi4gKi8KKyAJc3RhdGljIGNoYXIgZmlyc3RUaW1lID0gMTsKK0BA IC00NzIsNyArNDc1LDcgQEAgaW50IGhhbmRsZVNpcEVudGl0eVR5cGUoIG1vZHBhcmFtX3QgdHlw ZSwgdm9pZCogdmFsKQorIAkJcmV0dXJuIC0xOworIAl9CisgCistCWNoYXIgKnN0ckVudGl0eVR5 cGUgPSAoY2hhciAqKXZhbDsKKysJc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOworIAorIAkv KiBUaGlzIGlzIG91ciBmaXJzdCB0aW1lIHRocm91Z2ggdGhpcyBmdW5jdGlvbiwgc28gd2UgbmVl ZCB0byBjaGFuZ2UKKyAJICogb3BlbnNlckVudGl0eVR5cGUgZnJvbSBpdHMgZGVmYXVsdCB0byAw LCBhbGxvd2luZyBvdXIgYml0bWFza3MgYmVsb3cKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2Vy U0lQQ29udGFjdFRhYmxlLmMKK2luZGV4IDdlZGMxMjEwY2UuLjAzNTg4MDI5YzggMTAwNjQ0Cist LS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMKKysrKyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250YWN0VGFibGUuYworQEAgLTI2MSwxMCArMjYx LDEwIEBAIHZvaWQgZGVsZXRlQ29udGFjdFJvdyhpbnQgdXNlckluZGV4LCBpbnQgY29udGFjdElu ZGV4KQorICAqLworIHZvaWQgaW5pdF9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKHZvaWQpCisgewor LQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBDb250YWN0VGFibGUoKTsKKy0KKyAJc3RhdGlj IGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKKyAKKysJaW5pdGlhbGl6ZV90YWJs ZV9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKCk7CisrCisgCWNyZWF0ZUNvbnRhY3RSb3coMSwgMSwg ZGVmYXVsdFVzZXIsIE5VTEwpOworIH0KKyAKK0BAIC0zNTQsMTQgKzM1NCwxNiBAQCBpbnQgb3Bl bnNlclNJUENvbnRhY3RUYWJsZV9nZXRfdmFsdWUoCisgCWNoYXIgICAgICAgKnJldHJpZXZlZEV4 cGlyeTsKKyAJc3RydWN0IHRtICB0aW1lVmFsdWU7CisgCisrCW5ldHNubXBfdmFyaWFibGVfbGlz dCAqdmFyID0gTlVMTDsKKysJb3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICpjb250ZXh0 ID0gTlVMTDsKKysKKyAJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUg dGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisgCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFu Z2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KKyAJY29uc3VtZUlu dGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJl cXVlc3QtPnJlcXVlc3R2YjsKKysJdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOworIAorLQlvcGVu c2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKmNvbnRleHQgPQorLQkJKG9wZW5zZXJTSVBDb250 YWN0VGFibGVfY29udGV4dCAqKWl0ZW07CisrCWNvbnRleHQgPSAob3BlbnNlclNJUENvbnRhY3RU YWJsZV9jb250ZXh0ICopaXRlbTsKKyAKKyAJc3dpdGNoKHRhYmxlX2luZm8tPmNvbG51bSkKKyAJ eworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYyBi L21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYworaW5kZXggYTEwNzU4Mjcz YS4uM2EwM2I3MmIyMSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQ b3J0VGFibGUuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5j CitAQCAtMTA0LDE5ICsxMDQsMTcgQEAgb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpnZXRS b3coaW50IGlwVHlwZSwgdW5zaWduZWQgaW50ICppcEFkZHJlc3MpCisgeworIAlpbnQgbGVuZ3Ro T2ZPSUQ7CisgCW9pZCAqY3VycmVudE9JREluZGV4ID0gY3JlYXRlSW5kZXgoaXBUeXBlLCBpcEFk ZHJlc3MsICZsZW5ndGhPZk9JRCk7CisrCW5ldHNubXBfaW5kZXggdGhlSW5kZXg7CisrCW9wZW5z ZXJTSVBQb3J0VGFibGVfY29udGV4dCAqcm93VG9SZXR1cm4gPSBOVUxMOworIAorIAlpZiAoY3Vy cmVudE9JREluZGV4ID09IE5VTEwpCisgCXsKKyAJCXJldHVybiBOVUxMOworIAl9CisgCistCW5l dHNubXBfaW5kZXggdGhlSW5kZXg7CistCisgCXRoZUluZGV4Lm9pZHMgPSBjdXJyZW50T0lESW5k ZXg7CisgCXRoZUluZGV4LmxlbiAgPSBsZW5ndGhPZk9JRDsKKyAKKy0Jb3BlbnNlclNJUFBvcnRU YWJsZV9jb250ZXh0ICpyb3dUb1JldHVybjsKKy0KKyAJLyogTGV0cyBjaGVjayB0byBzZWUgaWYg dGhlcmUgaXMgYW4gZXhpc3Rpbmcgcm93LiAqLworIAlyb3dUb1JldHVybiA9IENPTlRBSU5FUl9G SU5EKGNiLmNvbnRhaW5lciwgJnRoZUluZGV4KTsKKyAKK0BAIC0yMTgsOCArMjE2LDYgQEAgdm9p ZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKKyB7CisgCWludCBjdXJTTk1QSW5kZXgg PSAwOworIAorLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKKy0KKyAJ dW5zaWduZWQgaW50ICpVRFBMaXN0ID0gTlVMTDsKKyAJdW5zaWduZWQgaW50ICpUQ1BMaXN0ID0g TlVMTDsKKyAJdW5zaWduZWQgaW50ICpUTFNMaXN0ID0gTlVMTDsKK0BAIC0yMjgsNiArMjI0LDgg QEAgdm9pZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKKyAJaW50IG51bVRDUFNvY2tl dHM7CisgCWludCBudW1UTFNTb2NrZXRzOworIAorKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJT SVBQb3J0VGFibGUoKTsKKysKKyAJLyogUmV0cmlldmUgdGhlIGxpc3Qgb2YgdGhlIG51bWJlciBv ZiBVRFAgYW5kIFRDUCBzb2NrZXRzLiAqLworIAludW1VRFBTb2NrZXRzID0gZ2V0X3NvY2tldF9s aXN0X2Zyb21fcHJvdG8oJlVEUExpc3QsIFBST1RPX1VEUCk7CisgCW51bVRDUFNvY2tldHMgPSBn ZXRfc29ja2V0X2xpc3RfZnJvbV9wcm90bygmVENQTGlzdCwgUFJPVE9fVENQKTsKK2RpZmYgLS1n aXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMgYi9t b2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKK2luZGV4IDMy NGRmNjE4ZmQuLmE1NGI1ODM3NTIgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVu c2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKKysrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBSZWdVc2VyTG9va3VwVGFibGUuYworQEAgLTUxNCwyMyArNTE0LDIwIEBAIHZvaWQgb3Bl bnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRfcmVzZXJ2ZTIoIG5ldHNubXBfcmVxdWVzdF9n cm91cCAqcmcgKQorICAqLworIHZvaWQgb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRf YWN0aW9uKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJnICkKKyB7CistCS8qIEZpcnN0IHRoaW5n cyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgor LQkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZy ZXNoZXN0IGRhdGEuICovCistCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKKy0KKyAJYW9y VG9JbmRleFN0cnVjdF90ICpoYXNoUmVjb3JkOworLQorIAluZXRzbm1wX3ZhcmlhYmxlX2xpc3Qg KnZhcjsKKysJbmV0c25tcF9yZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7CisrCWludCByb3df ZXJyID0gMDsKKysJb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICpyb3dfY3R4 ID0gTlVMTDsKKysJb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0 eCA9IE5VTEw7CisgCistCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqcm93 X2N0eCA9CistCQkob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4 aXN0aW5nX3JvdzsKKy0KKy0Jb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1 bmRvX2N0eCA9CistCQkob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmct PnVuZG9faW5mbzsKKysJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUg dGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisrCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFu Z2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KKysJY29uc3VtZUlu dGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRzbm1wX3JlcXVlc3RfZ3JvdXBfaXRlbSAqY3Vy cmVudDsKKysJcm93X2N0eCA9IChvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQg KilyZy0+ZXhpc3Rpbmdfcm93OworIAorLQlpbnQJCQlyb3dfZXJyID0gMDsKKysJdW5kb19jdHgg PSAob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsK KyAKKyAJLyogQ29weSB0aGUgYWN0dWFsIGRhdGEgdG8gdGhlIHJvdy4gKi8KKyAJZm9yKCBjdXJy ZW50ID0gcmctPmxpc3Q7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0ICkgeworZGlm ZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYworaW5kZXggNDNiMTRjZGVi Ny4uOWNmMDI5ZGY5ZCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBS ZWdVc2VyVGFibGUuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJU YWJsZS5jCitAQCAtMjI1LDE1ICsyMjUsMTQgQEAgdm9pZCB1cGRhdGVVc2VyKGNoYXIgKnVzZXJO YW1lKQorICAqIFJldHVybnM6IFRoZSByb3dzIHVzZXJJbmRleCBvbiBzdWNjZXNzLCBhbmQgMCBv dGhlcndpc2UuICovCisgaW50IGNyZWF0ZVJlZ1VzZXJSb3coY2hhciAqc3RyaW5nVG9SZWdpc3Rl cikKKyB7CistCWludCBzdGF0aWMgaW5kZXggPSAwOworLQorLQlpbmRleCsrOworLQorIAlvcGVu c2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKnRoZVJvdzsKKy0KKyAJb2lkICAqT0lESW5kZXg7 CisgCWludCAgc3RyaW5nTGVuZ3RoOworIAorKwlpbnQgc3RhdGljIGluZGV4ID0gMDsKKysKKysJ aW5kZXgrKzsKKysKKyAJdGhlUm93ID0gU05NUF9NQUxMT0NfVFlQRURFRihvcGVuc2VyU0lQUmVn VXNlclRhYmxlX2NvbnRleHQpOworIAorIAlpZiAodGhlUm93ID09IE5VTEwpIHsKK0BAIC0yODAs MTIgKzI3OSwxMiBAQCBpbnQgY3JlYXRlUmVnVXNlclJvdyhjaGFyICpzdHJpbmdUb1JlZ2lzdGVy KQorIC8qIEluaXRpYWxpemVzIHRoZSBvcGVuc2VyU0lQUmVnVXNlclRhYmxlIG1vZHVsZS4gICov Cisgdm9pZCBpbml0X29wZW5zZXJTSVBSZWdVc2VyVGFibGUodm9pZCkKKyB7CistCS8qIFJlZ2lz dGVyIHRoaXMgdGFibGUgd2l0aCB0aGUgbWFzdGVyIGFnZW50ICovCistCWluaXRpYWxpemVfdGFi bGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSgpOworLQorIAkvKiBXZSBuZWVkIHRvIGNyZWF0ZSBh IGRlZmF1bHQgcm93LCBzbyBjcmVhdGUgRGVmYXVsdFVzZXIgKi8KKyAJc3RhdGljIGNoYXIgKmRl ZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKKyAKKysJLyogUmVnaXN0ZXIgdGhpcyB0YWJsZSB3 aXRoIHRoZSBtYXN0ZXIgYWdlbnQgKi8KKysJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUmVn VXNlclRhYmxlKCk7CisrCisgCWNyZWF0ZVJlZ1VzZXJSb3coZGVmYXVsdFVzZXIpOworIH0KKyAK K0BAIC0zNTAsMTQgKzM0OSwxNiBAQCBpbnQgb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9nZXRfdmFs dWUoCisgCQluZXRzbm1wX2luZGV4ICppdGVtLAorIAkJbmV0c25tcF90YWJsZV9yZXF1ZXN0X2lu Zm8gKnRhYmxlX2luZm8gKQorIHsKKysJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxM OworKwlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKmNvbnRleHQgPSBOVUxMOworKwor IAkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9j ZXNzIGJ1ZmZlciwgaW4KKyAJICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQg dG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAqLworIAljb25zdW1lSW50ZXJwcm9jZXNzQnVm ZmVyKCk7CisgCistCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVzdC0+cmVxdWVz dHZiOworKwl2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7CisgCistCW9wZW5zZXJTSVBSZWdVc2Vy VGFibGVfY29udGV4dCAqY29udGV4dCA9CistCQkob3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250 ZXh0ICopaXRlbTsKKysJY29udGV4dCA9IChvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQg KilpdGVtOworIAorIAlzd2l0Y2godGFibGVfaW5mby0+Y29sbnVtKQorIAl7CitkaWZmIC0tZ2l0 IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYyBiL21vZHVs ZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlLmMKK2luZGV4IDJiMzk2YzY5 ODUuLjc5ZjNhMTI5YTMgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQ U3RhdHVzQ29kZXNUYWJsZS5jCisrKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3Rh dHVzQ29kZXNUYWJsZS5jCitAQCAtMzEwLDYgKzMxMCw3IEBAIGludCBvcGVuc2VyU0lQU3RhdHVz Q29kZXNUYWJsZV9jYW5fZGVsZXRlKAorIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NvbnRl eHQgKgorIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0ZV9yb3coIG5ldHNubXBfaW5k ZXgqIGhkcikKKyB7CisrCWludCBjb2RlSW5kZXg7CisgCXN0YXRfdmFyICppbl9zdGF0dXNfY29k ZTsKKyAJc3RhdF92YXIgKm91dF9zdGF0dXNfY29kZTsKKyAKK0BAIC0zMzcsNyArMzM4LDcgQEAg b3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY3JlYXRlX3JvdyggbmV0c25tcF9pbmRleCogaGRy KQorIAkvKiBSZXRyaWV2ZSB0aGUgaW5kZXggZm9yIHRoZSBzdGF0dXMgY29kZSwgYW5kIHRoZW4g YXNzaWduIHRoZSBzdGFydGluZworIAkgKiB2YWx1ZXMuICBUaGUgc3RhcnRpbmcgdmFsdWVzIHdp bGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgZGVsdGFzIGR1cmluZworIAkgKiB0aGUgbmV4dCBzbm1w Z2V0L3NubXB3YWxrL3NubXB0YWJsZS9ldGMuICovCistCWludCBjb2RlSW5kZXggPSBjdHgtPm9w ZW5zZXJTSVBTdGF0dXNDb2RlVmFsdWU7CisrCWNvZGVJbmRleCA9IGN0eC0+b3BlbnNlclNJUFN0 YXR1c0NvZGVWYWx1ZTsKKyAKKyAJY3R4LT5zdGFydGluZ0luU3RhdHVzQ29kZVZhbHVlICA9IDA7 CisgCWN0eC0+c3RhcnRpbmdPdXRTdGF0dXNDb2RlVmFsdWUgPSAwOworZGlmZiAtLWdpdCBhL21v ZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRz LmMKK2luZGV4IDk1YmMxYzFmM2IuLjU3NWMwZDEwNjggMTAwNjQ0CistLS0gYS9tb2R1bGVzL3Nu bXBzdGF0cy9zbm1wc3RhdHMuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMK K0BAIC0zNDYsNyArMzQ2LDEyIEBAIHN0YXRpYyB2b2lkIHNpZ2NobGRfaGFuZGxlcihpbnQgc2ln bmFsKQorICAqLworIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCisgewor KwlwaWRfdCByZXN1bHRfcGlkOworKwlpbnQgc25tcGdldF9mZDsKKysJaW50IGxvY2FsX3BhdGhf dG9fc25tcGdldF9sZW5ndGg7CisrCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aDsKKyAJ c3RydWN0IHNpZ2FjdGlvbiBuZXdfc2lnY2hsZF9oYW5kbGVyOworKwljaGFyICphcmdzWzZdOwor IAorIAljaGFyICpsb2NhbF9wYXRoX3RvX3NubXBnZXQgPSAiL3Vzci9iaW4vIjsKKyAJY2hhciAq c25tcGdldF9iaW5hcnlfbmFtZSAgID0gIi9zbm1wZ2V0IjsKK0BAIC0zNjIsNyArMzY3LDcgQEAg c3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyAJbmV3X3NpZ2NobGRfaGFu ZGxlci5zYV9oYW5kbGVyID0gc2lnY2hsZF9oYW5kbGVyOworIAlzaWdhY3Rpb24oU0lHQ0hMRCwg Jm5ld19zaWdjaGxkX2hhbmRsZXIsICZvbGRfc2lnY2hsZF9oYW5kbGVyKTsKKyAKKy0JcGlkX3Qg cmVzdWx0X3BpZCA9IGZvcmsoKTsKKysJcmVzdWx0X3BpZCA9IGZvcmsoKTsKKyAKKyAJaWYgKHJl c3VsdF9waWQgPCAwKSB7CisgCQlMTV9FUlIoImZhaWxlZCB0byBub3Qgc3Bhd24gYW4gYWdlbnQg dG8gY2hlY2sgc3lzVXBUaW1lXG4iKTsKK0BAIC0zODAsNyArMzg1LDcgQEAgc3RhdGljIGludCBz cGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyAKKyAJLyogSWYgd2UgYXJlIGhlcmUsIHRoZW4g d2UgYXJlIHRoZSBjaGlsZCBwcm9jZXNzLiAgTGV0cyBzZXQgdXAgdGhlIGZpbGUKKyAJICogZGVz Y3JpcHRvcnMgc28gd2UgY2FuIGNhcHR1cmUgdGhlIG91dHB1dCBvZiBzbm1wZ2V0LiAqLworLQlp bnQgc25tcGdldF9mZCA9CisrCXNubXBnZXRfZmQgPQorIAkJb3BlbihTTk1QR0VUX1RFTVBfRklM RSwgT19DUkVBVHxPX1RSVU5DfE9fUkRXUiwKKyAJCQkJU19JUlVTUnxTX0lXVVNSfFNfSVJHUlB8 U19JUk9USCk7CisgCitAQCAtNDAxLDggKzQwNiwxMiBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1Vw VGltZV9jaGlsZCh2b2lkKQorIAkJCQkiICBEZWZhdWx0aW5nIHRvICVzXG4iLAlzbm1wX2NvbW11 bml0eV9zdHJpbmcpOworIAl9CisgCistCWNoYXIgKmFyZ3NbXSA9IHsiLU92IiwgIi1jIiwgIHNu bXBfY29tbXVuaXR5X3N0cmluZywgImxvY2FsaG9zdCIsCistCQlTWVNVUFRJTUVfT0lELCAoY2hh ciAqKSAwfTsKKysJYXJnc1swXSA9ICItT3YiOworKwlhcmdzWzFdID0gIi1jIjsKKysJYXJnc1sy XSA9IHNubXBfY29tbXVuaXR5X3N0cmluZzsKKysJYXJnc1szXSA9ICJsb2NhbGhvc3QiOworKwlh cmdzWzRdID0gU1lTVVBUSU1FX09JRDsKKysJYXJnc1s1XSA9IChjaGFyICopMDsKKyAKKyAJLyog TWFrZSBzdXJlIHdlIGhhdmUgYSBwYXRoIHRvIHNubXBnZXQsIHNvIHdlIGNhbiByZXRyaWV2ZSB0 aGUKKyAJICogc3lzVXBUaW1lLiAqLworQEAgLTQxNiw4ICs0MjUsOCBAQCBzdGF0aWMgaW50IHNw YXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQorIAkJbG9jYWxfcGF0aF90b19zbm1wZ2V0ID0gc25t cGdldF9wYXRoOworIAl9CisgCistCWludCBsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0g c3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7CistCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1l X2xlbmd0aCAgID0gc3RybGVuKHNubXBnZXRfYmluYXJ5X25hbWUpOworKwlsb2NhbF9wYXRoX3Rv X3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7CisrCXNubXBn ZXRfYmluYXJ5X25hbWVfbGVuZ3RoICAgPSBzdHJsZW4oc25tcGdldF9iaW5hcnlfbmFtZSk7Cisg CisgCS8qIEFsbG9jYXRlIGVub3VnaCBtZW1vcnkgdG8gaG9sZCB0aGUgcGF0aCwgdGhlIGJpbmFy eSBuYW1lLCBhbmQgdGhlCisgCSAqIG51bGwgY2hhcmFjdGVyLiAgV2UgZG9uJ3QgdXNlIHBrZ19t ZW1vcnkgaGVyZS4gKi8KK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMu YyBiL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCitpbmRleCBkZmMwOTc4Yjc0Li4yZjdl ZDlhMzA3IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMKKysrKyBi L21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCitAQCAtNzIsMTMgKzcyLDEzIEBAIGludCBz dHJpbmdIYW5kbGVyU2FuaXR5Q2hlY2soIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFy ICpwYXJhbWV0ZXJOYW1lKQorIGludCBnZXRfc3RhdGlzdGljKGNoYXIgKnN0YXROYW1lKQorIHsK KyAJaW50IHJlc3VsdCA9IDA7CistCisrCXN0YXRfdmFyICp0aGVWYXIgPSBOVUxMOworIAlzdHIg dGhlU3RyOworIAorIAl0aGVTdHIucyAgID0gc3RhdE5hbWU7CisgCXRoZVN0ci5sZW4gPSBzdHJs ZW4oc3RhdE5hbWUpOworIAorLQlzdGF0X3ZhciAqdGhlVmFyID0gZ2V0X3N0YXQoJnRoZVN0cik7 CisrCXRoZVZhciA9IGdldF9zdGF0KCZ0aGVTdHIpOworIAorIAlpZiAodGhlVmFyPT0wKSB7Cisg CQlMTV9JTkZPKCJmYWlsZWQgdG8gcmV0cmlldmUgc3RhdGlzdGljcyBmb3IgJXNcbiIsIHN0YXRO YW1lKTsKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDEwLUZpeC1wb2ludGVyLXRydW5jYXRpb24t d2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2ggYi9vcGVuc2lwcy0wMDEwLUZpeC1w b2ludGVyLXRydW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiOTU4MWIuLjAwMDAwMDAKLS0tIGEvb3BlbnNp cHMtMDAxMC1GaXgtcG9pbnRlci10cnVuY2F0aW9uLXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVj dHVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkxICswLDAgQEAKLUZyb20gMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI2 IERlYyAyMDI1IDIxOjA4OjAwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBwb2ludGVyIHRy dW5jYXRpb24gd2FybmluZyBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJlcyBpbgotIGFhYV9kaWFtZXRl cgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1EdXJpbmcgY29tcGlsYXRp b24gb24gaTY4NiAoMzItYml0KSBhcmNoaXRlY3R1cmUgd2l0aCBHQ0MgMTUsIGEgcG9pbnRlcgot dHJ1bmNhdGlvbiB3YXJuaW5nIGFwcGVhcnM6Ci0KLWBgYAotYWFhX2RpYW1ldGVyLmM6IEluIGZ1 bmN0aW9uICdkbV9zZW5kX2Fuc3dlcic6Ci1hYWFfZGlhbWV0ZXIuYzo0MjM6NzM6IHdhcm5pbmc6 IGNhc3QgdG8gcG9pbnRlciBmcm9tIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUgWy1XaW50LXRv LXBvaW50ZXItY2FzdF0KLSAgNDIzIHwgIGRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwg QUFBX0NVU1RPTV9SUEwsIGFwcGlkLCBjbWRjb2RlLCAodm9pZCAqKWZkX3JlcSk7Ci1gYGAKLQot VGhlIGBkbV9tZXNzYWdlYCBzdHJ1Y3Qgc3RvcmVzIGEgcG9pbnRlciB0byBhIEZyZWVEaWFtZXRl ciBtZXNzYWdlCi1zdHJ1Y3R1cmUgaW4gdGhlIGBmZF9yZXFgIGZpZWxkLCBidXQgdGhlIHR5cGUg aXMgbWlzbWF0Y2hlZCBhY3Jvc3MKLWRpZmZlcmVudCBjb2RlIHBhdGhzOgotCi0xLiBJbiBgYWFh X2RpYW1ldGVyLmNgLCBhIHBvaW50ZXIgaXMgc2VyaWFsaXplZCBhcyBgdWludDY0X3RgICg4IGJ5 dGVzKQotMi4gSXQncyB0aGVuIGNhc3QgdG8gYHZvaWQgKmAgYW5kIHBhc3NlZCB0byBgX2RtX2Ny ZWF0ZV9tZXNzYWdlKClgCi0zLiBPbiAqKmk2ODYqKiwgYHZvaWQgKmAgaXMgb25seSA0IGJ5dGVz LCBjYXVzaW5nICoqdHJ1bmNhdGlvbioqIG9mIHRoZQotICAgdXBwZXIgMzIgYml0cwotNC4gSW4g YGRtX3BlZXIuY2AsIGl0J3MgY2FzdCBiYWNrIHRvIGBzdHJ1Y3QgbXNnICpgIGZvciB1c2UKLQot KipPbiB4ODZfNjQgKDY0LWJpdCk6KioKLQotLSBgdWludDY0X3RgID0gOCBieXRlcwotLSBgdm9p ZCAqYCA9IDggYnl0ZXMKLS0gTm8gdHJ1bmNhdGlvbiwgd29ya3MgZmluZQotCi0qKk9uIGk2ODYg KDMyLWJpdCk6KioKLQotLSBgdWludDY0X3RgID0gOCBieXRlcwotLSBgdm9pZCAqYCA9IDQgYnl0 ZXMKLS0gKipUcnVuY2F0aW9uIG9jY3VycyoqLCBsb3NpbmcgdXBwZXIgMzIgYml0cyBvZiB0aGUg cG9pbnRlciEKLQotQ2hhbmdlIGBmZF9yZXFgIGZyb20gYHZvaWQgKmAgdG8gYHVpbnRwdHJfdGAg dGhyb3VnaG91dCB0aGUgY29kZWJhc2UuCi0KLWB1aW50cHRyX3RgIGlzOgotCi0tICoqUG9ydGFi bGUqKjogU2l6ZWQgY29ycmVjdGx5IGZvciBwb2ludGVycyBvbiBhbnkgYXJjaGl0ZWN0dXJlICg0 Ci0gIGJ5dGVzIG9uIDMyLWJpdCwgOCBieXRlcyBvbiA2NC1iaXQpCi0tICoqU3RhbmRhcmQqKjog RGVmaW5lZCBpbiBDOTkgYDxzdGRpbnQuaD5gCi0tICoqU2VtYW50aWMqKjogRXhwbGljaXRseSBk ZXNpZ25lZCBmb3Igc3RvcmluZyBwb2ludGVyIHZhbHVlcyBhcwotICBpbnRlZ2VycwotLSAqKlNh ZmUqKjogR3VhcmFudGVlZCBieSBDOTkgdG8gcHJlc2VydmUgcG9pbnRlciB2YWx1ZXMgZHVyaW5n Ci0gIHJvdW5kLXRyaXAgY29udmVyc2lvbnMKLQotKioxLiBTdHJ1Y3QgZGVmaW5pdGlvbiAoYG1v ZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuaGAgbGluZSA5Myk6KioKLQotYGBgYwotc3RydWN0 IGRtX21lc3NhZ2UgewotICAgIC8vIENoYW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxOwotICAgIHVp bnRwdHJfdCBmZF9yZXE7Ci0gICAgLy8gLi4uCi19OwotYGBgCi0KLSoqMi4gRnVuY3Rpb24gc2ln bmF0dXJlIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oYCB+bGluZSAxNjUpOioqCi0K LWBgYGMKLWFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBt c2dfdHlwZSwKLSAgICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUs IHVpbnRwdHJfdCBmZF9yZXEpOwotICAgIC8vIENoYW5nZWQgZnJvbTogdm9pZCAqZmRfcmVxCi1g YGAKLQotKiozLiBGdW5jdGlvbiBkZWZpbml0aW9uIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1f aW1wbC5jYCBsaW5lIDE2OTUpOioqCi0KLWBgYGMKLWFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21l c3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAgICB1bnNpZ25lZCBpbnQgYXBwX2lk LCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBmZF9tc2cpCi0gICAgLy8gQ2hhbmdl ZCBmcm9tOiB2b2lkICpmZF9tc2cKLWBgYAotCi0qKjQuIENhbGwgc2l0ZXMgLSBwb2ludGVyIHRv IHVpbnRwdHJfdDoqKgotCi1gYGBjCi0vLyBhYWFfZGlhbWV0ZXIuYyBsaW5lIDQyMyAtIHJlbW92 ZSB2b2lkKiBjYXN0OgotZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9N X1JQTCwgYXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7Ci0KLS8vIGRtX2ltcGwuYyAtIGFkZCBleHBs aWNpdCBjYXN0cyB3aGVuIHN0b3JpbmcgcG9pbnRlcnM6Ci1kbS5mZF9yZXEgPSAodWludHB0cl90 KXJlcTsKLWRtLT5mZF9yZXEgPSAodWludHB0cl90KWZkX21zZzsKLWBgYAotCi0qKjUuIENhbGwg c2l0ZXMgd2l0aCBOVUxMIC0gdXNlIDAgaW5zdGVhZDoqKgotCi1TaW5jZSBgdWludHB0cl90YCBp cyBhbiBpbnRlZ2VyIHR5cGUgKG5vdCBhIHBvaW50ZXIgdHlwZSksIHdlIHVzZSBgMGAKLWluc3Rl YWQgb2YgYE5VTExgIHRvIHJlcHJlc2VudCAibm8gcG9pbnRlciI6Ci0KLWBgYGMKLS8vIE11bHRp cGxlIGxvY2F0aW9ucyBpbiBhYWFfZGlhbWV0ZXIuYywgZG1faW1wbC5jOgotZG1zZyA9IF9kbV9j cmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAw KTsKLS8vIENoYW5nZWQgZnJvbTogLi4uLCBOVUxMKTsKLWBgYAotCi0qKk5vdGU6KiogSW4gQywg YE5VTExgIGlzIHR5cGljYWxseSBgKCh2b2lkICopMClgIC0gYSBwb2ludGVyIHR5cGUuIFdoZW4K LXBhc3NpbmcgdG8gYW4gaW50ZWdlciBwYXJhbWV0ZXIgbGlrZSBgdWludHB0cl90YCwgd2UgdXNl IHRoZSBpbnRlZ2VyIGAwYAotZGlyZWN0bHkgdG8gYXZvaWQgaW1wbGljaXQgcG9pbnRlci10by1p bnRlZ2VyIGNvbnZlcnNpb24gd2FybmluZ3MuCi0KLSoqNi4gVXNhZ2Ugc2l0ZSAtIHVpbnRwdHJf dCB0byBwb2ludGVyIChgZG1fcGVlci5jYCk6KioKLQotYGBgYwotLy8gQ2hhbmdlZCBmcm9tOiBz dHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1zZyAqKWRtLT5mZF9yZXE7Ci1zdHJ1Y3QgbXNnICph bnMgPSAoc3RydWN0IG1zZyAqKSh1aW50cHRyX3QpZG0tPmZkX3JlcTsKLWBgYAotCi1UaGUgZG91 YmxlIGNhc3QgYChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2YWx1ZWAgaXMgcmVxdWlyZWQgYnkg Qzk5IGZvcgotZ3VhcmFudGVlZCBjb3JyZWN0bmVzczoKLQotMS4gKipDOTkgZ3VhcmFudGVlcyoq IHRoYXQgYW55IHBvaW50ZXIgY2FuIGJlIGNvbnZlcnRlZCB0byBgdWludHB0cl90YCBhbmQgYmFj awotMi4gRGlyZWN0IGBpbnRlZ2VyIOKGkiBwb2ludGVyYCBjb252ZXJzaW9uIGlzICoqaW1wbGVt ZW50YXRpb24tZGVmaW5lZCoqIGJlaGF2aW9yCi0zLiBUaGUgcHJvcGVyIGNvbnZlcnNpb24gcGF0 aCBpczogYHBvaW50ZXIg4oaSIHVpbnRwdHJfdCDihpIgcG9pbnRlcmAKLQotV2hpbGUgYSBzaW5n bGUgY2FzdCBmcm9tIGB1aW50cHRyX3RgIHRvIHBvaW50ZXIgb2Z0ZW4gd29ya3MgaW4gcHJhY3Rp Y2UsCi10aGUgZG91YmxlIGNhc3QgZXhwbGljaXRseSBmb2xsb3dzIHRoZSBDOTkgc3RhbmRhcmQn cyBndWFyYW50ZWVkCi1jb252ZXJzaW9uIHBhdGgsIGVuc3VyaW5nIHRoZSBjb2RlIGlzIHN0cmlj dGx5IGNvbmZvcm1hbnQgYW5kIHdvbid0Ci1jYXVzZSBpc3N1ZXMgd2l0aCBzdHJpY3QgYWxpYXNp bmcgcnVsZXMgb3IgZnV0dXJlIGNvbXBpbGVyCi1vcHRpbWl6YXRpb25zLgotCi1UaGUgcGF0dGVy biBpczoKLS0gKipQb2ludGVyIOKGkiB1aW50cHRyX3QqKjogYCh1aW50cHRyX3QpcG9pbnRlcmAK LS0gKip1aW50cHRyX3Qg4oaSIFBvaW50ZXIqKjogYChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdCl2 YWx1ZWAKLS0gKipOdWxsIHZhbHVlKio6IGAwYCAobm90IGBOVUxMYCwgc2luY2UgYHVpbnRwdHJf dGAgaXMgYW4gaW50ZWdlciB0eXBlKQotCi1UaGlzIGZpeCBlbnN1cmVzIHBvaW50ZXJzIGFyZSBj b3JyZWN0bHkgcHJlc2VydmVkIG9uIGFsbCBhcmNoaXRlY3R1cmVzCi13aXRob3V0IHRydW5jYXRp b24uCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+ Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KLQot ZGlmZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2FhYV9kaWFtZXRlci5jIGIvbW9kdWxl cy9hYWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMKLWluZGV4IGZhMTkzMzA0NGYuLmI4YTE5NjAy ZTEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9hYWFfZGlhbWV0ZXIuYwotKysr IGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMKLUBAIC0xOSw2ICsxOSw3IEBA Ci0gICovCi0gCi0gI2luY2x1ZGUgPGZyZWVEaWFtZXRlci9leHRlbnNpb24uaD4KLSsjaW5jbHVk ZSA8c3RkaW50Lmg+Ci0gCi0gI2luY2x1ZGUgIi4uLy4uL3NyX21vZHVsZS5oIgotICNpbmNsdWRl ICIuLi8uLi9saWIvbGlzdC5oIgotQEAgLTMxNSw3ICszMTYsNyBAQCBzdGF0aWMgaW50IGRtX3Nl bmRfcmVxdWVzdChzdHJ1Y3Qgc2lwX21zZyAqbXNnLCBpbnQgKmFwcF9pZCwgaW50ICpjbWRfY29k ZSwKLSAJCWdvdG8gZXJyb3I7Ci0gCX0KLSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShO VUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCBOVUxMKTsKLSsJZG1zZyA9 IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9j b2RlLCAwKTsKLSAJaWYgKCFkbXNnKSB7Ci0gCQlMTV9FUlIoIm9vbVxuIik7Ci0gCQlnb3RvIGVy cm9yOwotQEAgLTQyNSw3ICs0MjYsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfYW5zd2VyKHN0cnVj dCBzaXBfbXNnICptc2csIHN0ciAqYXZwX2pzb24sIGludCAqaXNfZXJyb3IpCi0gCQlyZXZlcnNl X2hleDJpbnQ2NChyZXMucnMucywgcmVzLnJzLmxlbiwgMSwgJmZkX3JlcSk7Ci0gCX0KLSAKLS0J ZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNt ZGNvZGUsICh2b2lkICopZmRfcmVxKTsKLSsJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxM LCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsIGZkX3JlcSk7Ci0gCWlmICghZG1zZykg ewotIAkJTE1fRVJSKCJvb21cbiIpOwotIAkJZ290byBlcnJvcjsKLUBAIC01ODIsNyArNTgzLDcg QEAgc3RhdGljIGludCBkbV9zZW5kX3JlcXVlc3RfYXN5bmMoc3RydWN0IHNpcF9tc2cgKm1zZywg YXN5bmNfY3R4ICpjdHgsCi0gCQlnb3RvIGVycm9yOwotIAl9Ci0gCi0tCWRtc2cgPSBfZG1fY3Jl YXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICphcHBfaWQsICpjbWRfY29kZSwgTlVM TCk7Ci0rCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsICph cHBfaWQsICpjbWRfY29kZSwgMCk7Ci0gCWlmICghZG1zZykgewotIAkJTE1fRVJSKCJvb21cbiIp OwotIAkJZ290byBlcnJvcjsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9p bXBsLmMgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMKLWluZGV4IGZmYmMxMzlmOTcu Ljg3ODhjOGQwYWEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmMK LSsrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYwotQEAgLTIxLDYgKzIxLDcgQEAK LSAjaW5jbHVkZSA8ZnJlZURpYW1ldGVyL2V4dGVuc2lvbi5oPgotICNpbmNsdWRlIDxzeXMvZXZl bnRmZC5oPgotICNpbmNsdWRlIDxpbnR0eXBlcy5oPgotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSAK LSAjaW5jbHVkZSAiLi4vLi4vdXQuaCIKLSAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLUBA IC02MDEsNyArNjAyLDcgQEAgc3RhdGljIGludCBkbV9yZWNlaXZlX3JlcShzdHJ1Y3QgbXNnICoq X3JlcSwgc3RydWN0IGF2cCAqIGF2cCwgc3RydWN0IHNlc3Npb24gKgotIAotIAkJbWVtc2V0KCZk bSwgMCwgc2l6ZW9mIGRtKTsKLSAKLS0JCWRtLmZkX3JlcSA9IHJlcTsKLSsJCWRtLmZkX3JlcSA9 ICh1aW50cHRyX3QpcmVxOwotIAkJZG0uYXBwX2lkID0gaGRyLT5tc2dfYXBwbDsKLSAJCWRtLmNt ZF9jb2RlID0gaGRyLT5tc2dfY29kZTsKLSAJCWRtLmVycm9yX2JpdCA9IDE7Ci1AQCAtMTc1NCw3 ICsxNzU1LDcgQEAgaW50IGRtX2FwaV9maW5kX2NtZChkaWFtZXRlcl9jb25uICpjb25uLCBpbnQg Y21kX2NvZGUpCi0gfQotIAotIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nv bm4gKl8sIGludCBtc2dfdHlwZSwKLS0gICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2ln bmVkIGludCBjbWRfY29kZSwgdm9pZCAqZmRfbXNnKQotKyAgICAgICAgdW5zaWduZWQgaW50IGFw cF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB1aW50cHRyX3QgZmRfbXNnKQotIHsKLSAJYWFh X21lc3NhZ2UgKm07Ci0gCXN0cnVjdCBkbV9tZXNzYWdlICpkbTsKLUBAIC0xNzgxLDcgKzE3ODIs NyBAQCBhYWFfbWVzc2FnZSAqX2RtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNn X3R5cGUsCi0gCWRtLT5hbSA9IG07Ci0gCWRtLT5hcHBfaWQgPSBhcHBfaWQ7Ci0gCWRtLT5jbWRf Y29kZSA9IGNtZF9jb2RlOwotLQlkbS0+ZmRfcmVxID0gZmRfbXNnOwotKwlkbS0+ZmRfcmVxID0g KHVpbnRwdHJfdClmZF9tc2c7Ci0gCi0gCXJldHVybiBtOwotIH0KLUBAIC0xNzg5LDcgKzE3OTAs NyBAQCBhYWFfbWVzc2FnZSAqX2RtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNn X3R5cGUsCi0gCi0gYWFhX21lc3NhZ2UgKmRtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBp bnQgbXNnX3R5cGUpCi0gewotLQlyZXR1cm4gX2RtX2NyZWF0ZV9tZXNzYWdlKF8sIG1zZ190eXBl LCAwLCAwLCBOVUxMKTsKLSsJcmV0dXJuIF9kbV9jcmVhdGVfbWVzc2FnZShfLCBtc2dfdHlwZSwg MCwgMCwgMCk7Ci0gfQotIAotIAotQEAgLTIxNDMsNyArMjE0NCw3IEBAIGludCBkbV9hcGlfc2Vu ZF9yZXEoZGlhbWV0ZXJfY29ubiAqY29ubiwgaW50IGFwcF9pZCwgaW50IGNtZF9jb2RlLCBjSlNP TiAqcmVxLCBkCi0gCQlyZXR1cm4gLTI7Ci0gCX0KLSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVz c2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgTlVMTCk7Ci0rCWRt c2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwgY21k X2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJCUxNX0VSUigib29tXG4iKTsKLSAJCXJldHVy biAtMTsKLUBAIC0yMTgwLDcgKzIxODEsNyBAQCBpbnQgZG1fYXBpX3NlbmRfcmVxX2FzeW5jKGRp YW1ldGVyX2Nvbm4gKmNvbm4sIGludCBhcHBfaWQsIGludCBjbWRfY29kZSwgY0pTT04gKgotIAkJ cmV0dXJuIC0yOwotIAl9Ci0gCi0tCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFB X0NVU1RPTV9SRVEsIGFwcF9pZCwgY21kX2NvZGUsIE5VTEwpOwotKwlkbXNnID0gX2RtX2NyZWF0 ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCBhcHBfaWQsIGNtZF9jb2RlLCAwKTsKLSAJ aWYgKCFkbXNnKSB7Ci0gCQlMTV9FUlIoIm9vbVxuIik7Ci0gCQlyZXR1cm4gLTE7Ci1kaWZmIC0t Z2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oIGIvbW9kdWxlcy9hYWFfZGlhbWV0 ZXIvZG1faW1wbC5oCi1pbmRleCBiMjVjZDc3ZjE5Li41MmUzZjIzZGE1IDEwMDY0NAotLS0tIGEv bW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oCi0rKysgYi9tb2R1bGVzL2FhYV9kaWFtZXRl ci9kbV9pbXBsLmgKLUBAIC0yNCw2ICsyNCw3IEBACi0gI2luY2x1ZGUgIi4uLy4uL2FhYS9hYWEu aCIKLSAjaW5jbHVkZSAiLi4vLi4vbWVtL3NobV9tZW0uaCIKLSAjaW5jbHVkZSAiZGlhbWV0ZXJf YXBpLmgiCi0rI2luY2x1ZGUgPHN0ZGludC5oPgotIAotICNkZWZpbmUgX19GRF9DSEVDSyhfX2Nh bGxfXywgX19yZXRva19fLCBfX3JldHZhbF9fKSBcCi0gCWRvIHsgXAotQEAgLTkxLDcgKzkyLDcg QEAgc3RydWN0IF9kbV9kaWN0IHsKLSBzdHJ1Y3QgZG1fbWVzc2FnZSB7Ci0gCWFhYV9tZXNzYWdl ICphbTsgLyogYmFjay1yZWZlcmVuY2UsIHVzZWZ1bCBkdXJpbmcgY2xlYW51cCAqLwotIAotLQl2 b2lkICpmZF9yZXE7Ci0rCXVpbnRwdHJfdCBmZF9yZXE7Ci0gCXVuc2lnbmVkIGludCBhcHBfaWQ7 ICAgLyogdGhlc2UgdHdvIGFyZSB1c2VkIHdoZW4gc2VuZGluZyAqLwotIAl1bnNpZ25lZCBpbnQg Y21kX2NvZGU7IC8qIGN1c3RvbSBEaWFtZXRlciByZXF1ZXN0cyAqLwotIAlpbnQgZXJyb3JfYml0 OwotQEAgLTE4Miw3ICsxODMsNyBAQCBpbnQgZG1fcmVnaXN0ZXJfY2FsbGJhY2tzKHZvaWQpOwot IGludCBkbV9maW5kKGFhYV9jb25uICpfLCBhYWFfbWFwICptYXAsIGludCBvcCk7Ci0gYWFhX21l c3NhZ2UgKmRtX2NyZWF0ZV9tZXNzYWdlKGFhYV9jb25uICpfLCBpbnQgbXNnX3R5cGUpOwotIGFh YV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwK LS0gICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdm9p ZCAqZmRfcmVxKTsKLSsgICAgICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBj bWRfY29kZSwgdWludHB0cl90IGZkX3JlcSk7Ci0gaW50IGRtX2F2cF9hZGQoYWFhX2Nvbm4gKl8s IGFhYV9tZXNzYWdlICptc2csIGFhYV9tYXAgKmF2cCwgdm9pZCAqdmFsLAotICAgICAgICAgICAg ICAgIGludCB2YWxfbGVuZ3RoLCBpbnQgdmVuZG9yKTsKLSBpbnQgZG1fYnVpbGRfYXZwcyhzdHJ1 Y3QgbGlzdF9oZWFkICpzdWJhdnBzLCBjSlNPTiAqYXJyYXkpOwotZGlmZiAtLWdpdCBhL21vZHVs ZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIuYyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX3BlZXIu YwotaW5kZXggOWRiZmQxZDZjOS4uMDZiMTdhODg0NSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvYWFh X2RpYW1ldGVyL2RtX3BlZXIuYwotKysrIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5j Ci1AQCAtMjQsNiArMjQsNyBAQAotICNpbmNsdWRlICIuLi8uLi9zcl9tb2R1bGUuaCIKLSAjaW5j bHVkZSAiLi4vLi4vbG9ja2luZy5oIgotICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5oIgotKyNp bmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaW5jbHVkZSAiZG1faW1wbC5oIgotICNpbmNsdWRlICJk bV9wZWVyLmgiCi1AQCAtNTExLDcgKzUxMiw3IEBAIHN0YXRpYyBpbnQgZG1fc2VuZF9jdXN0b21f cmVxKHN0cnVjdCBkbV9tZXNzYWdlICptc2cpCi0gCi0gaW50IGRtX3NlbmRfY3VzdG9tX3JwbChz dHJ1Y3QgZG1fbWVzc2FnZSAqZG0pCi0gewotLQlzdHJ1Y3QgbXNnICphbnMgPSAoc3RydWN0IG1z ZyAqKWRtLT5mZF9yZXE7Ci0rCXN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopKHVpbnRw dHJfdClkbS0+ZmRfcmVxOwotIAlpbnQgcmMsIGZsYWdzID0gMDsKLSAKLSAJaWYgKCFkbV9zZXJ2 ZXJfYXV0b3JlcGx5X2Vycm9yICYmIGRtX3JlbW92ZV91bnJlcGxpZWRfcmVxKGFucykgIT0gMCkg ewoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMTEtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13 YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaCBiL29wZW5zaXBzLTAwMTEtRml4LUM5MC1z dHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjY4OWU0ZS4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0w MDExLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzODEgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMzEgSmFu IDIwMjYgMTU6MTE6MjAgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IEM5MC1zdHlsZSBkZWNs YXJhdGlvbiB3YXJuaW5ncyBpbiBzbm1wc3RhdHMgbW9kdWxlCi0KLUJ1aWxkIGZhaWxzIHdpdGgg YC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50YCAoZW5mb3JjZWQgYnkKLW5ldC1z bm1wIHBrZy1jb25maWcpIGR1ZSB0byB2YXJpYWJsZXMgZGVjbGFyZWQgYWZ0ZXIgZXhlY3V0YWJs ZQotc3RhdGVtZW50czoKLQotYGBgCi1vcGVuc2VyT2JqZWN0cy5jOjYxOTo5OiBlcnJvcjogSVNP IEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJh dGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDYxOSB8ICAgICAgICAgaW50IG5ld190aHJlc2hvbGQg PSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0KLW9wZW5zZXJTSVBDb21tb25PYmplY3RzLmM6MjQ0 OjE3OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBb LVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDI0NCB8ICAgICAgICAgICAg ICAgICBjaGFyICpvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKLQot b3BlbnNlclNJUENvbW1vbk9iamVjdHMuYzo0NzU6OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBt aXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3Rh dGVtZW50XQotICA0NzUgfCAgICAgICAgIGNoYXIgKnN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZh bDsKLQotb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jOjI2Njo5OiBlcnJvcjogSVNPIEM5MCBmb3Ji aWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRl ci1zdGF0ZW1lbnRdCi0gIDI2NiB8ICAgICAgICAgc3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0g IkRlZmF1bHRVc2VyIjsKLQotb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jOjM2MTo5OiBlcnJvcjog SVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNs YXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDM2MSB8ICAgICAgICAgbmV0c25tcF92YXJpYWJs ZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7Ci1gYGAKLQotVGhlIG5ldC1zbm1wIGxp YnJhcnkncyBwa2ctY29uZmlnIGFkZHMKLWAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRl bWVudGAgdG8gQ0ZMQUdTLCBlbmZvcmNpbmcgQzkwLXN0eWxlCi1kZWNsYXJhdGlvbiBvcmRlcmlu ZyAoYWxsIGRlY2xhcmF0aW9ucyBiZWZvcmUgc3RhdGVtZW50cykuCi0KLVdoaWxlIE9wZW5TSVBT IGFkaGVyZXMgdG8gdGhlIEM5OSBzdGFuZGFyZCAod2hpY2ggYWxsb3dzIG1peGVkCi1kZWNsYXJh dGlvbnMgYW5kIGNvZGUpLCB0aGUgbmV0LXNubXAgbGlicmFyeSBjb3VsZCByZXF1aXJlIEM5MC1z dHlsZQotZGVjbGFyYXRpb25zIGZvciBtb2R1bGVzIHRoYXQgbGluayBhZ2FpbnN0IGl0LiBGb2xs b3dpbmcgdGhpcyBzdHlsZQotZG9lc24ndCBodXJ0IEM5OSBjb21wYXRpYmlsaXR5IGFuZCBpbXBy b3ZlcyBjb2RlIHBvcnRhYmlsaXR5LmAKLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3Yg PGxlbWVua292QGdtYWlsLmNvbT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0 dHBzOi8vY2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNl ck9iamVjdHMuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKLWluZGV4IDE4 MGI2MmRkYTcuLjkwOWRiNGM4MGIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVu c2VyT2JqZWN0cy5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jCi1A QCAtNjA1LDYgKzYwNSw4IEBAIGludCBoYW5kbGVfb3BlbnNlckRpYWxvZ0xpbWl0TWFqb3JBbGFy bShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotIHN0YXRpYyBpbnQgc2V0X2lmX3ZhbGlk X3RocmVzaG9sZChtb2RwYXJhbV90IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqdmFyU3RyLAotIAlp bnQgKm5ld1ZhbCkKLSB7Ci0rCWludCBuZXdfdGhyZXNob2xkOwotKwotIAlpZiAodmFsPT0wKSB7 Ci0gCQlMTV9FUlIoIiVzIGNhbGxlZCB3aXRoIGEgbnVsbCB2YWx1ZSFcbiIsIHZhclN0cik7Ci0g CQlyZXR1cm4gLTE7Ci1AQCAtNjE2LDcgKzYxOCw3IEBAIHN0YXRpYyBpbnQgc2V0X2lmX3ZhbGlk X3RocmVzaG9sZChtb2RwYXJhbV90IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqdmFyU3RyLAotIAkJ cmV0dXJuIC0xOwotIAl9Ci0gCi0tCWludCBuZXdfdGhyZXNob2xkID0gKGludCkobG9uZykoaW50 ICopdmFsOwotKwluZXdfdGhyZXNob2xkID0gKGludCkobG9uZykoaW50ICopdmFsOwotIAotIAlp ZiAobmV3X3RocmVzaG9sZCA8IC0xKSB7Ci0gCQlMTV9FUlIoIiVzIGNhbGxlZCB3aXRoIGFuIGlu dmFsaWQgdGhyZXNob2xkPSVkIVxuIiwKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9v cGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENv bW1vbk9iamVjdHMuYwotaW5kZXggZTM3YWI2ZWYyYS4uZjJkZGJhNWE3YSAxMDA2NDQKLS0tLSBh L21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMKLSsrKyBiL21vZHVs ZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMKLUBAIC0yMjUsNiArMjI1LDgg QEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2VydmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5k bGVyICpoYW5kbGVyLAotIAotIAlpbnQgZWxhcHNlZFRpbWUgPSAwOwotIAljaGFyIGJ1ZmZlcltT Tk1QR0VUX01BWF9CVUZGRVJdOwotKwljaGFyICpvcGVuQnJhY2VQb3NpdGlvbiA9IE5VTEw7Ci0r CWNoYXIgKmNsb3NlZEJyYWNlUG9zaXRpb24gPSBOVUxMOwotIAotIAlGSUxFICp0aGVGaWxlID0g Zm9wZW4oU05NUEdFVF9URU1QX0ZJTEUsICJyIik7Ci0gCi1AQCAtMjQxLDggKzI0Myw4IEBAIGlu dCBoYW5kbGVfb3BlbnNlclNJUFNlcnZpY2VTdGFydFRpbWUobmV0c25tcF9taWJfaGFuZGxlciAq aGFuZGxlciwKLSAKLSAJCS8qIEZpbmQgdGhlIHBvc2l0aW9ucyBvZiAnKCcgYW5kICcpJyBzbyB3 ZSBjYW4gZXh0cmFjdCBvdXQgdGhlCi0gCQkgKiB0aW1ldGlja3MgdmFsdWUuICovCi0tCQljaGFy ICpvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKLS0JCWNoYXIgKmNs b3NlZEJyYWNlUG9zaXRpb24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOwotKwkJb3BlbkJyYWNlUG9z aXRpb24gICA9IHN0cmNocihidWZmZXIsICcoJyk7Ci0rCQljbG9zZWRCcmFjZVBvc2l0aW9uID0g c3RyY2hyKGJ1ZmZlciwgJyknKTsKLSAKLSAJCS8qIE1ha2Ugc3VyZSB0aGF0IGJvdGggdGhlICco JyBhbmQgJyknIGV4aXN0IGluIHRoZSBmaWxlLCBhbmQKLSAJCSAqIHRoYXQgJygnIG9jY3VycyBl YXJsaWVyIHRoYW4gdGhlICcpJy4gIElmIGFsbCB0aGVzZQotQEAgLTQ2NCw2ICs0NjYsNyBAQCBp bnQgaGFuZGxlX29wZW5zZXJTSVBPdGhlcndpc2VEaXNjYXJkZWRNc2dzKG5ldHNubXBfbWliX2hh bmRsZXIgKmhhbmRsZXIsCi0gICovCi0gaW50IGhhbmRsZVNpcEVudGl0eVR5cGUoIG1vZHBhcmFt X3QgdHlwZSwgdm9pZCogdmFsKQotIHsKLSsJY2hhciAqc3RyRW50aXR5VHlwZSA9IE5VTEw7Ci0g Ci0gCS8qIEJ5IGRlZmF1bHQgd2Ugc3RhcnQgb2ZmIGFzICJvdGhlciIuICovCi0gCXN0YXRpYyBj aGFyIGZpcnN0VGltZSA9IDE7Ci1AQCAtNDcyLDcgKzQ3NSw3IEBAIGludCBoYW5kbGVTaXBFbnRp dHlUeXBlKCBtb2RwYXJhbV90IHR5cGUsIHZvaWQqIHZhbCkKLSAJCXJldHVybiAtMTsKLSAJfQot IAotLQljaGFyICpzdHJFbnRpdHlUeXBlID0gKGNoYXIgKil2YWw7Ci0rCXN0ckVudGl0eVR5cGUg PSAoY2hhciAqKXZhbDsKLSAKLSAJLyogVGhpcyBpcyBvdXIgZmlyc3QgdGltZSB0aHJvdWdoIHRo aXMgZnVuY3Rpb24sIHNvIHdlIG5lZWQgdG8gY2hhbmdlCi0gCSAqIG9wZW5zZXJFbnRpdHlUeXBl IGZyb20gaXRzIGRlZmF1bHQgdG8gMCwgYWxsb3dpbmcgb3VyIGJpdG1hc2tzIGJlbG93Ci1kaWZm IC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jIGIvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jCi1pbmRleCA3ZWRjMTIxMGNl Li4wMzU4ODAyOWM4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENv bnRhY3RUYWJsZS5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRh YmxlLmMKLUBAIC0yNjEsMTAgKzI2MSwxMCBAQCB2b2lkIGRlbGV0ZUNvbnRhY3RSb3coaW50IHVz ZXJJbmRleCwgaW50IGNvbnRhY3RJbmRleCkKLSAgKi8KLSB2b2lkIGluaXRfb3BlbnNlclNJUENv bnRhY3RUYWJsZSh2b2lkKQotIHsKLS0JaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQQ29udGFj dFRhYmxlKCk7Ci0tCi0gCXN0YXRpYyBjaGFyICpkZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNlciI7 Ci0gCi0rCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUENvbnRhY3RUYWJsZSgpOwotKwotIAlj cmVhdGVDb250YWN0Um93KDEsIDEsIGRlZmF1bHRVc2VyLCBOVUxMKTsKLSB9Ci0gCi1AQCAtMzU0 LDE0ICszNTQsMTYgQEAgaW50IG9wZW5zZXJTSVBDb250YWN0VGFibGVfZ2V0X3ZhbHVlKAotIAlj aGFyICAgICAgICpyZXRyaWV2ZWRFeHBpcnk7Ci0gCXN0cnVjdCB0bSAgdGltZVZhbHVlOwotIAot KwluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IE5VTEw7Ci0rCW9wZW5zZXJTSVBDb250YWN0 VGFibGVfY29udGV4dCAqY29udGV4dCA9IE5VTEw7Ci0rCi0gCS8qIEZpcnN0IHRoaW5ncyBmaXJz dCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgotIAkgKiBj YXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0 IGRhdGEuICovCi0gCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKLSAKLS0JbmV0c25tcF92 YXJpYWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7Ci0rCXZhciA9IHJlcXVlc3Qt PnJlcXVlc3R2YjsKLSAKLS0Jb3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICpjb250ZXh0 ID0KLS0JCShvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKilpdGVtOwotKwljb250ZXh0 ID0gKG9wZW5zZXJTSVBDb250YWN0VGFibGVfY29udGV4dCAqKWl0ZW07Ci0gCi0gCXN3aXRjaCh0 YWJsZV9pbmZvLT5jb2xudW0pCi0gCXsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9v cGVuc2VyU0lQUG9ydFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRh YmxlLmMKLWluZGV4IGExMDc1ODI3M2EuLjNhMDNiNzJiMjEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRhYmxlLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJTSVBQb3J0VGFibGUuYwotQEAgLTEwNCwxOSArMTA0LDE3IEBAIG9wZW5zZXJTSVBQ b3J0VGFibGVfY29udGV4dCAqZ2V0Um93KGludCBpcFR5cGUsIHVuc2lnbmVkIGludCAqaXBBZGRy ZXNzKQotIHsKLSAJaW50IGxlbmd0aE9mT0lEOwotIAlvaWQgKmN1cnJlbnRPSURJbmRleCA9IGNy ZWF0ZUluZGV4KGlwVHlwZSwgaXBBZGRyZXNzLCAmbGVuZ3RoT2ZPSUQpOwotKwluZXRzbm1wX2lu ZGV4IHRoZUluZGV4OwotKwlvcGVuc2VyU0lQUG9ydFRhYmxlX2NvbnRleHQgKnJvd1RvUmV0dXJu ID0gTlVMTDsKLSAKLSAJaWYgKGN1cnJlbnRPSURJbmRleCA9PSBOVUxMKQotIAl7Ci0gCQlyZXR1 cm4gTlVMTDsKLSAJfQotIAotLQluZXRzbm1wX2luZGV4IHRoZUluZGV4OwotLQotIAl0aGVJbmRl eC5vaWRzID0gY3VycmVudE9JREluZGV4OwotIAl0aGVJbmRleC5sZW4gID0gbGVuZ3RoT2ZPSUQ7 Ci0gCi0tCW9wZW5zZXJTSVBQb3J0VGFibGVfY29udGV4dCAqcm93VG9SZXR1cm47Ci0tCi0gCS8q IExldHMgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIHJvdy4gKi8KLSAJcm93 VG9SZXR1cm4gPSBDT05UQUlORVJfRklORChjYi5jb250YWluZXIsICZ0aGVJbmRleCk7Ci0gCi1A QCAtMjE4LDggKzIxNiw2IEBAIHZvaWQgaW5pdF9vcGVuc2VyU0lQUG9ydFRhYmxlKHZvaWQpCi0g ewotIAlpbnQgY3VyU05NUEluZGV4ID0gMDsKLSAKLS0JaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2Vy U0lQUG9ydFRhYmxlKCk7Ci0tCi0gCXVuc2lnbmVkIGludCAqVURQTGlzdCA9IE5VTEw7Ci0gCXVu c2lnbmVkIGludCAqVENQTGlzdCA9IE5VTEw7Ci0gCXVuc2lnbmVkIGludCAqVExTTGlzdCA9IE5V TEw7Ci1AQCAtMjI4LDYgKzIyNCw4IEBAIHZvaWQgaW5pdF9vcGVuc2VyU0lQUG9ydFRhYmxlKHZv aWQpCi0gCWludCBudW1UQ1BTb2NrZXRzOwotIAlpbnQgbnVtVExTU29ja2V0czsKLSAKLSsJaW5p dGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUG9ydFRhYmxlKCk7Ci0rCi0gCS8qIFJldHJpZXZlIHRo ZSBsaXN0IG9mIHRoZSBudW1iZXIgb2YgVURQIGFuZCBUQ1Agc29ja2V0cy4gKi8KLSAJbnVtVURQ U29ja2V0cyA9IGdldF9zb2NrZXRfbGlzdF9mcm9tX3Byb3RvKCZVRFBMaXN0LCBQUk9UT19VRFAp OwotIAludW1UQ1BTb2NrZXRzID0gZ2V0X3NvY2tldF9saXN0X2Zyb21fcHJvdG8oJlRDUExpc3Qs IFBST1RPX1RDUCk7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJl Z1VzZXJMb29rdXBUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJM b29rdXBUYWJsZS5jCi1pbmRleCAzMjRkZjYxOGZkLi5hNTRiNTgzNzUyIDEwMDY0NAotLS0tIGEv bW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZS5jCi0rKysgYi9t b2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKLUBAIC01MTQs MjMgKzUxNCwyMCBAQCB2b2lkIG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfc2V0X3Jlc2Vy dmUyKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJnICkKLSAgKi8KLSB2b2lkIG9wZW5zZXJTSVBS ZWdVc2VyTG9va3VwVGFibGVfc2V0X2FjdGlvbiggbmV0c25tcF9yZXF1ZXN0X2dyb3VwICpyZyAp Ci0gewotLQkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50 ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KLS0JICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdl IHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAqLwotLQljb25zdW1lSW50ZXJwcm9j ZXNzQnVmZmVyKCk7Ci0tCi0gCWFvclRvSW5kZXhTdHJ1Y3RfdCAqaGFzaFJlY29yZDsKLS0KLSAJ bmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXI7Ci0rCW5ldHNubXBfcmVxdWVzdF9ncm91cF9pdGVt ICpjdXJyZW50OwotKwlpbnQgcm93X2VyciA9IDA7Ci0rCW9wZW5zZXJTSVBSZWdVc2VyTG9va3Vw VGFibGVfY29udGV4dCAqcm93X2N0eCA9IE5VTEw7Ci0rCW9wZW5zZXJTSVBSZWdVc2VyTG9va3Vw VGFibGVfY29udGV4dCAqdW5kb19jdHggPSBOVUxMOwotIAotLQlvcGVuc2VyU0lQUmVnVXNlckxv b2t1cFRhYmxlX2NvbnRleHQgKnJvd19jdHggPQotLQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9va3Vw VGFibGVfY29udGV4dCAqKXJnLT5leGlzdGluZ19yb3c7Ci0tCi0tCW9wZW5zZXJTSVBSZWdVc2Vy TG9va3VwVGFibGVfY29udGV4dCAqdW5kb19jdHggPQotLQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9v a3VwVGFibGVfY29udGV4dCAqKXJnLT51bmRvX2luZm87Ci0rCS8qIEZpcnN0IHRoaW5ncyBmaXJz dCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgotKwkgKiBj YXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0 IGRhdGEuICovCi0rCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKLSAKLS0JbmV0c25tcF9y ZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7Ci0rCXJvd19jdHggPSAob3BlbnNlclNJUFJlZ1Vz ZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4aXN0aW5nX3JvdzsKLSAKLS0JaW50CQkJcm93 X2VyciA9IDA7Ci0rCXVuZG9fY3R4ID0gKG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29u dGV4dCAqKXJnLT51bmRvX2luZm87Ci0gCi0gCS8qIENvcHkgdGhlIGFjdHVhbCBkYXRhIHRvIHRo ZSByb3cuICovCi0gCWZvciggY3VycmVudCA9IHJnLT5saXN0OyBjdXJyZW50OyBjdXJyZW50ID0g Y3VycmVudC0+bmV4dCApIHsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2Vy U0lQUmVnVXNlclRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRh YmxlLmMKLWluZGV4IDQzYjE0Y2RlYjcuLjljZjAyOWRmOWQgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0 YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYwotQEAgLTIyNSwxNSArMjI1LDE0IEBAIHZvaWQg dXBkYXRlVXNlcihjaGFyICp1c2VyTmFtZSkKLSAgKiBSZXR1cm5zOiBUaGUgcm93cyB1c2VySW5k ZXggb24gc3VjY2VzcywgYW5kIDAgb3RoZXJ3aXNlLiAqLwotIGludCBjcmVhdGVSZWdVc2VyUm93 KGNoYXIgKnN0cmluZ1RvUmVnaXN0ZXIpCi0gewotLQlpbnQgc3RhdGljIGluZGV4ID0gMDsKLS0K LS0JaW5kZXgrKzsKLS0KLSAJb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICp0aGVSb3c7 Ci0tCi0gCW9pZCAgKk9JREluZGV4OwotIAlpbnQgIHN0cmluZ0xlbmd0aDsKLSAKLSsJaW50IHN0 YXRpYyBpbmRleCA9IDA7Ci0rCi0rCWluZGV4Kys7Ci0rCi0gCXRoZVJvdyA9IFNOTVBfTUFMTE9D X1RZUEVERUYob3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0KTsKLSAKLSAJaWYgKHRoZVJv dyA9PSBOVUxMKSB7Ci1AQCAtMjgwLDEyICsyNzksMTIgQEAgaW50IGNyZWF0ZVJlZ1VzZXJSb3co Y2hhciAqc3RyaW5nVG9SZWdpc3RlcikKLSAvKiBJbml0aWFsaXplcyB0aGUgb3BlbnNlclNJUFJl Z1VzZXJUYWJsZSBtb2R1bGUuICAqLwotIHZvaWQgaW5pdF9vcGVuc2VyU0lQUmVnVXNlclRhYmxl KHZvaWQpCi0gewotLQkvKiBSZWdpc3RlciB0aGlzIHRhYmxlIHdpdGggdGhlIG1hc3RlciBhZ2Vu dCAqLwotLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBSZWdVc2VyVGFibGUoKTsKLS0KLSAJ LyogV2UgbmVlZCB0byBjcmVhdGUgYSBkZWZhdWx0IHJvdywgc28gY3JlYXRlIERlZmF1bHRVc2Vy ICovCi0gCXN0YXRpYyBjaGFyICpkZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNlciI7Ci0gCi0rCS8q IFJlZ2lzdGVyIHRoaXMgdGFibGUgd2l0aCB0aGUgbWFzdGVyIGFnZW50ICovCi0rCWluaXRpYWxp emVfdGFibGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSgpOwotKwotIAljcmVhdGVSZWdVc2VyUm93 KGRlZmF1bHRVc2VyKTsKLSB9Ci0gCi1AQCAtMzUwLDE0ICszNDksMTYgQEAgaW50IG9wZW5zZXJT SVBSZWdVc2VyVGFibGVfZ2V0X3ZhbHVlKAotIAkJbmV0c25tcF9pbmRleCAqaXRlbSwKLSAJCW5l dHNubXBfdGFibGVfcmVxdWVzdF9pbmZvICp0YWJsZV9pbmZvICkKLSB7Ci0rCW5ldHNubXBfdmFy aWFibGVfbGlzdCAqdmFyID0gTlVMTDsKLSsJb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0 ICpjb250ZXh0ID0gTlVMTDsKLSsKLSAJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRv IGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCi0gCSAqIGNhc2Ugc29tZXRoaW5n IGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KLSAJ Y29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOwotIAotLQluZXRzbm1wX3ZhcmlhYmxlX2xpc3Qg KnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKLSsJdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOwot IAotLQlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKmNvbnRleHQgPQotLQkJKG9wZW5z ZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqKWl0ZW07Ci0rCWNvbnRleHQgPSAob3BlbnNlclNJ UFJlZ1VzZXJUYWJsZV9jb250ZXh0ICopaXRlbTsKLSAKLSAJc3dpdGNoKHRhYmxlX2luZm8tPmNv bG51bSkKLSAJewotZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0 dXNDb2Rlc1RhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNU YWJsZS5jCi1pbmRleCAyYjM5NmM2OTg1Li43OWYzYTEyOWEzIDEwMDY0NAotLS0tIGEvbW9kdWxl cy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYwotKysrIGIvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYwotQEAgLTMxMCw2ICszMTAsNyBA QCBpbnQgb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY2FuX2RlbGV0ZSgKLSBvcGVuc2VyU0lQ U3RhdHVzQ29kZXNUYWJsZV9jb250ZXh0ICoKLSBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9j cmVhdGVfcm93KCBuZXRzbm1wX2luZGV4KiBoZHIpCi0gewotKwlpbnQgY29kZUluZGV4OwotIAlz dGF0X3ZhciAqaW5fc3RhdHVzX2NvZGU7Ci0gCXN0YXRfdmFyICpvdXRfc3RhdHVzX2NvZGU7Ci0g Ci1AQCAtMzM3LDcgKzMzOCw3IEBAIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0ZV9y b3coIG5ldHNubXBfaW5kZXgqIGhkcikKLSAJLyogUmV0cmlldmUgdGhlIGluZGV4IGZvciB0aGUg c3RhdHVzIGNvZGUsIGFuZCB0aGVuIGFzc2lnbiB0aGUgc3RhcnRpbmcKLSAJICogdmFsdWVzLiAg VGhlIHN0YXJ0aW5nIHZhbHVlcyB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGRlbHRhcyBkdXJp bmcKLSAJICogdGhlIG5leHQgc25tcGdldC9zbm1wd2Fsay9zbm1wdGFibGUvZXRjLiAqLwotLQlp bnQgY29kZUluZGV4ID0gY3R4LT5vcGVuc2VyU0lQU3RhdHVzQ29kZVZhbHVlOwotKwljb2RlSW5k ZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0dXNDb2RlVmFsdWU7Ci0gCi0gCWN0eC0+c3RhcnRpbmdJ blN0YXR1c0NvZGVWYWx1ZSAgPSAwOwotIAljdHgtPnN0YXJ0aW5nT3V0U3RhdHVzQ29kZVZhbHVl ID0gMDsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMuYyBiL21vZHVs ZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCi1pbmRleCA5NWJjMWMxZjNiLi41NzVjMGQxMDY4IDEw MDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKLSsrKyBiL21vZHVsZXMv c25tcHN0YXRzL3NubXBzdGF0cy5jCi1AQCAtMzQ2LDcgKzM0NiwxMiBAQCBzdGF0aWMgdm9pZCBz aWdjaGxkX2hhbmRsZXIoaW50IHNpZ25hbCkKLSAgKi8KLSBzdGF0aWMgaW50IHNwYXduX3N5c1Vw VGltZV9jaGlsZCh2b2lkKQotIHsKLSsJcGlkX3QgcmVzdWx0X3BpZDsKLSsJaW50IHNubXBnZXRf ZmQ7Ci0rCWludCBsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoOwotKwlpbnQgc25tcGdldF9i aW5hcnlfbmFtZV9sZW5ndGg7Ci0gCXN0cnVjdCBzaWdhY3Rpb24gbmV3X3NpZ2NobGRfaGFuZGxl cjsKLSsJY2hhciAqYXJnc1s2XTsKLSAKLSAJY2hhciAqbG9jYWxfcGF0aF90b19zbm1wZ2V0ID0g Ii91c3IvYmluLyI7Ci0gCWNoYXIgKnNubXBnZXRfYmluYXJ5X25hbWUgICA9ICIvc25tcGdldCI7 Ci1AQCAtMzYyLDcgKzM2Nyw3IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZv aWQpCi0gCW5ld19zaWdjaGxkX2hhbmRsZXIuc2FfaGFuZGxlciA9IHNpZ2NobGRfaGFuZGxlcjsK LSAJc2lnYWN0aW9uKFNJR0NITEQsICZuZXdfc2lnY2hsZF9oYW5kbGVyLCAmb2xkX3NpZ2NobGRf aGFuZGxlcik7Ci0gCi0tCXBpZF90IHJlc3VsdF9waWQgPSBmb3JrKCk7Ci0rCXJlc3VsdF9waWQg PSBmb3JrKCk7Ci0gCi0gCWlmIChyZXN1bHRfcGlkIDwgMCkgewotIAkJTE1fRVJSKCJmYWlsZWQg dG8gbm90IHNwYXduIGFuIGFnZW50IHRvIGNoZWNrIHN5c1VwVGltZVxuIik7Ci1AQCAtMzgwLDcg KzM4NSw3IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCi0gCi0gCS8q IElmIHdlIGFyZSBoZXJlLCB0aGVuIHdlIGFyZSB0aGUgY2hpbGQgcHJvY2Vzcy4gIExldHMgc2V0 IHVwIHRoZSBmaWxlCi0gCSAqIGRlc2NyaXB0b3JzIHNvIHdlIGNhbiBjYXB0dXJlIHRoZSBvdXRw dXQgb2Ygc25tcGdldC4gKi8KLS0JaW50IHNubXBnZXRfZmQgPQotKwlzbm1wZ2V0X2ZkID0KLSAJ CW9wZW4oU05NUEdFVF9URU1QX0ZJTEUsIE9fQ1JFQVR8T19UUlVOQ3xPX1JEV1IsCi0gCQkJCVNf SVJVU1J8U19JV1VTUnxTX0lSR1JQfFNfSVJPVEgpOwotIAotQEAgLTQwMSw4ICs0MDYsMTIgQEAg c3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKLSAJCQkJIiAgRGVmYXVsdGlu ZyB0byAlc1xuIiwJc25tcF9jb21tdW5pdHlfc3RyaW5nKTsKLSAJfQotIAotLQljaGFyICphcmdz W10gPSB7Ii1PdiIsICItYyIsICBzbm1wX2NvbW11bml0eV9zdHJpbmcsICJsb2NhbGhvc3QiLAot LQkJU1lTVVBUSU1FX09JRCwgKGNoYXIgKikgMH07Ci0rCWFyZ3NbMF0gPSAiLU92IjsKLSsJYXJn c1sxXSA9ICItYyI7Ci0rCWFyZ3NbMl0gPSBzbm1wX2NvbW11bml0eV9zdHJpbmc7Ci0rCWFyZ3Nb M10gPSAibG9jYWxob3N0IjsKLSsJYXJnc1s0XSA9IFNZU1VQVElNRV9PSUQ7Ci0rCWFyZ3NbNV0g PSAoY2hhciAqKTA7Ci0gCi0gCS8qIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgcGF0aCB0byBzbm1wZ2V0 LCBzbyB3ZSBjYW4gcmV0cmlldmUgdGhlCi0gCSAqIHN5c1VwVGltZS4gKi8KLUBAIC00MTYsOCAr NDI1LDggQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKLSAJCWxvY2Fs X3BhdGhfdG9fc25tcGdldCA9IHNubXBnZXRfcGF0aDsKLSAJfQotIAotLQlpbnQgbG9jYWxfcGF0 aF90b19zbm1wZ2V0X2xlbmd0aCA9IHN0cmxlbihsb2NhbF9wYXRoX3RvX3NubXBnZXQpOwotLQlp bnQgc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGggICA9IHN0cmxlbihzbm1wZ2V0X2JpbmFyeV9u YW1lKTsKLSsJbG9jYWxfcGF0aF90b19zbm1wZ2V0X2xlbmd0aCA9IHN0cmxlbihsb2NhbF9wYXRo X3RvX3NubXBnZXQpOwotKwlzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aCAgID0gc3RybGVuKHNu bXBnZXRfYmluYXJ5X25hbWUpOwotIAotIAkvKiBBbGxvY2F0ZSBlbm91Z2ggbWVtb3J5IHRvIGhv bGQgdGhlIHBhdGgsIHRoZSBiaW5hcnkgbmFtZSwgYW5kIHRoZQotIAkgKiBudWxsIGNoYXJhY3Rl ci4gIFdlIGRvbid0IHVzZSBwa2dfbWVtb3J5IGhlcmUuICovCi1kaWZmIC0tZ2l0IGEvbW9kdWxl cy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMgYi9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYwot aW5kZXggZGZjMDk3OGI3NC4uMmY3ZWQ5YTMwNyAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0 YXRzL3V0aWxpdGllcy5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYwotQEAg LTcyLDEzICs3MiwxMyBAQCBpbnQgc3RyaW5nSGFuZGxlclNhbml0eUNoZWNrKCBtb2RwYXJhbV90 IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqcGFyYW1ldGVyTmFtZSkKLSBpbnQgZ2V0X3N0YXRpc3Rp YyhjaGFyICpzdGF0TmFtZSkKLSB7Ci0gCWludCByZXN1bHQgPSAwOwotLQotKwlzdGF0X3ZhciAq dGhlVmFyID0gTlVMTDsKLSAJc3RyIHRoZVN0cjsKLSAKLSAJdGhlU3RyLnMgICA9IHN0YXROYW1l OwotIAl0aGVTdHIubGVuID0gc3RybGVuKHN0YXROYW1lKTsKLSAKLS0Jc3RhdF92YXIgKnRoZVZh ciA9IGdldF9zdGF0KCZ0aGVTdHIpOwotKwl0aGVWYXIgPSBnZXRfc3RhdCgmdGhlU3RyKTsKLSAK LSAJaWYgKHRoZVZhcj09MCkgewotIAkJTE1fSU5GTygiZmFpbGVkIHRvIHJldHJpZXZlIHN0YXRp c3RpY3MgZm9yICVzXG4iLCBzdGF0TmFtZSk7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMuc3BlYyBi L29wZW5zaXBzLnNwZWMKaW5kZXggOWU1NDQ4Yi4uZGRkY2MxMyAxMDA2NDQKLS0tIGEvb3BlbnNp cHMuc3BlYworKysgYi9vcGVuc2lwcy5zcGVjCkBAIC0xLDEzICsxLDEzIEBACi0lZ2xvYmFsIGdp dF9jb21taXQgOTg1MjcyZmYzZDdlYmM1ZTlmMjRhZDlmOGZjZjhiMWQyNTQ5ZjFiNgorJWdsb2Jh bCBnaXRfY29tbWl0IGFjZjQ1YzA4ZTdhMTY5YjE4ZjdiNTNmMDJkNDJjMTljMDM1YzFjNDMKIAog JWdsb2JhbCBFWENMVURFX01PRFVMRVMgY2FjaGVkYl9jYXNzYW5kcmEgY2FjaGVkYl9keW5hbW9k YiAleyE/X3dpdGhfb3JhY2xlOmRiX29yYWNsZX0gZXZlbnRfc3FzIGV4YW1wbGUgbGF1bmNoX2Rh cmtseSBvcGVudGVsZW1ldHJ5IG9zcCBydHAuaW8gc25ndGMgdGxzX3dvbGZzc2wKIAogU3VtbWFy eTogIE9wZW4gU291cmNlIFNJUCBTZXJ2ZXIKIE5hbWU6ICAgICBvcGVuc2lwcwogVmVyc2lvbjog IDQuMC4wCi1SZWxlYXNlOiAgJWF1dG9yZWxlYXNlIC1wIC1zIGJldGEKK1JlbGVhc2U6ICAlYXV0 b3JlbGVhc2UKIExpY2Vuc2U6ICBHUEwtMi4wLW9yLWxhdGVyCi1Tb3VyY2UwOiAgaHR0cHM6Ly9n aXRodWIuY29tLyV7bmFtZX0vJXtuYW1lfS9hcmNoaXZlLyV7dmVyc2lvbn0tYmV0YS8le25hbWV9 LSV7dmVyc2lvbn0tYmV0YS50YXIuZ3oKK1NvdXJjZTA6ICBodHRwczovL2dpdGh1Yi5jb20vJXtu YW1lfS8le25hbWV9L2FyY2hpdmUvJXt2ZXJzaW9ufS8le25hbWV9LSV7dmVyc2lvbn0udGFyLmd6 CiBTb3VyY2UzOiAgb3BlbnNpcHMuc3lzdXNlcnMKICMgRmVkb3JhLXNwZWNpZmljIHBhdGNoZXMK IFBhdGNoOiBvcGVuc2lwcy0wMDAxLUNvbnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMu cGF0Y2gKQEAgLTE4LDkgKzE4LDggQEAgUGF0Y2g6IG9wZW5zaXBzLTAwMDUtRml4LXJhYmJpdG1x LWMtZGVwcmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2gKIFBhdGNoOiBvcGVuc2lwcy0wMDA2 LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0 Y2gKIFBhdGNoOiBvcGVuc2lwcy0wMDA3LUZpeC1jb25zdC1jb3JyZWN0bmVzcy13YXJuaW5ncy1p bi1IVFRQLWFuZC1GcmVlU1dJVEMucGF0Y2gKIFBhdGNoOiBvcGVuc2lwcy0wMDA4LUZpeC11bmlu aXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0Y2gKLVBhdGNo OiBvcGVuc2lwcy0wMDA5LUZpeC1mb3JtYXQtc3BlY2lmaWVyLXdhcm5pbmdzLW9uLTMyLWJpdC1h cmNoaXRlY3R1cmUucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDEwLUZpeC1wb2ludGVyLXRydW5j YXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKLVBhdGNoOiBvcGVuc2lw cy0wMDExLUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1v ZHUucGF0Y2gKK1BhdGNoOiBvcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRydW5jYXRpb24td2Fy bmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKK1BhdGNoOiBvcGVuc2lwcy0wMDEwLUZp eC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2gK IAogVVJMOiAgICAgIGh0dHBzOi8vb3BlbnNpcHMub3JnCiAKQEAgLTkyNyw3ICs5MjYsNyBAQCB0 aGUgZXhjaGFuZ2Ugb2YgaW5zdGFudCBtZXNzYWdlcyBiZXR3ZWVuIFNJUCBjbGllbnRzIGFuZCBY TVBQKGphYmJlcikKIGNsaWVudHMuCiAKICVwcmVwCi0lYXV0b3NldHVwIC1wMSAtbiAle25hbWV9 LSV7dmVyc2lvbn0tYmV0YQorJWF1dG9zZXR1cCAtcDEgLW4gJXtuYW1lfS0le3ZlcnNpb259CiAK ICVidWlsZAogTE9DQUxCQVNFPS91c3IgTklDRVI9MCBDRkxBR1M9IiV7b3B0ZmxhZ3N9IiBMREZM QUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSIgJXs/X3dpdGhfb3JhY2xlOk9SQUhPTUU9IiRPUkFD TEVfSE9NRSJ9ICV7X19tYWtlfSBhbGwgbW9kdWxlcy1yZWFkbWUgJXs/X3NtcF9tZmxhZ3N9IFRM Uz0xIFZFUlNJT05UWVBFPWdpdCBUSElTUkVWSVNJT049JXtzdWIgJWdpdF9jb21taXQgMCA5fSBI VFRQMkRfVVNFX1NZU1RFTT15ZXMgSFRUUDJEX1VTRV9TSEFSRUQ9eWVzIFNUSVJfU0hBS0VOX09Q RU5TU0w9eWVzIFwKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA2ZmQ3ZGNm Li5kOTMzMDZiIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAK LVNIQTUxMiAob3BlbnNpcHMtNC4wLjAtYmV0YS50YXIuZ3opID0gOTViODU3MWM3NGQ0ZjZkZDgy MDk2NjNiZGQ4MGQ0ZDM5M2FhNTU1MzgzOTEzMjI0MGMyZjYwNjA0YjQ0MDgzNmUzZTA2MTk1Yjk5 YTk5Y2FhZjNmNDc2NzA4YzY2ZTUxOWMyMTgxNmJjYjczMTRkZWEyZmI4OGViZDE1ZmE5MDQKK1NI QTUxMiAob3BlbnNpcHMtNC4wLjAudGFyLmd6KSA9IDc4Y2M1OTlkYWUxNTkyNmVlYWMwZWQ1MDcy N2U0MmIzMzZkY2MzYjQzMTc2OWE1YjBkNTJlYzlkZTcxMjUwMDg0ZWNhMDg5M2VjZmFkNTE1YWNj MGViODIxNDk2NDNiNjQxMGNhMWY5NDcwMjI1NzQ0OWRmMmQ5ZDU3MTMyMjkwCg==