SSBzZWNvbmQgdGhlIHNvdXJjZXRyZWUgcmVjb21tZW5kYXRpb24uICBTb3VyY2V0cmVlIHdpdGgg Y2xvdWRmb3JnZSAoZm9yIAptYWluIGpvYikgYW5kIGJpdGJ1Y2tldCAoZm9yIGZyZWVsYW5jZSB3 b3JrIHRoYXQgZG9lc24ndCBldmVyIHF1aXRlIApmdWxseSB3cmFwIHVwKSBoYXMgYmVlbiBncmVh dC4gIEkgaGF2ZSByZXBlYXRlZGx5IGNoYXN0aXNlZCBteXNlbGYgZm9yIApub3QgZG9pbmcgYWxs IHRoaXMgNSsgeWVhcnMgYWdvLiAgKGl0IGhhcyBiZWVuIG9ubHkgNiBtb250aHMpLgoKSSB1c2Ug U1ZOICh0b3J0b2lzZSkgYW5kIEdpdCwgYW5kIEkgbGlrZSBHaXQgYmV0dGVyLiAgQWx0aXVtIGhh cyBTVk4gCmJ1aWx0IGluLCBhbmQgY2xvdWRmb3JnZSBkb2VzIGJvdGggU1ZOIGFuZCBHaXQsIHNv IEkgZGlkIHRoYXQgZm9yIG15IAptYWluIGpvYi4gIEJ1dCBBbHRpdW0ncyBTVk4gaGFzIHNvbWUg ZG93bnNpZGVzIChpdCBjaGVja3MgdGhlIHJlbW90ZSAKcmVwb3NpdG9yeSBvbiBldmVyeSBmaWxl IHNhdmUsIG1ha2luZyBpdCB0YWtlIDEwIHNlY29uZHMgZXZlcnkgdGltZSB5b3UgCnNhdmUgd2hp bGUgZGVzaWduaW5nIHdoaWNoIGlzIGV2ZXJ5IGZldyBtaW51dGVzIGZvciBtZSksIGFuZCBkb2lu ZyBpdCAKYWdhaW4gSSdkIGp1c3QgZG8gR2l0IG9ubHkuCgpJIHdvdWxkbid0IHRoaW5rIGl0IGhh cmQgdG8gc2V0IHVwIGEgZ2l0IHNlcnZlciAoaS5lLiBhICJ1c2VyIiB3aXRoIHdoYXQgCmV2ZXJ5 b25lIGNvbnNpZGVycyB0aGUgaG9sZGVyIG9mIHRoZSBjb2RlIGZvciBhbGwgYnJhbmNoZXMpIG9u IGFuIAppbnRlcm5hbCBuZXR3b3JrLgoKQ29uc2lkZXIuLi4KPGh0dHBzOi8vd3d3LmF0bGFzc2lh bi5jb20vZ2l0L3R1dG9yaWFscy9jb21wYXJpbmctd29ya2Zsb3dzLz4KCllhIGRlZmluaXRlbHkg Z290dGEgdGhpbmsgZGlmZmVyZW50IHdpdGggR2l0LCBhbmQgZnJhbmtseSB0aGF0J3MgdGhlIAph ZHZhbnRhZ2UgLSBhIG5ldyB3YXkgb2YgdGhpbmtpbmcgYWJvdXQgc291cmNlIGNvbnRyb2wgYW5k IGl0IG1ha2VzIG11Y2ggCm1vcmUgcG9zc2libGUuICBJdCB3YXMgZGVzaWduZWQgaW4gdGhlIGxh c3QgMTAgeWVhcnMgZm9yIG1vZGVybiAKZGlzdHJpYnV0ZWQgZGV2b3BzIHR5cGUgY3VsdHVyZS4g IFNWTiBhbmQgYWxsIHRoZSByZXN0IGFyZSByZWxpY3Mgb2YgdGhlIAozODYgYWdlLiAgKG1vcmUg b3IgbGVzcyAtIGNlbnRyYWxpemVkIGNvbnRyb2wsIHBlb3BsZSBpbiB0aGUgc2FtZSAKYnVpbGRp bmcsIGFuZCBkaXNrL0NQVS9iYW5kd2lkdGggbGltaXRhdGlvbnMgd2VyZSBwYWluZnVsIGF0IGFs bCB0aW1lcy4pCgpBbnl3YXkgbXkgMmMuCkoKCgpQZXRlciBMb3JvbiB3cm90ZToKPiBXZWxsLCBJ 4oCZbGwgaGF2ZSB0byBkaXNhZ3JlZS4gSeKAmXZlIGJlZW4gd29ya2luZyB3aXRoIHZlcnNpb24g Y29udHJvbCBzeXN0ZW1zIChhcyBhIHVzZXIgYW5kIGFkbWluaXN0cmF0b3IpIGZvciBhbG1vc3Qg MjAgeWVhcnMuIEdpdCBpcyBoYW5kcyBkb3duIHRoZSBiZXN0IGdlbmVyYWwgcHVycG9zZSB0b29s LiBUaGVyZSBpcyBhIHdpZGVseSBhdmFpbGFibGUgZXh0ZW5zaW9uIHRvIGdpdCAoaHR0cHM6Ly9n aXQtbGZzLmdpdGh1Yi5jb20vKSB3aGljaCBtYWtlcyB3b3JraW5nIHdpdGggbGFyZ2UgYmluYXJ5 IGZpbGVzIHByZXR0eSBwYWlubGVzcy4KPgo+IEkgd291bGQgc3VnZ2VzdCB1c2luZyBHaXRMYWIg KGh0dHBzOi8vYWJvdXQuZ2l0bGFiLmNvbS8pIGFzIGEgZ2l0IHNlcnZlci4gSXQgb2ZmZXJzIHNl dmVyYWwgdXNlZnVsLCBpbnRlZ3JhdGVkIGZlYXR1cmVzIGluY2x1ZGluZyBjb2RlIHJldmlld3Ms IGlzc3VlIHRyYWNraW5nLCBhY3Rpdml0eSBmZWVkcyBhbmQgd2lraXMuIFRoZSBjb21tdW5pdHkg ZWRpdGlvbiBpcyBmcmVlLiBUaGUgc2VydmVyIGRvZXMgbmVlZCB0byBydW4gb24gTGludXgsIGJ1 dCBnaXQgY2xpZW50cyBhcmUgYXZhaWxhYmxlIGZvciBXaW5kb3dzIGFuZCB0aGUgb3RoZXIgZmVh dHVyZXMgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCBhIHdlYiBpbnRlcmZhY2UuCj4KPiBJIHN1Z2dl c3QgU291cmNlVHJlZSAoaHR0cHM6Ly93d3cuc291cmNldHJlZWFwcC5jb20vKSBhcyBhIGNyb3Nz LXBsYXRmb3JtIGdyYXBoaWNhbCBnaXQgY2xpZW50IGZvciB0aG9zZSB3aG8gZG8gbm90IHdpc2gg dG8gd29yayBvbiB0aGUgY29tbWFuZCBsaW5lLgo+Cj4gLVBldGUKPgo+IE9uIDYvMjMvMTYsIDEz OjQwLCAiTWFyayBSYWdlcyIgPHBpY2xpc3QtYm91bmNlc0BtaXQuZWR1IG9uIGJlaGFsZiBvZiBt YXJrcmFnZXNAZ21haWwuY29tPiB3cm90ZToKPgo+IEZvciBlbGVjdHJvbmljIGRlc2lnbiBmaWxl cywgeW91IHNob3VsZCB1c2UgU3VidmVyc2lvbi4gIERpc3RyaWJ1dGVkCj4gc3lzdGVtcyBsaWtl IGdpdCBkbyBub3Qgd29yayB3ZWxsIGZvciBsYXJnZSwgZnJlcXVlbnRseSBjaGFuZ2luZwo+IGZp bGVzLCBhbmQgdGhlaXIgYWR2YW50YWdlcyBhcmVuJ3Qgd29ydGggaXQgZm9yIHNtYWxsIGVsZWN0 cm9uaWNzCj4gZGVzaWduIHRlYW1zLgo+Cj4gWW91IGNhbiB1c2UgVHJhYyB0byBtYWtlIGEgbmlj ZSB3ZWIgdmlldyBvZiB5b3VyIHN1YnZlcnNpb24gc2VydmVyLgo+IFRoZXJlIGFyZSB3aGl6LWJh bmdpZXIgdG9vbHMsIGJ1dCBUcmFjIGlzIHRoZSBzd2VldCBzcG90IGJldHdlZW4KPiBzaW1wbGlj aXR5IGFuZCB1c2VmdWxuZXNzLiAgWW91IGNhbiBob3N0IGl0IG9uIHRoZSBzYW1lIG1hY2hpbmUg YXMgdGhlCj4gc3VidmVyc2lvbiBzZXJ2ZXIuICBJIHRoaW5rIHN1YnZlcnNpb24gYW5kIGFuZCB0 cmFjIHdpbGwgcnVuIG9uCj4gV2luZG93cyB3aXRoIGVub3VnaCBzeXNhZG1pbiBlZmZvcnQsIGJ1 dCBpdCBtaWdodCBiZSBzaW1wbGVyIHRvIHJ1biBhbgo+IFVidW50dSB2aXJ0dWFsIGltYWdlIG9u IFdpbmRvd3MsIGFuZCBydW4gdGhlIHNlcnZlciBpbiB0aGVyZS4KPiBJbnN0YWxsaW5nIHN1YnZl cnNpb24gb24gVWJ1bnR1IGlzIGEgb25lLWxpbmUgY29tbWFuZC4KPgo+IFJlZ2FyZHMsCj4gTWFy awo+Cj4KPgo+IE9uIFRodSwgSnVuIDIzLCAyMDE2IGF0IDE6NDcgUE0sIENocmlzIFJvcGVyIDxj YXJvcGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4+IFdpbmRvd3MgMTAgaXMgYW4gSW50ZXJuZXQtSG9z dGVkIHNvbHV0aW9uIHNvLCBpZiBtYW5hZ2VtZW50IGFyZSB0aGF0Cj4+IHBhcmFub2lkLCBpdCBp cyB0aW1lIHRvIGxvb2sgYXQgTGludXggcmF0aGVyIHRoYW4gbGltaXQgeW91ciBTVk4gb3B0aW9u cyB0bwo+PiBub24gaW50ZXJuZXQgaW4gbXkgb3Bpbmlvbi4KPj4KPj4gT24gVGh1LCBKdW4gMjMs IDIwMTYgYXQgOToxMiBQTSwgRGVubnkgRXN0ZXJsaW5lIDxkZXN0ZXJsaW5lQGdtYWlsLmNvbT4K Pj4gd3JvdGU6Cj4+Cj4+PiBJdCBsb29rcyBsaWtlIHdlJ3JlIGdvaW5nIHRvIGRvIGEgY29tcGFu eS13aWRlIElUIG92ZXJoYXVsIGVhcmx5IG5leHQgeWVhcgo+Pj4gYXMgcGFydCBvZiBhIG1vdmUg dG8gYSBuZXcgZmFjaWxpdHkuIEknbSBjdXJyZW50bHkgaW4gdGhlIHBsYW5uaW5nIHN0YWdlcy4K Pj4+IFRoZXJlJ3MgYSBwYXJ0IG9mIG1lIHRoYXQgdGhpbmtzIHRoaXMgbWlnaHQgYmUgYW4gb3Bw b3J0dW5pdHkgdG8gYnJpbmcgYQo+Pj4gInJlYWwiIHZlcnNpb24gY29udHJvbCB0b29sIGluIGFu ZCBJJ20gbG9va2luZyBmb3IgcmVjb21tZW5kYXRpb25zLgo+Pj4KPj4+IFNtYWxsaXNoIGdyb3Vw LCBhYm91dCAxMCBwZW9wbGUgdG90YWwsIGhhbGYgdGhhdCBpcyBhY3R1YWxseSBkb2luZyBzb2Z0 d2FyZQo+Pj4gd29yay4gVGhlIHJlc3QgYXJlIGRvaW5nIG1lY2hhbmljYWwgYW5kIGVsZWN0cmlj YWwgZGVzaWduLCBib2FyZCBsYXlvdXQsCj4+PiBidWlsZCBwcm9jZWR1cmVzLCBldGMuIEknZCBs aWtlIHRvIHB1dCB0aGF0IHVuZGVyIHZlcnNpb24gY29udHJvbCBhcyB3ZWxsLAo+Pj4gaWYgcG9z c2libGUuCj4+Pgo+Pj4gSGlzdG9yaWNhbGx5LCB0aGUgb3duZXJzaGlwIGhhcyBiZWVuIGEgYml0 IHBhcmFub2lkIHdoZXJlIGNvbnRyb2wgb2YgSVAgaGFzCj4+PiBiZWVuIGNvbmNlcm5lZCwgc28g aW50ZXJuZXQtaG9zdGVkIHNvbHV0aW9ucyBhcmUgYSBub24tc3RhcnRlci4KPj4+Cj4+PiBPdXIg Y3VycmVudCBpbmZyYXN0cnVjdHVyZSBpcyBhbGwgV2luZG93cyBiYXNlZCBhbmQgcGFydCBvZiB0 aGUgcGFpbiBvZgo+Pj4gdGhpcyAidXBncmFkZSBpcyB0aGUgZm9yY2VkIGNoYW5nZSB0byBXaW5k b3dzIDEwIChhbGwgb3RoZXIgdmVyc2lvbnMgc3RvcAo+Pj4gYmVpbmcgc29sZCBpbiBPY3RvYmVy KSBTbyBJIG5lZWQgc29tZXRoaW5nIHRoYXQgd2lsbCBydW4gb24gV2luZG93cyAxMC4KPj4+Cj4+ PiBBbnkgc3VnZ2VzdGlvbnM/Cj4+Pgo+Pj4gLURlbm55Cj4+PiAtLQo+Pj4gaHR0cDovL3d3dy5w aWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+Pj4g Vmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPj4+IGh0dHA6Ly9tYWlsbWFu Lm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4+Pgo+PiAtLQo+PiBodHRwOi8vd3d3 LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4+ IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4+IGh0dHA6Ly9tYWlsbWFu Lm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KPgo+Ci0tIApodHRwOi8vd3d3LnBp Y2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcv Y2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUv bWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cg== .