b64:PHA+VGVybXMgb2YgVXNlPC9wPgo8cD5USElTIElTIEFOIEFHUkVFTUVOVCBCRVRXRUVOIFlPVSBPUiBUSEUgRU5USVRZIFRIQVQgWU9VIFJFUFJFU0VOVCAoaGVyZWluYWZ0ZXIgIllvdSIgb3IgIllvdXIiKSBBTkQgSW5mbzM2MCBTb2x1dGlvbnMgTGltaXRlZCAoaGVyZWluYWZ0ZXIgIklORk8zNjAiKS4gR09WRVJOSU5HIFlPVVIgVVNFIE9GIFRIRSBJTkZPQk1TIE1BTkFHRU1FTlQgQU5EIEFVVE9NQVRJT04gU09GVFdBUkU8L3A+CjxwPkJ5IHVzaW5nIElORk9CTVMgb3Igc2lnbmluZyB1cCBmb3IgYW4gSU5GT0JNUyBhY2NvdW50LCB5b3UgYXJlIGFncmVlaW5nIHRvIGJlIGJvdW5kIGJ5IHRoZSBmb2xsb3dpbmcgdGVybXMgYW5kIGNvbmRpdGlvbnMuIFRoaXMgaXMgYSBsZWdhbCBhZ3JlZW1lbnQuIElORk9CTVMgaXMgYW4gRVJQIHNlcnZpY2Ugb2ZmZXJlZCB0aHJvdWdoIHRoZSBVUkwgaHR0cHM6Ly9pbmZvYm1zLmNvbSh3ZSdsbCByZWZlciB0byBpdCBhcyB0aGUgIldlYnNpdGUiKS48L3A+CjxwPiZuYnNwOzwvcD4KPHA+QUNDT1VOVDwvcD4KPG9sPgo8bGk+PHN0cm9uZz4gRWxpZ2liaWxpdHkgYW5kIGFjY2VwdGFuY2Ugb2YgdGVybXM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5JbiBvcmRlciB0byB1c2UgSU5GT0JNUywgeW91IG11c3Q6PC9wPgo8b2w+CjxsaT5CZSBhdCBsZWFzdCBlaWdodGVlbiAoMTgpIHllYXJzIG9sZCBhbmQgYWJsZSB0byBlbnRlciBpbnRvIGNvbnRyYWN0czs8L2xpPgo8bGk+UmVnaXN0ZXIgZm9yIGFuIGFjY291bnQ8L2xpPgo8bGk+UHJvdmlkZSB0cnVlLCBjb21wbGV0ZSwgYW5kIHVwLXRvLWRhdGUgY29udGFjdCBpbmZvcm1hdGlvbi48L2xpPgo8L29sPgo8cD5CeSB1c2luZyBJTkZPQk1TLCB5b3UgcmVwcmVzZW50IGFuZCB3YXJyYW50IHRoYXQgeW91IG1lZXQgYWxsIHRoZSByZXF1aXJlbWVudHMgbGlzdGVkIGFib3ZlIGFuZCB0aGF0IHlvdSB3b24ndCB1c2UgSU5GT0JNUyBpbiBhIHdheSB0aGF0IHZpb2xhdGVzIGFueSBsYXdzIG9yIHJlZ3VsYXRpb25zLiBJTkZPMzYwIG1heSByZWZ1c2Ugc2VydmljZSwgY2xvc2UgYWNjb3VudHMgb2YgYW55IHVzZXJzLCBhbmQgY2hhbmdlIGVsaWdpYmlsaXR5IHJlcXVpcmVtZW50cyBhdCBhbnkgdGltZS48YnIgLz48YnIgLz48L3A+CjxvbCBzdGFydD0iMiI+CjxsaT48c3Ryb25nPiBUZXJtPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+VGhlIHRlcm0gYmVnaW5zIHdoZW4geW91IHNpZ24gdXAgZm9yIElORk9CTVMgYW5kIGNvbnRpbnVlcyBhcyBsb25nIGFzIHlvdSB1c2UgdGhlIHNlcnZpY2UuIENsaWNraW5nIHRoZSBidXR0b24gYW5kIGVudGVyaW5nIHlvdXIgYWNjb3VudCBkZXRhaWxzIG1lYW5zIHRoYXQgeW91J3ZlIG9mZmljaWFsbHkgInNpZ25lZCIgdGhlIHRlcm1zLiBJZiB5b3Ugc2lnbiB1cCBmb3IgSU5GT0JNUyBvbiBiZWhhbGYgb2YgYSBjb21wYW55IG9yIG90aGVyIGVudGl0eSwgeW91IHJlcHJlc2VudCBhbmQgd2FycmFudCB0aGF0IHlvdSBoYXZlIHRoZSBhdXRob3JpdHkgdG8gYWNjZXB0IHRoZXNlIFRlcm1zIG9uIHRoZWlyIGJlaGFsZi48L3A+CjxwPiZuYnNwOzwvcD4KPG9sIHN0YXJ0PSIzIj4KPGxpPjxzdHJvbmc+IENsb3NpbmcgeW91ciBhY2NvdW50PC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+WW91IG9yIElORk8zNjAgbWF5IHRlcm1pbmF0ZSB0aGlzIEFncmVlbWVudCBhdCBhbnkgdGltZSBhbmQgZm9yIGFueSByZWFzb24gYnkgZ2l2aW5nIE5vdGljZSB0byB0aGUgb3RoZXIgcGFydHkuIFdlIG1heSBzdXNwZW5kIG91ciBzZXJ2aWNlIHRvIHlvdSBhdCBhbnkgdGltZSwgd2l0aCBvciB3aXRob3V0IGNhdXNlLiBJZiB3ZSB0ZXJtaW5hdGUgeW91ciBhY2NvdW50IHdpdGhvdXQgY2F1c2UsIHdlJ2xsIHJlZnVuZCBhIHByb3JhdGVkIHBvcnRpb24gb2YgeW91ciBtb250aGx5IHByZXBheW1lbnQuIElmIHlvdSB0ZXJtaW5hdGUgeW91ciBhY2NvdW50IGR1ZSB0byBJTkZPMzYwJ3MgZmFpbHVyZSBvZiBvYmxpZ2F0aW9ucyB1bmRlciB0aGUgdGVybXMsIHdlJ2xsIHJlZnVuZCBhIHByb3JhdGVkIHBvcnRpb24gb2YgeW91ciBtb250aGx5IHByZXBheW1lbnQuIFdlIHdvbid0IHJlZnVuZCBvciByZWltYnVyc2UgeW91IGlmIHRoZXJlJ3MgY2F1c2UsIGxpa2UgYSB2aW9sYXRpb24gb2YgdGhlc2UgVGVybXMgb3Igb3VyIEFjY2VwdGFibGUgVXNlIFBvbGljeS4gT25jZSB0ZXJtaW5hdGVkLCB3ZSBtYXkgcGVybWFuZW50bHkgZGVsZXRlIHlvdXIgYWNjb3VudCBhbmQgYWxsIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBpdCwgaW5jbHVkaW5nIHVzZXIgZGF0YSBhbmQgY29tcGFueSByZWNvcmRzIGZyb20gb3VyIHdlYnNpdGUuIElmIHlvdSBkb24ndCBsb2cgaW4gdG8geW91ciBhY2NvdW50IGZvciAxMiBvciBtb3JlIG1vbnRocywgd2UgbWF5IHRyZWF0IHlvdXIgYWNjb3VudCBhcyAiaW5hY3RpdmUiIGFuZCBwZXJtYW5lbnRseSBkZWxldGUgdGhlIGFjY291bnQgYW5kIGFsbCB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggaXQuPC9wPgo8cD4mbmJzcDs8L3A+CjxvbCBzdGFydD0iNCI+CjxsaT48c3Ryb25nPiBDaGFuZ2VzPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+V2UgbWF5IGNoYW5nZSBhbnkgb2YgdGhlIHRlcm1zIGJ5IHBvc3RpbmcgcmV2aXNlZCB0ZXJtcyBvZiB1c2Ugb24gb3VyIHdlYnNpdGUgYW5kL29yIGJ5IHNlbmRpbmcgYW4gZW1haWwgdG8gdGhlIGxhc3QgZW1haWwgYWRkcmVzcyB5b3UgZ2F2ZSB1cy4gVW5sZXNzIHlvdSB0ZXJtaW5hdGUgeW91ciBhY2NvdW50IHdpdGhpbiB0ZW4gKDEwKSBkYXlzLCB0aGUgbmV3IHRlcm1zIHdpbGwgYmUgZWZmZWN0aXZlIGltbWVkaWF0ZWx5IGFuZCBhcHBseSB0byBhbnkgY29udGludWVkIG9yIG5ldyB1c2Ugb2YgSU5GT0JNUy4gV2UgbWF5IGNoYW5nZSB0aGUgd2Vic2l0ZSwgdGhlIHNlcnZpY2UsIG9yIGFueSBmZWF0dXJlcyBvZiB0aGUgc2VydmljZSBhdCBhbnkgdGltZS48L3A+CjxwPiZuYnNwOzwvcD4KPG9sIHN0YXJ0PSI1Ij4KPGxpPjxzdHJvbmc+IEFjY291bnQgYW5kIFBhc3N3b3JkPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+WW91IGFyZSByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB5b3VyIGFjY291bnQgbmFtZSBhbmQgcGFzc3dvcmQgY29uZmlkZW50aWFsLiBZb3UgYXJlIGFsc28gcmVzcG9uc2libGUgZm9yIGFueSBhY2NvdW50IHRoYXQgeW91IGhhdmUgYWNjZXNzIHRvLCB3aGV0aGVyIG9yIG5vdCB5b3UgYXV0aG9yaXplZCB0aGUgdXNlLiBZb3UnbGwgaW1tZWRpYXRlbHkgbm90aWZ5IHVzIG9mIGFueSB1bmF1dGhvcml6ZWQgdXNlIG9mIHlvdXIgYWNjb3VudHMuIFdlJ3JlIG5vdCByZXNwb25zaWJsZSBmb3IgYW55IGxvc3NlcyBkdWUgdG8gc3RvbGVuIG9yIGhhY2tlZCBwYXNzd29yZHMuIFdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIHlvdXIgY3VycmVudCBwYXNzd29yZCwgYW5kIGZvciBzZWN1cml0eSByZWFzb25zLCB3ZSBtYXkgb25seSByZXNldCB5b3VyIHBhc3N3b3JkLjwvcD4KPHA+Jm5ic3A7PC9wPgo8b2wgc3RhcnQ9IjYiPgo8bGk+PHN0cm9uZz4gQWNjb3VudCBEaXNwdXRlczwvc3Ryb25nPjwvbGk+Cjwvb2w+CjxwPldlIGRvbid0IGtub3cgdGhlIGlubmVyIHdvcmtpbmdzIG9mIHlvdXIgb3JnYW5pemF0aW9uIG9yIHRoZSBuYXR1cmUgb2YgeW91ciBwZXJzb25hbCByZWxhdGlvbnNoaXBzLCBhbmQgd2UgZG9uJ3QgYXJiaXRyYXRlIGRpc3B1dGVzIG92ZXIgd2hvIG93bnMgYW4gYWNjb3VudC4gWW91IHdvbid0IHJlcXVlc3QgYWNjZXNzIHRvIG9yIGluZm9ybWF0aW9uIGFib3V0IGFuIGFjY291bnQgdGhhdCdzIG5vdCB5b3VycywgYW5kIHlvdSdsbCByZXNvbHZlIGFueSBhY2NvdW50LXJlbGF0ZWQgZGlzcHV0ZXMgZGlyZWN0bHkgd2l0aCB0aGUgb3RoZXIgcGFydHkuIFdlIGRlY2lkZSB3aG8gb3ducyBhbiBhY2NvdW50IGJhc2VkIG9uIHRoZSBjb250YWN0IGluZm9ybWF0aW9uIGxpc3RlZCBmb3IgdGhhdCBhY2NvdW50LjwvcD4KPHA+Jm5ic3A7PC9wPgo8cD5QQVlNRU5UPC9wPgo8b2wgc3RhcnQ9IjciPgo8bGk+PHN0cm9uZz4gUGxhbnM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5PdXIgY2hhcmdlcyBmb3IgcmVjdXJyaW5nIHN1YnNjcmlwdGlvbiBwbGFucyBhcmUgcG9zdGVkIG9uIG91ciB3ZWJzaXRlIGFuZCBtYXkgYmUgY2hhbmdlZCBmcm9tIHRpbWUgdG8gdGltZS4gSWYgYW55IHBhcnQgb2YgYSBzdWJzY3JpcHRpb24gcGVyaW9kIGlzIGluY2x1ZGVkIGluIHRoZSB0ZXJtLCB0aGVuIHBheW1lbnQgaXMgZHVlIGZvciB0aGUgZW50aXJlIHBlcmlvZC4gUGF5bWVudHMgYXJlIGR1ZSBmb3IgYW55IHBlcmlvZCBvbiB0aGUgc2FtZSBvciBjbG9zZXN0IGRhdGUgdG8gdGhlIGRheSB5b3UgbWFkZSB5b3VyIGZpcnN0IHBheW1lbnQgKHRoZSAiUGF5IERhdGUiKS48L3A+CjxwPiZuYnNwOzwvcD4KPG9sIHN0YXJ0PSI4Ij4KPGxpPjxzdHJvbmc+IFBheW1lbnQgaW5mb3JtYXRpb248L3N0cm9uZz48L2xpPgo8L29sPgo8cD5Zb3UgYWdyZWUgdG8gc3VwcGx5IGFwcHJvcHJpYXRlIHBheW1lbnQgZm9yIHRoZSBJTkZPQk1TIHNlcnZpY2UgaW4gYWR2YW5jZSBvZiB0aGUgdGltZSBwZXJpb2QgZHVyaW5nIHdoaWNoIHN1Y2ggc2VydmljZXMgYXJlIHByb3ZpZGVkLiBZb3UgYWdyZWUgdGhhdCB1bnRpbCBhbmQgdW5sZXNzIHlvdSBub3RpZnkgdXMgb2YgeW91ciBkZXNpcmUgdG8gY2FuY2VsIHlvdXIgc3Vic2NyaXB0aW9uLCB5b3Ugd2lsbCBiZSBiaWxsZWQgb24gYSByZWN1cnJpbmcgYmFzaXMuIFRoaXMgaW5jbHVkZXMgd2hlbiBhY2NvdW50cyBhcmUgc3VzcGVuZGVkLiBXaGVuIGFuIGFjY291bnQncyBpbnZvaWNlcyBhcmUgcGFpZCBvdXRzaWRlIG9mIHRoZSAxMC1kYXkgZ3JhY2UgcGVyaW9kLCBpbnZvaWNlcyB3aWxsIG5vdCBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gSG93ZXZlciwgYWZ0ZXIgeW91IG5vdGlmeSB1cyBvZiB5b3VyIGludGVudCB0byByZXN1bWUgc2VydmljZSwgaW52b2ljZXMgd2lsbCBiZSBtYW51YWxseSBnZW5lcmF0ZWQgYW5kIHBheW1lbnQgZXhwZWN0ZWQgZm9yIHRoZSB0aW1lIHRoZSBhY2NvdW50IHdhcyBzdXNwZW5kZWQuPC9wPgo8cD4mbmJzcDs8L3A+CjxvbCBzdGFydD0iOSI+CjxsaT48c3Ryb25nPiBQYXltZW50IG9mIEJpbGxzPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+WW91IHdpbGwgcGF5IHRoZSBmZWVzIGFwcGxpY2FibGUgdG8geW91ciBzdWJzY3JpcHRpb24gdG8gdGhlIElORk9CTVMgU2VydmljZSBhbmQvb3IgUE9TIFNlcnZpY2VzICgiU3Vic2NyaXB0aW9uIEZlZXMiKSBhbmQgYW55IG90aGVyIGFwcGxpY2FibGUgZmVlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBmZWVzIHJlbGF0aW5nIHRvIHRoZSBwcm9jZXNzaW5nIG9mIHRyYW5zYWN0aW9ucyB1bmRlciB5b3VyIGFjY291bnQgKCJUcmFuc2FjdGlvbiBGZWVzIikgYW5kIGFueSBmZWVzIHJlbGF0aW5nIHRvIHlvdXIgcHVyY2hhc2Ugb2YgYW55IHByb2R1Y3RzIG9yIHNlcnZpY2VzLCBzdWNoIGFzIFBPUyBlcXVpcG1lbnQsIHNoaXBwaW5nLCBvciB0aGlyZC1wYXJ0eSBzZXJ2aWNlcyAoIkFkZGl0aW9uYWwgRmVlcyIpLiBUb2dldGhlciwgdGhlIHN1YnNjcmlwdGlvbiBmZWVzLCB0cmFuc2FjdGlvbiBmZWVzLCBhbmQgYWRkaXRpb25hbCBmZWVzIGFyZSByZWZlcnJlZCB0byBhcyB0aGUgImZlZXMuIjwvcD4KPHA+SXQgaXMgeW91ciByZXNwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhhdCB5b3VyIHBheW1lbnQgaW5mb3JtYXRpb24gaXMgdXAgdG8gZGF0ZSBhbmQgdGhhdCBhbGwgaW52b2ljZXMgYXJlIHBhaWQgb24gdGltZS4gWW91IGFncmVlIHRoYXQgdW50aWwgYW5kIHVubGVzcyB5b3Ugbm90aWZ5IHVzIG9mIHlvdXIgZGVzaXJlIHRvIGNhbmNlbCB5b3VyIHN1YnNjcmlwdGlvbiwgeW91IHdpbGwgYmUgYmlsbGVkIG9uIGEgcmVjdXJyaW5nIGJhc2lzLCB1bmxlc3Mgb3RoZXJ3aXNlIHN0YXRlZCBpbiB3cml0aW5nIGJ5IHVzLiBXZSBwcm92aWRlIGEgMTAtZGF5IGdyYWNlIHBlcmlvZCBmcm9tIHRoZSBkdWUgZGF0ZSBvZiBhbiBpbnZvaWNlIHdpdGhpbiB3aGljaCB0aGUgaW52b2ljZSBtdXN0IGJlIHBhaWQgZm9yLiBJZiBwYXltZW50IGlzbid0IHJlY2VpdmVkIGZvciB1cCB0byAxMCBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZSwgeW91ciBzZXJ2aWNlIHdpbGwgYmUgc3VzcGVuZGVkLiBBZGRpdGlvbmFsbHksIGFueSBpbnZvaWNlIHRoYXQgaXMgb3V0c3RhbmRpbmcgZm9yIDE1IGRheXMgYW5kIG5vdCBwYWlkIHdpbGwgcmVzdWx0IGluIGEgbGF0ZSBmZWUgb2YgMTUlIG9mIHRoZSB0b3RhbCBhbW91bnQgZHVlIG9uIHRoZSBpbnZvaWNlLCBhbmQgdGhlIGFjY291bnQgd2lsbCByZW1haW4gc3VzcGVuZGVkIHVudGlsIHRoZSBhY2NvdW50IGJhbGFuY2UgaGFzIGJlZW4gcGFpZCBpbiBmdWxsLiBUaGUgMTUlIGxhdGUgZmVlIGlzIGFwcGxpZWQgaW4gYWRkaXRpb24gdG8gd2hhdGV2ZXIgZWxzZSBpcyBvd2VkLCBhbmQgYWNjZXNzIHRvIHRoZSBhY2NvdW50IHdpbGwgbm90IGJlIHJlc3RvcmVkIHVudGlsIHBheW1lbnQgaGFzIGJlZW4gcmVjZWl2ZWQgaW4gZnVsbC48L3A+CjxwPklmIHlvdXIgc2VydmljZSByZW1haW5zIHN1c3BlbmRlZCBmb3IgdXAgdG8gMzAgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUgZm9yIHlvdXIgbGFzdCB1bnBhaWQgaW52b2ljZSwgeW91ciBzZXJ2aWNlIG1heSBiZSB0ZXJtaW5hdGVkLiBPbmNlIGFuIGFjY291bnQgaGFzIGJlZW4gdGVybWluYXRlZCwgaXQgaXMgcGVybWFuZW50bHkgZGVsZXRlZCBmcm9tIG91ciBzZXJ2ZXJzIGFuZCBjYW4gbm8gbG9uZ2VyIGJlIHJlc3RvcmVkLjwvcD4KPHA+QWxsIGZlZXMgYXJlIGV4Y2x1c2l2ZSBvZiBWQVQgYW5kIG90aGVyIGFwcGxpY2FibGUgdGF4IGNoYXJnZXMgY3VycmVudGx5IGluIGZvcmNlIG9yIGVuYWN0ZWQgaW4gZnV0dXJlLjwvcD4KPHA+Jm5ic3A7PC9wPgo8b2wgc3RhcnQ9IjEwIj4KPGxpPjxzdHJvbmc+IE1vZGlmaWNhdGlvbnMgdG8gdGhlIHNlcnZpY2UgYW5kIHByaWNlczwvc3Ryb25nPjwvbGk+CjxsaT5XZSBtYXkgY2hhbmdlIG91ciBmZWVzIGF0IGFueSB0aW1lIGJ5IHBvc3RpbmcgYSBuZXcgcHJpY2luZyBzdHJ1Y3R1cmUgdG8gb3VyIHdlYnNpdGUgYW5kL29yIHNlbmRpbmcgeW91IGEgbm90aWZpY2F0aW9uIGJ5IGVtYWlsLjwvbGk+CjxsaT5QcmljZXMgZm9yIHVzaW5nIHRoZSBJTkZPQk1TIHNlcnZpY2UgYXJlIHN1YmplY3QgdG8gY2hhbmdlIHVwb24gMzAgZGF5cycgbm90aWNlIGZyb20gSW5mbzM2MCBTb2x1dGlvbnMuIFN1Y2ggbm90aWNlIG1heSBiZSBwcm92aWRlZCBhdCBhbnkgdGltZSBieSBwb3N0aW5nIHRoZSBjaGFuZ2VzIHRvIG91ciB3ZWJzaXRlIG9yIHRoZSBhZG1pbmlzdHJhdGlvbiBtZW51IG9mIHlvdXIgSU5GT0JNUyBkYXNoYm9hcmQgdmlhIGFuIGFubm91bmNlbWVudDwvbGk+CjxsaT5XZSByZXNlcnZlIHRoZSByaWdodCBhdCBhbnkgdGltZSwgYW5kIGZyb20gdGltZSB0byB0aW1lLCB0byBtb2RpZnkgb3IgZGlzY29udGludWUgdGhlIFNlcnZpY2UgKG9yIGFueSBwYXJ0IHRoZXJlb2YpIHdpdGggb3Igd2l0aG91dCBub3RpY2UuPC9saT4KPGxpPldlIHNoYWxsIG5vdCBiZSBsaWFibGUgdG8geW91IG9yIHRvIGFueSB0aGlyZCBwYXJ0eSBmb3IgYW55IG1vZGlmaWNhdGlvbiwgcHJpY2UgY2hhbmdlLCBzdXNwZW5zaW9uLCBvciBkaXNjb250aW51YW5jZSBvZiB0aGUgc2VydmljZS48L2xpPgo8bGk+PHN0cm9uZz4gUmVmdW5kPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+V2UnbGwgZ2l2ZSB5b3UgYSByZWZ1bmQgZm9yIGEgcHJlcGFpZCBtb250aCAoc3Vic2NyaXB0aW9uIG9ubHkpIGlmIHdlIHN0b3AgcHJvdmlkaW5nIG91ciBzZXJ2aWNlcyB0byB5b3UgZm9yIGEgcmVhc29uIHRoYXQncyBub3QgbGFpZCBvdXQgaW4gdGhlc2UgdGVybXMgb3Igb3VyIGFjY2VwdGFibGUgdXNlIHBvbGljeS4gWW91IHdvbid0IGJlIGVudGl0bGVkIHRvIGEgcmVmdW5kIGZyb20gdXMgdW5kZXIgYW55IG90aGVyIGNpcmN1bXN0YW5jZXMuPC9wPgo8cD48YnIgLz48c3Ryb25nPlJJR0hUUzwvc3Ryb25nPjwvcD4KPG9sIHN0YXJ0PSIxMiI+CjxsaT48c3Ryb25nPiBQcm9wcmlldGFyeSBSaWdodHMgT3duZWQgYnkgVXM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5Zb3Ugd2lsbCByZXNwZWN0IG91ciBwcm9wcmlldGFyeSByaWdodHMgaW4gdGhlIHdlYnNpdGUgYW5kIHRoZSBzb2Z0d2FyZSB1c2VkIHRvIHByb3ZpZGUgSU5GT0JNUyBzZXJ2aWNlIChwcm9wcmlldGFyeSByaWdodHMgaW5jbHVkZSBwYXRlbnRzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCB0cmFkZSBzZWNyZXRzLCBhbmQgY29weXJpZ2h0cykuPC9wPgo8cD4mbmJzcDs8L3A+CjxvbCBzdGFydD0iMTMiPgo8bGk+PHN0cm9uZz4gUmlnaHRzIE92ZXIgU2VydmljZTwvc3Ryb25nPjwvbGk+CjxsaT5XZSByZXNlcnZlIHRoZSByaWdodCB0byBtb2RpZnkgb3IgdGVybWluYXRlIHRoZSBTZXJ2aWNlIGZvciBhbnkgcmVhc29uLCB3aXRob3V0IG5vdGljZSBhdCBhbnkgdGltZS48L2xpPgo8bGk+V2UgcmVzZXJ2ZSB0aGUgcmlnaHQgdG8gcmVmdXNlIHNlcnZpY2UgdG8gYW55b25lIGZvciBhbnkgcmVhc29uIGF0IGFueSB0aW1lPC9saT4KPGxpPlZlcmJhbCBvciB3cml0dGVuIGFidXNlIG9mIGFueSBraW5kIChpbmNsdWRpbmcgdGhyZWF0cyBvZiBhYnVzZSBvciByZXRyaWJ1dGlvbikgb2YgYW55IElORk8zNjAgY3VzdG9tZXIsIElORk8zNjAgZW1wbG95ZWUsIG1lbWJlciwgb3Igb2ZmaWNlciB3aWxsIHJlc3VsdCBpbiBpbW1lZGlhdGUgYWNjb3VudCB0ZXJtaW5hdGlvbi48L2xpPgo8bGk+V2UgcmVzZXJ2ZSB0aGUgcmlnaHQgdG8gcHJvdmlkZSBvdXIgc2VydmljZXMgdG8geW91ciBjb21wZXRpdG9ycyBhbmQgbWFrZSBubyBwcm9taXNlIG9mIGV4Y2x1c2l2aXR5IGluIGFueSBwYXJ0aWN1bGFyIG1hcmtldCBzZWdtZW50LiBZb3UgZnVydGhlciBhY2tub3dsZWRnZSBhbmQgYWdyZWUgdGhhdCBJTkZPMzYwIGVtcGxveWVlcyBhbmQgY29udHJhY3RvcnMgbWF5IGFsc28gYmUgSU5GTzM2MCBjdXN0b21lcnMvbWVyY2hhbnRzIGFuZCB0aGF0IHRoZXkgbWF5IGNvbXBldGUgd2l0aCB5b3UsIGFsdGhvdWdoIHRoZXkgbWF5IG5vdCB1c2UgeW91ciBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gaW4gZG9pbmcgc28uPC9saT4KPGxpPkluIHRoZSBldmVudCBvZiBhIGRpc3B1dGUgcmVnYXJkaW5nIGFjY291bnQgb3duZXJzaGlwLCB3ZSByZXNlcnZlIHRoZSByaWdodCB0byByZXF1ZXN0IGRvY3VtZW50YXRpb24gdG8gZGV0ZXJtaW5lIG9yIGNvbmZpcm0gYWNjb3VudCBvd25lcnNoaXAuIERvY3VtZW50YXRpb24gbWF5IGluY2x1ZGUsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgYSBzY2FubmVkIGNvcHkgb2YgeW91ciBidXNpbmVzcyBsaWNlbnNlLCBnb3Zlcm5tZW50LWlzc3VlZCBwaG90byBJRCwgdGhlIGxhc3QgZm91ciBkaWdpdHMgb2YgdGhlIGNyZWRpdCBjYXJkIG9uIGZpbGUsIGV0Yy48L2xpPgo8bGk+PHN0cm9uZz5XZSBjYW4gbW9kaWZ5LCBjYW5jZWwsIG9yIHJlZnVzZSB0aGUgc2VydmljZSBhdCBhbnkgdGltZS4gSW4gdGhlIGV2ZW50IG9mIGFuIG93bmVyc2hpcCBkaXNwdXRlIG92ZXIgYW4gSU5GT0JNUyBhY2NvdW50LCB3ZSBjYW4gZnJlZXplIHRoZSBhY2NvdW50IG9yIHRyYW5zZmVyIGl0IHRvIHRoZSByaWdodGZ1bCBvd25lci48L3N0cm9uZz48L2xpPgo8L29sPgo8cD4mbmJzcDs8L3A+CjxwPkxJQUJJTElUWTwvcD4KPG9sIHN0YXJ0PSIxNCI+CjxsaT48c3Ryb25nPiBEaXNjbGFpbWVyIG9mIFdhcnJhbnRpZXM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD48c3Ryb25nPlRvIHRoZSBtYXhpbXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3LCB3ZSBwcm92aWRlIHRoZSBtYXRlcmlhbCBvbiB0aGUgd2Vic2l0ZSBhbmQgdGhlIHNlcnZpY2UgYXMgaXMuIFRoYXQgbWVhbnMgd2UgZG9uJ3QgcHJvdmlkZSB3YXJyYW50aWVzIG9mIGFueSBraW5kLCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4gU2luY2UgcGVvcGxlIHVzZSBJTkZPQk1TIGZvciBhIHZhcmlldHkgb2YgcmVhc29ucywgd2UgY2FuJ3QgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBtZWV0IHlvdXIgc3BlY2lmaWMgbmVlZHMuPC9zdHJvbmc+PC9wPgo8cD4mbmJzcDs8L3A+CjxvbCBzdGFydD0iMTUiPgo8bGk+PHN0cm9uZz4gTGltaXRhdGlvbnMgb24gTGlhYmlsaXR5PC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+PHN0cm9uZz5UbyB0aGUgbWF4aW11bSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdywgeW91IGFzc3VtZSBmdWxsIHJlc3BvbnNpYmlsaXR5IGZvciBhbnkgbG9zcyB0aGF0IHJlc3VsdHMgZnJvbSB5b3VyIHVzZSBvZiB0aGUgV2Vic2l0ZSBhbmQgdGhlIFNlcnZpY2VzLCBpbmNsdWRpbmcgYW55IGRvd25sb2FkcyBmcm9tIHRoZSBXZWJzaXRlLiBXZSBhbmQgb3VyIHRlYW0gd29uJ3QgYmUgbGlhYmxlIGZvciBhbnkgaW5kaXJlY3QsIHB1bml0aXZlLCBzcGVjaWFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgdW5kZXIgYW55IGNpcmN1bXN0YW5jZXMsIGV2ZW4gaWYgdGhleSdyZSBiYXNlZCBvbiBuZWdsaWdlbmNlIG9yIHdlJ3ZlIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhvc2UgZGFtYWdlcy4gT3VyIHRvdGFsIGxpYWJpbGl0eSBmb3IgYWxsIGNsYWltcyBtYWRlIGFib3V0IHRoZSBTZXJ2aWNlIGluIGFueSBtb250aCB3aWxsIGJlIG5vIG1vcmUgdGhhbiB3aGF0IHlvdSBwYWlkIHVzIGZvciB0aGUgU2VydmljZSB0aGUgbW9udGggYmVmb3JlLjwvc3Ryb25nPjwvcD4KPHA+Jm5ic3A7PC9wPgo8b2wgc3RhcnQ9IjE2Ij4KPGxpPjxzdHJvbmc+IEluZGVtbml0eTwvc3Ryb25nPjwvbGk+Cjwvb2w+CjxwPllvdSBhZ3JlZSB0byBpbmRlbW5pZnkgYW5kIGhvbGQgdXMgYW5kIG91ciB0ZWFtIGhhcm1sZXNzIGZyb20gYW55IGxvc3NlcywgaW5jbHVkaW5nIGF0dG9ybmV5IGZlZXMgdGhhdCByZXN1bHQgZnJvbSBhbnkgY2xhaW1zIHlvdSBtYWtlIHRoYXQgYXJlbid0IGFsbG93ZWQgdW5kZXIgdGhlc2UgdGVybXMgZHVlIHRvIGEgImxpbWl0YXRpb24gb2YgbGlhYmlsaXR5IiBvciBvdGhlciBwcm92aXNpb24uIChJbmRlbW5pdHkgaXMgYW4gYWdyZWVtZW50IHRvIGNvbXBlbnNhdGUgc29tZW9uZSBmb3IgYSBsb3NzLikgWW91IGFsc28gYWdyZWUgdG8gaW5kZW1uaWZ5IGFuZCBob2xkIHVzIGhhcm1sZXNzIGZyb20gYW55IGxvc3NlcywgaW5jbHVkaW5nIGF0dG9ybmV5IGZlZXMsIHRoYXQgcmVzdWx0IGZyb20gdGhpcmQtcGFydHkgY2xhaW1zIHRoYXQgeW91IG9yIHNvbWVvbmUgdXNpbmcgeW91ciBwYXNzd29yZCBkaWQgc29tZXRoaW5nIHRoYXQsIGlmIHRydWUsIHdvdWxkIHZpb2xhdGUgYW55IG9mIHRoZXNlIFRlcm1zLjwvcD4KPHA+Jm5ic3A7PC9wPgo8b2wgc3RhcnQ9IjE3Ij4KPGxpPjxzdHJvbmc+IExlZ2FsIEZlZXM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5JZiB3ZSBmaWxlIGFuIGFjdGlvbiBhZ2FpbnN0IHlvdSBjbGFpbWluZyB5b3UgYnJlYWNoZWQgdGhlc2UgVGVybXMgYW5kIHdlIHByZXZhaWwsIHdlJ3JlIGVudGl0bGVkIHRvIHJlY292ZXIgcmVhc29uYWJsZSBhdHRvcm5leSBmZWVzIGFuZCBhbnkgZGFtYWdlcyBvciBvdGhlciByZWxpZWYgd2UgbWF5IGJlIGF3YXJkZWQuPC9wPgo8cD4mbmJzcDs8L3A+CjxvbCBzdGFydD0iMTgiPgo8bGk+PHN0cm9uZz4gRXF1aXRhYmxlIFJlbGllZjwvc3Ryb25nPjwvbGk+Cjwvb2w+CjxwPklmIHlvdSB2aW9sYXRlIHRoZXNlIHRlcm1zLCB0aGVuIHdlIG1heSBzZWVrIGluanVuY3RpdmUgcmVsaWVmIChtZWFuaW5nIHdlIG1heSByZXF1ZXN0IGEgY291cnQgb3JkZXIgdG8gc3RvcCB5b3UpIG9yIG90aGVyIGVxdWl0YWJsZSByZWxpZWYuPC9wPgo8cD4mbmJzcDs8L3A+CjxvbCBzdGFydD0iMTkiPgo8bGk+PHN0cm9uZz4gRGlzY2xhaW1lcnM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5XZSBhbmQgb3VyIHRlYW0gYXJlbid0IHJlc3BvbnNpYmxlIGZvciB0aGUgYmVoYXZpb3Igb2YgYW55IGFkdmVydGlzZXJzLCBsaW5rZWQgd2Vic2l0ZXMsIG9yIG90aGVyIG1lbWJlcnMuPGJyIC8+PGJyIC8+PC9wPgo8cD5GSU5FIFBSSU5UPC9wPgo8b2wgc3RhcnQ9IjIwIj4KPGxpPjxzdHJvbmc+IEFzc2lnbm1lbnRzPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+WW91IG1heSBub3QgYXNzaWduIGFueSBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIGFncmVlbWVudCB0byBhbnlvbmUgZWxzZS4gV2UgbWF5IGFzc2lnbiBvdXIgcmlnaHRzIHRvIGFueSBvdGhlciBpbmRpdmlkdWFsIG9yIGVudGl0eSBhdCBvdXIgZGlzY3JldGlvbi48YnIgLz48YnIgLz48L3A+CjxvbCBzdGFydD0iMjEiPgo8bGk+PHN0cm9uZz4gQXBwbGljYWJsZSBMYXdzPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+RXhjZXB0IGZvciBjb25mbGljdCBvZiBsYXdzIHJ1bGVzLCB0aGUgbGF3cyBvZiB0aGUgUmVwdWJsaWMgb2YgR2hhbmEgd2lsbCBhcHBseSB0byBhbnkgZGlzcHV0ZSByZWxhdGVkIHRvIHRoZXNlIFRlcm1zIG9yIHRoZSBTZXJ2aWNlLiBBbnkgZGlzcHV0ZSByZWxhdGVkIHRvIHRoZSBUZXJtcywgdGhlIFByaXZhY3kgUG9saWN5LCBvciB0aGUgU2VydmljZSBpdHNlbGYgd2lsbCBiZSBkZWNpZGVkIGJ5IHRoZSBjb3VydHMgaW4gQWNjcmEsIEdoYW5hLCBhbmQgZWFjaCBwYXJ0eSB3aWxsIGJlIHN1YmplY3QgdG8gdGhlIGp1cmlzZGljdGlvbiBvZiB0aG9zZSBjb3VydHMuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjIyIj4KPGxpPjxzdHJvbmc+IEZvcmNlIE1hamV1cmU8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5XZSB3b24ndCBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRlbGF5cyBvciBmYWlsdXJlIGluIHBlcmZvcm1hbmNlIG9mIGFueSBwYXJ0IG9mIHRoZSBzZXJ2aWNlLCBmcm9tIGFueSBjYXVzZSBiZXlvbmQgb3VyIGNvbnRyb2wuIFRoaXMgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgYWN0cyBvZiBHb2QsIGNoYW5nZXMgdG8gbGF3IG9yIHJlZ3VsYXRpb25zLCBlbWJhcmdvZXMsIHdhciwgdGVycm9yaXN0IGFjdHMsIHJpb3RzLCBmaXJlcywgZWFydGhxdWFrZXMsIG51Y2xlYXIgYWNjaWRlbnRzLCB6b21iaWUgYXBvY2FseXBzZSwgZmxvb2RzLCBzdHJpa2VzLCBwb3dlciBibGFja291dHMsIHZvbGNhbmljIGFjdGlvbiwgdW51c3VhbGx5IHNldmVyZSB3ZWF0aGVyIGNvbmRpdGlvbnMsIGFuZCBhY3RzIG9mIGhhY2tlcnMgb3IgdGhpcmQtcGFydHkgaW50ZXJuZXQgc2VydmljZSBwcm92aWRlcnMuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjIzIj4KPGxpPjxzdHJvbmc+IFN1cnZpdmFiaWxpdHk8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5FdmVuIGlmIHRoaXMgQWdyZWVtZW50IGlzIHRlcm1pbmF0ZWQsIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgd2lsbCBjb250aW51ZSB0byBhcHBseTogUHJvcHJpZXRhcnkgUmlnaHRzIE93bmVkIGJ5IFVzLCBSaWdodHMgb3ZlciBTZXJ2aWNlLCBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eSwgTm8gV2FycmFudGllcywgSW5kZW1uaXR5LCBBcHBsaWNhYmxlIExhd3MsIFNldmVyYWJpbGl0eSwgYW5kIEVudGlyZSBBZ3JlZW1lbnQuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjI0Ij4KPGxpPjxzdHJvbmc+IFNldmVyYWJpbGl0eTwvc3Ryb25nPjwvbGk+Cjwvb2w+CjxwPklmIGl0IHR1cm5zIG91dCB0aGF0IGEgc2VjdGlvbiBvZiB0aGlzIEFncmVlbWVudCBpc24ndCBlbmZvcmNlYWJsZSwgdGhlbiB0aGF0IHNlY3Rpb24gd2lsbCBiZSByZW1vdmVkIG9yIGVkaXRlZCBhcyBsaXR0bGUgYXMgbmVjZXNzYXJ5LCBhbmQgdGhlIHJlc3Qgb2YgdGhlIFRlcm1zIHdpbGwgc3RpbGwgYmUgdmFsaWQuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjI1Ij4KPGxpPjxzdHJvbmc+IEludGVycHJldGF0aW9uPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+VGhlIGhlYWRlcnMgYW5kIHRleHQgYXJlIHByb3ZpZGVkIG9ubHkgdG8gbWFrZSB0aGlzIGFncmVlbWVudCBlYXNpZXIgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZC4gVGhlIGZhY3QgdGhhdCB3ZSB3cm90ZSB0aGVzZSBUZXJtcyB3b24ndCBhZmZlY3QgdGhlIHdheSB0aGlzIEFncmVlbWVudCBpcyBpbnRlcnByZXRlZC48YnIgLz48YnIgLz48L3A+CjxvbCBzdGFydD0iMjYiPgo8bGk+PHN0cm9uZz4gQW1lbmRtZW50cyBhbmQgd2FpdmVyPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+QW1lbmRtZW50cyBvciBjaGFuZ2VzIHRvIHRoZXNlIHRlcm1zIHdvbid0IGJlIGVmZmVjdGl2ZSB1bnRpbCB3ZSBwb3N0IHJldmlzZWQgdGVybXMgb24gdGhlIHdlYnNpdGUuIElmIHdlIGRvbid0IGltbWVkaWF0ZWx5IHRha2UgYWN0aW9uIG9uIGEgdmlvbGF0aW9uIG9mIHRoZXNlIFRlcm1zLCB3ZSdyZSBub3QgZ2l2aW5nIHVwIGFueSByaWdodHMgdW5kZXIgdGhlIFRlcm1zLCBhbmQgd2UgbWF5IHN0aWxsIHRha2UgYWN0aW9uIGF0IHNvbWUgcG9pbnQuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjI3Ij4KPGxpPjxzdHJvbmc+IE5vIENoYW5nZXMgaW4gVGVybXMgYXQgUmVxdWVzdCBvZiBNZW1iZXI8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5CZWNhdXNlIHdlIGhhdmUgc28gbWFueSBtZW1iZXJzLCB3ZSBjYW4ndCBjaGFuZ2UgdGhlc2UgdGVybXMgZm9yIGFueSBvbmUgbWVtYmVyIG9yIGdyb3VwLjxiciAvPjxiciAvPjwvcD4KPG9sIHN0YXJ0PSIyOCI+CjxsaT48c3Ryb25nPiBGdXJ0aGVyIEFjdGlvbnM8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5Zb3UnbGwgcHJvdmlkZSBhbGwgZG9jdW1lbnRzIGFuZCB0YWtlIGFueSBhY3Rpb25zIG5lY2Vzc2FyeSB0byBtZWV0IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhlc2UgVGVybXMuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjI5Ij4KPGxpPjxzdHJvbmc+IE5vdGlmaWNhdGlvbiBvZiBTZWN1cml0eSBCcmVhY2g8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5JbiB0aGUgZXZlbnQgb2YgYSBzZWN1cml0eSBicmVhY2ggdGhhdCBtYXkgYWZmZWN0IHlvdSBvciBhbnlvbmUgb24geW91ciB1c2VyJ3MgbGlzdCwgd2UnbGwgbm90aWZ5IHlvdSBvZiB0aGUgYnJlYWNoIGFuZCBwcm92aWRlIGEgZGVzY3JpcHRpb24gb2Ygd2hhdCBoYXBwZW5lZC4gSWYgd2UgZGV0ZXJtaW5lLCBhbmQgbm90aWZ5IHlvdSwgdGhhdCB5b3UgbmVlZCB0byBmb3J3YXJkIGFsbCBvciBwYXJ0IG9mIHRoYXQgaW5mb3JtYXRpb24gdG8gYW55b25lIG9uIHlvdXIgbGlzdCwgeW91J2xsIHByb21wdGx5IGRvIHNvLjxiciAvPjxiciAvPjwvcD4KPG9sIHN0YXJ0PSIzMCI+CjxsaT48c3Ryb25nPiBOb3RpY2VzPC9zdHJvbmc+PC9saT4KPC9vbD4KPHA+QW55IG5vdGljZSB0byB5b3Ugd2lsbCBiZSBlZmZlY3RpdmUgd2hlbiB3ZSBzZW5kIGl0IHRvIHRoZSBsYXN0IGVtYWlsIG9yIHBoeXNpY2FsIGFkZHJlc3MgeW91IGdhdmUgdXMgb3IgcG9zdGVkIG9uIG91ciB3ZWJzaXRlLiBBbnkgbm90aWNlIHRvIHVzIHdpbGwgYmUgZWZmZWN0aXZlIHdoZW4gZGVsaXZlcmVkIHRvIHVzIGFsb25nIHdpdGggYSBjb3B5IHRvIG91ciBsZWdhbCBjb3Vuc2VsOiBBdHRuLiBMZWdhbCBEZXBhcnRtZW50LCBJbmZvMzYwIFNvbHV0aW9ucyBMdGQsIEdBLTQ2OC00MjQ5LCBEYXJrdW1hbiBBY2NyYSwgb3IgYW55IGFkZHJlc3MgYXMgd2UgbWF5IGxhdGVyIHBvc3Qgb24gdGhlIHdlYnNpdGUuPGJyIC8+PGJyIC8+PC9wPgo8b2wgc3RhcnQ9IjMxIj4KPGxpPjxzdHJvbmc+IEVudGlyZSBBZ3JlZW1lbnQ8L3N0cm9uZz48L2xpPgo8L29sPgo8cD5UaGVzZSBUZXJtcywgb3VyIFByaXZhY3kgUG9saWN5LCBBY2NlcHRhYmxlIFVzZSBQb2xpY3ksIEFQSSBHdWlkZWxpbmVzIChhbGwgb2Ygd2hpY2ggYXJlIGluY29ycG9yYXRlZCBpbnRvIHRoZXNlIFRlcm1zIGJ5IHJlZmVyZW5jZSksIGFuZCBhbnkgYWRkaXRpb25hbCB0ZXJtcyB5b3UndmUgYWdyZWVkIHRvIGJ5IHR1cm5pbmcgb24gc3BlY2lmaWMgZmVhdHVyZXMgKCJBZGRpdGlvbmFsIFRlcm1zIikgbWFrZSB1cCB0aGUgZW50aXJlIGFncmVlbWVudCBhbmQgc3VwZXJzZWRlIGFsbCBwcmlvciBhZ3JlZW1lbnRzLCByZXByZXNlbnRhdGlvbnMsIGFuZCB1bmRlcnN0YW5kaW5ncy4gQW55IGFkZGl0aW9uYWwgdGVybXMgd2lsbCBiZSBjb25zaWRlcmVkIGluY29ycG9yYXRlZCBpbnRvIHRoZXNlIHRlcm1zIHdoZW4geW91IGFjdGl2YXRlIHRoZSBmZWF0dXJlLjwvcD4KPHA+V2hlcmUgdGhlcmUncyBhIGNvbmZsaWN0IGJldHdlZW4gdGhlc2UgVGVybXMgYW5kIHRoZSBBZGRpdGlvbmFsIFRlcm1zLCB0aGUgQWRkaXRpb25hbCBUZXJtcyB3aWxsIGNvbnRyb2wuPGJyIC8+PGJyIC8+PC9wPgo8cD5UaGFua3MgZm9yIHRha2luZyB0aGUgdGltZSB0byBsZWFybiBhYm91dCBJTkZPQk1TIHBvbGljaWVzLjwvcD4=