VGhpcyBpcyB0aGUgZmxpcCBzaWRlIG9mIHRoZSBjb21wbGFpbnQgdGhhdCBJIG9mdGVuIGhlYXIg ZnJvbSByZWNlbnQKZ3JhZHVhdGVzOiAgIkkgY2FuJ3QgZ2V0IGEgam9iIGJlY2F1c2UgSSBoYXZl IG5vIGV4cGVyaWVuY2UgYW5kIEkgY2FuJ3QgZ2V0CmV4cGVyaWVuY2UgYmVjYXVzZSBJIGhhdmUg bm8gam9iIi4KClRoZSB0cmFkaXRpb25hbCBhbnN3ZXIgdG8gdGhpcyBwcm9ibGVtLCBvcmlnaW5h dGluZyB3aXRoIG1lZGlldmFsCmNyYWZ0c21lbiwgaXMgdGhlIGFwcHJlbnRpY2VzaGlwLCB3aGVy ZSB5b3VuZ3N0ZXJzIHdvcmsgZm9yIGEgcGl0dGFuY2UgIGFzCnRoZXkgbGVhcm4gdGhlIGNyYWZ0 LiAgQnV0IHRoZSBjb3N0IG9mIGhpcmluZyBhbnkgb25lIHRoZXNlIGRheXMgb2YgbWluaW11bQp3 YWdlcywgaG9saWRheSBwYXksIHBlbnNpb24gY29udHJpYnV0aW9ucyAgZXRjLCBtYWtlIGl0IHZl cnkgZGlmZmljdWx0IGZvcgphbiBlbXBsb3llciB0byB0YWtlIG9uIGFuZCB0cmFpbiB1bnNraWxs ZWQgcGVvcGxlLiAgSW4gdGhlIFVLIHRoZXJlIGhhcwpiZWVuIHNvbWUgYXR0ZW1wdCB0byBhZGRy ZXNzIHRoZSBwcm9ibGVtIGJ5IGdvdmVybm1lbnQgc3Vic2lkaWVzCih1bnRoaW5rYWJsZSBpbiB0 aGUgVVNBLCBJIGltYWdpbmUpIHRvIGZpcm1zIHdobyBkbyB0YWtlIG9uIGFwcHJlbnRpY2VzIGJ1 dAp0aGUgdGFrZSB1cCBoYXMgYmVlbiBwYXRoZXRpYy4KClRoZSBpbnRlcm5zaGlwIHN5c3RlbSwg bXVjaCBkZW5pZ3JhdGVkIGJ5IHRoZSBsaWJlcmFsIHByZXNzLCBvciBzaW1pbGFyXApzY2hlbWVz IHNlZW0gdG8gYmUgcGFydCBvZiB0aGUgYW5zd2VyLiAgIE15IHNvbiAtIG5vdyBhIHNlbmlvciBz b2Z0d2FyZQplbmdpbmVlciB3aXRoIEFtYXpvbiAtIHRvb2sgYSB5ZWFyIG91dCBvZiB1bmkgdG8g d29yayBhdCBhIGxvdyBzYWxhcnkgd2l0aAphIGxvY2FsIGZpcm0uICBXaGVuIGhlIGdyYWR1YXRl ZCB0aGV5IGtuZXcgaGltIHdlbGwgZW5vdWdoIHRvIG9mZmVyIGhpbSBhCnByb3BlciBqb2Igd2hl cmUgaGUgcmFwaWRseSBnYWluZWQgZW5vdWdoIGV4cGVyaWVuY2UgdG8gYmUgYWJsZSB0byBtb3Zl IG9uCmFuZCB1cC4KCk5vbmUgb2Ygd2hpY2ggaXMgb2YgYW55IGhlbHAgdG8gRGVubnkgOi0oCgo8 aHR0cHM6Ly93d3cuYXZhc3QuY29tL3NpZy1lbWFpbD91dG1fbWVkaXVtPWVtYWlsJnV0bV9zb3Vy Y2U9bGluayZ1dG1fY2FtcGFpZ249c2lnLWVtYWlsJnV0bV9jb250ZW50PXdlYm1haWw+ClZpcnVz LWZyZWUuCnd3dy5hdmFzdC5jb20KPGh0dHBzOi8vd3d3LmF2YXN0LmNvbS9zaWctZW1haWw/dXRt X21lZGl1bT1lbWFpbCZ1dG1fc291cmNlPWxpbmsmdXRtX2NhbXBhaWduPXNpZy1lbWFpbCZ1dG1f Y29udGVudD13ZWJtYWlsPgo8I0RBQjRGQUQ4LTJERDctNDBCQi1BMUI4LTRFMkFBMUY5RkRGMj4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEYXZpZCBDIEJyb3du CjQzIEJpbmdzIFJvYWQKV2hhbGV5IEJyaWRnZQpIaWdoIFBlYWsgICAgICAgICAgICAgICAgICAg ICAgICAgICBQaG9uZTogMDE2NjMgNzMzMjM2CkRlcmJ5c2hpcmUgICAgICAgICAgICAgICAgZU1h aWw6IGRjYi5ob21lQGdtYWlsLmNvbQpTSzIzIDdORCAgICAgICAgICB3ZWI6IHd3dy5iaW5ncy1r bm93bGUuY28udWsvZGNiCjxodHRwOi8vd3d3LmpiLm1hbi5hYy51ay9+ZGNiPgoKCgoqU2VudCBm cm9tIG15IGV0Y2gtYS1za2V0Y2gqCgpPbiA4IEZlYnJ1YXJ5IDIwMTggYXQgMDA6MzAsIFJ5YW4g TydDb25ub3IgPHJvY2lmaWVyQGdtYWlsLmNvbT4gd3JvdGU6Cgo+IFRoYXQgbWlnaHQgYmUgc2lt cGxlIGFzIHB1dHRpbmcgYSBkZWdyZWUgdW5kZXIgInByZWZlcnJlZCIgaW5zdGVhZCBvZgo+ICJy ZXF1aXJlZCIuIFRoZSBleHBlcmllbmNlIGlzIGFscmVhZHkgd2hhdCB5b3UgYXJlIGNsZWFybHkg YWZ0ZXIgaW4gdGhlCj4gcG9zdGluZy4KPgo+IFJ5YW4KPgo+IE9uIDggRmVicnVhcnkgMjAxOCBh dCAxMjozMywgRGVubnkgRXN0ZXJsaW5lIDxkZXN0ZXJsaW5lQGdtYWlsLmNvbT4gd3JvdGU6Cj4K PiA+IE9uIFdlZCwgRmViIDcsIDIwMTggYXQgNDoxMyBQTSwgSGFycmlzb24gQ29vcGVyIDxIYXJy aXNvbi5Db29wZXJAd2RjLmNvbQo+ID4KPiA+IHdyb3RlOgo+ID4KPiA+ID4gSSB0aGluayBpdCBk ZXBlbmRzIG9uIHRoZSBhcmVhLCBhbmQgd2hvIGlzIGh1bmdyeS4gIFdlIGhhdmUgYmVlbgo+IGxv b2tpbmcKPiA+ID4gZm9yIGEgSFcgZW5naW5lZXIgZm9yIG1vbnRocywgaW4gQXJpem9uYSBhcyB3 ZWxsLiAgQW5kIGV2ZXJ5b25lCj4gYXBwbHlpbmcKPiA+ID4gY29tZXMgdXAgc2hvcnQuICBCYXNp Y2FsbHkgdGhvc2Ugd2hvIGFyZSBlbXBsb3llZCBhcHBlYXIgdG8gYmUgaGFwcHkKPiA+IGRvaW5n Cj4gPiA+IHdoYXQgdGhleSBhcmUgZG9pbmcsIGFuZCBpdHMgaGFyZCB0byBnZXQgc29tZW9uZSB0 byBtb3ZlIHVubGVzcyB0aGV5Cj4gaGF2ZQo+ID4gPiBnb29kIHJlYXNvbi4gIEV2ZW4gd2hlcmUg SSBhbSAobm9ydGggb2YgdGhlIGdyYW5kIGNhbnlvbiksIHRoZSBqb2IKPiA+IHBvc3RpbmdzCj4g PiA+IGZvciBFRS9IVy9GaXJtd2FyZSBoYXZlIGJlZW4gc2l0dGluZyB0aGVyZSBmb3IgbW9udGhz LCB1bmZpbGxlZC4gIEkndmUKPiA+ID4gdGFsa2VkIHRvIHNvbWUgb2YgdGhvc2UgbG9va2luZyB0 byBoaXJlIChmcmllbmRzIGluIHRoZSBuZXR3b3JrKSBhbmQKPiB0aGUKPiA+ID4gc2FtZSBzdG9y eSwgd2hlcmUgdGhlIGFwcGxpY2FudHMgZG8gbm90IHBvc3Nlc3MgdGhlIHNraWxsc2V0LiAgQW5k IGl0Cj4gPiA+IHJhbmdlcyBhcyB3ZWxsIGZvciB0aGF0IHNraWxsIHNldC4gIFNvbWUgYXJlIGxv b2tpbmcgZm9yIHdoYXQgRGFubnkKPiA+ID4gaXMuLi5taWNybyBvbiBhIGJvYXJkIHdpdGggcGVy aXBoZXJhbHMsIG90aGVycyBhcmUgdXNpbmcgYW4gb2ZmIHRoZQo+IHNoZWxmCj4gPiA+IGVuZ2lu ZSBzdWNoIGFzIHdoYXQgTnZpZGlhIG9mZmVycy4gIFNvIHRoZSBwbGF0Zm9ybSB2YXJpZXMuICBB bmQKPiBzb21lb25lCj4gPiA+IHdobyBjYW4gd3JpdGUgY29kZSBmb3IgYSBQaSwgaXNuJ3QgYWx3 YXlzIHN1aXRhYmxlIGZvciB3cml0aW5nIG9uIGEKPiBQSUMuCj4gPiA+ICBJdOKAmXMgYSBnb29k IHRoaW5nIGZvciBlbmdpbmVlcnMsIHRoYXQgd2UgaGF2ZSBvcHRpb25zLiAgSXRzIGJhZCBmb3IK PiA+IHRob3NlCj4gPiA+IHdobyBORUVEIHRoZSB0YWxlbnQgYW5kIGNhbid0IGx1cmUgaXQgaW4u Cj4gPiA+Cj4gPiA+IERhbm55LCBoYXZlIHlvdSBjaGVja2VkIHdpdGggdGhlIFVvZkE/ICBTcG9u c29yaW5nIGFuIGludGVybnNoaXA/IFlvdQo+ID4gPiBtaWdodCB0aGluayB0aGF04oCZcyBub3Qg YSBnb29kIHNvbHV0aW9uLCBidXQgbGV0IG1lIHRlbGwgeW91Li4uLi5JJ3ZlCj4gPiA+IGludGVy dmlld2VkIGpyIGFuZCBzciBDUyBhbmQgRUUgYW5kIGV2ZW4gTUUgc3R1ZGVudHMgdGhhdCBoYXZl IG1vcmUKPiA+ID4gaGFyZHdhcmUgZXhwZXJpZW5jZSB0aGFuIHNvbWUgZW5naW5lZXJzIG91dCBv ZiBzY2hvb2wgZm9yIGEgZmV3IHllYXJzLgo+ID4gPiBUaGV5IGhhdmUgYmVlbiBidWlsZGluZyBz dHVmZiBzaW5jZSBoaWdoIHNjaG9vbCBhbmQgdGhleSBkbyBpbmRlZWQgaGF2ZQo+ID4gdGhlCj4g PiA+IHNraWxscy4gIEFuZCBldmVuIHRobyBpdHMgcGFydCB0aW1lIHdoaWxlIHRoZXkgYXJlIGdv aW5nIHRvIHNjaG9vbCwKPiBvbmNlCj4gPiA+IGdyYWR1YXRlZCB0aGV5IGhhdmUgYSBqb2IgYW5k IHlvdSBoYXZlIHNvbWVvbmUgd2hvIGtub3dzIHlvdXIgcHJvZHVjdHMuCj4gPiA+IFRocmVlIG9m IHRoZSBpbnRlcm5zIEkgaGlyZWQsIHN0aWxsIHdvcmsgaGVyZSBhZnRlciA0IHllYXJzLiAgTXkg Zmlyc3QKPiA+ID4gcXVlc3Rpb24gaXMgYWx3YXlzLi4uLndoYXQgZG8geW91IGRvIGluIHlvdXIg c3BhcmUgdGltZT8gV2hhdCBoYXZlIHlvdQo+ID4gPiBidWlsdCBwcm9qZWN0IHdpc2UuICBUaGUg a2lkIHdobyBkaWQgYSBzdXJ2ZWlsbGFuY2Ugc3lzdGVtIGZvciBoaXMKPiA+IHBhcmVudHMKPiA+ ID4gaG91c2UuLi55ZWFoIEkgaGlyZWQgaGltLiAgIFNvIHRoYXQgcmVhbGx5IHNob3VsZCBiZSBh biBvcHRpb24gdG8gbG9vawo+ID4gYXQuCj4gPiA+Cj4gPiA+IEFuZCB0aGF0J3MgdGhlIGtuaWZl IHRoYXQgY3V0cyBib3RoIHdheXMuCj4gPiBJJ20gaW4gYW4gZW52aXJvbm1lbnQgd2hlcmUgdGFs ZW50IGFuZCBza2lsbCBjYW4gZWFzaWx5IG92ZXJjb21lIGxhY2sgb2YKPiA+IGZvcm1hbCB0cmFp bmluZy4gQnV0IGhvdyBkbyB5b3Ugd3JpdGUgYSBqb2IgcG9zdGluZyBmb3IgdGhhdD8gSSdkIGhh cHBpbHkKPiA+IGNvbnNpZGVyIHRoZSBraWQgdGhhdCB0YXVnaHQgdGhlbXNlbHZlcyBtaWNyb2Nv bnRyb2xsZXJzIGluIG1vbSdzCj4gYmFzZW1lbnQKPiA+IHdoZW4gaGUvc2hlIHdhcyB0d2VsdmUu IFdyaXRpbmcgYW5kIGFkIGZvciB0aGF0IHRoYXQgZG9lc24ndCBhbHNvIGNvbGxlY3QKPiA+IGFs bCB0aGUgIkkgbWFkZSBhIExFRCB0aHJvd2llIG9uY2UiIGNhbmRpZGF0ZXMgaXMgYWxzbyBoYXJk Lgo+ID4KPiA+Cj4gPiAtRGVubnkKPiA+IC0tCj4gPiBodHRwOi8vd3d3LnBpY2xpc3QuY29tL3Rl Y2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4gPiBWaWV3L2NoYW5nZSB5 b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+ID4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWls bWFuL2xpc3RpbmZvL3BpY2xpc3QKPiA+Cj4gLS0KPiBodHRwOi8vd3d3LnBpY2xpc3QuY29tL3Rl Y2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4gVmlldy9jaGFuZ2UgeW91 ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4v bGlzdGluZm8vcGljbGlzdAo+Ci0tIApodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGlj bGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hp cCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNs aXN0Cg== .