PGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+Qk9PU1RfUFBfU0VRX0VOVU08L3RpdGxlPgoJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQkJVGhlIDxiPkJPT1NUX1BQX1NFUV9FTlVNPC9iPiBtYWNybyBlbnVtZXJhdGVzIHRoZSBlbGVtZW50cyBpbiBhIDxpPnNlcTwvaT4uCgkJPC9kaXY+CgkJPGg0PgoJCQlVc2FnZQoJCTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX1NFUV9FTlVNPC9iPig8aT5zZXE8L2k+KQoJCTwvZGl2PgoJCTxoND4KCQkJQXJndW1lbnRzCgkJPC9oND4KCQk8ZGw+CgkJCTxkdD5zZXE8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+c2VxPC9pPiBmcm9tIHdob3NlIGVsZW1lbnRzIGFyZSB0byBiZSBlbnVtZXJhdGVkLgoJCQk8L2RkPgoJCTwvZGw+CgkJPGg0PgoJCQlSZW1hcmtzCgkJPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIGV4cGFuZHMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgZWxlbWVudHMgaW4gPGk+c2VxPC9pPi4mbmJzcDsgCgkJCUZvciBleGFtcGxlLCA8Yj5CT09TVF9QUF9TRVFfRU5VTTwvYj4oKDxpPng8L2k+KSg8aT55PC9pPikoPGk+ejwvaT4pKSBleHBhbmRzIAoJCQl0by4uLgoJCQk8ZGl2PgoJCQkJPGk+eDwvaT4sIDxpPnk8L2k+LCA8aT56PC9pPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCQk8aDQ+CgkJCVJlcXVpcmVtZW50cwoJCTwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9zZXEvZW51bS5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcCZndDs8L2E+CgkJPC9kaXY+CgkJPGg0PgoJCQlTYW1wbGUgQ29kZQoJCTwvaDQ+CgkJPGRpdj4KCQkJPHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvc2VxL2VudW0uaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL3NlcS9lbnVtLmhwcDwvYT4mZ3Q7CgojZGVmaW5lIFNFUSAoQikoTykoTykoUykoVCkKCjxhIGhyZWY9InNlcV9lbnVtLmh0bWwiPkJPT1NUX1BQX1NFUV9FTlVNPC9hPihTRVEpIC8vIGV4cGFuZHMgdG8gQiwgTywgTywgUywgVAo8L3ByZT4KCQk8L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPgo=