PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPlRoZSBkeW5hbWljIGxpYnJhcnkgdmFyaWFudCBvZiB0aGUgVVRGPC90aXRsZT4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9zdHlsZS9zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIj4KPGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi8uLi8uLi9pbmRleC5odG1sIiB0aXRsZT0iQm9vc3QgVGVzdCBMaWJyYXJ5Ij4KPGxpbmsgcmVsPSJ1cCIgaHJlZj0iLi4vdXNhZ2UtdmFyaWFudHMuaHRtbCIgdGl0bGU9IlRoZSBVVEYgdXNhZ2UgdmFyaWFudHMgb3IgdGhlIEJ1cmlkYW4ncyBkb25rZXkgcGFyYWJsZSI+CjxsaW5rIHJlbD0icHJldiIgaHJlZj0ic3RhdGljLWxpYi12YXJpYW50Lmh0bWwiIHRpdGxlPSJUaGUgc3RhdGljIGxpYnJhcnkgdmFyaWFudCBvZiB0aGUgVVRGIj4KPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJzaW5nbGUtaGVhZGVyLXZhcmlhbnQuaHRtbCIgdGl0bGU9IlRoZSBzaW5nbGUtaGVhZGVyIHZhcmlhbnQgb2YgdGhlIFVURiI+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQxLjIiIHNyYz0iLi4vLi4vLi4vLi4vanMvYm9vc3QtdGVzdC5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgo8dGFibGUgd2lkdGg9IjEwMCUiPjx0cj4KPHRkIHdpZHRoPSIxMCUiPjxhIGhyZWY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiPjxpbWcgYWx0PSJIb21lIiB3aWR0aD0iMjI5IiBoZWlnaHQ9IjYxIiBib3JkZXI9IjAiIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90ZXN0L2RvY2Jvb2svaW1nL2Jvb3N0LnRlc3QubG9nby5wbmciPjwvYT48L3RkPgo8dGQgdmFsaWduPSJtaWRkbGUiIGFsaWduPSJsZWZ0Ij4gJmd0OyA8YSBocmVmPSIuLi8uLi8uLi91dGYuaHRtbCI+VGhlIFVuaXQgVGVzdCBGcmFtZXdvcms8L2E+ICZndDsgPGEgaHJlZj0iLi4vLi4vdXNlci1ndWlkZS5odG1sIj5Vc2VyJ3MgZ3VpZGU8L2E+PGEgaHJlZj0iLi4vLi4vdGVzdGluZy10b29scy5odG1sIj4KICAgICAgJmd0OwogICAgICA8L2E+PGEgaHJlZj0iLi4vdXNhZ2UtdmFyaWFudHMuaHRtbCI+VXNhZ2UgdmFyaWFudHM8L2E+PGEgaHJlZj0iLi4vdGVzdC1ydW5uZXJzLmh0bWwiPgogICAgICAmZ3Q7CiAgICAgIDwvYT48Yj5EeW5hbWljIGxpYnJhcnk8L2I+CjwvdGQ+Cjx0ZD48ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KPGEgaHJlZj0ic3RhdGljLWxpYi12YXJpYW50Lmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPjxhIGhyZWY9InNpbmdsZS1oZWFkZXItdmFyaWFudC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KPC9kaXY+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg1IGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9InV0Zi51c2VyLWd1aWRlLmR5bmFtaWMtbGliLXZhcmlhbnQiPjwvYT5UaGUgZHluYW1pYyBsaWJyYXJ5IHZhcmlhbnQgb2YgdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+CjwvaDU+PC9kaXY+PC9kaXY+PC9kaXY+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIEluIHRoZSBwcm9qZWN0IHdpdGggbGFyZ2UgbnVtYmVyIG9mIHRlc3QgbW9kdWxlcyA8YSBjbGFzcz0ibGluayIgaHJlZj0iZHluYW1pYy1saWItdmFyaWFudC5odG1sIiB0aXRsZT0iVGhlIGR5bmFtaWMgbGlicmFyeSB2YXJpYW50IG9mIHRoZSBVVEYiPnRoZSBzdGF0aWMKICAgIGxpYnJhcnk8L2E+IHZhcmlhbnQgb2YgdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IG1heSBjYXVzZSB5b3UgdG8gd2FzdGUgYSBsb3Qgb2YgZGlzayBzcGFjZSwgc2luY2UgdGhlIDxhY3JvbnltIGNsYXNzPSJhY3JvbnltIj5VVEY8L2Fjcm9ueW0+IGlzIGxpbmtlZAogICAgc3RhdGljYWxseSB3aXRoIGV2ZXJ5IHRlc3QgbW9kdWxlLiBUaGUgc29sdXRpb24gaXMgdG8gbGluayB3aXRoIHRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPiBidWlsdCBpbnRvIGEgZHluYW1pYyBsaWJyYXJ5LiBJZiB5b3Ugb3B0CiAgICB0byBsaW5rIGEgdGVzdCBtb2R1bGUgd2l0aCB0aGUgcHJlYnVpbHQgZHluYW1pYyBsaWJyYXJ5LCB0aGlzIHVzYWdlIGlzIGNhbGxlZCB0aGUgZHluYW1pYyBsaWJyYXJ5IHZhcmlhbnQgb2YgdGhlCiAgICA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPi4gVGhpcyB2YXJpYW50IHJlcXVpcmVzIHlvdSB0byBkZWZpbmUgdGhlIGZsYWcgPGEgY2xhc3M9InhyZWYiIGhyZWY9Ii4uLy4uL2NvbXBpbGF0aW9uLmh0bWwjdXRmLmZsYWcuZHluLWxpbmsiPkJPT1NUX1RFU1RfRFlOX0xJTks8L2E+CiAgICBlaXRoZXIgaW4gYSBtYWtlZmlsZSBvciBiZWZvcmUgdGhlIGhlYWRlciA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcDwvY29kZT4KICAgIGluY2x1c2lvbi4KICAgPC9wPgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICBUaGUgdGVzdCBydW5uZXIgc3VwcGxpZWQgd2l0aCB0aGlzIHZhcmlhbnQgcmVxdWlyZXMgeW91IHRvIGltcGxlbWVudCB0aGUgPGEgY2xhc3M9ImxpbmsiIGhyZWY9Ii4uLy4uL3VzZXItZ3VpZGUuaHRtbCN0ZXN0LW1vZHVsZS5kZWYiPnRlc3QKICAgIG1vZHVsZTwvYT4gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gdGhhdCBtYXRjaGVzIHRoZSBhbHRlcm5hdGl2ZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBzaWduYXR1cmUuIFRoZSA8YWNyb255bSBjbGFzcz0iYWNyb255bSI+VVRGPC9hY3JvbnltPgogICAgcHJvdmlkZXMgYW4gYWJpbGl0eSB0byA8YSBjbGFzcz0ibGluayIgaHJlZj0iLi4vaW5pdGlhbGl6YXRpb24uaHRtbCN1dGYudXNlci1ndWlkZS5pbml0aWFsaXphdGlvbi5hdXRvLWdlbmVyYXRpb24iIHRpdGxlPSJBdXRvbWF0ZWQgZ2VuZXJhdGlvbiBvZiB0aGUgdGVzdCBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24iPmF1dG9tYXRpY2FsbHkgZ2VuZXJhdGU8L2E+CiAgICBhbiBlbXB0eSB0ZXN0IG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiB3aXRoIGNvcnJlY3Qgc2lnbmF0dXJlIGlmIG5vIGN1c3RvbSBpbml0aWFsaXphdGlvbiBpcyByZXF1aXJlZCBieSBhCiAgICB0ZXN0IG1vZHVsZS4KICAgPC9wPgo8ZGl2IGNsYXNzPSJub3RlIj48dGFibGUgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOb3RlIj4KPHRyPgo8dGQgcm93c3Bhbj0iMiIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSI+PGltZyBhbHQ9IltOb3RlXSIgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvbm90ZS5wbmciPjwvdGQ+Cjx0aCBhbGlnbj0ibGVmdCI+Tm90ZTwvdGg+CjwvdHI+Cjx0cj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICBUaGUgbmFtZSBvZiB0aGUgdGVzdCBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gaXMgbm90IGVuZm9yY2VkLCBzaW5jZSB0aGUgZnVuY3Rpb24gaXMgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IAogICAgIHRvIHRoZSB0ZXN0IHJ1bm5lci4KICAgIDwvcD48L3RkPjwvdHI+CjwvdGFibGU+PC9kaXY+CjwvZGl2Pgo8dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+Cjx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KPHRkIGFsaWduPSJyaWdodCI+PGRpdiBjbGFzcz0iY29weXJpZ2h0LWZvb3RlciI+Q29weXJpZ2h0IKkgMjAwMS0yMDA3IEdlbm5hZGl5IFJvemVudGFsPC9kaXY+PC90ZD4KPC90cj48L3RhYmxlPgo8aHI+CjxkaXYgY2xhc3M9InNwaXJpdC1uYXYiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9InN0YXRpYy1saWItdmFyaWFudC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Ii4uL3VzYWdlLXZhcmlhbnRzLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi8uLi8uLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InNpbmdsZS1oZWFkZXItdmFyaWFudC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=