PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPXzJORDwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPXzJORDwvYj4gbWFjcm8gcmVwcmVzZW50cyB0aGUgc2Vjb25kIGRpbWVuc2lvbiBvZiA8Yj5CT09TVF9QUF9SRVBFQVRfRlJPTV9UTzwvYj4uCgk8L2Rpdj4KCTxoND5Vc2FnZTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX1JFUEVBVF9GUk9NX1RPXzJORDwvYj4oPGk+Zmlyc3Q8L2k+LCA8aT5sYXN0PC9pPiwgPGk+bWFjcm88L2k+LCA8aT5kYXRhPC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0PmZpcnN0PC9kdD4KCQkJPGRkPgoJCQkJVGhlIGxvd2VyIGJvdW5kIG9mIHRoZSByZXBldGl0aW9uLiZuYnNwOwoJCQkJVmFsaWQgdmFsdWVzIHJhbmdlIGZyb20gPGk+MDwvaT4gdG8gPGI+Qk9PU1RfUFBfTElNSVRfTUFHPC9iPi4KCQkJPC9kZD4KCQkJPGR0Pmxhc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHJlcGV0aXRpb24uCgkJCQlWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSA8aT4wPC9pPiB0byA8Yj5CT09TVF9QUF9MSU1JVF9NQUc8L2I+LgoJCQk8L2RkPgoJCQk8ZHQ+bWFjcm88L2R0PgoJCQk8ZGQ+CgkJCQlBIHRlcm5hcnkgb3BlcmF0aW9uIG9mIHRoZSBmb3JtIDxpPm1hY3JvPC9pPig8aT56PC9pPiwgPGk+bjwvaT4sIDxpPmRhdGE8L2k+KS4mbmJzcDsKCQkJCVRoaXMgbWFjcm8gaXMgZXhwYW5kZWQgYnkgPGI+Qk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fMk5EPC9iPiB3aXRoIHRoZSBuZXh0IGF2YWlsYWJsZSByZXBldGl0aW9uIGRlcHRoLAoJCQkJdGhlIGN1cnJlbnQgcmVwZXRpdGlvbiBudW1iZXIsIGFuZCB0aGUgYXV4aWxpYXJ5IDxpPmRhdGE8L2k+IGFyZ3VtZW50LiZuYnNwOwoJCQk8L2RkPgoJCQk8ZHQ+ZGF0YTwvZHQ+CgkJCTxkZD4KCQkJCUF1eGlsaWFyeSBkYXRhIHBhc3NlZCB0byA8aT5tYWNybzwvaT4uCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIGV4cGFuZHMgdG8gdGhlIHNlcXVlbmNlOgoJCQk8ZGl2PgoJCQkJPGk+bWFjcm88L2k+KDxpPno8L2k+LCA8aT5maXJzdDwvaT4sIDxpPmRhdGE8L2k+KSA8aT5tYWNybzwvaT4oPGk+ejwvaT4sIDxpPmZpcnN0PC9pPiArIDxpPjE8L2k+LCA8aT5kYXRhPC9pPikgLi4uIDxpPm1hY3JvPC9pPig8aT56PC9pPiwgPGk+bGFzdDwvaT4gLSA8aT4xPC9pPiwgPGk+ZGF0YTwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXY+CgkJCVRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMgKGkuZS4gPGk+bGFzdDwvaT4gLSA8aT5maXJzdDwvaT4pIG11c3Qgbm90IGV4Y2VlZCA8Yj5CT09TVF9QUF9MSU1JVF9SRVBFQVQ8L2I+LgoJCTwvZGl2PgoJCTxkaXY+CgkJCVRoZSA8aT56PC9pPiB2YWx1ZSB0aGF0IGlzIHBhc3NlZCB0byA8aT5tYWNybzwvaT4gcmVwcmVzZW50cyB0aGUgbmV4dCBhdmFpbGFibGUgcmVwZXRpdGlvbiBkaW1lbnNpb24uJm5ic3A7CgkJCU90aGVyIG1hY3JvcyB0aGF0IGhhdmUgPGI+X1o8L2I+IHN1ZmZpeCB2YXJpYW50cyBpbnRlcm5hbGx5IHVzZSA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+LS1mb3IgZXhhbXBsZSwgPGI+Qk9PU1RfUFBfRU5VTV9QQVJBTVM8L2I+IGFuZCA8Yj5CT09TVF9QUF9FTlVNX1BBUkFNU19aPC9iPi4mbmJzcDsKCQkJVXNpbmcgdGhlc2UgPGI+X1o8L2I+IHZlcnNpb25zIGlzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGJ1dCBwYXNzaW5nIHRoZSA8aT56PC9pPiB2YWx1ZSAodGhhdCBpcyBwYXNzZWQgdG8gPGk+bWFjcm88L2k+KSB0byB0aGVzZSBtYWNyb3MgYWxsb3dzIHRoZW0gdG8gcmVlbnRlciA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJCTwvZGl2PgoJCTxkaXY+CgkJCVRvIGRpcmVjdGx5IHVzZSB0aGlzIDxpPno8L2k+IHZhbHVlLCByYXRoZXIgdGhhbiBzaW1wbHkgcGFzc2luZyBpdCB0byBhbm90aGVyIG1hY3JvLCBzZWUgPGI+Qk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fPGk+ejwvaT48L2I+LgoJCTwvZGl2PgoJCTxkaXY+CgkJCVRoaXMgbWFjcm8gaXMgZGVwcmVjYXRlZC4mbmJzcDsKCQkJSXQgb25seSBleGlzdHMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuJm5ic3A7CgkJCVVzZSA8Yj5CT09TVF9QUF9SRVBFQVRfRlJPTV9UTzwvYj4gaW5zdGVhZC4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGltaXRfbWFnLmh0bWwiPkJPT1NUX1BQX0xJTUlUX01BRzwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0ibGltaXRfcmVwZWF0Lmh0bWwiPkJPT1NUX1BQX0xJTUlUX1JFUEVBVDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0icmVwZWF0X2Zyb21fdG9fei5odG1sIj5CT09TVF9QUF9SRVBFQVRfRlJPTV9UT188aT56PC9pPjwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL3JlcGV0aXRpb24vcmVwZWF0X2Zyb21fdG8uaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdF9mcm9tX3RvLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL3JlcGV0aXRpb24vcmVwZWF0X2Zyb21fdG8uaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0X2Zyb21fdG8uaHBwPC9hPiZndDsKCiNkZWZpbmUgTUFDUk8oeiwgbiwgZGF0YSkgKG4pCgo8YSBocmVmPSJyZXBlYXRfZnJvbV90b18ybmQuaHRtbCI+Qk9PU1RfUFBfUkVQRUFUX0ZST01fVE9fMk5EPC9hPigxLCA2LCBNQUNSTywgbmlsKQogICAvLyBleHBhbmRzIHRvICgxKSAoMikgKDMpICg0KSAoNSkKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=