Re: l4-hackers Digest, Vol 246, Issue 9
Torsten Wierschin <[email protected]> Mon, 19 May 2025 08:11:58 +0200
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <CAFbuB+V33EdSu==MNfDBvfPHOFiKNhoekU0N5pVzLjYBEYZGtw@mail.gmail.com> |
SGkgdGhlcmUhDQoNCkluIG15IG9waW5pb24sIHRoZSBwcm9ibGVtIGRpc2N1c3NlZCBoZXJlIGNh biBiZSBzb2x2ZWQgcXVpdGUgd2VsbA0KdXNpbmcgeW9jdG8gb3IgYnVpbGRyb290IG9yIHNvbWV0 aGluZyBlbHNlLiBJZiBJIGV2ZXIgZmluZCB0aGUgdGltZSwNCkknZCBiZSBoYXBweSB0byBwdWJs aXNoIG15IHlvY3RvIGJ1aWxkIGVudmlyb25tZW50IGZvciBsNHJlLiBCdXQgbWF5YmUNCnNvbWVv bmUgZWxzZSB3aWxsIGJlIGZhc3Rlcj8NCg0KSSdkIGxpa2UgdG8gdGhhbmsgeW91IGZvciB0aGUg bWFueSB2ZXJ5IHZhbHVhYmxlIHRpcHMgcG9zdGVkIGhlcmUuDQoNClRvcnN0ZW4NCg0KQW0gRG8u LCAxNS4gTWFpIDIwMjUgdW0gMDA6MzQgVWhyIHNjaHJpZWINCjxsNC1oYWNrZXJzLXJlcXVlc3RA b3MuaW5mLnR1LWRyZXNkZW4uZGU+Og0KPg0KPiBTZW5kIGw0LWhhY2tlcnMgbWFpbGluZyBsaXN0 IHN1Ym1pc3Npb25zIHRvDQo+ICAgICAgICAgbDQtaGFja2Vyc0Bvcy5pbmYudHUtZHJlc2Rlbi5k ZQ0KPg0KPiBUbyBzdWJzY3JpYmUgb3IgdW5zdWJzY3JpYmUgdmlhIGVtYWlsLCBzZW5kIGEgbWVz c2FnZSB3aXRoIHN1YmplY3Qgb3INCj4gYm9keSAnaGVscCcgdG8NCj4gICAgICAgICBsNC1oYWNr ZXJzLXJlcXVlc3RAb3MuaW5mLnR1LWRyZXNkZW4uZGUNCj4NCj4gWW91IGNhbiByZWFjaCB0aGUg cGVyc29uIG1hbmFnaW5nIHRoZSBsaXN0IGF0DQo+ICAgICAgICAgbDQtaGFja2Vycy1vd25lckBv cy5pbmYudHUtZHJlc2Rlbi5kZQ0KPg0KPiBXaGVuIHJlcGx5aW5nLCBwbGVhc2UgZWRpdCB5b3Vy IFN1YmplY3QgbGluZSBzbyBpdCBpcyBtb3JlIHNwZWNpZmljDQo+IHRoYW4gIlJlOiBDb250ZW50 cyBvZiBsNC1oYWNrZXJzIGRpZ2VzdC4uLiINCj4NCj4gVG9kYXkncyBUb3BpY3M6DQo+DQo+ICAg IDEuIFJlOiBDb25maWd1cmF0aW9uLCBjb21wb25lbnQgYW5kIHJlcG9zaXRvcnkgdmVyc2lvbmlu ZyAod2FzIFJlOiBVcGdyYWRlIGlzc3Vlcy4gVk0gd29uJ3Qgc3RhcnQuKQ0KPiAgICAgICAoTWFy Y3VzIEjDpGhuZWwpDQo+ICAgIDIuIFJlOiBDb25maWd1cmF0aW9uLCBjb21wb25lbnQgYW5kIHJl cG9zaXRvcnkgdmVyc2lvbmluZyAod2FzIFJlOiBVcGdyYWRlIGlzc3Vlcy4gVk0gd29uJ3Qgc3Rh cnQuKQ0KPiAgICAgICAoUGF1bCBCb2RkaWUpDQo+ICAgIDMuIFJFOiBDb25maWd1cmF0aW9uLCBj b21wb25lbnQgYW5kIHJlcG9zaXRvcnkgdmVyc2lvbmluZyAod2FzIFJlOiBVcGdyYWRlIGlzc3Vl cy4gVk0gd29uJ3Qgc3RhcnQuKQ0KPiAgICAgICAoUmljaGFyZCBDbGFyaykNCj4NCj4NCj4gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPg0KPiBNZXNzYWdlOiAxDQo+IERhdGU6IFdlZCwgMTQgTWF5IDIwMjUgMTY6 NTI6NDggKzAyMDANCj4gRnJvbTogTWFyY3VzIEjDpGhuZWwgPHN1cHBvcnRAa2VybmtvbnplcHQu Y29tPg0KPiBTdWJqZWN0OiBSZTogQ29uZmlndXJhdGlvbiwgY29tcG9uZW50IGFuZCByZXBvc2l0 b3J5IHZlcnNpb25pbmcgKHdhcw0KPiAgICAgICAgIFJlOiBVcGdyYWRlIGlzc3Vlcy4gIFZNIHdv bid0IHN0YXJ0LikNCj4gVG86IFBhdWwgQm9kZGllIDxwYXVsQGJvZGRpZS5vcmcudWs+LCBsNC1o YWNrZXJzQG9zLmluZi50dS1kcmVzZGVuLmRlDQo+IE1lc3NhZ2UtSUQ6DQo+ICAgICAgICAgPGM2 NDgxNTg2OTNiNGU4ZjU1NmI0ZDM3MWY3NGU3NzUxZGNlODBlNDAuY2FtZWxAa2VybmtvbnplcHQu Y29tPg0KPiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KPg0KPiBP biBNb24sIDIwMjUtMDUtMTIgYXQgMjI6MzcgKzAyMDAsIFBhdWwgQm9kZGllIHdyb3RlOg0KPiA+ IE9uIE1vbmRheSwgMTIgTWF5IDIwMjUgMTU6MDk6NTIgQ0VTVCBNYXJjdXMgSMOkaG5lbCB3cm90 ZToNCj4gPiA+DQo+ID4gPiBPbiBNb24sIDIwMjUtMDUtMDUgYXQgMTE6MjUgKzAwMDAsIFJpY2hh cmQgQ2xhcmsgd3JvdGU6DQo+ID4gPg0KPiA+ID4gPiBCdXQgdGhhdCBicmluZ3MgbWUgdG8gYSBi aWdnZXIgcXVlc3Rpb24uDQo+ID4gPiA+IEhvdyBkbyBJIGZldGNoIG9ubHkgTG9uZy1UZXJtLVN1 cHBvcnQgb3IgRnVsbHktVGVzdGVkLWFuZC1CbGVzc2VkDQo+ID4gPiA+IHZlcnNpb25zPyBHaXRo dWIgaXMgd29lZnVsbHkgbGFja2luZyBpbiBwcm9wZXIgdmVyc2lvbiBzdXBwb3J0Lg0KPiA+ID4g PiBJIGNhbid0IHNlbmQgcmFuZG9tIHVudGVzdGVkIGNvZGUgdG8gbXkgY3VzdG9tZXJzLg0KPiA+ ID4NCj4gPiA+IEFsbCBjb2RlIHdlIHB1c2ggdG8gR2l0aHViIHdlbnQgdGhyb3VnaCBvdXIgaW50 ZXJuYWwgUUEgcHJvY2VzcywgcnVubmluZw0KPiA+ID4gY29tcGlsZSBjaGVja3MgZm9yIGFsbCBv dXIgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMgYXMgd2VsbCBhcyBhbiBleHRlbnNpdmUNCj4gPiA+ IHRlc3Qgc3VpdGUgb24gZGlmZmVyZW50IHBsYXRmb3JtcyBhbmQgY29uZmlndXJhdGlvbnMuIFNv IGZyb20gdGhhdCBwb2ludCBvZg0KPiA+ID4gdmlldyBJIHdvdWxkIHNheSB5b3UgY2FuIGNvbnNp ZGVyIGFsbCBjb2RlIHB1c2hlZCB0byBHaXRodWIgYXMNCj4gPiA+IOKAnEZ1bGx5LVRlc3RlZC1h bmQtQmxlc3NlZOKAnS4NCj4gPg0KPiA+IEkgZG9uJ3QgaGF2ZSBhIHN0cm9uZyBvcGluaW9uIGFi b3V0IHF1YWxpdHkgYXNzdXJhbmNlIGZvciBwZW9wbGUgd2FudGluZyB0bw0KPiA+IHByb3ZpZGUg c29sdXRpb25zIGZvciBwYXlpbmcgY3VzdG9tZXJzLCBidXQgSSBoYXZlIHBlcnNvbmFsbHkgd29u ZGVyZWQgaG93IEkNCj4gPiBtaWdodCBzdWNjZXNzZnVsbHkgYW5kIGNvbnZlbmllbnRseSByZXBy b2R1Y2UgcmVwb3NpdG9yeSBjb25maWd1cmF0aW9ucyB3aGVuDQo+ID4gY3JlYXRpbmcgbmV3IEw0 UmUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLg0KPiA+DQo+ID4gRm9yIGV4YW1wbGUsIGlmIEkg ZGVjaWRlIHRvIHdvcmsgb24gc3VwcG9ydCBmb3IgYSBuZXcgYm9hcmQsIEkgbWlnaHQgd2FudCB0 bw0KPiA+IHJlcGxpY2F0ZSB0aGUgTDRSZSBjb25maWd1cmF0aW9uIEkgaGF2ZSBiZWVuIHVzaW5n IGZvciBhbm90aGVyIGJvYXJkLiBTdGFydGluZw0KPiA+IGZyb20gc2NyYXRjaCwgaXQgd2FzIHBv c3NpYmxlIHRvIHVzZSB0aGUgaGFtIHRvb2wsIGJ1dCBkZXNwaXRlIGl0IGFwcGFyZW50bHkNCj4g PiBtYWludGFpbmluZyB2ZXJzaW9uIGRldGFpbHMgZm9yIHRoZSBkaWZmZXJlbnQgcmVwb3NpdG9y aWVzLCBpdCB3YXNuJ3QNCj4gPiBwYXJ0aWN1bGFybHkgY2xlYXIgaG93IG9uZSBtaWdodCBwcmVz ZXJ2ZSBvciBleHBvcnQgdGhhdCBtZXRhZGF0YSBmb3IgZnVydGhlcg0KPiA+IHVzZS4NCj4gPg0K PiA+IEkgbm93IHNlZSB0aGF0IHRoZXJlIGlzIGFub3RoZXIgdG9vbCBpbnZvbHZlZDoNCj4gPg0K PiA+IGh0dHBzOi8vbDRyZS5vcmcvZ2V0dGluZ19zdGFydGVkL2JvYi5odG1sDQo+ID4NCj4gPiBB bHRob3VnaCB0aGF0IGRvZXNuJ3Qgc2VlbSB0byByZXBsYWNlIHRoZSBoYW0gdG9vbDoNCj4gPg0K PiA+IGh0dHBzOi8vbDRyZS5vcmcvZ2V0dGluZ19zdGFydGVkL21ha2UuaHRtbA0KPiA+DQo+ID4g TmF0dXJhbGx5LCBvbmUgbWlnaHQgc2F5IHRoYXQgdGhpcyBpcyB0aGUgcG9pbnQgYXQgd2hpY2gg YW55b25lIHNlcmlvdXMtZW5vdWdoDQo+ID4gYWJvdXQgdXNpbmcgTDRSZSB3b3VsZCBnZXQgaW4g dG91Y2ggd2l0aCBLZXJua29uemVwdCBhbmQgc3RhcnQgdGFsa2luZw0KPiA+IGJ1c2luZXNzLCBi dXQgc3VjaCBhIGxhY2sgb2YgY2xhcml0eSB0ZW5kcyB0byBzdWdnZXN0IHRoYXQgZWl0aGVyIHRo ZXJlIGFyZW4ndA0KPiA+IHBhcnRpY3VsYXJseSBhZGVxdWF0ZSBzb2x1dGlvbnMgZm9yIHN1Y2gg ZnVuZGFtZW50YWwgbmVlZHMgb3IgdGhhdCBhbnkNCj4gPiBhZGVxdWF0ZSBzb2x1dGlvbnMgdGhh dCBtYXkgZXhpc3QgYXJlbid0IGZvciBwZW9wbGUgbWVyZWx5IGludmVzdGlnYXRpbmcgb3INCj4g PiBldmFsdWF0aW5nIHRoZSB0ZWNobm9sb2d5Lg0KPiA+DQo+ID4gQWdhaW4sIGl0IGlzbid0IG15 IGNvbmNlcm4gaWYgdGhlcmUncyBhIGJ1c2luZXNzIGRlY2lzaW9uIGludm9sdmVkIHRoYXQNCj4g PiBldmVyeWJvZHkgZmVlbHMgY29tZm9ydGFibGUgd2l0aCwgYW5kIGlmIHRoZXJlJ3MgYSBzdGVh ZHkgc3RyZWFtIG9mIGludGVyZXN0ZWQNCj4gPiBjdXN0b21lcnMgdGhhdCBzZWVtcyB0byBqdXN0 aWZ5IHN1Y2ggYSBkZWNpc2lvbiwgYnV0IEkgY291bGQgZWFzaWx5IHNlZQ0KPiA+IHBvdGVudGlh bCB1c2VycyBnb2luZyBlbHNld2hlcmUgaWYgdGhlIGFuc3dlciB0byBzaW1wbGUgcXVlc3Rpb25z IGlzICJ0YWxrIHRvDQo+ID4gdXMiLiBFdmVuIGluIHJlYXNvbmFibHkgbGFyZ2Ugb3JnYW5pc2F0 aW9ucywgaGl0dGluZyBhbiBhcHByb3ZhbCBiYXJyaWVyIHRoYXQNCj4gPiAidGFsayB0byB1cyIg b3IgInJlZ2lzdGVyIHlvdXIgaW50ZXJlc3QiIHJlcHJlc2VudHMgY2FuIGJlIGEgc3Ryb25nDQo+ ID4gZGlzaW5jZW50aXZlLCBlc3BlY2lhbGx5IGlmIG90aGVyIHNvbHV0aW9ucyBleGlzdC4NCj4g Pg0KPiA+IEkgYWNjZXB0IHRoYXQgbXkgb3BpbmlvbiBpc24ndCBpbXBvcnRhbnQsIGhvd2V2ZXIs IHNpbmNlIG15IG93biBhY3Rpdml0aWVzIGFyZQ0KPiA+IGNvbmZpbmVkIHRvIG15IG93biBpbnRl cmVzdHMgYW5kIGRyaXZlbiBieSBhIGdlbmVyYWwgYmVsaWVmIHRoYXQgTDRSZQ0KPiA+IHJlcHJl c2VudHMgYSByZWFzb25hYmxlIGZvdW5kYXRpb24gZm9yIGNlcnRhaW4ga2luZHMgb2Ygc3lzdGVt cy4gVGhhdCB0aGVyZQ0KPiA+IGlzbid0IGV4YWN0bHkgbXVjaCBvZiBhIHB1YmxpYyBjb21tdW5p dHkgYXJvdW5kIEw0UmUgY291bGQgYWxzbyBiZSByZWdhcmRlZCBhcw0KPiA+IGEgZGlzaW5jZW50 aXZlIGZvciBwb3RlbnRpYWwgYWRvcHRlcnMsIHdoaWNoIGlzIHVuZm9ydHVuYXRlLg0KPiA+DQo+ ID4gUGF1bA0KPg0KPiBIaSBQYXVsLA0KPg0KPiB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3Vy IHRob3VnaHRmdWwgbWVzc2FnZSDigJQgaXQncyByZWFsbHkgYXBwcmVjaWF0ZWQuDQo+DQo+IEZp cnN0IG9mIGFsbDogeW91ciBvcGluaW9uIGFic29sdXRlbHkgbWF0dGVycy4gVGhlIGlucHV0IGZy b20gdXNlcnMgbGlrZSB5b3UsIHdobyBlbmdhZ2UgZGVlcGx5IGFuZCBzaGFyZSBjYW5kaWQgZmVl ZGJhY2ssDQo+IGhlbHBzIHVzIG1ha2UgTDRSZSBiZXR0ZXIuIFdoaWxlIHdlIGFyZSBhd2FyZSB0 aGF0IEw0UmUgaXMgc3RpbGwgcXVpdGUgbmljaGUgYW5kIHRoZSBjb21tdW5pdHkgc21hbGwsIHdl IHdhbnQgdG8gc3VwcG9ydCBpdA0KPiBhcyBiZXN0IHdlIGNhbiBhbmQgd291bGQgbG92ZSB0byBz ZWUgaXQgZ3Jvdy4NCj4NCj4gSSB0aGluayB5b3UncmUgcmFpc2luZyBhIGRpZmZlcmVudCwgYnV0 IGVxdWFsbHkgaW1wb3J0YW50LCBwb2ludCBjb21wYXJlZCB0byB3aGF0IFJpY2hhcmQgd2FzIGFz a2luZy4gTXkgb3JpZ2luYWwgcmVzcG9uc2UNCj4gZm9jdXNlZCBvbiB0aGUgaWRlYSBvZiBwcm92 aWRpbmcgYSBmdWxseSB0ZXN0ZWQgcmVsZWFzZSBmb3IgYSBzcGVjaWZpYyBjb21iaW5hdGlvbiBv ZiBzb2Z0d2FyZSBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSwNCj4gd2hpY2ggaXMgdW5kZXJz dGFuZGFibHkgZGlmZmljdWx0IGZvciB1cyB0byBtYWludGFpbiBhcyBwYXJ0IG9mIHRoZSBvcGVu LXNvdXJjZSBvZmZlcmluZyBnaXZlbiBvdXIgbGltaXRlZCByZXNvdXJjZXMuDQo+DQo+IFlvdXIg Y29uY2VybiDigJQgYWJvdXQgYmVpbmcgYWJsZSB0byByZXByb2R1Y2UgYSBrbm93biB3b3JraW5n IHN0YXRlIG9mIHlvdXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQg4oCUIGlzIG11Y2ggbW9yZQ0K PiBmdW5kYW1lbnRhbC4gWW91J3JlIHJpZ2h0OiB0aGlzIHNob3VsZCBiZSBzdHJhaWdodGZvcndh cmQsIGFuZCBpZiBpdCdzIG5vdCwgdGhlbiBpdCdzIHNvbWV0aGluZyB3ZSB3YW50IHRvIGltcHJv dmUuIEVhc2Ugb2YNCj4gdXNlIGFuZCBhY2Nlc3NpYmlsaXR5IGFyZSBpbXBvcnRhbnQgdG8gdXMs IGFuZCBzb21ldGltZXMgd2XigJlyZSBqdXN0IHRvbyBjbG9zZSB0byB0aGUgc3lzdGVtIHRvIHNl ZSB3aGVyZSBmcmljdGlvbiBhcmlzZXMg4oCUDQo+IHNvIHRoYW5rIHlvdSBhZ2FpbiBmb3IgcG9p bnRpbmcgdGhpcyBvdXQuDQo+DQo+IFRvIGNsYXJpZnkgb25lIGtleSBwb2ludDogd2UgZG9u4oCZ dCBkZWxpYmVyYXRlbHkgd2l0aGhvbGQgZmVhdHVyZXMgb3IgdXNhYmlsaXR5IGltcHJvdmVtZW50 cyBmcm9tIHRoZSBvcGVuLXNvdXJjZSB2ZXJzaW9uIG9mDQo+IEw0UmUgdG8gcHVzaCBwZW9wbGUg aW50byBjb21tZXJjaWFsIGNvbnRhY3QuIFRoYXTigJlzIG5vdCBvdXIgYnVzaW5lc3MgcGhpbG9z b3BoeS4gSW4gZmFjdCwgdGhhdCB3b3VsZCBnbyBkaXJlY3RseSBhZ2FpbnN0DQo+IG91ciBnb2Fs IG9mIGdldHRpbmcgTDRSZSBpbnRvIG1vcmUgaGFuZHMgYW5kIG1ha2luZyBpdCBlYXNpZXIgdG8g d29yayB3aXRoLg0KPg0KPiBTb21lIG9mIHRoZSBjb252ZW5pZW5jZSBmZWF0dXJlcyDigJQgbGlr ZSByZWxlYXNlIHRhZ2dpbmcg4oCUIGRvIGV4aXN0IGluIG91ciBjdXN0b21lciByZXBvc2l0b3Jp ZXMsIGJ1dCBpdOKAmXMgbW9yZSBvZiBhDQo+IHdvcmtmbG93IGhhYml0IHRoYW4gYSBjb25zY2lv dXMgZGVjaXNpb24gdG8gZXhjbHVkZSB0aGVtIGZyb20gR2l0SHViLiBObyBvbmUgaGFkIGJyb3Vn aHQgdXAgdGhlIG5lZWQgZm9yIHRoYXQga2luZCBvZg0KPiByZXByb2R1Y2liaWxpdHkgaW4gdGhl IG9wZW4gcmVwbyBzbyBmYXIg4oCUIGFuZCBub3cgdGhhdCB5b3UgaGF2ZSwgbGV04oCZcyBmaXgg aXQuDQo+DQo+IFdvdWxkIHNvbWV0aGluZyBsaWtlIHdlZWtseSB0YWdzIG9uIEdpdEh1YiBoZWxw IHlvdT8gRm9yIGV4YW1wbGUsIGEgdGFnIGxpa2UgYGw0cmUtMjAyNS0wNS0xNGAgdGhhdCB5b3Ug Y291bGQgdXNlIHdpdGggYGhhbQ0KPiBjaGVja291dGAgdG8gcmVwcm9kdWNlIHRoYXQgc3BlY2lm aWMgc3RhdGU/DQo+DQo+IEFsc28sIGhhbSBhbHJlYWR5IHN1cHBvcnRzIHBpbm5lZCByZXZpc2lv bnMgaW4gdGhlIG1hbmlmZXN0IChgcmV2aXNpb25gIGF0dHJpYnV0ZSBpbiBgcHJvamVjdGAgdGFn cyksIHNvIHlvdSBjYW4gc2hhcmUgYQ0KPiBjb21wbGV0ZSBhbmQgcmVwcm9kdWNpYmxlIHN0YXRl IHRoYXQgd2F5IGFzIHdlbGwuIEJ1dCBJIGFncmVlIHRoYXQgdGhpcyBjb3VsZCBiZSBtYWRlIG1v cmUgY29udmVuaWVudC4NCj4NCj4gT25lIHBvc3NpYmxlIGltcHJvdmVtZW50IGNvdWxkIGJlIGEg YGhhbSBjcmVhdGUtcGlubmVkLW1hbmlmZXN0YCBzdWItY29tbWFuZCB0aGF0IGdlbmVyYXRlcyBz dWNoIGEgbWFuaWZlc3QgZnJvbSB5b3VyDQo+IGN1cnJlbnQgc3RhdGUuIFRoYXTigJlzIG5vdCB0 cml2aWFsIOKAlCBpdCB3b3VsZCByZXF1aXJlIHJlc29sdmluZyBkaWZmZXJlbnQgcmVtb3RlcyBh bmQgY2hlY2tpbmcgdGhhdCBhbGwgY29tbWl0cyBhcmUgYWN0dWFsbHkNCj4gcmVhY2hhYmxlIGlu IG9uZSBvZiB0aGUgcmVtb3RlcyDigJQgYnV0IGl04oCZcyBkZWZpbml0ZWx5IGRvYWJsZS4gSWYg eW91J3JlIGludGVyZXN0ZWQsIGZlZWwgZnJlZSB0byBvcGVuIGEgcHJvcG9zYWwgb3IgZXZlbiBh bg0KPiBpc3N1ZSBvbiB0aGUgaGFtIEdpdEh1YiByZXBvc2l0b3J5IOKAlCB3ZeKAmWQgbG92ZSB0 byBoZWFyIHlvdXIgdGhvdWdodHMgb3IgY29sbGFib3JhdGUgb24gYSBzb2x1dGlvbi4NCj4NCj4g V291bGQgYW55IG9mIHRoZXNlIGlkZWFzIGhlbHAgaW4geW91ciB3b3JrZmxvdz8gRG8geW91IGhh dmUgc29tZXRoaW5nIGVsc2UgaW4gbWluZD8gV2UncmUgYWx3YXlzIGhhcHB5IHRvIGltcHJvdmUg TDRSZQ0KPiB0b2dldGhlciB3aXRoIHRoZSBwZW9wbGUgd2hvIHVzZSBpdC4NCj4NCj4gQmVzdCBy ZWdhcmRzLA0KPg0KPiAtIE1hcmN1cyBIw6RobmVsDQo+ICAgUHJpbmNpcGFsIEVuZ2luZWVyaW5n IExlYWQNCj4NCj4NCj4gLS0NCj4gKysrIFJlZ2lzdGVyIG5vdyBmb3Igb3VyIHdvcmtzaG9wIOKA nEdldCB0byBrbm93IEw0UmUgaW4gMyBkYXlz4oCdIG9uIE9jdG9iZXIgMjjigJMzMC4gTGVhcm4g dG8gZGVzaWduIGFuZCBkZXBsb3kgc2VjdXJlIHN5c3RlbQ0KPiBhcmNoaXRlY3R1cmVzIGZvciB5 b3VyIHByb2R1Y3Qgd2l0aCBMNFJlOiBodHRwczovL3d3dy5rZXJua29uemVwdC5jb20vd29ya3No b3AtZ2V0dGluZy1zdGFydGVkLXdpdGgtbDRyZS8gKysrDQo+DQo+IC0tLQ0KPg0KPiBLZXJua29u emVwdCBHbWJIDQo+IFNpdHo6IERyZXNkZW4NCj4gSFJCIDMxMTI5DQo+IEdlc2Now6RmdHNmw7xo cmVyOiBEci4tSW5nLiBNaWNoYWVsIEhvaG11dGgNCj4NCj4NCj4NCj4NCj4NCj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+DQo+IE1lc3NhZ2U6IDINCj4gRGF0ZTogV2VkLCAxNCBN YXkgMjAyNSAyMjowMTowOCArMDIwMA0KPiBGcm9tOiBQYXVsIEJvZGRpZSA8cGF1bEBib2RkaWUu b3JnLnVrPg0KPiBTdWJqZWN0OiBSZTogQ29uZmlndXJhdGlvbiwgY29tcG9uZW50IGFuZCByZXBv c2l0b3J5IHZlcnNpb25pbmcgKHdhcw0KPiAgICAgICAgIFJlOiBVcGdyYWRlIGlzc3Vlcy4gIFZN IHdvbid0IHN0YXJ0LikNCj4gVG86IGw0LWhhY2tlcnNAb3MuaW5mLnR1LWRyZXNkZW4uZGUsIE1h cmN1cyBIw6RobmVsDQo+ICAgICAgICAgPHN1cHBvcnRAa2VybmtvbnplcHQuY29tPg0KPiBNZXNz YWdlLUlEOiA8MjcyODY0OC5CZGREVktzcVFYQGphc29uPg0KPiBDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KPg0KPiBPbiBXZWRuZXNkYXksIDE0IE1heSAyMDI1IDE2 OjUyOjQ4IENFU1QgTWFyY3VzIEjDpGhuZWwgd3JvdGU6DQo+ID4NCj4gPiB0aGFuayB5b3UgdmVy eSBtdWNoIGZvciB5b3VyIHRob3VnaHRmdWwgbWVzc2FnZSDigJQgaXQncyByZWFsbHkgYXBwcmVj aWF0ZWQuDQo+DQo+IFRoYW5rIHlvdSBmb3IgdGFraW5nIHRoZSB0aW1lIHRvIHJlc3BvbmQhIEkg ZGlkbid0IHJlYWxseSBleHBlY3Qgc3VjaCBhDQo+IGNvbXByZWhlbnNpdmUgcmVwbHksIHNvIGl0 IGlzIG11Y2ggYXBwcmVjaWF0ZWQuDQo+DQo+ID4gRmlyc3Qgb2YgYWxsOiB5b3VyIG9waW5pb24g YWJzb2x1dGVseSBtYXR0ZXJzLiBUaGUgaW5wdXQgZnJvbSB1c2VycyBsaWtlDQo+ID4geW91LCB3 aG8gZW5nYWdlIGRlZXBseSBhbmQgc2hhcmUgY2FuZGlkIGZlZWRiYWNrLCBoZWxwcyB1cyBtYWtl IEw0UmUNCj4gPiBiZXR0ZXIuIFdoaWxlIHdlIGFyZSBhd2FyZSB0aGF0IEw0UmUgaXMgc3RpbGwg cXVpdGUgbmljaGUgYW5kIHRoZSBjb21tdW5pdHkNCj4gPiBzbWFsbCwgd2Ugd2FudCB0byBzdXBw b3J0IGl0IGFzIGJlc3Qgd2UgY2FuIGFuZCB3b3VsZCBsb3ZlIHRvIHNlZSBpdCBncm93Lg0KPg0K PiBJdCBpcyByZWFzc3VyaW5nIHRvIGhlYXIgdGhhdCB5b3UgdGFrZSBmZWVkYmFjayBpbnRvIGNv bnNpZGVyYXRpb24sIGV2ZW4gZnJvbQ0KPiB0aG9zZSBvZiB1cyB3aG8gYXJlIG5vdCBkaXJlY3Rs eSBjb250cmlidXRpbmcgdG8geW91ciB3b3JrIG9yLCBpbmRlZWQsIHlvdXINCj4gYnVzaW5lc3Mu DQo+DQo+ID4gSSB0aGluayB5b3UncmUgcmFpc2luZyBhIGRpZmZlcmVudCwgYnV0IGVxdWFsbHkg aW1wb3J0YW50LCBwb2ludCBjb21wYXJlZCB0bw0KPiA+IHdoYXQgUmljaGFyZCB3YXMgYXNraW5n LiBNeSBvcmlnaW5hbCByZXNwb25zZSBmb2N1c2VkIG9uIHRoZSBpZGVhIG9mDQo+ID4gcHJvdmlk aW5nIGEgZnVsbHkgdGVzdGVkIHJlbGVhc2UgZm9yIGEgc3BlY2lmaWMgY29tYmluYXRpb24gb2Yg c29mdHdhcmUNCj4gPiBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSwgd2hpY2ggaXMgdW5kZXJz dGFuZGFibHkgZGlmZmljdWx0IGZvciB1cyB0bw0KPiA+IG1haW50YWluIGFzIHBhcnQgb2YgdGhl IG9wZW4tc291cmNlIG9mZmVyaW5nIGdpdmVuIG91ciBsaW1pdGVkIHJlc291cmNlcy4NCj4NCj4g SSBjb21wbGV0ZWx5IGFncmVlIHRoYXQgaWYgc29tZW9uZSBpcyBpbiBuZWVkIG9mIHNvbWV0aGlu ZyB0aGF0IHJlcXVpcmVzIGFuDQo+IGludmVzdG1lbnQgb2YgdGltZSBhbmQgcmVzb3VyY2VzLCB0 aGVuIHRoZXkgc2hvdWxkIGVpdGhlciBpbnZlc3QgdGhlaXIgb3duDQo+IHRpbWUgYW5kIHJlc291 cmNlcywgd2hpY2ggaXMgZWZmZWN0aXZlbHkgd2hhdCBJIGhhdmUgZG9uZSBvdmVyIHRoZSBsYXN0 IGZldw0KPiB5ZWFycywgb3IgdGhleSBzaG91bGQgYmUgcHJlcGFyZWQgdG8gY29tcGVuc2F0ZSBv dGhlcnMgZm9yIHRoYXQgd29yay4gTm9ib2R5DQo+IHNob3VsZCBiZSByZXF1aXJlZCB0byBkbyBz b21ldGhpbmcgZm9yIHNvbWVvbmUgZWxzZSBmb3Igbm90aGluZyAtIHRoZXJlIGlzDQo+IGFscmVh ZHkgdG9vIG11Y2ggb2YgdGhhdCBoYXBwZW5pbmcgaW4gdGhlIG9wZW4gc291cmNlIHdvcmxkIC0g bm90IHRoYXQgYW55DQo+IHN1Y2ggcmVxdWVzdCB3YXMgbWFkZSwgSSBzaG91bGQgYWRkLg0KPg0K PiBQcm9kdWN0aXZlIGFjY2VzcyB0byBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9ucyBo YXMgYWx3YXlzIGJlZW4gYQ0KPiBjaGFsbGVuZ2UgZm9yIHNvZnR3YXJlIGVudmlyb25tZW50IGRl dmVsb3BlcnMsIGFuZCB0aGUgY29sbGFib3JhdGlvbiByZXF1aXJlZA0KPiB0byBkZWxpdmVyIHJv YnVzdCBzdXBwb3J0IGZvciBhIGdpdmVuIGhhcmR3YXJlIHBsYXRmb3JtIGNhbiBiZSBkaWZmaWN1 bHQgdG8NCj4gY29vcmRpbmF0ZS4gRXZlbiB3aXRoIHRvZGF5J3MgaGFyZHdhcmUsIG1vc3RseSBp bmV4cGVuc2l2ZSBmcm9tIGEgaGlzdG9yaWNhbA0KPiBwZXJzcGVjdGl2ZSwgdGhlcmUgaXMgc3Rp bGwgYSBzdWJzdGFudGlhbCBjb3N0IGluIGRldmVsb3BpbmcgdGhlIGNvcnJlc3BvbmRpbmcNCj4g c29mdHdhcmUgc3VwcG9ydC4NCj4NCj4gPiBZb3VyIGNvbmNlcm4g4oCUIGFib3V0IGJlaW5nIGFi bGUgdG8gcmVwcm9kdWNlIGEga25vd24gd29ya2luZyBzdGF0ZSBvZiB5b3VyDQo+ID4gZGV2ZWxv cG1lbnQgZW52aXJvbm1lbnQg4oCUIGlzIG11Y2ggbW9yZSBmdW5kYW1lbnRhbC4gWW91J3JlIHJp Z2h0OiB0aGlzDQo+ID4gc2hvdWxkIGJlIHN0cmFpZ2h0Zm9yd2FyZCwgYW5kIGlmIGl0J3Mgbm90 LCB0aGVuIGl0J3Mgc29tZXRoaW5nIHdlIHdhbnQgdG8NCj4gPiBpbXByb3ZlLiBFYXNlIG9mIHVz ZSBhbmQgYWNjZXNzaWJpbGl0eSBhcmUgaW1wb3J0YW50IHRvIHVzLCBhbmQgc29tZXRpbWVzDQo+ ID4gd2XigJlyZSBqdXN0IHRvbyBjbG9zZSB0byB0aGUgc3lzdGVtIHRvIHNlZSB3aGVyZSBmcmlj dGlvbiBhcmlzZXMg4oCUIHNvIHRoYW5rDQo+ID4geW91IGFnYWluIGZvciBwb2ludGluZyB0aGlz IG91dC4NCj4gPg0KPiA+IFRvIGNsYXJpZnkgb25lIGtleSBwb2ludDogd2UgZG9u4oCZdCBkZWxp YmVyYXRlbHkgd2l0aGhvbGQgZmVhdHVyZXMgb3INCj4gPiB1c2FiaWxpdHkgaW1wcm92ZW1lbnRz IGZyb20gdGhlIG9wZW4tc291cmNlIHZlcnNpb24gb2YgTDRSZSB0byBwdXNoIHBlb3BsZQ0KPiA+ IGludG8gY29tbWVyY2lhbCBjb250YWN0LiBUaGF04oCZcyBub3Qgb3VyIGJ1c2luZXNzIHBoaWxv c29waHkuIEluIGZhY3QsIHRoYXQNCj4gPiB3b3VsZCBnbyBkaXJlY3RseSBhZ2FpbnN0IG91ciBn b2FsIG9mIGdldHRpbmcgTDRSZSBpbnRvIG1vcmUgaGFuZHMgYW5kDQo+ID4gbWFraW5nIGl0IGVh c2llciB0byB3b3JrIHdpdGguDQo+DQo+IEkgdGhpbmsgaXQgaXMgZmluZSB0byBlbmNvdXJhZ2Ug cGVvcGxlIHRvIG1ha2UgY29udGFjdCBhbmQgdG8gZGlzY3Vzcw0KPiBvcHBvcnR1bml0aWVzLCBh bmQgSSBkb24ndCBzZXJpb3VzbHkgYmVsaWV2ZSB0aGF0IHBlb3BsZSBhcmUgYmVpbmcgaGVyZGVk IGluDQo+IHRoZSBkaXJlY3Rpb24gb2YgY29tbWVyY2lhbCBzdXBwb3J0LCBidXQgYW55IGtpbmQg b2Ygb2JzdGFjbGUgb3IgaHVyZGxlIGluIHRoZQ0KPiBpbmRlcGVuZGVudCBldmFsdWF0aW9uIG9m IGEgdGVjaG5vbG9neSBjYW4gYmUgZGlzc3Vhc2l2ZS4gU29tZSBldmFsdWF0b3JzIGFyZQ0KPiBt b3JlIGxpa2VseSB0byBtb3ZlIG9uIGFuZCBsb29rIGF0IG90aGVyIHRoaW5ncyB0aGFuIHRvIGN1 bHRpdmF0ZSBzb21lIGtpbmQgb2YNCj4gZGlhbG9ndWUuDQo+DQo+IFRoaXMgZG9lc24ndCBvbmx5 IGhhcHBlbiBpbiBhIGNvbW1lcmNpYWwgY29udGV4dC4gT24gcGxlbnR5IG9mIG9jY2FzaW9ucyBp bg0KPiBhY2FkZW1pYSwgSSBzYXcgcmVzZWFyY2hlcnMgZW5jb3VyYWdpbmcgb3RoZXJzIHRvIGdl dCBpbiB0b3VjaCwgaW4gb3JkZXIgdG8NCj4gd29yayBhcm91bmQgZGVmaWNpZW5jaWVzIGluIHRo ZSB3YXkgdGhleSBoYWQgY29tbXVuaWNhdGVkIG9yIHB1Ymxpc2hlZCB0aGVpcg0KPiB3b3JrLiBJ IGFsc28gc2F3IHRoZSBsb25nLXRlcm0gZWZmZWN0cyBvZiB0aGlzLCB3aGVyZSBwZW9wbGUgY291 bGQgbm90IGFjY291bnQNCj4gZm9yIHdoYXQgdGhleSBoYWQgcHVibGlzaGVkIGFmdGVyIG9ubHkg YSBmZXcgeWVhcnMsIHdpdGggdGhpcyBlbWVyZ2luZyB3aGVuIEkNCj4gd2FzIGFjdHVhbGx5IG1h a2luZyBjb250YWN0IHdpdGggdGhlbSB0byB0cnkgYW5kIGRpc3RyaWJ1dGUgdGhlaXIgb3JpZ2lu YWxseQ0KPiBwdWJsaXNoZWQgZGF0YS4NCj4NCj4gRW1wb3dlcmluZyBvdGhlciBwZW9wbGUgYXMg bXVjaCBhcyBwb3NzaWJsZSBvciBwcmFjdGljYWJsZSBtYXkgZXZlbnR1YWxseQ0KPiByZXR1cm4g c3VjaCBmYXZvdXJzLiBXaGVuIEkgcmV0dXJuIHRvIG15IG93biB3b3JrIGFmdGVyIGEgc3Vic3Rh bnRpYWwgcGVyaW9kDQo+IG9mIHRpbWUsIGl0IGlzIGFsbW9zdCBhcyBpZiBJIGFtIGp1c3QgYW5v dGhlciBwZXJzb24gdGFraW5nIGEgbG9vayBhdCBpdCwgdG9vLg0KPg0KPiA+IFNvbWUgb2YgdGhl IGNvbnZlbmllbmNlIGZlYXR1cmVzIOKAlCBsaWtlIHJlbGVhc2UgdGFnZ2luZyDigJQgZG8gZXhp c3QgaW4gb3VyDQo+ID4gY3VzdG9tZXIgcmVwb3NpdG9yaWVzLCBidXQgaXTigJlzIG1vcmUgb2Yg YSB3b3JrZmxvdyBoYWJpdCB0aGFuIGEgY29uc2Npb3VzDQo+ID4gZGVjaXNpb24gdG8gZXhjbHVk ZSB0aGVtIGZyb20gR2l0SHViLiBObyBvbmUgaGFkIGJyb3VnaHQgdXAgdGhlIG5lZWQgZm9yDQo+ ID4gdGhhdCBraW5kIG9mIHJlcHJvZHVjaWJpbGl0eSBpbiB0aGUgb3BlbiByZXBvIHNvIGZhciDi gJQgYW5kIG5vdyB0aGF0IHlvdQ0KPiA+IGhhdmUsIGxldOKAmXMgZml4IGl0Lg0KPg0KPiBJIGNh biB1bmRlcnN0YW5kIHRoYXQgaXQgY2FuIGJlIGVhc3kgdG8gb3Zlcmxvb2suIEhvdyBtYW55IHRp bWVzIGhhcyBvbmUgc2Vlbg0KPiBtaXNzaW5nIHRhZ3MgaW4gcHVibGljIHJlcG9zaXRvcmllcyBi ZWNhdXNlIEdpdCBtYWtlcyBpdCBlYXN5IHRvIGZvcmdldCB0bw0KPiBwdXNoIHRoZW0/IEkgYWxz byB1bmRlcnN0YW5kIHRoYXQgcHVibGljbHkgdGFnZ2luZyByZWxlYXNlcyBjYW4gbWFrZSBtaXN0 YWtlcw0KPiBkaWZmaWN1bHQgdG8gcmVjdGlmeSwgYnV0IEkgc3VwcG9zZSB0aGlzIGlzIGp1c3Qg YW5vdGhlciBoYXphcmQgb2YgcmVsZWFzZQ0KPiBtYW5hZ2VtZW50LCBhbmQgZXZlbnR1YWxseSB3 ZSBhbGwgZ2V0IHVzZWQgdG8gbWFraW5nICJwYXRjaCIgcmVsZWFzZXMuDQo+DQo+ID4gV291bGQg c29tZXRoaW5nIGxpa2Ugd2Vla2x5IHRhZ3Mgb24gR2l0SHViIGhlbHAgeW91PyBGb3IgZXhhbXBs ZSwgYSB0YWcgbGlrZQ0KPiA+IGBsNHJlLTIwMjUtMDUtMTRgIHRoYXQgeW91IGNvdWxkIHVzZSB3 aXRoIGBoYW0gY2hlY2tvdXRgIHRvIHJlcHJvZHVjZSB0aGF0DQo+ID4gc3BlY2lmaWMgc3RhdGU/ DQo+DQo+IEl0IG1pZ2h0LCBidXQgSSB0aGluayB0aGUgY2hhbGxlbmdlIGlzIHRoZW4gYXBwbHlp bmcgc3VjaCB0YWdzIHRvIGEgbGFyZ2UNCj4gbnVtYmVyIG9mIHJlcG9zaXRvcmllcy4gTmF0dXJh bGx5LCBvbmUgY2FuIHdyaXRlIHNjcmlwdHMgdG8gc3luY2hyb25pc2UgYWxsDQo+IHRob3NlIHJl cG9zaXRvcmllcywgYnV0IGlzbid0IHRoYXQgd2hhdCBoYW0gaXMgc3VwcG9zZWQgdG8gYWNoaWV2 ZT8NCj4NCj4gUmljaGFyZCBhbHNvIG1lbnRpb25lZCB2YXJpb3VzIG90aGVyIHBhY2thZ2VzIHRo YXQgaGFtIGRvZXNuJ3QgY292ZXIsIGFuZA0KPiBoYXZpbmcgYmVlbiB3b3JraW5nIHdpdGggdGhl IHNvZnR3YXJlIGZvciBhIGxvbmcgdGltZSBub3csIHRoZXJlIGFyZSBzdGlsbA0KPiB2YXJpb3Vz IHBhY2thZ2VzIHRoYXQgSSBoYXZlIG5lZWRlZCB0byByZXRyaWV2ZSBmcm9tIHRoZSBTdWJ2ZXJz aW9uIHJlcG9zaXRvcnkNCj4gZm9yIEw0UmUgYmVjYXVzZSB0aGV5IHdlcmUgbmV2ZXIgbWlncmF0 ZWQgdG8gR2l0SHViLiBJIGNhbiB1bmRlcnN0YW5kIHRoYXQNCj4gdGhvc2UgcGFja2FnZXMgYXJl IG5vIGxvbmdlciBhIGZvY3VzLCBhbmQgSSBoYXZlIGV2ZW4gZWxpbWluYXRlZCBzb21lIG9mIHRo ZW0NCj4gZnJvbSBteSBvd24gZW52aXJvbm1lbnQsIGJ1dCB0aGV5IG1pZ2h0IHN0aWxsIGJlIHVz ZWQgYnkgdGhlIEw0UmUNCj4gZGVtb25zdHJhdGlvbnMuDQo+DQo+ID4gQWxzbywgaGFtIGFscmVh ZHkgc3VwcG9ydHMgcGlubmVkIHJldmlzaW9ucyBpbiB0aGUgbWFuaWZlc3QgKGByZXZpc2lvbmAN Cj4gPiBhdHRyaWJ1dGUgaW4gYHByb2plY3RgIHRhZ3MpLCBzbyB5b3UgY2FuIHNoYXJlIGEgY29t cGxldGUgYW5kIHJlcHJvZHVjaWJsZQ0KPiA+IHN0YXRlIHRoYXQgd2F5IGFzIHdlbGwuIEJ1dCBJ IGFncmVlIHRoYXQgdGhpcyBjb3VsZCBiZSBtYWRlIG1vcmUNCj4gPiBjb252ZW5pZW50Lg0KPg0K PiBVbmZvcnR1bmF0ZWx5LCBJIG5ldmVyIGRpc2NvdmVyZWQgdGhpcywgYnV0IEkgYXNzdW1lZCB0 aGF0IHlvdSBtdXN0IGhhdmUgYSB3YXkNCj4gdG8gY2FwdHVyZSB0aGUgc3RhdGUgb2YgcmVwb3Np dG9yaWVzIGluIG9yZGVyIHRvIHJlcHJvZHVjZSByZWxlYXNlcyByZXF1aXJlZA0KPiBieSBjdXN0 b21lcnMuDQo+DQo+ID4gT25lIHBvc3NpYmxlIGltcHJvdmVtZW50IGNvdWxkIGJlIGEgYGhhbSBj cmVhdGUtcGlubmVkLW1hbmlmZXN0YCBzdWItY29tbWFuZA0KPiA+IHRoYXQgZ2VuZXJhdGVzIHN1 Y2ggYSBtYW5pZmVzdCBmcm9tIHlvdXIgY3VycmVudCBzdGF0ZS4gVGhhdOKAmXMgbm90IHRyaXZp YWwNCj4gPiDigJQgaXQgd291bGQgcmVxdWlyZSByZXNvbHZpbmcgZGlmZmVyZW50IHJlbW90ZXMg YW5kIGNoZWNraW5nIHRoYXQgYWxsDQo+ID4gY29tbWl0cyBhcmUgYWN0dWFsbHkgcmVhY2hhYmxl IGluIG9uZSBvZiB0aGUgcmVtb3RlcyDigJQgYnV0IGl04oCZcyBkZWZpbml0ZWx5DQo+ID4gZG9h YmxlLiBJZiB5b3UncmUgaW50ZXJlc3RlZCwgZmVlbCBmcmVlIHRvIG9wZW4gYSBwcm9wb3NhbCBv ciBldmVuIGFuIGlzc3VlDQo+ID4gb24gdGhlIGhhbSBHaXRIdWIgcmVwb3NpdG9yeSDigJQgd2Xi gJlkIGxvdmUgdG8gaGVhciB5b3VyIHRob3VnaHRzIG9yDQo+ID4gY29sbGFib3JhdGUgb24gYSBz b2x1dGlvbi4NCj4NCj4gSXQgaXMgc29tZXRoaW5nIEkgY291bGQgY29uc2lkZXIgd29ya2luZyBv biwgYnV0IGl0IHdvdWxkIGJlIGpvaW5pbmcgYSBsb25nDQo+IGxpc3Qgb2Ygb3RoZXIgdGFza3Mu DQo+DQo+ID4gV291bGQgYW55IG9mIHRoZXNlIGlkZWFzIGhlbHAgaW4geW91ciB3b3JrZmxvdz8g RG8geW91IGhhdmUgc29tZXRoaW5nIGVsc2UNCj4gPiBpbiBtaW5kPyBXZSdyZSBhbHdheXMgaGFw cHkgdG8gaW1wcm92ZSBMNFJlIHRvZ2V0aGVyIHdpdGggdGhlIHBlb3BsZSB3aG8NCj4gPiB1c2Ug aXQuDQo+DQo+IEkgdGhpbmsgdGhleSB3b3VsZCBiZSBoZWxwZnVsLiBQcmV2aW91c2x5LCB3aXRo IFN1YnZlcnNpb24sIG9uZSBjb3VsZCByZXF1ZXN0DQo+IGEgZ2l2ZW4gcmVsZWFzZSBhbmQgZ2V0 IGEgdmVyc2lvbmVkIGRpc3RyaWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUuIFRoZQ0KPiBkaXNhZHZh bnRhZ2VzIHdlcmUgdGhlIHBvb3IgcGVyZm9ybWFuY2Ugb2YgU3VidmVyc2lvbiBhbmQgdGhlIGF3 a3dhcmRuZXNzIG9mDQo+IG1hbmFnaW5nIGluZGVwZW5kZW50IGNoYW5nZXMsIGFzIHdlIGFsbCBr bm93LiBCdXQgdGhhdCBzaW1wbGljaXR5IHdhcyBhbHNvDQo+IHZlcnkgdXNlZnVsLg0KPg0KPiBU aGFua3Mgb25jZSBhZ2FpbiBmb3IgZm9sbG93aW5nIHVwIGFuZCBnaXZpbmcgbXkgY29uY2VybnMg eW91ciBjb25zaWRlcmF0aW9uIQ0KPg0KPiBQYXVsDQo+DQo+DQo+DQo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPg0KPiBNZXNzYWdlOiAzDQo+IERhdGU6IFdlZCwgMTQgTWF5IDIw MjUgMTY6MDQ6MDYgKzAwMDANCj4gRnJvbTogUmljaGFyZCBDbGFyayA8cmljaGFyZC5jbGFya0BD b2hlcmV0ZWNobm9sb2d5LnVzPg0KPiBTdWJqZWN0OiBSRTogQ29uZmlndXJhdGlvbiwgY29tcG9u ZW50IGFuZCByZXBvc2l0b3J5IHZlcnNpb25pbmcgKHdhcw0KPiAgICAgICAgIFJlOiBVcGdyYWRl IGlzc3Vlcy4gIFZNIHdvbid0IHN0YXJ0LikNCj4gVG86IE1hcmN1cyBIw6RobmVsIDxzdXBwb3J0 QGtlcm5rb256ZXB0LmNvbT4sIFBhdWwgQm9kZGllDQo+ICAgICAgICAgPHBhdWxAYm9kZGllLm9y Zy51az4sICJsNC1oYWNrZXJzQG9zLmluZi50dS1kcmVzZGVuLmRlIg0KPiAgICAgICAgIDxsNC1o YWNrZXJzQG9zLmluZi50dS1kcmVzZGVuLmRlPg0KPiBNZXNzYWdlLUlEOiAgPFBIMVAxMTBNQjE3 MjU2QTNGMjQxOEE5NDY3QUM1N0Q3OUZDOTFBQFBIMVAxMTBNQjE3MjUuTkFNDQo+ICAgICAgICAg UDExMC5QUk9ELk9VVExPT0suQ09NPg0KPiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9InV0Zi04Ig0KPg0KPiBNYXJjdXMsDQo+DQo+IEksIGZvciBvbmUsIHJhdGhlciB0aGFuIGhh dmluZyB0byBsZWFybiB5ZXQtYW5vdGhlci10b29sIHRoYXQgZG9lc24ndCBxdWl0ZSBkbyB3aGF0 IEkgd2FudCwgd291bGQgcmF0aGVyIHRoYXQNCj4geW91IGhhdmUgYSBmdWxseS1ibGVzc2VkLWFu ZC10ZXN0ZWQgcmVsZWFzZSBhbGwgcm9sbGVkIHVwIGluIGEgdGFyIChvciB6aXApIGZpbGUgZm9y IGRvd25sb2FkLiBZb3UgY291bGQgZXZlbiBoYXZlDQo+IGEgZ2l0IHJlcG8ganVzdCBmb3IgdGhl IHRhciBmaWxlcy4gT25lIGNhdmVhdCwgYmVpbmcgdGhhdCBpdCBtdXN0IGNvbnRhaW4gQUxMIHRo ZSByZXBvcyBhbmQgcG9zc2libGUgbGl0dGxlIHBpZWNlcw0KPiB0aGF0IGNvdWxkIHBvc3NpYmx5 IGdvIHdpdGggaXQuIE9uZSB0aGluZyBJIGhhdGUgYWJvdXQgZ2l0IGlzIHN1Yi1yZXBvcyB0aGF0 IGdldCBsb3N0IG9yIGFyZSBub3QgcHVsbGVkIGRvd24gYW5kDQo+IGNhdXNlIHNldmVyZSBoZWFk YWNoZXMgdHJ5aW5nIHRvIG1hdGNoIHZlcnNpb25zLiBMaWtlIGx3aXAsIG9yIHZpcnRpb19zd2l0 Y2gsIG9yIGFueSBvZiB0aGUgb3RoZXIgY291cGxlIGRvemVuDQo+IHBhY2thZ2VzIHRoYXQgZG9u J3QgZ2V0IHB1bGxlZCBkb3duIHdpdGggdGhlIG5ldyBoYW0gYnVpbGQgcHJvY2Vzcy4gSSdkIGxp a2UgdG8gYmUgYWJsZSB0byBnbyB0byBvbmUgcGxhY2UsDQo+IHVzZSBhIGNvbW1hbmQgSSBhbHJl YWR5IGtub3csIGFuZCBnZXQgYSBmdWxseSBmdW5jdGlvbmFsLCBmdWxseSBwb3B1bGF0ZWQsICJi bGVzc2VkIiB2ZXJzaW9uLiBZb3UgZG8gaGF2ZSB5b3VyDQo+IG9sZCBkb3dubG9hZHMgc2l0ZSB3 aXRoIGEgdGd6IGZpbGUsIGJ1dCBldmVuIHRoYXQgZG9lc24ndCBjb250YWluIGFsbCB0aGUgcGFj a2FnZXMgYW55IG1vcmUuIFRoaXMgaXMgdGhlIGZydXN0cmF0aW5nIHBhcnQuDQo+IEkgbmVlZCBh IHdheSB0byBnZXQgYSBzbmFwc2hvdCBvZiBldmVyeXRoaW5nIHRoYXQgY291bGQgcG9zc2libHkg Z28gdG9nZXRoZXIgaW4gYSByZWxlYXNlIHdoZXRoZXIgSSBuZWVkIGl0IG9yIG5vdCwgYmVjYXVz ZQ0KPiBzb21lIGRheSBJIHdpbGwgbmVlZCBpdCBhbmQgdGhlbiB0aGUgdmVyc2lvbiBJIG5lZWQg d2lsbCBubyBsb25nZXIgYmUgYXZhaWxhYmxlLiBTbywgbm90IGEgImRlbW8iIG9yICJleGFtcGxl Ig0KPiB2ZXJzaW9uLCBidXQgYSBmdWxsLXNvdXJjZS1ldmVyeXRoaW5nLWluY2x1ZGluZy10aGUt a2l0Y2hlbi1zaW5rIHZlcnNpb24uDQo+DQo+DQo+IFRoYW5rIHlvdSBmb3IgY29uc2lkZXJpbmcg b3VyIG9waW5pb25zIQ0KPg0KPg0KPiBSaWNoYXJkDQo+DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IE1hcmN1cyBIw6RobmVsIDxzdXBwb3J0QGtlcm5rb256ZXB0LmNv bT4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXkgMTQsIDIwMjUgMTA6NTMgQU0NCj4gVG86IFBhdWwg Qm9kZGllIDxwYXVsQGJvZGRpZS5vcmcudWs+OyBsNC1oYWNrZXJzQG9zLmluZi50dS1kcmVzZGVu LmRlDQo+IFN1YmplY3Q6IFJlOiBDb25maWd1cmF0aW9uLCBjb21wb25lbnQgYW5kIHJlcG9zaXRv cnkgdmVyc2lvbmluZyAod2FzIFJlOiBVcGdyYWRlIGlzc3Vlcy4gVk0gd29uJ3Qgc3RhcnQuKQ0K Pg0KPiBPbiBNb24sIDIwMjUtMDUtMTIgYXQgMjI6MzcgKzAyMDAsIFBhdWwgQm9kZGllIHdyb3Rl Og0KPiA+IE9uIE1vbmRheSwgMTIgTWF5IDIwMjUgMTU6MDk6NTIgQ0VTVCBNYXJjdXMgSMOkaG5l bCB3cm90ZToNCj4gPiA+DQo+ID4gPiBPbiBNb24sIDIwMjUtMDUtMDUgYXQgMTE6MjUgKzAwMDAs IFJpY2hhcmQgQ2xhcmsgd3JvdGU6DQo+ID4gPg0KPiA+ID4gPiBCdXQgdGhhdCBicmluZ3MgbWUg dG8gYSBiaWdnZXIgcXVlc3Rpb24uDQo+ID4gPiA+IEhvdyBkbyBJIGZldGNoIG9ubHkgTG9uZy1U ZXJtLVN1cHBvcnQgb3IgRnVsbHktVGVzdGVkLWFuZC1CbGVzc2VkDQo+ID4gPiA+IHZlcnNpb25z PyBHaXRodWIgaXMgd29lZnVsbHkgbGFja2luZyBpbiBwcm9wZXIgdmVyc2lvbiBzdXBwb3J0Lg0K PiA+ID4gPiBJIGNhbid0IHNlbmQgcmFuZG9tIHVudGVzdGVkIGNvZGUgdG8gbXkgY3VzdG9tZXJz Lg0KPiA+ID4NCj4gPiA+IEFsbCBjb2RlIHdlIHB1c2ggdG8gR2l0aHViIHdlbnQgdGhyb3VnaCBv dXIgaW50ZXJuYWwgUUEgcHJvY2VzcywNCj4gPiA+IHJ1bm5pbmcgY29tcGlsZSBjaGVja3MgZm9y IGFsbCBvdXIgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMgYXMgd2VsbA0KPiA+ID4gYXMgYW4gZXh0 ZW5zaXZlIHRlc3Qgc3VpdGUgb24gZGlmZmVyZW50IHBsYXRmb3JtcyBhbmQNCj4gPiA+IGNvbmZp Z3VyYXRpb25zLiBTbyBmcm9tIHRoYXQgcG9pbnQgb2YgdmlldyBJIHdvdWxkIHNheSB5b3UgY2Fu DQo+ID4gPiBjb25zaWRlciBhbGwgY29kZSBwdXNoZWQgdG8gR2l0aHViIGFzIOKAnEZ1bGx5LVRl c3RlZC1hbmQtQmxlc3NlZOKAnS4NCj4gPg0KPiA+IEkgZG9uJ3QgaGF2ZSBhIHN0cm9uZyBvcGlu aW9uIGFib3V0IHF1YWxpdHkgYXNzdXJhbmNlIGZvciBwZW9wbGUNCj4gPiB3YW50aW5nIHRvIHBy b3ZpZGUgc29sdXRpb25zIGZvciBwYXlpbmcgY3VzdG9tZXJzLCBidXQgSSBoYXZlDQo+ID4gcGVy c29uYWxseSB3b25kZXJlZCBob3cgSSBtaWdodCBzdWNjZXNzZnVsbHkgYW5kIGNvbnZlbmllbnRs eQ0KPiA+IHJlcHJvZHVjZSByZXBvc2l0b3J5IGNvbmZpZ3VyYXRpb25zIHdoZW4gY3JlYXRpbmcg bmV3IEw0UmUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLg0KPiA+DQo+ID4gRm9yIGV4YW1wbGUs IGlmIEkgZGVjaWRlIHRvIHdvcmsgb24gc3VwcG9ydCBmb3IgYSBuZXcgYm9hcmQsIEkgbWlnaHQN Cj4gPiB3YW50IHRvIHJlcGxpY2F0ZSB0aGUgTDRSZSBjb25maWd1cmF0aW9uIEkgaGF2ZSBiZWVu IHVzaW5nIGZvciBhbm90aGVyDQo+ID4gYm9hcmQuIFN0YXJ0aW5nIGZyb20gc2NyYXRjaCwgaXQg d2FzIHBvc3NpYmxlIHRvIHVzZSB0aGUgaGFtIHRvb2wsIGJ1dA0KPiA+IGRlc3BpdGUgaXQgYXBw YXJlbnRseSBtYWludGFpbmluZyB2ZXJzaW9uIGRldGFpbHMgZm9yIHRoZSBkaWZmZXJlbnQNCj4g PiByZXBvc2l0b3JpZXMsIGl0IHdhc24ndCBwYXJ0aWN1bGFybHkgY2xlYXIgaG93IG9uZSBtaWdo dCBwcmVzZXJ2ZSBvcg0KPiA+IGV4cG9ydCB0aGF0IG1ldGFkYXRhIGZvciBmdXJ0aGVyIHVzZS4N Cj4gPg0KPiA+IEkgbm93IHNlZSB0aGF0IHRoZXJlIGlzIGFub3RoZXIgdG9vbCBpbnZvbHZlZDoN Cj4gPg0KPiA+IGh0dHBzOi8vbDRyZS5vcmcvZ2V0dGluZ19zdGFydGVkL2JvYi5odG1sDQo+ID4N Cj4gPiBBbHRob3VnaCB0aGF0IGRvZXNuJ3Qgc2VlbSB0byByZXBsYWNlIHRoZSBoYW0gdG9vbDoN Cj4gPg0KPiA+IGh0dHBzOi8vbDRyZS5vcmcvZ2V0dGluZ19zdGFydGVkL21ha2UuaHRtbA0KPiA+ DQo+ID4gTmF0dXJhbGx5LCBvbmUgbWlnaHQgc2F5IHRoYXQgdGhpcyBpcyB0aGUgcG9pbnQgYXQg d2hpY2ggYW55b25lDQo+ID4gc2VyaW91cy1lbm91Z2ggYWJvdXQgdXNpbmcgTDRSZSB3b3VsZCBn ZXQgaW4gdG91Y2ggd2l0aCBLZXJua29uemVwdA0KPiA+IGFuZCBzdGFydCB0YWxraW5nIGJ1c2lu ZXNzLCBidXQgc3VjaCBhIGxhY2sgb2YgY2xhcml0eSB0ZW5kcyB0bw0KPiA+IHN1Z2dlc3QgdGhh dCBlaXRoZXIgdGhlcmUgYXJlbid0IHBhcnRpY3VsYXJseSBhZGVxdWF0ZSBzb2x1dGlvbnMgZm9y DQo+ID4gc3VjaCBmdW5kYW1lbnRhbCBuZWVkcyBvciB0aGF0IGFueSBhZGVxdWF0ZSBzb2x1dGlv bnMgdGhhdCBtYXkgZXhpc3QNCj4gPiBhcmVuJ3QgZm9yIHBlb3BsZSBtZXJlbHkgaW52ZXN0aWdh dGluZyBvciBldmFsdWF0aW5nIHRoZSB0ZWNobm9sb2d5Lg0KPiA+DQo+ID4gQWdhaW4sIGl0IGlz bid0IG15IGNvbmNlcm4gaWYgdGhlcmUncyBhIGJ1c2luZXNzIGRlY2lzaW9uIGludm9sdmVkDQo+ ID4gdGhhdCBldmVyeWJvZHkgZmVlbHMgY29tZm9ydGFibGUgd2l0aCwgYW5kIGlmIHRoZXJlJ3Mg YSBzdGVhZHkgc3RyZWFtDQo+ID4gb2YgaW50ZXJlc3RlZCBjdXN0b21lcnMgdGhhdCBzZWVtcyB0 byBqdXN0aWZ5IHN1Y2ggYSBkZWNpc2lvbiwgYnV0IEkNCj4gPiBjb3VsZCBlYXNpbHkgc2VlIHBv dGVudGlhbCB1c2VycyBnb2luZyBlbHNld2hlcmUgaWYgdGhlIGFuc3dlciB0bw0KPiA+IHNpbXBs ZSBxdWVzdGlvbnMgaXMgInRhbGsgdG8gdXMiLiBFdmVuIGluIHJlYXNvbmFibHkgbGFyZ2UNCj4g PiBvcmdhbmlzYXRpb25zLCBoaXR0aW5nIGFuIGFwcHJvdmFsIGJhcnJpZXIgdGhhdCAidGFsayB0 byB1cyIgb3INCj4gPiAicmVnaXN0ZXIgeW91ciBpbnRlcmVzdCIgcmVwcmVzZW50cyBjYW4gYmUg YSBzdHJvbmcgZGlzaW5jZW50aXZlLCBlc3BlY2lhbGx5IGlmIG90aGVyIHNvbHV0aW9ucyBleGlz dC4NCj4gPg0KPiA+IEkgYWNjZXB0IHRoYXQgbXkgb3BpbmlvbiBpc24ndCBpbXBvcnRhbnQsIGhv d2V2ZXIsIHNpbmNlIG15IG93bg0KPiA+IGFjdGl2aXRpZXMgYXJlIGNvbmZpbmVkIHRvIG15IG93 biBpbnRlcmVzdHMgYW5kIGRyaXZlbiBieSBhIGdlbmVyYWwNCj4gPiBiZWxpZWYgdGhhdCBMNFJl IHJlcHJlc2VudHMgYSByZWFzb25hYmxlIGZvdW5kYXRpb24gZm9yIGNlcnRhaW4ga2luZHMNCj4g PiBvZiBzeXN0ZW1zLiBUaGF0IHRoZXJlIGlzbid0IGV4YWN0bHkgbXVjaCBvZiBhIHB1YmxpYyBj b21tdW5pdHkgYXJvdW5kDQo+ID4gTDRSZSBjb3VsZCBhbHNvIGJlIHJlZ2FyZGVkIGFzIGEgZGlz aW5jZW50aXZlIGZvciBwb3RlbnRpYWwgYWRvcHRlcnMsIHdoaWNoIGlzIHVuZm9ydHVuYXRlLg0K PiA+DQo+ID4gUGF1bA0KPg0KPiBIaSBQYXVsLA0KPg0KPiB0aGFuayB5b3UgdmVyeSBtdWNoIGZv ciB5b3VyIHRob3VnaHRmdWwgbWVzc2FnZSDigJQgaXQncyByZWFsbHkgYXBwcmVjaWF0ZWQuDQo+ DQo+IEZpcnN0IG9mIGFsbDogeW91ciBvcGluaW9uIGFic29sdXRlbHkgbWF0dGVycy4gVGhlIGlu cHV0IGZyb20gdXNlcnMgbGlrZSB5b3UsIHdobyBlbmdhZ2UgZGVlcGx5IGFuZCBzaGFyZSBjYW5k aWQgZmVlZGJhY2ssIGhlbHBzIHVzIG1ha2UgTDRSZSBiZXR0ZXIuIFdoaWxlIHdlIGFyZSBhd2Fy ZSB0aGF0IEw0UmUgaXMgc3RpbGwgcXVpdGUgbmljaGUgYW5kIHRoZSBjb21tdW5pdHkgc21hbGws IHdlIHdhbnQgdG8gc3VwcG9ydCBpdCBhcyBiZXN0IHdlIGNhbiBhbmQgd291bGQgbG92ZSB0byBz ZWUgaXQgZ3Jvdy4NCj4NCj4gSSB0aGluayB5b3UncmUgcmFpc2luZyBhIGRpZmZlcmVudCwgYnV0 IGVxdWFsbHkgaW1wb3J0YW50LCBwb2ludCBjb21wYXJlZCB0byB3aGF0IFJpY2hhcmQgd2FzIGFz a2luZy4gTXkgb3JpZ2luYWwgcmVzcG9uc2UgZm9jdXNlZCBvbiB0aGUgaWRlYSBvZiBwcm92aWRp bmcgYSBmdWxseSB0ZXN0ZWQgcmVsZWFzZSBmb3IgYSBzcGVjaWZpYyBjb21iaW5hdGlvbiBvZiBz b2Z0d2FyZSBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSwgd2hpY2ggaXMgdW5kZXJzdGFuZGFi bHkgZGlmZmljdWx0IGZvciB1cyB0byBtYWludGFpbiBhcyBwYXJ0IG9mIHRoZSBvcGVuLXNvdXJj ZSBvZmZlcmluZyBnaXZlbiBvdXIgbGltaXRlZCByZXNvdXJjZXMuDQo+DQo+IFlvdXIgY29uY2Vy biDigJQgYWJvdXQgYmVpbmcgYWJsZSB0byByZXByb2R1Y2UgYSBrbm93biB3b3JraW5nIHN0YXRl IG9mIHlvdXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQg4oCUIGlzIG11Y2ggbW9yZSBmdW5kYW1l bnRhbC4gWW91J3JlIHJpZ2h0OiB0aGlzIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQsIGFuZCBp ZiBpdCdzIG5vdCwgdGhlbiBpdCdzIHNvbWV0aGluZyB3ZSB3YW50IHRvIGltcHJvdmUuIEVhc2Ug b2YgdXNlIGFuZCBhY2Nlc3NpYmlsaXR5IGFyZSBpbXBvcnRhbnQgdG8gdXMsIGFuZCBzb21ldGlt ZXMgd2XigJlyZSBqdXN0IHRvbyBjbG9zZSB0byB0aGUgc3lzdGVtIHRvIHNlZSB3aGVyZSBmcmlj dGlvbiBhcmlzZXMg4oCUIHNvIHRoYW5rIHlvdSBhZ2FpbiBmb3IgcG9pbnRpbmcgdGhpcyBvdXQu DQo+DQo+IFRvIGNsYXJpZnkgb25lIGtleSBwb2ludDogd2UgZG9u4oCZdCBkZWxpYmVyYXRlbHkg d2l0aGhvbGQgZmVhdHVyZXMgb3IgdXNhYmlsaXR5IGltcHJvdmVtZW50cyBmcm9tIHRoZSBvcGVu LXNvdXJjZSB2ZXJzaW9uIG9mIEw0UmUgdG8gcHVzaCBwZW9wbGUgaW50byBjb21tZXJjaWFsIGNv bnRhY3QuIFRoYXTigJlzIG5vdCBvdXIgYnVzaW5lc3MgcGhpbG9zb3BoeS4gSW4gZmFjdCwgdGhh dCB3b3VsZCBnbyBkaXJlY3RseSBhZ2FpbnN0IG91ciBnb2FsIG9mIGdldHRpbmcgTDRSZSBpbnRv IG1vcmUgaGFuZHMgYW5kIG1ha2luZyBpdCBlYXNpZXIgdG8gd29yayB3aXRoLg0KPg0KPiBTb21l IG9mIHRoZSBjb252ZW5pZW5jZSBmZWF0dXJlcyDigJQgbGlrZSByZWxlYXNlIHRhZ2dpbmcg4oCU IGRvIGV4aXN0IGluIG91ciBjdXN0b21lciByZXBvc2l0b3JpZXMsIGJ1dCBpdOKAmXMgbW9yZSBv ZiBhIHdvcmtmbG93IGhhYml0IHRoYW4gYSBjb25zY2lvdXMgZGVjaXNpb24gdG8gZXhjbHVkZSB0 aGVtIGZyb20gR2l0SHViLiBObyBvbmUgaGFkIGJyb3VnaHQgdXAgdGhlIG5lZWQgZm9yIHRoYXQg a2luZCBvZiByZXByb2R1Y2liaWxpdHkgaW4gdGhlIG9wZW4gcmVwbyBzbyBmYXIg4oCUIGFuZCBu b3cgdGhhdCB5b3UgaGF2ZSwgbGV04oCZcyBmaXggaXQuDQo+DQo+IFdvdWxkIHNvbWV0aGluZyBs aWtlIHdlZWtseSB0YWdzIG9uIEdpdEh1YiBoZWxwIHlvdT8gRm9yIGV4YW1wbGUsIGEgdGFnIGxp a2UgYGw0cmUtMjAyNS0wNS0xNGAgdGhhdCB5b3UgY291bGQgdXNlIHdpdGggYGhhbSBjaGVja291 dGAgdG8gcmVwcm9kdWNlIHRoYXQgc3BlY2lmaWMgc3RhdGU/DQo+DQo+IEFsc28sIGhhbSBhbHJl YWR5IHN1cHBvcnRzIHBpbm5lZCByZXZpc2lvbnMgaW4gdGhlIG1hbmlmZXN0IChgcmV2aXNpb25g IGF0dHJpYnV0ZSBpbiBgcHJvamVjdGAgdGFncyksIHNvIHlvdSBjYW4gc2hhcmUgYSBjb21wbGV0 ZSBhbmQgcmVwcm9kdWNpYmxlIHN0YXRlIHRoYXQgd2F5IGFzIHdlbGwuIEJ1dCBJIGFncmVlIHRo YXQgdGhpcyBjb3VsZCBiZSBtYWRlIG1vcmUgY29udmVuaWVudC4NCj4NCj4gT25lIHBvc3NpYmxl IGltcHJvdmVtZW50IGNvdWxkIGJlIGEgYGhhbSBjcmVhdGUtcGlubmVkLW1hbmlmZXN0YCBzdWIt Y29tbWFuZCB0aGF0IGdlbmVyYXRlcyBzdWNoIGEgbWFuaWZlc3QgZnJvbSB5b3VyIGN1cnJlbnQg c3RhdGUuIFRoYXTigJlzIG5vdCB0cml2aWFsIOKAlCBpdCB3b3VsZCByZXF1aXJlIHJlc29sdmlu ZyBkaWZmZXJlbnQgcmVtb3RlcyBhbmQgY2hlY2tpbmcgdGhhdCBhbGwgY29tbWl0cyBhcmUgYWN0 dWFsbHkgcmVhY2hhYmxlIGluIG9uZSBvZiB0aGUgcmVtb3RlcyDigJQgYnV0IGl04oCZcyBkZWZp bml0ZWx5IGRvYWJsZS4gSWYgeW91J3JlIGludGVyZXN0ZWQsIGZlZWwgZnJlZSB0byBvcGVuIGEg cHJvcG9zYWwgb3IgZXZlbiBhbiBpc3N1ZSBvbiB0aGUgaGFtIEdpdEh1YiByZXBvc2l0b3J5IOKA lCB3ZeKAmWQgbG92ZSB0byBoZWFyIHlvdXIgdGhvdWdodHMgb3IgY29sbGFib3JhdGUgb24gYSBz b2x1dGlvbi4NCj4NCj4gV291bGQgYW55IG9mIHRoZXNlIGlkZWFzIGhlbHAgaW4geW91ciB3b3Jr Zmxvdz8gRG8geW91IGhhdmUgc29tZXRoaW5nIGVsc2UgaW4gbWluZD8gV2UncmUgYWx3YXlzIGhh cHB5IHRvIGltcHJvdmUgTDRSZSB0b2dldGhlciB3aXRoIHRoZSBwZW9wbGUgd2hvIHVzZSBpdC4N Cj4NCj4gQmVzdCByZWdhcmRzLA0KPg0KPiAtIE1hcmN1cyBIw6RobmVsDQo+ICAgUHJpbmNpcGFs IEVuZ2luZWVyaW5nIExlYWQNCj4NCj4NCj4gLS0NCj4gKysrIFJlZ2lzdGVyIG5vdyBmb3Igb3Vy IHdvcmtzaG9wIOKAnEdldCB0byBrbm93IEw0UmUgaW4gMyBkYXlz4oCdIG9uDQo+ICsrKyBPY3Rv YmVyIDI44oCTMzAuIExlYXJuIHRvIGRlc2lnbiBhbmQgZGVwbG95IHNlY3VyZSBzeXN0ZW0NCj4g YXJjaGl0ZWN0dXJlcyBmb3IgeW91ciBwcm9kdWN0IHdpdGggTDRSZTogaHR0cHM6Ly93d3cua2Vy bmtvbnplcHQuY29tL3dvcmtzaG9wLWdldHRpbmctc3RhcnRlZC13aXRoLWw0cmUvICsrKw0KPg0K PiAtLS0NCj4NCj4gS2VybmtvbnplcHQgR21iSA0KPiBTaXR6OiBEcmVzZGVuDQo+IEhSQiAzMTEy OQ0KPiBHZXNjaMOkZnRzZsO8aHJlcjogRHIuLUluZy4gTWljaGFlbCBIb2htdXRoDQo+DQo+DQo+ DQo+DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ IGw0LWhhY2tlcnMgbWFpbGluZyBsaXN0IC0tIGw0LWhhY2tlcnNAb3MuaW5mLnR1LWRyZXNkZW4u ZGUgVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBsNC1oYWNrZXJzLWxlYXZlQG9zLmlu Zi50dS1kcmVzZGVuLmRlDQo+DQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPg0K PiBTdWJqZWN0OiBEaWdlc3QgRm9vdGVyDQo+DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+IGw0LWhhY2tlcnMgbWFpbGluZyBsaXN0IC0tIGw0LWhh Y2tlcnNAb3MuaW5mLnR1LWRyZXNkZW4uZGUNCj4gVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFp bCB0byBsNC1oYWNrZXJzLWxlYXZlQG9zLmluZi50dS1kcmVzZGVuLmRlDQo+DQo+DQo+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPg0KPiBFbmQgb2YgbDQtaGFja2VycyBEaWdlc3Qs IFZvbCAyNDYsIElzc3VlIDkNCj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps NC1oYWNrZXJzIG1haWxpbmcgbGlzdCAtLSBsNC1oYWNrZXJzQG9zLmluZi50dS1kcmVzZGVuLmRl ClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gbDQtaGFja2Vycy1sZWF2ZUBvcy5pbmYu dHUtZHJlc2Rlbi5kZQo=