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.4.0-0.30 Date: Mon, 29 Jun 2026 12:24:16 GMT Message-ID: <178273585695.1.13168135555876386706.rpms-gcc-babb47d67328@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: babb47d673286cdb934c28b982d6484a136fd8d5 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogYmFiYjQ3ZDY3MzI4NmNkYjkzNGMyOGI5ODJkNjQ4NGEx MzZmZDhkNQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wMy0yOFQwOTozMzoxMCswMDowMApTdGF0cyAgOiArNzA5Ly0zMjIgaW4g MTEgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dj Yy9jL2JhYmI0N2Q2NzMyODZjZGI5MzRjMjhiOTgyZDY0ODRhMTM2ZmQ4ZDU/YnJhbmNoPXJoZWwt ZjQxLWJhc2UKCkxvZzoKNC40LjAtMC4zMAoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIv LmN2c2lnbm9yZQppbmRleCAyZTM3MGQxLi43NDc0OGEyIDEwMDY0NAotLS0gYS8uY3ZzaWdub3Jl CisrKyBiLy5jdnNpZ25vcmUKQEAgLTEsMiArMSwyIEBACiBmYXN0amFyLTAuOTcudGFyLmd6Ci1n Y2MtNC40LjAtMjAwOTAzMjQudGFyLmJ6MgorZ2NjLTQuNC4wLTIwMDkwMzI4LnRhci5iejIKCmRp ZmYgLS1naXQgYS9nY2Muc3BlYyBiL2djYy5zcGVjCmluZGV4IGMwOGExYTAuLmUwNjQ0ZjQgMTAw NjQ0Ci0tLSBhL2djYy5zcGVjCisrKyBiL2djYy5zcGVjCkBAIC0xLDkgKzEsOSBAQAotJWRlZmlu ZSBEQVRFIDIwMDkwMzI0Ci0lZGVmaW5lIFNWTlJFViAxNDUwMTkKKyVkZWZpbmUgREFURSAyMDA5 MDMyOAorJWRlZmluZSBTVk5SRVYgMTQ1MTY3CiAlZGVmaW5lIGdjY192ZXJzaW9uIDQuNC4wCiAj IE5vdGUsIGdjY19yZWxlYXNlIG11c3QgYmUgaW50ZWdlciwgaWYgeW91IHdhbnQgdG8gYWRkIHN1 ZmZpeGVzIHRvCiAjICV7cmVsZWFzZX0sIGFwcGVuZCB0aGVtIGFmdGVyICV7Z2NjX3JlbGVhc2V9 IG9uIFJlbGVhc2U6IGxpbmUuCi0lZGVmaW5lIGdjY19yZWxlYXNlIDAuMjkKKyVkZWZpbmUgZ2Nj X3JlbGVhc2UgMC4zMAogJWRlZmluZSBfdW5wYWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQg MAogJWRlZmluZSBtdWx0aWxpYl82NF9hcmNocyBzcGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAog JWRlZmluZSBpbmNsdWRlX2dhcHBsZXR2aWV3ZXIgMQpAQCAtMTM3LDggKzEzNyw2IEBAIFBhdGNo MjogZ2NjNDQtYysrLWJ1aWx0aW4tcmVkZWNsLnBhdGNoCiBQYXRjaDM6IGdjYzQ0LWlhNjQtbGli dW53aW5kLnBhdGNoCiBQYXRjaDQ6IGdjYzQ0LWphdmEtbm9tdWx0aS5wYXRjaAogUGF0Y2g1OiBn Y2M0NC1wcGMzMi1yZXRhZGRyLnBhdGNoCi1QYXRjaDc6IGdjYzQ0LXByMjc4OTgucGF0Y2gKLVBh dGNoODogZ2NjNDQtcHIzMjEzOS5wYXRjaAogUGF0Y2g5OiBnY2M0NC1wcjMzNzYzLnBhdGNoCiBQ YXRjaDEwOiBnY2M0NC1yaDMzMDc3MS5wYXRjaAogUGF0Y2gxMTogZ2NjNDQtcmgzNDEyMjEucGF0 Y2gKQEAgLTE1NCw4ICsxNTIsMTAgQEAgUGF0Y2gyNTogZ2NjNDQtcHIzOTIyNi5wYXRjaAogUGF0 Y2gyNjogZ2NjNDQtcG93ZXI3LnBhdGNoCiBQYXRjaDI3OiBnY2M0NC1wb3dlcjctMi5wYXRjaAog UGF0Y2gyODogZ2NjNDQtcHIzODc1Ny5wYXRjaAotUGF0Y2gyOTogZ2NjNDQtcHIzNzk1OS5wYXRj aAotUGF0Y2gzMDogZ2NjNDQtbWVtbW92ZS1vcHQucGF0Y2gKK1BhdGNoMjk6IGdjYzQ0LWFsdGl2 ZWMtdmVjdG9yLnBhdGNoCitQYXRjaDMwOiBnY2M0NC1wcjM5NTQzLnBhdGNoCitQYXRjaDMxOiBn Y2M0NC1wcjM5NTU4LnBhdGNoCitQYXRjaDMyOiBnY2M0NC1wcjM5NTYzLnBhdGNoCiAKIFBhdGNo MTAwMDogZmFzdGphci0wLjk3LXNlZ2ZhdWx0LnBhdGNoCiAKQEAgLTQyOCw4ICs0MjgsNiBAQCB3 aGljaCBhcmUgcmVxdWlyZWQgdG8gY29tcGlsZSB3aXRoIHRoZSBHTkFULgogJXBhdGNoMyAtcDAg LWIgLmlhNjQtbGlidW53aW5kfgogJXBhdGNoNCAtcDAgLWIgLmphdmEtbm9tdWx0aX4KICVwYXRj aDUgLXAwIC1iIC5wcGMzMi1yZXRhZGRyfgotJXBhdGNoNyAtcDAgLWIgLnByMjc4OTh+Ci0lcGF0 Y2g4IC1wMCAtYiAucHIzMjEzOX4KICVwYXRjaDkgLXAwIC1iIC5wcjMzNzYzfgogJXBhdGNoMTAg LXAwIC1iIC5yaDMzMDc3MX4KICVwYXRjaDExIC1wMCAtYiAucmgzNDEyMjF+CkBAIC00NDcsOCAr NDQ1LDEwIEBAIHdoaWNoIGFyZSByZXF1aXJlZCB0byBjb21waWxlIHdpdGggdGhlIEdOQVQuCiAl cGF0Y2gyNiAtcDAgLWIgLnBvd2VyN34KICVwYXRjaDI3IC1wMCAtYiAucG93ZXI3LTJ+CiAlcGF0 Y2gyOCAtcDAgLWIgLnByMzg3NTd+Ci0lcGF0Y2gyOSAtcDAgLWIgLnByMzc5NTl+Ci0lcGF0Y2gz MCAtcDAgLWIgLm1lbW1vdmUtb3B0fgorJXBhdGNoMjkgLXAwIC1iIC5hbHRpdmVjLXZlY3Rvcn4K KyVwYXRjaDMwIC1wMCAtYiAucHIzOTU0M34KKyVwYXRjaDMxIC1wMCAtYiAucHIzOTU1OH4KKyVw YXRjaDMyIC1wMCAtYiAucHIzOTU2M34KIAogIyBUaGlzIHRlc3RjYXNlIGRvZXNuJ3QgY29tcGls ZS4KIHJtIGxpYmphdmEvdGVzdHN1aXRlL2xpYmphdmEubGFuZy9QUjM1MDIwKgpAQCAtMTc1OSw2 ICsxNzU5LDE3IEBAIGZpCiAlZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJtdWRmbGFwL0NoYW5n ZUxvZyoKIAogJWNoYW5nZWxvZworKiBTYXQgTWFyIDI4IDIwMDkgSmFrdWIgSmVsaW5layA8amFr dWJAcmVkaGF0LmNvbT4gNC40LjAtMC4zMAorLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAor ICAtIFBScyBjKysvMzkzODAsIGMrKy8yODI3NCwgYysrLzI5NzI3LCBjKysvMzU2NTIsIGMrKy8z Njc5OSwgYysrLzM3NjQ3LAorCWMrKy8zODYzOCwgYysrLzM5NTU0LCBsaWJmb3J0cmFuLzM5NTI4 LCBtaWRkbGUtZW5kLzM5NDk3LAorCXJ0bC1vcHRpbWl6YXRpb24vMzk1MjIsIHRhcmdldC8zODAz NCwgdGFyZ2V0LzM5NTIzLAorCXRyZWUtb3B0aW1pemF0aW9uLzM5NTI5LCB0cmVlLW9wdGltaXph dGlvbi8zOTU0OCwKKwl0cmVlLW9wdGltaXphdGlvbi8zOTU1NworLSBlbWl0IGRlYnVnaW5mbyBm b3IgYmxvY2sgbG9jYWwgZXh0ZXJucyBpbiBDIChQUiBkZWJ1Zy8zOTU2MykKKy0gZml4IC1tYWx0 aXZlYyBjb25kaXRpb25hbCB2ZWN0b3IgbWFjcm8gKFBSIHRhcmdldC8zOTU1OCkKKy0gdGVhY2gg Zndwcm9wIHRvIGhhbmRsZSBhc20gKFBSIHJ0bC1vcHRpbWl6YXRpb24vMzk1NDMpCisKICogVHVl IE1hciAyNCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjkK IC0gdXBkYXRlIGZyb20gdHJ1bmsKICAgLSBQUnMgYysrLzI4ODc5LCBjKysvMzc3MjksIGMrKy8z OTUyNiwgZGVidWcvMzk1MjQsIHRyZWUtb3B0aW1pemF0aW9uLzM5NTE2CgpkaWZmIC0tZ2l0IGEv Z2NjNDQtYWx0aXZlYy12ZWN0b3IucGF0Y2ggYi9nY2M0NC1hbHRpdmVjLXZlY3Rvci5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjU3YjA5Ci0tLSAvZGV2L251bGwK KysrIGIvZ2NjNDQtYWx0aXZlYy12ZWN0b3IucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorMjAwOS0w My0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZy9yczYw MDAvcnM2MDAwLWMuYyAocnM2MDAwX21hY3JvX3RvX2V4cGFuZCk6IElmIG1hY3JvCisJZm9sbG93 aW5nIHZlY3RvciBrZXl3b3JkIGhhcyBleHBhbnNpb24gc3RhcnRpbmcgd2l0aCBwaXhlbCBvciBi b29sCisJa2V5d29yZCwgZXhwYW5kIHZlY3RvciB0byBfX3ZlY3RvciBhbmQgcGl4ZWwgb3IgYm9v bCB0byBfX3BpeGVsIG9yCisJX19ib29sLgorCisJKiBnY2MudGFyZ2V0L3Bvd2VycGMvYWx0aXZl Yy0yOC5jOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC1jLmMuamoJ MjAwOC0xMC0yMyAxMzoyMTozNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvY29uZmlnL3JzNjAw MC9yczYwMDAtYy5jCTIwMDktMDMtMjcgMTE6NDU6NTAuMDAwMDAwMDAwICswMTAwCitAQCAtMTg4 LDcgKzE4OCwxOSBAQCByczYwMDBfbWFjcm9fdG9fZXhwYW5kIChjcHBfcmVhZGVyICpwZmlsCisg CQl0b2sgPSBjcHBfcGVla190b2tlbiAocGZpbGUsIGlkeCsrKTsKKyAJICAgICAgd2hpbGUgKHRv ay0+dHlwZSA9PSBDUFBfUEFERElORyk7CisgCSAgICAgIGlkZW50ID0gYWx0aXZlY19jYXRlZ29y aXplX2tleXdvcmQgKHRvayk7CistCSAgICAgIGlmIChpZGVudCkKKysJICAgICAgaWYgKGlkZW50 ID09IENfQ1BQX0hBU0hOT0RFIChfX3BpeGVsX2tleXdvcmQpKQorKwkJeworKwkJICBleHBhbmRf dGhpcyA9IENfQ1BQX0hBU0hOT0RFIChfX3ZlY3Rvcl9rZXl3b3JkKTsKKysJCSAgZXhwYW5kX2Jv b2xfcGl4ZWwgPSBfX3BpeGVsX2tleXdvcmQ7CisrCQkgIHJpZF9jb2RlID0gUklEX01BWDsKKysJ CX0KKysJICAgICAgZWxzZSBpZiAoaWRlbnQgPT0gQ19DUFBfSEFTSE5PREUgKF9fYm9vbF9rZXl3 b3JkKSkKKysJCXsKKysJCSAgZXhwYW5kX3RoaXMgPSBDX0NQUF9IQVNITk9ERSAoX192ZWN0b3Jf a2V5d29yZCk7CisrCQkgIGV4cGFuZF9ib29sX3BpeGVsID0gX19ib29sX2tleXdvcmQ7CisrCQkg IHJpZF9jb2RlID0gUklEX01BWDsKKysJCX0KKysJICAgICAgZWxzZSBpZiAoaWRlbnQpCisgCQly aWRfY29kZSA9IChlbnVtIHJpZCkoaWRlbnQtPnJpZF9jb2RlKTsKKyAJICAgIH0KKyAKKy0tLSBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9hbHRpdmVjLTI4LmMuamoJMjAwOS0wMy0y NyAxMTo0NzoyMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cG93ZXJwYy9hbHRpdmVjLTI4LmMJMjAwOS0wMy0yNyAxMTo1MDoxNS4wMDAwMDAwMDAgKzAxMDAK K0BAIC0wLDAgKzEsMTYgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgcG93ZXJwYyot Ki0qIH0gfSAqLworKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHBvd2VycGNfYWx0 aXZlY19vayB9ICovCisrLyogeyBkZy1vcHRpb25zICItbWFsdGl2ZWMiIH0gKi8KKysKKysjZGVm aW5lIEIgYm9vbAorKyNkZWZpbmUgUCBwaXhlbAorKyNkZWZpbmUgSSBpbnQKKysjZGVmaW5lIEJJ IGJvb2wgaW50CisrI2RlZmluZSBQSSBwaXhlbCBpbnQKKysKKyt2ZWN0b3IgQiBpbnQgaTsKKyt2 ZWN0b3IgUCBpbnQgajsKKyt2ZWN0b3IgQiBJIGs7CisrdmVjdG9yIFAgSSBsOworK3ZlY3RvciBC SSBtOworK3ZlY3RvciBQSSBuOwoKZGlmZiAtLWdpdCBhL2djYzQ0LW1lbW1vdmUtb3B0LnBhdGNo IGIvZ2NjNDQtbWVtbW92ZS1vcHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGUzNWFkZTIuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtbWVtbW92ZS1vcHQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMjggKzAsMCBAQAotMjAwOS0wMy0xOCAgSmFrdWIgSmVsaW5layAgPGpha3Vi QHJlZGhhdC5jb20+Ci0KLQkqIGJ1aWx0aW5zLmMgKGZvbGRfYnVpbHRpbl9tZW1vcnlfb3ApOiBP cHRpbWl6ZSBtZW1tb3ZlCi0JaW50byBtZW1jcHkgaWYgd2UgY2FuIHByb3ZlIHNvdXJjZSBhbmQg ZGVzdGluYXRpb24gZG9uJ3Qgb3ZlcmxhcC4KLQotCSogZ2NjLmRnL21lbW1vdmUtMi5jOiBOZXcg dGVzdC4KLQkqIGdjYy5kZy9tZW1tb3ZlLTMuYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvYnVpbHRp bnMuYy5qagkyMDA5LTAzLTA0IDIwOjA2OjMxLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9idWls dGlucy5jCTIwMDktMDMtMTggMTg6MTk6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtODg4MiwxNyAr ODg4Miw3NCBAQCBmb2xkX2J1aWx0aW5fbWVtb3J5X29wICh0cmVlIGRlc3QsIHRyZWUgCi0gCSAg ICAgcmVhbGx5IG1hbmRhdG9yeT8KLSAKLSAJICAgICBJZiBlaXRoZXIgU1JDIGlzIHJlYWRvbmx5 IG9yIGxlbmd0aCBpcyAxLCB3ZSBjYW4gdXNlIG1lbWNweS4gICovCi0tCSAgaWYgKGRlc3RfYWxp Z24gJiYgc3JjX2FsaWduCi0tCSAgICAgICYmIChyZWFkb25seV9kYXRhX2V4cHIgKHNyYykKLS0J ICAgICAgICAgIHx8IChob3N0X2ludGVnZXJwIChsZW4sIDEpCi0tCQkgICAgICAmJiAoTUlOIChz cmNfYWxpZ24sIGRlc3RfYWxpZ24pIC8gQklUU19QRVJfVU5JVCA+PQotLQkJCSAgdHJlZV9sb3df Y3N0IChsZW4sIDEpKSkpKQotKwkgIGlmICghZGVzdF9hbGlnbiB8fCAhc3JjX2FsaWduKQotKwkg ICAgcmV0dXJuIE5VTExfVFJFRTsKLSsJICBpZiAocmVhZG9ubHlfZGF0YV9leHByIChzcmMpCi0r CSAgICAgIHx8IChob3N0X2ludGVnZXJwIChsZW4sIDEpCi0rCQkgICYmIChNSU4gKHNyY19hbGln biwgZGVzdF9hbGlnbikgLyBCSVRTX1BFUl9VTklUID49Ci0rCQkgICAgICB0cmVlX2xvd19jc3Qg KGxlbiwgMSkpKSkKLSAJICAgIHsKLSAJICAgICAgdHJlZSBmbiA9IGltcGxpY2l0X2J1aWx0X2lu X2RlY2xzW0JVSUxUX0lOX01FTUNQWV07Ci0gCSAgICAgIGlmICghZm4pCi0gCQlyZXR1cm4gTlVM TF9UUkVFOwotICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkX2NhbGxfZXhwciAoZm4sIDMsIGRl c3QsIHNyYywgbGVuKTsKLSAJICAgIH0KLSsKLSsJICAvKiBJZiAqc3JjIGFuZCAqZGVzdCBjYW4n dCBvdmVybGFwLCBvcHRpbWl6ZSBpbnRvIG1lbWNweSBhcyB3ZWxsLiAgKi8KLSsJICBzcmN2YXIg PSBidWlsZF9mb2xkX2luZGlyZWN0X3JlZiAoc3JjKTsKLSsJICBkZXN0dmFyID0gYnVpbGRfZm9s ZF9pbmRpcmVjdF9yZWYgKGRlc3QpOwotKwkgIGlmIChzcmN2YXIgJiYgIVRSRUVfVEhJU19WT0xB VElMRSAoc3JjdmFyKQotKwkgICAgICAmJiBkZXN0dmFyICYmICFUUkVFX1RISVNfVk9MQVRJTEUg KGRlc3R2YXIpKQotKwkgICAgewotKwkgICAgICB0cmVlIHNyY19iYXNlLCBkZXN0X2Jhc2UsIGZu OwotKwkgICAgICBIT1NUX1dJREVfSU5UIHNyY19vZmZzZXQgPSAwLCBkZXN0X29mZnNldCA9IDA7 Ci0rCSAgICAgIEhPU1RfV0lERV9JTlQgc2l6ZSA9IC0xOwotKwkgICAgICBIT1NUX1dJREVfSU5U IG1heHNpemUgPSAtMTsKLSsKLSsJICAgICAgc3JjX2Jhc2UgPSBzcmN2YXI7Ci0rCSAgICAgIGlm IChoYW5kbGVkX2NvbXBvbmVudF9wIChzcmNfYmFzZSkpCi0rCQlzcmNfYmFzZSA9IGdldF9yZWZf YmFzZV9hbmRfZXh0ZW50IChzcmNfYmFzZSwgJnNyY19vZmZzZXQsCi0rCQkJCQkJICAgICZzaXpl LCAmbWF4c2l6ZSk7Ci0rCSAgICAgIGRlc3RfYmFzZSA9IGRlc3R2YXI7Ci0rCSAgICAgIGlmICho YW5kbGVkX2NvbXBvbmVudF9wIChkZXN0X2Jhc2UpKQotKwkJZGVzdF9iYXNlID0gZ2V0X3JlZl9i YXNlX2FuZF9leHRlbnQgKGRlc3RfYmFzZSwgJmRlc3Rfb2Zmc2V0LAotKwkJCQkJCSAgICAgJnNp emUsICZtYXhzaXplKTsKLSsJICAgICAgaWYgKGhvc3RfaW50ZWdlcnAgKGxlbiwgMSkpCi0rCQl7 Ci0rCQkgIG1heHNpemUgPSB0cmVlX2xvd19jc3QgKGxlbiwgMSk7Ci0rCQkgIGlmIChtYXhzaXpl Ci0rCQkgICAgICA+IElOVFRZUEVfTUFYSU1VTSAoSE9TVF9XSURFX0lOVCkgLyBCSVRTX1BFUl9V TklUKQotKwkJICAgIG1heHNpemUgPSAtMTsKLSsJCSAgZWxzZQotKwkJICAgIG1heHNpemUgKj0g QklUU19QRVJfVU5JVDsKLSsJCX0KLSsJICAgICAgZWxzZQotKwkJbWF4c2l6ZSA9IC0xOwotKwkg ICAgICBpZiAoU1NBX1ZBUl9QIChzcmNfYmFzZSkKLSsJCSAgJiYgU1NBX1ZBUl9QIChkZXN0X2Jh c2UpKQotKwkJewotKwkJICBpZiAob3BlcmFuZF9lcXVhbF9wIChzcmNfYmFzZSwgZGVzdF9iYXNl LCAwKQotKwkJICAgICAgJiYgcmFuZ2VzX292ZXJsYXBfcCAoc3JjX29mZnNldCwgbWF4c2l6ZSwK LSsJCQkJCSAgIGRlc3Rfb2Zmc2V0LCBtYXhzaXplKSkKLSsJCSAgICByZXR1cm4gTlVMTF9UUkVF OwotKwkJfQotKwkgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKHNyY19iYXNlKSA9PSBJTkRJUkVD VF9SRUYKLSsJCSAgICAgICAmJiBUUkVFX0NPREUgKGRlc3RfYmFzZSkgPT0gSU5ESVJFQ1RfUkVG KQotKwkJewotKwkJICBpZiAoISBvcGVyYW5kX2VxdWFsX3AgKFRSRUVfT1BFUkFORCAoc3JjX2Jh c2UsIDApLAotKwkJCQkJIFRSRUVfT1BFUkFORCAoZGVzdF9iYXNlLCAwKSwgMCkKLSsJCSAgICAg IHx8IHJhbmdlc19vdmVybGFwX3AgKHNyY19vZmZzZXQsIG1heHNpemUsCi0rCQkJCQkgICBkZXN0 X29mZnNldCwgbWF4c2l6ZSkpCi0rCQkgICAgcmV0dXJuIE5VTExfVFJFRTsKLSsJCX0KLSsJICAg ICAgZWxzZQotKwkJcmV0dXJuIE5VTExfVFJFRTsKLSsKLSsJICAgICAgZm4gPSBpbXBsaWNpdF9i dWlsdF9pbl9kZWNsc1tCVUlMVF9JTl9NRU1DUFldOwotKwkgICAgICBpZiAoIWZuKQotKwkJcmV0 dXJuIE5VTExfVFJFRTsKLSsJICAgICAgcmV0dXJuIGJ1aWxkX2NhbGxfZXhwciAoZm4sIDMsIGRl c3QsIHNyYywgbGVuKTsKLSsJICAgIH0KLSAJICByZXR1cm4gTlVMTF9UUkVFOwotIAl9Ci0gCi0t LS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvbWVtbW92ZS0yLmMuamoJMjAwOS0wMy0xOCAxODozMDox Ny4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9tZW1tb3ZlLTIuYwky MDA5LTAzLTE4IDE4OjMwOjQ5LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwxNiBAQAotKy8q IHsgZGctZG8gY29tcGlsZSB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUt b3B0aW1pemVkIiB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJt ZW1tb3ZlIiAwICJvcHRpbWl6ZWQiIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRy ZWUtZHVtcCAib3B0aW1pemVkIiB9IH0gKi8KLSsKLStjaGFyIGFbNDBdOwotK2V4dGVybiB2b2lk IGJhciAoY2hhciAqKTsKLSsKLSt2b2lkCi0rZm9vICh2b2lkKQotK3sKLSsgIGNoYXIgYlsxMF07 Ci0rICBfX2J1aWx0aW5fbWVtbW92ZSAoJmFbMF0sICZhWzIwXSwgMjApOwotKyAgX19idWlsdGlu X21lbW1vdmUgKCZiWzFdLCAmYVsyNV0sIDkpOwotKyAgYmFyIChiKTsKLSt9Ci0tLS0gZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvbWVtbW92ZS0zLmMuamoJMjAwOS0wMy0xOCAxODozMDoxOS4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9tZW1tb3ZlLTMuYwkyMDA5LTAzLTE4 IDE4OjMxOjAxLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwxNiBAQAotKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUtb3B0aW1pemVk IiB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJtZW1tb3ZlIiAz ICJvcHRpbWl6ZWQiIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAi b3B0aW1pemVkIiB9IH0gKi8KLSsKLStjaGFyIGFbNDBdOwotK3N0cnVjdCBBIHsgY2hhciBhWzMw XTsgfTsKLSsKLSt2b2lkCi0rZm9vIChzdHJ1Y3QgQSAqcCwgY2hhciAqcSwgY2hhciAqcikKLSt7 Ci0rICBjaGFyIGJbMTBdOwotKyAgX19idWlsdGluX21lbW1vdmUgKCZhWzFdLCAmYVsxOV0sIDIw KTsKLSsgIF9fYnVpbHRpbl9tZW1tb3ZlICgmcC0+YVsxXSwgJnAtPmFbOV0sIDEwKTsKLSsgIF9f YnVpbHRpbl9tZW1tb3ZlIChxLCByLCA5KTsKLSt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDQtcHIyNzg5 OC5wYXRjaCBiL2djYzQ0LXByMjc4OTgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDE3MmJiODEuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtcHIyNzg5OC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDE2ICswLDAgQEAKLTIwMDYtMDgtMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkBy ZWRoYXQuY29tPgotCi0JUFIgYy8yNzg5OAotCSogZ2NjLmRnL3ByMjc4OTguYzogTmV3IHRlc3Qu Ci0KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjI3ODk4LmMuamoJMjAwNi0wOC0xOCAwOTox OTozMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjI3ODk4LmMJ MjAwNi0wOC0xOCAwOToxOToyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOCBAQAotKy8q IFBSIGMvMjc4OTggKi8KLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9u cyAiLS1jb21iaW5lIiB9ICovCi0rLyogeyBkZy1hZGRpdGlvbmFsLXNvdXJjZXMgInByMjc4OTgu YyIgfSAqLwotKwotK3VuaW9uIHUgeyBzdHJ1Y3QgeyBpbnQgaTsgfTsgfTsKLSsKLStleHRlcm4g aW50IGZvbyAodW5pb24gdSAqKTsKCmRpZmYgLS1naXQgYS9nY2M0NC1wcjMyMTM5LnBhdGNoIGIv Z2NjNDQtcHIzMjEzOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM1Njk2 Ny4uMDAwMDAwMAotLS0gYS9nY2M0NC1wcjMyMTM5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTkgKzAsMCBAQAotMjAwNy0wNi0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+ Ci0KLQlQUiB0cmVlLW9wdGltaXphdGlvbi8zMjEzOQotCSogZ2NjLmMtdG9ydHVyZS9jb21waWxl LzIwMDcwNTMxLTEuYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1 cmUvY29tcGlsZS8yMDA3MDUzMS0xLmMuamoJMjAwNy0wNS0zMSAxMzo0NzoyMi4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvY29tcGlsZS8yMDA3MDUzMS0x LmMJMjAwNy0wNi0wMSAxMDo1NzoxNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTEgQEAK LSsvKiBQUiB0cmVlLW9wdGltaXphdGlvbi8zMjEzOSAqLwotK2ludCBmb28gKHZvaWQpOwotK2lu dCBiYXIgKHZvaWQpIF9fYXR0cmlidXRlX18gKChjb25zdCkpOwotKwotK2ludAotK3Rlc3QgKGlu dCB4KQotK3sKLSsgIGludCBhID0gKHggPT0gMTAwMDAgPyBmb28gOiBiYXIpICgpOwotKyAgaW50 IGIgPSAoeCA9PSAxMDAwMCA/IGZvbyA6IGJhcikgKCk7Ci0rICByZXR1cm4gYSArIGI7Ci0rfQoK ZGlmZiAtLWdpdCBhL2djYzQ0LXByMzc5NTkucGF0Y2ggYi9nY2M0NC1wcjM3OTU5LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDM2M2IxLi4wMDAwMDAwCi0tLSBhL2djYzQ0 LXByMzc5NTkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotMjAwOS0wMy0x OCAgRG9kamkgU2VrZXRlbGkgIDxkb2RqaUByZWRoYXQuY29tPgotCSAgICBKYWt1YiBKZWxpbmVr ICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCVBSIGRlYnVnLzM3OTU5Ci0JKiBkd2FyZjJvdXQuYyAo ZHdhcmZfYXR0cl9uYW1lKTogSGFuZGxlIERXX0FUX2V4cGxpY2l0IGF0dHJpYnV0ZS4KLQkoZ2Vu X3N1YnByb2dyYW1fZGllKTogV2hlbiBhIGZ1bmN0aW9uIGlzIGV4cGxpY2l0LCBnZW5lcmF0ZSB0 aGUgRFdfQVRfZXhwbGljaXQKLQlhdHRyaWJ1dGUuCi0JKiBsYW5naG9va3MuaCAoc3RydWN0IGxh bmdfaG9va3NfZm9yX2RlY2xzKTogQWRkIGZ1bmN0aW9uX2RlY2xfZXhwbGljaXRfcAotCWxhbmdo b29rLgotCSogbGFuZ2hvb2tzLWRlZi5oIChMQU5HX0hPT0tTX0ZVTkNUSU9OX0RFQ0xfRVhQTElD SVRfUCk6IERlZmluZS4KLQkoTEFOR19IT09LU19ERUNMUyk6IEFkZCBMQU5HX0hPT0tTX0ZVTkNU SU9OX0RFQ0xfRVhQTElDSVRfUC4KLQotCSogY3Atb2JqY3AtY29tbW9uLmggKExBTkdfSE9PS1Nf RlVOQ1RJT05fREVDTF9FWFBMSUNJVF9QKTogRGVmaW5lLgotCShjcF9mdW5jdGlvbl9kZWNsX2V4 cGxpY2l0X3ApOiBOZXcgcHJvdG90eXBlLgotCSogY3Atb2JqY3AtY29tbW9uLmMgKGNwX2Z1bmN0 aW9uX2RlY2xfZXhwbGljaXRfcCk6IE5ldyBmdW5jdGlvbi4KLQotCSogZysrLmRnL2RlYnVnL2R3 YXJmMi9leHBsaWNpdC1jb25zdHJ1Y3Rvci5DOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9jcC9jcC1v YmpjcC1jb21tb24uYy5qagkyMDA5LTAzLTA1IDIyOjMyOjE3LjAwMDAwMDAwMCArMDEwMAotKysr IGdjYy9jcC9jcC1vYmpjcC1jb21tb24uYwkyMDA5LTAzLTE4IDE0OjMxOjE3LjAwMDAwMDAwMCAr MDEwMAotQEAgLTEsNSArMSw1IEBACi0gLyogU29tZSBjb2RlIGNvbW1vbiB0byBDKysgYW5kIE9i akMrKyBmcm9udCBlbmRzLgotLSAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNywgMjAwOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDcs IDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gICAgQ29udHJpYnV0 ZWQgYnkgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgotIAotIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdDQy4KLUBAIC0yMDMsNiArMjAzLDE2IEBAIGN4eF9zdGF0aWNwICh0cmVlIGFy ZykKLSAgIHJldHVybiBOVUxMX1RSRUU7Ci0gfQotIAotKy8qIFJldHVybiB0cnVlIGlmIERFQ0wg aXMgZXhwbGljaXQgbWVtYmVyIGZ1bmN0aW9uLiAgKi8KLSsKLStib29sCi0rY3BfZnVuY3Rpb25f ZGVjbF9leHBsaWNpdF9wICh0cmVlIGRlY2wpCi0rewotKyAgcmV0dXJuIChkZWNsCi0rCSAgJiYg RlVOQ1RJT05fRklSU1RfVVNFUl9QQVJNVFlQRSAoZGVjbCkgIT0gdm9pZF9saXN0X25vZGUKLSsJ ICAmJiBERUNMX05PTkNPTlZFUlRJTkdfUCAoZGVjbCkpOwotK30KLSsKLSAvKiBTdHVicyB0byBr ZWVwIGMtb3B0cy5jIGhhcHB5LiAgKi8KLSB2b2lkCi0gcHVzaF9maWxlX3Njb3BlICh2b2lkKQot LS0tIGdjYy9jcC9jcC1vYmpjcC1jb21tb24uaC5qagkyMDA5LTAzLTAyIDE2OjIxOjMzLjAwMDAw MDAwMCArMDEwMAotKysrIGdjYy9jcC9jcC1vYmpjcC1jb21tb24uaAkyMDA5LTAzLTE4IDE0OjMz OjUxLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsNSArMSw1IEBACi0gLyogTGFuZ3VhZ2UgaG9va3Mg Y29tbW9uIHRvIEMrKyBhbmQgT2JqQysrIGZyb250IGVuZHMuCi0tICAgQ29weXJpZ2h0IChDKSAy MDA0LCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyAg IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSAgICBDb250cmlidXRlZCBieSBaaWVtb3dpdCBMYXNraSAgPHps YXNraUBhcHBsZS5jb20+Ci0gCi0gVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgotQEAgLTI2LDYg KzI2LDggQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIAotIGV4dGVy biB0cmVlIG9iamNwX3RzdWJzdF9jb3B5X2FuZF9idWlsZCAodHJlZSwgdHJlZSwgdHN1YnN0X2Zs YWdzX3QsCi0gCQkJCQkgdHJlZSwgYm9vbCk7Ci0gCi0rZXh0ZXJuIGJvb2wgY3BfZnVuY3Rpb25f ZGVjbF9leHBsaWNpdF9wICh0cmVlIGRlY2wpOwotKwotIC8qIExhbmcgaG9va3MgdGhhdCBhcmUg c2hhcmVkIGJldHdlZW4gQysrIGFuZCBPYmpDKysgYXJlIGRlZmluZWQgaGVyZS4gIEhvb2tzCi0g ICAgc3BlY2lmaWMgdG8gQysrIG9yIE9iakMrKyBnbyBpbiBjcC9jcC1sYW5nLmMgYW5kIG9iamNw L29iamNwLWxhbmcuYywKLSAgICByZXNwZWN0aXZlbHkuICAqLwotQEAgLTEzMSw2ICsxMzMsOCBA QCBleHRlcm4gdHJlZSBvYmpjcF90c3Vic3RfY29weV9hbmRfYnVpbGQgCi0gI2RlZmluZSBMQU5H X0hPT0tTX1RPX1RBUkdFVF9DSEFSU0VUIGNfY29tbW9uX3RvX3RhcmdldF9jaGFyc2V0Ci0gI3Vu ZGVmIExBTkdfSE9PS1NfR0lNUExJRllfRVhQUgotICNkZWZpbmUgTEFOR19IT09LU19HSU1QTElG WV9FWFBSIGNwX2dpbXBsaWZ5X2V4cHIKLSsjdW5kZWYgTEFOR19IT09LU19GVU5DVElPTl9ERUNM X0VYUExJQ0lUX1AKLSsjZGVmaW5lIExBTkdfSE9PS1NfRlVOQ1RJT05fREVDTF9FWFBMSUNJVF9Q IGNwX2Z1bmN0aW9uX2RlY2xfZXhwbGljaXRfcAotICN1bmRlZiBMQU5HX0hPT0tTX09NUF9QUkVE RVRFUk1JTkVEX1NIQVJJTkcKLSAjZGVmaW5lIExBTkdfSE9PS1NfT01QX1BSRURFVEVSTUlORURf U0hBUklORyBjeHhfb21wX3ByZWRldGVybWluZWRfc2hhcmluZwotICN1bmRlZiBMQU5HX0hPT0tT X09NUF9DTEFVU0VfREVGQVVMVF9DVE9SCi0tLS0gZ2NjL2xhbmdob29rcy1kZWYuaC5qagkyMDA5 LTAzLTE4IDE0OjI0OjQzLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9sYW5naG9va3MtZGVmLmgJ MjAwOS0wMy0xOCAxNDozMjozNy4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xOTAsNiArMTkwLDcgQEAg ZXh0ZXJuIHRyZWUgbGhkX21ha2Vfbm9kZSAoZW51bSB0cmVlX2NvZAotICNkZWZpbmUgTEFOR19I T09LU19HTE9CQUxfQklORElOR1NfUCBnbG9iYWxfYmluZGluZ3NfcAotICNkZWZpbmUgTEFOR19I T09LU19QVVNIREVDTAlwdXNoZGVjbAotICNkZWZpbmUgTEFOR19IT09LU19HRVRERUNMUwlnZXRk ZWNscwotKyNkZWZpbmUgTEFOR19IT09LU19GVU5DVElPTl9ERUNMX0VYUExJQ0lUX1AgaG9va19i b29sX3RyZWVfZmFsc2UKLSAjZGVmaW5lIExBTkdfSE9PS1NfV0FSTl9VTlVTRURfR0xPQkFMX0RF Q0wgbGhkX3dhcm5fdW51c2VkX2dsb2JhbF9kZWNsCi0gI2RlZmluZSBMQU5HX0hPT0tTX1dSSVRF X0dMT0JBTFMgd3JpdGVfZ2xvYmFsX2RlY2xhcmF0aW9ucwotICNkZWZpbmUgTEFOR19IT09LU19E RUNMX09LX0ZPUl9TSUJDQUxMCWxoZF9kZWNsX29rX2Zvcl9zaWJjYWxsCi1AQCAtMjA5LDYgKzIx MCw3IEBAIGV4dGVybiB0cmVlIGxoZF9tYWtlX25vZGUgKGVudW0gdHJlZV9jb2QKLSAgIExBTkdf SE9PS1NfR0xPQkFMX0JJTkRJTkdTX1AsIFwKLSAgIExBTkdfSE9PS1NfUFVTSERFQ0wsIFwKLSAg IExBTkdfSE9PS1NfR0VUREVDTFMsIFwKLSsgIExBTkdfSE9PS1NfRlVOQ1RJT05fREVDTF9FWFBM SUNJVF9QLCBcCi0gICBMQU5HX0hPT0tTX1dBUk5fVU5VU0VEX0dMT0JBTF9ERUNMLCBcCi0gICBM QU5HX0hPT0tTX1dSSVRFX0dMT0JBTFMsIFwKLSAgIExBTkdfSE9PS1NfREVDTF9PS19GT1JfU0lC Q0FMTCwgXAotLS0tIGdjYy9sYW5naG9va3MuaC5qagkyMDA5LTAzLTE4IDE0OjI0OjQzLjAwMDAw MDAwMCArMDEwMAotKysrIGdjYy9sYW5naG9va3MuaAkyMDA5LTAzLTE4IDE0OjMyOjA2LjAwMDAw MDAwMCArMDEwMAotQEAgLTE1OSw2ICsxNTksOSBAQCBzdHJ1Y3QgbGFuZ19ob29rc19mb3JfZGVj bHMKLSAgIC8qIFJldHVybnMgdGhlIGNoYWluIG9mIGRlY2xzIHNvIGZhciBpbiB0aGUgY3VycmVu dCBzY29wZSBsZXZlbC4gICovCi0gICB0cmVlICgqZ2V0ZGVjbHMpICh2b2lkKTsKLSAKLSsgIC8q IFJldHVybnMgdHJ1ZSBpZiBERUNMIGlzIGV4cGxpY2l0IG1lbWJlciBmdW5jdGlvbi4gICovCi0r ICBib29sICgqZnVuY3Rpb25fZGVjbF9leHBsaWNpdF9wKSAodHJlZSk7Ci0rCi0gICAvKiBSZXR1 cm5zIHRydWUgd2hlbiB3ZSBzaG91bGQgd2FybiBmb3IgYW4gdW51c2VkIGdsb2JhbCBERUNMLgot ICAgICAgV2Ugd2lsbCBhbHJlYWR5IGhhdmUgY2hlY2tlZCB0aGF0IGl0IGhhcyBzdGF0aWMgYmlu ZGluZy4gICovCi0gICBib29sICgqd2Fybl91bnVzZWRfZ2xvYmFsKSAoY29uc3RfdHJlZSk7Ci0t LS0gZ2NjL2R3YXJmMm91dC5jLmpqCTIwMDktMDMtMTggMTQ6MjQ6NDMuMDAwMDAwMDAwICswMTAw Ci0rKysgZ2NjL2R3YXJmMm91dC5jCTIwMDktMDMtMTggMTQ6MzM6MDQuMDAwMDAwMDAwICswMTAw Ci1AQCAtNTU5OSw2ICs1NTk5LDggQEAgZHdhcmZfYXR0cl9uYW1lICh1bnNpZ25lZCBpbnQgYXR0 cikKLSAgICAgICByZXR1cm4gIkRXX0FUX2VuY29kaW5nIjsKLSAgICAgY2FzZSBEV19BVF9leHRl cm5hbDoKLSAgICAgICByZXR1cm4gIkRXX0FUX2V4dGVybmFsIjsKLSsgICAgY2FzZSBEV19BVF9l eHBsaWNpdDoKLSsgICAgICByZXR1cm4gIkRXX0FUX2V4cGxpY2l0IjsKLSAgICAgY2FzZSBEV19B VF9mcmFtZV9iYXNlOgotICAgICAgIHJldHVybiAiRFdfQVRfZnJhbWVfYmFzZSI7Ci0gICAgIGNh c2UgRFdfQVRfZnJpZW5kOgotQEAgLTEzNjIwLDYgKzEzNjIyLDExIEBAIGdlbl9zdWJwcm9ncmFt X2RpZSAodHJlZSBkZWNsLCBkd19kaWVfcmUKLSAJewotIAkgIGFkZF9BVF9mbGFnIChzdWJyX2Rp ZSwgRFdfQVRfZGVjbGFyYXRpb24sIDEpOwotIAotKwkgIC8qIElmIHRoaXMgaXMgYW4gZXhwbGlj aXQgZnVuY3Rpb24gZGVjbGFyYXRpb24gdGhlbiBnZW5lcmF0ZQotKwkgICAgIGEgRFdfQVRfZXhw bGljaXQgYXR0cmlidXRlLiAgKi8KLSsgICAgICAgICAgaWYgKGxhbmdfaG9va3MuZGVjbHMuZnVu Y3Rpb25fZGVjbF9leHBsaWNpdF9wIChkZWNsKSkKLSsJICAgIGFkZF9BVF9mbGFnIChzdWJyX2Rp ZSwgRFdfQVRfZXhwbGljaXQsIDEpOwotKwotIAkgIC8qIFRoZSBmaXJzdCB0aW1lIHdlIHNlZSBh IG1lbWJlciBmdW5jdGlvbiwgaXQgaXMgaW4gdGhlIGNvbnRleHQgb2YKLSAJICAgICB0aGUgY2xh c3MgdG8gd2hpY2ggaXQgYmVsb25ncy4gIFdlIG1ha2Ugc3VyZSBvZiB0aGlzIGJ5IGVtaXR0aW5n Ci0gCSAgICAgdGhlIGNsYXNzIGZpcnN0LiAgVGhlIG5leHQgdGltZSBpcyB0aGUgZGVmaW5pdGlv biwgd2hpY2ggaXMKLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9kZWJ1Zy9kd2FyZjIvZXhwbGlj aXQtY29uc3RydWN0b3IuQy5qagkyMDA5LTAzLTE4IDE0OjI0OjU1LjAwMDAwMDAwMCArMDEwMAot KysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2RlYnVnL2R3YXJmMi9leHBsaWNpdC1jb25zdHJ1Y3Rv ci5DCTIwMDktMDMtMTggMTQ6MjQ6NTUuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDE5IEBA Ci0rLy8gQ29udHJpYnV0ZWQgYnkgRG9kamkgU2VrZXRlbGkgPGRvZGppQHJlZGhhdC5jb20+Ci0r Ly8gT3JpZ2luOiBQUiBjKysKLSsvLyB7IGRnLWRvIGNvbXBpbGUgfQotKy8vIHsgZGctb3B0aW9u cyAiLU8gLWcgLWRBIiB9Ci0rLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJE V19BVF9leHBsaWNpdCIgMiB9IH0KLSsKLStzdHJ1Y3QgRm9vCi0rewotKyAgRm9vICgpIHt9Ci0r ICBleHBsaWNpdCBGb28gKGludCkge30KLSsgIEZvbyAoY2hhcikge30KLSsgIH5Gb28gKCkge307 Ci0rfTsKLSsKLSt2b2lkCi0rYmFyICgpCi0rewotKyAgRm9vIGZvbzsKLSt9CgpkaWZmIC0tZ2l0 IGEvZ2NjNDQtcHIzOTU0My5wYXRjaCBiL2djYzQ0LXByMzk1NDMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE4ZjJjYwotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0 LXByMzk1NDMucGF0Y2gKQEAgLTAsMCArMSwyODYgQEAKKzIwMDktMDMtMjcgIEpha3ViIEplbGlu ZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgcnRsLW9wdGltaXphdGlvbi8zOTU0MworCSog Zndwcm9wLmMgKGZvcndhcmRfcHJvcGFnYXRlX2FzbSk6IE5ldyBmdW5jdGlvbi4KKwkoZm9yd2Fy ZF9wcm9wYWdhdGVfYW5kX3NpbXBsaWZ5KTogUHJvcGFnYXRlIGFsc28gaW50byBfX2FzbSwgaWYg aXQKKwlkb2Vzbid0IGluY3JlYXNlIHRoZSBudW1iZXIgb2YgcmVmZXJlbmNlZCByZWdpc3RlcnMu CisKKwkqIGdjYy50YXJnZXQvaTM4Ni9wcjM5NTQzLTEuYzogTmV3IHRlc3QuCisJKiBnY2MudGFy Z2V0L2kzODYvcHIzOTU0My0yLmM6IE5ldyB0ZXN0LgorCSogZ2NjLnRhcmdldC9pMzg2L3ByMzk1 NDMtMy5jOiBOZXcgdGVzdC4KKworLS0tIGdjYy9md3Byb3AuYy5qagkyMDA5LTAzLTI3IDA3OjU1 OjMzLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9md3Byb3AuYwkyMDA5LTAzLTI3IDEwOjAwOjQ4 LjAwMDAwMDAwMCArMDEwMAorQEAgLTEsNSArMSw1IEBACisgLyogUlRMLWJhc2VkIGZvcndhcmQg cHJvcGFnYXRpb24gcGFzcyBmb3IgR05VIGNvbXBpbGVyLgorLSAgIENvcHlyaWdodCAoQykgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBD b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisgICAgQ29udHJpYnV0ZWQgYnkgUGFvbG8gQm9uemluaSBhbmQgU3Rl dmVuIEJvc3NjaGVyLgorIAorIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KK0BAIC04NTIsNiAr ODUyLDczIEBAIGZvcndhcmRfcHJvcGFnYXRlX3N1YnJlZyAoZGZfcmVmIHVzZSwgcnQKKyAgICAg cmV0dXJuIGZhbHNlOworIH0KKyAKKysvKiBUcnkgdG8gcmVwbGFjZSBVU0Ugd2l0aCBTUkMgKGRl ZmluZWQgaW4gREVGX0lOU04pIGluIF9fYXNtLiAgKi8KKysKKytzdGF0aWMgYm9vbAorK2Zvcndh cmRfcHJvcGFnYXRlX2FzbSAoZGZfcmVmIHVzZSwgcnR4IGRlZl9pbnNuLCBydHggZGVmX3NldCwg cnR4IHJlZykKKyt7CisrICBydHggdXNlX2luc24gPSBERl9SRUZfSU5TTiAodXNlKSwgc3JjLCB1 c2VfcGF0LCBhc21fb3BlcmFuZHMsIG5ld19ydHgsICpsb2M7CisrICBpbnQgc3BlZWRfcCwgaTsK KysgIGRmX3JlZiAqdXNlX3ZlYzsKKysKKysgIGdjY19hc3NlcnQgKChERl9SRUZfRkxBR1MgKHVz ZSkgJiBERl9SRUZfSU5fTk9URSkgPT0gMCk7CisrCisrICBzcmMgPSBTRVRfU1JDIChkZWZfc2V0 KTsKKysgIHVzZV9wYXQgPSBQQVRURVJOICh1c2VfaW5zbik7CisrCisrICAvKiBJbiBfX2FzbSBk b24ndCByZXBsYWNlIGlmIHNyYyBtaWdodCBuZWVkIG1vcmUgcmVnaXN0ZXJzIHRoYW4KKysgICAg IHJlZywgYXMgdGhhdCBjb3VsZCBpbmNyZWFzZSByZWdpc3RlciBwcmVzc3VyZSBvbiB0aGUgX19h c20uICAqLworKyAgdXNlX3ZlYyA9IERGX0lOU05fVVNFUyAoZGVmX2luc24pOworKyAgaWYgKHVz ZV92ZWNbMF0gJiYgdXNlX3ZlY1sxXSkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAgc3BlZWRf cCA9IG9wdGltaXplX2JiX2Zvcl9zcGVlZF9wIChCTE9DS19GT1JfSU5TTiAodXNlX2luc24pKTsK KysgIGFzbV9vcGVyYW5kcyA9IE5VTExfUlRYOworKyAgc3dpdGNoIChHRVRfQ09ERSAodXNlX3Bh dCkpCisrICAgIHsKKysgICAgY2FzZSBBU01fT1BFUkFORFM6CisrICAgICAgYXNtX29wZXJhbmRz ID0gdXNlX3BhdDsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBTRVQ6CisrICAgICAgbG9jID0g JlNFVF9ERVNUICh1c2VfcGF0KTsKKysgICAgICBuZXdfcnR4ID0gcHJvcGFnYXRlX3J0eCAoKmxv YywgR0VUX01PREUgKCpsb2MpLCByZWcsIHNyYywgc3BlZWRfcCk7CisrICAgICAgaWYgKG5ld19y dHgpCisrCXZhbGlkYXRlX3Vuc2hhcmVfY2hhbmdlICh1c2VfaW5zbiwgbG9jLCBuZXdfcnR4LCB0 cnVlKTsKKysgICAgICBhc21fb3BlcmFuZHMgPSBTRVRfU1JDICh1c2VfcGF0KTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBQQVJBTExFTDoKKysgICAgICBmb3IgKGkgPSAwOyBpIDwgWFZFQ0xF TiAodXNlX3BhdCwgMCk7IGkrKykKKysJaWYgKEdFVF9DT0RFIChYVkVDRVhQICh1c2VfcGF0LCAw LCBpKSkgPT0gU0VUKQorKwkgIHsKKysJICAgIGxvYyA9ICZTRVRfREVTVCAoWFZFQ0VYUCAodXNl X3BhdCwgMCwgaSkpOworKwkgICAgbmV3X3J0eCA9IHByb3BhZ2F0ZV9ydHggKCpsb2MsIEdFVF9N T0RFICgqbG9jKSwgcmVnLCBzcmMsIHNwZWVkX3ApOworKwkgICAgaWYgKG5ld19ydHgpCisrCSAg ICAgIHZhbGlkYXRlX3Vuc2hhcmVfY2hhbmdlICh1c2VfaW5zbiwgbG9jLCBuZXdfcnR4LCB0cnVl KTsKKysJICAgIGFzbV9vcGVyYW5kcyA9IFNFVF9TUkMgKFhWRUNFWFAgKHVzZV9wYXQsIDAsIGkp KTsKKysJICB9CisrCWVsc2UgaWYgKEdFVF9DT0RFIChYVkVDRVhQICh1c2VfcGF0LCAwLCBpKSkg PT0gQVNNX09QRVJBTkRTKQorKwkgIGFzbV9vcGVyYW5kcyA9IFhWRUNFWFAgKHVzZV9wYXQsIDAs IGkpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGdjY191bnJlYWNoYWJs ZSAoKTsKKysgICAgfQorKworKyAgZ2NjX2Fzc2VydCAoYXNtX29wZXJhbmRzICYmIEdFVF9DT0RF IChhc21fb3BlcmFuZHMpID09IEFTTV9PUEVSQU5EUyk7CisrICBmb3IgKGkgPSAwOyBpIDwgQVNN X09QRVJBTkRTX0lOUFVUX0xFTkdUSCAoYXNtX29wZXJhbmRzKTsgaSsrKQorKyAgICB7CisrICAg ICAgbG9jID0gJkFTTV9PUEVSQU5EU19JTlBVVCAoYXNtX29wZXJhbmRzLCBpKTsKKysgICAgICBu ZXdfcnR4ID0gcHJvcGFnYXRlX3J0eCAoKmxvYywgR0VUX01PREUgKCpsb2MpLCByZWcsIHNyYywg c3BlZWRfcCk7CisrICAgICAgaWYgKG5ld19ydHgpCisrCXZhbGlkYXRlX3Vuc2hhcmVfY2hhbmdl ICh1c2VfaW5zbiwgbG9jLCBuZXdfcnR4LCB0cnVlKTsKKysgICAgfQorKworKyAgaWYgKG51bV9j aGFuZ2VzX3BlbmRpbmcgKCkgPT0gMCB8fCAhYXBwbHlfY2hhbmdlX2dyb3VwICgpKQorKyAgICBy ZXR1cm4gZmFsc2U7CisrCisrICBudW1fY2hhbmdlcysrOworKyAgcmV0dXJuIHRydWU7CisrfQor KworIC8qIFRyeSB0byByZXBsYWNlIFVTRSB3aXRoIFNSQyAoZGVmaW5lZCBpbiBERUZfSU5TTikg YW5kIHNpbXBsaWZ5IHRoZQorICAgIHJlc3VsdC4gICovCisgCitAQCAtODYzLDEyICs5MzAsMTYg QEAgZm9yd2FyZF9wcm9wYWdhdGVfYW5kX3NpbXBsaWZ5IChkZl9yZWYgdQorICAgcnR4IHNyYywg cmVnLCBuZXdfcnR4LCAqbG9jOworICAgYm9vbCBzZXRfcmVnX2VxdWFsOworICAgZW51bSBtYWNo aW5lX21vZGUgbW9kZTsKKysgIGludCBhc21fdXNlID0gLTE7CisrCisrICBpZiAoSU5TTl9DT0RF ICh1c2VfaW5zbikgPCAwKQorKyAgICBhc21fdXNlID0gYXNtX25vcGVyYW5kcyAoUEFUVEVSTiAo dXNlX2luc24pKTsKKyAKKy0gIGlmICghdXNlX3NldCkKKysgIGlmICghdXNlX3NldCAmJiBhc21f dXNlIDwgMCkKKyAgICAgcmV0dXJuIGZhbHNlOworIAorICAgLyogRG8gbm90IHByb3BhZ2F0ZSBp bnRvIFBDLCBDQzAsIGV0Yy4gICovCistICBpZiAoR0VUX01PREUgKFNFVF9ERVNUICh1c2Vfc2V0 KSkgPT0gVk9JRG1vZGUpCisrICBpZiAodXNlX3NldCAmJiBHRVRfTU9ERSAoU0VUX0RFU1QgKHVz ZV9zZXQpKSA9PSBWT0lEbW9kZSkKKyAgICAgcmV0dXJuIGZhbHNlOworIAorICAgLyogSWYgZGVm IGFuZCB1c2UgYXJlIHN1YnJlZywgY2hlY2sgaWYgdGhleSBtYXRjaC4gICovCitAQCAtOTAwLDcg Kzk3MSw3IEBAIGZvcndhcmRfcHJvcGFnYXRlX2FuZF9zaW1wbGlmeSAoZGZfcmVmIHUKKyAgIGlm IChNRU1fUCAoc3JjKSAmJiBNRU1fUkVBRE9OTFlfUCAoc3JjKSkKKyAgICAgeworICAgICAgIHJ0 eCB4ID0gYXZvaWRfY29uc3RhbnRfcG9vbF9yZWZlcmVuY2UgKHNyYyk7CistICAgICAgaWYgKHgg IT0gc3JjKQorKyAgICAgIGlmICh4ICE9IHNyYyAmJiB1c2Vfc2V0KQorIAl7CisgICAgICAgICAg IHJ0eCBub3RlID0gZmluZF9yZWdfbm90ZSAodXNlX2luc24sIFJFR19FUVVBTCwgTlVMTF9SVFgp OworIAkgIHJ0eCBvbGRfcnR4ID0gbm90ZSA/IFhFWFAgKG5vdGUsIDApIDogU0VUX1NSQyAodXNl X3NldCk7CitAQCAtOTExLDYgKzk4Miw5IEBAIGZvcndhcmRfcHJvcGFnYXRlX2FuZF9zaW1wbGlm eSAoZGZfcmVmIHUKKyAgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAKKysgIGlmIChhc21f dXNlID49IDApCisrICAgIHJldHVybiBmb3J3YXJkX3Byb3BhZ2F0ZV9hc20gKHVzZSwgZGVmX2lu c24sIGRlZl9zZXQsIHJlZyk7CisrCisgICAvKiBFbHNlIHRyeSBzaW1wbGlmeWluZy4gICovCisg CisgICBpZiAoREZfUkVGX1RZUEUgKHVzZSkgPT0gREZfUkVGX1JFR19NRU1fU1RPUkUpCistLS0g Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIzOTU0My0xLmMuamoJMjAwOS0wMy0yNSAx Njo0MDoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9wcjM5NTQzLTEuYwkyMDA5LTAzLTI1IDE2OjQwOjUwLjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw1MiBAQAorKy8qIFBSIHJ0bC1vcHRpbWl6YXRpb24vMzk1NDMgKi8KKysvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1mb21pdC1mcmFtZS1wb2ludGVy IiB9ICovCisrCisrZmxvYXQgX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQgKDE2KSkpIHMwWzEyOF07 CisrY29uc3QgZmxvYXQgczEgPSAwLjcwNzsKKytmbG9hdCBzMls4XSBfX2F0dHJpYnV0ZV9fICgo YWxpZ25lZCAoMTYpKSk7CisrZmxvYXQgczNbOF0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQgKDE2 KSkpOworK2Zsb2F0IHM0WzE2XSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoMTYpKSk7CisrZmxv YXQgczVbMTZdIF9fYXR0cmlidXRlX18gKChhbGlnbmVkICgxNikpKTsKKysKKyt2b2lkCisrZm9v IChpbnQgaywgZmxvYXQgKngsIGZsb2F0ICp5LCBjb25zdCBmbG9hdCAqZCwgY29uc3QgZmxvYXQg KnopCisreworKyAgZmxvYXQgKmEsICpiLCAqYywgKmU7CisrCisrICBhID0geCArIDIgKiBrOwor KyAgYiA9IGEgKyAyICogazsKKysgIGMgPSBiICsgMiAqIGs7CisrICBlID0geSArIDIgKiBrOwor KyAgX19hc21fXyB2b2xhdGlsZSAoIiIKKysJCSAgICA6ICI9bSIgKHhbMF0pLCAiPW0iIChiWzBd KSwgIj1tIiAoYVswXSksICI9bSIgKGNbMF0pCisrCQkgICAgOiAibSIgKHlbMF0pLCAibSIgKHlb ayAqIDJdKSwgIm0iICh4WzBdKSwgIm0iIChhWzBdKQorKwkJICAgIDogIm1lbW9yeSIpOworKyAg Zm9yICg7OykKKysgICAgeworKyAgICAgIF9fYXNtX18gdm9sYXRpbGUgKCIiCisrCQkJOgorKwkJ CTogIm0iICh5WzJdKSwgIm0iIChkWzJdKSwgIm0iIChlWzJdKSwgIm0iICh6WzJdKQorKwkJCTog Im1lbW9yeSIpOworKyAgICAgIGlmICghLS1rKQorKwlicmVhazsKKysgICAgfQorKyAgX19hc21f XyB2b2xhdGlsZSAoIiIKKysJCSAgICA6ICI9bSIgKHhbMl0pLCAiPW0iICh4WzEwXSksICI9bSIg KHhbNl0pLCAiPW0iICh4WzE0XSkKKysJCSAgICA6ICJtIiAoeVsyXSksICJtIiAoeVs2XSksICJt IiAoeFsyXSksICJtIiAoeFs2XSksCisrCQkgICAgICAibSIgKHlbMThdKSwgIm0iIChzMSkKKysJ CSAgICA6ICJtZW1vcnkiKTsKKyt9CisrCisrdm9pZAorK2JhciAoZmxvYXQgKmEpCisreworKyAg Zm9vICg0LCBhLCBhICsgMTYsIHMyLCBzMyk7CisrICBmb28gKDgsIGEsIGEgKyAzMiwgczQsIHM1 KTsKKyt9CisrCisrdm9pZAorK2JheiAodm9pZCkKKyt7CisrICBiYXIgKHMwKTsKKyt9CistLS0g Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIzOTU0My0yLmMuamoJMjAwOS0wMy0yNSAx Njo0MDoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9wcjM5NTQzLTIuYwkyMDA5LTAzLTI1IDE2OjQwOjM4LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw1MSBAQAorKy8qIFBSIHJ0bC1vcHRpbWl6YXRpb24vMzk1NDMgKi8KKysvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8zIiB9ICovCisrCisrZmxvYXQgX19h dHRyaWJ1dGVfXyAoKGFsaWduZWQgKDE2KSkpIHMwWzEyOF07CisrY29uc3QgZmxvYXQgczEgPSAw LjcwNzsKKytmbG9hdCBzMls4XSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoMTYpKSk7CisrZmxv YXQgczNbOF0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQgKDE2KSkpOworK2Zsb2F0IHM0WzE2XSBf X2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoMTYpKSk7CisrZmxvYXQgczVbMTZdIF9fYXR0cmlidXRl X18gKChhbGlnbmVkICgxNikpKTsKKysKKyt2b2lkCisrZm9vIChpbnQgaywgZmxvYXQgKngsIGZs b2F0ICp5LCBjb25zdCBmbG9hdCAqZCwgY29uc3QgZmxvYXQgKnopCisreworKyAgZmxvYXQgKmEs ICpiLCAqYywgKmU7CisrCisrICBhID0geCArIDIgKiBrOworKyAgYiA9IGEgKyAyICogazsKKysg IGMgPSBiICsgMiAqIGs7CisrICBlID0geSArIDIgKiBrOworKyAgX19hc21fXyB2b2xhdGlsZSAo IiIKKysJCSAgICA6ICI9bSIgKHhbMF0pLCAiPW0iIChiWzBdKSwgIj1tIiAoYVswXSksICI9bSIg KGNbMF0pCisrCQkgICAgOiAibSIgKHlbMF0pLCAibSIgKHlbayAqIDJdKSwgIm0iICh4WzBdKSwg Im0iIChhWzBdKQorKwkJICAgIDogIm1lbW9yeSIpOworKyAgZm9yICg7OykKKysgICAgeworKyAg ICAgIF9fYXNtX18gdm9sYXRpbGUgKCIiCisrCQkJOgorKwkJCTogIm0iICh5WzJdKSwgIm0iIChk WzJdKSwgIm0iIChlWzJdKSwgIm0iICh6WzJdKQorKwkJCTogIm1lbW9yeSIpOworKyAgICAgIGlm ICghLS1rKQorKwlicmVhazsKKysgICAgfQorKyAgX19hc21fXyB2b2xhdGlsZSAoIiIKKysJCSAg ICA6ICI9bSIgKHhbMl0pLCAiPW0iICh4WzEwXSksICI9bSIgKHhbNl0pLCAiPW0iICh4WzE0XSkK KysJCSAgICA6ICJtIiAoeVsyXSksICJtIiAoeVs2XSksICJtIiAoeFsyXSksICJtIiAoeFs2XSks ICJtIiAoczEpCisrCQkgICAgOiAibWVtb3J5Iik7CisrfQorKworK3ZvaWQKKytiYXIgKGZsb2F0 ICphKQorK3sKKysgIGZvbyAoNCwgYSwgYSArIDE2LCBzMiwgczMpOworKyAgZm9vICg4LCBhLCBh ICsgMzIsIHM0LCBzNSk7CisrfQorKworK3ZvaWQKKytiYXogKHZvaWQpCisreworKyAgYmFyIChz MCk7CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMzk1NDMtMy5jLmpq CTIwMDktMDMtMjUgMTY6NDE6MjkuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvcHIzOTU0My0zLmMJMjAwOS0wMy0yNSAxNjo0MToxOS4wMDAwMDAwMDAg KzAxMDAKK0BAIC0wLDAgKzEsNDIgQEAKKysvKiBQUiBydGwtb3B0aW1pemF0aW9uLzM5NTQzICov CisrLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLwor KworK2ludCBzWzEyOF07CisrCisrdm9pZAorK2YxICh2b2lkKQorK3sKKysgIGludCBpOworKyAg YXNtIHZvbGF0aWxlICgiIyAlMCAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOSAlMTAgJTExICUx MiAlMTMgJTE0ICUxNSAlMTYgJTE3IgorKwkJOiAiPXIiIChpKQorKwkJOiAibSIgKHNbMF0pLCAi bSIgKHNbMl0pLCAibSIgKHNbNF0pLCAibSIgKHNbNl0pLCAibSIgKHNbOF0pLAorKwkJICAibSIg KHNbMTBdKSwgIm0iIChzWzEyXSksICJtIiAoc1sxNF0pLCAibSIgKHNbMTZdKSwgIm0iIChzWzE4 XSksCisrCQkgICJtIiAoc1syMF0pLCAibSIgKHNbMjJdKSwgIm0iIChzWzI0XSksICJtIiAoc1sy Nl0pLCAibSIgKHNbMjhdKSwKKysJCSAgIm0iIChzWzMwXSksICJtIiAoc1szMl0pKTsKKysgIGFz bSB2b2xhdGlsZSAoIiMgJTAgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkgJTEwICUxMSAlMTIg JTEzICUxNCAlMTUgJTE2ICUxNyIKKysJCTogIj1yIiAoaSkKKysJCTogIm0iIChzWzBdKSwgIm0i IChzWzJdKSwgIm0iIChzWzRdKSwgIm0iIChzWzZdKSwgIm0iIChzWzhdKSwKKysJCSAgIm0iIChz WzEwXSksICJtIiAoc1sxMl0pLCAibSIgKHNbMTRdKSwgIm0iIChzWzE2XSksICJtIiAoc1sxOF0p LAorKwkJICAibSIgKHNbMjBdKSwgIm0iIChzWzIyXSksICJtIiAoc1syNF0pLCAibSIgKHNbMjZd KSwgIm0iIChzWzI4XSksCisrCQkgICJtIiAoc1szMF0pLCAibSIgKHNbMzJdKSk7CisrfQorKwor K3ZvaWQKKytmMiAoaW50ICpxKQorK3sKKysgIGludCBpOworKyAgaW50ICpwID0gcSArIDMyOwor KyAgYXNtIHZvbGF0aWxlICgiIyAlMCAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOSAlMTAgJTEx ICUxMiAlMTMgJTE0ICUxNSAlMTYgJTE3IgorKwkJOiAiPXIiIChpKQorKwkJOiAibSIgKHBbMF0p LCAibSIgKHBbMl0pLCAibSIgKHBbNF0pLCAibSIgKHBbNl0pLCAibSIgKHBbOF0pLAorKwkJICAi bSIgKHBbMTBdKSwgIm0iIChwWzEyXSksICJtIiAocFsxNF0pLCAibSIgKHBbMTZdKSwgIm0iIChw WzE4XSksCisrCQkgICJtIiAocFsyMF0pLCAibSIgKHBbMjJdKSwgIm0iIChwWzI0XSksICJtIiAo cFsyNl0pLCAibSIgKHBbMjhdKSwKKysJCSAgIm0iIChwWzMwXSksICJtIiAocFszMl0pKTsKKysg IGFzbSB2b2xhdGlsZSAoIiMgJTAgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkgJTEwICUxMSAl MTIgJTEzICUxNCAlMTUgJTE2ICUxNyIKKysJCTogIj1yIiAoaSkKKysJCTogIm0iIChwWzBdKSwg Im0iIChwWzJdKSwgIm0iIChwWzRdKSwgIm0iIChwWzZdKSwgIm0iIChwWzhdKSwKKysJCSAgIm0i IChwWzEwXSksICJtIiAocFsxMl0pLCAibSIgKHBbMTRdKSwgIm0iIChwWzE2XSksICJtIiAocFsx OF0pLAorKwkJICAibSIgKHBbMjBdKSwgIm0iIChwWzIyXSksICJtIiAocFsyNF0pLCAibSIgKHBb MjZdKSwgIm0iIChwWzI4XSksCisrCQkgICJtIiAocFszMF0pLCAibSIgKHBbMzJdKSk7CisrfQoK ZGlmZiAtLWdpdCBhL2djYzQ0LXByMzk1NTgucGF0Y2ggYi9nY2M0NC1wcjM5NTU4LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNDY5OWIKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M0NC1wcjM5NTU4LnBhdGNoCkBAIC0wLDAgKzEsODcgQEAKKzIwMDktMDMtMjcgIEph a3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgdGFyZ2V0LzM5NTU4CisJKiBt YWNyby5jIChjcHBfZ2V0X3Rva2VuKTogSWYgbWFjcm9fdG9fZXhwYW5kIHJldHVybnMgTlVMTAor CWFuZCB1c2VkIHNvbWUgdG9rZW5zLCBhZGQgQ1BQX1BBRERJTkcgYmVmb3JlIG5leHQgdG9rZW4u CisKKwkqIGdjYy50YXJnZXQvcG93ZXJwYy9hbHRpdmVjLTI5LmM6IE5ldyB0ZXN0LgorCistLS0g bGliY3BwL21hY3JvLmMuamoJMjAwOC0xMC0yMyAxMzoyMjo0OC4wMDAwMDAwMDAgKzAyMDAKKysr KyBsaWJjcHAvbWFjcm8uYwkyMDA5LTAzLTI3IDE4OjQ3OjQzLjAwMDAwMDAwMCArMDEwMAorQEAg LTEsNyArMSw3IEBACisgLyogUGFydCBvZiBDUFAgbGlicmFyeS4gIChNYWNybyBhbmQgI2RlZmlu ZSBoYW5kbGluZy4pCisgICAgQ29weXJpZ2h0IChDKSAxOTg2LCAxOTg3LCAxOTg5LCAxOTkyLCAx OTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LAorLSAgIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsCistICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysgICAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5CisrICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisgICAgV3JpdHRlbiBieSBQZXIgQm90aG5lciwgMTk5NC4KKyAgICBCYXNlZCBvbiBD Q0NQIHByb2dyYW0gYnkgUGF1bCBSdWJpbiwgSnVuZSAxOTg2CisgICAgQWRhcHRlZCB0byBBTlNJ IEMsIFJpY2hhcmQgU3RhbGxtYW4sIEphbiAxOTg3CitAQCAtMTI2MCwxMCArMTI2MCwzNiBAQCBj cHBfZ2V0X3Rva2VuIChjcHBfcmVhZGVyICpwZmlsZSkKKyAKKyAJICAvKiBDb25kaXRpb25hbCBt YWNyb3MgcmVxdWlyZSB0aGF0IGEgcHJlZGljYXRlIGJlIGV2YWx1YXRlZAorIAkgICAgIGZpcnN0 LiAgKi8KKy0JICBpZiAoKCghKG5vZGUtPmZsYWdzICYgTk9ERV9DT05ESVRJT05BTCkpCistCSAg ICAgICB8fCAocGZpbGUtPmNiLm1hY3JvX3RvX2V4cGFuZAorLQkJICAgJiYgKG5vZGUgPSBwZmls ZS0+Y2IubWFjcm9fdG9fZXhwYW5kIChwZmlsZSwgcmVzdWx0KSkpKQorLQkgICAgICAmJiAocmV0 ID0gZW50ZXJfbWFjcm9fY29udGV4dCAocGZpbGUsIG5vZGUsIHJlc3VsdCkpKQorKwkgIGlmICgo bm9kZS0+ZmxhZ3MgJiBOT0RFX0NPTkRJVElPTkFMKSAhPSAwKQorKwkgICAgeworKwkgICAgICBp ZiAocGZpbGUtPmNiLm1hY3JvX3RvX2V4cGFuZCkKKysJCXsKKysJCSAgYm9vbCB3aGl0ZXNwYWNl X2FmdGVyOworKwkJICBjb25zdCBjcHBfdG9rZW4gKnBlZWtfdG9rID0gY3BwX3BlZWtfdG9rZW4g KHBmaWxlLCAwKTsKKysKKysJCSAgd2hpdGVzcGFjZV9hZnRlciA9IChwZWVrX3Rvay0+dHlwZSA9 PSBDUFBfUEFERElORworKwkJCQkgICAgICB8fCAocGVla190b2stPmZsYWdzICYgUFJFVl9XSElU RSkpOworKwkJICBub2RlID0gcGZpbGUtPmNiLm1hY3JvX3RvX2V4cGFuZCAocGZpbGUsIHJlc3Vs dCk7CisrCQkgIGlmIChub2RlKQorKwkJICAgIHJldCA9IGVudGVyX21hY3JvX2NvbnRleHQgKHBm aWxlLCBub2RlLCByZXN1bHQpOworKwkJICBlbHNlIGlmICh3aGl0ZXNwYWNlX2FmdGVyKQorKwkJ ICAgIHsKKysJCSAgICAgIC8qIElmIG1hY3JvX3RvX2V4cGFuZCBob29rIHJldHVybmVkIE5VTEwg YW5kIGl0CisrCQkJIGF0ZSBzb21lIHRva2Vucywgc2VlIGlmIHdlIGRvbid0IG5lZWQgdG8gYWRk CisrCQkJIGEgcGFkZGluZyB0b2tlbiBpbiBiZXR3ZWVuIHRoaXMgYW5kIHRoZQorKwkJCSBuZXh0 IHRva2VuLiAgKi8KKysJCSAgICAgIHBlZWtfdG9rID0gY3BwX3BlZWtfdG9rZW4gKHBmaWxlLCAw KTsKKysJCSAgICAgIGlmIChwZWVrX3Rvay0+dHlwZSAhPSBDUFBfUEFERElORworKwkJCSAgJiYg KHBlZWtfdG9rLT5mbGFncyAmIFBSRVZfV0hJVEUpID09IDApCisrCQkJX2NwcF9wdXNoX3Rva2Vu X2NvbnRleHQgKHBmaWxlLCBOVUxMLAorKwkJCQkJCSBwYWRkaW5nX3Rva2VuIChwZmlsZSwKKysJ CQkJCQkJCXBlZWtfdG9rKSwgMSk7CisrCQkgICAgfQorKwkJfQorKwkgICAgfQorKwkgIGVsc2UK KysJICAgIHJldCA9IGVudGVyX21hY3JvX2NvbnRleHQgKHBmaWxlLCBub2RlLCByZXN1bHQpOwor KwkgIGlmIChyZXQpCisgIAkgICAgeworIAkgICAgICBpZiAocGZpbGUtPnN0YXRlLmluX2RpcmVj dGl2ZSB8fCByZXQgPT0gMikKKyAJCWNvbnRpbnVlOworLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9wb3dlcnBjL2FsdGl2ZWMtMjkuYy5qagkyMDA5LTAzLTI3IDE4OjUwOjQ0LjAwMDAwMDAw MCArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL2FsdGl2ZWMtMjku YwkyMDA5LTAzLTI3IDE4OjUxOjE2LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwyMyBAQAor Ky8qIFBSIHRhcmdldC8zOTU1OCAqLworKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBwb3dl cnBjKi0qLSogfSB9ICovCisrLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgcG93ZXJw Y19hbHRpdmVjX29rIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1tYWx0aXZlYyAtc2F2ZS10ZW1w cyIgfSAqLworKworKyNkZWZpbmUgQVRUUklCVVRFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKCh1bnVz ZWQpKQorKworK2ludCAqZm9vIChpbnQgKnZlY3RvcikKKyt7CisrICByZXR1cm4gdmVjdG9yOwor K30KKysKKytpbnQgKmJhciAoaW50ICp2ZWN0b3IgQVRUUklCVVRFX1VOVVNFRCkKKyt7CisrICBy ZXR1cm4gdmVjdG9yOworK30KKysKKytpbnQgKmJheiAoaW50ICp2ZWN0b3IgX19hdHRyaWJ1dGVf XygodW51c2VkKSkpCisreworKyAgcmV0dXJuIHZlY3RvcjsKKyt9CisrCisrLyogeyBkZy1maW5h bCB7IGNsZWFudXAtc2F2ZWQtdGVtcHMgfSB9ICovCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtcHIzOTU2 My5wYXRjaCBiL2djYzQ0LXByMzk1NjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDg3ODgzNQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LXByMzk1NjMucGF0Y2gK QEAgLTAsMCArMSwyNjEgQEAKKzIwMDktMDMtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRo YXQuY29tPgorCisJUFIgZGVidWcvMzk1NjMKKwkqIGMtZGVjbC5jIChzdHJ1Y3QgY19iaW5kaW5n KTogQWRkIGxvY3VzIGZpZWxkLgorCShiaW5kKTogQWRkIGxvY3VzIGFyZ3VtZW50LCBzZXQgbG9j dXMgZmllbGQgZnJvbSBpdC4KKwkocG9wX3Njb3BlKTogRm9yIGItPm5lc3RlZCBWQVJfREVDTCBv ciBGVU5DVElPTl9ERUNMLAorCWFkZCBhIERFQ0xfRVhURVJOQUwgY29weSBvZiBiLT5kZWNsIHRv IGN1cnJlbnQgQkxPQ0tfVkFSUy4KKwkocHVzaF9maWxlX3Njb3BlLCBwdXNodGFnLCBwdXNoZGVj bCwgcHVzaGRlY2xfdG9wX2xldmVsLAorCWltcGxpY2l0bHlfZGVjbGFyZSwgdW5kZWNsYXJlZF92 YXJpYWJsZSwgbG9va3VwX2xhYmVsLAorCWRlY2xhcmVfbGFiZWwsIGNfbWFrZV9mbmFtZV9kZWNs LCBjX2J1aWx0aW5fZnVuY3Rpb24sCisJY19idWlsdGluX2Z1bmN0aW9uX2V4dF9zY29wZSwgc3Rv cmVfcGFybV9kZWNsc19uZXdzdHlsZSk6IEFkanVzdAorCWJpbmQgY2FsbGVycy4KKworLS0tIGdj Yy9jLWRlY2wuYy5qagkyMDA5LTAzLTAyIDE2OjIyOjE3LjAwMDAwMDAwMCArMDEwMAorKysrIGdj Yy9jLWRlY2wuYwkyMDA5LTAzLTI3IDIwOjE0OjA4LjAwMDAwMDAwMCArMDEwMAorQEAgLTIwOSw2 ICsyMDksNyBAQCBzdHJ1Y3QgY19iaW5kaW5nIEdUWSgoY2hhaW5fbmV4dCAoIiVoLnByCisgICBC T09MX0JJVEZJRUxEIG5lc3RlZCA6IDE7ICAgICAvKiBkbyBub3Qgc2V0IERFQ0xfQ09OVEVYVCB3 aGVuIHBvcHBpbmcgKi8KKyAgIEJPT0xfQklURklFTEQgaW5uZXJfY29tcCA6IDE7IC8qIGluY29t cGxldGUgYXJyYXkgY29tcGxldGVkIGluIGlubmVyIHNjb3BlICovCisgICAvKiBvbmUgZnJlZSBi aXQgKi8KKysgIGxvY2F0aW9uX3QgbG9jdXM7CQkvKiBsb2NhdGlvbiBmb3IgbmVzdGVkIGJpbmRp bmdzICovCisgfTsKKyAjZGVmaW5lIEJfSU5fU0NPUEUoYjEsIGIyKSAoKGIxKS0+ZGVwdGggPT0g KGIyKS0+ZGVwdGgpCisgI2RlZmluZSBCX0lOX0NVUlJFTlRfU0NPUEUoYikgKChiKS0+ZGVwdGgg PT0gY3VycmVudF9zY29wZS0+ZGVwdGgpCitAQCAtNDYwLDcgKzQ2MSw4IEBAIGNfcHJpbnRfaWRl bnRpZmllciAoRklMRSAqZmlsZSwgdHJlZSBub2QKKyAgICB3aGljaCBtYXkgYmUgYW55IG9mIHNl dmVyYWwga2luZHMgb2YgREVDTCBvciBUWVBFIG9yIGVycm9yX21hcmtfbm9kZSwKKyAgICBpbiB0 aGUgc2NvcGUgU0NPUEUuICAqLworIHN0YXRpYyB2b2lkCistYmluZCAodHJlZSBuYW1lLCB0cmVl IGRlY2wsIHN0cnVjdCBjX3Njb3BlICpzY29wZSwgYm9vbCBpbnZpc2libGUsIGJvb2wgbmVzdGVk KQorK2JpbmQgKHRyZWUgbmFtZSwgdHJlZSBkZWNsLCBzdHJ1Y3QgY19zY29wZSAqc2NvcGUsIGJv b2wgaW52aXNpYmxlLAorKyAgICAgIGJvb2wgbmVzdGVkLCBsb2NhdGlvbl90IGxvY3VzKQorIHsK KyAgIHN0cnVjdCBjX2JpbmRpbmcgKmIsICoqaGVyZTsKKyAKK0BAIC00NzksNiArNDgxLDcgQEAg YmluZCAodHJlZSBuYW1lLCB0cmVlIGRlY2wsIHN0cnVjdCBjX3NjbworICAgYi0+aW52aXNpYmxl ID0gaW52aXNpYmxlOworICAgYi0+bmVzdGVkID0gbmVzdGVkOworICAgYi0+aW5uZXJfY29tcCA9 IDA7CisrICBiLT5sb2N1cyA9IGxvY3VzOworIAorICAgYi0+dHlwZSA9IDA7CisgCitAQCAtODI0 LDYgKzgyNywyNiBAQCBwb3Bfc2NvcGUgKHZvaWQpCisgCSAgICAgIFRSRUVfQ0hBSU4gKHApID0g QkxPQ0tfVkFSUyAoYmxvY2spOworIAkgICAgICBCTE9DS19WQVJTIChibG9jaykgPSBwOworIAkg ICAgfQorKwkgIGVsc2UgaWYgKFZBUl9PUl9GVU5DVElPTl9ERUNMX1AgKHApKQorKwkgICAgewor KwkgICAgICB0cmVlIGV4dHAgPSBjb3B5X25vZGUgKHApOworKworKwkgICAgICBERUNMX0VYVEVS TkFMIChleHRwKSA9IDE7CisrCSAgICAgIFRSRUVfU1RBVElDIChleHRwKSA9IDA7CisrCSAgICAg IFRSRUVfUFVCTElDIChleHRwKSA9IDE7CisrCSAgICAgIERFQ0xfSU5JVElBTCAoZXh0cCkgPSBO VUxMX1RSRUU7CisrCSAgICAgIERFQ0xfTEFOR19TUEVDSUZJQyAoZXh0cCkgPSBOVUxMOworKwkg ICAgICBpZiAoVFJFRV9DT0RFIChwKSA9PSBGVU5DVElPTl9ERUNMKQorKwkJeworKwkJICBERUNM X1JFU1VMVCAoZXh0cCkgPSBOVUxMX1RSRUU7CisrCQkgIERFQ0xfU0FWRURfVFJFRSAoZXh0cCkg PSBOVUxMX1RSRUU7CisrCQkgIERFQ0xfU1RSVUNUX0ZVTkNUSU9OIChleHRwKSA9IE5VTEw7Cisr CQl9CisrCSAgICAgIGlmIChiLT5sb2N1cyAhPSBVTktOT1dOX0xPQ0FUSU9OKQorKwkJREVDTF9T T1VSQ0VfTE9DQVRJT04gKGV4dHApID0gYi0+bG9jdXM7CisrCSAgICAgIFRSRUVfQ0hBSU4gKGV4 dHApID0gQkxPQ0tfVkFSUyAoYmxvY2spOworKwkgICAgICBCTE9DS19WQVJTIChibG9jaykgPSBl eHRwOworKwkgICAgfQorIAkgIC8qIElmIHRoaXMgaXMgdGhlIGZpbGUgc2NvcGUsIGFuZCB3ZSBh cmUgcHJvY2Vzc2luZyBtb3JlCisgCSAgICAgdGhhbiBvbmUgdHJhbnNsYXRpb24gdW5pdCBpbiB0 aGlzIGNvbXBpbGF0aW9uLCBzZXQKKyAJICAgICBERUNMX0NPTlRFWFQgb2YgZWFjaCBkZWNsIHRv IHRoZSBUUkFOU0xBVElPTl9VTklUX0RFQ0wuCitAQCAtOTA1LDcgKzkyOCw3IEBAIHB1c2hfZmls ZV9zY29wZSAodm9pZCkKKyAKKyAgIGZvciAoZGVjbCA9IHZpc2libGVfYnVpbHRpbnM7IGRlY2w7 IGRlY2wgPSBUUkVFX0NIQUlOIChkZWNsKSkKKyAgICAgYmluZCAoREVDTF9OQU1FIChkZWNsKSwg ZGVjbCwgZmlsZV9zY29wZSwKKy0JICAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL3Ry dWUpOworKwkgIC8qaW52aXNpYmxlPSovZmFsc2UsIC8qbmVzdGVkPSovdHJ1ZSwgREVDTF9TT1VS Q0VfTE9DQVRJT04gKGRlY2wpKTsKKyB9CisgCisgdm9pZAorQEAgLTk1MSw3ICs5NzQsOCBAQCBw dXNodGFnICh0cmVlIG5hbWUsIHRyZWUgdHlwZSkKKyAgIC8qIFJlY29yZCB0aGUgaWRlbnRpZmll ciBhcyB0aGUgdHlwZSdzIG5hbWUgaWYgaXQgaGFzIG5vbmUuICAqLworICAgaWYgKG5hbWUgJiYg IVRZUEVfTkFNRSAodHlwZSkpCisgICAgIFRZUEVfTkFNRSAodHlwZSkgPSBuYW1lOworLSAgYmlu ZCAobmFtZSwgdHlwZSwgY3VycmVudF9zY29wZSwgLyppbnZpc2libGU9Ki9mYWxzZSwgLypuZXN0 ZWQ9Ki9mYWxzZSk7CisrICBiaW5kIChuYW1lLCB0eXBlLCBjdXJyZW50X3Njb3BlLCAvKmludmlz aWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNlLAorKwlVTktOT1dOX0xPQ0FUSU9OKTsKKyAK KyAgIC8qIENyZWF0ZSBhIGZha2UgTlVMTC1uYW1lZCBUWVBFX0RFQ0wgbm9kZSB3aG9zZSBUUkVF X1RZUEUgd2lsbCBiZSB0aGUKKyAgICAgIHRhZ2dlZCB0eXBlIHdlIGp1c3QgYWRkZWQgdG8gdGhl IGN1cnJlbnQgc2NvcGUuICBUaGlzIGZha2UKK0BAIC0yMDUxLDYgKzIwNzUsNyBAQCBwdXNoZGVj bCAodHJlZSB4KQorICAgc3RydWN0IGNfc2NvcGUgKnNjb3BlID0gY3VycmVudF9zY29wZTsKKyAg IHN0cnVjdCBjX2JpbmRpbmcgKmI7CisgICBib29sIG5lc3RlZCA9IGZhbHNlOworKyAgbG9jYXRp b25fdCBsb2N1cyA9IERFQ0xfU09VUkNFX0xPQ0FUSU9OICh4KTsKKyAKKyAgIC8qIE11c3Qgc2V0 IERFQ0xfQ09OVEVYVCBmb3IgZXZlcnl0aGluZyBub3QgYXQgZmlsZSBzY29wZSBvcgorICAgICAg REVDTF9GSUxFX1NDT1BFX1Agd29uJ3Qgd29yay4gIExvY2FsIGV4dGVybnMgZG9uJ3QgY291bnQK K0BAIC0yMDY5LDcgKzIwOTQsOCBAQCBwdXNoZGVjbCAodHJlZSB4KQorICAgLyogQW5vbnltb3Vz IGRlY2xzIGFyZSBqdXN0IGluc2VydGVkIGluIHRoZSBzY29wZS4gICovCisgICBpZiAoIW5hbWUp CisgICAgIHsKKy0gICAgICBiaW5kIChuYW1lLCB4LCBzY29wZSwgLyppbnZpc2libGU9Ki9mYWxz ZSwgLypuZXN0ZWQ9Ki9mYWxzZSk7CisrICAgICAgYmluZCAobmFtZSwgeCwgc2NvcGUsIC8qaW52 aXNpYmxlPSovZmFsc2UsIC8qbmVzdGVkPSovZmFsc2UsCisrCSAgICBsb2N1cyk7CisgICAgICAg cmV0dXJuIHg7CisgICAgIH0KKyAKK0BAIC0yMjI5LDcgKzIyNTUsOCBAQCBwdXNoZGVjbCAodHJl ZSB4KQorIAkgICAgICA9IGJ1aWxkX3R5cGVfYXR0cmlidXRlX3ZhcmlhbnQgKHRoaXN0eXBlLAor IAkJCQkJICAgICAgVFlQRV9BVFRSSUJVVEVTIChiLT50eXBlKSk7CisgCSAgVFJFRV9UWVBFIChi LT5kZWNsKSA9IHRoaXN0eXBlOworLQkgIGJpbmQgKG5hbWUsIGItPmRlY2wsIHNjb3BlLCAvKmlu dmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL3RydWUpOworKwkgIGJpbmQgKG5hbWUsIGItPmRl Y2wsIHNjb3BlLCAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL3RydWUsCisrCQlsb2N1 cyk7CisgCSAgcmV0dXJuIGItPmRlY2w7CisgCX0KKyAgICAgICBlbHNlIGlmIChUUkVFX1BVQkxJ QyAoeCkpCitAQCAtMjI0Nyw3ICsyMjc0LDcgQEAgcHVzaGRlY2wgKHRyZWUgeCkKKyAJICBlbHNl CisgCSAgICB7CisgCSAgICAgIGJpbmQgKG5hbWUsIHgsIGV4dGVybmFsX3Njb3BlLCAvKmludmlz aWJsZT0qL3RydWUsCistCQkgICAgLypuZXN0ZWQ9Ki9mYWxzZSk7CisrCQkgICAgLypuZXN0ZWQ9 Ki9mYWxzZSwgbG9jdXMpOworIAkgICAgICBuZXN0ZWQgPSB0cnVlOworIAkgICAgfQorIAl9CitA QCAtMjI2MCw3ICsyMjg3LDcgQEAgcHVzaGRlY2wgKHRyZWUgeCkKKyAgIGlmIChUUkVFX0NPREUg KHgpID09IFRZUEVfREVDTCkKKyAgICAgY2xvbmVfdW5kZXJseWluZ190eXBlICh4KTsKKyAKKy0g IGJpbmQgKG5hbWUsIHgsIHNjb3BlLCAvKmludmlzaWJsZT0qL2ZhbHNlLCBuZXN0ZWQpOworKyAg YmluZCAobmFtZSwgeCwgc2NvcGUsIC8qaW52aXNpYmxlPSovZmFsc2UsIG5lc3RlZCwgbG9jdXMp OworIAorICAgLyogSWYgeCdzIHR5cGUgaXMgaW5jb21wbGV0ZSBiZWNhdXNlIGl0J3MgYmFzZWQg b24gYQorICAgICAgc3RydWN0dXJlIG9yIHVuaW9uIHdoaWNoIGhhcyBub3QgeWV0IGJlZW4gZnVs bHkgZGVjbGFyZWQsCitAQCAtMjMwOSwxMSArMjMzNiwxMiBAQCBwdXNoZGVjbF90b3BfbGV2ZWwg KHRyZWUgeCkKKyAKKyAgIGlmIChUUkVFX1BVQkxJQyAoeCkpCisgICAgIHsKKy0gICAgICBiaW5k IChuYW1lLCB4LCBleHRlcm5hbF9zY29wZSwgLyppbnZpc2libGU9Ki90cnVlLCAvKm5lc3RlZD0q L2ZhbHNlKTsKKysgICAgICBiaW5kIChuYW1lLCB4LCBleHRlcm5hbF9zY29wZSwgLyppbnZpc2li bGU9Ki90cnVlLCAvKm5lc3RlZD0qL2ZhbHNlLAorKwkgICAgVU5LTk9XTl9MT0NBVElPTik7Cisg ICAgICAgbmVzdGVkID0gdHJ1ZTsKKyAgICAgfQorICAgaWYgKGZpbGVfc2NvcGUpCistICAgIGJp bmQgKG5hbWUsIHgsIGZpbGVfc2NvcGUsIC8qaW52aXNpYmxlPSovZmFsc2UsIG5lc3RlZCk7Cisr ICAgIGJpbmQgKG5hbWUsIHgsIGZpbGVfc2NvcGUsIC8qaW52aXNpYmxlPSovZmFsc2UsIG5lc3Rl ZCwgVU5LTk9XTl9MT0NBVElPTik7CisgCisgICByZXR1cm4geDsKKyB9CitAQCAtMjM2OCw3ICsy Mzk2LDggQEAgaW1wbGljaXRseV9kZWNsYXJlICh0cmVlIGZ1bmN0aW9uaWQpCisgICAgICAgaWYg KCFERUNMX0JVSUxUX0lOIChkZWNsKSAmJiBERUNMX0lTX0JVSUxUSU4gKGRlY2wpKQorIAl7Cisg CSAgYmluZCAoZnVuY3Rpb25pZCwgZGVjbCwgZmlsZV9zY29wZSwKKy0JCS8qaW52aXNpYmxlPSov ZmFsc2UsIC8qbmVzdGVkPSovdHJ1ZSk7CisrCQkvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3Rl ZD0qL3RydWUsCisrCQlERUNMX1NPVVJDRV9MT0NBVElPTiAoZGVjbCkpOworIAkgIHJldHVybiBk ZWNsOworIAl9CisgICAgICAgZWxzZQorQEAgLTI0MDksNyArMjQzOCw4IEBAIGltcGxpY2l0bHlf ZGVjbGFyZSAodHJlZSBmdW5jdGlvbmlkKQorIAkgIGItPnR5cGUgPSBUUkVFX1RZUEUgKGRlY2wp OworIAkgIFRSRUVfVFlQRSAoZGVjbCkgPSBuZXd0eXBlOworIAkgIGJpbmQgKGZ1bmN0aW9uaWQs IGRlY2wsIGN1cnJlbnRfc2NvcGUsCistCQkvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0q L3RydWUpOworKwkJLyppbnZpc2libGU9Ki9mYWxzZSwgLypuZXN0ZWQ9Ki90cnVlLAorKwkJREVD TF9TT1VSQ0VfTE9DQVRJT04gKGRlY2wpKTsKKyAJICByZXR1cm4gZGVjbDsKKyAJfQorICAgICB9 CitAQCAtMjQ3Miw3ICsyNTAyLDggQEAgdW5kZWNsYXJlZF92YXJpYWJsZSAodHJlZSBpZCwgbG9j YXRpb25fdAorIAkgd2lsbCBiZSBub25udWxsIGJ1dCBjdXJyZW50X2Z1bmN0aW9uX3Njb3BlIHdp bGwgYmUgbnVsbC4gICovCisgICAgICAgc2NvcGUgPSBjdXJyZW50X2Z1bmN0aW9uX3Njb3BlID8g Y3VycmVudF9mdW5jdGlvbl9zY29wZSA6IGN1cnJlbnRfc2NvcGU7CisgICAgIH0KKy0gIGJpbmQg KGlkLCBlcnJvcl9tYXJrX25vZGUsIHNjb3BlLCAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3Rl ZD0qL2ZhbHNlKTsKKysgIGJpbmQgKGlkLCBlcnJvcl9tYXJrX25vZGUsIHNjb3BlLCAvKmludmlz aWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNlLAorKwlVTktOT1dOX0xPQ0FUSU9OKTsKKyB9 CisgDAorIC8qIFN1YnJvdXRpbmUgb2YgbG9va3VwX2xhYmVsLCBkZWNsYXJlX2xhYmVsLCBkZWZp bmVfbGFiZWw6IGNvbnN0cnVjdCBhCitAQCAtMjUyNiw3ICsyNTU3LDcgQEAgbG9va3VwX2xhYmVs ICh0cmVlIG5hbWUpCisgCisgICAvKiBPcmRpbmFyeSBsYWJlbHMgZ28gaW4gdGhlIGN1cnJlbnQg ZnVuY3Rpb24gc2NvcGUuICAqLworICAgYmluZCAobmFtZSwgbGFiZWwsIGN1cnJlbnRfZnVuY3Rp b25fc2NvcGUsCistCS8qaW52aXNpYmxlPSovZmFsc2UsIC8qbmVzdGVkPSovZmFsc2UpOworKwkv KmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNlLCBVTktOT1dOX0xPQ0FUSU9OKTsK KyAgIHJldHVybiBsYWJlbDsKKyB9CisgCitAQCAtMjU1Niw3ICsyNTg3LDcgQEAgZGVjbGFyZV9s YWJlbCAodHJlZSBuYW1lKQorIAorICAgLyogRGVjbGFyZWQgbGFiZWxzIGdvIGluIHRoZSBjdXJy ZW50IHNjb3BlLiAgKi8KKyAgIGJpbmQgKG5hbWUsIGxhYmVsLCBjdXJyZW50X3Njb3BlLAorLQkv KmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNlKTsKKysJLyppbnZpc2libGU9Ki9m YWxzZSwgLypuZXN0ZWQ9Ki9mYWxzZSwgVU5LTk9XTl9MT0NBVElPTik7CisgICByZXR1cm4gbGFi ZWw7CisgfQorIAorQEAgLTI2MDMsNyArMjYzNCw3IEBAIGRlZmluZV9sYWJlbCAobG9jYXRpb25f dCBsb2NhdGlvbiwgdHJlZSAKKyAKKyAgICAgICAvKiBPcmRpbmFyeSBsYWJlbHMgZ28gaW4gdGhl IGN1cnJlbnQgZnVuY3Rpb24gc2NvcGUuICAqLworICAgICAgIGJpbmQgKG5hbWUsIGxhYmVsLCBj dXJyZW50X2Z1bmN0aW9uX3Njb3BlLAorLQkgICAgLyppbnZpc2libGU9Ki9mYWxzZSwgLypuZXN0 ZWQ9Ki9mYWxzZSk7CisrCSAgICAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNl LCBVTktOT1dOX0xPQ0FUSU9OKTsKKyAgICAgfQorIAorICAgaWYgKCFpbl9zeXN0ZW1faGVhZGVy ICYmIGxvb2t1cF9uYW1lIChuYW1lKSkKK0BAIC0yODA2LDcgKzI4MzcsNyBAQCBjX21ha2VfZm5h bWVfZGVjbCAodHJlZSBpZCwgaW50IHR5cGVfZGVwCisgICAgIHsKKyAgICAgICBERUNMX0NPTlRF WFQgKGRlY2wpID0gY3VycmVudF9mdW5jdGlvbl9kZWNsOworICAgICAgIGJpbmQgKGlkLCBkZWNs LCBjdXJyZW50X2Z1bmN0aW9uX3Njb3BlLAorLQkgICAgLyppbnZpc2libGU9Ki9mYWxzZSwgLypu ZXN0ZWQ9Ki9mYWxzZSk7CisrCSAgICAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2Zh bHNlLCBVTktOT1dOX0xPQ0FUSU9OKTsKKyAgICAgfQorIAorICAgZmluaXNoX2RlY2wgKGRlY2ws IGluaXQsIE5VTExfVFJFRSk7CitAQCAtMjgyNiw3ICsyODU3LDggQEAgY19idWlsdGluX2Z1bmN0 aW9uICh0cmVlIGRlY2wpCisgICAvKiBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIG9uIGEgc3ltYm9s IHdpdGggYSBwcmVleGlzdGluZyBtZWFuaW5nLiAgKi8KKyAgIGdjY19hc3NlcnQgKCFJX1NZTUJP TF9CSU5ESU5HIChpZCkpOworIAorLSAgYmluZCAoaWQsIGRlY2wsIGV4dGVybmFsX3Njb3BlLCAv KmludmlzaWJsZT0qL3RydWUsIC8qbmVzdGVkPSovZmFsc2UpOworKyAgYmluZCAoaWQsIGRlY2ws IGV4dGVybmFsX3Njb3BlLCAvKmludmlzaWJsZT0qL3RydWUsIC8qbmVzdGVkPSovZmFsc2UsCisr CVVOS05PV05fTE9DQVRJT04pOworIAorICAgLyogQnVpbHRpbnMgaW4gdGhlIGltcGxlbWVudGF0 aW9uIG5hbWVzcGFjZSBhcmUgbWFkZSB2aXNpYmxlIHdpdGhvdXQKKyAgICAgIG5lZWRpbmcgdG8g YmUgZXhwbGljaXRseSBkZWNsYXJlZC4gIFNlZSBwdXNoX2ZpbGVfc2NvcGUuICAqLworQEAgLTI4 NTEsNyArMjg4Myw4IEBAIGNfYnVpbHRpbl9mdW5jdGlvbl9leHRfc2NvcGUgKHRyZWUgZGVjbCkK KyAgIC8qIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgb24gYSBzeW1ib2wgd2l0aCBhIHByZWV4aXN0 aW5nIG1lYW5pbmcuICAqLworICAgZ2NjX2Fzc2VydCAoIUlfU1lNQk9MX0JJTkRJTkcgKGlkKSk7 CisgCistICBiaW5kIChpZCwgZGVjbCwgZXh0ZXJuYWxfc2NvcGUsIC8qaW52aXNpYmxlPSovZmFs c2UsIC8qbmVzdGVkPSovZmFsc2UpOworKyAgYmluZCAoaWQsIGRlY2wsIGV4dGVybmFsX3Njb3Bl LCAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNlLAorKwlVTktOT1dOX0xPQ0FU SU9OKTsKKyAKKyAgIC8qIEJ1aWx0aW5zIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBuYW1lc3BhY2Ug YXJlIG1hZGUgdmlzaWJsZSB3aXRob3V0CisgICAgICBuZWVkaW5nIHRvIGJlIGV4cGxpY2l0bHkg ZGVjbGFyZWQuICBTZWUgcHVzaF9maWxlX3Njb3BlLiAgKi8KK0BAIC02MzQ4LDcgKzYzODEsOCBA QCBzdG9yZV9wYXJtX2RlY2xzX25ld3N0eWxlICh0cmVlIGZuZGVjbCwgCisgICAgICAgaWYgKERF Q0xfTkFNRSAoZGVjbCkpCisgCXsKKyAJICBiaW5kIChERUNMX05BTUUgKGRlY2wpLCBkZWNsLCBj dXJyZW50X3Njb3BlLAorLQkJLyppbnZpc2libGU9Ki9mYWxzZSwgLypuZXN0ZWQ9Ki9mYWxzZSk7 CisrCQkvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5lc3RlZD0qL2ZhbHNlLAorKwkJVU5LTk9XTl9M T0NBVElPTik7CisgCSAgaWYgKCFUUkVFX1VTRUQgKGRlY2wpKQorIAkgICAgd2Fybl9pZl9zaGFk b3dpbmcgKGRlY2wpOworIAl9CitAQCAtNjM2NSwxNCArNjM5OSwxNCBAQCBzdG9yZV9wYXJtX2Rl Y2xzX25ld3N0eWxlICh0cmVlIGZuZGVjbCwgCisgICAgICAgREVDTF9DT05URVhUIChkZWNsKSA9 IGN1cnJlbnRfZnVuY3Rpb25fZGVjbDsKKyAgICAgICBpZiAoREVDTF9OQU1FIChkZWNsKSkKKyAJ YmluZCAoREVDTF9OQU1FIChkZWNsKSwgZGVjbCwgY3VycmVudF9zY29wZSwKKy0JICAgICAgLypp bnZpc2libGU9Ki9mYWxzZSwgLypuZXN0ZWQ9Ki9mYWxzZSk7CisrCSAgICAgIC8qaW52aXNpYmxl PSovZmFsc2UsIC8qbmVzdGVkPSovZmFsc2UsIFVOS05PV05fTE9DQVRJT04pOworICAgICB9Cisg CisgICAvKiBBbmQgYWxsIHRoZSB0YWcgZGVjbGFyYXRpb25zLiAgKi8KKyAgIGZvciAoZGVjbCA9 IGFyZ19pbmZvLT50YWdzOyBkZWNsOyBkZWNsID0gVFJFRV9DSEFJTiAoZGVjbCkpCisgICAgIGlm IChUUkVFX1BVUlBPU0UgKGRlY2wpKQorICAgICAgIGJpbmQgKFRSRUVfUFVSUE9TRSAoZGVjbCks IFRSRUVfVkFMVUUgKGRlY2wpLCBjdXJyZW50X3Njb3BlLAorLQkgICAgLyppbnZpc2libGU9Ki9m YWxzZSwgLypuZXN0ZWQ9Ki9mYWxzZSk7CisrCSAgICAvKmludmlzaWJsZT0qL2ZhbHNlLCAvKm5l c3RlZD0qL2ZhbHNlLCBVTktOT1dOX0xPQ0FUSU9OKTsKKyB9CisgCisgLyogU3Vicm91dGluZSBv ZiBzdG9yZV9wYXJtX2RlY2xzIHdoaWNoIGhhbmRsZXMgb2xkLXN0eWxlIGZ1bmN0aW9uCgpkaWZm IC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNTg5ZDBiYy4uYTQ3MjE3OCAxMDA2NDQK LS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAogMjY1OWYwOWMyZTQz ZWY4YjdkNDQwNjMyMTc1M2YxYjIgIGZhc3RqYXItMC45Ny50YXIuZ3oKLWJlN2Y5YWQ1NGRhNzhj NDkzYmFiNDhlZjYwODBlNGEzICBnY2MtNC40LjAtMjAwOTAzMjQudGFyLmJ6MgorMDUwY2ZjNGRj OTE3OTMwOWFiMzViMjk3MjE5YTU3M2EgIGdjYy00LjQuMC0yMDA5MDMyOC50YXIuYnoyCg==