QXBhY2hlIEFiZGVyYTogQ2hhbmdlcyBpbiAxLjEuMiBSZWxlYXNlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KQUJERVJBLTI3ODogRml4IHRvIHJlbGF4IHRoZSB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBjb21tb25zLWNvZGVjIGluIE9TR2kgbWFuaWZlc3RzDQpBQkRFUkEtMjc3OiBBcHBseSBwYXRjaCBmcm9tIE9sdmUgU+Z0aGVyIEhhbnNlbiB0byBmaXggRXhjZXNzaXZlIGNhbGxzIHRvIGZsdXNoKCkgb24gdGhlIFdyaXRlciByZXNwb25zaWJsZSBmb3Igd3JpdGluZyBKU09OU3RyZWFtIGRhdGEuDQphZGRlZCB1bml0IHRlc3QgZm9yIEFCREVSQS0yNTEgYW5kIGFuZCBBQkRFUkEtMjQzDQphcHBsaWVkIHBhdGNoIGZvciBBQkRFUkEtMjUxIENoYXJzZXQgaXNzdWUgaW4gRk9NRGl2LmdldEludGVybmFsVmFsdWUoKSBsZWFkcyB0byBjb3JydXB0IHJldHVybiB2YWx1ZSBvbiBub24tQVNDSUkgcGxhdGZvcm1zDQpyZW1vdmVkIGNvdWNoZGIgYWRhcHRlciBmcm9tIGJ1aWxkIGZpbGVzIHRvIGdldCByaWQgb2YgdGhlIGFkZGl0aW9uYWwgbWF2ZW4gcmVwbzsgdXBkYXRlZCBzb21lIGRlcGVuZGVuY2llcw0KZml4IGZvciBBQkRFUkEtMjc1IEVycm9yIGluIFR1cmtpc2ggTG9jYWxlIHdoZW4gdXNpbmcgR1pJUCBjb21wcmVzc2lvbg0KZml4IGZvciBBQkRFUkEtMjU4IEFiZGVyYSBuZWVkcyB0byBzdXBwb3J0IElQdjYNCmZpeGVkIG51bGwgcG9pbnRlcnM7IGFkZGVkIHVuaXQgdGVzdHMgLSBwcmVwYXJpbmcgYSByZWZhY3RvcmluZw0KDQpBcGFjaGUgQWJkZXJhOiBDaGFuZ2VzIGluIDEuMS4xIFJlbGVhc2UNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpyMTAzOTk0NDogQUJERVJBLTI2MjogcGF0Y2ggZnJvbSBOYXRoYW4gUmVlc2UgdG8gZml4IEVudHJ5UmVxdWVzdFByb2Nlc3NvciBhbmQgTWVkaWFSZXF1ZXN0UHJvY2Vzc29yIGRvIG5vdCBzdXBwb3J0IFBPU1QiDQpyMTAzOTY2NDogQUJERVJBLTI3MDogQXBwbHkgcGF0Y2ggZnJvbSBHdWlsbGF1bWUgTm9kZXQgZm9yIE9TR2kgbWV0YS1kYXRhIGlzIGJyb2tlbg0KcjEwMzkyMTA6IFVwZGF0ZSB0byB1c2UgdGhlIG1vdyByZWxlYXNlZCAxLjIuMTAgdmVyc2lvbiBvZiBBeGlvbSBpbnN0ZWFkIG9mIHRoZSBzbmFwc2hvdA0KcjEwMDYxMTQ6IEFCREVSQS0yNjc6IEFwcGx5IHBhdGNoIGZyb20gQW5kcmVhcyBWZWl0aGVuIHRvIHVzZSBsYXRlc3QgYXhpb20gdG8gZ2V0IGZpeCBmb3IgcGVyZm9ybWFuY2UgaXNzdWUNCnI5NTY0NzU6IEFkZCBhbiBleHBsaWNpdCBjYXN0IHRvIGZpeCBhIGNvbXBpbGUgZXJyb3Igd2hlbiBidWlsZGluZyB3aXRoIEpESyAxLjUNCnI5NTU4OTE6IEFkZCBzb21lIG5vdGVzIG9uIHJlbGVhc2luZyB0aGUgYXJ0aWZhY3RzDQpyOTU1ODY4OiBVcGRhdGUgY2hhbmdlcyBmaWxlIHdpdGggbGF0ZXN0IGZpeCBmcm9tIEpvc2ggR29yZGluZWVyIGZvciBVUkkgdGVtcGxhdGVzDQoNCkFwYWNoZSBBYmRlcmE6IENoYW5nZXMgaW4gMS4xIFJlbGVhc2UNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0Kcjk1NTUwMjogRml4IG5lZ2F0aXZlIGJlaGF2aW91ciBvbiB1cmkgdGVtcGxhdGVzDQpyOTQxMjU5OiBBZGQgYSBjaGFuZ2VzIGZpbGUgbGlzdGluZyB0aGUgY2hhbmdlcyBzaW5jZSAxLjANCnI5NDQxNDM6IFJlbW92ZSBvbGQgS0VZUyBmaWxlcywgdGhlIGFjdHVhbCBvbmUgdGhhdHMgdXNlZCBpcyBhdDogaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvYWJkZXJhL0tFWVMNCnI5NDQ3MzE6IG1pbm9yIHJlZmFjdG9yaW5nIG9mIHVuaXQgdGVzdHM7IGFkb3B0IHRlc3Qgc3RydWN0dXJlIHRvIHNyYyBzdHJ1Y3R1cmUNCnI5NDQ3NDA6IHJlbW92aW5nIGFsbCBvY2N1cmVuY2VzIG9mICdleHRlbmQgVGVzdGNhc2UnDQpyOTQ0NzQ1IGFuZCBvdGhlcnM6IHJlcGxhY2VkIGFsbCBvY2N1cmVuY2VzIG9mICdleHRlbmRzIEFzc2VydCcgd2l0aCBzdGF0aWMgaW1wb3J0cw0Kcjk0NDc4MDogdXBkYXRlIHRvIGp1bml0IDQuOC4xDQpyOTQ0NzkyOiBlYXN5bW9jayB2ZXJzaW9uIHVwZGF0ZQ0Kcjk0NDgwMzogZml4IGZvciBBQkRFUkEtMTAyIC0gVW5pdCB0ZXN0cyBlcXVhbGl0eSBhc3NlcnRpb25zLCBwYXJhbXMgaW4gd3Jvbmcgb3JkZXINCnI5NDQ4MTA6IHJlbW92ZWQgdW5uZWNlc3NhcnkgdHJ5L2NhdGNoIGZyb20gVW5pdCBUZXN0DQpyOTQ0ODEzIGFuZCBvdGhlcnM6IGZpeCBmb3IgQUJERVJBLTEwMg0Kcjk0NDg4MzogdXBkYXRlZCBqZXR0eSB2ZXJzaW9uDQpyOTQ1Mzc2OiBmaXggZm9yIEFCREVSQS0yNDIgLSBGYWlsaW5nIHRvIGNvbnZlcnQgc29tZSBiaWcgY2FwaXRhbCBsZXR0ZXJzIGZyb20gSFRNTCBlc2NhcGUgY2hhcmFjdGVycyB0byBVVEYtOA0Kcjk0Njc1NTogYWRkZWQgRk9NUGFyc2VyT3B0aW9uc1Rlc3Q7IGZpeGVkIE9FbGlnDQpyOTQ2NzU5OiBhZGRlZCBsaWNlbnNlIGhlYWRlcg0Kcjk0Njc2OTogYWRkZWQgVGVzdGNhc2UgZm9yIEhUTUwgc3BlY2lhbCBjaGFyYWN0ZXJzDQpyOTQ3MTAyOiBtaW5vciB2ZXJzaW9uIHVwZGF0ZXMNCnI5NDc0NTA6IGV4dGVuZGVkIGFuZCByZWZhY3RvcmVkIHVuaXQgdGVzdHMgaW4gY29yZQ0Kcjk0ODIwNDogcGF0Y2ggZm9yIEFCREVSQS0yNTAgKHRoZSBvcmlnaW5hbCBwYXRjaCBjb3VsZG4ndCBiZSBhcHBsaWVkIGFzIHRoZXJlIHdhcyBhIHJlZmFjdG9yaW5nIGluIHRoZSBtZWFudGltZSkNCnI5NTE2NjY6IFJlZm9ybWF0IGNvZGViYXNlIHVzaW5nIHRoZSB0ZW1wbGF0ZSBhdCBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9hYmRlcmEvZXRjLw0Kcjk0MDM4MDogQUJERVJBLTEwMjogQXBwbHkgcGF0Y2ggZnJvbSBDaHJpc3RpbmUgS29wcGVsdCBmb3IgVW5pdCB0ZXN0cyBlcXVhbGl0eSBhc3NlcnRpb25zLCBwYXJhbXMgaW4gd3Jvbmcgb3JkZXINCnI5NDAyMTg6IEZpeCBHZW9SU1MgZXh0ZW5zaW9uIGZyb20gTmF0aGFuIFJlZXNlIG9uIE1MIC0gaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL2RldkBhYmRlcmEuYXBhY2hlLm9yZy9tc2cwMDI1OS5odG1sDQpyOTQwMjE1OiBBQkRFUkEtMjMzOiBpbml0QmFzZVVyaSgpIGluIHRoZSBjbGFzcyBTZXJ2bGV0UmVxdWVzdENvbnRleHQgd2lsbCBhcHBlbmQgdGhlIHBvcnQgNDQzIHRvIGh0dHBzIHJlcXVlc3RzLCBmaXhlZCBhcyBzdWdnZXN0ZWQgaW4gSklSQSBieSBKIEcNCnI5NDAxOTU6IFVwZGF0ZSBqYXhlbiBsaWNlbnNlIHRleHQNCnI5MzYwMzY6IEFsbG93aW5nIHRvIHVzZSBhIGN1c3RvbSBYTUxSZWFkZXIgdG8gcGFyc2UgZG9jdW1lbnRzLiBUaGFua3MgdG8gRGFuIEJlYXVsaWV1Lg0KcjkzNjAzMDogcmV2ZXJ0aW5nIEFCREVSQS0yMTAsIHNpbmNlIGhhZCBvdGhlciBzaWRlIGVmZmVjdHMuIFRoYW5rcyB0byBDaw0KcjkzNjAyNzogZml4aW5nIGEgYnVnIGluaXRpYWxpemluZyBwcm92aWRlcnMNCnI5MTYyODc6IGZpeGVzIHJlZHVuZGFudCBhc3NpZ25hdGlvbiBvZiBtaW1lVHlwZS4gVGhhbmtzIHRvIFBhc2NhbCBDaHJpc3RvcGgNCnI5MTQ5OTg6IGZpeGluZyBwcm92aWRlcnMgZGlzY292ZXJpbmcgZXJyb3JzLiBOb3cgd2UganVzdCBuZWVkIHRvIGZpeCB0aGUgZmFpbGluZyB0ZXN0cw0Kcjc4MjczMjogRG9uJ3QgdXNlIHRoZSBkaXNjb3ZlcnkgbWVjaGFuaXNtIGZvciBjYWNoZSBpbXBscy4gZm9yIG5vdywgdGhpcyBtZWFucyB0aGUgQWJkZXJhQ2xpZW50IGlzIGhhcmQgY29kZWQgdG8gdXNlIHRoZSBMUlVDYWNoZSBpbi1tZW1vcnkgY2FjaGUgaW1wbGVtZW50YXRpb24uIFRoZSBvcmlnaW5hbCBkZXNpZ24gbWVhbnQgZm9yIHRoZSBjYWNoZSBpbXBsZW1lbnRhdGlvbiB0byBiZSBwbHVnZ2FibGUuIElkZWFsbHksIGhvd2V2ZXIsIHRoZSBIdHRwQ2xpZW50IHdvdWxkIGluY29ycG9yYXRlIHNvbWUga2luZCBvZiBjYWNoZSBzbyB3ZSB3b3VsZG4ndCBoYXZlIHRvIGRvIHRoaXMgYXQgYWxsLiBJJ20gd29uZGVyaW5nIGlmIHRoZXJlJ3Mgc29tZSB3YXkgd2UgY291bGQgc2VwYXJhdGUgYWxsIHRoZSBodHRwIGNsaWVudCByZWxhdGVkIHN0dWZmIG91dCB0byBhIGRpc3RpbmN0IHN1YnByb2plY3Q/DQpyNzgyNTcwOiBBcHBsaWVkIHBhdGNoIGZyb20gQUJERVJBLTIzNiAtIENyZWF0ZSBPU0dpIEJ1bmRsZXMgZm9yIEFiZGVyYSB1c2luZyB0aGUgTWF2ZW4gRmVsaXggcGx1Z2luDQpyNzgwNjYyOiBMUlVDYWNoZUZhY3RvcnkgbmVlZHMgYSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGFuIEFiZGVyYSBwYXJhbWV0ZXINCnI3ODA2NjE6IEFkZGVkIGRlcGVuZGVuY3kgb24gY29tbW9ucy1jb2RlYyBmb3IgaTE4biBidWlsZA0Kcjc3NDAyNzogYXZvaWQgcG90ZW50aWFsIE5QRQ0Kcjc3MzYxMDogRml4IGNvbXBpbGVyIGVycm9yDQpyNzczMjk4OiByZW1vdmUgdW5uZWNlc3NhcnkgY29tcGlsZXIgd2FybmluZw0Kcjc3MzI5NzogRml4IGZvciBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0FCREVSQS0yMzENCnI3NzI0NDY6IFJlZmFjdG9yaW5nIG9mIHNvbWUgb2YgdGhlIGJhc2UgbGV2ZWwgY2xhc3MgZGlzY292ZXJ5IGNvZGUuIFRoZSBtb3ZlcyB0aGluZ3MgdG8gYSBtb3JlIGxvZ2ljYWwgbG9jYXRpb24sIGltcHJvdmVzIHRoZSByZWxpYWJpbGl0eSBvZiB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIGNvZGUgc3RydWN0dXJlIGEgYml0Lg0Kcjc3MjQzOTogRml4IE5QRSB3YWl0aW5nIHRvIGhhcHBlbg0Kcjc3MjQxNzogUmVmYWN0b3Jpbmcgb2Ygc29tZSBvZiB0aGUgYmFzZSBsZXZlbCBjbGFzcyBkaXNjb3ZlcnkgY29kZS4gVGhlIG1vdmVzIHRoaW5ncyB0byBhIG1vcmUgbG9naWNhbCBsb2NhdGlvbiwgaW1wcm92ZXMgdGhlIHJlbGlhYmlsaXR5IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgc2ltcGxpZmllcyB0aGUgY29kZSBzdHJ1Y3R1cmUgYSBiaXQuDQpyNzcyNDA5OiByZW1vdmUgdW5uZWNlc3NhcnkgY29tcGlsZXIgd2FybmluZ3MNCnI3NzIzNDM6IFNvbWUgcmVmYWN0b3JpbmcuIHRoZSBFbmNvZGluZ1V0aWwgY2xhc3MgaXNuJ3Qgc3RyaWN0bHkgcmVxdWlyZWQsIHdhcyBtb3N0bHkgZGVwcmVjYXRlZC4uLiBtb3ZlZCB0aGUgc3RpbGwgcmVsZXZhbnQgY29kZSB0byBvdGhlciBhcmVhcyBhbmQgcmVtb3ZlZCB0aGUgRW5jb2RpbmdVdGlsIGNsYXNzLg0Kcjc3MjMyNDogRml4IGZvciBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0FCREVSQS0yMjUNCnI3NzIzMTY6IEZpeGluZyB0aGUgYW50IGJ1aWxkDQpyNzcxNTYyOiBJZ25vcmUgZWNsaXBzZSBhcnRpZmFjdHMNCnI3NzE0ODc6IEZpeCBmb3IgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9BQkRFUkEtMjIyIFRoZSBQZWVrQWhlYWRJbnB1dFN0cmVhbSB3YXMgd3JpdGluZyB0b28gbXVjaCBiYWNrIHRvIHRoZSBidWZmZXIsIHdoaWNoIGludHJvZHVjZXMgMHgwIGNoYXJzIHRvIHRoZSBzdHJlYW0NCnI3NzE0NTA6IEZvciBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0FCREVSQS0yMTANCg0KICAgUmVzcG9uc2VDb250ZXh0IG5lZWRzIHRvIGJlIGFibGUgdG8gc3VwcG9ydCBub24tQXRvbSBiaW5hcnkgcmVzb3VyY2VzIHNvIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCANCiAgIEFiZGVyYVNlcnZsZXQgc2hvdWxkIGFsd2F5cyB1c2UgYSBXcml0ZXIuIFRoaXMgYWRkcyBhIG5ldyBtZXRob2QgdG8gUmVzcG9uc2VDb250ZXh0IGNhbGxlZCBpc0JpbmFyeSwNCiAgIHdoaWNoIGRlZmF1bHRzIHRvIGZhbHNlLiAgSWYgdHJ1ZSwgdGhlIEFiZGVyYVNlcnZsZXQgd2lsbCBwYXNzIHRoZSBPdXRwdXRTdHJlYW0gdG8gUmVzcG9uc2VDb250ZXh0LA0KICAgaWYgZmFsc2UsIHRoZSBzZXJ2bGV0IHdpbGwgcGFzcyB0aGUgV3JpdGVyIHRvIFJlc3BvbnNlQ29udGV4dC4gDQoNCiAgIFRoaXMgYWxzbyBmaXhlcyBhIGJ1ZyBpbiBSZXNwb25zZUNvbnRleHRXcmFwcGVyLg0Kcjc3MTQ0NjogT25lIGZpeCBmb3IgdHdvIGlzc3VlczogQUJERVJBLTIxMywgQUJERVJBLTIxMTogTm8gd2F5IHRvIGV4cGxpY2l0bHkgZGVjbGFyZSBuYW1lc3BhY2VzIHVzaW5nIFN0cmVhbVdyaXRlciBpbnRlcmZhY2UNCiAgICAgICAgIFN0cmVhbVdyaXRlciBpbnRlcmZhY2Ugbm90IG91dHB1dHRpbmcgY29ycmVjdCBuYW1lc3BhY2UgZm9yIGF0b206bGluayBlbGVtZW50IGluIHNlcnZpY2UgZG9jcw0Kcjc3MTQ0NDogSVJJLnRvU3RyaW5nKCkgZG9lcyBub3QgcHJlc2VydmUgZW1wdHkgZnJhZ21lbnQgaWRlbnRpZmllcnMgYW5kIHF1ZXJpZXMgUGVyIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvQUJERVJBLTIxOA0Kcjc3MTQ0MjogQ3JlYXRpbmcgQWJkZXJhQ2xpZW50IHVzaW5nIHByZWNvbmZpZ3VyZWQgSHR0cENsaWVudA0Kcjc0OTE1NTogUmVtb3ZlIG1pcy1zcGVsbGVkIDxyZXBvc2lvcmllcz4gZWxlbWVudC4NCnI3Mzc4ODM6IGh0bWxQYXJzZXIgbm90aWNlIGFkZGVkIHRvIG5vdGljZS1zdXBwbGVtZW50DQo=