PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVDwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVDwvYj4gbWFjcm8gZm9sZHMgKG9yIGFjY3VtdWxhdGVzKSB0aGUgZWxlbWVudHMgb2YgYSA8aT5saXN0PC9pPiByaWdodC10by1sZWZ0LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX0ZPTERfUklHSFQ8L2I+KDxpPm9wPC9pPiwgPGk+c3RhdGU8L2k+LCA8aT5saXN0PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0Pm9wPC9kdD4KCQkJPGRkPgoJCQkJQSB0ZXJuYXJ5IG9wZXJhdGlvbiBvZiB0aGUgZm9ybSA8aT5vcDwvaT4oPGk+ZDwvaT4sIDxpPnN0YXRlPC9pPiwgPGk+ZWxlbTwvaT4pLiZuYnNwOwoJCQkJVGhpcyBtYWNybyBpcyBjYWxsZWQgZm9yIGVhY2ggZWxlbWVudCBpbiA8aT5saXN0PC9pPi0tZWFjaCB0aW1lIHJldHVybmluZyBhIG5ldyA8aT5zdGF0ZTwvaT4uJm5ic3A7CgkJCQlUaGlzIG9wZXJhdGlvbiBpcyBleHBhbmRlZCBieSA8Yj5CT09TVF9QUF9MSVNUX0ZPTERfUklHSFQ8L2I+IHdpdGggdGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24sCgkJCQl0aGUgY3VycmVudCA8aT5zdGF0ZTwvaT4sIGFuZCB0aGUgY3VycmVudCBlbGVtZW50LgoJCQk8L2RkPgoJCQk8ZHQ+c3RhdGU8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZm9sZC4KCQkJPC9kZD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gdG8gYmUgZm9sZGVkLgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIHNpZ25hdHVyZSBhcyBpdCBwcmV2aW91c2x5IGRpZC4mbmJzcDsKCQkJVGhlIGFyZ3VtZW50cyBoYXZlIGJlZW4gc3dhcHBlZCB0byBwcm92aWRlIGEgdW5pZm9ybSBpbnRlcmZhY2Ugd2l0aCA8Yj5CT09TVF9QUF9MSVNUX0ZPTERfTEVGVDwvYj4uCgkJPC9kaXY+CgkJPGRpdj4KCQkJRm9yIHRoZSA8aT5saXN0PC9pPiwgKDxpPjA8L2k+LCAoPGk+MTwvaT4sICg8aT4yPC9pPiwgPGI+Qk9PU1RfUFBfTklMPC9iPikpKSwgdGhpcyBtYWNybyBleHBhbmRzIHRvOgoJCQk8ZGl2PgoJCQkJPGk+b3A8L2k+KDxpPmQ8L2k+LCA8aT5vcDwvaT4oPGk+ZDwvaT4sIDxpPm9wPC9pPig8aT5kPC9pPiwgPGk+c3RhdGU8L2k+LCA8aT4yPC9pPiksIDxpPjE8L2k+KSwgPGk+MDwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXY+CgkJCVByZXZpb3VzbHksIHRoaXMgbWFjcm8gY291bGQgbm90IGJlIHVzZWQgaW5zaWRlIDxiPkJPT1NUX1BQX1dISUxFPC9iPi4mbmJzcDsKCQkJVGhlcmUgaXMgbm8gbG9uZ2VyIGFueSBzdWNoIHJlc3RyaWN0aW9uLiZuYnNwOwoJCQlJdCBpcyBtb3JlIGVmZmljaWVudCwgaG93ZXZlciwgdG8gdXNlIDxiPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF88aT5kPC9pPjwvYj4gaW4gc3VjaCBhIHNpdHVhdGlvbi4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGlzdF9mb2xkX3JpZ2h0X2QuaHRtbCI+Qk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzxpPmQ8L2k+PC9hPjwvbGk+CgkJPC91bD4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9mb2xkX3JpZ2h0Lmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2NhdC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcDwvYT4mZ3Q7CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvZm9sZF9yaWdodC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcDwvYT4mZ3Q7CgojZGVmaW5lIExJU1QgKGEsIChiLCAoYywgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkKCiNkZWZpbmUgT1AoZCwgc3RhdGUsIHgpIDxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+KHN0YXRlLCB4KQoKPGEgaHJlZj0ibGlzdF9mb2xkX3JpZ2h0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVDwvYT4oT1AsIF8sIExJU1QpIC8vIGV4cGFuZHMgdG8gX2NiYQo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==