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.8.0-0.8 Date: Mon, 29 Jun 2026 12:25:42 GMT Message-ID: <178273594246.1.14680886945990832730.rpms-gcc-99eb194caf98@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 99eb194caf98c40f68bfea7318e2ad66b2ca3d6a QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogOTllYjE5NGNhZjk4YzQwZjY4YmZlYTczMThlMmFkNjZi MmNhM2Q2YQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDEzLTAxLTMxVDIxOjIxOjM3KzAxOjAwClN0YXRzICA6ICsyOC8tMTMxMiBpbiA0IGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2MvYy85OWVi MTk0Y2FmOThjNDBmNjhiZmVhNzMxOGUyYWQ2NmIyY2EzZDZhP2JyYW5jaD1yaGVsLWY0MS1iYXNl CgpMb2c6CjQuOC4wLTAuOAoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9y ZQppbmRleCA5MTQ0MWI1Li4yZjE5OThlIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5n aXRpZ25vcmUKQEAgLTU2LDMgKzU2LDQgQEAKIC9nY2MtNC44LjAtMjAxMzAxMjIudGFyLmJ6Mgog L2djYy00LjguMC0yMDEzMDEyNC50YXIuYnoyCiAvZ2NjLTQuOC4wLTIwMTMwMTI5LnRhci5iejIK Ky9nY2MtNC44LjAtMjAxMzAxMzEudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2djYy5zcGVjIGIvZ2Nj LnNwZWMKaW5kZXggM2Y1MWNhYi4uNGY2NDEyMiAxMDA2NDQKLS0tIGEvZ2NjLnNwZWMKKysrIGIv Z2NjLnNwZWMKQEAgLTEsOSArMSw5IEBACi0lZ2xvYmFsIERBVEUgMjAxMzAxMjkKLSVnbG9iYWwg U1ZOUkVWIDE5NTUyNworJWdsb2JhbCBEQVRFIDIwMTMwMTMxCislZ2xvYmFsIFNWTlJFViAxOTU2 MjYKICVnbG9iYWwgZ2NjX3ZlcnNpb24gNC44LjAKICMgTm90ZSwgZ2NjX3JlbGVhc2UgbXVzdCBi ZSBpbnRlZ2VyLCBpZiB5b3Ugd2FudCB0byBhZGQgc3VmZml4ZXMgdG8KICMgJXtyZWxlYXNlfSwg YXBwZW5kIHRoZW0gYWZ0ZXIgJXtnY2NfcmVsZWFzZX0gb24gUmVsZWFzZTogbGluZS4KLSVnbG9i YWwgZ2NjX3JlbGVhc2UgMC43CislZ2xvYmFsIGdjY19yZWxlYXNlIDAuOAogJWdsb2JhbCBfdW5w YWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWdsb2JhbCBtdWx0aWxpYl82NF9hcmNo cyBzcGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAogJWlmYXJjaCAle2l4ODZ9IHg4Nl82NCBpYTY0 IHBwYyBwcGM2NCBhbHBoYQpAQCAtMjYsNyArMjYsNyBAQAogJWVsc2UKICVnbG9iYWwgYnVpbGRf bGlicXVhZG1hdGggMAogJWVuZGlmCi0laWZhcmNoICV7aXg4Nn0geDg2XzY0CislaWZhcmNoICV7 aXg4Nn0geDg2XzY0IHBwYyBwcGM2NAogJWdsb2JhbCBidWlsZF9saWJhc2FuIDEKICVlbHNlCiAl Z2xvYmFsIGJ1aWxkX2xpYmFzYW4gMApAQCAtNDYsMTEgKzQ2LDcgQEAKICVlbHNlCiAlZ2xvYmFs IGJ1aWxkX2xpYml0bSAwCiAlZW5kaWYKLSVpZiAwJXs/cmhlbH0gPj0gNwotJWdsb2JhbCBidWls ZF9jbG9vZyAwCi0lZWxzZQogJWdsb2JhbCBidWlsZF9jbG9vZyAxCi0lZW5kaWYKICVnbG9iYWwg YnVpbGRfbGlic3RkY3h4X2RvY3MgMQogIyBJZiB5b3UgZG9uJ3QgaGF2ZSBhbHJlYWR5IGEgdXNh YmxlIGdjYy1qYXZhIGFuZCBsaWJnY2ogZm9yIHlvdXIgYXJjaCwKICMgZG8gb24gc29tZSBhcmNo IHdoaWNoIGhhcyBpdCBycG1idWlsZCAtYmMgLS13aXRoIGphdmFfdGFyIGdjYy5zcGVjCkBAIC0x OTgsNyArMTk0LDYgQEAgUGF0Y2gxMDogZ2NjNDgtcHIzODc1Ny5wYXRjaAogUGF0Y2gxMTogZ2Nj NDgtbGlic3RkYysrLWRvY3MucGF0Y2gKIFBhdGNoMTI6IGdjYzQ4LW5vLWFkZC1uZWVkZWQucGF0 Y2gKIFBhdGNoMTM6IGdjYzQ4LXByNTU2MDgucGF0Y2gKLVBhdGNoMTQ6IGdjYzQ4LXByNTU3NDIu cGF0Y2gKIAogUGF0Y2gxMDAwOiBmYXN0amFyLTAuOTctc2VnZmF1bHQucGF0Y2gKIFBhdGNoMTAw MTogZmFzdGphci0wLjk3LWxlbjEucGF0Y2gKQEAgLTIyMiwxMSArMjE3LDExIEBAIFBhdGNoMTAw NDogZmFzdGphci1tYW4ucGF0Y2gKICVlbmRpZgogCiAlZGVzY3JpcHRpb24KLVRoZSBnY2MgcGFj a2FnZSBjb250YWlucyB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24gdmVyc2lvbiA0LjcuCitU aGUgZ2NjIHBhY2thZ2UgY29udGFpbnMgdGhlIEdOVSBDb21waWxlciBDb2xsZWN0aW9uIHZlcnNp b24gNC44LgogWW91J2xsIG5lZWQgdGhpcyBwYWNrYWdlIGluIG9yZGVyIHRvIGNvbXBpbGUgQyBj b2RlLgogCiAlcGFja2FnZSAtbiBsaWJnY2MKLVN1bW1hcnk6IEdDQyB2ZXJzaW9uIDQuNyBzaGFy ZWQgc3VwcG9ydCBsaWJyYXJ5CitTdW1tYXJ5OiBHQ0MgdmVyc2lvbiA0Ljggc2hhcmVkIHN1cHBv cnQgbGlicmFyeQogR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKIEF1dG9yZXE6 IGZhbHNlCiAKQEAgLTI3NSw3ICsyNzAsNyBAQCBSZXF1aXJlczogbGlic3RkYysrLWRldmVsID0g JXt2ZXJzaW9ufS0le3JlbGVhc2V9CiBBdXRvcmVxOiB0cnVlCiAKICVkZXNjcmlwdGlvbiAtbiBs aWJzdGRjKystc3RhdGljCi1TdGF0aWMgbGlicmFyaWVzIGZvciB0aGUgR05VIHN0YW5kYXJkIEMr KyBsaWJyYXJ5LiAKK1N0YXRpYyBsaWJyYXJpZXMgZm9yIHRoZSBHTlUgc3RhbmRhcmQgQysrIGxp YnJhcnkuCiAKICVwYWNrYWdlIC1uIGxpYnN0ZGMrKy1kb2NzCiBTdW1tYXJ5OiBEb2N1bWVudGF0 aW9uIGZvciB0aGUgR05VIHN0YW5kYXJkIEMrKyBsaWJyYXJ5CkBAIC00NTUsNyArNDUwLDcgQEAg UmVxdWlyZXM6IGxpYml0bS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogJWRlc2NyaXB0 aW9uIC1uIGxpYml0bS1zdGF0aWMKIFRoaXMgcGFja2FnZSBjb250YWlucyBHTlUgVHJhbnNhY3Rp b25hbCBNZW1vcnkgc3RhdGljIGxpYnJhcmllcy4KIAotJXBhY2thZ2UgLW4gbGliYXRvbWljIAor JXBhY2thZ2UgLW4gbGliYXRvbWljCiBTdW1tYXJ5OiBUaGUgR05VIEF0b21pYyBsaWJyYXJ5CiBH cm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwogUmVxdWlyZXMocG9zdCk6IC9zYmlu L2luc3RhbGwtaW5mbwpAQCAtNzUxLDcgKzc0Niw2IEBAIHBhY2thZ2Ugb3Igd2hlbiBkZWJ1Z2dp bmcgdGhpcyBwYWNrYWdlLgogJWVuZGlmCiAlcGF0Y2gxMiAtcDAgLWIgLm5vLWFkZC1uZWVkZWR+ CiAlcGF0Y2gxMyAtcDAgLWIgLnByNTU2MDh+Ci0lcGF0Y2gxNCAtcDAgLUUgLWIgLnByNTU3NDJ+ CiAKICVpZiAwJXs/X2VuYWJsZV9kZWJ1Z19wYWNrYWdlc30KIGNhdCA+IHNwbGl0LWRlYnVnaW5m by5zaCA8PFxFT0YKQEAgLTgxNSw3ICs4MDksNyBAQCB0YXIgeHpmICV7U09VUkNFNH0KIHRhciB4 amYgJXtTT1VSQ0UxMH0KICVlbmRpZgogCi1zZWQgLWkgLWUgJ3MvNFwuN1wuMy80LjcuMi8nIGdj Yy9CQVNFLVZFUgorc2VkIC1pIC1lICdzLzRcLjhcLjAvNC44LjAvJyBnY2MvQkFTRS1WRVIKIGVj aG8gJ1JlZCBIYXQgJXt2ZXJzaW9ufS0le2djY19yZWxlYXNlfScgPiBnY2MvREVWLVBIQVNFCiAK ICVpZiAwJXs/ZmVkb3JhfSA+PSAxNiB8fCAwJXs/cmhlbH0gPj0gNwpAQCAtMTQ3NiwyOCArMTQ3 MCwyOCBAQCBtdiAtZiAkRlVMTFBBVEgvYWRhe2luY2x1ZGUsbGlifSAkRlVMTExQQVRILwogcHVz aGQgJEZVTExMUEFUSC9hZGFsaWIKIGlmIFsgIiV7X2xpYn0iID0gImxpYiIgXTsgdGhlbgogbG4g LXNmIC4uLy4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwuc28KLWxuIC1zZiAuLi8u Li8uLi8uLi8uLi9saWJnbmFybC0qLnNvIGxpYmduYXJsLTQuNy5zbworbG4gLXNmIC4uLy4uLy4u Ly4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwtNC44LnNvCiBsbiAtc2YgLi4vLi4vLi4vLi4v Li4vbGliZ25hdC0qLnNvIGxpYmduYXQuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8uLi9saWJnbmF0 LSouc28gbGliZ25hdC00Ljcuc28KK2xuIC1zZiAuLi8uLi8uLi8uLi8uLi9saWJnbmF0LSouc28g bGliZ25hdC00Ljguc28KIGVsc2UKIGxuIC1zZiAuLi8uLi8uLi8uLi8uLi8uLi8le19saWJ9L2xp YmduYXJsLSouc28gbGliZ25hcmwuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8uLi8uLi8le19saWJ9 L2xpYmduYXJsLSouc28gbGliZ25hcmwtNC43LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vLi4v JXtfbGlifS9saWJnbmFybC0qLnNvIGxpYmduYXJsLTQuOC5zbwogbG4gLXNmIC4uLy4uLy4uLy4u Ly4uLy4uLyV7X2xpYn0vbGliZ25hdC0qLnNvIGxpYmduYXQuc28KLWxuIC1zZiAuLi8uLi8uLi8u Li8uLi8uLi8le19saWJ9L2xpYmduYXQtKi5zbyBsaWJnbmF0LTQuNy5zbworbG4gLXNmIC4uLy4u Ly4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hdC0qLnNvIGxpYmduYXQtNC44LnNvCiBmaQogcG9w ZAogZWxzZQogcHVzaGQgJEZVTExQQVRIL2FkYWxpYgogaWYgWyAiJXtfbGlifSIgPSAibGliIiBd OyB0aGVuCiBsbiAtc2YgLi4vLi4vLi4vLi4vbGliZ25hcmwtKi5zbyBsaWJnbmFybC5zbwotbG4g LXNmIC4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwtNC43LnNvCitsbiAtc2YgLi4v Li4vLi4vLi4vbGliZ25hcmwtKi5zbyBsaWJnbmFybC00Ljguc28KIGxuIC1zZiAuLi8uLi8uLi8u Li9saWJnbmF0LSouc28gbGliZ25hdC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXQtKi5z byBsaWJnbmF0LTQuNy5zbworbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXQtKi5zbyBsaWJnbmF0 LTQuOC5zbwogZWxzZQogbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5z byBsaWJnbmFybC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5z byBsaWJnbmFybC00Ljcuc28KK2xuIC1zZiAuLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXJs LSouc28gbGliZ25hcmwtNC44LnNvCiBsbiAtc2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJn bmF0LSouc28gbGliZ25hdC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25h dC0qLnNvIGxpYmduYXQtNC43LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJn bmF0LSouc28gbGliZ25hdC00Ljguc28KIGZpCiBwb3BkCiBmaQpAQCAtMjk3NSw2ICsyOTY5LDE1 IEBAIGZpCiAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vcGx1Z2luCiAKICVjaGFuZ2Vsb2cKKyogVGh1IEphbiAzMSAyMDEzIEpha3Vi IEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuOC4wLTAuOAorLSB1cGRhdGVkIGZyb20gdHJ1 bmsKKyAgLSBQUnMgYysrLzU2MTYyLCBkZWJ1Zy81NDQxMCwgZGVidWcvNTQ1MDgsIGRlYnVnLzU1 MDU5LCBmb3J0cmFuLzU0MTA3LAorCWZvcnRyYW4vNTYxMzgsIGxpYmdvbXAvNTU1NjEsIGxpYnN0 ZGMrKy81NDMxNCwgbHRvLzU2MTQ3LAorCW1pZGRsZS1lbmQvNTMwNzMsIG90aGVyLzUzNDEzLCBv dGhlci81NDYyMCwgcnRsLW9wdGltaXphdGlvbi81NjE0NCwKKwlzYW5pdGl6ZXIvNTUzNzQsIHRh cmdldC8zOTA2NCwgdGFyZ2V0LzU2MTIxLCB0cmVlLW9wdGltaXphdGlvbi81NTI3MCwKKwl0cmVl LW9wdGltaXphdGlvbi81NjA2NCwgdHJlZS1vcHRpbWl6YXRpb24vNTYxMTMsCisJdHJlZS1vcHRp bWl6YXRpb24vNTYxNTAsIHRyZWUtb3B0aW1pemF0aW9uLzU2MTU3CisKICogVHVlIEphbiAyOSAy MDEzIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuOC4wLTAuNwogLSB1cGRhdGVk IGZyb20gdHJ1bmsKICAgLSBQUnMgYysrLzU2MDk1LCBjKysvNTYxMDQsIGMvNTYwNzgsIGZvcnRy YW4vNTM1MzcsIGZvcnRyYW4vNTU5ODQsCgpkaWZmIC0tZ2l0IGEvZ2NjNDgtcHI1NTc0Mi5wYXRj aCBiL2djYzQ4LXByNTU3NDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4 OGMyZTguLjAwMDAwMDAKLS0tIGEvZ2NjNDgtcHI1NTc0Mi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEyODggKzAsMCBAQAotMjAxMy0wMS0yMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhh dC5jb20+Ci0KLQlQUiBjKysvNTU3NDIKLQkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl92YWxp ZF90YXJnZXRfYXR0cmlidXRlX2lubmVyX3ApOiBEaWFnbm9zZQotCWludmFsaWQgYXJncyBpbnN0 ZWFkIG9mIElDRWluZyBvbiBpdC4KLQkoaXg4Nl92YWxpZF90YXJnZXRfYXR0cmlidXRlX3RyZWUp OiBSZXR1cm4gZXJyb3JfbWFya19ub2RlIGlmCi0JaXg4Nl92YWxpZF90YXJnZXRfYXR0cmlidXRl X2lubmVyX3AgZmFpbGVkLgotCShpeDg2X3ZhbGlkX3RhcmdldF9hdHRyaWJ1dGVfcCk6IFJldHVy biBmYWxzZSBvbmx5IGlmCi0JaXg4Nl92YWxpZF90YXJnZXRfYXR0cmlidXRlX3RyZWUgcmV0dXJu ZWQgZXJyb3JfbWFya19ub2RlLiAgQWxsb3cKLQl0YXJnZXQoImRlZmF1bHQiKSBhdHRyaWJ1dGUu Ci0JKHNvcnRlZF9hdHRyX3N0cmluZyk6IENoYW5nZSBhcmd1bWVudCBmcm9tIGNvbnN0IGNoYXIg KiB0byB0cmVlLAotCW1lcmdlIGluIGFsbCB0YXJnZXQgYXR0cmlidXRlIGFyZ3VtZW50cyByYXRo ZXIgdGhhbiBqdXN0IG9uZS4KLQlGb3JtYXR0aW5nIGZpeC4gIFVzZSBYTkVXVkVDIGluc3RlYWQg b2YgeG1hbGxvYyBhbmQgWERFTEVURVZFQwotCWluc3RlYWQgb2YgZnJlZS4gIEF2b2lkIHVzaW5n IHN0cmNhdC4KLQkoaXg4Nl9tYW5nbGVfZnVuY3Rpb25fdmVyc2lvbl9hc3NlbWJsZXJfbmFtZSk6 IE1hbmdsZQotCXRhcmdldCgiZGVmYXVsdCIpIGFzIGlmIG5vIHRhcmdldCBhdHRyaWJ1dGUgaXMg cHJlc2VudC4gIEFkanVzdAotCXNvcnRlZF9hdHRyX3N0cmluZyBjYWxsZXIuICBBdm9pZCBsZWFr aW5nIG1lbW9yeS4gIFVzZSBYTkVXVkVDCi0JaW5zdGVhZCBvZiB4bWFsbG9jIGFuZCBYREVMRVRF VkVDIGluc3RlYWQgb2YgZnJlZS4KLQkoaXg4Nl9mdW5jdGlvbl92ZXJzaW9ucyk6IERvbid0IHJl dHVybiB0cnVlIGlmIG9uZSBvZiB0aGUgZGVjbHMKLQlkb2Vzbid0IGhhdmUgdGFyZ2V0IGF0dHJp YnV0ZS4gIElmIHRoZXkgZG9uJ3QgYW5kIG9uZSBvZiB0aGUgZGVjbHMKLQlpcyBERUNMX0ZVTkNU SU9OX1ZFUlNJT05FRCwgcmVwb3J0IGFuIGVycm9yLiAgQWRqdXN0Ci0Jc29ydGVkX2F0dHJfc3Ry aW5nIGNhbGxlci4gIFVzZSBYREVMRVRFVkVDIGluc3RlYWQgb2YgZnJlZS4KLQkoaXg4Nl9zdXBw b3J0c19mdW5jdGlvbl92ZXJzaW9ucyk6IFJlbW92ZS4KLQkobWFrZV9uYW1lKTogRml4IHVwIGZv cm1hdHRpbmcuCi0JKG1ha2VfZGlzcGF0Y2hlcl9kZWNsKTogUmVtb3ZlIHJlc29sdmVyX25hbWUg YW5kIGl0cyBpbml0aWFsaXphdGlvbi4KLQlBdm9pZCBsZWFraW5nIG1lbW9yeS4KLQkoaXNfZnVu Y3Rpb25fZGVmYXVsdF92ZXJzaW9uKTogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMKLQl0YXJnZXQo ImRlZmF1bHQiKSBhdHRyaWJ1dGUgcmF0aGVyIHRoYW4gbm8gdGFyZ2V0IGF0dHJpYnV0ZSBhdCBh bGwuCi0JKG1ha2VfcmVzb2x2ZXJfZnVuYyk6IEF2b2lkIGxlYWtpbmcgbWVtb3J5LgotCShpeDg2 X2dlbmVyYXRlX3ZlcnNpb25fZGlzcGF0Y2hlcl9ib2R5KTogTGlrZXdpc2UuCi0JKFRBUkdFVF9P UFRJT05fU1VQUE9SVFNfRlVOQ1RJT05fVkVSU0lPTlMpOiBSZW1vdmUuCi0JKiB0YXJnZXQuZGVm IChzdXBwb3J0c19mdW5jdGlvbl92ZXJzaW9ucyk6IFJlbW92ZS4KLQkqIGRvYy90bS50ZXhpLmlu IChTVVBQT1JUU19GVU5DVElPTl9WRVJTSU9OUyk6IFJlbW92ZS4KLQkqIGRvYy90bS50ZXhpOiBS ZWdlbmVyYXRlZC4KLQotCSogYy1jb21tb24uYyAoaGFuZGxlX3RhcmdldF9hdHRyaWJ1dGUpOiBS ZXZlcnQgMjAxMi0xMi0yNiBjaGFuZ2UuCi0KLQkqIGcrKy5kZy9tdjEuQzogTW92ZWQgdG8uLi4K LQkqIGcrKy5kZy9leHQvbXYxLkM6IC4uLiBoZXJlLiAgQWRqdXN0IHRlc3QuCi0JKiBnKysuZGcv bXYyLkM6IE1vdmVkIHRvLi4uCi0JKiBnKysuZGcvZXh0L212Mi5DOiAuLi4gaGVyZS4gIEFkanVz dCB0ZXN0LgotCSogZysrLmRnL212My5DOiBNb3ZlZCB0by4uLgotCSogZysrLmRnL2V4dC9tdjMu QzogLi4uIGhlcmUuCi0JKiBnKysuZGcvbXY0LkM6IE1vdmVkIHRvLi4uCi0JKiBnKysuZGcvZXh0 L212NC5DOiAuLi4gaGVyZS4KLQkqIGcrKy5kZy9tdjUuQzogTW92ZWQgdG8uLi4KLQkqIGcrKy5k Zy9leHQvbXY1LkM6IC4uLiBoZXJlLiAgQWRqdXN0IHRlc3QuCi0JKiBnKysuZGcvbXY2LkM6IE1v dmVkIHRvLi4uCi0JKiBnKysuZGcvZXh0L212Ni5DOiAuLi4gaGVyZS4gIEFkanVzdCB0ZXN0Lgot CSogZysrLmRnL2V4dC9tdjcuQzogTmV3IHRlc3QuCi0JKiBnKysuZGcvZXh0L212OC5DOiBOZXcg dGVzdC4KLQkqIGcrKy5kZy9leHQvbXY5LkM6IE5ldyB0ZXN0LgotCSogZysrLmRnL2V4dC9tdjEw LkM6IE5ldyB0ZXN0LgotCSogZysrLmRnL2V4dC9tdjExLkM6IE5ldyB0ZXN0LgotCi0tLS0gZ2Nj L2NvbmZpZy9pMzg2L2kzODYuYy5qagkyMDEzLTAxLTIxIDEwOjU3OjA4LjMyNTk0NTQ2OSArMDEw MAotKysrIGdjYy9jb25maWcvaTM4Ni9pMzg2LmMJMjAxMy0wMS0yMSAxMjowMjo1OS4zODQ3MDEz OTQgKzAxMDAKLUBAIC00MjIzLDcgKzQyMjMsMTAgQEAgaXg4Nl92YWxpZF90YXJnZXRfYXR0cmli dXRlX2lubmVyX3AgKHRyZQotICAgICB9Ci0gCi0gICBlbHNlIGlmIChUUkVFX0NPREUgKGFyZ3Mp ICE9IFNUUklOR19DU1QpCi0tICAgIGdjY191bnJlYWNoYWJsZSAoKTsKLSsgICAgewotKyAgICAg IGVycm9yICgiYXR0cmlidXRlICU8dGFyZ2V0JT4gYXJndW1lbnQgbm90IGEgc3RyaW5nIik7Ci0r ICAgICAgcmV0dXJuIGZhbHNlOwotKyAgICB9Ci0gCi0gICAvKiBIYW5kbGUgbXVsdGlwbGUgYXJn dW1lbnRzIHNlcGFyYXRlZCBieSBjb21tYXMuICAqLwotICAgbmV4dF9vcHRzdHIgPSBBU1RSRFVQ IChUUkVFX1NUUklOR19QT0lOVEVSIChhcmdzKSk7Ci1AQCAtNDM2OCw3ICs0MzcxLDcgQEAgaXg4 Nl92YWxpZF90YXJnZXRfYXR0cmlidXRlX3RyZWUgKHRyZWUgYQotICAgLyogUHJvY2VzcyBlYWNo IG9mIHRoZSBvcHRpb25zIG9uIHRoZSBjaGFpbi4gICovCi0gICBpZiAoISBpeDg2X3ZhbGlkX3Rh cmdldF9hdHRyaWJ1dGVfaW5uZXJfcCAoYXJncywgb3B0aW9uX3N0cmluZ3MsCi0gCQkJCQkgICAg ICZlbnVtX29wdHNfc2V0KSkKLS0gICAgcmV0dXJuIE5VTExfVFJFRTsKLSsgICAgcmV0dXJuIGVy cm9yX21hcmtfbm9kZTsKLSAKLSAgIC8qIElmIHRoZSBjaGFuZ2VkIG9wdGlvbnMgYXJlIGRpZmZl cmVudCBmcm9tIHRoZSBkZWZhdWx0LCByZXJ1bgotICAgICAgaXg4Nl9vcHRpb25fb3ZlcnJpZGVf aW50ZXJuYWwsIGFuZCB0aGVuIHNhdmUgdGhlIG9wdGlvbnMgYXdheS4KLUBAIC00NDMzLDYgKzQ0 MzYsMTUgQEAgaXg4Nl92YWxpZF90YXJnZXRfYXR0cmlidXRlX3AgKHRyZWUgZm5kZQotIHsKLSAg IHN0cnVjdCBjbF90YXJnZXRfb3B0aW9uIGN1cl90YXJnZXQ7Ci0gICBib29sIHJldCA9IHRydWU7 Ci0rCi0rICAvKiBhdHRyaWJ1dGUoKHRhcmdldCgiZGVmYXVsdCIpKSkgZG9lcyBub3RoaW5nLCBi ZXlvbmQKLSsgICAgIGFmZmVjdGluZyBtdWx0aS12ZXJzaW9uaW5nLiAgKi8KLSsgIGlmIChUUkVF X1ZBTFVFIChhcmdzKQotKyAgICAgICYmIFRSRUVfQ09ERSAoVFJFRV9WQUxVRSAoYXJncykpID09 IFNUUklOR19DU1QKLSsgICAgICAmJiBUUkVFX0NIQUlOIChhcmdzKSA9PSBOVUxMX1RSRUUKLSsg ICAgICAmJiBzdHJjbXAgKFRSRUVfU1RSSU5HX1BPSU5URVIgKFRSRUVfVkFMVUUgKGFyZ3MpKSwg ImRlZmF1bHQiKSA9PSAwKQotKyAgICByZXR1cm4gdHJ1ZTsKLSsKLSAgIHRyZWUgb2xkX29wdGlt aXplID0gYnVpbGRfb3B0aW1pemF0aW9uX25vZGUgKCk7Ci0gICB0cmVlIG5ld190YXJnZXQsIG5l d19vcHRpbWl6ZTsKLSAgIHRyZWUgZnVuY19vcHRpbWl6ZSA9IERFQ0xfRlVOQ1RJT05fU1BFQ0lG SUNfT1BUSU1JWkFUSU9OIChmbmRlY2wpOwotQEAgLTQ0NDksMTAgKzQ0NjEsMTAgQEAgaXg4Nl92 YWxpZF90YXJnZXRfYXR0cmlidXRlX3AgKHRyZWUgZm5kZQotICAgbmV3X3RhcmdldCA9IGl4ODZf dmFsaWRfdGFyZ2V0X2F0dHJpYnV0ZV90cmVlIChhcmdzKTsKLSAgIG5ld19vcHRpbWl6ZSA9IGJ1 aWxkX29wdGltaXphdGlvbl9ub2RlICgpOwotIAotLSAgaWYgKCFuZXdfdGFyZ2V0KQotKyAgaWYg KG5ld190YXJnZXQgPT0gZXJyb3JfbWFya19ub2RlKQotICAgICByZXQgPSBmYWxzZTsKLSAKLS0g IGVsc2UgaWYgKGZuZGVjbCkKLSsgIGVsc2UgaWYgKGZuZGVjbCAmJiBuZXdfdGFyZ2V0KQotICAg ICB7Ci0gICAgICAgREVDTF9GVU5DVElPTl9TUEVDSUZJQ19UQVJHRVQgKGZuZGVjbCkgPSBuZXdf dGFyZ2V0OwotIAotQEAgLTI4OTQ2LDI2ICsyODk1OCw0NCBAQCBhdHRyX3N0cmNtcCAoY29uc3Qg dm9pZCAqdjEsIGNvbnN0IHZvaWQKLSAgIHJldHVybiBzdHJjbXAgKGMxLCBjMik7Ci0gfQotIAot LS8qIFNUUiBpcyB0aGUgYXJndW1lbnQgdG8gdGFyZ2V0IGF0dHJpYnV0ZS4gIFRoaXMgZnVuY3Rp b24gdG9rZW5pemVzCi0rLyogQVJHTElTVCBpcyB0aGUgYXJndW1lbnQgdG8gdGFyZ2V0IGF0dHJp YnV0ZS4gIFRoaXMgZnVuY3Rpb24gdG9rZW5pemVzCi0gICAgdGhlIGNvbW1hIHNlcGFyYXRlZCBh cmd1bWVudHMsIHNvcnRzIHRoZW0gYW5kIHJldHVybnMgYSBzdHJpbmcgd2hpY2gKLSAgICBpcyBh IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29tbWEgc2VwYXJhdGVkIGFyZ3VtZW50cy4gICBJ dCBhbHNvCi0gICAgcmVwbGFjZXMgbm9uLWlkZW50aWZpZXIgY2hhcmFjdGVycyAiPSwtIiB3aXRo ICJfIi4gICovCi0gCi0gc3RhdGljIGNoYXIgKgotLXNvcnRlZF9hdHRyX3N0cmluZyAoY29uc3Qg Y2hhciAqc3RyKQotK3NvcnRlZF9hdHRyX3N0cmluZyAodHJlZSBhcmdsaXN0KQotIHsKLSsgIHRy ZWUgYXJnOwotKyAgc2l6ZV90IHN0cl9sZW5fc3VtID0gMDsKLSAgIGNoYXIgKiphcmdzID0gTlVM TDsKLSAgIGNoYXIgKmF0dHJfc3RyLCAqcmV0X3N0cjsKLSAgIGNoYXIgKmF0dHIgPSBOVUxMOwot ICAgdW5zaWduZWQgaW50IGFyZ251bSA9IDE7Ci0gICB1bnNpZ25lZCBpbnQgaTsKLSAKLS0gIGZv ciAoaSA9IDA7IGkgPCBzdHJsZW4gKHN0cik7IGkrKykKLS0gICAgaWYgKHN0cltpXSA9PSAnLCcp Ci0tICAgICAgYXJnbnVtKys7Ci0tCi0tICBhdHRyX3N0ciA9IChjaGFyICopeG1hbGxvYyAoc3Ry bGVuIChzdHIpICsgMSk7Ci0tICBzdHJjcHkgKGF0dHJfc3RyLCBzdHIpOwotKyAgZm9yIChhcmcg PSBhcmdsaXN0OyBhcmc7IGFyZyA9IFRSRUVfQ0hBSU4gKGFyZykpCi0rICAgIHsKLSsgICAgICBj b25zdCBjaGFyICpzdHIgPSBUUkVFX1NUUklOR19QT0lOVEVSIChUUkVFX1ZBTFVFIChhcmcpKTsK LSsgICAgICBzaXplX3QgbGVuID0gc3RybGVuIChzdHIpOwotKyAgICAgIHN0cl9sZW5fc3VtICs9 IGxlbiArIDE7Ci0rICAgICAgaWYgKGFyZyAhPSBhcmdsaXN0KQotKwlhcmdudW0rKzsKLSsgICAg ICBmb3IgKGkgPSAwOyBpIDwgc3RybGVuIChzdHIpOyBpKyspCi0rCWlmIChzdHJbaV0gPT0gJywn KQotKwkgIGFyZ251bSsrOwotKyAgICB9Ci0rCi0rICBhdHRyX3N0ciA9IFhORVdWRUMgKGNoYXIs IHN0cl9sZW5fc3VtKTsKLSsgIHN0cl9sZW5fc3VtID0gMDsKLSsgIGZvciAoYXJnID0gYXJnbGlz dDsgYXJnOyBhcmcgPSBUUkVFX0NIQUlOIChhcmcpKQotKyAgICB7Ci0rICAgICAgY29uc3QgY2hh ciAqc3RyID0gVFJFRV9TVFJJTkdfUE9JTlRFUiAoVFJFRV9WQUxVRSAoYXJnKSk7Ci0rICAgICAg c2l6ZV90IGxlbiA9IHN0cmxlbiAoc3RyKTsKLSsgICAgICBtZW1jcHkgKGF0dHJfc3RyICsgc3Ry X2xlbl9zdW0sIHN0ciwgbGVuKTsKLSsgICAgICBhdHRyX3N0cltzdHJfbGVuX3N1bSArIGxlbl0g PSBUUkVFX0NIQUlOIChhcmcpID8gJywnIDogJ1wwJzsKLSsgICAgICBzdHJfbGVuX3N1bSArPSBs ZW4gKyAxOwotKyAgICB9Ci0gCi0gICAvKiBSZXBsYWNlICI9LC0iIHdpdGggIl8iLiAgKi8KLSAg IGZvciAoaSA9IDA7IGkgPCBzdHJsZW4gKGF0dHJfc3RyKTsgaSsrKQotQEAgLTI4OTg2LDE4ICsy OTAxNiwyMCBAQCBzb3J0ZWRfYXR0cl9zdHJpbmcgKGNvbnN0IGNoYXIgKnN0cikKLSAgICAgICBh dHRyID0gc3RydG9rIChOVUxMLCAiLCIpOwotICAgICB9Ci0gCi0tICBxc29ydCAoYXJncywgYXJn bnVtLCBzaXplb2YgKGNoYXIqKSwgYXR0cl9zdHJjbXApOwotKyAgcXNvcnQgKGFyZ3MsIGFyZ251 bSwgc2l6ZW9mIChjaGFyICopLCBhdHRyX3N0cmNtcCk7Ci0gCi0tICByZXRfc3RyID0gKGNoYXIg Kil4bWFsbG9jIChzdHJsZW4gKHN0cikgKyAxKTsKLS0gIHN0cmNweSAocmV0X3N0ciwgYXJnc1sw XSk7Ci0tICBmb3IgKGkgPSAxOyBpIDwgYXJnbnVtOyBpKyspCi0rICByZXRfc3RyID0gWE5FV1ZF QyAoY2hhciwgc3RyX2xlbl9zdW0pOwotKyAgc3RyX2xlbl9zdW0gPSAwOwotKyAgZm9yIChpID0g MDsgaSA8IGFyZ251bTsgaSsrKQotICAgICB7Ci0tICAgICAgc3RyY2F0IChyZXRfc3RyLCAiXyIp OwotLSAgICAgIHN0cmNhdCAocmV0X3N0ciwgYXJnc1tpXSk7Ci0rICAgICAgc2l6ZV90IGxlbiA9 IHN0cmxlbiAoYXJnc1tpXSk7Ci0rICAgICAgbWVtY3B5IChyZXRfc3RyICsgc3RyX2xlbl9zdW0s IGFyZ3NbaV0sIGxlbik7Ci0rICAgICAgcmV0X3N0cltzdHJfbGVuX3N1bSArIGxlbl0gPSBpIDwg YXJnbnVtIC0gMSA/ICdfJyA6ICdcMCc7Ci0rICAgICAgc3RyX2xlbl9zdW0gKz0gbGVuICsgMTsK LSAgICAgfQotIAotLSAgZnJlZSAoYXJncyk7Ci0tICBmcmVlIChhdHRyX3N0cik7Ci0rICBYREVM RVRFVkVDIChhcmdzKTsKLSsgIFhERUxFVEVWRUMgKGF0dHJfc3RyKTsKLSAgIHJldHVybiByZXRf c3RyOwotIH0KLSAKLUBAIC0yOTAwOSw4ICsyOTA0MSw4IEBAIHN0YXRpYyB0cmVlCi0gaXg4Nl9t YW5nbGVfZnVuY3Rpb25fdmVyc2lvbl9hc3NlbWJsZXJfbmFtZSAodHJlZSBkZWNsLCB0cmVlIGlk KQotIHsKLSAgIHRyZWUgdmVyc2lvbl9hdHRyOwotLSAgY29uc3QgY2hhciAqb3JpZ19uYW1lLCAq dmVyc2lvbl9zdHJpbmcsICphdHRyX3N0cjsKLS0gIGNoYXIgKmFzc2VtYmxlcl9uYW1lOwotKyAg Y29uc3QgY2hhciAqb3JpZ19uYW1lLCAqdmVyc2lvbl9zdHJpbmc7Ci0rICBjaGFyICphdHRyX3N0 ciwgKmFzc2VtYmxlcl9uYW1lOwotIAotICAgaWYgKERFQ0xfREVDTEFSRURfSU5MSU5FX1AgKGRl Y2wpCi0gICAgICAgJiYgbG9va3VwX2F0dHJpYnV0ZSAoImdudV9pbmxpbmUiLAotQEAgLTI5MDM0 LDkgKzI5MDY2LDExIEBAIGl4ODZfbWFuZ2xlX2Z1bmN0aW9uX3ZlcnNpb25fYXNzZW1ibGVyX24K LSAgIHZlcnNpb25fc3RyaW5nCi0gICAgID0gVFJFRV9TVFJJTkdfUE9JTlRFUiAoVFJFRV9WQUxV RSAoVFJFRV9WQUxVRSAodmVyc2lvbl9hdHRyKSkpOwotIAotLSAgYXR0cl9zdHIgPSBzb3J0ZWRf YXR0cl9zdHJpbmcgKHZlcnNpb25fc3RyaW5nKTsKLS0gIGFzc2VtYmxlcl9uYW1lID0gKGNoYXIg KikgeG1hbGxvYyAoc3RybGVuIChvcmlnX25hbWUpCi0tCQkJCSAgICAgKyBzdHJsZW4gKGF0dHJf c3RyKSArIDIpOwotKyAgaWYgKHN0cmNtcCAodmVyc2lvbl9zdHJpbmcsICJkZWZhdWx0IikgPT0g MCkKLSsgICAgcmV0dXJuIGlkOwotKwotKyAgYXR0cl9zdHIgPSBzb3J0ZWRfYXR0cl9zdHJpbmcg KFRSRUVfVkFMVUUgKHZlcnNpb25fYXR0cikpOwotKyAgYXNzZW1ibGVyX25hbWUgPSBYTkVXVkVD IChjaGFyLCBzdHJsZW4gKG9yaWdfbmFtZSkgKyBzdHJsZW4gKGF0dHJfc3RyKSArIDIpOwotIAot ICAgc3ByaW50ZiAoYXNzZW1ibGVyX25hbWUsICIlcy4lcyIsIG9yaWdfbmFtZSwgYXR0cl9zdHIp OwotIAotQEAgLTI5MDQ0LDcgKzI5MDc4LDEwIEBAIGl4ODZfbWFuZ2xlX2Z1bmN0aW9uX3ZlcnNp b25fYXNzZW1ibGVyX24KLSAgIGlmIChERUNMX0FTU0VNQkxFUl9OQU1FX1NFVF9QIChkZWNsKSkK LSAgICAgU0VUX0RFQ0xfUlRMIChkZWNsLCBOVUxMKTsKLSAKLS0gIHJldHVybiBnZXRfaWRlbnRp ZmllciAoYXNzZW1ibGVyX25hbWUpOwotKyAgdHJlZSByZXQgPSBnZXRfaWRlbnRpZmllciAoYXNz ZW1ibGVyX25hbWUpOwotKyAgWERFTEVURVZFQyAoYXR0cl9zdHIpOwotKyAgWERFTEVURVZFQyAo YXNzZW1ibGVyX25hbWUpOwotKyAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gLyogVGhpcyBmdW5jdGlv biByZXR1cm5zIHRydWUgaWYgRk4xIGFuZCBGTjIgYXJlIHZlcnNpb25zIG9mIHRoZSBzYW1lIGZ1 bmN0aW9uLAotQEAgLTI5MDU1LDEwICsyOTA5Miw5IEBAIHN0YXRpYyBib29sCi0gaXg4Nl9mdW5j dGlvbl92ZXJzaW9ucyAodHJlZSBmbjEsIHRyZWUgZm4yKQotIHsKLSAgIHRyZWUgYXR0cjEsIGF0 dHIyOwotLSAgY29uc3QgY2hhciAqYXR0cl9zdHIxLCAqYXR0cl9zdHIyOwotICAgY2hhciAqdGFy Z2V0MSwgKnRhcmdldDI7Ci0gICBib29sIHJlc3VsdDsKLS0gIAotKwotICAgaWYgKFRSRUVfQ09E RSAoZm4xKSAhPSBGVU5DVElPTl9ERUNMCi0gICAgICAgfHwgVFJFRV9DT0RFIChmbjIpICE9IEZV TkNUSU9OX0RFQ0wpCi0gICAgIHJldHVybiBmYWxzZTsKLUBAIC0yOTA3MCwxNSArMjkxMDYsMzUg QEAgaXg4Nl9mdW5jdGlvbl92ZXJzaW9ucyAodHJlZSBmbjEsIHRyZWUgZgotICAgaWYgKGF0dHIx ID09IE5VTExfVFJFRSAmJiBhdHRyMiA9PSBOVUxMX1RSRUUpCi0gICAgIHJldHVybiBmYWxzZTsK LSAKLS0gIC8qIElmIG9uZSBmdW5jdGlvbiBkb2VzIG5vdCBoYXZlIGEgdGFyZ2V0IGF0dHJpYnV0 ZSwgdGhlc2UgYXJlIHZlcnNpb25zLiAgKi8KLSsgIC8qIERpYWdub3NlIG1pc3NpbmcgdGFyZ2V0 IGF0dHJpYnV0ZSBpZiBvbmUgb2YgdGhlIGRlY2xzIGlzIGFscmVhZHkKLSsgICAgIG11bHRpLXZl cnNpb25lZC4gICovCi0gICBpZiAoYXR0cjEgPT0gTlVMTF9UUkVFIHx8IGF0dHIyID09IE5VTExf VFJFRSkKLS0gICAgcmV0dXJuIHRydWU7Ci0tCi0tICBhdHRyX3N0cjEgPSAgVFJFRV9TVFJJTkdf UE9JTlRFUiAoVFJFRV9WQUxVRSAoVFJFRV9WQUxVRSAoYXR0cjEpKSk7Ci0tICBhdHRyX3N0cjIg PSAgVFJFRV9TVFJJTkdfUE9JTlRFUiAoVFJFRV9WQUxVRSAoVFJFRV9WQUxVRSAoYXR0cjIpKSk7 Ci0rICAgIHsKLSsgICAgICBpZiAoREVDTF9GVU5DVElPTl9WRVJTSU9ORUQgKGZuMSkgfHwgREVD TF9GVU5DVElPTl9WRVJTSU9ORUQgKGZuMikpCi0rCXsKLSsJICBpZiAoYXR0cjIgIT0gTlVMTF9U UkVFKQotKwkgICAgewotKwkgICAgICB0cmVlIHRlbSA9IGZuMTsKLSsJICAgICAgZm4xID0gZm4y OwotKwkgICAgICBmbjIgPSB0ZW07Ci0rCSAgICAgIGF0dHIxID0gYXR0cjI7Ci0rCSAgICB9Ci0r CSAgZXJyb3JfYXQgKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChmbjIpLAotKwkJICAgICJtaXNzaW5n ICU8dGFyZ2V0JT4gYXR0cmlidXRlIGZvciBtdWx0aS12ZXJzaW9uZWQgJUQiLAotKwkJICAgIGZu Mik7Ci0rCSAgZXJyb3JfYXQgKERFQ0xfU09VUkNFX0xPQ0FUSU9OIChmbjEpLAotKwkJICAgICJw cmV2aW91cyBkZWNsYXJhdGlvbiBvZiAlRCIsIGZuMSk7Ci0rCSAgLyogUHJldmVudCBkaWFnbm9z aW5nIG9mIHRoZSBzYW1lIGVycm9yIG11bHRpcGxlIHRpbWVzLiAgKi8KLSsJICBERUNMX0FUVFJJ QlVURVMgKGZuMikKLSsJICAgID0gdHJlZV9jb25zIChnZXRfaWRlbnRpZmllciAoInRhcmdldCIp LAotKwkJCSBjb3B5X25vZGUgKFRSRUVfVkFMVUUgKGF0dHIxKSksCi0rCQkJIERFQ0xfQVRUUklC VVRFUyAoZm4yKSk7Ci0rCX0KLSsgICAgICByZXR1cm4gZmFsc2U7Ci0rICAgIH0KLSAKLS0gIHRh cmdldDEgPSBzb3J0ZWRfYXR0cl9zdHJpbmcgKGF0dHJfc3RyMSk7Ci0tICB0YXJnZXQyID0gc29y dGVkX2F0dHJfc3RyaW5nIChhdHRyX3N0cjIpOwotKyAgdGFyZ2V0MSA9IHNvcnRlZF9hdHRyX3N0 cmluZyAoVFJFRV9WQUxVRSAoYXR0cjEpKTsKLSsgIHRhcmdldDIgPSBzb3J0ZWRfYXR0cl9zdHJp bmcgKFRSRUVfVkFMVUUgKGF0dHIyKSk7Ci0gCi0gICAvKiBUaGUgc29ydGVkIHRhcmdldCBzdHJp bmdzIG11c3QgYmUgZGlmZmVyZW50IGZvciBmbjEgYW5kIGZuMgotICAgICAgdG8gYmUgdmVyc2lv bnMuICAqLwotQEAgLTI5MDg3LDIwICsyOTE0MywxMiBAQCBpeDg2X2Z1bmN0aW9uX3ZlcnNpb25z ICh0cmVlIGZuMSwgdHJlZSBmCi0gICBlbHNlCi0gICAgIHJlc3VsdCA9IHRydWU7Ci0gCi0tICBm cmVlICh0YXJnZXQxKTsKLS0gIGZyZWUgKHRhcmdldDIpOyAKLSsgIFhERUxFVEVWRUMgKHRhcmdl dDEpOwotKyAgWERFTEVURVZFQyAodGFyZ2V0Mik7IAotICAgCi0gICByZXR1cm4gcmVzdWx0Owot IH0KLSAKLS0vKiBUaGlzIHRhcmdldCBzdXBwb3J0cyBmdW5jdGlvbiBtdWx0aXZlcnNpb25pbmcu ICAqLwotLQotLXN0YXRpYyBib29sCi0taXg4Nl9zdXBwb3J0c19mdW5jdGlvbl92ZXJzaW9ucyAo dm9pZCkKLS17Ci0tICByZXR1cm4gdHJ1ZTsKLS19Ci0tCi0gc3RhdGljIHRyZWUgCi0gaXg4Nl9t YW5nbGVfZGVjbF9hc3NlbWJsZXJfbmFtZSAodHJlZSBkZWNsLCB0cmVlIGlkKQotIHsKLUBAIC0y OTE0MSwxMCArMjkxODksMTAgQEAgbWFrZV9uYW1lICh0cmVlIGRlY2wsIGNvbnN0IGNoYXIgKnN1 ZmZpeAotIAotICAgLyogVXNlICcuJyB0byBjb25jYXRlbmF0ZSBuYW1lcyBhcyBpdCBpcyBkZW1h bmdsZXIgZnJpZW5kbHkuICAqLwotICAgaWYgKG1ha2VfdW5pcXVlKQotLSAgICAgIHNucHJpbnRm IChnbG9iYWxfdmFyX25hbWUsIG5hbWVfbGVuLCAiJXMuJXMuJXMiLCBuYW1lLAotLQkJdW5pcXVl X25hbWUsIHN1ZmZpeCk7Ci0rICAgIHNucHJpbnRmIChnbG9iYWxfdmFyX25hbWUsIG5hbWVfbGVu LCAiJXMuJXMuJXMiLCBuYW1lLCB1bmlxdWVfbmFtZSwKLSsJICAgICAgc3VmZml4KTsKLSAgIGVs c2UKLS0gICAgICBzbnByaW50ZiAoZ2xvYmFsX3Zhcl9uYW1lLCBuYW1lX2xlbiwgIiVzLiVzIiwg bmFtZSwgc3VmZml4KTsKLSsgICAgc25wcmludGYgKGdsb2JhbF92YXJfbmFtZSwgbmFtZV9sZW4s ICIlcy4lcyIsIG5hbWUsIHN1ZmZpeCk7Ci0gCi0gICByZXR1cm4gZ2xvYmFsX3Zhcl9uYW1lOwot IH0KLUBAIC0yOTE1OSw3ICsyOTIwNyw3IEBAIHN0YXRpYyB0cmVlCi0gbWFrZV9kaXNwYXRjaGVy X2RlY2wgKGNvbnN0IHRyZWUgZGVjbCkKLSB7Ci0gICB0cmVlIGZ1bmNfZGVjbDsKLS0gIGNoYXIg KmZ1bmNfbmFtZSwgKnJlc29sdmVyX25hbWU7Ci0rICBjaGFyICpmdW5jX25hbWU7Ci0gICB0cmVl IGZuX3R5cGUsIGZ1bmNfdHlwZTsKLSAgIGJvb2wgaXNfdW5pcSA9IGZhbHNlOwotIAotQEAgLTI5 MTY3LDE0ICsyOTIxNSwxMyBAQCBtYWtlX2Rpc3BhdGNoZXJfZGVjbCAoY29uc3QgdHJlZSBkZWNs KQotICAgICBpc191bmlxID0gdHJ1ZTsKLSAKLSAgIGZ1bmNfbmFtZSA9IG1ha2VfbmFtZSAoZGVj bCwgImlmdW5jIiwgaXNfdW5pcSk7Ci0tICByZXNvbHZlcl9uYW1lID0gbWFrZV9uYW1lIChkZWNs LCAicmVzb2x2ZXIiLCBpc191bmlxKTsKLS0gIGdjY19hc3NlcnQgKHJlc29sdmVyX25hbWUpOwot IAotICAgZm5fdHlwZSA9IFRSRUVfVFlQRSAoZGVjbCk7Ci0gICBmdW5jX3R5cGUgPSBidWlsZF9m dW5jdGlvbl90eXBlIChUUkVFX1RZUEUgKGZuX3R5cGUpLAotIAkJCQkgICBUWVBFX0FSR19UWVBF UyAoZm5fdHlwZSkpOwotICAgCi0gICBmdW5jX2RlY2wgPSBidWlsZF9mbl9kZWNsIChmdW5jX25h bWUsIGZ1bmNfdHlwZSk7Ci0rICBYREVMRVRFVkVDIChmdW5jX25hbWUpOwotICAgVFJFRV9VU0VE IChmdW5jX2RlY2wpID0gMTsKLSAgIERFQ0xfQ09OVEVYVCAoZnVuY19kZWNsKSA9IE5VTExfVFJF RTsKLSAgIERFQ0xfSU5JVElBTCAoZnVuY19kZWNsKSA9IGVycm9yX21hcmtfbm9kZTsKLUBAIC0y OTE5Niw5ICsyOTI0MywxNCBAQCBtYWtlX2Rpc3BhdGNoZXJfZGVjbCAoY29uc3QgdHJlZSBkZWNs KQotIHN0YXRpYyBib29sCi0gaXNfZnVuY3Rpb25fZGVmYXVsdF92ZXJzaW9uIChjb25zdCB0cmVl IGRlY2wpCi0gewotLSAgcmV0dXJuIChUUkVFX0NPREUgKGRlY2wpID09IEZVTkNUSU9OX0RFQ0wK LS0JICAmJiBERUNMX0ZVTkNUSU9OX1ZFUlNJT05FRCAoZGVjbCkKLS0JICAmJiBsb29rdXBfYXR0 cmlidXRlICgidGFyZ2V0IiwgREVDTF9BVFRSSUJVVEVTIChkZWNsKSkgPT0gTlVMTF9UUkVFKTsK LSsgIGlmIChUUkVFX0NPREUgKGRlY2wpICE9IEZVTkNUSU9OX0RFQ0wKLSsgICAgICB8fCAhREVD TF9GVU5DVElPTl9WRVJTSU9ORUQgKGRlY2wpKQotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB0cmVl IGF0dHIgPSBsb29rdXBfYXR0cmlidXRlICgidGFyZ2V0IiwgREVDTF9BVFRSSUJVVEVTIChkZWNs KSk7Ci0rICBnY2NfYXNzZXJ0IChhdHRyKTsKLSsgIGF0dHIgPSBUUkVFX1ZBTFVFIChUUkVFX1ZB TFVFIChhdHRyKSk7Ci0rICByZXR1cm4gKFRSRUVfQ09ERSAoYXR0cikgPT0gU1RSSU5HX0NTVAot KwkgICYmIHN0cmNtcCAoVFJFRV9TVFJJTkdfUE9JTlRFUiAoYXR0ciksICJkZWZhdWx0IikgPT0g MCk7Ci0gfQotIAotIC8qIE1ha2UgYSBkaXNwYXRjaGVyIGRlY2xhcmF0aW9uIGZvciB0aGUgbXVs dGktdmVyc2lvbmVkIGZ1bmN0aW9uIERFQ0wuCi1AQCAtMjkzOTIsNiArMjk0NDQsNyBAQCBtYWtl X3Jlc29sdmVyX2Z1bmMgKGNvbnN0IHRyZWUgZGVmYXVsdF9kCi0gICAvKiBDcmVhdGUgdGhlIGFs aWFzIGZvciBkaXNwYXRjaCB0byByZXNvbHZlciBoZXJlLiAgKi8KLSAgIC8qY2dyYXBoX2NyZWF0 ZV9mdW5jdGlvbl9hbGlhcyAoZGlzcGF0Y2hfZGVjbCwgZGVjbCk7Ki8KLSAgIGNncmFwaF9zYW1l X2JvZHlfYWxpYXMgKE5VTEwsIGRpc3BhdGNoX2RlY2wsIGRlY2wpOwotKyAgWERFTEVURVZFQyAo cmVzb2x2ZXJfbmFtZSk7Ci0gICByZXR1cm4gZGVjbDsKLSB9Ci0gCi1AQCAtMjk0NTMsNyArMjk1 MDYsNyBAQCBpeDg2X2dlbmVyYXRlX3ZlcnNpb25fZGlzcGF0Y2hlcl9ib2R5ICh2Ci0gICAgIH0K LSAKLSAgIGRpc3BhdGNoX2Z1bmN0aW9uX3ZlcnNpb25zIChyZXNvbHZlcl9kZWNsLCAmZm5fdmVy X3ZlYywgJmVtcHR5X2JiKTsKLS0KLSsgIGZuX3Zlcl92ZWMucmVsZWFzZSAoKTsKLSAgIHJlYnVp bGRfY2dyYXBoX2VkZ2VzICgpOyAKLSAgIHBvcF9jZnVuICgpOwotICAgcmV0dXJuIHJlc29sdmVy X2RlY2w7Ci1AQCAtNDI0NDEsMTAgKzQyNDk0LDYgQEAgaXg4Nl9tZW1tb2RlbF9jaGVjayAodW5z aWduZWQgSE9TVF9XSURFXwotICN1bmRlZiBUQVJHRVRfT1BUSU9OX0ZVTkNUSU9OX1ZFUlNJT05T Ci0gI2RlZmluZSBUQVJHRVRfT1BUSU9OX0ZVTkNUSU9OX1ZFUlNJT05TIGl4ODZfZnVuY3Rpb25f dmVyc2lvbnMKLSAKLS0jdW5kZWYgVEFSR0VUX09QVElPTl9TVVBQT1JUU19GVU5DVElPTl9WRVJT SU9OUwotLSNkZWZpbmUgVEFSR0VUX09QVElPTl9TVVBQT1JUU19GVU5DVElPTl9WRVJTSU9OUyBc Ci0tICBpeDg2X3N1cHBvcnRzX2Z1bmN0aW9uX3ZlcnNpb25zCi0tCi0gI3VuZGVmIFRBUkdFVF9D QU5fSU5MSU5FX1AKLSAjZGVmaW5lIFRBUkdFVF9DQU5fSU5MSU5FX1AgaXg4Nl9jYW5faW5saW5l X3AKLSAKLS0tLSBnY2MvdGFyZ2V0LmRlZi5qagkyMDEzLTAxLTExIDA5OjAyOjMyLjAwMDAwMDAw MCArMDEwMAotKysrIGdjYy90YXJnZXQuZGVmCTIwMTMtMDEtMjEgMTE6MjU6MjkuMTQ1MTI0NzAy ICswMTAwCi1AQCAtMjgzMSwxNCArMjgzMSw2IEBAIERFRkhPT0sKLSAgYm9vbCwgKHRyZWUgZGVj bDEsIHRyZWUgZGVjbDIpLAotICBob29rX2Jvb2xfdHJlZV90cmVlX2ZhbHNlKQotIAotLS8qIFRo aXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgZnVuY3Rpb24K LS0gICBtdWx0aXZlcnNpb25pbmcuICAqLwotLURFRkhPT0sKLS0oc3VwcG9ydHNfZnVuY3Rpb25f dmVyc2lvbnMsCi0tICIiLAotLSBib29sLCAodm9pZCksCi0tIGhvb2tfYm9vbF92b2lkX2ZhbHNl KQotLQotIC8qIEZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiBvbmUgZnVuY3Rpb24gY2FuIGlubGlu ZSBhbm90aGVyIGZ1bmN0aW9uLiAgKi8KLSAjdW5kZWYgSE9PS19QUkVGSVgKLSAjZGVmaW5lIEhP T0tfUFJFRklYICJUQVJHRVRfIgotLS0tIGdjYy9kb2MvdG0udGV4aS5pbi5qagkyMDEzLTAxLTEx IDA5OjAyOjI2LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9kb2MvdG0udGV4aS5pbgkyMDEzLTAx LTIxIDExOjI1OjU3Ljc4OTk2MjU4NCArMDEwMAotQEAgLTk3NjgsMTEgKzk3NjgsNiBAQCBkaWZm ZXJlbnQgdGFyZ2V0IHNwZWNpZmljIGF0dHJpYnV0ZXMsIHRoCi0gZGlmZmVyZW50IHRhcmdldCBt YWNoaW5lcy4KLSBAZW5kIGRlZnR5cGVmbgotIAotLUBob29rIFRBUkdFVF9PUFRJT05fU1VQUE9S VFNfRlVOQ1RJT05fVkVSU0lPTlMKLS1UaGlzIHRhcmdldCBob29rIHJldHVybnMgQGNvZGV7dHJ1 ZX0gaWYgdGhlIHRhcmdldCBzdXBwb3J0cyBmdW5jdGlvbgotLW11bHRpdmVyc2lvbmluZy4KLS1A ZW5kIGRlZnR5cGVmbgotLQotIEBob29rIFRBUkdFVF9DQU5fSU5MSU5FX1AKLSBUaGlzIHRhcmdl dCBob29rIHJldHVybnMgQGNvZGV7ZmFsc2V9IGlmIHRoZSBAdmFye2NhbGxlcn0gZnVuY3Rpb24K LSBjYW5ub3QgaW5saW5lIEB2YXJ7Y2FsbGVlfSwgYmFzZWQgb24gdGFyZ2V0IHNwZWNpZmljIGlu Zm9ybWF0aW9uLiAgQnkKLS0tLSBnY2MvZG9jL3RtLnRleGkuamoJMjAxMy0wMS0xMSAwOTowMjoy Ni4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvZG9jL3RtLnRleGkJMjAxMy0wMS0yMSAxMToyNjow OC42NDc4OTcwMTQgKzAxMDAKLUBAIC05OTA3LDExICs5OTA3LDYgQEAgZGlmZmVyZW50IHRhcmdl dCBzcGVjaWZpYyBhdHRyaWJ1dGVzLCB0aAotIGRpZmZlcmVudCB0YXJnZXQgbWFjaGluZXMuCi0g QGVuZCBkZWZ0eXBlZm4KLSAKLS1AZGVmdHlwZWZuIHtUYXJnZXQgSG9va30gYm9vbCBUQVJHRVRf T1BUSU9OX1NVUFBPUlRTX0ZVTkNUSU9OX1ZFUlNJT05TICh2b2lkKQotLVRoaXMgdGFyZ2V0IGhv b2sgcmV0dXJucyBAY29kZXt0cnVlfSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIGZ1bmN0aW9uCi0t bXVsdGl2ZXJzaW9uaW5nLgotLUBlbmQgZGVmdHlwZWZuCi0tCi0gQGRlZnR5cGVmbiB7VGFyZ2V0 IEhvb2t9IGJvb2wgVEFSR0VUX0NBTl9JTkxJTkVfUCAodHJlZSBAdmFye2NhbGxlcn0sIHRyZWUg QHZhcntjYWxsZWV9KQotIFRoaXMgdGFyZ2V0IGhvb2sgcmV0dXJucyBAY29kZXtmYWxzZX0gaWYg dGhlIEB2YXJ7Y2FsbGVyfSBmdW5jdGlvbgotIGNhbm5vdCBpbmxpbmUgQHZhcntjYWxsZWV9LCBi YXNlZCBvbiB0YXJnZXQgc3BlY2lmaWMgaW5mb3JtYXRpb24uICBCeQotLS0tIGdjYy9jLWZhbWls eS9jLWNvbW1vbi5jLmpqCTIwMTMtMDEtMjEgMTA6NTY6NTUuMTY1MDE0NjkzICswMTAwCi0rKysg Z2NjL2MtZmFtaWx5L2MtY29tbW9uLmMJMjAxMy0wMS0yMSAxMDo1OTowNC4zMDUyODUwMzggKzAx MDAKLUBAIC04NzU5LDEyICs4NzU5LDggQEAgaGFuZGxlX3RhcmdldF9hdHRyaWJ1dGUgKHRyZWUg Km5vZGUsIHRyZQotICAgICAgIHdhcm5pbmcgKE9QVF9XYXR0cmlidXRlcywgIiVxRSBhdHRyaWJ1 dGUgaWdub3JlZCIsIG5hbWUpOwotICAgICAgICpub19hZGRfYXR0cnMgPSB0cnVlOwotICAgICB9 Ci0tICAvKiBEbyBub3Qgc3RyaXAgaW52YWxpZCB0YXJnZXQgYXR0cmlidXRlcyBmb3IgdGFyZ2V0 cyB3aGljaCBzdXBwb3J0IGZ1bmN0aW9uCi0tICAgICBtdWx0aXZlcnNpb25pbmcgYXMgdGhlIHRh cmdldCBzdHJpbmcgaXMgdXNlZCB0byBkZXRlcm1pbmUgdmVyc2lvbmVkCi0tICAgICBmdW5jdGlv bnMuICAqLwotICAgZWxzZSBpZiAoISB0YXJnZXRtLnRhcmdldF9vcHRpb24udmFsaWRfYXR0cmli dXRlX3AgKCpub2RlLCBuYW1lLCBhcmdzLAotLQkJCQkJCSAgICAgIGZsYWdzKQotLQkgICAmJiAh IHRhcmdldG0udGFyZ2V0X29wdGlvbi5zdXBwb3J0c19mdW5jdGlvbl92ZXJzaW9ucyAoKSkKLSsJ CQkJCQkgICAgICBmbGFncykpCi0gICAgICpub19hZGRfYXR0cnMgPSB0cnVlOwotIAotICAgcmV0 dXJuIE5VTExfVFJFRTsKLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9tdjEuQy5qagkyMDEzLTAx LTIxIDEwOjU2OjU0LjU2NDAxNzgxNSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL212 MS5DCTIwMTMtMDEtMjEgMTE6MzU6NDIuMjYwNjg0NTA4ICswMTAwCi1AQCAtMSwxMzAgKzAsMCBA QAotLS8qIFRlc3QgY2FzZSB0byBjaGVjayBpZiBNdWx0aXZlcnNpb25pbmcgd29ya3MuICAqLwot LS8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0tLyog eyBkZy1yZXF1aXJlLWlmdW5jICIiIH0gICovCi0tLyogeyBkZy1vcHRpb25zICItTzIgLWZQSUMi IH0gKi8KLS0KLS0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0tCi0tLyogRGVmYXVsdCB2ZXJzaW9uLiAg Ki8KLS1pbnQgZm9vICgpOwotLS8qIFRoZSBvdGhlciB2ZXJzaW9ucyBvZiBmb28uICBNaXggdXAg dGhlIG9yZGVyaW5nIGFuZCAKLS0gICBjaGVjayBpZiB0aGUgZGlzcGF0Y2hpbmcgZG9lcyBpdCBp biB0aGUgb3JkZXIgb2YgcHJpb3JpdHkuICovCi0tLyogQ2hlY2sgY29tYmluYXRpb24gb2YgdGFy Z2V0IGF0dHJpYnV0ZXMuICAqLwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgi YXJjaD1jb3JlaTcscG9wY250IikpKTsKLS0vKiBUaGUgdGFyZ2V0IG9wZXJhbmRzIGluIHRoaXMg ZGVjbGFyYXRpb24gYW5kIHRoZSBkZWZpbml0aW9uIGFyZSByZS1vcmRlcmVkLgotLSAgIFRoaXMg c2hvdWxkIHN0aWxsIHdvcmsuICAqLwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdl dCgic3NzZTMsYXZ4MiIpKSk7Ci0tCi0tLyogQ2hlY2sgZm9yIGFsbCB0YXJnZXQgYXR0cmlidXRl cyBmb3Igd2hpY2ggZGlzcGF0Y2hlcnMgYXJlIGF2YWlsYWJsZS4gICovCi0tLyogQ2hlY2sgYXJj aD0gKi8KLS1pbnQgZm9vICgpIF9fYXR0cmlidXRlX18oKHRhcmdldCgiYXJjaD1jb3JlMiIpKSk7 Ci0taW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoImFyY2g9Y29yZWk3IikpKTsKLS1p bnQgZm9vICgpIF9fYXR0cmlidXRlX18oKHRhcmdldCgiYXJjaD1hdG9tIikpKTsKLS0vKiBDaGVj ayBJU0FzICAqLwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhdngiKSkpOwot LWludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1jb3JlMixzc2U0LjIiKSkp OwotLS8qIENoZWNrIG1vcmUgYXJjaD0uICAqLwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXygo dGFyZ2V0KCJhcmNoPWFtZGZhbTEwIikpKTsKLS1pbnQgZm9vICgpIF9fYXR0cmlidXRlX18oKHRh cmdldCgiYXJjaD1iZHZlcjEiKSkpOwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXygodGFyZ2V0 KCJhcmNoPWJkdmVyMiIpKSk7Ci0tCi0taW50ICgqcCkoKSA9ICZmb287Ci0taW50IG1haW4gKCkK LS17Ci0tICBpbnQgdmFsID0gZm9vICgpOwotLSAgYXNzZXJ0ICh2YWwgPT0gICgqcCkoKSk7Ci0t Ci0tICAvKiBDaGVjayBpbiB0aGUgZXhhY3Qgc2FtZSBvcmRlciBpbiB3aGljaCB0aGUgZGlzcGF0 Y2hpbmcKLS0gICAgIGlzIGV4cGVjdGVkIHRvIGhhcHBlbi4gICovCi0tICBpZiAoX19idWlsdGlu X2NwdV9pcyAoImJkdmVyMSIpKQotLSAgICBhc3NlcnQgKHZhbCA9PSAxKTsKLS0gIGVsc2UgaWYg KF9fYnVpbHRpbl9jcHVfaXMgKCJiZHZlcjIiKSkKLS0gICAgYXNzZXJ0ICh2YWwgPT0gMik7Ci0t ICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiYXZ4MiIpCi0tCSAgICYmIF9fYnVp bHRpbl9jcHVfc3VwcG9ydHMgKCJzc3NlMyIpKQotLSAgICBhc3NlcnQgKHZhbCA9PSAzKTsKLS0g IGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdngiKSkKLS0gICAgYXNzZXJ0ICh2 YWwgPT0gNCk7Ci0tICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X2lzICgiY29yZWk3IikKLS0JICAg JiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInBvcGNudCIpKQotLSAgICBhc3NlcnQgKHZhbCA9 PSA1KTsKLS0gIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfaXMgKCJjb3JlaTciKSkKLS0gICAgYXNz ZXJ0ICh2YWwgPT0gNik7Ci0tICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X2lzICgiYW1kZmFtMTBo IikpCi0tICAgIGFzc2VydCAodmFsID09IDcpOwotLSAgZWxzZSBpZiAoX19idWlsdGluX2NwdV9p cyAoImNvcmUyIikKLS0JICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInNzZTQuMiIpKQot LSAgICBhc3NlcnQgKHZhbCA9PSA4KTsKLS0gIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfaXMgKCJj b3JlMiIpKQotLSAgICBhc3NlcnQgKHZhbCA9PSA5KTsKLS0gIGVsc2UgaWYgKF9fYnVpbHRpbl9j cHVfaXMgKCJhdG9tIikpCi0tICAgIGFzc2VydCAodmFsID09IDEwKTsKLS0gIGVsc2UKLS0gICAg YXNzZXJ0ICh2YWwgPT0gMCk7Ci0tICAKLS0gIHJldHVybiAwOwotLX0KLS0KLS1pbnQgZm9vICgp Ci0tewotLSAgcmV0dXJuIDA7Ci0tfQotLQotLWludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJh cmNoPWNvcmVpNyxwb3BjbnQiKSkpCi0tZm9vICgpCi0tewotLSAgcmV0dXJuIDU7Ci0tfQotLWlu dCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJhdngyLHNzc2UzIikpKQotLWZvbyAoKQotLXsKLS0g IHJldHVybiAzOwotLX0KLS0KLS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1jb3Jl MiIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gOTsKLS19Ci0tCi0taW50IF9fYXR0cmlidXRl X18gKCh0YXJnZXQoImFyY2g9Y29yZWk3IikpKQotLWZvbyAoKQotLXsKLS0gIHJldHVybiA2Owot LX0KLS0KLS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1hdG9tIikpKQotLWZvbyAo KQotLXsKLS0gIHJldHVybiAxMDsKLS19Ci0tCi0taW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQo ImF2eCIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gNDsKLS19Ci0tCi0taW50IF9fYXR0cmli dXRlX18gKCh0YXJnZXQoImFyY2g9Y29yZTIsc3NlNC4yIikpKQotLWZvbyAoKQotLXsKLS0gIHJl dHVybiA4OwotLX0KLS0KLS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1hbWRmYW0x MCIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gNzsKLS19Ci0tCi0taW50IF9fYXR0cmlidXRl X18gKCh0YXJnZXQoImFyY2g9YmR2ZXIxIikpKQotLWZvbyAoKQotLXsKLS0gIHJldHVybiAxOwot LX0KLS0KLS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1iZHZlcjIiKSkpCi0tZm9v ICgpCi0tewotLSAgcmV0dXJuIDI7Ci0tfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9t djEuQy5qagkyMDEzLTAxLTIxIDExOjM2OjE2LjA4NDQ5MTE3NSArMDEwMAotKysrIGdjYy90ZXN0 c3VpdGUvZysrLmRnL2V4dC9tdjEuQwkyMDEzLTAxLTIxIDExOjQyOjUyLjk3NTMxNTcxOCArMDEw MAotQEAgLTAsMCArMSwxMzIgQEAKLSsvKiBUZXN0IGNhc2UgdG8gY2hlY2sgaWYgTXVsdGl2ZXJz aW9uaW5nIHdvcmtzLiAgKi8KLSsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotKiB4ODZf NjQtKi0qIH0gfSAqLwotKy8qIHsgZGctcmVxdWlyZS1pZnVuYyAiIiB9ICAqLwotKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1mUElDIiB9ICovCi0rCi0rI2luY2x1ZGUgPGFzc2VydC5oPgotKwotKy8q IERlZmF1bHQgdmVyc2lvbi4gICovCi0raW50IGZvbyAoKTsgLy8gRXh0cmEgZGVjbGFyYXRpb24g dGhhdCBpcyBtZXJnZWQgd2l0aCB0aGUgc2Vjb25kIG9uZS4KLStpbnQgZm9vICgpIF9fYXR0cmli dXRlX18gKCh0YXJnZXQoImRlZmF1bHQiKSkpOwotKy8qIFRoZSBvdGhlciB2ZXJzaW9ucyBvZiBm b28uICBNaXggdXAgdGhlIG9yZGVyaW5nIGFuZCAKLSsgICBjaGVjayBpZiB0aGUgZGlzcGF0Y2hp bmcgZG9lcyBpdCBpbiB0aGUgb3JkZXIgb2YgcHJpb3JpdHkuICovCi0rLyogQ2hlY2sgY29tYmlu YXRpb24gb2YgdGFyZ2V0IGF0dHJpYnV0ZXMuICAqLwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVf XyAoKHRhcmdldCgiYXJjaD1jb3JlaTcscG9wY250IikpKTsKLSsvKiBUaGUgdGFyZ2V0IG9wZXJh bmRzIGluIHRoaXMgZGVjbGFyYXRpb24gYW5kIHRoZSBkZWZpbml0aW9uIGFyZSByZS1vcmRlcmVk LgotKyAgIFRoaXMgc2hvdWxkIHN0aWxsIHdvcmsuICAqLwotK2ludCBmb28gKCkgX19hdHRyaWJ1 dGVfXyAoKHRhcmdldCgic3NzZTMsYXZ4MiIpKSk7Ci0rCi0rLyogQ2hlY2sgZm9yIGFsbCB0YXJn ZXQgYXR0cmlidXRlcyBmb3Igd2hpY2ggZGlzcGF0Y2hlcnMgYXJlIGF2YWlsYWJsZS4gICovCi0r LyogQ2hlY2sgYXJjaD0gKi8KLStpbnQgZm9vICgpIF9fYXR0cmlidXRlX18oKHRhcmdldCgiYXJj aD1jb3JlMiIpKSk7Ci0raW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoImFyY2g9Y29y ZWk3IikpKTsKLStpbnQgZm9vICgpIF9fYXR0cmlidXRlX18oKHRhcmdldCgiYXJjaD1hdG9tIikp KTsKLSsvKiBDaGVjayBJU0FzICAqLwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVfXygodGFyZ2V0 KCJhdngiKSkpOwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1jb3Jl Mixzc2U0LjIiKSkpOwotKy8qIENoZWNrIG1vcmUgYXJjaD0uICAqLwotK2ludCBmb28gKCkgX19h dHRyaWJ1dGVfXygodGFyZ2V0KCJhcmNoPWFtZGZhbTEwIikpKTsKLStpbnQgZm9vICgpIF9fYXR0 cmlidXRlX18oKHRhcmdldCgiYXJjaD1iZHZlcjEiKSkpOwotK2ludCBmb28gKCkgX19hdHRyaWJ1 dGVfXygodGFyZ2V0KCJhcmNoPWJkdmVyMiIpKSk7Ci0rCi0raW50ICgqcCkoKSA9ICZmb287Ci0r aW50IG1haW4gKCkKLSt7Ci0rICBpbnQgdmFsID0gZm9vICgpOwotKyAgYXNzZXJ0ICh2YWwgPT0g ICgqcCkoKSk7Ci0rCi0rICAvKiBDaGVjayBpbiB0aGUgZXhhY3Qgc2FtZSBvcmRlciBpbiB3aGlj aCB0aGUgZGlzcGF0Y2hpbmcKLSsgICAgIGlzIGV4cGVjdGVkIHRvIGhhcHBlbi4gICovCi0rICBp ZiAoX19idWlsdGluX2NwdV9pcyAoImJkdmVyMSIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSAxKTsK LSsgIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfaXMgKCJiZHZlcjIiKSkKLSsgICAgYXNzZXJ0ICh2 YWwgPT0gMik7Ci0rICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiYXZ4MiIpCi0r CSAgICYmIF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJzc3NlMyIpKQotKyAgICBhc3NlcnQgKHZh bCA9PSAzKTsKLSsgIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdngiKSkKLSsg ICAgYXNzZXJ0ICh2YWwgPT0gNCk7Ci0rICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X2lzICgiY29y ZWk3IikKLSsJICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInBvcGNudCIpKQotKyAgICBh c3NlcnQgKHZhbCA9PSA1KTsKLSsgIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfaXMgKCJjb3JlaTci KSkKLSsgICAgYXNzZXJ0ICh2YWwgPT0gNik7Ci0rICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X2lz ICgiYW1kZmFtMTBoIikpCi0rICAgIGFzc2VydCAodmFsID09IDcpOwotKyAgZWxzZSBpZiAoX19i dWlsdGluX2NwdV9pcyAoImNvcmUyIikKLSsJICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAo InNzZTQuMiIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSA4KTsKLSsgIGVsc2UgaWYgKF9fYnVpbHRp bl9jcHVfaXMgKCJjb3JlMiIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSA5KTsKLSsgIGVsc2UgaWYg KF9fYnVpbHRpbl9jcHVfaXMgKCJhdG9tIikpCi0rICAgIGFzc2VydCAodmFsID09IDEwKTsKLSsg IGVsc2UKLSsgICAgYXNzZXJ0ICh2YWwgPT0gMCk7Ci0rICAKLSsgIHJldHVybiAwOwotK30KLSsK LStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiZGVmYXVsdCIpKSkKLStmb28gKCkKLSt7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rCi0raW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQoImFyY2g9Y29y ZWk3LHBvcGNudCIpKSkKLStmb28gKCkKLSt7Ci0rICByZXR1cm4gNTsKLSt9Ci0raW50IF9fYXR0 cmlidXRlX18gKCh0YXJnZXQoImF2eDIsc3NzZTMiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJu IDM7Ci0rfQotKwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJhcmNoPWNvcmUyIikpKQot K2ZvbyAoKQotK3sKLSsgIHJldHVybiA5OwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRh cmdldCgiYXJjaD1jb3JlaTciKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDY7Ci0rfQotKwot K2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJhcmNoPWF0b20iKSkpCi0rZm9vICgpCi0rewot KyAgcmV0dXJuIDEwOwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXZ4Iikp KQotK2ZvbyAoKQotK3sKLSsgIHJldHVybiA0OwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAo KHRhcmdldCgiYXJjaD1jb3JlMixzc2U0LjIiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDg7 Ci0rfQotKwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJhcmNoPWFtZGZhbTEwIikpKQot K2ZvbyAoKQotK3sKLSsgIHJldHVybiA3OwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRh cmdldCgiYXJjaD1iZHZlcjEiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDE7Ci0rfQotKwot K2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJhcmNoPWJkdmVyMiIpKSkKLStmb28gKCkKLSt7 Ci0rICByZXR1cm4gMjsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvbXYyLkMuamoJMjAx My0wMS0yMSAxMDo1Njo1NC40NjUwMTgzNTQgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5k Zy9tdjIuQwkyMDEzLTAxLTIxIDExOjM1OjQ1LjA4ODY2Njc0NSArMDEwMAotQEAgLTEsMTE4ICsw LDAgQEAKLS0vKiBUZXN0IGNhc2UgdG8gY2hlY2sgaWYgTXVsdGl2ZXJzaW9uaW5nIGNob29zZXMg dGhlIGNvcnJlY3QKLS0gICBkaXNwYXRjaGluZyBvcmRlciB3aGVuIHZlcnNpb25zIGFyZSBmb3Ig dmFyaW91cyBJU0FzLiAgKi8KLS0vKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotKiB4ODZf NjQtKi0qIH0gfSAqLwotLS8qIHsgZGctcmVxdWlyZS1pZnVuYyAiIiB9ICAqLwotLS8qIHsgZGct b3B0aW9ucyAiLU8yIiB9ICovCi0tCi0tI2luY2x1ZGUgPGFzc2VydC5oPgotLQotLS8qIERlZmF1 bHQgdmVyc2lvbi4gICovCi0taW50IGZvbyAoKTsKLS0vKiBUaGUgZGlzcGF0Y2ggY2hlY2tzIHNo b3VsZCBiZSBpbiB0aGUgZXhhY3QgcmV2ZXJzZSBvcmRlciBvZiB0aGUKLS0gICBkZWNsYXJhdGlv bnMgYmVsb3cuICAqLwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoIm1teCIp KSk7Ci0taW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgic3NlIikpKTsKLS1pbnQg Zm9vICgpIF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJzc2UyIikpKTsKLS1pbnQgZm9vICgpIF9f YXR0cmlidXRlX18gKCh0YXJnZXQgKCJzc2UzIikpKTsKLS1pbnQgZm9vICgpIF9fYXR0cmlidXRl X18gKCh0YXJnZXQgKCJzc3NlMyIpKSk7Ci0taW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFy Z2V0ICgic3NlNC4xIikpKTsKLS1pbnQgZm9vICgpIF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJz c2U0LjIiKSkpOwotLWludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoInBvcGNudCIp KSk7Ci0taW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgiYXZ4IikpKTsKLS1pbnQg Zm9vICgpIF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJhdngyIikpKTsKLS0KLS1pbnQgbWFpbiAo KQotLXsKLS0gIGludCB2YWwgPSBmb28gKCk7Ci0tCi0tICBpZiAoX19idWlsdGluX2NwdV9zdXBw b3J0cyAoImF2eDIiKSkKLS0gICAgYXNzZXJ0ICh2YWwgPT0gMSk7Ci0tICBlbHNlIGlmIChfX2J1 aWx0aW5fY3B1X3N1cHBvcnRzICgiYXZ4IikpCi0tICAgIGFzc2VydCAodmFsID09IDIpOwotLSAg ZWxzZSBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInBvcGNudCIpKQotLSAgICBhc3NlcnQg KHZhbCA9PSAzKTsKLS0gIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJzc2U0LjIi KSkKLS0gICAgYXNzZXJ0ICh2YWwgPT0gNCk7Ci0tICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X3N1 cHBvcnRzICgic3NlNC4xIikpCi0tICAgIGFzc2VydCAodmFsID09IDUpOwotLSAgZWxzZSBpZiAo X19idWlsdGluX2NwdV9zdXBwb3J0cyAoInNzc2UzIikpCi0tICAgIGFzc2VydCAodmFsID09IDYp OwotLSAgZWxzZSBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInNzZTMiKSkKLS0gICAgYXNz ZXJ0ICh2YWwgPT0gNyk7Ci0tICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgic3Nl MiIpKQotLSAgICBhc3NlcnQgKHZhbCA9PSA4KTsKLS0gIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVf c3VwcG9ydHMgKCJzc2UiKSkKLS0gICAgYXNzZXJ0ICh2YWwgPT0gOSk7Ci0tICBlbHNlIGlmIChf X2J1aWx0aW5fY3B1X3N1cHBvcnRzICgibW14IikpCi0tICAgIGFzc2VydCAodmFsID09IDEwKTsK LS0gIGVsc2UKLS0gICAgYXNzZXJ0ICh2YWwgPT0gMCk7Ci0tCi0tICByZXR1cm4gMDsKLS19Ci0t Ci0taW50Ci0tZm9vICgpCi0tewotLSAgcmV0dXJuIDA7Ci0tfQotLQotLWludCBfX2F0dHJpYnV0 ZV9fICgodGFyZ2V0KCJtbXgiKSkpCi0tZm9vICgpCi0tewotLSAgcmV0dXJuIDEwOwotLX0KLS0K LS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgic3NlIikpKQotLWZvbyAoKQotLXsKLS0gIHJl dHVybiA5OwotLX0KLS0KLS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgic3NlMiIpKSkKLS1m b28gKCkKLS17Ci0tICByZXR1cm4gODsKLS19Ci0tCi0taW50IF9fYXR0cmlidXRlX18gKCh0YXJn ZXQoInNzZTMiKSkpCi0tZm9vICgpCi0tewotLSAgcmV0dXJuIDc7Ci0tfQotLQotLWludCBfX2F0 dHJpYnV0ZV9fICgodGFyZ2V0KCJzc3NlMyIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gNjsK LS19Ci0tCi0taW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQoInNzZTQuMSIpKSkKLS1mb28gKCkK LS17Ci0tICByZXR1cm4gNTsKLS19Ci0tCi0taW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQoInNz ZTQuMiIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gNDsKLS19Ci0tCi0taW50IF9fYXR0cmli dXRlX18gKCh0YXJnZXQoInBvcGNudCIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gMzsKLS19 Ci0tCi0taW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQoImF2eCIpKSkKLS1mb28gKCkKLS17Ci0t ICByZXR1cm4gMjsKLS19Ci0tCi0taW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQoImF2eDIiKSkp Ci0tZm9vICgpCi0tewotLSAgcmV0dXJuIDE7Ci0tfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRn L2V4dC9tdjIuQy5qagkyMDEzLTAxLTIxIDExOjM2OjE2LjA4NTQ5MTE2NSArMDEwMAotKysrIGdj Yy90ZXN0c3VpdGUvZysrLmRnL2V4dC9tdjIuQwkyMDEzLTAxLTIxIDEwOjU4OjU3LjAwMDAwMDAw MCArMDEwMAotQEAgLTAsMCArMSwxMTggQEAKLSsvKiBUZXN0IGNhc2UgdG8gY2hlY2sgaWYgTXVs dGl2ZXJzaW9uaW5nIGNob29zZXMgdGhlIGNvcnJlY3QKLSsgICBkaXNwYXRjaGluZyBvcmRlciB3 aGVuIHZlcnNpb25zIGFyZSBmb3IgdmFyaW91cyBJU0FzLiAgKi8KLSsvKiB7IGRnLWRvIHJ1biB7 IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8qIHsgZGctcmVxdWlyZS1pZnVu YyAiIiB9ICAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCi0rCi0rI2luY2x1ZGUgPGFz c2VydC5oPgotKwotKy8qIERlZmF1bHQgdmVyc2lvbi4gICovCi0raW50IGZvbyAoKSBfX2F0dHJp YnV0ZV9fICgodGFyZ2V0ICgiZGVmYXVsdCIpKSk7Ci0rLyogVGhlIGRpc3BhdGNoIGNoZWNrcyBz aG91bGQgYmUgaW4gdGhlIGV4YWN0IHJldmVyc2Ugb3JkZXIgb2YgdGhlCi0rICAgZGVjbGFyYXRp b25zIGJlbG93LiAgKi8KLStpbnQgZm9vICgpIF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJtbXgi KSkpOwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoInNzZSIpKSk7Ci0raW50 IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgic3NlMiIpKSk7Ci0raW50IGZvbyAoKSBf X2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgic3NlMyIpKSk7Ci0raW50IGZvbyAoKSBfX2F0dHJpYnV0 ZV9fICgodGFyZ2V0ICgic3NzZTMiKSkpOwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRh cmdldCAoInNzZTQuMSIpKSk7Ci0raW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgi c3NlNC4yIikpKTsKLStpbnQgZm9vICgpIF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJwb3BjbnQi KSkpOwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoImF2eCIpKSk7Ci0raW50 IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgiYXZ4MiIpKSk7Ci0rCi0raW50IG1haW4g KCkKLSt7Ci0rICBpbnQgdmFsID0gZm9vICgpOwotKwotKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3Vw cG9ydHMgKCJhdngyIikpCi0rICAgIGFzc2VydCAodmFsID09IDEpOwotKyAgZWxzZSBpZiAoX19i dWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eCIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSAyKTsKLSsg IGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJwb3BjbnQiKSkKLSsgICAgYXNzZXJ0 ICh2YWwgPT0gMyk7Ci0rICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgic3NlNC4y IikpCi0rICAgIGFzc2VydCAodmFsID09IDQpOwotKyAgZWxzZSBpZiAoX19idWlsdGluX2NwdV9z dXBwb3J0cyAoInNzZTQuMSIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSA1KTsKLSsgIGVsc2UgaWYg KF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJzc3NlMyIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSA2 KTsKLSsgIGVsc2UgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJzc2UzIikpCi0rICAgIGFz c2VydCAodmFsID09IDcpOwotKyAgZWxzZSBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInNz ZTIiKSkKLSsgICAgYXNzZXJ0ICh2YWwgPT0gOCk7Ci0rICBlbHNlIGlmIChfX2J1aWx0aW5fY3B1 X3N1cHBvcnRzICgic3NlIikpCi0rICAgIGFzc2VydCAodmFsID09IDkpOwotKyAgZWxzZSBpZiAo X19idWlsdGluX2NwdV9zdXBwb3J0cyAoIm1teCIpKQotKyAgICBhc3NlcnQgKHZhbCA9PSAxMCk7 Ci0rICBlbHNlCi0rICAgIGFzc2VydCAodmFsID09IDApOwotKwotKyAgcmV0dXJuIDA7Ci0rfQot KwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJkZWZhdWx0IikpKQotK2ZvbyAoKQotK3sK LSsgIHJldHVybiAwOwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgibW14Iikp KQotK2ZvbyAoKQotK3sKLSsgIHJldHVybiAxMDsKLSt9Ci0rCi0raW50IF9fYXR0cmlidXRlX18g KCh0YXJnZXQoInNzZSIpKSkKLStmb28gKCkKLSt7Ci0rICByZXR1cm4gOTsKLSt9Ci0rCi0raW50 IF9fYXR0cmlidXRlX18gKCh0YXJnZXQoInNzZTIiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJu IDg7Ci0rfQotKwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJzc2UzIikpKQotK2ZvbyAo KQotK3sKLSsgIHJldHVybiA3OwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgi c3NzZTMiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDY7Ci0rfQotKwotK2ludCBfX2F0dHJp YnV0ZV9fICgodGFyZ2V0KCJzc2U0LjEiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDU7Ci0r fQotKwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJzc2U0LjIiKSkpCi0rZm9vICgpCi0r ewotKyAgcmV0dXJuIDQ7Ci0rfQotKwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJwb3Bj bnQiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDM7Ci0rfQotKwotK2ludCBfX2F0dHJpYnV0 ZV9fICgodGFyZ2V0KCJhdngiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDI7Ci0rfQotKwot K2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJhdngyIikpKQotK2ZvbyAoKQotK3sKLSsgIHJl dHVybiAxOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9tdjMuQy5qagkyMDEzLTAxLTE4 IDIxOjIzOjQ1LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL212My5D CTIwMTMtMDEtMjEgMTE6MzU6NTIuNDAwNjI2NDM1ICswMTAwCi1AQCAtMSwzNiArMCwwIEBACi0t LyogVGVzdCBjYXNlIHRvIGNoZWNrIGlmIGEgY2FsbCB0byBhIG11bHRpdmVyc2lvbmVkIGZ1bmN0 aW9uCi0tICAgaXMgcmVwbGFjZWQgd2l0aCBhIGRpcmVjdCBjYWxsIHRvIHRoZSBwYXJ0aWN1bGFy IHZlcnNpb24gd2hlbgotLSAgIHRoZSBtb3N0IHNwZWNpYWxpemVkIHZlcnNpb24ncyB0YXJnZXQg YXR0cmlidXRlcyBtYXRjaCB0aGUKLS0gICBjYWxsZXIuICAKLS0gIAotLSAgIEluIHRoaXMgcHJv Z3JhbSwgZm9vIGlzIG11bHRpdmVyc2lvbmVkIGJ1dCB0aGVyZSBpcyBubyBkZWZhdWx0Ci0tICAg ZnVuY3Rpb24uICBUaGlzIGlzIGFuIGVycm9yIGlmIHRoZSBjYWxsIGhhcyB0byBnbyB0aHJvdWdo IGEKLS0gICBkaXNwYXRjaGVyLiAgSG93ZXZlciwgdGhlIGNhbGwgdG8gZm9vIGluIGJhciBjYW4g YmUgcmVwbGFjZWQKLS0gICB3aXRoIGEgZGlyZWN0IGNhbGwgdG8gdGhlIHBvcGNudCB2ZXJzaW9u IG9mIGZvby4gIEhlbmNlLCB0aGlzCi0tICAgdGVzdCBzaG91bGQgcGFzcy4gICovCi0tCi0tLyog eyBkZy1kbyBydW4geyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9IH0gKi8KLS0vKiB7IGRn LW9wdGlvbnMgIi1PMiIgfSAqLwotLQotLQotLWludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgi c3NlIikpKQotLWZvbyAoKQotLXsKLS0gIHJldHVybiAxOwotLX0KLS1pbnQgX19hdHRyaWJ1dGVf XyAoKHRhcmdldCAoInBvcGNudCIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gMDsKLS19Ci0t Ci0taW50IF9fYXR0cmlidXRlX18gKCh0YXJnZXQgKCJwb3BjbnQiKSkpCi0tYmFyICgpCi0tewot LSAgcmV0dXJuIGZvbyAoKTsKLS19Ci0tCi0taW50IG1haW4gKCkKLS17Ci0tICByZXR1cm4gYmFy ICgpOwotLX0KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvbXYzLkMuamoJMjAxMy0wMS0y MSAxMTozNjoxNi4wODY0OTExNTYgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQv bXYzLkMJMjAxMy0wMS0xOCAyMToyMzo0NS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzYg QEAKLSsvKiBUZXN0IGNhc2UgdG8gY2hlY2sgaWYgYSBjYWxsIHRvIGEgbXVsdGl2ZXJzaW9uZWQg ZnVuY3Rpb24KLSsgICBpcyByZXBsYWNlZCB3aXRoIGEgZGlyZWN0IGNhbGwgdG8gdGhlIHBhcnRp Y3VsYXIgdmVyc2lvbiB3aGVuCi0rICAgdGhlIG1vc3Qgc3BlY2lhbGl6ZWQgdmVyc2lvbidzIHRh cmdldCBhdHRyaWJ1dGVzIG1hdGNoIHRoZQotKyAgIGNhbGxlci4gIAotKyAgCi0rICAgSW4gdGhp cyBwcm9ncmFtLCBmb28gaXMgbXVsdGl2ZXJzaW9uZWQgYnV0IHRoZXJlIGlzIG5vIGRlZmF1bHQK LSsgICBmdW5jdGlvbi4gIFRoaXMgaXMgYW4gZXJyb3IgaWYgdGhlIGNhbGwgaGFzIHRvIGdvIHRo cm91Z2ggYQotKyAgIGRpc3BhdGNoZXIuICBIb3dldmVyLCB0aGUgY2FsbCB0byBmb28gaW4gYmFy IGNhbiBiZSByZXBsYWNlZAotKyAgIHdpdGggYSBkaXJlY3QgY2FsbCB0byB0aGUgcG9wY250IHZl cnNpb24gb2YgZm9vLiAgSGVuY2UsIHRoaXMKLSsgICB0ZXN0IHNob3VsZCBwYXNzLiAgKi8KLSsK LSsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8q IHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCi0rCi0rCi0raW50IF9fYXR0cmlidXRlX18gKCh0YXJn ZXQgKCJzc2UiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDE7Ci0rfQotK2ludCBfX2F0dHJp YnV0ZV9fICgodGFyZ2V0ICgicG9wY250IikpKQotK2ZvbyAoKQotK3sKLSsgIHJldHVybiAwOwot K30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoInBvcGNudCIpKSkKLStiYXIgKCkK LSt7Ci0rICByZXR1cm4gZm9vICgpOwotK30KLSsKLStpbnQgbWFpbiAoKQotK3sKLSsgIHJldHVy biBiYXIgKCk7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL212NC5DLmpqCTIwMTMtMDEt MTggMjE6MjM6NDUuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvbXY0 LkMJMjAxMy0wMS0yMSAxMTozNTo1NC4zMDg2MTYyMjMgKzAxMDAKLUBAIC0xLDI0ICswLDAgQEAK LS0vKiBUZXN0IGNhc2UgdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyIGdlbmVyYXRlcyBhbiBlcnJv ciBtZXNzYWdlCi0tICAgd2hlbiB0aGUgZGVmYXVsdCB2ZXJzaW9uIG9mIGEgbXVsdGl2ZXJzaW9u ZWQgZnVuY3Rpb24gaXMgYWJzZW50Ci0tICAgYW5kIGl0cyBwb2ludGVyIGlzIHRha2VuLiAgKi8K LS0KLS0vKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9IH0g Ki8KLS0vKiB7IGRnLXJlcXVpcmUtaWZ1bmMgIiIgfSAgKi8KLS0vKiB7IGRnLW9wdGlvbnMgIi1P MiIgfSAqLwotLQotLWludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgic3NlIikpKQotLWZvbyAo KQotLXsKLS0gIHJldHVybiAxOwotLX0KLS1pbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoInBv cGNudCIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gMDsKLS19Ci0tCi0taW50IG1haW4gKCkK LS17Ci0tICBpbnQgKCpwKSgpID0gJmZvbzsgLyogeyBkZy1lcnJvciAidXNlIG9mIG11bHRpdmVy c2lvbmVkIGZ1bmN0aW9uIHdpdGhvdXQgYSBkZWZhdWx0IiB7fSB9ICovCi0tICByZXR1cm4gKCpw KSgpOwotLX0KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvbXY0LkMuamoJMjAxMy0wMS0y MSAxMTozNjoxNi4wODg0OTExMzMgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQv bXY0LkMJMjAxMy0wMS0xOCAyMToyMzo0NS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMjQg QEAKLSsvKiBUZXN0IGNhc2UgdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyIGdlbmVyYXRlcyBhbiBl cnJvciBtZXNzYWdlCi0rICAgd2hlbiB0aGUgZGVmYXVsdCB2ZXJzaW9uIG9mIGEgbXVsdGl2ZXJz aW9uZWQgZnVuY3Rpb24gaXMgYWJzZW50Ci0rICAgYW5kIGl0cyBwb2ludGVyIGlzIHRha2VuLiAg Ki8KLSsKLSsvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9 IH0gKi8KLSsvKiB7IGRnLXJlcXVpcmUtaWZ1bmMgIiIgfSAgKi8KLSsvKiB7IGRnLW9wdGlvbnMg Ii1PMiIgfSAqLwotKwotK2ludCBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0ICgic3NlIikpKQotK2Zv byAoKQotK3sKLSsgIHJldHVybiAxOwotK30KLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAo InBvcGNudCIpKSkKLStmb28gKCkKLSt7Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0raW50IG1haW4g KCkKLSt7Ci0rICBpbnQgKCpwKSgpID0gJmZvbzsgLyogeyBkZy1lcnJvciAidXNlIG9mIG11bHRp dmVyc2lvbmVkIGZ1bmN0aW9uIHdpdGhvdXQgYSBkZWZhdWx0IiB7fSB9ICovCi0rICByZXR1cm4g KCpwKSgpOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9tdjUuQy5qagkyMDEzLTAxLTIx IDEwOjU2OjU0LjU4MjAxNzcyMyArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL212NS5D CTIwMTMtMDEtMjEgMTE6MzU6NTYuMDI3NjA2MTg1ICswMTAwCi1AQCAtMSwyNSArMCwwIEBACi0t LyogVGVzdCBjYXNlIHRvIGNoZWNrIGlmIG11bHRpdmVyc2lvbmVkIGZ1bmN0aW9ucyBhcmUgc3Rp bGwgZ2VuZXJhdGVkIGlmIHRoZXkgYXJlCi0tICAgbWFya2VkIGNvbWRhdCB3aXRoIGlubGluZSBr ZXl3b3JkLiAgKi8KLS0KLS0vKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQt Ki0qIH0gfSAqLwotLS8qIHsgZGctcmVxdWlyZS1pZnVuYyAiIiB9ICAqLwotLS8qIHsgZGctb3B0 aW9ucyAiLU8yIiB9ICovCi0tCi0tCi0tLyogRGVmYXVsdCB2ZXJzaW9uLiAgKi8KLS1pbmxpbmUg aW50Ci0tZm9vICgpCi0tewotLSAgcmV0dXJuIDA7Ci0tfQotLQotLWlubGluZSBpbnQgX19hdHRy aWJ1dGVfXyAoKHRhcmdldCAoInBvcGNudCIpKSkKLS1mb28gKCkKLS17Ci0tICByZXR1cm4gMDsK LS19Ci0tCi0taW50IG1haW4gKCkKLS17Ci0tICByZXR1cm4gZm9vICgpOwotLX0KLS0tLSBnY2Mv dGVzdHN1aXRlL2crKy5kZy9leHQvbXY1LkMuamoJMjAxMy0wMS0yMSAxMTozNjoxNi4wODk0OTEx MjMgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvbXY1LkMJMjAxMy0wMS0yMSAx MDo1ODo1Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMjUgQEAKLSsvKiBUZXN0IGNhc2Ug dG8gY2hlY2sgaWYgbXVsdGl2ZXJzaW9uZWQgZnVuY3Rpb25zIGFyZSBzdGlsbCBnZW5lcmF0ZWQg aWYgdGhleSBhcmUKLSsgICBtYXJrZWQgY29tZGF0IHdpdGggaW5saW5lIGtleXdvcmQuICAqLwot KwotKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0r LyogeyBkZy1yZXF1aXJlLWlmdW5jICIiIH0gICovCi0rLyogeyBkZy1vcHRpb25zICItTzIiIH0g Ki8KLSsKLSsKLSsvKiBEZWZhdWx0IHZlcnNpb24uICAqLwotK2lubGluZSBpbnQgX19hdHRyaWJ1 dGVfXyAoKHRhcmdldCAoImRlZmF1bHQiKSkpCi0rZm9vICgpCi0rewotKyAgcmV0dXJuIDA7Ci0r fQotKwotK2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCAoInBvcGNudCIpKSkKLStm b28gKCkKLSt7Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0raW50IG1haW4gKCkKLSt7Ci0rICByZXR1 cm4gZm9vICgpOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9tdjYuQy5qagkyMDEzLTAx LTIxIDEwOjU2OjU0LjUwNDAxODA4MSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL212 Ni5DCTIwMTMtMDEtMjEgMTE6MzU6NTcuNTE0NTk3Njk3ICswMTAwCi1AQCAtMSwyNyArMCwwIEBA Ci0tLyogVGVzdCB0byBjaGVjayBpZiBtZW1iZXIgdmVyc2lvbiBtdWx0aXZlcnNpb25pbmcgd29y a3MgY29ycmVjdGx5LiAgKi8KLS0KLS0vKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotKiB4 ODZfNjQtKi0qIH0gfSAqLwotLS8qIHsgZGctcmVxdWlyZS1pZnVuYyAiIiB9ICAqLwotLS8qIHsg ZGctb3B0aW9ucyAiLW1hcmNoPXg4Ni02NCIgfSAqLwotLQotLWNsYXNzIEZvbwotLXsKLS0gcHVi bGljOgotLSAgLyogRGVmYXVsdCB2ZXJzaW9uIG9mIGZvby4gICovCi0tICBpbnQgZm9vICgpCi0t ICB7Ci0tICAgIHJldHVybiAwOwotLSAgfQotLSAgLyogY29yZWk3IHZlcnNpb24gb2YgZm9vLiAg Ki8KLS0gIF9fYXR0cmlidXRlX18gKCh0YXJnZXQoImFyY2g9Y29yZWk3IikpKQotLSAgaW50IGZv byAoKQotLSAgewotLSAgICByZXR1cm4gMDsKLS0gIH0KLS19OwotLQotLWludCBtYWluICgpCi0t ewotLSAgRm9vIGY7Ci0tICByZXR1cm4gZi5mb28gKCk7Ci0tfQotLS0tIGdjYy90ZXN0c3VpdGUv ZysrLmRnL2V4dC9tdjYuQy5qagkyMDEzLTAxLTIxIDExOjM2OjE2LjA5MDQ5MTExNyArMDEwMAot KysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9tdjYuQwkyMDEzLTAxLTIxIDEwOjU4OjU3LjAw MDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwyOCBAQAotKy8qIFRlc3QgdG8gY2hlY2sgaWYgbWVt YmVyIHZlcnNpb24gbXVsdGl2ZXJzaW9uaW5nIHdvcmtzIGNvcnJlY3RseS4gICovCi0rCi0rLyog eyBkZy1kbyBydW4geyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9IH0gKi8KLSsvKiB7IGRn LXJlcXVpcmUtaWZ1bmMgIiIgfSAgKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD14ODYtNjQi IH0gKi8KLSsKLStjbGFzcyBGb28KLSt7Ci0rIHB1YmxpYzoKLSsgIC8qIERlZmF1bHQgdmVyc2lv biBvZiBmb28uICAqLwotKyAgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiZGVmYXVsdCIpKSkKLSsg IGludCBmb28gKCkKLSsgIHsKLSsgICAgcmV0dXJuIDA7Ci0rICB9Ci0rICAvKiBjb3JlaTcgdmVy c2lvbiBvZiBmb28uICAqLwotKyAgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgiYXJjaD1jb3JlaTci KSkpCi0rICBpbnQgZm9vICgpCi0rICB7Ci0rICAgIHJldHVybiAwOwotKyAgfQotK307Ci0rCi0r aW50IG1haW4gKCkKLSt7Ci0rICBGb28gZjsKLSsgIHJldHVybiBmLmZvbyAoKTsKLSt9Ci0tLS0g Z2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L212Ny5DLmpqCTIwMTMtMDEtMjEgMTE6Mzk6MjEuNzg5 NDYwNDkzICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L212Ny5DCTIwMTMtMDEt MjEgMTE6NDU6MDUuMDk4NTg5NjMyICswMTAwCi1AQCAtMCwwICsxLDEyIEBACi0rLy8geyBkZy1k byBjb21waWxlIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9Ci0rLy8geyBkZy1vcHRp b25zICIiIH0KLSsKLStfX2F0dHJpYnV0ZV9fKCh0YXJnZXQgKCJkZWZhdWx0IikpKQotK3ZvaWQg Zm9vICh2b2lkKQkvLyB7IGRnLWVycm9yICJwcmV2aW91c2x5IGRlZmluZWQgaGVyZSIgfQotK3sK LSt9Ci0rCi0rX19hdHRyaWJ1dGVfXygodGFyZ2V0ICgxMjgpKSkKLSt2b2lkIGZvbyAodm9pZCkg Ly8geyBkZy1lcnJvciAiKG5vdCBhIHN0cmluZ3xyZWRlZmluaXRpb24pIiB9Ci0rewotK30KLS0t LSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvbXY4LkMuamoJMjAxMy0wMS0yMSAxMTo0MToxNy4x NDc4MzYxMDEgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvbXY4LkMJMjAxMy0w MS0yMSAxMTo0NToxMy40OTM1NDQyNTYgKzAxMDAKLUBAIC0wLDAgKzEsNyBAQAotKy8vIHsgZGct ZG8gY29tcGlsZSB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfQotKy8vIHsgZGctb3B0 aW9ucyAiIiB9Ci0rCi0rX19hdHRyaWJ1dGVfXygodGFyZ2V0ICgxMSwxMikpKQotK3ZvaWQgZm9v ICh2b2lkKSAvLyB7IGRnLWVycm9yICJub3QgYSBzdHJpbmciIH0KLSt7Ci0rfQotLS0tIGdjYy90 ZXN0c3VpdGUvZysrLmRnL2V4dC9tdjkuQy5qagkyMDEzLTAxLTIxIDExOjQ0OjMxLjYzNDc3NDky MSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9tdjkuQwkyMDEzLTAxLTIxIDEx OjQ1OjE4LjI3NTUxNjI2NiArMDEwMAotQEAgLTAsMCArMSw5IEBACi0rLy8geyBkZy1kbyBjb21w aWxlIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICAgIAotKy8vIHsgZGctb3B0aW9u cyAiIiB9ICAgCi0rCi0rdm9pZCBmb28gKCk7Ci0rdm9pZCBmb28gKCkgX19hdHRyaWJ1dGVfXygo dGFyZ2V0ICgic3NlNCIpKSk7Ci0rdm9pZCBmb28gKCkgX19hdHRyaWJ1dGVfXygodGFyZ2V0ICgi ZGVmYXVsdCIpKSk7IC8vIHsgZGctZXJyb3IgInByZXZpb3VzIGRlY2xhcmF0aW9uIiB9Ci0rdm9p ZCBmb28gKCkJLy8geyBkZy1lcnJvciAiYXR0cmlidXRlIGZvciBtdWx0aS12ZXJzaW9uZWQiIH0K LSt7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9tdjEwLkMuamoJMjAxMy0wMS0y MSAxMjoxMjoyOS4zNTQ1NDE2MzAgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQv bXYxMC5DCTIwMTMtMDEtMjEgMTI6MTI6NTYuMjA3MzkyODg2ICswMTAwCi1AQCAtMCwwICsxLDEy IEBACi0rLy8geyBkZy1kbyBhc3NlbWJsZSB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0g fQotKy8vIHsgZGctb3B0aW9ucyAiIiB9Ci0rCi0rX19hdHRyaWJ1dGVfXygodGFyZ2V0ICgicG9w Y250IiksIHVzZWQpKQotK3ZvaWQgZm9vICh2b2lkKQotK3sKLSt9Ci0rCi0rX19hdHRyaWJ1dGVf XygodGFyZ2V0ICgicG9wY250IiwiYXZ4IiksIHVzZWQpKQotK3ZvaWQgZm9vICh2b2lkKQotK3sK LSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L212MTEuQy5qagkyMDEzLTAxLTIxIDEy OjE2OjI2LjM4MTI4NTUzNSArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9tdjEx LkMJMjAxMy0wMS0yMSAxMjoxNzozMy4zODA5MTg5OTYgKzAxMDAKLUBAIC0wLDAgKzEsMjMgQEAK LSsvLyB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9IH0KLSsv LyB7IGRnLW9wdGlvbnMgIi1tc3NlMiIgfQotKwotK2ludCBmb28gKCkgX19hdHRyaWJ1dGVfXyAo KHRhcmdldCgiZGVmYXVsdCIpKSk7Ci0raW50IGZvbyAoKSBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0 KCJzc2UyIikpKTsKLSsKLStpbnQKLSttYWluICgpCi0rewotKyAgcmV0dXJuIGZvbyAoKTsKLSt9 Ci0rCi0raW50ICBfX2F0dHJpYnV0ZV9fICgodGFyZ2V0KCJkZWZhdWx0IikpKQotK2ZvbyAoKQot K3sKLSsgIHJldHVybiAwOwotK30KLSsKLStpbnQgX19hdHRyaWJ1dGVfXyAoKHRhcmdldCgic3Nl MiIpKSkKLStmb28gKCkKLSt7Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0tZ2l0IGEvc291cmNl cyBiL3NvdXJjZXMKaW5kZXggNTE0ZGMwMi4uNGRjZDQyZiAxMDA2NDQKLS0tIGEvc291cmNlcwor KysgYi9zb3VyY2VzCkBAIC0xLDQgKzEsNCBAQAogYmU3OGE0N2JkODI1MjMyNTBlYjNlOTE2NDZk YjViM2QgIGNsb29nLTAuMTguMC50YXIuZ3oKIDI2NTlmMDljMmU0M2VmOGI3ZDQ0MDYzMjE3NTNm MWIyICBmYXN0amFyLTAuOTcudGFyLmd6CiBiY2UxNTg2Mzg0ZDg2MzVhNzZkMmYwMTdmYjA2N2Nk MiAgaXNsLTAuMTEuMS50YXIuYnoyCi03NGI2MTUxOTFjZGQ5ZGJkM2E2YTg5NzFmY2U3ZjM2MCAg Z2NjLTQuOC4wLTIwMTMwMTI5LnRhci5iejIKK2QwNTU5ODdjYWY5ZjkzZmEzYjJkYzZiZGRiODlk ZmQ2ICBnY2MtNC44LjAtMjAxMzAxMzEudGFyLmJ6Mgo=