PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0FSUkFZX1BPUF9GUk9OVF9aPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfQVJSQVlfUE9QX0ZST05UX1o8L2I+IG1hY3JvIHBvcHMgYW4gZWxlbWVudCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgYW4gPGk+YXJyYXk8L2k+LiZuYnNwOwoJCUl0IHJlZW50ZXJzIDxiPkJPT1NUX1BQX1JFUEVBVDwvYj4gd2l0aCBtYXhpbXVtIGVmZmljaWVuY3kuCgk8L2Rpdj4KCTxoND5Vc2FnZTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCTxiPkJPT1NUX1BQX0FSUkFZX1BPUF9GUk9OVF9aPC9iPig8aT56PC9pPiwgPGk+YXJyYXk8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+ejwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBuZXh0IGF2YWlsYWJsZSA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+IGRpbWVuc2lvbi4KCQkJPC9kZD4KCQkJPGR0PmFycmF5PC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPmFycmF5PC9pPiB0byBwb3AgYW4gZWxlbWVudCBmcm9tLgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyByZXR1cm5zIDxpPmFycmF5PC9pPiBhZnRlciByZW1vdmluZyB0aGUgZmlyc3QgZWxlbWVudC4mbmJzcDsKCQkJSWYgPGk+YXJyYXk8L2k+IGhhcyBubyBlbGVtZW50cywgdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGlzIG1hY3JvIGlzIHVuZGVmaW5lZC4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0iYXJyYXlfcG9wX2Zyb250Lmh0bWwiPkJPT1NUX1BQX0FSUkFZX1BPUF9GUk9OVDwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2FycmF5L3BvcF9mcm9udC5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L3BvcF9mcm9udC5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K