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: 6.0.0-0.11 Date: Mon, 29 Jun 2026 12:27:04 GMT Message-ID: <178273602436.1.627644855650468366.rpms-gcc-89e370f159d2@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 89e370f159d2c5a449e3bcb32c195de433504c62 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogODllMzcwZjE1OWQyYzVhNDQ5ZTNiY2IzMmMxOTVkZTQz MzUwNGM2MgpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE2LTAyLTEyVDEyOjE1OjE2KzAxOjAwClN0YXRzICA6ICs1MTEvLTM3NCBpbiA5IGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2MvYy84OWUz NzBmMTU5ZDJjNWE0NDllM2JjYjMyYzE5NWRlNDMzNTA0YzYyP2JyYW5jaD1yaGVsLWY0MS1iYXNl CgpMb2c6CjYuMC4wLTAuMTEKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25v cmUKaW5kZXggZWVlOGFjYS4uYjdlMTU3NSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8u Z2l0aWdub3JlCkBAIC0zLDMgKzMsNCBAQAogL2djYy02LjAuMC0yMDE2MDEyOS50YXIuYnoyCiAv Z2NjLTYuMC4wLTIwMTYwMjAxLnRhci5iejIKIC9nY2MtNi4wLjAtMjAxNjAyMDUudGFyLmJ6Mgor L2djYy02LjAuMC0yMDE2MDIxMi50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9nY2Mu c3BlYwppbmRleCAyZGJkYTMwLi41OTBkMTZmIDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysgYi9n Y2Muc3BlYwpAQCAtMSw5ICsxLDkgQEAKLSVnbG9iYWwgREFURSAyMDE2MDIwNQotJWdsb2JhbCBT Vk5SRVYgMjMzMTg1CislZ2xvYmFsIERBVEUgMjAxNjAyMTIKKyVnbG9iYWwgU1ZOUkVWIDIzMzM3 MgogJWdsb2JhbCBnY2NfdmVyc2lvbiA2LjAuMAogIyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0IGJl IGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFkZCBzdWZmaXhlcyB0bwogIyAle3JlbGVhc2V9LCBh cHBlbmQgdGhlbSBhZnRlciAle2djY19yZWxlYXNlfSBvbiBSZWxlYXNlOiBsaW5lLgotJWdsb2Jh bCBnY2NfcmVsZWFzZSAwLjEwCislZ2xvYmFsIGdjY19yZWxlYXNlIDAuMTEKICVnbG9iYWwgX3Vu cGFja2FnZWRfZmlsZXNfdGVybWluYXRlX2J1aWxkIDAKICVnbG9iYWwgX3BlcmZvcm1hbmNlX2J1 aWxkIDEKICMgSGFyZGVuaW5nIHNsb3dzIHRoZSBjb21waWxlciB3YXkgdG9vIG11Y2guCkBAIC0y MDgsMTAgKzIwOCw5IEBAIFBhdGNoMTI6IGdjYzYtYWFyY2g2NC1hc3luYy11bnctdGFibGVzLnBh dGNoCiBQYXRjaDEzOiBnY2M2LWxpYnNhbml0aXplLWFhcmNoNjQtdmE0Mi5wYXRjaAogUGF0Y2gx NDogZ2NjNi1wcjY1OTMyLWNzZS1yZXZlcnQucGF0Y2gKIFBhdGNoMTU6IGdjYzYtcHI2OTI0MS5w YXRjaAotUGF0Y2gxNjogZ2NjNi1wcjY5NjI4LnBhdGNoCi1QYXRjaDE3OiBnY2M2LXByNjk2NTgu cGF0Y2gKLVBhdGNoMTg6IGdjYzYtcHI2OTY5MS5wYXRjaAotUGF0Y2gxOTogZ2NjNi1wcjY5Mjc0 LnBhdGNoCitQYXRjaDE2OiBnY2M2LXByNjk2NTgucGF0Y2gKK1BhdGNoMTc6IGdjYzYtcHIxMDIw MC1yZXZlcnQucGF0Y2gKK1BhdGNoMTg6IGdjYzYtcHI2ODY3Mi5wYXRjaAogCiAjIE9uIEFSTSBF QUJJIHN5c3RlbXMsIHdlIGRvIHdhbnQgLWdudWVhYmkgdG8gYmUgcGFydCBvZiB0aGUKICMgdGFy Z2V0IHRyaXBsZS4KQEAgLTc4MCwxMCArNzc5LDkgQEAgcm0gLWYgbGliZ28vZ28vY3J5cHRvL2Vs bGlwdGljL3AyMjR7LF90ZXN0fS5nbwogJXBhdGNoMTMgLXAwIC1iIC5saWJzYW5pdGl6ZS1hYXJj aDY0LXZhNDJ+CiAlcGF0Y2gxNCAtcDAgLWIgLnByNjU5MzItY3NlLXJldmVydH4KICVwYXRjaDE1 IC1wMCAtYiAucHI2OTI0MX4KLSVwYXRjaDE2IC1wMCAtYiAucHI2OTYyOH4KLSVwYXRjaDE3IC1w MCAtYiAucHI2OTY1OH4KLSVwYXRjaDE4IC1wMCAtYiAucHI2OTY5MX4KLSVwYXRjaDE5IC1wMCAt YiAucHI2OTI3NH4KKyVwYXRjaDE2IC1wMCAtYiAucHI2OTY1OH4KKyVwYXRjaDE3IC1wMCAtYiAu cHIxMDIwMH4KKyVwYXRjaDE4IC1wMCAtYiAucHI2ODY3Mn4KIAogJWlmIDAlez9fZW5hYmxlX2Rl YnVnX3BhY2thZ2VzfQogbWtkaXIgZHd6LXdyYXBwZXIKQEAgLTEwNTcsNyArMTA1NSw3IEBAIEND PSIkQ0MiIENYWD0iJENYWCIgQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBcCiAJLS1lbmFibGUtbGFuZ3Vh Z2VzPWMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuJHtlbmFibGVsYWRhfSR7ZW5hYmxlbGdvfSxs dG8gXAogCSRDT05GSUdVUkVfT1BUUwogCi0laWZhcmNoIHNwYXJjIHNwYXJjdjkgc3BhcmM2NCBw cGM2NAorJWlmYXJjaCBzcGFyYyBzcGFyY3Y5IHNwYXJjNjQKIG1ha2UgJXs/X3NtcF9tZmxhZ3N9 IEJPT1RfQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBib290c3RyYXAKICVlbHNlCiBtYWtlICV7P19zbXBf bWZsYWdzfSBCT09UX0NGTEFHUz0iJE9QVF9GTEFHUyIgcHJvZmlsZWRib290c3RyYXAKQEAgLTMw NzYsNiArMzA3NCwyNSBAQCBmaQogJWRvYyBycG0uZG9jL2NoYW5nZWxvZ3MvbGliY2MxL0NoYW5n ZUxvZyoKIAogJWNoYW5nZWxvZworKiBGcmkgRmViIDEyIDIwMTYgSmFrdWIgSmVsaW5layA8amFr dWJAcmVkaGF0LmNvbT4gNi4wLjAtMC4xMQorLSB1cGRhdGUgZnJvbSB0aGUgdHJ1bmsKKyAgLSBQ UnMgYysrLzEwMjAwLCBjKysvNTk2MjcsIGMrKy82NzgzNSwgYysrLzY4NzI2LCBjKysvNjg5MjYs IGMrKy82OTA5OCwKKwljKysvNjkxMzksIGMrKy82OTI4MywgYysrLzY5NjMxLCBjKysvNjk2NTcs IGMrKy82OTY2MiwgYysrLzY5Njg4LAorCWMvNjk1MjIsIGMvNjk2NDMsIGMvNjk3NjgsIGZvcnRy YW4vNTA1NTUsIGZvcnRyYW4vNjYwODksCisJZm9ydHJhbi82OTI5NiwgZ28vNjg1NjIsIGlwYS82 OTIzOSwgbGlic3RkYysrLzQ4ODkxLCBsdG8vNjk3MDcsCisJbWlkZGxlLWVuZC82NjcyNiwgb3Ro ZXIvNjk3MjIsIHBsdWdpbnMvNjk3NTgsIHByZXByb2Nlc3Nvci82OTY2NCwKKwlydGwtb3B0aW1p emF0aW9uLzY4NzMwLCBydGwtb3B0aW1pemF0aW9uLzY5MjkxLAorCXJ0bC1vcHRpbWl6YXRpb24v Njk3MzcsIHRhcmdldC82MDQxMCwgdGFyZ2V0LzY1MzEzLCB0YXJnZXQvNjU4NjcsCisJdGFyZ2V0 LzY4MjczLCB0YXJnZXQvNjg0MDQsIHRhcmdldC82ODUzMiwgdGFyZ2V0LzY5MTQ4LCB0YXJnZXQv Njk2MzQsCisJdGFyZ2V0LzY5NzEzLCB0cmVlLW9wdC82OTI4MiwgdHJlZS1vcHRpbWl6YXRpb24v NjU5MTcsCisJdHJlZS1vcHRpbWl6YXRpb24vNjgwMjEsIHRyZWUtb3B0aW1pemF0aW9uLzY4NTQx LAorCXRyZWUtb3B0aW1pemF0aW9uLzY5MjA5LCB0cmVlLW9wdGltaXphdGlvbi82OTU5OSwKKwl0 cmVlLW9wdGltaXphdGlvbi82OTY1MiwgdHJlZS1vcHRpbWl6YXRpb24vNjk3MTUsCisJdHJlZS1v cHRpbWl6YXRpb24vNjk3MTksIHRyZWUtb3B0aW1pemF0aW9uLzY5NzI2CistIHRlbXBvcmFyaWx5 IHJldmVydCBQUiBjKysvMTAyMDAgZml4CistIGZpeCAtZnBhcnRpYWwtaW5saW5pbmcgd2l0aCBj bG9iYmVyIG9yIGRlYnVnIHN0bXRzIGluIHJldHVybl9iYgorICAoUFIgaXBhLzY4NjcyKQorCiAq IEZyaSBGZWIgIDUgMjAxNiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA2LjAuMC0w LjEwCiAtIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawogICAtIFBScyBib290c3RyYXAvNjk2MTEsIGJv b3RzdHJhcC82OTY3NywgYysrLzY4OTQ4LCBjKysvNjkwNTYsIGMrKy82OTI1MSwKCmRpZmYgLS1n aXQgYS9nY2M2LXByMTAyMDAtcmV2ZXJ0LnBhdGNoIGIvZ2NjNi1wcjEwMjAwLXJldmVydC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWZmN2NlCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjNi1wcjEwMjAwLXJldmVydC5wYXRjaApAQCAtMCwwICsxLDEwNCBAQAorUmV2 ZXJ0IGR1ZSB0byBQUjY5NzUzOgorMjAxNi0wMi0xMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJl ZGhhdC5jb20+CisgCisJUFIgYysrLzEwMjAwCisJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2xvb2t1 cF9uYW1lKTogV2hlbiBsb29raW5nIGZvciBhIHRlbXBsYXRlCisJYWZ0ZXIgLiBvciAtPiwgb25s eSBjb25zaWRlciBjbGFzcyB0ZW1wbGF0ZXMuCisJKGNwX3BhcnNlcl9wb3N0Zml4X2RvdF9kZXJl Zl9leHByZXNzaW9uKTogSGFuZGxlIHRoZSBjdXJyZW50CisJaW5zdGFudGlhdGlvbi4gIFJlbWVt YmVyIGEgZGVwZW5kZW50IG9iamVjdCBleHByZXNzaW9uLgorCSogdHlwZWNrMi5jIChidWlsZF94 X2Fycm93KTogSGFuZGxlIHRoZSBjdXJyZW50IGluc3RhbnRpYXRpb24uCisKKy0tLSBnY2MvY3Av dHlwZWNrMi5jCShyZXZpc2lvbiAyMzMyNzcpCisrKysgZ2NjL2NwL3R5cGVjazIuYwkocmV2aXNp b24gMjMzMjc2KQorQEAgLTE2OTQsMTAgKzE2OTQsNyBAQCBidWlsZF94X2Fycm93IChsb2NhdGlv bl90IGxvYywgdHJlZSBleHByCisgCisgICBpZiAocHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsKQor ICAgICB7CistICAgICAgaWYgKHR5cGUgJiYgVFJFRV9DT0RFICh0eXBlKSA9PSBQT0lOVEVSX1RZ UEUKKy0JICAmJiAhZGVwZW5kZW50X3Njb3BlX3AgKFRSRUVfVFlQRSAodHlwZSkpKQorLQkvKiBQ b2ludGVyIHRvIGN1cnJlbnQgaW5zdGFudGlhdGlvbiwgZG9uJ3QgdHJlYXQgYXMgZGVwZW5kZW50 LiAgKi87CistICAgICAgZWxzZSBpZiAodHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wIChleHBy KSkKKysgICAgICBpZiAodHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wIChleHByKSkKKyAJcmV0 dXJuIGJ1aWxkX21pbl9udF9sb2MgKGxvYywgQVJST1dfRVhQUiwgZXhwcik7CisgICAgICAgZXhw ciA9IGJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwciAoZXhwcik7CisgICAgIH0KKy0tLSBnY2MvY3Av cGFyc2VyLmMJKHJldmlzaW9uIDIzMzI3NykKKysrKyBnY2MvY3AvcGFyc2VyLmMJKHJldmlzaW9u IDIzMzI3NikKK0BAIC03MTg0LDE2ICs3MTg0LDggQEAgY3BfcGFyc2VyX3Bvc3RmaXhfZG90X2Rl cmVmX2V4cHJlc3Npb24gKAorICAgaWYgKHRva2VuX3R5cGUgPT0gQ1BQX0RFUkVGKQorICAgICBw b3N0Zml4X2V4cHJlc3Npb24gPSBidWlsZF94X2Fycm93IChsb2NhdGlvbiwgcG9zdGZpeF9leHBy ZXNzaW9uLAorIAkJCQkJdGZfd2FybmluZ19vcl9lcnJvcik7CistICAvKiBBY2NvcmRpbmcgdG8g dGhlIHN0YW5kYXJkLCBubyBleHByZXNzaW9uIHNob3VsZCBldmVyIGhhdmUKKy0gICAgIHJlZmVy ZW5jZSB0eXBlLiAgVW5mb3J0dW5hdGVseSwgd2UgZG8gbm90IGN1cnJlbnRseSBtYXRjaAorLSAg ICAgdGhlIHN0YW5kYXJkIGluIHRoaXMgcmVzcGVjdCBpbiB0aGF0IG91ciBpbnRlcm5hbCByZXBy ZXNlbnRhdGlvbgorLSAgICAgb2YgYW4gZXhwcmVzc2lvbiBtYXkgaGF2ZSByZWZlcmVuY2UgdHlw ZSBldmVuIHdoZW4gdGhlIHN0YW5kYXJkCistICAgICBzYXlzIGl0IGRvZXMgbm90LiAgVGhlcmVm b3JlLCB3ZSBoYXZlIHRvIG1hbnVhbGx5IG9idGFpbiB0aGUKKy0gICAgIHVuZGVybHlpbmcgdHlw ZSBoZXJlLiAgKi8KKy0gIHNjb3BlID0gbm9uX3JlZmVyZW5jZSAoVFJFRV9UWVBFIChwb3N0Zml4 X2V4cHJlc3Npb24pKTsKKy0gIC8qIENoZWNrIHRvIHNlZSB3aGV0aGVyIG9yIG5vdCB0aGUgZXhw cmVzc2lvbiBpcyB0eXBlLWRlcGVuZGVudCBhbmQKKy0gICAgIG5vdCB0aGUgY3VycmVudCBpbnN0 YW50aWF0aW9uLiAgKi8KKy0gIGRlcGVuZGVudF9wID0gIXNjb3BlIHx8IGRlcGVuZGVudF9zY29w ZV9wIChzY29wZSk7CisrICAvKiBDaGVjayB0byBzZWUgd2hldGhlciBvciBub3QgdGhlIGV4cHJl c3Npb24gaXMgdHlwZS1kZXBlbmRlbnQuICAqLworKyAgZGVwZW5kZW50X3AgPSB0eXBlX2RlcGVu ZGVudF9leHByZXNzaW9uX3AgKHBvc3RmaXhfZXhwcmVzc2lvbik7CisgICAvKiBUaGUgaWRlbnRp ZmllciBmb2xsb3dpbmcgdGhlIGAtPicgb3IgYC4nIGlzIG5vdCBxdWFsaWZpZWQuICAqLworICAg cGFyc2VyLT5zY29wZSA9IE5VTExfVFJFRTsKKyAgIHBhcnNlci0+cXVhbGlmeWluZ19zY29wZSA9 IE5VTExfVFJFRTsKK0BAIC03MjAyLDggKzcxOTQsMTYgQEAgY3BfcGFyc2VyX3Bvc3RmaXhfZG90 X2RlcmVmX2V4cHJlc3Npb24gKAorIAorICAgLyogRW50ZXIgdGhlIHNjb3BlIGNvcnJlc3BvbmRp bmcgdG8gdGhlIHR5cGUgb2YgdGhlIG9iamVjdAorICAgICAgZ2l2ZW4gYnkgdGhlIFBPU1RGSVhf RVhQUkVTU0lPTi4gICovCistICBpZiAoIWRlcGVuZGVudF9wKQorKyAgaWYgKCFkZXBlbmRlbnRf cCAmJiBUUkVFX1RZUEUgKHBvc3RmaXhfZXhwcmVzc2lvbikgIT0gTlVMTF9UUkVFKQorICAgICB7 CisrICAgICAgc2NvcGUgPSBUUkVFX1RZUEUgKHBvc3RmaXhfZXhwcmVzc2lvbik7CisrICAgICAg LyogQWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCwgbm8gZXhwcmVzc2lvbiBzaG91bGQgZXZlciBo YXZlCisrCSByZWZlcmVuY2UgdHlwZS4gIFVuZm9ydHVuYXRlbHksIHdlIGRvIG5vdCBjdXJyZW50 bHkgbWF0Y2gKKysJIHRoZSBzdGFuZGFyZCBpbiB0aGlzIHJlc3BlY3QgaW4gdGhhdCBvdXIgaW50 ZXJuYWwgcmVwcmVzZW50YXRpb24KKysJIG9mIGFuIGV4cHJlc3Npb24gbWF5IGhhdmUgcmVmZXJl bmNlIHR5cGUgZXZlbiB3aGVuIHRoZSBzdGFuZGFyZAorKwkgc2F5cyBpdCBkb2VzIG5vdC4gIFRo ZXJlZm9yZSwgd2UgaGF2ZSB0byBtYW51YWxseSBvYnRhaW4gdGhlCisrCSB1bmRlcmx5aW5nIHR5 cGUgaGVyZS4gICovCisrICAgICAgc2NvcGUgPSBub25fcmVmZXJlbmNlIChzY29wZSk7CisgICAg ICAgLyogVGhlIHR5cGUgb2YgdGhlIFBPU1RGSVhfRVhQUkVTU0lPTiBtdXN0IGJlIGNvbXBsZXRl LiAgKi8KKyAgICAgICBpZiAoc2NvcGUgPT0gdW5rbm93bl90eXBlX25vZGUpCisgCXsKK0BAIC03 MjE1LDEwICs3MjE1LDcgQEAgY3BfcGFyc2VyX3Bvc3RmaXhfZG90X2RlcmVmX2V4cHJlc3Npb24g KAorIAkgcmVxdWlyZWQgdG8gYmUgb2YgY29tcGxldGUgdHlwZSBmb3IgcHVycG9zZXMgb2YgY2xh c3MgbWVtYmVyCisgCSBhY2Nlc3MgKDUuMi41KSBvdXRzaWRlIHRoZSBtZW1iZXIgZnVuY3Rpb24g Ym9keS4gICovCisgICAgICAgZWxzZSBpZiAocG9zdGZpeF9leHByZXNzaW9uICE9IGN1cnJlbnRf Y2xhc3NfcmVmCistCSAgICAgICAmJiAhKHByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbAorLQkJICAg ICYmIGN1cnJlbnRfY2xhc3NfdHlwZQorLQkJICAgICYmIChzYW1lX3R5cGVfaWdub3JpbmdfdG9w X2xldmVsX3F1YWxpZmllcnNfcAorLQkJCShzY29wZSwgY3VycmVudF9jbGFzc190eXBlKSkpKQor KwkgICAgICAgJiYgIShwcm9jZXNzaW5nX3RlbXBsYXRlX2RlY2wgJiYgc2NvcGUgPT0gY3VycmVu dF9jbGFzc190eXBlKSkKKyAJc2NvcGUgPSBjb21wbGV0ZV90eXBlX29yX2Vsc2UgKHNjb3BlLCBO VUxMX1RSRUUpOworICAgICAgIC8qIExldCB0aGUgbmFtZSBsb29rdXAgbWFjaGluZXJ5IGtub3cg dGhhdCB3ZSBhcmUgcHJvY2Vzc2luZyBhCisgCSBjbGFzcyBtZW1iZXIgYWNjZXNzIGV4cHJlc3Np b24uICAqLworQEAgLTcyMzQsMTAgKzcyMzEsNiBAQCBjcF9wYXJzZXJfcG9zdGZpeF9kb3RfZGVy ZWZfZXhwcmVzc2lvbiAoCisgICAgICAgaWYgKHNjb3BlID09IGVycm9yX21hcmtfbm9kZSkKKyAJ cG9zdGZpeF9leHByZXNzaW9uID0gZXJyb3JfbWFya19ub2RlOworICAgICB9CistICBlbHNlCist ICAgIC8qIFRlbGwgY3BfcGFyc2VyX2xvb2t1cF9uYW1lIHRoYXQgdGhlcmUgd2FzIGFuIG9iamVj dCwgZXZlbiB0aG91Z2ggaXQncworLSAgICAgICB0eXBlLWRlcGVuZGVudC4gICovCistICAgIHBh cnNlci0+Y29udGV4dC0+b2JqZWN0X3R5cGUgPSB1bmtub3duX3R5cGVfbm9kZTsKKyAKKyAgIC8q IEFzc3VtZSB0aGlzIGV4cHJlc3Npb24gaXMgbm90IGEgcHNldWRvLWRlc3RydWN0b3IgYWNjZXNz LiAgKi8KKyAgIHBzZXVkb19kZXN0cnVjdG9yX3AgPSBmYWxzZTsKK0BAIC0yNDcyNywxNSArMjQ3 MjAsMTAgQEAgY3BfcGFyc2VyX2xvb2t1cF9uYW1lIChjcF9wYXJzZXIgKnBhcnNlcgorIAlkZWNs ID0gTlVMTF9UUkVFOworIAorICAgICAgIGlmICghZGVjbCkKKy0JLyogTG9vayBpdCB1cCBpbiB0 aGUgZW5jbG9zaW5nIGNvbnRleHQuICBEUiAxNDE6IFdoZW4gbG9va2luZyBmb3IgYQorLQkgICB0 ZW1wbGF0ZS1uYW1lIGFmdGVyIC0+IG9yIC4sIG9ubHkgY29uc2lkZXIgY2xhc3MgdGVtcGxhdGVz LiAgKi8KKy0JZGVjbCA9IGxvb2t1cF9uYW1lX3JlYWwgKG5hbWUsIHRhZ190eXBlICE9IG5vbmVf dHlwZSB8fCBpc190ZW1wbGF0ZSwKKysJLyogTG9vayBpdCB1cCBpbiB0aGUgZW5jbG9zaW5nIGNv bnRleHQuICAqLworKwlkZWNsID0gbG9va3VwX25hbWVfcmVhbCAobmFtZSwgdGFnX3R5cGUgIT0g bm9uZV90eXBlLAorIAkJCQkgLypub25jbGFzcz0qLzAsCisgCQkJCSAvKmJsb2NrX3A9Ki90cnVl LCBpc19uYW1lc3BhY2UsIDApOworLSAgICAgIGlmIChvYmplY3RfdHlwZSA9PSB1bmtub3duX3R5 cGVfbm9kZSkKKy0JLyogVGhlIG9iamVjdCBpcyB0eXBlLWRlcGVuZGVudCwgc28gd2UgY2FuJ3Qg bG9vayBhbnl0aGluZyB1cDsgd2UgdXNlZAorLQkgICB0aGlzIHRvIGdldCB0aGUgRFIgMTQxIGJl aGF2aW9yLiAgKi8KKy0Jb2JqZWN0X3R5cGUgPSBOVUxMX1RSRUU7CisgICAgICAgcGFyc2VyLT5v YmplY3Rfc2NvcGUgPSBvYmplY3RfdHlwZTsKKyAgICAgICBwYXJzZXItPnF1YWxpZnlpbmdfc2Nv cGUgPSBOVUxMX1RSRUU7CisgICAgIH0KCmRpZmYgLS1naXQgYS9nY2M2LXByNjg2NzIucGF0Y2gg Yi9nY2M2LXByNjg2NzIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZWQ3YzhiZgotLS0gL2Rldi9udWxsCisrKyBiL2djYzYtcHI2ODY3Mi5wYXRjaApAQCAtMCwwICsx LDI5OSBAQAorMjAxNi0wMi0xMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisK KwlQUiBpcGEvNjg2NzIKKwkqIGlwYS1zcGxpdC5jIChzcGxpdF9mdW5jdGlvbik6IERvbid0IGNv bXB1dGUvdXNlIG1haW5fcGFydF9yZXR1cm5fcC4KKwlDb21wdXRlIHJldHZhbCBhbmQgcmV0Ym5k IGVhcmx5IGluIGFsbCBjYXNlcyBpZiBzcGxpdF9wYXJ0X3JldHVybl9wCisJYW5kIHJldHVybl9i YiBpcyBub3QgRVhJVC4gIFJlbW92ZSBhbGwgY2xvYmJlciBzdG10cyBhbmQgcmVzZXQKKwlhbGwg ZGVidWcgc3RtdHMgdGhhdCByZWZlciB0byBTU0FfTkFNRXMgZGVmaW5lZCBpbiBzcGxpdCBwYXJ0 LAorCWV4Y2VwdCBpZiBpdCBpcyByZXR2YWwsIGluIHRoYXQgY2FzZSByZXBsYWNlIHRoZSBvbGQg cmV0dmFsIHdpdGggdGhlCisJbGhzIG9mIHRoZSBjYWxsIHRvIHRoZSBzcGxpdCBwYXJ0LgorCisJ KiBnKysuZGcvaXBhL3ByNjg2NzItMS5DOiBOZXcgdGVzdC4KKwkqIGcrKy5kZy9pcGEvcHI2ODY3 Mi0yLkM6IE5ldyB0ZXN0LgorCSogZysrLmRnL2lwYS9wcjY4NjcyLTMuQzogTmV3IHRlc3QuCisK Ky0tLSBnY2MvaXBhLXNwbGl0LmMuamoJMjAxNi0wMi0xMSAxMDo1MDo1Mi44ODgyMjA1ODEgKzAx MDAKKysrKyBnY2MvaXBhLXNwbGl0LmMJMjAxNi0wMi0xMSAxMjo0NjoxNS45NzU3Nzc2NTIgKzAx MDAKK0BAIC0xMjQ0LDI4ICsxMjQ0LDEzIEBAIHNwbGl0X2Z1bmN0aW9uIChiYXNpY19ibG9jayBy ZXR1cm5fYmIsIHMKKyAJYXJnc190b19wYXNzLnNhZmVfcHVzaCAoYXJnKTsKKyAgICAgICB9Cisg CistICAvKiBTZWUgaWYgdGhlIHNwbGl0IGZ1bmN0aW9uIG9yIHRoZSBtYWluIHBhcnQgd2lsbCBy ZXR1cm4uICAqLworLSAgYm9vbCBtYWluX3BhcnRfcmV0dXJuX3AgPSBmYWxzZTsKKysgIC8qIFNl ZSBpZiB0aGUgc3BsaXQgZnVuY3Rpb24gd2lsbCByZXR1cm4uICAqLworICAgYm9vbCBzcGxpdF9w YXJ0X3JldHVybl9wID0gZmFsc2U7CisgICBGT1JfRUFDSF9FREdFIChlLCBlaSwgcmV0dXJuX2Ji LT5wcmVkcykKKyAgICAgeworICAgICAgIGlmIChiaXRtYXBfYml0X3AgKHNwbGl0X3BvaW50LT5z cGxpdF9iYnMsIGUtPnNyYy0+aW5kZXgpKQorIAlzcGxpdF9wYXJ0X3JldHVybl9wID0gdHJ1ZTsK Ky0gICAgICBlbHNlCistCW1haW5fcGFydF9yZXR1cm5fcCA9IHRydWU7CisgICAgIH0KKy0gIC8q IFRoZSBtYWluIHBhcnQgYWxzbyByZXR1cm5zIGlmIHdlIHNwbGl0IG9uIGEgZmFsbHRocnUgZWRn ZQorLSAgICAgYW5kIHRoZSBzcGxpdCBwYXJ0IHJldHVybnMuICAqLworLSAgaWYgKHNwbGl0X3Bh cnRfcmV0dXJuX3ApCistICAgIEZPUl9FQUNIX0VER0UgKGUsIGVpLCBzcGxpdF9wb2ludC0+ZW50 cnlfYmItPnByZWRzKQorLSAgICAgIHsKKy0JaWYgKCEgYml0bWFwX2JpdF9wIChzcGxpdF9wb2lu dC0+c3BsaXRfYmJzLCBlLT5zcmMtPmluZGV4KQorLQkgICAgJiYgc2luZ2xlX3N1Y2NfcCAoZS0+ c3JjKSkKKy0JICB7CistCSAgICBtYWluX3BhcnRfcmV0dXJuX3AgPSB0cnVlOworLQkgICAgYnJl YWs7CistCSAgfQorLSAgICAgIH0KKyAKKyAgIC8qIEFkZCByZXR1cm4gYmxvY2sgdG8gd2hhdCB3 aWxsIGJlY29tZSB0aGUgc3BsaXQgZnVuY3Rpb24uCisgICAgICBXZSBkbyBub3QgcmV0dXJuOyBu byByZXR1cm4gYmxvY2sgaXMgbmVlZGVkLiAgKi8KK0BAIC0xMjc5LDggKzEyNjQsOCBAQCBzcGxp dF9mdW5jdGlvbiAoYmFzaWNfYmxvY2sgcmV0dXJuX2JiLCBzCisgICAgICBGSVhNRTogT25jZSB3 ZSBhcmUgYWJsZSB0byBjaGFuZ2UgcmV0dXJuIHR5cGUsIHdlIHNob3VsZCBjaGFuZ2UgZnVuY3Rp b24KKyAgICAgIHRvIHJldHVybiB2b2lkIGluc3RlYWQgb2YganVzdCBvdXRwdXR0aW5nIGZ1bmN0 aW9uIHdpdGggdW5kZWZpbmVkIHJldHVybgorICAgICAgdmFsdWUuICBGb3Igc3RydWN0dXJlcyB0 aGlzIGFmZmVjdHMgcXVhbGl0eSBvZiBjb2RlZ2VuLiAgKi8KKy0gIGVsc2UgaWYgKCFzcGxpdF9w b2ludC0+c3BsaXRfcGFydF9zZXRfcmV0dmFsCistICAgICAgICAgICAmJiAocmV0dmFsID0gZmlu ZF9yZXR2YWwgKHJldHVybl9iYikpKQorKyAgZWxzZSBpZiAoKHJldHZhbCA9IGZpbmRfcmV0dmFs IChyZXR1cm5fYmIpKQorKwkgICAmJiAhc3BsaXRfcG9pbnQtPnNwbGl0X3BhcnRfc2V0X3JldHZh bCkKKyAgICAgeworICAgICAgIGJvb2wgcmVkaXJlY3RlZCA9IHRydWU7CisgICAgICAgYmFzaWNf YmxvY2sgbmV3X3JldHVybl9iYiA9IGNyZWF0ZV9iYXNpY19ibG9jayAoTlVMTCwgMCwgcmV0dXJu X2JiKTsKK0BAIC0xMzA4LDEyICsxMjkzLDEwIEBAIHNwbGl0X2Z1bmN0aW9uIChiYXNpY19ibG9j ayByZXR1cm5fYmIsIHMKKyAgICAgfQorICAgLyogV2hlbiB3ZSBwYXNzIGFyb3VuZCB0aGUgdmFs dWUsIHVzZSBleGlzdGluZyByZXR1cm4gYmxvY2suICAqLworICAgZWxzZQorLSAgICBiaXRtYXBf c2V0X2JpdCAoc3BsaXRfcG9pbnQtPnNwbGl0X2JicywgcmV0dXJuX2JiLT5pbmRleCk7CistCist ICAvKiBJZiB0aGUgbWFpbiBwYXJ0IGRvZXNuJ3QgcmV0dXJuIHByZXRlbmQgdGhlIHJldHVybiBi bG9jayB3YXNuJ3QKKy0gICAgIGZvdW5kIGZvciBhbGwgb2YgdGhlIGZvbGxvd2luZy4gICovCist ICBpZiAoISBtYWluX3BhcnRfcmV0dXJuX3ApCistICAgIHJldHVybl9iYiA9IEVYSVRfQkxPQ0tf UFRSX0ZPUl9GTiAoY2Z1bik7CisrICAgIHsKKysgICAgICBiaXRtYXBfc2V0X2JpdCAoc3BsaXRf cG9pbnQtPnNwbGl0X2JicywgcmV0dXJuX2JiLT5pbmRleCk7CisrICAgICAgcmV0Ym5kID0gZmlu ZF9yZXRibmQgKHJldHVybl9iYik7CisrICAgIH0KKyAKKyAgIC8qIElmIFJFVFVSTl9CQiBoYXMg dmlydHVhbCBvcGVyYW5kIFBISXMsIHRoZXkgbXVzdCBiZSByZW1vdmVkIGFuZCB0aGUKKyAgICAg IHZpcnR1YWwgb3BlcmFuZCBtYXJrZWQgZm9yIHJlbmFtaW5nIGFzIHdlIGNoYW5nZSB0aGUgQ0ZH IGluIGEgd2F5IHRoYXQKK0BAIC0xMzgyLDYgKzEzNjUsNDQgQEAgc3BsaXRfZnVuY3Rpb24gKGJh c2ljX2Jsb2NrIHJldHVybl9iYiwgcworICAgICAgIERFQ0xfRlVOQ1RJT05fQ09ERSAobm9kZS0+ ZGVjbCkgPSAoZW51bSBidWlsdF9pbl9mdW5jdGlvbikgMDsKKyAgICAgfQorIAorKyAgLyogSWYg cmV0dXJuX2JiIGNvbnRhaW5zIGFueSBjbG9iYmVycyB0aGF0IHJlZmVyIHRvIFNTQV9OQU1Fcwor KyAgICAgc2V0IGluIHRoZSBzcGxpdCBwYXJ0LCByZW1vdmUgdGhlbS4gIEFsc28gcmVzZXQgZGVi dWcgc3RtdHMgdGhhdAorKyAgICAgcmVmZXIgdG8gU1NBX05BTUVzIHNldCBpbiB0aGUgc3BsaXQg cGFydC4gICovCisrICBpZiAocmV0dXJuX2JiICE9IEVYSVRfQkxPQ0tfUFRSX0ZPUl9GTiAoY2Z1 bikpCisrICAgIHsKKysgICAgICBnaW1wbGVfc3RtdF9pdGVyYXRvciBnc2kgPSBnc2lfc3RhcnRf YmIgKHJldHVybl9iYik7CisrICAgICAgd2hpbGUgKCFnc2lfZW5kX3AgKGdzaSkpCisrCXsKKysJ ICB0cmVlIG9wOworKwkgIHNzYV9vcF9pdGVyIGl0ZXI7CisrCSAgZ2ltcGxlICpzdG10ID0gZ3Np X3N0bXQgKGdzaSk7CisrCSAgYm9vbCByZW1vdmUgPSBmYWxzZTsKKysJICBpZiAoZ2ltcGxlX2Ns b2JiZXJfcCAoc3RtdCkgfHwgaXNfZ2ltcGxlX2RlYnVnIChzdG10KSkKKysJICAgIEZPUl9FQUNI X1NTQV9UUkVFX09QRVJBTkQgKG9wLCBzdG10LCBpdGVyLCBTU0FfT1BfVVNFKQorKwkgICAgICB7 CisrCQliYXNpY19ibG9jayBiYiA9IGdpbXBsZV9iYiAoU1NBX05BTUVfREVGX1NUTVQgKG9wKSk7 CisrCQlpZiAob3AgIT0gcmV0dmFsCisrCQkgICAgJiYgYmIKKysJCSAgICAmJiBiYiAhPSByZXR1 cm5fYmIKKysJCSAgICAmJiBiaXRtYXBfYml0X3AgKHNwbGl0X3BvaW50LT5zcGxpdF9iYnMsIGJi LT5pbmRleCkpCisrCQkgIHsKKysJCSAgICBpZiAoaXNfZ2ltcGxlX2RlYnVnIChzdG10KSkKKysJ CSAgICAgIHsKKysJCQlnaW1wbGVfZGVidWdfYmluZF9yZXNldF92YWx1ZSAoc3RtdCk7CisrCQkJ dXBkYXRlX3N0bXQgKHN0bXQpOworKwkJICAgICAgfQorKwkJICAgIGVsc2UKKysJCSAgICAgIHJl bW92ZSA9IHRydWU7CisrCQkgICAgYnJlYWs7CisrCQkgIH0KKysJICAgICAgfQorKwkgIGlmIChy ZW1vdmUpCisrCSAgICBnc2lfcmVtb3ZlICgmZ3NpLCB0cnVlKTsKKysJICBlbHNlCisrCSAgICBn c2lfbmV4dCAoJmdzaSk7CisrCX0KKysgICAgfQorKworICAgLyogSWYgdGhlIG9yaWdpbmFsIGZ1 bmN0aW9uIGlzIGluc3RydW1lbnRlZCB0aGVuIGl0J3MKKyAgICAgIHBhcnQgaXMgYWxzbyBpbnN0 cnVtZW50ZWQuICAqLworICAgaWYgKHdpdGhfYm91bmRzKQorQEAgLTE0OTksOSArMTUyMCw3IEBA IHNwbGl0X2Z1bmN0aW9uIChiYXNpY19ibG9jayByZXR1cm5fYmIsIHMKKyAgICAgICAgICByZXR1 cm4gdmFsdWUgaW50byBhbmQgcHV0IGNhbGwganVzdCBiZWZvcmUgaXQuICAqLworICAgICAgIGlm IChyZXR1cm5fYmIgIT0gRVhJVF9CTE9DS19QVFJfRk9SX0ZOIChjZnVuKSkKKyAJeworLQkgIHJl YWxfcmV0dmFsID0gcmV0dmFsID0gZmluZF9yZXR2YWwgKHJldHVybl9iYik7CistCSAgcmV0Ym5k ID0gZmluZF9yZXRibmQgKHJldHVybl9iYik7CistCisrCSAgcmVhbF9yZXR2YWwgPSByZXR2YWw7 CisgCSAgaWYgKHJlYWxfcmV0dmFsICYmIHNwbGl0X3BvaW50LT5zcGxpdF9wYXJ0X3NldF9yZXR2 YWwpCisgCSAgICB7CisgCSAgICAgIGdwaGlfaXRlcmF0b3IgcHNpOworQEAgLTE1NDUsNiArMTU2 NCwyOCBAQCBzcGxpdF9mdW5jdGlvbiAoYmFzaWNfYmxvY2sgcmV0dXJuX2JiLCBzCisgCQkJICAg IGJyZWFrOworIAkJCSAgfQorIAkJICAgICAgdXBkYXRlX3N0bXQgKGdzaV9zdG10IChic2kpKTsK KysJCSAgICAgIC8qIEFsc28gYWRqdXN0IGNsb2JiZXJzIGFuZCBkZWJ1ZyBzdG10cyBpbiByZXR1 cm5fYmIuICAqLworKwkJICAgICAgZm9yIChic2kgPSBnc2lfc3RhcnRfYmIgKHJldHVybl9iYik7 ICFnc2lfZW5kX3AgKGJzaSk7CisrCQkJICAgZ3NpX25leHQgKCZic2kpKQorKwkJCXsKKysJCQkg IGdpbXBsZSAqc3RtdCA9IGdzaV9zdG10IChic2kpOworKwkJCSAgaWYgKGdpbXBsZV9jbG9iYmVy X3AgKHN0bXQpCisrCQkJICAgICAgfHwgaXNfZ2ltcGxlX2RlYnVnIChzdG10KSkKKysJCQkgICAg eworKwkJCSAgICAgIHNzYV9vcF9pdGVyIGl0ZXI7CisrCQkJICAgICAgdXNlX29wZXJhbmRfcCB1 c2VfcDsKKysJCQkgICAgICBib29sIHVwZGF0ZSA9IGZhbHNlOworKwkJCSAgICAgIEZPUl9FQUNI X1NTQV9VU0VfT1BFUkFORCAodXNlX3AsIHN0bXQsIGl0ZXIsCisrCQkJCQkJCVNTQV9PUF9VU0Up CisrCQkJCWlmIChVU0VfRlJPTV9QVFIgKHVzZV9wKSA9PSByZWFsX3JldHZhbCkKKysJCQkJICB7 CisrCQkJCSAgICBTRVRfVVNFICh1c2VfcCwgcmV0dmFsKTsKKysJCQkJICAgIHVwZGF0ZSA9IHRy dWU7CisrCQkJCSAgfQorKwkJCSAgICAgIGlmICh1cGRhdGUpCisrCQkJCXVwZGF0ZV9zdG10IChz dG10KTsKKysJCQkgICAgfQorKwkJCX0KKyAJCSAgICB9CisgCisgCQkgIC8qIFJlcGxhY2UgcmV0 Ym5kIHdpdGggbmV3IG9uZS4gICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvaXBhL3ByNjg2 NzItMS5DLmpqCTIwMTYtMDItMTEgMTI6MzE6MjcuMzQ0NDk3MTg3ICswMTAwCisrKysgZ2NjL3Rl c3RzdWl0ZS9nKysuZGcvaXBhL3ByNjg2NzItMS5DCTIwMTYtMDItMTEgMTI6MzE6MDEuMDAwMDAw MDAwICswMTAwCitAQCAtMCwwICsxLDIwIEBACisrLy8gUFIgaXBhLzY4NjcyCisrLy8geyBkZy1k byBjb21waWxlIH0KKysvLyB7IGRnLW9wdGlvbnMgIi1PIC1maW5saW5lLXNtYWxsLWZ1bmN0aW9u cyAtZnBhcnRpYWwtaW5saW5pbmcgLS1wYXJhbT1wYXJ0aWFsLWlubGluaW5nLWVudHJ5LXByb2Jh YmlsaXR5PTEwMCIgfQorKworK3ZvaWQgZjIgKHZvaWQgKik7Cisrdm9pZCAqYTsKKytzdHJ1Y3Qg QyB7IHZpcnR1YWwgdm9pZCBtMSAoKTsgfTsKKytzdHJ1Y3QgRCB7IEMgKm0yICgpIHsgaWYgKGEp IF9fYnVpbHRpbl9hYm9ydCAoKTsgfSB9OworK0QgZjEgKCk7Cisrc3RydWN0IEUgeyBpbnQgZTsg fkUgKCkgeyBpZiAoZSkgZjIgKCZlKTsgfSB9OworK0UgKmI7Cisrc3RydWN0IEkgeyB2aXJ0dWFs IHZvaWQgbTMgKCk7IH07CisrCisrdm9pZAorK0k6Om0zICgpCisreworKyAgaWYgKGEpCisrICAg IGYxICgpLm0yICgpLT5tMSAoKTsKKysgIGItPn5FICgpOworK30KKy0tLSBnY2MvdGVzdHN1aXRl L2crKy5kZy9pcGEvcHI2ODY3Mi0yLkMuamoJMjAxNi0wMi0xMSAxMjozMzo1MC43NDQ0Mzg5NDgg KzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9pcGEvcHI2ODY3Mi0yLkMJMjAxNi0wMi0x MSAxMjozMjo1MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNTQgQEAKKysvLyBQUiBpcGEv Njg2NzIKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKy8vIHsgZGctb3B0aW9ucyAiLU8zIC0tcGFy YW09cGFydGlhbC1pbmxpbmluZy1lbnRyeS1wcm9iYWJpbGl0eT0xMDAgLWciIH0KKysKKytzdHJ1 Y3QgUyB7IH5TICgpIHt9IH07CisrUyAqYTsKKytpbnQgKmI7Cisrdm9pZCBiYXIgKCk7Cisrdm9p ZCBiYXogKCk7Cisrdm9pZCBmbiAoaW50ICopOworKworK3N0YXRpYyBpbnQKKytmb28gKCkKKyt7 CisrICBTICpjID0gYTsKKysgIGlmIChjKQorKyAgICB7CisrICAgICAgYmFyICgpOworKyAgICAg IGlmIChhKQorKwlfX2J1aWx0aW5fYWJvcnQgKCk7CisrICAgICAgYmF6ICgpOworKyAgICB9Cisr ICBpbnQgcCA9ICpiOworKyAgaWYgKHApCisrICAgIHsKKysgICAgICBmbiAoYik7IGZuIChiKTsg Zm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBm biAoYik7CisrICAgICAgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZu IChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOworKyAgICAgIGZuIChiKTsgZm4g KGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAo Yik7IGZuIChiKTsKKysgICAgICBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChi KTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7CisrICAgIH0KKysgIGMt Pn5TICgpOworKyAgaW50IHEgPSAyICogcDsKKysgIGludCByID0gMyAqIHE7CisrICBTICpkID0g YzsKKysgIHJldHVybiBwOworK30KKysKKyt2b2lkCisrdXNlMSAoKQorK3sKKysgIGZvbyAoKTsK Kyt9CisrCisrdm9pZAorK3VzZTIgKCkKKyt7CisrICBmb28gKCk7CisrfQorKworK3ZvaWQKKyt1 c2UzICgpCisreworKyAgZm9vICgpOworK30KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9pcGEv cHI2ODY3Mi0zLkMuamoJMjAxNi0wMi0xMSAxMjozNDowMi4zNzQyNzIwMjQgKzAxMDAKKysrKyBn Y2MvdGVzdHN1aXRlL2crKy5kZy9pcGEvcHI2ODY3Mi0zLkMJMjAxNi0wMi0xMSAxMjozNDoyMi4z Mzc5ODU0ODIgKzAxMDAKK0BAIC0wLDAgKzEsNTcgQEAKKysvLyBQUiBpcGEvNjg2NzIKKysvLyB7 IGRnLWRvIGNvbXBpbGUgfQorKy8vIHsgZGctb3B0aW9ucyAiLU8zIC0tcGFyYW09cGFydGlhbC1p bmxpbmluZy1lbnRyeS1wcm9iYWJpbGl0eT0xMDAgLWciIH0KKysKKytzdHJ1Y3QgUyB7IH5TICgp IHt9IH07CisrUyAqYSwgKmU7CisraW50ICpiOworK3ZvaWQgYmFyICgpOworK3ZvaWQgYmF6ICgp OworK3ZvaWQgZm4gKGludCAqKTsKKyt2b2lkIGZuMiAoUyAqKTsKKysKKytzdGF0aWMgaW50Cisr Zm9vICgpCisreworKyAgUyAqYyA9IGE7CisrICBpZiAoYykKKysgICAgeworKyAgICAgIGJhciAo KTsKKysgICAgICBpZiAoYSkKKysJX19idWlsdGluX2Fib3J0ICgpOworKyAgICAgIGJheiAoKTsK KysgICAgfQorKyAgaW50IHAgPSAqYjsKKysgIFMgKmYgPSBlOworKyAgaWYgKHApCisrICAgIHsK KysgICAgICBmbjIgKGYpOworKyAgICAgIGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsg Zm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsKKysgICAgICBm biAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZu IChiKTsgZm4gKGIpOyBmbiAoYik7CisrICAgICAgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4g KGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOworKyAg ICAgIGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsgZm4gKGIpOyBmbiAoYik7IGZuIChi KTsgZm4gKGIpOyBmbiAoYik7IGZuIChiKTsKKysgICAgfQorKyAgZi0+flMgKCk7CisrICBpbnQg cSA9IDIgKiBwOworKyAgaW50IHIgPSAzICogcTsKKysgIFMgKmQgPSBjOworKyAgcmV0dXJuIHA7 CisrfQorKworK3ZvaWQKKyt1c2UxICgpCisreworKyAgZm9vICgpOworK30KKysKKyt2b2lkCisr dXNlMiAoKQorK3sKKysgIGZvbyAoKTsKKyt9CisrCisrdm9pZAorK3VzZTMgKCkKKyt7CisrICBm b28gKCk7CisrfQoKZGlmZiAtLWdpdCBhL2djYzYtcHI2OTI0MS5wYXRjaCBiL2djYzYtcHI2OTI0 MS5wYXRjaAppbmRleCA3NGJmNmFkLi4zOWY2ZjFiIDEwMDY0NAotLS0gYS9nY2M2LXByNjkyNDEu cGF0Y2gKKysrIGIvZ2NjNi1wcjY5MjQxLnBhdGNoCkBAIC0xLDE2MyArMSw4OCBAQAotMjAxNi0w Mi0wMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0JICAgIFBhdHJpY2sgUGFs a2EgIDxwcGFsa2FAZ2NjLmdudS5vcmc+CisyMDE2LTAyLTEwICBKYWt1YiBKZWxpbmVrICA8amFr dWJAcmVkaGF0LmNvbT4KIAogCVBSIGlwYS82OTI0MQotCVBSIGMrKy82OTY0OQotCSogZ2ltcGxp ZnkuYyAoZ2ltcGxpZnlfbW9kaWZ5X2V4cHIpOiBTZXQgbGhzIGV2ZW4gZm9yIG5vcmV0dXJuCi0J Y2FsbHMgaWYgdGhlIHJldHVybiB0eXBlIGlzIFRSRUVfQUREUkVTU0FCTEUuCi0JKiBjZ3JhcGh1 bml0LmMgKGNncmFwaF9ub2RlOjpleHBhbmRfdGh1bmspOiBMaWtld2lzZS4KLQkqIGlwYS1zcGxp dC5jIChzcGxpdF9mdW5jdGlvbik6IEZpeCBkb3VibGVkICJ3ZSIgaW4gY29tbWVudC4KLQlVc2Ug dm9pZCByZXR1cm4gdHlwZSBmb3IgdGhlIHNwbGl0IHBhcnQgZXZlbiBpZgotCSFzcGxpdF9wb2lu dC0+c3BsaXRfcGFydF9zZXRfcmV0dmFsLgorCSogaXBhLXNwbGl0LmMgKHNwbGl0X2Z1bmN0aW9u KTogSWYgc3BsaXQgcGFydCByZXR1cm5zIFRSRUVfQUREUkVTU0FCTEUKKwl0eXBlIGJ5IHJlZmVy ZW5jZSwgZm9yY2UgbGhzIG9uIHRoZSBjYWxsLgogCi0JKiBnKysuZGcvaXBhL3ByNjkyNDEtMS5D OiBOZXcgdGVzdC4KLQkqIGcrKy5kZy9pcGEvcHI2OTI0MS0yLkM6IE5ldyB0ZXN0LgotCSogZysr LmRnL2lwYS9wcjY5MjQxLTMuQzogTmV3IHRlc3QuCi0JKiBnKysuZGcvaXBhL3ByNjk2NDkuQzog TmV3IHRlc3QuCisJKiBnKysuZGcvaXBhL3ByNjkyNDEtNC5DOiBOZXcgdGVzdC4KIAotLS0tIGdj Yy9naW1wbGlmeS5jLmpqCTIwMTYtMDItMDIgMjA6NDI6MDAuMDAwMDAwMDAwICswMTAwCi0rKysg Z2NjL2dpbXBsaWZ5LmMJMjAxNi0wMi0wMyAxMTowNDowNi40MDA3NTc2NjggKzAxMDAKLUBAIC00 ODI4LDcgKzQ4MjgsOCBAQCBnaW1wbGlmeV9tb2RpZnlfZXhwciAodHJlZSAqZXhwcl9wLCBnaW1w Ci0gCSAgICB9Ci0gCX0KLSAgICAgICBub3RpY2Vfc3BlY2lhbF9jYWxscyAoY2FsbF9zdG10KTsK LS0gICAgICBpZiAoIWdpbXBsZV9jYWxsX25vcmV0dXJuX3AgKGNhbGxfc3RtdCkpCi0rICAgICAg aWYgKCFnaW1wbGVfY2FsbF9ub3JldHVybl9wIChjYWxsX3N0bXQpCi0rCSAgfHwgVFJFRV9BRERS RVNTQUJMRSAoVFJFRV9UWVBFICgqdG9fcCkpKQotIAlnaW1wbGVfY2FsbF9zZXRfbGhzIChjYWxs X3N0bXQsICp0b19wKTsKLSAgICAgICBhc3NpZ24gPSBjYWxsX3N0bXQ7Ci0gICAgIH0KLS0tLSBn Y2MvY2dyYXBodW5pdC5jLmpqCTIwMTYtMDEtMjAgMTA6NTU6MTUuMDAwMDAwMDAwICswMTAwCi0r KysgZ2NjL2NncmFwaHVuaXQuYwkyMDE2LTAyLTAzIDExOjA0OjQxLjAzNDI3OTM3MCArMDEwMAot QEAgLTE3MDMsNyArMTcwMyw4IEBAIGNncmFwaF9ub2RlOjpleHBhbmRfdGh1bmsgKGJvb2wgb3V0 cHV0X2EKLSAgICAgICBic2kgPSBnc2lfc3RhcnRfYmIgKGJiKTsKLSAKLSAgICAgICAvKiBCdWls ZCBjYWxsIHRvIHRoZSBmdW5jdGlvbiBiZWluZyB0aHVua2VkLiAgKi8KLS0gICAgICBpZiAoIVZP SURfVFlQRV9QIChyZXN0eXBlKSAmJiAhYWxpYXNfaXNfbm9yZXR1cm4pCi0rICAgICAgaWYgKCFW T0lEX1RZUEVfUCAocmVzdHlwZSkKLSsJICAmJiAoIWFsaWFzX2lzX25vcmV0dXJuIHx8IFRSRUVf QUREUkVTU0FCTEUgKHJlc3R5cGUpKSkKLSAJewotIAkgIGlmIChERUNMX0JZX1JFRkVSRU5DRSAo cmVzZGVjbCkpCi0gCSAgICB7Ci1AQCAtMTc3MCw3ICsxNzcxLDcgQEAgY2dyYXBoX25vZGU6OmV4 cGFuZF90aHVuayAoYm9vbCBvdXRwdXRfYQotIAkgICAgICB8fCBERUNMX0JZX1JFRkVSRU5DRSAo cmVzZGVjbCkpKQotICAgICAgICAgZ2ltcGxlX2NhbGxfc2V0X3JldHVybl9zbG90X29wdCAoY2Fs bCwgdHJ1ZSk7Ci0gCi0tICAgICAgaWYgKHJlc3RtcCAmJiAhYWxpYXNfaXNfbm9yZXR1cm4pCi0r ICAgICAgaWYgKHJlc3RtcCkKLSAJewotICAgICAgICAgICBnaW1wbGVfY2FsbF9zZXRfbGhzIChj YWxsLCByZXN0bXApOwotIAkgIGdjY19hc3NlcnQgKHVzZWxlc3NfdHlwZV9jb252ZXJzaW9uX3Ag KFRSRUVfVFlQRSAocmVzdG1wKSwKLS0tLSBnY2MvaXBhLXNwbGl0LmMuamoJMjAxNi0wMS0wNCAx NDo1NTo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvaXBhLXNwbGl0LmMJMjAxNi0wMi0wMyAx MzowMTo0NS45MDUxMzYwNTEgKzAxMDAKLUBAIC0xMjU0LDcgKzEyNTQsNyBAQCBzcGxpdF9mdW5j dGlvbiAoYmFzaWNfYmxvY2sgcmV0dXJuX2JiLCBzCi0gICAgICAgZWxzZQotIAltYWluX3BhcnRf cmV0dXJuX3AgPSB0cnVlOwotICAgICB9Ci0tICAvKiBUaGUgbWFpbiBwYXJ0IGFsc28gcmV0dXJu cyBpZiB3ZSB3ZSBzcGxpdCBvbiBhIGZhbGx0aHJ1IGVkZ2UKLSsgIC8qIFRoZSBtYWluIHBhcnQg YWxzbyByZXR1cm5zIGlmIHdlIHNwbGl0IG9uIGEgZmFsbHRocnUgZWRnZQotICAgICAgYW5kIHRo ZSBzcGxpdCBwYXJ0IHJldHVybnMuICAqLwotICAgaWYgKHNwbGl0X3BhcnRfcmV0dXJuX3ApCi0g ICAgIEZPUl9FQUNIX0VER0UgKGUsIGVpLCBzcGxpdF9wb2ludC0+ZW50cnlfYmItPnByZWRzKQot QEAgLTEzNjQsOCArMTM2NCw5IEBAIHNwbGl0X2Z1bmN0aW9uIChiYXNpY19ibG9jayByZXR1cm5f YmIsIHMKLSAgIC8qIE5vdyBjcmVhdGUgdGhlIGFjdHVhbCBjbG9uZS4gICovCi0gICBjZ3JhcGhf ZWRnZTo6cmVidWlsZF9lZGdlcyAoKTsKLSAgIG5vZGUgPSBjdXJfbm9kZS0+Y3JlYXRlX3ZlcnNp b25fY2xvbmVfd2l0aF9ib2R5Ci0tICAgICh2TlVMTCwgTlVMTCwgYXJnc190b19za2lwLCAhc3Bs aXRfcGFydF9yZXR1cm5fcCwgc3BsaXRfcG9pbnQtPnNwbGl0X2JicywKLS0gICAgIHNwbGl0X3Bv aW50LT5lbnRyeV9iYiwgInBhcnQiKTsKLSsgICAgKHZOVUxMLCBOVUxMLCBhcmdzX3RvX3NraXAs Ci0rICAgICAhc3BsaXRfcGFydF9yZXR1cm5fcCB8fCAhc3BsaXRfcG9pbnQtPnNwbGl0X3BhcnRf c2V0X3JldHZhbCwKLSsgICAgIHNwbGl0X3BvaW50LT5zcGxpdF9iYnMsIHNwbGl0X3BvaW50LT5l bnRyeV9iYiwgInBhcnQiKTsKLSAKLSAgIG5vZGUtPnNwbGl0X3BhcnQgPSB0cnVlOwotIAotLS0t IGdjYy90ZXN0c3VpdGUvZysrLmRnL2lwYS9wcjY5MjQxLTEuQy5qagkyMDE2LTAyLTAzIDEwOjU2 OjEwLjYyNDMyODI2MyArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2lwYS9wcjY5MjQx LTEuQwkyMDE2LTAyLTAzIDExOjAxOjE4LjYwMDA3NTAzOSArMDEwMAotQEAgLTAsMCArMSwxMiBA QAorLS0tIGdjYy9pcGEtc3BsaXQuYy5qagkyMDE2LTAyLTExIDEyOjQ2OjE1Ljk3NTc3NzY1MiAr MDEwMAorKysrIGdjYy9pcGEtc3BsaXQuYwkyMDE2LTAyLTExIDEzOjA2OjU3LjcxNTI0MTg3MSAr MDEwMAorQEAgLTYyOSw3ICs2MjksMTggQEAgY29uc2lkZXJfc3BsaXQgKHN0cnVjdCBzcGxpdF9w b2ludCAqY3VycgorICAgICAgICA0KSBGb3Igbm9uLVNTQSB3ZSBuZWVkIHRvIGxvb2sgd2hlcmUg dGhlIHZhciBpcyBjb21wdXRlZC4gKi8KKyAgIHJldHZhbCA9IGZpbmRfcmV0dmFsIChyZXR1cm5f YmIpOworICAgaWYgKCFyZXR2YWwpCistICAgIGN1cnJlbnQtPnNwbGl0X3BhcnRfc2V0X3JldHZh bCA9IHRydWU7CisrICAgIHsKKysgICAgICAvKiBJZiB0aGVyZSBpcyBhIHJldHVybl9iYiB3aXRo IG5vIHJldHVybiB2YWx1ZSBpbiBmdW5jdGlvbiByZXR1cm5pbmcKKysJIHZhbHVlIGJ5IHJlZmVy ZW5jZSwgYWxzbyBtYWtlIHRoZSBzcGxpdCBwYXJ0IHJldHVybiB2b2lkLCBvdGhlcndpc2UKKysJ IHdlIGV4cGFuc2lvbiB3b3VsZCB0cnkgdG8gY3JlYXRlIGEgbm9uLVBPRCB0ZW1wb3JhcnksIHdo aWNoIGlzCisrCSBpbnZhbGlkLiAgKi8KKysgICAgICBpZiAocmV0dXJuX2JiICE9IEVYSVRfQkxP Q0tfUFRSX0ZPUl9GTiAoY2Z1bikKKysJICAmJiBERUNMX1JFU1VMVCAoY3VycmVudF9mdW5jdGlv bl9kZWNsKQorKwkgICYmIERFQ0xfQllfUkVGRVJFTkNFIChERUNMX1JFU1VMVCAoY3VycmVudF9m dW5jdGlvbl9kZWNsKSkpCisrCWN1cnJlbnQtPnNwbGl0X3BhcnRfc2V0X3JldHZhbCA9IGZhbHNl OworKyAgICAgIGVsc2UKKysJY3VycmVudC0+c3BsaXRfcGFydF9zZXRfcmV0dmFsID0gdHJ1ZTsK KysgICAgfQorICAgZWxzZSBpZiAoaXNfZ2ltcGxlX21pbl9pbnZhcmlhbnQgKHJldHZhbCkpCisg ICAgIGN1cnJlbnQtPnNwbGl0X3BhcnRfc2V0X3JldHZhbCA9IGZhbHNlOworICAgLyogU3BlY2lh bCBjYXNlIGlzIHZhbHVlIHJldHVybmVkIGJ5IHJlZmVyZW5jZSB3ZSByZWNvcmQgYXMgaWYgaXQg d2FzIG5vbi1zc2EKKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9pcGEvcHI2OTI0MS00LkMuamoJ MjAxNi0wMi0xMSAxMzowMDowNC4xNjAwNzU0MTcgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2cr Ky5kZy9pcGEvcHI2OTI0MS00LkMJMjAxNi0wMi0xMSAxMzowMDowNC4xNjAwNzU0MTcgKzAxMDAK K0BAIC0wLDAgKzEsNTUgQEAKICsvLyBQUiBpcGEvNjkyNDEKLSsvLyB7IGRnLWRvIGNvbXBpbGUg fQotKy8vIHsgZGctb3B0aW9ucyAiLU8yIiB9CisrLy8geyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0 IGMrKzExIH0gfQorKy8vIHsgZGctb3B0aW9ucyAiLU8yIC1Xbm8tcmV0dXJuLXR5cGUiIH0KICsK LStzdHJ1Y3QgUiB7IFIgKGNvbnN0IFIgJikge30gfTsKLStfX2F0dHJpYnV0ZV9fICgobm9yZXR1 cm4pKSBSIGJhciAoKTsKLSsKLStSCi0rZm9vICgpCi0rewotKyAgYmFyICgpOwotK30KLS0tLSBn Y2MvdGVzdHN1aXRlL2crKy5kZy9pcGEvcHI2OTI0MS0yLkMuamoJMjAxNi0wMi0wMyAxMDo1Njow Ny45OTYzNjQ1NTYgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9pcGEvcHI2OTI0MS0y LkMJMjAxNi0wMi0wMyAxMTowMTo0Mi45NTg3Mzg2MzkgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAK LSsvLyBQUiBpcGEvNjkyNDEKLSsvLyB7IGRnLWRvIGNvbXBpbGUgfQotKy8vIHsgZGctb3B0aW9u cyAiLU8yIiB9Ci0rCi0rX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKSB2b2lkIGZvbyAoaW50KTsK LStzdHJ1Y3QgUiB7IFIgKGNvbnN0IFIgJikge30gfTsKLSsKLStSCi0rYmFyICgpCi0rewotKyAg Zm9vICgwKTsKLSt9Ci0rCi0rUgotK2JheiAoKQotK3sKLSsgIGZvbyAoMCk7Ci0rfQotLS0tIGdj Yy90ZXN0c3VpdGUvZysrLmRnL2lwYS9wcjY5MjQxLTMuQy5qagkyMDE2LTAyLTAzIDExOjAwOjM5 Ljg0MDYxMDMxNyArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2lwYS9wcjY5MjQxLTMu QwkyMDE2LTAyLTAzIDExOjAxOjAyLjA0NDMwMzY3OCArMDEwMAotQEAgLTAsMCArMSwxMiBAQAot Ky8vIFBSIGlwYS82OTI0MQotKy8vIHsgZGctZG8gY29tcGlsZSB9Ci0rLy8geyBkZy1vcHRpb25z ICItTzIiIH0KLSsKLStzdHJ1Y3QgUiB7IGludCB4WzEwMF07IH07Ci0rX19hdHRyaWJ1dGVfXyAo KG5vcmV0dXJuKSkgUiBiYXIgKCk7Ci0rCi0rdm9pZAotK2ZvbyAoKQotK3sKLSsgIGJhciAoKTsK LSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvaXBhL3ByNjk2NDkuQy5qagkyMDE2LTAyLTAz IDEzOjE5OjAwLjg1MDg0NTg4NyArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2lwYS9w cjY5NjQ5LkMJMjAxNi0wMi0wMyAxMzoxODo0My4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEs MzYgQEAKLSsvLyBQUiBjKysvNjk2NDkKLSsvLyB7IGRnLWRvIGNvbXBpbGUgfQotKy8vIHsgZGct b3B0aW9ucyAiLU8yIiB9CisrdGVtcGxhdGUgPHR5cGVuYW1lPiBjbGFzcyBBOworK3N0cnVjdCBC IHsKKysgIHVzaW5nIHBvaW50ZXIgPSBpbnQgKjsKKyt9OworK3RlbXBsYXRlIDx0eXBlbmFtZSBf Q2hhclQsIHR5cGVuYW1lID0gQTxfQ2hhclQ+PiBjbGFzcyBiYXNpY19zdHJpbmcgeworKyAgbG9u ZyBfTV9zdHJpbmdfbGVuZ3RoOworKyAgZW51bSB7IF9TX2xvY2FsX2NhcGFjaXR5ID0gMTUgfSBf TV9sb2NhbF9idWZbX1NfbG9jYWxfY2FwYWNpdHldOworKyAgQjo6cG9pbnRlciBfTV9sb2NhbF9k YXRhOwogKwotK3N0cnVjdCBBIHsgdmlydHVhbCB2b2lkIG0xICgpOyB9OwotK3N0cnVjdCBDIDog QSB7IHZvaWQgbTEgKCkgeyBtMSAoKTsgfSB9OwotK3RlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3Qg QgotK3sKLSsgIFQgKnQ7Ci0rICBCIChUICp4KSA6IHQgKHgpIHsgaWYgKHQpIHQtPm0xICgpOyB9 Ci0rICBCIChjb25zdCBCICYpOworK3B1YmxpYzoKKysgIH5iYXNpY19zdHJpbmcoKTsKICt9Owot K3N0cnVjdCBEIDogcHVibGljIEMge307Ci0rc3RydWN0IEYgOiBwdWJsaWMgRAotK3sKLSsgIHZp cnR1YWwgQjxEPiBtMiAoKTsKLSsgIHZpcnR1YWwgQjxEPiBtMyAoKTsKLSsgIGludCBtNCAoKTsK Kyt0ZW1wbGF0ZSA8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBf QWxsb2M+CisraW50IG9wZXJhdG9yPDwoX1RyYWl0cywgYmFzaWNfc3RyaW5nPF9DaGFyVCwgX0Fs bG9jPik7CisrY2xhc3MgQyB7CisrICBiYXNpY19zdHJpbmc8QTxjaGFyPj4gX01fc3RyaW5nOwog K307Ci0rc3RydWN0IEcgOiBGCi0rewotKyAgQjxEPiBtMiAoKTsKLSsgIEI8RD4gbTMgKCk7Cisr Y2xhc3MgRCB7CisrICBDIF9NX3N0cmluZ2J1ZjsKICt9OwotK0I8RD4gRzo6bTIgKCkKLSt7Ci0r ICBpZiAobTQgKCkgPT0gMCkKLSsgICAgcmV0dXJuIHRoaXM7Ci0rICByZXR1cm4gMDsKLSt9Ci0r QjxEPiBHOjptMyAoKQotK3sKLSsgIGlmIChtNCAoKSA9PSAwKQotKyAgICByZXR1cm4gdGhpczsK LSsgIHJldHVybiAwOworK2NsYXNzIEYgeworKyAgaW50IHN0cmVhbTsKKysgIEQgc3RyZWFtXzsK Kyt9OworK2NsYXNzIEcgeworK3B1YmxpYzoKKysgIHZvaWQgb3BlcmF0b3ImKGludCk7CisrfTsK KytjbGFzcyBIIHsKKytwdWJsaWM6CisrICBIKHVuc2lnbmVkKTsKKysgIEgoSCAmJik7CisrICBi b29sIG1fZm4xKCk7CisrfTsKKytjbGFzcyBJIHsKKysgIHZvaWQgbV9mbjIoY29uc3QgaW50ICYm KTsKKysgIHN0YXRpYyBIIG1fZm4zKGNvbnN0IGludCAmKTsKKyt9OworK3RlbXBsYXRlIDx0eXBl bmFtZSBGdW5jdG9yPiB2b2lkIEJpbmQoRnVuY3Rvcik7CisrY2xhc3MgSiB7CisrcHVibGljOgor KyAgc3RhdGljIGJhc2ljX3N0cmluZzxjaGFyPiBtX2ZuNCgpOworK307CisraW50IGE7Cisrdm9p ZCBJOjptX2ZuMihjb25zdCBpbnQgJiYpIHsgQmluZChtX2ZuMyk7IH0KKytIIEk6Om1fZm4zKGNv bnN0IGludCAmKSB7CisrICAhZmFsc2UgPyAodm9pZCkwIDogRygpICYgRigpIDw8IEo6Om1fZm40 KCk7CisrICBIIGIoYSk7CisrICBpZiAoYi5tX2ZuMSgpKQorKyAgICBGKCk7CiArfQoKZGlmZiAt LWdpdCBhL2djYzYtcHI2OTI3NC5wYXRjaCBiL2djYzYtcHI2OTI3NC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNjdkNmE2OS4uMDAwMDAwMAotLS0gYS9nY2M2LXByNjkyNzQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0yMDE2LTAyLTA1ICAgUmljaGFy ZCBCaWVuZXIgIDxyZ3VlbnRoZXJAc3VzZS5kZT4KLQotCVBSIHJ0bC1vcHRpbWl6YXRpb24vNjky NzQKLQkqIGlyYS5jIChpcmFfc2V0dXBfYWx0cyk6IERvIG5vdCBjaGFuZ2UgcmVjb2dfZGF0YS5v cGVyYW5kCi0Jb3JkZXIuCi0KLS0tLSBnY2MvaXJhLmMJKHJldmlzaW9uIDIzMTgxNCkKLSsrKyBn Y2MvaXJhLmMJKHdvcmtpbmcgY29weSkKLUBAIC0xODg4LDEwICsxODg4LDExIEBAIGlyYV9zZXR1 cF9hbHRzIChydHhfaW5zbiAqaW5zbiwgSEFSRF9SRUcKLSAJfQotICAgICAgIGlmIChjb21tdXRh dGl2ZSA8IDApCi0gCWJyZWFrOwotLSAgICAgIGlmIChjdXJyX3N3YXBwZWQpCi0tCWJyZWFrOwot KyAgICAgIC8qIFN3YXAgZm9ydGggYW5kIGJhY2sgdG8gYXZvaWQgY2hhbmdpbmcgcmVjb2dfZGF0 YS4gICovCi0gICAgICAgc3RkOjpzd2FwIChyZWNvZ19kYXRhLm9wZXJhbmRbY29tbXV0YXRpdmVd LAotIAkJIHJlY29nX2RhdGEub3BlcmFuZFtjb21tdXRhdGl2ZSArIDFdKTsKLSsgICAgICBpZiAo Y3Vycl9zd2FwcGVkKQotKwlicmVhazsKLSAgICAgfQotIH0KLSAKCmRpZmYgLS1naXQgYS9nY2M2 LXByNjk2MjgucGF0Y2ggYi9nY2M2LXByNjk2MjgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDJhMDZkNTUuLjAwMDAwMDAKLS0tIGEvZ2NjNi1wcjY5NjI4LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotMjAxNi0wMi0wMyAgSmFrdWIgSmVsaW5layAgPGph a3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBjKysvNjk2MjgKLQkqIGNoYXJzZXQuYyAoY3BwX2ludGVy cHJldF9jaGFyY29uc3QpOiBDbGVhciAqUENIQVJTX1NFRU4KLQlhbmQgKlVOU0lHTkVEUCBpZiBi YWlsaW5nIG91dCBlYXJseSBkdWUgdG8gZXJyb3JzLgotCi0JKiBnKysuZGcvcGFyc2UvcHI2OTYy OC5DOiBOZXcgdGVzdC4KLQotLS0tIGxpYmNwcC9jaGFyc2V0LmMuamoJMjAxNi0wMS0wNCAxNTox NDowOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJjcHAvY2hhcnNldC5jCTIwMTYtMDItMDMgMTM6 NDQ6MDUuMTAwMTIwODk4ICswMTAwCi1AQCAtMTYyMCwxMCArMTYyMCwxNyBAQCBjcHBfaW50ZXJw cmV0X2NoYXJjb25zdCAoY3BwX3JlYWRlciAqcGZpCi0gICBpZiAodG9rZW4tPnZhbC5zdHIubGVu ID09IChzaXplX3QpICgyICsgd2lkZSArIHU4KSkKLSAgICAgewotICAgICAgIGNwcF9lcnJvciAo cGZpbGUsIENQUF9ETF9FUlJPUiwgImVtcHR5IGNoYXJhY3RlciBjb25zdGFudCIpOwotKyAgICAg ICpwY2hhcnNfc2VlbiA9IDA7Ci0rICAgICAgKnVuc2lnbmVkcCA9IDA7Ci0rICAgICAgcmV0dXJu IDA7Ci0rICAgIH0KLSsgIGVsc2UgaWYgKCFjcHBfaW50ZXJwcmV0X3N0cmluZyAocGZpbGUsICZ0 b2tlbi0+dmFsLnN0ciwgMSwgJnN0ciwKLSsJCQkJICB0b2tlbi0+dHlwZSkpCi0rICAgIHsKLSsg ICAgICAqcGNoYXJzX3NlZW4gPSAwOwotKyAgICAgICp1bnNpZ25lZHAgPSAwOwotICAgICAgIHJl dHVybiAwOwotICAgICB9Ci0tICBlbHNlIGlmICghY3BwX2ludGVycHJldF9zdHJpbmcgKHBmaWxl LCAmdG9rZW4tPnZhbC5zdHIsIDEsICZzdHIsIHRva2VuLT50eXBlKSkKLS0gICAgcmV0dXJuIDA7 Ci0gCi0gICBpZiAod2lkZSkKLSAgICAgcmVzdWx0ID0gd2lkZV9zdHJfdG9fY2hhcmNvbnN0IChw ZmlsZSwgc3RyLCBwY2hhcnNfc2VlbiwgdW5zaWduZWRwLAotLS0tIGdjYy90ZXN0c3VpdGUvZysr LmRnL3BhcnNlL3ByNjk2MjguQy5qagkyMDE2LTAyLTAzIDEzOjQ3OjU1LjMwMDA2MTExMCArMDEw MAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3BhcnNlL3ByNjk2MjguQwkyMDE2LTAyLTAzIDEz OjQ3OjMyLjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw1IEBACi0rLy8gUFIgYysrLzY5NjI4 Ci0rLy8geyBkZy1kbyBjb21waWxlIH0KLSsKLSswJyc7IC8vIHsgZGctZXJyb3IgImVtcHR5IGNo YXJhY3RlciBjb25zdGFudCIgfQotKy8vIHsgZGctZXJyb3IgImV4cGVjdGVkIHVucXVhbGlmaWVk LWlkIGJlZm9yZSBudW1lcmljIGNvbnN0YW50IiAiIiB7IHRhcmdldCAqLSotKiB9IDQgfQoKZGlm ZiAtLWdpdCBhL2djYzYtcHI2OTY5MS5wYXRjaCBiL2djYzYtcHI2OTY5MS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI4OTMxYi4uMDAwMDAwMAotLS0gYS9nY2M2LXByNjk2 OTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAotMjAxNi0wMi0wNSAgSmFr dWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBydGwtb3B0aW1pemF0aW9uLzY5 NjkxCi0JKiBscmEtZWxpbWluYXRpb25zLmMgKG1vdmVfcGx1c191cCk6IERvbid0IGFkZCB0aGUg YWRkZW5kIHR3aWNlLgotCi0JKiBnY2MuYy10b3J0dXJlL2V4ZWN1dGUvcHI2OTY5MS5jOiBOZXcg dGVzdC4KLQotLS0tIGdjYy9scmEtZWxpbWluYXRpb25zLmMuamoJMjAxNi0wMS0xNCAyMDo1Nzow My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvbHJhLWVsaW1pbmF0aW9ucy5jCTIwMTYtMDItMDUg MTY6NTQ6NDIuMTQyMDA0MjI0ICswMTAwCi1AQCAtMzAzLDcgKzMwMyw4IEBAIG1vdmVfcGx1c191 cCAocnR4IHgpCi0gCQkJCSBzdWJyZWdfbG93cGFydF9vZmZzZXQgKHhfbW9kZSwKLSAJCQkJCQkJ c3VicmVnX3JlZ19tb2RlKSk7Ci0gICAgICAgaWYgKGNzdCAmJiBDT05TVEFOVF9QIChjc3QpKQot LQlyZXR1cm4gZ2VuX3J0eF9QTFVTICh4X21vZGUsIGxvd3BhcnRfc3VicmVnICh4X21vZGUsIHN1 YnJlZ19yZWcsCi0rCXJldHVybiBnZW5fcnR4X1BMVVMgKHhfbW9kZSwgbG93cGFydF9zdWJyZWcg KHhfbW9kZSwKLSsJCQkJCQkgICAgIFhFWFAgKHN1YnJlZ19yZWcsIDApLAotIAkJCQkJCSAgICAg c3VicmVnX3JlZ19tb2RlKSwgY3N0KTsKLSAgICAgfQotICAgcmV0dXJuIHg7Ci0tLS0gZ2NjL3Rl c3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvcHI2OTY5MS5jLmpqCTIwMTYtMDItMDUgMTc6 MDg6MzEuNTgyNTU3MDMxICswMTAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4 ZWN1dGUvcHI2OTY5MS5jCTIwMTYtMDItMDUgMTc6MDg6MjQuMDAwMDAwMDAwICswMTAwCi1AQCAt MCwwICsxLDEyNyBAQAotKy8qIFBSIHJ0bC1vcHRpbWl6YXRpb24vNjk2OTEgKi8KLSsKLStjaGFy IHVbXSA9IHsgNDYsIDk3LCA5OSwgMTA0LCA1MiwgMCB9OwotK2NoYXIgKnZbXSA9IHsgdSwgMCB9 OwotK3N0cnVjdCBTIHsgY2hhciBhWzEwXTsgc3RydWN0IFMgKmJbMzFdOyB9OwotK3N0cnVjdCBT IHJbN10sICpyMiA9IHI7Ci0rc3RhdGljIHN0cnVjdCBTICp3ID0gMDsKLSsKLStfX2F0dHJpYnV0 ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIGludAotK2ZuIChpbnQgeCkKLSt7Ci0rICBpZiAoX19i dWlsdGluX3N0cmNociAodSwgeCkgfHwgeCA9PSA5NikKLSsgICAgcmV0dXJuIHg7Ci0rICBfX2J1 aWx0aW5fYWJvcnQgKCk7Ci0rfQotKwotK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25l KSkgaW50Ci0rZm9vIChjaGFyIHgpCi0rewotKyAgaWYgKHggPT0gMCkKLSsgICAgX19idWlsdGlu X2Fib3J0ICgpOwotKyAgaWYgKGZuICh4KSA+PSA5NiAmJiBmbiAoeCkgPD0gMTIyKQotKyAgICBy ZXR1cm4gKGZuICh4KSAtIDk2KTsKLSsgIGVsc2UgaWYgKHggPT0gNDYpCi0rICAgIHJldHVybiAw OwotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgX19idWlsdGluX3ByaW50ZiAoImZvbyAlZFxuIiwg eCk7Ci0rICAgICAgcmV0dXJuIC0xOwotKyAgICB9Ci0rfQotKwotK19fYXR0cmlidXRlX18oKG5v aW5saW5lLCBub2Nsb25lKSkgdm9pZAotK2JhciAoY2hhciAqKngpCi0rewotKyAgY2hhciAqKmIs IGMsICpkLCBlWzUwMF0sICpmLCBnWzEwXTsKLSsgIGludCB6LCBsLCBoLCBpOwotKyAgc3RydWN0 IFMgKnM7Ci0rCi0rICB3ID0gcjIrKzsKLSsgIGZvciAoYiA9IHg7ICpiOyBiKyspCi0rICAgIHsK LSsgICAgICBfX2J1aWx0aW5fc3RyY3B5IChlLCAqYik7Ci0rICAgICAgZiA9IGU7Ci0rICAgICAg ZG8KLSsJewotKwkgIGQgPSBfX2J1aWx0aW5fc3RyY2hyIChmLCAzMik7Ci0rCSAgaWYgKGQpCi0r CSAgICAqZCA9IDA7Ci0rCSAgbCA9IF9fYnVpbHRpbl9zdHJsZW4gKGYpOwotKwkgIGggPSAwOwot KwkgIHMgPSB3OwotKwkgIF9fYnVpbHRpbl9tZW1zZXQgKGcsIDAsIHNpemVvZiAoZykpOwotKwkg IGZvciAoeiA9IDA7IHogPCBsOyB6KyspCi0rCSAgICB7Ci0rCSAgICAgIGMgPSBmW3pdOwotKwkg ICAgICBpZiAoYyA+PSA0OCAmJiBjIDw9IDU3KQotKwkJZ1toXSA9IGMgLSA0ODsKLSsJICAgICAg ZWxzZQotKwkJewotKwkJICBpID0gZm9vIChjKTsKLSsJCSAgaWYgKCFzLT5iW2ldKQotKwkJICAg IHsKLSsJCSAgICAgIHMtPmJbaV0gPSByMisrOwotKwkJICAgICAgaWYgKHIyID09ICZyWzddKQot KwkJCV9fYnVpbHRpbl9hYm9ydCAoKTsKLSsJCSAgICB9Ci0rCQkgIHMgPSBzLT5iW2ldOwotKwkJ ICBoKys7Ci0rCQl9Ci0rCSAgICB9Ci0rCSAgX19idWlsdGluX21lbWNweSAocy0+YSwgZywgMTAp OwotKwkgIGlmIChkKQotKwkgICAgZiA9IGQgKyAxOwotKwl9Ci0rICAgICAgd2hpbGUgKGQpOwot KyAgICB9Ci0rfQotKwotK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgdm9pZAot K2JheiAoY2hhciAqeCkKLSt7Ci0rICBjaGFyIGFbMzAwXSwgYlszMDBdOwotKyAgaW50IHosIHks IHQsIGw7Ci0rICBzdHJ1Y3QgUyAqczsKLSsKLSsgIGwgPSBfX2J1aWx0aW5fc3RybGVuICh4KTsK LSsgICphID0gOTY7Ci0rICBmb3IgKHogPSAwOyB6IDwgbDsgeisrKQotKyAgICB7Ci0rICAgICAg YVt6ICsgMV0gPSBmbiAoKHVuc2lnbmVkIGludCkgeFt6XSk7Ci0rICAgICAgaWYgKGZvbyAoYVt6 ICsgMV0pIDw9IDApCi0rCXJldHVybjsKLSsgICAgfQotKyAgYVtsICsgMV0gPSA5NjsKLSsgIGwg Kz0gMjsKLSsgIF9fYnVpbHRpbl9tZW1zZXQgKGIsIDAsIGwgKyAyKTsKLSsKLSsgIGlmICghdykK LSsgICAgcmV0dXJuOwotKwotKyAgZm9yICh6ID0gMDsgeiA8IGw7IHorKykKLSsgICAgewotKyAg ICAgIHMgPSB3OwotKyAgICAgIGZvciAoeSA9IHo7IHkgPCBsOyB5KyspCi0rCXsKLSsJICBzID0g cy0+Yltmb28gKGFbeV0pXTsKLSsJICBpZiAoIXMpCi0rCSAgICBicmVhazsKLSsJICBmb3IgKHQg PSAwOyB0IDw9IHkgLSB6ICsgMjsgdCsrKQotKwkgICAgaWYgKHMtPmFbdF0gPiBiW3ogKyB0XSkK LSsJICAgICAgYlt6ICsgdF0gPSBzLT5hW3RdOwotKwl9Ci0rICAgIH0KLSsgIGZvciAoeiA9IDM7 IHogPCBsIC0gMjsgeisrKQotKyAgICBpZiAoKGJbel0gJiAxKSA9PSAxKQotKyAgICAgYXNtICgi Iik7Ci0rfQotKwotK2ludAotK21haW4gKCkKLSt7Ci0rICBiYXIgKHYpOwotKyAgY2hhciBjW10g PSB7IDk3LCA5NywgOTcsIDk3LCA5NywgMCB9OwotKyAgYmF6IChjKTsKLSsgIHJldHVybiAwOwot K30KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA5YjRjY2FlLi41YzAzMTE2 IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLThmM2Y5NTBl NzVkZGRlNmI4N2M3MTA5NmM2NDVlZmI4ICBnY2MtNi4wLjAtMjAxNjAyMDUudGFyLmJ6MgorOWFk ZDJmNTFkZDNkNGM5M2MxMzgwMWZhZGZkOGZiNmUgIGdjYy02LjAuMC0yMDE2MDIxMi50YXIuYnoy Cg==