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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.1.2-8 Date: Mon, 29 Jun 2026 12:23:14 GMT Message-ID: <178273579415.1.11168620259355191745.rpms-gcc-912fdb15c78f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 912fdb15c78f8f20f0ec3f1561715fc482e82519 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogOTEyZmRiMTVjNzhmOGYyMGYwZWMzZjE1NjE3MTVmYzQ4 MmU4MjUxOQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwNy0wNC0wM1QxMzo1NjoxNyswMDowMApTdGF0cyAgOiArOTYwLy02OCBpbiA4 IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2Mv Yy85MTJmZGIxNWM3OGY4ZjIwZjBlYzNmMTU2MTcxNWZjNDgyZTgyNTE5P2JyYW5jaD1yaGVsLWY0 MS1iYXNlCgpMb2c6CjQuMS4yLTgKCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBiLy5jdnNp Z25vcmUKaW5kZXggZGNiMDE3Yi4uZjQ3MjFhOSAxMDA2NDQKLS0tIGEvLmN2c2lnbm9yZQorKysg Yi8uY3ZzaWdub3JlCkBAIC0xICsxIEBACi1nY2MtNC4xLjItMjAwNzAzMjkudGFyLmJ6MgorZ2Nj LTQuMS4yLTIwMDcwNDAzLnRhci5iejIKCmRpZmYgLS1naXQgYS9nY2M0MS1qYXZhLWJvZ3VzLWRl YnVnbGluZS5wYXRjaCBiL2djYzQxLWphdmEtYm9ndXMtZGVidWdsaW5lLnBhdGNoCmluZGV4IDM0 YzRhZjMuLjljYmRiMGIgMTAwNjQ0Ci0tLSBhL2djYzQxLWphdmEtYm9ndXMtZGVidWdsaW5lLnBh dGNoCisrKyBiL2djYzQxLWphdmEtYm9ndXMtZGVidWdsaW5lLnBhdGNoCkBAIC0xOCwyMCArMTgs MTkgQEAKICAgIENMQVNTX1AgKGNsYXNzX3R5cGUpID0gMTsKIC0tLSBnY2MvamF2YS9qY2YtcGFy c2UuYyAgICAocmV2aXNpb24gMTIyNzQ2KQogKysrIGdjYy9qYXZhL2pjZi1wYXJzZS5jICAgICh3 b3JraW5nIGNvcHkpCi1AQCAtMTIyMSw5ICsxMjIxLDEyIEBACi0gICAgICAgIG1haW5faW5wdXRf ZmlsZW5hbWUgPSBzZm5hbWU7CitAQCAtMTIyMSw5ICsxMjIxLDEyIEBAIGdpdmVfbmFtZV90b19j bGFzcyAoSkNGICpqY2YsIGludCBpKQorIAltYWluX2lucHV0X2ZpbGVuYW1lID0gc2ZuYW1lOwog ICAgICAgIH0KICAjZWxzZQogLSAgICAgIGlucHV0X2xvY2F0aW9uID0gREVDTF9TT1VSQ0VfTE9D QVRJT04gKFRZUEVfTkFNRSAodGhpc19jbGFzcykpOwogLSAgICAgIGlmIChtYWluX2lucHV0X2Zp bGVuYW1lID09IE5VTEwgJiYgamNmID09IG1haW5famNmKQotLSAgICAgICBtYWluX2lucHV0X2Zp bGVuYW1lID0gaW5wdXRfZmlsZW5hbWU7CistCW1haW5faW5wdXRfZmlsZW5hbWUgPSBpbnB1dF9m aWxlbmFtZTsKICsgICAgICBpZiAoISBERUNMX0FSVElGSUNJQUwgKFRZUEVfTkFNRSAodGhpc19j bGFzcykpKQotKyAgICAgICB7Ci0rICAgICAgICAgaW5wdXRfbG9jYXRpb24gPSBERUNMX1NPVVJD RV9MT0NBVElPTiAoVFlQRV9OQU1FICh0aGlzX2NsYXNzKSk7Ci0rICAgICAgICAgaWYgKG1haW5f aW5wdXRfZmlsZW5hbWUgPT0gTlVMTCAmJiBqY2YgPT0gbWFpbl9qY2YpCi0rICAgICAgICAgICBt YWluX2lucHV0X2ZpbGVuYW1lID0gaW5wdXRfZmlsZW5hbWU7Ci0rICAgICAgIH0KKysJeworKwkg IGlucHV0X2xvY2F0aW9uID0gREVDTF9TT1VSQ0VfTE9DQVRJT04gKFRZUEVfTkFNRSAodGhpc19j bGFzcykpOworKwkgIGlmIChtYWluX2lucHV0X2ZpbGVuYW1lID09IE5VTEwgJiYgamNmID09IG1h aW5famNmKQorKwkgICAgbWFpbl9pbnB1dF9maWxlbmFtZSA9IGlucHV0X2ZpbGVuYW1lOworKwl9 CiAgI2VuZGlmCiAgCiAgICAgICAgamNmLT5jcG9vbC5kYXRhW2ldLnQgPSB0aGlzX2NsYXNzOwot CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtbGliamF2YS12aXNpYmlsaXR5LnBhdGNoIGIvZ2NjNDEtbGli amF2YS12aXNpYmlsaXR5LnBhdGNoCmluZGV4IGYzOGIzZDQuLjc2M2VjYzMgMTAwNjQ0Ci0tLSBh L2djYzQxLWxpYmphdmEtdmlzaWJpbGl0eS5wYXRjaAorKysgYi9nY2M0MS1saWJqYXZhLXZpc2li aWxpdHkucGF0Y2gKQEAgLTEsNCArMSw0IEBACi0yMDA3LTAzLTIzICBBbmRyZXcgSGFsZXkgIDxh cGhAcmVkaGF0LmNvbT4KKzIwMDctMDMtMjkgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29t PgogCiAJKiBqdmdlbm1haW4uYyAobWFpbik6IENoYW5nZSBtYWluIHRvIHVzZSBjbGFzcyQsIG5v dCBjbGFzcyQkLgogCShkb19tYW5nbGVfY2xhc3NuYW1lKTogTGlrZXdpc2UuCkBAIC05LDEwICs5 LDExIEBACiAJKGJ1aWxkX2NsYXNzZG9sbGFyX2ZpZWxkKTogTGlrZXdpc2UuCiAJKG1ha2VfY2xh c3NfZGF0YSk6IExpa2V3aXNlLgogCShsYXlvdXRfY2xhc3NfbWV0aG9kKTogTGlrZXdpc2UuCi0J Ci0tLS0gZ2NjL2phdmEvY2xhc3MuYwkocmV2aXNpb24gMTIzMDg0KQorCSogZXhwci5jIChzcGVj aWFsX21ldGhvZF9wKTogTmV3IGZ1bmN0aW9uLgorCistLS0gZ2NjL2phdmEvY2xhc3MuYwkocmV2 aXNpb24gMTIyNzQ2KQogKysrIGdjYy9qYXZhL2NsYXNzLmMJKHdvcmtpbmcgY29weSkKLUBAIC02 OTEsNiArNjkxLDEzIEBACitAQCAtNjg5LDYgKzY4OCwxMyBAQAogICAgcmV0dXJuIGZudHlwZTsK ICB9CiAgCkBAIC0yNiw3ICsyNyw3IEBACiAgdHJlZQogIGFkZF9tZXRob2RfMSAodHJlZSB0aGlz X2NsYXNzLCBpbnQgYWNjZXNzX2ZsYWdzLCB0cmVlIG5hbWUsIHRyZWUgZnVuY3Rpb25fdHlwZSkK ICB7Ci1AQCAtODAxLDYgKzgwOCwxMCBAQAorQEAgLTc5OSw2ICs4MDUsMTAgQEAKICAgICAgICAv KiBBbHdheXMgbWFrZSBmaWVsZCBleHRlcm5hbGx5IHZpc2libGUuICBUaGlzIGlzIHJlcXVpcmVk IHNvCiAgCSB0aGF0IG5hdGl2ZSBtZXRob2RzIGNhbiBhbHdheXMgYWNjZXNzIHRoZSBmaWVsZC4g ICovCiAgICAgICAgVFJFRV9QVUJMSUMgKGZpZWxkKSA9IDE7CkBAIC0zNyw3ICszOCw3IEBACiAg ICAgICAgLyogQ29uc2lkZXJlZCBleHRlcm5hbCB1bmxlc3Mgd2UgYXJlIGNvbXBpbGluZyBpdCBp bnRvIHRoaXMKICAJIG9iamVjdCBmaWxlLiAgKi8KICAgICAgICBERUNMX0VYVEVSTkFMIChmaWVs ZCkgPSAoaXNfY29tcGlsZWRfY2xhc3MgKGNsYXNzKSAhPSAyKTsKLUBAIC05NTgsNyArOTY5LDEx IEBACitAQCAtOTU2LDcgKzk2NiwxMSBAQAogICAgICAgIGRlY2wgPSBidWlsZF9kZWNsIChWQVJf REVDTCwgZGVjbF9uYW1lLCBjbGFzc190eXBlX25vZGUpOwogICAgICAgIFRSRUVfU1RBVElDIChk ZWNsKSA9IDE7CiAgICAgICAgaWYgKCEgZmxhZ19pbmRpcmVjdF9jbGFzc2VzKQpAQCAtNTAsNyAr NTEsNyBAQAogICAgICAgIERFQ0xfSUdOT1JFRF9QIChkZWNsKSA9IDE7CiAgICAgICAgREVDTF9B UlRJRklDSUFMIChkZWNsKSA9IDE7CiAgICAgICAgaWYgKGlzX2NvbXBpbGVkX2NsYXNzICh0eXBl KSA9PSAxKQotQEAgLTk5Nyw2ICsxMDEyLDcgQEAKK0BAIC05OTUsNiArMTAwOSw3IEBACiAgICAg ICAgVFJFRV9DT05TVEFOVCAoZGVjbCkgPSAxOwogICAgICAgIFRSRUVfUkVBRE9OTFkgKGRlY2wp ID0gMTsKICAgICAgICBUUkVFX1BVQkxJQyAoZGVjbCkgPSAxOwpAQCAtNTgsNyArNTksNyBAQAog ICAgICAgIERFQ0xfSUdOT1JFRF9QIChkZWNsKSA9IDE7CiAgICAgICAgREVDTF9BUlRJRklDSUFM IChkZWNsKSA9IDE7CiAgICAgICAgTUFZQkVfQ1JFQVRFX1ZBUl9MQU5HX0RFQ0xfU1BFQ0lGSUMg KGRlY2wpOwotQEAgLTE2ODQsNiArMTcwMCwxMCBAQAorQEAgLTE2NDAsNiArMTY1NSwxMCBAQAog IAogICAgICAgIFRSRUVfUFVCTElDIChkdGFibGVfZGVjbCkgPSAxOwogICAgICAgIERFQ0xfSU5J VElBTCAoZHRhYmxlX2RlY2wpID0gZHRhYmxlOwpAQCAtNjksMTggKzcwLDIwIEBACiAgICAgICAg aWYgKCEgZmxhZ19pbmRpcmVjdF9jbGFzc2VzKQogIAlyZXN0X29mX2RlY2xfY29tcGlsYXRpb24g KGR0YWJsZV9kZWNsLCAxLCAwKTsKICAgICAgICAvKiBNYXliZSB3ZSdyZSBjb21waWxpbmcgQ2xh c3MgYXMgdGhlIGZpcnN0IGNsYXNzLiAgSWYgc28sIHNldAotQEAgLTI1NTMsNiArMjU3MywxMCBA QAorQEAgLTI1MDksNiArMjUyOCwxMiBAQAogIAogICAgVFJFRV9QVUJMSUMgKG1ldGhvZF9kZWNs KSA9IDE7CiAgCiArICBpZiAoZmxhZ19pbmRpcmVjdF9jbGFzc2VzCi0rICAgICAgfHwgKE1FVEhP RF9QUklWQVRFIChtZXRob2RfZGVjbCkgJiYgTUVUSE9EX1NUQVRJQyAobWV0aG9kX2RlY2wpKSkK KysgICAgICB8fCAoTUVUSE9EX1BSSVZBVEUgKG1ldGhvZF9kZWNsKSAmJiBNRVRIT0RfU1RBVElD IChtZXRob2RfZGVjbCkKKysJICAmJiAhIE1FVEhPRF9OQVRJVkUgKG1ldGhvZF9kZWNsKQorKwkg ICYmICEgc3BlY2lhbF9tZXRob2RfcCAobWV0aG9kX2RlY2wpKSkKICsgICAgaGlkZSAobWV0aG9k X2RlY2wpOwogKwogICAgLyogQ29uc2lkZXJlZCBleHRlcm5hbCB1bmxlc3MgaXQgaXMgYmVpbmcg Y29tcGlsZWQgaW50byB0aGlzIG9iamVjdAogICAgICAgZmlsZSwgb3IgaXQgd2FzIGFscmVhZHkg ZmxhZ2dlZCBhcyBleHRlcm5hbC4gICovCiAgICBpZiAoIURFQ0xfRVhURVJOQUwgKG1ldGhvZF9k ZWNsKSkKLS0tLSBnY2MvamF2YS9qdmdlbm1haW4uYwkocmV2aXNpb24gMTIzMDg0KQorLS0tIGdj Yy9qYXZhL2p2Z2VubWFpbi5jCShyZXZpc2lvbiAxMjI3NDYpCiArKysgZ2NjL2phdmEvanZnZW5t YWluLmMJKHdvcmtpbmcgY29weSkKIEBAIC0xNDMsOCArMTQzLDggQEAKICAgICAgZnByaW50ZiAo c3RyZWFtLCAiICAgSnZSdW5NYWluTmFtZSAoXCIlc1wiLCBhcmdjLCBhcmd2KTtcbiIsIGNsYXNz bmFtZSk7CkBAIC0xMDIsNSArMTA1LDQxIEBACiAgICBvYnN0YWNrXzFncm93IChtYW5nbGVfb2Jz dGFjaywgJ1wwJyk7CiAgICByZXR1cm4gb2JzdGFja19maW5pc2ggKG1hbmdsZV9vYnN0YWNrKTsK ICB9Ci0KLQorLS0tIGdjYy9qYXZhL2V4cHIuYwkocmV2aXNpb24gMTIyNzQ2KQorKysrIGdjYy9q YXZhL2V4cHIuYwkod29ya2luZyBjb3B5KQorQEAgLTIxMjEsNiArMjEyMSwyNSBAQAorIAorICAg IHtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCBOVUxMfX07CisgCisrLyogVHJ1ZSBpZiB0aGlz IG1ldGhvZCBpcyBzcGVjaWFsLCBpLmUuIGl0J3MgYSBwcml2YXRlIG1ldGhvZCB0aGF0CisrICAg c2hvdWxkIGJlIGV4cG9ydGVkIGZybyBhIERTTy4gICovCisrCisrYm9vbAorK3NwZWNpYWxfbWV0 aG9kX3AgKHRyZWUgY2FuZGlkYXRlX21ldGhvZCkKKyt7CisrICB0cmVlIGNvbnRleHQgPSBERUNM X05BTUUgKFRZUEVfTkFNRSAoREVDTF9DT05URVhUIChjYW5kaWRhdGVfbWV0aG9kKSkpOworKyAg dHJlZSBtZXRob2QgPSBERUNMX05BTUUgKGNhbmRpZGF0ZV9tZXRob2QpOworKyAgcmV3cml0ZV9y dWxlICpwOworKworKyAgZm9yIChwID0gcnVsZXM7IHAtPmNsYXNzbmFtZTsgcCsrKQorKyAgICB7 CisrICAgICAgaWYgKGdldF9pZGVudGlmaWVyIChwLT5jbGFzc25hbWUpID09IGNvbnRleHQKKysJ ICAmJiBnZXRfaWRlbnRpZmllciAocC0+bWV0aG9kKSA9PSBtZXRob2QpCisrCXJldHVybiB0cnVl OworKyAgICB9CisrICByZXR1cm4gZmFsc2U7CisrfQorKworIC8qIFNjYW4gdGhlIHJ1bGVzIGxp c3QgZm9yIHJlcGxhY2VtZW50cyBmb3IgKk1FVEhPRF9QIGFuZCByZXBsYWNlIHRoZQorICAgIGFy Z3MgYWNjb3JkaW5nbHkuICBJZiB0aGUgcmV3cml0ZSByZXN1bHRzIGluIGFuIGFjY2VzcyB0byBh IHByaXZhdGUKKyAgICBtZXRob2QsIHVwZGF0ZSBTUEVDSUFMLiovCistLS0gZ2NjL2phdmEvamF2 YS10cmVlLmgJKHJldmlzaW9uIDEyMjc0NikKKysrKyBnY2MvamF2YS9qYXZhLXRyZWUuaAkod29y a2luZyBjb3B5KQorQEAgLTExNzEsNiArMTE3MSw3IEBACisgZXh0ZXJuIHZvaWQgaW5pdGlhbGl6 ZV9idWlsdGlucyAodm9pZCk7CisgCisgZXh0ZXJuIHRyZWUgbG9va3VwX25hbWUgKHRyZWUpOwor K2V4dGVybiBib29sIHNwZWNpYWxfbWV0aG9kX3AgKHRyZWUpOworIGV4dGVybiB2b2lkIG1heWJl X3Jld3JpdGVfaW52b2NhdGlvbiAodHJlZSAqLCB0cmVlICosIHRyZWUgKiwgdHJlZSAqKTsKKyBl eHRlcm4gdHJlZSBidWlsZF9rbm93bl9tZXRob2RfcmVmICh0cmVlLCB0cmVlLCB0cmVlLCB0cmVl LCB0cmVlLCB0cmVlKTsKKyBleHRlcm4gdHJlZSBidWlsZF9jbGFzc19pbml0ICh0cmVlLCB0cmVl KTsKCmRpZmYgLS1naXQgYS9nY2M0MS1wcjMxMTg3LnBhdGNoIGIvZ2NjNDEtcHIzMTE4Ny5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWI4NTY0Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjNDEtcHIzMTE4Ny5wYXRjaApAQCAtMCwwICsxLDExMyBAQAorMjAwNy0wMy0z MCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CisKKwlQUiBjKysvMzExODcKKwkq IHR5cGVjay5jIChjcF90eXBlX3JlYWRvbmx5KTogTmV3IGZuLgorCSogY3AtdHJlZS5oOiBEZWNs YXJlIGl0LgorCSogZGVjbC5jIChzdGFydF9kZWNsKTogU2V0IGltcGxpY2l0IERFQ0xfVEhJU19T VEFUSUMgaGVyZS4KKwkoY3BfZmluaXNoX2RlY2wpOiBOb3QgaGVyZS4KKworMjAwNy0wNC0wMiAg SmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CisKKwlQUiBjKysvMzExODcKKwkqIGcr Ky5kZy9leHQvdmlzaWJpbGl0eS9hbm9uMy5DOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jcC90eXBl Y2suYwkocmV2aXNpb24gMTIzNDMxKQorKysrIGdjYy9jcC90eXBlY2suYwkocmV2aXNpb24gMTIz NDMyKQorQEAgLTY4OTcsNiArNjg5NywxNiBAQCBjcF90eXBlX3F1YWxzICh0cmVlIHR5cGUpCisg ICByZXR1cm4gVFlQRV9RVUFMUyAodHlwZSk7CisgfQorIAorKy8qIFJldHVybnMgbm9uemVybyBp ZiB0aGUgVFlQRSBpcyBjb25zdCBmcm9tIGEgQysrIHBlcnNwZWN0aXZlOiBsb29rIGluc2lkZQor KyAgIGFycmF5cy4gICovCisrCisrYm9vbAorK2NwX3R5cGVfcmVhZG9ubHkgKHRyZWUgdHlwZSkK Kyt7CisrICB0eXBlID0gc3RyaXBfYXJyYXlfdHlwZXMgKHR5cGUpOworKyAgcmV0dXJuIFRZUEVf UkVBRE9OTFkgKHR5cGUpOworK30KKysKKyAvKiBSZXR1cm5zIG5vbnplcm8gaWYgdGhlIFRZUEUg Y29udGFpbnMgYSBtdXRhYmxlIG1lbWJlci4gICovCisgCisgYm9vbAorLS0tIGdjYy9jcC9kZWNs LmMJKHJldmlzaW9uIDEyMzQzMSkKKysrKyBnY2MvY3AvZGVjbC5jCShyZXZpc2lvbiAxMjM0MzIp CitAQCAtMzc5Nyw2ICszNzk3LDcgQEAgc3RhcnRfZGVjbCAoY29uc3QgY3BfZGVjbGFyYXRvciAq ZGVjbGFyYQorICAgdHJlZSBkZWNsOworICAgdHJlZSB0eXBlLCB0ZW07CisgICB0cmVlIGNvbnRl eHQ7CisrICBib29sIHdhc19wdWJsaWM7CisgCisgICAqcHVzaGVkX3Njb3BlX3AgPSBOVUxMX1RS RUU7CisgCitAQCAtMzk1MSw2ICszOTUyLDggQEAgc3RhcnRfZGVjbCAoY29uc3QgY3BfZGVjbGFy YXRvciAqZGVjbGFyYQorIAkJIGRlY2wpOworICAgICB9CisgCisrICB3YXNfcHVibGljID0gVFJF RV9QVUJMSUMgKGRlY2wpOworKworICAgLyogRW50ZXIgdGhpcyBkZWNsYXJhdGlvbiBpbnRvIHRo ZSBzeW1ib2wgdGFibGUuICAqLworICAgdGVtID0gbWF5YmVfcHVzaF9kZWNsIChkZWNsKTsKKyAK K0BAIC0zOTcxLDYgKzM5NzQsMTcgQEAgc3RhcnRfZGVjbCAoY29uc3QgY3BfZGVjbGFyYXRvciAq ZGVjbGFyYQorICAgICAgICYmICFoYXZlX2dsb2JhbF9ic3NfcCAoKSkKKyAgICAgREVDTF9DT01N T04gKHRlbSkgPSAxOworIAorKyAgaWYgKFRSRUVfQ09ERSAodGVtKSA9PSBWQVJfREVDTAorKyAg ICAgICYmIERFQ0xfTkFNRVNQQUNFX1NDT1BFX1AgKHRlbSkgJiYgIVRSRUVfUFVCTElDICh0ZW0p ICYmICF3YXNfcHVibGljCisrICAgICAgJiYgIURFQ0xfVEhJU19TVEFUSUMgKHRlbSkgJiYgIURF Q0xfQVJUSUZJQ0lBTCAodGVtKSkKKysgICAgeworKyAgICAgIC8qIFRoaXMgaXMgYSBjb25zdCB2 YXJpYWJsZSB3aXRoIGltcGxpY2l0ICdzdGF0aWMnLiAgU2V0CisrCSBERUNMX1RISVNfU1RBVElD IHNvIHdlIGNhbiB0ZWxsIGl0IGZyb20gdmFyaWFibGVzIHRoYXQgYXJlCisrCSAhVFJFRV9QVUJM SUMgYmVjYXVzZSBvZiB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZS4gICovCisrICAgICAgZ2NjX2Fz c2VydCAoY3BfdHlwZV9yZWFkb25seSAoVFJFRV9UWVBFICh0ZW0pKSk7CisrICAgICAgREVDTF9U SElTX1NUQVRJQyAodGVtKSA9IDE7CisrICAgIH0KKysKKyAgIGlmICghcHJvY2Vzc2luZ190ZW1w bGF0ZV9kZWNsICYmIFRSRUVfQ09ERSAodGVtKSA9PSBWQVJfREVDTCkKKyAgICAgc3RhcnRfZGVj bF8xICh0ZW0sIGluaXRpYWxpemVkKTsKKyAKK0BAIC01MjgzLDE0ICs1Mjk3LDYgQEAgY3BfZmlu aXNoX2RlY2wgKHRyZWUgZGVjbCwgdHJlZSBpbml0LCBibworIAl7CisgCSAgbGF5b3V0X3Zhcl9k ZWNsIChkZWNsKTsKKyAJICBtYXliZV9jb21tb25pemVfdmFyIChkZWNsKTsKKy0JICBpZiAoREVD TF9OQU1FU1BBQ0VfU0NPUEVfUCAoZGVjbCkgJiYgIVRSRUVfUFVCTElDIChkZWNsKQorLQkgICAg ICAmJiAhREVDTF9USElTX1NUQVRJQyAoZGVjbCkgJiYgIURFQ0xfQVJUSUZJQ0lBTCAoZGVjbCkp CistCSAgICB7CistCSAgICAgIC8qIFRoaXMgaXMgYSBjb25zdCB2YXJpYWJsZSB3aXRoIGltcGxp Y2l0ICdzdGF0aWMnLiAgU2V0CistCQkgREVDTF9USElTX1NUQVRJQyBzbyB3ZSBjYW4gdGVsbCBp dCBmcm9tIHZhcmlhYmxlcyB0aGF0IGFyZQorLQkJICFUUkVFX1BVQkxJQyBiZWNhdXNlIG9mIHRo ZSBhbm9ueW1vdXMgbmFtZXNwYWNlLiAgKi8KKy0JICAgICAgREVDTF9USElTX1NUQVRJQyAoZGVj bCkgPSAxOworLQkgICAgfQorIAl9CisgCisgICAgICAgbWFrZV9ydGxfZm9yX25vbmxvY2FsX2Rl Y2wgKGRlY2wsIGluaXQsIGFzbXNwZWMpOworLS0tIGdjYy9jcC9jcC10cmVlLmgJKHJldmlzaW9u IDEyMzQzMSkKKysrKyBnY2MvY3AvY3AtdHJlZS5oCShyZXZpc2lvbiAxMjM0MzIpCitAQCAtNDc0 Miw2ICs0NzQyLDcgQEAgZXh0ZXJuIGJvb2wgY29tcF9wdHJfdHR5cGVzX2NvbnN0CQkodHJlZQor IGV4dGVybiBpbnQgcHRyX3JlYXNvbmFibHlfc2ltaWxhcgkJKHRyZWUsIHRyZWUpOworIGV4dGVy biB0cmVlIGJ1aWxkX3B0cm1lbWZ1bmMJCQkodHJlZSwgdHJlZSwgaW50LCBib29sKTsKKyBleHRl cm4gaW50IGNwX3R5cGVfcXVhbHMJCQkodHJlZSk7CisrZXh0ZXJuIGJvb2wgY3BfdHlwZV9yZWFk b25seQkJCSh0cmVlKTsKKyBleHRlcm4gYm9vbCBjcF9oYXNfbXV0YWJsZV9wCQkJKHRyZWUpOwor IGV4dGVybiBib29sIGF0X2xlYXN0X2FzX3F1YWxpZmllZF9wCQkodHJlZSwgdHJlZSk7CisgZXh0 ZXJuIHZvaWQgY3BfYXBwbHlfdHlwZV9xdWFsc190b19kZWNsCQkoaW50LCB0cmVlKTsKKy0tLSBn Y2MvdGVzdHN1aXRlL2crKy5kZy9leHQvdmlzaWJpbGl0eS9hbm9uMy5DCShyZXZpc2lvbiAwKQor KysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC92aXNpYmlsaXR5L2Fub24zLkMJKHJldmlzaW9u IDEyMzQzMikKK0BAIC0wLDAgKzEsMTYgQEAKKysvLyBQUiBjKysvMzExODcKKysvLyBCdWc6IHRo ZSByZXBlYXRlZCBkZWNsYXJhdGlvbiB3YXMgY29uZnVzaW5nIHRoZSBjb21waWxlciBpbnRvCisr Ly8gdGhpbmtpbmcgdGhhdCBmb28xIGhhZCBsYW5ndWFnZSBpbnRlcm5hbCBsaW5rYWdlLgorKwor K2NsYXNzIGZvbyB7IH07CisrCisrbmFtZXNwYWNlCisreworKyAgZXh0ZXJuIGZvbyBmb28xOwor KyAgZm9vIGZvbzE7CisrfQorKworK3RlbXBsYXRlPCBmb28gKiA+CisrY2xhc3MgYmFyIHsgfTsK KysKKytiYXI8ICZmb28xID4gYmFyMTsKCmRpZmYgLS1naXQgYS9nY2M0MS1yaDIzMTgxOC5wYXRj aCBiL2djYzQxLXJoMjMxODE4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmQ1NzUxMmQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1yaDIzMTgxOC5wYXRjaApAQCAt MCwwICsxLDY2OCBAQAorMjAwNy0wNC0wMiAgRnJhbmNpcyBLdW5nICA8Zmt1bmdAcmVkaGF0LmNv bT4KKworCSogZ251L2phdmEvYXd0L3BlZXIvZ3RrL0ZyZWV0eXBlR2x5cGhWZWN0b3IuamF2YQor CShmb250U2V0KTogSW5pdGlhbGl6ZSB0byBudWxsLgorCShGcmVldHlwZUdseXBoVmVjdG9yKEZv bnQsIGludFtdLCBGb250UmVuZGVyQ29udGV4dCkpOiBQb3B1bGF0ZSBmb250U2V0CisJYXJyYXkg d2l0aCBkZWZhdWx0IGZvbnQgaWYgbmVlZGVkLgorCShGcmVldHlwZUdseXBoVmVjdG9yKEZyZWV0 eXBlR2x5cGhWZWN0b3IpKTogQ2xvbmUgYWxsIGZpZWxkcy4KKwkoZ2V0TmF0aXZlRm9udFBvaW50 ZXIpOiBOZXcgbmF0aXZlIG1ldGhvZC4KKwkqIGluY2x1ZGUvZ251X2phdmFfYXd0X3BlZXJfZ3Rr X0ZyZWV0eXBlR2x5cGhWZWN0b3IuaDogUmVnZW5lcmF0ZWQuCisJKiBuYXRpdmUvam5pL2d0ay1w ZWVyL2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoVmVjdG9yLmMKKwkoSmF2YV9n bnVfamF2YV9hd3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rvcl9nZXROYXRpdmVGb250UG9p bnRlcik6CisJTmV3IGZ1bmN0aW9uLgorCisyMDA3LTA0LTAyICBGcmFuY2lzIEt1bmcgIDxma3Vu Z0ByZWRoYXQuY29tPgorCisJKiBnbnUvamF2YS9hd3QvcGVlci9ndGsvQ2Fpcm9HcmFwaGljczJE LmphdmEKKwkoY2Fpcm9EcmF3R2x5cGhWZWN0b3IpOiBBZGRlZCBwYXJhbWV0ZXIuCisJKGRyYXdH bHlwaFZlY3Rvcik6IFJldHJpZXZlIGFuZCBwYXNzIGZvbnRzZXQgcGFyYW1ldGVyLgorCSogZ251 L2phdmEvYXd0L3BlZXIvZ3RrL0NvbXBvbmVudEdyYXBoaWNzLmphdmEKKwkoY2Fpcm9EcmF3R2x5 cGhWZWN0b3IpOiBBZGRlZCBwYXJhbWV0ZXIuCisJKGxvY2spOiBSZW1vdmVkIHVubmVjZXNzYXJ5 IGNhc3QuCisJKHVubG9jayk6IFJlbW92ZWQgdW5uZWNlc3NhcnkgY2FzdCBhbmQgZXhwbGljaXRs eSBzZXQgdG8gT05FIHZhcmlhYmxlLgorCSogZ251L2phdmEvYXd0L3BlZXIvZ3RrL0ZyZWV0eXBl R2x5cGhWZWN0b3IuamF2YQorCShmb250U2V0KTogTmV3IGZpZWxkLgorCShkaXNwb3NlKTogTmV3 IG5hdGl2ZSBtZXRob2QuCisJKGZpbmFsaXplKTogTmV3IG1ldGhvZC4KKwkoZ2V0R2x5cGhGb250 cyk6IE5ldyBtZXRob2QuCisJKGdldEdseXBoT3V0bGluZSk6IFBhc3MgZm9udFNldCBwYXJhbWV0 ZXIgdG8gbmF0aXZlIG1ldGhvZC4KKwkoZ2V0R2x5cGhPdXRsaW5lTmF0aXZlKTogQWRkZWQgcGFy YW1ldGVyLgorCShnZXRHbHlwaHMpOiBQYXNzIGV4dHJhIHBhcmFtZXRlcnMgdG8gbmF0aXZlIG1l dGhvZC4KKwkoZ2V0R2x5cGhzTmF0aXZlKTogQWRkZWQgcGFyYW1ldGVycy4KKwkoZ2V0S2Vybmlu Zyk6IEFkZGVkIGZvbnRTZXQgcGFyYW1ldGVyLgorCShnZXRNZXRyaWNzTmF0aXZlKTogQWRkZWQg Zm9udFNldCBwYXJhbWV0ZXIuCisJKHBlcmZvcm1EZWZhdWx0TGF5b3V0KTogT25seSBjaGVjayBr ZXJuaW5nIGlmIGdseXBocyB1c2UgdGhlIHNhbWUgZm9udC4KKwkoc2V0dXBHbHlwaE1ldHJpY3Mp OiBQYXNzIGV4dHJhIHBhcmFtZXRlcnMgdG8gbmF0aXZlIG1ldGhvZHMuCisJKiBpbmNsdWRlL2du dV9qYXZhX2F3dF9wZWVyX2d0a19DYWlyb0dyYXBoaWNzMkQuaCwKKwkqIGluY2x1ZGUvZ251X2ph dmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBHbHlwaFZlY3Rvci5oOiBSZWdlbmVyYXRlZC4KKwkqIG5h dGl2ZS9qbmkvZ3RrLXBlZXIvZ2RrZm9udC5oOiBFbmFibGUgcGFuZ28gZW5naW5lLgorCShwZWVy Zm9udCk6IEFkZCB2YXJpYWJsZSBmb3IgZm9udHNldC4KKwkqIG5hdGl2ZS9qbmkvZ3RrLXBlZXIv Z251X2phdmFfYXd0X3BlZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRC5jCisJKEphdmFfZ251X2phdmFf YXd0X3BlZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRF9jYWlyb0RyYXdHbHlwaFZlY3Rvcik6IEFjY2Vw dAorCWFycmF5IG9mIGZvbnQgcG9pbnRlcnMgdG8gdXNlIHdoZW4gZHJhd2luZyBnbHlwaHMuCisJ KiBuYXRpdmUvam5pL2d0ay1wZWVyL2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBo VmVjdG9yLmMKKwkoZ2V0Rm9udFNldCk6IE5ldyBmdW5jdGlvbi4KKwkoSmF2YV9nbnVfamF2YV9h d3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rvcl9kaXNwb3NlKTogTmV3IGZ1bmN0aW9uLgor CShKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoVmVjdG9yX2dldEdseXBo T3V0bGluZU5hdGl2ZSk6CisJQWRkZWQgYW5kIHVzZSBuZXcgZm9udFNldCBwYXJhbWV0ZXIuCisJ KEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhWZWN0b3JfZ2V0R2x5cGhz KTogVXNlIHBhbmdvCisJdG8gcmV0cmlldmUgZ2x5cGhzIGFuZCBlc3RpbWF0ZSBmb250LCBpZiB0 aGUgY3VycmVudCBmb250IGRvZXMgbm90IGNvbnRhaW4KKwlhIHJlcXVlc3RlZCBnbHlwaC4KKwko SmF2YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rvcl9nZXRLZXJuaW5n KTogQWRkZWQgYW5kIHVzZQorCW5ldyBmb250U2V0IHBhcmFtZXRlci4KKwkoSmF2YV9nbnVfamF2 YV9hd3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rvcl9nZXRNZXRyaWNzTmF0aXZlKTogQWRk ZWQKKwlhbmQgdXNlIG5ldyBmb250U2V0IHBhcmFtZXRlci4KKwkqIG5hdGl2ZS9qbmkvZ3RrLXBl ZXIvZ251X2phdmFfYXd0X3BlZXJfZ3RrX0dka0ZvbnRQZWVyLmMKKwkoSmF2YV9nbnVfamF2YV9h d3RfcGVlcl9ndGtfR2RrRm9udFBlZXJfZGlzcG9zZSk6IEZyZWUgZm9udHNldC4KKwkoSmF2YV9n bnVfamF2YV9hd3RfcGVlcl9ndGtfR2RrRm9udFBlZXJfc2V0Rm9udCk6IExvYWQgZm9udHNldC4K KworLS0tIGxpYmphdmEvY2xhc3NwYXRoL2dudS9qYXZhL2F3dC9wZWVyL2d0ay9DYWlyb0dyYXBo aWNzMkQuamF2YQkxNiBNYXIgMjAwNyAxNToxNDo1MyAtMDAwMAkxLjY3CisrKysgbGliamF2YS9j bGFzc3BhdGgvZ251L2phdmEvYXd0L3BlZXIvZ3RrL0NhaXJvR3JhcGhpY3MyRC5qYXZhCTIgQXBy IDIwMDcgMTk6Mzk6MjYgLTAwMDAJMS42OAorQEAgLTQwMiw3ICs0MDIsNyBAQCBwdWJsaWMgYWJz dHJhY3QgY2xhc3MgQ2Fpcm9HcmFwaGljczJEIGV4CisgICAgKi8KKyAgIHByb3RlY3RlZCBuYXRp dmUgdm9pZCBjYWlyb0RyYXdHbHlwaFZlY3Rvcihsb25nIHBvaW50ZXIsIEdka0ZvbnRQZWVyIGZv bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgeCwgZmxvYXQg eSwgaW50IG4sIAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY29k ZXMsIGZsb2F0W10gcG9zaXRpb25zKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludFtdIGNvZGVzLCBmbG9hdFtdIHBvc2l0aW9ucywgbG9uZ1tdIGZvbnRzZXQpOworIAor ICAgLyoqCisgICAgKiBTZXQgdGhlIGZvbnQgaW4gY2Fpcm8uCitAQCAtMTczMCw2ICsxNzMwLDcg QEAgcHVibGljIGFic3RyYWN0IGNsYXNzIENhaXJvR3JhcGhpY3MyRCBleAorICAgICAgIHsKKyAg ICAgICAgIGludCBuID0gZ3YuZ2V0TnVtR2x5cGhzICgpOworICAgICAgICAgaW50W10gY29kZXMg PSBndi5nZXRHbHlwaENvZGVzICgwLCBuLCBudWxsKTsKKysgICAgICAgIGxvbmdbXSBmb250c2V0 ID0gKChGcmVldHlwZUdseXBoVmVjdG9yKWd2KS5nZXRHbHlwaEZvbnRzICgwLCBuLCBudWxsKTsK KyAgICAgICAgIGZsb2F0W10gcG9zaXRpb25zID0gZ3YuZ2V0R2x5cGhQb3NpdGlvbnMgKDAsIG4s IG51bGwpOworIAorICAgICAgICAgc2V0Rm9udCAoZ3YuZ2V0Rm9udCAoKSk7CitAQCAtMTczNyw3 ICsxNzM4LDcgQEAgcHVibGljIGFic3RyYWN0IGNsYXNzIENhaXJvR3JhcGhpY3MyRCBleAorICAg ICAgICAgc3luY2hyb25pemVkIChmb250UGVlcikgCisgICAgICAgICAgIHsgCisgICAgICAgICAg ICAgY2Fpcm9EcmF3R2x5cGhWZWN0b3IobmF0aXZlUG9pbnRlciwgZm9udFBlZXIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeCwgeSwgbiwgY29kZXMsIHBvc2l0aW9ucyk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCwgeSwgbiwgY29kZXMsIHBvc2l0aW9u cywgZm9udHNldCk7CisgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgIGVsc2UKKy0tLSBsaWJq YXZhL2NsYXNzcGF0aC9nbnUvamF2YS9hd3QvcGVlci9ndGsvQ29tcG9uZW50R3JhcGhpY3MuamF2 YQkxNiBNYXIgMjAwNyAxNToxNDo1MyAtMDAwMAkxLjI1CisrKysgbGliamF2YS9jbGFzc3BhdGgv Z251L2phdmEvYXd0L3BlZXIvZ3RrL0NvbXBvbmVudEdyYXBoaWNzLmphdmEJMiBBcHIgMjAwNyAx OTozOToyNiAtMDAwMAkxLjI2CitAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYyBjbGFzcyBDb21w b25lbnRHcmFwaGljcyBleHRlbmRzIEMKKyAgICAqLworICAgcHJpdmF0ZSB2b2lkIGxvY2soKQor ICAgeworLSAgICBJbnRlZ2VyIGkgPSAoSW50ZWdlcikgaGFzTG9jay5nZXQoKTsKKysgICAgSW50 ZWdlciBpID0gaGFzTG9jay5nZXQoKTsKKyAgICAgaWYgKGkgPT0gbnVsbCkKKyAgICAgICB7Cisg ICAgICAgICBzdGFydF9nZGtfZHJhd2luZygpOworQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJsaWMg Y2xhc3MgQ29tcG9uZW50R3JhcGhpY3MgZXh0ZW5kcyBDCisgICAgKi8KKyAgIHByaXZhdGUgdm9p ZCB1bmxvY2soKQorICAgeworLSAgICBJbnRlZ2VyIGkgPSAoSW50ZWdlcikgaGFzTG9jay5nZXQo KTsKKysgICAgSW50ZWdlciBpID0gaGFzTG9jay5nZXQoKTsKKyAgICAgaWYgKGkgPT0gbnVsbCkK KyAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgIGlmIChpID09 IE9ORSkKK0BAIC0xNDQsNiArMTQ0LDggQEAgcHVibGljIGNsYXNzIENvbXBvbmVudEdyYXBoaWNz IGV4dGVuZHMgQworICAgICAgICAgaGFzTG9jay5zZXQobnVsbCk7CisgICAgICAgICBlbmRfZ2Rr X2RyYXdpbmcoKTsKKyAgICAgICB9CisrICAgIGVsc2UgaWYgKGkuaW50VmFsdWUoKSA9PSAyKQor KyAgICAgIGhhc0xvY2suc2V0KE9ORSk7CisgICAgIGVsc2UKKyAgICAgICBoYXNMb2NrLnNldChJ bnRlZ2VyLnZhbHVlT2YoaS5pbnRWYWx1ZSgpIC0gMSkpOworICAgfQorQEAgLTc0NCwxMiArNzQ2 LDE0IEBAIHB1YmxpYyBjbGFzcyBDb21wb25lbnRHcmFwaGljcyBleHRlbmRzIEMKKyAgIEBPdmVy cmlkZQorICAgcHJvdGVjdGVkIHZvaWQgY2Fpcm9EcmF3R2x5cGhWZWN0b3IobG9uZyBwb2ludGVy LCBHZGtGb250UGVlciBmb250LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmxvYXQgeCwgZmxvYXQgeSwgaW50IG4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnRbXSBjb2RlcywgZmxvYXRbXSBwb3NpdGlvbnMpCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjb2RlcywgZmxvYXRbXSBwb3NpdGlvbnMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nW10gZm9udHNldCkK KyAgIHsKKyAgICAgdHJ5CisgICAgIHsKKyAgICAgICBsb2NrKCk7CistICAgICAgc3VwZXIuY2Fp cm9EcmF3R2x5cGhWZWN0b3IocG9pbnRlciwgZm9udCwgeCwgeSwgbiwgY29kZXMsIHBvc2l0aW9u cyk7CisrICAgICAgc3VwZXIuY2Fpcm9EcmF3R2x5cGhWZWN0b3IocG9pbnRlciwgZm9udCwgeCwg eSwgbiwgY29kZXMsIHBvc2l0aW9ucywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb250c2V0KTsKKyAgICAgfQorICAgICBmaW5hbGx5CisgICAgIHsKKy0tLSBsaWJqYXZhL2Ns YXNzcGF0aC9nbnUvamF2YS9hd3QvcGVlci9ndGsvRnJlZXR5cGVHbHlwaFZlY3Rvci5qYXZhCTYg TWFyIDIwMDcgMTk6Mzg6MzEgLTAwMDAJMS4xNgorKysrIGxpYmphdmEvY2xhc3NwYXRoL2dudS9q YXZhL2F3dC9wZWVyL2d0ay9GcmVldHlwZUdseXBoVmVjdG9yLmphdmEJMiBBcHIgMjAwNyAyMToy ODo1OCAtMDAwMAkxLjE4CitAQCAtNzksNiArNzksMTEgQEAgcHVibGljIGNsYXNzIEZyZWV0eXBl R2x5cGhWZWN0b3IgZXh0ZW5kcworICAgICogVGhlIGdseXBoIGNvZGVzCisgICAgKi8KKyAgIHBy aXZhdGUgaW50W10gZ2x5cGhDb2RlczsKKysgIAorKyAgLyoqCisrICAgKiBUaGUgc2V0IG9mIGZv bnRzIHVzZWQgaW4gdGhpcyBnbHlwaCB2ZWN0b3IuCisrICAgKi8KKysgIHByaXZhdGUgbG9uZ1td IGZvbnRTZXQgPSBudWxsOworIAorICAgLyoqCisgICAgKiBHbHlwaCB0cmFuc2Zvcm1zLiAoZGUg ZmFjdG8gb25seSB0aGUgdHJhbnNsYXRpb24gaXMgdXNlZCkKK0BAIC04Niw2ICs5MSwxOSBAQCBw dWJsaWMgY2xhc3MgRnJlZXR5cGVHbHlwaFZlY3RvciBleHRlbmRzCisgICBwcml2YXRlIEFmZmlu ZVRyYW5zZm9ybVtdIGdseXBoVHJhbnNmb3JtczsKKyAKKyAgIHByaXZhdGUgR2x5cGhNZXRyaWNz W10gbWV0cmljc0NhY2hlOworKyAgCisrICBwcml2YXRlIG5hdGl2ZSB2b2lkIGRpc3Bvc2UobG9u Z1tdIGZvbnRzKTsKKysgIAorKyAgLyoqCisrICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUg bmF0aXZlIFBhbmdvRmNGb250IG9iamVjdC4KKysgICAqIAorKyAgICogVGhlIG9iamVjdCB3aWxs IGJlIHJlZmVyZW5jZWQgd2l0aCBnX29iamVjdF9yZWYgbiB0aW1lcyBiZWZvcmUgYmVpbmcKKysg ICAqIHJldHVybmVkLCBhbmQgbXVzdCBiZSB1bnJlZmVyZW5jZWQgYSBjb3JyZXNwb25kaW5nIG51 bWJlciBvZiB0aW1lcy4KKysgICAqIAorKyAgICogQHBhcmFtIG4gTnVtYmVyIG9mIHRpbWVzIHRv IHJlZmVyZW5jZSB0aGUgb2JqZWN0LgorKyAgICogQHJldHVybiBQb2ludGVyIHRvIHRoZSBuYXRp dmUgZGVmYXVsdCBmb250LgorKyAgICovCisrICBwcml2YXRlIG5hdGl2ZSBsb25nIGdldE5hdGl2 ZUZvbnRQb2ludGVyKGludCBuKTsKKyAKKyAgIC8qKgorICAgICogQ3JlYXRlIGEgZ2x5cGh2ZWN0 b3IgZnJvbSBhIGdpdmVuIChGcmVldHlwZSkgZm9udCBhbmQgYSBTdHJpbmcuCitAQCAtMTM1LDYg KzE1MywxMyBAQCBwdWJsaWMgY2xhc3MgRnJlZXR5cGVHbHlwaFZlY3RvciBleHRlbmRzCisgICAg IGdseXBoQ29kZXMgPSBuZXcgaW50WyBjb2Rlcy5sZW5ndGggXTsKKyAgICAgU3lzdGVtLmFycmF5 Y29weShjb2RlcywgMCwgZ2x5cGhDb2RlcywgMCwgY29kZXMubGVuZ3RoKTsKKyAgICAgbkdseXBo cyA9IGdseXBoQ29kZXMubGVuZ3RoOworKyAgICAKKysgICAgaWYgKGZvbnRTZXQgPT0gbnVsbCkK KysgICAgICB7CisrICAgICAgICBmb250U2V0ID0gbmV3IGxvbmdbbkdseXBoc107CisrICAgICAg ICBBcnJheXMuZmlsbChmb250U2V0LCBnZXROYXRpdmVGb250UG9pbnRlcihuR2x5cGhzKSk7Cisr ICAgICAgfQorKyAgICAKKyAgICAgcGVyZm9ybURlZmF1bHRMYXlvdXQoKTsKKyAgIH0KKyAKK0BA IC0xNTcsNiArMTgyLDcgQEAgcHVibGljIGNsYXNzIEZyZWV0eXBlR2x5cGhWZWN0b3IgZXh0ZW5k cworICAgICAgIH0KKyAKKyAgICAgZ2x5cGhDb2RlcyA9IG5ldyBpbnRbIG5HbHlwaHMgXTsKKysg ICAgZm9udFNldCA9IG5ldyBsb25nW25HbHlwaHNdOworICAgICBnbHlwaFBvc2l0aW9ucyA9IG5l dyBmbG9hdFsobkdseXBocyArIDEpICogMl07CisgICAgIGdseXBoVHJhbnNmb3JtcyA9IG5ldyBB ZmZpbmVUcmFuc2Zvcm1bIG5HbHlwaHMgXTsKKyAgICAgZm9yKGludCBpID0gMDsgaSA8IG5HbHlw aHM7IGkrKyApCitAQCAtMTY2LDYgKzE5MiwxMyBAQCBwdWJsaWMgY2xhc3MgRnJlZXR5cGVHbHlw aFZlY3RvciBleHRlbmRzCisgICAgICAgfQorICAgICBTeXN0ZW0uYXJyYXljb3B5KGd2LmdseXBo UG9zaXRpb25zLCAwLCBnbHlwaFBvc2l0aW9ucywgMCwKKyAgICAgICAgICAgICAgICAgICAgICBn bHlwaFBvc2l0aW9ucy5sZW5ndGgpOworKyAgICBTeXN0ZW0uYXJyYXljb3B5KGd2LmdseXBoQ29k ZXMsIDAsIGdseXBoQ29kZXMsIDAsIG5HbHlwaHMpOworKyAgICBTeXN0ZW0uYXJyYXljb3B5KGd2 LmZvbnRTZXQsIDAsIGZvbnRTZXQsIDAsIG5HbHlwaHMpOworKyAgfQorKyAgCisrICBwdWJsaWMg dm9pZCBmaW5hbGl6ZSgpCisrICB7CisrICAgIGRpc3Bvc2UoZm9udFNldCk7CisgICB9CisgCisg ICAvKioKK0BAIC0xNzUsNiArMjA4LDcgQEAgcHVibGljIGNsYXNzIEZyZWV0eXBlR2x5cGhWZWN0 b3IgZXh0ZW5kcworICAgeworICAgICBuR2x5cGhzID0gcy5jb2RlUG9pbnRDb3VudCggMCwgcy5s ZW5ndGgoKSApOworICAgICBnbHlwaENvZGVzID0gbmV3IGludFsgbkdseXBocyBdOworKyAgICBm b250U2V0ID0gbmV3IGxvbmdbIG5HbHlwaHMgXTsKKyAgICAgaW50W10gY29kZVBvaW50cyA9IG5l dyBpbnRbIG5HbHlwaHMgXTsKKyAgICAgaW50IHN0cmluZ0luZGV4ID0gMDsKKyAKK0BAIC0xOTQs MjIgKzIyOCwyMiBAQCBwdWJsaWMgY2xhc3MgRnJlZXR5cGVHbHlwaFZlY3RvciBleHRlbmRzCisg ICAgICAgICAgIH0KKyAgICAgICB9CisgCistICAgZ2x5cGhDb2RlcyA9IGdldEdseXBocyggY29k ZVBvaW50cyApOworKyAgICBnZXRHbHlwaHMoIGNvZGVQb2ludHMsIGdseXBoQ29kZXMsIGZvbnRT ZXQgKTsKKyAgIH0KKyAKKyAgIC8qKgorICAgICogUmV0dXJucyB0aGUgZ2x5cGggY29kZSB3aXRo aW4gdGhlIGZvbnQgZm9yIGEgZ2l2ZW4gY2hhcmFjdGVyCisgICAgKi8KKy0gIHB1YmxpYyBuYXRp dmUgaW50W10gZ2V0R2x5cGhzKGludFtdIGNvZGVwb2ludHMpOworKyAgcHVibGljIG5hdGl2ZSBp bnRbXSBnZXRHbHlwaHMoaW50W10gY29kZXBvaW50cywgaW50W10gZ2x5cGhzLCBsb25nW10gZm9u dHMpOworIAorICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSBrZXJuaW5nIG9mIGEgZ2x5cGggcGFp cgorICAgICovCistICBwcml2YXRlIG5hdGl2ZSBQb2ludDJEIGdldEtlcm5pbmcoaW50IGxlZnRH bHlwaCwgaW50IHJpZ2h0R2x5cGgpOworKyAgcHJpdmF0ZSBuYXRpdmUgUG9pbnQyRCBnZXRLZXJu aW5nKGludCBsZWZ0R2x5cGgsIGludCByaWdodEdseXBoLCBsb25nIGZvbnQpOworIAorLSAgcHJp dmF0ZSBuYXRpdmUgZG91YmxlW10gZ2V0TWV0cmljc05hdGl2ZSggaW50IGdseXBoQ29kZSApOwor KyAgcHJpdmF0ZSBuYXRpdmUgZG91YmxlW10gZ2V0TWV0cmljc05hdGl2ZShpbnQgZ2x5cGhDb2Rl LCBsb25nIGZvbnQpOworIAorLSAgcHJpdmF0ZSBuYXRpdmUgR2VuZXJhbFBhdGggZ2V0R2x5cGhP dXRsaW5lTmF0aXZlKGludCBnbHlwaEluZGV4KTsKKysgIHByaXZhdGUgbmF0aXZlIEdlbmVyYWxQ YXRoIGdldEdseXBoT3V0bGluZU5hdGl2ZShpbnQgZ2x5cGhJbmRleCwgbG9uZyBmb250KTsKKyAK KyAKKyAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorQEAgLTI2NywxMCArMzAxLDEyIEBAIHB1Ymxp YyBjbGFzcyBGcmVldHlwZUdseXBoVmVjdG9yIGV4dGVuZHMKKyAKKyAgICAgICAgIHggKz0gZ20u Z2V0QWR2YW5jZVgoKTsKKyAgICAgICAgIHkgKz0gZ20uZ2V0QWR2YW5jZVkoKTsKKy0gICAgICAg IAorLSAgICAgICAgaWYgKGkgIT0gbkdseXBocy0xKQorKworKyAgICAgICAgLy8gR2V0IHRoZSBr ZXJuaW5nIG9ubHkgaWYgaXQncyBub3QgdGhlIGxhc3QgZ2x5cGgsIGFuZCB0aGUgdHdvIGdseXBo cyBhcmUKKysgICAgICAgIC8vIHVzaW5nIHRoZSBzYW1lIGZvbnQKKysgICAgICAgIGlmIChpICE9 IG5HbHlwaHMtMSAmJiBmb250U2V0W2ldID09IGZvbnRTZXRbaSsxXSkKKyAgICAgICAgICAgewor LSAgICAgICAgICAgIFBvaW50MkQgcCA9IGdldEtlcm5pbmcoZ2x5cGhDb2Rlc1tpXSwgZ2x5cGhD b2Rlc1tpICsgMV0pOworKyAgICAgICAgICAgIFBvaW50MkQgcCA9IGdldEtlcm5pbmcoZ2x5cGhD b2Rlc1tpXSwgZ2x5cGhDb2Rlc1tpICsgMV0sIGZvbnRTZXRbaV0pOworICAgICAgICAgICAgIHgg Kz0gcC5nZXRYKCk7CisgICAgICAgICAgICAgeSArPSBwLmdldFkoKTsKKyAgICAgICAgICAgfQor QEAgLTMwNSw2ICszNDEsMjYgQEAgcHVibGljIGNsYXNzIEZyZWV0eXBlR2x5cGhWZWN0b3IgZXh0 ZW5kcworICAgICByZXR1cm4gcnZhbDsKKyAgIH0KKyAKKysgIC8qKgorKyAgICogUmV0dXJucyBw b2ludGVycyB0byB0aGUgZm9udHMgdXNlZCBpbiB0aGlzIGdseXBoIHZlY3Rvci4KKysgICAqIAor KyAgICogVGhlIGFycmF5IGluZGV4IG1hdGNoZXMgdGhhdCBvZiB0aGUgZ2x5cGggdmVjdG9yIGl0 c2VsZi4KKysgICAqLworKyAgcHJvdGVjdGVkIGxvbmdbXSBnZXRHbHlwaEZvbnRzKGludCBiZWdp bkdseXBoSW5kZXgsIGludCBudW1FbnRyaWVzLCAKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsb25nW10gY29kZVJldHVybikKKysgIHsKKysgICAgbG9uZ1tdIHJ2YWw7CisrCisr ICAgIGlmKCBjb2RlUmV0dXJuID09IG51bGwgfHwgY29kZVJldHVybi5sZW5ndGggPCBudW1FbnRy aWVzKQorKyAgICAgIHJ2YWwgPSBuZXcgbG9uZ1sgbnVtRW50cmllcyBdOworKyAgICBlbHNlCisr ICAgICAgcnZhbCA9IGNvZGVSZXR1cm47CisrICAgIAorKyAgICBTeXN0ZW0uYXJyYXljb3B5KGZv bnRTZXQsIGJlZ2luR2x5cGhJbmRleCwgcnZhbCwgMCwgbnVtRW50cmllcyk7CisrCisrICAgIHJl dHVybiBydmFsOworKyAgfQorKworICAgcHVibGljIFNoYXBlIGdldEdseXBoTG9naWNhbEJvdW5k cyhpbnQgZ2x5cGhJbmRleCkKKyAgIHsKKyAgICAgR2x5cGhNZXRyaWNzIGdtID0gZ2V0R2x5cGhN ZXRyaWNzKCBnbHlwaEluZGV4ICk7CitAQCAtMzM1LDExICszOTEsMTAgQEAgcHVibGljIGNsYXNz IEZyZWV0eXBlR2x5cGhWZWN0b3IgZXh0ZW5kcworIAorICAgICBmb3IoaW50IGkgPSAwOyBpIDwg bkdseXBoczsgaSsrKQorICAgICAgIHsKKy0gICAgICAgIEdseXBoTWV0cmljcyBnbSA9IChHbHlw aE1ldHJpY3MpCistICAgICAgICBwZWVyLmdldEdseXBoTWV0cmljcyggZ2x5cGhDb2Rlc1sgaSBd ICk7CisrICAgICAgICBHbHlwaE1ldHJpY3MgZ20gPSAoR2x5cGhNZXRyaWNzKXBlZXIuZ2V0R2x5 cGhNZXRyaWNzKGdseXBoQ29kZXNbaV0pOworICAgICAgICAgaWYoIGdtID09IG51bGwgKQorICAg ICAgICAgICB7CistICAgICAgICAgICAgZG91YmxlW10gdmFsID0gZ2V0TWV0cmljc05hdGl2ZSgg Z2x5cGhDb2Rlc1sgaSBdICk7CisrICAgICAgICAgICAgZG91YmxlW10gdmFsID0gZ2V0TWV0cmlj c05hdGl2ZShnbHlwaENvZGVzW2ldLCBmb250U2V0W2ldKTsKKyAgICAgICAgICAgICBpZiggdmFs ID09IG51bGwgKQorICAgICAgICAgICAgICAgZ20gPSBudWxsOworICAgICAgICAgICAgIGVsc2UK K0BAIC0zNzYsNyArNDMxLDggQEAgcHVibGljIGNsYXNzIEZyZWV0eXBlR2x5cGhWZWN0b3IgZXh0 ZW5kcworICAgICovCisgICBwdWJsaWMgU2hhcGUgZ2V0R2x5cGhPdXRsaW5lKGludCBnbHlwaElu ZGV4KQorICAgeworLSAgICBHZW5lcmFsUGF0aCBncCA9IGdldEdseXBoT3V0bGluZU5hdGl2ZSgg Z2x5cGhDb2Rlc1sgZ2x5cGhJbmRleCBdICk7CisrICAgIEdlbmVyYWxQYXRoIGdwID0gZ2V0R2x5 cGhPdXRsaW5lTmF0aXZlKGdseXBoQ29kZXNbZ2x5cGhJbmRleF0sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTZXRbZ2x5cGhJbmRleF0pOworICAgICAK KyAgICAgQWZmaW5lVHJhbnNmb3JtIHR4ID0gQWZmaW5lVHJhbnNmb3JtLmdldFRyYW5zbGF0ZUlu c3RhbmNlKGdseXBoUG9zaXRpb25zW2dseXBoSW5kZXgqMl0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbHlwaFBvc2l0aW9u c1tnbHlwaEluZGV4KjIrMV0pOworLS0tIGxpYmphdmEvY2xhc3NwYXRoL2luY2x1ZGUvZ251X2ph dmFfYXd0X3BlZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRC5oCTE2IE1hciAyMDA3IDE1OjE0OjUzIC0w MDAwCTEuMTcKKysrKyBsaWJqYXZhL2NsYXNzcGF0aC9pbmNsdWRlL2dudV9qYXZhX2F3dF9wZWVy X2d0a19DYWlyb0dyYXBoaWNzMkQuaAkyIEFwciAyMDA3IDE5OjM5OjI2IC0wMDAwCTEuMTgKK0BA IC0yMiw3ICsyMiw3IEBAIEpOSUVYUE9SVCB2b2lkIEpOSUNBTEwgSmF2YV9nbnVfamF2YV9hd3QK KyBKTklFWFBPUlQgdm9pZCBKTklDQUxMIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0NhaXJv R3JhcGhpY3MyRF9jYWlyb1NldEZpbGxSdWxlIChKTklFbnYgKmVudiwgam9iamVjdCwgamxvbmcs IGppbnQpOworIEpOSUVYUE9SVCB2b2lkIEpOSUNBTEwgSmF2YV9nbnVfamF2YV9hd3RfcGVlcl9n dGtfQ2Fpcm9HcmFwaGljczJEX2NhaXJvU2V0TGluZSAoSk5JRW52ICplbnYsIGpvYmplY3QsIGps b25nLCBqZG91YmxlLCBqaW50LCBqaW50LCBqZG91YmxlKTsKKyBKTklFWFBPUlQgdm9pZCBKTklD QUxMIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRF9jYWlyb1NldERh c2ggKEpOSUVudiAqZW52LCBqb2JqZWN0LCBqbG9uZywgamRvdWJsZUFycmF5LCBqaW50LCBqZG91 YmxlKTsKKy1KTklFWFBPUlQgdm9pZCBKTklDQUxMIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3Rr X0NhaXJvR3JhcGhpY3MyRF9jYWlyb0RyYXdHbHlwaFZlY3RvciAoSk5JRW52ICplbnYsIGpvYmpl Y3QsIGpsb25nLCBqb2JqZWN0LCBqZmxvYXQsIGpmbG9hdCwgamludCwgamludEFycmF5LCBqZmxv YXRBcnJheSk7CisrSk5JRVhQT1JUIHZvaWQgSk5JQ0FMTCBKYXZhX2dudV9qYXZhX2F3dF9wZWVy X2d0a19DYWlyb0dyYXBoaWNzMkRfY2Fpcm9EcmF3R2x5cGhWZWN0b3IgKEpOSUVudiAqZW52LCBq b2JqZWN0LCBqbG9uZywgam9iamVjdCwgamZsb2F0LCBqZmxvYXQsIGppbnQsIGppbnRBcnJheSwg amZsb2F0QXJyYXksIGpsb25nQXJyYXkpOworIEpOSUVYUE9SVCB2b2lkIEpOSUNBTEwgSmF2YV9n bnVfamF2YV9hd3RfcGVlcl9ndGtfQ2Fpcm9HcmFwaGljczJEX2NhaXJvU2V0Rm9udCAoSk5JRW52 ICplbnYsIGpvYmplY3QsIGpsb25nLCBqb2JqZWN0KTsKKyBKTklFWFBPUlQgdm9pZCBKTklDQUxM IEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRF9jYWlyb1JlY3Rhbmds ZSAoSk5JRW52ICplbnYsIGpvYmplY3QsIGpsb25nLCBqZG91YmxlLCBqZG91YmxlLCBqZG91Ymxl LCBqZG91YmxlKTsKKyBKTklFWFBPUlQgdm9pZCBKTklDQUxMIEphdmFfZ251X2phdmFfYXd0X3Bl ZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRF9jYWlyb0FyYyAoSk5JRW52ICplbnYsIGpvYmplY3QsIGps b25nLCBqZG91YmxlLCBqZG91YmxlLCBqZG91YmxlLCBqZG91YmxlLCBqZG91YmxlKTsKKy0tLSBs aWJqYXZhL2NsYXNzcGF0aC9pbmNsdWRlL2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUds eXBoVmVjdG9yLmgJMTEgSnVuIDIwMDYgMDg6Mjk6NTcgLTAwMDAJMS4yCisrKysgbGliamF2YS9j bGFzc3BhdGgvaW5jbHVkZS9nbnVfamF2YV9hd3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rv ci5oCTIgQXByIDIwMDcgMjE6Mjg6NTggLTAwMDAJMS40CitAQCAtMTAsMTAgKzEwLDEyIEBAIGV4 dGVybiAiQyIKKyB7CisgI2VuZGlmCisgCistSk5JRVhQT1JUIGppbnRBcnJheSBKTklDQUxMIEph dmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhWZWN0b3JfZ2V0R2x5cGhzIChK TklFbnYgKmVudiwgam9iamVjdCwgamludEFycmF5KTsKKy1KTklFWFBPUlQgam9iamVjdCBKTklD QUxMIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhWZWN0b3JfZ2V0S2Vy bmluZyAoSk5JRW52ICplbnYsIGpvYmplY3QsIGppbnQsIGppbnQpOworLUpOSUVYUE9SVCBqZG91 YmxlQXJyYXkgSk5JQ0FMTCBKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBo VmVjdG9yX2dldE1ldHJpY3NOYXRpdmUgKEpOSUVudiAqZW52LCBqb2JqZWN0LCBqaW50KTsKKy1K TklFWFBPUlQgam9iamVjdCBKTklDQUxMIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0 eXBlR2x5cGhWZWN0b3JfZ2V0R2x5cGhPdXRsaW5lTmF0aXZlIChKTklFbnYgKmVudiwgam9iamVj dCwgamludCk7CisrSk5JRVhQT1JUIHZvaWQgSk5JQ0FMTCBKYXZhX2dudV9qYXZhX2F3dF9wZWVy X2d0a19GcmVldHlwZUdseXBoVmVjdG9yX2dldEdseXBocyAoSk5JRW52ICplbnYsIGpvYmplY3Qs IGppbnRBcnJheSwgamludEFycmF5LCBqbG9uZ0FycmF5KTsKKytKTklFWFBPUlQgam9iamVjdCBK TklDQUxMIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhWZWN0b3JfZ2V0 S2VybmluZyAoSk5JRW52ICplbnYsIGpvYmplY3QsIGppbnQsIGppbnQsIGpsb25nKTsKKytKTklF WFBPUlQgamRvdWJsZUFycmF5IEpOSUNBTEwgSmF2YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfRnJl ZXR5cGVHbHlwaFZlY3Rvcl9nZXRNZXRyaWNzTmF0aXZlIChKTklFbnYgKmVudiwgam9iamVjdCwg amludCwgamxvbmcpOworK0pOSUVYUE9SVCBqb2JqZWN0IEpOSUNBTEwgSmF2YV9nbnVfamF2YV9h d3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rvcl9nZXRHbHlwaE91dGxpbmVOYXRpdmUgKEpO SUVudiAqZW52LCBqb2JqZWN0LCBqaW50LCBqbG9uZyk7CisrSk5JRVhQT1JUIHZvaWQgSk5JQ0FM TCBKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoVmVjdG9yX2Rpc3Bvc2Ug KEpOSUVudiAqZW52LCBqb2JqZWN0LCBqbG9uZ0FycmF5KTsKKytKTklFWFBPUlQgamxvbmcgSk5J Q0FMTCBKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoVmVjdG9yX2dldE5h dGl2ZUZvbnRQb2ludGVyIChKTklFbnYgKmVudiwgam9iamVjdCwgamludCk7CisgCisgI2lmZGVm IF9fY3BsdXNwbHVzCisgfQorLS0tIGxpYmphdmEvY2xhc3NwYXRoL25hdGl2ZS9qbmkvZ3RrLXBl ZXIvZ2RrZm9udC5oCTIxIE5vdiAyMDA2IDE0OjE0OjI1IC0wMDAwCTEuMTAKKysrKyBsaWJqYXZh L2NsYXNzcGF0aC9uYXRpdmUvam5pL2d0ay1wZWVyL2dka2ZvbnQuaAkyIEFwciAyMDA3IDE5OjM5 OjI2IC0wMDAwCTEuMTEKK0BAIC00MCw2ICs0MCw3IEBACisgCisgI2luY2x1ZGUgImd0a3BlZXIu aCIKKyAKKysjZGVmaW5lIFBBTkdPX0VOQUJMRV9FTkdJTkUKKyAjaW5jbHVkZSA8cGFuZ28vcGFu Z28uaD4KKyAjaW5jbHVkZSA8cGFuZ28vcGFuZ28tY29udGV4dC5oPgorICNpbmNsdWRlIDxwYW5n by9wYW5nby1mb250bWFwLmg+CitAQCAtMTIzLDYgKzEyNCw3IEBAIGV4dGVybiBzdHJ1Y3Qgc3Rh dGVfdGFibGUgKmNwX2d0a19uYXRpdmUKKyBzdHJ1Y3QgcGVlcmZvbnQKKyB7CisgICBQYW5nb0Zv bnQgKmZvbnQ7CisrICBQYW5nb0ZvbnRzZXQgKnNldDsKKyAgIFBhbmdvRm9udERlc2NyaXB0aW9u ICpkZXNjOworICAgUGFuZ29Db250ZXh0ICpjdHg7CisgICBQYW5nb0xheW91dCAqbGF5b3V0Owor LS0tIGxpYmphdmEvY2xhc3NwYXRoL25hdGl2ZS9qbmkvZ3RrLXBlZXIvZ251X2phdmFfYXd0X3Bl ZXJfZ3RrX0NhaXJvR3JhcGhpY3MyRC5jCTE2IE1hciAyMDA3IDE1OjE0OjU1IC0wMDAwCTEuMjEK KysrKyBsaWJqYXZhL2NsYXNzcGF0aC9uYXRpdmUvam5pL2d0ay1wZWVyL2dudV9qYXZhX2F3dF9w ZWVyX2d0a19DYWlyb0dyYXBoaWNzMkQuYwkyIEFwciAyMDA3IDE5OjM5OjI2IC0wMDAwCTEuMjIK K0BAIC0zMDgsOSArMzA4LDggQEAgSmF2YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfQ2Fpcm9HcmFw aGljcworICBqb2JqZWN0IGZvbnQsCisgIGpmbG9hdCB4LCBqZmxvYXQgeSwgamludCBuLAorICBq aW50QXJyYXkgamF2YV9jb2RlcywKKy0gamZsb2F0QXJyYXkgamF2YV9wb3NpdGlvbnMpCisrIGpm bG9hdEFycmF5IGphdmFfcG9zaXRpb25zLCBqbG9uZ0FycmF5IGphdmFfZm9udHNldCkKKyB7Cist ICAKKyAgIHN0cnVjdCBjYWlyb2dyYXBoaWNzMmQgKmdyID0gTlVMTDsKKyAgIHN0cnVjdCBwZWVy Zm9udCAqcGZvbnQgPSBOVUxMOworICAgY2Fpcm9fZ2x5cGhfdCAqZ2x5cGhzID0gTlVMTDsKK0BA IC0zMzMsNiArMzMyLDcgQEAgSmF2YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfQ2Fpcm9HcmFwaGlj cworICAgbmF0aXZlX2NvZGVzID0gKCplbnYpLT5HZXRJbnRBcnJheUVsZW1lbnRzIChlbnYsIGph dmFfY29kZXMsIE5VTEwpOworICAgbmF0aXZlX3Bvc2l0aW9ucyA9ICgqZW52KS0+R2V0RmxvYXRB cnJheUVsZW1lbnRzIChlbnYsIGphdmFfcG9zaXRpb25zLCBOVUxMKTsKKyAgIAorKyAgLyogU2V0 IHVwIGdseXBocyBhbmQgbGF5b3V0ICovCisgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKQorICAg ICB7CisgICAgICAgZ2x5cGhzW2ldLmluZGV4ID0gbmF0aXZlX2NvZGVzW2ldOworQEAgLTM0Mywx MCArMzQzLDMxIEBAIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0NhaXJvR3JhcGhpY3MKKyAg ICgqZW52KS0+UmVsZWFzZUZsb2F0QXJyYXlFbGVtZW50cyAoZW52LCBqYXZhX3Bvc2l0aW9ucywg bmF0aXZlX3Bvc2l0aW9ucywgMCk7CisgICAoKmVudiktPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRz IChlbnYsIGphdmFfY29kZXMsIG5hdGl2ZV9jb2RlcywgMCk7CisgCistICBwYW5nb19mY19mb250 X2xvY2tfZmFjZSggKFBhbmdvRmNGb250ICopcGZvbnQtPmZvbnQgKTsKKy0gIGNhaXJvX3Nob3df Z2x5cGhzIChnci0+Y3IsIGdseXBocywgbik7CistICBwYW5nb19mY19mb250X3VubG9ja19mYWNl KCAoUGFuZ29GY0ZvbnQgKilwZm9udC0+Zm9udCApOworKyAgLyogSXRlcmF0ZSB0aHJvdWdoIGds eXBocyBhbmQgZHJhdyAqLworKyAgamxvbmcqIGZvbnRzID0gKCplbnYpLT5HZXRMb25nQXJyYXlF bGVtZW50cyAoZW52LCBqYXZhX2ZvbnRzZXQsIE5VTEwpOworKyAgZm9yIChpID0gMDsgaSA8IG47 IGkrKykKKysgICAgeworKyAgICAgIFBhbmdvRmNGb250ICpmb250ID0gSkxPTkdfVE9fUFRSKFBh bmdvRmNGb250LCBmb250c1tpXSk7CisrCisrICAgICAgLyogRHJhdyBhcyBtYW55IGdseXBocyBh cyBwb3NzaWJsZSB3aXRoIHRoZSBjdXJyZW50IGZvbnQgKi8KKysgICAgICBpbnQgbGVuZ3RoID0g MDsKKysgICAgICB3aGlsZSAoaSA8IG4tMSAmJiBmb250c1tpXSA9PSBmb250c1tpKzFdKQorKyAg ICAgICAgeworKyAgICAgICAgICBsZW5ndGgrKzsKKysgICAgICAgICAgaSsrOworKyAgICAgICAg fQorKyAgICAKKysgICAgICBGVF9GYWNlIGZhY2UgPSBwYW5nb19mY19mb250X2xvY2tfZmFjZSgg Zm9udCApOworKyAgICAgIGNhaXJvX2ZvbnRfZmFjZV90ICpmdCA9IGNhaXJvX2Z0X2ZvbnRfZmFj ZV9jcmVhdGVfZm9yX2Z0X2ZhY2UgKGZhY2UsIDApOworKyAgICAgIGdfYXNzZXJ0IChmdCAhPSBO VUxMKTsKKyAKKysgICAgICBjYWlyb19zZXRfZm9udF9mYWNlIChnci0+Y3IsIGZ0KTsKKysgICAg ICBjYWlyb19zaG93X2dseXBocyAoZ3ItPmNyLCAmZ2x5cGhzW2ktbGVuZ3RoXSwgbGVuZ3RoKzEp OworKyAgICAgICAgICAgICAgICAgICAgICAgCisrICAgICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ry b3kgKGZ0KTsKKysgICAgICBwYW5nb19mY19mb250X3VubG9ja19mYWNlKGZvbnQpOworKyAgICB9 CisrICAgIAorICAgZ19mcmVlKGdseXBocyk7CisgfQorIAorLS0tIGxpYmphdmEvY2xhc3NwYXRo L25hdGl2ZS9qbmkvZ3RrLXBlZXIvZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhW ZWN0b3IuYwkxMSBKdW4gMjAwNiAxMTozMTowMyAtMDAwMAkxLjQKKysrKyBsaWJqYXZhL2NsYXNz cGF0aC9uYXRpdmUvam5pL2d0ay1wZWVyL2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUds eXBoVmVjdG9yLmMJMiBBcHIgMjAwNyAyMToyODo1OSAtMDAwMAkxLjYKK0BAIC0zNSw2ICszNSw3 IEBAIHRoaXMgZXhjZXB0aW9uIHRvIHlvdXIgdmVyc2lvbiBvZiB0aGUgbGkKKyBvYmxpZ2F0ZWQg dG8gZG8gc28uICBJZiB5b3UgZG8gbm90IHdpc2ggdG8gZG8gc28sIGRlbGV0ZSB0aGlzCisgZXhj ZXB0aW9uIHN0YXRlbWVudCBmcm9tIHlvdXIgdmVyc2lvbi4gKi8KKyAKKysjZGVmaW5lIFBBTkdP X0VOQUJMRV9FTkdJTkUKKyAjaW5jbHVkZSA8am5pLmg+CisgI2luY2x1ZGUgPGd0ay9ndGsuaD4K KyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtNDMsNiArNDQsNyBAQCBleGNlcHRpb24gc3RhdGVt ZW50IGZyb20geW91ciB2ZXJzaW9uLiAqCisgI2luY2x1ZGUgPHBhbmdvL3BhbmdvZmMtZm9udC5o PgorICNpbmNsdWRlIDxmcmVldHlwZS9mdGdseXBoLmg+CisgI2luY2x1ZGUgPGZyZWV0eXBlL2Z0 b3V0bG4uaD4KKysjaW5jbHVkZSAiamNsLmgiCisgI2luY2x1ZGUgIm5hdGl2ZV9zdGF0ZS5oIgor ICNpbmNsdWRlICJnZGtmb250LmgiCisgI2luY2x1ZGUgImdudV9qYXZhX2F3dF9wZWVyX2d0a19G cmVldHlwZUdseXBoVmVjdG9yLmgiCitAQCAtODEsNDIgKzgzLDkyIEBAIGdldEZvbnQoSk5JRW52 ICplbnYsIGpvYmplY3Qgb2JqKQorICAgcmV0dXJuIChQYW5nb0ZjRm9udCAqKXBmb250LT5mb250 OworIH0KKyAKKy1KTklFWFBPUlQgamludEFycmF5IEpOSUNBTEwgCisrc3RhdGljIFBhbmdvRm9u dHNldCAqCisrZ2V0Rm9udFNldChKTklFbnYgKmVudiwgam9iamVjdCBvYmopCisreworKyAgamZp ZWxkSUQgZmlkOworKyAgam9iamVjdCBkYXRhOworKyAgamNsYXNzIGNsczsKKysgIHN0cnVjdCBw ZWVyZm9udCAqcGZvbnQ7CisrCisrICBjbHMgPSAoKmVudiktPkdldE9iamVjdENsYXNzIChlbnYs IG9iaik7CisrICBmaWQgPSAoKmVudiktPkdldEZpZWxkSUQgKGVudiwgY2xzLCAicGVlciIsIAor KwkJCQkgIkxnbnUvamF2YS9hd3QvcGVlci9ndGsvR2RrRm9udFBlZXI7Iik7CisrICBnX2Fzc2Vy dCAoZmlkICE9IDApOworKworKyAgZGF0YSA9ICgqZW52KS0+R2V0T2JqZWN0RmllbGQgKGVudiwg b2JqLCBmaWQpOworKyAgZ19hc3NlcnQgKGRhdGEgIT0gTlVMTCk7CisrCisrICBwZm9udCA9IChz dHJ1Y3QgcGVlcmZvbnQgKilOU0FfR0VUX0ZPTlRfUFRSIChlbnYsIGRhdGEpOworKyAgZ19hc3Nl cnQgKHBmb250ICE9IE5VTEwpOworKyAgZ19hc3NlcnQgKHBmb250LT5mb250ICE9IE5VTEwpOwor KworKyAgcmV0dXJuIChQYW5nb0ZvbnRzZXQgKilwZm9udC0+c2V0OworK30KKysKKytKTklFWFBP UlQgdm9pZCBKTklDQUxMIAorIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5 cGhWZWN0b3JfZ2V0R2x5cGhzCistICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqaW50QXJy YXkgY29kZXBvaW50cykKKysgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGppbnRBcnJheSBj b2RlcG9pbnRzLCBqaW50QXJyYXkgZ2x5cGhzLAorKyAgIGpsb25nQXJyYXkgZm9udHMpCisgewor LSAgRlRfRmFjZSBmdF9mYWNlOworLSAgamludEFycmF5IHJldEFycmF5OworLSAgUGFuZ29GY0Zv bnQgKmZvbnQ7CistICBqaW50ICp2YWx1ZXMsICpjcHZhbHM7CisrICBQYW5nb0ZjRm9udCAqZGVm YXVsdF9mb250LCAqY3VycmVudF9mb250OworKyAgUGFuZ29Gb250c2V0ICpwZnM7CisrICBqaW50 ICpjcHZhbHM7CisgICBqaW50IGxlbmd0aDsKKyAgIGludCBpOworIAorLSAgZm9udCA9IGdldEZv bnQoZW52LCBvYmopOworLQorLSAgZnRfZmFjZSA9IHBhbmdvX2ZjX2ZvbnRfbG9ja19mYWNlKCBm b250ICk7CistICBnX2Fzc2VydCAoZnRfZmFjZSAhPSBOVUxMKTsKKysgIC8qIFNldCB1cCBkZWZh dWx0IGZvbnQgYW5kIGZvbnRzZXQgKi8KKysgIGRlZmF1bHRfZm9udCA9IGdldEZvbnQoZW52LCBv YmopOworKyAgY3VycmVudF9mb250ID0gZGVmYXVsdF9mb250OworKyAgcGZzID0gZ2V0Rm9udFNl dChlbnYsIG9iaik7CisgCisrICAvKiBSZXRyaWV2ZSBzdHJpbmcgaW5mb3JtYXRpb24gKi8KKyAg IGxlbmd0aCA9ICgqZW52KS0+R2V0QXJyYXlMZW5ndGggKGVudiwgY29kZXBvaW50cyk7CisgICBj cHZhbHMgPSAoKmVudiktPkdldEludEFycmF5RWxlbWVudHMgKGVudiwgY29kZXBvaW50cywgTlVM TCk7CisrICAKKysgIGppbnQgKmdseXBoQXJyYXkgPSAoKmVudiktPkdldEludEFycmF5RWxlbWVu dHMgKGVudiwgZ2x5cGhzLCBOVUxMKTsKKysgIGpsb25nICpmb250QXJyYXkgPSAoKmVudiktPkdl dExvbmdBcnJheUVsZW1lbnRzIChlbnYsIGZvbnRzLCBOVUxMKTsKKyAKKy0gIHJldEFycmF5ID0g KCplbnYpLT5OZXdJbnRBcnJheSAoZW52LCBsZW5ndGgpOworLSAgdmFsdWVzID0gKCplbnYpLT5H ZXRJbnRBcnJheUVsZW1lbnRzIChlbnYsIHJldEFycmF5LCBOVUxMKTsKKysgIC8qIEEgZGVzaWdu IGdvYWwgb2YgUGFuZ28gaXMgdG8gYmUgdGhyZWFkc2FmZSwgYnV0IGl0J3MgYWRtaXR0ZWQgdGhh dCBpdCBpcworKyAgICogbm90IGFjdHVhbGx5IHRocmVhZHNhZmUgYXQgdGhlIG1vbWVudC4gIFVz aW5nIGdkayBsb2NraW5nIGhlcmUgdG8gYmUgc2FmZSwKKysgICAqIGJ1dCBJIGRvbid0IGtub3cg aWYgaWYgYWN0dWFsbHkgaGVscHMgYXQgYWxsLi4uICovIAorKyAgZ2RrX3RocmVhZHNfZW50ZXIo KTsKKyAKKyAgIGZvciggaSA9IDA7IGkgPCBsZW5ndGg7IGkrKyApCistICAgIHZhbHVlc1tpXSA9 IEZUX0dldF9DaGFyX0luZGV4KCBmdF9mYWNlLCBjcHZhbHNbaV0gKTsKKysgIHsKKysgIAkvKiBF bnN1cmUgdGhlIGN1cnJlbnQgZm9udCBoYXMgdGhlIHJlcXVlc3RlZCBjaGFyYWN0ZXI7IGlmIGl0 IGRvZXNuJ3QsCisrICAJICogdHJ5IHRoZSBkZWZhdWx0IGZvbnQgYmVmb3JlIHB1bGxpbmcgYSBu ZXcgZm9udCBvdXQgb2YgdGhlIGZvbnRzZXQuCisrICAJICogT25jZSBjaG9zZW4sIGEgZm9udCB3 aWxsIGJlIHVzZWQgdW50aWwgYSBjaGFyYWN0ZXIgbm90IGluIHRoZSBmb250IGlzCisrICAJICog ZW5jb3VudGVyZWQuICovIAorKyAgCWlmICghcGFuZ29fZmNfZm9udF9oYXNfY2hhcihjdXJyZW50 X2ZvbnQsIGNwdmFsc1tpXSkpCisrICAJICB7CisrICAJICAgIGlmIChwYW5nb19mY19mb250X2hh c19jaGFyKGRlZmF1bHRfZm9udCwgY3B2YWxzW2ldKSkKKysgIAkgICAgICB7CisrICAJICAgICAg ICBjdXJyZW50X2ZvbnQgPSBkZWZhdWx0X2ZvbnQ7CisrICAJICAgICAgfQorKyAgCSAgICBlbHNl CisrICAJICAgICAgeworKyAgCSAgICAgICAgY3VycmVudF9mb250ID0gKFBhbmdvRmNGb250Kilw YW5nb19mb250c2V0X2dldF9mb250KHBmcywgY3B2YWxzW2ldKTsKKysgIAkgICAgICB9CisrICAJ ICB9CisrICAJCisrICAJLyogR2V0IGdseXBoLCBhbmQgc3RvcmUgYm90aCBnbHlwaCBhbmQgcG9p bnRlciB0byBmb250ICovCisrICAgIGdseXBoQXJyYXlbaV0gPSAoaW50KXBhbmdvX2ZjX2ZvbnRf Z2V0X2dseXBoKGN1cnJlbnRfZm9udCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGd1bmljaGFyKWNwdmFsc1tpXSk7CisrICAgIGdfb2JqZWN0X3Jl ZihjdXJyZW50X2ZvbnQpOworKyAgICBmb250QXJyYXlbaV0gPSBQVFJfVE9fSkxPTkcoY3VycmVu dF9mb250KTsKKysgIH0KKysgIAorKyAgZ2RrX3RocmVhZHNfbGVhdmUoKTsKKyAKKy0gICgqZW52 KS0+UmVsZWFzZUludEFycmF5RWxlbWVudHMgKGVudiwgcmV0QXJyYXksIHZhbHVlcywgMCk7Cisr ICAoKmVudiktPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzIChlbnYsIGdseXBocywgZ2x5cGhBcnJh eSwgMCk7CisgICAoKmVudiktPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzIChlbnYsIGNvZGVwb2lu dHMsIGNwdmFscywgMCk7CistCistICBwYW5nb19mY19mb250X3VubG9ja19mYWNlIChmb250KTsK Ky0KKy0gIHJldHVybiByZXRBcnJheTsKKysgICgqZW52KS0+UmVsZWFzZUxvbmdBcnJheUVsZW1l bnRzIChlbnYsIGZvbnRzLCBmb250QXJyYXksIDApOworIH0KKyAKKyBKTklFWFBPUlQgam9iamVj dCBKTklDQUxMIAorIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhWZWN0 b3JfZ2V0S2VybmluZworLShKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGppbnQgcmlnaHRHbHlw aCwgamludCBsZWZ0R2x5cGgpCisrKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiBfX2F0dHJpYnV0 ZV9fKCh1bnVzZWQpKSwgamludCByaWdodEdseXBoLCBqaW50IGxlZnRHbHlwaCwgamxvbmcgZm50 KQorIHsKKyAgIEZUX0ZhY2UgZnRfZmFjZTsKKyAgIEZUX1ZlY3RvciBrZXJuOworQEAgLTEyNSw3 ICsxNzcsNyBAQCBKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoCisgICBq dmFsdWUgdmFsdWVzWzJdOworICAgUGFuZ29GY0ZvbnQgKmZvbnQ7CisgCistICBmb250ID0gZ2V0 Rm9udChlbnYsIG9iaik7CisrICBmb250ID0gSkxPTkdfVE9fUFRSKFBhbmdvRmNGb250LCBmbnQp OworICAgZnRfZmFjZSA9IHBhbmdvX2ZjX2ZvbnRfbG9ja19mYWNlKCBmb250ICk7CisgICBnX2Fz c2VydCAoZnRfZmFjZSAhPSBOVUxMKTsKKyAgIEZUX0dldF9LZXJuaW5nKCBmdF9mYWNlLCByaWdo dEdseXBoLCBsZWZ0R2x5cGgsIEZUX0tFUk5JTkdfREVGQVVMVCwgJmtlcm4gKTsKK0BAIC0xNDIs MTQgKzE5NCwxNCBAQCBKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoCisg CisgSk5JRVhQT1JUIGpkb3VibGVBcnJheSBKTklDQUxMIAorIEphdmFfZ251X2phdmFfYXd0X3Bl ZXJfZ3RrX0ZyZWV0eXBlR2x5cGhWZWN0b3JfZ2V0TWV0cmljc05hdGl2ZQorLShKTklFbnYgKmVu diwgam9iamVjdCBvYmosIGppbnQgZ2x5cGhJbmRleCApCisrKEpOSUVudiAqZW52LCBqb2JqZWN0 IG9iaiBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgamludCBnbHlwaEluZGV4LCBqbG9uZyBmbnQp CisgeworICAgRlRfRmFjZSBmdF9mYWNlOworICAgamRvdWJsZSAqdmFsdWVzOworICAgamRvdWJs ZUFycmF5IHJldEFycmF5ID0gTlVMTDsKKyAgIFBhbmdvRmNGb250ICpmb250OworIAorLSAgZm9u dCA9IGdldEZvbnQoZW52LCBvYmopOworKyAgZm9udCA9IEpMT05HX1RPX1BUUihQYW5nb0ZjRm9u dCwgZm50KTsKKyAgIGZ0X2ZhY2UgPSBwYW5nb19mY19mb250X2xvY2tfZmFjZSggZm9udCApOwor IAorICAgZ19hc3NlcnQgKGZ0X2ZhY2UgIT0gTlVMTCk7CitAQCAtMjg1LDcgKzMzNyw3IEBAIHN0 YXRpYyBpbnQgX2N1cnZlVG8oIGNvbnN0IEZUX1ZlY3RvciogIGMKKyAKKyBKTklFWFBPUlQgam9i amVjdCBKTklDQUxMIAorIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0ZyZWV0eXBlR2x5cGhW ZWN0b3JfZ2V0R2x5cGhPdXRsaW5lTmF0aXZlCistIChKTklFbnYgKmVudiwgam9iamVjdCBvYmos IGppbnQgZ2x5cGhJbmRleCkKKysgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiBfX2F0dHJpYnV0 ZV9fKCh1bnVzZWQpKSwgamludCBnbHlwaEluZGV4LCBqbG9uZyBmbnQpCisgeworICAgZ2VuZXJh bHBhdGggKnBhdGg7CisgICBqb2JqZWN0IGdwOworQEAgLTMwMiw3ICszNTQsNyBAQCBKYXZhX2du dV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoCisgICBGVF9GYWNlIGZ0X2ZhY2U7Cisg ICBGVF9HbHlwaCBnbHlwaDsKKyAKKy0gIGZvbnQgPSBnZXRGb250KGVudiwgb2JqKTsKKysgIGZv bnQgPSBKTE9OR19UT19QVFIoUGFuZ29GY0ZvbnQsIGZudCk7CisgICBmdF9mYWNlID0gcGFuZ29f ZmNfZm9udF9sb2NrX2ZhY2UoIGZvbnQgKTsKKyAKKyAgIGdfYXNzZXJ0IChmdF9mYWNlICE9IE5V TEwpOworQEAgLTM0NSw0ICszOTcsMzkgQEAgSmF2YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfRnJl ZXR5cGVHbHlwaAorICAgcmV0dXJuIGdwOyAKKyB9CisgCisrSk5JRVhQT1JUIHZvaWQgSk5JQ0FM TCAKKytKYXZhX2dudV9qYXZhX2F3dF9wZWVyX2d0a19GcmVldHlwZUdseXBoVmVjdG9yX2Rpc3Bv c2UKKysgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwg amxvbmdBcnJheSBmb250c2V0KQorK3sKKysgIFBhbmdvRmNGb250ICpmb250OworKyAgamxvbmcg KmZvbnRBcnJheTsgCisrICBpbnQgaSwgbGVuZ3RoOworIAorKyAgbGVuZ3RoID0gKCplbnYpLT5H ZXRBcnJheUxlbmd0aCAoZW52LCBmb250c2V0KTsKKysgIGZvbnRBcnJheSA9ICgqZW52KS0+R2V0 TG9uZ0FycmF5RWxlbWVudHMgKGVudiwgZm9udHNldCwgTlVMTCk7CisrICAKKysgIGdka190aHJl YWRzX2VudGVyKCk7CisrICAKKysgIGZvciggaSA9IDA7IGkgPCBsZW5ndGg7IGkrKyApCisrICB7 CisrICAgIGZvbnQgPSBKTE9OR19UT19QVFIoUGFuZ29GY0ZvbnQsIGZvbnRBcnJheVtpXSk7Cisr ICAgIGdfb2JqZWN0X3VucmVmKGZvbnQpOworKyAgfQorKyAgCisrICBnZGtfdGhyZWFkc19sZWF2 ZSgpOworKworKyAgKCplbnYpLT5SZWxlYXNlTG9uZ0FycmF5RWxlbWVudHMgKGVudiwgZm9udHNl dCwgZm9udEFycmF5LCAwKTsKKyt9CisrCisrSk5JRVhQT1JUIGpsb25nIEpOSUNBTEwgCisrSmF2 YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfRnJlZXR5cGVHbHlwaFZlY3Rvcl9nZXROYXRpdmVGb250 UG9pbnRlcgorKyAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqaW50IG4pCisreworKyAgaW50 IGk7CisrICBQYW5nb0ZjRm9udCAqZm9udCA9IGdldEZvbnQoZW52LCBvYmopOworKyAgCisrICBm b3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorKyAgICBnX29iamVjdF9yZWYoZm9udCk7CisrICAKKysg IHJldHVybiBQVFJfVE9fSkxPTkcoZm9udCk7CisrfQorLS0tIGxpYmphdmEvY2xhc3NwYXRoL25h dGl2ZS9qbmkvZ3RrLXBlZXIvZ251X2phdmFfYXd0X3BlZXJfZ3RrX0dka0ZvbnRQZWVyLmMJMjYg RmViIDIwMDcgMjI6MTE6MzggLTAwMDAJMS4yMgorKysrIGxpYmphdmEvY2xhc3NwYXRoL25hdGl2 ZS9qbmkvZ3RrLXBlZXIvZ251X2phdmFfYXd0X3BlZXJfZ3RrX0dka0ZvbnRQZWVyLmMJMiBBcHIg MjAwNyAxOTozOToyNiAtMDAwMAkxLjIzCitAQCAtMzUsNiArMzUsNyBAQAorICAgIG9ibGlnYXRl ZCB0byBkbyBzby4gIElmIHlvdSBkbyBub3Qgd2lzaCB0byBkbyBzbywgZGVsZXRlIHRoaXMKKyAg ICBleGNlcHRpb24gc3RhdGVtZW50IGZyb20geW91ciB2ZXJzaW9uLiAqLworIAorKyNkZWZpbmUg UEFOR09fRU5BQkxFX0VOR0lORQorICNpbmNsdWRlIDxwYW5nby9wYW5nby5oPgorICNpbmNsdWRl IDxwYW5nby9wYW5nb2Z0Mi5oPgorICNpbmNsdWRlIDxwYW5nby9wYW5nb2ZjLWZvbnQuaD4KK0BA IC05Nyw2ICs5OCw4IEBAIEphdmFfZ251X2phdmFfYXd0X3BlZXJfZ3RrX0dka0ZvbnRQZWVyX2QK KyAgICAgZ19vYmplY3RfdW5yZWYgKHBmb250LT5sYXlvdXQpOworICAgaWYgKHBmb250LT5mb250 ICE9IE5VTEwpCisgICAgIGdfb2JqZWN0X3VucmVmIChwZm9udC0+Zm9udCk7CisrICBpZiAocGZv bnQtPnNldCAhPSBOVUxMKQorKyAgICBnX29iamVjdF91bnJlZiAocGZvbnQtPnNldCk7CisgICBp ZiAocGZvbnQtPmN0eCAhPSBOVUxMKQorICAgICBnX29iamVjdF91bnJlZiAocGZvbnQtPmN0eCk7 CisgICBpZiAocGZvbnQtPmRlc2MgIT0gTlVMTCkKK0BAIC0yNTcsNiArMjYwLDggQEAgSmF2YV9n bnVfamF2YV9hd3RfcGVlcl9ndGtfR2RrRm9udFBlZXJfcworICAgICBnX29iamVjdF91bnJlZiAo cGZvbnQtPmN0eCk7CisgICBpZiAocGZvbnQtPmZvbnQgIT0gTlVMTCkKKyAgICAgZ19vYmplY3Rf dW5yZWYgKHBmb250LT5mb250KTsKKysgIGlmIChwZm9udC0+c2V0ICE9IE5VTEwpCisrICAgIGdf b2JqZWN0X3VucmVmIChwZm9udC0+c2V0KTsKKyAgIGlmIChwZm9udC0+ZGVzYyAhPSBOVUxMKQor ICAgICBwYW5nb19mb250X2Rlc2NyaXB0aW9uX2ZyZWUgKHBmb250LT5kZXNjKTsKKyAKK0BAIC0y NjgsNyArMjczLDYgQEAgSmF2YV9nbnVfamF2YV9hd3RfcGVlcl9ndGtfR2RrRm9udFBlZXJfcwor ICAgcGFuZ29fZm9udF9kZXNjcmlwdGlvbl9zZXRfZmFtaWx5IChwZm9udC0+ZGVzYywgZmFtaWx5 X25hbWUpOworICAgKCplbnYpLT5SZWxlYXNlU3RyaW5nVVRGQ2hhcnMoZW52LCBmYW1pbHlfbmFt ZV9zdHIsIGZhbWlseV9uYW1lKTsKKyAKKy0KKyAgIGlmIChzdHlsZSAmIGphdmFfYXd0X2ZvbnRf Qk9MRCkKKyAgICAgcGFuZ29fZm9udF9kZXNjcmlwdGlvbl9zZXRfd2VpZ2h0IChwZm9udC0+ZGVz YywgUEFOR09fV0VJR0hUX0JPTEQpOworIAorQEAgLTI5Myw2ICsyOTcsOCBAQCBKYXZhX2dudV9q YXZhX2F3dF9wZWVyX2d0a19HZGtGb250UGVlcl9zCisgICAKKyAgIHBhbmdvX2NvbnRleHRfc2V0 X2ZvbnRfZGVzY3JpcHRpb24gKHBmb250LT5jdHgsIHBmb250LT5kZXNjKTsKKyAgIHBhbmdvX2Nv bnRleHRfc2V0X2xhbmd1YWdlIChwZm9udC0+Y3R4LCBndGtfZ2V0X2RlZmF1bHRfbGFuZ3VhZ2Uo KSk7CisrICBwZm9udC0+c2V0ID0gcGFuZ29fY29udGV4dF9sb2FkX2ZvbnRzZXQocGZvbnQtPmN0 eCwgcGZvbnQtPmRlc2MsCisrICAJCQkJCQkJCQkJICBndGtfZ2V0X2RlZmF1bHRfbGFuZ3VhZ2Uo KSk7CisgICBwZm9udC0+Zm9udCA9IHBhbmdvX2NvbnRleHRfbG9hZF9mb250IChwZm9udC0+Y3R4 LCBwZm9udC0+ZGVzYyk7CisgICBnX2Fzc2VydCAocGZvbnQtPmZvbnQgIT0gTlVMTCk7CisgCgpk aWZmIC0tZ2l0IGEvZ2NjNDEtcmgyMzQ1MTUucGF0Y2ggYi9nY2M0MS1yaDIzNDUxNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTZmMDM4Ci0tLSAvZGV2L251bGwK KysrIGIvZ2NjNDEtcmgyMzQ1MTUucGF0Y2gKQEAgLTAsMCArMSw3MyBAQAorMjAwNy0wMS0yNCAg IFN0ZXZlIExvQmFzc28gPHNsb2Jhc3NvQHlhaG9vLmNvbT4KKwkgICAgIFBhb2xvIENhcmxpbmkg IDxwY2FybGluaUBzdXNlLmRlPgorCisJKiBpbmNsdWRlL2JpdHMvZGVxdWUudGNjIChkZXF1ZTw+ OjplcmFzZShpdGVyYXRvciwgaXRlcmF0b3IpKToKKwlGaXggY29uZGl0aW9uLgorCSogdGVzdHN1 aXRlLzIzX2NvbnRhaW5lcnMvZGVxdWUvbW9kaWZpZXJzL2VyYXNlLzMuY2M6IE5ldy4KKworLS0t IGxpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvZGVxdWUudGNjCShyZXZpc2lvbiAxMjExNDYpCisr KysgbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9kZXF1ZS50Y2MJKHJldmlzaW9uIDEyMTE0NykK K0BAIC0xNDMsNyArMTQzLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkVTVEVEX05BTUVTUEFDRShzdGQs IF9HTAorIAl7CisgCSAgY29uc3QgZGlmZmVyZW5jZV90eXBlIF9fbiA9IF9fbGFzdCAtIF9fZmly c3Q7CisgCSAgY29uc3QgZGlmZmVyZW5jZV90eXBlIF9fZWxlbXNfYmVmb3JlID0gX19maXJzdCAt IGJlZ2luKCk7CistCSAgaWYgKHN0YXRpY19jYXN0PHNpemVfdHlwZT4oX19lbGVtc19iZWZvcmUp IDwgKHNpemUoKSAtIF9fbikgLyAyKQorKwkgIGlmIChzdGF0aWNfY2FzdDxzaXplX3R5cGU+KF9f ZWxlbXNfYmVmb3JlKSA8PSAoc2l6ZSgpIC0gX19uKSAvIDIpCisgCSAgICB7CisgCSAgICAgIGlm IChfX2ZpcnN0ICE9IGJlZ2luKCkpCisgCQlzdGQ6OmNvcHlfYmFja3dhcmQoYmVnaW4oKSwgX19m aXJzdCwgX19sYXN0KTsKKy0tLSBsaWJzdGRjKystdjMvdGVzdHN1aXRlLzIzX2NvbnRhaW5lcnMv ZGVxdWUvbW9kaWZpZXJzL2VyYXNlLzMuY2MJKHJldmlzaW9uIDApCisrKysgbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yM19jb250YWluZXJzL2RlcXVlL21vZGlmaWVycy9lcmFzZS8zLmNjCShyZXZp c2lvbiAxMjExNDcpCitAQCAtMCwwICsxLDUyIEBACisrLy8gQ29weXJpZ2h0IChDKSAyMDA3IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKy8vCisrLy8gVGhpcyBmaWxlIGlzIHBhcnQg b2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnkuICBUaGlzIGxpYnJhcnkgaXMgZnJlZQorKy8vIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRo ZQorKy8vIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlCisrLy8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy LCBvciAoYXQgeW91ciBvcHRpb24pCisrLy8gYW55IGxhdGVyIHZlcnNpb24uCisrCisrLy8gVGhp cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysKKysvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworKy8vIHdpdGggdGhpcyBs aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUK KysvLyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y LCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsCisrLy8gVVNBLgorKworKy8vIDIzLjIuMS4zIGRlcXVl IG1vZGlmaWVycworKworKyNpbmNsdWRlIDxkZXF1ZT4KKysjaW5jbHVkZSA8dGVzdHN1aXRlX2hv b2tzLmg+CisrCisrdm9pZCBlcmFzZShzaXplX3QgbnVtX2VsbSwgc2l6ZV90IGVsbV9zdHJ0LCBz aXplX3QgZWxtX2VuZCkKKyt7CisrICBib29sIHRlc3QgX19hdHRyaWJ1dGVfXygodW51c2VkKSkg PSB0cnVlOworKyAgdXNpbmcgX19nbnVfdGVzdDo6Y29weV90cmFja2VyOworKyAgdXNpbmcgX19n bnVfdGVzdDo6YXNzaWdubWVudF9vcGVyYXRvcjsKKysKKysgIHN0ZDo6ZGVxdWU8Y29weV90cmFj a2VyPiB4KG51bV9lbG0pOworKyAgY29weV90cmFja2VyOjpyZXNldCgpOworKyAgCisrICB4LmVy YXNlKHguYmVnaW4oKSArIGVsbV9zdHJ0LCB4LmJlZ2luKCkgKyBlbG1fZW5kKTsKKysgIAorKyAg Y29uc3Qgc2l6ZV90IG1pbl9udW1fY3B5ID0gc3RkOjptaW4oZWxtX3N0cnQsIG51bV9lbG0gLSBl bG1fZW5kKTsKKysgIFZFUklGWSggYXNzaWdubWVudF9vcGVyYXRvcjo6Y291bnQoKSA9PSBtaW5f bnVtX2NweSApOworK30KKysKKysvLyBodHRwOi8vZ2NjLmdudS5vcmcvbWwvbGlic3RkYysrLzIw MDctMDEvbXNnMDAwOTguaHRtbAorK3ZvaWQgdGVzdDAxKCkKKyt7CisrICBmb3IgKHNpemVfdCBu dW1fZWxtID0gMDsgbnVtX2VsbSA8PSAxMDsgKytudW1fZWxtKQorKyAgICBmb3IgKHNpemVfdCBl bG1fc3RydCA9IDA7IGVsbV9zdHJ0IDw9IG51bV9lbG07ICsrZWxtX3N0cnQpCisrICAgICAgZm9y IChzaXplX3QgZWxtX2VuZCA9IGVsbV9zdHJ0OyBlbG1fZW5kIDw9IG51bV9lbG07ICsrZWxtX2Vu ZCkKKysJZXJhc2UobnVtX2VsbSwgZWxtX3N0cnQsIGVsbV9lbmQpOworK30KKysKKytpbnQgbWFp bigpCisreworKyAgdGVzdDAxKCk7CisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2Nj NDEuc3BlYyBiL2djYzQxLnNwZWMKaW5kZXggMjg4YjMxOS4uMGMzNjUzMCAxMDA2NDQKLS0tIGEv Z2NjNDEuc3BlYworKysgYi9nY2M0MS5zcGVjCkBAIC0xLDYgKzEsNiBAQAotJWRlZmluZSBEQVRF IDIwMDcwMzI5CislZGVmaW5lIERBVEUgMjAwNzA0MDMKICVkZWZpbmUgZ2NjX3ZlcnNpb24gNC4x LjIKLSVkZWZpbmUgZ2NjX3JlbGVhc2UgNworJWRlZmluZSBnY2NfcmVsZWFzZSA4CiAlZGVmaW5l IF91bnBhY2thZ2VkX2ZpbGVzX3Rlcm1pbmF0ZV9idWlsZCAwCiAlZGVmaW5lIG11bHRpbGliXzY0 X2FyY2hzIHNwYXJjNjQgcHBjNjQgczM5MHggeDg2XzY0CiAlZGVmaW5lIGluY2x1ZGVfZ2FwcGxl dHZpZXdlciAxCkBAIC0xMjUsMjcgKzEyNSwyMiBAQCBQYXRjaDEzOiBnY2M0MS1wcjIwMjk3LXRl c3QucGF0Y2gKIFBhdGNoMTQ6IGdjYzQxLW9iamMtcmgxODUzOTgucGF0Y2gKIFBhdGNoMTU6IGdj YzQxLXRlc3RzLnBhdGNoCiBQYXRjaDE2OiBnY2M0MS1wcjI1ODc0LnBhdGNoCi1QYXRjaDE3OiBn Y2M0MS1wcjI3MzUxLnBhdGNoCi1QYXRjaDE4OiBnY2M0MS1oYXNoLXN0eWxlLWdudS5wYXRjaAot UGF0Y2gxOTogZ2NjNDEtcHIzMDAwMS5wYXRjaAotUGF0Y2gyMDogZ2NjNDEtamF2YS1saWJkb3Rk b3RsaWIucGF0Y2gKLVBhdGNoMjE6IGdjYzQxLXByMjg3MDkucGF0Y2gKLVBhdGNoMjI6IGdjYzQx LXByMjg3NTUucGF0Y2gKLVBhdGNoMjM6IGdjYzQxLXByMjc4OTgucGF0Y2gKLVBhdGNoMjQ6IGdj YzQxLXByMjc1NjcucGF0Y2gKLVBhdGNoMjU6IGdjYzQxLXByMjkyNzIucGF0Y2gKLVBhdGNoMjY6 IGdjYzQxLXByMjkwNTkucGF0Y2gKLVBhdGNoMjc6IGdjYzQxLXN0cm5jYXQtY2hrLnBhdGNoCi1Q YXRjaDI4OiBnY2M0MS1wcjI5Mjk5LnBhdGNoCi1QYXRjaDI5OiBnY2M0MS1wcjMwMTEzLnBhdGNo Ci1QYXRjaDMwOiBnY2M0MS1yaDIyODc2OS5wYXRjaAotUGF0Y2gzMTogZ2NjNDEtcHIzMDA0NS5w YXRjaAotUGF0Y2gzMjogZ2NjNDEtcmgyMjczNzYucGF0Y2gKLVBhdGNoMzM6IGdjYzQxLXByMzA4 NjMucGF0Y2gKLVBhdGNoMzQ6IGdjYzQxLWphdmEtYm9ndXMtZGVidWdsaW5lLnBhdGNoCi1QYXRj aDM1OiBnY2M0MS1saWJmZmktc2VsaW51eC5wYXRjaAotUGF0Y2gzNjogZ2NjNDEtbGliamF2YS12 aXNpYmlsaXR5LnBhdGNoCi1QYXRjaDM3OiBnY2M0MS1wcjMwODQ3LnBhdGNoCitQYXRjaDE3OiBn Y2M0MS1oYXNoLXN0eWxlLWdudS5wYXRjaAorUGF0Y2gxODogZ2NjNDEtamF2YS1saWJkb3Rkb3Rs aWIucGF0Y2gKK1BhdGNoMTk6IGdjYzQxLXByMjg3MDkucGF0Y2gKK1BhdGNoMjA6IGdjYzQxLXBy Mjg3NTUucGF0Y2gKK1BhdGNoMjE6IGdjYzQxLXByMjc4OTgucGF0Y2gKK1BhdGNoMjI6IGdjYzQx LXByMjc1NjcucGF0Y2gKK1BhdGNoMjM6IGdjYzQxLXByMjkyNzIucGF0Y2gKK1BhdGNoMjQ6IGdj YzQxLXByMjkwNTkucGF0Y2gKK1BhdGNoMjU6IGdjYzQxLXN0cm5jYXQtY2hrLnBhdGNoCitQYXRj aDI2OiBnY2M0MS1wcjI5Mjk5LnBhdGNoCitQYXRjaDI3OiBnY2M0MS1qYXZhLWJvZ3VzLWRlYnVn bGluZS5wYXRjaAorUGF0Y2gyODogZ2NjNDEtbGliamF2YS12aXNpYmlsaXR5LnBhdGNoCitQYXRj aDI5OiBnY2M0MS1wcjMxMTg3LnBhdGNoCitQYXRjaDMwOiBnY2M0MS1yaDIzMTgxOC5wYXRjaAor UGF0Y2gzMTogZ2NjNDEtcmgyMzQ1MTUucGF0Y2gKKwogJWRlZmluZSBfZ251ICV7bmlsfQogJWlm YXJjaCBzcGFyYwogJWRlZmluZSBnY2NfdGFyZ2V0X3BsYXRmb3JtIHNwYXJjNjQtJXtfdmVuZG9y fS0le190YXJnZXRfb3N9CkBAIC00MzgsMjcgKzQzMywyMSBAQCB3aGljaCBhcmUgcmVxdWlyZWQg dG8gcnVuIHByb2dyYW1zIGNvbXBpbGVkIHdpdGggdGhlIEdOQVQuCiAlcGF0Y2gxNCAtcDAgLWIg Lm9iamMtcmgxODUzOTh+CiAlcGF0Y2gxNSAtcDAgLWIgLnRlc3RzfgogJXBhdGNoMTYgLXAwIC1i IC5wcjI1ODc0fgotJXBhdGNoMTcgLXAwIC1iIC5wcjI3MzUxfgotJXBhdGNoMTggLXAwIC1iIC5o YXNoLXN0eWxlLWdudX4KLSVwYXRjaDE5IC1wMCAtYiAucHIzMDAwMX4KLSVwYXRjaDIwIC1wMCAt YiAuamF2YS1saWJkb3Rkb3RsaWJ+Ci0lcGF0Y2gyMSAtcDAgLWIgLnByMjg3MDl+Ci0lcGF0Y2gy MiAtcDAgLWIgLnByMjg3NTV+Ci0lcGF0Y2gyMyAtcDAgLWIgLnByMjc4OTh+Ci0lcGF0Y2gyNCAt cDAgLWIgLnByMjc1Njd+Ci0lcGF0Y2gyNSAtcDAgLWIgLnByMjkyNzJ+Ci0lcGF0Y2gyNiAtcDAg LWIgLnByMjkwNTl+Ci0lcGF0Y2gyNyAtcDAgLWIgLnN0cm5jYXQtY2hrfgotJXBhdGNoMjggLXAw IC1iIC5wcjI5Mjk5fgotJXBhdGNoMjkgLXAwIC1iIC5wcjMwMTEzfgotJXBhdGNoMzAgLXAwIC1i IC5yaDIyODc2OX4KLSVwYXRjaDMxIC1wMCAtYiAucHIzMDA0NX4KLSVwYXRjaDMyIC1wMCAtYiAu cmgyMjczNzZ+Ci0lcGF0Y2gzMyAtcDAgLWIgLnByMzA4NjN+Ci0lcGF0Y2gzNCAtcDAgLWIgLmph dmEtYm9ndXMtZGVidWdsaW5lfgotJXBhdGNoMzUgLXAwIC1iIC5saWJmZmktc2VsaW51eH4KLSMl cGF0Y2gzNiAtcDAgLWIgLmxpYmphdmEtdmlzaWJpbGl0eX4KLSVwYXRjaDM3IC1wMCAtYiAucHIz MDg0N34KKyVwYXRjaDE3IC1wMCAtYiAuaGFzaC1zdHlsZS1nbnV+CislcGF0Y2gxOCAtcDAgLWIg LmphdmEtbGliZG90ZG90bGlifgorJXBhdGNoMTkgLXAwIC1iIC5wcjI4NzA5fgorJXBhdGNoMjAg LXAwIC1iIC5wcjI4NzU1fgorJXBhdGNoMjEgLXAwIC1iIC5wcjI3ODk4fgorJXBhdGNoMjIgLXAw IC1iIC5wcjI3NTY3fgorJXBhdGNoMjMgLXAwIC1iIC5wcjI5MjcyfgorJXBhdGNoMjQgLXAwIC1i IC5wcjI5MDU5fgorJXBhdGNoMjUgLXAwIC1iIC5zdHJuY2F0LWNoa34KKyVwYXRjaDI2IC1wMCAt YiAucHIyOTI5OX4KKyVwYXRjaDI3IC1wMCAtYiAuamF2YS1ib2d1cy1kZWJ1Z2xpbmV+CislcGF0 Y2gyOCAtcDAgLWIgLmxpYmphdmEtdmlzaWJpbGl0eX4KKyVwYXRjaDI5IC1wMCAtYiAucHIzMTE4 N34KKyVwYXRjaDMwIC1wMCAtYiAucmgyMzE4MTh+CislcGF0Y2gzMSAtcDAgLWIgLnJoMjM0NTE1 fgogCiBzZWQgLWkgLWUgJ3MvNFwuMVwuMy80LjEuMi8nIGdjYy9CQVNFLVZFUiBnY2MvdmVyc2lv bi5jCiBzZWQgLWkgLWUgJ3MvIiAoUmVkIEhhdFteKV0qKSIvIiAoUmVkIEhhdCAle3ZlcnNpb259 LSV7Z2NjX3JlbGVhc2V9KSIvJyBnY2MvdmVyc2lvbi5jCkBAIC0xNTgyLDYgKzE1NzEsMTcgQEAg ZmkKICVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2xpYm11ZGZsYXAvQ2hhbmdlTG9nKgogCiAlY2hh bmdlbG9nCisqIFR1ZSBBcHIgIDMgMjAwNyBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjEuMi04CistIHVwZGF0ZSBmcm9tIGdjYy00XzEtYnJhbmNoICgtcjEyMzI0NToxMjM0NjIp CisgIC0gUFJzIHRhcmdldC8zMTEzNywgdGFyZ2V0LzMxMzgwCistIGxpYmphdmEgZml4ZXMgKFBS cyBjbGFzc3BhdGgvMzEzMDIsIGNsYXNzcGF0aC8zMTMwMywgbGliZ2NqLzI5ODY5KQorLSBqYXZh IFByb3h5IGZpeCAoQW5kcmV3IEhhbGV5LCAjMjM0ODM2KQorLSBkZXF1ZTo6ZXJhc2UgZml4IChT dGV2ZSBMb0Jhc3NvLCBQYW9sbyBDYXJsaW5pLCAjMjM0NTE1KQorLSBmaXggamF2YSBmb250IHJl bmRlcmluZyAoRnJhbmNpcyBLdW5nLCAjMjMxODE4KQorLSBmaXggYSByZWdyZXNzaW9uIGNhdXNl ZCBieSBDKysgdmlzaWJpbGl0eSBmaXhlcyAoSmFzb24gTWVycmlsbCwKKyAgUFIgYysrLzMxMTg3 KQorLSB1c2UgaGlkZGVuIHZpc2liaWxpdHkgZm9yIG5vbi1uYXRpdmUgamF2YSBwcml2YXRlIG1l dGhvZHMgKEFuZHJldyBIYWxleSkKKwogKiBUaHUgTWFyIDI5IDIwMDcgSmFrdWIgSmVsaW5layA8 amFrdWJAcmVkaGF0LmNvbT4gNC4xLjItNwogLSBtYWtlIHN1cmUgYm9laG0tZ2MgZG9lc24ndCB1 c2UgUFJPVF9FWEVDICgjMjAyMjA5KQogLSBmaXggQysrIElDRSBvbiBpID8gaiA6IGsgPSAodm9p ZCkgMDsgKFBSIGMrKy8zMDg0NykKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRl eCBlMmFmNTFmLi41YmE2YjkxIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAg LTEgKzEgQEAKLWY0OWFhNjgwNjIzYTNlZjQ2ZmY0MTFkNjFmNGEzZjk5ICBnY2MtNC4xLjItMjAw NzAzMjkudGFyLmJ6MgorYjc5ZjliYTA2ZWU4MDk3YWNlMzVkMGIzMzhkZDkzMzIgIGdjYy00LjEu Mi0yMDA3MDQwMy50YXIuYnoyCg==