PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfUkVTVF9OPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfTElTVF9SRVNUX048L2I+IG1hY3JvIGV4cGFuZHMgdG8gYSA8aT5saXN0PC9pPiBvZiBhbGwgYnV0IHRoZSBmaXJzdCA8aT5jb3VudDwvaT4gZWxlbWVudHMgb2YgYSA8aT5saXN0PC9pPi4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfTElTVF9SRVNUX048L2I+KDxpPmNvdW50PC9pPiwgPGk+bGlzdDwvaT4pCgkJPC9kaXY+Cgk8aDQ+QXJndW1lbnRzPC9oND4KCQk8ZGw+CgkJCTxkdD5jb3VudDwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gcmVtb3ZlIGZyb20gdGhlIGJlZ2lubmluZyBvZiA8aT5saXN0PC9pPi4KCQkJPC9kZD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gZnJvbSB3aGljaCB0aGUgZWxlbWVudHMgYXJlIGV4dHJhY3RlZC4KCQkJPC9kZD4KCQk8L2RsPgoJPGg0PlJlbWFya3M8L2g0PgoJCTxkaXY+CgkJCVRoaXMgbWFjcm8gcmVtb3ZlcyA8aT5jb3VudDwvaT4gZWxlbWVudHMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIDxpPmxpc3Q8L2k+IGFuZCByZXR1cm5zIHRoZSByZW1haW5kZXIgYXMgYSA8aT5saXN0PC9pPgoJCTwvZGl2PgoJCTxkaXY+CgkJCVByZXZpb3VzbHksIHRoaXMgbWFjcm8gY291bGQgbm90IGJlIHVzZWQgaW5zaWRlIDxiPkJPT1NUX1BQX1dISUxFPC9iPi4mbmJzcDsKCQkJVGhlcmUgaXMgbm8gbG9uZ2VyIGFueSBzdWNoIHJlc3RyaWN0aW9uLiZuYnNwOwoJCQlJdCBpcyBtb3JlIGVmZmljaWVudCwgaG93ZXZlciwgdG8gdXNlIDxiPkJPT1NUX1BQX0xJU1RfUkVTVF9OX0Q8L2I+IGluIHN1Y2ggYSBzaXR1YXRpb24uCgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9Imxpc3RfcmVzdF9uX2QuaHRtbCI+Qk9PU1RfUFBfTElTVF9SRVNUX05fRDwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvcmVzdF9uLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9yZXN0X24uaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9yZXN0X24uaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvcmVzdF9uLmhwcDwvYT4mZ3Q7CgojZGVmaW5lIExJU1QgKGEsIChiLCAoYywgKGQsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpKQoKPGEgaHJlZj0ibGlzdF9yZXN0X24uaHRtbCI+Qk9PU1RfUFBfTElTVF9SRVNUX048L2E+KDIsIExJU1QpIC8vIGV4cGFuZHMgdG8gKGMsIChkLCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K