PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjwhLS0gCiAgICBDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAogICAgQ29udHJpYnV0b3JzOgogICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgotLT4KCjxodG1sPgo8aGVhZD4KPHRpdGxlPlVudGl0bGVkIERvY3VtZW50PC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+CjwvaGVhZD4KCjxib2R5Pgo8aDI+PGE+PC9hPjxhPkV4ZXJjaXNlIDM6IENyZWF0ZSBhIERlbGl2ZXJ5IFByb2Nlc3MgPC9hPjwvaDI+CjxwPlRoZSBwdXJwb3NlIG9mIHRoaXMgZXhlcmNpc2UgaXMgdG8gbGVhcm4gaG93IHRvIGNyZWF0ZSBhIGRlbGl2ZXJ5IHByb2Nlc3MgdXNpbmcgY29yZSBtZXRob2QgY29udGVudCBkaXJlY3RseS4gPC9wPgo8cD5JbiA8c3Ryb25nPlByb2Nlc3MgQXV0aG9yaW5nIDwvc3Ryb25nPiB3ZSBkbyBub3QgZGlyZWN0bHkgaW5jbHVkZSB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGNvcmUgbWV0aG9kIGVsZW1lbnRzIGluIHRoZSBXQlMgYnV0IHJhdGhlciBjcmVhdGUgbG9jYWwgcmVmZXJlbmNlcyB0ZXJtZWQgPHN0cm9uZz5kZXNjcmlwdG9ycyA8L3N0cm9uZz4gdGhhdCByZWZlciBiYWNrIHRvIHRoZSBlbGVtZW50cyBpbiB0aGUgbWV0aG9kIGxpYnJhcnkgYnV0IGFsc28gY29udGFpbiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgaXMgb25seSByZWxldmFudCB0byB0aGUgbG9jYWwgcHJvY2Vzcy4gPC9wPgo8cD5EZXNjcmlwdG9ycyBhbHNvIHByb3ZpZGUgYSBtZWNoYW5pc20gd2hlcmVieSByZWxhdGlvbnNoaXBzIGRlZmluZWQgaW4gY29yZSBtZXRob2QgYXV0aG9yaW5nIChlLmcuIHJvbGVzIGFzc29jaWF0ZWQgd2l0aCBhIHRhc2ssIGlucHV0IGFuZCBvdXRwdXQsIHdvcmsgcHJvZHVjdHMsIGV0Yy4pLCBjYW4gYmUgZGVmaW5lZCBvciBjaGFuZ2VkIGxvY2FsbHkgd2l0aGluIHRoZSBwcm9jZXNzLiA8L3A+CjxvbD4KICA8bGk+ICAgIENyZWF0ZSBhIG5ldyBEZWxpdmVyeSBQcm9jZXNzIGluIHRoZSBNeSBQbHVnaW4sIHBsdWctaW4gY2FsbGVkLCBNeSBSVVAuIDwvbGk+CiAgPGJsb2NrcXVvdGU+CiAgICA8cD5XaGVuIHlvdSBjcmVhdGUgYSBwcm9jZXNzIHlvdSBhcmUgYXNrZWQgdG8gaWRlbnRpZnkgdGhlIGRlZmF1bHQgQ29uZmlndXJhdGlvbiB0byBiZSB1c2VkIHdpdGggdGhlIHByb2Nlc3MuIFNlbGVjdCB0aGUgTXkgUlVQIGZvciBTbWFsbCBQcm9qZWN0cyBjb25maWd1cmF0aW9uLiBJZiB5b3UgbmF2ZSBub3QgY3JlYXRlZCB0aGlzIGNvbmZpZ3VyYXRpb24sIHNlbGVjdCBSVVAgZm9yIFNtYWxsIFByb2plY3RzLiA8L3A+CiAgICA8cD5BIHByb2Nlc3MgaGFzIGEgaGllcmFyY2h5IG9mIGFjdGl2aXRpZXMgYW5kIGNhbiBpbmNsdWRlIHRoZSBzcGVjaWFsIHR5cGVzIG9mIGFjdGl2aXR5IJYgUGhhc2VzIGFuZCBJdGVyYXRpb25zLiBUaGVzZSBzdHJ1Y3R1cmVzIGNhbiBhbHNvIGJlIGNyZWF0ZWQgaW4gQ2FwYWJpbGl0eSBQYXR0ZXJucy4gRmlyc3Qgb2YgYWxsLCB3ZSdsbCBjcmVhdGUgc29tZSBhY3Rpdml0aWVzIGRpcmVjdGx5IGFuZCByZXVzZSBzb21lIGNhcGFiaWxpdHkgcGF0dGVybnMgbGF0ZXIuIDwvcD4KICA8L2Jsb2NrcXVvdGU+CiAgPGxpPgogICAgPHA+IFRvIGNyZWF0ZSB0aGUgSW5jZXB0aW9uIFBoYXNlLCBpbiB0aGUgV29yayBCcmVha2Rvd24gU3RydWN0dXJlIHZpZXcsIHJpZ2h0IGNsaWNrIHRoZSA8c3Ryb25nPk15IFJVUCA8L3N0cm9uZz5Qcm9jZXNzLCBhbmQgdGhlbiBzZWxlY3QsIDxzdHJvbmc+TmV3IENoaWxkICZndDsgUGhhc2UgPC9zdHJvbmc+LiBDYWxsIHRoZSBQaGFzZSwgPHN0cm9uZz5JbmNlcHRpb248L3N0cm9uZz4uIDwvcD4KICA8L2xpPgogIDxsaT4gICAgCiAgICA8cD5UbyBjcmVhdGUgdGhlIFJlcXVpcmVtZW50cyBEaXNjaXBsaW5lIGluIEluY2VwdGlvbiwgaW4gdGhlIDxzdHJvbmc+V29yayBCcmVha2Rvd24gU3RydWN0dXJlIDwvc3Ryb25nPiB2aWV3LCByaWdodCBjbGljayA8c3Ryb25nPkluY2VwdGlvbiwgPC9zdHJvbmc+IGFuZCBzZWxlY3QgPHN0cm9uZz5OZXcgPC9zdHJvbmc+PHN0cm9uZz5DaGlsZCAmZ3Q7IEFjdGl2aXR5IDwvc3Ryb25nPi4gQ2FsbCB0aGlzIDxzdHJvbmc+UmVxdWlyZW1lbnRzPC9zdHJvbmc+LiA8L3A+CiAgPC9saT4KICA8bGk+VG8gYWRkIFRhc2tzIHRvIHRoZSBSZXF1aXJlbWVudHMgYWN0aXZpdHksIGluIHRoZSA8c3Ryb25nPkNvbmZpZ3VyYXRpb24gPC9zdHJvbmc+IHZpZXcsIG9wZW4gdGhlIFJlcXVpcmVtZW50cyBEaXNjaXBsaW5lIGFuZCB0aGVuIGRyYWcgYW5kIGRyb3AgdGhlIGZvbGxvd2luZyB0YXNrcyBvbnRvIHRoZSBSZXF1aXJlbWVudHMgQWN0aXZpdHkgeW91IGhhdmUganVzdCBjcmVhdGVkOiAgPC9saT4KICA8YmxvY2txdW90ZT4KICAgIDxwPiYjMTQ5OyZuYnNwOyBEZXZlbG9wIFZpc2lvbiA8L3A+CiAgICA8cD4mIzE0OTsmbmJzcDsgRGV0YWlsIHRoZSBTb2Z0d2FyZSBSZXF1aXJlbWVudHMgPC9wPgogICAgPHA+JiMxNDk7Jm5ic3A7IEZpbmQgQWN0b3JzIGFuZCB1c2UgQ2FzZXMgPC9wPgogICAgPHA+V2hlbiB5b3UgaW5jbHVkZSB0aGVzZSB0YXNrcyBpbiB5b3VyIHByb2Nlc3MsIHRoZSBhc3NvY2lhdGVkIHJvbGVzIGFuZCB3b3JrIHByb2R1Y3RzIGFyZSBhbHNvIGluY2x1ZGVkIGluIHRoZSBwcm9jZXNzLiA8L3A+CiAgPC9ibG9ja3F1b3RlPgogIDxsaT4KICAgIDxwPiBZb3UgY2FuIHJldmlldyB0aGUgaW5mb3JtYXRpb24gZm9yIGVhY2ggbWV0aG9kIGVsZW1lbnQgaW4gdGhlIDxzdHJvbmc+UHJvcGVydGllcyA8L3N0cm9uZz4gdmlldy4gPC9wPgogIDwvbGk+CiAgPGxpPgogICAgPHA+IEN1c3RvbWl6ZSB0aGUgc3RlcHMgZnJvbSB0aGUgRmluZCBBY3RvcnMgYW5kIFVzZSBDYXNlcyB0YXNrIGZvciB0aGUgSW5jZXB0aW9uIHBoYXNlLiBDbGljayBvbiB0aGUgPHN0cm9uZz5GaW5kIEFjdG9ycyBhbmQgVXNlIENhc2VzPC9zdHJvbmc+IHRhc2sgZGVzY3JpcHRvciwgYW5kIG9wZW4gdGhlIDxzdHJvbmc+UHJvcGVydGllczwvc3Ryb25nPiB2aWV3LiBDbGljayBvbiB0aGUgPHN0cm9uZz5TdGVwczwvc3Ryb25nPiB0YWIuIFJlbW92ZSB0aGUgbGFzdCBmb3VyIHN0ZXBzIGFuZCBjbG9zZSB0aGUgcHJvcGVydGllcyB2aWV3LiA8L3A+CiAgPC9saT4KICA8bGk+CiAgICA8cD4gU3dpdGNoIHRvIHRoZSA8c3Ryb25nPkJyb3dzaW5nPC9zdHJvbmc+IHBlcnNwZWN0aXZlIGFuZCBzZWxlY3QgPHN0cm9uZz5Qcm9jZXNzZXMgJmd0OyBEZWxpdmVyeSBQcm9jZXNzZXMgJmd0OyBNeSBSVVA8L3N0cm9uZz4uIFRoZSBXb3JrIEJyZWFrZG93biBTdHJ1Y3R1cmUgdGFiIGlzIGRpc3BsYXllZC4gQ2xpY2sgb24gPHN0cm9uZz5GaW5kIEFjdG9ycyBhbmQgVXNlIENhc2VzPC9zdHJvbmc+LiBPbmx5IHRoZSBmaXJzdCB0aHJlZSBzdGVwcyBmcm9tIHRoZSBjb3JlIG1ldGhvZCB0YXNrIGFyZSBpbmNsdWRlZC4gPC9wPgogIDwvbGk+CiAgPGxpPk1ha2Ugb3RoZXIgY2hhbmdlcyB0byB0aGUgdGFza3MgaW4gdGhlIGRlbGl2ZXJ5IHByb2Nlc3MgeW91IGhhdmUganVzdCBjcmVhdGVkIGFuZCBzZWUgaG93IHRoZXkgYXJlIHJlZmxlY3RlZCB3aGVuIHlvdSB2aWV3IHRoZSBwcm9jZXNzIGluIHRoZSBCcm93c2luZyBwZXJzcGVjdGl2ZS48L2xpPgo8L29sPgo8L2JvZHk+CjwvaHRtbD4K