PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4NCg0KPGh0bWw+DQoNCjxoZWFkPg0KDQogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPg0KDQogICA8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkVjbGlwc2UgUHJvamVjdCBQTUMiPg0KDQogICA8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBGcm9udFBhZ2UgNC4wIj4NCg0KICAgPG1ldGEgbmFtZT0iUHJvZ0lkIiBjb250ZW50PSJGcm9udFBhZ2UuRWRpdG9yLkRvY3VtZW50Ij4NCg0KICAgPHRpdGxlPkVjbGlwc2UgUHJvamVjdCBEcmFmdCAyLjIgUGxhbjwvdGl0bGU+DQoNCiAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZGVmYXVsdF9zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4NCg0KPC9oZWFkPg0KDQo8Ym9keT4NCg0KDQoNCjxoMT4NCg0KRWNsaXBzZSBQcm9qZWN0PGJyPg0KDQpEUkFGVCAyLjIgUGxhbjwvaDE+DQoNCjxwPkxhc3QgcmV2aXNlZCBGcmlkYXksIERlY2VtYmVyIDIwLCAyMDAyICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPiANCiAgbWFya3MgaW50ZXJlc3RpbmcgY2hhbmdlcyBvdmVyIHRoZSA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZWNsaXBzZS9kZXZlbG9wbWVudC9lY2xpcHNlX3Byb2plY3RfcGxhbl8yXzEuaHRtbCI+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+SW50ZWwgeDg2PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5TdW4gSmF2YSAyIFNESywgU3RhbmRhcmQgRWRpdGlvbiwgdmVyc2lvbiAxLjQgZm9yDQogICAgICAgIE1pY3Jvc29mdCBXaW5kb3dzIDxpPltleGFjdCB2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5JQk0gMzItYml0IFNESyBmb3IgV2luZG93cywgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiwNCiAgICAgICAgdmVyc2lvbiAxLjQgPGk+W2V4YWN0IHZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiIHJvd1NwYW49IjIiPkxpbnV4PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIiByb3dTcGFuPSIyIj5JbnRlbCB4ODY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPlN1biBKYXZhIDIgU0RLLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuNCBmb3IgTGludXgNCiAgICAgICAgeDg2IDxpPltleGFjdCB2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5JQk0gRGV2ZWxvcGVyIEtpdCBmb3IgTGludXgsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24sDQogICAgICAgIHZlcnNpb24gMS40IDxpPltleGFjdCB2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMjElIj5TdW4gU29sYXJpczwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE4JSI+U1BBUkM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPlN1biBKYXZhIDIgU0RLLCBTdGFuZGFyZCBFZGl0aW9uLCB2ZXJzaW9uIDEuNCBmb3IgU29sYXJpcw0KICAgICAgICBTUEFSQyA8aT5bZXhhY3QgdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSI+SFAgSFAtVVg8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiPmhwOTAwMCBQQS1SSVNDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj48c3BhbiBjbGFzcz0iaGVhZGVyIj5IUC1VWCBTREsgZm9yIHRoZSBKYXZhIDIgcGxhdGZvcm0sDQogICAgICAgIHZlcnNpb24gMS40IGZvciBocDkwMDAgUEEtUklTQzwvc3Bhbj4gPGk+W2V4YWN0IHZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPklCTa4gQUlYPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTglIj5Qb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNzMlIj5JQk0gRGV2ZWxvcGVyIEtpdCBmb3IgQUlYLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uLA0KICAgICAgICB2ZXJzaW9uIDEuNCA8aT5bZXhhY3QgdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjIxJSI+QXBwbGWuIE1hY64gT1M8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiPlBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI3MyUiPkphdmEgMiBTdGFuZGFyZCBFZGl0aW9uIDEuNCBmb3IgTWFjIE9TIFggPGk+W2V4YWN0IHZlcnNpb24NCiAgICAgICAgVEJEXTwvaT48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyMSUiPjxzcGFuIGNsYXNzPSJ0aXRsZSI+UU5YPC9zcGFuPq48c3BhbiBjbGFzcz0idGl0bGUiPg0KICAgICAgICBOZXV0cmlubzwvc3Bhbj6uPHNwYW4gY2xhc3M9InRpdGxlIj4gUlRPUzwvc3Bhbj48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOCUiPkludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjczJSI+SUJNIEo5IFZNIGZvciBRTlggPGk+W2V4YWN0IHZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgIDwvdHI+DQogIDwvdGJvZHk+DQo8L3RhYmxlPg0KPHA+PHNwYW4gY2xhc3M9ImhlYWRlciI+VGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgdGhlIGNvbWJpbmF0aW9ucyBvZiBvcGVyYXRpbmcgDQogIHN5c3RlbSBhbmQgSmF2YSAyIFBsYXRmb3JtIHVzZWQgd2hlbiB0ZXN0aW5nIHRoZSBFY2xpcHNlIFNESyBjb25maWd1cmF0aW9ucy4gDQogIFRoZSBzdGF0dXMgY29sdW1uIGluZGljYXRlcyB0aGUgbGV2ZWwgb2YgdGVzdGluZzogJnF1b3Q7UHJpbWFyeSZxdW90OyBtZWFucyANCiAgYSBmdWxsIHRlc3RlZCBjb25maWd1cmF0aW9uOyAmcXVvdDs8L3NwYW4+U2Vjb25kYXJ5JnF1b3Q7IG1lYW5zIGEgY29uZmlndXJhdGlvbiANCiAgd2hpY2ggaXMgb25seSBsaWdodGx5IHRlc3RlZDsgJnF1b3Q7VW50ZXN0ZWQmcXVvdDsgbWVhbnMgYSBjb25maWd1cmF0aW9uIHRoYXQgDQogIGhhcyByZWNlaXZlZCBubyB0ZXN0aW5nLCBidXQgd2hpY2ggc2hvdWxkIHdvcms7ICZxdW90O0FzLWlzJnF1b3Q7IG1lYW5zIGEgY29uZmlndXJhdGlvbiANCiAgdGhhdCBoYXMgcmVjZWl2ZWQgbm8gdGVzdGluZywgYW5kIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsuIFRoZSAmcXVvdDtBcy1pcyZxdW90OyANCiAgZGVzaWduYXRpb24gaXMgdXNlZCBmb3Igb3BlcmF0aW5nIGVudmlyb25tZW50cyBuZWFyaW5nIHRoZSBlbmQgb2YgdGhlaXIgc3VwcG9ydGVkIA0KICBsaWZlOyBidWdzIHRoYXQgc2hvdyB1cCBvbmx5IGluICZxdW90O0FzLWlzJnF1b3Q7IGNvbmZpZ3VyYXRpb25zIG9mIEVjbGlwc2UgDQogIGFyZSB1bmxpa2VseSB0byBnZXQgZml4ZWQuPC9wPg0KPHRhYmxlIGhlaWdodD0iNDE1IiB3aWR0aD0iOTElIiBib3JkZXI9IjEiPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iMzIiPjxiPldpbmRvdyBzeXN0ZW08L2I+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjMyIj48Yj5KYXZhIDIgUGxhdGZvcm08YnI+DQogICAgICAgIChzZWUgYWJvdmUgdGFibGUpPC9iPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIzMiI+PGI+T3BlcmF0aW5nIEVudmlyb25tZW50PC9iPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIzMiI+PGI+VGVzdGluZyBTdGF0dXM8L2I+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjEwNCIgcm93U3Bhbj0iNSI+V2luMzI8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTA0IiByb3dTcGFuPSI1Ij5XaW5kb3dzIG9uIEludGVsIHg4NjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+V2luZG93cyBYUDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+V2luZG93cyAyMDAwPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KICAgICAgICBTZWNvbmRhcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPldpbmRvd3MgTUU8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogICAgICAgIFVudGVzdGVkPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5XaW5kb3dzIDk4U0U8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+IA0KICAgICAgICBBcy1pczwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+V2luZG93cyBOVDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+PGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gDQogICAgICAgIEFzLWlzPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE1MiIgcm93U3Bhbj0iNiI+TW90aWY8L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iODYiIHJvd1NwYW49IjMiPiZuYnNwOw0KICAgICAgICA8cD5MaW51eCBvbiBJbnRlbCB4ODY8L3A+DQogICAgICAgIDxwPiZuYnNwOzwvcD4NCiAgICAgIDwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIyNSI+UmVkSGF0IExpbnV4IHg4NiA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIyNSI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIyNSI+U3VTRSBMaW51eCB4ODYgPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMjUiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMjQiPk90aGVyIExpbnV4IDxpPlt2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjI0Ij5VbnRlc3RlZDwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+U29sYXJpcyBvbiBTUEFSQyZuYnNwOzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+U3VuIFNvbGFyaXMgU1BBUkMgPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPkhQLVVYIG9uIGhwOTAwMCBQQS1SSVNDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5IUC1VWCBocDkwMDAgPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPkFJWCBvbiBQb3dlclBDPC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5JQk0gQUlYIG9uIFBvd2VyUEMgPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlByaW1hcnk8L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkIHdpZHRoPSIxMSUiIGhlaWdodD0iODEiIHJvd1NwYW49IjQiPkdUSzwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSI4MSIgcm93U3Bhbj0iNCI+TGludXggb24gSW50ZWwgeDg2PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCBoZWlnaHQ9IjE1Ij5SZWRIYXQgTGludXggeDg2IDxpPlt2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICAgIDx0ZCBoZWlnaHQ9IjE1Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iNDIlIiBoZWlnaHQ9IjE2Ij5TdVNFIExpbnV4IHg4NiA8aT5bdmVyc2lvbiBUQkRdPC9pPjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjE5JSIgaGVpZ2h0PSIxNiI+UHJpbWFyeTwvdGQ+DQogICAgPC90cj4NCiAgICA8dHI+DQogICAgICA8dGQgd2lkdGg9IjQyJSIgaGVpZ2h0PSIxNiI+T3RoZXIgTGludXggPGk+W3ZlcnNpb24gVEJEXTwvaT48L3RkPg0KICAgICAgPHRkIHdpZHRoPSIxOSUiIGhlaWdodD0iMTYiPlVudGVzdGVkPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE2Ij5DYXJib248L3RkPg0KICAgICAgPHRkIHdpZHRoPSIyOCUiIGhlaWdodD0iMTYiPk1hYyBPUyBYIG9uIFBvd2VyUEM8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPk1hYyBPUyBYIDxpPlt2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij48aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KICAgICAgICBQcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICAgIDx0ZCB3aWR0aD0iMTElIiBoZWlnaHQ9IjE2Ij4NCiAgICAgICAgUGhvdG9urjwvdGQ+DQogICAgICA8dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxNiI+SUJNIEo5IFZNIGZvciBRTlg8L3RkPg0KICAgICAgPHRkIHdpZHRoPSI0MiUiIGhlaWdodD0iMTYiPlFOWCBOZXV0cmlubyBSVE9TIDxpPlt2ZXJzaW9uIFRCRF08L2k+PC90ZD4NCiAgICAgIDx0ZCB3aWR0aD0iMTklIiBoZWlnaHQ9IjE2Ij5QcmltYXJ5PC90ZD4NCiAgICA8L3RyPg0KICA8L3Rib2R5Pg0KPC90YWJsZT4NCjxoND5JbnRlcm5hdGlvbmFsaXphdGlvbjwvaDQ+DQo8cD5UaGUgRWNsaXBzZSBQbGF0Zm9ybSBpcyBkZXNpZ25lZCBhcyB0aGUgYmFzaXMgZm9yIGludGVybmF0aW9uYWxpemVkIHByb2R1Y3RzLg0KVGhlIHVzZXIgaW50ZXJmYWNlIGVsZW1lbnRzIHByb3ZpZGVkIGJ5IHRoZSBFY2xpcHNlIFNESyBjb21wb25lbnRzLCBpbmNsdWRpbmcNCmRpYWxvZ3MgYW5kIGVycm9yIG1lc3NhZ2VzLCBhcmUgZXh0ZXJuYWxpemVkLiBUaGUgRW5nbGlzaCBzdHJpbmdzIGFyZSBwcm92aWRlZA0KYXMgdGhlIGRlZmF1bHQgcmVzb3VyY2UgYnVuZGxlcy48L3A+DQo8cD5MYXRpbi0xIGxvY2FsZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgRWNsaXBzZSBTREsgb24gYWxsIG9mIHRoZSBhYm92ZQ0Kb3BlcmF0aW5nIGVudmlyb25tZW50czsgREJDUyBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLIG9uIHRoZQ0KV2luZG93cywgR1RLLCBhbmQgTW90aWYgd2luZG93IHN5c3RlbXM7IEJJREkgbG9jYWxlcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZQ0KRWNsaXBzZSBTREsgb25seSBvbiBXaW5kb3dzIG9wZXJhdGluZyBlbnZpcm9ubWVudHMuDQo8cD5UaGUgRWNsaXBzZSBTREsgc3VwcG9ydHMgR0IgMTgwMzAsIHRoZSBuZXcgQ2hpbmVzZSBjb2RlIHBhZ2Ugc3RhbmRhcmQsIG9uDQpXaW5kb3dzIDIwMDAgYW5kIFhQIG9ubHkuIE5vdGUgdGhhdCBHQiAxODAzMCBhbHNvIHJlcXVpcmVzIGxvY2FsZSBhbmQgY2hhcmFjdGVyDQplbmNvZGluZyBzdXBwb3J0IGZyb20gdGhlIEphdmEgMiBSdW50aW1lIEVudmlyb25tZW50IHZlcnNpb24gMS40Lg0KPHA+R2VybWFuIGFuZCBKYXBhbmVzZSBsb2NhbGVzIGhhdmUgYmVlbiB0ZXN0ZWQuPC9wPg0KPGg0PkJJREkgc3VwcG9ydDwvaDQ+DQo8cD5UaGUgRWNsaXBzZSBTREsgaXMgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB0YXJnZXRlZCBhdCB0ZWNobmljYWwNCnByb2Zlc3Npb25hbHMgLSBub3QgYW4gZW5kIHVzZXIgYXBwbGljYXRpb24uIEhvd2V2ZXIsIHRoZSBFY2xpcHNlIFNESyB0b29scyB3aWxsDQpwZXJtaXQgdGVjaG5pY2FsIHByb2Zlc3Npb25hbHMgd2hvIGFyZSB3b3JraW5nIGluIEVuZ2xpc2ggdG8gYnVpbGQgSGVicmV3L0FyYWJpYw0KZW5kIHVzZXIgSmF2YSBwcm9ncmFtcyB3aGljaCBhcmUgdGhlbXNlbHZlcyBub3QgYmFzZWQgb24gdGhlIEVjbGlwc2UgU0RLLiBUaGUNCkJJREkgc3VwcG9ydCBpbiB0aGUgRWNsaXBzZSBTREsgYWxsb3dzIGEgSmF2YSBwcm9ncmFtbWVyIHRvIHdvcmsgd2l0aCBCSURJDQpzdHJpbmdzLCBjb2RlIGNvbW1lbnRzLCBldGMuIGJ1dCB0aGUgRWNsaXBzZSBTREsgaXRzZWxmIGlzIG5vdCBkZXNpZ25lZCB0byBiZQ0KbG9jYWxpemVkIGZvciBCSURJIGxvY2FsZXMgYW5kIGl0cyB3aWRnZXQgb3JpZW50YXRpb24gY2FuIG5vdCBiZSBjaGFuZ2VkLjwvcD4NCjxwPjxpPklNUE9SVEFOVDogVGhlIGFib3ZlIEJJREkgc3VwcG9ydCBpcyBhdmFpbGFibGUgb25seSBvbiBXaW5kb3dzIHBsYXRmb3Jtcy48L2k+PC9wPg0KDQo8aDI+PGEgbmFtZT0iQ29tcGF0aWJpbGl0eSI+PC9hPkNvbXBhdGliaWxpdHkgd2l0aCBQcmV2aW91cyBSZWxlYXNlczwvaDI+DQoNCjxwPg0KDQogRWNsaXBzZSAyLjIgd2lsbCBiZSB1cHdhcmRzIGNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIDIuMCBhbmQgMi4xLjwvcD4NCg0KPGgzPg0KDQpDb21wYXRpYmlsaXR5IG9mIFJlbGVhc2UgMi4yIHdpdGggMi4wIGFuZCAyLjE8L2gzPg0KDQogRWNsaXBzZSBTREsgMi4yIHdpbGwgYmUgdXB3YXJkcyBjb21wYXRpYmxlIHdpdGggRWNsaXBzZSBTREsgMi4wIGFuZCAyLjEgdG8gdGhlIA0KZ3JlYXRlc3QgZXh0ZW50IHBvc3NpYmxlLiBXZSBhbnRpY2lwYXRlIGEgc21hbGwgbnVtYmVyIG9mIGFyZWFzIHdoZXJlIHNsYXZpc2hseSANCm1haW50YWluaW5nIGNvbXBhdGliaWxpdHkgd291bGQgbm90IGJlIGluIHRoZSBiZXN0IGludGVyZXN0cyBvZiB0aGUgUGxhdGZvcm0gb3IgDQppdHMgY2xpZW50cy4gQWxsIHN1Y2ggZXhjZXB0aW9ucyB3aWxsIGJlIG5vdGVkIGluIHRoZSAyLjIgcmVsZWFzZSBub3RlcyBzbyB0aGF0IA0KY2xpZW50cyBjYW4gYXNzZXNzIHRoZSBpbXBhY3Qgb2YgdGhlc2UgY2hhbmdlcyBvbiB0aGVpciBwbHVnLWlucyBhbmQgcHJvZHVjdHMuPHA+PGI+QVBJIENvbnRyYWN0IENvbXBhdGliaWxpdHk6PC9iPiBFY2xpcHNlIFNESyAyLjIgd2lsbCBiZSB1cHdhcmRzIGNvbnRyYWN0LWNvbXBhdGlibGUgDQogIHdpdGggRWNsaXBzZSBTREsgMi4wIGFuZCAyLjEgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgcHJvZ3JhbXMgaW4gZnVsbCBjb21wbGlhbmNlIA0KICB3aXRoIGNvbnRyYWN0cyBzcGVjaWZpZWQgaW4gRWNsaXBzZSBTREsgMi4wIG9yIDIuMSBBUElzIHdpbGwgYXV0b21hdGljYWxseSBiZSBpbiANCiAgZnVsbCBjb21wbGlhbmNlIHdpdGggRWNsaXBzZSBTREsgMi4yIEFQSXMuIChBUEkgaXMgY29uc3RydWVkIGJyb2FkbHkgdG8gDQogIGluY2x1ZGUgc3VjaCB0aGluZ3MgYXMgcGx1Zy1pbiBleHRlbnNpb24gcG9pbnRzLikgRG93bndhcmQgY29udHJhY3QgY29tcGF0aWJpbGl0eSANCiAgaXMgbm90IHN1cHBvcnRlZC4gVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY29tcGxpYW5jZSB3aXRoIEVjbGlwc2UgU0RLIDIuMiBBUElzIHdvdWxkIGVuc3VyZSBjb21wbGlhbmNlIHdpdGggRWNsaXBzZSBTREsgMi4wDQpvciAyLjEgQVBJcy4gUmVmZXIgdG8gPGk+PGEgaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VjbGlwc2UvZGV2ZWxvcG1lbnQvamF2YS1hcGktZXZvbHV0aW9uLmh0bWwiPkV2b2x2aW5nDQpKYXZhLWJhc2VkIEFQSXM8L2E+PC9pPiBmb3IgYSBkaXNjdXNzaW9uIG9mIHRoZSBraW5kcyBvZiBBUEkgY2hhbmdlcyB0aGF0DQptYWludGFpbiBjb250cmFjdCBjb21wYXRpYmlsaXR5LiANCjxwPjxiPkJpbmFyeSAocGx1Zy1pbikgQ29tcGF0aWJpbGl0eTo8L2I+IEVjbGlwc2UgU0RLIDIuMiB3aWxsIGJlIHVwd2FyZHMgDQogIGJpbmFyeS1jb21wYXRpYmxlIHdpdGggRWNsaXBzZSBTREsgMi4wIGFuZCAyLjEgdW5sZXNzIG5vdGVkLiBUaGlzIG1lYW5zIHRoYXQgcGx1Zy1pbnMgDQogIGJ1aWx0IGZvciBFY2xpcHNlIFNESyAyLjAgb3IgMi4xIHdpbGwgY29udGludWUgdG8gd29yayBjb3JyZWN0bHkgaW4gRWNsaXBzZSANCiAgU0RLIDIuMiB3aXRob3V0IGNoYW5nZS4gRG93bndhcmQgcGx1Zy1pbiBjb21wYXRpYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuIFBsdWctaW5zIA0KICBmb3IgRWNsaXBzZSBTREsgMi4yIGFyZSB1bmxpa2VseSB0byBiZSB1c2FibGUgaW4gRWNsaXBzZSBTREsgMi4wIG9yIDIuMS4gUGx1Zy1pbnMgDQogIHdpdGggaGFyZC1jb2RlZCByZWZlcmVuY2VzIGluIHRoZWlyIHBsdWctaW4gbWFuaWZlc3QgZmlsZSB0byAyLjAgb3IgMi4xIHZlcnNpb25zIG9mIA0KICBwcmVyZXF1aXNpdGUgRWNsaXBzZSBQcm9qZWN0IHBsdWctaW5zIHdpbGwgd29yayBpbiAyLjIgcHJvdmlkZWQgdGhlIHZlcnNpb24gbWF0Y2gNCnJ1bGUgaXMgJnF1b3Q7Z3JlYXRlck9yRXF1YWwmcXVvdDsNCm9yICZxdW90O2NvbXBhdGlibGUmcXVvdDsgKHRoZSBkZWZhdWx0KTsgcmVmZXJlbmNlcw0KdXNpbmcgJnF1b3Q7cGVyZmVjdCZxdW90OyBvciAmcXVvdDtlcXVpdmFsZW50JnF1b3Q7IG1hdGNoIHJ1bGVzIHdpbGwgYmUgYnJva2VuLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZWNsaXBzZS9kZXZlbG9wbWVudC9qYXZhLWFwaS1ldm9sdXRpb24uaHRtbCI+RXZvbHZpbmcNCkphdmEtYmFzZWQgQVBJczwvYT48L2k+IGZvciBhIGRpc2N1c3Npb24gb2YgdGhlIGtpbmRzIG9mIEFQSSBjaGFuZ2VzIHRoYXQNCm1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5LiANCjxwPjxiPlNvdXJjZSBDb21wYXRpYmlsaXR5OjwvYj4gRWNsaXBzZSBTREsgMi4yIHdpbGwgYmUgdXB3YXJkcyBzb3VyY2UtY29tcGF0aWJsZSANCiAgd2l0aCBFY2xpcHNlIFNESyAyLjAgb3IgMi4xIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHNvdXJjZSBmaWxlcyB3cml0dGVuIA0KICB0byB1c2UgRWNsaXBzZSBTREsgMi4wIG9yIDIuMSBBUElzIGNhbiBiZSBzdWNjZXNzZnVsbHkgY29tcGlsZWQgYW5kIHJ1biBhZ2FpbnN0IEVjbGlwc2UgU0RLDQoyLjIgQVBJcy4gU2luY2Ugc291cmNlIGluY29tcGF0aWJpbGl0aWVzIGFyZSBlYXN5IHRvIGRlYWwgd2l0aCwgDQogIG1haW50YWluaW5nIHNvdXJjZSBjb21wYXRpYmlsaXR5IGlzIGNvbnNpZGVyZWQgbXVjaCBsZXNzIGltcG9ydGFudCB0aGFuIG1haW50YWluaW5nIA0KICBjb250cmFjdCBhbmQgYmluYXJ5IGNvbXBhdGliaWxpdHkuIERvd253YXJkIHNvdXJjZSBjb21wYXRpYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuIA0KICBJZiBzb3VyY2UgZmlsZXMgdXNlIG5ldyBFY2xpcHNlIFNESyBBUElzLCB0aGV5IHdpbGwgbm90IGJlIHVzYWJsZSB3aXRoIGFuIGVhcmxpZXIgDQogIHZlcnNpb24gb2YgdGhlIEVjbGlwc2UgU0RLLiANCjxwPjxiPldvcmtzcGFjZSBDb21wYXRpYmlsaXR5OjwvYj4gRWNsaXBzZSBTREsgMi4yIHdpbGwgYmUgdXB3YXJkcyB3b3Jrc3BhY2UtY29tcGF0aWJsZSANCiAgd2l0aCBFY2xpcHNlIFNESyAyLjAgb3IgMi4xIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHdvcmtzcGFjZXMgYW5kIHByb2plY3RzIA0KICBjcmVhdGVkIHdpdGggRWNsaXBzZSBTREsgMi4wIG9yIDIuMSBjYW4gYmUgc3VjY2Vzc2Z1bGx5IG9wZW5lZCBieSBFY2xpcHNlIFNESyANCiAgMi4yIGFuZCB1cGdyYWRlZCB0byBhIDIuMiB3b3Jrc3BhY2UuIFRoaXMgaW5jbHVkZXMgYm90aCBoaWRkZW4gbWV0YWRhdGEsIHdoaWNoIA0KICBpcyBsb2NhbGl6ZWQgdG8gYSBwYXJ0aWN1bGFyIHdvcmtzcGFjZSwgYXMgd2VsbCBhcyBtZXRhZGF0YSBmaWxlcyBmb3VuZCB3aXRoaW4gDQogIGEgd29ya3NwYWNlIHByb2plY3QgKGUuZy4sIHRoZSAucHJvamVjdCBmaWxlKSwgd2hpY2ggbWF5IHByb3BhZ2F0ZSBiZXR3ZWVuIHdvcmtzcGFjZXMgDQogIHZpYSBmaWxlIGNvcHlpbmcgb3IgdGVhbSByZXBvc2l0b3JpZXMuIEluZGl2aWR1YWwgcGx1Zy1pbnMgZGV2ZWxvcGVkIGZvciBFY2xpcHNlIA0KICBTREsgMi4yIHNob3VsZCBwcm92aWRlIHNpbWlsYXIgdXB3YXJkcyBjb21wYXRpYmlsaXR5IGZvciB0aGVpciBoaWRkZW4gYW5kIHZpc2libGUgDQogIHdvcmtzcGFjZSBtZXRhZGF0YSBjcmVhdGVkIGJ5IGVhcmxpZXIgdmVyc2lvbnM7IDIuMiBwbHVnLWluIGRldmVsb3BlcnMgYXJlIHJlc3BvbnNpYmxlIA0KICBmb3IgZW5zdXJpbmcgdGhhdCB0aGVpciBwbHVnLWlucyByZWNvZ25pemUgMi4yLCAyLjEsIGFuZCAyLjAgbWV0YWRhdGEgYW5kIHByb2Nlc3MgDQogIGl0IGFwcHJvcHJpYXRlbHkuIFVzZXIgaW50ZXJmYWNlIHNlc3Npb24gc3RhdGUgbWF5IGJlIGRpc2NhcmRlZCB3aGVuIGEgd29ya3NwYWNlIA0KICBpcyB1cGdyYWRlZC4gRG93bndhcmQgd29ya3NwYWNlIGNvbXBhdGliaWxpdHkgaXMgbm90IHN1cHBvcnRlZC4gQSB3b3Jrc3BhY2UgDQogIGNyZWF0ZWQgKG9yIG9wZW5lZCkgYnkgRWNsaXBzZSBTREsgMi4yIHdpbGwgYmUgdW51c2FibGUgd2l0aCBhbiBlYXJsaWVyIHZlcnNpb24gDQogIG9mIEVjbGlwc2UgU0RLLiZuYnNwO1Zpc2libGUgbWV0YWRhdGEgZmlsZXMgY3JlYXRlZCAob3Igb3ZlcndyaXR0ZW4pIGJ5IEVjbGlwc2UgDQogIFNESyAyLjIgd2lsbCBnZW5lcmFsbHkgYmUgdW51c2FibGUgd2l0aCBlYXJsaWVyIHZlcnNpb25zIG9mIEVjbGlwc2UgU0RLLiZuYnNwOyZuYnNwOyANCjxwPjxiPk5vbi1jb21wbGlhbnQgdXNhZ2Ugb2YgQVBJJ3M8L2I+OiBBbGwgbm9uLUFQSSBtZXRob2RzIGFuZCBjbGFzc2VzLCBhbmQgY2VydGFpbmx5IA0KICBldmVyeXRoaW5nIGluIGEgcGFja2FnZSB3aXRoICZxdW90O2ludGVybmFsJnF1b3Q7IGluIGl0cyBuYW1lLCBhcmUgY29uc2lkZXJlZCANCiAgaW1wbGVtZW50YXRpb24gZGV0YWlscyB3aGljaCBtYXkgdmFyeSBiZXR3ZWVuIG9wZXJhdGluZyBlbnZpcm9ubWVudCBhbmQgYXJlIA0KICBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZS4gQ2xpZW50IHBsdWctaW5zIHRoYXQgZGlyZWN0bHkgZGVwZW5kIG9uIGFueXRoaW5nIA0KICBvdGhlciB0aGFuIHdoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBFY2xpcHNlIFNESyBBUEkgYXJlIGluaGVyZW50bHkgdW5zdXBwb3J0YWJsZSANCiAgYW5kIHJlY2VpdmUgbm8gZ3VhcmFudGVlcyBhYm91dCBjb21wYXRpYmlsaXR5IHdpdGhpbiBhIHNpbmdsZSByZWxlYXNlIG11Y2ggbGVzcyANCiAgd2l0aCBhbiBlYXJsaWVyIHJlbGVhc2VzLiBSZWZlciB0byA8aT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FydGljbGVzL0FydGljbGUtQVBJJTIwdXNlL2VjbGlwc2UtYXBpLXVzYWdlLXJ1bGVzLmh0bWwiPkhvdyANCiAgdG8gVXNlIHRoZSBFY2xpcHNlIEFQSTwvYT48L2k+IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gd3JpdGUgY29tcGxpYW50IA0KICBwbHVnLWlucy4gDQo8aDI+IEVjbGlwc2UgUHJvamVjdCBTdWJwcm9qZWN0czwvaDI+DQoNClRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VjbGlwc2UvIj5FY2xpcHNlIFByb2plY3Q8L2E+IGNvbnNpc3RzIG9mIA0KMyBzdWJwcm9qZWN0cy4gRWFjaCBzdWJwcm9qZWN0IGlzIGNvdmVyZWQgaW4gaXRzIG93biBzZWN0aW9uOiANCjxibG9ja3F1b3RlPjxhIGhyZWY9IiNQbGF0Zm9ybSI+RWNsaXBzZSBQbGF0Zm9ybTwvYT48YnI+DQogIDxhIGhyZWY9IiNKRFQiPkpEVCAtIEphdmEgZGV2ZWxvcG1lbnQgdG9vbHM8L2E+PGJyPg0KICA8YSBocmVmPSIjUERFIj5QREUgLSBQbHVnLWluIGRldmVsb3BtZW50IGVudmlyb25tZW50PC9hPjwvYmxvY2txdW90ZT4NCg0KPHA+Rm9yIGVhY2ggc3VicHJvamVjdCwgdGhlIGl0ZW1zIGxpc3RlZCByZWZsZWN0IG5ldyBmZWF0dXJlcyBvZiB0aGUgRWNsaXBzZSBQbGF0Zm9ybSwgDQogIG9yIGFyZWFzIHdoZXJlIGV4aXN0aW5nIGZlYXR1cmVzIHdpbGwgYmUgc2lnbmlmaWNhbnRseSByZXdvcmtlZC4gRWFjaCBpdGVtIGluZGljYXRlcyANCiAgdGhlIGNvbXBvbmVudHMgYWZmZWN0ZWQgYnkgdGhhdCB3b3JrIGl0ZW0gKG1hbnkgaXRlbXMgaW52b2x2ZSBjb29yZGluYXRlZCBjaGFuZ2VzIA0KICB0byBzZXZlcmFsIGNvbXBvbmVudHMpLg0KDQo8aDM+DQoNCjxhIG5hbWU9IlBsYXRmb3JtIj5FY2xpcHNlIFBsYXRmb3JtIHN1YnByb2plY3Q8L2E+PC9oMz4NCg0KVGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvcGxhdGZvcm0vaW5kZXguaHRtbCI+RWNsaXBzZSANClBsYXRmb3JtPC9hPiBwcm92aWRlcyB0aGUgbW9zdCBmdW5kYW1lbnRhbCBidWlsZGluZyBibG9ja3MuIFRoZSBmb2xsb3dpbmcgaXRlbXMgDQpyZWZsZWN0IG5ldyBmZWF0dXJlcyBvZiB0aGUgRWNsaXBzZSBQbGF0Zm9ybSwgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcgZmVhdHVyZXMgDQp3aWxsIGJlIHNpZ25pZmljYW50bHkgcmV3b3JrZWQuIA0KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5Qcm9wb3NlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+ICgyLjEgZGVmZXJyZWQgaXRlbSkgPGI+QWRkIGNoZWF0IHNoZWV0czwvYj4uJm5ic3A7IEEgY2hlYXQgc2hlZXQgaXMgYW4gaW5zdGFuY2UgDQogICAgb2YgYSBzaW1wbGUga2luZCBvZiB3b3JrZmxvdyBzdXBwb3J0IHVzZWQgdG8gaGVscCB0aGUgdXNlciBjYXJyeSBvdXQgYSBzZXF1ZW5jZSANCiAgICBvZiBzdGVwcy4gRm9yIGV4YW1wbGUsICZxdW90O2NyZWF0ZSBhbmQgZGVwbG95IGEgcGx1Zy1pbiZxdW90OyBpcyBhIG11bHRpLXN0ZXAgDQogICAgcHJvY2VzcyB0aGF0IGNvdWxkIGJlIG1hZGUgZWFzaWVyIHRvIGZvbGxvdyBpZiB0aGVyZSB3YXMgYSBndWlkZSwgc2ltaWxhciANCiAgICB0byBhIHJlY2lwZSB0aGF0IHdvdWxkIHRyYWNrIHRoZSB1c2VyJ3MgcHJvZ3Jlc3MgYW5kIHByb3ZpZGUgYm90aCBkZXNjcmlwdGl2ZSANCiAgICB0ZXh0IHRoYXQgZXhwbGFpbnMgdGhlIHN0ZXBzIGludm9sdmVkIGFuZCBpbnRlZ3JhdGlvbiB3aXRoIEVjbGlwc2UgdG8gYXV0b21hdGUgDQogICAgdGhlIHByb2Nlc3MuIFRoZSBXZWxjb21lIFBhZ2UgZWRpdG9yIGlzIGEgc2ltcGxlIGV4YW1wbGUgb2YgYSBjaGVhdCBzaGVldC4gDQogICAgUHJvdmlkZSBhIHN0YW5kYXJkIEFQSSBmb3IgY3JlYXRpbmcgY2hlYXQgc2hlZXRzLiBbUGxhdGZvcm0gVUldPC9wPg0KICA8cD4gKDIuMSBkZWZlcnJlZCBpdGVtKSA8Yj5BZGQgPC9iPjxiPnRhYmxlIG9mIGNvbnRlbnRzIHN1cHBvcnQgdG8gPC9iPjxiPndpPC9iPjxiPnphcmRzLjwvYj4gDQogICAgRXh0ZW5kIHRoZSB3b3JrYmVuY2ggd2l6YXJkIGZyYW1ld29yayB0byBhbGxvdyBFY2xpcHNlIHdpemFyZCBkZXZlbG9wZXJzIHRvIA0KICAgIHByb3ZpZGUgbXVjaCBtb3JlIHN1YnN0YW50aWFsIGFuZCBzaWduaWZpY2FudCB1c2VyIGZlZWRiYWNrLiBbUGxhdGZvcm0gVUldPC9wPg0KICA8cD4gKDIuMSBkZWZlcnJlZCBpdGVtKSA8Yj5TdXBwb3J0IGZsb2F0aW5nIHRvb2xiYXJzIGFuZCB2aWV3cy48L2I+IEFsbG93IHRoZSANCiAgICB1c2VyIHRvIGN1c3RvbWl6ZSB0aGUgd29ya2JlbmNoIGJ5IGNyZWF0aW5nIGZsb2F0aW5nIHRvb2xiYXJzIGFuZCB2aWV3cy4gW1BsYXRmb3JtIA0KICAgIFVJXTwvcD4NCiAgPHA+ICgyLjEgZGVmZXJyZWQgaXRlbSkgPGI+QWxsb3cgZWRpdG9ycyB0byBvcGVuIGZpbGVzIG91dHNpZGUgd29ya3NwYWNlLjwvYj4gDQogICAgQSBjb21tb24gcmVxdWVzdCBpcyB0byBiZSBhYmxlIHRvIG9wZW4gYSBmaWxlIHRoYXQgaXMgbm90IHBhcnQgb2YgdGhlIHdvcmtzcGFjZSANCiAgICB1c2luZyBFY2xpcHNlLiBJbiBhZGRpdGlvbiwgYXBwbGljYXRpb25zIHdvdWxkIGxpa2UgdG8gcHJvdmlkZSBmaWxlIGV4dGVuc2lvbiANCiAgICBhc3NvY2lhdGlvbnMgc28gdGhhdCBkb3VibGUtY2xpY2tpbmcgb24gYSBmaWxlIGluIHRoZSBPUyBkZXNrdG9wIHdvdWxkIG9wZW4gDQogICAgdGhlIGFzc29jaWF0ZWQgRWNsaXBzZSBlZGl0b3IuIFRoZSBvcGVyYXRpb25zIGFuZCBjYXBhYmlsaXRpZXMgYXZhaWxhYmxlIG9uIA0KICAgIHRoZXNlICZxdW90O291dHNpZGUgb2YgdGhlIHdvcmtzcGFjZSZxdW90OyBmaWxlcyB3b3VsZCBuZWVkIHRvIGJlIGRlZmluZWQuIA0KICAgIFtQbGF0Zm9ybSBVSV08L3A+DQogIDxwPiAoMi4xIGRlZmVycmVkIGl0ZW0pIDxiPkltcHJvdmUgc2VydmljZWFiaWxpdHkuIDwvYj5Qcm9ncmVzcyB3YXMgbWFkZSBhdCANCiAgICBpbXByb3Zpbmcgc2VydmljZWFiaWxpdHkgaW4gMi4wOyBob3dldmVyLCBhZGRpdGlvbmFsIGltcHJvdmVtZW50cyBhcmUgbmVlZGVkLCANCiAgICBwYXJ0aWN1bGFybHkgaW4gZGVhbGluZyB3aXRoIGVycm9yIGNvbmRpdGlvbnMgYW5kIHJlcG9ydGluZyB0aGVtIGluIGFuIGFwcHJvcHJpYXRlIA0KICAgIG1hbm5lci4gW1BsYXRmb3JtIENvcmUsIFNXVCwgUGxhdGZvcm0gVUldPGJyPg0KICAgIDxicj4NCiAgICAoMi4xIGRlZmVycmVkIGl0ZW0pIDxiPkltcHJvdmUgZmlsZSBlbmNvZGluZyBzdXBwb3J0LjwvYj4gRWNsaXBzZSAyLjAgYW5kIA0KICAgIDIuMSB1c2VzIGEgc2luZ2xlIGdsb2JhbCBmaWxlIGVuY29kaW5nIHNldHRpbmcgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgZmlsZXMgDQogICAgaW4gdGhlIHdvcmtzcGFjZS4gVGhpcyBpcyBwcm9ibGVtYXRpYzsgZm9yIGV4YW1wbGUsIHdoZW4gSmF2YSBzb3VyY2UgZmlsZXMgDQogICAgaW4gdGhlIHdvcmtzcGFjZSB1c2UgT1MgZGVmYXVsdCBmaWxlIGVuY29kaW5nIHdoaWxlIFhNTCBmaWxlcyBpbiB0aGUgd29ya3NwYWNlIA0KICAgIHVzZSBVVEYtOCBmaWxlIGVuY29kaW5nLiBUaGUgUGxhdGZvcm0gc2hvdWxkIHN1cHBvcnQgbm9uLXVuaWZvcm0gZmlsZSBlbmNvZGluZ3MuIA0KICAgIChSZWY6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NTM5OSI+YnVnIDUzOTk8L2E+KSANCiAgICBbUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gVUksIFRleHQsIFNlYXJjaCwgQ29tcGFyZSwgSkRUIFVJLCBKRFQgQ29yZV08L3A+DQogIDxwPigyLjEgZGVmZXJyZWQgaXRlbSkgPGI+SW1wcm92ZSBTV1Qgc3VwcG9ydCBmb3IgcmlnaHQtdG8tbGVmdCBsYW5ndWFnZXM8L2I+LiZuYnNwO0FsbG93IA0KICAgIHRoZSBhcHByb3ByaWF0ZSB3aWRnZXQgb3JpZW50YXRpb24gZm9yIHJpZ2h0LXRvLWxlZnQgbGFuZ3VhZ2VzLiBbU1dUXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkRpc3BsYXkgSFRNTCBpbiBhIHdpZGdldC48L2I+IEluIEVjbGlwc2UgMi4wIGFuZCAyLjEsIHRoZSBvbmx5IHN1cHBvcnRlZCBvcHRpb24gZm9yDQpyZW5kZXJpbmcgSFRNTCBpbiB0aGUgd29ya2JlbmNoIGlzIHRvIHVzZSBPTEUgdG8gbGluayB0byBJRS4gVGhpcyBzdXBwb3J0IGlzDQpXaW5kb3dzIG9ubHk7IHRoZXJlIGlzIG5vIHN1Y2ggb3B0aW9uIGluIG90aGVyIG9wZXJhdGluZyBlbnZpcm9ubWVudHMuIEV2ZW4gb24NCldpbmRvd3MsIHRoaXMgb25seSB3b3JrcyBmb3IgSUUgYW5kIG5vdCBvdGhlciBicm93c2Vycy4gVGhlcmUgYXJlIGFscmVhZHkNCnNldmVyYWwgRWNsaXBzZSBjb21wb25lbnRzIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIEhUTUwgZGlzcGxheSBmdW5jdGlvbmFsaXR5IGluDQphIHdpZGdldDogd2VsY29tZSBwYWdlczsgdXBkYXRlIG1hbmFnZXIgdXBkYXRlIHNpdGUgb3ZlcnZpZXc7IGhvdmVycyB0aGF0IHNob3cNCkphdmFkb2MuIFRoZSBQbGF0Zm9ybSBzaG91bGQgcHJvdmlkZSBhIHBvcnRhYmxlIHdheSB0byBkaXNwbGF5IEhUTUwgaW4gYSB3aWRnZXQgYW5kDQpzdXBwb3J0IGl0IGluIGFsbCBvcGVyYXRpbmcgZW52aXJvbm1lbnRzLiBbUGxhdGZvcm0gVUldPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+U3VwcG9ydCBhdXRvbWF0aW9uIG9mIGNvbW1vbiB0YXNrcy48L2I+IFRvIG1ha2UgaXQgZWFzaWVyIGZvciB1c2VycyB0byBhdXRvbWF0ZQ0KY29tbW9uIGFuZCByZXBldGl0aXZlIHRhc2tzLCB0aGUgdXNlciBzaG91bGQgaGF2ZSBhIHNpbXBsZSB3YXkgb2YgcmVjb3JkaW5nIHRoZSBzZXF1ZW5jZSBvZg0KYWN0aW9ucyBhcyB0aGV5IHBlcmZvcm0gdGhlbS4gVGhlIHJlY29yZGluZyBjYW4gYmUgZWRpdGVkLCBzYXZlZCBwZXJzaXN0ZW50bHksIGFuZA0KcGxheWVkIGJhY2sgdW5kZXIgc2ltaWxhciBjaXJjdW1zdGFuY2VzIGluIHRoZSBzYW1lIG9yIGxhdGVyIHNlc3Npb24sIG9yDQpwb3NzaWJseSBhbm90aGVyIHdvcmtzcGFjZS4gW1BsYXRmb3JtIFVJLCBQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybSBUZXh0LCBKRFQNCkNvcmUsIEpEVCBVSSwgUERFXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPlJlZHVjZSB3b3JrYmVuY2ggY2x1dHRlci48L2I+IERlc3BpdGUgZWZmb3J0cyB0byBlbnN1cmUgVUkgc2NhbGFiaWxpdHkNCndpdGggYSBsYXJnZSBiYXNlcyBvZiBhdmFpbGFibGUgdG9vbHMsIHRoZSBFY2xpcHNlIHdvcmtiZW5jaCBzdGlsbCBpbnRpbWlkYXRlcw0KbWFueSB1c2VycyB3aXRoIG92ZXJseSBsb25nIG1lbnVzIGFuZCB3aWRlIHRvb2xiYXJzLiBUaGlzIHByb2JsZW0gaXMgYWN1dGUgaW4NCmxhcmdlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMgKGUuZy4sIElCTSBXZWJTcGhlcmUgQXBwbGljYXRpb24gRGV2ZWxvcGVyKS4gVGhlDQpQbGF0Zm9ybSBzaG91bGQgcHJvdmlkZSBhZGRpdGlvbmFsIHdheXMgZm9yIGNvbnRyb2xsaW5nIHdvcmtiZW5jaCBjbHV0dGVyLCBzdWNoDQphcyBmdXJ0aGVyIG1lbnUgYW5kIHRvb2xiYXIgY3VzdG9taXphYmlsaXR5LCBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIG5vdmljZQ0KYW5kIGFkdmFuY2VkIGZ1bmN0aW9ucywgc3VwcG9ydGluZyBkaWZmZXJlbnQgZGV2ZWxvcGVyIHJvbGVzLCBhbmQgbW9yZSBzcGVjaWZpYw0Kb2JqZWN0IGNvbnRyaWJ1dGlvbnMgZm9yIHBhcnRpY3VsYXIgZmlsZSB0eXBlcy4gW1BsYXRmb3JtIFVJLA0KUGxhdGZvcm0gRGVidWcsIEpEVCBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5BbGxvdyBwbHVnLWluIGRlYWN0aXZhdGlvbi48L2I+IEluIG9yZGVyIHRvIHNjYWxlIHRvIGEgbGFyZ2UgbnVtYmVyIG9mDQpwbHVnLWlucywgRWNsaXBzZSBkb2VzIG5vdCBhY3RpdmF0ZSBhIHBsdWctaW4gdW50aWwgaXRzIGNvZGUgaXMgYWN0dWFsbHkgbmVlZGVkLg0KSG93ZXZlciwgb25jZSBhY3RpdmF0ZWQgYSBwbHVnLWluIHJlbWFpbnMgYWN0aXZlIGZvciB0aGUgcmVtYWluZGVyIG9mIHRoZQ0Kc2Vzc2lvbi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyB0aGF0IGFuIGFjdGl2ZSBwbHVnLWluIHdpbGwgb2NjdXB5IG1lbW9yeQ0Kc3BhY2UgZm9yIGl0cyBjb2RlIGFuZCBvYmplY3RzIGV2ZW4gaWYgaXQgaXMgb25seSB1c2VkIG9jY2FzaW9uYWxseS4gTWFueSB1c2Vycw0KaGF2ZSBzZXNzaW9ucyBsYXN0aW5nIGRheXMgb3Igd2Vla3MsIGFuZCB0aGlzIGJsb2F0IHRheGVzIHByb2Nlc3NvciBtZW1vcnkgYW5kDQpKVk0gcGVyZm9ybWFuY2UuIFRoZSBhbmFsb2d5IGlzIGEgbG9uZyBwbGF5IHdoZXJlIHRoZSBhY3RvcnMgZW50ZXIgdGhlIHN0YWdlIG9uDQpjdWUsIGJ1dCBjYW5ub3QgbGVhdmUgaXQgdW50aWwgdGhlIHBsYXkgaXMgb3Zlci4gVGhlIEVjbGlwc2UgUGxhdGZvcm0gc2hvdWxkDQpzdXBwb3J0IHBsdWctaW5zIHRoYXQgY2FuIGJlIHNhZmVseSBkZWFjdGl2YXRlZCB3aGVuIHRoZSB1c2VyIG5lZWRzIHRvIHJlY292ZXIgdmFsdWFibGUNCm1lbW9yeSBzcGFjZS4gQW5vdGhlciBhbHRlcm5hdGl2ZSBpcyB0byBwcm92aWRlIGEgd2F5IHRvIHF1aWV0bHkgc2h1dGRvd24gYW5kIHJlc3RhcnQNCnRoZSBQbGF0Zm9ybS4gW1BsYXRmb3JtIENvcmUsIFBsYXRmb3JtIFVJXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPlN1cHBvcnQgYmFja2dyb3VuZCBhY3Rpdml0aWVzLjwvYj4gSW4gRWNsaXBzZSAyLjAgYW5kIDIuMSwgY2VydGFpbg0Kb3BlcmF0aW9ucyBsaWtlIGJ1aWxkcyBhbmQgc2VhcmNoZXMgYWx3YXlzIHJ1bg0Kc3luY2hyb25vdXNseSBhbmQgYmxvY2sgdGhlIHVzZXIgYXQgdGhlIFVJIGZyb20gZG9pbmcgd29yayB1bnRpbCB0aGUgYnVpbGQgaGFzDQpjb21wbGV0ZWQuIFRoZSBFY2xpcHNlIFBsYXRmb3JtIHNob3VsZCBzdXBwb3J0IG9wZXJhdGlvbnMgcnVubmluZyBhc3luY2hyb25vdXNseSBpbiB0aGUNCmJhY2tncm91bmQsIHNvIHRoYXQgdGhlIHVzZXIgaXMgbm90IGZvcmNlZCB0byBiZSBlbnRpcmVseSBpZGxlIHdoaWxlDQpsb25nLXJ1bm5pbmcgb3BlcmF0aW9ucyBhcmUgaW4gcHJvZ3Jlc3MuDQpbUGxhdGZvcm0gVUksIFBsYXRmb3JtIENvcmUsIFBsYXRmb3JtIFRleHQsIEpEVCBDb3JlLCBKRFQgVUksIFBERV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5TdXBwb3J0IHdvcmtzcGFjZSBjaGVja3BvaW50IGFuZCByb2xsYmFjay48L2I+IFNvbWV0aW1lcyBhIHNldCBvZg0KcmVzb3VyY2UgY2hhbmdlcyBtdXN0IGJlIGV4cGxvcmVkIHRvIHNlZSBpZiB0aGV5IGFyZSBwb3NzaWJsZSBvciB3b3J0aHdoaWxlLg0KV2hlbiB0aGUgY2hhbmdlcyBkbyBub3QgcGFuIG91dCwgdGhlcmUgbmVlZHMgdG8gYmUgYSB3YXkgdG8gcm9sbCBiYWNrIHRoZQ0Kd29ya3NwYWNlIHRvIHRoZSBwcmlvciBzdGF0ZS4gRWNsaXBzZSBzaG91bGQgc3VwcG9ydCBsb25nIHdvcmtzcGFjZSB0cmFuc2FjdGlvbnMNCndpdGggdGhlIGFiaWxpdHkgdG8gY2hlY2twb2ludCBhbmQgcm9sbGJhY2suIFRoZSBmYWNpbGl0eSBzaG91bGQgYmUgYXZhaWxhYmxlIHRvDQp1c2VycyBhbmQgcHJvZ3JhbW1hdGljYWxseSAoZS5nLiwgSkRUIHJlZmFjdG9yaW5nKS4gW1BsYXRmb3JtIFVJLCBQbGF0Zm9ybSBDb3JlLA0KSkRUIENvcmUsIEpEVCBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5BZGQgY2FwYWJpbGl0aWVzLjwvYj4gSW4gRWNsaXBzZSAyLjAgd2UgZGlkIHNvbWUgZWFybHkgd29yayBvbiBhDQptZWNoYW5pc20gY2FsbGVkICZxdW90O2NhcGFiaWxpdGllcyZxdW90OyB0byBhbGxvdyB1c2VycyB0byBkeW5hbWljYWxseQ0KY29uZmlndXJlIHByb2plY3QgbmF0dXJlcy4gVGhlIEVjbGlwc2UgUGxhdGZvcm0gc2hvdWxkIGV4cG9zZSB0aGlzIG1lY2hhbmlzbSB0bw0KdXNlcnMuIFtQbGF0Zm9ybSBVSSwgSkRUIFVJLCBQREVdPC9wPg0KICA8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+IGV4cGFuZGVkIDIuMSBQREUgDQogICAgZGVmZXJyZWQgaXRlbSkgPGI+QWRkIHByb2plY3QgdGVtcGxhdGVzLjwvYj4gRWNsaXBzZSBzaG91bGQgcHJvdmlkZSBhIHN0cmVhbWxpbmVkIA0KICAgIHdheSB0byBjcmVhdGUgcHJvamVjdHMgdXNpbmcgdGVtcGxhdGVzIGNvbnRyaWJ1dGVkIGJ5IHBsdWctaW5zLiBUaGVzZSBwcm9qZWN0IA0KICAgIHRlbXBsYXRlcyB3b3VsZCBiZSBhYmxlIHRvIHBvcHVsYXRlIHRoZSBwcm9qZWN0cyB3aXRoIHN0b2NrIGNvbnRlbnQgc28gdGhhdCANCiAgICBwcm9qZWN0cyBkb24ndCBzdGFydCBvZmYgY29tcGxldGVseSBlbXB0eS4gUERFJ3MgY3VycmVudCBtZWNoYW5pc20gc2hvdWxkIA0KICAgIGJlIGdlbmVyYWxpemVkLCBwdXNoZWQgZG93biBpbnRvIHRoZSBQbGF0Zm9ybSwgYW5kIHB1dCB0byBnb29kIHVzZSBieSBKRFQuIA0KICAgIFtQbGF0Zm9ybSBVSSwgSkRUIFVJLCBQREUgVUldPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UHJvdmlkZSBhIGdlbmVyYWwgcHVycG9zZSBuYXZpZ2F0b3IuPC9iPiBUaGUgRWNsaXBzZSBOYXZpZ2F0b3ImbmJzcDt2aWV3DQpwcmVzZW50cyBhIHZpZXcgb2YgcmVzb3VyY2VzIGluIHRoZSB3b3Jrc3BhY2UuIFRoZSBFY2xpcHNlIFBsYXRmb3JtIHNob3VsZA0KcHJvdmlkZSBhIG1vcmUgZmxleGlibGUsIGdlbmVyYWwgcHVycG9zZSwgZXh0ZW5zaWJsZSBuYXZpZ2F0b3IgaW5mcmFzdHJ1Y3R1cmUgdGhhdA0Kd291bGQgbWFrZSBpdCBwb3NzaWJsZSB0byBzaG93IG90aGVyIG9iamVjdHMgYXMgd2VsbCAobGlrZSBhbiB0aGUgZXh0ZW5kZWQNCnBoeXNpY2FsIHZpZXcgcHJvdmlkZWQgYnkgV2luZG93cyBFeHBsb3JlcikuIFtQbGF0Zm9ybQ0KVUksIEpEVCBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5JbXByb3ZlIHdvcmtzcGFjZSBzeW5jaHJvbml6YXRpb24gd2l0aCBmaWxlIHN5c3RlbS48L2I+IEEgZmlsZSByZXNvdXJjZQ0KaW4gdGhlIHdvcmtzcGFjZSBnZXRzIG91dCBvZiBzeW5jIHdoZW4gdGhlIHVuZGVybHlpbmcgZmlsZSBpbiB0aGUgZmlsZSBzeXN0ZW0gaXMNCmNyZWF0ZWQsIGRlbGV0ZWQsIG9yIHJld3JpdHRlbiBvdXRzaWRlIG9mIEVjbGlwc2UuIEZpbGUgcmVzb3VyY2VzIHVzdWFsbHkNCnJlbWFpbnMgb3V0IG9mIHN5bmMgdW50aWwgdGhlIHVzZXIgZXhwbGljaXRseSBoaXRzIFJlZnJlc2guIFRoZSBFY2xpcHNlIFBsYXRmb3JtDQpzaG91bGQgcHJvdmlkZSB3YXlzIHRvIGtlZXAgdGhlIGluLW1lbW9yeSByZXByZXNlbnRhdGlvbiBpbiBzeW5jIHdpdGggdGhlIGZpbGUNCnN5c3RlbTsgZm9yIGV4YW1wbGUsIGJ5IGhvb2tpbmcgT1MgZmlsZSBzeXN0ZW0gY2FsbGJhY2tzIHdoZXJlIGF2YWlsYWJsZSwgYW5kIGJ5DQpwb2xsaW5nIGZvciBmaWxlIHN5c3RlbSBjaGFuZ2VzIGluIGEgYmFja2dyb3VuZCB0aHJlYWQuIFtQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybQ0KVUldPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UHJvdmlkZSBpbXByb3ZlZCB0YWJsZSBhbmQgdGFibGUgdHJlZSB3aWRnZXRzLiA8L2I+IEVjbGlwc2UgY3VzdG9tZXJzIGFyZSBmaW5kaW5nDQp0aGF0IHRoZSBleGlzdGluZyB0YWJsZSBhbmQgdGFibGUgdHJlZSBjdXN0b20gU1dUIHdpZGdldHMgbGFja3MgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eSwNCmV4aGliaXQgdW5kZXNpcmFibGUgbGF5b3V0IGFuZCByZXNpemluZyBiZWhhdmlvciwgYW5kIGFyZSBnZW5lcmFsbHkgaWxsLXN1aXRlZCBmb3IgcHJlc2VudGluZyBsYXJnZSBkYXRhIG1vZGVscy4gVGhlaXIgbGFyZ2VseSB1bnN1Y2Nlc3NmdWwgYXR0ZW1wdHMNCnRvIGRlZmluZSB0aGVpciBvd24gY3VzdG9tIHRhYmxlIHRyZWUgd2lkZ2V0IGhhdmUgc2hvd24gaXQgdG8gYmUgYSB2ZXJ5IGNoYWxsZW5naW5nDQp0YXNrIHJlcXVpcmluZyBleHBlcnQtbGV2ZWwga25vd2xlZGdlIG9mIFNXVC4gVGhlIEVjbGlwc2UgUGxhdGZvcm0gdGVhbSB3aWxsDQp3b3JrIHdpdGggdGhlIGNvbW11bml0eSB0byBkZWZpbmUgYSBuZXcgY3VzdG9tIHRhYmxlIGFuZCB0YWJsZSB0cmVlIHdpZGdldHMgdGhhdCB3aWxsIG1lZXQNCnRoZWlyIG5lZWRzLiBbU1dULCBQbGF0Zm9ybSBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5JbXByb3ZlIHN0cnVjdHVyZSBvZiBleGlzdGluZyBkb2N1bWVudGF0aW9uLjwvYj4gIFRoZSBFY2xpcHNlIGhlbHANCmJvb2tzIGFyZSBjdXJyZW50bHkgYmxhY2sgYm94ZXMuIFRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvIGluc2VydCBhZGRpdGlvbmFsDQptYXRlcmlhbCBpbnRvIGFuIGV4aXN0aW5nIEVjbGlwc2UgYm9vaywgc3VjaCBhcyBhZGRpbmcgYSBzZWN0aW9uIGRlc2NyaWJpbmcgYQ0KbmV3IHRvb2wuIEFuZCB0aGVyZSBpcyBubyB3YXkgdG8gaW5jb3Jwb3JhdGUgcG9ydGlvbnMgb2YgdGhlIEVjbGlwc2UgYm9va3MgaW50bw0Kc29tZSBvdGhlciBib29rLiBUaGUgRWNsaXBzZSBQbGF0Zm9ybSBoZWxwIGJvb2tzIHNob3VsZCBiZSByZXN0cnVjdHVyZWQgaW4gYQ0KbW9yZSBtb2R1bGFyIG1hbm5lciBieSBtYWtpbmcgYmV0dGVyIHVzZSBvZiBleGlzdGluZyBoZWxwIHN5c3RlbSBjYXBhYmlsaXRpZXMuDQpbUGxhdGZvcm0sIEpEVCwgUERFLCBQbGF0Zm9ybSBIZWxwXTwvcD4NCjxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPlByb3ZpZGUgdXNlciBwcmVmZXJlbmNlcy48L2I+IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBzdG9yZSB1c2VyDQpwcmVmZXJlbmNlcyB0aGF0IGFyZSBub3Qgc3BlY2lmaWMgdG8gYSB3b3Jrc3BhY2Ugc2VwYXJhdGUgZnJvbSB0aGUgd29ya3NwYWNlLCBzbw0KdGhhdCB0aGV5IGNhbiBiZSB1c2VkIGluIGFueSB3b3Jrc3BhY2UuIFtQbGF0Zm9ybSBDb3JlLCBQbGF0Zm9ybSBVSV08L3A+DQo8cD4gKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5Fdm9sdmUgdGhlIEVjbGlwc2UgdXNlciBleHBlcmllbmNlLjwvYj4gVGhlIGN1cnJlbnQgRWNsaXBzZSBHVUkgaXMNCnNvbGlkbHkgZ3JvdW5kZWQgaW4gdHJhZGl0aW9uYWwgb3BhcXVlLCByZWN0YW5ndWxhciB3aW5kb3dzLiBSZWNlbnQgYWR2YW5jZXMgaW4NClVJIGRlc2lnbiBpbXByb3ZlIHRoZSB1c2VyIGV4cGVyaWVuY2Ugd2l0aCBzdWNoIHRoaW5ncyBhcyB0cmFuc3BhcmVudCBvdmVybGF5cw0KYW5kIGFzc29jaWF0aW5nIHNvdW5kcyB3aXRoIHNpZ25pZmljYW50IGV2ZW50cy4gRWNsaXBzZSAyLjIgc2hvdWxkIGhhdmUgYSBuZXcNCmxvb2sgdGhhdCBtYWtlcyBtb3JlIGVmZmVjdGl2ZSB1c2Ugb2YgdGhlIGNhcGFiaWxpdGllcyBvZiBjdXJyZW50IGRlc2t0b3ANCmNvbXB1dGVycy4gW1BsYXRmb3JtIFVJLCBKRFQgVUksIERlYnVnIFVJXTwvcD4NCjxwPig8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+PC9iPiA8Yj5FbmFibGUgRWNsaXBzZSB0byBiZSB1c2VkIGFzIGEgZ2VuZXJhbCBwdXJwb3NlIGFwcGxpY2F0aW9uDQpmcmFtZXdvcmsuPC9iPiBFY2xpcHNlIHdhcyBkZXNpZ25lZCBhcyBhIHVuaXZlcnNhbCB0b29sIGludGVncmF0aW9uIHBsYXRmb3JtLg0KSG93ZXZlciwgbWFueSBmYWNldHMgYW5kIGNvbXBvbmVudHMgb2YgRWNsaXBzZSBhcmUgbm90IHBhcnRpY3VsYXJseSBzcGVjaWZpYyB0bw0KSURFcyBhbmQgd291bGQgbWFrZSBlcXVhbCBzZW5zZSBpbiBub24tSURFIGFwcGxpY2F0aW9ucyAoZS5nLiwgd2luZG93LWJhc2VkIEdVSSwNCnBsdWctaW5zLCBoZWxwIHN5c3RlbSwgdXBkYXRlIG1hbmFnZXIpLiBUaGUgRWNsaXBzZSBQbGF0Zm9ybSBzaG91bGQgZmFjdG9yIG91dA0KYW5kIHNlZ3JlZ2F0ZSBJREUtc3BlY2lmaWMgZmFjaWxpdGllcyAoZS5nLiwgZXZlcnl0aGluZyBoYXZpbmcgdG8gZG8gd2l0aA0Kd29ya3NwYWNlIHJlc291cmNlcykgc28gdGhhdCBhIHN1YnNldCBvZiBpdCBjYW4gYmUgdXNlZCBhcyBhIGdlbmVyYWwgcHVycG9zZQ0KYXBwbGljYXRpb24gZnJhbWV3b3JrLiBbUGxhdGZvcm0gQ29yZSwgUGxhdGZvcm0gVUldPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+SW1wcm92ZSBhY3Rpb24gY29udHJpYnV0aW9ucy48L2I+IFRoZSBjdXJyZW50IGFjdGlvbiBjb250cmlidXRpb24gc3RvcnkNCmlzIGRpdmVyc2UgYW5kIGNvbXBsZXgsIGFuZCB0aGUgaW50ZXJhY3Rpb25zIGJldHdlZW4ga2V5IGJpbmRpbmdzIGFuZCByZXRhcmdldGFibGUgYWN0aW9ucywNCnVuY2xlYXIuIEVjbGlwc2Ugc2hvdWxkIHVuaWZ5IHRoZSBhY3Rpb24gY29udHJpYnV0aW9uIHN1cHBvcnQsIHByb3ZpZGUNCnNpbXBsaWZpZWQgc3VwcG9ydCBmb3Iga2V5IGJpbmRpbmdzLCBhbmQgY2xhcmlmeSB0aGUgaW50ZXJhY3Rpb25zIGJldHdlZW4ga2V5DQpiaW5kaW5ncyBhbmQgcmV0YXJnZXRhYmxlIGFjdGlvbnMuIEVjbGlwc2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBuZXcgdHlwZXMgb2YNCmFjdGlvbnMgY29udHJpYnV0aW9ucywgc3VjaCBhcyBjb21ibyBib3hlcyBpbiB0b29sYmFycywgYW5kIGVuYWJsZSBhZGRpdGlvbmFsIFVJIGN1c3RvbWl6YXRpb24uDQpbUGxhdGZvcm0gVUldPC9wPg0KPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+QWRkIGEgJnF1b3Q7dGlwcyAmYW1wOyB0cmlja3MmcXVvdDsgZmFjaWxpdHkuPC9iPiBFY2xpcHNlIHNob3VsZA0KcHJvdmlkZSBhbiBvcGVuLCBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIG9mZmVyaW5nIHN1Z2dlc3Rpb25zIGFuZCB0aXBzIHRvIHRoZQ0KdXNlciBmb3IgdGhlIHZhcmlvdXMgdG9vbHMgYXZhaWxhYmxlIGFuZCBhY3RpdmUgaW4gdGhlIElERS4gW1BsYXRmb3JtIFVJXTwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5SZWplY3RlZCBJdGVtcyAoRWNsaXBzZSBQbGF0Zm9ybSBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+PGk+Tm9uZSBhdCB0aGlzIHRpbWUuPC9pPjwvcD4NCjwvYmxvY2txdW90ZT4NCg0KDQoNCjxwPihFbmQgb2YgaXRlbXMgZm9yIEVjbGlwc2UgUGxhdGZvcm0gc3VicHJvamVjdC4pDQoNCg0KDQo8aDM+IDxhIG5hbWU9IkpEVCI+SmF2YSBkZXZlbG9wbWVudCB0b29scyANCiAgKEpEVCkgc3VicHJvamVjdDwvYT48L2gzPg0KDQo8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2pkdC9pbmRleC5odG1sIj4gSmF2YSBkZXZlbG9wbWVudCB0b29sczwvYT4gKEpEVCkgDQppbXBsZW1lbnRzIGEgSmF2YSBJREUgYmFzZWQgb24gdGhlIEVjbGlwc2UgUGxhdGZvcm0uIFRoZSBmb2xsb3dpbmcgd29yayBpdGVtcyANCnJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIEpEVCwgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcgZmVhdHVyZXMgd2lsbCBiZSBzaWduaWZpY2FudGx5IA0KcmV3b3JrZWQuIA0KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQo8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KPGg0PlByb3Bvc2VkIEl0ZW1zIChFY2xpcHNlIEpEVCBzdWJwcm9qZWN0KTwvaDQ+DQo8YmxvY2txdW90ZT4NCiAgPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+QWRkIGVhcmx5IHN1cHBvcnQgZm9yIEoyU0UgMS41IGZlYXR1cmVzLjwvYj4gVGhlIG5leHQgZmVhdHVyZSByZWxlYXNlDQogIG9mIEoyU0UgaXMgdmVyc2lvbiAxLjUgKCZxdW90O1RpZ2VyJnF1b3Q7KSwgdGFyZ2V0ZWQgdG8gc2hpcCBpbiB0aGUgZmlyc3QgaGFsZg0KICBvZiAyMDA0LiBXaGlsZSB0aGUgY29udGVudHMgb2YgdGhpcyByZWxlYXNlIGFyZSBzdGlsbCB1bmRlciBkaXNjdXNzaW9uICg8YSBocmVmPSJodHRwOi8vamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTE3NiIgdGFyZ2V0PSJfYmxhbmsiPkpTUi0xNzY8L2E+KSwNCiAgdGhpcyByZWxlYXNlIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gZXh0ZW5zaW9ucyB0byB0aGUgSmF2YSBsYW5ndWFnZSwgaW5jbHVkaW5nDQogIGdlbmVyaWMgdHlwZXMgKDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MDE0IiB0YXJnZXQ9Il9ibGFuayI+SlNSLTAxNDwvYT4pLA0KICBlbnVtZXJhdGlvbnMsIGF1dG9ib3hpbmcsIGVuaGFuY2VkIGZvciBsb29wcywgc3RhdGljIGltcG9ydHMgKGFsbCA8YSBocmVmPSJodHRwOi8vamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTIwMSIgdGFyZ2V0PSJfYmxhbmsiPkpTUi0yMDE8L2E+KSwNCiAgbWV0YWRhdGEgZmFjaWxpdHkgKDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MTc1Ij5KU1ItMTc1PC9hPiksDQogIGFuZCBjb21waWxlciBBUElzICg8YSBocmVmPSJodHRwOi8vamNwLm9yZy9lbi9qc3IvZGV0YWlsP2lkPTE5OSIgdGFyZ2V0PSJfYmxhbmsiPkpTUi0xOTk8L2E+KS4NCiAgU3VwcG9ydGluZyB0aGVzZSBuZXcgbGFuZ3VhZ2UgYW5kIGNvbXBpbGVyIGZlYXR1cmVzIHdpbGwgcmVxdWlyZSBtYWpvciBjaGFuZ2VzIHRvIHRoZQ0KICBFY2xpcHNlIEphdmEgY29tcGlsZXIsIEpEVCBDb3JlIEFQSXMsIGFuZCBKRFQgVUkuIEFsdGhvdWdoIEVjbGlwc2UgMi4yIHdpbGwNCiAgbGlrZWx5IHNoaXAgYmVmb3JlIEoyU0UgMS41IGRvZXMsIEVjbGlwc2Ugc2hvdWxkIGNvbnRhaW4gZWFybHkgc3VwcG9ydCBmb3INCiAgSjJTRSAxLjUgZmVhdHVyZXMgd2hlcmV2ZXIgcG9zc2libGUgW0pEVCBDb3JlLCBKRFQgVUksIEpEVCBEZWJ1Z108L3A+DQogIDxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPkltcHJvdmUgc3VwcG9ydCBmb3IgSmF2YS1saWtlIHNvdXJjZSBmaWxlcy48L2I+ICBKU1AgYW5kIEpTUUwgYXJlIHR3bw0KICBpbnN0YW5jZXMgb2YgbGFuZ3VhZ2VzIHRoYXQgZW1iZWQgcGFzc2FnZXMgb2YgSmF2YSBsYW5ndWFnZSBjb2RlLiBFY2xpcHNlDQogIHNob3VsZCBwcm92aWRlIGJldHRlciBzdXBwb3J0IGZvciBKYXZhLWxpa2Ugc291cmNlIGZpbGVzLiBGb3IgaW5zdGFuY2UsDQogIG91dGxpbmUgdmlld3Mgc2hvdWxkIGJlIGFibGUgdG8gc2hvdyB0aGUgaGllcmFyY2h5IG9mIEphdmEgZWxlbWVudHM7IGl0IHNob3VsZA0KICBiZSBwb3NzaWJsZSB0byBpbmRleCB0aGVzZSBmaWxlcyBzbyB0aGF0IEphdmEgc2VhcmNoIGNhbiBmaW5kIHRoZSBKYXZhDQogIGRlY2xhcmF0aW9ucyBhbmQgcmVmZXJlbmNlcyB3aXRoaW47IGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byB1c2UgSmF2YSBjb2RlDQogIGFzc2lzdCBvbiB0aGUgSmF2YSBwYXNzYWdlczsgcmVmYWN0b3Jpbmcgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSB0aGVzZSBmaWxlcw0KICBpbnRvIGFjY291bnQ7IHRoZSBkZWJ1Z2dlciBzaG91bGQgYmUgYWJsZSB0byBzdGVwIHRocm91Z2ggdGhlIEphdmEgcGFzc2FnZXMgKDxhIGhyZWY9Imh0dHA6Ly9qY3Aub3JnL2VuL2pzci9kZXRhaWw/aWQ9MDQ1IiB0YXJnZXQ9Il9ibGFuayI+SlNSLTA0NTwvYT4pOyBlcnJvciBoaWdobGlnaHRpbmcgc2hvdWxkIGJlIHN1cHBvcnRlZCBhY3Jvc3Mgc2VjdGlvbnM7DQogIGV0Yy4gW0pEVCBDb3JlLCBKRFQgVUksIEpEVCBEZWJ1Z108L3A+DQogIDxwPiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPlN1cHBvcnQgSmF2YSByZWZlcmVuY2VzIGZyb20gbm9uLUphdmEgZmlsZXMuPC9iPiBSZWZlcmVuY2VzIHRvIEphdmEgZWxlbWVudHMgaW4gcGFydGljdWxhciBjbGFzc2VzDQogIGNhbiBzaG93IHVwIGluIHNwZWNpZmljIGtpbmRzIG9mIG5vbi1KYXZhIGZpbGVzLCBzdWNoIGFzIHBsdWctaW4gbWFuaWZlc3QNCiAgZmlsZXMgKHBsdWdpbi54bWwpLiBUaGVzZSByZWZlcmVuY2VzIHNob3VsZCBhbHNvIHBhcnRpY2lwYXRlIGluIEphdmENCiAgb3BlcmF0aW9ucyBsaWtlIHNlYXJjaCwgbW92ZSwgcmVuYW1lLCBhbmQgb3RoZXIgcmVmYWN0b3Jpbmcgb3BlcmF0aW9ucy4gSkRUIHdpbGwgc3VyZmFjZSBBUElzIHRoYXQgZW5hYmxlDQogIG90aGVyIHBsdWctaW5zIHRvIGNvbnRyaWJ1dGUgdG8gYW5kIHBhcnRpY2lwYXRlIGluIHRoZXNlIG9wZXJhdGlvbnMuIFtKRFQgQ29yZSwgSkRUIFVJLCBKRFQgRGVidWddPGJyPg0KICA8YnI+DQogKDxpbWcgYm9yZGVyPSIwIiBzcmM9Im5ldy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiI+DQogbmV3KSA8Yj5IYXJtb25pemUgSmF2YSBzb3VyY2UgbWFuaXB1bGF0aW9uLjwvYj4gVGhlIEphdmEgbW9kZWwgaXMgY3VycmVudGx5DQogIGltcGxlbWVudGVkIGluIHRlcm1zIG9mIEpET00sIGFuIGVhcmx5IHByZWN1cnNvciBvZiB0aGUgQVNUIGZhY2lsaXR5IGFkZGVkIGluDQogIDIuMC4gSkRUIHdpbGwgbW92ZSB0byBhbiBBU1QtIGJhc2VkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBKYXZhIG1vZGVsLCBhbmQNCiAgZGVwcmVjYXRlIEpET00uIFtKRFQgQ29yZV08L3A+DQogIDxwPiANCiAoPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4NCiBuZXcpIDxiPlByZXNlbnQgPC9iPjxiPmxvZ2ljYWwgdmlldyBvZiBKYXZhIG9iamVjdHMgaW4gZGVidWdnZXIuPC9iPiBUaGUNCiAgY3VycmVudCBkZWJ1Z2dlciBhbHdheXMgcHJlc2VudHMgdGhlIGludGVybmFsIHN0cnVjdHVyZSBvZiBKYXZhIG9iamVjdHMuIEZvcg0KICBpbnN0YW5jZXMgb2Ygc3RhbmRhcmQgZGF0YSBzdHJ1Y3R1cmVzIGxpa2UgamF2YS51dGlsLkhhc2hNYXAsIHRoZSBKYXZhDQogIGRlYnVnZ2VyIHNob3VsZCBiZSBhYmxlIHRvIHByZXNlbnQgYSBoaWdoZXIgbGV2ZWwgbG9naWNhbCB2aWV3IG9mIHRoZSBvYmplY3QNCiAgKGkuZS4sIHRvIHNob3cgaXQgYXMgYSB0YWJsZSBvZiBrZXktdG8gdmFsdWUgbWFwcGluZ3MpLiBbSkRUIERlYnVnXTwvcD4NCiAgPHA+ICg8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UHJvdmlkZSBBUEkgZm9yIHJlZmFjdG9yaW5nPC9iPjxiPi48L2I+ICBKRFQgc2hvdWxkIGFsbG93IG90aGVyIHBsdWctaW5zIHRvDQogIGNvbnRyaWJ1dGUgc3BlY2lhbGl6ZWQgcmVmYWN0b3Jpbmcgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGUgdGhlIGluZnJhc3RydWN0dXJlDQogIHRvIG1ha2UgaXQgcG9zc2libGUgZm9yIHRoZW0gdG8gZG8gc28uIFtKRFQgQ29yZSwgSkRUIFVJXTwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBKRFQgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+UmVqZWN0ZWQgSXRlbXMgKEVjbGlwc2UgSkRUIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KDQoNCg0KPHA+KEVuZCBvZiBpdGVtcyBmb3IgRWNsaXBzZSBKRFQgc3VicHJvamVjdC4pDQoNCg0KDQo8aDM+DQoNCjxhIG5hbWU9IlBERSI+UGx1Zy1pbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCAoUERFKSBzdWJwcm9qZWN0PC9hPjwvaDM+DQoNClRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3BkZS9pbmRleC5odG1sIj4gcGx1Zy1pbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudDwvYT4gDQooUERFKSBjb25zaXN0cyBvZiZuYnNwO3Rvb2xzIGZvciBkZXZlbG9waW5nIHBsdWctaW5zIGZvciB0aGUgRWNsaXBzZSBQbGF0Zm9ybS4NCg0KVGhlIGZvbGxvd2luZyB3b3JrIGl0ZW1zIHJlZmxlY3QgbmV3IGZlYXR1cmVzIG9mIFBERSwgb3IgYXJlYXMgd2hlcmUgZXhpc3RpbmcNCg0KZmVhdHVyZXMgd2lsbCBiZSBzaWduaWZpY2FudGx5IHJld29ya2VkLg0KPGg0PkNvbW1pdHRlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+UHJvcG9zZWQgSXRlbXMgKEVjbGlwc2UgUERFIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD4oPGltZyBib3JkZXI9IjAiIHNyYz0ibmV3LmdpZiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIj4gbmV3KSA8Yj5IZWxwIGRldmVsb3BlcnMgDQogICAgdHVuZSBwbHVnLWluIHBlcmZvcm1hbmNlLjwvYj4gT2JzZXJ2aW5nIGFuZCBtZWFzdXJpbmcgdGhlIGR5bmFtaWMgYmVoYXZpb3IgDQogICAgb2YgYSBwbHVnLWluIGlzIGtleSB0byBkZXZlbG9waW5nIHBsdWctaW5zIHRoYXQgcGVyZm9ybSB3ZWxsLiBQREUgdmlzdWFsaXphdGlvbnMgDQogICAgc2hvdWxkIGhlbHAgdGhlIGRldmVsb3BlciB1bmRlcnN0YW5kIHRoZSBkeW5hbWljIGJlaGF2aW9yIG9mIHRoZWlyIHJ1bm5pbmcgDQogICAgcGx1Zy1pbjsgZS5nLiwgcmVhc29uIGZvciBwbHVnLWluIGFjdGl2YXRpb24sIGVsYXBzZSB0aW1lIHRvIHN0YXJ0IHVwLCBkZXBlbmRlbnQgDQogICAgcGx1Zy1pbnMgYWN0aXZhdGVkLCBldGMuPC9wPg0KICA8L2Jsb2NrcXVvdGU+DQo8YmxvY2txdW90ZT4NCjxwPig8aW1nIGJvcmRlcj0iMCIgc3JjPSJuZXcuZ2lmIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiPg0KIG5ldykgPGI+UzwvYj48Yj51cHBvcnQgY29udGV4dC1zZW5zaXRpdmUgaGVscCBmb3IgcGx1Zy1pbnMuPC9iPiBBbGwgcGx1Zy1pbg0Kc2hvdWxkIHByb3ZpZGUgY29udGV4dC1zZW5zaXRpdmUgKEYxKSBoZWxwIGZvciB0aGVpciBVSSBjb21wb25lbnRzLiBIb3dldmVyLA0KaW1wbGVtZW50aW5nIEYxIHN1cHBvcnQgaXMgc29tZXdoYXQgY3VtYmVyc29tZSBhbmQgZXJyb3IgcHJvbmUuIFBERSBzaG91bGQNCnByb3ZpZGUgYWRkaXRpb25hbCBzdXBwb3J0IGluIHRoaXMgYXJlYSwgc3VjaCBhcyBhc3NpZ25pbmcgaGVscCBjb250ZXh0cyB0byBVSQ0KZWxlbWVudHMsIHVwZGF0aW5nIGNvcnJlc3BvbmRpbmcgWE1MIGZpbGVzLCBhbmQgY2hlY2tpbmcgY29uc2lzdGVuY3kgb2YgY29udGV4dA0KaWRzLjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoND5EZWZlcnJlZCBJdGVtcyAoRWNsaXBzZSBQREUgc3VicHJvamVjdCk8L2g0Pg0KPGJsb2NrcXVvdGU+DQogIDxwPjxpPk5vbmUgYXQgdGhpcyB0aW1lLjwvaT48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDQ+UmVqZWN0ZWQgSXRlbXMgKEVjbGlwc2UgUERFIHN1YnByb2plY3QpPC9oND4NCjxibG9ja3F1b3RlPg0KICA8cD48aT5Ob25lIGF0IHRoaXMgdGltZS48L2k+PC9wPg0KPC9ibG9ja3F1b3RlPg0KDQoNCg0KPHA+KEVuZCBvZiBpdGVtcyBmb3IgRWNsaXBzZSBQREUgc3VicHJvamVjdC4pDQoNCjwvYm9keT4NCg0KPC9odG1sPg0KDQo=