V2hhdCBkb2VzIHJlZmxlY3Rpb24gb3Igb2JzdHJ1Y3Rpb24gZG8gdG8gdGhlIGRpc3RhbmNlIG1l YXN1cmVtZW50PwpJcyB0aGlzIG91dCBpbiBhbiBvcGVuIGZpZWxkIGxpa2UgdGhlIGxpZ2h0IHBv bGUgaGVpZ2h0IG1lYXN1cmVtZW50IGV4ZXJjaXNlPwoKCgoKCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tCj5Gcm9tOiBNYXJjIE5pY2hvbGFzIDxnZWVreXRoaW5nQGdtYWlsLmNvbT4KPlNlbnQ6 IEp1bCAzMCwgMjAxNCAyOjIxIFBNCj5UbzogRGVubnkgRXN0ZXJsaW5lIDxkZXN0ZXJsaW5lQGdt YWlsLmNvbT4sICJNaWNyb2NvbnRyb2xsZXIgZGlzY3Vzc2lvbiBsaXN0IC0gUHVibGljLiIgPHBp Y2xpc3RAbWl0LmVkdT4KPlN1YmplY3Q6IFJlOiBbRUVdIFJlY29tbWVuZCBhIHdpcmVsZXNzIG1v ZHVsZQo+Cj5CbHVldG9vdGggU21hcnQgKEFLQSBMb3cgRW5lcmd5KSBtZWV0cyBhbGwgeW91ciBj cml0ZXJpYS4KPgo+QXBwbGXigJlzIOKAnGlCZWFjb27igJ0gdGVjaG5vbG9neSB1c2VzIFJTU0kg ZnJvbSBCTEUgYW5kIHNvbWUgZnVkZ2luZyBhbGdvcml0aG1zIHRvIGFwcHJveGltYXRlIGRpc3Rh bmNlL3Byb3hpbWl0eS7CoAo+Cj5SU1NJIHN1cHBvcnQgd2l0aGluIEJMRSBjaGlwc2V0cyBpcyBp bW11dGFibGUsIHNvIGl04oCZcyBpbiBhbGwgdGhlIGNoaXBzZXRzLgo+Cj5JIGhhdmUgYSBmdW4g ZGVtbyB3aGVyZSBJIOKAnHRyaWFuZ3VsYXRl4oCdIHdoZXJlIG15IGxhcHRvcCBpcyByZWxhdGl2 ZSB0byB0aGUgdmFyaW91cyBXaW1vdG8gc2Vuc29ycyBpdCDigJxzZWVz4oCdLiBJdOKAmXMgZmFy IGZyb20gcGVyZmVjdCwgYnV0IGl0IG1ha2VzIGEgbG90IG9mIHBlb3BsZSBnbyDigJx3b3figJ0u Cj4KPkVtYWlsIG1lIG9mZi1saXN0IGlmIHlvdSBsaWtlIChJIGRvIHRoaXMgZm9yIGEgbGl2aW5n IDopICkuCj4KPi1tCj4KPgo+LS3CoAo+TWFyYyBOaWNob2xhcwo+U2VudCB3aXRoIEFpcm1haWwK Pgo+T24gSnVseSAzMCwgMjAxNCBhdCAxOjQyOjI3IFBNLCBEZW5ueSBFc3RlcmxpbmUgKGRlc3Rl cmxpbmVAZ21haWwuY29tKSB3cm90ZToKPgo+TmVlZGVkIC0gd2lyZWxlc3MgdHJhbnNjZWl2ZXIg bW9kdWxlIGZvciBub3J0aCBhbWVyaWNhbiBvcGVyYXRpb24uIEkgaGF2ZSAgCj5jb250cm9sIG92 ZXIgYm90aCBlbmRzLCBzbyBtb3N0IGFueSBwcm90b2NvbCBpcyByZWFzb25hYmx5IHBvc3NpYmxl ICAKPihCbHVldG9vdGgsIHppZ2JlZSwgd2lmaSwgZXRjKSBMaWtlbHkgYSAxNmJpdCBtaWNybyBv biBib3RoIGVuZHMuICAKPkZ1bmN0aW9uYWxseSBJIG5lZWQgYmktZGlyZWN0aW9uYWwgY29udHJv bCBhbmQgc3RhdHVzIGluZm9ybWF0aW9uIG9uIHRoZSAgCj5vcmRlciBvZiAxMDAgYnl0ZXMgYSBz ZWNvbmQsIGRlc2lyZWQgbGF0ZW5jeSB1bmRlciA1MG1TLiAgCj5NaW5pbXVtIHJhbmdlIG9mIDEw MCBmZWV0IGxpbmUgb2Ygc2lnaHQuIChwcmFjdGljYWwgb3BlcmF0aW5nIHJhbmdlIDMwLTUwICAK PmZlZXQpICAKPlVuaXQgY29zdCBub3QgdG9vLXRvbyBjcml0aWNhbCAkNTAgZWEgb2ssICQyMCBl YSBiZXR0ZXIuICAKPlJlbGF0aXZlbHkgc21hbGwsIGhhcyB0byBmaXQgaW50byBhIGhhbmQgaGVs ZCBkZXZpY2UgYWJvdXQgdGhlIHNpemUgb2YgYSAgCj5ETU0uICAKPkludGVncmF0ZWQgYW50ZW5u YSBkZXNpcmFibGUuICAKPlBvd2VyIHJlcXVpcmVtZW50cyBub3QgY29uc3RyYWluaW5nIC0gb3Ro ZXIgcGFydHMgb2YgdGhlIHN5c3RlbSB1c2UgMTAncyBvZiAgCj53YXR0cywgc2hhdmluZyBtaWxs aXdhdHMgaGVyZSBzb21ld2hhdCBwb2ludGxlc3MuICAKPkltbWVkaWF0ZSBkZW1hbmQgcGVyaGFw cyAxMDAgdW5pdHMsIGlmIGFsbCBnb2VzIHdlbGwsIG1heSBuZWVkIHRvIHNjYWxlIHVwICAKPnRv IDEwMDAgdW5pdHMgYSB5ZWFyLiAgCj4KPihUaGlzIG5leHQgYml0IGlzIHRoZSBkaWZmaWN1bHQg cGFydCkgIAo+Cj5JIG5lZWQgYSB3YXkgdG8gbWVhc3VyZSB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0 d28gb3BlcmF0aW5nIG1vZHVsZXMuICAKPkknbSB0aGlua2luZyBJIGNhbiBnZXQgYSByZWFzb25h YmxlIGFwcHJveGltYXRpb24gZnJvbSBzaWduYWwgc3RyZW5ndGggLSBzbyAgCj5JIHdvdWxkIG5l ZWQgdG8gYmUgYWJsZSB0byByZWFkIHNpZ25hbCBzdHJlbmd0aCBpbmZvcm1hdGlvbiBhdCBsZWFz dC4gIAo+T3RoZXIgb3B0aW9uIEknbSBjaGV3aW5nIG9uIGlzIHRpbWUgb2YgZmxpZ2h0LiBJdCdz IGF0IGxlYXN0IHRoZW9yZXRpY2FsbHkgIAo+cG9zc2libGUgdG8gcXVlcnkgcmVtb3RlIG1vZHVs ZSBhbmQgbWVhc3VyZSB0aGUgdGltZSBmcm9tIHF1ZXJ5IHRvICAKPnJlc3BvbnNlLiBBbnkgZGln aXRhbCBzaWduYWwgcHJvY2Vzc2luZyBpcyBnb2luZyB0byB0YWtlIHZhc3RseSBtb3JlIHRpbWUg IAo+dGhhbiB0aGUgc2lnbmFsIHRha2VzIHRvIHRyYXZlbCwgc28gdGhpcyBtYXkgYmUgY2hhbGxl bmdpbmcgOi0pIEkgaGF2ZSBzb21lICAKPnRob3VnaHRzLCBidXQgdGhpcyB3b3VsZCBiZSB2YXN0 bHkgZWFzaWVyIGlmIHRoZXJlIHdlcmUgc29tZSBzdXBwb3J0aW5nICAKPmZ1bmN0aW9ucyBpbiB0 aGUgcmFkaW8gbW9kdWxlLiAgCj4KPi1EZW5ueSAgCj4tLSAgCj5odHRwOi8vd3d3LnBpY2xpc3Qu Y29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlICAKPlZpZXcvY2hh bmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0ICAKPmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUv bWFpbG1hbi9saXN0aW5mby9waWNsaXN0ICAKPi0tIAo+aHR0cDovL3d3dy5waWNsaXN0LmNvbS90 ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+Vmlldy9jaGFuZ2UgeW91 ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9s aXN0aW5mby9waWNsaXN0CgoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlw IG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xp c3QK .