PGh0bWw+CjxoZWFkPgo8dGl0bGU+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgSW5zdGFsbGF0aW9uIGFuZCBTZXR1cCBJbnN0cnVjdGlvbnM8L3RpdGxlPgo8bWV0YSBuYW1lPSJERVNDUklQVElPTiIgY29udGVudD0iTmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgSW5zdGFsbGF0aW9uIGFuZCBTZXR1cCBJbnN0cnVjdGlvbnMiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi8uLi8uLi9uZXRiZWFucy5jc3MiPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJjb250ZW50TGVmdCI+CjwhLS0gQmVnaW4gQ29udGVudCBBcmVhIC0tPgo8YSBuYW1lPSJ0b3AiPjwvYT4KPGgxPk5ldEJlYW5zJiM4NDgyOyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNSBJbnN0YWxsYXRpb24gYW5kIFNldHVwIEluc3RydWN0aW9uczwvaDE+CjxwPjxiPkNvbnRlbnRzPC9iPgo8dWw+CjxsaT48YSBocmVmPSIjcHJlcmVxdWlzaXRpZXMiIHRpdGxlPSJQcmVyZXF1aXNpdGVzIj5QcmVyZXF1aXNpdGVzPC9hPjwvbGk+Cgo8bGk+PGEgaHJlZj0iI2luc3RhbGxhdGlvbiIgdGl0bGU9Ikluc3RhbGxpbmcgdGhlIFNvZnR3YXJlIj5JbnN0YWxsaW5nIHRoZQpTb2Z0d2FyZTwvYT4KPGRpdj4KPHVsPgo8bGk+PGEgaHJlZj0iI2luc3RhbGxfd2luZG93cyIgdGl0bGU9IldpbmRvd3MiPldpbmRvd3M8L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNpbnN0YWxsX3NvbGFyaXMiIHRpdGxlPSJTb2xhcmlzIj5Tb2xhcmlzJiM4NDgyOyBPUzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2luc3RhbGxfbGludXgiIHRpdGxlPSJMaW51eCI+TGludXg8L2E+PC9saT4KPC91bD4KPC9kaXY+PC9saT4KPGxpPjxhIGhyZWY9IiNjb21waWxlcnMiIHRpdGxlPSJJbnN0YWxsaW5nIGFuZCBTZXR0aW5nIFVwIHRoZSBDb21waWxlcnMgYW5kIApUb29scyI+SW5zdGFsbGluZyBhbmQgU2V0dGluZyBVcCB0aGUgQ29tcGlsZXJzIGFuZCBUb29sczwvYT4KPGRpdj4KPHVsPgo8bGk+PGEgaHJlZj0iI2NvbXBpbGVyc193aW5kb3dzIiB0aXRsZT0iV2luZG93cyI+V2luZG93czwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2NvbXBpbGVyc19zb2xhcmlzIiB0aXRsZT0iU29sYXJpcyI+U29sYXJpczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2NvbXBpbGVyc19saW51eCIgdGl0bGU9IkxpbnV4Ij5MaW51eDwvYT48L2xpPgo8L3VsPgo8L2Rpdj48L2xpPgo8bGk+PGEgaHJlZj0iI3VuaW5zdGFsbGF0aW9uIiB0aXRsZT0iVW5pbnN0YWxsaW5nIHRoZSBTb2Z0d2FyZSI+VW5pbnN0YWxsaW5nCnRoZSBTb2Z0d2FyZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI3Ryb3VibGVzaG9vdCIgdGl0bGU9IlRyb3VibGVzaG9vdGluZyI+VHJvdWJsZXNob290aW5nPC9hPjwvbGk+CjwvdWw+Cjxicj4KPCEtLSBQUkVSRVFVSVNJVEVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CjxoMj48YSBuYW1lPSJwcmVyZXF1aXNpdGVzIj48L2E+UHJlcmVxdWlzaXRlczwvaDI+CjxwPlRoaXMgdG9waWMgc3BlY2lmaWVzIHRoZSBwcmVyZXF1aXNpdGVzIHRoYXQgbXVzdCBiZSBtZXQgYmVmb3JlIHlvdSBzdGFydCB0byAKaW5zdGFsbCBOZXRCZWFucyYjODQ4MjsgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUuPC9wPgo8YmxvY2txdW90ZT4KPGgyIHN0eWxlPSJjb2xvcjojMEUxQjU1Ij5SZXF1aXJlZCBTb2Z0d2FyZTwvaDI+CjxwPlRoZSBmb2xsb3dpbmcgc29mdHdhcmUgbXVzdCBiZSBpbnN0YWxsZWQgYmVmb3JlIHlvdSBhdHRlbXB0IHRvIGluc3RhbGwgIApOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNTo8L3A+Cgk8dWw+CgkJPGxpPk5ldEJlYW5zIElERSA1LjU8YnI+PGJyPjwvbGk+CgkJPGxpPkpESyA1LjAgbXVzdCBiZSAKCQlpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0uIElmIHlvdSBkbyBub3QgaGF2ZSBhbiBpbnN0YWxsYXRpb24gCgkJb2YgSkRLIHZlcnNpb24gNS4wLCB5b3UgY2Fubm90IHByb2NlZWQgCgkJd2l0aCB0aGUgaW5zdGFsbGF0aW9uLiBGb3IgZGV0YWlscywgc2VlIHRoZSAKCQk8YSBocmVmPSJjbmQtcmVsZWFzZS1ub3Rlcy5odG1sI3JlcV9zdyI+UmVxdWlyZWQmbmJzcDtTb2Z0d2FyZTwvYT4gdG9waWMgaW4gdGhlIDxhCgkJaHJlZj0iY25kLXJlbGVhc2Utbm90ZXMuaHRtbCIgdGl0bGU9IlJlbGVhc2UgTm90ZXMiPlJlbGVhc2UmbmJzcDtOb3RlczwvYT4uPGJyPjxicj4KCTwvdWw+CjxoMiBzdHlsZT0iY29sb3I6IzBFMUI1NSI+U3VwcG9ydGVkIFBsYXRmb3JtczwvaDI+CjxwPk5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgaGFzIGJlZW4gdGVzdGVkIG9uIHRoZSBmb2xsb3dpbmcKb3BlcmF0aW5nIHN5c3RlbXM6Cjx1bD4KPGxpPk1pY3Jvc29mdCBXaW5kb3dzIFhQIFByb2Zlc3Npb25hbCBTUDI8L2xpPgo8bGk+UmVkIEhhdCBGZWRvcmEgQ29yZSAzPC9saT4KPGxpPlNvbGFyaXMmIzg0ODI7IDEwIE9wZXJhdGluZyBTeXN0ZW0gKFNvbGFyaXMgT1MpIChTUEFSQ64gYW5kIHg4Ni94NjQgClBsYXRmb3JtIEVkaXRpb24pCjwvdWw+CjwvcD4KPHA+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayBhbHNvIHJ1bnMgb24gdGhlIGZvbGxvd2luZyBwbGF0Zm9ybXM6Cjx1bD4KPGxpPk1pY3Jvc29mdCBXaW5kb3dzIDIwMDAgUHJvZmVzc2lvbmFsIFNQNDwvbGk+Cgo8bGk+U29sYXJpcyYjODQ4MjsgOCBPUyAoU1BBUkMmIzE3NCBhbmQgeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKSBhbmQgU29sYXJpcyYjODQ4MjsgOSBPUyAoU1BBUkMmIzE3NCBhbmQgeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKTwvbGk+CjxsaT5WYXJpb3VzIG90aGVyIExpbnV4IGRpc3RyaWJ1dGlvbnM8L2xpPgo8L3VsPgoKPCEtLQo8aDIgc3R5bGU9ImNvbG9yOiByZ2IoMTQsIDI3LCA4NSk7Ij5GaXJld2FsbCBBcHBsaWNhdGlvbnM8L2gyPgo8cD5FbmFibGVkIGZpcmV3YWxsIGFwcGxpY2F0aW9ucyBjYW4gcHJldmVudCBzb21lIGNvbXBvbmVudHMgZnJvbSBiZWluZwpjb25maWd1cmVkIGNvcnJlY3RseSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBEaXNhYmxlIGFueSBmaXJld2FsbCAKYXBwbGljYXRpb25zIGJlZm9yZSB5b3Ugc3RhcnQgdGhlIGluc3RhbGxhdGlvbi48L3A+Ci0tPgo8L2Jsb2NrcXVvdGU+Cjxicj4KPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvcD4KCjxicj4KPCEtLSBJTlNUQUxMQVRJT04gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CjxoMj48YSBuYW1lPSJpbnN0YWxsYXRpb24iPjwvYT5JbnN0YWxsaW5nIHRoZSBTb2Z0d2FyZTwvaDI+CjxwPlRoaXMgc2VjdGlvbiBjb250YWlucyBpbnN0cnVjdGlvbnMgZm9yIGluc3RhbGxpbmcgdGhlIE5ldEJlYW5zIEMvQysrCkRldmVsb3BtZW50IFBhY2sgb24gYWxsIHN1cHBvcnRlZCBwbGF0Zm9ybXMuPC9wPgoKPCEtLSBJTlNUQUxMQVRJT046IFdJTkRPV1MgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CjxibG9ja3F1b3RlPgo8aDIgc3R5bGU9ImNvbG9yOiMwRTFCNTUiPjxhIG5hbWU9Imluc3RhbGxfd2luZG93cyI+PC9hPldpbmRvd3M8L2gyPgo8cD5Gb2xsb3dpbmcgYXJlIGluc3RydWN0aW9ucyBmb3IgaW5zdGFsbGluZyBOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCAKUGFjayBvbiB0aGUgTWljcm9zb2Z0IFdpbmRvd3MgcGxhdGZvcm0uPC9wPgo8YmxvY2txdW90ZT4KPHA+PGI+QmVmb3JlIFlvdSBTdGFydDwvYj48L3A+CjxwPlRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zIGFwcGx5IHRvIHRoZSBpbnN0YWxsYXRpb24gb24gdGhlIE1pY3Jvc29mdCAKV2luZG93cyBwbGF0Zm9ybTo8L3A+Cjx1bD4KPGxpPlRoZSBpbnN0YWxsZXIgZmlyc3QgZXh0cmFjdHMgdGhlIHJlcXVpcmVkIGZpbGVzIHRvIHRoZSBkZWZhdWx0IHRlbXBvcmFyeSAKZGlyZWN0b3J5IGRlZmluZWQgYnkgdGhlIDx0dD5URU1QPC90dD4gCmVudmlyb25tZW50IHZhcmlhYmxlLiBJZiB0aGUgYW1vdW50IG9mIGRpc2sgc3BhY2UgaW4gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgCmlzIGxlc3MgdGhhbiByZXF1aXJlZCwgdGhlIGluc3RhbGxhdGlvbiBtaWdodCBmYWlsIG9yIHByb2NlZWQgaW5jb3JyZWN0bHkuPGJyPgpJZiB5b3UgZW5jb3VudGVyIHRoaXMgcHJvYmxlbSwgeW91IGNhbiBpbmNyZWFzZSB0aGUgc3BhY2UgYWxsb2NhdGVkIGZvciB0aGUgCjx0dD5URU1QPC90dD4gZW52aXJvbm1lbnQgdmFyaWFibGUgb3Igc3BlY2lmeSBhIGRpZmZlcmVudCB0ZW1wb3JhcnkgZGlyZWN0b3J5IAp0aGF0IGhhcyBzdWZmaWNpZW50IHNwYWNlLiBUbyBzcGVjaWZ5IGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgdGhlIAppbnN0YWxsYXRpb24sIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGZyb20gYSBjb21tYW5kIHdpbmRvdzo8YnI+Cjxicj4KPHR0PiZndDsmbmJzcDtjZCZuYnNwOzxpPmxvY2F0aW9uLW9mLWluc3RhbGxlcjwvaT48L3R0Pjxicj4KPHR0PiZndDsmbmJzcDtuZXRiZWFucy1jbmQtNV81LXdpbmRvd3MuZXhlJm5ic3A7LWlzOnRlbXBkaXImbmJzcDs8aT50ZW1wb3JhcnktZGlyZWN0b3J5PC9pPjwvdHQ+PGJyPgo8L2xpPgo8L3VsPgo8cD48Yj5UbyBJbnN0YWxsPC9iPjwvcD4KPG9sPgo8bGk+V2hlbiB5b3UgaGF2ZSBkb3dubG9hZGVkIHRoZSBpbnN0YWxsZXIgZmlsZSwKIDx0dD5uZXRiZWFucy1jbmQtNV81LXdpbmRvd3MuZXhlPC90dD4sIAogZG91YmxlLWNsaWNrIHRoZSBpbnN0YWxsZXIncyBpY29uIHRvIGxhdW5jaCB0aGUgaW5zdGFsbGVyLjwvbGk+CiA8YnI+CjxsaT5BdCB0aGUgV2VsY29tZSBwYWdlIG9mIHRoZSBpbnN0YWxsYXRpb24gd2l6YXJkLCBjbGljayBOZXh0LjwvbGk+Cjxicj4KPGxpPlJlc3BvbmQgdG8gdGhlIGxpY2Vuc2UgYWdyZWVtZW50IGFuZCBjbGljayBOZXh0LjwvbGk+Cjxicj4KPGxpPkF0IHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IHBhZ2Ugb2YgdGhlIGluc3RhbGxhdGlvbiB3aXphcmQsIAphY2NlcHQgdGhlIE5ldEJlYW5zIElERSBkaXJlY3RvcnkgZm91bmQgYnkgdGhlIHdpemFyZCBvciBzZWxlY3QgYSBkaWZmZXJlbnQKSURFIGluc3RhbGxhdGlvbi4gQ2xpY2sgTmV4dC48L2xpPgo8YnI+CjxsaT5WZXJpZnkgdGhhdCB0aGUgaW5zdGFsbGF0aW9uIGxvY2F0aW9uIGlzIGNvcnJlY3QgYW5kIHRoYXQgeW91IGhhdmUgCmFkZXF1YXRlIHNwYWNlIG9uIHlvdXIgc3lzdGVtIGZvciB0aGUgaW5zdGFsbGF0aW9uLjwvbGk+Cjxicj4KPGxpPkNsaWNrIE5leHQgdG8gYmVnaW4gdGhlIGluc3RhbGxhdGlvbi4gPC9saT4KPGJyPgo8bGk+V2hlbiB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjbGljayBGaW5pc2ggdG8gZXhpdCB0aGUgd2l6YXJkLjwvbGk+Cjwvb2w+CjxkaXYgY2xhc3M9ImdyZXlib3giPiA8Yj5Ob3RlOiA8L2I+SWYgeW91IGVuY291bnRlciBwcm9ibGVtcyBzdWNjZXNzZnVsbHkgCmNvbXBsZXRpbmcgdGhlIHNvZnR3YXJlIGluc3RhbGxhdGlvbiwgc2VlIDxhIGhyZWY9IiN0cm91Ymxlc2hvb3QiPgpUcm91Ymxlc2hvb3Rpbmc8L2E+IGZvciBmdWxsIGRlc2NyaXB0aW9ucyBhbmQgc3VnZ2VzdGVkIHdvcmthcm91bmRzIGZvciB1bnJlc29sdmVkIGlzc3VlcyB0aGF0IGNvdWxkIGFmZmVjdCB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIDwvZGl2Pgo8YnI+PGJyPgo8L2Jsb2NrcXVvdGU+CjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cgo8IS0tIElOU1RBTExBVElPTjogU09MQVJJUyBPUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo8aDIgc3R5bGU9ImNvbG9yOiMwRTFCNTUiPjxhIG5hbWU9Imluc3RhbGxfc29sYXJpcyI+PC9hPlNvbGFyaXMmIzg0ODI7IE9TPC9oMj4KRm9sbG93aW5nIGFyZSBpbnN0cnVjdGlvbnMgZm9yIGluc3RhbGxpbmcgTmV0ZUJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgb24gCnRoZSBTb2xhcmlzIE9TIHBsYXRmb3JtLjwvcD4KPHA+CkluIHRoZSBpbnN0cnVjdGlvbnMgYmVsb3csIHJlcGxhY2UgPGk+eW91cl9iaW5hcnlfZXhlY3V0YWJsZTwvaT4gd2l0aCBvbmUgb2YKdGhlIGZvbGxvd2luZzoKPHVsPgo8bGk+U29sYXJpcyYjODQ4MjsgT1MsIFNQQVJDJiMxNzQ7OiA8dHQ+bmV0YmVhbnMtY25kLTVfNS1zb2xhcmlzLXNwYXJjLmJpbjwvdHQ+PC9saT4KPGxpPlNvbGFyaXMmIzg0ODI7IE9TLCB4ODYveDY0IFBsYXRmb3JtIEVkaXRpb246Cjx0dD5uZXRiZWFucy1jbmQtNV81LXNvbGFyaXMteDg2LmJpbjwvdHQ+PC9saT4KPC91bD4KPGJsb2NrcXVvdGU+CjxwPjxiPlRvIEluc3RhbGw8L2I+PC9wPgo8b2w+CjxsaT5XaGVuIHlvdSBoYXZlIGRvd25sb2FkZWQgdGhlIGluc3RhbGxlciBmaWxlLCAKPHR0PjxpPnlvdXJfYmluYXJ5X2V4ZWN1dGFibGU8L2k+PC90dD4sIG5hdmlnYXRlIHRvIHRoZSBkaXJlY3RvcnkgdGhhdCAKY29udGFpbnMgdGhlIGZpbGUuIDwvbGk+Cjxicj4KPGxpPklmIG5lY2Vzc2FyeSwgY2hhbmdlIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgaW5zdGFsbGVyIGZpbGUgdG8gbWFrZSAKdGhlIGJpbmFyeSBleGVjdXRhYmxlIGJ5IHVzaW5nIHRoZSBjb21tYW5kIHNob3duIGJlbG93IGF0IGEgY29tbWFuZCBwcm9tcHQuCjxwcmU+CiYjMzY7Jm5ic3A7Y2htb2QmbmJzcDsreCZuYnNwOzxpPnlvdXJfYmluYXJ5X2V4ZWN1dGFibGU8L2k+PGJyPgo8L3ByZT4KPC9saT4KPGxpPkxhdW5jaCB0aGUgaW5zdGFsbGVyIGJ5IHVzaW5nIHRoZSBjb21tYW5kIHNob3duIGJlbG93IGF0IGEgY29tbWFuZCAKcHJvbXB0Lgo8cHJlPgomIzM2OyZuYnNwOy4vPGk+eW91cl9iaW5hcnlfZXhlY3V0YWJsZTwvaT48YnI+CjwvcHJlPgo8L2xpPgo8bGk+QXQgdGhlIFdlbGNvbWUgcGFnZSBvZiB0aGUgaW5zdGFsbGF0aW9uIHdpemFyZCwgY2xpY2sgTmV4dC48L2xpPgo8YnI+CjxsaT5SZXNwb25kIHRvIHRoZSBsaWNlbnNlIGFncmVlbWVudCBhbmQgY2xpY2sgTmV4dC48L2xpPgo8YnI+CjxsaT5BdCB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBwYWdlIG9mIHRoZSBpbnN0YWxsYXRpb24gd2l6YXJkLCBhY2NlcHQgdGhlIApOZXRCZWFucyBJREUgZGlyZWN0b3J5IGZvdW5kIGJ5IHRoZSB3aXphcmQgb3Igc2VsZWN0IGEgZGlmZmVyZW50IElERSAKaW5zdGFsbGF0aW9uLiBDbGljayBOZXh0LjwvbGk+Cjxicj4KPGxpPlZlcmlmeSB0aGF0IHRoZSBpbnN0YWxsYXRpb24gbG9jYXRpb24gaXMgY29ycmVjdCBhbmQgdGhhdCB5b3UgaGF2ZQphZGVxdWF0ZSBzcGFjZSBvbiB5b3VyIHN5c3RlbSBmb3IgdGhlIGluc3RhbGxhdGlvbi48L2xpPgo8YnI+CjxsaT5DbGljayBOZXh0IHRvIGJlZ2luIHRoZSBpbnN0YWxsYXRpb24uIDwvbGk+Cjxicj4KPGxpPldoZW4gdGhlIGluc3RhbGxhdGlvbiBpcyBjb21wbGV0ZSwgY2xpY2sgRmluaXNoIHRvIGV4aXQgdGhlIHdpemFyZC48L2xpPgo8L29sPgoKPGRpdiBjbGFzcz0iZ3JleWJveCI+IDxiPk5vdGU6IDwvYj5JZiB5b3UgZW5jb3VudGVyIHByb2JsZW1zIHN1Y2Nlc3NmdWxseSBjb21wbGV0aW5nIHRoZSBzb2Z0d2FyZSBpbnN0YWxsYXRpb24sIHNlZSA8YSBocmVmPSIjdHJvdWJsZXNob290Ij5Ucm91Ymxlc2hvb3Rpbmc8L2E+IGZvciBmdWxsIGRlc2NyaXB0aW9ucyBhbmQgc3VnZ2VzdGVkIHdvcmthcm91bmRzIGZvciB1bnJlc29sdmVkIGlzc3VlcyB0aGF0IGNvdWxkIGFmZmVjdCB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIDwvZGl2Pgo8YnI+PGJyPgo8L2Jsb2NrcXVvdGU+CjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cjxicj4KPCEtLSBJTlNUQUxMQVRJT046IExJTlVYIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CjxoMiBzdHlsZT0iY29sb3I6IzBFMUI1NSI+PGEgbmFtZT0iaW5zdGFsbF9saW51eCI+PC9hPkxpbnV4PC9oMj4KPHA+Rm9sbG93aW5nIGFyZSBpbnN0cnVjdGlvbnMgZm9yIGluc3RhbGxpbmcgdGhlIE5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50ClBhY2sgb24gTGludXggcGxhdGZvcm1zLjwvcD4KPGJsb2NrcXVvdGU+CjxwPjxiPlRvIEluc3RhbGw8L2I+PC9wPgo8b2w+CjxsaT5XaGVuIHlvdSBoYXZlIGRvd25sb2FkZWQgdGhlIGluc3RhbGxlciBmaWxlLCAKPHR0Pm5ldGJlYW5zLWNuZC01XzUtbGludXguYmluPC90dD4sIG5hdmlnYXRlIHRvIHRoZSBkaXJlY3RvcnkgdGhhdCAKY29udGFpbnMgdGhlIGZpbGUuIDwvbGk+Cjxicj4KPGxpPklmIG5lY2Vzc2FyeSwgY2hhbmdlIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgaW5zdGFsbGVyIGZpbGUgdG8gbWFrZSAKdGhlIGJpbmFyeSBleGVjdXRhYmxlIGJ5IHVzaW5nIHRoZSBjb21tYW5kIHNob3duIGJlbG93IGF0IGEgY29tbWFuZCBwcm9tcHQuCjxwcmU+CiYjMzY7Jm5ic3A7Y2htb2QmbmJzcDsreCZuYnNwO25ldGJlYW5zLWNuZC01XzUtbGludXguYmluPGJyPgo8L3ByZT4KPC9saT4KPGxpPkxhdW5jaCB0aGUgaW5zdGFsbGVyIGJ5IHVzaW5nIHRoZSBjb21tYW5kIHNob3duIGJlbG93IGF0IGEgY29tbWFuZCAKcHJvbXB0Lgo8cHJlPgomIzM2OyZuYnNwOy4vbmV0YmVhbnMtY25kLTVfNS1saW51eC5iaW48YnI+CjwvcHJlPgo8L2xpPgo8bGk+QXQgdGhlIFdlbGNvbWUgcGFnZSBvZiB0aGUgaW5zdGFsbGF0aW9uIHdpemFyZCwgY2xpY2sgTmV4dC48L2xpPgo8YnI+CjxsaT5SZXNwb25kIHRvIHRoZSBsaWNlbnNlIGFncmVlbWVudCBhbmQgY2xpY2sgTmV4dC48L2xpPgo8YnI+CjxsaT5BdCB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBwYWdlIG9mIHRoZSBpbnN0YWxsYXRpb24gd2l6YXJkLCBhY2NlcHQgdGhlIApOZXRCZWFucyBJREUgZGlyZWN0b3J5IGZvdW5kIGJ5IHRoZSB3aXphcmQgb3Igc2VsZWN0IGEgZGlmZmVyZW50IElERSAKaW5zdGFsbGF0aW9uLiBDbGljayBOZXh0LjwvbGk+Cjxicj4KPGxpPlZlcmlmeSB0aGF0IHRoZSBpbnN0YWxsYXRpb24gbG9jYXRpb24gaXMgY29ycmVjdCBhbmQgdGhhdCB5b3UgaGF2ZSAKYWRlcXVhdGUgc3BhY2Ugb24geW91ciBzeXN0ZW0gZm9yIHRoZSBpbnN0YWxsYXRpb24uPC9saT4KPGJyPgo8bGk+Q2xpY2sgTmV4dCB0byBiZWdpbiB0aGUgaW5zdGFsbGF0aW9uLiA8L2xpPgo8YnI+CjxsaT5XaGVuIHRoZSBpbnN0YWxsYXRpb24gaXMgY29tcGxldGUsIGNsaWNrIEZpbmlzaCB0byBleGl0IHRoZSB3aXphcmQuPC9saT4KPC9vbD4KCjxkaXYgY2xhc3M9ImdyZXlib3giPiA8Yj5Ob3RlOiA8L2I+SWYgeW91IGVuY291bnRlciBwcm9ibGVtcyBzdWNjZXNzZnVsbHkgY29tcGxldGluZyB0aGUgc29mdHdhcmUgaW5zdGFsbGF0aW9uLCBzZWUgPGEgaHJlZj0iI3Ryb3VibGVzaG9vdCI+VHJvdWJsZXNob290aW5nPC9hPiBmb3IgZnVsbCBkZXNjcmlwdGlvbnMgYW5kIHN1Z2dlc3RlZCB3b3JrYXJvdW5kcyBmb3IgdW5yZXNvbHZlZCBpc3N1ZXMgdGhhdCBjb3VsZCBhZmZlY3QgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiA8L2Rpdj4KPGJyPjxicj4KPC9ibG9ja3F1b3RlPgo8L2Jsb2NrcXVvdGU+CjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cjxicj4KPCEtLSBDT01QSUxFUiBTRVRVUCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo8aDI+PGEgbmFtZT0iY29tcGlsZXJzIj5JbnN0YWxsaW5nIGFuZCBTZXR0aW5nIFVwIHRoZSBDb21waWxlcnMgYW5kIFRvb2xzPC9hPjwvaDI+CjxwPk5ldGJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgcmVxdWlyZXMgYSBDIGNvbXBpbGVyLCBDKysgY29tcGlsZXIsCjx0dD5tYWtlPC90dD4gdXRpbGl0eSwgYW5kIDx0dD5nZGI8L3R0PiBkZWJ1Z2dlci4KPC9wPgo8IS0tIENPTVBJTEVSIFNFVFVQOiBXSU5ET1dTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CjxibG9ja3F1b3RlPgo8aDIgc3R5bGU9ImNvbG9yOiMwRTFCNTUiPjxhIG5hbWU9ImNvbXBpbGVyc193aW5kb3dzIj48L2E+V2luZG93czwvaDI+CjxwPk5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgaGFzIGJlZW4gdGVzdGVkIHdpdGggdGhlIGZvbGxvd2luZyBjb21waWxlcnMKYW5kIHRvb2xzOgoKPHVsPgo8bGk+Q3lnd2luIDEuNS4yMTwvbGk+CjxsaT5DeWd3aW4gZ2NjLWNvcmUgKEMgY29tcGlsZXIpIDMuNC54PC9saT4KPGxpPkN5Z3dpbiBnY2MtYysrIChDKysgY29tcGlsZXIpIDMuNC54PC9saT4KPGxpPkN5Z3dpbiBnZGIgKEdOVSBEZWJ1Z2dlcikgNi41LjUwPC9saT4KPGxpPkN5Z3dpbiBtYWtlIDMuODA8L2xpPgo8L3VsPgo8L3A+CjxwPklmIHlvdSBhbHJlYWR5IGhhdmUgdGhlIEN5Z3dpbiBHTlUgY29tcGlsZXJzLCBHTlUgPHR0Pm1ha2U8L3R0PiwgYW5kIAo8dHQ+Z2RiPC90dD4gZGVidWdnZXIgaW5zdGFsbGVkIG9uIHlvdXIgV2luZG93cyBzeXN0ZW0gYW5kCnlvdXIgcGF0aCBpcyBzZXQgdXAgY29ycmVjdGx5IHRvIGZpbmQgdGhlbSwgbWFrZSBzdXJlIHRoYXQgeW91IGhhdmUgdGhlCmNvcnJlY3QgdmVyc2lvbnMuIElmIHlvdSBoYXZlIHRoZSBjb3JyZWN0IHZlcnNpb25zLCB0aGVuIG5vIGZ1cnRoZXIgc2V0dXAgaXMKbmVjZXNzYXJ5LiAKPC9wPgo8YmxvY2txdW90ZT4KPHA+PGI+VG8gY2hlY2sgdGhlIHZlcnNpb25zIG9mIHlvdXIgQ3lnd2luIGNvbXBpbGVycyBhbmQgdG9vbHM6PC9iPgo8b2w+CjxsaT4KPHA+Q2hlY2sgdGhlIHZlcnNpb24gb2YgQ3lnd2luIGJ5IHR5cGluZzoKPHByZT4KY3lnY2hlY2sgLWMgY3lnd2luCjwvcHJlPgo8L2xpPgo8bGk+Q2hlY2sgdGhlIHZlcnNpb25zIG9mIHRoZSBjb21waWxlcnMsIDx0dD5tYWtlPC90dD4sIGFuZCA8dHQ+Z2RiPC90dD4gYnkKdHlwaW5nOgo8cHJlPgpnY2MgLS12ZXJzaW9uCmcrKyAtLXZlcnNpb24KbWFrZSAtLXZlcnNpb24KZ2RiIC0tdmVyc2lvbgo8L3ByZT4KPC9saT4KPC9vbD4KPHA+PGI+VG8gaW5zdGFsbCB0aGUgR05VIGNvbXBpbGVycywgPHR0Pm1ha2U8L3R0PiwgYW5kIDx0dD5nZGI8L3R0PiBkZWJ1Z2dlciBmcm9tIAo8YSBocmVmPSJodHRwOi8vY3lnd2luLmNvbSI+Y3lnd2luLmNvbTwvYT46PC9iPjwvcD4KPG9sPgo8bGk+RG93bmxvYWQgdGhlIEN5Z3dpbiA8YSBocmVmPSJodHRwOi8vd3d3LmN5Z3dpbi5jb20vc2V0dXAuZXhlIj4KCTx0dD5zZXR1cC5leGU8L3R0PjwvYT4gcHJvZ3JhbSBieSBjbGlja2luZyB0aGUgSW5zdGFsbCBvciBVcGRhdGUgTm93IQoJaWNvbiBpbiB0aGUgbWlkZGxlIG9mIHRoZSBwYWdlLgoJPC9saT4KCSA8YnI+CgkgPGxpPgoJUnVuIHRoZSA8dHQ+c2V0dXAuZXhlPC90dD4gcHJvZ3JhbS4gQWNjZXB0IHRoZSBkZWZhdWx0cyB1bnRpbCB5b3UgcmVhY2gKCXRoZSBTZWxlY3QgWW91ciBJbnRlcm5ldCBDb25uZWN0aW9uIHBhZ2UuIFNlbGVjdCB0aGUgb3B0aW9uIG9uIHRoaXMgCglwYWdlIHRoYXQgaXMgYmVzdCBmb3IgeW91LiBDbGljayBOZXh0LgogICAgPC9saT4KICAgIDxicj4KICAgIDxsaT4KCU9uIHRoZSBDaG9vc2UgRG93bmxvYWQgU2l0ZSBwYWdlLCBjaG9vc2UgYSBkb3dubG9hZCBzaXRlIHlvdSB0aGluawoJbWlnaHQgYmUgcmVsYXRpdmVseSBjbG9zZSB0byB5b3UuIENsaWNrIE5leHQuCiAgICA8L2xpPgogICAgPGJyPgogICAgPGxpPgoJT24gdGhlIFNlbGVjdCBQYWNrYWdlcyBwYWdlIHlvdSBzZWxlY3QgdGhlIHBhY2thZ2VzIHRvIGRvd25sb2FkLiBDbGljayAKCXRoZSArIG5leHQgdG8gRGV2ZWwgdG8gZXhwYW5kIHRoZSBkZXZlbG9wbWVudCB0b29scyBjYXRlZ29yeS4gWW91IG1heSAKCXdhbnQgdG8gcmVzaXplIHRoZSB3aW5kb3cgc28geW91IGNhbiBzZWUgbW9yZSBvZiBpdCBhdCBvbmUgdGltZS4KICAgIDwvbGk+CiAgICA8YnI+PGxpPgoJU2VsZWN0IGVhY2ggcGFja2FnZSB5b3Ugd2FudCB0byBkb3dubG9hZCBieSBjbGlja2luZyB0aGUgU2tpcCBsYWJlbAoJbmV4dCB0byBpdC4gQXQgYSBtaW5pbXVtLCBzZWxlY3QgZ2NjLWNvcmU6IEMgY29tcGlsZXIsIAoJZ2NjLWcrKzogQysrIGNvbXBpbGVyLCBnZGI6IFRoZSBHTlUgRGVidWdnZXIsIGFuZCBtYWtlOiB0aGUgR05VIAoJdmVyc2lvbiBvZiB0aGUgJ21ha2UnIHV0aWxpdHkuCgk8L2xpPgogICAgPGJyPgogICAgPGxpPgogICAgICAgIE5vdyBhZGQgdGhlIENvbXBpbGVyIGRpcmVjdG9yeSB0byB5b3VyIHBhdGg6CiAgICAgICA8YnI+PGJyPgogICAgICAgIDxvbCB0eXBlPSJhIj4KICAgICAgICA8bGk+T3BlbiB0aGUgQ29udHJvbCBQYW5lbCAoU3RhcnQgJmd0OyBTZXR0aW5ncyAmZ3Q7IENvbnRyb2wgUGFuZWwpIGFuZAogICAgICAgIGRvdWJsZS1jbGljayB0aGUgU3lzdGVtIHByb2dyYW0uPC9saT4KICAgICAgICA8YnI+CiAgICAgICAgPGxpPlNlbGVjdCB0aGUgQWR2YW5jZWQgdGFiIGFuZCBjbGljayBFbnZpcm9ubWVudCBWYXJpYWJsZXMuPC9saT4KICAgICAgICA8YnI+CiAgICAgICAgPGxpPkluIHRoZSBTeXN0ZW0gVmFyaWFibGVzIHBhbmVsIG9mIHRoZSBFbnZpcm9ubWVudCBWYXJpYWJsZXMgZGlhbG9nLCAKICAgICAgICBzZWxlY3QgdGhlIDx0dD5QYXRoPC90dD4gdmFyaWFibGUgYW5kCiAgICAgICAgY2xpY2sgRWRpdC48L2xpPgogICAgICAgIDxicj4KICAgICAgICA8bGk+SW4gdGhlIEVkaXQgU3lzdGVtIFZhcmlhYmxlIGRpYWxvZywgY29weSB0aGUgdmFsdWUgb2YgdGhlIDx0dD5QYXRoPC90dD4gCiAgICAgICAgdmFyaWFibGUgYnkgdHlwaW5nIEN0cmwtQyBhbmQKICAgICAgICBjbGljayBDYW5jZWwuPC9saT4KICAgICAgICA8YnI+CiAgICAgICAgPGxpPkluIHRoZSBVc2VyIFZhcmlhYmxlcyBwYW5lbCBvZiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIGRpYWxvZywKICAgICAgICBjbGljayBOZXcuPC9saT4KICAgICAgICA8YnI+CiAgICAgICAgPGxpPkluIHRoZSBOZXcgVXNlciBWYXJpYWJsZSBkaWFsb2csIHR5cGUgPHR0PlBhdGg8L3R0PiBpbiB0aGUgVmFyaWFibGUgTmFtZQogICAgICAgIGZpZWxkLiBNb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIFZhcmlhYmxlIFZhbHVlIGZpZWxkIGFuZCB0eXBlIEN0cmwtVgogICAgICAgIHRvIHBhc3RlIHRoZSB2YWx1ZSB5b3UgY29waWVkIGZyb20gdGhlIFN5c3RlbSBWYXJpYWJsZXMuCiAgICAgICAgPC9saT4KICAgICAgICA8YnI+CiAgICAgICAgPGxpPkFkZCB0aGUgcGF0aHMgdG8gdGhlIDx0dD48aT5jeWd3aW4tZGlyZWN0b3J5PC9pPlx1c3JcYmluPC90dD4gYW5kCiAgICAgICAgPHR0PjxpPmN5Z3dpbi1kaXJlY3Rvcnk8L2k+XGJpbjwvdHQ+IGRpcmVjdG9yaWVzIHRvIHRoZSA8dHQ+UGF0aDwvdHQ+IHZhcmlhYmxlLCBhbmQKICAgICAgICBjbGljayBPSy4gQnkgZGVmYXVsdCwgPHR0PjxpPmN5Z3dpbi1kaXJlY3Rvcnk8L2k+PC90dD4gaXMgPHR0PkM6XGN5Z3dpbjwvdHQ+LjwvbGk+CiAgICAgICAgPGJyPgogICAgICAgIDxsaT5DbGljayBPSyBpbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIGRpYWxvZyBhbmQgdGhlIFN5c3RlbSAKICAgICAgICBQcm9wZXJ0aWVzIGRpYWxvZy4KICAgICAgICA8L2xpPgogICAgICAgIDwvb2w+CgkKICAgIDwvbGk+CiAgICA8L29sPgogICAgPC9ibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxicj48cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9wPgo8YnI+CjwhLS0gQ09NUElMRVIgU0VUVVA6IFNPTEFSSVMgT1MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+CjxoMiBzdHlsZT0iY29sb3I6IzBFMUI1NSI+PGEgbmFtZT0iY29tcGlsZXJzX3NvbGFyaXMiPjwvYT5Tb2xhcmlzIE9TPC9oMj4KPHA+Ck5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgaGFzIGJlZW4gdGVzdGVkIHdpdGggdGhlIGZvbGxvd2luZyBjb21waWxlcnMKYW5kIHRvb2xzOgogPHVsPgo8bGk+U3VuIFN0dWRpbyAxMSBDIGNvbXBpbGVyIDUuOCBhbmQgZ2NjIDMuNC4zPC9saT4KPGxpPlN1biBTdHVkaW8gMTEgQysrIGNvbXBpbGVyIDUuOCBhbmQgZysrIDMuNC4zPC9saT4KPGxpPmdkYiAoR05VIGRlYnVnZ2VyKSA2LjIuMTwvbGk+CjxsaT5Tb2xhcmlzIG1ha2UgYW5kIGdtYWtlIDMuODA8L2xpPgo8L3VsPgo8aDM+U3VuIFN0dWRpbyAxMSBDb21waWxlcnM8L2gzPgo8cD5JZiB5b3Ugd2FudCB0byB1c2UgdGhlIFN1biBTdHVkaW8gMTEgY29tcGlsZXJzOgo8dWw+CjxsaT5JZiB5b3UKaGF2ZSBTdW4gU3R1ZGlvIDExIHNvZnR3YXJlIGluc3RhbGxlZCwgZW5zdXJlIHRoYXQgPHR0Pi88aT5pbnN0YWxsYXRpb24KZGlyZWN0b3J5PC9pPi9iaW48L3R0PiAKaXMgaW4geW91ciBwYXRoIGJlZm9yZSB5b3Ugc3RhcnQgdGhlIE5ldEJlYW5zIElERS48L2xpPgo8bGk+CklmIHlvdSBkbyBub3QgaGF2ZSBTdW4gU3R1ZGlvIDExIHNvZnR3YXJlIGluc3RhbGxlZCwgeW91IGNhbgpkb3dubG9hZCBpdCBmcmVlIGF0IDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXJzLnN1bi5jb20vc3Vuc3R1ZGlvL2Rvd25sb2Fkcy8iPgo8dHQ+aHR0cDovL2RldmVsb3BlcnMuc3VuLmNvbS9zdW5zdHVkaW8vZG93bmxvYWRzLzwvdHQ+PC9hPi4KPC9saT4KPC91bD4KPC9wPgo8YmxvY2txdW90ZT4KPHA+PGI+VG8gZG93bmxvYWQgYW5kIGluc3RhbGwgdGhlIFN1biBTdHVkaW8gMTEgY29tcGlsZXJzOjwvYj48L3A+CjxvbD4KPGxpPkNyZWF0ZSBhIGRpcmVjdG9yeSBmb3IgdGhlIGRvd25sb2FkZWQgZmlsZS4KWW91IG11c3QgaGF2ZSB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGRpcmVjdG9yeS48L2xpPgo8YnI+CjxsaT4KRG93bmxvYWQgdGhlIGZpbGUgZm9yIHlvdXIgcGxhdGZvcm0gaW50byB0aGUgZG93bmxvYWQgZGlyZWN0b3J5Lgo8L2xpPgo8YnI+CjxsaT5HbyB0byB0aGUgZG93bmxvYWQgZGlyZWN0b3J5LCBhbmQgdW5jb21wcmVzcyBhbmQgdW50YXIgdGhlIGRvd25sb2FkZWQgZmlsZS4KPHByZT4KYnpjYXQgPGk+ZmlsZW5hbWU8L2k+IHwgdGFyIHh2ZiAtCjwvcHJlPgo8L2xpPgo8IS0tIAo8bGk+CkJlY29tZSBzdXBlcnVzZXIgKHJvb3QpLiBSdW4gdGhlIGluc3RhbGxlciBpbiB0aGUgZG93bmxvYWQgZGlyZWN0b3J5IGJ5IHR5cGluZzoKPHByZT4KLi9pbnN0YWxsZXIKPC9wcmU+CjwvbGk+Cjxicj4KPGxpPkNsaWNrIE5leHQgb24gdGhlIFdlbGNvbWUgcGFnZSwgYW5kIGFjY2VwdCB0aGUgU29mdHdhcmUgTGljZW5zZSBBZ3JlZW1lbnQKYW5kIGNsaWNrIE5leHQuCjwvbGk+Cjxicj4KPGxpPk9uIHRoZSBTZWxlY3QgQ29tcG9uZW50cyBwYWdlIG9mIHRoZSBpbnN0YWxsZXIsIHNlbGVjdCBDdXN0b20gSW5zdGFsbCBmb3IKU3VuIFN0dWRpbyBTb2Z0d2FyZS4gU2VsZWN0IERlZmF1bHQgSW5zdGFsbCBmb3IgU29sYXJpcyBQYXRjaGVzLiBTZWxlY3QgTm8gSW5zdGFsbCBmb3IKRG9jdW1lbnRhdGlvbiwgU291cmNlIERpc3RyaWJ1dGlvbiwgYW5kIFN1biBQZXJmb3JtYW5jZSBMaWJyYXJ5Lgo8L2xpPgo8YnI+CjxsaT5PbiB0aGUgU2VsZWN0IEluc3RhbGwgRGlyZWN0b3J5IHBhZ2UsIGlmIHlvdSB3YW50IHRvIGluc3RhbGwgdGhlIGNvbXBpbGVycwppbiB0aGUgZGVmYXVsdCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IDx0dD4vb3B0PC90dD4sIGNsaWNrIE5leHQuIElmIHlvdSB3YW50IHRvCmluc3RhbGwgdGhlIGNvbXBpbGVycyBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnksIHR5cGUgdGhlIHBhdGggaW4gdGhlIHRleHQgZmllbGQKYW5kIGNsaWNrIE5leHQuPC9saT4KPGJyPgo8bGk+T24gdGhlIFNlbGVjdCBTdWJjb21wb25lbnRzIHBhZ2UsIHNlbGVjdCBDb21waWxlcnMgQyBhbmQKQ29tcGlsZXJzIEMrKywgYW5kIGNsaWNrIE5leHQuCjwvbGk+Cjxicj4KPGxpPk9uIHRoZSBSZWFkeSB0byBJbnN0YWxsIHBhZ2UsIHZlcmlmeSB0aGF0IHRoZSBkaXNrIHNwYWNlIHNob3duIGlzIGF2YWlsYWJsZQpvbiB5b3VyIHN5c3RlbSwgYW5kIHRoYXQgdGhlIEMgY29tcGlsZXIsIEMrKyBjb21waWxlciwgYW5kIFNvbGFyaXMgcGF0Y2hlcyBhcmUKbGlzdGVkLiBUaGVuIGNsaWNrIEluc3RhbGwgTm93Lgo8L2xpPgo8YnI+CjxsaT5XaGVuIGluc3RhbGxhdGlvbiBpcyBjb21wbGV0ZSwgcHJvY2VlZCB0aHJvdWdoIHRoZSBJbnN0YWxsYXRpb24gU3VtbWFyeQpwYWdlLCB0aGUgUmVnaXN0cmF0aW9uIHBhZ2UsIGFuZCB0aGUgQWZ0ZXIgSW5zdGFsbGF0aW9uIHBhZ2UsIGFuZCBjbGljayBFeGl0IHRvCmV4aXQgdGhlIGluc3RhbGxlci4KPC9saT4KLS0+CjxsaT5Gb2xsb3cgdGhlIGluc3RydWN0aW9ucyBpbiA8YQpocmVmPSJodHRwOi8vZG9jcy5zdW4uY29tL3NvdXJjZS84MTktMzA1Mi9wcm9kdWN0cy5odG1sIj5DaGFwdGVyIDIgb2YgdGhlIDxpPlN1biBTdHVkaW8gMTEgSW5zdGFsbGF0aW9uIApHdWlkZSBmb3IgU29sYXJpcyBQbGF0Zm9ybXM8L2k+PC9hPiB0byBpbnN0YWxsIHRoZSBDIGNvbXBpbGVyLCBDKysgY29tcGlsZXIsCmFuZCByZXF1aXJlZCBTb2xhcmlzIHBhdGNoZXMuPC9saT4KPC9vbD4KPC9ibG9ja3F1b3RlPgo8cD5BZGQgdGhlIHBhdGggdG8gdGhlIFN1biBTdHVkaW8gc29mdHdhcmUgdG8geW91ciA8dHQ+UEFUSDwvdHQ+IGJlZm9yZQpzdGFydGluZyB0aGUgTmV0QmVhbnMgSURFLgo8L3A+Cgo8aDM+R05VIENvbXBpbGVycyBhbmQgR05VIDx0dD5tYWtlPC90dD48L2gzPgo8cD4KSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBHTlUgY29tcGlsZXJzIGFuZCBHTlUgPHR0Pm1ha2U8L3R0PjoKPHVsPgo8bGk+SWYgeW91IGhhdmUgYSBzdGFuZGFyZCBpbnN0YWxsYXRpb24gb2YgdGhlIFNvbGFyaXMgMTAgT1MsIHRoZSBjb21waWxlcnMgYW5kCjx0dD5nbWFrZTwvdHQ+IGFyZSBpbnN0YWxsZWQgaW4gPHR0Pi91c3Ivc2Z3L2JpbjwvdHQ+LiBNYWtlIHN1cmUgdGhhdCB0aGlzCmxvY2F0aW9uIGlzIGluIHlvdXIgcGF0aCBiZWZvcmUgc3RhcmluZyB0aGUgTmV0QmVhbnMgSURFLjwvbGk+CjxsaT5JZiB0aGUgY29tcGlsZXJzIGFuZCA8dHQ+Z21ha2U8L3R0PiBhcmUgbm90IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSwgeW91IGNhbiBkb3dubG9hZCB0aGVtIGZyb20KPGEKaHJlZj0iaHR0cDovL3d3dy5zdW5mcmVld2FyZS5jb20iPjx0dD5odHRwOi8vd3d3LnN1bmZyZWV3YXJlLmNvbTwvdHQ+PC9hPi48L2xpPgo8L3VsPiAKPGJsb2NrcXVvdGU+CjxwPjxiPlRvIGRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBHTlUgY29tcGlsZXJzIGFuZCBtYWtlPC9iPjwvcD4KPG9sPgo8bGk+RG93bmxvYWQgZ2NjIDMuNC42IGFuZCBtYWtlIDMuODEuPC9saT4KPGJyPgo8bGk+SWYgdGhlIGRvd25sb2FkIHppcCBmaWxlcyBhcmUgbm90CmF1dG9tYXRpY2FsbHkgZ3VuemlwcGVkIGR1cmluZyBkb3dubG9hZCwgdW56aXAgdGhlbSB3aXRoIDx0dD5ndW56aXA8L3R0Pi4KPC9saT4KPGJyPgo8bGk+SW5zdGFsbCB0aGUgcGFja2FnZXMgd2l0aCB0aGUgPHR0PnBrZ2FkZDwvdHQ+IGNvbW1hbmQuPC9saT4KPC9vbD4KPC9ibG9ja3F1b3RlPgo8cD5NYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgR05VIApjb21waWxlciBkaXJlY3RvcnkgYW5kIHRoZSBHTlUgbWFrZSBkaXJlY3RvcnkgaW4geW91ciBwYXRoIGJlZm9yZSBzdGFydGluZyB0aGUgTmV0QmVhbnMgSURFLgo8L3A+Cgo8aDM+PHR0PmdkYjwvdHQ+IERlYnVnZ2VyPC9oMz4KPHA+V2hldGhlciB5b3UgdXNlIHRoZSBTdW4gU3R1ZGlvIGNvbXBpbGVycyBhbmQgU29sYXJpcyA8dHQ+bWFrZTwvdHQ+IG9yIHRoZQpHTlUgY29tcGlsZXJzIGFuZCBHTlUgPHR0Pm1ha2U8L3R0PiwgeW91IG11c3QgaGF2ZSB0aGUgPHR0PmdiZDwvdHQ+IGRlYnVnZ2VyIHRvCmRlYnVnIGFwcGxpY2F0aW9ucyBpbiBOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrLiBZb3UgY2FuIGRvd25sb2FkIDx0dD5nZGI8L3R0PiA2LjIuMSBmcm9tIAo8YSBocmVmPSJodHRwOi8vd3d3LnN1bi5jb20vc29mdHdhcmUvc29sYXJpcy9mcmVld2FyZS9zMTBwa2dzX2Rvd25sb2FkLnhtbCI+PHR0Pmh0dHA6Ly93d3cuc3VuLmNvbS9zb2Z0d2FyZS9zb2xhcmlzL2ZyZWV3YXJlL3MxMHBrZ3NfZG93bmxvYWQueG1sPC90dD48L2E+Lgo8L3A+CjxibG9ja3F1b3RlPgo8cD48Yj5UbyBkb3dubG9hZCBhbmQgaW5zdGFsbCA8dHQ+Z2RiPC90dD46PC9iPjwvcD4KPG9sPgo8bGk+VW5kZXIgIlNlbGVjdCBhIERvd25sb2FkIiBhdCB0aGUgYm90dHRvbSBvZiB0aGUgcGFnZSwgc2VsZWN0IHRoZSBTb2xhcmlzIDEwCkNvbXBhbmlvbiBTb2Z0d2FyZSBkb3dubG9hZCBmb3IgeW91ciBTb2xhcmlzIHBsYXRmb3JtLjwvbGk+Cjxicj4KPGxpPk9uIHRoZSBEb3dubG9hZCBwYWdlLCBhY2NlcHQgdGhlIExpY2Vuc2UgQWdyZWVtZW50IGFuZCBzZWxlY3QgdGhlIAo8dHQ+Z2JkIC0gR05VIHNvdXJjZSBsZXZlbCBkZWJ1Z2dlcjwvdHQ+IHBhY2thZ2UuIAo8L2xpPgo8YnI+CjxsaT5CZWNvbWUgcm9vdCAoc3VwZXJ1c2VyKS4KPC9saT4KPGJyPgo8bGk+VW56aXAgdGhlIGZpbGUgd2l0aCA8dHQ+YnVuemlwPC90dD4gYW5kIGluc3RhbGwgPHR0PmdiZDwvdHQ+IHdpdGggCjx0dD5wa2dhZGQ8L3R0PjoKPHByZT4KYnVuemlwMiBTRldnZGIuYnoyCnBrZ2FkZCAtZCBTRldnYmQKPC9wcmU+CjwvbGk+Cjwvb2w+CjwvYmxvY2txdW90ZT4KPHA+TWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHBhdGggdG8gPHR0PmdkYjwvdHQ+IGluIHlvdXIgcGF0aCBiZWZvcmUgc3RhcnRpbmcKdGhlIE5ldEJlYW5zIElERS48L3A+CiAgICAgICAgICA8YnI+PHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvcD4KPGJyPgo8IS0tIENPTVBJTEVSIFNFVFVQOiBMSU5VWCBPUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPGgyIHN0eWxlPSJjb2xvcjojMEUxQjU1Ij48YSBuYW1lPSJjb21waWxlcnNfbGludXgiPjwvYT5MaW51eDwvaDI+CjxwPgpOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIGhhcyBiZWVuIHRlc3RlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tcGlsZXJzCmFuZCB0b29sczoKPHVsPgo8bGk+U3VuIFN0dWRpbyBFeHByZXNzIDIgQyBjb21waWxlciBhbmQgUmVkIEhhdCBGZWRvcmEgQ29yZSAzIGdjYzwvbGk+CjxsaT5TdW4gU3R1ZGlvIEV4cHJlc3MgMiBDKysgY29tcGlsZXIgYW5kIFJlZCBIYXQgRmVkb3JhIENvcmUgMyBnKys8L2xpPgo8bGk+UmVkIEhhdCBGZWRvcmEgQ29yZSAzIGdkYjwvbGk+CjxsaT5SZWQgSGF0IEZlZG9yYSBDb3JlIG1ha2U8L2xpPgo8L3VsPgo8L3A+CjxwPjxiPlRvIGRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBTdW4gU3R1ZGlvIEV4cHJlc3MgMiBjb21waWxlcnM6PC9iPgo8b2w+CjxsaT5PbiB0aGUgU3VuIFN0dWRpbyBFeHByZXNzIHdlYiBwYWdlICg8YQpocmVmPSJodHRwOi8vZGV2ZWxvcGVycy5zdW4uY29tL3N1bnN0dWRpby9kb3dubG9hZHMvZXhwcmVzcy5qc3AiPjx0dD4KaHR0cDovL2RldmVsb3BlcnMuc3VuLmNvbS9zdW5zdHVkaW8vZG93bmxvYWRzL2V4cHJlc3MuanNwPC90dD48L2E+LCB0eXBlIHlvdXIKZW1haWwgYWRkcmVzcyB0byBqb2luIHRoZSBTdW4gU3R1ZGlvIEV4cHJlc3MgUHJvZ3JhbSBub3RpZmljYXRpb24gbGlzdCwgYW5kCmNsaWNrIERvd25sb2FkIE5vdy48L2xpPgo8YnI+CjxsaT5PbiB0aGUgU3VuIFN0dWRpbyBFeHByZXNzIE1haWxpbmcgTGlzdCBOb3RpZmljYXRpb24gcGFnZSwgY2xpY2sgdGhlCmRvd25sb2FkIGljb24uCjwvbGk+Cjxicj4KPGxpPk9uIHRoZSBTdW4gU3R1ZGlvIEV4cHJlc3MgZG93bmxvYWQgcGFnZSwgYWNjZXB0IHRoZSBMaWNlbnNlIEFncmVlbWVudCBhbmQKc2VsZWN0IHRoZSBkb3dubG9hZCBmaWxlIGZvciB0aGUgTGludXggKHg4NikgUGxhdGZvcm0uCjwvbGk+Cjxicj4KPGxpPkRvd25sb2FkIHRoZSBmaWxlIGludG8gYSBzY3JhdGNoIGRpcmVjdG9yeSwgYW5kIHRoZW4gZm9sbG93IHRoZQppbnN0cnVjdGlvbnMgaW4gdGhlIFN1biBTdHVkaW8gRXhwcmVzcyBSRUFETUUgZmlsZSBhdCA8YQpocmVmPSJodHRwOi8vZGV2ZWxvcGVycy5zdW4uY29tL3N1bnN0dWRpby9kb3dubG9hZHMvZXhwcmVzc19yZWFkbWUuaHRtbCI+Cjx0dD5odHRwOi8vZGV2ZWxvcGVycy5zdW4uY29tL3N1bnN0dWRpby9kb3dubG9hZHMvZXhwcmVzc19yZWFkbWUuaHRtbDwvdHQ+PC9hPgp0byBpbnN0YWxsIHRoZSBzb2Z0d2FyZSBhbmQgc2V0IHlvdXIgcGF0aC4KPC9saT4KPC9vbD4KPC9wPgo8L2Jsb2NrcXVvdGU+Cjxicj4KPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI3RvcCI+dG9wPC9hPjwvcD4KPGJyPjwhLS0gVkVSSUZZSU5HIFRIRSBJTlNUQUxMQVRJT04gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo8aDI+PGEgbmFtZT0idmVyaWZ5aW5nIj5WZXJpZnlpbmcgdGhlIEluc3RhbGxhdGlvbjwvYT48L2gyPgo8cD5UbyB2ZXJpZnkgdGhhdCB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvcnJlY3QsIHN0YXJ0IHRoZSBOZXRCZWFucyBJREUsIApidWlsZCBhIHNhbXBsZSBwcm9qZWN0LCBhbmQgcnVuIGl0IGluIHRoZSA8dHQ+Z2RiPC90dD4gZGVidWdnZXIuPC9wPgo8YmxvY2txdW90ZT4KPGgyIHN0eWxlPSJjb2xvcjojMEUxQjU1Ij5XaW5kb3dzPC9oMj4KPHA+PGI+VG8gc3RhcnQgdGhlIElERSBvbiBNaWNyb3NvZnQgV2luZG93cyBtYWNoaW5lcywgZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6PC9iPjwvcD4KPHVsPgo8bGk+RG91YmxlLWNsaWNrIHRoZSBOZXRCZWFucyBJREUgaWNvbiBvbiB5b3VyIGRlc2t0b3AuPC9saT4KPGJyPgo8bGk+RnJvbSB0aGUgU3RhcnQgbWVudSwgc2VsZWN0IFByb2dyYW1zICZndDsgTmV0QmVhbnMgNS41ICZndDsgTmV0QmVhbnMgSURFLjwvbGk+CjwvdWw+CjxwPjxiPlRvIGJ1aWxkIGEgc2FtcGxlIHByb2plY3QgYW5kIHJ1biBpdCBpbiB0aGUgZGVidWdnZXI6PC9iPgo8b2w+CjxsaT5PcGVuIHRoZSBOZXcgUHJvamVjdCB3aXphcmQgYnkgY2hvb3NpbmcgRmlsZSAmZ3Q7IE5ldyBQcm9qZWN0LjwvbGk+Cjxicj4KPGxpPkluIHRoZSBDYXRlZ29yaWVzIHBhbmVsIG9uIHRoZSBDaG9vc2UgUHJvamVjdCBwYWdlIG9mIHRoZSB3aXphcmQsIGV4cGFuZCB0aGUgU2FtcGxlcyBjYXRlZ29yeSBhbmQgdGhlIEMvQysrIERldmVsb3BtZW50IApzdWJjYXRlZ29yeSwgYW5kIHNlbGVjdCB0aGUgQy9DKysgc3ViY2F0ZWdvcnkuPC9saT4KPGJyPgo8bGk+SW4gdGhlIFByb2plY3RzIHBhbmVsLCBzZWxlY3QgdGhlIDx0dD5XZWxjb21lPC90dD4gcHJvamVjdC4gQ2xpY2sgTmV4dC4KPC9saT4KPGJyPgo8bGk+T24gdGhlIFByb2plY3QgTmFtZSBhbmQgTG9jYXRpb24gcGFnZSwgY2xpY2sgRmluaXNoLgo8L2xpPgo8YnI+CjxsaT5JbiB0aGUgUHJvamVjdHMgdGFiIG9mIHRoZSBJREUsIHJpZ2h0LWNsaWNrIHRoZSA8dHQ+V2VsY29tZTE8L3R0PiBwcm9qZWN0IGFuZApjaG9vc2UgQnVpbGQgUHJvamVjdC4gSWYgeW91ciBjb21waWxlcnMgYW5kIDx0dD5tYWtlPC90dD4gdXRpbGl0eSBhcmUKaW5zdGFsbGVkIGNvcnJlY3RseSBhbmQgdGhlIHBhdGggdG8gdGhlbSBpcyBzZXQsIGJ1aWxkIG91dHB1dCBpcyBkaXNwbGF5ZWQgaW4KdGhlIE91dHB1dCB3aW5kb3cgYW5kIHRoZSBwcm9qZWN0IGJ1aWxkcyBzdWNjZXNzZnVsbHkuCjwvbGk+Cjxicj4KPGxpPkRvdWJsZS1jbGljayB0aGUgPHR0PndlbGNvbWUuY2M8L3R0PiBmaWxlIHRvIG9wZW4gaXQgaW4gdGhlIFNvdXJjZQpFZGl0b3IuPC9saT4KPGJyPgo8bGk+UmlnaHQtY2xpY2sgaW4gdGhlIGxlZnQgbWFyZ2luIG9mIHRoZSBTb3VyY2UgRWRpdG9yIHdpbmRvdyBhbmQgY2hvb3NlClNob3cgTGluZSBOdW1iZXJzLiAKPC9saT4KPGJyPgo8bGk+U2V0IGEgYnJlYWtwb2ludCBieSBjbGlja2luZyBpbiB0aGUgbGVmdCBtYXJnaW4gb2YgdGhlIFNvdXJjZQpFZGl0b3Igd2luZG93IG5leHQgdG8gbGluZSAzMy4KPC9saT4KPGJyPgo8bGk+UmlnaHQtY2xpY2sgdGhlIHByb2plY3QgYW5kIGNob29zZSBEZWJ1ZyBQcm9qZWN0LiBJZiB0aGUgPHR0PmdkYjwvdHQ+CmRlYnVnZ2VyIGlzIGluc3RhbGxlZCBjb3JyZWN0ZWQgYW5kIHRoZSBwYXRoIHRvIGl0IGlzIHNldCwgPHR0PmdkYjwvdHQ+IHN0YXJ0cwp1cCwgdGhlIERlYnVnZ2VyIHRhYnMgYXJlIGRpc3BsYXllZCwgYW5kIHRoZSA8L3R0PldlbGNvbWU8L3R0PiBhcHBsaWNhdGlvbiAKcnVucyBhbmQgc3RvcHMgYXQgdGhlIGJyZWFrcG9pbnQuCjwvbGk+Cjxicj4KPGxpPkNob29zZSBSdW4gJmd0OyBDb250aW51ZSB0byBydW4gdGhlIGFwcGxpY2F0aW9uIHRvIGNvbXBsZXRpb24uCjwvbGk+IAo8L29sPgogICAgICAgICAgPGJyPjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cjxicj48aDIgc3R5bGU9ImNvbG9yOiMwRTFCNTUiPlNvbGFyaXMgT1M8L2gyPgo8cD48Yj5UbyBzdGFydCB0aGUgTmV0QmVhbnMgSURFIG9uIFNvbGFyaXMgc3lzdGVtczo8L2I+PC9wPgo8b2w+CjxsaT5OYXZpZ2F0ZSB0byB0aGUgPHR0PmJpbjwvdHQ+IHN1YmRpcmVjdG9yeSBvZiB5b3VyIGluc3RhbGxhdGlvbi4gPC9saT4KPGJyPgo8bGk+RXhlY3V0ZSB0aGUgbGF1bmNoZXIgc2NyaXB0IGJ5IHR5cGluZyA8dHQ+Li9uZXRiZWFuczwvdHQ+Lgo8L29sPgo8cD48Yj5UbyBidWlsZCBhIHNhbXBsZSBwcm9qZWN0IGFuZCBydW4gaXQgaW4gdGhlIGRlYnVnZ2VyOjwvYj4KPG9sPgo8bGk+T3BlbiB0aGUgTmV3IFByb2plY3Qgd2l6YXJkIGJ5IGNob29zaW5nIEZpbGUgJmd0OyBOZXcgUHJvamVjdC48L2xpPgo8YnI+CjxsaT5JbiB0aGUgQ2F0ZWdvcmllcyBwYW5lbCBvbiB0aGUgQ2hvb3NlIFByb2plY3QgcGFnZSBvZiB0aGUgd2l6YXJkLCBleHBhbmQgdGhlIFNhbXBsZXMgY2F0ZWdvcnkgYW5kIHRoZSBDL0MrKyBEZXZlbG9wbWVudCAKc3ViY2F0ZWdvcnksIGFuZCBzZWxlY3QgdGhlIEMvQysrIHN1YmNhdGVnb3J5LjwvbGk+Cjxicj4KPGxpPkluIHRoZSBQcm9qZWN0cyBwYW5lbCwgc2VsZWN0IHRoZSA8dHQ+V2VsY29tZTwvdHQ+IHByb2plY3QuIENsaWNrIE5leHQuCjwvbGk+Cjxicj4KPGxpPk9uIHRoZSBQcm9qZWN0IE5hbWUgYW5kIExvY2F0aW9uIHBhZ2UsIGNsaWNrIEZpbmlzaC4KPC9saT4KPGJyPgo8bGk+SW4gdGhlIFByb2plY3RzIHRhYiBvZiB0aGUgSURFLCByaWdodC1jbGljayB0aGUgPHR0PldlbGNvbWUxPC90dD4gcHJvamVjdCAKYW5kIGNob29zZSBQcm9wZXJ0aWVzLgo8L2xpPgo8YnI+CjxsaT5JbiB0aGUgUHJvamVjdCBQcm9wZXJ0aWVzIGRpYWxvZyBib3gsIHNldCB0aGUgQ29tcGlsZXIgQ29sbGVjdGlvbiBwcm9wZXJ0eQp0byB0aGUgY29tcGlsZXIgY29sbGVjdGlvbiB5b3Ugd2FudCB0byB2YWxpZGF0ZSBhbmQgY2xpY2sgT0suCjwvbGk+Cjxicj4KPGxpPkluIHRoZSBQcm9qZWN0cyB0YWIsIHJpZ2h0LWNsaWNrIHRoZSBwcm9qZWN0IGFuZApjaG9vc2UgQnVpbGQgUHJvamVjdC4gSWYgeW91ciBjb21waWxlcnMgYW5kIDx0dD5tYWtlPC90dD4gdXRpbGl0eSBhcmUKaW5zdGFsbGVkIGNvcnJlY3RseSBhbmQgdGhlIHBhdGggdG8gdGhlbSBpcyBzZXQsIGJ1aWxkIG91dHB1dCBpcyBkaXNwbGF5ZWQgaW4KdGhlIE91dHB1dCB3aW5kb3cgYW5kIHRoZSBwcm9qZWN0IGJ1aWxkcyBzdWNjZXNzZnVsbHkuCjwvbGk+Cjxicj4KPGxpPkRvdWJsZS1jbGljayB0aGUgPHR0PndlbGNvbWUuY2M8L3R0PiBmaWxlIHRvIG9wZW4gaXQgaW4gdGhlIFNvdXJjZQpFZGl0b3IuPC9saT4KPGJyPgo8bGk+UmlnaHQtY2xpY2sgaW4gdGhlIGxlZnQgbWFyZ2luIG9mIHRoZSBTb3VyY2UgRWRpdG9yIHdpbmRvdyBhbmQgY2hvb3NlClNob3cgTGluZSBOdW1iZXJzLiAKPC9saT4KPGJyPgo8bGk+U2V0IGEgYnJlYWtwb2ludCBieSBjbGlja2luZyBpbiB0aGUgbGVmdCBtYXJnaW4gb2YgdGhlIFNvdXJjZQpFZGl0b3Igd2luZG93IG5leHQgdG8gbGluZSAzMy4KPC9saT4KPGJyPgo8bGk+UmlnaHQtY2xpY2sgdGhlIHByb2plY3QgYW5kIGNob29zZSBEZWJ1ZyBQcm9qZWN0LiBJZiB0aGUgPHR0PmdkYjwvdHQ+CmRlYnVnZ2VyIGlzIGluc3RhbGxlZCBjb3JyZWN0ZWQgYW5kIHRoZSBwYXRoIHRvIGl0IGlzIHNldCwgPHR0PmdkYjwvdHQ+IHN0YXJ0cwp1cCwgdGhlIERlYnVnZ2VyIHRhYnMgYXJlIGRpc3BsYXllZCwgYW5kIHRoZSA8L3R0PldlbGNvbWU8L3R0PiBhcHBsaWNhdGlvbiAKcnVucyBhbmQgc3RvcHMgYXQgdGhlIGJyZWFrcG9pbnQuCjwvbGk+Cjxicj4KPGxpPkNob29zZSBSdW4gJmd0OyBDb250aW51ZSB0byBydW4gdGhlIGFwcGxpY2F0aW9uIHRvIGNvbXBsZXRpb24uCjwvbGk+IAo8L29sPgogICAgICAgICAgPGJyPjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cjxicj4KPGgyIHN0eWxlPSJjb2xvcjojMEUxQjU1Ij5MaW51eDwvaDI+CjxwPjxiPlRvIHN0YXJ0IHRoZSBOZXRCZWFucyBJREUgb24gTGludXggc3lzdGVtczo8L2I+PC9wPgo8b2w+CjxsaT5OYXZpZ2F0ZSB0byB0aGUgPHR0PmJpbjwvdHQ+IHN1YmRpcmVjdG9yeSBvZiB5b3VyIGluc3RhbGxhdGlvbi4gPC9saT4KPGJyPgo8bGk+RXhlY3V0ZSB0aGUgbGF1bmNoZXIgc2NyaXB0IGJ5IHR5cGluZyA8dHQ+Li9uZXRiZWFuczwvdHQ+Lgo8L29sPgo8cD48Yj5UbyBidWlsZCBhIHNhbXBsZSBwcm9qZWN0IGFuZCBydW4gaXQgaW4gdGhlIGRlYnVnZ2VyOjwvYj4KPG9sPgo8bGk+T3BlbiB0aGUgTmV3IFByb2plY3Qgd2l6YXJkIGJ5IGNob29zaW5nIEZpbGUgJmd0OyBOZXcgUHJvamVjdC48L2xpPgo8YnI+CjxsaT5JbiB0aGUgQ2F0ZWdvcmllcyBwYW5lbCBvbiB0aGUgQ2hvb3NlIFByb2plY3QgcGFnZSBvZiB0aGUgd2l6YXJkLCBleHBhbmQgdGhlIFNhbXBsZXMgY2F0ZWdvcnkgYW5kIHRoZSBDL0MrKyBEZXZlbG9wbWVudCAKc3ViY2F0ZWdvcnksIGFuZCBzZWxlY3QgdGhlIEMvQysrIHN1YmNhdGVnb3J5LjwvbGk+Cjxicj4KPGxpPkluIHRoZSBQcm9qZWN0cyBwYW5lbCwgc2VsZWN0IHRoZSA8dHQ+V2VsY29tZTwvdHQ+IHByb2plY3QuIENsaWNrIE5leHQuCjwvbGk+Cjxicj4KPGxpPk9uIHRoZSBQcm9qZWN0IE5hbWUgYW5kIExvY2F0aW9uIHBhZ2UsIGNsaWNrIEZpbmlzaC4KPC9saT4KPGJyPgo8bGk+SW4gdGhlIFByb2plY3RzIHRhYiBvZiB0aGUgSURFLCByaWdodC1jbGljayB0aGUgPHR0PldlbGNvbWUxPC90dD4gcHJvamVjdCAKYW5kIGNob29zZSBQcm9wZXJ0aWVzLgo8L2xpPgo8YnI+CjxsaT5JbiB0aGUgUHJvamVjdCBQcm9wZXJ0aWVzIGRpYWxvZyBib3gsIHNldCB0aGUgQ29tcGlsZXIgQ29sbGVjdGlvbiBwcm9wZXJ0eQp0byB0aGUgY29tcGlsZXIgY29sbGVjdGlvbiB5b3Ugd2FudCB0byB2YWxpZGF0ZSBhbmQgY2xpY2sgT0suCjwvbGk+Cjxicj4KPGxpPkluIHRoZSBQcm9qZWN0cyB0YWIsIHJpZ2h0LWNsaWNrIHRoZSBwcm9qZWN0IGFuZApjaG9vc2UgQnVpbGQgUHJvamVjdC4gSWYgeW91ciBjb21waWxlcnMgYW5kIDx0dD5tYWtlPC90dD4gdXRpbGl0eSBhcmUKaW5zdGFsbGVkIGNvcnJlY3RseSBhbmQgdGhlIHBhdGggdG8gdGhlbSBpcyBzZXQsIGJ1aWxkIG91dHB1dCBpcyBkaXNwbGF5ZWQgaW4KdGhlIE91dHB1dCB3aW5kb3cgYW5kIHRoZSBwcm9qZWN0IGJ1aWxkcyBzdWNjZXNzZnVsbHkuCjwvbGk+Cjxicj4KPGxpPkRvdWJsZS1jbGljayB0aGUgPHR0PndlbGNvbWUuY2M8L3R0PiBmaWxlIHRvIG9wZW4gaXQgaW4gdGhlIFNvdXJjZQpFZGl0b3IuPC9saT4KPGJyPgo8bGk+UmlnaHQtY2xpY2sgaW4gdGhlIGxlZnQgbWFyZ2luIG9mIHRoZSBTb3VyY2UgRWRpdG9yIHdpbmRvdyBhbmQgY2hvb3NlClNob3cgTGluZSBOdW1iZXJzLiAKPC9saT4KPGJyPgo8bGk+U2V0IGEgYnJlYWtwb2ludCBieSBjbGlja2luZyBpbiB0aGUgbGVmdCBtYXJnaW4gb2YgdGhlIFNvdXJjZQpFZGl0b3Igd2luZG93IG5leHQgdG8gbGluZSAzMy4KPC9saT4KPGJyPgo8bGk+UmlnaHQtY2xpY2sgdGhlIHByb2plY3QgYW5kIGNob29zZSBEZWJ1ZyBQcm9qZWN0LiBJZiB0aGUgPHR0PmdkYjwvdHQ+CmRlYnVnZ2VyIGlzIGluc3RhbGxlZCBjb3JyZWN0ZWQgYW5kIHRoZSBwYXRoIHRvIGl0IGlzIHNldCwgPHR0PmdkYjwvdHQ+IHN0YXJ0cwp1cCwgdGhlIERlYnVnZ2VyIHRhYnMgYXJlIGRpc3BsYXllZCwgYW5kIHRoZSA8L3R0PldlbGNvbWU8L3R0PiBhcHBsaWNhdGlvbiAKcnVucyBhbmQgc3RvcHMgYXQgdGhlIGJyZWFrcG9pbnQuCjwvbGk+Cjxicj4KPGxpPkNob29zZSBSdW4gJmd0OyBDb250aW51ZSB0byBydW4gdGhlIGFwcGxpY2F0aW9uIHRvIGNvbXBsZXRpb24uCjwvbGk+IAo8L2Jsb2NrcXVvdGU+ICAKICAgICAgICAgIDxicj48cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9wPgo8YnI+CjwhLS0gVU5JTlNUQUxMQVRJT04gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo8aDI+PGEgbmFtZT0idW5pbnN0YWxsYXRpb24iPlVuaW5zdGFsbGluZyB0aGUgU29mdHdhcmU8L2E+PC9oMj4KPGJsb2NrcXVvdGU+Cgo8IS0tIFVOSU5TVEFMTEFUSU9OOiBXSU5ET1dTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPGgyIHN0eWxlPSJjb2xvcjojMEUxQjU1Ij48YSBuYW1lPSJ1bmluc3RhbGxfd2luZG93cyI+V2luZG93czwvYT48L2gzPgo8cD48Yj5UbyBVbmluc3RhbGwgdGhlIFNvZnR3YXJlPC9iPjwvcD4KPG9sPgo8bGk+U2h1dCBkb3duIHRoZSBJREUuPC9saT4KPGxpPkZyb20gdGhlIENvbnRyb2wgUGFuZWwsIHN0YXJ0IEFkZCBvciBSZW1vdmUgUHJvZ3JhbXMsIHNlbGVjdCAKTmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUgYW5kIGNsaWNrIENoYW5nZS9SZW1vdmUuPC9saT4KPGxpPkZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSB1bmluc3RhbGxlci48L2xpPgo8L29sPgoKPCEtLSBVTklOU1RBTExBVElPTjogU09MQVJJUyBhbmQgTElOVVggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cgo8aDIgc3R5bGU9ImNvbG9yOiMwRTFCNTUiPjxhIG5hbWU9InVuaW5zdGFsbF9zb2xsaW51eCI+U29sYXJpcyBPUywgTGludXg8L2E+PC9oMz4KPHA+PGI+VG8gVW5pbnN0YWxsIHRoZSBTb2Z0d2FyZTwvYj48L3A+CjxvbD4KPGxpPlNodXQgZG93biB0aGUgSURFLjwvbGk+CjxsaT5OYXZpZ2F0ZSB0byB0aGUgLzx0dD48aT5OZXRCZWFucy01LjUtZGlyZWN0b3J5PC9pPi9jbmQxL191bmluc3Q8L3R0PgpkaXJlY3RvcnkuCjwvbGk+CjxsaT5UeXBlIDx0dD4uL3VuaW5zdGFsbGVyPC90dD4gdG8gcnVuIHRoZSBJbnN0YWxsU2hpZWxkIHVuaW5zdGFsbGVyLgo8L2xpPgoKPC9vbD4KPC9ibG9ja3F1b3RlPgo8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9wPgo8YnI+CjxoMj48YSBuYW1lPSJ0cm91Ymxlc2hvb3QiPlRyb3VibGVzaG9vdGluZzwvYT48L2gyPgoKPHA+SWYgeW91IGV4cGVyaWVuY2UgcHJvYmxlbXMgaW5zdGFsbGluZyBvciBydW5uaW5nIHRoZSBzb2Z0d2FyZSwgc2VlIHRoZSBsaXN0IG9mIGlzc3VlcyBiZWxvdyBmb3Igd29ya2Fyb3VuZHMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2Yga25vd24gaXNzdWVzLCBzeXN0ZW0gcmVxdWlyZW1lbnRzIGFuZCBvdGhlciB1c2VmdWwgaW5mb3JtYXRpb24sIHNlZSB0aGUgPGEKaHJlZj0iY25kLXJlbGVhc2Utbm90ZXMuaHRtbCI+UmVsZWFzZSZuYnNwO05vdGVzPC9hPi4gPC9wPgo8cD5Gb2xsb3dpbmcgYXJlIHRoZSB1bnJlc29sdmVkIGlzc3VlcyBmb3IgdGhpcyByZWxlYXNlIHRoYXQgY291bGQgYWZmZWN0IG9yIGRpc3J1cHQgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzOiA8L3A+Cjx1bD4KCgoKPCEtLUJ1ZyBJZDogNjM3OTU3OSBodHRwOi8vYnQyd3MuY2VudHJhbC5zdW4uY29tL0NyUHJpbnQ/aWQ9NjM3OTU3OSAtIGNoZWNrZWQgZm9yIFRQUjMgLS0+CjxsaT48c3BhbiBzdHlsZT0iY29sb3I6ICMwNDU0OTE7Ij48Yj5JbnN0YWxsZXIgZXhjZXB0aW9ucyB3aGVuIHJ1bm5pbmcgb24gSlJFIDEuNC48L2I+PC9hPjwvc3Bhbj4KPGJsb2NrcXVvdGU+CjxwPjxzdHJvbmc+RGVzY3JpcHRpb246IDwvc3Ryb25nPiBPbiBNaWNyb3NvZnQgV2luZG93cywgaWYgdGhlcmUgaXMgbm8gcHJlaW5zdGFsbGVkIGNvbXBhdGlibGUgSkRLIG9uIHRoZSB0YXJnZXQgbWFjaGluZSwgdGhlIEluc3RhbGxTaGllbGQgV2luZG93cyBsYXVuY2hlciBhbGxvd3MgeW91IHRvIHNlbGVjdCBhIGN1c3RvbSA8dHQ+amF2YS5leGU8L3R0Pi4gQWZ0ZXIgeW91IHNlbGVjdCBhIGN1c3RvbSA8dHQ+amF2YS5leGU8L3R0PiB0aGUgaW5zdGFsbGVyIGRvZXMgbm90IHBlcmZvcm0gYSB2YWxpZGF0aW9uIGZvciBjb21wYXRpYmlsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgeW91IHNlbGVjdCBhIDx0dD5qYXZhLmV4ZTwvdHQ+IGZyb20gYSAxLjQgSlJFLCB3aGljaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBpbnN0YWxsZXIsIHlvdSB3aWxsIGVuY291bnRlciBhIG51bWJlciBvZiBleGNlcHRpb25zLiBUaGUgaXNzdWUgZXhpc3RzIGluIHRoZSBJbnN0YWxsU2hpZWxkIGZyYW1ld29yay48L3A+Cgo8cD48c3Ryb25nPldvcmthcm91bmQ6IDwvc3Ryb25nPiBTZWxlY3QgYSA8dHQ+amF2YS5leGU8L3R0PiBmcm9tIGEgMS41IEpSRS4gU2VlIDxhCmhyZWY9ImNuZC1yZWxlYXNlLW5vdGVzLmh0bWwjcmVxX3N3IiB0aXRsZT0iUmVxdWlyZWQgU29mdHdhcmUiPlJlcXVpcmVkJm5ic3A7U29mdHdhcmU8L2E+IGZvciBpbmZvcm1hdGlvbiBhYm91dCBkb3dubG9hZGluZyBhbmQgaW5zdGFsbGluZyBhIGNvbXBhdGlibGUgSkRLLjwvcD4KPC9ibG9ja3F1b3RlPgo8L2xpPgoKPCEtLSBCdWcgSWQ6IDYzNzUwODYgaHR0cDovL2J0MndzLmNlbnRyYWwuc3VuLmNvbS9DclByaW50P2lkPTYzNzUwODYgLSBjaGVja2VkIGZvciBUUFIzIC0tPgo8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiAjMDQ1NDkxOyI+PGI+SW5zdGFsbGVyIGZhaWxzIHRvIHN0YXJ0IGNvcnJlY3RseSBvbiBVTklYLjwvYj48L2E+PC9zcGFuPgoKPGJsb2NrcXVvdGU+CjxwPjxzdHJvbmc+RGVzY3JpcHRpb246IDwvc3Ryb25nPlRoZSBpbnN0YWxsZXIgaXMga25vd24gdG8gZmFpbCB0byBzdGFydCB1cCBjb3JyZWN0bHkgb24gVU5JWCB3aGVuIGlzIHRoZXJlIGlzIGxpdHRsZSBvciBubyBkaXNrIHNwYWNlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgZmlsZXN5c3RlbS4gVGhlIHByb2JsZW0gZXhpc3RzIGluIHRoZSBJbnN0YWxsU2hpZWxkIGZyYW1ld29yay4gVGhpcyBpc3N1ZSB3YXMgb2JzZXJ2ZWQgb24gbWFjaGluZXMgd2l0aCBsZXNzIHRoYW4gMi41IE1CIGZyZWUgaW4gdGhlIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0uPC9wPgo8cD48c3Ryb25nPldvcmthcm91bmQ6IDwvc3Ryb25nPiBGcmVlIHVwIGVub3VnaCBkaXNrIHNwYWNlIGluIHRoZSByb290IG9mIHRoZSBmaWxlc3lzdGVtIGFuZCByZXN0YXJ0IHRoZSBpbnN0YWxsZXIuPC9wPgo8L2Jsb2NrcXVvdGU+CjwvbGk+CjwvdWw+Cgo8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9wPgo8YnI+CjwhLS0gRW5kIENvbnRlbnQgQXJlYSAtLT4KPC9kaXY+Cgo8IS0tIEVuZCBDb250ZW50IEFyZWEgLS0+CjwvZGl2Pgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8L2JvZHk+CjwvaHRtbD4K