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: Orion Poplawski To: git-commits@fedoraproject.org Subject: [rpms/plplot] rawhide: Build with Tcl/Tk 9 (rhbz#2337750) Date: Sat, 01 Aug 2026 03:01:34 GMT Message-ID: <178555329414.1.556483845197534338.rpms-plplot-cc6299065637@fedoraproject.org> List-ID: X-Git-Repo: rpms/plplot X-Git-Branch: rawhide X-Git-Rev: cc6299065637550fe66a0e4a52d95ae5dadffe0a QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcGxwbG90CkJyYW5j aCA6IHJhd2hpZGUKQ29tbWl0IDogY2M2Mjk5MDY1NjM3NTUwZmU2NmEwZTRhNTJkOTVhZTVkYWRm ZmUwYQpBdXRob3IgOiBPcmlvbiBQb3BsYXdza2kgPG9yaW9uQG53cmEuY29tPgpEYXRlICAgOiAy MDI2LTA3LTMxVDIxOjAxOjA5LTA2OjAwClN0YXRzICA6ICsxMjA1Ly0yIGluIDIgZmlsZShzKQpV UkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3BscGxvdC9jL2NjNjI5 OTA2NTYzNzU1MGZlNjZhMGU0YTUyZDk1YWU1ZGFkZmZlMGE/YnJhbmNoPXJhd2hpZGUKCkxvZzoK QnVpbGQgd2l0aCBUY2wvVGsgOSAocmhieiMyMzM3NzUwKQoKLS0tCmRpZmYgLS1naXQgYS9wbHBs b3QtdGNsOS5wYXRjaCBiL3BscGxvdC10Y2w5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmE0Yjc3N2UKLS0tIC9kZXYvbnVsbAorKysgYi9wbHBsb3QtdGNsOS5wYXRj aApAQCAtMCwwICsxLDExOTggQEAKK2RpZmYgLXVwIHBscGxvdC01LjE1LjAvYmluZGluZ3MvdGNs L3RjbEFQSS5jLnRjbDkgcGxwbG90LTUuMTUuMC9iaW5kaW5ncy90Y2wvdGNsQVBJLmMKKy0tLSBw bHBsb3QtNS4xNS4wL2JpbmRpbmdzL3RjbC90Y2xBUEkuYy50Y2w5CTIwMTktMDYtMDEgMTc6MjQ6 MzMuMDAwMDAwMDAwIC0wNjAwCisrKysgcGxwbG90LTUuMTUuMC9iaW5kaW5ncy90Y2wvdGNsQVBJ LmMJMjAyNi0wNy0zMCAxNzo0ODozMS4yOTE2NDc3OTYgLTA2MDAKK0BAIC00Nyw2ICs0NywxMiBA QAorIAorICNpbmNsdWRlICJ0Y2xnZW4uaCIKKyAKKysjaWYgZGVmaW5lZCggVENMX01BSk9SX1ZF UlNJT04gKSAmJiBUQ0xfTUFKT1JfVkVSU0lPTiA+PSA5CisrLyogVGNsIDkgcHJvdmlkZXMgVGNs X1NpemUgZGlyZWN0bHkuICovCisrI2Vsc2UKKyt0eXBlZGVmIGludCBUY2xfU2l6ZTsKKysjZW5k aWYKKysKKyAvLyBJbmNsdWRlIG5vbi1yZWRhY3RlZCBBUEk/CisgLy8jZGVmaW5lIFBMUExPVFRD TFRLX05PTl9SRURBQ1RFRF9BUEkKKyAvLyBFeGNsdWRlIG5vbi1yZWRhY3RlZCBBUEk/CitAQCAt Mzg0MCw3ICszODQ2LDcgQEAgcGxtYXBDbWQoIENsaWVudERhdGEgUExfVU5VU0VEKCBjbGllbnRE YQorIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKyBzdGF0aWMgaW50ICoKKy1HZXRFbnRyaWVzKCBU Y2xfSW50ZXJwICppbnRlcnAsIGNvbnN0IGNoYXIgKnN0cmluZywgaW50ICpuICkKKytHZXRFbnRy aWVzKCBUY2xfSW50ZXJwICppbnRlcnAsIGNvbnN0IGNoYXIgKnN0cmluZywgVGNsX1NpemUgKm4g KQorIHsKKyAgICAgdGNsTWF0cml4ICptYXRpOworICAgICBpbnQgICAgICAgYXJnYzsKK0BAIC0z ODg5LDEyICszODk1LDEyIEBAIHN0YXRpYyBpbnQKKyBwbG1hcGZpbGxDbWQoIENsaWVudERhdGEg UExfVU5VU0VEKCBjbGllbnREYXRhICksIFRjbF9JbnRlcnAgKmludGVycCwKKyAgICAgICAgICAg ICAgIGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10gKQorIHsKKy0gICAgUExGTFQgIG1pbmxv bmcsIG1heGxvbmcsIG1pbmxhdCwgbWF4bGF0OworLSAgICBQTElOVCAgdHJhbnNmb3JtOworLSAg ICBQTElOVCAgaWR4bmFtZTsKKy0gICAgUExJTlQgICplbnRyaWVzOworLSAgICBQTElOVCAgbmVu dHJpZXM7CistICAgIGRvdWJsZSBkbWlubG9uZzsKKysgICAgUExGTFQgICAgbWlubG9uZywgbWF4 bG9uZywgbWlubGF0LCBtYXhsYXQ7CisrICAgIFBMSU5UICAgIHRyYW5zZm9ybTsKKysgICAgUExJ TlQgICAgaWR4bmFtZTsKKysgICAgUExJTlQgICAgKmVudHJpZXM7CisrICAgIFRjbF9TaXplIG5l bnRyaWVzOworKyAgICBkb3VibGUgICBkbWlubG9uZzsKKyAKKyAgICAgcmV0dXJuX2NvZGUgPSBU Q0xfT0s7CisgCitAQCAtNDAwMSwxMiArNDAwNywxMiBAQCBzdGF0aWMgaW50CisgcGxtYXBsaW5l Q21kKCBDbGllbnREYXRhIFBMX1VOVVNFRCggY2xpZW50RGF0YSApLCBUY2xfSW50ZXJwICppbnRl cnAsCisgICAgICAgICAgICAgICBpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdICkKKyB7Cist ICAgIFBMRkxUICBtaW5sb25nLCBtYXhsb25nLCBtaW5sYXQsIG1heGxhdDsKKy0gICAgUExJTlQg IHRyYW5zZm9ybTsKKy0gICAgUExJTlQgIGlkeG5hbWU7CistICAgIFBMSU5UICAqZW50cmllczsK Ky0gICAgUExJTlQgIG5lbnRyaWVzOworLSAgICBkb3VibGUgZG1pbmxvbmc7CisrICAgIFBMRkxU ICAgIG1pbmxvbmcsIG1heGxvbmcsIG1pbmxhdCwgbWF4bGF0OworKyAgICBQTElOVCAgICB0cmFu c2Zvcm07CisrICAgIFBMSU5UICAgIGlkeG5hbWU7CisrICAgIFBMSU5UICAgICplbnRyaWVzOwor KyAgICBUY2xfU2l6ZSBuZW50cmllczsKKysgICAgZG91YmxlICAgZG1pbmxvbmc7CisgCisgICAg IHJldHVybl9jb2RlID0gVENMX09LOworIAorQEAgLTQxMjAsNyArNDEyNiw3IEBAIHBsbWFwc3Ry aW5nQ21kKCBDbGllbnREYXRhIFBMX1VOVVNFRCggY2wKKyAgICAgUExJTlQgICAgICB0cmFuc2Zv cm07CisgICAgIFBMSU5UICAgICAgaWR4bmFtZTsKKyAgICAgUExJTlQgICAgICAqZW50cmllczsK Ky0gICAgUExJTlQgICAgICBuZW50cmllczsKKysgICAgVGNsX1NpemUgICBuZW50cmllczsKKyAg ICAgY29uc3QgY2hhciAqc3RyaW5nOworICAgICBkb3VibGUgICAgIGRtaW5sb25nOworIAorQEAg LTQ3ODEsNyArNDc4Nyw3IEBAIHBsc3RyaXBjQ21kKCBDbGllbnREYXRhIFBMX1VOVVNFRCggY2xp ZW4KKyAgICAgUExCT09MICAgICB5X2FzY2wsIGFjYzsKKyAgICAgUExJTlQgICAgICBjb2xib3gs IGNvbGxhYjsKKyAgICAgUExJTlQgICAgICBjb2xsaW5lWzRdLCBzdHlsaW5lWzRdOworLSAgICBp bnQgICAgICAgIG5sZWdlbmQ7CisrICAgIFRjbF9TaXplICAgbmxlZ2VuZDsKKyAgICAgY29uc3Qg Y2hhciAqKmxlZ2xpbmU7CisgICAgIGNvbnN0IGNoYXIgKmxhYng7CisgICAgIGNvbnN0IGNoYXIg KmxhYnk7CitAQCAtNDk3Myw3ICs0OTc5LDcgQEAgcGxzbGFiZWxmdW5jQ21kKCBDbGllbnREYXRh IFBMX1VOVVNFRCggYworIC8vIChkYXRhIGFyZ3VtZW50IGlzIG9wdGlvbmFsKQorIC8vLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAKKy1zdGF0aWMgaW50ICphcmd2X3RvX2ludHMoIFRjbF9JbnRlcnAgKmlu dGVycCwgY29uc3QgY2hhciAqbGlzdF9udW1iZXJzLCBpbnQgKm51bWJlciApCisrc3RhdGljIGlu dCAqYXJndl90b19pbnRzKCBUY2xfSW50ZXJwICppbnRlcnAsIGNvbnN0IGNoYXIgKmxpc3RfbnVt YmVycywgVGNsX1NpemUgKm51bWJlciApCisgeworICAgICBpbnQgICAgIGksIHJldGNvZGU7Cisg ICAgIGludCAgICAgKmFycmF5OworQEAgLTUwMDAsNyArNTAwNiw3IEBAIHN0YXRpYyBpbnQgKmFy Z3ZfdG9faW50cyggVGNsX0ludGVycCAqaW4KKyAgICAgcmV0dXJuIGFycmF5OworIH0KKyAKKy1z dGF0aWMgUExGTFQgKmFyZ3ZfdG9fUExGTFRzKCBUY2xfSW50ZXJwICppbnRlcnAsIGNvbnN0IGNo YXIgKmxpc3RfbnVtYmVycywgaW50ICpudW1iZXIgKQorK3N0YXRpYyBQTEZMVCAqYXJndl90b19Q TEZMVHMoIFRjbF9JbnRlcnAgKmludGVycCwgY29uc3QgY2hhciAqbGlzdF9udW1iZXJzLCBUY2xf U2l6ZSAqbnVtYmVyICkKKyB7CisgICAgIGludCAgICAgaSwgcmV0Y29kZTsKKyAgICAgUExGTFQg ICAqYXJyYXk7CitAQCAtNTAyOSwxNSArNTAzNSwxNSBAQCBzdGF0aWMgUExGTFQgKmFyZ3ZfdG9f UExGTFRzKCBUY2xfSW50ZXJwCisgICAgIHJldHVybiBhcnJheTsKKyB9CisgCistc3RhdGljIGNo YXIgKiphcmd2X3RvX2NoYXJzKCBUY2xfSW50ZXJwICppbnRlcnAsIGNvbnN0IGNoYXIgKmxpc3Rf c3RyaW5ncywgaW50ICpudW1iZXIgKQorK3N0YXRpYyBjaGFyICoqYXJndl90b19jaGFycyggVGNs X0ludGVycCAqaW50ZXJwLCBjb25zdCBjaGFyICpsaXN0X3N0cmluZ3MsIFRjbF9TaXplICpudW1i ZXIgKQorIHsKKy0gICAgaW50ICAgICBpLCByZXRjb2RlOworLSAgICBjaGFyICAgICoqYXJyYXk7 CistICAgIGNoYXIgICAgKnN0cmluZzsKKy0gICAgaW50ICAgICBsZW5ndGg7CistICAgIGludCAg ICAgaWR4OworLSAgICBUY2xfT2JqICpsaXN0OworLSAgICBUY2xfT2JqICplbGVtOworKyAgICBp bnQgICAgICBpLCByZXRjb2RlOworKyAgICBjaGFyICAgICAqKmFycmF5OworKyAgICBjaGFyICAg ICAqc3RyaW5nOworKyAgICBUY2xfU2l6ZSBsZW5ndGg7CisrICAgIGludCAgICAgIGlkeDsKKysg ICAgVGNsX09iaiAgKmxpc3Q7CisrICAgIFRjbF9PYmogICplbGVtOworIAorICAgICBsaXN0ID0g VGNsX05ld1N0cmluZ09iaiggbGlzdF9zdHJpbmdzLCAoIC0xICkgKTsKKyAKK0BAIC01MDg4LDkg KzUwOTQsOSBAQCBwbGxlZ2VuZENtZCggQ2xpZW50RGF0YSBQTF9VTlVTRUQoIGNsaWVuCisgICAg IGNoYXIgICAgKip0ZXh0OworICAgICBjaGFyICAgICoqc3ltYm9sczsKKyAKKy0gICAgaW50ICAg ICBudW1iZXJfb3B0czsKKy0gICAgaW50ICAgICBudW1iZXJfdGV4dHM7CistICAgIGludCAgICAg ZHVtbXk7CisrICAgIFRjbF9TaXplIG51bWJlcl9vcHRzOworKyAgICBUY2xfU2l6ZSBudW1iZXJf dGV4dHM7CisrICAgIFRjbF9TaXplIGR1bW15OworICAgICBkb3VibGUgIHZhbHVlOworIAorICAg ICBUY2xfT2JqICpkYXRhWzJdOworQEAgLTUyMDgsMjQgKzUyMTQsMjQgQEAgcGxjb2xvcmJhckNt ZCggQ2xpZW50RGF0YSBQTF9VTlVTRUQoIGNsaQorICAgICBQTEZMVCAgICAgbG93X2NhcF9jb2xv ciwgaGlnaF9jYXBfY29sb3I7CisgICAgIFBMSU5UICAgICBjb250X2NvbG9yOworICAgICBQTEZM VCAgICAgY29udF93aWR0aDsKKy0gICAgUExJTlQgICAgIG5fbGFiZWxfb3B0czsKKy0gICAgUExJ TlQgICAgIG5fbGFiZWxzOworKyAgICBUY2xfU2l6ZSAgbl9sYWJlbF9vcHRzOworKyAgICBUY2xf U2l6ZSAgbl9sYWJlbHM7CisgICAgIFBMSU5UICAgICAqbGFiZWxfb3B0czsKKyAgICAgY2hhciAg ICAgICoqbGFiZWxzOworLSAgICBQTElOVCAgICAgbl9heGlzX29wdHM7CistICAgIFBMSU5UICAg ICBuX3RpY2tzOworLSAgICBQTElOVCAgICAgbl9zdWJfdGlja3M7CisrICAgIFRjbF9TaXplICBu X2F4aXNfb3B0czsKKysgICAgVGNsX1NpemUgIG5fdGlja3M7CisrICAgIFRjbF9TaXplICBuX3N1 Yl90aWNrczsKKyAgICAgUExJTlQgICAgIG5fYXhlczsKKyAgICAgY2hhciAgICAgICoqYXhpc19v cHRzOworICAgICBQTEZMVCAgICAgKnRpY2tzOworICAgICBQTElOVCAgICAgKnN1Yl90aWNrczsK KyAgICAgVGNsX09iaiAgICpsaXN0X3ZlY3RvcnM7CistICAgIGludCAgICAgICBuX3ZlY3RvcnM7 CisrICAgIFRjbF9TaXplICBuX3ZlY3RvcnM7CisgICAgIFBMSU5UICAgICAqdmVjdG9yX3NpemVz OworICAgICBQTEZMVCAgICAgKip2ZWN0b3JfdmFsdWVzOworICAgICBpbnQgICAgICAgcmV0Y29k ZTsKKyAgICAgaW50ICAgICAgIGk7CistICAgIGludCAgICAgICBsZW5ndGg7CisrICAgIFRjbF9T aXplICBsZW5ndGg7CisgICAgIFRjbF9PYmogICAqdmVjdG9yOworICAgICB0Y2xNYXRyaXggKnZl Y3RvclB0cjsKKyAKK2RpZmYgLXVwIHBscGxvdC01LjE1LjAvYmluZGluZ3MvdGNsL3RjbE1haW4u Yy50Y2w5IHBscGxvdC01LjE1LjAvYmluZGluZ3MvdGNsL3RjbE1haW4uYworLS0tIHBscGxvdC01 LjE1LjAvYmluZGluZ3MvdGNsL3RjbE1haW4uYy50Y2w5CTIwMTktMDYtMDEgMTc6MjQ6MzMuMDAw MDAwMDAwIC0wNjAwCisrKysgcGxwbG90LTUuMTUuMC9iaW5kaW5ncy90Y2wvdGNsTWFpbi5jCTIw MjYtMDctMzAgMTc6NDg6MzEuMjkyNDYyNzczIC0wNjAwCitAQCAtNDgsNiArNDgsMTIgQEAKKyAv LyBSZXF1aXJlZCBmb3IgZGVmaW5pdGlvbiBvZiBQTF9VTlVTRUQgbWFjcm8KKyAjaW5jbHVkZSAi cGxwbG90UC5oIgorIAorKyNpZiBkZWZpbmVkKCBUQ0xfTUFKT1JfVkVSU0lPTiApICYmIFRDTF9N QUpPUl9WRVJTSU9OID49IDkKKysvKiBUY2wgOSBwcm92aWRlcyBUY2xfU2l6ZSBkaXJlY3RseS4g Ki8KKysjZWxzZQorK3R5cGVkZWYgaW50IFRjbF9TaXplOworKyNlbmRpZgorKworICNkZWZpbmUg VGNsRm9ybWF0SW50KCBidWYsIG4gKSAgICBzcHJpbnRmKCAoIGJ1ZiApLCAiJWxkIiwgKGxvbmcp ICggbiApICkKKyAKKyAjIHVuZGVmIFRDTF9TVE9SQUdFX0NMQVNTCitAQCAtNzQsOCArODAsOCBA QAorIC8vIG9uIHNvbWUgc3lzdGVtcywgc28gaXQncyBiZXR0ZXIganVzdCB0byBsZWF2ZSBpdCBv dXQuCisgLy8KKyAKKy1leHRlcm4gaW50IGlzYXR0eSBfQU5TSV9BUkdTXyggKCBpbnQgZmQgKSAp OworLWV4dGVybiBjaGFyICogICAgICAgICAgIHN0cmNweSBfQU5TSV9BUkdTXyggKCBjaGFyICpk c3QsIENPTlNUIGNoYXIgKnNyYyApICk7CisrZXh0ZXJuIGludCBpc2F0dHkgKCBpbnQgZmQgKTsK KytleHRlcm4gY2hhciAqICAgICAgICAgICBzdHJjcHkgKCBjaGFyICpkc3QsIGNvbnN0IGNoYXIg KnNyYyApOworIAorIHN0YXRpYyBjb25zdCBjaGFyICp0Y2xTdGFydHVwU2NyaXB0RmlsZU5hbWUg PSBOVUxMOworIAorQEAgLTIxNyw3ICsyMjMsOCBAQCBwbHRjbE1haW4oIGludCBhcmdjLCBjaGFy ICoqYXJndiwgY2hhciAqCisgICAgIFRjbF9PYmogICAgICpyZXN1bHRQdHI7CisgICAgIFRjbF9P YmogICAgICpjb21tYW5kUHRyID0gTlVMTDsKKyAgICAgY2hhciAgICAgICAgYnVmZmVyWzEwMDBd LCAqYXJnczsKKy0gICAgaW50ICAgICAgICAgY29kZSwgZ290UGFydGlhbCwgdHR5LCBsZW5ndGg7 CisrICAgIGludCAgICAgICAgIGNvZGUsIGdvdFBhcnRpYWwsIHR0eTsKKysgICAgVGNsX1NpemUg ICAgbGVuZ3RoOworICAgICBpbnQgICAgICAgICBleGl0Q29kZSA9IDA7CisgICAgIFRjbF9DaGFu bmVsIGluQ2hhbm5lbCwgb3V0Q2hhbm5lbCwgZXJyQ2hhbm5lbDsKKyAgICAgVGNsX0ludGVycCAg KmludGVycDsKK0BAIC0yNTEsNyArMjU4LDcgQEAgcGx0Y2xNYWluKCBpbnQgYXJnYywgY2hhciAq KmFyZ3YsIGNoYXIgKgorICAgICAgICAgICAgIGFyZ3YrKzsKKyAgICAgICAgIH0KKyAgICAgfQor LSAgICBhcmdzID0gVGNsX01lcmdlKCBhcmdjIC0gMSwgKCBDT05TVCBjaGFyICogQ09OU1QgKiAp YXJndiArIDEgKTsKKysgICAgYXJncyA9IFRjbF9NZXJnZSggYXJnYyAtIDEsICggY29uc3QgY2hh ciAqIGNvbnN0ICogKWFyZ3YgKyAxICk7CisgICAgIFRjbF9FeHRlcm5hbFRvVXRmRFN0cmluZygg TlVMTCwgYXJncywgLTEsICZhcmdTdHJpbmcgKTsKKyAgICAgVGNsX1NldFZhciggaW50ZXJwLCAi YXJndiIsIFRjbF9EU3RyaW5nVmFsdWUoICZhcmdTdHJpbmcgKSwgVENMX0dMT0JBTF9PTkxZICk7 CisgICAgIFRjbF9EU3RyaW5nRnJlZSggJmFyZ1N0cmluZyApOworZGlmZiAtdXAgcGxwbG90LTUu MTUuMC9iaW5kaW5ncy90Y2wvdGNsTWF0cml4LmMudGNsOSBwbHBsb3QtNS4xNS4wL2JpbmRpbmdz L3RjbC90Y2xNYXRyaXguYworLS0tIHBscGxvdC01LjE1LjAvYmluZGluZ3MvdGNsL3RjbE1hdHJp eC5jLnRjbDkJMjAxOS0wNi0wMSAxNzoyNDozMy4wMDAwMDAwMDAgLTA2MDAKKysrKyBwbHBsb3Qt NS4xNS4wL2JpbmRpbmdzL3RjbC90Y2xNYXRyaXguYwkyMDI2LTA3LTMwIDE3OjQ4OjMxLjI5Mjg4 NDU4OCAtMDYwMAorQEAgLTQwLDYgKzQwLDEyIEBACisgI2luY2x1ZGUgInBsZGxsLmgiCisgI2lu Y2x1ZGUgInRjbE1hdHJpeC5oIgorIAorKyNpZiBkZWZpbmVkKCBUQ0xfTUFKT1JfVkVSU0lPTiAp ICYmIFRDTF9NQUpPUl9WRVJTSU9OID49IDkKKysvKiBUY2wgOSBwcm92aWRlcyBUY2xfU2l6ZSBk aXJlY3RseS4gKi8KKysjZWxzZQorK3R5cGVkZWYgaW50IFRjbF9TaXplOworKyNlbmRpZgorKwor IC8vIENvb2wgbWF0aCBtYWNyb3MKKyAKKyAjaWZuZGVmIE1BWAorQEAgLTUxMyw3ICs1MTksNyBA QCBzdGF0aWMgaW50IE1hdHJpeEFzc2lnbiggVGNsX0ludGVycCogaW50CisgICAgIHN0YXRpYyBp bnQgdmVyYm9zZSA9IDA7CisgCisgICAgIGNvbnN0IGNoYXIgKiogbmV3YXJnczsKKy0gICAgaW50 ICAgICAgICBudW1uZXdhcmdzOworKyAgICBUY2xfU2l6ZSAgIG51bW5ld2FyZ3M7CisgICAgIGlu dCAgICAgICAgaTsKKyAKKyAgICAgaWYgKCB2ZXJib3NlICkKK2RpZmYgLXVwIHBscGxvdC01LjE1 LjAvYmluZGluZ3MvdGsvcGxmcmFtZS5jLnRjbDkgcGxwbG90LTUuMTUuMC9iaW5kaW5ncy90ay9w bGZyYW1lLmMKKy0tLSBwbHBsb3QtNS4xNS4wL2JpbmRpbmdzL3RrL3BsZnJhbWUuYy50Y2w5CTIw MTktMDYtMDEgMTc6MjQ6MzMuMDAwMDAwMDAwIC0wNjAwCisrKysgcGxwbG90LTUuMTUuMC9iaW5k aW5ncy90ay9wbGZyYW1lLmMJMjAyNi0wNy0zMCAxODozNTozOS4zMzc5OTg1MzYgLTA2MDAKK0BA IC0yMDksMjkgKzIwOSwyOSBAQCB0eXBlZGVmIHN0cnVjdAorIAorIHN0YXRpYyBUa19Db25maWdT cGVjIGNvbmZpZ1NwZWNzW10gPSB7CisgICAgIHsgVEtfQ09ORklHX0JPUkRFUiwgICAgICAgICIt YmFja2dyb3VuZCIsICAgICAiYmFja2dyb3VuZCIsICAgICAiQmFja2dyb3VuZCIsCistICAgICAg REVGX1BMRlJBTUVfQkdfQ09MT1IsIFRrX09mZnNldCggUGxGcmFtZSwgYm9yZGVyICksCisrICAg ICAgREVGX1BMRlJBTUVfQkdfQ09MT1IsIG9mZnNldG9mKCBQbEZyYW1lLCBib3JkZXIgKSwKKyAg ICAgICBUS19DT05GSUdfQ09MT1JfT05MWSwgTlVMTCB9LAorIC8vCisgLy8gIHtUS19DT05GSUdf Q09MT1IsIChjaGFyICopIE5VTEwsIChjaGFyICopIE5VTEwsIChjaGFyICopIE5VTEwsCistLy8g ICAgICAoY2hhciAqKSBOVUxMLCBUa19PZmZzZXQoUGxGcmFtZSwgYmdDb2xvciksCisrLy8gICAg ICAoY2hhciAqKSBOVUxMLCBvZmZzZXRvZihQbEZyYW1lLCBiZ0NvbG9yKSwKKyAvLyAgICAgIFRL X0NPTkZJR19DT0xPUl9PTkxZfSwKKyAvLworICNpZm5kZWYgTUFDX1RDTAorICAgICB7IFRLX0NP TkZJR19DT0xPUiwgICAgICAgICAiLXBsYmciLCAgICAgICAgICAgInBsYmFja2dyb3VuZCIsICAg IlBsYmFja2dyb3VuZCIsCistICAgICAgREVGX1BMRlJBTUVfQkdfQ09MT1IsIFRrX09mZnNldCgg UGxGcmFtZSwgYmdDb2xvciApLAorKyAgICAgIERFRl9QTEZSQU1FX0JHX0NPTE9SLCBvZmZzZXRv ZiggUGxGcmFtZSwgYmdDb2xvciApLAorICAgICAgIFRLX0NPTkZJR19DT0xPUl9PTkxZLCBOVUxM IH0sCisgI2VuZGlmCisgICAgIHsgVEtfQ09ORklHX0JPUkRFUiwgICAgICAgICItYmFja2dyb3Vu ZCIsICAgICAiYmFja2dyb3VuZCIsICAgICAiQmFja2dyb3VuZCIsCistICAgICAgREVGX1BMRlJB TUVfQkdfTU9OTywgVGtfT2Zmc2V0KCBQbEZyYW1lLCBib3JkZXIgKSwKKysgICAgICBERUZfUExG UkFNRV9CR19NT05PLCBvZmZzZXRvZiggUGxGcmFtZSwgYm9yZGVyICksCisgICAgICAgVEtfQ09O RklHX01PTk9fT05MWSwgTlVMTCB9LAorIC8vCisgLy8gIHtUS19DT05GSUdfQ09MT1IsIChjaGFy ICopIE5VTEwsIChjaGFyICopIE5VTEwsIChjaGFyICopIE5VTEwsCistLy8gICAgICAoY2hhciAq KSBOVUxMLCBUa19PZmZzZXQoUGxGcmFtZSwgYmdDb2xvciksCisrLy8gICAgICAoY2hhciAqKSBO VUxMLCBvZmZzZXRvZihQbEZyYW1lLCBiZ0NvbG9yKSwKKyAvLyAgICAgIFRLX0NPTkZJR19NT05P X09OTFl9LAorIC8vCisgI2lmbmRlZiBNQUNfVENMCisgICAgIHsgVEtfQ09ORklHX0NPTE9SLCAg ICAgICAgICItcGxiZyIsICAgICAgICAgICAoY2hhciAqKSBOVUxMLCAgICAoY2hhciAqKSBOVUxM LAorLSAgICAgIERFRl9QTEZSQU1FX0JHX01PTk8sIFRrX09mZnNldCggUGxGcmFtZSwgYmdDb2xv ciApLAorKyAgICAgIERFRl9QTEZSQU1FX0JHX01PTk8sIG9mZnNldG9mKCBQbEZyYW1lLCBiZ0Nv bG9yICksCisgICAgICAgVEtfQ09ORklHX01PTk9fT05MWSwgTlVMTCB9LAorICNlbmRpZgorICAg ICB7IFRLX0NPTkZJR19TWU5PTllNLCAgICAgICAiLWJkIiwgICAgICAgICAgICAgImJvcmRlcldp ZHRoIiwgICAgKGNoYXIgKikgTlVMTCwKK0BAIC0yMzksMjcgKzIzOSwyNyBAQCBzdGF0aWMgVGtf Q29uZmlnU3BlYyBjb25maWdTcGVjc1tdID0geworICAgICB7IFRLX0NPTkZJR19TWU5PTllNLCAg ICAgICAiLWJnIiwgICAgICAgICAgICAgImJhY2tncm91bmQiLCAgICAgKGNoYXIgKikgTlVMTCwK KyAgICAgICAoY2hhciAqKSBOVUxMLCAwLCAwLCBOVUxMIH0sCisgICAgIHsgVEtfQ09ORklHX1BJ WEVMUywgICAgICAgICItYm9yZGVyd2lkdGgiLCAgICAiYm9yZGVyV2lkdGgiLCAgICAiQm9yZGVy V2lkdGgiLAorLSAgICAgIERFRl9QTEZSQU1FX0JPUkRFUl9XSURUSCwgVGtfT2Zmc2V0KCBQbEZy YW1lLCBib3JkZXJXaWR0aCApLCAwLCBOVUxMIH0sCisrICAgICAgREVGX1BMRlJBTUVfQk9SREVS X1dJRFRILCBvZmZzZXRvZiggUGxGcmFtZSwgYm9yZGVyV2lkdGggKSwgMCwgTlVMTCB9LAorICAg ICB7IFRLX0NPTkZJR19BQ1RJVkVfQ1VSU09SLCAiLWN1cnNvciIsICAgICAgICAgImN1cnNvciIs ICAgICAgICAgIkN1cnNvciIsCistICAgICAgREVGX1BMRlJBTUVfQ1VSU09SLCBUa19PZmZzZXQo IFBsRnJhbWUsIGN1cnNvciApLCBUS19DT05GSUdfTlVMTF9PSywgTlVMTCB9LAorKyAgICAgIERF Rl9QTEZSQU1FX0NVUlNPUiwgb2Zmc2V0b2YoIFBsRnJhbWUsIGN1cnNvciApLCBUS19DT05GSUdf TlVMTF9PSywgTlVMTCB9LAorICAgICB7IFRLX0NPTkZJR19TVFJJTkcsICAgICAgICAiLWJvcGNt ZCIsICAgICAgICAgImJvcGNtZCIsICAgICAgICAgIlBnQ29tbWFuZCIsCistICAgICAgKGNoYXIg KikgTlVMTCwgVGtfT2Zmc2V0KCBQbEZyYW1lLCBib3BDbWQgKSwgVEtfQ09ORklHX05VTExfT0ss IE5VTEwgfSwKKysgICAgICAoY2hhciAqKSBOVUxMLCBvZmZzZXRvZiggUGxGcmFtZSwgYm9wQ21k ICksIFRLX0NPTkZJR19OVUxMX09LLCBOVUxMIH0sCisgICAgIHsgVEtfQ09ORklHX1NUUklORywg ICAgICAgICItZW9wY21kIiwgICAgICAgICAiZW9wY21kIiwgICAgICAgICAiUGdDb21tYW5kIiwK Ky0gICAgICAoY2hhciAqKSBOVUxMLCBUa19PZmZzZXQoIFBsRnJhbWUsIGVvcENtZCApLCBUS19D T05GSUdfTlVMTF9PSywgTlVMTCB9LAorKyAgICAgIChjaGFyICopIE5VTEwsIG9mZnNldG9mKCBQ bEZyYW1lLCBlb3BDbWQgKSwgVEtfQ09ORklHX05VTExfT0ssIE5VTEwgfSwKKyAgICAgeyBUS19D T05GSUdfUElYRUxTLCAgICAgICAgIi1oZWlnaHQiLCAgICAgICAgICJoZWlnaHQiLCAgICAgICAg ICJIZWlnaHQiLAorLSAgICAgIERFRl9QTEZSQU1FX0hFSUdIVCwgVGtfT2Zmc2V0KCBQbEZyYW1l LCBoZWlnaHQgKSwgMCwgTlVMTCB9LAorKyAgICAgIERFRl9QTEZSQU1FX0hFSUdIVCwgb2Zmc2V0 b2YoIFBsRnJhbWUsIGhlaWdodCApLCAwLCBOVUxMIH0sCisgICAgIHsgVEtfQ09ORklHX1JFTElF RiwgICAgICAgICItcmVsaWVmIiwgICAgICAgICAicmVsaWVmIiwgICAgICAgICAiUmVsaWVmIiwK Ky0gICAgICBERUZfUExGUkFNRV9SRUxJRUYsIFRrX09mZnNldCggUGxGcmFtZSwgcmVsaWVmICks IDAsIE5VTEwgfSwKKysgICAgICBERUZfUExGUkFNRV9SRUxJRUYsIG9mZnNldG9mKCBQbEZyYW1l LCByZWxpZWYgKSwgMCwgTlVMTCB9LAorICAgICB7IFRLX0NPTkZJR19QSVhFTFMsICAgICAgICAi LXdpZHRoIiwgICAgICAgICAgIndpZHRoIiwgICAgICAgICAgIldpZHRoIiwKKy0gICAgICBERUZf UExGUkFNRV9XSURUSCwgVGtfT2Zmc2V0KCBQbEZyYW1lLCB3aWR0aCApLCAwLCBOVUxMIH0sCisr ICAgICAgREVGX1BMRlJBTUVfV0lEVEgsIG9mZnNldG9mKCBQbEZyYW1lLCB3aWR0aCApLCAwLCBO VUxMIH0sCisgICAgIHsgVEtfQ09ORklHX0JPT0xFQU4sICAgICAgICIteGhhaXJzIiwgICAgICAg ICAoY2hhciAqKSBOVUxMLCAgICAoY2hhciAqKSBOVUxMLAorLSAgICAgICIwIiwgVGtfT2Zmc2V0 KCBQbEZyYW1lLCB4aGFpcnMgKSwgVEtfQ09ORklHX0RPTlRfU0VUX0RFRkFVTFQsIE5VTEwgfSwK KysgICAgICAiMCIsIG9mZnNldG9mKCBQbEZyYW1lLCB4aGFpcnMgKSwgVEtfQ09ORklHX0RPTlRf U0VUX0RFRkFVTFQsIE5VTEwgfSwKKyAgICAgeyBUS19DT05GSUdfQk9PTEVBTiwgICAgICAgIi1y dWJiZXJiYW5kIiwgICAgIChjaGFyICopIE5VTEwsICAgIChjaGFyICopIE5VTEwsCistICAgICAg IjAiLCBUa19PZmZzZXQoIFBsRnJhbWUsIHJiYW5kICksIFRLX0NPTkZJR19ET05UX1NFVF9ERUZB VUxULCBOVUxMIH0sCisrICAgICAgIjAiLCBvZmZzZXRvZiggUGxGcmFtZSwgcmJhbmQgKSwgVEtf Q09ORklHX0RPTlRfU0VUX0RFRkFVTFQsIE5VTEwgfSwKKyAgICAgeyBUS19DT05GSUdfU1RSSU5H LCAgICAgICAgIi14c2Nyb2xsY29tbWFuZCIsICJ4U2Nyb2xsQ29tbWFuZCIsICJTY3JvbGxDb21t YW5kIiwKKy0gICAgICAoY2hhciAqKSBOVUxMLCBUa19PZmZzZXQoIFBsRnJhbWUsIHhTY3JvbGxD bWQgKSwgVEtfQ09ORklHX05VTExfT0ssIE5VTEwgfSwKKysgICAgICAoY2hhciAqKSBOVUxMLCBv ZmZzZXRvZiggUGxGcmFtZSwgeFNjcm9sbENtZCApLCBUS19DT05GSUdfTlVMTF9PSywgTlVMTCB9 LAorICAgICB7IFRLX0NPTkZJR19TVFJJTkcsICAgICAgICAiLXlzY3JvbGxjb21tYW5kIiwgInlT Y3JvbGxDb21tYW5kIiwgIlNjcm9sbENvbW1hbmQiLAorLSAgICAgIChjaGFyICopIE5VTEwsIFRr X09mZnNldCggUGxGcmFtZSwgeVNjcm9sbENtZCApLCBUS19DT05GSUdfTlVMTF9PSywgTlVMTCB9 LAorKyAgICAgIChjaGFyICopIE5VTEwsIG9mZnNldG9mKCBQbEZyYW1lLCB5U2Nyb2xsQ21kICks IFRLX0NPTkZJR19OVUxMX09LLCBOVUxMIH0sCisgICAgIHsgVEtfQ09ORklHX0VORCwgICAgICAg ICAgIChjaGFyICopIE5VTEwsICAgICAoY2hhciAqKSBOVUxMLCAgICAoY2hhciAqKSBOVUxMLAor ICAgICAgIChjaGFyICopIE5VTEwsIDAsIDAsIE5VTEwgfQorIH07CitAQCAtMjcyLDggKzI3Miw4 IEBAIGludCAgIHBsRnJhbWVDbWQoIENsaWVudERhdGEsIFRjbF9JbnRlcnAKKyAKKyAvLyBUaGVz ZSBhcmUgaW52b2tlZCBieSB0aGUgVEsgZGlzcGF0Y2hlcgorIAorLSNpZiBUS19NQUpPUl9WRVJT SU9OIDwgNCB8fCAoIFRLX01BSk9SX1ZFUlNJT04gPT0gNCAmJiBUS19NSU5PUl9WRVJTSU9OID09 IDAgKQorLSNkZWZpbmUgRnJlZVByb2NBcmcgICAgQ2xpZW50RGF0YQorKyNpZiBUS19NQUpPUl9W RVJTSU9OID49IDkKKysjZGVmaW5lIEZyZWVQcm9jQXJnICAgIHZvaWQgKgorICNlbHNlCisgI2Rl ZmluZSBGcmVlUHJvY0FyZyAgICBjaGFyICoKKyAjZW5kaWYKK0BAIC01NDcsNyArNTQ3LDcgQEAg UGxGcmFtZVdpZGdldENtZCggQ2xpZW50RGF0YSBjbGllbnREYXRhLAorICAgICAgICAgICAgIGFy Z3ZbMF0sICIgb3B0aW9uID9hcmcgYXJnIC4uLj9cIiIsIChjaGFyICopIE5VTEwgKTsKKyAgICAg ICAgIHJldHVybiBUQ0xfRVJST1I7CisgICAgIH0KKy0gICAgVGtfUHJlc2VydmUoIChDbGllbnRE YXRhKSBwbEZyYW1lUHRyICk7CisrICAgIFRjbF9QcmVzZXJ2ZSggKENsaWVudERhdGEpIHBsRnJh bWVQdHIgKTsKKyAgICAgYyAgICAgID0gYXJndlsxXVswXTsKKyAgICAgbGVuZ3RoID0gKGludCkg c3RybGVuKCBhcmd2WzFdICk7CisgCitAQCAtODE2LDcgKzgxNiw3IEBAIFBsRnJhbWVXaWRnZXRD bWQoIENsaWVudERhdGEgY2xpZW50RGF0YSwKKyAjZW5kaWYKKyAKKyBkb25lOgorLSAgICBUa19S ZWxlYXNlKCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworKyAgICBUY2xfUmVsZWFzZSggKENs aWVudERhdGEpIHBsRnJhbWVQdHIgKTsKKyAgICAgcmV0dXJuIHJlc3VsdDsKKyB9CisgCitAQCAt ODI1LDcgKzgyNSw3IEBAIGRvbmU6CisgLy8KKyAvLyBEZXN0cm95UGxGcmFtZSAtLQorIC8vCist Ly8JVGhpcyBwcm9jZWR1cmUgaXMgaW52b2tlZCBieSBUa19FdmVudHVhbGx5RnJlZSBvciBUa19S ZWxlYXNlIHRvCisrLy8JVGhpcyBwcm9jZWR1cmUgaXMgaW52b2tlZCBieSBUY2xfRXZlbnR1YWxs eUZyZWUgb3IgVGNsX1JlbGVhc2UgdG8KKyAvLwljbGVhbiB1cCB0aGUgaW50ZXJuYWwgc3RydWN0 dXJlIG9mIGEgcGxmcmFtZSBhdCBhIHNhZmUgdGltZQorIC8vCSh3aGVuIG5vLW9uZSBpcyB1c2lu ZyBpdCBhbnltb3JlKS4KKyAvLworQEAgLTk0MSw3ICs5NDEsNyBAQCBQbEZyYW1lQ29uZmlndXJl RUgoIENsaWVudERhdGEgY2xpZW50RGF0CisgICAgICAgICBwbEZyYW1lUHRyLT5oZWlnaHQgPSBU a19IZWlnaHQoIHRrd2luICk7CisgICAgICAgICBpZiAoICggdGt3aW4gIT0gTlVMTCApICYmICEo IHBsRnJhbWVQdHItPmZsYWdzICYgUkVGUkVTSF9QRU5ESU5HICkgKQorICAgICAgICAgeworLSAg ICAgICAgICAgIFRrX0RvV2hlbklkbGUoIERpc3BsYXlQbEZyYW1lLCAoQ2xpZW50RGF0YSkgcGxG cmFtZVB0ciApOworKyAgICAgICAgICAgIFRjbF9Eb1doZW5JZGxlKCBEaXNwbGF5UGxGcmFtZSwg KENsaWVudERhdGEpIHBsRnJhbWVQdHIgKTsKKyAgICAgICAgICAgICBwbEZyYW1lUHRyLT5mbGFn cyB8PSBSRUZSRVNIX1BFTkRJTkc7CisgICAgICAgICAgICAgcGxGcmFtZVB0ci0+ZmxhZ3MgfD0g VVBEQVRFX1ZfU0NST0xMQkFSIHwgVVBEQVRFX0hfU0NST0xMQkFSOworICAgICAgICAgfQorQEAg LTk1OCwxNiArOTU4LDE2IEBAIFBsRnJhbWVDb25maWd1cmVFSCggQ2xpZW50RGF0YSBjbGllbnRE YXQKKyAgICAgICAgIHBsRnJhbWVQdHItPnRrd2luID0gTlVMTDsKKyAgICAgICAgIGlmICggcGxG cmFtZVB0ci0+ZmxhZ3MgJiBSRUZSRVNIX1BFTkRJTkcgKQorICAgICAgICAgeworLSAgICAgICAg ICAgIFRrX0NhbmNlbElkbGVDYWxsKCBEaXNwbGF5UGxGcmFtZSwgKENsaWVudERhdGEpIHBsRnJh bWVQdHIgKTsKKysgICAgICAgICAgICBUY2xfQ2FuY2VsSWRsZUNhbGwoIERpc3BsYXlQbEZyYW1l LCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworICAgICAgICAgfQorLSAgICAgICAgVGtfRXZl bnR1YWxseUZyZWUoIChDbGllbnREYXRhKSBwbEZyYW1lUHRyLCBEZXN0cm95UGxGcmFtZSApOwor KyAgICAgICAgVGNsX0V2ZW50dWFsbHlGcmVlKCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciwgRGVz dHJveVBsRnJhbWUgKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIE1hcE5vdGlmeToK KyAgICAgICAgIHBsZGVidWcoICJQTEZyYW1lQ29uZmlndXJlRUgiLCAiTWFwTm90aWZ5XG4iICk7 CisgICAgICAgICBpZiAoIHBsRnJhbWVQdHItPmZsYWdzICYgUkVGUkVTSF9QRU5ESU5HICkKKyAg ICAgICAgIHsKKy0gICAgICAgICAgICBUa19DYW5jZWxJZGxlQ2FsbCggRGlzcGxheVBsRnJhbWUs IChDbGllbnREYXRhKSBwbEZyYW1lUHRyICk7CisrICAgICAgICAgICAgVGNsX0NhbmNlbElkbGVD YWxsKCBEaXNwbGF5UGxGcmFtZSwgKENsaWVudERhdGEpIHBsRnJhbWVQdHIgKTsKKyAgICAgICAg IH0KKyAKKyAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiwgIi4iIG11c3QgYmUgbWFwcGVkIG9y IFBsRnJhbWVJbml0IHdpbGwgZGllIChOb3RlOgorQEAgLTk3OSw3ICs5NzksNyBAQCBQbEZyYW1l Q29uZmlndXJlRUgoIENsaWVudERhdGEgY2xpZW50RGF0CisgICAgICAgICB7CisgICAgICAgICAg ICAgVGNsX1ZhckV2YWwoIHBsRnJhbWVQdHItPmludGVycCwgInVwZGF0ZSIsIChjaGFyICopIE5V TEwgKTsKKyAgICAgICAgIH0KKy0gICAgICAgIFRrX0RvV2hlbklkbGUoIFBsRnJhbWVJbml0LCAo Q2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworKyAgICAgICAgVGNsX0RvV2hlbklkbGUoIFBsRnJh bWVJbml0LCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworICAgICAgICAgYnJlYWs7CisgICAg IH0KKyB9CitAQCAtMTA0NCw3ICsxMDQ0LDcgQEAgUGxGcmFtZUV4cG9zZUVIKCBDbGllbnREYXRh IGNsaWVudERhdGEsCisgICAgIHsKKyAgICAgICAgIGlmICggKCB0a3dpbiAhPSBOVUxMICkgJiYg ISggcGxGcmFtZVB0ci0+ZmxhZ3MgJiBSRUZSRVNIX1BFTkRJTkcgKSApCisgICAgICAgICB7Cist ICAgICAgICAgICAgVGtfRG9XaGVuSWRsZSggRGlzcGxheVBsRnJhbWUsIChDbGllbnREYXRhKSBw bEZyYW1lUHRyICk7CisrICAgICAgICAgICAgVGNsX0RvV2hlbklkbGUoIERpc3BsYXlQbEZyYW1l LCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworICAgICAgICAgICAgIHBsRnJhbWVQdHItPndp ZHRoICA9IFRrX1dpZHRoKCB0a3dpbiApOworICAgICAgICAgICAgIHBsRnJhbWVQdHItPmhlaWdo dCA9IFRrX0hlaWdodCggdGt3aW4gKTsKKyAgICAgICAgICAgICBwbEZyYW1lUHRyLT5mbGFncyB8 PSBSRUZSRVNIX1BFTkRJTkc7CitAQCAtMTczNSw3ICsxNzM1LDcgQEAgRGlzcGxheVBsRnJhbWUo IENsaWVudERhdGEgY2xpZW50RGF0YSApCisgICAgICAgICB7CisgICAgICAgICAgICAgcGxGcmFt ZVB0ci0+ZmxhZ3MgfD0gUkVGUkVTSF9QRU5ESU5HOworICAgICAgICAgICAgIHBsRnJhbWVQdHIt PmZsYWdzICY9IH5SRVNJWkVfUEVORElORzsKKy0gICAgICAgICAgICBUa19Eb1doZW5JZGxlKCBE aXNwbGF5UGxGcmFtZSwgY2xpZW50RGF0YSApOworKyAgICAgICAgICAgIFRjbF9Eb1doZW5JZGxl KCBEaXNwbGF5UGxGcmFtZSwgY2xpZW50RGF0YSApOworICAgICAgICAgICAgIHJldHVybjsKKyAg ICAgICAgIH0KKyAKK0BAIC0yMjIyLDI1ICsyMjIyLDU5IEBAIENtZCggVGNsX0ludGVycCAqaW50 ZXJwLCByZWdpc3RlciBQbEZyYW0KKyAvLworIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAvLworLS8v IENvbmZpZ3VyZVBsRnJhbWUgLS0KKysvLyBDb25maWd1cmVXaWRnZXRDb21wYXQgLS0KKyAvLwor LS8vCVRoaXMgcHJvY2VkdXJlIGlzIGNhbGxlZCB0byBwcm9jZXNzIGFuIGFyZ3YvYXJnYyBsaXN0 LCBwbHVzIHRoZSBUaworLS8vCW9wdGlvbiBkYXRhYmFzZSwgaW4gb3JkZXIgdG8gY29uZmlndXJl IChvciByZWNvbmZpZ3VyZSkgYQorLS8vCXBsZnJhbWUgd2lkZ2V0LgorLS8vCistLy8gUmVzdWx0 czoKKy0vLwlUaGUgcmV0dXJuIHZhbHVlIGlzIGEgc3RhbmRhcmQgVGNsIHJlc3VsdC4gIElmIFRD TF9FUlJPUiBpcworLS8vCXJldHVybmVkLCB0aGVuIGludGVycC0+cmVzdWx0IGNvbnRhaW5zIGFu IGVycm9yIG1lc3NhZ2UuCistLy8KKy0vLyBTaWRlIGVmZmVjdHM6CistLy8JQ29uZmlndXJhdGlv biBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0ZXh0IHN0cmluZywgY29sb3JzLCBmb250LCBldGMuCist Ly8JZ2V0IHNldCBmb3IgcGxGcmFtZVB0cjsgb2xkIHJlc291cmNlcyBnZXQgZnJlZWQsIGlmIHRo ZXJlIHdlcmUKKy0vLwlhbnkuCisrLy8JQ29tcGF0aWJpbGl0eSB3cmFwcGVyIGZvciBUa19Db25m aWd1cmVXaWRnZXQuICBUayA5IGV4cGVjdHMgdGhlCisrLy8JYXJndW1lbnQgdmVjdG9yIGFzIFRj bF9PYmogcG9pbnRlcnMgcmF0aGVyIHRoYW4gc3RyaW5nIHBvaW50ZXJzLgorIC8vCisgLy8tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIC8vCisgCisgc3RhdGljIGludAorK0NvbmZpZ3VyZVdpZGdldENvbXBh dCggVGNsX0ludGVycCAqaW50ZXJwLCBUa19XaW5kb3cgdGt3aW4sCisrICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgVGtfQ29uZmlnU3BlYyAqY29uZmlnU3BlY3MsCisrICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjaGFyICp3aWRnUmVjLCBp bnQgZmxhZ3MgKQorK3sKKysjaWYgVEtfTUFKT1JfVkVSU0lPTiA+PSA5CisrICAgIFRjbF9PYmog KipvYmp2ID0gTlVMTDsKKysgICAgaW50IGk7CisrICAgIGludCByZXN1bHQ7CisrCisrICAgIGlm ICggYXJnYyA+IDAgKQorKyAgICB7CisrICAgICAgICBvYmp2ID0gKFRjbF9PYmogKiopIFRjbF9B bGxvYyggKHNpemVfdCkgYXJnYyAqIHNpemVvZiggVGNsX09iaiAqICkgKTsKKysgICAgICAgIGlm ICggb2JqdiA9PSBOVUxMICkKKysgICAgICAgIHsKKysgICAgICAgICAgICBUY2xfU2V0UmVzdWx0 KCBpbnRlcnAsICJvdXQgb2YgbWVtb3J5IiwgVENMX1NUQVRJQyApOworKyAgICAgICAgICAgIHJl dHVybiBUQ0xfRVJST1I7CisrICAgICAgICB9CisrCisrICAgICAgICBmb3IgKCBpID0gMDsgaSA8 IGFyZ2M7IGkrKyApCisrICAgICAgICB7CisrICAgICAgICAgICAgb2JqdltpXSA9IFRjbF9OZXdT dHJpbmdPYmooIGFyZ3ZbaV0sIC0xICk7CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgcmVz dWx0ID0gVGtfQ29uZmlndXJlV2lkZ2V0KCBpbnRlcnAsIHRrd2luLCBjb25maWdTcGVjcywgYXJn YywKKysgICAgICAgIChUY2xfT2JqICpjb25zdCAqKSBvYmp2LCB3aWRnUmVjLCBmbGFncyApOwor KworKyAgICBpZiAoIG9ianYgIT0gTlVMTCApCisrICAgIHsKKysgICAgICAgIGZvciAoIGkgPSAw OyBpIDwgYXJnYzsgaSsrICkKKysgICAgICAgIHsKKysgICAgICAgICAgICBUY2xfRGVjclJlZkNv dW50KCBvYmp2W2ldICk7CisrICAgICAgICB9CisrICAgICAgICBUY2xfRnJlZSggKGNoYXIgKikg b2JqdiApOworKyAgICB9CisrCisrICAgIHJldHVybiByZXN1bHQ7CisrI2Vsc2UKKysgICAgcmV0 dXJuIFRrX0NvbmZpZ3VyZVdpZGdldCggaW50ZXJwLCB0a3dpbiwgY29uZmlnU3BlY3MsIGFyZ2Ms IGFyZ3YsCisrICAgICAgICB3aWRnUmVjLCBmbGFncyApOworKyNlbmRpZgorK30KKysKKytzdGF0 aWMgaW50CisgQ29uZmlndXJlUGxGcmFtZSggVGNsX0ludGVycCAqaW50ZXJwLCByZWdpc3RlciBQ bEZyYW1lICpwbEZyYW1lUHRyLAorICAgICAgICAgICAgICAgICAgIGludCBhcmdjLCBjb25zdCBj aGFyICoqYXJndiwgaW50IGZsYWdzICkKKyB7CitAQCAtMjI2Nyw4ICsyMzAxLDggQEAgQ29uZmln dXJlUGxGcmFtZSggVGNsX0ludGVycCAqaW50ZXJwLCByZQorIAorICAgICBkYnVnX2VudGVyKCAi Q29uZmlndXJlUGxGcmFtZSIgKTsKKyAKKy0gICAgaWYgKCBUa19Db25maWd1cmVXaWRnZXQoIGlu dGVycCwgdGt3aW4sIGNvbmZpZ1NwZWNzLAorLSAgICAgICAgICAgICBhcmdjLCAoQ09OU1QgY2hh ciAqKikgYXJndiwgKGNoYXIgKikgcGxGcmFtZVB0ciwgZmxhZ3MgKSAhPSBUQ0xfT0sgKQorKyAg ICBpZiAoIENvbmZpZ3VyZVdpZGdldENvbXBhdCggaW50ZXJwLCB0a3dpbiwgY29uZmlnU3BlY3Ms CisrICAgICAgICAgICAgIGFyZ2MsIChjb25zdCBjaGFyICoqKSBhcmd2LCAoY2hhciAqKSBwbEZy YW1lUHRyLCBmbGFncyApICE9IFRDTF9PSyApCisgICAgIHsKKyAgICAgICAgIHJldHVybiBUQ0xf RVJST1I7CisgICAgIH0KK0BAIC0yMzQ3LDcgKzIzODEsNyBAQCBDb25maWd1cmVQbEZyYW1lKCBU Y2xfSW50ZXJwICppbnRlcnAsIHJlCisgICAgIGlmICggbmVlZF9yZWRpc3BsYXkgJiYgVGtfSXNN YXBwZWQoIHRrd2luICkKKyAgICAgICAgICAmJiAhKCBwbEZyYW1lUHRyLT5mbGFncyAmIFJFRlJF U0hfUEVORElORyApICkKKyAgICAgeworLSAgICAgICAgVGtfRG9XaGVuSWRsZSggRGlzcGxheVBs RnJhbWUsIChDbGllbnREYXRhKSBwbEZyYW1lUHRyICk7CisrICAgICAgICBUY2xfRG9XaGVuSWRs ZSggRGlzcGxheVBsRnJhbWUsIChDbGllbnREYXRhKSBwbEZyYW1lUHRyICk7CisgICAgICAgICBw bEZyYW1lUHRyLT5mbGFncyB8PSBSRUZSRVNIX1BFTkRJTkc7CisgICAgICAgICBwbEZyYW1lUHRy LT5mbGFncyB8PSBVUERBVEVfVl9TQ1JPTExCQVIgfCBVUERBVEVfSF9TQ1JPTExCQVI7CisgICAg IH0KK0BAIC0yNjE0LDE2ICsyNjQ4LDI3IEBAIE9wZW5saW5rKCBUY2xfSW50ZXJwICppbnRlcnAs IHJlZ2lzdGVyIFAKKyAgICAgKCBUS19NQUpPUl9WRVJTSU9OID09IDQgJiYgVEtfTUlOT1JfVkVS U0lPTiA9PSAwICkgfHwgXAorICAgICBUS19NQUpPUl9WRVJTSU9OID4gNworICNpZiAhZGVmaW5l ZCAoIE1BQ19UQ0wgKSAmJiAhZGVmaW5lZCAoIF9XSU4zMiApICYmICFkZWZpbmVkICggX19DWUdX SU5fXyApCistICAgIFRrX0NyZWF0ZUZpbGVIYW5kbGVyKCBpb2Rldi0+ZmQsIFRLX1JFQURBQkxF LCAoVGtfRmlsZVByb2MgKikgUmVhZERhdGEsCisrI2lmIGRlZmluZWQoIFRDTF9NQUpPUl9WRVJT SU9OICkgJiYgVENMX01BSk9SX1ZFUlNJT04gPj0gOQorKyAgICBUY2xfQ3JlYXRlRmlsZUhhbmRs ZXIoIGlvZGV2LT5mZCwgVENMX1JFQURBQkxFLCAoVGNsX0ZpbGVQcm9jICopIFJlYWREYXRhLAor KyAgICAgICAgKHZvaWQgKikgcGxGcmFtZVB0ciApOworKyNlbHNlCisrICAgIFRjbF9DcmVhdGVG aWxlSGFuZGxlciggaW9kZXYtPmZkLCBUQ0xfUkVBREFCTEUsIChUY2xfRmlsZVByb2MgKikgUmVh ZERhdGEsCisgICAgICAgICAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworICNlbmRpZgorKyNl bmRpZgorICNlbHNlCisgI2lmICFkZWZpbmVkICggTUFDX1RDTCApICYmICFkZWZpbmVkICggX1dJ TjMyICkgJiYgIWRlZmluZWQgKCBfX0NZR1dJTl9fICkKKysjaWYgZGVmaW5lZCggVENMX01BSk9S X1ZFUlNJT04gKSAmJiBUQ0xfTUFKT1JfVkVSU0lPTiA+PSA5CisrICAgIFRjbF9DcmVhdGVGaWxl SGFuZGxlciggVGNsX0dldEZpbGUoIChDbGllbnREYXRhKSBpb2Rldi0+ZmQsIFRDTF9VTklYX0ZE ICksCisrICAgICAgICBUQ0xfUkVBREFCTEUsIChUY2xfRmlsZVByb2MgKikgUmVhZERhdGEsCisr ICAgICAgICAodm9pZCAqKSBwbEZyYW1lUHRyICk7CisrI2Vsc2UKKyAgICAgVGNsX0NyZWF0ZUZp bGVIYW5kbGVyKCBUY2xfR2V0RmlsZSggKENsaWVudERhdGEpIGlvZGV2LT5mZCwgVENMX1VOSVhf RkQgKSwKKy0gICAgICAgIFRLX1JFQURBQkxFLCAoVGtfRmlsZVByb2MgKikgUmVhZERhdGEsCisr ICAgICAgICBUQ0xfUkVBREFCTEUsIChUY2xfRmlsZVByb2MgKikgUmVhZERhdGEsCisgICAgICAg ICAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworICNlbmRpZgorICNlbmRpZgorKyNlbmRpZgor IAorICAgICByZXR1cm4gVENMX09LOworIH0KK0BAIC0yNjU0LDcgKzI2OTksNyBAQCBDbG9zZWxp bmsoIFRjbF9JbnRlcnAgKmludGVycCwgcmVnaXN0ZXIKKyAgICAgKCBUS19NQUpPUl9WRVJTSU9O ID09IDQgJiYgVEtfTUlOT1JfVkVSU0lPTiA9PSAwICkgfHwgXAorICAgICBUS19NQUpPUl9WRVJT SU9OID4gNworICNpZiAhZGVmaW5lZCAoIE1BQ19UQ0wgKSAmJiAhZGVmaW5lZCAoIF9XSU4zMiAp ICYmICFkZWZpbmVkICggX19DWUdXSU5fXyApCistICAgIFRrX0RlbGV0ZUZpbGVIYW5kbGVyKCBp b2Rldi0+ZmQgKTsKKysgICAgVGNsX0RlbGV0ZUZpbGVIYW5kbGVyKCBpb2Rldi0+ZmQgKTsKKyAj ZW5kaWYKKyAjZWxzZQorIC8vICAgIFRrX0RlbGV0ZUZpbGVIYW5kbGVyKCBpb2Rldi0+ZmlsZSAp OworQEAgLTI3MzIsNyArMjc3Nyw3IEBAIFJlYWREYXRhKCBDbGllbnREYXRhIGNsaWVudERhdGEs IGludCBtYXMKKyAgICAgcmVnaXN0ZXIgUERGc3RybSAgICAqcGRmcyAgPSBwbHItPnBkZnM7Cisg ICAgIGludCByZXN1bHQgPSBUQ0xfT0s7CisgCistICAgIGlmICggbWFzayAmIFRLX1JFQURBQkxF ICkKKysgICAgaWYgKCBtYXNrICYgVENMX1JFQURBQkxFICkKKyAgICAgeworICAgICAgICAgLy8g UmVhZCBmcm9tIEZJRk8gb3Igc29ja2V0CisgCitAQCAtMjk2Miw3ICszMDA3LDcgQEAgUmVkcmF3 KCBUY2xfSW50ZXJwICpQTF9VTlVTRUQoIGludGVycCApLAorICAgICBpZiAoICggcGxGcmFtZVB0 ci0+dGt3aW4gIT0gTlVMTCApICYmCisgICAgICAgICAgISggcGxGcmFtZVB0ci0+ZmxhZ3MgJiBS RUZSRVNIX1BFTkRJTkcgKSApCisgICAgIHsKKy0gICAgICAgIFRrX0RvV2hlbklkbGUoIERpc3Bs YXlQbEZyYW1lLCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworKyAgICAgICAgVGNsX0RvV2hl bklkbGUoIERpc3BsYXlQbEZyYW1lLCAoQ2xpZW50RGF0YSkgcGxGcmFtZVB0ciApOworICAgICAg ICAgcGxGcmFtZVB0ci0+ZmxhZ3MgfD0gUkVGUkVTSF9QRU5ESU5HOworICAgICB9CisgCitAQCAt MzQwNyw3ICszNDUyLDcgQEAgVXBkYXRlVlNjcm9sbGJhciggcmVnaXN0ZXIgUGxGcmFtZSAqcGxG cgorIAorICAgICBpZiAoIHJlc3VsdCAhPSBUQ0xfT0sgKQorICAgICB7CistICAgICAgICBUa19C YWNrZ3JvdW5kRXJyb3IoIHBsRnJhbWVQdHItPmludGVycCApOworKyAgICAgICAgVGNsX0JhY2tn cm91bmRFcnJvciggcGxGcmFtZVB0ci0+aW50ZXJwICk7CisgICAgIH0KKyB9CisgCitAQCAtMzQz OSw3ICszNDg0LDcgQEAgVXBkYXRlSFNjcm9sbGJhciggcmVnaXN0ZXIgUGxGcmFtZSAqcGxGcgor IAorICAgICBpZiAoIHJlc3VsdCAhPSBUQ0xfT0sgKQorICAgICB7CistICAgICAgICBUa19CYWNr Z3JvdW5kRXJyb3IoIHBsRnJhbWVQdHItPmludGVycCApOworKyAgICAgICAgVGNsX0JhY2tncm91 bmRFcnJvciggcGxGcmFtZVB0ci0+aW50ZXJwICk7CisgICAgIH0KKyB9CisgCitkaWZmIC11cCBw bHBsb3QtNS4xNS4wL2JpbmRpbmdzL3RrL3RjcGlwLmMudGNsOSBwbHBsb3QtNS4xNS4wL2JpbmRp bmdzL3RrL3RjcGlwLmMKKy0tLSBwbHBsb3QtNS4xNS4wL2JpbmRpbmdzL3RrL3RjcGlwLmMudGNs OQkyMDE5LTA2LTAxIDE3OjI0OjMzLjAwMDAwMDAwMCAtMDYwMAorKysrIHBscGxvdC01LjE1LjAv YmluZGluZ3MvdGsvdGNwaXAuYwkyMDI2LTA3LTMwIDE3OjQ4OjMxLjI5NDA3NTc3MyAtMDYwMAor QEAgLTU5NSw3ICs1OTUsNyBAQCByZWFkRXJyb3I6CisgICAgIHsKKyAvLyBFeGNsdWRlIFVOSVgt b25seSBmZWF0dXJlCisgI2lmICFkZWZpbmVkICggTUFDX1RDTCApICYmICFkZWZpbmVkICggX1dJ TjMyICkgJiYgIWRlZmluZWQgKCBfX0NZR1dJTl9fICkKKy0gICAgICAgIFRrX0RlbGV0ZUZpbGVI YW5kbGVyKCBpb2Rldi0+ZmQgKTsKKysgICAgICAgIFRjbF9EZWxldGVGaWxlSGFuZGxlciggaW9k ZXYtPmZkICk7CisgI2VuZGlmCisgICAgICAgICBjbG9zZSggaW9kZXYtPmZkICk7CisgICAgIH0K K2RpZmYgLXVwIHBscGxvdC01LjE1LjAvYmluZGluZ3MvdGsvdGtNYWluLmMudGNsOSBwbHBsb3Qt NS4xNS4wL2JpbmRpbmdzL3RrL3RrTWFpbi5jCistLS0gcGxwbG90LTUuMTUuMC9iaW5kaW5ncy90 ay90a01haW4uYy50Y2w5CTIwMTktMDYtMDEgMTc6MjQ6MzMuMDAwMDAwMDAwIC0wNjAwCisrKysg cGxwbG90LTUuMTUuMC9iaW5kaW5ncy90ay90a01haW4uYwkyMDI2LTA3LTMwIDE3OjQ4OjMxLjI5 NDQxOTc4MSAtMDYwMAorQEAgLTc5LDIwICs3OSwxOSBAQAorIAorIC8vIEZyb20gaXRrRGVjbHMu aAorIAorLUVYVEVSTiBpbnQgSXRrX0luaXQgX0FOU0lfQVJHU18oICggVGNsX0ludGVycCAqIGlu dGVycCApICk7CisrRVhURVJOIGludCBJdGtfSW5pdCAoIFRjbF9JbnRlcnAgKiBpbnRlcnAgKTsK KyAKKyAvLyBGcm9tIHRjbEludERlY2xzLmgKKyAKKyAvLyNpZm5kZWYgVGNsX0ltcG9ydF9UQ0xf REVDTEFSRUQKKyAjaWYgMAorLUVYVEVSTiBpbnQgVGNsX0ltcG9ydCBfQU5TSV9BUkdTXyggKCBU Y2xfSW50ZXJwICogaW50ZXJwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUY2xfTmFtZXNwYWNlICogbnNQdHIsIGNoYXIgKiBwYXR0ZXJuLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWxsb3dPdmVyd3JpdGUgKSApOworK0VYVEVSTiBp bnQgVGNsX0ltcG9ydCAoIFRjbF9JbnRlcnAgKiBpbnRlcnAsCisrICAgICAgICAgICAgICAgICAg ICAgICAgVGNsX05hbWVzcGFjZSAqIG5zUHRyLCBjaGFyICogcGF0dGVybiwKKysgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgYWxsb3dPdmVyd3JpdGUgKTsKKyAjZW5kaWYKKyAKKyAjaWZuZGVm IFRjbF9HZXRHbG9iYWxOYW1lc3BhY2VfVENMX0RFQ0xBUkUKKy1FWFRFUk4gVGNsX05hbWVzcGFj ZSAqIFRjbF9HZXRHbG9iYWxOYW1lc3BhY2UgX0FOU0lfQVJHU18oICgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUY2xfSW50 ZXJwICogaW50ZXJwICkgKTsKKytFWFRFUk4gVGNsX05hbWVzcGFjZSAqIFRjbF9HZXRHbG9iYWxO YW1lc3BhY2UgKCBUY2xfSW50ZXJwICogaW50ZXJwICk7CisgI2VuZGlmCisgCisgLy8KK0BAIC0x MDIsMTMgKzEwMSwxMSBAQCBFWFRFUk4gVGNsX05hbWVzcGFjZSAqIFRjbF9HZXRHbG9iYWxOYW1l CisgLy8KKyAKKyAvLyB0aGVzZSBhcmUgZGVmaW5lZCBpbiB1bmlzdGQuaCwgaW5jbHVkZWQgYnkg cGxwbG90UC5oCistLy8gZXh0ZXJuIHZvaWQJCWV4aXQgX0FOU0lfQVJHU18oKGludCBzdGF0dXMp KTsKKy0vLyBleHRlcm4gaW50CQlpc2F0dHkgX0FOU0lfQVJHU18oKGludCBmZCkpOworLS8vIGV4 dGVybiBpbnQJCXJlYWQgX0FOU0lfQVJHU18oKGludCBmZCwgY2hhciAqYnVmLCBzaXplX3Qgc2l6 ZSkpOworKy8vIGV4dGVybiB2b2lkCQlleGl0IChpbnQgc3RhdHVzKTsKKysvLyBleHRlcm4gaW50 CQlpc2F0dHkgKGludCBmZCk7CisrLy8gZXh0ZXJuIGludAkJcmVhZCAoaW50IGZkLCBjaGFyICpi dWYsIHNpemVfdCBzaXplKTsKKyAvLworLSNpZiAhZGVmaW5lZCAoIF9XSU4zMiApCistZXh0ZXJu IGNoYXIgKiAgICAgICAgICAgc3RycmNociBfQU5TSV9BUkdTXyggKCBDT05TVCBjaGFyICpzdHJp bmcsIGludCBjICkgKTsKKy0jZWxzZQorKyNpZiBkZWZpbmVkICggX1dJTjMyICkKKyAvLyBPbiBX aW5kb3dzIHdlIGRvIG5vdCBoYXZlIGEgY29udmVuaWVudCBjb25zb2xlIHRvIHdvcmsgd2l0aAor ICNkZWZpbmUgaXNhdHR5KCBhICkgICAgMAorICNlbmRpZgorQEAgLTE1Nyw5ICsxNTQsOCBAQCBz dGF0aWMgVGtfQXJndkluZm8gYXJnVGFibGVbXSA9IHsKKyAvLyBGb3J3YXJkIGRlY2xhcmF0aW9u cyBmb3IgcHJvY2VkdXJlcyBkZWZpbmVkIGxhdGVyIGluIHRoaXMgZmlsZToKKyAvLworIAorLXN0 YXRpYyB2b2lkIFByb21wdCBfQU5TSV9BUkdTXyggKCBUY2xfSW50ZXJwICogaW50ZXJwbG9jLCBp bnQgcGFydGlhbCApICk7Cistc3RhdGljIHZvaWQgU3RkaW5Qcm9jIF9BTlNJX0FSR1NfKCAoIENs aWVudERhdGEgY2xpZW50RGF0YSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IG1hc2sgKSApOworK3N0YXRpYyB2b2lkIFByb21wdCAoIFRjbF9JbnRlcnAgKiBpbnRl cnBsb2MsIGludCBwYXJ0aWFsICk7Cisrc3RhdGljIHZvaWQgU3RkaW5Qcm9jICggQ2xpZW50RGF0 YSBjbGllbnREYXRhLCBpbnQgbWFzayApOworIAorIC8vCisgLy8tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor QEAgLTMxNSw3ICszMTEsNyBAQCBwbHRrTWFpbiggaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2 LCBjCisgICAgIC8vCisgICAgIC8vZnByaW50Ziggc3RkZXJyLCAiQmVmb3JlIFRjbF9NZXJnZVxu IiApOworIAorLSAgICBhcmdzID0gVGNsX01lcmdlKCBhcmdjIC0gMSwgKCBDT05TVCBjaGFyICog Q09OU1QgKiApYXJndiArIDEgKTsKKysgICAgYXJncyA9IFRjbF9NZXJnZSggYXJnYyAtIDEsICgg Y29uc3QgY2hhciAqIGNvbnN0ICogKWFyZ3YgKyAxICk7CisgICAgIFRjbF9TZXRWYXIoIGludGVy cCwgImFyZ3YiLCBhcmdzLCBUQ0xfR0xPQkFMX09OTFkgKTsKKyAgICAgY2tmcmVlKCBhcmdzICk7 CisgICAgIHNwcmludGYoIGJ1ZiwgIiVkIiwgYXJnYyAtIDEgKTsKK0BAIC00MDksNyArNDA1LDcg QEAgcGx0a01haW4oIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgYworICAgICAgICAgICAg IGNoYXIgICAgICAgICpmdWxsTmFtZTsKKyAgICAgICAgICAgICBGSUxFICAgICAgICAqZjsKKyAK Ky0gICAgICAgICAgICBmdWxsTmFtZSA9IFRjbF9UaWxkZVN1YnN0KCBpbnRlcnAsIFJjRmlsZU5h bWUsICZidWZmZXIgKTsKKysgICAgICAgICAgICBmdWxsTmFtZSA9IFRjbF9UcmFuc2xhdGVGaWxl TmFtZSggaW50ZXJwLCBSY0ZpbGVOYW1lLCAmYnVmZmVyICk7CisgICAgICAgICAgICAgaWYgKCBm dWxsTmFtZSA9PSBOVUxMICkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGZwcmlu dGYoIHN0ZGVyciwgIiVzXG4iLCBUY2xfR2V0U3RyaW5nUmVzdWx0KCBpbnRlcnAgKSApOworQEAg LTQzMSw3ICs0MjcsMTEgQEAgcGx0a01haW4oIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwg YworICAgICAgICAgfQorIC8vIEV4Y2x1ZGUgVU5JWC1vbmx5IGZlYXR1cmUKKyAjaWYgIWRlZmlu ZWQgKCBNQUNfVENMICkgJiYgIWRlZmluZWQgKCBfV0lOMzIgKQorLSAgICAgICAgVGtfQ3JlYXRl RmlsZUhhbmRsZXIoIDAsIFRLX1JFQURBQkxFLCBTdGRpblByb2MsIChDbGllbnREYXRhKSAwICk7 CisrI2lmIGRlZmluZWQoIFRDTF9NQUpPUl9WRVJTSU9OICkgJiYgVENMX01BSk9SX1ZFUlNJT04g Pj0gOQorKyAgICAgICAgVGNsX0NyZWF0ZUZpbGVIYW5kbGVyKCAwLCBUQ0xfUkVBREFCTEUsIFN0 ZGluUHJvYywgKHZvaWQgKikgMCApOworKyNlbHNlCisrICAgICAgICBUY2xfQ3JlYXRlRmlsZUhh bmRsZXIoIDAsIFRDTF9SRUFEQUJMRSwgU3RkaW5Qcm9jLCAoQ2xpZW50RGF0YSkgMCApOworKyNl bmRpZgorICNlbmRpZgorICAgICAgICAgaWYgKCB0dHkgKQorICAgICAgICAgeworQEAgLTUxNyw3 ICs1MTcsNyBAQCBTdGRpblByb2MoIENsaWVudERhdGEgUExfVU5VU0VEKCBjbGllbnRECisgICAg ICAgICAgICAgZWxzZQorICAgICAgICAgICAgIHsKKyAjaWYgIWRlZmluZWQgKCBNQUNfVENMICkg JiYgIWRlZmluZWQgKCBfV0lOMzIgKQorLSAgICAgICAgICAgICAgICBUa19EZWxldGVGaWxlSGFu ZGxlciggMCApOworKyAgICAgICAgICAgICAgICBUY2xfRGVsZXRlRmlsZUhhbmRsZXIoIDAgKTsK KyAjZW5kaWYKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuOworQEAgLTU1MSwx MSArNTUxLDE5IEBAIFN0ZGluUHJvYyggQ2xpZW50RGF0YSBQTF9VTlVTRUQoIGNsaWVudEQKKyAg ICAgLy8gY29tbWFuZCBiZWluZyBldmFsdWF0ZWQuCisgICAgIC8vCisgI2lmICFkZWZpbmVkICgg TUFDX1RDTCApICYmICFkZWZpbmVkICggX1dJTjMyICkKKy0gICAgVGtfQ3JlYXRlRmlsZUhhbmRs ZXIoIDAsIDAsIFN0ZGluUHJvYywgKENsaWVudERhdGEpIDAgKTsKKysjaWYgZGVmaW5lZCggVENM X01BSk9SX1ZFUlNJT04gKSAmJiBUQ0xfTUFKT1JfVkVSU0lPTiA+PSA5CisrICAgIFRjbF9DcmVh dGVGaWxlSGFuZGxlciggMCwgMCwgU3RkaW5Qcm9jLCAodm9pZCAqKSAwICk7CisrI2Vsc2UKKysg ICAgVGNsX0NyZWF0ZUZpbGVIYW5kbGVyKCAwLCAwLCBTdGRpblByb2MsIChDbGllbnREYXRhKSAw ICk7CisrI2VuZGlmCisgI2VuZGlmCisgICAgIGNvZGUgPSBUY2xfUmVjb3JkQW5kRXZhbCggaW50 ZXJwLCBjbWQsIDAgKTsKKyAjaWYgIWRlZmluZWQgKCBNQUNfVENMICkgJiYgIWRlZmluZWQgKCBf V0lOMzIgKQorLSAgICBUa19DcmVhdGVGaWxlSGFuZGxlciggMCwgVEtfUkVBREFCTEUsIFN0ZGlu UHJvYywgKENsaWVudERhdGEpIDAgKTsKKysjaWYgZGVmaW5lZCggVENMX01BSk9SX1ZFUlNJT04g KSAmJiBUQ0xfTUFKT1JfVkVSU0lPTiA+PSA5CisrICAgIFRjbF9DcmVhdGVGaWxlSGFuZGxlcigg MCwgVENMX1JFQURBQkxFLCBTdGRpblByb2MsICh2b2lkICopIDAgKTsKKysjZWxzZQorKyAgICBU Y2xfQ3JlYXRlRmlsZUhhbmRsZXIoIDAsIFRDTF9SRUFEQUJMRSwgU3RkaW5Qcm9jLCAoQ2xpZW50 RGF0YSkgMCApOworKyNlbmRpZgorICNlbmRpZgorICAgICBUY2xfRFN0cmluZ0ZyZWUoICZjb21t YW5kICk7CisgICAgIHJlcyA9IFRjbF9HZXRTdHJpbmdSZXN1bHQoIGludGVycCApOworZGlmZiAt dXAgcGxwbG90LTUuMTUuMC9iaW5kaW5ncy90ay90a3NoZWxsLmMudGNsOSBwbHBsb3QtNS4xNS4w L2JpbmRpbmdzL3RrL3Rrc2hlbGwuYworLS0tIHBscGxvdC01LjE1LjAvYmluZGluZ3MvdGsvdGtz aGVsbC5jLnRjbDkJMjAxOS0wNi0wMSAxNzoyNDozMy4wMDAwMDAwMDAgLTA2MDAKKysrKyBwbHBs b3QtNS4xNS4wL2JpbmRpbmdzL3RrL3Rrc2hlbGwuYwkyMDI2LTA3LTMwIDE3OjQ4OjMxLjI5NDc0 OTEwMyAtMDYwMAorQEAgLTExOSw3ICsxMTksNyBAQCBwbFdhaXRfVW50aWwoIENsaWVudERhdGEg Y2xpZW50RGF0YSwgVGNsCisgICAgICAgICBpZiAoIHJlc3VsdCApCisgICAgICAgICAgICAgYnJl YWs7CisgCistICAgICAgICBUa19Eb09uZUV2ZW50KCAwICk7CisrICAgICAgICBUY2xfRG9PbmVF dmVudCggMCApOworICAgICB9CisgICAgIHJldHVybiBUQ0xfT0s7CisgfQorZGlmZiAtdXAgcGxw bG90LTUuMTUuMC9iaW5kaW5ncy90ay14LXBsYXQvcGxwbG90dGVyLmMudGNsOSBwbHBsb3QtNS4x NS4wL2JpbmRpbmdzL3RrLXgtcGxhdC9wbHBsb3R0ZXIuYworLS0tIHBscGxvdC01LjE1LjAvYmlu ZGluZ3MvdGsteC1wbGF0L3BscGxvdHRlci5jLnRjbDkJMjAxOS0wNi0wMSAxNzoyNDozMy4wMDAw MDAwMDAgLTA2MDAKKysrKyBwbHBsb3QtNS4xNS4wL2JpbmRpbmdzL3RrLXgtcGxhdC9wbHBsb3R0 ZXIuYwkyMDI2LTA3LTMxIDE5OjM3OjQ3LjA4Njk2NjkxOCAtMDYwMAorQEAgLTIyMyw0MSArMjIz LDQxIEBAIHR5cGVkZWYgc3RydWN0IFBsUGxvdHRlcgorIAorIHN0YXRpYyBUa19Db25maWdTcGVj IGNvbmZpZ1NwZWNzW10gPSB7CisgICAgIHsgVEtfQ09ORklHX0JPT0xFQU4sICAgICAgICItYWN0 aXZlcGxvdCIsICAgICAoY2hhciAqKSBOVUxMLCAgICAoY2hhciAqKSBOVUxMLAorLSAgICAgICIx IiwgVGtfT2Zmc2V0KCBQbFBsb3R0ZXIsIGFjdGl2ZV9wbG90ICksIFRLX0NPTkZJR19ET05UX1NF VF9ERUZBVUxUIH0sCisrICAgICAgIjEiLCBvZmZzZXRvZiggUGxQbG90dGVyLCBhY3RpdmVfcGxv dCApLCBUS19DT05GSUdfRE9OVF9TRVRfREVGQVVMVCB9LAorICAgICB7IFRLX0NPTkZJR19CT1JE RVIsICAgICAgICAiLWJhY2tncm91bmQiLCAgICAgImJhY2tncm91bmQiLCAgICAgIkJhY2tncm91 bmQiLAorLSAgICAgIERFRl9QTEZSQU1FX0JHX0NPTE9SLCBUa19PZmZzZXQoIFBsUGxvdHRlciwg Ym9yZGVyICksCisrICAgICAgREVGX1BMRlJBTUVfQkdfQ09MT1IsIG9mZnNldG9mKCBQbFBsb3R0 ZXIsIGJvcmRlciApLAorICAgICAgIFRLX0NPTkZJR19DT0xPUl9PTkxZIH0sCisgICAgIHsgVEtf Q09ORklHX0JPUkRFUiwgICAgICAgICItYmFja2dyb3VuZCIsICAgICAiYmFja2dyb3VuZCIsICAg ICAiQmFja2dyb3VuZCIsCistICAgICAgREVGX1BMRlJBTUVfQkdfTU9OTywgVGtfT2Zmc2V0KCBQ bFBsb3R0ZXIsIGJvcmRlciApLAorKyAgICAgIERFRl9QTEZSQU1FX0JHX01PTk8sIG9mZnNldG9m KCBQbFBsb3R0ZXIsIGJvcmRlciApLAorICAgICAgIFRLX0NPTkZJR19NT05PX09OTFkgfSwKKyAg ICAgeyBUS19DT05GSUdfU1lOT05ZTSwgICAgICAgIi1iZCIsICAgICAgICAgICAgICJib3JkZXJX aWR0aCIsICAgIChjaGFyICopIE5VTEwsCisgICAgICAgKGNoYXIgKikgTlVMTCwgMCwgMCB9LAor ICAgICB7IFRLX0NPTkZJR19TWU5PTllNLCAgICAgICAiLWJnIiwgICAgICAgICAgICAgImJhY2tn cm91bmQiLCAgICAgKGNoYXIgKikgTlVMTCwKKyAgICAgICAoY2hhciAqKSBOVUxMLCAwLCAwIH0s CisgICAgIHsgVEtfQ09ORklHX1NUUklORywgICAgICAgICItYm9wY21kIiwgICAgICAgICAiYm9w Y21kIiwgICAgICAgICAiUGdDb21tYW5kIiwKKy0gICAgICAoY2hhciAqKSBOVUxMLCBUa19PZmZz ZXQoIFBsUGxvdHRlciwgYm9wQ21kICksIFRLX0NPTkZJR19OVUxMX09LIH0sCisrICAgICAgKGNo YXIgKikgTlVMTCwgb2Zmc2V0b2YoIFBsUGxvdHRlciwgYm9wQ21kICksIFRLX0NPTkZJR19OVUxM X09LIH0sCisgICAgIHsgVEtfQ09ORklHX1BJWEVMUywgICAgICAgICItYm9yZGVyd2lkdGgiLCAg ICAiYm9yZGVyV2lkdGgiLCAgICAiQm9yZGVyV2lkdGgiLAorLSAgICAgIERFRl9QTEZSQU1FX0JP UkRFUl9XSURUSCwgVGtfT2Zmc2V0KCBQbFBsb3R0ZXIsIGJvcmRlcldpZHRoICksIDAgfSwKKysg ICAgICBERUZfUExGUkFNRV9CT1JERVJfV0lEVEgsIG9mZnNldG9mKCBQbFBsb3R0ZXIsIGJvcmRl cldpZHRoICksIDAgfSwKKyAgICAgeyBUS19DT05GSUdfQk9PTEVBTiwgICAgICAgIi1kb3VibGVi dWZmZXIiLCAgIChjaGFyICopIE5VTEwsICAgIChjaGFyICopIE5VTEwsCistICAgICAgIjAiLCBU a19PZmZzZXQoIFBsUGxvdHRlciwgZG91YmxlX2J1ZmZlciApLCBUS19DT05GSUdfRE9OVF9TRVRf REVGQVVMVCB9LAorKyAgICAgICIwIiwgb2Zmc2V0b2YoIFBsUGxvdHRlciwgZG91YmxlX2J1ZmZl ciApLCBUS19DT05GSUdfRE9OVF9TRVRfREVGQVVMVCB9LAorICAgICB7IFRLX0NPTkZJR19BQ1RJ VkVfQ1VSU09SLCAiLWN1cnNvciIsICAgICAgICAgImN1cnNvciIsICAgICAgICAgIkN1cnNvciIs CistICAgICAgREVGX1BMRlJBTUVfQ1VSU09SLCBUa19PZmZzZXQoIFBsUGxvdHRlciwgY3Vyc29y ICksIFRLX0NPTkZJR19OVUxMX09LIH0sCisrICAgICAgREVGX1BMRlJBTUVfQ1VSU09SLCBvZmZz ZXRvZiggUGxQbG90dGVyLCBjdXJzb3IgKSwgVEtfQ09ORklHX05VTExfT0sgfSwKKyAgICAgeyBU S19DT05GSUdfU1RSSU5HLCAgICAgICAgIi1lb3BjbWQiLCAgICAgICAgICJlb3BjbWQiLCAgICAg ICAgICJQZ0NvbW1hbmQiLAorLSAgICAgIChjaGFyICopIE5VTEwsIFRrX09mZnNldCggUGxQbG90 dGVyLCBlb3BDbWQgKSwgVEtfQ09ORklHX05VTExfT0sgfSwKKysgICAgICAoY2hhciAqKSBOVUxM LCBvZmZzZXRvZiggUGxQbG90dGVyLCBlb3BDbWQgKSwgVEtfQ09ORklHX05VTExfT0sgfSwKKyAg ICAgeyBUS19DT05GSUdfUElYRUxTLCAgICAgICAgIi1oZWlnaHQiLCAgICAgICAgICJoZWlnaHQi LCAgICAgICAgICJIZWlnaHQiLAorLSAgICAgIERFRl9QTEZSQU1FX0hFSUdIVCwgVGtfT2Zmc2V0 KCBQbFBsb3R0ZXIsIGhlaWdodCApLCAwIH0sCisrICAgICAgREVGX1BMRlJBTUVfSEVJR0hULCBv ZmZzZXRvZiggUGxQbG90dGVyLCBoZWlnaHQgKSwgMCB9LAorICAgICB7IFRLX0NPTkZJR19SRUxJ RUYsICAgICAgICAiLXJlbGllZiIsICAgICAgICAgInJlbGllZiIsICAgICAgICAgIlJlbGllZiIs CistICAgICAgREVGX1BMRlJBTUVfUkVMSUVGLCBUa19PZmZzZXQoIFBsUGxvdHRlciwgcmVsaWVm ICksIDAgfSwKKysgICAgICBERUZfUExGUkFNRV9SRUxJRUYsIG9mZnNldG9mKCBQbFBsb3R0ZXIs IHJlbGllZiApLCAwIH0sCisgICAgIHsgVEtfQ09ORklHX1BJWEVMUywgICAgICAgICItd2lkdGgi LCAgICAgICAgICAid2lkdGgiLCAgICAgICAgICAiV2lkdGgiLAorLSAgICAgIERFRl9QTEZSQU1F X1dJRFRILCBUa19PZmZzZXQoIFBsUGxvdHRlciwgd2lkdGggKSwgMCB9LAorKyAgICAgIERFRl9Q TEZSQU1FX1dJRFRILCBvZmZzZXRvZiggUGxQbG90dGVyLCB3aWR0aCApLCAwIH0sCisgICAgIHsg VEtfQ09ORklHX0JPT0xFQU4sICAgICAgICIteGhhaXJzIiwgICAgICAgICAoY2hhciAqKSBOVUxM LCAgICAoY2hhciAqKSBOVUxMLAorLSAgICAgICIwIiwgVGtfT2Zmc2V0KCBQbFBsb3R0ZXIsIHho YWlycyApLCBUS19DT05GSUdfRE9OVF9TRVRfREVGQVVMVCB9LAorKyAgICAgICIwIiwgb2Zmc2V0 b2YoIFBsUGxvdHRlciwgeGhhaXJzICksIFRLX0NPTkZJR19ET05UX1NFVF9ERUZBVUxUIH0sCisg ICAgIHsgVEtfQ09ORklHX0JPT0xFQU4sICAgICAgICItcnViYmVyYmFuZCIsICAgICAoY2hhciAq KSBOVUxMLCAgICAoY2hhciAqKSBOVUxMLAorLSAgICAgICIwIiwgVGtfT2Zmc2V0KCBQbFBsb3R0 ZXIsIHJiYW5kICksIFRLX0NPTkZJR19ET05UX1NFVF9ERUZBVUxUIH0sCisrICAgICAgIjAiLCBv ZmZzZXRvZiggUGxQbG90dGVyLCByYmFuZCApLCBUS19DT05GSUdfRE9OVF9TRVRfREVGQVVMVCB9 LAorICAgICB7IFRLX0NPTkZJR19TVFJJTkcsICAgICAgICAiLXhzY3JvbGxjb21tYW5kIiwgInhT Y3JvbGxDb21tYW5kIiwgIlNjcm9sbENvbW1hbmQiLAorLSAgICAgIChjaGFyICopIE5VTEwsIFRr X09mZnNldCggUGxQbG90dGVyLCB4U2Nyb2xsQ21kICksIFRLX0NPTkZJR19OVUxMX09LIH0sCisr ICAgICAgKGNoYXIgKikgTlVMTCwgb2Zmc2V0b2YoIFBsUGxvdHRlciwgeFNjcm9sbENtZCApLCBU S19DT05GSUdfTlVMTF9PSyB9LAorICAgICB7IFRLX0NPTkZJR19TVFJJTkcsICAgICAgICAiLXlz Y3JvbGxjb21tYW5kIiwgInlTY3JvbGxDb21tYW5kIiwgIlNjcm9sbENvbW1hbmQiLAorLSAgICAg IChjaGFyICopIE5VTEwsIFRrX09mZnNldCggUGxQbG90dGVyLCB5U2Nyb2xsQ21kICksIFRLX0NP TkZJR19OVUxMX09LIH0sCisrICAgICAgKGNoYXIgKikgTlVMTCwgb2Zmc2V0b2YoIFBsUGxvdHRl ciwgeVNjcm9sbENtZCApLCBUS19DT05GSUdfTlVMTF9PSyB9LAorICAgICB7IFRLX0NPTkZJR19F TkQsICAgICAgICAgICAoY2hhciAqKSBOVUxMLCAgICAgKGNoYXIgKikgTlVMTCwgICAgKGNoYXIg KikgTlVMTCwKKyAgICAgICAoY2hhciAqKSBOVUxMLCAwLCAwIH0KKyB9OworQEAgLTI4MiwyNyAr MjgyLDI3IEBAIHN0YXRpYyB2b2lkICBQbFBsb3R0ZXJNb3Rpb25FSCggQ2xpZW50RGEKKyBzdGF0 aWMgdm9pZCAgUGxQbG90dGVyRW50ZXJFSCggQ2xpZW50RGF0YSwgcmVnaXN0ZXIgWEV2ZW50ICog KTsKKyBzdGF0aWMgdm9pZCAgUGxQbG90dGVyTGVhdmVFSCggQ2xpZW50RGF0YSwgcmVnaXN0ZXIg WEV2ZW50ICogKTsKKyBzdGF0aWMgdm9pZCAgUGxQbG90dGVyQnV0dG9uUHJlc3NFSCggQ2xpZW50 RGF0YSBjbGllbnREYXRhLCByZWdpc3RlciBYRXZlbnQgKiApOworLXN0YXRpYyBpbnQgICBQbFBs b3R0ZXJXaWRnZXRDbWQoIENsaWVudERhdGEsIFRjbF9JbnRlcnAgKiwgaW50LCBDT05TVCBjaGFy ICoqICk7Cisrc3RhdGljIGludCAgIFBsUGxvdHRlcldpZGdldENtZCggQ2xpZW50RGF0YSwgVGNs X0ludGVycCAqLCBpbnQsIGNvbnN0IGNoYXIgKiogKTsKKyBzdGF0aWMgaW50ICAgUmVhZERhdGEo IENsaWVudERhdGEsIGludCApOworIHN0YXRpYyB2b2lkICBJbnN0YWxsX2NtYXAoIFBsUGxvdHRl ciAqcGxQbG90dGVyUHRyICk7CisgCisgLy8gVGhlc2UgYXJlIGludm9rZWQgYnkgUGxQbG90dGVy V2lkZ2V0Q21kIHRvIHByb2Nlc3Mgd2lkZ2V0IGNvbW1hbmRzCisgCistc3RhdGljIGludCAgIENs b3NlbGluayggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoqICk7 Cistc3RhdGljIGludCAgIENtZCggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05T VCBjaGFyICoqICk7Cistc3RhdGljIGludCAgIENvbmZpZ3VyZVBsUGxvdHRlciggVGNsX0ludGVy cCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoqLCBpbnQgKTsKKy1zdGF0aWMgaW50 ICAgRHJhdyggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoqICk7 Cistc3RhdGljIGludCAgIEluZm8oIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwgQ09O U1QgY2hhciAqKiApOworLXN0YXRpYyBpbnQgICBPcGVubGluayggVGNsX0ludGVycCAqLCBQbFBs b3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoqICk7Cistc3RhdGljIGludCAgIE9yaWVudCggVGNs X0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoqICk7Cistc3RhdGljIGlu dCAgIFBhZ2UoIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwgQ09OU1QgY2hhciAqKiAp OworLXN0YXRpYyBpbnQgICBOZXh0UGFnZSggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50 LCBDT05TVCBjaGFyICoqICk7Cistc3RhdGljIGludCAgIFByaW50KCBUY2xfSW50ZXJwICosIFBs UGxvdHRlciAqLCBpbnQsIENPTlNUIGNoYXIgKiogKTsKKy1zdGF0aWMgaW50ICAgUmVkcmF3KCBU Y2xfSW50ZXJwICosIFBsUGxvdHRlciAqLCBpbnQsIENPTlNUIGNoYXIgKiogKTsKKy1zdGF0aWMg aW50ICAgU2F2ZSggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoq ICk7Cistc3RhdGljIGludCAgIFZpZXcoIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwg Q09OU1QgY2hhciAqKiApOworK3N0YXRpYyBpbnQgICBDbG9zZWxpbmsoIFRjbF9JbnRlcnAgKiwg UGxQbG90dGVyICosIGludCwgY29uc3QgY2hhciAqKiApOworK3N0YXRpYyBpbnQgICBDbWQoIFRj bF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwgY29uc3QgY2hhciAqKiApOworK3N0YXRpYyBp bnQgICBDb25maWd1cmVQbFBsb3R0ZXIoIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwg Y29uc3QgY2hhciAqKiwgaW50ICk7Cisrc3RhdGljIGludCAgIERyYXcoIFRjbF9JbnRlcnAgKiwg UGxQbG90dGVyICosIGludCwgY29uc3QgY2hhciAqKiApOworK3N0YXRpYyBpbnQgICBJbmZvKCBU Y2xfSW50ZXJwICosIFBsUGxvdHRlciAqLCBpbnQsIGNvbnN0IGNoYXIgKiogKTsKKytzdGF0aWMg aW50ICAgT3BlbmxpbmsoIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwgY29uc3QgY2hh ciAqKiApOworK3N0YXRpYyBpbnQgICBPcmllbnQoIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICos IGludCwgY29uc3QgY2hhciAqKiApOworK3N0YXRpYyBpbnQgICBQYWdlKCBUY2xfSW50ZXJwICos IFBsUGxvdHRlciAqLCBpbnQsIGNvbnN0IGNoYXIgKiogKTsKKytzdGF0aWMgaW50ICAgTmV4dFBh Z2UoIFRjbF9JbnRlcnAgKiwgUGxQbG90dGVyICosIGludCwgY29uc3QgY2hhciAqKiApOworK3N0 YXRpYyBpbnQgICBQcmludCggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBjb25zdCBj aGFyICoqICk7Cisrc3RhdGljIGludCAgIFJlZHJhdyggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIg KiwgaW50LCBjb25zdCBjaGFyICoqICk7Cisrc3RhdGljIGludCAgIFNhdmUoIFRjbF9JbnRlcnAg KiwgUGxQbG90dGVyICosIGludCwgY29uc3QgY2hhciAqKiApOworK3N0YXRpYyBpbnQgICBWaWV3 KCBUY2xfSW50ZXJwICosIFBsUGxvdHRlciAqLCBpbnQsIGNvbnN0IGNoYXIgKiogKTsKKyBzdGF0 aWMgaW50ICAgU2Nyb2xsKCBUY2xfSW50ZXJwICosIFBsUGxvdHRlciAqICk7Cistc3RhdGljIGlu dCAgIHJlcG9ydCggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50LCBDT05TVCBjaGFyICoq ICk7Cisrc3RhdGljIGludCAgIHJlcG9ydCggVGNsX0ludGVycCAqLCBQbFBsb3R0ZXIgKiwgaW50 LCBjb25zdCBjaGFyICoqICk7CisgCisgLy8gUm91dGluZXMgZm9yIG1hbmlwdWxhdGluZyBncmFw aGljIGNyb3NzaGFpcnMKKyAKK0BAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIHZvaWQgIFVwZGF0 ZVJiYW5kKCBQbFBsb3R0ZXIgKiApOworIAorIC8vIFV0aWxpdHkgcm91dGluZXMKKyAKKy1zdGF0 aWMgdm9pZCAgZ2JveCggUExGTFQgKiwgUExGTFQgKiwgUExGTFQgKiwgUExGTFQgKiwgQ09OU1Qg Y2hhciAqKiApOworK3N0YXRpYyB2b2lkICBnYm94KCBQTEZMVCAqLCBQTEZMVCAqLCBQTEZMVCAq LCBQTEZMVCAqLCBjb25zdCBjaGFyICoqICk7Cisgc3RhdGljIHZvaWQgIFVwZGF0ZVZTY3JvbGxi YXIoIHJlZ2lzdGVyIFBsUGxvdHRlciAqICk7Cisgc3RhdGljIHZvaWQgIFVwZGF0ZUhTY3JvbGxi YXIoIHJlZ2lzdGVyIFBsUGxvdHRlciAqICk7CisgCitAQCAtNDY3LDcgKzQ2Nyw3IEBAIHBsUGxv dHRlckNtZCggQ2xpZW50RGF0YSBQTF9VTlVTRUQoIGNsaWUKKyAvLyBmb3IgYWN0aXZlIHBsb3QK KyAgICAgQWN0aXZlU3RhdGUoIHBsUGxvdHRlclB0ciwgMSApOworIAorLSAgICBpZiAoIENvbmZp Z3VyZVBsUGxvdHRlciggaW50ZXJwLCBwbFBsb3R0ZXJQdHIsIGFyZ2MgLSAyLCAoQ09OU1QgY2hh ciAqKikgYXJndiArIDIsIDAgKSAhPSBUQ0xfT0sgKQorKyAgICBpZiAoIENvbmZpZ3VyZVBsUGxv dHRlciggaW50ZXJwLCBwbFBsb3R0ZXJQdHIsIGFyZ2MgLSAyLCAoY29uc3QgY2hhciAqKikgYXJn diArIDIsIDAgKSAhPSBUQ0xfT0sgKQorICAgICB7CisgICAgICAgICBUa19EZXN0cm95V2luZG93 KCBwbFBsb3R0ZXJQdHItPnRrd2luICk7CisgICAgICAgICByZXR1cm4gVENMX0VSUk9SOworQEAg LTUwMSw3ICs1MDEsNyBAQCBwbFBsb3R0ZXJDbWQoIENsaWVudERhdGEgUExfVU5VU0VEKCBjbGll CisgCisgc3RhdGljIGludAorIFBsUGxvdHRlcldpZGdldENtZCggQ2xpZW50RGF0YSBjbGllbnRE YXRhLCBUY2xfSW50ZXJwICppbnRlcnAsCistICAgICAgICAgICAgICAgICAgICBpbnQgYXJnYywg Q09OU1QgY2hhciAqKmFyZ3YgKQorKyAgICAgICAgICAgICAgICAgICAgaW50IGFyZ2MsIGNvbnN0 IGNoYXIgKiphcmd2ICkKKyB7CisgICAgIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVyUHRy ID0gKFBsUGxvdHRlciAqKSBjbGllbnREYXRhOworICAgICBpbnQgIHJlc3VsdCA9IFRDTF9PSzsK K0BAIC01MTYsNyArNTE2LDcgQEAgUGxQbG90dGVyV2lkZ2V0Q21kKCBDbGllbnREYXRhIGNsaWVu dERhdAorICAgICAgICAgICAgIGFyZ3ZbMF0sICIgb3B0aW9uID9hcmcgYXJnIC4uLj9cIiIsIChj aGFyICopIE5VTEwgKTsKKyAgICAgICAgIHJldHVybiBUQ0xfRVJST1I7CisgICAgIH0KKy0gICAg VGtfUHJlc2VydmUoIChDbGllbnREYXRhKSBwbFBsb3R0ZXJQdHIgKTsKKysgICAgVGNsX1ByZXNl cnZlKCAoQ2xpZW50RGF0YSkgcGxQbG90dGVyUHRyICk7CisgICAgIGMgICAgICA9IGFyZ3ZbMV1b MF07CisgICAgIGxlbmd0aCA9IChpbnQpIHN0cmxlbiggYXJndlsxXSApOworIAorQEAgLTc4MSw3 ICs3ODEsNyBAQCBQbFBsb3R0ZXJXaWRnZXRDbWQoIENsaWVudERhdGEgY2xpZW50RGF0CisgICAg IH0KKyAKKyBkb25lOgorLSAgICBUa19SZWxlYXNlKCAoQ2xpZW50RGF0YSkgcGxQbG90dGVyUHRy ICk7CisrICAgIFRjbF9SZWxlYXNlKCAoQ2xpZW50RGF0YSkgcGxQbG90dGVyUHRyICk7CisgICAg IHJldHVybiByZXN1bHQ7CisgfQorIAorQEAgLTc5MCw3ICs3OTAsNyBAQCBkb25lOgorIC8vCisg Ly8gRGVzdHJveVBsUGxvdHRlciAtLQorIC8vCistLy8gICAgICBUaGlzIHByb2NlZHVyZSBpcyBp bnZva2VkIGJ5IFRrX0V2ZW50dWFsbHlGcmVlIG9yIFRrX1JlbGVhc2UgdG8KKysvLyAgICAgIFRo aXMgcHJvY2VkdXJlIGlzIGludm9rZWQgYnkgVGNsX0V2ZW50dWFsbHlGcmVlIG9yIFRjbF9SZWxl YXNlIHRvCisgLy8gICAgICBjbGVhbiB1cCB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIGEgcGxm cmFtZSBhdCBhIHNhZmUgdGltZQorIC8vICAgICAgKHdoZW4gbm8tb25lIGlzIHVzaW5nIGl0IGFu eW1vcmUpLgorIC8vCitAQCAtOTE4LDcgKzkxOCw3IEBAIFBsUGxvdHRlckNvbmZpZ3VyZUVIKCBD bGllbnREYXRhIGNsaWVudEQKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBUY2xfQ2FuY2VsSWRs ZUNhbGwoIERpc3BsYXlQbFBsb3R0ZXIsIChDbGllbnREYXRhKSBwbFBsb3R0ZXJQdHIgKTsKKyAg ICAgICAgIH0KKy0gICAgICAgIFRrX0V2ZW50dWFsbHlGcmVlKCAoQ2xpZW50RGF0YSkgcGxQbG90 dGVyUHRyLCAoVGNsX0ZyZWVQcm9jICopIERlc3Ryb3lQbFBsb3R0ZXIgKTsKKysgICAgICAgIFRj bF9FdmVudHVhbGx5RnJlZSggKENsaWVudERhdGEpIHBsUGxvdHRlclB0ciwgKFRjbF9GcmVlUHJv YyAqKSBEZXN0cm95UGxQbG90dGVyICk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBN YXBOb3RpZnk6CitAQCAtMTYxMCw3ICsxNjEwLDcgQEAgRGlzcGxheVBsUGxvdHRlciggQ2xpZW50 RGF0YSBjbGllbnREYXRhCisgCisgc3RhdGljIGludAorIHNjb2wwKCBUY2xfSW50ZXJwICppbnRl cnAsIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgICBpbnQgaSwgQ09O U1QgY2hhciAqY29sLCBpbnQgKnBfY2hhbmdlZCApCisrICAgICAgIGludCBpLCBjb25zdCBjaGFy ICpjb2wsIGludCAqcF9jaGFuZ2VkICkKKyB7CisgICAgIFBMU3RyZWFtICpwbHMgPSBwbFBsb3R0 ZXJQdHItPnBsczsKKyAgICAgWENvbG9yICAgeGNvbDsKK0BAIC0xNjU2LDcgKzE2NTYsNyBAQCBz Y29sMCggVGNsX0ludGVycCAqaW50ZXJwLCByZWdpc3RlciBQbFBsCisgCisgc3RhdGljIGludAor IHNjb2wxKCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVy UHRyLAorLSAgICAgICBpbnQgaSwgQ09OU1QgY2hhciAqY29sLCBDT05TVCBjaGFyICpwb3MsIENP TlNUIGNoYXIgKnJldiwgaW50ICpwX2NoYW5nZWQgKQorKyAgICAgICBpbnQgaSwgY29uc3QgY2hh ciAqY29sLCBjb25zdCBjaGFyICpwb3MsIGNvbnN0IGNoYXIgKnJldiwgaW50ICpwX2NoYW5nZWQg KQorIHsKKyAgICAgUExTdHJlYW0gKnBscyA9IHBsUGxvdHRlclB0ci0+cGxzOworICAgICBYQ29s b3IgICB4Y29sOworQEAgLTE3MjcsNyArMTcyNyw3IEBAIHNjb2wxKCBUY2xfSW50ZXJwICppbnRl cnAsIHJlZ2lzdGVyIFBsUGwKKyAKKyBzdGF0aWMgaW50CisgQ21kKCBUY2xfSW50ZXJwICppbnRl cnAsIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgaW50IGFyZ2MsIENP TlNUIGNoYXIgKiphcmd2ICkKKysgICAgIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiApCisg eworICAgICBQTFN0cmVhbSAqcGxzID0gcGxQbG90dGVyUHRyLT5wbHM7CisgICAgIGludCAgICAg IGxlbmd0aDsKK0BAIC0yMDI5LDI3ICsyMDI5LDYxIEBAIHN0YXRpYyB2b2lkIEFjdGl2ZVN0YXRl KCByZWdpc3RlciBQbFBsb3QKKyAvLworIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAvLworLS8vIENv bmZpZ3VyZVBsUGxvdHRlciAtLQorKy8vIENvbmZpZ3VyZVdpZGdldENvbXBhdCAtLQorIC8vCist Ly8gICAgICBUaGlzIHByb2NlZHVyZSBpcyBjYWxsZWQgdG8gcHJvY2VzcyBhbiBhcmd2L2FyZ2Mg bGlzdCwgcGx1cyB0aGUgVGsKKy0vLyAgICAgIG9wdGlvbiBkYXRhYmFzZSwgaW4gb3JkZXIgdG8g Y29uZmlndXJlIChvciByZWNvbmZpZ3VyZSkgYQorLS8vICAgICAgcGxmcmFtZSB3aWRnZXQuCist Ly8KKy0vLyBSZXN1bHRzOgorLS8vICAgICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhIHN0YW5kYXJk IFRjbCByZXN1bHQuICBJZiBUQ0xfRVJST1IgaXMKKy0vLyAgICAgIHJldHVybmVkLCB0aGVuIGlu dGVycC0+cmVzdWx0IGNvbnRhaW5zIGFuIGVycm9yIG1lc3NhZ2UuCistLy8KKy0vLyBTaWRlIGVm ZmVjdHM6CistLy8gICAgICBDb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRleHQg c3RyaW5nLCBjb2xvcnMsIGZvbnQsIGV0Yy4KKy0vLyAgICAgIGdldCBzZXQgZm9yIHBsUGxvdHRl clB0cjsgb2xkIHJlc291cmNlcyBnZXQgZnJlZWQsIGlmIHRoZXJlIHdlcmUKKy0vLyAgICAgIGFu eS4KKysvLyAgICAgIENvbXBhdGliaWxpdHkgd3JhcHBlciBmb3IgVGtfQ29uZmlndXJlV2lkZ2V0 LiAgVGsgOSBleHBlY3RzIHRoZQorKy8vICAgICAgYXJndW1lbnQgdmVjdG9yIGFzIFRjbF9PYmog cG9pbnRlcnMgcmF0aGVyIHRoYW4gc3RyaW5nIHBvaW50ZXJzLgorIC8vCisgLy8tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIC8vCisgCisgc3RhdGljIGludAorK0NvbmZpZ3VyZVdpZGdldENvbXBhdCggVGNs X0ludGVycCAqaW50ZXJwLCBUa19XaW5kb3cgdGt3aW4sCisrICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgVGtfQ29uZmlnU3BlYyAqY29uZmlnU3BlY3MsCisrICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjaGFyICp3aWRnUmVjLCBpbnQgZmxh Z3MgKQorK3sKKysjaWYgVEtfTUFKT1JfVkVSU0lPTiA+PSA5CisrICAgIFRjbF9PYmogKipvYmp2 ID0gTlVMTDsKKysgICAgaW50IGk7CisrICAgIGludCByZXN1bHQ7CisrCisrICAgIGlmICggYXJn YyA+IDAgKQorKyAgICB7CisrICAgICAgICBvYmp2ID0gKFRjbF9PYmogKiopIFRjbF9BbGxvYygg KHNpemVfdCkgYXJnYyAqIHNpemVvZiggVGNsX09iaiAqICkgKTsKKysgICAgICAgIGlmICggb2Jq diA9PSBOVUxMICkKKysgICAgICAgIHsKKysgICAgICAgICAgICBUY2xfU2V0UmVzdWx0KCBpbnRl cnAsICJvdXQgb2YgbWVtb3J5IiwgVENMX1NUQVRJQyApOworKyAgICAgICAgICAgIHJldHVybiBU Q0xfRVJST1I7CisrICAgICAgICB9CisrCisrICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGFyZ2M7 IGkrKyApCisrICAgICAgICB7CisrICAgICAgICAgICAgb2JqdltpXSA9IFRjbF9OZXdTdHJpbmdP YmooIGFyZ3ZbaV0sIC0xICk7CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgcmVzdWx0ID0g VGtfQ29uZmlndXJlV2lkZ2V0KCBpbnRlcnAsIHRrd2luLCBjb25maWdTcGVjcywgYXJnYywKKysg ICAgICAgIChUY2xfT2JqICpjb25zdCAqKSBvYmp2LCB3aWRnUmVjLCBmbGFncyApOworKworKyAg ICBpZiAoIG9ianYgIT0gTlVMTCApCisrICAgIHsKKysgICAgICAgIGZvciAoIGkgPSAwOyBpIDwg YXJnYzsgaSsrICkKKysgICAgICAgIHsKKysgICAgICAgICAgICBUY2xfRGVjclJlZkNvdW50KCBv Ymp2W2ldICk7CisrICAgICAgICB9CisrICAgICAgICBUY2xfRnJlZSggKGNoYXIgKikgb2JqdiAp OworKyAgICB9CisrCisrICAgIHJldHVybiByZXN1bHQ7CisrI2Vsc2UKKysgICAgcmV0dXJuIFRr X0NvbmZpZ3VyZVdpZGdldCggaW50ZXJwLCB0a3dpbiwgY29uZmlnU3BlY3MsIGFyZ2MsIGFyZ3Ys CisrICAgICAgICB3aWRnUmVjLCBmbGFncyApOworKyNlbmRpZgorK30KKysKKytzdGF0aWMgaW50 CisgQ29uZmlndXJlUGxQbG90dGVyKCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUGxv dHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgICAgICAgICAgICAgICAgaW50IGFyZ2MsIENPTlNU IGNoYXIgKiphcmd2LCBpbnQgZmxhZ3MgKQorKyAgICAgICAgICAgICAgICAgICAgaW50IGFyZ2Ms IGNvbnN0IGNoYXIgKiphcmd2LCBpbnQgZmxhZ3MgKQorIHsKKyAgICAgcmVnaXN0ZXIgVGtfV2lu ZG93IHRrd2luID0gcGxQbG90dGVyUHRyLT50a3dpbjsKKyAgICAgUExTdHJlYW0gICAgICAgICAg ICpwbHMgID0gcGxQbG90dGVyUHRyLT5wbHM7CitAQCAtMjA3NCw3ICsyMTA4LDcgQEAgQ29uZmln dXJlUGxQbG90dGVyKCBUY2xfSW50ZXJwICppbnRlcnAsCisgCisgICAgIGRidWdfZW50ZXIoICJD b25maWd1cmVQbFBsb3R0ZXIiICk7CisgCistICAgIGlmICggVGtfQ29uZmlndXJlV2lkZ2V0KCBp bnRlcnAsIHRrd2luLCBjb25maWdTcGVjcywKKysgICAgaWYgKCBDb25maWd1cmVXaWRnZXRDb21w YXQoIGludGVycCwgdGt3aW4sIGNvbmZpZ1NwZWNzLAorICAgICAgICAgICAgICBhcmdjLCBhcmd2 LCAoY2hhciAqKSBwbFBsb3R0ZXJQdHIsIGZsYWdzICkgIT0gVENMX09LICkKKyAgICAgeworICAg ICAgICAgcmV0dXJuIFRDTF9FUlJPUjsKK0BAIC0yMTkyLDcgKzIyMjYsNyBAQCBDb25maWd1cmVQ bFBsb3R0ZXIoIFRjbF9JbnRlcnAgKmludGVycCwKKyAKKyBzdGF0aWMgaW50CisgRHJhdyggVGNs X0ludGVycCAqaW50ZXJwLCByZWdpc3RlciBQbFBsb3R0ZXIgKnBsUGxvdHRlclB0ciwKKy0gICAg ICBpbnQgYXJnYywgQ09OU1QgY2hhciAqKmFyZ3YgKQorKyAgICAgIGludCBhcmdjLCBjb25zdCBj aGFyICoqYXJndiApCisgeworICAgICByZWdpc3RlciBUa19XaW5kb3cgdGt3aW4gPSBwbFBsb3R0 ZXJQdHItPnRrd2luOworICAgICBpbnQgIHJlc3VsdCA9IFRDTF9PSzsKK0BAIC0yMjkxLDcgKzIz MjUsNyBAQCBEcmF3KCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUGxvCisgCisgc3Rh dGljIGludAorIEluZm8oIFRjbF9JbnRlcnAgKmludGVycCwgcmVnaXN0ZXIgUGxQbG90dGVyICpw bFBsb3R0ZXJQdHIsCistICAgICAgaW50IGFyZ2MsIENPTlNUIGNoYXIgKiphcmd2ICkKKysgICAg ICBpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YgKQorIHsKKyAgICAgaW50ICBsZW5ndGg7Cisg ICAgIGNoYXIgYzsKK0BAIC0yMzUzLDcgKzIzODcsNyBAQCBJbmZvKCBUY2xfSW50ZXJwICppbnRl cnAsIHJlZ2lzdGVyIFBsUGxvCisgCisgc3RhdGljIGludAorIE9wZW5saW5rKCBUY2xfSW50ZXJw ICppbnRlcnAsIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgICAgICBp bnQgYXJnYywgQ09OU1QgY2hhciAqKmFyZ3YgKQorKyAgICAgICAgICBpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YgKQorIHsKKyAjaWYgIWRlZmluZWQgKCBNQUNfVENMICkgJiYgIWRlZmluZWQg KCBfV0lOMzIgKQorICAgICByZWdpc3RlciBQTFJEZXYgICpwbHIgICA9IHBsUGxvdHRlclB0ci0+ cGxyOworQEAgLTI0MjAsOSArMjQ1NCwxNCBAQCBPcGVubGluayggVGNsX0ludGVycCAqaW50ZXJw LCByZWdpc3RlciBQCisgICAgIH0KKyAKKyAgICAgcGxyLT5wZGZzID0gcGRmX2JvcGVuKCBOVUxM LCA0MjAwICk7CisrI2lmIGRlZmluZWQoIFRDTF9NQUpPUl9WRVJTSU9OICkgJiYgVENMX01BSk9S X1ZFUlNJT04gPj0gOQorKyAgICBUY2xfQ3JlYXRlRmlsZUhhbmRsZXIoIGlvZGV2LT5mZCwgVENM X1JFQURBQkxFLCAoVGNsX0ZpbGVQcm9jICopIFJlYWREYXRhLAorKyAgICAgICAgKHZvaWQgKikg cGxQbG90dGVyUHRyICk7CisrI2Vsc2UKKyAgICAgVGNsX0NyZWF0ZUZpbGVIYW5kbGVyKCBpb2Rl di0+ZmQsCistICAgICAgICBUS19SRUFEQUJMRSwgKFRrX0ZpbGVQcm9jICopIFJlYWREYXRhLAor KyAgICAgICAgVENMX1JFQURBQkxFLCAoVGNsX0ZpbGVQcm9jICopIFJlYWREYXRhLAorICAgICAg ICAgKENsaWVudERhdGEpIHBsUGxvdHRlclB0ciApOworKyNlbmRpZgorIAorICNlbmRpZgorIAor QEAgLTI0MzgsNyArMjQ3Nyw3IEBAIE9wZW5saW5rKCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lz dGVyIFAKKyAKKyBzdGF0aWMgaW50CisgQ2xvc2VsaW5rKCBUY2xfSW50ZXJwICppbnRlcnAsIHJl Z2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgICAgICAgaW50IFBMX1VOVVNF RCggYXJnYyApLCBDT05TVCBjaGFyICoqIFBMX1VOVVNFRCggYXJndiApICkKKysgICAgICAgICAg IGludCBQTF9VTlVTRUQoIGFyZ2MgKSwgY29uc3QgY2hhciAqKiBQTF9VTlVTRUQoIGFyZ3YgKSAp CisgeworICNpZiAhZGVmaW5lZCAoIE1BQ19UQ0wgKSAmJiAhZGVmaW5lZCAoIF9XSU4zMiApCisg ICAgIHJlZ2lzdGVyIFBMUkRldiAgKnBsciAgID0gcGxQbG90dGVyUHRyLT5wbHI7CitAQCAtMjU0 Miw3ICsyNTgxLDcgQEAgUmVhZERhdGEoIENsaWVudERhdGEgY2xpZW50RGF0YSwgaW50IG1hcwor ICAgICByZWdpc3RlciBQREZzdHJtICAgICpwZGZzICA9IHBsci0+cGRmczsKKyAgICAgaW50IHJl c3VsdCA9IFRDTF9PSzsKKyAKKy0gICAgaWYgKCBtYXNrICYgVEtfUkVBREFCTEUgKQorKyAgICBp ZiAoIG1hc2sgJiBUQ0xfUkVBREFCTEUgKQorICAgICB7CisgICAgICAgICAvLyBSZWFkIGZyb20g RklGTyBvciBzb2NrZXQKKyAKK0BAIC0yNTgzLDcgKzI2MjIsNyBAQCBSZWFkRGF0YSggQ2xpZW50 RGF0YSBjbGllbnREYXRhLCBpbnQgbWFzCisgCisgc3RhdGljIGludAorIE9yaWVudCggVGNsX0lu dGVycCAqaW50ZXJwLCByZWdpc3RlciBQbFBsb3R0ZXIgKnBsUGxvdHRlclB0ciwKKy0gICAgICAg IGludCBhcmdjLCBDT05TVCBjaGFyICoqYXJndiApCisrICAgICAgICBpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YgKQorIHsKKyAgICAgaW50IHJlc3VsdCA9IFRDTF9PSzsKKyAKK0BAIC0yNjI2 LDcgKzI2NjUsNyBAQCBPcmllbnQoIFRjbF9JbnRlcnAgKmludGVycCwgcmVnaXN0ZXIgUGxQCisg Cisgc3RhdGljIGludAorIFByaW50KCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUGxv dHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgICBpbnQgUExfVU5VU0VEKCBhcmdjICksIENPTlNU IGNoYXIgKiogUExfVU5VU0VEKCBhcmd2ICkgKQorKyAgICAgICBpbnQgUExfVU5VU0VEKCBhcmdj ICksIGNvbnN0IGNoYXIgKiogUExfVU5VU0VEKCBhcmd2ICkgKQorIHsKKyAgICAgUExJTlQgaXBs czsKKyAgICAgaW50ICAgcmVzdWx0ID0gVENMX09LOworQEAgLTI3MTksNyArMjc1OCw3IEBAIFBy aW50KCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUGwKKyAKKyBzdGF0aWMgaW50Cisg TmV4dFBhZ2UoIFRjbF9JbnRlcnAgKmludGVycCwgcmVnaXN0ZXIgUGxQbG90dGVyICpwbFBsb3R0 ZXJQdHIsCistICAgICAgICAgIGludCBhcmdjLCBDT05TVCBjaGFyICoqIFBMX1VOVVNFRCggYXJn diApICkKKysgICAgICAgICAgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiogUExfVU5VU0VEKCBhcmd2 ICkgKQorIHsKKyAgICAgVGt3RGV2ICpkZXYgPSAoVGt3RGV2ICopIHBsUGxvdHRlclB0ci0+cGxz LT5kZXY7CisgICAgIGlmICggYXJnYyA9PSAwICkKK0BAIC0yNzQ1LDcgKzI3ODQsNyBAQCBOZXh0 UGFnZSggVGNsX0ludGVycCAqaW50ZXJwLCByZWdpc3RlciBQCisgCisgc3RhdGljIGludAorIFBh Z2UoIFRjbF9JbnRlcnAgKmludGVycCwgcmVnaXN0ZXIgUGxQbG90dGVyICpwbFBsb3R0ZXJQdHIs CistICAgICAgaW50IGFyZ2MsIENPTlNUIGNoYXIgKiphcmd2ICkKKysgICAgICBpbnQgYXJnYywg Y29uc3QgY2hhciAqKmFyZ3YgKQorIHsKKyAvLyBwYWdlIC0tIHJldHVybiBjdXJyZW50IGRldmlj ZSB3aW5kb3cgcGFyYW1ldGVycworIAorQEAgLTI3ODYsNyArMjgyNSw3IEBAIFBhZ2UoIFRjbF9J bnRlcnAgKmludGVycCwgcmVnaXN0ZXIgUGxQbG8KKyAKKyBzdGF0aWMgaW50CisgUmVkcmF3KCBU Y2xfSW50ZXJwICogUExfVU5VU0VEKCBpbnRlcnAgKSwgcmVnaXN0ZXIgUGxQbG90dGVyICpwbFBs b3R0ZXJQdHIsCistICAgICAgICBpbnQgUExfVU5VU0VEKCBhcmdjICksIENPTlNUIGNoYXIgKiog UExfVU5VU0VEKCBhcmd2ICkgKQorKyAgICAgICAgaW50IFBMX1VOVVNFRCggYXJnYyApLCBjb25z dCBjaGFyICoqIFBMX1VOVVNFRCggYXJndiApICkKKyB7CisgICAgIGRidWdfZW50ZXIoICJSZWRy YXciICk7CisgCitAQCAtMjgxMCw3ICsyODQ5LDcgQEAgUmVkcmF3KCBUY2xfSW50ZXJwICogUExf VU5VU0VEKCBpbnRlcnAgKQorIAorIHN0YXRpYyBpbnQKKyBTYXZlKCBUY2xfSW50ZXJwICppbnRl cnAsIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90dGVyUHRyLAorLSAgICAgIGludCBhcmdjLCBD T05TVCBjaGFyICoqYXJndiApCisrICAgICAgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2ICkK KyB7CisgICAgIGludCAgbGVuZ3RoOworICAgICBjaGFyIGM7CitAQCAtMjk0Miw3ICsyOTgxLDcg QEAgU2F2ZSggVGNsX0ludGVycCAqaW50ZXJwLCByZWdpc3RlciBQbFBsbworIAorIHN0YXRpYyBp bnQKKyBWaWV3KCBUY2xfSW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUGxvdHRlciAqcGxQbG90 dGVyUHRyLAorLSAgICAgIGludCBhcmdjLCBDT05TVCBjaGFyICoqYXJndiApCisrICAgICAgaW50 IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2ICkKKyB7CisgICAgIGludCAgIGxlbmd0aDsKKyAgICAg aW50ICAgZG9udFJlZHJhdyA9IDA7CitAQCAtMzA5NCw3ICszMTMzLDcgQEAgU2Nyb2xsKCBUY2xf SW50ZXJwICppbnRlcnAsIHJlZ2lzdGVyIFBsUAorIAorIHN0YXRpYyBpbnQKKyByZXBvcnQoIFRj bF9JbnRlcnAgKmludGVycCwgcmVnaXN0ZXIgUGxQbG90dGVyICpwbFBsb3R0ZXJQdHIsCistICAg ICAgICBpbnQgYXJnYywgQ09OU1QgY2hhciAqKmFyZ3YgKQorKyAgICAgICAgaW50IGFyZ2MsIGNv bnN0IGNoYXIgKiphcmd2ICkKKyB7CisgICAgIFBMRkxUIHgsIHk7CisgICAgIGNoYXIgIHJlc1s0 MF07CitAQCAtMzIwNCw3ICszMjQzLDcgQEAgVXBkYXRlSFNjcm9sbGJhciggcmVnaXN0ZXIgUGxQ bG90dGVyICpwbAorIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKyBzdGF0aWMgdm9pZAorLWdib3go IFBMRkxUICp4bCwgUExGTFQgKnlsLCBQTEZMVCAqeHIsIFBMRkxUICp5ciwgQ09OU1QgY2hhciAq KmFyZ3YgKQorK2dib3goIFBMRkxUICp4bCwgUExGTFQgKnlsLCBQTEZMVCAqeHIsIFBMRkxUICp5 ciwgY29uc3QgY2hhciAqKmFyZ3YgKQorIHsKKyAgICAgUExGTFQgeDAsIHkwLCB4MSwgeTE7Cisg CitkaWZmIC11cCBwbHBsb3QtNS4xNS4wL2RyaXZlcnMvdGsuYy50Y2w5IHBscGxvdC01LjE1LjAv ZHJpdmVycy90ay5jCistLS0gcGxwbG90LTUuMTUuMC9kcml2ZXJzL3RrLmMudGNsOQkyMDE5LTA2 LTAxIDE3OjI0OjMzLjAwMDAwMDAwMCAtMDYwMAorKysrIHBscGxvdC01LjE1LjAvZHJpdmVycy90 ay5jCTIwMjYtMDctMzAgMTc6NDg6MzEuMjk3MDE1MzUwIC0wNjAwCitAQCAtNjMxLDcgKzYzMSw3 IEBAIEdldEN1cnNvciggUExTdHJlYW0gKnBscywgUExHcmFwaGljc0luICoKKyAKKyAgICAgd2hp bGUgKCBnaW4tPnBYIDwgMCAmJiBkZXYtPmxvY2F0ZV9tb2RlICkKKyAgICAgeworLSAgICAgICAg VGtfRG9PbmVFdmVudCggMCApOworKyAgICAgICAgVGNsX0RvT25lRXZlbnQoIDAgKTsKKyAgICAg fQorIAorIC8vIENsZWFuIHVwCitAQCAtMTE4MCw3ICsxMTgwLDcgQEAgbGF1bmNoX3NlcnZlcigg UExTdHJlYW0gKnBscyApCisgLy8gVGhpcyBjb3VsZG4ndCBiZSBkb25lIHdpdGgKKyAvLwlUY2xf U2V0VmFyKGRldi0+aW50ZXJwLCAidGNsX2ludGVyYWN0aXZlIiwgIjAiLCBUQ0xfR0xPQkFMX09O TFkpOworIC8vIGFmdGVyIHBsc2VydmVyIGhhcyBiZWVuIGxhdW5jaGVkPyBJdCBkb2VzbnQgd29y aywgaG9ld2V2ZXIuCistLy8gVGtfQ3JlYXRlRmlsZUhhbmRsZXIgKDAsIFRLX1JFQURBQkxFLCBO VUxMLCAwKSBkb2VzbnQgd29yayBhbHNvCisrLy8gVGtfQ3JlYXRlRmlsZUhhbmRsZXIgKDAsIFRD TF9SRUFEQUJMRSwgTlVMTCwgMCkgZG9lc250IHdvcmsgYWxzbworIC8vCisgCisgICAgIGFyZ3Zb aSsrXSA9ICItZmlsZSI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnR1cCBmaWxlCitA QCAtMTYwMiw3ICsxNjAyLDcgQEAgV2FpdEZvclBhZ2UoIFBMU3RyZWFtICpwbHMgKQorIAorICAg ICB3aGlsZSAoICFkZXYtPmV4aXRfZXZlbnRsb29wICkKKyAgICAgeworLSAgICAgICAgVGtfRG9P bmVFdmVudCggMCApOworKyAgICAgICAgVGNsX0RvT25lRXZlbnQoIDAgKTsKKyAgICAgfQorICAg ICBkZXYtPmV4aXRfZXZlbnRsb29wID0gMDsKKyB9CitAQCAtMjE3OSw3ICsyMTc5LDcgQEAgdGtf d2FpdCggUExTdHJlYW0gKnBscywgY29uc3QgY2hhciAqY21kCisgICAgICAgICBpZiAoIHJlc3Vs dCApCisgICAgICAgICAgICAgYnJlYWs7CisgCistICAgICAgICBUa19Eb09uZUV2ZW50KCAwICk7 CisrICAgICAgICBUY2xfRG9PbmVFdmVudCggMCApOworICAgICB9CisgfQorIAorZGlmZiAtdXAg cGxwbG90LTUuMTUuMC9kcml2ZXJzL3Rrd2luLmMudGNsOSBwbHBsb3QtNS4xNS4wL2RyaXZlcnMv dGt3aW4uYworLS0tIHBscGxvdC01LjE1LjAvZHJpdmVycy90a3dpbi5jLnRjbDkJMjAxOS0wNi0w MSAxNzoyNDozMy4wMDAwMDAwMDAgLTA2MDAKKysrKyBwbHBsb3QtNS4xNS4wL2RyaXZlcnMvdGt3 aW4uYwkyMDI2LTA3LTMwIDE3OjQ4OjMxLjI5NzcyNTYzMyAtMDYwMAorQEAgLTk3OSw3ICs5Nzks MTEgQEAgSW5pdCggUExTdHJlYW0gKnBscyApCisgLy8gR2V0IGluaXRpYWwgZHJhd2luZyBhcmVh IGRpbWVuc2lvbnMKKyAgICAgZGV2LT53aWR0aCAgPSAodW5zaWduZWQgaW50KSBUa19XaWR0aCgg cGxmLT50a3dpbiApOworICAgICBkZXYtPmhlaWdodCA9ICh1bnNpZ25lZCBpbnQpIFRrX0hlaWdo dCggcGxmLT50a3dpbiApOworKyNpZiBkZWZpbmVkKCBUS19NQUpPUl9WRVJTSU9OICkgJiYgVEtf TUFKT1JfVkVSU0lPTiA+PSA5CisrICAgIGRldi0+Ym9yZGVyID0gKHVuc2lnbmVkIGludCkgVGtf SW50ZXJuYWxCb3JkZXJMZWZ0KCBwbGYtPnRrd2luICk7CisrI2Vsc2UKKyAgICAgZGV2LT5ib3Jk ZXIgPSAodW5zaWduZWQgaW50KSBUa19JbnRlcm5hbEJvcmRlcldpZHRoKCBwbGYtPnRrd2luICk7 CisrI2VuZGlmCisgICAgIHRrd2QtPmRlcHRoID0gKHVuc2lnbmVkIGludCkgVGtfRGVwdGgoIHBs Zi0+dGt3aW4gKTsKKyAKKyAgICAgZGV2LT5pbml0X3dpZHRoICA9IGRldi0+d2lkdGg7CgpkaWZm IC0tZ2l0IGEvcGxwbG90LnNwZWMgYi9wbHBsb3Quc3BlYwppbmRleCBhODhlYTU5Li42OTM4Nzcz IDEwMDY0NAotLS0gYS9wbHBsb3Quc3BlYworKysgYi9wbHBsb3Quc3BlYwpAQCAtMTAxLDYgKzEw MSw5IEBAIFBhdGNoMTU6ICAgICAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL3BscGxvdC9z dXBwb3J0LXJlcXVlc3RzL19kaXNjdXNzL3RocmVhCiAjIFJlcGxhY2UgcmVtb3ZlZCBQeXRob24g MiBDIEFQSSBtYWNyb3Mgd2l0aCBQeXRob24gMyBlcXVpdmFsZW50cwogIyBmb3IgY29tcGF0aWJp bGl0eSB3aXRoIFNXSUcgNC41LjAKIFBhdGNoMTY6ICAgICAgICBwbHBsb3Qtc3dpZzQ1LnBhdGNo CisjIFRjbC9UayA5IHN1cHBvcnQKKyMgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9wbHBsb3Qv cGxwbG90L21lcmdlLXJlcXVlc3RzLzkvCitQYXRjaDE3OiAgICAgICAgcGxwbG90LXRjbDkucGF0 Y2gKIAogCiBCdWlsZFJlcXVpcmVzOiAgY21ha2UgPj0gMy4xMy4yCkBAIC0xMzgsOCArMTQxLDgg QEAgT2Jzb2xldGVzOiAgICAgICV7bmFtZX0tamF2YS1kZXZlbCA8ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQogJWVuZGlmCiBCdWlsZFJlcXVpcmVzOiAgZnJlZXR5cGUtZGV2ZWwsIHFodWxsLWRldmVs ICwgbmN1cnNlcy1kZXZlbAogQnVpbGRSZXF1aXJlczogIGdkLWRldmVsCi1CdWlsZFJlcXVpcmVz OiAgdGNsLWRldmVsIDwgMTo5Ci1CdWlsZFJlcXVpcmVzOiAgdGstZGV2ZWwgPCAxOjkKK0J1aWxk UmVxdWlyZXM6ICB0Y2wtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICB0ay1kZXZlbAogJWlmICV7d2l0 aCBpdGNsfQogQnVpbGRSZXF1aXJlczogIGl0Y2wtZGV2ZWwsIGl0ay1kZXZlbAogQnVpbGRSZXF1 aXJlczogIGl3aWRnZXRzCkBAIC0xODUsNiArMTg4LDcgQEAgQnVpbGRSZXF1aXJlczogIHhvcmct eDExLWRydi1kdW1teQogQnVpbGRSZXF1aXJlczogIG1lc2EtZHJpLWRyaXZlcnMKICVlbmRpZgog QnVpbGRSZXF1aXJlczogIGNocnBhdGgKK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWxpYnMlez9f aXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogUmVxdWlyZXM6ICAgICAgIGdudS1mcmVlLW1v bm8tZm9udHMKIFJlcXVpcmVzOiAgICAgICBnbnUtZnJlZS1zYW5zLWZvbnRzCiBSZXF1aXJlczog ICAgICAgZ251LWZyZWUtc2VyaWYtZm9udHMKQEAgLTQzMyw2ICs0MzcsNyBAQCBSZXF1aXJlczog ICAgICAgd3hHVEstZGV2ZWwlez9faXNhfQogJXBhdGNoIC1QMTQgLXAxCiAlcGF0Y2ggLVAxNSAt cDEKICVwYXRjaCAtUDE2IC1wMQorJXBhdGNoIC1QMTcgLXAxIC1iIC50Y2w5CiAjIFVzZSBjbWFr ZSBGaW5kTHVhCiBybSBjbWFrZS9tb2R1bGVzL0ZpbmRMdWEuY21ha2UKIAo=