PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4NCg0KPGh0bWw+DQoNCjxoZWFkPg0KDQogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQogICA8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkVjbGlwc2UgUHJvamVjdCBQTUMiPg0KDQogICA8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBGcm9udFBhZ2UgNC4wIj4NCg0KICAgPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4NCg0KICAgPHRpdGxlPkVjbGlwc2UgUHJvamVjdCBEcmFmdCAyLjIgUGxhbjwvdGl0bGU+DQoNCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZGVmYXVsdF9zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCg0KPC9oZWFkPg0KDQo8Ym9keT4NCg0KDQoNCjxoMT4gRWNsaXBzZSBQcm9qZWN0PGJyPg0KICBEUkFGVCAyLjIgUGxhbjwvaDE+DQo8cD48Zm9udCBzaXplPSIrMiI+PGVtPlRoaXMgZG9jdW1lbnQgaXMgb2Jzb2xldGUuIFRoZSAyLjIgcmVsZWFzZSBoYXMgYmVlbiByZW5hbWVkIA0KICB0aGUgMy4wIHJlbGVhc2UgKDxhIGhyZWY9ImVjbGlwc2VfcHJvamVjdF9wbGFuXzNfMC5odG1sIj4zLjAgcGxhbjwvYT4pLjwvZW0+PC9mb250PjwvcD4NCjxwPkxhc3QgcmV2aXNlZCBGcmlkYXksIERlY2VtYmVyIDIwLCAyMDAyICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiANCiAgbWFya3MgaW50ZXJlc3RpbmcgY2hhbmdlcyBvdmVyIHRoZSA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZWNsaXBzZS9kZXZlbG9wbWVudC9lY2xpcHNlX3Byb2plY3RfcGxhbl8yXzEuaHRtbCI+Mi4xIA0KICBwbGFuPC9hPik8YnI+DQo8YnI+DQo8aT4mbmJzcDsmbmJzcDsmbmJzcDsgUGxlYXNlIHNlbmQgY29tbWVudHMgYWJvdXQgdGhpcyBkcmFmdCBwbGFuIHRvIHRoZSA8L2k+PGEgaHJlZj0ibWFpbHRvOmVjbGlwc2UtZGV2QGVjbGlwc2Uub3JnIj5lY2xpcHNlLWRldkBlY2xpcHNlLm9yZzwvYT4NCjxpPmRldmVsb3BlciBtYWlsaW5nIGxpc3QuPC9pPg0KPC9wPg0KDQo8cD5UaGlzIGRvY3VtZW50IGxheXMgb3V0IHRoZSBmZWF0dXJlIGFuZCBBUEkgc2V0IGZvciB0aGUgbmV4dCBmZWF0dXJlIHJlbGVhc2UgDQogIG9mIEVjbGlwc2UsIGRlc2lnbmF0ZWQgcmVsZWFzZSAyLjIuIA0KPHA+UGxhbnMgZG8gbm90IG1hdGVyaWFsaXplIG91dCBvZiBub3doZXJlLCBub3IgYXJlIHRoZXkgZW50aXJlbHkgc3RhdGljLiBUbyBlbnN1cmUgDQogIHRoZSBwbGFubmluZyBwcm9jZXNzIGlzIHRyYW5zcGFyZW50IGFuZCBvcGVuIHRvIHRoZSBlbnRpcmUgRWNsaXBzZSBjb21tdW5pdHksIA0KICB3ZSAodGhlIEVjbGlwc2UgUE1DKSBwb3N0IHBsYW5zIGluIGFuIGVtYnJ5b25pYyBmb3JtIGFuZCByZXZpc2UgdGhlbSB0aHJvdWdob3V0IA0KICB0aGUgcmVsZWFzZSBjeWNsZS4gDQo8cD5UaGUgZmlyc3QgcGFydCBvZiB0aGUgcGxhbg0KZGVhbHMgd2l0aCB0aGUgaW1wb3J0YW50IG1hdHRlcnMgb2YgcmVsZWFzZSBkZWxpdmVyYWJsZXMsIHJlbGVhc2UgbWlsZXN0b25lcywNCnRhcmdldCBvcGVyYXRpbmcgZW52aXJvbm1lbnRzLCBhbmQgcmVsZWFzZS10by1yZWxlYXNlIGNvbXBhdGliaWxpdHkuIFRoZXNlIGFyZQ0KYWxsIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUgY2xlYXIgZm9yIGFueSByZWxlYXNlLCBldmVuIGlmIG5vIGZlYXR1cmVzIHdlcmUgdG8NCmNoYW5nZS4mbmJzcDs8cD5UaGUgcmVtYWluZGVyIG9mIHRoZSBwbGFuIGNvbnNpc3RzIG9mIHBsYW4gaXRlbXMgZm9yIHRoZSB2YXJpb3VzDQpFY2xpcHNlIHN1YnByb2plY3RzLiBFYWNoIHBsYW4gaXRlbSBjb3ZlcnMgYSBmZWF0dXJlIG9yIEFQSSB0aGF0IGlzIHRvIGJlIGFkZGVkDQp0byBFY2xpcHNlLCBvciBzb21lIGFzcGVjdCBvZiBFY2xpcHNlIHRoYXQgaXMgdG8gYmUgaW1wcm92ZWQuIEVhY2ggcGxhbiBpdGVtIGhhcw0KYSB0aXRsZSBhbmQgYSBjb25jaXNlIHN1bW1hcnkgKHVzdWFsbHkgYSBzaW5nbGUgcGFyYWdyYXBoKSB0aGF0IGV4cGxhaW5zIHRoZQ0Kd29yayBpdGVtIGF0IGEgc3VpdGFibHkgaGlnaCBlbm91Z2ggbGV2ZWwgc28gdGhhdCBldmVyeW9uZSBjYW4gcmVhZGlseQ0KdW5kZXJzdGFuZCB3aGF0IHRoZSB3b3JrIGl0ZW0gaXMgd2l0aG91dCBoYXZpbmcgdG8gdW5kZXJzdGFuZCB0aGUgbml0dHktZ3JpdHR5DQpkZXRhaWxzICh3aGljaCBjYW4gYmUgaGFzaGVkIG91dCBlbHNld2hlcmUpLiZuYnNwOw0KPHA+Tm90IGFsbCBwbGFuIGl0ZW1zIHJlcHJlc2VudCB0aGUgc2FtZSBhbW91bnQgb2Ygd29yazsgc29tZSBtYXkgYmUgcXVpdGUgbGFyZ2UsIA0KICBvdGhlcnMsIHF1aXRlIHNtYWxsLiBTb21lIHBsYW4gaXRlbXMgbWF5IGludm9sdmUgd29yayB0aGF0IGlzIGxvY2FsaXplZCB0byBhIA0KICBzaW5nbGUgUGxhdGZvcm0gY29tcG9uZW50OyBvdGhlcnMgbWF5IGludm9sdmUgY29vcmRpbmF0ZWQgY2hhbmdlcyB0byBzZXZlcmFsIA0KICBjb21wb25lbnRzOyBvdGhlciBtYXkgcGVydmFkZSB0aGUgZW50aXJlIFBsYXRmb3JtLg0KPHA+V2l0aCB0aGUgcHJldmlvdXMgcmVsZWFzZSBhcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoaXMgaXMgdGhlIHBsYW4gZm9yIGhvdyB3ZSANCiAgd2lsbCBlbmhhbmNlIGFuZCBpbXByb3ZlIGl0LiBGaXhpbmcgYnVncywgaW1wcm92aW5nIHRlc3QgY292ZXJhZ2UsIGRvY3VtZW50YXRpb24sIA0KICBleGFtcGxlcywgcGVyZm9ybWFuY2UsIHVzYWJpbGl0eSwgZXRjLiBhcmUgY29uc2lkZXJlZCByb3V0aW5lIG9uZ29pbmcgbWFpbnRlbmFuY2UgYWN0aXZpdGllcyBhbmQgYXJlIA0KICBub3QgaW5jbHVkZWQgaW4gdGhpcyBwbGFuIHVubGVzcyB0aGV5IHdvdWxkIGFsc28gaW52b2x2ZSBhIHNpZ25pZmljYW50IGNoYW5nZSANCiAgdG8gdGhlIEFQSSBvciBmZWF0dXJlIHNldCwgb3IgaW52b2x2ZSBhIHNpZ25pZmljYW50IGFtb3VudCBvZiB3b3JrLiBBbGwgaW50ZXJlc3RpbmcgDQogIGZlYXR1cmUgd29yayBpcyBhY2NvdW50ZWQgZm9yIGluIHRoaXMgcGxhbi4NCjxwPlRoZSBjdXJyZW50IHN0YXR1cyBvZiBlYWNoIHBsYW4gaXRlbSBpcw0Kbm90ZWQ6DQo8dWw+DQogIDxsaT48Yj5Qcm9wb3NlZDwvYj4gcGxhbiBpdGVtIC0gQSBwcm9wb3NhbCBmb3IgYW4gYXNwZWN0IHRvIHdvcmsgb24gZm9yIHRoZQ0KICAgIHJlbGVhc2UuIEFmdGVyIGR1ZSBjb25zaWRlcmF0aW9uLCBhIHByb3Bvc2FsIHdpbGwgZWl0aGVyIGJlIGNvbW1pdHRlZCwNCiAgICByZWplY3RlZCwgb3IgZGVmZXJyZWQuPC9saT4NCiAgPGxpPjxiPkNvbW1pdHRlZDwvYj4gcGxhbiBpdGVtIC0gQSBjb21taXR0ZWQgcGxhbiBpdGVtIGlzIG9uZSB0aGF0IHdlIGhhdmUgZGVjaWRlZCANCiAgICB0byBhZGRyZXNzIGZvciB0aGUgcmVsZWFzZS48L2xpPg0KICA8bGk+PGI+RGVmZXJyZWQ8L2I+IHBsYW4gaXRlbSAtIEEgcmVhc29uYWJsZSBwcm9wb3NhbCB0aGF0IGRpZCBub3QgbWFrZSBpdCBpbiANCiAgICB0byB0aGlzIHJlbGVhc2UgZm9yIHNvbWUgcmVhc29uIGlzIG1hcmtlZCBhcyBkZWZlcnJlZCB3aXRoIGEgYnJpZWYgbm90ZSBhcyANCiAgICB0byB3aHkgdGhleSB3ZXJlIGRlZmVycmVkLiBEZWZlcnJlZCBwbGFuIGl0ZW1zIG1heSByZXN1cmZhY2UgYXMgcHJvcG9zZWQgcGxhbiANCiAgICBpdGVtcyBhdCBhIGxhdGVyIHBvaW50LjwvbGk+DQogIDxsaT48Yj5SZWplY3RlZDwvYj4gcGxhbiBpdGVtIC0gUGxhbiBpdGVtcyB0aGF0IHdlcmUgcHJvcG9zZWQgYnV0IGp1ZGdlZCB1bndvcmthYmxlIA0KICAgIGFyZSBtYXJrZWQgYXMgcmVqZWN0ZWQgcGxhbiBpdGVtcywgd2l0aCBhbiBhY2NvbXBhbnlpbmcgc3VtbWFyeSBvZiB3aHkgdGhleSANCiAgICB3ZXJlIGRpc21pc3NlZC4gS2VlcGluZyB0cmFjayBvZiByZWplY3RlZCBpdGVtcyBhdm9pZHMgcmVwZWF0aW5nIHRoZSBkaXNjdXNzaW9uLjwvbGk+DQo8L3VsPg0KPGgyPlJlbGVhc2UgZGVsaXZlcmFibGVzPC9oMj4NCg0KPHA+VGhlIHJlbGVhc2UgZGVsaXZlcmFibGVzIGhhdmUgdGhlIHNhbWUgZm9ybSBhcyBwcmV2aW91cyByZWxlYXNlcywgbmFtZWx5Og0KDQo8dWw+DQoNCiAgPGxpPlNvdXJjZSBjb2RlIHJlbGVhc2UgZm9yIEVjbGlwc2UgUHJvamVjdCwgYXZhaWxhYmxlIGFzIHZlcnNpb25zIHRhZ2dlZCAmcXVvdDtSMl8yJnF1b3Q7IA0KICAgIGluIHRoZSBFY2xpcHNlIFByb2plY3QgPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy92aWV3Y3ZzLyI+Q1ZTIHJlcG9zaXRvcnk8L2E+LjwvbGk+DQoNCiAgPGxpPkVjbGlwc2UgUHJvamVjdCBTREsgKGluY2x1ZGVzIFBsYXRmb3JtLCBKRFQsIGFuZCBQREUgc291cmNlIHppcHMpDQoNCiAgICAoZG93bmxvYWRhYmxlKS48L2xpPg0KDQogIDxsaT5FY2xpcHNlIFBsYXRmb3JtIHJ1bnRpbWUgYmluYXJ5IGRpc3RyaWJ1dGlvbiAoZG93bmxvYWRhYmxlKS48L2xpPg0KDQogIDxsaT5KRFQgcnVudGltZSBiaW5hcnkgZGlzdHJpYnV0aW9uIChkb3dubG9hZGFibGUpLjwvbGk+DQoNCiAgPGxpPkVjbGlwc2UgU0RLIEV4YW1wbGVzIChkb3dubG9hZGFibGUpLjwvbGk+DQoNCjwvdWw+DQoNCjxoMj48YSBuYW1lPSJNaWxlc3RvbmVzIj48L2E+UmVsZWFzZSBtaWxlc3RvbmVzPC9oMj4NCg0KPHA+UmVsZWFzZSBtaWxlc3RvbmUgb2NjdXJyaW5nIGF0IHJvdWdobHkNCjUgd2VlayBpbnRlcnZhbHMgZXhpc3QgdG8gZmFjaWxpdGF0ZQ0KY29hcnNlLWdyYWluZWQgcGxhbm5pbmcgYW5kIHN0YWdpbmcuIEFzc3VtaW5nIDIuMiBkZXZlbG9wbWVudCBjb21tZW5jZXMgb24gQXByaWwgMSwNCjIwMDMsIHRoZSBtaWxlc3RvbmVzIGZvciAyMDAzIGFyZTo8L3A+DQoNCjx1bD4NCiAgPGxpPkZyaWRheSBNYXkgMiwgMjAwMyAtIE1pbGVzdG9uZSAxIC0gKDIuMiBNMSkgLSBzdGFibGUgYnVpbGQgcmVmbGVjdGluZyBwcm9ncmVzczwvbGk+DQogIDxsaT5GcmlkYXkgSnVuZSA2LCAyMDAzIC0gTWlsZXN0b25lIDIgLSAoMi4yIE0yKSAtIHN0YWJsZSBidWlsZCByZWZsZWN0aW5nIHByb2dyZXNzPC9saT4NCiAgPGxpPkZyaWRheSBBdWd1c3QgMSwgMjAwMyAtIE1pbGVzdG9uZSAzIC0gKDIuMiBNMykgLSBzdGFibGUgYnVpbGQgcmVmbGVjdGluZw0KICAgIHByb2dyZXNzPC9saT4NCiAgPGxpPkZyaWRheSBTZXB0ZW1iZXIgMTIsIDIwMDMgLSBNaWxlc3RvbmUgNCAtICgyLjIgTTQpIC0gc3RhYmxlIGJ1aWxkIHJlZmxlY3RpbmcNCiAgICBwcm9ncmVzczwvbGk+DQogIDxsaT5GcmlkYXkgT2N0b2JlciAxNywgMjAwMyAtIE1pbGVzdG9uZSA1IC0gKDIuMiBNNSkgLSBzdGFibGUgYnVpbGQgcmVmbGVjdGluZw0KICAgIHByb2dyZXNzPC9saT4NCiAgPGxpPkZyaWRheSBOb3ZlbWJlciAyMSwgMjAwMyAtIE1pbGVzdG9uZSA2IC0gKDIuMiBNNikgLSBzdGFibGUgYnVpbGQgcmVmbGVjdGluZw0KICAgIHByb2dyZXNzPC9saT4NCjwvdWw+DQoNCjxwPiAoTm90ZSB0aGF0IHRoZSB0d28gbWlkLXN1bW1lciBtaWxlc3RvbmVzIGFyZSBleHRlbmRlZCBieSB0d28gd2Vla3MgZWFjaCB0bw0KYWxsb3cgZm9yIHJvdWdobHkgaGFsZiB0aGUgZGV2ZWxvcG1lbnQgdGVhbSB0byBiZSBhd2F5IG9uIHZhY2F0aW9uLik8L3A+DQoNCjxwPiBPdXIgdGFyZ2V0DQppcyB0byBjb21wbGV0ZSAyLjIgZWFybHkgMVEyMDA0LiBBbGwgcmVsZWFzZSBkZWxpdmVyYWJsZXMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGFzIA0KICBzb29uIGFzIHRoZSByZWxlYXNlIGhhcyBiZWVuIHRlc3RlZCBhbmQgdmFsaWRhdGVkIGluIHRoZSB0YXJnZXQgb3BlcmF0aW5nIGNvbmZpZ3VyYXRpb25zIA0KICBsaXN0ZWQgYmVsb3cuPC9wPg0KDQo8aDI+PGEgbmFtZT0iVGFyZ2V0T3BlcmF0aW5nRW52aXJvbm1lbnRzIj48L2E+VGFyZ2V0IE9wZXJhdGluZyBFbnZpcm9ubWVudHM8L2gyPg0KDQoNCg0KPHA+SW4gb3JkZXIgdG8gcmVtYWluIGN1cnJlbnQsIGVhY2ggRWNsaXBzZSByZWxlYXNlIHRhcmdldHMgcmVhc29uYWJseSBjdXJyZW50DQp2ZXJzaW9ucyBvZiB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgZW52aXJvbm1lbnRzLjwvcD4NCg0KPHA+TW9zdCBvZiB0aGUgRWNsaXBzZSBTREsgaXMgJnF1b3Q7cHVyZSZxdW90OyBKYXZhmSBjb2RlIGFuZCBoYXMgbm8gZGlyZWN0DQpkZXBlbmRlbmNlIG9uIHRoZSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW0uIFRoZSBjaGllZiBkZXBlbmRlbmNlIGlzIHRoZXJlZm9yZQ0Kb24gdGhlIEphdmEgMiBQbGF0Zm9ybSBpdHNlbGYuIDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogVGhlIDIuMiByZWxlYXNlIG9mIHRoZSBFY2xpcHNlIFByb2plY3QgaXMgd3JpdHRlbg0KYW5kIGNvbXBpbGVkIGFnYWluc3QgdmVyc2lvbiAxLjQgb2YgdGhlIEphdmEgMiBQbGF0Zm9ybSBBUElzLCBhbmQgdGFyZ2V0ZWQgdG8NCnJ1biBvbiB2ZXJzaW9uIDEuNCBvZiB0aGUgSmF2YSAyIFJ1bnRpbWUgRW52aXJvbm1lbnQsIFN0YW5kYXJkDQpFZGl0aW9uLjwvcD4NCjxwPkVjbGlwc2UgU0RLIDIuMiB3aWxsIGJlIHRlc3RlZCBhbmQgdmFsaWRhdGVkIG9uIHRoZSBmb2xsb3dpbmcgSmF2YSAyDQpQbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbnM6PC9wPg0KPHRhYmxlIHdpZHRoPSI5MSUiIGJvcmRlcj0iMSI+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSI+PGI+T3BlcmF0aW5nIHN5c3RlbTwvYj48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiPjxiPlByb2Nlc3NvciBhcmNoaXRlY3R1cmU8L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj48Yj5KYXZhIDIgUGxhdGZvcm1zPC9iPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSIgcm93U3Bhbj0iMiI+TWljcm9zb2Z0riBXaW5kb3dzrjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSIgcm93U3Bhbj0iMiI+SW50ZWwgeDg2PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5TdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQgZm9yIE1pY3Jvc29mdCANCiAgICAgICAgV2luZG93cyA8aT5bZXhhY3QgdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjczJSI+SUJNIDMyLWJpdCBTREsgZm9yIFdpbmRvd3MsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24sIHZlcnNpb24gDQogICAgICAgIDEuNCA8aT5bZXhhY3QgdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSIgcm93U3Bhbj0iMiI+TGludXg8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiIHJvd1NwYW49IjIiPkludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+U3VuIEphdmEgMiBTREssIFN0YW5kYXJkIEVkaXRpb24sIHZlcnNpb24gMS40IGZvciBMaW51eCANCiAgICAgICAgeDg2IDxpPltleGFjdCB2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5JQk0gRGV2ZWxvcGVyIEtpdCBmb3IgTGludXgsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24sIA0KICAgICAgICB2ZXJzaW9uIDEuNCA8aT5bZXhhY3QgdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSI+U3VuIFNvbGFyaXM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiPlNQQVJDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5TdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQgZm9yIFNvbGFyaXMgDQogICAgICAgIFNQQVJDIDxpPltleGFjdCB2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMjElIj5IUCBIUC1VWDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSI+aHA5MDAwIFBBLVJJU0M8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPjxzcGFuIGNsYXNzPSJoZWFkZXIiPkhQLVVYIFNESyBmb3IgdGhlIEphdmEgMiBwbGF0Zm9ybSwgDQogICAgICAgIHZlcnNpb24gMS40IGZvciBocDkwMDAgUEEtUklTQzwvc3Bhbj4gPGk+W2V4YWN0IHZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPklCTa4gQUlYPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5JQk0gRGV2ZWxvcGVyIEtpdCBmb3IgQUlYLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLCB2ZXJzaW9uIA0KICAgICAgICAxLjQgPGk+W2V4YWN0IHZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPkFwcGxlriBNYWOuIE9TPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5KYXZhIDIgU3RhbmRhcmQgRWRpdGlvbiAxLjQgZm9yIE1hYyBPUyBYIDxpPltleGFjdCB2ZXJzaW9uIA0KICAgICAgICBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSI+PHNwYW4gY2xhc3M9InRpdGxlIj5RTlg8L3NwYW4+rjxzcGFuIGNsYXNzPSJ0aXRsZSI+DQogICAgICAgIE5ldXRyaW5vPC9zcGFuPq48c3BhbiBjbGFzcz0idGl0bGUiPiBSVE9TPC9zcGFuPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSI+SW50ZWwgeDg2PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5JQk0gSjkgVk0gZm9yIFFOWCA8aT5bZXhhY3QgdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQo8cD48c3BhbiBjbGFzcz0iaGVhZGVyIj5UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUgY29tYmluYXRpb25zIG9mIG9wZXJhdGluZyANCiAgc3lzdGVtIGFuZCBKYXZhIDIgUGxhdGZvcm0gdXNlZCB3aGVuIHRlc3RpbmcgdGhlIEVjbGlwc2UgU0RLIGNvbmZpZ3VyYXRpb25zLiANCiAgVGhlIHN0YXR1cyBjb2x1bW4gaW5kaWNhdGVzIHRoZSBsZXZlbCBvZiB0ZXN0aW5nOiAmcXVvdDtQcmltYXJ5JnF1b3Q7IG1lYW5zIA0KICBhIGZ1bGwgdGVzdGVkIGNvbmZpZ3VyYXRpb247ICZxdW90Ozwvc3Bhbj5TZWNvbmRhcnkmcXVvdDsgbWVhbnMgYSBjb25maWd1cmF0aW9uIA0KICB3aGljaCBpcyBvbmx5IGxpZ2h0bHkgdGVzdGVkOyAmcXVvdDtVbnRlc3RlZCZxdW90OyBtZWFucyBhIGNvbmZpZ3VyYXRpb24gdGhhdCANCiAgaGFzIHJlY2VpdmVkIG5vIHRlc3RpbmcsIGJ1dCB3aGljaCBzaG91bGQgd29yazsgJnF1b3Q7QXMtaXMmcXVvdDsgbWVhbnMgYSBjb25maWd1cmF0aW9uIA0KICB0aGF0IGhhcyByZWNlaXZlZCBubyB0ZXN0aW5nLCBhbmQgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yay4gVGhlICZxdW90O0FzLWlzJnF1b3Q7IA0KICBkZXNpZ25hdGlvbiBpcyB1c2VkIGZvciBvcGVyYXRpbmcgZW52aXJvbm1lbnRzIG5lYXJpbmcgdGhlIGVuZCBvZiB0aGVpciBzdXBwb3J0ZWQgDQogIGxpZmU7IGJ1Z3MgdGhhdCBzaG93IHVwIG9ubHkgaW4gJnF1b3Q7QXMtaXMmcXVvdDsgY29uZmlndXJhdGlvbnMgb2YgRWNsaXBzZSANCiAgYXJlIHVubGlrZWx5IHRvIGdldCBmaXhlZC48L3A+DQo8dGFibGUgaGVpZ2h0PSI0MTUiIHdpZHRoPSI5MSUiIGJvcmRlcj0iMSI+DQogIDx0Ym9keT4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjExJSIgaGVpZ2h0PSIzMiI+PGI+V2luZG93IHN5c3RlbTwvYj48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMzIiPjxiPkphdmEgMiBQbGF0Zm9ybTxicj4NCiAgICAgICAgKHNlZSBhYm92ZSB0YWJsZSk8L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjMyIj48Yj5PcGVyYXRpbmcgRW52aXJvbm1lbnQ8L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjMyIj48Yj5UZXN0aW5nIFN0YXR1czwvYj48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iMTA0IiByb3dTcGFuPSI1Ij5XaW4zMjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxMDQiIHJvd1NwYW49IjUiPldpbmRvd3Mgb24gSW50ZWwgeDg2PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIFhQPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIDIwMDA8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogICAgICAgIFNlY29uZGFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+V2luZG93cyBNRTwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiAgICAgICAgVW50ZXN0ZWQ8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgOThTRTwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gDQogICAgICAgIEFzLWlzPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIE5UPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiANCiAgICAgICAgQXMtaXM8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iMTUyIiByb3dTcGFuPSI2Ij5Nb3RpZjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSI4NiIgcm93U3Bhbj0iMyI+Jm5ic3A7DQogICAgICAgIDxwPkxpbnV4IG9uIEludGVsIHg4NjwvcD4NCiAgICAgICAgPHA+Jm5ic3A7PC9wPg0KICAgICAgPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjI1Ij5SZWRIYXQgTGludXggeDg2IDxpPlt2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjI1Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjI1Ij5TdVNFIExpbnV4IHg4NiA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIyNSI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIyNCI+T3RoZXIgTGludXggPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMjQiPlVudGVzdGVkPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjE2Ij5Tb2xhcmlzIG9uIFNQQVJDJm5ic3A7PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5TdW4gU29sYXJpcyBTUEFSQyA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+SFAtVVggb24gaHA5MDAwIFBBLVJJU0M8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPkhQLVVYIGhwOTAwMCA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+QUlYIG9uIFBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPklCTSBBSVggb24gUG93ZXJQQyA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjExJSIgaGVpZ2h0PSI4MSIgcm93U3Bhbj0iNCI+R1RLPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjgxIiByb3dTcGFuPSI0Ij5MaW51eCBvbiBJbnRlbCB4ODY8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIGhlaWdodD0iMTUiPlJlZEhhdCBMaW51eCB4ODYgPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIGhlaWdodD0iMTUiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPlN1U0UgTGludXggeDg2IDxpPlt2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5PdGhlciBMaW51eCA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+VW50ZXN0ZWQ8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iMTYiPkNhcmJvbjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+TWFjIE9TIFggb24gUG93ZXJQQzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+TWFjIE9TIFggPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogICAgICAgIFByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iMTYiPg0KICAgICAgICBQaG90b26uPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjE2Ij5JQk0gSjkgVk0gZm9yIFFOWDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+UU5YIE5ldXRyaW5vIFJUT1MgPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KPGg0PkludGVybmF0aW9uYWxpemF0aW9uPC9oND4NCjxwPlRoZSBFY2xpcHNlIFBsYXRmb3JtIGlzIGRlc2lnbmVkIGFzIHRoZSBiYXNpcyBmb3IgaW50ZXJuYXRpb25hbGl6ZWQgcHJvZHVjdHMuDQpUaGUgdXNlciBpbnRlcmZhY2UgZWxlbWVudHMgcHJvdmlkZWQgYnkgdGhlIEVjbGlwc2UgU0RLIGNvbXBvbmVudHMsIGluY2x1ZGluZw0KZGlhbG9ncyBhbmQgZXJyb3IgbWVzc2FnZXMsIGFyZSBleHRlcm5hbGl6ZWQuIFRoZSBFbmdsaXNoIHN0cmluZ3MgYXJlIHByb3ZpZGVkDQphcyB0aGUgZGVmYXVsdCByZXNvdXJjZSBidW5kbGVzLjwvcD4NCjxwPkxhdGluLTEgbG9jYWxlcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBFY2xpcHNlIFNESyBvbiBhbGwgb2YgdGhlIGFib3ZlDQpvcGVyYXRpbmcgZW52aXJvbm1lbnRzOyBEQkNTIGxvY2FsZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgRWNsaXBzZSBTREsgb24gdGhlDQpXaW5kb3dzLCBHVEssIGFuZCBNb3RpZiB3aW5kb3cgc3lzdGVtczsgQklESSBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlDQpFY2xpcHNlIFNESyBvbmx5IG9uIFdpbmRvd3Mgb3BlcmF0aW5nIGVudmlyb25tZW50cy4NCjxwPlRoZSBFY2xpcHNlIFNESyBzdXBwb3J0cyBHQiAxODAzMCwgdGhlIG5ldyBDaGluZXNlIGNvZGUgcGFnZSBzdGFuZGFyZCwgb24NCldpbmRvd3MgMjAwMCBhbmQgWFAgb25seS4gTm90ZSB0aGF0IEdCIDE4MDMwIGFsc28gcmVxdWlyZXMgbG9jYWxlIGFuZCBjaGFyYWN0ZXINCmVuY29kaW5nIHN1cHBvcnQgZnJvbSB0aGUgSmF2YSAyIFJ1bnRpbWUgRW52aXJvbm1lbnQgdmVyc2lvbiAxLjQuDQo8cD5HZXJtYW4gYW5kIEphcGFuZXNlIGxvY2FsZXMgaGF2ZSBiZWVuIHRlc3RlZC48L3A+DQo8aDQ+QklESSBzdXBwb3J0PC9oND4NCjxwPlRoZSBFY2xpcHNlIFNESyBpcyBhIGRldmVsb3BtZW50IGVudmlyb25tZW50IHRhcmdldGVkIGF0IHRlY2huaWNhbA0KcHJvZmVzc2lvbmFscyAtIG5vdCBhbiBlbmQgdXNlciBhcHBsaWNhdGlvbi4gSG93ZXZlciwgdGhlIEVjbGlwc2UgU0RLIHRvb2xzIHdpbGwNCnBlcm1pdCB0ZWNobmljYWwgcHJvZmVzc2lvbmFscyB3aG8gYXJlIHdvcmtpbmcgaW4gRW5nbGlzaCB0byBidWlsZCBIZWJyZXcvQXJhYmljDQplbmQgdXNlciBKYXZhIHByb2dyYW1zIHdoaWNoIGFyZSB0aGVtc2VsdmVzIG5vdCBiYXNlZCBvbiB0aGUgRWNsaXBzZSBTREsuIFRoZQ0KQklESSBzdXBwb3J0IGluIHRoZSBFY2xpcHNlIFNESyBhbGxvd3MgYSBKYXZhIHByb2dyYW1tZXIgdG8gd29yayB3aXRoIEJJREkNCnN0cmluZ3MsIGNvZGUgY29tbWVudHMsIGV0Yy4gYnV0IHRoZSBFY2xpcHNlIFNESyBpdHNlbGYgaXMgbm90IGRlc2lnbmVkIHRvIGJlDQpsb2NhbGl6ZWQgZm9yIEJJREkgbG9jYWxlcyBhbmQgaXRzIHdpZGdldCBvcmllbnRhdGlvbiBjYW4gbm90IGJlIGNoYW5nZWQuPC9wPg0KPHA+PGk+SU1QT1JUQU5UOiBUaGUgYWJvdmUgQklESSBzdXBwb3J0IGlzIGF2YWlsYWJsZSBvbmx5IG9uIFdpbmRvd3MgcGxhdGZvcm1zLjwvaT48L3A+DQoNCjxoMj48YSBuYW1lPSJDb21wYXRpYmlsaXR5Ij48L2E+Q29tcGF0aWJpbGl0eSB3aXRoIFByZXZpb3VzIFJlbGVhc2VzPC9oMj4NCg0KPHA+DQoNCiBFY2xpcHNlIDIuMiB3aWxsIGJlIHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIEVjbGlwc2UgMi4wIGFuZCAyLjEuPC9wPg0KDQo8aDM+DQoNCkNvbXBhdGliaWxpdHkgb2YgUmVsZWFzZSAyLjIgd2l0aCAyLjAgYW5kIDIuMTwvaDM+DQoNCiBFY2xpcHNlIFNESyAyLjIgd2lsbCBiZSB1cHdhcmRzIGNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIFNESyAyLjAgYW5kIDIuMSB0byB0aGUgDQpncmVhdGVzdCBleHRlbnQgcG9zc2libGUuIFdlIGFudGljaXBhdGUgYSBzbWFsbCBudW1iZXIgb2YgYXJlYXMgd2hlcmUgc2xhdmlzaGx5IA0KbWFpbnRhaW5pbmcgY29tcGF0aWJpbGl0eSB3b3VsZCBub3QgYmUgaW4gdGhlIGJlc3QgaW50ZXJlc3RzIG9mIHRoZSBQbGF0Zm9ybSBvciANCml0cyBjbGllbnRzLiBBbGwgc3VjaCBleGNlcHRpb25zIHdpbGwgYmUgbm90ZWQgaW4gdGhlIDIuMiByZWxlYXNlIG5vdGVzIHNvIHRoYXQgDQpjbGllbnRzIGNhbiBhc3Nlc3MgdGhlIGltcGFjdCBvZiB0aGVzZSBjaGFuZ2VzIG9uIHRoZWlyIHBsdWctaW5zIGFuZCBwcm9kdWN0cy48cD48Yj5BUEkgQ29udHJhY3QgQ29tcGF0aWJpbGl0eTo8L2I+IEVjbGlwc2UgU0RLIDIuMiB3aWxsIGJlIHVwd2FyZHMgY29udHJhY3QtY29tcGF0aWJsZSANCiAgd2l0aCBFY2xpcHNlIFNESyAyLjAgYW5kIDIuMSB1bmxlc3Mgbm90ZWQuIFRoaXMgbWVhbnMgdGhhdCBwcm9ncmFtcyBpbiBmdWxsIGNvbXBsaWFuY2UgDQogIHdpdGggY29udHJhY3RzIHNwZWNpZmllZCBpbiBFY2xpcHNlIFNESyAyLjAgb3IgMi4xIEFQSXMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGluIA0KICBmdWxsIGNvbXBsaWFuY2Ugd2l0aCBFY2xpcHNlIFNESyAyLjIgQVBJcy4gKEFQSSBpcyBjb25zdHJ1ZWQgYnJvYWRseSB0byANCiAgaW5jbHVkZSBzdWNoIHRoaW5ncyBhcyBwbHVnLWluIGV4dGVuc2lvbiBwb2ludHMuKSBEb3dud2FyZCBjb250cmFjdCBjb21wYXRpYmlsaXR5IA0KICBpcyBub3Qgc3VwcG9ydGVkLiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBjb21wbGlhbmNlIHdpdGggRWNsaXBzZSBTREsgMi4yIEFQSXMgd291bGQgZW5zdXJlIGNvbXBsaWFuY2Ugd2l0aCBFY2xpcHNlIFNESyAyLjANCm9yIDIuMSBBUElzLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZWNsaXBzZS9kZXZlbG9wbWVudC9qYXZhLWFwaS1ldm9sdXRpb24uaHRtbCI+RXZvbHZpbmcNCkphdmEtYmFzZWQgQVBJczwvYT48L2k+IGZvciBhIGRpc2N1c3Npb24gb2YgdGhlIGtpbmRzIG9mIEFQSSBjaGFuZ2VzIHRoYXQNCm1haW50YWluIGNvbnRyYWN0IGNvbXBhdGliaWxpdHkuIA0KPHA+PGI+QmluYXJ5IChwbHVnLWluKSBDb21wYXRpYmlsaXR5OjwvYj4gRWNsaXBzZSBTREsgMi4yIHdpbGwgYmUgdXB3YXJkcyANCiAgYmluYXJ5LWNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIFNESyAyLjAgYW5kIDIuMSB1bmxlc3Mgbm90ZWQuIFRoaXMgbWVhbnMgdGhhdCBwbHVnLWlucyANCiAgYnVpbHQgZm9yIEVjbGlwc2UgU0RLIDIuMCBvciAyLjEgd2lsbCBjb250aW51ZSB0byB3b3JrIGNvcnJlY3RseSBpbiBFY2xpcHNlIA0KICBTREsgMi4yIHdpdGhvdXQgY2hhbmdlLiBEb3dud2FyZCBwbHVnLWluIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gUGx1Zy1pbnMgDQogIGZvciBFY2xpcHNlIFNESyAyLjIgYXJlIHVubGlrZWx5IHRvIGJlIHVzYWJsZSBpbiBFY2xpcHNlIFNESyAyLjAgb3IgMi4xLiBQbHVnLWlucyANCiAgd2l0aCBoYXJkLWNvZGVkIHJlZmVyZW5jZXMgaW4gdGhlaXIgcGx1Zy1pbiBtYW5pZmVzdCBmaWxlIHRvIDIuMCBvciAyLjEgdmVyc2lvbnMgb2YgDQogIHByZXJlcXVpc2l0ZSBFY2xpcHNlIFByb2plY3QgcGx1Zy1pbnMgd2lsbCB3b3JrIGluIDIuMiBwcm92aWRlZCB0aGUgdmVyc2lvbiBtYXRjaA0KcnVsZSBpcyAmcXVvdDtncmVhdGVyT3JFcXVhbCZxdW90Ow0Kb3IgJnF1b3Q7Y29tcGF0aWJsZSZxdW90OyAodGhlIGRlZmF1bHQpOyByZWZlcmVuY2VzDQp1c2luZyAmcXVvdDtwZXJmZWN0JnF1b3Q7IG9yICZxdW90O2VxdWl2YWxlbnQmcXVvdDsgbWF0Y2ggcnVsZXMgd2lsbCBiZSBicm9rZW4uIFJlZmVyIHRvIDxpPjxhIGhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lY2xpcHNlL2RldmVsb3BtZW50L2phdmEtYXBpLWV2b2x1dGlvbi5odG1sIj5Fdm9sdmluZw0KSmF2YS1iYXNlZCBBUElzPC9hPjwvaT4gZm9yIGEgZGlzY3Vzc2lvbiBvZiB0aGUga2luZHMgb2YgQVBJIGNoYW5nZXMgdGhhdA0KbWFpbnRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkuIA0KPHA+PGI+U291cmNlIENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjIgd2lsbCBiZSB1cHdhcmRzIHNvdXJjZS1jb21wYXRpYmxlIA0KICB3aXRoIEVjbGlwc2UgU0RLIDIuMCBvciAyLjEgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgc291cmNlIGZpbGVzIHdyaXR0ZW4gDQogIHRvIHVzZSBFY2xpcHNlIFNESyAyLjAgb3IgMi4xIEFQSXMgY2FuIGJlIHN1Y2Nlc3NmdWxseSBjb21waWxlZCBhbmQgcnVuIGFnYWluc3QgRWNsaXBzZSBTREsNCjIuMiBBUElzLiBTaW5jZSBzb3VyY2UgaW5jb21wYXRpYmlsaXRpZXMgYXJlIGVhc3kgdG8gZGVhbCB3aXRoLCANCiAgbWFpbnRhaW5pbmcgc291cmNlIGNvbXBhdGliaWxpdHkgaXMgY29uc2lkZXJlZCBtdWNoIGxlc3MgaW1wb3J0YW50IHRoYW4gbWFpbnRhaW5pbmcgDQogIGNvbnRyYWN0IGFuZCBiaW5hcnkgY29tcGF0aWJpbGl0eS4gRG93bndhcmQgc291cmNlIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gDQogIElmIHNvdXJjZSBmaWxlcyB1c2UgbmV3IEVjbGlwc2UgU0RLIEFQSXMsIHRoZXkgd2lsbCBub3QgYmUgdXNhYmxlIHdpdGggYW4gZWFybGllciANCiAgdmVyc2lvbiBvZiB0aGUgRWNsaXBzZSBTREsuIA0KPHA+PGI+V29ya3NwYWNlIENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjIgd2lsbCBiZSB1cHdhcmRzIHdvcmtzcGFjZS1jb21wYXRpYmxlIA0KICB3aXRoIEVjbGlwc2UgU0RLIDIuMCBvciAyLjEgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgd29ya3NwYWNlcyBhbmQgcHJvamVjdHMgDQogIGNyZWF0ZWQgd2l0aCBFY2xpcHNlIFNESyAyLjAgb3IgMi4xIGNhbiBiZSBzdWNjZXNzZnVsbHkgb3BlbmVkIGJ5IEVjbGlwc2UgU0RLIA0KICAyLjIgYW5kIHVwZ3JhZGVkIHRvIGEgMi4yIHdvcmtzcGFjZS4gVGhpcyBpbmNsdWRlcyBib3RoIGhpZGRlbiBtZXRhZGF0YSwgd2hpY2ggDQogIGlzIGxvY2FsaXplZCB0byBhIHBhcnRpY3VsYXIgd29ya3NwYWNlLCBhcyB3ZWxsIGFzIG1ldGFkYXRhIGZpbGVzIGZvdW5kIHdpdGhpbiANCiAgYSB3b3Jrc3BhY2UgcHJvamVjdCAoZS5nLiwgdGhlIC5wcm9qZWN0IGZpbGUpLCB3aGljaCBtYXkgcHJvcGFnYXRlIGJldHdlZW4gd29ya3NwYWNlcyANCiAgdmlhIGZpbGUgY29weWluZyBvciB0ZWFtIHJlcG9zaXRvcmllcy4gSW5kaXZpZHVhbCBwbHVnLWlucyBkZXZlbG9wZWQgZm9yIEVjbGlwc2UgDQogIFNESyAyLjIgc2hvdWxkIHByb3ZpZGUgc2ltaWxhciB1cHdhcmRzIGNvbXBhdGliaWxpdHkgZm9yIHRoZWlyIGhpZGRlbiBhbmQgdmlzaWJsZSANCiAgd29ya3NwYWNlIG1ldGFkYXRhIGNyZWF0ZWQgYnkgZWFybGllciB2ZXJzaW9uczsgMi4yIHBsdWctaW4gZGV2ZWxvcGVycyBhcmUgcmVzcG9uc2libGUgDQogIGZvciBlbnN1cmluZyB0aGF0IHRoZWlyIHBsdWctaW5zIHJlY29nbml6ZSAyLjIsIDIuMSwgYW5kIDIuMCBtZXRhZGF0YSBhbmQgcHJvY2VzcyANCiAgaXQgYXBwcm9wcmlhdGVseS4gVXNlciBpbnRlcmZhY2Ugc2Vzc2lvbiBzdGF0ZSBtYXkgYmUgZGlzY2FyZGVkIHdoZW4gYSB3b3Jrc3BhY2UgDQogIGlzIHVwZ3JhZGVkLiBEb3dud2FyZCB3b3Jrc3BhY2UgY29tcGF0aWJpbGl0eSBpcyBub3Qgc3VwcG9ydGVkLiBBIHdvcmtzcGFjZSANCiAgY3JlYXRlZCAob3Igb3BlbmVkKSBieSBFY2xpcHNlIFNESyAyLjIgd2lsbCBiZSB1bnVzYWJsZSB3aXRoIGFuIGVhcmxpZXIgdmVyc2lvbiANCiAgb2YgRWNsaXBzZSBTREsuJm5ic3A7VmlzaWJsZSBtZXRhZGF0YSBmaWxlcyBjcmVhdGVkIChvciBvdmVyd3JpdHRlbikgYnkgRWNsaXBzZSANCiAgU0RLIDIuMiB3aWxsIGdlbmVyYWxseSBiZSB1bnVzYWJsZSB3aXRoIGVhcmxpZXIgdmVyc2lvbnMgb2YgRWNsaXBzZSBTREsuJm5ic3A7Jm5ic3A7IA0KPHA+PGI+Tm9uLWNvbXBsaWFudCB1c2FnZSBvZiBBUEknczwvYj46IEFsbCBub24tQVBJIG1ldGhvZHMgYW5kIGNsYXNzZXMsIGFuZCBjZXJ0YWlubHkgDQogIGV2ZXJ5dGhpbmcgaW4gYSBwYWNrYWdlIHdpdGggJnF1b3Q7aW50ZXJuYWwmcXVvdDsgaW4gaXRzIG5hbWUsIGFyZSBjb25zaWRlcmVkIA0KICBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHdoaWNoIG1heSB2YXJ5IGJldHdlZW4gb3BlcmF0aW5nIGVudmlyb25tZW50IGFuZCBhcmUgDQogIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhvdXQgbm90aWNlLiBDbGllbnQgcGx1Zy1pbnMgdGhhdCBkaXJlY3RseSBkZXBlbmQgb24gYW55dGhpbmcgDQogIG90aGVyIHRoYW4gd2hhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIEVjbGlwc2UgU0RLIEFQSSBhcmUgaW5oZXJlbnRseSB1bnN1cHBvcnRhYmxlIA0KICBhbmQgcmVjZWl2ZSBubyBndWFyYW50ZWVzIGFib3V0IGNvbXBhdGliaWxpdHkgd2l0aGluIGEgc2luZ2xlIHJlbGVhc2UgbXVjaCBsZXNzIA0KICB3aXRoIGFuIGVhcmxpZXIgcmVsZWFzZXMuIFJlZmVyIHRvIDxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYXJ0aWNsZXMvQXJ0aWNsZS1BUEklMjB1c2UvZWNsaXBzZS1hcGktdXNhZ2UtcnVsZXMuaHRtbCI+SG93IA0KICB0byBVc2UgdGhlIEVjbGlwc2UgQVBJPC9hPjwvaT4gZm9yIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byB3cml0ZSBjb21wbGlhbnQgDQogIHBsdWctaW5zLiANCjxoMj4gRWNsaXBzZSBQcm9qZWN0IFN1YnByb2plY3RzPC9oMj4NCg0KVGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZWNsaXBzZS8iPkVjbGlwc2UgUHJvamVjdDwvYT4gY29uc2lzdHMgb2YgDQozIHN1YnByb2plY3RzLiBFYWNoIHN1YnByb2plY3QgaXMgY292ZXJlZCBpbiBpdHMgb3duIHNlY3Rpb246IA0KPGJsb2NrcXVvdGU+PGEgaHJlZj0iI1BsYXRmb3JtIj5FY2xpcHNlIFBsYXRmb3JtPC9hPjxicj4NCiAgPGEgaHJlZj0iI0pEVCI+SkRUIC0gSmF2YSBkZXZlbG9wbWVudCB0b29sczwvYT48YnI+DQogIDxhIGhyZWY9IiNQREUiPlBERSAtIFBsdWctaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQ8L2E+PC9ibG9ja3F1b3RlPg0KDQo8cD5Gb3IgZWFjaCBzdWJwcm9qZWN0LCB0aGUgaXRlbXMgbGlzdGVkIHJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIHRoZSBFY2xpcHNlIFBsYXRmb3JtLCANCiAgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcgZmVhdHVyZXMgd2lsbCBiZSBzaWduaWZpY2FudGx5IHJld29ya2VkLiBFYWNoIGl0ZW0gaW5kaWNhdGVzIA0KICB0aGUgY29tcG9uZW50cyBhZmZlY3RlZCBieSB0aGF0IHdvcmsgaXRlbSAobWFueSBpdGVtcyBpbnZvbHZlIGNvb3JkaW5hdGVkIGNoYW5nZXMgDQogIHRvIHNldmVyYWwgY29tcG9uZW50cykuDQoNCjxoMz4NCg0KPGEgbmFtZT0iUGxhdGZvcm0iPkVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdDwvYT48L2gzPg0KDQpUaGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wbGF0Zm9ybS9pbmRleC5odG1sIj5FY2xpcHNlIA0KUGxhdGZvcm08L2E+IHByb3ZpZGVzIHRoZSBtb3N0IGZ1bmRhbWVudGFsIGJ1aWxkaW5nIGJsb2Nrcy4gVGhlIGZvbGxvd2luZyBpdGVtcyANCnJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIHRoZSBFY2xpcHNlIFBsYXRmb3JtLCBvciBhcmVhcyB3aGVyZSBleGlzdGluZyBmZWF0dXJlcyANCndpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4gDQo8aDQ+Q29tbWl0dGVkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlByb3Bvc2VkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD4gKDIuMSBkZWZlcnJlZCBpdGVtKSA8Yj5BZGQgY2hlYXQgc2hlZXRzPC9iPi4mbmJzcDsgQSBjaGVhdCBzaGVldCBpcyBhbiBpbnN0YW5jZSANCiAgICBvZiBhIHNpbXBsZSBraW5kIG9mIHdvcmtmbG93IHN1cHBvcnQgdXNlZCB0byBoZWxwIHRoZSB1c2VyIGNhcnJ5IG91dCBhIHNlcXVlbmNlIA0KICAgIG9mIHN0ZXBzLiBGb3IgZXhhbXBsZSwgJnF1b3Q7Y3JlYXRlIGFuZCBkZXBsb3kgYSBwbHVnLWluJnF1b3Q7IGlzIGEgbXVsdGktc3RlcCANCiAgICBwcm9jZXNzIHRoYXQgY291bGQgYmUgbWFkZSBlYXNpZXIgdG8gZm9sbG93IGlmIHRoZXJlIHdhcyBhIGd1aWRlLCBzaW1pbGFyIA0KICAgIHRvIGEgcmVjaXBlIHRoYXQgd291bGQgdHJhY2sgdGhlIHVzZXIncyBwcm9ncmVzcyBhbmQgcHJvdmlkZSBib3RoIGRlc2NyaXB0aXZlIA0KICAgIHRleHQgdGhhdCBleHBsYWlucyB0aGUgc3RlcHMgaW52b2x2ZWQgYW5kIGludGVncmF0aW9uIHdpdGggRWNsaXBzZSB0byBhdXRvbWF0ZSANCiAgICB0aGUgcHJvY2Vzcy4gVGhlIFdlbGNvbWUgUGFnZSBlZGl0b3IgaXMgYSBzaW1wbGUgZXhhbXBsZSBvZiBhIGNoZWF0IHNoZWV0LiANCiAgICBQcm92aWRlIGEgc3RhbmRhcmQgQVBJIGZvciBjcmVhdGluZyBjaGVhdCBzaGVldHMuIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPiAoMi4xIGRlZmVycmVkIGl0ZW0pIDxiPkFkZCA8L2I+PGI+dGFibGUgb2YgY29udGVudHMgc3VwcG9ydCB0byA8L2I+PGI+d2k8L2I+PGI+emFyZHMuPC9iPiANCiAgICBFeHRlbmQgdGhlIHdvcmtiZW5jaCB3aXphcmQgZnJhbWV3b3JrIHRvIGFsbG93IEVjbGlwc2Ugd2l6YXJkIGRldmVsb3BlcnMgdG8gDQogICAgcHJvdmlkZSBtdWNoIG1vcmUgc3Vic3RhbnRpYWwgYW5kIHNpZ25pZmljYW50IHVzZXIgZmVlZGJhY2suIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPiAoMi4xIGRlZmVycmVkIGl0ZW0pIDxiPlN1cHBvcnQgZmxvYXRpbmcgdG9vbGJhcnMgYW5kIHZpZXdzLjwvYj4gQWxsb3cgdGhlIA0KICAgIHVzZXIgdG8gY3VzdG9taXplIHRoZSB3b3JrYmVuY2ggYnkgY3JlYXRpbmcgZmxvYXRpbmcgdG9vbGJhcnMgYW5kIHZpZXdzLiBbUGxhdGZvcm0gDQogICAgVUldPC9wPg0KICA8cD4gKDIuMSBkZWZlcnJlZCBpdGVtKSA8Yj5BbGxvdyBlZGl0b3JzIHRvIG9wZW4gZmlsZXMgb3V0c2lkZSB3b3Jrc3BhY2UuPC9iPiANCiAgICBBIGNvbW1vbiByZXF1ZXN0IGlzIHRvIGJlIGFibGUgdG8gb3BlbiBhIGZpbGUgdGhhdCBpcyBub3QgcGFydCBvZiB0aGUgd29ya3NwYWNlIA0KICAgIHVzaW5nIEVjbGlwc2UuIEluIGFkZGl0aW9uLCBhcHBsaWNhdGlvbnMgd291bGQgbGlrZSB0byBwcm92aWRlIGZpbGUgZXh0ZW5zaW9uIA0KICAgIGFzc29jaWF0aW9ucyBzbyB0aGF0IGRvdWJsZS1jbGlja2luZyBvbiBhIGZpbGUgaW4gdGhlIE9TIGRlc2t0b3Agd291bGQgb3BlbiANCiAgICB0aGUgYXNzb2NpYXRlZCBFY2xpcHNlIGVkaXRvci4gVGhlIG9wZXJhdGlvbnMgYW5kIGNhcGFiaWxpdGllcyBhdmFpbGFibGUgb24gDQogICAgdGhlc2UgJnF1b3Q7b3V0c2lkZSBvZiB0aGUgd29ya3NwYWNlJnF1b3Q7IGZpbGVzIHdvdWxkIG5lZWQgdG8gYmUgZGVmaW5lZC4gDQogICAgW1BsYXRmb3JtIFVJXTwvcD4NCiAgPHA+ICgyLjEgZGVmZXJyZWQgaXRlbSkgPGI+SW1wcm92ZSBzZXJ2aWNlYWJpbGl0eS4gPC9iPlByb2dyZXNzIHdhcyBtYWRlIGF0IA0KICAgIGltcHJvdmluZyBzZXJ2aWNlYWJpbGl0eSBpbiAyLjA7IGhvd2V2ZXIsIGFkZGl0aW9uYWwgaW1wcm92ZW1lbnRzIGFyZSBuZWVkZWQsIA0KICAgIHBhcnRpY3VsYXJseSBpbiBkZWFsaW5nIHdpdGggZXJyb3IgY29uZGl0aW9ucyBhbmQgcmVwb3J0aW5nIHRoZW0gaW4gYW4gYXBwcm9wcmlhdGUgDQogICAgbWFubmVyLiBbUGxhdGZvcm0gQ29yZSwgU1dULCBQbGF0Zm9ybSBVSV08YnI+DQogICAgPGJyPg0KICAgICgyLjEgZGVmZXJyZWQgaXRlbSkgPGI+SW1wcm92ZSBmaWxlIGVuY29kaW5nIHN1cHBvcnQuPC9iPiBFY2xpcHNlIDIuMCBhbmQgDQogICAgMi4xIHVzZXMgYSBzaW5nbGUgZ2xvYmFsIGZpbGUgZW5jb2Rpbmcgc2V0dGluZyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBmaWxlcyANCiAgICBpbiB0aGUgd29ya3NwYWNlLiBUaGlzIGlzIHByb2JsZW1hdGljOyBmb3IgZXhhbXBsZSwgd2hlbiBKYXZhIHNvdXJjZSBmaWxlcyANCiAgICBpbiB0aGUgd29ya3NwYWNlIHVzZSBPUyBkZWZhdWx0IGZpbGUgZW5jb2Rpbmcgd2hpbGUgWE1MIGZpbGVzIGluIHRoZSB3b3Jrc3BhY2UgDQogICAgdXNlIFVURi04IGZpbGUgZW5jb2RpbmcuIFRoZSBQbGF0Zm9ybSBzaG91bGQgc3VwcG9ydCBub24tdW5pZm9ybSBmaWxlIGVuY29kaW5ncy4gDQogICAgKFJlZjogPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD01Mzk5Ij5idWcgNTM5OTwvYT4pIA0KICAgIFtQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybSBVSSwgVGV4dCwgU2VhcmNoLCBDb21wYXJlLCBKRFQgVUksIEpEVCBDb3JlXTwvcD4NCiAgPHA+KDIuMSBkZWZlcnJlZCBpdGVtKSA8Yj5JbXByb3ZlIFNXVCBzdXBwb3J0IGZvciByaWdodC10by1sZWZ0IGxhbmd1YWdlczwvYj4uJm5ic3A7QWxsb3cgDQogICAgdGhlIGFwcHJvcHJpYXRlIHdpZGdldCBvcmllbnRhdGlvbiBmb3IgcmlnaHQtdG8tbGVmdCBsYW5ndWFnZXMuIFtTV1RdPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+RGlzcGxheSBIVE1MIGluIGEgd2lkZ2V0LjwvYj4gSW4gRWNsaXBzZSAyLjAgYW5kIDIuMSwgdGhlIG9ubHkgc3VwcG9ydGVkIG9wdGlvbiBmb3INCnJlbmRlcmluZyBIVE1MIGluIHRoZSB3b3JrYmVuY2ggaXMgdG8gdXNlIE9MRSB0byBsaW5rIHRvIElFLiBUaGlzIHN1cHBvcnQgaXMNCldpbmRvd3Mgb25seTsgdGhlcmUgaXMgbm8gc3VjaCBvcHRpb24gaW4gb3RoZXIgb3BlcmF0aW5nIGVudmlyb25tZW50cy4gRXZlbiBvbg0KV2luZG93cywgdGhpcyBvbmx5IHdvcmtzIGZvciBJRSBhbmQgbm90IG90aGVyIGJyb3dzZXJzLiBUaGVyZSBhcmUgYWxyZWFkeQ0Kc2V2ZXJhbCBFY2xpcHNlIGNvbXBvbmVudHMgdGhhdCBjb3VsZCBiZW5lZml0IGZyb20gSFRNTCBkaXNwbGF5IGZ1bmN0aW9uYWxpdHkgaW4NCmEgd2lkZ2V0OiB3ZWxjb21lIHBhZ2VzOyB1cGRhdGUgbWFuYWdlciB1cGRhdGUgc2l0ZSBvdmVydmlldzsgaG92ZXJzIHRoYXQgc2hvdw0KSmF2YWRvYy4gVGhlIFBsYXRmb3JtIHNob3VsZCBwcm92aWRlIGEgcG9ydGFibGUgd2F5IHRvIGRpc3BsYXkgSFRNTCBpbiBhIHdpZGdldCBhbmQNCnN1cHBvcnQgaXQgaW4gYWxsIG9wZXJhdGluZyBlbnZpcm9ubWVudHMuIFtQbGF0Zm9ybSBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5TdXBwb3J0IGF1dG9tYXRpb24gb2YgY29tbW9uIHRhc2tzLjwvYj4gVG8gbWFrZSBpdCBlYXNpZXIgZm9yIHVzZXJzIHRvIGF1dG9tYXRlDQpjb21tb24gYW5kIHJlcGV0aXRpdmUgdGFza3MsIHRoZSB1c2VyIHNob3VsZCBoYXZlIGEgc2ltcGxlIHdheSBvZiByZWNvcmRpbmcgdGhlIHNlcXVlbmNlIG9mDQphY3Rpb25zIGFzIHRoZXkgcGVyZm9ybSB0aGVtLiBUaGUgcmVjb3JkaW5nIGNhbiBiZSBlZGl0ZWQsIHNhdmVkIHBlcnNpc3RlbnRseSwgYW5kDQpwbGF5ZWQgYmFjayB1bmRlciBzaW1pbGFyIGNpcmN1bXN0YW5jZXMgaW4gdGhlIHNhbWUgb3IgbGF0ZXIgc2Vzc2lvbiwgb3INCnBvc3NpYmx5IGFub3RoZXIgd29ya3NwYWNlLiBbUGxhdGZvcm0gVUksIFBsYXRmb3JtIENvcmUsIFBsYXRmb3JtIFRleHQsIEpEVA0KQ29yZSwgSkRUIFVJLCBQREVdPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UmVkdWNlIHdvcmtiZW5jaCBjbHV0dGVyLjwvYj4gRGVzcGl0ZSBlZmZvcnRzIHRvIGVuc3VyZSBVSSBzY2FsYWJpbGl0eQ0Kd2l0aCBhIGxhcmdlIGJhc2VzIG9mIGF2YWlsYWJsZSB0b29scywgdGhlIEVjbGlwc2Ugd29ya2JlbmNoIHN0aWxsIGludGltaWRhdGVzDQptYW55IHVzZXJzIHdpdGggb3Zlcmx5IGxvbmcgbWVudXMgYW5kIHdpZGUgdG9vbGJhcnMuIFRoaXMgcHJvYmxlbSBpcyBhY3V0ZSBpbg0KbGFyZ2UgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cyAoZS5nLiwgSUJNIFdlYlNwaGVyZSBBcHBsaWNhdGlvbiBEZXZlbG9wZXIpLiBUaGUNClBsYXRmb3JtIHNob3VsZCBwcm92aWRlIGFkZGl0aW9uYWwgd2F5cyBmb3IgY29udHJvbGxpbmcgd29ya2JlbmNoIGNsdXR0ZXIsIHN1Y2gNCmFzIGZ1cnRoZXIgbWVudSBhbmQgdG9vbGJhciBjdXN0b21pemFiaWxpdHksIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gbm92aWNlDQphbmQgYWR2YW5jZWQgZnVuY3Rpb25zLCBzdXBwb3J0aW5nIGRpZmZlcmVudCBkZXZlbG9wZXIgcm9sZXMsIGFuZCBtb3JlIHNwZWNpZmljDQpvYmplY3QgY29udHJpYnV0aW9ucyBmb3IgcGFydGljdWxhciBmaWxlIHR5cGVzLiBbUGxhdGZvcm0gVUksDQpQbGF0Zm9ybSBEZWJ1ZywgSkRUIFVJXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkFsbG93IHBsdWctaW4gZGVhY3RpdmF0aW9uLjwvYj4gSW4gb3JkZXIgdG8gc2NhbGUgdG8gYSBsYXJnZSBudW1iZXIgb2YNCnBsdWctaW5zLCBFY2xpcHNlIGRvZXMgbm90IGFjdGl2YXRlIGEgcGx1Zy1pbiB1bnRpbCBpdHMgY29kZSBpcyBhY3R1YWxseSBuZWVkZWQuDQpIb3dldmVyLCBvbmNlIGFjdGl2YXRlZCBhIHBsdWctaW4gcmVtYWlucyBhY3RpdmUgZm9yIHRoZSByZW1haW5kZXIgb2YgdGhlDQpzZXNzaW9uLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIG1lYW5zIHRoYXQgYW4gYWN0aXZlIHBsdWctaW4gd2lsbCBvY2N1cHkgbWVtb3J5DQpzcGFjZSBmb3IgaXRzIGNvZGUgYW5kIG9iamVjdHMgZXZlbiBpZiBpdCBpcyBvbmx5IHVzZWQgb2NjYXNpb25hbGx5LiBNYW55IHVzZXJzDQpoYXZlIHNlc3Npb25zIGxhc3RpbmcgZGF5cyBvciB3ZWVrcywgYW5kIHRoaXMgYmxvYXQgdGF4ZXMgcHJvY2Vzc29yIG1lbW9yeSBhbmQNCkpWTSBwZXJmb3JtYW5jZS4gVGhlIGFuYWxvZ3kgaXMgYSBsb25nIHBsYXkgd2hlcmUgdGhlIGFjdG9ycyBlbnRlciB0aGUgc3RhZ2Ugb24NCmN1ZSwgYnV0IGNhbm5vdCBsZWF2ZSBpdCB1bnRpbCB0aGUgcGxheSBpcyBvdmVyLiBUaGUgRWNsaXBzZSBQbGF0Zm9ybSBzaG91bGQNCnN1cHBvcnQgcGx1Zy1pbnMgdGhhdCBjYW4gYmUgc2FmZWx5IGRlYWN0aXZhdGVkIHdoZW4gdGhlIHVzZXIgbmVlZHMgdG8gcmVjb3ZlciB2YWx1YWJsZQ0KbWVtb3J5IHNwYWNlLiBBbm90aGVyIGFsdGVybmF0aXZlIGlzIHRvIHByb3ZpZGUgYSB3YXkgdG8gcXVpZXRseSBzaHV0ZG93biBhbmQgcmVzdGFydA0KdGhlIFBsYXRmb3JtLiBbUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gVUldPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+U3VwcG9ydCBiYWNrZ3JvdW5kIGFjdGl2aXRpZXMuPC9iPiBJbiBFY2xpcHNlIDIuMCBhbmQgMi4xLCBjZXJ0YWluDQpvcGVyYXRpb25zIGxpa2UgYnVpbGRzIGFuZCBzZWFyY2hlcyBhbHdheXMgcnVuDQpzeW5jaHJvbm91c2x5IGFuZCBibG9jayB0aGUgdXNlciBhdCB0aGUgVUkgZnJvbSBkb2luZyB3b3JrIHVudGlsIHRoZSBidWlsZCBoYXMNCmNvbXBsZXRlZC4gVGhlIEVjbGlwc2UgUGxhdGZvcm0gc2hvdWxkIHN1cHBvcnQgb3BlcmF0aW9ucyBydW5uaW5nIGFzeW5jaHJvbm91c2x5IGluIHRoZQ0KYmFja2dyb3VuZCwgc28gdGhhdCB0aGUgdXNlciBpcyBub3QgZm9yY2VkIHRvIGJlIGVudGlyZWx5IGlkbGUgd2hpbGUNCmxvbmctcnVubmluZyBvcGVyYXRpb25zIGFyZSBpbiBwcm9ncmVzcy4NCltQbGF0Zm9ybSBVSSwgUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gVGV4dCwgSkRUIENvcmUsIEpEVCBVSSwgUERFXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPlN1cHBvcnQgd29ya3NwYWNlIGNoZWNrcG9pbnQgYW5kIHJvbGxiYWNrLjwvYj4gU29tZXRpbWVzIGEgc2V0IG9mDQpyZXNvdXJjZSBjaGFuZ2VzIG11c3QgYmUgZXhwbG9yZWQgdG8gc2VlIGlmIHRoZXkgYXJlIHBvc3NpYmxlIG9yIHdvcnRod2hpbGUuDQpXaGVuIHRoZSBjaGFuZ2VzIGRvIG5vdCBwYW4gb3V0LCB0aGVyZSBuZWVkcyB0byBiZSBhIHdheSB0byByb2xsIGJhY2sgdGhlDQp3b3Jrc3BhY2UgdG8gdGhlIHByaW9yIHN0YXRlLiBFY2xpcHNlIHNob3VsZCBzdXBwb3J0IGxvbmcgd29ya3NwYWNlIHRyYW5zYWN0aW9ucw0Kd2l0aCB0aGUgYWJpbGl0eSB0byBjaGVja3BvaW50IGFuZCByb2xsYmFjay4gVGhlIGZhY2lsaXR5IHNob3VsZCBiZSBhdmFpbGFibGUgdG8NCnVzZXJzIGFuZCBwcm9ncmFtbWF0aWNhbGx5IChlLmcuLCBKRFQgcmVmYWN0b3JpbmcpLiBbUGxhdGZvcm0gVUksIFBsYXRmb3JtIENvcmUsDQpKRFQgQ29yZSwgSkRUIFVJXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkFkZCBjYXBhYmlsaXRpZXMuPC9iPiBJbiBFY2xpcHNlIDIuMCB3ZSBkaWQgc29tZSBlYXJseSB3b3JrIG9uIGENCm1lY2hhbmlzbSBjYWxsZWQgJnF1b3Q7Y2FwYWJpbGl0aWVzJnF1b3Q7IHRvIGFsbG93IHVzZXJzIHRvIGR5bmFtaWNhbGx5DQpjb25maWd1cmUgcHJvamVjdCBuYXR1cmVzLiBUaGUgRWNsaXBzZSBQbGF0Zm9ybSBzaG91bGQgZXhwb3NlIHRoaXMgbWVjaGFuaXNtIHRvDQp1c2Vycy4gW1BsYXRmb3JtIFVJLCBKRFQgVUksIFBERV08L3A+DQogIDxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gZXhwYW5kZWQgMi4xIFBERSANCiAgICBkZWZlcnJlZCBpdGVtKSA8Yj5BZGQgcHJvamVjdCB0ZW1wbGF0ZXMuPC9iPiBFY2xpcHNlIHNob3VsZCBwcm92aWRlIGEgc3RyZWFtbGluZWQgDQogICAgd2F5IHRvIGNyZWF0ZSBwcm9qZWN0cyB1c2luZyB0ZW1wbGF0ZXMgY29udHJpYnV0ZWQgYnkgcGx1Zy1pbnMuIFRoZXNlIHByb2plY3QgDQogICAgdGVtcGxhdGVzIHdvdWxkIGJlIGFibGUgdG8gcG9wdWxhdGUgdGhlIHByb2plY3RzIHdpdGggc3RvY2sgY29udGVudCBzbyB0aGF0IA0KICAgIHByb2plY3RzIGRvbid0IHN0YXJ0IG9mZiBjb21wbGV0ZWx5IGVtcHR5LiBQREUncyBjdXJyZW50IG1lY2hhbmlzbSBzaG91bGQgDQogICAgYmUgZ2VuZXJhbGl6ZWQsIHB1c2hlZCBkb3duIGludG8gdGhlIFBsYXRmb3JtLCBhbmQgcHV0IHRvIGdvb2QgdXNlIGJ5IEpEVC4gDQogICAgW1BsYXRmb3JtIFVJLCBKRFQgVUksIFBERSBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5Qcm92aWRlIGEgZ2VuZXJhbCBwdXJwb3NlIG5hdmlnYXRvci48L2I+IFRoZSBFY2xpcHNlIE5hdmlnYXRvciZuYnNwO3ZpZXcNCnByZXNlbnRzIGEgdmlldyBvZiByZXNvdXJjZXMgaW4gdGhlIHdvcmtzcGFjZS4gVGhlIEVjbGlwc2UgUGxhdGZvcm0gc2hvdWxkDQpwcm92aWRlIGEgbW9yZSBmbGV4aWJsZSwgZ2VuZXJhbCBwdXJwb3NlLCBleHRlbnNpYmxlIG5hdmlnYXRvciBpbmZyYXN0cnVjdHVyZSB0aGF0DQp3b3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvIHNob3cgb3RoZXIgb2JqZWN0cyBhcyB3ZWxsIChsaWtlIGFuIHRoZSBleHRlbmRlZA0KcGh5c2ljYWwgdmlldyBwcm92aWRlZCBieSBXaW5kb3dzIEV4cGxvcmVyKS4gW1BsYXRmb3JtDQpVSSwgSkRUIFVJXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkltcHJvdmUgd29ya3NwYWNlIHN5bmNocm9uaXphdGlvbiB3aXRoIGZpbGUgc3lzdGVtLjwvYj4gQSBmaWxlIHJlc291cmNlDQppbiB0aGUgd29ya3NwYWNlIGdldHMgb3V0IG9mIHN5bmMgd2hlbiB0aGUgdW5kZXJseWluZyBmaWxlIGluIHRoZSBmaWxlIHN5c3RlbSBpcw0KY3JlYXRlZCwgZGVsZXRlZCwgb3IgcmV3cml0dGVuIG91dHNpZGUgb2YgRWNsaXBzZS4gRmlsZSByZXNvdXJjZXMgdXN1YWxseQ0KcmVtYWlucyBvdXQgb2Ygc3luYyB1bnRpbCB0aGUgdXNlciBleHBsaWNpdGx5IGhpdHMgUmVmcmVzaC4gVGhlIEVjbGlwc2UgUGxhdGZvcm0NCnNob3VsZCBwcm92aWRlIHdheXMgdG8ga2VlcCB0aGUgaW4tbWVtb3J5IHJlcHJlc2VudGF0aW9uIGluIHN5bmMgd2l0aCB0aGUgZmlsZQ0Kc3lzdGVtOyBmb3IgZXhhbXBsZSwgYnkgaG9va2luZyBPUyBmaWxlIHN5c3RlbSBjYWxsYmFja3Mgd2hlcmUgYXZhaWxhYmxlLCBhbmQgYnkNCnBvbGxpbmcgZm9yIGZpbGUgc3lzdGVtIGNoYW5nZXMgaW4gYSBiYWNrZ3JvdW5kIHRocmVhZC4gW1BsYXRmb3JtIENvcmUsIFBsYXRmb3JtDQpVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5Qcm92aWRlIGltcHJvdmVkIHRhYmxlIGFuZCB0YWJsZSB0cmVlIHdpZGdldHMuIDwvYj4gRWNsaXBzZSBjdXN0b21lcnMgYXJlIGZpbmRpbmcNCnRoYXQgdGhlIGV4aXN0aW5nIHRhYmxlIGFuZCB0YWJsZSB0cmVlIGN1c3RvbSBTV1Qgd2lkZ2V0cyBsYWNrcyByZXF1aXJlZCBmdW5jdGlvbmFsaXR5LA0KZXhoaWJpdCB1bmRlc2lyYWJsZSBsYXlvdXQgYW5kIHJlc2l6aW5nIGJlaGF2aW9yLCBhbmQgYXJlIGdlbmVyYWxseSBpbGwtc3VpdGVkIGZvciBwcmVzZW50aW5nIGxhcmdlIGRhdGEgbW9kZWxzLiBUaGVpciBsYXJnZWx5IHVuc3VjY2Vzc2Z1bCBhdHRlbXB0cw0KdG8gZGVmaW5lIHRoZWlyIG93biBjdXN0b20gdGFibGUgdHJlZSB3aWRnZXQgaGF2ZSBzaG93biBpdCB0byBiZSBhIHZlcnkgY2hhbGxlbmdpbmcNCnRhc2sgcmVxdWlyaW5nIGV4cGVydC1sZXZlbCBrbm93bGVkZ2Ugb2YgU1dULiBUaGUgRWNsaXBzZSBQbGF0Zm9ybSB0ZWFtIHdpbGwNCndvcmsgd2l0aCB0aGUgY29tbXVuaXR5IHRvIGRlZmluZSBhIG5ldyBjdXN0b20gdGFibGUgYW5kIHRhYmxlIHRyZWUgd2lkZ2V0cyB0aGF0IHdpbGwgbWVldA0KdGhlaXIgbmVlZHMuIFtTV1QsIFBsYXRmb3JtIFVJXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkltcHJvdmUgc3RydWN0dXJlIG9mIGV4aXN0aW5nIGRvY3VtZW50YXRpb24uPC9iPiAgVGhlIEVjbGlwc2UgaGVscA0KYm9va3MgYXJlIGN1cnJlbnRseSBibGFjayBib3hlcy4gVGhlcmUgaXMgbm8gZWFzeSB3YXkgdG8gaW5zZXJ0IGFkZGl0aW9uYWwNCm1hdGVyaWFsIGludG8gYW4gZXhpc3RpbmcgRWNsaXBzZSBib29rLCBzdWNoIGFzIGFkZGluZyBhIHNlY3Rpb24gZGVzY3JpYmluZyBhDQpuZXcgdG9vbC4gQW5kIHRoZXJlIGlzIG5vIHdheSB0byBpbmNvcnBvcmF0ZSBwb3J0aW9ucyBvZiB0aGUgRWNsaXBzZSBib29rcyBpbnRvDQpzb21lIG90aGVyIGJvb2suIFRoZSBFY2xpcHNlIFBsYXRmb3JtIGhlbHAgYm9va3Mgc2hvdWxkIGJlIHJlc3RydWN0dXJlZCBpbiBhDQptb3JlIG1vZHVsYXIgbWFubmVyIGJ5IG1ha2luZyBiZXR0ZXIgdXNlIG9mIGV4aXN0aW5nIGhlbHAgc3lzdGVtIGNhcGFiaWxpdGllcy4NCltQbGF0Zm9ybSwgSkRULCBQREUsIFBsYXRmb3JtIEhlbHBdPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UHJvdmlkZSB1c2VyIHByZWZlcmVuY2VzLjwvYj4gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHN0b3JlIHVzZXINCnByZWZlcmVuY2VzIHRoYXQgYXJlIG5vdCBzcGVjaWZpYyB0byBhIHdvcmtzcGFjZSBzZXBhcmF0ZSBmcm9tIHRoZSB3b3Jrc3BhY2UsIHNvDQp0aGF0IHRoZXkgY2FuIGJlIHVzZWQgaW4gYW55IHdvcmtzcGFjZS4gW1BsYXRmb3JtIENvcmUsIFBsYXRmb3JtIFVJXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkV2b2x2ZSB0aGUgRWNsaXBzZSB1c2VyIGV4cGVyaWVuY2UuPC9iPiBUaGUgY3VycmVudCBFY2xpcHNlIEdVSSBpcw0Kc29saWRseSBncm91bmRlZCBpbiB0cmFkaXRpb25hbCBvcGFxdWUsIHJlY3Rhbmd1bGFyIHdpbmRvd3MuIFJlY2VudCBhZHZhbmNlcyBpbg0KVUkgZGVzaWduIGltcHJvdmUgdGhlIHVzZXIgZXhwZXJpZW5jZSB3aXRoIHN1Y2ggdGhpbmdzIGFzIHRyYW5zcGFyZW50IG92ZXJsYXlzDQphbmQgYXNzb2NpYXRpbmcgc291bmRzIHdpdGggc2lnbmlmaWNhbnQgZXZlbnRzLiBFY2xpcHNlIDIuMiBzaG91bGQgaGF2ZSBhIG5ldw0KbG9vayB0aGF0IG1ha2VzIG1vcmUgZWZmZWN0aXZlIHVzZSBvZiB0aGUgY2FwYWJpbGl0aWVzIG9mIGN1cnJlbnQgZGVza3RvcA0KY29tcHV0ZXJzLiBbUGxhdGZvcm0gVUksIEpEVCBVSSwgRGVidWcgVUldPC9wPg0KPHA+KDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj48L2I+IDxiPkVuYWJsZSBFY2xpcHNlIHRvIGJlIHVzZWQgYXMgYSBnZW5lcmFsIHB1cnBvc2UgYXBwbGljYXRpb24NCmZyYW1ld29yay48L2I+IEVjbGlwc2Ugd2FzIGRlc2lnbmVkIGFzIGEgdW5pdmVyc2FsIHRvb2wgaW50ZWdyYXRpb24gcGxhdGZvcm0uDQpIb3dldmVyLCBtYW55IGZhY2V0cyBhbmQgY29tcG9uZW50cyBvZiBFY2xpcHNlIGFyZSBub3QgcGFydGljdWxhcmx5IHNwZWNpZmljIHRvDQpJREVzIGFuZCB3b3VsZCBtYWtlIGVxdWFsIHNlbnNlIGluIG5vbi1JREUgYXBwbGljYXRpb25zIChlLmcuLCB3aW5kb3ctYmFzZWQgR1VJLA0KcGx1Zy1pbnMsIGhlbHAgc3lzdGVtLCB1cGRhdGUgbWFuYWdlcikuIFRoZSBFY2xpcHNlIFBsYXRmb3JtIHNob3VsZCBmYWN0b3Igb3V0DQphbmQgc2VncmVnYXRlIElERS1zcGVjaWZpYyBmYWNpbGl0aWVzIChlLmcuLCBldmVyeXRoaW5nIGhhdmluZyB0byBkbyB3aXRoDQp3b3Jrc3BhY2UgcmVzb3VyY2VzKSBzbyB0aGF0IGEgc3Vic2V0IG9mIGl0IGNhbiBiZSB1c2VkIGFzIGEgZ2VuZXJhbCBwdXJwb3NlDQphcHBsaWNhdGlvbiBmcmFtZXdvcmsuIFtQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybSBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5JbXByb3ZlIGFjdGlvbiBjb250cmlidXRpb25zLjwvYj4gVGhlIGN1cnJlbnQgYWN0aW9uIGNvbnRyaWJ1dGlvbiBzdG9yeQ0KaXMgZGl2ZXJzZSBhbmQgY29tcGxleCwgYW5kIHRoZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiBrZXkgYmluZGluZ3MgYW5kIHJldGFyZ2V0YWJsZSBhY3Rpb25zLA0KdW5jbGVhci4gRWNsaXBzZSBzaG91bGQgdW5pZnkgdGhlIGFjdGlvbiBjb250cmlidXRpb24gc3VwcG9ydCwgcHJvdmlkZQ0Kc2ltcGxpZmllZCBzdXBwb3J0IGZvciBrZXkgYmluZGluZ3MsIGFuZCBjbGFyaWZ5IHRoZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiBrZXkNCmJpbmRpbmdzIGFuZCByZXRhcmdldGFibGUgYWN0aW9ucy4gRWNsaXBzZSBzaG91bGQgYWxzbyBzdXBwb3J0IG5ldyB0eXBlcyBvZg0KYWN0aW9ucyBjb250cmlidXRpb25zLCBzdWNoIGFzIGNvbWJvIGJveGVzIGluIHRvb2xiYXJzLCBhbmQgZW5hYmxlIGFkZGl0aW9uYWwgVUkgY3VzdG9taXphdGlvbi4NCltQbGF0Zm9ybSBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5BZGQgYSAmcXVvdDt0aXBzICZhbXA7IHRyaWNrcyZxdW90OyBmYWNpbGl0eS48L2I+IEVjbGlwc2Ugc2hvdWxkDQpwcm92aWRlIGFuIG9wZW4sIGZsZXhpYmxlIG1lY2hhbmlzbSBmb3Igb2ZmZXJpbmcgc3VnZ2VzdGlvbnMgYW5kIHRpcHMgdG8gdGhlDQp1c2VyIGZvciB0aGUgdmFyaW91cyB0b29scyBhdmFpbGFibGUgYW5kIGFjdGl2ZSBpbiB0aGUgSURFLiBbUGxhdGZvcm0gVUldPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PkRlZmVycmVkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlJlamVjdGVkIEl0ZW1zIChFY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KDQoNCg0KPHA+KEVuZCBvZiBpdGVtcyBmb3IgRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0LikNCg0KDQoNCjxoMz4gPGEgbmFtZT0iSkRUIj5KYXZhIGRldmVsb3BtZW50IHRvb2xzIA0KICAoSkRUKSBzdWJwcm9qZWN0PC9hPjwvaDM+DQoNCjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvamR0L2luZGV4Lmh0bWwiPiBKYXZhIGRldmVsb3BtZW50IHRvb2xzPC9hPiAoSkRUKSANCmltcGxlbWVudHMgYSBKYXZhIElERSBiYXNlZCBvbiB0aGUgRWNsaXBzZSBQbGF0Zm9ybS4gVGhlIGZvbGxvd2luZyB3b3JrIGl0ZW1zIA0KcmVmbGVjdCBuZXcgZmVhdHVyZXMgb2YgSkRULCBvciBhcmVhcyB3aGVyZSBleGlzdGluZyBmZWF0dXJlcyB3aWxsIGJlIHNpZ25pZmljYW50bHkgDQpyZXdvcmtlZC4gDQo8aDQ+Q29tbWl0dGVkIEl0ZW1zIChFY2xpcHNlIEpEVCBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCjxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+UHJvcG9zZWQgSXRlbXMgKEVjbGlwc2UgSkRUIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5BZGQgZWFybHkgc3VwcG9ydCBmb3IgSjJTRSAxLjUgZmVhdHVyZXMuPC9iPiBUaGUgbmV4dCBmZWF0dXJlIHJlbGVhc2UNCiAgb2YgSjJTRSBpcyB2ZXJzaW9uIDEuNSAoJnF1b3Q7VGlnZXImcXVvdDspLCB0YXJnZXRlZCB0byBzaGlwIGluIHRoZSBmaXJzdCBoYWxmDQogIG9mIDIwMDQuIFdoaWxlIHRoZSBjb250ZW50cyBvZiB0aGlzIHJlbGVhc2UgYXJlIHN0aWxsIHVuZGVyIGRpc2N1c3Npb24gKDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MTc2IiB0YXJnZXQ9Il9ibGFuayI+SlNSLTE3NjwvYT4pLA0KICB0aGlzIHJlbGVhc2UgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBleHRlbnNpb25zIHRvIHRoZSBKYXZhIGxhbmd1YWdlLCBpbmNsdWRpbmcNCiAgZ2VuZXJpYyB0eXBlcyAoPGEgaHJlZj0iaHR0cDovL2pjcC5vcmcvZW4vanNyL2RldGFpbD9pZD0wMTQiIHRhcmdldD0iX2JsYW5rIj5KU1ItMDE0PC9hPiksDQogIGVudW1lcmF0aW9ucywgYXV0b2JveGluZywgZW5oYW5jZWQgZm9yIGxvb3BzLCBzdGF0aWMgaW1wb3J0cyAoYWxsIDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MjAxIiB0YXJnZXQ9Il9ibGFuayI+SlNSLTIwMTwvYT4pLA0KICBtZXRhZGF0YSBmYWNpbGl0eSAoPGEgaHJlZj0iaHR0cDovL2pjcC5vcmcvZW4vanNyL2RldGFpbD9pZD0xNzUiPkpTUi0xNzU8L2E+KSwNCiAgYW5kIGNvbXBpbGVyIEFQSXMgKDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MTk5IiB0YXJnZXQ9Il9ibGFuayI+SlNSLTE5OTwvYT4pLg0KICBTdXBwb3J0aW5nIHRoZXNlIG5ldyBsYW5ndWFnZSBhbmQgY29tcGlsZXIgZmVhdHVyZXMgd2lsbCByZXF1aXJlIG1ham9yIGNoYW5nZXMgdG8gdGhlDQogIEVjbGlwc2UgSmF2YSBjb21waWxlciwgSkRUIENvcmUgQVBJcywgYW5kIEpEVCBVSS4gQWx0aG91Z2ggRWNsaXBzZSAyLjIgd2lsbA0KICBsaWtlbHkgc2hpcCBiZWZvcmUgSjJTRSAxLjUgZG9lcywgRWNsaXBzZSBzaG91bGQgY29udGFpbiBlYXJseSBzdXBwb3J0IGZvcg0KICBKMlNFIDEuNSBmZWF0dXJlcyB3aGVyZXZlciBwb3NzaWJsZSBbSkRUIENvcmUsIEpEVCBVSSwgSkRUIERlYnVnXTwvcD4NCiAgPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+SW1wcm92ZSBzdXBwb3J0IGZvciBKYXZhLWxpa2Ugc291cmNlIGZpbGVzLjwvYj4gIEpTUCBhbmQgSlNRTCBhcmUgdHdvDQogIGluc3RhbmNlcyBvZiBsYW5ndWFnZXMgdGhhdCBlbWJlZCBwYXNzYWdlcyBvZiBKYXZhIGxhbmd1YWdlIGNvZGUuIEVjbGlwc2UNCiAgc2hvdWxkIHByb3ZpZGUgYmV0dGVyIHN1cHBvcnQgZm9yIEphdmEtbGlrZSBzb3VyY2UgZmlsZXMuIEZvciBpbnN0YW5jZSwNCiAgb3V0bGluZSB2aWV3cyBzaG91bGQgYmUgYWJsZSB0byBzaG93IHRoZSBoaWVyYXJjaHkgb2YgSmF2YSBlbGVtZW50czsgaXQgc2hvdWxkDQogIGJlIHBvc3NpYmxlIHRvIGluZGV4IHRoZXNlIGZpbGVzIHNvIHRoYXQgSmF2YSBzZWFyY2ggY2FuIGZpbmQgdGhlIEphdmENCiAgZGVjbGFyYXRpb25zIGFuZCByZWZlcmVuY2VzIHdpdGhpbjsgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBKYXZhIGNvZGUNCiAgYXNzaXN0IG9uIHRoZSBKYXZhIHBhc3NhZ2VzOyByZWZhY3RvcmluZyBzaG91bGQgYmUgYWJsZSB0byB0YWtlIHRoZXNlIGZpbGVzDQogIGludG8gYWNjb3VudDsgdGhlIGRlYnVnZ2VyIHNob3VsZCBiZSBhYmxlIHRvIHN0ZXAgdGhyb3VnaCB0aGUgSmF2YSBwYXNzYWdlcyAoPGEgaHJlZj0iaHR0cDovL2pjcC5vcmcvZW4vanNyL2RldGFpbD9pZD0wNDUiIHRhcmdldD0iX2JsYW5rIj5KU1ItMDQ1PC9hPik7IGVycm9yIGhpZ2hsaWdodGluZyBzaG91bGQgYmUgc3VwcG9ydGVkIGFjcm9zcyBzZWN0aW9uczsNCiAgZXRjLiBbSkRUIENvcmUsIEpEVCBVSSwgSkRUIERlYnVnXTwvcD4NCiAgPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+U3VwcG9ydCBKYXZhIHJlZmVyZW5jZXMgZnJvbSBub24tSmF2YSBmaWxlcy48L2I+IFJlZmVyZW5jZXMgdG8gSmF2YSBlbGVtZW50cyBpbiBwYXJ0aWN1bGFyIGNsYXNzZXMNCiAgY2FuIHNob3cgdXAgaW4gc3BlY2lmaWMga2luZHMgb2Ygbm9uLUphdmEgZmlsZXMsIHN1Y2ggYXMgcGx1Zy1pbiBtYW5pZmVzdA0KICBmaWxlcyAocGx1Z2luLnhtbCkuIFRoZXNlIHJlZmVyZW5jZXMgc2hvdWxkIGFsc28gcGFydGljaXBhdGUgaW4gSmF2YQ0KICBvcGVyYXRpb25zIGxpa2Ugc2VhcmNoLCBtb3ZlLCByZW5hbWUsIGFuZCBvdGhlciByZWZhY3RvcmluZyBvcGVyYXRpb25zLiBKRFQgd2lsbCBzdXJmYWNlIEFQSXMgdGhhdCBlbmFibGUNCiAgb3RoZXIgcGx1Zy1pbnMgdG8gY29udHJpYnV0ZSB0byBhbmQgcGFydGljaXBhdGUgaW4gdGhlc2Ugb3BlcmF0aW9ucy4gW0pEVCBDb3JlLCBKRFQgVUksIEpEVCBEZWJ1Z108YnI+DQogIDxicj4NCiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkhhcm1vbml6ZSBKYXZhIHNvdXJjZSBtYW5pcHVsYXRpb24uPC9iPiBUaGUgSmF2YSBtb2RlbCBpcyBjdXJyZW50bHkNCiAgaW1wbGVtZW50ZWQgaW4gdGVybXMgb2YgSkRPTSwgYW4gZWFybHkgcHJlY3Vyc29yIG9mIHRoZSBBU1QgZmFjaWxpdHkgYWRkZWQgaW4NCiAgMi4wLiBKRFQgd2lsbCBtb3ZlIHRvIGFuIEFTVC0gYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEphdmEgbW9kZWwsIGFuZA0KICBkZXByZWNhdGUgSkRPTS4gW0pEVCBDb3JlXTwvcD4NCiAgPHA+IA0KICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UHJlc2VudCA8L2I+PGI+bG9naWNhbCB2aWV3IG9mIEphdmEgb2JqZWN0cyBpbiBkZWJ1Z2dlci48L2I+IFRoZQ0KICBjdXJyZW50IGRlYnVnZ2VyIGFsd2F5cyBwcmVzZW50cyB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIEphdmEgb2JqZWN0cy4gRm9yDQogIGluc3RhbmNlcyBvZiBzdGFuZGFyZCBkYXRhIHN0cnVjdHVyZXMgbGlrZSBqYXZhLnV0aWwuSGFzaE1hcCwgdGhlIEphdmENCiAgZGVidWdnZXIgc2hvdWxkIGJlIGFibGUgdG8gcHJlc2VudCBhIGhpZ2hlciBsZXZlbCBsb2dpY2FsIHZpZXcgb2YgdGhlIG9iamVjdA0KICAoaS5lLiwgdG8gc2hvdyBpdCBhcyBhIHRhYmxlIG9mIGtleS10byB2YWx1ZSBtYXBwaW5ncykuIFtKRFQgRGVidWddPC9wPg0KICA8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5Qcm92aWRlIEFQSSBmb3IgcmVmYWN0b3Jpbmc8L2I+PGI+LjwvYj4gIEpEVCBzaG91bGQgYWxsb3cgb3RoZXIgcGx1Zy1pbnMgdG8NCiAgY29udHJpYnV0ZSBzcGVjaWFsaXplZCByZWZhY3RvcmluZyBvcGVyYXRpb25zLCBhbmQgcHJvdmlkZSB0aGUgaW5mcmFzdHJ1Y3R1cmUNCiAgdG8gbWFrZSBpdCBwb3NzaWJsZSBmb3IgdGhlbSB0byBkbyBzby4gW0pEVCBDb3JlLCBKRFQgVUldPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PkRlZmVycmVkIEl0ZW1zIChFY2xpcHNlIEpEVCBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5SZWplY3RlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCg0KDQo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIEpEVCBzdWJwcm9qZWN0LikNCg0KDQoNCjxoMz4NCg0KPGEgbmFtZT0iUERFIj5QbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50IChQREUpIHN1YnByb2plY3Q8L2E+PC9oMz4NCg0KVGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvcGRlL2luZGV4Lmh0bWwiPiBwbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50PC9hPiANCihQREUpIGNvbnNpc3RzIG9mJm5ic3A7dG9vbHMgZm9yIGRldmVsb3BpbmcgcGx1Zy1pbnMgZm9yIHRoZSBFY2xpcHNlIFBsYXRmb3JtLg0KDQpUaGUgZm9sbG93aW5nIHdvcmsgaXRlbXMgcmVmbGVjdCBuZXcgZmVhdHVyZXMgb2YgUERFLCBvciBhcmVhcyB3aGVyZSBleGlzdGluZw0KDQpmZWF0dXJlcyB3aWxsIGJlIHNpZ25pZmljYW50bHkgcmV3b3JrZWQuDQo8aDQ+Q29tbWl0dGVkIEl0ZW1zIChFY2xpcHNlIFBERSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPig8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiBuZXcpIDxiPkhlbHAgZGV2ZWxvcGVycyANCiAgICB0dW5lIHBsdWctaW4gcGVyZm9ybWFuY2UuPC9iPiBPYnNlcnZpbmcgYW5kIG1lYXN1cmluZyB0aGUgZHluYW1pYyBiZWhhdmlvciANCiAgICBvZiBhIHBsdWctaW4gaXMga2V5IHRvIGRldmVsb3BpbmcgcGx1Zy1pbnMgdGhhdCBwZXJmb3JtIHdlbGwuIFBERSB2aXN1YWxpemF0aW9ucyANCiAgICBzaG91bGQgaGVscCB0aGUgZGV2ZWxvcGVyIHVuZGVyc3RhbmQgdGhlIGR5bmFtaWMgYmVoYXZpb3Igb2YgdGhlaXIgcnVubmluZyANCiAgICBwbHVnLWluOyBlLmcuLCByZWFzb24gZm9yIHBsdWctaW4gYWN0aXZhdGlvbiwgZWxhcHNlIHRpbWUgdG8gc3RhcnQgdXAsIGRlcGVuZGVudCANCiAgICBwbHVnLWlucyBhY3RpdmF0ZWQsIGV0Yy48L3A+DQogIDwvYmxvY2txdW90ZT4NCjxibG9ja3F1b3RlPg0KPHA+KDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5TPC9iPjxiPnVwcG9ydCBjb250ZXh0LXNlbnNpdGl2ZSBoZWxwIGZvciBwbHVnLWlucy48L2I+IEFsbCBwbHVnLWluDQpzaG91bGQgcHJvdmlkZSBjb250ZXh0LXNlbnNpdGl2ZSAoRjEpIGhlbHAgZm9yIHRoZWlyIFVJIGNvbXBvbmVudHMuIEhvd2V2ZXIsDQppbXBsZW1lbnRpbmcgRjEgc3VwcG9ydCBpcyBzb21ld2hhdCBjdW1iZXJzb21lIGFuZCBlcnJvciBwcm9uZS4gUERFIHNob3VsZA0KcHJvdmlkZSBhZGRpdGlvbmFsIHN1cHBvcnQgaW4gdGhpcyBhcmVhLCBzdWNoIGFzIGFzc2lnbmluZyBoZWxwIGNvbnRleHRzIHRvIFVJDQplbGVtZW50cywgdXBkYXRpbmcgY29ycmVzcG9uZGluZyBYTUwgZmlsZXMsIGFuZCBjaGVja2luZyBjb25zaXN0ZW5jeSBvZiBjb250ZXh0DQppZHMuPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PkRlZmVycmVkIEl0ZW1zIChFY2xpcHNlIFBERSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5SZWplY3RlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCg0KDQo8cD4oRW5kIG9mIGl0ZW1zIGZvciBFY2xpcHNlIFBERSBzdWJwcm9qZWN0LikNCg0KPC9ib2R5Pg0KDQo8L2h0bWw+DQoNCg==