PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPlRoZSBFeGVjdXRpb24gTW9uaXRvciB1c2VyJ3MgZ3VpZGU8L3RpdGxlPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3N0eWxlL3N0eWxlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgo8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiPgo8bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJCb29zdCBUZXN0IExpYnJhcnkiPgo8bGluayByZWw9InVwIiBocmVmPSIuLi9leGVjdXRpb24tbW9uaXRvci5odG1sIiB0aXRsZT0iUGFydKBJLqBCb29zdCBUZXN0IExpYnJhcnk6IFRoZSBFeGVjdXRpb24gTW9uaXRvciI+CjxsaW5rIHJlbD0icHJldiIgaHJlZj0iY29tcGlsYXRpb24uaHRtbCIgdGl0bGU9IlRoZSBFeGVjdXRpb24gTW9uaXRvciBjb21waWxhdGlvbiB2YXJpYW50cyBhbmQgcHJvY2VkdXJlcyI+CjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0icmVmZXJlbmNlLmh0bWwiIHRpdGxlPSJUaGUgRXhlY3V0aW9uIE1vbml0b3IgcmVmZXJlbmNlIj4KPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdDEuMiIgc3JjPSIuLi8uLi9qcy9ib29zdC10ZXN0LmpzIj48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cjx0YWJsZSB3aWR0aD0iMTAwJSI+PHRyPgo8dGQgd2lkdGg9IjEwJSI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+PGltZyBhbHQ9IkhvbWUiIHdpZHRoPSIyMjkiIGhlaWdodD0iNjEiIGJvcmRlcj0iMCIgc3JjPSIuLi8uLi8uLi8uLi8uLi9saWJzL3Rlc3QvZG9jYm9vay9pbWcvYm9vc3QudGVzdC5sb2dvLnBuZyI+PC9hPjwvdGQ+Cjx0ZCB2YWxpZ249Im1pZGRsZSIgYWxpZ249ImxlZnQiPiAmZ3Q7IDxhIGhyZWY9Ii4uL2V4ZWN1dGlvbi1tb25pdG9yLmh0bWwiPlRoZSBFeGVjdXRpb24gTW9uaXRvcjwvYT48YSBocmVmPSIuLi9wcmctZXhlYy1tb25pdG9yLmh0bWwiPgogICAgICAmZ3Q7CiAgICAgIDwvYT48Yj5Vc2VyJ3MgZ3VpZGU8L2I+CjwvdGQ+Cjx0ZD48ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KPGEgaHJlZj0iY29tcGlsYXRpb24uaHRtbCI+PGltZyBzcmM9Ii4uLy4uLy4uLy4uLy4uL2RvYy9odG1sL2ltYWdlcy9wcmV2LnBuZyIgYWx0PSJQcmV2Ij48L2E+PGEgaHJlZj0icmVmZXJlbmNlLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPgo8L2Rpdj48L3RkPgo8L3RyPjwvdGFibGU+Cjxocj4KPGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iZXhlY3V0aW9uLW1vbml0b3IudXNlci1ndWlkZSI+PC9hPlRoZSBFeGVjdXRpb24gTW9uaXRvciB1c2VyJ3MgZ3VpZGU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgIFRoZSBFeGVjdXRpb24gTW9uaXRvciBpcyBkZXNpZ25lZCB0byBzb2x2ZSB0aGUgcHJvYmxlbSBvZiBleGVjdXRpbmcgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzIGZ1bmN0aW9uIHRoYXQgbWF5IHJlc3VsdAogICBpbiBhbnkgbnVtYmVyIG9mIGVycm9yIGNvbmRpdGlvbnMsIGluIG1vbml0b3JlZCBlbnZpcm9ubWVudCB0aGF0IHNob3VsZCBwcmV2ZW50IGFueSB1bmRlc2lyYWJsZSBleGNlcHRpb25zIHRvIAogICBwcm9wYWdhdGUgb3V0IG9mIGZ1bmN0aW9uIGNhbGwgYW5kIHByb2R1Y2UgY29uc2lzdGVudCByZXN1bHQgcmVwb3J0IGZvciBhbGwgCiAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJ1c2VyLWd1aWRlLmh0bWwjZXhlY3V0aW9uLW1vbml0b3IudXNlci1ndWlkZS5tb25pdG9yLW91dGNvbWVzIiB0aXRsZT0iTW9uaXRvcmVkIGZ1bmN0aW9uIGV4ZWN1dGlvbiI+b3V0Y29tZXM8L2E+LiBUaGUgRXhlY3V0aW9uIE1vbml0b3IgaXMgYWJsZSB0byAKICAgcHJvZHVjZSBpbmZvcm1hdGl2ZSByZXBvcnQgZm9yIGFsbCBzdGFuZGFyZCBDKysgZXhjZXB0aW9ucyBhbmQgaW50cmluc2ljIHR5cGVzLiBBbGwgb3RoZXIgZXhjZXB0aW9ucyBhcmUgcmVwb3J0ZWQgYXMKICAgdW5rbm93bi4gSWYgeW91IHByZWZlciBkaWZmZXJlbnQgbWVzc2FnZSBmb3IgeW91ciBleGNlcHRpb24gY2xhc3Mgb3IgbmVlZCB0byBwZXJmb3JtIGFueSBhY3Rpb24sIHRoZSBFeGVjdXRpb24gCiAgIE1vbml0b3Igc3VwcG9ydHMgPGEgY2xhc3M9ImxpbmsiIGhyZWY9InVzZXItZ3VpZGUuaHRtbCNleGVjdXRpb24tbW9uaXRvci51c2VyLWd1aWRlLmVycm9ycy1yZXBvcnRpbmciIHRpdGxlPSJFcnJvcnMgcmVwb3J0aW5nIGFuZCB0cmFuc2xhdGlvbiI+Y3VzdG9tIGV4Y2VwdGlvbiB0cmFuc2xhdG9yczwvYT4uCiAgIFRoZXJlIGFyZSBzZXZlcmFsIG90aGVyIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJ1c2VyLWd1aWRlLmh0bWwjZXhlY3V0aW9uLW1vbml0b3IudXNlci1ndWlkZS5tb25pdG9yLXBhcmFtcyIgdGl0bGU9IlRoZSBleGVjdXRpb24gbW9uaXRvciBwYXJhbWV0ZXJzIj5wYXJhbWV0ZXJzPC9hPiBvZiB0aGUgCiAgIG1vbml0b3JlZCBlbnZpcm9ubWVudCBjYW4gYmUgY29uZmlndXJlZCBieSBzZXR0aW5nIGFwcHJvcHJpYXRlIHByb3BlcnRpZXMgb2YgdGhlIEV4ZWN1dGlvbiBNb25pdG9yLgogIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICBBbGwgc3ltYm9scyBpbiB0aGUgRXhlY3V0aW9uIE1vbml0b3IgaW1wbGVtZW50YXRpb24gYXJlIGxvY2F0ZWQgaW4gdGhlIG5hbWVzcGFjZSBib29zdC4gVG8gdXNlIHRoZSBFeGVjdXRpb24KICAgTW9uaXRvciB5b3UgbmVlZCB0bzoKICA8L3A+CjxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgdHlwZT0iMSI+CjxsaT4KICAgICAjaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vYm9vc3QvdGVzdC9leGVjdXRpb25fbW9uaXRvci5ocHAiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5ib29zdC90ZXN0L2V4ZWN1dGlvbl9tb25pdG9yLmhwcDwvY29kZT48L2E+Jmd0OwogICAgPC9saT4KPGxpPk1ha2UgYW4gaW5zdGFuY2Ugb2YgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0icmVmZXJlbmNlLmh0bWwjYm9vc3QuZXhlY3V0aW9uX21vbml0b3IiIHRpdGxlPSJDbGFzcyBleGVjdXRpb25fbW9uaXRvciI+ZXhlY3V0aW9uX21vbml0b3I8L2E+PC9jb2RlPgo8L2xpPgo8bGk+CiAgICAgT3B0aW9uYWxseSByZWdpc3RlciBjdXN0b20gZXhjZXB0aW9uIHRyYW5zbGF0b3JzIGZvciBleGNlcHRpb24gY2xhc3NlcyB3aGljaCByZXF1aXJlIHNwZWNpYWwgcHJvY2Vzc2luZy4KICAgIDwvbGk+Cjwvb2w+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImV4ZWN1dGlvbi1tb25pdG9yLnVzZXItZ3VpZGUubW9uaXRvci1vdXRjb21lcyI+PC9hPk1vbml0b3JlZCBmdW5jdGlvbiBleGVjdXRpb248L2g0PjwvZGl2PjwvZGl2PjwvZGl2Pgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICBUbyBzdGFydCB0aGUgbW9uaXRvcmVkIGZ1bmN0aW9uLCBpbnZva2UgdGhlIG1ldGhvZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJyZWZlcmVuY2UuaHRtbCNpZDI3MDM2MS1iYiI+ZXhlY3V0aW9uX21vbml0b3I6OmV4ZWN1dGU8L2E+PC9jb2RlPiBhbmQgcGFzcyAKICAgIHRoZSBtb25pdG9yZWQgZnVuY3Rpb24gYXMgYW4gYXJndW1lbnQuIElmIHRoZSBjYWxsIHN1Y2NlZWRzLCB0aGUgbWV0aG9kIHJldHVybnMgdGhlIHJlc3VsdCBjb2RlIHByb2R1Y2VkIGJ5IHRoZQogICAgbW9uaXRvcmVkIGZ1bmN0aW9uLiBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG9jY3VyOgogICA8L3A+CjxkaXYgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCB0eXBlPSJkaXNjIj4KPGxpPlVuY2F1Z2h0IEMrKyBleGNlcHRpb24uPC9saT4KPGxpPkhhcmR3YXJlIG9yIHNvZnR3YXJlIHNpZ25hbCwgdHJhcCwgb3Igb3RoZXIgZXhjZXB0aW9uLjwvbGk+CjxsaT5UaW1lb3V0IHJlYWNoZWQuPC9saT4KPGxpPkRlYnVnIGFzc2VydCBldmVudCBvY2N1cnJlZCAodW5kZXIgTWljcm9zb2Z0IFZpc3VhbCBDKysgb3IgY29tcGF0aWJsZSBjb21waWxlcikuPC9saT4KPC91bD48L2Rpdj4KPHA+CiAgICB0aGVuIHRoZSBtZXRob2QgdGhyb3dzIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJyZWZlcmVuY2UuaHRtbCNib29zdC5leGVjdXRpb25fZXhjZXB0aW9uIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX2V4Y2VwdGlvbiI+ZXhlY3V0aW9uX2V4Y2VwdGlvbjwvYT48L2NvZGU+LiBUaGUgZXhjZXB0aW9uIGNvbnRhaW5zIHVuaXF1ZSAKICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZXJyb3JfY29kZTwvY29kZT4gdmFsdWUgaWRlbnRpZnlpbmcgdGhlIGVycm9yIGNvbmRpdGlvbiBhbmQgdGhlIGRldGFpbGVkIG1lc3NhZ2UgdGhhdCBjYW4gYmUgdXNlZCB0byByZXBvcnQgCiAgICB0aGUgZXJyb3IuCiAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImV4ZWN1dGlvbi1tb25pdG9yLnVzZXItZ3VpZGUubW9uaXRvci1wYXJhbXMiPjwvYT5UaGUgZXhlY3V0aW9uIG1vbml0b3IgcGFyYW1ldGVyczwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIEFsbCBwYXJhbWV0ZXJzIGFyZSBpbXBsZW1lbnRlZCBhcyBwdWJsaWMgcmVhZC13cml0ZSBwcm9wZXJ0aWVzIG9mIGNsYXNzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InJlZmVyZW5jZS5odG1sI2Jvb3N0LmV4ZWN1dGlvbl9tb25pdG9yIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX21vbml0b3IiPmV4ZWN1dGlvbl9tb25pdG9yPC9hPjwvY29kZT4uCiAgIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgVGhlIDxlbSBjbGFzcz0iZmlyc3R0ZXJtIj5wX2NhdGNoX3N5c3RlbV9lcnJvcnM8L2VtPiBwcm9wZXJ0eSBpcyBhIGJvb2xlYW4gZmxhZyAoZGVmYXVsdCB2YWx1ZSBpcyB0cnVlKSBzcGVjaWZ5aW5nIHdoZXRoZXIKICAgIG9yIG5vdCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJyZWZlcmVuY2UuaHRtbCNib29zdC5leGVjdXRpb25fbW9uaXRvciIgdGl0bGU9IkNsYXNzIGV4ZWN1dGlvbl9tb25pdG9yIj5leGVjdXRpb25fbW9uaXRvcjwvYT48L2NvZGU+IHNob3VsZCB0cmFwIHN5c3RlbSBsZXZlbCBleGNlcHRpb25zIChzZWNvbmQgY2F0ZWdvcnkgaW4gYWJvdmUgbGlzdCkuCiAgICBTZXQgdGhpcyBwcm9wZXJ0eSB0byBmYWxzZSwgZm9yIGV4YW1wbGUsIGlmIHlvdSB3aXNoIHRvIGZvcmNlIGNvcmVkdW1wIGZpbGUgY3JlYXRpb24uIFRoZSBVbml0IFRlc3QgRnJhbWV3b3JrIAogICAgcHJvdmlkZXMgYSBydW50aW1lIHBhcmFtZXRlciAtLWNhdGNoX3N5c3RlbV9lcnJvcnM9eWVzIHRvIGFsdGVyIHRoZSBiZWhhdmlvciBpbiBtb25pdG9yZWQgdGVzdCBjYXNlcy4gCiAgIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgVGhlIDxlbSBjbGFzcz0iZmlyc3R0ZXJtIj5wX2F1dG9fc3RhcnRfZGJnPC9lbT4gcHJvcGVydHkgaXMgYSBib29sZWFuIGZsYWcgKGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UpIHNwZWNpZnlpbmcgd2hldGhlciBvcgogICAgbm90IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InJlZmVyZW5jZS5odG1sI2Jvb3N0LmV4ZWN1dGlvbl9tb25pdG9yIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX21vbml0b3IiPmV4ZWN1dGlvbl9tb25pdG9yPC9hPjwvY29kZT4gc2hvdWxkIHRyeSB0byBhdHRhY2ggZGVidWdnZXIgaW4gY2FzZSBzeXN0ZW0gZXJyb3IgaXMgY2F1Z2h0LgogICA8L3A+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIFRoZSA8ZW0gY2xhc3M9ImZpcnN0dGVybSI+cF90aW1lb3V0IHByb3BlcnR5PC9lbT4gaXMgYW4gaW50ZWdlciB0aW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgbW9uaXRvcmVkIGZ1bmN0aW9uIGV4ZWN1dGlvbi4gVXNlCiAgICB0aGlzIHBhcmFtZXRlciB0byBtb25pdG9yIGNvZGUgd2l0aCBwb3NzaWJsZSBkZWFkbG9ja3Mgb3IgaW5kZWZpbml0ZSBsb29wcy4gVGhpcyBmZWF0dXJlIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBzb21lIAogICAgb3BlcmF0aW5nIHN5c3RlbXMgKG5vdCB5ZXQgTWljcm9zb2Z0IFdpbmRvd3MpLgogICA8L3A+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIFRoZSA8ZW0gY2xhc3M9ImZpcnN0dGVybSI+cF91c2VfYWx0X3N0YWNrPC9lbT4gcHJvcGVydHkgaXMgYSBib29sZWFuIGZsYWcgKGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UpIHNwZWNpZnlpbmcgd2hldGhlciBvcgogICAgbm90IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InJlZmVyZW5jZS5odG1sI2Jvb3N0LmV4ZWN1dGlvbl9tb25pdG9yIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX21vbml0b3IiPmV4ZWN1dGlvbl9tb25pdG9yPC9hPjwvY29kZT4gc2hvdWxkIHVzZSBhbiBhbHRlcm5hdGl2ZSBzdGFjayBmb3IgdGhlIAogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5zaWdhY3Rpb248L2NvZGU+IGJhc2VkIHNpZ25hbCBjYXRjaGluZy4gV2hlbiBlbmFibGVkIHRoZSBzaWduYWxzIGFyZSBkZWxpdmVyZWQgdG8gdGhlIAogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0icmVmZXJlbmNlLmh0bWwjYm9vc3QuZXhlY3V0aW9uX21vbml0b3IiIHRpdGxlPSJDbGFzcyBleGVjdXRpb25fbW9uaXRvciI+ZXhlY3V0aW9uX21vbml0b3I8L2E+PC9jb2RlPiBvbiBhIHN0YWNrIGRpZmZlcmVudCBmcm9tIGN1cnJlbnQgZXhlY3V0aW9uIHN0YWNrLCB3aGljaCBpcyBzYWZlciBpbiBjYXNlIAogICAgaWYgaXQgaXMgY29ycnVwdGVkIGJ5IG1vbml0b3JlZCBmdW5jdGlvbi4gRm9yIG1vcmUgZGV0YWlscyBvbiBhbHRlcm5hdGl2ZSBzdGFjayBoYW5kbGluZyBzZWUgYXBwcm9wcmlhdGUgCiAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3NpZ2FsdHN0YWNrLmh0bWwiIHRhcmdldD0iX3RvcCI+bWFudWFsczwvYT4uCiAgIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgVGhlIDxlbSBjbGFzcz0iZmlyc3R0ZXJtIj5wX2RldGVjdF9mcF9leGNlcHRpb25zPC9lbT4gcHJvcGVydHkgaXMgYSBib29sZWFuIGZsYWcgKGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UpIHNwZWNpZnlpbmcgCiAgICB3aGV0aGVyIG9yIG5vdCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJyZWZlcmVuY2UuaHRtbCNib29zdC5leGVjdXRpb25fbW9uaXRvciIgdGl0bGU9IkNsYXNzIGV4ZWN1dGlvbl9tb25pdG9yIj5leGVjdXRpb25fbW9uaXRvcjwvYT48L2NvZGU+IHNob3VsZCBpbnN0YWxsIGhhcmR3YXJlIHRyYXBzIGZvciB0aGUgZmxvYXRpbmcgcG9pbnQgCiAgICBleGNlcHRpb24gb24gcGxhdGZvcm1zIHdoZXJlIGl0J3Mgc3VwcG9ydGVkLgogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNCBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJleGVjdXRpb24tbW9uaXRvci51c2VyLWd1aWRlLmVycm9ycy1yZXBvcnRpbmciPjwvYT5FcnJvcnMgcmVwb3J0aW5nIGFuZCB0cmFuc2xhdGlvbjwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIElmIHlvdSBuZWVkIHRvIHJlcG9ydCBhbiBlcnJvciBpbnNpZGUgbW9uaXRvcmVkIGZ1bmN0aW9uIGV4ZWN1dGlvbiB5b3UgaGF2ZSB0byB0aHJvdyBhbiBleGNlcHRpb24uIERvIG5vdCB1c2UgdGhlCiAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJsaW5rIiBocmVmPSJyZWZlcmVuY2UuaHRtbCNib29zdC5leGVjdXRpb25fZXhjZXB0aW9uIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX2V4Y2VwdGlvbiI+ZXhlY3V0aW9uX2V4Y2VwdGlvbjwvYT48L2NvZGU+IC0gaXQncyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLiBUaGUgc2ltcGxlc3QgY2hvaWNlIGlzIAogICAgdG8gdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIEMrKyB0eXBlcyBhcyBhbiBleGNlcHRpb246CiAgIDwvcD4KPGRpdiB4bWxuczpyZXY9Imh0dHA6Ly93d3cuY3MucnBpLmVkdS9+Z3JlZ29kL2Jvb3N0L3Rvb2xzL2RvYy9yZXZpc2lvbiIgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIHR5cGU9ImRpc2MiPgo8bGk+QyBzdHJpbmcuPC9saT4KPGxpPnN0ZDpzdHJpbmcuPC9saT4KPGxpPmFueSBleGNlcHRpb24gY2xhc3MgaW4gc3RkOjpleGNlcHRpb24gaGllcmFyY2h5LjwvbGk+CjwvdWw+PC9kaXY+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIEluIGNhc2UgaWYgeW91IHByZWZlciB0byB1c2UgeW91ciBvd24gZXhjZXB0aW9uIGNsYXNzZXMgb3IgY2FuJ3QgZ292ZXJuIHdoYXQgZXhjZXB0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IG1vbml0b3JlZCAKICAgIGZ1bmN0aW9uIGFuZCB3b3VsZCBsaWtlIHRvIHNlZSBwcm9wZXIgZXJyb3IgbWVzc2FnZSBpbiBhIHJlcG9ydCwgdGhlIEV4ZWN1dGlvbiBNb25pdG9yIGFsbG93cyB5b3UgdG8gcmVnaXN0ZXIgdGhlCiAgICB0cmFuc2xhdG9yIGZvciBhbnkgZXhjZXB0aW9uIGNsYXNzLiBZb3UgY2FuIHJlZ2lzdGVyIGFzIG1hbnkgaW5kZXBlbmRlbnQgdHJhbnNsYXRvcnMgYXMgeW91IGxpa2UuIFNlZSAKICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InJlZmVyZW5jZS5odG1sI2Jvb3N0LmV4ZWN1dGlvbl9tb25pdG9yIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX21vbml0b3IiPmV4ZWN1dGlvbl9tb25pdG9yPC9hPjwvY29kZT4gc3BlY2lmaWNhdGlvbiBmb3IgcmVxdWlyZW1lbnRzIG9uIHRyYW5zbGF0b3IgZnVuY3Rpb24uIEFsc28gc2VlIGJlbG93IAogICAgZm9yIHVzYWdlIGV4YW1wbGUuCiAgIDwvcD4KPHAgY2xhc3M9ImZpcnN0LWxpbmUtaW5kZW50ZWQiPgogICAgIEZpbmFsbHksIGlmIHlvdSBuZWVkIHRvIGFib3J0IHRoZSBtb25pdG9yZWQgZnVuY3Rpb24gZXhlY3V0aW9uIHdpdGhvdXQgcmVwb3J0aW5nIGFueSBlcnJvcnMsIHlvdSBjYW4gdGhyb3cgYW4gCiAgICAgZXhjZXB0aW9uIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9ImxpbmsiIGhyZWY9InJlZmVyZW5jZS5odG1sI2Jvb3N0LmV4ZWN1dGlvbl9hYm9ydGVkIiB0aXRsZT0iQ2xhc3MgZXhlY3V0aW9uX2Fib3J0ZWQiPmV4ZWN1dGlvbl9hYm9ydGVkPC9hPjwvY29kZT4uIEFzIGEgcmVzdWx0IHRoZSBleGVjdXRpb24gaXMgYWJvcnRlZCBhbmQgemVybyByZXN1bHQgY29kZQogICAgIGlzIHByb2R1Y2VkIGJ5IHRoZSBtZXRob2QgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ibGluayIgaHJlZj0icmVmZXJlbmNlLmh0bWwjaWQyNzAzNjEtYmIiPmV4ZWN1dGlvbl9tb25pdG9yOjpleGVjdXRlPC9hPjwvY29kZT4uCiAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImV4ZWN1dGlvbi1tb25pdG9yLnVzZXItZ3VpZGUubWVtLWxlYWtzLWRldGVjdGlvbiI+PC9hPk1lbW9yeSBsZWFrcyBkZXRlY3Rpb248L2g0PjwvZGl2PjwvZGl2PjwvZGl2Pgo8cCBjbGFzcz0iZmlyc3QtbGluZS1pbmRlbnRlZCI+CiAgICBUaGUgRXhlY3V0aW9uIE1vbml0b3IgcHJvdmlkZXMgYSBsaW1pdGVkIGFiaWxpdHkgdG8gZGV0ZWN0IG1lbW9yeSBsZWFrcyBkdXJpbmcgcHJvZ3JhbSBleGVjdXRpb24sIGFuZCB0bwogICAgYnJlYWsgcHJvZ3JhbSBleGVjdXRpb24gb24gc3BlY2lmaWMgbWVtb3J5IGFsbG9jYXRpb24gb3JkZXItbnVtYmVyICgxIC0gZmlyc3QgYWxsb2NhdGlvbiBvZiBtZW1vcnkgaW4gcHJvZ3JhbSwgMiAtCiAgICBzZWNvbmQgYW5kIHNvIG9uKS4gVW5mb3J0dW5hdGVseSB0aGlzIGZlYXR1cmUgaXMsIGF0IHRoZSBtb21lbnQsIGltcGxlbWVudGVkIG9ubHkgZm9yIHRoZSBNaWNyb3NvZnQgZmFtaWx5IG9mCiAgICBjb21waWxlcnMgKGFuZCBJbnRlbCwgaWYgaXQgZW1wbG95cyBNaWNyb3NvZnQgQyBSdW50aW1lIExpYnJhcnkpLiBBbHNvIGl0IGNhbiBub3QgYmUgdHVuZWQgcGVyIGluc3RhbmNlIG9mIHRoZQogICAgbW9uaXRvciBhbmQgaXMgb25seSB0cmlnZ2VyZWQgZ2xvYmFsbHkgYW5kIHJlcG9ydGVkIGFmdGVyIHRoZSB3aG9sZSBwcm9ncmFtIGV4ZWN1dGlvbiBpcyBkb25lLiBJbiBhIGZ1dHVyZSB0aGlzCiAgICBvdWdodCB0byBiZSBpbXByb3ZlZC4gQW4gaW50ZXJmYWNlIGlzIGNvbXBvc2VkIGZyb20gdHdvIGZyZWUgZnVuY3Rpb25zIHJlc2lkaW5nIGluIG5hbWVzcGFjZSBib29zdDoKICAgPC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCBkZXRlY3RfbWVtb3J5X2xlYWtzKCBib29sIG9uX29mZiApOwp2b2lkIGJyZWFrX21lbW9yeV9hbGxvYyggbG9uZyBtZW1fYWxsb2Nfb3JkZXJfbnVtICk7PC9wcmU+CjxwIGNsYXNzPSJmaXJzdC1saW5lLWluZGVudGVkIj4KICAgIFVzZSBmdW5jdGlvbiBkZXRlY3RfbWVtb3J5X2xlYWtzIHRvIHN3aXRjaCBtZW1vcnkgbGVha3MgZGV0ZWN0aW9uIG9uL29mZi4gVXNlIGJyZWFrX21lbW9yeV9hbGxvYyB0byBicmVhayBhCiAgICBwcm9ncmFtIGV4ZWN1dGlvbiBhdCBhbGxvY2F0aW9uIHNwZWNpZmllZCBieSBtZW1fYWxsb2Nfb3JkZXJfbnVtIGFyZ3VtZW50LiBUaGUgVW5pdCBUZXN0IEZyYW1ld29yawogICAgcHJvdmlkZXMgYSBydW50aW1lIHBhcmFtZXRlciAoLS1kZXRlY3RfbWVtb3J5X2xlYWs9eWVzIG9yIG5vKSBhbGxvd2luZyB5b3UgdG8gbWFuYWdlIHRoaXMgZmVhdHVyZSBkdXJpbmcgbW9uaXRvcmVkCiAgICB1bml0IHRlc3RzLgogICA8L3A+CjwvZGl2Pgo8L2Rpdj4KPHRhYmxlIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiB3aWR0aD0iMTAwJSI+PHRyPgo8dGQgYWxpZ249ImxlZnQiPjwvdGQ+Cjx0ZCBhbGlnbj0icmlnaHQiPjxkaXYgY2xhc3M9ImNvcHlyaWdodC1mb290ZXIiPkNvcHlyaWdodCCpIDIwMDEtMjAwNyBHZW5uYWRpeSBSb3plbnRhbDwvZGl2PjwvdGQ+CjwvdHI+PC90YWJsZT4KPGhyPgo8ZGl2IGNsYXNzPSJzcGlyaXQtbmF2Ij4KPGEgYWNjZXNza2V5PSJwIiBocmVmPSJjb21waWxhdGlvbi5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Ii4uL2V4ZWN1dGlvbi1tb25pdG9yLmh0bWwiPjxpbWcgc3JjPSIuLi8uLi8uLi8uLi8uLi9kb2MvaHRtbC9pbWFnZXMvdXAucG5nIiBhbHQ9IlVwIj48L2E+PGEgYWNjZXNza2V5PSJoIiBocmVmPSIuLi9pbmRleC5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL2hvbWUucG5nIiBhbHQ9IkhvbWUiPjwvYT48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InJlZmVyZW5jZS5odG1sIj48aW1nIHNyYz0iLi4vLi4vLi4vLi4vLi4vZG9jL2h0bWwvaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=