PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CjxoZWFkPgo8dGl0bGU+V1RQIFBNQyBNaW51dGVzIGZvciBNYXJjaCA4LCAyMDA1IENvbmZlcmVuY2UgQ2FsbDwvdGl0bGU+CjwvaGVhZD4KPGJvZHkKICAgIGFsaW5rPSIjZmYwMDAwIgogICAgYmdjb2xvcj0iI2ZmZmZmZiIKICAgIGxpbms9IiMwMDAwZWUiCiAgICB0ZXh0PSIjMDAwMDAwIgogICAgdmxpbms9IiM1NTFhOGIiPgo8dGFibGUKICAgIGJvcmRlcj0iMCIKICAgIGNlbGxwYWRkaW5nPSIyIgogICAgY2VsbHNwYWNpbmc9IjUiCiAgICB3aWR0aD0iMTAwJSI+CiAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgIGNvbHNwYW49IjIiCiAgICAgICAgICAgICAgICBhbGlnbj0ibGVmdCIKICAgICAgICAgICAgICAgIGJnY29sb3I9IiMwMDgwYzAiCiAgICAgICAgICAgICAgICB2YWxpZ249InRvcCI+PGI+IDxmb250CiAgICAgICAgICAgICAgICBjb2xvcj0iI2ZmZmZmZiIKICAgICAgICAgICAgICAgIGZhY2U9IkFyaWFsLEhlbHZldGljYSI+UE1DIENvbmZlcmVuY2UgQ2FsbCAtIE1hcmNoIDgsIDIwMDU8L2ZvbnQ+PC9iPjwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+CjwvdGFibGU+Cjx0YWJsZQogICAgYm9yZGVyPSIwIgogICAgY2VsbHBhZGRpbmc9IjIiCiAgICBjZWxsc3BhY2luZz0iNSIKICAgIHdpZHRoPSIxMDAlIj4KICAgIDx0Ym9keT4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD5BdHRlbmRpbmc6IFRpbSBXYWduZXIgW1RXXSwgQXJ0aHVyIFJ5bWFuIFtBUl0sIERhdmlkIFdpbGxpYW1zIFtEV10sIERvbWluaXF1ZSBEZSBWaXRvIFtEVl0sIEpvY2hlbgogICAgICAgICAgICBLcmF1c2UgW0pLXSwgTmFjaSBEYWkgW05EXSBPdGhlcnM6IExhd3JlbmNlIE1hbmRlbCAocmVwcmVzZW50aW5nIFdUUCBjb21tdW5pdHkpIFtMTV0KICAgICAgICAgICAgPGgyPlByb2NlZHVyYWwgbWF0dGVycyCWIHRpbWUgYW5kIGFkbWluaXN0cmF0aW9uIG9mIFBNQyBjb25mZXJlbmNlIGNhbGw8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+UE1DIGFncmVlZCB0byBjb250aW51ZSBtZWV0aW5nIG9uIGEgd2Vla2x5IGJhc2lzIHRvIGVuc3VyZSB0aW1lbHkgcmV2aWV3IG9mIGFsbCBXVFAgbWF0dGVyczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+TWVldGluZyB3aWxsIGNvbW1lbmNlIG9uZSBob3VyIGxhdGVyICg3YW0gUFNUKSwgc3RhcnRpbmcgbmV4dCB3ZWVrPC9saT4KICAgICAgICAgICAgICAgIDxsaT5NZWV0aW5nIHdpbGwgbW92ZSB0byBhIFVTIGNvbmZlcmVuY2Ugc2VydmljZTogMS04ODgtNzIyLTc5MDcgKGFsdDogMS04MTYtNjUwLTA3MTMpLCBwYXNzY29kZQogICAgICAgICAgICAgICAgOTI2Mjk0NS4gTm90ZSB0aGF0IHRoZXJlIGFyZSBubyBsb2NhbCBudW1iZXJzIG91dHNpZGUgdGhlIFVTIHdpdGggdGhlIFNwcmludCBzZXJ2aWNlIChsZXQgbWUga25vdyBpZgogICAgICAgICAgICAgICAgdGhpcyBpcyBhbiBpc3N1ZSkuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGgyPkNvbW11bml0eSBmcm9tIExhd3JlbmNlIE1hbmRlbDwvaDI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5XVFAgaGVscCBzeXN0ZW0gaW5pdGlhbCBjb250ZW50IHNob3VsZCBiZSBhdmFpbGFibGUgYnkgbmV4dCB3ZWVrPC9saT4KICAgICAgICAgICAgICAgIDxsaT5Db25mZXJlbmNlIHJlc3BvbnNlOiBnZW5lcmFsbHkgZ29vZCwgYWx0aG91Z2ggY29kZSBjbGluaWMgd2FzIG5vdCBhZHZlcnRpc2VkIHN1ZmZpY2llbnRseSAoYW5kCiAgICAgICAgICAgICAgICBmYXIgZW5vdWdoIGluIGFkdmFuY2UpOyB0aGlzIHdhcyBhIGdlbmVyYWwgY29uZmVyZW5jZSBpc3N1ZSwgYW5kIG5vdCBzcGVjaWZpYyB0byBXVFCScyB1c2Ugb2YgaXQgU29tZQogICAgICAgICAgICAgICAgZ2VuZXJhbCBkaXNjdXNzaW9uIGFyb3VuZCB3aGV0aGVyIGEgY29kZSBjbGluaWMgd2FzIGhlbHBmdWwgZ2l2ZW4gdGhlIHByZXJlbGVhc2Ugc3RhdGUgb2YgV1RQIChEVyksIGFuZAogICAgICAgICAgICAgICAgd2hldGhlciBjb25kZW5zaW5nIGl0IHRvIGZld2VyIGhvdXJzIGluIHRoZSBmdXR1cmUgd291bGQgYmUgYW4gaW1wcm92ZW1lbnQgKEpLKS4gV2hldGhlciBjb2RlIGNsaW5pY3MKICAgICAgICAgICAgICAgIHNob3VsZCBvdmVybGF5IHRoZSBjb25mZXJlbmNlIGF0IGFsbCwgb3Igd2hldGhlciB0aGVyZSBzaW1wbHkgaXNuknQgZW5vdWdoIHRpbWUgZm9yIHRoZW0gdG8gYmUgdXNlZnVsCiAgICAgICAgICAgICAgICB3YXMgYWxzbyByYWlzZWQgYXMgYW4gaXNzdWUgKE5EKS48L2xpPgogICAgICAgICAgICAgICAgPGxpPkVjbGlwc2VDb3JuZXIgbG9va2luZyBmb3IgY29udHJpYnV0aW9ucyBmcm9tIFdUUC4gVGhpcyB3b3VsZCBhbHNvIGhlbHAgY29tbXVuaWNhdGUgdG8gdGhlIHdpZGVyCiAgICAgICAgICAgICAgICBjb21tdW5pdHkgd2hhdCBXVFAgaGFzIG1hZGUgYXZhaWxhYmxlIHNvIGZhciBhbmQgcG9zc2libHkgaGVscCBkcml2ZSBhZG9wdGlvbi4gUHVibGlzaGluZyBpbiBicm9hZGVyCiAgICAgICAgICAgICAgICBmb3J1bXMgKEpESiwgZS5nLikgd291bGQgYWxzbyBiZSBoZWxwZnVsLCBhbmQgY29udHJpYnV0aW9ucyBoZXJlIGFyZSBhY3RpdmVseSBzb2xpY2l0ZWQ7IHRhbGsgdG8KICAgICAgICAgICAgICAgIExhd3JlbmNlIGlmIHlvdZJyZSBpbnRlcmVzdGVkLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIFtQTUMgbWVtYmVycyBvbmx5IGZvciB0aGUgcmVtYWluaW5nIHBvcnRpb24gb2YgdGhlIG1lZXRpbmddCiAgICAgICAgICAgIDxoMj5SZXF1aXJlbWVudHMgZ3JvdXAgcmVib290IFtKS108L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+UmVxdWlyZW1lbnRzIGdyb3VwIGlzIGN1cnJlbnRseSBjb21wb3NlZCBvZiBKb2NoZW4gYW5kIEFydGh1ci48L2xpPgogICAgICAgICAgICAgICAgPGxpPkJFQSB3aWxsIGFwcG9pbnQgc29tZW9uZSAoZWl0aGVyIFRpbSBvciBhIFdUUCBkZXYgb3IgcGdtKSB0byB0aGlzIGdyb3VwIHRvIHBhcnRpY2lwYXRlIGFzIHdlbGwuCiAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPGxpPlByb2Nlc3M6IEdyb3VwIHdpbGwgcmVjb25zdGl0dXRlIGFuZCBtZWV0OyBtZWNoYW5pc20gdG8gc29saWNpdCByZXF1aXJlbWVudHMgZnJvbSBXVFAgY29uc3VtZXJzCiAgICAgICAgICAgICAgICBhbmQgcG9zc2libHkgYWRkaXRpb25hbCBtZW1iZXJzIHRvIGJlIGl0cyBmaXJzdCBvcmRlciBvZiBidXNpbmVzczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+Q29tbXVuaXR5IGlzIGFjdGl2ZWx5IGVuY291cmFnZWQgdG8gcGFydGljaXBhdGUgYXQgbXVsdGlwbGUgbGV2ZWxzLCBhbmQgY29tbWl0dGVycyBvciBjb25zdW1lcnMKICAgICAgICAgICAgICAgIG9mIFdUUCBpbnRlcmVzdGVkIGluIG1lbWJlcnNoaXAgc2hvdWxkIGlkZW50aWZ5IHRoZW1zZWx2ZXMgdG8gSksgb3IgVFc8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8aDI+RWNsaXBzZUNvbiBEZWJyaWVmPC9oMj4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPkdlbmVyYWwgY29uc2Vuc3VzIHRoYXQgV1RQknMgcHJlc2VuY2UgYW5kIG1lc3NhZ2UgYXQgY29uZmVyZW5jZSB3YXMgc3VjY2Vzc2Z1bDwvbGk+CiAgICAgICAgICAgICAgICA8bGk+V2ViIFNlcnZpY2VzIGdlbmVyYXRlZCBpbnRlcmVzdCBmcm9tIHRoZSBwcmVzcyBhbmQgc2V2ZXJhbCBhcnRpY2xlcyBbSktdPC9saT4KICAgICAgICAgICAgICAgIDxsaT5XVFAgbm90IG9uIGhpZ2ggZG93bmxvYWQgbGlzdDsgbmVlZHMgaW1wcm92ZWQgc3RhYmlsaXR5IHRvIGRyaXZlIGFkb3B0aW9uIGFuZCBtb3JlIGFkdmVydGlzaW5nCiAgICAgICAgICAgICAgICBvZiBhdmFpbGFibGUgZmVhdHVyZXMgW05EXTwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxoMj5NMyBSZWxlYXNlIERlYnJpZWY8L2gyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+U2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIGluIHByb2Nlc3MgYW5kIGNvZGUgcXVhbGl0eSB3LnIudC4gcHJldmlvdXMgbWlsZXN0b25lcywgYnV0IG1vcmUgd29yawogICAgICAgICAgICAgICAgb24gc3RhYmlsaXR5IGlzIG5lZWRlZCB0byByZWFjaCBwcm9kdWN0aW9uIHF1YWxpdHkgYW5kIGVuYWJsZSB3aWRlc3ByZWFkIGFkb3B0aW9uIFtORF08L2xpPgogICAgICAgICAgICAgICAgPGxpPkRlbW9zIGF0IGNvbmZlcmVuY2UgZ2VuZXJhbGx5IHdlbnQgd2VsbCBhbmQgc3VjY2VlZGVkIGF0IGlsbHVzdHJhdGluZyBuZXcgZnVuY3Rpb25hbGl0eTwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxoMj5QYWNrYWdpbmcgSXNzdWVzPC9oMj4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPkFydGh1ciBub3RlZCB0aGF0IHBhY2thZ2luZyBpcyBwcm9ibGVtYXRpYyCWIHRvbyBtYW55IGxvb3NlIGZpbGVzLCB0b28gbWFueSAzcmQgcGFydHkgZG93bmxvYWRzCiAgICAgICAgICAgICAgICAoMTQhKSwgZXRjLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+TGljZW5zaW5nIGlzc3VlcyBhZmZlY3RpbmcgM3JkIHBhcnR5IHJlZGlzdHJpYnV0aW9uIHJpZ2h0cyBhcmUgYmVpbmcgd29ya2VkIHRocm91Z2ggd2l0aCB0aGUKICAgICAgICAgICAgICAgIEVNTywgYnV0IGl0IHdpbGwgdGFrZSB0aW1lLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+V1RQIGludmVzdGlnYXRpbmcgdGhlIHVzZSBvZiBFY2xpcHNlIHVwZGF0ZSBzaXRlcyBhcyBhIGRpc3RyaWJ1dGlvbiBtZWNoYW5pc20gZm9yIG1pbGVzdG9uZQogICAgICAgICAgICAgICAgcmVsZWFzZXM7IHdpbGwgcmVxdWlyZSA0dGggY29tcG9uZW50IHRvIHZlcnNpb24gbnVtYmVyaW5nIChKZWZmcmV5IExpdSB3b3JraW5nIG9uIHRoaXMgYWxyZWFkeSk8L2xpPgogICAgICAgICAgICAgICAgPGxpPlR3byBaSVBwZWQgYnVuZGxlcyBwcm9wb3NlZDogYWxsIFdUUCwgYW5kIGFsbCBXVFAgKyBFY2xpcHNlIHBsYXRmb3JtOyBzaG91bGQgZWFzZSBpbnN0YWxsYXRpb24KICAgICAgICAgICAgICAgIGhhc3NsZXM8L2xpPgogICAgICAgICAgICAgICAgPGxpPlJlcXVlc3QgdG8gbWFpbnRhaW4gc29tZSB1c2VmdWwgZWRpdGluZyBmZWF0dXJlcyAoWE1MLCBlLmcuKSBhcyBzZXBhcmFibGUgZnJvbSB0aGUgZW50aXJldHkgb2YKICAgICAgICAgICAgICAgIFdUUCBbSktdPC9saT4KICAgICAgICAgICAgICAgIDxsaT6TTmV3IGFuZCBOb3Rld29ydGh5lCBpc26SdCBvbiB0aGUgZG93bmxvYWQgcGFnZSBbSktdLiBTaG91bGQgYWRkIGxpbmsgdG8gdXBwZXIgcmlnaHQgYm94IGluIFdUUAogICAgICAgICAgICAgICAgaG9tZSBwYWdlLiBNYWluIEVjbGlwc2UgcGFnZSBkb3dubG9hZHMgcmVmZXJlbmNlIGlzIHN0aWxsIHRvIE0yLCBhbmQgbmVlZHMgdG8gYmUgdXBkYXRlZC48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8aDI+TmV3IENvbW1pdHRlcnM8L2gyPgogICAgICAgICAgICBUaGUgUE1DIHJldmlld2VkIHRoZSBjb21tdW5pdHkgdm90aW5nIHJlc3VsdHMgYW5kIGFjY2VwdGVkIHRoZSBmb2xsb3dpbmcgV1RQIGNvbW1pdHRlcnM6IEplZmZyZXkgTGl1LCBLYXRoeQogICAgICAgICAgICBDaGFuLCBLZWl0aCBDaG9uZywgVmlqYXkgQmhhZHJpcmFqdSwgTGF3cmVuY2UgRHVubmVsbAogICAgICAgICAgICA8aDI+MS4wIFJhbXBkb3duIC8gR0EgUHJvY2VzcyBEZXNjcmlwdGlvbjwvaDI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5CZXR3ZWVuIE01IGFuZCBHQSwgV1RQIHdpbGwgYmUgaW4gcmFtcGRvd24gbW9kZSwgYW5kIHNvbWUgZGVzY3JpcHRpb24gb2YgdGhlIHByb2Nlc3MgYW5kIHRoZQogICAgICAgICAgICAgICAgcmVsZWFzZSBjcml0ZXJpYSBpcyBuZWVkZWQgW1RXXS48L2xpPgogICAgICAgICAgICAgICAgPGxpPkV4aXN0aW5nIGRvY3VtZW50YXRpb24gZm9yIG1pbGVzdG9uZSBidWlsZHMgYW5kIGV4aXQgY3JpdGVyaWEgdG8gYmUgcmV2aWV3ZWQgW0RXLCBUV10gaW4KICAgICAgICAgICAgICAgIHByZXBhcmF0aW9uIGZvciB0aGlzLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+SW4gZ2VuZXJhbCwgZm9sbG93aW5nIHRoZSBwbGF0Zm9ybSBzZWVtcyByZWFzb25hYmxlLCBhbmQgd2UgYWxzbyBuZWVkIHRvIHJlc3BlY3QgZG9jdW1lbnRhdGlvbgogICAgICAgICAgICAgICAgYW5kIGhlbHAgZmlsZSBzdGF0dXMgW05EXS48L2xpPgogICAgICAgICAgICAgICAgPGxpPk9uIGEgcmVsYXRlZCB0b3BpYywgaW50ZWdyYXRpb24gYnVpbGRzIHdpbGwgbW92ZSBmcm9tIFRodXJzZGF5IHRvIFR1ZXNkYXkgdG8gYWxsb3cgZm9yIHR3byBkYXlzCiAgICAgICAgICAgICAgICB0byBhZGRyZXNzIHByb2JsZW1zIGlmIHRoZSB0ZXN0IHN0YXR1cyBpcyBub3QgZ3JlZW4gW05EXS4gQVBJIGRpc2N1c3Npb248L2xpPgogICAgICAgICAgICAgICAgPGxpPlByb2Nlc3Mgc3Vycm91bmRpbmcgdGhlIGRlZmluaXRpb24gYW5kIGZyZWV6aW5nIG9mIEFQSXM7IHNlZQogICAgICAgICAgICAgICAgaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9taG9uYXJjL2xpc3RzL3d0cC1kZXYvbXNnMDA3MDUuaHRtbCBbQVJdLiBEYXZpZCBXaWxsaWFtcyBhZ3JlZWQgdGhhdCB0aGUKICAgICAgICAgICAgICAgIGFyY2hpdGVjdHVyZSBncm91cCB3b3VsZCBwbGF5IGEgc2lnbmlmaWNhbnQgcm9sZSBpbiByZXZpZXdpbmcgYW5kIGFkbWl0dGluZyBBUElzIGZvciBXVFAgYXMgYSB3aG9sZS48L2xpPgogICAgICAgICAgICAgICAgPGxpPkZpbmFsaXplZCBwcm9jZXNzIHNob3VsZCBiZSBwb3N0ZWQgdG8gdGhlIHdlYnNpdGUgW0RWXTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+UGxhdGZvcm0gdG9vbCB0byBhbmFseXplIGNvbXBvbmVudCBtZXRhZGF0YSAok2NvbXBvbmVudC54bWyUKSBhbmQgc2NhbiBmb3IgQVBJIHZpb2xhdGlvbnMgd2FzCiAgICAgICAgICAgICAgICBkZXNjcmliZWQgW0FSXTsgd2UgYXJlIG5vdCB5ZXQgY29tcGxpYW50IGluIG1hbnkgYXJlYXMuPC9saT4KICAgICAgICAgICAgICAgIDxsaT5EaXNjdXNzZWQgbm9tZW5jbGF0dXJlIHN1cnJvdW5kaW5nIJNwcm92aXNpb25hbJQgQVBJczsgYSBzaWduaWZpY2FudCBwZXJjZW50YWdlIG9mIFdUUJJzIEFQSXMKICAgICAgICAgICAgICAgIG1heSBiZSBpbiB0aGlzIGNhdGVnb3J5IGZvciAxLjA8L2xpPgogICAgICAgICAgICAgICAgPGxpPldUUCB0byBoYXZlIHN0YW5kaW5nIGFnZW5kYSBpdGVtIHVudGlsIDEuMCBHQSB0byByZXZpZXcgc3RhdHVzIG9mIGNvbXBvbmVudC54bWyScyAvIEFQSQogICAgICAgICAgICAgICAgY29uZm9ybWFuY2UgbWV0cmljczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+UmVsZWFzZS10by1yZWxlYXNlIEFQSSBjaGFuZ2UgcHJvY2VzczogUE1DIHdpbGwgYWRvcHQgc29tZSBjb21iaW5hdGlvbiBvZiBpdHMgb3duIHBvbGljaWVzIGFuZAogICAgICAgICAgICAgICAgdGhlIHBsYXRmb3JtknMgYXBwcm9hY2ggdG8gbWFuYWdpbmcgYW5kIGNvbW11bmljYXRpbmcgdGhlIGNoYW5nZTsgZGV0YWlscyBUQkQuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGgyPkNsYXJpZnlpbmcgSlNUIFVzZSBvZiBTdGFuZGFyZHMgdnMuIFRvb2xpbmcgVGVjaG5vbG9naWVzPC9oMj4KICAgICAgICAgICAgRGlzY3Vzc2VkIHVzZSBvZiB4ZG9jbGV0IGJ5IFdUUCwgc2luY2UgcXVlc3Rpb25zIHdlcmUgcmFpc2VkIGFib3V0IGl0cyCTbm9uLUoyRUUgc3RhbmRhcmRuZXNzlCBhdCB0aGUKICAgICAgICAgICAgRWNsaXBzZUNvbiBwcm9qZWN0IHNwcmludC4gUE1DIGNsYXJpZmllZCB0aGF0IHRvb2xpbmcgb2YgYW55IGZvcm0gliB4ZG9jbGV0LCBhbnQsIGVkaXRvcnMsIGV0Yy4gaXMKICAgICAgICAgICAgYWNjZXB0YWJsZSBmb3IgcHJvamVjdCB1c2UsIGJ1dCB0aGF0ICpydW50aW1lKiBpbmZyYXN0cnVjdHVyZSBhbmQgcGxhdGZvcm1zIHRhcmdldGVkIGJ5IEpTVCB3aWxsIGJlIGxpbWl0ZWQKICAgICAgICAgICAgdG8gSjJFRSBzdGFuZGFyZHMuCiAgICAgICAgICAgIDxoMj5EYXRhIFRvb2xzIFByb2plY3QgYW5kIEZ1dHVyZSBvZiBXVFAgUkRCIENvbXBvbmVudDwvaDI+CiAgICAgICAgICAgIEFydGh1ciBwcm92aWRlZCBhIGRlc2NyaXB0aW9uIG9mIG1lZXRpbmdzIGJldHdlZW4gSUJNIGFuZCBFeGFkZWwgd2l0aCBTeWJhc2Ugb3ZlciB0aGUgY2hhcnRlcnMgb2YgdGhlIFdUUAogICAgICAgICAgICBSREIgY29tcG9uZW50IGFuZCB0aGUgbmV3bHkgcHJvcG9zZWQgdG9wbGV2ZWwgRGF0YSBUb29scyBQcm9qZWN0IChEVFApIFdUUCBQTUMgYWdyZWVkIHRoYXQgMS4wIHJlbGVhc2UsIGFuZAogICAgICAgICAgICBjdXJyZW50bHkgcGxhbm5lZCByZXF1aXJlbWVudHMgZm9yIGl0LCB3aWxsIG5vdCBiZSBhZmZlY3RlZCBhcGFydCBmcm9tIEFQSSBkZWZpbml0aW9ucyBpbiB0aGlzIGFyZW5hLCB3aGljaAogICAgICAgICAgICByZXF1aXJlIGVpdGhlciByZW5hbWluZyBvciBwcm92aXNpb25hbCBzdGF0dXMgKG91dGNvbWUgVEJEIGJhc2VkIG9uIHN1YnNlcXVlbnQgZGlzY3Vzc2lvbnMgd2l0aCBTeWJhc2UvRFRQCiAgICAgICAgICAgIHJlcHJlc2VudGF0aXZlcykgUkRCIEVNRiBtb2RlbHMgd2lsbCBjb250aW51ZSB0byBleGlzdCwgYW5kIFdUUCBjb25zdW1lcnMgY2FuIGNvbnRpbnVlIHRvIHJlbHkgb24gdGhlbTsKICAgICAgICAgICAgU3liYXNlIGlzIHBsYW5uaW5nIHRvIGNvbnRyaWJ1dGUgdXBncmFkZWQgU1FMIGVkaXRpbmcgYW5kIGRlYnVnZ2luZyBjYXBhYmlsaXRpZXMgYXMgd2VsbCBhcyB0ZWNobm9sb2d5IHRoYXQKICAgICAgICAgICAgZXhwYW5kcyBvbiB0aGUgUkRCIGNvbXBvbmVudCBzY29wZSBpbnRvIGFkbWluaXN0cmF0aW9uIGFuZCBEQiBkZXNpZ24KICAgICAgICAgICAgPGgyPkhlbHAgU3lzdGVtPC9oMj4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPkhlbHAgY29udGVudCB3YXMgbm90IGluY2x1ZGVkIGluIG9yaWdpbmFsIElCTSBjb250cmlidXRpb24sIGJ1dCB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlIHNob3J0bHkKICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8bGk+TGF3cmVuY2UgTWFuZGVsIHdpbGwgYmUgdGVjaG5pY2FsIGNvbnRhY3QgZm9yIGhlbHAgYnVpbGQgc3lzdGVtIGFuZCB0b29sczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+SGVscCBzeXN0ZW0gaXMgWE1MIGJhc2VkIChESVRBKSwgd2l0aCBvcGVuIHNvdXJjZSBwcm9jZXNzb3JzIG9uIFNvdXJjZUZvcmdlPC9saT4KICAgICAgICAgICAgICAgIDxsaT5JQk0gbWF5IGJlIGNvbnRyaWJ1dGluZyBhIHdyaXRlciBhcyB3ZWxsOyBmaXJzdCBwcmlvcml0eSBpcyBjb3JyZWN0aW5nL2F1Z21lbnRpbmcgY29udGVudCB0bwogICAgICAgICAgICAgICAgbWF0Y2ggY3VycmVudCBXVFAgQVBJcyBhbmQgYXJjaGl0ZWN0dXJlOyBzdWJzZXF1ZW50IHdvcmsgd291bGQgcHJvYmFibHkgaW5jbHVkZSBzb21lIGxvY2FsaXphdGlvbgogICAgICAgICAgICAgICAgZWZmb3J0LCBhdCBsZWFzdCBmb3IgbWFqb3IgbGFuZ3VhZ2VzPC9saT4KICAgICAgICAgICAgICAgIDxsaT5PdGhlciBjb21wYW5pZXMgbWF5IGJlIGFibGUgdG8gY29udHJpYnV0ZSBvbmNlIGluZnJhc3RydWN0dXJlIGFuZCBjb250ZW50IGlzIHByZXNlbnQ8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8aDI+QWN0aW9uIEl0ZW1zOjwvaDI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5bVFddIEJ5IDMvMTU6IElkZW50aWZ5IEJFQSBlbXBsb3llZSB0byBzZXJ2ZSBvbiBXVFAgcmVxdWlyZW1lbnRzIGdyb3VwPC9saT4KICAgICAgICAgICAgICAgIDxsaT5bVFcvSktdIEJ5IDMvMTU6IFJlY29uc3RpdHV0ZSByZXF1aXJlbWVudHMgZ3JvdXAgYW5kIHNldCBkYXRlIGZvciBpbml0aWFsIG1lZXRpbmcuPC9saT4KICAgICAgICAgICAgICAgIDxsaT5bQUldIEJ1bmRsZWQgTTMgcmVsZWFzZXMgKHNlZSBtaW51dGVzKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+W0pLXSBBZGQgk25ldyBhbmQgbm90ZXdvcnRoeZQgbGluayBhbmQgY29ycmVjdCBtYWluIEVjbGlwc2UgZG93bmxvYWQgcGFnZSByZWZlcmVuY2UgdG8gYmUgTTMKICAgICAgICAgICAgICAgIGluc3RlYWQgb2YgTTI8L2xpPgogICAgICAgICAgICAgICAgPGxpPltUV10gRHJhZnQgbGFuZ3VhZ2UgZm9yIGVuZGdhbWUgLyByYW1wZG93biBiYXNlZCBvbiBEYXZpZJJzIG1pbGVzdG9uZSByZWxlYXNlIGRvY3VtZW50OyB3aWxsCiAgICAgICAgICAgICAgICBjaXJjdWxhdGUgdG8gUE1DIHdoZW4gcmVhZHkuPC9saT4KICAgICAgICAgICAgICAgIDxsaT5bVFddIFBlbmRpbmcgY29tbXVuaXR5IGZlZWRiYWNrIG9uIEFydGh1cpJzIEFQSSBhZG9wdGlvbiBwcm9jZXNzLCBwb3N0IGl0IHRvIHRoZSB3ZWJzaXRlLjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+W1RXXSBVcGRhdGUgd2Vic2l0ZSB0byBjbGFyaWZ5IHRoYXQgdG9vbCAobm90IHJ1bnRpbWUpIHRlY2hub2xvZ2llcyBhcmUgYWRtaXNzaWJsZSBpbiBKU1QgYW5kCiAgICAgICAgICAgICAgICB1bnJlbGF0ZWQgdG8gdGhlIEpDUCByZXF1aXJlbWVudDwvbGk+CiAgICAgICAgICAgICAgICA8bGk+W0FSXSBNYW5hZ2Ugb25nb2luZyBjb252ZXJzYXRpb24gd2l0aCBTeWJhc2Ugc3Vycm91bmRpbmcgdGhlIFJEQi9EVFAgbWVyZ2UvbWlncmF0aW9uLjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxzbWFsbD5NaW51dGVzIHRha2VuIGJ5IFRpbSBXYWduZXIsIE1hcmNoIDgsIDIwMDU8L3NtYWxsPjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD4mIzE2MDs8L3RkPgogICAgICAgIDwvdHI+CiAgICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2JvZHk+CjwvaHRtbD4K