Re: Is it possible for an inbound connector to invoke servlet?
Simon Aquilina <[email protected]> Fri, 5 Dec 2008 10:07:10 +0100
| Newsgroups | gmane.comp.java.sun.connector |
|---|---|
| Message-ID | <[email protected]> |
--_0b8f8c5d-e657-4b0c-9498-b8daaa3d6ff5_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpIaSBRaUp1biBZYW5nLA0KDQpGaXJzdCBvZiBhbGwgdGhhbmsgeW91IHZlcnkgbXVjaCBmb3Ig eW91ciByZXBseS4gSWYgSSB1bmRlcnN0YW5kIHlvdSB3ZWxsLCB3aGF0IHlvdSBtZWFuIGlzIHRo YXQgSSBzaG91bGQgbWFrZSBhbiBIdHRwIHJlcXVlc3QgKHVzaW5nIHRoZSBVUkwgYW5kIFVSTENv bm5lY3Rpb24gY2xhc3NlcykgZnJvbSB0aGUgTWVzc2FnZSBEcml2ZW4gQmVhbiAoTWVzc2FnZSBF bmRwb2ludCkuIEFsdGhvdWdoIEkgZGlkIG5vdCB0cnkgaXQgSSBhbSBzdXJlIHRoaXMgbWV0aG9k IHNob3VsZCB3b3JrIGFuZCBJIGFtIGFjdHVhbGx5IGdvaW5nIHRvIGNvbnRpbnVlIHRoYXQgd2F5 IGZvcndhcmQgdW50aWwgSSBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uLiANCg0KSG93ZXZlciBJIGNh biBub3Qgc3RvcCB3b25kZXJpbmcgaWYgSSBjb3VsZCBhY3R1YWxseSBpbnZva2UgYSBzZXJ2bGV0 IGp1c3QgaW4gdGhlIHdheSB3ZSBpbnZva2UgYW4gZWpiLiBJbiB0aGUgbWV0aG9kIGV4cGxhaW5l ZCBhYm92ZSBJIHdvdWxkIGFjdHVhbGx5IGJlIG9wZW5pbmcgdHdvIGNvbm5lY3Rpb25zIGZvciBl YWNoIHJlcXVlc3QgbWFkZSBieSB0aGUgRUlTOyBvbmUgY29ubmVjdGlvbmcgYmV0d2VlbiB0aGUg RUlTIGFuZCB0aGUgY3VzdG9tIGNvbm5lY3RvciwgYW5kIGFub3RoZXIgY29ubmVjdGlvbiBiZXR3 ZWVuIHRoZSBjdXN0b20gY29ubmVjdG9yIGFuZCB0aGUgaHR0cCBjb25uZWN0b3Igb2YgdGhlIGFw cGxpY2F0aW9uIHNlcnZlci4gVGhlIHNlY29uZCBjb25uZWN0aW9uIChiZXR3ZWVuIHRoZSBjdXN0 b20gY29ubmVjdG9yIGFuZCB0aGUgaHR0cCBjb25uZWN0b3IpIGxvb2tzIHRvIG1lIGFzIGJ5cGFz c2luZyB0aGUgbmF0dXJhbCBmbG93IG9mIGluZm9ybWF0aW9uIHdpdGhpbiB0aGUgYXBwbGljYXRp b24gc2VydmVyIChpLmUuIGJldHdlZW4gdGhlIE1EQiBhbmQgdGhlIHNlcnZsZXQgaW4gdGhpcyBj YXNlKS4gSW52b2tpbmcgdGhlIHNlcnZsZXQgdGhyb3VnaCBzb21lIEFkYXB0ZXIgb2JqZWN0IChh cyBpcyB0aGUgY2FzZSBpbiBUb21jYXQpIHdoaWNoIHdvdWxkIHJlY2lldmUgYSBTZXJ2bGV0UmVx dWVzdCBhbmQgU2VydmxldFJlc3BvbnNlIG9iamVjdCB3b3VsZCBtYWtlIG1vcmUgc2Vuc2UgdG8g bWUgc2luY2UgdGhlIEFkYXB0ZXIgd291bGQgdGFrZSBjYXJlIG9mIGludm9raW5nIHRoZSByZXF1 aXJlZCBzZXJ2bGV0IGZyb20gdGhlIGluZm9ybWF0aW9uIHJlY2lldmVkIGluc2lkZSB0aGUgU2Vy dmxldFJlcXVlc3Qgb2JqZWN0LiBIb3dldmVyIEkgbXVzdCBhZG1pdCB0aGF0IGR1ZSB0byBteSBs YWNrIG9mIGV4cGVyaWFuY2UgSSBkbyBub3Qga25vdyBpZiBzdWNoIGFuIGVsZW1lbnQgZXhzaXN0 IGluIEpFRSBBcHBsaWNhdGlvbiBTZXJ2ZXJzIGFuZCBub3IgZG8gSSBrbm93IGlmIHRoZSBtZXRo b2QgZXhwbGFpbmVkIGJ5IHlvdSBpcyB0aGUgc3RhbmRhcmQgd2F5IGZvcndhcmQgaW4gdGhpcyBj YXNlLg0KDQpXaGVuIEkgZmlyc3Qgc3RhcnRlZCB0aGlzIHByb2plY3QgSSBmaXJzdCBsb29rZWQg YXQgVG9tY2F0ICh3aGljaCBpcyBub3QgYSBKRUUgQXBwbGljYXRpb24gU2VydmVyKSBDb3lvdGUg Q29ubmVjdG9yLiBJIGRpZCBkZXZlbG9wIG15IG93biBjdXN0b20gY29ubmVjdG9yIG9uIFRvbWNh dCBidXQgd2FzIHN0dWNrIHdoZW4gSSByZWFsaXNlZCB0aGF0IFRvbWNhdCBBZGFwdGVyIGluc3Rh bmNlIChwcm92aWRlZCB0byB0aGUgY29ubmVjdG9yIGJ5IHRoZSB3ZWIgc2VydmVyKSBvbmx5IGFj Y2VwdGVkIEh0dHBTZXJ2bGV0UmVxdWVzdHMgYW5kIEh0dHBTZXJ2bGV0UmVzcG9uc2UuIFRoaXMg d291bGQgaGF2ZSBtZWFudCBzZW5kaW5nIGFuIEh0dHAgcmVxdWVzdCB0byB0aGUgc2VydmxldCBv YmplY3Qgd2hlcmUgYW4gaHR0cCByZXF1ZXN0IHdhcyBub3QgcmVhbGx5IG1hZGUuDQoNCkZvciBt ZSBvcGVuaW5nIGEgVVJMIENvbm5lY3Rpb24gZnJvbSB0aGUgTURCIHdvdWxkIGJlIHRoZSBzYW1l IHRoaW5nLCBpLmUuIC0gc2VuZGluZyBhbiBodHRwIHJlcXVlc3Qgd2hlcmUgaW4gcmVhbGl0eSBJ IGdvdCBhIGN1c3RvbSBwcm90b2NvbCByZXF1ZXN0LiBBcyBtdWNoIGFzIEkgcmVtZWJlciBpbiB0 aGUgU2VydmxldCBTcGVjaWZpY2F0aW9uIERvY3VtZW50IHRoZXJlIGlzIHdyaXRlbiB0aGF0IHNl cnZsZXRzIGFyZSBub3QgcHJvdG9jb2wgYm91bmQuIFNpbmNlIEpFRSBDb25uZWN0b3IgQXJjaGl0 ZWN0dXJlIGlzIHRoZXJlIHRvIG1ha2UgaXQgcG9zc2libGUgZm9yIGEgSkVFIEFwcGxpY2F0aW9u IFNlcnZlciB0byBzdXBwb3J0IGN1c3RvbSBwcm90b2NvbHMgYXMgd2VsbCwgdGhlbiBJIG11c3Qg YXNzdW1lIHRoYXQgdGhlcmUgbXVzdCBiZSBhIGJldHRlciB3YXkgdG8gaW52b2tlIGEgU2Vydmxl dCBmcm9tIGEgY3VzdG9tIGNvbm5lY3Rvci4gSG93ZXZlciBhcyBJIHNhaWQgYWJvdmUgSSBjb3Vs ZCBiZSB3cm9uZyBtb3N0bHkgYmVjYXVzZSBJIGFtIHN0aWxsIGxlYXJuaW5nIGFib3V0IHRoZSBz dWJqZWN0Lg0KDQpTb3JyeSBmb3IgdGhlIGxvbmcgbWFpbCA6KQ0KDQpUaGFua3MgYWdhaW4gZm9y IHlvdXIgaGVscC4NCg0KQmVzdCBSZWdhcmRzLA0KU2ltb24gSi4gQXF1aWxpbmENCg0KRGF0ZTog RnJpLCA1IERlYyAyMDA4IDE0OjAzOjA5ICswODAwDQpGcm9tOiB3ZWFsdGhlckAxNjMuQ09NDQpT dWJqZWN0OiBSZTogSXMgaXQgcG9zc2libGUgZm9yIGFuIGluYm91bmQgY29ubmVjdG9yIHRvIGlu dm9rZSBzZXJ2bGV0Pw0KVG86IENPTk5FQ1RPUi1JTlRFUkVTVEBKQVZBLlNVTi5DT00NCg0KaSBh bSBzb3JyeSwgaSBkb24ndCBrbm93IGpjYSB0b28gbXVjaC4NCmJ1dCBpIHRoaW5rIHRoZSBiZWxv dyBjb2RlIG1heSBiZSBhIGxpdHRsZSBoZWxwIHRvIHlvdS4NCiANCiANCnBhY2thZ2Ugb3JnLnhm cmVlLnVybDsNCmltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOw0KaW1wb3J0IGphdmEuaW8u SU9FeGNlcHRpb247DQppbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsNCmltcG9ydCBq YXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb247DQppbXBvcnQgamF2YS5uZXQuVVJMOw0KaW1w b3J0IGphdmEubmV0LlVSTENvbm5lY3Rpb247DQpwdWJsaWMgY2xhc3MgVVJMQ29ubmVjdGlvblRl c3Qgew0KIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsNCiAgU3RyaW5n IHVybE5hbWUgPSAiaHR0cDovL3d3dy5nb29nbGUuY29tIjsNCiAgaWYgKGFyZ3MubGVuZ3RoICE9 IDApIHsNCiAgIHVybE5hbWUgPSBhcmdzWzBdOw0KICB9DQogIHRyeSB7DQogICBVUkwgdXJsID0g bmV3IFVSTCh1cmxOYW1lKTsNCiAgIFVSTENvbm5lY3Rpb24gY29uID0gdXJsLm9wZW5Db25uZWN0 aW9uKCk7DQogICBjb24uc2V0RG9JbnB1dCh0cnVlKTsNCiAgIGNvbi5zZXREb091dHB1dCh0cnVl KTsNCiAgIEJ1ZmZlcmVkUmVhZGVyIHJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5w dXRTdHJlYW1SZWFkZXIoDQogICAgIGNvbi5nZXRJbnB1dFN0cmVhbSgpKSk7DQogICBTeXN0ZW0u b3V0LnByaW50bG4ocmVhZGVyLnJlYWRMaW5lKCkpOw0KICB9IGNhdGNoIChNYWxmb3JtZWRVUkxF eGNlcHRpb24gZSkgew0KICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaw0KICAg ZS5wcmludFN0YWNrVHJhY2UoKTsNCiAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgew0KICAgLy8g VE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaw0KICAgZS5wcmludFN0YWNrVHJhY2UoKTsN CiAgfQ0KIH0NCn0NCiANCnlvdSBjYW4gZ2V0IG1vcmUgaW5mb3JtYXRpb24gYXQgaHR0cDovL2ph dmEuc3VuLmNvbS9qMnNlLzEuNC4yL2RvY3MvYXBpL2phdmEvbmV0L1VSTENvbm5lY3Rpb24uaHRt bC4NCg0KWW91cnMgc2luY2VyZWx5LA0KUWlKdW4gWWFuZw0KDQrlnKgyMDA4LTEyLTA077yMIlNp bW9uIEFxdWlsaW5hIiA8c2ltMDg1QEhPVE1BSUwuQ09NPiDlhpnpgZPvvJoNCg0KSGkgYWdhaW4s DQoNClNpbmNlIEkgZGlkIG5vdCByZWNlaXZlIGFueSByZXBseSBJIHRob3VnaHQgdG8gc2VuZCBh bm90aGVyIGVtYWlsIHdpdGggdGhlIGFkZGl0aW9uYWwgcmUtc2VhcmNoIEkgZGlkLiBCYXNpY2Fs bHkgZnJvbSB0aGUgZGlhZ3JhbSBvbiBzbGlkZSBmaXZlICg1KSBvZiB0aGUgcHJlc2VudGF0aW9u ICdKYXZh4oSiIEVFIENvbm5lY3RvcnMgRGVteXN0aWZpZWQnIGJ5IEJpbm9kIFAuRywgR2Vvcmdl IFRoYXJha2FuLCBTaXZha3VtYXIgVGh5YWdhcmFqYW4gaXQgaXMgY2xlYXIgdGhhdCBhIGN1c3Rv bSBjb25uZWN0b3Igc2hvdWxkIGJlIGFibGUgdG8gaW52b2tlIGEgZGVwbG95ZWQgc2VydmxldC4N Cg0KSGF2aW5nIHNhaWQgdGhhdCBJIHN0aWxsIGNhbm5vdCB1bmRlcnN0YW5kIGhvdyB0aGlzIGNh biBiZSBkb25lLiBJbiB0aGUgZG9jdW1lbnQgJ0oyRUXihKIgQ29ubmVjdG9yIEFyY2hpdGVjdHVy ZSBTcGVjaWZpY2F0aW9uJyB0aGVyZSBpcyBhIHdob2xlIGNoYXB0ZXIgb24gaG93IHRvIGludm9r ZSBhbiBFSkIgKENoYXB0ZXIgMTMpIGhvd2V2ZXIgSSBjYW5ub3QgZmluZCBhbnl0aGluZyBhYm91 dCBTZXJ2bGV0IEludm9rYXRpb24uIEkgYWxzbyBkb3dubG9hZGVkIHRoZSBTZXJ2bGV0IFNwZWNp ZmljYXRpb24gZG9jdW1lbnQgYnV0IGNhbm5vdCByZWFsbHkgbWFwIHRoZSB0d28gdG9nZXRoZXIg KHByb2JhYmJseSBkdWUgdG8gbXkgbGl0dGxlIGtub3dsZWRnZSBhYm91dCB0aGUgc3ViamVjdCku IEkgaGF2ZSBhbHNvIGNoZWNrZWQgaG93IHRoZSBIdHRwIENvbm5lY3RvciBvZiBUb21jYXQgd29y a3MgYW5kIGhlcmUgSSBmb3VuZCBvdXQgdGhhdCB0aGUgVG9tY2F0IHdoZW4gbG9hZGVkIHRoZSBI dHRwIENvbm5lY3RvciB3aWxsIHByb3ZpZGUgYW4gQWRhcHRlciBpbiBvcmRlciB0byBpbnZva2Ug U2VydmxldHMgaG93ZXZlciBkbyBub3Qga25vdyBpZiB0aGlzIGlzIGFsc28gdGhlIGNhc2UgZm9y IGEgSkVFIEFwcGxpY2F0aW9uIFNlcnZlciwgbm9yIGRvIEkga25vdyBpZiBJIGhhdmUgdG8gc2V0 IHNvbWUgZXh0cmEgY29uZmlndXJhdGlvbiB0byBoYXZlIHN1Y2ggYW4gb2JqZWN0IGF2YWlsYWJs ZS4NCg0KVGhhbmtzIGFuZCBSZWdhcmRzLA0KU2ltb24gSi4gQXF1aWxpbmENCg0KDQoNCkZyb206 IHNpbTA4NUBob3RtYWlsLmNvbQ0KVG86IGNvbm5lY3Rvci1pbnRlcmVzdEBqYXZhLnN1bi5jb20N ClN1YmplY3Q6IElzIGl0IHBvc3NpYmxlIGZvciBhbiBpbmJvdW5kIGNvbm5lY3RvciB0byBpbnZv a2Ugc2VydmxldD8NCkRhdGU6IE1vbiwgMSBEZWMgMjAwOCAyMTowMDoxMCArMDEwMA0KDQoNCg0K DQoNCg0KSGksDQoNCkkgYW0gbm90IHN1cmUgaWYgdGhpcyBpcyB0aGUgcmlnaHQgcGxhY2UgdG8g YXNrIHRoaXMgcXVlc3Rpb24uIE15IHF1ZXN0aW9uIGlzIHJlbGF0ZWQgdG8gaW5ib3VuZCBjb25u ZWN0b3JzLiBGcm9tIHdoYXQgSSBjYW4gdW5kZXJzdGFuZCBhbiBhcHBsaWNhdGlvbiBzZXJ2ZXIg d2lsbCBzdGFydCBhIFJlc291cmNlIEFkYXB0ZXIgKFJBKS4gVGhlbiB3aGVuIGEgTWVzc2FnZSBE cml2ZW4gQmVhbiAoTURCKSBpcyBkZXBsb3llZCB0aGUgcmVsYXRlZCBSQSBhcmUgaW5mb3JtZWQu IFRoZSBSQSB3b3VsZCB0aGVuIGNyZWF0ZSBhbiBFbmRwb2ludCBDb25zdW1lci4gV2hlbiBhIG1l c3NhZ2UgaXMgcmVjZWl2ZWQgZnJvbSBhbiBFSVMgdGhlIEVuZHBvaW50IENvbnN1bWVyIHdpbGwg Y2FsbCBhIG1ldGhvZCBmcm9tIHRoZSBNREIuIA0KDQpOb3cgbXkgcGxhbiB3YXMgdG8gZGV2ZWxv cCBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgaHR0cCBwcm90b2NvbC4gVGhlIEVudGVycHJpc2Ug SW5mb3JtYXRpb24gU3lzdGVtIChFSVMpIG1ha2VzIGEgcmVxdWVzdCwgdGhlIHJlcXVlc3QgaXMg cHJvY2Vzc2VkLCBhbmQgYSByZXNwb25zZSBpcyByZXR1cm5lZCBpbiBYTUwgKG9yIGZvcm1hdCB1 bmRlcnN0b29kIGJ5IHRoZSBFSVMpLiBCZWNhdXNlIG9mIHRoaXMgc2ltaWxhcml0eSBJIHdhcyB3 b25kZXJpbmc7IElzIGl0IHBvc3NpYmxlIHRoYXQgYW4gaW5ib3VuZCBjb25uZWN0b3IgaW52b2tl cyBhIGRlcGxveWVkIHNlcnZsZXQ/IA0KDQpUaGFua3MgYW5kIFJlZ2FyZHMsDQpTaW1vbiBKLg0K DQoNCg0KDQoNCg0KDQpJbnZpdGUgeW91ciBtYWlsIGNvbnRhY3RzIHRvIGpvaW4geW91ciBmcmll bmRzIGxpc3Qgd2l0aCBXaW5kb3dzIExpdmUgU3BhY2VzLiBJdCdzIGVhc3khIFRyeSBpdCENCg0K DQpEaXNjb3ZlciB0aGUgbmV3IFdpbmRvd3MgVmlzdGEgTGVhcm4gbW9yZSEgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGVtYWlsIHRvIGxpc3RzZXJ2QGphdmEuc3VuLmNv bSBhbmQgaW5jbHVkZSBpbiB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZSAic2lnbm9mZiBDT05ORUNU T1ItSU5URVJFU1QiLiBGb3IgZ2VuZXJhbCBoZWxwLCBzZW5kIGVtYWlsIHRvIGxpc3RzZXJ2QGph dmEuc3VuLmNvbSBhbmQgaW5jbHVkZSBpbiB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZSAiaGVscCIu IA0KDQoNCue9keaYk+WFjei0uemCru+8jOWFqOeQg+acgOWkp+eahOS4reaWh+WFjei0uemCrueu sQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpUbyB1bnN1YnNjcmliZSwgc2VuZCBlbWFpbCB0byBsaXN0 c2VydkBqYXZhLnN1bi5jb20gYW5kIGluY2x1ZGUgaW4gdGhlIGJvZHkNCm9mIHRoZSBtZXNzYWdl ICJzaWdub2ZmIENPTk5FQ1RPUi1JTlRFUkVTVCIuICBGb3IgZ2VuZXJhbCBoZWxwLCBzZW5kIGVt YWlsIHRvDQpsaXN0c2VydkBqYXZhLnN1bi5jb20gYW5kIGluY2x1ZGUgaW4gdGhlIGJvZHkgb2Yg dGhlIG1lc3NhZ2UgImhlbHAiLg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkludml0ZSB5b3VyIG1haWwgY29udGFjdHMg dG8gam9pbiB5b3VyIGZyaWVuZHMgbGlzdCB3aXRoIFdpbmRvd3MgTGl2ZSBTcGFjZXMuIEl0J3Mg ZWFzeSENCmh0dHA6Ly9zcGFjZXMubGl2ZS5jb20vc3BhY2VzYXBpLmFzcHg/d3hfYWN0aW9uPWNy ZWF0ZSZ3eF91cmw9L2ZyaWVuZHMuYXNweCZta3Q9ZW4tdXM= --_0b8f8c5d-e657-4b0c-9498-b8daaa3d6ff5_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT4NCi5obW1lc3NhZ2UgUA0Kew0KbWFyZ2luOjBweDsNCnBh ZGRpbmc6MHB4DQp9DQpib2R5LmhtbWVzc2FnZQ0Kew0KZm9udC1zaXplOiAxMHB0Ow0KZm9udC1m YW1pbHk6VmVyZGFuYQ0KfQ0KPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IGNsYXNzPSdobW1lc3Nh Z2UnPg0KSGkgUWlKdW4gWWFuZyw8YnI+PGJyPkZpcnN0IG9mIGFsbCB0aGFuayB5b3UgdmVyeSBt dWNoIGZvciB5b3VyIHJlcGx5LiBJZiBJIHVuZGVyc3RhbmQgeW91IHdlbGwsIHdoYXQgeW91IG1l YW4gaXMgdGhhdCBJIHNob3VsZCBtYWtlIGFuIEh0dHAgcmVxdWVzdCAodXNpbmcgdGhlIFVSTCBh bmQgVVJMQ29ubmVjdGlvbiBjbGFzc2VzKSBmcm9tIHRoZSBNZXNzYWdlIERyaXZlbiBCZWFuIChN ZXNzYWdlIEVuZHBvaW50KS4gQWx0aG91Z2ggSSBkaWQgbm90IHRyeSBpdCBJIGFtIHN1cmUgdGhp cyBtZXRob2Qgc2hvdWxkIHdvcmsgYW5kIEkgYW0gYWN0dWFsbHkgZ29pbmcgdG8gY29udGludWUg dGhhdCB3YXkgZm9yd2FyZCB1bnRpbCBJIGZpbmQgYSBiZXR0ZXIgc29sdXRpb24uIDxicj48YnI+ SG93ZXZlciBJIGNhbiBub3Qgc3RvcCB3b25kZXJpbmcgaWYgSSBjb3VsZCBhY3R1YWxseSBpbnZv a2UgYSBzZXJ2bGV0IGp1c3QgaW4gdGhlIHdheSB3ZSBpbnZva2UgYW4gZWpiLiBJbiB0aGUgbWV0 aG9kIGV4cGxhaW5lZCBhYm92ZSBJIHdvdWxkIGFjdHVhbGx5IGJlIG9wZW5pbmcgdHdvIGNvbm5l Y3Rpb25zIGZvciBlYWNoIHJlcXVlc3QgbWFkZSBieSB0aGUgRUlTOyBvbmUgY29ubmVjdGlvbmcg YmV0d2VlbiB0aGUgRUlTIGFuZCB0aGUgY3VzdG9tIGNvbm5lY3RvciwgYW5kIGFub3RoZXIgY29u bmVjdGlvbiBiZXR3ZWVuIHRoZSBjdXN0b20gY29ubmVjdG9yIGFuZCB0aGUgaHR0cCBjb25uZWN0 b3Igb2YgdGhlIGFwcGxpY2F0aW9uIHNlcnZlci4gVGhlIHNlY29uZCBjb25uZWN0aW9uIChiZXR3 ZWVuIHRoZSBjdXN0b20gY29ubmVjdG9yIGFuZCB0aGUgaHR0cCBjb25uZWN0b3IpIGxvb2tzIHRv IG1lIGFzIGJ5cGFzc2luZyB0aGUgbmF0dXJhbCBmbG93IG9mIGluZm9ybWF0aW9uIHdpdGhpbiB0 aGUgYXBwbGljYXRpb24gc2VydmVyIChpLmUuIGJldHdlZW4gdGhlIE1EQiBhbmQgdGhlIHNlcnZs ZXQgaW4gdGhpcyBjYXNlKS4gSW52b2tpbmcgdGhlIHNlcnZsZXQgdGhyb3VnaCBzb21lIEFkYXB0 ZXIgb2JqZWN0IChhcyBpcyB0aGUgY2FzZSBpbiBUb21jYXQpIHdoaWNoIHdvdWxkIHJlY2lldmUg YSBTZXJ2bGV0UmVxdWVzdCBhbmQgU2VydmxldFJlc3BvbnNlIG9iamVjdCB3b3VsZCBtYWtlIG1v cmUgc2Vuc2UgdG8gbWUgc2luY2UgdGhlIEFkYXB0ZXIgd291bGQgdGFrZSBjYXJlIG9mIGludm9r aW5nIHRoZSByZXF1aXJlZCBzZXJ2bGV0IGZyb20gdGhlIGluZm9ybWF0aW9uIHJlY2lldmVkIGlu c2lkZSB0aGUgU2VydmxldFJlcXVlc3Qgb2JqZWN0LiBIb3dldmVyIEkgbXVzdCBhZG1pdCB0aGF0 IGR1ZSB0byBteSBsYWNrIG9mIGV4cGVyaWFuY2UgSSBkbyBub3Qga25vdyBpZiBzdWNoIGFuIGVs ZW1lbnQgZXhzaXN0IGluIEpFRSBBcHBsaWNhdGlvbiBTZXJ2ZXJzIGFuZCBub3IgZG8gSSBrbm93 IGlmIHRoZSBtZXRob2QgZXhwbGFpbmVkIGJ5IHlvdSBpcyB0aGUgc3RhbmRhcmQgd2F5IGZvcndh cmQgaW4gdGhpcyBjYXNlLjxicj48YnI+V2hlbiBJIGZpcnN0IHN0YXJ0ZWQgdGhpcyBwcm9qZWN0 IEkgZmlyc3QgbG9va2VkIGF0IFRvbWNhdCAod2hpY2ggaXMgbm90IGEgSkVFIEFwcGxpY2F0aW9u IFNlcnZlcikgQ295b3RlIENvbm5lY3Rvci4gSSBkaWQgZGV2ZWxvcCBteSBvd24gY3VzdG9tIGNv bm5lY3RvciBvbiBUb21jYXQgYnV0IHdhcyBzdHVjayB3aGVuIEkgcmVhbGlzZWQgdGhhdCBUb21j YXQgQWRhcHRlciBpbnN0YW5jZSAocHJvdmlkZWQgdG8gdGhlIGNvbm5lY3RvciBieSB0aGUgd2Vi IHNlcnZlcikgb25seSBhY2NlcHRlZCBIdHRwU2VydmxldFJlcXVlc3RzIGFuZCBIdHRwU2Vydmxl dFJlc3BvbnNlLiBUaGlzIHdvdWxkIGhhdmUgbWVhbnQgc2VuZGluZyBhbiBIdHRwIHJlcXVlc3Qg dG8gdGhlIHNlcnZsZXQgb2JqZWN0IHdoZXJlIGFuIGh0dHAgcmVxdWVzdCB3YXMgbm90IHJlYWxs eSBtYWRlLjxicj48YnI+Rm9yIG1lIG9wZW5pbmcgYSBVUkwgQ29ubmVjdGlvbiBmcm9tIHRoZSBN REIgd291bGQgYmUgdGhlIHNhbWUgdGhpbmcsIGkuZS4gLSBzZW5kaW5nIGFuIGh0dHAgcmVxdWVz dCB3aGVyZSBpbiByZWFsaXR5IEkgZ290IGEgY3VzdG9tIHByb3RvY29sIHJlcXVlc3QuIEFzIG11 Y2ggYXMgSSByZW1lYmVyIGluIHRoZSBTZXJ2bGV0IFNwZWNpZmljYXRpb24gRG9jdW1lbnQgdGhl cmUgaXMgd3JpdGVuIHRoYXQgc2VydmxldHMgYXJlIG5vdCBwcm90b2NvbCBib3VuZC4gU2luY2Ug SkVFIENvbm5lY3RvciBBcmNoaXRlY3R1cmUgaXMgdGhlcmUgdG8gbWFrZSBpdCBwb3NzaWJsZSBm b3IgYSBKRUUgQXBwbGljYXRpb24gU2VydmVyIHRvIHN1cHBvcnQgY3VzdG9tIHByb3RvY29scyBh cyB3ZWxsLCB0aGVuIEkgbXVzdCBhc3N1bWUgdGhhdCB0aGVyZSBtdXN0IGJlIGEgYmV0dGVyIHdh eSB0byBpbnZva2UgYSBTZXJ2bGV0IGZyb20gYSBjdXN0b20gY29ubmVjdG9yLiBIb3dldmVyIGFz IEkgc2FpZCBhYm92ZSBJIGNvdWxkIGJlIHdyb25nIG1vc3RseSBiZWNhdXNlIEkgYW0gc3RpbGwg bGVhcm5pbmcgYWJvdXQgdGhlIHN1YmplY3QuPGJyPjxicj5Tb3JyeSBmb3IgdGhlIGxvbmcgbWFp bCA6KTxicj48YnI+VGhhbmtzIGFnYWluIGZvciB5b3VyIGhlbHAuPGJyPjxicj5CZXN0IFJlZ2Fy ZHMsPGJyPlNpbW9uIEouIEFxdWlsaW5hPGJyPjxicj48aHIgaWQ9InN0b3BTcGVsbGluZyI+RGF0 ZTogRnJpLCA1IERlYyAyMDA4IDE0OjAzOjA5ICswODAwPGJyPkZyb206IHdlYWx0aGVyQDE2My5D T008YnI+U3ViamVjdDogUmU6IElzIGl0IHBvc3NpYmxlIGZvciBhbiBpbmJvdW5kIGNvbm5lY3Rv ciB0byBpbnZva2Ugc2VydmxldD88YnI+VG86IENPTk5FQ1RPUi1JTlRFUkVTVEBKQVZBLlNVTi5D T008YnI+PGJyPjxkaXY+aSBhbSBzb3JyeSwgaSBkb24ndCBrbm93IGpjYSB0b28gbXVjaC48L2Rp dj4NCjxkaXY+YnV0IGkgdGhpbmsgdGhlIGJlbG93IGNvZGUgbWF5IGJlIGEgbGl0dGxlIGhlbHAm bmJzcDt0byB5b3UuPC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4N CjxkaXY+cGFja2FnZSBvcmcueGZyZWUudXJsOzwvZGl2Pg0KPGRpdj5pbXBvcnQgamF2YS5pby5C dWZmZXJlZFJlYWRlcjs8YnI+aW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247PGJyPmltcG9ydCBq YXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOzxicj5pbXBvcnQgamF2YS5uZXQuTWFsZm9ybWVkVVJM RXhjZXB0aW9uOzxicj5pbXBvcnQgamF2YS5uZXQuVVJMOzxicj5pbXBvcnQgamF2YS5uZXQuVVJM Q29ubmVjdGlvbjs8L2Rpdj4NCjxkaXY+cHVibGljIGNsYXNzIFVSTENvbm5lY3Rpb25UZXN0IHs8 YnI+Jm5ic3A7cHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgezxicj4mbmJz cDsmbmJzcDtTdHJpbmcgdXJsTmFtZSA9ICI8YSBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20i Pmh0dHA6Ly93d3cuZ29vZ2xlLmNvbTwvYT4iOzxicj4mbmJzcDsmbmJzcDtpZiAoYXJncy5sZW5n dGggIT0gMCkgezxicj4mbmJzcDsmbmJzcDsmbmJzcDt1cmxOYW1lID0gYXJnc1swXTs8YnI+Jm5i c3A7Jm5ic3A7fTwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDt0cnkgezxicj4mbmJzcDsmbmJzcDsm bmJzcDtVUkwgdXJsID0gbmV3IFVSTCh1cmxOYW1lKTs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7VVJM Q29ubmVjdGlvbiBjb24gPSB1cmwub3BlbkNvbm5lY3Rpb24oKTs8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Y29uLnNldERvSW5wdXQodHJ1ZSk7PGJyPiZuYnNwOyZuYnNwOyZuYnNwO2Nvbi5zZXREb091 dHB1dCh0cnVlKTs8L2Rpdj4NCjxkaXY+Jm5ic3A7Jm5ic3A7Jm5ic3A7QnVmZmVyZWRSZWFkZXIg cmVhZGVyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcig8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y29uLmdldElucHV0U3RyZWFtKCkpKTs8YnI+Jm5i c3A7Jm5ic3A7Jm5ic3A7U3lzdGVtLm91dC5wcmludGxuKHJlYWRlci5yZWFkTGluZSgpKTs8L2Rp dj4NCjxkaXY+Jm5ic3A7Jm5ic3A7fSBjYXRjaCAoTWFsZm9ybWVkVVJMRXhjZXB0aW9uIGUpIHs8 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Ly8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jazxi cj4mbmJzcDsmbmJzcDsmbmJzcDtlLnByaW50U3RhY2tUcmFjZSgpOzxicj4mbmJzcDsmbmJzcDt9 IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOy8vIFRPRE8gQXV0 by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2s8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ZS5wcmludFN0YWNr VHJhY2UoKTs8YnI+Jm5ic3A7Jm5ic3A7fTxicj4mbmJzcDt9PGJyPn08L2Rpdj4NCjxkaXY+Jm5i c3A7PC9kaXY+DQo8ZGl2PnlvdSBjYW4gZ2V0Jm5ic3A7bW9yZSBpbmZvcm1hdGlvbiBhdCA8YSBo cmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjIvZG9jcy9hcGkvamF2YS9uZXQvVVJM Q29ubmVjdGlvbi5odG1sIj5odHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjIvZG9jcy9hcGkv amF2YS9uZXQvVVJMQ29ubmVjdGlvbi5odG1sPC9hPi48L2Rpdj4NCjxkaXY+PGJyPllvdXJzIHNp bmNlcmVseSw8L2Rpdj4NCjxkaXY+UWlKdW4gWWFuZzwvZGl2Pg0KPGRpdj48L2Rpdj48YnI+5Zyo MjAwOC0xMi0wNO+8jCJTaW1vbiBBcXVpbGluYSIgJmx0O3NpbTA4NUBIT1RNQUlMLkNPTSZndDsg 5YaZ6YGT77yaPGJyPg0KPGJsb2NrcXVvdGUgaWQ9IkVDX2lzUmVwbHlDb250ZW50IiBzdHlsZT0i Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7IHBhZGRpbmctbGVmdDog MWV4OyI+SGkgYWdhaW4sPGJyPjxicj5TaW5jZSBJIGRpZCBub3QgcmVjZWl2ZSBhbnkgcmVwbHkg SSB0aG91Z2h0IHRvIHNlbmQgYW5vdGhlciBlbWFpbCB3aXRoIHRoZSBhZGRpdGlvbmFsIHJlLXNl YXJjaCBJIGRpZC4gQmFzaWNhbGx5IGZyb20gdGhlIGRpYWdyYW0gb24gc2xpZGUgZml2ZSAoNSkg b2YgdGhlIHByZXNlbnRhdGlvbiAnSmF2YeKEoiBFRSBDb25uZWN0b3JzIERlbXlzdGlmaWVkJyBi eSBCaW5vZCBQLkcsIEdlb3JnZSBUaGFyYWthbiwgU2l2YWt1bWFyIFRoeWFnYXJhamFuIGl0IGlz IGNsZWFyIHRoYXQgYSBjdXN0b20gY29ubmVjdG9yIHNob3VsZCBiZSBhYmxlIHRvIGludm9rZSBh IGRlcGxveWVkIHNlcnZsZXQuPGJyPjxicj5IYXZpbmcgc2FpZCB0aGF0IEkgc3RpbGwgY2Fubm90 IHVuZGVyc3RhbmQgaG93IHRoaXMgY2FuIGJlIGRvbmUuIEluIHRoZSBkb2N1bWVudCAnSjJFReKE oiBDb25uZWN0b3IgQXJjaGl0ZWN0dXJlIFNwZWNpZmljYXRpb24nIHRoZXJlIGlzIGEgd2hvbGUg Y2hhcHRlciBvbiBob3cgdG8gaW52b2tlIGFuIEVKQiAoQ2hhcHRlciAxMykgaG93ZXZlciBJIGNh bm5vdCBmaW5kIGFueXRoaW5nIGFib3V0IFNlcnZsZXQgSW52b2thdGlvbi4gSSBhbHNvIGRvd25s b2FkZWQgdGhlIFNlcnZsZXQgU3BlY2lmaWNhdGlvbiBkb2N1bWVudCBidXQgY2Fubm90IHJlYWxs eSBtYXAgdGhlIHR3byB0b2dldGhlciAocHJvYmFiYmx5IGR1ZSB0byBteSBsaXR0bGUga25vd2xl ZGdlIGFib3V0IHRoZSBzdWJqZWN0KS4gSSBoYXZlIGFsc28gY2hlY2tlZCBob3cgdGhlIEh0dHAg Q29ubmVjdG9yIG9mIFRvbWNhdCB3b3JrcyBhbmQgaGVyZSBJIGZvdW5kIG91dCB0aGF0IHRoZSBU b21jYXQgd2hlbiBsb2FkZWQgdGhlIEh0dHAgQ29ubmVjdG9yIHdpbGwgcHJvdmlkZSBhbiBBZGFw dGVyIGluIG9yZGVyIHRvIGludm9rZSBTZXJ2bGV0cyBob3dldmVyIGRvIG5vdCBrbm93IGlmIHRo aXMgaXMgYWxzbyB0aGUgY2FzZSBmb3IgYSBKRUUgQXBwbGljYXRpb24gU2VydmVyLCBub3IgZG8g SSBrbm93IGlmIEkgaGF2ZSB0byBzZXQgc29tZSBleHRyYSBjb25maWd1cmF0aW9uIHRvIGhhdmUg c3VjaCBhbiBvYmplY3QgYXZhaWxhYmxlLjxicj48YnI+VGhhbmtzIGFuZCBSZWdhcmRzLDxicj5T aW1vbiBKLiBBcXVpbGluYTxicj48YnI+DQo8aHIgaWQ9IkVDX3N0b3BTcGVsbGluZyI+DQpGcm9t OiA8YSBocmVmPSJtYWlsdG86c2ltMDg1QGhvdG1haWwuY29tIj5zaW0wODVAaG90bWFpbC5jb208 L2E+PGJyPlRvOiA8YSBocmVmPSJtYWlsdG86Y29ubmVjdG9yLWludGVyZXN0QGphdmEuc3VuLmNv bSI+Y29ubmVjdG9yLWludGVyZXN0QGphdmEuc3VuLmNvbTwvYT48YnI+U3ViamVjdDogSXMgaXQg cG9zc2libGUgZm9yIGFuIGluYm91bmQgY29ubmVjdG9yIHRvIGludm9rZSBzZXJ2bGV0Pzxicj5E YXRlOiBNb24sIDEgRGVjIDIwMDggMjE6MDA6MTAgKzAxMDA8YnI+PGJyPg0KPHN0eWxlPg0KLkV4 dGVybmFsQ2xhc3MgLkVDX2htbWVzc2FnZSBQDQp7cGFkZGluZzowcHg7fQ0KLkV4dGVybmFsQ2xh c3MgYm9keS5FQ19obW1lc3NhZ2UNCntmb250LXNpemU6MTBwdDtmb250LWZhbWlseTpWZXJkYW5h O30NCjwvc3R5bGU+DQoNCjxzdHlsZT4NCkBwYWdlDQp7O30NCi5FeHRlcm5hbENsYXNzIFANCntt YXJnaW4tYm90dG9tOjAuMjFjbTtsaW5lLWhlaWdodDoxNTAlO3RleHQtYWxpZ246anVzdGlmeTt9 DQouRXh0ZXJuYWxDbGFzcyBQLkVDX3dlc3Rlcm4NCntmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LCBzYW5zLXNlcmlmO30NCjwvc3R5bGU+DQoNCjxwIGNsYXNzPSJFQ19FQ193ZXN0ZXJu IiBhbGlnbj0ibGVmdCI+SGksPGJyPjxicj5JIGFtIG5vdCBzdXJlIGlmIHRoaXMgaXMgdGhlIHJp Z2h0IHBsYWNlIHRvIGFzayB0aGlzIHF1ZXN0aW9uLiBNeSBxdWVzdGlvbiBpcyByZWxhdGVkIHRv IGluYm91bmQgY29ubmVjdG9ycy4gRnJvbSB3aGF0IEkgY2FuIHVuZGVyc3RhbmQgYW4gYXBwbGlj YXRpb24gc2VydmVyIHdpbGwgc3RhcnQgYSBSZXNvdXJjZSBBZGFwdGVyIChSQSkuIFRoZW4gd2hl biBhIE1lc3NhZ2UgRHJpdmVuIEJlYW4gKE1EQikgaXMgZGVwbG95ZWQgdGhlIHJlbGF0ZWQgUkEg YXJlIGluZm9ybWVkLiBUaGUgUkEgd291bGQgdGhlbiBjcmVhdGUgYW4gRW5kcG9pbnQgQ29uc3Vt ZXIuIFdoZW4gYSBtZXNzYWdlIGlzIHJlY2VpdmVkIGZyb20gYW4gRUlTIHRoZSBFbmRwb2ludCBD b25zdW1lciB3aWxsIGNhbGwgYSBtZXRob2QgZnJvbSB0aGUgTURCLiA8YnI+PGJyPk5vdyBteSBw bGFuIHdhcyB0byBkZXZlbG9wIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBodHRwIHByb3RvY29s LiBUaGUgRW50ZXJwcmlzZSBJbmZvcm1hdGlvbiBTeXN0ZW0gKEVJUykgbWFrZXMgYSByZXF1ZXN0 LCB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWQsIGFuZCBhIHJlc3BvbnNlIGlzIHJldHVybmVkIGlu IFhNTCAob3IgZm9ybWF0IHVuZGVyc3Rvb2QgYnkgdGhlIEVJUykuIEJlY2F1c2Ugb2YgdGhpcyBz aW1pbGFyaXR5IEkgd2FzIHdvbmRlcmluZzsgSXMgaXQgcG9zc2libGUgdGhhdCBhbiBpbmJvdW5k IGNvbm5lY3RvciBpbnZva2VzIGEgZGVwbG95ZWQgc2VydmxldD8gPGJyPjxicj5UaGFua3MgYW5k IFJlZ2FyZHMsPGJyPlNpbW9uIEouPGJyPjxicj48L3A+PGJyPjxicj48YnI+PGJyPg0KPGhyPg0K SW52aXRlIHlvdXIgbWFpbCBjb250YWN0cyB0byBqb2luIHlvdXIgZnJpZW5kcyBsaXN0IHdpdGgg V2luZG93cyBMaXZlIFNwYWNlcy4gSXQncyBlYXN5ISA8YSBocmVmPSJodHRwOi8vc3BhY2VzLmxp dmUuY29tL3NwYWNlc2FwaS5hc3B4P3d4X2FjdGlvbj1jcmVhdGUmYW1wO3d4X3VybD0vZnJpZW5k cy5hc3B4JmFtcDtta3Q9ZW4tdXMiPlRyeSBpdCE8L2E+PGJyPg0KPGhyPg0KRGlzY292ZXIgdGhl IG5ldyBXaW5kb3dzIFZpc3RhIDxhIGhyZWY9Imh0dHA6Ly9zZWFyY2gubXNuLmNvbS9yZXN1bHRz LmFzcHg/cT13aW5kb3dzK3Zpc3RhJmFtcDtta3Q9ZW4tVVMmYW1wO2Zvcm09UUJSRSI+TGVhcm4g bW9yZSE8L2E+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBUbyB1bnN1YnNjcmliZSwgc2VuZCBlbWFpbCB0 byA8YSBocmVmPSJtYWlsdG86bGlzdHNlcnZAamF2YS5zdW4uY29tIj5saXN0c2VydkBqYXZhLnN1 bi5jb208L2E+IGFuZCBpbmNsdWRlIGluIHRoZSBib2R5IG9mIHRoZSBtZXNzYWdlICJzaWdub2Zm IENPTk5FQ1RPUi1JTlRFUkVTVCIuIEZvciBnZW5lcmFsIGhlbHAsIHNlbmQgZW1haWwgdG8gPGEg aHJlZj0ibWFpbHRvOmxpc3RzZXJ2QGphdmEuc3VuLmNvbSI+bGlzdHNlcnZAamF2YS5zdW4uY29t PC9hPiBhbmQgaW5jbHVkZSBpbiB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZSAiaGVscCIuIDwvYmxv Y2txdW90ZT48YnI+PGJyPjxocj4NCjxhIGhyZWY9Imh0dHA6Ly93d3cueWVhaC5uZXQiPue9keaY k+WFjei0uemCru+8jOWFqOeQg+acgOWkp+eahOS4reaWh+WFjei0uemCrueusTwvYT4NCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgZW1haWwgdG8gbGlzdHNlcnZAamF2 YS5zdW4uY29tIGFuZCBpbmNsdWRlIGluIHRoZSBib2R5DQpvZiB0aGUgbWVzc2FnZSAic2lnbm9m ZiBDT05ORUNUT1ItSU5URVJFU1QiLiAgRm9yIGdlbmVyYWwgaGVscCwgc2VuZCBlbWFpbCB0bw0K bGlzdHNlcnZAamF2YS5zdW4uY29tIGFuZCBpbmNsdWRlIGluIHRoZSBib2R5IG9mIHRoZSBtZXNz YWdlICJoZWxwIi48YnIgLz48aHIgLz5JbnZpdGUgeW91ciBtYWlsIGNvbnRhY3RzIHRvIGpvaW4g eW91ciBmcmllbmRzIGxpc3Qgd2l0aCBXaW5kb3dzIExpdmUgU3BhY2VzLiBJdCdzIGVhc3khIDxh IGhyZWY9J2h0dHA6Ly9zcGFjZXMubGl2ZS5jb20vc3BhY2VzYXBpLmFzcHg/d3hfYWN0aW9uPWNy ZWF0ZSZ3eF91cmw9L2ZyaWVuZHMuYXNweCZta3Q9ZW4tdXMnIHRhcmdldD0nX25ldyc+VHJ5IGl0 ITwvYT48L2JvZHk+DQo8L2h0bWw+ --_0b8f8c5d-e657-4b0c-9498-b8daaa3d6ff5_--