ZGlmZiAtLWdpdCBhL2RvYy9yZWYvaW5jbHVkZV9zZWxmLmh0bWwgYi9kb2MvcmVmL2luY2x1ZGVfc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMTNjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvcmVmL2luY2x1ZGVfc2VsZi5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8aHRtbD4KKzxoZWFkPgorCTx0aXRsZT5CT09TVF9QUF9JTkNMVURFX1NFTEY8L3RpdGxlPgorCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgorPC9oZWFkPgorPGJvZHk+CisJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KKwkJVGhlIDxiPkJPT1NUX1BQX0lOQ0xVREVfU0VMRjwvYj4gbWFjcm8gaW5jbHVkZXMgYSBmaWxlIGluZGlyZWN0bHkuCisJPC9kaXY+CisJPGg0PlVzYWdlPC9oND4KKwkJPGRpdiBjbGFzcz0iY29kZSI+CisJCQkjaW5jbHVkZSA8Yj5CT09TVF9QUF9JTkNMVURFX1NFTEY8L2I+KCkKKwkJPC9kaXY+CisJPGg0PkFyZ3VtZW50czwvaDQ+CisJCTxkbD4KKwkJCTxkdD5maWxlbmFtZTwvZHQ+CisJCQk8ZGQ+CisJCQkJQSBxdW90ZWQgb3IgYW5nbGUtYnJhY2tldGVkIGZpbGVuYW1lIHRvIGJlIGluY2x1ZGVkIGJ5IDxiPkJPT1NUX1BQX0lOQ0xVREVfU0VMRjwvYj4uCisJCQk8L2RkPgorCQk8L2RsPgorCTxoND5SZW1hcmtzPC9oND4KKwkJPGRpdj4KKwkJCTxiPkJPT1NUX1BQX0lORElSRUNUX1NFTEY8L2I+IG11c3QgYmUgZGVmaW5lZCBwcmlvciB0byB1c2luZyB0aGlzIG1hY3JvLgorCQk8L2Rpdj4KKwkJPGRpdj4KKwkJCU1vc3QgcHJlcHJvY2Vzc29ycyB3aWxsIG5vdCBhbGxvdyBhIGZpbGUgdG8gZGlyZWN0bHkgaW5jbHVkZSBpdHNlbGYtLWV2ZW4gd2hlbiB0aGUgZmlsZSBwcm90ZWN0cyBpdHNlbGYgZnJvbSBzdWNoIGEgc2NlbmFyaW8uJm5ic3A7CisJCQlUaGlzIG1hY3JvLCBpbiBjb21iaW5hdGlvbiB3aXRoIDxiPkJPT1NUX1BQX0lORElSRUNUX1NFTEY8L2I+IGFsbG93cyBhIGZpbGUgdG8gaW5jbHVkZSBpdHNlbGYgaW5kaXJlY3RseS4KKwkJPC9kaXY+CisJCTxkaXY+CisJCQlXaGlsZSA8Yj5CT09TVF9QUF9JTkRJUkVDVF9TRUxGPC9iPiBpcyBiZWluZyBpbmNsdWRlZCwgPGI+Qk9PU1RfUFBfSU5DTFVERV9TRUxGPC9iPiBkZWZpbmVzIHRoZSBtYWNybyA8Yj5CT09TVF9QUF9JU19TRUxGSVNIPC9iPiB0byA8aT4xPC9pPi4mbmJzcDsKKwkJCVdoZW4gaXQgcmV0dXJucyBmcm9tIHRoZSBpbmNsdXNpb24sIDxiPkJPT1NUX1BQX0lTX1NFTEZJU0g8L2I+IGlzIHVuZGVmaW5lZC4KKwkJPC9kaXY+CisJPGg0PlNlZSBBbHNvPC9oND4KKwkJPHVsPgorCQkJPGxpPjxhIGhyZWY9ImluZGlyZWN0X3NlbGYuaHRtbCI+Qk9PU1RfUFBfSU5ESVJFQ1RfU0VMRjwvYT48L2xpPgorCQkJPGxpPjxhIGhyZWY9ImlzX3NlbGZpc2guaHRtbCI+Qk9PU1RfUFBfSVNfU0VMRklTSDwvYT48L2xpPgorCQk8L3VsPgorCTxoND5SZXF1aXJlbWVudHM8L2g0PgorCQk8ZGl2PgorCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9pdGVyYXRpb24vc2VsZi5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9zZWxmLmhwcCZndDs8L2E+CisJCTwvZGl2PgorCTxoND5TYW1wbGUgQ29kZTwvaDQ+Cis8ZGl2PjxwcmU+CisvLyBmaWxlLmgKKyNpZiAhPGEgaHJlZj0iaXNfc2VsZmlzaC5odG1sIj5CT09TVF9QUF9JU19TRUxGSVNIPC9hPgorCisgICAjaWZuZGVmIEZJTEVfSF8KKyAgICNkZWZpbmUgRklMRV9IXworCisgICAjaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9pdGVyYXRpb24vc2VsZi5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL3NlbGYuaHBwPC9hPiZndDsKKworICAgI2RlZmluZSBOQU1FIFgKKyAgIHN0cnVjdCBOQU1FIHsKKyAgICAgIC8vIC4uLgorICAgICAgI2RlZmluZSA8YSBocmVmPSJpbmRpcmVjdF9zZWxmLmh0bWwiPkJPT1NUX1BQX0lORElSRUNUX1NFTEY8L2E+ICJmaWxlLmgiCisgICAgICAjaW5jbHVkZSA8YSBocmVmPSJpbmNsdWRlX3NlbGYuaHRtbCI+Qk9PU1RfUFBfSU5DTFVERV9TRUxGPC9hPigpCisgICB9OworCisgICAjZGVmaW5lIE5BTUUgWQorICAgc3RydWN0IE5BTUUgeworICAgICAgLy8gLi4uCisgICAgICAjZGVmaW5lIDxhIGhyZWY9ImluZGlyZWN0X3NlbGYuaHRtbCI+Qk9PU1RfUFBfSU5ESVJFQ1RfU0VMRjwvYT4gImZpbGUuaCIKKyAgICAgICNpbmNsdWRlIDxhIGhyZWY9ImluY2x1ZGVfc2VsZi5odG1sIj5CT09TVF9QUF9JTkNMVURFX1NFTEY8L2E+KCkKKyAgIH07CisKKyAgICNkZWZpbmUgTkFNRSBaCisgICBzdHJ1Y3QgTkFNRSB7CisgICAgICAvLyAuLi4KKyAgICAgICNkZWZpbmUgPGEgaHJlZj0iaW5kaXJlY3Rfc2VsZi5odG1sIj5CT09TVF9QUF9JTkRJUkVDVF9TRUxGPC9hPiAiZmlsZS5oIgorICAgICAgI2luY2x1ZGUgPGEgaHJlZj0iaW5jbHVkZV9zZWxmLmh0bWwiPkJPT1NUX1BQX0lOQ0xVREVfU0VMRjwvYT4oKQorICAgfTsKKworICAgI2VuZGlmCisKKyNlbHNlCisKKyAgICAgIGlubGluZSBib29sIHZhbGlkYXRlKE5BTUUqIHApIHsKKyAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorCisgICAgICB0ZW1wbGF0ZSZsdDtjbGFzcyBUJmd0OyBib29sIHZhbGlkYXRlKFQqIHApIHsKKyAgICAgICAgIHJldHVybiBkeW5hbWljX2Nhc3QmbHQ7TkFNRSomZ3Q7KHApOworICAgICAgfQorCisgICAjdW5kZWYgTkFNRQorCisjZW5kaWYKKzwvcHJlPjwvZGl2PgorCTxociBzaXplPSIxIj4KKwk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CisJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgorCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgorCTwvZGl2PgorCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KKwkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKKwkJY29weSBhdCA8YSBocmVmPQorCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+CisJPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==