PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPlRoZSBzaW5nbGUtaGVhZGVyIHZhcmlhbnQgb2YgdGhlIFVURjwvdGl0bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vc3R5bGUvc3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCI+CjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgdGl0bGU9IkJvb3N0IFRlc3QgTGlicmFyeSI+CjxsaW5rIHJlbD0idXAiIGhyZWY9Ii4uL3VzYWdlLXZhcmlhbnRzLmh0bWwiIHRpdGxlPSJUaGUgVVRGIHVzYWdlIHZhcmlhbnRzIG9yIHRoZSBCdXJpZGFuJ3MgZG9ua2V5IHBhcmFibGUiPgo8bGluayByZWw9InByZXYiIGhyZWY9ImR5bmFtaWMtbGliLXZhcmlhbnQuaHRtbCIgdGl0bGU9IlRoZSBkeW5hbWljIGxpYnJhcnkgdmFyaWFudCBvZiB0aGUgVVRGIj4KPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJleHRlcm4tdGVzdC1ydW5uZXItdmFyaWFudC5odG1sIiB0aXRsZT0iVGhlIGV4dGVybmFsIHRlc3QgcnVubmVyIHZhcmlhbnQgb2YgdGhlIFVURiI+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQxLjIiIHNyYz0iLi4vLi4vLi4vLi4vanMvYm9vc3QtdGVzdC5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgo8dGFibGUgd2lkdGg9IjEwMCUiPjx0cj4KPHRkIHdpZHRoPSIxMCUiPjxhIGhyZWY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiPjxpbWcgYWx0PSJIb21lIiB3aWR0aD0iMjI5IiBoZWlnaHQ9IjYxIiBib3JkZXI9IjAiIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZXN0L2RvY2Jvb2svaW1nL2Jvb3N0LnRlc3QubG9nby5wbmciPjwvYT48L3RkPgo8dGQgdmFsaWduPSJtaWRkbGUiIGFsaWduPSJsZWZ0Ij4gJmd0OyA8YSBocmVmPSIuLi8uLi8uLi91dGYuaHRtbCI+VGhlIFVuaXQgVGVzdCBGcmFtZXdvcms8L2E+ICZndDsgPGEgaHJlZj0iLi4vLi4vdXNlci1ndWlkZS5odG1sIj5Vc2VyJ3MgZ3VpZGU8L2E+PGEgaHJlZj0iLi4vLi4vdGVzdGluZy10b29scy5odG1sIj4KICAgICAgJmd0OwogICAgICA8L2E+PGEgaHJlZj0iLi4vdXNhZ2UtdmFyaWFudHMuaHRtbCI+VXNhZ2UgdmFyaWFudHM8L2E+PGEgaHJlZj0iLi4vdGVzdC1ydW5uZXJzLmh0bWwiPgogICAgICAmZ3Q7CiAgICAgIDwvYT48Yj5TaW5nbGUgaGVhZGVyPC9iPgo8L3RkPgo8dGQ+PGRpdiBjbGFzcz0ic3Bpcml0LW5hdiI+CjxhIGhyZWY9ImR5bmFtaWMtbGliLXZhcmlhbnQuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgaHJlZj0iZXh0ZXJuLXRlc3QtcnVubmVyLXZhcmlhbnQuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+CjwvZGl2PjwvdGQ+CjwvdHI+PC90YWJsZT4KPGhyPgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNSBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJ1dGYudXNlci1ndWlkZS5zaW5nbGUtaGVhZGVyLXZhcmlhbnQiPjwvYT5UaGUgc2luZ2xlLWhlYWRlciB2YXJpYW50IG9mIHRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPgo8L2g1PjwvZGl2PjwvZGl2PjwvZGl2Pgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICBJZiB5b3UgcHJlZmVyIHRvIGF2b2lkIHRoZSA8YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vLi4vY29tcGlsYXRpb24vc3RhbmRhbG9uZS5odG1sIiB0aXRsZT0iU3RhbmRhbG9uZSBsaWJyYXJ5IGNvbXBpbGF0aW9uIj5zdGFuZGFsb25lIGxpYnJhcnkgY29tcGlsYXRpb248L2E+LCB5b3UKICAgIHNob3VsZCB1c2UgdGhlIHNpbmdsZS1oZWFkZXIgdmFyaWFudCBvZiB0aGUgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlVURjwvYWNyb255bT4uIFRoaXMgdmFyaWFudCBpcyBpbXBsZW1lbnRlZCwgYXMgaXQgZm9sbG93cyBmcm9tIGl0cyBuYW1lLCBpbgogICAgdGhlIHNpbmdsZSBoZWFkZXIgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5ib29zdC90ZXN0L2luY2x1ZGVkL3VuaXRfdGVzdC5ocHA8L2NvZGU+LiBBbiBpbmNsdXNpb24gb2YKICAgIHRoZSBoZWFkZXIgY2F1c2VzIHRoZSBjb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlVURjwvYWNyb255bT4gdG8gYmUgaW5jbHVkZWQgYXMgYSBwYXJ0IG9mIGEgdGVzdCBtb2R1bGUncwogICAgc291cmNlIGZpbGUuIFRoZSBoZWFkZXIgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5ib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA8L2NvZGU+IGRvZXNuJ3QgaGF2ZSB0byBiZQogICAgaW5jbHVkZWQgYW55bW9yZS4gWW91IGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgZGlzYWJsaW5nIDxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi8uLi9jb21waWxhdGlvbi9hdXRvLWxpbmtpbmcuaHRtbCIgdGl0bGU9IlN1cHBvcnQgb2YgdGhlIGF1dG8tbGlua2luZyBmZWF0dXJlIj4KICAgIGF1dG8tbGlua2luZzwvYT4gZmVhdHVyZSBlaXRoZXIuIEl0J3MgZG9uZSBpbiB0aGUgICBpbXBsZW1lbnRhdGlvbiBoZWFkZXIgYWxyZWFkeS4gVGhpcyB2YXJpYW50CiAgICBjYW4ndCBiZSB1c2VkIHdpdGggdGhlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIuLi8uLi91c2VyLWd1aWRlLmh0bWwjbXVsdGktZmlsZS10ZXN0LW1vZHVsZS5kZWYiPm11bHRpLWZpbGUgdGVzdCBtb2R1bGU8L2E+LgogICAgT3RoZXJ3aXNlIGl0J3MgYWxtb3N0IGlkZW50aWNhbCBmcm9tIHRoZSB1c2FnZSBwcm9zcGVjdGl2ZSB0byB0aGUgc3RhdGljIGxpYnJhcnkgdmFyaWFudCBvZiB0aGUgPGFjcm9ueW0gY2xhc3M9ImFjcm9ueW0iPlVURjwvYWNyb255bT4uCiAgICBJbiBmYWN0IHRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhlIG5hbWUgb2YgdGhlIGluY2x1ZGUgZmlsZToKICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Ym9vc3QvdGVzdC9pbmNsdWRlZC91bml0X3Rlc3QuaHBwPC9jb2RlPiBpbnN0ZWFkIG9mCiAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcDwvY29kZT4uCiAgIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgVGhlIHRlc3QgcnVubmVyIHN1cHBsaWVkIHdpdGggdGhpcyB2YXJpYW50IHJlcXVpcmVzIHlvdSB0byBpbXBsZW1lbnQgdGhlIDxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi8uLi91c2VyLWd1aWRlLmh0bWwjdGVzdC1tb2R1bGUuZGVmIj50ZXN0CiAgICBtb2R1bGU8L2E+IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHRoYXQgbWF0Y2hlcyBvbmUgb2YgdGhlIHR3byBzcGVjaWZpY2F0aW9ucyBkZXBlbmRpbmcgb24gdGhlIGNvbXBpbGF0aW9uIGZsYWcKICAgIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIuLi8uLi9jb21waWxhdGlvbi5odG1sI3V0Zi5mbGFnLmFsdC1pbml0LWFwaSI+Qk9PU1RfVEVTVF9BTFRFUk5BVElWRV9JTklUX0FQSTwvYT4uIElmIGZsYWcgaXNuJ3QgZGVmaW5lZCB5b3UgYXJlIHJlcXVpcmVkIHRvCiAgICBtYXRjaCB0aGUgb3JpZ2luYWwgc3BlY2lmaWNhdGlvbi4gSWYgeW91IGRlZmluZSB0aGUgZmxhZyAKICAgIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIuLi8uLi9jb21waWxhdGlvbi5odG1sI3V0Zi5mbGFnLmFsdC1pbml0LWFwaSI+Qk9PU1RfVEVTVF9BTFRFUk5BVElWRV9JTklUX0FQSTwvYT4gZHVyaW5nIGEgdGVzdCBtb2R1bGUgY29tcGlsYXRpb24geW91IGFyZQogICAgcmVxdWlyZWQgdG8gdXNlIHRoZSBhbHRlcm5hdGl2ZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiAgc3BlY2lmaWNhdGlvbi4gVGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IHByb3ZpZGVzIGFuIGFiaWxpdHkgdG8KICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSIuLi9pbml0aWFsaXphdGlvbi5odG1sI3V0Zi51c2VyLWd1aWRlLmluaXRpYWxpemF0aW9uLmF1dG8tZ2VuZXJhdGlvbiIgdGl0bGU9IkF1dG9tYXRlZCBnZW5lcmF0aW9uIG9mIHRoZSB0ZXN0IG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiI+YXV0b21hdGljYWxseSBnZW5lcmF0ZTwvYT4gYW4gZW1wdHkgdGVzdCBtb2R1bGUgCiAgICBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiB3aXRoIGNvcnJlY3Qgc3BlY2lmaWNhdGlvbiBpZiBubyBjdXN0b20gaW5pdGlhbGl6YXRpb24gaXMgcmVxdWlyZWQgYnkgYSB0ZXN0IG1vZHVsZS4KICAgPC9wPgo8L2Rpdj4KPHRhYmxlIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiB3aWR0aD0iMTAwJSI+PHRyPgo8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cjx0ZCBhbGlnbj0icmlnaHQiPjxkaXYgY2xhc3M9ImNvcHlyaWdodC1mb290ZXIiPkNvcHlyaWdodCCpIDIwMDEtMjAwNyBHZW5uYWRpeSBSb3plbnRhbDwvZGl2PjwvdGQ+CjwvdHI+PC90YWJsZT4KPGhyPgo8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KPGEgYWNjZXNza2V5PSJwIiBocmVmPSJkeW5hbWljLWxpYi12YXJpYW50Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iLi4vdXNhZ2UtdmFyaWFudHMuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy91cC5wbmciIGFsdD0iVXAiPjwvYT48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZXh0ZXJuLXRlc3QtcnVubmVyLXZhcmlhbnQuaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9uZXh0LnBuZyIgYWx0PSJOZXh0Ij48L2E+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K