PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX01PRF9EPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfTU9EX0Q8L2I+IG1hY3JvIGV4cGFuZHMgdG8gdGhlIG1vZHVsdXMgb2YgaXRzIHNlY29uZCBhbmQgdGhpcmQgYXJndW1lbnRzLiZuYnNwOwoJCUl0IHJlZW50ZXJzIDxiPkJPT1NUX1BQX1dISUxFPC9iPiB3aXRoIG1heGltdW0gZWZmaWNpZW5jeS4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfTU9EX0Q8L2I+KDxpPmQ8L2k+LCA8aT54PC9pPiwgPGk+eTwvaT4pCgkJPC9kaXY+Cgk8aDQ+QXJndW1lbnRzPC9oND4KCQk8ZGw+CgkJCTxkdD5kPC9kdD4KCQkJPGRkPgoJCQkJVGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24uJm5ic3A7CgkJCTwvZGQ+CgkJCTxkdD54PC9kdD4KCQkJPGRkPgoJCQkJVGhlIGRpdmlkZW5kIChudW1lcmF0b3IpIG9mIHRoZSBvcGVyYXRpb24uJm5ic3A7CgkJCQlWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSA8aT4wPC9pPiB0byA8Yj5CT09TVF9QUF9MSU1JVF9NQUc8L2I+LgoJCQk8L2RkPgoJCQk8ZHQ+eTwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBkaXZpc29yIChkZW5vbWluYXRvcikgb2YgdGhlIG9wZXJhdGlvbi4mbmJzcDsKCQkJCVZhbGlkIHZhbHVlcyByYW5nZSBmcm9tIDxpPjE8L2k+IHRvIDxiPkJPT1NUX1BQX0xJTUlUX01BRzwvYj4uCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlJZiA8aT55PC9pPiBpcyA8aT4wPC9pPiwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9ImxpbWl0X21hZy5odG1sIj5CT09TVF9QUF9MSU1JVF9NQUc8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Im1vZC5odG1sIj5CT09TVF9QUF9NT0Q8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9hcml0aG1ldGljL2Rpdi5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGl2LmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2FyaXRobWV0aWMvbW9kLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL21vZC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2ZpbHRlci5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9maWx0ZXIuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbG9naWNhbC9ub3QuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvbm90LmhwcDwvYT4mZ3Q7CgojZGVmaW5lIExJU1QgKDEsICgyLCAoMywgKDQsICg1LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKSkpCgojZGVmaW5lIEVWRU5fUChkLCBfLCBudW0pIDxhIGhyZWY9Im5vdC5odG1sIj5CT09TVF9QUF9OT1Q8L2E+KDxhIGhyZWY9Im1vZF9kLmh0bWwiPkJPT1NUX1BQX01PRF9EPC9hPihkLCBudW0sIDIpKQojZGVmaW5lIEVWRU4obGlzdCkgPGEgaHJlZj0ibGlzdF9maWx0ZXIuaHRtbCI+Qk9PU1RfUFBfTElTVF9GSUxURVI8L2E+KEVWRU5fUCwgbmlsLCBsaXN0KQoKRVZFTihMSVNUKSAvLyBleHBhbmRzIHRvICgyLCAoNCwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKQoKI2RlZmluZSBPRERfUChkLCBfLCBudW0pIDxhIGhyZWY9Im1vZF9kLmh0bWwiPkJPT1NUX1BQX01PRF9EPC9hPihkLCBudW0sIDIpCiNkZWZpbmUgT0REKGxpc3QpIDxhIGhyZWY9Imxpc3RfZmlsdGVyLmh0bWwiPkJPT1NUX1BQX0xJU1RfRklMVEVSPC9hPihPRERfUCwgbmlsLCBsaXN0KQoKT0REKExJU1QpIC8vIGV4cGFuZHMgdG8gKDEsICgzLCAoNSwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=