PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPCEtLSAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDUgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAqIAogKiBDb250cmlidXRvcnM6CiAqICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovIC0tPgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi8uLi9vcmcuZWNsaXBzZS53c3QuZG9jLnVzZXIvY29tbW9uLmNzcyIgLz4KPHRpdGxlPlByb2plY3QgRXhwbG9yZXIgdmlldyBhbmQgV2ViIGRldmVsb3BtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keSBpZD0iY2N3ZWJ2dyI+PGEgbmFtZT0iY2N3ZWJ2dyI+PCEtLSAtLT48L2E+Cgo8aDEgY2xhc3M9InRvcGljdGl0bGUxIj5Qcm9qZWN0IEV4cGxvcmVyIHZpZXcgYW5kIFdlYiBkZXZlbG9wbWVudDwvaDE+CjxkaXY+PGRpdiBjbGFzcz0ic2tpcHNwYWNlIj48ZGl2IGNsYXNzPSJwIj5EZXBlbmRpbmcgb24gdGhlIHByb2R1Y3QgdGhhdCB5b3UgaGF2ZSBpbnN0YWxsZWQsIHRoZSBQcm9qZWN0IEV4cGxvcmVyIHZpZXcgbWF5IGNvbnRhaW4gdGhlIGZvbGxvd2luZyBmZWF0dXJlczogPHVsPjxsaT5WQ00gKHZlcnNpb24gY29udHJvbCBtYW5hZ2VtZW50KSBpbmZvcm1hdGlvbiBjYW4gYmUgdG9nZ2xlZCBvbiBhbmQgb2ZmCgpmcm9tIHRoZSBQcmVmZXJlbmNlcyBwYWdlICg8c3BhbiBjbGFzcz0ibWVudWNhc2NhZGUiPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPldpbmRvdzwvc3Bhbj4gJmd0OyA8c3BhbiBjbGFzcz0idWljb250cm9sIj5QcmVmZXJlbmNlczwvc3Bhbj4gJmd0OyA8c3BhbiBjbGFzcz0idWljb250cm9sIj5Xb3JrYmVuY2g8L3NwYW4+ICZndDsgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+TGFiZWwgZGVjb3JhdGlvbnM8L3NwYW4+PC9zcGFuPik8L2xpPgo8bGk+PGltZyBzcmM9Ii4uL2ltYWdlcy9ud2luLmdpZiIgYWx0PSJGb3IgV2luZG93cyIgLz4gWW91CgpjYW4gZHJhZyBhbmQgZHJvcCBmaWxlcyBmcm9tIFdpbmRvd3M8c3VwPq48L3N1cD4gRXhwbG9yZXIgb3IgdGhlIGRlc2t0b3AgaW50byB0aGUKCk5hdmlnYXRvciB2aWV3LjwvbGk+CjxsaT5WaWV3IGZpbHRlcmluZyBpcyBzdXBwb3J0ZWQgYnkgc2VsZWN0aW5nIDxzcGFuPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkZpbHRlcnM8L3NwYW4+PC9zcGFuPiBmcm9tCgp0aGUgTmF2aWdhdG9yIHZpZXcgPHNwYW4+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+TWVudTwvc3Bhbj48L3NwYW4+IGJ1dHRvbi4gUmVzb3VyY2VzCgpjYW4gYmUgZmlsdGVyZWQgYnkgbmFtZSwgcHJvamVjdCB0eXBlIG9yIHdvcmtpbmcgc2V0LiBGaWxlcyBiZWdpbm5pbmcgd2l0aAoKYSBwZXJpb2QgYXJlIGZpbHRlcmVkIG91dCBieSBkZWZhdWx0LjwvbGk+CjxsaT5UaGUgc3RhdHVzIGxpbmUgc2hvd3MgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgc2VsZWN0ZWQgcmVzb3VyY2UuPC9saT4KPGxpPkRyYWdnaW5nIGEgLmphdmEgZmlsZSBmcm9tIHRoZSBOYXZpZ2F0b3IgdmlldyBpbnRvIGEgSlNQIGZpbGUgd2lsbCBpbnNlcnQKCmEgdXNlYmVhbiB0YWcsIHRoZSBzYW1lIGJlaGF2aW9yIHRoYXQgaXMgZXhoaWJpdGVkIHdoZW4gYSAuY2xhc3MgZmlsZSBpcyBkcmFnZ2VkCgppbnRvIGEgSlNQIGZpbGUuPC9saT4KPGxpPkVycm9ycyBhbmQgd2FybmluZ3Mgb24gcmVzb3VyY2VzIChpbmNsdWRpbmcgSmF2YZksIEhUTUwvSlNQLCBhbmQgTGlua3MgQnVpbGRlciBlcnJvcnMKCmFuZCB3YXJuaW5ncykgYXJlIGluZGljYXRlZCB3aXRoIGEgcmVkIGVycm9yIDxpbWcgc3JjPSIuLi9pbWFnZXMvbnNob3dlcnIuZ2lmIiBhbHQ9IkVycm9yIGljb24iIC8+IG9yIHllbGxvdyB3YXJuaW5nIDxpbWcgc3JjPSIuLi9pbWFnZXMvbndhcm5pbmcuZ2lmIiBhbHQ9Ildhcm5pbmcgaWNvbiIgLz4gbmV4dCB0byB0aGUgcmVzb3VyY2Ugd2l0aCB0aGUgZXJyb3IsCgphcyB3ZWxsIGFzIHRoZSBwYXJlbnQgY29udGFpbmVycyB1cCB0byB0aGUgcHJvamVjdC4gVGhpcyBhcHBsaWVzIGZvciBhbGwgcHJvamVjdAoKdHlwZXMsIG5vdCBvbmx5IFdlYiBwcm9qZWN0cy48L2xpPgo8bGk+SXRlbXMgYXZhaWxhYmxlIGZyb20gdGhlIDxzcGFuPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk5ldzwvc3Bhbj48L3NwYW4+IGNhc2NhZGluZwoKbWVudSBpbiB0aGUgcHJvamVjdCBwb3AtdXAgbWVudSBhcmUgY29udGV4dCBzZW5zaXRpdmUuICBBbGwgbWVudXMgd2lsbCBoYXZlIDxzcGFuPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPlByb2plY3Q8L3NwYW4+PC9zcGFuPiBhbmQgPHNwYW4+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+T3RoZXI8L3NwYW4+PC9zcGFuPiBvcHRpb25zLjwvbGk+CjxsaT5BbGwgcHJvamVjdHMgYXJlIGF1dG9tYXRpY2FsbHkgZ3JvdXBlZCBieSB0eXBlLiBUbyBzZWUgdGhpcwoKdmlldyBvZiB5b3VyIHByb2plY3RzLCBjbGljayBvbiB0aGUgPGI+R3JvdXAgUHJvamVjdCBieSBUeXBlPC9iPiBpY29uIDxpbWcgc3JjPSIuLi9pbWFnZXMvZ3JwdHlwZS5naWYiIGFsdD0iR3JvdXAgUHJvamVjdCBieSBUeXBlIEljb24iIC8+LiA8L2xpPgo8L3VsPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InNraXBzcGFjZSI+PGg0IGNsYXNzPSJzZWN0aW9udGl0bGUiPk9yZ2FuaXphdGlvbiBvZiB0aGUgUHJvamVjdCBFeHBsb3JlciB2aWV3PC9oND48cD5UaGUgUHJvamVjdAoKRXhwbG9yZXIgdmlldyBzaG93cyBhIGN1c3RvbSB2aWV3IG9mIGEgZHluYW1pYyBXZWIgcHJvamVjdC4gQnkgZGVmYXVsdCwgZHluYW1pYwoKd2ViIHByb2plY3RzIGFwcGVhciB1bmRlciBhIHRvcC1sZXZlbCBjYXRlZ29yeSBjYWxsZWQgRHluYW1pYyBXZWIgUHJvamVjdHMuCgpUaGUgZm9sbG93aW5nIGFyZSBzb21lIG9mIHRoZSBub3RhYmxlIHRvcC1sZXZlbCBvYmplY3RzIHRoYXQgYXBwZWFyIGJlbmVhdGgKCnRoZSBwcm9qZWN0IG5vZGUgKGJhc2VkIG9uIGRlZmF1bHQgZm9sZGVyIG5hbWVzKS48L3A+Cgo8cD48Yj5XZWIgRGlhZ3JhbTwvYj4gLSBBIFdlYgoKYXBwbGljYXRpb24gZGlhZ3JhbSwgaXMgYSBmaWxlIHRoYXQgaGVscHMgeW91IHZpc3VhbGl6ZSBhbmQgY2hhbmdlCgp0aGUgZmxvdyBvZiBhIFdlYiBhcHBsaWNhdGlvbi4KClRoaXMgZmlsZSBhbmQgYXNzb2NpYXRlZCB3aXphcmQgZW5hYmxlcyB5b3UgdG8gY29uc3RydWN0IGEgZGlhZ3JhbSBvZiBhIFdlYgoKYXBwbGljYXRpb24gYnkgY2xpY2tpbmcgb24gb2JqZWN0cyBpbiBhIHBhbGV0dGUuPC9wPgo8cD48Yj5XZWIgRGVwbG95bWVudCBEZXNjcmlwdG9yPC9iPiAtCgpUaGlzIGZpbGUgY29ycmVzcG9uZHMgdG8gdGhlIFdlYkNvbnRlbnQvV0VCLUlORi93ZWIueG1sIGZpbGUsIHdoaWNoIGlzIHVzZWQKCnRvIHNwZWNpZnkgZGVwbG95bWVudCBpbmZvcm1hdGlvbiBmb3IgbW9kdWxlcyBjcmVhdGVkIGluIHRoZSBXZWIgZGV2ZWxvcG1lbnQKCmVudmlyb25tZW50LiBZb3UgY2FuIGVkaXQgdGhpcyBmaWxlIHVzaW5nIHRoZSA8YSBocmVmPSJjY3dlYnhtbC5odG1sIj5XZWIKCmRlcGxveW1lbnQgZGVzY3JpcHRvciBlZGl0b3I8L2E+LCBvciB5b3UgY2FuIHNlbGVjdCA8c3Bhbj48c3BhbiBjbGFzcz0idWljb250cm9sIj5PcGVuCgpXaXRoPC9zcGFuPjwvc3Bhbj4gZnJvbSBpdHMgcG9wLXVwIG1lbnUgdG8gb3BlbiB0aGUgZmlsZSB3aXRoIGEgZGlmZmVyZW50CgplZGl0b3IuIDwvcD4KPHA+VW5kZXJuZWF0aCB0aGUgRGVwbG95bWVudCBEZXNjcmlwdG9yIGFyZSBwbGFjZWhvbGRlcnMgb2JqZWN0Cgp0aGF0IGFyZSByZXNlcnZlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIFNlcnZsZXRzLCBTZXJ2bGV0IE1hcHBpbmdzLCBGaWx0ZXJzLAoKRmlsdGVyIE1hcHBpbmdzLCBSZWZlcmVuY2VzLCBTZWN1cml0eSAoY29uc3RyYWludHMgYW5kIHJvbGVzKSBhbmQgTGlzdGVuZXJzLgoKWW91IGNhbiBjcmVhdGUgaW5zdGFuY2VzIG9mIHRoZXNlIG9iamVjdHMgYnkgcmlnaHQgY2xpY2tpbmcgb24gYW4gb2JqZWN0IGFuZAoKc2VsZWN0aW5nIDxiPk5ldzwvYj4gZnJvbSB0aGUgcG9wLXVwIG1lbnUuPC9wPgo8ZGl2IGNsYXNzPSJwIj48Yj5KYXZhU291cmNlPC9iPiAtIFRoaXMKCm5vZGUgZGlzcGxheXMgSmF2YSByZXNvdXJjZXMgd2l0aGluIHRoZSBwcm9qZWN0LiBJZiB0aGUgcHJvamVjdCBjb250YWlucwoKYSBzaW5nbGUgSmF2YSBzb3VyY2UgZm9sZGVyLCB0aGUgcGFja2FnZXMgYW5kIGNsYXNzZXMgKGZvciBleGFtcGxlLAoKc2VydmxldHMsIGJlYW5zKSB3aXRoaW4gdGhlIHNvdXJjZSBmb2xkZXIgd2lsbCBiZSBzaG93biBkaXJlY3RseSBiZW5lYXRoIHRoZQoKSmF2YVNvdXJjZSBmb2xkZXIgbm9kZS4gSWYgdGhlIHByb2plY3QgY29udGFpbnMgbXVsdGlwbGUgc291cmNlIGZvbGRlcnMsIGVhY2gKCnNvdXJjZSBmb2xkZXIgd2lsbCBhcHBlYXIgYmVuZWF0aCB0aGUgSmF2YVNvdXJjZSBmb2xkZXIgYW5kIGNhbiBiZSBleHBhbmRlZAoKdG8gc2hvdyB0aGVpciBwYWNrYWdlcyBhbmQgY2xhc3Nlcy4gPGRpdiBjbGFzcz0ibm90ZSI+PHNwYW4gY2xhc3M9Im5vdGV0aXRsZSI+Tm90ZTogPC9zcGFuPlRob3VnaCB0aGUgZGVmYXVsdCBuYW1lIGdpdmVuCgp0byB0aGUgZm9sZGVyIGlzIEphdmFTb3VyY2UsIHlvdSBjYW4gY2hhbmdlIHRoZSBuYW1lIGluIHRoZSBQcmVmZXJlbmNlcyBwYWdlCgpieSBzZWxlY3RpbmcgPHNwYW4gY2xhc3M9Im1lbnVjYXNjYWRlIj48c3BhbiBjbGFzcz0idWljb250cm9sIj5XaW5kb3c8L3NwYW4+ICZndDsgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+UHJlZmVyZW5jZXM8L3NwYW4+ICZndDsgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+V2ViIFRvb2xzPC9zcGFuPiAmZ3Q7IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk5ldyBKMkVFIFByb2plY3Q8L3NwYW4+PC9zcGFuPi48L2Rpdj4KPHVsPjxsaT48Yj5MaWJyYXJpZXM8L2I+IC0gVGhpcyBmb2xkZXIgY29udGFpbnMgdGhlIGxpYnJhcnkgSkFSIGZpbGVzIGRlZmluZWQKCmluIHRoZSBwcm9qZWN0IHByb3BlcnRpZXMuIFRocmVlIHR5cGVzIG9mIEpBUiBmaWxlcyBhcmUgc2hvd246IDxvbD48bGk+SkFSIGZpbGVzIGluY2x1ZGVkIGluIHRoZSBwcm9qZWN0J3MgV2ViQ29udGVudC9XRUItSU5GL2xpYiBkaXJlY3Rvcnk8L2xpPgo8bGk+SkFSIGZpbGVzIGV4dGVybmFsIHRvIHRoZSBwcm9qZWN0LCBzdWNoIGFzIGoyZWUuamFyIGFuZCBydC5qYXI8L2xpPgo8bGk+UHJvamVjdCBsaWJyYXJpZXMsIHdoaWNoIGFyZSBzcGVjaWFsIHJlZmVyZW5jZXMgdG8gYSBKYXZhIHByb2plY3Q8L2xpPgo8L29sPgo8cD5XaGVuIGEgV2ViIHByb2plY3QgaXMgZXhwb3J0ZWQsIGEgSkFSIGZpbGUgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkCgpmcm9tIHRoZSBKYXZhIHByb2plY3QgdG8gYmUgdXNlZCBieSB0aGUgV2ViIGFwcGxpY2F0aW9uIGR1cmluZwoKcnVudGltZS4gTGlicmFyaWVzIGFyZSBzaG93biBpbiBjbGFzc3BhdGggb3JkZXIuIEJ5IGRlZmF1bHQsIG9ubHkgdGhlIEpBUgoKZmlsZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcHJvamVjdCBhcmUgc2hvd24uIFlvdSBjYW4gYWxzbyBkaXNwbGF5IGV4dGVybmFsCgpKQVJzIGFuZCBwcm9qZWN0IGxpYnJhcmllcyBieSBzZWxlY3RpbmcgPHNwYW4+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+U2hvdyBSZWZlcmVuY2VkIExpYnJhcmllczwvc3Bhbj48L3NwYW4+IGZyb20KCnRoZSBOYXZpZ2F0b3IgdmlldydzIDxzcGFuPjxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk1lbnU8L3NwYW4+PC9zcGFuPiBidXR0b24gPGltZyBzcmM9Ii4uL2ltYWdlcy9tZW51YnV0dG9uLmdpZiIgYWx0PSJNZW51IGJ1dHRvbiIgLz4uPC9wPgo8L2xpPgo8bGk+PGI+aW1wb3J0ZWRfY2xhc3NlcyBmb2xkZXI8L2I+IC0gVGhpcyBmb2xkZXIgY2FuIGJlIGNyZWF0ZWQgZHVyaW5nIGEgV0FSCgppbXBvcnQsIGFuZCBjb250YWlucyBjbGFzcyBmaWxlcyB0aGF0IGRvIG5vdCBoYXZlIGFjY29tcGFueWluZyBzb3VyY2UuICBUaGUgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+aW1wb3J0ZWRfY2xhc3Nlczwvc3Bhbj4gZm9sZGVyCgppcyBhIEphdmEgY2xhc3NlcwoKZm9sZGVyOyBKYXZhIGNsYXNzZXMgZm9sZGVycyBjYW4gYWxzbyBiZSBjcmVhdGVkIHVzaW5nIHRoZQoKV2ViIHByb2plY3QgPHNwYW4+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+SmF2YSBCdWlsZCBQYXRoPC9zcGFuPjwvc3Bhbj4gcHJvcGVydGllcyBwYWdlLjxwPjxpbWcgc3JjPSIuLi9pbWFnZXMvbndpbi5naWYiIGFsdD0iRm9yIFdpbmRvd3MiIC8+IFlvdSBjYW4gZHJhZwoKYW5kIGRyb3AgY2xhc3MgZmlsZXMgZnJvbSB0aGUgV2luZG93cyBFeHBsb3JlciBvciBkZXNrdG9wIHRvIHRoZSA8c3BhbiBjbGFzcz0idWljb250cm9sIj5pbXBvcnRlZF9jbGFzc2VzPC9zcGFuPiBmb2xkZXIKCmluIHRoZSBOYXZpZ2F0b3Igdmlldy48L3A+CjwvbGk+CjwvdWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwIj48Yj5XZWIgY29udGVudCBmb2xkZXI8L2I+IC0gVGhpcyBmb2xkZXIgY29udGFpbnMgaXRlbXMgdG8gYmUgcHVibGlzaGVkCgp0byB0aGUgc2VydmVyLiBCeSBkZWZhdWx0LCB0aGlzIGZvbGRlciB3aWxsIGJlIG5hbWVkIDxiPldlYkNvbnRlbnQ8L2I+IGZvcgoKbmV3bHkgY3JlYXRlZCBzdGF0aWMgYW5kIGR5bmFtaWMgV2ViIHByb2plY3RzLiA8ZGl2IGNsYXNzPSJub3RlIj48c3BhbiBjbGFzcz0ibm90ZXRpdGxlIj5Ob3RlOiA8L3NwYW4+WW91IGNhbiBjaGFuZ2UgdGhlIG5hbWUKCmluIHRoZSBXZWIgcGFnZSBvZiB0aGUgcHJvamVjdCdzIFByb3BlcnRpZXMgZGlhbG9nLiBJbiBhIGR5bmFtaWMgV2ViIHByb2plY3QsCgpjaGFuZ2luZyB0aGUgZm9sZGVyIG5hbWUgd2lsbCB1cGRhdGUgdGhlIEphdmEgYnVpbGQgb3V0cHV0IGRpcmVjdG9yeS4gWW91IGNhbiBjaGFuZ2UKCnRoZSBwcmVmZXJlbmNlIGZvciB0aGUgZGVmYXVsdCBmb2xkZXIgbmFtZSB0byBiZSBhcHBsaWVkIHdoZW4gY3JlYXRpbmcgbmV3CgpXZWIgcHJvamVjdHMgYnkgc2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJtZW51Y2FzY2FkZSI+PHNwYW4gY2xhc3M9InVpY29udHJvbCI+V2luZG93PC9zcGFuPiAmZ3Q7IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPlByZWZlcmVuY2VzPC9zcGFuPiAmZ3Q7IDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPldlYiBUb29sczwvc3Bhbj4gJmd0OyA8c3BhbiBjbGFzcz0idWljb250cm9sIj5OZXcgSjJFRSBQcm9qZWN0PC9zcGFuPjwvc3Bhbj4uIDwvZGl2Pgo8dWw+PGxpPjxiPk1FVEEtSU5GPC9iPiAtIFRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSA8c3BhbiBjbGFzcz0iZmlsZXBhdGgiPk1BTklGRVNULk1GPC9zcGFuPiBmaWxlLAoKd2hpY2ggaXMgdXNlZCB0byBtYXAgY2xhc3MgcGF0aHMgZm9yIGRlcGVuZGVudCBKQVIgZmlsZXMgdGhhdCBleGlzdCBpbiBvdGhlcgoKcHJvamVjdHMgaW4gdGhlIHNhbWUgRW50ZXJwcmlzZSBBcHBsaWNhdGlvbiBwcm9qZWN0LiBBbiBlbnRyeSBpbiB0aGlzIGZpbGUKCndpbGwgdXBkYXRlIHRoZSBydW4tdGltZSBwcm9qZWN0IGNsYXNzIHBhdGggYW5kIEphdmEgYnVpbGQgc2V0dGluZ3MgdG8gaW5jbHVkZSB0aGUgcmVmZXJlbmNlZAoKSkFSIGZpbGVzLjwvbGk+CjwvdWw+Cjx1bD48bGk+PGI+VGhlbWU8L2I+IC0gVGhlIHN1Z2dlc3RlZCBkaXJlY3RvcnkgZm9yIGNhc2NhZGluZyBzdHlsZSBzaGVldHMgYW5kCgpvdGhlciBzdHlsZS1yZWxhdGVkIG9iamVjdHMuPC9saT4KPGxpPjxiPldFQi1JTkY8L2I+IC0gVGhlIGRpcmVjdG9yeSB3aGVyZSBzdXBwb3J0aW5nIFdlYiByZXNvdXJjZXMgZm9yIGEgV2ViCgphcHBsaWNhdGlvbiBhcmUga2VwdCAoZm9yIGV4YW1wbGU6IC54bWkgZmlsZXMsIC54bWwgZmlsZXMsIGFuZCB3ZWIueG1sLikgTm90ZQoKdGhhdCBkb3VibGUtY2xpY2tpbmcgb24gdGhlIHdlYi54bWwgZmlsZSBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIGRvdWJsZS1jbGlja2luZwoKb24gdGhlIERlcGxveW1lbnQgRGVzY3JpcHRvcjogaXQgb3BlbnMgdGhlIFdlYiBEZXBsb3ltZW50IERlc2NyaXB0b3IgZWRpdG9yLjwvbGk+CjwvdWw+CiA8L2Rpdj4KIDwvZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+