PEhUTUw+CjxIRUFEPgo8dGl0bGU+bmV0YmVhbnMub3JnOiBOZXRCZWFucyBXZWVrbHkgTmV3cyBJc3N1ZSAjMjI2IC0gSmFuIDI1LCAyMDA2PC90aXRsZT4KPE1FVEEgTkFNRT0iZGVzY3JpcHRpb24iIENPTlRFTlQ9Ik5ld3NsZXR0ZXIgMjAwNi0wMS0yNSI+Cgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvbmV0YmVhbnMuY3NzIj4KPE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMiI+Cgo8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KPCEtLSBQbGVhc2UgZG8gbm90IGVkaXQgdGhpcyBmaWxlIGJ5IGhhbmQsIGl0IGlzIHJlYnVpbHQgICAgLS0+CjwhLS0gYXV0b21hdGljYWxseSBhbmQgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4gIENvbnRhY3QgIC0tPgo8IS0tIHdlYm1hc3RlciBmb3IgZGV0YWlscy4gIFJlYnVpbHQgYXQgICAgICAgICAgICAgICAgICAgICAtLT4KPCEtLSAjVElNRVNUQU1QIyAyNS1KYW4gMTM6MTAgQ0VUICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4KPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CjwvSEVBRD4KPEJPRFk+Cgo8aDE+TmV0QmVhbnMgV2Vla2x5IE5ld3M8YnI+SXNzdWUgIzIyNiAtIEphbiAyNSwgMjAwNjwvaDE+PGhyPgpOZXRCZWFucyBXZWVrbHkgTmV3cywgYSBuZXdzbGV0dGVyIGZvciB0aGUgTmV0QmVhbnMgY29tbXVuaXR5PGJyPgpJc3N1ZSAjMjI2IC0gSmFuIDI1LCAyMDA2PGJyPgpVUkw6ICZsdDs8YSBocmVmPSdodHRwczovL25ldGJlYW5zLm9yZy9jb21tdW5pdHkvbmV3cy9uZXdzbGV0dGVyLzIwMDYtMDEtMjUuaHRtbCc+aHR0cHM6Ly9uZXRiZWFucy5vcmcvY29tbXVuaXR5L25ld3MvbmV3c2xldHRlci8yMDA2LTAxLTI1Lmh0bWw8L2E+Jmd0Ozxicj4KSW50ZXJlc3RlZCBpbiBiZWNvbWluZyBhIG5ld3NsZXR0ZXIgZWRpdG9yPyAgV2UncmUgYWx3YXlzIGxvb2tpbmc8YnI+CmZvciBlZGl0b3JzIHRvIGhlbHAgb3V0LiBDb250YWN0IDxhIGhyZWY9J21haWx0bzpuYm5ld3NfY29udHJpYkBuZXRiZWFucy5vcmcnPm5ibmV3c19jb250cmliQG5ldGJlYW5zLm9yZzwvYT48YnI+ClBsZWFzZSBzZW5kIG5ld3MgY29udHJpYnV0aW9ucyB0byA8YSBocmVmPSdtYWlsdG86bmJuZXdzX2NvbnRyaWJAbmV0YmVhbnMub3JnJz5uYm5ld3NfY29udHJpYkBuZXRiZWFucy5vcmc8L2E+PGJyPgo8aHI+PHByZT5OZXRCZWFucyA1LjAgUmVsZWFzZSBDYW5kaWRhdGUgMiBOb3cgQXZhaWxhYmxlDQpBIHNlY29uZCByZWxlYXNlIGNhbmRpZGF0ZSBvZiBOZXRCZWFucyBJREUgNS4wLCBOZXRCZWFucyBQbGF0Zm9ybSA1LjAsDQpOZXRCZWFucyBNb2JpbGl0eSBQYWNrIDUuMCBhbmQgTmV0QmVhbnMgUHJvZmlsZXIgNS4wIGFyZSBub3cgYXZhaWxhYmxlLg0KU3RheSB0dW5lZCBmb3IgdGhlIG9mZmljaWFsIDUuMCBsYXVuY2ggd2hpY2ggc2hvdWxkIGJlIGhlcmUgbmV4dCB3ZWVrIQ0KJmx0OzxhIGhyZWY9Imh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjM3Ij5odHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTIzNzwvYT4mZ3Q7DQoNCkF1dG9VcGRhdGUgU3VydmV5IEludml0YXRpb24NClRoZSBOZXRCZWFucyBQbGF0Zm9ybSB0ZWFtIGlzIGxvb2tpbmcgZm9yIHlvdXIgZXhwZXJpZW5jZXMgd2l0aCB0aGUNCkF1dG9VcGRhdGUgZmVhdHVyZSBpbiBOZXRCZWFucy4gUGxlYXNlIHRha2UgYSBtaW51dGUgdG8gZmlsbCBvdXQgdGhlIHNob3J0DQpzdXJ2ZXkgYW5kIGhlbHAgdXMgdG8gaW1wcm92ZSBvdXIgQXV0b1VwZGF0ZSBmb3IgZnV0dXJlIE5ldEJlYW5zIHJlbGVhc2VzLg0KJmx0OzxhIGhyZWY9Imh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjQ2Ij5odHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI0NjwvYT4mZ3Q7DQoNCk5ldEJlYW5zIERheSBCYW5na29rLCBUaGFpbGFuZA0KVGhlIG5leHQgTmV0QmVhbnMgRGF5IGV2ZW50IHdpbGwgdGFrZSBwbGFjZSBvbiBKYW51YXJ5IDI2dGggYXQgdGhlIENvbnJhZA0KSG90ZWwuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBhZ2VuZGEgYW5kIGFic3RyYWN0cyBjb250aW51ZSBoZXJlLiBOb3Qgc3RvcA0KQ2hlbm5haSwgSW5kaWEuDQombHQ7PGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yMzgiPmh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjM4PC9hPiZndDsNCg0KUHJvbW90ZSBZb3VyIE5ldEJlYW5zIFBsdWctaW4NCk5ldEJlYW5zIDUuMCBoYXMgbm90IGV2ZW4gb2ZmaWNpYWxseSBsYXVuY2hlZCB5ZXQgYW5kIHRoZXJlIGFyZSBhbHJlYWR5DQpsb2FkcyBvZiB1c2VmdWwgcGx1Zy1pbnMgYmVpbmcgYnVpbGQuIFRoaXMgaXMgZGVmaW5pdGVseSBhIHRlc3RpbW9uaWFsIG9mDQpob3cgZWFzeSBpdCBoYXMgYmVjb21lIHRvIGNyZWF0ZSBuZXcgcGx1Zy1pbnMgaW4gTmV0QmVhbnMgNS4wLiBJZiB5b3UgaGF2ZQ0KYSBwbHVnLWluIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gc2hhcmUgd2l0aCBOZXRCZWFucyB1c2VycyB3b3JsZHdpZGUgYW5kDQp3b3VsZCBsaWtlIHRvIGxpc3QgaXQgb24gdGhlIE5ldEJlYW5zLm9yZyB3ZWJzaXRlIHRoZW4gaGVhZCBvdmVyIHRvOg0KJmx0OzxhIGhyZWY9Imh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjM5Ij5odHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTIzOTwvYT4mZ3Q7DQoNClRoZSBGaW5kQnVncyBQbHVnLWluIGZvciBOZXRCZWFucw0KVGhlIHBsdWctaW4gcHJvdmlkZXMgYSB0aWdodCBpbnRlZ3JhdGlvbiBvZiB0aGUgcmVzdWx0cyBvZiBhIGZpbmRidWdzIHJ1bg0Kd2l0aCB0aGUgTmV0QmVhbnMgaW5mcmFzdHJ1Y3R1cmUuIFRoZSBVSSBpcyBtb2RlbGVkIGFmdGVyIHRoZSByZWZhY3RvcmluZw0KdmlldyBmcm9tIE5ldEJlYW5zLg0KJmx0OzxhIGhyZWY9Imh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjQwIj5odHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI0MDwvYT4mZ3Q7DQoNCk5ldEJlYW5zIFVwZGF0ZSBDZW50ZXIgTW9kdWxlIGluIEhUTUwNCk1hcnRpbiBBZGFtZWsgaGFzIHdyaXR0ZW4gYSBOZXRCZWFucyBtb2R1bGUgZm9yIHRyYW5zZm9ybWluZyBVcGRhdGUNCkNlbnRlciB4bWwgY29uZmlndXJhdGlvbiBmaWxlIHRvIGh0bWwgcGFnZS4gSXQgbWlnaHQgYmUgdXNlZnVsIGZvciB5b3UgaWYNCnlvdSB3YW50IHRvIHByb3ZpZGUgYW4gaHRtbCBwYWdlIGxpc3RpbmcgYW5kIGRlc2NyaWJpbmcgbW9kdWxlcyB5b3UgYXJlDQpwcm92aWRpbmcgaW4geW91ciBvd24gVXBkYXRlIENlbnRlci4NCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI0MSI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yNDE8L2E+Jmd0Ow0KDQpBY2Nlc3NpbmcgRGVyYnkgVXNpbmcgSk5ESQ0KQWZ0ZXIgcmVhZGluZyBteSBEZXJieSBUdXRvcmlhbCwgYSBjby13b3JrZXIgYXNrZWQgbWUgYWJvdXQgdXNpbmcgSk5ESSB0bw0KYWNjZXNzIHRoZSBEZXJieSBkYXRhYmFzZS4gSGVyZSBhcmUgdGhlIHN0ZXBzIHJlcXVpcmVkIHRvIGFjY2VzcyBEZXJieSBhcw0KYSByZXNvdXJjZSBjb25maWd1cmVkIGluIFRvbWNhdCA1LjUuDQombHQ7PGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yNDIiPmh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjQyPC9hPiZndDsNCg0KU2V0IFJ1bnRpbWUgQXJndW1lbnRzIFBlciBDbGFzcyENCllvdSdyZSBkZXZlbG9waW5nIGFuIGFwcGxpY2F0aW9uIGFuZCB5b3UgaGF2ZSBtb3JlIHRoYW4gb25lIG1haW4gSmF2YQ0KY2xhc3MuLi4geW91J3JlIHRlc3RpbmcgdGhlbSBvdXQuLi4gYnV0IHRoZW4geW91IGRpc2NvdmVyOiB5b3UgY2FuIG9ubHkNCnNldCBhcmd1bWVudHMgcGVyIHByb2plY3QhIE5vdCBwZXIgY2xhc3MhIFNvIGFsbCB5b3VyIG1haW4gY2xhc3NlcyBoYXZlIHRvDQp1c2UgdGhlIHNhbWUgYXJndW1lbnRzISBBbmQgeW91IGhhdmUgdG8ga2VlcCBnb2luZyBpbnRvIHRoZSBQcm9qZWN0DQpQcm9wZXJ0aWVzIGRpYWxvZyBib3ggdG8gY2hhbmdlIHRoZSBhcmd1bWVudHMhIEFhYWFhcmdoLiBIb3dldmVyLCB0aGlzIGlzDQpubyBsb25nZXIgdHJ1ZSwgdGhhbmtzIHRvIE5ldEJlYW5zIHVzZXIgSXbhbiBSaXZlcmEgUm9kcu1ndWV6LiBOb3csIGVpdGhlcg0KaW4gNC4xIG9yIDUuMCwgeW91IGNhbiBzZXQgYXJndW1lbnRzIHBlciBtYWluIEphdmEgY2xhc3MuIEZvciBkZXRhaWxzLCBzZWUNCkdlZXJ0amFuJ3MgYmxvZzoNCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI0MyI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yNDM8L2E+Jmd0Ow0KDQpOZXRCZWFucyBQb2RjYXN0IE51bWJlciA0DQpJbiB0aGlzIGxhdGVzdCBQb2RjYXN0IGluc3RhbGxtZW50IGJ5IFJvdW1lbiBTdHJvYmwgaGUgZGlzY3Vzc2VzIE5ldEJlYW5zDQo1LjAgUkMyLCBNYXRpc3NlIEZsYXNoIFR1dG9yaWFsLCBTYW5kaXAgQ2hpdGFsZSdzIGJsb2csIE5ldEJlYW5zIEZyYXBwciENCk1hcCwgSk1YIE1vZHVsZSBnb2luZyBzdGFibGUgYW5kIGEgcXVpY2sgUSZBIHNlc3Npb24uIElmIHlvdSBldmVyIGZvcmdldA0KdGhlIFVSTCBvZiBSb21hbidzIGJsb2cgYW5kIGFyZSBsb29raW5nIGZvciBOZXRCZWFucyBQb2RjYXN0IHlvdSBjYW4gbm93DQpzdWJzY3JpYmUgdG8gaXQgdmlhIGlUdW5lcy4gSnVzdCBnbyB0byB0aGUgUG9kY2FzdCBzZWN0aW9uIGFuZCBzZWFyY2ggZm9yDQpOZXRCZWFucy4gQ2xpY2sgb24gc3Vic2NyaWJlIGJ1dHRvbiBuZXh0IHRvIFJvdW1lbidzIFdlYmxvZy4NCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI0NCI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yNDQ8L2E+Jmd0Ow0KDQpXaGF0IERvIE5ldEJlYW5zIFVzZXJzIExvb2sgTGlrZT8NClJvdW1lbiBoYXMgaW4gaGlzIGJsb2cgYSByb2xsaW5nIHN0cmlwZSB3aXRoIGZhY2VzIG9mIE5ldEJlYW5zIHVzZXJzLg0KSm9pbiBvdXIgRnJhcHByISBmdW4gYW5kIGFkZCBhIG5vZGUgaW50byB0aGUgR29vZ2xlIG1hcCB3aXRoIHlvdXIgZmFjZToNCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI0NSI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yNDU8L2E+Jmd0OyA8L3ByZT48aHI+VGhpcyBpc3N1ZSBvZiBOZXRCZWFucyBXZWVrbHkgTmV3cyB3YXMgYnJvdWdodCB0byB5b3UgYnkgUm9iZXJ0IERlbW1lci48YnI+ClRoZSBuZXh0IGVkaXRvciB3aWxsIGJlIFJvYmVydCBEZW1tZXIuIChOZXcgdm9sdW50ZWVycyBhcmUgd2VsY29tZSEpPGJyPgpQbGVhc2Ugc2VuZCBuZXdzIGNvbnRyaWJ1dGlvbnMgdG8gPGEgaHJlZj0nbWFpbHRvOm5ibmV3c19jb250cmliQG5ldGJlYW5zLm9yZyc+bmJuZXdzX2NvbnRyaWJAbmV0YmVhbnMub3JnPC9hPjwvQk9EWT4KPC9IVE1MPg==